From a07a20b4fa242d1161bc85bbf80726c4caef1bf6 Mon Sep 17 00:00:00 2001 From: Brendan Lee Date: Mon, 2 Oct 2017 10:30:16 -0700 Subject: [PATCH 1/2] WIP: V1 Sample Skeleton --- ExtensionsLibrary/tableau-extensions-0.6.0.js | 23690 ++++++++++++++++ Samples/DataSources/DataSources.trex | 22 + Samples/DataSources/datasources.html | 30 + Samples/DataSources/datasources.js | 1 + Samples/Filtering/Filtering.trex | 22 + Samples/Filtering/filtering.html | 30 + Samples/Filtering/filtering.js | 1 + Samples/Parameters/Parameters.trex | 22 + Samples/Parameters/parameters.html | 30 + Samples/Parameters/parameters.js | 1 + Samples/README.md | 15 + Samples/Settings/Settings.trex | 22 + Samples/Settings/settings.html | 29 + Samples/Settings/settings.js | 1 + Tutorial/React/README.md | 1 + Tutorial/React/TutorialReact.trex | 22 + Tutorial/Standard/README.md | 1 + Tutorial/Standard/Tutorial.trex | 22 + 18 files changed, 23962 insertions(+) create mode 100644 ExtensionsLibrary/tableau-extensions-0.6.0.js create mode 100644 Samples/DataSources/DataSources.trex create mode 100644 Samples/DataSources/datasources.html create mode 100644 Samples/DataSources/datasources.js create mode 100644 Samples/Filtering/Filtering.trex create mode 100644 Samples/Filtering/filtering.html create mode 100644 Samples/Filtering/filtering.js create mode 100644 Samples/Parameters/Parameters.trex create mode 100644 Samples/Parameters/parameters.html create mode 100644 Samples/Parameters/parameters.js create mode 100644 Samples/README.md create mode 100644 Samples/Settings/Settings.trex create mode 100644 Samples/Settings/settings.html create mode 100644 Samples/Settings/settings.js create mode 100644 Tutorial/React/README.md create mode 100644 Tutorial/React/TutorialReact.trex create mode 100644 Tutorial/Standard/README.md create mode 100644 Tutorial/Standard/Tutorial.trex diff --git a/ExtensionsLibrary/tableau-extensions-0.6.0.js b/ExtensionsLibrary/tableau-extensions-0.6.0.js new file mode 100644 index 00000000..ead58eec --- /dev/null +++ b/ExtensionsLibrary/tableau-extensions-0.6.0.js @@ -0,0 +1,23690 @@ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else if(typeof exports === 'object') + exports["Main"] = factory(); + else + root["Main"] = factory(); +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; +/******/ +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.loaded = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = "/dist/"; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var FrelardDesktopBootstrap_1 = __webpack_require__(1); + // This Main function will be executed when this module is loaded. Attempt to do our + // bootstrapping with qt and log any errors we encounter + FrelardDesktopBootstrap_1.doBootstrap().catch(function (e) { + console.error('Desktop bootstrapping failed: ' + e); + }); + + +/***/ }, +/* 1 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_core_1 = __webpack_require__(2); + var api_internal_contract_1 = __webpack_require__(30); + var AddInApiPresLayerImpl_1 = __webpack_require__(31); + var DesktopApiDispatcher_1 = __webpack_require__(32); + var QtWebChannelImpl_1 = __webpack_require__(33); + /** + * Wrapper for all the bootstrapping logic. This code attempts to initialize the qt pres-layer + * as well as the desktop dispatcher. It then assigns it to the global desktop dispatcher to + * be picked up by the add-in external Api + */ + function doBootstrap() { + // First we need to initialize the webchannel pres-layer + var dispatcherPromise = QtWebChannelImpl_1.initializeWebChannelPresLayer().then(function (preslayer) { + var presLayerApi = new AddInApiPresLayerImpl_1.AddInApiPresLayerImpl(preslayer); + if (!presLayerApi.AddInInstanceInfo.addInLocatorPresModel) { + throw new Error('AddInInstanceInfo undefined'); + } + // Initialize the apiEventHandler and the desktopDispatcher with it + var apiEventHandler = new api_core_1.ApiEventHandler(presLayerApi, presLayerApi.AddInInstanceInfo.addInLocatorPresModel); + var desktopDispatcher = new DesktopApiDispatcher_1.DesktopApiDispatcher(apiEventHandler); + return desktopDispatcher; + }); + // Assign the desktop dispatcher for the other project to find it + api_internal_contract_1.InternalApiDispatcherHolder.setDesktopDispatcherPromise(dispatcherPromise); + return dispatcherPromise; + } + exports.doBootstrap = doBootstrap; + + +/***/ }, +/* 2 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /** + * This is your main. This is where you re-export everything you want to be publicly available. + * + * The build enforces that the file has the same name as the global variable that is exported. + */ + function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; + } + Object.defineProperty(exports, "__esModule", { value: true }); + __export(__webpack_require__(3)); + var Events_1 = __webpack_require__(16); + exports.NotificationId = Events_1.NotificationId; + + +/***/ }, +/* 3 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_internal_contract_1 = __webpack_require__(4); + var Params_1 = __webpack_require__(10); + var CommandMappingRegistryFactory_1 = __webpack_require__(11); + var EventMappingRegistryFactory_1 = __webpack_require__(15); + var ParameterMappingRegistryFactory_1 = __webpack_require__(23); + /** + * Main class for the api-core project. This class is responsible for executing comamnd and marshalling notifcations + * between the internal Api and the pres-layer Api. After construction, SetVersionNumber must be called in order to + * use this class + * + * @export + * @class ApiEventHandler + */ + var ApiEventHandler = (function () { + /** + * Creates an instance of ApiEventHandler. + * @param {PresentationLayer} presLayer - An implementation of the pres-layer Api to use + * @param {AddInLocatorPresModel} addInLocatorPresModel - locator for the add-in which is being referenced + * @memberof ApiEventHandler + */ + function ApiEventHandler(presLayer, addInLocatorPresModel) { + this._presLayer = presLayer; + this._presLayerAddInLocator = addInLocatorPresModel; + } + /** + * Sets the internal Api version number which the external library is expecting to use. This must be called before + * anything else in order to properly set up the translation layers. + * + * @param {VersionNumber} versionNumber + * @memberof ApiEventHandler + */ + ApiEventHandler.prototype.setVersionNumber = function (versionNumber) { + this._versionNumber = versionNumber; + // Initialize all our registries + this._commandRegistry = CommandMappingRegistryFactory_1.CommandMappingRegistryFactory.createCommandMappingRegistry(versionNumber); + this._apiToPresLayerRegistry = ParameterMappingRegistryFactory_1.ParameterMappingRegistryFactory.createApiToPresLayerParamRegistry(versionNumber); + this._presLayerToApiRegistry = ParameterMappingRegistryFactory_1.ParameterMappingRegistryFactory.createPresLayerToApiParamRegistry(versionNumber); + this._eventRegistry = EventMappingRegistryFactory_1.EventMappingRegistryFactory.createEventMappingRegistry(versionNumber); + // Convert our addInLocator to the Api version + this._apiExtensionLocator = this._presLayerToApiRegistry + .get(Params_1.ParameterId.AddInLocator, api_internal_contract_1.ParameterId.ExtensionLocator)(this._presLayerAddInLocator); + for (var _i = 0, _a = Object.keys(this._eventRegistry); _i < _a.length; _i++) { + var plEventId = _a[_i]; + // Register for all notifications we know about and bind the event type to the callback + this._presLayer.registerNotificationHandler(plEventId, this.onPresLayerNotification.bind(this, plEventId)); + } + }; + /** + * Sets an event handler function to be notified when Api events come in. Only a single registration is supported. + * + * @param {NotificationHandler} eventHandler + * @memberof ApiEventHandler + */ + ApiEventHandler.prototype.setEventHandler = function (eventHandler) { + this._eventHandler = eventHandler; + // TODO - Register for pres layer events + }; + /** + * Executes the requested Api command by converting the parameters, running the command against the pres-layer, + * then processing the result back into a format the Api can understand + * + * @param {VerbId} verb + * @param {ExecuteParameters} parameters + * @returns {Promise} + * @memberof ApiEventHandler + */ + ApiEventHandler.prototype.execute = function (verb, parameters) { + var _this = this; + this.assertInitialized(); + var command = this._commandRegistry.getCommand(verb); + parameters = parameters || {}; + // Augment the command with the locator if it's needed + if (command.needsAddInLocator) { + parameters[api_internal_contract_1.ParameterId.ExtensionLocator] = this._apiExtensionLocator; + } + var commandsParams = command.createParams(parameters, this._apiToPresLayerRegistry); + return this._presLayer.invokeCommand(command.namespace, command.commandId, commandsParams) + .then(function (commandResult) { + var convertedResult = command.ProcessResult(commandResult, _this._presLayerToApiRegistry); + return { + result: convertedResult + }; + }); + }; + /** + * Helper method to check that things are initialized as expected. Throws if initialization not complete + * + * @private + * @memberof ApiEventHandler + */ + ApiEventHandler.prototype.assertInitialized = function () { + if (!this._versionNumber) { + throw new Error('VersionNumber not yet configured. Cannot take any actions'); + } + }; + /** + * Called when a new event notification comes in from the presentation layer + * + * @param eventId The pres layer event id + * @param presModel The pres model that is included with the event + */ + ApiEventHandler.prototype.onPresLayerNotification = function (eventId, presModel) { + // First look up this eventId in our registry and convert to presModel + var eventMapping = this._eventRegistry[eventId]; + var apiModel = eventMapping.converter(presModel); + if (this._eventHandler) { + this._eventHandler(eventMapping.apiId, apiModel); + } + }; + return ApiEventHandler; + }()); + exports.ApiEventHandler = ApiEventHandler; + + +/***/ }, +/* 4 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /** + * This is your main. This is where you re-export everything you want to be publicly available. + * + * The build enforces that the file has the same name as the global variable that is exported. + */ + function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; + } + Object.defineProperty(exports, "__esModule", { value: true }); + __export(__webpack_require__(5)); + __export(__webpack_require__(6)); + __export(__webpack_require__(7)); + __export(__webpack_require__(8)); + __export(__webpack_require__(9)); + + +/***/ }, +/* 5 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var ExtensionContext; + (function (ExtensionContext) { + ExtensionContext["Desktop"] = "desktop"; + ExtensionContext["Server"] = "server"; + ExtensionContext["Unknown"] = "unknown"; + })(ExtensionContext = exports.ExtensionContext || (exports.ExtensionContext = {})); + var ExtensionMode; + (function (ExtensionMode) { + ExtensionMode["Authoring"] = "authoring"; + ExtensionMode["Viewing"] = "viewing"; + ExtensionMode["Unknown"] = "unknown"; + })(ExtensionMode = exports.ExtensionMode || (exports.ExtensionMode = {})); + var ColumnType; + (function (ColumnType) { + ColumnType["Discrete"] = "discrete"; + ColumnType["Continuous"] = "continuous"; + })(ColumnType = exports.ColumnType || (exports.ColumnType = {})); + var DashboardObjectType; + (function (DashboardObjectType) { + DashboardObjectType["Blank"] = "blank"; + DashboardObjectType["Worksheet"] = "worksheet"; + DashboardObjectType["QuickFilter"] = "quick-filter"; + DashboardObjectType["ParameterControl"] = "parameter-control"; + DashboardObjectType["PageFilter"] = "page-filter"; + DashboardObjectType["Legend"] = "legend"; + DashboardObjectType["Title"] = "title"; + DashboardObjectType["Text"] = "text"; + DashboardObjectType["Image"] = "image"; + DashboardObjectType["WebPage"] = "web-page"; + DashboardObjectType["Extension"] = "extension"; + })(DashboardObjectType = exports.DashboardObjectType || (exports.DashboardObjectType = {})); + var DataType; + (function (DataType) { + DataType["String"] = "string"; + DataType["Int"] = "int"; + DataType["Float"] = "float"; + DataType["Bool"] = "bool"; + DataType["Date"] = "date"; + DataType["DateTime"] = "date-time"; + DataType["Spatial"] = "spatial"; + })(DataType = exports.DataType || (exports.DataType = {})); + var EncodedDataType; + (function (EncodedDataType) { + EncodedDataType["Number"] = "number"; + EncodedDataType["String"] = "string"; + EncodedDataType["Date"] = "date"; + EncodedDataType["Boolean"] = "boolean"; + })(EncodedDataType = exports.EncodedDataType || (exports.EncodedDataType = {})); + var ErrorCode; + (function (ErrorCode) { + ErrorCode["ServerError"] = "server-error"; + ErrorCode["InvalidAggregationFieldName"] = "invalid-aggregation-field-name"; + ErrorCode["InvalidFilterFieldName"] = "invalid-filter-fieldname"; + ErrorCode["InvalidFilterFieldValue"] = "invalid-filter-field-value"; + })(ErrorCode = exports.ErrorCode || (exports.ErrorCode = {})); + var FieldAggregationType; + (function (FieldAggregationType) { + FieldAggregationType["Sum"] = "sum"; + FieldAggregationType["Avg"] = "avg"; + FieldAggregationType["Min"] = "min"; + FieldAggregationType["Max"] = "max"; + FieldAggregationType["Stdev"] = "stdev"; + FieldAggregationType["Stdevp"] = "stdevp"; + FieldAggregationType["Var"] = "var"; + FieldAggregationType["Varp"] = "varp"; + FieldAggregationType["Count"] = "count"; + FieldAggregationType["Countd"] = "countd"; + FieldAggregationType["Median"] = "median"; + FieldAggregationType["Attr"] = "attr"; + FieldAggregationType["None"] = "none"; + FieldAggregationType["Year"] = "year"; + FieldAggregationType["Qtr"] = "qtr"; + FieldAggregationType["Month"] = "month"; + FieldAggregationType["Day"] = "day"; + FieldAggregationType["Hour"] = "hour"; + FieldAggregationType["Minute"] = "minute"; + FieldAggregationType["Second"] = "second"; + FieldAggregationType["Week"] = "week"; + FieldAggregationType["Weekday"] = "weekday"; + FieldAggregationType["MonthYear"] = "month-year"; + FieldAggregationType["Mdy"] = "mdy"; + FieldAggregationType["End"] = "end"; + FieldAggregationType["TruncYear"] = "trunc-year"; + FieldAggregationType["TruncQtr"] = "trunc-qtr"; + FieldAggregationType["TruncMonth"] = "trunc-month"; + FieldAggregationType["TruncWeek"] = "trunc-week"; + FieldAggregationType["TruncDay"] = "trunc-day"; + FieldAggregationType["TruncHour"] = "trunc-hour"; + FieldAggregationType["TruncMinute"] = "trunc-minute"; + FieldAggregationType["TruncSecond"] = "trunc-second"; + FieldAggregationType["Quart1"] = "quart1"; + FieldAggregationType["Quart3"] = "quart3"; + FieldAggregationType["Skewness"] = "skewness"; + FieldAggregationType["Kurtosis"] = "kurtosis"; + FieldAggregationType["InOut"] = "in-out"; + FieldAggregationType["User"] = "user"; + })(FieldAggregationType = exports.FieldAggregationType || (exports.FieldAggregationType = {})); + var FieldRoleType; + (function (FieldRoleType) { + FieldRoleType["Dimension"] = "dimension"; + FieldRoleType["Measure"] = "measure"; + FieldRoleType["Unknown"] = "unknown"; + })(FieldRoleType = exports.FieldRoleType || (exports.FieldRoleType = {})); + /** + * The different update types for applying filter. + */ + var FilterUpdateType; + (function (FilterUpdateType) { + FilterUpdateType["Add"] = "add"; + FilterUpdateType["All"] = "all"; + FilterUpdateType["Replace"] = "replace"; + FilterUpdateType["Remove"] = "remove"; + })(FilterUpdateType = exports.FilterUpdateType || (exports.FilterUpdateType = {})); + var SheetType; + (function (SheetType) { + SheetType["Dashboard"] = "dashboard"; + SheetType["Story"] = "story"; + SheetType["Worksheet"] = "worksheet"; + })(SheetType = exports.SheetType || (exports.SheetType = {})); + var DomainRestrictionType; + (function (DomainRestrictionType) { + DomainRestrictionType["All"] = "all"; + DomainRestrictionType["List"] = "list"; + DomainRestrictionType["Range"] = "range"; + })(DomainRestrictionType = exports.DomainRestrictionType || (exports.DomainRestrictionType = {})); + var DateStepPeriod; + (function (DateStepPeriod) { + DateStepPeriod["Years"] = "years"; + DateStepPeriod["Quarters"] = "quarters"; + DateStepPeriod["Months"] = "months"; + DateStepPeriod["Weeks"] = "weeks"; + DateStepPeriod["Days"] = "days"; + DateStepPeriod["Hours"] = "hours"; + DateStepPeriod["Minutes"] = "minutes"; + DateStepPeriod["Seconds"] = "seconds"; + })(DateStepPeriod = exports.DateStepPeriod || (exports.DateStepPeriod = {})); + /** + * The option for specifying which values to include for filtering. + */ + var FilterNullOption; + (function (FilterNullOption) { + FilterNullOption["NullValues"] = "nullvalues"; + FilterNullOption["NonNullValues"] = "nonnullvalues"; + FilterNullOption["AllValues"] = "allvalues"; + })(FilterNullOption = exports.FilterNullOption || (exports.FilterNullOption = {})); + /** + * The type of filter domain + */ + var FilterDomainType; + (function (FilterDomainType) { + FilterDomainType["Relevant"] = "relevant"; + FilterDomainType["Database"] = "database"; + })(FilterDomainType = exports.FilterDomainType || (exports.FilterDomainType = {})); + /** + * Internal enum for specifying the selection type for select marks api. + */ + var SelectionUpdateType; + (function (SelectionUpdateType) { + SelectionUpdateType["Replace"] = "select-replace"; + SelectionUpdateType["Add"] = "select-add"; + SelectionUpdateType["Remove"] = "select-remove"; + })(SelectionUpdateType = exports.SelectionUpdateType || (exports.SelectionUpdateType = {})); + /** + * Internal enum for specifying the included values type for range selection. + */ + var QuantitativeIncludedValues; + (function (QuantitativeIncludedValues) { + QuantitativeIncludedValues["IncludeNull"] = "include-null"; + QuantitativeIncludedValues["IncludeNonNull"] = "include-non-null"; + QuantitativeIncludedValues["IncludeAll"] = "include-all"; + })(QuantitativeIncludedValues = exports.QuantitativeIncludedValues || (exports.QuantitativeIncludedValues = {})); + /** + * Type of mark for a given marks card in a viz. + */ + var MarkType; + (function (MarkType) { + MarkType["Bar"] = "bar"; + MarkType["Line"] = "line"; + MarkType["Area"] = "area"; + MarkType["Square"] = "square"; + MarkType["Circle"] = "circle"; + MarkType["Shape"] = "shape"; + MarkType["Text"] = "text"; + MarkType["Map"] = "map"; + MarkType["Pie"] = "pie"; + MarkType["GanttBar"] = "gantt-bar"; + MarkType["Polygon"] = "polygon"; + })(MarkType = exports.MarkType || (exports.MarkType = {})); + /** + * Internal enum for specifying the type of filter + */ + var FilterType; + (function (FilterType) { + FilterType["Categorical"] = "categorical"; + FilterType["Range"] = "range"; + FilterType["RelativeDate"] = "relativeDate"; + FilterType["Hierarchical"] = "hierarchical"; + })(FilterType = exports.FilterType || (exports.FilterType = {})); + /** + * Internal enum for specifying the DateRangeType of a relative date filter + */ + var DateRangeType; + (function (DateRangeType) { + /** + * Refers to the last day, week, month, etc. of the date period. + */ + DateRangeType["Last"] = "last"; + /** + * Refers to the last N days, weeks, months, etc. of the date period. + */ + DateRangeType["LastN"] = "lastN"; + /** + * Refers to the next day, week, month, etc. of the date period. + */ + DateRangeType["Next"] = "next"; + /** + * Refers to the next N days, weeks, months, etc. of the date period. + */ + DateRangeType["NextN"] = "nextN"; + /** + * Refers to the current day, week, month, etc. of the date period. + */ + DateRangeType["Current"] = "current"; + /** + * Refers to everything up to and including the current day, week, month, etc. of the date period. + */ + DateRangeType["ToDate"] = "toDate"; + })(DateRangeType = exports.DateRangeType || (exports.DateRangeType = {})); + + +/***/ }, +/* 6 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var InternalApiDispatcherHolder; + (function (InternalApiDispatcherHolder) { + function getDesktopDispatcherPromise() { + return window.__tableauDesktopDispatcher; + } + InternalApiDispatcherHolder.getDesktopDispatcherPromise = getDesktopDispatcherPromise; + function hasDesktopApiDispatcherPromise() { + return !!InternalApiDispatcherHolder.getDesktopDispatcherPromise(); + } + InternalApiDispatcherHolder.hasDesktopApiDispatcherPromise = hasDesktopApiDispatcherPromise; + function setDesktopDispatcherPromise(dispatcher) { + window.__tableauDesktopDispatcher = dispatcher; + } + InternalApiDispatcherHolder.setDesktopDispatcherPromise = setDesktopDispatcherPromise; + })(InternalApiDispatcherHolder = exports.InternalApiDispatcherHolder || (exports.InternalApiDispatcherHolder = {})); + + +/***/ }, +/* 7 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var NotificationId; + (function (NotificationId) { + NotificationId["SelectedMarksChanged"] = "selected-marks-changed"; + NotificationId["ParameterChanged"] = "parameter-changed"; + NotificationId["FilterChanged"] = "filter-changed"; + })(NotificationId = exports.NotificationId || (exports.NotificationId = {})); + + +/***/ }, +/* 8 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var ParameterId; + (function (ParameterId) { + ParameterId["ExtensionLocator"] = "extension-locator"; + ParameterId["ExtensionBootstrapInfo"] = "extension-bootstrap-info"; + ParameterId["ExtensionSettingsInfo"] = "extension-settings-info"; + ParameterId["VisualId"] = "visual-id"; + ParameterId["SheetPath"] = "sheet-path"; + ParameterId["IgnoreAliases"] = "ignore-aliases"; + ParameterId["IgnoreSelection"] = "ignore-selection"; + ParameterId["IncludeAllColumns"] = "include-all-columns"; + ParameterId["MaxRows"] = "max-rows"; + ParameterId["UnderlyingDataTable"] = "underlying-data-table"; + ParameterId["UnderlyingSummaryDataTable"] = "underlying-summary-data-table"; + ParameterId["DataSourceDataTable"] = "data-source-data-table"; + ParameterId["SettingsValues"] = "settings-values"; + ParameterId["SelectedData"] = "selected-data"; + ParameterId["HighlightedData"] = "highlighted-data"; + // Filter Params + ParameterId["FieldName"] = "field-name"; + ParameterId["FilterValues"] = "filter-values"; + ParameterId["FilterUpdateType"] = "filter-update-type"; + ParameterId["IsExcludeMode"] = "is-exclude"; + ParameterId["FilterRangeMin"] = "filter-range-min"; + ParameterId["FilterRangeMax"] = "filter-range-max"; + ParameterId["FilterRangeNullOption"] = "filter-range-null-option"; + ParameterId["WorksheetFilters"] = "worksheet-filters"; + ParameterId["FieldId"] = "field-id"; + ParameterId["DomainType"] = "domain-type"; + ParameterId["CategoricalDomain"] = "categorical-domain"; + ParameterId["QuantitativeDomain"] = "quantitative-dmain"; + ParameterId["WorksheetName"] = "worksheet-name"; + ParameterId["DashboardName"] = "dashboard"; + ParameterId["ParameterInfo"] = "parameter-info"; + ParameterId["ParameterInfos"] = "parameter-infos"; + ParameterId["ParameterCaption"] = "paremeter-caption"; + ParameterId["ParameterFieldName"] = "parameter-field-name"; + ParameterId["ParameterValue"] = "parameter-value"; + ParameterId["Selection"] = "selection"; + ParameterId["SelectionUpdateType"] = "selectionUpdateType"; + ParameterId["HierValSelectionModels"] = "hierarchicalValueSelectionModels"; + ParameterId["QuantRangeSelectionModels"] = "quantativeRangeSelectionModels"; + ParameterId["DimValSelectionModels"] = "dimensionValueSelectionModels"; + ParameterId["DataSourceId"] = "data-source-id"; + ParameterId["DataSchema"] = "data-schema"; + ParameterId["DataSourceName"] = "data-source-name"; + ParameterId["ColumnsToInclude"] = "columns-to-include"; + })(ParameterId = exports.ParameterId || (exports.ParameterId = {})); + + +/***/ }, +/* 9 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + // Declare this key type and export the NotificationId to make this behave like a string enum + var VerbId; + (function (VerbId) { + VerbId["ApplyCategoricalFilter"] = "categorical-filter"; + VerbId["ApplyRangeFilter"] = "range-filter"; + VerbId["ClearFilter"] = "clear-filter"; + VerbId["InitializeExtension"] = "initialize-extension"; + VerbId["GetDataSummaryData"] = "get-summary-data"; + VerbId["GetUnderlyingData"] = "get-underlying-data"; + VerbId["GetDataSourceData"] = "get-datasource-data"; + VerbId["SaveExtensionSettings"] = "save-extension-settings"; + VerbId["GetSelectedMarks"] = "get-selected-marks"; + VerbId["GetHighlightedMarks"] = "get-highlighted-marks"; + VerbId["GetParametersForSheet"] = "get-parameters-for-sheet"; + VerbId["FindParameter"] = "find-parameter"; + VerbId["ChangeParameterValue"] = "change-parameter-value"; + VerbId["ClearSelectedMarks"] = "clear-selected-marks"; + VerbId["SelectByValue"] = "select-by-value"; + VerbId["GetDataSources"] = "get-data-sources"; + VerbId["RefreshDataSource"] = "refresh-data-source"; + VerbId["GetFilters"] = "get-filters"; + VerbId["GetCategoricalDomain"] = "get-categorical-domain"; + VerbId["GetRangeDomain"] = "get-range-domain"; + })(VerbId = exports.VerbId || (exports.VerbId = {})); + + +/***/ }, +/* 10 */ +/***/ function(module, exports) { + + "use strict"; + // ----------------------------------------------------------------------------- + // + // This file is the copyrighted property of Tableau Software and is protected + // by registered patents and other applicable U.S. and international laws and + // regulations. + // + // Unlicensed use of the contents of this file is prohibited. Please refer to + // the NOTICES.txt file for further details. + // + // ----------------------------------------------------------------------------- + // WARNING: Computer generated file. Do not hand modify. + // DEPENDS ON: ['../typescript/js-api/api-core/node_modules/@tableau/preslayer-codegen-typescript/templates/params-ts.template', u'../typescript/js-api/api-core/temp-pres-layer/all-params.data'] + Object.defineProperty(exports, "__esModule", { value: true }); + var ParameterId; + (function (ParameterId) { + // DPI_IntegerRLE, having type int[] + ParameterId["IntegerRLE"] = "intRle"; + // DPI_UnsignedIntegerRLE, having type uint[] + ParameterId["UnsignedIntegerRLE"] = "uintRle"; + // DPI_FloatRLE, having type float[] + ParameterId["FloatRLE"] = "floatRle"; + // DPI_ParameterID, having type string + ParameterId["ParameterID"] = "paramType"; + // DPI_AllowCustomDatabase, having type bool + ParameterId["AllowCustomDatabase"] = "allowCustomDatabase"; + // DPI_AllowCustomSchema, having type bool + ParameterId["AllowCustomSchema"] = "allowCustomSchema"; + // DPI_AllowCustomSQL, having type bool + ParameterId["AllowCustomSQL"] = "allowCustomSql"; + // DPI_AllowCustomSQLWithoutSchema, having type bool + ParameterId["AllowCustomSQLWithoutSchema"] = "allowCustomSqlWithoutSchema"; + // DPI_AllowPreviewData, having type bool + ParameterId["AllowPreviewData"] = "allowPreviewData"; + // DPI_AllowStoredProc, having type bool + ParameterId["AllowStoredProc"] = "allowStoredProcedure"; + // DPI_AllowUnion, having type bool + ParameterId["AllowUnion"] = "allowUnion"; + // DPI_AreVariablesVisible, having type bool + ParameterId["AreVariablesVisible"] = "areVariablesVisible"; + // DPI_AttrLegacyConnection, having type bool + ParameterId["AttrLegacyConnection"] = "widgetAttrLegacy"; + // DPI_AttrReadUncommitted, having type bool + ParameterId["AttrReadUncommitted"] = "widgetAttrReadUncommittedData"; + // DPI_AttrRequireSSL, having type bool + ParameterId["AttrRequireSSL"] = "widgetAttrRequireSsl"; + // DPI_AttrRequireEncryption, having type bool + ParameterId["AttrRequireEncryption"] = "widgetAttrRequireEncryption"; + // DPI_Bool, having type bool + ParameterId["Bool"] = "bool"; + // DPI_CanPartition, having type bool + ParameterId["CanPartition"] = "canPartition"; + // DPI_CanRecommendDataSources, having type bool + ParameterId["CanRecommendDataSources"] = "canRecommendDatasources"; + // DPI_CanRecommendTables, having type bool + ParameterId["CanRecommendTables"] = "canRecommendTables"; + // DPI_CheckPermissions, having type bool + ParameterId["CheckPermissions"] = "checkPermissions"; + // DPI_DatabaseNameOptional, having type bool + ParameterId["DatabaseNameOptional"] = "databaseNameOptional"; + // DPI_DatabaseWHOptional, having type bool + ParameterId["DatabaseWHOptional"] = "databaseWarehouseOptional"; + // DPI_DoValidation, having type bool + ParameterId["DoValidation"] = "doValidation"; + // DPI_DoneLoadingAllSheets, having type bool + ParameterId["DoneLoadingAllSheets"] = "googleSheetDoneLoading"; + // DPI_GABasicItemsEnabled, having type bool + ParameterId["GABasicItemsEnabled"] = "gaBasicItemsEnabled"; + // DPI_GADimensionMeasuresEnabled, having type bool + ParameterId["GADimensionMeasuresEnabled"] = "gaDimensionsMeasuresEnabled"; + // DPI_GAFiltersEnabled, having type bool + ParameterId["GAFiltersEnabled"] = "gaFiltersEnabled"; + // DPI_HasDatabase, having type bool + ParameterId["HasDatabase"] = "hasDatabase"; + // DPI_HasDataLoss, having type bool + ParameterId["HasDataLoss"] = "hasDataLoss"; + // DPI_HasFastMetadata, having type bool + ParameterId["HasFastMetadata"] = "hasFastMetadata"; + // DPI_HasNewlyDiscoveredSchema, having type bool + ParameterId["HasNewlyDiscoveredSchema"] = "hasNewlyDiscoveredSchema"; + // DPI_HasPermissions, having type bool + ParameterId["HasPermissions"] = "hasPermissions"; + // DPI_HasSchema, having type bool + ParameterId["HasSchema"] = "hasSchema"; + // DPI_HasSchemaCount, having type bool + ParameterId["HasSchemaCount"] = "hasSchemaCount"; + // DPI_HasTables, having type bool + ParameterId["HasTables"] = "hasTables"; + // DPI_HasUncommittedChanges, having type bool + ParameterId["HasUncommittedChanges"] = "hasUncommittedChanges"; + // DPI_HasWarehouse, having type bool + ParameterId["HasWarehouse"] = "hasWarehouse"; + // DPI_HasWarning, having type bool + ParameterId["HasWarning"] = "hasWarning"; + // DPI_IsCalculated, having type bool + ParameterId["IsCalculated"] = "isCalculated"; + // DPI_IsConnectedToDataSource, having type bool + ParameterId["IsConnectedToDataSource"] = "isConnectedDatasource"; + // DPI_IsDisabledDataConnection, having type bool + ParameterId["IsDisabledDataConnection"] = "isDisabledDataConnection"; + // DPI_IsEditable, having type bool + ParameterId["IsEditable"] = "isEditable"; + // DPI_IsEnabled, having type bool + ParameterId["IsEnabled"] = "isEnabled"; + // DPI_IsFinishedConnecting, having type bool + ParameterId["IsFinishedConnecting"] = "isFinishedConnecting"; + // DPI_IsHidden, having type bool + ParameterId["IsHidden"] = "isHidden"; + // DPI_IsMultiTable, having type bool + ParameterId["IsMultiTable"] = "isMultiTable"; + // DPI_IsNewCustomSQL, having type bool + ParameterId["IsNewCustomSQL"] = "isNewCustomSql"; + // DPI_IsNewDataSource, having type bool + ParameterId["IsNewDataSource"] = "isNewDataSrc"; + // DPI_IsPublishedFederated, having type bool + ParameterId["IsPublishedFederated"] = "isPublishedFederated"; + // DPI_IsSampled, having type bool + ParameterId["IsSampled"] = "isSampled"; + // DPI_IsSchemaMemberNewlyDiscovered, having type bool + ParameterId["IsSchemaMemberNewlyDiscovered"] = "isSchemaMemberNewlyDiscovered"; + // DPI_IsSlowFast, having type bool + ParameterId["IsSlowFast"] = "isSlowfast"; + // DPI_IsSupported, having type bool + ParameterId["IsSupported"] = "isSupported"; + // DPI_IsTableSelectionVisible, having type bool + ParameterId["IsTableSelectionVisible"] = "isTableSelectionVisible"; + // DPI_IsTableauServerDatasource, having type bool + ParameterId["IsTableauServerDatasource"] = "isTableauServerDatasource"; + // DPI_IsTableauServerDatasourceConnectable, having type bool + ParameterId["IsTableauServerDatasourceConnectable"] = "isTableauServerDatasourceConnectable"; + // DPI_IsTableauServerDatasourceDownloadable, having type bool + ParameterId["IsTableauServerDatasourceDownloadable"] = "isTableauServerDatasourceDownloadable"; + // DPI_IsVisible, having type bool + ParameterId["IsVisible"] = "isVisible"; + // DPI_NeedFlatten, having type bool + ParameterId["NeedFlatten"] = "needFlatten"; + // DPI_SSLRequiresCertificate, having type bool + ParameterId["SSLRequiresCertificate"] = "sslRequiresCertificate"; + // DPI_SchemaOptional, having type bool + ParameterId["SchemaOptional"] = "schemaOptional"; + // DPI_ServiceNameOptional, having type bool + ParameterId["ServiceNameOptional"] = "serviceNameOptional"; + // DPI_ShouldWarnForCrossSchemaJoins, having type bool + ParameterId["ShouldWarnForCrossSchemaJoins"] = "shouldWarnCrossSchemaJoins"; + // DPI_ShowBrowseButton, having type bool + ParameterId["ShowBrowseButton"] = "showBrowseButton"; + // DPI_ShowConnectionPrompt, having type bool + ParameterId["ShowConnectionPrompt"] = "showConnectionPrompt"; + // DPI_ShowDBBrowseButton, having type bool + ParameterId["ShowDBBrowseButton"] = "showDbBrowseButton"; + // DPI_ShowDBNamePrompt, having type bool + ParameterId["ShowDBNamePrompt"] = "showDbPrompt"; + // DPI_ShowDBWHNamePrompt, having type bool + ParameterId["ShowDBWHNamePrompt"] = "showDbwhPrompt"; + // DPI_ShowImportSSLCertLabel, having type bool + ParameterId["ShowImportSSLCertLabel"] = "showImportSslcertLabel"; + // DPI_ShowPortPrompt, having type bool + ParameterId["ShowPortPrompt"] = "showPortPrompt"; + // DPI_ShowSSLCheckbox, having type bool + ParameterId["ShowSSLCheckbox"] = "showSslCheckbox"; + // DPI_ShowEncryptionCheckbox, having type bool + ParameterId["ShowEncryptionCheckbox"] = "showEncryptionCheckbox"; + // DPI_ShowServerNamePrompt, having type bool + ParameterId["ShowServerNamePrompt"] = "showServerPrompt"; + // DPI_ShowServiceNamePrompt, having type bool + ParameterId["ShowServiceNamePrompt"] = "showServicePrompt"; + // DPI_ShowUncommittedDataCheckbox, having type bool + ParameterId["ShowUncommittedDataCheckbox"] = "showUncommittedDataCheckbox"; + // DPI_SupportsGenericAuth, having type bool + ParameterId["SupportsGenericAuth"] = "supportsGenericAuth"; + // DPI_TableauServerFetchAscending, having type bool + ParameterId["TableauServerFetchAscending"] = "tableauServerFetchAscending"; + // DPI_UsesRadioButton, having type bool + ParameterId["UsesRadioButton"] = "usesRadioButton"; + // DPI_BigQueryLegacySQLCheckStatus, having type bool + ParameterId["BigQueryLegacySQLCheckStatus"] = "datasourceBigqueryLegacySqlCheckStatus"; + // DPI_HasBigQueryLegacySQLCheck, having type bool + ParameterId["HasBigQueryLegacySQLCheck"] = "datasourceBigqueryLegacySqlCheck"; + // DPI_AutoFetchLimit, having type int + ParameterId["AutoFetchLimit"] = "autoFetchLimit"; + // DPI_ConnectionType, having type int + ParameterId["ConnectionType"] = "connectionType"; + // DPI_IconId, having type int + ParameterId["IconId"] = "iconId"; + // DPI_SelectedCatalogIndex, having type int + ParameterId["SelectedCatalogIndex"] = "selectedCatalogIndex"; + // DPI_SelectedCubeIndex, having type int + ParameterId["SelectedCubeIndex"] = "selectedCubeIndex"; + // DPI_SelectedGAAccountIndex, having type int + ParameterId["SelectedGAAccountIndex"] = "selectedGaAccountIndex"; + // DPI_SelectedGAMeasureSetIndex, having type int + ParameterId["SelectedGAMeasureSetIndex"] = "selectedGaMeasureSetIndex"; + // DPI_SelectedGAPropertyIndex, having type int + ParameterId["SelectedGAPropertyIndex"] = "selectedGaPropertyIndex"; + // DPI_SelectedGASegmentIndex, having type int + ParameterId["SelectedGASegmentIndex"] = "selectedGaSegmentIndex"; + // DPI_SelectedGAViewIndex, having type int + ParameterId["SelectedGAViewIndex"] = "selectedGaViewIndex"; + // DPI_SelectedGoogleSheetIndex, having type int + ParameterId["SelectedGoogleSheetIndex"] = "selectedGoogleSheetIndex"; + // DPI_SelectedOptionIndex, having type int + ParameterId["SelectedOptionIndex"] = "selectedOptionIndex"; + // DPI_SlowMetadataCount, having type int + ParameterId["SlowMetadataCount"] = "slowMetadataCount"; + // DPI_TableauServerFetchSortBy, having type int + ParameterId["TableauServerFetchSortBy"] = "tableauServerFetchSort"; + // DPI_ActualParameterOrdinal, having type uint + ParameterId["ActualParameterOrdinal"] = "actualParameterOrdinal"; + // DPI_ActualParameterType, having type uint + ParameterId["ActualParameterType"] = "actualParameterType"; + // DPI_CharSetID, having type uint + ParameterId["CharSetID"] = "charsetId"; + // DPI_DataSourceOrdinal, having type uint + ParameterId["DataSourceOrdinal"] = "datasourceOrdinal"; + // DPI_FilterCount, having type uint + ParameterId["FilterCount"] = "filterCount"; + // DPI_VariablesCount, having type uint + ParameterId["VariablesCount"] = "variablesCount"; + // DPI_ActualParameterDisplayName, having type string + ParameterId["ActualParameterDisplayName"] = "actualParameterDisplayName"; + // DPI_ActualParameterName, having type string + ParameterId["ActualParameterName"] = "actualParameterName"; + // DPI_ActualParameterValue, having type string + ParameterId["ActualParameterValue"] = "actualParameterValue"; + // DPI_AttrAPIVersion, having type string + ParameterId["AttrAPIVersion"] = "attrApiVersion"; + // DPI_AttrAuthType, having type string + ParameterId["AttrAuthType"] = "widgetAttrAuthtype"; + // DPI_AttrConnectionData, having type string + ParameterId["AttrConnectionData"] = "attrConnectionData"; + // DPI_AttrConnectionName, having type string + ParameterId["AttrConnectionName"] = "attrConnectionName"; + // DPI_AttrConnectionType, having type string + ParameterId["AttrConnectionType"] = "widgetAttrConnectiontype"; + // DPI_AttrConnectionURL, having type string + ParameterId["AttrConnectionURL"] = "attrConnectionUrl"; + // DPI_AttrCubeSpecificationId, having type string + ParameterId["AttrCubeSpecificationId"] = "widgetAttrCubeSpecificationId"; + // DPI_AttrCubeSpecificationValue, having type string + ParameterId["AttrCubeSpecificationValue"] = "widgetAttrCubeSpecificationValue"; + // DPI_AttrDSN, having type string + ParameterId["AttrDSN"] = "widgetAttrDsn"; + // DPI_AttrDatabase, having type string + ParameterId["AttrDatabase"] = "widgetAttrDb"; + // DPI_AttrDatabaseWarehouse, having type string + ParameterId["AttrDatabaseWarehouse"] = "widgetAttrDbwh"; + // DPI_AttrDriver, having type string + ParameterId["AttrDriver"] = "widgetAttrDriver"; + // DPI_AttrFilename, having type string + ParameterId["AttrFilename"] = "widgetAttrFilename"; + // DPI_AttrHTTPPath, having type string + ParameterId["AttrHTTPPath"] = "widgetAttrHttpPath"; + // DPI_AttrIncrementalRefreshKey, having type string + ParameterId["AttrIncrementalRefreshKey"] = "attrIncrementalRefreshKey"; + // DPI_AttrKerberosHost, having type string + ParameterId["AttrKerberosHost"] = "widgetAttrKerberosHost"; + // DPI_AttrKerberosRealm, having type string + ParameterId["AttrKerberosRealm"] = "widgetAttrKerberosRealm"; + // DPI_AttrKerberosService, having type string + ParameterId["AttrKerberosService"] = "widgetAttrKerberosService"; + // DPI_AttrLastRecordToken, having type string + ParameterId["AttrLastRecordToken"] = "attrLastRecordToken"; + // DPI_AttrMDWPath, having type string + ParameterId["AttrMDWPath"] = "widgetAttrMdwPath"; + // DPI_AttrMDWUsername, having type string + ParameterId["AttrMDWUsername"] = "widgetAttrMdwUsername"; + // DPI_AttrODBCPrompt, having type string + ParameterId["AttrODBCPrompt"] = "widgetAttrOdbcPrompt"; + // DPI_AttrODBCStringExtras, having type string + ParameterId["AttrODBCStringExtras"] = "widgetAttrOdbcStringExtras"; + // DPI_AttrPort, having type string + ParameterId["AttrPort"] = "widgetAttrPort"; + // DPI_AttrSAPClient, having type string + ParameterId["AttrSAPClient"] = "widgetAttrSapClient"; + // DPI_AttrSAPLanguage, having type string + ParameterId["AttrSAPLanguage"] = "widgetAttrSapLanguage"; + // DPI_AttrEdition, having type string + ParameterId["AttrEdition"] = "widgetAttrSslEdition"; + // DPI_AttrSSODomain, having type string + ParameterId["AttrSSODomain"] = "widgetAttrSsoDomain"; + // DPI_AttrSSLCert, having type string + ParameterId["AttrSSLCert"] = "widgetAttrSslCert"; + // DPI_AttrScriptVersion, having type string + ParameterId["AttrScriptVersion"] = "attrScriptVersion"; + // DPI_AttrServer, having type string + ParameterId["AttrServer"] = "widgetAttrServer"; + // DPI_AttrService, having type string + ParameterId["AttrService"] = "widgetAttrService"; + // DPI_AttrUsername, having type string + ParameterId["AttrUsername"] = "widgetAttrUser"; + // DPI_AuthenticationPrompt, having type string + ParameterId["AuthenticationPrompt"] = "authenticationPrompt"; + // DPI_ButtonClickAction, having type string + ParameterId["ButtonClickAction"] = "buttonClickAction"; + // DPI_ButtonCaption, having type string + ParameterId["ButtonCaption"] = "buttonCaption"; + // DPI_Caption, having type string + ParameterId["Caption"] = "caption"; + // DPI_CatalogListPrompt, having type string + ParameterId["CatalogListPrompt"] = "catalogListPrompt"; + // DPI_CatalogName, having type string + ParameterId["CatalogName"] = "catalogName"; + // DPI_CatalogSearchTerm, having type string + ParameterId["CatalogSearchTerm"] = "catalogSearchTerm"; + // DPI_Category, having type string + ParameterId["Category"] = "itemCategory"; + // DPI_ClassName, having type string + ParameterId["ClassName"] = "classNameForCleaning"; + // DPI_CloudFileClassName, having type string + ParameterId["CloudFileClassName"] = "cloudFileClassName"; + // DPI_CloudFileStorageProvider, having type string + ParameterId["CloudFileStorageProvider"] = "cloudFileStorageProvider"; + // DPI_ConfigName, having type string + ParameterId["ConfigName"] = "connectionConfigName"; + // DPI_ConnectionCaption, having type string + ParameterId["ConnectionCaption"] = "connectionCaption"; + // DPI_ConnectionDescriptionLabel, having type string + ParameterId["ConnectionDescriptionLabel"] = "connectionDescriptionLabel"; + // DPI_ConnectionClass, having type string + ParameterId["ConnectionClass"] = "connectionClassName"; + // DPI_ConnectionName, having type string + ParameterId["ConnectionName"] = "connectionName"; + // DPI_ConnectionOptionName, having type string + ParameterId["ConnectionOptionName"] = "connectionOptionName"; + // DPI_ConnectionSpecificationTitle, having type string + ParameterId["ConnectionSpecificationTitle"] = "connectionSpecificationTitle"; + // DPI_ConnectionTypeLabel, having type string + ParameterId["ConnectionTypeLabel"] = "connectionTypeLabel"; + // DPI_CubeDescription, having type string + ParameterId["CubeDescription"] = "cubeDescription"; + // DPI_CubeLastUpdated, having type string + ParameterId["CubeLastUpdated"] = "cubeLastUpdated"; + // DPI_CubeListPrompt, having type string + ParameterId["CubeListPrompt"] = "cubeListPrompt"; + // DPI_CubeName, having type string + ParameterId["CubeName"] = "cubeName"; + // DPI_CubeSearchTerm, having type string + ParameterId["CubeSearchTerm"] = "cubeSearchTerm"; + // DPI_CurrentText, having type string + ParameterId["CurrentText"] = "currentText"; + // DPI_CustomSplitStringSeparator, having type string + ParameterId["CustomSplitStringSeparator"] = "customSplitStringSeparator"; + // DPI_DatasourceId, having type string + ParameterId["DatasourceId"] = "datasourceId"; + // DPI_DBNamePrompt, having type string + ParameterId["DBNamePrompt"] = "dbNamePrompt"; + // DPI_DBWHNamePrompt, having type string + ParameterId["DBWHNamePrompt"] = "dbWarehouseNamePrompt"; + // DPI_DSClass, having type string + ParameterId["DSClass"] = "dsClass"; + // DPI_DatabaseName, having type string + ParameterId["DatabaseName"] = "datasourceDatabaseName"; + // DPI_DatabaseNote, having type string + ParameterId["DatabaseNote"] = "databaseNote"; + // DPI_DragLabel, having type string + ParameterId["DragLabel"] = "dragLabel"; + // DPI_EffectiveDateRange, having type string + ParameterId["EffectiveDateRange"] = "effectiveDateRange"; + // DPI_GoogleSheetCreatedTime, having type string + ParameterId["GoogleSheetCreatedTime"] = "googleSheetCreatedTime"; + // DPI_GoogleSheetId, having type string + ParameterId["GoogleSheetId"] = "googleSheetId"; + // DPI_GoogleSheetLastModifiedTime, having type string + ParameterId["GoogleSheetLastModifiedTime"] = "googleSheetLastModifiedTime"; + // DPI_GoogleSheetLastModifyingUser, having type string + ParameterId["GoogleSheetLastModifyingUser"] = "googleSheetLastModifyingUser"; + // DPI_GoogleSheetLastViewedByUserTime, having type string + ParameterId["GoogleSheetLastViewedByUserTime"] = "googleSheetLastViewedByUserTime"; + // DPI_GoogleSheetMimeType, having type string + ParameterId["GoogleSheetMimeType"] = "googleSheetMimeType"; + // DPI_GoogleSheetName, having type string + ParameterId["GoogleSheetName"] = "googleSheetName"; + // DPI_GoogleSheetOwner, having type string + ParameterId["GoogleSheetOwner"] = "googleSheetOwner"; + // DPI_GoogleSheetThumbnailLink, having type string + ParameterId["GoogleSheetThumbnailLink"] = "googleSheetThumbnailLink"; + // DPI_GoogleSheetThumbnailId, having type string + ParameterId["GoogleSheetThumbnailId"] = "googleSheetThumbnailId"; + // DPI_GoogleSheetThumbnailLocalPath, having type string + ParameterId["GoogleSheetThumbnailLocalPath"] = "googleSheetThumbnailLocalPath"; + // DPI_GoogleSheetWebViewLink, having type string + ParameterId["GoogleSheetWebViewLink"] = "googleSheetWebViewLink"; + // DPI_GoogleSheetsListErrorMessage, having type string + ParameterId["GoogleSheetsListErrorMessage"] = "googleSheetsListErrorMessage"; + // DPI_InitialSQL, having type string + ParameterId["InitialSQL"] = "initialSql"; + // DPI_ISODate, having type string + ParameterId["ISODate"] = "isoDate"; + // DPI_ISOEndDate, having type string + ParameterId["ISOEndDate"] = "isoEndDate"; + // DPI_ISOStartDate, having type string + ParameterId["ISOStartDate"] = "isoStartDate"; + // DPI_IsolationLevel, having type string + ParameterId["IsolationLevel"] = "datasourceIsolationLevel"; + // DPI_ItemDescription, having type string + ParameterId["ItemDescription"] = "itemDescription"; + // DPI_ItemId, having type string + ParameterId["ItemId"] = "itemId"; + // DPI_KerberosHost, having type string + ParameterId["KerberosHost"] = "datasourceKerberosHost"; + // DPI_KerberosRealm, having type string + ParameterId["KerberosRealm"] = "datasourceKerberosRealm"; + // DPI_KerberosService, having type string + ParameterId["KerberosService"] = "datasourceKerberosService"; + // DPI_Name, having type string + ParameterId["Name"] = "name"; + // DPI_OptionId, having type string + ParameterId["OptionId"] = "optionId"; + // DPI_PartitioningButtonLabel, having type string + ParameterId["PartitioningButtonLabel"] = "partitioningButtonLabel"; + // DPI_PartitioningButtonTooltip, having type string + ParameterId["PartitioningButtonTooltip"] = "partitioningButtonTooltip"; + // DPI_PartitioningText, having type string + ParameterId["PartitioningText"] = "queryPartitioningText"; + // DPI_PdfStartPage, having type string + ParameterId["PdfStartPage"] = "pdfStartPage"; + // DPI_PdfEndPage, having type string + ParameterId["PdfEndPage"] = "pdfEndPage"; + // DPI_PortPrompt, having type string + ParameterId["PortPrompt"] = "portPrompt"; + // DPI_PromptText, having type string + ParameterId["PromptText"] = "promptText"; + // DPI_QueryBanding, having type string + ParameterId["QueryBanding"] = "queryBanding"; + // DPI_QueryText, having type string + ParameterId["QueryText"] = "queryText"; + // DPI_RecommendationUUID, having type string + ParameterId["RecommendationUUID"] = "recommendationUuid"; + // DPI_SQLQuery, having type string + ParameterId["SQLQuery"] = "sqlQuery"; + // DPI_SchemaComboFallbackText, having type string + ParameterId["SchemaComboFallbackText"] = "schemaComboFallbackText"; + // DPI_SchemaLabel, having type string + ParameterId["SchemaLabel"] = "schemaLabel"; + // DPI_SchemaMemberGlobalName, having type string + ParameterId["SchemaMemberGlobalName"] = "schemaMemberGlobalName"; + // DPI_SchemaName, having type string + ParameterId["SchemaName"] = "datasourceSchemaName"; + // DPI_ScriptText, having type string + ParameterId["ScriptText"] = "scriptText"; + // DPI_SecondaryWhiteList, having type string + ParameterId["SecondaryWhiteList"] = "secondaryWhiteList"; + // DPI_Server, having type string + ParameterId["Server"] = "datasourceServer"; + // DPI_ServerNamePrompt, having type string + ParameterId["ServerNamePrompt"] = "serverNamePrompt"; + // DPI_Service, having type string + ParameterId["Service"] = "datasourceService"; + // DPI_ServiceNamePrompt, having type string + ParameterId["ServiceNamePrompt"] = "servicePrompt"; + // DPI_SheetFormatting, having type string + ParameterId["SheetFormatting"] = "sheetFormatting"; + // DPI_SlowMetadataSearchTerm, having type string + ParameterId["SlowMetadataSearchTerm"] = "slowMetadataSearchTerm"; + // DPI_StandardConnectionName, having type string + ParameterId["StandardConnectionName"] = "datasourceStandardConnectionName"; + // DPI_StandardConnectionPlaceholderText, having type string + ParameterId["StandardConnectionPlaceholderText"] = "standardConnectionPlaceholderText"; + // DPI_StoredProcedureParameterTitle, having type string + ParameterId["StoredProcedureParameterTitle"] = "storedProcedureParameterTitle"; + // DPI_TableAlias, having type string + ParameterId["TableAlias"] = "tableAlias"; + // DPI_RightTableAlias, having type string + ParameterId["RightTableAlias"] = "rightTableAlias"; + // DPI_TableCaption, having type string + ParameterId["TableCaption"] = "tableCaption"; + // DPI_TableCollectionName, having type string + ParameterId["TableCollectionName"] = "tableCollectionName"; + // DPI_TablePlaceholderText, having type string + ParameterId["TablePlaceholderText"] = "tablePlaceholderText"; + // DPI_TableRanking, having type string + ParameterId["TableRanking"] = "tableRanking"; + // DPI_TableSortKey, having type string + ParameterId["TableSortKey"] = "tableSortkey"; + // DPI_TableTooltip, having type string + ParameterId["TableTooltip"] = "tableTooltip"; + // DPI_TableToReplace, having type string + ParameterId["TableToReplace"] = "tableToReplace"; + // DPI_TableWarningMessage, having type string + ParameterId["TableWarningMessage"] = "tableWarningMessage"; + // DPI_TableauServerDatasourceDescription, having type string + ParameterId["TableauServerDatasourceDescription"] = "tableauServerDatasourceDescription"; + // DPI_TableauServerDatasourceLastExtract, having type string + ParameterId["TableauServerDatasourceLastExtract"] = "tableauServerDatasourceLastExtract"; + // DPI_TableauServerDatasourceModified, having type string + ParameterId["TableauServerDatasourceModified"] = "tableauServerDatasourceModified"; + // DPI_TableauServerDatasourceOwner, having type string + ParameterId["TableauServerDatasourceOwner"] = "tableauServerDatasourceOwner"; + // DPI_TableauServerDatasourcePath, having type string + ParameterId["TableauServerDatasourcePath"] = "tableauServerDatasourcePath"; + // DPI_TableauServerFetchSearchQuery, having type string + ParameterId["TableauServerFetchSearchQuery"] = "tableauServerFetchSearchQuery"; + // DPI_TableauServerName, having type string + ParameterId["TableauServerName"] = "tableauServerName"; + // DPI_TableauServerProjectName, having type string + ParameterId["TableauServerProjectName"] = "tableauServerProjectName"; + // DPI_TableauServerUsername, having type string + ParameterId["TableauServerUsername"] = "tableauServerUsername"; + // DPI_TransportType, having type string + ParameterId["TransportType"] = "transportType"; + // DPI_WarehouseName, having type string + ParameterId["WarehouseName"] = "datasourceWarehouseName"; + // DPI_WorkgroupWorkbookName, having type string + ParameterId["WorkgroupWorkbookName"] = "workgroupWorkbookName"; + // DPI_AnalyticsItemTooltip, having type string + ParameterId["AnalyticsItemTooltip"] = "analyticsItemTooltip"; + // DPI_Description, having type string + ParameterId["Description"] = "description"; + // DPI_DSClassCaption, having type string + ParameterId["DSClassCaption"] = "dsClassCaption"; + // DPI_Formula, having type string + ParameterId["Formula"] = "formula"; + // DPI_MessageText, having type string + ParameterId["MessageText"] = "messageText"; + // DPI_Datasource, having type string + ParameterId["Datasource"] = "datasource"; + // DPI_DatasourceSource, having type string + ParameterId["DatasourceSource"] = "datasourceSource"; + // DPI_DatasourceTarget, having type string + ParameterId["DatasourceTarget"] = "datasourceTarget"; + // DPI_FirstDatasource, having type string + ParameterId["FirstDatasource"] = "firstDatasource"; + // DPI_NewDatasource, having type string + ParameterId["NewDatasource"] = "newDatasource"; + // DPI_ParametersDatasource, having type string + ParameterId["ParametersDatasource"] = "parametersDatasource"; + // DPI_PrimaryDatasource, having type string + ParameterId["PrimaryDatasource"] = "primaryDatasource"; + // DPI_ConnectionDatabases, having type string[] + ParameterId["ConnectionDatabases"] = "connectionDatabases"; + // DPI_ConnectionSchemas, having type string[] + ParameterId["ConnectionSchemas"] = "connectionSchemas"; + // DPI_ConnectionWarehouses, having type string[] + ParameterId["ConnectionWarehouses"] = "connectionWarehouses"; + // DPI_DSClasses, having type string[] + ParameterId["DSClasses"] = "dsClasses"; + // DPI_PossibleChoices, having type string[] + ParameterId["PossibleChoices"] = "possibleChoices"; + // DPI_StandardConnections, having type string[] + ParameterId["StandardConnections"] = "standardConnections"; + // DPI_Strings, having type string[] + ParameterId["Strings"] = "strings"; + // DPI_TableauServerProjectNames, having type string[] + ParameterId["TableauServerProjectNames"] = "tableauServerProjectNames"; + // DPI_TableCaptions, having type string[] + ParameterId["TableCaptions"] = "tableCaptions"; + // DPI_DataValues, having type object[] + ParameterId["DataValues"] = "dataValues"; + // DPI_QueryBandErrors, having type object[] + ParameterId["QueryBandErrors"] = "queryBandErrors"; + // DPI_QueryBandParameters, having type object[] + ParameterId["QueryBandParameters"] = "queryBandParameters"; + // DPI_InitialSQLParameters, having type object[] + ParameterId["InitialSQLParameters"] = "initialSqlParameters"; + // DPI_ConnectionAttributes, having type Dictionary(of string) + ParameterId["ConnectionAttributes"] = "connectionAttrs"; + // DPI_ConnectionProps, having type Dictionary(of string) + ParameterId["ConnectionProps"] = "connectionProps"; + // DPI_DisplayNameMap, having type Dictionary(of string) + ParameterId["DisplayNameMap"] = "displayNameMap"; + // DPI_LookupTable, having type Dictionary(of string) + ParameterId["LookupTable"] = "lookupTable"; + // DPI_OAuthAttrs, having type Dictionary(of string) + ParameterId["OAuthAttrs"] = "oauthAttrs"; + // DPI_StringMap, having type Dictionary(of string) + ParameterId["StringMap"] = "stringMap"; + // DPI_TableRankingMap, having type Dictionary(of string) + ParameterId["TableRankingMap"] = "tableRankingMap"; + // DPI_WDCAttributes, having type Dictionary(of string) + ParameterId["WDCAttributes"] = "wdcAttrs"; + // DPI_ConnectorAttributes, having type Dictionary(of string) + ParameterId["ConnectorAttributes"] = "connectorAttrs"; + // DPI_TableRelevanceParams, having type Dictionary(of string) + ParameterId["TableRelevanceParams"] = "tableRelevanceParams"; + // DPI_ActualParameterParameter, having type string + ParameterId["ActualParameterParameter"] = "actualParameterParameter"; + // DPI_DataColumnName, having type string + ParameterId["DataColumnName"] = "dataColumnName"; + // DPI_LHSDataColumnName, having type string + ParameterId["LHSDataColumnName"] = "lhsDataColumnName"; + // DPI_RHSDataColumnName, having type string + ParameterId["RHSDataColumnName"] = "rhsDataColumnName"; + // DPI_FullCubeName, having type string + ParameterId["FullCubeName"] = "fullCubeName"; + // DPI_FullVariableName, having type string + ParameterId["FullVariableName"] = "fullVariableName"; + // DPI_SemanticRole, having type string + ParameterId["SemanticRole"] = "semanticRole"; + // DPI_StoredProcedureName, having type string + ParameterId["StoredProcedureName"] = "storedProcName"; + // DPI_TableName, having type string + ParameterId["TableName"] = "tableName"; + // DPI_AddedTableNames, having type string[] + ParameterId["AddedTableNames"] = "addedTableNames"; + // DPI_CoalesceGroupFields, having type string[] + ParameterId["CoalesceGroupFields"] = "coalesceGroupFields"; + // DPI_FieldNames, having type string[] + ParameterId["FieldNames"] = "fieldNames"; + // DPI_JoinFieldAliases, having type string[] + ParameterId["JoinFieldAliases"] = "joinField_aliases"; + // DPI_JoinInfoFields, having type string[] + ParameterId["JoinInfoFields"] = "joinInfoFields"; + // DPI_PivotGroupFields, having type string[] + ParameterId["PivotGroupFields"] = "pivotGroupFields"; + // DPI_RemovedTableNames, having type string[] + ParameterId["RemovedTableNames"] = "removedTableNames"; + // DPI_StoredProcedures, having type string[] + ParameterId["StoredProcedures"] = "storedProcedures"; + // DPI_TableNames, having type string[] + ParameterId["TableNames"] = "tableNames"; + // DPI_ColumnName, having type string + ParameterId["ColumnName"] = "columnName"; + // DPI_FieldName, having type string + ParameterId["FieldName"] = "fn"; + // DPI_GoogleSheetThumbnailImage, having type string + ParameterId["GoogleSheetThumbnailImage"] = "googleSheetThumbnailImage"; + // DPI_AttrMDWPassword, having type string + ParameterId["AttrMDWPassword"] = "widgetAttrMdwPassword"; + // DPI_AttrPassword, having type string + ParameterId["AttrPassword"] = "widgetAttrPassword"; + // DPI_DatasourcePassword, having type string + ParameterId["DatasourcePassword"] = "datasourcePassword"; + // DPI_FederatedKeychain, having type string + ParameterId["FederatedKeychain"] = "federatedKeychain"; + // DPI_DataParameterID, having type string + ParameterId["DataParameterID"] = "dataParamType"; + // DPI_ConnectServerWidgetType, having type ConnectServerWidgetType + ParameterId["ConnectServerWidgetType"] = "connectServerWidgetType"; + // DPI_AuthenticationMode, having type Mode + ParameterId["AuthenticationMode"] = "authMode"; + // DPI_ReconnectAuthMode, having type ReconnectMode + ParameterId["ReconnectAuthMode"] = "reconnectAuthMode"; + // DPI_CurrentAuthOption, having type AuthOption + ParameterId["CurrentAuthOption"] = "currAuthOption"; + // DPI_AuthOptionList, having type AuthOption[] + ParameterId["AuthOptionList"] = "authOptions"; + // DPI_ConnectionSpecificationType, having type ConnectionSpecificationType + ParameterId["ConnectionSpecificationType"] = "connectionSpecificationType"; + // DPI_DataType, having type DataType + ParameterId["DataType"] = "dataType"; + // DPI_LHSDataType, having type DataType + ParameterId["LHSDataType"] = "lhsDataType"; + // DPI_RHSDataType, having type DataType + ParameterId["RHSDataType"] = "rhsDataType"; + // DPI_DefaultFieldRole, having type FieldRole + ParameterId["DefaultFieldRole"] = "defaultFieldRole"; + // DPI_FieldRole, having type FieldRole + ParameterId["FieldRole"] = "fieldRole"; + // DPI_DefaultFieldType, having type FieldType + ParameterId["DefaultFieldType"] = "defaultFieldType"; + // DPI_FieldType, having type FieldType + ParameterId["FieldType"] = "fieldType"; + // DPI_FieldTypeList, having type FieldType[] + ParameterId["FieldTypeList"] = "fieldTypeList"; + // DPI_FieldTypeListDetail, having type FieldType[] + ParameterId["FieldTypeListDetail"] = "fieldTypeListDetail"; + // DPI_AggType, having type AggType + ParameterId["AggType"] = "aggregation"; + // DPI_DefaultAggType, having type AggType + ParameterId["DefaultAggType"] = "defaultAggregation"; + // DPI_ForecastAgg, having type AggType + ParameterId["ForecastAgg"] = "forecastSummarizeTo"; + // DPI_ForecastAutoAgg, having type AggType + ParameterId["ForecastAutoAgg"] = "forecastAutoSummarizeTo"; + // DPI_ForecastAutoRangeUnits, having type AggType + ParameterId["ForecastAutoRangeUnits"] = "forecastAutoRangeUnits"; + // DPI_ForecastEndOfRangeUnits, having type AggType + ParameterId["ForecastEndOfRangeUnits"] = "forecastEndOfRangeUnits"; + // DPI_ForecastNextRangeUnits, having type AggType + ParameterId["ForecastNextRangeUnits"] = "forecastNextRangeUnits"; + // DPI_SourceAgg, having type AggType + ParameterId["SourceAgg"] = "sourceAggregation"; + // DPI_TargetAgg, having type AggType + ParameterId["TargetAgg"] = "targetAggregation"; + // DPI_AggregateByAggTypes, having type AggType[] + ParameterId["AggregateByAggTypes"] = "aggregateByAggTypes"; + // DPI_AggregationValues, having type AggType[] + ParameterId["AggregationValues"] = "aggregationValues"; + // DPI_SortAggValues, having type AggType[] + ParameterId["SortAggValues"] = "sortAggValues"; + // DPI_ColumnClass, having type ColumnClass + ParameterId["ColumnClass"] = "columnClass"; + // DPI_ConnectionWidgetType, having type ConnectionWidgetType + ParameterId["ConnectionWidgetType"] = "connectionWidgetType"; + // DPI_TablePillIcon, having type TablePillIcon + ParameterId["TablePillIcon"] = "tablePillIconType"; + // DPI_EnumeratedEntityType, having type EntityType + ParameterId["EnumeratedEntityType"] = "enumeratedEntityType"; + // DPI_PickEntitySearchType, having type PickEntitySearchType + ParameterId["PickEntitySearchType"] = "entitySearchType"; + // DPI_ExpressionOp, having type Op + ParameterId["ExpressionOp"] = "expressionOp"; + // DPI_ExpressionOperatorCaption, having type ExpressionOperatorCaptionPresModel + ParameterId["ExpressionOperatorCaption"] = "expressionOperatorCaption"; + // DPI_RelationalExperessionOps, having type ExpressionOperatorCaptionPresModel[] + ParameterId["RelationalExperessionOps"] = "relationalExpressionOps"; + // DPI_HierarchyExpressionOps, having type ExpressionOperatorCaptionPresModel[] + ParameterId["HierarchyExpressionOps"] = "hierarchyExpressionOps"; + // DPI_DefaultSortDirection, having type SortDirection + ParameterId["DefaultSortDirection"] = "defSortOrder"; + // DPI_SortDirection, having type SortDirection + ParameterId["SortDirection"] = "sortOrder"; + // DPI_SortDirectionValues, having type SortDirection[] + ParameterId["SortDirectionValues"] = "sortDirectionValues"; + // DPI_CubeMetadataCategory, having type CubeMetadataCategory + ParameterId["CubeMetadataCategory"] = "cubeMetadataCategory"; + // DPI_CubeMetadataCategories, having type CubeMetadataCategory[] + ParameterId["CubeMetadataCategories"] = "cubeMetadataCategories"; + // DPI_GoogleBasicInfoType, having type GoogleBasicInfoType + ParameterId["GoogleBasicInfoType"] = "googleBasicInfoType"; + // DPI_GoogleAnalyticsDateRangeOptionType, having type DateRange + ParameterId["GoogleAnalyticsDateRangeOptionType"] = "googleAnalyticsDateRangeOptionType"; + // DPI_TableCalcType, having type TableCalcType + ParameterId["TableCalcType"] = "tableCalcType"; + // DPI_TableCalcTypeValues, having type TableCalcType[] + ParameterId["TableCalcTypeValues"] = "tableCalcTypeValues"; + // DPI_RelativeAddress, having type RelativeAddress + ParameterId["RelativeAddress"] = "relativeAddress"; + // DPI_RelativeValues, having type RelativeAddress[] + ParameterId["RelativeValues"] = "relativeValues"; + // DPI_OrderingType, having type OrderingType + ParameterId["OrderingType"] = "orderingType"; + // DPI_OrderingTypeValues, having type OrderingType[] + ParameterId["OrderingTypeValues"] = "orderingTypeValues"; + // DPI_CategoricalBinItemType, having type CategoricalBinItemType + ParameterId["CategoricalBinItemType"] = "categoricalBinItemType"; + // DPI_AuthenticationInfos, having type AuthenticationSettingsPresModel + ParameterId["AuthenticationInfos"] = "authInfo"; + // DPI_ConnectionWidgetParams, having type ConnectionParamsPresModel + ParameterId["ConnectionWidgetParams"] = "widgetConnectionParams"; + // DPI_ConnectionSettings, having type ConnectionSettingsPresModel + ParameterId["ConnectionSettings"] = "connectionSettings"; + // DPI_ReconnectAuthenticationSettings, having type AuthenticationSettingsPresModel + ParameterId["ReconnectAuthenticationSettings"] = "reconnectAuthSettings"; + // DPI_CubeConnectionSpecificationOption, having type CubeConnectionSpecificationOptionPresModel + ParameterId["CubeConnectionSpecificationOption"] = "cubeConnectionSpecificationOption"; + // DPI_CubeConnectionSpecificationOptions, having type CubeConnectionSpecificationOptionPresModel[] + ParameterId["CubeConnectionSpecificationOptions"] = "cubeConnectionSpecificationOptions"; + // DPI_CubeConnectionSpecification, having type CubeConnectionSpecificationPresModel + ParameterId["CubeConnectionSpecification"] = "cubeConnectionSpecification"; + // DPI_ConnectionSettingsOption, having type ConnectionSettingsOptionPresModel + ParameterId["ConnectionSettingsOption"] = "connectionSettingsOption"; + // DPI_ConnectionSettingsOptions, having type ConnectionSettingsOptionPresModel[] + ParameterId["ConnectionSettingsOptions"] = "connectionSettingsOptions"; + // DPI_StringCollation, having type StringCollationPresModel + ParameterId["StringCollation"] = "stringCollation"; + // DPI_DatabaseEnumeration, having type DatabaseEnumerationPresModel + ParameterId["DatabaseEnumeration"] = "databaseEnumeration"; + // DPI_SchemaEnumeration, having type SchemaEnumerationPresModel + ParameterId["SchemaEnumeration"] = "schemaEnumeration"; + // DPI_StandardConnectionEnumeration, having type StandardConnectionEnumerationPresModel + ParameterId["StandardConnectionEnumeration"] = "standardConnectionEnumeration"; + // DPI_StoredProcedureEnumeration, having type StoredProcedureEnumerationPresModel + ParameterId["StoredProcedureEnumeration"] = "storedProcedureEnumeration"; + // DPI_TableEnumeration, having type TableEnumerationPresModel + ParameterId["TableEnumeration"] = "tableEnumeration"; + // DPI_WarehouseEnumeration, having type WarehouseEnumerationPresModel + ParameterId["WarehouseEnumeration"] = "warehouseEnumeration"; + // DPI_SlowMetadataSchemaList, having type SlowMetadataSchemaListPresModel + ParameterId["SlowMetadataSchemaList"] = "slowMetadataSchemaList"; + // DPI_SlowMetadataTableList, having type SlowMetadataTableListPresModel + ParameterId["SlowMetadataTableList"] = "slowMetadataTableList"; + // DPI_CubeCatalog, having type CubeCatalogPresModel + ParameterId["CubeCatalog"] = "cubeCatalog"; + // DPI_CubeCatalogs, having type CubeCatalogPresModel[] + ParameterId["CubeCatalogs"] = "cubeCatalogs"; + // DPI_CubeCatalogEnumeration, having type CubeCatalogEnumerationPresModel + ParameterId["CubeCatalogEnumeration"] = "cubeCatalogEnumeration"; + // DPI_Cube, having type CubePresModel + ParameterId["Cube"] = "cube"; + // DPI_Cubes, having type CubePresModel[] + ParameterId["Cubes"] = "cubes"; + // DPI_CubeEnumeration, having type CubeEnumerationPresModel + ParameterId["CubeEnumeration"] = "cubeEnumeration"; + // DPI_GoogleAnalyticsBasicItem, having type GoogleAnalyticsBasicItemPresModel + ParameterId["GoogleAnalyticsBasicItem"] = "googleAnalyticsBasicItem"; + // DPI_GAMeasureSets, having type GoogleAnalyticsBasicItemPresModel[] + ParameterId["GAMeasureSets"] = "gaMeasureSets"; + // DPI_GoogleAnalyticsViews, having type GoogleAnalyticsBasicItemPresModel[] + ParameterId["GoogleAnalyticsViews"] = "googleAnalyticsViews"; + // DPI_GoogleAnalyticsProperties, having type GoogleAnalyticsBasicItemPresModel[] + ParameterId["GoogleAnalyticsProperties"] = "googleAnalyticsProperties"; + // DPI_GoogleBasicInfoItems, having type GoogleAnalyticsBasicItemPresModel[] + ParameterId["GoogleBasicInfoItems"] = "googleAnalyticsAccounts"; + // DPI_GoogleAnalyticsComplexItem, having type GoogleAnalyticsComplexItemPresModel + ParameterId["GoogleAnalyticsComplexItem"] = "googleAnalyticsComplexItem"; + // DPI_GoogleAnalyticsPossibleDimensions, having type GoogleAnalyticsComplexItemPresModel[] + ParameterId["GoogleAnalyticsPossibleDimensions"] = "googleAnalyticsPossibleDimensions"; + // DPI_GoogleAnalyticsPossibleMeasures, having type GoogleAnalyticsComplexItemPresModel[] + ParameterId["GoogleAnalyticsPossibleMeasures"] = "googleAnalyticsPossibleMeasures"; + // DPI_GoogleAnalyticsPossibleSegments, having type GoogleAnalyticsComplexItemPresModel[] + ParameterId["GoogleAnalyticsPossibleSegments"] = "googleAnalyticsPossibleSegments"; + // DPI_GoogleAnalyticsSelectedDimensions, having type GoogleAnalyticsComplexItemPresModel[] + ParameterId["GoogleAnalyticsSelectedDimensions"] = "googleAnalyticsSelectedDimensions"; + // DPI_GoogleAnalyticsSelectedMeasures, having type GoogleAnalyticsComplexItemPresModel[] + ParameterId["GoogleAnalyticsSelectedMeasures"] = "googleAnalyticsSelectedMeasures"; + // DPI_GoogleAnalyticsDateRangeOption, having type GoogleAnalyticsDateRangeOptionPresModel + ParameterId["GoogleAnalyticsDateRangeOption"] = "googleAnalyticsDateRangeOption"; + // DPI_GoogleAnalyticsDateRangeOptions, having type GoogleAnalyticsDateRangeOptionPresModel[] + ParameterId["GoogleAnalyticsDateRangeOptions"] = "googleAnalyticsDateRangeOptions"; + // DPI_GoogleAnalyticsEndDate, having type GoogleAnalyticsDatePresModel + ParameterId["GoogleAnalyticsEndDate"] = "googleAnalyticsEndDate"; + // DPI_GoogleAnalyticsStartDate, having type GoogleAnalyticsDatePresModel + ParameterId["GoogleAnalyticsStartDate"] = "googleAnalyticsStartDate"; + // DPI_GoogleAnalyticsDateRange, having type GoogleAnalyticsDateRangePresModel + ParameterId["GoogleAnalyticsDateRange"] = "googleAnalyticsDateRange"; + // DPI_GoogleAnalyticsQueryPartitioning, having type GoogleAnalyticsQueryPartitioningPresModel + ParameterId["GoogleAnalyticsQueryPartitioning"] = "googleAnalyticsQueryPartitioning"; + // DPI_GAConnectionDescription, having type GoogleAnalyticsConnectionDescriptionPresModel + ParameterId["GAConnectionDescription"] = "gaConnectionDescription"; + // DPI_GoogleSheetItem, having type GoogleSheetItemPresModel + ParameterId["GoogleSheetItem"] = "googleSheetItem"; + // DPI_GoogleSheetItems, having type GoogleSheetItemPresModel[] + ParameterId["GoogleSheetItems"] = "googleSheetItems"; + // DPI_GoogleSheetsListPresModel, having type GoogleSheetsListPresModel + ParameterId["GoogleSheetsListPresModel"] = "googleSheetsList"; + // DPI_GoogleSheetPanePresModel, having type GoogleSheetPanePresModel + ParameterId["GoogleSheetPanePresModel"] = "googleSheetPane"; + // DPI_TableauServerConnectionDescription, having type TableauServerConnectionDescriptionPresModel + ParameterId["TableauServerConnectionDescription"] = "tableauServerConnectionDescription"; + // DPI_InitialSQLPresModel, having type InitialSQLPresModel + ParameterId["InitialSQLPresModel"] = "initialSqlPresModel"; + // DPI_QueryBandingPresModel, having type QueryBandingPresModel + ParameterId["QueryBandingPresModel"] = "queryBandingPresModel"; + // DPI_SlowMetadata, having type SlowMetadataPresModel + ParameterId["SlowMetadata"] = "slowMetadata"; + // DPI_SlowMetadataSchemaSearchPresModel, having type SlowMetadataSearchPresModel + ParameterId["SlowMetadataSchemaSearchPresModel"] = "slowMetadataSchemaSearch"; + // DPI_SlowMetadataTableSearchPresModel, having type SlowMetadataSearchPresModel + ParameterId["SlowMetadataTableSearchPresModel"] = "slowMetadataTableSearch"; + // DPI_TableauServerProjectsPresModel, having type TableauServerProjectsPresModel + ParameterId["TableauServerProjectsPresModel"] = "tableauServerProjectsPresmodel"; + // DPI_TableauServerDataSourcePresModel, having type TableauServerDataSourcePresModel + ParameterId["TableauServerDataSourcePresModel"] = "tableauServerDataSourcePresmodel"; + // DPI_TableauServerDataSourcePresModels, having type TableauServerDataSourcePresModel[] + ParameterId["TableauServerDataSourcePresModels"] = "tableauServerDataSourcePresmodels"; + // DPI_TableauServerDataSourcesPresModel, having type TableauServerDataSourcesPresModel + ParameterId["TableauServerDataSourcesPresModel"] = "tableauServerDataSourcesPresmodel"; + // DPI_TableauServerDataPresModel, having type TableauServerDataPresModel + ParameterId["TableauServerDataPresModel"] = "tableauServerDataPresmodel"; + // DPI_StoredProcedureParameterPresModel, having type StoredProcedureParameterPresModel + ParameterId["StoredProcedureParameterPresModel"] = "storedProcedureParameter"; + // DPI_StoredProcedureParametersPresModel, having type StoredProcedureParameterPresModel[] + ParameterId["StoredProcedureParametersPresModel"] = "storedProcedureParameters"; + // DPI_CustomSQLInfo, having type CustomSQLInfoPresModel + ParameterId["CustomSQLInfo"] = "customSqlInfo"; + // DPI_ConnectionTableInfo, having type ConnectionTableInfoPresModel + ParameterId["ConnectionTableInfo"] = "connectionTableInfo"; + // DPI_TableInfos, having type ConnectionTableInfoPresModel[] + ParameterId["TableInfos"] = "tableInfos"; + // DPI_ConnectionDescription, having type ConnectionDescriptionPresModel + ParameterId["ConnectionDescription"] = "connectionDescription"; + // DPI_DataSourceParserValidationMode, having type DataSourceParserValidationMode + ParameterId["DataSourceParserValidationMode"] = "dataSourceParserValidationMode"; + // DPI_OAuthCredentialTypeInfo, having type OAuthCredentialTypeInfoPresModel + ParameterId["OAuthCredentialTypeInfo"] = "oauthCredentialTypeInfo"; + // DPI_OAuthCredentialTypeInfos, having type OAuthCredentialTypeInfoPresModel[] + ParameterId["OAuthCredentialTypeInfos"] = "oauthCredentialTypeInfos"; + // DPI_OAuthSettings, having type OAuthSettingsPresModel + ParameterId["OAuthSettings"] = "oauthSettings"; + // DPI_CredentialTypePropertiesFlag, having type CredentialTypePropertiesFlag + ParameterId["CredentialTypePropertiesFlag"] = "credentialTypePropertiesFlag"; + // DPI_CredentialTypePropertiesFlags, having type CredentialTypePropertiesFlag[] + ParameterId["CredentialTypePropertiesFlags"] = "credentialTypePropertiesFlags"; + // DPI_ConnectionTypeEnum, having type ConnectionTypeEnum + ParameterId["ConnectionTypeEnum"] = "connectionTypeEnum"; + // DPI_ConnectorType, having type ConnectorType + ParameterId["ConnectorType"] = "connectorType"; + // DPI_PdfPagePicker, having type PdfPagePickerPresModel + ParameterId["PdfPagePicker"] = "pdfPagePicker"; + // DPI_ActivateNew, having type bool + ParameterId["ActivateNew"] = "activateNew"; + // DPI_AddActions, having type bool + ParameterId["AddActions"] = "addActions"; + // DPI_AddAsFloating, having type bool + ParameterId["AddAsFloating"] = "addAsFloating"; + // DPI_AddColorDictionary, having type bool + ParameterId["AddColorDictionary"] = "addColorDictionary"; + // DPI_AddDroplines, having type bool + ParameterId["AddDroplines"] = "addDroplines"; + // DPI_AddHeaders, having type bool + ParameterId["AddHeaders"] = "addHeaders"; + // DPI_AddHighlighting, having type bool + ParameterId["AddHighlighting"] = "addHighlighting"; + // DPI_AddImageDictionary, having type bool + ParameterId["AddImageDictionary"] = "addImageDictionary"; + // DPI_AddMarkLabels, having type bool + ParameterId["AddMarkLabels"] = "addMarkLabels"; + // DPI_AddPages, having type bool + ParameterId["AddPages"] = "addPages"; + // DPI_AddSelection, having type bool + ParameterId["AddSelection"] = "addSelection"; + // DPI_AddToFolder, having type bool + ParameterId["AddToFolder"] = "addToFolder"; + // DPI_AddVizData, having type bool + ParameterId["AddVizData"] = "addVizData"; + // DPI_AlertConditionMet, having type bool + ParameterId["AlertConditionMet"] = "alertConditionMet"; + // DPI_AllFields, having type bool + ParameterId["AllFields"] = "allFields"; + // DPI_AllOnEmpty, having type bool + ParameterId["AllOnEmpty"] = "allOnEmpty"; + // DPI_AllPages, having type bool + ParameterId["AllPages"] = "includeAllPages"; + // DPI_AllowPreviewSizeChange, having type bool + ParameterId["AllowPreviewSizeChange"] = "allowPreviewSizeChange"; + // DPI_AllSelectedIsEffectivelyRangeTypeAll, having type bool + ParameterId["AllSelectedIsEffectivelyRangeTypeAll"] = "allSelectedIsEffectivelyRangeTypeAll"; + // DPI_AllStoryPoints, having type bool + ParameterId["AllStoryPoints"] = "allStorypoints"; + // DPI_AllowAllRange, having type bool + ParameterId["AllowAllRange"] = "allowAllRange"; + // DPI_AllowCreatingNewParameters, having type bool + ParameterId["AllowCreatingNewParameters"] = "allowCreatingNewParameters"; + // DPI_AllowDuplicateFieldDropOnFilterShelf, having type bool + ParameterId["AllowDuplicateFieldDropOnFilterShelf"] = "allowDuplicateFieldDropOnFilterShelf"; + // DPI_AllowFilterPreset, having type bool + ParameterId["AllowFilterPreset"] = "allowFilterPreset"; + // DPI_AllowHoverActions, having type bool + ParameterId["AllowHoverActions"] = "allowHoverActions"; + // DPI_AllowHyphenation, having type bool + ParameterId["AllowHyphenation"] = "allowHyphenation"; + // DPI_AllowJoinOnCalc, having type bool + ParameterId["AllowJoinOnCalc"] = "allowJoinOnCalc"; + // DPI_AllowManualRange, having type bool + ParameterId["AllowManualRange"] = "allowManualRange"; + // DPI_AllowMapping, having type bool + ParameterId["AllowMapping"] = "allowMapping"; + // DPI_AllowMultiSelect, having type bool + ParameterId["AllowMultiSelect"] = "allowMultiSelect"; + // DPI_AllowNull, having type bool + ParameterId["AllowNull"] = "allowNull"; + // DPI_AllowPanZoom, having type bool + ParameterId["AllowPanZoom"] = "allowPanZoom"; + // DPI_AllowPatternBased, having type bool + ParameterId["AllowPatternBased"] = "allowPatternBasedUnion"; + // DPI_AllowPromptText, having type bool + ParameterId["AllowPromptText"] = "allowPromptText"; + // DPI_AllowSaveDataSource, having type bool + ParameterId["AllowSaveDataSource"] = "allowSaveDataSource"; + // DPI_AllowWholeDate, having type bool + ParameterId["AllowWholeDate"] = "allowWholeDate"; + // DPI_AllowWork, having type bool + ParameterId["AllowWork"] = "allowWork"; + // DPI_AllowWrap, having type bool + ParameterId["AllowWrap"] = "allowWrap"; + // DPI_AppIs32Bit, having type bool + ParameterId["AppIs32Bit"] = "appIs32Bit"; + // DPI_AppIs64Bit, having type bool + ParameterId["AppIs64Bit"] = "appIs64Bit"; + // DPI_AppIsBeta, having type bool + ParameterId["AppIsBeta"] = "appIsBeta"; + // DPI_AppIsOEM, having type bool + ParameterId["AppIsOEM"] = "appIsOem"; + // DPI_AppendTde, having type bool + ParameterId["AppendTde"] = "appendTde"; + // DPI_ApplyColors, having type bool + ParameterId["ApplyColors"] = "applyColors"; + // DPI_ApplyNewSelection, having type bool + ParameterId["ApplyNewSelection"] = "applyNewSelection"; + // DPI_AreConfidenceBandsValid, having type bool + ParameterId["AreConfidenceBandsValid"] = "areConfidenceBandsValid"; + // DPI_AreDataSourceFiltersVisible, having type bool + ParameterId["AreDataSourceFiltersVisible"] = "areDataSourceFiltersVisible"; + // DPI_AreExtractFiltersEnabled, having type bool + ParameterId["AreExtractFiltersEnabled"] = "areExtractFiltersEnabled"; + // DPI_AreTotalsUsed, having type bool + ParameterId["AreTotalsUsed"] = "areTotalsUsed"; + // DPI_AtTheLevelFieldIsInvalid, having type bool + ParameterId["AtTheLevelFieldIsInvalid"] = "atTheLevelFieldIsInvalid"; + // DPI_AutoURL, having type bool + ParameterId["AutoURL"] = "autoUrl"; + // DPI_AutoUpdate, having type bool + ParameterId["AutoUpdate"] = "autoUpdate"; + // DPI_BackingSheetIsDashboard, having type bool + ParameterId["BackingSheetIsDashboard"] = "isBackingSheetDashboard"; + // DPI_BeginDataSourcePresModelUpdate, having type bool + ParameterId["BeginDataSourcePresModelUpdate"] = "beginDataSourcePresModelUpdate"; + // DPI_AggregateDrillUp, having type bool + ParameterId["AggregateDrillUp"] = "boolAggregateDrillUp"; + // DPI_BoxplotMarkExclusion, having type bool + ParameterId["BoxplotMarkExclusion"] = "boxplotMarkExclusion"; + // DPI_BreakPageOnPane, having type bool + ParameterId["BreakPageOnPane"] = "breakPageOnPane"; + // DPI_BrushLegends, having type bool + ParameterId["BrushLegends"] = "brushLegends"; + // DPI_CachePresModels, having type bool + ParameterId["CachePresModels"] = "cachePresModels"; + // DPI_CanAddConnections, having type bool + ParameterId["CanAddConnections"] = "canAddConnections"; + // DPI_SortPillCanBeDragged, having type bool + ParameterId["SortPillCanBeDragged"] = "sortPillCanBeDragged"; + // DPI_CanAddTable, having type bool + ParameterId["CanAddTable"] = "canAddTable"; + // DPI_CanAnalyzeData, having type bool + ParameterId["CanAnalyzeData"] = "canAnalyzeData"; + // DPI_CanChangeDataType, having type bool + ParameterId["CanChangeDataType"] = "canChangeDataType"; + // DPI_CanChangeSemanticRole, having type bool + ParameterId["CanChangeSemanticRole"] = "canChangeSemanticRole"; + // DPI_CanDerive, having type bool + ParameterId["CanDerive"] = "canDerive"; + // DPI_CanDrop, having type bool + ParameterId["CanDrop"] = "canDrop"; + // DPI_CanEdit, having type bool + ParameterId["CanEdit"] = "canEdit"; + // DPI_CanEditLegendColor, having type bool + ParameterId["CanEditLegendColor"] = "canEditLegendColor"; + // DPI_CanEnableCenter, having type bool + ParameterId["CanEnableCenter"] = "canEnableCenter"; + // DPI_CanShowAdvancedSettings, having type bool + ParameterId["CanShowAdvancedSettings"] = "canShowAdvancedSettings"; + // DPI_CanEnableFilterStateButton, having type bool + ParameterId["CanEnableFilterStateButton"] = "canEnableFilterStateButton"; + // DPI_CanFloat, having type bool + ParameterId["CanFloat"] = "canFloat"; + // DPI_CanHaveTitle, having type bool + ParameterId["CanHaveTitle"] = "canHaveTitle"; + // DPI_CanIgnoreUpdate, having type bool + ParameterId["CanIgnoreUpdate"] = "canIgnoreUpdate"; + // DPI_CanNavigateBack, having type bool + ParameterId["CanNavigateBack"] = "canNavigateBack"; + // DPI_CanNavigateForward, having type bool + ParameterId["CanNavigateForward"] = "canNavigateForward"; + // DPI_CanScrollX, having type bool + ParameterId["CanScrollX"] = "canScrollX"; + // DPI_CanScrollY, having type bool + ParameterId["CanScrollY"] = "canScrollY"; + // DPI_CanSetDomain, having type bool + ParameterId["CanSetDomain"] = "canSetDomain"; + // DPI_CanSetMapUnit, having type bool + ParameterId["CanSetMapUnit"] = "canSetMapUnit"; + // DPI_CanShowApplyButton, having type bool + ParameterId["CanShowApplyButton"] = "canShowApplyButton"; + // DPI_CanShowFilterStateButton, having type bool + ParameterId["CanShowFilterStateButton"] = "canShowFilterStateButton"; + // DPI_CanShowMoreFewerButton, having type bool + ParameterId["CanShowMoreFewerButton"] = "canShowMoreFewerButton"; + // DPI_CanShowSyncClientOptions, having type bool + ParameterId["CanShowSyncClientOptions"] = "canShowSyncClientOptions"; + // DPI_CanSort, having type bool + ParameterId["CanSort"] = "canSort"; + // DPI_CanSortOrdinally, having type bool + ParameterId["CanSortOrdinally"] = "canSortOrdinal"; + // DPI_CanToggleAutomaticDrill, having type bool + ParameterId["CanToggleAutomaticDrill"] = "canToggleAutomaticDrill"; + // DPI_CanToggleGeographicSearch, having type bool + ParameterId["CanToggleGeographicSearch"] = "canToggleGeographicSearch"; + // DPI_CanToggleMapScale, having type bool + ParameterId["CanToggleMapScale"] = "canToggleMapScale"; + // DPI_CanUseFullColorRange, having type bool + ParameterId["CanUseFullColorRange"] = "canUseFullColorRange"; + // DPI_CanAddToDrillPath, having type bool + ParameterId["CanAddToDrillPath"] = "canAddToDrillPath"; + // DPI_CenterHorizontally, having type bool + ParameterId["CenterHorizontally"] = "centerHorizontally"; + // DPI_CenterVertically, having type bool + ParameterId["CenterVertically"] = "centerVertically"; + // DPI_ChangeAllFields, having type bool + ParameterId["ChangeAllFields"] = "changeAllFields"; + // DPI_Changed, having type bool + ParameterId["Changed"] = "changed"; + // DPI_ClearBrushing, having type bool + ParameterId["ClearBrushing"] = "clearBrushing"; + // DPI_ClearSort, having type bool + ParameterId["ClearSort"] = "clearSort"; + // DPI_ClearView, having type bool + ParameterId["ClearView"] = "clearView"; + // DPI_Collapsed, having type bool + ParameterId["Collapsed"] = "collapsed"; + // DPI_ConsolidateInCommit, having type bool + ParameterId["ConsolidateInCommit"] = "consolidateInCommit"; + // DPI_ClusterEnableScaledCheckbox, having type bool + ParameterId["ClusterEnableScaledCheckbox"] = "clusterEnableScaledCheckbox"; + // DPI_CommitPillFinished, having type bool + ParameterId["CommitPillFinished"] = "commitPillFinished"; + // DPI_CompressArrays, having type bool + ParameterId["CompressArrays"] = "compressArrays"; + // DPI_ComputeCompoundedRate, having type bool + ParameterId["ComputeCompoundedRate"] = "computeCompoundedRate"; + // DPI_ConfidenceIntervalAllowed, having type bool + ParameterId["ConfidenceIntervalAllowed"] = "confidenceIntervalAllowed"; + // DPI_ConfigIsDesktopStandard, having type bool + ParameterId["ConfigIsDesktopStandard"] = "configIsDesktopStandard"; + // DPI_ConfigIsInteractor, having type bool + ParameterId["ConfigIsInteractor"] = "configIsInteractor"; + // DPI_ConfigIsPublic, having type bool + ParameterId["ConfigIsPublic"] = "configIsPublic"; + // DPI_ConfigIsReader, having type bool + ParameterId["ConfigIsReader"] = "configIsReader"; + // DPI_ContainsQuant, having type bool + ParameterId["ContainsQuant"] = "containsQuant"; + // DPI_ContainsValidDatasources, having type bool + ParameterId["ContainsValidDatasources"] = "containsValidDatasources"; + // DPI_ControllerMissing, having type bool + ParameterId["ControllerMissing"] = "controllerMissing"; + // DPI_CreateExtractForPublish, having type bool + ParameterId["CreateExtractForPublish"] = "createExtractForPublish"; + // DPI_CrossTab, having type bool + ParameterId["CrossTab"] = "crossTab"; + // DPI_CullLabels, having type bool + ParameterId["CullLabels"] = "cullLabels"; + // DPI_CurrentCustViewIdFlag, having type bool + ParameterId["CurrentCustViewIdFlag"] = "isCurrentCustViewIdValid"; + // DPI_DashboardEnableSnap, having type bool + ParameterId["DashboardEnableSnap"] = "dashboardEnableSnap"; + // DPI_DashboardShowGrid, having type bool + ParameterId["DashboardShowGrid"] = "dashboardShowGrid"; + // DPI_DataGridSortOrder, having type bool + ParameterId["DataGridSortOrder"] = "datagridSortOrder"; + // DPI_DeleteExtract, having type bool + ParameterId["DeleteExtract"] = "deleteExtract"; + // DPI_DeleteOnlySpecifiedSelection, having type bool + ParameterId["DeleteOnlySpecifiedSelection"] = "deleteOnlySpecifiedSelection"; + // DPI_DeleteOrphans, having type bool + ParameterId["DeleteOrphans"] = "deleteOrphans"; + // DPI_DisabledDataConnectionClassNames, having type bool + ParameterId["DisabledDataConnectionClassNames"] = "disabledDataConnectionClassNames"; + // DPI_DisablePresModelHandler, having type bool + ParameterId["DisablePresModelHandler"] = "disablePresModelHandler"; + // DPI_DisplayDate, having type bool + ParameterId["DisplayDate"] = "displayDate"; + // DPI_DisplayTime, having type bool + ParameterId["DisplayTime"] = "displayTime"; + // DPI_DoDropUIAction, having type bool + ParameterId["DoDropUIAction"] = "doDropUiAction"; + // DPI_DoMerge, having type bool + ParameterId["DoMerge"] = "doMerge"; + // DPI_DoPreDropUIAction, having type bool + ParameterId["DoPreDropUIAction"] = "doPreDropUiAction"; + // DPI_DoQuery, having type bool + ParameterId["DoQuery"] = "doQuery"; + // DPI_DragHorz, having type bool + ParameterId["DragHorz"] = "dragHorz"; + // DPI_DrillDown, having type bool + ParameterId["DrillDown"] = "drillDown"; + // DPI_DropToXAxis, having type bool + ParameterId["DropToXAxis"] = "dropToXAxis"; + // DPI_DropToYAxis, having type bool + ParameterId["DropToYAxis"] = "dropToYAxis"; + // DPI_DropUnnamedFields, having type bool + ParameterId["DropUnnamedFields"] = "dropUnnamedFields"; + // DPI_EditExisting, having type bool + ParameterId["EditExisting"] = "editExisting"; + // DPI_EditingConnection, having type bool + ParameterId["EditingConnection"] = "editingConnection"; + // DPI_EmbedCredentials, having type bool + ParameterId["EmbedCredentials"] = "embedCredentials"; + // DPI_EmbedOAuthCredential, having type bool + ParameterId["EmbedOAuthCredential"] = "embedOauthCredentials"; + // DPI_EmptyHighlightFogAll, having type bool + ParameterId["EmptyHighlightFogAll"] = "emptyHighlightFogAll"; + // DPI_EnableAlphabeticSort, having type bool + ParameterId["EnableAlphabeticSort"] = "enableAlphabeticSort"; + // DPI_EnableAutomaticDrill, having type bool + ParameterId["EnableAutomaticDrill"] = "enableAutomaticDrill"; + // DPI_EnableConfidenceBands, having type bool + ParameterId["EnableConfidenceBands"] = "enableConfidenceBands"; + // DPI_EnableDataOrderSort, having type bool + ParameterId["EnableDataOrderSort"] = "enableDataOrderSort"; + // DPI_EnableFieldSort, having type bool + ParameterId["EnableFieldSort"] = "enableFieldSort"; + // DPI_EnableInstantAnalytics, having type bool + ParameterId["EnableInstantAnalytics"] = "enableInstantAnalytics"; + // DPI_EnableLines, having type bool + ParameterId["EnableLines"] = "enableLines"; + // DPI_EnableManualSort, having type bool + ParameterId["EnableManualSort"] = "enableManualSort"; + // DPI_EnableMarks, having type bool + ParameterId["EnableMarks"] = "enableMarks"; + // DPI_EnableMultipleSelection, having type bool + ParameterId["EnableMultipleSelection"] = "enableMultipleSelection"; + // DPI_EnablePrefetching, having type bool + ParameterId["EnablePrefetching"] = "enablePrefetching"; + // DPI_EnableTableCalcDensification, having type bool + ParameterId["EnableTableCalcDensification"] = "enableTableCalcDensification"; + // DPI_EnableTooltips, having type bool + ParameterId["EnableTooltips"] = "enableTooltips"; + // DPI_EndDataSourcePresModelUpdate, having type bool + ParameterId["EndDataSourcePresModelUpdate"] = "endDataSourcePresModelUpdate"; + // DPI_EstimateNulls, having type bool + ParameterId["EstimateNulls"] = "estimateNulls"; + // DPI_Exclude, having type bool + ParameterId["Exclude"] = "exclude"; + // DPI_ExcludeColor, having type bool + ParameterId["ExcludeColor"] = "excludeColor"; + // DPI_ExcludeCubeDenorm, having type bool + ParameterId["ExcludeCubeDenorm"] = "excludeCubeDenorm"; + // DPI_ExcludeInterceptEnabled, having type bool + ParameterId["ExcludeInterceptEnabled"] = "excludeInterceptEnabled"; + // DPI_ExcludeLocalFunctions, having type bool + ParameterId["ExcludeLocalFunctions"] = "excludeLocalFunctions"; + // DPI_ExportDashboardImageFromSheet, having type bool + ParameterId["ExportDashboardImageFromSheet"] = "exportImageSheetAsDashboard"; + // DPI_ExtSvcConfigIsAuthEnabled, having type bool + ParameterId["ExtSvcConfigIsAuthEnabled"] = "extSvcConfigIsAuthEnabled"; + // DPI_ExtractFullRefresh, having type bool + ParameterId["ExtractFullRefresh"] = "extractFullRefresh"; + // DPI_ExtractNeedsRefresh, having type bool + ParameterId["ExtractNeedsRefresh"] = "extractNeedsRefresh"; + // DPI_ExtractPending, having type bool + ParameterId["ExtractPending"] = "extractPending"; + // DPI_ExtractSelected, having type bool + ParameterId["ExtractSelected"] = "extractSelected"; + // DPI_FederatableOnly, having type bool + ParameterId["FederatableOnly"] = "federatableOnly"; + // DPI_FieldSortOrder, having type bool + ParameterId["FieldSortOrder"] = "fieldSortOrder"; + // DPI_FieldSupportsContains, having type bool + ParameterId["FieldSupportsContains"] = "fieldSupportsContains"; + // DPI_FieldSupportsEndsWith, having type bool + ParameterId["FieldSupportsEndsWith"] = "fieldSupportsEndsWith"; + // DPI_FieldSupportsStartsWith, having type bool + ParameterId["FieldSupportsStartsWith"] = "fieldSupportsStartsWith"; + // DPI_FillAbove, having type bool + ParameterId["FillAbove"] = "fillAbove"; + // DPI_FillBelow, having type bool + ParameterId["FillBelow"] = "fillBelow"; + // DPI_FillWithZeroes, having type bool + ParameterId["FillWithZeroes"] = "fillZeroes"; + // DPI_FilterIsNamed, having type bool + ParameterId["FilterIsNamed"] = "filterIsNamed"; + // DPI_Focus, having type bool + ParameterId["Focus"] = "focus"; + // DPI_ForInternalUse, having type bool + ParameterId["ForInternalUse"] = "internalUse"; + // DPI_ForceBrowserRendering, having type bool + ParameterId["ForceBrowserRendering"] = "forceBrowserRendering"; + // DPI_ForceCache, having type bool + ParameterId["ForceCache"] = "forceCache"; + // DPI_ForceColorFromApp, having type bool + ParameterId["ForceColorFromApp"] = "forceColorFromApp"; + // DPI_ForceConnectionAttempt, having type bool + ParameterId["ForceConnectionAttempt"] = "forceConnectionAttempt"; + // DPI_ForceConsolidateInCommit, having type bool + ParameterId["ForceConsolidateInCommit"] = "forceConsolidateInCommit"; + // DPI_ForceExtractRefresh, having type bool + ParameterId["ForceExtractRefresh"] = "extractForceRefresh"; + // DPI_ForceInterceptZero, having type bool + ParameterId["ForceInterceptZero"] = "forceInterceptZero"; + // DPI_ForceOldConnectExperience, having type bool + ParameterId["ForceOldConnectExperience"] = "forceOldConnectExperience"; + // DPI_ForceToggleHighlightStateOn, having type bool + ParameterId["ForceToggleHighlightStateOn"] = "forceHighlightOn"; + // DPI_ForceWholeDate, having type bool + ParameterId["ForceWholeDate"] = "forceWholeDate"; + // DPI_ForecastSelected, having type bool + ParameterId["ForecastSelected"] = "forecastSelected"; + // DPI_ForecastUseAutoAgg, having type bool + ParameterId["ForecastUseAutoAgg"] = "forecastUseAutoSummarize"; + // DPI_ForJoin, having type bool + ParameterId["ForJoin"] = "forJoin"; + // DPI_FormatDataValueLocally, having type bool + ParameterId["FormatDataValueLocally"] = "formatDataValueLocally"; + // DPI_FormatIfColumn, having type bool + ParameterId["FormatIfColumn"] = "formatIfColumn"; + // DPI_FormatIfParameter, having type bool + ParameterId["FormatIfParameter"] = "formatIfParameter"; + // DPI_GeographicSearchIsDataLoaded, having type bool + ParameterId["GeographicSearchIsDataLoaded"] = "geographicSearchDataLoaded"; + // DPI_GeographicSearchLoadDataAsync, having type bool + ParameterId["GeographicSearchLoadDataAsync"] = "geographicSearchLoadDataAsync"; + // DPI_GroupByAll, having type bool + ParameterId["GroupByAll"] = "groupByAll"; + // DPI_HasAlias, having type bool + ParameterId["HasAlias"] = "hasAlias"; + // DPI_HasAllMember, having type bool + ParameterId["HasAllMember"] = "hasAllMember"; + // DPI_HasApply, having type bool + ParameterId["HasApply"] = "hasApply"; + // DPI_HasBackgroundImage, having type bool + ParameterId["HasBackgroundImage"] = "hasBackgroundImage"; + // DPI_HasBeenDismissed, having type bool + ParameterId["HasBeenDismissed"] = "hasBeenDismissed"; + // DPI_HasCaption, having type bool + ParameterId["HasCaption"] = "hasCaption"; + // DPI_HasCondition, having type bool + ParameterId["HasCondition"] = "hasCondition"; + // DPI_HasConnectPermissions, having type bool + ParameterId["HasConnectPermissions"] = "hasConnectPermissions"; + // DPI_HasDashboard, having type bool + ParameterId["HasDashboard"] = "hasDashboard"; + // DPI_HasDownloadPermissions, having type bool + ParameterId["HasDownloadPermissions"] = "hasDownloadPermissions"; + // DPI_HasDrill, having type bool + ParameterId["HasDrill"] = "hasDrill"; + // DPI_HasExclude, having type bool + ParameterId["HasExclude"] = "hasExclude"; + // DPI_HasFill, having type bool + ParameterId["HasFill"] = "hasFill"; + // DPI_HasLabels, having type bool + ParameterId["HasLabels"] = "hasLabels"; + // DPI_HasLimit, having type bool + ParameterId["HasLimit"] = "hasLimit"; + // DPI_HasLine, having type bool + ParameterId["HasLine"] = "hasLine"; + // DPI_HasModifiedAxes, having type bool + ParameterId["HasModifiedAxes"] = "hasModifiedAxes"; + // DPI_HasNonRootCalculations, having type bool + ParameterId["HasNonRootCalculations"] = "hasNonRootCalculations"; + // DPI_HasPattern, having type bool + ParameterId["HasPattern"] = "hasPattern"; + // DPI_HasPublishGuidanceResults, having type bool + ParameterId["HasPublishGuidanceResults"] = "hasPublishGuidanceResults"; + // DPI_HasSelection, having type bool + ParameterId["HasSelection"] = "hasSelection"; + // DPI_HasServerCredentials, having type bool + ParameterId["HasServerCredentials"] = "hasServerCredentials"; + // DPI_HasSpace, having type bool + ParameterId["HasSpace"] = "hasSpace"; + // DPI_HasStoredProcedure, having type bool + ParameterId["HasStoredProcedure"] = "hasStoredProcedure"; + // DPI_HasStringCalculatedMeasures, having type bool + ParameterId["HasStringCalculatedMeasures"] = "hasStringCalculatedMeasures"; + // DPI_HasTableCalcData, having type bool + ParameterId["HasTableCalcData"] = "hasTableCalcData"; + // DPI_HasTitle, having type bool + ParameterId["HasTitle"] = "hasTitle"; + // DPI_HasUserSpecificContent, having type bool + ParameterId["HasUserSpecificContent"] = "hasUserSpecificContent"; + // DPI_HasUnjoinedTable, having type bool + ParameterId["HasUnjoinedTable"] = "hasUnjoinedTable"; + // DPI_HasVarArgs, having type bool + ParameterId["HasVarArgs"] = "hasVarArgs"; + // DPI_HasVisitedWDCPage, having type bool + ParameterId["HasVisitedWDCPage"] = "hasVisitedWdcPage"; + // DPI_IgnoreAliases, having type bool + ParameterId["IgnoreAliases"] = "ignoreAliases"; + // DPI_IgnoreDomain, having type bool + ParameterId["IgnoreDomain"] = "ignoreDomain"; + // DPI_IgnoreSelection, having type bool + ParameterId["IgnoreSelection"] = "ignoreSelection"; + // DPI_IncludeAllColumns, having type bool + ParameterId["IncludeAllColumns"] = "includeAllColumns"; + // DPI_IncludeContext, having type bool + ParameterId["IncludeContext"] = "includeContext"; + // DPI_IncludeDashboardPresModels, having type bool + ParameterId["IncludeDashboardPresModels"] = "includeDashboardPresModels"; + // DPI_IncludeItemSet, having type bool + ParameterId["IncludeItemSet"] = "includeItemSet"; + // DPI_IncludeLocalFiles, having type bool + ParameterId["IncludeLocalFiles"] = "includeLocalFiles"; + // DPI_IncludeOtherSelected, having type bool + ParameterId["IncludeOtherSelected"] = "includeOtherSelected"; + // DPI_IncludeNulls, having type bool + ParameterId["IncludeNulls"] = "includeNulls"; + // DPI_IncludeParent, having type bool + ParameterId["IncludeParent"] = "includeParent"; + // DPI_IncludeSelections, having type bool + ParameterId["IncludeSelections"] = "includeSelections"; + // DPI_IncludeSiblings, having type bool + ParameterId["IncludeSiblings"] = "includeSiblings"; + // DPI_IncludeStories, having type bool + ParameterId["IncludeStories"] = "includeStories"; + // DPI_IncludeSubfolders, having type bool + ParameterId["IncludeSubfolders"] = "includeSubfolders"; + // DPI_IncludeVolatileProps, having type bool + ParameterId["IncludeVolatileProps"] = "includeVolatileProps"; + // DPI_IncludesTag, having type bool + ParameterId["IncludesTag"] = "includesTag"; + // DPI_InsertAfter, having type bool + ParameterId["InsertAfter"] = "insertAfter"; + // DPI_InsertAtEnd, having type bool + ParameterId["InsertAtEnd"] = "insertAtEnd"; + // DPI_InstantAnalyticsAllowed, having type bool + ParameterId["InstantAnalyticsAllowed"] = "instantAnalyticsAllowed"; + // DPI_IntegerCoordinates, having type bool + ParameterId["IntegerCoordinates"] = "intCoords"; + // DPI_InvalidatedLayout, having type bool + ParameterId["InvalidatedLayout"] = "invalidatedLayout"; + // DPI_IsActive, having type bool + ParameterId["IsActive"] = "isActive"; + // DPI_IsAddToFilter, having type bool + ParameterId["IsAddToFilter"] = "isAddToFilterButtonChecked"; + // DPI_IsAllButtonVisible, having type bool + ParameterId["IsAllButtonVisible"] = "isAllButtonVisible"; + // DPI_IsAllowedInCalcs, having type bool + ParameterId["IsAllowedInCalcs"] = "isAllowedInCalcs"; + // DPI_IsAppMapSource, having type bool + ParameterId["IsAppMapSource"] = "isAppMapSource"; + // DPI_IsArchive, having type bool + ParameterId["IsArchive"] = "isArchive"; + // DPI_IsAuthoringMode, having type bool + ParameterId["IsAuthoringMode"] = "isAuthoringMode"; + // DPI_IsAuto, having type bool + ParameterId["IsAuto"] = "isAuto"; + // DPI_IsAutoClear, having type bool + ParameterId["IsAutoClear"] = "isAutoClear"; + // DPI_IsAutoColumn, having type bool + ParameterId["IsAutoColumn"] = "isAutoColumn"; + // DPI_IsAutoHidden, having type bool + ParameterId["IsAutoHidden"] = "isAutoHidden"; + // DPI_IsAutoSelect, having type bool + ParameterId["IsAutoSelect"] = "isAutoSelect"; + // DPI_IsBold, having type bool + ParameterId["IsBold"] = "isBold"; + // DPI_IsBorderVisible, having type bool + ParameterId["IsBorderVisible"] = "isBorderVisible"; + // DPI_IsBoxplot, having type bool + ParameterId["IsBoxplot"] = "isBoxplot"; + // DPI_IsCapable, having type bool + ParameterId["IsCapable"] = "isCapable"; + // DPI_IsCaptured, having type bool + ParameterId["IsCaptured"] = "isCaptured"; + // DPI_IsCentered, having type bool + ParameterId["IsCentered"] = "isCentered"; + // DPI_IsChecked, having type bool + ParameterId["IsChecked"] = "isChecked"; + // DPI_IsColorDiverging, having type bool + ParameterId["IsColorDiverging"] = "isColorDiverging"; + // DPI_IsColorStepped, having type bool + ParameterId["IsColorStepped"] = "isColorStepped"; + // DPI_IsCombinedField, having type bool + ParameterId["IsCombinedField"] = "isCombinedField"; + // DPI_IsConnected, having type bool + ParameterId["IsConnected"] = "isConnected"; + // DPI_IsContextMenuAllowed, having type bool + ParameterId["IsContextMenuAllowed"] = "isContextMenuAllowed"; + // DPI_IsContinuous, having type bool + ParameterId["IsContinuous"] = "isContinuous"; + // DPI_IsCopy, having type bool + ParameterId["IsCopy"] = "isCopy"; + // DPI_IsCustomPalette, having type bool + ParameterId["IsCustomPalette"] = "isCustomPalette"; + // DPI_IsCustomSQL, having type bool + ParameterId["IsCustomSQL"] = "isCustomSql"; + // DPI_IsCustomValueEnabled, having type bool + ParameterId["IsCustomValueEnabled"] = "isCustomValueEnabled"; + // DPI_IsDataAlertConditionMet, having type bool + ParameterId["IsDataAlertConditionMet"] = "isDataAlertConditionMet"; + // DPI_IsDataAlertDialogVisible, having type bool + ParameterId["IsDataAlertDialogVisible"] = "isDataAlertDialogVisible"; + // DPI_IsDataBin, having type bool + ParameterId["IsDataBin"] = "isDataBin"; + // DPI_IsDataGridVisible, having type bool + ParameterId["IsDataGridVisible"] = "isDataGridVisible"; + // DPI_IsDatabase, having type bool + ParameterId["IsDatabase"] = "isDatabase"; + // DPI_IsDatabaseFilterInclusive, having type bool + ParameterId["IsDatabaseFilterInclusive"] = "isDbFilterInclusive"; + // DPI_IsWebDataTabViewSupported, having type bool + ParameterId["IsWebDataTabViewSupported"] = "isWebDataTabViewSupported"; + // DPI_IsPublishedDatasourceReplacement, having type bool + ParameterId["IsPublishedDatasourceReplacement"] = "isPublishedDatasourceReplacement"; + // DPI_IsDeadDrop, having type bool + ParameterId["IsDeadDrop"] = "isDeadDrop"; + // DPI_IsDefault, having type bool + ParameterId["IsDefault"] = "isDefault"; + // DPI_IsDeleteCalcConfirm, having type bool + ParameterId["IsDeleteCalcConfirm"] = "isDeleteCalcConfirmed"; + // DPI_IsDimension, having type bool + ParameterId["IsDimension"] = "isDimension"; + // DPI_IsDivider, having type bool + ParameterId["IsDivider"] = "isDivider"; + // DPI_IsDropdownEnabled, having type bool + ParameterId["IsDropdownEnabled"] = "isDropdownEnabled"; + // DPI_IsEditing, having type bool + ParameterId["IsEditing"] = "isEditing"; + // DPI_IsEmbedded, having type bool + ParameterId["IsEmbedded"] = "isEmbedded"; + // DPI_IsEmpty, having type bool + ParameterId["IsEmpty"] = "isEmpty"; + // DPI_IsAddInEnabled, having type bool + ParameterId["IsAddInEnabled"] = "isAddInEnabled"; + // DPI_IsInDrillPath, having type bool + ParameterId["IsInDrillPath"] = "isInDrillPath"; + // DPI_AddInJSDebuggingEnabled, having type bool + ParameterId["AddInJSDebuggingEnabled"] = "addInJsDebugginEnabled"; + // DPI_AddInPauseBeforeLoading, having type bool + ParameterId["AddInPauseBeforeLoading"] = "addInPauseBeforeLoading"; + // DPI_IsDSHierarchical, having type bool + ParameterId["IsDSHierarchical"] = "isDsHierarchical"; + // DPI_IsEndPtMoveable, having type bool + ParameterId["IsEndPtMoveable"] = "isEndpointMovable"; + // DPI_IsExclude, having type bool + ParameterId["IsExclude"] = "isExcludeButtonChecked"; + // DPI_IsExistingConnection, having type bool + ParameterId["IsExistingConnection"] = "isExistingConnection"; + // DPI_IsExistingObject, having type bool + ParameterId["IsExistingObject"] = "isExistingObject"; + // DPI_IsExtract, having type bool + ParameterId["IsExtract"] = "isExtract"; + // DPI_IsExtractOnlyConnection, having type bool + ParameterId["IsExtractOnlyConnection"] = "isExtractOnlyConnection"; + // DPI_IsExtractSelectionVisible, having type bool + ParameterId["IsExtractSelectionVisible"] = "isExtractSelectionVisible"; + // DPI_IsFederatable, having type bool + ParameterId["IsFederatable"] = "isFederatable"; + // DPI_IsField, having type bool + ParameterId["IsField"] = "isField"; + // DPI_IsFieldParameter, having type bool + ParameterId["IsFieldParameter"] = "isFieldParameter"; + // DPI_IsFilterActionField, having type bool + ParameterId["IsFilterActionField"] = "isFilterActionField"; + // DPI_IsFirstClassConnector, having type bool + ParameterId["IsFirstClassConnector"] = "isFirstClassConnector"; + // DPI_IsFloating, having type bool + ParameterId["IsFloating"] = "isFloating"; + // DPI_IsFolded, having type bool + ParameterId["IsFolded"] = "isFolded"; + // DPI_IsForInput, having type bool + ParameterId["IsForInput"] = "isForInput"; + // DPI_IsForecastEnabled, having type bool + ParameterId["IsForecastEnabled"] = "isForecastEnabled"; + // DPI_IsForceDirty, having type bool + ParameterId["IsForceDirty"] = "isForceDirty"; + // DPI_IsFullScan, having type bool + ParameterId["IsFullScan"] = "isFullScan"; + // DPI_IsFullStyling, having type bool + ParameterId["IsFullStyling"] = "isFullStyling"; + // DPI_IsGenerated, having type bool + ParameterId["IsGenerated"] = "isGenerated"; + // DPI_IsGlobalNames, having type bool + ParameterId["IsGlobalNames"] = "isGlobalNames"; + // DPI_IsGrayed, having type bool + ParameterId["IsGrayed"] = "isGrayed"; + // DPI_IsGrayscale, having type bool + ParameterId["IsGrayscale"] = "isGrayscale"; + // DPI_IsGroup, having type bool + ParameterId["IsGroup"] = "isGroup"; + // DPI_IsHideableField, having type bool + ParameterId["IsHideableField"] = "isHideableField"; + // DPI_IsHierarchy, having type bool + ParameterId["IsHierarchy"] = "isHierarchy"; + // DPI_IsHierarchySingleSelect, having type bool + ParameterId["IsHierarchySingleSelect"] = "isHierarchySingleSelect"; + // DPI_IsHighlightAllowed, having type bool + ParameterId["IsHighlightAllowed"] = "isHighlightAllowed"; + // DPI_IsHighlightEnabled, having type bool + ParameterId["IsHighlightEnabled"] = "isHighlightEnabled"; + // DPI_IsHighlightField, having type bool + ParameterId["IsHighlightField"] = "isHighlightField"; + // DPI_IsHorizontal, having type bool + ParameterId["IsHorizontal"] = "isHorizontal"; + // DPI_IsImageEnabled, having type bool + ParameterId["IsImageEnabled"] = "isImageEnabled"; + // DPI_IsInDefault, having type bool + ParameterId["IsInDefault"] = "isInDefault"; + // DPI_IsInPrimaryDataSource, having type bool + ParameterId["IsInPrimaryDataSource"] = "isInPrimaryDataSource"; + // DPI_IsInner, having type bool + ParameterId["IsInner"] = "isInner"; + // DPI_IsInitial, having type bool + ParameterId["IsInitial"] = "isInitial"; + // DPI_IsInstance, having type bool + ParameterId["IsInstance"] = "isInstance"; + // DPI_IsInvalid, having type bool + ParameterId["IsInvalid"] = "isInvalid"; + // DPI_IsInvalidCalcOnDG, having type bool + ParameterId["IsInvalidCalcOnDG"] = "isInvalidDgCalc"; + // DPI_IsItalics, having type bool + ParameterId["IsItalics"] = "isItalics"; + // DPI_IsJoinAreaVisible, having type bool + ParameterId["IsJoinAreaVisible"] = "isJoinAreaVisible"; + // DPI_IsLabels, having type bool + ParameterId["IsLabels"] = "isLabels"; + // DPI_IsLayered, having type bool + ParameterId["IsLayered"] = "isLayered"; + // DPI_IsLeft, having type bool + ParameterId["IsLeft"] = "isLeft"; + // DPI_IsLegacy, having type bool + ParameterId["IsLegacy"] = "isLegacy"; + // DPI_IsLevel, having type bool + ParameterId["IsLevel"] = "isLevel"; + // DPI_IsLevelOrLevelIdentity, having type bool + ParameterId["IsLevelOrLevelIdentity"] = "isLevelOrLevelIdentity"; + // DPI_IsLicensed, having type bool + ParameterId["IsLicensed"] = "isLicensed"; + // DPI_IsLink, having type bool + ParameterId["IsLink"] = "isLink"; + // DPI_IsMap, having type bool + ParameterId["IsMap"] = "isMap"; + // DPI_IsMeasure, having type bool + ParameterId["IsMeasure"] = "isMeasure"; + // DPI_IsMerge, having type bool + ParameterId["IsMerge"] = "isMerge"; + // DPI_IsMessageSourceRemote, having type bool + ParameterId["IsMessageSourceRemote"] = "isMessageSourceRemote"; + // DPI_IsMissingFromExtract, having type bool + ParameterId["IsMissingFromExtract"] = "isMissingFromExtract"; + // DPI_IsMobile, having type bool + ParameterId["IsMobile"] = "isMobile"; + // DPI_IsModified, having type bool + ParameterId["IsModified"] = "isModified"; + // DPI_IsNew, having type bool + ParameterId["IsNew"] = "isNew"; + // DPI_IsNewCloudFileDataSource, having type bool + ParameterId["IsNewCloudFileDataSource"] = "isNewCloudFileDataSource"; + // DPI_IsNewZone, having type bool + ParameterId["IsNewZone"] = "isNewZone"; + // DPI_IsNone, having type bool + ParameterId["IsNone"] = "isNone"; + // DPI_IsOfflineMode, having type bool + ParameterId["IsOfflineMode"] = "isOfflineMode"; + // DPI_IsPreAqlBin, having type bool + ParameterId["IsPreAqlBin"] = "isPreAqlBin"; + // DPI_IsOMeasuresAndRelational, having type bool + ParameterId["IsOMeasuresAndRelational"] = "isOmeasuresAndRelational"; + // DPI_IsOpaque, having type bool + ParameterId["IsOpaque"] = "isOpaque"; + // DPI_IsOrphaned, having type bool + ParameterId["IsOrphaned"] = "isOrphaned"; + // DPI_IsOverlay, having type bool + ParameterId["IsOverlay"] = "isOverlay"; + // DPI_IsOverride, having type bool + ParameterId["IsOverride"] = "isOverride"; + // DPI_IsPageLoading, having type bool + ParameterId["IsPageLoading"] = "isPageLoading"; + // DPI_IsParameterSelected, having type bool + ParameterId["IsParameterSelected"] = "isParameterSelected"; + // DPI_IsParameterSelectedOnFrom, having type bool + ParameterId["IsParameterSelectedOnFrom"] = "isParameterSelectedOnFrom"; + // DPI_IsParameterSelectedOnTo, having type bool + ParameterId["IsParameterSelectedOnTo"] = "isParameterSelectedOnTo"; + // DPI_IsPatternBased, having type bool + ParameterId["IsPatternBased"] = "isPatternBased"; + // DPI_IsPinned, having type bool + ParameterId["IsPinned"] = "isPinned"; + // DPI_IsPresentationMode, having type bool + ParameterId["IsPresentationMode"] = "isPresentationModeDoc"; + // DPI_IsPublishAllowed, having type bool + ParameterId["IsPublishAllowed"] = "isPublishAllowed"; + // DPI_IsMustDowngradeToPublish, having type bool + ParameterId["IsMustDowngradeToPublish"] = "isDowngradeToPublishRequired"; + // DPI_IsPublished, having type bool + ParameterId["IsPublished"] = "isPublished"; + // DPI_IsQuickTableCalc, having type bool + ParameterId["IsQuickTableCalc"] = "isQuickTableCalc"; + // DPI_IsRadioOn, having type bool + ParameterId["IsRadioOn"] = "isRadioOn"; + // DPI_IsReconnect, having type bool + ParameterId["IsReconnect"] = "isReconnect"; + // DPI_IsRecursive, having type bool + ParameterId["IsRecursive"] = "isRecursive"; + // DPI_IsReferenced, having type bool + ParameterId["IsReferenced"] = "isReferenced"; + // DPI_IsRemovalAllowed, having type bool + ParameterId["IsRemovalAllowed"] = "isRowRemovalAllowed"; + // DPI_IsRenderCapable, having type bool + ParameterId["IsRenderCapable"] = "isRenderCapable"; + // DPI_IsRequired, having type bool + ParameterId["IsRequired"] = "isRequired"; + // DPI_IsReversed, having type bool + ParameterId["IsReversed"] = "isReversed"; + // DPI_IsRightDrag, having type bool + ParameterId["IsRightDrag"] = "isRightDrag"; + // DPI_IsRowLabels, having type bool + ParameterId["IsRowLabels"] = "isRowLabels"; + // DPI_IsPercentage, having type bool + ParameterId["IsPercentage"] = "isPercentage"; + // DPI_IsSalesforceInConnection, having type bool + ParameterId["IsSalesforceInConnection"] = "isSalesforceInConnection"; + // DPI_IsScaled, having type bool + ParameterId["IsScaled"] = "isScaled"; + // DPI_IsSelected, having type bool + ParameterId["IsSelected"] = "isSelected"; + // DPI_IsSelectedItem, having type bool + ParameterId["IsSelectedItem"] = "isSelectedItem"; + // DPI_IsSelectionDisabled, having type bool + ParameterId["IsSelectionDisabled"] = "isSelectionDisabled"; + // DPI_IsShiftDrag, having type bool + ParameterId["IsShiftDrag"] = "isShiftDrag"; + // DPI_IsSingleLabel, having type bool + ParameterId["IsSingleLabel"] = "isSingleLabel"; + // DPI_IsSingleSelect, having type bool + ParameterId["IsSingleSelect"] = "isSingleSelect"; + // DPI_IsSingleSelectMode, having type bool + ParameterId["IsSingleSelectMode"] = "isSingleSelectMode"; + // DPI_IsSingleSelection, having type bool + ParameterId["IsSingleSelection"] = "isSingleSelection"; + // DPI_IsSorted, having type bool + ParameterId["IsSorted"] = "isSorted"; + // DPI_IsSortPill, having type bool + ParameterId["IsSortPill"] = "isSortPill"; + // DPI_IsSpecial, having type bool + ParameterId["IsSpecial"] = "isSpecial"; + // DPI_IsSplashScreen, having type bool + ParameterId["IsSplashScreen"] = "isSplashScreen"; + // DPI_IsStoryEmpty, having type bool + ParameterId["IsStoryEmpty"] = "isStoryEmpty"; + // DPI_IsStrikeThrough, having type bool + ParameterId["IsStrikeThrough"] = "isStrikeThrough"; + // DPI_IsTableCalc, having type bool + ParameterId["IsTableCalc"] = "isTableCalc"; + // DPI_IsTableCleaningSubtable, having type bool + ParameterId["IsTableCleaningSubtable"] = "isTableCleaningSubtable"; + // DPI_IsTableFilterInclusive, having type bool + ParameterId["IsTableFilterInclusive"] = "isTableFilterInclusive"; + // DPI_IsTableRanked, having type bool + ParameterId["IsTableRanked"] = "isTableRanked"; + // DPI_IsTemporary, having type bool + ParameterId["IsTemporary"] = "isTemporary"; + // DPI_IsTitleVisible, having type bool + ParameterId["IsTitleVisible"] = "isTitleVisible"; + // DPI_IsTopLevel, having type bool + ParameterId["IsTopLevel"] = "isTopLevel"; + // DPI_IsTwoValued, having type bool + ParameterId["IsTwoValued"] = "isTwoValued"; + // DPI_IsTypeInFinished, having type bool + ParameterId["IsTypeInFinished"] = "isTypeinFinished"; + // DPI_IsTypeInPill, having type bool + ParameterId["IsTypeInPill"] = "isTypeInPill"; + // DPI_IsURLActionField, having type bool + ParameterId["IsURLActionField"] = "isUrlActionField"; + // DPI_IsUnderlined, having type bool + ParameterId["IsUnderlined"] = "isUnderlined"; + // DPI_IsUnion, having type bool + ParameterId["IsUnion"] = "isUnion"; + // DPI_IsUnionReplacement, having type bool + ParameterId["IsUnionReplacement"] = "isUnionReplacement"; + // DPI_IsUnnamedCalc, having type bool + ParameterId["IsUnnamedCalc"] = "isUnnamed"; + // DPI_IsUserDefinedAttribute, having type bool + ParameterId["IsUserDefinedAttribute"] = "isUserDefinedAttribute"; + // DPI_IsUserEditable, having type bool + ParameterId["IsUserEditable"] = "isUserEditable"; + // DPI_IsUserPrompted, having type bool + ParameterId["IsUserPrompted"] = "isUserPrompted"; + // DPI_IsUserResponded, having type bool + ParameterId["IsUserResponded"] = "isUserResponded"; + // DPI_IsValid, having type bool + ParameterId["IsValid"] = "isValid"; + // DPI_IsValidWDCPage, having type bool + ParameterId["IsValidWDCPage"] = "isValidWdcPage"; + // DPI_IsVaryingAttributeDimension, having type bool + ParameterId["IsVaryingAttributeDimension"] = "isVaryingAttributeDimension"; + // DPI_IsVertical, having type bool + ParameterId["IsVertical"] = "isVertical"; + // DPI_IsViewModified, having type bool + ParameterId["IsViewModified"] = "isViewModified"; + // DPI_IsVisuallyCategorical, having type bool + ParameterId["IsVisuallyCategorical"] = "isVisuallyCat"; + // DPI_IsVizInTooltip, having type bool + ParameterId["IsVizInTooltip"] = "isVizInTooltip"; + // DPI_IsWeb, having type bool + ParameterId["IsWeb"] = "isWeb"; + // DPI_IsWhite, having type bool + ParameterId["IsWhite"] = "isWhite"; + // DPI_IsWorldNew, having type bool + ParameterId["IsWorldNew"] = "isWorldNew"; + // DPI_IsXAxis, having type bool + ParameterId["IsXAxis"] = "isXAxis"; + // DPI_KeepAspectRatio, having type bool + ParameterId["KeepAspectRatio"] = "keepAspectRatio"; + // DPI_LabelLineEndFirst, having type bool + ParameterId["LabelLineEndFirst"] = "labelLineEndFirst"; + // DPI_LabelLineEndLast, having type bool + ParameterId["LabelLineEndLast"] = "labelLineEndLast"; + // DPI_LabelMarkMax, having type bool + ParameterId["LabelMarkMax"] = "labelMarkMax"; + // DPI_LabelMarkMin, having type bool + ParameterId["LabelMarkMin"] = "labelMarkMin"; + // DPI_LockAspectRatio, having type bool + ParameterId["LockAspectRatio"] = "lockAspectRatio"; + // DPI_LoopPlayback, having type bool + ParameterId["LoopPlayback"] = "loopPlayback"; + // DPI_LossyImages, having type bool + ParameterId["LossyImages"] = "lossyImages"; + // DPI_MakeGlobal, having type bool + ParameterId["MakeGlobal"] = "isMakeGlobal"; + // DPI_ManualSortOnly, having type bool + ParameterId["ManualSortOnly"] = "manualSortOnly"; + // DPI_MapBoxDefaultStyleSelected, having type bool + ParameterId["MapBoxDefaultStyleSelected"] = "mapboxDefaultStyleSelected"; + // DPI_MapBoxURLParseSuccessful, having type bool + ParameterId["MapBoxURLParseSuccessful"] = "mapboxUrlParseSuccessful"; + // DPI_MapClientRequestsMapTiles, having type bool + ParameterId["MapClientRequestsMapTiles"] = "clientRequestsMapTiles"; + // DPI_MapHasValidLayer, having type bool + ParameterId["MapHasValidLayer"] = "mapHasValidLayer"; + // DPI_MapShowAttribution, having type bool + ParameterId["MapShowAttribution"] = "showAttribution"; + // DPI_MarkLabelsVisibilityChanged, having type bool + ParameterId["MarkLabelsVisibilityChanged"] = "markLabelsVisibilityChanged"; + // DPI_MembersLoaded, having type bool + ParameterId["MembersLoaded"] = "membersLoaded"; + // DPI_MinimizeNames, having type bool + ParameterId["MinimizeNames"] = "useMinNames"; + // DPI_MoveRefereceLineUp, having type bool + ParameterId["MoveRefereceLineUp"] = "moveReferenceLineUp"; + // DPI_MultiDataSources, having type bool + ParameterId["MultiDataSources"] = "multiDataSources"; + // DPI_NavArrowsVisible, having type bool + ParameterId["NavArrowsVisible"] = "navArrowsVisible"; + // DPI_OEMHasSplashScreen, having type bool + ParameterId["OEMHasSplashScreen"] = "oemHasSplashScreen"; + // DPI_OneWayBrushing, having type bool + ParameterId["OneWayBrushing"] = "oneWayBrushing"; + // DPI_OnlyAggregations, having type bool + ParameterId["OnlyAggregations"] = "onlyAggregations"; + // DPI_OverrideAllowed, having type bool + ParameterId["OverrideAllowed"] = "overrideAllowed"; + // DPI_OverrideStackDumper, having type bool + ParameterId["OverrideStackDumper"] = "overrideStackDumper"; + // DPI_PageAutoColorLines, having type bool + ParameterId["PageAutoColorLines"] = "autoColorLines"; + // DPI_PageAutoColorMarks, having type bool + ParameterId["PageAutoColorMarks"] = "autoColorMarks"; + // DPI_PageHistoryFade, having type bool + ParameterId["PageHistoryFade"] = "historyFade"; + // DPI_PercentageBands, having type bool + ParameterId["PercentageBands"] = "percentageBands"; + // DPI_PercentilesAllowed, having type bool + ParameterId["PercentilesAllowed"] = "percentilesAllowed"; + // DPI_PublishWithRemoteQueryAgent, having type bool + ParameterId["PublishWithRemoteQueryAgent"] = "publishWithRemoteQueryAgent"; + // DPI_PreviousSheet, having type bool + ParameterId["PreviousSheet"] = "previousSheet"; + // DPI_PromptDeleteSheetsWithVizInTooltip, having type bool + ParameterId["PromptDeleteSheetsWithVizInTooltip"] = "promptDeleteSheetsWithVizInTooltip"; + // DPI_QuantilesAllowed, having type bool + ParameterId["QuantilesAllowed"] = "quantilesAllowed"; + // DPI_RadialDistanceHitTest, having type bool + ParameterId["RadialDistanceHitTest"] = "radialDistanceHitTest"; + // DPI_RefLineSelected, having type bool + ParameterId["RefLineSelected"] = "refLineSelected"; + // DPI_RemovedSheets, having type bool + ParameterId["RemovedSheets"] = "removedSheets"; + // DPI_RenderImagesAsUrls, having type bool + ParameterId["RenderImagesAsUrls"] = "imagesAsUrls"; + // DPI_RenderOnTop, having type bool + ParameterId["RenderOnTop"] = "renderOnTop"; + // DPI_RepeatHeadersLegends, having type bool + ParameterId["RepeatHeadersLegends"] = "repeatHeadersLegends"; + // DPI_ReplaceActiveConfig, having type bool + ParameterId["ReplaceActiveConfig"] = "replaceActiveConfig"; + // DPI_ReplaceDatasourceAfterPublish, having type bool + ParameterId["ReplaceDatasourceAfterPublish"] = "replaceDatasourceAfterPublish"; + // DPI_ReplaceDatasourceFailed, having type bool + ParameterId["ReplaceDatasourceFailed"] = "replaceDatasourceFailed"; + // DPI_ReplaceTde, having type bool + ParameterId["ReplaceTde"] = "replaceTde"; + // DPI_RequireSelection, having type bool + ParameterId["RequireSelection"] = "requireSelection"; + // DPI_RequiresDBVariables, having type bool + ParameterId["RequiresDBVariables"] = "requiresDbVariables"; + // DPI_RequiresFieldList, having type bool + ParameterId["RequiresFieldList"] = "requiresFieldList"; + // DPI_RestartEveryFieldIsInvalid, having type bool + ParameterId["RestartEveryFieldIsInvalid"] = "restartEveryFieldIsInvalid"; + // DPI_RightJustify, having type bool + ParameterId["RightJustify"] = "rightJustify"; + // DPI_SaveEnabled, having type bool + ParameterId["SaveEnabled"] = "saveEnabled"; + // DPI_SavePasswordAllowed, having type bool + ParameterId["SavePasswordAllowed"] = "savePasswordAllowed"; + // DPI_ScopeIsolation, having type bool + ParameterId["ScopeIsolation"] = "scopeIsolation"; + // DPI_SelectionRequired, having type bool + ParameterId["SelectionRequired"] = "selectionRequired"; + // DPI_SendNotifications, having type bool + ParameterId["SendNotifications"] = "sendNotifications"; + // DPI_SetActive, having type bool + ParameterId["SetActive"] = "setActive"; + // DPI_SetDefaultSort, having type bool + ParameterId["SetDefaultSort"] = "setDefault"; + // DPI_SheetIsDashboard, having type bool + ParameterId["SheetIsDashboard"] = "isDashboard"; + // DPI_SheetIsStoryboard, having type bool + ParameterId["SheetIsStoryboard"] = "isStory"; + // DPI_ShouldAlwaysDisplayAlias, having type bool + ParameterId["ShouldAlwaysDisplayAlias"] = "shouldAlwaysDisplayAlias"; + // DPI_ShouldAutoCapture, having type bool + ParameterId["ShouldAutoCapture"] = "shouldAutoCapture"; + // DPI_ShouldAutoRevert, having type bool + ParameterId["ShouldAutoRevert"] = "shouldAutoRevert"; + // DPI_ShouldChangeUIMode, having type bool + ParameterId["ShouldChangeUIMode"] = "shouldChangeUiMode"; + // DPI_ShouldDisplay, having type bool + ParameterId["ShouldDisplay"] = "shouldDisplay"; + // DPI_ShouldDrill, having type bool + ParameterId["ShouldDrill"] = "shouldDrill"; + // DPI_ShouldForceConnectionAttempt, having type bool + ParameterId["ShouldForceConnectionAttempt"] = "shouldForceConnectionAttempt"; + // DPI_ShouldRefreshDS, having type bool + ParameterId["ShouldRefreshDS"] = "shouldRefreshDs"; + // DPI_ShouldScaleMarksInAxisUnits, having type bool + ParameterId["ShouldScaleMarksInAxisUnits"] = "shouldScaleMarksInAxisUnits"; + // DPI_ShouldSeedCredentials, having type bool + ParameterId["ShouldSeedCredentials"] = "shouldSeedCredentials"; + // DPI_ShouldShowDataSourceConnectionError, having type bool + ParameterId["ShouldShowDataSourceConnectionError"] = "shouldShowDataSourceConnectionError"; + // DPI_ShouldShowDistance, having type bool + ParameterId["ShouldShowDistance"] = "shouldShowDistance"; + // DPI_ShouldShowHiddenField, having type bool + ParameterId["ShouldShowHiddenField"] = "shouldShowHiddenField"; + // DPI_ShouldShowMapScale, having type bool + ParameterId["ShouldShowMapScale"] = "shouldShowMapScale"; + // DPI_ShouldURLEscape, having type bool + ParameterId["ShouldURLEscape"] = "shouldUrlEscape"; + // DPI_ShouldUpdateDomainInfo, having type bool + ParameterId["ShouldUpdateDomainInfo"] = "shouldUpdateDomInfo"; + // DPI_ShowAddToFilter, having type bool + ParameterId["ShowAddToFilter"] = "showAddToFilterButton"; + // DPI_ShowAliases, having type bool + ParameterId["ShowAliases"] = "showAliases"; + // DPI_ShowAllPages, having type bool + ParameterId["ShowAllPages"] = "showAllPages"; + // DPI_ShowApply, having type bool + ParameterId["ShowApply"] = "showApplyButton"; + // DPI_ShowApplyAndCancelButtons, having type bool + ParameterId["ShowApplyAndCancelButtons"] = "showApplyAndCancelButtons"; + // DPI_ShowAuthenticationOptions, having type bool + ParameterId["ShowAuthenticationOptions"] = "showAuthenticationOptions"; + // DPI_ShowAuthenticationSetting, having type bool + ParameterId["ShowAuthenticationSetting"] = "showAuthenticationSetting"; + // DPI_ShowAuto, having type bool + ParameterId["ShowAuto"] = "showAuto"; + // DPI_ShowBold, having type bool + ParameterId["ShowBold"] = "showBoldOption"; + // DPI_ShowButtons, having type bool + ParameterId["ShowButtons"] = "showButtons"; + // DPI_ShowCaption, having type bool + ParameterId["ShowCaption"] = "showCaption"; + // DPI_ShowColorLegend, having type bool + ParameterId["ShowColorLegend"] = "showColorLegend"; + // DPI_ShowDataGridInlineRename, having type bool + ParameterId["ShowDataGridInlineRename"] = "showDataGridInlineRename"; + // DPI_ShowDetailMessages, having type bool + ParameterId["ShowDetailMessages"] = "showDetailMessages"; + // DPI_ShowDate, having type bool + ParameterId["ShowDate"] = "showDate"; + // DPI_ShowDragLabel, having type bool + ParameterId["ShowDragLabel"] = "showDragLabel"; + // DPI_ShowDropMeasures, having type bool + ParameterId["ShowDropMeasures"] = "showDropMeasures"; + // DPI_ShowEmbedAll, having type bool + ParameterId["ShowEmbedAll"] = "showEmbedAll"; + // DPI_ShowEntireImage, having type bool + ParameterId["ShowEntireImage"] = "showEntireImage"; + // DPI_ShowExclude, having type bool + ParameterId["ShowExclude"] = "showExcludeButton"; + // DPI_ShowFloatingZoomToolbar, having type bool + ParameterId["ShowFloatingZoomToolbar"] = "showFloatingZoomToolbar"; + // DPI_ShowFormatter, having type bool + ParameterId["ShowFormatter"] = "showFormatter"; + // DPI_ShowFullSchedules, having type bool + ParameterId["ShowFullSchedules"] = "showFullSchedules"; + // DPI_ShowGeographicSearch, having type bool + ParameterId["ShowGeographicSearch"] = "showGeographicSearch"; + // DPI_ShowHiddenFields, having type bool + ParameterId["ShowHiddenFields"] = "showHiddenFields"; + // DPI_ShowHistoryControls, having type bool + ParameterId["ShowHistoryControls"] = "showHistoryControls"; + // DPI_ShowIncludeLocalFiles, having type bool + ParameterId["ShowIncludeLocalFiles"] = "showIncludeLocalFiles"; + // DPI_ShowIncludeOtherOption, having type bool + ParameterId["ShowIncludeOtherOption"] = "showIncludeOtherOption"; + // DPI_ShowIncludeSelections, having type bool + ParameterId["ShowIncludeSelections"] = "showIncludeSelections"; + // DPI_ShowIncrSchedules, having type bool + ParameterId["ShowIncrSchedules"] = "showIncrSchedules"; + // DPI_ShowInnerMostLevel, having type bool + ParameterId["ShowInnerMostLevel"] = "showInnermostLevel"; + // DPI_ShowItalics, having type bool + ParameterId["ShowItalics"] = "showItalicsOption"; + // DPI_ShowLegend, having type bool + ParameterId["ShowLegend"] = "showLegend"; + // DPI_ShowLockedPermissionsIcon, having type bool + ParameterId["ShowLockedPermissionsIcon"] = "showLockedPermissionsIcon"; + // DPI_ShowManageDatasources, having type bool + ParameterId["ShowManageDatasources"] = "showManageDatasources"; + // DPI_ShowMapLegend, having type bool + ParameterId["ShowMapLegend"] = "showMapLegend"; + // DPI_ShowMapScale, having type bool + ParameterId["ShowMapScale"] = "showMapScale"; + // DPI_ShowMappedFilterCols, having type bool + ParameterId["ShowMappedFilterCols"] = "showMappedFilterColumns"; + // DPI_ShowName, having type bool + ParameterId["ShowName"] = "showName"; + // DPI_ShowNone, having type bool + ParameterId["ShowNone"] = "showNone"; + // DPI_ShowPagePlayback, having type bool + ParameterId["ShowPagePlayback"] = "showPagePlayback"; + // DPI_ShowPageReadout, having type bool + ParameterId["ShowPageReadout"] = "showPageReadout"; + // DPI_ShowPageSlider, having type bool + ParameterId["ShowPageSlider"] = "showPageSlider"; + // DPI_ShowParent, having type bool + ParameterId["ShowParent"] = "showParent"; + // DPI_ShowPercentages, having type bool + ParameterId["ShowPercentages"] = "showPercentages"; + // DPI_ShowPredictionIntervals, having type bool + ParameterId["ShowPredictionIntervals"] = "showPredictionIntervals"; + // DPI_ShowPublishedDatasources, having type bool + ParameterId["ShowPublishedDatasources"] = "showPublishedDatasources"; + // DPI_ShowRelDatePicker, having type bool + ParameterId["ShowRelDatePicker"] = "showRelDatePicker"; + // DPI_ShowReplaceDatasource, having type bool + ParameterId["ShowReplaceDatasource"] = "showReplaceDatasource"; + // DPI_ShowSeparator, having type bool + ParameterId["ShowSeparator"] = "showSeparator"; + // DPI_ShowShapeLegend, having type bool + ParameterId["ShowShapeLegend"] = "showShapeLegend"; + // DPI_ShowSizeLegend, having type bool + ParameterId["ShowSizeLegend"] = "showSizeLegend"; + // DPI_ShowShelf, having type bool + ParameterId["ShowShelf"] = "showShelf"; + // DPI_ShowStructure, having type bool + ParameterId["ShowStructure"] = "showStructure"; + // DPI_ShowSyncClientOptions, having type bool + ParameterId["ShowSyncClientOptions"] = "showSyncClientOptions"; + // DPI_ShowTabsAllowed, having type bool + ParameterId["ShowTabsAllowed"] = "showTabsAllowed"; + // DPI_ShowTime, having type bool + ParameterId["ShowTime"] = "showTime"; + // DPI_ShowTitle, having type bool + ParameterId["ShowTitle"] = "showTitle"; + // DPI_ShowTransSlider, having type bool + ParameterId["ShowTransSlider"] = "showTransparencySlider"; + // DPI_ShowUnderline, having type bool + ParameterId["ShowUnderline"] = "showUnderlineOption"; + // DPI_ShowUserThumbnailOptions, having type bool + ParameterId["ShowUserThumbnailOptions"] = "showUserThumbnailOptions"; + // DPI_ShowView, having type bool + ParameterId["ShowView"] = "showView"; + // DPI_ShowViews, having type bool + ParameterId["ShowViews"] = "showViews"; + // DPI_ShowingPageLoadError, having type bool + ParameterId["ShowingPageLoadError"] = "showingPageLoadError"; + // DPI_SupressAliases, having type bool + ParameterId["SupressAliases"] = "suspressAliases"; + // DPI_SupressThousandsSeparator, having type bool + ParameterId["SupressThousandsSeparator"] = "supressThousandsSeparator"; + // DPI_SingleSelectOnly, having type bool + ParameterId["SingleSelectOnly"] = "singleSelectOnly"; + // DPI_SkipIfActive, having type bool + ParameterId["SkipIfActive"] = "skipIfActive"; + // DPI_SkipRefresh, having type bool + ParameterId["SkipRefresh"] = "skipRefresh"; + // DPI_SkipValidation, having type bool + ParameterId["SkipValidation"] = "skipValidation"; + // DPI_Skipped, having type bool + ParameterId["Skipped"] = "skipped"; + // DPI_SortFieldIsInvalid, having type bool + ParameterId["SortFieldIsInvalid"] = "sortFieldIsInvalid"; + // DPI_SortModeIsAuto, having type bool + ParameterId["SortModeIsAuto"] = "sortModeIsAuto"; + // DPI_SplitOnEdgeSnap, having type bool + ParameterId["SplitOnEdgeSnap"] = "splitOnEdgeSnap"; + // DPI_StandardDeviationAllowed, having type bool + ParameterId["StandardDeviationAllowed"] = "standardDeviationAllowed"; + // DPI_State, having type bool + ParameterId["State"] = "state"; + // DPI_StoredProcDisabled, having type bool + ParameterId["StoredProcDisabled"] = "storedProcDisabled"; + // DPI_StoredProcsDropable, having type bool + ParameterId["StoredProcsDropable"] = "storedProcsDropable"; + // DPI_StoryIsEmpty, having type bool + ParameterId["StoryIsEmpty"] = "storyIsEmpty"; + // DPI_StoryPointIsEmpty, having type bool + ParameterId["StoryPointIsEmpty"] = "storyPointIsEmpty"; + // DPI_SuccessfulSave, having type bool + ParameterId["SuccessfulSave"] = "successfulSave"; + // DPI_SupportXAxis, having type bool + ParameterId["SupportXAxis"] = "supportXAxis"; + // DPI_SupportYAxis, having type bool + ParameterId["SupportYAxis"] = "supportYAxis"; + // DPI_SupportsCenterAlignment, having type bool + ParameterId["SupportsCenterAlignment"] = "supportsCenterAlignment"; + // DPI_SupportsDBFilters, having type bool + ParameterId["SupportsDBFilters"] = "supportsDatabaseFilters"; + // DPI_SupportsMultipleValues, having type bool + ParameterId["SupportsMultipleValues"] = "supportsMultipleValues"; + // DPI_SupportsRightAlignment, having type bool + ParameterId["SupportsRightAlignment"] = "supportsRightAlignment"; + // DPI_SupportsTableFilters, having type bool + ParameterId["SupportsTableFilters"] = "supportsTableFilters"; + // DPI_Symmetric, having type bool + ParameterId["Symmetric"] = "symmetric"; + // DPI_SyncAutomaticDrill, having type bool + ParameterId["SyncAutomaticDrill"] = "syncAutomaticDrill"; + // DPI_TabsAllowed, having type bool + ParameterId["TabsAllowed"] = "tabsAllowed"; + // DPI_TextDropdownState, having type bool + ParameterId["TextDropdownState"] = "toggleState"; + // DPI_TitleInline, having type bool + ParameterId["TitleInline"] = "titleInline"; + // DPI_ToggleHighlightStateChanged, having type bool + ParameterId["ToggleHighlightStateChanged"] = "toggleHighlight"; + // DPI_Transformed80Format, having type bool + ParameterId["Transformed80Format"] = "oldFormat"; + // DPI_TrendLineSelected, having type bool + ParameterId["TrendLineSelected"] = "trendLineSelected"; + // DPI_TruncDate, having type bool + ParameterId["TruncDate"] = "truncDate"; + // DPI_TupleSelected, having type bool + ParameterId["TupleSelected"] = "tupleSelected"; + // DPI_UIAutomationDidPageLoad, having type bool + ParameterId["UIAutomationDidPageLoad"] = "uiAutomationDidPageLoad"; + // DPI_UIAutomationIsChecked, having type bool + ParameterId["UIAutomationIsChecked"] = "uiAutomationIsChecked"; + // DPI_UIAutomationIsEnabled, having type bool + ParameterId["UIAutomationIsEnabled"] = "uiAutomationIsEnabled"; + // DPI_UIAutomationIsEventProcessed, having type bool + ParameterId["UIAutomationIsEventProcessed"] = "uiAutomationIsEventProcessed"; + // DPI_UIAutomationIsFocused, having type bool + ParameterId["UIAutomationIsFocused"] = "uiAutomationIsFocused"; + // DPI_UIAutomationIsFound, having type bool + ParameterId["UIAutomationIsFound"] = "uiAutomationIsFound"; + // DPI_UIAutomationIsReadonly, having type bool + ParameterId["UIAutomationIsReadonly"] = "uiAutomationIsReadonly"; + // DPI_UIAutomationIsSelected, having type bool + ParameterId["UIAutomationIsSelected"] = "uiAutomationIsSelected"; + // DPI_UpdateAllPanes, having type bool + ParameterId["UpdateAllPanes"] = "updateAllPanes"; + // DPI_UpdateDSCaptionOnly, having type bool + ParameterId["UpdateDSCaptionOnly"] = "updateDsCaptionOnly"; + // DPI_UpdateModelFromParams, having type bool + ParameterId["UpdateModelFromParams"] = "updateModelFromParams"; + // DPI_UpdateShelves, having type bool + ParameterId["UpdateShelves"] = "updateShelves"; + // DPI_UpdatesUseContext, having type bool + ParameterId["UpdatesUseContext"] = "updatesUseContext"; + // DPI_UpgradeDocumentVersion, having type bool + ParameterId["UpgradeDocumentVersion"] = "upgradeDocumentVersion"; + // DPI_UseAliases, having type bool + ParameterId["UseAliases"] = "useAliases"; + // DPI_UseBlankForNull, having type bool + ParameterId["UseBlankForNull"] = "useBlankForNull"; + // DPI_UseCalculationEditor, having type bool + ParameterId["UseCalculationEditor"] = "useCalculationEditor"; + // DPI_UseCenterValue, having type bool + ParameterId["UseCenterValue"] = "useCenterValue"; + // DPI_UseColor, having type bool + ParameterId["UseColor"] = "useColor"; + // DPI_UseCustomMarkSize, having type bool + ParameterId["UseCustomMarkSize"] = "useCustomMarkSize"; + // DPI_UseDarkIcons, having type bool + ParameterId["UseDarkIcons"] = "useDarkIcons"; + // DPI_UseDataStoreMinfiedNames, having type bool + ParameterId["UseDataStoreMinfiedNames"] = "useDatastoreMinNames"; + // DPI_UseInitialDomainType, having type bool + ParameterId["UseInitialDomainType"] = "useInitialDomainType"; + // DPI_UseEndValue, having type bool + ParameterId["UseEndValue"] = "useEndValue"; + // DPI_UseForOverlayHitTest, having type bool + ParameterId["UseForOverlayHitTest"] = "useForOverlayHitTest"; + // DPI_UseFullColorRange, having type bool + ParameterId["UseFullColorRange"] = "useFullColorRange"; + // DPI_UseFullDomain, having type bool + ParameterId["UseFullDomain"] = "useFullDomain"; + // DPI_UseInlineImages, having type bool + ParameterId["UseInlineImages"] = "useInlineImages"; + // DPI_UseMeasures, having type bool + ParameterId["UseMeasures"] = "useMeasures"; + // DPI_UseNewQuickFilters, having type bool + ParameterId["UseNewQuickFilters"] = "useNewQuickFilters"; + // DPI_UseNotificationReturn, having type bool + ParameterId["UseNotificationReturn"] = "useNotificationReturn"; + // DPI_UseParameters, having type bool + ParameterId["UseParameters"] = "useParameters"; + // DPI_UseSelector, having type bool + ParameterId["UseSelector"] = "useSelector"; + // DPI_UseSignificantDigits, having type bool + ParameterId["UseSignificantDigits"] = "useSignificantDigits"; + // DPI_UseSpecialStrings, having type bool + ParameterId["UseSpecialStrings"] = "useSpecialStrings"; + // DPI_UseStartValue, having type bool + ParameterId["UseStartValue"] = "useStartValue"; + // DPI_UseTabs, having type bool + ParameterId["UseTabs"] = "useTabs"; + // DPI_UseTabletAsDefaultPreview, having type bool + ParameterId["UseTabletAsDefaultPreview"] = "useTabletAsDefaultPreview"; + // DPI_UseTargetPt, having type bool + ParameterId["UseTargetPt"] = "useTargetPoint"; + // DPI_UseUSLocale, having type bool + ParameterId["UseUSLocale"] = "useUsLocale"; + // DPI_UseYAxis, having type bool + ParameterId["UseYAxis"] = "useYAxis"; + // DPI_Valid, having type bool + ParameterId["Valid"] = "valid"; + // DPI_VizDataV82, having type bool + ParameterId["VizDataV82"] = "vizData82"; + // DPI_WMSConnectionSuccessful, having type bool + ParameterId["WMSConnectionSuccessful"] = "wmsConnectionSuccessful"; + // DPI_WMSShouldUseTiles, having type bool + ParameterId["WMSShouldUseTiles"] = "wmsShouldUseTiles"; + // DPI_WantDomain, having type bool + ParameterId["WantDomain"] = "wantDomain"; + // DPI_WorkbookModified, having type bool + ParameterId["WorkbookModified"] = "workbookModified"; + // DPI_ZoomIn, having type bool + ParameterId["ZoomIn"] = "zoomIn"; + // DPI_ShowMarkLabels, having type bool + ParameterId["ShowMarkLabels"] = "showMarkLabels"; + // DPI_HasDuplicates, having type bool + ParameterId["HasDuplicates"] = "hasDuplicates"; + // DPI_HasUserDefinedIncrement, having type bool + ParameterId["HasUserDefinedIncrement"] = "hasUserDefinedIncrement"; + // DPI_HasUserDefinedMax, having type bool + ParameterId["HasUserDefinedMax"] = "hasUserDefinedMax"; + // DPI_HasUserDefinedMin, having type bool + ParameterId["HasUserDefinedMin"] = "hasUserDefinedMin"; + // DPI_IsDuplicate, having type bool + ParameterId["IsDuplicate"] = "isDuplicate"; + // DPI_IsEditingValue, having type bool + ParameterId["IsEditingValue"] = "isEditingValue"; + // DPI_ShouldRestrictDataType, having type bool + ParameterId["ShouldRestrictDataType"] = "restrictDataType"; + // DPI_EnableIncludeZero, having type bool + ParameterId["EnableIncludeZero"] = "enableIncludeZero"; + // DPI_EnableSyncDualAxes, having type bool + ParameterId["EnableSyncDualAxes"] = "enableSynchronizeDualAxes"; + // DPI_EnableShowTimes, having type bool + ParameterId["EnableShowTimes"] = "enableShowTimes"; + // DPI_EnableTickMarksTab, having type bool + ParameterId["EnableTickMarksTab"] = "enableTickMarksTab"; + // DPI_IsTemporal, having type bool + ParameterId["IsTemporal"] = "isTemporal"; + // DPI_ShouldIncludeZero, having type bool + ParameterId["ShouldIncludeZero"] = "shouldIncludeZero"; + // DPI_ShouldReverseAxis, having type bool + ParameterId["ShouldReverseAxis"] = "shouldReverseAxis"; + // DPI_ShouldShowTimes, having type bool + ParameterId["ShouldShowTimes"] = "shouldShowTimes"; + // DPI_UseAutomaticAxisSubtitle, having type bool + ParameterId["UseAutomaticAxisSubtitle"] = "useAutomaticSubtitle"; + // DPI_UseAutomaticAxisTitle, having type bool + ParameterId["UseAutomaticAxisTitle"] = "useAutomaticTitle"; + // DPI_AllSelected, having type bool + ParameterId["AllSelected"] = "allSelected"; + // DPI_AutoCommit, having type bool + ParameterId["AutoCommit"] = "autoCommit"; + // DPI_CacheOnly, having type bool + ParameterId["CacheOnly"] = "cacheOnly"; + // DPI_IncludeData, having type bool + ParameterId["IncludeData"] = "includeData"; + // DPI_IsPatternExclusive, having type bool + ParameterId["IsPatternExclusive"] = "isPatternExclusive"; + // DPI_IsSearchable, having type bool + ParameterId["IsSearchable"] = "isSearchable"; + // DPI_IsSelectionExclusive, having type bool + ParameterId["IsSelectionExclusive"] = "isSelectionExclusive"; + // DPI_ResetNewFilter, having type bool + ParameterId["ResetNewFilter"] = "resetNewFilter"; + // DPI_UseAllWhenManualEmpty, having type bool + ParameterId["UseAllWhenManualEmpty"] = "useAllWhenManualEmpty"; + // DPI_UseAllWhenPatternEmpty, having type bool + ParameterId["UseAllWhenPatternEmpty"] = "useAllWhenPatternEmpty"; + // DPI_GroupByDrillDown, having type bool + ParameterId["GroupByDrillDown"] = "groupByDrillDown"; + // DPI_GroupByTable, having type bool + ParameterId["GroupByTable"] = "groupByTable"; + // DPI_IncludeGroups, having type bool + ParameterId["IncludeGroups"] = "includeGroups"; + // DPI_IncludePendingState, having type bool + ParameterId["IncludePendingState"] = "includePendingState"; + // DPI_IncludeFieldMenus, having type bool + ParameterId["IncludeFieldMenus"] = "includeFieldMenus"; + // DPI_IncludeFormattedValues, having type bool + ParameterId["IncludeFormattedValues"] = "includeFormattedValues"; + // DPI_IncludeColumnInstances, having type bool + ParameterId["IncludeColumnInstances"] = "includeColumnInstances"; + // DPI_IncludeAdHocCalcs, having type bool + ParameterId["IncludeAdHocCalcs"] = "includeAdhocCalcs"; + // DPI_IncludeHiddenInvalidFields, having type bool + ParameterId["IncludeHiddenInvalidFields"] = "includeHiddenInvalidFields"; + // DPI_IncludeNonExtractedColumns, having type bool + ParameterId["IncludeNonExtractedColumns"] = "includeNonExtractedColumns"; + // DPI_IncludeCalculatedFieldFormulas, having type bool + ParameterId["IncludeCalculatedFieldFormulas"] = "includeCalculatedFieldFormulas"; + // DPI_SetDataPreviewCustomFieldOrder, having type bool + ParameterId["SetDataPreviewCustomFieldOrder"] = "setDataPreviewCustomFieldOrder"; + // DPI_CustomSplitAllowSplitFromRight, having type bool + ParameterId["CustomSplitAllowSplitFromRight"] = "customSplitAllowSplitFromRight"; + // DPI_IsChanged, having type bool + ParameterId["IsChanged"] = "isChanged"; + // DPI_ShowFontColorPicker, having type bool + ParameterId["ShowFontColorPicker"] = "showFontColorPicker"; + // DPI_ShowFontFamilyPicker, having type bool + ParameterId["ShowFontFamilyPicker"] = "showFontFamilyPicker"; + // DPI_ShowFontSizePicker, having type bool + ParameterId["ShowFontSizePicker"] = "showFontSizePicker"; + // DPI_ShowFontStyleButtons, having type bool + ParameterId["ShowFontStyleButtons"] = "showFontStyleButtons"; + // DPI_ShowLineForAll, having type bool + ParameterId["ShowLineForAll"] = "showLineForAll"; + // DPI_ShowLineForColumn, having type bool + ParameterId["ShowLineForColumn"] = "showLineForColumn"; + // DPI_ShowLineForRow, having type bool + ParameterId["ShowLineForRow"] = "showLineForRow"; + // DPI_ShowLinePatternPicker, having type bool + ParameterId["ShowLinePatternPicker"] = "showLinePatternPicker"; + // DPI_ShowLineTransparency, having type bool + ParameterId["ShowLineTransparency"] = "showLineTransparency"; + // DPI_ShowLineWidthPicker, having type bool + ParameterId["ShowLineWidthPicker"] = "showLineWidthPicker"; + // DPI_CanBeAuto, having type bool + ParameterId["CanBeAuto"] = "canBeAuto"; + // DPI_CanBeNone, having type bool + ParameterId["CanBeNone"] = "canBeNone"; + // DPI_CanMatchMarkColor, having type bool + ParameterId["CanMatchMarkColor"] = "canMatchMarkColor"; + // DPI_HasOpacity, having type bool + ParameterId["HasOpacity"] = "hasOpacity"; + // DPI_IncludeAllHidden, having type bool + ParameterId["IncludeAllHidden"] = "includeAllHidden"; + // DPI_IncludeCurrent, having type bool + ParameterId["IncludeCurrent"] = "includeCurrent"; + // DPI_IsIncluded, having type bool + ParameterId["IsIncluded"] = "isIncluded"; + // DPI_IsRelative, having type bool + ParameterId["IsRelative"] = "isRelative"; + // DPI_IsSecondaryAllowed, having type bool + ParameterId["IsSecondaryAllowed"] = "isSecondaryAllowed"; + // DPI_NullIfIncomplete, having type bool + ParameterId["NullIfIncomplete"] = "nullIfIncomplete"; + // DPI_IsCalcAssistanceEnabled, having type bool + ParameterId["IsCalcAssistanceEnabled"] = "isCalcAssistanceEnabled"; + // DPI_UseSecondaryCalc, having type bool + ParameterId["UseSecondaryCalc"] = "useSecondaryCalc"; + // DPI_CanLoad, having type bool + ParameterId["CanLoad"] = "canLoad"; + // DPI_DescriptionOnly, having type bool + ParameterId["DescriptionOnly"] = "descriptionOnly"; + // DPI_AreAliasesSupported, having type bool + ParameterId["AreAliasesSupported"] = "areAliasesSupported"; + // DPI_AreRefColumnsSupported, having type bool + ParameterId["AreRefColumnsSupported"] = "areRefColumnsSupported"; + // DPI_IsAggregated, having type bool + ParameterId["IsAggregated"] = "isAggregated"; + // DPI_IsExportSupported, having type bool + ParameterId["IsExportSupported"] = "isExportSupported"; + // DPI_IsMeasureNames, having type bool + ParameterId["IsMeasureNames"] = "isMeasureNames"; + // DPI_IsSummarySupported, having type bool + ParameterId["IsSummarySupported"] = "isSummarySupported"; + // DPI_IsTopNSupported, having type bool + ParameterId["IsTopNSupported"] = "isTopNSupported"; + // DPI_IsUnderlyingSupported, having type bool + ParameterId["IsUnderlyingSupported"] = "isUnderlyingSupported"; + // DPI_OnlyExportSummary, having type bool + ParameterId["OnlyExportSummary"] = "onlyExportSummary"; + // DPI_ShowAllFields, having type bool + ParameterId["ShowAllFields"] = "showAllFields"; + // DPI_UseTablePtrs, having type bool + ParameterId["UseTablePtrs"] = "useTablePtrs"; + // DPI_OnlyFetchSummary, having type bool + ParameterId["OnlyFetchSummary"] = "onlyFetchSummary"; + // DPI_IsDeviceLayoutCustomized, having type bool + ParameterId["IsDeviceLayoutCustomized"] = "isDeviceLayoutCustomized"; + // DPI_IsDeviceSizeCustomized, having type bool + ParameterId["IsDeviceSizeCustomized"] = "isDeviceSizeCustomized"; + // DPI_IsDeviceSupportedByMobileApp, having type bool + ParameterId["IsDeviceSupportedByMobileApp"] = "isDeviceSupportedByMobileApp"; + // DPI_IsPortrait, having type bool + ParameterId["IsPortrait"] = "isPortrait"; + // DPI_IsPortraitByDefault, having type bool + ParameterId["IsPortraitByDefault"] = "isPortraitByDefault"; + // DPI_IsUserCustomFormat, having type bool + ParameterId["IsUserCustomFormat"] = "isUserCustomFormat"; + // DPI_ShouldDisplayRebuildExtractMessage, having type bool + ParameterId["ShouldDisplayRebuildExtractMessage"] = "shouldDisplayRebuildExtractMessage"; + // DPI_SupportsCustomStartOfWeek, having type bool + ParameterId["SupportsCustomStartOfWeek"] = "supportsCustomStartOfWeek"; + // DPI_NeedsConnectPrompt, having type bool + ParameterId["NeedsConnectPrompt"] = "needsConnectPrompt"; + // DPI_NeedsCloseDataSourceErrorPrompt, having type bool + ParameterId["NeedsCloseDataSourceErrorPrompt"] = "needsCloseDsErrorPrompt"; + // DPI_ClearCurrentSelection, having type bool + ParameterId["ClearCurrentSelection"] = "clearCurrentSelection"; + // DPI_HasContains, having type bool + ParameterId["HasContains"] = "hasContains"; + // DPI_HasEndsWith, having type bool + ParameterId["HasEndsWith"] = "hasEndsWith"; + // DPI_HasReplaceSelection, having type bool + ParameterId["HasReplaceSelection"] = "hasReplaceSelection"; + // DPI_HasStartsWith, having type bool + ParameterId["HasStartsWith"] = "hasStartsWith"; + // DPI_IsLeafSelectionOnly, having type bool + ParameterId["IsLeafSelectionOnly"] = "isLeafSelectionOnly"; + // DPI_ReplaceSelection, having type bool + ParameterId["ReplaceSelection"] = "replaceSelection"; + // DPI_IsColorPaletteCustomized, having type bool + ParameterId["IsColorPaletteCustomized"] = "isColorPaletteCustomized"; + // DPI_ReversePaletteOrder, having type bool + ParameterId["ReversePaletteOrder"] = "reversePaletteOrder"; + // DPI_TriedToConnect, having type bool + ParameterId["TriedToConnect"] = "triedToConnect"; + // DPI_ScaleMarksInAxisUnits, having type bool + ParameterId["ScaleMarksInAxisUnits"] = "scaleMarksInAxisUnits"; + // DPI_ShowMarkSizingOptions, having type bool + ParameterId["ShowMarkSizingOptions"] = "showMarkSizingOptions"; + // DPI_UseSizeFieldCaption, having type bool + ParameterId["UseSizeFieldCaption"] = "useSizeFieldCaption"; + // DPI_IsLicensedAndRegistered, having type bool + ParameterId["IsLicensedAndRegistered"] = "isLicensedAndRegistered"; + // DPI_SetNewDatasourceActive, having type bool + ParameterId["SetNewDatasourceActive"] = "setNewDatasourceActive"; + // DPI_AllowCustomLabel, having type bool + ParameterId["AllowCustomLabel"] = "allowCustomLabel"; + // DPI_IsMostRecentModeValid, having type bool + ParameterId["IsMostRecentModeValid"] = "isMostRecentModeValid"; + // DPI_MustShowLabels, having type bool + ParameterId["MustShowLabels"] = "mustShowLabels"; + // DPI_ShowRunningOrderLabels, having type bool + ParameterId["ShowRunningOrderLabels"] = "showRunningOrderLabels"; + // DPI_IsDroppedFile, having type bool + ParameterId["IsDroppedFile"] = "isDroppedFile"; + // DPI_IsInitialized, having type bool + ParameterId["IsInitialized"] = "isInitialized"; + // DPI_IncludeDashboard, having type bool + ParameterId["IncludeDashboard"] = "includeDashboard"; + // DPI_ChildrenCanResize, having type bool + ParameterId["ChildrenCanResize"] = "childrenCanResize"; + // DPI_BoolMap, having type Dictionary(of bool) + ParameterId["BoolMap"] = "boolMap"; + // DPI_CheckedMenuItems, having type bool[] + ParameterId["CheckedMenuItems"] = "checkedMenuItems"; + // DPI_IncludedSheetValues, having type bool[] + ParameterId["IncludedSheetValues"] = "includedSheetValues"; + // DPI_SortOrderVector, having type bool[] + ParameterId["SortOrderVector"] = "sortOrderVector"; + // DPI_ActionName, having type string + ParameterId["ActionName"] = "actionName"; + // DPI_ActionSourceText, having type string + ParameterId["ActionSourceText"] = "actionSourceText"; + // DPI_ActionTypeAsString, having type string + ParameterId["ActionTypeAsString"] = "actionTypeAsString"; + // DPI_ActiveTab, having type string + ParameterId["ActiveTab"] = "active_tab"; + // DPI_AddInFeatureName, having type string + ParameterId["AddInFeatureName"] = "addInFeatureName"; + // DPI_AddInId, having type string + ParameterId["AddInId"] = "addInId"; + // DPI_AddInstanceId, having type string + ParameterId["AddInstanceId"] = "addInInstanceId"; + // DPI_AddInName, having type string + ParameterId["AddInName"] = "addInName"; + // DPI_AddInLocale, having type string + ParameterId["AddInLocale"] = "addInLocale"; + // DPI_AddInLanguage, having type string + ParameterId["AddInLanguage"] = "addInLanguage"; + // DPI_APIVersion, having type string + ParameterId["APIVersion"] = "apiVersion"; + // DPI_Alias, having type string + ParameterId["Alias"] = "alias"; + // DPI_AnchorDate, having type string + ParameterId["AnchorDate"] = "anchorDate"; + // DPI_AnnotationRes, having type string + ParameterId["AnnotationRes"] = "annotationRes"; + // DPI_ReadId, having type string + ParameterId["ReadId"] = "readId"; + // DPI_AnnotationText, having type string + ParameterId["AnnotationText"] = "annotationText"; + // DPI_ArchiveDirectory, having type string + ParameterId["ArchiveDirectory"] = "archiveDirectory"; + // DPI_ArchiveFullPath, having type string + ParameterId["ArchiveFullPath"] = "archiveFullPath"; + // DPI_AtTheLevelInvalidFieldCaption, having type string + ParameterId["AtTheLevelInvalidFieldCaption"] = "atTheLevelInvalidFieldCaption"; + // DPI_AutoCompleteSubstring, having type string + ParameterId["AutoCompleteSubstring"] = "acSubstring"; + // DPI_AutosaveFileId, having type string + ParameterId["AutosaveFileId"] = "autosaveFileId"; + // DPI_AutosaveTimerInterval, having type string + ParameterId["AutosaveTimerInterval"] = "autosaveTimerInterval"; + // DPI_BaseColumnCaption, having type string + ParameterId["BaseColumnCaption"] = "baseColumnCaption"; + // DPI_ClearButtonText, having type string + ParameterId["ClearButtonText"] = "clearButtonText"; + // DPI_ColorPaletteId, having type string + ParameterId["ColorPaletteId"] = "colorPaletteId"; + // DPI_ColorPaletteName, having type string + ParameterId["ColorPaletteName"] = "colorPaletteName"; + // DPI_ColorSwatch, having type string + ParameterId["ColorSwatch"] = "colorSwatch"; + // DPI_CommandName, having type string + ParameterId["CommandName"] = "commandName"; + // DPI_ConfidenceLevelValue, having type string + ParameterId["ConfidenceLevelValue"] = "confidenceLevelValue"; + // DPI_CountDistinctStr, having type string + ParameterId["CountDistinctStr"] = "countDistinctStr"; + // DPI_CrossTabFilepath, having type string + ParameterId["CrossTabFilepath"] = "crossTabFilepath"; + // DPI_CSSMargin, having type string + ParameterId["CSSMargin"] = "cssMargin"; + // DPI_CSSWhitespace, having type string + ParameterId["CSSWhitespace"] = "cssWhitespace"; + // DPI_DBPassword, having type string + ParameterId["DBPassword"] = "dbPassword"; + // DPI_DBUsername, having type string + ParameterId["DBUsername"] = "dbUsername"; + // DPI_DataAlertConditionText, having type string + ParameterId["DataAlertConditionText"] = "dataAlertConditionText"; + // DPI_DataAlertMeasureText, having type string + ParameterId["DataAlertMeasureText"] = "dataAlertMeasureText"; + // DPI_DataAlertSpecSerializedText, having type string + ParameterId["DataAlertSpecSerializedText"] = "dataAlertSpecSerializedText"; + // DPI_DataAlertDefaultSubject, having type string + ParameterId["DataAlertDefaultSubject"] = "dataAlertDefaultSubject"; + // DPI_DataAlertThresholdText, having type string + ParameterId["DataAlertThresholdText"] = "dataAlertThresholdText"; + // DPI_DataGridSortColumnName, having type string + ParameterId["DataGridSortColumnName"] = "datagridSortColumnName"; + // DPI_DataServerConnectionError, having type string + ParameterId["DataServerConnectionError"] = "dataServerConnectionError"; + // DPI_DatabaseFilter, having type string + ParameterId["DatabaseFilter"] = "databaseFilter"; + // DPI_DatabaseFilterPrompt, having type string + ParameterId["DatabaseFilterPrompt"] = "databaseFilterPrompt"; + // DPI_DatasourceRanking, having type string + ParameterId["DatasourceRanking"] = "datasourceRanking"; + // DPI_DatasourceUrl, having type string + ParameterId["DatasourceUrl"] = "datasourceUrl"; + // DPI_DatasourceUsername, having type string + ParameterId["DatasourceUsername"] = "datasourceUsername"; + // DPI_DateFormat, having type string + ParameterId["DateFormat"] = "dateFormat"; + // DPI_DatePart, having type string + ParameterId["DatePart"] = "datePart"; + // DPI_DatePartAbbrev, having type string + ParameterId["DatePartAbbrev"] = "datePartAbbrev"; + // DPI_DefaultHierarchyName, having type string + ParameterId["DefaultHierarchyName"] = "defaultHierarchyName"; + // DPI_DefaultMenuItemKey, having type string + ParameterId["DefaultMenuItemKey"] = "defaultMenuItemKey"; + // DPI_Delimiter, having type string + ParameterId["Delimiter"] = "delimiter"; + // DPI_DeviceName, having type string + ParameterId["DeviceName"] = "deviceName"; + // DPI_DeviceType, having type string + ParameterId["DeviceType"] = "deviceType"; + // DPI_DisplayPath, having type string + ParameterId["DisplayPath"] = "displayPath"; + // DPI_DistributionValueString, having type string + ParameterId["DistributionValueString"] = "distributionValueString"; + // DPI_DrillPathName, having type string + ParameterId["DrillPathName"] = "drillPathName"; + // DPI_EmbeddedTitle, having type string + ParameterId["EmbeddedTitle"] = "embeddedTitle"; + // DPI_EnterValueText, having type string + ParameterId["EnterValueText"] = "enterValueText"; + // DPI_EscapeString, having type string + ParameterId["EscapeString"] = "escapeString"; + // DPI_ExtSvcConfigHost, having type string + ParameterId["ExtSvcConfigHost"] = "extSvcConfigHost"; + // DPI_ExtSvcConfigPassword, having type string + ParameterId["ExtSvcConfigPassword"] = "extSvcConfigPassword"; + // DPI_ExtSvcConfigPort, having type string + ParameterId["ExtSvcConfigPort"] = "extSvcConfigPort"; + // DPI_ExtSvcConfigConnectTimeout, having type string + ParameterId["ExtSvcConfigConnectTimeout"] = "extSvcConnectTimeout"; + // DPI_ExtSvcConfigPrevHost, having type string + ParameterId["ExtSvcConfigPrevHost"] = "extSvcConfigPrevHost"; + // DPI_ExtSvcConfigUsername, having type string + ParameterId["ExtSvcConfigUsername"] = "extSvcConfigUsername"; + // DPI_ExtractUpdateTime, having type string + ParameterId["ExtractUpdateTime"] = "extractUpdateTime"; + // DPI_FieldFolderName, having type string + ParameterId["FieldFolderName"] = "fieldFolderName"; + // DPI_FieldNameString, having type string + ParameterId["FieldNameString"] = "fieldName"; + // DPI_FilterSearchDomain, having type string + ParameterId["FilterSearchDomain"] = "filterSearchDomain"; + // DPI_FilterSpec, having type string + ParameterId["FilterSpec"] = "filterSpec"; + // DPI_FirstValue, having type string + ParameterId["FirstValue"] = "firstValue"; + // DPI_FolderName, having type string + ParameterId["FolderName"] = "folderName"; + // DPI_FontName, having type string + ParameterId["FontName"] = "fontName"; + // DPI_FormatString, having type string + ParameterId["FormatString"] = "formatString"; + // DPI_FormattedDisplayString, having type string + ParameterId["FormattedDisplayString"] = "formattedDisplayString"; + // DPI_FormattedIncrementValue, having type string + ParameterId["FormattedIncrementValue"] = "formattedIncrement"; + // DPI_FormattedMaxValue, having type string + ParameterId["FormattedMaxValue"] = "formattedMax"; + // DPI_FormattedMinValue, having type string + ParameterId["FormattedMinValue"] = "formattedMin"; + // DPI_FormattedValue, having type string + ParameterId["FormattedValue"] = "formattedValue"; + // DPI_FormattedCenterValue, having type string + ParameterId["FormattedCenterValue"] = "formattedCenter"; + // DPI_FormattedEndValue, having type string + ParameterId["FormattedEndValue"] = "formattedEnd"; + // DPI_FormattedStartValue, having type string + ParameterId["FormattedStartValue"] = "formattedStart"; + // DPI_PairedFormattedValue, having type string + ParameterId["PairedFormattedValue"] = "pairedFormattedValue"; + // DPI_FrameAttributes, having type string + ParameterId["FrameAttributes"] = "frameAttr"; + // DPI_GUID, having type string + ParameterId["GUID"] = "guid"; + // DPI_GeographicSearchCandidateDisplayName, having type string + ParameterId["GeographicSearchCandidateDisplayName"] = "geographicSearchCandidateDisplayName"; + // DPI_GeographicSearchCandidateParentName, having type string + ParameterId["GeographicSearchCandidateParentName"] = "geographicSearchCandidateParentName"; + // DPI_GeographicSearchCandidateType, having type string + ParameterId["GeographicSearchCandidateType"] = "geographicSearchCandidateType"; + // DPI_GeographicSearchLocale, having type string + ParameterId["GeographicSearchLocale"] = "geographicSearchLocale"; + // DPI_GeographicSearchQueryString, having type string + ParameterId["GeographicSearchQueryString"] = "geographicSearchSearchString"; + // DPI_GeographicSearchUILocale, having type string + ParameterId["GeographicSearchUILocale"] = "geographicSearchUilocale"; + // DPI_IconRes, having type string + ParameterId["IconRes"] = "iconRes"; + // DPI_ImageHash, having type string + ParameterId["ImageHash"] = "imageHash"; + // DPI_ImageName, having type string + ParameterId["ImageName"] = "imageName"; + // DPI_ImageRes, having type string + ParameterId["ImageRes"] = "imageRes"; + // DPI_IncludesSiblingsPrompt, having type string + ParameterId["IncludesSiblingsPrompt"] = "includesSiblingsPrompt"; + // DPI_IncludesSubfoldersPrompt, having type string + ParameterId["IncludesSubfoldersPrompt"] = "includesSubfoldersPrompt"; + // DPI_IncrementalScheduleIDs, having type string + ParameterId["IncrementalScheduleIDs"] = "incrementalScheduleIds"; + // DPI_InvariantKeyword, having type string + ParameterId["InvariantKeyword"] = "invariantKeyword"; + // DPI_JoinOperator, having type string + ParameterId["JoinOperator"] = "joinOperator"; + // DPI_JoinExpression, having type string + ParameterId["JoinExpression"] = "joinExpression"; + // DPI_Key, having type string + ParameterId["Key"] = "keyId"; + // DPI_Label, having type string + ParameterId["Label"] = "label"; + // DPI_PairedLabel, having type string + ParameterId["PairedLabel"] = "pairedLabel"; + // DPI_LayoutID, having type string + ParameterId["LayoutID"] = "layoutId"; + // DPI_LeftJoinExpression, having type string + ParameterId["LeftJoinExpression"] = "leftJoinExpression"; + // DPI_LimitCountExpression, having type string + ParameterId["LimitCountExpression"] = "limitCountExpression"; + // DPI_LinkTarget, having type string + ParameterId["LinkTarget"] = "linkTarget"; + // DPI_Locale, having type string + ParameterId["Locale"] = "locale"; + // DPI_LocalizedKeyword, having type string + ParameterId["LocalizedKeyword"] = "localizedKeyword"; + // DPI_MapBoxGLStyleId, having type string + ParameterId["MapBoxGLStyleId"] = "mapboxGlStyleId"; + // DPI_MapBoxStyleUrl, having type string + ParameterId["MapBoxStyleUrl"] = "mapboxStyleUrl"; + // DPI_MapBoxUsername, having type string + ParameterId["MapBoxUsername"] = "mapboxUsername"; + // DPI_MapScaleReadoutString, having type string + ParameterId["MapScaleReadoutString"] = "mapScaleReadoutString"; + // DPI_MapScaleTooltipString, having type string + ParameterId["MapScaleTooltipString"] = "mapScaleTooltipString"; + // DPI_MapSourceName, having type string + ParameterId["MapSourceName"] = "mapSourceName"; + // DPI_MaxLabel, having type string + ParameterId["MaxLabel"] = "maxLabel"; + // DPI_MinLabel, having type string + ParameterId["MinLabel"] = "minLabel"; + // DPI_ModelDescriptionParagraph, having type string + ParameterId["ModelDescriptionParagraph"] = "modelDescriptionParagraph"; + // DPI_NameTemplate, having type string + ParameterId["NameTemplate"] = "nameTemplate"; + // DPI_NewDrillPath, having type string + ParameterId["NewDrillPath"] = "newDrillPath"; + // DPI_NewFieldFolderName, having type string + ParameterId["NewFieldFolderName"] = "newFieldFolderName"; + // DPI_NewTableAlias, having type string + ParameterId["NewTableAlias"] = "newTableAlias"; + // DPI_NonFormattedValue, having type string + ParameterId["NonFormattedValue"] = "unformattedValue"; + // DPI_OAuthUserName, having type string + ParameterId["OAuthUserName"] = "oauthUsername"; + // DPI_ObjectName, having type string + ParameterId["ObjectName"] = "objectName"; + // DPI_ObjectOverrideMessage, having type string + ParameterId["ObjectOverrideMessage"] = "objectOverrideMessage"; + // DPI_OldTableAlias, having type string + ParameterId["OldTableAlias"] = "oldTableAlias"; + // DPI_OperatingSystem, having type string + ParameterId["OperatingSystem"] = "operatingSystem"; + // DPI_OriginalFilePath, having type string + ParameterId["OriginalFilePath"] = "originalFilePath"; + // DPI_OriginalFileVersion, having type string + ParameterId["OriginalFileVersion"] = "originalFileVersion"; + // DPI_PaneDescriptorKey, having type string + ParameterId["PaneDescriptorKey"] = "paneDescrKey"; + // DPI_ParentName, having type string + ParameterId["ParentName"] = "parentName"; + // DPI_ParentTable, having type string + ParameterId["ParentTable"] = "parentTable"; + // DPI_PatternFilterString, having type string + ParameterId["PatternFilterString"] = "patternFilterString"; + // DPI_PendingCalcName, having type string + ParameterId["PendingCalcName"] = "pendingCalcName"; + // DPI_PercentilesString, having type string + ParameterId["PercentilesString"] = "percentilesString"; + // DPI_ProjectName, having type string + ParameterId["ProjectName"] = "projectName"; + // DPI_PropertyName, having type string + ParameterId["PropertyName"] = "propertyName"; + // DPI_QuickFilterTitleCaption, having type string + ParameterId["QuickFilterTitleCaption"] = "quickFilterTitleCaption"; + // DPI_RangeDiffStr, having type string + ParameterId["RangeDiffStr"] = "diffValue"; + // DPI_RangeMaxStr, having type string + ParameterId["RangeMaxStr"] = "maxValue"; + // DPI_RangeMinStr, having type string + ParameterId["RangeMinStr"] = "minValue"; + // DPI_RecoveredFilePath, having type string + ParameterId["RecoveredFilePath"] = "recoveredFilePath"; + // DPI_ReferenceLineSpecificationId, having type string + ParameterId["ReferenceLineSpecificationId"] = "referenceLineId"; + // DPI_ReplaceFieldPrompt, having type string + ParameterId["ReplaceFieldPrompt"] = "replaceFieldPrompt"; + // DPI_RightJoinExpression, having type string + ParameterId["RightJoinExpression"] = "rightJoinExpression"; + // DPI_RootPath, having type string + ParameterId["RootPath"] = "rootPath"; + // DPI_RuntimeFinalDatastore, having type string + ParameterId["RuntimeFinalDatastore"] = "runtimeFinalDatastore"; + // DPI_RuntimeInitialDatastore, having type string + ParameterId["RuntimeInitialDatastore"] = "runtimeInitialDatastore"; + // DPI_RuntimeVTL, having type string + ParameterId["RuntimeVTL"] = "runtimeVtl"; + // DPI_SampleDataString, having type string + ParameterId["SampleDataString"] = "sampleData"; + // DPI_ScheduleIDs, having type string + ParameterId["ScheduleIDs"] = "scheduleIds"; + // DPI_SchemaFieldIconResource, having type string + ParameterId["SchemaFieldIconResource"] = "fieldIconRes"; + // DPI_ScreenName, having type string + ParameterId["ScreenName"] = "screenName"; + // DPI_ScriptCommand, having type string + ParameterId["ScriptCommand"] = "command"; + // DPI_SecondValue, having type string + ParameterId["SecondValue"] = "secondValue"; + // DPI_SelectedValue, having type string + ParameterId["SelectedValue"] = "selectedValue"; + // DPI_ShapeName, having type string + ParameterId["ShapeName"] = "shapeName"; + // DPI_SheetId, having type string + ParameterId["SheetId"] = "sheetId"; + // DPI_ShowDataTable, having type string + ParameterId["ShowDataTable"] = "showDataTable"; + // DPI_SimpleCommand, having type string + ParameterId["SimpleCommand"] = "simpleCommand"; + // DPI_SortModeCaption, having type string + ParameterId["SortModeCaption"] = "sortModeCaption"; + // DPI_SourceName, having type string + ParameterId["SourceName"] = "sourceName"; + // DPI_SourceText, having type string + ParameterId["SourceText"] = "sourceText"; + // DPI_SpecialValueText, having type string + ParameterId["SpecialValueText"] = "specialValueText"; + // DPI_StaticImage, having type string + ParameterId["StaticImage"] = "staticImage"; + // DPI_StoryPointBase, having type string + ParameterId["StoryPointBase"] = "storyPointBase"; + // DPI_StoryPointCaption, having type string + ParameterId["StoryPointCaption"] = "storyPointCaption"; + // DPI_Storyboard, having type string + ParameterId["Storyboard"] = "storyboard"; + // DPI_StyledLabel, having type string + ParameterId["StyledLabel"] = "styledLabel"; + // DPI_SummaryCaption, having type string + ParameterId["SummaryCaption"] = "summaryCaption"; + // DPI_SummaryField, having type string + ParameterId["SummaryField"] = "summaryField"; + // DPI_TableauVersion, having type string + ParameterId["TableauVersion"] = "tableauVersion"; + // DPI_TableFilter, having type string + ParameterId["TableFilter"] = "tableFilter"; + // DPI_TableFilterPrompt, having type string + ParameterId["TableFilterPrompt"] = "tableFilterPrompt"; + // DPI_TagsLabel, having type string + ParameterId["TagsLabel"] = "tagsLabel"; + // DPI_Target, having type string + ParameterId["Target"] = "target"; + // DPI_ThumbnailGroup, having type string + ParameterId["ThumbnailGroup"] = "thumbnailGroup"; + // DPI_ThumbnailUser, having type string + ParameterId["ThumbnailUser"] = "thumbnailUser"; + // DPI_TimeFormat, having type string + ParameterId["TimeFormat"] = "timeFormat"; + // DPI_TrendLineErrorString, having type string + ParameterId["TrendLineErrorString"] = "trendLineErrorString"; + // DPI_TrendLineModelFormula, having type string + ParameterId["TrendLineModelFormula"] = "trendLineModelFormula"; + // DPI_URLString, having type string + ParameterId["URLString"] = "urlString"; + // DPI_URLTest, having type string + ParameterId["URLTest"] = "urlTest"; + // DPI_ValidationMessage, having type string + ParameterId["ValidationMessage"] = "validationMessage"; + // DPI_ValueStr, having type string + ParameterId["ValueStr"] = "valueString"; + // DPI_VerifiedNonFormattedValue, having type string + ParameterId["VerifiedNonFormattedValue"] = "verifiedUnformattedValue"; + // DPI_WorkbookFullPath, having type string + ParameterId["WorkbookFullPath"] = "workbookFullPath"; + // DPI_WindowTitle, having type string + ParameterId["WindowTitle"] = "windowTitle"; + // DPI_ZoneName, having type string + ParameterId["ZoneName"] = "zoneName"; + // DPI_ZoneParam, having type string + ParameterId["ZoneParam"] = "zoneParam"; + // DPI_DataAlertErrorText, having type string + ParameterId["DataAlertErrorText"] = "dataAlertErrorText"; + // DPI_ExtractTempDirectory, having type string + ParameterId["ExtractTempDirectory"] = "extractTempDir"; + // DPI_DSSubClass, having type string + ParameterId["DSSubClass"] = "dsSubClass"; + // DPI_DbgCommandLine, having type string + ParameterId["DbgCommandLine"] = "debugCommandLine"; + // DPI_DbgLogPath, having type string + ParameterId["DbgLogPath"] = "debugLogPath"; + // DPI_DbgOSVersion, having type string + ParameterId["DbgOSVersion"] = "debugOsVersion"; + // DPI_DbgUserName, having type string + ParameterId["DbgUserName"] = "debugUsername"; + // DPI_ErrorMsg, having type string + ParameterId["ErrorMsg"] = "errorMessage"; + // DPI_ErrorStackTrace, having type string + ParameterId["ErrorStackTrace"] = "errorStackTrace"; + // DPI_ErrorStr, having type string + ParameterId["ErrorStr"] = "errorString"; + // DPI_EventMessage, having type string + ParameterId["EventMessage"] = "eventMessage"; + // DPI_EventTimestamp, having type string + ParameterId["EventTimestamp"] = "eventTimestamp"; + // DPI_ExtractDeltaPath, having type string + ParameterId["ExtractDeltaPath"] = "extractDeltaPath"; + // DPI_ExtractPath, having type string + ParameterId["ExtractPath"] = "extractPath"; + // DPI_ExtractSuggestedPath, having type string + ParameterId["ExtractSuggestedPath"] = "suggestedExtractPath"; + // DPI_ExtractTaskSummary, having type string + ParameterId["ExtractTaskSummary"] = "extractTaskSummary"; + // DPI_FactorsString, having type string + ParameterId["FactorsString"] = "factorsStr"; + // DPI_FormattedFamilyName, having type string + ParameterId["FormattedFamilyName"] = "formattedFamilyName"; + // DPI_FunctionSignature, having type string + ParameterId["FunctionSignature"] = "funcSig"; + // DPI_FunctionTooltip, having type string + ParameterId["FunctionTooltip"] = "funcTooltip"; + // DPI_HelpContents, having type string + ParameterId["HelpContents"] = "helpContents"; + // DPI_MapAttributionText, having type string + ParameterId["MapAttributionText"] = "mapAttributionText"; + // DPI_MapAttributionTextSize, having type string + ParameterId["MapAttributionTextSize"] = "mapAttributionTextSize"; + // DPI_MapAttributionUrl, having type string + ParameterId["MapAttributionUrl"] = "mapAttributionUrl"; + // DPI_MapBoxErrorMessage, having type string + ParameterId["MapBoxErrorMessage"] = "mapboxErrorMessage"; + // DPI_MapBoxOldStyleName, having type string + ParameterId["MapBoxOldStyleName"] = "mapboxOldStyleName"; + // DPI_MapBoxSelectedStyle, having type string + ParameterId["MapBoxSelectedStyle"] = "mapboxSelectedStyle"; + // DPI_MapBoxStyleName, having type string + ParameterId["MapBoxStyleName"] = "mapboxStyleName"; + // DPI_MapLayerRequest, having type string + ParameterId["MapLayerRequest"] = "mapLayerRequest"; + // DPI_MapServerKey, having type string + ParameterId["MapServerKey"] = "mapServerKey"; + // DPI_MapTileServer, having type string + ParameterId["MapTileServer"] = "mapTileServer"; + // DPI_MapTileUrl, having type string + ParameterId["MapTileUrl"] = "mapTileUrl"; + // DPI_PercentagesString, having type string + ParameterId["PercentagesString"] = "percentagesStr"; + // DPI_PublishErrorMessage, having type string + ParameterId["PublishErrorMessage"] = "publishErrorMessage"; + // DPI_TdePath, having type string + ParameterId["TdePath"] = "tdePath"; + // DPI_UIAutomationComponentName, having type string + ParameterId["UIAutomationComponentName"] = "uiAutomationComponentName"; + // DPI_UIAutomationEndTime, having type string + ParameterId["UIAutomationEndTime"] = "uiAutomationEndTime"; + // DPI_UIAutomationName, having type string + ParameterId["UIAutomationName"] = "uiAutomationName"; + // DPI_UIAutomationStartTime, having type string + ParameterId["UIAutomationStartTime"] = "uiAutomationStartTime"; + // DPI_UIAutomationValue, having type string + ParameterId["UIAutomationValue"] = "uiAutomationValue"; + // DPI_WMSConnectionName, having type string + ParameterId["WMSConnectionName"] = "wmsConnectionName"; + // DPI_WMSOldConnectionName, having type string + ParameterId["WMSOldConnectionName"] = "wmsOldConnectionName"; + // DPI_WMSServerUrl, having type string + ParameterId["WMSServerUrl"] = "wmsServerUrl"; + // DPI_AboutBuildVersion, having type string + ParameterId["AboutBuildVersion"] = "aboutBuildVersion"; + // DPI_ActionFields, having type string + ParameterId["ActionFields"] = "actionFields"; + // DPI_AddVariableLabel, having type string + ParameterId["AddVariableLabel"] = "addVariableLabel"; + // DPI_AddVariableTooltip, having type string + ParameterId["AddVariableTooltip"] = "addVariableTooltip"; + // DPI_AllowedDataSourcesByName, having type string + ParameterId["AllowedDataSourcesByName"] = "allowedDataSourcesByName"; + // DPI_AppAboutVersion, having type string + ParameterId["AppAboutVersion"] = "appAboutVersion"; + // DPI_AppBuildBranchName, having type string + ParameterId["AppBuildBranchName"] = "appBuildBranchName"; + // DPI_AppBuildVersion, having type string + ParameterId["AppBuildVersion"] = "appBuildVersion"; + // DPI_AppExternalVersion, having type string + ParameterId["AppExternalVersion"] = "appExternalVersion"; + // DPI_AppName, having type string + ParameterId["AppName"] = "appName"; + // DPI_AppProductVersion, having type string + ParameterId["AppProductVersion"] = "appProductVersion"; + // DPI_OriginalVersion, having type string + ParameterId["OriginalVersion"] = "originalVersion"; + // DPI_AtTheLevelSpecialCaption, having type string + ParameterId["AtTheLevelSpecialCaption"] = "atTheLevelSpecialCaption"; + // DPI_AutoCompleteCalc, having type string + ParameterId["AutoCompleteCalc"] = "acCalc"; + // DPI_CSVPath, having type string + ParameterId["CSVPath"] = "csvPath"; + // DPI_CommandNamespace, having type string + ParameterId["CommandNamespace"] = "commandNamespace"; + // DPI_Condition, having type string + ParameterId["Condition"] = "condition"; + // DPI_ConditionSummary, having type string + ParameterId["ConditionSummary"] = "conditionSummary"; + // DPI_ConfirmationMsg, having type string + ParameterId["ConfirmationMsg"] = "confirmationMsg"; + // DPI_DashboardTypeText, having type string + ParameterId["DashboardTypeText"] = "dashboardType"; + // DPI_DataserverPublicAddress, having type string + ParameterId["DataserverPublicAddress"] = "dataserverPublicAddress"; + // DPI_DatasourceFileName, having type string + ParameterId["DatasourceFileName"] = "datasourceFileName"; + // DPI_DecimalMark, having type string + ParameterId["DecimalMark"] = "decimalMark"; + // DPI_DeleteVariableTooltip, having type string + ParameterId["DeleteVariableTooltip"] = "deleteVariableTooltip"; + // DPI_DialogTitle, having type string + ParameterId["DialogTitle"] = "dialogTitle"; + // DPI_DisplayValue, having type string + ParameterId["DisplayValue"] = "displayValue"; + // DPI_TooltipValue, having type string + ParameterId["TooltipValue"] = "tooltipValue"; + // DPI_DstPath, having type string + ParameterId["DstPath"] = "dstPath"; + // DPI_EditWidgetHeader, having type string + ParameterId["EditWidgetHeader"] = "editWidgetHeader"; + // DPI_EditWidgetInstruction, having type string + ParameterId["EditWidgetInstruction"] = "editWidgetInstruction"; + // DPI_EndSelectionCaption, having type string + ParameterId["EndSelectionCaption"] = "endSelectionCaption"; + // DPI_ErrorDialogTitle, having type string + ParameterId["ErrorDialogTitle"] = "errorDialogTitle"; + // DPI_ErrorHelpLink, having type string + ParameterId["ErrorHelpLink"] = "errorHelpLink"; + // DPI_ErrorShortMessage, having type string + ParameterId["ErrorShortMessage"] = "errorShortMessage"; + // DPI_FilterSearchQuery, having type string + ParameterId["FilterSearchQuery"] = "filterSearchQuery"; + // DPI_FromLabel, having type string + ParameterId["FromLabel"] = "fromLabel"; + // DPI_FunctionHelp, having type string + ParameterId["FunctionHelp"] = "functionHelp"; + // DPI_Instructions, having type string + ParameterId["Instructions"] = "instructions"; + // DPI_LargeUnitDisplay, having type string + ParameterId["LargeUnitDisplay"] = "largeUnitDisplay"; + // DPI_Limit, having type string + ParameterId["Limit"] = "limit"; + // DPI_ListViewNameLabel, having type string + ParameterId["ListViewNameLabel"] = "listViewNameLabel"; + // DPI_ListViewValueLabel, having type string + ParameterId["ListViewValueLabel"] = "listViewValueLabel"; + // DPI_MapScaleReadoutUnit, having type string + ParameterId["MapScaleReadoutUnit"] = "mapScaleReadoutUnit"; + // DPI_MeasureDimension, having type string + ParameterId["MeasureDimension"] = "measuresDimension"; + // DPI_MimeType, having type string + ParameterId["MimeType"] = "mimeType"; + // DPI_MinimizedName, having type string + ParameterId["MinimizedName"] = "minName"; + // DPI_NotificationMsg, having type string + ParameterId["NotificationMsg"] = "notificationMsg"; + // DPI_OperationName, having type string + ParameterId["OperationName"] = "operationName"; + // DPI_PageTitle, having type string + ParameterId["PageTitle"] = "pageTitle"; + // DPI_PatternSummary, having type string + ParameterId["PatternSummary"] = "patternSummary"; + // DPI_ReferenceLineId, having type string + ParameterId["ReferenceLineId"] = "refLineId"; + // DPI_ReferenceLinePairedId, having type string + ParameterId["ReferenceLinePairedId"] = "refLinePairedId"; + // DPI_ReplaceText, having type string + ParameterId["ReplaceText"] = "replaceText"; + // DPI_RequiredVariableMessage, having type string + ParameterId["RequiredVariableMessage"] = "requiredVariableMessage"; + // DPI_RestartEverySpecialCaption, having type string + ParameterId["RestartEverySpecialCaption"] = "restartEverySpecialCaption"; + // DPI_Root, having type string + ParameterId["Root"] = "root"; + // DPI_SelectionSummary, having type string + ParameterId["SelectionSummary"] = "selectionSummary"; + // DPI_SessionAttributeKey, having type string + ParameterId["SessionAttributeKey"] = "sessionAttributeKey"; + // DPI_SessionAttributeValue, having type string + ParameterId["SessionAttributeValue"] = "sessionAttributeValue"; + // DPI_SheetAttributeKey, having type string + ParameterId["SheetAttributeKey"] = "baseSheetAttributeKey"; + // DPI_SheetAttributeValue, having type string + ParameterId["SheetAttributeValue"] = "baseSheetAttributeValue"; + // DPI_SmallUnitDisplay, having type string + ParameterId["SmallUnitDisplay"] = "smallUnitDisplay"; + // DPI_SourceCaption, having type string + ParameterId["SourceCaption"] = "sourceCaption"; + // DPI_SrcPath, having type string + ParameterId["SrcPath"] = "srcPath"; + // DPI_StartSelectionCaption, having type string + ParameterId["StartSelectionCaption"] = "startSelectionCaption"; + // DPI_Subtitle, having type string + ParameterId["Subtitle"] = "subtitle"; + // DPI_TableauServerSiteName, having type string + ParameterId["TableauServerSiteName"] = "tableauServerSiteName"; + // DPI_TargetCaption, having type string + ParameterId["TargetCaption"] = "targetCaption"; + // DPI_ThumbnailPath, having type string + ParameterId["ThumbnailPath"] = "thumbnailPath"; + // DPI_ToLabel, having type string + ParameterId["ToLabel"] = "toLabel"; + // DPI_URLAddress, having type string + ParameterId["URLAddress"] = "urlAddress"; + // DPI_ValuesTableHeader, having type string + ParameterId["ValuesTableHeader"] = "valuesTableHeader"; + // DPI_ValuesTableHeader2, having type string + ParameterId["ValuesTableHeader2"] = "valuesTableHeader2"; + // DPI_VariableDescription, having type string + ParameterId["VariableDescription"] = "variableDescription"; + // DPI_VariableDisplayName, having type string + ParameterId["VariableDisplayName"] = "variableDisplayName"; + // DPI_VariableGUID, having type string + ParameterId["VariableGUID"] = "variableGuid"; + // DPI_VerboseName, having type string + ParameterId["VerboseName"] = "verboseName"; + // DPI_ViewId, having type string + ParameterId["ViewId"] = "viewId"; + // DPI_Warning1, having type string + ParameterId["Warning1"] = "warning1"; + // DPI_Warning2, having type string + ParameterId["Warning2"] = "warning2"; + // DPI_RefreshToken, having type string + ParameterId["RefreshToken"] = "refresh_token"; + // DPI_TokenType, having type string + ParameterId["TokenType"] = "token_type"; + // DPI_XSRFToken, having type string + ParameterId["XSRFToken"] = "xsrf_token"; + // DPI_AxisSubtitle, having type string + ParameterId["AxisSubtitle"] = "axisSubtitle"; + // DPI_AxisTitle, having type string + ParameterId["AxisTitle"] = "axisTitle"; + // DPI_TickMarkOriginDataValue, having type string + ParameterId["TickMarkOriginDataValue"] = "tickMarkOriginDataValue"; + // DPI_TickMarkOriginDataValueNoTime, having type string + ParameterId["TickMarkOriginDataValueNoTime"] = "tickMarkOriginDataValueNoTime"; + // DPI_TickMarkSpacingDataValue, having type string + ParameterId["TickMarkSpacingDataValue"] = "tickMarkSpacingDataValue"; + // DPI_ExtractActionLocalized, having type string + ParameterId["ExtractActionLocalized"] = "extractActionLocalized"; + // DPI_ExtractSource, having type string + ParameterId["ExtractSource"] = "extractSource"; + // DPI_FileContents, having type string + ParameterId["FileContents"] = "fileContents"; + // DPI_SaveImagePath, having type string + ParameterId["SaveImagePath"] = "saveImagePath"; + // DPI_WidgetUID, having type string + ParameterId["WidgetUID"] = "widgetUniqueId"; + // DPI_DatePropertiesDisplayText, having type string + ParameterId["DatePropertiesDisplayText"] = "datePropertiesDisplayText"; + // DPI_DatePropertiesHelperText, having type string + ParameterId["DatePropertiesHelperText"] = "datePropertiesHelperText"; + // DPI_EventName, having type string + ParameterId["EventName"] = "eventName"; + // DPI_ExceptionType, having type string + ParameterId["ExceptionType"] = "exceptionType"; + // DPI_SearchPlaceholder, having type string + ParameterId["SearchPlaceholder"] = "searchPlaceholder"; + // DPI_TargetVersion, having type string + ParameterId["TargetVersion"] = "targetVersion"; + // DPI_DataValueDisplayString, having type string + ParameterId["DataValueDisplayString"] = "dataValueDisplayString"; + // DPI_DomainString, having type string + ParameterId["DomainString"] = "domainString"; + // DPI_RawDataValueString, having type string + ParameterId["RawDataValueString"] = "rawDataValueString"; + // DPI_RichTextDialogTitle, having type string + ParameterId["RichTextDialogTitle"] = "richTextDialogTitle"; + // DPI_RichTextContent, having type string + ParameterId["RichTextContent"] = "richTextContent"; + // DPI_MarkSizeAsString, having type string + ParameterId["MarkSizeAsString"] = "markSizeAsString"; + // DPI_UnitsLabel, having type string + ParameterId["UnitsLabel"] = "unitsLabel"; + // DPI_EmailAddress, having type string + ParameterId["EmailAddress"] = "emailAddress"; + // DPI_FirstName, having type string + ParameterId["FirstName"] = "firstName"; + // DPI_LastName, having type string + ParameterId["LastName"] = "lastName"; + // DPI_SummaryCardAvg, having type string + ParameterId["SummaryCardAvg"] = "summaryCardAvg"; + // DPI_SummaryCardCaption, having type string + ParameterId["SummaryCardCaption"] = "summaryCardCaption"; + // DPI_SummaryCardCount, having type string + ParameterId["SummaryCardCount"] = "summaryCardCount"; + // DPI_SummaryCardKurtosis, having type string + ParameterId["SummaryCardKurtosis"] = "summaryCardKurtosis"; + // DPI_SummaryCardMax, having type string + ParameterId["SummaryCardMax"] = "summaryCardMax"; + // DPI_SummaryCardMedian, having type string + ParameterId["SummaryCardMedian"] = "summaryCardMedian"; + // DPI_SummaryCardMin, having type string + ParameterId["SummaryCardMin"] = "summaryCardMin"; + // DPI_SummaryCardQuart1, having type string + ParameterId["SummaryCardQuart1"] = "summaryCardQuart1"; + // DPI_SummaryCardQuart3, having type string + ParameterId["SummaryCardQuart3"] = "summaryCardQuart3"; + // DPI_SummaryCardSkewness, having type string + ParameterId["SummaryCardSkewness"] = "summaryCardSkewness"; + // DPI_SummaryCardStdev, having type string + ParameterId["SummaryCardStdev"] = "summaryCardStdev"; + // DPI_SummaryCardSum, having type string + ParameterId["SummaryCardSum"] = "summaryCardSum"; + // DPI_ValueClassAttr, having type string + ParameterId["ValueClassAttr"] = "valueClassAttr"; + // DPI_TrendLineDialogTitle, having type string + ParameterId["TrendLineDialogTitle"] = "trendLineDialogTitle"; + // DPI_LinearFitTypeLabel, having type string + ParameterId["LinearFitTypeLabel"] = "linearFitTypeLabel"; + // DPI_LogFitTypeLabel, having type string + ParameterId["LogFitTypeLabel"] = "logFitTypeLabel"; + // DPI_ExpFitTypeLabel, having type string + ParameterId["ExpFitTypeLabel"] = "expFitTypeLabel"; + // DPI_PowerFitTypeLabel, having type string + ParameterId["PowerFitTypeLabel"] = "powerFitTypeLabel"; + // DPI_PolynomialFitTypeLabel, having type string + ParameterId["PolynomialFitTypeLabel"] = "polynomialFitTypeLabel"; + // DPI_ExcludeColorLabel, having type string + ParameterId["ExcludeColorLabel"] = "excludeColorLabel"; + // DPI_EnableConfidenceBandsLabel, having type string + ParameterId["EnableConfidenceBandsLabel"] = "enableConfidenceBandsLabel"; + // DPI_ForceInterceptZeroLabel, having type string + ParameterId["ForceInterceptZeroLabel"] = "forceInterceptZero label"; + // DPI_EnableInstantAnalyticsLabel, having type string + ParameterId["EnableInstantAnalyticsLabel"] = "enableInstantAnalyticsLabel"; + // DPI_EnableTooltipsLabel, having type string + ParameterId["EnableTooltipsLabel"] = "enableTooltipLabel"; + // DPI_AuthenticationSummary, having type string + ParameterId["AuthenticationSummary"] = "authenticationSummary"; + // DPI_BtnCancelText, having type string + ParameterId["BtnCancelText"] = "btnCancelText"; + // DPI_BtnOkText, having type string + ParameterId["BtnOkText"] = "btnOkText"; + // DPI_ButtonText, having type string + ParameterId["ButtonText"] = "buttonText"; + // DPI_CalculationCaption, having type string + ParameterId["CalculationCaption"] = "calculationCaption"; + // DPI_CalculationDependencies, having type string + ParameterId["CalculationDependencies"] = "calculationDependencies"; + // DPI_CalculationFormula, having type string + ParameterId["CalculationFormula"] = "calculationFormula"; + // DPI_CheckPublishMessage, having type string + ParameterId["CheckPublishMessage"] = "checkPublishSummary"; + // DPI_ClusterModelText, having type string + ParameterId["ClusterModelText"] = "clusterModelText"; + // DPI_ClusterSummaryScaledText, having type string + ParameterId["ClusterSummaryScaledText"] = "clusterSummaryScaledText"; + // DPI_ClusterSummaryText, having type string + ParameterId["ClusterSummaryText"] = "clusterSummaryText"; + // DPI_ColumnCaption, having type string + ParameterId["ColumnCaption"] = "columnCaption"; + // DPI_DatasourceCaption, having type string + ParameterId["DatasourceCaption"] = "datasourceCaption"; + // DPI_DefaultCaption, having type string + ParameterId["DefaultCaption"] = "defaultCaption"; + // DPI_DisplayString, having type string + ParameterId["DisplayString"] = "displayText"; + // DPI_DragDescription, having type string + ParameterId["DragDescription"] = "dragDescription"; + // DPI_ExceptionMessage, having type string + ParameterId["ExceptionMessage"] = "exceptionMessage"; + // DPI_Explanation, having type string + ParameterId["Explanation"] = "explanation"; + // DPI_FieldCaption, having type string + ParameterId["FieldCaption"] = "fieldCaption"; + // DPI_FieldSummary, having type string + ParameterId["FieldSummary"] = "fieldSummary"; + // DPI_FieldSummaryLabel, having type string + ParameterId["FieldSummaryLabel"] = "fieldSummaryLabel"; + // DPI_FilterDescription, having type string + ParameterId["FilterDescription"] = "filterDescription"; + // DPI_FilterName, having type string + ParameterId["FilterName"] = "filterName"; + // DPI_ForecastModelText, having type string + ParameterId["ForecastModelText"] = "forecastModelText"; + // DPI_ForecastSummaryPctText, having type string + ParameterId["ForecastSummaryPctText"] = "forecastSummaryPctText"; + // DPI_ForecastSummaryText, having type string + ParameterId["ForecastSummaryText"] = "forecastSummaryText"; + // DPI_HasActiveExtractText, having type string + ParameterId["HasActiveExtractText"] = "hasActiveExtractText"; + // DPI_HtmlColor, having type string + ParameterId["HtmlColor"] = "htmlColor"; + // DPI_IncludeLocalFilesCheckedWarning, having type string + ParameterId["IncludeLocalFilesCheckedWarning"] = "includeLocalFilesCheckedWarning"; + // DPI_IncludeLocalFilesWarning, having type string + ParameterId["IncludeLocalFilesWarning"] = "includeLocalFilesWarning"; + // DPI_InvalidFieldCaption, having type string + ParameterId["InvalidFieldCaption"] = "invalidFieldCaption"; + // DPI_LimitSummary, having type string + ParameterId["LimitSummary"] = "limitSummary"; + // DPI_LoadedExistingObjectWarning, having type string + ParameterId["LoadedExistingObjectWarning"] = "loadedExistingObjectWarning"; + // DPI_ManageDatasourcesSummary, having type string + ParameterId["ManageDatasourcesSummary"] = "manageDatasourcesSummary"; + // DPI_ModalDialog, having type string + ParameterId["ModalDialog"] = "modalDialog"; + // DPI_NewDatasourceCaption, having type string + ParameterId["NewDatasourceCaption"] = "newDatasourceCaption"; + // DPI_PermissionsButtonLabel, having type string + ParameterId["PermissionsButtonLabel"] = "permissionsButtonLabel"; + // DPI_PermissionsEditorRoleId, having type string + ParameterId["PermissionsEditorRoleId"] = "permissionsEditorRoleId"; + // DPI_PermissionsLabel, having type string + ParameterId["PermissionsLabel"] = "permissionsLabel"; + // DPI_PerspectiveCaption, having type string + ParameterId["PerspectiveCaption"] = "perspectiveCaption"; + // DPI_PublishButtonLabel, having type string + ParameterId["PublishButtonLabel"] = "publishButtonLabel"; + // DPI_PublishChoiceLabel, having type string + ParameterId["PublishChoiceLabel"] = "publishChoiceLabel"; + // DPI_PublishObjectViewsSummary, having type string + ParameterId["PublishObjectViewsSummary"] = "publishObjectViewsSummary"; + // DPI_QualifiedFieldCaption, having type string + ParameterId["QualifiedFieldCaption"] = "qualifiedFieldCaption"; + // DPI_RelationshipTooltipText, having type string + ParameterId["RelationshipTooltipText"] = "relationshipTooltipText"; + // DPI_ResetObjectAttributesWarning, having type string + ParameterId["ResetObjectAttributesWarning"] = "resetObjectAttributesWarning"; + // DPI_RowCountCaption, having type string + ParameterId["RowCountCaption"] = "rowCountCaption"; + // DPI_ServerCaption, having type string + ParameterId["ServerCaption"] = "serverCaption"; + // DPI_SizeModeName, having type string + ParameterId["SizeModeName"] = "sizeModeName"; + // DPI_SummaryText, having type string + ParameterId["SummaryText"] = "summaryText"; + // DPI_SyncClientUseExtractLabel, having type string + ParameterId["SyncClientUseExtractLabel"] = "syncClientUseExtractLabel"; + // DPI_Text, having type string + ParameterId["Text"] = "text"; + // DPI_TextDropdownControlLabel, having type string + ParameterId["TextDropdownControlLabel"] = "controlLabel"; + // DPI_ThumbnailUserName, having type string + ParameterId["ThumbnailUserName"] = "thumbnailUserName"; + // DPI_TitleString, having type string + ParameterId["TitleString"] = "titleString"; + // DPI_TooltipText, having type string + ParameterId["TooltipText"] = "tooltipText"; + // DPI_UpdatedCalcCaption, having type string + ParameterId["UpdatedCalcCaption"] = "updatedCalculationCaption"; + // DPI_UpdatedCalcFormula, having type string + ParameterId["UpdatedCalcFormula"] = "updatedCalculationFormula"; + // DPI_UserCaption, having type string + ParameterId["UserCaption"] = "userCaption"; + // DPI_WarningTooltipText, having type string + ParameterId["WarningTooltipText"] = "warningTooltipText"; + // DPI_DatasourceFile, having type string + ParameterId["DatasourceFile"] = "datasourceFile"; + // DPI_File, having type string + ParameterId["File"] = "file"; + // DPI_FileNameBase, having type string + ParameterId["FileNameBase"] = "filenameBase"; + // DPI_NewFile, having type string + ParameterId["NewFile"] = "newFile"; + // DPI_OriginalFile, having type string + ParameterId["OriginalFile"] = "originalFile"; + // DPI_OutputFile, having type string + ParameterId["OutputFile"] = "outputFile"; + // DPI_SampleFileName, having type string + ParameterId["SampleFileName"] = "sampleFilename"; + // DPI_WorkbookFile, having type string + ParameterId["WorkbookFile"] = "workbookFile"; + // DPI_ImageKey, having type string + ParameterId["ImageKey"] = "imageKey"; + // DPI_OverlayImageKey, having type string + ParameterId["OverlayImageKey"] = "overlayImageKey"; + // DPI_TempFileKey, having type string + ParameterId["TempFileKey"] = "tempfileKey"; + // DPI_CapturedSheet, having type string + ParameterId["CapturedSheet"] = "capturedSheet"; + // DPI_CurrentSheet, having type string + ParameterId["CurrentSheet"] = "currentSheet"; + // DPI_Dashboard, having type string + ParameterId["Dashboard"] = "dashboard"; + // DPI_EnsureSheet, having type string + ParameterId["EnsureSheet"] = "ensureSheetName"; + // DPI_NewSheet, having type string + ParameterId["NewSheet"] = "newSheet"; + // DPI_Sheet, having type string + ParameterId["Sheet"] = "sheet"; + // DPI_SheetName, having type string + ParameterId["SheetName"] = "sheetName"; + // DPI_SourceDashboard, having type string + ParameterId["SourceDashboard"] = "sourceDashboard"; + // DPI_SourceSheet, having type string + ParameterId["SourceSheet"] = "sourceSheet"; + // DPI_TargetSheet, having type string + ParameterId["TargetSheet"] = "targetSheet"; + // DPI_WorkbookName, having type string + ParameterId["WorkbookName"] = "workbookName"; + // DPI_Worksheet, having type string + ParameterId["Worksheet"] = "worksheet"; + // DPI_BaseViewThumbLink, having type string + ParameterId["BaseViewThumbLink"] = "baseViewThumbLink"; + // DPI_BlogLink, having type string + ParameterId["BlogLink"] = "blogLink"; + // DPI_CacheUrl, having type string + ParameterId["CacheUrl"] = "cacheUrl"; + // DPI_DownloadLink, having type string + ParameterId["DownloadLink"] = "downloadLink"; + // DPI_RepositoryUrl, having type string + ParameterId["RepositoryUrl"] = "repositoryUrl"; + // DPI_ShareLink, having type string + ParameterId["ShareLink"] = "shareLink"; + // DPI_URL, having type string + ParameterId["URL"] = "url"; + // DPI_ClusterModelHtml, having type string + ParameterId["ClusterModelHtml"] = "clusterModelHtml"; + // DPI_ClusterSummaryHtml, having type string + ParameterId["ClusterSummaryHtml"] = "clusterSummaryHtml"; + // DPI_ClusterSummaryScaledHtml, having type string + ParameterId["ClusterSummaryScaledHtml"] = "clusterSummaryScaledHtml"; + // DPI_FieldDescription, having type string + ParameterId["FieldDescription"] = "fieldDescription"; + // DPI_ForecastModelHtml, having type string + ParameterId["ForecastModelHtml"] = "forecastModelHtml"; + // DPI_ForecastSummaryHtml, having type string + ParameterId["ForecastSummaryHtml"] = "forecastSummaryHtml"; + // DPI_ForecastSummaryPctHtml, having type string + ParameterId["ForecastSummaryPctHtml"] = "forecastSummaryPctHtml"; + // DPI_Html, having type string + ParameterId["Html"] = "html"; + // DPI_HtmlSelection, having type string + ParameterId["HtmlSelection"] = "htmlSelection"; + // DPI_HtmlTooltip, having type string + ParameterId["HtmlTooltip"] = "htmlTooltip"; + // DPI_HtmlTooltipModified, having type string + ParameterId["HtmlTooltipModified"] = "htmlTooltipModified"; + // DPI_TitleHtml, having type string + ParameterId["TitleHtml"] = "titleHtml"; + // DPI_CacheUrlInfoJson, having type string + ParameterId["CacheUrlInfoJson"] = "cacheUrlInfoJson"; + // DPI_FilterSearchJson, having type string + ParameterId["FilterSearchJson"] = "filterSearchJson"; + // DPI_FilterSearchWithIndexJson, having type string + ParameterId["FilterSearchWithIndexJson"] = "filterSearchWithIndexJson"; + // DPI_FilterShowChildrenJson, having type string + ParameterId["FilterShowChildrenJson"] = "filterShowChildrenJson"; + // DPI_FiltersJson, having type string + ParameterId["FiltersJson"] = "filtersJson"; + // DPI_FrameJson, having type string + ParameterId["FrameJson"] = "frameJson"; + // DPI_GeometryJson, having type string + ParameterId["GeometryJson"] = "geometryJson"; + // DPI_GetFilterItemsJson, having type string + ParameterId["GetFilterItemsJson"] = "getFilterItemsJson"; + // DPI_KeepOnlyResponseJson, having type string + ParameterId["KeepOnlyResponseJson"] = "keepOnlyResponseJson"; + // DPI_MenuCommandsJson, having type string + ParameterId["MenuCommandsJson"] = "menuCommandsJson"; + // DPI_ModifiedSheetsJson, having type string + ParameterId["ModifiedSheetsJson"] = "modifiedSheetsJson"; + // DPI_ParameterCtrlJson, having type string + ParameterId["ParameterCtrlJson"] = "parameterCtrlJson"; + // DPI_ViewJson, having type string + ParameterId["ViewJson"] = "viewJson"; + // DPI_CustomizedViewXML, having type string + ParameterId["CustomizedViewXML"] = "customizedViewXml"; + // DPI_DatasourceDeltaXML, having type string + ParameterId["DatasourceDeltaXML"] = "datasourceDeltaXml"; + // DPI_DatasourceXML, having type string + ParameterId["DatasourceXML"] = "datasourceXml"; + // DPI_KeychainXML, having type string + ParameterId["KeychainXML"] = "keychainXml"; + // DPI_PermissionsModelXML, having type string + ParameterId["PermissionsModelXML"] = "permissionsModelXml"; + // DPI_SharedViewsXML, having type string + ParameterId["SharedViewsXML"] = "sharedViewsXml"; + // DPI_TargetURL, having type string + ParameterId["TargetURL"] = "targetUrl"; + // DPI_Anchor, having type string + ParameterId["Anchor"] = "anchor"; + // DPI_CenterValue, having type string + ParameterId["CenterValue"] = "centerValue"; + // DPI_ComputedBinSize, having type string + ParameterId["ComputedBinSize"] = "computedBinSize"; + // DPI_ConstantValue, having type string + ParameterId["ConstantValue"] = "constantValue"; + // DPI_PairedConstantValue, having type string + ParameterId["PairedConstantValue"] = "pairedConstantValue"; + // DPI_CountDistinct, having type string + ParameterId["CountDistinct"] = "countDistinct"; + // DPI_DataMax, having type string + ParameterId["DataMax"] = "dataMax"; + // DPI_DataMin, having type string + ParameterId["DataMin"] = "dataMin"; + // DPI_DataValueString, having type string + ParameterId["DataValueString"] = "dataValueStr"; + // DPI_EndValue, having type string + ParameterId["EndValue"] = "endValue"; + // DPI_RangeMax, having type string + ParameterId["RangeMax"] = "rangeMax"; + // DPI_RangeMin, having type string + ParameterId["RangeMin"] = "rangeMin"; + // DPI_RangeStepSize, having type string + ParameterId["RangeStepSize"] = "rangeStepSize"; + // DPI_StartValue, having type string + ParameterId["StartValue"] = "startValue"; + // DPI_TargetValue, having type string + ParameterId["TargetValue"] = "targetValue"; + // DPI_ValueInc, having type string + ParameterId["ValueInc"] = "valueInc"; + // DPI_ValueMax, having type string + ParameterId["ValueMax"] = "valueMax"; + // DPI_ValueMin, having type string + ParameterId["ValueMin"] = "valueMin"; + // DPI_QuantilesValue, having type string + ParameterId["QuantilesValue"] = "quantilesValue"; + // DPI_UserInputBinSize, having type string + ParameterId["UserInputBinSize"] = "userBinSize"; + // DPI_AddedDataSources, having type string[] + ParameterId["AddedDataSources"] = "addedDataSourceNames"; + // DPI_AddressingCaptions, having type string[] + ParameterId["AddressingCaptions"] = "addressingCaptions"; + // DPI_AggregationCaptions, having type string[] + ParameterId["AggregationCaptions"] = "aggregationCaptions"; + // DPI_AtTheLevelCaptions, having type string[] + ParameterId["AtTheLevelCaptions"] = "atTheLevelCaptions"; + // DPI_AuthenticationSettingLabels, having type string[] + ParameterId["AuthenticationSettingLabels"] = "authenticationSettingLabels"; + // DPI_AutosaveFileIdsVector, having type string[] + ParameterId["AutosaveFileIdsVector"] = "autosaveFileIdsVector"; + // DPI_ChangedTuples, having type string[] + ParameterId["ChangedTuples"] = "changedTuples"; + // DPI_CharsetsAvailable, having type string[] + ParameterId["CharsetsAvailable"] = "charsetsAvailable"; + // DPI_CharsetDisplayNames, having type string[] + ParameterId["CharsetDisplayNames"] = "charsetDisplayNames"; + // DPI_ColorFactors, having type string[] + ParameterId["ColorFactors"] = "colorFactors"; + // DPI_ColumnFullNames, having type string[] + ParameterId["ColumnFullNames"] = "columnFullNames"; + // DPI_ConnectionNames, having type string[] + ParameterId["ConnectionNames"] = "connectionNames"; + // DPI_ConnectionCaptions, having type string[] + ParameterId["ConnectionCaptions"] = "connectionCaptions"; + // DPI_ConnectionBigQueryLegacySQLCheckBox, having type string[] + ParameterId["ConnectionBigQueryLegacySQLCheckBox"] = "connectionBigqueryLegacySqlCheckbox"; + // DPI_CustomFieldOrder, having type string[] + ParameterId["CustomFieldOrder"] = "customFieldOrder"; + // DPI_DataSourceClasses, having type string[] + ParameterId["DataSourceClasses"] = "dataSourceClasses"; + // DPI_DataSourceNames, having type string[] + ParameterId["DataSourceNames"] = "dataSourceNames"; + // DPI_DataSourceNames2, having type string[] + ParameterId["DataSourceNames2"] = "dataSourceNames2"; + // DPI_DataSourcesWithEmptyRelation, having type string[] + ParameterId["DataSourcesWithEmptyRelation"] = "dataSourcesWithEmptyRelation"; + // DPI_DateFormats, having type string[] + ParameterId["DateFormats"] = "dateFormats"; + // DPI_DayNames, having type string[] + ParameterId["DayNames"] = "dayNames"; + // DPI_DrillPathVector, having type string[] + ParameterId["DrillPathVector"] = "drillpathVector"; + // DPI_ErrorDetails, having type string[] + ParameterId["ErrorDetails"] = "errorDetails"; + // DPI_ExceptionMessageParams, having type string[] + ParameterId["ExceptionMessageParams"] = "exceptionMessageParams"; + // DPI_ExcludedSheets, having type string[] + ParameterId["ExcludedSheets"] = "excludeSheets"; + // DPI_FieldDisplayNames, having type string[] + ParameterId["FieldDisplayNames"] = "fieldDisplayNames"; + // DPI_FieldFolderVector, having type string[] + ParameterId["FieldFolderVector"] = "fieldFolderVector"; + // DPI_FileIds, having type string[] + ParameterId["FileIds"] = "fileIds"; + // DPI_FilePaths, having type string[] + ParameterId["FilePaths"] = "filePaths"; + // DPI_FileNames, having type string[] + ParameterId["FileNames"] = "fileNames"; + // DPI_FilterAdd, having type string[] + ParameterId["FilterAdd"] = "filterAdd"; + // DPI_FilterAliases, having type string[] + ParameterId["FilterAliases"] = "filterValues"; + // DPI_FilterRemove, having type string[] + ParameterId["FilterRemove"] = "filterRemove"; + // DPI_FixedCaptions, having type string[] + ParameterId["FixedCaptions"] = "fixedCaptions"; + // DPI_FontFamilies, having type string[] + ParameterId["FontFamilies"] = "fontFamilies"; + // DPI_FormatStrings, having type string[] + ParameterId["FormatStrings"] = "formatStrings"; + // DPI_FormattedValues, having type string[] + ParameterId["FormattedValues"] = "formattedValues"; + // DPI_FoundTuples, having type string[] + ParameterId["FoundTuples"] = "foundTuples"; + // DPI_FullSchedulesLabels, having type string[] + ParameterId["FullSchedulesLabels"] = "fullSchedulesLabels"; + // DPI_ImageResourceList, having type string[] + ParameterId["ImageResourceList"] = "imageResources"; + // DPI_IncludeList, having type string[] + ParameterId["IncludeList"] = "includeList"; + // DPI_IncrSchedulesLabels, having type string[] + ParameterId["IncrSchedulesLabels"] = "incrSchedulesLabels"; + // DPI_InvalidDates, having type string[] + ParameterId["InvalidDates"] = "invalidDates"; + // DPI_InvalidValues, having type string[] + ParameterId["InvalidValues"] = "invalidValues"; + // DPI_ItemValues, having type string[] + ParameterId["ItemValues"] = "itemValues"; + // DPI_JoinEditableProps, having type string[] + ParameterId["JoinEditableProps"] = "joinEditableProps"; + // DPI_JoinFieldCaptions, having type string[] + ParameterId["JoinFieldCaptions"] = "joinFieldCaptions"; + // DPI_LocaleOptions, having type string[] + ParameterId["LocaleOptions"] = "localeOptions"; + // DPI_LocaleDisplayNames, having type string[] + ParameterId["LocaleDisplayNames"] = "localeDisplayNames"; + // DPI_MapBoxStyleMaps, having type string[] + ParameterId["MapBoxStyleMaps"] = "mapboxStyleMaps"; + // DPI_MapConnectionErrorDetails, having type string[] + ParameterId["MapConnectionErrorDetails"] = "mapConnectionErrorDetails"; + // DPI_SheetNames, having type string[] + ParameterId["SheetNames"] = "sheetNames"; + // DPI_MapSourceNames, having type string[] + ParameterId["MapSourceNames"] = "mapSourceNames"; + // DPI_MarkGeometries, having type string[] + ParameterId["MarkGeometries"] = "markGeometries"; + // DPI_MenuItems, having type string[] + ParameterId["MenuItems"] = "menuItems"; + // DPI_Modes, having type string[] + ParameterId["Modes"] = "modes"; + // DPI_MonthNames, having type string[] + ParameterId["MonthNames"] = "monthNames"; + // DPI_NumberFormats, having type string[] + ParameterId["NumberFormats"] = "numberFormats"; + // DPI_ObjectTextIDs, having type string[] + ParameterId["ObjectTextIDs"] = "objectTextIds"; + // DPI_OldExtracts, having type string[] + ParameterId["OldExtracts"] = "oldExtracts"; + // DPI_OrderingTypeCaptions, having type string[] + ParameterId["OrderingTypeCaptions"] = "orderingTypeCaptions"; + // DPI_PageNames, having type string[] + ParameterId["PageNames"] = "pageNames"; + // DPI_PaneDescriptorKeys, having type string[] + ParameterId["PaneDescriptorKeys"] = "paneDescriptorKeys"; + // DPI_ParamCaptions, having type string[] + ParameterId["ParamCaptions"] = "paramCaptions"; + // DPI_PrecannedDataValues, having type string[] + ParameterId["PrecannedDataValues"] = "precannedDataValues"; + // DPI_PublishChoiceLabels, having type string[] + ParameterId["PublishChoiceLabels"] = "publishChoiceLabels"; + // DPI_RankTypeCaptions, having type string[] + ParameterId["RankTypeCaptions"] = "rankTypeCaptions"; + // DPI_RecentTags, having type string[] + ParameterId["RecentTags"] = "recentTags"; + // DPI_RelativeCaptions, having type string[] + ParameterId["RelativeCaptions"] = "relativeCaptions"; + // DPI_RemovedDataSources, having type string[] + ParameterId["RemovedDataSources"] = "removedDataSourceNames"; + // DPI_RepresentativeTuple, having type string[] + ParameterId["RepresentativeTuple"] = "representativeTuple"; + // DPI_RestartEveryCaptions, having type string[] + ParameterId["RestartEveryCaptions"] = "restartEveryCaptions"; + // DPI_SchemaMemberGlobalNames, having type string[] + ParameterId["SchemaMemberGlobalNames"] = "schemaMemberGlobalNames"; + // DPI_SelectValuesList, having type string[] + ParameterId["SelectValuesList"] = "selectValues"; + // DPI_SelectionValueList, having type string[] + ParameterId["SelectionValueList"] = "selectionValueList"; + // DPI_SortAggCaptions, having type string[] + ParameterId["SortAggCaptions"] = "sortAggCaptions"; + // DPI_SortDirectionCaptions, having type string[] + ParameterId["SortDirectionCaptions"] = "sortDirectionCaptions"; + // DPI_SortFieldCaptions, having type string[] + ParameterId["SortFieldCaptions"] = "sortFieldCaptions"; + // DPI_SortFieldNameVector, having type string[] + ParameterId["SortFieldNameVector"] = "sortFieldnameVector"; + // DPI_SupportedJoinOperators, having type string[] + ParameterId["SupportedJoinOperators"] = "supportedJoinOperators"; + // DPI_TableCalcTypeCaptions, having type string[] + ParameterId["TableCalcTypeCaptions"] = "tableCalcTypeCaptions"; + // DPI_Tags, having type string[] + ParameterId["Tags"] = "tags"; + // DPI_TermVec, having type string[] + ParameterId["TermVec"] = "termVector"; + // DPI_UIAutomationList, having type string[] + ParameterId["UIAutomationList"] = "uiAutomationList"; + // DPI_ReferenceLineValidCustomLabelTags, having type string[] + ParameterId["ReferenceLineValidCustomLabelTags"] = "validReferenceLineCustomLabelTags"; + // DPI_LocalizedKeywords, having type string[] + ParameterId["LocalizedKeywords"] = "localizedKeywords"; + // DPI_AvailableCalendars, having type string[] + ParameterId["AvailableCalendars"] = "availableCalendars"; + // DPI_SheetsToBeDeletedOrHidden, having type string[] + ParameterId["SheetsToBeDeletedOrHidden"] = "sheetsToBeDeletedOrHidden"; + // DPI_AddSheets, having type string[] + ParameterId["AddSheets"] = "addSheets"; + // DPI_NamesOfSubsheets, having type string[] + ParameterId["NamesOfSubsheets"] = "namesOfSubsheets"; + // DPI_RemoveSheets, having type string[] + ParameterId["RemoveSheets"] = "removeSheets"; + // DPI_ScrollOffsetSheets, having type string[] + ParameterId["ScrollOffsetSheets"] = "scrollOffsetSheets"; + // DPI_Sheets, having type string[] + ParameterId["Sheets"] = "sheets"; + // DPI_SourceWorksheets, having type string[] + ParameterId["SourceWorksheets"] = "sourceWorksheets"; + // DPI_TargetExcludes, having type string[] + ParameterId["TargetExcludes"] = "targetExclude"; + // DPI_TargetWorksheets, having type string[] + ParameterId["TargetWorksheets"] = "targetWorksheets"; + // DPI_TileURLs, having type string[] + ParameterId["TileURLs"] = "tileUrls"; + // DPI_Details, having type string[] + ParameterId["Details"] = "details"; + // DPI_FieldCaptions, having type string[] + ParameterId["FieldCaptions"] = "fieldCaptions"; + // DPI_HighlightCaptions, having type string[] + ParameterId["HighlightCaptions"] = "highlightCaptions"; + // DPI_LevelCaptions, having type string[] + ParameterId["LevelCaptions"] = "levelCaptions"; + // DPI_LevelLeafValues, having type string[] + ParameterId["LevelLeafValues"] = "levelLeafValues"; + // DPI_SubstitutionVariables, having type string[] + ParameterId["SubstitutionVariables"] = "substitutionVariables"; + // DPI_SubstitutionVariableValues, having type string[] + ParameterId["SubstitutionVariableValues"] = "substitutionVariableValues"; + // DPI_HtmlTooltips, having type string[] + ParameterId["HtmlTooltips"] = "htmlTooltips"; + // DPI_InvalidFields, having type string[] + ParameterId["InvalidFields"] = "invalidFields"; + // DPI_NamesOfColumns, having type string[] + ParameterId["NamesOfColumns"] = "namesOfColumns"; + // DPI_NamesOfFields, having type string[] + ParameterId["NamesOfFields"] = "namesOfFields"; + // DPI_ReferencedDatasources, having type string[] + ParameterId["ReferencedDatasources"] = "referencedDataSourceList"; + // DPI_CSSAttrs, having type Dictionary(of string) + ParameterId["CSSAttrs"] = "cssAttrs"; + // DPI_DataSourceMap, having type Dictionary(of string) + ParameterId["DataSourceMap"] = "dataSourceMap"; + // DPI_EventParameters, having type Dictionary(of string) + ParameterId["EventParameters"] = "eventParameters"; + // DPI_ExceptionAttrs, having type Dictionary(of string) + ParameterId["ExceptionAttrs"] = "exceptionAttrs"; + // DPI_InvalidSheetMessage, having type Dictionary(of string) + ParameterId["InvalidSheetMessage"] = "invalidSheetMessages"; + // DPI_MapBoxDefaultStyle, having type Dictionary(of string) + ParameterId["MapBoxDefaultStyle"] = "mapboxDefaultStyles"; + // DPI_PaneFormattings, having type Dictionary(of string) + ParameterId["PaneFormattings"] = "paneFormattings"; + // DPI_SourceNameWithCaption, having type Dictionary(of string) + ParameterId["SourceNameWithCaption"] = "sourceNameWithCaption"; + // DPI_ConnectionColorMap, having type Dictionary(of string) + ParameterId["ConnectionColorMap"] = "connectionColorMap"; + // DPI_TargetNameWithCaption, having type Dictionary(of string) + ParameterId["TargetNameWithCaption"] = "targetNameWithCaption"; + // DPI_ViewIds, having type Dictionary(of string) + ParameterId["ViewIds"] = "viewIds"; + // DPI_AddInSettings, having type Dictionary(of string) + ParameterId["AddInSettings"] = "addInSettings"; + // DPI_DatasourceIcons, having type Dictionary(of string) + ParameterId["DatasourceIcons"] = "datasourceIcons"; + // DPI_FormattedText, having type string + ParameterId["FormattedText"] = "formattedText"; + // DPI_IconTooltip, having type string + ParameterId["IconTooltip"] = "iconTooltip"; + // DPI_Title, having type string + ParameterId["Title"] = "title"; + // DPI_Tooltip, having type string + ParameterId["Tooltip"] = "tooltip"; + // DPI_ZoneText, having type string + ParameterId["ZoneText"] = "zoneText"; + // DPI_AlignmentFlags, having type int + ParameterId["AlignmentFlags"] = "alignmentFlags"; + // DPI_AlphaLevel, having type int + ParameterId["AlphaLevel"] = "alphaLevel"; + // DPI_AnovaDF, having type int + ParameterId["AnovaDF"] = "anovaDf"; + // DPI_AtTheLevelIndex, having type int + ParameterId["AtTheLevelIndex"] = "atTheLevelIndex"; + // DPI_AutomaticDrillIdxInVector, having type int + ParameterId["AutomaticDrillIdxInVector"] = "automaticDrillIdxVector"; + // DPI_AutoSize, having type int + ParameterId["AutoSize"] = "automaticSize"; + // DPI_BaseCoord, having type int + ParameterId["BaseCoord"] = "baseCoord"; + // DPI_CalcEditorCursorPosPostDrop, having type int + ParameterId["CalcEditorCursorPosPostDrop"] = "calcEditorCursorPosPostDrop"; + // DPI_CalcEditorDropPos, having type int + ParameterId["CalcEditorDropPos"] = "calcEditorDropPos"; + // DPI_CalcEditorTextSelectionEndPos, having type int + ParameterId["CalcEditorTextSelectionEndPos"] = "calcEditorTextSelectionEndPos"; + // DPI_CalcEditorTextSelectionStartPos, having type int + ParameterId["CalcEditorTextSelectionStartPos"] = "calcEditorTextSelectionStartPos"; + // DPI_CategoricalBinId, having type int + ParameterId["CategoricalBinId"] = "categoricalBinId"; + // DPI_CategoricalFindControllerId, having type int + ParameterId["CategoricalFindControllerId"] = "categoricalFindControllerId"; + // DPI_ClauseToModifyIndex, having type int + ParameterId["ClauseToModifyIndex"] = "clauseToModifyIndex"; + // DPI_ClientRenderPixelLimit, having type int + ParameterId["ClientRenderPixelLimit"] = "clientRenderPixelLimit"; + // DPI_ColCount, having type int + ParameterId["ColCount"] = "colCount"; + // DPI_ColWidth, having type int + ParameterId["ColWidth"] = "colWidth"; + // DPI_ColumnLevels, having type int + ParameterId["ColumnLevels"] = "columnLevels"; + // DPI_ColumnNumber, having type int + ParameterId["ColumnNumber"] = "columnNumber"; + // DPI_ColumnWidth, having type int + ParameterId["ColumnWidth"] = "columnWidth"; + // DPI_ContentHeight, having type int + ParameterId["ContentHeight"] = "contentH"; + // DPI_ContentWidth, having type int + ParameterId["ContentWidth"] = "contentW"; + // DPI_ContentX, having type int + ParameterId["ContentX"] = "contentX"; + // DPI_ContentY, having type int + ParameterId["ContentY"] = "contentY"; + // DPI_Coordinate, having type int + ParameterId["Coordinate"] = "coord"; + // DPI_CurDateAgg, having type int + ParameterId["CurDateAgg"] = "curDateAgg"; + // DPI_CurrentCustViewId, having type int + ParameterId["CurrentCustViewId"] = "currentCustomViewId"; + // DPI_CustomSplitCharacterCountSeparator, having type int + ParameterId["CustomSplitCharacterCountSeparator"] = "customSplitCharacterCountSeparator"; + // DPI_CustomSplitDesiredSplitCount, having type int + ParameterId["CustomSplitDesiredSplitCount"] = "customSplitDesiredSplitCount"; + // DPI_DashboardGridSize, having type int + ParameterId["DashboardGridSize"] = "dashboardGridSize"; + // DPI_DataIndex, having type int + ParameterId["DataIndex"] = "dataIndex"; + // DPI_DecimalPlaces, having type int + ParameterId["DecimalPlaces"] = "decimalPlaces"; + // DPI_DeltaTime, having type int + ParameterId["DeltaTime"] = "deltaTime"; + // DPI_DestPix, having type int + ParameterId["DestPix"] = "destPix"; + // DPI_DeviceIndex, having type int + ParameterId["DeviceIndex"] = "deviceIndex"; + // DPI_Duration, having type int + ParameterId["Duration"] = "duration"; + // DPI_EndPtX, having type int + ParameterId["EndPtX"] = "endX"; + // DPI_EndPtY, having type int + ParameterId["EndPtY"] = "endY"; + // DPI_ErrorLen, having type int + ParameterId["ErrorLen"] = "lengthOfCalcOfError"; + // DPI_ErrorPos, having type int + ParameterId["ErrorPos"] = "startPositionForError"; + // DPI_ExceptionErrorMessageId, having type int + ParameterId["ExceptionErrorMessageId"] = "exceptionErrorMessageId"; + // DPI_ExtentsH, having type int + ParameterId["ExtentsH"] = "extentsHeight"; + // DPI_ExtentsW, having type int + ParameterId["ExtentsW"] = "extentsWidth"; + // DPI_ExtentsX, having type int + ParameterId["ExtentsX"] = "extentsX"; + // DPI_ExtentsY, having type int + ParameterId["ExtentsY"] = "extentsY"; + // DPI_FieldIndex, having type int + ParameterId["FieldIndex"] = "fieldIndex"; + // DPI_FieldNameId, having type int + ParameterId["FieldNameId"] = "fieldNameId"; + // DPI_FirstDayOfWeek, having type int + ParameterId["FirstDayOfWeek"] = "firstDayOfWeek"; + // DPI_FirstValueIndex, having type int + ParameterId["FirstValueIndex"] = "firstValueIndex"; + // DPI_FixedSizePresetIndex, having type int + ParameterId["FixedSizePresetIndex"] = "fixedSizePresetIndex"; + // DPI_FocusItemIndex, having type int + ParameterId["FocusItemIndex"] = "focusItemIndex"; + // DPI_FontSize, having type int + ParameterId["FontSize"] = "fontSize"; + // DPI_ForecastIntRangeEnd, having type int + ParameterId["ForecastIntRangeEnd"] = "forecastIntRangeEnd"; + // DPI_ForecastIntRangeStart, having type int + ParameterId["ForecastIntRangeStart"] = "forecastIntRangeStart"; + // DPI_FunctionHelpIndex, having type int + ParameterId["FunctionHelpIndex"] = "functionHelpIndex"; + // DPI_GeographicSearchMaxResults, having type int + ParameterId["GeographicSearchMaxResults"] = "geographicSearchMaxResults"; + // DPI_Height, having type int + ParameterId["Height"] = "h"; + // DPI_HierarchyLevel, having type int + ParameterId["HierarchyLevel"] = "hierarchyLevel"; + // DPI_HierarchyLevelLoaded, having type int + ParameterId["HierarchyLevelLoaded"] = "hierarchyLevelLoaded"; + // DPI_HierarchyLevelMinimum, having type int + ParameterId["HierarchyLevelMinimum"] = "hierarchyLevelMinimum"; + // DPI_HierarchyLoadLimit, having type int + ParameterId["HierarchyLoadLimit"] = "hierarchyLoadLimit"; + // DPI_HierarchySelectControllerId, having type int + ParameterId["HierarchySelectControllerId"] = "hierarchySelectControllerId"; + // DPI_HorzTextCell, having type int + ParameterId["HorzTextCell"] = "horzTextCell"; + // DPI_ImageIndex, having type int + ParameterId["ImageIndex"] = "imageIndex"; + // DPI_ImageSizeLimit, having type int + ParameterId["ImageSizeLimit"] = "imageSizeLimit"; + // DPI_TransparentLineMarksLimit, having type int + ParameterId["TransparentLineMarksLimit"] = "transparentLineMarksLimit"; + // DPI_Indent, having type int + ParameterId["Indent"] = "indent"; + // DPI_Index, having type int + ParameterId["Index"] = "idx"; + // DPI_IndexFrom, having type int + ParameterId["IndexFrom"] = "indexFrom"; + // DPI_IndexOffset, having type int + ParameterId["IndexOffset"] = "indexOffset"; + // DPI_IndexTo, having type int + ParameterId["IndexTo"] = "indexTo"; + // DPI_InlineConnectionRenameRow, having type int + ParameterId["InlineConnectionRenameRow"] = "inlineConnectionRenameRow"; + // DPI_InsertPos, having type int + ParameterId["InsertPos"] = "insertPos"; + // DPI_IsHasDataSupported, having type int + ParameterId["IsHasDataSupported"] = "isHasDataSupported"; + // DPI_LeftMargin, having type int + ParameterId["LeftMargin"] = "leftMargin"; + // DPI_LeftRightBorderWidth, having type int + ParameterId["LeftRightBorderWidth"] = "leftRightBorderWidth"; + // DPI_LowerBound, having type int + ParameterId["LowerBound"] = "lowerBound"; + // DPI_MapRequestPixels, having type int + ParameterId["MapRequestPixels"] = "mapRequestPixels"; + // DPI_MapScaleFontSizePixels, having type int + ParameterId["MapScaleFontSizePixels"] = "mapScaleFontSizePixels"; + // DPI_MapScaleReadoutNumber, having type int + ParameterId["MapScaleReadoutNumber"] = "mapScaleReadoutNumber"; + // DPI_MapScaleWidth, having type int + ParameterId["MapScaleWidth"] = "mapScaleWidth"; + // DPI_MapTileSize, having type int + ParameterId["MapTileSize"] = "mapTileSize"; + // DPI_Margin, having type int + ParameterId["Margin"] = "margin"; + // DPI_MarginBottom, having type int + ParameterId["MarginBottom"] = "marginBottom"; + // DPI_MarginLeft, having type int + ParameterId["MarginLeft"] = "marginLeft"; + // DPI_MarginRight, having type int + ParameterId["MarginRight"] = "marginRight"; + // DPI_MarginTop, having type int + ParameterId["MarginTop"] = "marginTop"; + // DPI_MaxCell, having type int + ParameterId["MaxCell"] = "maxCell"; + // DPI_MaxItemSpan, having type int + ParameterId["MaxItemSpan"] = "maxItemSpan"; + // DPI_MaxPolynomialDegree, having type int + ParameterId["MaxPolynomialDegree"] = "maxDegree"; + // DPI_MaxPosition, having type int + ParameterId["MaxPosition"] = "maxPosition"; + // DPI_MaxSize, having type int + ParameterId["MaxSize"] = "maxSize"; + // DPI_MinCell, having type int + ParameterId["MinCell"] = "minCell"; + // DPI_MinPolynomialDegree, having type int + ParameterId["MinPolynomialDegree"] = "minDegree"; + // DPI_MinPosition, having type int + ParameterId["MinPosition"] = "minPosition"; + // DPI_MinSize, having type int + ParameterId["MinSize"] = "minSize"; + // DPI_ModelDF, having type int + ParameterId["ModelDF"] = "modelDf"; + // DPI_NewIndex, having type int + ParameterId["NewIndex"] = "newIndex"; + // DPI_NumDataSourcesUsingServer, having type int + ParameterId["NumDataSourcesUsingServer"] = "numDataSourcesUsingServer"; + // DPI_NumFilteredObs, having type int + ParameterId["NumFilteredObs"] = "filteredObservations"; + // DPI_NumModeledObs, having type int + ParameterId["NumModeledObs"] = "modeledObservations"; + // DPI_NumNotClustered, having type int + ParameterId["NumNotClustered"] = "numNotClustered"; + // DPI_NumNumericFields, having type int + ParameterId["NumNumericFields"] = "numNumericFields"; + // DPI_NumOutliers, having type int + ParameterId["NumOutliers"] = "numOutliers"; + // DPI_NumRows, having type int + ParameterId["NumRows"] = "numRows"; + // DPI_NumSelected, having type int + ParameterId["NumSelected"] = "numSelected"; + // DPI_OffsetX, having type int + ParameterId["OffsetX"] = "offsetX"; + // DPI_OffsetY, having type int + ParameterId["OffsetY"] = "offsetY"; + // DPI_Padding, having type int + ParameterId["Padding"] = "padding"; + // DPI_PaddingBottom, having type int + ParameterId["PaddingBottom"] = "paddingBottom"; + // DPI_PaddingLeft, having type int + ParameterId["PaddingLeft"] = "paddingLeft"; + // DPI_PaddingRight, having type int + ParameterId["PaddingRight"] = "paddingRight"; + // DPI_PaddingTop, having type int + ParameterId["PaddingTop"] = "paddingTop"; + // DPI_PageLoadPercentage, having type int + ParameterId["PageLoadPercentage"] = "pageLoadPercentage"; + // DPI_PaletteIndex, having type int + ParameterId["PaletteIndex"] = "paletteIndex"; + // DPI_PaneSpecificationId, having type int + ParameterId["PaneSpecificationId"] = "paneSpec"; + // DPI_ParameterCtrlIncrementsPerTick, having type int + ParameterId["ParameterCtrlIncrementsPerTick"] = "parameterControlIncrementMultiplier"; + // DPI_PolynomialDegree, having type int + ParameterId["PolynomialDegree"] = "degree"; + // DPI_Port, having type int + ParameterId["Port"] = "datasourcePort"; + // DPI_Position, having type int + ParameterId["Position"] = "position"; + // DPI_ParentProjectId, having type int + ParameterId["ParentProjectId"] = "parentProjectId"; + // DPI_PublishResultStringId, having type int + ParameterId["PublishResultStringId"] = "publishResultStringId"; + // DPI_Radius, having type int + ParameterId["Radius"] = "radius"; + // DPI_ReadoutOffset, having type int + ParameterId["ReadoutOffset"] = "readoutOffset"; + // DPI_ReferenceIndex, having type int + ParameterId["ReferenceIndex"] = "referenceIndex"; + // DPI_RegionHeight, having type int + ParameterId["RegionHeight"] = "regionHeight"; + // DPI_RegionWidth, having type int + ParameterId["RegionWidth"] = "regionWidth"; + // DPI_RemovedDatasourceCount, having type int + ParameterId["RemovedDatasourceCount"] = "removedDatasourceCount"; + // DPI_RemovedSheetCount, having type int + ParameterId["RemovedSheetCount"] = "removedSheetCount"; + // DPI_ResidualDF, having type int + ParameterId["ResidualDF"] = "residualDf"; + // DPI_ResizeColumn, having type int + ParameterId["ResizeColumn"] = "resizeColumn"; + // DPI_RestartEveryIndex, having type int + ParameterId["RestartEveryIndex"] = "restartEveryIndex"; + // DPI_RightMargin, having type int + ParameterId["RightMargin"] = "rightMargin"; + // DPI_RowCount, having type int + ParameterId["RowCount"] = "rowCount"; + // DPI_RowHeight, having type int + ParameterId["RowHeight"] = "rowHeight"; + // DPI_RowInnerLevels, having type int + ParameterId["RowInnerLevels"] = "rowInnerLevels"; + // DPI_RowLevels, having type int + ParameterId["RowLevels"] = "rowLevels"; + // DPI_RowNumber, having type int + ParameterId["RowNumber"] = "rowNumber"; + // DPI_RowWidth, having type int + ParameterId["RowWidth"] = "rowWidth"; + // DPI_SecondValueIndex, having type int + ParameterId["SecondValueIndex"] = "secondValueIndex"; + // DPI_SecondsAgo, having type int + ParameterId["SecondsAgo"] = "secondsAgo"; + // DPI_SelectionEnd, having type int + ParameterId["SelectionEnd"] = "selectionEnd"; + // DPI_SelectionStart, having type int + ParameterId["SelectionStart"] = "selectionStart"; + // DPI_ShapePaletteID, having type int + ParameterId["ShapePaletteID"] = "shapePaletteId"; + // DPI_SheetIndex, having type int + ParameterId["SheetIndex"] = "sheetIndex"; + // DPI_ShelfPositionIndex, having type int + ParameterId["ShelfPositionIndex"] = "shelfPosIndex"; + // DPI_Size, having type int + ParameterId["Size"] = "size"; + // DPI_SizeDifference, having type int + ParameterId["SizeDifference"] = "sizeDelta"; + // DPI_SnapDistance, having type int + ParameterId["SnapDistance"] = "snapDistance"; + // DPI_SnapLocation, having type int + ParameterId["SnapLocation"] = "snapLocation"; + // DPI_SolveOrder, having type int + ParameterId["SolveOrder"] = "solveOrder"; + // DPI_SpaceBetweenPoints, having type int + ParameterId["SpaceBetweenPoints"] = "spaceBetweenPoints"; + // DPI_StepSize, having type int + ParameterId["StepSize"] = "stepSize"; + // DPI_Steps, having type int + ParameterId["Steps"] = "steps"; + // DPI_StoryPointIndex, having type int + ParameterId["StoryPointIndex"] = "currentStorypointIndex"; + // DPI_StyleLen, having type int + ParameterId["StyleLen"] = "tokenLengthForStyle"; + // DPI_StylePos, having type int + ParameterId["StylePos"] = "tokenPositionForStyle"; + // DPI_SwatchAreaWidth, having type int + ParameterId["SwatchAreaWidth"] = "swatchWidth"; + // DPI_TargetBinId, having type int + ParameterId["TargetBinId"] = "targetBinId"; + // DPI_TargetPtX, having type int + ParameterId["TargetPtX"] = "targetX"; + // DPI_TargetPtY, having type int + ParameterId["TargetPtY"] = "targetY"; + // DPI_TileFactor, having type int + ParameterId["TileFactor"] = "tileFactor"; + // DPI_TitleHeight, having type int + ParameterId["TitleHeight"] = "titleHeight"; + // DPI_TitleWidth, having type int + ParameterId["TitleWidth"] = "titleWidth"; + // DPI_TopBottomBorderWidth, having type int + ParameterId["TopBottomBorderWidth"] = "topBottomBorderWidth"; + // DPI_UIAutomationLineSize, having type int + ParameterId["UIAutomationLineSize"] = "uiAutomationLineSize"; + // DPI_UIAutomationPageSize, having type int + ParameterId["UIAutomationPageSize"] = "uiAutomationPageSize"; + // DPI_UID, having type int + ParameterId["UID"] = "uid"; + // DPI_UpperBound, having type int + ParameterId["UpperBound"] = "upperBound"; + // DPI_VertTextCell, having type int + ParameterId["VertTextCell"] = "vertTextCell"; + // DPI_Width, having type int + ParameterId["Width"] = "w"; + // DPI_X, having type int + ParameterId["X"] = "x"; + // DPI_Y, having type int + ParameterId["Y"] = "y"; + // DPI_ZOrder, having type int + ParameterId["ZOrder"] = "zOrder"; + // DPI_ZoneIconIndex, having type int + ParameterId["ZoneIconIndex"] = "zoneIconIndex"; + // DPI_AliasIndices, having type int[] + ParameterId["AliasIndices"] = "aliasIndices"; + // DPI_AnovaDFVec, having type int[] + ParameterId["AnovaDFVec"] = "anovaDfVector"; + // DPI_ColumnIndices, having type int[] + ParameterId["ColumnIndices"] = "columnIndices"; + // DPI_DrillFieldIndices, having type int[] + ParameterId["DrillFieldIndices"] = "drillFieldIndices"; + // DPI_FilterMaxIndices, having type int[] + ParameterId["FilterMaxIndices"] = "filterMaxIndices"; + // DPI_FilterMinIndices, having type int[] + ParameterId["FilterMinIndices"] = "filterMinIndices"; + // DPI_FilterValuesIndices, having type int[] + ParameterId["FilterValuesIndices"] = "filterValueIndices"; + // DPI_FormatStringIndices, having type int[] + ParameterId["FormatStringIndices"] = "formatstrIndices"; + // DPI_FormattedValIndices, having type int[] + ParameterId["FormattedValIndices"] = "formatValIdxs"; + // DPI_PaletteIndices, having type int[] + ParameterId["PaletteIndices"] = "palettesIndices"; + // DPI_PaneIndices, having type int[] + ParameterId["PaneIndices"] = "paneIndices"; + // DPI_Points, having type int[] + ParameterId["Points"] = "points"; + // DPI_QuickFilterSettings, having type int[] + ParameterId["QuickFilterSettings"] = "quickFilterSettings"; + // DPI_SelectedIndices, having type int[] + ParameterId["SelectedIndices"] = "selectedIndices"; + // DPI_ShelfPositionIndices, having type int[] + ParameterId["ShelfPositionIndices"] = "shelfPosIndices"; + // DPI_TileBox, having type int[] + ParameterId["TileBox"] = "tileBox"; + // DPI_TrailOverride, having type int[] + ParameterId["TrailOverride"] = "trailOverride"; + // DPI_UIDs, having type int[] + ParameterId["UIDs"] = "uids"; + // DPI_ValueIndices, having type int[] + ParameterId["ValueIndices"] = "valueIndices"; + // DPI_XCellOffsets, having type int[] + ParameterId["XCellOffsets"] = "xCellOffsets"; + // DPI_XPixelOffsets, having type int[] + ParameterId["XPixelOffsets"] = "xPixelOffsets"; + // DPI_YCellOffsets, having type int[] + ParameterId["YCellOffsets"] = "yCellOffsets"; + // DPI_YPixelOffsets, having type int[] + ParameterId["YPixelOffsets"] = "yPixelOffsets"; + // DPI_IntMap, having type Dictionary(of int) + ParameterId["IntMap"] = "intMap"; + // DPI_SelectedAuthSettingIndices, having type Dictionary(of int) + ParameterId["SelectedAuthSettingIndices"] = "selectedAuthSettingIndices"; + // DPI_ActiveStoryPointID, having type uint + ParameterId["ActiveStoryPointID"] = "activeStoryPointId"; + // DPI_ActiveZoneID, having type uint + ParameterId["ActiveZoneID"] = "activeZoneId"; + // DPI_ActualSize, having type uint + ParameterId["ActualSize"] = "actualSize"; + // DPI_AddInDebugPort, having type uint + ParameterId["AddInDebugPort"] = "addInDebugPort"; + // DPI_AggregationIndex, having type uint + ParameterId["AggregationIndex"] = "aggregationIndex"; + // DPI_AnnotationID, having type uint + ParameterId["AnnotationID"] = "annotationId"; + // DPI_AssignedAliasCount, having type uint + ParameterId["AssignedAliasCount"] = "assignedAliasCount"; + // DPI_CapabilityId, having type uint + ParameterId["CapabilityId"] = "capabilityId"; + // DPI_CaretIndex, having type uint + ParameterId["CaretIndex"] = "caretIndex"; + // DPI_CellID, having type uint + ParameterId["CellID"] = "cellId"; + // DPI_ColumnIndex, having type uint + ParameterId["ColumnIndex"] = "columnIndex"; + // DPI_CommandID, having type uint + ParameterId["CommandID"] = "id"; + // DPI_CommandIndex, having type uint + ParameterId["CommandIndex"] = "index"; + // DPI_ControllerId, having type uint + ParameterId["ControllerId"] = "controllerId"; + // DPI_Count, having type uint + ParameterId["Count"] = "count"; + // DPI_URowCount, having type uint + ParameterId["URowCount"] = "uRowCount"; + // DPI_UColumnCount, having type uint + ParameterId["UColumnCount"] = "uColumnCount"; + // DPI_CurrentPage, having type uint + ParameterId["CurrentPage"] = "currentPage"; + // DPI_DatePeriodsCount, having type uint + ParameterId["DatePeriodsCount"] = "datePeriodsCount"; + // DPI_Decimals, having type uint + ParameterId["Decimals"] = "decimals"; + // DPI_DefaultHeight, having type uint + ParameterId["DefaultHeight"] = "defaultHeight"; + // DPI_DefaultItem, having type uint + ParameterId["DefaultItem"] = "defaultItem"; + // DPI_DefaultWidth, having type uint + ParameterId["DefaultWidth"] = "defaultWidth"; + // DPI_Depth, having type uint + ParameterId["Depth"] = "depth"; + // DPI_DetailID, having type uint + ParameterId["DetailID"] = "detailId"; + // DPI_DrillLevel, having type uint + ParameterId["DrillLevel"] = "drillLevel"; + // DPI_DuplicateIndex, having type uint + ParameterId["DuplicateIndex"] = "duplicateIndex"; + // DPI_EndIndex, having type uint + ParameterId["EndIndex"] = "endIndex"; + // DPI_FieldIconIdx, having type uint + ParameterId["FieldIconIdx"] = "fieldIconIdx"; + // DPI_FilterLevel, having type uint + ParameterId["FilterLevel"] = "filterLevel"; + // DPI_FilterTileSize, having type uint + ParameterId["FilterTileSize"] = "filterTileSize"; + // DPI_FiscalYearStart, having type uint + ParameterId["FiscalYearStart"] = "fiscalYearStart"; + // DPI_FitPagesAcross, having type uint + ParameterId["FitPagesAcross"] = "pageFitHorizontal"; + // DPI_FitPagesDown, having type uint + ParameterId["FitPagesDown"] = "pageFitVertical"; + // DPI_FixedIndex, having type uint + ParameterId["FixedIndex"] = "fixedIndex"; + // DPI_FlipboardZoneID, having type uint + ParameterId["FlipboardZoneID"] = "flipboardZoneId"; + // DPI_ForecastAutoRangeSize, having type uint + ParameterId["ForecastAutoRangeSize"] = "forecastAutoRangeSize"; + // DPI_ForecastEndOfRange, having type uint + ParameterId["ForecastEndOfRange"] = "forecastEndOfRange"; + // DPI_ForecastIgnoreLast, having type uint + ParameterId["ForecastIgnoreLast"] = "forecastIgnoreLast"; + // DPI_ForecastNextRangeSize, having type uint + ParameterId["ForecastNextRangeSize"] = "forecastNextRangeSize"; + // DPI_GroupFlags, having type uint + ParameterId["GroupFlags"] = "groupFlag"; + // DPI_HierarchyLevels, having type uint + ParameterId["HierarchyLevels"] = "hierarchyLevels"; + // DPI_HierarchyMemberId, having type uint + ParameterId["HierarchyMemberId"] = "hierarchyMemberId"; + // DPI_HitTestFlags, having type uint + ParameterId["HitTestFlags"] = "hitTestFlags"; + // DPI_ImageHeight, having type uint + ParameterId["ImageHeight"] = "imageHeight"; + // DPI_ImageWidth, having type uint + ParameterId["ImageWidth"] = "imageWidth"; + // DPI_ItemIndex, having type uint + ParameterId["ItemIndex"] = "itemIndex"; + // DPI_ItemIndex1, having type uint + ParameterId["ItemIndex1"] = "itemIndex1"; + // DPI_LineHeight, having type uint + ParameterId["LineHeight"] = "lineHeight"; + // DPI_MapIntermediateLevels, having type uint + ParameterId["MapIntermediateLevels"] = "mapIntermediateLevels"; + // DPI_MapWorldRepeats, having type uint + ParameterId["MapWorldRepeats"] = "mapWorldRepeats"; + // DPI_MaxAlpha, having type uint + ParameterId["MaxAlpha"] = "maxAlpha"; + // DPI_MaxHeight, having type uint + ParameterId["MaxHeight"] = "maxHeight"; + // DPI_MaxNumberWebListItems, having type uint + ParameterId["MaxNumberWebListItems"] = "maxNumberWebListItems"; + // DPI_MaxPrevOrNextValues, having type uint + ParameterId["MaxPrevOrNextValues"] = "maxPrevOrNextValues"; + // DPI_MaxRows, having type uint + ParameterId["MaxRows"] = "maxRows"; + // DPI_MaxTransparency, having type uint + ParameterId["MaxTransparency"] = "colorMaxTransparencyValue"; + // DPI_MaxWidth, having type uint + ParameterId["MaxWidth"] = "maxWidth"; + // DPI_MinColumns, having type uint + ParameterId["MinColumns"] = "minColumns"; + // DPI_MinHeight, having type uint + ParameterId["MinHeight"] = "minHeight"; + // DPI_MinPrevOrNextValues, having type uint + ParameterId["MinPrevOrNextValues"] = "minPrevOrNextValues"; + // DPI_MinTransparency, having type uint + ParameterId["MinTransparency"] = "colorMinTransparencyValue"; + // DPI_MinWidth, having type uint + ParameterId["MinWidth"] = "minWidth"; + // DPI_NestedCalcsIndex, having type uint + ParameterId["NestedCalcsIndex"] = "nestedCalcsIndex"; + // DPI_NextValues, having type uint + ParameterId["NextValues"] = "nextValues"; + // DPI_NodeLevel, having type uint + ParameterId["NodeLevel"] = "nodeLevel"; + // DPI_NumHighlighted, having type uint + ParameterId["NumHighlighted"] = "numHighlighted"; + // DPI_NumberOfNextValues, having type uint + ParameterId["NumberOfNextValues"] = "numberOfNextValues"; + // DPI_NumberOfPrevValues, having type uint + ParameterId["NumberOfPrevValues"] = "numberOfPrevValues"; + // DPI_ObjectID, having type uint + ParameterId["ObjectID"] = "objectId"; + // DPI_OrderingTypeIndex, having type uint + ParameterId["OrderingTypeIndex"] = "orderingTypeIndex"; + // DPI_PageCount, having type uint + ParameterId["PageCount"] = "pageCount"; + // DPI_PageFadeEnd, having type uint + ParameterId["PageFadeEnd"] = "fadeEnd"; + // DPI_PageFadeStart, having type uint + ParameterId["PageFadeStart"] = "fadeStart"; + // DPI_PageIndex, having type uint + ParameterId["PageIndex"] = "pageIndex"; + // DPI_PageNumber, having type uint + ParameterId["PageNumber"] = "pageNumber"; + // DPI_PageScalePercent, having type uint + ParameterId["PageScalePercent"] = "pageScalePercent"; + // DPI_PageTrailLength, having type uint + ParameterId["PageTrailLength"] = "historyLength"; + // DPI_PaletteFlagsVal, having type uint + ParameterId["PaletteFlagsVal"] = "paletteFlagsVal"; + // DPI_PaneIndex, having type uint + ParameterId["PaneIndex"] = "paneIndex"; + // DPI_ParamCtrlDisplayFlags, having type uint + ParameterId["ParamCtrlDisplayFlags"] = "paramDisplayFlags"; + // DPI_ParentZoneID, having type uint + ParameterId["ParentZoneID"] = "parentZoneId"; + // DPI_PercentileParam, having type uint + ParameterId["PercentileParam"] = "percentileParam"; + // DPI_PrevValues, having type uint + ParameterId["PrevValues"] = "prevValues"; + // DPI_QRGBColor, having type uint + ParameterId["QRGBColor"] = "qrgbColor"; + // DPI_RangeN, having type uint + ParameterId["RangeN"] = "rangeN"; + // DPI_RankTypeIndex, having type uint + ParameterId["RankTypeIndex"] = "rankTypeIndex"; + // DPI_RenderComplexity, having type uint + ParameterId["RenderComplexity"] = "renderComplexityLimit"; + // DPI_RowIndex, having type uint + ParameterId["RowIndex"] = "rowIndex"; + // DPI_SelectedAuthSettingIndex, having type uint + ParameterId["SelectedAuthSettingIndex"] = "selectedAuthSettingIndex"; + // DPI_SelectedFullScheduleIndex, having type uint + ParameterId["SelectedFullScheduleIndex"] = "selectedFullScheduleIndex"; + // DPI_SelectedIncrScheduleIndex, having type uint + ParameterId["SelectedIncrScheduleIndex"] = "selectedIncrScheduleIndex"; + // DPI_SelectedPublishChoiceIndex, having type uint + ParameterId["SelectedPublishChoiceIndex"] = "selectedPublishChoiceIndex"; + // DPI_SelectedMemberCount, having type uint + ParameterId["SelectedMemberCount"] = "selectedMemberCount"; + // DPI_ShapeID, having type uint + ParameterId["ShapeID"] = "shapeId"; + // DPI_SheetUseCount, having type uint + ParameterId["SheetUseCount"] = "useCount"; + // DPI_ShelfItemID, having type uint + ParameterId["ShelfItemID"] = "shelfItemId"; + // DPI_SigFigs, having type uint + ParameterId["SigFigs"] = "sigFigs"; + // DPI_SortAggIndex, having type uint + ParameterId["SortAggIndex"] = "sortAggIndvValues"; + // DPI_SortColumnIndex, having type uint + ParameterId["SortColumnIndex"] = "sortColumnIndex"; + // DPI_SortDirectionIndex, having type uint + ParameterId["SortDirectionIndex"] = "sortDirectionIndex"; + // DPI_SortFieldIndex, having type uint + ParameterId["SortFieldIndex"] = "sortFieldIndex"; + // DPI_StartIndex, having type uint + ParameterId["StartIndex"] = "startIndex"; + // DPI_StartOfWeek, having type uint + ParameterId["StartOfWeek"] = "startOfWeek"; + // DPI_StoryPointID, having type uint + ParameterId["StoryPointID"] = "storyPointId"; + // DPI_TableCalcTypeIndex, having type uint + ParameterId["TableCalcTypeIndex"] = "tableCalcTypeIndex"; + // DPI_TableCalcTypesUsed, having type uint + ParameterId["TableCalcTypesUsed"] = "tableCalcTypesUsed"; + // DPI_TemplateIndex, having type uint + ParameterId["TemplateIndex"] = "templateIndex"; + // DPI_TileCount, having type uint + ParameterId["TileCount"] = "tileCount"; + // DPI_TimeoutSeconds, having type uint + ParameterId["TimeoutSeconds"] = "timeoutSeconds"; + // DPI_TopN, having type uint + ParameterId["TopN"] = "topN"; + // DPI_TotalNumberOfItemsInSet, having type uint + ParameterId["TotalNumberOfItemsInSet"] = "totalNumberOfItemsInSet"; + // DPI_TotalMemberCount, having type uint + ParameterId["TotalMemberCount"] = "totalMemberCount"; + // DPI_Transparency, having type uint + ParameterId["Transparency"] = "colorTransparencyValue"; + // DPI_TupleID, having type uint + ParameterId["TupleID"] = "tupleId"; + // DPI_UIndex, having type uint + ParameterId["UIndex"] = "uindex"; + // DPI_UndoPosition, having type uint + ParameterId["UndoPosition"] = "undoPosition"; + // DPI_UnsignedWidth, having type uint + ParameterId["UnsignedWidth"] = "uw"; + // DPI_UnsignedWidthBottom, having type uint + ParameterId["UnsignedWidthBottom"] = "uwb"; + // DPI_UnsignedWidthLeft, having type uint + ParameterId["UnsignedWidthLeft"] = "uwl"; + // DPI_UnsignedWidthRight, having type uint + ParameterId["UnsignedWidthRight"] = "uwr"; + // DPI_UnsignedWidthTop, having type uint + ParameterId["UnsignedWidthTop"] = "uwt"; + // DPI_ValueIndex, having type uint + ParameterId["ValueIndex"] = "valueIndex"; + // DPI_ValueInt, having type uint + ParameterId["ValueInt"] = "valueInt"; + // DPI_WorldOffset, having type uint + ParameterId["WorldOffset"] = "worldOffset"; + // DPI_XDuplicateIndex, having type uint + ParameterId["XDuplicateIndex"] = "xDuplicateIndex"; + // DPI_XIndex, having type uint + ParameterId["XIndex"] = "xIndex"; + // DPI_YDuplicateIndex, having type uint + ParameterId["YDuplicateIndex"] = "yDuplicateIndex"; + // DPI_YIndex, having type uint + ParameterId["YIndex"] = "yIndex"; + // DPI_ZoneID, having type uint + ParameterId["ZoneID"] = "zoneId"; + // DPI_ZoneZOrder, having type uint + ParameterId["ZoneZOrder"] = "zoneZOrder"; + // DPI_ComponentID, having type uint + ParameterId["ComponentID"] = "componentId"; + // DPI_NonThreadPoolUseCount, having type uint + ParameterId["NonThreadPoolUseCount"] = "nonThreadPoolUseCount"; + // DPI_AddressingIndices, having type uint[] + ParameterId["AddressingIndices"] = "addressingIndices"; + // DPI_AddressingInvalidIndices, having type uint[] + ParameterId["AddressingInvalidIndices"] = "addressingInvalidIndices"; + // DPI_ChildZoneIds, having type uint[] + ParameterId["ChildZoneIds"] = "childZoneIds"; + // DPI_ColorList, having type uint[] + ParameterId["ColorList"] = "colorList"; + // DPI_DuplicateIndices, having type uint[] + ParameterId["DuplicateIndices"] = "duplicateIndices"; + // DPI_FilterAddIndices, having type uint[] + ParameterId["FilterAddIndices"] = "filterAddIndices"; + // DPI_FilterIndices, having type uint[] + ParameterId["FilterIndices"] = "filterIndices"; + // DPI_FilterLevelAdd, having type uint[] + ParameterId["FilterLevelAdd"] = "filterLevelAdd"; + // DPI_FilterLevelRemove, having type uint[] + ParameterId["FilterLevelRemove"] = "filterLevelRemove"; + // DPI_FilterLevels, having type uint[] + ParameterId["FilterLevels"] = "filterLevels"; + // DPI_FilterRemoveIndices, having type uint[] + ParameterId["FilterRemoveIndices"] = "filterRemoveIndices"; + // DPI_FixedValues, having type uint[] + ParameterId["FixedValues"] = "fixedValues"; + // DPI_HierarchyMemberIdList, having type uint[] + ParameterId["HierarchyMemberIdList"] = "hierarchyMemberIdList"; + // DPI_InvalidIndices, having type uint[] + ParameterId["InvalidIndices"] = "invalidIndices"; + // DPI_ItemIndices, having type uint[] + ParameterId["ItemIndices"] = "itemIndices"; + // DPI_LineTupleIDs, having type uint[] + ParameterId["LineTupleIDs"] = "lineTupleIds"; + // DPI_ObjectIDs, having type uint[] + ParameterId["ObjectIDs"] = "objectIds"; + // DPI_PageIndices, having type uint[] + ParameterId["PageIndices"] = "pageIndices"; + // DPI_QRGB, having type uint[] + ParameterId["QRGB"] = "qrgbList"; + // DPI_QRGBColors, having type uint[] + ParameterId["QRGBColors"] = "qrgbColors"; + // DPI_RefLineID, having type uint[] + ParameterId["RefLineID"] = "reflineId"; + // DPI_ShapeIDs, having type uint[] + ParameterId["ShapeIDs"] = "shapeIds"; + // DPI_ShelfSelection, having type uint[] + ParameterId["ShelfSelection"] = "shelfSelection"; + // DPI_StoryPointIDs, having type uint[] + ParameterId["StoryPointIDs"] = "storyPointIds"; + // DPI_TupleIDs, having type uint[] + ParameterId["TupleIDs"] = "tupleIds"; + // DPI_Widths, having type uint[] + ParameterId["Widths"] = "widths"; + // DPI_UintMap, having type Dictionary(of uint32_t) + ParameterId["UintMap"] = "uintMap"; + // DPI_Alpha, having type float + ParameterId["Alpha"] = "alpha"; + // DPI_Angle, having type float + ParameterId["Angle"] = "angle"; + // DPI_BreakPointValue, having type float + ParameterId["BreakPointValue"] = "breakPointValue"; + // DPI_DevicePixelRatio, having type float + ParameterId["DevicePixelRatio"] = "devicePixelRatio"; + // DPI_Distance, having type float + ParameterId["Distance"] = "distance"; + // DPI_FloatX, having type float + ParameterId["FloatX"] = "floatX"; + // DPI_FloatY, having type float + ParameterId["FloatY"] = "floatY"; + // DPI_FogDesaturation, having type float + ParameterId["FogDesaturation"] = "fogDesaturation"; + // DPI_MarkScale, having type float + ParameterId["MarkScale"] = "markScale"; + // DPI_MarkSizeInPixelUnits, having type float + ParameterId["MarkSizeInPixelUnits"] = "markSizeInPixelUnits"; + // DPI_PointSize, having type float + ParameterId["PointSize"] = "pointSize"; + // DPI_StrokeWidth, having type float + ParameterId["StrokeWidth"] = "strokeWidth"; + // DPI_TextRegionOrientation, having type float + ParameterId["TextRegionOrientation"] = "orientation"; + // DPI_TransformAngle, having type float + ParameterId["TransformAngle"] = "transformAngle"; + // DPI_ZoomLevel, having type float + ParameterId["ZoomLevel"] = "zoomLevel"; + // DPI_OldZoomLevel, having type float + ParameterId["OldZoomLevel"] = "oldZoomLevel"; + // DPI_NewZoomLevel, having type float + ParameterId["NewZoomLevel"] = "newZoomLevel"; + // DPI_AspectRatio, having type float + ParameterId["AspectRatio"] = "aspectRatio"; + // DPI_BottomPrintMargin, having type float + ParameterId["BottomPrintMargin"] = "bottomPrintMargin"; + // DPI_EarthRadius, having type float + ParameterId["EarthRadius"] = "earthRadius"; + // DPI_FloatHeight, having type float + ParameterId["FloatHeight"] = "floatHeight"; + // DPI_FloatLeft, having type float + ParameterId["FloatLeft"] = "floatLeft"; + // DPI_FloatRadius, having type float + ParameterId["FloatRadius"] = "floatRadius"; + // DPI_FloatTop, having type float + ParameterId["FloatTop"] = "floatTop"; + // DPI_FloatWidth, having type float + ParameterId["FloatWidth"] = "floatWidth"; + // DPI_LeftPrintMargin, having type float + ParameterId["LeftPrintMargin"] = "leftPrintMargin"; + // DPI_MapCenterLatitude, having type float + ParameterId["MapCenterLatitude"] = "mapCenterLatitude"; + // DPI_MapCenterLongitude, having type float + ParameterId["MapCenterLongitude"] = "mapCenterLongitude"; + // DPI_MapDisplayScale, having type float + ParameterId["MapDisplayScale"] = "mapDisplayScale"; + // DPI_MapMaxStretch, having type float + ParameterId["MapMaxStretch"] = "mapMaxStretch"; + // DPI_MapMaxZoom, having type float + ParameterId["MapMaxZoom"] = "mapMaxZoom"; + // DPI_MapMinShrink, having type float + ParameterId["MapMinShrink"] = "mapMinShrink"; + // DPI_MapMinZoom, having type float + ParameterId["MapMinZoom"] = "mapMinZoom"; + // DPI_MapRequestZoom, having type float + ParameterId["MapRequestZoom"] = "mapRequestZoom"; + // DPI_MapWashout, having type float + ParameterId["MapWashout"] = "mapWashout"; + // DPI_MaxLatitude, having type float + ParameterId["MaxLatitude"] = "maxLatitude"; + // DPI_MaxLongitude, having type float + ParameterId["MaxLongitude"] = "maxLongitude"; + // DPI_MinLatitude, having type float + ParameterId["MinLatitude"] = "minLatitude"; + // DPI_MinLongitude, having type float + ParameterId["MinLongitude"] = "minLongitude"; + // DPI_RightPrintMargin, having type float + ParameterId["RightPrintMargin"] = "rightPrintMargin"; + // DPI_TopPrintMargin, having type float + ParameterId["TopPrintMargin"] = "topPrintMargin"; + // DPI_UIAutomationMaximum, having type float + ParameterId["UIAutomationMaximum"] = "uiAutomationMaximum"; + // DPI_UIAutomationMinimum, having type float + ParameterId["UIAutomationMinimum"] = "uiAutomationMinimum"; + // DPI_UIAutomationOffset, having type float + ParameterId["UIAutomationOffset"] = "uiAutomationOffset"; + // DPI_UnitDivisor, having type float + ParameterId["UnitDivisor"] = "unitDivisor"; + // DPI_UnitTransition, having type float + ParameterId["UnitTransition"] = "unitTransition"; + // DPI_AutomaticDrillIdx, having type float[] + ParameterId["AutomaticDrillIdx"] = "automaticDrillIdx"; + // DPI_DestinationBox, having type float[] + ParameterId["DestinationBox"] = "destBox"; + // DPI_LowerEnd, having type float[] + ParameterId["LowerEnd"] = "lowerEnd"; + // DPI_OppositeAxis, having type float[] + ParameterId["OppositeAxis"] = "oppositeAxis"; + // DPI_PointsF, having type float[] + ParameterId["PointsF"] = "pointsF"; + // DPI_SourceBox, having type float[] + ParameterId["SourceBox"] = "sourceBox"; + // DPI_TransformOffset, having type float[] + ParameterId["TransformOffset"] = "transformOffset"; + // DPI_TransformScale, having type float[] + ParameterId["TransformScale"] = "transformScale"; + // DPI_UpperEnd, having type float[] + ParameterId["UpperEnd"] = "upperEnd"; + // DPI_FloatMap, having type Dictionary(of float) + ParameterId["FloatMap"] = "floatMap"; + // DPI_BGSS, having type double + ParameterId["BGSS"] = "betweenGroupSumOfSquares"; + // DPI_ConfidenceLevel, having type double + ParameterId["ConfidenceLevel"] = "confidenceLevel"; + // DPI_ConfidencePercentage, having type double + ParameterId["ConfidencePercentage"] = "confidencePercentage"; + // DPI_DoubleLeft, having type double + ParameterId["DoubleLeft"] = "doubleLeft"; + // DPI_DoubleTop, having type double + ParameterId["DoubleTop"] = "doubleTop"; + // DPI_DoubleValue, having type double + ParameterId["DoubleValue"] = "doubleValue"; + // DPI_DoubleX, having type double + ParameterId["DoubleX"] = "doubleX"; + // DPI_DoubleY, having type double + ParameterId["DoubleY"] = "doubleY"; + // DPI_FStatistic, having type double + ParameterId["FStatistic"] = "fStatistic"; + // DPI_FilterRangeMax, having type double + ParameterId["FilterRangeMax"] = "filterRangeMax"; + // DPI_FilterRangeMin, having type double + ParameterId["FilterRangeMin"] = "filterRangeMin"; + // DPI_GeographicSearchCandidateScore, having type double + ParameterId["GeographicSearchCandidateScore"] = "geographicSearchCandidateScore"; + // DPI_HeightD, having type double + ParameterId["HeightD"] = "height"; + // DPI_InflectionFraction, having type double + ParameterId["InflectionFraction"] = "inflectionFraction"; + // DPI_InflectionValue, having type double + ParameterId["InflectionValue"] = "inflectionValue"; + // DPI_MSE, having type double + ParameterId["MSE"] = "meanSquaredError"; + // DPI_MSM, having type double + ParameterId["MSM"] = "meanSquaredModel"; + // DPI_MapScaleMarginOfError, having type double + ParameterId["MapScaleMarginOfError"] = "mapScaleMarginOfError"; + // DPI_MarkSize, having type double + ParameterId["MarkSize"] = "markSize"; + // DPI_MaxMarkSize, having type double + ParameterId["MaxMarkSize"] = "maxMarkSize"; + // DPI_MinMarkSize, having type double + ParameterId["MinMarkSize"] = "minMarkSize"; + // DPI_NotchPosition, having type double + ParameterId["NotchPosition"] = "notchPosition"; + // DPI_NotchValue, having type double + ParameterId["NotchValue"] = "notchValue"; + // DPI_PValue, having type double + ParameterId["PValue"] = "pValue"; + // DPI_PercentDimensions, having type double + ParameterId["PercentDimensions"] = "percentDimensions"; + // DPI_PercentGroups, having type double + ParameterId["PercentGroups"] = "percentGroups"; + // DPI_PercentMeasures, having type double + ParameterId["PercentMeasures"] = "percentMeasures"; + // DPI_RSquared, having type double + ParameterId["RSquared"] = "rSquared"; + // DPI_SSE, having type double + ParameterId["SSE"] = "sumSquaredError"; + // DPI_SSM, having type double + ParameterId["SSM"] = "sumSquaredModel"; + // DPI_StandardError, having type double + ParameterId["StandardError"] = "standardError"; + // DPI_TSS, having type double + ParameterId["TSS"] = "totalSumOfSquares"; + // DPI_WGSS, having type double + ParameterId["WGSS"] = "withinGroupSumOfSquares"; + // DPI_WidthD, having type double + ParameterId["WidthD"] = "width"; + // DPI_ZoomFactor, having type double + ParameterId["ZoomFactor"] = "zoomFactor"; + // DPI_CoefficientPValueVec, having type double[] + ParameterId["CoefficientPValueVec"] = "coefficientPValueVector"; + // DPI_CoefficientStdErrVec, having type double[] + ParameterId["CoefficientStdErrVec"] = "coefficientStdErrorVector"; + // DPI_CoefficientTValueVec, having type double[] + ParameterId["CoefficientTValueVec"] = "coefficientTValueVector"; + // DPI_CoefficientVec, having type double[] + ParameterId["CoefficientVec"] = "coefficientVector"; + // DPI_FStatisticVec, having type double[] + ParameterId["FStatisticVec"] = "trendLineFStatisticVector"; + // DPI_Factors, having type double[] + ParameterId["Factors"] = "factors"; + // DPI_MSEVec, having type double[] + ParameterId["MSEVec"] = "meanSquaredErrorVector"; + // DPI_Means, having type double[] + ParameterId["Means"] = "means"; + // DPI_PValueVec, having type double[] + ParameterId["PValueVec"] = "pValueVector"; + // DPI_Percentages, having type double[] + ParameterId["Percentages"] = "percentages"; + // DPI_Percentiles, having type double[] + ParameterId["Percentiles"] = "percentiles"; + // DPI_SSEVec, having type double[] + ParameterId["SSEVec"] = "sumSquaredErrorVector"; + // DPI_StDevs, having type double[] + ParameterId["StDevs"] = "stdev"; + // DPI_UnscaledMeans, having type double[] + ParameterId["UnscaledMeans"] = "unscaledMeans"; + // DPI_DeltaTimeMs, having type long + ParameterId["DeltaTimeMs"] = "deltaTimeMs"; + // DPI_ExtractHistoryRowCount, having type long + ParameterId["ExtractHistoryRowCount"] = "extractRowCount"; + // DPI_ExtractHistoryRowsRemoved, having type long + ParameterId["ExtractHistoryRowsRemoved"] = "extractRowsRemoved"; + // DPI_ExtractsSize, having type long + ParameterId["ExtractsSize"] = "extractsSize"; + // DPI_OldExtractSize, having type long + ParameterId["OldExtractSize"] = "oldExtractSize"; + // DPI_RowsInserted, having type long + ParameterId["RowsInserted"] = "rowsInserted"; + // DPI_SampleSize, having type long + ParameterId["SampleSize"] = "sampleSize"; + // DPI_SampleSpace, having type long + ParameterId["SampleSpace"] = "sampleSpace"; + // DPI_ThreadPoolUseCount, having type long + ParameterId["ThreadPoolUseCount"] = "threadPoolUseCount"; + // DPI_ActionId, having type string + ParameterId["ActionId"] = "actionId"; + // DPI_AxisColumn, having type string + ParameterId["AxisColumn"] = "axisColumn"; + // DPI_BaseColumnName, having type string + ParameterId["BaseColumnName"] = "baseColumnName"; + // DPI_BreakPointFieldName, having type string + ParameterId["BreakPointFieldName"] = "breakPointFieldName"; + // DPI_PairedFieldName, having type string + ParameterId["PairedFieldName"] = "pairedFn"; + // DPI_FieldNameAllowEmpty, having type string + ParameterId["FieldNameAllowEmpty"] = "fieldNameAllowEmpty"; + // DPI_FieldNameDisAgg, having type string + ParameterId["FieldNameDisAgg"] = "fnDisagg"; + // DPI_FieldNameLocal, having type string + ParameterId["FieldNameLocal"] = "fieldNameLocal"; + // DPI_FieldNamePrev, having type string + ParameterId["FieldNamePrev"] = "fnPrev"; + // DPI_FieldNameSource, having type string + ParameterId["FieldNameSource"] = "fnSource"; + // DPI_FieldNameTarget, having type string + ParameterId["FieldNameTarget"] = "fnTarget"; + // DPI_FieldNameX, having type string + ParameterId["FieldNameX"] = "fnX"; + // DPI_FieldNameY, having type string + ParameterId["FieldNameY"] = "fnY"; + // DPI_FieldToSort, having type string + ParameterId["FieldToSort"] = "fieldToSort"; + // DPI_GlobalFieldName, having type string + ParameterId["GlobalFieldName"] = "globalFieldName"; + // DPI_HierarchyName, having type string + ParameterId["HierarchyName"] = "hierarchyName"; + // DPI_InvalidAggFieldName, having type string + ParameterId["InvalidAggFieldName"] = "invalidAggFieldName"; + // DPI_InvalidFieldName, having type string + ParameterId["InvalidFieldName"] = "invalidFieldName"; + // DPI_LimitParameterName, having type string + ParameterId["LimitParameterName"] = "limitParameterName"; + // DPI_LocalBaseColumnName, having type string + ParameterId["LocalBaseColumnName"] = "localBaseColumnName"; + // DPI_MeasureName, having type string + ParameterId["MeasureName"] = "measureName"; + // DPI_NestedCalcField, having type string + ParameterId["NestedCalcField"] = "nestedCalcFn"; + // DPI_ParameterName, having type string + ParameterId["ParameterName"] = "parameterName"; + // DPI_ReferenceParam, having type string + ParameterId["ReferenceParam"] = "referenceParam"; + // DPI_ReplacementFieldName, having type string + ParameterId["ReplacementFieldName"] = "replacementFieldName"; + // DPI_RHSTableAlias, having type string + ParameterId["RHSTableAlias"] = "rhsTableAlias"; + // DPI_SortMeasureName, having type string + ParameterId["SortMeasureName"] = "sortMeasureName"; + // DPI_UniqueName, having type string + ParameterId["UniqueName"] = "uniqueName"; + // DPI_ValueColumn, having type string + ParameterId["ValueColumn"] = "valueColumn"; + // DPI_PairedValueColumn, having type string + ParameterId["PairedValueColumn"] = "pairedValueColumn"; + // DPI_ActionIds, having type string[] + ParameterId["ActionIds"] = "actionIds"; + // DPI_AddressingValues, having type string[] + ParameterId["AddressingValues"] = "addressingValues"; + // DPI_AllColumns, having type string[] + ParameterId["AllColumns"] = "allColumns"; + // DPI_AtTheLevelValues, having type string[] + ParameterId["AtTheLevelValues"] = "atTheLevelValues"; + // DPI_AutomaticDrillFieldName, having type string[] + ParameterId["AutomaticDrillFieldName"] = "automaticDrillFieldName"; + // DPI_BlendingFieldCandidates, having type string[] + ParameterId["BlendingFieldCandidates"] = "blendingFieldCandidates"; + // DPI_Columns, having type string[] + ParameterId["Columns"] = "columns"; + // DPI_CurrentBlendingFields, having type string[] + ParameterId["CurrentBlendingFields"] = "currentBlendingFields"; + // DPI_DimensionsToSort, having type string[] + ParameterId["DimensionsToSort"] = "dimensionsToSort"; + // DPI_DrillFieldVector, having type string[] + ParameterId["DrillFieldVector"] = "drillFieldVector"; + // DPI_EncodingFieldVector, having type string[] + ParameterId["EncodingFieldVector"] = "encodingFieldVector"; + // DPI_FieldVector, having type string[] + ParameterId["FieldVector"] = "fieldVector"; + // DPI_FilterFields, having type string[] + ParameterId["FilterFields"] = "filterFields"; + // DPI_LODFieldVector, having type string[] + ParameterId["LODFieldVector"] = "lodFieldVector"; + // DPI_LegendColumns, having type string[] + ParameterId["LegendColumns"] = "legendColumns"; + // DPI_LegendNames, having type string[] + ParameterId["LegendNames"] = "legendNames"; + // DPI_NodeColumns, having type string[] + ParameterId["NodeColumns"] = "nodeColumns"; + // DPI_PageFields, having type string[] + ParameterId["PageFields"] = "pageFields"; + // DPI_ParamValues, having type string[] + ParameterId["ParamValues"] = "paramValues"; + // DPI_RefLineFields, having type string[] + ParameterId["RefLineFields"] = "reflineFields"; + // DPI_ReferencedColumns, having type string[] + ParameterId["ReferencedColumns"] = "referencedColumns"; + // DPI_RelatedFieldNames, having type string[] + ParameterId["RelatedFieldNames"] = "relatedFieldNames"; + // DPI_RemoveActionResults, having type string[] + ParameterId["RemoveActionResults"] = "removeActionResults"; + // DPI_ResponseVector, having type string[] + ParameterId["ResponseVector"] = "responseVector"; + // DPI_RestartEveryValues, having type string[] + ParameterId["RestartEveryValues"] = "restartEveryValues"; + // DPI_ResultFields, having type string[] + ParameterId["ResultFields"] = "resultFields"; + // DPI_SortFieldValues, having type string[] + ParameterId["SortFieldValues"] = "sortFieldValues"; + // DPI_XFields, having type string[] + ParameterId["XFields"] = "xFields"; + // DPI_YFields, having type string[] + ParameterId["YFields"] = "yFields"; + // DPI_ConnectionFullName, having type string + ParameterId["ConnectionFullName"] = "connectionFullName"; + // DPI_ConnectionFullNames, having type string[] + ParameterId["ConnectionFullNames"] = "connectionFullNames"; + // DPI_BoundDataValue, having type object + ParameterId["BoundDataValue"] = "boundDataValue"; + // DPI_DataValue, having type object + ParameterId["DataValue"] = "dataValue"; + // DPI_DataValueIncrement, having type object + ParameterId["DataValueIncrement"] = "dataValueIncrement"; + // DPI_DataValueLowerX, having type object + ParameterId["DataValueLowerX"] = "dataValueLowerX"; + // DPI_DataValueLowerY, having type object + ParameterId["DataValueLowerY"] = "dataValueLowerY"; + // DPI_DataValueUpperX, having type object + ParameterId["DataValueUpperX"] = "dataValueUpperX"; + // DPI_DataValueUpperY, having type object + ParameterId["DataValueUpperY"] = "dataValueUpperY"; + // DPI_DefaultDataValue, having type object + ParameterId["DefaultDataValue"] = "defaultDataValue"; + // DPI_MaxDataValue, having type object + ParameterId["MaxDataValue"] = "maxDataValue"; + // DPI_MinDataValue, having type object + ParameterId["MinDataValue"] = "minDataValue"; + // DPI_ValidatedDataValue, having type object + ParameterId["ValidatedDataValue"] = "validatedDataValue"; + // DPI_BinSize, having type object + ParameterId["BinSize"] = "binSize"; + // DPI_LimitCount, having type object + ParameterId["LimitCount"] = "limitCount"; + // DPI_DataValueList, having type object[] + ParameterId["DataValueList"] = "dataValueList"; + // DPI_FieldCaptionPair, having type FieldCaptionPairPresModel + ParameterId["FieldCaptionPair"] = "fieldCaptionPair"; + // DPI_FieldCaptionPairs, having type FieldCaptionPairPresModel[] + ParameterId["FieldCaptionPairs"] = "fieldCaptionPairs"; + // DPI_ParameterCaptionPairs, having type FieldCaptionPairPresModel[] + ParameterId["ParameterCaptionPairs"] = "parameterCaptionPairs"; + // DPI_VaryingAttributeDimensions, having type FieldCaptionPairPresModel[] + ParameterId["VaryingAttributeDimensions"] = "varyingAttributeDimensions"; + // DPI_FieldCaptionPairState, having type FieldCaptionPairStatePresModel + ParameterId["FieldCaptionPairState"] = "fieldCaptionPairState"; + // DPI_FieldCaptionPairStates, having type FieldCaptionPairStatePresModel[] + ParameterId["FieldCaptionPairStates"] = "fieldCaptionPairStates"; + // DPI_DatasourceCaptionPair, having type DatasourceCaptionPairPresModel + ParameterId["DatasourceCaptionPair"] = "datasourceCaptionPair"; + // DPI_DatasourceCaptionPairs, having type DatasourceCaptionPairPresModel[] + ParameterId["DatasourceCaptionPairs"] = "datasourceCaptionPairs"; + // DPI_SheetNameInfoPair, having type SheetNameInfoPairPresModel + ParameterId["SheetNameInfoPair"] = "sheetNameInfoPair"; + // DPI_SheetNameInfoPairs, having type SheetNameInfoPairPresModel[] + ParameterId["SheetNameInfoPairs"] = "sheetNameInfoPairs"; + // DPI_BGActiveColor, having type string + ParameterId["BGActiveColor"] = "bgActiveColor"; + // DPI_BGColor, having type string + ParameterId["BGColor"] = "bgColor"; + // DPI_BGRestColor, having type string + ParameterId["BGRestColor"] = "bgRestColor"; + // DPI_BorderColor, having type string + ParameterId["BorderColor"] = "borderColor"; + // DPI_BorderColorBottom, having type string + ParameterId["BorderColorBottom"] = "borderColorBottom"; + // DPI_BorderColorLeft, having type string + ParameterId["BorderColorLeft"] = "borderColorLeft"; + // DPI_BorderColorRight, having type string + ParameterId["BorderColorRight"] = "borderColorRight"; + // DPI_BorderColorTop, having type string + ParameterId["BorderColorTop"] = "borderColorTop"; + // DPI_Color, having type string + ParameterId["Color"] = "color"; + // DPI_Color1, having type string + ParameterId["Color1"] = "color1"; + // DPI_Color2, having type string + ParameterId["Color2"] = "color2"; + // DPI_DefaultColor, having type string + ParameterId["DefaultColor"] = "defaultColor"; + // DPI_DistanceFontColor, having type string + ParameterId["DistanceFontColor"] = "distanceFontColor"; + // DPI_FillColor, having type string + ParameterId["FillColor"] = "fillColor"; + // DPI_FogColor, having type string + ParameterId["FogColor"] = "fogColor"; + // DPI_HeaderColor, having type string + ParameterId["HeaderColor"] = "headerColor"; + // DPI_HighlightBGColor, having type string + ParameterId["HighlightBGColor"] = "highlightBgColor"; + // DPI_HighlightTextColor, having type string + ParameterId["HighlightTextColor"] = "highlightTextColor"; + // DPI_HoverColor, having type string + ParameterId["HoverColor"] = "hoverColor"; + // DPI_MapAttributionFill, having type string + ParameterId["MapAttributionFill"] = "mapAttributionFill"; + // DPI_MapAttributionTextColor, having type string + ParameterId["MapAttributionTextColor"] = "mapAttributionTextColor"; + // DPI_MapPaneBackgroundFill, having type string + ParameterId["MapPaneBackgroundFill"] = "mapPaneBackgroundFill"; + // DPI_MapScaleBorderColor, having type string + ParameterId["MapScaleBorderColor"] = "mapScaleBorderColor"; + // DPI_MapScaleColor, having type string + ParameterId["MapScaleColor"] = "mapScaleColor"; + // DPI_MapWaitTileFill, having type string + ParameterId["MapWaitTileFill"] = "mapWaitTileFill"; + // DPI_MarkColor, having type string + ParameterId["MarkColor"] = "markColor"; + // DPI_NavArrowDisabledColor, having type string + ParameterId["NavArrowDisabledColor"] = "navArrowDisabledColor"; + // DPI_NavArrowHoverColor, having type string + ParameterId["NavArrowHoverColor"] = "navArrowHoverColor"; + // DPI_NavArrowIdleColor, having type string + ParameterId["NavArrowIdleColor"] = "navArrowIdleColor"; + // DPI_NavArrowPressedColor, having type string + ParameterId["NavArrowPressedColor"] = "navArrowPressedColor"; + // DPI_PaneColor, having type string + ParameterId["PaneColor"] = "paneColor"; + // DPI_PressColor, having type string + ParameterId["PressColor"] = "pressColor"; + // DPI_ResizeBorderColor, having type string + ParameterId["ResizeBorderColor"] = "resizeBorderColor"; + // DPI_SelectBGColor, having type string + ParameterId["SelectBGColor"] = "selectBgColor"; + // DPI_SelectionTextColor, having type string + ParameterId["SelectionTextColor"] = "selectionTextColor"; + // DPI_SwatchBackgroundColor, having type string + ParameterId["SwatchBackgroundColor"] = "swatchBgColor"; + // DPI_SwatchBorderColor, having type string + ParameterId["SwatchBorderColor"] = "swatchBorderColor"; + // DPI_TabColor, having type string + ParameterId["TabColor"] = "tabColor"; + // DPI_Colors, having type string[] + ParameterId["Colors"] = "colors"; + // DPI_ColorMap, having type Dictionary(of string) + ParameterId["ColorMap"] = "colorMap"; + // DPI_Pixmap, having type string + ParameterId["Pixmap"] = "pixmap"; + // DPI_Image, having type string + ParameterId["Image"] = "image"; + // DPI_OverlayImage, having type string + ParameterId["OverlayImage"] = "overlayImage"; + // DPI_IconImage, having type string + ParameterId["IconImage"] = "iconImage"; + // DPI_ImageList, having type string[] + ParameterId["ImageList"] = "imageList"; + // DPI_ImageMap, having type Dictionary(of string) + ParameterId["ImageMap"] = "imageMap"; + // DPI_UUID, having type object + ParameterId["UUID"] = "uuid"; + // DPI_Nanoseconds, having type object + ParameterId["Nanoseconds"] = "nanoseconds"; + // DPI_Microseconds, having type object + ParameterId["Microseconds"] = "microseconds"; + // DPI_Milliseconds, having type object + ParameterId["Milliseconds"] = "milliseconds"; + // DPI_TimeoutS, having type object + ParameterId["TimeoutS"] = "timeoutS"; + // DPI_Minutes, having type object + ParameterId["Minutes"] = "minutes"; + // DPI_Hours, having type object + ParameterId["Hours"] = "hours"; + // DPI_CardType, having type CardType + ParameterId["CardType"] = "cardType"; + // DPI_DocParameterID, having type string + ParameterId["DocParameterID"] = "type"; + // DPI_ArgumentParam, having type string + ParameterId["ArgumentParam"] = "argumentParam"; + // DPI_ArgumentParams, having type string[] + ParameterId["ArgumentParams"] = "argumentParams"; + // DPI_ActionType, having type ActionType + ParameterId["ActionType"] = "actionType"; + // DPI_AnnotateEnum, having type AnnotateEnum + ParameterId["AnnotateEnum"] = "annotateEnum"; + // DPI_JoinType, having type SQLJoinType + ParameterId["JoinType"] = "joinType"; + // DPI_SupportedJoinTypes, having type SQLJoinType[] + ParameterId["SupportedJoinTypes"] = "supportedJoinTypes"; + // DPI_Rounding, having type Rounding + ParameterId["Rounding"] = "roundingEnum"; + // DPI_BodyType, having type BodyType + ParameterId["BodyType"] = "bodyType"; + // DPI_LineEnd, having type LineEnd + ParameterId["LineEnd"] = "lineEndEnum"; + // DPI_LineEndSize, having type LineEndSize + ParameterId["LineEndSize"] = "lineEndSizeEnum"; + // DPI_BrushSpecialFields, having type BrushSpecialFields + ParameterId["BrushSpecialFields"] = "specialFields"; + // DPI_CellSizeChange, having type CellSizeChange + ParameterId["CellSizeChange"] = "cellSizeChange"; + // DPI_CellType, having type CellType + ParameterId["CellType"] = "cellType"; + // DPI_ConnectionAttemptResult, having type ConnectionAttemptResult + ParameterId["ConnectionAttemptResult"] = "connectionAttemptResult"; + // DPI_ConnectionErrorStage, having type ConnectionErrorStage + ParameterId["ConnectionErrorStage"] = "connectionErrorStage"; + // DPI_ConnectionErrorType, having type ConnectionErrorType + ParameterId["ConnectionErrorType"] = "connectionErrorType"; + // DPI_DataServerConnectionResult, having type DataServerConnectionResult + ParameterId["DataServerConnectionResult"] = "dsConnectionResult"; + // DPI_DropWhen, having type DropWhen + ParameterId["DropWhen"] = "dropWhen"; + // DPI_DropType, having type DropFieldResult + ParameterId["DropType"] = "dropType"; + // DPI_EncodingType, having type EncodingType + ParameterId["EncodingType"] = "encodingType"; + // DPI_DropdownEncodingType, having type EncodingType + ParameterId["DropdownEncodingType"] = "dropdownEncodingType"; + // DPI_EncodingTypes, having type EncodingType[] + ParameterId["EncodingTypes"] = "encodingTypes"; + // DPI_FieldOrderType, having type FieldOrderType + ParameterId["FieldOrderType"] = "fieldOrderType"; + // DPI_FilterIconType, having type FilterIconType + ParameterId["FilterIconType"] = "filterIconType"; + // DPI_FilterIconTypes, having type FilterIconType[] + ParameterId["FilterIconTypes"] = "filterIconTypes"; + // DPI_FloatingToolbarVis, having type FloatingToolbarVisibility + ParameterId["FloatingToolbarVis"] = "toolbarVisibility"; + // DPI_FolderRole, having type FolderRole + ParameterId["FolderRole"] = "folderRole"; + // DPI_LegendType, having type Enum + ParameterId["LegendType"] = "legendType"; + // DPI_ForecastModelType, having type ForecastModelType + ParameterId["ForecastModelType"] = "forecastModelType"; + // DPI_ForecastTrendType, having type ForecastComponentType + ParameterId["ForecastTrendType"] = "forecastTrendType"; + // DPI_ForecastSeasonType, having type ForecastComponentType + ParameterId["ForecastSeasonType"] = "forecastSeasonType"; + // DPI_ForecastRangeType, having type ForecastRangeType + ParameterId["ForecastRangeType"] = "forecastRangeType"; + // DPI_ForecastStatus, having type ForecastStatus + ParameterId["ForecastStatus"] = "forecastStatus"; + // DPI_SheetForecastStatus, having type ForecastStatus + ParameterId["SheetForecastStatus"] = "sheetForecastStatus"; + // DPI_PDForecastStatusList, having type ForecastStatus[] + ParameterId["PDForecastStatusList"] = "paneDescriptorForecastStatusList"; + // DPI_ForecastColumnType, having type ForecastColumnType + ParameterId["ForecastColumnType"] = "forecastColumnType"; + // DPI_DataScaling, having type DataScaling + ParameterId["DataScaling"] = "dataScaling"; + // DPI_GetFilterItemsJsonResponse, having type GetJsonResponseEnum + ParameterId["GetFilterItemsJsonResponse"] = "getFilterItemsJsonResponse"; + // DPI_FilterSearchJsonResponse, having type GetJsonResponseEnum + ParameterId["FilterSearchJsonResponse"] = "filterSearchJsonResponse"; + // DPI_FilterSearchWithIndexJsonResponse, having type GetJsonResponseEnum + ParameterId["FilterSearchWithIndexJsonResponse"] = "filterSearchWithIndexJsonResponse"; + // DPI_FilterShowChildrenJsonResponse, having type GetJsonResponseEnum + ParameterId["FilterShowChildrenJsonResponse"] = "filterShowChildrenJsonResponse"; + // DPI_HAlignment, having type LabelHAlignment + ParameterId["HAlignment"] = "horizontalLabelAlignment"; + // DPI_JoinValidationError, having type JoinValidationError + ParameterId["JoinValidationError"] = "joinValidationError"; + // DPI_NameConflictResolution, having type NameConflictResolution + ParameterId["NameConflictResolution"] = "nameConflictResolution"; + // DPI_LabelDir, having type TextOrient + ParameterId["LabelDir"] = "labelDirection"; + // DPI_LabelAlign, having type TextAlign + ParameterId["LabelAlign"] = "labelAlignment"; + // DPI_LabelWrap, having type TextWrapMode + ParameterId["LabelWrap"] = "labelWrap"; + // DPI_WrapMode, having type TextWrapMode + ParameterId["WrapMode"] = "wrapMode"; + // DPI_MarkEnum, having type MarkEnum + ParameterId["MarkEnum"] = "markEnum"; + // DPI_PercentMode, having type PercentMode + ParameterId["PercentMode"] = "percentageMode"; + // DPI_ReferenceOptionsSet, having type ReferenceOptionsSet + ParameterId["ReferenceOptionsSet"] = "referenceOptionsSet"; + // DPI_ReferenceOptionsSets, having type ReferenceOptionsSet[] + ParameterId["ReferenceOptionsSets"] = "referenceOptionsSets"; + // DPI_RankType, having type RankType + ParameterId["RankType"] = "rankType"; + // DPI_RankTypeValues, having type RankType[] + ParameterId["RankTypeValues"] = "rankTypeValues"; + // DPI_SpecialValuesMode, having type SpecialValuesMode + ParameterId["SpecialValuesMode"] = "specialValuesMode"; + // DPI_VAlignment, having type LabelVAlignment + ParameterId["VAlignment"] = "verticalLabelAlignment"; + // DPI_ColorMode, having type ColorMode + ParameterId["ColorMode"] = "colorMode"; + // DPI_MarkLabelsMode, having type MarkLabelsMode + ParameterId["MarkLabelsMode"] = "markLabelsMode"; + // DPI_MarkLabelsScope, having type MarkLabelsScope + ParameterId["MarkLabelsScope"] = "markLabelsScope"; + // DPI_MarkLabelsVisibility, having type MarkLabelsVisibility + ParameterId["MarkLabelsVisibility"] = "markLabelsVisibility"; + // DPI_PrimitiveType, having type PrimitiveType + ParameterId["PrimitiveType"] = "primitiveType"; + // DPI_ActualPrimitiveType, having type PrimitiveType + ParameterId["ActualPrimitiveType"] = "actualPrimitiveType"; + // DPI_PrimitiveTypes, having type PrimitiveType[] + ParameterId["PrimitiveTypes"] = "primitiveTypes"; + // DPI_ShapeType, having type ShapeType + ParameterId["ShapeType"] = "shapeType"; + // DPI_SortType, having type SortType + ParameterId["SortType"] = "sortBy"; + // DPI_SortEnd, having type SortEnd + ParameterId["SortEnd"] = "sortEnd"; + // DPI_StackingMode, having type StackingMode + ParameterId["StackingMode"] = "stackingMode"; + // DPI_StyleTheme, having type StyleTheme + ParameterId["StyleTheme"] = "styleTheme"; + // DPI_TrendLineFitType, having type TrendLineFitType + ParameterId["TrendLineFitType"] = "fitType"; + // DPI_UpdateScope, having type UpdateScope + ParameterId["UpdateScope"] = "updateScope"; + // DPI_ParameterCtrlDisplayMode, having type DisplayMode + ParameterId["ParameterCtrlDisplayMode"] = "paramDisplayMode"; + // DPI_ParameterCtrlDisplayFlag, having type ParameterCtrlDisplayFlag + ParameterId["ParameterCtrlDisplayFlag"] = "paramDisplayFlag"; + // DPI_Included, having type QuantitativeIncludedValues + ParameterId["Included"] = "included"; + // DPI_CommandsType, having type CommandsType + ParameterId["CommandsType"] = "commandsType"; + // DPI_ParameterDomainType, having type DomainType + ParameterId["ParameterDomainType"] = "parameterDomainType"; + // DPI_FilterDomainType, having type DomainType + ParameterId["FilterDomainType"] = "filterDomainType"; + // DPI_FilterDomains, having type DomainType[] + ParameterId["FilterDomains"] = "filterDomains"; + // DPI_CategoricalFilterType, having type CategoricalFilterType + ParameterId["CategoricalFilterType"] = "categoricalFilterType"; + // DPI_DatePeriodType, having type DatePeriodType + ParameterId["DatePeriodType"] = "datePeriodType"; + // DPI_FilterPatternType, having type PatternType + ParameterId["FilterPatternType"] = "filterPatternType"; + // DPI_FilterConditionType, having type ConditionType + ParameterId["FilterConditionType"] = "filterConditionType"; + // DPI_FiltersPresetType, having type PresetType + ParameterId["FiltersPresetType"] = "filtersPresetType"; + // DPI_FiltersRangeType, having type RangeType + ParameterId["FiltersRangeType"] = "filtersRangeType"; + // DPI_DateRangeType, having type RelativeDateRangeType + ParameterId["DateRangeType"] = "dateRangeType"; + // DPI_PageFlag, having type PageNavFlags + ParameterId["PageFlag"] = "pageFlag"; + // DPI_MarksToTrail, having type MarksToTrail + ParameterId["MarksToTrail"] = "marksToTrail"; + // DPI_TrailType, having type TrailType + ParameterId["TrailType"] = "trailType"; + // DPI_ChangePageDirection, having type ChangePageType + ParameterId["ChangePageDirection"] = "changeTo"; + // DPI_AnimationControl, having type PageAnimationControl + ParameterId["AnimationControl"] = "animationControl"; + // DPI_LinePattern, having type LinePattern + ParameterId["LinePattern"] = "linePattern"; + // DPI_LineCap, having type LineCap + ParameterId["LineCap"] = "lineCap"; + // DPI_LineJoin, having type LineJoin + ParameterId["LineJoin"] = "lineJoin"; + // DPI_LineAlignment, having type LineAlignment + ParameterId["LineAlignment"] = "lineAlignment"; + // DPI_FillMode, having type FillMode + ParameterId["FillMode"] = "fillMode"; + // DPI_CursorShape, having type CursorShape + ParameterId["CursorShape"] = "cursorShape"; + // DPI_ShowMeCommandType, having type ShowMeCommandType + ParameterId["ShowMeCommandType"] = "showMeCommandType"; + // DPI_ShelfIconType, having type ShelfIconType + ParameterId["ShelfIconType"] = "shelfIconType"; + // DPI_ShelfIconTypes, having type ShelfIconType[] + ParameterId["ShelfIconTypes"] = "shelfIconTypes"; + // DPI_ItemDrawStyle, having type ItemDrawStyle + ParameterId["ItemDrawStyle"] = "itemDrawStyle"; + // DPI_ScaleMode, having type ScaleMode + ParameterId["ScaleMode"] = "pageScaleMode"; + // DPI_PageOrientationOption, having type PageOrientation + ParameterId["PageOrientationOption"] = "pageOrientationOption"; + // DPI_PageSizeOption, having type PageSizeOption + ParameterId["PageSizeOption"] = "pageSizeOption"; + // DPI_SortRegionType, having type SortRegionType + ParameterId["SortRegionType"] = "sortRegion"; + // DPI_LegendItemLayout, having type LegendItemLayout + ParameterId["LegendItemLayout"] = "legendLayout"; + // DPI_LegendItemOrder, having type LegendItemOrder + ParameterId["LegendItemOrder"] = "legendOrder"; + // DPI_VizImageRegion, having type VizImageRegion + ParameterId["VizImageRegion"] = "r"; + // DPI_LegacyMenuName, having type LegacyMenuName + ParameterId["LegacyMenuName"] = "legacyMenuName"; + // DPI_LegacyMenuState, having type LegacyMenuState + ParameterId["LegacyMenuState"] = "legacyMenuState"; + // DPI_LegacyMenuStateList, having type LegacyMenuState[] + ParameterId["LegacyMenuStateList"] = "legacyMenuStates"; + // DPI_DimensionType, having type DimensionType + ParameterId["DimensionType"] = "dimensionType"; + // DPI_LayoutType, having type LayoutType + ParameterId["LayoutType"] = "layoutType"; + // DPI_ShelfType, having type ShelfType + ParameterId["ShelfType"] = "shelfType"; + // DPI_LastSelectionShelf, having type ShelfType + ParameterId["LastSelectionShelf"] = "lastShelf"; + // DPI_SchemaViewerDataSourceType, having type SchemaViewerDataSourceType + ParameterId["SchemaViewerDataSourceType"] = "schemaDatasourceType"; + // DPI_SchemaItemType, having type SchemaItemType + ParameterId["SchemaItemType"] = "schemaItemType"; + // DPI_HSMSelectionMode, having type SelectionMode + ParameterId["HSMSelectionMode"] = "hsmSelectionMode"; + // DPI_HSMDefaultMemberType, having type DefaultMemberType + ParameterId["HSMDefaultMemberType"] = "hsmDefaultMemberType"; + // DPI_HSMNotificationType, having type NotificationType + ParameterId["HSMNotificationType"] = "hsmNotificationType"; + // DPI_HSMSelectionRequestType, having type SelectionRequestType + ParameterId["HSMSelectionRequestType"] = "hsmSelectionRequestType"; + // DPI_HSMMemberSelectRequestType, having type MemberSelectRequestType + ParameterId["HSMMemberSelectRequestType"] = "hsmMemberSelectRequestType"; + // DPI_PivotStrategy, having type FieldPivotStrategy + ParameterId["PivotStrategy"] = "pivotStrategy"; + // DPI_AliasType, having type AliasType + ParameterId["AliasType"] = "aliasType"; + // DPI_DSODimensionSortOrder, having type DataSourceOrder + ParameterId["DSODimensionSortOrder"] = "dsoDimensionSortOrder"; + // DPI_DSOMeasureSortOrder, having type DataSourceOrder + ParameterId["DSOMeasureSortOrder"] = "dsoMeasureSortOrder"; + // DPI_DSOSortOrder, having type DataSourceOrder + ParameterId["DSOSortOrder"] = "dsoSortOrder"; + // DPI_VTAggType, having type VTAggType + ParameterId["VTAggType"] = "vtAggregation"; + // DPI_FieldTypeIconSet, having type FieldTypeIconSet + ParameterId["FieldTypeIconSet"] = "fieldIconSet"; + // DPI_VisualPart, having type VisualPart + ParameterId["VisualPart"] = "visualPart"; + // DPI_DefaultMapToolEnum, having type MapToolSelection + ParameterId["DefaultMapToolEnum"] = "defaultMapToolEnum"; + // DPI_DefaultMapUnitEnum, having type MapUnitSelectionEnum + ParameterId["DefaultMapUnitEnum"] = "defaultMapUnitEnum"; + // DPI_SceneModelDetail, having type Detail + ParameterId["SceneModelDetail"] = "sceneModelDetailEnum"; + // DPI_SceneModelHitType, having type HitType + ParameterId["SceneModelHitType"] = "sceneModelHitType"; + // DPI_HitTestStyle, having type HitTestStyle + ParameterId["HitTestStyle"] = "hitTestStyle"; + // DPI_MarkState, having type MarkState + ParameterId["MarkState"] = "markState"; + // DPI_SheetType, having type SheetType + ParameterId["SheetType"] = "sheetType"; + // DPI_DragSource, having type DragDropType + ParameterId["DragSource"] = "dragSource"; + // DPI_DropTarget, having type DragDropType + ParameterId["DropTarget"] = "dropTarget"; + // DPI_ShelfDropAction, having type ShelfDropAction + ParameterId["ShelfDropAction"] = "shelfDropAction"; + // DPI_ShelfDropContext, having type ShelfDropContext + ParameterId["ShelfDropContext"] = "shelfDropContext"; + // DPI_FilterSelectionTracking, having type SelectionTracking + ParameterId["FilterSelectionTracking"] = "filterSelectionTracking"; + // DPI_FilterUpdateType, having type FilterUpdateType + ParameterId["FilterUpdateType"] = "filterUpdateType"; + // DPI_FilterUpdateQualifierType, having type FilterUpdateQualifierType + ParameterId["FilterUpdateQualifierType"] = "filterUpdateQualifierType"; + // DPI_ParameterError, having type ParameterError + ParameterId["ParameterError"] = "parameterError"; + // DPI_SelectionType, having type SelectionType + ParameterId["SelectionType"] = "selectionType"; + // DPI_SelectionUpdateType, having type SelectionUpdateType + ParameterId["SelectionUpdateType"] = "selectionUpdateType"; + // DPI_SelectOptions, having type SelectOptions + ParameterId["SelectOptions"] = "selectOptions"; + // DPI_WhitespaceSelectionBehavior, having type WhitespaceSelectionBehavior + ParameterId["WhitespaceSelectionBehavior"] = "whitespaceSelectionBehavior"; + // DPI_AxisOrientation, having type Orientation + ParameterId["AxisOrientation"] = "axisOrientation"; + // DPI_DecimalMode, having type DecimalMode + ParameterId["DecimalMode"] = "decimalMode"; + // DPI_ActivationMethod, having type ActivationMethod + ParameterId["ActivationMethod"] = "activation"; + // DPI_SourceType, having type SourceType + ParameterId["SourceType"] = "sourceType"; + // DPI_OnClear, having type OnClear + ParameterId["OnClear"] = "onClear"; + // DPI_MergeOrSplit, having type MergeOrSplit + ParameterId["MergeOrSplit"] = "mergeOrSplit"; + // DPI_FilterMode, having type FilterMode + ParameterId["FilterMode"] = "filterMode"; + // DPI_FilterType, having type FilterType + ParameterId["FilterType"] = "filterType"; + // DPI_ZoneType, having type ZoneType + ParameterId["ZoneType"] = "zoneType"; + // DPI_ZoneLayoutType, having type ZoneLayoutType + ParameterId["ZoneLayoutType"] = "zoneLayoutType"; + // DPI_QuickTableCalcType, having type QuickTableCalcCommandType + ParameterId["QuickTableCalcType"] = "quickTableCalcType"; + // DPI_TableCalcCommandType, having type TableCalcCommandType + ParameterId["TableCalcCommandType"] = "tableCalcCommandType"; + // DPI_TableCalcAddressType, having type TableCalcAddressCommandType + ParameterId["TableCalcAddressType"] = "tableCalcAddressType"; + // DPI_MarkLayoutPrimitive, having type Primitive + ParameterId["MarkLayoutPrimitive"] = "markLayoutPrimitive"; + // DPI_MarkLayoutVizType, having type VizType + ParameterId["MarkLayoutVizType"] = "markLayoutVizType"; + // DPI_MarkAlignment, having type MarkAlignment + ParameterId["MarkAlignment"] = "markAlignment"; + // DPI_ModifyZoneZOrderType, having type ModifyZoneZOrderCommandType + ParameterId["ModifyZoneZOrderType"] = "modifyZoneZOrderType"; + // DPI_TextRegionHAlign, having type TextRegionHAlign + ParameterId["TextRegionHAlign"] = "halign"; + // DPI_TextRegionVAlign, having type TextRegionVAlign + ParameterId["TextRegionVAlign"] = "valign"; + // DPI_PathElement, having type PathElement + ParameterId["PathElement"] = "pathElement"; + // DPI_PathElements, having type PathElement[] + ParameterId["PathElements"] = "pathElements"; + // DPI_RenderMode, having type RenderMode + ParameterId["RenderMode"] = "renderMode"; + // DPI_FontStyle, having type TableauFontStyle + ParameterId["FontStyle"] = "fontStyle"; + // DPI_FontWeight, having type FontWeight + ParameterId["FontWeight"] = "fontWeight"; + // DPI_TextDecoration, having type TextDecoration + ParameterId["TextDecoration"] = "textDecoration"; + // DPI_BorderStyle, having type BorderStyle + ParameterId["BorderStyle"] = "borderStyle"; + // DPI_BorderStyleTop, having type BorderStyle + ParameterId["BorderStyleTop"] = "borderStyleTop"; + // DPI_BorderStyleRight, having type BorderStyle + ParameterId["BorderStyleRight"] = "borderStyleRight"; + // DPI_BorderStyleBottom, having type BorderStyle + ParameterId["BorderStyleBottom"] = "borderStyleBottom"; + // DPI_BorderStyleLeft, having type BorderStyle + ParameterId["BorderStyleLeft"] = "borderStyleLeft"; + // DPI_FloatingToolbarVisibility, having type FloatingToolbarVisibility + ParameterId["FloatingToolbarVisibility"] = "floatingToolbarVisibility"; + // DPI_GeoSearchVisibility, having type GeoSearchVisibility + ParameterId["GeoSearchVisibility"] = "geographicSearchVisibility"; + // DPI_MapScaleVisibility, having type MapScaleVisibility + ParameterId["MapScaleVisibility"] = "mapScaleVisibility"; + // DPI_VizNavigationSetting, having type VizNavigationSetting + ParameterId["VizNavigationSetting"] = "vizNavigationSetting"; + // DPI_AutoDrillVisibility, having type AutoDrillVisibility + ParameterId["AutoDrillVisibility"] = "autoDrillVisibility"; + // DPI_ClientUIMetricType, having type ClientUIMetricType + ParameterId["ClientUIMetricType"] = "clientUiMetricType"; + // DPI_SheetScrollDirection, having type SheetScrollDirection + ParameterId["SheetScrollDirection"] = "sheetScrollDirection"; + // DPI_SizeMode, having type SizeMode + ParameterId["SizeMode"] = "sizeMode"; + // DPI_PerspectiveAggregate, having type PerspectiveAggregate + ParameterId["PerspectiveAggregate"] = "perspectiveAggregation"; + // DPI_StyleAttribute, having type StyleAttribute + ParameterId["StyleAttribute"] = "styleAttribute"; + // DPI_StyleAttributes, having type StyleAttribute[] + ParameterId["StyleAttributes"] = "styleAttributes"; + // DPI_StyleElement, having type StyleElement + ParameterId["StyleElement"] = "styleElement"; + // DPI_StyleDataClass, having type StyleDataClass + ParameterId["StyleDataClass"] = "styleClass"; + // DPI_StyleFieldScope, having type StyleFieldScope + ParameterId["StyleFieldScope"] = "styleScope"; + // DPI_FormatControlType, having type FormatControlType + ParameterId["FormatControlType"] = "formatType"; + // DPI_LineInterpolationMode, having type LineInterpolationMode + ParameterId["LineInterpolationMode"] = "lineInterpolationMode"; + // DPI_LineMarkerPosition, having type LineMarkerPosition + ParameterId["LineMarkerPosition"] = "lineMarkerPosition"; + // DPI_MarkersMode, having type MarkMarkersMode + ParameterId["MarkersMode"] = "markersMode"; + // DPI_AppConfigEnum, having type AppConfigEnum + ParameterId["AppConfigEnum"] = "appConfigEnum"; + // DPI_ColorPaletteType, having type ColorPaletteType + ParameterId["ColorPaletteType"] = "colorPaletteType"; + // DPI_ExtractType, having type ExtractType + ParameterId["ExtractType"] = "extractType"; + // DPI_ActivityDisposition, having type ActivityDisposition + ParameterId["ActivityDisposition"] = "activityDisposition"; + // DPI_ActivityResult, having type ActivityResult + ParameterId["ActivityResult"] = "activityResult"; + // DPI_TooltipMode, having type TooltipMode + ParameterId["TooltipMode"] = "tooltipMode"; + // DPI_RuntimeOutput, having type RuntimeOutput + ParameterId["RuntimeOutput"] = "runtimeOutput"; + // DPI_AnalyticsObjectType, having type AnalyticsObjectType + ParameterId["AnalyticsObjectType"] = "analyticsObjectType"; + // DPI_UIAutomationStatus, having type UIAutomationCommandStatus + ParameterId["UIAutomationStatus"] = "uiAutomationStatus"; + // DPI_TableViewDataType, having type TableViewDataType + ParameterId["TableViewDataType"] = "tableViewerDataType"; + // DPI_UnitsFormat, having type UnitsFormatEnum + ParameterId["UnitsFormat"] = "unitsFormat"; + // DPI_FilterLimitType, having type LimitType + ParameterId["FilterLimitType"] = "filterLimitType"; + // DPI_DistributionSelectedType, having type DistributionType + ParameterId["DistributionSelectedType"] = "distributionSelectedType"; + // DPI_DistributionType, having type DistributionType + ParameterId["DistributionType"] = "distributionType"; + // DPI_TranslatedDistributionType, having type TranslatedDistributionTypePresModel + ParameterId["TranslatedDistributionType"] = "translatedDistributionType"; + // DPI_TranslatedDistributionTypes, having type TranslatedDistributionTypePresModel[] + ParameterId["TranslatedDistributionTypes"] = "translatedDistributionTypes"; + // DPI_RefLineFormulaGroup, having type FormulaGroup + ParameterId["RefLineFormulaGroup"] = "reflineFormulaGroup"; + // DPI_ReferenceLineScopeType, having type ScopeType + ParameterId["ReferenceLineScopeType"] = "referenceLineScopeType"; + // DPI_StDevType, having type StDevType + ParameterId["StDevType"] = "stdevType"; + // DPI_ShowBounds, having type ShowBounds + ParameterId["ShowBounds"] = "showBounds"; + // DPI_BoxplotWhiskerType, having type BoxplotWhiskerType + ParameterId["BoxplotWhiskerType"] = "boxplotWhiskerType"; + // DPI_ReferenceLineLabelType, having type LabelType + ParameterId["ReferenceLineLabelType"] = "referenceLineLabelType"; + // DPI_PairedReferenceLineLabelType, having type LabelType + ParameterId["PairedReferenceLineLabelType"] = "pairedReferenceLineLabelType"; + // DPI_ConfidenceIntervalSelectedState, having type ConfidenceIntervalState + ParameterId["ConfidenceIntervalSelectedState"] = "confidenceIntervalSelectedState"; + // DPI_ConfidenceIntervalState, having type ConfidenceIntervalState + ParameterId["ConfidenceIntervalState"] = "confidenceIntervalState"; + // DPI_TranslatedLabelType, having type TranslatedLabelTypePresModel + ParameterId["TranslatedLabelType"] = "translatedLabelType"; + // DPI_ReferenceLineValidLabelTypes, having type TranslatedLabelTypePresModel[] + ParameterId["ReferenceLineValidLabelTypes"] = "validReferenceLineLabelTypes"; + // DPI_ReferenceLineFormulaType, having type FormulaType + ParameterId["ReferenceLineFormulaType"] = "referenceLineFormulaType"; + // DPI_PairedReferenceLineFormulaType, having type FormulaType + ParameterId["PairedReferenceLineFormulaType"] = "pairedReferenceLineFormulaType"; + // DPI_TranslatedFormulaType, having type TranslatedFormulaTypePresModel + ParameterId["TranslatedFormulaType"] = "translatedFormulaType"; + // DPI_ReferenceLineValidFormulaTypes, having type TranslatedFormulaTypePresModel[] + ParameterId["ReferenceLineValidFormulaTypes"] = "validReferenceLineFormulaTypes"; + // DPI_ReferenceLineValidPairedFormulaTypes, having type TranslatedFormulaTypePresModel[] + ParameterId["ReferenceLineValidPairedFormulaTypes"] = "validReferenceLinePairedFormulaTypes"; + // DPI_TranslatedConfidenceIntervalState, having type TranslatedConfidenceIntervalStatePresModel + ParameterId["TranslatedConfidenceIntervalState"] = "translatedConfidenceIntervalState"; + // DPI_TranslatedConfidenceIntervalStates, having type TranslatedConfidenceIntervalStatePresModel[] + ParameterId["TranslatedConfidenceIntervalStates"] = "translatedConfidenceIntervalStates"; + // DPI_TranslatedStDevType, having type TranslatedStDevTypePresModel + ParameterId["TranslatedStDevType"] = "translatedStdevType"; + // DPI_TranslatedStDevTypes, having type TranslatedStDevTypePresModel[] + ParameterId["TranslatedStDevTypes"] = "translatedStdevTypes"; + // DPI_ReferenceLineLODCalcType, having type LODCalcType + ParameterId["ReferenceLineLODCalcType"] = "referenceLineLodCalcType"; + // DPI_ValueDomainType, having type ValueDomainType + ParameterId["ValueDomainType"] = "valueDomainType"; + // DPI_ValueDomainTypes, having type ValueDomainType[] + ParameterId["ValueDomainTypes"] = "valueDomainTypes"; + // DPI_OperationType, having type OperationType + ParameterId["OperationType"] = "operationType"; + // DPI_OperationTypes, having type OperationType[] + ParameterId["OperationTypes"] = "operationTypes"; + // DPI_ConnectionTypeCategory, having type ConnectionTypeCategory + ParameterId["ConnectionTypeCategory"] = "connectionTypeCategory"; + // DPI_ConnectionTypeGroup, having type ConnectionTypeGroup + ParameterId["ConnectionTypeGroup"] = "connectionTypeGroup"; + // DPI_CommandRedirectType, having type CommandRedirectType + ParameterId["CommandRedirectType"] = "commandRedirectType"; + // DPI_CustomSplitMode, having type SplitMode + ParameterId["CustomSplitMode"] = "customSplitMode"; + // DPI_CustomSplitSeparatorType, having type SeparatorType + ParameterId["CustomSplitSeparatorType"] = "customSplitSeparatorType"; + // DPI_LevelSelectionState, having type LevelSelectionState + ParameterId["LevelSelectionState"] = "levelSelectionState"; + // DPI_LevelSelectionStates, having type LevelSelectionState[] + ParameterId["LevelSelectionStates"] = "levelSelectionStates"; + // DPI_SourceDestIcon, having type SourceDestIcon + ParameterId["SourceDestIcon"] = "sourceDestIcon"; + // DPI_LegendLayout, having type LegendLayout + ParameterId["LegendLayout"] = "pageLegendLayout"; + // DPI_ImagesEditResultCode, having type ImagesEditResultCode + ParameterId["ImagesEditResultCode"] = "imagesEditResultCode"; + // DPI_CalculationContext, having type CalculationContext + ParameterId["CalculationContext"] = "calculationContext"; + // DPI_WorkgroupPublishErrorType, having type WorkgroupPublishErrorType + ParameterId["WorkgroupPublishErrorType"] = "workgroupPublishErrorType"; + // DPI_IsParameter, having type TriBool + ParameterId["IsParameter"] = "isParameter"; + // DPI_AddressingState, having type WidgetState + ParameterId["AddressingState"] = "addressingState"; + // DPI_AllPagesState, having type WidgetState + ParameterId["AllPagesState"] = "allPagesState"; + // DPI_AtTheLevelState, having type WidgetState + ParameterId["AtTheLevelState"] = "atTheLevelState"; + // DPI_ComputeCompoundedRateState, having type WidgetState + ParameterId["ComputeCompoundedRateState"] = "computeCompoundedRateState"; + // DPI_CustomNullIfIncompleteState, having type WidgetState + ParameterId["CustomNullIfIncompleteState"] = "customNullIfIncompleteState"; + // DPI_NestedCalcsState, having type WidgetState + ParameterId["NestedCalcsState"] = "nestedCalcsState"; + // DPI_RankTypeState, having type WidgetState + ParameterId["RankTypeState"] = "rankTypeState"; + // DPI_ReferenceOptionsState, having type WidgetState + ParameterId["ReferenceOptionsState"] = "referenceOptionsState"; + // DPI_RestartEveryState, having type WidgetState + ParameterId["RestartEveryState"] = "restartEveryState"; + // DPI_SortAggState, having type WidgetState + ParameterId["SortAggState"] = "sortAggState"; + // DPI_SortState, having type WidgetState + ParameterId["SortState"] = "sortState"; + // DPI_TableCalcTypeState, having type WidgetState + ParameterId["TableCalcTypeState"] = "tableCalcTypeState"; + // DPI_TableCalcAssistanceWidgetState, having type WidgetState + ParameterId["TableCalcAssistanceWidgetState"] = "tableCalcAssistanceWidgetState"; + // DPI_CalcNestingLevel, having type CalcNestingLevel + ParameterId["CalcNestingLevel"] = "calcNestingLevel"; + // DPI_DataProviderType, having type DataProviderType + ParameterId["DataProviderType"] = "dataProviderType"; + // DPI_HeuristicCommandReinterpretation, having type HeuristicCommandReinterpretation + ParameterId["HeuristicCommandReinterpretation"] = "heuristicCommandReinterpretation"; + // DPI_ExtractRefreshStatus, having type ExtractRefreshStatus + ParameterId["ExtractRefreshStatus"] = "extractRefreshStatus"; + // DPI_RichTextEditorWidgetKey, having type RichTextEditorWidgetKey + ParameterId["RichTextEditorWidgetKey"] = "richTextEditorWidgetKey"; + // DPI_RichTextWidgetKeys, having type RichTextEditorWidgetKey[] + ParameterId["RichTextWidgetKeys"] = "richTextWidgetKeys"; + // DPI_TypeOfFormatItem, having type TypeOfFormatItem + ParameterId["TypeOfFormatItem"] = "typeOfFormatItem"; + // DPI_TypeOfFormatContainer, having type TypeOfFormatContainer + ParameterId["TypeOfFormatContainer"] = "typeOfFormatContainer"; + // DPI_TypeOfFormatControl, having type TypeOfFormatControl + ParameterId["TypeOfFormatControl"] = "typeOfFormatControl"; + // DPI_FormatWidgetKey, having type FormatWidgetKey + ParameterId["FormatWidgetKey"] = "formatWidgetKey"; + // DPI_ColorSwatchType, having type ColorSwatchType + ParameterId["ColorSwatchType"] = "formatColorSwatchType"; + // DPI_PickerType, having type PickerType + ParameterId["PickerType"] = "pickerType"; + // DPI_ExtractHistoryRefreshType, having type RefreshType + ParameterId["ExtractHistoryRefreshType"] = "extractHistoryRefreshTypeEnum"; + // DPI_AxisFoldState, having type AxisFoldState + ParameterId["AxisFoldState"] = "axisFoldState"; + // DPI_TickMarkSpacingUnits, having type TickSpacingUnits + ParameterId["TickMarkSpacingUnits"] = "tickSpacingUnits"; + // DPI_TickMarkState, having type TickMarkState + ParameterId["TickMarkState"] = "tickMarkState"; + // DPI_AxisRangeType, having type AxisRangeType + ParameterId["AxisRangeType"] = "axisRangeType"; + // DPI_ScaleType, having type ScaleType + ParameterId["ScaleType"] = "scaleType"; + // DPI_DashboardDeviceLayout, having type DashboardDeviceLayout + ParameterId["DashboardDeviceLayout"] = "dashboardDeviceLayout"; + // DPI_ActivateDeviceLayout, having type DashboardDeviceLayout + ParameterId["ActivateDeviceLayout"] = "activateDeviceLayout"; + // DPI_DashboardDeviceLayouts, having type DashboardDeviceLayout[] + ParameterId["DashboardDeviceLayouts"] = "dashboardDeviceLayouts"; + // DPI_DeviceSource, having type DeviceSource + ParameterId["DeviceSource"] = "deviceSource"; + // DPI_DashboardSizingDimension, having type DashboardSizingDimension + ParameterId["DashboardSizingDimension"] = "dashboardSizingDimension"; + // DPI_GridOverlayMode, having type GridOverlayMode + ParameterId["GridOverlayMode"] = "gridOverlayMode"; + // DPI_DashboardSizingMode, having type DashboardSizingMode + ParameterId["DashboardSizingMode"] = "dashboardSizingMode"; + // DPI_FlipboardNavType, having type FlipboardNavType + ParameterId["FlipboardNavType"] = "flipboardNavType"; + // DPI_FieldPickerDialogUseCase, having type FieldPickerDialogUseCase + ParameterId["FieldPickerDialogUseCase"] = "fieldPickerDialogUseCase"; + // DPI_StartOfWeekEnum, having type SOWValue + ParameterId["StartOfWeekEnum"] = "startOfWeekEnum"; + // DPI_StartOfFiscalYear, having type FYSValues + ParameterId["StartOfFiscalYear"] = "startOfFiscalYear"; + // DPI_TotalsInclusionValue, having type TotalsInclusion + ParameterId["TotalsInclusionValue"] = "totalsInclusionValue"; + // DPI_FormatCode, having type FormatCode + ParameterId["FormatCode"] = "formatCode"; + // DPI_FindType, having type FindType + ParameterId["FindType"] = "findType"; + // DPI_PerspectiveType, having type PerspectiveType + ParameterId["PerspectiveType"] = "perspectiveType"; + // DPI_GeometryType, having type GeometryType + ParameterId["GeometryType"] = "geometryType"; + // DPI_PaneLabelComposition, having type PaneLabelComposition + ParameterId["PaneLabelComposition"] = "paneLabelComposition"; + // DPI_WarningType, having type WarningType + ParameterId["WarningType"] = "warningType"; + // DPI_UIMode, having type WorkbookUIMode + ParameterId["UIMode"] = "uiMode"; + // DPI_MenuItemId, having type TopLevelMenuItem + ParameterId["MenuItemId"] = "menuItemId"; + // DPI_CommandReturn, having type object + ParameterId["CommandReturn"] = "commandReturn"; + // DPI_LegacyPresModel, having type object + ParameterId["LegacyPresModel"] = "legacyPresModel"; + // DPI_PresentationModel, having type object + ParameterId["PresentationModel"] = "presModelHolder"; + // DPI_Event, having type object + ParameterId["Event"] = "eventContainer"; + // DPI_LineStyle, having type Array + ParameterId["LineStyle"] = "lineStyle"; + // DPI_StrokeStyle, having type Array + ParameterId["StrokeStyle"] = "strokeStyle"; + // DPI_Schema, having type Array + ParameterId["Schema"] = "schema"; + // DPI_StartTuple, having type Array + ParameterId["StartTuple"] = "startTuple"; + // DPI_EndTuple, having type Array + ParameterId["EndTuple"] = "endTuple"; + // DPI_Tuple, having type Array + ParameterId["Tuple"] = "tuple"; + // DPI_Tuples, having type Array[] + ParameterId["Tuples"] = "tuples"; + // DPI_CustomDomainTuples, having type Array[] + ParameterId["CustomDomainTuples"] = "customDomainTuples"; + // DPI_UpdatedTuples, having type Array[] + ParameterId["UpdatedTuples"] = "updatedTuples"; + // DPI_Table, having type Array + ParameterId["Table"] = "table"; + // DPI_AliasedValue, having type Array + ParameterId["AliasedValue"] = "valueAlias"; + // DPI_FirstAliasedValue, having type Array + ParameterId["FirstAliasedValue"] = "firstAlisedValue"; + // DPI_MaximumRange, having type Array + ParameterId["MaximumRange"] = "maximumRangeValue"; + // DPI_MinimumRange, having type Array + ParameterId["MinimumRange"] = "minimumRangeValue"; + // DPI_SecondAliasedValue, having type Array + ParameterId["SecondAliasedValue"] = "secondAlisedValue"; + // DPI_AliasedSelectionList, having type Array[] + ParameterId["AliasedSelectionList"] = "aliasedSelectionList"; + // DPI_AliasedValues, having type Array[] + ParameterId["AliasedValues"] = "valuesAliases"; + // DPI_VerboseAliasedRangeMax, having type Array + ParameterId["VerboseAliasedRangeMax"] = "verboseAliasedRangeMax"; + // DPI_VerboseAliasedValue, having type Array + ParameterId["VerboseAliasedValue"] = "verboseAliasedValue"; + // DPI_MultiBucket, having type MultiBucket + ParameterId["MultiBucket"] = "xValues"; + // DPI_PageName, having type PageName + ParameterId["PageName"] = "pageName"; + // DPI_Selector, having type object + ParameterId["Selector"] = "selector"; + // DPI_PaneId, having type object + ParameterId["PaneId"] = "paneId"; + // DPI_PaneIds, having type PaneId[] + ParameterId["PaneIds"] = "paneIds"; + // DPI_ImageRegionInfo, having type object + ParameterId["ImageRegionInfo"] = "vizRegionRect"; + // DPI_ImageRegionInfoList, having type object[] + ParameterId["ImageRegionInfoList"] = "vizRegionRectList"; + // DPI_VisualID, having type VisualID + ParameterId["VisualID"] = "visualId"; + // DPI_VisualIDPM, having type VisualIDPresModel + ParameterId["VisualIDPM"] = "visualIdPresModel"; + // DPI_InvalidSheets, having type VisualIDPresModel[] + ParameterId["InvalidSheets"] = "invalidSheets"; + // DPI_VisualIDPMs, having type VisualIDPresModel[] + ParameterId["VisualIDPMs"] = "visualIds"; + // DPI_SheetPathPM, having type SheetPathPresModel + ParameterId["SheetPathPM"] = "sheetPath"; + // DPI_CapturedSheetPM, having type SheetPathPresModel + ParameterId["CapturedSheetPM"] = "capturedSheetPm"; + // DPI_CurrentSheetPM, having type SheetPathPresModel + ParameterId["CurrentSheetPM"] = "currentSheetPm"; + // DPI_DashboardPM, having type SheetPathPresModel + ParameterId["DashboardPM"] = "dashboardPm"; + // DPI_NewSheetPM, having type SheetPathPresModel + ParameterId["NewSheetPM"] = "newSheetPm"; + // DPI_SheetNamePM, having type SheetPathPresModel + ParameterId["SheetNamePM"] = "sheetNamePm"; + // DPI_SheetPM, having type SheetPathPresModel + ParameterId["SheetPM"] = "sheetPm"; + // DPI_SourceDashboardPM, having type SheetPathPresModel + ParameterId["SourceDashboardPM"] = "sourceDashboardPm"; + // DPI_SourceSheetPM, having type SheetPathPresModel + ParameterId["SourceSheetPM"] = "sourceSheetPm"; + // DPI_TargetSheetPM, having type SheetPathPresModel + ParameterId["TargetSheetPM"] = "targetSheetPm"; + // DPI_WorksheetPM, having type SheetPathPresModel + ParameterId["WorksheetPM"] = "worksheetPm"; + // DPI_ModifiedSheets, having type SheetPathPresModel[] + ParameterId["ModifiedSheets"] = "modifiedSheets"; + // DPI_DataColumn, having type DataColumnPresModel + ParameterId["DataColumn"] = "dataColumn"; + // DPI_DataColumns, having type DataColumnPresModel[] + ParameterId["DataColumns"] = "dataColumns"; + // DPI_Addresses, having type DataColumnPresModel[] + ParameterId["Addresses"] = "addresses"; + // DPI_EncodingColumns, having type Dictionary(of DataColumnPresModel) + ParameterId["EncodingColumns"] = "encodingColumns"; + // DPI_TextRunColumns, having type Dictionary(of DataColumnPresModel) + ParameterId["TextRunColumns"] = "textRunColumns"; + // DPI_TextStyleColumns, having type Dictionary(of DataColumnPresModel) + ParameterId["TextStyleColumns"] = "textStyleColumns"; + // DPI_NamedDataColumn, having type NamedDataColumnPresModel + ParameterId["NamedDataColumn"] = "namedDataColumn"; + // DPI_NamedDataColumns, having type NamedDataColumnPresModel[] + ParameterId["NamedDataColumns"] = "namedDataColumns"; + // DPI_DataTable, having type DataTablePresModel + ParameterId["DataTable"] = "dataTable"; + // DPI_ActionSpecification, having type None + ParameterId["ActionSpecification"] = "actionSpec"; + // DPI_Column, having type Column + ParameterId["Column"] = "columnContext"; + // DPI_SetFunction, having type SetFunction + ParameterId["SetFunction"] = "setFunction"; + // DPI_SetFunctions, having type SetFunctions + ParameterId["SetFunctions"] = "setFunctions"; + // DPI_VisualProfileShowMe, having type VisualProfileShowMe + ParameterId["VisualProfileShowMe"] = "vpsm"; + // DPI_DataSourcePtr, having type DataSource + ParameterId["DataSourcePtr"] = "datasourcePtr"; + // DPI_WorkgroupConnection, having type WorkgroupConnection + ParameterId["WorkgroupConnection"] = "workgroupConnection"; + // DPI_Authenticator, having type AuthenticatorRawPtr + ParameterId["Authenticator"] = "authenticator"; + // DPI_UpgradeAttr, having type UpgradeAttr + ParameterId["UpgradeAttr"] = "upgradeAttr"; + // DPI_ExtractAttr, having type ExtractAttr + ParameterId["ExtractAttr"] = "extractAttr"; + // DPI_RefreshAttr, having type RefreshAttr + ParameterId["RefreshAttr"] = "refreshAttr"; + // DPI_ContextSpecification, having type ContextSpecification + ParameterId["ContextSpecification"] = "contextSpecification"; + // DPI_SchemaViewerSelector, having type SchemaViewerSelectorPtr + ParameterId["SchemaViewerSelector"] = "schemaViewerSelector"; + // DPI_Buckets, having type Buckets + ParameterId["Buckets"] = "buckets"; + // DPI_LegendItems, having type MultiBuckets + ParameterId["LegendItems"] = "legendItems"; + // DPI_LegendItem, having type MultiBucket + ParameterId["LegendItem"] = "legendItem"; + // DPI_SourceItem, having type MultiBucket + ParameterId["SourceItem"] = "sourceItem"; + // DPI_DestItem, having type MultiBucket + ParameterId["DestItem"] = "destItem"; + // DPI_IQuickSortState, having type IQuickSortState + ParameterId["IQuickSortState"] = "quickSortState"; + // DPI_AppBuildDate, having type DateTime + ParameterId["AppBuildDate"] = "appBuildDate"; + // DPI_ForecastDateRangeEnd, having type DateTime + ParameterId["ForecastDateRangeEnd"] = "forecastDateRangeEnd"; + // DPI_ForecastDateRangeStart, having type DateTime + ParameterId["ForecastDateRangeStart"] = "forecastDateRangeStart"; + // DPI_LastModified, having type DateTime + ParameterId["LastModified"] = "lastModified"; + // DPI_SearchDomainPtr, having type MultiDomain + ParameterId["SearchDomainPtr"] = "searchDomainPtr"; + // DPI_ResultsDomainPtr, having type MultiDomain + ParameterId["ResultsDomainPtr"] = "resultsDomainPtr"; + // DPI_Actions, having type object + ParameterId["Actions"] = "actions"; + // DPI_SRCommands, having type object + ParameterId["SRCommands"] = "selectionRelaxationCommands"; + // DPI_Commands, having type object + ParameterId["Commands"] = "commands"; + // DPI_DataTypeCommands, having type object + ParameterId["DataTypeCommands"] = "datatypeCommands"; + // DPI_MultiSelectCommands, having type object + ParameterId["MultiSelectCommands"] = "multiselectCommands"; + // DPI_NonVizCommands, having type object + ParameterId["NonVizCommands"] = "nonVizCommands"; + // DPI_QuickFilterCommands, having type object + ParameterId["QuickFilterCommands"] = "quickFilterCommands"; + // DPI_ShowMeCommands, having type object + ParameterId["ShowMeCommands"] = "showMeCommands"; + // DPI_SortIndicatorMenu, having type object + ParameterId["SortIndicatorMenu"] = "sortIndicatorMenu"; + // DPI_StandardCommands, having type object + ParameterId["StandardCommands"] = "standardCommands"; + // DPI_VizCommands, having type object + ParameterId["VizCommands"] = "vizCommands"; + // DPI_ZoneChromeCommands, having type object + ParameterId["ZoneChromeCommands"] = "zoneChromeCommands"; + // DPI_CommandItem, having type CommandsItem + ParameterId["CommandItem"] = "commandItem"; + // DPI_CommandItems, having type CommandsItem[] + ParameterId["CommandItems"] = "commandItems"; + // DPI_Command, having type SimpleCommandsPresModel + ParameterId["Command"] = "simpleCommandModel"; + // DPI_AddCommand, having type SimpleCommandsPresModel + ParameterId["AddCommand"] = "addSimpleCommandModel"; + // DPI_RemoveCommand, having type SimpleCommandsPresModel + ParameterId["RemoveCommand"] = "removeSimpleCommandModel"; + // DPI_AcceptCommand, having type SimpleCommandsPresModel + ParameterId["AcceptCommand"] = "acceptSimpleCommandModel"; + // DPI_DeclineCommand, having type SimpleCommandsPresModel + ParameterId["DeclineCommand"] = "declineSimpleCommandModel"; + // DPI_DropCommand, having type SimpleCommandsPresModel + ParameterId["DropCommand"] = "dropCommandModel"; + // DPI_EditCaptionCommand, having type SimpleCommandsPresModel + ParameterId["EditCaptionCommand"] = "editCaptionCommandModel"; + // DPI_FontCommand, having type SimpleCommandsPresModel + ParameterId["FontCommand"] = "fontCommandModel"; + // DPI_LineStyleCommand, having type SimpleCommandsPresModel + ParameterId["LineStyleCommand"] = "lineStyleCommandModel"; + // DPI_FormatCommand, having type SimpleCommandsPresModel + ParameterId["FormatCommand"] = "formatCommandModel"; + // DPI_DestructorCommand, having type SimpleCommandsPresModel + ParameterId["DestructorCommand"] = "destructorCommand"; + // DPI_ClearFormatCommand, having type SimpleCommandsPresModel + ParameterId["ClearFormatCommand"] = "clearFormatCommandModel"; + // DPI_RichTextCommand, having type SimpleCommandsPresModel + ParameterId["RichTextCommand"] = "richTextCommandModel"; + // DPI_SortIndicatorCommand, having type SimpleCommandsPresModel + ParameterId["SortIndicatorCommand"] = "sortIndicatorCommand"; + // DPI_CommandList, having type SimpleCommandsPresModel[] + ParameterId["CommandList"] = "commandList"; + // DPI_ParameterCtrl, having type ParameterCtrlPresModel + ParameterId["ParameterCtrl"] = "parameterControl"; + // DPI_ParameterCtrls, having type ParameterCtrlPresModel[] + ParameterId["ParameterCtrls"] = "parameterControls"; + // DPI_PageModel, having type PagePresModel + ParameterId["PageModel"] = "pageModel"; + // DPI_PageTrailOptions, having type PageTrailOptionsPresModel + ParameterId["PageTrailOptions"] = "pageTrailOptions"; + // DPI_Field, having type FieldPresModel + ParameterId["Field"] = "field"; + // DPI_FieldList, having type FieldPresModel[] + ParameterId["FieldList"] = "fieldList"; + // DPI_FieldColumn, having type FieldColumnPresModel + ParameterId["FieldColumn"] = "column"; + // DPI_FieldColumnList, having type FieldColumnPresModel[] + ParameterId["FieldColumnList"] = "columnList"; + // DPI_Parameter, having type ParameterPresModel + ParameterId["Parameter"] = "parameter"; + // DPI_Dimension, having type DimensionPresModel + ParameterId["Dimension"] = "dimension"; + // DPI_AttributeDimensionList, having type DimensionPresModel[] + ParameterId["AttributeDimensionList"] = "attributeDimensionList"; + // DPI_RelationalTable, having type RelationalTablePresModel + ParameterId["RelationalTable"] = "relationalTable"; + // DPI_DrillPath, having type DrillPathPresModel + ParameterId["DrillPath"] = "drillPath"; + // DPI_FieldFolder, having type FieldFolderPresModel + ParameterId["FieldFolder"] = "fieldFolder"; + // DPI_Group, having type GroupPresModel + ParameterId["Group"] = "group"; + // DPI_Hierarchy, having type HierarchyPresModel + ParameterId["Hierarchy"] = "hierarchy"; + // DPI_HierarchyList, having type HierarchyPresModel[] + ParameterId["HierarchyList"] = "hierarchyList"; + // DPI_HierarchyMemberSelectedState, having type HierarchySelect_MemberSelectedStatePresModel + ParameterId["HierarchyMemberSelectedState"] = "hierarchyMemberSelectedState"; + // DPI_HierarchySelectionChanges, having type HierarchySelect_MemberSelectedStatePresModel[] + ParameterId["HierarchySelectionChanges"] = "hierarchySelectionChanges"; + // DPI_DisplayFolder, having type DisplayFolderPresModel + ParameterId["DisplayFolder"] = "displayFolder"; + // DPI_DisplayFolderList, having type DisplayFolderPresModel[] + ParameterId["DisplayFolderList"] = "displayFolderList"; + // DPI_DataSourceLayout, having type DataSourceLayoutPresModel + ParameterId["DataSourceLayout"] = "dataSourceLayout"; + // DPI_BaseDataSource, having type BaseDataSourcePresModel + ParameterId["BaseDataSource"] = "baseDataSource"; + // DPI_BaseDataSources, having type Dictionary(of BaseDataSourcePresModel) + ParameterId["BaseDataSources"] = "baseDataSources"; + // DPI_DataSource, having type DataSourcePresModel + ParameterId["DataSource"] = "dataSource"; + // DPI_DataSources, having type Dictionary(of DataSourcePresModel) + ParameterId["DataSources"] = "dataSources"; + // DPI_SchemaViewerDataSource, having type SchemaViewerDataSourcePresModel + ParameterId["SchemaViewerDataSource"] = "schemaViewerDataSource"; + // DPI_SchemaViewerDataSources, having type Dictionary(of SchemaViewerDataSourcePresModel) + ParameterId["SchemaViewerDataSources"] = "schemaViewerDataSources"; + // DPI_BaseDataSchema, having type BaseDataSchemaPresModel + ParameterId["BaseDataSchema"] = "baseDataSchema"; + // DPI_DataSchema, having type DataSchemaPresModel + ParameterId["DataSchema"] = "dataSchema"; + // DPI_SchemaViewerDataSchema, having type SchemaViewerDataSchemaPresModel + ParameterId["SchemaViewerDataSchema"] = "schemaViewerDataSchema"; + // DPI_SheetListItem, having type SheetListItemPresModel + ParameterId["SheetListItem"] = "sheetListItem"; + // DPI_SheetListItems, having type SheetListItemPresModel[] + ParameterId["SheetListItems"] = "sheetListItems"; + // DPI_SheetList, having type SheetListPresModel + ParameterId["SheetList"] = "sheetList"; + // DPI_SizeModeOption, having type SizeModeOptionPresModel + ParameterId["SizeModeOption"] = "sizeModeOption"; + // DPI_SizeModeOptions, having type SizeModeOptionPresModel[] + ParameterId["SizeModeOptions"] = "sizeModeOptions"; + // DPI_DashboardSizeControl, having type DashboardSizeControlPresModel + ParameterId["DashboardSizeControl"] = "dashboardSizeControl"; + // DPI_DeviceLayoutInfoItem, having type DeviceLayoutInfoItemPresModel + ParameterId["DeviceLayoutInfoItem"] = "deviceLayoutInfoItem"; + // DPI_DeviceLayoutInfoItems, having type DeviceLayoutInfoItemPresModel[] + ParameterId["DeviceLayoutInfoItems"] = "deviceLayoutInfoItems"; + // DPI_DeviceLayoutInfoList, having type DeviceLayoutInfoListPresModel + ParameterId["DeviceLayoutInfoList"] = "deviceLayoutInfoList"; + // DPI_SpecializedDeviceLayoutItem, having type SpecializedDeviceLayoutItemPresModel + ParameterId["SpecializedDeviceLayoutItem"] = "specializedDeviceLayoutItem"; + // DPI_SpecializedDeviceLayoutItems, having type SpecializedDeviceLayoutItemPresModel[] + ParameterId["SpecializedDeviceLayoutItems"] = "specializedDeviceLayoutItems"; + // DPI_SpecializedDeviceLayoutList, having type SpecializedDeviceLayoutListPresModel + ParameterId["SpecializedDeviceLayoutList"] = "specializedDeviceLayoutList"; + // DPI_SizeItem, having type SizeItemPresModel + ParameterId["SizeItem"] = "sizeItem"; + // DPI_SizeItems, having type SizeItemPresModel[] + ParameterId["SizeItems"] = "sizeItems"; + // DPI_DeviceSizesList, having type SizeItemListPresModel + ParameterId["DeviceSizesList"] = "deviceSizesList"; + // DPI_PresetSizesList, having type SizeItemListPresModel + ParameterId["PresetSizesList"] = "presetSizesList"; + // DPI_SizeItemList, having type SizeItemListPresModel + ParameterId["SizeItemList"] = "sizeItemList"; + // DPI_SubstitutionKeyword, having type SubstitutionKeywordPresModel + ParameterId["SubstitutionKeyword"] = "substitutionKeyword"; + // DPI_SubstitutionKeywords, having type SubstitutionKeywordPresModel[] + ParameterId["SubstitutionKeywords"] = "substitutionKeywords"; + // DPI_SubstitutionKeywordSubList, having type SubstitutionKeywordSubListPresModel + ParameterId["SubstitutionKeywordSubList"] = "substitutionKeywordsSublist"; + // DPI_SubstitutionKeywordSubLists, having type SubstitutionKeywordSubListPresModel[] + ParameterId["SubstitutionKeywordSubLists"] = "substitutionKeywordSublists"; + // DPI_SubstitutionKeywordList, having type SubstitutionKeywordListPresModel + ParameterId["SubstitutionKeywordList"] = "substitutionKeywordsList"; + // DPI_DeviceZoneListItem, having type DeviceZoneListItemPresModel + ParameterId["DeviceZoneListItem"] = "deviceZoneListItem"; + // DPI_DeviceZoneListItems, having type DeviceZoneListItemPresModel[] + ParameterId["DeviceZoneListItems"] = "deviceZoneListItems"; + // DPI_DeviceZoneList, having type DeviceZoneListPresModel + ParameterId["DeviceZoneList"] = "deviceZoneList"; + // DPI_ZoneSnapLineListItem, having type ZoneSnapLineListItemPresModel + ParameterId["ZoneSnapLineListItem"] = "snapLineListItem"; + // DPI_OuterHorizontalSnapLines, having type ZoneSnapLineListItemPresModel[] + ParameterId["OuterHorizontalSnapLines"] = "outerHorizontalSnapLines"; + // DPI_OuterVerticalSnapLines, having type ZoneSnapLineListItemPresModel[] + ParameterId["OuterVerticalSnapLines"] = "outerVerticalSnapLines"; + // DPI_InnerHorizontalSnapLines, having type ZoneSnapLineListItemPresModel[] + ParameterId["InnerHorizontalSnapLines"] = "innerHorizontalSnapLines"; + // DPI_InnerVerticalSnapLines, having type ZoneSnapLineListItemPresModel[] + ParameterId["InnerVerticalSnapLines"] = "innerVerticalSnapLines"; + // DPI_ZoneSnapLineList, having type ZoneSnapLineListPresModel + ParameterId["ZoneSnapLineList"] = "snapLineList"; + // DPI_DashboardZoneHierarchy, having type DashboardZoneHierarchyPresModel + ParameterId["DashboardZoneHierarchy"] = "dashboardZoneHierarchy"; + // DPI_DeviceZoneVisibilityListItem, having type DeviceZoneVisibilityListItemPresModel + ParameterId["DeviceZoneVisibilityListItem"] = "deviceZoneVisibilityListItem"; + // DPI_DeviceZoneVisibilityListItems, having type DeviceZoneVisibilityListItemPresModel[] + ParameterId["DeviceZoneVisibilityListItems"] = "deviceZoneVisibilityListItems"; + // DPI_DeviceZoneVisibilityList, having type DeviceZoneVisibilityListPresModel + ParameterId["DeviceZoneVisibilityList"] = "deviceZoneVisibilityList"; + // DPI_WorksheetDataSchema, having type WorksheetDataSchemaPresModel + ParameterId["WorksheetDataSchema"] = "worksheetDataSchema"; + // DPI_WorksheetDataSchemaMap, having type Dictionary(of WorksheetDataSchemaPresModel) + ParameterId["WorksheetDataSchemaMap"] = "worksheetDataSchemaMap"; + // DPI_Shelf, having type ShelfPresModel + ParameterId["Shelf"] = "shelf"; + // DPI_ShelfDetail, having type ShelfPresModel + ParameterId["ShelfDetail"] = "shelfDetail"; + // DPI_ShelfList, having type ShelfPresModel[] + ParameterId["ShelfList"] = "shelfList"; + // DPI_ShelfItem, having type ShelfItemPresModel + ParameterId["ShelfItem"] = "shelfItem"; + // DPI_ShelfItems, having type ShelfItemPresModel[] + ParameterId["ShelfItems"] = "shelfItems"; + // DPI_Shelves, having type ShelvesPresModel + ParameterId["Shelves"] = "shelves"; + // DPI_FieldEncoding, having type FieldEncodingPresModel + ParameterId["FieldEncoding"] = "fieldEncoding"; + // DPI_FieldEncodings, having type FieldEncodingPresModel[] + ParameterId["FieldEncodings"] = "fieldEncodings"; + // DPI_UberTip, having type UberTipPresModel + ParameterId["UberTip"] = "uberTip"; + // DPI_AnalyticsObjectDragInfo, having type AnalyticsObjectDragInfoPresModel + ParameterId["AnalyticsObjectDragInfo"] = "analyticsObjectDragInfo"; + // DPI_TrendLine, having type TrendLinePresModel + ParameterId["TrendLine"] = "trendLine"; + // DPI_TrendLineDialog, having type TrendLineDialogPresModel + ParameterId["TrendLineDialog"] = "trendLineDialog"; + // DPI_TrendLineDescribePresModel, having type TrendLineDescribePresModel + ParameterId["TrendLineDescribePresModel"] = "trendLineDescribePresModel"; + // DPI_TrendLineAOVModelPresModel, having type TrendLineAOVModelPresModel + ParameterId["TrendLineAOVModelPresModel"] = "trendLineAovModelPresModel"; + // DPI_TrendLineAOVModelsPresModel, having type TrendLineAOVModelPresModel[] + ParameterId["TrendLineAOVModelsPresModel"] = "trendModelDescriptionVector"; + // DPI_TrendLineLineCoefficientPresModel, having type TrendLineLineCoefficientPresModel + ParameterId["TrendLineLineCoefficientPresModel"] = "trendLineLineCoefficient"; + // DPI_TrendLineLineCoefficientsPresModel, having type TrendLineLineCoefficientPresModel[] + ParameterId["TrendLineLineCoefficientsPresModel"] = "trendLineLineCoefficientsPresModel"; + // DPI_TrendLineLinesPresModel, having type TrendLineLinesPresModel + ParameterId["TrendLineLinesPresModel"] = "trendLineLinesPresModel"; + // DPI_TrendLineAOVPresModel, having type TrendLineAOVPresModel + ParameterId["TrendLineAOVPresModel"] = "trendLineAnovaPresModel"; + // DPI_ReferenceLine, having type ReferenceLinePresModel + ParameterId["ReferenceLine"] = "referenceLine"; + // DPI_ReferenceLines, having type ReferenceLinePresModel[] + ParameterId["ReferenceLines"] = "referenceLines"; + // DPI_PercentileEditDataValue, having type EditDataValuePresModel + ParameterId["PercentileEditDataValue"] = "percentileEditDataValue"; + // DPI_LimitEditDataValue, having type EditDataValuePresModel + ParameterId["LimitEditDataValue"] = "limitEditDataValue"; + // DPI_ConfidenceLevelCombo, having type EditValueWidgetPresModel + ParameterId["ConfidenceLevelCombo"] = "confidenceLevelCombo"; + // DPI_DistributionQuantilesCombo, having type EditValueWidgetPresModel + ParameterId["DistributionQuantilesCombo"] = "distributionQuantilesLevelCombo"; + // DPI_PercentilesCombo, having type EditValueWidgetPresModel + ParameterId["PercentilesCombo"] = "distributionPercentilesLevelCombo"; + // DPI_NumericBinSizeCombo, having type EditValueWidgetPresModel + ParameterId["NumericBinSizeCombo"] = "numericBinSizeCombo"; + // DPI_FieldPickerField, having type FieldPickerFieldPresModel + ParameterId["FieldPickerField"] = "fieldPickerField"; + // DPI_FieldPickerFields, having type FieldPickerFieldPresModel[] + ParameterId["FieldPickerFields"] = "fieldPickerFields"; + // DPI_FieldPickerCombo, having type FieldPickerComboPresModel + ParameterId["FieldPickerCombo"] = "fieldPickerCombo"; + // DPI_PairedFieldPickerCombo, having type FieldPickerComboPresModel + ParameterId["PairedFieldPickerCombo"] = "pairedFieldPickerCombo"; + // DPI_ReferenceLineEditorPresModel, having type ReferenceLineEditorPresModel + ParameterId["ReferenceLineEditorPresModel"] = "referenceLineEditor"; + // DPI_CloseDataSourceErrorDialogPresModel, having type CloseDataSourceErrorDialogPresModel + ParameterId["CloseDataSourceErrorDialogPresModel"] = "closeDsErrorDialog"; + // DPI_EditReferenceLine, having type EditReferenceLinePresModel + ParameterId["EditReferenceLine"] = "editReferenceLine"; + // DPI_EditReferenceBand, having type EditReferenceBandPresModel + ParameterId["EditReferenceBand"] = "editReferenceBand"; + // DPI_EditDistribution, having type EditDistributionPresModel + ParameterId["EditDistribution"] = "editDistribution"; + // DPI_DistributionPercentages, having type DistributionPercentagesPresModel + ParameterId["DistributionPercentages"] = "distributionPercentages"; + // DPI_DistributionPercentiles, having type DistributionPercentilesPresModel + ParameterId["DistributionPercentiles"] = "distributionPercentiles"; + // DPI_DistributionQuantiles, having type DistributionQuantilesPresModel + ParameterId["DistributionQuantiles"] = "distributionQuantiles"; + // DPI_DistributionStandardDeviation, having type DistributionStandardDeviationPresModel + ParameterId["DistributionStandardDeviation"] = "distributionStddev"; + // DPI_SortIndicators, having type SortIndicatorsPresModel + ParameterId["SortIndicators"] = "sortIndicators"; + // DPI_SortIndicatorRegion, having type SortIndicatorRegionPresModel + ParameterId["SortIndicatorRegion"] = "sortIndicatorRegion"; + // DPI_SortIndicatorRegions, having type SortIndicatorRegionPresModel[] + ParameterId["SortIndicatorRegions"] = "sortIndicatorRegions"; + // DPI_SortIndicatorItem, having type SortIndicatorItemPresModel + ParameterId["SortIndicatorItem"] = "sortIndicatorItem"; + // DPI_SortIndicatorItems, having type SortIndicatorItemPresModel[] + ParameterId["SortIndicatorItems"] = "sortIndicatorItems"; + // DPI_BuilderConfig, having type BuilderConfigPresModel + ParameterId["BuilderConfig"] = "builderConfig"; + // DPI_SheetLayoutInfo, having type SheetLayoutInfoPresModel + ParameterId["SheetLayoutInfo"] = "sheetLayoutInfo"; + // DPI_AreaRect, having type RectanglePresModel + ParameterId["AreaRect"] = "areaRect"; + // DPI_Border, having type RectanglePresModel + ParameterId["Border"] = "borderRect"; + // DPI_BoundsRect, having type RectanglePresModel + ParameterId["BoundsRect"] = "boundsRect"; + // DPI_ButtonRect, having type RectanglePresModel + ParameterId["ButtonRect"] = "buttonRect"; + // DPI_DragRect, having type RectanglePresModel + ParameterId["DragRect"] = "dragRect"; + // DPI_FocusRect, having type RectanglePresModel + ParameterId["FocusRect"] = "focusRect"; + // DPI_ImageTileRect, having type RectanglePresModel + ParameterId["ImageTileRect"] = "tileRect"; + // DPI_ItemRect, having type RectanglePresModel + ParameterId["ItemRect"] = "itemRect"; + // DPI_LabelRect, having type RectanglePresModel + ParameterId["LabelRect"] = "labelRect"; + // DPI_MarkRect, having type RectanglePresModel + ParameterId["MarkRect"] = "markRect"; + // DPI_MarkTooltipRect, having type RectanglePresModel + ParameterId["MarkTooltipRect"] = "markTooltipRect"; + // DPI_MenuButtonRect, having type RectanglePresModel + ParameterId["MenuButtonRect"] = "menuButtonRect"; + // DPI_OutRegionRect, having type RectanglePresModel + ParameterId["OutRegionRect"] = "outRegionRect"; + // DPI_PaneRect, having type RectanglePresModel + ParameterId["PaneRect"] = "paneRect"; + // DPI_PixelExtents, having type RectanglePresModel + ParameterId["PixelExtents"] = "pixelExtents"; + // DPI_RectMaxLabel, having type RectanglePresModel + ParameterId["RectMaxLabel"] = "rectMaxLabel"; + // DPI_RectMinLabel, having type RectanglePresModel + ParameterId["RectMinLabel"] = "rectMinLabel"; + // DPI_RectRamp, having type RectanglePresModel + ParameterId["RectRamp"] = "rectRamp"; + // DPI_RectTitle, having type RectanglePresModel + ParameterId["RectTitle"] = "rectTitle"; + // DPI_RegionRect, having type RectanglePresModel + ParameterId["RegionRect"] = "regionRect"; + // DPI_SelectionRect, having type RectanglePresModel + ParameterId["SelectionRect"] = "selectionRect"; + // DPI_UnusedRect, having type RectanglePresModel + ParameterId["UnusedRect"] = "unusedRect"; + // DPI_ZoneEdgeRect, having type RectanglePresModel + ParameterId["ZoneEdgeRect"] = "zoneEdge"; + // DPI_ZoneEdgeRectPix, having type RectanglePresModel + ParameterId["ZoneEdgeRectPix"] = "zoneEdgePix"; + // DPI_ZoneEdgeRectPp, having type RectanglePresModel + ParameterId["ZoneEdgeRectPp"] = "zoneEdgePp"; + // DPI_UIAutomationLinkRect, having type RectanglePresModel + ParameterId["UIAutomationLinkRect"] = "linkRect"; + // DPI_Borders, having type RectanglePresModel[] + ParameterId["Borders"] = "borderRects"; + // DPI_UIAutomationLinkRects, having type RectanglePresModel[] + ParameterId["UIAutomationLinkRects"] = "linkRects"; + // DPI_DomainExtents, having type DoubleRectanglePresModel + ParameterId["DomainExtents"] = "domainExtents"; + // DPI_MapDomainExtents, having type DoubleRectanglePresModel + ParameterId["MapDomainExtents"] = "mapDomainExtents"; + // DPI_MapLatLongRect, having type MapRectPresModel + ParameterId["MapLatLongRect"] = "mapLatLongRect"; + // DPI_Center, having type PointPresModel + ParameterId["Center"] = "center"; + // DPI_CenterMarkLineBegin, having type PointPresModel + ParameterId["CenterMarkLineBegin"] = "centerMarkLineBegin"; + // DPI_CenterMarkLineEnd, having type PointPresModel + ParameterId["CenterMarkLineEnd"] = "centerMarkLineEnd"; + // DPI_DropLocation, having type PointPresModel + ParameterId["DropLocation"] = "dropLocation"; + // DPI_EndPt, having type PointPresModel + ParameterId["EndPt"] = "endPoint"; + // DPI_GrabLocation, having type PointPresModel + ParameterId["GrabLocation"] = "grabLocation"; + // DPI_GridOrigin, having type PointPresModel + ParameterId["GridOrigin"] = "gridOrigin"; + // DPI_LassoSelectionPoint, having type PointPresModel + ParameterId["LassoSelectionPoint"] = "lassoSelectionPoint"; + // DPI_MenuLocation, having type PointPresModel + ParameterId["MenuLocation"] = "menuLocation"; + // DPI_MoveOffset, having type PointPresModel + ParameterId["MoveOffset"] = "moveOffset"; + // DPI_OverlayAnchor, having type PointPresModel + ParameterId["OverlayAnchor"] = "overlayAnchor"; + // DPI_PanAmount, having type PointPresModel + ParameterId["PanAmount"] = "panAmount"; + // DPI_PanLocation, having type PointPresModel + ParameterId["PanLocation"] = "panLocation"; + // DPI_PaneResolverLocation, having type PointPresModel + ParameterId["PaneResolverLocation"] = "paneResolverLocation"; + // DPI_PixelExtentsOffset, having type PointPresModel + ParameterId["PixelExtentsOffset"] = "extentsOffset"; + // DPI_Point1, having type PointPresModel + ParameterId["Point1"] = "pt1"; + // DPI_Point2, having type PointPresModel + ParameterId["Point2"] = "pt2"; + // DPI_Point3, having type PointPresModel + ParameterId["Point3"] = "pt3"; + // DPI_RegionPoint, having type PointPresModel + ParameterId["RegionPoint"] = "regionPoint"; + // DPI_ScrollOffset, having type PointPresModel + ParameterId["ScrollOffset"] = "scrollOffset"; + // DPI_SelectAtPoint, having type PointPresModel + ParameterId["SelectAtPoint"] = "selectAtPoint"; + // DPI_SelectOffset, having type PointPresModel + ParameterId["SelectOffset"] = "selectOffset"; + // DPI_TargetPt, having type PointPresModel + ParameterId["TargetPt"] = "targetPoint"; + // DPI_TextOrigin, having type PointPresModel + ParameterId["TextOrigin"] = "textOrigin"; + // DPI_TooltipAnchorPoint, having type PointPresModel + ParameterId["TooltipAnchorPoint"] = "tooltipAnchorPoint"; + // DPI_TooltipOffset, having type PointPresModel + ParameterId["TooltipOffset"] = "tooltipOffset"; + // DPI_VizLocation, having type PointPresModel + ParameterId["VizLocation"] = "vizLocation"; + // DPI_ZoomAnchorPoint, having type PointPresModel + ParameterId["ZoomAnchorPoint"] = "zoomAnchorPoint"; + // DPI_MenuAnchorPoint, having type PointPresModel + ParameterId["MenuAnchorPoint"] = "menuAnchorPoint"; + // DPI_OverlayAnchors, having type PointPresModel[] + ParameterId["OverlayAnchors"] = "overlayAnchors"; + // DPI_LassoSelection, having type PointPresModel[] + ParameterId["LassoSelection"] = "lassoSelection"; + // DPI_ScrollOffsetPoints, having type PointPresModel[] + ParameterId["ScrollOffsetPoints"] = "scrollOffsetPoints"; + // DPI_RadialSelection, having type CirclePresModel + ParameterId["RadialSelection"] = "radialSelection"; + // DPI_DomainOrigin, having type FloatPointPresModel + ParameterId["DomainOrigin"] = "domainOrigin"; + // DPI_FloatCenter, having type FloatPointPresModel + ParameterId["FloatCenter"] = "floatCenter"; + // DPI_FloatPoint, having type FloatPointPresModel + ParameterId["FloatPoint"] = "floatPoint"; + // DPI_ClientAvailableSpace, having type SizePresModel + ParameterId["ClientAvailableSpace"] = "clientAvailableSpace"; + // DPI_DashboardPortSize, having type SizePresModel + ParameterId["DashboardPortSize"] = "dashboardPort"; + // DPI_LegendSize, having type SizePresModel + ParameterId["LegendSize"] = "legendSize"; + // DPI_StoryPortSize, having type SizePresModel + ParameterId["StoryPortSize"] = "storyPort"; + // DPI_SwatchAreaSize, having type SizePresModel + ParameterId["SwatchAreaSize"] = "areaSize"; + // DPI_SwatchImageSize, having type SizePresModel + ParameterId["SwatchImageSize"] = "imageSize"; + // DPI_ViewportSize, having type SizePresModel + ParameterId["ViewportSize"] = "viewportSize"; + // DPI_WorksheetPortSize, having type SizePresModel + ParameterId["WorksheetPortSize"] = "worksheetPort"; + // DPI_ResizeEntity, having type ResizeEntityPresModel + ParameterId["ResizeEntity"] = "resizeEntity"; + // DPI_RowResizers, having type ResizeEntityPresModel[] + ParameterId["RowResizers"] = "rowResizers"; + // DPI_ColResizers, having type ResizeEntityPresModel[] + ParameterId["ColResizers"] = "colResizers"; + // DPI_ResizeInfoPresModel, having type ResizeInfoPresModel + ParameterId["ResizeInfoPresModel"] = "resizeInfo"; + // DPI_ServerSheet, having type ServerSheetPresModel + ParameterId["ServerSheet"] = "serverSheet"; + // DPI_ServerSheets, having type ServerSheetPresModel[] + ParameterId["ServerSheets"] = "serverSheets"; + // DPI_SheetInfo, having type SheetInfoPresModel + ParameterId["SheetInfo"] = "sheetInfo"; + // DPI_SheetsInfo, having type SheetInfoPresModel[] + ParameterId["SheetsInfo"] = "sheetsInfo"; + // DPI_ServerWorkbook, having type ServerWorkbookPresModel + ParameterId["ServerWorkbook"] = "serverWorkbook"; + // DPI_PDFExportOptionsPresModel, having type PDFExportOptionsPresModel + ParameterId["PDFExportOptionsPresModel"] = "pdfExport"; + // DPI_ExportFileResultPresModel, having type ExportFileResultPresModel + ParameterId["ExportFileResultPresModel"] = "pdfResult"; + // DPI_PDFSheet, having type PDFSheetPresModel + ParameterId["PDFSheet"] = "pdfSheet"; + // DPI_SheetOptions, having type PDFSheetPresModel[] + ParameterId["SheetOptions"] = "sheetOptions"; + // DPI_ExportLayoutOptions, having type ExportLayoutOptionsPresModel + ParameterId["ExportLayoutOptions"] = "exportLayoutOptions"; + // DPI_DataAlertConditionOperationType, having type DataAlertConditionOperationType + ParameterId["DataAlertConditionOperationType"] = "dataAlertConditionOp"; + // DPI_DataAlertDialogPresModel, having type DataAlertDialogPresModel + ParameterId["DataAlertDialogPresModel"] = "dataAlertDialogPresModel"; + // DPI_DataAlertMeasure, having type DataAlertMeasurePresModel + ParameterId["DataAlertMeasure"] = "dataAlertMeasure"; + // DPI_DataAlertMeasures, having type DataAlertMeasurePresModel[] + ParameterId["DataAlertMeasures"] = "dataAlertMeasures"; + // DPI_DataAlertConstantCondition, having type DataAlertConstantConditionPresModel + ParameterId["DataAlertConstantCondition"] = "dataAlertConstantCondition"; + // DPI_DataAlertDialogMode, having type DataAlertDialogMode + ParameterId["DataAlertDialogMode"] = "dataAlertDialogMode"; + // DPI_LightweightMapOptions, having type LightweightMapOptionsPresModel + ParameterId["LightweightMapOptions"] = "lightweightMapOptions"; + // DPI_DataHighlighter, having type DataHighlighterPresModel + ParameterId["DataHighlighter"] = "dataHighlighter"; + // DPI_DataHighlighterItemSet, having type DataHighlighterItemSetPresModel + ParameterId["DataHighlighterItemSet"] = "dataHighlighterItemSet"; + // DPI_DataHighlighterItem, having type DataHighlighterItemPresModel + ParameterId["DataHighlighterItem"] = "dataHighlighterItem"; + // DPI_DataHighlighterItems, having type DataHighlighterItemPresModel[] + ParameterId["DataHighlighterItems"] = "dataHighlighterItems"; + // DPI_CategoricalLegendLayout, having type CategoricalLegendLayoutPresModel + ParameterId["CategoricalLegendLayout"] = "catLegendLayout"; + // DPI_CategoricalLegend, having type CategoricalLegendPresModel + ParameterId["CategoricalLegend"] = "categoricalLegend"; + // DPI_CategoricalLegends, having type CategoricalLegendPresModel[] + ParameterId["CategoricalLegends"] = "categoricalLegends"; + // DPI_CategoricalColorLegend, having type CategoricalColorLegendPresModel + ParameterId["CategoricalColorLegend"] = "colorLegend"; + // DPI_ColorLegendItem, having type CategoricalColorLegendItemPresModel + ParameterId["ColorLegendItem"] = "colorLegendItem"; + // DPI_ColorLegendItems, having type CategoricalColorLegendItemPresModel[] + ParameterId["ColorLegendItems"] = "colorLegendItems"; + // DPI_CategoricalShapeLegend, having type CategoricalShapeLegendPresModel + ParameterId["CategoricalShapeLegend"] = "categoricalShapeLegend"; + // DPI_ShapeLegendItem, having type CategoricalShapeLegendItemPresModel + ParameterId["ShapeLegendItem"] = "shapeLegendItem"; + // DPI_ShapeLegendItems, having type CategoricalShapeLegendItemPresModel[] + ParameterId["ShapeLegendItems"] = "shapeLegendItems"; + // DPI_CategoricalHighlightLegend, having type CategoricalHighlightLegendPresModel + ParameterId["CategoricalHighlightLegend"] = "categoricalHighlightLegend"; + // DPI_HighlightLegendItem, having type CategoricalLegendItemPresModel + ParameterId["HighlightLegendItem"] = "highlightLegendItem"; + // DPI_HighlightLegendItems, having type CategoricalLegendItemPresModel[] + ParameterId["HighlightLegendItems"] = "highlightLegendItems"; + // DPI_CategoricalSizeLegend, having type CategoricalSizeLegendPresModel + ParameterId["CategoricalSizeLegend"] = "categoricalSizeLegend"; + // DPI_SizeLegendItem, having type CategoricalSizeLegendItemPresModel + ParameterId["SizeLegendItem"] = "sizeLegendItem"; + // DPI_SizeLegendItems, having type CategoricalSizeLegendItemPresModel[] + ParameterId["SizeLegendItems"] = "sizeLegendItems"; + // DPI_CategoricalMapLegend, having type CategoricalMapLegendPresModel + ParameterId["CategoricalMapLegend"] = "categoricalMapLegend"; + // DPI_QuantitativeColorLegend, having type QuantitativeColorLegendPresModel + ParameterId["QuantitativeColorLegend"] = "quantitativeColorLegend"; + // DPI_QuantitativeColorLegends, having type QuantitativeColorLegendPresModel[] + ParameterId["QuantitativeColorLegends"] = "quantitativeColorLegends"; + // DPI_QuantitativeLegendLayout, having type QuantitativeLegendLayoutPresModel + ParameterId["QuantitativeLegendLayout"] = "quantitativeLegendLayout"; + // DPI_ServerRenderedLegend, having type ServerRenderedLegendPresModel + ParameterId["ServerRenderedLegend"] = "serverRenderedLegend"; + // DPI_CategoricalFilter, having type CategoricalFilterPresModel + ParameterId["CategoricalFilter"] = "categoricalFilter"; + // DPI_CategoricalFilterRelational, having type CategoricalFilterRelationalPresModel + ParameterId["CategoricalFilterRelational"] = "categoricalFilterRelational"; + // DPI_CategoricalFilterMemberDomainPage, having type CategoricalFilterMemberDomainPagePresModel + ParameterId["CategoricalFilterMemberDomainPage"] = "categoricalFilterMemberDomainPage"; + // DPI_CategoricalFilterCacheInfo, having type CategoricalFilterCacheInfoPresModel + ParameterId["CategoricalFilterCacheInfo"] = "categoricalFilterCacheInfo"; + // DPI_CategoricalFilterPatternDisplay, having type CategoricalFilterPatternDisplayPresModel + ParameterId["CategoricalFilterPatternDisplay"] = "categoricalFilterPatternDisplay"; + // DPI_CategoricalFilterPatternUpdate, having type CategoricalFilterPatternUpdatePresModel + ParameterId["CategoricalFilterPatternUpdate"] = "categoricalFilterPatternUpdate"; + // DPI_CategoricalFilterConditionDisplay, having type CategoricalFilterConditionDisplayPresModel + ParameterId["CategoricalFilterConditionDisplay"] = "categoricalFilterConditionDisplay"; + // DPI_CategoricalFilterConditionUpdate, having type CategoricalFilterConditionUpdatePresModel + ParameterId["CategoricalFilterConditionUpdate"] = "categoricalFilterConditionUpdate"; + // DPI_CategoricalFilterLimitDisplay, having type CategoricalFilterLimitDisplayPresModel + ParameterId["CategoricalFilterLimitDisplay"] = "categoricalFilterLimitDisplay"; + // DPI_CategoricalFilterLimitUpdate, having type CategoricalFilterLimitUpdatePresModel + ParameterId["CategoricalFilterLimitUpdate"] = "categoricalFilterLimitUpdate"; + // DPI_CategoricalFilterNew, having type CategoricalFilter_NewPresModel + ParameterId["CategoricalFilterNew"] = "categoricalFilterNew"; + // DPI_CategoricalFilterHierarchy, having type CategoricalFilterHierarchyPresModel + ParameterId["CategoricalFilterHierarchy"] = "categoricalFilterHirerarchy"; + // DPI_CategoricalFilterUpdate, having type CategoricalFilterUpdatePresModel + ParameterId["CategoricalFilterUpdate"] = "categoricalFilterUpdate"; + // DPI_CategoricalFilterRelationalState, having type CategoricalFilterRelationalStatePresModel + ParameterId["CategoricalFilterRelationalState"] = "categoricalRelationalState"; + // DPI_CategoricalFilterRelationalUpdatedState, having type CategoricalFilterRelationalStatePresModel + ParameterId["CategoricalFilterRelationalUpdatedState"] = "categoricalRelationalUpdatedState"; + // DPI_CategoricalFilterRelationalDomainInfo, having type CategoricalFilterRelationalDomainInfoPresModel + ParameterId["CategoricalFilterRelationalDomainInfo"] = "categoricalFilterRelationalDomainInfo"; + // DPI_CategoricalFilterRelationalDisplay, having type CategoricalFilterRelationalDisplayPresModel + ParameterId["CategoricalFilterRelationalDisplay"] = "categoricalFilterRelationalDisplay"; + // DPI_ExpressionToken, having type ExpressionTokenPresModel + ParameterId["ExpressionToken"] = "expressionToken"; + // DPI_ExpressionTokens, having type ExpressionTokenPresModel[] + ParameterId["ExpressionTokens"] = "expressionTokens"; + // DPI_FormulaValidation, having type FormulaValidationPresModel + ParameterId["FormulaValidation"] = "formulaValidation"; + // DPI_CaptionedFilterValue, having type FilterValuePresModel + ParameterId["CaptionedFilterValue"] = "captionedFilterValue"; + // DPI_CaptionedRangeMin, having type FilterValuePresModel + ParameterId["CaptionedRangeMin"] = "captionedRangeMin"; + // DPI_CaptionedRangeMax, having type FilterValuePresModel + ParameterId["CaptionedRangeMax"] = "captionedRangeMax"; + // DPI_CaptionedAnchorDate, having type FilterValuePresModel + ParameterId["CaptionedAnchorDate"] = "captionedAnchorDate"; + // DPI_CaptionedFilterValueList, having type FilterValuePresModel[] + ParameterId["CaptionedFilterValueList"] = "captionedFilterValueList"; + // DPI_CategoricalFilterInfo, having type CategoricalFilterInfoPresModel + ParameterId["CategoricalFilterInfo"] = "categoricalFilterInfo"; + // DPI_QuantitativeFilterInfo, having type QuantitativeFilterInfoPresModel + ParameterId["QuantitativeFilterInfo"] = "quantitativeFilterInfo"; + // DPI_RelativeDateFilterInfo, having type RelativeDateFilterInfoPresModel + ParameterId["RelativeDateFilterInfo"] = "relativeDateFilterInfo"; + // DPI_FilterInfo, having type FilterInfoPresModel + ParameterId["FilterInfo"] = "filterInfo"; + // DPI_FiltersInfo, having type FilterInforPresModel[] + ParameterId["FiltersInfo"] = "filtersInfo"; + // DPI_CategoricalDomain, having type CategoricalDomainPresModel + ParameterId["CategoricalDomain"] = "categoricalDomain"; + // DPI_QuantitativeDomain, having type QuantitativeDomainPresModel + ParameterId["QuantitativeDomain"] = "quantitativeDomain"; + // DPI_ValidationResults, having type ValidationResultsPresModel + ParameterId["ValidationResults"] = "validationResults"; + // DPI_DomainMember, having type DomainMemberPresModel + ParameterId["DomainMember"] = "domainMember"; + // DPI_DomainMembers, having type DomainMemberPresModel[] + ParameterId["DomainMembers"] = "domainMembers"; + // DPI_QuickFilterDisplay, having type QuickFilterDisplayPresModel + ParameterId["QuickFilterDisplay"] = "quickFilterDisplay"; + // DPI_QuickFilter, having type QuickFilterPresModel + ParameterId["QuickFilter"] = "quickFilter"; + // DPI_QuantitativeQuickFilter, having type QuantitativeQuickFilterPresModel + ParameterId["QuantitativeQuickFilter"] = "quantitativeQuickFilter"; + // DPI_RelativeDateQuickFilter, having type RelativeDateQuickFilterPresModel + ParameterId["RelativeDateQuickFilter"] = "relativeDateQuickFilter"; + // DPI_CategoricalQuickFilter, having type CategoricalQuickFilterPresModel + ParameterId["CategoricalQuickFilter"] = "categoricalQuickFilter"; + // DPI_HierarchicalQuickFilter, having type HierarchicalQuickFilterPresModel + ParameterId["HierarchicalQuickFilter"] = "hierarchicalQuickFilter"; + // DPI_DomainTable, having type DomainTablePresModel + ParameterId["DomainTable"] = "domainTable"; + // DPI_DomainTables, having type DomainTablePresModel[] + ParameterId["DomainTables"] = "domainTables"; + // DPI_DomainTuples, having type Tuples + ParameterId["DomainTuples"] = "domainTuples"; + // DPI_SearchTuples, having type Tuples + ParameterId["SearchTuples"] = "searchTuples"; + // DPI_SelectedTuples, having type TupleHash + ParameterId["SelectedTuples"] = "selectedTuples"; + // DPI_PendingTuples, having type TupleHash + ParameterId["PendingTuples"] = "pendingTuples"; + // DPI_Domain, having type MultiDomain + ParameterId["Domain"] = "domain"; + // DPI_DateOption, having type DateBinDialogOptionPresModel + ParameterId["DateOption"] = "dateOption"; + // DPI_DateOptions, having type DateBinDialogOptionPresModel[] + ParameterId["DateOptions"] = "dateOptions"; + // DPI_FilterRangeAdd, having type FilterRangePresModel + ParameterId["FilterRangeAdd"] = "filterRangeAdd"; + // DPI_FilterRangeRemove, having type FilterRangePresModel + ParameterId["FilterRangeRemove"] = "filterRangeRemove"; + // DPI_FilterOptions, having type FilterOptionsPresModel + ParameterId["FilterOptions"] = "filterOptions"; + // DPI_Layer, having type LayerPresModel + ParameterId["Layer"] = "layer"; + // DPI_Layers, having type LayerPresModel[] + ParameterId["Layers"] = "layers"; + // DPI_MarksCardPresModel, having type MarksCardPresModel + ParameterId["MarksCardPresModel"] = "marksCardPresModel"; + // DPI_UIItem, having type UIItemPresModel + ParameterId["UIItem"] = "uiItem"; + // DPI_EncodingUIItem, having type EncodingUIItemPresModel + ParameterId["EncodingUIItem"] = "encodingUiItem"; + // DPI_EncodingUIItems, having type EncodingUIItemPresModel[] + ParameterId["EncodingUIItems"] = "encodingUiItems"; + // DPI_PrimTypeUIItem, having type PrimitiveTypeUIItemPresModel + ParameterId["PrimTypeUIItem"] = "primitiveTypeUiItem"; + // DPI_PrimTypeUIItems, having type PrimitiveTypeUIItemPresModel[] + ParameterId["PrimTypeUIItems"] = "primitiveTypeUiItems"; + // DPI_PrimitiveTypeUIItemOptions, having type PrimitiveTypeUIItemOptionsPresModel + ParameterId["PrimitiveTypeUIItemOptions"] = "primitiveTypeUiItemOptions"; + // DPI_LineUIItemOptions, having type LineUIItemOptionsPresModel + ParameterId["LineUIItemOptions"] = "lineUiItemOptions"; + // DPI_LineInterpolationModeUIItem, having type LineInterpolationModeUIItemPresModel + ParameterId["LineInterpolationModeUIItem"] = "lineInterpolationModeUiItem"; + // DPI_LineInterpolationModeUIItemSet, having type LineInterpolationModeUIItemPresModel[] + ParameterId["LineInterpolationModeUIItemSet"] = "lineInterpolationModeUiItemSet"; + // DPI_LineMarkerPositionUIItem, having type LineMarkerPositionUIItemPresModel + ParameterId["LineMarkerPositionUIItem"] = "lineMarkerPositionUiItem"; + // DPI_LineMarkerPositionUIItemSet, having type LineMarkerPositionUIItemPresModel[] + ParameterId["LineMarkerPositionUIItemSet"] = "lineMarkerPositionUiItemSet"; + // DPI_MarksCardDropdownItem, having type MarksCardDropdownItemPresModel + ParameterId["MarksCardDropdownItem"] = "marksCardDropdownItem"; + // DPI_TooltipDropdownItem, having type TooltipDropdownItemPresModel + ParameterId["TooltipDropdownItem"] = "tooltipDropdownItem"; + // DPI_TextDropdownItem, having type TextDropdownItemPresModel + ParameterId["TextDropdownItem"] = "textDropdownItem"; + // DPI_ColorDropdownItem, having type ColorDropdownItemPresModel + ParameterId["ColorDropdownItem"] = "colorDropdownItem"; + // DPI_SizeSliderPresModel, having type SizeSliderPresModel + ParameterId["SizeSliderPresModel"] = "sizeSliderPresModel"; + // DPI_InflectionPoint, having type InflectionPointPresModel + ParameterId["InflectionPoint"] = "inflectionPoint"; + // DPI_InflectionPoints, having type InflectionPointPresModel[] + ParameterId["InflectionPoints"] = "inflectionPoints"; + // DPI_Notch, having type NotchPresModel + ParameterId["Notch"] = "notch"; + // DPI_Notches, having type NotchPresModel[] + ParameterId["Notches"] = "notches"; + // DPI_MarkSizeOptionsPresModel, having type MarkSizeOptionsPresModel + ParameterId["MarkSizeOptionsPresModel"] = "markSizeOptionsPresModel"; + // DPI_ModifyMarksInSet, having type AddOrRemoveMarks + ParameterId["ModifyMarksInSet"] = "addOrRemoveMarks"; + // DPI_MarkLabelsSpecification, having type MarkLabelsSpecificationPresModel + ParameterId["MarkLabelsSpecification"] = "markLabelsSpecification"; + // DPI_ColorPalette, having type ColorPalettePresModel + ParameterId["ColorPalette"] = "colorPalette"; + // DPI_SelectedColorPalette, having type ColorPalettePresModel + ParameterId["SelectedColorPalette"] = "selectedColorPalette"; + // DPI_ColorPalettes, having type ColorPalettePresModel[] + ParameterId["ColorPalettes"] = "colorPalettes"; + // DPI_ColorPaletteGroup, having type ColorPaletteGroupPresModel + ParameterId["ColorPaletteGroup"] = "colorPaletteGroup"; + // DPI_CatColorPaletteGroups, having type ColorPaletteGroupPresModel[] + ParameterId["CatColorPaletteGroups"] = "catColorPaletteGroups"; + // DPI_QColorPaletteGroups, having type ColorPaletteGroupPresModel[] + ParameterId["QColorPaletteGroups"] = "qColorPaletteGroups"; + // DPI_ColorPaletteCollection, having type ColorPaletteCollectionPresModel + ParameterId["ColorPaletteCollection"] = "colorPaletteCollection"; + // DPI_QuantitativeColor, having type QuantitativeColorPresModel + ParameterId["QuantitativeColor"] = "quantitativeColor"; + // DPI_CategoricalColor, having type CategoricalColorPresModel + ParameterId["CategoricalColor"] = "categoricalColor"; + // DPI_ItemColorPair, having type ItemColorPairPresModel + ParameterId["ItemColorPair"] = "itemColorPair"; + // DPI_ItemColorPairs, having type ItemColorPairPresModel[] + ParameterId["ItemColorPairs"] = "itemColorPairs"; + // DPI_VQLCommandResponse, having type VQLCommandResponsePresModel + ParameterId["VQLCommandResponse"] = "vqlCmdResponse"; + // DPI_LayoutStatus, having type LayoutStatusPresModel + ParameterId["LayoutStatus"] = "layoutStatus"; + // DPI_VizState, having type VizStatePresModel + ParameterId["VizState"] = "vizState"; + // DPI_VizStateList, having type VizStatePresModel[] + ParameterId["VizStateList"] = "vizStateList"; + // DPI_CommandResult, having type CommandResultPresModel + ParameterId["CommandResult"] = "cmdResult"; + // DPI_CommandResultList, having type CommandResultPresModel[] + ParameterId["CommandResultList"] = "cmdResultList"; + // DPI_URLAction, having type URLActionPresModel + ParameterId["URLAction"] = "urlAction"; + // DPI_URLActionList, having type URLActionPresModel[] + ParameterId["URLActionList"] = "urlActionList"; + // DPI_LegacyMenu, having type LegacyMenuPresModel + ParameterId["LegacyMenu"] = "legacyMenu"; + // DPI_LegacyMenus, having type LegacyMenuPresModel[] + ParameterId["LegacyMenus"] = "legacyMenus"; + // DPI_ConnectionAttemptInfo, having type ConnectionAttemptInfoPresModel + ParameterId["ConnectionAttemptInfo"] = "connectionAttemptInfo"; + // DPI_DataSourceConnectionAttemptInfo, having type DataSourceConnectionAttemptInfoPresModel + ParameterId["DataSourceConnectionAttemptInfo"] = "dataSourceConnectionAttemptInfo"; + // DPI_DataSourceConnectionAttemptInfos, having type DataSourceConnectionAttemptInfoPresModel[] + ParameterId["DataSourceConnectionAttemptInfos"] = "dataSourceConnectionAttemptInfos"; + // DPI_CommandValidationPresModel, having type CommandValidationPresModel + ParameterId["CommandValidationPresModel"] = "commandValidationPresModel"; + // DPI_WarningMessage, having type WarningMessagePresModel + ParameterId["WarningMessage"] = "warningMessagePresModel"; + // DPI_ApplicationPresModel, having type ApplicationPresModel + ParameterId["ApplicationPresModel"] = "applicationPresModel"; + // DPI_ToolbarPresModel, having type ToolbarPresModel + ParameterId["ToolbarPresModel"] = "toolbarPresModel"; + // DPI_WorkbookPresModel, having type WorkbookPresModel + ParameterId["WorkbookPresModel"] = "workbookPresModel"; + // DPI_ServerFonts, having type ServerFontsPresModel + ParameterId["ServerFonts"] = "serverFonts"; + // DPI_PublishDataSourceMetadataPresModel, having type PublishDataSourceMetadataPresModel + ParameterId["PublishDataSourceMetadataPresModel"] = "publishDataSourceMetadataPresModel"; + // DPI_DashboardPresModel, having type DashboardPresModel + ParameterId["DashboardPresModel"] = "dashboardPresModel"; + // DPI_DashboardSizePresModel, having type DashboardSizePresModel + ParameterId["DashboardSizePresModel"] = "dashboardSizePresModel"; + // DPI_DashboardSizeWithValidationPresModel, having type DashboardSizeWithValidationPresModel + ParameterId["DashboardSizeWithValidationPresModel"] = "dashboardSizeWithValidationPresModel"; + // DPI_DashboardInfoPresModel, having type DashboardInfoPresModel + ParameterId["DashboardInfoPresModel"] = "dashboardInfoPresModel"; + // DPI_VisualPresModel, having type VisualPresModel + ParameterId["VisualPresModel"] = "visual"; + // DPI_VisualPresModels, having type VisualPresModel[] + ParameterId["VisualPresModels"] = "visuals"; + // DPI_DropLinesPresModel, having type DropLinesPresModel + ParameterId["DropLinesPresModel"] = "dropLinesPresModel"; + // DPI_DropFieldPresModel, having type DropFieldPresModel + ParameterId["DropFieldPresModel"] = "dropFieldPresModel"; + // DPI_DropFieldResultPresModel, having type DropFieldResultPresModel + ParameterId["DropFieldResultPresModel"] = "dropFieldResultPresModel"; + // DPI_CurrentAxisRange, having type DataValueRangePresModel + ParameterId["CurrentAxisRange"] = "currentAxisRange"; + // DPI_CurrentAxisRangeNoTime, having type DataValueRangePresModel + ParameterId["CurrentAxisRangeNoTime"] = "currentAxisRangeNoTime"; + // DPI_DefaultAxisRange, having type DataValueRangePresModel + ParameterId["DefaultAxisRange"] = "defaultAxisRange"; + // DPI_NewAxisRange, having type DataValueRangePresModel + ParameterId["NewAxisRange"] = "newAxisRange"; + // DPI_AxisOptions, having type AxisOptionsPresModel + ParameterId["AxisOptions"] = "axis"; + // DPI_AxisMajorTicks, having type TickMarkInfoPresModel + ParameterId["AxisMajorTicks"] = "axisMajorTicks"; + // DPI_AxisMinorTicks, having type TickMarkInfoPresModel + ParameterId["AxisMinorTicks"] = "axisMinorTicks"; + // DPI_EditAxisDialog, having type EditAxisDialogPresModel + ParameterId["EditAxisDialog"] = "editAxisDialog"; + // DPI_MarkLabels, having type ScenePresModel + ParameterId["MarkLabels"] = "markLabels"; + // DPI_Scene, having type ScenePresModel + ParameterId["Scene"] = "scene"; + // DPI_MapServer, having type MapServerPresModel + ParameterId["MapServer"] = "mapServer"; + // DPI_VisualList, having type VisualListPresModel + ParameterId["VisualList"] = "visualList"; + // DPI_DrawFirst, having type VisualListPresModel[] + ParameterId["DrawFirst"] = "drawFirst"; + // DPI_DrawLast, having type VisualListPresModel[] + ParameterId["DrawLast"] = "drawLast"; + // DPI_DrawPane, having type VisualListPresModel[] + ParameterId["DrawPane"] = "drawPane"; + // DPI_UserPaneInfo, having type UserPaneInfoPresModel + ParameterId["UserPaneInfo"] = "userPaneInfo"; + // DPI_AnalyticsPane, having type AnalyticsPanePresModel + ParameterId["AnalyticsPane"] = "analyticsPane"; + // DPI_AnalyticsObjectItem, having type AnalyticsObjectItemPresModel + ParameterId["AnalyticsObjectItem"] = "analyticsObjectItem"; + // DPI_AnalyticsObjectItems, having type AnalyticsObjectItemPresModel[] + ParameterId["AnalyticsObjectItems"] = "analyticsObjectItems"; + // DPI_AnalyticsObjectGroup, having type AnalyticsObjectGroupPresModel + ParameterId["AnalyticsObjectGroup"] = "analyticsObjectGroup"; + // DPI_AnalyticsObjectGroups, having type AnalyticsObjectGroupPresModel[] + ParameterId["AnalyticsObjectGroups"] = "analyticsObjectGroups"; + // DPI_DropZoneItem, having type DropZoneItemPresModel + ParameterId["DropZoneItem"] = "dropZoneItem"; + // DPI_DropZoneItems, having type DropZoneItemPresModel[] + ParameterId["DropZoneItems"] = "dropZoneItems"; + // DPI_DropTargetInfo, having type DropTargetInfoPresModel + ParameterId["DropTargetInfo"] = "dropTargetInfo"; + // DPI_Pane, having type PanePresModel + ParameterId["Pane"] = "pane"; + // DPI_Panes, having type PanePresModel[] + ParameterId["Panes"] = "panes"; + // DPI_RadialSelectionDistanceInfo, having type RadialSelectionDistanceInfoPresModel + ParameterId["RadialSelectionDistanceInfo"] = "radialSelectionDistanceInfo"; + // DPI_MapScaleInfo, having type MapScaleInfoPresModel + ParameterId["MapScaleInfo"] = "mapScaleInfo"; + // DPI_RenderNode, having type RenderNodePresModel + ParameterId["RenderNode"] = "renderNode"; + // DPI_RenderNodes, having type RenderNodePresModel[] + ParameterId["RenderNodes"] = "renderNodes"; + // DPI_PredictionBand, having type PredictionBandPresModel + ParameterId["PredictionBand"] = "predictionBand"; + // DPI_PredictionWhisker, having type PredictionWhiskerPresModel + ParameterId["PredictionWhisker"] = "predictionWhisker"; + // DPI_DrawGroup, having type DrawPointsPresModel + ParameterId["DrawGroup"] = "drawGroup"; + // DPI_ClipReset, having type DrawItemPresModel + ParameterId["ClipReset"] = "clipReset"; + // DPI_DrawItem, having type DrawItemPresModel + ParameterId["DrawItem"] = "drawItem"; + // DPI_TransformPop, having type DrawItemPresModel + ParameterId["TransformPop"] = "transformPop"; + // DPI_TransformPush, having type DrawItemPresModel + ParameterId["TransformPush"] = "transformPush"; + // DPI_DrawItems, having type DrawItemPresModel[] + ParameterId["DrawItems"] = "drawItems"; + // DPI_ClipRect, having type DrawPointsPresModel + ParameterId["ClipRect"] = "clipRect"; + // DPI_DrawEllipse, having type DrawPointsPresModel + ParameterId["DrawEllipse"] = "drawEllipse"; + // DPI_DrawFillEllipse, having type DrawPointsPresModel + ParameterId["DrawFillEllipse"] = "drawFillEllipse"; + // DPI_DrawFillPolygon, having type DrawPointsPresModel + ParameterId["DrawFillPolygon"] = "drawFillPolygon"; + // DPI_DrawFillRect, having type DrawPointsPresModel + ParameterId["DrawFillRect"] = "drawFillRect"; + // DPI_DrawPolygon, having type DrawPointsPresModel + ParameterId["DrawPolygon"] = "drawPolygon"; + // DPI_DrawPolyline, having type DrawPointsPresModel + ParameterId["DrawPolyline"] = "drawPolyline"; + // DPI_DrawRect, having type DrawPointsPresModel + ParameterId["DrawRect"] = "drawRect"; + // DPI_DrawFillPath, having type DrawPathPresModel + ParameterId["DrawFillPath"] = "drawFillPath"; + // DPI_DrawPath, having type DrawPathPresModel + ParameterId["DrawPath"] = "drawPath"; + // DPI_DrawText, having type DrawTextPresModel + ParameterId["DrawText"] = "drawText"; + // DPI_DrawImage, having type DrawImagePresModel + ParameterId["DrawImage"] = "drawImage"; + // DPI_ImageTileInfo, having type ImageTileInfoPresModel + ParameterId["ImageTileInfo"] = "tileInfo"; + // DPI_ImageTileInfos, having type ImageTileInfoPresModel[] + ParameterId["ImageTileInfos"] = "tileInfos"; + // DPI_DrawImageTiles, having type DrawImageTilesPresModel + ParameterId["DrawImageTiles"] = "drawImageTiles"; + // DPI_DrawPen, having type DrawPenPresModel + ParameterId["DrawPen"] = "drawPen"; + // DPI_DrawSolidBrush, having type DrawSolidBrushPresModel + ParameterId["DrawSolidBrush"] = "drawSolidBrush"; + // DPI_DrawTextProperties, having type DrawTextPropertiesPresModel + ParameterId["DrawTextProperties"] = "drawTextProps"; + // DPI_DrawGradientBrush, having type DrawGradientBrushPresModel + ParameterId["DrawGradientBrush"] = "drawGradientBrush"; + // DPI_DrawTransform, having type DrawTransformPresModel + ParameterId["DrawTransform"] = "transform"; + // DPI_DrawAntialias, having type DrawAntialiasPresModel + ParameterId["DrawAntialias"] = "drawAntialias"; + // DPI_ImageDictionary, having type ImageDictionaryPresModel + ParameterId["ImageDictionary"] = "imageDictionary"; + // DPI_ColorDictionary, having type ColorDictionaryPresModel + ParameterId["ColorDictionary"] = "colorDictionary"; + // DPI_MarkShape, having type MarkShapePresModel + ParameterId["MarkShape"] = "markShape"; + // DPI_MarkShapeList, having type MarkShapePresModel[] + ParameterId["MarkShapeList"] = "markShapeList"; + // DPI_PaneDescriptor, having type PaneDescriptorPresModel + ParameterId["PaneDescriptor"] = "paneDescriptor"; + // DPI_PDMarks, having type PDMarksPresModel + ParameterId["PDMarks"] = "pdMarks"; + // DPI_PDMarksMap, having type Dictionary(of PDMarksPresModel) + ParameterId["PDMarksMap"] = "pdMarksMap"; + // DPI_LabelTextTable, having type LabelTextTable + ParameterId["LabelTextTable"] = "labelTextTable"; + // DPI_TextTableHelper, having type TextTableHelper + ParameterId["TextTableHelper"] = "textTableHelper"; + // DPI_GeometryTable, having type GeometryTable + ParameterId["GeometryTable"] = "geometryTable"; + // DPI_PaneMarks, having type PaneMarksPresModel + ParameterId["PaneMarks"] = "paneMarks"; + // DPI_PaneMarksList, having type PaneMarksPresModel[] + ParameterId["PaneMarksList"] = "paneMarksList"; + // DPI_BrushingSelection, having type SelectionPresModel + ParameterId["BrushingSelection"] = "brushing"; + // DPI_Selection, having type SelectionPresModel + ParameterId["Selection"] = "selection"; + // DPI_BrushingSelectionList, having type SelectionPresModel[] + ParameterId["BrushingSelectionList"] = "brushingSelectionList"; + // DPI_SelectionList, having type SelectionPresModel[] + ParameterId["SelectionList"] = "selectionList"; + // DPI_ShelfSelectionModel, having type ShelfSelectionPresModel + ParameterId["ShelfSelectionModel"] = "shelfSelectionModel"; + // DPI_ShelfSelectionModels, having type ShelfSelectionPresModel[] + ParameterId["ShelfSelectionModels"] = "shelfSelectionModels"; + // DPI_ShelfSelectionsModel, having type ShelfSelectionsPresModel + ParameterId["ShelfSelectionsModel"] = "shelfSelectionsModel"; + // DPI_DimValSelectionModel, having type DimensionValueSelectionPresModel + ParameterId["DimValSelectionModel"] = "dimensionValueSelectionModel"; + // DPI_DimValSelectionModels, having type DimensionValueSelectionPresModel[] + ParameterId["DimValSelectionModels"] = "dimensionValueSelectionModels"; + // DPI_HierValSelectionModel, having type HierarchicalValueSelectionPresModel + ParameterId["HierValSelectionModel"] = "hierarchicalValueSelectionModel"; + // DPI_HierValSelectionModels, having type HierarchicalValueSelectionPresModel[] + ParameterId["HierValSelectionModels"] = "hierarchicalValueSelectionModels"; + // DPI_QuantRangeSelectionModel, having type QuantativeRangeSelectionPresModel + ParameterId["QuantRangeSelectionModel"] = "quantativeRangeSelectionModel"; + // DPI_QuantRangeSelectionModels, having type QuantativeRangeSelectionPresModel[] + ParameterId["QuantRangeSelectionModels"] = "quantativeRangeSelectionModels"; + // DPI_QuantValueSelectionModel, having type QuantativeValueSelectionPresModel + ParameterId["QuantValueSelectionModel"] = "quantativeValueSelectionModel"; + // DPI_QuantValueSelectionModels, having type QuantativeValueSelectionPresModel[] + ParameterId["QuantValueSelectionModels"] = "quantativeValueSelectionModels"; + // DPI_LegendSelectionInfo, having type LegendSelectionInfoPresModel + ParameterId["LegendSelectionInfo"] = "legendSelectionInfo"; + // DPI_NodeReference, having type NodeReferencePresModel + ParameterId["NodeReference"] = "nodeReference"; + // DPI_PageReference, having type PageReferencePresModel + ParameterId["PageReference"] = "pageReference"; + // DPI_OrientedNodeReference, having type OrientedNodeReferencePresModel + ParameterId["OrientedNodeReference"] = "orientedNodeReference"; + // DPI_OrientedNodeReferences, having type OrientedNodeReferencePresModel[] + ParameterId["OrientedNodeReferences"] = "orientedNodeReferences"; + // DPI_SelectionData, having type SelectionDataPresModel + ParameterId["SelectionData"] = "selectionData"; + // DPI_HighlightedData, having type HighlightedDataPresModel + ParameterId["HighlightedData"] = "highlightedData"; + // DPI_Node, having type NodePresModel + ParameterId["Node"] = "node"; + // DPI_Nodes, having type NodePresModel[] + ParameterId["Nodes"] = "nodes"; + // DPI_SelectedNodes, having type NodePresModel[] + ParameterId["SelectedNodes"] = "selectedNodes"; + // DPI_UserAction, having type ActionPresModel + ParameterId["UserAction"] = "userAction"; + // DPI_UserActions, having type ActionPresModel[] + ParameterId["UserActions"] = "userActions"; + // DPI_LinkSpec, having type LinkSpecPresModel + ParameterId["LinkSpec"] = "linkSpec"; + // DPI_ActionSpecificationModel, having type ActionSpecificationPresModel + ParameterId["ActionSpecificationModel"] = "actionSpecification"; + // DPI_LinkSpecification, having type LinkSpecificationPresModel + ParameterId["LinkSpecification"] = "linkSpecification"; + // DPI_ScriptDescription, having type ScriptDescriptionPresModel + ParameterId["ScriptDescription"] = "scriptDescription"; + // DPI_ActionSource, having type ActionSourcePresModel + ParameterId["ActionSource"] = "actionSource"; + // DPI_FieldExprItem, having type FieldExprItemPresModel + ParameterId["FieldExprItem"] = "fieldExpressionItem"; + // DPI_FieldExprVector, having type FieldExprItemPresModel[] + ParameterId["FieldExprVector"] = "fieldExpressionVector"; + // DPI_ActionComboItem, having type ActionComboItemPresModel + ParameterId["ActionComboItem"] = "actionComboItem"; + // DPI_ActionComboVector, having type ActionComboItemPresModel[] + ParameterId["ActionComboVector"] = "actionComboVector"; + // DPI_ActionSourceCombo, having type ActionSourceComboPresModel + ParameterId["ActionSourceCombo"] = "actionSourceCombo"; + // DPI_ActionDestCombo, having type ActionComboPresModel + ParameterId["ActionDestCombo"] = "actionDestCombo"; + // DPI_ActionFieldList, having type ActionFieldListPresModel + ParameterId["ActionFieldList"] = "actionFieldList"; + // DPI_EditBrushAction, having type EditBrushActionPresModel + ParameterId["EditBrushAction"] = "editBrushAction"; + // DPI_UpdateActionSource, having type UpdateActionSourcePresModel + ParameterId["UpdateActionSource"] = "updateActionSource"; + // DPI_UpdateBrushAction, having type UpdateBrushActionPresModel + ParameterId["UpdateBrushAction"] = "updateBrushAction"; + // DPI_ActionWarnings, having type ActionWarningsPresModel + ParameterId["ActionWarnings"] = "actionWarnings"; + // DPI_EditHyperlinkAction, having type EditHyperlinkActionPresModel + ParameterId["EditHyperlinkAction"] = "editHyperlinkAction"; + // DPI_UpdateHyperlinkAction, having type UpdateHyperlinkActionPresModel + ParameterId["UpdateHyperlinkAction"] = "updateHyperlinkAction"; + // DPI_EditSheetLinkAction, having type EditSheetLinkActionPresModel + ParameterId["EditSheetLinkAction"] = "editSheetlinkAction"; + // DPI_UpdateSheetLinkAction, having type UpdateSheetLinkActionPresModel + ParameterId["UpdateSheetLinkAction"] = "updateSheetlinkAction"; + // DPI_ActionItem, having type ActionItemPresModel + ParameterId["ActionItem"] = "actionItem"; + // DPI_ActionItemList, having type ActionItemPresModel[] + ParameterId["ActionItemList"] = "actionItemList"; + // DPI_DataSegment, having type DataSegmentPresModel + ParameterId["DataSegment"] = "dataSegment"; + // DPI_DataSegments, having type Dictionary(of DataSegmentPresModel) + ParameterId["DataSegments"] = "dataSegments"; + // DPI_DataDictionary, having type DataDictionaryPresModel + ParameterId["DataDictionary"] = "dataDictionary"; + // DPI_VizData, having type VizDataPresModel + ParameterId["VizData"] = "vizData"; + // DPI_VizColumn, having type VizColumnPresModel + ParameterId["VizColumn"] = "vizColumn"; + // DPI_VizColumns, having type VizColumnPresModel[] + ParameterId["VizColumns"] = "vizColumns"; + // DPI_VizDataColumn, having type VizDataColumnPresModel + ParameterId["VizDataColumn"] = "vizDataColumn"; + // DPI_VizDataColumns, having type VizDataColumnPresModel[] + ParameterId["VizDataColumns"] = "vizDataColumns"; + // DPI_VizPaneColumn, having type VizPaneColumnPresModel + ParameterId["VizPaneColumn"] = "vizPaneColumn"; + // DPI_VizPaneColumns, having type VizPaneColumnPresModel[] + ParameterId["VizPaneColumns"] = "vizPaneColumns"; + // DPI_PaneColumns, having type PaneColumnsPresModel + ParameterId["PaneColumns"] = "paneColumns"; + // DPI_PaneColumnsList, having type PaneColumnsPresModel[] + ParameterId["PaneColumnsList"] = "paneColumnsList"; + // DPI_PaneColumnsData, having type PaneColumnsDataPresModel + ParameterId["PaneColumnsData"] = "paneColumnsData"; + // DPI_FilterContext, having type FilterContextPresModel + ParameterId["FilterContext"] = "filterContext"; + // DPI_UberTipPaneData, having type UberTipPaneDataPresModel + ParameterId["UberTipPaneData"] = "ubertipPaneData"; + // DPI_UberTipPaneDatas, having type UberTipPaneDataPresModel[] + ParameterId["UberTipPaneDatas"] = "ubertipPaneDatas"; + // DPI_UberTipData, having type UberTipDataPresModel + ParameterId["UberTipData"] = "ubertipData"; + // DPI_RefLineTip, having type RefLineTipPresModel + ParameterId["RefLineTip"] = "refLineTip"; + // DPI_RefLineTips, having type RefLineTipPresModel[] + ParameterId["RefLineTips"] = "refLineTips"; + // DPI_NumericBin, having type NumericBinPresModel + ParameterId["NumericBin"] = "numericBin"; + // DPI_NumericBinDialog, having type NumericBinDialogPresModel + ParameterId["NumericBinDialog"] = "numericBinDialog"; + // DPI_DomainRange, having type DomainRangePresModel + ParameterId["DomainRange"] = "domainRange"; + // DPI_BinSizeInfo, having type BinSizeInfoPresModel + ParameterId["BinSizeInfo"] = "binSizeInfo"; + // DPI_DetailedErrorDialog, having type DetailedErrorPresModel + ParameterId["DetailedErrorDialog"] = "detailedErrorDialog"; + // DPI_DragSourcePosition, having type ShelfDropPositionPresModel + ParameterId["DragSourcePosition"] = "shelfDragSourcePosition"; + // DPI_DropTargetPosition, having type ShelfDropPositionPresModel + ParameterId["DropTargetPosition"] = "shelfDropTargetPosition"; + // DPI_ShelfDropPosition, having type ShelfDropPositionPresModel + ParameterId["ShelfDropPosition"] = "shelfDropPosition"; + // DPI_ShelfDropPositions, having type ShelfDropPositionPresModel[] + ParameterId["ShelfDropPositions"] = "shelfDropPositions"; + // DPI_ShelfDropModel, having type ShelfDropPresModel + ParameterId["ShelfDropModel"] = "shelfDropModel"; + // DPI_ShelfDropModels, having type ShelfDropPresModel[] + ParameterId["ShelfDropModels"] = "shelfDropModels"; + // DPI_Drag, having type DragPresModel + ParameterId["Drag"] = "drag"; + // DPI_SceneElement, having type SceneElementPresModel + ParameterId["SceneElement"] = "sceneElement"; + // DPI_SceneElements, having type SceneElementPresModel[] + ParameterId["SceneElements"] = "sceneElements"; + // DPI_QuickFilterType, having type QuickFilterType + ParameterId["QuickFilterType"] = "quickFilterType"; + // DPI_CatMode, having type QuickFilterCategoricalMode + ParameterId["CatMode"] = "categoricalMode"; + // DPI_CatCtrl, having type QuickFilterCategoricalCtrl + ParameterId["CatCtrl"] = "categoricalControl"; + // DPI_QuantMode, having type QuickFilterQuantitativeMode + ParameterId["QuantMode"] = "quantitativeMode"; + // DPI_QuantCtrl, having type QuickFilterQuantitativeCtrl + ParameterId["QuantCtrl"] = "quantitativeControl"; + // DPI_ZoneCommon, having type ZoneCommonPresModel + ParameterId["ZoneCommon"] = "zoneCommon"; + // DPI_ZoneCommonListItems, having type ZoneCommonPresModel[] + ParameterId["ZoneCommonListItems"] = "zoneCommonListItems"; + // DPI_Zone, having type ZonePresModel + ParameterId["Zone"] = "zone"; + // DPI_Zones, having type Dictionary(of ZonePresModel) + ParameterId["Zones"] = "zones"; + // DPI_ImageZone, having type ImageZonePresModel + ParameterId["ImageZone"] = "imageZone"; + // DPI_WebZone, having type WebZonePresModel + ParameterId["WebZone"] = "webZone"; + // DPI_ButtonZonePresModel, having type ButtonZonePresModel + ParameterId["ButtonZonePresModel"] = "buttonZone"; + // DPI_ZoneEdgeMoveType, having type ZoneEdgeMove + ParameterId["ZoneEdgeMoveType"] = "zoneEdgeMoveType"; + // DPI_ZoneSide, having type SideType + ParameterId["ZoneSide"] = "zoneSide"; + // DPI_SnapPoint, having type SnapPointPresModel + ParameterId["SnapPoint"] = "snapPoint"; + // DPI_SnapPoints, having type SnapPointPresModel[] + ParameterId["SnapPoints"] = "snapPoints"; + // DPI_TargetPreviewPair, having type DragDropTargetPreviewPairPresModel + ParameterId["TargetPreviewPair"] = "targetPreviewPair"; + // DPI_TargetPreviewPairs, having type DragDropTargetPreviewPairPresModel[] + ParameterId["TargetPreviewPairs"] = "targetPreviewPairs"; + // DPI_ContainerGuide, having type DragDropContainerGuidePresModel + ParameterId["ContainerGuide"] = "containerGuide"; + // DPI_ContainerGuides, having type DragDropContainerGuidePresModel[] + ParameterId["ContainerGuides"] = "containerGuides"; + // DPI_ZoneBorder, having type DragDropZoneBorderPresModel + ParameterId["ZoneBorder"] = "zoneBorder"; + // DPI_ZoneBorders, having type DragDropZoneBorderPresModel[] + ParameterId["ZoneBorders"] = "zoneBorders"; + // DPI_DashboardDragDrop, having type DashboardDragDropPresModel + ParameterId["DashboardDragDrop"] = "zoneDragDrop"; + // DPI_DragZoneResize, having type DragZoneResizePresModel + ParameterId["DragZoneResize"] = "zoneResize"; + // DPI_DashboardText, having type TextRegionPresModel + ParameterId["DashboardText"] = "dashboardText"; + // DPI_DashboardTitle, having type TextRegionPresModel + ParameterId["DashboardTitle"] = "dashboardTitle"; + // DPI_QuickFilterTitle, having type TextRegionPresModel + ParameterId["QuickFilterTitle"] = "quickFilterTitle"; + // DPI_VisualCaption, having type TextRegionPresModel + ParameterId["VisualCaption"] = "visualCaption"; + // DPI_VisualTitle, having type TextRegionPresModel + ParameterId["VisualTitle"] = "visualTitle"; + // DPI_ZoneTitleRegion, having type TextRegionPresModel + ParameterId["ZoneTitleRegion"] = "zoneTitle"; + // DPI_ForecastOptions, having type ForecastPresModel + ParameterId["ForecastOptions"] = "forecastOptions"; + // DPI_ForecastDescription, having type ForecastDescribePresModel + ParameterId["ForecastDescription"] = "forecastDescription"; + // DPI_WorkgroupPublishObject, having type WorkgroupPublishObjectPresModel + ParameterId["WorkgroupPublishObject"] = "publishDataSource"; + // DPI_PublishPermissionsSummary, having type PublishPermissionsSummaryPresModel + ParameterId["PublishPermissionsSummary"] = "publishPermissionsSummary"; + // DPI_CheckNameResults, having type CheckNameResultsPresModel + ParameterId["CheckNameResults"] = "checkNameResults"; + // DPI_ValidatePublishViewsResult, having type ValidatePublishViewsResultPresModel + ParameterId["ValidatePublishViewsResult"] = "validatePublishViewsResult"; + // DPI_PublishAuthenticationSettings, having type PublishAuthenticationSettingsPresModel + ParameterId["PublishAuthenticationSettings"] = "publishAuthenticationSettings"; + // DPI_ManageDatasources, having type ManageDatasourcesPresModel + ParameterId["ManageDatasources"] = "manageDatasources"; + // DPI_CredentialsAuthSettings, having type CredentialsAuthSettingsPresModel + ParameterId["CredentialsAuthSettings"] = "credentialsAuthSettings"; + // DPI_ConnectionCredentialsAuthSettings, having type ConnectionCredentialsAuthSettingsPresModel + ParameterId["ConnectionCredentialsAuthSettings"] = "connectionCredentialsAuthSettings"; + // DPI_ConnectionCredentialsAuthSettingsList, having type ConnectionCredentialsAuthSettingsPresModel[] + ParameterId["ConnectionCredentialsAuthSettingsList"] = "connectionCredentialsAuthSettingsList"; + // DPI_PublishDatasourceFromWorkbookInfo, having type PublishDatasourceFromWorkbookInfoPresModel + ParameterId["PublishDatasourceFromWorkbookInfo"] = "publishDatasourceFromWorkbookInfo"; + // DPI_PublishDatasourcesFromWorkbookInfo, having type PublishDatasourceFromWorkbookInfoPresModel[] + ParameterId["PublishDatasourcesFromWorkbookInfo"] = "publishDatasourcesFromWorkbookInfo"; + // DPI_PublishSheet, having type PublishSheetPresModel + ParameterId["PublishSheet"] = "publishSheet"; + // DPI_PublishSheets, having type PublishSheetPresModel[] + ParameterId["PublishSheets"] = "publishSheets"; + // DPI_PublishObjectViews, having type PublishObjectViewsPresModel + ParameterId["PublishObjectViews"] = "publishObjectViews"; + // DPI_PublishObjectPublishSheetResults, having type PublishObjectPublishSheetResultsPresModel + ParameterId["PublishObjectPublishSheetResults"] = "publishObjectPublishSheetResults"; + // DPI_RefreshExtractSchedulingSettings, having type RefreshExtractSchedulingSettingsPresModel + ParameterId["RefreshExtractSchedulingSettings"] = "refreshExtractSchedulingSettings"; + // DPI_SetRefreshExtractScheduleResult, having type SetRefreshExtractScheduleResultPresModel + ParameterId["SetRefreshExtractScheduleResult"] = "setRefreshExtractScheduleResult"; + // DPI_CheckPublishObjectNameWarningsResults, having type CheckPublishObjectNameWarningsResultsPresModel + ParameterId["CheckPublishObjectNameWarningsResults"] = "checkPublishObjectNameWarningsResults"; + // DPI_PublishDatasourceOnWorkbookPublishResults, having type PublishDatasourceOnWorkbookPublishResultsPresModel + ParameterId["PublishDatasourceOnWorkbookPublishResults"] = "publishDatasourceOnWorkbookPublishResult"; + // DPI_PublishDataSourceResult, having type PublishDataSourceResultPresModel + ParameterId["PublishDataSourceResult"] = "publishDataSourceResult"; + // DPI_PublishWarningMessage, having type PublishWarningMessagePresModel + ParameterId["PublishWarningMessage"] = "publishWarningMessage"; + // DPI_MustDowngradeToPublishWarningMessagePresModel, having type PublishWarningMessagePresModel + ParameterId["MustDowngradeToPublishWarningMessagePresModel"] = "mustDowngradeToPublishWarningMessagePresModel"; + // DPI_PublishSelectedAttributes, having type PublishSelectedAttributesPresModel + ParameterId["PublishSelectedAttributes"] = "publishSelectedAttributes"; + // DPI_AutosaveFile, having type AutosaveFilePresModel + ParameterId["AutosaveFile"] = "autosaveFile"; + // DPI_AutosaveFiles, having type AutosaveFilePresModel[] + ParameterId["AutosaveFiles"] = "autosaveFiles"; + // DPI_FunctionGroup, having type FunctionGroup + ParameterId["FunctionGroup"] = "funcGrp"; + // DPI_FunctionGroups, having type FunctionGroup[] + ParameterId["FunctionGroups"] = "funcGrps"; + // DPI_FunctionArgType, having type FunctionArgType + ParameterId["FunctionArgType"] = "funcArgType"; + // DPI_FunctionArgTypes, having type FunctionArgType[] + ParameterId["FunctionArgTypes"] = "funcArgTypes"; + // DPI_CalculationStyle, having type CalcStyle + ParameterId["CalculationStyle"] = "calculationStyle"; + // DPI_Calculation, having type CalculationPresModel + ParameterId["Calculation"] = "calculation"; + // DPI_TypeInPill, having type CalculationPresModel + ParameterId["TypeInPill"] = "typeInPill"; + // DPI_CalcErrorInfo, having type CalcErrorInfoPresModel + ParameterId["CalcErrorInfo"] = "errorInfo"; + // DPI_CalcErrorInfos, having type CalcErrorInfoPresModel[] + ParameterId["CalcErrorInfos"] = "errorInfoList"; + // DPI_CalcualtionValidation, having type CalculationValidationPresModel + ParameterId["CalcualtionValidation"] = "calculationValidation"; + // DPI_ExpressionFunction, having type ExpressionFunctionPresModel + ParameterId["ExpressionFunction"] = "expressionFunc"; + // DPI_ExpressionFunctions, having type ExpressionFunctionPresModel[] + ParameterId["ExpressionFunctions"] = "expressionFuncList"; + // DPI_ExpressionFunctionsPM, having type ExpressionFunctionsPresModel + ParameterId["ExpressionFunctionsPM"] = "expressionFuncPm"; + // DPI_StyleToken, having type StyleTokenPresModel + ParameterId["StyleToken"] = "styleToken"; + // DPI_StyleTokens, having type StyleTokenPresModel[] + ParameterId["StyleTokens"] = "styleTokenList"; + // DPI_CalcEditorTextSelection, having type CalcEditorTextSelectionPresModel + ParameterId["CalcEditorTextSelection"] = "calcEditorTextSelection"; + // DPI_AutoCompleteItemType, having type AutoCompleteItemType + ParameterId["AutoCompleteItemType"] = "autocompleteType"; + // DPI_AutoCompleteItem, having type AutoCompleteItemPresModel + ParameterId["AutoCompleteItem"] = "autocompleteItem"; + // DPI_AutoCompleteItems, having type AutoCompleteItemPresModel[] + ParameterId["AutoCompleteItems"] = "autocompleteItemList"; + // DPI_CalculationAutoCompleteContextMenu, having type CalculationAutoCompleteContextMenuPresModel + ParameterId["CalculationAutoCompleteContextMenu"] = "calculationAutocompleteContextMenu"; + // DPI_CalcApplyResult, having type CalcApplyResult + ParameterId["CalcApplyResult"] = "calculationApplyResult"; + // DPI_RampBorderStyledBox, having type StyledBoxPresModel + ParameterId["RampBorderStyledBox"] = "rampBorderStyledBox"; + // DPI_StyledBox, having type StyledBoxPresModel + ParameterId["StyledBox"] = "styledBox"; + // DPI_GlobalStyledBox, having type StyledBoxPresModel + ParameterId["GlobalStyledBox"] = "globalStyledBox"; + // DPI_StyleContext, having type StyleContextPresModel + ParameterId["StyleContext"] = "styleContext"; + // DPI_CurrentTextStyle, having type TextStylePresModel + ParameterId["CurrentTextStyle"] = "currentTextStyle"; + // DPI_LabelTextStyle, having type TextStylePresModel + ParameterId["LabelTextStyle"] = "labelTextStyle"; + // DPI_OriginalTextStyle, having type TextStylePresModel + ParameterId["OriginalTextStyle"] = "originalTextStyle"; + // DPI_SelectedTextStyleModel, having type TextStylePresModel + ParameterId["SelectedTextStyleModel"] = "selectedTextStyleModel"; + // DPI_SwatchTextStyleModel, having type TextStylePresModel + ParameterId["SwatchTextStyleModel"] = "swatchTextStyle"; + // DPI_TextStyleModel, having type TextStylePresModel + ParameterId["TextStyleModel"] = "textStyle"; + // DPI_TitleStyleModel, having type TextStylePresModel + ParameterId["TitleStyleModel"] = "titleStyleModel"; + // DPI_PropertyBag, having type PropertyBagPresModel + ParameterId["PropertyBag"] = "propBagWrapper"; + // DPI_PresModelMap, having type Dictionary(of PropertyBagPresModel) + ParameterId["PresModelMap"] = "presModelMap"; + // DPI_PresentationLayerNotifications, having type PresModelMapPresModel + ParameterId["PresentationLayerNotifications"] = "presentationLayerNotifications"; + // DPI_SecondaryInfo, having type PresModelMapPresModel + ParameterId["SecondaryInfo"] = "secondaryInfo"; + // DPI_ClientDashboardUIMetric, having type ClientDashboardUIMetricPresModel + ParameterId["ClientDashboardUIMetric"] = "clientDashboardUiMetric"; + // DPI_ClientDashboardUIMetrics, having type ClientDashboardUIMetricPresModel[] + ParameterId["ClientDashboardUIMetrics"] = "clientDashboardUiMetrics"; + // DPI_ClientDashboardUIMetricContainer, having type ClientDashboardUIMetricContainerPresModel + ParameterId["ClientDashboardUIMetricContainer"] = "clientDashboardUiMetricContainer"; + // DPI_ExtSvcConfig, having type ExtSvcConfigPresModel + ParameterId["ExtSvcConfig"] = "extSvcConfig"; + // DPI_StoryboardSheetItem, having type StoryboardSheetItemPresModel + ParameterId["StoryboardSheetItem"] = "storyboardSheetItem"; + // DPI_StoryboardSheetItems, having type StoryboardSheetItemPresModel[] + ParameterId["StoryboardSheetItems"] = "storyboardSheetItems"; + // DPI_StoryboardSheetList, having type StoryboardSheetListPresModel + ParameterId["StoryboardSheetList"] = "storyboardSheetList"; + // DPI_FitToStoryBoardOptionItem, having type FitToStoryBoardOptionItemPresModel + ParameterId["FitToStoryBoardOptionItem"] = "fitToStoryboardOptionItem"; + // DPI_FitToStoryBoardOptionItems, having type FitToStoryBoardOptionItemPresModel[] + ParameterId["FitToStoryBoardOptionItems"] = "fitToStoryboardOptionItems"; + // DPI_FitToStoryBoardOptionList, having type FitToStoryBoardOptionListPresModel + ParameterId["FitToStoryBoardOptionList"] = "fitToStoryboardOptionList"; + // DPI_StoryPointNavItem, having type StoryPointNavItemPresModel + ParameterId["StoryPointNavItem"] = "storypointNavItem"; + // DPI_StoryPointNavItems, having type StoryPointNavItemPresModel[] + ParameterId["StoryPointNavItems"] = "storypointNavItems"; + // DPI_FlipboardNav, having type FlipboardNavPresModel + ParameterId["FlipboardNav"] = "flipboardNav"; + // DPI_ScrollBarStyle, having type ScrollBarStylePresModel + ParameterId["ScrollBarStyle"] = "scrollBarStyle"; + // DPI_DashboardZoneLayoutPane, having type DashboardZoneLayoutPanePresModel + ParameterId["DashboardZoneLayoutPane"] = "dashboardZoneLayoutPane"; + // DPI_SelectedStoryPointStyle, having type StoryPointCaptionStylePresModel + ParameterId["SelectedStoryPointStyle"] = "selectedStoryPointStyle"; + // DPI_UnselectedStoryPointStyle, having type StoryPointCaptionStylePresModel + ParameterId["UnselectedStoryPointStyle"] = "unselectedStoryPointStyle"; + // DPI_FlipboardNavStyle, having type FlipboardNavStylePresModel + ParameterId["FlipboardNavStyle"] = "flipboardNavStyle"; + // DPI_StoryPoint, having type StoryPointPresModel + ParameterId["StoryPoint"] = "storyPoint"; + // DPI_StoryPoints, having type Dictionary(of StoryPointPresModel) + ParameterId["StoryPoints"] = "storyPoints"; + // DPI_Flipboard, having type FlipboardPresModel + ParameterId["Flipboard"] = "flipboard"; + // DPI_StoryPair, having type StoryPairPresModel + ParameterId["StoryPair"] = "storyPair"; + // DPI_StoryPairs, having type StoryPairPresModel[] + ParameterId["StoryPairs"] = "storyPairs"; + // DPI_StoryboardPM, having type StoryboardPresModel + ParameterId["StoryboardPM"] = "storyboardPm"; + // DPI_HiDpiIconDictionary, having type ImageCollectionPresModel + ParameterId["HiDpiIconDictionary"] = "hiDpiIconDictionary"; + // DPI_IconDictionary, having type ImageCollectionPresModel + ParameterId["IconDictionary"] = "iconDictionary"; + // DPI_IconResourceDictionary, having type ImageResourceCollectionPresModel + ParameterId["IconResourceDictionary"] = "iconResDictionary"; + // DPI_DataPreviewWindowMessage, having type DataPreviewWindowMessagePresModel + ParameterId["DataPreviewWindowMessage"] = "dataPreviewWindowMessage"; + // DPI_DataSourceData, having type DataSourceDataPresModel + ParameterId["DataSourceData"] = "dataSrcData"; + // DPI_DataSourceSort, having type DataSourceSortPresModel + ParameterId["DataSourceSort"] = "dataSrcSort"; + // DPI_ColumnInfo, having type DSColumnInfoPresModel + ParameterId["ColumnInfo"] = "columnInfo"; + // DPI_ColumnInfos, having type DSColumnInfoPresModel[] + ParameterId["ColumnInfos"] = "columnInfos"; + // DPI_DataFormatter, having type DVFormatter + ParameterId["DataFormatter"] = "dataFormatter"; + // DPI_JoinDescription, having type JoinDescriptionPresModel + ParameterId["JoinDescription"] = "joinDescription"; + // DPI_JoinDescriptions, having type Dictionary(of JoinDescriptionPresModel) + ParameterId["JoinDescriptions"] = "joinDescriptions"; + // DPI_FileTableInfo, having type FileTableInfoPresModel + ParameterId["FileTableInfo"] = "fileTableInfo"; + // DPI_FieldMapping, having type FieldMappingPresModel + ParameterId["FieldMapping"] = "fieldMapping"; + // DPI_FieldMappingData, having type FieldMappingDataPresModel + ParameterId["FieldMappingData"] = "fieldMappingData"; + // DPI_FieldMappingDataVector, having type FieldMappingDataPresModel[] + ParameterId["FieldMappingDataVector"] = "fieldMappingDataVector"; + // DPI_FrameFinder, having type FrameFinderPresModel + ParameterId["FrameFinder"] = "frameFinder"; + // DPI_SheetLinkFieldMapping, having type SheetLinkFieldMappingPresModel + ParameterId["SheetLinkFieldMapping"] = "sheetLinkFieldMapping"; + // DPI_UnionInfo, having type UnionInfoPresModel + ParameterId["UnionInfo"] = "unionInfo"; + // DPI_UnionTableInfo, having type UnionTableInfoPresMode + ParameterId["UnionTableInfo"] = "unionTableInfo"; + // DPI_UnionTableInfos, having type UnionTableInfoPresModel[] + ParameterId["UnionTableInfos"] = "unionTableInfos"; + // DPI_ConnectionPBUnionInfo, having type PBUnionInfoPresModel + ParameterId["ConnectionPBUnionInfo"] = "connectionPbunionInfo"; + // DPI_ConnectionPBUnionInfos, having type PBUnionInfoPresModel[] + ParameterId["ConnectionPBUnionInfos"] = "connectionPbunionInfos"; + // DPI_JoinClause, having type JoinClausePresModel + ParameterId["JoinClause"] = "joinClause"; + // DPI_JoinClauses, having type JoinClausePresModel[] + ParameterId["JoinClauses"] = "joinClauses"; + // DPI_JoinValidationResult, having type JoinValidationResultPresModel + ParameterId["JoinValidationResult"] = "joinValidationResult"; + // DPI_JoinTableInfo, having type JoinTableInfoPresModel + ParameterId["JoinTableInfo"] = "joinTableInfo"; + // DPI_ParameterInfo, having type JoinTableInfoPresModel + ParameterId["ParameterInfo"] = "parameterInfo"; + // DPI_JoinTableInfos, having type JoinTableInfoPresModel[] + ParameterId["JoinTableInfos"] = "joinTableInfos"; + // DPI_JoinOnCalcInfo, having type JoinOnCalcInfoPresModel + ParameterId["JoinOnCalcInfo"] = "joinOnCalcInfo"; + // DPI_ConnectionSummary, having type ConnectionSummaryPresModel + ParameterId["ConnectionSummary"] = "connectionSummary"; + // DPI_ConnectionSummaries, having type ConnectionSummaryPresModel[] + ParameterId["ConnectionSummaries"] = "connectionSummaries"; + // DPI_TopLevelConnectionDescription, having type TopLevelConnectionDescriptionPresModel + ParameterId["TopLevelConnectionDescription"] = "topLevelConnectionDescription"; + // DPI_DataConnectionTableViewMessages, having type DataConnectionTableViewMessagesPresModel + ParameterId["DataConnectionTableViewMessages"] = "dataConnectionTableViewMessages"; + // DPI_TextTransformScript, having type TextTransformScriptPresModel + ParameterId["TextTransformScript"] = "textTransformScript"; + // DPI_CalendarDateOptions, having type CalendarDateOptionsPresModel + ParameterId["CalendarDateOptions"] = "calendarDateOptions"; + // DPI_GoToWorksheetTooltipPresModel, having type GoToWorksheetTooltipPresModel + ParameterId["GoToWorksheetTooltipPresModel"] = "goToWorksheetTooltipPresModel"; + // DPI_TableCleaningPresModel, having type TableCleaningPresModel + ParameterId["TableCleaningPresModel"] = "tableCleaningPresModel"; + // DPI_PivotPresModel, having type PivotPresModel + ParameterId["PivotPresModel"] = "pivotPresModel"; + // DPI_PivotTreeItemPresModel, having type PivotTreeItemPresModel + ParameterId["PivotTreeItemPresModel"] = "pivotTreeItemPresModel"; + // DPI_PivotTreeItems, having type PivotTreeItemPresModel[] + ParameterId["PivotTreeItems"] = "pivotTreeItemsPresModel"; + // DPI_PivotDisplay, having type PivotDisplayPresModel + ParameterId["PivotDisplay"] = "pivotDisplay"; + // DPI_PivotTag, having type NameColumnsPairPresModel + ParameterId["PivotTag"] = "pivotTag"; + // DPI_PivotGroups, having type NameColumnsPairPresModel[] + ParameterId["PivotGroups"] = "pivotGroups"; + // DPI_DataSourceDropdown, having type DataSourceDropdownPresModel + ParameterId["DataSourceDropdown"] = "dataSourceDropdown"; + // DPI_ConnectionDropdown, having type ConnectionDropdownPresModel + ParameterId["ConnectionDropdown"] = "connectionDropdown"; + // DPI_ActivityEvent, having type ActivityEventPresModel + ParameterId["ActivityEvent"] = "activityEvent"; + // DPI_UIAutomation, having type UIAutomationPresModel + ParameterId["UIAutomation"] = "uiAutomation"; + // DPI_UIAutomationIndex, having type UIAutomationIndexPresModel + ParameterId["UIAutomationIndex"] = "uiAutomationIndex"; + // DPI_UIAutomationIndexList, having type UIAutomationIndexPresModel[] + ParameterId["UIAutomationIndexList"] = "uiAutomationIndexList"; + // DPI_UIAutomationComponentInfo, having type UIAutomationComponentInfoPresModel + ParameterId["UIAutomationComponentInfo"] = "uiAutomationComponentInfo"; + // DPI_UIAutomationComponentInfoList, having type UIAutomationComponentInfoPresModel[] + ParameterId["UIAutomationComponentInfoList"] = "uiAutomationComponentInfoList"; + // DPI_Geometry, having type GeometryPresModel + ParameterId["Geometry"] = "geometry"; + // DPI_MultiPoint, having type MultiPointPresModel + ParameterId["MultiPoint"] = "multiPoint"; + // DPI_MultiLine, having type MultiLinePresModel + ParameterId["MultiLine"] = "multiLine"; + // DPI_MultiPolygon, having type MultiPolygonPresModel + ParameterId["MultiPolygon"] = "multiPolygon"; + // DPI_Polygon, having type PolygonPresModel + ParameterId["Polygon"] = "polygon"; + // DPI_PolygonList, having type PolygonPresModel[] + ParameterId["PolygonList"] = "polygonList"; + // DPI_Line, having type LinePresModel + ParameterId["Line"] = "line"; + // DPI_LineList, having type LinePresModel[] + ParameterId["LineList"] = "lineList"; + // DPI_TabbedAuthentication, having type TabbedAuthenticationPresModel + ParameterId["TabbedAuthentication"] = "tabbedAuthentication"; + // DPI_TabbedAuthenticationTabInfo, having type TabbedAuthenticationTabInfoPresModel + ParameterId["TabbedAuthenticationTabInfo"] = "tabbedAuthenticationTabInfo"; + // DPI_TabbedAuthenticationTabInfos, having type TabbedAuthenticationTabInfoPresModel[] + ParameterId["TabbedAuthenticationTabInfos"] = "tabbedAuthenticationTabInfos"; + // DPI_GeographicSearchCandidate, having type GeographicSearchCandidatePresModel + ParameterId["GeographicSearchCandidate"] = "geographicSearchCandidate"; + // DPI_GeographicSearchCandidateList, having type GeographicSearchCandidatePresModel[] + ParameterId["GeographicSearchCandidateList"] = "geographicSearchCandidateList"; + // DPI_GeographicSearchResults, having type GeographicSearchPresModel + ParameterId["GeographicSearchResults"] = "geographicSearchResults"; + // DPI_ParamInfo, having type ParameterInfoPresModel + ParameterId["ParamInfo"] = "paramInfo"; + // DPI_ParamInfos, having type ParameterInfoPresModel[] + ParameterId["ParamInfos"] = "paramInfos"; + // DPI_ParamNamespaceInfo, having type ParameterNamespaceInfoInfoPresModel + ParameterId["ParamNamespaceInfo"] = "paramNamespaceInfo"; + // DPI_ParamNamespaceInfos, having type ParameterNamespaceInfoPresModel[] + ParameterId["ParamNamespaceInfos"] = "paramNamespaceInfos"; + // DPI_ParamRegistryInfo, having type ParameterRegistryInfoPresModel + ParameterId["ParamRegistryInfo"] = "paramRegistryInfo"; + // DPI_DataSourceProperties, having type DataSourcePropertiesPresModel + ParameterId["DataSourceProperties"] = "connectionProperties"; + // DPI_ConnectionTypePresModel, having type ConnectionTypePresModel + ParameterId["ConnectionTypePresModel"] = "connectionTypePresModel"; + // DPI_ConnectionTypes, having type ConnectionTypePresModel[] + ParameterId["ConnectionTypes"] = "connectionTypes"; + // DPI_ConnectionTypeGroupPresModel, having type ConnectionTypeGroupPresModel + ParameterId["ConnectionTypeGroupPresModel"] = "connectionTypeGroupPresModel"; + // DPI_SavedDataSourcePresModel, having type SavedDataSourcePresModel + ParameterId["SavedDataSourcePresModel"] = "savedDatasourcePresModel"; + // DPI_SavedDataSources, having type SavedDataSourcePresModel[] + ParameterId["SavedDataSources"] = "savedDatasources"; + // DPI_SavedDataSourcesPresModel, having type SavedDataSourcesPresModel + ParameterId["SavedDataSourcesPresModel"] = "savedDatasourcesPresModel"; + // DPI_OpenPaneItemPresModel, having type OpenPaneItemPresModel + ParameterId["OpenPaneItemPresModel"] = "openPaneItemPresModel"; + // DPI_OpenPaneItems, having type OpenPaneItemPresModel[] + ParameterId["OpenPaneItems"] = "openPaneItems"; + // DPI_OpenPaneItemsPresModel, having type OpenPaneItemsPresModel + ParameterId["OpenPaneItemsPresModel"] = "openPaneItemsPresModel"; + // DPI_VariableValue, having type VariableValuePresModel + ParameterId["VariableValue"] = "variableValue"; + // DPI_VariableValues, having type VariableValuePresModel[] + ParameterId["VariableValues"] = "variableValues"; + // DPI_ServerVariableValue, having type ServerVariableValuePresModel + ParameterId["ServerVariableValue"] = "serverVariableValue"; + // DPI_EditableVariableValue, having type EditableVariableValuePresModel + ParameterId["EditableVariableValue"] = "editableVariableValue"; + // DPI_ServerVariableMetadata, having type ServerVariableMetadataPresModel + ParameterId["ServerVariableMetadata"] = "serverVariableMetadata"; + // DPI_PromptVariable, having type PromptVariablePresModel + ParameterId["PromptVariable"] = "promptVariable"; + // DPI_PromptVariables, having type PromptVariablePresModel[] + ParameterId["PromptVariables"] = "promptVariables"; + // DPI_VariablePromptDialog, having type VariablePromptDialogPresModel + ParameterId["VariablePromptDialog"] = "variablePromptDialog"; + // DPI_VariableValueOperation, having type VariableValueOperationPresModel + ParameterId["VariableValueOperation"] = "variableValueOperation"; + // DPI_VariableValueOperations, having type VariableValueOperationPresModel[] + ParameterId["VariableValueOperations"] = "variableValueOperations"; + // DPI_TableOptionsPresModel, having type TableOptionsPresModel + ParameterId["TableOptionsPresModel"] = "tableOptionsPresModel"; + // DPI_ClientInfoPresModel, having type ClientInfoPresModel + ParameterId["ClientInfoPresModel"] = "clientInfoPresModel"; + // DPI_TableauFileInfoPresModel, having type TableauFileInfoPresModel + ParameterId["TableauFileInfoPresModel"] = "tableauFileInfoPresModel"; + // DPI_DebuggingInfoPresModel, having type DebuggingInfoPresModel + ParameterId["DebuggingInfoPresModel"] = "debuggingInfoPresModel"; + // DPI_RunningThreadInfoPresModel, having type RunningThreadInfoPresModel + ParameterId["RunningThreadInfoPresModel"] = "runningThreadInfoPresModel"; + // DPI_AboutDialogInfoPresModel, having type AboutDialogInfoPresModel + ParameterId["AboutDialogInfoPresModel"] = "aboutDialogInfoPresModel"; + // DPI_HybridUIShowcasePresModel, having type HybridUIShowcasePresModel + ParameterId["HybridUIShowcasePresModel"] = "hybridUiShowcasePresModel"; + // DPI_MenuConfiguration, having type MenuConfigurationPresModel + ParameterId["MenuConfiguration"] = "menuConfiguration"; + // DPI_MenuItem, having type MenuItemPresModel + ParameterId["MenuItem"] = "menuItem"; + // DPI_MenuItemModels, having type MenuItemPresModel[] + ParameterId["MenuItemModels"] = "menuItemModels"; + // DPI_DefaultTextFormat, having type DefaultTextFormatPresModel + ParameterId["DefaultTextFormat"] = "defaultTextFormat"; + // DPI_MapBoxServerInfoPresModel, having type MapBoxServerInfoPresModel + ParameterId["MapBoxServerInfoPresModel"] = "mapboxServerInfoPresModel"; + // DPI_WMSServerInfoPresModel, having type WMSServerInfoPresModel + ParameterId["WMSServerInfoPresModel"] = "wmsServerInfoPresModel"; + // DPI_MapSourceConflictPresModel, having type MapSourceConflictPresModel + ParameterId["MapSourceConflictPresModel"] = "mapSourceConflictPresModel"; + // DPI_EnumeratedSetDialogPresModel, having type EnumeratedSetDialogPresModel + ParameterId["EnumeratedSetDialogPresModel"] = "enumeratedSetDialogPresModel"; + // DPI_EditAliasesDialog, having type EditAliasesDialogPresModel + ParameterId["EditAliasesDialog"] = "editAliasesDialogPresModel"; + // DPI_AliasesPresModel, having type AliasesPresModel + ParameterId["AliasesPresModel"] = "aliasesPresModel"; + // DPI_ClearAliasesPresModel, having type AliasesPresModel + ParameterId["ClearAliasesPresModel"] = "clearAliasesPresModel"; + // DPI_NewAliasesPresModel, having type NewAliasesPresModel + ParameterId["NewAliasesPresModel"] = "newAliasesPresModel"; + // DPI_AliasPresModel, having type AliasPresModel + ParameterId["AliasPresModel"] = "aliasPresModel"; + // DPI_AliasItem, having type AliasItemPresModel + ParameterId["AliasItem"] = "aliasItem"; + // DPI_DuplicateAliasItem, having type AliasItemPresModel + ParameterId["DuplicateAliasItem"] = "duplicateAliasItem"; + // DPI_AliasList, having type AliasItemPresModel[] + ParameterId["AliasList"] = "aliasList"; + // DPI_AliasResultItem, having type AliasResultItemPresModel + ParameterId["AliasResultItem"] = "aliasResultItem"; + // DPI_AliasResultList, having type AliasResultItemPresModel[] + ParameterId["AliasResultList"] = "aliasResultList"; + // DPI_AliasResults, having type AliasResultsPresModel + ParameterId["AliasResults"] = "aliasResults"; + // DPI_EditSetDialogPresModel, having type EditSetDialogPresModel + ParameterId["EditSetDialogPresModel"] = "editSetDialogPresModel"; + // DPI_ConfirmationPresModel, having type ConfirmationPresModel + ParameterId["ConfirmationPresModel"] = "confirmationPresModel"; + // DPI_NotificationPresModel, having type NotificationPresModel + ParameterId["NotificationPresModel"] = "notificationPresModel"; + // DPI_RetargetDataSourceDialogPresModel, having type RetargetDataSourceDialogPresModel + ParameterId["RetargetDataSourceDialogPresModel"] = "retargetDatasourceDialogPresModel"; + // DPI_SharedFilterPresModel, having type SharedFilterPresModel + ParameterId["SharedFilterPresModel"] = "sharedFilterPresModel"; + // DPI_SharedFilterWorksheetInfo, having type SharedFilterWorksheetInfoPresModel + ParameterId["SharedFilterWorksheetInfo"] = "sharedFilterWorksheetInfo"; + // DPI_SharedFilterWorksheetInfoList, having type SharedFilterWorksheetInfoPresModel[] + ParameterId["SharedFilterWorksheetInfoList"] = "sharedFilterWorksheetInfoList"; + // DPI_FieldPickerTreePresModel, having type FieldPickerTreePresModel + ParameterId["FieldPickerTreePresModel"] = "fieldPickerTreePresModel"; + // DPI_FieldPickerTreePresModelSource, having type FieldPickerTreePresModel + ParameterId["FieldPickerTreePresModelSource"] = "fieldPickerTreePresModelSource"; + // DPI_FieldPickerTreePresModelTarget, having type FieldPickerTreePresModel + ParameterId["FieldPickerTreePresModelTarget"] = "fieldPickerTreePresModelTarget"; + // DPI_ErrorInfo, having type ErrorInfoPresModel + ParameterId["ErrorInfo"] = "errorInfoPresModel"; + // DPI_CustomSplitPresModel, having type CustomSplitPresModel + ParameterId["CustomSplitPresModel"] = "customSplitPresModel"; + // DPI_PageSetup, having type PageSetupPresModel + ParameterId["PageSetup"] = "pageSetup"; + // DPI_ServerConnectStatus, having type ServerConnectionStatus + ParameterId["ServerConnectStatus"] = "serverConnectionStatus"; + // DPI_GetFilterItemsResponse, having type GetFilterItemsResponsePresModel + ParameterId["GetFilterItemsResponse"] = "getFilterItemsResponse"; + // DPI_FilterSearchResponse, having type FilterSearchResponsePresModel + ParameterId["FilterSearchResponse"] = "filterSearchResponse"; + // DPI_FilterSearchWithIndexResponse, having type FilterSearchWithIndexResponsePresModel + ParameterId["FilterSearchWithIndexResponse"] = "filterSearchWithIndexResponse"; + // DPI_FilterShowChildrenResponse, having type FilterShowChildrenResponsePresModel + ParameterId["FilterShowChildrenResponse"] = "filterShowChildrenResponse"; + // DPI_EditDataServerConnection, having type EditDataServerConnectionPresModel + ParameterId["EditDataServerConnection"] = "editDataServerConnection"; + // DPI_ImagesEdit, having type ImagesEditPresModel + ParameterId["ImagesEdit"] = "imagesEdit"; + // DPI_BackgroundImage, having type BackgroundImagePresModel + ParameterId["BackgroundImage"] = "backgroundImage"; + // DPI_BackgroundImages, having type BackgroundImagePresModel[] + ParameterId["BackgroundImages"] = "backgroundImages"; + // DPI_Predicate, having type PredicatePresModel + ParameterId["Predicate"] = "predicate"; + // DPI_Predicates, having type PredicatePresModel[] + ParameterId["Predicates"] = "predicates"; + // DPI_ImagesEditResult, having type ImagesEditResultPresModel + ParameterId["ImagesEditResult"] = "imagesEditResult"; + // DPI_SortDialogPresModel, having type SortDialogPresModel + ParameterId["SortDialogPresModel"] = "sortDialogPresModel"; + // DPI_CompoundTableCalc, having type CompoundTableCalculationPresModel + ParameterId["CompoundTableCalc"] = "compoundTableCalculationPresModel"; + // DPI_TableCalc, having type TableCalculationPresModel + ParameterId["TableCalc"] = "tableCalculationPresModel"; + // DPI_TableCalcs, having type TableCalculationPresModel[] + ParameterId["TableCalcs"] = "tableCalculationPresModels"; + // DPI_TableCalcIdentifier, having type TableCalcIdentifierPresModel + ParameterId["TableCalcIdentifier"] = "tableCalcIdentifier"; + // DPI_NestedTableCalcInfo, having type NestedTableCalcInfoPresModel + ParameterId["NestedTableCalcInfo"] = "nestedTableCalcInfo"; + // DPI_NestedTableCalcInfos, having type NestedTableCalcInfoPresModel[] + ParameterId["NestedTableCalcInfos"] = "nestedTableCalcInfos"; + // DPI_Ordering, having type TableCalcOrderingPresModel + ParameterId["Ordering"] = "tableCalcOrderingPresModel"; + // DPI_Cumulative, having type CumulativeTableCalcPresModel + ParameterId["Cumulative"] = "cumulativeTableCalcPresModel"; + // DPI_ReferenceOptions, having type TableCalcReferenceOptionsPresModel + ParameterId["ReferenceOptions"] = "tableCalcReferenceOptionsPresModel"; + // DPI_Difference, having type DifferenceTableCalcPresModel + ParameterId["Difference"] = "differenceTableCalcPresModel"; + // DPI_Window, having type WindowTableCalcPresModel + ParameterId["Window"] = "windowTableCalcPresModel"; + // DPI_PercentTotal, having type PercentTotalTableCalcPresModel + ParameterId["PercentTotal"] = "percentTotalTableCalcPresModel"; + // DPI_Rank, having type RankTableCalcPresModel + ParameterId["Rank"] = "rankTableCalcPresModel"; + // DPI_Custom, having type CustomTableCalcPresModel + ParameterId["Custom"] = "customTableCalcPresModel"; + // DPI_WebDataUrl, having type WebDataUrlPresModel + ParameterId["WebDataUrl"] = "webDataUrl"; + // DPI_VisitedWebDataConnectors, having type WebDataUrlPresModel[] + ParameterId["VisitedWebDataConnectors"] = "visitedWebDataConnectors"; + // DPI_WebDataSessionUrls, having type WebDataUrlPresModel[] + ParameterId["WebDataSessionUrls"] = "webDataSessionUrls"; + // DPI_WebDataUrls, having type WebDataUrlPresModel[] + ParameterId["WebDataUrls"] = "webDataUrls"; + // DPI_FieldPicker, having type FieldPickerPresModel + ParameterId["FieldPicker"] = "fieldPicker"; + // DPI_DescribeField, having type DescribeFieldPresModel + ParameterId["DescribeField"] = "describeField"; + // DPI_ShowDataPresModel, having type ShowDataPresModel + ParameterId["ShowDataPresModel"] = "showDataPresModel"; + // DPI_DataTablePresModel, having type ShowDataTablePresModel + ParameterId["DataTablePresModel"] = "dataTablePresModel"; + // DPI_DataTablePresModels, having type ShowDataTablePresModel[] + ParameterId["DataTablePresModels"] = "dataTablePresModels"; + // DPI_SummaryTablePresModels, having type ShowDataTablePresModel[] + ParameterId["SummaryTablePresModels"] = "summaryTablePresModels"; + // DPI_RefreshAllExtractsPresModel, having type RefreshAllExtractsPresModel + ParameterId["RefreshAllExtractsPresModel"] = "refeshAllExtractsPresModel"; + // DPI_RefreshExtractDataSourcePresModel, having type RefreshExtractDataSourcePresModel + ParameterId["RefreshExtractDataSourcePresModel"] = "refreshExtractDatasourcePresModel"; + // DPI_RefreshExtractDataSourceList, having type RefreshExtractDataSourcePresModel[] + ParameterId["RefreshExtractDataSourceList"] = "refreshExtractDatasourceList"; + // DPI_ExtractHistoryPresModel, having type ExtractHistoryPresModel + ParameterId["ExtractHistoryPresModel"] = "extractHistoryPresModel"; + // DPI_ExtractHistoryItemPresModel, having type ExtractHistoryItemPresModel + ParameterId["ExtractHistoryItemPresModel"] = "extractHistoryItem"; + // DPI_ExtractHistoryList, having type ExtractHistoryItemPresModel[] + ParameterId["ExtractHistoryList"] = "extractHistoryList"; + // DPI_DataProviderPresModel, having type DataProviderPresModel + ParameterId["DataProviderPresModel"] = "dataProviderPresModel"; + // DPI_FormatItem, having type FormatItemPresModel + ParameterId["FormatItem"] = "formatItem"; + // DPI_FormatItemList, having type FormatItemPresModel[] + ParameterId["FormatItemList"] = "formatItemList"; + // DPI_FormatContainer, having type FormatContainerPresModel + ParameterId["FormatContainer"] = "formatContainer"; + // DPI_FormatPane, having type FormatPanePresModel + ParameterId["FormatPane"] = "formatPane"; + // DPI_FormatSection, having type FormatSectionPresModel + ParameterId["FormatSection"] = "formatSection"; + // DPI_CollapsibleSection, having type CollapsibleSectionPresModel + ParameterId["CollapsibleSection"] = "collapsibleSection"; + // DPI_CompositeContainer, having type CompositeContainerPresModel + ParameterId["CompositeContainer"] = "compositeContainer"; + // DPI_UnitContainer, having type UnitContainerPresModel + ParameterId["UnitContainer"] = "unitContainer"; + // DPI_TabGroup, having type TabGroupPresModel + ParameterId["TabGroup"] = "tabGroup"; + // DPI_Tab, having type TabPresModel + ParameterId["Tab"] = "tab"; + // DPI_FormatControl, having type FormatControlPresModel + ParameterId["FormatControl"] = "formatControl"; + // DPI_TextControl, having type TextControlPresModel + ParameterId["TextControl"] = "textControl"; + // DPI_NumericControl, having type NumericControlPresModel + ParameterId["NumericControl"] = "numericControl"; + // DPI_ColorControl, having type ColorControlPresModel + ParameterId["ColorControl"] = "colorControl"; + // DPI_ToggleControl, having type ToggleControlPresModel + ParameterId["ToggleControl"] = "toggleControl"; + // DPI_SelectorControl, having type SelectorControlPresModel + ParameterId["SelectorControl"] = "enumStringStyle"; + // DPI_StatsAnalyticSpec, having type StatsAnalyticSpecPresModel + ParameterId["StatsAnalyticSpec"] = "statsAnalyticSpec"; + // DPI_ClusterSpec, having type ClusterSpecPresModel + ParameterId["ClusterSpec"] = "clusteringSpec"; + // DPI_ClusterResults, having type ClusterResultsPresModel + ParameterId["ClusterResults"] = "clusterResults"; + // DPI_ClusterUnit, having type ClusterUnitPresModel + ParameterId["ClusterUnit"] = "cluster"; + // DPI_ClusterUnits, having type ClusterUnitPresModel[] + ParameterId["ClusterUnits"] = "clusterUnitPresModels"; + // DPI_ClusterFieldANOVA, having type ClusterFieldANOVAPresModel + ParameterId["ClusterFieldANOVA"] = "clusterFieldAnova"; + // DPI_ClusterFieldANOVATable, having type ClusterFieldANOVAPresModel[] + ParameterId["ClusterFieldANOVATable"] = "clusterFieldAnovaTablePresModel"; + // DPI_ClusterEdit, having type ClusterEditPresModel + ParameterId["ClusterEdit"] = "clusterEditPresModel"; + // DPI_ClusterDescription, having type ClusterDescribePresModel + ParameterId["ClusterDescription"] = "clusterDescription"; + // DPI_OutlierResults, having type OutlierResultsPresModel + ParameterId["OutlierResults"] = "outlierResults"; + // DPI_ConnectToDataServerSourceResult, having type ConnectToDataServerSourceResultPresModel + ParameterId["ConnectToDataServerSourceResult"] = "connectToDataServerSourceResult"; + // DPI_DataServerConnectionReturnStatus, having type ConnectToDataServerSourceResultPresModel + ParameterId["DataServerConnectionReturnStatus"] = "dataServerConnectionReturnStatus"; + // DPI_WebQuantitativeColorDialog, having type WebQuantitativeColorDialogPresModel + ParameterId["WebQuantitativeColorDialog"] = "quantitativeColorDialog"; + // DPI_WebCategoricalColorDialog, having type WebCategoricalColorDialogPresModel + ParameterId["WebCategoricalColorDialog"] = "categoricalColorDialog"; + // DPI_WebSaveDatasourceDialog, having type WebSaveDatasourceDialogPresModel + ParameterId["WebSaveDatasourceDialog"] = "saveDatasourceDialog"; + // DPI_BorderStyleSpec, having type StyleSpecPresModel + ParameterId["BorderStyleSpec"] = "borderStyleSpec"; + // DPI_HaloStyleSpec, having type StyleSpecPresModel + ParameterId["HaloStyleSpec"] = "haloStyleSpec"; + // DPI_MarksColorUberEffects, having type MarksColorUberEffectsPresModel + ParameterId["MarksColorUberEffects"] = "marksColorUberEffects"; + // DPI_CategoricalColorEncoding, having type CategoricalColorEncodingPresModel + ParameterId["CategoricalColorEncoding"] = "categoricalColorEncoding"; + // DPI_CategoricalShapeEncoding, having type CategoricalShapeEncodingPresModel + ParameterId["CategoricalShapeEncoding"] = "categoricalShapeEncoding"; + // DPI_ShapePalettePresModel, having type ShapePalettePresModel + ParameterId["ShapePalettePresModel"] = "shapePalettePresModel"; + // DPI_ShapePalettePresModels, having type ShapePalettePresModel[] + ParameterId["ShapePalettePresModels"] = "shapePalettePresModels"; + // DPI_DataSourceDateProperties, having type DataSourceDatePropertiesPresModel + ParameterId["DataSourceDateProperties"] = "datasourceDateProperties"; + // DPI_DatePropertiesDateFormat, having type DatePropertiesDateFormatPresModel + ParameterId["DatePropertiesDateFormat"] = "datePropertiesDateFormat"; + // DPI_DatePropertiesDateFormats, having type DatePropertiesDateFormatPresModel[] + ParameterId["DatePropertiesDateFormats"] = "datePropertiesDateFormats"; + // DPI_HierarchySelect, having type HierarchySelectModel + ParameterId["HierarchySelect"] = "hierarchySelect"; + // DPI_HierarchySelectMember, having type HierarchySelectMemberPresModel + ParameterId["HierarchySelectMember"] = "hierarchySelectMember"; + // DPI_HierarchySelectMemberList, having type HierarchySelectMemberPresModel[] + ParameterId["HierarchySelectMemberList"] = "hierarchySelectMemberList"; + // DPI_HierarchySetDefaultMember, having type HierarchySetDefaultMemberPresModel + ParameterId["HierarchySetDefaultMember"] = "hierarchySetDefaultMember"; + // DPI_SemiStructSchema, having type SemiStructSchemaPresModel + ParameterId["SemiStructSchema"] = "semiStructSchema"; + // DPI_SemiStructSchemaMember, having type SemiStructSchemaMemberPresModel + ParameterId["SemiStructSchemaMember"] = "semiStructSchemaMember"; + // DPI_SemiStructSchemaMemberList, having type SemiStructSchemaMemberPresModel[] + ParameterId["SemiStructSchemaMemberList"] = "semiStructSchemaMemberList"; + // DPI_ParameterEditInfo, having type ParameterEditInfoPresModel + ParameterId["ParameterEditInfo"] = "parameterEditInfo"; + // DPI_ProductParameterInfo, having type ProductParameterInfoPresModel + ParameterId["ProductParameterInfo"] = "productParameterInfo"; + // DPI_CaptionedDatasourceField, having type CaptionedDatasourceInfoPresModel + ParameterId["CaptionedDatasourceField"] = "captionedDatasourceField"; + // DPI_CaptionedDatasourceFields, having type CaptionedDatasourceInfoPresModel[] + ParameterId["CaptionedDatasourceFields"] = "captionedDatasourceFields"; + // DPI_EditedParameterRangeDomain, having type ParameterRangeDomainPresModel + ParameterId["EditedParameterRangeDomain"] = "editedParameterRangeDomain"; + // DPI_ParameterRangeDomain, having type ParameterRangeDomainPresModel + ParameterId["ParameterRangeDomain"] = "parameterRangeDomain"; + // DPI_ParameterListDomain, having type ParameterListDomainPresModel + ParameterId["ParameterListDomain"] = "parameterListDomain"; + // DPI_ParameterListDomainMember, having type ParameterListDomainMemberPresModel + ParameterId["ParameterListDomainMember"] = "parameterListDomainMember"; + // DPI_ParameterListDomainMembers, having type ParameterListDomainMemberPresModel[] + ParameterId["ParameterListDomainMembers"] = "parameterListDomainMembers"; + // DPI_IndexedDomainMember, having type IndexedDomainMemberPresModel + ParameterId["IndexedDomainMember"] = "indexedDomainMember"; + // DPI_IndexedDomainMembers, having type IndexedDomainMemberPresModel[] + ParameterId["IndexedDomainMembers"] = "indexedDomainMembers"; + // DPI_NewIndexedDomainMembers, having type IndexedDomainMemberPresModel[] + ParameterId["NewIndexedDomainMembers"] = "newIndexedDomainMembers"; + // DPI_ParameterListDomainDiff, having type parameter-list-domain-diff + ParameterId["ParameterListDomainDiff"] = "parameterListDomainDiff"; + // DPI_IndexRange, having type IndexRangePresModel + ParameterId["IndexRange"] = "indexRange"; + // DPI_IndexRanges, having type IndexRangePresModel[] + ParameterId["IndexRanges"] = "indexRanges"; + // DPI_CategoricalFind, having type CategoricalFindPresModel + ParameterId["CategoricalFind"] = "categoricalFind"; + // DPI_CaptionedDataValue, having type CaptionedDataValuePresModel + ParameterId["CaptionedDataValue"] = "captionedDataValue"; + // DPI_SelectedValueCaption, having type CaptionedDataValuePresModel + ParameterId["SelectedValueCaption"] = "selectedValueCaption"; + // DPI_DataValueCaptionList, having type CaptionedDataValuePresModel[] + ParameterId["DataValueCaptionList"] = "dataValueCatpionList"; + // DPI_RangeDataValue, having type RangeDataValuePresModel + ParameterId["RangeDataValue"] = "rangeDataValue"; + // DPI_ParameterRangeDataValue, having type RangeDataValuePresModel + ParameterId["ParameterRangeDataValue"] = "parameterRangeDataValue"; + // DPI_DataValueRangeCaptions, having type DataValueRangeCaptionsPresModel + ParameterId["DataValueRangeCaptions"] = "dataValueRangeCaptions"; + // DPI_IndependentDimension, having type IndependentDimensionPresModel + ParameterId["IndependentDimension"] = "independentDimension"; + // DPI_IndependentDimensions, having type IndependentDimensionPresModel[] + ParameterId["IndependentDimensions"] = "independentDimensions"; + // DPI_AttributePerspective, having type PerspectivePresModel + ParameterId["AttributePerspective"] = "attributePerspective"; + // DPI_CubePerspective, having type PerspectivePresModel + ParameterId["CubePerspective"] = "cubePerspective"; + // DPI_AttributePerspectives, having type PerspectivePresModel[] + ParameterId["AttributePerspectives"] = "attributePerspectives"; + // DPI_CalculatedMembersForEditingPresModel, having type EditCalculatedMembersPresModel + ParameterId["CalculatedMembersForEditingPresModel"] = "calculatedMembersForEditingPresmodel"; + // DPI_CalculatedMember, having type CalculatedMemberPresModel + ParameterId["CalculatedMember"] = "calculatedMember"; + // DPI_NewCalculatedMember, having type CalculatedMemberPresModel + ParameterId["NewCalculatedMember"] = "newCalculatedMember"; + // DPI_UpdatedCalculatedMember, having type CalculatedMemberPresModel + ParameterId["UpdatedCalculatedMember"] = "updatedCalculatedMember"; + // DPI_CalculatedMembersList, having type CalculatedMemberPresModel[] + ParameterId["CalculatedMembersList"] = "calculatedMembersList"; + // DPI_CalculatedMemberHierarchyItem, having type CalculatedMemberHierarchyItemPresModel + ParameterId["CalculatedMemberHierarchyItem"] = "calculatedMemberHierarchyItem"; + // DPI_CalculatedMemberHierarchyList, having type CalculatedMemberHierarchyItemPresModel[] + ParameterId["CalculatedMemberHierarchyList"] = "calculatedMemberHierarchyList"; + // DPI_SummaryCardPresModel, having type SummaryCardPresModel + ParameterId["SummaryCardPresModel"] = "summaryCard"; + // DPI_MeasureSummary, having type MeasureSummaryPresModel + ParameterId["MeasureSummary"] = "measureSummary"; + // DPI_MeasureSummaryList, having type MeasureSummaryPresModel[] + ParameterId["MeasureSummaryList"] = "measureSummaryList"; + // DPI_AnnotationPresModel, having type AnnotationPresModel + ParameterId["AnnotationPresModel"] = "annotation"; + // DPI_AnnotationList, having type AnnotationPresModel[] + ParameterId["AnnotationList"] = "annotationList"; + // DPI_AnnotationShapeStyle, having type AnnotationShapeStylePresModel + ParameterId["AnnotationShapeStyle"] = "annotationShapeStyle"; + // DPI_Telemetry, having type TelemetryPresModel + ParameterId["Telemetry"] = "telemetry"; + // DPI_DataSourceTelemetry, having type DataSourceTelemetryPresModel + ParameterId["DataSourceTelemetry"] = "dataSourceTelemetry"; + // DPI_DataSourceTelemetryList, having type DataSourceTelemetryPresModel[] + ParameterId["DataSourceTelemetryList"] = "dataSourceTelemetryList"; + // DPI_VisualSpecificationTelemetry, having type VisualSpecificationTelemetryPresModel + ParameterId["VisualSpecificationTelemetry"] = "visualSpecificationTelemetry"; + // DPI_VisualSpecificationTelemetryList, having type VisualSpecificationTelemetryPresModel[] + ParameterId["VisualSpecificationTelemetryList"] = "visualSpecificationTelemetryList"; + // DPI_UnderlyingDataTable, having type UnderlyingDataTablePresModel + ParameterId["UnderlyingDataTable"] = "underlyingDataTable"; + // DPI_UnderlyingDataTables, having type UnderlyingDataTablePresModel[] + ParameterId["UnderlyingDataTables"] = "underlyingDataTables"; + // DPI_UnderlyingDataTableColumn, having type UnderlyingDataTableColumnPresModel + ParameterId["UnderlyingDataTableColumn"] = "underlyingDataTableColumn"; + // DPI_UnderlyingDataTableColumns, having type UnderlyingDataTableColumnPresModel[] + ParameterId["UnderlyingDataTableColumns"] = "underlyingDataTableColumns"; + // DPI_PageCacheID, having type PageCacheIDPresModel + ParameterId["PageCacheID"] = "pageCacheId"; + // DPI_RelationalPageCacheID, having type PageCacheIDPresModel + ParameterId["RelationalPageCacheID"] = "relationalPageCacheId"; + // DPI_SearchResultsCacheID, having type PageCacheIDPresModel + ParameterId["SearchResultsCacheID"] = "searchResultsCacheId"; + // DPI_PageInfo, having type PageInfoPresModel + ParameterId["PageInfo"] = "pageInfo"; + // DPI_RowColPair, having type RowColPairPresModel + ParameterId["RowColPair"] = "rowColPair"; + // DPI_TopLeftRowCol, having type RowColPairPresModel + ParameterId["TopLeftRowCol"] = "topLeftRowCol"; + // DPI_BotRightRowCol, having type RowColPairPresModel + ParameterId["BotRightRowCol"] = "botRightRowCol"; + // DPI_RowColPairs, having type RowColPairPresModel[] + ParameterId["RowColPairs"] = "rowColPairs"; + // DPI_TableViewCacheInfo, having type TableViewCachePresModel + ParameterId["TableViewCacheInfo"] = "tableViewCacheInfo"; + // DPI_TableViewInfo, having type tableViewInfoPresModel + ParameterId["TableViewInfo"] = "tableViewInfo"; + // DPI_TableViewColumnInfo, having type TableViewColumnInfoPresModel + ParameterId["TableViewColumnInfo"] = "tableViewColumnInfo"; + // DPI_TableViewColumns, having type TableViewColumnInfoPresModel[] + ParameterId["TableViewColumns"] = "tableViewColumns"; + // DPI_TableViewPageItem, having type TableViewPageItemPresModel + ParameterId["TableViewPageItem"] = "tableViewPageItem"; + // DPI_TableViewPageColumns, having type TableViewPageItemPresModel[] + ParameterId["TableViewPageColumns"] = "tableViewPageColumns"; + // DPI_TableViewPageRow, having type TableViewPageRowPresModel + ParameterId["TableViewPageRow"] = "tableViewPageRow"; + // DPI_TableViewPageRows, having type TableViewPageRowPresModel[] + ParameterId["TableViewPageRows"] = "tableViewPageRows"; + // DPI_TableViewPage, having type TableViewPagePresModel + ParameterId["TableViewPage"] = "tableViewPage"; + // DPI_CategoricalValuePicker, having type CategoricalValuePickerPresModel + ParameterId["CategoricalValuePicker"] = "categoricalValuePicker"; + // DPI_AnnotationShapeBorderStyle, having type LineStylePresModel + ParameterId["AnnotationShapeBorderStyle"] = "annotationShapeBorderStyle"; + // DPI_AnotationShapeStrokeStyle, having type LineStylePresModel + ParameterId["AnotationShapeStrokeStyle"] = "annotationShapeStrokeStyle"; + // DPI_CategoricalBinEditorPresModel, having type CategoricalBinEditorPresModel + ParameterId["CategoricalBinEditorPresModel"] = "categoricalBinEditor"; + // DPI_CategoricalBinItem, having type CategoricalBinItemPresModel + ParameterId["CategoricalBinItem"] = "categoricalBinItemPresModel"; + // DPI_CategoricalBinItems, having type CategoricalBinItemPresModel[] + ParameterId["CategoricalBinItems"] = "categoricalBinItemPresModels"; + // DPI_MeasurePickerFieldInfo, having type MeasurePickerFieldInfoPresModel + ParameterId["MeasurePickerFieldInfo"] = "measurePickerFieldInfo"; + // DPI_MeasurePickerFields, having type MeasurePickerFieldInfoPresModel[] + ParameterId["MeasurePickerFields"] = "measurePickerFields"; + // DPI_MeasureAggregationInfo, having type MeasureAggregationInfoPresModel + ParameterId["MeasureAggregationInfo"] = "measureAggregationInfo"; + // DPI_MeasureAggregations, having type MeasureAggregationInfoPresModel[] + ParameterId["MeasureAggregations"] = "measureAggregations"; + // DPI_TuplePair, having type TuplePairPresModel + ParameterId["TuplePair"] = "tuplePair"; + // DPI_DimensionBound, having type DimensionBoundPresModel + ParameterId["DimensionBound"] = "dimensionBound"; + // DPI_PerspectiveBounds, having type DimensionBoundPresModel[] + ParameterId["PerspectiveBounds"] = "perspectiveBounds"; + // DPI_FilterPerspectiveInfoPresModel, having type FilterPerspectiveInfoPresModel + ParameterId["FilterPerspectiveInfoPresModel"] = "filterPerspectiveInfo"; + // DPI_TableRelevance, having type TableRelevancePresModel + ParameterId["TableRelevance"] = "tableRelevance"; + // DPI_AddInRegistrationPresModel, having type AddInRegistrationPresModel + ParameterId["AddInRegistrationPresModel"] = "addInRegistrationPresModel"; + // DPI_AddInRegistrationPresModelList, having type AddInRegistrationPresModel[] + ParameterId["AddInRegistrationPresModelList"] = "addInRegistrationPresModelList"; + // DPI_AddInDashboardAuthoringWidget, having type AddInDashboardWidgetPresModel + ParameterId["AddInDashboardAuthoringWidget"] = "addInDashboardAuthoringWidgetPresModel"; + // DPI_AddInInstance, having type AddInInstancePresModel + ParameterId["AddInInstance"] = "addInInstancePresModel"; + // DPI_AddInLocator, having type AddInLocatorPresModel + ParameterId["AddInLocator"] = "addInLocatorPresModel"; + // DPI_AddInContext, having type AddInContext + ParameterId["AddInContext"] = "addInContext"; + // DPI_AddInMode, having type AddInMode + ParameterId["AddInMode"] = "addInMode"; + // DPI_SetAxisRangeResult, having type SetAxisRangeResult + ParameterId["SetAxisRangeResult"] = "setAxisRangeResult"; + // DPI_SetTickOriginResult, having type SetTickOriginResult + ParameterId["SetTickOriginResult"] = "setTickOriginResult"; + // DPI_SetTickSpacingResult, having type SetTickSpacingResult + ParameterId["SetTickSpacingResult"] = "setTickSpacingResult"; + // DPI_AxisExtentStartType, having type AxisExtentType + ParameterId["AxisExtentStartType"] = "axisExtentStartType"; + // DPI_AxisExtentEndType, having type AxisExtentType + ParameterId["AxisExtentEndType"] = "axisExtentEndType"; + // DPI_AxisExtentsType, having type AxisExtentType + ParameterId["AxisExtentsType"] = "axisExtentsType"; + // DPI_AddInEnvironment, having type AddInEnvironmentPresModel + ParameterId["AddInEnvironment"] = "addInEnvironmentPresModel"; + // DPI_AddInDashboardInfo, having type AddInDashboardInfoPresModel + ParameterId["AddInDashboardInfo"] = "addInDashboardInfoPresModel"; + // DPI_AddInSettingsInfo, having type AddInSettingsInfoPresModel + ParameterId["AddInSettingsInfo"] = "addInSettingsInfo"; + // DPI_AddInBootstrapInfo, having type AddInBootstrapInfoPresModel + ParameterId["AddInBootstrapInfo"] = "addInBootstrapInfo"; + // DPI_AddInDebugSettings, having type AddInDebugSettingsPresModel + ParameterId["AddInDebugSettings"] = "addInDebugSettings"; + // DPI_RichText, having type RichTextPresModel + ParameterId["RichText"] = "richText"; + // DPI_RichTextKeywordSubList, having type RichTextKeywordSubListPresModel + ParameterId["RichTextKeywordSubList"] = "richTextKeywordsSublist"; + // DPI_RichTextKeywordSubLists, having type RichTextKeywordSubListPresModel[] + ParameterId["RichTextKeywordSubLists"] = "richTextKeywordSublists"; + // DPI_RichTextKeywordList, having type RichTextKeywordListPresModel + ParameterId["RichTextKeywordList"] = "richTextKeywordsList"; + // DPI_RichTextBlockStyle, having type RichTextBlockStylePresModel + ParameterId["RichTextBlockStyle"] = "richTextBlockStyle"; + // DPI_RichTextContentStyle, having type RichTextContentStylePresModel + ParameterId["RichTextContentStyle"] = "richTextContentStyle"; + })(ParameterId = exports.ParameterId || (exports.ParameterId = {})); + + +/***/ }, +/* 11 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_internal_contract_1 = __webpack_require__(4); + var CommandIds_1 = __webpack_require__(12); + var Params_1 = __webpack_require__(10); + var CommandMappingRegistry_1 = __webpack_require__(13); + var CommandRegistration_1 = __webpack_require__(14); + var CommandMappingRegistryFactory = (function () { + function CommandMappingRegistryFactory() { + } + /** + * Creates and populates a new CommandMappingRegistry for the specific version number requested + * + * @static + * @param {VersionNumber} versionNumber + * @returns {CommandMappingRegistry} + * @memberof CommandMappingRegistryFactory + */ + CommandMappingRegistryFactory.createCommandMappingRegistry = function (versionNumber) { + var result = new CommandMappingRegistry_1.CommandMappingRegistry(); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.InitializeExtension, CommandIds_1.DocCommands.InitializeAddInInstance, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ExtensionLocator, Params_1.ParameterId.AddInLocator)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ExtensionBootstrapInfo, Params_1.ParameterId.AddInBootstrapInfo))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetUnderlyingData, CommandIds_1.DocCommands.GetUnderlyingData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreAliases, Params_1.ParameterId.IgnoreAliases), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreSelection, Params_1.ParameterId.IgnoreSelection), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IncludeAllColumns, Params_1.ParameterId.IncludeAllColumns), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.MaxRows, Params_1.ParameterId.MaxRows), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.UnderlyingDataTable, Params_1.ParameterId.UnderlyingDataTable))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetDataSummaryData, CommandIds_1.DocCommands.GetSummaryData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreAliases, Params_1.ParameterId.IgnoreAliases), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreSelection, Params_1.ParameterId.IgnoreSelection), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.UnderlyingSummaryDataTable, Params_1.ParameterId.UnderlyingDataTable))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetDataSourceData, CommandIds_1.DocCommands.GetDataSourceData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DataSourceId, Params_1.ParameterId.Datasource), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreAliases, Params_1.ParameterId.IgnoreAliases), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.MaxRows, Params_1.ParameterId.MaxRows), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ColumnsToInclude, Params_1.ParameterId.FieldDisplayNames)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DataSourceDataTable, Params_1.ParameterId.UnderlyingDataTable))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ApplyCategoricalFilter, CommandIds_1.DocCommands.CategoricalFilter, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.QualifiedFieldCaption), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterValues, Params_1.ParameterId.FilterAliases), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterUpdateType, Params_1.ParameterId.FilterUpdateType), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IsExcludeMode, Params_1.ParameterId.Exclude, true), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Worksheet), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Dashboard)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.FieldCaption))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ApplyRangeFilter, CommandIds_1.DocCommands.RangeFilter, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.QualifiedFieldCaption), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterRangeMin, Params_1.ParameterId.RangeMin, true), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterRangeMax, Params_1.ParameterId.RangeMax, true), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterRangeNullOption, Params_1.ParameterId.Included, true), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Worksheet), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Dashboard)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.FieldCaption))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ClearFilter, CommandIds_1.DocCommands.ClearExistingFilter, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.QualifiedFieldCaption), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Worksheet), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Dashboard)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.FieldCaption))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetSelectedMarks, CommandIds_1.DocCommands.GetSelectionData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.SelectedData, Params_1.ParameterId.SelectionData))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetHighlightedMarks, CommandIds_1.DocCommands.GetHighlightedData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.HighlightedData, Params_1.ParameterId.HighlightedData))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.SaveExtensionSettings, CommandIds_1.DocCommands.SaveAddInSettings, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ExtensionLocator, Params_1.ParameterId.AddInLocator), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.SettingsValues, Params_1.ParameterId.AddInSettings)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ExtensionSettingsInfo, Params_1.ParameterId.AddInSettingsInfo))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetParametersForSheet, CommandIds_1.DocCommands.GetParameterModels, [], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterInfos, Params_1.ParameterId.ParameterCtrls))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.FindParameter, CommandIds_1.DocCommands.FindParameterModel, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterCaption, Params_1.ParameterId.FieldCaption, true), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterFieldName, Params_1.ParameterId.FieldNameString, true)], + // We might not get a response if the parameter isn't found + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterInfo, Params_1.ParameterId.ParameterCtrl, true))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ChangeParameterValue, CommandIds_1.DocCommands.SetParameterValue, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterFieldName, Params_1.ParameterId.GlobalFieldName), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterValue, Params_1.ParameterId.ValueStr)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterInfo, Params_1.ParameterId.ParameterCtrl))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ClearSelectedMarks, CommandIds_1.DocCommands.ClearSelectedMarks, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)])); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.SelectByValue, CommandIds_1.DocCommands.SelectByValue, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.Selection, Params_1.ParameterId.Selection, true), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.SelectionUpdateType, Params_1.ParameterId.SelectionUpdateType), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.HierValSelectionModels, Params_1.ParameterId.HierValSelectionModels, true), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DimValSelectionModels, Params_1.ParameterId.DimValSelectionModels, true), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.QuantRangeSelectionModels, Params_1.ParameterId.QuantRangeSelectionModels, true)])); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetDataSources, CommandIds_1.DocCommands.GetSchema, [], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DataSchema, Params_1.ParameterId.DataSchema))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.RefreshDataSource, CommandIds_1.UICommands.RefreshDataSourceUI, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DataSourceId, Params_1.ParameterId.Datasource)], undefined, CommandRegistration_1.CommandNamespace.TabUI)); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetFilters, CommandIds_1.DocCommands.GetWorksheetFilters, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.WorksheetFilters, Params_1.ParameterId.FiltersInfo))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetCategoricalDomain, CommandIds_1.DocCommands.GetCategoricalDomain, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldId, Params_1.ParameterId.FieldName), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DomainType, Params_1.ParameterId.FilterDomainType)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.CategoricalDomain, Params_1.ParameterId.CategoricalDomain))); + result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetRangeDomain, CommandIds_1.DocCommands.GetQuantitativeDomain, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldId, Params_1.ParameterId.FieldName), + new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DomainType, Params_1.ParameterId.FilterDomainType)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.QuantitativeDomain, Params_1.ParameterId.QuantitativeDomain))); + return result; + }; + return CommandMappingRegistryFactory; + }()); + exports.CommandMappingRegistryFactory = CommandMappingRegistryFactory; + + +/***/ }, +/* 12 */ +/***/ function(module, exports) { + + "use strict"; + /* tslint:disable */ + // ----------------------------------------------------------------------------- + // + // This file is the copyrighted property of Tableau Software and is protected + // by registered patents and other applicable U.S. and international laws and + // regulations. + // + // Unlicensed use of the contents of this file is prohibited. Please refer to + // the NOTICES.txt file for further details. + // + // ----------------------------------------------------------------------------- + // WARNING: Computer generated file. Do not hand modify. + // DEPENDS ON: ['../typescript/js-api/api-core/node_modules/@tableau/preslayer-codegen-typescript/templates/commands-enum-ts.template', u'../typescript/js-api/api-core/temp-pres-layer/all-cmd-wrappers.data'] + Object.defineProperty(exports, "__esModule", { value: true }); + var DocCommands; + (function (DocCommands) { + // Saves the settings for the specified add-in id + DocCommands["SaveAddInSettings"] = "save-add-in-settings"; + // Gets the pres model for an add-in instance. + DocCommands["GetAddInInstancePresModel"] = "get-add-in-instance-pres-model"; + // Gets the pres model for the dashboard authoring widget for add-ins. + DocCommands["GetAddInDashboardAuthoringWidgetPresModel"] = "get-add-in-dashboard-authoring-widget-pres-model"; + // Gets the necessary information for an add-in to initialize itself. + DocCommands["InitializeAddInInstance"] = "initialize-add-in-instance"; + // Enables or disable javascript debugging of an add-in. + DocCommands["SetAddInJsDebuggingEnabled"] = "set-add-in-js-debugging-enabled"; + // Whether or not we should pause before loading. If missing, toggle the value + DocCommands["SetPauseBeforeLoadingAddIn"] = "set-pause-before-loading-add-in"; + // Reloads the Add-In widget and web page. + DocCommands["ReloadAddIn"] = "reload-add-in"; + // Retrieves the context menu for a dashboard add-in. + DocCommands["GetAddInZoneContextMenu"] = "get-add-in-zone-context-menu"; + // Gets the pres model which indicates what the debug settings for add-ins is. + DocCommands["GetAddInDebugSettingsPresModel"] = "get-add-in-debug-settings-pres-model"; + // Primary use is for building context menus + DocCommands["IsSelectionAnEditableParameter"] = "is-selection-an-editable-parameter"; + // Check if selection can be used as base for creating a new parameter. Primary use is for building context menus + DocCommands["GetCreateParameterState"] = "get-create-parameter-state"; + // Uses EditParameter to get and return info about the presmodel without maintaining the controller + DocCommands["GetParameterEditInfo"] = "get-parameter-edit-info"; + // Initialize the controller and its stored parameter then return a populated presmodel + DocCommands["CreateParameter"] = "create-parameter"; + // Same underlying logic as CreateParameter but edits rather than creating a new parameter + DocCommands["EditParameter_New"] = "edit-parameter-new"; + // Add a member of a parameter domain. Changes are applied to intermediate state and saved on commit + DocCommands["AddParameterMember"] = "add-parameter-member"; + // Edit a member of a parameter domain. Changes are applied to intermediate state and saved on commit + DocCommands["EditParameterMember"] = "edit-parameter-member"; + // Delete a series of ranges of members from the parameter list. + DocCommands["DeleteParameterMembers"] = "delete-parameter-members"; + // Copy a series of ranges of members of a parameter list + DocCommands["CopyParameterMembers"] = "copy-parameter-members"; + // Move a series of ranges of members of a parameter list + DocCommands["MoveParameterMembers"] = "move-parameter-members"; + // Change domain of a parameter. Changes are applied to intermediate state and saved on commit + DocCommands["EditParameterDomainType"] = "edit-parameter-domain-type"; + // Change datatype of a parameter. Changes are applied to intermediate state and saved on commit + DocCommands["EditParameterDataType"] = "edit-parameter-data-type"; + // Change display format of a parameter. Changes are applied to intermediate state and saved on commit + DocCommands["EditParameterFormat"] = "edit-parameter-format"; + // Validate changes to a parameter's range domain and apply to intermediate state. Changes are saved on commit + DocCommands["EditParameterRange"] = "edit-parameter-range"; + // Edit the value of a non-list domain parameter + DocCommands["EditParameterValue"] = "edit-parameter-value"; + // Edit the value of a list domain parameter + DocCommands["EditParameterValueIndex"] = "edit-parameter-value-index"; + // Update the parameter caption and description - used to keep backend in sync. No verification/return is requried. + DocCommands["EditParameterDisplayInfo"] = "edit-parameter-display-info"; + // Update the domain of the parameter using a field (column or parameter) as a base + DocCommands["UpdateParameterFromField"] = "update-parameter-from-field"; + // Update the list domain of a parameter from a plain text representation of values + DocCommands["ParseParameterListDomain"] = "parse-parameter-list-domain"; + // Clears the parameter's domain of all members + DocCommands["ClearParameterListDomain"] = "clear-parameter-list-domain"; + // Creates or edits parameter from intermediate state. Takes a few properties that are cached in dialog and applies them pre-commit. + DocCommands["CommitParameterEdits"] = "commit-parameter-edits"; + // Gets the model for a particular parameter or returns an empty response if one is not found. + DocCommands["FindParameterModel"] = "find-parameter-model"; + // Gets the pres model for the show data dialog + DocCommands["GetShowDataPresModel"] = "get-show-data-pres-model"; + // Export underlying data from the ShowDataDialog to a CSV file + DocCommands["ShowDataExportToCSV"] = "show-data-export-to-csv"; + // Gets the summary data for a worksheet + DocCommands["GetSummaryData"] = "get-summary-data"; + // Gets the underlying data for a worksheet + DocCommands["GetUnderlyingData"] = "get-underlying-data"; + // Gets the underlying data for a specific data source. + DocCommands["GetDataSourceData"] = "get-data-source-data"; + // Select all marks that have the tuple's value for the given field . + DocCommands["SelectByTupleValue"] = "select-by-tuple-value"; + // Clear all the selected marks for the given worksheet + DocCommands["ClearSelectedMarks"] = "clear-selected-marks"; + // Creates or updates and existing filter based on the provided updates. + DocCommands["ApplyCategoricalFilterUpdates"] = "apply-categorical-filter-updates"; + // Search filter domain for text and return any matching tuples. + DocCommands["CategoricalFilterSearch"] = "categorical-filter-search"; + // Clear all members from the table of the identified cache. + DocCommands["CategoricalFilterClearRelationalCache"] = "categorical-filter-clear-relational-cache"; + // Create tuples for an existing filter from supplied text. + DocCommands["GetCategoricalFilterTuplesFromText"] = "get-categorical-filter-tuples-from-text"; + // Returns a presmodel backing a categorical filter, initializing a data cache for fast lookup of the filter's member domain. + DocCommands["GetCategoricalFilter"] = "get-categorical-filter"; + // Retrieves a page of data to display in the filter's list domain + DocCommands["GetCategoricalFilterDomainPage"] = "get-categorical-filter-domain-page"; + // Reset filter to committed state + DocCommands["ResetCategoricalFilterDeferred"] = "reset-categorical-filter-deferred"; + // Use uncommitted state to reset the filter's controller + DocCommands["RecreateCategoricalFilterController"] = "recreate-categorical-filter-controller"; + // Validates a Categroical Filter name. + DocCommands["ValidateCategoricalFilterName"] = "validate-categorical-filter-name"; + // Gets a summary of the filter pattern. + DocCommands["GetCategoricalFilterPatternSummary"] = "get-categorical-filter-pattern-summary"; + // Gets a summery of the filter condition. + DocCommands["GetCategoricalFilterConditionSummary"] = "get-categorical-filter-condition-summary"; + // Load the current minimum and maximum data value range for the condition field. + DocCommands["LoadCategoricalFilterConditionFieldValueRange"] = "load-categorical-filter-condition-field-value-range"; + // Validates a Categorical Filter's condition formula and re-writes it. + DocCommands["ValidateCategoricalFilterConditionFormula"] = "validate-categorical-filter-condition-formula"; + // Gets a summery of the filter limit. + DocCommands["GetCategoricalFilterLimitSummary"] = "get-categorical-filter-limit-summary"; + // Validates a Categorical Filter's limit count. + DocCommands["ValidateCategoricalFilterLimitCount"] = "validate-categorical-filter-limit-count"; + // Validates a Categorical Filter's limit formula, and re-writes the formula. + DocCommands["ValidateCategoricalFilterLimitFormula"] = "validate-categorical-filter-limit-formula"; + // Validates a Categorical Filter's limit. + DocCommands["ValidateCategoricalFilterLimit"] = "validate-categorical-filter-limit"; + // Inform cache when a user changes the range + DocCommands["CategoricalFilterSetRangeTypeDeferred"] = "categorical-filter-set-range-type-deferred"; + // Inform cache when a user changes whether the selection is exclusive + DocCommands["CategoricalFilterSetSelectionExclusiveDeferred"] = "categorical-filter-set-selection-exclusive-deferred"; + // Inform cache when a user changes whether an empty selection should be considered a selection of 'All' in a Manual selection mode + DocCommands["CategoricalFilterSetUseAllWhenManualIsEmptyDeferred"] = "categorical-filter-set-use-all-when-manual-is-empty-deferred"; + // Inform cache when a user alters the preset type + DocCommands["CategoricalFilterSetPresetTypeDeferred"] = "categorical-filter-set-preset-type-deferred"; + // Inform cache the user has selected one or more members + DocCommands["CategoricalFilterSelectRelationalMembersDeferred"] = "categorical-filter-select-relational-members-deferred"; + // Inform cache the user has deselected one or more members + DocCommands["CategoricalFilterDeselectRelationalMembersDeferred"] = "categorical-filter-deselect-relational-members-deferred"; + // Inform cache when a user selects everything in the domain + DocCommands["CategoricalFilterSelectAllRelationalMembersDeferred"] = "categorical-filter-select-all-relational-members-deferred"; + // Inform cache when a user deselects everything in the domain + DocCommands["CategoricalFilterDeselectAllRelationalMembersDeferred"] = "categorical-filter-deselect-all-relational-members-deferred"; + // Inform cache the user wants to see a different domain (e.g. relevant values only) + DocCommands["CategoricalFilterSetDomainTypeDeferred"] = "categorical-filter-set-domain-type-deferred"; + // Set whether filters apply to totals as well as non-totals table calcs + DocCommands["FilterApplyToTotalTableCalcs"] = "filter-apply-to-total-table-calcs"; + // Gets the list of filters used in a worksheet + DocCommands["GetWorksheetFilters"] = "get-worksheet-filters"; + // Gets the domain for a categorical Filter + DocCommands["GetCategoricalDomain"] = "get-categorical-domain"; + // Gets the domain for a quantitative Filter + DocCommands["GetQuantitativeDomain"] = "get-quantitative-domain"; + // + DocCommands["GetHighlightedData"] = "get-highlighted-data"; + // + DocCommands["GetSelectionData"] = "get-selection"; + // + DocCommands["Select"] = "select"; + // + DocCommands["SelectAll"] = "select-all"; + // + DocCommands["SelectByValue"] = "select-by-value"; + // + DocCommands["SelectNoneIncludingMaster"] = "select-none-including-master"; + // + DocCommands["AddManualItemsToFilter"] = "add-manual-items-to-filter"; + // + DocCommands["CategoricalFilter"] = "categorical-filter"; + // + DocCommands["CategoricalFilterByIndex"] = "categorical-filter-by-index"; + // + DocCommands["ChangeSharedFilter"] = "change-shared-filter"; + // + DocCommands["ClearContextFilters"] = "clear-context-filters"; + // + DocCommands["ClearExistingFilter"] = "clear-existing-filter"; + // + DocCommands["DefaultFilter"] = "default-filter"; + // + DocCommands["FilterGeo"] = "filter-geo"; + // + DocCommands["FilterNeg"] = "filter-neg"; + // + DocCommands["FilterNulls"] = "filter-nulls"; + // + DocCommands["FilterTargets"] = "filter-targets"; + // + DocCommands["GetSharedFilterPresModel"] = "get-shared-filter-pres-model"; + // + DocCommands["HierarchicalFilter"] = "hierarchical-filter"; + // + DocCommands["KeepOnlyOrExclude"] = "keep-only-or-exclude"; + // + DocCommands["RangeFilter"] = "range-filter"; + // + DocCommands["RelDateFilter"] = "relative-date-filter"; + // + DocCommands["ResetFilter"] = "reset-filter"; + // + DocCommands["ShowGeoAtDefault"] = "show-geo-at-default"; + // + DocCommands["ShowSVAtDefault"] = "show-sv-at-default"; + // + DocCommands["ToggleLockQuickFilters"] = "toggle-lock-quick-filters"; + // + DocCommands["AddDataConnection"] = "add-data-connection"; + // + DocCommands["AddDrillPath"] = "add-drill-path"; + // + DocCommands["AddCredentialsFromKeychain"] = "add-credentials-from-keychain"; + // + DocCommands["AddCredentialsFromKeychainFile"] = "add-credentials-from-keychain-file"; + // + DocCommands["AddFieldFolder"] = "add-field-folder"; + // + DocCommands["AddSubtotals"] = "add-subtotals"; + // + DocCommands["AddToDrillPath"] = "add-to-drill-path"; + // + DocCommands["AddToFieldFolder"] = "add-to-field-folder"; + // + DocCommands["AggregateMeasuresFlag"] = "aggregate-measures"; + // + DocCommands["ApplyCalculation"] = "apply-calculation"; + // + DocCommands["ApplyPageSetupOptions"] = "apply-page-setup-options"; + // + DocCommands["ApplyTableOptions"] = "apply-table-options"; + // + DocCommands["ApplyTypeInPill"] = "apply-type-in-pill"; + // + DocCommands["Assert"] = "assert"; + // + DocCommands["AttemptConnectDataSourcesOnSheet"] = "attempt-connect-datasources-on-sheet"; + // + DocCommands["AttemptConnectWorkbook"] = "attempt-connect-workbook"; + // + DocCommands["AttemptDataSourcesConnection"] = "attempt-datasources-connection"; + // + DocCommands["AutoUpdates"] = "auto-update"; + // + DocCommands["Brush"] = "highlight"; + // + DocCommands["BrushSpecial"] = "highlight-special"; + // + DocCommands["BuildDataSchemaDataSourceContextMenu"] = "build-data-schema-data-source-context-menu"; + // + DocCommands["BuildDataSchemaContextMenu"] = "build-data-schema-context-menu"; + // + DocCommands["BuildDataSchemaFieldContextMenu"] = "build-data-schema-field-context-menu"; + // + DocCommands["BuildDataSchemaDrillPathContextMenu"] = "build-data-schema-drill-path-context-menu"; + // + DocCommands["BuildFileTableInfoPresModel"] = "build-file-table-info-pres-model"; + // + DocCommands["BuildSheetTabContextMenu"] = "build-sheet-tab-context-menu"; + // + DocCommands["CancelDataSourcePresModel"] = "cancel-datasource-pres-model"; + // + DocCommands["CatBinMergeSplitLabel"] = "categorical-bin-merge-split"; + // + DocCommands["CategoricalQuickFilterEdit"] = "categorical-quick-filter-edit"; + // + DocCommands["CategoricalQuickFilterExcludeValues"] = "categorical-quick-filter-exclude-values"; + // + DocCommands["CategoricalQuickFilterIncludeAllWhenEmpty"] = "categorical-quick-filter-include-all-when-empty"; + // + DocCommands["CategoricalQuickFilterMode"] = "categorical-quick-filter-mode"; + // + DocCommands["CategoricalQuickFilterPattern"] = "categorical-quick-filter-pattern"; + // + DocCommands["ChangeAggregation"] = "change-aggregation"; + // + DocCommands["ChangeAlphaLevel"] = "change-alpha-level"; + // + DocCommands["ChangeBorder"] = "change-border"; + // + DocCommands["ChangeFieldType"] = "change-field-type"; + // + DocCommands["ChangeForecastColumnType"] = "change-forecast-column-type"; + // + DocCommands["ChangeHalo"] = "change-halo"; + // + DocCommands["ChangeMarkers"] = "change-markers"; + // + DocCommands["ChangeSize"] = "change-size"; + // + DocCommands["ChangeSheetTabColor"] = "change-sheet-tab-color"; + // + DocCommands["ClearAllAxisRanges"] = "clear-axis-ranges"; + // + DocCommands["ClearCalcModel"] = "clear-calculation-model"; + // + DocCommands["ClearFilters"] = "clear-filters"; + // + DocCommands["ClearFormatting"] = "clear-formatting"; + // + DocCommands["ClearFuture"] = "clear-future"; + // + DocCommands["ClearLayout"] = "clear-layout"; + // + DocCommands["ClearQuickFilter"] = "clear-quick-filter"; + // + DocCommands["ClearSorts"] = "clear-sorts"; + // + DocCommands["CloseConnection"] = "close-connection"; + // + DocCommands["CloseDataSource"] = "close-data-source"; + // + DocCommands["ConnectionAddGoogleAnalyticsDimension"] = "connection-add-google-analytics-dimension"; + // + DocCommands["ConnectionAddGoogleAnalyticsMeasure"] = "connection-add-google-analytics-measure"; + // + DocCommands["ConnectionAddNewTable"] = "connection-add-new-table"; + // + DocCommands["ConnectionAddCoalesce"] = "connection-add-coalesce"; + // + DocCommands["ConnectionAddPivot"] = "connection-add-pivot"; + // + DocCommands["ConnectionConvertToUnionAndEdit"] = "connection-convert-to-union-and-edit"; + // + DocCommands["ConnectionConvertToUnion"] = "connection-convert-to-union"; + // + DocCommands["ConnectionEditUnion"] = "connection-edit-union"; + // + DocCommands["ConnectionAddOrEditBatchUnion"] = "connection-add-or-edit-batch-union"; + // + DocCommands["ConnectionChangeTableProperty"] = "connection-change-table-property"; + // + DocCommands["ConnectionCountEntity"] = "connection-count-entity"; + // + DocCommands["ConnectionDataServerFetchMoreDatasources"] = "connection-dataserver-fetch-more-datasources"; + // + DocCommands["ConnectionDataServerProjectSelect"] = "connection-dataserver-change-selected-project"; + // + DocCommands["ConnectionDataServerUpdateFetchParameters"] = "connection-dataserver-update-fetch-parameters"; + // + DocCommands["ConnectionDataServerFlushCache"] = "connection-dataserver-flush-cache"; + // + DocCommands["ConnectionDeleteAllTables"] = "connection-delete-all-tables"; + // + DocCommands["ConnectionDeleteTable"] = "connection-delete-table"; + // + DocCommands["ConnectionEditCaption"] = "connection-edit-caption"; + // + DocCommands["ConnectionEditGoogleAnalyticsAccount"] = "connection-edit-google-analytics-account"; + // + DocCommands["ConnectionEditGoogleAnalyticsDateRange"] = "connection-edit-google-analytics-date-range"; + // + DocCommands["ConnectionEditGoogleAnalyticsMeasureGroup"] = "connection-edit-google-analytics-measure-group"; + // + DocCommands["ConnectionToggleGAQueryPartitioning"] = "connection-toggle-ga-query-partitioning"; + // + DocCommands["ConnectionEditGoogleAnalyticsProperty"] = "connection-edit-google-analytics-property"; + // + DocCommands["ConnectionEditGoogleAnalyticsView"] = "connection-edit-google-analytics-view"; + // + DocCommands["ConnectionEditGoogleAnalyticsSegment"] = "connection-edit-google-analytics-segment"; + // + DocCommands["ConnectionEditJoinClauses"] = "connection-edit-join-clauses"; + // + DocCommands["ConnectionEditJoinType"] = "connection-edit-join-type"; + // + DocCommands["ConnectionEditSQLText"] = "connection-edit-sql-text"; + // + DocCommands["ConnectionFetchEntity"] = "connection-fetch-entity"; + // + DocCommands["ConnectionSetForceExtractRefresh"] = "connection-set-force-extract-refresh"; + // + DocCommands["ConnectionPrepareDataSourceForEdit"] = "connection-prepare-datasource-for-edit"; + // + DocCommands["ConnectionClearRefreshAttributes"] = "connection-clear-refresh-attributes"; + // + DocCommands["ConnectionRemoveGoogleAnalyticsDimension"] = "connection-remove-google-analytics-dimension"; + // + DocCommands["ConnectionRemoveGoogleAnalyticsMeasure"] = "connection-remove-google-analytics-measure"; + // + DocCommands["ConnectionRemoveCoalesce"] = "connection-remove-coalesce"; + // + DocCommands["ConnectionRemovePivot"] = "connection-remove-pivot"; + // + DocCommands["ConnectionAddDateParseFormats"] = "connection-add-date-parse-formats"; + // + DocCommands["ConnectionRenameTable"] = "connection-rename-table"; + // + DocCommands["ConnectionReplaceRelationWithSQLText"] = "connection-replace-relation-with-sql-text"; + // + DocCommands["ConnectionReplaceTable"] = "connection-replace-table"; + // + DocCommands["ConnectionResetTableAlias"] = "connection-reset-table-alias"; + // + DocCommands["ConnectionSelectCatalog"] = "connection-select-catalog"; + // + DocCommands["ConnectionSelectCube"] = "connection-select-cube"; + // + DocCommands["ConnectionSelectDatabase"] = "connection-select-database"; + // + DocCommands["ConnectionSelectSchema"] = "connection-select-schema"; + // + DocCommands["ConnectionSelectStoredProcedure"] = "connection-select-stored-procedure"; + // + DocCommands["ConnectionSelectWarehouse"] = "connection-select-warehouse"; + // + DocCommands["ConnectionSelectBigQueryLegacySQLCheckBox"] = "connection-select-bigquery-legacy-check"; + // + DocCommands["ConnectionToggleHasHeaderRow"] = "connection-toggle-has-header-row"; + // + DocCommands["ConnectionToggleTableCleaning"] = "connection-toggle-table-cleaning"; + // + DocCommands["ConnectionToggleUseExtract"] = "connection-toggle-use-extract"; + // + DocCommands["ConnectionViewTableCleaningResults"] = "connection-view-table-cleaning-results"; + // + DocCommands["ConnectToDataServerSource"] = "connect-data-server-datasource"; + // + DocCommands["ConsiderZerosEmptyFlag"] = "consider-zeros-empty"; + // + DocCommands["ConvertUnnamedFields"] = "convert-unnamed-fields"; + // + DocCommands["Crash"] = "crash"; + // + DocCommands["CreateAggregateRole"] = "create-aggregate-role"; + // + DocCommands["CreateConnection"] = "create-connection"; + // + DocCommands["CreateDefaultQuickFilter"] = "create-default-quick-filter"; + // + DocCommands["CreateTypeInPill"] = "create-type-in-pill"; + // + DocCommands["CustomDataGridFieldOrder"] = "custom-datagrid-field-order"; + // + DocCommands["CustomDateAggregation"] = "custom-date-aggregation"; + // + DocCommands["CustomSplitField"] = "custom-split-field"; + // + DocCommands["DebugAssertion"] = "debug-assertion"; + // + DocCommands["DecrementParameterValue"] = "decr-parameter-value"; + // + DocCommands["DeleteFields"] = "delete-calculation-fields-command"; + // + DocCommands["DeleteSheet"] = "delete-sheet"; + // + DocCommands["DescribeDrillPath"] = "describe-drill-path"; + // + DocCommands["DescribeSortFilter"] = "describe-sort-filter"; + // + DocCommands["DismissNullWart"] = "dismiss-null-wart"; + // + DocCommands["DomainQuickFilter"] = "domain-quick-filter"; + // + DocCommands["DoubleFreeCrash"] = "double-free"; + // + DocCommands["DropNowhere"] = "drop-nowhere"; + // + DocCommands["DropOnSchemaViewer"] = "drop-on-schema-viewer"; + // + DocCommands["DropOnShelf"] = "drop-on-shelf"; + // + DocCommands["DropOnCalcEditor"] = "drop-on-calc-editor"; + // + DocCommands["DropOnShowMe"] = "drop-on-showme"; + // + DocCommands["DropPrepare"] = "drop-prepare"; + // + DocCommands["DualAxis"] = "dual-axis"; + // + DocCommands["DuplicateSheet"] = "duplicate-sheet"; + // + DocCommands["EditCopyCalc"] = "edit-copy-calc"; + // + DocCommands["EditDropLines"] = "edit-drop-lines"; + // + DocCommands["EditEnumeratedGroup"] = "edit-enumerated-group"; + // + DocCommands["EditNestedGroup"] = "edit-nested-group"; + // + DocCommands["EditPill"] = "edit-pill"; + // + DocCommands["EditPrimitiveType"] = "edit-primitive-type"; + // + DocCommands["EnableAllBrushing"] = "enable-all-highlights"; + // + DocCommands["EnableQuickFilter"] = "enable-quick-filter"; + // + DocCommands["EnableSheetBrushing"] = "enable-sheet-highlights"; + // + DocCommands["EnableThemedBrushing"] = "enable-themed-highlights"; + // + DocCommands["EnumerateVariables"] = "enumerate-variables"; + // + DocCommands["EnumerateVariableSelectionValues"] = "enumerate-variable-selection-values"; + // + DocCommands["EstablishConnection"] = "establish-connection"; + // + DocCommands["EstablishMatchingConnections"] = "establish-matching-connections"; + // + DocCommands["ExportDataToText"] = "export-data-to-text"; + // + DocCommands["ExtSvcConfig"] = "ext-svc-config"; + // + DocCommands["ExtSvcConfigConnect"] = "ext-svc-config-connect"; + // + DocCommands["Extract"] = "extract"; + // + DocCommands["SetDataGridCurrentTable"] = "set-data-grid-current-table"; + // + DocCommands["FetchTableRelevance"] = "fetch-table-relevance"; + // + DocCommands["FetchCachedTableRelevance"] = "fetch-cached-table-relevance"; + // + DocCommands["FlipLabels"] = "flip-labels"; + // + DocCommands["FloatingToolbar"] = "zoom-controls"; + // + DocCommands["FloatingToolbarToggle"] = "zoom-controls-toggle"; + // + DocCommands["ForecastConfig"] = "forecast-config"; + // + DocCommands["ForecastToggle"] = "forecast-toggle"; + // + DocCommands["FormatWorkbook"] = "format-workbook"; + // + DocCommands["GeographicSearchQuery"] = "geographic-search-query"; + // + DocCommands["GeographicSearchLoadData"] = "geographic-search-load-data"; + // + DocCommands["GeographicSearchIsDataDoneLoading"] = "geographic-search-data-done-loading"; + // + DocCommands["GeographicSearchToggleVisibility"] = "geographic-search-toggle-visibility"; + // + DocCommands["GetEditConnectionPresModel"] = "get-edit-connection-pres-model"; + // + DocCommands["GetEditEnumeratedGroupPresModel"] = "get-edit-enumerated-group-pres-model"; + // + DocCommands["GetEditNestedGroupPresModel"] = "get-edit-nested-group-pres-model"; + // + DocCommands["GetFrameFinderPresModel"] = "get-frame-finder-pres-model"; + // + DocCommands["GetGoogleSheetsListPresModel"] = "get-google-sheets-list-pres-model"; + // + DocCommands["GetGoogleSheetPanePresModel"] = "get-google-sheet-pane-pres-model"; + // + DocCommands["GetInitialSQLPresModel"] = "get-initial-sql-pres-model"; + // + DocCommands["GetQueryBandingPresModel"] = "get-query-banding-pres-model"; + // + DocCommands["GetTabbedAuthenticationPresModel"] = "get-tabbed-authentication-pres-model"; + // + DocCommands["GetActiveSheet"] = "get-active-sheet"; + // + DocCommands["GetAlphaLevel"] = "get-alpha-level"; + // + DocCommands["GetAppConfig"] = "get-app-config"; + // + DocCommands["GetDisabledSecondaryDSFields"] = "get-disabled-secondaryds-fields"; + // + DocCommands["GetBlendingFields"] = "get-blending-fields"; + // + DocCommands["GetCalculationPresModel"] = "get-calculation-pres-model"; + // + DocCommands["GetCategoricalColor"] = "get-categorical-color"; + // + DocCommands["GetClientInfo"] = "get-client-info"; + // + DocCommands["GetCommands"] = "get-commands"; + // + DocCommands["GetConnectionDescriptionPresModel"] = "get-connection-description-pres-model"; + // + DocCommands["GetDSDropdownPresModel"] = "get-ds-dropdown-pres-model"; + // + DocCommands["GetDataPreviewWindowMessagePresModel"] = "get-data-preview-window-pres-model"; + // + DocCommands["GetDataSourcePresModel"] = "get-datasource-pres-model"; + // + DocCommands["GetDataSourceSortPresModel"] = "get-datasource-sort-pres-model"; + // + DocCommands["GetDataSourcePropertiesPresModel"] = "get-datasource-properties-pres-model"; + // + DocCommands["GetConnectionSettingsPresModel"] = "get-connection-settings-pres-model"; + // + DocCommands["GetDashboard"] = "get-dashboard"; + // + DocCommands["GetDataPreview"] = "get-data-preview"; + // + DocCommands["GetDatabaseEnumerationPresModel"] = "get-database-enumeration-pres-model"; + // + DocCommands["GetDefaultColor"] = "get-default-color"; + // + DocCommands["GetDefaultShape"] = "get-default-shape"; + // + DocCommands["GetDragPresModelForText"] = "get-drag-pres-model-for-text"; + // + DocCommands["GetDropTargetPresModel"] = "get-drop-target-pres-model"; + // + DocCommands["GetEditDataServerConnectionPresModel"] = "get-edit-data-server-connection-pres-model"; + // + DocCommands["GetEditDropLinesModel"] = "get-edit-drop-lines-model"; + // + DocCommands["GetEncodingState"] = "get-encoding-state"; + // + DocCommands["GetEncodingTypeMenuModel"] = "get-encoding-type-menu"; + // + DocCommands["GetExtSvcConfig"] = "get-ext-svc-config"; + // + DocCommands["GetForecastPresModel"] = "get-forecast-pres-model"; + // + DocCommands["GetJoinDescriptionPresModel"] = "get-join-description-pres-model"; + // + DocCommands["GetQuickFilter"] = "get-quick-filter"; + // + DocCommands["GetQuickFilters"] = "get-quick-filters"; + // + DocCommands["GetReferenceLinePresModel"] = "get-reference-line-pres-model"; + // + DocCommands["GetParameters"] = "get-parameters"; + // + DocCommands["GetParameterModels"] = "get-parameter-models"; + // + DocCommands["GetParametersRegistryInfo"] = "get-params-registry-info"; + // + DocCommands["GetPivotPresModel"] = "get-pivot-pres-model"; + // + DocCommands["GetScene"] = "get-scene"; + // + DocCommands["GetSchemaEnumerationPresModel"] = "get-schema-enumeration-pres-model"; + // + DocCommands["GetSheetsInfo"] = "get-sheets-info"; + // + DocCommands["GetShowMe"] = "get-show-me"; + // + DocCommands["GetStandardConnectionEnumerationPresModel"] = "get-standard-connection-enumeration-pres-model"; + // + DocCommands["GetStoredProcedureEnumerationPresModel"] = "get-stored-procedure-enumeration-pres-model"; + // + DocCommands["GetStoredProcedureParametersPresModel"] = "get-stored-procedure-parameters-pres-model"; + // + DocCommands["GetTableEnumerationPresModel"] = "get-table-enumeration-pres-model"; + // + DocCommands["GetTableCleaningPresModel"] = "get-table-cleaning-pres-model"; + // + DocCommands["GetTargetFieldList"] = "get-target-field-list"; + // + DocCommands["GetTopLevelConnectionDescriptionPresModel"] = "get-top-level-connection-description-pres-model"; + // + DocCommands["GetTypeInPillPresModel"] = "get-type-in-pill-pres-model"; + // + DocCommands["GetUberTipPresModel"] = "get-ubertip-pres-model"; + // + DocCommands["GetUnionInfoPresModel"] = "get-union-info-pres-model"; + // + DocCommands["GetVisual"] = "get-visual"; + // + DocCommands["GetVizData"] = "get-viz-data"; + // + DocCommands["GetWarehouseEnumerationPresModel"] = "get-warehouse-enumeration-pres-model"; + // + DocCommands["GetWorkbook"] = "get-workbook"; + // + DocCommands["GetWorldUpdate"] = "get-world-update"; + // + DocCommands["GoToSheet"] = "goto-sheet"; + // + DocCommands["HeapCorruptionCrash"] = "corrupt-heap"; + // + DocCommands["HideColumnFieldLabel"] = "hide-column-field-label"; + // + DocCommands["HideEmptyColsFlag"] = "hide-empty-cols"; + // + DocCommands["HideEmptyRowsFlag"] = "hide-empty-rows"; + // + DocCommands["HideLabel"] = "hide-label"; + // + DocCommands["HideRowFieldLabel"] = "hide-row-field-label"; + // + DocCommands["HierarchicalQuickFilterUpdateSetFunction"] = "hierarchical-quick-filter-update-set-function"; + // + DocCommands["IncludeInTooltip"] = "include-in-tooltip"; + // + DocCommands["IncludeOtherCategoricalBin"] = "include-other-cat-bin"; + // + DocCommands["IncrementExtract"] = "increment-extract"; + // + DocCommands["IncrementParameterValue"] = "incr-parameter-value"; + // + DocCommands["CreateCalc"] = "create-calc"; + // + DocCommands["EditCalc"] = "edit-calc"; + // + DocCommands["InvokeHyperlink"] = "invoke-hyperlink"; + // + DocCommands["KeepOnlyOrExcludeSelection"] = "keep-only-or-exclude-selection"; + // + DocCommands["LabelDrill"] = "label-drill"; + // + DocCommands["LabelDrillCtx"] = "label-drill-ctx"; + // + DocCommands["LevelDrill"] = "level-drill"; + // + DocCommands["LoadUrl"] = "load-url"; + // + DocCommands["ListPublishedDataSources"] = "list-published-datasources"; + // + DocCommands["MarkLabel"] = "mark-label"; + // + DocCommands["MarkTrail"] = "mark-trail"; + // + DocCommands["MemoryDumpObjectCounts"] = "memory-dump-object-counts"; + // + DocCommands["MemoryLeak"] = "memory-leak"; + // + DocCommands["Merge"] = "merge-or-split"; + // + DocCommands["MigrateDataSource"] = "migrate-data-source"; + // + DocCommands["ModifyMarksInSet"] = "add-or-remove-marks"; + // + DocCommands["MoveAreaAnnotationText"] = "move-area-annotation-text"; + // + DocCommands["MoveColumnTotals"] = "move-column-totals"; + // + DocCommands["MoveMark"] = "move-mark"; + // + DocCommands["MovePointAnnotation"] = "move-point-annotation"; + // + DocCommands["MovePointAnnotationTarget"] = "move-point-annotation-target"; + // + DocCommands["MoveReferenceLine"] = "move-reference-line"; + // + DocCommands["MoveRowTotals"] = "move-row-totals"; + // + DocCommands["NavigateToSheet"] = "navigate-to-sheet"; + // + DocCommands["PostCalcJoinClauseResult"] = "post-calc-join-clause-result"; + // + DocCommands["NewDocDashboard"] = "new-dashboard"; + // + DocCommands["NewDocWorksheet"] = "new-worksheet"; + // + DocCommands["NonRangedRemoveReferenceLine"] = "non-ranged-remove-reference-line"; + // + DocCommands["OptimizeExtract"] = "optimize-extract"; + // + DocCommands["OptOutActions"] = "opt-out-actions"; + // + DocCommands["PageHistorySettings"] = "page-history-settings"; + // + DocCommands["PageToggleTrails"] = "page-toggle-trails"; + // + DocCommands["ParseUIName"] = "parse-ui-name"; + // + DocCommands["Percentages"] = "percentages"; + // + DocCommands["Perspectives"] = "perspectives"; + // + DocCommands["PositionPointAnnotation"] = "position-point-annotation"; + // + DocCommands["ProtocolPoolLog"] = "protocol-pool-log"; + // + DocCommands["PublishDataSource"] = "publish-datasource"; + // + DocCommands["PublishDataSourceFromData"] = "publish-data-source-from-data"; + // + DocCommands["PublishDataSourceFromWorkbookData"] = "publish-data-source-from-workbook-data"; + // + DocCommands["QuantitativeQuickFilterEdit"] = "quantitative-quick-filter-edit"; + // + DocCommands["QuantitativeModeQuickFilter"] = "quantitative-mode-quick-filter"; + // + DocCommands["QueryMigrateDataSources"] = "query-migrate-data-sources"; + // + DocCommands["QuickSort"] = "quick-sort"; + // + DocCommands["RangedByIndexMerge"] = "ranged-by-index-merge"; + // + DocCommands["RangedByValueMerge"] = "ranged-by-value-merge"; + // + DocCommands["Record"] = "record"; + // + DocCommands["Redo"] = "redo"; + // + DocCommands["RefreshExtract"] = "refresh-extract"; + // + DocCommands["RefreshFromSource"] = "refresh-from-source"; + // + DocCommands["RelativeDateQuickFilterEdit"] = "relative-date-quick-filter-edit"; + // + DocCommands["RemoveAllReferenceLines"] = "remove-all-reference-lines"; + // + DocCommands["RemoveDrillPath"] = "remove-drill-path"; + // + DocCommands["RemoveExtract"] = "remove-extract"; + // + DocCommands["RemoveFieldFolder"] = "remove-field-folder"; + // + DocCommands["RemoveFieldLabel"] = "remove-field-label"; + // + DocCommands["RemoveFields"] = "remove-fields"; + // + DocCommands["RemoveFieldsFromShelf"] = "remove-fields-from-shelf"; + // + DocCommands["RemoveFromDrillPath"] = "remove-from-drill-path"; + // + DocCommands["RemoveFromFieldFolder"] = "remove-from-field-folder"; + // + DocCommands["RemoveReferenceLine"] = "remove-reference-line"; + // + DocCommands["RemoveSubtotals"] = "remove-subtotals"; + // + DocCommands["RenameDataSource"] = "rename-data-source"; + // + DocCommands["RenameDrillPath"] = "rename-drill-path"; + // + DocCommands["RenameFieldFolder"] = "rename-field-folder"; + // + DocCommands["RenameSheet"] = "rename-sheet"; + // + DocCommands["ReorderLabels"] = "reorder-labels"; + // + DocCommands["ReportBug"] = "report-bug"; + // + DocCommands["RequestDataSourcePresModel"] = "request-datasource-pres-model"; + // + DocCommands["ResetParameterCtrlTitle"] = "reset-parameter-ctrl-title"; + // + DocCommands["ResetTooltip"] = "reset-tooltip"; + // + DocCommands["ResizeAreaAnnotationText"] = "resize-area-annotation-text"; + // + DocCommands["ResizeAxis"] = "resize-axis"; + // + DocCommands["ResizeCell"] = "resize-cell"; + // + DocCommands["ResizeHeader"] = "resize-header"; + // + DocCommands["ResizePointAnnotation"] = "resize-point-annotation"; + // + DocCommands["Revert"] = "revert"; + // + DocCommands["RotateFieldLabel"] = "rotate-field-label"; + // + DocCommands["RotateLabel"] = "rotate-label"; + // + DocCommands["SplitFieldLabel"] = "split-field-label"; + // + DocCommands["RunAction"] = "run-action"; + // + DocCommands["RunScript"] = "run-script"; + // + DocCommands["RunUpdates"] = "run-update"; + // + DocCommands["SaveModel"] = "save-model"; + // + DocCommands["SavePublishedDStoFile"] = "save-published-ds-to-file"; + // + DocCommands["SelectDataSource"] = "select-data-source"; + // + DocCommands["SelectFieldsInShelf"] = "select-fields-in-shelf"; + // + DocCommands["SendDataConnectionTableViewMessage"] = "send-data-connection-tableview-message"; + // + DocCommands["SetActiveDataSourceName"] = "set-active-data-source-name"; + // + DocCommands["SetActiveConnectionName"] = "set-active-connection-name"; + // + DocCommands["SetActiveDataSource"] = "set-active-datasource"; + // + DocCommands["SetBasePalette"] = "set-base-palette"; + // + DocCommands["SetCategoricalColor"] = "set-categorical-color"; + // + DocCommands["SetDataCacheDelta"] = "set-data-cache-delta"; + // + DocCommands["SetDataPreviewAutoUpdate"] = "set-data-preview-auto-update"; + // + DocCommands["SetDataPreviewCustomFieldOrder"] = "set-data-preview-custom-field-order"; + // + DocCommands["SetDefaultColor"] = "set-default-color"; + // + DocCommands["SetDefaultShape"] = "set-default-shape"; + // + DocCommands["SetFilterContext"] = "set-filter-context"; + // + DocCommands["SetFilterShared"] = "set-filter-shared"; + // + DocCommands["SetInitialSQL"] = "set-initial-sql"; + // + DocCommands["SetItemColor"] = "set-item-color"; + // + DocCommands["SetItemColorResetCustomization"] = "set-item-color-reset-customization"; + // + DocCommands["SetItemEncodingType"] = "set-item-encoding-type"; + // + DocCommands["SetMarkSize"] = "set-mark-size"; + // + DocCommands["SetPageNavFlag"] = "set-page-flag"; + // + DocCommands["SetParameterCtrlDisplayFlags"] = "set-parameter-ctrl-display-flags"; + // + DocCommands["SetParameterCtrlDisplayMode"] = "set-parameter-ctrl-display-mode"; + // + DocCommands["SetParameterCtrlTitle"] = "set-parameter-ctrl-title"; + // + DocCommands["SetParameterValue"] = "set-parameter-value"; + // + DocCommands["SetPrimitive"] = "set-primitive"; + // + DocCommands["SetQueryBanding"] = "set-query-banding"; + // + DocCommands["SetQuickFilterIncludedValues"] = "set-quick-filter-included"; + // + DocCommands["SetReferenceLineFormula"] = "set-reference-line-formula"; + // + DocCommands["SetReferenceLineConstantValue"] = "set-reference-line-constant-value"; + // + DocCommands["SetSheetFormatting"] = "set-sheet-formatting"; + // + DocCommands["SetSheetSize"] = "set-sheet-size"; + // + DocCommands["SetTotalsType"] = "set-totals-type"; + // + DocCommands["SetWorkbookLocale"] = "set-workbook-locale"; + // + DocCommands["ShowCatCtrlQuickFilter"] = "show-cat-ctrl-quick-filter"; + // + DocCommands["ShowColFieldNamesFlag"] = "show-col-field-names"; + // + DocCommands["ShowColTotalsFlag"] = "show-col-totals"; + // + DocCommands["ShowColumnFieldLabel"] = "show-column-field-label"; + // + DocCommands["ShowEmptyColsFlag"] = "show-empty-cols"; + // + DocCommands["ShowEmptyRowsFlag"] = "show-empty-rows"; + // + DocCommands["ShowForecastEditor"] = "show-forecast-editor"; + // + DocCommands["ShowFullRange"] = "show-full-range"; + // + DocCommands["ShowHeader"] = "show-header"; + // + DocCommands["ShowHiddenData"] = "show-hidden-data"; + // + DocCommands["ShowMe"] = "show-me"; + // + DocCommands["ShowQuantCtrlQuickFilter"] = "show-quant-ctrl-quick-filter"; + // + DocCommands["ShowQuickFilterDoc"] = "show-quickfilter-doc"; + // + DocCommands["ShowReferenceLineEditor"] = "show-reference-line-editor"; + // + DocCommands["ShowReferenceLineConstantValueEditor"] = "show-reference-line-constant-value-editor"; + // + DocCommands["ShowReferenceLineFormatter"] = "show-reference-line-formatter"; + // + DocCommands["ShowRowFieldLabel"] = "show-row-field-label"; + // + DocCommands["ShowRowFieldNamesFlag"] = "show-row-field-names"; + // + DocCommands["ShowRowTotalsFlag"] = "show-row-totals"; + // + DocCommands["SimpleCommandList"] = "simple-command-list"; + // + DocCommands["Sleep"] = "sleep"; + // + DocCommands["SleepBackgroundThread"] = "sleep-background-thread"; + // + DocCommands["SortDataGridByColumn"] = "sort-datagrid-by-column"; + // + DocCommands["SortDataGridFields"] = "sort-datagrid-fields"; + // + DocCommands["SpecialValues"] = "special-values"; + // + DocCommands["SplitField"] = "split-field"; + // + DocCommands["StackMarks"] = "stack-marks"; + // + DocCommands["StackOverflowCrash"] = "stack-overflow"; + // + DocCommands["SubtotalAggregation"] = "subtotal-aggregation"; + // + DocCommands["Subtotals"] = "subtotals"; + // + DocCommands["SwapFields"] = "swap-fields"; + // + DocCommands["SwapRowsAndColumns"] = "swap-rows-and-columns"; + // + DocCommands["TableauException"] = "tableau-exception"; + // + DocCommands["ToggleDropLines"] = "toggle-drop-lines"; + // + DocCommands["ToggleFieldBlending"] = "toggle-field-blending"; + // + DocCommands["ToggleMarkLabels"] = "toggle-mark-labels"; + // + DocCommands["TogglePageTitle"] = "toggle-page-title"; + // + DocCommands["ToggleParameterCtrlDisplayFlag"] = "toggle-parameter-ctrl-display-flag"; + // + DocCommands["ToggleParameterCtrlTitle"] = "toggle-parameter-ctrl-title"; + // + DocCommands["ToggleQuickFilterTitle"] = "toggle-quick-filter-title"; + // + DocCommands["ToggleVizNavigationSetting"] = "toggle-viz-navigation-setting"; + // + DocCommands["Undo"] = "undo"; + // + DocCommands["UnhideData"] = "unhide-data"; + // + DocCommands["UnhideLabel"] = "unhide-label"; + // + DocCommands["UpdateAreaAnnotation"] = "update-area-annotation"; + // + DocCommands["UpdateCalcScopeIsolation"] = "update-scope-isolation-for-calculation"; + // + DocCommands["UpdateDataServerConnectionInfo"] = "update-data-server-connection-info"; + // + DocCommands["UpdatePointAnnotationPullback"] = "update-point-annotation-pullback"; + // + DocCommands["UpdateTableCalcInfo"] = "update-table-calc-infomation"; + // + DocCommands["UpgradeExtract"] = "upgrade-extract"; + // + DocCommands["UseExtract"] = "use-extract"; + // + DocCommands["ValidateDrillPathName"] = "validate-drill-path-name"; + // + DocCommands["ValidateFormula"] = "validate-formula"; + // + DocCommands["ValidateInitialSQL"] = "validate-initial-sql"; + // + DocCommands["ValidateQueryBanding"] = "validate-query-banding"; + // + DocCommands["ValidateTypeInPill"] = "validate-type-in-pill"; + // + DocCommands["ViewParameterCtrls"] = "view-param-ctrls"; + // + DocCommands["ViewQuickFilters"] = "view-quick-filters"; + // + DocCommands["GetSchema"] = "get-schema"; + // + DocCommands["GetSchemaViewerDataSchema"] = "get-schema-viewer-data-schema"; + // + DocCommands["ConvertToDimension"] = "convert-to-dimension"; + // + DocCommands["ConvertToMeasure"] = "convert-to-measure"; + // + DocCommands["ConvertToContinuous"] = "convert-to-continuous"; + // + DocCommands["ConvertToDiscrete"] = "convert-to-discrete"; + // + DocCommands["RenameField"] = "rename-field"; + // + DocCommands["HideField"] = "hide-field"; + // + DocCommands["UnhideField"] = "unhide-field"; + // + DocCommands["HideUnusedFields"] = "hide-unused-fields"; + // + DocCommands["DuplicateFields"] = "duplicate-fields"; + // + DocCommands["CleanValues"] = "clean-values"; + // + DocCommands["ParseDate"] = "parse-date"; + // + DocCommands["MakeDate"] = "make-date"; + // + DocCommands["SetQualifyNames"] = "set-qualify-names"; + // + DocCommands["CreateMeasureFromColumn"] = "create-measure-from-column"; + // + DocCommands["RemoveFromSchemaDrillPath"] = "remove-from-schema-drill-path"; + // + DocCommands["AddToSchemaDrillPath"] = "add-to-schema-drill-path"; + // + DocCommands["RemoveSchemaDrillPath"] = "remove-schema-drill-path"; + // + DocCommands["ShowHiddenFields"] = "show-hidden-fields"; + // + DocCommands["ShowAliases"] = "show-aliases"; + // + DocCommands["SetRowDisplayCount"] = "set-row-display-count"; + // + DocCommands["ShowStructure"] = "show-structure"; + // + DocCommands["GroupByTable"] = "group-by-table"; + // + DocCommands["ChangeDataType"] = "change-data-type"; + // + DocCommands["ChangePivotStrategy"] = "change-pivot-strategy"; + // + DocCommands["ChangeDisplayAlias"] = "change-display-alias"; + // + DocCommands["SetIncludeSharedMembers"] = "set-include-shared-members"; + // + DocCommands["SetUtilityDimension"] = "set-utility-dimension"; + // + DocCommands["SetDefaultHierarchy"] = "set-default-hierarchy"; + // + DocCommands["DataSourceSortOrder"] = "data-source-sort-order"; + // + DocCommands["ClearUtilityDimension"] = "clear-utility-dimension"; + // + DocCommands["ClearDefaultSort"] = "clear-default-sort"; + // + DocCommands["SetDefaultAggregation"] = "set-default-aggregation"; + // + DocCommands["SetDefaultVTAggregation"] = "set-default-vtaggregation"; + // + DocCommands["ChangeFiscalYear"] = "change-fiscal-year"; + // + DocCommands["ChangeSemanticRole"] = "change-semantic-role"; + // + DocCommands["AddToSheet"] = "add-to-sheet"; + // + DocCommands["DropSchemaSelOnShelf"] = "drop-schema-sel-on-shelf"; + // + DocCommands["AddToSchemaFieldFolder"] = "add-to-schema-field-folder"; + // + DocCommands["RemoveFromSchemaFieldFolder"] = "remove-from-schema-field-folder"; + // + DocCommands["RemoveSchemaFieldFolder"] = "remove-schema-field-folder"; + // + DocCommands["DefaultTextFormat"] = "default-text-format"; + // + DocCommands["EditSchemaCaption"] = "edit-schema-caption"; + // + DocCommands["ResetSchemaCaption"] = "reset-schema-caption"; + // + DocCommands["CreateOutlierSet"] = "create-outlier-set"; + })(DocCommands = exports.DocCommands || (exports.DocCommands = {})); + var UICommands; + (function (UICommands) { + // + UICommands["About"] = "about"; + // + UICommands["AddDataServerDataSourceUI"] = "add-data-server-datasource-ui"; + // + UICommands["SwitchToDocumentAndAddDataServerDataSourceUI"] = "switch-to-document-and-add-data-server-ds-ui"; + // + UICommands["AddDrillPathUI"] = "add-drillpath-ui"; + // + UICommands["AddFieldFolderUI"] = "add-field-folder-ui"; + // + UICommands["AddFileToExtractUI"] = "add-file-to-extract-ui"; + // + UICommands["AddDataSourceToExtractUI"] = "add-data-source-to-extract-ui"; + // + UICommands["AddQCToSheetUI"] = "add-qc-to-sheet-ui"; + // + UICommands["AddReferenceLineUI"] = "add-reference-line-ui"; + // + UICommands["AddSchemaFieldFolderUI"] = "add-to-schema-field-folder-ui"; + // + UICommands["AddTableauServerDSConnectionUI"] = "add-tableau-server-ds-connection-ui"; + // + UICommands["AddToSchemaDrillPathUI"] = "add-to-schema-drillpath-ui"; + // + UICommands["AddToSheetUI"] = "add-to-sheet-ui"; + // + UICommands["AnnotateUI"] = "annotate-ui"; + // + UICommands["AppendDataSourceToRemoteExtractUI"] = "append-data-source-to-remote-extract-ui"; + // + UICommands["AttemptConnectDataSourcesOnSheetUI"] = "attempt-connect-datasources-on-sheet-ui"; + // + UICommands["AttemptDataSourceConnectionUI"] = "attempt-datasource-connect-ui"; + // + UICommands["AutoHideSheet"] = "auto-hide-sheet"; + // + UICommands["AutomationClickMRUItem"] = "click-mru-item"; + // + UICommands["CalculatedMembersUI"] = "calculated-members-ui"; + // + UICommands["ChangeAggregationUI"] = "change-aggregation-ui"; + // + UICommands["ChangeDataServerLogonUI"] = "change-data-server-logon-ui"; + // + UICommands["ChangeEssbaseAliasFile"] = "change-essbase-alias-file"; + // + UICommands["ChangeFieldTypeUI"] = "change-field-type-ui"; + // + UICommands["ChangeTabColorSheet"] = "change-tab-color-sheet"; + // + UICommands["CheckForProductUpdates"] = "check-for-product-updates"; + // + UICommands["ClearDashboardUI"] = "clear-dashboard-ui"; + // + UICommands["ClearSheetUI"] = "clear-sheet-ui"; + // + UICommands["ClearStoryUI"] = "clear-story-ui"; + // + UICommands["ClearVizUI"] = "clear-viz-ui"; + // + UICommands["CloseCalculationUI"] = "close-calculation-ui"; + // + UICommands["CloseDataSourceUI"] = "close-datasource-ui"; + // + UICommands["CloseWorkbook"] = "close-workbook"; + // + UICommands["ColorLegendEditUI"] = "color-legend-edit-ui"; + // + UICommands["CommitPillEditUI"] = "commit-pill-edit-ui"; + // + UICommands["ConnectDataSourceUI"] = "connect-datasource-ui"; + // + UICommands["ConnectRepromptUI"] = "connect-reprompt-ui"; + // + UICommands["ConnectVariablePromptUI"] = "connect-variable-prompt-ui"; + // + UICommands["ConnectVariablePromptMatchingUI"] = "connect-variable-prompt-matching-ui"; + // + UICommands["ConnectionAddNewCustomSQLUI"] = "connection-add-new-custom-sql-ui"; + // + UICommands["ConnectionAddNewTableUI"] = "connection-add-new-table-ui"; + // + UICommands["ConnectionDataGridCopyUI"] = "connection-data-grid-copy-ui"; + // + UICommands["ConnectionEditCustomSQLUI"] = "connection-custom-sql-ui"; + // + UICommands["ConnectionEditExtractUI"] = "connection-extract-ui"; + // + UICommands["ConnectionEditDBVariablesUI"] = "connection-edit-db-variables-ui"; + // + UICommands["ConnectionEditConnectionUI"] = "connection-edit-connection-ui"; + // + UICommands["ConnectionFinalizeDataSourceUI"] = "connection-finalize-datasource-ui"; + // + UICommands["ConnectionFinalizeExtractStatesUI"] = "connection-finalize-extract-states-ui"; + // + UICommands["ConnectionGetTypeGroupPresModelUI"] = "connection-get-type-group-pres-model-ui"; + // + UICommands["ConnectionGetSavedDataSourcesPresModelUI"] = "connection-get-saved-ds-pres-model-ui"; + // + UICommands["ConnectionPartitioningFailureUI"] = "connection-partitioning-failure-ui"; + // + UICommands["ConnectionReplaceTableUI"] = "connection-replace-table-ui"; + // + UICommands["ConnectionSearchCatalogUI"] = "connection-search-catalog-ui"; + // + UICommands["ConnectionSearchCubeUI"] = "connection-search-cube-ui"; + // + UICommands["ConnectionSelectCatalogUI"] = "connection-select-catalog-ui"; + // + UICommands["ConnectionSelectCubeUI"] = "connection-select-cube-ui"; + // + UICommands["ConnectionSelectDatabaseUI"] = "connection-select-database-ui"; + // + UICommands["ConnectionSelectStandardConnectionUI"] = "connection-select-standard-connection-ui"; + // + UICommands["ConnectionSelectStoredProcedureUI"] = "connection-select-stored-procedure-ui"; + // + UICommands["ConnectionShowEditTableDialogUI"] = "connection-show-edit-table-ui"; + // + UICommands["ConnectionShowPivotDialogUI"] = "conneciton-show-pivot-dialog-ui"; + // + UICommands["ConnectionSortCatalogUI"] = "connection-sort-catalog-ui"; + // + UICommands["ConnectionSortCubeUI"] = "connection-sort-cube-ui"; + // + UICommands["ConnectionValidateCustomSQLUI"] = "connection-validate-custom-sql-ui"; + // + UICommands["ConnectToCloudFile"] = "connect-to-cloud-file"; + // + UICommands["ConnectToDataServerSourceUI"] = "connect-data-server-datasource-ui"; + // + UICommands["ConnectionConvertToSQLUI"] = "connection-convert-to-sql-ui"; + // + UICommands["ConnectionRenameConnectionUI"] = "connection-rename-connection-ui"; + // + UICommands["ExportUnderlyingDataToCSVUI"] = "export-to-csv-with-progress-ui"; + // + UICommands["ConnectODBCUI"] = "connect-odbc-ui"; + // + UICommands["CopyCrosstab"] = "copy-crosstab"; + // + UICommands["CopyData"] = "copy-data"; + // + UICommands["CopyDrillPathFieldsUI"] = "copy-drill-path-fields-ui"; + // + UICommands["CopyFieldsDefnUI"] = "copy-fields-defn-ui"; + // + UICommands["CopyImage"] = "copy-image"; + // + UICommands["CopyImageDashboard"] = "copy-image-dashboard"; + // + UICommands["CopyImageWorksheet"] = "copy-image-worksheet"; + // + UICommands["CopyImageStory"] = "copy-image-story"; + // + UICommands["CopyWorksheetFormatting"] = "copy-formatting"; + // + UICommands["CreateCalculatedSetUI"] = "create-calculated-set-ui"; + // + UICommands["CreateCalculationUI"] = "create-calculation-ui"; + // + UICommands["CreateCombinedFieldUI"] = "create-combined-field-ui"; + // + UICommands["CreateConnectionUI"] = "create-connection-ui"; + // + UICommands["CreateDateBinUI"] = "create-Date-bin-ui"; + // + UICommands["CreateGroupSelectionUI"] = "create-group-selection-ui"; + // + UICommands["CreateGroupUI"] = "create-group-ui"; + // + UICommands["CreateIdentitySet"] = "create-user-filter"; + // + UICommands["CreateLeafConnectionUI"] = "create-leaf-connection-ui"; + // + UICommands["CreateNumericBinsUI"] = "create-numeric-bins-ui"; + // + UICommands["CreateSetUI"] = "create-set-ui"; + // + UICommands["CustomDateAggregationUI"] = "custom-date-aggregation-ui"; + // + UICommands["CutDrillPathFieldsUI"] = "cut-drill-path-fields-ui"; + // + UICommands["CutFieldsDefnUI"] = "cut-fields-defn-ui"; + // + UICommands["DeactivateDashboard"] = "deactivate-dashboard"; + // + UICommands["DeleteCookies"] = "delete-cookies"; + // + UICommands["DeleteFieldsUI"] = "delete-fields-ui"; + // + UICommands["DeleteSheetUI"] = "delete-sheet-ui"; + // + UICommands["DescribeAdhocClusterUI"] = "describe-adhoc-cluster-ui"; + // + UICommands["DescribeDrillPathUI"] = "describe-drillpath-ui"; + // + UICommands["DescribeFieldUI"] = "describe-field-ui"; + // + UICommands["DescribeForecastUI"] = "describe-forecast-ui"; + // + UICommands["DescribeSchemaDrillPathUI"] = "describe-schema-drillpath-ui"; + // + UICommands["DescribeTrendLine"] = "describe-trend-line"; + // + UICommands["DescribeTrendModel"] = "describe-trend-model"; + // + UICommands["OpenDiscoverPaneLinks"] = "open-discover-pane-links"; + // + UICommands["DismissGoToWorksheetTooltipUI"] = "dismiss-go-to-worksheet-tooltip-ui"; + // + UICommands["DownloadCopyDataSource"] = "download-copy-data-source"; + // + UICommands["DrilldownUI"] = "drilldown-ui"; + // + UICommands["DropSchemaSelOnShelfUI"] = "drop-schema-sel-on-shelf-ui"; + // + UICommands["DropUI"] = "drop-ui"; + // + UICommands["DuplicateDataSourceUI"] = "duplicate-datasource-ui"; + // + UICommands["DuplicateSheetAsCrosstab"] = "duplicate-sheet-as-crosstab"; + // + UICommands["DuplicateSheetOrCrosstabUI"] = "duplicate-sheet-or-crosstab-ui"; + // + UICommands["DuplicateSheetUI"] = "duplicate-sheet-ui"; + // + UICommands["EditAliasesUI"] = "edit-aliases-ui"; + // + UICommands["EditAnnotation"] = "edit-annotation"; + // + UICommands["EditAxisUI"] = "edit-axis-ui"; + // + UICommands["EditCalculatedSetUI"] = "edit-calculated-set-ui"; + // + UICommands["EditCalculationUI"] = "edit-calculation-ui"; + // + UICommands["EditCaptionUI"] = "edit-caption"; + // + UICommands["EditCombinedFieldUI"] = "edit-combined-field"; + // + UICommands["EditCopyFieldUI"] = "edit-copy-field-ui"; + // + UICommands["EditDataSourceUI"] = "edit-datasource-ui"; + // + UICommands["EditDataSourceFieldAliases"] = "edit-datasource-field-aliases"; + // + UICommands["EditDataSourceFiltersUI"] = "edit-datasource-filters-ui"; + // + UICommands["EditDataSourceSitePathsUI"] = "edit-datasource-site-paths-ui"; + // + UICommands["EditDateBinUI"] = "edit-date-bin-ui"; + // + UICommands["EditDefaultSortUI"] = "edit-default-sort-ui"; + // + UICommands["EditDropLinesUI"] = "edit-drop-lines-ui"; + // + UICommands["EditDropFieldUI"] = "edit-drop-field-ui"; + // + UICommands["EditDataSourceRelationshipsUI"] = "edit-datasource-relationships-ui"; + // + UICommands["EditEnumeratedSetUI"] = "edit-enumerated-set"; + // + UICommands["EditFilterQuickFilter"] = "edit-filter-quick-filter"; + // + UICommands["EditFilterUI"] = "edit-filter-ui"; + // + UICommands["EditForecastUI"] = "edit-forecast-ui"; + // + UICommands["EditGroupUI"] = "edit-group-ui"; + // + UICommands["EditGroupValue"] = "edit-group-value"; + // + UICommands["EditGroupValueLabel"] = "edit-group-value-label"; + // + UICommands["EditLegendGroupValueUI"] = "edit-group-value-legend"; + // + UICommands["EditImageUI"] = "edit-image-ui"; + // + UICommands["EditLegendMemberAliasUI"] = "edit-legend-member-alias-ui"; + // + UICommands["EditLegendTitleUI"] = "edit-legend-title-ui"; + // + UICommands["EditMarkColorUI"] = "edit-mark-color-ui"; + // + UICommands["EditMarkShapeUI"] = "edit-mark-shape-ui"; + // + UICommands["EditMemberAlias"] = "edit-member-alias"; + // + UICommands["EditMemberAliasLabel"] = "edit-member-alias-label"; + // + UICommands["EditPageTitleUI"] = "edit-page-title-ui"; + // + UICommands["EditParameterCtrlTitle"] = "edit-param-control-title"; + // + UICommands["EditPdfPageSelectionUI"] = "edit-pdf-page-selection-ui"; + // + UICommands["EditPrimaryAliasesUI"] = "edit-primary-aliases-ui"; + // + UICommands["EditReferenceLine"] = "edit-reference-line"; + // + UICommands["EditSchemaCalculationUI"] = "edit-schema-calculation-ui"; + // + UICommands["EditSchemaCalculationRangeUI"] = "edit-schema-calculation-range-ui"; + // + UICommands["EditSchemaCaptionUI"] = "edit-schema-caption-ui"; + // + UICommands["EditSchemaFieldAliasUI"] = "edit-schema-field-alias-ui"; + // + UICommands["ResetSchemaCaptionUI"] = "reset-schema-field-alias-ui"; + // + UICommands["ResetMultipleSchemaCaptionsUI"] = "reset-multiple-schema-field-alias-ui"; + // + UICommands["EditSchemaNumericBinsUI"] = "edit-schema-numeric-bins-ui"; + // + UICommands["EditSetUI"] = "edit-set-ui"; + // + UICommands["EditTitleQuickFilter"] = "edit-title-quick-filter"; + // + UICommands["EditTitleUI"] = "edit-title"; + // + UICommands["EditTooltipUI"] = "edit-tooltip"; + // + UICommands["EditTrendLinesUI"] = "edit-trend-lines-ui"; + // + UICommands["EditUserDescriptionUI"] = "edit-user-description-ui"; + // + UICommands["EditWMSMapTileServer"] = "edit-wms-map-tile-server"; + // + UICommands["EditZoneParam"] = "edit-zone-param"; + // + UICommands["EditZoneUrl"] = "edit-zone-url"; + // + UICommands["EstablishConnectionUI"] = "establish-connection-ui"; + // + UICommands["EstablishTableauServerConnectionUI"] = "establish-tableau-server-connection-ui"; + // + UICommands["ExecuteUIAutomationButton"] = "execute-ui-button-action"; + // + UICommands["ExecuteUIAutomationComboBox"] = "execute-ui-combo-box-action"; + // + UICommands["ExecuteUIAutomationGenericWidget"] = "execute-ui-generic-widget-action"; + // + UICommands["ExecuteUIAutomationLabel"] = "execute-ui-label-action"; + // + UICommands["ExecuteUIAutomationMenu"] = "execute-ui-menu-action"; + // + UICommands["ExecuteUIAutomationItemView"] = "execute-ui-item-view-action"; + // + UICommands["ExecuteUIAutomationTextBox"] = "execute-ui-text-box-action"; + // + UICommands["ExecuteUIAutomationToggleButton"] = "execute-ui-toggle-button-action"; + // + UICommands["ExecuteUIAutomationSlider"] = "execute-ui-slider-action"; + // + UICommands["ExecuteUIAutomationWindow"] = "execute-ui-window-action"; + // + UICommands["ExecuteUIAutomationWebView"] = "execute-ui-web-view-action"; + // + UICommands["ExecuteUIAutomationTab"] = "execute-ui-tab-action"; + // + UICommands["ExecuteUIAutomationTextBrowser"] = "execute-ui-text-browser-action"; + // + UICommands["ExitApplication"] = "exit-application"; + // + UICommands["ExportData"] = "export-data"; + // + UICommands["ExportDataSourceUI"] = "export-datasource-ui"; + // + UICommands["ExportPackagedWorkbook"] = "export-packaged"; + // + UICommands["ExportWorkbookSheetsUI"] = "export-workbook-sheets-ui"; + // + UICommands["ExtSvcConfigUI"] = "ext-svc-config-ui"; + // + UICommands["ExtractHistory"] = "extract-history"; + // + UICommands["ExtractPropertiesUI"] = "extract-properties-ui"; + // + UICommands["ExtractUI"] = "extract-ui"; + // + UICommands["FilterFieldLabelUI"] = "filter-field-label-ui"; + // + UICommands["FormatAnnotation"] = "format-annotation"; + // + UICommands["FormatAxisUI"] = "format-axis-ui"; + // + UICommands["FormatCaptionTitleUI"] = "format-caption-title"; + // + UICommands["FormatField"] = "format-pane"; + // + UICommands["FormatFieldLabelUI"] = "format-field-label-ui"; + // + UICommands["FormatLabel"] = "format-label"; + // + UICommands["FormatLegendsUI"] = "format-legends-ui"; + // + UICommands["FormatReferenceLine"] = "format-reference-line"; + // + UICommands["FormatUI"] = "format-ui"; + // + UICommands["FullScreen"] = "fullscreen"; + // + UICommands["GetDashboardSidePaneMode"] = "get-dashboard-sidepane-mode"; + // + UICommands["GetDebuggingInfo"] = "get-debugging-info"; + // + UICommands["GetIconPathForEncodingType"] = "get-icon-path-for-encoding-type"; + // + UICommands["GetIconPathForPrimitiveType"] = "get-icon-path-for-primitive-type"; + // + UICommands["GetTableOptionsPresModel"] = "get-table-options-pres-model"; + // + UICommands["GetWindowNameUI"] = "get-window-name"; + // + UICommands["GetWorksheetSidePaneMode"] = "get-worksheet-sidepane-mode"; + // + UICommands["GetHiddenSheets"] = "get-hidden-sheets"; + // + UICommands["GetOpenPaneMRUs"] = "get-open-pane-mrus"; + // + UICommands["GetOpenPaneSampleWorkbooks"] = "get-open-pane-sample-workbooks"; + // + UICommands["GetRetargetDataSourcePresModelUI"] = "get-retarget-datasource-pres-model-ui"; + // + UICommands["GetSchemaViewerPresModel"] = "get-schema-viewer-pres-model"; + // + UICommands["GetSelectedSheets"] = "get-selected-sheets"; + // + UICommands["GetSheetSorterThumbnail"] = "get-sheet-sorter-thumbnail"; + // + UICommands["GetSheetTabUIThumbnail"] = "get-sheet-tab-ui-thumbnail"; + // + UICommands["GetSheetTabUIText"] = "get-sheet-tab-ui-text"; + // + UICommands["GetVisibleTreeItems"] = "get-visible-tree-items"; + // + UICommands["GotoSheetRange"] = "goto"; + // + UICommands["GotoURL"] = "goto-url"; + // + UICommands["HideCaptionUI"] = "hide-caption"; + // + UICommands["HideFilmstripUI"] = "hide-filmstrip-ui"; + // + UICommands["HideTitleUI"] = "hide-title"; + // + UICommands["HideZoneUI"] = "hide-zone-ui"; + // + UICommands["HideAllSheetsUI"] = "hide-all-sheets-ui"; + // + UICommands["UnhideAllSheetsUI"] = "unhide-all-sheets-ui"; + // + UICommands["ImportLocalDataUI"] = "import-local-data-ui"; + // + UICommands["ImportMapSource"] = "import-map-source"; + // + UICommands["ImportMapSourceUI"] = "import-map-source-ui"; + // + UICommands["ImportWorkbookUI"] = "import-workbook-ui"; + // + UICommands["LoadDefaultFormattingUI"] = "load-formatting-ui"; + // + UICommands["LocateFieldUI"] = "locate-field-ui"; + // + UICommands["LogMemoryUsage"] = "log-memory-usage"; + // + UICommands["ManageLicensing"] = "manage-licensing"; + // + UICommands["ManageMapbox"] = "manage-mapbox"; + // + UICommands["ManagePublicWorkbooks"] = "manage-public"; + // + UICommands["ManageMapServices"] = "manage-map-services"; + // + UICommands["MapLayersUI"] = "map-layers-ui"; + // + UICommands["ManageWMS"] = "manage-wms"; + // + UICommands["UpgradeDataSourcesUI"] = "upgrade-datasources-ui"; + // + UICommands["UpgradeDataSourceUI"] = "upgrade-datasource-ui"; + // + UICommands["MoveRepository"] = "move-repository"; + // + UICommands["NewSchemaDrillPathUI"] = "new-schema-drill-path-ui"; + // + UICommands["NewUIDashboard"] = "new-dashboard-ui"; + // + UICommands["NewUIWorksheet"] = "new-worksheet-ui"; + // + UICommands["NewUIStoryboard"] = "new-storyboard-ui"; + // + UICommands["NewWorkbook"] = "new-workbook"; + // + UICommands["NextSheet"] = "next-sheet"; + // + UICommands["NonRangedEditReferenceLine"] = "non-ranged-edit-reference-line"; + // + UICommands["OpenBookmark"] = "open-bookmark"; + // + UICommands["OpenFromWorkgroup"] = "open-workbook-from-workgroup"; + // + UICommands["OpenMapSource"] = "open-map-source"; + // + UICommands["OpenMapSourceUI"] = "open-map-source-ui"; + // + UICommands["OpenSampleWorkbook"] = "open-sample-workbook"; + // + UICommands["OpenWorkbook"] = "open-workbook"; + // + UICommands["OpenRecentWorkbook"] = "open-recent-workbook"; + // + UICommands["OpenOtherFiles"] = "open-other-files"; + // + UICommands["OptimizeExtractUI"] = "optimize-extract-ui"; + // + UICommands["PageSetup"] = "page-setup"; + // + UICommands["Paste"] = "paste"; + // + UICommands["PasteFieldsDefnUI"] = "paste-fields-defn-ui"; + // + UICommands["PasteWorksheetFormatting"] = "paste-formatting"; + // + UICommands["PDFExport"] = "export-pdf"; + // + UICommands["PerspectivesUI"] = "perspectives-ui"; + // + UICommands["PresentationMode"] = "presentation-mode"; + // + UICommands["Print"] = "print"; + // + UICommands["PromptScript"] = "prompt-command"; + // + UICommands["PropertiesDataSourceUI"] = "properties-datasource-ui"; + // + UICommands["PublishDatasourceToWorkgroup"] = "publish-datasource-to-workgroup"; + // + UICommands["PublishDatasourceToWorkgroupFromData"] = "publish-datasource-to-workgroup-from-data"; + // + UICommands["PublishDatasourceToWorkgroupRange"] = "publish-datasource-to-workgroup-range"; + // + UICommands["PublishWorkbookToWorkgroup"] = "publish-workbook-to-workgroup"; + // + UICommands["PublishDatasourceToWorkgroupFromWorkbookData"] = "publish-datasource-to-workgroup-from-workbook-data"; + // + UICommands["PromptForDataSourceFileUI"] = "prompt-for-datasource-file-ui"; + // + UICommands["PromptUnknownWDCUrlUI"] = "prompt-unknown-wdc-url-ui"; + // + UICommands["QueryDataSourceUI"] = "query-datasource-ui"; + // + UICommands["QuickFilterFieldLabelUI"] = "quick-filter-field-label-ui"; + // + UICommands["QuickTableCalcUI"] = "quick-table-calc-ui"; + // + UICommands["ReconnectMapSourceUI"] = "reconnect-map-source-ui"; + // + UICommands["RecordPerformance"] = "record-perf"; + // + UICommands["RefreshAllExtractsUI"] = "refresh-all-extracts-ui"; + // + UICommands["RefreshAllThumbnailsUI"] = "refresh-all-thumbnails"; + // + UICommands["RefreshAutoExtractUI"] = "refresh-auto-extract-ui"; + // + UICommands["RefreshDataSourceUI"] = "refresh-datasource-ui"; + // + UICommands["RefreshExtractUI"] = "refresh-extract-ui"; + // + UICommands["RefreshFromSourceUI"] = "refresh-from-source-ui"; + // + UICommands["RefreshLocalDataUI"] = "refresh-local-data-ui"; + // + UICommands["RefreshThumbnailUI"] = "refresh-thumbnail"; + // + UICommands["ReleaseMemory"] = "release-memory"; + // + UICommands["RemoveAnnotation"] = "remove-annotation"; + // + UICommands["RemoveExtractUI"] = "remove-extract-ui"; + // + UICommands["RemoveMRUItem"] = "remove-mru"; + // + UICommands["RemoveSavedDataSourceUI"] = "remove-saved-datasource"; + // + UICommands["RemoveSheetFromDashboardUI"] = "remove-sheet-from-dashboard-ui"; + // + UICommands["RemoveTableUI"] = "remove-table-ui"; + // + UICommands["RenameDataSourceUI"] = "rename-datasource-ui"; + // + UICommands["RenameSchemaFieldFolderUI"] = "rename-field-folder-ui"; + // + UICommands["RenameSchemaDrillPathUI"] = "rename-schema-drillpath-ui"; + // + UICommands["RenameSheetUI"] = "rename-sheet-ui"; + // + UICommands["ReorderSheetsUI"] = "reorder-sheets-ui"; + // + UICommands["ReplaceDataSourceWithDataServerDataSourceUI"] = "replace-datasource-with-data-server-datasource-ui"; + // + UICommands["ReplaceFieldUI"] = "replace-field-ui"; + // + UICommands["ResetCaptionUI"] = "reset-caption-ui"; + // + UICommands["ResetCards"] = "reset-cards"; + // + UICommands["ResetLocalDataUI"] = "remove-local-data-ui"; + // + UICommands["ResetMessages"] = "reset-messages"; + // + UICommands["StartOnlineSyncClient"] = "start-online-sync-client"; + // + UICommands["ResetTitleUI"] = "reset-title-ui"; + // + UICommands["ResetToDefaultsMapCard"] = "reset-map-to-defaults"; + // + UICommands["ResetWorkbook"] = "revert-workbook-ui"; + // + UICommands["RetargetDataSource"] = "retarget-datasource"; + // + UICommands["RetargetDataSourceUI"] = "retarget-datasource-ui"; + // + UICommands["SaveAsWorkbook"] = "save-as-workbook"; + // + UICommands["SaveBookmark"] = "save-bookmark"; + // + UICommands["SaveDebuggingWorkbook"] = "save-debugging-workbook"; + // + UICommands["SaveDefaultFormattingUI"] = "save-formatting-ui"; + // + UICommands["SaveWorkbook"] = "save-workbook"; + // + UICommands["SchemaDefaultMemberUI"] = "schema-default-member-ui"; + // + UICommands["ScrollSheet"] = "scroll-sheet"; + // + UICommands["SetAccountsDimension"] = "set-accounts-dimension"; + // + UICommands["SetActiveConnectionUI"] = "set-active-connection-ui"; + // + UICommands["SetAnalyticsDropTargetVisibility"] = "set-analytics-drop-target-visibility"; + // + UICommands["SetDashboardSidePaneMode"] = "set-dashboard-sidepane-mode"; + // + UICommands["SetDefaultDateFormatUI"] = "set-default-date-format-ui"; + // + UICommands["SetDefaultLocationUI"] = "set-default-location-ui"; + // + UICommands["SetDefaultMapSourceUI"] = "set-default-mapsource-ui"; + // + UICommands["SetDefaultTextFormatUI"] = "set-default-text-format-ui"; + // + UICommands["SetDefaultUtilityMember"] = "set-default-utility-member"; + // + UICommands["SetFreeFormDashboardUI"] = "set-free-form-dashboard-ui"; + // + UICommands["SetFilterSharedUI"] = "set-filter-shared-ui"; + // + UICommands["SetKey"] = "set-key"; + // + UICommands["SetProductAutoUpdate"] = "set-auto-update"; + // + UICommands["SetQueryFailure"] = "set-query-failure"; + // + UICommands["SetRendering"] = "set-rendering"; + // + UICommands["SetRuntimeImmediateMode"] = "set-runtime-immediate-mode"; + // + UICommands["SetUILanguage"] = "set-ui-language"; + // + UICommands["SetWorkbookLocaleUI"] = "set-workbook-locale-ui"; + // + UICommands["SetWorksheetSidePaneMode"] = "set-worksheet-sidepane-mode"; + // + UICommands["SetZoneFixedSizeUI"] = "set-zone-fixed-size-ui"; + // + UICommands["SetsInOutUI"] = "show-in-out-sets"; + // + UICommands["ShapeLegendEditUI"] = "shape-legend-edit-ui"; + // + UICommands["ShowCloudFileOAuthPromptAndSelectionUI"] = "show-cloudfile-oauth-prompt-and-selection-ui"; + // + UICommands["ShowConnectionAuthUI"] = "show-connection-auth-ui"; + // + UICommands["ShowConnectionAuthAndEstablishConnectionUI"] = "show-connection-auth-and-establish-connection-ui"; + // + UICommands["ShowConnectTab"] = "show-connect-tab"; + // + UICommands["ShowCustomSplitDialogUI"] = "show-custom-split-dialog-ui"; + // + UICommands["ShowDocument"] = "document"; + // + UICommands["ShowFeatureFlagDialog"] = "show-feature-flag-dialog"; + // + UICommands["ShowFieldFormatUI"] = "show-field-format-ui"; + // + UICommands["ShowFieldInSchemaUI"] = "show-field-in-schema"; + // + UICommands["ShowFilmstripUI"] = "show-filmstrip-ui"; + // + UICommands["ShowGoogleSheetsSelectionUI"] = "show-google-sheets-selection-ui"; + // + UICommands["ShowHelp"] = "show-help"; + // + UICommands["ShowHideDashboardSheetUI"] = "show-hide-dashboard-sheet-ui"; + // + UICommands["ShowHideStoryboardSheetUI"] = "show-hide-storyboard-sheet-ui"; + // + UICommands["ShowGraphicsAPI"] = "show-graphics-api-command"; + // + UICommands["ShowMapOptionsDialog"] = "show-map-options-dialog"; + // + UICommands["ShowMeasuresUI"] = "show-measures-ui"; + // + UICommands["ShowMeCycleUI"] = "show-me-cycle-ui"; + // + UICommands["ShowMeHideUI"] = "show-me-hide-ui"; + // + UICommands["ShowMembersUI"] = "show-members-ui"; + // + UICommands["ShowMeToggleUI"] = "show-me-toggle-ui"; + // + UICommands["ShowOAuthPromptUI"] = "show-oauth-prompt-ui"; + // + UICommands["ShowParameterControl"] = "show-parameter-control"; + // + UICommands["ShowPublicStatusDialog"] = "show-public-status-dialog"; + // + UICommands["ShowPublicQuotaExceededDialog"] = "show-public-quota-exceeded-dialog"; + // + UICommands["ShowPublishDatasourceToWorkgroupDialog"] = "show-publish-datasource-to-workgroup-dialog"; + // + UICommands["ShowQueryBandingAndInitialSQLDialogUI"] = "show-query-banding-and-initial-sql-dialog-ui"; + // + UICommands["ShowQuickFilter"] = "show-quickfilter"; + // + UICommands["ShowQuickFilterUI"] = "show-quickfilter-ui"; + // + UICommands["ShowRuntimeIndicator"] = "show-runtime-indicator"; + // + UICommands["ShowSheetSorter"] = "sheet-sorter"; + // + UICommands["ShowTableOptionsDialog"] = "show-table-options-dialog"; + // + UICommands["ShowWebDataConnectorUI"] = "show-web-data-connector-ui"; + // + UICommands["ShowWidgetSandboxUI"] = "show-widget-sandbox-ui"; + // + UICommands["SizeLegendEditUI"] = "size-legend-edit-ui"; + // + UICommands["SleepUI"] = "sleep-ui"; + // + UICommands["SortAscendingFieldLabelUI"] = "sort-ascending-field-label-ui"; + // + UICommands["SortDescendingFieldLabelUI"] = "sort-descending-field-label-ui"; + // + UICommands["SortFieldLabelUI"] = "sort-field-label-ui"; + // + UICommands["SortUI"] = "sort-ui"; + // + UICommands["SplitFieldUI"] = "split-field-ui"; + // + UICommands["StackMarksUI"] = "stack-marks-ui"; + // + UICommands["StartFileConnectionUI"] = "start-file-connection-ui"; + // + UICommands["StartPillEditUI"] = "start-pill-edit-ui"; + // + UICommands["SwitchToConnectTab"] = "switch-to-connect-tab"; + // + UICommands["SwitchToDocument"] = "switch-to-document"; + // + UICommands["SwitchToSheetSorter"] = "switch-to-sheet-sorter"; + // + UICommands["TableCalcAddressUI"] = "table-calc-address-ui"; + // + UICommands["TableCalcIgnoreUI"] = "table-calc-ignore-ui"; + // + UICommands["TableCalcOrderingUI"] = "table-calc-ordering-ui"; + // + UICommands["TableCalcUI"] = "table-calc-ui"; + // + UICommands["ToggleConnectPaneUI"] = "toggle-connect-pane"; + // + UICommands["ToggleFilmstripUI"] = "toggle-filmstrip-ui"; + // + UICommands["ToggleINDJoinSemanticsUI"] = "toggle-ind-join-semantics-ui"; + // + UICommands["TogglePinMRUItem"] = "toggle-pin-mru"; + // + UICommands["ToggleReferentialIntegrityUI"] = "toggle-referential-integrity-ui"; + // + UICommands["ToggleStartPageUI"] = "toggle-start-page"; + // + UICommands["TrackMemory"] = "track-memory"; + // + UICommands["TrendLinesFlagUI"] = "trend-lines-ui"; + // + UICommands["UpdateDefaultsMapCard"] = "update-map-defaults"; + // + UICommands["UpgradeExtractsUI"] = "upgrade-extracts-ui"; + // + UICommands["UpgradeExtractUI"] = "upgrade-extract-ui"; + // + UICommands["UseExtractUI"] = "use-extract-ui"; + // + UICommands["UseMemory"] = "use-memory"; + // + UICommands["UtilityDimensionUI"] = "utility-dimension-ui"; + // + UICommands["ValidateExtractCredentialsUI"] = "validate-extract-credentials-ui"; + // + UICommands["ViewCard"] = "view-card"; + // + UICommands["ViewTitleCard"] = "view-title-card"; + // + UICommands["ViewSummaryCard"] = "view-summary-card"; + // + UICommands["ViewCaptionCard"] = "view-caption-card"; + // + UICommands["ViewColumnsShelf"] = "view-columns-shelf"; + // + UICommands["ViewRowsShelf"] = "view-rows-shelf"; + // + UICommands["ViewPagesShelf"] = "view-pages-shelf"; + // + UICommands["ViewFiltersShelf"] = "view-filters-shelf"; + // + UICommands["ViewMeasuresShelf"] = "view-measures-shelf"; + // + UICommands["ViewMarksShelf"] = "view-marks-shelf"; + // + UICommands["ViewCurrentPageCard"] = "view-current-page-card"; + // + UICommands["ViewData"] = "view-data"; + // + UICommands["ViewSQLDataUI"] = "view-sql-data-ui"; + // + UICommands["ViewDataSourceData"] = "view-datasource-data"; + // + UICommands["ViewLegend"] = "view-legend"; + // + UICommands["ViewSidePane"] = "view-side-pane"; + // + UICommands["ViewStatusBar"] = "view-statusbar"; + // + UICommands["ViewSummaryDetail"] = "view-summary-detail"; + // + UICommands["ViewTableData"] = "view-table-data"; + // + UICommands["ViewToolBar"] = "view-toolbar"; + // + UICommands["WebViewEnableJavascript"] = "webview-enable-javascript"; + // + UICommands["WebViewEnablePlugins"] = "webview-enable-plugins"; + // + UICommands["WebViewBlockPopups"] = "webview-block-popups"; + // + UICommands["WebViewEnableURLHoverActions"] = "webview-enable-url-hover-actions"; + // + UICommands["WorkgroupChangeDataserver"] = "workgroup-change-dataserver"; + // + UICommands["WorkgroupChangeServer"] = "workgroup-change-server"; + // + UICommands["WorkgroupChangeUser"] = "workgroup-change-user"; + // + UICommands["WorkgroupRemoveLastServer"] = "workgroup-remove-last-server"; + })(UICommands = exports.UICommands || (exports.UICommands = {})); + (function (DocCommands) { + // Gets the axis options . + DocCommands["GetAxisOptions"] = "get-axis-options"; + // Reset the axis options . + DocCommands["ResetAxisOptions"] = "reset-axis-options"; + // Show axis edit dialog + DocCommands["ShowEditAxisDialog"] = "show-edit-axis-dialog"; + // Sets the axis direction + DocCommands["SetAxisReversed"] = "set-axis-reversed"; + // Sets the axis scale type + DocCommands["SetAxisScaleType"] = "set-axis-scale-type"; + // Sets the main title of a quantitative axis + DocCommands["SetAxisTitle"] = "set-axis-title"; + // Sets the subtitle of a quantitative axis + DocCommands["SetAxisSubtitle"] = "set-axis-subtitle"; + // Sets whether we should use the automatic subtitle for a quantitative axis + DocCommands["SetAxisUseAutomaticSubtitle"] = "set-axis-use-automatic-subtitle"; + // Sets the axis range type of a quantitative axis + DocCommands["SetAxisExtentStartType"] = "set-axis-extent-start-type"; + // Sets the axis range type of a quantitative axis + DocCommands["SetAxisExtentEndType"] = "set-axis-extent-end-type"; + // Sets the axis range type of a quantitative axis + DocCommands["SetBothAxisExtentsType"] = "set-both-axis-extents-type"; + // Sets whether or not to force-include zero on a quantitative axis + DocCommands["SetAxisIncludeZero"] = "set-axis-include-zero"; + // Sets new min/max range endings for axis + DocCommands["SetAxisRangeEnd"] = "set-axis-range-end"; + // Sets new min/max range endings for axis + DocCommands["SetAxisRangeStart"] = "set-axis-range-start"; + // Synchronize dual axes on a folded quantitative axis + DocCommands["SetAxisFoldState"] = "set-axis-fold-state"; + // Set the major tick mark state + DocCommands["SetMajorTickMarkState"] = "set-major-tick-mark-state"; + // Set the minor tick mark state + DocCommands["SetMinorTickMarkState"] = "set-minor-tick-mark-state"; + // Set the major tick mark origin + DocCommands["SetMajorTickMarkOrigin"] = "set-major-tick-mark-origin"; + // Set the minor tick mark origin + DocCommands["SetMinorTickMarkOrigin"] = "set-minor-tick-mark-origin"; + // Set the major tick mark spacing + DocCommands["SetMajorTickMarkSpacing"] = "set-major-tick-mark-spacing"; + // Set the minor tick mark spacing + DocCommands["SetMinorTickMarkSpacing"] = "set-minor-tick-mark-spacing"; + // Set the major tick mark units + DocCommands["SetMajorTickMarkUnits"] = "set-major-tick-mark-units"; + // Set the minor tick mark units + DocCommands["SetMinorTickMarkUnits"] = "set-minor-tick-mark-units"; + // + DocCommands["BoundingBoxPan"] = "bounding-box-pan"; + // + DocCommands["OnToggleAxisRanges"] = "on-toggle-axis-ranges"; + // + DocCommands["PanePan"] = "pane-pan"; + // + DocCommands["PaneZoom"] = "pane-zoom"; + // + DocCommands["PaneZoomFactor"] = "pane-zoom-factor"; + // + DocCommands["PaneZoomPan"] = "pane-zoom-pan"; + // + DocCommands["ReorderFoldedAxes"] = "reorder-folded-axes"; + // + DocCommands["ResetAxisRange"] = "reset-axis-range"; + // + DocCommands["SelectAxisTuples"] = "select-axis-tuples"; + // + DocCommands["SwapReferenceLineFields"] = "swap-reference-line-fields"; + // + DocCommands["SynchronizeAxis"] = "synchronize-axis"; + // + DocCommands["ToggleDualAxis"] = "toggle-dual-axis"; + // + DocCommands["ZoomLevel"] = "zoom-level"; + })(DocCommands = exports.DocCommands || (exports.DocCommands = {})); + + +/***/ }, +/* 13 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * Registry which contains mappings from an Api VerbId to a pres-layer command. + * This includes the parameters and return values of the command as well + * + * @export + * @class CommandMappingRegistry + */ + var CommandMappingRegistry = (function () { + /** + * Creates an instance of CommandMappingRegistry. + * @memberof CommandMappingRegistry + */ + function CommandMappingRegistry() { + this._commands = {}; + } + /** + * Adds a new command to the registry + * + * @param {CommandRegistration} command + * @memberof CommandMappingRegistry + */ + CommandMappingRegistry.prototype.addCommand = function (command) { + this._commands[command.apiVerbId] = command; + }; + /** + * Whether or not this registry contains a definition for this ApiVerbId + * + * @param {ApiVerbId} apiVerbId + * @returns {boolean} + * @memberof CommandMappingRegistry + */ + CommandMappingRegistry.prototype.hasCommand = function (apiVerbId) { + if (!this._commands.hasOwnProperty(apiVerbId)) { + return false; + } + if (!this._commands[apiVerbId]) { + return false; + } + return true; + }; + /** + * Gets the command registration for this command id or throws if it doesn't exist + * + * @param {ApiVerbId} apiVerbId + * @returns {CommandRegistration} + * @memberof CommandMappingRegistry + */ + CommandMappingRegistry.prototype.getCommand = function (apiVerbId) { + if (!this.hasCommand(apiVerbId)) { + throw new Error('Unknown ApiVerb: ' + apiVerbId); + } + return this._commands[apiVerbId]; + }; + return CommandMappingRegistry; + }()); + exports.CommandMappingRegistry = CommandMappingRegistry; + + +/***/ }, +/* 14 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_internal_contract_1 = __webpack_require__(4); + /** + * This is an enum used only internally by the api-core project. + * This enum represents the difference namespaces available for commands. + */ + var CommandNamespace; + (function (CommandNamespace) { + CommandNamespace["TabDoc"] = "tabdoc"; + CommandNamespace["TabUI"] = "tabui"; + })(CommandNamespace = exports.CommandNamespace || (exports.CommandNamespace = {})); + /** + * Represents an input or output paramter for a command. + * + * @export + * @class CommandParameter + */ + var CommandParameter = (function () { + /** + * Creates an instance of CommandParameter. + * @param {ApiParameterId} apiId + * @param {PresLayerParameterId} presLayerId + * @param {boolean} [isOptional] + * @memberof CommandParameter + */ + function CommandParameter(_apiId, _presLayerId, _isOptional) { + this._apiId = _apiId; + this._presLayerId = _presLayerId; + this._isOptional = _isOptional; + } + Object.defineProperty(CommandParameter.prototype, "apiId", { + /** + * The Id of the Api Parameter + * + * @readonly + * @type {ApiParameterId} + * @memberof CommandParameter + */ + get: function () { + return this._apiId; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(CommandParameter.prototype, "presLayerId", { + /** + * The Id of the Pres Layer Parameter + * + * @readonly + * @type {PresLayerParameterId} + * @memberof CommandParameter + */ + get: function () { + return this._presLayerId; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(CommandParameter.prototype, "isOptional", { + /** + * Whether or not this is an optional parameter + * + * @readonly + * @type {boolean} + * @memberof CommandParameter + */ + get: function () { + return !!this._isOptional; + }, + enumerable: true, + configurable: true + }); + return CommandParameter; + }()); + exports.CommandParameter = CommandParameter; + /** + * Represents a the complete mapping of an ApiCommand to its corresponding pres-layer command + * and the conversion of the output value as well + * + * @export + * @class CommandRegistration + */ + var CommandRegistration = (function () { + function CommandRegistration(_apiVerbId, _commandId, _inputParameters, _outputParameter, _namespace) { + this._apiVerbId = _apiVerbId; + this._commandId = _commandId; + this._inputParameters = _inputParameters; + this._outputParameter = _outputParameter; + this._namespace = _namespace; + } + Object.defineProperty(CommandRegistration.prototype, "apiVerbId", { + get: function () { + return this._apiVerbId; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(CommandRegistration.prototype, "commandId", { + get: function () { + return this._commandId; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(CommandRegistration.prototype, "inputs", { + get: function () { + return this._inputParameters || new Array(); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(CommandRegistration.prototype, "output", { + get: function () { + return this._outputParameter; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(CommandRegistration.prototype, "namespace", { + get: function () { + return this._namespace || CommandNamespace.TabDoc; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(CommandRegistration.prototype, "needsAddInLocator", { + /** + * Whether or not this command requires an add-in locator to be injected into it + * + * @readonly + * @type {boolean} + * @memberof CommandRegistration + */ + get: function () { + for (var _i = 0, _a = this.inputs; _i < _a.length; _i++) { + var input = _a[_i]; + if (input.apiId === api_internal_contract_1.ParameterId.ExtensionLocator) { + return true; + } + } + return false; + }, + enumerable: true, + configurable: true + }); + /** + * Creates a dictionary of pres-layer parameters from the input dictionary + * of api parameters. + * + * @param {ExecuteParameters} parameters - The parameters to convert + * @param {ApiToPresLayerMappingRegistry} apiToPresLayer - mapping to determine the conversion + * @returns {{ [paramId: string]: object; }} - parameters to send to the pres-layer + * @memberof CommandRegistration + */ + CommandRegistration.prototype.createParams = function (parameters, apiToPresLayer) { + var result = {}; + for (var _i = 0, _a = this.inputs; _i < _a.length; _i++) { + var inputParam = _a[_i]; + // First make sure the parameter is there or that it's optional + if (!parameters.hasOwnProperty(inputParam.apiId)) { + if (inputParam.isOptional) { + continue; + } + else { + throw new Error('Missing parameter for command: ' + inputParam.apiId); + } + } + // Find the conversion function for this parameter + var conversionFn = apiToPresLayer.get(inputParam.apiId, inputParam.presLayerId); + // Convert the pres model and insert it into our results object + result[inputParam.presLayerId] = conversionFn(parameters[inputParam.apiId]); + } + return result; + }; + /** + * Processes the result received back after executing a pres-layer command + * + * @param {{ [docParamId: string]: object; }} resultParameters + * @param {PresLayerToApiMappingRegistry} presLayerToApi + * @returns {Model} + * @memberof CommandRegistration + */ + CommandRegistration.prototype.ProcessResult = function (resultParameters, presLayerToApi) { + // TODO: Add error handling + if (this.output === undefined) { + var noOutputModel = {}; + return noOutputModel; + } + if (!resultParameters || !resultParameters.hasOwnProperty(this.output.presLayerId)) { + // if the output result is marked as optional, we don't consider this an error situation and just return an empty model + if (this.output.isOptional) { + return {}; + } + throw new Error('Missing expected result parameter: ' + this.output.presLayerId); + } + var conversionFn = presLayerToApi.get(this.output.presLayerId, this.output.apiId); + return conversionFn(resultParameters[this.output.presLayerId]); + }; + return CommandRegistration; + }()); + exports.CommandRegistration = CommandRegistration; + + +/***/ }, +/* 15 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_internal_contract_1 = __webpack_require__(4); + var Events_1 = __webpack_require__(16); + var PresLayerToApiConverter_1 = __webpack_require__(17); + /** + * Simple wrapper which holds a mapping to go from a pres-layer event to an API event + */ + var EventMappingRegistration = (function () { + function EventMappingRegistration(_presLayerId, _apiId, _converter) { + this._presLayerId = _presLayerId; + this._apiId = _apiId; + this._converter = _converter; + } + Object.defineProperty(EventMappingRegistration.prototype, "presLayerId", { + get: function () { + return this._presLayerId; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(EventMappingRegistration.prototype, "apiId", { + get: function () { + return this._apiId; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(EventMappingRegistration.prototype, "converter", { + get: function () { + return this._converter; + }, + enumerable: true, + configurable: true + }); + return EventMappingRegistration; + }()); + exports.EventMappingRegistration = EventMappingRegistration; + var EventMappingRegistryFactory = (function () { + function EventMappingRegistryFactory() { + } + /** + * Creates and populates a new EventMappingRegistry for the specific version number requested + * + * @param {VersionNumber} versionNumber + * @returns {EventMappingRegistry} + */ + EventMappingRegistryFactory.createEventMappingRegistry = function (versionNumber) { + var registry = {}; + registry[Events_1.NotificationId.SelectionChanged] = new EventMappingRegistration(Events_1.NotificationId.SelectionChanged, api_internal_contract_1.NotificationId.SelectedMarksChanged, PresLayerToApiConverter_1.PresLayerToApiConverter.convertVisualId); + registry[Events_1.NotificationId.ParameterChanged] = new EventMappingRegistration(Events_1.NotificationId.ParameterChanged, api_internal_contract_1.NotificationId.ParameterChanged, PresLayerToApiConverter_1.PresLayerToApiConverter.convertFieldCaptionPair); + registry[Events_1.NotificationId.FilterChanged] = new EventMappingRegistration(Events_1.NotificationId.FilterChanged, api_internal_contract_1.NotificationId.FilterChanged, PresLayerToApiConverter_1.PresLayerToApiConverter.convertFilterEvent); + return registry; + }; + return EventMappingRegistryFactory; + }()); + exports.EventMappingRegistryFactory = EventMappingRegistryFactory; + + +/***/ }, +/* 16 */ +/***/ function(module, exports) { + + "use strict"; + /* tslint:disable */ + // ----------------------------------------------------------------------------- + // + // This file is the copyrighted property of Tableau Software and is protected + // by registered patents and other applicable U.S. and international laws and + // regulations. + // + // Unlicensed use of the contents of this file is prohibited. Please refer to + // the NOTICES.txt file for further details. + // + // ----------------------------------------------------------------------------- + // WARNING: Computer generated file. Do not hand modify. + // DEPENDS ON: ['../typescript/js-api/api-core/node_modules/@tableau/preslayer-codegen-typescript/templates/events-ts.template', u'../typescript/js-api/api-core/temp-pres-layer/all-events.data'] + Object.defineProperty(exports, "__esModule", { value: true }); + // Events you can register to receive presentation models + var NotificationId; + (function (NotificationId) { + // Triggered when aliases are to be edited. Used to launch a dialog. + NotificationId["EditAliasesDialogNotification"] = "edit-aliases-dialog-notification-event"; + // for the calculation dialog + NotificationId["CalculationDialog"] = "calculation-dialog-event"; + // update for an adhoc calc in a type in pill + NotificationId["TypeInPill"] = "type-in-pill-event"; + // results of a validation command + NotificationId["CommandValidation"] = "command-validation-event"; + // event for the groups dialog + NotificationId["UpdateCategoricalBinEditDialog"] = "update-categorical-bin-edit-dialog-event"; + // for the categorical color dialog + NotificationId["CategoricalColor"] = "categorical-color-event"; + // update the web categorical color dialog + NotificationId["WebCategoricalColorDialog"] = "web-categorical-color-dialog-event"; + // user invoked action which requires a Data Alert Dialog + NotificationId["DataAlertDialog"] = "data-alert-dialog-event"; + // event to select field(s) in the data schema + NotificationId["DataSchemaSelection"] = "data-schema-selection-event"; + // event for when the data source being edited is updated + NotificationId["UpdateDataPreparation"] = "update-data-preparation-event"; + // event for when the data source data is updated + NotificationId["UpdateDataSourceData"] = "update-data-source-data-event"; + // event for when a client should request new data source or data source data pres models + NotificationId["DataSourceUpdateNeeded"] = "data-source-update-needed-event"; + // event for getting the pres model to update file join table properties + NotificationId["TextFileProperties"] = "text-file-properties-event"; + // event for the detailed error dialog + NotificationId["UpdateDetailedErrorDialog"] = "update-detailed-error-dialog-event"; + // notify changes to the state of a filter's relational model + NotificationId["FilterRelationalStateChanged"] = "filter-relational-state-changed-event"; + // notify changes to the size/selection count of a relational domain + NotificationId["FilterRelationalDomainChanged"] = "filter-relational-domain-changed-event"; + // notify when filter cache was requested but not found + NotificationId["FilterCacheNotFound"] = "filter-cache-not-found-event"; + // Hierarchy Select model observable notification. + NotificationId["HierarchyNotification"] = "hierarchy-notification-event"; + // Hierarchy selection change notifications. + NotificationId["HierarchySelection"] = "hierarchy-selection-event"; + // event for the map options dialog + NotificationId["MapOptionsDialog"] = "map-options-dialog-event"; + // notify the Page UI(hide/show states, layout) needs to be updated + NotificationId["UpdatePageUINotification"] = "update-page-uinotification-event"; + // notify to the SceneView has been drawn. + NotificationId["SceneViewDrawnNotification"] = "scene-view-drawn-notification-event"; + // The AnimationControlChange event fires when the user clicks an animation playback button: forward, stop, slow, fast, etc. + NotificationId["AnimationControlChange"] = "animation-control-change-event"; + // notify the sheet has been renamed + NotificationId["RenameSheetNotification"] = "rename-sheet-notification-event"; + // update the web quantitative color dialog + NotificationId["WebQuantitativeColorDialog"] = "web-quantitative-color-dialog-event"; + // update the axis edit dialog + NotificationId["UpdateEditAxisDialog"] = "update-edit-axis-dialog-event"; + // event for the reference line dialog, which is only valid during web authoring + NotificationId["UpdateRefLineDialog"] = "update-ref-line-dialog-event"; + // event to trigger other reference line dialogs to close + NotificationId["RefLineDialogOpening"] = "ref-line-dialog-opening-event"; + // event for the close data source error dialog, which is only valid during web authoring + NotificationId["CloseDataSourceErrorDialog"] = "close-data-source-error-dialog-event"; + // update the web Save Datasource dialog + NotificationId["WebSaveDatasourceDialog"] = "web-save-datasource-dialog-event"; + // warning resulting from WarningMsg + NotificationId["WarningMessage"] = "warning-message-event"; + // event for the table calc dialog, on web, this is only valid during web authoring + NotificationId["TableCalcDialog"] = "table-calc-dialog-event"; + // user invoked action which requires Table Calc Dialog + NotificationId["TableCalcActivateDialog"] = "table-calc-activate-dialog-event"; + // event for the trend line dialog + NotificationId["UpdateTrendLineEditDialog"] = "update-trend-line-edit-dialog-event"; + // The table page cache has been refreshed; pages must be reloaded from the cache. + NotificationId["PageCacheRefresh"] = "page-cache-refresh-event"; + // The table page cache has expired and all resources have been released. + NotificationId["PageCacheExpired"] = "page-cache-expired-event"; + // All pages, identified by row/col, in the provided list have expired and should be reloaded. + NotificationId["PageCachePagesExpired"] = "page-cache-pages-expired-event"; + // All pages betweem the range (inclusive) in the provided list have expired and should be reloaded. + NotificationId["PageCachePageRangeExpired"] = "page-cache-page-range-expired-event"; + // Update for the rich text editor dialog + NotificationId["RichTextEditorDialog"] = "rich-text-editor-dialog-event"; + // Triggered when the user wants to reload an add-in instance. + NotificationId["ReloadAddIn"] = "reload-add-in-event"; + // Triggered when the selected marks have changed. + NotificationId["SelectionChanged"] = "selection-changed-event"; + // Triggered when the value of a parameter has changed. Emits the name and caption of the parameter + NotificationId["ParameterChanged"] = "parameter-changed-event"; + // Triggered when the filters have changed. + NotificationId["FilterChanged"] = "filter-changed-event"; + // notification to launch the hybrid UI showcase + NotificationId["LaunchHybridUIShowcase"] = "launch-hybrid-uishowcase-event"; + // notification of new echoed text for HybridUI showcase demo + NotificationId["HybridUIShowcaseEcho"] = "hybrid-uishowcase-echo-event"; + // event for the bin dialog + NotificationId["UpdateNumericBinEditDialog"] = "update-numeric-bin-edit-dialog-event"; + // a test event with a pres model + NotificationId["TestEventWithModel"] = "test-event-with-model-event"; + // a test event without a pres model + NotificationId["TestEventWithoutModel"] = "test-event-without-model-event"; + })(NotificationId = exports.NotificationId || (exports.NotificationId = {})); + + +/***/ }, +/* 17 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var Api = __webpack_require__(4); + var api_utils_1 = __webpack_require__(18); + var EnumMappings_1 = __webpack_require__(21); + /** + * Class containing helper methods for converting from PresLayerPresModels to their ApiPresModels equivalents + * + * @export + * @class PresLayerToApiConverter + */ + var PresLayerToApiConverter = (function () { + function PresLayerToApiConverter() { + } + PresLayerToApiConverter.convertSheetPath = function (plSheetPath) { + var result = { + sheetName: plSheetPath.sheetName, + isDashboard: plSheetPath.isDashboard, + storyboard: plSheetPath.storyboard, + flipboardZoneID: plSheetPath.flipboardZoneId, + storyPointID: plSheetPath.storyPointId, + }; + return result; + }; + PresLayerToApiConverter.convertVisualId = function (plVisualId) { + var result = { + worksheet: plVisualId.worksheet, + dashboard: plVisualId.dashboard, + storyboard: plVisualId.storyboard, + flipboardZoneID: plVisualId.flipboardZoneId, + storyPointID: plVisualId.storyPointId, + }; + return result; + }; + PresLayerToApiConverter.convertExtensionLocator = function (plAddInLocator) { + var dashboardPath = undefined; + if (plAddInLocator.sheetPath) { + dashboardPath = PresLayerToApiConverter.convertSheetPath(plAddInLocator.sheetPath); + } + var result = { + instanceId: plAddInLocator.addInInstanceId, + dashboardPath: dashboardPath + }; + return result; + }; + PresLayerToApiConverter.convertDashboardInZones = function (plDashboard) { + var result = new Array(); + for (var _i = 0, _a = Object.keys(plDashboard.zones); _i < _a.length; _i++) { + var zoneKey = _a[_i]; + var zone = plDashboard.zones[zoneKey]; + var apiZone = { + name: zone.zoneCommon.name, + zoneId: zone.zoneId, + zoneType: EnumMappings_1.PresLayerToApiEnumMappings.zoneType.convert(zone.zoneCommon.zoneType), + height: zone.zoneCommon.h, + width: zone.zoneCommon.w, + x: zone.zoneCommon.x, + y: zone.zoneCommon.y + }; + result.push(apiZone); + } + return result; + }; + PresLayerToApiConverter.convertDashboardInfo = function (plDashboardInfo) { + var result = { + zones: PresLayerToApiConverter.convertDashboardInZones(plDashboardInfo.dashboardPresModel), + name: plDashboardInfo.dashboardPresModel.sheetPath.sheetName, + extensionZoneId: plDashboardInfo.zoneId, + size: plDashboardInfo.dashboardPresModel.viewportSize + }; + return result; + }; + PresLayerToApiConverter.convertExtensionInstance = function (plAddInInstance) { + var result = { + url: plAddInInstance.addInRegistrationPresModel.url, + locator: PresLayerToApiConverter.convertExtensionLocator(plAddInInstance.addInLocatorPresModel) + }; + return result; + }; + PresLayerToApiConverter.convertExtensionEnivrionment = function (plAddInEnvironment) { + var result = { + extensionContext: EnumMappings_1.PresLayerToApiEnumMappings.extensionContext.convert(plAddInEnvironment.addInContext), + extensionMode: EnumMappings_1.PresLayerToApiEnumMappings.extensionMode.convert(plAddInEnvironment.addInMode), + extensionLocale: plAddInEnvironment.addInLocale, + extensionLanguage: plAddInEnvironment.addInLanguage, + tableauVersion: plAddInEnvironment.tableauVersion, + operatingSystem: plAddInEnvironment.operatingSystem, + apiVersion: plAddInEnvironment.apiVersion + }; + return result; + }; + PresLayerToApiConverter.convertExtensionSettingsInfo = function (plAddInSettings) { + var result = { + // addInSettings is undefined during bootstrap initialization + settingsValues: plAddInSettings.addInSettings || {} + }; + return result; + }; + PresLayerToApiConverter.convertExtensionBootstrapInfo = function (plBootstrapInfo) { + var result = { + extensionDashboardInfo: PresLayerToApiConverter.convertDashboardInfo(plBootstrapInfo.addInDashboardInfoPresModel), + extensionEnvironment: PresLayerToApiConverter.convertExtensionEnivrionment(plBootstrapInfo.addInEnvironmentPresModel), + extensionInstance: PresLayerToApiConverter.convertExtensionInstance(plBootstrapInfo.addInInstancePresModel), + extensionSettingsInfo: PresLayerToApiConverter.convertExtensionSettingsInfo(plBootstrapInfo.addInSettingsInfo) + }; + return result; + }; + PresLayerToApiConverter.convertFieldCaptionPair = function (plFieldCaptionPair) { + return plFieldCaptionPair.fn; + }; + PresLayerToApiConverter.convertFilterEvent = function (plFilterEvent) { + var result = { + visualId: PresLayerToApiConverter.convertVisualId(plFilterEvent.visualIdPresModel), + fieldName: plFilterEvent.fieldCaption + }; + return result; + }; + PresLayerToApiConverter.convertDataSchema = function (dataSchema) { + var apiDataSources = {}; + api_utils_1.Param.verifyValue(dataSchema, 'dataSchema'); + api_utils_1.Param.verifyValue(dataSchema.dataSources, 'dataSchema.dataSources'); + // Convert each pres layer datasource in the schema to an Api datasource + Object.keys(dataSchema.dataSources).forEach(function (key) { + // Skip the default Parameters datasource we receive from the platform. + if (dataSchema.dataSources[key].datasource !== PresLayerToApiConverter.PARAMETERS_DB_NAME) { + apiDataSources[key] = PresLayerToApiConverter.convertDataSource(dataSchema.dataSources[key]); + } + }); + var schemaMap = PresLayerToApiConverter.convertWorksheetDataSchemaMap(dataSchema.worksheetDataSchemaMap); + var result = { + dataSources: apiDataSources, + worksheetDataSchemaMap: schemaMap, + }; + return result; + }; + PresLayerToApiConverter.convertDataSource = function (dataSource) { + var extractUpdateTime = (dataSource.extractUpdateTime === '') ? undefined : dataSource.extractUpdateTime; + var dataSourceFields = new Array(); + api_utils_1.Param.verifyValue(dataSource, 'dataSource'); + api_utils_1.Param.verifyValue(dataSource.fieldList, 'dataSchema.fieldList'); + dataSource.fieldList.forEach(function (plField) { + // If the datasource contains hierarchies or folders, the base field will contain + // a list of the fields grouped beneath it, we are interested in those. + // Tableau does not support nested folders or hierarchies, so this does not need to be recursive. + var hierarchyModel = plField; + if (hierarchyModel.columnList) { + hierarchyModel.columnList.forEach(function (field) { return dataSourceFields.push(PresLayerToApiConverter.convertField(field)); }); + } + else { + // This is a bit brittle for now, but this value is not exposed via the platform FieldType Enum. + if (plField.type !== 'field-folder') { + dataSourceFields.push(PresLayerToApiConverter.convertField(plField)); + } + } + }); + var result = { + name: dataSource.datasourceCaption, + id: dataSource.datasource, + isExtract: (extractUpdateTime !== undefined), + extractUpdateTime: extractUpdateTime, + fields: dataSourceFields + }; + return result; + }; + PresLayerToApiConverter.convertWorksheetDataSchemaMap = function (schemaMap) { + var result = {}; + Object.keys(schemaMap).forEach(function (key) { + // We need to remove any references to the "Parameters" datasource. This is treated as a separate + // datasource by the platform, but the Extensions API accesses Parameters directly. + var cleanReferencedDataSourceList = schemaMap[key].referencedDataSourceList.filter(function (dsName) { + return dsName !== PresLayerToApiConverter.PARAMETERS_DB_NAME; + }); + var worksheetDataSourceInfo = { + primaryDataSource: schemaMap[key].primaryDatasource, + referencedDataSourceList: cleanReferencedDataSourceList + }; + result[key] = worksheetDataSourceInfo; + }); + return result; + }; + PresLayerToApiConverter.convertField = function (plField) { + var fieldColumn = plField; + var groupColumn = plField; + var aggregation = Api.FieldAggregationType.None; + var role = Api.FieldRoleType.Unknown; + var isCalculated = false; + // We expect that every FieldPresModel we get back from the command that returns FieldPresModels + // is actually an instance of the derived FieldColumnPresModel. + if (fieldColumn.aggregation && fieldColumn.fieldRole) { + aggregation = EnumMappings_1.PresLayerToApiEnumMappings.fieldAggregationType.convert(fieldColumn.aggregation); + role = EnumMappings_1.PresLayerToApiEnumMappings.fieldRoleType.convert(fieldColumn.fieldRole); + isCalculated = fieldColumn.isCalculated || false; + } + else { + throw new Error('Unexpected Internal Error: field pres model is missing expected properties.'); + } + var result = { + name: plField.description, + id: plField.name, + description: plField.userCaption, + aggregation: aggregation, + isHidden: !!(plField.isHidden), + isGenerated: plField.isGenerated, + isCalculatedField: isCalculated, + role: role, + isCombinedField: !!(groupColumn.isCombinedField) + }; + return result; + }; + PresLayerToApiConverter.PARAMETERS_DB_NAME = 'Parameters'; + return PresLayerToApiConverter; + }()); + exports.PresLayerToApiConverter = PresLayerToApiConverter; + + +/***/ }, +/* 18 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /** + * This is your main. This is where you re-export everything you want to be publicly available. + * + * The build enforces that the file has the same name as the global variable that is exported. + */ + Object.defineProperty(exports, "__esModule", { value: true }); + var EnumConverter_1 = __webpack_require__(19); + exports.EnumConverter = EnumConverter_1.EnumConverter; + var Param_1 = __webpack_require__(20); + exports.Param = Param_1.Param; + + +/***/ }, +/* 19 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * This class converts from a source enum value to destination enum + * value given a mapping from source to destination when constructed. + */ + var EnumConverter = (function () { + function EnumConverter(_mappings, _defaultVal) { + this._mappings = _mappings; + this._defaultVal = _defaultVal; + } + EnumConverter.prototype.convert = function (enumVal, throwIfMissing) { + if (this._mappings.hasOwnProperty(enumVal)) { + return this._mappings[enumVal]; + } + if (this._defaultVal !== undefined && !throwIfMissing) { + return this._defaultVal; + } + throw new Error('Mapping not found for ' + enumVal); + }; + return EnumConverter; + }()); + exports.EnumConverter = EnumConverter; + + +/***/ }, +/* 20 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var Param = (function () { + function Param() { + } + /** + * Verifies that an incoming parameter is 'truthy' and throws + * an error if it's not. This will throw an error if the value + * is null, undefined, NaN, the empty string, 0, or false. + * + * @param argumentValue value to verify + * @param argumentName name of argument to verify + */ + /*tslint:disable-next-line */ + Param.verifyValue = function (argumentValue, argumentName) { + if (!argumentValue) { + throw new Error('Value is invalid for argument: ' + argumentName); + } + }; + /** + * Verifies that a string is valid. Throws an error if the string is + * null, undefined, or NaN. + * + * @param argumentValue value to verify + * @param argumentName name of argument to verify + */ + Param.verifyString = function (argumentValue, argumentName) { + if (argumentValue === null || argumentValue === undefined) { + throw new Error('String value is invalid for argument: ' + argumentName); + } + }; + /** + * Verifies the value is part of the Enum + * + * String enums are {string : string} dictionaries which are not reverse mappable + * This is an ugly workaround + * @param value value to verify + * @param enumType enum to verify against + */ + /* tslint:disable:no-any */ + Param.isValidEnumValue = function (value, enumType) { + var isValid = false; + Object.keys(enumType).forEach(function (enumKey) { + if (enumType[enumKey] === value.toString()) { + isValid = true; + } + }); + return isValid; + }; + /* tslint:enable:no-any */ + /** + * serializes the date into the format that the server expects. + * @param date the date to serialize + */ + Param.serializeDateForPlatform = function (date) { + var year = date.getUTCFullYear(); + var month = date.getUTCMonth() + 1; + var day = date.getUTCDate(); + var hh = date.getUTCHours(); + var mm = date.getUTCMinutes(); + var sec = date.getUTCSeconds(); + return year + '-' + month + '-' + day + ' ' + hh + ':' + mm + ':' + sec; + }; + Param.serializeBooleanForPlatform = function (bool) { + return bool ? 'true' : 'false'; + }; + Param.serializeNumberForPlatform = function (num) { + return num.toString(10); + }; + /** + * Verifies the params min and max for applying range filter + * @param min range min + * @param max range max + */ + /* tslint:disable:no-any */ + Param.verifyRangeParamType = function (min, max) { + /* tslint:enable:no-any */ + if (!min && !max) { + throw new Error('Missing Parameter: At least one of min or max is required'); + } + if (!Param.isTypeNumber(min) && !Param.isTypeDate(min)) { + throw new Error('Invalid Parameter Type: Only Date and number are allowed for parameter min'); + } + if (!Param.isTypeNumber(max) && !Param.isTypeDate(max)) { + throw new Error('Invalid Parameter Type: Only Date and number are allowed for parameter max'); + } + if (typeof (min) !== typeof (max)) { + throw new Error('Invalid Parameter Type: Parameters min and max should be of the same type'); + } + }; + /** + * Verifies the input is a number + */ + /* tslint:disable:no-any */ + Param.isTypeNumber = function (input) { + return typeof (input) === 'number' || input instanceof Number; + }; + /* tslint:enable:no-any */ + /** + * Verifies the input is a Date + */ + /* tslint:disable:no-any */ + Param.isTypeDate = function (input) { + return input instanceof Date; + }; + /* tslint:enable:no-any */ + /* tslint:disable-next-line:no-any */ + Param.isTypeString = function (input) { + return typeof (input) === 'string' || input instanceof String; + }; + /* tslint:disable-next-line:no-any */ + Param.isTypeBool = function (input) { + return typeof (input) === 'boolean' || input instanceof Boolean; + }; + /* tslint:disable-next-line:no-any */ + Param.serializeParamterValue = function (value) { + if (Param.isTypeNumber(value)) { + return Param.serializeNumberForPlatform(value); + } + else if (Param.isTypeDate(value)) { + return Param.serializeDateForPlatform(value); + } + else if (Param.isTypeBool(value)) { + return Param.serializeBooleanForPlatform(value); + } + else if (Param.isTypeString(value)) { + return value; + } + else { + throw new Error('Value is invalid for argument: value'); + } + }; + return Param; + }()); + exports.Param = Param; + + +/***/ }, +/* 21 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_internal_contract_1 = __webpack_require__(4); + var api_utils_1 = __webpack_require__(18); + var Enums = __webpack_require__(22); + /* tslint:disable:typedef - Disable this to make declaring these classes a bit easier */ + var PresLayerToApiEnumMappings = (function () { + function PresLayerToApiEnumMappings() { + } + PresLayerToApiEnumMappings.zoneType = new api_utils_1.EnumConverter((_a = {}, + _a[Enums.ZoneType.ZT_Invalid] = api_internal_contract_1.DashboardObjectType.Blank, + _a[Enums.ZoneType.ZT_Viz] = api_internal_contract_1.DashboardObjectType.Worksheet, + _a[Enums.ZoneType.ZT_ColorLegend] = api_internal_contract_1.DashboardObjectType.Legend, + _a[Enums.ZoneType.ZT_ShapeLegend] = api_internal_contract_1.DashboardObjectType.Legend, + _a[Enums.ZoneType.ZT_SizeLegend] = api_internal_contract_1.DashboardObjectType.Legend, + _a[Enums.ZoneType.ZT_MapLegend] = api_internal_contract_1.DashboardObjectType.Legend, + _a[Enums.ZoneType.ZT_QuickFilter] = api_internal_contract_1.DashboardObjectType.QuickFilter, + _a[Enums.ZoneType.ZT_Highlighter] = api_internal_contract_1.DashboardObjectType.Blank, + _a[Enums.ZoneType.ZT_CurrPage] = api_internal_contract_1.DashboardObjectType.PageFilter, + _a[Enums.ZoneType.ZT_Empty] = api_internal_contract_1.DashboardObjectType.Blank, + _a[Enums.ZoneType.ZT_Title] = api_internal_contract_1.DashboardObjectType.Title, + _a[Enums.ZoneType.ZT_Text] = api_internal_contract_1.DashboardObjectType.Text, + _a[Enums.ZoneType.ZT_Bitmap] = api_internal_contract_1.DashboardObjectType.Image, + _a[Enums.ZoneType.ZT_Web] = api_internal_contract_1.DashboardObjectType.WebPage, + _a[Enums.ZoneType.ZT_AddIn] = api_internal_contract_1.DashboardObjectType.Extension, + _a[Enums.ZoneType.ZT_ParamCtrl] = api_internal_contract_1.DashboardObjectType.ParameterControl, + _a[Enums.ZoneType.ZT_FlipboardNav] = api_internal_contract_1.DashboardObjectType.Blank, + _a[Enums.ZoneType.ZT_Flipboard] = api_internal_contract_1.DashboardObjectType.Blank, + _a[Enums.ZoneType.ZT_LayoutBasic] = api_internal_contract_1.DashboardObjectType.Blank, + _a[Enums.ZoneType.ZT_LayoutFlow] = api_internal_contract_1.DashboardObjectType.Blank, + _a[Enums.ZoneType.ZT_LayoutFreeForm] = api_internal_contract_1.DashboardObjectType.Blank, + _a[Enums.ZoneType.ZT_End] = api_internal_contract_1.DashboardObjectType.Blank, + _a[Enums.ZoneType.ZT_Button] = api_internal_contract_1.DashboardObjectType.Blank, + _a), api_internal_contract_1.DashboardObjectType.Blank); + PresLayerToApiEnumMappings.extensionContext = new api_utils_1.EnumConverter((_b = {}, + _b[Enums.AddInContext.Unknown] = api_internal_contract_1.ExtensionContext.Unknown, + _b[Enums.AddInContext.Desktop] = api_internal_contract_1.ExtensionContext.Desktop, + _b[Enums.AddInContext.Server] = api_internal_contract_1.ExtensionContext.Server, + _b)); + PresLayerToApiEnumMappings.extensionMode = new api_utils_1.EnumConverter((_c = {}, + _c[Enums.AddInMode.Unknown] = api_internal_contract_1.ExtensionMode.Unknown, + _c[Enums.AddInMode.Authoring] = api_internal_contract_1.ExtensionMode.Authoring, + _c[Enums.AddInMode.Viewing] = api_internal_contract_1.ExtensionMode.Viewing, + _c)); + PresLayerToApiEnumMappings.dataType = new api_utils_1.EnumConverter((_d = {}, + _d[Enums.DataType.DT_BOOLEAN] = api_internal_contract_1.DataType.Bool, + _d[Enums.DataType.DT_DATE] = api_internal_contract_1.DataType.Date, + _d[Enums.DataType.DT_DATETIME] = api_internal_contract_1.DataType.DateTime, + _d[Enums.DataType.DT_INTEGER] = api_internal_contract_1.DataType.Int, + _d[Enums.DataType.DT_REAL] = api_internal_contract_1.DataType.Float, + _d[Enums.DataType.DT_STRING] = api_internal_contract_1.DataType.String, + _d[Enums.DataType.DT_SPATIAL] = api_internal_contract_1.DataType.Spatial, + _d)); + PresLayerToApiEnumMappings.fieldAggregationType = new api_utils_1.EnumConverter((_e = {}, + _e[Enums.AggType.AGG_ATTR] = api_internal_contract_1.FieldAggregationType.Attr, + _e[Enums.AggType.AGG_AVG] = api_internal_contract_1.FieldAggregationType.Avg, + _e[Enums.AggType.AGG_COUNT] = api_internal_contract_1.FieldAggregationType.Count, + _e[Enums.AggType.AGG_COUNTD] = api_internal_contract_1.FieldAggregationType.Countd, + _e[Enums.AggType.AGG_DAY] = api_internal_contract_1.FieldAggregationType.Day, + _e[Enums.AggType.AGG_END] = api_internal_contract_1.FieldAggregationType.End, + _e[Enums.AggType.AGG_HOUR] = api_internal_contract_1.FieldAggregationType.Hour, + _e[Enums.AggType.AGG_INOUT] = api_internal_contract_1.FieldAggregationType.InOut, + _e[Enums.AggType.AGG_KURTOSIS] = api_internal_contract_1.FieldAggregationType.Kurtosis, + _e[Enums.AggType.AGG_MAX] = api_internal_contract_1.FieldAggregationType.Max, + _e[Enums.AggType.AGG_MDY] = api_internal_contract_1.FieldAggregationType.Mdy, + _e[Enums.AggType.AGG_MEDIAN] = api_internal_contract_1.FieldAggregationType.Median, + _e[Enums.AggType.AGG_MIN] = api_internal_contract_1.FieldAggregationType.Min, + _e[Enums.AggType.AGG_MINUTE] = api_internal_contract_1.FieldAggregationType.Minute, + _e[Enums.AggType.AGG_MONTHYEAR] = api_internal_contract_1.FieldAggregationType.MonthYear, + _e[Enums.AggType.AGG_NONE] = api_internal_contract_1.FieldAggregationType.None, + _e[Enums.AggType.AGG_QTR] = api_internal_contract_1.FieldAggregationType.Qtr, + _e[Enums.AggType.AGG_QUART1] = api_internal_contract_1.FieldAggregationType.Quart1, + _e[Enums.AggType.AGG_QUART3] = api_internal_contract_1.FieldAggregationType.Quart3, + _e[Enums.AggType.AGG_SECOND] = api_internal_contract_1.FieldAggregationType.Second, + _e[Enums.AggType.AGG_SKEWNESS] = api_internal_contract_1.FieldAggregationType.Skewness, + _e[Enums.AggType.AGG_STDEV] = api_internal_contract_1.FieldAggregationType.Stdev, + _e[Enums.AggType.AGG_STDEVP] = api_internal_contract_1.FieldAggregationType.Stdevp, + _e[Enums.AggType.AGG_SUM] = api_internal_contract_1.FieldAggregationType.Sum, + _e[Enums.AggType.TRUNC_DAY] = api_internal_contract_1.FieldAggregationType.TruncDay, + _e[Enums.AggType.TRUNC_HOUR] = api_internal_contract_1.FieldAggregationType.TruncHour, + _e[Enums.AggType.TRUNC_MINUTE] = api_internal_contract_1.FieldAggregationType.TruncMinute, + _e[Enums.AggType.TRUNC_MONTH] = api_internal_contract_1.FieldAggregationType.TruncMonth, + _e[Enums.AggType.TRUNC_QTR] = api_internal_contract_1.FieldAggregationType.TruncQtr, + _e[Enums.AggType.TRUNC_SECOND] = api_internal_contract_1.FieldAggregationType.TruncSecond, + _e[Enums.AggType.TRUNC_WEEK] = api_internal_contract_1.FieldAggregationType.TruncWeek, + _e[Enums.AggType.TRUNC_YEAR] = api_internal_contract_1.FieldAggregationType.TruncYear, + _e[Enums.AggType.AGG_USER] = api_internal_contract_1.FieldAggregationType.User, + _e[Enums.AggType.AGG_VAR] = api_internal_contract_1.FieldAggregationType.Var, + _e[Enums.AggType.AGG_VARP] = api_internal_contract_1.FieldAggregationType.Varp, + _e[Enums.AggType.AGG_WEEK] = api_internal_contract_1.FieldAggregationType.Week, + _e[Enums.AggType.AGG_WEEKDAY] = api_internal_contract_1.FieldAggregationType.Weekday, + _e[Enums.AggType.AGG_YEAR] = api_internal_contract_1.FieldAggregationType.Year, + _e)); + PresLayerToApiEnumMappings.fieldRoleType = new api_utils_1.EnumConverter((_f = {}, + _f[Enums.FieldRole.ROLE_DIMENSION] = api_internal_contract_1.FieldRoleType.Dimension, + _f[Enums.FieldRole.ROLE_MEASURE] = api_internal_contract_1.FieldRoleType.Measure, + _f)); + PresLayerToApiEnumMappings.parameterTypesDomainType = new api_utils_1.EnumConverter((_g = {}, + _g[Enums.ParameterTypesDomainType.Domain_Any] = api_internal_contract_1.DomainRestrictionType.All, + _g[Enums.ParameterTypesDomainType.Domain_List] = api_internal_contract_1.DomainRestrictionType.List, + _g[Enums.ParameterTypesDomainType.Domain_Range] = api_internal_contract_1.DomainRestrictionType.Range, + _g)); + PresLayerToApiEnumMappings.dateStepPeriod = new api_utils_1.EnumConverter((_h = {}, + _h[Enums.DatePeriodType.PeriodYear] = api_internal_contract_1.DateStepPeriod.Years, + _h[Enums.DatePeriodType.PeriodQuarter] = api_internal_contract_1.DateStepPeriod.Quarters, + _h[Enums.DatePeriodType.PeriodMonth] = api_internal_contract_1.DateStepPeriod.Months, + _h[Enums.DatePeriodType.PeriodWeek] = api_internal_contract_1.DateStepPeriod.Weeks, + _h[Enums.DatePeriodType.PeriodDay] = api_internal_contract_1.DateStepPeriod.Days, + _h[Enums.DatePeriodType.PeriodHour] = api_internal_contract_1.DateStepPeriod.Hours, + _h[Enums.DatePeriodType.PeriodMinute] = api_internal_contract_1.DateStepPeriod.Minutes, + _h[Enums.DatePeriodType.PeriodSecond] = api_internal_contract_1.DateStepPeriod.Seconds, + _h)); + PresLayerToApiEnumMappings.dateRangeType = new api_utils_1.EnumConverter((_j = {}, + _j[Enums.FiltersRelativeDateRangeType.RangeCurrent] = api_internal_contract_1.DateRangeType.Current, + _j[Enums.FiltersRelativeDateRangeType.RangeCurrentToDate] = api_internal_contract_1.DateRangeType.ToDate, + _j[Enums.FiltersRelativeDateRangeType.RangeLast1] = api_internal_contract_1.DateRangeType.Last, + _j[Enums.FiltersRelativeDateRangeType.RangeLastN] = api_internal_contract_1.DateRangeType.LastN, + _j[Enums.FiltersRelativeDateRangeType.RangeNext1] = api_internal_contract_1.DateRangeType.Next, + _j[Enums.FiltersRelativeDateRangeType.RangeNextN] = api_internal_contract_1.DateRangeType.NextN, + _j)); + PresLayerToApiEnumMappings.filterDomainType = new api_utils_1.EnumConverter((_k = {}, + _k[Enums.FiltersDomainType.Relevant] = api_internal_contract_1.FilterDomainType.Relevant, + _k[Enums.FiltersDomainType.Database] = api_internal_contract_1.FilterDomainType.Database, + _k)); + return PresLayerToApiEnumMappings; + }()); + exports.PresLayerToApiEnumMappings = PresLayerToApiEnumMappings; + var ApiToPresLayerEnumMappings = (function () { + function ApiToPresLayerEnumMappings() { + } + ApiToPresLayerEnumMappings.filterUpdateType = new api_utils_1.EnumConverter((_a = {}, + _a[api_internal_contract_1.FilterUpdateType.Add] = Enums.FilterUpdateType.ADD, + _a[api_internal_contract_1.FilterUpdateType.All] = Enums.FilterUpdateType.ALL, + _a[api_internal_contract_1.FilterUpdateType.Replace] = Enums.FilterUpdateType.REPLACE, + _a[api_internal_contract_1.FilterUpdateType.Remove] = Enums.FilterUpdateType.REMOVE, + _a)); + ApiToPresLayerEnumMappings.nullOption = new api_utils_1.EnumConverter((_b = {}, + _b[api_internal_contract_1.FilterNullOption.AllValues] = Enums.FiltersQuantitativeIncludedValues.All, + _b[api_internal_contract_1.FilterNullOption.NonNullValues] = Enums.FiltersQuantitativeIncludedValues.NonNull, + _b[api_internal_contract_1.FilterNullOption.NullValues] = Enums.FiltersQuantitativeIncludedValues.Null, + _b)); + ApiToPresLayerEnumMappings.filterDomainType = new api_utils_1.EnumConverter((_c = {}, + _c[api_internal_contract_1.FilterDomainType.Relevant] = Enums.FiltersDomainType.Relevant, + _c[api_internal_contract_1.FilterDomainType.Database] = Enums.FiltersDomainType.Database, + _c)); + return ApiToPresLayerEnumMappings; + }()); + exports.ApiToPresLayerEnumMappings = ApiToPresLayerEnumMappings; + var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _a, _b, _c; + /* tslint:enable:typedef */ + + +/***/ }, +/* 22 */ +/***/ function(module, exports) { + + "use strict"; + /* tslint:disable */ + // ----------------------------------------------------------------------------- + // + // This file is the copyrighted property of Tableau Software and is protected + // by registered patents and other applicable U.S. and international laws and + // regulations. + // + // Unlicensed use of the contents of this file is prohibited. Please refer to + // the NOTICES.txt file for further details. + // + // ----------------------------------------------------------------------------- + // WARNING: Computer generated file. Do not hand modify. + // DEPENDS ON: ['../typescript/js-api/api-core/node_modules/@tableau/preslayer-codegen-typescript/templates/enum-ts.template', u'../typescript/js-api/api-core/temp-pres-layer/all-enums.data'] + Object.defineProperty(exports, "__esModule", { value: true }); + // + var DataScaling; + (function (DataScaling) { + // + DataScaling["SCALING_NONE"] = "none"; + // + DataScaling["SCALING_STANDARDIZED"] = "standardized"; + // + DataScaling["SCALING_NORMALIZED"] = "normalized"; + })(DataScaling = exports.DataScaling || (exports.DataScaling = {})); + // + var ForecastModelType; + (function (ForecastModelType) { + // + ForecastModelType["ForecastModelTypeAutoSeason"] = "auto-season"; + // + ForecastModelType["ForecastModelTypeAuto"] = "auto"; + // + ForecastModelType["ForecastModelTypeCustom"] = "custom"; + })(ForecastModelType = exports.ForecastModelType || (exports.ForecastModelType = {})); + // + var ForecastRangeType; + (function (ForecastRangeType) { + // + ForecastRangeType["ForecastRangeTypeAuto"] = "auto"; + // + ForecastRangeType["ForecastRangeTypeNext"] = "next"; + // + ForecastRangeType["ForecastRangeTypeEndOf"] = "end-of"; + })(ForecastRangeType = exports.ForecastRangeType || (exports.ForecastRangeType = {})); + // + var ForecastStatus; + (function (ForecastStatus) { + // + ForecastStatus["FS_VALID"] = "fs-valid"; + // + ForecastStatus["FS_INVALID_DATETIME"] = "fs-invalid-datetime"; + // + ForecastStatus["FS_INVALID_RESPONSE"] = "fs-invalid-response"; + // + ForecastStatus["FS_NEED_MORE_DATA"] = "fs-need-more-data"; + // + ForecastStatus["FS_TIME_SERIES_TOO_SHORT"] = "fs-time-series-too-short"; + // + ForecastStatus["FS_TIME_SERIES_IRREGULAR"] = "fs-time-series-irregular"; + // + ForecastStatus["FS_NULL_DATETIME"] = "fs-null-datetime"; + // + ForecastStatus["FS_NULL_RESPONSE"] = "fs-null-response"; + // + ForecastStatus["FS_METADATA_INVALID"] = "fs-metadata-invalid"; + // + ForecastStatus["FS_NO_RESPONSE"] = "fs-no-response"; + // + ForecastStatus["FS_EXCESS_DATA"] = "fs-excess-data"; + // + ForecastStatus["FS_EXCESS_PARTITIONS"] = "fs-excess-partitions"; + // + ForecastStatus["FS_DIMENSION_INVALID"] = "fs-dimension-invalid"; + // + ForecastStatus["FS_TABLECALC_INVALID"] = "fs-tablecalc-invalid"; + // + ForecastStatus["FS_TIME_SERIES_TOO_IRREGULAR"] = "fs-time-series-too-irregular"; + // + ForecastStatus["FS_AGGREGATE_FILTER"] = "fs-aggregate-filter"; + // + ForecastStatus["FS_DISAGGREGATE_RESPONSE"] = "fs-disaggregate-response"; + // + ForecastStatus["FS_PERCENTAGE_INVALID"] = "fs-percentage-invalid"; + // + ForecastStatus["FS_TOTAL_INVALID"] = "fs-total-invalid"; + // + ForecastStatus["FS_EXCESS_DATETIME"] = "fs-excess-datetime"; + // + ForecastStatus["FS_DATE_AGG_INCOMPATIBLE"] = "fs-date-agg-incompatible"; + // + ForecastStatus["FS_TIME_SERIES_NOT_POSITIVE"] = "fs-time-series-not-positive"; + // + ForecastStatus["FS_REQUESTED_MODEL_INVALID"] = "fs-requested-model-invalid"; + // + ForecastStatus["FS_TOO_SHORT_FOR_SEASON"] = "fs-too-short-for-season"; + // + ForecastStatus["FS_REQUESTED_MODEL_UNSTABLE"] = "fs-requested-model-unstable"; + // + ForecastStatus["FS_UNDEFINED"] = "fs-undefined"; + })(ForecastStatus = exports.ForecastStatus || (exports.ForecastStatus = {})); + // + var StyleAttribute; + (function (StyleAttribute) { + // + StyleAttribute["saAlternateText"] = "saAlternateText"; + // + StyleAttribute["saAltMarkColor"] = "saAltMarkColor"; + // + StyleAttribute["saAspect"] = "saAspect"; + // + StyleAttribute["saAutoSubtitle"] = "saAutoSubtitle"; + // + StyleAttribute["saBackgroundColor"] = "saBackgroundColor"; + // + StyleAttribute["saBackgroundTransparency"] = "saBackgroundTransparency"; + // + StyleAttribute["saBandSize"] = "saBandSize"; + // + StyleAttribute["saBandColor"] = "saBandColor"; + // + StyleAttribute["saBandLevel"] = "saBandLevel"; + // + StyleAttribute["saBodyType"] = "saBodyType"; + // + StyleAttribute["saBorderColor"] = "saBorderColor"; + // + StyleAttribute["saBorderColorTop"] = "saBorderColorTop"; + // + StyleAttribute["saBorderColorRight"] = "saBorderColorRight"; + // + StyleAttribute["saBorderColorBottom"] = "saBorderColorBottom"; + // + StyleAttribute["saBorderColorLeft"] = "saBorderColorLeft"; + // + StyleAttribute["saBorderStyle"] = "saBorderStyle"; + // + StyleAttribute["saBorderStyleTop"] = "saBorderStyleTop"; + // + StyleAttribute["saBorderStyleRight"] = "saBorderStyleRight"; + // + StyleAttribute["saBorderStyleBottom"] = "saBorderStyleBottom"; + // + StyleAttribute["saBorderStyleLeft"] = "saBorderStyleLeft"; + // + StyleAttribute["saBorderWidth"] = "saBorderWidth"; + // + StyleAttribute["saBorderWidthTop"] = "saBorderWidthTop"; + // + StyleAttribute["saBorderWidthRight"] = "saBorderWidthRight"; + // + StyleAttribute["saBorderWidthBottom"] = "saBorderWidthBottom"; + // + StyleAttribute["saBorderWidthLeft"] = "saBorderWidthLeft"; + // + StyleAttribute["saBoxplotStyle"] = "saBoxplotStyle"; + // + StyleAttribute["saBreakOnSpecial"] = "saBreakOnSpecial"; + // + StyleAttribute["saCell"] = "saCell"; + // + StyleAttribute["saCellW"] = "saCellW"; + // + StyleAttribute["saCellH"] = "saCellH"; + // + StyleAttribute["saCellQ"] = "saCellQ"; + // + StyleAttribute["saCellQMark"] = "saCellQMark"; + // + StyleAttribute["saColor"] = "saColor"; + // + StyleAttribute["saColorMode"] = "saColorMode"; + // + StyleAttribute["saColLevels"] = "saColLevels"; + // + StyleAttribute["saColVertLevels"] = "saColVertLevels"; + // + StyleAttribute["saColHorizHeight"] = "saColHorizHeight"; + // + StyleAttribute["saColVertHeight"] = "saColVertHeight"; + // Deprecated + StyleAttribute["saColHeight"] = "saColHeight"; + // + StyleAttribute["saColWidth"] = "saColWidth"; + // + StyleAttribute["saContent"] = "saContent"; + // + StyleAttribute["saDisplayFieldLabels"] = "saDisplayFieldLabels"; + // + StyleAttribute["saDisplayHeader"] = "saDisplayHeader"; + // + StyleAttribute["saDisplayAlternateText"] = "saDisplayAlternateText"; + // + StyleAttribute["saDivLevel"] = "saDivLevel"; + // + StyleAttribute["saEnabled"] = "saEnabled"; + // + StyleAttribute["saFillAboveColor"] = "saFillAboveColor"; + // + StyleAttribute["saFillBelowColor"] = "saFillBelowColor"; + // + StyleAttribute["saFillColor"] = "saFillColor"; + // + StyleAttribute["saFogBGColor"] = "saFogBGColor"; + // + StyleAttribute["saFogDesaturationWithoutSelection"] = "saFogDesaturationWithoutSelection"; + // + StyleAttribute["saFogDesaturationWithSelection"] = "saFogDesaturationWithSelection"; + // + StyleAttribute["saFont"] = "saFont"; + // + StyleAttribute["saFontFamily"] = "saFontFamily"; + // + StyleAttribute["saFontSize"] = "saFontSize"; + // + StyleAttribute["saFontStyle"] = "saFontStyle"; + // + StyleAttribute["saFontWeight"] = "saFontWeight"; + // + StyleAttribute["saGeographicAreaType"] = "saGeographicAreaType"; + // + StyleAttribute["saHAlign"] = "saHAlign"; + // + StyleAttribute["saHaloColor"] = "saHaloColor"; + // + StyleAttribute["saHaloColorSelected"] = "saHaloColorSelected"; + // + StyleAttribute["saHasFill"] = "saHasFill"; + // + StyleAttribute["saHasHalo"] = "saHasHalo"; + // Deprecated + StyleAttribute["saHasLabel"] = "saHasLabel"; + // + StyleAttribute["saHasStroke"] = "saHasStroke"; + // + StyleAttribute["saHeight"] = "saHeight"; + // + StyleAttribute["saHeightHeader"] = "saHeightHeader"; + // + StyleAttribute["saHighlightLegend"] = "saHighlightLegend"; + // + StyleAttribute["saHnaxis"] = "saHnaxis"; + // + StyleAttribute["saHnlabel"] = "saHnlabel"; + // + StyleAttribute["saInTooltip"] = "saInTooltip"; + // + StyleAttribute["saLineEnd"] = "saLineEnd"; + // + StyleAttribute["saLineEndSize"] = "saLineEndSize"; + // + StyleAttribute["saLineInterpolation"] = "saLineInterpolation"; + // + StyleAttribute["saLineMarkerPosition"] = "saLineMarkerPosition"; + // + StyleAttribute["saLinePattern"] = "saLinePattern"; + // + StyleAttribute["saLinePatternOnly"] = "saLinePatternOnly"; + // + StyleAttribute["saLineVisibility"] = "saLineVisibility"; + // + StyleAttribute["saMap"] = "saMap"; + // + StyleAttribute["saMapStyle"] = "saMapStyle"; + // + StyleAttribute["saMargin"] = "saMargin"; + // + StyleAttribute["saMarginTop"] = "saMarginTop"; + // + StyleAttribute["saMarginRight"] = "saMarginRight"; + // + StyleAttribute["saMarginBottom"] = "saMarginBottom"; + // + StyleAttribute["saMarginLeft"] = "saMarginLeft"; + // + StyleAttribute["saMarkColor"] = "saMarkColor"; + // + StyleAttribute["saMarkTransparency"] = "saMarkTransparency"; + // + StyleAttribute["saMarkLabelsShow"] = "saMarkLabelsShow"; + // + StyleAttribute["saRunningOrderLabelsShow"] = "saRunningOrderLabelsShow"; + // + StyleAttribute["saMarkLabelsMode"] = "saMarkLabelsMode"; + // + StyleAttribute["saMarkLabelsCull"] = "saMarkLabelsCull"; + // + StyleAttribute["saMarkLabelsLineEndFirst"] = "saMarkLabelsLineEndFirst"; + // + StyleAttribute["saMarkLabelsLineEndLast"] = "saMarkLabelsLineEndLast"; + // + StyleAttribute["saMarkLabelsRangeMin"] = "saMarkLabelsRangeMin"; + // + StyleAttribute["saMarkLabelsRangeMax"] = "saMarkLabelsRangeMax"; + // + StyleAttribute["saMarkLabelsRangeScope"] = "saMarkLabelsRangeScope"; + // + StyleAttribute["saMarkLabelsRangeField"] = "saMarkLabelsRangeField"; + // + StyleAttribute["saMarkMarkersMode"] = "saMarkMarkersMode"; + // + StyleAttribute["saMaxHeight"] = "saMaxHeight"; + // + StyleAttribute["saMaxFontSize"] = "saMaxFontSize"; + // + StyleAttribute["saMaxStrokeWidth"] = "saMaxStrokeWidth"; + // + StyleAttribute["saMaxWidth"] = "saMaxWidth"; + // + StyleAttribute["saMidStrokeWidth"] = "saMidStrokeWidth"; + // + StyleAttribute["saMinHeight"] = "saMinHeight"; + // + StyleAttribute["saMinFontSize"] = "saMinFontSize"; + // + StyleAttribute["saMinLength"] = "saMinLength"; + // + StyleAttribute["saMinMapSize"] = "saMinMapSize"; + // + StyleAttribute["saMinSize"] = "saMinSize"; + // + StyleAttribute["saMinStrokeWidth"] = "saMinStrokeWidth"; + // + StyleAttribute["saMinWidth"] = "saMinWidth"; + // + StyleAttribute["saNonhighlightColor"] = "saNonhighlightColor"; + // + StyleAttribute["saOmitOnSpecial"] = "saOmitOnSpecial"; + // + StyleAttribute["saOpacity"] = "saOpacity"; + // + StyleAttribute["saOrientation"] = "saOrientation"; + // + StyleAttribute["saPadding"] = "saPadding"; + // + StyleAttribute["saPaddingTop"] = "saPaddingTop"; + // + StyleAttribute["saPaddingRight"] = "saPaddingRight"; + // + StyleAttribute["saPaddingBottom"] = "saPaddingBottom"; + // + StyleAttribute["saPaddingLeft"] = "saPaddingLeft"; + // + StyleAttribute["saPalette"] = "saPalette"; + // + StyleAttribute["saRenderFoldReversed"] = "saRenderFoldReversed"; + // + StyleAttribute["saReversePalette"] = "saReversePalette"; + // + StyleAttribute["saRounding"] = "saRounding"; + // + StyleAttribute["saRowHorizLevels"] = "saRowHorizLevels"; + // + StyleAttribute["saRowHorizWidth"] = "saRowHorizWidth"; + // + StyleAttribute["saRowLevels"] = "saRowLevels"; + // + StyleAttribute["saRowVertWidth"] = "saRowVertWidth"; + // + StyleAttribute["saSeparator"] = "saSeparator"; + // + StyleAttribute["saShape"] = "saShape"; + // Deprecated + StyleAttribute["saShowLabels"] = "saShowLabels"; + // + StyleAttribute["saSize"] = "saSize"; + // + StyleAttribute["saSizeBar"] = "saSizeBar"; + // + StyleAttribute["saSmartAutoAlignment"] = "saSmartAutoAlignment"; + // + StyleAttribute["saSpace"] = "saSpace"; + // + StyleAttribute["saStrokeColor"] = "saStrokeColor"; + // + StyleAttribute["saStrokeSize"] = "saStrokeSize"; + // + StyleAttribute["saSubtitle"] = "saSubtitle"; + // + StyleAttribute["saTextAlign"] = "saTextAlign"; + // + StyleAttribute["saTextAlignDefault"] = "saTextAlignDefault"; + // + StyleAttribute["saTextDecoration"] = "saTextDecoration"; + // + StyleAttribute["saTextIndent"] = "saTextIndent"; + // + StyleAttribute["saTextOrientation"] = "saTextOrientation"; + // + StyleAttribute["saTextFormat"] = "saTextFormat"; + // + StyleAttribute["saTickColor"] = "saTickColor"; + // + StyleAttribute["saTickLength"] = "saTickLength"; + // Deprecated + StyleAttribute["saTickSpacing"] = "saTickSpacing"; + // + StyleAttribute["saTitle"] = "saTitle"; + // + StyleAttribute["saTotalLabel"] = "saTotalLabel"; + // + StyleAttribute["saVAlign"] = "saVAlign"; + // + StyleAttribute["saVerticalAlign"] = "saVerticalAlign"; + // + StyleAttribute["saVerticalAlignDefault"] = "saVerticalAlignDefault"; + // + StyleAttribute["saVnaxis"] = "saVnaxis"; + // + StyleAttribute["saVnlabel"] = "saVnlabel"; + // + StyleAttribute["saWarnOnSpecial"] = "saWarnOnSpecial"; + // + StyleAttribute["saWashout"] = "saWashout"; + // + StyleAttribute["saWhiskerEnd"] = "saWhiskerEnd"; + // + StyleAttribute["saWhiskerStrokeColor"] = "saWhiskerStrokeColor"; + // + StyleAttribute["saWhiskerStrokeSize"] = "saWhiskerStrokeSize"; + // + StyleAttribute["saWidth"] = "saWidth"; + // + StyleAttribute["saWidthHeader"] = "saWidthHeader"; + // + StyleAttribute["saWrap"] = "saWrap"; + // + StyleAttribute["saZoom"] = "saZoom"; + // Special attributes used for matching + StyleAttribute["saNone"] = "saNone"; + // Special attributes used for matching + StyleAttribute["saAny"] = "saAny"; + })(StyleAttribute = exports.StyleAttribute || (exports.StyleAttribute = {})); + // lowest bit of enum value denotes two-tone styles; newly added styles should follow this pattern. + var BoxplotStyle; + (function (BoxplotStyle) { + // mask for checking if a style is two-tone + BoxplotStyle["BoxplotStyleTwoTone"] = "two-tone"; + // + BoxplotStyle["BoxplotStyleModern"] = "modern"; + // + BoxplotStyle["BoxplotStyleGlass"] = "glass"; + // + BoxplotStyle["BoxplotStyleClassic"] = "classic"; + // + BoxplotStyle["BoxplotStyleClassicTwoTone"] = "classic-two-tone"; + })(BoxplotStyle = exports.BoxplotStyle || (exports.BoxplotStyle = {})); + // used for boxplots and prediction band whiskers + var WhiskerEnd; + (function (WhiskerEnd) { + // + WhiskerEnd["WhiskerEndNone"] = "none"; + // + WhiskerEnd["WhiskerEndSmall"] = "small"; + // + WhiskerEnd["WhiskerEndLarge"] = "large"; + })(WhiskerEnd = exports.WhiskerEnd || (exports.WhiskerEnd = {})); + // + var StyleElement; + (function (StyleElement) { + // + StyleElement["elementAxis"] = "elementAxis"; + // + StyleElement["elementCell"] = "elementCell"; + // + StyleElement["elementDatalabel"] = "elementDatalabel"; + // + StyleElement["elementDropspot"] = "elementDropspot"; + // + StyleElement["elementHeader"] = "elementHeader"; + // + StyleElement["elementFieldLabel"] = "elementFieldLabel"; + // + StyleElement["elementFieldLabelDecoration"] = "elementFieldLabelDecoration"; + // + StyleElement["elementFieldLabelSpanner"] = "elementFieldLabelSpanner"; + // + StyleElement["elementLabel"] = "elementLabel"; + // + StyleElement["elementMark"] = "elementMark"; + // + StyleElement["elementPane"] = "elementPane"; + // + StyleElement["elementTable"] = "elementTable"; + // + StyleElement["elementWorksheet"] = "elementWorksheet"; + // + StyleElement["elementBasesheet"] = "elementBasesheet"; + // + StyleElement["elementDashboard"] = "elementDashboard"; + // + StyleElement["elementStoryboard"] = "elementStoryboard"; + // + StyleElement["elementCaption"] = "elementCaption"; + // + StyleElement["elementDropline"] = "elementDropline"; + // + StyleElement["elementRefline"] = "elementRefline"; + // + StyleElement["elementRefBand"] = "elementRefBand"; + // + StyleElement["elementRefBoxplot"] = "elementRefBoxplot"; + // + StyleElement["elementGridline"] = "elementGridline"; + // + StyleElement["elementZeroline"] = "elementZeroline"; + // + StyleElement["elementTrendline"] = "elementTrendline"; + // + StyleElement["elementTableDiv"] = "elementTableDiv"; + // + StyleElement["elementHeaderDiv"] = "elementHeaderDiv"; + // + StyleElement["elementMappedImage"] = "elementMappedImage"; + // + StyleElement["elementAction"] = "elementAction"; + // + StyleElement["elementTitle"] = "elementTitle"; + // + StyleElement["elementLegend"] = "elementLegend"; + // + StyleElement["elementLegendTitle"] = "elementLegendTitle"; + // + StyleElement["elementLegendTitleText"] = "elementLegendTitleText"; + // + StyleElement["elementAxisTitle"] = "elementAxisTitle"; + // + StyleElement["elementAnnotation"] = "elementAnnotation"; + // + StyleElement["elementDashTitle"] = "elementDashTitle"; + // + StyleElement["elementDashSubtitle"] = "elementDashSubtitle"; + // + StyleElement["elementDashText"] = "elementDashText"; + // + StyleElement["elementDashZone"] = "elementDashZone"; + // + StyleElement["elementDashContainer"] = "elementDashContainer"; + // + StyleElement["elementScrollbar"] = "elementScrollbar"; + // Static on/off map layers + StyleElement["elementMapLayer"] = "elementMapLayer"; + // Contains washout + StyleElement["elementMap"] = "elementMap"; + // Initially for UrbanMapping/Claritas data + StyleElement["elementMapDataLayer"] = "elementMapDataLayer"; + // + StyleElement["elementQuickFilter"] = "elementQuickFilter"; + // + StyleElement["elementQuickFilterTitle"] = "elementQuickFilterTitle"; + // + StyleElement["elementParameterCtrl"] = "elementParameterCtrl"; + // + StyleElement["elementParameterCtrlTitle"] = "elementParameterCtrlTitle"; + // + StyleElement["elementPageCardTitle"] = "elementPageCardTitle"; + // + StyleElement["elementStoryDescription"] = "elementStoryDescription"; + // + StyleElement["elementStoryPointCaption"] = "elementStoryPointCaption"; + // + StyleElement["elementStoryTitle"] = "elementStoryTitle"; + // + StyleElement["elementTooltip"] = "elementTooltip"; + // + StyleElement["elementAll"] = "elementAll"; + // + StyleElement["elementPageCardBody"] = "elementPageCardBody"; + // + StyleElement["elementDataHighlighter"] = "elementDataHighlighter"; + // + StyleElement["elementDataHighlighterTitle"] = "elementDataHighlighterTitle"; + // Special elements used for matching and organization + StyleElement["elementNone"] = "elementNone"; + // Special elements used for matching and organization + StyleElement["elementAny"] = "elementAny"; + // Special elements used for matching and organization + StyleElement["elementRoot"] = "elementRoot"; + })(StyleElement = exports.StyleElement || (exports.StyleElement = {})); + // Do not mess with these values. They are sometimes used as array indexes/bounds + var StyleDataClass; + (function (StyleDataClass) { + // + StyleDataClass["dcNormal"] = "dcNormal"; + // + StyleDataClass["dcTotal"] = "dcTotal"; + // + StyleDataClass["dcSubtotal"] = "dcSubtotal"; + // + StyleDataClass["dcCOUNT"] = "dcCOUNT"; + })(StyleDataClass = exports.StyleDataClass || (exports.StyleDataClass = {})); + // + var StyleFieldScope; + (function (StyleFieldScope) { + // + StyleFieldScope["fsNone"] = "fsNone"; + // + StyleFieldScope["fsRows"] = "fsRows"; + // + StyleFieldScope["fsCols"] = "fsCols"; + })(StyleFieldScope = exports.StyleFieldScope || (exports.StyleFieldScope = {})); + // + var StyleSwatch; + (function (StyleSwatch) { + // + StyleSwatch["ssUnspecified"] = "ssUnspecified"; + // + StyleSwatch["ssLight"] = "ssLight"; + // + StyleSwatch["ssDark"] = "ssDark"; + })(StyleSwatch = exports.StyleSwatch || (exports.StyleSwatch = {})); + // + var TableauFontStyle; + (function (TableauFontStyle) { + // + TableauFontStyle["NormalStyle"] = "font-style-normal"; + // + TableauFontStyle["Italic"] = "font-style-italic"; + })(TableauFontStyle = exports.TableauFontStyle || (exports.TableauFontStyle = {})); + // Unsupported for Betsy + var TextDecoration; + (function (TextDecoration) { + // + TextDecoration["NoDecoration"] = "text-decoration-none"; + // + TextDecoration["Underline"] = "text-decoration-underline"; + // not yet supported + TextDecoration["Overline"] = "text-decoration-overline"; + // + TextDecoration["Strikethrough"] = "text-decoration-strikethrough"; + })(TextDecoration = exports.TextDecoration || (exports.TextDecoration = {})); + // + var FontWeight; + (function (FontWeight) { + // + FontWeight["NormalWeight"] = "font-weight-normal"; + // + FontWeight["Bold"] = "font-weight-bold"; + })(FontWeight = exports.FontWeight || (exports.FontWeight = {})); + // + var TextOrient; + (function (TextOrient) { + // + TextOrient["TO_Auto"] = "text-orient-auto"; + // + TextOrient["TO_Horz"] = "text-orient-horizontal"; + // + TextOrient["TO_VertUp"] = "text-orient-vertical-up"; + // + TextOrient["TO_VertDown"] = "text-orient-vertical-down"; + })(TextOrient = exports.TextOrient || (exports.TextOrient = {})); + // + var TextAlign; + (function (TextAlign) { + // + TextAlign["TA_Start"] = "text-align-start"; + // + TextAlign["TA_Center"] = "text-align-center"; + // + TextAlign["TA_End"] = "text-align-end"; + })(TextAlign = exports.TextAlign || (exports.TextAlign = {})); + // + var TextWrapMode; + (function (TextWrapMode) { + // + TextWrapMode["TextWrapOff"] = "text-wrap-off"; + // + TextWrapMode["TextWrapTruncate"] = "text-wrap-truncate"; + // + TextWrapMode["TextWrapOn"] = "text-wrap-on"; + // + TextWrapMode["TextWrapAuto"] = "text-wrap-auto"; + })(TextWrapMode = exports.TextWrapMode || (exports.TextWrapMode = {})); + // + var TextWholeLineMode; + (function (TextWholeLineMode) { + // + TextWholeLineMode["TextWholeLineOff"] = "text-whole-line-off"; + // + TextWholeLineMode["TextWholeLineOn"] = "text-whole-line-on"; + // + TextWholeLineMode["TextWholeLineAuto"] = "text-whole-line-auto"; + })(TextWholeLineMode = exports.TextWholeLineMode || (exports.TextWholeLineMode = {})); + // + var TextBreakMode; + (function (TextBreakMode) { + // + TextBreakMode["TextBreakWhitespaceOnly"] = "text-break-ws-only"; + // + TextBreakMode["TextBreakAuto"] = "text-break-auto"; + })(TextBreakMode = exports.TextBreakMode || (exports.TextBreakMode = {})); + // type of aggregation + var AggType; + (function (AggType) { + // + AggType["AGG_SUM"] = "sum"; + // + AggType["AGG_AVG"] = "average"; + // + AggType["AGG_MIN"] = "min"; + // + AggType["AGG_MAX"] = "max"; + // + AggType["AGG_STDEV"] = "std-dev"; + // + AggType["AGG_STDEVP"] = "std-dev-p"; + // + AggType["AGG_VAR"] = "var"; + // + AggType["AGG_VARP"] = "var-p"; + // + AggType["AGG_COUNT"] = "count"; + // + AggType["AGG_COUNTD"] = "count-d"; + // + AggType["AGG_MEDIAN"] = "median"; + // + AggType["AGG_ATTR"] = "attr"; + // + AggType["AGG_NONE"] = "none"; + // + AggType["AGG_PERCENTILE"] = "percentile"; + // + AggType["AGG_YEAR"] = "year"; + // + AggType["AGG_QTR"] = "qtr"; + // + AggType["AGG_MONTH"] = "month"; + // + AggType["AGG_DAY"] = "day"; + // + AggType["AGG_HOUR"] = "hour"; + // + AggType["AGG_MINUTE"] = "minute"; + // + AggType["AGG_SECOND"] = "second"; + // + AggType["AGG_WEEK"] = "week"; + // + AggType["AGG_WEEKDAY"] = "weekday"; + // + AggType["AGG_MONTHYEAR"] = "month-year"; + // + AggType["AGG_MDY"] = "mdy"; + // + AggType["AGG_END"] = "end"; + // + AggType["TRUNC_YEAR"] = "trunc-year"; + // + AggType["TRUNC_QTR"] = "trunc-qtr"; + // + AggType["TRUNC_MONTH"] = "trunc-month"; + // + AggType["TRUNC_WEEK"] = "trunc-week"; + // + AggType["TRUNC_DAY"] = "trunc-day"; + // + AggType["TRUNC_HOUR"] = "trunc-hour"; + // + AggType["TRUNC_MINUTE"] = "trunc-minute"; + // + AggType["TRUNC_SECOND"] = "trunc-second"; + // + AggType["AGG_QUART1"] = "quart1"; + // + AggType["AGG_QUART3"] = "quart3"; + // + AggType["AGG_SKEWNESS"] = "skewness"; + // + AggType["AGG_KURTOSIS"] = "kurtosis"; + // + AggType["AGG_INOUT"] = "in-out"; + // + AggType["AGG_SUM_XSQR"] = "sum-xsqr"; + // + AggType["AGG_USER"] = "user"; + // + AggType["AGG_COLLECT"] = "collect"; + // + AggType["AGG_COVAR"] = "covar"; + // + AggType["AGG_COVARP"] = "covarp"; + // + AggType["AGG_CORR"] = "corr"; + })(AggType = exports.AggType || (exports.AggType = {})); + // DataValueFormatter::DataTypeEncodings has hardcoded values corresponding to following enum members. So any changes here should be done there too + var DataType; + (function (DataType) { + // + DataType["DT_INTEGER"] = "integer"; + // + DataType["DT_REAL"] = "real"; + // + DataType["DT_STRING"] = "cstring"; + // + DataType["DT_DATETIME"] = "datetime"; + // + DataType["DT_BOOLEAN"] = "boolean"; + // + DataType["DT_DATE"] = "date"; + // + DataType["DT_TUPLE"] = "tuple"; + // + DataType["DT_SPATIAL"] = "spatial"; + // + DataType["DT_UNKNOWN"] = "unknown"; + // + DataType["DT_BINARY"] = "binary"; + // + DataType["DT_TIME"] = "time"; + })(DataType = exports.DataType || (exports.DataType = {})); + // + var SortDirection; + (function (SortDirection) { + // ascending + SortDirection["ST_ASC"] = "asc"; + // descending + SortDirection["ST_DESC"] = "desc"; + })(SortDirection = exports.SortDirection || (exports.SortDirection = {})); + // + var SortType; + (function (SortType) { + // Use the defined ordering + SortType["ST_NATURAL"] = "data-source-order"; + // Alphabetic/numeric ordering of data + SortType["ST_ALPHABETIC"] = "alpha"; + // Specify a secondary field + SortType["ST_COMPUTED"] = "field"; + // Manually defined ordering + SortType["ST_MANUAL"] = "manual"; + })(SortType = exports.SortType || (exports.SortType = {})); + // + var SortEnd; + (function (SortEnd) { + // + SortEnd["ST_TOP"] = "top"; + // + SortEnd["ST_BOTTOM"] = "bottom"; + })(SortEnd = exports.SortEnd || (exports.SortEnd = {})); + // + var ForecastColumnType; + (function (ForecastColumnType) { + // + ForecastColumnType["FORECAST_NONE"] = "none"; + // + ForecastColumnType["FORECAST_VALUE"] = "value"; + // + ForecastColumnType["FORECAST_INDICATOR"] = "indicator"; + // + ForecastColumnType["FORECAST_PRECISION"] = "precision"; + // + ForecastColumnType["FORECAST_QUALITY"] = "quality"; + // + ForecastColumnType["FORECAST_FIT_TREND"] = "fit_trend"; + // + ForecastColumnType["FORECAST_PRECISION_PERCENT"] = "precision_percent"; + // + ForecastColumnType["FORECAST_PREDICTION_INTERVAL_UPPER"] = "prediction_upper"; + // + ForecastColumnType["FORECAST_PREDICTION_INTERVAL_LOWER"] = "prediction_lower"; + })(ForecastColumnType = exports.ForecastColumnType || (exports.ForecastColumnType = {})); + // + var MarkMarkersMode; + (function (MarkMarkersMode) { + // + MarkMarkersMode["MMM_Auto"] = "mmm-auto"; + // + MarkMarkersMode["MMM_All"] = "mmm_all"; + // + MarkMarkersMode["MMM_None"] = "mmm_none"; + // + MarkMarkersMode["MMM_Default"] = "mmm_default"; + })(MarkMarkersMode = exports.MarkMarkersMode || (exports.MarkMarkersMode = {})); + // + var PercentMode; + (function (PercentMode) { + // + PercentMode["PERCENT_CELL_IN_PANE"] = "cell-in-pane"; + // + PercentMode["PERCENT_ROW_IN_PANE"] = "row-in-pane"; + // + PercentMode["PERCENT_COLUMN_IN_PANE"] = "column-in-pane"; + // + PercentMode["PERCENT_PANE"] = "pane"; + // + PercentMode["PERCENT_ROW"] = "row"; + // + PercentMode["PERCENT_COLUMN"] = "column"; + // + PercentMode["PERCENT_TABLE"] = "table"; + })(PercentMode = exports.PercentMode || (exports.PercentMode = {})); + // + var SpecialValuesMode; + (function (SpecialValuesMode) { + // + SpecialValuesMode["SPECIAL_VALUES_HIDE_AND_WARN"] = "hide-and-warn"; + // + SpecialValuesMode["SPECIAL_VALUES_HIDE"] = "hide"; + // + SpecialValuesMode["SPECIAL_VALUES_HIDE_BREAK_LINES"] = "hide-break-lines"; + // + SpecialValuesMode["SPECIAL_VALUES_SHOW"] = "show"; + })(SpecialValuesMode = exports.SpecialValuesMode || (exports.SpecialValuesMode = {})); + // + var LayoutType; + (function (LayoutType) { + // + LayoutType["LAYOUT_CARTESIAN"] = "cartesian"; + // + LayoutType["LAYOUT_DEFAULT"] = "default"; + })(LayoutType = exports.LayoutType || (exports.LayoutType = {})); + // + var ShelfType; + (function (ShelfType) { + // + ShelfType["ST_NONE"] = "none-shelf"; + // + ShelfType["ST_COLUMNS_SHELF"] = "columns-shelf"; + // + ShelfType["ST_ROWS_SHELF"] = "rows-shelf"; + // + ShelfType["ST_PAGES_SHELF"] = "pages-shelf"; + // + ShelfType["ST_FILTER_SHELF"] = "filter-shelf"; + // + ShelfType["ST_IMAGE_SHELF"] = "image-shelf"; + // + ShelfType["ST_MEASURES_SHELF"] = "measures-shelf"; + // + ShelfType["ST_SHOWME_SHELF"] = "show-me-shelf"; + // + ShelfType["ST_ENCODING_SHELF"] = "encoding-shelf"; + // + ShelfType["ST_CLUSTER_SHELF"] = "cluster-shelf"; + // + ShelfType["ST_GEOMETRY_SHELF"] = "geometry-shelf"; + // + ShelfType["ST_END"] = "end-shelf"; + // + ShelfType["ST_FINAL"] = "final-shelf"; + })(ShelfType = exports.ShelfType || (exports.ShelfType = {})); + // + var RestrictType; + (function (RestrictType) { + // + RestrictType["RT_INTERSECT"] = "rt-intersection"; + // + RestrictType["RT_UNION"] = "rt-union"; + })(RestrictType = exports.RestrictType || (exports.RestrictType = {})); + // + var TooltipMode; + (function (TooltipMode) { + // + TooltipMode["TM_NONE"] = "none"; + // + TooltipMode["TM_STICKY"] = "sticky"; + // + TooltipMode["TM_SMOOTH"] = "smooth"; + })(TooltipMode = exports.TooltipMode || (exports.TooltipMode = {})); + // + var ColumnGroups; + (function (ColumnGroups) { + // 0x01 + ColumnGroups["COLS_IN_OUTPUT"] = "cols-in-output"; + // 0x02 + ColumnGroups["COLS_IN_FILTER_SHELF"] = "cols-in-filter-shelf"; + // 0x04 + ColumnGroups["COLS_REF_BY_FILTERS"] = "cols-ref-by-filters"; + // 0x08 + ColumnGroups["COLS_REF_BY_OMEASURES"] = "cols-ref-by-omeasures"; + // 0x10 + ColumnGroups["COLS_REF_BY_JOIN_LOD"] = "cols-ref-by-join-lod"; + // 0x20 + ColumnGroups["COLS_HIDDEN"] = "cols-hidden"; + // 0x40 + ColumnGroups["COLS_REF_BY_SORTS"] = "cols-ref-by-sorts"; + // + ColumnGroups["COLS_REF_BY_FILTERS_OR_SORTS"] = "cols-ref-by-filters-or-sorts"; + // + ColumnGroups["COLS_ON_SHELVES"] = "cols-on-shelves"; + // + ColumnGroups["COLS_ALL"] = "cols-all"; + })(ColumnGroups = exports.ColumnGroups || (exports.ColumnGroups = {})); + // + var ButtonsOption; + (function (ButtonsOption) { + // + ButtonsOption["BO_HIDE"] = "buttons-hide"; + })(ButtonsOption = exports.ButtonsOption || (exports.ButtonsOption = {})); + // + var SelectionRelaxationOption; + (function (SelectionRelaxationOption) { + // + SelectionRelaxationOption["SRO_ALLOW"] = "selection-relaxation-allow"; + // + SelectionRelaxationOption["SRO_DISALLOW"] = "selection-relaxation-disallow"; + })(SelectionRelaxationOption = exports.SelectionRelaxationOption || (exports.SelectionRelaxationOption = {})); + // + var EncodingType; + (function (EncodingType) { + // a text encoding + EncodingType["ET_TEXT"] = "text-encoding"; + // a color encoding + EncodingType["ET_COLOR"] = "color-encoding"; + // a size encoding + EncodingType["ET_SIZE"] = "size-encoding"; + // a shape encoding + EncodingType["ET_SHAPE"] = "shape-encoding"; + // an image encoding + EncodingType["ET_IMAGE"] = "image-encoding"; + // a sort (path) encoding (currently only for line or polygon charts) + EncodingType["ET_SORT"] = "sort-encoding"; + // a wedge size (angle) encoding (currently only for pie charts) + EncodingType["ET_WEDGESIZE"] = "wedge-size-encoding"; + // a geometry encoding + EncodingType["ET_GEOMETRY"] = "geometry-encoding"; + // a level of detail encoding + EncodingType["ET_LOD"] = "level-of-detail-encoding"; + // encoding used for the data highlighter/legend mechanism + EncodingType["ET_HIGHLIGHT"] = "highlight-encoding"; + // a tooltip encoding + EncodingType["ET_TOOLTIP"] = "tooltip-encoding"; + // a temporary label placed above marks for the table calc dialog + EncodingType["ET_RUNNINGORDER"] = "runningorder-encoding"; + // the number of encodings, this is invalid input for an encoding presentation model + EncodingType["NUM_ENCODINGS"] = "num-encodings"; + // an invalid encoding + EncodingType["ET_INVALID"] = "invalid-encoding"; + })(EncodingType = exports.EncodingType || (exports.EncodingType = {})); + // Enumeration of valid horizontal alignments. + var LabelHAlignment; + (function (LabelHAlignment) { + // + LabelHAlignment["LHA_Left"] = "h-align-left"; + // + LabelHAlignment["LHA_Center"] = "h-align-center"; + // + LabelHAlignment["LHA_Right"] = "h-align-right"; + // + LabelHAlignment["LHA_Automatic"] = "h-align-auto"; + })(LabelHAlignment = exports.LabelHAlignment || (exports.LabelHAlignment = {})); + // Enumeration of valid vertical alignments. + var LabelVAlignment; + (function (LabelVAlignment) { + // + LabelVAlignment["LVA_Bottom"] = "v-align-bottom"; + // + LabelVAlignment["LVA_Center"] = "v-align-center"; + // + LabelVAlignment["LVA_Top"] = "v-align-top"; + // + LabelVAlignment["LVA_Automatic"] = "v-align-auto"; + })(LabelVAlignment = exports.LabelVAlignment || (exports.LabelVAlignment = {})); + // Enumeration of valid label positions. + var LabelPosition; + (function (LabelPosition) { + // Position each text run relative to the center of the original bbox. Use the original bbox as the height and width of the text mark. Used for non-stacked OO text marks. + LabelPosition["CenterInOriginalBbox"] = "label-position-center-in-original-box"; + // Position each text run relative to the bottom left corner of the measured bbox. Use the measured bbox as the width and height of the label. Used for labels + LabelPosition["OriginAtLowerLeft"] = "label-position-origin-at-lower-left"; + // Position each text run relative to the center of the measured bbox. Use the measured bbox as the width and height of the text mark. Used for most text marks. + LabelPosition["OriginAtCenter"] = "label-position-origin-at-center"; + })(LabelPosition = exports.LabelPosition || (exports.LabelPosition = {})); + // Enumeration of ways to use color. Values can be or'ed together to make a mask for allowed options + var ColorMode; + (function (ColorMode) { + // Color user specified + ColorMode["CLRM_User"] = "clrm-user"; + // Color selected automatically + ColorMode["CLRM_Auto"] = "clrm-auto"; + // Color matches mark color + ColorMode["CLRM_Match"] = "clrm-match"; + // No color (transparent or not drawn) + ColorMode["CLRM_None"] = "clrm-none"; + })(ColorMode = exports.ColorMode || (exports.ColorMode = {})); + // + var MarkLabelsMode; + (function (MarkLabelsMode) { + // + MarkLabelsMode["MLM_All"] = "mlm-all"; + // + MarkLabelsMode["MLM_Selection"] = "mlm-selection"; + // + MarkLabelsMode["MLM_Highlight"] = "mlm-highlight"; + // + MarkLabelsMode["MLM_LineEnds"] = "mlm-line-ends"; + // min/max setting + MarkLabelsMode["MLM_Range"] = "mlm-range"; + // most recent (only relevant when date field is in play) + MarkLabelsMode["MLM_MostRecent"] = "mlm-most-recent"; + // ...this is " virtual " (runtime only, not saved, not shown as a user setting + MarkLabelsMode["MLM_MultipleValues"] = "mlm-multiple-values"; + // + MarkLabelsMode["MLM_Default"] = "mlm-default"; + })(MarkLabelsMode = exports.MarkLabelsMode || (exports.MarkLabelsMode = {})); + // + var MarkLabelsScope; + (function (MarkLabelsScope) { + // + MarkLabelsScope["MLS_Table"] = "mls-table"; + // + MarkLabelsScope["MLS_Pane"] = "mls-pane"; + // + MarkLabelsScope["MLS_Cell"] = "mls-cell"; + // + MarkLabelsScope["MLS_MultiMark"] = "mls-multimark"; + // ...this is " virtual " (runtime only, not saved, not shown as a user setting) + MarkLabelsScope["MLS_MultipleValues"] = "mls-multiple-values"; + // + MarkLabelsScope["MLS_Default"] = "mls-default"; + })(MarkLabelsScope = exports.MarkLabelsScope || (exports.MarkLabelsScope = {})); + // + var MarkLabelsVisibility; + (function (MarkLabelsVisibility) { + // + MarkLabelsVisibility["MLV_Hidden"] = "mlv-hidden"; + // + MarkLabelsVisibility["MLV_Visible"] = "mlv-visible"; + // + MarkLabelsVisibility["MLV_UseCurrent"] = "mlv-use-current"; + })(MarkLabelsVisibility = exports.MarkLabelsVisibility || (exports.MarkLabelsVisibility = {})); + // + var StackingMode; + (function (StackingMode) { + // + StackingMode["StackingOff"] = "off"; + // + StackingMode["StackingOn"] = "on"; + // + StackingMode["StackingAuto"] = "auto"; + })(StackingMode = exports.StackingMode || (exports.StackingMode = {})); + // + var MarkAlignment; + (function (MarkAlignment) { + // + MarkAlignment["MarkAlignmentLeft"] = "mark-alignment-left"; + // + MarkAlignment["MarkAlignmentRight"] = "mark-alignment-right"; + // + MarkAlignment["MarkAlignmentCenter"] = "mark-alignment-center"; + })(MarkAlignment = exports.MarkAlignment || (exports.MarkAlignment = {})); + // + var PaneLabelComposition; + (function (PaneLabelComposition) { + // + PaneLabelComposition["PLC_None"] = "pane-label-composition-none"; + // + PaneLabelComposition["PLC_Mixed"] = "pane-label-composition-mixed"; + // + PaneLabelComposition["PLC_All"] = "pane-label-composition-all"; + })(PaneLabelComposition = exports.PaneLabelComposition || (exports.PaneLabelComposition = {})); + // The user-specified mark type on the Marks Card + var PrimitiveType; + (function (PrimitiveType) { + // + PrimitiveType["PT_AUTOMATIC"] = "automatic"; + // + PrimitiveType["PT_TEXT"] = "text"; + // + PrimitiveType["PT_IMAGE"] = "image"; + // + PrimitiveType["PT_SHAPE"] = "shape"; + // + PrimitiveType["PT_RECTANGLE"] = "rectangle"; + // + PrimitiveType["PT_BAR"] = "bar"; + // + PrimitiveType["PT_GANTT"] = "gantt"; + // + PrimitiveType["PT_SQUARE"] = "square"; + // + PrimitiveType["PT_CIRCLE"] = "circle"; + // + PrimitiveType["PT_POLYLINE"] = "polyline"; + // line chart + PrimitiveType["PT_LINE"] = "line"; + // + PrimitiveType["PT_POLYGON"] = "polygon"; + // area chart + PrimitiveType["PT_AREA"] = "area"; + // + PrimitiveType["PT_PIE"] = "pie"; + // + PrimitiveType["PT_MULTIPOLYGON"] = "multipolygon"; + // Not an actual primitive type. This is just used to flag the UI that multiple types are in play. + PrimitiveType["PT_MULTIPLE"] = "multiple"; + // used for looping over all values + PrimitiveType["NUM_PRIMITIVES"] = "count"; + // used to flag an unset or invalid state + PrimitiveType["PT_INVALID"] = "invalid"; + })(PrimitiveType = exports.PrimitiveType || (exports.PrimitiveType = {})); + // Defines the way a given primitive behaves on a viz - for instance, a PT_CIRCLE is treated as a point, while a PT_POLYGON would be treated as an area. + var MarkType; + (function (MarkType) { + // + MarkType["MT_POINT"] = "point"; + // + MarkType["MT_LINE"] = "line"; + // + MarkType["MT_AREA"] = "area"; + // + MarkType["MT_INVALID"] = "invalid"; + })(MarkType = exports.MarkType || (exports.MarkType = {})); + // PaneAxis is used to describe which axis of a pane is the independent axis. + var PaneAxis; + (function (PaneAxis) { + // The independent axis is inferred from other properties of the pane. + PaneAxis["AXIS_AUTO"] = "auto"; + // + PaneAxis["AXIS_X"] = "x"; + // + PaneAxis["AXIS_Y"] = "y"; + })(PaneAxis = exports.PaneAxis || (exports.PaneAxis = {})); + // + var Rounding; + (function (Rounding) { + // + Rounding["Rounding_None"] = "none"; + // + Rounding["Rounding_Small"] = "small"; + // + Rounding["Rounding_Medium"] = "medium"; + // + Rounding["Rounding_Large"] = "large"; + })(Rounding = exports.Rounding || (exports.Rounding = {})); + // + var LineEnd; + (function (LineEnd) { + // + LineEnd["LineEnd_None"] = "none"; + // + LineEnd["LineEnd_Arrow"] = "arrow"; + // + LineEnd["LineEnd_OpenArrow"] = "open-arrow"; + // + LineEnd["LineEnd_Dot"] = "dot"; + })(LineEnd = exports.LineEnd || (exports.LineEnd = {})); + // + var LineEndSize; + (function (LineEndSize) { + // + LineEndSize["LineEndSize_Smallest"] = "smallest"; + // + LineEndSize["LineEndSize_Smaller"] = "smaller"; + // + LineEndSize["LineEndSize_Small"] = "small"; + // + LineEndSize["LineEndSize_Medium"] = "medium"; + // + LineEndSize["LineEndSize_Large"] = "large"; + // + LineEndSize["LineEndSize_Larger"] = "larger"; + // + LineEndSize["LineEndSize_Largest"] = "largest"; + })(LineEndSize = exports.LineEndSize || (exports.LineEndSize = {})); + // + var BodyType; + (function (BodyType) { + // + BodyType["BodyType_None"] = "none"; + // + BodyType["BodyType_Box"] = "box"; + // + BodyType["BodyType_Edge"] = "edge"; + })(BodyType = exports.BodyType || (exports.BodyType = {})); + // + var StyleTheme; + (function (StyleTheme) { + // + StyleTheme["themeClassic"] = "classic"; + // + StyleTheme["themeModern"] = "modern"; + // + StyleTheme["themeClean"] = "clean"; + // + StyleTheme["themeSmooth"] = "smooth"; + // + StyleTheme["themeCustom"] = "custom"; + })(StyleTheme = exports.StyleTheme || (exports.StyleTheme = {})); + // + var AxisFoldState; + (function (AxisFoldState) { + // + AxisFoldState["afNone"] = "none"; + // + AxisFoldState["afFolded"] = "folded"; + // + AxisFoldState["afSynchronized"] = "synchronized"; + })(AxisFoldState = exports.AxisFoldState || (exports.AxisFoldState = {})); + // + var LinePattern; + (function (LinePattern) { + // + LinePattern["LinePatternNone"] = "none"; + // + LinePattern["LinePatternSolid"] = "solid"; + // + LinePattern["LinePatternDashed"] = "dashed"; + // + LinePattern["LinePatternDotted"] = "dotted"; + })(LinePattern = exports.LinePattern || (exports.LinePattern = {})); + // + var LineVisibility; + (function (LineVisibility) { + // + LineVisibility["LineVisibilityAuto"] = "automatic"; + // + LineVisibility["LineVisibilityOn"] = "on"; + // + LineVisibility["LineVisibilityOff"] = "off"; + })(LineVisibility = exports.LineVisibility || (exports.LineVisibility = {})); + // + var StylesLinePattern; + (function (StylesLinePattern) { + // + StylesLinePattern["StylesLinePatternSolid"] = "solid"; + // + StylesLinePattern["StylesLinePatternDashed"] = "dashed"; + // + StylesLinePattern["StylesLinePatternDotted"] = "dotted"; + })(StylesLinePattern = exports.StylesLinePattern || (exports.StylesLinePattern = {})); + // + var LineCap; + (function (LineCap) { + // + LineCap["LineCapFlat"] = "flat"; + // + LineCap["LineCapSquare"] = "square"; + // + LineCap["LineCapRound"] = "round"; + // + LineCap["LineCapTriangle"] = "triangle"; + })(LineCap = exports.LineCap || (exports.LineCap = {})); + // + var LineJoin; + (function (LineJoin) { + // + LineJoin["BevelJoin"] = "bevel"; + // + LineJoin["MiterJoin"] = "miter"; + // + LineJoin["RoundJoin"] = "round"; + })(LineJoin = exports.LineJoin || (exports.LineJoin = {})); + // + var LineAlignment; + (function (LineAlignment) { + // + LineAlignment["AlignmentCenter"] = "center"; + // + LineAlignment["AlignmentInset"] = "inset"; + })(LineAlignment = exports.LineAlignment || (exports.LineAlignment = {})); + // + var FillMode; + (function (FillMode) { + // + FillMode["FillEvenOdd"] = "even-odd"; + // + FillMode["FillWinding"] = "winding"; + })(FillMode = exports.FillMode || (exports.FillMode = {})); + // + var BorderStyle; + (function (BorderStyle) { + // none + BorderStyle["BorderStyleNone"] = "bs-none"; + // hidden + BorderStyle["BorderStyleHidden"] = "bs-hidden"; + // dotted + BorderStyle["BorderStyleDotted"] = "bs-dotted"; + // dashed + BorderStyle["BorderStyleDashed"] = "bs-dashed"; + // solid + BorderStyle["BorderStyleSolid"] = "bs-solid"; + // double + BorderStyle["BorderStyleDouble"] = "bs-double"; + // groove + BorderStyle["BorderStyleGroove"] = "bs-groove"; + // ridge + BorderStyle["BorderStyleRidge"] = "bs-ridge"; + // inset + BorderStyle["BorderStyleInset"] = "bs-inset"; + // outset + BorderStyle["BorderStyleOutset"] = "bs-outset"; + // invalid + BorderStyle["BorderStyleInvalid"] = "bs-invalid"; + })(BorderStyle = exports.BorderStyle || (exports.BorderStyle = {})); + // + var ColorPaletteType; + (function (ColorPaletteType) { + // + ColorPaletteType["ColorPaletteRegular"] = "color-palette-regular"; + // + ColorPaletteType["ColorPaletteOrderedDiverging"] = "palette-ordered-diverging"; + // + ColorPaletteType["ColorPaletteOrderedLinear"] = "palette-ordered-linear"; + })(ColorPaletteType = exports.ColorPaletteType || (exports.ColorPaletteType = {})); + // + var PaletteFlags; + (function (PaletteFlags) { + // + PaletteFlags["PaletteFlagNone"] = "palette-flag-none"; + // + PaletteFlags["PaletteFlagCustom"] = "palette-flag-custom"; + // + PaletteFlags["PaletteFlagNotQuantitative"] = "palette-flag-not-quantitative"; + // + PaletteFlags["PaletteFlagNotCategorical"] = "palette-flag-not-categorical"; + // + PaletteFlags["PaletteFlagNotReferenceBand"] = "palette-flag-not-reference-band"; + // + PaletteFlags["PaletteFlagNotBoxplot"] = "palette-flag-not-boxplot"; + // + PaletteFlags["PaletteFlagNotFilledMapLight"] = "palette-flag-not-filled-map-light"; + // + PaletteFlags["PaletteFlagNotFilledMapDark"] = "palette-flag-not-filled-map-dark"; + // + PaletteFlags["PaletteFlagLegacy"] = "palette-flag-legacy"; + })(PaletteFlags = exports.PaletteFlags || (exports.PaletteFlags = {})); + // + var DefaultPaletteType; + (function (DefaultPaletteType) { + // + DefaultPaletteType["SmallNominal"] = "palette-default-small-nominal"; + // + DefaultPaletteType["LargeNominal"] = "palette-default-large-nominal"; + // + DefaultPaletteType["Ordinal"] = "palette-default-ordinal"; + // + DefaultPaletteType["QuantitativePositive"] = "palette-default-quant-pos"; + // + DefaultPaletteType["QuantitativeNegative"] = "palette-default-quant-neg"; + // + DefaultPaletteType["QuantitativeDiverging"] = "palette-default-quant-div"; + // + DefaultPaletteType["QuantitativePositiveLight"] = "palette-default-quant-pos-light"; + // + DefaultPaletteType["QuantitativeNegativeLight"] = "palette-default-quant-neg-light"; + // + DefaultPaletteType["QuantitativeDivergingLight"] = "palette-default-quant-div-light"; + // + DefaultPaletteType["QuantitativePositiveArea"] = "palette-default-quant-pos-area"; + // + DefaultPaletteType["QuantitativeNegativeArea"] = "palette-default-quant-neg-area"; + // + DefaultPaletteType["QuantitativeDivergingArea"] = "palette-default-quant-div-area"; + })(DefaultPaletteType = exports.DefaultPaletteType || (exports.DefaultPaletteType = {})); + // + var ShowBounds; + (function (ShowBounds) { + // + ShowBounds["Both"] = "show-both"; + // + ShowBounds["Upper"] = "show-upper"; + // + ShowBounds["Lower"] = "show-lower"; + })(ShowBounds = exports.ShowBounds || (exports.ShowBounds = {})); + // Sample vs. population standard deviation + var StDevType; + (function (StDevType) { + // + StDevType["Sample"] = "stdev-sample"; + // + StDevType["Population"] = "stdev-population"; + })(StDevType = exports.StDevType || (exports.StDevType = {})); + // + var ReferenceLineFormulaGroup; + (function (ReferenceLineFormulaGroup) { + // + ReferenceLineFormulaGroup["None"] = "none"; + // + ReferenceLineFormulaGroup["Line"] = "line"; + // + ReferenceLineFormulaGroup["Band"] = "band"; + // + ReferenceLineFormulaGroup["Distribution"] = "distribution"; + // + ReferenceLineFormulaGroup["Boxplot"] = "boxplot"; + })(ReferenceLineFormulaGroup = exports.ReferenceLineFormulaGroup || (exports.ReferenceLineFormulaGroup = {})); + // + var ReferenceLineScopeType; + (function (ReferenceLineScopeType) { + // + ReferenceLineScopeType["PerCell"] = "per-cell"; + // + ReferenceLineScopeType["PerPane"] = "per-pane"; + // + ReferenceLineScopeType["PerTable"] = "per-table"; + })(ReferenceLineScopeType = exports.ReferenceLineScopeType || (exports.ReferenceLineScopeType = {})); + // how should the line be labeled + var ReferenceLineLabelType; + (function (ReferenceLineLabelType) { + // no label + ReferenceLineLabelType["None"] = "none"; + // an automatically generated label + ReferenceLineLabelType["Automatic"] = "automatic"; + // + ReferenceLineLabelType["Value"] = "value"; + // + ReferenceLineLabelType["Computation"] = "computation"; + // a user defined label + ReferenceLineLabelType["Custom"] = "custom"; + })(ReferenceLineLabelType = exports.ReferenceLineLabelType || (exports.ReferenceLineLabelType = {})); + // how should the line be computed + var ReferenceLineFormulaType; + (function (ReferenceLineFormulaType) { + // a user specified constant value + ReferenceLineFormulaType["Constant"] = "constant"; + // + ReferenceLineFormulaType["Total"] = "total"; + // total of all values at the given scope <- is this correct? looks like comment from FormulaTotal + ReferenceLineFormulaType["Sum"] = "sum"; + // minimum value in the scope + ReferenceLineFormulaType["Min"] = "min"; + // maximum value in the scope + ReferenceLineFormulaType["Max"] = "max"; + // average value in the scope + ReferenceLineFormulaType["Average"] = "average"; + // median value in the scope + ReferenceLineFormulaType["Median"] = "median"; + // the n quantiles values in the scope + ReferenceLineFormulaType["Quantiles"] = "quantiles"; + // a given percentile in the scope + ReferenceLineFormulaType["Percentile"] = "percentile"; + // mean +- standard deviation + ReferenceLineFormulaType["StandardDeviation"] = "standard-deviation"; + // a given confidence interval around the mean + ReferenceLineFormulaType["ConfidenceInterval"] = "confidence-interval"; + // + ReferenceLineFormulaType["MedianConfidenceInterval"] = "median-confidence-interval"; + })(ReferenceLineFormulaType = exports.ReferenceLineFormulaType || (exports.ReferenceLineFormulaType = {})); + // Line or confidence interval or both + var ReferenceLineConfidenceIntervalState; + (function (ReferenceLineConfidenceIntervalState) { + // display line only + ReferenceLineConfidenceIntervalState["LineOnly"] = "line-only"; + // display the line and a confidence interval + ReferenceLineConfidenceIntervalState["LineAndConfidenceInterval"] = "line-and-interval"; + // display confidence interval only + ReferenceLineConfidenceIntervalState["ConfidenceIntervalOnly"] = "interval-only"; + })(ReferenceLineConfidenceIntervalState = exports.ReferenceLineConfidenceIntervalState || (exports.ReferenceLineConfidenceIntervalState = {})); + // type of distribution. i.e. Percentage, Percentile, Quantile, and Standard Deviation + var ReferenceLineDistributionType; + (function (ReferenceLineDistributionType) { + // distribution type percentage + ReferenceLineDistributionType["Percentages"] = "percentages"; + // distribution type percentile + ReferenceLineDistributionType["Percentiles"] = "percentiles"; + // distribution type quantile + ReferenceLineDistributionType["Quantiles"] = "quantiles"; + // distribution type standard deviation + ReferenceLineDistributionType["StandardDeviation"] = "standard-deviation"; + })(ReferenceLineDistributionType = exports.ReferenceLineDistributionType || (exports.ReferenceLineDistributionType = {})); + // the kind of LOD calc to use for a given reference line + var ReferenceLineLODCalcType; + (function (ReferenceLineLODCalcType) { + // Create a formula using a FIXED-like level-of-detail calculation, to which sheet filters apply, that will go onto a specific sheet + ReferenceLineLODCalcType["MeasureFormula"] = "measure-formula"; + // Create a boolean formula that can be used as a filter + ReferenceLineLODCalcType["BooleanFilter"] = "boolean-filter"; + })(ReferenceLineLODCalcType = exports.ReferenceLineLODCalcType || (exports.ReferenceLineLODCalcType = {})); + // + var BoxplotWhiskerType; + (function (BoxplotWhiskerType) { + // + BoxplotWhiskerType["Standard"] = "standard"; + // + BoxplotWhiskerType["Minmax"] = "minmax"; + })(BoxplotWhiskerType = exports.BoxplotWhiskerType || (exports.BoxplotWhiskerType = {})); + // categories of connection types displayed by the connection UI + var ConnectionTypeCategory; + (function (ConnectionTypeCategory) { + // standard database + ConnectionTypeCategory["CTC_Database"] = "database"; + // 'More Items ...' meta item + ConnectionTypeCategory["CTC_More"] = "more"; + // Other file types + ConnectionTypeCategory["CTC_Other"] = "other"; + // invalid connection category + ConnectionTypeCategory["CTC_Invalid"] = "invalid"; + })(ConnectionTypeCategory = exports.ConnectionTypeCategory || (exports.ConnectionTypeCategory = {})); + // a logical grouping of connection types displayed by the connection UI + var ConnectionTypeGroup; + (function (ConnectionTypeGroup) { + // in a file + ConnectionTypeGroup["CTG_File"] = "file"; + // on a server + ConnectionTypeGroup["CTG_Server"] = "server"; + // on a recent server + ConnectionTypeGroup["CTG_MruServer"] = "mru-server"; + // invalid group + ConnectionTypeGroup["CTG_Invalid"] = "invalid"; + })(ConnectionTypeGroup = exports.ConnectionTypeGroup || (exports.ConnectionTypeGroup = {})); + // The type of metadata a column contains + var CubeMetadataCategory; + (function (CubeMetadataCategory) { + // cube's name + CubeMetadataCategory["CMC_Name"] = "name"; + // cube's description + CubeMetadataCategory["CMC_Description"] = "description"; + // cube's last updated timestamp + CubeMetadataCategory["CMC_LastUpdated"] = "last-updated"; + // invalid + CubeMetadataCategory["CMC_Invalid"] = "invalid"; + })(CubeMetadataCategory = exports.CubeMetadataCategory || (exports.CubeMetadataCategory = {})); + // The type of widget to display to the user when they are specifying connection info + var ConnectionWidgetType; + (function (ConnectionWidgetType) { + // show the join area + ConnectionWidgetType["CWT_JoinArea"] = "join-area"; + // show the cube selection ui + ConnectionWidgetType["CWT_CubeSelection"] = "cube-selection"; + // show the google analytics ui + ConnectionWidgetType["CWT_GoogleAnalytics"] = "google-analytics"; + // show the tableau server ui + ConnectionWidgetType["CWT_TableauServer"] = "tableau-server"; + // do not show any connection widget + ConnectionWidgetType["CWT_NoWidget"] = "no-widget"; + // invalid + ConnectionWidgetType["CWT_Invalid"] = "invalid"; + })(ConnectionWidgetType = exports.ConnectionWidgetType || (exports.ConnectionWidgetType = {})); + // The type of google analytics basic info + var GoogleBasicInfoType; + (function (GoogleBasicInfoType) { + // google analytics account + GoogleBasicInfoType["GA_Account"] = "ga-account"; + // google analytics property + GoogleBasicInfoType["GA_Property"] = "ga-property"; + // google analytics view + GoogleBasicInfoType["GA_View"] = "ga-view"; + // invalid + GoogleBasicInfoType["GA_Invalid"] = "invalid"; + })(GoogleBasicInfoType = exports.GoogleBasicInfoType || (exports.GoogleBasicInfoType = {})); + // The way in which a piece of connection information is specified + var ConnectionSpecificationType; + (function (ConnectionSpecificationType) { + // Uses a combo box + ConnectionSpecificationType["CST_ComboBox"] = "combo-box"; + // Uses a line edit + ConnectionSpecificationType["CST_LineEdit"] = "line-edit"; + // Uses a line edit with a browse button next to it + ConnectionSpecificationType["CST_LineEditBrowse"] = "line-edit-browse"; + // invalid + ConnectionSpecificationType["CST_Invalid"] = "invalid"; + })(ConnectionSpecificationType = exports.ConnectionSpecificationType || (exports.ConnectionSpecificationType = {})); + // GA Date Range + var DateRange; + (function (DateRange) { + // + DateRange["DateRangeFirst"] = "date-range-first"; + // + DateRange["DateRangeLast30Days"] = "date-range-last30"; + // + DateRange["DateRangeToday"] = "date-range-today"; + // + DateRange["DateRangeYesterday"] = "date-range-yesterday"; + // + DateRange["DateRangeLastWeek"] = "date-range-last-week"; + // + DateRange["DateRangeLastMonth"] = "date-range-last-month"; + // + DateRange["DateRangeLastYear"] = "date-range-last-year"; + // + DateRange["DateRangeThisWeekToYesterday"] = "date-range-this-week-to-yesterday"; + // + DateRange["DateRangeThisMonthToYesterday"] = "date-range-this-month-to-yesterday"; + // + DateRange["DateRangeThisYearToYesterday"] = "date-range-this-year-to-yesterday"; + // + DateRange["DateRangeLastWeekToYesterday"] = "date-range-last-week-to-yesterday"; + // + DateRange["DateRangeLastMonthToYesterday"] = "date-range-last-month-to-yesterday"; + // + DateRange["DateRangeLastYearToYesterday"] = "date-range-last-year-to-yesterday"; + // + DateRange["DateRangeFixedRange"] = "date-range-fixed-range"; + // + DateRange["DateRangeFixedStart"] = "date-range-fixed-start"; + // + DateRange["DateRangeCount"] = "date-range-count"; + })(DateRange = exports.DateRange || (exports.DateRange = {})); + // Specifies the type of widget to show in ConnectServerWidget + var ConnectServerWidgetType; + (function (ConnectServerWidgetType) { + // invalid + ConnectServerWidgetType["CSWT_Invalid"] = "invalid"; + // microsoft access + ConnectServerWidgetType["CSWT_Access"] = "access"; + // generic odbc + ConnectServerWidgetType["CSWT_ODBC"] = "odbc"; + // cubes + ConnectServerWidgetType["CSWT_Cube"] = "cube"; + // relational data sources + ConnectServerWidgetType["CSWT_Relational"] = "relational"; + })(ConnectServerWidgetType = exports.ConnectServerWidgetType || (exports.ConnectServerWidgetType = {})); + // + var AuthenticationEnumsMode; + (function (AuthenticationEnumsMode) { + // no authentication widget + AuthenticationEnumsMode["AuthModeNone"] = "auth-mode-none"; + // username and password + AuthenticationEnumsMode["AuthModeBasic"] = "auth-mode-basic"; + // username and password can be blank + AuthenticationEnumsMode["AuthModeBasicNoValidateFields"] = "auth-mode-basic-no-validate-fields"; + // only username + AuthenticationEnumsMode["AuthModeBasicUserNameOnly"] = "auth-mode-basic-username-only"; + // aws access key and secret ID + AuthenticationEnumsMode["AuthModeBasicAWS"] = "auth-mode-basic-aws"; + // username, password, and a list of AuthOptions with radio buttons + AuthenticationEnumsMode["AuthModeRadio"] = "auth-mode-radio"; + // Like AuthModeRadio, but enable username/password even for integrated auth + AuthenticationEnumsMode["AuthModeRadioUnindented"] = "auth-mode-radio-unindented"; + // username, password, and a list of AuthOptions with a combobox + AuthenticationEnumsMode["AuthModeComboBox"] = "auth-mode-combobox"; + // Like AuthModeCombobox, but with option not requiring username/password + AuthenticationEnumsMode["AuthModeComboBoxIntegrated"] = "auth-mode-combobox-integrated"; + // driver, authentication, username, realm, etc + AuthenticationEnumsMode["AuthModeHive"] = "auth-mode-hive"; + // none, azure marketplace account, explicit + AuthenticationEnumsMode["AuthModeOData"] = "auth-mode-odata"; + // edition, authentication, sso domain, etc + AuthenticationEnumsMode["AuthModeSharePoint"] = "auth-mode-sharepoint"; + // username, password, client, & language + AuthenticationEnumsMode["AuthModeSAPBW"] = "auth-mode-sapbw"; + // Ability to switch between two different auth modes each in their own modal dialogs (basic and oauth) + AuthenticationEnumsMode["AuthModeSwitchModal"] = "auth-mode-switch-modal"; + })(AuthenticationEnumsMode = exports.AuthenticationEnumsMode || (exports.AuthenticationEnumsMode = {})); + // + var AuthenticationEnumsReconnectMode; + (function (AuthenticationEnumsReconnectMode) { + // Auth not needed for reconnect + AuthenticationEnumsReconnectMode["ReconnectModeNone"] = "reconnect-mode-none"; + // Username and password + AuthenticationEnumsReconnectMode["ReconnectModeBasic"] = "reconnect-mode-basic"; + // Access file + AuthenticationEnumsReconnectMode["ReconnectModeAccess"] = "reconnect-mode-access"; + // Microsoft Azure Data Market (OData) + AuthenticationEnumsReconnectMode["ReconnectModeDataMarket"] = "reconnect-mode-data-market"; + // Google OAuth + AuthenticationEnumsReconnectMode["ReconnectModeGoogleOAuth"] = "reconnect-mode-google-oauth"; + // SalesforceOAuth, with the option of username/password auth + AuthenticationEnumsReconnectMode["ReconnectModeSalesforceOAuth"] = "reconnect-mode-salesforce-oauth"; + // Web data connector + AuthenticationEnumsReconnectMode["ReconnectModeWebData"] = "reconnect-mode-web-data"; + })(AuthenticationEnumsReconnectMode = exports.AuthenticationEnumsReconnectMode || (exports.AuthenticationEnumsReconnectMode = {})); + // + var AuthenticationEnumsAuthOption; + (function (AuthenticationEnumsAuthOption) { + // FIRST + AuthenticationEnumsAuthOption["AuthExplicit"] = "auth-option-explicit"; + // + AuthenticationEnumsAuthOption["AuthExplicitUnindented"] = "auth-option-explicit-unindented"; + // + AuthenticationEnumsAuthOption["AuthUseWindows"] = "auth-option-use-windows"; + // + AuthenticationEnumsAuthOption["AuthUseWindowsPreferred"] = "auth-option-windows-preferred"; + // + AuthenticationEnumsAuthOption["AuthTeradata"] = "auth-option-teradata"; + // + AuthenticationEnumsAuthOption["AuthLDAP"] = "auth-option-ldap"; + // + AuthenticationEnumsAuthOption["AuthVirtualNode"] = "auth-option-virtual-node"; + // + AuthenticationEnumsAuthOption["AuthODataAccount"] = "auth-option-odata"; + // + AuthenticationEnumsAuthOption["AuthNone"] = "auth-option-none"; + // + AuthenticationEnumsAuthOption["AuthKerberos"] = "auth-option-kerberos"; + // Introduced for Kerberos with fallback, recognizing that the db may or may not be on Windows + AuthenticationEnumsAuthOption["AuthIntegrated"] = "auth-option-integrated"; + // + AuthenticationEnumsAuthOption["AuthUsername"] = "auth-option-username"; + // + AuthenticationEnumsAuthOption["AuthUsernameAndPassword"] = "auth-option-username-and-password"; + // + AuthenticationEnumsAuthOption["AuthSSL"] = "auth-option-ssl"; + // + AuthenticationEnumsAuthOption["AuthHDIEmulator"] = "auth-hdi-emulator"; + // + AuthenticationEnumsAuthOption["AuthHDIService"] = "auth-hdi-service"; + // + AuthenticationEnumsAuthOption["AuthHTTP"] = "auth-http"; + // + AuthenticationEnumsAuthOption["AuthHTTPS"] = "auth-https"; + // + AuthenticationEnumsAuthOption["AuthAccessNoSecurity"] = "auth-option-access-no"; + // + AuthenticationEnumsAuthOption["AuthAccessYesSecurity"] = "auth-option-access-yes"; + // + AuthenticationEnumsAuthOption["AuthOAuth"] = "auth-oauth"; + // + AuthenticationEnumsAuthOption["AuthForms"] = "auth-forms"; + // + AuthenticationEnumsAuthOption["AuthThirdPartySSO"] = "auth-third-party-SSO"; + // LAST + AuthenticationEnumsAuthOption["AuthInvalid"] = "auth-option-invalid"; + })(AuthenticationEnumsAuthOption = exports.AuthenticationEnumsAuthOption || (exports.AuthenticationEnumsAuthOption = {})); + // data source validation modes + var DataSourceParserValidationMode; + (function (DataSourceParserValidationMode) { + // + DataSourceParserValidationMode["WorkbookLoadValidation"] = "workbook-load-validation"; + // + DataSourceParserValidationMode["AutoValidation"] = "auto-validation"; + // + DataSourceParserValidationMode["ForceValidation"] = "force-validation"; + // + DataSourceParserValidationMode["PreventValidation"] = "prevent-validation"; + // + DataSourceParserValidationMode["PreventValidationAndThrow"] = "prevent-validation-and-throw"; + })(DataSourceParserValidationMode = exports.DataSourceParserValidationMode || (exports.DataSourceParserValidationMode = {})); + // Enum for DataGrid/MetadataGrid fields reordering + var FieldOrderType; + (function (FieldOrderType) { + // + FieldOrderType["DATASOURCE_ORDER"] = "datasource-order"; + // + FieldOrderType["ALPHA_PER_TABLE"] = "alpha-per-table"; + // + FieldOrderType["ALPHABETICAL_ORDER"] = "alphabetical-order"; + // + FieldOrderType["CUSTOM_ORDER"] = "custom-order"; + })(FieldOrderType = exports.FieldOrderType || (exports.FieldOrderType = {})); + // + var LineInterpolationMode; + (function (LineInterpolationMode) { + // + LineInterpolationMode["LIM_Linear"] = "lim-linear"; + // + LineInterpolationMode["LIM_Step"] = "lim-step"; + // + LineInterpolationMode["LIM_Jump"] = "lim-jump"; + })(LineInterpolationMode = exports.LineInterpolationMode || (exports.LineInterpolationMode = {})); + // + var LineMarkerPosition; + (function (LineMarkerPosition) { + // + LineMarkerPosition["LMP_Left"] = "lmp-left"; + // + LineMarkerPosition["LMP_Center"] = "lmp-center"; + // + LineMarkerPosition["LMP_Right"] = "lmp-right"; + })(LineMarkerPosition = exports.LineMarkerPosition || (exports.LineMarkerPosition = {})); + // Enumeration for the type of join connecting two tables + var SQLJoinType; + (function (SQLJoinType) { + // + SQLJoinType["SQL_InnerJoin"] = "sql-inner-join"; + // + SQLJoinType["SQL_LeftJoin"] = "sql-left-join"; + // + SQLJoinType["SQL_RightJoin"] = "sql-right-join"; + // + SQLJoinType["SQL_FullJoin"] = "sql-full-join"; + // + SQLJoinType["SQL_CrossJoin"] = "sql-cross-join"; + })(SQLJoinType = exports.SQLJoinType || (exports.SQLJoinType = {})); + // + var FolderRole; + (function (FolderRole) { + // + FolderRole["FOLDER_DIMENSIONS"] = "dimensions"; + // + FolderRole["FOLDER_MEASURES"] = "measure"; + // + FolderRole["FOLDER_GROUPS"] = "groups"; + // + FolderRole["FOLDER_PARAMETERS"] = "parameters"; + })(FolderRole = exports.FolderRole || (exports.FolderRole = {})); + // + var FieldTypeIconSet; + (function (FieldTypeIconSet) { + // + FieldTypeIconSet["FT_SET_ALL"] = "all"; + // + FieldTypeIconSet["FT_SET_CUBE_MEASURES"] = "cube-measures"; + // + FieldTypeIconSet["FT_SET_CUBE_DIMENSIONS"] = "cube-dimensions"; + })(FieldTypeIconSet = exports.FieldTypeIconSet || (exports.FieldTypeIconSet = {})); + // + var FieldPivotStrategy; + (function (FieldPivotStrategy) { + // + FieldPivotStrategy["PIVOT_ON_KEY"] = "pivot-on-key"; + // + FieldPivotStrategy["PIVOT_ON_ALIAS"] = "pivot-on-alias"; + })(FieldPivotStrategy = exports.FieldPivotStrategy || (exports.FieldPivotStrategy = {})); + // + var AliasType; + (function (AliasType) { + // + AliasType["ALIAS_NOTSET"] = "alias-not-set"; + // + AliasType["ALIAS_BEGIN"] = "alias-begin"; + // + AliasType["ALIAS_KEY"] = "alias-key"; + // + AliasType["ALIAS_KEY_NAME"] = "alias-key-name"; + // + AliasType["ALIAS_KEY_MEDNAME"] = "alias-key-medname"; + // + AliasType["ALIAS_KEY_LONGNAME"] = "alias-key-longname"; + // + AliasType["ALIAS_NAME"] = "alias-name"; + // + AliasType["ALIAS_NAME_KEY"] = "alias-name-key"; + // + AliasType["ALIAS_MEDNAME"] = "alias-medname"; + // + AliasType["ALIAS_MEDNAME_KEY"] = "alias-medname-key"; + // + AliasType["ALIAS_LONGNAME"] = "alias-longname"; + // + AliasType["ALIAS_LONGNAME_KEY"] = "alias-longname-key"; + // + AliasType["ALIAS_END"] = "alias-end"; + })(AliasType = exports.AliasType || (exports.AliasType = {})); + // + var AliasTypes; + (function (AliasTypes) { + // + AliasTypes["MASK_ALIAS_KEY"] = "mask-alias-key"; + // + AliasTypes["MASK_ALIAS_NAME"] = "mask-alias-name"; + // + AliasTypes["MASK_ALIAS_MEDNAME"] = "mask-alias-medname"; + // + AliasTypes["MASK_ALIAS_LONGNAME"] = "mask-alias-longname"; + })(AliasTypes = exports.AliasTypes || (exports.AliasTypes = {})); + // + var FieldRole; + (function (FieldRole) { + // + FieldRole["ROLE_DIMENSION"] = "dimension"; + // + FieldRole["ROLE_MEASURE"] = "measure"; + // + FieldRole["ROLE_UNKNOWN"] = "unknown"; + })(FieldRole = exports.FieldRole || (exports.FieldRole = {})); + // + var FieldType; + (function (FieldType) { + // + FieldType["TYPE_QUANTITATIVE"] = "quantitative"; + // + FieldType["TYPE_ORDINAL"] = "ordinal"; + // + FieldType["TYPE_NOMINAL"] = "nominal"; + // + FieldType["TYPE_UNKNOWN"] = "unknown"; + })(FieldType = exports.FieldType || (exports.FieldType = {})); + // + var DataSourceOrder; + (function (DataSourceOrder) { + // + DataSourceOrder["DSO_ALPHABETIC"] = "dso-alphabetic"; + // + DataSourceOrder["DSO_ORDINAL"] = "dso-ordinal"; + })(DataSourceOrder = exports.DataSourceOrder || (exports.DataSourceOrder = {})); + // Where the column comes from + var ColumnClass; + (function (ColumnClass) { + // A metadata column (O or Q Measures) + ColumnClass["COL_METADATA"] = "col-metadata"; + // A physical column on the database + ColumnClass["COL_DATABASE"] = "col-database"; + // A numberic bin (a special kind of calculated column) + ColumnClass["COL_NUMERICBIN"] = "col-numericbin"; + // A Categorical bin (group) + ColumnClass["COL_CATEGORICALBIN"] = "col-categoricalbin"; + // A column instance + ColumnClass["COL_INSTANCE"] = "col-instance"; + // A (raw) mdx calculated column + ColumnClass["COL_MDXCALC"] = "col-mdxcalc"; + // A user-defined calculated column, Tableau expression syntax + ColumnClass["COL_USERCALC"] = "col-usercalc"; + // A column that would have been COL_DATABASE, but the underlying database column does not exist + ColumnClass["COL_DANGLING"] = "col-dangling"; + // A column that contains local supplied data (e.g. Latitude) + ColumnClass["COL_LOCALDATA"] = "col-localdata"; + // A column that contains a visual model attribute (e.g. PaneIndex, Color, ...) + ColumnClass["COL_VISUALDATA"] = "col-visualdata"; + // A column that's a Group (a " Set " in UI terminology) + ColumnClass["COL_GROUP"] = "col-group"; + })(ColumnClass = exports.ColumnClass || (exports.ColumnClass = {})); + // + var VTAggType; + (function (VTAggType) { + // + VTAggType["VTAGG_SUM"] = "sum"; + // + VTAggType["VTAGG_AVG"] = "avg"; + // + VTAggType["VTAGG_MIN"] = "min"; + // + VTAggType["VTAGG_MAX"] = "max"; + // + VTAggType["VTAGG_SERVER"] = "server"; + // + VTAggType["VTAGG_NONE"] = "none"; + // + VTAggType["VTAGG_DEFAULT"] = "default"; + })(VTAggType = exports.VTAggType || (exports.VTAggType = {})); + // + var EntityType; + (function (EntityType) { + // + EntityType["NoEnumerationEntity"] = "no-enumeration-entity"; + // + EntityType["DatabaseEntity"] = "database-entity"; + // + EntityType["SchemaEntity"] = "schema-entity"; + // + EntityType["TableEntity"] = "table-entity"; + })(EntityType = exports.EntityType || (exports.EntityType = {})); + // + var PickEntitySearchType; + (function (PickEntitySearchType) { + // + PickEntitySearchType["PickEntitySearchType_StartsWith"] = "starts-with"; + // + PickEntitySearchType["PickEntitySearchType_Contains"] = "contains"; + // + PickEntitySearchType["PickEntitySearchType_ExactMatch"] = "exact-match"; + // + PickEntitySearchType["PickEntitySearchType_DEFAULT"] = "default"; + })(PickEntitySearchType = exports.PickEntitySearchType || (exports.PickEntitySearchType = {})); + // Parsing methods and structures. + var ExpressionOp; + (function (ExpressionOp) { + // + ExpressionOp["LogicalOr"] = "op-logical-or"; + // + ExpressionOp["LogicalAnd"] = "op-logical-and"; + // + ExpressionOp["LogicalNot"] = "op-logical-not"; + // + ExpressionOp["BitwiseXOr"] = "op-bitwise-xor"; + // + ExpressionOp["BitwiseOr"] = "op-bitwise-or"; + // + ExpressionOp["Equals"] = "op-equals"; + // + ExpressionOp["Greater"] = "op-greater"; + // + ExpressionOp["Less"] = "op-less"; + // + ExpressionOp["GEqual"] = "op-gequal"; + // + ExpressionOp["LEqual"] = "op-lequal"; + // + ExpressionOp["NEqual"] = "op-nequal"; + // + ExpressionOp["Plus"] = "op-plus"; + // + ExpressionOp["Minus"] = "op-minus"; + // + ExpressionOp["BitwiseAnd"] = "op-bitwise-and"; + // + ExpressionOp["Multiply"] = "op-multiply"; + // + ExpressionOp["Divide"] = "op-divide"; + // + ExpressionOp["Modulo"] = "op-modulo"; + // + ExpressionOp["Power"] = "op-power"; + // + ExpressionOp["Positive"] = "op-positive"; + // + ExpressionOp["Negative"] = "op-negative"; + // + ExpressionOp["BitwiseNot"] = "op-bitwise-not"; + // + ExpressionOp["Column"] = "op-column"; + // + ExpressionOp["String"] = "op-string"; + // + ExpressionOp["Number"] = "op-number"; + // + ExpressionOp["Date"] = "op-date"; + // + ExpressionOp["Boolean"] = "op-boolean"; + // + ExpressionOp["Funcall"] = "op-funcall"; + // + ExpressionOp["LParen"] = "op-lparen"; + // + ExpressionOp["RParen"] = "op-rparen"; + // + ExpressionOp["Comma"] = "op-comma"; + // + ExpressionOp["Ident"] = "op-ident"; + // + ExpressionOp["Null"] = "op-null"; + // + ExpressionOp["If"] = "op-if"; + // + ExpressionOp["Elseif"] = "op-elseif"; + // + ExpressionOp["Case"] = "op-case"; + // + ExpressionOp["When"] = "op-when"; + // + ExpressionOp["Then"] = "op-then"; + // + ExpressionOp["Else"] = "op-else"; + // + ExpressionOp["EndExpr"] = "op-endexpr"; + // + ExpressionOp["Whitespace"] = "op-whitespace"; + // + ExpressionOp["Comment"] = "op-comment"; + // + ExpressionOp["LBrace"] = "op-lbrace"; + // + ExpressionOp["RBrace"] = "op-rbrace"; + // + ExpressionOp["Colon"] = "op-colon"; + // + ExpressionOp["Bar"] = "op-bar"; + // + ExpressionOp["Txtype"] = "op-txtype"; + // + ExpressionOp["End"] = "op-end"; + // + ExpressionOp["RBrackets"] = "op-rbrackets"; + // used to represent invalid tokens + ExpressionOp["Invalid"] = "op-invalid"; + })(ExpressionOp = exports.ExpressionOp || (exports.ExpressionOp = {})); + // tri-state bool + var TriBool; + (function (TriBool) { + // + TriBool["TB_Invalid"] = "tribool-invalid"; + // + TriBool["TB_False"] = "tribool-false"; + // + TriBool["TB_True"] = "tribool-true"; + })(TriBool = exports.TriBool || (exports.TriBool = {})); + // table calc reference options set + var ReferenceOptionsSet; + (function (ReferenceOptionsSet) { + // + ReferenceOptionsSet["ROS_Relative"] = "reference-options-set-relative"; + // + ReferenceOptionsSet["ROS_Fixed"] = "reference-options-set-fixed"; + // + ReferenceOptionsSet["ROS_Parameter"] = "reference-options-set-parameter"; + // + ReferenceOptionsSet["ROS_None"] = "reference-options-set-none"; + })(ReferenceOptionsSet = exports.ReferenceOptionsSet || (exports.ReferenceOptionsSet = {})); + // widget state + var WidgetState; + (function (WidgetState) { + // + WidgetState["Hidden"] = "widget-state-hidden"; + // + WidgetState["Disabled"] = "widget-state-disabled"; + // + WidgetState["Enabled"] = "widget-state-enabled"; + })(WidgetState = exports.WidgetState || (exports.WidgetState = {})); + // rank type + var RankType; + (function (RankType) { + // + RankType["Competition"] = "rank-type-competition"; + // + RankType["ModifiedCompetition"] = "rank-type-modified-competition"; + // + RankType["Dense"] = "rank-type-dense"; + // + RankType["Unique"] = "rank-type-unique"; + })(RankType = exports.RankType || (exports.RankType = {})); + // + var TableCalcCommandType; + (function (TableCalcCommandType) { + // + TableCalcCommandType["TableCalcCommandClear"] = "clear"; + })(TableCalcCommandType = exports.TableCalcCommandType || (exports.TableCalcCommandType = {})); + // + var CalcNestingLevel; + (function (CalcNestingLevel) { + // + CalcNestingLevel["Primary"] = "primary"; + // used only for type != TC_CUSTOM + CalcNestingLevel["Secondary"] = "secondary"; + // used only for type == TC_CUSTOM + CalcNestingLevel["Nested"] = "nested"; + })(CalcNestingLevel = exports.CalcNestingLevel || (exports.CalcNestingLevel = {})); + // + var DecimalMode; + (function (DecimalMode) { + // + DecimalMode["DecimalModeAutomatic"] = "automatic"; + // + DecimalMode["DecimalModeManual"] = "manual"; + })(DecimalMode = exports.DecimalMode || (exports.DecimalMode = {})); + // + var TableCalcOrderingType; + (function (TableCalcOrderingType) { + // Advanced... + TableCalcOrderingType["OTField"] = "field"; + // Table (Across) + TableCalcOrderingType["OTRows"] = "rows"; + // Table (Down) + TableCalcOrderingType["OTColumns"] = "columns"; + // Table (Across then Down) + TableCalcOrderingType["OTTable"] = "table"; + // Table (Down then Across) + TableCalcOrderingType["OTTableColumnPrecedence"] = "table-column-precedence"; + // Pane Across + TableCalcOrderingType["OTRowInPane"] = "row-in-pane"; + // Pane (Down) + TableCalcOrderingType["OTColumnInPane"] = "column-in-pane"; + // Pane (Across then Down) + TableCalcOrderingType["OTPane"] = "pane"; + // Pane (Down then Across) + TableCalcOrderingType["OTPaneColumnPrecedence"] = "pane-column-precedence"; + // Cell + TableCalcOrderingType["OTCellInPane"] = "cell-in-pane"; + })(TableCalcOrderingType = exports.TableCalcOrderingType || (exports.TableCalcOrderingType = {})); + // + var TableCalcSortMode; + (function (TableCalcSortMode) { + // + TableCalcSortMode["SM_Automatic"] = "sort-mode-automatic"; + // + TableCalcSortMode["SM_Custom"] = "sort-mode-custom"; + })(TableCalcSortMode = exports.TableCalcSortMode || (exports.TableCalcSortMode = {})); + // + var TableCalcTableCalcType; + (function (TableCalcTableCalcType) { + // none (used to initialize variables) + TableCalcTableCalcType["TC_NONE"] = "none"; + // Running Total + TableCalcTableCalcType["TC_CUMULATIVE"] = "cumulative"; + // Moving Calculation + TableCalcTableCalcType["TC_WINDOW"] = "window"; + // Difference From + TableCalcTableCalcType["TC_DIFF"] = "diff"; + // Percent Difference From + TableCalcTableCalcType["TC_PCTDIFF"] = "pct-diff"; + // Percent From + TableCalcTableCalcType["TC_PCTVALUE"] = "pct-value"; + // Percent Of Total + TableCalcTableCalcType["TC_PCTTOTAL"] = "pct-total"; + // Rank + TableCalcTableCalcType["TC_RANK"] = "rank"; + // Percentile + TableCalcTableCalcType["TC_PCTRANK"] = "pct-rank"; + // Custom + TableCalcTableCalcType["TC_CUSTOM"] = "custom"; + })(TableCalcTableCalcType = exports.TableCalcTableCalcType || (exports.TableCalcTableCalcType = {})); + // + var QuickTableCalcCommandType; + (function (QuickTableCalcCommandType) { + // + QuickTableCalcCommandType["QuickTableCalcCommandRunTotal"] = "run-total"; + // + QuickTableCalcCommandType["QuickTableCalcCommandDifference"] = "difference"; + // + QuickTableCalcCommandType["QuickTableCalcCommandPctDiff"] = "pct-diff"; + // + QuickTableCalcCommandType["QuickTableCalcCommandPctTotal"] = "pct-total"; + // + QuickTableCalcCommandType["QuickTableCalcCommandRank"] = "rank"; + // + QuickTableCalcCommandType["QuickTableCalcCommandPctRank"] = "pct-rank"; + // + QuickTableCalcCommandType["QuickTableCalcCommandMovingAvg"] = "moving-avg"; + // + QuickTableCalcCommandType["QuickTableCalcCommandYtd"] = "ytd"; + // + QuickTableCalcCommandType["QuickTableCalcCommandCgr"] = "cgr"; + // + QuickTableCalcCommandType["QuickTableCalcCommandYOverY"] = "y-over-y"; + // + QuickTableCalcCommandType["QuickTableCalcCommandYtdGrowth"] = "ytd-growth"; + // + QuickTableCalcCommandType["QuickTableCalcCommandCustom"] = "custom"; + })(QuickTableCalcCommandType = exports.QuickTableCalcCommandType || (exports.QuickTableCalcCommandType = {})); + // + var TableCalcAddressCommandType; + (function (TableCalcAddressCommandType) { + // + TableCalcAddressCommandType["TableCalcAddressCommandRel"] = "rel"; + // + TableCalcAddressCommandType["TableCalcAddressCommandAbs"] = "abs"; + // + TableCalcAddressCommandType["TableCalcAddressCommandParam"] = "param"; + // + TableCalcAddressCommandType["TableCalcAddressCommandMore"] = "more"; + })(TableCalcAddressCommandType = exports.TableCalcAddressCommandType || (exports.TableCalcAddressCommandType = {})); + // relative addressing + var TableCalcRelativeAddress; + (function (TableCalcRelativeAddress) { + // + TableCalcRelativeAddress["RelAddrFirst"] = "relative-address-first"; + // + TableCalcRelativeAddress["RelAddrPrevious"] = "relative-address-previous"; + // + TableCalcRelativeAddress["RelAddrNext"] = "relative-address-next"; + // + TableCalcRelativeAddress["RelAddrLast"] = "relative-address-last"; + })(TableCalcRelativeAddress = exports.TableCalcRelativeAddress || (exports.TableCalcRelativeAddress = {})); + // + var CategoricalBinItemType; + (function (CategoricalBinItemType) { + // + CategoricalBinItemType["Unbinned"] = "unbinned"; + // + CategoricalBinItemType["BinMember"] = "categorical-bin-member"; + // + CategoricalBinItemType["Bin"] = "categorical-bin"; + })(CategoricalBinItemType = exports.CategoricalBinItemType || (exports.CategoricalBinItemType = {})); + // The class properties + var CredentialTypePropertiesFlag; + (function (CredentialTypePropertiesFlag) { + // + CredentialTypePropertiesFlag["None"] = "none"; + // + CredentialTypePropertiesFlag["GenericAuthClass"] = "generic-auth-class"; + // + CredentialTypePropertiesFlag["ProviderClass"] = "provider-class"; + // + CredentialTypePropertiesFlag["DataConnectionClass"] = "data-connection-class"; + })(CredentialTypePropertiesFlag = exports.CredentialTypePropertiesFlag || (exports.CredentialTypePropertiesFlag = {})); + // The connector type + var ConnectorType; + (function (ConnectorType) { + // + ConnectorType["Invalid"] = "invalid"; + // + ConnectorType["WebDataConnector"] = "web-data-connector"; + // + ConnectorType["CloudFileConnector"] = "cloud-file-connector"; + // + ConnectorType["LegacyConnector"] = "legacy-connector"; + })(ConnectorType = exports.ConnectorType || (exports.ConnectorType = {})); + // + var TablePillIcon; + (function (TablePillIcon) { + // + TablePillIcon["ListItem"] = "list-item"; + // + TablePillIcon["Sheet"] = "sheet"; + // + TablePillIcon["FoundTable"] = "found-table"; + // + TablePillIcon["NamedRange"] = "named-range"; + // + TablePillIcon["StoredProcedure"] = "stored-procedure"; + })(TablePillIcon = exports.TablePillIcon || (exports.TablePillIcon = {})); + // + var JoinValidationError; + (function (JoinValidationError) { + // + JoinValidationError["JVE_NoError"] = "no-error"; + // + JoinValidationError["JVE_EmptyClause"] = "empty-clause"; + // + JoinValidationError["JVE_TypeMismatch"] = "type-mismatch"; + // + JoinValidationError["JVE_InvalidField"] = "invalid-field"; + // + JoinValidationError["JVE_BadClause"] = "bad-clause"; + // + JoinValidationError["JVE_BadInputRelation"] = "bad-input-relation"; + // + JoinValidationError["JVE_RepeatedFieldReferences"] = "repeated-field-references"; + // + JoinValidationError["JVE_UnsupportedJoinType"] = "unsupported-join-type"; + // + JoinValidationError["JVE_InvalidCalculation"] = "invalid-calculation"; + // + JoinValidationError["JVE_NonSpatialType"] = "non-spatial-type"; + // + JoinValidationError["JVE_NonSpatialComparison"] = "non-spatial-comp"; + // + JoinValidationError["JVE_Unknown"] = "unknown"; + })(JoinValidationError = exports.JoinValidationError || (exports.JoinValidationError = {})); + // + var ConnectionTypeEnum; + (function (ConnectionTypeEnum) { + // -d-s is used to force the enum generator to generate DS with capital letters in .cs just like the .cpp + ConnectionTypeEnum["InvalidDS"] = "invalid-d-s"; + // + ConnectionTypeEnum["FileDS"] = "file-d-s"; + // + ConnectionTypeEnum["ServerDS"] = "server-d-s"; + // + ConnectionTypeEnum["InternetDS"] = "internet-d-s"; + // + ConnectionTypeEnum["TableauServerDS"] = "tableau-server-d-s"; + })(ConnectionTypeEnum = exports.ConnectionTypeEnum || (exports.ConnectionTypeEnum = {})); + // + var ConnectionErrorStage; + (function (ConnectionErrorStage) { + // + ConnectionErrorStage["Unknown"] = "unknown"; + // + ConnectionErrorStage["CreateProtocolFailed"] = "create-protocol-failed"; + // + ConnectionErrorStage["LoadMetadataFailed"] = "load-metadata-failed"; + })(ConnectionErrorStage = exports.ConnectionErrorStage || (exports.ConnectionErrorStage = {})); + // + var SetTickOriginResult; + (function (SetTickOriginResult) { + // + SetTickOriginResult["Success"] = "set-tick-origin-success-result"; + // + SetTickOriginResult["ParseFailure"] = "set-tick-origin-parse-failure-result"; + // + SetTickOriginResult["ValueFailure"] = "set-tick-origin-value-failure-result"; + })(SetTickOriginResult = exports.SetTickOriginResult || (exports.SetTickOriginResult = {})); + // + var SetTickSpacingResult; + (function (SetTickSpacingResult) { + // + SetTickSpacingResult["Success"] = "set-tick-spacing-success-result"; + // + SetTickSpacingResult["ParseFailure"] = "set-tick-spacing-parse-failure-result"; + // + SetTickSpacingResult["ValueFailure"] = "set-tick-spacing-value-failure-result"; + })(SetTickSpacingResult = exports.SetTickSpacingResult || (exports.SetTickSpacingResult = {})); + // The result of setting one end of an axis range + var SetAxisRangeResult; + (function (SetAxisRangeResult) { + // + SetAxisRangeResult["Success"] = "set-axis-range-success-result"; + // + SetAxisRangeResult["Failure"] = "set-axis-range-failure-result"; + })(SetAxisRangeResult = exports.SetAxisRangeResult || (exports.SetAxisRangeResult = {})); + // The type of an axis' extent + var AxisExtentType; + (function (AxisExtentType) { + // + AxisExtentType["Automatic"] = "axis-extent-automatic"; + // + AxisExtentType["Uniform"] = "axis-extent-uniform"; + // + AxisExtentType["Independent"] = "axis-extent-independent"; + // + AxisExtentType["Fixed"] = "axis-extent-fixed"; + })(AxisExtentType = exports.AxisExtentType || (exports.AxisExtentType = {})); + // Enumeration of units tick spacing can take + var TickSpacingUnits; + (function (TickSpacingUnits) { + // + TickSpacingUnits["NoUnits"] = "no-units"; + // + TickSpacingUnits["Years"] = "years"; + // + TickSpacingUnits["Quarters"] = "quarters"; + // + TickSpacingUnits["Months"] = "months"; + // + TickSpacingUnits["Weeks"] = "weeks"; + // + TickSpacingUnits["Days"] = "days"; + // + TickSpacingUnits["Hours"] = "hours"; + // + TickSpacingUnits["Minutes"] = "minutes"; + // + TickSpacingUnits["Seconds"] = "seconds"; + })(TickSpacingUnits = exports.TickSpacingUnits || (exports.TickSpacingUnits = {})); + // Enumeration of whether totals are included in or excluded from the color encoding + var TotalsInclusion; + (function (TotalsInclusion) { + // Totals included in color encoding + TotalsInclusion["IncludeTotals"] = "include-totals"; + // Totals excluded from color encoding + TotalsInclusion["ExcludeTotals"] = "exclude-totals"; + })(TotalsInclusion = exports.TotalsInclusion || (exports.TotalsInclusion = {})); + // How tick marks are being calculated + var TickMarkState; + (function (TickMarkState) { + // + TickMarkState["TicksAutomatic"] = "ticks-automatic"; + // + TickMarkState["TicksManual"] = "ticks-manual"; + // + TickMarkState["TicksNone"] = "ticks-None"; + })(TickMarkState = exports.TickMarkState || (exports.TickMarkState = {})); + // Setting for type of axis range + var AxisRangeType; + (function (AxisRangeType) { + // + AxisRangeType["AutomaticRange"] = "automatic-range"; + // + AxisRangeType["UniformRange"] = "uniform-range"; + // + AxisRangeType["IndependentRange"] = "independent-range"; + // + AxisRangeType["FixedRange"] = "fixed-range"; + // + AxisRangeType["FixedMin"] = "fixed-min"; + // + AxisRangeType["FixedMax"] = "fixed-max"; + // + AxisRangeType["FixedMinUniformMax"] = "fixed-min-uniform-max"; + // + AxisRangeType["FixedMinIndependentMax"] = "fixed-min-independent-max"; + // + AxisRangeType["FixedMaxUniformMin"] = "fixed-max-uniform-min"; + // + AxisRangeType["FixedMaxIndependentMin"] = "fixed-max-independent-min"; + // + AxisRangeType["FixedRangeOrdinal"] = "fixed-range-ordinal"; + })(AxisRangeType = exports.AxisRangeType || (exports.AxisRangeType = {})); + // represents type of widget on the toolbar of rich text editor + var RichTextEditorWidgetKey; + (function (RichTextEditorWidgetKey) { + // + RichTextEditorWidgetKey["None"] = "none"; + // + RichTextEditorWidgetKey["FontSize"] = "fontsize"; + // + RichTextEditorWidgetKey["FontName"] = "fontname"; + // + RichTextEditorWidgetKey["FontColor"] = "color"; + // + RichTextEditorWidgetKey["Bold"] = "bold"; + // + RichTextEditorWidgetKey["Italic"] = "italic"; + // + RichTextEditorWidgetKey["Underline"] = "underline"; + // + RichTextEditorWidgetKey["AlignLeft"] = "justifyleft"; + // + RichTextEditorWidgetKey["AlignCenter"] = "justifycenter"; + // + RichTextEditorWidgetKey["AlignRight"] = "justifyright"; + // + RichTextEditorWidgetKey["ClearFormatting"] = "clearformatting"; + // + RichTextEditorWidgetKey["TableauKeywords"] = "tableaukeywords"; + })(RichTextEditorWidgetKey = exports.RichTextEditorWidgetKey || (exports.RichTextEditorWidgetKey = {})); + // + var CellSizeChange; + (function (CellSizeChange) { + // + CellSizeChange["CSC_Taller"] = "taller"; + // + CellSizeChange["CSC_Shorter"] = "shorter"; + // + CellSizeChange["CSC_Wider"] = "wider"; + // + CellSizeChange["CSC_Narrower"] = "narrower"; + // + CellSizeChange["CSC_Bigger"] = "bigger"; + // + CellSizeChange["CSC_Smaller"] = "smaller"; + })(CellSizeChange = exports.CellSizeChange || (exports.CellSizeChange = {})); + // + var CellTypeEnum; + (function (CellTypeEnum) { + // + CellTypeEnum["CLT_Square"] = "square"; + // + CellTypeEnum["CLT_Text"] = "text"; + })(CellTypeEnum = exports.CellTypeEnum || (exports.CellTypeEnum = {})); + // represents type of formatting pres model + var TypeOfFormatItem; + (function (TypeOfFormatItem) { + // + TypeOfFormatItem["FT_FormatItem"] = "formatItem"; + // + TypeOfFormatItem["FT_FormatContainer"] = "formatContainer"; + // + TypeOfFormatItem["FT_FormatControl"] = "formatControl"; + })(TypeOfFormatItem = exports.TypeOfFormatItem || (exports.TypeOfFormatItem = {})); + // represents type of formatting container + var TypeOfFormatContainer; + (function (TypeOfFormatContainer) { + // + TypeOfFormatContainer["FT_FormatPane"] = "formatPane"; + // + TypeOfFormatContainer["FT_FormatSection"] = "formatSection"; + // + TypeOfFormatContainer["FT_CollapsibleSection"] = "collapsibleSection"; + // + TypeOfFormatContainer["FT_CompositeContainer"] = "compositeContainer"; + // + TypeOfFormatContainer["FT_UnitContainer"] = "unitContainer"; + // + TypeOfFormatContainer["FT_Tab"] = "tab"; + // + TypeOfFormatContainer["FT_TabGroup"] = "tabGroup"; + })(TypeOfFormatContainer = exports.TypeOfFormatContainer || (exports.TypeOfFormatContainer = {})); + // represents type of formatting control + var TypeOfFormatControl; + (function (TypeOfFormatControl) { + // + TypeOfFormatControl["FT_None"] = "none"; + // + TypeOfFormatControl["FT_NumericControl"] = "numeric-control"; + // + TypeOfFormatControl["FT_TextControl"] = "text-control"; + // + TypeOfFormatControl["FT_ColorControl"] = "color-control"; + // + TypeOfFormatControl["FT_SelectorControl"] = "selector-control"; + // + TypeOfFormatControl["FT_ToggleControl"] = "toggle-control"; + })(TypeOfFormatControl = exports.TypeOfFormatControl || (exports.TypeOfFormatControl = {})); + // represents type of formatting widget + var FormatWidgetKey; + (function (FormatWidgetKey) { + // + FormatWidgetKey["FWK_None"] = "none"; + // + FormatWidgetKey["FWK_FontFamily"] = "fontFamily"; + // + FormatWidgetKey["FWK_FontSize"] = "fontSize"; + // + FormatWidgetKey["FWK_ColorSwatch"] = "colorSwatch"; + // + FormatWidgetKey["FWK_Bold"] = "bold"; + // + FormatWidgetKey["FWK_Italics"] = "italics"; + // + FormatWidgetKey["FWK_Underline"] = "underline"; + // + FormatWidgetKey["FWK_LineVisibility"] = "lineVisibility"; + // + FormatWidgetKey["FWK_LinePattern"] = "linePattern"; + // + FormatWidgetKey["FWK_LineSize"] = "lineSize"; + // + FormatWidgetKey["FWK_NumberType"] = "numericType"; + // + FormatWidgetKey["FWK_DecimalPlaces"] = "decimalPlaces"; + // + FormatWidgetKey["FWK_ThousandsSeparator"] = "thousandsSeparator"; + // + FormatWidgetKey["FWK_NumericUnits"] = "numericUnits"; + })(FormatWidgetKey = exports.FormatWidgetKey || (exports.FormatWidgetKey = {})); + // represents identifier for each node in format pane + var FormatNodeIdentifier; + (function (FormatNodeIdentifier) { + // + FormatNodeIdentifier["Format_None_Key"] = "none"; + // + FormatNodeIdentifier["Format_Workbook_Key"] = "workbook"; + // + FormatNodeIdentifier["Format_Font_Key"] = "font"; + // + FormatNodeIdentifier["Format_Color_Key"] = "color"; + // + FormatNodeIdentifier["Format_Lines_Key"] = "lines"; + // + FormatNodeIdentifier["Format_FontAll_Key"] = "font-all"; + // + FormatNodeIdentifier["Format_FontAllControls_Key"] = "font-all-controls"; + // + FormatNodeIdentifier["Format_FontMore_Key"] = "font-more"; + // + FormatNodeIdentifier["Format_FontWorksheetTitles_Key"] = "worksheet-titles"; + // + FormatNodeIdentifier["Format_FontToolTip_Key"] = "font-tooltip"; + // + FormatNodeIdentifier["Format_FontWorksheet_Key"] = "font-worksheet"; + // + FormatNodeIdentifier["Format_FontDashTitles_Key"] = "dash-titles"; + // + FormatNodeIdentifier["Format_FontStoryTitles_Key"] = "story-titles"; + // + FormatNodeIdentifier["Format_FontTitlesControls_Key"] = "titles-controls"; + // + FormatNodeIdentifier["Format_FontTooltipControls_Key"] = "tooltip-controls"; + // + FormatNodeIdentifier["Format_FontWorksheetControls_Key"] = "worksheet-controls"; + // + FormatNodeIdentifier["Format_LineMore_Key"] = "line-more"; + // + FormatNodeIdentifier["Format_LineGrid_Key"] = "line-grid"; + // + FormatNodeIdentifier["Format_LineGridTabs_Key"] = "line-grid-tabs"; + // + FormatNodeIdentifier["Format_LineZero_Key"] = "line-zero"; + // + FormatNodeIdentifier["Format_LineZeroTabs_Key"] = "line-zero-tabs"; + // + FormatNodeIdentifier["Format_LineAxisTick_Key"] = "line-axis-tick"; + // + FormatNodeIdentifier["Format_LineAxisTickTabs_Key"] = "line-axis-tick-tabs"; + // + FormatNodeIdentifier["Format_LineAxisRuler_Key"] = "line-axis-ruler"; + // + FormatNodeIdentifier["Format_LineAxisRulerTabs_Key"] = "line-axis-ruler-tabs"; + // + FormatNodeIdentifier["Format_LineHeaderDivider_Key"] = "line-header-divider"; + // + FormatNodeIdentifier["Format_LineHeaderDividerTabs_Key"] = "line-header-divider-tabs"; + // + FormatNodeIdentifier["Format_LinePaneDivider_Key"] = "line-paneDivider"; + // + FormatNodeIdentifier["Format_LinePaneDividerTabs_Key"] = "line-paneDivider-tabs"; + // + FormatNodeIdentifier["Format_LineGridAll_Key"] = "line-grid-all"; + // + FormatNodeIdentifier["Format_LineGridRow_Key"] = "line-grid-row"; + // + FormatNodeIdentifier["Format_LineGridColumn_Key"] = "line-grid-column"; + // + FormatNodeIdentifier["Format_LineZeroAll_Key"] = "line-zero-all"; + // + FormatNodeIdentifier["Format_LineZeroRow_Key"] = "line-zero-row"; + // + FormatNodeIdentifier["Format_LineZeroColumn_Key"] = "line-zero-column"; + // + FormatNodeIdentifier["Format_LineAxisTickAll_Key"] = "line-axis-tick-all"; + // + FormatNodeIdentifier["Format_LineAxisTickRow_Key"] = "line-axis-tick-row"; + // + FormatNodeIdentifier["Format_LineAxisTickColumn_Key"] = "line-axis-tick-column"; + // + FormatNodeIdentifier["Format_LineAxisRulerAll_Key"] = "line-axis-ruler-all"; + // + FormatNodeIdentifier["Format_LineAxisRulerRow_Key"] = "line-axis-ruler-row"; + // + FormatNodeIdentifier["Format_LineAxisRulerColumn_Key"] = "line-axis-ruler-column"; + // + FormatNodeIdentifier["Format_LineReference_Key"] = "line-reference"; + // + FormatNodeIdentifier["Format_LineDrop_Key"] = "line-drop"; + // + FormatNodeIdentifier["Format_LineTrend_Key"] = "line-trend"; + // + FormatNodeIdentifier["Format_LineVisibility_Key"] = "line-visibility"; + // + FormatNodeIdentifier["Format_LinePattern_Key"] = "line-pattern"; + // + FormatNodeIdentifier["Format_LineWidth_Key"] = "line-width"; + // + FormatNodeIdentifier["Format_LineColor_Key"] = "line-color"; + // + FormatNodeIdentifier["Format_TickColor_Key"] = "tick-color"; + // + FormatNodeIdentifier["Format_BorderPattern_Key"] = "border-pattern"; + // + FormatNodeIdentifier["Format_BorderColor_Key"] = "border-color"; + // + FormatNodeIdentifier["Format_DividerColor_Key"] = "divider-color"; + // + FormatNodeIdentifier["Format_FontFamily_Key"] = "font-family-key"; + // + FormatNodeIdentifier["Format_FontSize_Key"] = "font-size-key"; + // + FormatNodeIdentifier["Format_Bold_Key"] = "bold-key"; + // + FormatNodeIdentifier["Format_Italics_Key"] = "italics-key"; + // + FormatNodeIdentifier["Format_Underline_Key"] = "underline-key"; + // + FormatNodeIdentifier["Format_FontColor_Key"] = "font-color-key"; + // + FormatNodeIdentifier["Format_Number_Container_Key"] = "number-container"; + // + FormatNodeIdentifier["Format_Number_Type_Key"] = "number-container-type"; + // + FormatNodeIdentifier["Format_Number_Units_Key"] = "number-container-units"; + // + FormatNodeIdentifier["Format_Number_Decimal_Key"] = "number-container-decimal"; + // + FormatNodeIdentifier["Format_Number_Thousands_Separator_Key"] = "number-container-thousands-separator"; + // + FormatNodeIdentifier["Format_FontPickerMinimal_Key"] = "font-picker-minimal"; + // + FormatNodeIdentifier["Format_FontPickerDefault_Key"] = "font-picker-default"; + // + FormatNodeIdentifier["Format_LinePickerDefault_Key"] = "line-picker-default"; + // + FormatNodeIdentifier["Format_LinePickerNoVis_Key"] = "line-picker-no-visibility"; + // + FormatNodeIdentifier["Format_LineAxisTickPicker_Key"] = "line-axis-tick-picker"; + })(FormatNodeIdentifier = exports.FormatNodeIdentifier || (exports.FormatNodeIdentifier = {})); + // Format prepended to format strings to specify type + var FormatCode; + (function (FormatCode) { + // + FormatCode["AutoFormat"] = "auto-format"; + // + FormatCode["SystemLongDate"] = "system-long-date"; + // + FormatCode["SystemShortDate"] = "system-short-date"; + // + FormatCode["SystemNumber"] = "system-number"; + // + FormatCode["SystemCurrency"] = "system-currency"; + // + FormatCode["SystemTime"] = "system-time"; + // + FormatCode["Custom"] = "custom"; + // + FormatCode["CustomICU"] = "custom-icu"; + // + FormatCode["CustomNumber"] = "custom-number"; + // + FormatCode["CustomCurrency"] = "custom-currency"; + // + FormatCode["CustomScientific"] = "custom-scientific"; + // + FormatCode["CustomPercentage"] = "custom-percentage"; + })(FormatCode = exports.FormatCode || (exports.FormatCode = {})); + // Units specified in a format string + var UnitsFormatEnum; + (function (UnitsFormatEnum) { + // + UnitsFormatEnum["UnitsFmtNone"] = "units-none"; + // + UnitsFormatEnum["UnitsFmtThousands"] = "units-thousands"; + // + UnitsFormatEnum["UnitsFmtMillions"] = "units-millions"; + // + UnitsFormatEnum["UnitsFmtBillionsEnglish"] = "units-billions-english"; + // + UnitsFormatEnum["UnitsFmtBillionsStandard"] = "units-billions-standard"; + })(UnitsFormatEnum = exports.UnitsFormatEnum || (exports.UnitsFormatEnum = {})); + // represents the color swatch that will be used in the ColorControlPresModel + var ColorSwatchType; + (function (ColorSwatchType) { + // + ColorSwatchType["CST_Dark"] = "dark-swatch"; + // + ColorSwatchType["CST_Light"] = "light-swatch"; + })(ColorSwatchType = exports.ColorSwatchType || (exports.ColorSwatchType = {})); + // represents the type of a style picker, affecting the preview rendering and, possibly, the layout + var PickerType; + (function (PickerType) { + // + PickerType["PT_None"] = "none"; + // + PickerType["PT_Font"] = "font"; + // + PickerType["PT_Line"] = "line"; + // + PickerType["PT_Number"] = "number"; + })(PickerType = exports.PickerType || (exports.PickerType = {})); + // + var UpdateScope; + (function (UpdateScope) { + // + UpdateScope["US_Worksheet"] = "worksheet"; + // + UpdateScope["US_Dashboard"] = "dashboard"; + // + UpdateScope["US_QuickFilters"] = "quick-filters"; + // + UpdateScope["US_Story"] = "story"; + })(UpdateScope = exports.UpdateScope || (exports.UpdateScope = {})); + // + var ParameterCtrlTypesDisplayMode; + (function (ParameterCtrlTypesDisplayMode) { + // + ParameterCtrlTypesDisplayMode["MODE_TYPE_IN"] = "type_in"; + // + ParameterCtrlTypesDisplayMode["MODE_COMPACT_LIST"] = "compact"; + // + ParameterCtrlTypesDisplayMode["MODE_LIST"] = "list"; + // + ParameterCtrlTypesDisplayMode["MODE_SLIDER"] = "slider"; + // + ParameterCtrlTypesDisplayMode["MODE_DATETIME"] = "datetime"; + })(ParameterCtrlTypesDisplayMode = exports.ParameterCtrlTypesDisplayMode || (exports.ParameterCtrlTypesDisplayMode = {})); + // flags for display options + var ParameterCtrlTypesDisplayFlag; + (function (ParameterCtrlTypesDisplayFlag) { + // + ParameterCtrlTypesDisplayFlag["DISPLAY_CUSTOM_TITLE"] = "custom_title"; + // + ParameterCtrlTypesDisplayFlag["DISPLAY_HIDE_SLIDER_SLIDER"] = "hide_slider_slider"; + // + ParameterCtrlTypesDisplayFlag["DISPLAY_HIDE_SLIDER_READOUT"] = "hide_slider_readout"; + // + ParameterCtrlTypesDisplayFlag["DISPLAY_HIDE_SLIDER_BUTTONS"] = "hide_slider_buttons"; + })(ParameterCtrlTypesDisplayFlag = exports.ParameterCtrlTypesDisplayFlag || (exports.ParameterCtrlTypesDisplayFlag = {})); + // The follow supports 1024 custom palettes, each with 4m shapes. Encoding is palette << PaletteShift | shape. + var ShapeEncodeConstants; + (function (ShapeEncodeConstants) { + // Shift value for palette + ShapeEncodeConstants["EncodePaletteShift"] = "paletteShift"; + // Mask for getting palette from encoded value. (Then shift down) + ShapeEncodeConstants["EncodePaletteMask"] = "paletteMask"; + // Mask for getting shape from encoded value + ShapeEncodeConstants["EncodeShapeMask"] = "shapeMask"; + })(ShapeEncodeConstants = exports.ShapeEncodeConstants || (exports.ShapeEncodeConstants = {})); + // + var ShapeType; + (function (ShapeType) { + // + ShapeType["ShapeCircle"] = "circle"; + // + ShapeType["ShapeSquare"] = "square"; + // + ShapeType["ShapePlus"] = "plus"; + // + ShapeType["ShapeTimes"] = "times"; + // + ShapeType["ShapeAsterisk"] = "asterisk"; + // + ShapeType["ShapeDiamond"] = "diamond"; + // + ShapeType["ShapeTriangle"] = "triangle"; + // + ShapeType["ShapeDownTriangle"] = "down-triangle"; + // + ShapeType["ShapeLeftTriangle"] = "left-triangle"; + // + ShapeType["ShapeRightTriangle"] = "right-triangle"; + // + ShapeType["MaxAllShapes"] = "invalid"; + })(ShapeType = exports.ShapeType || (exports.ShapeType = {})); + // + var ShapePalette; + (function (ShapePalette) { + // built-in palette + ShapePalette["ShapePaletteFilled"] = "filled"; + // custom palettes + ShapePalette["ShapePaletteCustom1"] = "custom1"; + // + ShapePalette["ShapePaletteCustom2"] = "custom2"; + // + ShapePalette["ShapePaletteCustom3"] = "custom3"; + // + ShapePalette["ShapePaletteCustom4"] = "custom4"; + // + ShapePalette["ShapePaletteCustom5"] = "custom5"; + // + ShapePalette["ShapePaletteCustom6"] = "custom6"; + // + ShapePalette["ShapePaletteCustom7"] = "custom7"; + // + ShapePalette["ShapePaletteCustom8"] = "custom8"; + // + ShapePalette["ShapePaletteCustom9"] = "custom9"; + // + ShapePalette["ShapePaletteCustom10"] = "custom10"; + // + ShapePalette["ShapePaletteCustom11"] = "custom11"; + // and so on... + ShapePalette["ShapePaletteCustom12"] = "custom12"; + // + ShapePalette["ShapePaletteHidden"] = "hidden"; + })(ShapePalette = exports.ShapePalette || (exports.ShapePalette = {})); + // ShapeType and palette mapped into a single value. This enum depends on ShapeType and the implementation of ShapeManager::IntEncode. + var ShapeID; + (function (ShapeID) { + // + ShapeID["ShapeIDCircle"] = "shapeIDCircle"; + // + ShapeID["ShapeIDSquare"] = "shapeIDSquare"; + // + ShapeID["ShapeIDPlus"] = "shapeIDPlus"; + // + ShapeID["ShapeIDTimes"] = "shapeIDTimes"; + // + ShapeID["ShapeIDAsterisk"] = "shapeIDAsterisk"; + // + ShapeID["ShapeIDDiamond"] = "shapeIDDiamond"; + // + ShapeID["ShapeIDTriangle"] = "shapeIDTriangle"; + // + ShapeID["ShapeIDDownTriangle"] = "shapeIDDownTriangle"; + // + ShapeID["ShapeIDLeftTriangle"] = "shapeIDLeftTriangle"; + // + ShapeID["ShapeIDRightTriangle"] = "shapeIDRightTriangle"; + // + ShapeID["ShapeIDFilledCircle"] = "shapeIDFilledCircle"; + // + ShapeID["ShapeIDFilledSquare"] = "shapeIDFilledSquare"; + // + ShapeID["ShapeIDFilledPlus"] = "shapeIDFilledPlus"; + // + ShapeID["ShapeIDFilledTimes"] = "shapeIDFilledTimes"; + // + ShapeID["ShapeIDFilledStar"] = "shapeIDFilledStar"; + // + ShapeID["ShapeIDFilledDiamond"] = "shapeIDFilledDiamond"; + // + ShapeID["ShapeIDFilledTriangle"] = "shapeIDFilledTriangle"; + // + ShapeID["ShapeIDFilledDownTriangle"] = "shapeIDFilledDownTriangle"; + // + ShapeID["ShapeIDFilledLeftTriangle"] = "shapeIDFilledLeftTriangle"; + // + ShapeID["ShapeIDFilledRightTriangle"] = "shapeIDFilledRightTriangle"; + // 0+(ShapePaletteHidden< -1; + }); + // Create a mapping of which index in the data dictionary our columns are in + var columnIndices = columns.map(function (vizDataColumn) { + // The columnIndex is in the same position as the paneIndex + var paneIndex = vizDataColumn.paneIndices.indexOf(i); + var columnIndex = vizDataColumn.columnIndices[paneIndex]; + return columnIndex; + }); + // Get the data for the pane we are processing + var vizPane = vizData.paneColumnsData.paneColumnsList[i]; + if (vizPane.vizPaneColumns.length !== columns.length) { + throw new Error('Malformed data table'); + } + var headers = new Array(); + var rows = new Array(); + // Column 0 will be the tuple id column. We can use this as a counter for how many rows we have + var tupleIds = vizPane.vizPaneColumns[0].tupleIds; + var marks = new Array(); + for (var tupleIndex = 0; tupleIndex < tupleIds.length; tupleIndex++) { + // TODO Need to revaluate the place of this logic. If it turns out that we need a separate command + // call to get the marks info, then this logic should not be here but instead in a layer above somewhere + var mark = { + type: api_internal_contract_1.MarkType.Bar, + color: 'red', + tupleId: tupleIds[tupleIndex], + }; + marks.push(mark); + // We will have 1 less value in this row since there's the tupleId column + var cells = new Array(vizPane.vizPaneColumns.length - 1); + for (var j = 1 /* skip the first which is tuple ids */; j < vizPane.vizPaneColumns.length; j++) { + // Next, we need to figure out which column we are reading data for + var column = columns[columnIndices[j]]; + var vizPaneColumnData = vizPane.vizPaneColumns[j]; + // Define the header when we are processing the first row + if (tupleIndex === 0) { + var header = { + dataType: EnumMappings_1.PresLayerToApiEnumMappings.dataType.convert(column.dataType), + fieldName: column.fn, + isReferenced: true, + index: j - 1, + fieldCaption: column.fieldCaption + }; + headers.push(header); + } + var value = UnderlyingDataConverter_1.UnderlyingDataConverter.lookupValueFromDictionary(dataDictionary, column.dataType, vizPaneColumnData.valueIndices[tupleIndex]); + var aliasValue = UnderlyingDataConverter_1.UnderlyingDataConverter.lookupValueFromDictionary(dataDictionary, column.dataType, vizPaneColumnData.aliasIndices[tupleIndex]) || ''; + var formattedValue = aliasValue; // TODO - Figure out how to use the formatStrings + var dataCell = { + value: value, + formattedValue: formattedValue, + aliasedValue: aliasValue + }; + // Add our cell to this row + cells[j - 1] = dataCell; + } + rows.push(cells); + } + var dataTable = { + dataTable: rows, + headers: headers, + marks: marks + }; + result.push(dataTable); + }; + // The data model for the VizDataPresModel is a little strange, so this parsing takes some time to figure out. + // There can be multiple panes of data, so we must go through them one at a time to create data tables + for (var i = 0; i < vizData.paneColumnsData.paneColumnsList.length; i++) { + _loop_1(i); + } + return result; + }; + return ActiveMarksDataConverter; + }()); + exports.ActiveMarksDataConverter = ActiveMarksDataConverter; + + +/***/ }, +/* 25 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var Enums = __webpack_require__(22); + var EnumMappings_1 = __webpack_require__(21); + /** + * Contains static helper methods for converting from an underlying data pres model into the api representation. + * Most of the code is a direct port from ApiUnderlyingDataHandler.cs + * https://opengrok/source/xref/teams_near/workgroup/vqlweb/scriptsharp/src/UI/Api/ApiUnderlyingDataHandler.cs + */ + var UnderlyingDataConverter = (function () { + function UnderlyingDataConverter() { + } + UnderlyingDataConverter.lookupValueFromDictionary = function (dataDictionary, dt, index) { + if (index < 0) { + // per cl 280396 / bugzid 81197 negative data value index means that it is special + dt = Enums.DataType.DT_STRING; + index = -index - 1; + } + var result = null; + var rawValue = UnderlyingDataConverter.getRawValue(dataDictionary, dt, index); + if (rawValue !== null) { + result = rawValue.toString(); + } + return result; + }; + /* tslint:disable-next-line:no-any */ + UnderlyingDataConverter.getRawValue = function (dataDictionary, dt, index) { + if (!dataDictionary.dataSegments) { + return null; + } + for (var _i = 0, _a = Object.keys(dataDictionary.dataSegments); _i < _a.length; _i++) { + var key = _a[_i]; + var dataSegment = dataDictionary.dataSegments[key]; + for (var _b = 0, _c = dataSegment.dataColumns; _b < _c.length; _b++) { + var dataColumn = _c[_b]; + if (!dataColumn || dataColumn.dataType !== dt) { + continue; + } + if (index < dataColumn.dataValues.length) { + return dataColumn.dataValues[index]; + } + index -= dataColumn.dataValues.length; + break; + } + } + return null; + }; + UnderlyingDataConverter.buildDataTable = function (dataDictionary, columns) { + var result = { + dataTable: UnderlyingDataConverter.buildTable(dataDictionary, columns), + headers: columns.map(function (c, i) { return UnderlyingDataConverter.buildColumnModel(c, i); }) + }; + return result; + }; + UnderlyingDataConverter.buildUnderlyingDataTable = function (isSummary, underlyingDataTable) { + var result = { + data: UnderlyingDataConverter.buildDataTable(underlyingDataTable.dataDictionary, underlyingDataTable.underlyingDataTableColumns), + isSummary: isSummary + }; + return result; + }; + UnderlyingDataConverter.buildActiveMarksTable = function (dataDictionary, vizData) { + throw new Error(); + }; + UnderlyingDataConverter.buildColumnModel = function (column, index) { + return { + dataType: EnumMappings_1.PresLayerToApiEnumMappings.dataType.convert(column.dataType), + fieldName: column.fn, + fieldCaption: column.fieldCaption, + isReferenced: !!column.isReferenced, + index: index + }; + }; + UnderlyingDataConverter.buildTable = function (dataDictionary, columns) { + if (columns.length === 0) { + return new Array(); + } + var rowCount = columns[0].formatValIdxs.length; + var columnCount = columns.length; + var result = new Array(rowCount); + // Initialize all of our rows + for (var rowIndex = 0; rowIndex < rowCount; rowIndex++) { + result[rowIndex] = new Array(columnCount); + } + // Go through column-by-column and convert the values + for (var columnIndex = 0; columnIndex < columnCount; columnIndex++) { + var column = columns[columnIndex]; + for (var rowIndex = 0; rowIndex < rowCount; rowIndex++) { + var formattedValue = UnderlyingDataConverter.lookupValueFromDictionary(dataDictionary, Enums.DataType.DT_STRING, column.formatValIdxs[rowIndex]); + if (formattedValue === null) { + throw new Error('formattedValue was null'); + } + var value = { + value: UnderlyingDataConverter.lookupValueFromDictionary(dataDictionary, column.dataType, column.valueIndices[rowIndex]), + formattedValue: formattedValue, + aliasedValue: formattedValue + }; + result[rowIndex][columnIndex] = value; + } + } + return result; + }; + return UnderlyingDataConverter; + }()); + exports.UnderlyingDataConverter = UnderlyingDataConverter; + + +/***/ }, +/* 26 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var EnumMappings_1 = __webpack_require__(21); + /** + * Class containing helper methods for converting from ApiPresModels to their PresLayer equivalents + * + * @export + * @class ApiToPresLayerConverter + */ + var ApiToPresLayerConverter = (function () { + function ApiToPresLayerConverter() { + } + ApiToPresLayerConverter.convertSheetPath = function (apiSheetPath) { + if (!apiSheetPath) { + throw new Error('sheetPath not defined'); + } + var result = { + sheetName: apiSheetPath.sheetName, + isDashboard: apiSheetPath.isDashboard, + storyboard: apiSheetPath.storyboard || '', + flipboardZoneId: apiSheetPath.flipboardZoneID || 0, + storyPointId: apiSheetPath.storyPointID || 0, + }; + return result; + }; + ApiToPresLayerConverter.convertExtensionLocator = function (apiExtensionLocator) { + var result = { + addInInstanceId: apiExtensionLocator.instanceId, + sheetPath: ApiToPresLayerConverter.convertSheetPath(apiExtensionLocator.dashboardPath) + }; + return result; + }; + ApiToPresLayerConverter.convertVisualId = function (apiVisualid) { + var result = { + worksheet: apiVisualid.worksheet, + dashboard: apiVisualid.dashboard, + storyboard: apiVisualid.storyboard, + storyPointId: apiVisualid.storyPointID, + flipboardZoneId: apiVisualid.flipboardZoneID + }; + return result; + }; + ApiToPresLayerConverter.convertVisualIdToWorksheet = function (apiVisualId) { + return apiVisualId.worksheet; + }; + ApiToPresLayerConverter.convertVisualIdToDashboard = function (apiVisualId) { + return apiVisualId.dashboard || ''; + }; + ApiToPresLayerConverter.convertFilterValues = function (filterValues) { + if (filterValues.length === 0) { + // platform code expects an empty string for clearing filter values + return ['']; + } + return filterValues; + }; + ApiToPresLayerConverter.convertFilterType = function (filterUpdateType) { + return EnumMappings_1.ApiToPresLayerEnumMappings.filterUpdateType.convert(filterUpdateType); + }; + ApiToPresLayerConverter.ConvertNullOption = function (nullOption) { + return EnumMappings_1.ApiToPresLayerEnumMappings.nullOption.convert(nullOption); + }; + ApiToPresLayerConverter.ConvertFilterDomainType = function (filterDomainType) { + return EnumMappings_1.ApiToPresLayerEnumMappings.filterDomainType.convert(filterDomainType); + }; + return ApiToPresLayerConverter; + }()); + exports.ApiToPresLayerConverter = ApiToPresLayerConverter; + + +/***/ }, +/* 27 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_internal_contract_1 = __webpack_require__(4); + var Enums_1 = __webpack_require__(22); + var EnumMappings_1 = __webpack_require__(21); + var PresLayerToApiConverter_1 = __webpack_require__(17); + var FiltersConverter = (function () { + function FiltersConverter() { + } + FiltersConverter.convertFiltersPresModel = function (filterPms) { + var filters = []; + filterPms.forEach(function (filterPm) { + switch (filterPm.filterType) { + case Enums_1.FilterType.FLTR_Categorical: { + filters.push(FiltersConverter.convertCategoricalFilterPresModel(filterPm)); + break; + } + case Enums_1.FilterType.FLTR_Quantitative: { + filters.push(FiltersConverter.convertQuantitativeFilterPresModel(filterPm)); + break; + } + case Enums_1.FilterType.FLTR_RelativeDate: { + filters.push(FiltersConverter.convertRelativeDateFilterPresModel(filterPm)); + break; + } + default: + return; + } + }); + return filters; + }; + FiltersConverter.convertCategoricalFilterPresModel = function (filterPm) { + var selectedValues = filterPm.categoricalFilterInfo.captionedFilterValueList.map(function (filterValue) { + return FiltersConverter.convertFilterValuePresModel(filterValue); + }); + var filter = { + values: selectedValues, + isExclude: filterPm.categoricalFilterInfo.exclude, + filterType: api_internal_contract_1.FilterType.Categorical, + fieldCaption: filterPm.fieldCaption, + fieldName: filterPm.fn, + visualId: PresLayerToApiConverter_1.PresLayerToApiConverter.convertVisualId(filterPm.visualIdPresModel) + }; + return filter; + }; + FiltersConverter.convertQuantitativeFilterPresModel = function (filterPm) { + var minValue = FiltersConverter.convertFilterValuePresModel(filterPm.quantitativeFilterInfo.captionedRangeMin); + var maxValue = FiltersConverter.convertFilterValuePresModel(filterPm.quantitativeFilterInfo.captionedRangeMax); + var filter = { + filterType: api_internal_contract_1.FilterType.Range, + fieldCaption: filterPm.fieldCaption, + fieldName: filterPm.fn, + visualId: PresLayerToApiConverter_1.PresLayerToApiConverter.convertVisualId(filterPm.visualIdPresModel), + min: minValue, + max: maxValue, + includeNullValues: FiltersConverter.convertIncludedNullValues(filterPm.quantitativeFilterInfo.included) + }; + return filter; + }; + FiltersConverter.convertRelativeDateFilterPresModel = function (filterPm) { + var anchorDateValue = FiltersConverter.convertFilterValuePresModel(filterPm.relativeDateFilterInfo.captionedAnchorDate); + var filter = { + filterType: api_internal_contract_1.FilterType.RelativeDate, + fieldCaption: filterPm.fieldCaption, + fieldName: filterPm.fn, + visualId: PresLayerToApiConverter_1.PresLayerToApiConverter.convertVisualId(filterPm.visualIdPresModel), + anchorDate: anchorDateValue, + periodType: EnumMappings_1.PresLayerToApiEnumMappings.dateStepPeriod.convert(filterPm.relativeDateFilterInfo.datePeriodType), + rangeType: EnumMappings_1.PresLayerToApiEnumMappings.dateRangeType.convert(filterPm.relativeDateFilterInfo.dateRangeType), + rangeN: filterPm.relativeDateFilterInfo.rangeN + }; + return filter; + }; + FiltersConverter.convertCategoricalDomain = function (domainPm) { + var domainValues = domainPm.captionedFilterValueList.map(function (filterValue) { + return FiltersConverter.convertFilterValuePresModel(filterValue); + }); + return { values: domainValues }; + }; + FiltersConverter.convertQuantitativeDomain = function (domainPm) { + var minValue = FiltersConverter.convertFilterValuePresModel(domainPm.captionedRangeMin); + var maxValue = FiltersConverter.convertFilterValuePresModel(domainPm.captionedRangeMax); + return { + max: maxValue, + min: minValue + }; + }; + FiltersConverter.convertFilterValuePresModel = function (dvPM) { + /*tslint:disable-next-line:no-any */ + var value; + switch (dvPM.dataType) { + case Enums_1.DataType.DT_BOOLEAN: { + value = Boolean(dvPM.dataValueStr); + break; + } + case Enums_1.DataType.DT_DATE: { + value = new Date(dvPM.dataValueStr); + break; + } + case Enums_1.DataType.DT_DATETIME: { + value = new Date(dvPM.dataValueStr); + break; + } + case Enums_1.DataType.DT_INTEGER: { + value = Number.parseInt(dvPM.dataValueStr); + break; + } + case Enums_1.DataType.DT_REAL: { + value = Number.parseFloat(dvPM.dataValueStr); + break; + } + // default to string + default: { + value = dvPM.dataValueStr; + break; + } + } + return { + value: value, + // TODO: no easy way of getting back aliased value from platform, will need to investigate further + aliasedValue: '', + formattedValue: dvPM.dataValueDisplayString + }; + }; + FiltersConverter.convertIncludedNullValues = function (includeNull) { + return (includeNull === Enums_1.FiltersQuantitativeIncludedValues.InRangeOrNull || + includeNull === Enums_1.FiltersQuantitativeIncludedValues.All || + includeNull === Enums_1.FiltersQuantitativeIncludedValues.Null); + }; + return FiltersConverter; + }()); + exports.FiltersConverter = FiltersConverter; + + +/***/ }, +/* 28 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * Simple registry class which creates a mapping based on two keys. + * + * @export + * @class MappingRegistry + * @template TInputEnumType + * @template TOutputEnumType + * @template TMappingStorageType + */ + var MappingRegistry = (function () { + function MappingRegistry() { + this._registry = {}; + } + MappingRegistry.prototype.has = function (inputType, outputType) { + var key = this.makeKey(inputType, outputType); + if (!this._registry.hasOwnProperty(key)) { + return false; + } + if (!this._registry[key]) { + return false; + } + return true; + }; + MappingRegistry.prototype.get = function (inputType, outputType) { + if (!this.has(inputType, outputType)) { + throw new Error('Missing requested mapping: ' + inputType + ' to ' + outputType); + } + var key = this.makeKey(inputType, outputType); + return this._registry[key]; + }; + MappingRegistry.prototype.addRegistration = function (inputType, outputType, storageItem) { + var key = this.makeKey(inputType, outputType); + // Add this item + this._registry[key] = storageItem; + }; + /** + * Combines the two keys into a unique string + * + * @private + * @param {TInputEnumType} inputType + * @param {TOutputEnumType} outputType + * @returns {string} + * @memberof MappingRegistry + */ + MappingRegistry.prototype.makeKey = function (inputType, outputType) { + var keyObj = { input: inputType, output: outputType }; + return JSON.stringify(keyObj); + }; + return MappingRegistry; + }()); + exports.MappingRegistry = MappingRegistry; + + +/***/ }, +/* 29 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_internal_contract_1 = __webpack_require__(4); + var EnumMappings_1 = __webpack_require__(21); + /** + * Contains logic for converting Parameter models into their equivalent Api versions + */ + var ParametersDataConverter = (function () { + function ParametersDataConverter() { + } + ParametersDataConverter.convertParameterList = function (parameters) { + return parameters.map(ParametersDataConverter.convertParameter); + }; + // Converts a single parameter. + // Rough port of https://opengrok/source/xref/dev_nessie/workgroup/vqlweb/scriptsharp/src/UI/Api/ApiParameterHandler.cs#95 + ParametersDataConverter.convertParameter = function (param) { + var currentValue = ParametersDataConverter.convertAliasedDataValue(param.valueAlias, param.formattedValue); + var allowableValuesType = EnumMappings_1.PresLayerToApiEnumMappings.parameterTypesDomainType.convert(param.parameterDomainType); + var result = { + name: param.fieldCaption, + fieldName: param.parameterName, + dataType: EnumMappings_1.PresLayerToApiEnumMappings.dataType.convert(param.dataType), + currentValue: currentValue, + allowableValuesType: allowableValuesType + }; + if (allowableValuesType === api_internal_contract_1.DomainRestrictionType.List) { + var allowableValues = new Array(); + for (var i = 0; i < param.valuesAliases.length; i++) { + var adv = param.valuesAliases[i]; + var formattedValue = param.formattedValues[i]; + allowableValues.push(ParametersDataConverter.convertAliasedDataValue(adv, formattedValue)); + } + result.allowableValues = allowableValues; + } + else if (allowableValuesType === api_internal_contract_1.DomainRestrictionType.Range) { + result.minValue = ParametersDataConverter.makeDataValue(param.valueMin, param.formattedMin); + result.maxValue = ParametersDataConverter.makeDataValue(param.valueMax, param.formattedMax); + result.stepSize = ParametersDataConverter.convertNumber(result.dataType, param.valueInc); + result.dateStepPeriod = EnumMappings_1.PresLayerToApiEnumMappings.dateStepPeriod.convert(param.datePeriodType, false); + } + else { + // Nothing to do in the case that all values are allowed + } + return result; + }; + ParametersDataConverter.convertNumber = function (dataType, value) { + if (value) { + if (dataType === api_internal_contract_1.DataType.Int || dataType === api_internal_contract_1.DataType.Date || dataType === api_internal_contract_1.DataType.DateTime) { + return parseInt(value, 10); + } + else if (dataType === api_internal_contract_1.DataType.Float) { + return parseFloat(value); + } + } + return undefined; + }; + /*tslint:disable-next-line:no-any */ + ParametersDataConverter.makeDataValue = function (value, formattedValue, alias) { + var result = { + value: value, + formattedValue: formattedValue, + aliasedValue: alias || formattedValue + }; + return result; + }; + /*tslint:disable-next-line:no-any */ + ParametersDataConverter.convertAliasedDataValue = function (adv, formattedValue) { + // AliasedDataValues are serialized in kind of a strange way from the platform code. They are output + // as an array of 2 values. The first is the actual value, the second is the alias. See AliasedDataValueSerializer::ToSerializer + if (!adv || !(adv instanceof Array)) { + throw new Error('Invalid aliased data value'); + } + var value = adv[0]; + var alias = adv.length < 2 ? undefined : adv[1]; + return ParametersDataConverter.makeDataValue(value, formattedValue, alias); + }; + return ParametersDataConverter; + }()); + exports.ParametersDataConverter = ParametersDataConverter; + + +/***/ }, +/* 30 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /** + * This is your main. This is where you re-export everything you want to be publicly available. + * + * The build enforces that the file has the same name as the global variable that is exported. + */ + function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; + } + Object.defineProperty(exports, "__esModule", { value: true }); + __export(__webpack_require__(5)); + __export(__webpack_require__(6)); + __export(__webpack_require__(7)); + __export(__webpack_require__(8)); + __export(__webpack_require__(9)); + + +/***/ }, +/* 31 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * Implemenation of the PresentationLayer contract with a bit of extra information + * added to work with add-ins. Most work is delegated down to the interopObject which + * communicates directly with the c++ layer via QWebChannel + * + * @class AddInApiPresLayerImpl + * @implements {contract.PresentationLayer} + */ + var AddInApiPresLayerImpl = (function () { + function AddInApiPresLayerImpl(_interopObject) { + var _this = this; + this._interopObject = _interopObject; + this._notificationHandlers = {}; + if (_interopObject && _interopObject.OnNotification) { + _interopObject.OnNotification.connect(function (notification) { + _this.dispatchNotification(notification); + }); + } + } + Object.defineProperty(AddInApiPresLayerImpl.prototype, "AddInInstanceInfo", { + /** + * Gets the instance info for this particular add-in from the c++ code + * + * @readonly + * @type {AddInInstancePresModel} + * @memberof AddInApiPresLayerImpl + */ + get: function () { + return this._interopObject.addInInstanceInfo; + }, + enumerable: true, + configurable: true + }); + /** + * Invokes a command using the pres-layer interop + * + * @template T - The expected return type + * @param {string} commandNamespace + * @param {string} commandName + * @param {object} params + * @returns {Promise} + * @memberof AddInApiPresLayerImpl + */ + AddInApiPresLayerImpl.prototype.invokeCommand = function (commandNamespace, commandName, params) { + var _this = this; + return new Promise(function (resolve, reject) { + try { + commandNamespace = commandNamespace || 'tabdoc'; + _this._interopObject.ExecuteCommand(commandNamespace, commandName, params, function (response) { + if (!response.Success) { + var msg = 'ExecuteCommand failed, with result:' + JSON.stringify(response.Result); + reject(new Error(msg)); + } + else { + resolve(response.Result); + } + }); + } + catch (err) { + reject(err); + } + }); + }; + // This implementation will registration a single instance of a notification handler with the Native C++ object, + // and implement multi-dispatch to the web objects from h.ere + AddInApiPresLayerImpl.prototype.registerNotificationHandler = function (eventId, handler) { + var _this = this; + if (eventId in this._notificationHandlers) { + this._notificationHandlers[eventId].push(handler); + } + else { + this._notificationHandlers[eventId] = [handler]; + try { + this._interopObject.RegisterNotificationHandler(eventId); + } + catch (err) { + // console.log('RegisterNotificationHandler failed: ' + err); + } + } + return function () { return _this.removeNotificationHandler(eventId, handler); }; + }; + AddInApiPresLayerImpl.prototype.removeNotificationHandler = function (eventId, handler) { + var handlerList = this._notificationHandlers[eventId]; + if (!handlerList) { + return; + } + var foundIndex = handlerList.indexOf(handler); + if (foundIndex >= 0) { + handlerList.splice(foundIndex, 1); + } + if (handlerList.length === 0) { + delete this._notificationHandlers[eventId]; + } + }; + AddInApiPresLayerImpl.prototype.dispatchNotification = function (notification) { + // console.log('received notification: ' + JSON.stringify(notification)); + var eventId = notification.eventId; + var presModel = notification.presModel; + if (eventId in this._notificationHandlers) { + var handlers = this._notificationHandlers[eventId]; + for (var i = handlers.length - 1; i >= 0; i--) { + handlers[i](presModel); + } + } + }; + return AddInApiPresLayerImpl; + }()); + exports.AddInApiPresLayerImpl = AddInApiPresLayerImpl; + + +/***/ }, +/* 32 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * Implementation of the InternalApiDispatcher for desktop. Since this will run in the same + * frame as the ApiEventHandler, this class mostly just marshalls down to that implementation + * + * @export + * @class DesktopApiDispatcher + * @implements {InternalApiDispatcher} + */ + var DesktopApiDispatcher = (function () { + function DesktopApiDispatcher(_apiEventHandler) { + var _this = this; + this._apiEventHandler = _apiEventHandler; + this._notificationHandlers = []; + this._apiEventHandler.setEventHandler(function (notificationId, model) { + _this._notificationHandlers.forEach(function (handler) { return handler({ + notificationId: notificationId, + data: model + }); }); + }); + } + DesktopApiDispatcher.prototype.setVersionNumber = function (versionNumber) { + this._apiEventHandler.setVersionNumber(versionNumber); + }; + DesktopApiDispatcher.prototype.execute = function (verb, parameters) { + // Just pass this right through to the ApiEventHandler + return this._apiEventHandler.execute(verb, parameters); + }; + DesktopApiDispatcher.prototype.registerNotificationHandler = function (handler) { + this._notificationHandlers.push(handler); + }; + DesktopApiDispatcher.prototype.unregisterNotificationHandler = function (handler) { + this._notificationHandlers = this._notificationHandlers.filter(function (h) { return h !== handler; }); + }; + return DesktopApiDispatcher; + }()); + exports.DesktopApiDispatcher = DesktopApiDispatcher; + + +/***/ }, +/* 33 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + __webpack_require__(34); + var qwebchannel_1 = __webpack_require__(35); + /** + * Initializes the QWebChannel contract and returns the pres layer interop object + * + * @returns {Promise} + */ + function initializeWebChannelPresLayer() { + return new Promise(function (resolve, reject) { + try { + // tslint:disable-next-line + new qwebchannel_1.QWebChannel(qt.webChannelTransport, function (channel) { + // tslint:disable-next-line + var addInPresLayer = channel.objects['addInPresLayer']; + resolve(addInPresLayer); + }); + } + catch (e) { + reject(e); + } + }); + } + exports.initializeWebChannelPresLayer = initializeWebChannelPresLayer; + + +/***/ }, +/* 34 */ +/***/ function(module, exports) { + + + +/***/ }, +/* 35 */ +/***/ function(module, exports, __webpack_require__) { + + /**************************************************************************** + ** + ** Copyright (C) 2015 The Qt Company Ltd. + ** Copyright (C) 2014 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Milian Wolff + ** Contact: http://www.qt.io/licensing/ + ** + ** This file is part of the QtWebChannel module of the Qt Toolkit. + ** + ** $QT_BEGIN_LICENSE:LGPL21$ + ** Commercial License Usage + ** Licensees holding valid commercial Qt licenses may use this file in + ** accordance with the commercial license agreement provided with the + ** Software or, alternatively, in accordance with the terms contained in + ** a written agreement between you and The Qt Company. For licensing terms + ** and conditions see http://www.qt.io/terms-conditions. For further + ** information use the contact form at http://www.qt.io/contact-us. + ** + ** GNU Lesser General Public License Usage + ** Alternatively, this file may be used under the terms of the GNU Lesser + ** General Public License version 2.1 or version 3 as published by the Free + ** Software Foundation and appearing in the file LICENSE.LGPLv21 and + ** LICENSE.LGPLv3 included in the packaging of this file. Please review the + ** following information to ensure the GNU Lesser General Public License + ** requirements will be met: https://www.gnu.org/licenses/lgpl.html and + ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. + ** + ** As a special exception, The Qt Company gives you certain additional + ** rights. These rights are described in The Qt Company LGPL Exception + ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. + ** + ** $QT_END_LICENSE$ + ** + ****************************************************************************/ + + "use strict"; + + var QWebChannelMessageTypes = { + signal: 1, + propertyUpdate: 2, + init: 3, + idle: 4, + debug: 5, + invokeMethod: 6, + connectToSignal: 7, + disconnectFromSignal: 8, + setProperty: 9, + response: 10, + }; + + var QWebChannel = function(transport, initCallback) + { + if (typeof transport !== "object" || typeof transport.send !== "function") { + console.error("The QWebChannel expects a transport object with a send function and onmessage callback property." + + " Given is: transport: " + typeof(transport) + ", transport.send: " + typeof(transport.send)); + return; + } + + var channel = this; + this.transport = transport; + + this.send = function(data) + { + if (typeof(data) !== "string") { + data = JSON.stringify(data); + } + channel.transport.send(data); + } + + this.transport.onmessage = function(message) + { + var data = message.data; + if (typeof data === "string") { + data = JSON.parse(data); + } + switch (data.type) { + case QWebChannelMessageTypes.signal: + channel.handleSignal(data); + break; + case QWebChannelMessageTypes.response: + channel.handleResponse(data); + break; + case QWebChannelMessageTypes.propertyUpdate: + channel.handlePropertyUpdate(data); + break; + default: + console.error("invalid message received:", message.data); + break; + } + } + + this.execCallbacks = {}; + this.execId = 0; + this.exec = function(data, callback) + { + if (!callback) { + // if no callback is given, send directly + channel.send(data); + return; + } + if (channel.execId === Number.MAX_VALUE) { + // wrap + channel.execId = Number.MIN_VALUE; + } + if (data.hasOwnProperty("id")) { + console.error("Cannot exec message with property id: " + JSON.stringify(data)); + return; + } + data.id = channel.execId++; + channel.execCallbacks[data.id] = callback; + channel.send(data); + }; + + this.objects = {}; + + this.handleSignal = function(message) + { + var object = channel.objects[message.object]; + if (object) { + object.signalEmitted(message.signal, message.args); + } else { + console.warn("Unhandled signal: " + message.object + "::" + message.signal); + } + } + + this.handleResponse = function(message) + { + if (!message.hasOwnProperty("id")) { + console.error("Invalid response message received: ", JSON.stringify(message)); + return; + } + channel.execCallbacks[message.id](message.data); + delete channel.execCallbacks[message.id]; + } + + this.handlePropertyUpdate = function(message) + { + for (var i in message.data) { + var data = message.data[i]; + var object = channel.objects[data.object]; + if (object) { + object.propertyUpdate(data.signals, data.properties); + } else { + console.warn("Unhandled property update: " + data.object + "::" + data.signal); + } + } + channel.exec({type: QWebChannelMessageTypes.idle}); + } + + this.debug = function(message) + { + channel.send({type: QWebChannelMessageTypes.debug, data: message}); + }; + + channel.exec({type: QWebChannelMessageTypes.init}, function(data) { + for (var objectName in data) { + var object = new QObject(objectName, data[objectName], channel); + } + // now unwrap properties, which might reference other registered objects + for (var objectName in channel.objects) { + channel.objects[objectName].unwrapProperties(); + } + if (initCallback) { + initCallback(channel); + } + channel.exec({type: QWebChannelMessageTypes.idle}); + }); + }; + + function QObject(name, data, webChannel) + { + this.__id__ = name; + webChannel.objects[name] = this; + + // List of callbacks that get invoked upon signal emission + this.__objectSignals__ = {}; + + // Cache of all properties, updated when a notify signal is emitted + this.__propertyCache__ = {}; + + var object = this; + + // ---------------------------------------------------------------------- + + this.unwrapQObject = function(response) + { + if (response instanceof Array) { + // support list of objects + var ret = new Array(response.length); + for (var i = 0; i < response.length; ++i) { + ret[i] = object.unwrapQObject(response[i]); + } + return ret; + } + if (!response + || !response["__QObject*__"] + || response["id"] === undefined) { + return response; + } + + var objectId = response.id; + if (webChannel.objects[objectId]) + return webChannel.objects[objectId]; + + if (!response.data) { + console.error("Cannot unwrap unknown QObject " + objectId + " without data."); + return; + } + + var qObject = new QObject( objectId, response.data, webChannel ); + qObject.destroyed.connect(function() { + if (webChannel.objects[objectId] === qObject) { + delete webChannel.objects[objectId]; + // reset the now deleted QObject to an empty {} object + // just assigning {} though would not have the desired effect, but the + // below also ensures all external references will see the empty map + // NOTE: this detour is necessary to workaround QTBUG-40021 + var propertyNames = []; + for (var propertyName in qObject) { + propertyNames.push(propertyName); + } + for (var idx in propertyNames) { + delete qObject[propertyNames[idx]]; + } + } + }); + // here we are already initialized, and thus must directly unwrap the properties + qObject.unwrapProperties(); + return qObject; + } + + this.unwrapProperties = function() + { + for (var propertyIdx in object.__propertyCache__) { + object.__propertyCache__[propertyIdx] = object.unwrapQObject(object.__propertyCache__[propertyIdx]); + } + } + + function addSignal(signalData, isPropertyNotifySignal) + { + var signalName = signalData[0]; + var signalIndex = signalData[1]; + object[signalName] = { + connect: function(callback) { + if (typeof(callback) !== "function") { + console.error("Bad callback given to connect to signal " + signalName); + return; + } + + object.__objectSignals__[signalIndex] = object.__objectSignals__[signalIndex] || []; + object.__objectSignals__[signalIndex].push(callback); + + if (!isPropertyNotifySignal && signalName !== "destroyed") { + // only required for "pure" signals, handled separately for properties in propertyUpdate + // also note that we always get notified about the destroyed signal + webChannel.exec({ + type: QWebChannelMessageTypes.connectToSignal, + object: object.__id__, + signal: signalIndex + }); + } + }, + disconnect: function(callback) { + if (typeof(callback) !== "function") { + console.error("Bad callback given to disconnect from signal " + signalName); + return; + } + object.__objectSignals__[signalIndex] = object.__objectSignals__[signalIndex] || []; + var idx = object.__objectSignals__[signalIndex].indexOf(callback); + if (idx === -1) { + console.error("Cannot find connection of signal " + signalName + " to " + callback.name); + return; + } + object.__objectSignals__[signalIndex].splice(idx, 1); + if (!isPropertyNotifySignal && object.__objectSignals__[signalIndex].length === 0) { + // only required for "pure" signals, handled separately for properties in propertyUpdate + webChannel.exec({ + type: QWebChannelMessageTypes.disconnectFromSignal, + object: object.__id__, + signal: signalIndex + }); + } + } + }; + } + + /** + * Invokes all callbacks for the given signalname. Also works for property notify callbacks. + */ + function invokeSignalCallbacks(signalName, signalArgs) + { + var connections = object.__objectSignals__[signalName]; + if (connections) { + connections.forEach(function(callback) { + callback.apply(callback, signalArgs); + }); + } + } + + this.propertyUpdate = function(signals, propertyMap) + { + // update property cache + for (var propertyIndex in propertyMap) { + var propertyValue = propertyMap[propertyIndex]; + object.__propertyCache__[propertyIndex] = propertyValue; + } + + for (var signalName in signals) { + // Invoke all callbacks, as signalEmitted() does not. This ensures the + // property cache is updated before the callbacks are invoked. + invokeSignalCallbacks(signalName, signals[signalName]); + } + } + + this.signalEmitted = function(signalName, signalArgs) + { + invokeSignalCallbacks(signalName, signalArgs); + } + + function addMethod(methodData) + { + var methodName = methodData[0]; + var methodIdx = methodData[1]; + object[methodName] = function() { + var args = []; + var callback; + for (var i = 0; i < arguments.length; ++i) { + if (typeof arguments[i] === "function") + callback = arguments[i]; + else + args.push(arguments[i]); + } + + webChannel.exec({ + "type": QWebChannelMessageTypes.invokeMethod, + "object": object.__id__, + "method": methodIdx, + "args": args + }, function(response) { + if (response !== undefined) { + var result = object.unwrapQObject(response); + if (callback) { + (callback)(result); + } + } + }); + }; + } + + function bindGetterSetter(propertyInfo) + { + var propertyIndex = propertyInfo[0]; + var propertyName = propertyInfo[1]; + var notifySignalData = propertyInfo[2]; + // initialize property cache with current value + // NOTE: if this is an object, it is not directly unwrapped as it might + // reference other QObject that we do not know yet + object.__propertyCache__[propertyIndex] = propertyInfo[3]; + + if (notifySignalData) { + if (notifySignalData[0] === 1) { + // signal name is optimized away, reconstruct the actual name + notifySignalData[0] = propertyName + "Changed"; + } + addSignal(notifySignalData, true); + } + + Object.defineProperty(object, propertyName, { + get: function () { + var propertyValue = object.__propertyCache__[propertyIndex]; + if (propertyValue === undefined) { + // This shouldn't happen + console.warn("Undefined value in property cache for property \"" + propertyName + "\" in object " + object.__id__); + } + + return propertyValue; + }, + set: function(value) { + if (value === undefined) { + console.warn("Property setter for " + propertyName + " called with undefined value!"); + return; + } + object.__propertyCache__[propertyIndex] = value; + webChannel.exec({ + "type": QWebChannelMessageTypes.setProperty, + "object": object.__id__, + "property": propertyIndex, + "value": value + }); + } + }); + + } + + // ---------------------------------------------------------------------- + + data.methods.forEach(addMethod); + + data.properties.forEach(bindGetterSetter); + + data.signals.forEach(function(signal) { addSignal(signal, false); }); + + for (var name in data.enums) { + object[name] = data.enums[name]; + } + } + + //required for use with nodejs + if (true) { + module.exports = { + QWebChannel: QWebChannel + }; + } + + +/***/ } +/******/ ]) +}); +; +//# sourceMappingURL=frelard-desktop-bootstrap.js.map + +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else if(typeof exports === 'object') + exports["tableau"] = factory(); + else + root["tableau"] = factory(); +})(this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; + +/******/ // The require function +/******/ function __webpack_require__(moduleId) { + +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) +/******/ return installedModules[moduleId].exports; + +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ exports: {}, +/******/ id: moduleId, +/******/ loaded: false +/******/ }; + +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); + +/******/ // Flag the module as loaded +/******/ module.loaded = true; + +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } + + +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; + +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; + +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = "/dist/"; + +/******/ // Load entry module and return exports +/******/ return __webpack_require__(0); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /** + * This is your main. This is where you re-export everything you want to be publicly available. + * + * The build enforces that the file has the same name as the global variable that is exported. + */ + Object.defineProperty(exports, "__esModule", { value: true }); + // Due to the way we configured webpack, we should be exporting things which will be under + // a global variable called "tableau". Export everything we want to be visible under tableau + // from this file. + var AddInImpl_1 = __webpack_require__(1); + var AddIn_1 = __webpack_require__(61); + var addInImpl = new AddInImpl_1.AddInImpl(); + exports.addIn = new AddIn_1.AddIn(addInImpl); + // Export Enums + // These show up under the tableau object. I.e. tableau.AddInContext.Server + var api_external_contract_1 = __webpack_require__(16); + exports.AddInContext = api_external_contract_1.AddInContext; + exports.AddInMode = api_external_contract_1.AddInMode; + exports.AnalyticsObjectType = api_external_contract_1.AnalyticsObjectType; + exports.ColumnType = api_external_contract_1.ColumnType; + exports.DashboardObjectType = api_external_contract_1.DashboardObjectType; + exports.DataType = api_external_contract_1.DataType; + exports.DateRangeType = api_external_contract_1.DateRangeType; + exports.DialogEventType = api_external_contract_1.DialogEventType; + exports.EncodingType = api_external_contract_1.EncodingType; + exports.ErrorCodes = api_external_contract_1.ErrorCodes; + exports.FieldAggregationType = api_external_contract_1.FieldAggregationType; + exports.FieldRoleType = api_external_contract_1.FieldRoleType; + exports.FilterDomainType = api_external_contract_1.FilterDomainType; + exports.FilterType = api_external_contract_1.FilterType; + exports.FilterUpdateType = api_external_contract_1.FilterUpdateType; + exports.FilterNullOption = api_external_contract_1.FilterNullOption; + exports.MarkType = api_external_contract_1.MarkType; + exports.ParameterValueType = api_external_contract_1.ParameterValueType; + exports.PeriodType = api_external_contract_1.PeriodType; + exports.QuickTableCalcType = api_external_contract_1.QuickTableCalcType; + exports.SelectionUpdateType = api_external_contract_1.SelectionUpdateType; + exports.SheetType = api_external_contract_1.SheetType; + exports.SortDirection = api_external_contract_1.SortDirection; + exports.TableauEventType = api_external_contract_1.TableauEventType; + exports.TrendLineModelType = api_external_contract_1.TrendLineModelType; + //# sourceMappingURL=AddInApi.js.map + +/***/ }, +/* 1 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_internal_contract_1 = __webpack_require__(2); + var api_shared_1 = __webpack_require__(8); + var Dashboard_1 = __webpack_require__(41); + var DashboardContent_1 = __webpack_require__(43); + var Environment_1 = __webpack_require__(44); + var Settings_1 = __webpack_require__(45); + var RegisterAllAddInServices_1 = __webpack_require__(46); + var VersionNumber_1 = __webpack_require__(49); + var DashboardImpl_1 = __webpack_require__(50); + var SettingsImpl_1 = __webpack_require__(60); + var AddInImpl = (function () { + function AddInImpl() { + } + AddInImpl.prototype.initializeAsync = function () { + var _this = this; + if (!this._initializationPromise) { + this._initializationPromise = new Promise(function (resolve, reject) { + // First thing we want to do is check to see if there is a desktop dispatcher already registered for us + if (api_internal_contract_1.InternalApiDispatcherHolder.hasDesktopApiDispatcherPromise()) { + // Running in desktop, use this promise + var desktopDispatcherPromise = api_internal_contract_1.InternalApiDispatcherHolder.getDesktopDispatcherPromise(); + desktopDispatcherPromise.then(_this.onDispatcherReceived.bind(_this)).then(function () { resolve(); }); + } + else { + reject('Not running in desktop. Server support coming soon!'); + } + }); + } + return this._initializationPromise; + }; + AddInImpl.prototype.onDispatcherReceived = function (dispatcher) { + var _this = this; + dispatcher.setVersionNumber(VersionNumber_1.VersionNumber.Instance); + // Call to register all the services which will use the newly initialized dispatcher + api_shared_1.registerAllSharedServices(dispatcher); + RegisterAllAddInServices_1.registerAllAddInServices(dispatcher); + // Get the initialization service and initialize this add-in + var initializationService = api_shared_1.ApiServiceRegistry.instance.getService("InitializationService" /* InitializationService */); + return initializationService.initializeDashboardAddInAsync().then(function (result) { + if (!result.addInInstance.locator.dashboardPath) { + throw new Error('DashboardPath is undefined'); + } + _this.dashboardContent = _this.initializeDashboardContent(result.addinDashboardInfo, result.addInInstance.locator.dashboardPath); + _this.environment = new Environment_1.Environment(result.addInEnvironment); + _this.settings = _this.initializeSettings(result.addInSettingsInfo); + }); + }; + AddInImpl.prototype.initializeDashboardContent = function (info, sheetPath) { + var dashboardImpl = new DashboardImpl_1.DashboardImpl(info, sheetPath); + var dashboard = new Dashboard_1.Dashboard(dashboardImpl); + return new DashboardContent_1.DashboardContent(dashboard); + }; + AddInImpl.prototype.initializeSettings = function (settingsInfo) { + var settingsImpl = new SettingsImpl_1.SettingsImpl(settingsInfo); + return new Settings_1.Settings(settingsImpl); + }; + return AddInImpl; + }()); + exports.AddInImpl = AddInImpl; + //# sourceMappingURL=AddInImpl.js.map + +/***/ }, +/* 2 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /** + * This is your main. This is where you re-export everything you want to be publicly available. + * + * The build enforces that the file has the same name as the global variable that is exported. + */ + function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; + } + Object.defineProperty(exports, "__esModule", { value: true }); + __export(__webpack_require__(3)); + __export(__webpack_require__(4)); + __export(__webpack_require__(5)); + __export(__webpack_require__(6)); + __export(__webpack_require__(7)); + //# sourceMappingURL=ApiInternalContract.js.map + +/***/ }, +/* 3 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var AddInContext; + (function (AddInContext) { + AddInContext["Desktop"] = "desktop"; + AddInContext["Server"] = "server"; + AddInContext["Unknown"] = "unknown"; + })(AddInContext = exports.AddInContext || (exports.AddInContext = {})); + var AddInMode; + (function (AddInMode) { + AddInMode["Authoring"] = "authoring"; + AddInMode["Viewing"] = "viewing"; + AddInMode["Unknown"] = "unknown"; + })(AddInMode = exports.AddInMode || (exports.AddInMode = {})); + var ColumnType; + (function (ColumnType) { + ColumnType["Discrete"] = "discrete"; + ColumnType["Continuous"] = "continuous"; + })(ColumnType = exports.ColumnType || (exports.ColumnType = {})); + var DashboardObjectType; + (function (DashboardObjectType) { + DashboardObjectType["Blank"] = "blank"; + DashboardObjectType["Worksheet"] = "worksheet"; + DashboardObjectType["QuickFilter"] = "quick-filter"; + DashboardObjectType["ParameterControl"] = "parameter-control"; + DashboardObjectType["PageFilter"] = "page-filter"; + DashboardObjectType["Legend"] = "legend"; + DashboardObjectType["Title"] = "title"; + DashboardObjectType["Text"] = "text"; + DashboardObjectType["Image"] = "image"; + DashboardObjectType["WebPage"] = "web-page"; + DashboardObjectType["AddIn"] = "addin"; + })(DashboardObjectType = exports.DashboardObjectType || (exports.DashboardObjectType = {})); + var DataType; + (function (DataType) { + DataType["String"] = "string"; + DataType["Int"] = "int"; + DataType["Float"] = "float"; + DataType["Bool"] = "bool"; + DataType["Date"] = "date"; + DataType["DateTime"] = "date-time"; + DataType["Spatial"] = "spatial"; + })(DataType = exports.DataType || (exports.DataType = {})); + var EncodedDataType; + (function (EncodedDataType) { + EncodedDataType["Number"] = "number"; + EncodedDataType["String"] = "string"; + EncodedDataType["Date"] = "date"; + EncodedDataType["Boolean"] = "boolean"; + })(EncodedDataType = exports.EncodedDataType || (exports.EncodedDataType = {})); + var ErrorCode; + (function (ErrorCode) { + ErrorCode["ServerError"] = "server-error"; + ErrorCode["InvalidAggregationFieldName"] = "invalid-aggregation-field-name"; + ErrorCode["InvalidFilterFieldName"] = "invalid-filter-fieldname"; + ErrorCode["InvalidFilterFieldValue"] = "invalid-filter-field-value"; + })(ErrorCode = exports.ErrorCode || (exports.ErrorCode = {})); + var FieldAggregationType; + (function (FieldAggregationType) { + FieldAggregationType["Sum"] = "sum"; + FieldAggregationType["Avg"] = "avg"; + FieldAggregationType["Min"] = "min"; + FieldAggregationType["Max"] = "max"; + FieldAggregationType["Stdev"] = "stdev"; + FieldAggregationType["Stdevp"] = "stdevp"; + FieldAggregationType["Var"] = "var"; + FieldAggregationType["Varp"] = "varp"; + FieldAggregationType["Count"] = "count"; + FieldAggregationType["Countd"] = "countd"; + FieldAggregationType["Median"] = "median"; + FieldAggregationType["Attr"] = "attr"; + FieldAggregationType["None"] = "none"; + FieldAggregationType["Year"] = "year"; + FieldAggregationType["Qtr"] = "qtr"; + FieldAggregationType["Month"] = "month"; + FieldAggregationType["Day"] = "day"; + FieldAggregationType["Hour"] = "hour"; + FieldAggregationType["Minute"] = "minute"; + FieldAggregationType["Second"] = "second"; + FieldAggregationType["Week"] = "week"; + FieldAggregationType["Weekday"] = "weekday"; + FieldAggregationType["MonthYear"] = "month-year"; + FieldAggregationType["Mdy"] = "mdy"; + FieldAggregationType["End"] = "end"; + FieldAggregationType["TruncYear"] = "trunc-year"; + FieldAggregationType["TruncQtr"] = "trunc-qtr"; + FieldAggregationType["TruncMonth"] = "trunc-month"; + FieldAggregationType["TruncWeek"] = "trunc-week"; + FieldAggregationType["TruncDay"] = "trunc-day"; + FieldAggregationType["TruncHour"] = "trunc-hour"; + FieldAggregationType["TruncMinute"] = "trunc-minute"; + FieldAggregationType["TruncSecond"] = "trunc-second"; + FieldAggregationType["Quart1"] = "quart1"; + FieldAggregationType["Quart3"] = "quart3"; + FieldAggregationType["Skewness"] = "skewness"; + FieldAggregationType["Kurtosis"] = "kurtosis"; + FieldAggregationType["InOut"] = "in-out"; + FieldAggregationType["User"] = "user"; + })(FieldAggregationType = exports.FieldAggregationType || (exports.FieldAggregationType = {})); + var FieldRoleType; + (function (FieldRoleType) { + FieldRoleType["Dimension"] = "dimension"; + FieldRoleType["Measure"] = "measure"; + FieldRoleType["Unknown"] = "unknown"; + })(FieldRoleType = exports.FieldRoleType || (exports.FieldRoleType = {})); + /** + * The different update types for applying filter. + */ + var FilterUpdateType; + (function (FilterUpdateType) { + FilterUpdateType["Add"] = "add"; + FilterUpdateType["All"] = "all"; + FilterUpdateType["Replace"] = "replace"; + FilterUpdateType["Remove"] = "remove"; + })(FilterUpdateType = exports.FilterUpdateType || (exports.FilterUpdateType = {})); + var SheetType; + (function (SheetType) { + SheetType["Dashboard"] = "dashboard"; + SheetType["Story"] = "story"; + SheetType["Worksheet"] = "worksheet"; + SheetType["Addin"] = "addin"; + })(SheetType = exports.SheetType || (exports.SheetType = {})); + var DomainRestrictionType; + (function (DomainRestrictionType) { + DomainRestrictionType["All"] = "all"; + DomainRestrictionType["List"] = "list"; + DomainRestrictionType["Range"] = "range"; + })(DomainRestrictionType = exports.DomainRestrictionType || (exports.DomainRestrictionType = {})); + var DateStepPeriod; + (function (DateStepPeriod) { + DateStepPeriod["Years"] = "years"; + DateStepPeriod["Quarters"] = "quarters"; + DateStepPeriod["Months"] = "months"; + DateStepPeriod["Weeks"] = "weeks"; + DateStepPeriod["Days"] = "days"; + DateStepPeriod["Hours"] = "hours"; + DateStepPeriod["Minutes"] = "minutes"; + DateStepPeriod["Seconds"] = "seconds"; + })(DateStepPeriod = exports.DateStepPeriod || (exports.DateStepPeriod = {})); + /** + * The option for specifying which values to include for filtering. + */ + var FilterNullOption; + (function (FilterNullOption) { + FilterNullOption["NullValues"] = "nullvalues"; + FilterNullOption["NonNullValues"] = "nonnullvalues"; + FilterNullOption["AllValues"] = "allvalues"; + })(FilterNullOption = exports.FilterNullOption || (exports.FilterNullOption = {})); + /** + * The type of filter domain + */ + var FilterDomainType; + (function (FilterDomainType) { + FilterDomainType["Relevant"] = "relevant"; + FilterDomainType["Database"] = "database"; + })(FilterDomainType = exports.FilterDomainType || (exports.FilterDomainType = {})); + /** + * Internal enum for specifying the selection type for select marks api. + */ + var SelectionUpdateType; + (function (SelectionUpdateType) { + SelectionUpdateType["Replace"] = "select-replace"; + SelectionUpdateType["Add"] = "select-add"; + SelectionUpdateType["Remove"] = "select-remove"; + })(SelectionUpdateType = exports.SelectionUpdateType || (exports.SelectionUpdateType = {})); + /** + * Internal enum for specifying the included values type for range selection. + */ + var QuantitativeIncludedValues; + (function (QuantitativeIncludedValues) { + QuantitativeIncludedValues["IncludeNull"] = "include-null"; + QuantitativeIncludedValues["IncludeNonNull"] = "include-non-null"; + QuantitativeIncludedValues["IncludeAll"] = "include-all"; + })(QuantitativeIncludedValues = exports.QuantitativeIncludedValues || (exports.QuantitativeIncludedValues = {})); + /** + * Type of mark for a given marks card in a viz. + */ + var MarkType; + (function (MarkType) { + MarkType["Bar"] = "bar"; + MarkType["Line"] = "line"; + MarkType["Area"] = "area"; + MarkType["Square"] = "square"; + MarkType["Circle"] = "circle"; + MarkType["Shape"] = "shape"; + MarkType["Text"] = "text"; + MarkType["Map"] = "map"; + MarkType["Pie"] = "pie"; + MarkType["GanttBar"] = "gantt-bar"; + MarkType["Polygon"] = "polygon"; + })(MarkType = exports.MarkType || (exports.MarkType = {})); + /** + * Internal enum for specifying the type of filter + */ + var FilterType; + (function (FilterType) { + FilterType["Categorical"] = "categorical"; + FilterType["Range"] = "range"; + FilterType["RelativeDate"] = "relativeDate"; + FilterType["Hierarchical"] = "hierarchical"; + })(FilterType = exports.FilterType || (exports.FilterType = {})); + /** + * Internal enum for specifying the DateRangeType of a relative date filter + */ + var DateRangeType; + (function (DateRangeType) { + /** + * Refers to the last day, week, month, etc. of the date period. + */ + DateRangeType["Last"] = "last"; + /** + * Refers to the last N days, weeks, months, etc. of the date period. + */ + DateRangeType["LastN"] = "lastN"; + /** + * Refers to the next day, week, month, etc. of the date period. + */ + DateRangeType["Next"] = "next"; + /** + * Refers to the next N days, weeks, months, etc. of the date period. + */ + DateRangeType["NextN"] = "nextN"; + /** + * Refers to the current day, week, month, etc. of the date period. + */ + DateRangeType["Current"] = "current"; + /** + * Refers to everything up to and including the current day, week, month, etc. of the date period. + */ + DateRangeType["ToDate"] = "toDate"; + })(DateRangeType = exports.DateRangeType || (exports.DateRangeType = {})); + //# sourceMappingURL=Enums.js.map + +/***/ }, +/* 4 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var InternalApiDispatcherHolder; + (function (InternalApiDispatcherHolder) { + function getDesktopDispatcherPromise() { + return window.__tableauDesktopDispatcher; + } + InternalApiDispatcherHolder.getDesktopDispatcherPromise = getDesktopDispatcherPromise; + function hasDesktopApiDispatcherPromise() { + return !!InternalApiDispatcherHolder.getDesktopDispatcherPromise(); + } + InternalApiDispatcherHolder.hasDesktopApiDispatcherPromise = hasDesktopApiDispatcherPromise; + function setDesktopDispatcherPromise(dispatcher) { + window.__tableauDesktopDispatcher = dispatcher; + } + InternalApiDispatcherHolder.setDesktopDispatcherPromise = setDesktopDispatcherPromise; + })(InternalApiDispatcherHolder = exports.InternalApiDispatcherHolder || (exports.InternalApiDispatcherHolder = {})); + //# sourceMappingURL=InternalApiDispatcher.js.map + +/***/ }, +/* 5 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var NotificationId; + (function (NotificationId) { + NotificationId["SelectedMarksChanged"] = "selected-marks-changed"; + NotificationId["ParameterChanged"] = "parameter-changed"; + NotificationId["FilterChanged"] = "filter-changed"; + })(NotificationId = exports.NotificationId || (exports.NotificationId = {})); + //# sourceMappingURL=Notifications.js.map + +/***/ }, +/* 6 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var ParameterId; + (function (ParameterId) { + ParameterId["AddInLocator"] = "add-in-locator"; + ParameterId["AddInBootstrapInfo"] = "add-in-bootstrap-info"; + ParameterId["AddInSettingsInfo"] = "add-in-settings-info"; + ParameterId["VisualId"] = "visual-id"; + ParameterId["SheetPath"] = "sheet-path"; + ParameterId["IgnoreAliases"] = "ignore-aliases"; + ParameterId["IgnoreSelection"] = "ignore-selection"; + ParameterId["IncludeAllColumns"] = "include-all-columns"; + ParameterId["MaxRows"] = "max-rows"; + ParameterId["UnderlyingDataTable"] = "underlying-data-table"; + ParameterId["UnderlyingSummaryDataTable"] = "underlying-summary-data-table"; + ParameterId["DataSourceDataTable"] = "data-source-data-table"; + ParameterId["SettingsValues"] = "settings-values"; + ParameterId["SelectedData"] = "selected-data"; + ParameterId["HighlightedData"] = "highlighted-data"; + // Filter Params + ParameterId["FieldName"] = "field-name"; + ParameterId["FilterValues"] = "filter-values"; + ParameterId["FilterUpdateType"] = "filter-update-type"; + ParameterId["IsExcludeMode"] = "is-exclude"; + ParameterId["FilterRangeMin"] = "filter-range-min"; + ParameterId["FilterRangeMax"] = "filter-range-max"; + ParameterId["FilterRangeNullOption"] = "filter-range-null-option"; + ParameterId["WorksheetFilters"] = "worksheet-filters"; + ParameterId["FieldId"] = "field-id"; + ParameterId["DomainType"] = "domain-type"; + ParameterId["CategoricalDomain"] = "categorical-domain"; + ParameterId["QuantitativeDomain"] = "quantitative-dmain"; + ParameterId["WorksheetName"] = "worksheet-name"; + ParameterId["DashboardName"] = "dashboard"; + ParameterId["ParameterInfo"] = "parameter-info"; + ParameterId["ParameterInfos"] = "parameter-infos"; + ParameterId["ParameterCaption"] = "paremeter-caption"; + ParameterId["ParameterFieldName"] = "parameter-field-name"; + ParameterId["ParameterValue"] = "parameter-value"; + ParameterId["Selection"] = "selection"; + ParameterId["SelectionUpdateType"] = "selectionUpdateType"; + ParameterId["HierValSelectionModels"] = "hierarchicalValueSelectionModels"; + ParameterId["QuantRangeSelectionModels"] = "quantativeRangeSelectionModels"; + ParameterId["DimValSelectionModels"] = "dimensionValueSelectionModels"; + ParameterId["DataSourceId"] = "data-source-id"; + ParameterId["DataSchema"] = "data-schema"; + ParameterId["DataSourceName"] = "data-source-name"; + ParameterId["ColumnsToInclude"] = "columns-to-include"; + })(ParameterId = exports.ParameterId || (exports.ParameterId = {})); + //# sourceMappingURL=Parameters.js.map + +/***/ }, +/* 7 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + // Declare this key type and export the NotificationId to make this behave like a string enum + var VerbId; + (function (VerbId) { + VerbId["ApplyCategoricalFilter"] = "categorical-filter"; + VerbId["ApplyRangeFilter"] = "range-filter"; + VerbId["ClearFilter"] = "clear-filter"; + VerbId["InitializeAddIn"] = "initialize-add-in"; + VerbId["GetDataSummaryData"] = "get-summary-data"; + VerbId["GetUnderlyingData"] = "get-underlying-data"; + VerbId["GetDataSourceData"] = "get-datasource-data"; + VerbId["SaveAddInSettings"] = "save-add-in-settings"; + VerbId["GetSelectedMarks"] = "get-selected-marks"; + VerbId["GetHighlightedMarks"] = "get-highlighted-marks"; + VerbId["GetParametersForSheet"] = "get-parameters-for-sheet"; + VerbId["FindParameter"] = "find-parameter"; + VerbId["ChangeParameterValue"] = "change-parameter-value"; + VerbId["ClearSelectedMarks"] = "clear-selected-marks"; + VerbId["SelectByValue"] = "select-by-value"; + VerbId["GetDataSources"] = "get-data-sources"; + VerbId["RefreshDataSource"] = "refresh-data-source"; + VerbId["GetFilters"] = "get-filters"; + VerbId["GetCategoricalDomain"] = "get-categorical-domain"; + VerbId["GetRangeDomain"] = "get-range-domain"; + })(VerbId = exports.VerbId || (exports.VerbId = {})); + //# sourceMappingURL=Verbs.js.map + +/***/ }, +/* 8 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /** + * This is your main. This is where you re-export everything you want to be publicly available. + * + * The build enforces that the file has the same name as the global variable that is exported. + */ + function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; + } + Object.defineProperty(exports, "__esModule", { value: true }); + __export(__webpack_require__(9)); + __export(__webpack_require__(10)); + var Point_1 = __webpack_require__(11); + exports.Point = Point_1.Point; + var Size_1 = __webpack_require__(12); + exports.Size = Size_1.Size; + __export(__webpack_require__(13)); + __export(__webpack_require__(14)); + __export(__webpack_require__(15)); + __export(__webpack_require__(21)); + __export(__webpack_require__(20)); + __export(__webpack_require__(19)); + __export(__webpack_require__(18)); + __export(__webpack_require__(22)); + __export(__webpack_require__(23)); + __export(__webpack_require__(24)); + __export(__webpack_require__(33)); + __export(__webpack_require__(31)); + //# sourceMappingURL=ApiShared.js.map + +/***/ }, +/* 9 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * Class designed to register and unregister handlers from a user. Only those events + * which are added via AddNewEventType will be supported by this instance + */ + var EventListenerManager = (function () { + function EventListenerManager() { + this._eventListenerManagers = {}; + } + EventListenerManager.prototype.addEventListener = function (eventType, handler) { + if (!this._eventListenerManagers.hasOwnProperty(eventType)) { + throw new Error("Unsupported event type : " + eventType); + } + return this._eventListenerManagers[eventType].addEventListener(handler); + }; + EventListenerManager.prototype.removeEventListener = function (eventType, handler) { + if (!this._eventListenerManagers.hasOwnProperty(eventType)) { + throw new Error("Unsupported event type : " + eventType); + } + return this._eventListenerManagers[eventType].removeEventListener(handler); + }; + EventListenerManager.prototype.addNewEventType = function (eventManager) { + this._eventListenerManagers[eventManager.eventType] = eventManager; + }; + return EventListenerManager; + }()); + exports.EventListenerManager = EventListenerManager; + //# sourceMappingURL=EventListenerManager.js.map + +/***/ }, +/* 10 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + var EventListenerManager_1 = __webpack_require__(9); + /** + * Implementation of the Parameter contract. Calls down to the impl + * class for almost all of the work it does. + */ + var Parameter = (function (_super) { + __extends(Parameter, _super); + function Parameter(parameterImpl, sheet) { + var _this = _super.call(this) || this; + _this.parameterImpl = parameterImpl; + // Initialize our event handling for this class + _this.parameterImpl.initializeEvents(sheet).forEach(function (e) { return _this.addNewEventType(e); }); + return _this; + } + Object.defineProperty(Parameter.prototype, "name", { + get: function () { + return this.parameterImpl.name; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Parameter.prototype, "currentValue", { + get: function () { + return this.parameterImpl.currentValue; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Parameter.prototype, "dataType", { + get: function () { + return this.parameterImpl.dataType; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Parameter.prototype, "allowableValues", { + get: function () { + return this.parameterImpl.allowableValues; + }, + enumerable: true, + configurable: true + }); + Parameter.prototype.changeValueAsync = function (newValue) { + return this.parameterImpl.changeValueAsync(newValue); + }; + return Parameter; + }(EventListenerManager_1.EventListenerManager)); + exports.Parameter = Parameter; + //# sourceMappingURL=Parameter.js.map + +/***/ }, +/* 11 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var Point = (function () { + function Point(_x, _y) { + this._x = _x; + this._y = _y; + } + Object.defineProperty(Point.prototype, "x", { + get: function () { + return this._x; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Point.prototype, "y", { + get: function () { + return this._y; + }, + enumerable: true, + configurable: true + }); + return Point; + }()); + exports.Point = Point; + //# sourceMappingURL=Point.js.map + +/***/ }, +/* 12 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var Size = (function () { + function Size(_height, _width) { + this._height = _height; + this._width = _width; + } + Object.defineProperty(Size.prototype, "height", { + get: function () { + return this._height; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Size.prototype, "width", { + get: function () { + return this._width; + }, + enumerable: true, + configurable: true + }); + return Size; + }()); + exports.Size = Size; + //# sourceMappingURL=Size.js.map + +/***/ }, +/* 13 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var DataTable = (function () { + function DataTable(_data, _columns, _totalRowCount, _isSummaryData, _marksInfo) { + this._data = _data; + this._columns = _columns; + this._totalRowCount = _totalRowCount; + this._isSummaryData = _isSummaryData; + this._marksInfo = _marksInfo; + // TODO: get rid of this in redesign. + this._name = _isSummaryData ? 'Summary Data Table' : 'Underlying Data Table'; + } + Object.defineProperty(DataTable.prototype, "name", { + get: function () { + return this._name; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataTable.prototype, "data", { + get: function () { + return this._data; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataTable.prototype, "columns", { + get: function () { + return this._columns; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataTable.prototype, "marksInfo", { + get: function () { + return this._marksInfo; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataTable.prototype, "totalRowCount", { + get: function () { + return this._totalRowCount; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataTable.prototype, "isSummaryData", { + get: function () { + return this._isSummaryData; + }, + enumerable: true, + configurable: true + }); + return DataTable; + }()); + exports.DataTable = DataTable; + var MarkInfo = (function () { + function MarkInfo(_type, _color, _tupleId) { + this._type = _type; + this._color = _color; + this._tupleId = _tupleId; + } + Object.defineProperty(MarkInfo.prototype, "type", { + get: function () { + return this._type; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(MarkInfo.prototype, "color", { + get: function () { + return this._color; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(MarkInfo.prototype, "tupleId", { + get: function () { + return this._tupleId; + }, + enumerable: true, + configurable: true + }); + return MarkInfo; + }()); + exports.MarkInfo = MarkInfo; + var Column = (function () { + function Column(_fieldName, _dataType, // TODO: this shoudl be an enum type + _isReferenced, _index) { + this._fieldName = _fieldName; + this._dataType = _dataType; + this._isReferenced = _isReferenced; + this._index = _index; + } + Object.defineProperty(Column.prototype, "fieldName", { + get: function () { + return this._fieldName; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Column.prototype, "dataType", { + get: function () { + return this._dataType; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Column.prototype, "isReferenced", { + get: function () { + return this._isReferenced; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Column.prototype, "index", { + get: function () { + return this._index; + }, + enumerable: true, + configurable: true + }); + return Column; + }()); + exports.Column = Column; + var DataValue = (function () { + /* tslint:disable:no-any */ + function DataValue(_value, _formattedValue) { + this._value = _value; + this._formattedValue = _formattedValue; + } + Object.defineProperty(DataValue.prototype, "value", { + get: function () { + return this._value; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataValue.prototype, "formattedValue", { + get: function () { + return this._formattedValue; + }, + enumerable: true, + configurable: true + }); + return DataValue; + }()); + exports.DataValue = DataValue; + //# sourceMappingURL=GetDataModels.js.map + +/***/ }, +/* 14 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var TableauExceptions = (function () { + function TableauExceptions() { + } + return TableauExceptions; + }()); + exports.TableauExceptions = TableauExceptions; + //# sourceMappingURL=TableauExceptions.js.map + +/***/ }, +/* 15 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + var Contract = __webpack_require__(16); + var TableauWorksheetEvent_1 = __webpack_require__(18); + var FilterChangedEvent = (function (_super) { + __extends(FilterChangedEvent, _super); + function FilterChangedEvent(worksheet, _fieldName) { + var _this = _super.call(this, Contract.TableauEventType.FilterChanged, worksheet) || this; + _this._fieldName = _fieldName; + return _this; + } + Object.defineProperty(FilterChangedEvent.prototype, "fieldName", { + get: function () { + return this._fieldName; + }, + enumerable: true, + configurable: true + }); + FilterChangedEvent.prototype.getFilterAsync = function () { + var _this = this; + return this._worksheet.getFiltersAsync().then(function (filters) { + // TODO: Filtering of the filters should eventually be done platform side. + var eventedFilter = filters.find(function (filter) { return (filter.fieldName === _this._fieldName); }); + if (!eventedFilter) { + // We shouldn't hit this unless the filter was removed from the worksheet + // after the event was raised. + throw new Error('Internal Error: Filter no longer found in worksheet.'); + } + return eventedFilter; + }); + }; + return FilterChangedEvent; + }(TableauWorksheetEvent_1.TableauWorksheetEvent)); + exports.FilterChangedEvent = FilterChangedEvent; + //# sourceMappingURL=FilterChangedEvent.js.map + +/***/ }, +/* 16 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /** + * This is your main. This is where you re-export everything you want to be publicly available. + * + * The build enforces that the file has the same name as the global variable that is exported. + */ + function __export(m) { + for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; + } + Object.defineProperty(exports, "__esModule", { value: true }); + __export(__webpack_require__(17)); + //# sourceMappingURL=ApiExternalContract.js.map + +/***/ }, +/* 17 */ +/***/ function(module, exports) { + + "use strict"; + // All enum values made available to AddIn developers. + // Enums should be kept in alphabetical order. + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * The context in which the AddIn is currently running. + */ + var AddInContext; + (function (AddInContext) { + AddInContext["Desktop"] = "desktop"; + AddInContext["Server"] = "server"; + })(AddInContext = exports.AddInContext || (exports.AddInContext = {})); + /** + * The mode in which the AddIn is currently running. + */ + var AddInMode; + (function (AddInMode) { + AddInMode["Authoring"] = "authoring"; + AddInMode["Viewing"] = "viewing"; + })(AddInMode = exports.AddInMode || (exports.AddInMode = {})); + var AnalyticsObjectType; + (function (AnalyticsObjectType) { + AnalyticsObjectType["Cluster"] = "cluster"; + AnalyticsObjectType["Forecast"] = "forecast"; + AnalyticsObjectType["TrendLine"] = "trend-line"; + })(AnalyticsObjectType = exports.AnalyticsObjectType || (exports.AnalyticsObjectType = {})); + var ColumnType; + (function (ColumnType) { + ColumnType["Discrete"] = "discrete"; + ColumnType["Continuous"] = "continuous"; + })(ColumnType = exports.ColumnType || (exports.ColumnType = {})); + /** + * What the object represents in a dashboard. + */ + var DashboardObjectType; + (function (DashboardObjectType) { + DashboardObjectType["Blank"] = "blank"; + DashboardObjectType["Worksheet"] = "worksheet"; + DashboardObjectType["QuickFilter"] = "quick-filter"; + DashboardObjectType["ParameterControl"] = "parameter-control"; + DashboardObjectType["PageFilter"] = "page-filter"; + DashboardObjectType["Legend"] = "legend"; + DashboardObjectType["Title"] = "title"; + DashboardObjectType["Text"] = "text"; + DashboardObjectType["Image"] = "image"; + DashboardObjectType["WebPage"] = "web-page"; + DashboardObjectType["AddIn"] = "addin"; + })(DashboardObjectType = exports.DashboardObjectType || (exports.DashboardObjectType = {})); + /** + * The different types of data a value can have + */ + var DataType; + (function (DataType) { + DataType["String"] = "string"; + DataType["Int"] = "int"; + DataType["Float"] = "float"; + DataType["Bool"] = "bool"; + DataType["Date"] = "date"; + DataType["DateTime"] = "date-time"; + DataType["Spatial"] = "spatial"; + })(DataType = exports.DataType || (exports.DataType = {})); + /** + * Valid date ranges for a relative date filter. + */ + var DateRangeType; + (function (DateRangeType) { + DateRangeType["Last"] = "last"; + DateRangeType["LastN"] = "last-n"; + DateRangeType["Next"] = "next"; + DateRangeType["NextN"] = "next-n"; + DateRangeType["Current"] = "current"; + DateRangeType["ToDate"] = "to-date"; + })(DateRangeType = exports.DateRangeType || (exports.DateRangeType = {})); + /** + * Types of dialog event for event listening between a parent AddIn and a popup dialog. + */ + var DialogEventType; + (function (DialogEventType) { + DialogEventType["DialogMessage"] = "dialog-message"; + DialogEventType["DialogEvent"] = "dialog-event"; + })(DialogEventType = exports.DialogEventType || (exports.DialogEventType = {})); + var EncodingType; + (function (EncodingType) { + EncodingType["Column"] = "column"; + EncodingType["Row"] = "row"; + EncodingType["Page"] = "page"; + EncodingType["Filter"] = "filter"; + EncodingType["MarksType"] = "marks-type"; + EncodingType["MeasureValues"] = "measure-values"; + EncodingType["Color"] = "color"; + EncodingType["Size"] = "size"; + EncodingType["Label"] = "label"; + EncodingType["Detail"] = "detail"; + EncodingType["Tooltip"] = "tooltip"; + EncodingType["Shape"] = "shape"; + EncodingType["Path"] = "path"; + EncodingType["Angle"] = "angle"; + })(EncodingType = exports.EncodingType || (exports.EncodingType = {})); + /** + * All error codes used by the AddIn API. + */ + var ErrorCodes; + (function (ErrorCodes) { + /** + * Only one dialog can be opened at time with the UI namespace functionality. + */ + ErrorCodes["DialogAlreadyOpen"] = "dialog-already-open"; + /** + * The open dialog was closed by the user. + */ + ErrorCodes["DialogClosedByUser"] = "dialog-closed-by-user"; + /** + * An error occurred while attempting to perform a filter operation. + */ + ErrorCodes["FilterCannotBePerformed"] = "filter-cannot-be-performed"; + /** + * An error occurred within the Tableau AddIn API. Contact Tableau Support. + */ + ErrorCodes["InternalError"] = "internal-error"; + /** + * An invalid aggregation was specified for the filter, such as setting a range filter to "SUM(Sales)" instead of "Sales". + */ + ErrorCodes["InvalidAggregationFieldName"] = "invalid-aggregation-field-name"; + /** + * A dialog must first launch to, and send messages from, the same domain as the parent AddIn. + */ + ErrorCodes["InvalidDomainDialog"] = "invalid-dialog-domain"; + /** + * An invalid date was specified in a method that required a date parameter. + */ + ErrorCodes["InvalidDateParameter"] = "invalid-date-parameter"; + /** + * A filter operation was attempted on a field that does not exist in the data source. + */ + ErrorCodes["InvalidFilterFieldName"] = "invalid-filter-field-name"; + /** + * A filter operation was attempted using a value that is the wrong data type or format. + */ + ErrorCodes["InvalidFilterFieldValue"] = "invalid-filter-field-value"; + /** + * A parameter is not the correct data type or format. The name of the parameter is specified in the Error.message field. + */ + ErrorCodes["InvalidParameter"] = "invalid-parameter"; + /** + * An invalid date value was specified in a Sheet.selectMarksAsync() call for a date field. + */ + ErrorCodes["InvalidSelectionDate"] = "invalid-selection-date"; + /** + * A field was specified in a Sheet.selectMarksAsync() call that does not exist in the data source. + */ + ErrorCodes["InvalidSelectionFieldName"] = "invalid-selection-field-name"; + /** + * An invalid value was specified in a Sheet.selectMarksAsync() call. + */ + ErrorCodes["InvalidSelectionValue"] = "invalid-selection-value"; + /** + * A required parameter was not specified, null, or an empty string/array. + */ + ErrorCodes["NullOrEmptyParameter"] = "null-or-empty-parameter"; + /** + * An unknown event name was specified in the call to Viz.addEventListeneror Viz.removeEventListener. + */ + ErrorCodes["UnsupportedEventName"] = "unsupported-event-name"; + })(ErrorCodes = exports.ErrorCodes || (exports.ErrorCodes = {})); + /** + * Type of aggregation on a field. + */ + var FieldAggregationType; + (function (FieldAggregationType) { + FieldAggregationType["Sum"] = "sum"; + FieldAggregationType["Avg"] = "avg"; + FieldAggregationType["Min"] = "min"; + FieldAggregationType["Max"] = "max"; + FieldAggregationType["Stdev"] = "stdev"; + FieldAggregationType["Stdevp"] = "stdevp"; + FieldAggregationType["Var"] = "var"; + FieldAggregationType["Varp"] = "varp"; + FieldAggregationType["Count"] = "count"; + FieldAggregationType["Countd"] = "countd"; + FieldAggregationType["Median"] = "median"; + FieldAggregationType["Attr"] = "attr"; + FieldAggregationType["None"] = "none"; + FieldAggregationType["Year"] = "year"; + FieldAggregationType["Qtr"] = "qtr"; + FieldAggregationType["Month"] = "month"; + FieldAggregationType["Day"] = "day"; + FieldAggregationType["Hour"] = "hour"; + FieldAggregationType["Minute"] = "minute"; + FieldAggregationType["Second"] = "second"; + FieldAggregationType["Week"] = "week"; + FieldAggregationType["Weekday"] = "weekday"; + FieldAggregationType["MonthYear"] = "month-year"; + FieldAggregationType["Mdy"] = "mdy"; + FieldAggregationType["End"] = "end"; + FieldAggregationType["TruncYear"] = "trunc-year"; + FieldAggregationType["TruncQtr"] = "trunc-qtr"; + FieldAggregationType["TruncMonth"] = "trunc-month"; + FieldAggregationType["TruncWeek"] = "trunc-week"; + FieldAggregationType["TruncDay"] = "trunc-day"; + FieldAggregationType["TruncHour"] = "trunc-hour"; + FieldAggregationType["TruncMinute"] = "trunc-minute"; + FieldAggregationType["TruncSecond"] = "trunc-second"; + FieldAggregationType["Quart1"] = "quart1"; + FieldAggregationType["Quart3"] = "quart3"; + FieldAggregationType["Skewness"] = "skewness"; + FieldAggregationType["Kurtosis"] = "kurtosis"; + FieldAggregationType["InOut"] = "in-out"; + FieldAggregationType["User"] = "user"; + })(FieldAggregationType = exports.FieldAggregationType || (exports.FieldAggregationType = {})); + /** + * Role of a field. + */ + var FieldRoleType; + (function (FieldRoleType) { + FieldRoleType["Dimension"] = "dimension"; + FieldRoleType["Measure"] = "measure"; + FieldRoleType["Unknown"] = "unknown"; + })(FieldRoleType = exports.FieldRoleType || (exports.FieldRoleType = {})); + /** + * An enumeration of the valid types of filters that can be applied. + */ + var FilterType; + (function (FilterType) { + FilterType["Categorical"] = "categorical"; + FilterType["Range"] = "range"; + FilterType["Hierarchical"] = "hierarchical"; + FilterType["RelativeDate"] = "relative-date"; + })(FilterType = exports.FilterType || (exports.FilterType = {})); + /** + * The different update types for applying filter + */ + var FilterUpdateType; + (function (FilterUpdateType) { + FilterUpdateType["Add"] = "add"; + FilterUpdateType["All"] = "all"; + FilterUpdateType["Replace"] = "replace"; + FilterUpdateType["Remove"] = "remove"; + })(FilterUpdateType = exports.FilterUpdateType || (exports.FilterUpdateType = {})); + /** + * The domain type for a filter + */ + var FilterDomainType; + (function (FilterDomainType) { + /** + * The domain values that are relevant to the specified filter + * i.e. the domain is restricted by a previous filter + */ + FilterDomainType["Relevant"] = "relevant"; + /** + * list of all possible domain values from database + */ + FilterDomainType["Database"] = "database"; + })(FilterDomainType = exports.FilterDomainType || (exports.FilterDomainType = {})); + /** + * The option for specifying which values to include for filtering + * Indicates what to do with null values for a given filter or mark selection call. + */ + var FilterNullOption; + (function (FilterNullOption) { + FilterNullOption["NullValues"] = "null-values"; + FilterNullOption["NonNullValues"] = "non-null-values"; + FilterNullOption["AllValues"] = "all-values"; + })(FilterNullOption = exports.FilterNullOption || (exports.FilterNullOption = {})); + /** + * Type of mark for a given marks card in a viz. + */ + var MarkType; + (function (MarkType) { + MarkType["Bar"] = "bar"; + MarkType["Line"] = "line"; + MarkType["Area"] = "area"; + MarkType["Square"] = "square"; + MarkType["Circle"] = "circle"; + MarkType["Shape"] = "shape"; + MarkType["Text"] = "text"; + MarkType["Map"] = "map"; + MarkType["Pie"] = "pie"; + MarkType["GanttBar"] = "gantt-bar"; + MarkType["Polygon"] = "polygon"; + })(MarkType = exports.MarkType || (exports.MarkType = {})); + /** + * An enumeration describing the different types of allowable values. + * This is used for restricting the domain of a parameter + */ + var ParameterValueType; + (function (ParameterValueType) { + ParameterValueType["All"] = "all"; + ParameterValueType["List"] = "list"; + ParameterValueType["Range"] = "range"; + })(ParameterValueType = exports.ParameterValueType || (exports.ParameterValueType = {})); + /** + * Date period used in filters and in parameters. + */ + var PeriodType; + (function (PeriodType) { + PeriodType["Years"] = "years"; + PeriodType["Quarters"] = "quarters"; + PeriodType["Months"] = "months"; + PeriodType["Weeks"] = "weeks"; + PeriodType["Days"] = "days"; + PeriodType["Hours"] = "hours"; + PeriodType["Minutes"] = "minutes"; + PeriodType["Seconds"] = "seconds"; + })(PeriodType = exports.PeriodType || (exports.PeriodType = {})); + var QuickTableCalcType; + (function (QuickTableCalcType) { + QuickTableCalcType["RunningTotal"] = "running-total"; + QuickTableCalcType["Difference"] = "difference"; + QuickTableCalcType["PercentDifference"] = "percent-difference"; + QuickTableCalcType["PercentOfTotal"] = "percent-of-total"; + QuickTableCalcType["Rank"] = "rank"; + QuickTableCalcType["Percentile"] = "percentile"; + QuickTableCalcType["MovingAverage"] = "moving-average"; + QuickTableCalcType["YTDTotal"] = "ytd-total"; + QuickTableCalcType["CompoundGrowthRate"] = "compound-growth-rate"; + QuickTableCalcType["YearOverYearGrowth"] = "year-over-year-growth"; + QuickTableCalcType["YTDGrowth"] = "ytd-growth"; + QuickTableCalcType["Undefined"] = "undefined"; + })(QuickTableCalcType = exports.QuickTableCalcType || (exports.QuickTableCalcType = {})); + /** + * Enum for specifying the selection type for select marks api. + */ + var SelectionUpdateType; + (function (SelectionUpdateType) { + SelectionUpdateType["Replace"] = "select-replace"; + SelectionUpdateType["Add"] = "select-add"; + SelectionUpdateType["Remove"] = "select-remove"; + })(SelectionUpdateType = exports.SelectionUpdateType || (exports.SelectionUpdateType = {})); + /** + * The type of sheet a Sheet object represents + */ + var SheetType; + (function (SheetType) { + SheetType["Dashboard"] = "dashboard"; + SheetType["Story"] = "story"; + SheetType["Worksheet"] = "worksheet"; + })(SheetType = exports.SheetType || (exports.SheetType = {})); + var SortDirection; + (function (SortDirection) { + SortDirection["Increasing"] = "increasing"; + SortDirection["Decreasing"] = "decreasing"; + })(SortDirection = exports.SortDirection || (exports.SortDirection = {})); + /** + * Represents a certain type of event which can be listened for + */ + var TableauEventType; + (function (TableauEventType) { + /** Raised when any filter has changed state.*/ + TableauEventType["FilterChanged"] = "filter-changed"; + /** The selected marks on a visualization has changed */ + TableauEventType["MarkSelectionChanged"] = "mark-selection-changed"; + /** A parameter has had its value modified */ + TableauEventType["ParameterChanged"] = "parameter-changed"; + })(TableauEventType = exports.TableauEventType || (exports.TableauEventType = {})); + var TrendLineModelType; + (function (TrendLineModelType) { + TrendLineModelType["Linear"] = "linear"; + TrendLineModelType["Logarithmic"] = "logarithmic"; + TrendLineModelType["Exponential"] = "exponential"; + TrendLineModelType["Polynomial"] = "polynomial"; + })(TrendLineModelType = exports.TrendLineModelType || (exports.TrendLineModelType = {})); + //# sourceMappingURL=Enums.js.map + +/***/ }, +/* 18 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + var TableauSheetEvent_1 = __webpack_require__(19); + var TableauWorksheetEvent = (function (_super) { + __extends(TableauWorksheetEvent, _super); + function TableauWorksheetEvent(type, _worksheet) { + var _this = _super.call(this, type, _worksheet) || this; + _this._worksheet = _worksheet; + return _this; + } + Object.defineProperty(TableauWorksheetEvent.prototype, "worksheet", { + get: function () { + return this._worksheet; + }, + enumerable: true, + configurable: true + }); + return TableauWorksheetEvent; + }(TableauSheetEvent_1.TableauSheetEvent)); + exports.TableauWorksheetEvent = TableauWorksheetEvent; + //# sourceMappingURL=TableauWorksheetEvent.js.map + +/***/ }, +/* 19 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + var TableauEvent_1 = __webpack_require__(20); + var TableauSheetEvent = (function (_super) { + __extends(TableauSheetEvent, _super); + function TableauSheetEvent(type, sheet) { + var _this = _super.call(this, type) || this; + _this._sheet = sheet; + return _this; + } + Object.defineProperty(TableauSheetEvent.prototype, "sheet", { + get: function () { + return this._sheet; + }, + enumerable: true, + configurable: true + }); + return TableauSheetEvent; + }(TableauEvent_1.TableauEvent)); + exports.TableauSheetEvent = TableauSheetEvent; + //# sourceMappingURL=TableauSheetEvent.js.map + +/***/ }, +/* 20 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var TableauEvent = (function () { + function TableauEvent(type) { + this._type = type; + } + Object.defineProperty(TableauEvent.prototype, "type", { + get: function () { + return this._type; + }, + enumerable: true, + configurable: true + }); + return TableauEvent; + }()); + exports.TableauEvent = TableauEvent; + //# sourceMappingURL=TableauEvent.js.map + +/***/ }, +/* 21 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + var Contract = __webpack_require__(16); + var TableauWorksheetEvent_1 = __webpack_require__(18); + var MarksSelectedEvent = (function (_super) { + __extends(MarksSelectedEvent, _super); + function MarksSelectedEvent(worksheet) { + return _super.call(this, Contract.TableauEventType.MarkSelectionChanged, worksheet) || this; + } + MarksSelectedEvent.prototype.getMarksAsync = function () { + return this.worksheet.getSelectedMarksAsync(); + }; + return MarksSelectedEvent; + }(TableauWorksheetEvent_1.TableauWorksheetEvent)); + exports.MarksSelectedEvent = MarksSelectedEvent; + //# sourceMappingURL=MarksSelectedEvent.js.map + +/***/ }, +/* 22 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * This class implements the SingleEventManager interface for a single type of Tableau event + * + * @template TEventType The Tableau event type this class specializes + */ + var SingleEventManagerImpl = (function () { + function SingleEventManagerImpl(eventType) { + this._eventType = eventType; + this._handlers = []; + } + Object.defineProperty(SingleEventManagerImpl.prototype, "eventType", { + get: function () { + return this._eventType; + }, + enumerable: true, + configurable: true + }); + SingleEventManagerImpl.prototype.addEventListener = function (handler) { + var _this = this; + this._handlers.push(handler); + return function () { return _this.removeEventListener(handler); }; + }; + SingleEventManagerImpl.prototype.removeEventListener = function (handler) { + var beforeCount = this._handlers.length; + this._handlers = this._handlers.filter(function (h) { return h !== handler; }); + return beforeCount > this._handlers.length; + }; + SingleEventManagerImpl.prototype.triggerEvent = function (eventGenerator) { + for (var _i = 0, _a = this._handlers; _i < _a.length; _i++) { + var handler = _a[_i]; + try { + var eventModel = eventGenerator(); + handler(eventModel); + } + catch (e) { + // Since this handler could be outside our control, just catch anything it throws and continue on + continue; + } + } + }; + return SingleEventManagerImpl; + }()); + exports.SingleEventManagerImpl = SingleEventManagerImpl; + //# sourceMappingURL=SingleEventManagerImpl.js.map + +/***/ }, +/* 23 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * Defines which type of getData call to make. + */ + var GetDataType; + (function (GetDataType) { + GetDataType["Summary"] = "summary"; + GetDataType["Underlying"] = "underlying"; + })(GetDataType = exports.GetDataType || (exports.GetDataType = {})); + //# sourceMappingURL=GetDataService.js.map + +/***/ }, +/* 24 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var DataSourceServiceImpl_1 = __webpack_require__(25); + var FilterServiceImpl_1 = __webpack_require__(26); + var GetDataServiceImpl_1 = __webpack_require__(34); + var NotificationServiceImpl_1 = __webpack_require__(35); + var ParametersServiceImpl_1 = __webpack_require__(36); + var SelectionServiceImpl_1 = __webpack_require__(39); + var ServiceRegistry_1 = __webpack_require__(33); + function registerAllSharedServices(dispatcher) { + ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new DataSourceServiceImpl_1.DataSourceServiceImpl(dispatcher)); + ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new GetDataServiceImpl_1.GetDataServiceImpl(dispatcher)); + ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new FilterServiceImpl_1.FilterServiceImpl(dispatcher)); + ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new NotificationServiceImpl_1.NotificationServiceImpl(dispatcher)); + ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new ParametersServiceImpl_1.ParametersServiceImpl(dispatcher)); + ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new SelectionServiceImpl_1.SelectionServiceImpl(dispatcher)); + } + exports.registerAllSharedServices = registerAllSharedServices; + //# sourceMappingURL=RegisterAllSharedServices.js.map + +/***/ }, +/* 25 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_internal_contract_1 = __webpack_require__(2); + var DataSourceServiceImpl = (function () { + function DataSourceServiceImpl(_dispatcher) { + this._dispatcher = _dispatcher; + } + Object.defineProperty(DataSourceServiceImpl.prototype, "serviceName", { + get: function () { + return "data-source-service" /* DataSourceService */; + }, + enumerable: true, + configurable: true + }); + DataSourceServiceImpl.prototype.refreshAsync = function (dataSourceId) { + var parameters = (_a = {}, _a[api_internal_contract_1.ParameterId.DataSourceId] = dataSourceId, _a); + return this._dispatcher.execute(api_internal_contract_1.VerbId.RefreshDataSource, parameters).then(function (response) { + return; + }); + var _a; + }; + DataSourceServiceImpl.prototype.getDataSourcesAsync = function () { + return this._dispatcher.execute(api_internal_contract_1.VerbId.GetDataSources, {}).then(function (response) { + var dataSchema = response.result; + return dataSchema; + }); + }; + return DataSourceServiceImpl; + }()); + exports.DataSourceServiceImpl = DataSourceServiceImpl; + //# sourceMappingURL=DataSourceServiceImpl.js.map + +/***/ }, +/* 26 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var Contract = __webpack_require__(16); + var api_internal_contract_1 = __webpack_require__(2); + var api_utils_1 = __webpack_require__(27); + var ExternalToInternalEnumMappings_1 = __webpack_require__(30); + var InternalToExternalEnumMappings_1 = __webpack_require__(31); + var FilterModels_1 = __webpack_require__(32); + var GetDataModels_1 = __webpack_require__(13); + var FilterServiceImpl = (function () { + function FilterServiceImpl(dispatcher) { + this._dispatcher = dispatcher; + } + Object.defineProperty(FilterServiceImpl.prototype, "serviceName", { + get: function () { + return "filter-service" /* Filter */; + }, + enumerable: true, + configurable: true + }); + FilterServiceImpl.prototype.applyFilterAsync = function (visualId, fieldName, values, updateType, filterOptions) { + if (!api_utils_1.Param.isValidEnumValue(updateType, Contract.FilterUpdateType)) { + throw new Error('Invalid value for parameter FilterUpdateType'); + } + var verb = api_internal_contract_1.VerbId.ApplyCategoricalFilter; + var parameters = {}; + parameters[api_internal_contract_1.ParameterId.VisualId] = visualId; + parameters[api_internal_contract_1.ParameterId.FieldName] = fieldName; + parameters[api_internal_contract_1.ParameterId.FilterValues] = values; + parameters[api_internal_contract_1.ParameterId.FilterUpdateType] = updateType; + parameters[api_internal_contract_1.ParameterId.IsExcludeMode] = + (filterOptions === undefined || filterOptions.isExcludeMode === undefined) ? false : filterOptions.isExcludeMode; + return this._dispatcher.execute(verb, parameters).then(function (response) { + var error = response.result; + if (!(error.errorCode === null || error.errorCode === undefined)) { + // TODO: come back and implement error handling logic + throw new Error('Error Applying Filter: ' + error.errorCode); + } + return fieldName; + }); + }; + FilterServiceImpl.prototype.applyRangeFilterAsync = function (visualId, fieldName, filterOptions) { + if (!filterOptions) { + throw new Error('Missing Parameter: RangeFilterOptions'); + } + api_utils_1.Param.verifyRangeParamType(filterOptions.min, filterOptions.max); + var verb = api_internal_contract_1.VerbId.ApplyRangeFilter; + var parameters = {}; + if (filterOptions.min) { + var min = void 0; + if (filterOptions.min instanceof Date) { + min = api_utils_1.Param.serializeDateForPlatform(filterOptions.min); + } + else { + min = filterOptions.min; + } + parameters[api_internal_contract_1.ParameterId.FilterRangeMin] = min; + } + if (filterOptions.max) { + var max = void 0; + if (filterOptions.max instanceof Date) { + max = api_utils_1.Param.serializeDateForPlatform(filterOptions.max); + } + else { + max = filterOptions.max; + } + parameters[api_internal_contract_1.ParameterId.FilterRangeMax] = max; + } + if (filterOptions.nullOption) { + if (!api_utils_1.Param.isValidEnumValue(filterOptions.nullOption, Contract.FilterNullOption)) { + throw new Error('Invalid value for parameter NullOption'); + } + parameters[api_internal_contract_1.ParameterId.FilterRangeNullOption] = ExternalToInternalEnumMappings_1.ExternalToInternalEnumMappings.nullOptions.convert(filterOptions.nullOption); + } + parameters[api_internal_contract_1.ParameterId.FieldName] = fieldName; + parameters[api_internal_contract_1.ParameterId.VisualId] = visualId; + return this._dispatcher.execute(verb, parameters).then(function (response) { + return fieldName; + }); + }; + FilterServiceImpl.prototype.clearFilterAsync = function (visualId, fieldName) { + var verb = api_internal_contract_1.VerbId.ClearFilter; + var parameters = {}; + parameters[api_internal_contract_1.ParameterId.VisualId] = visualId; + parameters[api_internal_contract_1.ParameterId.FieldName] = fieldName; + return this._dispatcher.execute(verb, parameters).then(function (resposne) { + return fieldName; + }); + }; + FilterServiceImpl.prototype.getFiltersAsync = function (visualId) { + var _this = this; + var verb = api_internal_contract_1.VerbId.GetFilters; + var parameters = {}; + parameters[api_internal_contract_1.ParameterId.VisualId] = visualId; + return this._dispatcher.execute(verb, parameters).then(function (response) { + var filters = response.result; + return _this.convertDomainFilters(filters); + }); + }; + FilterServiceImpl.prototype.getCategoricalDomainAsync = function (worksheetName, fieldId, domainType) { + var _this = this; + if (!api_utils_1.Param.isValidEnumValue(domainType, Contract.FilterDomainType)) { + throw new Error('Invalid value for parameter FilterDomainType'); + } + var verb = api_internal_contract_1.VerbId.GetCategoricalDomain; + var parameters = {}; + parameters[api_internal_contract_1.ParameterId.VisualId] = { + worksheet: worksheetName + }; + parameters[api_internal_contract_1.ParameterId.FieldId] = fieldId; + parameters[api_internal_contract_1.ParameterId.DomainType] = domainType; + return this._dispatcher.execute(verb, parameters).then(function (response) { + var domain = response.result; + return _this.convertCategoricalDomain(domain, domainType); + }); + }; + FilterServiceImpl.prototype.getRangeDomainAsync = function (worksheetName, fieldId, domainType) { + var _this = this; + if (!api_utils_1.Param.isValidEnumValue(domainType, Contract.FilterDomainType)) { + throw new Error('Invalid value for parameter FilterDomainType'); + } + var verb = api_internal_contract_1.VerbId.GetRangeDomain; + var parameters = {}; + parameters[api_internal_contract_1.ParameterId.VisualId] = { + worksheet: worksheetName + }; + parameters[api_internal_contract_1.ParameterId.FieldId] = fieldId; + parameters[api_internal_contract_1.ParameterId.DomainType] = ExternalToInternalEnumMappings_1.ExternalToInternalEnumMappings.filterDomainType.convert(domainType); + return this._dispatcher.execute(verb, parameters).then(function (response) { + var domain = response.result; + return _this.convertRangeDomain(domain, domainType); + }); + }; + // Helper Methods + FilterServiceImpl.prototype.convertDomainFilters = function (domainFilters) { + var _this = this; + var filters = []; + domainFilters.forEach(function (domainFilter) { + switch (domainFilter.filterType) { + case api_internal_contract_1.FilterType.Categorical: { + var filter = domainFilter; + if (filter) { + filters.push(_this.convertCategoricalFilter(filter)); + } + else { + throw new Error('Invalid Categorical Filter'); + } + break; + } + case api_internal_contract_1.FilterType.Range: { + var filter = domainFilter; + if (filter) { + filters.push(_this.convertRangeFilter(filter)); + } + else { + throw new Error('Invalid Range Filter'); + } + break; + } + case api_internal_contract_1.FilterType.RelativeDate: { + var filter = domainFilter; + if (filter) { + filters.push(_this.convertRelativeDateFilter(filter)); + } + else { + throw new Error('Invalid Relative Date Filter'); + } + break; + } + default: { + break; + } + } + }); + return filters; + }; + FilterServiceImpl.prototype.convertCategoricalFilter = function (domainFilter) { + var appliedValues = domainFilter.values.map(function (dv) { + return new GetDataModels_1.DataValue(dv.value, dv.formattedValue); + }); + return new FilterModels_1.CategoricalFilter(domainFilter.visualId.worksheet, domainFilter.fieldCaption, domainFilter.fieldName, Contract.FilterType.Categorical, appliedValues, domainFilter.isExclude); + }; + FilterServiceImpl.prototype.convertRangeFilter = function (domainFilter) { + var minValue = new GetDataModels_1.DataValue(domainFilter.min.value, domainFilter.min.formattedValue); + var maxValue = new GetDataModels_1.DataValue(domainFilter.max.value, domainFilter.max.formattedValue); + return new FilterModels_1.RangeFilter(domainFilter.visualId.worksheet, domainFilter.fieldCaption, domainFilter.fieldName, Contract.FilterType.Range, minValue, maxValue, domainFilter.includeNullValues); + }; + FilterServiceImpl.prototype.convertRelativeDateFilter = function (domainFilter) { + var anchorDateValue = new GetDataModels_1.DataValue(domainFilter.anchorDate.value, domainFilter.anchorDate.formattedValue); + return new FilterModels_1.RelativeDateFilter(domainFilter.visualId.worksheet, domainFilter.fieldCaption, domainFilter.fieldName, Contract.FilterType.RelativeDate, anchorDateValue, InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.dateStepPeriod.convert(domainFilter.periodType), InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.dateRangeType.convert(domainFilter.rangeType), domainFilter.rangeN); + }; + FilterServiceImpl.prototype.convertCategoricalDomain = function (domain, domainType) { + var values = domain.values.map(function (domainDv) { + return new GetDataModels_1.DataValue(domainDv.value, domainDv.formattedValue); + }); + return new FilterModels_1.CategoricalDomain(values, domainType); + }; + FilterServiceImpl.prototype.convertRangeDomain = function (domain, domainType) { + var min = new GetDataModels_1.DataValue(domain.min.value, domain.min.formattedValue); + var max = new GetDataModels_1.DataValue(domain.max.value, domain.max.formattedValue); + return new FilterModels_1.RangeDomain(min, max, domainType); + }; + return FilterServiceImpl; + }()); + exports.FilterServiceImpl = FilterServiceImpl; + //# sourceMappingURL=FilterServiceImpl.js.map + +/***/ }, +/* 27 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + /** + * This is your main. This is where you re-export everything you want to be publicly available. + * + * The build enforces that the file has the same name as the global variable that is exported. + */ + Object.defineProperty(exports, "__esModule", { value: true }); + var EnumConverter_1 = __webpack_require__(28); + exports.EnumConverter = EnumConverter_1.EnumConverter; + var Param_1 = __webpack_require__(29); + exports.Param = Param_1.Param; + //# sourceMappingURL=ApiUtils.js.map + +/***/ }, +/* 28 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * This class converts from a source enum value to destination enum + * value given a mapping from source to destination when constructed. + */ + var EnumConverter = (function () { + function EnumConverter(_mappings, _defaultVal) { + this._mappings = _mappings; + this._defaultVal = _defaultVal; + } + EnumConverter.prototype.convert = function (enumVal, throwIfMissing) { + if (this._mappings.hasOwnProperty(enumVal)) { + return this._mappings[enumVal]; + } + if (this._defaultVal !== undefined && !throwIfMissing) { + return this._defaultVal; + } + throw new Error('Mapping not found for ' + enumVal); + }; + return EnumConverter; + }()); + exports.EnumConverter = EnumConverter; + //# sourceMappingURL=EnumConverter.js.map + +/***/ }, +/* 29 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var Param = (function () { + function Param() { + } + /** + * Verifies that an incoming parameter is 'truthy' and throws + * an error if it's not. This will throw an error if the value + * is null, undefined, NaN, the empty string, 0, or false. + * + * @param argumentValue value to verify + * @param argumentName name of argument to verify + */ + /*tslint:disable-next-line */ + Param.verifyValue = function (argumentValue, argumentName) { + if (!argumentValue) { + throw new Error('Value is invalid for argument: ' + argumentName); + } + }; + /** + * Verifies that a string is valid. Throws an error if the string is + * null, undefined, or NaN. + * + * @param argumentValue value to verify + * @param argumentName name of argument to verify + */ + Param.verifyString = function (argumentValue, argumentName) { + if (argumentValue === null || argumentValue === undefined) { + throw new Error('String value is invalid for argument: ' + argumentName); + } + }; + /** + * Verifies the value is part of the Enum + * + * String enums are {string : string} dictionaries which are not reverse mappable + * This is an ugly workaround + * @param value value to verify + * @param enumType enum to verify against + */ + /* tslint:disable:no-any */ + Param.isValidEnumValue = function (value, enumType) { + var isValid = false; + Object.keys(enumType).forEach(function (enumKey) { + if (enumType[enumKey] === value.toString()) { + isValid = true; + } + }); + return isValid; + }; + /* tslint:enable:no-any */ + /** + * serializes the date into the format that the server expects. + * @param date the date to serialize + */ + Param.serializeDateForPlatform = function (date) { + var year = date.getUTCFullYear(); + var month = date.getUTCMonth() + 1; + var day = date.getUTCDate(); + var hh = date.getUTCHours(); + var mm = date.getUTCMinutes(); + var sec = date.getUTCSeconds(); + return year + '-' + month + '-' + day + ' ' + hh + ':' + mm + ':' + sec; + }; + Param.serializeBooleanForPlatform = function (bool) { + return bool ? 'true' : 'false'; + }; + Param.serializeNumberForPlatform = function (num) { + return num.toString(10); + }; + /** + * Verifies the params min and max for applying range filter + * @param min range min + * @param max range max + */ + /* tslint:disable:no-any */ + Param.verifyRangeParamType = function (min, max) { + /* tslint:enable:no-any */ + if (!min && !max) { + throw new Error('Missing Parameter: At least one of min or max is required'); + } + if (!Param.isTypeNumber(min) && !Param.isTypeDate(min)) { + throw new Error('Invalid Parameter Type: Only Date and number are allowed for parameter min'); + } + if (!Param.isTypeNumber(max) && !Param.isTypeDate(max)) { + throw new Error('Invalid Parameter Type: Only Date and number are allowed for parameter max'); + } + if (typeof (min) !== typeof (max)) { + throw new Error('Invalid Parameter Type: Parameters min and max should be of the same type'); + } + }; + /** + * Verifies the input is a number + */ + /* tslint:disable:no-any */ + Param.isTypeNumber = function (input) { + return typeof (input) === 'number' || input instanceof Number; + }; + /* tslint:enable:no-any */ + /** + * Verifies the input is a Date + */ + /* tslint:disable:no-any */ + Param.isTypeDate = function (input) { + return input instanceof Date; + }; + /* tslint:enable:no-any */ + /* tslint:disable-next-line:no-any */ + Param.isTypeString = function (input) { + return typeof (input) === 'string' || input instanceof String; + }; + /* tslint:disable-next-line:no-any */ + Param.isTypeBool = function (input) { + return typeof (input) === 'boolean' || input instanceof Boolean; + }; + /* tslint:disable-next-line:no-any */ + Param.serializeParamterValue = function (value) { + if (Param.isTypeNumber(value)) { + return Param.serializeNumberForPlatform(value); + } + else if (Param.isTypeDate(value)) { + return Param.serializeDateForPlatform(value); + } + else if (Param.isTypeBool(value)) { + return Param.serializeBooleanForPlatform(value); + } + else if (Param.isTypeString(value)) { + return value; + } + else { + throw new Error('Value is invalid for argument: value'); + } + }; + return Param; + }()); + exports.Param = Param; + //# sourceMappingURL=Param.js.map + +/***/ }, +/* 30 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_external_contract_1 = __webpack_require__(16); + var api_internal_contract_1 = __webpack_require__(2); + var api_utils_1 = __webpack_require__(27); + /* tslint:disable:typedef - Disable this to make declaring these classes a bit easier */ + /** + * Maps enums used by the external-api-contract to the enums used + * in the internal-api-contract, which developers code against. + */ + var ExternalToInternalEnumMappings = (function () { + function ExternalToInternalEnumMappings() { + } + ExternalToInternalEnumMappings.nullOptions = new api_utils_1.EnumConverter((_a = {}, + _a[api_external_contract_1.FilterNullOption.AllValues] = api_internal_contract_1.FilterNullOption.AllValues, + _a[api_external_contract_1.FilterNullOption.NonNullValues] = api_internal_contract_1.FilterNullOption.NonNullValues, + _a[api_external_contract_1.FilterNullOption.NonNullValues] = api_internal_contract_1.FilterNullOption.NullValues, + _a)); + ExternalToInternalEnumMappings.filterDomainType = new api_utils_1.EnumConverter((_b = {}, + _b[api_external_contract_1.FilterDomainType.Relevant] = api_internal_contract_1.FilterDomainType.Relevant, + _b[api_external_contract_1.FilterDomainType.Database] = api_internal_contract_1.FilterDomainType.Database, + _b)); + return ExternalToInternalEnumMappings; + }()); + exports.ExternalToInternalEnumMappings = ExternalToInternalEnumMappings; + var _a, _b; + /* tslint:enable:typedef */ + //# sourceMappingURL=ExternalToInternalEnumMappings.js.map + +/***/ }, +/* 31 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_external_contract_1 = __webpack_require__(16); + var api_internal_contract_1 = __webpack_require__(2); + var api_utils_1 = __webpack_require__(27); + /* tslint:disable:typedef - Disable this to make declaring these classes a bit easier */ + /** + * Maps enums used by the internal-api-contract to the enums used + * in the external-api-contract, which developers code against. + */ + var InternalToExternalEnumMappings = (function () { + function InternalToExternalEnumMappings() { + } + InternalToExternalEnumMappings.addInContext = new api_utils_1.EnumConverter((_a = {}, + _a[api_internal_contract_1.AddInContext.Desktop] = api_external_contract_1.AddInContext.Desktop, + _a[api_internal_contract_1.AddInContext.Server] = api_external_contract_1.AddInContext.Server, + _a)); + InternalToExternalEnumMappings.addInMode = new api_utils_1.EnumConverter((_b = {}, + _b[api_internal_contract_1.AddInMode.Authoring] = api_external_contract_1.AddInMode.Authoring, + _b[api_internal_contract_1.AddInMode.Viewing] = api_external_contract_1.AddInMode.Viewing, + _b)); + InternalToExternalEnumMappings.columnType = new api_utils_1.EnumConverter((_c = {}, + _c[api_internal_contract_1.ColumnType.Continuous] = api_external_contract_1.ColumnType.Continuous, + _c[api_internal_contract_1.ColumnType.Discrete] = api_external_contract_1.ColumnType.Discrete, + _c)); + InternalToExternalEnumMappings.fieldAggregationType = new api_utils_1.EnumConverter((_d = {}, + _d[api_internal_contract_1.FieldAggregationType.Attr] = api_external_contract_1.FieldAggregationType.Attr, + _d[api_internal_contract_1.FieldAggregationType.Avg] = api_external_contract_1.FieldAggregationType.Avg, + _d[api_internal_contract_1.FieldAggregationType.Count] = api_external_contract_1.FieldAggregationType.Count, + _d[api_internal_contract_1.FieldAggregationType.Countd] = api_external_contract_1.FieldAggregationType.Countd, + _d[api_internal_contract_1.FieldAggregationType.Day] = api_external_contract_1.FieldAggregationType.Day, + _d[api_internal_contract_1.FieldAggregationType.End] = api_external_contract_1.FieldAggregationType.End, + _d[api_internal_contract_1.FieldAggregationType.Hour] = api_external_contract_1.FieldAggregationType.Hour, + _d[api_internal_contract_1.FieldAggregationType.InOut] = api_external_contract_1.FieldAggregationType.InOut, + _d[api_internal_contract_1.FieldAggregationType.Kurtosis] = api_external_contract_1.FieldAggregationType.Kurtosis, + _d[api_internal_contract_1.FieldAggregationType.Max] = api_external_contract_1.FieldAggregationType.Max, + _d[api_internal_contract_1.FieldAggregationType.Mdy] = api_external_contract_1.FieldAggregationType.Mdy, + _d[api_internal_contract_1.FieldAggregationType.Median] = api_external_contract_1.FieldAggregationType.Median, + _d[api_internal_contract_1.FieldAggregationType.Min] = api_external_contract_1.FieldAggregationType.Min, + _d[api_internal_contract_1.FieldAggregationType.Minute] = api_external_contract_1.FieldAggregationType.Minute, + _d[api_internal_contract_1.FieldAggregationType.MonthYear] = api_external_contract_1.FieldAggregationType.MonthYear, + _d[api_internal_contract_1.FieldAggregationType.None] = api_external_contract_1.FieldAggregationType.None, + _d[api_internal_contract_1.FieldAggregationType.Qtr] = api_external_contract_1.FieldAggregationType.Qtr, + _d[api_internal_contract_1.FieldAggregationType.Quart1] = api_external_contract_1.FieldAggregationType.Quart1, + _d[api_internal_contract_1.FieldAggregationType.Quart3] = api_external_contract_1.FieldAggregationType.Quart3, + _d[api_internal_contract_1.FieldAggregationType.Second] = api_external_contract_1.FieldAggregationType.Second, + _d[api_internal_contract_1.FieldAggregationType.Skewness] = api_external_contract_1.FieldAggregationType.Skewness, + _d[api_internal_contract_1.FieldAggregationType.Stdev] = api_external_contract_1.FieldAggregationType.Stdev, + _d[api_internal_contract_1.FieldAggregationType.Stdevp] = api_external_contract_1.FieldAggregationType.Stdevp, + _d[api_internal_contract_1.FieldAggregationType.Sum] = api_external_contract_1.FieldAggregationType.Sum, + _d[api_internal_contract_1.FieldAggregationType.TruncDay] = api_external_contract_1.FieldAggregationType.TruncDay, + _d[api_internal_contract_1.FieldAggregationType.TruncHour] = api_external_contract_1.FieldAggregationType.TruncHour, + _d[api_internal_contract_1.FieldAggregationType.TruncMinute] = api_external_contract_1.FieldAggregationType.TruncMinute, + _d[api_internal_contract_1.FieldAggregationType.TruncMonth] = api_external_contract_1.FieldAggregationType.TruncMonth, + _d[api_internal_contract_1.FieldAggregationType.TruncQtr] = api_external_contract_1.FieldAggregationType.TruncQtr, + _d[api_internal_contract_1.FieldAggregationType.TruncSecond] = api_external_contract_1.FieldAggregationType.TruncSecond, + _d[api_internal_contract_1.FieldAggregationType.TruncWeek] = api_external_contract_1.FieldAggregationType.TruncWeek, + _d[api_internal_contract_1.FieldAggregationType.TruncYear] = api_external_contract_1.FieldAggregationType.TruncYear, + _d[api_internal_contract_1.FieldAggregationType.User] = api_external_contract_1.FieldAggregationType.User, + _d[api_internal_contract_1.FieldAggregationType.Var] = api_external_contract_1.FieldAggregationType.Var, + _d[api_internal_contract_1.FieldAggregationType.Varp] = api_external_contract_1.FieldAggregationType.Varp, + _d[api_internal_contract_1.FieldAggregationType.Week] = api_external_contract_1.FieldAggregationType.Week, + _d[api_internal_contract_1.FieldAggregationType.Weekday] = api_external_contract_1.FieldAggregationType.Weekday, + _d[api_internal_contract_1.FieldAggregationType.Year] = api_external_contract_1.FieldAggregationType.Year, + _d)); + InternalToExternalEnumMappings.fieldRoleType = new api_utils_1.EnumConverter((_e = {}, + _e[api_internal_contract_1.FieldRoleType.Dimension] = api_external_contract_1.FieldRoleType.Dimension, + _e[api_internal_contract_1.FieldRoleType.Measure] = api_external_contract_1.FieldRoleType.Measure, + _e[api_internal_contract_1.FieldRoleType.Unknown] = api_external_contract_1.FieldRoleType.Unknown, + _e)); + InternalToExternalEnumMappings.sheetType = new api_utils_1.EnumConverter((_f = {}, + _f[api_internal_contract_1.SheetType.Dashboard] = api_external_contract_1.SheetType.Dashboard, + _f[api_internal_contract_1.SheetType.Story] = api_external_contract_1.SheetType.Story, + _f[api_internal_contract_1.SheetType.Worksheet] = api_external_contract_1.SheetType.Worksheet, + _f)); + InternalToExternalEnumMappings.dashboardObjectType = new api_utils_1.EnumConverter((_g = {}, + _g[api_internal_contract_1.DashboardObjectType.AddIn] = api_external_contract_1.DashboardObjectType.AddIn, + _g[api_internal_contract_1.DashboardObjectType.Blank] = api_external_contract_1.DashboardObjectType.Blank, + _g[api_internal_contract_1.DashboardObjectType.Image] = api_external_contract_1.DashboardObjectType.Image, + _g[api_internal_contract_1.DashboardObjectType.Legend] = api_external_contract_1.DashboardObjectType.Legend, + _g[api_internal_contract_1.DashboardObjectType.PageFilter] = api_external_contract_1.DashboardObjectType.PageFilter, + _g[api_internal_contract_1.DashboardObjectType.ParameterControl] = api_external_contract_1.DashboardObjectType.ParameterControl, + _g[api_internal_contract_1.DashboardObjectType.QuickFilter] = api_external_contract_1.DashboardObjectType.QuickFilter, + _g[api_internal_contract_1.DashboardObjectType.Text] = api_external_contract_1.DashboardObjectType.Text, + _g[api_internal_contract_1.DashboardObjectType.Title] = api_external_contract_1.DashboardObjectType.Title, + _g[api_internal_contract_1.DashboardObjectType.WebPage] = api_external_contract_1.DashboardObjectType.WebPage, + _g[api_internal_contract_1.DashboardObjectType.Worksheet] = api_external_contract_1.DashboardObjectType.Worksheet, + _g)); + InternalToExternalEnumMappings.dataType = new api_utils_1.EnumConverter((_h = {}, + _h[api_internal_contract_1.DataType.Bool] = api_external_contract_1.DataType.Bool, + _h[api_internal_contract_1.DataType.Date] = api_external_contract_1.DataType.Date, + _h[api_internal_contract_1.DataType.DateTime] = api_external_contract_1.DataType.DateTime, + _h[api_internal_contract_1.DataType.Float] = api_external_contract_1.DataType.Float, + _h[api_internal_contract_1.DataType.Int] = api_external_contract_1.DataType.Int, + _h[api_internal_contract_1.DataType.String] = api_external_contract_1.DataType.String, + _h)); + InternalToExternalEnumMappings.filterUpdateType = new api_utils_1.EnumConverter((_j = {}, + _j[api_internal_contract_1.FilterUpdateType.Add] = api_external_contract_1.FilterUpdateType.Add, + _j[api_internal_contract_1.FilterUpdateType.All] = api_external_contract_1.FilterUpdateType.All, + _j[api_internal_contract_1.FilterUpdateType.Remove] = api_external_contract_1.FilterUpdateType.Remove, + _j[api_internal_contract_1.FilterUpdateType.Replace] = api_external_contract_1.FilterUpdateType.Replace, + _j)); + InternalToExternalEnumMappings.allowableValues = new api_utils_1.EnumConverter((_k = {}, + _k[api_internal_contract_1.DomainRestrictionType.All] = api_external_contract_1.ParameterValueType.All, + _k[api_internal_contract_1.DomainRestrictionType.List] = api_external_contract_1.ParameterValueType.List, + _k[api_internal_contract_1.DomainRestrictionType.Range] = api_external_contract_1.ParameterValueType.Range, + _k)); + InternalToExternalEnumMappings.dateStepPeriod = new api_utils_1.EnumConverter((_l = {}, + _l[api_internal_contract_1.DateStepPeriod.Years] = api_external_contract_1.PeriodType.Years, + _l[api_internal_contract_1.DateStepPeriod.Quarters] = api_external_contract_1.PeriodType.Quarters, + _l[api_internal_contract_1.DateStepPeriod.Months] = api_external_contract_1.PeriodType.Months, + _l[api_internal_contract_1.DateStepPeriod.Weeks] = api_external_contract_1.PeriodType.Weeks, + _l[api_internal_contract_1.DateStepPeriod.Days] = api_external_contract_1.PeriodType.Days, + _l[api_internal_contract_1.DateStepPeriod.Hours] = api_external_contract_1.PeriodType.Hours, + _l[api_internal_contract_1.DateStepPeriod.Minutes] = api_external_contract_1.PeriodType.Minutes, + _l[api_internal_contract_1.DateStepPeriod.Seconds] = api_external_contract_1.PeriodType.Seconds, + _l)); + InternalToExternalEnumMappings.dateRangeType = new api_utils_1.EnumConverter((_m = {}, + _m[api_internal_contract_1.DateRangeType.Current] = api_external_contract_1.DateRangeType.Current, + _m[api_internal_contract_1.DateRangeType.Last] = api_external_contract_1.DateRangeType.Last, + _m[api_internal_contract_1.DateRangeType.LastN] = api_external_contract_1.DateRangeType.LastN, + _m[api_internal_contract_1.DateRangeType.Next] = api_external_contract_1.DateRangeType.Next, + _m[api_internal_contract_1.DateRangeType.NextN] = api_external_contract_1.DateRangeType.NextN, + _m[api_internal_contract_1.DateRangeType.ToDate] = api_external_contract_1.DateRangeType.ToDate, + _m)); + InternalToExternalEnumMappings.filterType = new api_utils_1.EnumConverter((_o = {}, + _o[api_internal_contract_1.FilterType.Categorical] = api_external_contract_1.FilterType.Categorical, + _o[api_internal_contract_1.FilterType.Range] = api_external_contract_1.FilterType.Range, + _o[api_internal_contract_1.FilterType.RelativeDate] = api_external_contract_1.FilterType.RelativeDate, + _o[api_internal_contract_1.FilterType.Hierarchical] = api_external_contract_1.FilterType.Hierarchical, + _o)); + return InternalToExternalEnumMappings; + }()); + exports.InternalToExternalEnumMappings = InternalToExternalEnumMappings; + var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o; + /* tslint:enable:typedef */ + //# sourceMappingURL=InternalToExternalEnumMappings.js.map + +/***/ }, +/* 32 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + var Contract = __webpack_require__(16); + var ServiceRegistry_1 = __webpack_require__(33); + var Filter = (function () { + function Filter(_worksheetName, _fieldName, _filterType, _fieldId) { + this._worksheetName = _worksheetName; + this._fieldName = _fieldName; + this._filterType = _filterType; + this._fieldId = _fieldId; + } + Object.defineProperty(Filter.prototype, "worksheetName", { + get: function () { + return this._worksheetName; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Filter.prototype, "fieldName", { + get: function () { + return this._fieldName; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Filter.prototype, "fieldId", { + get: function () { + return this._fieldId; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Filter.prototype, "filterType", { + get: function () { + return this._filterType; + }, + enumerable: true, + configurable: true + }); + Filter.prototype.getFieldAsync = function () { + throw new Error('Method not implemented'); + }; + return Filter; + }()); + exports.Filter = Filter; + var CategoricalFilter = (function (_super) { + __extends(CategoricalFilter, _super); + function CategoricalFilter(worksheetName, fieldName, fieldId, filterType, _appliedValues, _isExcludeMode) { + var _this = _super.call(this, worksheetName, fieldName, filterType, fieldId) || this; + _this._appliedValues = _appliedValues; + _this._isExcludeMode = _isExcludeMode; + return _this; + } + Object.defineProperty(CategoricalFilter.prototype, "appliedValues", { + get: function () { + return this._appliedValues; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(CategoricalFilter.prototype, "isExcludeMode", { + get: function () { + return this._isExcludeMode; + }, + enumerable: true, + configurable: true + }); + CategoricalFilter.prototype.getDomainAsync = function (domainType) { + if (!domainType) { + domainType = Contract.FilterDomainType.Relevant; + } + var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */); + return service.getCategoricalDomainAsync(this._worksheetName, this._fieldId, domainType); + }; + return CategoricalFilter; + }(Filter)); + exports.CategoricalFilter = CategoricalFilter; + var RangeFilter = (function (_super) { + __extends(RangeFilter, _super); + function RangeFilter(worksheetName, fieldName, fieldId, filterType, _min, _max, _includeNullValues) { + var _this = _super.call(this, worksheetName, fieldName, filterType, fieldId) || this; + _this._min = _min; + _this._max = _max; + _this._includeNullValues = _includeNullValues; + return _this; + } + Object.defineProperty(RangeFilter.prototype, "minValue", { + get: function () { + return this._min; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(RangeFilter.prototype, "maxValue", { + get: function () { + return this._max; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(RangeFilter.prototype, "includeNullValues", { + get: function () { + return this._includeNullValues; + }, + enumerable: true, + configurable: true + }); + RangeFilter.prototype.getDomainAsync = function (domainType) { + var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */); + if (!domainType) { + domainType = Contract.FilterDomainType.Relevant; + } + return service.getRangeDomainAsync(this._worksheetName, this._fieldId, domainType); + }; + return RangeFilter; + }(Filter)); + exports.RangeFilter = RangeFilter; + var RelativeDateFilter = (function (_super) { + __extends(RelativeDateFilter, _super); + function RelativeDateFilter(worksheetName, fieldName, fieldId, filterType, _anchorDate, _periodType, _rangeType, _rangeN) { + var _this = _super.call(this, worksheetName, fieldName, filterType, fieldId) || this; + _this._anchorDate = _anchorDate; + _this._periodType = _periodType; + _this._rangeType = _rangeType; + _this._rangeN = _rangeN; + return _this; + } + Object.defineProperty(RelativeDateFilter.prototype, "anchorDate", { + get: function () { + return this._anchorDate; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(RelativeDateFilter.prototype, "periodType", { + get: function () { + return this._periodType; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(RelativeDateFilter.prototype, "rangeType", { + get: function () { + return this._rangeType; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(RelativeDateFilter.prototype, "rangeN", { + get: function () { + return this._rangeN; + }, + enumerable: true, + configurable: true + }); + return RelativeDateFilter; + }(Filter)); + exports.RelativeDateFilter = RelativeDateFilter; + var CategoricalDomain = (function () { + function CategoricalDomain(_values, _domainType) { + this._values = _values; + this._domainType = _domainType; + } + Object.defineProperty(CategoricalDomain.prototype, "values", { + get: function () { + return this._values; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(CategoricalDomain.prototype, "type", { + get: function () { + return this._domainType; + }, + enumerable: true, + configurable: true + }); + return CategoricalDomain; + }()); + exports.CategoricalDomain = CategoricalDomain; + var RangeDomain = (function () { + function RangeDomain(_min, _max, _domainType) { + this._min = _min; + this._max = _max; + this._domainType = _domainType; + } + Object.defineProperty(RangeDomain.prototype, "type", { + get: function () { + return this._domainType; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(RangeDomain.prototype, "min", { + get: function () { + return this._min; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(RangeDomain.prototype, "max", { + get: function () { + return this._max; + }, + enumerable: true, + configurable: true + }); + return RangeDomain; + }()); + exports.RangeDomain = RangeDomain; + //# sourceMappingURL=FilterModels.js.map + +/***/ }, +/* 33 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var ServiceRegistryImpl = (function () { + function ServiceRegistryImpl() { + this._services = {}; + } + ServiceRegistryImpl.prototype.registerService = function (service) { + this._services[service.serviceName] = service; + }; + ServiceRegistryImpl.prototype.getService = function (serviceName) { + if (!this._services.hasOwnProperty(serviceName)) { + throw new Error("No Service " + serviceName + " is registered"); + } + return this._services[serviceName]; + }; + return ServiceRegistryImpl; + }()); + /** + * static class used for getting access to the single instance + * of the ApiServiceRegistry + */ + var ApiServiceRegistry = (function () { + // Private to avoid anyone constructing this + function ApiServiceRegistry() { + } + Object.defineProperty(ApiServiceRegistry, "instance", { + /** + * Gets the singleton instance of the ServiceRegistry + */ + get: function () { + if (!window.__tableauApiServiceRegistry) { + ApiServiceRegistry.setInstance(new ServiceRegistryImpl()); + } + if (!window.__tableauApiServiceRegistry) { + throw new Error('Assigning service registry failed'); + } + return window.__tableauApiServiceRegistry; + }, + enumerable: true, + configurable: true + }); + /** + * Helper method to override the registry instance. Can be used by unit tests + * + * @param {ServiceRegistry} serviceRegistry The new registry + */ + ApiServiceRegistry.setInstance = function (serviceRegistry) { + window.__tableauApiServiceRegistry = serviceRegistry; + }; + return ApiServiceRegistry; + }()); + exports.ApiServiceRegistry = ApiServiceRegistry; + //# sourceMappingURL=ServiceRegistry.js.map + +/***/ }, +/* 34 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var Contract = __webpack_require__(16); + var api_internal_contract_1 = __webpack_require__(2); + var GetDataModels_1 = __webpack_require__(13); + var GetDataService_1 = __webpack_require__(23); + var GetDataServiceImpl = (function () { + function GetDataServiceImpl(dispatcher) { + this._dispatcher = dispatcher; + } + Object.defineProperty(GetDataServiceImpl.prototype, "serviceName", { + get: function () { + return "get-data-service" /* GetData */; + }, + enumerable: true, + configurable: true + }); + GetDataServiceImpl.prototype.getUnderlyingDataAsync = function (visualId, getType, ignoreAliases, ignoreSelection, includeAllColumns, maxRows) { + var _this = this; + // Create all of our parameters + var verb = getType === GetDataService_1.GetDataType.Summary ? api_internal_contract_1.VerbId.GetDataSummaryData : api_internal_contract_1.VerbId.GetUnderlyingData; + var parameters = {}; + parameters[api_internal_contract_1.ParameterId.VisualId] = visualId; + parameters[api_internal_contract_1.ParameterId.IgnoreAliases] = ignoreAliases; + parameters[api_internal_contract_1.ParameterId.IgnoreSelection] = ignoreSelection; + parameters[api_internal_contract_1.ParameterId.IncludeAllColumns] = includeAllColumns; + parameters[api_internal_contract_1.ParameterId.MaxRows] = maxRows; + return this._dispatcher.execute(verb, parameters).then(function (response) { + var responseData = response.result; + return _this.processResultsTable(responseData.data, responseData.isSummary); + }); + }; + GetDataServiceImpl.prototype.getSelectedMarksAsync = function (visualId) { + var _this = this; + var parameters = (_a = {}, _a[api_internal_contract_1.ParameterId.VisualId] = visualId, _a); + return this._dispatcher.execute(api_internal_contract_1.VerbId.GetSelectedMarks, parameters).then(function (response) { + var responseData = response.result; + return { + data: responseData.data.map(function (table) { return _this.processResultsTable(table, true); }) + }; + }); + var _a; + }; + GetDataServiceImpl.prototype.getHighlightedMarksAsync = function (visualId) { + var _this = this; + var parameters = (_a = {}, _a[api_internal_contract_1.ParameterId.VisualId] = visualId, _a); + return this._dispatcher.execute(api_internal_contract_1.VerbId.GetHighlightedMarks, parameters).then(function (response) { + var responseData = response.result; + return { + data: responseData.data.map(function (table) { return _this.processResultsTable(table, true); }) + }; + }); + var _a; + }; + GetDataServiceImpl.prototype.getDataSourceDataAsync = function (dataSourceId, ignoreAliases, maxRows, columnsToInclude) { + var _this = this; + var parameters = (_a = {}, + _a[api_internal_contract_1.ParameterId.DataSourceId] = dataSourceId, + _a[api_internal_contract_1.ParameterId.IgnoreAliases] = ignoreAliases, + _a[api_internal_contract_1.ParameterId.MaxRows] = maxRows, + _a[api_internal_contract_1.ParameterId.ColumnsToInclude] = columnsToInclude, + _a); + return this._dispatcher.execute(api_internal_contract_1.VerbId.GetDataSourceData, parameters).then(function (response) { + var responseData = response.result; + return _this.processResultsTable(responseData.data, false); + }); + var _a; + }; + GetDataServiceImpl.prototype.processResultsTable = function (responseData, isSummary) { + var headers = responseData.headers.map(function (h) { return new GetDataModels_1.Column(h.fieldCaption, Contract.DataType.String /*h.DataType*/, h.isReferenced, h.index); }); + // TODO This should be controlled by a flag indicating whether this api will respond marks info or not + var marks; + if (responseData.marks) { + marks = responseData.marks.map(function (h) { return new GetDataModels_1.MarkInfo(h.type, h.color, h.tupleId); }); + } + var table = responseData.dataTable.map(function (row) { + return row.map(function (cell) { + return new GetDataModels_1.DataValue(cell.value, cell.formattedValue); + }); + }); + if (marks) { + return new GetDataModels_1.DataTable(table, headers, table.length, isSummary, marks); + } + return new GetDataModels_1.DataTable(table, headers, table.length, isSummary); + }; + return GetDataServiceImpl; + }()); + exports.GetDataServiceImpl = GetDataServiceImpl; + //# sourceMappingURL=GetDataServiceImpl.js.map + +/***/ }, +/* 35 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var Registration = (function () { + function Registration(_filterFn, _callbackFn) { + this._filterFn = _filterFn; + this._callbackFn = _callbackFn; + // Nothing Here + } + Registration.prototype.onNotification = function (notificationModel) { + if (this._filterFn(notificationModel)) { + this._callbackFn(notificationModel); + } + }; + return Registration; + }()); + var NotificationServiceImpl = (function () { + function NotificationServiceImpl(dispatcher) { + this.dispatcher = dispatcher; + this._handlers = {}; + this.dispatcher.registerNotificationHandler(this.onNotification.bind(this)); + } + Object.defineProperty(NotificationServiceImpl.prototype, "serviceName", { + get: function () { + return "notification-service" /* Notification */; + }, + enumerable: true, + configurable: true + }); + NotificationServiceImpl.prototype.registerHandler = function (id, filterFn, handler) { + var _this = this; + var handlers = this._handlers[id] || new Array(); + var registration = new Registration(filterFn, handler); + handlers.push(registration); + this._handlers[id] = handlers; + return function () { return _this.removeRegistration(id, registration); }; + }; + NotificationServiceImpl.prototype.hasHandlersForNotificationType = function (id) { + return this._handlers.hasOwnProperty(id); + }; + NotificationServiceImpl.prototype.onNotification = function (notification) { + if (!this.hasHandlersForNotificationType(notification.notificationId)) { + return; + } + // Go through and check for all the handlers of this particular notification + this._handlers[notification.notificationId].forEach(function (h) { return h.onNotification(notification.data); }); + }; + NotificationServiceImpl.prototype.removeRegistration = function (id, registration) { + if (!this.hasHandlersForNotificationType(id)) { + return; + } + this._handlers[id] = this._handlers[id].filter(function (reg) { return reg !== registration; }); + }; + return NotificationServiceImpl; + }()); + exports.NotificationServiceImpl = NotificationServiceImpl; + //# sourceMappingURL=NotificationServiceImpl.js.map + +/***/ }, +/* 36 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_internal_contract_1 = __webpack_require__(2); + var ParameterImpl_1 = __webpack_require__(37); + var Parameter_1 = __webpack_require__(10); + var ParametersServiceImpl = (function () { + function ParametersServiceImpl(dispatcher) { + this.dispatcher = dispatcher; + } + Object.defineProperty(ParametersServiceImpl.prototype, "serviceName", { + get: function () { + return "parameters-service" /* Parameters */; + }, + enumerable: true, + configurable: true + }); + ParametersServiceImpl.prototype.getParametersForSheetAsync = function (sheetPath, sheet) { + var parameters = (_a = {}, + _a[api_internal_contract_1.ParameterId.SheetPath] = sheetPath, + _a); + return this.dispatcher.execute(api_internal_contract_1.VerbId.GetParametersForSheet, parameters).then(function (response) { + // TODO - Check for error + var result = response.result; + return result.map(function (parameterInfo) { + var impl = new ParameterImpl_1.ParameterImpl(parameterInfo); + return new Parameter_1.Parameter(impl, sheet); + }); + }); + var _a; + }; + ParametersServiceImpl.prototype.changeParameterValueAsync = function (fieldName, newValue) { + var parameters = (_a = {}, + _a[api_internal_contract_1.ParameterId.ParameterFieldName] = fieldName, + _a[api_internal_contract_1.ParameterId.ParameterValue] = newValue, + _a); + return this.dispatcher.execute(api_internal_contract_1.VerbId.ChangeParameterValue, parameters).then(function (response) { + var result = response.result; + return result; + }); + var _a; + }; + ParametersServiceImpl.prototype.findParameterByNameAsync = function (name, sheet) { + return this.findParameterAsync(sheet, name, undefined); + }; + ParametersServiceImpl.prototype.findParameterByGlobalFieldNameAsync = function (fieldName, sheet) { + return this.findParameterAsync(sheet, undefined, fieldName); + }; + ParametersServiceImpl.prototype.findParameterAsync = function (sheet, name, fieldName) { + var parameters = {}; + if (name !== undefined) { + parameters[api_internal_contract_1.ParameterId.ParameterCaption] = name; + } + else if (fieldName !== undefined) { + parameters[api_internal_contract_1.ParameterId.ParameterFieldName] = fieldName; + } + else { + throw new Error('Missing require field name or caption'); + } + return this.dispatcher.execute(api_internal_contract_1.VerbId.FindParameter, parameters).then(function (response) { + var instanceOfParameterInfo = function (object) { + return 'fieldName' in object; + }; + // We need to check to see if we got a valid response back again + if (instanceOfParameterInfo(response.result)) { + var result = response.result; + var impl = new ParameterImpl_1.ParameterImpl(result); + return new Parameter_1.Parameter(impl, sheet); + } + else { + return undefined; + } + }); + }; + return ParametersServiceImpl; + }()); + exports.ParametersServiceImpl = ParametersServiceImpl; + //# sourceMappingURL=ParametersServiceImpl.js.map + +/***/ }, +/* 37 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var Contract = __webpack_require__(16); + var api_internal_contract_1 = __webpack_require__(2); + var api_utils_1 = __webpack_require__(27); + var InternalToExternalEnumMappings_1 = __webpack_require__(31); + var ParameterChangedEvent_1 = __webpack_require__(38); + var GetDataModels_1 = __webpack_require__(13); + var ServiceRegistry_1 = __webpack_require__(33); + var SingleEventManagerImpl_1 = __webpack_require__(22); + var ParameterImpl = (function () { + function ParameterImpl(parameterInfo) { + this.setParameterInfo(parameterInfo); + } + Object.defineProperty(ParameterImpl.prototype, "name", { + get: function () { + return this._parameterInfo.name; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ParameterImpl.prototype, "currentValue", { + get: function () { + return new GetDataModels_1.DataValue(this._parameterInfo.currentValue.value, this._parameterInfo.currentValue.formattedValue); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ParameterImpl.prototype, "dataType", { + get: function () { + return InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.dataType.convert(this._parameterInfo.dataType); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(ParameterImpl.prototype, "allowableValues", { + get: function () { + return this._allowableValues; + }, + enumerable: true, + configurable: true + }); + ParameterImpl.prototype.changeValueAsync = function (newValue) { + var _this = this; + var coercedValue = api_utils_1.Param.serializeParamterValue(newValue); + var parametersService = ServiceRegistry_1.ApiServiceRegistry.instance.getService("parameters-service" /* Parameters */); + return parametersService.changeParameterValueAsync(this._globalFieldName, coercedValue).then(function (parameterInfo) { + _this.setParameterInfo(parameterInfo); + return _this.currentValue; + }); + }; + /** + * Helper method which goes through and registers each event type this impl knows about + * with the NotificationService. It returns an array of SingleEventManager objects which + * can then be passed to an EventListenerManager to handle user registration / unregistration. + * + * @param sheet The sheet object which will be included with the event notifications + * @returns {Array} Collection of event managers to pass to an EventListenerManager + */ + ParameterImpl.prototype.initializeEvents = function (sheet) { + var _this = this; + var results = new Array(); + var notificationService; + try { + notificationService = ServiceRegistry_1.ApiServiceRegistry.instance.getService("notification-service" /* Notification */); + } + catch (e) { + // If we don't have this service registered, just return + return results; + } + // Initialize all of the event managers we'll need (one for each event type) + var parameterEvent = new SingleEventManagerImpl_1.SingleEventManagerImpl(Contract.TableauEventType.ParameterChanged); + notificationService.registerHandler(api_internal_contract_1.NotificationId.ParameterChanged, function (model) { + var fieldName = model; + return fieldName === _this._globalFieldName; + }, function (fieldName) { + parameterEvent.triggerEvent(function () { return new ParameterChangedEvent_1.ParameterChangedEvent(fieldName, sheet); }); + }); + results.push(parameterEvent); + return results; + }; + ParameterImpl.prototype.setParameterInfo = function (parameterInfo) { + this._parameterInfo = parameterInfo; + this._globalFieldName = parameterInfo.fieldName; + var type = InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.allowableValues.convert(parameterInfo.allowableValuesType); + var listValues; + var minValue; + var maxValue; + var stepSize; + var dateStepPeriod; + if (type === Contract.ParameterValueType.List) { + var values = parameterInfo.allowableValues || []; + listValues = values.map(function (val) { return new GetDataModels_1.DataValue(val.value, val.formattedValue); }); + } + else if (type === Contract.ParameterValueType.Range) { + minValue = parameterInfo.minValue && new GetDataModels_1.DataValue(parameterInfo.minValue.value, parameterInfo.minValue.formattedValue); + maxValue = parameterInfo.maxValue && new GetDataModels_1.DataValue(parameterInfo.maxValue.value, parameterInfo.maxValue.formattedValue); + stepSize = parameterInfo.stepSize; + dateStepPeriod = parameterInfo.dateStepPeriod && + InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.dateStepPeriod.convert(parameterInfo.dateStepPeriod); + } + this._allowableValues = { + type: type, + allowableValues: listValues, + minValue: minValue, + maxValue: maxValue, + stepSize: stepSize, + dateStepPeriod: dateStepPeriod + }; + }; + return ParameterImpl; + }()); + exports.ParameterImpl = ParameterImpl; + //# sourceMappingURL=ParameterImpl.js.map + +/***/ }, +/* 38 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + var Contract = __webpack_require__(16); + var ServiceRegistry_1 = __webpack_require__(33); + var TableauSheetEvent_1 = __webpack_require__(19); + var ParameterChangedEvent = (function (_super) { + __extends(ParameterChangedEvent, _super); + function ParameterChangedEvent(_globalFieldName, sheet) { + var _this = _super.call(this, Contract.TableauEventType.ParameterChanged, sheet) || this; + _this._globalFieldName = _globalFieldName; + return _this; + } + ParameterChangedEvent.prototype.getParameterAsync = function () { + // Call down to our service to get the parameter back via its field name + var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("parameters-service" /* Parameters */); + return service.findParameterByGlobalFieldNameAsync(this._globalFieldName, this.sheet).then(function (parameter) { + if (parameter === undefined) { + throw new Error('Unable to find parameter'); + } + return parameter; + }); + }; + return ParameterChangedEvent; + }(TableauSheetEvent_1.TableauSheetEvent)); + exports.ParameterChangedEvent = ParameterChangedEvent; + //# sourceMappingURL=ParameterChangedEvent.js.map + +/***/ }, +/* 39 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var Contract = __webpack_require__(16); + var api_internal_contract_1 = __webpack_require__(2); + var SelectionModels_1 = __webpack_require__(40); + var SelectionServiceImpl = (function () { + function SelectionServiceImpl(dispatcher) { + this._dispatcher = dispatcher; + } + Object.defineProperty(SelectionServiceImpl.prototype, "serviceName", { + get: function () { + return "selection-service" /* Selection */; + }, + enumerable: true, + configurable: true + }); + /** + * Method to clear all the selected marks for the given worksheet. + * + * @param visualId + */ + SelectionServiceImpl.prototype.clearSelectedMarksAsync = function (visualId) { + var parameters = (_a = {}, _a[api_internal_contract_1.ParameterId.VisualId] = visualId, _a); + return this._dispatcher.execute(api_internal_contract_1.VerbId.ClearSelectedMarks, parameters).then(function (response) { + return; // Expecting an empty model and hence the void response. + }); + var _a; + }; + /** + * Method to select marks for the given worksheet. + * + * @param visualId + * @param selectionCriteria + * @param selectionUpdateType + */ + SelectionServiceImpl.prototype.selectMarksByValueAsync = function (visualId, selectionCriterias, selectionUpdateType) { + if (selectionCriterias.length === 0) { + throw new Error('Invalid selection criteria. Selections missing.'); + } + var selectionType = this.validateSelectionUpdateType(selectionUpdateType); + var selectionCriteriaType = this.validateSelectionCriteria(selectionCriterias[0]); + var selectionModelContainer = this.parseSelectionMarks(selectionCriterias, selectionCriteriaType); + var parameters = (_a = {}, + _a[api_internal_contract_1.ParameterId.VisualId] = visualId, + _a[api_internal_contract_1.ParameterId.SelectionUpdateType] = selectionType, + _a); + switch (selectionCriteriaType) { + case SelectionCriteriaType.HierarchicalType: { + parameters[api_internal_contract_1.ParameterId.HierValSelectionModels] = selectionModelContainer.hierModelArr; + break; + } + case SelectionCriteriaType.RangeType: { + parameters[api_internal_contract_1.ParameterId.QuantRangeSelectionModels] = selectionModelContainer.quantModelArr; + break; + } + case SelectionCriteriaType.DimensionType: { + parameters[api_internal_contract_1.ParameterId.DimValSelectionModels] = selectionModelContainer.dimModelArr; + break; + } + default: + break; + } + return this._dispatcher.execute(api_internal_contract_1.VerbId.SelectByValue, parameters).then(function (response) { + // Expecting an empty model and hence the void response. + return; + // TODO Investigate the error response with multiple output params and throw error accordingly. + }); + var _a; + }; + /** + * Method to select marks for the given worksheet. + * + * @param visualId + * @param MarkInfo + * @param selectionUpdateType + */ + SelectionServiceImpl.prototype.selectMarksByIdAsync = function (visualId, marks, selectionUpdateType) { + if (marks.length === 0) { + throw new Error('Invalid selection. Marks info missing.'); + } + var selectionType = this.validateSelectionUpdateType(selectionUpdateType); + var selectionModelContainer = this.parseSelectionIds(marks); + var parameters = (_a = {}, + _a[api_internal_contract_1.ParameterId.VisualId] = visualId, + _a[api_internal_contract_1.ParameterId.SelectionUpdateType] = selectionType, + _a[api_internal_contract_1.ParameterId.Selection] = selectionModelContainer.selection, + _a); + return this._dispatcher.execute(api_internal_contract_1.VerbId.SelectByValue, parameters).then(function (response) { + // Expecting an empty model and hence the void response. + return; + // TODO Investigate the error response with multiple output params and throw error accordingly. + }); + var _a; + }; + /** + * Method to prepare the pres models for selection by MarksInfo + * @param marks + */ + SelectionServiceImpl.prototype.parseSelectionIds = function (marks) { + var ids = []; + var selectionModelContainer = new SelectionModels_1.SelectionModelsContainer(); + for (var i = 0; i < marks.length; i++) { + var tupleId = marks[i].tupleId; + if (tupleId !== undefined && tupleId !== null) { + ids.push(tupleId.toString()); // collect the tuple ids + } + else { + throw new Error('Invalid tupleId provided.'); + } + } + if (ids.length !== 0) { + var tupleSelectionModel = new SelectionModels_1.TupleSelectionModel(); + tupleSelectionModel.selectionType = 'tuples'; + tupleSelectionModel.objectIds = ids; + selectionModelContainer.selection = tupleSelectionModel; + } + return selectionModelContainer; + }; + /** + * Method to prepare the pres models for selection by values. + * + * Supports 3 types for selection: + * 1) hierarchical value based selection + * 2) range value based selection + * 3) Dimension value based selection + * + * @param marks + * @param hierModelArr + * @param dimModelArr + * @param quantModelArr + * @param selection + */ + SelectionServiceImpl.prototype.parseSelectionMarks = function (selectionCriterias, selectionType) { + var selectionModelContainer = new SelectionModels_1.SelectionModelsContainer(); + var mixedSelectionsError = false; + for (var i = 0; i < selectionCriterias.length; i++) { + var st = selectionCriterias[i]; + if (st.fieldName && (st.value !== undefined && st.value !== null)) { + var catRegex = new RegExp('(\[[A-Za-z0-9]+]).*', 'g'); + var rangeOption = st.value; + if (catRegex.test(st.fieldName)) { + if (selectionType === SelectionCriteriaType.HierarchicalType) { + var hierModel = this.addToParamsList(st.fieldName, st.value); + selectionModelContainer.hierModelArr.push(hierModel); + } + else { + mixedSelectionsError = true; + break; + } + } + else if (rangeOption.min !== undefined + && rangeOption.max !== undefined) { + if (selectionType === SelectionCriteriaType.RangeType) { + var quantModel = this.addToRangeParamsList(st.fieldName, rangeOption); + selectionModelContainer.quantModelArr.push(quantModel); + } + else { + mixedSelectionsError = true; + break; + } + } + else { + if (selectionType === SelectionCriteriaType.DimensionType) { + var dimModel = this.addToParamsList(st.fieldName, st.value); + selectionModelContainer.dimModelArr.push(dimModel); + } + else { + mixedSelectionsError = true; + break; + } + } + } + } + if (mixedSelectionsError) { + throw new Error('Different types of selection criterias provided.'); + } + return selectionModelContainer; + }; + /** + * + * @param selectionCriterias Validate and determine the selection criterias type. + */ + SelectionServiceImpl.prototype.validateSelectionCriteria = function (selectionCriteria) { + var selectionType; + // Determine the type of selection, this command is by looking at the first selection + var crit = selectionCriteria; + var catRegex = new RegExp('(\[[A-Za-z0-9]+]).*', 'g'); + var rangeOption = crit.value; + if (crit.fieldName && (crit.value !== undefined && crit.value !== null)) { + if (catRegex.test(crit.fieldName)) { + selectionType = SelectionCriteriaType.HierarchicalType; + } + else if (rangeOption.min !== undefined + && rangeOption.max !== undefined) { + selectionType = SelectionCriteriaType.RangeType; + } + else { + selectionType = SelectionCriteriaType.DimensionType; + } + } + else { + throw new Error('Invalid selection criteria format.'); + } + return selectionType; + }; + /** + * Method to transform the key value pair into value based pres model object. + * + * @param valueSelectionModel + * @param fieldName + * @param value + */ + SelectionServiceImpl.prototype.addToParamsList = function (fieldName, value) { + var valueSelectionModel = new SelectionModels_1.ValueSelectionModel(); + var markValues = []; + if (value instanceof Array) { + var valueArr = value; + for (var i = 0; i < valueArr.length; i++) { + markValues.push(valueArr[i].toString()); + } + } + else { + markValues.push(value.toString()); + } + valueSelectionModel.qualifiedFieldCaption = fieldName; + valueSelectionModel.selectValues = markValues; + return valueSelectionModel; + }; + /** + * Method to transform the key value pair into range based selection pres model. + * + * TODO: Need to handle the parsing of date type values. + * + * @param valueSelectionModel + * @param fieldName + * @param value + */ + SelectionServiceImpl.prototype.addToRangeParamsList = function (fieldName, value) { + var rangeSelectionModel = new SelectionModels_1.RangeSelectionModel(); + rangeSelectionModel.qualifiedFieldCaption = fieldName; + if (value.max !== undefined && value.max !== null) { + rangeSelectionModel.maxValue = value.max.toString(); + } + if (value.min !== undefined && value.min !== null) { + rangeSelectionModel.minValue = value.min.toString(); + } + rangeSelectionModel.included = this.validateNullOptionType(value.nullOption); + return rangeSelectionModel; + }; + /** + * Method to validate the selection update type. + * + * @param selectionUpdateType + */ + SelectionServiceImpl.prototype.validateSelectionUpdateType = function (selectionUpdateType) { + if (selectionUpdateType === Contract.SelectionUpdateType.Replace) { + return api_internal_contract_1.SelectionUpdateType.Replace; + } + else if (selectionUpdateType === Contract.SelectionUpdateType.Add) { + return api_internal_contract_1.SelectionUpdateType.Add; + } + else if (selectionUpdateType === Contract.SelectionUpdateType.Remove) { + return api_internal_contract_1.SelectionUpdateType.Remove; + } + return api_internal_contract_1.SelectionUpdateType.Replace; + }; + /** + * Method to validate the include type for range selection. + * + * @param nullOption + */ + SelectionServiceImpl.prototype.validateNullOptionType = function (nullOption) { + if (nullOption) { + if (nullOption === Contract.FilterNullOption.NullValues) { + return api_internal_contract_1.QuantitativeIncludedValues.IncludeNull; + } + else if (nullOption === Contract.FilterNullOption.NonNullValues) { + return api_internal_contract_1.QuantitativeIncludedValues.IncludeNonNull; + } + else if (nullOption === Contract.FilterNullOption.AllValues) { + return api_internal_contract_1.QuantitativeIncludedValues.IncludeAll; + } + } + return api_internal_contract_1.QuantitativeIncludedValues.IncludeAll; + }; + return SelectionServiceImpl; + }()); + exports.SelectionServiceImpl = SelectionServiceImpl; + /** + * Enum for the different selection criteria types. + */ + var SelectionCriteriaType; + (function (SelectionCriteriaType) { + SelectionCriteriaType[SelectionCriteriaType["HierarchicalType"] = 1] = "HierarchicalType"; + SelectionCriteriaType[SelectionCriteriaType["RangeType"] = 2] = "RangeType"; + SelectionCriteriaType[SelectionCriteriaType["DimensionType"] = 3] = "DimensionType"; + SelectionCriteriaType[SelectionCriteriaType["TuplesType"] = 4] = "TuplesType"; + })(SelectionCriteriaType || (SelectionCriteriaType = {})); + //# sourceMappingURL=SelectionServiceImpl.js.map + +/***/ }, +/* 40 */ +/***/ function(module, exports) { + + "use strict"; + var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * Selection Model. + */ + var SelectionModel = (function () { + function SelectionModel() { + } + return SelectionModel; + }()); + exports.SelectionModel = SelectionModel; + /** + * Value based selection model. Meant for hierarchical, range and categorical selections. + */ + var ValueSelectionModel = (function (_super) { + __extends(ValueSelectionModel, _super); + function ValueSelectionModel() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.selectValues = []; + return _this; + } + return ValueSelectionModel; + }(SelectionModel)); + exports.ValueSelectionModel = ValueSelectionModel; + /** + * Hierarchical value selection model + */ + var HierarchicalSelectionModel = (function (_super) { + __extends(HierarchicalSelectionModel, _super); + function HierarchicalSelectionModel() { + return _super !== null && _super.apply(this, arguments) || this; + } + return HierarchicalSelectionModel; + }(ValueSelectionModel)); + exports.HierarchicalSelectionModel = HierarchicalSelectionModel; + /** + * Range based value selection model + */ + var RangeSelectionModel = (function (_super) { + __extends(RangeSelectionModel, _super); + function RangeSelectionModel() { + return _super !== null && _super.apply(this, arguments) || this; + } + return RangeSelectionModel; + }(SelectionModel)); + exports.RangeSelectionModel = RangeSelectionModel; + /** + * Dimension value selection model + */ + var DimensionSelectionModel = (function (_super) { + __extends(DimensionSelectionModel, _super); + function DimensionSelectionModel() { + return _super !== null && _super.apply(this, arguments) || this; + } + return DimensionSelectionModel; + }(ValueSelectionModel)); + exports.DimensionSelectionModel = DimensionSelectionModel; + /** + * Tuple based selection model + */ + var TupleSelectionModel = (function () { + function TupleSelectionModel() { + this.objectIds = []; + } + return TupleSelectionModel; + }()); + exports.TupleSelectionModel = TupleSelectionModel; + /** + * Container class to populate all the selection models when parsing input + */ + var SelectionModelsContainer = (function () { + function SelectionModelsContainer() { + this.hierModelArr = []; + this.dimModelArr = []; + this.quantModelArr = []; + } + return SelectionModelsContainer; + }()); + exports.SelectionModelsContainer = SelectionModelsContainer; + //# sourceMappingURL=SelectionModels.js.map + +/***/ }, +/* 41 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + var Sheet_1 = __webpack_require__(42); + var Dashboard = (function (_super) { + __extends(Dashboard, _super); + function Dashboard(_dashboardImpl) { + var _this = _super.call(this, _dashboardImpl) || this; + _this._dashboardImpl = _dashboardImpl; + _dashboardImpl.initializeWithPublicInterfaces(_this); + return _this; + } + Object.defineProperty(Dashboard.prototype, "worksheets", { + get: function () { + return this._dashboardImpl.worksheets; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Dashboard.prototype, "objects", { + get: function () { + return this._dashboardImpl.objects; + }, + enumerable: true, + configurable: true + }); + return Dashboard; + }(Sheet_1.Sheet)); + exports.Dashboard = Dashboard; + //# sourceMappingURL=Dashboard.js.map + +/***/ }, +/* 42 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + var api_shared_1 = __webpack_require__(8); + var Sheet = (function (_super) { + __extends(Sheet, _super); + function Sheet(_sheetImpl) { + var _this = _super.call(this) || this; + _this._sheetImpl = _sheetImpl; + return _this; + } + Object.defineProperty(Sheet.prototype, "name", { + get: function () { + return this._sheetImpl.name; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Sheet.prototype, "sheetType", { + get: function () { + return this._sheetImpl.sheetType; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Sheet.prototype, "size", { + get: function () { + return this._sheetImpl.size; + }, + enumerable: true, + configurable: true + }); + Sheet.prototype.findParameterAsync = function (parameterName) { + return this._sheetImpl.findParameterAsync(parameterName, this); + }; + Sheet.prototype.getParametersAsync = function () { + return this._sheetImpl.getParametersAsync(this); + }; + return Sheet; + }(api_shared_1.EventListenerManager)); + exports.Sheet = Sheet; + //# sourceMappingURL=Sheet.js.map + +/***/ }, +/* 43 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * Implementation of the external DashboardContent namespace. + * This does not follow the Impl pattern as DashboardContent is + * currently just a (single) property bag. + */ + var DashboardContent = (function () { + function DashboardContent(_dashboard) { + this._dashboard = _dashboard; + } + Object.defineProperty(DashboardContent.prototype, "dashboard", { + get: function () { + return this._dashboard; + }, + enumerable: true, + configurable: true + }); + return DashboardContent; + }()); + exports.DashboardContent = DashboardContent; + //# sourceMappingURL=DashboardContent.js.map + +/***/ }, +/* 44 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_shared_1 = __webpack_require__(8); + /** + * Implementation of the external environment namespace. + * Environment does not follow the Impl pattern as it is + * just a property bag. + */ + var Environment = (function () { + function Environment(addInEnvironment) { + this._apiVersion = addInEnvironment.apiVersion; + this._context = api_shared_1.InternalToExternalEnumMappings.addInContext.convert(addInEnvironment.addInContext); + this._language = addInEnvironment.addInLanguage; + this._locale = addInEnvironment.addInLocale; + this._mode = api_shared_1.InternalToExternalEnumMappings.addInMode.convert(addInEnvironment.addInMode); + this._operatingSystem = addInEnvironment.operatingSystem; + this._tableauVersion = addInEnvironment.tableauVersion; + } + Object.defineProperty(Environment.prototype, "apiVersion", { + get: function () { + return this._apiVersion; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Environment.prototype, "context", { + get: function () { + return this._context; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Environment.prototype, "language", { + get: function () { + return this._language; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Environment.prototype, "locale", { + get: function () { + return this._locale; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Environment.prototype, "mode", { + get: function () { + return this._mode; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Environment.prototype, "operatingSystem", { + get: function () { + return this._operatingSystem; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Environment.prototype, "tableauVersion", { + get: function () { + return this._tableauVersion; + }, + enumerable: true, + configurable: true + }); + return Environment; + }()); + exports.Environment = Environment; + //# sourceMappingURL=Environment.js.map + +/***/ }, +/* 45 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * Implementation of the external settings namespace. + */ + var Settings = (function () { + function Settings(settingsImpl) { + this.settingsImpl = settingsImpl; + } + Settings.prototype.erase = function (key) { + this.settingsImpl.erase(key); + }; + Settings.prototype.get = function (key) { + return this.settingsImpl.get(key); + }; + Settings.prototype.getAll = function () { + return this.settingsImpl.getAll(); + }; + Object.defineProperty(Settings.prototype, "isModified", { + get: function () { + return this.settingsImpl.isModified; + }, + enumerable: true, + configurable: true + }); + Settings.prototype.saveAsync = function () { + return this.settingsImpl.saveAsync(); + }; + Settings.prototype.set = function (key, value) { + this.settingsImpl.set(key, value); + }; + return Settings; + }()); + exports.Settings = Settings; + //# sourceMappingURL=Settings.js.map + +/***/ }, +/* 46 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_shared_1 = __webpack_require__(8); + var InitializationServiceImpl_1 = __webpack_require__(47); + var SettingsServiceImpl_1 = __webpack_require__(48); + function registerAllAddInServices(dispatcher) { + api_shared_1.ApiServiceRegistry.instance.registerService(new InitializationServiceImpl_1.InitializationServiceImpl(dispatcher)); + api_shared_1.ApiServiceRegistry.instance.registerService(new SettingsServiceImpl_1.SettingsServiceImpl(dispatcher)); + } + exports.registerAllAddInServices = registerAllAddInServices; + //# sourceMappingURL=RegisterAllAddInServices.js.map + +/***/ }, +/* 47 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_internal_contract_1 = __webpack_require__(2); + var InitializationServiceImpl = (function () { + function InitializationServiceImpl(dispatcher) { + this.dispatcher = dispatcher; + } + Object.defineProperty(InitializationServiceImpl.prototype, "serviceName", { + get: function () { + return "InitializationService" /* InitializationService */; + }, + enumerable: true, + configurable: true + }); + InitializationServiceImpl.prototype.initializeDashboardAddInAsync = function () { + // We don't need any parameters for this call because they are added in for us by the dispatcher + return this.dispatcher.execute(api_internal_contract_1.VerbId.InitializeAddIn, {}).then(function (response) { + // TODO - Validate return value + var result = response.result; + return result; + }); + }; + return InitializationServiceImpl; + }()); + exports.InitializationServiceImpl = InitializationServiceImpl; + //# sourceMappingURL=InitializationServiceImpl.js.map + +/***/ }, +/* 48 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_internal_contract_1 = __webpack_require__(2); + var SettingsServiceImpl = (function () { + function SettingsServiceImpl(dispatcher) { + this.dispatcher = dispatcher; + } + Object.defineProperty(SettingsServiceImpl.prototype, "serviceName", { + get: function () { + return "SettingsService" /* SettingsService */; + }, + enumerable: true, + configurable: true + }); + SettingsServiceImpl.prototype.saveSettingsAsync = function (settings) { + var parameters = (_a = {}, _a[api_internal_contract_1.ParameterId.SettingsValues] = settings, _a); + return this.dispatcher.execute(api_internal_contract_1.VerbId.SaveAddInSettings, parameters).then(function (value) { + var result = value.result; + if (!result || !result.settingsValues) { + throw new Error('Internal error saving settings.'); + } + return (result.settingsValues); + }); + var _a; + }; + return SettingsServiceImpl; + }()); + exports.SettingsServiceImpl = SettingsServiceImpl; + //# sourceMappingURL=SettingsServiceImpl.js.map + +/***/ }, +/* 49 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * Represents the current version of the addin library + */ + var VersionNumber = (function () { + // private constructor so everyone uses the singleton instance + function VersionNumber(versionString) { + var parts = versionString.split('.').map(function (p) { return parseInt(p, 10); }); + if (parts.length !== 3) { + throw new Error('Invalid version number: ' + versionString); + } + this._major = parts[0]; + this._minor = parts[1]; + this._fix = parts[2]; + } + Object.defineProperty(VersionNumber, "Instance", { + /** + * Gets the singleton instance of the version number. + */ + get: function () { + return VersionNumber._instance; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(VersionNumber.prototype, "major", { + get: function () { + return this._major; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(VersionNumber.prototype, "minor", { + get: function () { + return this._minor; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(VersionNumber.prototype, "fix", { + get: function () { + return this._fix; + }, + enumerable: true, + configurable: true + }); + // Using some webpack tricks, we can inject this version into our code (kinda like c++ preprocessor stuff) + VersionNumber._instance = new VersionNumber(("0.5.0")); + return VersionNumber; + }()); + exports.VersionNumber = VersionNumber; + //# sourceMappingURL=VersionNumber.js.map + +/***/ }, +/* 50 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + var Contract = __webpack_require__(16); + var api_internal_contract_1 = __webpack_require__(2); + var api_shared_1 = __webpack_require__(8); + var DashboardObject_1 = __webpack_require__(51); + var Worksheet_1 = __webpack_require__(52); + var SheetImpl_1 = __webpack_require__(53); + var SheetInfoImpl_1 = __webpack_require__(54); + var WorksheetImpl_1 = __webpack_require__(55); + var DashboardImpl = (function (_super) { + __extends(DashboardImpl, _super); + function DashboardImpl(_info, _sheetPath) { + var _this = _super.call(this, new SheetInfoImpl_1.SheetInfoImpl(_info.name, Contract.SheetType.Dashboard, new api_shared_1.Size(_info.size.h, _info.size.w))) || this; + _this._info = _info; + _this._sheetPath = _sheetPath; + return _this; + } + Object.defineProperty(DashboardImpl.prototype, "worksheets", { + get: function () { + return this._worksheets; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DashboardImpl.prototype, "objects", { + get: function () { + return this._objects; + }, + enumerable: true, + configurable: true + }); + DashboardImpl.prototype.initializeWithPublicInterfaces = function (dashboard) { + this._worksheets = new Array(); + this._objects = new Array(); + // Process all the zones which are contained in this dashboard + for (var _i = 0, _a = this._info.zones; _i < _a.length; _i++) { + var zone = _a[_i]; + var worksheet = undefined; + var zoneSize = new api_shared_1.Size(zone.height, zone.width); + if (zone.zoneType === api_internal_contract_1.DashboardObjectType.Worksheet) { + var sheetInfo = new SheetInfoImpl_1.SheetInfoImpl(zone.name, Contract.SheetType.Worksheet, zoneSize); + var vizId = { + worksheet: zone.name, + dashboard: this._info.name, + storyboard: this._sheetPath.storyboard, + flipboardZoneID: this._sheetPath.flipboardZoneID, + storyPointID: this._sheetPath.storyPointID + }; + var worksheetImpl = new WorksheetImpl_1.WorksheetImpl(sheetInfo, vizId, dashboard); + worksheet = new Worksheet_1.Worksheet(worksheetImpl); + this._worksheets.push(worksheet); + } + var zonePoint = new api_shared_1.Point(zone.x, zone.y); + var dashboardObject = new DashboardObject_1.DashboardObject(dashboard, api_shared_1.InternalToExternalEnumMappings.dashboardObjectType.convert(zone.zoneType), zonePoint, zoneSize, worksheet); + this._objects.push(dashboardObject); + } + }; + return DashboardImpl; + }(SheetImpl_1.SheetImpl)); + exports.DashboardImpl = DashboardImpl; + //# sourceMappingURL=DashboardImpl.js.map + +/***/ }, +/* 51 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * Implementation of the dashboard objects - the zones in a dashboard. + * This does not follow the Impl pattern as it is just a property bag. + */ + var DashboardObject = (function () { + function DashboardObject(_dashboard, _type, _position, _size, _worksheet) { + this._dashboard = _dashboard; + this._type = _type; + this._position = _position; + this._size = _size; + this._worksheet = _worksheet; + } + Object.defineProperty(DashboardObject.prototype, "dashboard", { + get: function () { + return this._dashboard; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DashboardObject.prototype, "type", { + get: function () { + return this._type; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DashboardObject.prototype, "position", { + get: function () { + return this._position; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DashboardObject.prototype, "size", { + get: function () { + return this._size; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DashboardObject.prototype, "worksheet", { + get: function () { + return this._worksheet; + }, + enumerable: true, + configurable: true + }); + return DashboardObject; + }()); + exports.DashboardObject = DashboardObject; + //# sourceMappingURL=DashboardObject.js.map + +/***/ }, +/* 52 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + var Sheet_1 = __webpack_require__(42); + var Worksheet = (function (_super) { + __extends(Worksheet, _super); + function Worksheet(_worksheetImpl) { + var _this = _super.call(this, _worksheetImpl) || this; + _this._worksheetImpl = _worksheetImpl; + // Call to initialize events and then call down to the event listener manager to handle things + _this._worksheetImpl.initializeEvents(_this).forEach(function (e) { return _this.addNewEventType(e); }); + return _this; + } + Object.defineProperty(Worksheet.prototype, "parentDashboard", { + get: function () { + return this._worksheetImpl.parentDashboard; + }, + enumerable: true, + configurable: true + }); + Worksheet.prototype.applyFilterAsync = function (fieldName, values, updateType, options) { + return this._worksheetImpl.applyFilterAsync(fieldName, values, updateType, options); + }; + Worksheet.prototype.applyRangeFilterAsync = function (fieldName, filterOptions) { + return this._worksheetImpl.applyRangeFilterAsync(fieldName, filterOptions); + }; + Worksheet.prototype.clearFilterAsync = function (fieldName) { + return this._worksheetImpl.clearFilterAsync(fieldName); + }; + Worksheet.prototype.getAnalyticObjectsAsync = function () { + throw new Error('API call not yet implemented.'); + }; + Worksheet.prototype.getDataSourcesAsync = function () { + return this._worksheetImpl.getDataSourcesAsync(); + }; + Worksheet.prototype.getEncodingsAsync = function () { + throw new Error('API call not yet implemented.'); + }; + Worksheet.prototype.getFiltersAsync = function () { + return this._worksheetImpl.getFiltersAsync(); + }; + Worksheet.prototype.getSelectedMarksAsync = function () { + return this._worksheetImpl.getSelectedMarksAsync(); + }; + Worksheet.prototype.getHighlightedMarksAsync = function () { + return this._worksheetImpl.getHighlightedMarksAsync(); + }; + Worksheet.prototype.getSummaryDataAsync = function (options) { + return this._worksheetImpl.getSummaryDataAsync(options); + }; + Worksheet.prototype.getUnderlyingDataAsync = function (options) { + return this._worksheetImpl.getUnderlyingDataAsync(options); + }; + Worksheet.prototype.clearSelectedMarksAsync = function () { + return this._worksheetImpl.clearSelectedMarksAsync(); + }; + Worksheet.prototype.selectMarksByIDAsync = function (marksInfo, updateType) { + throw new Error('API call not yet implemented.'); + }; + Worksheet.prototype.selectMarksByValueAsync = function (selections, selectionUpdateType) { + return this._worksheetImpl.selectMarksByValueAsync(selections, selectionUpdateType); + }; + Worksheet.prototype.selectMarksByIdAsync = function (selections, selectionUpdateType) { + return this._worksheetImpl.selectMarksByIdAsync(selections, selectionUpdateType); + }; + return Worksheet; + }(Sheet_1.Sheet)); + exports.Worksheet = Worksheet; + //# sourceMappingURL=Worksheet.js.map + +/***/ }, +/* 53 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_shared_1 = __webpack_require__(8); + var SheetImpl = (function () { + function SheetImpl(_sheetInfoImpl) { + this._sheetInfoImpl = _sheetInfoImpl; + } + Object.defineProperty(SheetImpl.prototype, "name", { + get: function () { + return this._sheetInfoImpl.name; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(SheetImpl.prototype, "sheetType", { + get: function () { + return this._sheetInfoImpl.sheetType; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(SheetImpl.prototype, "sheetPath", { + get: function () { + return this._sheetInfoImpl.sheetPath; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(SheetImpl.prototype, "size", { + get: function () { + return this._sheetInfoImpl.sheetSize; + }, + enumerable: true, + configurable: true + }); + SheetImpl.prototype.findParameterAsync = function (parameterName, sheet) { + var service = api_shared_1.ApiServiceRegistry.instance.getService("parameters-service" /* Parameters */); + return service.findParameterByNameAsync(parameterName, sheet); + }; + SheetImpl.prototype.getParametersAsync = function (sheet) { + var service = api_shared_1.ApiServiceRegistry.instance.getService("parameters-service" /* Parameters */); + return service.getParametersForSheetAsync(this.sheetPath, sheet); + }; + return SheetImpl; + }()); + exports.SheetImpl = SheetImpl; + //# sourceMappingURL=SheetImpl.js.map + +/***/ }, +/* 54 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_external_contract_1 = __webpack_require__(16); + var SheetInfoImpl = (function () { + function SheetInfoImpl(_name, _sheetType, _sheetSize) { + this._name = _name; + this._sheetType = _sheetType; + this._sheetSize = _sheetSize; + } + Object.defineProperty(SheetInfoImpl.prototype, "name", { + get: function () { + return this._name; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(SheetInfoImpl.prototype, "sheetSize", { + get: function () { + return this._sheetSize; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(SheetInfoImpl.prototype, "sheetType", { + get: function () { + return this._sheetType; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(SheetInfoImpl.prototype, "sheetPath", { + get: function () { + return { + sheetName: this.name, + isDashboard: this.sheetType === api_external_contract_1.SheetType.Dashboard + // TODO - Stories + }; + }, + enumerable: true, + configurable: true + }); + return SheetInfoImpl; + }()); + exports.SheetInfoImpl = SheetInfoImpl; + //# sourceMappingURL=SheetInfoImpl.js.map + +/***/ }, +/* 55 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + var __extends = (this && this.__extends) || (function () { + var extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + })(); + Object.defineProperty(exports, "__esModule", { value: true }); + var Contract = __webpack_require__(16); + var api_internal_contract_1 = __webpack_require__(2); + var api_shared_1 = __webpack_require__(8); + var DataSource_1 = __webpack_require__(56); + var DataSourceImpl_1 = __webpack_require__(57); + var SheetImpl_1 = __webpack_require__(53); + var visualIdsAreEqual = function (a, b) { + return a && b && + a.worksheet === b.worksheet && + a.dashboard === b.dashboard && + a.storyboard === b.storyboard && + a.storyPointID === b.storyPointID && + a.flipboardZoneID === b.flipboardZoneID; + }; + var WorksheetImpl = (function (_super) { + __extends(WorksheetImpl, _super); + function WorksheetImpl(sheetInfoImpl, _visualId, _parentDashboard) { + var _this = _super.call(this, sheetInfoImpl) || this; + _this._visualId = _visualId; + _this._parentDashboard = _parentDashboard; + return _this; + } + Object.defineProperty(WorksheetImpl.prototype, "parentDashboard", { + get: function () { + return this._parentDashboard; + }, + enumerable: true, + configurable: true + }); + /** + * Helper method which goes through and registers each event type this impl knows about + * with the NotificationService. It returns an array of SingleEventManager objects which + * can then be passed to an EventListenerManager to handle user registration / unregistration. + * + * @param {Worksheet} worksheet The worksheet object which will be included with the event notifications + * @returns {Array} Collection of event managers to pass to an EventListenerManager + */ + WorksheetImpl.prototype.initializeEvents = function (worksheet) { + var _this = this; + var results = new Array(); + var notificationService; + try { + notificationService = api_shared_1.ApiServiceRegistry.instance.getService("notification-service" /* Notification */); + } + catch (e) { + // If we don't have this service registered, just return + return results; + } + // Initialize all of the event managers we'll need (one for each event type) + var marksEvent = new api_shared_1.SingleEventManagerImpl(Contract.TableauEventType.MarkSelectionChanged); + notificationService.registerHandler(api_internal_contract_1.NotificationId.SelectedMarksChanged, function (model) { + var visualId = model; + return visualIdsAreEqual(visualId, _this.visualId); + }, function (viz) { + marksEvent.triggerEvent(function () { return new api_shared_1.MarksSelectedEvent(worksheet); }); + }); + var filterEvent = new api_shared_1.SingleEventManagerImpl(Contract.TableauEventType.FilterChanged); + notificationService.registerHandler(api_internal_contract_1.NotificationId.FilterChanged, function (model) { + var filterEventResponse = model; + return _this.visualId.worksheet === filterEventResponse.visualId.worksheet; + }, function (event) { + filterEvent.triggerEvent(function () { return new api_shared_1.FilterChangedEvent(worksheet, event.fieldName); }); + }); + results.push(marksEvent); + results.push(filterEvent); + // TODO - other event types + return results; + }; + Object.defineProperty(WorksheetImpl.prototype, "visualId", { + get: function () { + return this._visualId; + }, + enumerable: true, + configurable: true + }); + WorksheetImpl.prototype.applyFilterAsync = function (fieldName, values, updateType, options) { + var service = api_shared_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */); + return service.applyFilterAsync(this.visualId, fieldName, values, updateType, options); + }; + WorksheetImpl.prototype.applyRangeFilterAsync = function (fieldName, filterOptions) { + var service = api_shared_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */); + return service.applyRangeFilterAsync(this.visualId, fieldName, filterOptions); + }; + WorksheetImpl.prototype.clearFilterAsync = function (fieldName) { + var service = api_shared_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */); + return service.clearFilterAsync(this.visualId, fieldName); + }; + WorksheetImpl.prototype.getDataSourcesAsync = function () { + var _this = this; + var service = api_shared_1.ApiServiceRegistry.instance.getService("data-source-service" /* DataSourceService */); + return service.getDataSourcesAsync().then(function (result) { + var dataSchema = result; + var worksheetDataSourceInfo = dataSchema.worksheetDataSchemaMap[_this.name]; + var dataSources = []; + // First, add the primary datasource. By convention, it comes first in the returned array. + var primaryId = worksheetDataSourceInfo.primaryDataSource; + dataSources.push(_this.createDataSourceFromInfo(dataSchema.dataSources[primaryId])); + // Then, loop through any secondary data sources and add them. + for (var _i = 0, _a = worksheetDataSourceInfo.referencedDataSourceList; _i < _a.length; _i++) { + var secondaryId = _a[_i]; + if (secondaryId !== primaryId) { + dataSources.push(_this.createDataSourceFromInfo(dataSchema.dataSources[secondaryId])); + } + } + return dataSources; + }); + }; + WorksheetImpl.prototype.getFiltersAsync = function () { + var service = api_shared_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */); + return service.getFiltersAsync(this.visualId); + }; + WorksheetImpl.prototype.getSelectedMarksAsync = function () { + var service = api_shared_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */); + return service.getSelectedMarksAsync(this.visualId); + }; + WorksheetImpl.prototype.getHighlightedMarksAsync = function () { + var service = api_shared_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */); + return service.getHighlightedMarksAsync(this.visualId); + }; + WorksheetImpl.prototype.getSummaryDataAsync = function (options) { + var service = api_shared_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */); + options = options || {}; + return service.getUnderlyingDataAsync(this.visualId, api_shared_1.GetDataType.Summary, !!options.ignoreAliases, !!options.ignoreSelection, true, 0); + }; + WorksheetImpl.prototype.getUnderlyingDataAsync = function (options) { + var service = api_shared_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */); + options = options || {}; + return service.getUnderlyingDataAsync(this.visualId, api_shared_1.GetDataType.Underlying, !!options.ignoreAliases, !!options.ignoreSelection, !!options.includeAllColumns, options.maxRows || 0); + }; + WorksheetImpl.prototype.clearSelectedMarksAsync = function () { + var service = api_shared_1.ApiServiceRegistry.instance.getService("selection-service" /* Selection */); + return service.clearSelectedMarksAsync(this.visualId); + }; + WorksheetImpl.prototype.selectMarksByValueAsync = function (selections, selectionUpdateType) { + var service = api_shared_1.ApiServiceRegistry.instance.getService("selection-service" /* Selection */); + return service.selectMarksByValueAsync(this.visualId, selections, selectionUpdateType); + }; + WorksheetImpl.prototype.selectMarksByIdAsync = function (selections, selectionUpdateType) { + var service = api_shared_1.ApiServiceRegistry.instance.getService("selection-service" /* Selection */); + return service.selectMarksByIdAsync(this.visualId, selections, selectionUpdateType); + }; + WorksheetImpl.prototype.createDataSourceFromInfo = function (dataSourceInfo) { + var dataSourceImpl = new DataSourceImpl_1.DataSourceImpl(dataSourceInfo); + var dataSource = new DataSource_1.DataSource(dataSourceImpl); + dataSourceImpl.initializeWithPublicInterfaces(dataSource); + return dataSource; + }; + return WorksheetImpl; + }(SheetImpl_1.SheetImpl)); + exports.WorksheetImpl = WorksheetImpl; + //# sourceMappingURL=WorksheetImpl.js.map + +/***/ }, +/* 56 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var DataSource = (function () { + function DataSource(_dataSourceImpl) { + this._dataSourceImpl = _dataSourceImpl; + } + Object.defineProperty(DataSource.prototype, "name", { + get: function () { + return this._dataSourceImpl.name; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataSource.prototype, "id", { + get: function () { + return this._dataSourceImpl.id; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataSource.prototype, "fields", { + get: function () { + return this._dataSourceImpl.fields; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataSource.prototype, "connectionSummaries", { + get: function () { + return this._dataSourceImpl.connectionSummaries; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataSource.prototype, "extractUpdateTime", { + get: function () { + return this._dataSourceImpl.extractUpdateTime; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataSource.prototype, "isExtract", { + get: function () { + return this._dataSourceImpl.isExtract; + }, + enumerable: true, + configurable: true + }); + DataSource.prototype.refreshAsync = function () { + return this._dataSourceImpl.refreshAsync(); + }; + DataSource.prototype.getUnderlyingDataAsync = function (options) { + return this._dataSourceImpl.getUnderlyingDataAsync(options); + }; + return DataSource; + }()); + exports.DataSource = DataSource; + //# sourceMappingURL=DataSource.js.map + +/***/ }, +/* 57 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_shared_1 = __webpack_require__(8); + var FieldImpl_1 = __webpack_require__(58); + var Field_1 = __webpack_require__(59); + var DataSourceImpl = (function () { + function DataSourceImpl(_dataSourceInfo) { + this._dataSourceInfo = _dataSourceInfo; + } + Object.defineProperty(DataSourceImpl.prototype, "name", { + get: function () { + return this._dataSourceInfo.name; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataSourceImpl.prototype, "id", { + get: function () { + return this._dataSourceInfo.id; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataSourceImpl.prototype, "extractUpdateTime", { + get: function () { + return this._dataSourceInfo.extractUpdateTime; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataSourceImpl.prototype, "fields", { + get: function () { + return this._fields; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataSourceImpl.prototype, "isExtract", { + get: function () { + return this._dataSourceInfo.isExtract; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(DataSourceImpl.prototype, "connectionSummaries", { + get: function () { + throw new Error('DataSource connectionSummaries API not yet implemented.'); + }, + enumerable: true, + configurable: true + }); + DataSourceImpl.prototype.refreshAsync = function () { + var dataSourceService = api_shared_1.ApiServiceRegistry.instance.getService("data-source-service" /* DataSourceService */); + return dataSourceService.refreshAsync(this._dataSourceInfo.id); + }; + DataSourceImpl.prototype.getUnderlyingDataAsync = function (options) { + var defaultOptions = { + ignoreAliases: false, + maxRows: 10000, + columnsToInclude: [], + }; + options = options || {}; + var getDataService = api_shared_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */); + return getDataService.getDataSourceDataAsync(this.id, !!options.ignoreAliases, options.maxRows || defaultOptions.maxRows, options.columnsToInclude || defaultOptions.columnsToInclude); + }; + DataSourceImpl.prototype.initializeWithPublicInterfaces = function (dataSource) { + this._fields = this._dataSourceInfo.fields.map(function (fieldModel) { + var fieldImpl = new FieldImpl_1.FieldImpl(fieldModel, dataSource); + return new Field_1.Field(fieldImpl); + }); + }; + return DataSourceImpl; + }()); + exports.DataSourceImpl = DataSourceImpl; + //# sourceMappingURL=DataSourceImpl.js.map + +/***/ }, +/* 58 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_shared_1 = __webpack_require__(8); + var FieldImpl = (function () { + function FieldImpl(_fieldInfo, _parentDataSource) { + this._fieldInfo = _fieldInfo; + this._parentDataSource = _parentDataSource; + } + Object.defineProperty(FieldImpl.prototype, "name", { + get: function () { + return this._fieldInfo.name; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(FieldImpl.prototype, "id", { + get: function () { + return this._fieldInfo.id; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(FieldImpl.prototype, "description", { + get: function () { + return this._fieldInfo.description; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(FieldImpl.prototype, "aggregation", { + get: function () { + return api_shared_1.InternalToExternalEnumMappings.fieldAggregationType.convert(this._fieldInfo.aggregation); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(FieldImpl.prototype, "dataSource", { + get: function () { + return this._parentDataSource; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(FieldImpl.prototype, "role", { + get: function () { + return api_shared_1.InternalToExternalEnumMappings.fieldRoleType.convert(this._fieldInfo.role); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(FieldImpl.prototype, "isHidden", { + get: function () { + return this._fieldInfo.isHidden; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(FieldImpl.prototype, "isGenerated", { + get: function () { + return this._fieldInfo.isGenerated; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(FieldImpl.prototype, "isCalculatedField", { + get: function () { + return this._fieldInfo.isCalculatedField; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(FieldImpl.prototype, "isCombinedField", { + get: function () { + return this._fieldInfo.isCombinedField; + }, + enumerable: true, + configurable: true + }); + FieldImpl.prototype.getCalculatedFieldAsync = function () { + throw new Error('Field getCalculatedFieldAsync method not yet implemented.'); + }; + return FieldImpl; + }()); + exports.FieldImpl = FieldImpl; + //# sourceMappingURL=FieldImpl.js.map + +/***/ }, +/* 59 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var Field = (function () { + function Field(_fieldImpl) { + this._fieldImpl = _fieldImpl; + } + Object.defineProperty(Field.prototype, "name", { + get: function () { + return this._fieldImpl.name; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Field.prototype, "id", { + get: function () { + return this._fieldImpl.id; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Field.prototype, "description", { + get: function () { + return this._fieldImpl.description; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Field.prototype, "aggregation", { + get: function () { + return this._fieldImpl.aggregation; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Field.prototype, "dataSource", { + get: function () { + return this._fieldImpl.dataSource; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Field.prototype, "role", { + get: function () { + return this._fieldImpl.role; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Field.prototype, "isHidden", { + get: function () { + return this._fieldImpl.isHidden; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Field.prototype, "isGenerated", { + get: function () { + return this._fieldImpl.isGenerated; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Field.prototype, "isCalculatedField", { + get: function () { + return this._fieldImpl.isCalculatedField; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Field.prototype, "columnType", { + get: function () { + throw new Error('Field.columnType not yet implemetned.'); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Field.prototype, "isCombinedField", { + get: function () { + return this._fieldImpl.isCombinedField; + }, + enumerable: true, + configurable: true + }); + Field.prototype.getCalculatedFieldAsync = function () { + return this._fieldImpl.getCalculatedFieldAsync(); + }; + return Field; + }()); + exports.Field = Field; + //# sourceMappingURL=Field.js.map + +/***/ }, +/* 60 */ +/***/ function(module, exports, __webpack_require__) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + var api_shared_1 = __webpack_require__(8); + var api_utils_1 = __webpack_require__(27); + var SettingsImpl = (function () { + function SettingsImpl(settingsInfo) { + // Since promises can't be introspected for state, keep a variable that + // indicates a save is in progress, so that set/erase can't be called during a save. + this._saveInProgress = false; + this.initializeSettings(settingsInfo); + } + SettingsImpl.prototype.erase = function (key) { + api_utils_1.Param.verifyValue(key, 'key'); + // Only make a modification if we have the key already + if (this._currentSettings[key]) { + this.verifySettingsAreUnlocked(); + delete this._currentSettings[key]; + this._isModified = true; + } + }; + SettingsImpl.prototype.get = function (key) { + api_utils_1.Param.verifyValue(key, 'key'); + return this._currentSettings[key]; + }; + SettingsImpl.prototype.getAll = function () { + // Returns a mutable copy of the settings + return Object.assign({}, this._currentSettings); + }; + Object.defineProperty(SettingsImpl.prototype, "isModified", { + get: function () { + return this._isModified; + }, + enumerable: true, + configurable: true + }); + SettingsImpl.prototype.saveAsync = function () { + var _this = this; + this.verifySettingsAreUnlocked(); + // Just resolve immediately if settings are unchanged + if (!this._isModified) { + return Promise.resolve(this._currentSettings); + } + this._saveInProgress = true; + // Use the settings service to save settings to twb + var settingsService = api_shared_1.ApiServiceRegistry.instance.getService("SettingsService" /* SettingsService */); + return settingsService.saveSettingsAsync(this._currentSettings).then(function (newSettings) { + _this._saveInProgress = false; + _this._isModified = false; + Object.assign(_this._currentSettings, newSettings); + return newSettings; + }); + }; + SettingsImpl.prototype.set = function (key, value) { + api_utils_1.Param.verifyValue(key, 'key'); // Key shouldn't be an empty string. + api_utils_1.Param.verifyString(value, 'value'); // Empty string value is allowed. + this.verifySettingsAreUnlocked(); + this._currentSettings[key] = value; + this._isModified = true; + }; + SettingsImpl.prototype.initializeSettings = function (settingsInfo) { + api_utils_1.Param.verifyValue(settingsInfo, 'settingsInfo'); + api_utils_1.Param.verifyValue(settingsInfo.settingsValues, 'settingsInfo.SettingsValues'); + this._currentSettings = settingsInfo.settingsValues; + // Reset the isModified flag + this._isModified = false; + }; + /** + * This helper should be called before any local update to this.currentSettings. + * Checks if a current save call is still in progress and throws an error if so. + */ + SettingsImpl.prototype.verifySettingsAreUnlocked = function () { + if (this._saveInProgress) { + throw new Error('Async Save is in progress, updating settings is not allowed.'); + } + }; + return SettingsImpl; + }()); + exports.SettingsImpl = SettingsImpl; + //# sourceMappingURL=SettingsImpl.js.map + +/***/ }, +/* 61 */ +/***/ function(module, exports) { + + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + /** + * Implementation of the external AddIn namespace. + */ + var AddIn = (function () { + function AddIn(addInImpl) { + this.addInImpl = addInImpl; + this.addInImpl = addInImpl; + } + Object.defineProperty(AddIn.prototype, "dashboardContent", { + get: function () { + return this.addInImpl.dashboardContent; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(AddIn.prototype, "environment", { + get: function () { + return this.addInImpl.environment; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(AddIn.prototype, "settings", { + get: function () { + return this.addInImpl.settings; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(AddIn.prototype, "ui", { + get: function () { + throw new Error('API call not yet implemented'); + }, + enumerable: true, + configurable: true + }); + AddIn.prototype.initializeAsync = function () { + return this.addInImpl.initializeAsync(); + }; + return AddIn; + }()); + exports.AddIn = AddIn; + //# sourceMappingURL=AddIn.js.map + +/***/ } +/******/ ]) +}); +; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQHRhYmxlYXUvYWRkaW4tYXBpLjAuNS4wLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAgNThmOGZkOGU2YjBiNmE1YWMxYmUiLCJ3ZWJwYWNrOi8vLy4uL2xpYi9BZGRJbkFwaS5qcyIsIndlYnBhY2s6Ly8vLi4vbGliL0ludGVybmFsL0FkZEluSW1wbC5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3QvbGliL0FwaUludGVybmFsQ29udHJhY3QuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWludGVybmFsLWNvbnRyYWN0L2xpYi9pbnRlcmZhY2UvRW51bXMuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWludGVybmFsLWNvbnRyYWN0L2xpYi9pbnRlcmZhY2UvSW50ZXJuYWxBcGlEaXNwYXRjaGVyLmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9saWIvaW50ZXJmYWNlL05vdGlmaWNhdGlvbnMuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWludGVybmFsLWNvbnRyYWN0L2xpYi9pbnRlcmZhY2UvUGFyYW1ldGVycy5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3QvbGliL2ludGVyZmFjZS9WZXJicy5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9BcGlTaGFyZWQuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvRXZlbnRMaXN0ZW5lck1hbmFnZXIuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvUGFyYW1ldGVyLmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL1BvaW50LmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL1NpemUuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvTW9kZWxzL0dldERhdGFNb2RlbHMuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvRXhjZXB0aW9ucy9UYWJsZWF1RXhjZXB0aW9ucy5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9FdmVudHMvRmlsdGVyQ2hhbmdlZEV2ZW50LmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1leHRlcm5hbC1jb250cmFjdC9saWIvQXBpRXh0ZXJuYWxDb250cmFjdC5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktZXh0ZXJuYWwtY29udHJhY3QvbGliL0VudW1zLmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL0V2ZW50cy9UYWJsZWF1V29ya3NoZWV0RXZlbnQuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvRXZlbnRzL1RhYmxlYXVTaGVldEV2ZW50LmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL0V2ZW50cy9UYWJsZWF1RXZlbnQuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvRXZlbnRzL01hcmtzU2VsZWN0ZWRFdmVudC5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9JbnRlcm5hbC9TaW5nbGVFdmVudE1hbmFnZXJJbXBsLmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL1NlcnZpY2VzL0dldERhdGFTZXJ2aWNlLmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL1NlcnZpY2VzL1JlZ2lzdGVyQWxsU2hhcmVkU2VydmljZXMuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvU2VydmljZXMvaW1wbC9EYXRhU291cmNlU2VydmljZUltcGwuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvU2VydmljZXMvaW1wbC9GaWx0ZXJTZXJ2aWNlSW1wbC5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktdXRpbHMvbGliL0FwaVV0aWxzLmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS11dGlscy9saWIvRW51bUNvbnZlcnRlci5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktdXRpbHMvbGliL1BhcmFtLmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL0VudW1NYXBwaW5ncy9FeHRlcm5hbFRvSW50ZXJuYWxFbnVtTWFwcGluZ3MuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvRW51bU1hcHBpbmdzL0ludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncy5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9Nb2RlbHMvRmlsdGVyTW9kZWxzLmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL1NlcnZpY2VzL1NlcnZpY2VSZWdpc3RyeS5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9TZXJ2aWNlcy9pbXBsL0dldERhdGFTZXJ2aWNlSW1wbC5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9TZXJ2aWNlcy9pbXBsL05vdGlmaWNhdGlvblNlcnZpY2VJbXBsLmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL1NlcnZpY2VzL2ltcGwvUGFyYW1ldGVyc1NlcnZpY2VJbXBsLmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL0ludGVybmFsL1BhcmFtZXRlckltcGwuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvRXZlbnRzL1BhcmFtZXRlckNoYW5nZWRFdmVudC5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9TZXJ2aWNlcy9pbXBsL1NlbGVjdGlvblNlcnZpY2VJbXBsLmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL01vZGVscy9TZWxlY3Rpb25Nb2RlbHMuanMiLCJ3ZWJwYWNrOi8vLy4uL2xpYi9EYXNoYm9hcmQuanMiLCJ3ZWJwYWNrOi8vLy4uL2xpYi9TaGVldC5qcyIsIndlYnBhY2s6Ly8vLi4vbGliL05hbWVzcGFjZXMvRGFzaGJvYXJkQ29udGVudC5qcyIsIndlYnBhY2s6Ly8vLi4vbGliL05hbWVzcGFjZXMvRW52aXJvbm1lbnQuanMiLCJ3ZWJwYWNrOi8vLy4uL2xpYi9OYW1lc3BhY2VzL1NldHRpbmdzLmpzIiwid2VicGFjazovLy8uLi9saWIvU2VydmljZXMvUmVnaXN0ZXJBbGxBZGRJblNlcnZpY2VzLmpzIiwid2VicGFjazovLy8uLi9saWIvU2VydmljZXMvSW1wbC9Jbml0aWFsaXphdGlvblNlcnZpY2VJbXBsLmpzIiwid2VicGFjazovLy8uLi9saWIvU2VydmljZXMvSW1wbC9TZXR0aW5nc1NlcnZpY2VJbXBsLmpzIiwid2VicGFjazovLy8uLi9saWIvVmVyc2lvbk51bWJlci5qcyIsIndlYnBhY2s6Ly8vLi4vbGliL0ludGVybmFsL0Rhc2hib2FyZEltcGwuanMiLCJ3ZWJwYWNrOi8vLy4uL2xpYi9EYXNoYm9hcmRPYmplY3QuanMiLCJ3ZWJwYWNrOi8vLy4uL2xpYi9Xb3Jrc2hlZXQuanMiLCJ3ZWJwYWNrOi8vLy4uL2xpYi9JbnRlcm5hbC9TaGVldEltcGwuanMiLCJ3ZWJwYWNrOi8vLy4uL2xpYi9JbnRlcm5hbC9TaGVldEluZm9JbXBsLmpzIiwid2VicGFjazovLy8uLi9saWIvSW50ZXJuYWwvV29ya3NoZWV0SW1wbC5qcyIsIndlYnBhY2s6Ly8vLi4vbGliL0RhdGFTb3VyY2UuanMiLCJ3ZWJwYWNrOi8vLy4uL2xpYi9JbnRlcm5hbC9EYXRhU291cmNlSW1wbC5qcyIsIndlYnBhY2s6Ly8vLi4vbGliL0ludGVybmFsL0ZpZWxkSW1wbC5qcyIsIndlYnBhY2s6Ly8vLi4vbGliL0ZpZWxkLmpzIiwid2VicGFjazovLy8uLi9saWIvSW50ZXJuYWwvU2V0dGluZ3NJbXBsLmpzIiwid2VicGFjazovLy8uLi9saWIvTmFtZXNwYWNlcy9BZGRJbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJ0YWJsZWF1XCJdID0gZmFjdG9yeSgpO1xuXHRlbHNlXG5cdFx0cm9vdFtcInRhYmxlYXVcIl0gPSBmYWN0b3J5KCk7XG59KSh0aGlzLCBmdW5jdGlvbigpIHtcbnJldHVybiBcblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiB3ZWJwYWNrL3VuaXZlcnNhbE1vZHVsZURlZmluaXRpb25cbiAqKi8iLCIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSlcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcblxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0ZXhwb3J0czoge30sXG4gXHRcdFx0aWQ6IG1vZHVsZUlkLFxuIFx0XHRcdGxvYWRlZDogZmFsc2VcbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubG9hZGVkID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCIvZGlzdC9cIjtcblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIHdlYnBhY2svYm9vdHN0cmFwIDU4ZjhmZDhlNmIwYjZhNWFjMWJlXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG4vKipcbiAqIFRoaXMgaXMgeW91ciBtYWluLiBUaGlzIGlzIHdoZXJlIHlvdSByZS1leHBvcnQgZXZlcnl0aGluZyB5b3Ugd2FudCB0byBiZSBwdWJsaWNseSBhdmFpbGFibGUuXG4gKlxuICogVGhlIGJ1aWxkIGVuZm9yY2VzIHRoYXQgdGhlIGZpbGUgaGFzIHRoZSBzYW1lIG5hbWUgYXMgdGhlIGdsb2JhbCB2YXJpYWJsZSB0aGF0IGlzIGV4cG9ydGVkLlxuICovXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4vLyBEdWUgdG8gdGhlIHdheSB3ZSBjb25maWd1cmVkIHdlYnBhY2ssIHdlIHNob3VsZCBiZSBleHBvcnRpbmcgdGhpbmdzIHdoaWNoIHdpbGwgYmUgdW5kZXJcbi8vIGEgZ2xvYmFsIHZhcmlhYmxlIGNhbGxlZCBcInRhYmxlYXVcIi4gRXhwb3J0IGV2ZXJ5dGhpbmcgd2Ugd2FudCB0byBiZSB2aXNpYmxlIHVuZGVyIHRhYmxlYXVcbi8vIGZyb20gdGhpcyBmaWxlLlxudmFyIEFkZEluSW1wbF8xID0gcmVxdWlyZShcIi4vSW50ZXJuYWwvQWRkSW5JbXBsXCIpO1xudmFyIEFkZEluXzEgPSByZXF1aXJlKFwiLi9OYW1lc3BhY2VzL0FkZEluXCIpO1xudmFyIGFkZEluSW1wbCA9IG5ldyBBZGRJbkltcGxfMS5BZGRJbkltcGwoKTtcbmV4cG9ydHMuYWRkSW4gPSBuZXcgQWRkSW5fMS5BZGRJbihhZGRJbkltcGwpO1xuLy8gRXhwb3J0IEVudW1zXG4vLyBUaGVzZSBzaG93IHVwIHVuZGVyIHRoZSB0YWJsZWF1IG9iamVjdC4gSS5lLiB0YWJsZWF1LkFkZEluQ29udGV4dC5TZXJ2ZXJcbnZhciBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMSA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3RcIik7XG5leHBvcnRzLkFkZEluQ29udGV4dCA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkFkZEluQ29udGV4dDtcbmV4cG9ydHMuQWRkSW5Nb2RlID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuQWRkSW5Nb2RlO1xuZXhwb3J0cy5BbmFseXRpY3NPYmplY3RUeXBlID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuQW5hbHl0aWNzT2JqZWN0VHlwZTtcbmV4cG9ydHMuQ29sdW1uVHlwZSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkNvbHVtblR5cGU7XG5leHBvcnRzLkRhc2hib2FyZE9iamVjdFR5cGUgPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5EYXNoYm9hcmRPYmplY3RUeXBlO1xuZXhwb3J0cy5EYXRhVHlwZSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkRhdGFUeXBlO1xuZXhwb3J0cy5EYXRlUmFuZ2VUeXBlID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRGF0ZVJhbmdlVHlwZTtcbmV4cG9ydHMuRGlhbG9nRXZlbnRUeXBlID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRGlhbG9nRXZlbnRUeXBlO1xuZXhwb3J0cy5FbmNvZGluZ1R5cGUgPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5FbmNvZGluZ1R5cGU7XG5leHBvcnRzLkVycm9yQ29kZXMgPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5FcnJvckNvZGVzO1xuZXhwb3J0cy5GaWVsZEFnZ3JlZ2F0aW9uVHlwZSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlO1xuZXhwb3J0cy5GaWVsZFJvbGVUeXBlID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmllbGRSb2xlVHlwZTtcbmV4cG9ydHMuRmlsdGVyRG9tYWluVHlwZSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpbHRlckRvbWFpblR5cGU7XG5leHBvcnRzLkZpbHRlclR5cGUgPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWx0ZXJUeXBlO1xuZXhwb3J0cy5GaWx0ZXJVcGRhdGVUeXBlID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmlsdGVyVXBkYXRlVHlwZTtcbmV4cG9ydHMuRmlsdGVyTnVsbE9wdGlvbiA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpbHRlck51bGxPcHRpb247XG5leHBvcnRzLk1hcmtUeXBlID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuTWFya1R5cGU7XG5leHBvcnRzLlBhcmFtZXRlclZhbHVlVHlwZSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlclZhbHVlVHlwZTtcbmV4cG9ydHMuUGVyaW9kVHlwZSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLlBlcmlvZFR5cGU7XG5leHBvcnRzLlF1aWNrVGFibGVDYWxjVHlwZSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLlF1aWNrVGFibGVDYWxjVHlwZTtcbmV4cG9ydHMuU2VsZWN0aW9uVXBkYXRlVHlwZSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLlNlbGVjdGlvblVwZGF0ZVR5cGU7XG5leHBvcnRzLlNoZWV0VHlwZSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLlNoZWV0VHlwZTtcbmV4cG9ydHMuU29ydERpcmVjdGlvbiA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLlNvcnREaXJlY3Rpb247XG5leHBvcnRzLlRhYmxlYXVFdmVudFR5cGUgPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5UYWJsZWF1RXZlbnRUeXBlO1xuZXhwb3J0cy5UcmVuZExpbmVNb2RlbFR5cGUgPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5UcmVuZExpbmVNb2RlbFR5cGU7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1BZGRJbkFwaS5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4uL2xpYi9BZGRJbkFwaS5qc1xuICoqIG1vZHVsZSBpZCA9IDBcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIGFwaV9pbnRlcm5hbF9jb250cmFjdF8xID0gcmVxdWlyZShcIkB0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdFwiKTtcbnZhciBhcGlfc2hhcmVkXzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLXNoYXJlZFwiKTtcbnZhciBEYXNoYm9hcmRfMSA9IHJlcXVpcmUoXCIuLi9EYXNoYm9hcmRcIik7XG52YXIgRGFzaGJvYXJkQ29udGVudF8xID0gcmVxdWlyZShcIi4uL05hbWVzcGFjZXMvRGFzaGJvYXJkQ29udGVudFwiKTtcbnZhciBFbnZpcm9ubWVudF8xID0gcmVxdWlyZShcIi4uL05hbWVzcGFjZXMvRW52aXJvbm1lbnRcIik7XG52YXIgU2V0dGluZ3NfMSA9IHJlcXVpcmUoXCIuLi9OYW1lc3BhY2VzL1NldHRpbmdzXCIpO1xudmFyIFJlZ2lzdGVyQWxsQWRkSW5TZXJ2aWNlc18xID0gcmVxdWlyZShcIi4uL1NlcnZpY2VzL1JlZ2lzdGVyQWxsQWRkSW5TZXJ2aWNlc1wiKTtcbnZhciBWZXJzaW9uTnVtYmVyXzEgPSByZXF1aXJlKFwiLi4vVmVyc2lvbk51bWJlclwiKTtcbnZhciBEYXNoYm9hcmRJbXBsXzEgPSByZXF1aXJlKFwiLi9EYXNoYm9hcmRJbXBsXCIpO1xudmFyIFNldHRpbmdzSW1wbF8xID0gcmVxdWlyZShcIi4vU2V0dGluZ3NJbXBsXCIpO1xudmFyIEFkZEluSW1wbCA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gQWRkSW5JbXBsKCkge1xuICAgIH1cbiAgICBBZGRJbkltcGwucHJvdG90eXBlLmluaXRpYWxpemVBc3luYyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgaWYgKCF0aGlzLl9pbml0aWFsaXphdGlvblByb21pc2UpIHtcbiAgICAgICAgICAgIHRoaXMuX2luaXRpYWxpemF0aW9uUHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgICAgICAvLyBGaXJzdCB0aGluZyB3ZSB3YW50IHRvIGRvIGlzIGNoZWNrIHRvIHNlZSBpZiB0aGVyZSBpcyBhIGRlc2t0b3AgZGlzcGF0Y2hlciBhbHJlYWR5IHJlZ2lzdGVyZWQgZm9yIHVzXG4gICAgICAgICAgICAgICAgaWYgKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkludGVybmFsQXBpRGlzcGF0Y2hlckhvbGRlci5oYXNEZXNrdG9wQXBpRGlzcGF0Y2hlclByb21pc2UoKSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBSdW5uaW5nIGluIGRlc2t0b3AsIHVzZSB0aGlzIHByb21pc2VcbiAgICAgICAgICAgICAgICAgICAgdmFyIGRlc2t0b3BEaXNwYXRjaGVyUHJvbWlzZSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkludGVybmFsQXBpRGlzcGF0Y2hlckhvbGRlci5nZXREZXNrdG9wRGlzcGF0Y2hlclByb21pc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgZGVza3RvcERpc3BhdGNoZXJQcm9taXNlLnRoZW4oX3RoaXMub25EaXNwYXRjaGVyUmVjZWl2ZWQuYmluZChfdGhpcykpLnRoZW4oZnVuY3Rpb24gKCkgeyByZXNvbHZlKCk7IH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCdOb3QgcnVubmluZyBpbiBkZXNrdG9wLiBTZXJ2ZXIgc3VwcG9ydCBjb21pbmcgc29vbiEnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5faW5pdGlhbGl6YXRpb25Qcm9taXNlO1xuICAgIH07XG4gICAgQWRkSW5JbXBsLnByb3RvdHlwZS5vbkRpc3BhdGNoZXJSZWNlaXZlZCA9IGZ1bmN0aW9uIChkaXNwYXRjaGVyKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIGRpc3BhdGNoZXIuc2V0VmVyc2lvbk51bWJlcihWZXJzaW9uTnVtYmVyXzEuVmVyc2lvbk51bWJlci5JbnN0YW5jZSk7XG4gICAgICAgIC8vIENhbGwgdG8gcmVnaXN0ZXIgYWxsIHRoZSBzZXJ2aWNlcyB3aGljaCB3aWxsIHVzZSB0aGUgbmV3bHkgaW5pdGlhbGl6ZWQgZGlzcGF0Y2hlclxuICAgICAgICBhcGlfc2hhcmVkXzEucmVnaXN0ZXJBbGxTaGFyZWRTZXJ2aWNlcyhkaXNwYXRjaGVyKTtcbiAgICAgICAgUmVnaXN0ZXJBbGxBZGRJblNlcnZpY2VzXzEucmVnaXN0ZXJBbGxBZGRJblNlcnZpY2VzKGRpc3BhdGNoZXIpO1xuICAgICAgICAvLyBHZXQgdGhlIGluaXRpYWxpemF0aW9uIHNlcnZpY2UgYW5kIGluaXRpYWxpemUgdGhpcyBhZGQtaW5cbiAgICAgICAgdmFyIGluaXRpYWxpemF0aW9uU2VydmljZSA9IGFwaV9zaGFyZWRfMS5BcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZShcIkluaXRpYWxpemF0aW9uU2VydmljZVwiIC8qIEluaXRpYWxpemF0aW9uU2VydmljZSAqLyk7XG4gICAgICAgIHJldHVybiBpbml0aWFsaXphdGlvblNlcnZpY2UuaW5pdGlhbGl6ZURhc2hib2FyZEFkZEluQXN5bmMoKS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHtcbiAgICAgICAgICAgIGlmICghcmVzdWx0LmFkZEluSW5zdGFuY2UubG9jYXRvci5kYXNoYm9hcmRQYXRoKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXNoYm9hcmRQYXRoIGlzIHVuZGVmaW5lZCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgX3RoaXMuZGFzaGJvYXJkQ29udGVudCA9IF90aGlzLmluaXRpYWxpemVEYXNoYm9hcmRDb250ZW50KHJlc3VsdC5hZGRpbkRhc2hib2FyZEluZm8sIHJlc3VsdC5hZGRJbkluc3RhbmNlLmxvY2F0b3IuZGFzaGJvYXJkUGF0aCk7XG4gICAgICAgICAgICBfdGhpcy5lbnZpcm9ubWVudCA9IG5ldyBFbnZpcm9ubWVudF8xLkVudmlyb25tZW50KHJlc3VsdC5hZGRJbkVudmlyb25tZW50KTtcbiAgICAgICAgICAgIF90aGlzLnNldHRpbmdzID0gX3RoaXMuaW5pdGlhbGl6ZVNldHRpbmdzKHJlc3VsdC5hZGRJblNldHRpbmdzSW5mbyk7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgQWRkSW5JbXBsLnByb3RvdHlwZS5pbml0aWFsaXplRGFzaGJvYXJkQ29udGVudCA9IGZ1bmN0aW9uIChpbmZvLCBzaGVldFBhdGgpIHtcbiAgICAgICAgdmFyIGRhc2hib2FyZEltcGwgPSBuZXcgRGFzaGJvYXJkSW1wbF8xLkRhc2hib2FyZEltcGwoaW5mbywgc2hlZXRQYXRoKTtcbiAgICAgICAgdmFyIGRhc2hib2FyZCA9IG5ldyBEYXNoYm9hcmRfMS5EYXNoYm9hcmQoZGFzaGJvYXJkSW1wbCk7XG4gICAgICAgIHJldHVybiBuZXcgRGFzaGJvYXJkQ29udGVudF8xLkRhc2hib2FyZENvbnRlbnQoZGFzaGJvYXJkKTtcbiAgICB9O1xuICAgIEFkZEluSW1wbC5wcm90b3R5cGUuaW5pdGlhbGl6ZVNldHRpbmdzID0gZnVuY3Rpb24gKHNldHRpbmdzSW5mbykge1xuICAgICAgICB2YXIgc2V0dGluZ3NJbXBsID0gbmV3IFNldHRpbmdzSW1wbF8xLlNldHRpbmdzSW1wbChzZXR0aW5nc0luZm8pO1xuICAgICAgICByZXR1cm4gbmV3IFNldHRpbmdzXzEuU2V0dGluZ3Moc2V0dGluZ3NJbXBsKTtcbiAgICB9O1xuICAgIHJldHVybiBBZGRJbkltcGw7XG59KCkpO1xuZXhwb3J0cy5BZGRJbkltcGwgPSBBZGRJbkltcGw7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1BZGRJbkltcGwuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiAuLi9saWIvSW50ZXJuYWwvQWRkSW5JbXBsLmpzXG4gKiogbW9kdWxlIGlkID0gMVxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG4vKipcbiAqIFRoaXMgaXMgeW91ciBtYWluLiBUaGlzIGlzIHdoZXJlIHlvdSByZS1leHBvcnQgZXZlcnl0aGluZyB5b3Ugd2FudCB0byBiZSBwdWJsaWNseSBhdmFpbGFibGUuXG4gKlxuICogVGhlIGJ1aWxkIGVuZm9yY2VzIHRoYXQgdGhlIGZpbGUgaGFzIHRoZSBzYW1lIG5hbWUgYXMgdGhlIGdsb2JhbCB2YXJpYWJsZSB0aGF0IGlzIGV4cG9ydGVkLlxuICovXG5mdW5jdGlvbiBfX2V4cG9ydChtKSB7XG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAoIWV4cG9ydHMuaGFzT3duUHJvcGVydHkocCkpIGV4cG9ydHNbcF0gPSBtW3BdO1xufVxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuX19leHBvcnQocmVxdWlyZShcIi4vaW50ZXJmYWNlL0VudW1zXCIpKTtcbl9fZXhwb3J0KHJlcXVpcmUoXCIuL2ludGVyZmFjZS9JbnRlcm5hbEFwaURpc3BhdGNoZXJcIikpO1xuX19leHBvcnQocmVxdWlyZShcIi4vaW50ZXJmYWNlL05vdGlmaWNhdGlvbnNcIikpO1xuX19leHBvcnQocmVxdWlyZShcIi4vaW50ZXJmYWNlL1BhcmFtZXRlcnNcIikpO1xuX19leHBvcnQocmVxdWlyZShcIi4vaW50ZXJmYWNlL1ZlcmJzXCIpKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUFwaUludGVybmFsQ29udHJhY3QuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9saWIvQXBpSW50ZXJuYWxDb250cmFjdC5qc1xuICoqIG1vZHVsZSBpZCA9IDJcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIEFkZEluQ29udGV4dDtcbihmdW5jdGlvbiAoQWRkSW5Db250ZXh0KSB7XG4gICAgQWRkSW5Db250ZXh0W1wiRGVza3RvcFwiXSA9IFwiZGVza3RvcFwiO1xuICAgIEFkZEluQ29udGV4dFtcIlNlcnZlclwiXSA9IFwic2VydmVyXCI7XG4gICAgQWRkSW5Db250ZXh0W1wiVW5rbm93blwiXSA9IFwidW5rbm93blwiO1xufSkoQWRkSW5Db250ZXh0ID0gZXhwb3J0cy5BZGRJbkNvbnRleHQgfHwgKGV4cG9ydHMuQWRkSW5Db250ZXh0ID0ge30pKTtcbnZhciBBZGRJbk1vZGU7XG4oZnVuY3Rpb24gKEFkZEluTW9kZSkge1xuICAgIEFkZEluTW9kZVtcIkF1dGhvcmluZ1wiXSA9IFwiYXV0aG9yaW5nXCI7XG4gICAgQWRkSW5Nb2RlW1wiVmlld2luZ1wiXSA9IFwidmlld2luZ1wiO1xuICAgIEFkZEluTW9kZVtcIlVua25vd25cIl0gPSBcInVua25vd25cIjtcbn0pKEFkZEluTW9kZSA9IGV4cG9ydHMuQWRkSW5Nb2RlIHx8IChleHBvcnRzLkFkZEluTW9kZSA9IHt9KSk7XG52YXIgQ29sdW1uVHlwZTtcbihmdW5jdGlvbiAoQ29sdW1uVHlwZSkge1xuICAgIENvbHVtblR5cGVbXCJEaXNjcmV0ZVwiXSA9IFwiZGlzY3JldGVcIjtcbiAgICBDb2x1bW5UeXBlW1wiQ29udGludW91c1wiXSA9IFwiY29udGludW91c1wiO1xufSkoQ29sdW1uVHlwZSA9IGV4cG9ydHMuQ29sdW1uVHlwZSB8fCAoZXhwb3J0cy5Db2x1bW5UeXBlID0ge30pKTtcbnZhciBEYXNoYm9hcmRPYmplY3RUeXBlO1xuKGZ1bmN0aW9uIChEYXNoYm9hcmRPYmplY3RUeXBlKSB7XG4gICAgRGFzaGJvYXJkT2JqZWN0VHlwZVtcIkJsYW5rXCJdID0gXCJibGFua1wiO1xuICAgIERhc2hib2FyZE9iamVjdFR5cGVbXCJXb3Jrc2hlZXRcIl0gPSBcIndvcmtzaGVldFwiO1xuICAgIERhc2hib2FyZE9iamVjdFR5cGVbXCJRdWlja0ZpbHRlclwiXSA9IFwicXVpY2stZmlsdGVyXCI7XG4gICAgRGFzaGJvYXJkT2JqZWN0VHlwZVtcIlBhcmFtZXRlckNvbnRyb2xcIl0gPSBcInBhcmFtZXRlci1jb250cm9sXCI7XG4gICAgRGFzaGJvYXJkT2JqZWN0VHlwZVtcIlBhZ2VGaWx0ZXJcIl0gPSBcInBhZ2UtZmlsdGVyXCI7XG4gICAgRGFzaGJvYXJkT2JqZWN0VHlwZVtcIkxlZ2VuZFwiXSA9IFwibGVnZW5kXCI7XG4gICAgRGFzaGJvYXJkT2JqZWN0VHlwZVtcIlRpdGxlXCJdID0gXCJ0aXRsZVwiO1xuICAgIERhc2hib2FyZE9iamVjdFR5cGVbXCJUZXh0XCJdID0gXCJ0ZXh0XCI7XG4gICAgRGFzaGJvYXJkT2JqZWN0VHlwZVtcIkltYWdlXCJdID0gXCJpbWFnZVwiO1xuICAgIERhc2hib2FyZE9iamVjdFR5cGVbXCJXZWJQYWdlXCJdID0gXCJ3ZWItcGFnZVwiO1xuICAgIERhc2hib2FyZE9iamVjdFR5cGVbXCJBZGRJblwiXSA9IFwiYWRkaW5cIjtcbn0pKERhc2hib2FyZE9iamVjdFR5cGUgPSBleHBvcnRzLkRhc2hib2FyZE9iamVjdFR5cGUgfHwgKGV4cG9ydHMuRGFzaGJvYXJkT2JqZWN0VHlwZSA9IHt9KSk7XG52YXIgRGF0YVR5cGU7XG4oZnVuY3Rpb24gKERhdGFUeXBlKSB7XG4gICAgRGF0YVR5cGVbXCJTdHJpbmdcIl0gPSBcInN0cmluZ1wiO1xuICAgIERhdGFUeXBlW1wiSW50XCJdID0gXCJpbnRcIjtcbiAgICBEYXRhVHlwZVtcIkZsb2F0XCJdID0gXCJmbG9hdFwiO1xuICAgIERhdGFUeXBlW1wiQm9vbFwiXSA9IFwiYm9vbFwiO1xuICAgIERhdGFUeXBlW1wiRGF0ZVwiXSA9IFwiZGF0ZVwiO1xuICAgIERhdGFUeXBlW1wiRGF0ZVRpbWVcIl0gPSBcImRhdGUtdGltZVwiO1xuICAgIERhdGFUeXBlW1wiU3BhdGlhbFwiXSA9IFwic3BhdGlhbFwiO1xufSkoRGF0YVR5cGUgPSBleHBvcnRzLkRhdGFUeXBlIHx8IChleHBvcnRzLkRhdGFUeXBlID0ge30pKTtcbnZhciBFbmNvZGVkRGF0YVR5cGU7XG4oZnVuY3Rpb24gKEVuY29kZWREYXRhVHlwZSkge1xuICAgIEVuY29kZWREYXRhVHlwZVtcIk51bWJlclwiXSA9IFwibnVtYmVyXCI7XG4gICAgRW5jb2RlZERhdGFUeXBlW1wiU3RyaW5nXCJdID0gXCJzdHJpbmdcIjtcbiAgICBFbmNvZGVkRGF0YVR5cGVbXCJEYXRlXCJdID0gXCJkYXRlXCI7XG4gICAgRW5jb2RlZERhdGFUeXBlW1wiQm9vbGVhblwiXSA9IFwiYm9vbGVhblwiO1xufSkoRW5jb2RlZERhdGFUeXBlID0gZXhwb3J0cy5FbmNvZGVkRGF0YVR5cGUgfHwgKGV4cG9ydHMuRW5jb2RlZERhdGFUeXBlID0ge30pKTtcbnZhciBFcnJvckNvZGU7XG4oZnVuY3Rpb24gKEVycm9yQ29kZSkge1xuICAgIEVycm9yQ29kZVtcIlNlcnZlckVycm9yXCJdID0gXCJzZXJ2ZXItZXJyb3JcIjtcbiAgICBFcnJvckNvZGVbXCJJbnZhbGlkQWdncmVnYXRpb25GaWVsZE5hbWVcIl0gPSBcImludmFsaWQtYWdncmVnYXRpb24tZmllbGQtbmFtZVwiO1xuICAgIEVycm9yQ29kZVtcIkludmFsaWRGaWx0ZXJGaWVsZE5hbWVcIl0gPSBcImludmFsaWQtZmlsdGVyLWZpZWxkbmFtZVwiO1xuICAgIEVycm9yQ29kZVtcIkludmFsaWRGaWx0ZXJGaWVsZFZhbHVlXCJdID0gXCJpbnZhbGlkLWZpbHRlci1maWVsZC12YWx1ZVwiO1xufSkoRXJyb3JDb2RlID0gZXhwb3J0cy5FcnJvckNvZGUgfHwgKGV4cG9ydHMuRXJyb3JDb2RlID0ge30pKTtcbnZhciBGaWVsZEFnZ3JlZ2F0aW9uVHlwZTtcbihmdW5jdGlvbiAoRmllbGRBZ2dyZWdhdGlvblR5cGUpIHtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlN1bVwiXSA9IFwic3VtXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJBdmdcIl0gPSBcImF2Z1wiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiTWluXCJdID0gXCJtaW5cIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIk1heFwiXSA9IFwibWF4XCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJTdGRldlwiXSA9IFwic3RkZXZcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlN0ZGV2cFwiXSA9IFwic3RkZXZwXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJWYXJcIl0gPSBcInZhclwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiVmFycFwiXSA9IFwidmFycFwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiQ291bnRcIl0gPSBcImNvdW50XCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJDb3VudGRcIl0gPSBcImNvdW50ZFwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiTWVkaWFuXCJdID0gXCJtZWRpYW5cIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIkF0dHJcIl0gPSBcImF0dHJcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIk5vbmVcIl0gPSBcIm5vbmVcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlllYXJcIl0gPSBcInllYXJcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlF0clwiXSA9IFwicXRyXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJNb250aFwiXSA9IFwibW9udGhcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIkRheVwiXSA9IFwiZGF5XCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJIb3VyXCJdID0gXCJob3VyXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJNaW51dGVcIl0gPSBcIm1pbnV0ZVwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiU2Vjb25kXCJdID0gXCJzZWNvbmRcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIldlZWtcIl0gPSBcIndlZWtcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIldlZWtkYXlcIl0gPSBcIndlZWtkYXlcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIk1vbnRoWWVhclwiXSA9IFwibW9udGgteWVhclwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiTWR5XCJdID0gXCJtZHlcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIkVuZFwiXSA9IFwiZW5kXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJUcnVuY1llYXJcIl0gPSBcInRydW5jLXllYXJcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlRydW5jUXRyXCJdID0gXCJ0cnVuYy1xdHJcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlRydW5jTW9udGhcIl0gPSBcInRydW5jLW1vbnRoXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJUcnVuY1dlZWtcIl0gPSBcInRydW5jLXdlZWtcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlRydW5jRGF5XCJdID0gXCJ0cnVuYy1kYXlcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlRydW5jSG91clwiXSA9IFwidHJ1bmMtaG91clwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiVHJ1bmNNaW51dGVcIl0gPSBcInRydW5jLW1pbnV0ZVwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiVHJ1bmNTZWNvbmRcIl0gPSBcInRydW5jLXNlY29uZFwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiUXVhcnQxXCJdID0gXCJxdWFydDFcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlF1YXJ0M1wiXSA9IFwicXVhcnQzXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJTa2V3bmVzc1wiXSA9IFwic2tld25lc3NcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIkt1cnRvc2lzXCJdID0gXCJrdXJ0b3Npc1wiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiSW5PdXRcIl0gPSBcImluLW91dFwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiVXNlclwiXSA9IFwidXNlclwiO1xufSkoRmllbGRBZ2dyZWdhdGlvblR5cGUgPSBleHBvcnRzLkZpZWxkQWdncmVnYXRpb25UeXBlIHx8IChleHBvcnRzLkZpZWxkQWdncmVnYXRpb25UeXBlID0ge30pKTtcbnZhciBGaWVsZFJvbGVUeXBlO1xuKGZ1bmN0aW9uIChGaWVsZFJvbGVUeXBlKSB7XG4gICAgRmllbGRSb2xlVHlwZVtcIkRpbWVuc2lvblwiXSA9IFwiZGltZW5zaW9uXCI7XG4gICAgRmllbGRSb2xlVHlwZVtcIk1lYXN1cmVcIl0gPSBcIm1lYXN1cmVcIjtcbiAgICBGaWVsZFJvbGVUeXBlW1wiVW5rbm93blwiXSA9IFwidW5rbm93blwiO1xufSkoRmllbGRSb2xlVHlwZSA9IGV4cG9ydHMuRmllbGRSb2xlVHlwZSB8fCAoZXhwb3J0cy5GaWVsZFJvbGVUeXBlID0ge30pKTtcbi8qKlxuICogIFRoZSBkaWZmZXJlbnQgdXBkYXRlIHR5cGVzIGZvciBhcHBseWluZyBmaWx0ZXIuXG4gKi9cbnZhciBGaWx0ZXJVcGRhdGVUeXBlO1xuKGZ1bmN0aW9uIChGaWx0ZXJVcGRhdGVUeXBlKSB7XG4gICAgRmlsdGVyVXBkYXRlVHlwZVtcIkFkZFwiXSA9IFwiYWRkXCI7XG4gICAgRmlsdGVyVXBkYXRlVHlwZVtcIkFsbFwiXSA9IFwiYWxsXCI7XG4gICAgRmlsdGVyVXBkYXRlVHlwZVtcIlJlcGxhY2VcIl0gPSBcInJlcGxhY2VcIjtcbiAgICBGaWx0ZXJVcGRhdGVUeXBlW1wiUmVtb3ZlXCJdID0gXCJyZW1vdmVcIjtcbn0pKEZpbHRlclVwZGF0ZVR5cGUgPSBleHBvcnRzLkZpbHRlclVwZGF0ZVR5cGUgfHwgKGV4cG9ydHMuRmlsdGVyVXBkYXRlVHlwZSA9IHt9KSk7XG52YXIgU2hlZXRUeXBlO1xuKGZ1bmN0aW9uIChTaGVldFR5cGUpIHtcbiAgICBTaGVldFR5cGVbXCJEYXNoYm9hcmRcIl0gPSBcImRhc2hib2FyZFwiO1xuICAgIFNoZWV0VHlwZVtcIlN0b3J5XCJdID0gXCJzdG9yeVwiO1xuICAgIFNoZWV0VHlwZVtcIldvcmtzaGVldFwiXSA9IFwid29ya3NoZWV0XCI7XG4gICAgU2hlZXRUeXBlW1wiQWRkaW5cIl0gPSBcImFkZGluXCI7XG59KShTaGVldFR5cGUgPSBleHBvcnRzLlNoZWV0VHlwZSB8fCAoZXhwb3J0cy5TaGVldFR5cGUgPSB7fSkpO1xudmFyIERvbWFpblJlc3RyaWN0aW9uVHlwZTtcbihmdW5jdGlvbiAoRG9tYWluUmVzdHJpY3Rpb25UeXBlKSB7XG4gICAgRG9tYWluUmVzdHJpY3Rpb25UeXBlW1wiQWxsXCJdID0gXCJhbGxcIjtcbiAgICBEb21haW5SZXN0cmljdGlvblR5cGVbXCJMaXN0XCJdID0gXCJsaXN0XCI7XG4gICAgRG9tYWluUmVzdHJpY3Rpb25UeXBlW1wiUmFuZ2VcIl0gPSBcInJhbmdlXCI7XG59KShEb21haW5SZXN0cmljdGlvblR5cGUgPSBleHBvcnRzLkRvbWFpblJlc3RyaWN0aW9uVHlwZSB8fCAoZXhwb3J0cy5Eb21haW5SZXN0cmljdGlvblR5cGUgPSB7fSkpO1xudmFyIERhdGVTdGVwUGVyaW9kO1xuKGZ1bmN0aW9uIChEYXRlU3RlcFBlcmlvZCkge1xuICAgIERhdGVTdGVwUGVyaW9kW1wiWWVhcnNcIl0gPSBcInllYXJzXCI7XG4gICAgRGF0ZVN0ZXBQZXJpb2RbXCJRdWFydGVyc1wiXSA9IFwicXVhcnRlcnNcIjtcbiAgICBEYXRlU3RlcFBlcmlvZFtcIk1vbnRoc1wiXSA9IFwibW9udGhzXCI7XG4gICAgRGF0ZVN0ZXBQZXJpb2RbXCJXZWVrc1wiXSA9IFwid2Vla3NcIjtcbiAgICBEYXRlU3RlcFBlcmlvZFtcIkRheXNcIl0gPSBcImRheXNcIjtcbiAgICBEYXRlU3RlcFBlcmlvZFtcIkhvdXJzXCJdID0gXCJob3Vyc1wiO1xuICAgIERhdGVTdGVwUGVyaW9kW1wiTWludXRlc1wiXSA9IFwibWludXRlc1wiO1xuICAgIERhdGVTdGVwUGVyaW9kW1wiU2Vjb25kc1wiXSA9IFwic2Vjb25kc1wiO1xufSkoRGF0ZVN0ZXBQZXJpb2QgPSBleHBvcnRzLkRhdGVTdGVwUGVyaW9kIHx8IChleHBvcnRzLkRhdGVTdGVwUGVyaW9kID0ge30pKTtcbi8qKlxuICogVGhlIG9wdGlvbiBmb3Igc3BlY2lmeWluZyB3aGljaCB2YWx1ZXMgdG8gaW5jbHVkZSBmb3IgZmlsdGVyaW5nLlxuICovXG52YXIgRmlsdGVyTnVsbE9wdGlvbjtcbihmdW5jdGlvbiAoRmlsdGVyTnVsbE9wdGlvbikge1xuICAgIEZpbHRlck51bGxPcHRpb25bXCJOdWxsVmFsdWVzXCJdID0gXCJudWxsdmFsdWVzXCI7XG4gICAgRmlsdGVyTnVsbE9wdGlvbltcIk5vbk51bGxWYWx1ZXNcIl0gPSBcIm5vbm51bGx2YWx1ZXNcIjtcbiAgICBGaWx0ZXJOdWxsT3B0aW9uW1wiQWxsVmFsdWVzXCJdID0gXCJhbGx2YWx1ZXNcIjtcbn0pKEZpbHRlck51bGxPcHRpb24gPSBleHBvcnRzLkZpbHRlck51bGxPcHRpb24gfHwgKGV4cG9ydHMuRmlsdGVyTnVsbE9wdGlvbiA9IHt9KSk7XG4vKipcbiAqIFRoZSB0eXBlIG9mIGZpbHRlciBkb21haW5cbiAqL1xudmFyIEZpbHRlckRvbWFpblR5cGU7XG4oZnVuY3Rpb24gKEZpbHRlckRvbWFpblR5cGUpIHtcbiAgICBGaWx0ZXJEb21haW5UeXBlW1wiUmVsZXZhbnRcIl0gPSBcInJlbGV2YW50XCI7XG4gICAgRmlsdGVyRG9tYWluVHlwZVtcIkRhdGFiYXNlXCJdID0gXCJkYXRhYmFzZVwiO1xufSkoRmlsdGVyRG9tYWluVHlwZSA9IGV4cG9ydHMuRmlsdGVyRG9tYWluVHlwZSB8fCAoZXhwb3J0cy5GaWx0ZXJEb21haW5UeXBlID0ge30pKTtcbi8qKlxuICogSW50ZXJuYWwgZW51bSBmb3Igc3BlY2lmeWluZyB0aGUgc2VsZWN0aW9uIHR5cGUgZm9yIHNlbGVjdCBtYXJrcyBhcGkuXG4gKi9cbnZhciBTZWxlY3Rpb25VcGRhdGVUeXBlO1xuKGZ1bmN0aW9uIChTZWxlY3Rpb25VcGRhdGVUeXBlKSB7XG4gICAgU2VsZWN0aW9uVXBkYXRlVHlwZVtcIlJlcGxhY2VcIl0gPSBcInNlbGVjdC1yZXBsYWNlXCI7XG4gICAgU2VsZWN0aW9uVXBkYXRlVHlwZVtcIkFkZFwiXSA9IFwic2VsZWN0LWFkZFwiO1xuICAgIFNlbGVjdGlvblVwZGF0ZVR5cGVbXCJSZW1vdmVcIl0gPSBcInNlbGVjdC1yZW1vdmVcIjtcbn0pKFNlbGVjdGlvblVwZGF0ZVR5cGUgPSBleHBvcnRzLlNlbGVjdGlvblVwZGF0ZVR5cGUgfHwgKGV4cG9ydHMuU2VsZWN0aW9uVXBkYXRlVHlwZSA9IHt9KSk7XG4vKipcbiAqIEludGVybmFsIGVudW0gZm9yIHNwZWNpZnlpbmcgdGhlIGluY2x1ZGVkIHZhbHVlcyB0eXBlIGZvciByYW5nZSBzZWxlY3Rpb24uXG4gKi9cbnZhciBRdWFudGl0YXRpdmVJbmNsdWRlZFZhbHVlcztcbihmdW5jdGlvbiAoUXVhbnRpdGF0aXZlSW5jbHVkZWRWYWx1ZXMpIHtcbiAgICBRdWFudGl0YXRpdmVJbmNsdWRlZFZhbHVlc1tcIkluY2x1ZGVOdWxsXCJdID0gXCJpbmNsdWRlLW51bGxcIjtcbiAgICBRdWFudGl0YXRpdmVJbmNsdWRlZFZhbHVlc1tcIkluY2x1ZGVOb25OdWxsXCJdID0gXCJpbmNsdWRlLW5vbi1udWxsXCI7XG4gICAgUXVhbnRpdGF0aXZlSW5jbHVkZWRWYWx1ZXNbXCJJbmNsdWRlQWxsXCJdID0gXCJpbmNsdWRlLWFsbFwiO1xufSkoUXVhbnRpdGF0aXZlSW5jbHVkZWRWYWx1ZXMgPSBleHBvcnRzLlF1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzIHx8IChleHBvcnRzLlF1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzID0ge30pKTtcbi8qKlxuICogVHlwZSBvZiBtYXJrIGZvciBhIGdpdmVuIG1hcmtzIGNhcmQgaW4gYSB2aXouXG4gKi9cbnZhciBNYXJrVHlwZTtcbihmdW5jdGlvbiAoTWFya1R5cGUpIHtcbiAgICBNYXJrVHlwZVtcIkJhclwiXSA9IFwiYmFyXCI7XG4gICAgTWFya1R5cGVbXCJMaW5lXCJdID0gXCJsaW5lXCI7XG4gICAgTWFya1R5cGVbXCJBcmVhXCJdID0gXCJhcmVhXCI7XG4gICAgTWFya1R5cGVbXCJTcXVhcmVcIl0gPSBcInNxdWFyZVwiO1xuICAgIE1hcmtUeXBlW1wiQ2lyY2xlXCJdID0gXCJjaXJjbGVcIjtcbiAgICBNYXJrVHlwZVtcIlNoYXBlXCJdID0gXCJzaGFwZVwiO1xuICAgIE1hcmtUeXBlW1wiVGV4dFwiXSA9IFwidGV4dFwiO1xuICAgIE1hcmtUeXBlW1wiTWFwXCJdID0gXCJtYXBcIjtcbiAgICBNYXJrVHlwZVtcIlBpZVwiXSA9IFwicGllXCI7XG4gICAgTWFya1R5cGVbXCJHYW50dEJhclwiXSA9IFwiZ2FudHQtYmFyXCI7XG4gICAgTWFya1R5cGVbXCJQb2x5Z29uXCJdID0gXCJwb2x5Z29uXCI7XG59KShNYXJrVHlwZSA9IGV4cG9ydHMuTWFya1R5cGUgfHwgKGV4cG9ydHMuTWFya1R5cGUgPSB7fSkpO1xuLyoqXG4gKiBJbnRlcm5hbCBlbnVtIGZvciBzcGVjaWZ5aW5nIHRoZSB0eXBlIG9mIGZpbHRlclxuICovXG52YXIgRmlsdGVyVHlwZTtcbihmdW5jdGlvbiAoRmlsdGVyVHlwZSkge1xuICAgIEZpbHRlclR5cGVbXCJDYXRlZ29yaWNhbFwiXSA9IFwiY2F0ZWdvcmljYWxcIjtcbiAgICBGaWx0ZXJUeXBlW1wiUmFuZ2VcIl0gPSBcInJhbmdlXCI7XG4gICAgRmlsdGVyVHlwZVtcIlJlbGF0aXZlRGF0ZVwiXSA9IFwicmVsYXRpdmVEYXRlXCI7XG4gICAgRmlsdGVyVHlwZVtcIkhpZXJhcmNoaWNhbFwiXSA9IFwiaGllcmFyY2hpY2FsXCI7XG59KShGaWx0ZXJUeXBlID0gZXhwb3J0cy5GaWx0ZXJUeXBlIHx8IChleHBvcnRzLkZpbHRlclR5cGUgPSB7fSkpO1xuLyoqXG4gKiBJbnRlcm5hbCBlbnVtIGZvciBzcGVjaWZ5aW5nIHRoZSBEYXRlUmFuZ2VUeXBlIG9mIGEgcmVsYXRpdmUgZGF0ZSBmaWx0ZXJcbiAqL1xudmFyIERhdGVSYW5nZVR5cGU7XG4oZnVuY3Rpb24gKERhdGVSYW5nZVR5cGUpIHtcbiAgICAvKipcbiAgICAgKiBSZWZlcnMgdG8gdGhlIGxhc3QgZGF5LCB3ZWVrLCBtb250aCwgZXRjLiBvZiB0aGUgZGF0ZSBwZXJpb2QuXG4gICAgICovXG4gICAgRGF0ZVJhbmdlVHlwZVtcIkxhc3RcIl0gPSBcImxhc3RcIjtcbiAgICAvKipcbiAgICAgKiBSZWZlcnMgdG8gdGhlIGxhc3QgTiBkYXlzLCB3ZWVrcywgbW9udGhzLCBldGMuIG9mIHRoZSBkYXRlIHBlcmlvZC5cbiAgICAgKi9cbiAgICBEYXRlUmFuZ2VUeXBlW1wiTGFzdE5cIl0gPSBcImxhc3ROXCI7XG4gICAgLyoqXG4gICAgICogUmVmZXJzIHRvIHRoZSBuZXh0IGRheSwgd2VlaywgbW9udGgsIGV0Yy4gb2YgdGhlIGRhdGUgcGVyaW9kLlxuICAgICAqL1xuICAgIERhdGVSYW5nZVR5cGVbXCJOZXh0XCJdID0gXCJuZXh0XCI7XG4gICAgLyoqXG4gICAgICogUmVmZXJzIHRvIHRoZSBuZXh0IE4gZGF5cywgd2Vla3MsIG1vbnRocywgZXRjLiBvZiB0aGUgZGF0ZSBwZXJpb2QuXG4gICAgICovXG4gICAgRGF0ZVJhbmdlVHlwZVtcIk5leHROXCJdID0gXCJuZXh0TlwiO1xuICAgIC8qKlxuICAgICAqIFJlZmVycyB0byB0aGUgY3VycmVudCBkYXksIHdlZWssIG1vbnRoLCBldGMuIG9mIHRoZSBkYXRlIHBlcmlvZC5cbiAgICAgKi9cbiAgICBEYXRlUmFuZ2VUeXBlW1wiQ3VycmVudFwiXSA9IFwiY3VycmVudFwiO1xuICAgIC8qKlxuICAgICAqIFJlZmVycyB0byBldmVyeXRoaW5nIHVwIHRvIGFuZCBpbmNsdWRpbmcgdGhlIGN1cnJlbnQgZGF5LCB3ZWVrLCBtb250aCwgZXRjLiBvZiB0aGUgZGF0ZSBwZXJpb2QuXG4gICAgICovXG4gICAgRGF0ZVJhbmdlVHlwZVtcIlRvRGF0ZVwiXSA9IFwidG9EYXRlXCI7XG59KShEYXRlUmFuZ2VUeXBlID0gZXhwb3J0cy5EYXRlUmFuZ2VUeXBlIHx8IChleHBvcnRzLkRhdGVSYW5nZVR5cGUgPSB7fSkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RW51bXMuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9saWIvaW50ZXJmYWNlL0VudW1zLmpzXG4gKiogbW9kdWxlIGlkID0gM1xuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgSW50ZXJuYWxBcGlEaXNwYXRjaGVySG9sZGVyO1xuKGZ1bmN0aW9uIChJbnRlcm5hbEFwaURpc3BhdGNoZXJIb2xkZXIpIHtcbiAgICBmdW5jdGlvbiBnZXREZXNrdG9wRGlzcGF0Y2hlclByb21pc2UoKSB7XG4gICAgICAgIHJldHVybiB3aW5kb3cuX190YWJsZWF1RGVza3RvcERpc3BhdGNoZXI7XG4gICAgfVxuICAgIEludGVybmFsQXBpRGlzcGF0Y2hlckhvbGRlci5nZXREZXNrdG9wRGlzcGF0Y2hlclByb21pc2UgPSBnZXREZXNrdG9wRGlzcGF0Y2hlclByb21pc2U7XG4gICAgZnVuY3Rpb24gaGFzRGVza3RvcEFwaURpc3BhdGNoZXJQcm9taXNlKCkge1xuICAgICAgICByZXR1cm4gISFJbnRlcm5hbEFwaURpc3BhdGNoZXJIb2xkZXIuZ2V0RGVza3RvcERpc3BhdGNoZXJQcm9taXNlKCk7XG4gICAgfVxuICAgIEludGVybmFsQXBpRGlzcGF0Y2hlckhvbGRlci5oYXNEZXNrdG9wQXBpRGlzcGF0Y2hlclByb21pc2UgPSBoYXNEZXNrdG9wQXBpRGlzcGF0Y2hlclByb21pc2U7XG4gICAgZnVuY3Rpb24gc2V0RGVza3RvcERpc3BhdGNoZXJQcm9taXNlKGRpc3BhdGNoZXIpIHtcbiAgICAgICAgd2luZG93Ll9fdGFibGVhdURlc2t0b3BEaXNwYXRjaGVyID0gZGlzcGF0Y2hlcjtcbiAgICB9XG4gICAgSW50ZXJuYWxBcGlEaXNwYXRjaGVySG9sZGVyLnNldERlc2t0b3BEaXNwYXRjaGVyUHJvbWlzZSA9IHNldERlc2t0b3BEaXNwYXRjaGVyUHJvbWlzZTtcbn0pKEludGVybmFsQXBpRGlzcGF0Y2hlckhvbGRlciA9IGV4cG9ydHMuSW50ZXJuYWxBcGlEaXNwYXRjaGVySG9sZGVyIHx8IChleHBvcnRzLkludGVybmFsQXBpRGlzcGF0Y2hlckhvbGRlciA9IHt9KSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1JbnRlcm5hbEFwaURpc3BhdGNoZXIuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9saWIvaW50ZXJmYWNlL0ludGVybmFsQXBpRGlzcGF0Y2hlci5qc1xuICoqIG1vZHVsZSBpZCA9IDRcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIE5vdGlmaWNhdGlvbklkO1xuKGZ1bmN0aW9uIChOb3RpZmljYXRpb25JZCkge1xuICAgIE5vdGlmaWNhdGlvbklkW1wiU2VsZWN0ZWRNYXJrc0NoYW5nZWRcIl0gPSBcInNlbGVjdGVkLW1hcmtzLWNoYW5nZWRcIjtcbiAgICBOb3RpZmljYXRpb25JZFtcIlBhcmFtZXRlckNoYW5nZWRcIl0gPSBcInBhcmFtZXRlci1jaGFuZ2VkXCI7XG4gICAgTm90aWZpY2F0aW9uSWRbXCJGaWx0ZXJDaGFuZ2VkXCJdID0gXCJmaWx0ZXItY2hhbmdlZFwiO1xufSkoTm90aWZpY2F0aW9uSWQgPSBleHBvcnRzLk5vdGlmaWNhdGlvbklkIHx8IChleHBvcnRzLk5vdGlmaWNhdGlvbklkID0ge30pKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU5vdGlmaWNhdGlvbnMuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9saWIvaW50ZXJmYWNlL05vdGlmaWNhdGlvbnMuanNcbiAqKiBtb2R1bGUgaWQgPSA1XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBQYXJhbWV0ZXJJZDtcbihmdW5jdGlvbiAoUGFyYW1ldGVySWQpIHtcbiAgICBQYXJhbWV0ZXJJZFtcIkFkZEluTG9jYXRvclwiXSA9IFwiYWRkLWluLWxvY2F0b3JcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIkFkZEluQm9vdHN0cmFwSW5mb1wiXSA9IFwiYWRkLWluLWJvb3RzdHJhcC1pbmZvXCI7XG4gICAgUGFyYW1ldGVySWRbXCJBZGRJblNldHRpbmdzSW5mb1wiXSA9IFwiYWRkLWluLXNldHRpbmdzLWluZm9cIjtcbiAgICBQYXJhbWV0ZXJJZFtcIlZpc3VhbElkXCJdID0gXCJ2aXN1YWwtaWRcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIlNoZWV0UGF0aFwiXSA9IFwic2hlZXQtcGF0aFwiO1xuICAgIFBhcmFtZXRlcklkW1wiSWdub3JlQWxpYXNlc1wiXSA9IFwiaWdub3JlLWFsaWFzZXNcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIklnbm9yZVNlbGVjdGlvblwiXSA9IFwiaWdub3JlLXNlbGVjdGlvblwiO1xuICAgIFBhcmFtZXRlcklkW1wiSW5jbHVkZUFsbENvbHVtbnNcIl0gPSBcImluY2x1ZGUtYWxsLWNvbHVtbnNcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIk1heFJvd3NcIl0gPSBcIm1heC1yb3dzXCI7XG4gICAgUGFyYW1ldGVySWRbXCJVbmRlcmx5aW5nRGF0YVRhYmxlXCJdID0gXCJ1bmRlcmx5aW5nLWRhdGEtdGFibGVcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIlVuZGVybHlpbmdTdW1tYXJ5RGF0YVRhYmxlXCJdID0gXCJ1bmRlcmx5aW5nLXN1bW1hcnktZGF0YS10YWJsZVwiO1xuICAgIFBhcmFtZXRlcklkW1wiRGF0YVNvdXJjZURhdGFUYWJsZVwiXSA9IFwiZGF0YS1zb3VyY2UtZGF0YS10YWJsZVwiO1xuICAgIFBhcmFtZXRlcklkW1wiU2V0dGluZ3NWYWx1ZXNcIl0gPSBcInNldHRpbmdzLXZhbHVlc1wiO1xuICAgIFBhcmFtZXRlcklkW1wiU2VsZWN0ZWREYXRhXCJdID0gXCJzZWxlY3RlZC1kYXRhXCI7XG4gICAgUGFyYW1ldGVySWRbXCJIaWdobGlnaHRlZERhdGFcIl0gPSBcImhpZ2hsaWdodGVkLWRhdGFcIjtcbiAgICAvLyBGaWx0ZXIgUGFyYW1zXG4gICAgUGFyYW1ldGVySWRbXCJGaWVsZE5hbWVcIl0gPSBcImZpZWxkLW5hbWVcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIkZpbHRlclZhbHVlc1wiXSA9IFwiZmlsdGVyLXZhbHVlc1wiO1xuICAgIFBhcmFtZXRlcklkW1wiRmlsdGVyVXBkYXRlVHlwZVwiXSA9IFwiZmlsdGVyLXVwZGF0ZS10eXBlXCI7XG4gICAgUGFyYW1ldGVySWRbXCJJc0V4Y2x1ZGVNb2RlXCJdID0gXCJpcy1leGNsdWRlXCI7XG4gICAgUGFyYW1ldGVySWRbXCJGaWx0ZXJSYW5nZU1pblwiXSA9IFwiZmlsdGVyLXJhbmdlLW1pblwiO1xuICAgIFBhcmFtZXRlcklkW1wiRmlsdGVyUmFuZ2VNYXhcIl0gPSBcImZpbHRlci1yYW5nZS1tYXhcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIkZpbHRlclJhbmdlTnVsbE9wdGlvblwiXSA9IFwiZmlsdGVyLXJhbmdlLW51bGwtb3B0aW9uXCI7XG4gICAgUGFyYW1ldGVySWRbXCJXb3Jrc2hlZXRGaWx0ZXJzXCJdID0gXCJ3b3Jrc2hlZXQtZmlsdGVyc1wiO1xuICAgIFBhcmFtZXRlcklkW1wiRmllbGRJZFwiXSA9IFwiZmllbGQtaWRcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIkRvbWFpblR5cGVcIl0gPSBcImRvbWFpbi10eXBlXCI7XG4gICAgUGFyYW1ldGVySWRbXCJDYXRlZ29yaWNhbERvbWFpblwiXSA9IFwiY2F0ZWdvcmljYWwtZG9tYWluXCI7XG4gICAgUGFyYW1ldGVySWRbXCJRdWFudGl0YXRpdmVEb21haW5cIl0gPSBcInF1YW50aXRhdGl2ZS1kbWFpblwiO1xuICAgIFBhcmFtZXRlcklkW1wiV29ya3NoZWV0TmFtZVwiXSA9IFwid29ya3NoZWV0LW5hbWVcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIkRhc2hib2FyZE5hbWVcIl0gPSBcImRhc2hib2FyZFwiO1xuICAgIFBhcmFtZXRlcklkW1wiUGFyYW1ldGVySW5mb1wiXSA9IFwicGFyYW1ldGVyLWluZm9cIjtcbiAgICBQYXJhbWV0ZXJJZFtcIlBhcmFtZXRlckluZm9zXCJdID0gXCJwYXJhbWV0ZXItaW5mb3NcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIlBhcmFtZXRlckNhcHRpb25cIl0gPSBcInBhcmVtZXRlci1jYXB0aW9uXCI7XG4gICAgUGFyYW1ldGVySWRbXCJQYXJhbWV0ZXJGaWVsZE5hbWVcIl0gPSBcInBhcmFtZXRlci1maWVsZC1uYW1lXCI7XG4gICAgUGFyYW1ldGVySWRbXCJQYXJhbWV0ZXJWYWx1ZVwiXSA9IFwicGFyYW1ldGVyLXZhbHVlXCI7XG4gICAgUGFyYW1ldGVySWRbXCJTZWxlY3Rpb25cIl0gPSBcInNlbGVjdGlvblwiO1xuICAgIFBhcmFtZXRlcklkW1wiU2VsZWN0aW9uVXBkYXRlVHlwZVwiXSA9IFwic2VsZWN0aW9uVXBkYXRlVHlwZVwiO1xuICAgIFBhcmFtZXRlcklkW1wiSGllclZhbFNlbGVjdGlvbk1vZGVsc1wiXSA9IFwiaGllcmFyY2hpY2FsVmFsdWVTZWxlY3Rpb25Nb2RlbHNcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIlF1YW50UmFuZ2VTZWxlY3Rpb25Nb2RlbHNcIl0gPSBcInF1YW50YXRpdmVSYW5nZVNlbGVjdGlvbk1vZGVsc1wiO1xuICAgIFBhcmFtZXRlcklkW1wiRGltVmFsU2VsZWN0aW9uTW9kZWxzXCJdID0gXCJkaW1lbnNpb25WYWx1ZVNlbGVjdGlvbk1vZGVsc1wiO1xuICAgIFBhcmFtZXRlcklkW1wiRGF0YVNvdXJjZUlkXCJdID0gXCJkYXRhLXNvdXJjZS1pZFwiO1xuICAgIFBhcmFtZXRlcklkW1wiRGF0YVNjaGVtYVwiXSA9IFwiZGF0YS1zY2hlbWFcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFTb3VyY2VOYW1lXCJdID0gXCJkYXRhLXNvdXJjZS1uYW1lXCI7XG4gICAgUGFyYW1ldGVySWRbXCJDb2x1bW5zVG9JbmNsdWRlXCJdID0gXCJjb2x1bW5zLXRvLWluY2x1ZGVcIjtcbn0pKFBhcmFtZXRlcklkID0gZXhwb3J0cy5QYXJhbWV0ZXJJZCB8fCAoZXhwb3J0cy5QYXJhbWV0ZXJJZCA9IHt9KSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1QYXJhbWV0ZXJzLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogRDovZGV2L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3QvbGliL2ludGVyZmFjZS9QYXJhbWV0ZXJzLmpzXG4gKiogbW9kdWxlIGlkID0gNlxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4vLyBEZWNsYXJlIHRoaXMga2V5IHR5cGUgYW5kIGV4cG9ydCB0aGUgTm90aWZpY2F0aW9uSWQgdG8gbWFrZSB0aGlzIGJlaGF2ZSBsaWtlIGEgc3RyaW5nIGVudW1cbnZhciBWZXJiSWQ7XG4oZnVuY3Rpb24gKFZlcmJJZCkge1xuICAgIFZlcmJJZFtcIkFwcGx5Q2F0ZWdvcmljYWxGaWx0ZXJcIl0gPSBcImNhdGVnb3JpY2FsLWZpbHRlclwiO1xuICAgIFZlcmJJZFtcIkFwcGx5UmFuZ2VGaWx0ZXJcIl0gPSBcInJhbmdlLWZpbHRlclwiO1xuICAgIFZlcmJJZFtcIkNsZWFyRmlsdGVyXCJdID0gXCJjbGVhci1maWx0ZXJcIjtcbiAgICBWZXJiSWRbXCJJbml0aWFsaXplQWRkSW5cIl0gPSBcImluaXRpYWxpemUtYWRkLWluXCI7XG4gICAgVmVyYklkW1wiR2V0RGF0YVN1bW1hcnlEYXRhXCJdID0gXCJnZXQtc3VtbWFyeS1kYXRhXCI7XG4gICAgVmVyYklkW1wiR2V0VW5kZXJseWluZ0RhdGFcIl0gPSBcImdldC11bmRlcmx5aW5nLWRhdGFcIjtcbiAgICBWZXJiSWRbXCJHZXREYXRhU291cmNlRGF0YVwiXSA9IFwiZ2V0LWRhdGFzb3VyY2UtZGF0YVwiO1xuICAgIFZlcmJJZFtcIlNhdmVBZGRJblNldHRpbmdzXCJdID0gXCJzYXZlLWFkZC1pbi1zZXR0aW5nc1wiO1xuICAgIFZlcmJJZFtcIkdldFNlbGVjdGVkTWFya3NcIl0gPSBcImdldC1zZWxlY3RlZC1tYXJrc1wiO1xuICAgIFZlcmJJZFtcIkdldEhpZ2hsaWdodGVkTWFya3NcIl0gPSBcImdldC1oaWdobGlnaHRlZC1tYXJrc1wiO1xuICAgIFZlcmJJZFtcIkdldFBhcmFtZXRlcnNGb3JTaGVldFwiXSA9IFwiZ2V0LXBhcmFtZXRlcnMtZm9yLXNoZWV0XCI7XG4gICAgVmVyYklkW1wiRmluZFBhcmFtZXRlclwiXSA9IFwiZmluZC1wYXJhbWV0ZXJcIjtcbiAgICBWZXJiSWRbXCJDaGFuZ2VQYXJhbWV0ZXJWYWx1ZVwiXSA9IFwiY2hhbmdlLXBhcmFtZXRlci12YWx1ZVwiO1xuICAgIFZlcmJJZFtcIkNsZWFyU2VsZWN0ZWRNYXJrc1wiXSA9IFwiY2xlYXItc2VsZWN0ZWQtbWFya3NcIjtcbiAgICBWZXJiSWRbXCJTZWxlY3RCeVZhbHVlXCJdID0gXCJzZWxlY3QtYnktdmFsdWVcIjtcbiAgICBWZXJiSWRbXCJHZXREYXRhU291cmNlc1wiXSA9IFwiZ2V0LWRhdGEtc291cmNlc1wiO1xuICAgIFZlcmJJZFtcIlJlZnJlc2hEYXRhU291cmNlXCJdID0gXCJyZWZyZXNoLWRhdGEtc291cmNlXCI7XG4gICAgVmVyYklkW1wiR2V0RmlsdGVyc1wiXSA9IFwiZ2V0LWZpbHRlcnNcIjtcbiAgICBWZXJiSWRbXCJHZXRDYXRlZ29yaWNhbERvbWFpblwiXSA9IFwiZ2V0LWNhdGVnb3JpY2FsLWRvbWFpblwiO1xuICAgIFZlcmJJZFtcIkdldFJhbmdlRG9tYWluXCJdID0gXCJnZXQtcmFuZ2UtZG9tYWluXCI7XG59KShWZXJiSWQgPSBleHBvcnRzLlZlcmJJZCB8fCAoZXhwb3J0cy5WZXJiSWQgPSB7fSkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VmVyYnMuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9saWIvaW50ZXJmYWNlL1ZlcmJzLmpzXG4gKiogbW9kdWxlIGlkID0gN1xuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG4vKipcbiAqIFRoaXMgaXMgeW91ciBtYWluLiBUaGlzIGlzIHdoZXJlIHlvdSByZS1leHBvcnQgZXZlcnl0aGluZyB5b3Ugd2FudCB0byBiZSBwdWJsaWNseSBhdmFpbGFibGUuXG4gKlxuICogVGhlIGJ1aWxkIGVuZm9yY2VzIHRoYXQgdGhlIGZpbGUgaGFzIHRoZSBzYW1lIG5hbWUgYXMgdGhlIGdsb2JhbCB2YXJpYWJsZSB0aGF0IGlzIGV4cG9ydGVkLlxuICovXG5mdW5jdGlvbiBfX2V4cG9ydChtKSB7XG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAoIWV4cG9ydHMuaGFzT3duUHJvcGVydHkocCkpIGV4cG9ydHNbcF0gPSBtW3BdO1xufVxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuX19leHBvcnQocmVxdWlyZShcIi4vRXZlbnRMaXN0ZW5lck1hbmFnZXJcIikpO1xuX19leHBvcnQocmVxdWlyZShcIi4vUGFyYW1ldGVyXCIpKTtcbnZhciBQb2ludF8xID0gcmVxdWlyZShcIi4vUG9pbnRcIik7XG5leHBvcnRzLlBvaW50ID0gUG9pbnRfMS5Qb2ludDtcbnZhciBTaXplXzEgPSByZXF1aXJlKFwiLi9TaXplXCIpO1xuZXhwb3J0cy5TaXplID0gU2l6ZV8xLlNpemU7XG5fX2V4cG9ydChyZXF1aXJlKFwiLi9Nb2RlbHMvR2V0RGF0YU1vZGVsc1wiKSk7XG5fX2V4cG9ydChyZXF1aXJlKFwiLi9FeGNlcHRpb25zL1RhYmxlYXVFeGNlcHRpb25zXCIpKTtcbl9fZXhwb3J0KHJlcXVpcmUoXCIuL0V2ZW50cy9GaWx0ZXJDaGFuZ2VkRXZlbnRcIikpO1xuX19leHBvcnQocmVxdWlyZShcIi4vRXZlbnRzL01hcmtzU2VsZWN0ZWRFdmVudFwiKSk7XG5fX2V4cG9ydChyZXF1aXJlKFwiLi9FdmVudHMvVGFibGVhdUV2ZW50XCIpKTtcbl9fZXhwb3J0KHJlcXVpcmUoXCIuL0V2ZW50cy9UYWJsZWF1U2hlZXRFdmVudFwiKSk7XG5fX2V4cG9ydChyZXF1aXJlKFwiLi9FdmVudHMvVGFibGVhdVdvcmtzaGVldEV2ZW50XCIpKTtcbl9fZXhwb3J0KHJlcXVpcmUoXCIuL0ludGVybmFsL1NpbmdsZUV2ZW50TWFuYWdlckltcGxcIikpO1xuX19leHBvcnQocmVxdWlyZShcIi4vU2VydmljZXMvR2V0RGF0YVNlcnZpY2VcIikpO1xuX19leHBvcnQocmVxdWlyZShcIi4vU2VydmljZXMvUmVnaXN0ZXJBbGxTaGFyZWRTZXJ2aWNlc1wiKSk7XG5fX2V4cG9ydChyZXF1aXJlKFwiLi9TZXJ2aWNlcy9TZXJ2aWNlUmVnaXN0cnlcIikpO1xuX19leHBvcnQocmVxdWlyZShcIi4vRW51bU1hcHBpbmdzL0ludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5nc1wiKSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1BcGlTaGFyZWQuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL0FwaVNoYXJlZC5qc1xuICoqIG1vZHVsZSBpZCA9IDhcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuLyoqXG4gKiBDbGFzcyBkZXNpZ25lZCB0byByZWdpc3RlciBhbmQgdW5yZWdpc3RlciBoYW5kbGVycyBmcm9tIGEgdXNlci4gT25seSB0aG9zZSBldmVudHNcbiAqIHdoaWNoIGFyZSBhZGRlZCB2aWEgQWRkTmV3RXZlbnRUeXBlIHdpbGwgYmUgc3VwcG9ydGVkIGJ5IHRoaXMgaW5zdGFuY2VcbiAqL1xudmFyIEV2ZW50TGlzdGVuZXJNYW5hZ2VyID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBFdmVudExpc3RlbmVyTWFuYWdlcigpIHtcbiAgICAgICAgdGhpcy5fZXZlbnRMaXN0ZW5lck1hbmFnZXJzID0ge307XG4gICAgfVxuICAgIEV2ZW50TGlzdGVuZXJNYW5hZ2VyLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyID0gZnVuY3Rpb24gKGV2ZW50VHlwZSwgaGFuZGxlcikge1xuICAgICAgICBpZiAoIXRoaXMuX2V2ZW50TGlzdGVuZXJNYW5hZ2Vycy5oYXNPd25Qcm9wZXJ0eShldmVudFR5cGUpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbnN1cHBvcnRlZCBldmVudCB0eXBlIDogXCIgKyBldmVudFR5cGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9ldmVudExpc3RlbmVyTWFuYWdlcnNbZXZlbnRUeXBlXS5hZGRFdmVudExpc3RlbmVyKGhhbmRsZXIpO1xuICAgIH07XG4gICAgRXZlbnRMaXN0ZW5lck1hbmFnZXIucHJvdG90eXBlLnJlbW92ZUV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbiAoZXZlbnRUeXBlLCBoYW5kbGVyKSB7XG4gICAgICAgIGlmICghdGhpcy5fZXZlbnRMaXN0ZW5lck1hbmFnZXJzLmhhc093blByb3BlcnR5KGV2ZW50VHlwZSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVuc3VwcG9ydGVkIGV2ZW50IHR5cGUgOiBcIiArIGV2ZW50VHlwZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2V2ZW50TGlzdGVuZXJNYW5hZ2Vyc1tldmVudFR5cGVdLnJlbW92ZUV2ZW50TGlzdGVuZXIoaGFuZGxlcik7XG4gICAgfTtcbiAgICBFdmVudExpc3RlbmVyTWFuYWdlci5wcm90b3R5cGUuYWRkTmV3RXZlbnRUeXBlID0gZnVuY3Rpb24gKGV2ZW50TWFuYWdlcikge1xuICAgICAgICB0aGlzLl9ldmVudExpc3RlbmVyTWFuYWdlcnNbZXZlbnRNYW5hZ2VyLmV2ZW50VHlwZV0gPSBldmVudE1hbmFnZXI7XG4gICAgfTtcbiAgICByZXR1cm4gRXZlbnRMaXN0ZW5lck1hbmFnZXI7XG59KCkpO1xuZXhwb3J0cy5FdmVudExpc3RlbmVyTWFuYWdlciA9IEV2ZW50TGlzdGVuZXJNYW5hZ2VyO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RXZlbnRMaXN0ZW5lck1hbmFnZXIuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL0V2ZW50TGlzdGVuZXJNYW5hZ2VyLmpzXG4gKiogbW9kdWxlIGlkID0gOVxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19leHRlbmRzID0gKHRoaXMgJiYgdGhpcy5fX2V4dGVuZHMpIHx8IChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxuICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcbiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XG4gICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcbiAgICB9O1xufSkoKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBFdmVudExpc3RlbmVyTWFuYWdlcl8xID0gcmVxdWlyZShcIi4vRXZlbnRMaXN0ZW5lck1hbmFnZXJcIik7XG4vKipcbiAqIEltcGxlbWVudGF0aW9uIG9mIHRoZSBQYXJhbWV0ZXIgY29udHJhY3QuIENhbGxzIGRvd24gdG8gdGhlIGltcGxcbiAqIGNsYXNzIGZvciBhbG1vc3QgYWxsIG9mIHRoZSB3b3JrIGl0IGRvZXMuXG4gKi9cbnZhciBQYXJhbWV0ZXIgPSAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhQYXJhbWV0ZXIsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gUGFyYW1ldGVyKHBhcmFtZXRlckltcGwsIHNoZWV0KSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLnBhcmFtZXRlckltcGwgPSBwYXJhbWV0ZXJJbXBsO1xuICAgICAgICAvLyBJbml0aWFsaXplIG91ciBldmVudCBoYW5kbGluZyBmb3IgdGhpcyBjbGFzc1xuICAgICAgICBfdGhpcy5wYXJhbWV0ZXJJbXBsLmluaXRpYWxpemVFdmVudHMoc2hlZXQpLmZvckVhY2goZnVuY3Rpb24gKGUpIHsgcmV0dXJuIF90aGlzLmFkZE5ld0V2ZW50VHlwZShlKTsgfSk7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFBhcmFtZXRlci5wcm90b3R5cGUsIFwibmFtZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGFyYW1ldGVySW1wbC5uYW1lO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUGFyYW1ldGVyLnByb3RvdHlwZSwgXCJjdXJyZW50VmFsdWVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBhcmFtZXRlckltcGwuY3VycmVudFZhbHVlO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUGFyYW1ldGVyLnByb3RvdHlwZSwgXCJkYXRhVHlwZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGFyYW1ldGVySW1wbC5kYXRhVHlwZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFBhcmFtZXRlci5wcm90b3R5cGUsIFwiYWxsb3dhYmxlVmFsdWVzXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJJbXBsLmFsbG93YWJsZVZhbHVlcztcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgUGFyYW1ldGVyLnByb3RvdHlwZS5jaGFuZ2VWYWx1ZUFzeW5jID0gZnVuY3Rpb24gKG5ld1ZhbHVlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcmFtZXRlckltcGwuY2hhbmdlVmFsdWVBc3luYyhuZXdWYWx1ZSk7XG4gICAgfTtcbiAgICByZXR1cm4gUGFyYW1ldGVyO1xufShFdmVudExpc3RlbmVyTWFuYWdlcl8xLkV2ZW50TGlzdGVuZXJNYW5hZ2VyKSk7XG5leHBvcnRzLlBhcmFtZXRlciA9IFBhcmFtZXRlcjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVBhcmFtZXRlci5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvUGFyYW1ldGVyLmpzXG4gKiogbW9kdWxlIGlkID0gMTBcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIFBvaW50ID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBQb2ludChfeCwgX3kpIHtcbiAgICAgICAgdGhpcy5feCA9IF94O1xuICAgICAgICB0aGlzLl95ID0gX3k7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShQb2ludC5wcm90b3R5cGUsIFwieFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3g7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShQb2ludC5wcm90b3R5cGUsIFwieVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3k7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIHJldHVybiBQb2ludDtcbn0oKSk7XG5leHBvcnRzLlBvaW50ID0gUG9pbnQ7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Qb2ludC5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvUG9pbnQuanNcbiAqKiBtb2R1bGUgaWQgPSAxMVxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgU2l6ZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gU2l6ZShfaGVpZ2h0LCBfd2lkdGgpIHtcbiAgICAgICAgdGhpcy5faGVpZ2h0ID0gX2hlaWdodDtcbiAgICAgICAgdGhpcy5fd2lkdGggPSBfd2lkdGg7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTaXplLnByb3RvdHlwZSwgXCJoZWlnaHRcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9oZWlnaHQ7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTaXplLnByb3RvdHlwZSwgXCJ3aWR0aFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dpZHRoO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICByZXR1cm4gU2l6ZTtcbn0oKSk7XG5leHBvcnRzLlNpemUgPSBTaXplO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2l6ZS5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvU2l6ZS5qc1xuICoqIG1vZHVsZSBpZCA9IDEyXG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBEYXRhVGFibGUgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIERhdGFUYWJsZShfZGF0YSwgX2NvbHVtbnMsIF90b3RhbFJvd0NvdW50LCBfaXNTdW1tYXJ5RGF0YSwgX21hcmtzSW5mbykge1xuICAgICAgICB0aGlzLl9kYXRhID0gX2RhdGE7XG4gICAgICAgIHRoaXMuX2NvbHVtbnMgPSBfY29sdW1ucztcbiAgICAgICAgdGhpcy5fdG90YWxSb3dDb3VudCA9IF90b3RhbFJvd0NvdW50O1xuICAgICAgICB0aGlzLl9pc1N1bW1hcnlEYXRhID0gX2lzU3VtbWFyeURhdGE7XG4gICAgICAgIHRoaXMuX21hcmtzSW5mbyA9IF9tYXJrc0luZm87XG4gICAgICAgIC8vIFRPRE86IGdldCByaWQgb2YgdGhpcyBpbiByZWRlc2lnbi5cbiAgICAgICAgdGhpcy5fbmFtZSA9IF9pc1N1bW1hcnlEYXRhID8gJ1N1bW1hcnkgRGF0YSBUYWJsZScgOiAnVW5kZXJseWluZyBEYXRhIFRhYmxlJztcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFUYWJsZS5wcm90b3R5cGUsIFwibmFtZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX25hbWU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhVGFibGUucHJvdG90eXBlLCBcImRhdGFcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kYXRhO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRGF0YVRhYmxlLnByb3RvdHlwZSwgXCJjb2x1bW5zXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fY29sdW1ucztcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFUYWJsZS5wcm90b3R5cGUsIFwibWFya3NJbmZvXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbWFya3NJbmZvO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRGF0YVRhYmxlLnByb3RvdHlwZSwgXCJ0b3RhbFJvd0NvdW50XCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdG90YWxSb3dDb3VudDtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFUYWJsZS5wcm90b3R5cGUsIFwiaXNTdW1tYXJ5RGF0YVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2lzU3VtbWFyeURhdGE7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIHJldHVybiBEYXRhVGFibGU7XG59KCkpO1xuZXhwb3J0cy5EYXRhVGFibGUgPSBEYXRhVGFibGU7XG52YXIgTWFya0luZm8gPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIE1hcmtJbmZvKF90eXBlLCBfY29sb3IsIF90dXBsZUlkKSB7XG4gICAgICAgIHRoaXMuX3R5cGUgPSBfdHlwZTtcbiAgICAgICAgdGhpcy5fY29sb3IgPSBfY29sb3I7XG4gICAgICAgIHRoaXMuX3R1cGxlSWQgPSBfdHVwbGVJZDtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE1hcmtJbmZvLnByb3RvdHlwZSwgXCJ0eXBlXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE1hcmtJbmZvLnByb3RvdHlwZSwgXCJjb2xvclwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbG9yO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoTWFya0luZm8ucHJvdG90eXBlLCBcInR1cGxlSWRcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl90dXBsZUlkO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICByZXR1cm4gTWFya0luZm87XG59KCkpO1xuZXhwb3J0cy5NYXJrSW5mbyA9IE1hcmtJbmZvO1xudmFyIENvbHVtbiA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gQ29sdW1uKF9maWVsZE5hbWUsIF9kYXRhVHlwZSwgLy8gVE9ETzogdGhpcyBzaG91ZGwgYmUgYW4gZW51bSB0eXBlXG4gICAgICAgIF9pc1JlZmVyZW5jZWQsIF9pbmRleCkge1xuICAgICAgICB0aGlzLl9maWVsZE5hbWUgPSBfZmllbGROYW1lO1xuICAgICAgICB0aGlzLl9kYXRhVHlwZSA9IF9kYXRhVHlwZTtcbiAgICAgICAgdGhpcy5faXNSZWZlcmVuY2VkID0gX2lzUmVmZXJlbmNlZDtcbiAgICAgICAgdGhpcy5faW5kZXggPSBfaW5kZXg7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShDb2x1bW4ucHJvdG90eXBlLCBcImZpZWxkTmFtZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZpZWxkTmFtZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KENvbHVtbi5wcm90b3R5cGUsIFwiZGF0YVR5cGVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kYXRhVHlwZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KENvbHVtbi5wcm90b3R5cGUsIFwiaXNSZWZlcmVuY2VkXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5faXNSZWZlcmVuY2VkO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQ29sdW1uLnByb3RvdHlwZSwgXCJpbmRleFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2luZGV4O1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICByZXR1cm4gQ29sdW1uO1xufSgpKTtcbmV4cG9ydHMuQ29sdW1uID0gQ29sdW1uO1xudmFyIERhdGFWYWx1ZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyogdHNsaW50OmRpc2FibGU6bm8tYW55ICovXG4gICAgZnVuY3Rpb24gRGF0YVZhbHVlKF92YWx1ZSwgX2Zvcm1hdHRlZFZhbHVlKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gX3ZhbHVlO1xuICAgICAgICB0aGlzLl9mb3JtYXR0ZWRWYWx1ZSA9IF9mb3JtYXR0ZWRWYWx1ZTtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFWYWx1ZS5wcm90b3R5cGUsIFwidmFsdWVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFWYWx1ZS5wcm90b3R5cGUsIFwiZm9ybWF0dGVkVmFsdWVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9mb3JtYXR0ZWRWYWx1ZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgcmV0dXJuIERhdGFWYWx1ZTtcbn0oKSk7XG5leHBvcnRzLkRhdGFWYWx1ZSA9IERhdGFWYWx1ZTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUdldERhdGFNb2RlbHMuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL01vZGVscy9HZXREYXRhTW9kZWxzLmpzXG4gKiogbW9kdWxlIGlkID0gMTNcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIFRhYmxlYXVFeGNlcHRpb25zID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBUYWJsZWF1RXhjZXB0aW9ucygpIHtcbiAgICB9XG4gICAgcmV0dXJuIFRhYmxlYXVFeGNlcHRpb25zO1xufSgpKTtcbmV4cG9ydHMuVGFibGVhdUV4Y2VwdGlvbnMgPSBUYWJsZWF1RXhjZXB0aW9ucztcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRhYmxlYXVFeGNlcHRpb25zLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9FeGNlcHRpb25zL1RhYmxlYXVFeGNlcHRpb25zLmpzXG4gKiogbW9kdWxlIGlkID0gMTRcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkge1xuICAgIHZhciBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XG4gICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcbiAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxuICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XG4gICAgfTtcbn0pKCk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgQ29udHJhY3QgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0XCIpO1xudmFyIFRhYmxlYXVXb3Jrc2hlZXRFdmVudF8xID0gcmVxdWlyZShcIi4vVGFibGVhdVdvcmtzaGVldEV2ZW50XCIpO1xudmFyIEZpbHRlckNoYW5nZWRFdmVudCA9IChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKEZpbHRlckNoYW5nZWRFdmVudCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBGaWx0ZXJDaGFuZ2VkRXZlbnQod29ya3NoZWV0LCBfZmllbGROYW1lKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIENvbnRyYWN0LlRhYmxlYXVFdmVudFR5cGUuRmlsdGVyQ2hhbmdlZCwgd29ya3NoZWV0KSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5fZmllbGROYW1lID0gX2ZpZWxkTmFtZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRmlsdGVyQ2hhbmdlZEV2ZW50LnByb3RvdHlwZSwgXCJmaWVsZE5hbWVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9maWVsZE5hbWU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIEZpbHRlckNoYW5nZWRFdmVudC5wcm90b3R5cGUuZ2V0RmlsdGVyQXN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXQuZ2V0RmlsdGVyc0FzeW5jKCkudGhlbihmdW5jdGlvbiAoZmlsdGVycykge1xuICAgICAgICAgICAgLy8gVE9ETzogRmlsdGVyaW5nIG9mIHRoZSBmaWx0ZXJzIHNob3VsZCBldmVudHVhbGx5IGJlIGRvbmUgcGxhdGZvcm0gc2lkZS5cbiAgICAgICAgICAgIHZhciBldmVudGVkRmlsdGVyID0gZmlsdGVycy5maW5kKGZ1bmN0aW9uIChmaWx0ZXIpIHsgcmV0dXJuIChmaWx0ZXIuZmllbGROYW1lID09PSBfdGhpcy5fZmllbGROYW1lKTsgfSk7XG4gICAgICAgICAgICBpZiAoIWV2ZW50ZWRGaWx0ZXIpIHtcbiAgICAgICAgICAgICAgICAvLyBXZSBzaG91bGRuJ3QgaGl0IHRoaXMgdW5sZXNzIHRoZSBmaWx0ZXIgd2FzIHJlbW92ZWQgZnJvbSB0aGUgd29ya3NoZWV0XG4gICAgICAgICAgICAgICAgLy8gYWZ0ZXIgdGhlIGV2ZW50IHdhcyByYWlzZWQuXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcm5hbCBFcnJvcjogRmlsdGVyIG5vIGxvbmdlciBmb3VuZCBpbiB3b3Jrc2hlZXQuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZXZlbnRlZEZpbHRlcjtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICByZXR1cm4gRmlsdGVyQ2hhbmdlZEV2ZW50O1xufShUYWJsZWF1V29ya3NoZWV0RXZlbnRfMS5UYWJsZWF1V29ya3NoZWV0RXZlbnQpKTtcbmV4cG9ydHMuRmlsdGVyQ2hhbmdlZEV2ZW50ID0gRmlsdGVyQ2hhbmdlZEV2ZW50O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RmlsdGVyQ2hhbmdlZEV2ZW50LmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9FdmVudHMvRmlsdGVyQ2hhbmdlZEV2ZW50LmpzXG4gKiogbW9kdWxlIGlkID0gMTVcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuLyoqXG4gKiBUaGlzIGlzIHlvdXIgbWFpbi4gVGhpcyBpcyB3aGVyZSB5b3UgcmUtZXhwb3J0IGV2ZXJ5dGhpbmcgeW91IHdhbnQgdG8gYmUgcHVibGljbHkgYXZhaWxhYmxlLlxuICpcbiAqIFRoZSBidWlsZCBlbmZvcmNlcyB0aGF0IHRoZSBmaWxlIGhhcyB0aGUgc2FtZSBuYW1lIGFzIHRoZSBnbG9iYWwgdmFyaWFibGUgdGhhdCBpcyBleHBvcnRlZC5cbiAqL1xuZnVuY3Rpb24gX19leHBvcnQobSkge1xuICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKCFleHBvcnRzLmhhc093blByb3BlcnR5KHApKSBleHBvcnRzW3BdID0gbVtwXTtcbn1cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbl9fZXhwb3J0KHJlcXVpcmUoXCIuL0VudW1zXCIpKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUFwaUV4dGVybmFsQ29udHJhY3QuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1leHRlcm5hbC1jb250cmFjdC9saWIvQXBpRXh0ZXJuYWxDb250cmFjdC5qc1xuICoqIG1vZHVsZSBpZCA9IDE2XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbi8vIEFsbCBlbnVtIHZhbHVlcyBtYWRlIGF2YWlsYWJsZSB0byBBZGRJbiBkZXZlbG9wZXJzLlxuLy8gRW51bXMgc2hvdWxkIGJlIGtlcHQgaW4gYWxwaGFiZXRpY2FsIG9yZGVyLlxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuLyoqXG4gKiBUaGUgY29udGV4dCBpbiB3aGljaCB0aGUgQWRkSW4gaXMgY3VycmVudGx5IHJ1bm5pbmcuXG4gKi9cbnZhciBBZGRJbkNvbnRleHQ7XG4oZnVuY3Rpb24gKEFkZEluQ29udGV4dCkge1xuICAgIEFkZEluQ29udGV4dFtcIkRlc2t0b3BcIl0gPSBcImRlc2t0b3BcIjtcbiAgICBBZGRJbkNvbnRleHRbXCJTZXJ2ZXJcIl0gPSBcInNlcnZlclwiO1xufSkoQWRkSW5Db250ZXh0ID0gZXhwb3J0cy5BZGRJbkNvbnRleHQgfHwgKGV4cG9ydHMuQWRkSW5Db250ZXh0ID0ge30pKTtcbi8qKlxuICogVGhlIG1vZGUgaW4gd2hpY2ggdGhlIEFkZEluIGlzIGN1cnJlbnRseSBydW5uaW5nLlxuICovXG52YXIgQWRkSW5Nb2RlO1xuKGZ1bmN0aW9uIChBZGRJbk1vZGUpIHtcbiAgICBBZGRJbk1vZGVbXCJBdXRob3JpbmdcIl0gPSBcImF1dGhvcmluZ1wiO1xuICAgIEFkZEluTW9kZVtcIlZpZXdpbmdcIl0gPSBcInZpZXdpbmdcIjtcbn0pKEFkZEluTW9kZSA9IGV4cG9ydHMuQWRkSW5Nb2RlIHx8IChleHBvcnRzLkFkZEluTW9kZSA9IHt9KSk7XG52YXIgQW5hbHl0aWNzT2JqZWN0VHlwZTtcbihmdW5jdGlvbiAoQW5hbHl0aWNzT2JqZWN0VHlwZSkge1xuICAgIEFuYWx5dGljc09iamVjdFR5cGVbXCJDbHVzdGVyXCJdID0gXCJjbHVzdGVyXCI7XG4gICAgQW5hbHl0aWNzT2JqZWN0VHlwZVtcIkZvcmVjYXN0XCJdID0gXCJmb3JlY2FzdFwiO1xuICAgIEFuYWx5dGljc09iamVjdFR5cGVbXCJUcmVuZExpbmVcIl0gPSBcInRyZW5kLWxpbmVcIjtcbn0pKEFuYWx5dGljc09iamVjdFR5cGUgPSBleHBvcnRzLkFuYWx5dGljc09iamVjdFR5cGUgfHwgKGV4cG9ydHMuQW5hbHl0aWNzT2JqZWN0VHlwZSA9IHt9KSk7XG52YXIgQ29sdW1uVHlwZTtcbihmdW5jdGlvbiAoQ29sdW1uVHlwZSkge1xuICAgIENvbHVtblR5cGVbXCJEaXNjcmV0ZVwiXSA9IFwiZGlzY3JldGVcIjtcbiAgICBDb2x1bW5UeXBlW1wiQ29udGludW91c1wiXSA9IFwiY29udGludW91c1wiO1xufSkoQ29sdW1uVHlwZSA9IGV4cG9ydHMuQ29sdW1uVHlwZSB8fCAoZXhwb3J0cy5Db2x1bW5UeXBlID0ge30pKTtcbi8qKlxuICogV2hhdCB0aGUgb2JqZWN0IHJlcHJlc2VudHMgaW4gYSBkYXNoYm9hcmQuXG4gKi9cbnZhciBEYXNoYm9hcmRPYmplY3RUeXBlO1xuKGZ1bmN0aW9uIChEYXNoYm9hcmRPYmplY3RUeXBlKSB7XG4gICAgRGFzaGJvYXJkT2JqZWN0VHlwZVtcIkJsYW5rXCJdID0gXCJibGFua1wiO1xuICAgIERhc2hib2FyZE9iamVjdFR5cGVbXCJXb3Jrc2hlZXRcIl0gPSBcIndvcmtzaGVldFwiO1xuICAgIERhc2hib2FyZE9iamVjdFR5cGVbXCJRdWlja0ZpbHRlclwiXSA9IFwicXVpY2stZmlsdGVyXCI7XG4gICAgRGFzaGJvYXJkT2JqZWN0VHlwZVtcIlBhcmFtZXRlckNvbnRyb2xcIl0gPSBcInBhcmFtZXRlci1jb250cm9sXCI7XG4gICAgRGFzaGJvYXJkT2JqZWN0VHlwZVtcIlBhZ2VGaWx0ZXJcIl0gPSBcInBhZ2UtZmlsdGVyXCI7XG4gICAgRGFzaGJvYXJkT2JqZWN0VHlwZVtcIkxlZ2VuZFwiXSA9IFwibGVnZW5kXCI7XG4gICAgRGFzaGJvYXJkT2JqZWN0VHlwZVtcIlRpdGxlXCJdID0gXCJ0aXRsZVwiO1xuICAgIERhc2hib2FyZE9iamVjdFR5cGVbXCJUZXh0XCJdID0gXCJ0ZXh0XCI7XG4gICAgRGFzaGJvYXJkT2JqZWN0VHlwZVtcIkltYWdlXCJdID0gXCJpbWFnZVwiO1xuICAgIERhc2hib2FyZE9iamVjdFR5cGVbXCJXZWJQYWdlXCJdID0gXCJ3ZWItcGFnZVwiO1xuICAgIERhc2hib2FyZE9iamVjdFR5cGVbXCJBZGRJblwiXSA9IFwiYWRkaW5cIjtcbn0pKERhc2hib2FyZE9iamVjdFR5cGUgPSBleHBvcnRzLkRhc2hib2FyZE9iamVjdFR5cGUgfHwgKGV4cG9ydHMuRGFzaGJvYXJkT2JqZWN0VHlwZSA9IHt9KSk7XG4vKipcbiAqIFRoZSBkaWZmZXJlbnQgdHlwZXMgb2YgZGF0YSBhIHZhbHVlIGNhbiBoYXZlXG4gKi9cbnZhciBEYXRhVHlwZTtcbihmdW5jdGlvbiAoRGF0YVR5cGUpIHtcbiAgICBEYXRhVHlwZVtcIlN0cmluZ1wiXSA9IFwic3RyaW5nXCI7XG4gICAgRGF0YVR5cGVbXCJJbnRcIl0gPSBcImludFwiO1xuICAgIERhdGFUeXBlW1wiRmxvYXRcIl0gPSBcImZsb2F0XCI7XG4gICAgRGF0YVR5cGVbXCJCb29sXCJdID0gXCJib29sXCI7XG4gICAgRGF0YVR5cGVbXCJEYXRlXCJdID0gXCJkYXRlXCI7XG4gICAgRGF0YVR5cGVbXCJEYXRlVGltZVwiXSA9IFwiZGF0ZS10aW1lXCI7XG4gICAgRGF0YVR5cGVbXCJTcGF0aWFsXCJdID0gXCJzcGF0aWFsXCI7XG59KShEYXRhVHlwZSA9IGV4cG9ydHMuRGF0YVR5cGUgfHwgKGV4cG9ydHMuRGF0YVR5cGUgPSB7fSkpO1xuLyoqXG4gKiBWYWxpZCBkYXRlIHJhbmdlcyBmb3IgYSByZWxhdGl2ZSBkYXRlIGZpbHRlci5cbiAqL1xudmFyIERhdGVSYW5nZVR5cGU7XG4oZnVuY3Rpb24gKERhdGVSYW5nZVR5cGUpIHtcbiAgICBEYXRlUmFuZ2VUeXBlW1wiTGFzdFwiXSA9IFwibGFzdFwiO1xuICAgIERhdGVSYW5nZVR5cGVbXCJMYXN0TlwiXSA9IFwibGFzdC1uXCI7XG4gICAgRGF0ZVJhbmdlVHlwZVtcIk5leHRcIl0gPSBcIm5leHRcIjtcbiAgICBEYXRlUmFuZ2VUeXBlW1wiTmV4dE5cIl0gPSBcIm5leHQtblwiO1xuICAgIERhdGVSYW5nZVR5cGVbXCJDdXJyZW50XCJdID0gXCJjdXJyZW50XCI7XG4gICAgRGF0ZVJhbmdlVHlwZVtcIlRvRGF0ZVwiXSA9IFwidG8tZGF0ZVwiO1xufSkoRGF0ZVJhbmdlVHlwZSA9IGV4cG9ydHMuRGF0ZVJhbmdlVHlwZSB8fCAoZXhwb3J0cy5EYXRlUmFuZ2VUeXBlID0ge30pKTtcbi8qKlxuICogVHlwZXMgb2YgZGlhbG9nIGV2ZW50IGZvciBldmVudCBsaXN0ZW5pbmcgYmV0d2VlbiBhIHBhcmVudCBBZGRJbiBhbmQgYSBwb3B1cCBkaWFsb2cuXG4gKi9cbnZhciBEaWFsb2dFdmVudFR5cGU7XG4oZnVuY3Rpb24gKERpYWxvZ0V2ZW50VHlwZSkge1xuICAgIERpYWxvZ0V2ZW50VHlwZVtcIkRpYWxvZ01lc3NhZ2VcIl0gPSBcImRpYWxvZy1tZXNzYWdlXCI7XG4gICAgRGlhbG9nRXZlbnRUeXBlW1wiRGlhbG9nRXZlbnRcIl0gPSBcImRpYWxvZy1ldmVudFwiO1xufSkoRGlhbG9nRXZlbnRUeXBlID0gZXhwb3J0cy5EaWFsb2dFdmVudFR5cGUgfHwgKGV4cG9ydHMuRGlhbG9nRXZlbnRUeXBlID0ge30pKTtcbnZhciBFbmNvZGluZ1R5cGU7XG4oZnVuY3Rpb24gKEVuY29kaW5nVHlwZSkge1xuICAgIEVuY29kaW5nVHlwZVtcIkNvbHVtblwiXSA9IFwiY29sdW1uXCI7XG4gICAgRW5jb2RpbmdUeXBlW1wiUm93XCJdID0gXCJyb3dcIjtcbiAgICBFbmNvZGluZ1R5cGVbXCJQYWdlXCJdID0gXCJwYWdlXCI7XG4gICAgRW5jb2RpbmdUeXBlW1wiRmlsdGVyXCJdID0gXCJmaWx0ZXJcIjtcbiAgICBFbmNvZGluZ1R5cGVbXCJNYXJrc1R5cGVcIl0gPSBcIm1hcmtzLXR5cGVcIjtcbiAgICBFbmNvZGluZ1R5cGVbXCJNZWFzdXJlVmFsdWVzXCJdID0gXCJtZWFzdXJlLXZhbHVlc1wiO1xuICAgIEVuY29kaW5nVHlwZVtcIkNvbG9yXCJdID0gXCJjb2xvclwiO1xuICAgIEVuY29kaW5nVHlwZVtcIlNpemVcIl0gPSBcInNpemVcIjtcbiAgICBFbmNvZGluZ1R5cGVbXCJMYWJlbFwiXSA9IFwibGFiZWxcIjtcbiAgICBFbmNvZGluZ1R5cGVbXCJEZXRhaWxcIl0gPSBcImRldGFpbFwiO1xuICAgIEVuY29kaW5nVHlwZVtcIlRvb2x0aXBcIl0gPSBcInRvb2x0aXBcIjtcbiAgICBFbmNvZGluZ1R5cGVbXCJTaGFwZVwiXSA9IFwic2hhcGVcIjtcbiAgICBFbmNvZGluZ1R5cGVbXCJQYXRoXCJdID0gXCJwYXRoXCI7XG4gICAgRW5jb2RpbmdUeXBlW1wiQW5nbGVcIl0gPSBcImFuZ2xlXCI7XG59KShFbmNvZGluZ1R5cGUgPSBleHBvcnRzLkVuY29kaW5nVHlwZSB8fCAoZXhwb3J0cy5FbmNvZGluZ1R5cGUgPSB7fSkpO1xuLyoqXG4gKiBBbGwgZXJyb3IgY29kZXMgdXNlZCBieSB0aGUgQWRkSW4gQVBJLlxuICovXG52YXIgRXJyb3JDb2RlcztcbihmdW5jdGlvbiAoRXJyb3JDb2Rlcykge1xuICAgIC8qKlxuICAgICAqIE9ubHkgb25lIGRpYWxvZyBjYW4gYmUgb3BlbmVkIGF0IHRpbWUgd2l0aCB0aGUgVUkgbmFtZXNwYWNlIGZ1bmN0aW9uYWxpdHkuXG4gICAgICovXG4gICAgRXJyb3JDb2Rlc1tcIkRpYWxvZ0FscmVhZHlPcGVuXCJdID0gXCJkaWFsb2ctYWxyZWFkeS1vcGVuXCI7XG4gICAgLyoqXG4gICAgICogVGhlIG9wZW4gZGlhbG9nIHdhcyBjbG9zZWQgYnkgdGhlIHVzZXIuXG4gICAgICovXG4gICAgRXJyb3JDb2Rlc1tcIkRpYWxvZ0Nsb3NlZEJ5VXNlclwiXSA9IFwiZGlhbG9nLWNsb3NlZC1ieS11c2VyXCI7XG4gICAgLyoqXG4gICAgICogQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgYXR0ZW1wdGluZyB0byBwZXJmb3JtIGEgZmlsdGVyIG9wZXJhdGlvbi5cbiAgICAgKi9cbiAgICBFcnJvckNvZGVzW1wiRmlsdGVyQ2Fubm90QmVQZXJmb3JtZWRcIl0gPSBcImZpbHRlci1jYW5ub3QtYmUtcGVyZm9ybWVkXCI7XG4gICAgLyoqXG4gICAgICogQW4gZXJyb3Igb2NjdXJyZWQgd2l0aGluIHRoZSBUYWJsZWF1IEFkZEluIEFQSS4gQ29udGFjdCBUYWJsZWF1IFN1cHBvcnQuXG4gICAgICovXG4gICAgRXJyb3JDb2Rlc1tcIkludGVybmFsRXJyb3JcIl0gPSBcImludGVybmFsLWVycm9yXCI7XG4gICAgLyoqXG4gICAgICogQW4gaW52YWxpZCBhZ2dyZWdhdGlvbiB3YXMgc3BlY2lmaWVkIGZvciB0aGUgZmlsdGVyLCBzdWNoIGFzIHNldHRpbmcgYSByYW5nZSBmaWx0ZXIgdG8gXCJTVU0oU2FsZXMpXCIgaW5zdGVhZCBvZiBcIlNhbGVzXCIuXG4gICAgICovXG4gICAgRXJyb3JDb2Rlc1tcIkludmFsaWRBZ2dyZWdhdGlvbkZpZWxkTmFtZVwiXSA9IFwiaW52YWxpZC1hZ2dyZWdhdGlvbi1maWVsZC1uYW1lXCI7XG4gICAgLyoqXG4gICAgICogQSBkaWFsb2cgbXVzdCBmaXJzdCBsYXVuY2ggdG8sIGFuZCBzZW5kIG1lc3NhZ2VzIGZyb20sIHRoZSBzYW1lIGRvbWFpbiBhcyB0aGUgcGFyZW50IEFkZEluLlxuICAgICAqL1xuICAgIEVycm9yQ29kZXNbXCJJbnZhbGlkRG9tYWluRGlhbG9nXCJdID0gXCJpbnZhbGlkLWRpYWxvZy1kb21haW5cIjtcbiAgICAvKipcbiAgICAgKiBBbiBpbnZhbGlkIGRhdGUgd2FzIHNwZWNpZmllZCBpbiBhIG1ldGhvZCB0aGF0IHJlcXVpcmVkIGEgZGF0ZSBwYXJhbWV0ZXIuXG4gICAgICovXG4gICAgRXJyb3JDb2Rlc1tcIkludmFsaWREYXRlUGFyYW1ldGVyXCJdID0gXCJpbnZhbGlkLWRhdGUtcGFyYW1ldGVyXCI7XG4gICAgLyoqXG4gICAgICogQSBmaWx0ZXIgb3BlcmF0aW9uIHdhcyBhdHRlbXB0ZWQgb24gYSBmaWVsZCB0aGF0IGRvZXMgbm90IGV4aXN0IGluIHRoZSBkYXRhIHNvdXJjZS5cbiAgICAgKi9cbiAgICBFcnJvckNvZGVzW1wiSW52YWxpZEZpbHRlckZpZWxkTmFtZVwiXSA9IFwiaW52YWxpZC1maWx0ZXItZmllbGQtbmFtZVwiO1xuICAgIC8qKlxuICAgICAqIEEgZmlsdGVyIG9wZXJhdGlvbiB3YXMgYXR0ZW1wdGVkIHVzaW5nIGEgdmFsdWUgdGhhdCBpcyB0aGUgd3JvbmcgZGF0YSB0eXBlIG9yIGZvcm1hdC5cbiAgICAgKi9cbiAgICBFcnJvckNvZGVzW1wiSW52YWxpZEZpbHRlckZpZWxkVmFsdWVcIl0gPSBcImludmFsaWQtZmlsdGVyLWZpZWxkLXZhbHVlXCI7XG4gICAgLyoqXG4gICAgICogQSBwYXJhbWV0ZXIgaXMgbm90IHRoZSBjb3JyZWN0IGRhdGEgdHlwZSBvciBmb3JtYXQuIFRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIgaXMgc3BlY2lmaWVkIGluIHRoZSBFcnJvci5tZXNzYWdlIGZpZWxkLlxuICAgICAqL1xuICAgIEVycm9yQ29kZXNbXCJJbnZhbGlkUGFyYW1ldGVyXCJdID0gXCJpbnZhbGlkLXBhcmFtZXRlclwiO1xuICAgIC8qKlxuICAgICAqIEFuIGludmFsaWQgZGF0ZSB2YWx1ZSB3YXMgc3BlY2lmaWVkIGluIGEgU2hlZXQuc2VsZWN0TWFya3NBc3luYygpIGNhbGwgZm9yIGEgZGF0ZSBmaWVsZC5cbiAgICAgKi9cbiAgICBFcnJvckNvZGVzW1wiSW52YWxpZFNlbGVjdGlvbkRhdGVcIl0gPSBcImludmFsaWQtc2VsZWN0aW9uLWRhdGVcIjtcbiAgICAvKipcbiAgICAgKiBBIGZpZWxkIHdhcyBzcGVjaWZpZWQgaW4gYSBTaGVldC5zZWxlY3RNYXJrc0FzeW5jKCkgY2FsbCB0aGF0IGRvZXMgbm90IGV4aXN0IGluIHRoZSBkYXRhIHNvdXJjZS5cbiAgICAgKi9cbiAgICBFcnJvckNvZGVzW1wiSW52YWxpZFNlbGVjdGlvbkZpZWxkTmFtZVwiXSA9IFwiaW52YWxpZC1zZWxlY3Rpb24tZmllbGQtbmFtZVwiO1xuICAgIC8qKlxuICAgICAqIEFuIGludmFsaWQgdmFsdWUgd2FzIHNwZWNpZmllZCBpbiBhIFNoZWV0LnNlbGVjdE1hcmtzQXN5bmMoKSBjYWxsLlxuICAgICAqL1xuICAgIEVycm9yQ29kZXNbXCJJbnZhbGlkU2VsZWN0aW9uVmFsdWVcIl0gPSBcImludmFsaWQtc2VsZWN0aW9uLXZhbHVlXCI7XG4gICAgLyoqXG4gICAgICogQSByZXF1aXJlZCBwYXJhbWV0ZXIgd2FzIG5vdCBzcGVjaWZpZWQsIG51bGwsIG9yIGFuIGVtcHR5IHN0cmluZy9hcnJheS5cbiAgICAgKi9cbiAgICBFcnJvckNvZGVzW1wiTnVsbE9yRW1wdHlQYXJhbWV0ZXJcIl0gPSBcIm51bGwtb3ItZW1wdHktcGFyYW1ldGVyXCI7XG4gICAgLyoqXG4gICAgICogQW4gdW5rbm93biBldmVudCBuYW1lIHdhcyBzcGVjaWZpZWQgaW4gdGhlIGNhbGwgdG8gVml6LmFkZEV2ZW50TGlzdGVuZXJvciBWaXoucmVtb3ZlRXZlbnRMaXN0ZW5lci5cbiAgICAgKi9cbiAgICBFcnJvckNvZGVzW1wiVW5zdXBwb3J0ZWRFdmVudE5hbWVcIl0gPSBcInVuc3VwcG9ydGVkLWV2ZW50LW5hbWVcIjtcbn0pKEVycm9yQ29kZXMgPSBleHBvcnRzLkVycm9yQ29kZXMgfHwgKGV4cG9ydHMuRXJyb3JDb2RlcyA9IHt9KSk7XG4vKipcbiAqICBUeXBlIG9mIGFnZ3JlZ2F0aW9uIG9uIGEgZmllbGQuXG4gKi9cbnZhciBGaWVsZEFnZ3JlZ2F0aW9uVHlwZTtcbihmdW5jdGlvbiAoRmllbGRBZ2dyZWdhdGlvblR5cGUpIHtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlN1bVwiXSA9IFwic3VtXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJBdmdcIl0gPSBcImF2Z1wiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiTWluXCJdID0gXCJtaW5cIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIk1heFwiXSA9IFwibWF4XCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJTdGRldlwiXSA9IFwic3RkZXZcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlN0ZGV2cFwiXSA9IFwic3RkZXZwXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJWYXJcIl0gPSBcInZhclwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiVmFycFwiXSA9IFwidmFycFwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiQ291bnRcIl0gPSBcImNvdW50XCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJDb3VudGRcIl0gPSBcImNvdW50ZFwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiTWVkaWFuXCJdID0gXCJtZWRpYW5cIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIkF0dHJcIl0gPSBcImF0dHJcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIk5vbmVcIl0gPSBcIm5vbmVcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlllYXJcIl0gPSBcInllYXJcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlF0clwiXSA9IFwicXRyXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJNb250aFwiXSA9IFwibW9udGhcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIkRheVwiXSA9IFwiZGF5XCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJIb3VyXCJdID0gXCJob3VyXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJNaW51dGVcIl0gPSBcIm1pbnV0ZVwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiU2Vjb25kXCJdID0gXCJzZWNvbmRcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIldlZWtcIl0gPSBcIndlZWtcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIldlZWtkYXlcIl0gPSBcIndlZWtkYXlcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIk1vbnRoWWVhclwiXSA9IFwibW9udGgteWVhclwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiTWR5XCJdID0gXCJtZHlcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIkVuZFwiXSA9IFwiZW5kXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJUcnVuY1llYXJcIl0gPSBcInRydW5jLXllYXJcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlRydW5jUXRyXCJdID0gXCJ0cnVuYy1xdHJcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlRydW5jTW9udGhcIl0gPSBcInRydW5jLW1vbnRoXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJUcnVuY1dlZWtcIl0gPSBcInRydW5jLXdlZWtcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlRydW5jRGF5XCJdID0gXCJ0cnVuYy1kYXlcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlRydW5jSG91clwiXSA9IFwidHJ1bmMtaG91clwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiVHJ1bmNNaW51dGVcIl0gPSBcInRydW5jLW1pbnV0ZVwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiVHJ1bmNTZWNvbmRcIl0gPSBcInRydW5jLXNlY29uZFwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiUXVhcnQxXCJdID0gXCJxdWFydDFcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlF1YXJ0M1wiXSA9IFwicXVhcnQzXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJTa2V3bmVzc1wiXSA9IFwic2tld25lc3NcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIkt1cnRvc2lzXCJdID0gXCJrdXJ0b3Npc1wiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiSW5PdXRcIl0gPSBcImluLW91dFwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiVXNlclwiXSA9IFwidXNlclwiO1xufSkoRmllbGRBZ2dyZWdhdGlvblR5cGUgPSBleHBvcnRzLkZpZWxkQWdncmVnYXRpb25UeXBlIHx8IChleHBvcnRzLkZpZWxkQWdncmVnYXRpb25UeXBlID0ge30pKTtcbi8qKlxuICogUm9sZSBvZiBhIGZpZWxkLlxuICovXG52YXIgRmllbGRSb2xlVHlwZTtcbihmdW5jdGlvbiAoRmllbGRSb2xlVHlwZSkge1xuICAgIEZpZWxkUm9sZVR5cGVbXCJEaW1lbnNpb25cIl0gPSBcImRpbWVuc2lvblwiO1xuICAgIEZpZWxkUm9sZVR5cGVbXCJNZWFzdXJlXCJdID0gXCJtZWFzdXJlXCI7XG4gICAgRmllbGRSb2xlVHlwZVtcIlVua25vd25cIl0gPSBcInVua25vd25cIjtcbn0pKEZpZWxkUm9sZVR5cGUgPSBleHBvcnRzLkZpZWxkUm9sZVR5cGUgfHwgKGV4cG9ydHMuRmllbGRSb2xlVHlwZSA9IHt9KSk7XG4vKipcbiAqIEFuIGVudW1lcmF0aW9uIG9mIHRoZSB2YWxpZCB0eXBlcyBvZiBmaWx0ZXJzIHRoYXQgY2FuIGJlIGFwcGxpZWQuXG4gKi9cbnZhciBGaWx0ZXJUeXBlO1xuKGZ1bmN0aW9uIChGaWx0ZXJUeXBlKSB7XG4gICAgRmlsdGVyVHlwZVtcIkNhdGVnb3JpY2FsXCJdID0gXCJjYXRlZ29yaWNhbFwiO1xuICAgIEZpbHRlclR5cGVbXCJSYW5nZVwiXSA9IFwicmFuZ2VcIjtcbiAgICBGaWx0ZXJUeXBlW1wiSGllcmFyY2hpY2FsXCJdID0gXCJoaWVyYXJjaGljYWxcIjtcbiAgICBGaWx0ZXJUeXBlW1wiUmVsYXRpdmVEYXRlXCJdID0gXCJyZWxhdGl2ZS1kYXRlXCI7XG59KShGaWx0ZXJUeXBlID0gZXhwb3J0cy5GaWx0ZXJUeXBlIHx8IChleHBvcnRzLkZpbHRlclR5cGUgPSB7fSkpO1xuLyoqXG4gKiBUaGUgZGlmZmVyZW50IHVwZGF0ZSB0eXBlcyBmb3IgYXBwbHlpbmcgZmlsdGVyXG4gKi9cbnZhciBGaWx0ZXJVcGRhdGVUeXBlO1xuKGZ1bmN0aW9uIChGaWx0ZXJVcGRhdGVUeXBlKSB7XG4gICAgRmlsdGVyVXBkYXRlVHlwZVtcIkFkZFwiXSA9IFwiYWRkXCI7XG4gICAgRmlsdGVyVXBkYXRlVHlwZVtcIkFsbFwiXSA9IFwiYWxsXCI7XG4gICAgRmlsdGVyVXBkYXRlVHlwZVtcIlJlcGxhY2VcIl0gPSBcInJlcGxhY2VcIjtcbiAgICBGaWx0ZXJVcGRhdGVUeXBlW1wiUmVtb3ZlXCJdID0gXCJyZW1vdmVcIjtcbn0pKEZpbHRlclVwZGF0ZVR5cGUgPSBleHBvcnRzLkZpbHRlclVwZGF0ZVR5cGUgfHwgKGV4cG9ydHMuRmlsdGVyVXBkYXRlVHlwZSA9IHt9KSk7XG4vKipcbiAqIFRoZSBkb21haW4gdHlwZSBmb3IgYSBmaWx0ZXJcbiAqL1xudmFyIEZpbHRlckRvbWFpblR5cGU7XG4oZnVuY3Rpb24gKEZpbHRlckRvbWFpblR5cGUpIHtcbiAgICAvKipcbiAgICAgKiBUaGUgZG9tYWluIHZhbHVlcyB0aGF0IGFyZSByZWxldmFudCB0byB0aGUgc3BlY2lmaWVkIGZpbHRlclxuICAgICAqIGkuZS4gdGhlIGRvbWFpbiBpcyByZXN0cmljdGVkIGJ5IGEgcHJldmlvdXMgZmlsdGVyXG4gICAgICovXG4gICAgRmlsdGVyRG9tYWluVHlwZVtcIlJlbGV2YW50XCJdID0gXCJyZWxldmFudFwiO1xuICAgIC8qKlxuICAgICAqIGxpc3Qgb2YgYWxsIHBvc3NpYmxlIGRvbWFpbiB2YWx1ZXMgZnJvbSBkYXRhYmFzZVxuICAgICAqL1xuICAgIEZpbHRlckRvbWFpblR5cGVbXCJEYXRhYmFzZVwiXSA9IFwiZGF0YWJhc2VcIjtcbn0pKEZpbHRlckRvbWFpblR5cGUgPSBleHBvcnRzLkZpbHRlckRvbWFpblR5cGUgfHwgKGV4cG9ydHMuRmlsdGVyRG9tYWluVHlwZSA9IHt9KSk7XG4vKipcbiAqIFRoZSBvcHRpb24gZm9yIHNwZWNpZnlpbmcgd2hpY2ggdmFsdWVzIHRvIGluY2x1ZGUgZm9yIGZpbHRlcmluZ1xuICogSW5kaWNhdGVzIHdoYXQgdG8gZG8gd2l0aCBudWxsIHZhbHVlcyBmb3IgYSBnaXZlbiBmaWx0ZXIgb3IgbWFyayBzZWxlY3Rpb24gY2FsbC5cbiAqL1xudmFyIEZpbHRlck51bGxPcHRpb247XG4oZnVuY3Rpb24gKEZpbHRlck51bGxPcHRpb24pIHtcbiAgICBGaWx0ZXJOdWxsT3B0aW9uW1wiTnVsbFZhbHVlc1wiXSA9IFwibnVsbC12YWx1ZXNcIjtcbiAgICBGaWx0ZXJOdWxsT3B0aW9uW1wiTm9uTnVsbFZhbHVlc1wiXSA9IFwibm9uLW51bGwtdmFsdWVzXCI7XG4gICAgRmlsdGVyTnVsbE9wdGlvbltcIkFsbFZhbHVlc1wiXSA9IFwiYWxsLXZhbHVlc1wiO1xufSkoRmlsdGVyTnVsbE9wdGlvbiA9IGV4cG9ydHMuRmlsdGVyTnVsbE9wdGlvbiB8fCAoZXhwb3J0cy5GaWx0ZXJOdWxsT3B0aW9uID0ge30pKTtcbi8qKlxuICogVHlwZSBvZiBtYXJrIGZvciBhIGdpdmVuIG1hcmtzIGNhcmQgaW4gYSB2aXouXG4gKi9cbnZhciBNYXJrVHlwZTtcbihmdW5jdGlvbiAoTWFya1R5cGUpIHtcbiAgICBNYXJrVHlwZVtcIkJhclwiXSA9IFwiYmFyXCI7XG4gICAgTWFya1R5cGVbXCJMaW5lXCJdID0gXCJsaW5lXCI7XG4gICAgTWFya1R5cGVbXCJBcmVhXCJdID0gXCJhcmVhXCI7XG4gICAgTWFya1R5cGVbXCJTcXVhcmVcIl0gPSBcInNxdWFyZVwiO1xuICAgIE1hcmtUeXBlW1wiQ2lyY2xlXCJdID0gXCJjaXJjbGVcIjtcbiAgICBNYXJrVHlwZVtcIlNoYXBlXCJdID0gXCJzaGFwZVwiO1xuICAgIE1hcmtUeXBlW1wiVGV4dFwiXSA9IFwidGV4dFwiO1xuICAgIE1hcmtUeXBlW1wiTWFwXCJdID0gXCJtYXBcIjtcbiAgICBNYXJrVHlwZVtcIlBpZVwiXSA9IFwicGllXCI7XG4gICAgTWFya1R5cGVbXCJHYW50dEJhclwiXSA9IFwiZ2FudHQtYmFyXCI7XG4gICAgTWFya1R5cGVbXCJQb2x5Z29uXCJdID0gXCJwb2x5Z29uXCI7XG59KShNYXJrVHlwZSA9IGV4cG9ydHMuTWFya1R5cGUgfHwgKGV4cG9ydHMuTWFya1R5cGUgPSB7fSkpO1xuLyoqXG4gKiBBbiBlbnVtZXJhdGlvbiBkZXNjcmliaW5nIHRoZSBkaWZmZXJlbnQgdHlwZXMgb2YgYWxsb3dhYmxlIHZhbHVlcy5cbiAqIFRoaXMgaXMgdXNlZCBmb3IgcmVzdHJpY3RpbmcgdGhlIGRvbWFpbiBvZiBhIHBhcmFtZXRlclxuICovXG52YXIgUGFyYW1ldGVyVmFsdWVUeXBlO1xuKGZ1bmN0aW9uIChQYXJhbWV0ZXJWYWx1ZVR5cGUpIHtcbiAgICBQYXJhbWV0ZXJWYWx1ZVR5cGVbXCJBbGxcIl0gPSBcImFsbFwiO1xuICAgIFBhcmFtZXRlclZhbHVlVHlwZVtcIkxpc3RcIl0gPSBcImxpc3RcIjtcbiAgICBQYXJhbWV0ZXJWYWx1ZVR5cGVbXCJSYW5nZVwiXSA9IFwicmFuZ2VcIjtcbn0pKFBhcmFtZXRlclZhbHVlVHlwZSA9IGV4cG9ydHMuUGFyYW1ldGVyVmFsdWVUeXBlIHx8IChleHBvcnRzLlBhcmFtZXRlclZhbHVlVHlwZSA9IHt9KSk7XG4vKipcbiAqIERhdGUgcGVyaW9kIHVzZWQgaW4gZmlsdGVycyBhbmQgaW4gcGFyYW1ldGVycy5cbiAqL1xudmFyIFBlcmlvZFR5cGU7XG4oZnVuY3Rpb24gKFBlcmlvZFR5cGUpIHtcbiAgICBQZXJpb2RUeXBlW1wiWWVhcnNcIl0gPSBcInllYXJzXCI7XG4gICAgUGVyaW9kVHlwZVtcIlF1YXJ0ZXJzXCJdID0gXCJxdWFydGVyc1wiO1xuICAgIFBlcmlvZFR5cGVbXCJNb250aHNcIl0gPSBcIm1vbnRoc1wiO1xuICAgIFBlcmlvZFR5cGVbXCJXZWVrc1wiXSA9IFwid2Vla3NcIjtcbiAgICBQZXJpb2RUeXBlW1wiRGF5c1wiXSA9IFwiZGF5c1wiO1xuICAgIFBlcmlvZFR5cGVbXCJIb3Vyc1wiXSA9IFwiaG91cnNcIjtcbiAgICBQZXJpb2RUeXBlW1wiTWludXRlc1wiXSA9IFwibWludXRlc1wiO1xuICAgIFBlcmlvZFR5cGVbXCJTZWNvbmRzXCJdID0gXCJzZWNvbmRzXCI7XG59KShQZXJpb2RUeXBlID0gZXhwb3J0cy5QZXJpb2RUeXBlIHx8IChleHBvcnRzLlBlcmlvZFR5cGUgPSB7fSkpO1xudmFyIFF1aWNrVGFibGVDYWxjVHlwZTtcbihmdW5jdGlvbiAoUXVpY2tUYWJsZUNhbGNUeXBlKSB7XG4gICAgUXVpY2tUYWJsZUNhbGNUeXBlW1wiUnVubmluZ1RvdGFsXCJdID0gXCJydW5uaW5nLXRvdGFsXCI7XG4gICAgUXVpY2tUYWJsZUNhbGNUeXBlW1wiRGlmZmVyZW5jZVwiXSA9IFwiZGlmZmVyZW5jZVwiO1xuICAgIFF1aWNrVGFibGVDYWxjVHlwZVtcIlBlcmNlbnREaWZmZXJlbmNlXCJdID0gXCJwZXJjZW50LWRpZmZlcmVuY2VcIjtcbiAgICBRdWlja1RhYmxlQ2FsY1R5cGVbXCJQZXJjZW50T2ZUb3RhbFwiXSA9IFwicGVyY2VudC1vZi10b3RhbFwiO1xuICAgIFF1aWNrVGFibGVDYWxjVHlwZVtcIlJhbmtcIl0gPSBcInJhbmtcIjtcbiAgICBRdWlja1RhYmxlQ2FsY1R5cGVbXCJQZXJjZW50aWxlXCJdID0gXCJwZXJjZW50aWxlXCI7XG4gICAgUXVpY2tUYWJsZUNhbGNUeXBlW1wiTW92aW5nQXZlcmFnZVwiXSA9IFwibW92aW5nLWF2ZXJhZ2VcIjtcbiAgICBRdWlja1RhYmxlQ2FsY1R5cGVbXCJZVERUb3RhbFwiXSA9IFwieXRkLXRvdGFsXCI7XG4gICAgUXVpY2tUYWJsZUNhbGNUeXBlW1wiQ29tcG91bmRHcm93dGhSYXRlXCJdID0gXCJjb21wb3VuZC1ncm93dGgtcmF0ZVwiO1xuICAgIFF1aWNrVGFibGVDYWxjVHlwZVtcIlllYXJPdmVyWWVhckdyb3d0aFwiXSA9IFwieWVhci1vdmVyLXllYXItZ3Jvd3RoXCI7XG4gICAgUXVpY2tUYWJsZUNhbGNUeXBlW1wiWVRER3Jvd3RoXCJdID0gXCJ5dGQtZ3Jvd3RoXCI7XG4gICAgUXVpY2tUYWJsZUNhbGNUeXBlW1wiVW5kZWZpbmVkXCJdID0gXCJ1bmRlZmluZWRcIjtcbn0pKFF1aWNrVGFibGVDYWxjVHlwZSA9IGV4cG9ydHMuUXVpY2tUYWJsZUNhbGNUeXBlIHx8IChleHBvcnRzLlF1aWNrVGFibGVDYWxjVHlwZSA9IHt9KSk7XG4vKipcbiAqIEVudW0gZm9yIHNwZWNpZnlpbmcgdGhlIHNlbGVjdGlvbiB0eXBlIGZvciBzZWxlY3QgbWFya3MgYXBpLlxuICovXG52YXIgU2VsZWN0aW9uVXBkYXRlVHlwZTtcbihmdW5jdGlvbiAoU2VsZWN0aW9uVXBkYXRlVHlwZSkge1xuICAgIFNlbGVjdGlvblVwZGF0ZVR5cGVbXCJSZXBsYWNlXCJdID0gXCJzZWxlY3QtcmVwbGFjZVwiO1xuICAgIFNlbGVjdGlvblVwZGF0ZVR5cGVbXCJBZGRcIl0gPSBcInNlbGVjdC1hZGRcIjtcbiAgICBTZWxlY3Rpb25VcGRhdGVUeXBlW1wiUmVtb3ZlXCJdID0gXCJzZWxlY3QtcmVtb3ZlXCI7XG59KShTZWxlY3Rpb25VcGRhdGVUeXBlID0gZXhwb3J0cy5TZWxlY3Rpb25VcGRhdGVUeXBlIHx8IChleHBvcnRzLlNlbGVjdGlvblVwZGF0ZVR5cGUgPSB7fSkpO1xuLyoqXG4gKiBUaGUgdHlwZSBvZiBzaGVldCBhIFNoZWV0IG9iamVjdCByZXByZXNlbnRzXG4gKi9cbnZhciBTaGVldFR5cGU7XG4oZnVuY3Rpb24gKFNoZWV0VHlwZSkge1xuICAgIFNoZWV0VHlwZVtcIkRhc2hib2FyZFwiXSA9IFwiZGFzaGJvYXJkXCI7XG4gICAgU2hlZXRUeXBlW1wiU3RvcnlcIl0gPSBcInN0b3J5XCI7XG4gICAgU2hlZXRUeXBlW1wiV29ya3NoZWV0XCJdID0gXCJ3b3Jrc2hlZXRcIjtcbn0pKFNoZWV0VHlwZSA9IGV4cG9ydHMuU2hlZXRUeXBlIHx8IChleHBvcnRzLlNoZWV0VHlwZSA9IHt9KSk7XG52YXIgU29ydERpcmVjdGlvbjtcbihmdW5jdGlvbiAoU29ydERpcmVjdGlvbikge1xuICAgIFNvcnREaXJlY3Rpb25bXCJJbmNyZWFzaW5nXCJdID0gXCJpbmNyZWFzaW5nXCI7XG4gICAgU29ydERpcmVjdGlvbltcIkRlY3JlYXNpbmdcIl0gPSBcImRlY3JlYXNpbmdcIjtcbn0pKFNvcnREaXJlY3Rpb24gPSBleHBvcnRzLlNvcnREaXJlY3Rpb24gfHwgKGV4cG9ydHMuU29ydERpcmVjdGlvbiA9IHt9KSk7XG4vKipcbiAqIFJlcHJlc2VudHMgYSBjZXJ0YWluIHR5cGUgb2YgZXZlbnQgd2hpY2ggY2FuIGJlIGxpc3RlbmVkIGZvclxuICovXG52YXIgVGFibGVhdUV2ZW50VHlwZTtcbihmdW5jdGlvbiAoVGFibGVhdUV2ZW50VHlwZSkge1xuICAgIC8qKiBSYWlzZWQgd2hlbiBhbnkgZmlsdGVyIGhhcyBjaGFuZ2VkIHN0YXRlLiovXG4gICAgVGFibGVhdUV2ZW50VHlwZVtcIkZpbHRlckNoYW5nZWRcIl0gPSBcImZpbHRlci1jaGFuZ2VkXCI7XG4gICAgLyoqIFRoZSBzZWxlY3RlZCBtYXJrcyBvbiBhIHZpc3VhbGl6YXRpb24gaGFzIGNoYW5nZWQgKi9cbiAgICBUYWJsZWF1RXZlbnRUeXBlW1wiTWFya1NlbGVjdGlvbkNoYW5nZWRcIl0gPSBcIm1hcmstc2VsZWN0aW9uLWNoYW5nZWRcIjtcbiAgICAvKiogQSBwYXJhbWV0ZXIgaGFzIGhhZCBpdHMgdmFsdWUgbW9kaWZpZWQgKi9cbiAgICBUYWJsZWF1RXZlbnRUeXBlW1wiUGFyYW1ldGVyQ2hhbmdlZFwiXSA9IFwicGFyYW1ldGVyLWNoYW5nZWRcIjtcbn0pKFRhYmxlYXVFdmVudFR5cGUgPSBleHBvcnRzLlRhYmxlYXVFdmVudFR5cGUgfHwgKGV4cG9ydHMuVGFibGVhdUV2ZW50VHlwZSA9IHt9KSk7XG52YXIgVHJlbmRMaW5lTW9kZWxUeXBlO1xuKGZ1bmN0aW9uIChUcmVuZExpbmVNb2RlbFR5cGUpIHtcbiAgICBUcmVuZExpbmVNb2RlbFR5cGVbXCJMaW5lYXJcIl0gPSBcImxpbmVhclwiO1xuICAgIFRyZW5kTGluZU1vZGVsVHlwZVtcIkxvZ2FyaXRobWljXCJdID0gXCJsb2dhcml0aG1pY1wiO1xuICAgIFRyZW5kTGluZU1vZGVsVHlwZVtcIkV4cG9uZW50aWFsXCJdID0gXCJleHBvbmVudGlhbFwiO1xuICAgIFRyZW5kTGluZU1vZGVsVHlwZVtcIlBvbHlub21pYWxcIl0gPSBcInBvbHlub21pYWxcIjtcbn0pKFRyZW5kTGluZU1vZGVsVHlwZSA9IGV4cG9ydHMuVHJlbmRMaW5lTW9kZWxUeXBlIHx8IChleHBvcnRzLlRyZW5kTGluZU1vZGVsVHlwZSA9IHt9KSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1FbnVtcy5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWV4dGVybmFsLWNvbnRyYWN0L2xpYi9FbnVtcy5qc1xuICoqIG1vZHVsZSBpZCA9IDE3XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2V4dGVuZHMgPSAodGhpcyAmJiB0aGlzLl9fZXh0ZW5kcykgfHwgKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxuICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XG4gICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKGIuaGFzT3duUHJvcGVydHkocCkpIGRbcF0gPSBiW3BdOyB9O1xuICAgIHJldHVybiBmdW5jdGlvbiAoZCwgYikge1xuICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICAgICAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cbiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpO1xuICAgIH07XG59KSgpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIFRhYmxlYXVTaGVldEV2ZW50XzEgPSByZXF1aXJlKFwiLi9UYWJsZWF1U2hlZXRFdmVudFwiKTtcbnZhciBUYWJsZWF1V29ya3NoZWV0RXZlbnQgPSAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhUYWJsZWF1V29ya3NoZWV0RXZlbnQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gVGFibGVhdVdvcmtzaGVldEV2ZW50KHR5cGUsIF93b3Jrc2hlZXQpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgdHlwZSwgX3dvcmtzaGVldCkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuX3dvcmtzaGVldCA9IF93b3Jrc2hlZXQ7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFRhYmxlYXVXb3Jrc2hlZXRFdmVudC5wcm90b3R5cGUsIFwid29ya3NoZWV0XCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fd29ya3NoZWV0O1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICByZXR1cm4gVGFibGVhdVdvcmtzaGVldEV2ZW50O1xufShUYWJsZWF1U2hlZXRFdmVudF8xLlRhYmxlYXVTaGVldEV2ZW50KSk7XG5leHBvcnRzLlRhYmxlYXVXb3Jrc2hlZXRFdmVudCA9IFRhYmxlYXVXb3Jrc2hlZXRFdmVudDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRhYmxlYXVXb3Jrc2hlZXRFdmVudC5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvRXZlbnRzL1RhYmxlYXVXb3Jrc2hlZXRFdmVudC5qc1xuICoqIG1vZHVsZSBpZCA9IDE4XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2V4dGVuZHMgPSAodGhpcyAmJiB0aGlzLl9fZXh0ZW5kcykgfHwgKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxuICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XG4gICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKGIuaGFzT3duUHJvcGVydHkocCkpIGRbcF0gPSBiW3BdOyB9O1xuICAgIHJldHVybiBmdW5jdGlvbiAoZCwgYikge1xuICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICAgICAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cbiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpO1xuICAgIH07XG59KSgpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIFRhYmxlYXVFdmVudF8xID0gcmVxdWlyZShcIi4vVGFibGVhdUV2ZW50XCIpO1xudmFyIFRhYmxlYXVTaGVldEV2ZW50ID0gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoVGFibGVhdVNoZWV0RXZlbnQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gVGFibGVhdVNoZWV0RXZlbnQodHlwZSwgc2hlZXQpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgdHlwZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuX3NoZWV0ID0gc2hlZXQ7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFRhYmxlYXVTaGVldEV2ZW50LnByb3RvdHlwZSwgXCJzaGVldFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3NoZWV0O1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICByZXR1cm4gVGFibGVhdVNoZWV0RXZlbnQ7XG59KFRhYmxlYXVFdmVudF8xLlRhYmxlYXVFdmVudCkpO1xuZXhwb3J0cy5UYWJsZWF1U2hlZXRFdmVudCA9IFRhYmxlYXVTaGVldEV2ZW50O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VGFibGVhdVNoZWV0RXZlbnQuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL0V2ZW50cy9UYWJsZWF1U2hlZXRFdmVudC5qc1xuICoqIG1vZHVsZSBpZCA9IDE5XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBUYWJsZWF1RXZlbnQgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFRhYmxlYXVFdmVudCh0eXBlKSB7XG4gICAgICAgIHRoaXMuX3R5cGUgPSB0eXBlO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoVGFibGVhdUV2ZW50LnByb3RvdHlwZSwgXCJ0eXBlXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgcmV0dXJuIFRhYmxlYXVFdmVudDtcbn0oKSk7XG5leHBvcnRzLlRhYmxlYXVFdmVudCA9IFRhYmxlYXVFdmVudDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRhYmxlYXVFdmVudC5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvRXZlbnRzL1RhYmxlYXVFdmVudC5qc1xuICoqIG1vZHVsZSBpZCA9IDIwXG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2V4dGVuZHMgPSAodGhpcyAmJiB0aGlzLl9fZXh0ZW5kcykgfHwgKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxuICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XG4gICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKGIuaGFzT3duUHJvcGVydHkocCkpIGRbcF0gPSBiW3BdOyB9O1xuICAgIHJldHVybiBmdW5jdGlvbiAoZCwgYikge1xuICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICAgICAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cbiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpO1xuICAgIH07XG59KSgpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIENvbnRyYWN0ID0gcmVxdWlyZShcIkB0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdFwiKTtcbnZhciBUYWJsZWF1V29ya3NoZWV0RXZlbnRfMSA9IHJlcXVpcmUoXCIuL1RhYmxlYXVXb3Jrc2hlZXRFdmVudFwiKTtcbnZhciBNYXJrc1NlbGVjdGVkRXZlbnQgPSAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhNYXJrc1NlbGVjdGVkRXZlbnQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gTWFya3NTZWxlY3RlZEV2ZW50KHdvcmtzaGVldCkge1xuICAgICAgICByZXR1cm4gX3N1cGVyLmNhbGwodGhpcywgQ29udHJhY3QuVGFibGVhdUV2ZW50VHlwZS5NYXJrU2VsZWN0aW9uQ2hhbmdlZCwgd29ya3NoZWV0KSB8fCB0aGlzO1xuICAgIH1cbiAgICBNYXJrc1NlbGVjdGVkRXZlbnQucHJvdG90eXBlLmdldE1hcmtzQXN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLndvcmtzaGVldC5nZXRTZWxlY3RlZE1hcmtzQXN5bmMoKTtcbiAgICB9O1xuICAgIHJldHVybiBNYXJrc1NlbGVjdGVkRXZlbnQ7XG59KFRhYmxlYXVXb3Jrc2hlZXRFdmVudF8xLlRhYmxlYXVXb3Jrc2hlZXRFdmVudCkpO1xuZXhwb3J0cy5NYXJrc1NlbGVjdGVkRXZlbnQgPSBNYXJrc1NlbGVjdGVkRXZlbnQ7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1NYXJrc1NlbGVjdGVkRXZlbnQuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL0V2ZW50cy9NYXJrc1NlbGVjdGVkRXZlbnQuanNcbiAqKiBtb2R1bGUgaWQgPSAyMVxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4vKipcbiAqIFRoaXMgY2xhc3MgaW1wbGVtZW50cyB0aGUgU2luZ2xlRXZlbnRNYW5hZ2VyIGludGVyZmFjZSBmb3IgYSBzaW5nbGUgdHlwZSBvZiBUYWJsZWF1IGV2ZW50XG4gKlxuICogQHRlbXBsYXRlIFRFdmVudFR5cGUgVGhlIFRhYmxlYXUgZXZlbnQgdHlwZSB0aGlzIGNsYXNzIHNwZWNpYWxpemVzXG4gKi9cbnZhciBTaW5nbGVFdmVudE1hbmFnZXJJbXBsID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBTaW5nbGVFdmVudE1hbmFnZXJJbXBsKGV2ZW50VHlwZSkge1xuICAgICAgICB0aGlzLl9ldmVudFR5cGUgPSBldmVudFR5cGU7XG4gICAgICAgIHRoaXMuX2hhbmRsZXJzID0gW107XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTaW5nbGVFdmVudE1hbmFnZXJJbXBsLnByb3RvdHlwZSwgXCJldmVudFR5cGVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9ldmVudFR5cGU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIFNpbmdsZUV2ZW50TWFuYWdlckltcGwucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbiAoaGFuZGxlcikge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB0aGlzLl9oYW5kbGVycy5wdXNoKGhhbmRsZXIpO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkgeyByZXR1cm4gX3RoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihoYW5kbGVyKTsgfTtcbiAgICB9O1xuICAgIFNpbmdsZUV2ZW50TWFuYWdlckltcGwucHJvdG90eXBlLnJlbW92ZUV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbiAoaGFuZGxlcikge1xuICAgICAgICB2YXIgYmVmb3JlQ291bnQgPSB0aGlzLl9oYW5kbGVycy5sZW5ndGg7XG4gICAgICAgIHRoaXMuX2hhbmRsZXJzID0gdGhpcy5faGFuZGxlcnMuZmlsdGVyKGZ1bmN0aW9uIChoKSB7IHJldHVybiBoICE9PSBoYW5kbGVyOyB9KTtcbiAgICAgICAgcmV0dXJuIGJlZm9yZUNvdW50ID4gdGhpcy5faGFuZGxlcnMubGVuZ3RoO1xuICAgIH07XG4gICAgU2luZ2xlRXZlbnRNYW5hZ2VySW1wbC5wcm90b3R5cGUudHJpZ2dlckV2ZW50ID0gZnVuY3Rpb24gKGV2ZW50R2VuZXJhdG9yKSB7XG4gICAgICAgIGZvciAodmFyIF9pID0gMCwgX2EgPSB0aGlzLl9oYW5kbGVyczsgX2kgPCBfYS5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgICAgIHZhciBoYW5kbGVyID0gX2FbX2ldO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB2YXIgZXZlbnRNb2RlbCA9IGV2ZW50R2VuZXJhdG9yKCk7XG4gICAgICAgICAgICAgICAgaGFuZGxlcihldmVudE1vZGVsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgLy8gU2luY2UgdGhpcyBoYW5kbGVyIGNvdWxkIGJlIG91dHNpZGUgb3VyIGNvbnRyb2wsIGp1c3QgY2F0Y2ggYW55dGhpbmcgaXQgdGhyb3dzIGFuZCBjb250aW51ZSBvblxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4gU2luZ2xlRXZlbnRNYW5hZ2VySW1wbDtcbn0oKSk7XG5leHBvcnRzLlNpbmdsZUV2ZW50TWFuYWdlckltcGwgPSBTaW5nbGVFdmVudE1hbmFnZXJJbXBsO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2luZ2xlRXZlbnRNYW5hZ2VySW1wbC5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvSW50ZXJuYWwvU2luZ2xlRXZlbnRNYW5hZ2VySW1wbC5qc1xuICoqIG1vZHVsZSBpZCA9IDIyXG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8qKlxuICogRGVmaW5lcyB3aGljaCB0eXBlIG9mIGdldERhdGEgY2FsbCB0byBtYWtlLlxuICovXG52YXIgR2V0RGF0YVR5cGU7XG4oZnVuY3Rpb24gKEdldERhdGFUeXBlKSB7XG4gICAgR2V0RGF0YVR5cGVbXCJTdW1tYXJ5XCJdID0gXCJzdW1tYXJ5XCI7XG4gICAgR2V0RGF0YVR5cGVbXCJVbmRlcmx5aW5nXCJdID0gXCJ1bmRlcmx5aW5nXCI7XG59KShHZXREYXRhVHlwZSA9IGV4cG9ydHMuR2V0RGF0YVR5cGUgfHwgKGV4cG9ydHMuR2V0RGF0YVR5cGUgPSB7fSkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9R2V0RGF0YVNlcnZpY2UuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL1NlcnZpY2VzL0dldERhdGFTZXJ2aWNlLmpzXG4gKiogbW9kdWxlIGlkID0gMjNcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIERhdGFTb3VyY2VTZXJ2aWNlSW1wbF8xID0gcmVxdWlyZShcIi4vaW1wbC9EYXRhU291cmNlU2VydmljZUltcGxcIik7XG52YXIgRmlsdGVyU2VydmljZUltcGxfMSA9IHJlcXVpcmUoXCIuL2ltcGwvRmlsdGVyU2VydmljZUltcGxcIik7XG52YXIgR2V0RGF0YVNlcnZpY2VJbXBsXzEgPSByZXF1aXJlKFwiLi9pbXBsL0dldERhdGFTZXJ2aWNlSW1wbFwiKTtcbnZhciBOb3RpZmljYXRpb25TZXJ2aWNlSW1wbF8xID0gcmVxdWlyZShcIi4vaW1wbC9Ob3RpZmljYXRpb25TZXJ2aWNlSW1wbFwiKTtcbnZhciBQYXJhbWV0ZXJzU2VydmljZUltcGxfMSA9IHJlcXVpcmUoXCIuL2ltcGwvUGFyYW1ldGVyc1NlcnZpY2VJbXBsXCIpO1xudmFyIFNlbGVjdGlvblNlcnZpY2VJbXBsXzEgPSByZXF1aXJlKFwiLi9pbXBsL1NlbGVjdGlvblNlcnZpY2VJbXBsXCIpO1xudmFyIFNlcnZpY2VSZWdpc3RyeV8xID0gcmVxdWlyZShcIi4vU2VydmljZVJlZ2lzdHJ5XCIpO1xuZnVuY3Rpb24gcmVnaXN0ZXJBbGxTaGFyZWRTZXJ2aWNlcyhkaXNwYXRjaGVyKSB7XG4gICAgU2VydmljZVJlZ2lzdHJ5XzEuQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLnJlZ2lzdGVyU2VydmljZShuZXcgRGF0YVNvdXJjZVNlcnZpY2VJbXBsXzEuRGF0YVNvdXJjZVNlcnZpY2VJbXBsKGRpc3BhdGNoZXIpKTtcbiAgICBTZXJ2aWNlUmVnaXN0cnlfMS5BcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UucmVnaXN0ZXJTZXJ2aWNlKG5ldyBHZXREYXRhU2VydmljZUltcGxfMS5HZXREYXRhU2VydmljZUltcGwoZGlzcGF0Y2hlcikpO1xuICAgIFNlcnZpY2VSZWdpc3RyeV8xLkFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5yZWdpc3RlclNlcnZpY2UobmV3IEZpbHRlclNlcnZpY2VJbXBsXzEuRmlsdGVyU2VydmljZUltcGwoZGlzcGF0Y2hlcikpO1xuICAgIFNlcnZpY2VSZWdpc3RyeV8xLkFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5yZWdpc3RlclNlcnZpY2UobmV3IE5vdGlmaWNhdGlvblNlcnZpY2VJbXBsXzEuTm90aWZpY2F0aW9uU2VydmljZUltcGwoZGlzcGF0Y2hlcikpO1xuICAgIFNlcnZpY2VSZWdpc3RyeV8xLkFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5yZWdpc3RlclNlcnZpY2UobmV3IFBhcmFtZXRlcnNTZXJ2aWNlSW1wbF8xLlBhcmFtZXRlcnNTZXJ2aWNlSW1wbChkaXNwYXRjaGVyKSk7XG4gICAgU2VydmljZVJlZ2lzdHJ5XzEuQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLnJlZ2lzdGVyU2VydmljZShuZXcgU2VsZWN0aW9uU2VydmljZUltcGxfMS5TZWxlY3Rpb25TZXJ2aWNlSW1wbChkaXNwYXRjaGVyKSk7XG59XG5leHBvcnRzLnJlZ2lzdGVyQWxsU2hhcmVkU2VydmljZXMgPSByZWdpc3RlckFsbFNoYXJlZFNlcnZpY2VzO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9UmVnaXN0ZXJBbGxTaGFyZWRTZXJ2aWNlcy5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvU2VydmljZXMvUmVnaXN0ZXJBbGxTaGFyZWRTZXJ2aWNlcy5qc1xuICoqIG1vZHVsZSBpZCA9IDI0XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBhcGlfaW50ZXJuYWxfY29udHJhY3RfMSA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3RcIik7XG52YXIgRGF0YVNvdXJjZVNlcnZpY2VJbXBsID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBEYXRhU291cmNlU2VydmljZUltcGwoX2Rpc3BhdGNoZXIpIHtcbiAgICAgICAgdGhpcy5fZGlzcGF0Y2hlciA9IF9kaXNwYXRjaGVyO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRGF0YVNvdXJjZVNlcnZpY2VJbXBsLnByb3RvdHlwZSwgXCJzZXJ2aWNlTmFtZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIFwiZGF0YS1zb3VyY2Utc2VydmljZVwiIC8qIERhdGFTb3VyY2VTZXJ2aWNlICovO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBEYXRhU291cmNlU2VydmljZUltcGwucHJvdG90eXBlLnJlZnJlc2hBc3luYyA9IGZ1bmN0aW9uIChkYXRhU291cmNlSWQpIHtcbiAgICAgICAgdmFyIHBhcmFtZXRlcnMgPSAoX2EgPSB7fSwgX2FbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuRGF0YVNvdXJjZUlkXSA9IGRhdGFTb3VyY2VJZCwgX2EpO1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGF0Y2hlci5leGVjdXRlKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlZlcmJJZC5SZWZyZXNoRGF0YVNvdXJjZSwgcGFyYW1ldGVycykudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBfYTtcbiAgICB9O1xuICAgIERhdGFTb3VyY2VTZXJ2aWNlSW1wbC5wcm90b3R5cGUuZ2V0RGF0YVNvdXJjZXNBc3luYyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc3BhdGNoZXIuZXhlY3V0ZShhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5WZXJiSWQuR2V0RGF0YVNvdXJjZXMsIHt9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgdmFyIGRhdGFTY2hlbWEgPSByZXNwb25zZS5yZXN1bHQ7XG4gICAgICAgICAgICByZXR1cm4gZGF0YVNjaGVtYTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICByZXR1cm4gRGF0YVNvdXJjZVNlcnZpY2VJbXBsO1xufSgpKTtcbmV4cG9ydHMuRGF0YVNvdXJjZVNlcnZpY2VJbXBsID0gRGF0YVNvdXJjZVNlcnZpY2VJbXBsO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RGF0YVNvdXJjZVNlcnZpY2VJbXBsLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9TZXJ2aWNlcy9pbXBsL0RhdGFTb3VyY2VTZXJ2aWNlSW1wbC5qc1xuICoqIG1vZHVsZSBpZCA9IDI1XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBDb250cmFjdCA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3RcIik7XG52YXIgYXBpX2ludGVybmFsX2NvbnRyYWN0XzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0XCIpO1xudmFyIGFwaV91dGlsc18xID0gcmVxdWlyZShcIkB0YWJsZWF1L2FwaS11dGlsc1wiKTtcbnZhciBFeHRlcm5hbFRvSW50ZXJuYWxFbnVtTWFwcGluZ3NfMSA9IHJlcXVpcmUoXCIuLi8uLi9FbnVtTWFwcGluZ3MvRXh0ZXJuYWxUb0ludGVybmFsRW51bU1hcHBpbmdzXCIpO1xudmFyIEludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5nc18xID0gcmVxdWlyZShcIi4uLy4uL0VudW1NYXBwaW5ncy9JbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3NcIik7XG52YXIgRmlsdGVyTW9kZWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vTW9kZWxzL0ZpbHRlck1vZGVsc1wiKTtcbnZhciBHZXREYXRhTW9kZWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vTW9kZWxzL0dldERhdGFNb2RlbHNcIik7XG52YXIgRmlsdGVyU2VydmljZUltcGwgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEZpbHRlclNlcnZpY2VJbXBsKGRpc3BhdGNoZXIpIHtcbiAgICAgICAgdGhpcy5fZGlzcGF0Y2hlciA9IGRpc3BhdGNoZXI7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGaWx0ZXJTZXJ2aWNlSW1wbC5wcm90b3R5cGUsIFwic2VydmljZU5hbWVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBcImZpbHRlci1zZXJ2aWNlXCIgLyogRmlsdGVyICovO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBGaWx0ZXJTZXJ2aWNlSW1wbC5wcm90b3R5cGUuYXBwbHlGaWx0ZXJBc3luYyA9IGZ1bmN0aW9uICh2aXN1YWxJZCwgZmllbGROYW1lLCB2YWx1ZXMsIHVwZGF0ZVR5cGUsIGZpbHRlck9wdGlvbnMpIHtcbiAgICAgICAgaWYgKCFhcGlfdXRpbHNfMS5QYXJhbS5pc1ZhbGlkRW51bVZhbHVlKHVwZGF0ZVR5cGUsIENvbnRyYWN0LkZpbHRlclVwZGF0ZVR5cGUpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdmFsdWUgZm9yIHBhcmFtZXRlciBGaWx0ZXJVcGRhdGVUeXBlJyk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHZlcmIgPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5WZXJiSWQuQXBwbHlDYXRlZ29yaWNhbEZpbHRlcjtcbiAgICAgICAgdmFyIHBhcmFtZXRlcnMgPSB7fTtcbiAgICAgICAgcGFyYW1ldGVyc1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5WaXN1YWxJZF0gPSB2aXN1YWxJZDtcbiAgICAgICAgcGFyYW1ldGVyc1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5GaWVsZE5hbWVdID0gZmllbGROYW1lO1xuICAgICAgICBwYXJhbWV0ZXJzW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLkZpbHRlclZhbHVlc10gPSB2YWx1ZXM7XG4gICAgICAgIHBhcmFtZXRlcnNbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuRmlsdGVyVXBkYXRlVHlwZV0gPSB1cGRhdGVUeXBlO1xuICAgICAgICBwYXJhbWV0ZXJzW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLklzRXhjbHVkZU1vZGVdID1cbiAgICAgICAgICAgIChmaWx0ZXJPcHRpb25zID09PSB1bmRlZmluZWQgfHwgZmlsdGVyT3B0aW9ucy5pc0V4Y2x1ZGVNb2RlID09PSB1bmRlZmluZWQpID8gZmFsc2UgOiBmaWx0ZXJPcHRpb25zLmlzRXhjbHVkZU1vZGU7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUodmVyYiwgcGFyYW1ldGVycykudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHZhciBlcnJvciA9IHJlc3BvbnNlLnJlc3VsdDtcbiAgICAgICAgICAgIGlmICghKGVycm9yLmVycm9yQ29kZSA9PT0gbnVsbCB8fCBlcnJvci5lcnJvckNvZGUgPT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiBjb21lIGJhY2sgYW5kIGltcGxlbWVudCBlcnJvciBoYW5kbGluZyBsb2dpY1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRXJyb3IgQXBwbHlpbmcgRmlsdGVyOiAnICsgZXJyb3IuZXJyb3JDb2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmaWVsZE5hbWU7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgRmlsdGVyU2VydmljZUltcGwucHJvdG90eXBlLmFwcGx5UmFuZ2VGaWx0ZXJBc3luYyA9IGZ1bmN0aW9uICh2aXN1YWxJZCwgZmllbGROYW1lLCBmaWx0ZXJPcHRpb25zKSB7XG4gICAgICAgIGlmICghZmlsdGVyT3B0aW9ucykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIFBhcmFtZXRlcjogUmFuZ2VGaWx0ZXJPcHRpb25zJyk7XG4gICAgICAgIH1cbiAgICAgICAgYXBpX3V0aWxzXzEuUGFyYW0udmVyaWZ5UmFuZ2VQYXJhbVR5cGUoZmlsdGVyT3B0aW9ucy5taW4sIGZpbHRlck9wdGlvbnMubWF4KTtcbiAgICAgICAgdmFyIHZlcmIgPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5WZXJiSWQuQXBwbHlSYW5nZUZpbHRlcjtcbiAgICAgICAgdmFyIHBhcmFtZXRlcnMgPSB7fTtcbiAgICAgICAgaWYgKGZpbHRlck9wdGlvbnMubWluKSB7XG4gICAgICAgICAgICB2YXIgbWluID0gdm9pZCAwO1xuICAgICAgICAgICAgaWYgKGZpbHRlck9wdGlvbnMubWluIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgICAgICAgIG1pbiA9IGFwaV91dGlsc18xLlBhcmFtLnNlcmlhbGl6ZURhdGVGb3JQbGF0Zm9ybShmaWx0ZXJPcHRpb25zLm1pbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBtaW4gPSBmaWx0ZXJPcHRpb25zLm1pbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhcmFtZXRlcnNbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuRmlsdGVyUmFuZ2VNaW5dID0gbWluO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmaWx0ZXJPcHRpb25zLm1heCkge1xuICAgICAgICAgICAgdmFyIG1heCA9IHZvaWQgMDtcbiAgICAgICAgICAgIGlmIChmaWx0ZXJPcHRpb25zLm1heCBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICAgICAgICBtYXggPSBhcGlfdXRpbHNfMS5QYXJhbS5zZXJpYWxpemVEYXRlRm9yUGxhdGZvcm0oZmlsdGVyT3B0aW9ucy5tYXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgbWF4ID0gZmlsdGVyT3B0aW9ucy5tYXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYXJhbWV0ZXJzW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLkZpbHRlclJhbmdlTWF4XSA9IG1heDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZmlsdGVyT3B0aW9ucy5udWxsT3B0aW9uKSB7XG4gICAgICAgICAgICBpZiAoIWFwaV91dGlsc18xLlBhcmFtLmlzVmFsaWRFbnVtVmFsdWUoZmlsdGVyT3B0aW9ucy5udWxsT3B0aW9uLCBDb250cmFjdC5GaWx0ZXJOdWxsT3B0aW9uKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB2YWx1ZSBmb3IgcGFyYW1ldGVyIE51bGxPcHRpb24nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhcmFtZXRlcnNbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuRmlsdGVyUmFuZ2VOdWxsT3B0aW9uXSA9IEV4dGVybmFsVG9JbnRlcm5hbEVudW1NYXBwaW5nc18xLkV4dGVybmFsVG9JbnRlcm5hbEVudW1NYXBwaW5ncy5udWxsT3B0aW9ucy5jb252ZXJ0KGZpbHRlck9wdGlvbnMubnVsbE9wdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgcGFyYW1ldGVyc1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5GaWVsZE5hbWVdID0gZmllbGROYW1lO1xuICAgICAgICBwYXJhbWV0ZXJzW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLlZpc3VhbElkXSA9IHZpc3VhbElkO1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGF0Y2hlci5leGVjdXRlKHZlcmIsIHBhcmFtZXRlcnMpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmllbGROYW1lO1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIEZpbHRlclNlcnZpY2VJbXBsLnByb3RvdHlwZS5jbGVhckZpbHRlckFzeW5jID0gZnVuY3Rpb24gKHZpc3VhbElkLCBmaWVsZE5hbWUpIHtcbiAgICAgICAgdmFyIHZlcmIgPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5WZXJiSWQuQ2xlYXJGaWx0ZXI7XG4gICAgICAgIHZhciBwYXJhbWV0ZXJzID0ge307XG4gICAgICAgIHBhcmFtZXRlcnNbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuVmlzdWFsSWRdID0gdmlzdWFsSWQ7XG4gICAgICAgIHBhcmFtZXRlcnNbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuRmllbGROYW1lXSA9IGZpZWxkTmFtZTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc3BhdGNoZXIuZXhlY3V0ZSh2ZXJiLCBwYXJhbWV0ZXJzKS50aGVuKGZ1bmN0aW9uIChyZXNwb3NuZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZpZWxkTmFtZTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBGaWx0ZXJTZXJ2aWNlSW1wbC5wcm90b3R5cGUuZ2V0RmlsdGVyc0FzeW5jID0gZnVuY3Rpb24gKHZpc3VhbElkKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciB2ZXJiID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuVmVyYklkLkdldEZpbHRlcnM7XG4gICAgICAgIHZhciBwYXJhbWV0ZXJzID0ge307XG4gICAgICAgIHBhcmFtZXRlcnNbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuVmlzdWFsSWRdID0gdmlzdWFsSWQ7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUodmVyYiwgcGFyYW1ldGVycykudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHZhciBmaWx0ZXJzID0gcmVzcG9uc2UucmVzdWx0O1xuICAgICAgICAgICAgcmV0dXJuIF90aGlzLmNvbnZlcnREb21haW5GaWx0ZXJzKGZpbHRlcnMpO1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIEZpbHRlclNlcnZpY2VJbXBsLnByb3RvdHlwZS5nZXRDYXRlZ29yaWNhbERvbWFpbkFzeW5jID0gZnVuY3Rpb24gKHdvcmtzaGVldE5hbWUsIGZpZWxkSWQsIGRvbWFpblR5cGUpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgaWYgKCFhcGlfdXRpbHNfMS5QYXJhbS5pc1ZhbGlkRW51bVZhbHVlKGRvbWFpblR5cGUsIENvbnRyYWN0LkZpbHRlckRvbWFpblR5cGUpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdmFsdWUgZm9yIHBhcmFtZXRlciBGaWx0ZXJEb21haW5UeXBlJyk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHZlcmIgPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5WZXJiSWQuR2V0Q2F0ZWdvcmljYWxEb21haW47XG4gICAgICAgIHZhciBwYXJhbWV0ZXJzID0ge307XG4gICAgICAgIHBhcmFtZXRlcnNbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuVmlzdWFsSWRdID0ge1xuICAgICAgICAgICAgd29ya3NoZWV0OiB3b3Jrc2hlZXROYW1lXG4gICAgICAgIH07XG4gICAgICAgIHBhcmFtZXRlcnNbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuRmllbGRJZF0gPSBmaWVsZElkO1xuICAgICAgICBwYXJhbWV0ZXJzW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLkRvbWFpblR5cGVdID0gZG9tYWluVHlwZTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc3BhdGNoZXIuZXhlY3V0ZSh2ZXJiLCBwYXJhbWV0ZXJzKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgdmFyIGRvbWFpbiA9IHJlc3BvbnNlLnJlc3VsdDtcbiAgICAgICAgICAgIHJldHVybiBfdGhpcy5jb252ZXJ0Q2F0ZWdvcmljYWxEb21haW4oZG9tYWluLCBkb21haW5UeXBlKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBGaWx0ZXJTZXJ2aWNlSW1wbC5wcm90b3R5cGUuZ2V0UmFuZ2VEb21haW5Bc3luYyA9IGZ1bmN0aW9uICh3b3Jrc2hlZXROYW1lLCBmaWVsZElkLCBkb21haW5UeXBlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIGlmICghYXBpX3V0aWxzXzEuUGFyYW0uaXNWYWxpZEVudW1WYWx1ZShkb21haW5UeXBlLCBDb250cmFjdC5GaWx0ZXJEb21haW5UeXBlKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHZhbHVlIGZvciBwYXJhbWV0ZXIgRmlsdGVyRG9tYWluVHlwZScpO1xuICAgICAgICB9XG4gICAgICAgIHZhciB2ZXJiID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuVmVyYklkLkdldFJhbmdlRG9tYWluO1xuICAgICAgICB2YXIgcGFyYW1ldGVycyA9IHt9O1xuICAgICAgICBwYXJhbWV0ZXJzW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLlZpc3VhbElkXSA9IHtcbiAgICAgICAgICAgIHdvcmtzaGVldDogd29ya3NoZWV0TmFtZVxuICAgICAgICB9O1xuICAgICAgICBwYXJhbWV0ZXJzW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLkZpZWxkSWRdID0gZmllbGRJZDtcbiAgICAgICAgcGFyYW1ldGVyc1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5Eb21haW5UeXBlXSA9IEV4dGVybmFsVG9JbnRlcm5hbEVudW1NYXBwaW5nc18xLkV4dGVybmFsVG9JbnRlcm5hbEVudW1NYXBwaW5ncy5maWx0ZXJEb21haW5UeXBlLmNvbnZlcnQoZG9tYWluVHlwZSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUodmVyYiwgcGFyYW1ldGVycykudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHZhciBkb21haW4gPSByZXNwb25zZS5yZXN1bHQ7XG4gICAgICAgICAgICByZXR1cm4gX3RoaXMuY29udmVydFJhbmdlRG9tYWluKGRvbWFpbiwgZG9tYWluVHlwZSk7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgLy8gSGVscGVyIE1ldGhvZHNcbiAgICBGaWx0ZXJTZXJ2aWNlSW1wbC5wcm90b3R5cGUuY29udmVydERvbWFpbkZpbHRlcnMgPSBmdW5jdGlvbiAoZG9tYWluRmlsdGVycykge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgZmlsdGVycyA9IFtdO1xuICAgICAgICBkb21haW5GaWx0ZXJzLmZvckVhY2goZnVuY3Rpb24gKGRvbWFpbkZpbHRlcikge1xuICAgICAgICAgICAgc3dpdGNoIChkb21haW5GaWx0ZXIuZmlsdGVyVHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmlsdGVyVHlwZS5DYXRlZ29yaWNhbDoge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZmlsdGVyID0gZG9tYWluRmlsdGVyO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzLnB1c2goX3RoaXMuY29udmVydENhdGVnb3JpY2FsRmlsdGVyKGZpbHRlcikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIENhdGVnb3JpY2FsIEZpbHRlcicpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlIGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpbHRlclR5cGUuUmFuZ2U6IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGZpbHRlciA9IGRvbWFpbkZpbHRlcjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHRlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVycy5wdXNoKF90aGlzLmNvbnZlcnRSYW5nZUZpbHRlcihmaWx0ZXIpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBSYW5nZSBGaWx0ZXInKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWx0ZXJUeXBlLlJlbGF0aXZlRGF0ZToge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZmlsdGVyID0gZG9tYWluRmlsdGVyO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzLnB1c2goX3RoaXMuY29udmVydFJlbGF0aXZlRGF0ZUZpbHRlcihmaWx0ZXIpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBSZWxhdGl2ZSBEYXRlIEZpbHRlcicpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBmaWx0ZXJzO1xuICAgIH07XG4gICAgRmlsdGVyU2VydmljZUltcGwucHJvdG90eXBlLmNvbnZlcnRDYXRlZ29yaWNhbEZpbHRlciA9IGZ1bmN0aW9uIChkb21haW5GaWx0ZXIpIHtcbiAgICAgICAgdmFyIGFwcGxpZWRWYWx1ZXMgPSBkb21haW5GaWx0ZXIudmFsdWVzLm1hcChmdW5jdGlvbiAoZHYpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgR2V0RGF0YU1vZGVsc18xLkRhdGFWYWx1ZShkdi52YWx1ZSwgZHYuZm9ybWF0dGVkVmFsdWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG5ldyBGaWx0ZXJNb2RlbHNfMS5DYXRlZ29yaWNhbEZpbHRlcihkb21haW5GaWx0ZXIudmlzdWFsSWQud29ya3NoZWV0LCBkb21haW5GaWx0ZXIuZmllbGRDYXB0aW9uLCBkb21haW5GaWx0ZXIuZmllbGROYW1lLCBDb250cmFjdC5GaWx0ZXJUeXBlLkNhdGVnb3JpY2FsLCBhcHBsaWVkVmFsdWVzLCBkb21haW5GaWx0ZXIuaXNFeGNsdWRlKTtcbiAgICB9O1xuICAgIEZpbHRlclNlcnZpY2VJbXBsLnByb3RvdHlwZS5jb252ZXJ0UmFuZ2VGaWx0ZXIgPSBmdW5jdGlvbiAoZG9tYWluRmlsdGVyKSB7XG4gICAgICAgIHZhciBtaW5WYWx1ZSA9IG5ldyBHZXREYXRhTW9kZWxzXzEuRGF0YVZhbHVlKGRvbWFpbkZpbHRlci5taW4udmFsdWUsIGRvbWFpbkZpbHRlci5taW4uZm9ybWF0dGVkVmFsdWUpO1xuICAgICAgICB2YXIgbWF4VmFsdWUgPSBuZXcgR2V0RGF0YU1vZGVsc18xLkRhdGFWYWx1ZShkb21haW5GaWx0ZXIubWF4LnZhbHVlLCBkb21haW5GaWx0ZXIubWF4LmZvcm1hdHRlZFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG5ldyBGaWx0ZXJNb2RlbHNfMS5SYW5nZUZpbHRlcihkb21haW5GaWx0ZXIudmlzdWFsSWQud29ya3NoZWV0LCBkb21haW5GaWx0ZXIuZmllbGRDYXB0aW9uLCBkb21haW5GaWx0ZXIuZmllbGROYW1lLCBDb250cmFjdC5GaWx0ZXJUeXBlLlJhbmdlLCBtaW5WYWx1ZSwgbWF4VmFsdWUsIGRvbWFpbkZpbHRlci5pbmNsdWRlTnVsbFZhbHVlcyk7XG4gICAgfTtcbiAgICBGaWx0ZXJTZXJ2aWNlSW1wbC5wcm90b3R5cGUuY29udmVydFJlbGF0aXZlRGF0ZUZpbHRlciA9IGZ1bmN0aW9uIChkb21haW5GaWx0ZXIpIHtcbiAgICAgICAgdmFyIGFuY2hvckRhdGVWYWx1ZSA9IG5ldyBHZXREYXRhTW9kZWxzXzEuRGF0YVZhbHVlKGRvbWFpbkZpbHRlci5hbmNob3JEYXRlLnZhbHVlLCBkb21haW5GaWx0ZXIuYW5jaG9yRGF0ZS5mb3JtYXR0ZWRWYWx1ZSk7XG4gICAgICAgIHJldHVybiBuZXcgRmlsdGVyTW9kZWxzXzEuUmVsYXRpdmVEYXRlRmlsdGVyKGRvbWFpbkZpbHRlci52aXN1YWxJZC53b3Jrc2hlZXQsIGRvbWFpbkZpbHRlci5maWVsZENhcHRpb24sIGRvbWFpbkZpbHRlci5maWVsZE5hbWUsIENvbnRyYWN0LkZpbHRlclR5cGUuUmVsYXRpdmVEYXRlLCBhbmNob3JEYXRlVmFsdWUsIEludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5nc18xLkludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncy5kYXRlU3RlcFBlcmlvZC5jb252ZXJ0KGRvbWFpbkZpbHRlci5wZXJpb2RUeXBlKSwgSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzXzEuSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmRhdGVSYW5nZVR5cGUuY29udmVydChkb21haW5GaWx0ZXIucmFuZ2VUeXBlKSwgZG9tYWluRmlsdGVyLnJhbmdlTik7XG4gICAgfTtcbiAgICBGaWx0ZXJTZXJ2aWNlSW1wbC5wcm90b3R5cGUuY29udmVydENhdGVnb3JpY2FsRG9tYWluID0gZnVuY3Rpb24gKGRvbWFpbiwgZG9tYWluVHlwZSkge1xuICAgICAgICB2YXIgdmFsdWVzID0gZG9tYWluLnZhbHVlcy5tYXAoZnVuY3Rpb24gKGRvbWFpbkR2KSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEdldERhdGFNb2RlbHNfMS5EYXRhVmFsdWUoZG9tYWluRHYudmFsdWUsIGRvbWFpbkR2LmZvcm1hdHRlZFZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBuZXcgRmlsdGVyTW9kZWxzXzEuQ2F0ZWdvcmljYWxEb21haW4odmFsdWVzLCBkb21haW5UeXBlKTtcbiAgICB9O1xuICAgIEZpbHRlclNlcnZpY2VJbXBsLnByb3RvdHlwZS5jb252ZXJ0UmFuZ2VEb21haW4gPSBmdW5jdGlvbiAoZG9tYWluLCBkb21haW5UeXBlKSB7XG4gICAgICAgIHZhciBtaW4gPSBuZXcgR2V0RGF0YU1vZGVsc18xLkRhdGFWYWx1ZShkb21haW4ubWluLnZhbHVlLCBkb21haW4ubWluLmZvcm1hdHRlZFZhbHVlKTtcbiAgICAgICAgdmFyIG1heCA9IG5ldyBHZXREYXRhTW9kZWxzXzEuRGF0YVZhbHVlKGRvbWFpbi5tYXgudmFsdWUsIGRvbWFpbi5tYXguZm9ybWF0dGVkVmFsdWUpO1xuICAgICAgICByZXR1cm4gbmV3IEZpbHRlck1vZGVsc18xLlJhbmdlRG9tYWluKG1pbiwgbWF4LCBkb21haW5UeXBlKTtcbiAgICB9O1xuICAgIHJldHVybiBGaWx0ZXJTZXJ2aWNlSW1wbDtcbn0oKSk7XG5leHBvcnRzLkZpbHRlclNlcnZpY2VJbXBsID0gRmlsdGVyU2VydmljZUltcGw7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1GaWx0ZXJTZXJ2aWNlSW1wbC5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvU2VydmljZXMvaW1wbC9GaWx0ZXJTZXJ2aWNlSW1wbC5qc1xuICoqIG1vZHVsZSBpZCA9IDI2XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbi8qKlxuICogVGhpcyBpcyB5b3VyIG1haW4uIFRoaXMgaXMgd2hlcmUgeW91IHJlLWV4cG9ydCBldmVyeXRoaW5nIHlvdSB3YW50IHRvIGJlIHB1YmxpY2x5IGF2YWlsYWJsZS5cbiAqXG4gKiBUaGUgYnVpbGQgZW5mb3JjZXMgdGhhdCB0aGUgZmlsZSBoYXMgdGhlIHNhbWUgbmFtZSBhcyB0aGUgZ2xvYmFsIHZhcmlhYmxlIHRoYXQgaXMgZXhwb3J0ZWQuXG4gKi9cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBFbnVtQ29udmVydGVyXzEgPSByZXF1aXJlKFwiLi9FbnVtQ29udmVydGVyXCIpO1xuZXhwb3J0cy5FbnVtQ29udmVydGVyID0gRW51bUNvbnZlcnRlcl8xLkVudW1Db252ZXJ0ZXI7XG52YXIgUGFyYW1fMSA9IHJlcXVpcmUoXCIuL1BhcmFtXCIpO1xuZXhwb3J0cy5QYXJhbSA9IFBhcmFtXzEuUGFyYW07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1BcGlVdGlscy5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXV0aWxzL2xpYi9BcGlVdGlscy5qc1xuICoqIG1vZHVsZSBpZCA9IDI3XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8qKlxuICogVGhpcyBjbGFzcyBjb252ZXJ0cyBmcm9tIGEgc291cmNlIGVudW0gdmFsdWUgdG8gZGVzdGluYXRpb24gZW51bVxuICogdmFsdWUgZ2l2ZW4gYSBtYXBwaW5nIGZyb20gc291cmNlIHRvIGRlc3RpbmF0aW9uIHdoZW4gY29uc3RydWN0ZWQuXG4gKi9cbnZhciBFbnVtQ29udmVydGVyID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBFbnVtQ29udmVydGVyKF9tYXBwaW5ncywgX2RlZmF1bHRWYWwpIHtcbiAgICAgICAgdGhpcy5fbWFwcGluZ3MgPSBfbWFwcGluZ3M7XG4gICAgICAgIHRoaXMuX2RlZmF1bHRWYWwgPSBfZGVmYXVsdFZhbDtcbiAgICB9XG4gICAgRW51bUNvbnZlcnRlci5wcm90b3R5cGUuY29udmVydCA9IGZ1bmN0aW9uIChlbnVtVmFsLCB0aHJvd0lmTWlzc2luZykge1xuICAgICAgICBpZiAodGhpcy5fbWFwcGluZ3MuaGFzT3duUHJvcGVydHkoZW51bVZhbCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9tYXBwaW5nc1tlbnVtVmFsXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fZGVmYXVsdFZhbCAhPT0gdW5kZWZpbmVkICYmICF0aHJvd0lmTWlzc2luZykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RlZmF1bHRWYWw7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNYXBwaW5nIG5vdCBmb3VuZCBmb3IgJyArIGVudW1WYWwpO1xuICAgIH07XG4gICAgcmV0dXJuIEVudW1Db252ZXJ0ZXI7XG59KCkpO1xuZXhwb3J0cy5FbnVtQ29udmVydGVyID0gRW51bUNvbnZlcnRlcjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUVudW1Db252ZXJ0ZXIuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS11dGlscy9saWIvRW51bUNvbnZlcnRlci5qc1xuICoqIG1vZHVsZSBpZCA9IDI4XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBQYXJhbSA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gUGFyYW0oKSB7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFZlcmlmaWVzIHRoYXQgYW4gaW5jb21pbmcgcGFyYW1ldGVyIGlzICd0cnV0aHknIGFuZCB0aHJvd3NcbiAgICAgKiBhbiBlcnJvciBpZiBpdCdzIG5vdC4gVGhpcyB3aWxsIHRocm93IGFuIGVycm9yIGlmIHRoZSB2YWx1ZVxuICAgICAqIGlzIG51bGwsIHVuZGVmaW5lZCwgTmFOLCB0aGUgZW1wdHkgc3RyaW5nLCAwLCBvciBmYWxzZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcmd1bWVudFZhbHVlIHZhbHVlIHRvIHZlcmlmeVxuICAgICAqIEBwYXJhbSBhcmd1bWVudE5hbWUgbmFtZSBvZiBhcmd1bWVudCB0byB2ZXJpZnlcbiAgICAgKi9cbiAgICAvKnRzbGludDpkaXNhYmxlLW5leHQtbGluZSAqL1xuICAgIFBhcmFtLnZlcmlmeVZhbHVlID0gZnVuY3Rpb24gKGFyZ3VtZW50VmFsdWUsIGFyZ3VtZW50TmFtZSkge1xuICAgICAgICBpZiAoIWFyZ3VtZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVmFsdWUgaXMgaW52YWxpZCBmb3IgYXJndW1lbnQ6ICcgKyBhcmd1bWVudE5hbWUpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBWZXJpZmllcyB0aGF0IGEgc3RyaW5nIGlzIHZhbGlkLiAgVGhyb3dzIGFuIGVycm9yIGlmIHRoZSBzdHJpbmcgaXNcbiAgICAgKiBudWxsLCB1bmRlZmluZWQsIG9yIE5hTi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcmd1bWVudFZhbHVlIHZhbHVlIHRvIHZlcmlmeVxuICAgICAqIEBwYXJhbSBhcmd1bWVudE5hbWUgbmFtZSBvZiBhcmd1bWVudCB0byB2ZXJpZnlcbiAgICAgKi9cbiAgICBQYXJhbS52ZXJpZnlTdHJpbmcgPSBmdW5jdGlvbiAoYXJndW1lbnRWYWx1ZSwgYXJndW1lbnROYW1lKSB7XG4gICAgICAgIGlmIChhcmd1bWVudFZhbHVlID09PSBudWxsIHx8IGFyZ3VtZW50VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTdHJpbmcgdmFsdWUgaXMgaW52YWxpZCBmb3IgYXJndW1lbnQ6ICcgKyBhcmd1bWVudE5hbWUpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBWZXJpZmllcyB0aGUgdmFsdWUgaXMgcGFydCBvZiB0aGUgRW51bVxuICAgICAqXG4gICAgICogU3RyaW5nIGVudW1zIGFyZSB7c3RyaW5nIDogc3RyaW5nfSBkaWN0aW9uYXJpZXMgd2hpY2ggYXJlIG5vdCByZXZlcnNlIG1hcHBhYmxlXG4gICAgICogVGhpcyBpcyBhbiB1Z2x5IHdvcmthcm91bmRcbiAgICAgKiBAcGFyYW0gdmFsdWUgdmFsdWUgdG8gdmVyaWZ5XG4gICAgICogQHBhcmFtIGVudW1UeXBlIGVudW0gdG8gdmVyaWZ5IGFnYWluc3RcbiAgICAgKi9cbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZTpuby1hbnkgKi9cbiAgICBQYXJhbS5pc1ZhbGlkRW51bVZhbHVlID0gZnVuY3Rpb24gKHZhbHVlLCBlbnVtVHlwZSkge1xuICAgICAgICB2YXIgaXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICBPYmplY3Qua2V5cyhlbnVtVHlwZSkuZm9yRWFjaChmdW5jdGlvbiAoZW51bUtleSkge1xuICAgICAgICAgICAgaWYgKGVudW1UeXBlW2VudW1LZXldID09PSB2YWx1ZS50b1N0cmluZygpKSB7XG4gICAgICAgICAgICAgICAgaXNWYWxpZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gaXNWYWxpZDtcbiAgICB9O1xuICAgIC8qIHRzbGludDplbmFibGU6bm8tYW55ICovXG4gICAgLyoqXG4gICAgICogc2VyaWFsaXplcyB0aGUgZGF0ZSBpbnRvIHRoZSBmb3JtYXQgdGhhdCB0aGUgc2VydmVyIGV4cGVjdHMuXG4gICAgICogQHBhcmFtIGRhdGUgdGhlIGRhdGUgdG8gc2VyaWFsaXplXG4gICAgICovXG4gICAgUGFyYW0uc2VyaWFsaXplRGF0ZUZvclBsYXRmb3JtID0gZnVuY3Rpb24gKGRhdGUpIHtcbiAgICAgICAgdmFyIHllYXIgPSBkYXRlLmdldFVUQ0Z1bGxZZWFyKCk7XG4gICAgICAgIHZhciBtb250aCA9IGRhdGUuZ2V0VVRDTW9udGgoKSArIDE7XG4gICAgICAgIHZhciBkYXkgPSBkYXRlLmdldFVUQ0RhdGUoKTtcbiAgICAgICAgdmFyIGhoID0gZGF0ZS5nZXRVVENIb3VycygpO1xuICAgICAgICB2YXIgbW0gPSBkYXRlLmdldFVUQ01pbnV0ZXMoKTtcbiAgICAgICAgdmFyIHNlYyA9IGRhdGUuZ2V0VVRDU2Vjb25kcygpO1xuICAgICAgICByZXR1cm4geWVhciArICctJyArIG1vbnRoICsgJy0nICsgZGF5ICsgJyAnICsgaGggKyAnOicgKyBtbSArICc6JyArIHNlYztcbiAgICB9O1xuICAgIFBhcmFtLnNlcmlhbGl6ZUJvb2xlYW5Gb3JQbGF0Zm9ybSA9IGZ1bmN0aW9uIChib29sKSB7XG4gICAgICAgIHJldHVybiBib29sID8gJ3RydWUnIDogJ2ZhbHNlJztcbiAgICB9O1xuICAgIFBhcmFtLnNlcmlhbGl6ZU51bWJlckZvclBsYXRmb3JtID0gZnVuY3Rpb24gKG51bSkge1xuICAgICAgICByZXR1cm4gbnVtLnRvU3RyaW5nKDEwKTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIFZlcmlmaWVzIHRoZSBwYXJhbXMgbWluIGFuZCBtYXggZm9yIGFwcGx5aW5nIHJhbmdlIGZpbHRlclxuICAgICAqIEBwYXJhbSBtaW4gcmFuZ2UgbWluXG4gICAgICogQHBhcmFtIG1heCByYW5nZSBtYXhcbiAgICAgKi9cbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZTpuby1hbnkgKi9cbiAgICBQYXJhbS52ZXJpZnlSYW5nZVBhcmFtVHlwZSA9IGZ1bmN0aW9uIChtaW4sIG1heCkge1xuICAgICAgICAvKiB0c2xpbnQ6ZW5hYmxlOm5vLWFueSAqL1xuICAgICAgICBpZiAoIW1pbiAmJiAhbWF4KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgUGFyYW1ldGVyOiBBdCBsZWFzdCBvbmUgb2YgbWluIG9yIG1heCBpcyByZXF1aXJlZCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghUGFyYW0uaXNUeXBlTnVtYmVyKG1pbikgJiYgIVBhcmFtLmlzVHlwZURhdGUobWluKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFBhcmFtZXRlciBUeXBlOiBPbmx5IERhdGUgYW5kIG51bWJlciBhcmUgYWxsb3dlZCBmb3IgcGFyYW1ldGVyIG1pbicpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghUGFyYW0uaXNUeXBlTnVtYmVyKG1heCkgJiYgIVBhcmFtLmlzVHlwZURhdGUobWF4KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFBhcmFtZXRlciBUeXBlOiBPbmx5IERhdGUgYW5kIG51bWJlciBhcmUgYWxsb3dlZCBmb3IgcGFyYW1ldGVyIG1heCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgKG1pbikgIT09IHR5cGVvZiAobWF4KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFBhcmFtZXRlciBUeXBlOiBQYXJhbWV0ZXJzIG1pbiBhbmQgbWF4IHNob3VsZCBiZSBvZiB0aGUgc2FtZSB0eXBlJyk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIC8qKlxuICAgICAqIFZlcmlmaWVzIHRoZSBpbnB1dCBpcyBhIG51bWJlclxuICAgICAqL1xuICAgIC8qIHRzbGludDpkaXNhYmxlOm5vLWFueSAqL1xuICAgIFBhcmFtLmlzVHlwZU51bWJlciA9IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIChpbnB1dCkgPT09ICdudW1iZXInIHx8IGlucHV0IGluc3RhbmNlb2YgTnVtYmVyO1xuICAgIH07XG4gICAgLyogdHNsaW50OmVuYWJsZTpuby1hbnkgKi9cbiAgICAvKipcbiAgICAgKiBWZXJpZmllcyB0aGUgaW5wdXQgaXMgYSBEYXRlXG4gICAgICovXG4gICAgLyogdHNsaW50OmRpc2FibGU6bm8tYW55ICovXG4gICAgUGFyYW0uaXNUeXBlRGF0ZSA9IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICByZXR1cm4gaW5wdXQgaW5zdGFuY2VvZiBEYXRlO1xuICAgIH07XG4gICAgLyogdHNsaW50OmVuYWJsZTpuby1hbnkgKi9cbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55ICovXG4gICAgUGFyYW0uaXNUeXBlU3RyaW5nID0gZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgKGlucHV0KSA9PT0gJ3N0cmluZycgfHwgaW5wdXQgaW5zdGFuY2VvZiBTdHJpbmc7XG4gICAgfTtcbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55ICovXG4gICAgUGFyYW0uaXNUeXBlQm9vbCA9IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIChpbnB1dCkgPT09ICdib29sZWFuJyB8fCBpbnB1dCBpbnN0YW5jZW9mIEJvb2xlYW47XG4gICAgfTtcbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55ICovXG4gICAgUGFyYW0uc2VyaWFsaXplUGFyYW10ZXJWYWx1ZSA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICBpZiAoUGFyYW0uaXNUeXBlTnVtYmVyKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIFBhcmFtLnNlcmlhbGl6ZU51bWJlckZvclBsYXRmb3JtKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChQYXJhbS5pc1R5cGVEYXRlKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIFBhcmFtLnNlcmlhbGl6ZURhdGVGb3JQbGF0Zm9ybSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoUGFyYW0uaXNUeXBlQm9vbCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBQYXJhbS5zZXJpYWxpemVCb29sZWFuRm9yUGxhdGZvcm0odmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKFBhcmFtLmlzVHlwZVN0cmluZyh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVmFsdWUgaXMgaW52YWxpZCBmb3IgYXJndW1lbnQ6IHZhbHVlJyk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiBQYXJhbTtcbn0oKSk7XG5leHBvcnRzLlBhcmFtID0gUGFyYW07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1QYXJhbS5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXV0aWxzL2xpYi9QYXJhbS5qc1xuICoqIG1vZHVsZSBpZCA9IDI5XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMSA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3RcIik7XG52YXIgYXBpX2ludGVybmFsX2NvbnRyYWN0XzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0XCIpO1xudmFyIGFwaV91dGlsc18xID0gcmVxdWlyZShcIkB0YWJsZWF1L2FwaS11dGlsc1wiKTtcbi8qIHRzbGludDpkaXNhYmxlOnR5cGVkZWYgLSBEaXNhYmxlIHRoaXMgdG8gbWFrZSBkZWNsYXJpbmcgdGhlc2UgY2xhc3NlcyBhIGJpdCBlYXNpZXIgKi9cbi8qKlxuICogTWFwcyBlbnVtcyB1c2VkIGJ5IHRoZSBleHRlcm5hbC1hcGktY29udHJhY3QgdG8gdGhlIGVudW1zIHVzZWRcbiAqIGluIHRoZSBpbnRlcm5hbC1hcGktY29udHJhY3QsIHdoaWNoIGRldmVsb3BlcnMgY29kZSBhZ2FpbnN0LlxuICovXG52YXIgRXh0ZXJuYWxUb0ludGVybmFsRW51bU1hcHBpbmdzID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBFeHRlcm5hbFRvSW50ZXJuYWxFbnVtTWFwcGluZ3MoKSB7XG4gICAgfVxuICAgIEV4dGVybmFsVG9JbnRlcm5hbEVudW1NYXBwaW5ncy5udWxsT3B0aW9ucyA9IG5ldyBhcGlfdXRpbHNfMS5FbnVtQ29udmVydGVyKChfYSA9IHt9LFxuICAgICAgICBfYVthcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWx0ZXJOdWxsT3B0aW9uLkFsbFZhbHVlc10gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWx0ZXJOdWxsT3B0aW9uLkFsbFZhbHVlcyxcbiAgICAgICAgX2FbYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmlsdGVyTnVsbE9wdGlvbi5Ob25OdWxsVmFsdWVzXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpbHRlck51bGxPcHRpb24uTm9uTnVsbFZhbHVlcyxcbiAgICAgICAgX2FbYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmlsdGVyTnVsbE9wdGlvbi5Ob25OdWxsVmFsdWVzXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpbHRlck51bGxPcHRpb24uTnVsbFZhbHVlcyxcbiAgICAgICAgX2EpKTtcbiAgICBFeHRlcm5hbFRvSW50ZXJuYWxFbnVtTWFwcGluZ3MuZmlsdGVyRG9tYWluVHlwZSA9IG5ldyBhcGlfdXRpbHNfMS5FbnVtQ29udmVydGVyKChfYiA9IHt9LFxuICAgICAgICBfYlthcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWx0ZXJEb21haW5UeXBlLlJlbGV2YW50XSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpbHRlckRvbWFpblR5cGUuUmVsZXZhbnQsXG4gICAgICAgIF9iW2FwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpbHRlckRvbWFpblR5cGUuRGF0YWJhc2VdID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmlsdGVyRG9tYWluVHlwZS5EYXRhYmFzZSxcbiAgICAgICAgX2IpKTtcbiAgICByZXR1cm4gRXh0ZXJuYWxUb0ludGVybmFsRW51bU1hcHBpbmdzO1xufSgpKTtcbmV4cG9ydHMuRXh0ZXJuYWxUb0ludGVybmFsRW51bU1hcHBpbmdzID0gRXh0ZXJuYWxUb0ludGVybmFsRW51bU1hcHBpbmdzO1xudmFyIF9hLCBfYjtcbi8qIHRzbGludDplbmFibGU6dHlwZWRlZiAqL1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RXh0ZXJuYWxUb0ludGVybmFsRW51bU1hcHBpbmdzLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9FbnVtTWFwcGluZ3MvRXh0ZXJuYWxUb0ludGVybmFsRW51bU1hcHBpbmdzLmpzXG4gKiogbW9kdWxlIGlkID0gMzBcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIGFwaV9leHRlcm5hbF9jb250cmFjdF8xID0gcmVxdWlyZShcIkB0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdFwiKTtcbnZhciBhcGlfaW50ZXJuYWxfY29udHJhY3RfMSA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3RcIik7XG52YXIgYXBpX3V0aWxzXzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLXV0aWxzXCIpO1xuLyogdHNsaW50OmRpc2FibGU6dHlwZWRlZiAtIERpc2FibGUgdGhpcyB0byBtYWtlIGRlY2xhcmluZyB0aGVzZSBjbGFzc2VzIGEgYml0IGVhc2llciAqL1xuLyoqXG4gKiBNYXBzIGVudW1zIHVzZWQgYnkgdGhlIGludGVybmFsLWFwaS1jb250cmFjdCB0byB0aGUgZW51bXMgdXNlZFxuICogaW4gdGhlIGV4dGVybmFsLWFwaS1jb250cmFjdCwgd2hpY2ggZGV2ZWxvcGVycyBjb2RlIGFnYWluc3QuXG4gKi9cbnZhciBJbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncygpIHtcbiAgICB9XG4gICAgSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmFkZEluQ29udGV4dCA9IG5ldyBhcGlfdXRpbHNfMS5FbnVtQ29udmVydGVyKChfYSA9IHt9LFxuICAgICAgICBfYVthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5BZGRJbkNvbnRleHQuRGVza3RvcF0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5BZGRJbkNvbnRleHQuRGVza3RvcCxcbiAgICAgICAgX2FbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuQWRkSW5Db250ZXh0LlNlcnZlcl0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5BZGRJbkNvbnRleHQuU2VydmVyLFxuICAgICAgICBfYSkpO1xuICAgIEludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncy5hZGRJbk1vZGUgPSBuZXcgYXBpX3V0aWxzXzEuRW51bUNvbnZlcnRlcigoX2IgPSB7fSxcbiAgICAgICAgX2JbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuQWRkSW5Nb2RlLkF1dGhvcmluZ10gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5BZGRJbk1vZGUuQXV0aG9yaW5nLFxuICAgICAgICBfYlthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5BZGRJbk1vZGUuVmlld2luZ10gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5BZGRJbk1vZGUuVmlld2luZyxcbiAgICAgICAgX2IpKTtcbiAgICBJbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MuY29sdW1uVHlwZSA9IG5ldyBhcGlfdXRpbHNfMS5FbnVtQ29udmVydGVyKChfYyA9IHt9LFxuICAgICAgICBfY1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5Db2x1bW5UeXBlLkNvbnRpbnVvdXNdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuQ29sdW1uVHlwZS5Db250aW51b3VzLFxuICAgICAgICBfY1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5Db2x1bW5UeXBlLkRpc2NyZXRlXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkNvbHVtblR5cGUuRGlzY3JldGUsXG4gICAgICAgIF9jKSk7XG4gICAgSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmZpZWxkQWdncmVnYXRpb25UeXBlID0gbmV3IGFwaV91dGlsc18xLkVudW1Db252ZXJ0ZXIoKF9kID0ge30sXG4gICAgICAgIF9kW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLkF0dHJdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuQXR0cixcbiAgICAgICAgX2RbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuQXZnXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLkF2ZyxcbiAgICAgICAgX2RbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuQ291bnRdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuQ291bnQsXG4gICAgICAgIF9kW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLkNvdW50ZF0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5Db3VudGQsXG4gICAgICAgIF9kW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLkRheV0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5EYXksXG4gICAgICAgIF9kW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLkVuZF0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5FbmQsXG4gICAgICAgIF9kW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLkhvdXJdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuSG91cixcbiAgICAgICAgX2RbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuSW5PdXRdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuSW5PdXQsXG4gICAgICAgIF9kW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLkt1cnRvc2lzXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLkt1cnRvc2lzLFxuICAgICAgICBfZFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5NYXhdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuTWF4LFxuICAgICAgICBfZFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5NZHldID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuTWR5LFxuICAgICAgICBfZFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5NZWRpYW5dID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuTWVkaWFuLFxuICAgICAgICBfZFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5NaW5dID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuTWluLFxuICAgICAgICBfZFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5NaW51dGVdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuTWludXRlLFxuICAgICAgICBfZFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5Nb250aFllYXJdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuTW9udGhZZWFyLFxuICAgICAgICBfZFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5Ob25lXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLk5vbmUsXG4gICAgICAgIF9kW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlF0cl0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5RdHIsXG4gICAgICAgIF9kW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlF1YXJ0MV0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5RdWFydDEsXG4gICAgICAgIF9kW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlF1YXJ0M10gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5RdWFydDMsXG4gICAgICAgIF9kW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlNlY29uZF0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5TZWNvbmQsXG4gICAgICAgIF9kW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlNrZXduZXNzXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlNrZXduZXNzLFxuICAgICAgICBfZFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5TdGRldl0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5TdGRldixcbiAgICAgICAgX2RbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuU3RkZXZwXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlN0ZGV2cCxcbiAgICAgICAgX2RbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuU3VtXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlN1bSxcbiAgICAgICAgX2RbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuVHJ1bmNEYXldID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuVHJ1bmNEYXksXG4gICAgICAgIF9kW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jSG91cl0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY0hvdXIsXG4gICAgICAgIF9kW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jTWludXRlXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jTWludXRlLFxuICAgICAgICBfZFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY01vbnRoXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jTW9udGgsXG4gICAgICAgIF9kW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jUXRyXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jUXRyLFxuICAgICAgICBfZFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY1NlY29uZF0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY1NlY29uZCxcbiAgICAgICAgX2RbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuVHJ1bmNXZWVrXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jV2VlayxcbiAgICAgICAgX2RbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuVHJ1bmNZZWFyXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jWWVhcixcbiAgICAgICAgX2RbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuVXNlcl0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5Vc2VyLFxuICAgICAgICBfZFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5WYXJdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuVmFyLFxuICAgICAgICBfZFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5WYXJwXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlZhcnAsXG4gICAgICAgIF9kW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLldlZWtdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuV2VlayxcbiAgICAgICAgX2RbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuV2Vla2RheV0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5XZWVrZGF5LFxuICAgICAgICBfZFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5ZZWFyXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlllYXIsXG4gICAgICAgIF9kKSk7XG4gICAgSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmZpZWxkUm9sZVR5cGUgPSBuZXcgYXBpX3V0aWxzXzEuRW51bUNvbnZlcnRlcigoX2UgPSB7fSxcbiAgICAgICAgX2VbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRSb2xlVHlwZS5EaW1lbnNpb25dID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmllbGRSb2xlVHlwZS5EaW1lbnNpb24sXG4gICAgICAgIF9lW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkUm9sZVR5cGUuTWVhc3VyZV0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWVsZFJvbGVUeXBlLk1lYXN1cmUsXG4gICAgICAgIF9lW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkUm9sZVR5cGUuVW5rbm93bl0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWVsZFJvbGVUeXBlLlVua25vd24sXG4gICAgICAgIF9lKSk7XG4gICAgSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLnNoZWV0VHlwZSA9IG5ldyBhcGlfdXRpbHNfMS5FbnVtQ29udmVydGVyKChfZiA9IHt9LFxuICAgICAgICBfZlthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5TaGVldFR5cGUuRGFzaGJvYXJkXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLlNoZWV0VHlwZS5EYXNoYm9hcmQsXG4gICAgICAgIF9mW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLlNoZWV0VHlwZS5TdG9yeV0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5TaGVldFR5cGUuU3RvcnksXG4gICAgICAgIF9mW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLlNoZWV0VHlwZS5Xb3Jrc2hlZXRdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuU2hlZXRUeXBlLldvcmtzaGVldCxcbiAgICAgICAgX2YpKTtcbiAgICBJbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MuZGFzaGJvYXJkT2JqZWN0VHlwZSA9IG5ldyBhcGlfdXRpbHNfMS5FbnVtQ29udmVydGVyKChfZyA9IHt9LFxuICAgICAgICBfZ1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXNoYm9hcmRPYmplY3RUeXBlLkFkZEluXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkRhc2hib2FyZE9iamVjdFR5cGUuQWRkSW4sXG4gICAgICAgIF9nW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhc2hib2FyZE9iamVjdFR5cGUuQmxhbmtdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRGFzaGJvYXJkT2JqZWN0VHlwZS5CbGFuayxcbiAgICAgICAgX2dbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGFzaGJvYXJkT2JqZWN0VHlwZS5JbWFnZV0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5EYXNoYm9hcmRPYmplY3RUeXBlLkltYWdlLFxuICAgICAgICBfZ1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXNoYm9hcmRPYmplY3RUeXBlLkxlZ2VuZF0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5EYXNoYm9hcmRPYmplY3RUeXBlLkxlZ2VuZCxcbiAgICAgICAgX2dbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGFzaGJvYXJkT2JqZWN0VHlwZS5QYWdlRmlsdGVyXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkRhc2hib2FyZE9iamVjdFR5cGUuUGFnZUZpbHRlcixcbiAgICAgICAgX2dbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGFzaGJvYXJkT2JqZWN0VHlwZS5QYXJhbWV0ZXJDb250cm9sXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkRhc2hib2FyZE9iamVjdFR5cGUuUGFyYW1ldGVyQ29udHJvbCxcbiAgICAgICAgX2dbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGFzaGJvYXJkT2JqZWN0VHlwZS5RdWlja0ZpbHRlcl0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5EYXNoYm9hcmRPYmplY3RUeXBlLlF1aWNrRmlsdGVyLFxuICAgICAgICBfZ1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXNoYm9hcmRPYmplY3RUeXBlLlRleHRdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRGFzaGJvYXJkT2JqZWN0VHlwZS5UZXh0LFxuICAgICAgICBfZ1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXNoYm9hcmRPYmplY3RUeXBlLlRpdGxlXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkRhc2hib2FyZE9iamVjdFR5cGUuVGl0bGUsXG4gICAgICAgIF9nW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhc2hib2FyZE9iamVjdFR5cGUuV2ViUGFnZV0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5EYXNoYm9hcmRPYmplY3RUeXBlLldlYlBhZ2UsXG4gICAgICAgIF9nW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhc2hib2FyZE9iamVjdFR5cGUuV29ya3NoZWV0XSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkRhc2hib2FyZE9iamVjdFR5cGUuV29ya3NoZWV0LFxuICAgICAgICBfZykpO1xuICAgIEludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncy5kYXRhVHlwZSA9IG5ldyBhcGlfdXRpbHNfMS5FbnVtQ29udmVydGVyKChfaCA9IHt9LFxuICAgICAgICBfaFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXRhVHlwZS5Cb29sXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkRhdGFUeXBlLkJvb2wsXG4gICAgICAgIF9oW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhdGFUeXBlLkRhdGVdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRGF0YVR5cGUuRGF0ZSxcbiAgICAgICAgX2hbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGF0YVR5cGUuRGF0ZVRpbWVdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRGF0YVR5cGUuRGF0ZVRpbWUsXG4gICAgICAgIF9oW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhdGFUeXBlLkZsb2F0XSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkRhdGFUeXBlLkZsb2F0LFxuICAgICAgICBfaFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXRhVHlwZS5JbnRdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRGF0YVR5cGUuSW50LFxuICAgICAgICBfaFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXRhVHlwZS5TdHJpbmddID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRGF0YVR5cGUuU3RyaW5nLFxuICAgICAgICBfaCkpO1xuICAgIEludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncy5maWx0ZXJVcGRhdGVUeXBlID0gbmV3IGFwaV91dGlsc18xLkVudW1Db252ZXJ0ZXIoKF9qID0ge30sXG4gICAgICAgIF9qW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpbHRlclVwZGF0ZVR5cGUuQWRkXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpbHRlclVwZGF0ZVR5cGUuQWRkLFxuICAgICAgICBfalthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWx0ZXJVcGRhdGVUeXBlLkFsbF0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWx0ZXJVcGRhdGVUeXBlLkFsbCxcbiAgICAgICAgX2pbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmlsdGVyVXBkYXRlVHlwZS5SZW1vdmVdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmlsdGVyVXBkYXRlVHlwZS5SZW1vdmUsXG4gICAgICAgIF9qW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpbHRlclVwZGF0ZVR5cGUuUmVwbGFjZV0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWx0ZXJVcGRhdGVUeXBlLlJlcGxhY2UsXG4gICAgICAgIF9qKSk7XG4gICAgSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmFsbG93YWJsZVZhbHVlcyA9IG5ldyBhcGlfdXRpbHNfMS5FbnVtQ29udmVydGVyKChfayA9IHt9LFxuICAgICAgICBfa1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5Eb21haW5SZXN0cmljdGlvblR5cGUuQWxsXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlclZhbHVlVHlwZS5BbGwsXG4gICAgICAgIF9rW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRvbWFpblJlc3RyaWN0aW9uVHlwZS5MaXN0XSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlclZhbHVlVHlwZS5MaXN0LFxuICAgICAgICBfa1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5Eb21haW5SZXN0cmljdGlvblR5cGUuUmFuZ2VdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVyVmFsdWVUeXBlLlJhbmdlLFxuICAgICAgICBfaykpO1xuICAgIEludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncy5kYXRlU3RlcFBlcmlvZCA9IG5ldyBhcGlfdXRpbHNfMS5FbnVtQ29udmVydGVyKChfbCA9IHt9LFxuICAgICAgICBfbFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXRlU3RlcFBlcmlvZC5ZZWFyc10gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5QZXJpb2RUeXBlLlllYXJzLFxuICAgICAgICBfbFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXRlU3RlcFBlcmlvZC5RdWFydGVyc10gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5QZXJpb2RUeXBlLlF1YXJ0ZXJzLFxuICAgICAgICBfbFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXRlU3RlcFBlcmlvZC5Nb250aHNdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuUGVyaW9kVHlwZS5Nb250aHMsXG4gICAgICAgIF9sW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhdGVTdGVwUGVyaW9kLldlZWtzXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLlBlcmlvZFR5cGUuV2Vla3MsXG4gICAgICAgIF9sW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhdGVTdGVwUGVyaW9kLkRheXNdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuUGVyaW9kVHlwZS5EYXlzLFxuICAgICAgICBfbFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXRlU3RlcFBlcmlvZC5Ib3Vyc10gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5QZXJpb2RUeXBlLkhvdXJzLFxuICAgICAgICBfbFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXRlU3RlcFBlcmlvZC5NaW51dGVzXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLlBlcmlvZFR5cGUuTWludXRlcyxcbiAgICAgICAgX2xbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGF0ZVN0ZXBQZXJpb2QuU2Vjb25kc10gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5QZXJpb2RUeXBlLlNlY29uZHMsXG4gICAgICAgIF9sKSk7XG4gICAgSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmRhdGVSYW5nZVR5cGUgPSBuZXcgYXBpX3V0aWxzXzEuRW51bUNvbnZlcnRlcigoX20gPSB7fSxcbiAgICAgICAgX21bYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGF0ZVJhbmdlVHlwZS5DdXJyZW50XSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkRhdGVSYW5nZVR5cGUuQ3VycmVudCxcbiAgICAgICAgX21bYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGF0ZVJhbmdlVHlwZS5MYXN0XSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkRhdGVSYW5nZVR5cGUuTGFzdCxcbiAgICAgICAgX21bYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGF0ZVJhbmdlVHlwZS5MYXN0Tl0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5EYXRlUmFuZ2VUeXBlLkxhc3ROLFxuICAgICAgICBfbVthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXRlUmFuZ2VUeXBlLk5leHRdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRGF0ZVJhbmdlVHlwZS5OZXh0LFxuICAgICAgICBfbVthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXRlUmFuZ2VUeXBlLk5leHROXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkRhdGVSYW5nZVR5cGUuTmV4dE4sXG4gICAgICAgIF9tW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhdGVSYW5nZVR5cGUuVG9EYXRlXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkRhdGVSYW5nZVR5cGUuVG9EYXRlLFxuICAgICAgICBfbSkpO1xuICAgIEludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncy5maWx0ZXJUeXBlID0gbmV3IGFwaV91dGlsc18xLkVudW1Db252ZXJ0ZXIoKF9vID0ge30sXG4gICAgICAgIF9vW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpbHRlclR5cGUuQ2F0ZWdvcmljYWxdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmlsdGVyVHlwZS5DYXRlZ29yaWNhbCxcbiAgICAgICAgX29bYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmlsdGVyVHlwZS5SYW5nZV0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWx0ZXJUeXBlLlJhbmdlLFxuICAgICAgICBfb1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWx0ZXJUeXBlLlJlbGF0aXZlRGF0ZV0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWx0ZXJUeXBlLlJlbGF0aXZlRGF0ZSxcbiAgICAgICAgX29bYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmlsdGVyVHlwZS5IaWVyYXJjaGljYWxdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmlsdGVyVHlwZS5IaWVyYXJjaGljYWwsXG4gICAgICAgIF9vKSk7XG4gICAgcmV0dXJuIEludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncztcbn0oKSk7XG5leHBvcnRzLkludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncyA9IEludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncztcbnZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mLCBfZywgX2gsIF9qLCBfaywgX2wsIF9tLCBfbztcbi8qIHRzbGludDplbmFibGU6dHlwZWRlZiAqL1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9SW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9FbnVtTWFwcGluZ3MvSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmpzXG4gKiogbW9kdWxlIGlkID0gMzFcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkge1xuICAgIHZhciBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XG4gICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcbiAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxuICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XG4gICAgfTtcbn0pKCk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgQ29udHJhY3QgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0XCIpO1xudmFyIFNlcnZpY2VSZWdpc3RyeV8xID0gcmVxdWlyZShcIi4uL1NlcnZpY2VzL1NlcnZpY2VSZWdpc3RyeVwiKTtcbnZhciBGaWx0ZXIgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEZpbHRlcihfd29ya3NoZWV0TmFtZSwgX2ZpZWxkTmFtZSwgX2ZpbHRlclR5cGUsIF9maWVsZElkKSB7XG4gICAgICAgIHRoaXMuX3dvcmtzaGVldE5hbWUgPSBfd29ya3NoZWV0TmFtZTtcbiAgICAgICAgdGhpcy5fZmllbGROYW1lID0gX2ZpZWxkTmFtZTtcbiAgICAgICAgdGhpcy5fZmlsdGVyVHlwZSA9IF9maWx0ZXJUeXBlO1xuICAgICAgICB0aGlzLl9maWVsZElkID0gX2ZpZWxkSWQ7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGaWx0ZXIucHJvdG90eXBlLCBcIndvcmtzaGVldE5hbWVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXROYW1lO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRmlsdGVyLnByb3RvdHlwZSwgXCJmaWVsZE5hbWVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9maWVsZE5hbWU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGaWx0ZXIucHJvdG90eXBlLCBcImZpZWxkSWRcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9maWVsZElkO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRmlsdGVyLnByb3RvdHlwZSwgXCJmaWx0ZXJUeXBlXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZmlsdGVyVHlwZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgRmlsdGVyLnByb3RvdHlwZS5nZXRGaWVsZEFzeW5jID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQnKTtcbiAgICB9O1xuICAgIHJldHVybiBGaWx0ZXI7XG59KCkpO1xuZXhwb3J0cy5GaWx0ZXIgPSBGaWx0ZXI7XG52YXIgQ2F0ZWdvcmljYWxGaWx0ZXIgPSAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhDYXRlZ29yaWNhbEZpbHRlciwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBDYXRlZ29yaWNhbEZpbHRlcih3b3Jrc2hlZXROYW1lLCBmaWVsZE5hbWUsIGZpZWxkSWQsIGZpbHRlclR5cGUsIF9hcHBsaWVkVmFsdWVzLCBfaXNFeGNsdWRlTW9kZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCB3b3Jrc2hlZXROYW1lLCBmaWVsZE5hbWUsIGZpbHRlclR5cGUsIGZpZWxkSWQpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLl9hcHBsaWVkVmFsdWVzID0gX2FwcGxpZWRWYWx1ZXM7XG4gICAgICAgIF90aGlzLl9pc0V4Y2x1ZGVNb2RlID0gX2lzRXhjbHVkZU1vZGU7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KENhdGVnb3JpY2FsRmlsdGVyLnByb3RvdHlwZSwgXCJhcHBsaWVkVmFsdWVzXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fYXBwbGllZFZhbHVlcztcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KENhdGVnb3JpY2FsRmlsdGVyLnByb3RvdHlwZSwgXCJpc0V4Y2x1ZGVNb2RlXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5faXNFeGNsdWRlTW9kZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgQ2F0ZWdvcmljYWxGaWx0ZXIucHJvdG90eXBlLmdldERvbWFpbkFzeW5jID0gZnVuY3Rpb24gKGRvbWFpblR5cGUpIHtcbiAgICAgICAgaWYgKCFkb21haW5UeXBlKSB7XG4gICAgICAgICAgICBkb21haW5UeXBlID0gQ29udHJhY3QuRmlsdGVyRG9tYWluVHlwZS5SZWxldmFudDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgc2VydmljZSA9IFNlcnZpY2VSZWdpc3RyeV8xLkFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlKFwiZmlsdGVyLXNlcnZpY2VcIiAvKiBGaWx0ZXIgKi8pO1xuICAgICAgICByZXR1cm4gc2VydmljZS5nZXRDYXRlZ29yaWNhbERvbWFpbkFzeW5jKHRoaXMuX3dvcmtzaGVldE5hbWUsIHRoaXMuX2ZpZWxkSWQsIGRvbWFpblR5cGUpO1xuICAgIH07XG4gICAgcmV0dXJuIENhdGVnb3JpY2FsRmlsdGVyO1xufShGaWx0ZXIpKTtcbmV4cG9ydHMuQ2F0ZWdvcmljYWxGaWx0ZXIgPSBDYXRlZ29yaWNhbEZpbHRlcjtcbnZhciBSYW5nZUZpbHRlciA9IChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFJhbmdlRmlsdGVyLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFJhbmdlRmlsdGVyKHdvcmtzaGVldE5hbWUsIGZpZWxkTmFtZSwgZmllbGRJZCwgZmlsdGVyVHlwZSwgX21pbiwgX21heCwgX2luY2x1ZGVOdWxsVmFsdWVzKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIHdvcmtzaGVldE5hbWUsIGZpZWxkTmFtZSwgZmlsdGVyVHlwZSwgZmllbGRJZCkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuX21pbiA9IF9taW47XG4gICAgICAgIF90aGlzLl9tYXggPSBfbWF4O1xuICAgICAgICBfdGhpcy5faW5jbHVkZU51bGxWYWx1ZXMgPSBfaW5jbHVkZU51bGxWYWx1ZXM7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFJhbmdlRmlsdGVyLnByb3RvdHlwZSwgXCJtaW5WYWx1ZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21pbjtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFJhbmdlRmlsdGVyLnByb3RvdHlwZSwgXCJtYXhWYWx1ZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21heDtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFJhbmdlRmlsdGVyLnByb3RvdHlwZSwgXCJpbmNsdWRlTnVsbFZhbHVlc1wiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2luY2x1ZGVOdWxsVmFsdWVzO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBSYW5nZUZpbHRlci5wcm90b3R5cGUuZ2V0RG9tYWluQXN5bmMgPSBmdW5jdGlvbiAoZG9tYWluVHlwZSkge1xuICAgICAgICB2YXIgc2VydmljZSA9IFNlcnZpY2VSZWdpc3RyeV8xLkFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlKFwiZmlsdGVyLXNlcnZpY2VcIiAvKiBGaWx0ZXIgKi8pO1xuICAgICAgICBpZiAoIWRvbWFpblR5cGUpIHtcbiAgICAgICAgICAgIGRvbWFpblR5cGUgPSBDb250cmFjdC5GaWx0ZXJEb21haW5UeXBlLlJlbGV2YW50O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzZXJ2aWNlLmdldFJhbmdlRG9tYWluQXN5bmModGhpcy5fd29ya3NoZWV0TmFtZSwgdGhpcy5fZmllbGRJZCwgZG9tYWluVHlwZSk7XG4gICAgfTtcbiAgICByZXR1cm4gUmFuZ2VGaWx0ZXI7XG59KEZpbHRlcikpO1xuZXhwb3J0cy5SYW5nZUZpbHRlciA9IFJhbmdlRmlsdGVyO1xudmFyIFJlbGF0aXZlRGF0ZUZpbHRlciA9IChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFJlbGF0aXZlRGF0ZUZpbHRlciwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBSZWxhdGl2ZURhdGVGaWx0ZXIod29ya3NoZWV0TmFtZSwgZmllbGROYW1lLCBmaWVsZElkLCBmaWx0ZXJUeXBlLCBfYW5jaG9yRGF0ZSwgX3BlcmlvZFR5cGUsIF9yYW5nZVR5cGUsIF9yYW5nZU4pIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgd29ya3NoZWV0TmFtZSwgZmllbGROYW1lLCBmaWx0ZXJUeXBlLCBmaWVsZElkKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5fYW5jaG9yRGF0ZSA9IF9hbmNob3JEYXRlO1xuICAgICAgICBfdGhpcy5fcGVyaW9kVHlwZSA9IF9wZXJpb2RUeXBlO1xuICAgICAgICBfdGhpcy5fcmFuZ2VUeXBlID0gX3JhbmdlVHlwZTtcbiAgICAgICAgX3RoaXMuX3JhbmdlTiA9IF9yYW5nZU47XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFJlbGF0aXZlRGF0ZUZpbHRlci5wcm90b3R5cGUsIFwiYW5jaG9yRGF0ZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FuY2hvckRhdGU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSZWxhdGl2ZURhdGVGaWx0ZXIucHJvdG90eXBlLCBcInBlcmlvZFR5cGVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9wZXJpb2RUeXBlO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUmVsYXRpdmVEYXRlRmlsdGVyLnByb3RvdHlwZSwgXCJyYW5nZVR5cGVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9yYW5nZVR5cGU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSZWxhdGl2ZURhdGVGaWx0ZXIucHJvdG90eXBlLCBcInJhbmdlTlwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3JhbmdlTjtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgcmV0dXJuIFJlbGF0aXZlRGF0ZUZpbHRlcjtcbn0oRmlsdGVyKSk7XG5leHBvcnRzLlJlbGF0aXZlRGF0ZUZpbHRlciA9IFJlbGF0aXZlRGF0ZUZpbHRlcjtcbnZhciBDYXRlZ29yaWNhbERvbWFpbiA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gQ2F0ZWdvcmljYWxEb21haW4oX3ZhbHVlcywgX2RvbWFpblR5cGUpIHtcbiAgICAgICAgdGhpcy5fdmFsdWVzID0gX3ZhbHVlcztcbiAgICAgICAgdGhpcy5fZG9tYWluVHlwZSA9IF9kb21haW5UeXBlO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQ2F0ZWdvcmljYWxEb21haW4ucHJvdG90eXBlLCBcInZhbHVlc1wiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlcztcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KENhdGVnb3JpY2FsRG9tYWluLnByb3RvdHlwZSwgXCJ0eXBlXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZG9tYWluVHlwZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgcmV0dXJuIENhdGVnb3JpY2FsRG9tYWluO1xufSgpKTtcbmV4cG9ydHMuQ2F0ZWdvcmljYWxEb21haW4gPSBDYXRlZ29yaWNhbERvbWFpbjtcbnZhciBSYW5nZURvbWFpbiA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gUmFuZ2VEb21haW4oX21pbiwgX21heCwgX2RvbWFpblR5cGUpIHtcbiAgICAgICAgdGhpcy5fbWluID0gX21pbjtcbiAgICAgICAgdGhpcy5fbWF4ID0gX21heDtcbiAgICAgICAgdGhpcy5fZG9tYWluVHlwZSA9IF9kb21haW5UeXBlO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUmFuZ2VEb21haW4ucHJvdG90eXBlLCBcInR5cGVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kb21haW5UeXBlO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUmFuZ2VEb21haW4ucHJvdG90eXBlLCBcIm1pblwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21pbjtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFJhbmdlRG9tYWluLnByb3RvdHlwZSwgXCJtYXhcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9tYXg7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIHJldHVybiBSYW5nZURvbWFpbjtcbn0oKSk7XG5leHBvcnRzLlJhbmdlRG9tYWluID0gUmFuZ2VEb21haW47XG4vLyMgc291cmNlTWFwcGluZ1VSTD1GaWx0ZXJNb2RlbHMuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL01vZGVscy9GaWx0ZXJNb2RlbHMuanNcbiAqKiBtb2R1bGUgaWQgPSAzMlxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgU2VydmljZVJlZ2lzdHJ5SW1wbCA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gU2VydmljZVJlZ2lzdHJ5SW1wbCgpIHtcbiAgICAgICAgdGhpcy5fc2VydmljZXMgPSB7fTtcbiAgICB9XG4gICAgU2VydmljZVJlZ2lzdHJ5SW1wbC5wcm90b3R5cGUucmVnaXN0ZXJTZXJ2aWNlID0gZnVuY3Rpb24gKHNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5fc2VydmljZXNbc2VydmljZS5zZXJ2aWNlTmFtZV0gPSBzZXJ2aWNlO1xuICAgIH07XG4gICAgU2VydmljZVJlZ2lzdHJ5SW1wbC5wcm90b3R5cGUuZ2V0U2VydmljZSA9IGZ1bmN0aW9uIChzZXJ2aWNlTmFtZSkge1xuICAgICAgICBpZiAoIXRoaXMuX3NlcnZpY2VzLmhhc093blByb3BlcnR5KHNlcnZpY2VOYW1lKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTm8gU2VydmljZSBcIiArIHNlcnZpY2VOYW1lICsgXCIgaXMgcmVnaXN0ZXJlZFwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fc2VydmljZXNbc2VydmljZU5hbWVdO1xuICAgIH07XG4gICAgcmV0dXJuIFNlcnZpY2VSZWdpc3RyeUltcGw7XG59KCkpO1xuLyoqXG4gKiBzdGF0aWMgY2xhc3MgdXNlZCBmb3IgZ2V0dGluZyBhY2Nlc3MgdG8gdGhlIHNpbmdsZSBpbnN0YW5jZVxuICogb2YgdGhlIEFwaVNlcnZpY2VSZWdpc3RyeVxuICovXG52YXIgQXBpU2VydmljZVJlZ2lzdHJ5ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvLyBQcml2YXRlIHRvIGF2b2lkIGFueW9uZSBjb25zdHJ1Y3RpbmcgdGhpc1xuICAgIGZ1bmN0aW9uIEFwaVNlcnZpY2VSZWdpc3RyeSgpIHtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFwaVNlcnZpY2VSZWdpc3RyeSwgXCJpbnN0YW5jZVwiLCB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBHZXRzIHRoZSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhlIFNlcnZpY2VSZWdpc3RyeVxuICAgICAgICAgKi9cbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoIXdpbmRvdy5fX3RhYmxlYXVBcGlTZXJ2aWNlUmVnaXN0cnkpIHtcbiAgICAgICAgICAgICAgICBBcGlTZXJ2aWNlUmVnaXN0cnkuc2V0SW5zdGFuY2UobmV3IFNlcnZpY2VSZWdpc3RyeUltcGwoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXdpbmRvdy5fX3RhYmxlYXVBcGlTZXJ2aWNlUmVnaXN0cnkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Fzc2lnbmluZyBzZXJ2aWNlIHJlZ2lzdHJ5IGZhaWxlZCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5fX3RhYmxlYXVBcGlTZXJ2aWNlUmVnaXN0cnk7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIC8qKlxuICAgICAqIEhlbHBlciBtZXRob2QgdG8gb3ZlcnJpZGUgdGhlIHJlZ2lzdHJ5IGluc3RhbmNlLiBDYW4gYmUgdXNlZCBieSB1bml0IHRlc3RzXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1NlcnZpY2VSZWdpc3RyeX0gc2VydmljZVJlZ2lzdHJ5IFRoZSBuZXcgcmVnaXN0cnlcbiAgICAgKi9cbiAgICBBcGlTZXJ2aWNlUmVnaXN0cnkuc2V0SW5zdGFuY2UgPSBmdW5jdGlvbiAoc2VydmljZVJlZ2lzdHJ5KSB7XG4gICAgICAgIHdpbmRvdy5fX3RhYmxlYXVBcGlTZXJ2aWNlUmVnaXN0cnkgPSBzZXJ2aWNlUmVnaXN0cnk7XG4gICAgfTtcbiAgICByZXR1cm4gQXBpU2VydmljZVJlZ2lzdHJ5O1xufSgpKTtcbmV4cG9ydHMuQXBpU2VydmljZVJlZ2lzdHJ5ID0gQXBpU2VydmljZVJlZ2lzdHJ5O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2VydmljZVJlZ2lzdHJ5LmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9TZXJ2aWNlcy9TZXJ2aWNlUmVnaXN0cnkuanNcbiAqKiBtb2R1bGUgaWQgPSAzM1xuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgQ29udHJhY3QgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0XCIpO1xudmFyIGFwaV9pbnRlcm5hbF9jb250cmFjdF8xID0gcmVxdWlyZShcIkB0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdFwiKTtcbnZhciBHZXREYXRhTW9kZWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vTW9kZWxzL0dldERhdGFNb2RlbHNcIik7XG52YXIgR2V0RGF0YVNlcnZpY2VfMSA9IHJlcXVpcmUoXCIuLi9HZXREYXRhU2VydmljZVwiKTtcbnZhciBHZXREYXRhU2VydmljZUltcGwgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEdldERhdGFTZXJ2aWNlSW1wbChkaXNwYXRjaGVyKSB7XG4gICAgICAgIHRoaXMuX2Rpc3BhdGNoZXIgPSBkaXNwYXRjaGVyO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoR2V0RGF0YVNlcnZpY2VJbXBsLnByb3RvdHlwZSwgXCJzZXJ2aWNlTmFtZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIFwiZ2V0LWRhdGEtc2VydmljZVwiIC8qIEdldERhdGEgKi87XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIEdldERhdGFTZXJ2aWNlSW1wbC5wcm90b3R5cGUuZ2V0VW5kZXJseWluZ0RhdGFBc3luYyA9IGZ1bmN0aW9uICh2aXN1YWxJZCwgZ2V0VHlwZSwgaWdub3JlQWxpYXNlcywgaWdub3JlU2VsZWN0aW9uLCBpbmNsdWRlQWxsQ29sdW1ucywgbWF4Um93cykge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICAvLyBDcmVhdGUgYWxsIG9mIG91ciBwYXJhbWV0ZXJzXG4gICAgICAgIHZhciB2ZXJiID0gZ2V0VHlwZSA9PT0gR2V0RGF0YVNlcnZpY2VfMS5HZXREYXRhVHlwZS5TdW1tYXJ5ID8gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuVmVyYklkLkdldERhdGFTdW1tYXJ5RGF0YSA6IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlZlcmJJZC5HZXRVbmRlcmx5aW5nRGF0YTtcbiAgICAgICAgdmFyIHBhcmFtZXRlcnMgPSB7fTtcbiAgICAgICAgcGFyYW1ldGVyc1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5WaXN1YWxJZF0gPSB2aXN1YWxJZDtcbiAgICAgICAgcGFyYW1ldGVyc1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5JZ25vcmVBbGlhc2VzXSA9IGlnbm9yZUFsaWFzZXM7XG4gICAgICAgIHBhcmFtZXRlcnNbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuSWdub3JlU2VsZWN0aW9uXSA9IGlnbm9yZVNlbGVjdGlvbjtcbiAgICAgICAgcGFyYW1ldGVyc1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5JbmNsdWRlQWxsQ29sdW1uc10gPSBpbmNsdWRlQWxsQ29sdW1ucztcbiAgICAgICAgcGFyYW1ldGVyc1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5NYXhSb3dzXSA9IG1heFJvd3M7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUodmVyYiwgcGFyYW1ldGVycykudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHZhciByZXNwb25zZURhdGEgPSByZXNwb25zZS5yZXN1bHQ7XG4gICAgICAgICAgICByZXR1cm4gX3RoaXMucHJvY2Vzc1Jlc3VsdHNUYWJsZShyZXNwb25zZURhdGEuZGF0YSwgcmVzcG9uc2VEYXRhLmlzU3VtbWFyeSk7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgR2V0RGF0YVNlcnZpY2VJbXBsLnByb3RvdHlwZS5nZXRTZWxlY3RlZE1hcmtzQXN5bmMgPSBmdW5jdGlvbiAodmlzdWFsSWQpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIHBhcmFtZXRlcnMgPSAoX2EgPSB7fSwgX2FbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuVmlzdWFsSWRdID0gdmlzdWFsSWQsIF9hKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc3BhdGNoZXIuZXhlY3V0ZShhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5WZXJiSWQuR2V0U2VsZWN0ZWRNYXJrcywgcGFyYW1ldGVycykudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHZhciByZXNwb25zZURhdGEgPSByZXNwb25zZS5yZXN1bHQ7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGRhdGE6IHJlc3BvbnNlRGF0YS5kYXRhLm1hcChmdW5jdGlvbiAodGFibGUpIHsgcmV0dXJuIF90aGlzLnByb2Nlc3NSZXN1bHRzVGFibGUodGFibGUsIHRydWUpOyB9KVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBfYTtcbiAgICB9O1xuICAgIEdldERhdGFTZXJ2aWNlSW1wbC5wcm90b3R5cGUuZ2V0SGlnaGxpZ2h0ZWRNYXJrc0FzeW5jID0gZnVuY3Rpb24gKHZpc3VhbElkKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBwYXJhbWV0ZXJzID0gKF9hID0ge30sIF9hW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLlZpc3VhbElkXSA9IHZpc3VhbElkLCBfYSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUoYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuVmVyYklkLkdldEhpZ2hsaWdodGVkTWFya3MsIHBhcmFtZXRlcnMpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICB2YXIgcmVzcG9uc2VEYXRhID0gcmVzcG9uc2UucmVzdWx0O1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBkYXRhOiByZXNwb25zZURhdGEuZGF0YS5tYXAoZnVuY3Rpb24gKHRhYmxlKSB7IHJldHVybiBfdGhpcy5wcm9jZXNzUmVzdWx0c1RhYmxlKHRhYmxlLCB0cnVlKTsgfSlcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgX2E7XG4gICAgfTtcbiAgICBHZXREYXRhU2VydmljZUltcGwucHJvdG90eXBlLmdldERhdGFTb3VyY2VEYXRhQXN5bmMgPSBmdW5jdGlvbiAoZGF0YVNvdXJjZUlkLCBpZ25vcmVBbGlhc2VzLCBtYXhSb3dzLCBjb2x1bW5zVG9JbmNsdWRlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBwYXJhbWV0ZXJzID0gKF9hID0ge30sXG4gICAgICAgICAgICBfYVthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5EYXRhU291cmNlSWRdID0gZGF0YVNvdXJjZUlkLFxuICAgICAgICAgICAgX2FbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuSWdub3JlQWxpYXNlc10gPSBpZ25vcmVBbGlhc2VzLFxuICAgICAgICAgICAgX2FbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuTWF4Um93c10gPSBtYXhSb3dzLFxuICAgICAgICAgICAgX2FbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuQ29sdW1uc1RvSW5jbHVkZV0gPSBjb2x1bW5zVG9JbmNsdWRlLFxuICAgICAgICAgICAgX2EpO1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGF0Y2hlci5leGVjdXRlKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlZlcmJJZC5HZXREYXRhU291cmNlRGF0YSwgcGFyYW1ldGVycykudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHZhciByZXNwb25zZURhdGEgPSByZXNwb25zZS5yZXN1bHQ7XG4gICAgICAgICAgICByZXR1cm4gX3RoaXMucHJvY2Vzc1Jlc3VsdHNUYWJsZShyZXNwb25zZURhdGEuZGF0YSwgZmFsc2UpO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIF9hO1xuICAgIH07XG4gICAgR2V0RGF0YVNlcnZpY2VJbXBsLnByb3RvdHlwZS5wcm9jZXNzUmVzdWx0c1RhYmxlID0gZnVuY3Rpb24gKHJlc3BvbnNlRGF0YSwgaXNTdW1tYXJ5KSB7XG4gICAgICAgIHZhciBoZWFkZXJzID0gcmVzcG9uc2VEYXRhLmhlYWRlcnMubWFwKGZ1bmN0aW9uIChoKSB7IHJldHVybiBuZXcgR2V0RGF0YU1vZGVsc18xLkNvbHVtbihoLmZpZWxkQ2FwdGlvbiwgQ29udHJhY3QuRGF0YVR5cGUuU3RyaW5nIC8qaC5EYXRhVHlwZSovLCBoLmlzUmVmZXJlbmNlZCwgaC5pbmRleCk7IH0pO1xuICAgICAgICAvLyBUT0RPIFRoaXMgc2hvdWxkIGJlIGNvbnRyb2xsZWQgYnkgYSBmbGFnIGluZGljYXRpbmcgd2hldGhlciB0aGlzIGFwaSB3aWxsIHJlc3BvbmQgbWFya3MgaW5mbyBvciBub3RcbiAgICAgICAgdmFyIG1hcmtzO1xuICAgICAgICBpZiAocmVzcG9uc2VEYXRhLm1hcmtzKSB7XG4gICAgICAgICAgICBtYXJrcyA9IHJlc3BvbnNlRGF0YS5tYXJrcy5tYXAoZnVuY3Rpb24gKGgpIHsgcmV0dXJuIG5ldyBHZXREYXRhTW9kZWxzXzEuTWFya0luZm8oaC50eXBlLCBoLmNvbG9yLCBoLnR1cGxlSWQpOyB9KTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdGFibGUgPSByZXNwb25zZURhdGEuZGF0YVRhYmxlLm1hcChmdW5jdGlvbiAocm93KSB7XG4gICAgICAgICAgICByZXR1cm4gcm93Lm1hcChmdW5jdGlvbiAoY2VsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgR2V0RGF0YU1vZGVsc18xLkRhdGFWYWx1ZShjZWxsLnZhbHVlLCBjZWxsLmZvcm1hdHRlZFZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKG1hcmtzKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEdldERhdGFNb2RlbHNfMS5EYXRhVGFibGUodGFibGUsIGhlYWRlcnMsIHRhYmxlLmxlbmd0aCwgaXNTdW1tYXJ5LCBtYXJrcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBHZXREYXRhTW9kZWxzXzEuRGF0YVRhYmxlKHRhYmxlLCBoZWFkZXJzLCB0YWJsZS5sZW5ndGgsIGlzU3VtbWFyeSk7XG4gICAgfTtcbiAgICByZXR1cm4gR2V0RGF0YVNlcnZpY2VJbXBsO1xufSgpKTtcbmV4cG9ydHMuR2V0RGF0YVNlcnZpY2VJbXBsID0gR2V0RGF0YVNlcnZpY2VJbXBsO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9R2V0RGF0YVNlcnZpY2VJbXBsLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9TZXJ2aWNlcy9pbXBsL0dldERhdGFTZXJ2aWNlSW1wbC5qc1xuICoqIG1vZHVsZSBpZCA9IDM0XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBSZWdpc3RyYXRpb24gPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFJlZ2lzdHJhdGlvbihfZmlsdGVyRm4sIF9jYWxsYmFja0ZuKSB7XG4gICAgICAgIHRoaXMuX2ZpbHRlckZuID0gX2ZpbHRlckZuO1xuICAgICAgICB0aGlzLl9jYWxsYmFja0ZuID0gX2NhbGxiYWNrRm47XG4gICAgICAgIC8vIE5vdGhpbmcgSGVyZVxuICAgIH1cbiAgICBSZWdpc3RyYXRpb24ucHJvdG90eXBlLm9uTm90aWZpY2F0aW9uID0gZnVuY3Rpb24gKG5vdGlmaWNhdGlvbk1vZGVsKSB7XG4gICAgICAgIGlmICh0aGlzLl9maWx0ZXJGbihub3RpZmljYXRpb25Nb2RlbCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2NhbGxiYWNrRm4obm90aWZpY2F0aW9uTW9kZWwpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4gUmVnaXN0cmF0aW9uO1xufSgpKTtcbnZhciBOb3RpZmljYXRpb25TZXJ2aWNlSW1wbCA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gTm90aWZpY2F0aW9uU2VydmljZUltcGwoZGlzcGF0Y2hlcikge1xuICAgICAgICB0aGlzLmRpc3BhdGNoZXIgPSBkaXNwYXRjaGVyO1xuICAgICAgICB0aGlzLl9oYW5kbGVycyA9IHt9O1xuICAgICAgICB0aGlzLmRpc3BhdGNoZXIucmVnaXN0ZXJOb3RpZmljYXRpb25IYW5kbGVyKHRoaXMub25Ob3RpZmljYXRpb24uYmluZCh0aGlzKSk7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShOb3RpZmljYXRpb25TZXJ2aWNlSW1wbC5wcm90b3R5cGUsIFwic2VydmljZU5hbWVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBcIm5vdGlmaWNhdGlvbi1zZXJ2aWNlXCIgLyogTm90aWZpY2F0aW9uICovO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBOb3RpZmljYXRpb25TZXJ2aWNlSW1wbC5wcm90b3R5cGUucmVnaXN0ZXJIYW5kbGVyID0gZnVuY3Rpb24gKGlkLCBmaWx0ZXJGbiwgaGFuZGxlcikge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgaGFuZGxlcnMgPSB0aGlzLl9oYW5kbGVyc1tpZF0gfHwgbmV3IEFycmF5KCk7XG4gICAgICAgIHZhciByZWdpc3RyYXRpb24gPSBuZXcgUmVnaXN0cmF0aW9uKGZpbHRlckZuLCBoYW5kbGVyKTtcbiAgICAgICAgaGFuZGxlcnMucHVzaChyZWdpc3RyYXRpb24pO1xuICAgICAgICB0aGlzLl9oYW5kbGVyc1tpZF0gPSBoYW5kbGVycztcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHsgcmV0dXJuIF90aGlzLnJlbW92ZVJlZ2lzdHJhdGlvbihpZCwgcmVnaXN0cmF0aW9uKTsgfTtcbiAgICB9O1xuICAgIE5vdGlmaWNhdGlvblNlcnZpY2VJbXBsLnByb3RvdHlwZS5oYXNIYW5kbGVyc0Zvck5vdGlmaWNhdGlvblR5cGUgPSBmdW5jdGlvbiAoaWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhbmRsZXJzLmhhc093blByb3BlcnR5KGlkKTtcbiAgICB9O1xuICAgIE5vdGlmaWNhdGlvblNlcnZpY2VJbXBsLnByb3RvdHlwZS5vbk5vdGlmaWNhdGlvbiA9IGZ1bmN0aW9uIChub3RpZmljYXRpb24pIHtcbiAgICAgICAgaWYgKCF0aGlzLmhhc0hhbmRsZXJzRm9yTm90aWZpY2F0aW9uVHlwZShub3RpZmljYXRpb24ubm90aWZpY2F0aW9uSWQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gR28gdGhyb3VnaCBhbmQgY2hlY2sgZm9yIGFsbCB0aGUgaGFuZGxlcnMgb2YgdGhpcyBwYXJ0aWN1bGFyIG5vdGlmaWNhdGlvblxuICAgICAgICB0aGlzLl9oYW5kbGVyc1tub3RpZmljYXRpb24ubm90aWZpY2F0aW9uSWRdLmZvckVhY2goZnVuY3Rpb24gKGgpIHsgcmV0dXJuIGgub25Ob3RpZmljYXRpb24obm90aWZpY2F0aW9uLmRhdGEpOyB9KTtcbiAgICB9O1xuICAgIE5vdGlmaWNhdGlvblNlcnZpY2VJbXBsLnByb3RvdHlwZS5yZW1vdmVSZWdpc3RyYXRpb24gPSBmdW5jdGlvbiAoaWQsIHJlZ2lzdHJhdGlvbikge1xuICAgICAgICBpZiAoIXRoaXMuaGFzSGFuZGxlcnNGb3JOb3RpZmljYXRpb25UeXBlKGlkKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2hhbmRsZXJzW2lkXSA9IHRoaXMuX2hhbmRsZXJzW2lkXS5maWx0ZXIoZnVuY3Rpb24gKHJlZykgeyByZXR1cm4gcmVnICE9PSByZWdpc3RyYXRpb247IH0pO1xuICAgIH07XG4gICAgcmV0dXJuIE5vdGlmaWNhdGlvblNlcnZpY2VJbXBsO1xufSgpKTtcbmV4cG9ydHMuTm90aWZpY2F0aW9uU2VydmljZUltcGwgPSBOb3RpZmljYXRpb25TZXJ2aWNlSW1wbDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU5vdGlmaWNhdGlvblNlcnZpY2VJbXBsLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9TZXJ2aWNlcy9pbXBsL05vdGlmaWNhdGlvblNlcnZpY2VJbXBsLmpzXG4gKiogbW9kdWxlIGlkID0gMzVcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIGFwaV9pbnRlcm5hbF9jb250cmFjdF8xID0gcmVxdWlyZShcIkB0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdFwiKTtcbnZhciBQYXJhbWV0ZXJJbXBsXzEgPSByZXF1aXJlKFwiLi4vLi4vSW50ZXJuYWwvUGFyYW1ldGVySW1wbFwiKTtcbnZhciBQYXJhbWV0ZXJfMSA9IHJlcXVpcmUoXCIuLi8uLi9QYXJhbWV0ZXJcIik7XG52YXIgUGFyYW1ldGVyc1NlcnZpY2VJbXBsID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBQYXJhbWV0ZXJzU2VydmljZUltcGwoZGlzcGF0Y2hlcikge1xuICAgICAgICB0aGlzLmRpc3BhdGNoZXIgPSBkaXNwYXRjaGVyO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUGFyYW1ldGVyc1NlcnZpY2VJbXBsLnByb3RvdHlwZSwgXCJzZXJ2aWNlTmFtZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIFwicGFyYW1ldGVycy1zZXJ2aWNlXCIgLyogUGFyYW1ldGVycyAqLztcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgUGFyYW1ldGVyc1NlcnZpY2VJbXBsLnByb3RvdHlwZS5nZXRQYXJhbWV0ZXJzRm9yU2hlZXRBc3luYyA9IGZ1bmN0aW9uIChzaGVldFBhdGgsIHNoZWV0KSB7XG4gICAgICAgIHZhciBwYXJhbWV0ZXJzID0gKF9hID0ge30sXG4gICAgICAgICAgICBfYVthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5TaGVldFBhdGhdID0gc2hlZXRQYXRoLFxuICAgICAgICAgICAgX2EpO1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaGVyLmV4ZWN1dGUoYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuVmVyYklkLkdldFBhcmFtZXRlcnNGb3JTaGVldCwgcGFyYW1ldGVycykudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIC8vIFRPRE8gLSBDaGVjayBmb3IgZXJyb3JcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSByZXNwb25zZS5yZXN1bHQ7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0Lm1hcChmdW5jdGlvbiAocGFyYW1ldGVySW5mbykge1xuICAgICAgICAgICAgICAgIHZhciBpbXBsID0gbmV3IFBhcmFtZXRlckltcGxfMS5QYXJhbWV0ZXJJbXBsKHBhcmFtZXRlckluZm8pO1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUGFyYW1ldGVyXzEuUGFyYW1ldGVyKGltcGwsIHNoZWV0KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIF9hO1xuICAgIH07XG4gICAgUGFyYW1ldGVyc1NlcnZpY2VJbXBsLnByb3RvdHlwZS5jaGFuZ2VQYXJhbWV0ZXJWYWx1ZUFzeW5jID0gZnVuY3Rpb24gKGZpZWxkTmFtZSwgbmV3VmFsdWUpIHtcbiAgICAgICAgdmFyIHBhcmFtZXRlcnMgPSAoX2EgPSB7fSxcbiAgICAgICAgICAgIF9hW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLlBhcmFtZXRlckZpZWxkTmFtZV0gPSBmaWVsZE5hbWUsXG4gICAgICAgICAgICBfYVthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5QYXJhbWV0ZXJWYWx1ZV0gPSBuZXdWYWx1ZSxcbiAgICAgICAgICAgIF9hKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hlci5leGVjdXRlKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlZlcmJJZC5DaGFuZ2VQYXJhbWV0ZXJWYWx1ZSwgcGFyYW1ldGVycykudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSByZXNwb25zZS5yZXN1bHQ7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIF9hO1xuICAgIH07XG4gICAgUGFyYW1ldGVyc1NlcnZpY2VJbXBsLnByb3RvdHlwZS5maW5kUGFyYW1ldGVyQnlOYW1lQXN5bmMgPSBmdW5jdGlvbiAobmFtZSwgc2hlZXQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluZFBhcmFtZXRlckFzeW5jKHNoZWV0LCBuYW1lLCB1bmRlZmluZWQpO1xuICAgIH07XG4gICAgUGFyYW1ldGVyc1NlcnZpY2VJbXBsLnByb3RvdHlwZS5maW5kUGFyYW1ldGVyQnlHbG9iYWxGaWVsZE5hbWVBc3luYyA9IGZ1bmN0aW9uIChmaWVsZE5hbWUsIHNoZWV0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbmRQYXJhbWV0ZXJBc3luYyhzaGVldCwgdW5kZWZpbmVkLCBmaWVsZE5hbWUpO1xuICAgIH07XG4gICAgUGFyYW1ldGVyc1NlcnZpY2VJbXBsLnByb3RvdHlwZS5maW5kUGFyYW1ldGVyQXN5bmMgPSBmdW5jdGlvbiAoc2hlZXQsIG5hbWUsIGZpZWxkTmFtZSkge1xuICAgICAgICB2YXIgcGFyYW1ldGVycyA9IHt9O1xuICAgICAgICBpZiAobmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJzW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLlBhcmFtZXRlckNhcHRpb25dID0gbmFtZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChmaWVsZE5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcGFyYW1ldGVyc1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5QYXJhbWV0ZXJGaWVsZE5hbWVdID0gZmllbGROYW1lO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHJlcXVpcmUgZmllbGQgbmFtZSBvciBjYXB0aW9uJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hlci5leGVjdXRlKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlZlcmJJZC5GaW5kUGFyYW1ldGVyLCBwYXJhbWV0ZXJzKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgdmFyIGluc3RhbmNlT2ZQYXJhbWV0ZXJJbmZvID0gZnVuY3Rpb24gKG9iamVjdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZmllbGROYW1lJyBpbiBvYmplY3Q7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBjaGVjayB0byBzZWUgaWYgd2UgZ290IGEgdmFsaWQgcmVzcG9uc2UgYmFjayBhZ2FpblxuICAgICAgICAgICAgaWYgKGluc3RhbmNlT2ZQYXJhbWV0ZXJJbmZvKHJlc3BvbnNlLnJlc3VsdCkpIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gcmVzcG9uc2UucmVzdWx0O1xuICAgICAgICAgICAgICAgIHZhciBpbXBsID0gbmV3IFBhcmFtZXRlckltcGxfMS5QYXJhbWV0ZXJJbXBsKHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQYXJhbWV0ZXJfMS5QYXJhbWV0ZXIoaW1wbCwgc2hlZXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICByZXR1cm4gUGFyYW1ldGVyc1NlcnZpY2VJbXBsO1xufSgpKTtcbmV4cG9ydHMuUGFyYW1ldGVyc1NlcnZpY2VJbXBsID0gUGFyYW1ldGVyc1NlcnZpY2VJbXBsO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9UGFyYW1ldGVyc1NlcnZpY2VJbXBsLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9TZXJ2aWNlcy9pbXBsL1BhcmFtZXRlcnNTZXJ2aWNlSW1wbC5qc1xuICoqIG1vZHVsZSBpZCA9IDM2XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBDb250cmFjdCA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3RcIik7XG52YXIgYXBpX2ludGVybmFsX2NvbnRyYWN0XzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0XCIpO1xudmFyIGFwaV91dGlsc18xID0gcmVxdWlyZShcIkB0YWJsZWF1L2FwaS11dGlsc1wiKTtcbnZhciBJbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3NfMSA9IHJlcXVpcmUoXCIuLi9FbnVtTWFwcGluZ3MvSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzXCIpO1xudmFyIFBhcmFtZXRlckNoYW5nZWRFdmVudF8xID0gcmVxdWlyZShcIi4uL0V2ZW50cy9QYXJhbWV0ZXJDaGFuZ2VkRXZlbnRcIik7XG52YXIgR2V0RGF0YU1vZGVsc18xID0gcmVxdWlyZShcIi4uL01vZGVscy9HZXREYXRhTW9kZWxzXCIpO1xudmFyIFNlcnZpY2VSZWdpc3RyeV8xID0gcmVxdWlyZShcIi4uL1NlcnZpY2VzL1NlcnZpY2VSZWdpc3RyeVwiKTtcbnZhciBTaW5nbGVFdmVudE1hbmFnZXJJbXBsXzEgPSByZXF1aXJlKFwiLi9TaW5nbGVFdmVudE1hbmFnZXJJbXBsXCIpO1xudmFyIFBhcmFtZXRlckltcGwgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFBhcmFtZXRlckltcGwocGFyYW1ldGVySW5mbykge1xuICAgICAgICB0aGlzLnNldFBhcmFtZXRlckluZm8ocGFyYW1ldGVySW5mbyk7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShQYXJhbWV0ZXJJbXBsLnByb3RvdHlwZSwgXCJuYW1lXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcGFyYW1ldGVySW5mby5uYW1lO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUGFyYW1ldGVySW1wbC5wcm90b3R5cGUsIFwiY3VycmVudFZhbHVlXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEdldERhdGFNb2RlbHNfMS5EYXRhVmFsdWUodGhpcy5fcGFyYW1ldGVySW5mby5jdXJyZW50VmFsdWUudmFsdWUsIHRoaXMuX3BhcmFtZXRlckluZm8uY3VycmVudFZhbHVlLmZvcm1hdHRlZFZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFBhcmFtZXRlckltcGwucHJvdG90eXBlLCBcImRhdGFUeXBlXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzXzEuSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmRhdGFUeXBlLmNvbnZlcnQodGhpcy5fcGFyYW1ldGVySW5mby5kYXRhVHlwZSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShQYXJhbWV0ZXJJbXBsLnByb3RvdHlwZSwgXCJhbGxvd2FibGVWYWx1ZXNcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9hbGxvd2FibGVWYWx1ZXM7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIFBhcmFtZXRlckltcGwucHJvdG90eXBlLmNoYW5nZVZhbHVlQXN5bmMgPSBmdW5jdGlvbiAobmV3VmFsdWUpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIGNvZXJjZWRWYWx1ZSA9IGFwaV91dGlsc18xLlBhcmFtLnNlcmlhbGl6ZVBhcmFtdGVyVmFsdWUobmV3VmFsdWUpO1xuICAgICAgICB2YXIgcGFyYW1ldGVyc1NlcnZpY2UgPSBTZXJ2aWNlUmVnaXN0cnlfMS5BcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZShcInBhcmFtZXRlcnMtc2VydmljZVwiIC8qIFBhcmFtZXRlcnMgKi8pO1xuICAgICAgICByZXR1cm4gcGFyYW1ldGVyc1NlcnZpY2UuY2hhbmdlUGFyYW1ldGVyVmFsdWVBc3luYyh0aGlzLl9nbG9iYWxGaWVsZE5hbWUsIGNvZXJjZWRWYWx1ZSkudGhlbihmdW5jdGlvbiAocGFyYW1ldGVySW5mbykge1xuICAgICAgICAgICAgX3RoaXMuc2V0UGFyYW1ldGVySW5mbyhwYXJhbWV0ZXJJbmZvKTtcbiAgICAgICAgICAgIHJldHVybiBfdGhpcy5jdXJyZW50VmFsdWU7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogSGVscGVyIG1ldGhvZCB3aGljaCBnb2VzIHRocm91Z2ggYW5kIHJlZ2lzdGVycyBlYWNoIGV2ZW50IHR5cGUgdGhpcyBpbXBsIGtub3dzIGFib3V0XG4gICAgICogd2l0aCB0aGUgTm90aWZpY2F0aW9uU2VydmljZS4gSXQgcmV0dXJucyBhbiBhcnJheSBvZiBTaW5nbGVFdmVudE1hbmFnZXIgb2JqZWN0cyB3aGljaFxuICAgICAqIGNhbiB0aGVuIGJlIHBhc3NlZCB0byBhbiBFdmVudExpc3RlbmVyTWFuYWdlciB0byBoYW5kbGUgdXNlciByZWdpc3RyYXRpb24gLyB1bnJlZ2lzdHJhdGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzaGVldCBUaGUgc2hlZXQgb2JqZWN0IHdoaWNoIHdpbGwgYmUgaW5jbHVkZWQgd2l0aCB0aGUgZXZlbnQgbm90aWZpY2F0aW9uc1xuICAgICAqIEByZXR1cm5zIHtBcnJheTxTaW5nbGVFdmVudE1hbmFnZXI+fSBDb2xsZWN0aW9uIG9mIGV2ZW50IG1hbmFnZXJzIHRvIHBhc3MgdG8gYW4gRXZlbnRMaXN0ZW5lck1hbmFnZXJcbiAgICAgKi9cbiAgICBQYXJhbWV0ZXJJbXBsLnByb3RvdHlwZS5pbml0aWFsaXplRXZlbnRzID0gZnVuY3Rpb24gKHNoZWV0KSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciByZXN1bHRzID0gbmV3IEFycmF5KCk7XG4gICAgICAgIHZhciBub3RpZmljYXRpb25TZXJ2aWNlO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbm90aWZpY2F0aW9uU2VydmljZSA9IFNlcnZpY2VSZWdpc3RyeV8xLkFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlKFwibm90aWZpY2F0aW9uLXNlcnZpY2VcIiAvKiBOb3RpZmljYXRpb24gKi8pO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIHRoaXMgc2VydmljZSByZWdpc3RlcmVkLCBqdXN0IHJldHVyblxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSW5pdGlhbGl6ZSBhbGwgb2YgdGhlIGV2ZW50IG1hbmFnZXJzIHdlJ2xsIG5lZWQgKG9uZSBmb3IgZWFjaCBldmVudCB0eXBlKVxuICAgICAgICB2YXIgcGFyYW1ldGVyRXZlbnQgPSBuZXcgU2luZ2xlRXZlbnRNYW5hZ2VySW1wbF8xLlNpbmdsZUV2ZW50TWFuYWdlckltcGwoQ29udHJhY3QuVGFibGVhdUV2ZW50VHlwZS5QYXJhbWV0ZXJDaGFuZ2VkKTtcbiAgICAgICAgbm90aWZpY2F0aW9uU2VydmljZS5yZWdpc3RlckhhbmRsZXIoYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuTm90aWZpY2F0aW9uSWQuUGFyYW1ldGVyQ2hhbmdlZCwgZnVuY3Rpb24gKG1vZGVsKSB7XG4gICAgICAgICAgICB2YXIgZmllbGROYW1lID0gbW9kZWw7XG4gICAgICAgICAgICByZXR1cm4gZmllbGROYW1lID09PSBfdGhpcy5fZ2xvYmFsRmllbGROYW1lO1xuICAgICAgICB9LCBmdW5jdGlvbiAoZmllbGROYW1lKSB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJFdmVudC50cmlnZ2VyRXZlbnQoZnVuY3Rpb24gKCkgeyByZXR1cm4gbmV3IFBhcmFtZXRlckNoYW5nZWRFdmVudF8xLlBhcmFtZXRlckNoYW5nZWRFdmVudChmaWVsZE5hbWUsIHNoZWV0KTsgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXN1bHRzLnB1c2gocGFyYW1ldGVyRXZlbnQpO1xuICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICB9O1xuICAgIFBhcmFtZXRlckltcGwucHJvdG90eXBlLnNldFBhcmFtZXRlckluZm8gPSBmdW5jdGlvbiAocGFyYW1ldGVySW5mbykge1xuICAgICAgICB0aGlzLl9wYXJhbWV0ZXJJbmZvID0gcGFyYW1ldGVySW5mbztcbiAgICAgICAgdGhpcy5fZ2xvYmFsRmllbGROYW1lID0gcGFyYW1ldGVySW5mby5maWVsZE5hbWU7XG4gICAgICAgIHZhciB0eXBlID0gSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzXzEuSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmFsbG93YWJsZVZhbHVlcy5jb252ZXJ0KHBhcmFtZXRlckluZm8uYWxsb3dhYmxlVmFsdWVzVHlwZSk7XG4gICAgICAgIHZhciBsaXN0VmFsdWVzO1xuICAgICAgICB2YXIgbWluVmFsdWU7XG4gICAgICAgIHZhciBtYXhWYWx1ZTtcbiAgICAgICAgdmFyIHN0ZXBTaXplO1xuICAgICAgICB2YXIgZGF0ZVN0ZXBQZXJpb2Q7XG4gICAgICAgIGlmICh0eXBlID09PSBDb250cmFjdC5QYXJhbWV0ZXJWYWx1ZVR5cGUuTGlzdCkge1xuICAgICAgICAgICAgdmFyIHZhbHVlcyA9IHBhcmFtZXRlckluZm8uYWxsb3dhYmxlVmFsdWVzIHx8IFtdO1xuICAgICAgICAgICAgbGlzdFZhbHVlcyA9IHZhbHVlcy5tYXAoZnVuY3Rpb24gKHZhbCkgeyByZXR1cm4gbmV3IEdldERhdGFNb2RlbHNfMS5EYXRhVmFsdWUodmFsLnZhbHVlLCB2YWwuZm9ybWF0dGVkVmFsdWUpOyB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlID09PSBDb250cmFjdC5QYXJhbWV0ZXJWYWx1ZVR5cGUuUmFuZ2UpIHtcbiAgICAgICAgICAgIG1pblZhbHVlID0gcGFyYW1ldGVySW5mby5taW5WYWx1ZSAmJiBuZXcgR2V0RGF0YU1vZGVsc18xLkRhdGFWYWx1ZShwYXJhbWV0ZXJJbmZvLm1pblZhbHVlLnZhbHVlLCBwYXJhbWV0ZXJJbmZvLm1pblZhbHVlLmZvcm1hdHRlZFZhbHVlKTtcbiAgICAgICAgICAgIG1heFZhbHVlID0gcGFyYW1ldGVySW5mby5tYXhWYWx1ZSAmJiBuZXcgR2V0RGF0YU1vZGVsc18xLkRhdGFWYWx1ZShwYXJhbWV0ZXJJbmZvLm1heFZhbHVlLnZhbHVlLCBwYXJhbWV0ZXJJbmZvLm1heFZhbHVlLmZvcm1hdHRlZFZhbHVlKTtcbiAgICAgICAgICAgIHN0ZXBTaXplID0gcGFyYW1ldGVySW5mby5zdGVwU2l6ZTtcbiAgICAgICAgICAgIGRhdGVTdGVwUGVyaW9kID0gcGFyYW1ldGVySW5mby5kYXRlU3RlcFBlcmlvZCAmJlxuICAgICAgICAgICAgICAgIEludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5nc18xLkludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncy5kYXRlU3RlcFBlcmlvZC5jb252ZXJ0KHBhcmFtZXRlckluZm8uZGF0ZVN0ZXBQZXJpb2QpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2FsbG93YWJsZVZhbHVlcyA9IHtcbiAgICAgICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgICAgICBhbGxvd2FibGVWYWx1ZXM6IGxpc3RWYWx1ZXMsXG4gICAgICAgICAgICBtaW5WYWx1ZTogbWluVmFsdWUsXG4gICAgICAgICAgICBtYXhWYWx1ZTogbWF4VmFsdWUsXG4gICAgICAgICAgICBzdGVwU2l6ZTogc3RlcFNpemUsXG4gICAgICAgICAgICBkYXRlU3RlcFBlcmlvZDogZGF0ZVN0ZXBQZXJpb2RcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIHJldHVybiBQYXJhbWV0ZXJJbXBsO1xufSgpKTtcbmV4cG9ydHMuUGFyYW1ldGVySW1wbCA9IFBhcmFtZXRlckltcGw7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1QYXJhbWV0ZXJJbXBsLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9JbnRlcm5hbC9QYXJhbWV0ZXJJbXBsLmpzXG4gKiogbW9kdWxlIGlkID0gMzdcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkge1xuICAgIHZhciBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XG4gICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcbiAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxuICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XG4gICAgfTtcbn0pKCk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgQ29udHJhY3QgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0XCIpO1xudmFyIFNlcnZpY2VSZWdpc3RyeV8xID0gcmVxdWlyZShcIi4uL1NlcnZpY2VzL1NlcnZpY2VSZWdpc3RyeVwiKTtcbnZhciBUYWJsZWF1U2hlZXRFdmVudF8xID0gcmVxdWlyZShcIi4vVGFibGVhdVNoZWV0RXZlbnRcIik7XG52YXIgUGFyYW1ldGVyQ2hhbmdlZEV2ZW50ID0gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoUGFyYW1ldGVyQ2hhbmdlZEV2ZW50LCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFBhcmFtZXRlckNoYW5nZWRFdmVudChfZ2xvYmFsRmllbGROYW1lLCBzaGVldCkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBDb250cmFjdC5UYWJsZWF1RXZlbnRUeXBlLlBhcmFtZXRlckNoYW5nZWQsIHNoZWV0KSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5fZ2xvYmFsRmllbGROYW1lID0gX2dsb2JhbEZpZWxkTmFtZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBQYXJhbWV0ZXJDaGFuZ2VkRXZlbnQucHJvdG90eXBlLmdldFBhcmFtZXRlckFzeW5jID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAvLyBDYWxsIGRvd24gdG8gb3VyIHNlcnZpY2UgdG8gZ2V0IHRoZSBwYXJhbWV0ZXIgYmFjayB2aWEgaXRzIGZpZWxkIG5hbWVcbiAgICAgICAgdmFyIHNlcnZpY2UgPSBTZXJ2aWNlUmVnaXN0cnlfMS5BcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZShcInBhcmFtZXRlcnMtc2VydmljZVwiIC8qIFBhcmFtZXRlcnMgKi8pO1xuICAgICAgICByZXR1cm4gc2VydmljZS5maW5kUGFyYW1ldGVyQnlHbG9iYWxGaWVsZE5hbWVBc3luYyh0aGlzLl9nbG9iYWxGaWVsZE5hbWUsIHRoaXMuc2hlZXQpLnRoZW4oZnVuY3Rpb24gKHBhcmFtZXRlcikge1xuICAgICAgICAgICAgaWYgKHBhcmFtZXRlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gZmluZCBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwYXJhbWV0ZXI7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgcmV0dXJuIFBhcmFtZXRlckNoYW5nZWRFdmVudDtcbn0oVGFibGVhdVNoZWV0RXZlbnRfMS5UYWJsZWF1U2hlZXRFdmVudCkpO1xuZXhwb3J0cy5QYXJhbWV0ZXJDaGFuZ2VkRXZlbnQgPSBQYXJhbWV0ZXJDaGFuZ2VkRXZlbnQ7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1QYXJhbWV0ZXJDaGFuZ2VkRXZlbnQuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL0V2ZW50cy9QYXJhbWV0ZXJDaGFuZ2VkRXZlbnQuanNcbiAqKiBtb2R1bGUgaWQgPSAzOFxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgQ29udHJhY3QgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0XCIpO1xudmFyIGFwaV9pbnRlcm5hbF9jb250cmFjdF8xID0gcmVxdWlyZShcIkB0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdFwiKTtcbnZhciBTZWxlY3Rpb25Nb2RlbHNfMSA9IHJlcXVpcmUoXCIuLi8uLi9Nb2RlbHMvU2VsZWN0aW9uTW9kZWxzXCIpO1xudmFyIFNlbGVjdGlvblNlcnZpY2VJbXBsID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBTZWxlY3Rpb25TZXJ2aWNlSW1wbChkaXNwYXRjaGVyKSB7XG4gICAgICAgIHRoaXMuX2Rpc3BhdGNoZXIgPSBkaXNwYXRjaGVyO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoU2VsZWN0aW9uU2VydmljZUltcGwucHJvdG90eXBlLCBcInNlcnZpY2VOYW1lXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJzZWxlY3Rpb24tc2VydmljZVwiIC8qIFNlbGVjdGlvbiAqLztcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgLyoqXG4gICAgICogTWV0aG9kIHRvIGNsZWFyIGFsbCB0aGUgc2VsZWN0ZWQgbWFya3MgZm9yIHRoZSBnaXZlbiB3b3Jrc2hlZXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmlzdWFsSWRcbiAgICAgKi9cbiAgICBTZWxlY3Rpb25TZXJ2aWNlSW1wbC5wcm90b3R5cGUuY2xlYXJTZWxlY3RlZE1hcmtzQXN5bmMgPSBmdW5jdGlvbiAodmlzdWFsSWQpIHtcbiAgICAgICAgdmFyIHBhcmFtZXRlcnMgPSAoX2EgPSB7fSwgX2FbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuVmlzdWFsSWRdID0gdmlzdWFsSWQsIF9hKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc3BhdGNoZXIuZXhlY3V0ZShhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5WZXJiSWQuQ2xlYXJTZWxlY3RlZE1hcmtzLCBwYXJhbWV0ZXJzKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgcmV0dXJuOyAvLyBFeHBlY3RpbmcgYW4gZW1wdHkgbW9kZWwgYW5kIGhlbmNlIHRoZSB2b2lkIHJlc3BvbnNlLlxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIF9hO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogTWV0aG9kIHRvIHNlbGVjdCBtYXJrcyBmb3IgdGhlIGdpdmVuIHdvcmtzaGVldC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2aXN1YWxJZFxuICAgICAqIEBwYXJhbSBzZWxlY3Rpb25Dcml0ZXJpYVxuICAgICAqIEBwYXJhbSBzZWxlY3Rpb25VcGRhdGVUeXBlXG4gICAgICovXG4gICAgU2VsZWN0aW9uU2VydmljZUltcGwucHJvdG90eXBlLnNlbGVjdE1hcmtzQnlWYWx1ZUFzeW5jID0gZnVuY3Rpb24gKHZpc3VhbElkLCBzZWxlY3Rpb25Dcml0ZXJpYXMsIHNlbGVjdGlvblVwZGF0ZVR5cGUpIHtcbiAgICAgICAgaWYgKHNlbGVjdGlvbkNyaXRlcmlhcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBzZWxlY3Rpb24gY3JpdGVyaWEuIFNlbGVjdGlvbnMgbWlzc2luZy4nKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgc2VsZWN0aW9uVHlwZSA9IHRoaXMudmFsaWRhdGVTZWxlY3Rpb25VcGRhdGVUeXBlKHNlbGVjdGlvblVwZGF0ZVR5cGUpO1xuICAgICAgICB2YXIgc2VsZWN0aW9uQ3JpdGVyaWFUeXBlID0gdGhpcy52YWxpZGF0ZVNlbGVjdGlvbkNyaXRlcmlhKHNlbGVjdGlvbkNyaXRlcmlhc1swXSk7XG4gICAgICAgIHZhciBzZWxlY3Rpb25Nb2RlbENvbnRhaW5lciA9IHRoaXMucGFyc2VTZWxlY3Rpb25NYXJrcyhzZWxlY3Rpb25Dcml0ZXJpYXMsIHNlbGVjdGlvbkNyaXRlcmlhVHlwZSk7XG4gICAgICAgIHZhciBwYXJhbWV0ZXJzID0gKF9hID0ge30sXG4gICAgICAgICAgICBfYVthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5WaXN1YWxJZF0gPSB2aXN1YWxJZCxcbiAgICAgICAgICAgIF9hW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLlNlbGVjdGlvblVwZGF0ZVR5cGVdID0gc2VsZWN0aW9uVHlwZSxcbiAgICAgICAgICAgIF9hKTtcbiAgICAgICAgc3dpdGNoIChzZWxlY3Rpb25Dcml0ZXJpYVR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgU2VsZWN0aW9uQ3JpdGVyaWFUeXBlLkhpZXJhcmNoaWNhbFR5cGU6IHtcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLkhpZXJWYWxTZWxlY3Rpb25Nb2RlbHNdID0gc2VsZWN0aW9uTW9kZWxDb250YWluZXIuaGllck1vZGVsQXJyO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTZWxlY3Rpb25Dcml0ZXJpYVR5cGUuUmFuZ2VUeXBlOiB7XG4gICAgICAgICAgICAgICAgcGFyYW1ldGVyc1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5RdWFudFJhbmdlU2VsZWN0aW9uTW9kZWxzXSA9IHNlbGVjdGlvbk1vZGVsQ29udGFpbmVyLnF1YW50TW9kZWxBcnI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFNlbGVjdGlvbkNyaXRlcmlhVHlwZS5EaW1lbnNpb25UeXBlOiB7XG4gICAgICAgICAgICAgICAgcGFyYW1ldGVyc1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5EaW1WYWxTZWxlY3Rpb25Nb2RlbHNdID0gc2VsZWN0aW9uTW9kZWxDb250YWluZXIuZGltTW9kZWxBcnI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUoYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuVmVyYklkLlNlbGVjdEJ5VmFsdWUsIHBhcmFtZXRlcnMpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICAvLyBFeHBlY3RpbmcgYW4gZW1wdHkgbW9kZWwgYW5kIGhlbmNlIHRoZSB2b2lkIHJlc3BvbnNlLlxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgLy8gVE9ETyBJbnZlc3RpZ2F0ZSB0aGUgZXJyb3IgcmVzcG9uc2Ugd2l0aCBtdWx0aXBsZSBvdXRwdXQgcGFyYW1zIGFuZCB0aHJvdyBlcnJvciBhY2NvcmRpbmdseS5cbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBfYTtcbiAgICB9O1xuICAgIC8qKlxuICAgKiBNZXRob2QgdG8gc2VsZWN0IG1hcmtzIGZvciB0aGUgZ2l2ZW4gd29ya3NoZWV0LlxuICAgKlxuICAgKiBAcGFyYW0gdmlzdWFsSWRcbiAgICogQHBhcmFtIE1hcmtJbmZvXG4gICAqIEBwYXJhbSBzZWxlY3Rpb25VcGRhdGVUeXBlXG4gICAqL1xuICAgIFNlbGVjdGlvblNlcnZpY2VJbXBsLnByb3RvdHlwZS5zZWxlY3RNYXJrc0J5SWRBc3luYyA9IGZ1bmN0aW9uICh2aXN1YWxJZCwgbWFya3MsIHNlbGVjdGlvblVwZGF0ZVR5cGUpIHtcbiAgICAgICAgaWYgKG1hcmtzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHNlbGVjdGlvbi4gTWFya3MgaW5mbyBtaXNzaW5nLicpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBzZWxlY3Rpb25UeXBlID0gdGhpcy52YWxpZGF0ZVNlbGVjdGlvblVwZGF0ZVR5cGUoc2VsZWN0aW9uVXBkYXRlVHlwZSk7XG4gICAgICAgIHZhciBzZWxlY3Rpb25Nb2RlbENvbnRhaW5lciA9IHRoaXMucGFyc2VTZWxlY3Rpb25JZHMobWFya3MpO1xuICAgICAgICB2YXIgcGFyYW1ldGVycyA9IChfYSA9IHt9LFxuICAgICAgICAgICAgX2FbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuVmlzdWFsSWRdID0gdmlzdWFsSWQsXG4gICAgICAgICAgICBfYVthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5TZWxlY3Rpb25VcGRhdGVUeXBlXSA9IHNlbGVjdGlvblR5cGUsXG4gICAgICAgICAgICBfYVthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5TZWxlY3Rpb25dID0gc2VsZWN0aW9uTW9kZWxDb250YWluZXIuc2VsZWN0aW9uLFxuICAgICAgICAgICAgX2EpO1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGF0Y2hlci5leGVjdXRlKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlZlcmJJZC5TZWxlY3RCeVZhbHVlLCBwYXJhbWV0ZXJzKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgLy8gRXhwZWN0aW5nIGFuIGVtcHR5IG1vZGVsIGFuZCBoZW5jZSB0aGUgdm9pZCByZXNwb25zZS5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIC8vIFRPRE8gSW52ZXN0aWdhdGUgdGhlIGVycm9yIHJlc3BvbnNlIHdpdGggbXVsdGlwbGUgb3V0cHV0IHBhcmFtcyBhbmQgdGhyb3cgZXJyb3IgYWNjb3JkaW5nbHkuXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgX2E7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBNZXRob2QgdG8gcHJlcGFyZSB0aGUgcHJlcyBtb2RlbHMgZm9yIHNlbGVjdGlvbiBieSBNYXJrc0luZm9cbiAgICAgKiBAcGFyYW0gbWFya3NcbiAgICAgKi9cbiAgICBTZWxlY3Rpb25TZXJ2aWNlSW1wbC5wcm90b3R5cGUucGFyc2VTZWxlY3Rpb25JZHMgPSBmdW5jdGlvbiAobWFya3MpIHtcbiAgICAgICAgdmFyIGlkcyA9IFtdO1xuICAgICAgICB2YXIgc2VsZWN0aW9uTW9kZWxDb250YWluZXIgPSBuZXcgU2VsZWN0aW9uTW9kZWxzXzEuU2VsZWN0aW9uTW9kZWxzQ29udGFpbmVyKCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWFya3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHZhciB0dXBsZUlkID0gbWFya3NbaV0udHVwbGVJZDtcbiAgICAgICAgICAgIGlmICh0dXBsZUlkICE9PSB1bmRlZmluZWQgJiYgdHVwbGVJZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGlkcy5wdXNoKHR1cGxlSWQudG9TdHJpbmcoKSk7IC8vIGNvbGxlY3QgdGhlIHR1cGxlIGlkc1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHR1cGxlSWQgcHJvdmlkZWQuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlkcy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICAgIHZhciB0dXBsZVNlbGVjdGlvbk1vZGVsID0gbmV3IFNlbGVjdGlvbk1vZGVsc18xLlR1cGxlU2VsZWN0aW9uTW9kZWwoKTtcbiAgICAgICAgICAgIHR1cGxlU2VsZWN0aW9uTW9kZWwuc2VsZWN0aW9uVHlwZSA9ICd0dXBsZXMnO1xuICAgICAgICAgICAgdHVwbGVTZWxlY3Rpb25Nb2RlbC5vYmplY3RJZHMgPSBpZHM7XG4gICAgICAgICAgICBzZWxlY3Rpb25Nb2RlbENvbnRhaW5lci5zZWxlY3Rpb24gPSB0dXBsZVNlbGVjdGlvbk1vZGVsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzZWxlY3Rpb25Nb2RlbENvbnRhaW5lcjtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0byBwcmVwYXJlIHRoZSBwcmVzIG1vZGVscyBmb3Igc2VsZWN0aW9uIGJ5IHZhbHVlcy5cbiAgICAgKlxuICAgICAqIFN1cHBvcnRzIDMgdHlwZXMgZm9yIHNlbGVjdGlvbjpcbiAgICAgKiAxKSBoaWVyYXJjaGljYWwgdmFsdWUgYmFzZWQgc2VsZWN0aW9uXG4gICAgICogMikgcmFuZ2UgdmFsdWUgYmFzZWQgc2VsZWN0aW9uXG4gICAgICogMykgRGltZW5zaW9uIHZhbHVlIGJhc2VkIHNlbGVjdGlvblxuICAgICAqXG4gICAgICogQHBhcmFtIG1hcmtzXG4gICAgICogQHBhcmFtIGhpZXJNb2RlbEFyclxuICAgICAqIEBwYXJhbSBkaW1Nb2RlbEFyclxuICAgICAqIEBwYXJhbSBxdWFudE1vZGVsQXJyXG4gICAgICogQHBhcmFtIHNlbGVjdGlvblxuICAgICAqL1xuICAgIFNlbGVjdGlvblNlcnZpY2VJbXBsLnByb3RvdHlwZS5wYXJzZVNlbGVjdGlvbk1hcmtzID0gZnVuY3Rpb24gKHNlbGVjdGlvbkNyaXRlcmlhcywgc2VsZWN0aW9uVHlwZSkge1xuICAgICAgICB2YXIgc2VsZWN0aW9uTW9kZWxDb250YWluZXIgPSBuZXcgU2VsZWN0aW9uTW9kZWxzXzEuU2VsZWN0aW9uTW9kZWxzQ29udGFpbmVyKCk7XG4gICAgICAgIHZhciBtaXhlZFNlbGVjdGlvbnNFcnJvciA9IGZhbHNlO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbGVjdGlvbkNyaXRlcmlhcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdmFyIHN0ID0gc2VsZWN0aW9uQ3JpdGVyaWFzW2ldO1xuICAgICAgICAgICAgaWYgKHN0LmZpZWxkTmFtZSAmJiAoc3QudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBzdC52YWx1ZSAhPT0gbnVsbCkpIHtcbiAgICAgICAgICAgICAgICB2YXIgY2F0UmVnZXggPSBuZXcgUmVnRXhwKCcoXFxbW0EtWmEtejAtOV0rXSkuKicsICdnJyk7XG4gICAgICAgICAgICAgICAgdmFyIHJhbmdlT3B0aW9uID0gc3QudmFsdWU7XG4gICAgICAgICAgICAgICAgaWYgKGNhdFJlZ2V4LnRlc3Qoc3QuZmllbGROYW1lKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZWN0aW9uVHlwZSA9PT0gU2VsZWN0aW9uQ3JpdGVyaWFUeXBlLkhpZXJhcmNoaWNhbFR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBoaWVyTW9kZWwgPSB0aGlzLmFkZFRvUGFyYW1zTGlzdChzdC5maWVsZE5hbWUsIHN0LnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbk1vZGVsQ29udGFpbmVyLmhpZXJNb2RlbEFyci5wdXNoKGhpZXJNb2RlbCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtaXhlZFNlbGVjdGlvbnNFcnJvciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChyYW5nZU9wdGlvbi5taW4gIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAmJiByYW5nZU9wdGlvbi5tYXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZWN0aW9uVHlwZSA9PT0gU2VsZWN0aW9uQ3JpdGVyaWFUeXBlLlJhbmdlVHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHF1YW50TW9kZWwgPSB0aGlzLmFkZFRvUmFuZ2VQYXJhbXNMaXN0KHN0LmZpZWxkTmFtZSwgcmFuZ2VPcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uTW9kZWxDb250YWluZXIucXVhbnRNb2RlbEFyci5wdXNoKHF1YW50TW9kZWwpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWl4ZWRTZWxlY3Rpb25zRXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rpb25UeXBlID09PSBTZWxlY3Rpb25Dcml0ZXJpYVR5cGUuRGltZW5zaW9uVHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRpbU1vZGVsID0gdGhpcy5hZGRUb1BhcmFtc0xpc3Qoc3QuZmllbGROYW1lLCBzdC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25Nb2RlbENvbnRhaW5lci5kaW1Nb2RlbEFyci5wdXNoKGRpbU1vZGVsKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1peGVkU2VsZWN0aW9uc0Vycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChtaXhlZFNlbGVjdGlvbnNFcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEaWZmZXJlbnQgdHlwZXMgb2Ygc2VsZWN0aW9uIGNyaXRlcmlhcyBwcm92aWRlZC4nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2VsZWN0aW9uTW9kZWxDb250YWluZXI7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBzZWxlY3Rpb25Dcml0ZXJpYXMgVmFsaWRhdGUgYW5kIGRldGVybWluZSB0aGUgc2VsZWN0aW9uIGNyaXRlcmlhcyB0eXBlLlxuICAgICAqL1xuICAgIFNlbGVjdGlvblNlcnZpY2VJbXBsLnByb3RvdHlwZS52YWxpZGF0ZVNlbGVjdGlvbkNyaXRlcmlhID0gZnVuY3Rpb24gKHNlbGVjdGlvbkNyaXRlcmlhKSB7XG4gICAgICAgIHZhciBzZWxlY3Rpb25UeXBlO1xuICAgICAgICAvLyBEZXRlcm1pbmUgdGhlIHR5cGUgb2Ygc2VsZWN0aW9uLCB0aGlzIGNvbW1hbmQgaXMgYnkgbG9va2luZyBhdCB0aGUgZmlyc3Qgc2VsZWN0aW9uXG4gICAgICAgIHZhciBjcml0ID0gc2VsZWN0aW9uQ3JpdGVyaWE7XG4gICAgICAgIHZhciBjYXRSZWdleCA9IG5ldyBSZWdFeHAoJyhcXFtbQS1aYS16MC05XStdKS4qJywgJ2cnKTtcbiAgICAgICAgdmFyIHJhbmdlT3B0aW9uID0gY3JpdC52YWx1ZTtcbiAgICAgICAgaWYgKGNyaXQuZmllbGROYW1lICYmIChjcml0LnZhbHVlICE9PSB1bmRlZmluZWQgJiYgY3JpdC52YWx1ZSAhPT0gbnVsbCkpIHtcbiAgICAgICAgICAgIGlmIChjYXRSZWdleC50ZXN0KGNyaXQuZmllbGROYW1lKSkge1xuICAgICAgICAgICAgICAgIHNlbGVjdGlvblR5cGUgPSBTZWxlY3Rpb25Dcml0ZXJpYVR5cGUuSGllcmFyY2hpY2FsVHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHJhbmdlT3B0aW9uLm1pbiAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgJiYgcmFuZ2VPcHRpb24ubWF4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb25UeXBlID0gU2VsZWN0aW9uQ3JpdGVyaWFUeXBlLlJhbmdlVHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHNlbGVjdGlvblR5cGUgPSBTZWxlY3Rpb25Dcml0ZXJpYVR5cGUuRGltZW5zaW9uVHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBzZWxlY3Rpb24gY3JpdGVyaWEgZm9ybWF0LicpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzZWxlY3Rpb25UeXBlO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogTWV0aG9kIHRvIHRyYW5zZm9ybSB0aGUga2V5IHZhbHVlIHBhaXIgaW50byB2YWx1ZSBiYXNlZCBwcmVzIG1vZGVsIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZVNlbGVjdGlvbk1vZGVsXG4gICAgICogQHBhcmFtIGZpZWxkTmFtZVxuICAgICAqIEBwYXJhbSB2YWx1ZVxuICAgICAqL1xuICAgIFNlbGVjdGlvblNlcnZpY2VJbXBsLnByb3RvdHlwZS5hZGRUb1BhcmFtc0xpc3QgPSBmdW5jdGlvbiAoZmllbGROYW1lLCB2YWx1ZSkge1xuICAgICAgICB2YXIgdmFsdWVTZWxlY3Rpb25Nb2RlbCA9IG5ldyBTZWxlY3Rpb25Nb2RlbHNfMS5WYWx1ZVNlbGVjdGlvbk1vZGVsKCk7XG4gICAgICAgIHZhciBtYXJrVmFsdWVzID0gW107XG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICB2YXIgdmFsdWVBcnIgPSB2YWx1ZTtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVBcnIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBtYXJrVmFsdWVzLnB1c2godmFsdWVBcnJbaV0udG9TdHJpbmcoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBtYXJrVmFsdWVzLnB1c2godmFsdWUudG9TdHJpbmcoKSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFsdWVTZWxlY3Rpb25Nb2RlbC5xdWFsaWZpZWRGaWVsZENhcHRpb24gPSBmaWVsZE5hbWU7XG4gICAgICAgIHZhbHVlU2VsZWN0aW9uTW9kZWwuc2VsZWN0VmFsdWVzID0gbWFya1ZhbHVlcztcbiAgICAgICAgcmV0dXJuIHZhbHVlU2VsZWN0aW9uTW9kZWw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBNZXRob2QgdG8gdHJhbnNmb3JtIHRoZSBrZXkgdmFsdWUgcGFpciBpbnRvIHJhbmdlIGJhc2VkIHNlbGVjdGlvbiBwcmVzIG1vZGVsLlxuICAgICAqXG4gICAgICogVE9ETzogTmVlZCB0byBoYW5kbGUgdGhlIHBhcnNpbmcgb2YgZGF0ZSB0eXBlIHZhbHVlcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZVNlbGVjdGlvbk1vZGVsXG4gICAgICogQHBhcmFtIGZpZWxkTmFtZVxuICAgICAqIEBwYXJhbSB2YWx1ZVxuICAgICAqL1xuICAgIFNlbGVjdGlvblNlcnZpY2VJbXBsLnByb3RvdHlwZS5hZGRUb1JhbmdlUGFyYW1zTGlzdCA9IGZ1bmN0aW9uIChmaWVsZE5hbWUsIHZhbHVlKSB7XG4gICAgICAgIHZhciByYW5nZVNlbGVjdGlvbk1vZGVsID0gbmV3IFNlbGVjdGlvbk1vZGVsc18xLlJhbmdlU2VsZWN0aW9uTW9kZWwoKTtcbiAgICAgICAgcmFuZ2VTZWxlY3Rpb25Nb2RlbC5xdWFsaWZpZWRGaWVsZENhcHRpb24gPSBmaWVsZE5hbWU7XG4gICAgICAgIGlmICh2YWx1ZS5tYXggIT09IHVuZGVmaW5lZCAmJiB2YWx1ZS5tYXggIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJhbmdlU2VsZWN0aW9uTW9kZWwubWF4VmFsdWUgPSB2YWx1ZS5tYXgudG9TdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUubWluICE9PSB1bmRlZmluZWQgJiYgdmFsdWUubWluICE9PSBudWxsKSB7XG4gICAgICAgICAgICByYW5nZVNlbGVjdGlvbk1vZGVsLm1pblZhbHVlID0gdmFsdWUubWluLnRvU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmFuZ2VTZWxlY3Rpb25Nb2RlbC5pbmNsdWRlZCA9IHRoaXMudmFsaWRhdGVOdWxsT3B0aW9uVHlwZSh2YWx1ZS5udWxsT3B0aW9uKTtcbiAgICAgICAgcmV0dXJuIHJhbmdlU2VsZWN0aW9uTW9kZWw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBNZXRob2QgdG8gdmFsaWRhdGUgdGhlIHNlbGVjdGlvbiB1cGRhdGUgdHlwZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzZWxlY3Rpb25VcGRhdGVUeXBlXG4gICAgICovXG4gICAgU2VsZWN0aW9uU2VydmljZUltcGwucHJvdG90eXBlLnZhbGlkYXRlU2VsZWN0aW9uVXBkYXRlVHlwZSA9IGZ1bmN0aW9uIChzZWxlY3Rpb25VcGRhdGVUeXBlKSB7XG4gICAgICAgIGlmIChzZWxlY3Rpb25VcGRhdGVUeXBlID09PSBDb250cmFjdC5TZWxlY3Rpb25VcGRhdGVUeXBlLlJlcGxhY2UpIHtcbiAgICAgICAgICAgIHJldHVybiBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5TZWxlY3Rpb25VcGRhdGVUeXBlLlJlcGxhY2U7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoc2VsZWN0aW9uVXBkYXRlVHlwZSA9PT0gQ29udHJhY3QuU2VsZWN0aW9uVXBkYXRlVHlwZS5BZGQpIHtcbiAgICAgICAgICAgIHJldHVybiBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5TZWxlY3Rpb25VcGRhdGVUeXBlLkFkZDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChzZWxlY3Rpb25VcGRhdGVUeXBlID09PSBDb250cmFjdC5TZWxlY3Rpb25VcGRhdGVUeXBlLlJlbW92ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlNlbGVjdGlvblVwZGF0ZVR5cGUuUmVtb3ZlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5TZWxlY3Rpb25VcGRhdGVUeXBlLlJlcGxhY2U7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBNZXRob2QgdG8gdmFsaWRhdGUgdGhlIGluY2x1ZGUgdHlwZSBmb3IgcmFuZ2Ugc2VsZWN0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIG51bGxPcHRpb25cbiAgICAgKi9cbiAgICBTZWxlY3Rpb25TZXJ2aWNlSW1wbC5wcm90b3R5cGUudmFsaWRhdGVOdWxsT3B0aW9uVHlwZSA9IGZ1bmN0aW9uIChudWxsT3B0aW9uKSB7XG4gICAgICAgIGlmIChudWxsT3B0aW9uKSB7XG4gICAgICAgICAgICBpZiAobnVsbE9wdGlvbiA9PT0gQ29udHJhY3QuRmlsdGVyTnVsbE9wdGlvbi5OdWxsVmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlF1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzLkluY2x1ZGVOdWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobnVsbE9wdGlvbiA9PT0gQ29udHJhY3QuRmlsdGVyTnVsbE9wdGlvbi5Ob25OdWxsVmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlF1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzLkluY2x1ZGVOb25OdWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobnVsbE9wdGlvbiA9PT0gQ29udHJhY3QuRmlsdGVyTnVsbE9wdGlvbi5BbGxWYWx1ZXMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUXVhbnRpdGF0aXZlSW5jbHVkZWRWYWx1ZXMuSW5jbHVkZUFsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUXVhbnRpdGF0aXZlSW5jbHVkZWRWYWx1ZXMuSW5jbHVkZUFsbDtcbiAgICB9O1xuICAgIHJldHVybiBTZWxlY3Rpb25TZXJ2aWNlSW1wbDtcbn0oKSk7XG5leHBvcnRzLlNlbGVjdGlvblNlcnZpY2VJbXBsID0gU2VsZWN0aW9uU2VydmljZUltcGw7XG4vKipcbiAqIEVudW0gZm9yIHRoZSBkaWZmZXJlbnQgc2VsZWN0aW9uIGNyaXRlcmlhIHR5cGVzLlxuICovXG52YXIgU2VsZWN0aW9uQ3JpdGVyaWFUeXBlO1xuKGZ1bmN0aW9uIChTZWxlY3Rpb25Dcml0ZXJpYVR5cGUpIHtcbiAgICBTZWxlY3Rpb25Dcml0ZXJpYVR5cGVbU2VsZWN0aW9uQ3JpdGVyaWFUeXBlW1wiSGllcmFyY2hpY2FsVHlwZVwiXSA9IDFdID0gXCJIaWVyYXJjaGljYWxUeXBlXCI7XG4gICAgU2VsZWN0aW9uQ3JpdGVyaWFUeXBlW1NlbGVjdGlvbkNyaXRlcmlhVHlwZVtcIlJhbmdlVHlwZVwiXSA9IDJdID0gXCJSYW5nZVR5cGVcIjtcbiAgICBTZWxlY3Rpb25Dcml0ZXJpYVR5cGVbU2VsZWN0aW9uQ3JpdGVyaWFUeXBlW1wiRGltZW5zaW9uVHlwZVwiXSA9IDNdID0gXCJEaW1lbnNpb25UeXBlXCI7XG4gICAgU2VsZWN0aW9uQ3JpdGVyaWFUeXBlW1NlbGVjdGlvbkNyaXRlcmlhVHlwZVtcIlR1cGxlc1R5cGVcIl0gPSA0XSA9IFwiVHVwbGVzVHlwZVwiO1xufSkoU2VsZWN0aW9uQ3JpdGVyaWFUeXBlIHx8IChTZWxlY3Rpb25Dcml0ZXJpYVR5cGUgPSB7fSkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2VsZWN0aW9uU2VydmljZUltcGwuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL1NlcnZpY2VzL2ltcGwvU2VsZWN0aW9uU2VydmljZUltcGwuanNcbiAqKiBtb2R1bGUgaWQgPSAzOVxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19leHRlbmRzID0gKHRoaXMgJiYgdGhpcy5fX2V4dGVuZHMpIHx8IChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxuICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcbiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XG4gICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcbiAgICB9O1xufSkoKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8qKlxuICogU2VsZWN0aW9uIE1vZGVsLlxuICovXG52YXIgU2VsZWN0aW9uTW9kZWwgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFNlbGVjdGlvbk1vZGVsKCkge1xuICAgIH1cbiAgICByZXR1cm4gU2VsZWN0aW9uTW9kZWw7XG59KCkpO1xuZXhwb3J0cy5TZWxlY3Rpb25Nb2RlbCA9IFNlbGVjdGlvbk1vZGVsO1xuLyoqXG4gKiBWYWx1ZSBiYXNlZCBzZWxlY3Rpb24gbW9kZWwuIE1lYW50IGZvciBoaWVyYXJjaGljYWwsIHJhbmdlIGFuZCBjYXRlZ29yaWNhbCBzZWxlY3Rpb25zLlxuICovXG52YXIgVmFsdWVTZWxlY3Rpb25Nb2RlbCA9IChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFZhbHVlU2VsZWN0aW9uTW9kZWwsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gVmFsdWVTZWxlY3Rpb25Nb2RlbCgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLnNlbGVjdFZhbHVlcyA9IFtdO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIHJldHVybiBWYWx1ZVNlbGVjdGlvbk1vZGVsO1xufShTZWxlY3Rpb25Nb2RlbCkpO1xuZXhwb3J0cy5WYWx1ZVNlbGVjdGlvbk1vZGVsID0gVmFsdWVTZWxlY3Rpb25Nb2RlbDtcbi8qKlxuICogSGllcmFyY2hpY2FsIHZhbHVlIHNlbGVjdGlvbiBtb2RlbFxuICovXG52YXIgSGllcmFyY2hpY2FsU2VsZWN0aW9uTW9kZWwgPSAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhIaWVyYXJjaGljYWxTZWxlY3Rpb25Nb2RlbCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBIaWVyYXJjaGljYWxTZWxlY3Rpb25Nb2RlbCgpIHtcbiAgICAgICAgcmV0dXJuIF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICByZXR1cm4gSGllcmFyY2hpY2FsU2VsZWN0aW9uTW9kZWw7XG59KFZhbHVlU2VsZWN0aW9uTW9kZWwpKTtcbmV4cG9ydHMuSGllcmFyY2hpY2FsU2VsZWN0aW9uTW9kZWwgPSBIaWVyYXJjaGljYWxTZWxlY3Rpb25Nb2RlbDtcbi8qKlxuICogUmFuZ2UgYmFzZWQgdmFsdWUgc2VsZWN0aW9uIG1vZGVsXG4gKi9cbnZhciBSYW5nZVNlbGVjdGlvbk1vZGVsID0gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoUmFuZ2VTZWxlY3Rpb25Nb2RlbCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBSYW5nZVNlbGVjdGlvbk1vZGVsKCkge1xuICAgICAgICByZXR1cm4gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7XG4gICAgfVxuICAgIHJldHVybiBSYW5nZVNlbGVjdGlvbk1vZGVsO1xufShTZWxlY3Rpb25Nb2RlbCkpO1xuZXhwb3J0cy5SYW5nZVNlbGVjdGlvbk1vZGVsID0gUmFuZ2VTZWxlY3Rpb25Nb2RlbDtcbi8qKlxuICogRGltZW5zaW9uIHZhbHVlIHNlbGVjdGlvbiBtb2RlbFxuICovXG52YXIgRGltZW5zaW9uU2VsZWN0aW9uTW9kZWwgPSAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhEaW1lbnNpb25TZWxlY3Rpb25Nb2RlbCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBEaW1lbnNpb25TZWxlY3Rpb25Nb2RlbCgpIHtcbiAgICAgICAgcmV0dXJuIF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICByZXR1cm4gRGltZW5zaW9uU2VsZWN0aW9uTW9kZWw7XG59KFZhbHVlU2VsZWN0aW9uTW9kZWwpKTtcbmV4cG9ydHMuRGltZW5zaW9uU2VsZWN0aW9uTW9kZWwgPSBEaW1lbnNpb25TZWxlY3Rpb25Nb2RlbDtcbi8qKlxuICogVHVwbGUgYmFzZWQgc2VsZWN0aW9uIG1vZGVsXG4gKi9cbnZhciBUdXBsZVNlbGVjdGlvbk1vZGVsID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBUdXBsZVNlbGVjdGlvbk1vZGVsKCkge1xuICAgICAgICB0aGlzLm9iamVjdElkcyA9IFtdO1xuICAgIH1cbiAgICByZXR1cm4gVHVwbGVTZWxlY3Rpb25Nb2RlbDtcbn0oKSk7XG5leHBvcnRzLlR1cGxlU2VsZWN0aW9uTW9kZWwgPSBUdXBsZVNlbGVjdGlvbk1vZGVsO1xuLyoqXG4gKiBDb250YWluZXIgY2xhc3MgdG8gcG9wdWxhdGUgYWxsIHRoZSBzZWxlY3Rpb24gbW9kZWxzIHdoZW4gcGFyc2luZyBpbnB1dFxuICovXG52YXIgU2VsZWN0aW9uTW9kZWxzQ29udGFpbmVyID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBTZWxlY3Rpb25Nb2RlbHNDb250YWluZXIoKSB7XG4gICAgICAgIHRoaXMuaGllck1vZGVsQXJyID0gW107XG4gICAgICAgIHRoaXMuZGltTW9kZWxBcnIgPSBbXTtcbiAgICAgICAgdGhpcy5xdWFudE1vZGVsQXJyID0gW107XG4gICAgfVxuICAgIHJldHVybiBTZWxlY3Rpb25Nb2RlbHNDb250YWluZXI7XG59KCkpO1xuZXhwb3J0cy5TZWxlY3Rpb25Nb2RlbHNDb250YWluZXIgPSBTZWxlY3Rpb25Nb2RlbHNDb250YWluZXI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1TZWxlY3Rpb25Nb2RlbHMuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL01vZGVscy9TZWxlY3Rpb25Nb2RlbHMuanNcbiAqKiBtb2R1bGUgaWQgPSA0MFxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19leHRlbmRzID0gKHRoaXMgJiYgdGhpcy5fX2V4dGVuZHMpIHx8IChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxuICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcbiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XG4gICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcbiAgICB9O1xufSkoKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBTaGVldF8xID0gcmVxdWlyZShcIi4vU2hlZXRcIik7XG52YXIgRGFzaGJvYXJkID0gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoRGFzaGJvYXJkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIERhc2hib2FyZChfZGFzaGJvYXJkSW1wbCkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBfZGFzaGJvYXJkSW1wbCkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuX2Rhc2hib2FyZEltcGwgPSBfZGFzaGJvYXJkSW1wbDtcbiAgICAgICAgX2Rhc2hib2FyZEltcGwuaW5pdGlhbGl6ZVdpdGhQdWJsaWNJbnRlcmZhY2VzKF90aGlzKTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRGFzaGJvYXJkLnByb3RvdHlwZSwgXCJ3b3Jrc2hlZXRzXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZGFzaGJvYXJkSW1wbC53b3Jrc2hlZXRzO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRGFzaGJvYXJkLnByb3RvdHlwZSwgXCJvYmplY3RzXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZGFzaGJvYXJkSW1wbC5vYmplY3RzO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICByZXR1cm4gRGFzaGJvYXJkO1xufShTaGVldF8xLlNoZWV0KSk7XG5leHBvcnRzLkRhc2hib2FyZCA9IERhc2hib2FyZDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURhc2hib2FyZC5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4uL2xpYi9EYXNoYm9hcmQuanNcbiAqKiBtb2R1bGUgaWQgPSA0MVxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19leHRlbmRzID0gKHRoaXMgJiYgdGhpcy5fX2V4dGVuZHMpIHx8IChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxuICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcbiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XG4gICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcbiAgICB9O1xufSkoKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBhcGlfc2hhcmVkXzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLXNoYXJlZFwiKTtcbnZhciBTaGVldCA9IChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFNoZWV0LCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFNoZWV0KF9zaGVldEltcGwpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuX3NoZWV0SW1wbCA9IF9zaGVldEltcGw7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFNoZWV0LnByb3RvdHlwZSwgXCJuYW1lXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fc2hlZXRJbXBsLm5hbWU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTaGVldC5wcm90b3R5cGUsIFwic2hlZXRUeXBlXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fc2hlZXRJbXBsLnNoZWV0VHlwZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFNoZWV0LnByb3RvdHlwZSwgXCJzaXplXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fc2hlZXRJbXBsLnNpemU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIFNoZWV0LnByb3RvdHlwZS5maW5kUGFyYW1ldGVyQXN5bmMgPSBmdW5jdGlvbiAocGFyYW1ldGVyTmFtZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2hlZXRJbXBsLmZpbmRQYXJhbWV0ZXJBc3luYyhwYXJhbWV0ZXJOYW1lLCB0aGlzKTtcbiAgICB9O1xuICAgIFNoZWV0LnByb3RvdHlwZS5nZXRQYXJhbWV0ZXJzQXN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaGVldEltcGwuZ2V0UGFyYW1ldGVyc0FzeW5jKHRoaXMpO1xuICAgIH07XG4gICAgcmV0dXJuIFNoZWV0O1xufShhcGlfc2hhcmVkXzEuRXZlbnRMaXN0ZW5lck1hbmFnZXIpKTtcbmV4cG9ydHMuU2hlZXQgPSBTaGVldDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVNoZWV0LmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi4vbGliL1NoZWV0LmpzXG4gKiogbW9kdWxlIGlkID0gNDJcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuLyoqXG4gKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgZXh0ZXJuYWwgRGFzaGJvYXJkQ29udGVudCBuYW1lc3BhY2UuXG4gKiBUaGlzIGRvZXMgbm90IGZvbGxvdyB0aGUgSW1wbCBwYXR0ZXJuIGFzIERhc2hib2FyZENvbnRlbnQgaXNcbiAqIGN1cnJlbnRseSBqdXN0IGEgKHNpbmdsZSkgcHJvcGVydHkgYmFnLlxuICovXG52YXIgRGFzaGJvYXJkQ29udGVudCA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gRGFzaGJvYXJkQ29udGVudChfZGFzaGJvYXJkKSB7XG4gICAgICAgIHRoaXMuX2Rhc2hib2FyZCA9IF9kYXNoYm9hcmQ7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXNoYm9hcmRDb250ZW50LnByb3RvdHlwZSwgXCJkYXNoYm9hcmRcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kYXNoYm9hcmQ7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIHJldHVybiBEYXNoYm9hcmRDb250ZW50O1xufSgpKTtcbmV4cG9ydHMuRGFzaGJvYXJkQ29udGVudCA9IERhc2hib2FyZENvbnRlbnQ7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1EYXNoYm9hcmRDb250ZW50LmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi4vbGliL05hbWVzcGFjZXMvRGFzaGJvYXJkQ29udGVudC5qc1xuICoqIG1vZHVsZSBpZCA9IDQzXG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBhcGlfc2hhcmVkXzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLXNoYXJlZFwiKTtcbi8qKlxuICogSW1wbGVtZW50YXRpb24gb2YgdGhlIGV4dGVybmFsIGVudmlyb25tZW50IG5hbWVzcGFjZS5cbiAqIEVudmlyb25tZW50IGRvZXMgbm90IGZvbGxvdyB0aGUgSW1wbCBwYXR0ZXJuIGFzIGl0IGlzXG4gKiBqdXN0IGEgcHJvcGVydHkgYmFnLlxuICovXG52YXIgRW52aXJvbm1lbnQgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEVudmlyb25tZW50KGFkZEluRW52aXJvbm1lbnQpIHtcbiAgICAgICAgdGhpcy5fYXBpVmVyc2lvbiA9IGFkZEluRW52aXJvbm1lbnQuYXBpVmVyc2lvbjtcbiAgICAgICAgdGhpcy5fY29udGV4dCA9IGFwaV9zaGFyZWRfMS5JbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MuYWRkSW5Db250ZXh0LmNvbnZlcnQoYWRkSW5FbnZpcm9ubWVudC5hZGRJbkNvbnRleHQpO1xuICAgICAgICB0aGlzLl9sYW5ndWFnZSA9IGFkZEluRW52aXJvbm1lbnQuYWRkSW5MYW5ndWFnZTtcbiAgICAgICAgdGhpcy5fbG9jYWxlID0gYWRkSW5FbnZpcm9ubWVudC5hZGRJbkxvY2FsZTtcbiAgICAgICAgdGhpcy5fbW9kZSA9IGFwaV9zaGFyZWRfMS5JbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MuYWRkSW5Nb2RlLmNvbnZlcnQoYWRkSW5FbnZpcm9ubWVudC5hZGRJbk1vZGUpO1xuICAgICAgICB0aGlzLl9vcGVyYXRpbmdTeXN0ZW0gPSBhZGRJbkVudmlyb25tZW50Lm9wZXJhdGluZ1N5c3RlbTtcbiAgICAgICAgdGhpcy5fdGFibGVhdVZlcnNpb24gPSBhZGRJbkVudmlyb25tZW50LnRhYmxlYXVWZXJzaW9uO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRW52aXJvbm1lbnQucHJvdG90eXBlLCBcImFwaVZlcnNpb25cIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9hcGlWZXJzaW9uO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRW52aXJvbm1lbnQucHJvdG90eXBlLCBcImNvbnRleHRcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb250ZXh0O1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRW52aXJvbm1lbnQucHJvdG90eXBlLCBcImxhbmd1YWdlXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbGFuZ3VhZ2U7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFbnZpcm9ubWVudC5wcm90b3R5cGUsIFwibG9jYWxlXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRW52aXJvbm1lbnQucHJvdG90eXBlLCBcIm1vZGVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb2RlO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRW52aXJvbm1lbnQucHJvdG90eXBlLCBcIm9wZXJhdGluZ1N5c3RlbVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX29wZXJhdGluZ1N5c3RlbTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEVudmlyb25tZW50LnByb3RvdHlwZSwgXCJ0YWJsZWF1VmVyc2lvblwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RhYmxlYXVWZXJzaW9uO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICByZXR1cm4gRW52aXJvbm1lbnQ7XG59KCkpO1xuZXhwb3J0cy5FbnZpcm9ubWVudCA9IEVudmlyb25tZW50O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RW52aXJvbm1lbnQuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiAuLi9saWIvTmFtZXNwYWNlcy9FbnZpcm9ubWVudC5qc1xuICoqIG1vZHVsZSBpZCA9IDQ0XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8qKlxuICogSW1wbGVtZW50YXRpb24gb2YgdGhlIGV4dGVybmFsIHNldHRpbmdzIG5hbWVzcGFjZS5cbiAqL1xudmFyIFNldHRpbmdzID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBTZXR0aW5ncyhzZXR0aW5nc0ltcGwpIHtcbiAgICAgICAgdGhpcy5zZXR0aW5nc0ltcGwgPSBzZXR0aW5nc0ltcGw7XG4gICAgfVxuICAgIFNldHRpbmdzLnByb3RvdHlwZS5lcmFzZSA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgdGhpcy5zZXR0aW5nc0ltcGwuZXJhc2Uoa2V5KTtcbiAgICB9O1xuICAgIFNldHRpbmdzLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldHRpbmdzSW1wbC5nZXQoa2V5KTtcbiAgICB9O1xuICAgIFNldHRpbmdzLnByb3RvdHlwZS5nZXRBbGwgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldHRpbmdzSW1wbC5nZXRBbGwoKTtcbiAgICB9O1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTZXR0aW5ncy5wcm90b3R5cGUsIFwiaXNNb2RpZmllZFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2V0dGluZ3NJbXBsLmlzTW9kaWZpZWQ7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIFNldHRpbmdzLnByb3RvdHlwZS5zYXZlQXN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldHRpbmdzSW1wbC5zYXZlQXN5bmMoKTtcbiAgICB9O1xuICAgIFNldHRpbmdzLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICAgICAgICB0aGlzLnNldHRpbmdzSW1wbC5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgfTtcbiAgICByZXR1cm4gU2V0dGluZ3M7XG59KCkpO1xuZXhwb3J0cy5TZXR0aW5ncyA9IFNldHRpbmdzO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2V0dGluZ3MuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiAuLi9saWIvTmFtZXNwYWNlcy9TZXR0aW5ncy5qc1xuICoqIG1vZHVsZSBpZCA9IDQ1XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBhcGlfc2hhcmVkXzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLXNoYXJlZFwiKTtcbnZhciBJbml0aWFsaXphdGlvblNlcnZpY2VJbXBsXzEgPSByZXF1aXJlKFwiLi9JbXBsL0luaXRpYWxpemF0aW9uU2VydmljZUltcGxcIik7XG52YXIgU2V0dGluZ3NTZXJ2aWNlSW1wbF8xID0gcmVxdWlyZShcIi4vSW1wbC9TZXR0aW5nc1NlcnZpY2VJbXBsXCIpO1xuZnVuY3Rpb24gcmVnaXN0ZXJBbGxBZGRJblNlcnZpY2VzKGRpc3BhdGNoZXIpIHtcbiAgICBhcGlfc2hhcmVkXzEuQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLnJlZ2lzdGVyU2VydmljZShuZXcgSW5pdGlhbGl6YXRpb25TZXJ2aWNlSW1wbF8xLkluaXRpYWxpemF0aW9uU2VydmljZUltcGwoZGlzcGF0Y2hlcikpO1xuICAgIGFwaV9zaGFyZWRfMS5BcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UucmVnaXN0ZXJTZXJ2aWNlKG5ldyBTZXR0aW5nc1NlcnZpY2VJbXBsXzEuU2V0dGluZ3NTZXJ2aWNlSW1wbChkaXNwYXRjaGVyKSk7XG59XG5leHBvcnRzLnJlZ2lzdGVyQWxsQWRkSW5TZXJ2aWNlcyA9IHJlZ2lzdGVyQWxsQWRkSW5TZXJ2aWNlcztcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVJlZ2lzdGVyQWxsQWRkSW5TZXJ2aWNlcy5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4uL2xpYi9TZXJ2aWNlcy9SZWdpc3RlckFsbEFkZEluU2VydmljZXMuanNcbiAqKiBtb2R1bGUgaWQgPSA0NlxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgYXBpX2ludGVybmFsX2NvbnRyYWN0XzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0XCIpO1xudmFyIEluaXRpYWxpemF0aW9uU2VydmljZUltcGwgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEluaXRpYWxpemF0aW9uU2VydmljZUltcGwoZGlzcGF0Y2hlcikge1xuICAgICAgICB0aGlzLmRpc3BhdGNoZXIgPSBkaXNwYXRjaGVyO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoSW5pdGlhbGl6YXRpb25TZXJ2aWNlSW1wbC5wcm90b3R5cGUsIFwic2VydmljZU5hbWVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBcIkluaXRpYWxpemF0aW9uU2VydmljZVwiIC8qIEluaXRpYWxpemF0aW9uU2VydmljZSAqLztcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgSW5pdGlhbGl6YXRpb25TZXJ2aWNlSW1wbC5wcm90b3R5cGUuaW5pdGlhbGl6ZURhc2hib2FyZEFkZEluQXN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIC8vIFdlIGRvbid0IG5lZWQgYW55IHBhcmFtZXRlcnMgZm9yIHRoaXMgY2FsbCBiZWNhdXNlIHRoZXkgYXJlIGFkZGVkIGluIGZvciB1cyBieSB0aGUgZGlzcGF0Y2hlclxuICAgICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaGVyLmV4ZWN1dGUoYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuVmVyYklkLkluaXRpYWxpemVBZGRJbiwge30pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICAvLyBUT0RPIC0gVmFsaWRhdGUgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgICB2YXIgcmVzdWx0ID0gcmVzcG9uc2UucmVzdWx0O1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICByZXR1cm4gSW5pdGlhbGl6YXRpb25TZXJ2aWNlSW1wbDtcbn0oKSk7XG5leHBvcnRzLkluaXRpYWxpemF0aW9uU2VydmljZUltcGwgPSBJbml0aWFsaXphdGlvblNlcnZpY2VJbXBsO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9SW5pdGlhbGl6YXRpb25TZXJ2aWNlSW1wbC5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4uL2xpYi9TZXJ2aWNlcy9JbXBsL0luaXRpYWxpemF0aW9uU2VydmljZUltcGwuanNcbiAqKiBtb2R1bGUgaWQgPSA0N1xuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgYXBpX2ludGVybmFsX2NvbnRyYWN0XzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0XCIpO1xudmFyIFNldHRpbmdzU2VydmljZUltcGwgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFNldHRpbmdzU2VydmljZUltcGwoZGlzcGF0Y2hlcikge1xuICAgICAgICB0aGlzLmRpc3BhdGNoZXIgPSBkaXNwYXRjaGVyO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoU2V0dGluZ3NTZXJ2aWNlSW1wbC5wcm90b3R5cGUsIFwic2VydmljZU5hbWVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBcIlNldHRpbmdzU2VydmljZVwiIC8qIFNldHRpbmdzU2VydmljZSAqLztcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgU2V0dGluZ3NTZXJ2aWNlSW1wbC5wcm90b3R5cGUuc2F2ZVNldHRpbmdzQXN5bmMgPSBmdW5jdGlvbiAoc2V0dGluZ3MpIHtcbiAgICAgICAgdmFyIHBhcmFtZXRlcnMgPSAoX2EgPSB7fSwgX2FbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuU2V0dGluZ3NWYWx1ZXNdID0gc2V0dGluZ3MsIF9hKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hlci5leGVjdXRlKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlZlcmJJZC5TYXZlQWRkSW5TZXR0aW5ncywgcGFyYW1ldGVycykudGhlbihmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSB2YWx1ZS5yZXN1bHQ7XG4gICAgICAgICAgICBpZiAoIXJlc3VsdCB8fCAhcmVzdWx0LnNldHRpbmdzVmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcm5hbCBlcnJvciBzYXZpbmcgc2V0dGluZ3MuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gKHJlc3VsdC5zZXR0aW5nc1ZhbHVlcyk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgX2E7XG4gICAgfTtcbiAgICByZXR1cm4gU2V0dGluZ3NTZXJ2aWNlSW1wbDtcbn0oKSk7XG5leHBvcnRzLlNldHRpbmdzU2VydmljZUltcGwgPSBTZXR0aW5nc1NlcnZpY2VJbXBsO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2V0dGluZ3NTZXJ2aWNlSW1wbC5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4uL2xpYi9TZXJ2aWNlcy9JbXBsL1NldHRpbmdzU2VydmljZUltcGwuanNcbiAqKiBtb2R1bGUgaWQgPSA0OFxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgYWRkaW4gbGlicmFyeVxuICovXG52YXIgVmVyc2lvbk51bWJlciA9IChmdW5jdGlvbiAoKSB7XG4gICAgLy8gcHJpdmF0ZSBjb25zdHJ1Y3RvciBzbyBldmVyeW9uZSB1c2VzIHRoZSBzaW5nbGV0b24gaW5zdGFuY2VcbiAgICBmdW5jdGlvbiBWZXJzaW9uTnVtYmVyKHZlcnNpb25TdHJpbmcpIHtcbiAgICAgICAgdmFyIHBhcnRzID0gdmVyc2lvblN0cmluZy5zcGxpdCgnLicpLm1hcChmdW5jdGlvbiAocCkgeyByZXR1cm4gcGFyc2VJbnQocCwgMTApOyB9KTtcbiAgICAgICAgaWYgKHBhcnRzLmxlbmd0aCAhPT0gMykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHZlcnNpb24gbnVtYmVyOiAnICsgdmVyc2lvblN0cmluZyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbWFqb3IgPSBwYXJ0c1swXTtcbiAgICAgICAgdGhpcy5fbWlub3IgPSBwYXJ0c1sxXTtcbiAgICAgICAgdGhpcy5fZml4ID0gcGFydHNbMl07XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShWZXJzaW9uTnVtYmVyLCBcIkluc3RhbmNlXCIsIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEdldHMgdGhlIHNpbmdsZXRvbiBpbnN0YW5jZSBvZiB0aGUgdmVyc2lvbiBudW1iZXIuXG4gICAgICAgICAqL1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBWZXJzaW9uTnVtYmVyLl9pbnN0YW5jZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFZlcnNpb25OdW1iZXIucHJvdG90eXBlLCBcIm1ham9yXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbWFqb3I7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShWZXJzaW9uTnVtYmVyLnByb3RvdHlwZSwgXCJtaW5vclwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21pbm9yO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoVmVyc2lvbk51bWJlci5wcm90b3R5cGUsIFwiZml4XCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZml4O1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICAvLyBVc2luZyBzb21lIHdlYnBhY2sgdHJpY2tzLCB3ZSBjYW4gaW5qZWN0IHRoaXMgdmVyc2lvbiBpbnRvIG91ciBjb2RlIChraW5kYSBsaWtlIGMrKyBwcmVwcm9jZXNzb3Igc3R1ZmYpXG4gICAgVmVyc2lvbk51bWJlci5faW5zdGFuY2UgPSBuZXcgVmVyc2lvbk51bWJlcihBRERJTl9BUElfVkVSU0lPTl9OVU1CRVIpO1xuICAgIHJldHVybiBWZXJzaW9uTnVtYmVyO1xufSgpKTtcbmV4cG9ydHMuVmVyc2lvbk51bWJlciA9IFZlcnNpb25OdW1iZXI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1WZXJzaW9uTnVtYmVyLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi4vbGliL1ZlcnNpb25OdW1iZXIuanNcbiAqKiBtb2R1bGUgaWQgPSA0OVxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19leHRlbmRzID0gKHRoaXMgJiYgdGhpcy5fX2V4dGVuZHMpIHx8IChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxuICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcbiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XG4gICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcbiAgICB9O1xufSkoKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBDb250cmFjdCA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3RcIik7XG52YXIgYXBpX2ludGVybmFsX2NvbnRyYWN0XzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0XCIpO1xudmFyIGFwaV9zaGFyZWRfMSA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktc2hhcmVkXCIpO1xudmFyIERhc2hib2FyZE9iamVjdF8xID0gcmVxdWlyZShcIi4uL0Rhc2hib2FyZE9iamVjdFwiKTtcbnZhciBXb3Jrc2hlZXRfMSA9IHJlcXVpcmUoXCIuLi9Xb3Jrc2hlZXRcIik7XG52YXIgU2hlZXRJbXBsXzEgPSByZXF1aXJlKFwiLi9TaGVldEltcGxcIik7XG52YXIgU2hlZXRJbmZvSW1wbF8xID0gcmVxdWlyZShcIi4vU2hlZXRJbmZvSW1wbFwiKTtcbnZhciBXb3Jrc2hlZXRJbXBsXzEgPSByZXF1aXJlKFwiLi9Xb3Jrc2hlZXRJbXBsXCIpO1xudmFyIERhc2hib2FyZEltcGwgPSAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhEYXNoYm9hcmRJbXBsLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIERhc2hib2FyZEltcGwoX2luZm8sIF9zaGVldFBhdGgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgbmV3IFNoZWV0SW5mb0ltcGxfMS5TaGVldEluZm9JbXBsKF9pbmZvLm5hbWUsIENvbnRyYWN0LlNoZWV0VHlwZS5EYXNoYm9hcmQsIG5ldyBhcGlfc2hhcmVkXzEuU2l6ZShfaW5mby5zaXplLmgsIF9pbmZvLnNpemUudykpKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5faW5mbyA9IF9pbmZvO1xuICAgICAgICBfdGhpcy5fc2hlZXRQYXRoID0gX3NoZWV0UGF0aDtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRGFzaGJvYXJkSW1wbC5wcm90b3R5cGUsIFwid29ya3NoZWV0c1wiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldHM7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXNoYm9hcmRJbXBsLnByb3RvdHlwZSwgXCJvYmplY3RzXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fb2JqZWN0cztcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgRGFzaGJvYXJkSW1wbC5wcm90b3R5cGUuaW5pdGlhbGl6ZVdpdGhQdWJsaWNJbnRlcmZhY2VzID0gZnVuY3Rpb24gKGRhc2hib2FyZCkge1xuICAgICAgICB0aGlzLl93b3Jrc2hlZXRzID0gbmV3IEFycmF5KCk7XG4gICAgICAgIHRoaXMuX29iamVjdHMgPSBuZXcgQXJyYXkoKTtcbiAgICAgICAgLy8gUHJvY2VzcyBhbGwgdGhlIHpvbmVzIHdoaWNoIGFyZSBjb250YWluZWQgaW4gdGhpcyBkYXNoYm9hcmRcbiAgICAgICAgZm9yICh2YXIgX2kgPSAwLCBfYSA9IHRoaXMuX2luZm8uem9uZXM7IF9pIDwgX2EubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICB2YXIgem9uZSA9IF9hW19pXTtcbiAgICAgICAgICAgIHZhciB3b3Jrc2hlZXQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB2YXIgem9uZVNpemUgPSBuZXcgYXBpX3NoYXJlZF8xLlNpemUoem9uZS5oZWlnaHQsIHpvbmUud2lkdGgpO1xuICAgICAgICAgICAgaWYgKHpvbmUuem9uZVR5cGUgPT09IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhc2hib2FyZE9iamVjdFR5cGUuV29ya3NoZWV0KSB7XG4gICAgICAgICAgICAgICAgdmFyIHNoZWV0SW5mbyA9IG5ldyBTaGVldEluZm9JbXBsXzEuU2hlZXRJbmZvSW1wbCh6b25lLm5hbWUsIENvbnRyYWN0LlNoZWV0VHlwZS5Xb3Jrc2hlZXQsIHpvbmVTaXplKTtcbiAgICAgICAgICAgICAgICB2YXIgdml6SWQgPSB7XG4gICAgICAgICAgICAgICAgICAgIHdvcmtzaGVldDogem9uZS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBkYXNoYm9hcmQ6IHRoaXMuX2luZm8ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgc3Rvcnlib2FyZDogdGhpcy5fc2hlZXRQYXRoLnN0b3J5Ym9hcmQsXG4gICAgICAgICAgICAgICAgICAgIGZsaXBib2FyZFpvbmVJRDogdGhpcy5fc2hlZXRQYXRoLmZsaXBib2FyZFpvbmVJRCxcbiAgICAgICAgICAgICAgICAgICAgc3RvcnlQb2ludElEOiB0aGlzLl9zaGVldFBhdGguc3RvcnlQb2ludElEXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB2YXIgd29ya3NoZWV0SW1wbCA9IG5ldyBXb3Jrc2hlZXRJbXBsXzEuV29ya3NoZWV0SW1wbChzaGVldEluZm8sIHZpeklkLCBkYXNoYm9hcmQpO1xuICAgICAgICAgICAgICAgIHdvcmtzaGVldCA9IG5ldyBXb3Jrc2hlZXRfMS5Xb3Jrc2hlZXQod29ya3NoZWV0SW1wbCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fd29ya3NoZWV0cy5wdXNoKHdvcmtzaGVldCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgem9uZVBvaW50ID0gbmV3IGFwaV9zaGFyZWRfMS5Qb2ludCh6b25lLngsIHpvbmUueSk7XG4gICAgICAgICAgICB2YXIgZGFzaGJvYXJkT2JqZWN0ID0gbmV3IERhc2hib2FyZE9iamVjdF8xLkRhc2hib2FyZE9iamVjdChkYXNoYm9hcmQsIGFwaV9zaGFyZWRfMS5JbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MuZGFzaGJvYXJkT2JqZWN0VHlwZS5jb252ZXJ0KHpvbmUuem9uZVR5cGUpLCB6b25lUG9pbnQsIHpvbmVTaXplLCB3b3Jrc2hlZXQpO1xuICAgICAgICAgICAgdGhpcy5fb2JqZWN0cy5wdXNoKGRhc2hib2FyZE9iamVjdCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiBEYXNoYm9hcmRJbXBsO1xufShTaGVldEltcGxfMS5TaGVldEltcGwpKTtcbmV4cG9ydHMuRGFzaGJvYXJkSW1wbCA9IERhc2hib2FyZEltcGw7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1EYXNoYm9hcmRJbXBsLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi4vbGliL0ludGVybmFsL0Rhc2hib2FyZEltcGwuanNcbiAqKiBtb2R1bGUgaWQgPSA1MFxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4vKipcbiAqIEltcGxlbWVudGF0aW9uIG9mIHRoZSBkYXNoYm9hcmQgb2JqZWN0cyAtIHRoZSB6b25lcyBpbiBhIGRhc2hib2FyZC5cbiAqIFRoaXMgZG9lcyBub3QgZm9sbG93IHRoZSBJbXBsIHBhdHRlcm4gYXMgaXQgaXMganVzdCBhIHByb3BlcnR5IGJhZy5cbiAqL1xudmFyIERhc2hib2FyZE9iamVjdCA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gRGFzaGJvYXJkT2JqZWN0KF9kYXNoYm9hcmQsIF90eXBlLCBfcG9zaXRpb24sIF9zaXplLCBfd29ya3NoZWV0KSB7XG4gICAgICAgIHRoaXMuX2Rhc2hib2FyZCA9IF9kYXNoYm9hcmQ7XG4gICAgICAgIHRoaXMuX3R5cGUgPSBfdHlwZTtcbiAgICAgICAgdGhpcy5fcG9zaXRpb24gPSBfcG9zaXRpb247XG4gICAgICAgIHRoaXMuX3NpemUgPSBfc2l6ZTtcbiAgICAgICAgdGhpcy5fd29ya3NoZWV0ID0gX3dvcmtzaGVldDtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KERhc2hib2FyZE9iamVjdC5wcm90b3R5cGUsIFwiZGFzaGJvYXJkXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZGFzaGJvYXJkO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRGFzaGJvYXJkT2JqZWN0LnByb3RvdHlwZSwgXCJ0eXBlXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KERhc2hib2FyZE9iamVjdC5wcm90b3R5cGUsIFwicG9zaXRpb25cIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9wb3NpdGlvbjtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KERhc2hib2FyZE9iamVjdC5wcm90b3R5cGUsIFwic2l6ZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3NpemU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXNoYm9hcmRPYmplY3QucHJvdG90eXBlLCBcIndvcmtzaGVldFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldDtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgcmV0dXJuIERhc2hib2FyZE9iamVjdDtcbn0oKSk7XG5leHBvcnRzLkRhc2hib2FyZE9iamVjdCA9IERhc2hib2FyZE9iamVjdDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURhc2hib2FyZE9iamVjdC5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4uL2xpYi9EYXNoYm9hcmRPYmplY3QuanNcbiAqKiBtb2R1bGUgaWQgPSA1MVxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19leHRlbmRzID0gKHRoaXMgJiYgdGhpcy5fX2V4dGVuZHMpIHx8IChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxuICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcbiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XG4gICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcbiAgICB9O1xufSkoKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBTaGVldF8xID0gcmVxdWlyZShcIi4vU2hlZXRcIik7XG52YXIgV29ya3NoZWV0ID0gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoV29ya3NoZWV0LCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFdvcmtzaGVldChfd29ya3NoZWV0SW1wbCkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBfd29ya3NoZWV0SW1wbCkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuX3dvcmtzaGVldEltcGwgPSBfd29ya3NoZWV0SW1wbDtcbiAgICAgICAgLy8gQ2FsbCB0byBpbml0aWFsaXplIGV2ZW50cyBhbmQgdGhlbiBjYWxsIGRvd24gdG8gdGhlIGV2ZW50IGxpc3RlbmVyIG1hbmFnZXIgdG8gaGFuZGxlIHRoaW5nc1xuICAgICAgICBfdGhpcy5fd29ya3NoZWV0SW1wbC5pbml0aWFsaXplRXZlbnRzKF90aGlzKS5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7IHJldHVybiBfdGhpcy5hZGROZXdFdmVudFR5cGUoZSk7IH0pO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXb3Jrc2hlZXQucHJvdG90eXBlLCBcInBhcmVudERhc2hib2FyZFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldEltcGwucGFyZW50RGFzaGJvYXJkO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBXb3Jrc2hlZXQucHJvdG90eXBlLmFwcGx5RmlsdGVyQXN5bmMgPSBmdW5jdGlvbiAoZmllbGROYW1lLCB2YWx1ZXMsIHVwZGF0ZVR5cGUsIG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldEltcGwuYXBwbHlGaWx0ZXJBc3luYyhmaWVsZE5hbWUsIHZhbHVlcywgdXBkYXRlVHlwZSwgb3B0aW9ucyk7XG4gICAgfTtcbiAgICBXb3Jrc2hlZXQucHJvdG90eXBlLmFwcGx5UmFuZ2VGaWx0ZXJBc3luYyA9IGZ1bmN0aW9uIChmaWVsZE5hbWUsIGZpbHRlck9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldEltcGwuYXBwbHlSYW5nZUZpbHRlckFzeW5jKGZpZWxkTmFtZSwgZmlsdGVyT3B0aW9ucyk7XG4gICAgfTtcbiAgICBXb3Jrc2hlZXQucHJvdG90eXBlLmNsZWFyRmlsdGVyQXN5bmMgPSBmdW5jdGlvbiAoZmllbGROYW1lKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXRJbXBsLmNsZWFyRmlsdGVyQXN5bmMoZmllbGROYW1lKTtcbiAgICB9O1xuICAgIFdvcmtzaGVldC5wcm90b3R5cGUuZ2V0QW5hbHl0aWNPYmplY3RzQXN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQVBJIGNhbGwgbm90IHlldCBpbXBsZW1lbnRlZC4nKTtcbiAgICB9O1xuICAgIFdvcmtzaGVldC5wcm90b3R5cGUuZ2V0RGF0YVNvdXJjZXNBc3luYyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldEltcGwuZ2V0RGF0YVNvdXJjZXNBc3luYygpO1xuICAgIH07XG4gICAgV29ya3NoZWV0LnByb3RvdHlwZS5nZXRFbmNvZGluZ3NBc3luYyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBUEkgY2FsbCBub3QgeWV0IGltcGxlbWVudGVkLicpO1xuICAgIH07XG4gICAgV29ya3NoZWV0LnByb3RvdHlwZS5nZXRGaWx0ZXJzQXN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXRJbXBsLmdldEZpbHRlcnNBc3luYygpO1xuICAgIH07XG4gICAgV29ya3NoZWV0LnByb3RvdHlwZS5nZXRTZWxlY3RlZE1hcmtzQXN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXRJbXBsLmdldFNlbGVjdGVkTWFya3NBc3luYygpO1xuICAgIH07XG4gICAgV29ya3NoZWV0LnByb3RvdHlwZS5nZXRIaWdobGlnaHRlZE1hcmtzQXN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXRJbXBsLmdldEhpZ2hsaWdodGVkTWFya3NBc3luYygpO1xuICAgIH07XG4gICAgV29ya3NoZWV0LnByb3RvdHlwZS5nZXRTdW1tYXJ5RGF0YUFzeW5jID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldEltcGwuZ2V0U3VtbWFyeURhdGFBc3luYyhvcHRpb25zKTtcbiAgICB9O1xuICAgIFdvcmtzaGVldC5wcm90b3R5cGUuZ2V0VW5kZXJseWluZ0RhdGFBc3luYyA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXRJbXBsLmdldFVuZGVybHlpbmdEYXRhQXN5bmMob3B0aW9ucyk7XG4gICAgfTtcbiAgICBXb3Jrc2hlZXQucHJvdG90eXBlLmNsZWFyU2VsZWN0ZWRNYXJrc0FzeW5jID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fd29ya3NoZWV0SW1wbC5jbGVhclNlbGVjdGVkTWFya3NBc3luYygpO1xuICAgIH07XG4gICAgV29ya3NoZWV0LnByb3RvdHlwZS5zZWxlY3RNYXJrc0J5SURBc3luYyA9IGZ1bmN0aW9uIChtYXJrc0luZm8sIHVwZGF0ZVR5cGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBUEkgY2FsbCBub3QgeWV0IGltcGxlbWVudGVkLicpO1xuICAgIH07XG4gICAgV29ya3NoZWV0LnByb3RvdHlwZS5zZWxlY3RNYXJrc0J5VmFsdWVBc3luYyA9IGZ1bmN0aW9uIChzZWxlY3Rpb25zLCBzZWxlY3Rpb25VcGRhdGVUeXBlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXRJbXBsLnNlbGVjdE1hcmtzQnlWYWx1ZUFzeW5jKHNlbGVjdGlvbnMsIHNlbGVjdGlvblVwZGF0ZVR5cGUpO1xuICAgIH07XG4gICAgV29ya3NoZWV0LnByb3RvdHlwZS5zZWxlY3RNYXJrc0J5SWRBc3luYyA9IGZ1bmN0aW9uIChzZWxlY3Rpb25zLCBzZWxlY3Rpb25VcGRhdGVUeXBlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXRJbXBsLnNlbGVjdE1hcmtzQnlJZEFzeW5jKHNlbGVjdGlvbnMsIHNlbGVjdGlvblVwZGF0ZVR5cGUpO1xuICAgIH07XG4gICAgcmV0dXJuIFdvcmtzaGVldDtcbn0oU2hlZXRfMS5TaGVldCkpO1xuZXhwb3J0cy5Xb3Jrc2hlZXQgPSBXb3Jrc2hlZXQ7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Xb3Jrc2hlZXQuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiAuLi9saWIvV29ya3NoZWV0LmpzXG4gKiogbW9kdWxlIGlkID0gNTJcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIGFwaV9zaGFyZWRfMSA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktc2hhcmVkXCIpO1xudmFyIFNoZWV0SW1wbCA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gU2hlZXRJbXBsKF9zaGVldEluZm9JbXBsKSB7XG4gICAgICAgIHRoaXMuX3NoZWV0SW5mb0ltcGwgPSBfc2hlZXRJbmZvSW1wbDtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFNoZWV0SW1wbC5wcm90b3R5cGUsIFwibmFtZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3NoZWV0SW5mb0ltcGwubmFtZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFNoZWV0SW1wbC5wcm90b3R5cGUsIFwic2hlZXRUeXBlXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fc2hlZXRJbmZvSW1wbC5zaGVldFR5cGU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTaGVldEltcGwucHJvdG90eXBlLCBcInNoZWV0UGF0aFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3NoZWV0SW5mb0ltcGwuc2hlZXRQYXRoO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoU2hlZXRJbXBsLnByb3RvdHlwZSwgXCJzaXplXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fc2hlZXRJbmZvSW1wbC5zaGVldFNpemU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIFNoZWV0SW1wbC5wcm90b3R5cGUuZmluZFBhcmFtZXRlckFzeW5jID0gZnVuY3Rpb24gKHBhcmFtZXRlck5hbWUsIHNoZWV0KSB7XG4gICAgICAgIHZhciBzZXJ2aWNlID0gYXBpX3NoYXJlZF8xLkFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlKFwicGFyYW1ldGVycy1zZXJ2aWNlXCIgLyogUGFyYW1ldGVycyAqLyk7XG4gICAgICAgIHJldHVybiBzZXJ2aWNlLmZpbmRQYXJhbWV0ZXJCeU5hbWVBc3luYyhwYXJhbWV0ZXJOYW1lLCBzaGVldCk7XG4gICAgfTtcbiAgICBTaGVldEltcGwucHJvdG90eXBlLmdldFBhcmFtZXRlcnNBc3luYyA9IGZ1bmN0aW9uIChzaGVldCkge1xuICAgICAgICB2YXIgc2VydmljZSA9IGFwaV9zaGFyZWRfMS5BcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZShcInBhcmFtZXRlcnMtc2VydmljZVwiIC8qIFBhcmFtZXRlcnMgKi8pO1xuICAgICAgICByZXR1cm4gc2VydmljZS5nZXRQYXJhbWV0ZXJzRm9yU2hlZXRBc3luYyh0aGlzLnNoZWV0UGF0aCwgc2hlZXQpO1xuICAgIH07XG4gICAgcmV0dXJuIFNoZWV0SW1wbDtcbn0oKSk7XG5leHBvcnRzLlNoZWV0SW1wbCA9IFNoZWV0SW1wbDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVNoZWV0SW1wbC5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4uL2xpYi9JbnRlcm5hbC9TaGVldEltcGwuanNcbiAqKiBtb2R1bGUgaWQgPSA1M1xuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0XCIpO1xudmFyIFNoZWV0SW5mb0ltcGwgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFNoZWV0SW5mb0ltcGwoX25hbWUsIF9zaGVldFR5cGUsIF9zaGVldFNpemUpIHtcbiAgICAgICAgdGhpcy5fbmFtZSA9IF9uYW1lO1xuICAgICAgICB0aGlzLl9zaGVldFR5cGUgPSBfc2hlZXRUeXBlO1xuICAgICAgICB0aGlzLl9zaGVldFNpemUgPSBfc2hlZXRTaXplO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoU2hlZXRJbmZvSW1wbC5wcm90b3R5cGUsIFwibmFtZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX25hbWU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTaGVldEluZm9JbXBsLnByb3RvdHlwZSwgXCJzaGVldFNpemVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zaGVldFNpemU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTaGVldEluZm9JbXBsLnByb3RvdHlwZSwgXCJzaGVldFR5cGVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zaGVldFR5cGU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTaGVldEluZm9JbXBsLnByb3RvdHlwZSwgXCJzaGVldFBhdGhcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgc2hlZXROYW1lOiB0aGlzLm5hbWUsXG4gICAgICAgICAgICAgICAgaXNEYXNoYm9hcmQ6IHRoaXMuc2hlZXRUeXBlID09PSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5TaGVldFR5cGUuRGFzaGJvYXJkXG4gICAgICAgICAgICAgICAgLy8gVE9ETyAtIFN0b3JpZXNcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIHJldHVybiBTaGVldEluZm9JbXBsO1xufSgpKTtcbmV4cG9ydHMuU2hlZXRJbmZvSW1wbCA9IFNoZWV0SW5mb0ltcGw7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1TaGVldEluZm9JbXBsLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi4vbGliL0ludGVybmFsL1NoZWV0SW5mb0ltcGwuanNcbiAqKiBtb2R1bGUgaWQgPSA1NFxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19leHRlbmRzID0gKHRoaXMgJiYgdGhpcy5fX2V4dGVuZHMpIHx8IChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxuICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcbiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XG4gICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcbiAgICB9O1xufSkoKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBDb250cmFjdCA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3RcIik7XG52YXIgYXBpX2ludGVybmFsX2NvbnRyYWN0XzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0XCIpO1xudmFyIGFwaV9zaGFyZWRfMSA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktc2hhcmVkXCIpO1xudmFyIERhdGFTb3VyY2VfMSA9IHJlcXVpcmUoXCIuLi9EYXRhU291cmNlXCIpO1xudmFyIERhdGFTb3VyY2VJbXBsXzEgPSByZXF1aXJlKFwiLi9EYXRhU291cmNlSW1wbFwiKTtcbnZhciBTaGVldEltcGxfMSA9IHJlcXVpcmUoXCIuL1NoZWV0SW1wbFwiKTtcbnZhciB2aXN1YWxJZHNBcmVFcXVhbCA9IGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgcmV0dXJuIGEgJiYgYiAmJlxuICAgICAgICBhLndvcmtzaGVldCA9PT0gYi53b3Jrc2hlZXQgJiZcbiAgICAgICAgYS5kYXNoYm9hcmQgPT09IGIuZGFzaGJvYXJkICYmXG4gICAgICAgIGEuc3Rvcnlib2FyZCA9PT0gYi5zdG9yeWJvYXJkICYmXG4gICAgICAgIGEuc3RvcnlQb2ludElEID09PSBiLnN0b3J5UG9pbnRJRCAmJlxuICAgICAgICBhLmZsaXBib2FyZFpvbmVJRCA9PT0gYi5mbGlwYm9hcmRab25lSUQ7XG59O1xudmFyIFdvcmtzaGVldEltcGwgPSAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhXb3Jrc2hlZXRJbXBsLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFdvcmtzaGVldEltcGwoc2hlZXRJbmZvSW1wbCwgX3Zpc3VhbElkLCBfcGFyZW50RGFzaGJvYXJkKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIHNoZWV0SW5mb0ltcGwpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLl92aXN1YWxJZCA9IF92aXN1YWxJZDtcbiAgICAgICAgX3RoaXMuX3BhcmVudERhc2hib2FyZCA9IF9wYXJlbnREYXNoYm9hcmQ7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFdvcmtzaGVldEltcGwucHJvdG90eXBlLCBcInBhcmVudERhc2hib2FyZFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3BhcmVudERhc2hib2FyZDtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgLyoqXG4gICAgICogSGVscGVyIG1ldGhvZCB3aGljaCBnb2VzIHRocm91Z2ggYW5kIHJlZ2lzdGVycyBlYWNoIGV2ZW50IHR5cGUgdGhpcyBpbXBsIGtub3dzIGFib3V0XG4gICAgICogd2l0aCB0aGUgTm90aWZpY2F0aW9uU2VydmljZS4gSXQgcmV0dXJucyBhbiBhcnJheSBvZiBTaW5nbGVFdmVudE1hbmFnZXIgb2JqZWN0cyB3aGljaFxuICAgICAqIGNhbiB0aGVuIGJlIHBhc3NlZCB0byBhbiBFdmVudExpc3RlbmVyTWFuYWdlciB0byBoYW5kbGUgdXNlciByZWdpc3RyYXRpb24gLyB1bnJlZ2lzdHJhdGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7V29ya3NoZWV0fSB3b3Jrc2hlZXQgVGhlIHdvcmtzaGVldCBvYmplY3Qgd2hpY2ggd2lsbCBiZSBpbmNsdWRlZCB3aXRoIHRoZSBldmVudCBub3RpZmljYXRpb25zXG4gICAgICogQHJldHVybnMge0FycmF5PFNpbmdsZUV2ZW50TWFuYWdlcj59IENvbGxlY3Rpb24gb2YgZXZlbnQgbWFuYWdlcnMgdG8gcGFzcyB0byBhbiBFdmVudExpc3RlbmVyTWFuYWdlclxuICAgICAqL1xuICAgIFdvcmtzaGVldEltcGwucHJvdG90eXBlLmluaXRpYWxpemVFdmVudHMgPSBmdW5jdGlvbiAod29ya3NoZWV0KSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciByZXN1bHRzID0gbmV3IEFycmF5KCk7XG4gICAgICAgIHZhciBub3RpZmljYXRpb25TZXJ2aWNlO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbm90aWZpY2F0aW9uU2VydmljZSA9IGFwaV9zaGFyZWRfMS5BcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZShcIm5vdGlmaWNhdGlvbi1zZXJ2aWNlXCIgLyogTm90aWZpY2F0aW9uICovKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSB0aGlzIHNlcnZpY2UgcmVnaXN0ZXJlZCwganVzdCByZXR1cm5cbiAgICAgICAgICAgIHJldHVybiByZXN1bHRzO1xuICAgICAgICB9XG4gICAgICAgIC8vIEluaXRpYWxpemUgYWxsIG9mIHRoZSBldmVudCBtYW5hZ2VycyB3ZSdsbCBuZWVkIChvbmUgZm9yIGVhY2ggZXZlbnQgdHlwZSlcbiAgICAgICAgdmFyIG1hcmtzRXZlbnQgPSBuZXcgYXBpX3NoYXJlZF8xLlNpbmdsZUV2ZW50TWFuYWdlckltcGwoQ29udHJhY3QuVGFibGVhdUV2ZW50VHlwZS5NYXJrU2VsZWN0aW9uQ2hhbmdlZCk7XG4gICAgICAgIG5vdGlmaWNhdGlvblNlcnZpY2UucmVnaXN0ZXJIYW5kbGVyKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLk5vdGlmaWNhdGlvbklkLlNlbGVjdGVkTWFya3NDaGFuZ2VkLCBmdW5jdGlvbiAobW9kZWwpIHtcbiAgICAgICAgICAgIHZhciB2aXN1YWxJZCA9IG1vZGVsO1xuICAgICAgICAgICAgcmV0dXJuIHZpc3VhbElkc0FyZUVxdWFsKHZpc3VhbElkLCBfdGhpcy52aXN1YWxJZCk7XG4gICAgICAgIH0sIGZ1bmN0aW9uICh2aXopIHtcbiAgICAgICAgICAgIG1hcmtzRXZlbnQudHJpZ2dlckV2ZW50KGZ1bmN0aW9uICgpIHsgcmV0dXJuIG5ldyBhcGlfc2hhcmVkXzEuTWFya3NTZWxlY3RlZEV2ZW50KHdvcmtzaGVldCk7IH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGZpbHRlckV2ZW50ID0gbmV3IGFwaV9zaGFyZWRfMS5TaW5nbGVFdmVudE1hbmFnZXJJbXBsKENvbnRyYWN0LlRhYmxlYXVFdmVudFR5cGUuRmlsdGVyQ2hhbmdlZCk7XG4gICAgICAgIG5vdGlmaWNhdGlvblNlcnZpY2UucmVnaXN0ZXJIYW5kbGVyKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLk5vdGlmaWNhdGlvbklkLkZpbHRlckNoYW5nZWQsIGZ1bmN0aW9uIChtb2RlbCkge1xuICAgICAgICAgICAgdmFyIGZpbHRlckV2ZW50UmVzcG9uc2UgPSBtb2RlbDtcbiAgICAgICAgICAgIHJldHVybiBfdGhpcy52aXN1YWxJZC53b3Jrc2hlZXQgPT09IGZpbHRlckV2ZW50UmVzcG9uc2UudmlzdWFsSWQud29ya3NoZWV0O1xuICAgICAgICB9LCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgIGZpbHRlckV2ZW50LnRyaWdnZXJFdmVudChmdW5jdGlvbiAoKSB7IHJldHVybiBuZXcgYXBpX3NoYXJlZF8xLkZpbHRlckNoYW5nZWRFdmVudCh3b3Jrc2hlZXQsIGV2ZW50LmZpZWxkTmFtZSk7IH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmVzdWx0cy5wdXNoKG1hcmtzRXZlbnQpO1xuICAgICAgICByZXN1bHRzLnB1c2goZmlsdGVyRXZlbnQpO1xuICAgICAgICAvLyBUT0RPIC0gb3RoZXIgZXZlbnQgdHlwZXNcbiAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgfTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoV29ya3NoZWV0SW1wbC5wcm90b3R5cGUsIFwidmlzdWFsSWRcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl92aXN1YWxJZDtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgV29ya3NoZWV0SW1wbC5wcm90b3R5cGUuYXBwbHlGaWx0ZXJBc3luYyA9IGZ1bmN0aW9uIChmaWVsZE5hbWUsIHZhbHVlcywgdXBkYXRlVHlwZSwgb3B0aW9ucykge1xuICAgICAgICB2YXIgc2VydmljZSA9IGFwaV9zaGFyZWRfMS5BcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZShcImZpbHRlci1zZXJ2aWNlXCIgLyogRmlsdGVyICovKTtcbiAgICAgICAgcmV0dXJuIHNlcnZpY2UuYXBwbHlGaWx0ZXJBc3luYyh0aGlzLnZpc3VhbElkLCBmaWVsZE5hbWUsIHZhbHVlcywgdXBkYXRlVHlwZSwgb3B0aW9ucyk7XG4gICAgfTtcbiAgICBXb3Jrc2hlZXRJbXBsLnByb3RvdHlwZS5hcHBseVJhbmdlRmlsdGVyQXN5bmMgPSBmdW5jdGlvbiAoZmllbGROYW1lLCBmaWx0ZXJPcHRpb25zKSB7XG4gICAgICAgIHZhciBzZXJ2aWNlID0gYXBpX3NoYXJlZF8xLkFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlKFwiZmlsdGVyLXNlcnZpY2VcIiAvKiBGaWx0ZXIgKi8pO1xuICAgICAgICByZXR1cm4gc2VydmljZS5hcHBseVJhbmdlRmlsdGVyQXN5bmModGhpcy52aXN1YWxJZCwgZmllbGROYW1lLCBmaWx0ZXJPcHRpb25zKTtcbiAgICB9O1xuICAgIFdvcmtzaGVldEltcGwucHJvdG90eXBlLmNsZWFyRmlsdGVyQXN5bmMgPSBmdW5jdGlvbiAoZmllbGROYW1lKSB7XG4gICAgICAgIHZhciBzZXJ2aWNlID0gYXBpX3NoYXJlZF8xLkFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlKFwiZmlsdGVyLXNlcnZpY2VcIiAvKiBGaWx0ZXIgKi8pO1xuICAgICAgICByZXR1cm4gc2VydmljZS5jbGVhckZpbHRlckFzeW5jKHRoaXMudmlzdWFsSWQsIGZpZWxkTmFtZSk7XG4gICAgfTtcbiAgICBXb3Jrc2hlZXRJbXBsLnByb3RvdHlwZS5nZXREYXRhU291cmNlc0FzeW5jID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgc2VydmljZSA9IGFwaV9zaGFyZWRfMS5BcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZShcImRhdGEtc291cmNlLXNlcnZpY2VcIiAvKiBEYXRhU291cmNlU2VydmljZSAqLyk7XG4gICAgICAgIHJldHVybiBzZXJ2aWNlLmdldERhdGFTb3VyY2VzQXN5bmMoKS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHtcbiAgICAgICAgICAgIHZhciBkYXRhU2NoZW1hID0gcmVzdWx0O1xuICAgICAgICAgICAgdmFyIHdvcmtzaGVldERhdGFTb3VyY2VJbmZvID0gZGF0YVNjaGVtYS53b3Jrc2hlZXREYXRhU2NoZW1hTWFwW190aGlzLm5hbWVdO1xuICAgICAgICAgICAgdmFyIGRhdGFTb3VyY2VzID0gW107XG4gICAgICAgICAgICAvLyBGaXJzdCwgYWRkIHRoZSBwcmltYXJ5IGRhdGFzb3VyY2UuICBCeSBjb252ZW50aW9uLCBpdCBjb21lcyBmaXJzdCBpbiB0aGUgcmV0dXJuZWQgYXJyYXkuXG4gICAgICAgICAgICB2YXIgcHJpbWFyeUlkID0gd29ya3NoZWV0RGF0YVNvdXJjZUluZm8ucHJpbWFyeURhdGFTb3VyY2U7XG4gICAgICAgICAgICBkYXRhU291cmNlcy5wdXNoKF90aGlzLmNyZWF0ZURhdGFTb3VyY2VGcm9tSW5mbyhkYXRhU2NoZW1hLmRhdGFTb3VyY2VzW3ByaW1hcnlJZF0pKTtcbiAgICAgICAgICAgIC8vIFRoZW4sIGxvb3AgdGhyb3VnaCBhbnkgc2Vjb25kYXJ5IGRhdGEgc291cmNlcyBhbmQgYWRkIHRoZW0uXG4gICAgICAgICAgICBmb3IgKHZhciBfaSA9IDAsIF9hID0gd29ya3NoZWV0RGF0YVNvdXJjZUluZm8ucmVmZXJlbmNlZERhdGFTb3VyY2VMaXN0OyBfaSA8IF9hLmxlbmd0aDsgX2krKykge1xuICAgICAgICAgICAgICAgIHZhciBzZWNvbmRhcnlJZCA9IF9hW19pXTtcbiAgICAgICAgICAgICAgICBpZiAoc2Vjb25kYXJ5SWQgIT09IHByaW1hcnlJZCkge1xuICAgICAgICAgICAgICAgICAgICBkYXRhU291cmNlcy5wdXNoKF90aGlzLmNyZWF0ZURhdGFTb3VyY2VGcm9tSW5mbyhkYXRhU2NoZW1hLmRhdGFTb3VyY2VzW3NlY29uZGFyeUlkXSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBkYXRhU291cmNlcztcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBXb3Jrc2hlZXRJbXBsLnByb3RvdHlwZS5nZXRGaWx0ZXJzQXN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBzZXJ2aWNlID0gYXBpX3NoYXJlZF8xLkFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlKFwiZmlsdGVyLXNlcnZpY2VcIiAvKiBGaWx0ZXIgKi8pO1xuICAgICAgICByZXR1cm4gc2VydmljZS5nZXRGaWx0ZXJzQXN5bmModGhpcy52aXN1YWxJZCk7XG4gICAgfTtcbiAgICBXb3Jrc2hlZXRJbXBsLnByb3RvdHlwZS5nZXRTZWxlY3RlZE1hcmtzQXN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBzZXJ2aWNlID0gYXBpX3NoYXJlZF8xLkFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlKFwiZ2V0LWRhdGEtc2VydmljZVwiIC8qIEdldERhdGEgKi8pO1xuICAgICAgICByZXR1cm4gc2VydmljZS5nZXRTZWxlY3RlZE1hcmtzQXN5bmModGhpcy52aXN1YWxJZCk7XG4gICAgfTtcbiAgICBXb3Jrc2hlZXRJbXBsLnByb3RvdHlwZS5nZXRIaWdobGlnaHRlZE1hcmtzQXN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBzZXJ2aWNlID0gYXBpX3NoYXJlZF8xLkFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlKFwiZ2V0LWRhdGEtc2VydmljZVwiIC8qIEdldERhdGEgKi8pO1xuICAgICAgICByZXR1cm4gc2VydmljZS5nZXRIaWdobGlnaHRlZE1hcmtzQXN5bmModGhpcy52aXN1YWxJZCk7XG4gICAgfTtcbiAgICBXb3Jrc2hlZXRJbXBsLnByb3RvdHlwZS5nZXRTdW1tYXJ5RGF0YUFzeW5jID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIHNlcnZpY2UgPSBhcGlfc2hhcmVkXzEuQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2UoXCJnZXQtZGF0YS1zZXJ2aWNlXCIgLyogR2V0RGF0YSAqLyk7XG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgICByZXR1cm4gc2VydmljZS5nZXRVbmRlcmx5aW5nRGF0YUFzeW5jKHRoaXMudmlzdWFsSWQsIGFwaV9zaGFyZWRfMS5HZXREYXRhVHlwZS5TdW1tYXJ5LCAhIW9wdGlvbnMuaWdub3JlQWxpYXNlcywgISFvcHRpb25zLmlnbm9yZVNlbGVjdGlvbiwgdHJ1ZSwgMCk7XG4gICAgfTtcbiAgICBXb3Jrc2hlZXRJbXBsLnByb3RvdHlwZS5nZXRVbmRlcmx5aW5nRGF0YUFzeW5jID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIHNlcnZpY2UgPSBhcGlfc2hhcmVkXzEuQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2UoXCJnZXQtZGF0YS1zZXJ2aWNlXCIgLyogR2V0RGF0YSAqLyk7XG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgICByZXR1cm4gc2VydmljZS5nZXRVbmRlcmx5aW5nRGF0YUFzeW5jKHRoaXMudmlzdWFsSWQsIGFwaV9zaGFyZWRfMS5HZXREYXRhVHlwZS5VbmRlcmx5aW5nLCAhIW9wdGlvbnMuaWdub3JlQWxpYXNlcywgISFvcHRpb25zLmlnbm9yZVNlbGVjdGlvbiwgISFvcHRpb25zLmluY2x1ZGVBbGxDb2x1bW5zLCBvcHRpb25zLm1heFJvd3MgfHwgMCk7XG4gICAgfTtcbiAgICBXb3Jrc2hlZXRJbXBsLnByb3RvdHlwZS5jbGVhclNlbGVjdGVkTWFya3NBc3luYyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHNlcnZpY2UgPSBhcGlfc2hhcmVkXzEuQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2UoXCJzZWxlY3Rpb24tc2VydmljZVwiIC8qIFNlbGVjdGlvbiAqLyk7XG4gICAgICAgIHJldHVybiBzZXJ2aWNlLmNsZWFyU2VsZWN0ZWRNYXJrc0FzeW5jKHRoaXMudmlzdWFsSWQpO1xuICAgIH07XG4gICAgV29ya3NoZWV0SW1wbC5wcm90b3R5cGUuc2VsZWN0TWFya3NCeVZhbHVlQXN5bmMgPSBmdW5jdGlvbiAoc2VsZWN0aW9ucywgc2VsZWN0aW9uVXBkYXRlVHlwZSkge1xuICAgICAgICB2YXIgc2VydmljZSA9IGFwaV9zaGFyZWRfMS5BcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZShcInNlbGVjdGlvbi1zZXJ2aWNlXCIgLyogU2VsZWN0aW9uICovKTtcbiAgICAgICAgcmV0dXJuIHNlcnZpY2Uuc2VsZWN0TWFya3NCeVZhbHVlQXN5bmModGhpcy52aXN1YWxJZCwgc2VsZWN0aW9ucywgc2VsZWN0aW9uVXBkYXRlVHlwZSk7XG4gICAgfTtcbiAgICBXb3Jrc2hlZXRJbXBsLnByb3RvdHlwZS5zZWxlY3RNYXJrc0J5SWRBc3luYyA9IGZ1bmN0aW9uIChzZWxlY3Rpb25zLCBzZWxlY3Rpb25VcGRhdGVUeXBlKSB7XG4gICAgICAgIHZhciBzZXJ2aWNlID0gYXBpX3NoYXJlZF8xLkFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlKFwic2VsZWN0aW9uLXNlcnZpY2VcIiAvKiBTZWxlY3Rpb24gKi8pO1xuICAgICAgICByZXR1cm4gc2VydmljZS5zZWxlY3RNYXJrc0J5SWRBc3luYyh0aGlzLnZpc3VhbElkLCBzZWxlY3Rpb25zLCBzZWxlY3Rpb25VcGRhdGVUeXBlKTtcbiAgICB9O1xuICAgIFdvcmtzaGVldEltcGwucHJvdG90eXBlLmNyZWF0ZURhdGFTb3VyY2VGcm9tSW5mbyA9IGZ1bmN0aW9uIChkYXRhU291cmNlSW5mbykge1xuICAgICAgICB2YXIgZGF0YVNvdXJjZUltcGwgPSBuZXcgRGF0YVNvdXJjZUltcGxfMS5EYXRhU291cmNlSW1wbChkYXRhU291cmNlSW5mbyk7XG4gICAgICAgIHZhciBkYXRhU291cmNlID0gbmV3IERhdGFTb3VyY2VfMS5EYXRhU291cmNlKGRhdGFTb3VyY2VJbXBsKTtcbiAgICAgICAgZGF0YVNvdXJjZUltcGwuaW5pdGlhbGl6ZVdpdGhQdWJsaWNJbnRlcmZhY2VzKGRhdGFTb3VyY2UpO1xuICAgICAgICByZXR1cm4gZGF0YVNvdXJjZTtcbiAgICB9O1xuICAgIHJldHVybiBXb3Jrc2hlZXRJbXBsO1xufShTaGVldEltcGxfMS5TaGVldEltcGwpKTtcbmV4cG9ydHMuV29ya3NoZWV0SW1wbCA9IFdvcmtzaGVldEltcGw7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Xb3Jrc2hlZXRJbXBsLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi4vbGliL0ludGVybmFsL1dvcmtzaGVldEltcGwuanNcbiAqKiBtb2R1bGUgaWQgPSA1NVxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgRGF0YVNvdXJjZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gRGF0YVNvdXJjZShfZGF0YVNvdXJjZUltcGwpIHtcbiAgICAgICAgdGhpcy5fZGF0YVNvdXJjZUltcGwgPSBfZGF0YVNvdXJjZUltcGw7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhU291cmNlLnByb3RvdHlwZSwgXCJuYW1lXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZUltcGwubmFtZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFTb3VyY2UucHJvdG90eXBlLCBcImlkXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZUltcGwuaWQ7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhU291cmNlLnByb3RvdHlwZSwgXCJmaWVsZHNcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlSW1wbC5maWVsZHM7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhU291cmNlLnByb3RvdHlwZSwgXCJjb25uZWN0aW9uU3VtbWFyaWVzXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZUltcGwuY29ubmVjdGlvblN1bW1hcmllcztcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFTb3VyY2UucHJvdG90eXBlLCBcImV4dHJhY3RVcGRhdGVUaW1lXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZUltcGwuZXh0cmFjdFVwZGF0ZVRpbWU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhU291cmNlLnByb3RvdHlwZSwgXCJpc0V4dHJhY3RcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlSW1wbC5pc0V4dHJhY3Q7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIERhdGFTb3VyY2UucHJvdG90eXBlLnJlZnJlc2hBc3luYyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2VJbXBsLnJlZnJlc2hBc3luYygpO1xuICAgIH07XG4gICAgRGF0YVNvdXJjZS5wcm90b3R5cGUuZ2V0VW5kZXJseWluZ0RhdGFBc3luYyA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlSW1wbC5nZXRVbmRlcmx5aW5nRGF0YUFzeW5jKG9wdGlvbnMpO1xuICAgIH07XG4gICAgcmV0dXJuIERhdGFTb3VyY2U7XG59KCkpO1xuZXhwb3J0cy5EYXRhU291cmNlID0gRGF0YVNvdXJjZTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURhdGFTb3VyY2UuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiAuLi9saWIvRGF0YVNvdXJjZS5qc1xuICoqIG1vZHVsZSBpZCA9IDU2XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBhcGlfc2hhcmVkXzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLXNoYXJlZFwiKTtcbnZhciBGaWVsZEltcGxfMSA9IHJlcXVpcmUoXCIuL0ZpZWxkSW1wbFwiKTtcbnZhciBGaWVsZF8xID0gcmVxdWlyZShcIi4uL0ZpZWxkXCIpO1xudmFyIERhdGFTb3VyY2VJbXBsID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBEYXRhU291cmNlSW1wbChfZGF0YVNvdXJjZUluZm8pIHtcbiAgICAgICAgdGhpcy5fZGF0YVNvdXJjZUluZm8gPSBfZGF0YVNvdXJjZUluZm87XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhU291cmNlSW1wbC5wcm90b3R5cGUsIFwibmFtZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2VJbmZvLm5hbWU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhU291cmNlSW1wbC5wcm90b3R5cGUsIFwiaWRcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlSW5mby5pZDtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFTb3VyY2VJbXBsLnByb3RvdHlwZSwgXCJleHRyYWN0VXBkYXRlVGltZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2VJbmZvLmV4dHJhY3RVcGRhdGVUaW1lO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRGF0YVNvdXJjZUltcGwucHJvdG90eXBlLCBcImZpZWxkc1wiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZpZWxkcztcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFTb3VyY2VJbXBsLnByb3RvdHlwZSwgXCJpc0V4dHJhY3RcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlSW5mby5pc0V4dHJhY3Q7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhU291cmNlSW1wbC5wcm90b3R5cGUsIFwiY29ubmVjdGlvblN1bW1hcmllc1wiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhU291cmNlIGNvbm5lY3Rpb25TdW1tYXJpZXMgQVBJIG5vdCB5ZXQgaW1wbGVtZW50ZWQuJyk7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIERhdGFTb3VyY2VJbXBsLnByb3RvdHlwZS5yZWZyZXNoQXN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBkYXRhU291cmNlU2VydmljZSA9IGFwaV9zaGFyZWRfMS5BcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZShcImRhdGEtc291cmNlLXNlcnZpY2VcIiAvKiBEYXRhU291cmNlU2VydmljZSAqLyk7XG4gICAgICAgIHJldHVybiBkYXRhU291cmNlU2VydmljZS5yZWZyZXNoQXN5bmModGhpcy5fZGF0YVNvdXJjZUluZm8uaWQpO1xuICAgIH07XG4gICAgRGF0YVNvdXJjZUltcGwucHJvdG90eXBlLmdldFVuZGVybHlpbmdEYXRhQXN5bmMgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICB2YXIgZGVmYXVsdE9wdGlvbnMgPSB7XG4gICAgICAgICAgICBpZ25vcmVBbGlhc2VzOiBmYWxzZSxcbiAgICAgICAgICAgIG1heFJvd3M6IDEwMDAwLFxuICAgICAgICAgICAgY29sdW1uc1RvSW5jbHVkZTogW10sXG4gICAgICAgIH07XG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgICB2YXIgZ2V0RGF0YVNlcnZpY2UgPSBhcGlfc2hhcmVkXzEuQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2UoXCJnZXQtZGF0YS1zZXJ2aWNlXCIgLyogR2V0RGF0YSAqLyk7XG4gICAgICAgIHJldHVybiBnZXREYXRhU2VydmljZS5nZXREYXRhU291cmNlRGF0YUFzeW5jKHRoaXMuaWQsICEhb3B0aW9ucy5pZ25vcmVBbGlhc2VzLCBvcHRpb25zLm1heFJvd3MgfHwgZGVmYXVsdE9wdGlvbnMubWF4Um93cywgb3B0aW9ucy5jb2x1bW5zVG9JbmNsdWRlIHx8IGRlZmF1bHRPcHRpb25zLmNvbHVtbnNUb0luY2x1ZGUpO1xuICAgIH07XG4gICAgRGF0YVNvdXJjZUltcGwucHJvdG90eXBlLmluaXRpYWxpemVXaXRoUHVibGljSW50ZXJmYWNlcyA9IGZ1bmN0aW9uIChkYXRhU291cmNlKSB7XG4gICAgICAgIHRoaXMuX2ZpZWxkcyA9IHRoaXMuX2RhdGFTb3VyY2VJbmZvLmZpZWxkcy5tYXAoZnVuY3Rpb24gKGZpZWxkTW9kZWwpIHtcbiAgICAgICAgICAgIHZhciBmaWVsZEltcGwgPSBuZXcgRmllbGRJbXBsXzEuRmllbGRJbXBsKGZpZWxkTW9kZWwsIGRhdGFTb3VyY2UpO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBGaWVsZF8xLkZpZWxkKGZpZWxkSW1wbCk7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgcmV0dXJuIERhdGFTb3VyY2VJbXBsO1xufSgpKTtcbmV4cG9ydHMuRGF0YVNvdXJjZUltcGwgPSBEYXRhU291cmNlSW1wbDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURhdGFTb3VyY2VJbXBsLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi4vbGliL0ludGVybmFsL0RhdGFTb3VyY2VJbXBsLmpzXG4gKiogbW9kdWxlIGlkID0gNTdcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIGFwaV9zaGFyZWRfMSA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktc2hhcmVkXCIpO1xudmFyIEZpZWxkSW1wbCA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gRmllbGRJbXBsKF9maWVsZEluZm8sIF9wYXJlbnREYXRhU291cmNlKSB7XG4gICAgICAgIHRoaXMuX2ZpZWxkSW5mbyA9IF9maWVsZEluZm87XG4gICAgICAgIHRoaXMuX3BhcmVudERhdGFTb3VyY2UgPSBfcGFyZW50RGF0YVNvdXJjZTtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZpZWxkSW1wbC5wcm90b3R5cGUsIFwibmFtZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW5mby5uYW1lO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRmllbGRJbXBsLnByb3RvdHlwZSwgXCJpZFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW5mby5pZDtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZpZWxkSW1wbC5wcm90b3R5cGUsIFwiZGVzY3JpcHRpb25cIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9maWVsZEluZm8uZGVzY3JpcHRpb247XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGaWVsZEltcGwucHJvdG90eXBlLCBcImFnZ3JlZ2F0aW9uXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gYXBpX3NoYXJlZF8xLkludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncy5maWVsZEFnZ3JlZ2F0aW9uVHlwZS5jb252ZXJ0KHRoaXMuX2ZpZWxkSW5mby5hZ2dyZWdhdGlvbik7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGaWVsZEltcGwucHJvdG90eXBlLCBcImRhdGFTb3VyY2VcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9wYXJlbnREYXRhU291cmNlO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRmllbGRJbXBsLnByb3RvdHlwZSwgXCJyb2xlXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gYXBpX3NoYXJlZF8xLkludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncy5maWVsZFJvbGVUeXBlLmNvbnZlcnQodGhpcy5fZmllbGRJbmZvLnJvbGUpO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRmllbGRJbXBsLnByb3RvdHlwZSwgXCJpc0hpZGRlblwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW5mby5pc0hpZGRlbjtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZpZWxkSW1wbC5wcm90b3R5cGUsIFwiaXNHZW5lcmF0ZWRcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9maWVsZEluZm8uaXNHZW5lcmF0ZWQ7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGaWVsZEltcGwucHJvdG90eXBlLCBcImlzQ2FsY3VsYXRlZEZpZWxkXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZmllbGRJbmZvLmlzQ2FsY3VsYXRlZEZpZWxkO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRmllbGRJbXBsLnByb3RvdHlwZSwgXCJpc0NvbWJpbmVkRmllbGRcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9maWVsZEluZm8uaXNDb21iaW5lZEZpZWxkO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBGaWVsZEltcGwucHJvdG90eXBlLmdldENhbGN1bGF0ZWRGaWVsZEFzeW5jID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZpZWxkIGdldENhbGN1bGF0ZWRGaWVsZEFzeW5jIG1ldGhvZCBub3QgeWV0IGltcGxlbWVudGVkLicpO1xuICAgIH07XG4gICAgcmV0dXJuIEZpZWxkSW1wbDtcbn0oKSk7XG5leHBvcnRzLkZpZWxkSW1wbCA9IEZpZWxkSW1wbDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUZpZWxkSW1wbC5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4uL2xpYi9JbnRlcm5hbC9GaWVsZEltcGwuanNcbiAqKiBtb2R1bGUgaWQgPSA1OFxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgRmllbGQgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEZpZWxkKF9maWVsZEltcGwpIHtcbiAgICAgICAgdGhpcy5fZmllbGRJbXBsID0gX2ZpZWxkSW1wbDtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZpZWxkLnByb3RvdHlwZSwgXCJuYW1lXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZmllbGRJbXBsLm5hbWU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGaWVsZC5wcm90b3R5cGUsIFwiaWRcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9maWVsZEltcGwuaWQ7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGaWVsZC5wcm90b3R5cGUsIFwiZGVzY3JpcHRpb25cIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9maWVsZEltcGwuZGVzY3JpcHRpb247XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGaWVsZC5wcm90b3R5cGUsIFwiYWdncmVnYXRpb25cIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9maWVsZEltcGwuYWdncmVnYXRpb247XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGaWVsZC5wcm90b3R5cGUsIFwiZGF0YVNvdXJjZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW1wbC5kYXRhU291cmNlO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRmllbGQucHJvdG90eXBlLCBcInJvbGVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9maWVsZEltcGwucm9sZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZpZWxkLnByb3RvdHlwZSwgXCJpc0hpZGRlblwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW1wbC5pc0hpZGRlbjtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZpZWxkLnByb3RvdHlwZSwgXCJpc0dlbmVyYXRlZFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW1wbC5pc0dlbmVyYXRlZDtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZpZWxkLnByb3RvdHlwZSwgXCJpc0NhbGN1bGF0ZWRGaWVsZFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW1wbC5pc0NhbGN1bGF0ZWRGaWVsZDtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZpZWxkLnByb3RvdHlwZSwgXCJjb2x1bW5UeXBlXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZpZWxkLmNvbHVtblR5cGUgbm90IHlldCBpbXBsZW1ldG5lZC4nKTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZpZWxkLnByb3RvdHlwZSwgXCJpc0NvbWJpbmVkRmllbGRcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9maWVsZEltcGwuaXNDb21iaW5lZEZpZWxkO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBGaWVsZC5wcm90b3R5cGUuZ2V0Q2FsY3VsYXRlZEZpZWxkQXN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWVsZEltcGwuZ2V0Q2FsY3VsYXRlZEZpZWxkQXN5bmMoKTtcbiAgICB9O1xuICAgIHJldHVybiBGaWVsZDtcbn0oKSk7XG5leHBvcnRzLkZpZWxkID0gRmllbGQ7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1GaWVsZC5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4uL2xpYi9GaWVsZC5qc1xuICoqIG1vZHVsZSBpZCA9IDU5XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBhcGlfc2hhcmVkXzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLXNoYXJlZFwiKTtcbnZhciBhcGlfdXRpbHNfMSA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktdXRpbHNcIik7XG52YXIgU2V0dGluZ3NJbXBsID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBTZXR0aW5nc0ltcGwoc2V0dGluZ3NJbmZvKSB7XG4gICAgICAgIC8vIFNpbmNlIHByb21pc2VzIGNhbid0IGJlIGludHJvc3BlY3RlZCBmb3Igc3RhdGUsIGtlZXAgYSB2YXJpYWJsZSB0aGF0XG4gICAgICAgIC8vIGluZGljYXRlcyBhIHNhdmUgaXMgaW4gcHJvZ3Jlc3MsIHNvIHRoYXQgc2V0L2VyYXNlIGNhbid0IGJlIGNhbGxlZCBkdXJpbmcgYSBzYXZlLlxuICAgICAgICB0aGlzLl9zYXZlSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVTZXR0aW5ncyhzZXR0aW5nc0luZm8pO1xuICAgIH1cbiAgICBTZXR0aW5nc0ltcGwucHJvdG90eXBlLmVyYXNlID0gZnVuY3Rpb24gKGtleSkge1xuICAgICAgICBhcGlfdXRpbHNfMS5QYXJhbS52ZXJpZnlWYWx1ZShrZXksICdrZXknKTtcbiAgICAgICAgLy8gT25seSBtYWtlIGEgbW9kaWZpY2F0aW9uIGlmIHdlIGhhdmUgdGhlIGtleSBhbHJlYWR5XG4gICAgICAgIGlmICh0aGlzLl9jdXJyZW50U2V0dGluZ3Nba2V5XSkge1xuICAgICAgICAgICAgdGhpcy52ZXJpZnlTZXR0aW5nc0FyZVVubG9ja2VkKCk7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5fY3VycmVudFNldHRpbmdzW2tleV07XG4gICAgICAgICAgICB0aGlzLl9pc01vZGlmaWVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgU2V0dGluZ3NJbXBsLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgIGFwaV91dGlsc18xLlBhcmFtLnZlcmlmeVZhbHVlKGtleSwgJ2tleScpO1xuICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVudFNldHRpbmdzW2tleV07XG4gICAgfTtcbiAgICBTZXR0aW5nc0ltcGwucHJvdG90eXBlLmdldEFsbCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgLy8gUmV0dXJucyBhIG11dGFibGUgY29weSBvZiB0aGUgc2V0dGluZ3NcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX2N1cnJlbnRTZXR0aW5ncyk7XG4gICAgfTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoU2V0dGluZ3NJbXBsLnByb3RvdHlwZSwgXCJpc01vZGlmaWVkXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5faXNNb2RpZmllZDtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgU2V0dGluZ3NJbXBsLnByb3RvdHlwZS5zYXZlQXN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHRoaXMudmVyaWZ5U2V0dGluZ3NBcmVVbmxvY2tlZCgpO1xuICAgICAgICAvLyBKdXN0IHJlc29sdmUgaW1tZWRpYXRlbHkgaWYgc2V0dGluZ3MgYXJlIHVuY2hhbmdlZFxuICAgICAgICBpZiAoIXRoaXMuX2lzTW9kaWZpZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fY3VycmVudFNldHRpbmdzKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zYXZlSW5Qcm9ncmVzcyA9IHRydWU7XG4gICAgICAgIC8vIFVzZSB0aGUgc2V0dGluZ3Mgc2VydmljZSB0byBzYXZlIHNldHRpbmdzIHRvIHR3YlxuICAgICAgICB2YXIgc2V0dGluZ3NTZXJ2aWNlID0gYXBpX3NoYXJlZF8xLkFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlKFwiU2V0dGluZ3NTZXJ2aWNlXCIgLyogU2V0dGluZ3NTZXJ2aWNlICovKTtcbiAgICAgICAgcmV0dXJuIHNldHRpbmdzU2VydmljZS5zYXZlU2V0dGluZ3NBc3luYyh0aGlzLl9jdXJyZW50U2V0dGluZ3MpLnRoZW4oZnVuY3Rpb24gKG5ld1NldHRpbmdzKSB7XG4gICAgICAgICAgICBfdGhpcy5fc2F2ZUluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgICAgICAgIF90aGlzLl9pc01vZGlmaWVkID0gZmFsc2U7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKF90aGlzLl9jdXJyZW50U2V0dGluZ3MsIG5ld1NldHRpbmdzKTtcbiAgICAgICAgICAgIHJldHVybiBuZXdTZXR0aW5ncztcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBTZXR0aW5nc0ltcGwucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gICAgICAgIGFwaV91dGlsc18xLlBhcmFtLnZlcmlmeVZhbHVlKGtleSwgJ2tleScpOyAvLyBLZXkgc2hvdWxkbid0IGJlIGFuIGVtcHR5IHN0cmluZy5cbiAgICAgICAgYXBpX3V0aWxzXzEuUGFyYW0udmVyaWZ5U3RyaW5nKHZhbHVlLCAndmFsdWUnKTsgLy8gRW1wdHkgc3RyaW5nIHZhbHVlIGlzIGFsbG93ZWQuXG4gICAgICAgIHRoaXMudmVyaWZ5U2V0dGluZ3NBcmVVbmxvY2tlZCgpO1xuICAgICAgICB0aGlzLl9jdXJyZW50U2V0dGluZ3Nba2V5XSA9IHZhbHVlO1xuICAgICAgICB0aGlzLl9pc01vZGlmaWVkID0gdHJ1ZTtcbiAgICB9O1xuICAgIFNldHRpbmdzSW1wbC5wcm90b3R5cGUuaW5pdGlhbGl6ZVNldHRpbmdzID0gZnVuY3Rpb24gKHNldHRpbmdzSW5mbykge1xuICAgICAgICBhcGlfdXRpbHNfMS5QYXJhbS52ZXJpZnlWYWx1ZShzZXR0aW5nc0luZm8sICdzZXR0aW5nc0luZm8nKTtcbiAgICAgICAgYXBpX3V0aWxzXzEuUGFyYW0udmVyaWZ5VmFsdWUoc2V0dGluZ3NJbmZvLnNldHRpbmdzVmFsdWVzLCAnc2V0dGluZ3NJbmZvLlNldHRpbmdzVmFsdWVzJyk7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRTZXR0aW5ncyA9IHNldHRpbmdzSW5mby5zZXR0aW5nc1ZhbHVlcztcbiAgICAgICAgLy8gUmVzZXQgdGhlIGlzTW9kaWZpZWQgZmxhZ1xuICAgICAgICB0aGlzLl9pc01vZGlmaWVkID0gZmFsc2U7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBUaGlzIGhlbHBlciBzaG91bGQgYmUgY2FsbGVkIGJlZm9yZSBhbnkgbG9jYWwgdXBkYXRlIHRvIHRoaXMuY3VycmVudFNldHRpbmdzLlxuICAgICAqIENoZWNrcyBpZiBhIGN1cnJlbnQgc2F2ZSBjYWxsIGlzIHN0aWxsIGluIHByb2dyZXNzIGFuZCB0aHJvd3MgYW4gZXJyb3IgaWYgc28uXG4gICAgICovXG4gICAgU2V0dGluZ3NJbXBsLnByb3RvdHlwZS52ZXJpZnlTZXR0aW5nc0FyZVVubG9ja2VkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcy5fc2F2ZUluUHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQXN5bmMgU2F2ZSBpcyBpbiBwcm9ncmVzcywgdXBkYXRpbmcgc2V0dGluZ3MgaXMgbm90IGFsbG93ZWQuJyk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiBTZXR0aW5nc0ltcGw7XG59KCkpO1xuZXhwb3J0cy5TZXR0aW5nc0ltcGwgPSBTZXR0aW5nc0ltcGw7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1TZXR0aW5nc0ltcGwuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiAuLi9saWIvSW50ZXJuYWwvU2V0dGluZ3NJbXBsLmpzXG4gKiogbW9kdWxlIGlkID0gNjBcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuLyoqXG4gKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgZXh0ZXJuYWwgQWRkSW4gbmFtZXNwYWNlLlxuICovXG52YXIgQWRkSW4gPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEFkZEluKGFkZEluSW1wbCkge1xuICAgICAgICB0aGlzLmFkZEluSW1wbCA9IGFkZEluSW1wbDtcbiAgICAgICAgdGhpcy5hZGRJbkltcGwgPSBhZGRJbkltcGw7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBZGRJbi5wcm90b3R5cGUsIFwiZGFzaGJvYXJkQ29udGVudFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWRkSW5JbXBsLmRhc2hib2FyZENvbnRlbnQ7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBZGRJbi5wcm90b3R5cGUsIFwiZW52aXJvbm1lbnRcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFkZEluSW1wbC5lbnZpcm9ubWVudDtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFkZEluLnByb3RvdHlwZSwgXCJzZXR0aW5nc1wiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWRkSW5JbXBsLnNldHRpbmdzO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQWRkSW4ucHJvdG90eXBlLCBcInVpXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FQSSBjYWxsIG5vdCB5ZXQgaW1wbGVtZW50ZWQnKTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgQWRkSW4ucHJvdG90eXBlLmluaXRpYWxpemVBc3luYyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkSW5JbXBsLmluaXRpYWxpemVBc3luYygpO1xuICAgIH07XG4gICAgcmV0dXJuIEFkZEluO1xufSgpKTtcbmV4cG9ydHMuQWRkSW4gPSBBZGRJbjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUFkZEluLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi4vbGliL05hbWVzcGFjZXMvQWRkSW4uanNcbiAqKiBtb2R1bGUgaWQgPSA2MVxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDVkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUMxQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDN0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDdk9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDakJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDUkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDakRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDMUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQzVCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUM1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQzVEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDeEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUN4QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNySkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQzVDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQ1hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQ3pXQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDOUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUM5QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDaEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQ3pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDN0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQ1ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQzlCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUM3TUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNYQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQ3ZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDdklBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUMzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDeElBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQzVOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNwREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDeEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQ3ZEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUM1RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNqSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNuQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDMVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDekZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDbERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDdEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQ2xDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNWQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDNUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQ3BEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQ3ZFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNwREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUM3RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDOUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDNUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNsS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQ3pEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQzFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDcEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDekZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUM5RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OzsiLCJzb3VyY2VSb290IjoiIn0= \ No newline at end of file diff --git a/Samples/DataSources/DataSources.trex b/Samples/DataSources/DataSources.trex new file mode 100644 index 00000000..0c58411a --- /dev/null +++ b/Samples/DataSources/DataSources.trex @@ -0,0 +1,22 @@ + + + + en_US + + DataSources Sample + + + + + 1.1 + + http://localhost:8765/samples/datasources/datasources.html + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAlhJREFUOI2Nkt9vy1EYh5/3bbsvRSySCZbIxI+ZCKsN2TKtSFyIrV2WuRCJuBiJWxfuxCVXbvwFgiEtposgLFJElnbU1SxIZIIRJDKTrdu+53Uhra4mce7Oe57Pcz7JOULFisViwZ+29LAzOSjQYDgz1ZcCvWuXV11MJpN+OS/lm6179teqH0yDqxPTCyKSA8DcDsyOmOprnCaeP7459pdgy969i0LTC3IO/RQMyoHcQN+3cnljW3dNIFC47qDaK3g7BwdTkwBaBELT4ZPOUVWgKl4ZBnjxJPUlMDnTDrp0pmr6RHFeEjjcUUXPDGeSEwDN0Xg8sivxMhJNjGzbHd8PkM3eHRfkrBM5NkcQaY2vUnTlrDIA0NoaX+KLXFFlowr14tvVpqb2MICzmQcKqxvbumv+NAhZGCCIPwEw6QWXKYRL/VUXO0+rAUJiPwAk5MIlgVfwPjjHLCL1APmHN94ZdqeYN+NW/mn6I4BvwQYchcLnwFhJMDiYmlRxAzjpKWZkYkUCcZ2I61wi37tLbYyjiN0fHk5Oz3nGSLSzBbNHCF35R7f6K1/hN9PRhek11FrymfQQQKB4+Gl05P2qNRtmETlXW7e+b2z01dfycGNbfFMAbqNyKp9Jp4rzOT8RYFs0njJkc2iqsCObvTsOsDWWqA5C1uFy+Uz/oXJeKwVT4h0RmPUXhi79vuC0Ku6yOffTK3g9lfxfDQAisY516sg5kfOCiJk7HoLt2cf9b/9LANAc7dznm98PagG1fUOZ9IP5uMB8Q4CPoyNvausapkTt3rNMuvdf3C/o6+czhtdwmwAAAABJRU5ErkJggg== + + + + DataSources Sample + + + diff --git a/Samples/DataSources/datasources.html b/Samples/DataSources/datasources.html new file mode 100644 index 00000000..8714bf3c --- /dev/null +++ b/Samples/DataSources/datasources.html @@ -0,0 +1,30 @@ + + + + + + + + Datasources Sample + + + + + + + + + + + + + + + +
+
+

DataSources Sample

+
+
+ + diff --git a/Samples/DataSources/datasources.js b/Samples/DataSources/datasources.js new file mode 100644 index 00000000..0ffdd02f --- /dev/null +++ b/Samples/DataSources/datasources.js @@ -0,0 +1 @@ +// TODO \ No newline at end of file diff --git a/Samples/Filtering/Filtering.trex b/Samples/Filtering/Filtering.trex new file mode 100644 index 00000000..67bfb9d0 --- /dev/null +++ b/Samples/Filtering/Filtering.trex @@ -0,0 +1,22 @@ + + + + en_US + + Filtering Sample + + + + + 1.1 + + http://localhost:8765/samples/filtering/filtering.html + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAlhJREFUOI2Nkt9vy1EYh5/3bbsvRSySCZbIxI+ZCKsN2TKtSFyIrV2WuRCJuBiJWxfuxCVXbvwFgiEtposgLFJElnbU1SxIZIIRJDKTrdu+53Uhra4mce7Oe57Pcz7JOULFisViwZ+29LAzOSjQYDgz1ZcCvWuXV11MJpN+OS/lm6179teqH0yDqxPTCyKSA8DcDsyOmOprnCaeP7459pdgy969i0LTC3IO/RQMyoHcQN+3cnljW3dNIFC47qDaK3g7BwdTkwBaBELT4ZPOUVWgKl4ZBnjxJPUlMDnTDrp0pmr6RHFeEjjcUUXPDGeSEwDN0Xg8sivxMhJNjGzbHd8PkM3eHRfkrBM5NkcQaY2vUnTlrDIA0NoaX+KLXFFlowr14tvVpqb2MICzmQcKqxvbumv+NAhZGCCIPwEw6QWXKYRL/VUXO0+rAUJiPwAk5MIlgVfwPjjHLCL1APmHN94ZdqeYN+NW/mn6I4BvwQYchcLnwFhJMDiYmlRxAzjpKWZkYkUCcZ2I61wi37tLbYyjiN0fHk5Oz3nGSLSzBbNHCF35R7f6K1/hN9PRhek11FrymfQQQKB4+Gl05P2qNRtmETlXW7e+b2z01dfycGNbfFMAbqNyKp9Jp4rzOT8RYFs0njJkc2iqsCObvTsOsDWWqA5C1uFy+Uz/oXJeKwVT4h0RmPUXhi79vuC0Ku6yOffTK3g9lfxfDQAisY516sg5kfOCiJk7HoLt2cf9b/9LANAc7dznm98PagG1fUOZ9IP5uMB8Q4CPoyNvausapkTt3rNMuvdf3C/o6+czhtdwmwAAAABJRU5ErkJggg== + + + + Filtering Sample + + + diff --git a/Samples/Filtering/filtering.html b/Samples/Filtering/filtering.html new file mode 100644 index 00000000..a38ff329 --- /dev/null +++ b/Samples/Filtering/filtering.html @@ -0,0 +1,30 @@ + + + + + + + + Filtering Sample + + + + + + + + + + + + + + + +
+
+

Filtering Sample

+
+
+ + diff --git a/Samples/Filtering/filtering.js b/Samples/Filtering/filtering.js new file mode 100644 index 00000000..ea641885 --- /dev/null +++ b/Samples/Filtering/filtering.js @@ -0,0 +1 @@ +//TODO \ No newline at end of file diff --git a/Samples/Parameters/Parameters.trex b/Samples/Parameters/Parameters.trex new file mode 100644 index 00000000..659d0283 --- /dev/null +++ b/Samples/Parameters/Parameters.trex @@ -0,0 +1,22 @@ + + + + en_US + + Parameters Sample + + + + + 1.1 + + http://localhost:8765/samples/parameters/parameters.html + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAlhJREFUOI2Nkt9vy1EYh5/3bbsvRSySCZbIxI+ZCKsN2TKtSFyIrV2WuRCJuBiJWxfuxCVXbvwFgiEtposgLFJElnbU1SxIZIIRJDKTrdu+53Uhra4mce7Oe57Pcz7JOULFisViwZ+29LAzOSjQYDgz1ZcCvWuXV11MJpN+OS/lm6179teqH0yDqxPTCyKSA8DcDsyOmOprnCaeP7459pdgy969i0LTC3IO/RQMyoHcQN+3cnljW3dNIFC47qDaK3g7BwdTkwBaBELT4ZPOUVWgKl4ZBnjxJPUlMDnTDrp0pmr6RHFeEjjcUUXPDGeSEwDN0Xg8sivxMhJNjGzbHd8PkM3eHRfkrBM5NkcQaY2vUnTlrDIA0NoaX+KLXFFlowr14tvVpqb2MICzmQcKqxvbumv+NAhZGCCIPwEw6QWXKYRL/VUXO0+rAUJiPwAk5MIlgVfwPjjHLCL1APmHN94ZdqeYN+NW/mn6I4BvwQYchcLnwFhJMDiYmlRxAzjpKWZkYkUCcZ2I61wi37tLbYyjiN0fHk5Oz3nGSLSzBbNHCF35R7f6K1/hN9PRhek11FrymfQQQKB4+Gl05P2qNRtmETlXW7e+b2z01dfycGNbfFMAbqNyKp9Jp4rzOT8RYFs0njJkc2iqsCObvTsOsDWWqA5C1uFy+Uz/oXJeKwVT4h0RmPUXhi79vuC0Ku6yOffTK3g9lfxfDQAisY516sg5kfOCiJk7HoLt2cf9b/9LANAc7dznm98PagG1fUOZ9IP5uMB8Q4CPoyNvausapkTt3rNMuvdf3C/o6+czhtdwmwAAAABJRU5ErkJggg== + + + + Parameters Sample + + + diff --git a/Samples/Parameters/parameters.html b/Samples/Parameters/parameters.html new file mode 100644 index 00000000..2356c07d --- /dev/null +++ b/Samples/Parameters/parameters.html @@ -0,0 +1,30 @@ + + + + + + + + Parameters Sample + + + + + + + + + + + + + + + +
+
+

Parameters Sample

+
+
+ + diff --git a/Samples/Parameters/parameters.js b/Samples/Parameters/parameters.js new file mode 100644 index 00000000..ea641885 --- /dev/null +++ b/Samples/Parameters/parameters.js @@ -0,0 +1 @@ +//TODO \ No newline at end of file diff --git a/Samples/README.md b/Samples/README.md new file mode 100644 index 00000000..a8b1cc2b --- /dev/null +++ b/Samples/README.md @@ -0,0 +1,15 @@ +# Running Samples + +Follow these instructions to run any of the samples in the Samples directory. The only exception is the React Tutorial, that sample has its own README and setup instructions. + +### Pre-requisites +* You must have Node.js or Python installed (or other software which can serve the contents of this folder over http). You can get Node.js from http://nodejs.org and Python from https://www.python.org/downloads/ + +### Setup +1. Copy the `.trex` files of the sample you wish to run to `~\Documents\My Tableau Repository (Beta)\Extensions` so they are available to Tableau. +2. Open a command prompt window to the location where you cloned this repo. +4. Start a simple file hosting server: + * Python 2.x : `python -m SimpleHTTPServer 8765` + * Python 3.x : `python -m http.server 8765` + * Node.js : First run `npm install http-server -g` (only the first time) then `http-server -p 8765` +5. Launch Tableau and use the sample. diff --git a/Samples/Settings/Settings.trex b/Samples/Settings/Settings.trex new file mode 100644 index 00000000..7aaab0a1 --- /dev/null +++ b/Samples/Settings/Settings.trex @@ -0,0 +1,22 @@ + + + + en_US + + Settings Sample + + + + + 1.1 + + http://localhost:8765/samples/settings/settings.html + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAlhJREFUOI2Nkt9vy1EYh5/3bbsvRSySCZbIxI+ZCKsN2TKtSFyIrV2WuRCJuBiJWxfuxCVXbvwFgiEtposgLFJElnbU1SxIZIIRJDKTrdu+53Uhra4mce7Oe57Pcz7JOULFisViwZ+29LAzOSjQYDgz1ZcCvWuXV11MJpN+OS/lm6179teqH0yDqxPTCyKSA8DcDsyOmOprnCaeP7459pdgy969i0LTC3IO/RQMyoHcQN+3cnljW3dNIFC47qDaK3g7BwdTkwBaBELT4ZPOUVWgKl4ZBnjxJPUlMDnTDrp0pmr6RHFeEjjcUUXPDGeSEwDN0Xg8sivxMhJNjGzbHd8PkM3eHRfkrBM5NkcQaY2vUnTlrDIA0NoaX+KLXFFlowr14tvVpqb2MICzmQcKqxvbumv+NAhZGCCIPwEw6QWXKYRL/VUXO0+rAUJiPwAk5MIlgVfwPjjHLCL1APmHN94ZdqeYN+NW/mn6I4BvwQYchcLnwFhJMDiYmlRxAzjpKWZkYkUCcZ2I61wi37tLbYyjiN0fHk5Oz3nGSLSzBbNHCF35R7f6K1/hN9PRhek11FrymfQQQKB4+Gl05P2qNRtmETlXW7e+b2z01dfycGNbfFMAbqNyKp9Jp4rzOT8RYFs0njJkc2iqsCObvTsOsDWWqA5C1uFy+Uz/oXJeKwVT4h0RmPUXhi79vuC0Ku6yOffTK3g9lfxfDQAisY516sg5kfOCiJk7HoLt2cf9b/9LANAc7dznm98PagG1fUOZ9IP5uMB8Q4CPoyNvausapkTt3rNMuvdf3C/o6+czhtdwmwAAAABJRU5ErkJggg== + + + + Settings Sample + + + diff --git a/Samples/Settings/settings.html b/Samples/Settings/settings.html new file mode 100644 index 00000000..239a2731 --- /dev/null +++ b/Samples/Settings/settings.html @@ -0,0 +1,29 @@ + + + + + + + Settings Sample + + + + + + + + + + + + + + + +
+
+

Settings Sample

+
+
+ + diff --git a/Samples/Settings/settings.js b/Samples/Settings/settings.js new file mode 100644 index 00000000..ea641885 --- /dev/null +++ b/Samples/Settings/settings.js @@ -0,0 +1 @@ +//TODO \ No newline at end of file diff --git a/Tutorial/React/README.md b/Tutorial/React/README.md new file mode 100644 index 00000000..bb64e928 --- /dev/null +++ b/Tutorial/React/README.md @@ -0,0 +1 @@ +TODO, explain how to setup React sample. \ No newline at end of file diff --git a/Tutorial/React/TutorialReact.trex b/Tutorial/React/TutorialReact.trex new file mode 100644 index 00000000..f62d75e9 --- /dev/null +++ b/Tutorial/React/TutorialReact.trex @@ -0,0 +1,22 @@ + + + + en_US + + Extensions Tutorial (React) + + + + + 1.1 + + http://localhost:8765/tutorial/react/index.html + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAlhJREFUOI2Nkt9vy1EYh5/3bbsvRSySCZbIxI+ZCKsN2TKtSFyIrV2WuRCJuBiJWxfuxCVXbvwFgiEtposgLFJElnbU1SxIZIIRJDKTrdu+53Uhra4mce7Oe57Pcz7JOULFisViwZ+29LAzOSjQYDgz1ZcCvWuXV11MJpN+OS/lm6179teqH0yDqxPTCyKSA8DcDsyOmOprnCaeP7459pdgy969i0LTC3IO/RQMyoHcQN+3cnljW3dNIFC47qDaK3g7BwdTkwBaBELT4ZPOUVWgKl4ZBnjxJPUlMDnTDrp0pmr6RHFeEjjcUUXPDGeSEwDN0Xg8sivxMhJNjGzbHd8PkM3eHRfkrBM5NkcQaY2vUnTlrDIA0NoaX+KLXFFlowr14tvVpqb2MICzmQcKqxvbumv+NAhZGCCIPwEw6QWXKYRL/VUXO0+rAUJiPwAk5MIlgVfwPjjHLCL1APmHN94ZdqeYN+NW/mn6I4BvwQYchcLnwFhJMDiYmlRxAzjpKWZkYkUCcZ2I61wi37tLbYyjiN0fHk5Oz3nGSLSzBbNHCF35R7f6K1/hN9PRhek11FrymfQQQKB4+Gl05P2qNRtmETlXW7e+b2z01dfycGNbfFMAbqNyKp9Jp4rzOT8RYFs0njJkc2iqsCObvTsOsDWWqA5C1uFy+Uz/oXJeKwVT4h0RmPUXhi79vuC0Ku6yOffTK3g9lfxfDQAisY516sg5kfOCiJk7HoLt2cf9b/9LANAc7dznm98PagG1fUOZ9IP5uMB8Q4CPoyNvausapkTt3rNMuvdf3C/o6+czhtdwmwAAAABJRU5ErkJggg== + + + + Extensions Tutorial (React) + + + diff --git a/Tutorial/Standard/README.md b/Tutorial/Standard/README.md new file mode 100644 index 00000000..8504d567 --- /dev/null +++ b/Tutorial/Standard/README.md @@ -0,0 +1 @@ +link to actual tutorial \ No newline at end of file diff --git a/Tutorial/Standard/Tutorial.trex b/Tutorial/Standard/Tutorial.trex new file mode 100644 index 00000000..2df623a8 --- /dev/null +++ b/Tutorial/Standard/Tutorial.trex @@ -0,0 +1,22 @@ + + + + en_US + + Extensions Tutorial + + + + + 1.1 + + http://localhost:8765/tutorial/standard/index.html + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAlhJREFUOI2Nkt9vy1EYh5/3bbsvRSySCZbIxI+ZCKsN2TKtSFyIrV2WuRCJuBiJWxfuxCVXbvwFgiEtposgLFJElnbU1SxIZIIRJDKTrdu+53Uhra4mce7Oe57Pcz7JOULFisViwZ+29LAzOSjQYDgz1ZcCvWuXV11MJpN+OS/lm6179teqH0yDqxPTCyKSA8DcDsyOmOprnCaeP7459pdgy969i0LTC3IO/RQMyoHcQN+3cnljW3dNIFC47qDaK3g7BwdTkwBaBELT4ZPOUVWgKl4ZBnjxJPUlMDnTDrp0pmr6RHFeEjjcUUXPDGeSEwDN0Xg8sivxMhJNjGzbHd8PkM3eHRfkrBM5NkcQaY2vUnTlrDIA0NoaX+KLXFFlowr14tvVpqb2MICzmQcKqxvbumv+NAhZGCCIPwEw6QWXKYRL/VUXO0+rAUJiPwAk5MIlgVfwPjjHLCL1APmHN94ZdqeYN+NW/mn6I4BvwQYchcLnwFhJMDiYmlRxAzjpKWZkYkUCcZ2I61wi37tLbYyjiN0fHk5Oz3nGSLSzBbNHCF35R7f6K1/hN9PRhek11FrymfQQQKB4+Gl05P2qNRtmETlXW7e+b2z01dfycGNbfFMAbqNyKp9Jp4rzOT8RYFs0njJkc2iqsCObvTsOsDWWqA5C1uFy+Uz/oXJeKwVT4h0RmPUXhi79vuC0Ku6yOffTK3g9lfxfDQAisY516sg5kfOCiJk7HoLt2cf9b/9LANAc7dznm98PagG1fUOZ9IP5uMB8Q4CPoyNvausapkTt3rNMuvdf3C/o6+czhtdwmwAAAABJRU5ErkJggg== + + + + Extensions Tutorial + + + From 2236f437b46bd3eaf6b2f99138ae8ba4e349e63a Mon Sep 17 00:00:00 2001 From: Brendan Lee Date: Mon, 2 Oct 2017 13:21:24 -0700 Subject: [PATCH 2/2] removed examples and added npm start script --- .../HelloFrelard/AddIns/HelloFrelard.trex | 22 - Examples/HelloFrelard/hello-frelard.js | 22 - Examples/HelloFrelard/index.html | 32 - Examples/HelloFrelard/readme.md | 16 - Examples/HelloFrelard/tableau-addin-0.2.0.js | 18562 ------------ Examples/HelloFrelard/tableau-addin-0.3.0.js | 20442 ------------- Examples/HelloFrelard/tableau-addin-0.4.0.js | 23414 --------------- Examples/HelloFrelard/tableau-addin-0.5.0.js | 23670 ---------------- Examples/ReactJs/.babelrc | 7 - Examples/ReactJs/.editorconfig | 12 - Examples/ReactJs/.eslintrc | 35 - Examples/ReactJs/.gitignore | 33 - Examples/ReactJs/.yo-rc.json | 3 - Examples/ReactJs/AddIns/EnvironmentDemo.trex | 22 - Examples/ReactJs/AddIns/FilteringDemo.trex | 22 - Examples/ReactJs/AddIns/GetDataDemo.trex | 22 - Examples/ReactJs/AddIns/ParametersDemo.trex | 22 - Examples/ReactJs/AddIns/SelectedMarks.trex | 22 - Examples/ReactJs/AddIns/SettingsDemo.trex | 22 - Examples/ReactJs/cfg/base.js | 43 - Examples/ReactJs/cfg/defaults.js | 64 - Examples/ReactJs/cfg/dev.js | 39 - Examples/ReactJs/cfg/dist.js | 42 - Examples/ReactJs/cfg/test.js | 58 - Examples/ReactJs/dist/README.md | 2 - Examples/ReactJs/dist/static/README.md | 6 - Examples/ReactJs/dist/static/favicon.ico | Bin 4286 -> 0 bytes Examples/ReactJs/karma.conf.js | 36 - Examples/ReactJs/make_addin.js | 16 - Examples/ReactJs/package-lock.json | 6207 ---- Examples/ReactJs/package.json | 80 - Examples/ReactJs/readme.md | 16 - Examples/ReactJs/server.js | 36 - .../EnvironmentDemoComponent.js | 59 - .../CategoricalFilterDemoComponent.js | 97 - .../FiltersDemo/DateRangeFilterComponent.js | 109 - .../FiltersDemo/FiltersDemoComponent.js | 119 - .../GetDataConfigurationComponent.js | 135 - .../GetDataDemo/GetDataDemoComponent.js | 169 - .../GetDataDemo/GetDataTableComponent.js | 71 - .../src/components/LoadIndicatorComponent.js | 24 - Examples/ReactJs/src/components/Main.js | 80 - .../ParametersDemo/ParametersDemoComponent.js | 111 - .../SelectedMarksDemoComponent.js | 126 - .../SettingsDemo/AddSettingsComponent.js | 64 - .../SettingsDemo/SettingsDemoComponent.js | 79 - .../SettingsDemo/SettingsTableComponent.js | 52 - Examples/ReactJs/src/config/README.md | 35 - Examples/ReactJs/src/config/base.js | 5 - Examples/ReactJs/src/config/dev.js | 9 - Examples/ReactJs/src/config/dist.js | 9 - Examples/ReactJs/src/config/test.js | 9 - Examples/ReactJs/src/favicon.ico | Bin 4286 -> 0 bytes Examples/ReactJs/src/index.html | 19 - Examples/ReactJs/src/index.js | 7 - Examples/ReactJs/src/styles/App.css | 1 - .../src/styles/GetDataConfiguration.css | 3 - Examples/ReactJs/src/styles/GetDataDemo.css | 10 - Examples/ReactJs/src/styles/GetDataTable.css | 29 - Examples/ReactJs/src/styles/LoadIndicator.css | 9 - .../ReactJs/src/styles/ParametersDemo.css | 3 - .../ReactJs/src/styles/SelectedMarksDemo.css | 7 - Examples/ReactJs/src/styles/SettingsDemo.css | 3 - Examples/ReactJs/src/tableau-addin-0.2.0.js | 18562 ------------ Examples/ReactJs/src/tableau-addin-0.3.0.js | 20442 ------------- Examples/ReactJs/src/tableau-addin-0.4.0.js | 23414 --------------- Examples/ReactJs/src/tableau-addin-0.5.0.js | 23670 ---------------- Examples/ReactJs/test/actions/.keep | 0 .../components/AddSettingsComponentTest.js | 22 - .../EnvironmentDemoComponentTest.js | 22 - .../components/GetDataTableComponentTest.js | 22 - .../components/LoadIndicatorComponentTest.js | 22 - Examples/ReactJs/test/components/MainTest.js | 22 - .../components/ParametersDemoComponentTest.js | 22 - .../SelectedMarksDemoComponentTest.js | 22 - .../components/SettingsDemoComponentTest.js | 22 - .../components/SettingsTableComponentTest.js | 22 - Examples/ReactJs/test/config/ConfigTest.js | 12 - .../test/helpers/shallowRenderHelper.js | 23 - Examples/ReactJs/test/loadtests.js | 8 - Examples/ReactJs/test/sources/.keep | 0 Examples/ReactJs/test/stores/.keep | 0 Examples/ReactJs/webpack.config.js | 32 - Examples/ReactJs/yarn.lock | 5417 ---- README.md | 15 +- Samples/DataSources/datasources.html | 2 +- Samples/Filtering/filtering.html | 2 +- Samples/Parameters/parameters.html | 2 +- Samples/README.md | 15 - Samples/Settings/settings.html | 2 +- .../tableau-extensions-0.6.0.js | 0 node_modules/.bin/hs | 15 + node_modules/.bin/hs.cmd | 7 + node_modules/.bin/http-server | 15 + node_modules/.bin/http-server.cmd | 7 + node_modules/http-server/.npmignore | 3 + node_modules/http-server/.travis.yml | 22 + node_modules/http-server/LICENSE | 20 + node_modules/http-server/README.md | 69 + node_modules/http-server/bin/http-server | 174 + node_modules/http-server/lib/http-server.js | 139 + .../http-server/node_modules/.bin/ecstatic | 15 + .../node_modules/.bin/ecstatic.cmd | 7 + .../http-server/node_modules/.bin/opener | 15 + .../http-server/node_modules/.bin/opener.cmd | 7 + .../node_modules/colors/.travis.yml | 6 + .../node_modules/colors/MIT-LICENSE.txt | 23 + .../http-server/node_modules/colors/ReadMe.md | 167 + .../colors/examples/normal-usage.js | 74 + .../colors/examples/safe-string.js | 76 + .../node_modules/colors/lib/colors.js | 176 + .../node_modules/colors/lib/custom/trap.js | 45 + .../node_modules/colors/lib/custom/zalgo.js | 104 + .../colors/lib/extendStringPrototype.js | 118 + .../node_modules/colors/lib/index.js | 12 + .../node_modules/colors/lib/maps/america.js | 12 + .../node_modules/colors/lib/maps/rainbow.js | 13 + .../node_modules/colors/lib/maps/random.js | 8 + .../node_modules/colors/lib/maps/zebra.js | 5 + .../node_modules/colors/lib/styles.js | 77 + .../colors/lib/system/supports-colors.js | 61 + .../node_modules/colors/package.json | 52 + .../http-server/node_modules/colors/safe.js | 9 + .../colors/screenshots/colors.png | Bin 0 -> 79787 bytes .../node_modules/colors/tests/basic-test.js | 50 + .../node_modules/colors/tests/safe-test.js | 45 + .../colors/themes/generic-logging.js | 12 + .../node_modules/corser/.npmignore | 2 + .../node_modules/corser/.travis.yml | 4 + .../http-server/node_modules/corser/LICENSE | 19 + .../http-server/node_modules/corser/README.md | 202 + .../node_modules/corser/lib/corser.js | 228 + .../node_modules/corser/package.json | 63 + .../node_modules/ecstatic/.npmignore | 19 + .../node_modules/ecstatic/.travis.yml | 8 + .../node_modules/ecstatic/CHANGELOG.md | 84 + .../node_modules/ecstatic/CONTRIBUTING.md | 86 + .../node_modules/ecstatic/CONTRIBUTORS.md | 57 + .../node_modules/ecstatic/LICENSE.txt | 22 + .../node_modules/ecstatic/README.md | 220 + .../node_modules/ecstatic/example/core.js | 10 + .../node_modules/ecstatic/example/express.js | 12 + .../ecstatic/example/public/beep/index.html | 1 + .../ecstatic/example/public/hello.txt | 1 + .../ecstatic/example/public/subdir/world.txt | 1 + .../ecstatic/example/public/turtle.png | Bin 0 -> 195848 bytes .../node_modules/ecstatic/example/union.js | 10 + .../node_modules/ecstatic/lib/ecstatic.js | 371 + .../ecstatic/lib/ecstatic/aliases.json | 34 + .../ecstatic/lib/ecstatic/defaults.json | 17 + .../ecstatic/lib/ecstatic/etag.js | 7 + .../ecstatic/lib/ecstatic/opts.js | 180 + .../ecstatic/lib/ecstatic/showdir.js | 224 + .../ecstatic/lib/ecstatic/status-handlers.js | 104 + .../ecstatic/node_modules/.bin/he | 15 + .../ecstatic/node_modules/.bin/he.cmd | 7 + .../ecstatic/node_modules/.bin/mime | 15 + .../ecstatic/node_modules/.bin/mime.cmd | 7 + .../ecstatic/node_modules/he/LICENSE-MIT.txt | 20 + .../ecstatic/node_modules/he/README.md | 336 + .../ecstatic/node_modules/he/bin/he | 143 + .../ecstatic/node_modules/he/he.js | 329 + .../ecstatic/node_modules/he/man/he.1 | 78 + .../ecstatic/node_modules/he/package.json | 82 + .../ecstatic/node_modules/mime/LICENSE | 21 + .../ecstatic/node_modules/mime/README.md | 90 + .../ecstatic/node_modules/mime/build/build.js | 11 + .../ecstatic/node_modules/mime/build/test.js | 60 + .../ecstatic/node_modules/mime/cli.js | 8 + .../ecstatic/node_modules/mime/mime.js | 108 + .../ecstatic/node_modules/mime/package.json | 74 + .../ecstatic/node_modules/mime/types.json | 1 + .../node_modules/minimist/.travis.yml | 8 + .../ecstatic/node_modules/minimist/LICENSE | 18 + .../node_modules/minimist/example/parse.js | 2 + .../ecstatic/node_modules/minimist/index.js | 236 + .../node_modules/minimist/package.json | 71 + .../node_modules/minimist/readme.markdown | 91 + .../node_modules/minimist/test/all_bool.js | 32 + .../node_modules/minimist/test/bool.js | 166 + .../node_modules/minimist/test/dash.js | 31 + .../minimist/test/default_bool.js | 35 + .../node_modules/minimist/test/dotted.js | 22 + .../node_modules/minimist/test/kv_short.js | 16 + .../node_modules/minimist/test/long.js | 31 + .../node_modules/minimist/test/num.js | 36 + .../node_modules/minimist/test/parse.js | 197 + .../minimist/test/parse_modified.js | 9 + .../node_modules/minimist/test/short.js | 67 + .../node_modules/minimist/test/stop_early.js | 15 + .../node_modules/minimist/test/unknown.js | 102 + .../node_modules/minimist/test/whitespace.js | 8 + .../ecstatic/node_modules/url-join/.npmignore | 2 + .../node_modules/url-join/.travis.yml | 5 + .../ecstatic/node_modules/url-join/README.md | 47 + .../ecstatic/node_modules/url-join/bower.json | 22 + .../node_modules/url-join/lib/url-join.js | 38 + .../node_modules/url-join/package.json | 58 + .../node_modules/url-join/test/tests.js | 51 + .../node_modules/ecstatic/package.json | 78 + .../http-server/node_modules/ecstatic/test.js | 7 + .../node_modules/http-proxy/.npmignore | 7 + .../node_modules/http-proxy/LICENSE | 23 + .../node_modules/http-proxy/README.md | 493 + .../node_modules/http-proxy/index.js | 13 + .../node_modules/http-proxy/lib/http-proxy.js | 66 + .../http-proxy/lib/http-proxy/common.js | 249 + .../http-proxy/lib/http-proxy/index.js | 184 + .../lib/http-proxy/passes/web-incoming.js | 180 + .../lib/http-proxy/passes/web-outgoing.js | 138 + .../lib/http-proxy/passes/ws-incoming.js | 156 + .../node_modules/eventemitter3/LICENSE | 21 + .../node_modules/eventemitter3/README.md | 89 + .../node_modules/eventemitter3/index.js | 289 + .../node_modules/eventemitter3/package.json | 85 + .../node_modules/requires-port/.npmignore | 2 + .../node_modules/requires-port/.travis.yml | 19 + .../node_modules/requires-port/LICENSE | 22 + .../node_modules/requires-port/README.md | 47 + .../node_modules/requires-port/index.js | 38 + .../node_modules/requires-port/package.json | 76 + .../node_modules/requires-port/test.js | 98 + .../node_modules/http-proxy/package.json | 84 + .../node_modules/opener/LICENSE.txt | 47 + .../http-server/node_modules/opener/README.md | 57 + .../http-server/node_modules/opener/opener.js | 60 + .../node_modules/opener/package.json | 59 + .../node_modules/optimist/.travis.yml | 4 + .../http-server/node_modules/optimist/LICENSE | 21 + .../node_modules/optimist/example/bool.js | 10 + .../optimist/example/boolean_double.js | 7 + .../optimist/example/boolean_single.js | 7 + .../optimist/example/default_hash.js | 8 + .../optimist/example/default_singles.js | 7 + .../node_modules/optimist/example/divide.js | 8 + .../optimist/example/line_count.js | 20 + .../optimist/example/line_count_options.js | 29 + .../optimist/example/line_count_wrap.js | 29 + .../node_modules/optimist/example/nonopt.js | 4 + .../node_modules/optimist/example/reflect.js | 2 + .../node_modules/optimist/example/short.js | 3 + .../node_modules/optimist/example/string.js | 11 + .../optimist/example/usage-options.js | 19 + .../node_modules/optimist/example/xup.js | 10 + .../node_modules/optimist/index.js | 343 + .../node_modules/minimist/.travis.yml | 4 + .../optimist/node_modules/minimist/LICENSE | 18 + .../node_modules/minimist/example/parse.js | 2 + .../optimist/node_modules/minimist/index.js | 187 + .../node_modules/minimist/package.json | 67 + .../node_modules/minimist/readme.markdown | 73 + .../node_modules/minimist/test/bool.js | 119 + .../node_modules/minimist/test/dash.js | 24 + .../minimist/test/default_bool.js | 20 + .../node_modules/minimist/test/dotted.js | 22 + .../node_modules/minimist/test/long.js | 31 + .../node_modules/minimist/test/num.js | 36 + .../node_modules/minimist/test/parse.js | 197 + .../minimist/test/parse_modified.js | 9 + .../node_modules/minimist/test/short.js | 67 + .../node_modules/minimist/test/whitespace.js | 8 + .../optimist/node_modules/wordwrap/LICENSE | 18 + .../node_modules/wordwrap/README.markdown | 70 + .../node_modules/wordwrap/example/center.js | 10 + .../node_modules/wordwrap/example/meat.js | 3 + .../optimist/node_modules/wordwrap/index.js | 76 + .../node_modules/wordwrap/package.json | 63 + .../node_modules/wordwrap/test/break.js | 30 + .../node_modules/wordwrap/test/idleness.txt | 63 + .../node_modules/wordwrap/test/wrap.js | 31 + .../node_modules/optimist/package.json | 64 + .../node_modules/optimist/readme.markdown | 513 + .../node_modules/optimist/test/_.js | 71 + .../node_modules/optimist/test/_/argv.js | 2 + .../node_modules/optimist/test/_/bin.js | 3 + .../node_modules/optimist/test/dash.js | 31 + .../node_modules/optimist/test/parse.js | 446 + .../optimist/test/parse_modified.js | 14 + .../node_modules/optimist/test/short.js | 16 + .../node_modules/optimist/test/usage.js | 292 + .../node_modules/optimist/test/whitespace.js | 8 + .../node_modules/portfinder/.npmignore | 2 + .../node_modules/portfinder/.travis.yml | 21 + .../node_modules/portfinder/LICENSE | 22 + .../node_modules/portfinder/README.md | 38 + .../node_modules/portfinder/lib/portfinder.js | 218 + .../portfinder/node_modules/.bin/mkdirp | 15 + .../portfinder/node_modules/.bin/mkdirp.cmd | 7 + .../portfinder/node_modules/async/.travis.yml | 3 + .../portfinder/node_modules/async/LICENSE | 19 + .../portfinder/node_modules/async/README.md | 1646 ++ .../node_modules/async/component.json | 11 + .../node_modules/async/lib/async.js | 1123 + .../node_modules/async/package.json | 59 + .../node_modules/mkdirp/.travis.yml | 8 + .../portfinder/node_modules/mkdirp/LICENSE | 21 + .../portfinder/node_modules/mkdirp/bin/cmd.js | 33 + .../node_modules/mkdirp/bin/usage.txt | 12 + .../node_modules/mkdirp/examples/pow.js | 6 + .../portfinder/node_modules/mkdirp/index.js | 98 + .../mkdirp/node_modules/minimist/.travis.yml | 4 + .../mkdirp/node_modules/minimist/LICENSE | 18 + .../node_modules/minimist/example/parse.js | 2 + .../mkdirp/node_modules/minimist/index.js | 187 + .../mkdirp/node_modules/minimist/package.json | 67 + .../node_modules/minimist/readme.markdown | 73 + .../mkdirp/node_modules/minimist/test/dash.js | 24 + .../minimist/test/default_bool.js | 20 + .../node_modules/minimist/test/dotted.js | 16 + .../mkdirp/node_modules/minimist/test/long.js | 31 + .../node_modules/minimist/test/parse.js | 318 + .../minimist/test/parse_modified.js | 9 + .../node_modules/minimist/test/short.js | 67 + .../node_modules/minimist/test/whitespace.js | 8 + .../node_modules/mkdirp/package.json | 60 + .../node_modules/mkdirp/readme.markdown | 100 + .../node_modules/mkdirp/test/chmod.js | 41 + .../node_modules/mkdirp/test/clobber.js | 38 + .../node_modules/mkdirp/test/mkdirp.js | 28 + .../node_modules/mkdirp/test/opts_fs.js | 29 + .../node_modules/mkdirp/test/opts_fs_sync.js | 27 + .../node_modules/mkdirp/test/perm.js | 32 + .../node_modules/mkdirp/test/perm_sync.js | 36 + .../node_modules/mkdirp/test/race.js | 37 + .../node_modules/mkdirp/test/rel.js | 32 + .../node_modules/mkdirp/test/return.js | 25 + .../node_modules/mkdirp/test/return_sync.js | 24 + .../node_modules/mkdirp/test/root.js | 19 + .../node_modules/mkdirp/test/sync.js | 32 + .../node_modules/mkdirp/test/umask.js | 28 + .../node_modules/mkdirp/test/umask_sync.js | 32 + .../node_modules/portfinder/package.json | 60 + .../portfinder/test/fixtures/.gitkeep | 0 .../test/port-finder-multiple-test.js | 67 + .../test/port-finder-socket-test.js | 92 + .../portfinder/test/port-finder-test.js | 67 + .../http-server/node_modules/union/.npmignore | 7 + .../node_modules/union/.travis.yml | 12 + .../node_modules/union/CHANGELOG.md | 7 + .../http-server/node_modules/union/LICENSE | 19 + .../http-server/node_modules/union/README.md | 323 + .../union/examples/after/index.js | 26 + .../union/examples/simple/favicon.png | Bin 0 -> 545 bytes .../examples/simple/middleware/favicon.js | 96 + .../examples/simple/middleware/gzip-decode.js | 26 + .../examples/simple/middleware/gzip-encode.js | 40 + .../union/examples/simple/simple.js | 60 + .../union/examples/simple/spdy.js | 30 + .../union/examples/socketio/README | 13 + .../union/examples/socketio/index.html | 8 + .../union/examples/socketio/server.js | 30 + .../node_modules/union/lib/buffered-stream.js | 141 + .../node_modules/union/lib/core.js | 108 + .../node_modules/union/lib/http-stream.js | 52 + .../node_modules/union/lib/index.js | 24 + .../node_modules/union/lib/request-stream.js | 58 + .../node_modules/union/lib/response-stream.js | 203 + .../node_modules/union/lib/routing-stream.js | 126 + .../union/node_modules/qs/.jshintignore | 1 + .../union/node_modules/qs/.jshintrc | 10 + .../union/node_modules/qs/.npmignore | 18 + .../union/node_modules/qs/.travis.yml | 4 + .../union/node_modules/qs/CHANGELOG.md | 68 + .../union/node_modules/qs/CONTRIBUTING.md | 1 + .../union/node_modules/qs/LICENSE | 28 + .../union/node_modules/qs/Makefile | 8 + .../union/node_modules/qs/README.md | 222 + .../union/node_modules/qs/index.js | 1 + .../union/node_modules/qs/lib/index.js | 15 + .../union/node_modules/qs/lib/parse.js | 157 + .../union/node_modules/qs/lib/stringify.js | 77 + .../union/node_modules/qs/lib/utils.js | 132 + .../union/node_modules/qs/package.json | 59 + .../union/node_modules/qs/test/parse.js | 413 + .../union/node_modules/qs/test/stringify.js | 179 + .../node_modules/union/package.json | 73 + .../node_modules/union/test/after-test.js | 37 + .../union/test/body-parser-test.js | 50 + .../union/test/double-write-test.js | 62 + .../node_modules/union/test/ecstatic-test.js | 44 + .../node_modules/union/test/fixtures/index.js | 0 .../union/test/fixtures/static/some-file.txt | 1 + .../node_modules/union/test/header-test.js | 36 + .../node_modules/union/test/helpers/index.js | 0 .../node_modules/union/test/helpers/macros.js | 17 + .../node_modules/union/test/prop-test.js | 45 + .../node_modules/union/test/simple-test.js | 97 + .../union/test/status-code-test.js | 31 + .../node_modules/union/test/streaming-test.js | 68 + .../http-server/node_modules/union/union.png | Bin 0 -> 10826 bytes node_modules/http-server/package.json | 112 + node_modules/http-server/public/404.html | 10 + .../http-server/public/img/turtle.png | Bin 0 -> 195848 bytes node_modules/http-server/public/index.html | 12 + .../http-server/screenshots/directory.png | Bin 0 -> 24885 bytes .../http-server/screenshots/public.png | Bin 0 -> 231635 bytes .../http-server/screenshots/start.png | Bin 0 -> 20171 bytes .../test/fixtures/root/canYouSeeMe | 2 + .../http-server/test/fixtures/root/file | 2 + .../http-server/test/http-server-test.js | 158 + package.json | 17 + 401 files changed, 21207 insertions(+), 186301 deletions(-) delete mode 100644 Examples/HelloFrelard/AddIns/HelloFrelard.trex delete mode 100644 Examples/HelloFrelard/hello-frelard.js delete mode 100644 Examples/HelloFrelard/index.html delete mode 100644 Examples/HelloFrelard/readme.md delete mode 100644 Examples/HelloFrelard/tableau-addin-0.2.0.js delete mode 100644 Examples/HelloFrelard/tableau-addin-0.3.0.js delete mode 100644 Examples/HelloFrelard/tableau-addin-0.4.0.js delete mode 100644 Examples/HelloFrelard/tableau-addin-0.5.0.js delete mode 100644 Examples/ReactJs/.babelrc delete mode 100644 Examples/ReactJs/.editorconfig delete mode 100644 Examples/ReactJs/.eslintrc delete mode 100644 Examples/ReactJs/.gitignore delete mode 100644 Examples/ReactJs/.yo-rc.json delete mode 100644 Examples/ReactJs/AddIns/EnvironmentDemo.trex delete mode 100644 Examples/ReactJs/AddIns/FilteringDemo.trex delete mode 100644 Examples/ReactJs/AddIns/GetDataDemo.trex delete mode 100644 Examples/ReactJs/AddIns/ParametersDemo.trex delete mode 100644 Examples/ReactJs/AddIns/SelectedMarks.trex delete mode 100644 Examples/ReactJs/AddIns/SettingsDemo.trex delete mode 100644 Examples/ReactJs/cfg/base.js delete mode 100644 Examples/ReactJs/cfg/defaults.js delete mode 100644 Examples/ReactJs/cfg/dev.js delete mode 100644 Examples/ReactJs/cfg/dist.js delete mode 100644 Examples/ReactJs/cfg/test.js delete mode 100644 Examples/ReactJs/dist/README.md delete mode 100644 Examples/ReactJs/dist/static/README.md delete mode 100644 Examples/ReactJs/dist/static/favicon.ico delete mode 100644 Examples/ReactJs/karma.conf.js delete mode 100644 Examples/ReactJs/make_addin.js delete mode 100644 Examples/ReactJs/package-lock.json delete mode 100644 Examples/ReactJs/package.json delete mode 100644 Examples/ReactJs/readme.md delete mode 100644 Examples/ReactJs/server.js delete mode 100644 Examples/ReactJs/src/components/EnvironmentDemo/EnvironmentDemoComponent.js delete mode 100644 Examples/ReactJs/src/components/FiltersDemo/CategoricalFilterDemoComponent.js delete mode 100644 Examples/ReactJs/src/components/FiltersDemo/DateRangeFilterComponent.js delete mode 100644 Examples/ReactJs/src/components/FiltersDemo/FiltersDemoComponent.js delete mode 100644 Examples/ReactJs/src/components/GetDataDemo/GetDataConfigurationComponent.js delete mode 100644 Examples/ReactJs/src/components/GetDataDemo/GetDataDemoComponent.js delete mode 100644 Examples/ReactJs/src/components/GetDataDemo/GetDataTableComponent.js delete mode 100644 Examples/ReactJs/src/components/LoadIndicatorComponent.js delete mode 100644 Examples/ReactJs/src/components/Main.js delete mode 100644 Examples/ReactJs/src/components/ParametersDemo/ParametersDemoComponent.js delete mode 100644 Examples/ReactJs/src/components/SelectedMarksDemo/SelectedMarksDemoComponent.js delete mode 100644 Examples/ReactJs/src/components/SettingsDemo/AddSettingsComponent.js delete mode 100644 Examples/ReactJs/src/components/SettingsDemo/SettingsDemoComponent.js delete mode 100644 Examples/ReactJs/src/components/SettingsDemo/SettingsTableComponent.js delete mode 100644 Examples/ReactJs/src/config/README.md delete mode 100644 Examples/ReactJs/src/config/base.js delete mode 100644 Examples/ReactJs/src/config/dev.js delete mode 100644 Examples/ReactJs/src/config/dist.js delete mode 100644 Examples/ReactJs/src/config/test.js delete mode 100644 Examples/ReactJs/src/favicon.ico delete mode 100644 Examples/ReactJs/src/index.html delete mode 100644 Examples/ReactJs/src/index.js delete mode 100644 Examples/ReactJs/src/styles/App.css delete mode 100644 Examples/ReactJs/src/styles/GetDataConfiguration.css delete mode 100644 Examples/ReactJs/src/styles/GetDataDemo.css delete mode 100644 Examples/ReactJs/src/styles/GetDataTable.css delete mode 100644 Examples/ReactJs/src/styles/LoadIndicator.css delete mode 100644 Examples/ReactJs/src/styles/ParametersDemo.css delete mode 100644 Examples/ReactJs/src/styles/SelectedMarksDemo.css delete mode 100644 Examples/ReactJs/src/styles/SettingsDemo.css delete mode 100644 Examples/ReactJs/src/tableau-addin-0.2.0.js delete mode 100644 Examples/ReactJs/src/tableau-addin-0.3.0.js delete mode 100644 Examples/ReactJs/src/tableau-addin-0.4.0.js delete mode 100644 Examples/ReactJs/src/tableau-addin-0.5.0.js delete mode 100644 Examples/ReactJs/test/actions/.keep delete mode 100644 Examples/ReactJs/test/components/AddSettingsComponentTest.js delete mode 100644 Examples/ReactJs/test/components/EnvironmentDemoComponentTest.js delete mode 100644 Examples/ReactJs/test/components/GetDataTableComponentTest.js delete mode 100644 Examples/ReactJs/test/components/LoadIndicatorComponentTest.js delete mode 100644 Examples/ReactJs/test/components/MainTest.js delete mode 100644 Examples/ReactJs/test/components/ParametersDemoComponentTest.js delete mode 100644 Examples/ReactJs/test/components/SelectedMarksDemoComponentTest.js delete mode 100644 Examples/ReactJs/test/components/SettingsDemoComponentTest.js delete mode 100644 Examples/ReactJs/test/components/SettingsTableComponentTest.js delete mode 100644 Examples/ReactJs/test/config/ConfigTest.js delete mode 100644 Examples/ReactJs/test/helpers/shallowRenderHelper.js delete mode 100644 Examples/ReactJs/test/loadtests.js delete mode 100644 Examples/ReactJs/test/sources/.keep delete mode 100644 Examples/ReactJs/test/stores/.keep delete mode 100644 Examples/ReactJs/webpack.config.js delete mode 100644 Examples/ReactJs/yarn.lock delete mode 100644 Samples/README.md rename {ExtensionsLibrary => lib}/tableau-extensions-0.6.0.js (100%) create mode 100644 node_modules/.bin/hs create mode 100644 node_modules/.bin/hs.cmd create mode 100644 node_modules/.bin/http-server create mode 100644 node_modules/.bin/http-server.cmd create mode 100644 node_modules/http-server/.npmignore create mode 100644 node_modules/http-server/.travis.yml create mode 100644 node_modules/http-server/LICENSE create mode 100644 node_modules/http-server/README.md create mode 100644 node_modules/http-server/bin/http-server create mode 100644 node_modules/http-server/lib/http-server.js create mode 100644 node_modules/http-server/node_modules/.bin/ecstatic create mode 100644 node_modules/http-server/node_modules/.bin/ecstatic.cmd create mode 100644 node_modules/http-server/node_modules/.bin/opener create mode 100644 node_modules/http-server/node_modules/.bin/opener.cmd create mode 100644 node_modules/http-server/node_modules/colors/.travis.yml create mode 100644 node_modules/http-server/node_modules/colors/MIT-LICENSE.txt create mode 100644 node_modules/http-server/node_modules/colors/ReadMe.md create mode 100644 node_modules/http-server/node_modules/colors/examples/normal-usage.js create mode 100644 node_modules/http-server/node_modules/colors/examples/safe-string.js create mode 100644 node_modules/http-server/node_modules/colors/lib/colors.js create mode 100644 node_modules/http-server/node_modules/colors/lib/custom/trap.js create mode 100644 node_modules/http-server/node_modules/colors/lib/custom/zalgo.js create mode 100644 node_modules/http-server/node_modules/colors/lib/extendStringPrototype.js create mode 100644 node_modules/http-server/node_modules/colors/lib/index.js create mode 100644 node_modules/http-server/node_modules/colors/lib/maps/america.js create mode 100644 node_modules/http-server/node_modules/colors/lib/maps/rainbow.js create mode 100644 node_modules/http-server/node_modules/colors/lib/maps/random.js create mode 100644 node_modules/http-server/node_modules/colors/lib/maps/zebra.js create mode 100644 node_modules/http-server/node_modules/colors/lib/styles.js create mode 100644 node_modules/http-server/node_modules/colors/lib/system/supports-colors.js create mode 100644 node_modules/http-server/node_modules/colors/package.json create mode 100644 node_modules/http-server/node_modules/colors/safe.js create mode 100644 node_modules/http-server/node_modules/colors/screenshots/colors.png create mode 100644 node_modules/http-server/node_modules/colors/tests/basic-test.js create mode 100644 node_modules/http-server/node_modules/colors/tests/safe-test.js create mode 100644 node_modules/http-server/node_modules/colors/themes/generic-logging.js create mode 100644 node_modules/http-server/node_modules/corser/.npmignore create mode 100644 node_modules/http-server/node_modules/corser/.travis.yml create mode 100644 node_modules/http-server/node_modules/corser/LICENSE create mode 100644 node_modules/http-server/node_modules/corser/README.md create mode 100644 node_modules/http-server/node_modules/corser/lib/corser.js create mode 100644 node_modules/http-server/node_modules/corser/package.json create mode 100644 node_modules/http-server/node_modules/ecstatic/.npmignore create mode 100644 node_modules/http-server/node_modules/ecstatic/.travis.yml create mode 100644 node_modules/http-server/node_modules/ecstatic/CHANGELOG.md create mode 100644 node_modules/http-server/node_modules/ecstatic/CONTRIBUTING.md create mode 100644 node_modules/http-server/node_modules/ecstatic/CONTRIBUTORS.md create mode 100644 node_modules/http-server/node_modules/ecstatic/LICENSE.txt create mode 100644 node_modules/http-server/node_modules/ecstatic/README.md create mode 100644 node_modules/http-server/node_modules/ecstatic/example/core.js create mode 100644 node_modules/http-server/node_modules/ecstatic/example/express.js create mode 100644 node_modules/http-server/node_modules/ecstatic/example/public/beep/index.html create mode 100644 node_modules/http-server/node_modules/ecstatic/example/public/hello.txt create mode 100644 node_modules/http-server/node_modules/ecstatic/example/public/subdir/world.txt create mode 100644 node_modules/http-server/node_modules/ecstatic/example/public/turtle.png create mode 100644 node_modules/http-server/node_modules/ecstatic/example/union.js create mode 100644 node_modules/http-server/node_modules/ecstatic/lib/ecstatic.js create mode 100644 node_modules/http-server/node_modules/ecstatic/lib/ecstatic/aliases.json create mode 100644 node_modules/http-server/node_modules/ecstatic/lib/ecstatic/defaults.json create mode 100644 node_modules/http-server/node_modules/ecstatic/lib/ecstatic/etag.js create mode 100644 node_modules/http-server/node_modules/ecstatic/lib/ecstatic/opts.js create mode 100644 node_modules/http-server/node_modules/ecstatic/lib/ecstatic/showdir.js create mode 100644 node_modules/http-server/node_modules/ecstatic/lib/ecstatic/status-handlers.js create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/.bin/he create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/.bin/he.cmd create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/.bin/mime create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/.bin/mime.cmd create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/he/LICENSE-MIT.txt create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/he/README.md create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/he/bin/he create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/he/he.js create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/he/man/he.1 create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/he/package.json create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/mime/LICENSE create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/mime/README.md create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/mime/build/build.js create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/mime/build/test.js create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/mime/cli.js create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/mime/mime.js create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/mime/package.json create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/mime/types.json create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/minimist/.travis.yml create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/minimist/LICENSE create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/minimist/example/parse.js create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/minimist/index.js create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/minimist/package.json create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/minimist/readme.markdown create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/minimist/test/all_bool.js create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/minimist/test/bool.js create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/minimist/test/dash.js create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/minimist/test/default_bool.js create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/minimist/test/dotted.js create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/minimist/test/kv_short.js create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/minimist/test/long.js create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/minimist/test/num.js create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/minimist/test/parse.js create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/minimist/test/parse_modified.js create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/minimist/test/short.js create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/minimist/test/stop_early.js create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/minimist/test/unknown.js create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/minimist/test/whitespace.js create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/url-join/.npmignore create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/url-join/.travis.yml create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/url-join/README.md create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/url-join/bower.json create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/url-join/lib/url-join.js create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/url-join/package.json create mode 100644 node_modules/http-server/node_modules/ecstatic/node_modules/url-join/test/tests.js create mode 100644 node_modules/http-server/node_modules/ecstatic/package.json create mode 100644 node_modules/http-server/node_modules/ecstatic/test.js create mode 100644 node_modules/http-server/node_modules/http-proxy/.npmignore create mode 100644 node_modules/http-server/node_modules/http-proxy/LICENSE create mode 100644 node_modules/http-server/node_modules/http-proxy/README.md create mode 100644 node_modules/http-server/node_modules/http-proxy/index.js create mode 100644 node_modules/http-server/node_modules/http-proxy/lib/http-proxy.js create mode 100644 node_modules/http-server/node_modules/http-proxy/lib/http-proxy/common.js create mode 100644 node_modules/http-server/node_modules/http-proxy/lib/http-proxy/index.js create mode 100644 node_modules/http-server/node_modules/http-proxy/lib/http-proxy/passes/web-incoming.js create mode 100644 node_modules/http-server/node_modules/http-proxy/lib/http-proxy/passes/web-outgoing.js create mode 100644 node_modules/http-server/node_modules/http-proxy/lib/http-proxy/passes/ws-incoming.js create mode 100644 node_modules/http-server/node_modules/http-proxy/node_modules/eventemitter3/LICENSE create mode 100644 node_modules/http-server/node_modules/http-proxy/node_modules/eventemitter3/README.md create mode 100644 node_modules/http-server/node_modules/http-proxy/node_modules/eventemitter3/index.js create mode 100644 node_modules/http-server/node_modules/http-proxy/node_modules/eventemitter3/package.json create mode 100644 node_modules/http-server/node_modules/http-proxy/node_modules/requires-port/.npmignore create mode 100644 node_modules/http-server/node_modules/http-proxy/node_modules/requires-port/.travis.yml create mode 100644 node_modules/http-server/node_modules/http-proxy/node_modules/requires-port/LICENSE create mode 100644 node_modules/http-server/node_modules/http-proxy/node_modules/requires-port/README.md create mode 100644 node_modules/http-server/node_modules/http-proxy/node_modules/requires-port/index.js create mode 100644 node_modules/http-server/node_modules/http-proxy/node_modules/requires-port/package.json create mode 100644 node_modules/http-server/node_modules/http-proxy/node_modules/requires-port/test.js create mode 100644 node_modules/http-server/node_modules/http-proxy/package.json create mode 100644 node_modules/http-server/node_modules/opener/LICENSE.txt create mode 100644 node_modules/http-server/node_modules/opener/README.md create mode 100644 node_modules/http-server/node_modules/opener/opener.js create mode 100644 node_modules/http-server/node_modules/opener/package.json create mode 100644 node_modules/http-server/node_modules/optimist/.travis.yml create mode 100644 node_modules/http-server/node_modules/optimist/LICENSE create mode 100644 node_modules/http-server/node_modules/optimist/example/bool.js create mode 100644 node_modules/http-server/node_modules/optimist/example/boolean_double.js create mode 100644 node_modules/http-server/node_modules/optimist/example/boolean_single.js create mode 100644 node_modules/http-server/node_modules/optimist/example/default_hash.js create mode 100644 node_modules/http-server/node_modules/optimist/example/default_singles.js create mode 100644 node_modules/http-server/node_modules/optimist/example/divide.js create mode 100644 node_modules/http-server/node_modules/optimist/example/line_count.js create mode 100644 node_modules/http-server/node_modules/optimist/example/line_count_options.js create mode 100644 node_modules/http-server/node_modules/optimist/example/line_count_wrap.js create mode 100644 node_modules/http-server/node_modules/optimist/example/nonopt.js create mode 100644 node_modules/http-server/node_modules/optimist/example/reflect.js create mode 100644 node_modules/http-server/node_modules/optimist/example/short.js create mode 100644 node_modules/http-server/node_modules/optimist/example/string.js create mode 100644 node_modules/http-server/node_modules/optimist/example/usage-options.js create mode 100644 node_modules/http-server/node_modules/optimist/example/xup.js create mode 100644 node_modules/http-server/node_modules/optimist/index.js create mode 100644 node_modules/http-server/node_modules/optimist/node_modules/minimist/.travis.yml create mode 100644 node_modules/http-server/node_modules/optimist/node_modules/minimist/LICENSE create mode 100644 node_modules/http-server/node_modules/optimist/node_modules/minimist/example/parse.js create mode 100644 node_modules/http-server/node_modules/optimist/node_modules/minimist/index.js create mode 100644 node_modules/http-server/node_modules/optimist/node_modules/minimist/package.json create mode 100644 node_modules/http-server/node_modules/optimist/node_modules/minimist/readme.markdown create mode 100644 node_modules/http-server/node_modules/optimist/node_modules/minimist/test/bool.js create mode 100644 node_modules/http-server/node_modules/optimist/node_modules/minimist/test/dash.js create mode 100644 node_modules/http-server/node_modules/optimist/node_modules/minimist/test/default_bool.js create mode 100644 node_modules/http-server/node_modules/optimist/node_modules/minimist/test/dotted.js create mode 100644 node_modules/http-server/node_modules/optimist/node_modules/minimist/test/long.js create mode 100644 node_modules/http-server/node_modules/optimist/node_modules/minimist/test/num.js create mode 100644 node_modules/http-server/node_modules/optimist/node_modules/minimist/test/parse.js create mode 100644 node_modules/http-server/node_modules/optimist/node_modules/minimist/test/parse_modified.js create mode 100644 node_modules/http-server/node_modules/optimist/node_modules/minimist/test/short.js create mode 100644 node_modules/http-server/node_modules/optimist/node_modules/minimist/test/whitespace.js create mode 100644 node_modules/http-server/node_modules/optimist/node_modules/wordwrap/LICENSE create mode 100644 node_modules/http-server/node_modules/optimist/node_modules/wordwrap/README.markdown create mode 100644 node_modules/http-server/node_modules/optimist/node_modules/wordwrap/example/center.js create mode 100644 node_modules/http-server/node_modules/optimist/node_modules/wordwrap/example/meat.js create mode 100644 node_modules/http-server/node_modules/optimist/node_modules/wordwrap/index.js create mode 100644 node_modules/http-server/node_modules/optimist/node_modules/wordwrap/package.json create mode 100644 node_modules/http-server/node_modules/optimist/node_modules/wordwrap/test/break.js create mode 100644 node_modules/http-server/node_modules/optimist/node_modules/wordwrap/test/idleness.txt create mode 100644 node_modules/http-server/node_modules/optimist/node_modules/wordwrap/test/wrap.js create mode 100644 node_modules/http-server/node_modules/optimist/package.json create mode 100644 node_modules/http-server/node_modules/optimist/readme.markdown create mode 100644 node_modules/http-server/node_modules/optimist/test/_.js create mode 100644 node_modules/http-server/node_modules/optimist/test/_/argv.js create mode 100644 node_modules/http-server/node_modules/optimist/test/_/bin.js create mode 100644 node_modules/http-server/node_modules/optimist/test/dash.js create mode 100644 node_modules/http-server/node_modules/optimist/test/parse.js create mode 100644 node_modules/http-server/node_modules/optimist/test/parse_modified.js create mode 100644 node_modules/http-server/node_modules/optimist/test/short.js create mode 100644 node_modules/http-server/node_modules/optimist/test/usage.js create mode 100644 node_modules/http-server/node_modules/optimist/test/whitespace.js create mode 100644 node_modules/http-server/node_modules/portfinder/.npmignore create mode 100644 node_modules/http-server/node_modules/portfinder/.travis.yml create mode 100644 node_modules/http-server/node_modules/portfinder/LICENSE create mode 100644 node_modules/http-server/node_modules/portfinder/README.md create mode 100644 node_modules/http-server/node_modules/portfinder/lib/portfinder.js create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/.bin/mkdirp create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/.bin/mkdirp.cmd create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/async/.travis.yml create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/async/LICENSE create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/async/README.md create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/async/component.json create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/async/lib/async.js create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/async/package.json create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/.travis.yml create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/LICENSE create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/bin/cmd.js create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/bin/usage.txt create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/examples/pow.js create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/index.js create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/node_modules/minimist/.travis.yml create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/node_modules/minimist/LICENSE create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/node_modules/minimist/example/parse.js create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/node_modules/minimist/index.js create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/node_modules/minimist/package.json create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/node_modules/minimist/readme.markdown create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/node_modules/minimist/test/dash.js create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/node_modules/minimist/test/default_bool.js create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/node_modules/minimist/test/dotted.js create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/node_modules/minimist/test/long.js create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/node_modules/minimist/test/parse.js create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/node_modules/minimist/test/short.js create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/node_modules/minimist/test/whitespace.js create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/package.json create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/readme.markdown create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/test/chmod.js create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/test/clobber.js create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/test/mkdirp.js create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/test/opts_fs.js create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/test/opts_fs_sync.js create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/test/perm.js create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/test/perm_sync.js create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/test/race.js create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/test/rel.js create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/test/return.js create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/test/return_sync.js create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/test/root.js create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/test/sync.js create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/test/umask.js create mode 100644 node_modules/http-server/node_modules/portfinder/node_modules/mkdirp/test/umask_sync.js create mode 100644 node_modules/http-server/node_modules/portfinder/package.json rename Examples/ReactJs/src/styles/AddSettings.css => node_modules/http-server/node_modules/portfinder/test/fixtures/.gitkeep (100%) create mode 100644 node_modules/http-server/node_modules/portfinder/test/port-finder-multiple-test.js create mode 100644 node_modules/http-server/node_modules/portfinder/test/port-finder-socket-test.js create mode 100644 node_modules/http-server/node_modules/portfinder/test/port-finder-test.js create mode 100644 node_modules/http-server/node_modules/union/.npmignore create mode 100644 node_modules/http-server/node_modules/union/.travis.yml create mode 100644 node_modules/http-server/node_modules/union/CHANGELOG.md create mode 100644 node_modules/http-server/node_modules/union/LICENSE create mode 100644 node_modules/http-server/node_modules/union/README.md create mode 100644 node_modules/http-server/node_modules/union/examples/after/index.js create mode 100644 node_modules/http-server/node_modules/union/examples/simple/favicon.png create mode 100644 node_modules/http-server/node_modules/union/examples/simple/middleware/favicon.js create mode 100644 node_modules/http-server/node_modules/union/examples/simple/middleware/gzip-decode.js create mode 100644 node_modules/http-server/node_modules/union/examples/simple/middleware/gzip-encode.js create mode 100644 node_modules/http-server/node_modules/union/examples/simple/simple.js create mode 100644 node_modules/http-server/node_modules/union/examples/simple/spdy.js create mode 100644 node_modules/http-server/node_modules/union/examples/socketio/README create mode 100644 node_modules/http-server/node_modules/union/examples/socketio/index.html create mode 100644 node_modules/http-server/node_modules/union/examples/socketio/server.js create mode 100644 node_modules/http-server/node_modules/union/lib/buffered-stream.js create mode 100644 node_modules/http-server/node_modules/union/lib/core.js create mode 100644 node_modules/http-server/node_modules/union/lib/http-stream.js create mode 100644 node_modules/http-server/node_modules/union/lib/index.js create mode 100644 node_modules/http-server/node_modules/union/lib/request-stream.js create mode 100644 node_modules/http-server/node_modules/union/lib/response-stream.js create mode 100644 node_modules/http-server/node_modules/union/lib/routing-stream.js create mode 100644 node_modules/http-server/node_modules/union/node_modules/qs/.jshintignore create mode 100644 node_modules/http-server/node_modules/union/node_modules/qs/.jshintrc create mode 100644 node_modules/http-server/node_modules/union/node_modules/qs/.npmignore create mode 100644 node_modules/http-server/node_modules/union/node_modules/qs/.travis.yml create mode 100644 node_modules/http-server/node_modules/union/node_modules/qs/CHANGELOG.md create mode 100644 node_modules/http-server/node_modules/union/node_modules/qs/CONTRIBUTING.md create mode 100644 node_modules/http-server/node_modules/union/node_modules/qs/LICENSE create mode 100644 node_modules/http-server/node_modules/union/node_modules/qs/Makefile create mode 100644 node_modules/http-server/node_modules/union/node_modules/qs/README.md create mode 100644 node_modules/http-server/node_modules/union/node_modules/qs/index.js create mode 100644 node_modules/http-server/node_modules/union/node_modules/qs/lib/index.js create mode 100644 node_modules/http-server/node_modules/union/node_modules/qs/lib/parse.js create mode 100644 node_modules/http-server/node_modules/union/node_modules/qs/lib/stringify.js create mode 100644 node_modules/http-server/node_modules/union/node_modules/qs/lib/utils.js create mode 100644 node_modules/http-server/node_modules/union/node_modules/qs/package.json create mode 100644 node_modules/http-server/node_modules/union/node_modules/qs/test/parse.js create mode 100644 node_modules/http-server/node_modules/union/node_modules/qs/test/stringify.js create mode 100644 node_modules/http-server/node_modules/union/package.json create mode 100644 node_modules/http-server/node_modules/union/test/after-test.js create mode 100644 node_modules/http-server/node_modules/union/test/body-parser-test.js create mode 100644 node_modules/http-server/node_modules/union/test/double-write-test.js create mode 100644 node_modules/http-server/node_modules/union/test/ecstatic-test.js rename Examples/ReactJs/src/styles/EnvironmentDemo.css => node_modules/http-server/node_modules/union/test/fixtures/index.js (100%) create mode 100644 node_modules/http-server/node_modules/union/test/fixtures/static/some-file.txt create mode 100644 node_modules/http-server/node_modules/union/test/header-test.js rename Examples/ReactJs/src/styles/SettingsTable.css => node_modules/http-server/node_modules/union/test/helpers/index.js (100%) create mode 100644 node_modules/http-server/node_modules/union/test/helpers/macros.js create mode 100644 node_modules/http-server/node_modules/union/test/prop-test.js create mode 100644 node_modules/http-server/node_modules/union/test/simple-test.js create mode 100644 node_modules/http-server/node_modules/union/test/status-code-test.js create mode 100644 node_modules/http-server/node_modules/union/test/streaming-test.js create mode 100644 node_modules/http-server/node_modules/union/union.png create mode 100644 node_modules/http-server/package.json create mode 100644 node_modules/http-server/public/404.html create mode 100644 node_modules/http-server/public/img/turtle.png create mode 100644 node_modules/http-server/public/index.html create mode 100644 node_modules/http-server/screenshots/directory.png create mode 100644 node_modules/http-server/screenshots/public.png create mode 100644 node_modules/http-server/screenshots/start.png create mode 100644 node_modules/http-server/test/fixtures/root/canYouSeeMe create mode 100644 node_modules/http-server/test/fixtures/root/file create mode 100644 node_modules/http-server/test/http-server-test.js create mode 100644 package.json diff --git a/Examples/HelloFrelard/AddIns/HelloFrelard.trex b/Examples/HelloFrelard/AddIns/HelloFrelard.trex deleted file mode 100644 index 1303ee94..00000000 --- a/Examples/HelloFrelard/AddIns/HelloFrelard.trex +++ /dev/null @@ -1,22 +0,0 @@ - - - - en_US - - Simple Initialization Sample - - - - - 1.1 - - http://localhost:8765 - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAlhJREFUOI2Nkt9vy1EYh5/3bbsvRSySCZbIxI+ZCKsN2TKtSFyIrV2WuRCJuBiJWxfuxCVXbvwFgiEtposgLFJElnbU1SxIZIIRJDKTrdu+53Uhra4mce7Oe57Pcz7JOULFisViwZ+29LAzOSjQYDgz1ZcCvWuXV11MJpN+OS/lm6179teqH0yDqxPTCyKSA8DcDsyOmOprnCaeP7459pdgy969i0LTC3IO/RQMyoHcQN+3cnljW3dNIFC47qDaK3g7BwdTkwBaBELT4ZPOUVWgKl4ZBnjxJPUlMDnTDrp0pmr6RHFeEjjcUUXPDGeSEwDN0Xg8sivxMhJNjGzbHd8PkM3eHRfkrBM5NkcQaY2vUnTlrDIA0NoaX+KLXFFlowr14tvVpqb2MICzmQcKqxvbumv+NAhZGCCIPwEw6QWXKYRL/VUXO0+rAUJiPwAk5MIlgVfwPjjHLCL1APmHN94ZdqeYN+NW/mn6I4BvwQYchcLnwFhJMDiYmlRxAzjpKWZkYkUCcZ2I61wi37tLbYyjiN0fHk5Oz3nGSLSzBbNHCF35R7f6K1/hN9PRhek11FrymfQQQKB4+Gl05P2qNRtmETlXW7e+b2z01dfycGNbfFMAbqNyKp9Jp4rzOT8RYFs0njJkc2iqsCObvTsOsDWWqA5C1uFy+Uz/oXJeKwVT4h0RmPUXhi79vuC0Ku6yOffTK3g9lfxfDQAisY516sg5kfOCiJk7HoLt2cf9b/9LANAc7dznm98PagG1fUOZ9IP5uMB8Q4CPoyNvausapkTt3rNMuvdf3C/o6+czhtdwmwAAAABJRU5ErkJggg== - - - - Hello Frelard - - - diff --git a/Examples/HelloFrelard/hello-frelard.js b/Examples/HelloFrelard/hello-frelard.js deleted file mode 100644 index f986a6ae..00000000 --- a/Examples/HelloFrelard/hello-frelard.js +++ /dev/null @@ -1,22 +0,0 @@ -$(document).ready(function() { - - // Hook up an event handler for the load button clicking - $("#initializeButton").click(function() { - - // Disable the button after it's been clicked - $("#initializeButton").prop('disabled', true); - - tableau.addIn.initializeAsync().then(function() { - - // Initialization succeeded! Get the dashboard's name - var dashboard = tableau.addIn.dashboardContent.dashboard; - - // Display the results in the UI - $("#resultBox").html("I'm running in a dashboard named " + dashboard.name + ""); - }, function(err) { - - // something went wrong in initialization - $("#resultBox").html("Error while Initializing: " + err.toString()); - }); - }); -}); \ No newline at end of file diff --git a/Examples/HelloFrelard/index.html b/Examples/HelloFrelard/index.html deleted file mode 100644 index de09e156..00000000 --- a/Examples/HelloFrelard/index.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - Hello Frelard - - - - - - - - - - - - - - - -
-
-

Hello Frelard

-

Not Initialized

- -
-
- - diff --git a/Examples/HelloFrelard/readme.md b/Examples/HelloFrelard/readme.md deleted file mode 100644 index 37652a6d..00000000 --- a/Examples/HelloFrelard/readme.md +++ /dev/null @@ -1,16 +0,0 @@ -# Hello Frelard Example - -This is an extremely simple add-in which just demonstrates initializing an add-in and getting the name of the dashboard it is running in. - -### Pre-requisites -* You must have Node.js or Python installed (or other software which can serve the contents of this folder over http). You can get Node.js from http://nodejs.org and Python from https://www.python.org/downloads/ - -### Setup -1. Copy the `.trex` files from `.\AddIns` to `~\Documents\My Tableau Repository (Beta)\AddIns` so they are available to Tableau. -2. Open a command prompt window to the location where you cloned this repo. -3. Make sure you're in the `.\Examples\HelloFrelard` directory. -4. Start a simple file hosting server: - * Python 2.x : `python -m SimpleHTTPServer 8765` - * Python 3.x : `python -m http.server 8765` - * Node.js : First run `npm install http-server -g` (only the first time) then `http-server -p 8765` -5. Launch Tableau and use the add-in diff --git a/Examples/HelloFrelard/tableau-addin-0.2.0.js b/Examples/HelloFrelard/tableau-addin-0.2.0.js deleted file mode 100644 index 5e1bc739..00000000 --- a/Examples/HelloFrelard/tableau-addin-0.2.0.js +++ /dev/null @@ -1,18562 +0,0 @@ -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); - else if(typeof define === 'function' && define.amd) - define([], factory); - else if(typeof exports === 'object') - exports["Main"] = factory(); - else - root["Main"] = factory(); -})(this, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; -/******/ -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.loaded = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = "/dist/"; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var FrelardDesktopBootstrap_1 = __webpack_require__(1); - // This Main function will be executed when this module is loaded. Attempt to do our - // bootstrapping with qt and log any errors we encounter - FrelardDesktopBootstrap_1.doBootstrap().catch(function (e) { - console.error('Desktop bootstrapping failed: ' + e); - }); - - -/***/ }, -/* 1 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_core_1 = __webpack_require__(2); - var api_internal_contract_1 = __webpack_require__(28); - var AddInApiPresLayerImpl_1 = __webpack_require__(29); - var DesktopApiDispatcher_1 = __webpack_require__(30); - var QtWebChannelImpl_1 = __webpack_require__(31); - /** - * Wrapper for all the bootstrapping logic. This code attempts to initialize the qt pres-layer - * as well as the desktop dispatcher. It then assigns it to the global desktop dispatcher to - * be picked up by the add-in external Api - */ - function doBootstrap() { - // First we need to initialize the webchannel pres-layer - var dispatcherPromise = QtWebChannelImpl_1.initializeWebChannelPresLayer().then(function (preslayer) { - var presLayerApi = new AddInApiPresLayerImpl_1.AddInApiPresLayerImpl(preslayer); - if (!presLayerApi.AddInInstanceInfo.addInLocatorPresModel) { - throw new Error('AddInInstanceInfo undefined'); - } - // Initialize the apiEventHandler and the desktopDispatcher with it - var apiEventHandler = new api_core_1.ApiEventHandler(presLayerApi, presLayerApi.AddInInstanceInfo.addInLocatorPresModel); - var desktopDispatcher = new DesktopApiDispatcher_1.DesktopApiDispatcher(apiEventHandler); - return desktopDispatcher; - }); - // Assign the desktop dispatcher for the other project to find it - api_internal_contract_1.InternalApiDispatcherHolder.setDesktopDispatcherPromise(dispatcherPromise); - return dispatcherPromise; - } - exports.doBootstrap = doBootstrap; - - -/***/ }, -/* 2 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export(__webpack_require__(3)); - var Events_1 = __webpack_require__(16); - exports.NotificationId = Events_1.NotificationId; - - -/***/ }, -/* 3 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(4); - var Params_1 = __webpack_require__(10); - var CommandMappingRegistryFactory_1 = __webpack_require__(11); - var EventMappingRegistryFactory_1 = __webpack_require__(15); - var ParameterMappingRegistryFactory_1 = __webpack_require__(23); - /** - * Main class for the api-core project. This class is responsible for executing comamnd and marshalling notifcations - * between the internal Api and the pres-layer Api. After construction, SetVersionNumber must be called in order to - * use this class - * - * @export - * @class ApiEventHandler - */ - var ApiEventHandler = (function () { - /** - * Creates an instance of ApiEventHandler. - * @param {PresentationLayer} presLayer - An implementation of the pres-layer Api to use - * @param {AddInLocatorPresModel} addInLocatorPresModel - locator for the add-in which is being referenced - * @memberof ApiEventHandler - */ - function ApiEventHandler(presLayer, addInLocatorPresModel) { - this.presLayer = presLayer; - this.presLayerAddInLocator = addInLocatorPresModel; - } - /** - * Sets the internal Api version number which the external library is expecting to use. This must be called before - * anything else in order to properly set up the translation layers. - * - * @param {VersionNumber} versionNumber - * @memberof ApiEventHandler - */ - ApiEventHandler.prototype.setVersionNumber = function (versionNumber) { - this.versionNumber = versionNumber; - // Initialize all our registries - this.commandRegistry = CommandMappingRegistryFactory_1.CommandMappingRegistryFactory.createCommandMappingRegistry(versionNumber); - this.apiToPresLayerRegistry = ParameterMappingRegistryFactory_1.ParameterMappingRegistryFactory.createApiToPresLayerParamRegistry(versionNumber); - this.presLayerToApiRegistry = ParameterMappingRegistryFactory_1.ParameterMappingRegistryFactory.createPresLayerToApiParamRegistry(versionNumber); - this.eventRegistry = EventMappingRegistryFactory_1.EventMappingRegistryFactory.createEventMappingRegistry(versionNumber); - // Convert our addInLocator to the Api version - this.apiAddInLocator = this.presLayerToApiRegistry - .get(Params_1.ParameterId.AddInLocator, api_internal_contract_1.ParameterId.AddInLocator)(this.presLayerAddInLocator); - for (var _i = 0, _a = Object.keys(this.eventRegistry); _i < _a.length; _i++) { - var plEventId = _a[_i]; - // Register for all notifications we know about and bind the event type to the callback - this.presLayer.registerNotificationHandler(plEventId, this.onPresLayerNotification.bind(this, plEventId)); - } - }; - /** - * Sets an event handler function to be notified when Api events come in. Only a single registration is supported. - * - * @param {NotificationHandler} eventHandler - * @memberof ApiEventHandler - */ - ApiEventHandler.prototype.setEventHandler = function (eventHandler) { - this.eventHandler = eventHandler; - // TODO - Register for pres layer events - }; - /** - * Executes the requested Api command by converting the parameters, running the command against the pres-layer, - * then processing the result back into a format the Api can understand - * - * @param {VerbId} verb - * @param {ExecuteParameters} parameters - * @returns {Promise} - * @memberof ApiEventHandler - */ - ApiEventHandler.prototype.execute = function (verb, parameters) { - var _this = this; - this.assertInitialized(); - var command = this.commandRegistry.getCommand(verb); - parameters = parameters || {}; - // Augment the command with the locator if it's needed - if (command.needsAddInLocator) { - parameters[api_internal_contract_1.ParameterId.AddInLocator] = this.apiAddInLocator; - } - var commandsParams = command.createParams(parameters, this.apiToPresLayerRegistry); - return this.presLayer.invokeCommand('tabdoc', command.commandId, commandsParams) - .then(function (commandResult) { - var convertedResult = command.ProcessResult(commandResult, _this.presLayerToApiRegistry); - return { - result: convertedResult - }; - }); - }; - /** - * Helper method to check that things are initialized as expected. Throws if initialization not complete - * - * @private - * @memberof ApiEventHandler - */ - ApiEventHandler.prototype.assertInitialized = function () { - if (!this.versionNumber) { - throw new Error('VersionNumber not yet configured. Cannot take any actions'); - } - }; - /** - * Called when a new event notification comes in from the presentation layer - * - * @param eventId The pres layer event id - * @param presModel The pres model that is included with the event - */ - ApiEventHandler.prototype.onPresLayerNotification = function (eventId, presModel) { - // First look up this eventId in our registry and convert to presModel - var eventMapping = this.eventRegistry[eventId]; - var apiModel = eventMapping.converter(presModel); - if (this.eventHandler) { - this.eventHandler(eventMapping.apiId, apiModel); - } - }; - return ApiEventHandler; - }()); - exports.ApiEventHandler = ApiEventHandler; - - -/***/ }, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export(__webpack_require__(5)); - __export(__webpack_require__(6)); - __export(__webpack_require__(7)); - __export(__webpack_require__(8)); - __export(__webpack_require__(9)); - - -/***/ }, -/* 5 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var AddInContext; - (function (AddInContext) { - AddInContext["Desktop"] = "desktop"; - AddInContext["Server"] = "server"; - AddInContext["Unknown"] = "unknown"; - })(AddInContext = exports.AddInContext || (exports.AddInContext = {})); - var AddInMode; - (function (AddInMode) { - AddInMode["Authoring"] = "authoring"; - AddInMode["Viewing"] = "viewing"; - AddInMode["Unknown"] = "unknown"; - })(AddInMode = exports.AddInMode || (exports.AddInMode = {})); - var DashboardObjectType; - (function (DashboardObjectType) { - DashboardObjectType["Blank"] = "blank"; - DashboardObjectType["Worksheet"] = "worksheet"; - DashboardObjectType["QuickFilter"] = "quick-filter"; - DashboardObjectType["ParameterControl"] = "parameter-control"; - DashboardObjectType["PageFilter"] = "page-filter"; - DashboardObjectType["Legend"] = "legend"; - DashboardObjectType["Title"] = "title"; - DashboardObjectType["Text"] = "text"; - DashboardObjectType["Image"] = "image"; - DashboardObjectType["WebPage"] = "web-page"; - DashboardObjectType["AddIn"] = "addin"; - })(DashboardObjectType = exports.DashboardObjectType || (exports.DashboardObjectType = {})); - var DataType; - (function (DataType) { - DataType["String"] = "string"; - DataType["Int"] = "int"; - DataType["Float"] = "float"; - DataType["Bool"] = "bool"; - DataType["Date"] = "date"; - DataType["DateTime"] = "date-time"; - DataType["Spatial"] = "spatial"; - })(DataType = exports.DataType || (exports.DataType = {})); - var EncodedDataType; - (function (EncodedDataType) { - EncodedDataType["Number"] = "number"; - EncodedDataType["String"] = "string"; - EncodedDataType["Date"] = "date"; - EncodedDataType["Boolean"] = "boolean"; - })(EncodedDataType = exports.EncodedDataType || (exports.EncodedDataType = {})); - var ErrorCode; - (function (ErrorCode) { - ErrorCode["ServerError"] = "server-error"; - ErrorCode["InvalidAggregationFieldName"] = "invalid-aggregation-field-name"; - ErrorCode["InvalidFilterFieldName"] = "invalid-filter-fieldname"; - ErrorCode["InvalidFilterFieldValue"] = "invalid-filter-field-value"; - })(ErrorCode = exports.ErrorCode || (exports.ErrorCode = {})); - /** - * The different update types for applying filter. - */ - var FilterUpdateType; - (function (FilterUpdateType) { - FilterUpdateType["Add"] = "add"; - FilterUpdateType["All"] = "all"; - FilterUpdateType["Replace"] = "replace"; - FilterUpdateType["Remove"] = "remove"; - })(FilterUpdateType = exports.FilterUpdateType || (exports.FilterUpdateType = {})); - var SheetType; - (function (SheetType) { - SheetType["Dashboard"] = "dashboard"; - SheetType["Story"] = "story"; - SheetType["Worksheet"] = "worksheet"; - SheetType["Addin"] = "addin"; - })(SheetType = exports.SheetType || (exports.SheetType = {})); - /** - * The option for specifying which values to include for filtering. - */ - var NullOption; - (function (NullOption) { - NullOption["NullValues"] = "nullvalues"; - NullOption["NonNullValues"] = "nonnullvalues"; - NullOption["AllValues"] = "allvalues"; - })(NullOption = exports.NullOption || (exports.NullOption = {})); - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var InternalApiDispatcherHolder; - (function (InternalApiDispatcherHolder) { - function getDesktopDispatcherPromise() { - return window.__tableauDesktopDispatcher; - } - InternalApiDispatcherHolder.getDesktopDispatcherPromise = getDesktopDispatcherPromise; - function hasDesktopApiDispatcherPromise() { - return !!InternalApiDispatcherHolder.getDesktopDispatcherPromise(); - } - InternalApiDispatcherHolder.hasDesktopApiDispatcherPromise = hasDesktopApiDispatcherPromise; - function setDesktopDispatcherPromise(dispatcher) { - window.__tableauDesktopDispatcher = dispatcher; - } - InternalApiDispatcherHolder.setDesktopDispatcherPromise = setDesktopDispatcherPromise; - })(InternalApiDispatcherHolder = exports.InternalApiDispatcherHolder || (exports.InternalApiDispatcherHolder = {})); - - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var NotificationId; - (function (NotificationId) { - NotificationId["SelectedMarksChanged"] = "selected-marks-changed"; - })(NotificationId = exports.NotificationId || (exports.NotificationId = {})); - - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var ParameterId; - (function (ParameterId) { - ParameterId["AddInLocator"] = "add-in-locator"; - ParameterId["AddInBootstrapInfo"] = "add-in-bootstrap-info"; - ParameterId["AddInSettingsInfo"] = "add-in-settings-info"; - ParameterId["VisualId"] = "visual-id"; - ParameterId["SheetPath"] = "sheet-path"; - ParameterId["IgnoreAliases"] = "ignore-aliases"; - ParameterId["IgnoreSelection"] = "ignore-selection"; - ParameterId["IncludeAllColumns"] = "include-all-columns"; - ParameterId["MaxRows"] = "max-rows"; - ParameterId["UnderlyingDataTable"] = "underlying-data-table"; - ParameterId["UnderlyingSummaryDataTable"] = "underlying-summary-data-table"; - ParameterId["SettingsValues"] = "settings-values"; - ParameterId["SelectedData"] = "selected-data"; - ParameterId["HighlightedData"] = "highlighted-data"; - // Filter Params - ParameterId["FieldName"] = "field-name"; - ParameterId["FilterValues"] = "filter-values"; - ParameterId["FilterUpdateType"] = "filter-update-type"; - ParameterId["IsExcludeMode"] = "is-exclude"; - ParameterId["FilterRangeMin"] = "filter-range-min"; - ParameterId["FilterRangeMax"] = "filter-range-max"; - ParameterId["FilterRangeNullOption"] = "filter-range-null-option"; - ParameterId["WorksheetName"] = "worksheet-name"; - })(ParameterId = exports.ParameterId || (exports.ParameterId = {})); - - -/***/ }, -/* 9 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - // Declare this key type and export the NotificationId to make this behave like a string enum - var VerbId; - (function (VerbId) { - VerbId["ApplyCategoricalFilter"] = "categorical-filter"; - VerbId["ApplyRangeFilter"] = "range-filter"; - VerbId["ClearFilter"] = "clear-filter"; - VerbId["InitializeAddIn"] = "initialize-add-in"; - VerbId["GetDataSummaryData"] = "get-summary-data"; - VerbId["GetUnderlyingData"] = "get-underlying-data"; - VerbId["SaveAddInSettings"] = "save-add-in-settings"; - VerbId["GetSelectedMarks"] = "get-selected-marks"; - VerbId["GetHighlightedMarks"] = "get-highlighted-marks"; - })(VerbId = exports.VerbId || (exports.VerbId = {})); - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - "use strict"; - // ----------------------------------------------------------------------------- - // - // This file is the copyrighted property of Tableau Software and is protected - // by registered patents and other applicable U.S. and international laws and - // regulations. - // - // Unlicensed use of the contents of this file is prohibited. Please refer to - // the NOTICES.txt file for further details. - // - // ----------------------------------------------------------------------------- - // WARNING: Computer generated file. Do not hand modify. - // DEPENDS ON: ['..\\js-api\\api-core\\node_modules\\@tableau\\preslayer-codegen-typescript\\templates\\params-ts.template', u'..\\js-api\\api-core\\temp-pres-layer\\all-params.data'] - Object.defineProperty(exports, "__esModule", { value: true }); - var ParameterId; - (function (ParameterId) { - // DPI_IntegerRLE, having type int[] - ParameterId["IntegerRLE"] = "intRle"; - // DPI_UnsignedIntegerRLE, having type uint[] - ParameterId["UnsignedIntegerRLE"] = "uintRle"; - // DPI_FloatRLE, having type float[] - ParameterId["FloatRLE"] = "floatRle"; - // DPI_ParameterID, having type string - ParameterId["ParameterID"] = "paramType"; - // DPI_AllowCustomDatabase, having type bool - ParameterId["AllowCustomDatabase"] = "allowCustomDatabase"; - // DPI_AllowCustomSchema, having type bool - ParameterId["AllowCustomSchema"] = "allowCustomSchema"; - // DPI_AllowCustomSQL, having type bool - ParameterId["AllowCustomSQL"] = "allowCustomSql"; - // DPI_AllowCustomSQLWithoutSchema, having type bool - ParameterId["AllowCustomSQLWithoutSchema"] = "allowCustomSqlWithoutSchema"; - // DPI_AllowPreviewData, having type bool - ParameterId["AllowPreviewData"] = "allowPreviewData"; - // DPI_AllowStoredProc, having type bool - ParameterId["AllowStoredProc"] = "allowStoredProcedure"; - // DPI_AllowUnion, having type bool - ParameterId["AllowUnion"] = "allowUnion"; - // DPI_AreVariablesVisible, having type bool - ParameterId["AreVariablesVisible"] = "areVariablesVisible"; - // DPI_AttrLegacyConnection, having type bool - ParameterId["AttrLegacyConnection"] = "widgetAttrLegacy"; - // DPI_AttrReadUncommitted, having type bool - ParameterId["AttrReadUncommitted"] = "widgetAttrReadUncommittedData"; - // DPI_AttrRequireSSL, having type bool - ParameterId["AttrRequireSSL"] = "widgetAttrRequireSsl"; - // DPI_AttrRequireEncryption, having type bool - ParameterId["AttrRequireEncryption"] = "widgetAttrRequireEncryption"; - // DPI_Bool, having type bool - ParameterId["Bool"] = "bool"; - // DPI_CanPartition, having type bool - ParameterId["CanPartition"] = "canPartition"; - // DPI_CanRecommendDataSources, having type bool - ParameterId["CanRecommendDataSources"] = "canRecommendDatasources"; - // DPI_CanRecommendTables, having type bool - ParameterId["CanRecommendTables"] = "canRecommendTables"; - // DPI_CheckPermissions, having type bool - ParameterId["CheckPermissions"] = "checkPermissions"; - // DPI_DatabaseNameOptional, having type bool - ParameterId["DatabaseNameOptional"] = "databaseNameOptional"; - // DPI_DatabaseWHOptional, having type bool - ParameterId["DatabaseWHOptional"] = "databaseWarehouseOptional"; - // DPI_DoValidation, having type bool - ParameterId["DoValidation"] = "doValidation"; - // DPI_DoneLoadingAllSheets, having type bool - ParameterId["DoneLoadingAllSheets"] = "googleSheetDoneLoading"; - // DPI_GABasicItemsEnabled, having type bool - ParameterId["GABasicItemsEnabled"] = "gaBasicItemsEnabled"; - // DPI_GADimensionMeasuresEnabled, having type bool - ParameterId["GADimensionMeasuresEnabled"] = "gaDimensionsMeasuresEnabled"; - // DPI_GAFiltersEnabled, having type bool - ParameterId["GAFiltersEnabled"] = "gaFiltersEnabled"; - // DPI_HasDatabase, having type bool - ParameterId["HasDatabase"] = "hasDatabase"; - // DPI_HasDataLoss, having type bool - ParameterId["HasDataLoss"] = "hasDataLoss"; - // DPI_HasFastMetadata, having type bool - ParameterId["HasFastMetadata"] = "hasFastMetadata"; - // DPI_HasNewlyDiscoveredSchema, having type bool - ParameterId["HasNewlyDiscoveredSchema"] = "hasNewlyDiscoveredSchema"; - // DPI_HasPermissions, having type bool - ParameterId["HasPermissions"] = "hasPermissions"; - // DPI_HasSchema, having type bool - ParameterId["HasSchema"] = "hasSchema"; - // DPI_HasSchemaCount, having type bool - ParameterId["HasSchemaCount"] = "hasSchemaCount"; - // DPI_HasTables, having type bool - ParameterId["HasTables"] = "hasTables"; - // DPI_HasUncommittedChanges, having type bool - ParameterId["HasUncommittedChanges"] = "hasUncommittedChanges"; - // DPI_HasWarehouse, having type bool - ParameterId["HasWarehouse"] = "hasWarehouse"; - // DPI_HasWarning, having type bool - ParameterId["HasWarning"] = "hasWarning"; - // DPI_IsCalculated, having type bool - ParameterId["IsCalculated"] = "isCalculated"; - // DPI_IsConnectedToDataSource, having type bool - ParameterId["IsConnectedToDataSource"] = "isConnectedDatasource"; - // DPI_IsDisabledDataConnection, having type bool - ParameterId["IsDisabledDataConnection"] = "isDisabledDataConnection"; - // DPI_IsEditable, having type bool - ParameterId["IsEditable"] = "isEditable"; - // DPI_IsEnabled, having type bool - ParameterId["IsEnabled"] = "isEnabled"; - // DPI_IsFinishedConnecting, having type bool - ParameterId["IsFinishedConnecting"] = "isFinishedConnecting"; - // DPI_IsHidden, having type bool - ParameterId["IsHidden"] = "isHidden"; - // DPI_IsMultiTable, having type bool - ParameterId["IsMultiTable"] = "isMultiTable"; - // DPI_IsNewCustomSQL, having type bool - ParameterId["IsNewCustomSQL"] = "isNewCustomSql"; - // DPI_IsNewDataSource, having type bool - ParameterId["IsNewDataSource"] = "isNewDataSrc"; - // DPI_IsPublishedFederated, having type bool - ParameterId["IsPublishedFederated"] = "isPublishedFederated"; - // DPI_IsSampled, having type bool - ParameterId["IsSampled"] = "isSampled"; - // DPI_IsSchemaMemberNewlyDiscovered, having type bool - ParameterId["IsSchemaMemberNewlyDiscovered"] = "isSchemaMemberNewlyDiscovered"; - // DPI_IsSlowFast, having type bool - ParameterId["IsSlowFast"] = "isSlowfast"; - // DPI_IsSupported, having type bool - ParameterId["IsSupported"] = "isSupported"; - // DPI_IsTableSelectionVisible, having type bool - ParameterId["IsTableSelectionVisible"] = "isTableSelectionVisible"; - // DPI_IsTableauServerDatasource, having type bool - ParameterId["IsTableauServerDatasource"] = "isTableauServerDatasource"; - // DPI_IsTableauServerDatasourceConnectable, having type bool - ParameterId["IsTableauServerDatasourceConnectable"] = "isTableauServerDatasourceConnectable"; - // DPI_IsTableauServerDatasourceDownloadable, having type bool - ParameterId["IsTableauServerDatasourceDownloadable"] = "isTableauServerDatasourceDownloadable"; - // DPI_IsVisible, having type bool - ParameterId["IsVisible"] = "isVisible"; - // DPI_NeedFlatten, having type bool - ParameterId["NeedFlatten"] = "needFlatten"; - // DPI_SSLRequiresCertificate, having type bool - ParameterId["SSLRequiresCertificate"] = "sslRequiresCertificate"; - // DPI_SchemaOptional, having type bool - ParameterId["SchemaOptional"] = "schemaOptional"; - // DPI_ServiceNameOptional, having type bool - ParameterId["ServiceNameOptional"] = "serviceNameOptional"; - // DPI_ShouldWarnForCrossSchemaJoins, having type bool - ParameterId["ShouldWarnForCrossSchemaJoins"] = "shouldWarnCrossSchemaJoins"; - // DPI_ShowBrowseButton, having type bool - ParameterId["ShowBrowseButton"] = "showBrowseButton"; - // DPI_ShowConnectionPrompt, having type bool - ParameterId["ShowConnectionPrompt"] = "showConnectionPrompt"; - // DPI_ShowDBBrowseButton, having type bool - ParameterId["ShowDBBrowseButton"] = "showDbBrowseButton"; - // DPI_ShowDBNamePrompt, having type bool - ParameterId["ShowDBNamePrompt"] = "showDbPrompt"; - // DPI_ShowDBWHNamePrompt, having type bool - ParameterId["ShowDBWHNamePrompt"] = "showDbwhPrompt"; - // DPI_ShowImportSSLCertLabel, having type bool - ParameterId["ShowImportSSLCertLabel"] = "showImportSslcertLabel"; - // DPI_ShowPortPrompt, having type bool - ParameterId["ShowPortPrompt"] = "showPortPrompt"; - // DPI_ShowSSLCheckbox, having type bool - ParameterId["ShowSSLCheckbox"] = "showSslCheckbox"; - // DPI_ShowEncryptionCheckbox, having type bool - ParameterId["ShowEncryptionCheckbox"] = "showEncryptionCheckbox"; - // DPI_ShowServerNamePrompt, having type bool - ParameterId["ShowServerNamePrompt"] = "showServerPrompt"; - // DPI_ShowServiceNamePrompt, having type bool - ParameterId["ShowServiceNamePrompt"] = "showServicePrompt"; - // DPI_ShowUncommittedDataCheckbox, having type bool - ParameterId["ShowUncommittedDataCheckbox"] = "showUncommittedDataCheckbox"; - // DPI_SupportsGenericAuth, having type bool - ParameterId["SupportsGenericAuth"] = "supportsGenericAuth"; - // DPI_TableauServerFetchAscending, having type bool - ParameterId["TableauServerFetchAscending"] = "tableauServerFetchAscending"; - // DPI_UsesRadioButton, having type bool - ParameterId["UsesRadioButton"] = "usesRadioButton"; - // DPI_BigQueryLegacySQLCheckStatus, having type bool - ParameterId["BigQueryLegacySQLCheckStatus"] = "datasourceBigqueryLegacySqlCheckStatus"; - // DPI_HasBigQueryLegacySQLCheck, having type bool - ParameterId["HasBigQueryLegacySQLCheck"] = "datasourceBigqueryLegacySqlCheck"; - // DPI_AutoFetchLimit, having type int - ParameterId["AutoFetchLimit"] = "autoFetchLimit"; - // DPI_ConnectionType, having type int - ParameterId["ConnectionType"] = "connectionType"; - // DPI_IconId, having type int - ParameterId["IconId"] = "iconId"; - // DPI_SelectedCatalogIndex, having type int - ParameterId["SelectedCatalogIndex"] = "selectedCatalogIndex"; - // DPI_SelectedCubeIndex, having type int - ParameterId["SelectedCubeIndex"] = "selectedCubeIndex"; - // DPI_SelectedGAAccountIndex, having type int - ParameterId["SelectedGAAccountIndex"] = "selectedGaAccountIndex"; - // DPI_SelectedGAMeasureSetIndex, having type int - ParameterId["SelectedGAMeasureSetIndex"] = "selectedGaMeasureSetIndex"; - // DPI_SelectedGAPropertyIndex, having type int - ParameterId["SelectedGAPropertyIndex"] = "selectedGaPropertyIndex"; - // DPI_SelectedGASegmentIndex, having type int - ParameterId["SelectedGASegmentIndex"] = "selectedGaSegmentIndex"; - // DPI_SelectedGAViewIndex, having type int - ParameterId["SelectedGAViewIndex"] = "selectedGaViewIndex"; - // DPI_SelectedGoogleSheetIndex, having type int - ParameterId["SelectedGoogleSheetIndex"] = "selectedGoogleSheetIndex"; - // DPI_SelectedOptionIndex, having type int - ParameterId["SelectedOptionIndex"] = "selectedOptionIndex"; - // DPI_SlowMetadataCount, having type int - ParameterId["SlowMetadataCount"] = "slowMetadataCount"; - // DPI_TableauServerFetchSortBy, having type int - ParameterId["TableauServerFetchSortBy"] = "tableauServerFetchSort"; - // DPI_ActualParameterOrdinal, having type uint - ParameterId["ActualParameterOrdinal"] = "actualParameterOrdinal"; - // DPI_ActualParameterType, having type uint - ParameterId["ActualParameterType"] = "actualParameterType"; - // DPI_CharSetID, having type uint - ParameterId["CharSetID"] = "charsetId"; - // DPI_DataSourceOrdinal, having type uint - ParameterId["DataSourceOrdinal"] = "datasourceOrdinal"; - // DPI_FilterCount, having type uint - ParameterId["FilterCount"] = "filterCount"; - // DPI_VariablesCount, having type uint - ParameterId["VariablesCount"] = "variablesCount"; - // DPI_ActualParameterDisplayName, having type string - ParameterId["ActualParameterDisplayName"] = "actualParameterDisplayName"; - // DPI_ActualParameterName, having type string - ParameterId["ActualParameterName"] = "actualParameterName"; - // DPI_ActualParameterValue, having type string - ParameterId["ActualParameterValue"] = "actualParameterValue"; - // DPI_AttrAPIVersion, having type string - ParameterId["AttrAPIVersion"] = "attrApiVersion"; - // DPI_AttrAuthType, having type string - ParameterId["AttrAuthType"] = "widgetAttrAuthtype"; - // DPI_AttrConnectionData, having type string - ParameterId["AttrConnectionData"] = "attrConnectionData"; - // DPI_AttrConnectionName, having type string - ParameterId["AttrConnectionName"] = "attrConnectionName"; - // DPI_AttrConnectionType, having type string - ParameterId["AttrConnectionType"] = "widgetAttrConnectiontype"; - // DPI_AttrConnectionURL, having type string - ParameterId["AttrConnectionURL"] = "attrConnectionUrl"; - // DPI_AttrCubeSpecificationId, having type string - ParameterId["AttrCubeSpecificationId"] = "widgetAttrCubeSpecificationId"; - // DPI_AttrCubeSpecificationValue, having type string - ParameterId["AttrCubeSpecificationValue"] = "widgetAttrCubeSpecificationValue"; - // DPI_AttrDSN, having type string - ParameterId["AttrDSN"] = "widgetAttrDsn"; - // DPI_AttrDatabase, having type string - ParameterId["AttrDatabase"] = "widgetAttrDb"; - // DPI_AttrDatabaseWarehouse, having type string - ParameterId["AttrDatabaseWarehouse"] = "widgetAttrDbwh"; - // DPI_AttrDriver, having type string - ParameterId["AttrDriver"] = "widgetAttrDriver"; - // DPI_AttrFilename, having type string - ParameterId["AttrFilename"] = "widgetAttrFilename"; - // DPI_AttrHTTPPath, having type string - ParameterId["AttrHTTPPath"] = "widgetAttrHttpPath"; - // DPI_AttrIncrementalRefreshKey, having type string - ParameterId["AttrIncrementalRefreshKey"] = "attrIncrementalRefreshKey"; - // DPI_AttrKerberosHost, having type string - ParameterId["AttrKerberosHost"] = "widgetAttrKerberosHost"; - // DPI_AttrKerberosRealm, having type string - ParameterId["AttrKerberosRealm"] = "widgetAttrKerberosRealm"; - // DPI_AttrKerberosService, having type string - ParameterId["AttrKerberosService"] = "widgetAttrKerberosService"; - // DPI_AttrLastRecordToken, having type string - ParameterId["AttrLastRecordToken"] = "attrLastRecordToken"; - // DPI_AttrMDWPath, having type string - ParameterId["AttrMDWPath"] = "widgetAttrMdwPath"; - // DPI_AttrMDWUsername, having type string - ParameterId["AttrMDWUsername"] = "widgetAttrMdwUsername"; - // DPI_AttrODBCPrompt, having type string - ParameterId["AttrODBCPrompt"] = "widgetAttrOdbcPrompt"; - // DPI_AttrODBCStringExtras, having type string - ParameterId["AttrODBCStringExtras"] = "widgetAttrOdbcStringExtras"; - // DPI_AttrPort, having type string - ParameterId["AttrPort"] = "widgetAttrPort"; - // DPI_AttrSAPClient, having type string - ParameterId["AttrSAPClient"] = "widgetAttrSapClient"; - // DPI_AttrSAPLanguage, having type string - ParameterId["AttrSAPLanguage"] = "widgetAttrSapLanguage"; - // DPI_AttrEdition, having type string - ParameterId["AttrEdition"] = "widgetAttrSslEdition"; - // DPI_AttrSSODomain, having type string - ParameterId["AttrSSODomain"] = "widgetAttrSsoDomain"; - // DPI_AttrSSLCert, having type string - ParameterId["AttrSSLCert"] = "widgetAttrSslCert"; - // DPI_AttrScriptVersion, having type string - ParameterId["AttrScriptVersion"] = "attrScriptVersion"; - // DPI_AttrServer, having type string - ParameterId["AttrServer"] = "widgetAttrServer"; - // DPI_AttrService, having type string - ParameterId["AttrService"] = "widgetAttrService"; - // DPI_AttrUsername, having type string - ParameterId["AttrUsername"] = "widgetAttrUser"; - // DPI_AuthenticationPrompt, having type string - ParameterId["AuthenticationPrompt"] = "authenticationPrompt"; - // DPI_Caption, having type string - ParameterId["Caption"] = "caption"; - // DPI_CatalogListPrompt, having type string - ParameterId["CatalogListPrompt"] = "catalogListPrompt"; - // DPI_CatalogName, having type string - ParameterId["CatalogName"] = "catalogName"; - // DPI_CatalogSearchTerm, having type string - ParameterId["CatalogSearchTerm"] = "catalogSearchTerm"; - // DPI_Category, having type string - ParameterId["Category"] = "itemCategory"; - // DPI_ClassName, having type string - ParameterId["ClassName"] = "classNameForCleaning"; - // DPI_CloudFileClassName, having type string - ParameterId["CloudFileClassName"] = "cloudFileClassName"; - // DPI_CloudFileStorageProvider, having type string - ParameterId["CloudFileStorageProvider"] = "cloudFileStorageProvider"; - // DPI_ConfigName, having type string - ParameterId["ConfigName"] = "connectionConfigName"; - // DPI_ConnectionCaption, having type string - ParameterId["ConnectionCaption"] = "connectionCaption"; - // DPI_ConnectionDescriptionLabel, having type string - ParameterId["ConnectionDescriptionLabel"] = "connectionDescriptionLabel"; - // DPI_ConnectionClass, having type string - ParameterId["ConnectionClass"] = "connectionClassName"; - // DPI_ConnectionName, having type string - ParameterId["ConnectionName"] = "connectionName"; - // DPI_ConnectionOptionName, having type string - ParameterId["ConnectionOptionName"] = "connectionOptionName"; - // DPI_ConnectionSpecificationTitle, having type string - ParameterId["ConnectionSpecificationTitle"] = "connectionSpecificationTitle"; - // DPI_ConnectionTypeLabel, having type string - ParameterId["ConnectionTypeLabel"] = "connectionTypeLabel"; - // DPI_CubeDescription, having type string - ParameterId["CubeDescription"] = "cubeDescription"; - // DPI_CubeLastUpdated, having type string - ParameterId["CubeLastUpdated"] = "cubeLastUpdated"; - // DPI_CubeListPrompt, having type string - ParameterId["CubeListPrompt"] = "cubeListPrompt"; - // DPI_CubeName, having type string - ParameterId["CubeName"] = "cubeName"; - // DPI_CubeSearchTerm, having type string - ParameterId["CubeSearchTerm"] = "cubeSearchTerm"; - // DPI_CurrentText, having type string - ParameterId["CurrentText"] = "currentText"; - // DPI_CustomSplitStringSeparator, having type string - ParameterId["CustomSplitStringSeparator"] = "customSplitStringSeparator"; - // DPI_DatasourceId, having type string - ParameterId["DatasourceId"] = "datasourceId"; - // DPI_DBNamePrompt, having type string - ParameterId["DBNamePrompt"] = "dbNamePrompt"; - // DPI_DBWHNamePrompt, having type string - ParameterId["DBWHNamePrompt"] = "dbWarehouseNamePrompt"; - // DPI_DSClass, having type string - ParameterId["DSClass"] = "dsClass"; - // DPI_DatabaseName, having type string - ParameterId["DatabaseName"] = "datasourceDatabaseName"; - // DPI_DatabaseNote, having type string - ParameterId["DatabaseNote"] = "databaseNote"; - // DPI_DragLabel, having type string - ParameterId["DragLabel"] = "dragLabel"; - // DPI_EffectiveDateRange, having type string - ParameterId["EffectiveDateRange"] = "effectiveDateRange"; - // DPI_GoogleSheetCreatedTime, having type string - ParameterId["GoogleSheetCreatedTime"] = "googleSheetCreatedTime"; - // DPI_GoogleSheetId, having type string - ParameterId["GoogleSheetId"] = "googleSheetId"; - // DPI_GoogleSheetLastModifiedTime, having type string - ParameterId["GoogleSheetLastModifiedTime"] = "googleSheetLastModifiedTime"; - // DPI_GoogleSheetLastModifyingUser, having type string - ParameterId["GoogleSheetLastModifyingUser"] = "googleSheetLastModifyingUser"; - // DPI_GoogleSheetLastViewedByUserTime, having type string - ParameterId["GoogleSheetLastViewedByUserTime"] = "googleSheetLastViewedByUserTime"; - // DPI_GoogleSheetMimeType, having type string - ParameterId["GoogleSheetMimeType"] = "googleSheetMimeType"; - // DPI_GoogleSheetName, having type string - ParameterId["GoogleSheetName"] = "googleSheetName"; - // DPI_GoogleSheetOwner, having type string - ParameterId["GoogleSheetOwner"] = "googleSheetOwner"; - // DPI_GoogleSheetThumbnailLink, having type string - ParameterId["GoogleSheetThumbnailLink"] = "googleSheetThumbnailLink"; - // DPI_GoogleSheetThumbnailId, having type string - ParameterId["GoogleSheetThumbnailId"] = "googleSheetThumbnailId"; - // DPI_GoogleSheetThumbnailLocalPath, having type string - ParameterId["GoogleSheetThumbnailLocalPath"] = "googleSheetThumbnailLocalPath"; - // DPI_GoogleSheetWebViewLink, having type string - ParameterId["GoogleSheetWebViewLink"] = "googleSheetWebViewLink"; - // DPI_GoogleSheetsListErrorMessage, having type string - ParameterId["GoogleSheetsListErrorMessage"] = "googleSheetsListErrorMessage"; - // DPI_InitialSQL, having type string - ParameterId["InitialSQL"] = "initialSql"; - // DPI_ISODate, having type string - ParameterId["ISODate"] = "isoDate"; - // DPI_ISOEndDate, having type string - ParameterId["ISOEndDate"] = "isoEndDate"; - // DPI_ISOStartDate, having type string - ParameterId["ISOStartDate"] = "isoStartDate"; - // DPI_IsolationLevel, having type string - ParameterId["IsolationLevel"] = "datasourceIsolationLevel"; - // DPI_ItemDescription, having type string - ParameterId["ItemDescription"] = "itemDescription"; - // DPI_ItemId, having type string - ParameterId["ItemId"] = "itemId"; - // DPI_KerberosHost, having type string - ParameterId["KerberosHost"] = "datasourceKerberosHost"; - // DPI_KerberosRealm, having type string - ParameterId["KerberosRealm"] = "datasourceKerberosRealm"; - // DPI_KerberosService, having type string - ParameterId["KerberosService"] = "datasourceKerberosService"; - // DPI_Name, having type string - ParameterId["Name"] = "name"; - // DPI_OptionId, having type string - ParameterId["OptionId"] = "optionId"; - // DPI_PartitioningButtonLabel, having type string - ParameterId["PartitioningButtonLabel"] = "partitioningButtonLabel"; - // DPI_PartitioningButtonTooltip, having type string - ParameterId["PartitioningButtonTooltip"] = "partitioningButtonTooltip"; - // DPI_PartitioningText, having type string - ParameterId["PartitioningText"] = "queryPartitioningText"; - // DPI_PdfStartPage, having type string - ParameterId["PdfStartPage"] = "pdfStartPage"; - // DPI_PdfEndPage, having type string - ParameterId["PdfEndPage"] = "pdfEndPage"; - // DPI_PortPrompt, having type string - ParameterId["PortPrompt"] = "portPrompt"; - // DPI_PromptText, having type string - ParameterId["PromptText"] = "promptText"; - // DPI_QueryBanding, having type string - ParameterId["QueryBanding"] = "queryBanding"; - // DPI_QueryText, having type string - ParameterId["QueryText"] = "queryText"; - // DPI_RecommendationUUID, having type string - ParameterId["RecommendationUUID"] = "recommendationUuid"; - // DPI_SQLQuery, having type string - ParameterId["SQLQuery"] = "sqlQuery"; - // DPI_SchemaComboFallbackText, having type string - ParameterId["SchemaComboFallbackText"] = "schemaComboFallbackText"; - // DPI_SchemaLabel, having type string - ParameterId["SchemaLabel"] = "schemaLabel"; - // DPI_SchemaMemberGlobalName, having type string - ParameterId["SchemaMemberGlobalName"] = "schemaMemberGlobalName"; - // DPI_SchemaName, having type string - ParameterId["SchemaName"] = "datasourceSchemaName"; - // DPI_ScriptText, having type string - ParameterId["ScriptText"] = "scriptText"; - // DPI_SecondaryWhiteList, having type string - ParameterId["SecondaryWhiteList"] = "secondaryWhiteList"; - // DPI_Server, having type string - ParameterId["Server"] = "datasourceServer"; - // DPI_ServerNamePrompt, having type string - ParameterId["ServerNamePrompt"] = "serverNamePrompt"; - // DPI_Service, having type string - ParameterId["Service"] = "datasourceService"; - // DPI_ServiceNamePrompt, having type string - ParameterId["ServiceNamePrompt"] = "servicePrompt"; - // DPI_SheetFormatting, having type string - ParameterId["SheetFormatting"] = "sheetFormatting"; - // DPI_SlowMetadataSearchTerm, having type string - ParameterId["SlowMetadataSearchTerm"] = "slowMetadataSearchTerm"; - // DPI_StandardConnectionName, having type string - ParameterId["StandardConnectionName"] = "datasourceStandardConnectionName"; - // DPI_StandardConnectionPlaceholderText, having type string - ParameterId["StandardConnectionPlaceholderText"] = "standardConnectionPlaceholderText"; - // DPI_StoredProcedureParameterTitle, having type string - ParameterId["StoredProcedureParameterTitle"] = "storedProcedureParameterTitle"; - // DPI_TableAlias, having type string - ParameterId["TableAlias"] = "tableAlias"; - // DPI_RightTableAlias, having type string - ParameterId["RightTableAlias"] = "rightTableAlias"; - // DPI_TableCaption, having type string - ParameterId["TableCaption"] = "tableCaption"; - // DPI_TableCollectionName, having type string - ParameterId["TableCollectionName"] = "tableCollectionName"; - // DPI_TablePlaceholderText, having type string - ParameterId["TablePlaceholderText"] = "tablePlaceholderText"; - // DPI_TableRanking, having type string - ParameterId["TableRanking"] = "tableRanking"; - // DPI_TableSortKey, having type string - ParameterId["TableSortKey"] = "tableSortkey"; - // DPI_TableTooltip, having type string - ParameterId["TableTooltip"] = "tableTooltip"; - // DPI_TableToReplace, having type string - ParameterId["TableToReplace"] = "tableToReplace"; - // DPI_TableWarningMessage, having type string - ParameterId["TableWarningMessage"] = "tableWarningMessage"; - // DPI_TableauServerDatasourceDescription, having type string - ParameterId["TableauServerDatasourceDescription"] = "tableauServerDatasourceDescription"; - // DPI_TableauServerDatasourceLastExtract, having type string - ParameterId["TableauServerDatasourceLastExtract"] = "tableauServerDatasourceLastExtract"; - // DPI_TableauServerDatasourceModified, having type string - ParameterId["TableauServerDatasourceModified"] = "tableauServerDatasourceModified"; - // DPI_TableauServerDatasourceOwner, having type string - ParameterId["TableauServerDatasourceOwner"] = "tableauServerDatasourceOwner"; - // DPI_TableauServerDatasourcePath, having type string - ParameterId["TableauServerDatasourcePath"] = "tableauServerDatasourcePath"; - // DPI_TableauServerFetchSearchQuery, having type string - ParameterId["TableauServerFetchSearchQuery"] = "tableauServerFetchSearchQuery"; - // DPI_TableauServerName, having type string - ParameterId["TableauServerName"] = "tableauServerName"; - // DPI_TableauServerProjectName, having type string - ParameterId["TableauServerProjectName"] = "tableauServerProjectName"; - // DPI_TableauServerUsername, having type string - ParameterId["TableauServerUsername"] = "tableauServerUsername"; - // DPI_TransportType, having type string - ParameterId["TransportType"] = "transportType"; - // DPI_WarehouseName, having type string - ParameterId["WarehouseName"] = "datasourceWarehouseName"; - // DPI_WorkgroupWorkbookName, having type string - ParameterId["WorkgroupWorkbookName"] = "workgroupWorkbookName"; - // DPI_AnalyticsItemTooltip, having type string - ParameterId["AnalyticsItemTooltip"] = "analyticsItemTooltip"; - // DPI_Description, having type string - ParameterId["Description"] = "description"; - // DPI_DSClassCaption, having type string - ParameterId["DSClassCaption"] = "dsClassCaption"; - // DPI_Formula, having type string - ParameterId["Formula"] = "formula"; - // DPI_MessageText, having type string - ParameterId["MessageText"] = "messageText"; - // DPI_Datasource, having type string - ParameterId["Datasource"] = "datasource"; - // DPI_DatasourceSource, having type string - ParameterId["DatasourceSource"] = "datasourceSource"; - // DPI_DatasourceTarget, having type string - ParameterId["DatasourceTarget"] = "datasourceTarget"; - // DPI_FirstDatasource, having type string - ParameterId["FirstDatasource"] = "firstDatasource"; - // DPI_NewDatasource, having type string - ParameterId["NewDatasource"] = "newDatasource"; - // DPI_ParametersDatasource, having type string - ParameterId["ParametersDatasource"] = "parametersDatasource"; - // DPI_PrimaryDatasource, having type string - ParameterId["PrimaryDatasource"] = "primaryDatasource"; - // DPI_ConnectionDatabases, having type string[] - ParameterId["ConnectionDatabases"] = "connectionDatabases"; - // DPI_ConnectionSchemas, having type string[] - ParameterId["ConnectionSchemas"] = "connectionSchemas"; - // DPI_ConnectionWarehouses, having type string[] - ParameterId["ConnectionWarehouses"] = "connectionWarehouses"; - // DPI_PossibleChoices, having type string[] - ParameterId["PossibleChoices"] = "possibleChoices"; - // DPI_StandardConnections, having type string[] - ParameterId["StandardConnections"] = "standardConnections"; - // DPI_Strings, having type string[] - ParameterId["Strings"] = "strings"; - // DPI_TableauServerProjectNames, having type string[] - ParameterId["TableauServerProjectNames"] = "tableauServerProjectNames"; - // DPI_TableCaptions, having type string[] - ParameterId["TableCaptions"] = "tableCaptions"; - // DPI_DataValues, having type object[] - ParameterId["DataValues"] = "dataValues"; - // DPI_QueryBandErrors, having type object[] - ParameterId["QueryBandErrors"] = "queryBandErrors"; - // DPI_QueryBandParameters, having type object[] - ParameterId["QueryBandParameters"] = "queryBandParameters"; - // DPI_InitialSQLParameters, having type object[] - ParameterId["InitialSQLParameters"] = "initialSqlParameters"; - // DPI_ConnectionAttributes, having type Dictionary(of string) - ParameterId["ConnectionAttributes"] = "connectionAttrs"; - // DPI_ConnectionProps, having type Dictionary(of string) - ParameterId["ConnectionProps"] = "connectionProps"; - // DPI_DisplayNameMap, having type Dictionary(of string) - ParameterId["DisplayNameMap"] = "displayNameMap"; - // DPI_LookupTable, having type Dictionary(of string) - ParameterId["LookupTable"] = "lookupTable"; - // DPI_OAuthAttrs, having type Dictionary(of string) - ParameterId["OAuthAttrs"] = "oauthAttrs"; - // DPI_StringMap, having type Dictionary(of string) - ParameterId["StringMap"] = "stringMap"; - // DPI_TableRankingMap, having type Dictionary(of string) - ParameterId["TableRankingMap"] = "tableRankingMap"; - // DPI_WDCAttributes, having type Dictionary(of string) - ParameterId["WDCAttributes"] = "wdcAttrs"; - // DPI_ConnectorAttributes, having type Dictionary(of string) - ParameterId["ConnectorAttributes"] = "connectorAttrs"; - // DPI_TableRelevanceParams, having type Dictionary(of string) - ParameterId["TableRelevanceParams"] = "tableRelevanceParams"; - // DPI_ActualParameterParameter, having type string - ParameterId["ActualParameterParameter"] = "actualParameterParameter"; - // DPI_DataColumnName, having type string - ParameterId["DataColumnName"] = "dataColumnName"; - // DPI_LHSDataColumnName, having type string - ParameterId["LHSDataColumnName"] = "lhsDataColumnName"; - // DPI_RHSDataColumnName, having type string - ParameterId["RHSDataColumnName"] = "rhsDataColumnName"; - // DPI_FullCubeName, having type string - ParameterId["FullCubeName"] = "fullCubeName"; - // DPI_FullVariableName, having type string - ParameterId["FullVariableName"] = "fullVariableName"; - // DPI_SemanticRole, having type string - ParameterId["SemanticRole"] = "semanticRole"; - // DPI_StoredProcedureName, having type string - ParameterId["StoredProcedureName"] = "storedProcName"; - // DPI_TableName, having type string - ParameterId["TableName"] = "tableName"; - // DPI_AddedTableNames, having type string[] - ParameterId["AddedTableNames"] = "addedTableNames"; - // DPI_CoalesceGroupFields, having type string[] - ParameterId["CoalesceGroupFields"] = "coalesceGroupFields"; - // DPI_FieldNames, having type string[] - ParameterId["FieldNames"] = "fieldNames"; - // DPI_JoinFieldAliases, having type string[] - ParameterId["JoinFieldAliases"] = "joinField_aliases"; - // DPI_JoinInfoFields, having type string[] - ParameterId["JoinInfoFields"] = "joinInfoFields"; - // DPI_PivotGroupFields, having type string[] - ParameterId["PivotGroupFields"] = "pivotGroupFields"; - // DPI_RemovedTableNames, having type string[] - ParameterId["RemovedTableNames"] = "removedTableNames"; - // DPI_StoredProcedures, having type string[] - ParameterId["StoredProcedures"] = "storedProcedures"; - // DPI_TableNames, having type string[] - ParameterId["TableNames"] = "tableNames"; - // DPI_ColumnName, having type string - ParameterId["ColumnName"] = "columnName"; - // DPI_FieldName, having type string - ParameterId["FieldName"] = "fn"; - // DPI_GoogleSheetThumbnailImage, having type string - ParameterId["GoogleSheetThumbnailImage"] = "googleSheetThumbnailImage"; - // DPI_AttrMDWPassword, having type string - ParameterId["AttrMDWPassword"] = "widgetAttrMdwPassword"; - // DPI_AttrPassword, having type string - ParameterId["AttrPassword"] = "widgetAttrPassword"; - // DPI_DatasourcePassword, having type string - ParameterId["DatasourcePassword"] = "datasourcePassword"; - // DPI_FederatedKeychain, having type string - ParameterId["FederatedKeychain"] = "federatedKeychain"; - // DPI_DataParameterID, having type string - ParameterId["DataParameterID"] = "dataParamType"; - // DPI_ConnectServerWidgetType, having type ConnectServerWidgetType - ParameterId["ConnectServerWidgetType"] = "connectServerWidgetType"; - // DPI_AuthenticationMode, having type Mode - ParameterId["AuthenticationMode"] = "authMode"; - // DPI_ReconnectAuthMode, having type ReconnectMode - ParameterId["ReconnectAuthMode"] = "reconnectAuthMode"; - // DPI_CurrentAuthOption, having type AuthOption - ParameterId["CurrentAuthOption"] = "currAuthOption"; - // DPI_AuthOptionList, having type AuthOption[] - ParameterId["AuthOptionList"] = "authOptions"; - // DPI_ConnectionSpecificationType, having type ConnectionSpecificationType - ParameterId["ConnectionSpecificationType"] = "connectionSpecificationType"; - // DPI_DataType, having type DataType - ParameterId["DataType"] = "dataType"; - // DPI_LHSDataType, having type DataType - ParameterId["LHSDataType"] = "lhsDataType"; - // DPI_RHSDataType, having type DataType - ParameterId["RHSDataType"] = "rhsDataType"; - // DPI_DefaultFieldRole, having type FieldRole - ParameterId["DefaultFieldRole"] = "defaultFieldRole"; - // DPI_FieldRole, having type FieldRole - ParameterId["FieldRole"] = "fieldRole"; - // DPI_DefaultFieldType, having type FieldType - ParameterId["DefaultFieldType"] = "defaultFieldType"; - // DPI_FieldType, having type FieldType - ParameterId["FieldType"] = "fieldType"; - // DPI_FieldTypeList, having type FieldType[] - ParameterId["FieldTypeList"] = "fieldTypeList"; - // DPI_FieldTypeListDetail, having type FieldType[] - ParameterId["FieldTypeListDetail"] = "fieldTypeListDetail"; - // DPI_AggType, having type AggType - ParameterId["AggType"] = "aggregation"; - // DPI_DefaultAggType, having type AggType - ParameterId["DefaultAggType"] = "defaultAggregation"; - // DPI_ForecastAgg, having type AggType - ParameterId["ForecastAgg"] = "forecastSummarizeTo"; - // DPI_ForecastAutoAgg, having type AggType - ParameterId["ForecastAutoAgg"] = "forecastAutoSummarizeTo"; - // DPI_ForecastAutoRangeUnits, having type AggType - ParameterId["ForecastAutoRangeUnits"] = "forecastAutoRangeUnits"; - // DPI_ForecastEndOfRangeUnits, having type AggType - ParameterId["ForecastEndOfRangeUnits"] = "forecastEndOfRangeUnits"; - // DPI_ForecastNextRangeUnits, having type AggType - ParameterId["ForecastNextRangeUnits"] = "forecastNextRangeUnits"; - // DPI_SourceAgg, having type AggType - ParameterId["SourceAgg"] = "sourceAggregation"; - // DPI_TargetAgg, having type AggType - ParameterId["TargetAgg"] = "targetAggregation"; - // DPI_AggregateByAggTypes, having type AggType[] - ParameterId["AggregateByAggTypes"] = "aggregateByAggTypes"; - // DPI_AggregationValues, having type AggType[] - ParameterId["AggregationValues"] = "aggregationValues"; - // DPI_SortAggValues, having type AggType[] - ParameterId["SortAggValues"] = "sortAggValues"; - // DPI_ColumnClass, having type ColumnClass - ParameterId["ColumnClass"] = "columnClass"; - // DPI_ConnectionWidgetType, having type ConnectionWidgetType - ParameterId["ConnectionWidgetType"] = "connectionWidgetType"; - // DPI_TablePillIcon, having type TablePillIcon - ParameterId["TablePillIcon"] = "tablePillIconType"; - // DPI_EnumeratedEntityType, having type EntityType - ParameterId["EnumeratedEntityType"] = "enumeratedEntityType"; - // DPI_PickEntitySearchType, having type PickEntitySearchType - ParameterId["PickEntitySearchType"] = "entitySearchType"; - // DPI_ExpressionOp, having type Op - ParameterId["ExpressionOp"] = "expressionOp"; - // DPI_ExpressionOperatorCaption, having type ExpressionOperatorCaptionPresModel - ParameterId["ExpressionOperatorCaption"] = "expressionOperatorCaption"; - // DPI_RelationalExperessionOps, having type ExpressionOperatorCaptionPresModel[] - ParameterId["RelationalExperessionOps"] = "relationalExpressionOps"; - // DPI_HierarchyExpressionOps, having type ExpressionOperatorCaptionPresModel[] - ParameterId["HierarchyExpressionOps"] = "hierarchyExpressionOps"; - // DPI_DefaultSortDirection, having type SortDirection - ParameterId["DefaultSortDirection"] = "defSortOrder"; - // DPI_SortDirection, having type SortDirection - ParameterId["SortDirection"] = "sortOrder"; - // DPI_SortDirectionValues, having type SortDirection[] - ParameterId["SortDirectionValues"] = "sortDirectionValues"; - // DPI_CubeMetadataCategory, having type CubeMetadataCategory - ParameterId["CubeMetadataCategory"] = "cubeMetadataCategory"; - // DPI_CubeMetadataCategories, having type CubeMetadataCategory[] - ParameterId["CubeMetadataCategories"] = "cubeMetadataCategories"; - // DPI_GoogleBasicInfoType, having type GoogleBasicInfoType - ParameterId["GoogleBasicInfoType"] = "googleBasicInfoType"; - // DPI_GoogleAnalyticsDateRangeOptionType, having type DateRange - ParameterId["GoogleAnalyticsDateRangeOptionType"] = "googleAnalyticsDateRangeOptionType"; - // DPI_TableCalcType, having type TableCalcType - ParameterId["TableCalcType"] = "tableCalcType"; - // DPI_TableCalcTypeValues, having type TableCalcType[] - ParameterId["TableCalcTypeValues"] = "tableCalcTypeValues"; - // DPI_RelativeAddress, having type RelativeAddress - ParameterId["RelativeAddress"] = "relativeAddress"; - // DPI_RelativeValues, having type RelativeAddress[] - ParameterId["RelativeValues"] = "relativeValues"; - // DPI_OrderingType, having type OrderingType - ParameterId["OrderingType"] = "orderingType"; - // DPI_OrderingTypeValues, having type OrderingType[] - ParameterId["OrderingTypeValues"] = "orderingTypeValues"; - // DPI_CategoricalBinItemType, having type CategoricalBinItemType - ParameterId["CategoricalBinItemType"] = "categoricalBinItemType"; - // DPI_AuthenticationInfos, having type AuthenticationSettingsPresModel - ParameterId["AuthenticationInfos"] = "authInfo"; - // DPI_ConnectionWidgetParams, having type ConnectionParamsPresModel - ParameterId["ConnectionWidgetParams"] = "widgetConnectionParams"; - // DPI_ConnectionSettings, having type ConnectionSettingsPresModel - ParameterId["ConnectionSettings"] = "connectionSettings"; - // DPI_ReconnectAuthenticationSettings, having type AuthenticationSettingsPresModel - ParameterId["ReconnectAuthenticationSettings"] = "reconnectAuthSettings"; - // DPI_CubeConnectionSpecificationOption, having type CubeConnectionSpecificationOptionPresModel - ParameterId["CubeConnectionSpecificationOption"] = "cubeConnectionSpecificationOption"; - // DPI_CubeConnectionSpecificationOptions, having type CubeConnectionSpecificationOptionPresModel[] - ParameterId["CubeConnectionSpecificationOptions"] = "cubeConnectionSpecificationOptions"; - // DPI_CubeConnectionSpecification, having type CubeConnectionSpecificationPresModel - ParameterId["CubeConnectionSpecification"] = "cubeConnectionSpecification"; - // DPI_ConnectionSettingsOption, having type ConnectionSettingsOptionPresModel - ParameterId["ConnectionSettingsOption"] = "connectionSettingsOption"; - // DPI_ConnectionSettingsOptions, having type ConnectionSettingsOptionPresModel[] - ParameterId["ConnectionSettingsOptions"] = "connectionSettingsOptions"; - // DPI_StringCollation, having type StringCollationPresModel - ParameterId["StringCollation"] = "stringCollation"; - // DPI_DatabaseEnumeration, having type DatabaseEnumerationPresModel - ParameterId["DatabaseEnumeration"] = "databaseEnumeration"; - // DPI_SchemaEnumeration, having type SchemaEnumerationPresModel - ParameterId["SchemaEnumeration"] = "schemaEnumeration"; - // DPI_StandardConnectionEnumeration, having type StandardConnectionEnumerationPresModel - ParameterId["StandardConnectionEnumeration"] = "standardConnectionEnumeration"; - // DPI_StoredProcedureEnumeration, having type StoredProcedureEnumerationPresModel - ParameterId["StoredProcedureEnumeration"] = "storedProcedureEnumeration"; - // DPI_TableEnumeration, having type TableEnumerationPresModel - ParameterId["TableEnumeration"] = "tableEnumeration"; - // DPI_WarehouseEnumeration, having type WarehouseEnumerationPresModel - ParameterId["WarehouseEnumeration"] = "warehouseEnumeration"; - // DPI_SlowMetadataSchemaList, having type SlowMetadataSchemaListPresModel - ParameterId["SlowMetadataSchemaList"] = "slowMetadataSchemaList"; - // DPI_SlowMetadataTableList, having type SlowMetadataTableListPresModel - ParameterId["SlowMetadataTableList"] = "slowMetadataTableList"; - // DPI_CubeCatalog, having type CubeCatalogPresModel - ParameterId["CubeCatalog"] = "cubeCatalog"; - // DPI_CubeCatalogs, having type CubeCatalogPresModel[] - ParameterId["CubeCatalogs"] = "cubeCatalogs"; - // DPI_CubeCatalogEnumeration, having type CubeCatalogEnumerationPresModel - ParameterId["CubeCatalogEnumeration"] = "cubeCatalogEnumeration"; - // DPI_Cube, having type CubePresModel - ParameterId["Cube"] = "cube"; - // DPI_Cubes, having type CubePresModel[] - ParameterId["Cubes"] = "cubes"; - // DPI_CubeEnumeration, having type CubeEnumerationPresModel - ParameterId["CubeEnumeration"] = "cubeEnumeration"; - // DPI_GoogleAnalyticsBasicItem, having type GoogleAnalyticsBasicItemPresModel - ParameterId["GoogleAnalyticsBasicItem"] = "googleAnalyticsBasicItem"; - // DPI_GAMeasureSets, having type GoogleAnalyticsBasicItemPresModel[] - ParameterId["GAMeasureSets"] = "gaMeasureSets"; - // DPI_GoogleAnalyticsViews, having type GoogleAnalyticsBasicItemPresModel[] - ParameterId["GoogleAnalyticsViews"] = "googleAnalyticsViews"; - // DPI_GoogleAnalyticsProperties, having type GoogleAnalyticsBasicItemPresModel[] - ParameterId["GoogleAnalyticsProperties"] = "googleAnalyticsProperties"; - // DPI_GoogleBasicInfoItems, having type GoogleAnalyticsBasicItemPresModel[] - ParameterId["GoogleBasicInfoItems"] = "googleAnalyticsAccounts"; - // DPI_GoogleAnalyticsComplexItem, having type GoogleAnalyticsComplexItemPresModel - ParameterId["GoogleAnalyticsComplexItem"] = "googleAnalyticsComplexItem"; - // DPI_GoogleAnalyticsPossibleDimensions, having type GoogleAnalyticsComplexItemPresModel[] - ParameterId["GoogleAnalyticsPossibleDimensions"] = "googleAnalyticsPossibleDimensions"; - // DPI_GoogleAnalyticsPossibleMeasures, having type GoogleAnalyticsComplexItemPresModel[] - ParameterId["GoogleAnalyticsPossibleMeasures"] = "googleAnalyticsPossibleMeasures"; - // DPI_GoogleAnalyticsPossibleSegments, having type GoogleAnalyticsComplexItemPresModel[] - ParameterId["GoogleAnalyticsPossibleSegments"] = "googleAnalyticsPossibleSegments"; - // DPI_GoogleAnalyticsSelectedDimensions, having type GoogleAnalyticsComplexItemPresModel[] - ParameterId["GoogleAnalyticsSelectedDimensions"] = "googleAnalyticsSelectedDimensions"; - // DPI_GoogleAnalyticsSelectedMeasures, having type GoogleAnalyticsComplexItemPresModel[] - ParameterId["GoogleAnalyticsSelectedMeasures"] = "googleAnalyticsSelectedMeasures"; - // DPI_GoogleAnalyticsDateRangeOption, having type GoogleAnalyticsDateRangeOptionPresModel - ParameterId["GoogleAnalyticsDateRangeOption"] = "googleAnalyticsDateRangeOption"; - // DPI_GoogleAnalyticsDateRangeOptions, having type GoogleAnalyticsDateRangeOptionPresModel[] - ParameterId["GoogleAnalyticsDateRangeOptions"] = "googleAnalyticsDateRangeOptions"; - // DPI_GoogleAnalyticsEndDate, having type GoogleAnalyticsDatePresModel - ParameterId["GoogleAnalyticsEndDate"] = "googleAnalyticsEndDate"; - // DPI_GoogleAnalyticsStartDate, having type GoogleAnalyticsDatePresModel - ParameterId["GoogleAnalyticsStartDate"] = "googleAnalyticsStartDate"; - // DPI_GoogleAnalyticsDateRange, having type GoogleAnalyticsDateRangePresModel - ParameterId["GoogleAnalyticsDateRange"] = "googleAnalyticsDateRange"; - // DPI_GoogleAnalyticsQueryPartitioning, having type GoogleAnalyticsQueryPartitioningPresModel - ParameterId["GoogleAnalyticsQueryPartitioning"] = "googleAnalyticsQueryPartitioning"; - // DPI_GAConnectionDescription, having type GoogleAnalyticsConnectionDescriptionPresModel - ParameterId["GAConnectionDescription"] = "gaConnectionDescription"; - // DPI_GoogleSheetItem, having type GoogleSheetItemPresModel - ParameterId["GoogleSheetItem"] = "googleSheetItem"; - // DPI_GoogleSheetItems, having type GoogleSheetItemPresModel[] - ParameterId["GoogleSheetItems"] = "googleSheetItems"; - // DPI_GoogleSheetsListPresModel, having type GoogleSheetsListPresModel - ParameterId["GoogleSheetsListPresModel"] = "googleSheetsList"; - // DPI_GoogleSheetPanePresModel, having type GoogleSheetPanePresModel - ParameterId["GoogleSheetPanePresModel"] = "googleSheetPane"; - // DPI_TableauServerConnectionDescription, having type TableauServerConnectionDescriptionPresModel - ParameterId["TableauServerConnectionDescription"] = "tableauServerConnectionDescription"; - // DPI_InitialSQLPresModel, having type InitialSQLPresModel - ParameterId["InitialSQLPresModel"] = "initialSqlPresModel"; - // DPI_QueryBandingPresModel, having type QueryBandingPresModel - ParameterId["QueryBandingPresModel"] = "queryBandingPresModel"; - // DPI_SlowMetadata, having type SlowMetadataPresModel - ParameterId["SlowMetadata"] = "slowMetadata"; - // DPI_SlowMetadataSchemaSearchPresModel, having type SlowMetadataSearchPresModel - ParameterId["SlowMetadataSchemaSearchPresModel"] = "slowMetadataSchemaSearch"; - // DPI_SlowMetadataTableSearchPresModel, having type SlowMetadataSearchPresModel - ParameterId["SlowMetadataTableSearchPresModel"] = "slowMetadataTableSearch"; - // DPI_TableauServerProjectsPresModel, having type TableauServerProjectsPresModel - ParameterId["TableauServerProjectsPresModel"] = "tableauServerProjectsPresmodel"; - // DPI_TableauServerDataSourcePresModel, having type TableauServerDataSourcePresModel - ParameterId["TableauServerDataSourcePresModel"] = "tableauServerDataSourcePresmodel"; - // DPI_TableauServerDataSourcePresModels, having type TableauServerDataSourcePresModel[] - ParameterId["TableauServerDataSourcePresModels"] = "tableauServerDataSourcePresmodels"; - // DPI_TableauServerDataSourcesPresModel, having type TableauServerDataSourcesPresModel - ParameterId["TableauServerDataSourcesPresModel"] = "tableauServerDataSourcesPresmodel"; - // DPI_TableauServerDataPresModel, having type TableauServerDataPresModel - ParameterId["TableauServerDataPresModel"] = "tableauServerDataPresmodel"; - // DPI_StoredProcedureParameterPresModel, having type StoredProcedureParameterPresModel - ParameterId["StoredProcedureParameterPresModel"] = "storedProcedureParameter"; - // DPI_StoredProcedureParametersPresModel, having type StoredProcedureParameterPresModel[] - ParameterId["StoredProcedureParametersPresModel"] = "storedProcedureParameters"; - // DPI_CustomSQLInfo, having type CustomSQLInfoPresModel - ParameterId["CustomSQLInfo"] = "customSqlInfo"; - // DPI_ConnectionTableInfo, having type ConnectionTableInfoPresModel - ParameterId["ConnectionTableInfo"] = "connectionTableInfo"; - // DPI_TableInfos, having type ConnectionTableInfoPresModel[] - ParameterId["TableInfos"] = "tableInfos"; - // DPI_ConnectionDescription, having type ConnectionDescriptionPresModel - ParameterId["ConnectionDescription"] = "connectionDescription"; - // DPI_DataSourceParserValidationMode, having type DataSourceParserValidationMode - ParameterId["DataSourceParserValidationMode"] = "dataSourceParserValidationMode"; - // DPI_OAuthCredentialTypeInfo, having type OAuthCredentialTypeInfoPresModel - ParameterId["OAuthCredentialTypeInfo"] = "oauthCredentialTypeInfo"; - // DPI_OAuthCredentialTypeInfos, having type OAuthCredentialTypeInfoPresModel[] - ParameterId["OAuthCredentialTypeInfos"] = "oauthCredentialTypeInfos"; - // DPI_OAuthSettings, having type OAuthSettingsPresModel - ParameterId["OAuthSettings"] = "oauthSettings"; - // DPI_CredentialTypePropertiesFlag, having type CredentialTypePropertiesFlag - ParameterId["CredentialTypePropertiesFlag"] = "credentialTypePropertiesFlag"; - // DPI_CredentialTypePropertiesFlags, having type CredentialTypePropertiesFlag[] - ParameterId["CredentialTypePropertiesFlags"] = "credentialTypePropertiesFlags"; - // DPI_ConnectionTypeEnum, having type ConnectionTypeEnum - ParameterId["ConnectionTypeEnum"] = "connectionTypeEnum"; - // DPI_ConnectorType, having type ConnectorType - ParameterId["ConnectorType"] = "connectorType"; - // DPI_PdfPagePicker, having type PdfPagePickerPresModel - ParameterId["PdfPagePicker"] = "pdfPagePicker"; - // DPI_ActivateNew, having type bool - ParameterId["ActivateNew"] = "activateNew"; - // DPI_AddActions, having type bool - ParameterId["AddActions"] = "addActions"; - // DPI_AddAsFloating, having type bool - ParameterId["AddAsFloating"] = "addAsFloating"; - // DPI_AddColorDictionary, having type bool - ParameterId["AddColorDictionary"] = "addColorDictionary"; - // DPI_AddDroplines, having type bool - ParameterId["AddDroplines"] = "addDroplines"; - // DPI_AddHeaders, having type bool - ParameterId["AddHeaders"] = "addHeaders"; - // DPI_AddHighlighting, having type bool - ParameterId["AddHighlighting"] = "addHighlighting"; - // DPI_AddImageDictionary, having type bool - ParameterId["AddImageDictionary"] = "addImageDictionary"; - // DPI_AddMarkLabels, having type bool - ParameterId["AddMarkLabels"] = "addMarkLabels"; - // DPI_AddPages, having type bool - ParameterId["AddPages"] = "addPages"; - // DPI_AddSelection, having type bool - ParameterId["AddSelection"] = "addSelection"; - // DPI_AddToFolder, having type bool - ParameterId["AddToFolder"] = "addToFolder"; - // DPI_AddVizData, having type bool - ParameterId["AddVizData"] = "addVizData"; - // DPI_AlertConditionMet, having type bool - ParameterId["AlertConditionMet"] = "alertConditionMet"; - // DPI_AllFields, having type bool - ParameterId["AllFields"] = "allFields"; - // DPI_AllOnEmpty, having type bool - ParameterId["AllOnEmpty"] = "allOnEmpty"; - // DPI_AllPages, having type bool - ParameterId["AllPages"] = "includeAllPages"; - // DPI_AllowPreviewSizeChange, having type bool - ParameterId["AllowPreviewSizeChange"] = "allowPreviewSizeChange"; - // DPI_AllSelectedIsEffectivelyRangeTypeAll, having type bool - ParameterId["AllSelectedIsEffectivelyRangeTypeAll"] = "allSelectedIsEffectivelyRangeTypeAll"; - // DPI_AllStoryPoints, having type bool - ParameterId["AllStoryPoints"] = "allStorypoints"; - // DPI_AllowAllRange, having type bool - ParameterId["AllowAllRange"] = "allowAllRange"; - // DPI_AllowCreatingNewParameters, having type bool - ParameterId["AllowCreatingNewParameters"] = "allowCreatingNewParameters"; - // DPI_AllowDuplicateFieldDropOnFilterShelf, having type bool - ParameterId["AllowDuplicateFieldDropOnFilterShelf"] = "allowDuplicateFieldDropOnFilterShelf"; - // DPI_AllowFilterPreset, having type bool - ParameterId["AllowFilterPreset"] = "allowFilterPreset"; - // DPI_AllowHoverActions, having type bool - ParameterId["AllowHoverActions"] = "allowHoverActions"; - // DPI_AllowHyphenation, having type bool - ParameterId["AllowHyphenation"] = "allowHyphenation"; - // DPI_AllowJoinOnCalc, having type bool - ParameterId["AllowJoinOnCalc"] = "allowJoinOnCalc"; - // DPI_AllowManualRange, having type bool - ParameterId["AllowManualRange"] = "allowManualRange"; - // DPI_AllowMapping, having type bool - ParameterId["AllowMapping"] = "allowMapping"; - // DPI_AllowMultiSelect, having type bool - ParameterId["AllowMultiSelect"] = "allowMultiSelect"; - // DPI_AllowNull, having type bool - ParameterId["AllowNull"] = "allowNull"; - // DPI_AllowPanZoom, having type bool - ParameterId["AllowPanZoom"] = "allowPanZoom"; - // DPI_AllowPatternBased, having type bool - ParameterId["AllowPatternBased"] = "allowPatternBasedUnion"; - // DPI_AllowPromptText, having type bool - ParameterId["AllowPromptText"] = "allowPromptText"; - // DPI_AllowSaveDataSource, having type bool - ParameterId["AllowSaveDataSource"] = "allowSaveDataSource"; - // DPI_AllowWholeDate, having type bool - ParameterId["AllowWholeDate"] = "allowWholeDate"; - // DPI_AllowWork, having type bool - ParameterId["AllowWork"] = "allowWork"; - // DPI_AllowWrap, having type bool - ParameterId["AllowWrap"] = "allowWrap"; - // DPI_AppIs32Bit, having type bool - ParameterId["AppIs32Bit"] = "appIs32Bit"; - // DPI_AppIs64Bit, having type bool - ParameterId["AppIs64Bit"] = "appIs64Bit"; - // DPI_AppIsBeta, having type bool - ParameterId["AppIsBeta"] = "appIsBeta"; - // DPI_AppIsOEM, having type bool - ParameterId["AppIsOEM"] = "appIsOem"; - // DPI_AppendTde, having type bool - ParameterId["AppendTde"] = "appendTde"; - // DPI_ApplyColors, having type bool - ParameterId["ApplyColors"] = "applyColors"; - // DPI_ApplyNewSelection, having type bool - ParameterId["ApplyNewSelection"] = "applyNewSelection"; - // DPI_AreConfidenceBandsValid, having type bool - ParameterId["AreConfidenceBandsValid"] = "areConfidenceBandsValid"; - // DPI_AreDataSourceFiltersVisible, having type bool - ParameterId["AreDataSourceFiltersVisible"] = "areDataSourceFiltersVisible"; - // DPI_AreExtractFiltersEnabled, having type bool - ParameterId["AreExtractFiltersEnabled"] = "areExtractFiltersEnabled"; - // DPI_AreTotalsUsed, having type bool - ParameterId["AreTotalsUsed"] = "areTotalsUsed"; - // DPI_AtTheLevelFieldIsInvalid, having type bool - ParameterId["AtTheLevelFieldIsInvalid"] = "atTheLevelFieldIsInvalid"; - // DPI_AutoURL, having type bool - ParameterId["AutoURL"] = "autoUrl"; - // DPI_AutoUpdate, having type bool - ParameterId["AutoUpdate"] = "autoUpdate"; - // DPI_BackingSheetIsDashboard, having type bool - ParameterId["BackingSheetIsDashboard"] = "isBackingSheetDashboard"; - // DPI_BeginDataSourcePresModelUpdate, having type bool - ParameterId["BeginDataSourcePresModelUpdate"] = "beginDataSourcePresModelUpdate"; - // DPI_AggregateDrillUp, having type bool - ParameterId["AggregateDrillUp"] = "boolAggregateDrillUp"; - // DPI_BoxplotMarkExclusion, having type bool - ParameterId["BoxplotMarkExclusion"] = "boxplotMarkExclusion"; - // DPI_BreakPageOnPane, having type bool - ParameterId["BreakPageOnPane"] = "breakPageOnPane"; - // DPI_BrushLegends, having type bool - ParameterId["BrushLegends"] = "brushLegends"; - // DPI_CachePresModels, having type bool - ParameterId["CachePresModels"] = "cachePresModels"; - // DPI_CanAddConnections, having type bool - ParameterId["CanAddConnections"] = "canAddConnections"; - // DPI_SortPillCanBeDragged, having type bool - ParameterId["SortPillCanBeDragged"] = "sortPillCanBeDragged"; - // DPI_CanAddTable, having type bool - ParameterId["CanAddTable"] = "canAddTable"; - // DPI_CanAnalyzeData, having type bool - ParameterId["CanAnalyzeData"] = "canAnalyzeData"; - // DPI_CanChangeDataType, having type bool - ParameterId["CanChangeDataType"] = "canChangeDataType"; - // DPI_CanChangeSemanticRole, having type bool - ParameterId["CanChangeSemanticRole"] = "canChangeSemanticRole"; - // DPI_CanDerive, having type bool - ParameterId["CanDerive"] = "canDerive"; - // DPI_CanDrop, having type bool - ParameterId["CanDrop"] = "canDrop"; - // DPI_CanEdit, having type bool - ParameterId["CanEdit"] = "canEdit"; - // DPI_CanEditLegendColor, having type bool - ParameterId["CanEditLegendColor"] = "canEditLegendColor"; - // DPI_CanEnableFilterStateButton, having type bool - ParameterId["CanEnableFilterStateButton"] = "canEnableFilterStateButton"; - // DPI_CanFloat, having type bool - ParameterId["CanFloat"] = "canFloat"; - // DPI_CanHaveTitle, having type bool - ParameterId["CanHaveTitle"] = "canHaveTitle"; - // DPI_CanIgnoreUpdate, having type bool - ParameterId["CanIgnoreUpdate"] = "canIgnoreUpdate"; - // DPI_CanNavigateBack, having type bool - ParameterId["CanNavigateBack"] = "canNavigateBack"; - // DPI_CanNavigateForward, having type bool - ParameterId["CanNavigateForward"] = "canNavigateForward"; - // DPI_CanScrollX, having type bool - ParameterId["CanScrollX"] = "canScrollX"; - // DPI_CanScrollY, having type bool - ParameterId["CanScrollY"] = "canScrollY"; - // DPI_CanSetDomain, having type bool - ParameterId["CanSetDomain"] = "canSetDomain"; - // DPI_CanSetMapUnit, having type bool - ParameterId["CanSetMapUnit"] = "canSetMapUnit"; - // DPI_CanShowApplyButton, having type bool - ParameterId["CanShowApplyButton"] = "canShowApplyButton"; - // DPI_CanShowFilterStateButton, having type bool - ParameterId["CanShowFilterStateButton"] = "canShowFilterStateButton"; - // DPI_CanShowMoreFewerButton, having type bool - ParameterId["CanShowMoreFewerButton"] = "canShowMoreFewerButton"; - // DPI_CanShowSyncClientOptions, having type bool - ParameterId["CanShowSyncClientOptions"] = "canShowSyncClientOptions"; - // DPI_CanSort, having type bool - ParameterId["CanSort"] = "canSort"; - // DPI_CanSortOrdinally, having type bool - ParameterId["CanSortOrdinally"] = "canSortOrdinal"; - // DPI_CanToggleAutomaticDrill, having type bool - ParameterId["CanToggleAutomaticDrill"] = "canToggleAutomaticDrill"; - // DPI_CanToggleGeographicSearch, having type bool - ParameterId["CanToggleGeographicSearch"] = "canToggleGeographicSearch"; - // DPI_CanToggleMapScale, having type bool - ParameterId["CanToggleMapScale"] = "canToggleMapScale"; - // DPI_CanUseFullColorRange, having type bool - ParameterId["CanUseFullColorRange"] = "canUseFullColorRange"; - // DPI_CenterHorizontally, having type bool - ParameterId["CenterHorizontally"] = "centerHorizontally"; - // DPI_CenterVertically, having type bool - ParameterId["CenterVertically"] = "centerVertically"; - // DPI_ChangeAllFields, having type bool - ParameterId["ChangeAllFields"] = "changeAllFields"; - // DPI_Changed, having type bool - ParameterId["Changed"] = "changed"; - // DPI_ClearBrushing, having type bool - ParameterId["ClearBrushing"] = "clearBrushing"; - // DPI_ClearSort, having type bool - ParameterId["ClearSort"] = "clearSort"; - // DPI_ClearView, having type bool - ParameterId["ClearView"] = "clearView"; - // DPI_Collapsed, having type bool - ParameterId["Collapsed"] = "collapsed"; - // DPI_ConsolidateInCommit, having type bool - ParameterId["ConsolidateInCommit"] = "consolidateInCommit"; - // DPI_ClusterEnableScaledCheckbox, having type bool - ParameterId["ClusterEnableScaledCheckbox"] = "clusterEnableScaledCheckbox"; - // DPI_CommitPillFinished, having type bool - ParameterId["CommitPillFinished"] = "commitPillFinished"; - // DPI_CompressArrays, having type bool - ParameterId["CompressArrays"] = "compressArrays"; - // DPI_ComputeCompoundedRate, having type bool - ParameterId["ComputeCompoundedRate"] = "computeCompoundedRate"; - // DPI_ConfidenceIntervalAllowed, having type bool - ParameterId["ConfidenceIntervalAllowed"] = "confidenceIntervalAllowed"; - // DPI_ConfigIsDesktopStandard, having type bool - ParameterId["ConfigIsDesktopStandard"] = "configIsDesktopStandard"; - // DPI_ConfigIsInteractor, having type bool - ParameterId["ConfigIsInteractor"] = "configIsInteractor"; - // DPI_ConfigIsPublic, having type bool - ParameterId["ConfigIsPublic"] = "configIsPublic"; - // DPI_ConfigIsReader, having type bool - ParameterId["ConfigIsReader"] = "configIsReader"; - // DPI_ContainsQuant, having type bool - ParameterId["ContainsQuant"] = "containsQuant"; - // DPI_ContainsValidDatasources, having type bool - ParameterId["ContainsValidDatasources"] = "containsValidDatasources"; - // DPI_ControllerMissing, having type bool - ParameterId["ControllerMissing"] = "controllerMissing"; - // DPI_CreateExtractForPublish, having type bool - ParameterId["CreateExtractForPublish"] = "createExtractForPublish"; - // DPI_CrossTab, having type bool - ParameterId["CrossTab"] = "crossTab"; - // DPI_CullLabels, having type bool - ParameterId["CullLabels"] = "cullLabels"; - // DPI_CurrentCustViewIdFlag, having type bool - ParameterId["CurrentCustViewIdFlag"] = "isCurrentCustViewIdValid"; - // DPI_DashboardEnableSnap, having type bool - ParameterId["DashboardEnableSnap"] = "dashboardEnableSnap"; - // DPI_DashboardShowGrid, having type bool - ParameterId["DashboardShowGrid"] = "dashboardShowGrid"; - // DPI_DataGridSortOrder, having type bool - ParameterId["DataGridSortOrder"] = "datagridSortOrder"; - // DPI_DeleteExtract, having type bool - ParameterId["DeleteExtract"] = "deleteExtract"; - // DPI_DeleteOnlySpecifiedSelection, having type bool - ParameterId["DeleteOnlySpecifiedSelection"] = "deleteOnlySpecifiedSelection"; - // DPI_DeleteOrphans, having type bool - ParameterId["DeleteOrphans"] = "deleteOrphans"; - // DPI_DisabledDataConnectionClassNames, having type bool - ParameterId["DisabledDataConnectionClassNames"] = "disabledDataConnectionClassNames"; - // DPI_DisablePresModelHandler, having type bool - ParameterId["DisablePresModelHandler"] = "disablePresModelHandler"; - // DPI_DisplayDate, having type bool - ParameterId["DisplayDate"] = "displayDate"; - // DPI_DisplayTime, having type bool - ParameterId["DisplayTime"] = "displayTime"; - // DPI_DoDropUIAction, having type bool - ParameterId["DoDropUIAction"] = "doDropUiAction"; - // DPI_DoMerge, having type bool - ParameterId["DoMerge"] = "doMerge"; - // DPI_DoPreDropUIAction, having type bool - ParameterId["DoPreDropUIAction"] = "doPreDropUiAction"; - // DPI_DoQuery, having type bool - ParameterId["DoQuery"] = "doQuery"; - // DPI_DragHorz, having type bool - ParameterId["DragHorz"] = "dragHorz"; - // DPI_DrillDown, having type bool - ParameterId["DrillDown"] = "drillDown"; - // DPI_DropToXAxis, having type bool - ParameterId["DropToXAxis"] = "dropToXAxis"; - // DPI_DropToYAxis, having type bool - ParameterId["DropToYAxis"] = "dropToYAxis"; - // DPI_DropUnnamedFields, having type bool - ParameterId["DropUnnamedFields"] = "dropUnnamedFields"; - // DPI_EditExisting, having type bool - ParameterId["EditExisting"] = "editExisting"; - // DPI_EditingConnection, having type bool - ParameterId["EditingConnection"] = "editingConnection"; - // DPI_EmbedCredentials, having type bool - ParameterId["EmbedCredentials"] = "embedCredentials"; - // DPI_EmbedOAuthCredential, having type bool - ParameterId["EmbedOAuthCredential"] = "embedOauthCredentials"; - // DPI_EmptyHighlightFogAll, having type bool - ParameterId["EmptyHighlightFogAll"] = "emptyHighlightFogAll"; - // DPI_EnableAlphabeticSort, having type bool - ParameterId["EnableAlphabeticSort"] = "enableAlphabeticSort"; - // DPI_EnableAutomaticDrill, having type bool - ParameterId["EnableAutomaticDrill"] = "enableAutomaticDrill"; - // DPI_EnableConfidenceBands, having type bool - ParameterId["EnableConfidenceBands"] = "enableConfidenceBands"; - // DPI_EnableDataOrderSort, having type bool - ParameterId["EnableDataOrderSort"] = "enableDataOrderSort"; - // DPI_EnableFieldSort, having type bool - ParameterId["EnableFieldSort"] = "enableFieldSort"; - // DPI_EnableInstantAnalytics, having type bool - ParameterId["EnableInstantAnalytics"] = "enableInstantAnalytics"; - // DPI_EnableLines, having type bool - ParameterId["EnableLines"] = "enableLines"; - // DPI_EnableManualSort, having type bool - ParameterId["EnableManualSort"] = "enableManualSort"; - // DPI_EnableMarks, having type bool - ParameterId["EnableMarks"] = "enableMarks"; - // DPI_EnableMultipleSelection, having type bool - ParameterId["EnableMultipleSelection"] = "enableMultipleSelection"; - // DPI_EnablePrefetching, having type bool - ParameterId["EnablePrefetching"] = "enablePrefetching"; - // DPI_EnableTableCalcDensification, having type bool - ParameterId["EnableTableCalcDensification"] = "enableTableCalcDensification"; - // DPI_EndDataSourcePresModelUpdate, having type bool - ParameterId["EndDataSourcePresModelUpdate"] = "endDataSourcePresModelUpdate"; - // DPI_EstimateNulls, having type bool - ParameterId["EstimateNulls"] = "estimateNulls"; - // DPI_Exclude, having type bool - ParameterId["Exclude"] = "exclude"; - // DPI_ExcludeColor, having type bool - ParameterId["ExcludeColor"] = "excludeColor"; - // DPI_ExcludeCubeDenorm, having type bool - ParameterId["ExcludeCubeDenorm"] = "excludeCubeDenorm"; - // DPI_ExcludeInterceptEnabled, having type bool - ParameterId["ExcludeInterceptEnabled"] = "excludeInterceptEnabled"; - // DPI_ExcludeLocalFunctions, having type bool - ParameterId["ExcludeLocalFunctions"] = "excludeLocalFunctions"; - // DPI_ExportDashboardImageFromSheet, having type bool - ParameterId["ExportDashboardImageFromSheet"] = "exportImageSheetAsDashboard"; - // DPI_ExtSvcConfigIsAuthEnabled, having type bool - ParameterId["ExtSvcConfigIsAuthEnabled"] = "extSvcConfigIsAuthEnabled"; - // DPI_ExtractFullRefresh, having type bool - ParameterId["ExtractFullRefresh"] = "extractFullRefresh"; - // DPI_ExtractNeedsRefresh, having type bool - ParameterId["ExtractNeedsRefresh"] = "extractNeedsRefresh"; - // DPI_ExtractPending, having type bool - ParameterId["ExtractPending"] = "extractPending"; - // DPI_ExtractSelected, having type bool - ParameterId["ExtractSelected"] = "extractSelected"; - // DPI_FederatableOnly, having type bool - ParameterId["FederatableOnly"] = "federatableOnly"; - // DPI_FieldSortOrder, having type bool - ParameterId["FieldSortOrder"] = "fieldSortOrder"; - // DPI_FieldSupportsContains, having type bool - ParameterId["FieldSupportsContains"] = "fieldSupportsContains"; - // DPI_FieldSupportsEndsWith, having type bool - ParameterId["FieldSupportsEndsWith"] = "fieldSupportsEndsWith"; - // DPI_FieldSupportsStartsWith, having type bool - ParameterId["FieldSupportsStartsWith"] = "fieldSupportsStartsWith"; - // DPI_FillAbove, having type bool - ParameterId["FillAbove"] = "fillAbove"; - // DPI_FillBelow, having type bool - ParameterId["FillBelow"] = "fillBelow"; - // DPI_FillWithZeroes, having type bool - ParameterId["FillWithZeroes"] = "fillZeroes"; - // DPI_FilterIsNamed, having type bool - ParameterId["FilterIsNamed"] = "filterIsNamed"; - // DPI_Focus, having type bool - ParameterId["Focus"] = "focus"; - // DPI_ForInternalUse, having type bool - ParameterId["ForInternalUse"] = "internalUse"; - // DPI_ForceBrowserRendering, having type bool - ParameterId["ForceBrowserRendering"] = "forceBrowserRendering"; - // DPI_ForceCache, having type bool - ParameterId["ForceCache"] = "forceCache"; - // DPI_ForceColorFromApp, having type bool - ParameterId["ForceColorFromApp"] = "forceColorFromApp"; - // DPI_ForceConnectionAttempt, having type bool - ParameterId["ForceConnectionAttempt"] = "forceConnectionAttempt"; - // DPI_ForceConsolidateInCommit, having type bool - ParameterId["ForceConsolidateInCommit"] = "forceConsolidateInCommit"; - // DPI_ForceExtractRefresh, having type bool - ParameterId["ForceExtractRefresh"] = "extractForceRefresh"; - // DPI_ForceInterceptZero, having type bool - ParameterId["ForceInterceptZero"] = "forceInterceptZero"; - // DPI_ForceOldConnectExperience, having type bool - ParameterId["ForceOldConnectExperience"] = "forceOldConnectExperience"; - // DPI_ForceToggleHighlightStateOn, having type bool - ParameterId["ForceToggleHighlightStateOn"] = "forceHighlightOn"; - // DPI_ForceWholeDate, having type bool - ParameterId["ForceWholeDate"] = "forceWholeDate"; - // DPI_ForecastSelected, having type bool - ParameterId["ForecastSelected"] = "forecastSelected"; - // DPI_ForecastUseAutoAgg, having type bool - ParameterId["ForecastUseAutoAgg"] = "forecastUseAutoSummarize"; - // DPI_ForJoin, having type bool - ParameterId["ForJoin"] = "forJoin"; - // DPI_FormatDataValueLocally, having type bool - ParameterId["FormatDataValueLocally"] = "formatDataValueLocally"; - // DPI_FormatIfColumn, having type bool - ParameterId["FormatIfColumn"] = "formatIfColumn"; - // DPI_FormatIfParameter, having type bool - ParameterId["FormatIfParameter"] = "formatIfParameter"; - // DPI_GeographicSearchIsDataLoaded, having type bool - ParameterId["GeographicSearchIsDataLoaded"] = "geographicSearchDataLoaded"; - // DPI_GeographicSearchLoadDataAsync, having type bool - ParameterId["GeographicSearchLoadDataAsync"] = "geographicSearchLoadDataAsync"; - // DPI_GroupByAll, having type bool - ParameterId["GroupByAll"] = "groupByAll"; - // DPI_HasAlias, having type bool - ParameterId["HasAlias"] = "hasAlias"; - // DPI_HasAllMember, having type bool - ParameterId["HasAllMember"] = "hasAllMember"; - // DPI_HasApply, having type bool - ParameterId["HasApply"] = "hasApply"; - // DPI_HasBackgroundImage, having type bool - ParameterId["HasBackgroundImage"] = "hasBackgroundImage"; - // DPI_HasBeenDismissed, having type bool - ParameterId["HasBeenDismissed"] = "hasBeenDismissed"; - // DPI_HasCaption, having type bool - ParameterId["HasCaption"] = "hasCaption"; - // DPI_HasCondition, having type bool - ParameterId["HasCondition"] = "hasCondition"; - // DPI_HasConnectPermissions, having type bool - ParameterId["HasConnectPermissions"] = "hasConnectPermissions"; - // DPI_HasDashboard, having type bool - ParameterId["HasDashboard"] = "hasDashboard"; - // DPI_HasDownloadPermissions, having type bool - ParameterId["HasDownloadPermissions"] = "hasDownloadPermissions"; - // DPI_HasDrill, having type bool - ParameterId["HasDrill"] = "hasDrill"; - // DPI_HasExclude, having type bool - ParameterId["HasExclude"] = "hasExclude"; - // DPI_HasFill, having type bool - ParameterId["HasFill"] = "hasFill"; - // DPI_HasLabels, having type bool - ParameterId["HasLabels"] = "hasLabels"; - // DPI_HasLimit, having type bool - ParameterId["HasLimit"] = "hasLimit"; - // DPI_HasLine, having type bool - ParameterId["HasLine"] = "hasLine"; - // DPI_HasModifiedAxes, having type bool - ParameterId["HasModifiedAxes"] = "hasModifiedAxes"; - // DPI_HasNonRootCalculations, having type bool - ParameterId["HasNonRootCalculations"] = "hasNonRootCalculations"; - // DPI_HasPattern, having type bool - ParameterId["HasPattern"] = "hasPattern"; - // DPI_HasPublishGuidanceResults, having type bool - ParameterId["HasPublishGuidanceResults"] = "hasPublishGuidanceResults"; - // DPI_HasSelection, having type bool - ParameterId["HasSelection"] = "hasSelection"; - // DPI_HasServerCredentials, having type bool - ParameterId["HasServerCredentials"] = "hasServerCredentials"; - // DPI_HasSpace, having type bool - ParameterId["HasSpace"] = "hasSpace"; - // DPI_HasStoredProcedure, having type bool - ParameterId["HasStoredProcedure"] = "hasStoredProcedure"; - // DPI_HasStringCalculatedMeasures, having type bool - ParameterId["HasStringCalculatedMeasures"] = "hasStringCalculatedMeasures"; - // DPI_HasTableCalcData, having type bool - ParameterId["HasTableCalcData"] = "hasTableCalcData"; - // DPI_HasTitle, having type bool - ParameterId["HasTitle"] = "hasTitle"; - // DPI_HasUsableSchema, having type bool - ParameterId["HasUsableSchema"] = "hasUsableSchema"; - // DPI_HasUserSpecificContent, having type bool - ParameterId["HasUserSpecificContent"] = "hasUserSpecificContent"; - // DPI_HasUnjoinedTable, having type bool - ParameterId["HasUnjoinedTable"] = "hasUnjoinedTable"; - // DPI_HasVarArgs, having type bool - ParameterId["HasVarArgs"] = "hasVarArgs"; - // DPI_HasVisitedWDCPage, having type bool - ParameterId["HasVisitedWDCPage"] = "hasVisitedWdcPage"; - // DPI_IgnoreAliases, having type bool - ParameterId["IgnoreAliases"] = "ignoreAliases"; - // DPI_IgnoreDomain, having type bool - ParameterId["IgnoreDomain"] = "ignoreDomain"; - // DPI_IgnoreSelection, having type bool - ParameterId["IgnoreSelection"] = "ignoreSelection"; - // DPI_IncludeAllColumns, having type bool - ParameterId["IncludeAllColumns"] = "includeAllColumns"; - // DPI_IncludeContext, having type bool - ParameterId["IncludeContext"] = "includeContext"; - // DPI_IncludeDashboardPresModels, having type bool - ParameterId["IncludeDashboardPresModels"] = "includeDashboardPresModels"; - // DPI_IncludeItemSet, having type bool - ParameterId["IncludeItemSet"] = "includeItemSet"; - // DPI_IncludeLocalFiles, having type bool - ParameterId["IncludeLocalFiles"] = "includeLocalFiles"; - // DPI_IncludeOtherSelected, having type bool - ParameterId["IncludeOtherSelected"] = "includeOtherSelected"; - // DPI_IncludeNulls, having type bool - ParameterId["IncludeNulls"] = "includeNulls"; - // DPI_IncludeParent, having type bool - ParameterId["IncludeParent"] = "includeParent"; - // DPI_IncludeSelections, having type bool - ParameterId["IncludeSelections"] = "includeSelections"; - // DPI_IncludeSiblings, having type bool - ParameterId["IncludeSiblings"] = "includeSiblings"; - // DPI_IncludeStories, having type bool - ParameterId["IncludeStories"] = "includeStories"; - // DPI_IncludeSubfolders, having type bool - ParameterId["IncludeSubfolders"] = "includeSubfolders"; - // DPI_IncludeVolatileProps, having type bool - ParameterId["IncludeVolatileProps"] = "includeVolatileProps"; - // DPI_IncludesTag, having type bool - ParameterId["IncludesTag"] = "includesTag"; - // DPI_InsertAfter, having type bool - ParameterId["InsertAfter"] = "insertAfter"; - // DPI_InsertAtEnd, having type bool - ParameterId["InsertAtEnd"] = "insertAtEnd"; - // DPI_InstantAnalyticsAllowed, having type bool - ParameterId["InstantAnalyticsAllowed"] = "instantAnalyticsAllowed"; - // DPI_IntegerCoordinates, having type bool - ParameterId["IntegerCoordinates"] = "intCoords"; - // DPI_InvalidatedLayout, having type bool - ParameterId["InvalidatedLayout"] = "invalidatedLayout"; - // DPI_IsActive, having type bool - ParameterId["IsActive"] = "isActive"; - // DPI_IsAddToFilter, having type bool - ParameterId["IsAddToFilter"] = "isAddToFilterButtonChecked"; - // DPI_IsAllButtonVisible, having type bool - ParameterId["IsAllButtonVisible"] = "isAllButtonVisible"; - // DPI_IsAllowedInCalcs, having type bool - ParameterId["IsAllowedInCalcs"] = "isAllowedInCalcs"; - // DPI_IsAppMapSource, having type bool - ParameterId["IsAppMapSource"] = "isAppMapSource"; - // DPI_IsArchive, having type bool - ParameterId["IsArchive"] = "isArchive"; - // DPI_IsAuthoringMode, having type bool - ParameterId["IsAuthoringMode"] = "isAuthoringMode"; - // DPI_IsAuto, having type bool - ParameterId["IsAuto"] = "isAuto"; - // DPI_IsAutoClear, having type bool - ParameterId["IsAutoClear"] = "isAutoClear"; - // DPI_IsAutoColumn, having type bool - ParameterId["IsAutoColumn"] = "isAutoColumn"; - // DPI_IsAutoHidden, having type bool - ParameterId["IsAutoHidden"] = "isAutoHidden"; - // DPI_IsAutoSelect, having type bool - ParameterId["IsAutoSelect"] = "isAutoSelect"; - // DPI_IsBold, having type bool - ParameterId["IsBold"] = "isBold"; - // DPI_IsBorderVisible, having type bool - ParameterId["IsBorderVisible"] = "isBorderVisible"; - // DPI_IsBoxplot, having type bool - ParameterId["IsBoxplot"] = "isBoxplot"; - // DPI_IsCapable, having type bool - ParameterId["IsCapable"] = "isCapable"; - // DPI_IsCaptured, having type bool - ParameterId["IsCaptured"] = "isCaptured"; - // DPI_IsCentered, having type bool - ParameterId["IsCentered"] = "isCentered"; - // DPI_IsChecked, having type bool - ParameterId["IsChecked"] = "isChecked"; - // DPI_IsColorDiverging, having type bool - ParameterId["IsColorDiverging"] = "isColorDiverging"; - // DPI_IsColorStepped, having type bool - ParameterId["IsColorStepped"] = "isColorStepped"; - // DPI_IsCombinedField, having type bool - ParameterId["IsCombinedField"] = "isCombinedField"; - // DPI_IsConnected, having type bool - ParameterId["IsConnected"] = "isConnected"; - // DPI_IsContextMenuAllowed, having type bool - ParameterId["IsContextMenuAllowed"] = "isContextMenuAllowed"; - // DPI_IsContinuous, having type bool - ParameterId["IsContinuous"] = "isContinuous"; - // DPI_IsCopy, having type bool - ParameterId["IsCopy"] = "isCopy"; - // DPI_IsCustomPalette, having type bool - ParameterId["IsCustomPalette"] = "isCustomPalette"; - // DPI_IsCustomSQL, having type bool - ParameterId["IsCustomSQL"] = "isCustomSql"; - // DPI_IsCustomValueEnabled, having type bool - ParameterId["IsCustomValueEnabled"] = "isCustomValueEnabled"; - // DPI_IsDataAlertConditionMet, having type bool - ParameterId["IsDataAlertConditionMet"] = "isDataAlertConditionMet"; - // DPI_IsDataAlertDialogVisible, having type bool - ParameterId["IsDataAlertDialogVisible"] = "isDataAlertDialogVisible"; - // DPI_IsDataBin, having type bool - ParameterId["IsDataBin"] = "isDataBin"; - // DPI_IsDataGridVisible, having type bool - ParameterId["IsDataGridVisible"] = "isDataGridVisible"; - // DPI_IsDatabase, having type bool - ParameterId["IsDatabase"] = "isDatabase"; - // DPI_IsDatabaseFilterInclusive, having type bool - ParameterId["IsDatabaseFilterInclusive"] = "isDbFilterInclusive"; - // DPI_IsWebDataTabViewSupported, having type bool - ParameterId["IsWebDataTabViewSupported"] = "isWebDataTabViewSupported"; - // DPI_IsPublishedDatasourceReplacement, having type bool - ParameterId["IsPublishedDatasourceReplacement"] = "isPublishedDatasourceReplacement"; - // DPI_IsDeadDrop, having type bool - ParameterId["IsDeadDrop"] = "isDeadDrop"; - // DPI_IsDefault, having type bool - ParameterId["IsDefault"] = "isDefault"; - // DPI_IsDeleteCalcConfirm, having type bool - ParameterId["IsDeleteCalcConfirm"] = "isDeleteCalcConfirmed"; - // DPI_IsDimension, having type bool - ParameterId["IsDimension"] = "isDimension"; - // DPI_IsDropdownEnabled, having type bool - ParameterId["IsDropdownEnabled"] = "isDropdownEnabled"; - // DPI_IsEditing, having type bool - ParameterId["IsEditing"] = "isEditing"; - // DPI_IsEmbedded, having type bool - ParameterId["IsEmbedded"] = "isEmbedded"; - // DPI_IsEmpty, having type bool - ParameterId["IsEmpty"] = "isEmpty"; - // DPI_IsAddInEnabled, having type bool - ParameterId["IsAddInEnabled"] = "isAddInEnabled"; - // DPI_AddInJSDebuggingEnabled, having type bool - ParameterId["AddInJSDebuggingEnabled"] = "addInJsDebugginEnabled"; - // DPI_AddInPauseBeforeLoading, having type bool - ParameterId["AddInPauseBeforeLoading"] = "addInPauseBeforeLoading"; - // DPI_IsEndPtMoveable, having type bool - ParameterId["IsEndPtMoveable"] = "isEndpointMovable"; - // DPI_IsExclude, having type bool - ParameterId["IsExclude"] = "isExcludeButtonChecked"; - // DPI_IsExistingConnection, having type bool - ParameterId["IsExistingConnection"] = "isExistingConnection"; - // DPI_IsExistingObject, having type bool - ParameterId["IsExistingObject"] = "isExistingObject"; - // DPI_IsExtract, having type bool - ParameterId["IsExtract"] = "isExtract"; - // DPI_IsExtractOnlyConnection, having type bool - ParameterId["IsExtractOnlyConnection"] = "isExtractOnlyConnection"; - // DPI_IsExtractSelectionVisible, having type bool - ParameterId["IsExtractSelectionVisible"] = "isExtractSelectionVisible"; - // DPI_IsFederatable, having type bool - ParameterId["IsFederatable"] = "isFederatable"; - // DPI_IsField, having type bool - ParameterId["IsField"] = "isField"; - // DPI_IsFieldParameter, having type bool - ParameterId["IsFieldParameter"] = "isFieldParameter"; - // DPI_IsFilterActionField, having type bool - ParameterId["IsFilterActionField"] = "isFilterActionField"; - // DPI_IsFirstClassConnector, having type bool - ParameterId["IsFirstClassConnector"] = "isFirstClassConnector"; - // DPI_IsFloating, having type bool - ParameterId["IsFloating"] = "isFloating"; - // DPI_IsFolded, having type bool - ParameterId["IsFolded"] = "isFolded"; - // DPI_IsForInput, having type bool - ParameterId["IsForInput"] = "isForInput"; - // DPI_IsForecastEnabled, having type bool - ParameterId["IsForecastEnabled"] = "isForecastEnabled"; - // DPI_IsForceDirty, having type bool - ParameterId["IsForceDirty"] = "isForceDirty"; - // DPI_IsFullScan, having type bool - ParameterId["IsFullScan"] = "isFullScan"; - // DPI_IsFullStyling, having type bool - ParameterId["IsFullStyling"] = "isFullStyling"; - // DPI_IsGenerated, having type bool - ParameterId["IsGenerated"] = "isGenerated"; - // DPI_IsGlobalNames, having type bool - ParameterId["IsGlobalNames"] = "isGlobalNames"; - // DPI_IsGrayed, having type bool - ParameterId["IsGrayed"] = "isGrayed"; - // DPI_IsGrayscale, having type bool - ParameterId["IsGrayscale"] = "isGrayscale"; - // DPI_IsGroup, having type bool - ParameterId["IsGroup"] = "isGroup"; - // DPI_IsHierarchy, having type bool - ParameterId["IsHierarchy"] = "isHierarchy"; - // DPI_IsHierarchySingleSelect, having type bool - ParameterId["IsHierarchySingleSelect"] = "isHierarchySingleSelect"; - // DPI_IsHighlightAllowed, having type bool - ParameterId["IsHighlightAllowed"] = "isHighlightAllowed"; - // DPI_IsHighlightEnabled, having type bool - ParameterId["IsHighlightEnabled"] = "isHighlightEnabled"; - // DPI_IsHighlightField, having type bool - ParameterId["IsHighlightField"] = "isHighlightField"; - // DPI_IsHorizontal, having type bool - ParameterId["IsHorizontal"] = "isHorizontal"; - // DPI_IsImageEnabled, having type bool - ParameterId["IsImageEnabled"] = "isImageEnabled"; - // DPI_IsInDefault, having type bool - ParameterId["IsInDefault"] = "isInDefault"; - // DPI_IsInPrimaryDataSource, having type bool - ParameterId["IsInPrimaryDataSource"] = "isInPrimaryDataSource"; - // DPI_IsInner, having type bool - ParameterId["IsInner"] = "isInner"; - // DPI_IsInstance, having type bool - ParameterId["IsInstance"] = "isInstance"; - // DPI_IsInvalid, having type bool - ParameterId["IsInvalid"] = "isInvalid"; - // DPI_IsInvalidCalcOnDG, having type bool - ParameterId["IsInvalidCalcOnDG"] = "isInvalidDgCalc"; - // DPI_IsItalics, having type bool - ParameterId["IsItalics"] = "isItalics"; - // DPI_IsJoinAreaVisible, having type bool - ParameterId["IsJoinAreaVisible"] = "isJoinAreaVisible"; - // DPI_IsLabels, having type bool - ParameterId["IsLabels"] = "isLabels"; - // DPI_IsLayered, having type bool - ParameterId["IsLayered"] = "isLayered"; - // DPI_IsLeft, having type bool - ParameterId["IsLeft"] = "isLeft"; - // DPI_IsLegacy, having type bool - ParameterId["IsLegacy"] = "isLegacy"; - // DPI_IsLevel, having type bool - ParameterId["IsLevel"] = "isLevel"; - // DPI_IsLevelOrLevelIdentity, having type bool - ParameterId["IsLevelOrLevelIdentity"] = "isLevelOrLevelIdentity"; - // DPI_IsLicensed, having type bool - ParameterId["IsLicensed"] = "isLicensed"; - // DPI_IsLink, having type bool - ParameterId["IsLink"] = "isLink"; - // DPI_IsMap, having type bool - ParameterId["IsMap"] = "isMap"; - // DPI_IsMeasure, having type bool - ParameterId["IsMeasure"] = "isMeasure"; - // DPI_IsMerge, having type bool - ParameterId["IsMerge"] = "isMerge"; - // DPI_IsMessageSourceRemote, having type bool - ParameterId["IsMessageSourceRemote"] = "isMessageSourceRemote"; - // DPI_IsMissingFromExtract, having type bool - ParameterId["IsMissingFromExtract"] = "isMissingFromExtract"; - // DPI_IsMobile, having type bool - ParameterId["IsMobile"] = "isMobile"; - // DPI_IsModified, having type bool - ParameterId["IsModified"] = "isModified"; - // DPI_IsNew, having type bool - ParameterId["IsNew"] = "isNew"; - // DPI_IsNewCloudFileDataSource, having type bool - ParameterId["IsNewCloudFileDataSource"] = "isNewCloudFileDataSource"; - // DPI_IsNone, having type bool - ParameterId["IsNone"] = "isNone"; - // DPI_IsOfflineMode, having type bool - ParameterId["IsOfflineMode"] = "isOfflineMode"; - // DPI_IsPreAqlBin, having type bool - ParameterId["IsPreAqlBin"] = "isPreAqlBin"; - // DPI_IsOMeasuresAndRelational, having type bool - ParameterId["IsOMeasuresAndRelational"] = "isOmeasuresAndRelational"; - // DPI_IsOpaque, having type bool - ParameterId["IsOpaque"] = "isOpaque"; - // DPI_IsOrphaned, having type bool - ParameterId["IsOrphaned"] = "isOrphaned"; - // DPI_IsOverlay, having type bool - ParameterId["IsOverlay"] = "isOverlay"; - // DPI_IsOverride, having type bool - ParameterId["IsOverride"] = "isOverride"; - // DPI_IsPageLoading, having type bool - ParameterId["IsPageLoading"] = "isPageLoading"; - // DPI_IsParameterSelected, having type bool - ParameterId["IsParameterSelected"] = "isParameterSelected"; - // DPI_IsParameterSelectedOnFrom, having type bool - ParameterId["IsParameterSelectedOnFrom"] = "isParameterSelectedOnFrom"; - // DPI_IsParameterSelectedOnTo, having type bool - ParameterId["IsParameterSelectedOnTo"] = "isParameterSelectedOnTo"; - // DPI_IsPatternBased, having type bool - ParameterId["IsPatternBased"] = "isPatternBased"; - // DPI_IsPinned, having type bool - ParameterId["IsPinned"] = "isPinned"; - // DPI_IsPresentationMode, having type bool - ParameterId["IsPresentationMode"] = "isPresentationModeDoc"; - // DPI_IsPublishAllowed, having type bool - ParameterId["IsPublishAllowed"] = "isPublishAllowed"; - // DPI_IsMustDowngradeToPublish, having type bool - ParameterId["IsMustDowngradeToPublish"] = "isDowngradeToPublishRequired"; - // DPI_IsPublished, having type bool - ParameterId["IsPublished"] = "isPublished"; - // DPI_IsQuickTableCalc, having type bool - ParameterId["IsQuickTableCalc"] = "isQuickTableCalc"; - // DPI_IsRadioOn, having type bool - ParameterId["IsRadioOn"] = "isRadioOn"; - // DPI_IsReconnect, having type bool - ParameterId["IsReconnect"] = "isReconnect"; - // DPI_IsRecursive, having type bool - ParameterId["IsRecursive"] = "isRecursive"; - // DPI_IsReferenced, having type bool - ParameterId["IsReferenced"] = "isReferenced"; - // DPI_IsRemovalAllowed, having type bool - ParameterId["IsRemovalAllowed"] = "isRowRemovalAllowed"; - // DPI_IsRenderCapable, having type bool - ParameterId["IsRenderCapable"] = "isRenderCapable"; - // DPI_IsRequired, having type bool - ParameterId["IsRequired"] = "isRequired"; - // DPI_IsReversed, having type bool - ParameterId["IsReversed"] = "isReversed"; - // DPI_IsRightDrag, having type bool - ParameterId["IsRightDrag"] = "isRightDrag"; - // DPI_IsRowLabels, having type bool - ParameterId["IsRowLabels"] = "isRowLabels"; - // DPI_IsPercentage, having type bool - ParameterId["IsPercentage"] = "isPercentage"; - // DPI_IsSalesforceInConnection, having type bool - ParameterId["IsSalesforceInConnection"] = "isSalesforceInConnection"; - // DPI_IsScaled, having type bool - ParameterId["IsScaled"] = "isScaled"; - // DPI_IsSelected, having type bool - ParameterId["IsSelected"] = "isSelected"; - // DPI_IsSelectedItem, having type bool - ParameterId["IsSelectedItem"] = "isSelectedItem"; - // DPI_IsSelectionDisabled, having type bool - ParameterId["IsSelectionDisabled"] = "isSelectionDisabled"; - // DPI_IsShiftDrag, having type bool - ParameterId["IsShiftDrag"] = "isShiftDrag"; - // DPI_IsSingleLabel, having type bool - ParameterId["IsSingleLabel"] = "isSingleLabel"; - // DPI_IsSingleSelect, having type bool - ParameterId["IsSingleSelect"] = "isSingleSelect"; - // DPI_IsSingleSelectMode, having type bool - ParameterId["IsSingleSelectMode"] = "isSingleSelectMode"; - // DPI_IsSingleSelection, having type bool - ParameterId["IsSingleSelection"] = "isSingleSelection"; - // DPI_IsSorted, having type bool - ParameterId["IsSorted"] = "isSorted"; - // DPI_IsSortPill, having type bool - ParameterId["IsSortPill"] = "isSortPill"; - // DPI_IsSpecial, having type bool - ParameterId["IsSpecial"] = "isSpecial"; - // DPI_IsSplashScreen, having type bool - ParameterId["IsSplashScreen"] = "isSplashScreen"; - // DPI_IsStoryEmpty, having type bool - ParameterId["IsStoryEmpty"] = "isStoryEmpty"; - // DPI_IsStrikeThrough, having type bool - ParameterId["IsStrikeThrough"] = "isStrikeThrough"; - // DPI_IsTableCalc, having type bool - ParameterId["IsTableCalc"] = "isTableCalc"; - // DPI_IsTableCleaningSubtable, having type bool - ParameterId["IsTableCleaningSubtable"] = "isTableCleaningSubtable"; - // DPI_IsTableFilterInclusive, having type bool - ParameterId["IsTableFilterInclusive"] = "isTableFilterInclusive"; - // DPI_IsTableRanked, having type bool - ParameterId["IsTableRanked"] = "isTableRanked"; - // DPI_IsTemporary, having type bool - ParameterId["IsTemporary"] = "isTemporary"; - // DPI_IsTitleVisible, having type bool - ParameterId["IsTitleVisible"] = "isTitleVisible"; - // DPI_IsTopLevel, having type bool - ParameterId["IsTopLevel"] = "isTopLevel"; - // DPI_IsTwoValued, having type bool - ParameterId["IsTwoValued"] = "isTwoValued"; - // DPI_IsTypeInFinished, having type bool - ParameterId["IsTypeInFinished"] = "isTypeinFinished"; - // DPI_IsTypeInPill, having type bool - ParameterId["IsTypeInPill"] = "isTypeInPill"; - // DPI_IsURLActionField, having type bool - ParameterId["IsURLActionField"] = "isUrlActionField"; - // DPI_IsUnderlined, having type bool - ParameterId["IsUnderlined"] = "isUnderlined"; - // DPI_IsUnion, having type bool - ParameterId["IsUnion"] = "isUnion"; - // DPI_IsUnionReplacement, having type bool - ParameterId["IsUnionReplacement"] = "isUnionReplacement"; - // DPI_IsUnnamedCalc, having type bool - ParameterId["IsUnnamedCalc"] = "isUnnamed"; - // DPI_IsUserEditable, having type bool - ParameterId["IsUserEditable"] = "isUserEditable"; - // DPI_IsUserPrompted, having type bool - ParameterId["IsUserPrompted"] = "isUserPrompted"; - // DPI_IsUserResponded, having type bool - ParameterId["IsUserResponded"] = "isUserResponded"; - // DPI_IsValid, having type bool - ParameterId["IsValid"] = "isValid"; - // DPI_IsValidWDCPage, having type bool - ParameterId["IsValidWDCPage"] = "isValidWdcPage"; - // DPI_IsVaryingAttributeDimension, having type bool - ParameterId["IsVaryingAttributeDimension"] = "isVaryingAttributeDimension"; - // DPI_IsVertical, having type bool - ParameterId["IsVertical"] = "isVertical"; - // DPI_IsViewModified, having type bool - ParameterId["IsViewModified"] = "isViewModified"; - // DPI_IsVisuallyCategorical, having type bool - ParameterId["IsVisuallyCategorical"] = "isVisuallyCat"; - // DPI_IsVizInTooltip, having type bool - ParameterId["IsVizInTooltip"] = "isVizInTooltip"; - // DPI_IsWeb, having type bool - ParameterId["IsWeb"] = "isWeb"; - // DPI_IsWhite, having type bool - ParameterId["IsWhite"] = "isWhite"; - // DPI_IsWorldNew, having type bool - ParameterId["IsWorldNew"] = "isWorldNew"; - // DPI_IsXAxis, having type bool - ParameterId["IsXAxis"] = "isXAxis"; - // DPI_KeepAspectRatio, having type bool - ParameterId["KeepAspectRatio"] = "keepAspectRatio"; - // DPI_LabelLineEndFirst, having type bool - ParameterId["LabelLineEndFirst"] = "labelLineEndFirst"; - // DPI_LabelLineEndLast, having type bool - ParameterId["LabelLineEndLast"] = "labelLineEndLast"; - // DPI_LabelMarkMax, having type bool - ParameterId["LabelMarkMax"] = "labelMarkMax"; - // DPI_LabelMarkMin, having type bool - ParameterId["LabelMarkMin"] = "labelMarkMin"; - // DPI_LockAspectRatio, having type bool - ParameterId["LockAspectRatio"] = "lockAspectRatio"; - // DPI_LoopPlayback, having type bool - ParameterId["LoopPlayback"] = "loopPlayback"; - // DPI_LossyImages, having type bool - ParameterId["LossyImages"] = "lossyImages"; - // DPI_MakeGlobal, having type bool - ParameterId["MakeGlobal"] = "isMakeGlobal"; - // DPI_ManualSortOnly, having type bool - ParameterId["ManualSortOnly"] = "manualSortOnly"; - // DPI_MapBoxDefaultStyleSelected, having type bool - ParameterId["MapBoxDefaultStyleSelected"] = "mapboxDefaultStyleSelected"; - // DPI_MapBoxURLParseSuccessful, having type bool - ParameterId["MapBoxURLParseSuccessful"] = "mapboxUrlParseSuccessful"; - // DPI_MapClientRequestsMapTiles, having type bool - ParameterId["MapClientRequestsMapTiles"] = "clientRequestsMapTiles"; - // DPI_MapHasValidLayer, having type bool - ParameterId["MapHasValidLayer"] = "mapHasValidLayer"; - // DPI_MapShowAttribution, having type bool - ParameterId["MapShowAttribution"] = "showAttribution"; - // DPI_MarkLabelsVisibilityChanged, having type bool - ParameterId["MarkLabelsVisibilityChanged"] = "markLabelsVisibilityChanged"; - // DPI_MembersLoaded, having type bool - ParameterId["MembersLoaded"] = "membersLoaded"; - // DPI_MinimizeNames, having type bool - ParameterId["MinimizeNames"] = "useMinNames"; - // DPI_MoveRefereceLineUp, having type bool - ParameterId["MoveRefereceLineUp"] = "moveReferenceLineUp"; - // DPI_MultiDataSources, having type bool - ParameterId["MultiDataSources"] = "multiDataSources"; - // DPI_NavArrowsVisible, having type bool - ParameterId["NavArrowsVisible"] = "navArrowsVisible"; - // DPI_OEMHasSplashScreen, having type bool - ParameterId["OEMHasSplashScreen"] = "oemHasSplashScreen"; - // DPI_OneWayBrushing, having type bool - ParameterId["OneWayBrushing"] = "oneWayBrushing"; - // DPI_OnlyAggregations, having type bool - ParameterId["OnlyAggregations"] = "onlyAggregations"; - // DPI_OverrideAllowed, having type bool - ParameterId["OverrideAllowed"] = "overrideAllowed"; - // DPI_OverrideStackDumper, having type bool - ParameterId["OverrideStackDumper"] = "overrideStackDumper"; - // DPI_PageAutoColorLines, having type bool - ParameterId["PageAutoColorLines"] = "autoColorLines"; - // DPI_PageAutoColorMarks, having type bool - ParameterId["PageAutoColorMarks"] = "autoColorMarks"; - // DPI_PageHistoryFade, having type bool - ParameterId["PageHistoryFade"] = "historyFade"; - // DPI_PercentageBands, having type bool - ParameterId["PercentageBands"] = "percentageBands"; - // DPI_PublishWithRemoteQueryAgent, having type bool - ParameterId["PublishWithRemoteQueryAgent"] = "publishWithRemoteQueryAgent"; - // DPI_PreviousSheet, having type bool - ParameterId["PreviousSheet"] = "previousSheet"; - // DPI_PromptDeleteSheetsWithVizInTooltip, having type bool - ParameterId["PromptDeleteSheetsWithVizInTooltip"] = "promptDeleteSheetsWithVizInTooltip"; - // DPI_QuantilesAllowed, having type bool - ParameterId["QuantilesAllowed"] = "quantilesAllowed"; - // DPI_RadialDistanceHitTest, having type bool - ParameterId["RadialDistanceHitTest"] = "radialDistanceHitTest"; - // DPI_RefLineSelected, having type bool - ParameterId["RefLineSelected"] = "refLineSelected"; - // DPI_RemovedSheets, having type bool - ParameterId["RemovedSheets"] = "removedSheets"; - // DPI_RenderImagesAsUrls, having type bool - ParameterId["RenderImagesAsUrls"] = "imagesAsUrls"; - // DPI_RenderOnTop, having type bool - ParameterId["RenderOnTop"] = "renderOnTop"; - // DPI_RepeatHeadersLegends, having type bool - ParameterId["RepeatHeadersLegends"] = "repeatHeadersLegends"; - // DPI_ReplaceActiveConfig, having type bool - ParameterId["ReplaceActiveConfig"] = "replaceActiveConfig"; - // DPI_ReplaceDatasourceAfterPublish, having type bool - ParameterId["ReplaceDatasourceAfterPublish"] = "replaceDatasourceAfterPublish"; - // DPI_ReplaceDatasourceFailed, having type bool - ParameterId["ReplaceDatasourceFailed"] = "replaceDatasourceFailed"; - // DPI_ReplaceTde, having type bool - ParameterId["ReplaceTde"] = "replaceTde"; - // DPI_RequireSelection, having type bool - ParameterId["RequireSelection"] = "requireSelection"; - // DPI_RequiresDBVariables, having type bool - ParameterId["RequiresDBVariables"] = "requiresDbVariables"; - // DPI_RequiresFieldList, having type bool - ParameterId["RequiresFieldList"] = "requiresFieldList"; - // DPI_RestartEveryFieldIsInvalid, having type bool - ParameterId["RestartEveryFieldIsInvalid"] = "restartEveryFieldIsInvalid"; - // DPI_RightJustify, having type bool - ParameterId["RightJustify"] = "rightJustify"; - // DPI_SaveEnabled, having type bool - ParameterId["SaveEnabled"] = "saveEnabled"; - // DPI_SavePasswordAllowed, having type bool - ParameterId["SavePasswordAllowed"] = "savePasswordAllowed"; - // DPI_ScopeIsolation, having type bool - ParameterId["ScopeIsolation"] = "scopeIsolation"; - // DPI_SelectionRequired, having type bool - ParameterId["SelectionRequired"] = "selectionRequired"; - // DPI_SendNotifications, having type bool - ParameterId["SendNotifications"] = "sendNotifications"; - // DPI_SetActive, having type bool - ParameterId["SetActive"] = "setActive"; - // DPI_SetDefaultSort, having type bool - ParameterId["SetDefaultSort"] = "setDefault"; - // DPI_SheetIsDashboard, having type bool - ParameterId["SheetIsDashboard"] = "isDashboard"; - // DPI_SheetIsStoryboard, having type bool - ParameterId["SheetIsStoryboard"] = "isStory"; - // DPI_ShouldAlwaysDisplayAlias, having type bool - ParameterId["ShouldAlwaysDisplayAlias"] = "shouldAlwaysDisplayAlias"; - // DPI_ShouldAutoCapture, having type bool - ParameterId["ShouldAutoCapture"] = "shouldAutoCapture"; - // DPI_ShouldAutoRevert, having type bool - ParameterId["ShouldAutoRevert"] = "shouldAutoRevert"; - // DPI_ShouldChangeUIMode, having type bool - ParameterId["ShouldChangeUIMode"] = "shouldChangeUiMode"; - // DPI_ShouldDisplay, having type bool - ParameterId["ShouldDisplay"] = "shouldDisplay"; - // DPI_ShouldDrill, having type bool - ParameterId["ShouldDrill"] = "shouldDrill"; - // DPI_ShouldForceConnectionAttempt, having type bool - ParameterId["ShouldForceConnectionAttempt"] = "shouldForceConnectionAttempt"; - // DPI_ShouldRefreshDS, having type bool - ParameterId["ShouldRefreshDS"] = "shouldRefreshDs"; - // DPI_ShouldScaleMarksInAxisUnits, having type bool - ParameterId["ShouldScaleMarksInAxisUnits"] = "shouldScaleMarksInAxisUnits"; - // DPI_ShouldSeedCredentials, having type bool - ParameterId["ShouldSeedCredentials"] = "shouldSeedCredentials"; - // DPI_ShouldShowDistance, having type bool - ParameterId["ShouldShowDistance"] = "shouldShowDistance"; - // DPI_ShouldShowMapScale, having type bool - ParameterId["ShouldShowMapScale"] = "shouldShowMapScale"; - // DPI_ShouldURLEscape, having type bool - ParameterId["ShouldURLEscape"] = "shouldUrlEscape"; - // DPI_ShouldUpdateDomainInfo, having type bool - ParameterId["ShouldUpdateDomainInfo"] = "shouldUpdateDomInfo"; - // DPI_ShowAddToFilter, having type bool - ParameterId["ShowAddToFilter"] = "showAddToFilterButton"; - // DPI_ShowAliases, having type bool - ParameterId["ShowAliases"] = "showAliases"; - // DPI_ShowAllPages, having type bool - ParameterId["ShowAllPages"] = "showAllPages"; - // DPI_ShowApply, having type bool - ParameterId["ShowApply"] = "showApplyButton"; - // DPI_ShowApplyAndCancelButtons, having type bool - ParameterId["ShowApplyAndCancelButtons"] = "showApplyAndCancelButtons"; - // DPI_ShowAuthenticationOptions, having type bool - ParameterId["ShowAuthenticationOptions"] = "showAuthenticationOptions"; - // DPI_ShowAuthenticationSetting, having type bool - ParameterId["ShowAuthenticationSetting"] = "showAuthenticationSetting"; - // DPI_ShowAuto, having type bool - ParameterId["ShowAuto"] = "showAuto"; - // DPI_ShowBold, having type bool - ParameterId["ShowBold"] = "showBoldOption"; - // DPI_ShowButtons, having type bool - ParameterId["ShowButtons"] = "showButtons"; - // DPI_ShowCaption, having type bool - ParameterId["ShowCaption"] = "showCaption"; - // DPI_ShowColorLegend, having type bool - ParameterId["ShowColorLegend"] = "showColorLegend"; - // DPI_ShowDataGridInlineRename, having type bool - ParameterId["ShowDataGridInlineRename"] = "showDataGridInlineRename"; - // DPI_ShowDetailMessages, having type bool - ParameterId["ShowDetailMessages"] = "showDetailMessages"; - // DPI_ShowDate, having type bool - ParameterId["ShowDate"] = "showDate"; - // DPI_ShowDragLabel, having type bool - ParameterId["ShowDragLabel"] = "showDragLabel"; - // DPI_ShowDropMeasures, having type bool - ParameterId["ShowDropMeasures"] = "showDropMeasures"; - // DPI_ShowEmbedAll, having type bool - ParameterId["ShowEmbedAll"] = "showEmbedAll"; - // DPI_ShowEntireImage, having type bool - ParameterId["ShowEntireImage"] = "showEntireImage"; - // DPI_ShowExclude, having type bool - ParameterId["ShowExclude"] = "showExcludeButton"; - // DPI_ShowFloatingZoomToolbar, having type bool - ParameterId["ShowFloatingZoomToolbar"] = "showFloatingZoomToolbar"; - // DPI_ShowFormatter, having type bool - ParameterId["ShowFormatter"] = "showFormatter"; - // DPI_ShowFullSchedules, having type bool - ParameterId["ShowFullSchedules"] = "showFullSchedules"; - // DPI_ShowGeographicSearch, having type bool - ParameterId["ShowGeographicSearch"] = "showGeographicSearch"; - // DPI_ShowHiddenFields, having type bool - ParameterId["ShowHiddenFields"] = "showHiddenFields"; - // DPI_ShowHistoryControls, having type bool - ParameterId["ShowHistoryControls"] = "showHistoryControls"; - // DPI_ShowIncludeLocalFiles, having type bool - ParameterId["ShowIncludeLocalFiles"] = "showIncludeLocalFiles"; - // DPI_ShowIncludeOtherOption, having type bool - ParameterId["ShowIncludeOtherOption"] = "showIncludeOtherOption"; - // DPI_ShowIncludeSelections, having type bool - ParameterId["ShowIncludeSelections"] = "showIncludeSelections"; - // DPI_ShowIncrSchedules, having type bool - ParameterId["ShowIncrSchedules"] = "showIncrSchedules"; - // DPI_ShowInnerMostLevel, having type bool - ParameterId["ShowInnerMostLevel"] = "showInnermostLevel"; - // DPI_ShowItalics, having type bool - ParameterId["ShowItalics"] = "showItalicsOption"; - // DPI_ShowLegend, having type bool - ParameterId["ShowLegend"] = "showLegend"; - // DPI_ShowLockedPermissionsIcon, having type bool - ParameterId["ShowLockedPermissionsIcon"] = "showLockedPermissionsIcon"; - // DPI_ShowManageDatasources, having type bool - ParameterId["ShowManageDatasources"] = "showManageDatasources"; - // DPI_ShowMapLegend, having type bool - ParameterId["ShowMapLegend"] = "showMapLegend"; - // DPI_ShowMapScale, having type bool - ParameterId["ShowMapScale"] = "showMapScale"; - // DPI_ShowMappedFilterCols, having type bool - ParameterId["ShowMappedFilterCols"] = "showMappedFilterColumns"; - // DPI_ShowName, having type bool - ParameterId["ShowName"] = "showName"; - // DPI_ShowNone, having type bool - ParameterId["ShowNone"] = "showNone"; - // DPI_ShowPagePlayback, having type bool - ParameterId["ShowPagePlayback"] = "showPagePlayback"; - // DPI_ShowPageReadout, having type bool - ParameterId["ShowPageReadout"] = "showPageReadout"; - // DPI_ShowPageSlider, having type bool - ParameterId["ShowPageSlider"] = "showPageSlider"; - // DPI_ShowParent, having type bool - ParameterId["ShowParent"] = "showParent"; - // DPI_ShowPercentages, having type bool - ParameterId["ShowPercentages"] = "showPercentages"; - // DPI_ShowPredictionIntervals, having type bool - ParameterId["ShowPredictionIntervals"] = "showPredictionIntervals"; - // DPI_ShowPublishedDatasources, having type bool - ParameterId["ShowPublishedDatasources"] = "showPublishedDatasources"; - // DPI_ShowRelDatePicker, having type bool - ParameterId["ShowRelDatePicker"] = "showRelDatePicker"; - // DPI_ShowReplaceDatasource, having type bool - ParameterId["ShowReplaceDatasource"] = "showReplaceDatasource"; - // DPI_ShowSeparator, having type bool - ParameterId["ShowSeparator"] = "showSeparator"; - // DPI_ShowShapeLegend, having type bool - ParameterId["ShowShapeLegend"] = "showShapeLegend"; - // DPI_ShowSizeLegend, having type bool - ParameterId["ShowSizeLegend"] = "showSizeLegend"; - // DPI_ShowShelf, having type bool - ParameterId["ShowShelf"] = "showShelf"; - // DPI_ShowStructure, having type bool - ParameterId["ShowStructure"] = "showStructure"; - // DPI_ShowSyncClientOptions, having type bool - ParameterId["ShowSyncClientOptions"] = "showSyncClientOptions"; - // DPI_ShowTabsAllowed, having type bool - ParameterId["ShowTabsAllowed"] = "showTabsAllowed"; - // DPI_ShowTime, having type bool - ParameterId["ShowTime"] = "showTime"; - // DPI_ShowTitle, having type bool - ParameterId["ShowTitle"] = "showTitle"; - // DPI_ShowTransSlider, having type bool - ParameterId["ShowTransSlider"] = "showTransparencySlider"; - // DPI_ShowUnderline, having type bool - ParameterId["ShowUnderline"] = "showUnderlineOption"; - // DPI_ShowUserThumbnailOptions, having type bool - ParameterId["ShowUserThumbnailOptions"] = "showUserThumbnailOptions"; - // DPI_ShowView, having type bool - ParameterId["ShowView"] = "showView"; - // DPI_ShowViews, having type bool - ParameterId["ShowViews"] = "showViews"; - // DPI_ShowingPageLoadError, having type bool - ParameterId["ShowingPageLoadError"] = "showingPageLoadError"; - // DPI_SupressAliases, having type bool - ParameterId["SupressAliases"] = "suspressAliases"; - // DPI_SupressThousandsSeparator, having type bool - ParameterId["SupressThousandsSeparator"] = "supressThousandsSeparator"; - // DPI_SingleSelectOnly, having type bool - ParameterId["SingleSelectOnly"] = "singleSelectOnly"; - // DPI_SkipIfActive, having type bool - ParameterId["SkipIfActive"] = "skipIfActive"; - // DPI_SkipRefresh, having type bool - ParameterId["SkipRefresh"] = "skipRefresh"; - // DPI_SkipValidation, having type bool - ParameterId["SkipValidation"] = "skipValidation"; - // DPI_Skipped, having type bool - ParameterId["Skipped"] = "skipped"; - // DPI_SortFieldIsInvalid, having type bool - ParameterId["SortFieldIsInvalid"] = "sortFieldIsInvalid"; - // DPI_SortModeIsAuto, having type bool - ParameterId["SortModeIsAuto"] = "sortModeIsAuto"; - // DPI_SplitOnEdgeSnap, having type bool - ParameterId["SplitOnEdgeSnap"] = "splitOnEdgeSnap"; - // DPI_StandardDeviationAllowed, having type bool - ParameterId["StandardDeviationAllowed"] = "standardDeviationAllowed"; - // DPI_State, having type bool - ParameterId["State"] = "state"; - // DPI_StoredProcDisabled, having type bool - ParameterId["StoredProcDisabled"] = "storedProcDisabled"; - // DPI_StoredProcsDropable, having type bool - ParameterId["StoredProcsDropable"] = "storedProcsDropable"; - // DPI_StoryIsEmpty, having type bool - ParameterId["StoryIsEmpty"] = "storyIsEmpty"; - // DPI_StoryPointIsEmpty, having type bool - ParameterId["StoryPointIsEmpty"] = "storyPointIsEmpty"; - // DPI_SuccessfulSave, having type bool - ParameterId["SuccessfulSave"] = "successfulSave"; - // DPI_SupportXAxis, having type bool - ParameterId["SupportXAxis"] = "supportXAxis"; - // DPI_SupportYAxis, having type bool - ParameterId["SupportYAxis"] = "supportYAxis"; - // DPI_SupportsCenterAlignment, having type bool - ParameterId["SupportsCenterAlignment"] = "supportsCenterAlignment"; - // DPI_SupportsDBFilters, having type bool - ParameterId["SupportsDBFilters"] = "supportsDatabaseFilters"; - // DPI_SupportsMultipleValues, having type bool - ParameterId["SupportsMultipleValues"] = "supportsMultipleValues"; - // DPI_SupportsRightAlignment, having type bool - ParameterId["SupportsRightAlignment"] = "supportsRightAlignment"; - // DPI_SupportsTableFilters, having type bool - ParameterId["SupportsTableFilters"] = "supportsTableFilters"; - // DPI_Symmetric, having type bool - ParameterId["Symmetric"] = "symmetric"; - // DPI_SyncAutomaticDrill, having type bool - ParameterId["SyncAutomaticDrill"] = "syncAutomaticDrill"; - // DPI_TabsAllowed, having type bool - ParameterId["TabsAllowed"] = "tabsAllowed"; - // DPI_TextDropdownState, having type bool - ParameterId["TextDropdownState"] = "toggleState"; - // DPI_TitleInline, having type bool - ParameterId["TitleInline"] = "titleInline"; - // DPI_ToggleHighlightStateChanged, having type bool - ParameterId["ToggleHighlightStateChanged"] = "toggleHighlight"; - // DPI_Transformed80Format, having type bool - ParameterId["Transformed80Format"] = "oldFormat"; - // DPI_TrendLineSelected, having type bool - ParameterId["TrendLineSelected"] = "trendLineSelected"; - // DPI_TruncDate, having type bool - ParameterId["TruncDate"] = "truncDate"; - // DPI_TupleSelected, having type bool - ParameterId["TupleSelected"] = "tupleSelected"; - // DPI_UIAutomationDidPageLoad, having type bool - ParameterId["UIAutomationDidPageLoad"] = "uiAutomationDidPageLoad"; - // DPI_UIAutomationIsChecked, having type bool - ParameterId["UIAutomationIsChecked"] = "uiAutomationIsChecked"; - // DPI_UIAutomationIsEnabled, having type bool - ParameterId["UIAutomationIsEnabled"] = "uiAutomationIsEnabled"; - // DPI_UIAutomationIsEventProcessed, having type bool - ParameterId["UIAutomationIsEventProcessed"] = "uiAutomationIsEventProcessed"; - // DPI_UIAutomationIsFocused, having type bool - ParameterId["UIAutomationIsFocused"] = "uiAutomationIsFocused"; - // DPI_UIAutomationIsFound, having type bool - ParameterId["UIAutomationIsFound"] = "uiAutomationIsFound"; - // DPI_UIAutomationIsReadonly, having type bool - ParameterId["UIAutomationIsReadonly"] = "uiAutomationIsReadonly"; - // DPI_UIAutomationIsSelected, having type bool - ParameterId["UIAutomationIsSelected"] = "uiAutomationIsSelected"; - // DPI_UpdateAllPanes, having type bool - ParameterId["UpdateAllPanes"] = "updateAllPanes"; - // DPI_UpdateDSCaptionOnly, having type bool - ParameterId["UpdateDSCaptionOnly"] = "updateDsCaptionOnly"; - // DPI_UpdateModelFromParams, having type bool - ParameterId["UpdateModelFromParams"] = "updateModelFromParams"; - // DPI_UpdateShelves, having type bool - ParameterId["UpdateShelves"] = "updateShelves"; - // DPI_UpdatesUseContext, having type bool - ParameterId["UpdatesUseContext"] = "updatesUseContext"; - // DPI_UpgradeDocumentVersion, having type bool - ParameterId["UpgradeDocumentVersion"] = "upgradeDocumentVersion"; - // DPI_UseAliases, having type bool - ParameterId["UseAliases"] = "useAliases"; - // DPI_UseBlankForNull, having type bool - ParameterId["UseBlankForNull"] = "useBlankForNull"; - // DPI_UseCalculationEditor, having type bool - ParameterId["UseCalculationEditor"] = "useCalculationEditor"; - // DPI_UseCenterValue, having type bool - ParameterId["UseCenterValue"] = "useCenterValue"; - // DPI_UseColor, having type bool - ParameterId["UseColor"] = "useColor"; - // DPI_UseCustomMarkSize, having type bool - ParameterId["UseCustomMarkSize"] = "useCustomMarkSize"; - // DPI_UseDarkIcons, having type bool - ParameterId["UseDarkIcons"] = "useDarkIcons"; - // DPI_UseDataStoreMinfiedNames, having type bool - ParameterId["UseDataStoreMinfiedNames"] = "useDatastoreMinNames"; - // DPI_UseInitialDomainType, having type bool - ParameterId["UseInitialDomainType"] = "useInitialDomainType"; - // DPI_UseEndValue, having type bool - ParameterId["UseEndValue"] = "useEndValue"; - // DPI_UseForOverlayHitTest, having type bool - ParameterId["UseForOverlayHitTest"] = "useForOverlayHitTest"; - // DPI_UseFullColorRange, having type bool - ParameterId["UseFullColorRange"] = "useFullColorRange"; - // DPI_UseFullDomain, having type bool - ParameterId["UseFullDomain"] = "useFullDomain"; - // DPI_UseInlineImages, having type bool - ParameterId["UseInlineImages"] = "useInlineImages"; - // DPI_UseMeasures, having type bool - ParameterId["UseMeasures"] = "useMeasures"; - // DPI_UseNewQuickFilters, having type bool - ParameterId["UseNewQuickFilters"] = "useNewQuickFilters"; - // DPI_UseNotificationReturn, having type bool - ParameterId["UseNotificationReturn"] = "useNotificationReturn"; - // DPI_UseParameters, having type bool - ParameterId["UseParameters"] = "useParameters"; - // DPI_UseSelector, having type bool - ParameterId["UseSelector"] = "useSelector"; - // DPI_UseSignificantDigits, having type bool - ParameterId["UseSignificantDigits"] = "useSignificantDigits"; - // DPI_UseSpecialStrings, having type bool - ParameterId["UseSpecialStrings"] = "useSpecialStrings"; - // DPI_UseStartValue, having type bool - ParameterId["UseStartValue"] = "useStartValue"; - // DPI_UseTabletAsDefaultPreview, having type bool - ParameterId["UseTabletAsDefaultPreview"] = "useTabletAsDefaultPreview"; - // DPI_UseTargetPt, having type bool - ParameterId["UseTargetPt"] = "useTargetPoint"; - // DPI_UseUSLocale, having type bool - ParameterId["UseUSLocale"] = "useUsLocale"; - // DPI_UseYAxis, having type bool - ParameterId["UseYAxis"] = "useYAxis"; - // DPI_Valid, having type bool - ParameterId["Valid"] = "valid"; - // DPI_VizDataV82, having type bool - ParameterId["VizDataV82"] = "vizData82"; - // DPI_WMSConnectionSuccessful, having type bool - ParameterId["WMSConnectionSuccessful"] = "wmsConnectionSuccessful"; - // DPI_WMSShouldUseTiles, having type bool - ParameterId["WMSShouldUseTiles"] = "wmsShouldUseTiles"; - // DPI_WantDomain, having type bool - ParameterId["WantDomain"] = "wantDomain"; - // DPI_WorkbookModified, having type bool - ParameterId["WorkbookModified"] = "workbookModified"; - // DPI_ZoomIn, having type bool - ParameterId["ZoomIn"] = "zoomIn"; - // DPI_ShowMarkLabels, having type bool - ParameterId["ShowMarkLabels"] = "showMarkLabels"; - // DPI_HasDuplicates, having type bool - ParameterId["HasDuplicates"] = "hasDuplicates"; - // DPI_HasUserDefinedIncrement, having type bool - ParameterId["HasUserDefinedIncrement"] = "hasUserDefinedIncrement"; - // DPI_HasUserDefinedMax, having type bool - ParameterId["HasUserDefinedMax"] = "hasUserDefinedMax"; - // DPI_HasUserDefinedMin, having type bool - ParameterId["HasUserDefinedMin"] = "hasUserDefinedMin"; - // DPI_IsDuplicate, having type bool - ParameterId["IsDuplicate"] = "isDuplicate"; - // DPI_IsEditingValue, having type bool - ParameterId["IsEditingValue"] = "isEditingValue"; - // DPI_ShouldRestrictDataType, having type bool - ParameterId["ShouldRestrictDataType"] = "restrictDataType"; - // DPI_EnableIncludeZero, having type bool - ParameterId["EnableIncludeZero"] = "enableIncludeZero"; - // DPI_EnableSyncDualAxes, having type bool - ParameterId["EnableSyncDualAxes"] = "enableSynchronizeDualAxes"; - // DPI_EnableShowTimes, having type bool - ParameterId["EnableShowTimes"] = "enableShowTimes"; - // DPI_IsTemporal, having type bool - ParameterId["IsTemporal"] = "isTemporal"; - // DPI_ShouldIncludeZero, having type bool - ParameterId["ShouldIncludeZero"] = "shouldIncludeZero"; - // DPI_ShouldReverseAxis, having type bool - ParameterId["ShouldReverseAxis"] = "shouldReverseAxis"; - // DPI_UseAutomaticAxisSubtitle, having type bool - ParameterId["UseAutomaticAxisSubtitle"] = "useAutomaticSubtitle"; - // DPI_UseAutomaticAxisTitle, having type bool - ParameterId["UseAutomaticAxisTitle"] = "useAutomaticTitle"; - // DPI_AllSelected, having type bool - ParameterId["AllSelected"] = "allSelected"; - // DPI_AutoCommit, having type bool - ParameterId["AutoCommit"] = "autoCommit"; - // DPI_CacheOnly, having type bool - ParameterId["CacheOnly"] = "cacheOnly"; - // DPI_IncludeData, having type bool - ParameterId["IncludeData"] = "includeData"; - // DPI_IsPatternExclusive, having type bool - ParameterId["IsPatternExclusive"] = "isPatternExclusive"; - // DPI_IsSearchable, having type bool - ParameterId["IsSearchable"] = "isSearchable"; - // DPI_IsSelectionExclusive, having type bool - ParameterId["IsSelectionExclusive"] = "isSelectionExclusive"; - // DPI_ResetNewFilter, having type bool - ParameterId["ResetNewFilter"] = "resetNewFilter"; - // DPI_UseAllWhenManualEmpty, having type bool - ParameterId["UseAllWhenManualEmpty"] = "useAllWhenManualEmpty"; - // DPI_UseAllWhenPatternEmpty, having type bool - ParameterId["UseAllWhenPatternEmpty"] = "useAllWhenPatternEmpty"; - // DPI_GroupByDrillDown, having type bool - ParameterId["GroupByDrillDown"] = "groupByDrillDown"; - // DPI_GroupByTable, having type bool - ParameterId["GroupByTable"] = "groupByTable"; - // DPI_IncludeGroups, having type bool - ParameterId["IncludeGroups"] = "includeGroups"; - // DPI_IncludePendingState, having type bool - ParameterId["IncludePendingState"] = "includePendingState"; - // DPI_IncludeFieldMenus, having type bool - ParameterId["IncludeFieldMenus"] = "includeFieldMenus"; - // DPI_IncludeFormattedValues, having type bool - ParameterId["IncludeFormattedValues"] = "includeFormattedValues"; - // DPI_IncludeColumnInstances, having type bool - ParameterId["IncludeColumnInstances"] = "includeColumnInstances"; - // DPI_IncludeAdHocCalcs, having type bool - ParameterId["IncludeAdHocCalcs"] = "includeAdhocCalcs"; - // DPI_IncludeHiddenInvalidFields, having type bool - ParameterId["IncludeHiddenInvalidFields"] = "includeHiddenInvalidFields"; - // DPI_IncludeNonExtractedColumns, having type bool - ParameterId["IncludeNonExtractedColumns"] = "includeNonExtractedColumns"; - // DPI_SetDataPreviewCustomFieldOrder, having type bool - ParameterId["SetDataPreviewCustomFieldOrder"] = "setDataPreviewCustomFieldOrder"; - // DPI_CustomSplitAllowSplitFromRight, having type bool - ParameterId["CustomSplitAllowSplitFromRight"] = "customSplitAllowSplitFromRight"; - // DPI_IsChanged, having type bool - ParameterId["IsChanged"] = "isChanged"; - // DPI_ShowFontColorPicker, having type bool - ParameterId["ShowFontColorPicker"] = "showFontColorPicker"; - // DPI_ShowFontFamilyPicker, having type bool - ParameterId["ShowFontFamilyPicker"] = "showFontFamilyPicker"; - // DPI_ShowFontSizePicker, having type bool - ParameterId["ShowFontSizePicker"] = "showFontSizePicker"; - // DPI_ShowFontStyleButtons, having type bool - ParameterId["ShowFontStyleButtons"] = "showFontStyleButtons"; - // DPI_ShowLineForAll, having type bool - ParameterId["ShowLineForAll"] = "showLineForAll"; - // DPI_ShowLineForColumn, having type bool - ParameterId["ShowLineForColumn"] = "showLineForColumn"; - // DPI_ShowLineForRow, having type bool - ParameterId["ShowLineForRow"] = "showLineForRow"; - // DPI_ShowLinePatternPicker, having type bool - ParameterId["ShowLinePatternPicker"] = "showLinePatternPicker"; - // DPI_ShowLineTransparency, having type bool - ParameterId["ShowLineTransparency"] = "showLineTransparency"; - // DPI_ShowLineWidthPicker, having type bool - ParameterId["ShowLineWidthPicker"] = "showLineWidthPicker"; - // DPI_CanBeAuto, having type bool - ParameterId["CanBeAuto"] = "canBeAuto"; - // DPI_CanBeNone, having type bool - ParameterId["CanBeNone"] = "canBeNone"; - // DPI_CanMatchMarkColor, having type bool - ParameterId["CanMatchMarkColor"] = "canMatchMarkColor"; - // DPI_HasOpacity, having type bool - ParameterId["HasOpacity"] = "hasOpacity"; - // DPI_IncludeAllHidden, having type bool - ParameterId["IncludeAllHidden"] = "includeAllHidden"; - // DPI_IncludeCurrent, having type bool - ParameterId["IncludeCurrent"] = "includeCurrent"; - // DPI_IsIncluded, having type bool - ParameterId["IsIncluded"] = "isIncluded"; - // DPI_IsRelative, having type bool - ParameterId["IsRelative"] = "isRelative"; - // DPI_IsSecondaryAllowed, having type bool - ParameterId["IsSecondaryAllowed"] = "isSecondaryAllowed"; - // DPI_NullIfIncomplete, having type bool - ParameterId["NullIfIncomplete"] = "nullIfIncomplete"; - // DPI_IsCalcAssistanceEnabled, having type bool - ParameterId["IsCalcAssistanceEnabled"] = "isCalcAssistanceEnabled"; - // DPI_UseSecondaryCalc, having type bool - ParameterId["UseSecondaryCalc"] = "useSecondaryCalc"; - // DPI_CanLoad, having type bool - ParameterId["CanLoad"] = "canLoad"; - // DPI_DescriptionOnly, having type bool - ParameterId["DescriptionOnly"] = "descriptionOnly"; - // DPI_AreAliasesSupported, having type bool - ParameterId["AreAliasesSupported"] = "areAliasesSupported"; - // DPI_AreRefColumnsSupported, having type bool - ParameterId["AreRefColumnsSupported"] = "areRefColumnsSupported"; - // DPI_IsAggregated, having type bool - ParameterId["IsAggregated"] = "isAggregated"; - // DPI_IsExportSupported, having type bool - ParameterId["IsExportSupported"] = "isExportSupported"; - // DPI_IsMeasureNames, having type bool - ParameterId["IsMeasureNames"] = "isMeasureNames"; - // DPI_IsSummarySupported, having type bool - ParameterId["IsSummarySupported"] = "isSummarySupported"; - // DPI_IsTopNSupported, having type bool - ParameterId["IsTopNSupported"] = "isTopNSupported"; - // DPI_IsUnderlyingSupported, having type bool - ParameterId["IsUnderlyingSupported"] = "isUnderlyingSupported"; - // DPI_OnlyExportSummary, having type bool - ParameterId["OnlyExportSummary"] = "onlyExportSummary"; - // DPI_ShowAllFields, having type bool - ParameterId["ShowAllFields"] = "showAllFields"; - // DPI_UseTablePtrs, having type bool - ParameterId["UseTablePtrs"] = "useTablePtrs"; - // DPI_OnlyFetchSummary, having type bool - ParameterId["OnlyFetchSummary"] = "onlyFetchSummary"; - // DPI_IsDeviceLayoutCustomized, having type bool - ParameterId["IsDeviceLayoutCustomized"] = "isDeviceLayoutCustomized"; - // DPI_IsDeviceSizeCustomized, having type bool - ParameterId["IsDeviceSizeCustomized"] = "isDeviceSizeCustomized"; - // DPI_IsDeviceSupportedByMobileApp, having type bool - ParameterId["IsDeviceSupportedByMobileApp"] = "isDeviceSupportedByMobileApp"; - // DPI_IsPortrait, having type bool - ParameterId["IsPortrait"] = "isPortrait"; - // DPI_IsPortraitByDefault, having type bool - ParameterId["IsPortraitByDefault"] = "isPortraitByDefault"; - // DPI_IsUserCustomFormat, having type bool - ParameterId["IsUserCustomFormat"] = "isUserCustomFormat"; - // DPI_ShouldDisplayRebuildExtractMessage, having type bool - ParameterId["ShouldDisplayRebuildExtractMessage"] = "shouldDisplayRebuildExtractMessage"; - // DPI_SupportsCustomStartOfWeek, having type bool - ParameterId["SupportsCustomStartOfWeek"] = "supportsCustomStartOfWeek"; - // DPI_NeedsConnectPrompt, having type bool - ParameterId["NeedsConnectPrompt"] = "needsConnectPrompt"; - // DPI_NeedsCloseDataSourceErrorPrompt, having type bool - ParameterId["NeedsCloseDataSourceErrorPrompt"] = "needsCloseDsErrorPrompt"; - // DPI_ClearCurrentSelection, having type bool - ParameterId["ClearCurrentSelection"] = "clearCurrentSelection"; - // DPI_HasContains, having type bool - ParameterId["HasContains"] = "hasContains"; - // DPI_HasEndsWith, having type bool - ParameterId["HasEndsWith"] = "hasEndsWith"; - // DPI_HasReplaceSelection, having type bool - ParameterId["HasReplaceSelection"] = "hasReplaceSelection"; - // DPI_HasStartsWith, having type bool - ParameterId["HasStartsWith"] = "hasStartsWith"; - // DPI_IsLeafSelectionOnly, having type bool - ParameterId["IsLeafSelectionOnly"] = "isLeafSelectionOnly"; - // DPI_ReplaceSelection, having type bool - ParameterId["ReplaceSelection"] = "replaceSelection"; - // DPI_IsColorPaletteCustomized, having type bool - ParameterId["IsColorPaletteCustomized"] = "isColorPaletteCustomized"; - // DPI_ReversePaletteOrder, having type bool - ParameterId["ReversePaletteOrder"] = "reversePaletteOrder"; - // DPI_TriedToConnect, having type bool - ParameterId["TriedToConnect"] = "triedToConnect"; - // DPI_ScaleMarksInAxisUnits, having type bool - ParameterId["ScaleMarksInAxisUnits"] = "scaleMarksInAxisUnits"; - // DPI_ShowMarkSizingOptions, having type bool - ParameterId["ShowMarkSizingOptions"] = "showMarkSizingOptions"; - // DPI_UseSizeFieldCaption, having type bool - ParameterId["UseSizeFieldCaption"] = "useSizeFieldCaption"; - // DPI_IsLicensedAndRegistered, having type bool - ParameterId["IsLicensedAndRegistered"] = "isLicensedAndRegistered"; - // DPI_SetNewDatasourceActive, having type bool - ParameterId["SetNewDatasourceActive"] = "setNewDatasourceActive"; - // DPI_AllowCustomLabel, having type bool - ParameterId["AllowCustomLabel"] = "allowCustomLabel"; - // DPI_IsMostRecentModeValid, having type bool - ParameterId["IsMostRecentModeValid"] = "isMostRecentModeValid"; - // DPI_MustShowLabels, having type bool - ParameterId["MustShowLabels"] = "mustShowLabels"; - // DPI_ShowRunningOrderLabels, having type bool - ParameterId["ShowRunningOrderLabels"] = "showRunningOrderLabels"; - // DPI_IsDroppedFile, having type bool - ParameterId["IsDroppedFile"] = "isDroppedFile"; - // DPI_IsInitialized, having type bool - ParameterId["IsInitialized"] = "isInitialized"; - // DPI_IncludeDashboard, having type bool - ParameterId["IncludeDashboard"] = "includeDashboard"; - // DPI_ChildrenCanResize, having type bool - ParameterId["ChildrenCanResize"] = "childrenCanResize"; - // DPI_BoolMap, having type Dictionary(of bool) - ParameterId["BoolMap"] = "boolMap"; - // DPI_CheckedMenuItems, having type bool[] - ParameterId["CheckedMenuItems"] = "checkedMenuItems"; - // DPI_IncludedSheetValues, having type bool[] - ParameterId["IncludedSheetValues"] = "includedSheetValues"; - // DPI_SortOrderVector, having type bool[] - ParameterId["SortOrderVector"] = "sortOrderVector"; - // DPI_ActionName, having type string - ParameterId["ActionName"] = "actionName"; - // DPI_ActionSourceText, having type string - ParameterId["ActionSourceText"] = "actionSourceText"; - // DPI_ActionTypeAsString, having type string - ParameterId["ActionTypeAsString"] = "actionTypeAsString"; - // DPI_ActiveTab, having type string - ParameterId["ActiveTab"] = "active_tab"; - // DPI_AddInId, having type string - ParameterId["AddInId"] = "addInId"; - // DPI_AddInstanceId, having type string - ParameterId["AddInstanceId"] = "addInInstanceId"; - // DPI_AddInName, having type string - ParameterId["AddInName"] = "addInName"; - // DPI_AddInLocale, having type string - ParameterId["AddInLocale"] = "addInLocale"; - // DPI_AddInLanguage, having type string - ParameterId["AddInLanguage"] = "addInLanguage"; - // DPI_APIVersion, having type string - ParameterId["APIVersion"] = "apiVersion"; - // DPI_Alias, having type string - ParameterId["Alias"] = "alias"; - // DPI_AnchorDate, having type string - ParameterId["AnchorDate"] = "anchorDate"; - // DPI_AnnotationRes, having type string - ParameterId["AnnotationRes"] = "annotationRes"; - // DPI_ReadId, having type string - ParameterId["ReadId"] = "readId"; - // DPI_AnnotationText, having type string - ParameterId["AnnotationText"] = "annotationText"; - // DPI_ArchiveDirectory, having type string - ParameterId["ArchiveDirectory"] = "archiveDirectory"; - // DPI_ArchiveFullPath, having type string - ParameterId["ArchiveFullPath"] = "archiveFullPath"; - // DPI_AtTheLevelInvalidFieldCaption, having type string - ParameterId["AtTheLevelInvalidFieldCaption"] = "atTheLevelInvalidFieldCaption"; - // DPI_AutoCompleteSubstring, having type string - ParameterId["AutoCompleteSubstring"] = "acSubstring"; - // DPI_AutosaveFileId, having type string - ParameterId["AutosaveFileId"] = "autosaveFileId"; - // DPI_AutosaveTimerInterval, having type string - ParameterId["AutosaveTimerInterval"] = "autosaveTimerInterval"; - // DPI_BaseColumnCaption, having type string - ParameterId["BaseColumnCaption"] = "baseColumnCaption"; - // DPI_ClearButtonText, having type string - ParameterId["ClearButtonText"] = "clearButtonText"; - // DPI_ColorPaletteId, having type string - ParameterId["ColorPaletteId"] = "colorPaletteId"; - // DPI_ColorPaletteName, having type string - ParameterId["ColorPaletteName"] = "colorPaletteName"; - // DPI_ColorSwatch, having type string - ParameterId["ColorSwatch"] = "colorSwatch"; - // DPI_CommandName, having type string - ParameterId["CommandName"] = "commandName"; - // DPI_ConfidenceLevelValue, having type string - ParameterId["ConfidenceLevelValue"] = "confidenceLevelValue"; - // DPI_CountDistinctStr, having type string - ParameterId["CountDistinctStr"] = "countDistinctStr"; - // DPI_CSSMargin, having type string - ParameterId["CSSMargin"] = "cssMargin"; - // DPI_CSSWhitespace, having type string - ParameterId["CSSWhitespace"] = "cssWhitespace"; - // DPI_DBPassword, having type string - ParameterId["DBPassword"] = "dbPassword"; - // DPI_DBUsername, having type string - ParameterId["DBUsername"] = "dbUsername"; - // DPI_DataAlertConditionText, having type string - ParameterId["DataAlertConditionText"] = "dataAlertConditionText"; - // DPI_DataAlertMeasureText, having type string - ParameterId["DataAlertMeasureText"] = "dataAlertMeasureText"; - // DPI_DataAlertSpecSerializedText, having type string - ParameterId["DataAlertSpecSerializedText"] = "dataAlertSpecSerializedText"; - // DPI_DataAlertDefaultSubject, having type string - ParameterId["DataAlertDefaultSubject"] = "dataAlertDefaultSubject"; - // DPI_DataAlertThresholdText, having type string - ParameterId["DataAlertThresholdText"] = "dataAlertThresholdText"; - // DPI_DataGridSortColumnName, having type string - ParameterId["DataGridSortColumnName"] = "datagridSortColumnName"; - // DPI_DataServerConnectionError, having type string - ParameterId["DataServerConnectionError"] = "dataServerConnectionError"; - // DPI_DatabaseFilter, having type string - ParameterId["DatabaseFilter"] = "databaseFilter"; - // DPI_DatabaseFilterPrompt, having type string - ParameterId["DatabaseFilterPrompt"] = "databaseFilterPrompt"; - // DPI_DatasourceRanking, having type string - ParameterId["DatasourceRanking"] = "datasourceRanking"; - // DPI_DatasourceUrl, having type string - ParameterId["DatasourceUrl"] = "datasourceUrl"; - // DPI_DatasourceUsername, having type string - ParameterId["DatasourceUsername"] = "datasourceUsername"; - // DPI_DateFormat, having type string - ParameterId["DateFormat"] = "dateFormat"; - // DPI_DatePart, having type string - ParameterId["DatePart"] = "datePart"; - // DPI_DatePartAbbrev, having type string - ParameterId["DatePartAbbrev"] = "datePartAbbrev"; - // DPI_DefaultHierarchyName, having type string - ParameterId["DefaultHierarchyName"] = "defaultHierarchyName"; - // DPI_Delimiter, having type string - ParameterId["Delimiter"] = "delimiter"; - // DPI_DeviceName, having type string - ParameterId["DeviceName"] = "deviceName"; - // DPI_DeviceType, having type string - ParameterId["DeviceType"] = "deviceType"; - // DPI_DisplayPath, having type string - ParameterId["DisplayPath"] = "displayPath"; - // DPI_DistributionValueString, having type string - ParameterId["DistributionValueString"] = "distributionValueString"; - // DPI_DrillPathName, having type string - ParameterId["DrillPathName"] = "drillPathName"; - // DPI_EmbeddedTitle, having type string - ParameterId["EmbeddedTitle"] = "embeddedTitle"; - // DPI_EnterValueText, having type string - ParameterId["EnterValueText"] = "enterValueText"; - // DPI_EscapeString, having type string - ParameterId["EscapeString"] = "escapeString"; - // DPI_ExtSvcConfigHost, having type string - ParameterId["ExtSvcConfigHost"] = "extSvcConfigHost"; - // DPI_ExtSvcConfigPassword, having type string - ParameterId["ExtSvcConfigPassword"] = "extSvcConfigPassword"; - // DPI_ExtSvcConfigPort, having type string - ParameterId["ExtSvcConfigPort"] = "extSvcConfigPort"; - // DPI_ExtSvcConfigConnectTimeout, having type string - ParameterId["ExtSvcConfigConnectTimeout"] = "extSvcConnectTimeout"; - // DPI_ExtSvcConfigPrevHost, having type string - ParameterId["ExtSvcConfigPrevHost"] = "extSvcConfigPrevHost"; - // DPI_ExtSvcConfigUsername, having type string - ParameterId["ExtSvcConfigUsername"] = "extSvcConfigUsername"; - // DPI_ExtractUpdateTime, having type string - ParameterId["ExtractUpdateTime"] = "extractUpdateTime"; - // DPI_FieldFolderName, having type string - ParameterId["FieldFolderName"] = "fieldFolderName"; - // DPI_FieldNameString, having type string - ParameterId["FieldNameString"] = "fieldName"; - // DPI_FilterSearchDomain, having type string - ParameterId["FilterSearchDomain"] = "filterSearchDomain"; - // DPI_FilterSpec, having type string - ParameterId["FilterSpec"] = "filterSpec"; - // DPI_FirstValue, having type string - ParameterId["FirstValue"] = "firstValue"; - // DPI_FolderName, having type string - ParameterId["FolderName"] = "folderName"; - // DPI_FontName, having type string - ParameterId["FontName"] = "fontName"; - // DPI_FormatString, having type string - ParameterId["FormatString"] = "formatString"; - // DPI_FormattedIncrementValue, having type string - ParameterId["FormattedIncrementValue"] = "formattedIncrement"; - // DPI_FormattedMaxValue, having type string - ParameterId["FormattedMaxValue"] = "formattedMax"; - // DPI_FormattedMinValue, having type string - ParameterId["FormattedMinValue"] = "formattedMin"; - // DPI_FormattedValue, having type string - ParameterId["FormattedValue"] = "formattedValue"; - // DPI_FormattedCenterValue, having type string - ParameterId["FormattedCenterValue"] = "formattedCenter"; - // DPI_FormattedEndValue, having type string - ParameterId["FormattedEndValue"] = "formattedEnd"; - // DPI_FormattedStartValue, having type string - ParameterId["FormattedStartValue"] = "formattedStart"; - // DPI_PairedFormattedValue, having type string - ParameterId["PairedFormattedValue"] = "pairedFormattedValue"; - // DPI_FrameAttributes, having type string - ParameterId["FrameAttributes"] = "frameAttr"; - // DPI_GUID, having type string - ParameterId["GUID"] = "guid"; - // DPI_GeographicSearchCandidateDisplayName, having type string - ParameterId["GeographicSearchCandidateDisplayName"] = "geographicSearchCandidateDisplayName"; - // DPI_GeographicSearchCandidateParentName, having type string - ParameterId["GeographicSearchCandidateParentName"] = "geographicSearchCandidateParentName"; - // DPI_GeographicSearchCandidateType, having type string - ParameterId["GeographicSearchCandidateType"] = "geographicSearchCandidateType"; - // DPI_GeographicSearchLocale, having type string - ParameterId["GeographicSearchLocale"] = "geographicSearchLocale"; - // DPI_GeographicSearchQueryString, having type string - ParameterId["GeographicSearchQueryString"] = "geographicSearchSearchString"; - // DPI_GeographicSearchUILocale, having type string - ParameterId["GeographicSearchUILocale"] = "geographicSearchUilocale"; - // DPI_IconRes, having type string - ParameterId["IconRes"] = "iconRes"; - // DPI_ImageHash, having type string - ParameterId["ImageHash"] = "imageHash"; - // DPI_ImageName, having type string - ParameterId["ImageName"] = "imageName"; - // DPI_ImageRes, having type string - ParameterId["ImageRes"] = "imageRes"; - // DPI_IncludesSiblingsPrompt, having type string - ParameterId["IncludesSiblingsPrompt"] = "includesSiblingsPrompt"; - // DPI_IncludesSubfoldersPrompt, having type string - ParameterId["IncludesSubfoldersPrompt"] = "includesSubfoldersPrompt"; - // DPI_IncrementalScheduleIDs, having type string - ParameterId["IncrementalScheduleIDs"] = "incrementalScheduleIds"; - // DPI_InvariantKeyword, having type string - ParameterId["InvariantKeyword"] = "invariantKeyword"; - // DPI_JoinOperator, having type string - ParameterId["JoinOperator"] = "joinOperator"; - // DPI_JoinExpression, having type string - ParameterId["JoinExpression"] = "joinExpression"; - // DPI_Label, having type string - ParameterId["Label"] = "label"; - // DPI_PairedLabel, having type string - ParameterId["PairedLabel"] = "pairedLabel"; - // DPI_LayoutID, having type string - ParameterId["LayoutID"] = "layoutId"; - // DPI_LeftJoinExpression, having type string - ParameterId["LeftJoinExpression"] = "leftJoinExpression"; - // DPI_LimitCountExpression, having type string - ParameterId["LimitCountExpression"] = "limitCountExpression"; - // DPI_LinkTarget, having type string - ParameterId["LinkTarget"] = "linkTarget"; - // DPI_Locale, having type string - ParameterId["Locale"] = "locale"; - // DPI_LocalizedKeyword, having type string - ParameterId["LocalizedKeyword"] = "localizedKeyword"; - // DPI_MapBoxGLStyleId, having type string - ParameterId["MapBoxGLStyleId"] = "mapboxGlStyleId"; - // DPI_MapBoxStyleUrl, having type string - ParameterId["MapBoxStyleUrl"] = "mapboxStyleUrl"; - // DPI_MapBoxUsername, having type string - ParameterId["MapBoxUsername"] = "mapboxUsername"; - // DPI_MapScaleReadoutString, having type string - ParameterId["MapScaleReadoutString"] = "mapScaleReadoutString"; - // DPI_MapScaleTooltipString, having type string - ParameterId["MapScaleTooltipString"] = "mapScaleTooltipString"; - // DPI_MapSourceName, having type string - ParameterId["MapSourceName"] = "mapSourceName"; - // DPI_MaxLabel, having type string - ParameterId["MaxLabel"] = "maxLabel"; - // DPI_MinLabel, having type string - ParameterId["MinLabel"] = "minLabel"; - // DPI_ModelDescriptionParagraph, having type string - ParameterId["ModelDescriptionParagraph"] = "modelDescriptionParagraph"; - // DPI_NameTemplate, having type string - ParameterId["NameTemplate"] = "nameTemplate"; - // DPI_NewDrillPath, having type string - ParameterId["NewDrillPath"] = "newDrillPath"; - // DPI_NewFieldFolderName, having type string - ParameterId["NewFieldFolderName"] = "newFieldFolderName"; - // DPI_NewTableAlias, having type string - ParameterId["NewTableAlias"] = "newTableAlias"; - // DPI_NonFormattedValue, having type string - ParameterId["NonFormattedValue"] = "unformattedValue"; - // DPI_OAuthUserName, having type string - ParameterId["OAuthUserName"] = "oauthUsername"; - // DPI_ObjectName, having type string - ParameterId["ObjectName"] = "objectName"; - // DPI_ObjectOverrideMessage, having type string - ParameterId["ObjectOverrideMessage"] = "objectOverrideMessage"; - // DPI_OldTableAlias, having type string - ParameterId["OldTableAlias"] = "oldTableAlias"; - // DPI_OperatingSystem, having type string - ParameterId["OperatingSystem"] = "operatingSystem"; - // DPI_OriginalFilePath, having type string - ParameterId["OriginalFilePath"] = "originalFilePath"; - // DPI_OriginalFileVersion, having type string - ParameterId["OriginalFileVersion"] = "originalFileVersion"; - // DPI_PaneDescriptorKey, having type string - ParameterId["PaneDescriptorKey"] = "paneDescrKey"; - // DPI_ParentName, having type string - ParameterId["ParentName"] = "parentName"; - // DPI_ParentTable, having type string - ParameterId["ParentTable"] = "parentTable"; - // DPI_PatternFilterString, having type string - ParameterId["PatternFilterString"] = "patternFilterString"; - // DPI_PendingCalcName, having type string - ParameterId["PendingCalcName"] = "pendingCalcName"; - // DPI_PercentilesString, having type string - ParameterId["PercentilesString"] = "percentilesString"; - // DPI_ProjectName, having type string - ParameterId["ProjectName"] = "projectName"; - // DPI_PropertyName, having type string - ParameterId["PropertyName"] = "propertyName"; - // DPI_QuickFilterTitleCaption, having type string - ParameterId["QuickFilterTitleCaption"] = "quickFilterTitleCaption"; - // DPI_RangeDiffStr, having type string - ParameterId["RangeDiffStr"] = "diffValue"; - // DPI_RangeMaxStr, having type string - ParameterId["RangeMaxStr"] = "maxValue"; - // DPI_RangeMinStr, having type string - ParameterId["RangeMinStr"] = "minValue"; - // DPI_RecoveredFilePath, having type string - ParameterId["RecoveredFilePath"] = "recoveredFilePath"; - // DPI_ReferenceLineSpecificationId, having type string - ParameterId["ReferenceLineSpecificationId"] = "referenceLineId"; - // DPI_ReplaceFieldPrompt, having type string - ParameterId["ReplaceFieldPrompt"] = "replaceFieldPrompt"; - // DPI_RightJoinExpression, having type string - ParameterId["RightJoinExpression"] = "rightJoinExpression"; - // DPI_RootPath, having type string - ParameterId["RootPath"] = "rootPath"; - // DPI_RuntimeFinalDatastore, having type string - ParameterId["RuntimeFinalDatastore"] = "runtimeFinalDatastore"; - // DPI_RuntimeInitialDatastore, having type string - ParameterId["RuntimeInitialDatastore"] = "runtimeInitialDatastore"; - // DPI_RuntimeVTL, having type string - ParameterId["RuntimeVTL"] = "runtimeVtl"; - // DPI_SampleDataString, having type string - ParameterId["SampleDataString"] = "sampleData"; - // DPI_ScheduleIDs, having type string - ParameterId["ScheduleIDs"] = "scheduleIds"; - // DPI_SchemaFieldIconResource, having type string - ParameterId["SchemaFieldIconResource"] = "fieldIconRes"; - // DPI_ScreenName, having type string - ParameterId["ScreenName"] = "screenName"; - // DPI_ScriptCommand, having type string - ParameterId["ScriptCommand"] = "command"; - // DPI_SecondValue, having type string - ParameterId["SecondValue"] = "secondValue"; - // DPI_SelectedValue, having type string - ParameterId["SelectedValue"] = "selectedValue"; - // DPI_ShapeName, having type string - ParameterId["ShapeName"] = "shapeName"; - // DPI_SheetId, having type string - ParameterId["SheetId"] = "sheetId"; - // DPI_ShowDataTable, having type string - ParameterId["ShowDataTable"] = "showDataTable"; - // DPI_SimpleCommand, having type string - ParameterId["SimpleCommand"] = "simpleCommand"; - // DPI_SortModeCaption, having type string - ParameterId["SortModeCaption"] = "sortModeCaption"; - // DPI_SourceName, having type string - ParameterId["SourceName"] = "sourceName"; - // DPI_SourceText, having type string - ParameterId["SourceText"] = "sourceText"; - // DPI_SpecialValueText, having type string - ParameterId["SpecialValueText"] = "specialValueText"; - // DPI_StaticImage, having type string - ParameterId["StaticImage"] = "staticImage"; - // DPI_StoryPointBase, having type string - ParameterId["StoryPointBase"] = "storyPointBase"; - // DPI_StoryPointCaption, having type string - ParameterId["StoryPointCaption"] = "storyPointCaption"; - // DPI_Storyboard, having type string - ParameterId["Storyboard"] = "storyboard"; - // DPI_StyledLabel, having type string - ParameterId["StyledLabel"] = "styledLabel"; - // DPI_SummaryCaption, having type string - ParameterId["SummaryCaption"] = "summaryCaption"; - // DPI_SummaryField, having type string - ParameterId["SummaryField"] = "summaryField"; - // DPI_TableauVersion, having type string - ParameterId["TableauVersion"] = "tableauVersion"; - // DPI_TableFilter, having type string - ParameterId["TableFilter"] = "tableFilter"; - // DPI_TableFilterPrompt, having type string - ParameterId["TableFilterPrompt"] = "tableFilterPrompt"; - // DPI_TagsLabel, having type string - ParameterId["TagsLabel"] = "tagsLabel"; - // DPI_Target, having type string - ParameterId["Target"] = "target"; - // DPI_ThumbnailGroup, having type string - ParameterId["ThumbnailGroup"] = "thumbnailGroup"; - // DPI_ThumbnailUser, having type string - ParameterId["ThumbnailUser"] = "thumbnailUser"; - // DPI_TimeFormat, having type string - ParameterId["TimeFormat"] = "timeFormat"; - // DPI_TrendLineErrorString, having type string - ParameterId["TrendLineErrorString"] = "trendLineErrorString"; - // DPI_TrendLineModelFormula, having type string - ParameterId["TrendLineModelFormula"] = "trendLineModelFormula"; - // DPI_URLString, having type string - ParameterId["URLString"] = "urlString"; - // DPI_URLTest, having type string - ParameterId["URLTest"] = "urlTest"; - // DPI_ValidationMessage, having type string - ParameterId["ValidationMessage"] = "validationMessage"; - // DPI_ValueStr, having type string - ParameterId["ValueStr"] = "valueString"; - // DPI_VerifiedNonFormattedValue, having type string - ParameterId["VerifiedNonFormattedValue"] = "verifiedUnformattedValue"; - // DPI_WorkbookFullPath, having type string - ParameterId["WorkbookFullPath"] = "workbookFullPath"; - // DPI_WindowTitle, having type string - ParameterId["WindowTitle"] = "windowTitle"; - // DPI_ZoneName, having type string - ParameterId["ZoneName"] = "zoneName"; - // DPI_ZoneParam, having type string - ParameterId["ZoneParam"] = "zoneParam"; - // DPI_DataAlertErrorText, having type string - ParameterId["DataAlertErrorText"] = "dataAlertErrorText"; - // DPI_ExtractTempDirectory, having type string - ParameterId["ExtractTempDirectory"] = "extractTempDir"; - // DPI_DSSubClass, having type string - ParameterId["DSSubClass"] = "dsSubClass"; - // DPI_DbgCommandLine, having type string - ParameterId["DbgCommandLine"] = "debugCommandLine"; - // DPI_DbgLogPath, having type string - ParameterId["DbgLogPath"] = "debugLogPath"; - // DPI_DbgOSVersion, having type string - ParameterId["DbgOSVersion"] = "debugOsVersion"; - // DPI_DbgUserName, having type string - ParameterId["DbgUserName"] = "debugUsername"; - // DPI_ErrorMsg, having type string - ParameterId["ErrorMsg"] = "errorMessage"; - // DPI_ErrorStr, having type string - ParameterId["ErrorStr"] = "errorString"; - // DPI_EventMessage, having type string - ParameterId["EventMessage"] = "eventMessage"; - // DPI_EventTimestamp, having type string - ParameterId["EventTimestamp"] = "eventTimestamp"; - // DPI_ExtractDeltaPath, having type string - ParameterId["ExtractDeltaPath"] = "extractDeltaPath"; - // DPI_ExtractPath, having type string - ParameterId["ExtractPath"] = "extractPath"; - // DPI_ExtractSuggestedPath, having type string - ParameterId["ExtractSuggestedPath"] = "suggestedExtractPath"; - // DPI_ExtractTaskSummary, having type string - ParameterId["ExtractTaskSummary"] = "extractTaskSummary"; - // DPI_FactorsString, having type string - ParameterId["FactorsString"] = "factorsStr"; - // DPI_FormattedFamilyName, having type string - ParameterId["FormattedFamilyName"] = "formattedFamilyName"; - // DPI_FunctionSignature, having type string - ParameterId["FunctionSignature"] = "funcSig"; - // DPI_FunctionTooltip, having type string - ParameterId["FunctionTooltip"] = "funcTooltip"; - // DPI_HelpContents, having type string - ParameterId["HelpContents"] = "helpContents"; - // DPI_MapAttributionText, having type string - ParameterId["MapAttributionText"] = "mapAttributionText"; - // DPI_MapAttributionTextSize, having type string - ParameterId["MapAttributionTextSize"] = "mapAttributionTextSize"; - // DPI_MapAttributionUrl, having type string - ParameterId["MapAttributionUrl"] = "mapAttributionUrl"; - // DPI_MapBoxErrorMessage, having type string - ParameterId["MapBoxErrorMessage"] = "mapboxErrorMessage"; - // DPI_MapBoxOldStyleName, having type string - ParameterId["MapBoxOldStyleName"] = "mapboxOldStyleName"; - // DPI_MapBoxSelectedStyle, having type string - ParameterId["MapBoxSelectedStyle"] = "mapboxSelectedStyle"; - // DPI_MapBoxStyleName, having type string - ParameterId["MapBoxStyleName"] = "mapboxStyleName"; - // DPI_MapLayerRequest, having type string - ParameterId["MapLayerRequest"] = "mapLayerRequest"; - // DPI_MapServerKey, having type string - ParameterId["MapServerKey"] = "mapServerKey"; - // DPI_MapTileServer, having type string - ParameterId["MapTileServer"] = "mapTileServer"; - // DPI_MapTileUrl, having type string - ParameterId["MapTileUrl"] = "mapTileUrl"; - // DPI_PercentagesString, having type string - ParameterId["PercentagesString"] = "percentagesStr"; - // DPI_PublishErrorMessage, having type string - ParameterId["PublishErrorMessage"] = "publishErrorMessage"; - // DPI_TdePath, having type string - ParameterId["TdePath"] = "tdePath"; - // DPI_UIAutomationComponentName, having type string - ParameterId["UIAutomationComponentName"] = "uiAutomationComponentName"; - // DPI_UIAutomationEndTime, having type string - ParameterId["UIAutomationEndTime"] = "uiAutomationEndTime"; - // DPI_UIAutomationName, having type string - ParameterId["UIAutomationName"] = "uiAutomationName"; - // DPI_UIAutomationStartTime, having type string - ParameterId["UIAutomationStartTime"] = "uiAutomationStartTime"; - // DPI_UIAutomationValue, having type string - ParameterId["UIAutomationValue"] = "uiAutomationValue"; - // DPI_WMSConnectionName, having type string - ParameterId["WMSConnectionName"] = "wmsConnectionName"; - // DPI_WMSOldConnectionName, having type string - ParameterId["WMSOldConnectionName"] = "wmsOldConnectionName"; - // DPI_WMSServerUrl, having type string - ParameterId["WMSServerUrl"] = "wmsServerUrl"; - // DPI_AboutBuildVersion, having type string - ParameterId["AboutBuildVersion"] = "aboutBuildVersion"; - // DPI_ActionFields, having type string - ParameterId["ActionFields"] = "actionFields"; - // DPI_AddVariableLabel, having type string - ParameterId["AddVariableLabel"] = "addVariableLabel"; - // DPI_AddVariableTooltip, having type string - ParameterId["AddVariableTooltip"] = "addVariableTooltip"; - // DPI_AllowedDataSourcesByName, having type string - ParameterId["AllowedDataSourcesByName"] = "allowedDataSourcesByName"; - // DPI_AppAboutVersion, having type string - ParameterId["AppAboutVersion"] = "appAboutVersion"; - // DPI_AppBuildBranchName, having type string - ParameterId["AppBuildBranchName"] = "appBuildBranchName"; - // DPI_AppBuildVersion, having type string - ParameterId["AppBuildVersion"] = "appBuildVersion"; - // DPI_AppExternalVersion, having type string - ParameterId["AppExternalVersion"] = "appExternalVersion"; - // DPI_AppName, having type string - ParameterId["AppName"] = "appName"; - // DPI_AppProductVersion, having type string - ParameterId["AppProductVersion"] = "appProductVersion"; - // DPI_OriginalVersion, having type string - ParameterId["OriginalVersion"] = "originalVersion"; - // DPI_AtTheLevelSpecialCaption, having type string - ParameterId["AtTheLevelSpecialCaption"] = "atTheLevelSpecialCaption"; - // DPI_AutoCompleteCalc, having type string - ParameterId["AutoCompleteCalc"] = "acCalc"; - // DPI_CallToAction, having type string - ParameterId["CallToAction"] = "callToAction"; - // DPI_CSVPath, having type string - ParameterId["CSVPath"] = "csvPath"; - // DPI_CommandNamespace, having type string - ParameterId["CommandNamespace"] = "commandNamespace"; - // DPI_Condition, having type string - ParameterId["Condition"] = "condition"; - // DPI_ConditionSummary, having type string - ParameterId["ConditionSummary"] = "conditionSummary"; - // DPI_ConfirmationMsg, having type string - ParameterId["ConfirmationMsg"] = "confirmationMsg"; - // DPI_DashboardTypeText, having type string - ParameterId["DashboardTypeText"] = "dashboardType"; - // DPI_DataserverPublicAddress, having type string - ParameterId["DataserverPublicAddress"] = "dataserverPublicAddress"; - // DPI_DatasourceFileName, having type string - ParameterId["DatasourceFileName"] = "datasourceFileName"; - // DPI_DecimalMark, having type string - ParameterId["DecimalMark"] = "decimalMark"; - // DPI_DeleteVariableTooltip, having type string - ParameterId["DeleteVariableTooltip"] = "deleteVariableTooltip"; - // DPI_DialogTitle, having type string - ParameterId["DialogTitle"] = "dialogTitle"; - // DPI_DisplayValue, having type string - ParameterId["DisplayValue"] = "displayValue"; - // DPI_TooltipValue, having type string - ParameterId["TooltipValue"] = "tooltipValue"; - // DPI_DstPath, having type string - ParameterId["DstPath"] = "dstPath"; - // DPI_EditWidgetHeader, having type string - ParameterId["EditWidgetHeader"] = "editWidgetHeader"; - // DPI_EditWidgetInstruction, having type string - ParameterId["EditWidgetInstruction"] = "editWidgetInstruction"; - // DPI_EndSelectionCaption, having type string - ParameterId["EndSelectionCaption"] = "endSelectionCaption"; - // DPI_ErrorDialogTitle, having type string - ParameterId["ErrorDialogTitle"] = "errorDialogTitle"; - // DPI_ErrorHelpLink, having type string - ParameterId["ErrorHelpLink"] = "errorHelpLink"; - // DPI_FilterSearchQuery, having type string - ParameterId["FilterSearchQuery"] = "filterSearchQuery"; - // DPI_FromLabel, having type string - ParameterId["FromLabel"] = "fromLabel"; - // DPI_FunctionHelp, having type string - ParameterId["FunctionHelp"] = "functionHelp"; - // DPI_Instructions, having type string - ParameterId["Instructions"] = "instructions"; - // DPI_LargeUnitDisplay, having type string - ParameterId["LargeUnitDisplay"] = "largeUnitDisplay"; - // DPI_Limit, having type string - ParameterId["Limit"] = "limit"; - // DPI_ListViewNameLabel, having type string - ParameterId["ListViewNameLabel"] = "listViewNameLabel"; - // DPI_ListViewValueLabel, having type string - ParameterId["ListViewValueLabel"] = "listViewValueLabel"; - // DPI_MapScaleReadoutUnit, having type string - ParameterId["MapScaleReadoutUnit"] = "mapScaleReadoutUnit"; - // DPI_MeasureDimension, having type string - ParameterId["MeasureDimension"] = "measuresDimension"; - // DPI_MimeType, having type string - ParameterId["MimeType"] = "mimeType"; - // DPI_MinimizedName, having type string - ParameterId["MinimizedName"] = "minName"; - // DPI_NotificationMsg, having type string - ParameterId["NotificationMsg"] = "notificationMsg"; - // DPI_OperationName, having type string - ParameterId["OperationName"] = "operationName"; - // DPI_PageTitle, having type string - ParameterId["PageTitle"] = "pageTitle"; - // DPI_PatternSummary, having type string - ParameterId["PatternSummary"] = "patternSummary"; - // DPI_ReferenceLineId, having type string - ParameterId["ReferenceLineId"] = "refLineId"; - // DPI_ReferenceLinePairedId, having type string - ParameterId["ReferenceLinePairedId"] = "refLinePairedId"; - // DPI_ReplaceText, having type string - ParameterId["ReplaceText"] = "replaceText"; - // DPI_RequiredVariableMessage, having type string - ParameterId["RequiredVariableMessage"] = "requiredVariableMessage"; - // DPI_RestartEverySpecialCaption, having type string - ParameterId["RestartEverySpecialCaption"] = "restartEverySpecialCaption"; - // DPI_Root, having type string - ParameterId["Root"] = "root"; - // DPI_SelectionSummary, having type string - ParameterId["SelectionSummary"] = "selectionSummary"; - // DPI_SessionAttributeKey, having type string - ParameterId["SessionAttributeKey"] = "sessionAttributeKey"; - // DPI_SessionAttributeValue, having type string - ParameterId["SessionAttributeValue"] = "sessionAttributeValue"; - // DPI_SheetAttributeKey, having type string - ParameterId["SheetAttributeKey"] = "baseSheetAttributeKey"; - // DPI_SheetAttributeValue, having type string - ParameterId["SheetAttributeValue"] = "baseSheetAttributeValue"; - // DPI_SmallUnitDisplay, having type string - ParameterId["SmallUnitDisplay"] = "smallUnitDisplay"; - // DPI_SourceCaption, having type string - ParameterId["SourceCaption"] = "sourceCaption"; - // DPI_SrcPath, having type string - ParameterId["SrcPath"] = "srcPath"; - // DPI_StartSelectionCaption, having type string - ParameterId["StartSelectionCaption"] = "startSelectionCaption"; - // DPI_Subtitle, having type string - ParameterId["Subtitle"] = "subtitle"; - // DPI_TableauServerSiteName, having type string - ParameterId["TableauServerSiteName"] = "tableauServerSiteName"; - // DPI_TargetCaption, having type string - ParameterId["TargetCaption"] = "targetCaption"; - // DPI_ThumbnailPath, having type string - ParameterId["ThumbnailPath"] = "thumbnailPath"; - // DPI_ToLabel, having type string - ParameterId["ToLabel"] = "toLabel"; - // DPI_URLAddress, having type string - ParameterId["URLAddress"] = "urlAddress"; - // DPI_ValuesTableHeader, having type string - ParameterId["ValuesTableHeader"] = "valuesTableHeader"; - // DPI_ValuesTableHeader2, having type string - ParameterId["ValuesTableHeader2"] = "valuesTableHeader2"; - // DPI_VariableDescription, having type string - ParameterId["VariableDescription"] = "variableDescription"; - // DPI_VariableDisplayName, having type string - ParameterId["VariableDisplayName"] = "variableDisplayName"; - // DPI_VariableGUID, having type string - ParameterId["VariableGUID"] = "variableGuid"; - // DPI_VerboseName, having type string - ParameterId["VerboseName"] = "verboseName"; - // DPI_ViewId, having type string - ParameterId["ViewId"] = "viewId"; - // DPI_Warning1, having type string - ParameterId["Warning1"] = "warning1"; - // DPI_Warning2, having type string - ParameterId["Warning2"] = "warning2"; - // DPI_RefreshToken, having type string - ParameterId["RefreshToken"] = "refresh_token"; - // DPI_TokenType, having type string - ParameterId["TokenType"] = "token_type"; - // DPI_XSRFToken, having type string - ParameterId["XSRFToken"] = "xsrf_token"; - // DPI_AxisSubtitle, having type string - ParameterId["AxisSubtitle"] = "axisSubtitle"; - // DPI_AxisTitle, having type string - ParameterId["AxisTitle"] = "axisTitle"; - // DPI_TickMarkOriginDataValue, having type string - ParameterId["TickMarkOriginDataValue"] = "tickMarkOriginDataValue"; - // DPI_TickMarkSpacingDataValue, having type string - ParameterId["TickMarkSpacingDataValue"] = "tickMarkSpacingDataValue"; - // DPI_ExtractActionLocalized, having type string - ParameterId["ExtractActionLocalized"] = "extractActionLocalized"; - // DPI_ExtractSource, having type string - ParameterId["ExtractSource"] = "extractSource"; - // DPI_FileContents, having type string - ParameterId["FileContents"] = "fileContents"; - // DPI_SaveImagePath, having type string - ParameterId["SaveImagePath"] = "saveImagePath"; - // DPI_WidgetUID, having type string - ParameterId["WidgetUID"] = "widgetUniqueId"; - // DPI_DatePropertiesDisplayText, having type string - ParameterId["DatePropertiesDisplayText"] = "datePropertiesDisplayText"; - // DPI_DatePropertiesHelperText, having type string - ParameterId["DatePropertiesHelperText"] = "datePropertiesHelperText"; - // DPI_EventName, having type string - ParameterId["EventName"] = "eventName"; - // DPI_ExceptionType, having type string - ParameterId["ExceptionType"] = "exceptionType"; - // DPI_SearchPlaceholder, having type string - ParameterId["SearchPlaceholder"] = "searchPlaceholder"; - // DPI_TargetVersion, having type string - ParameterId["TargetVersion"] = "targetVersion"; - // DPI_DataValueDisplayString, having type string - ParameterId["DataValueDisplayString"] = "dataValueDisplayString"; - // DPI_DomainString, having type string - ParameterId["DomainString"] = "domainString"; - // DPI_RawDataValueString, having type string - ParameterId["RawDataValueString"] = "rawDataValueString"; - // DPI_RichTextDialogTitle, having type string - ParameterId["RichTextDialogTitle"] = "richTextDialogTitle"; - // DPI_RichTextContent, having type string - ParameterId["RichTextContent"] = "richTextContent"; - // DPI_MarkSizeAsString, having type string - ParameterId["MarkSizeAsString"] = "markSizeAsString"; - // DPI_UnitsLabel, having type string - ParameterId["UnitsLabel"] = "unitsLabel"; - // DPI_EmailAddress, having type string - ParameterId["EmailAddress"] = "emailAddress"; - // DPI_FirstName, having type string - ParameterId["FirstName"] = "firstName"; - // DPI_LastName, having type string - ParameterId["LastName"] = "lastName"; - // DPI_SummaryCardAvg, having type string - ParameterId["SummaryCardAvg"] = "summaryCardAvg"; - // DPI_SummaryCardCaption, having type string - ParameterId["SummaryCardCaption"] = "summaryCardCaption"; - // DPI_SummaryCardCount, having type string - ParameterId["SummaryCardCount"] = "summaryCardCount"; - // DPI_SummaryCardKurtosis, having type string - ParameterId["SummaryCardKurtosis"] = "summaryCardKurtosis"; - // DPI_SummaryCardMax, having type string - ParameterId["SummaryCardMax"] = "summaryCardMax"; - // DPI_SummaryCardMedian, having type string - ParameterId["SummaryCardMedian"] = "summaryCardMedian"; - // DPI_SummaryCardMin, having type string - ParameterId["SummaryCardMin"] = "summaryCardMin"; - // DPI_SummaryCardQuart1, having type string - ParameterId["SummaryCardQuart1"] = "summaryCardQuart1"; - // DPI_SummaryCardQuart3, having type string - ParameterId["SummaryCardQuart3"] = "summaryCardQuart3"; - // DPI_SummaryCardSkewness, having type string - ParameterId["SummaryCardSkewness"] = "summaryCardSkewness"; - // DPI_SummaryCardStdev, having type string - ParameterId["SummaryCardStdev"] = "summaryCardStdev"; - // DPI_SummaryCardSum, having type string - ParameterId["SummaryCardSum"] = "summaryCardSum"; - // DPI_ValueClassAttr, having type string - ParameterId["ValueClassAttr"] = "valueClassAttr"; - // DPI_AuthenticationSummary, having type string - ParameterId["AuthenticationSummary"] = "authenticationSummary"; - // DPI_BtnCancelText, having type string - ParameterId["BtnCancelText"] = "btnCancelText"; - // DPI_BtnOkText, having type string - ParameterId["BtnOkText"] = "btnOkText"; - // DPI_ButtonText, having type string - ParameterId["ButtonText"] = "buttonText"; - // DPI_CalculationCaption, having type string - ParameterId["CalculationCaption"] = "calculationCaption"; - // DPI_CalculationDependencies, having type string - ParameterId["CalculationDependencies"] = "calculationDependencies"; - // DPI_CalculationFormula, having type string - ParameterId["CalculationFormula"] = "calculationFormula"; - // DPI_CheckPublishMessage, having type string - ParameterId["CheckPublishMessage"] = "checkPublishSummary"; - // DPI_ClusterModelText, having type string - ParameterId["ClusterModelText"] = "clusterModelText"; - // DPI_ClusterSummaryScaledText, having type string - ParameterId["ClusterSummaryScaledText"] = "clusterSummaryScaledText"; - // DPI_ClusterSummaryText, having type string - ParameterId["ClusterSummaryText"] = "clusterSummaryText"; - // DPI_ColumnCaption, having type string - ParameterId["ColumnCaption"] = "columnCaption"; - // DPI_DatasourceCaption, having type string - ParameterId["DatasourceCaption"] = "datasourceCaption"; - // DPI_DefaultCaption, having type string - ParameterId["DefaultCaption"] = "defaultCaption"; - // DPI_DisplayString, having type string - ParameterId["DisplayString"] = "displayText"; - // DPI_DragDescription, having type string - ParameterId["DragDescription"] = "dragDescription"; - // DPI_ExceptionMessage, having type string - ParameterId["ExceptionMessage"] = "exceptionMessage"; - // DPI_Explanation, having type string - ParameterId["Explanation"] = "explanation"; - // DPI_FieldCaption, having type string - ParameterId["FieldCaption"] = "fieldCaption"; - // DPI_FieldSummary, having type string - ParameterId["FieldSummary"] = "fieldSummary"; - // DPI_FieldSummaryLabel, having type string - ParameterId["FieldSummaryLabel"] = "fieldSummaryLabel"; - // DPI_FilterDescription, having type string - ParameterId["FilterDescription"] = "filterDescription"; - // DPI_FilterName, having type string - ParameterId["FilterName"] = "filterName"; - // DPI_ForecastDiagnoseText, having type string - ParameterId["ForecastDiagnoseText"] = "forecastDiagnoseText"; - // DPI_ForecastModelText, having type string - ParameterId["ForecastModelText"] = "forecastModelText"; - // DPI_ForecastSummaryPctText, having type string - ParameterId["ForecastSummaryPctText"] = "forecastSummaryPctText"; - // DPI_ForecastSummaryText, having type string - ParameterId["ForecastSummaryText"] = "forecastSummaryText"; - // DPI_HasActiveExtractText, having type string - ParameterId["HasActiveExtractText"] = "hasActiveExtractText"; - // DPI_HtmlColor, having type string - ParameterId["HtmlColor"] = "htmlColor"; - // DPI_IncludeLocalFilesCheckedWarning, having type string - ParameterId["IncludeLocalFilesCheckedWarning"] = "includeLocalFilesCheckedWarning"; - // DPI_IncludeLocalFilesWarning, having type string - ParameterId["IncludeLocalFilesWarning"] = "includeLocalFilesWarning"; - // DPI_InvalidFieldCaption, having type string - ParameterId["InvalidFieldCaption"] = "invalidFieldCaption"; - // DPI_LimitSummary, having type string - ParameterId["LimitSummary"] = "limitSummary"; - // DPI_LoadedExistingObjectWarning, having type string - ParameterId["LoadedExistingObjectWarning"] = "loadedExistingObjectWarning"; - // DPI_ManageDatasourcesSummary, having type string - ParameterId["ManageDatasourcesSummary"] = "manageDatasourcesSummary"; - // DPI_ModalDialog, having type string - ParameterId["ModalDialog"] = "modalDialog"; - // DPI_NewDatasourceCaption, having type string - ParameterId["NewDatasourceCaption"] = "newDatasourceCaption"; - // DPI_PermissionsButtonLabel, having type string - ParameterId["PermissionsButtonLabel"] = "permissionsButtonLabel"; - // DPI_PermissionsEditorRoleId, having type string - ParameterId["PermissionsEditorRoleId"] = "permissionsEditorRoleId"; - // DPI_PermissionsLabel, having type string - ParameterId["PermissionsLabel"] = "permissionsLabel"; - // DPI_PerspectiveCaption, having type string - ParameterId["PerspectiveCaption"] = "perspectiveCaption"; - // DPI_PublishButtonLabel, having type string - ParameterId["PublishButtonLabel"] = "publishButtonLabel"; - // DPI_PublishChoiceLabel, having type string - ParameterId["PublishChoiceLabel"] = "publishChoiceLabel"; - // DPI_PublishObjectViewsSummary, having type string - ParameterId["PublishObjectViewsSummary"] = "publishObjectViewsSummary"; - // DPI_QualifiedFieldCaption, having type string - ParameterId["QualifiedFieldCaption"] = "qualifiedFieldCaption"; - // DPI_RelationshipTooltipText, having type string - ParameterId["RelationshipTooltipText"] = "relationshipTooltipText"; - // DPI_ResetObjectAttributesWarning, having type string - ParameterId["ResetObjectAttributesWarning"] = "resetObjectAttributesWarning"; - // DPI_RowCountCaption, having type string - ParameterId["RowCountCaption"] = "rowCountCaption"; - // DPI_ServerCaption, having type string - ParameterId["ServerCaption"] = "serverCaption"; - // DPI_SizeModeName, having type string - ParameterId["SizeModeName"] = "sizeModeName"; - // DPI_SummaryText, having type string - ParameterId["SummaryText"] = "summaryText"; - // DPI_SyncClientUseExtractLabel, having type string - ParameterId["SyncClientUseExtractLabel"] = "syncClientUseExtractLabel"; - // DPI_Text, having type string - ParameterId["Text"] = "text"; - // DPI_TextDropdownControlLabel, having type string - ParameterId["TextDropdownControlLabel"] = "controlLabel"; - // DPI_ThumbnailUserName, having type string - ParameterId["ThumbnailUserName"] = "thumbnailUserName"; - // DPI_TitleString, having type string - ParameterId["TitleString"] = "titleString"; - // DPI_TooltipText, having type string - ParameterId["TooltipText"] = "tooltipText"; - // DPI_UpdatedCalcCaption, having type string - ParameterId["UpdatedCalcCaption"] = "updatedCalculationCaption"; - // DPI_UpdatedCalcFormula, having type string - ParameterId["UpdatedCalcFormula"] = "updatedCalculationFormula"; - // DPI_UserCaption, having type string - ParameterId["UserCaption"] = "userCaption"; - // DPI_WarningTooltipText, having type string - ParameterId["WarningTooltipText"] = "warningTooltipText"; - // DPI_DatasourceFile, having type string - ParameterId["DatasourceFile"] = "datasourceFile"; - // DPI_File, having type string - ParameterId["File"] = "file"; - // DPI_FileNameBase, having type string - ParameterId["FileNameBase"] = "filenameBase"; - // DPI_NewFile, having type string - ParameterId["NewFile"] = "newFile"; - // DPI_OriginalFile, having type string - ParameterId["OriginalFile"] = "originalFile"; - // DPI_OutputFile, having type string - ParameterId["OutputFile"] = "outputFile"; - // DPI_SampleFileName, having type string - ParameterId["SampleFileName"] = "sampleFilename"; - // DPI_WorkbookFile, having type string - ParameterId["WorkbookFile"] = "workbookFile"; - // DPI_ImageKey, having type string - ParameterId["ImageKey"] = "imageKey"; - // DPI_OverlayImageKey, having type string - ParameterId["OverlayImageKey"] = "overlayImageKey"; - // DPI_TempFileKey, having type string - ParameterId["TempFileKey"] = "tempfileKey"; - // DPI_CapturedSheet, having type string - ParameterId["CapturedSheet"] = "capturedSheet"; - // DPI_CurrentSheet, having type string - ParameterId["CurrentSheet"] = "currentSheet"; - // DPI_Dashboard, having type string - ParameterId["Dashboard"] = "dashboard"; - // DPI_EnsureSheet, having type string - ParameterId["EnsureSheet"] = "ensureSheetName"; - // DPI_NewSheet, having type string - ParameterId["NewSheet"] = "newSheet"; - // DPI_Sheet, having type string - ParameterId["Sheet"] = "sheet"; - // DPI_SheetName, having type string - ParameterId["SheetName"] = "sheetName"; - // DPI_SourceDashboard, having type string - ParameterId["SourceDashboard"] = "sourceDashboard"; - // DPI_SourceSheet, having type string - ParameterId["SourceSheet"] = "sourceSheet"; - // DPI_TargetSheet, having type string - ParameterId["TargetSheet"] = "targetSheet"; - // DPI_WorkbookName, having type string - ParameterId["WorkbookName"] = "workbookName"; - // DPI_Worksheet, having type string - ParameterId["Worksheet"] = "worksheet"; - // DPI_BaseViewThumbLink, having type string - ParameterId["BaseViewThumbLink"] = "baseViewThumbLink"; - // DPI_BlogLink, having type string - ParameterId["BlogLink"] = "blogLink"; - // DPI_CacheUrl, having type string - ParameterId["CacheUrl"] = "cacheUrl"; - // DPI_DownloadLink, having type string - ParameterId["DownloadLink"] = "downloadLink"; - // DPI_RepositoryUrl, having type string - ParameterId["RepositoryUrl"] = "repositoryUrl"; - // DPI_ShareLink, having type string - ParameterId["ShareLink"] = "shareLink"; - // DPI_URL, having type string - ParameterId["URL"] = "url"; - // DPI_ClusterModelHtml, having type string - ParameterId["ClusterModelHtml"] = "clusterModelHtml"; - // DPI_ClusterSummaryHtml, having type string - ParameterId["ClusterSummaryHtml"] = "clusterSummaryHtml"; - // DPI_ClusterSummaryScaledHtml, having type string - ParameterId["ClusterSummaryScaledHtml"] = "clusterSummaryScaledHtml"; - // DPI_FieldDescription, having type string - ParameterId["FieldDescription"] = "fieldDescription"; - // DPI_ForecastDiagnoseHtml, having type string - ParameterId["ForecastDiagnoseHtml"] = "forecastDiagnoseHtml"; - // DPI_ForecastModelHtml, having type string - ParameterId["ForecastModelHtml"] = "forecastModelHtml"; - // DPI_ForecastSummaryHtml, having type string - ParameterId["ForecastSummaryHtml"] = "forecastSummaryHtml"; - // DPI_ForecastSummaryPctHtml, having type string - ParameterId["ForecastSummaryPctHtml"] = "forecastSummaryPctHtml"; - // DPI_Html, having type string - ParameterId["Html"] = "html"; - // DPI_HtmlSelection, having type string - ParameterId["HtmlSelection"] = "htmlSelection"; - // DPI_HtmlTooltip, having type string - ParameterId["HtmlTooltip"] = "htmlTooltip"; - // DPI_TitleHtml, having type string - ParameterId["TitleHtml"] = "titleHtml"; - // DPI_CacheUrlInfoJson, having type string - ParameterId["CacheUrlInfoJson"] = "cacheUrlInfoJson"; - // DPI_FilterSearchJson, having type string - ParameterId["FilterSearchJson"] = "filterSearchJson"; - // DPI_FilterSearchWithIndexJson, having type string - ParameterId["FilterSearchWithIndexJson"] = "filterSearchWithIndexJson"; - // DPI_FilterShowChildrenJson, having type string - ParameterId["FilterShowChildrenJson"] = "filterShowChildrenJson"; - // DPI_FiltersJson, having type string - ParameterId["FiltersJson"] = "filtersJson"; - // DPI_FrameJson, having type string - ParameterId["FrameJson"] = "frameJson"; - // DPI_GeometryJson, having type string - ParameterId["GeometryJson"] = "geometryJson"; - // DPI_GetFilterItemsJson, having type string - ParameterId["GetFilterItemsJson"] = "getFilterItemsJson"; - // DPI_KeepOnlyResponseJson, having type string - ParameterId["KeepOnlyResponseJson"] = "keepOnlyResponseJson"; - // DPI_MenuCommandsJson, having type string - ParameterId["MenuCommandsJson"] = "menuCommandsJson"; - // DPI_ModifiedSheetsJson, having type string - ParameterId["ModifiedSheetsJson"] = "modifiedSheetsJson"; - // DPI_ParameterCtrlJson, having type string - ParameterId["ParameterCtrlJson"] = "parameterCtrlJson"; - // DPI_ViewJson, having type string - ParameterId["ViewJson"] = "viewJson"; - // DPI_CustomizedViewXML, having type string - ParameterId["CustomizedViewXML"] = "customizedViewXml"; - // DPI_DatasourceDeltaXML, having type string - ParameterId["DatasourceDeltaXML"] = "datasourceDeltaXml"; - // DPI_DatasourceXML, having type string - ParameterId["DatasourceXML"] = "datasourceXml"; - // DPI_KeychainXML, having type string - ParameterId["KeychainXML"] = "keychainXml"; - // DPI_PermissionsModelXML, having type string - ParameterId["PermissionsModelXML"] = "permissionsModelXml"; - // DPI_SharedViewsXML, having type string - ParameterId["SharedViewsXML"] = "sharedViewsXml"; - // DPI_TargetURL, having type string - ParameterId["TargetURL"] = "targetUrl"; - // DPI_Anchor, having type string - ParameterId["Anchor"] = "anchor"; - // DPI_CenterValue, having type string - ParameterId["CenterValue"] = "centerValue"; - // DPI_ComputedBinSize, having type string - ParameterId["ComputedBinSize"] = "computedBinSize"; - // DPI_ConstantValue, having type string - ParameterId["ConstantValue"] = "constantValue"; - // DPI_PairedConstantValue, having type string - ParameterId["PairedConstantValue"] = "pairedConstantValue"; - // DPI_CountDistinct, having type string - ParameterId["CountDistinct"] = "countDistinct"; - // DPI_DataMax, having type string - ParameterId["DataMax"] = "dataMax"; - // DPI_DataMin, having type string - ParameterId["DataMin"] = "dataMin"; - // DPI_EndValue, having type string - ParameterId["EndValue"] = "endValue"; - // DPI_RangeMax, having type string - ParameterId["RangeMax"] = "rangeMax"; - // DPI_RangeMin, having type string - ParameterId["RangeMin"] = "rangeMin"; - // DPI_RangeStepSize, having type string - ParameterId["RangeStepSize"] = "rangeStepSize"; - // DPI_StartValue, having type string - ParameterId["StartValue"] = "startValue"; - // DPI_TargetValue, having type string - ParameterId["TargetValue"] = "targetValue"; - // DPI_ValueInc, having type string - ParameterId["ValueInc"] = "valueInc"; - // DPI_ValueMax, having type string - ParameterId["ValueMax"] = "valueMax"; - // DPI_ValueMin, having type string - ParameterId["ValueMin"] = "valueMin"; - // DPI_QuantilesValue, having type string - ParameterId["QuantilesValue"] = "quantilesValue"; - // DPI_UserInputBinSize, having type string - ParameterId["UserInputBinSize"] = "userBinSize"; - // DPI_AddedDataSources, having type string[] - ParameterId["AddedDataSources"] = "addedDataSourceNames"; - // DPI_AddressingCaptions, having type string[] - ParameterId["AddressingCaptions"] = "addressingCaptions"; - // DPI_AggregationCaptions, having type string[] - ParameterId["AggregationCaptions"] = "aggregationCaptions"; - // DPI_AtTheLevelCaptions, having type string[] - ParameterId["AtTheLevelCaptions"] = "atTheLevelCaptions"; - // DPI_AuthenticationSettingLabels, having type string[] - ParameterId["AuthenticationSettingLabels"] = "authenticationSettingLabels"; - // DPI_AutosaveFileIdsVector, having type string[] - ParameterId["AutosaveFileIdsVector"] = "autosaveFileIdsVector"; - // DPI_ChangedTuples, having type string[] - ParameterId["ChangedTuples"] = "changedTuples"; - // DPI_CharsetsAvailable, having type string[] - ParameterId["CharsetsAvailable"] = "charsetsAvailable"; - // DPI_CharsetDisplayNames, having type string[] - ParameterId["CharsetDisplayNames"] = "charsetDisplayNames"; - // DPI_ColorFactors, having type string[] - ParameterId["ColorFactors"] = "colorFactors"; - // DPI_ColumnFullNames, having type string[] - ParameterId["ColumnFullNames"] = "columnFullNames"; - // DPI_ConnectionNames, having type string[] - ParameterId["ConnectionNames"] = "connectionNames"; - // DPI_ConnectionCaptions, having type string[] - ParameterId["ConnectionCaptions"] = "connectionCaptions"; - // DPI_ConnectionBigQueryLegacySQLCheckBox, having type string[] - ParameterId["ConnectionBigQueryLegacySQLCheckBox"] = "connectionBigqueryLegacySqlCheckbox"; - // DPI_CustomFieldOrder, having type string[] - ParameterId["CustomFieldOrder"] = "customFieldOrder"; - // DPI_DataSourceClasses, having type string[] - ParameterId["DataSourceClasses"] = "dataSourceClasses"; - // DPI_DataSourceNames, having type string[] - ParameterId["DataSourceNames"] = "dataSourceNames"; - // DPI_DataSourceNames2, having type string[] - ParameterId["DataSourceNames2"] = "dataSourceNames2"; - // DPI_DateFormats, having type string[] - ParameterId["DateFormats"] = "dateFormats"; - // DPI_DayNames, having type string[] - ParameterId["DayNames"] = "dayNames"; - // DPI_DrillPathVector, having type string[] - ParameterId["DrillPathVector"] = "drillpathVector"; - // DPI_ErrorDetails, having type string[] - ParameterId["ErrorDetails"] = "errorDetails"; - // DPI_ExceptionMessageParams, having type string[] - ParameterId["ExceptionMessageParams"] = "exceptionMessageParams"; - // DPI_ExcludedSheets, having type string[] - ParameterId["ExcludedSheets"] = "excludeSheets"; - // DPI_FieldDisplayNames, having type string[] - ParameterId["FieldDisplayNames"] = "fieldDisplayNames"; - // DPI_FieldFolderVector, having type string[] - ParameterId["FieldFolderVector"] = "fieldFolderVector"; - // DPI_FileIds, having type string[] - ParameterId["FileIds"] = "fileIds"; - // DPI_FilePaths, having type string[] - ParameterId["FilePaths"] = "filePaths"; - // DPI_FileNames, having type string[] - ParameterId["FileNames"] = "fileNames"; - // DPI_FilterAdd, having type string[] - ParameterId["FilterAdd"] = "filterAdd"; - // DPI_FilterAliases, having type string[] - ParameterId["FilterAliases"] = "filterValues"; - // DPI_FilterRemove, having type string[] - ParameterId["FilterRemove"] = "filterRemove"; - // DPI_FixedCaptions, having type string[] - ParameterId["FixedCaptions"] = "fixedCaptions"; - // DPI_FontFamilies, having type string[] - ParameterId["FontFamilies"] = "fontFamilies"; - // DPI_FormatStrings, having type string[] - ParameterId["FormatStrings"] = "formatStrings"; - // DPI_FormattedValues, having type string[] - ParameterId["FormattedValues"] = "formattedValues"; - // DPI_FoundTuples, having type string[] - ParameterId["FoundTuples"] = "foundTuples"; - // DPI_FullSchedulesLabels, having type string[] - ParameterId["FullSchedulesLabels"] = "fullSchedulesLabels"; - // DPI_ImageResourceList, having type string[] - ParameterId["ImageResourceList"] = "imageResources"; - // DPI_IncludeList, having type string[] - ParameterId["IncludeList"] = "includeList"; - // DPI_IncrSchedulesLabels, having type string[] - ParameterId["IncrSchedulesLabels"] = "incrSchedulesLabels"; - // DPI_InvalidDates, having type string[] - ParameterId["InvalidDates"] = "invalidDates"; - // DPI_InvalidValues, having type string[] - ParameterId["InvalidValues"] = "invalidValues"; - // DPI_ItemValues, having type string[] - ParameterId["ItemValues"] = "itemValues"; - // DPI_JoinEditableProps, having type string[] - ParameterId["JoinEditableProps"] = "joinEditableProps"; - // DPI_JoinFieldCaptions, having type string[] - ParameterId["JoinFieldCaptions"] = "joinFieldCaptions"; - // DPI_LocaleOptions, having type string[] - ParameterId["LocaleOptions"] = "localeOptions"; - // DPI_LocaleDisplayNames, having type string[] - ParameterId["LocaleDisplayNames"] = "localeDisplayNames"; - // DPI_MapBoxStyleMaps, having type string[] - ParameterId["MapBoxStyleMaps"] = "mapboxStyleMaps"; - // DPI_MapConnectionErrorDetails, having type string[] - ParameterId["MapConnectionErrorDetails"] = "mapConnectionErrorDetails"; - // DPI_SheetNames, having type string[] - ParameterId["SheetNames"] = "sheetNames"; - // DPI_MapSourceNames, having type string[] - ParameterId["MapSourceNames"] = "mapSourceNames"; - // DPI_MarkGeometries, having type string[] - ParameterId["MarkGeometries"] = "markGeometries"; - // DPI_MenuItems, having type string[] - ParameterId["MenuItems"] = "menuItems"; - // DPI_Modes, having type string[] - ParameterId["Modes"] = "modes"; - // DPI_MonthNames, having type string[] - ParameterId["MonthNames"] = "monthNames"; - // DPI_NumberFormats, having type string[] - ParameterId["NumberFormats"] = "numberFormats"; - // DPI_ObjectTextIDs, having type string[] - ParameterId["ObjectTextIDs"] = "objectTextIds"; - // DPI_OldExtracts, having type string[] - ParameterId["OldExtracts"] = "oldExtracts"; - // DPI_OrderingTypeCaptions, having type string[] - ParameterId["OrderingTypeCaptions"] = "orderingTypeCaptions"; - // DPI_PageNames, having type string[] - ParameterId["PageNames"] = "pageNames"; - // DPI_PaneDescriptorKeys, having type string[] - ParameterId["PaneDescriptorKeys"] = "paneDescriptorKeys"; - // DPI_ParamCaptions, having type string[] - ParameterId["ParamCaptions"] = "paramCaptions"; - // DPI_PrecannedDataValues, having type string[] - ParameterId["PrecannedDataValues"] = "precannedDataValues"; - // DPI_PublishChoiceLabels, having type string[] - ParameterId["PublishChoiceLabels"] = "publishChoiceLabels"; - // DPI_RankTypeCaptions, having type string[] - ParameterId["RankTypeCaptions"] = "rankTypeCaptions"; - // DPI_RecentTags, having type string[] - ParameterId["RecentTags"] = "recentTags"; - // DPI_RelativeCaptions, having type string[] - ParameterId["RelativeCaptions"] = "relativeCaptions"; - // DPI_RemovedDataSources, having type string[] - ParameterId["RemovedDataSources"] = "removedDataSourceNames"; - // DPI_RepresentativeTuple, having type string[] - ParameterId["RepresentativeTuple"] = "representativeTuple"; - // DPI_RestartEveryCaptions, having type string[] - ParameterId["RestartEveryCaptions"] = "restartEveryCaptions"; - // DPI_SchemaMemberGlobalNames, having type string[] - ParameterId["SchemaMemberGlobalNames"] = "schemaMemberGlobalNames"; - // DPI_SelectValuesList, having type string[] - ParameterId["SelectValuesList"] = "selectValues"; - // DPI_SelectionValueList, having type string[] - ParameterId["SelectionValueList"] = "selectionValueList"; - // DPI_SortAggCaptions, having type string[] - ParameterId["SortAggCaptions"] = "sortAggCaptions"; - // DPI_SortDirectionCaptions, having type string[] - ParameterId["SortDirectionCaptions"] = "sortDirectionCaptions"; - // DPI_SortFieldCaptions, having type string[] - ParameterId["SortFieldCaptions"] = "sortFieldCaptions"; - // DPI_SortFieldNameVector, having type string[] - ParameterId["SortFieldNameVector"] = "sortFieldnameVector"; - // DPI_SupportedJoinOperators, having type string[] - ParameterId["SupportedJoinOperators"] = "supportedJoinOperators"; - // DPI_TableCalcTypeCaptions, having type string[] - ParameterId["TableCalcTypeCaptions"] = "tableCalcTypeCaptions"; - // DPI_Tags, having type string[] - ParameterId["Tags"] = "tags"; - // DPI_TermVec, having type string[] - ParameterId["TermVec"] = "termVector"; - // DPI_UIAutomationList, having type string[] - ParameterId["UIAutomationList"] = "uiAutomationList"; - // DPI_ReferenceLineValidCustomLabelTags, having type string[] - ParameterId["ReferenceLineValidCustomLabelTags"] = "validReferenceLineCustomLabelTags"; - // DPI_LocalizedKeywords, having type string[] - ParameterId["LocalizedKeywords"] = "localizedKeywords"; - // DPI_AvailableCalendars, having type string[] - ParameterId["AvailableCalendars"] = "availableCalendars"; - // DPI_SheetsToBeDeletedOrHidden, having type string[] - ParameterId["SheetsToBeDeletedOrHidden"] = "sheetsToBeDeletedOrHidden"; - // DPI_AddSheets, having type string[] - ParameterId["AddSheets"] = "addSheets"; - // DPI_NamesOfSubsheets, having type string[] - ParameterId["NamesOfSubsheets"] = "namesOfSubsheets"; - // DPI_RemoveSheets, having type string[] - ParameterId["RemoveSheets"] = "removeSheets"; - // DPI_ScrollOffsetSheets, having type string[] - ParameterId["ScrollOffsetSheets"] = "scrollOffsetSheets"; - // DPI_Sheets, having type string[] - ParameterId["Sheets"] = "sheets"; - // DPI_SourceWorksheets, having type string[] - ParameterId["SourceWorksheets"] = "sourceWorksheets"; - // DPI_TargetExcludes, having type string[] - ParameterId["TargetExcludes"] = "targetExclude"; - // DPI_TargetWorksheets, having type string[] - ParameterId["TargetWorksheets"] = "targetWorksheets"; - // DPI_TileURLs, having type string[] - ParameterId["TileURLs"] = "tileUrls"; - // DPI_Details, having type string[] - ParameterId["Details"] = "details"; - // DPI_FieldCaptions, having type string[] - ParameterId["FieldCaptions"] = "fieldCaptions"; - // DPI_HighlightCaptions, having type string[] - ParameterId["HighlightCaptions"] = "highlightCaptions"; - // DPI_LevelCaptions, having type string[] - ParameterId["LevelCaptions"] = "levelCaptions"; - // DPI_LevelLeafValues, having type string[] - ParameterId["LevelLeafValues"] = "levelLeafValues"; - // DPI_SubstitutionVariables, having type string[] - ParameterId["SubstitutionVariables"] = "substitutionVariables"; - // DPI_SubstitutionVariableValues, having type string[] - ParameterId["SubstitutionVariableValues"] = "substitutionVariableValues"; - // DPI_HtmlTooltips, having type string[] - ParameterId["HtmlTooltips"] = "htmlTooltips"; - // DPI_InvalidFields, having type string[] - ParameterId["InvalidFields"] = "invalidFields"; - // DPI_NamesOfColumns, having type string[] - ParameterId["NamesOfColumns"] = "namesOfColumns"; - // DPI_NamesOfFields, having type string[] - ParameterId["NamesOfFields"] = "namesOfFields"; - // DPI_ReferencedDatasources, having type string[] - ParameterId["ReferencedDatasources"] = "referencedDataSourceList"; - // DPI_CSSAttrs, having type Dictionary(of string) - ParameterId["CSSAttrs"] = "cssAttrs"; - // DPI_DataSourceMap, having type Dictionary(of string) - ParameterId["DataSourceMap"] = "dataSourceMap"; - // DPI_EventParameters, having type Dictionary(of string) - ParameterId["EventParameters"] = "eventParameters"; - // DPI_ExceptionAttrs, having type Dictionary(of string) - ParameterId["ExceptionAttrs"] = "exceptionAttrs"; - // DPI_InvalidSheetMessage, having type Dictionary(of string) - ParameterId["InvalidSheetMessage"] = "invalidSheetMessages"; - // DPI_MapBoxDefaultStyle, having type Dictionary(of string) - ParameterId["MapBoxDefaultStyle"] = "mapboxDefaultStyles"; - // DPI_PaneFormattings, having type Dictionary(of string) - ParameterId["PaneFormattings"] = "paneFormattings"; - // DPI_SourceNameWithCaption, having type Dictionary(of string) - ParameterId["SourceNameWithCaption"] = "sourceNameWithCaption"; - // DPI_ConnectionColorMap, having type Dictionary(of string) - ParameterId["ConnectionColorMap"] = "connectionColorMap"; - // DPI_TargetNameWithCaption, having type Dictionary(of string) - ParameterId["TargetNameWithCaption"] = "targetNameWithCaption"; - // DPI_ViewIds, having type Dictionary(of string) - ParameterId["ViewIds"] = "viewIds"; - // DPI_AddInSettings, having type Dictionary(of string) - ParameterId["AddInSettings"] = "addInSettings"; - // DPI_DatasourceIcons, having type Dictionary(of string) - ParameterId["DatasourceIcons"] = "datasourceIcons"; - // DPI_FormattedText, having type string - ParameterId["FormattedText"] = "formattedText"; - // DPI_IconTooltip, having type string - ParameterId["IconTooltip"] = "iconTooltip"; - // DPI_Title, having type string - ParameterId["Title"] = "title"; - // DPI_Tooltip, having type string - ParameterId["Tooltip"] = "tooltip"; - // DPI_ZoneText, having type string - ParameterId["ZoneText"] = "zoneText"; - // DPI_AlignmentFlags, having type int - ParameterId["AlignmentFlags"] = "alignmentFlags"; - // DPI_AlphaLevel, having type int - ParameterId["AlphaLevel"] = "alphaLevel"; - // DPI_AnovaDF, having type int - ParameterId["AnovaDF"] = "anovaDf"; - // DPI_AtTheLevelIndex, having type int - ParameterId["AtTheLevelIndex"] = "atTheLevelIndex"; - // DPI_AutomaticDrillIdxInVector, having type int - ParameterId["AutomaticDrillIdxInVector"] = "automaticDrillIdxVector"; - // DPI_AutoSize, having type int - ParameterId["AutoSize"] = "automaticSize"; - // DPI_BaseCoord, having type int - ParameterId["BaseCoord"] = "baseCoord"; - // DPI_CalcEditorCursorPosPostDrop, having type int - ParameterId["CalcEditorCursorPosPostDrop"] = "calcEditorCursorPosPostDrop"; - // DPI_CalcEditorDropPos, having type int - ParameterId["CalcEditorDropPos"] = "calcEditorDropPos"; - // DPI_CalcEditorTextSelectionEndPos, having type int - ParameterId["CalcEditorTextSelectionEndPos"] = "calcEditorTextSelectionEndPos"; - // DPI_CalcEditorTextSelectionStartPos, having type int - ParameterId["CalcEditorTextSelectionStartPos"] = "calcEditorTextSelectionStartPos"; - // DPI_CategoricalBinId, having type int - ParameterId["CategoricalBinId"] = "categoricalBinId"; - // DPI_CategoricalFindControllerId, having type int - ParameterId["CategoricalFindControllerId"] = "categoricalFindControllerId"; - // DPI_ClauseToModifyIndex, having type int - ParameterId["ClauseToModifyIndex"] = "clauseToModifyIndex"; - // DPI_ClientRenderPixelLimit, having type int - ParameterId["ClientRenderPixelLimit"] = "clientRenderPixelLimit"; - // DPI_ColCount, having type int - ParameterId["ColCount"] = "colCount"; - // DPI_ColWidth, having type int - ParameterId["ColWidth"] = "colWidth"; - // DPI_ColumnLevels, having type int - ParameterId["ColumnLevels"] = "columnLevels"; - // DPI_ColumnNumber, having type int - ParameterId["ColumnNumber"] = "columnNumber"; - // DPI_ColumnWidth, having type int - ParameterId["ColumnWidth"] = "columnWidth"; - // DPI_ContentHeight, having type int - ParameterId["ContentHeight"] = "contentH"; - // DPI_ContentWidth, having type int - ParameterId["ContentWidth"] = "contentW"; - // DPI_ContentX, having type int - ParameterId["ContentX"] = "contentX"; - // DPI_ContentY, having type int - ParameterId["ContentY"] = "contentY"; - // DPI_CurDateAgg, having type int - ParameterId["CurDateAgg"] = "curDateAgg"; - // DPI_CurrentCustViewId, having type int - ParameterId["CurrentCustViewId"] = "currentCustomViewId"; - // DPI_CustomSplitCharacterCountSeparator, having type int - ParameterId["CustomSplitCharacterCountSeparator"] = "customSplitCharacterCountSeparator"; - // DPI_CustomSplitDesiredSplitCount, having type int - ParameterId["CustomSplitDesiredSplitCount"] = "customSplitDesiredSplitCount"; - // DPI_DashboardGridSize, having type int - ParameterId["DashboardGridSize"] = "dashboardGridSize"; - // DPI_DataIndex, having type int - ParameterId["DataIndex"] = "dataIndex"; - // DPI_DecimalPlaces, having type int - ParameterId["DecimalPlaces"] = "decimalPlaces"; - // DPI_DeltaTime, having type int - ParameterId["DeltaTime"] = "deltaTime"; - // DPI_DestPix, having type int - ParameterId["DestPix"] = "destPix"; - // DPI_DeviceIndex, having type int - ParameterId["DeviceIndex"] = "deviceIndex"; - // DPI_Duration, having type int - ParameterId["Duration"] = "duration"; - // DPI_EndPtX, having type int - ParameterId["EndPtX"] = "endX"; - // DPI_EndPtY, having type int - ParameterId["EndPtY"] = "endY"; - // DPI_ErrorLen, having type int - ParameterId["ErrorLen"] = "lengthOfCalcOfError"; - // DPI_ErrorPos, having type int - ParameterId["ErrorPos"] = "startPositionForError"; - // DPI_ExceptionErrorMessageId, having type int - ParameterId["ExceptionErrorMessageId"] = "exceptionErrorMessageId"; - // DPI_ExtentsH, having type int - ParameterId["ExtentsH"] = "extentsHeight"; - // DPI_ExtentsW, having type int - ParameterId["ExtentsW"] = "extentsWidth"; - // DPI_ExtentsX, having type int - ParameterId["ExtentsX"] = "extentsX"; - // DPI_ExtentsY, having type int - ParameterId["ExtentsY"] = "extentsY"; - // DPI_FieldIndex, having type int - ParameterId["FieldIndex"] = "fieldIndex"; - // DPI_FieldNameId, having type int - ParameterId["FieldNameId"] = "fieldNameId"; - // DPI_FirstDayOfWeek, having type int - ParameterId["FirstDayOfWeek"] = "firstDayOfWeek"; - // DPI_FirstValueIndex, having type int - ParameterId["FirstValueIndex"] = "firstValueIndex"; - // DPI_FixedSizePresetIndex, having type int - ParameterId["FixedSizePresetIndex"] = "fixedSizePresetIndex"; - // DPI_FocusItemIndex, having type int - ParameterId["FocusItemIndex"] = "focusItemIndex"; - // DPI_FontSize, having type int - ParameterId["FontSize"] = "fontSize"; - // DPI_ForecastIntRangeEnd, having type int - ParameterId["ForecastIntRangeEnd"] = "forecastIntRangeEnd"; - // DPI_ForecastIntRangeStart, having type int - ParameterId["ForecastIntRangeStart"] = "forecastIntRangeStart"; - // DPI_FunctionHelpIndex, having type int - ParameterId["FunctionHelpIndex"] = "functionHelpIndex"; - // DPI_GeographicSearchMaxResults, having type int - ParameterId["GeographicSearchMaxResults"] = "geographicSearchMaxResults"; - // DPI_Height, having type int - ParameterId["Height"] = "h"; - // DPI_HierarchyLevel, having type int - ParameterId["HierarchyLevel"] = "hierarchyLevel"; - // DPI_HierarchyLevelLoaded, having type int - ParameterId["HierarchyLevelLoaded"] = "hierarchyLevelLoaded"; - // DPI_HierarchyLevelMinimum, having type int - ParameterId["HierarchyLevelMinimum"] = "hierarchyLevelMinimum"; - // DPI_HierarchyLoadLimit, having type int - ParameterId["HierarchyLoadLimit"] = "hierarchyLoadLimit"; - // DPI_HierarchySelectControllerId, having type int - ParameterId["HierarchySelectControllerId"] = "hierarchySelectControllerId"; - // DPI_HorzTextCell, having type int - ParameterId["HorzTextCell"] = "horzTextCell"; - // DPI_ImageIndex, having type int - ParameterId["ImageIndex"] = "imageIndex"; - // DPI_ImageSizeLimit, having type int - ParameterId["ImageSizeLimit"] = "imageSizeLimit"; - // DPI_TransparentLineMarksLimit, having type int - ParameterId["TransparentLineMarksLimit"] = "transparentLineMarksLimit"; - // DPI_Indent, having type int - ParameterId["Indent"] = "indent"; - // DPI_Index, having type int - ParameterId["Index"] = "idx"; - // DPI_IndexFrom, having type int - ParameterId["IndexFrom"] = "indexFrom"; - // DPI_IndexOffset, having type int - ParameterId["IndexOffset"] = "indexOffset"; - // DPI_IndexTo, having type int - ParameterId["IndexTo"] = "indexTo"; - // DPI_InlineConnectionRenameRow, having type int - ParameterId["InlineConnectionRenameRow"] = "inlineConnectionRenameRow"; - // DPI_InsertPos, having type int - ParameterId["InsertPos"] = "insertPos"; - // DPI_IsHasDataSupported, having type int - ParameterId["IsHasDataSupported"] = "isHasDataSupported"; - // DPI_LeftMargin, having type int - ParameterId["LeftMargin"] = "leftMargin"; - // DPI_LeftRightBorderWidth, having type int - ParameterId["LeftRightBorderWidth"] = "leftRightBorderWidth"; - // DPI_LowerBound, having type int - ParameterId["LowerBound"] = "lowerBound"; - // DPI_MapRequestPixels, having type int - ParameterId["MapRequestPixels"] = "mapRequestPixels"; - // DPI_MapScaleFontSizePixels, having type int - ParameterId["MapScaleFontSizePixels"] = "mapScaleFontSizePixels"; - // DPI_MapScaleReadoutNumber, having type int - ParameterId["MapScaleReadoutNumber"] = "mapScaleReadoutNumber"; - // DPI_MapScaleWidth, having type int - ParameterId["MapScaleWidth"] = "mapScaleWidth"; - // DPI_MapTileSize, having type int - ParameterId["MapTileSize"] = "mapTileSize"; - // DPI_Margin, having type int - ParameterId["Margin"] = "margin"; - // DPI_MarginBottom, having type int - ParameterId["MarginBottom"] = "marginBottom"; - // DPI_MarginLeft, having type int - ParameterId["MarginLeft"] = "marginLeft"; - // DPI_MarginRight, having type int - ParameterId["MarginRight"] = "marginRight"; - // DPI_MarginTop, having type int - ParameterId["MarginTop"] = "marginTop"; - // DPI_MaxCell, having type int - ParameterId["MaxCell"] = "maxCell"; - // DPI_MaxItemSpan, having type int - ParameterId["MaxItemSpan"] = "maxItemSpan"; - // DPI_MaxPolynomialDegree, having type int - ParameterId["MaxPolynomialDegree"] = "maxDegree"; - // DPI_MaxPosition, having type int - ParameterId["MaxPosition"] = "maxPosition"; - // DPI_MaxSize, having type int - ParameterId["MaxSize"] = "maxSize"; - // DPI_MinCell, having type int - ParameterId["MinCell"] = "minCell"; - // DPI_MinPolynomialDegree, having type int - ParameterId["MinPolynomialDegree"] = "minDegree"; - // DPI_MinPosition, having type int - ParameterId["MinPosition"] = "minPosition"; - // DPI_MinSize, having type int - ParameterId["MinSize"] = "minSize"; - // DPI_ModelDF, having type int - ParameterId["ModelDF"] = "modelDf"; - // DPI_NewIndex, having type int - ParameterId["NewIndex"] = "newIndex"; - // DPI_NumDataSourcesUsingServer, having type int - ParameterId["NumDataSourcesUsingServer"] = "numDataSourcesUsingServer"; - // DPI_NumFilteredObs, having type int - ParameterId["NumFilteredObs"] = "filteredObservations"; - // DPI_NumModeledObs, having type int - ParameterId["NumModeledObs"] = "modeledObservations"; - // DPI_NumNotClustered, having type int - ParameterId["NumNotClustered"] = "numNotClustered"; - // DPI_NumNumericFields, having type int - ParameterId["NumNumericFields"] = "numNumericFields"; - // DPI_NumOutliers, having type int - ParameterId["NumOutliers"] = "numOutliers"; - // DPI_NumRows, having type int - ParameterId["NumRows"] = "numRows"; - // DPI_NumSelected, having type int - ParameterId["NumSelected"] = "numSelected"; - // DPI_OffsetX, having type int - ParameterId["OffsetX"] = "offsetX"; - // DPI_OffsetY, having type int - ParameterId["OffsetY"] = "offsetY"; - // DPI_Padding, having type int - ParameterId["Padding"] = "padding"; - // DPI_PaddingBottom, having type int - ParameterId["PaddingBottom"] = "paddingBottom"; - // DPI_PaddingLeft, having type int - ParameterId["PaddingLeft"] = "paddingLeft"; - // DPI_PaddingRight, having type int - ParameterId["PaddingRight"] = "paddingRight"; - // DPI_PaddingTop, having type int - ParameterId["PaddingTop"] = "paddingTop"; - // DPI_PageLoadPercentage, having type int - ParameterId["PageLoadPercentage"] = "pageLoadPercentage"; - // DPI_PaletteIndex, having type int - ParameterId["PaletteIndex"] = "paletteIndex"; - // DPI_PaneSpecificationId, having type int - ParameterId["PaneSpecificationId"] = "paneSpec"; - // DPI_ParameterCtrlIncrementsPerTick, having type int - ParameterId["ParameterCtrlIncrementsPerTick"] = "parameterControlIncrementMultiplier"; - // DPI_PolynomialDegree, having type int - ParameterId["PolynomialDegree"] = "degree"; - // DPI_Port, having type int - ParameterId["Port"] = "datasourcePort"; - // DPI_Position, having type int - ParameterId["Position"] = "position"; - // DPI_PublishResultStringId, having type int - ParameterId["PublishResultStringId"] = "publishResultStringId"; - // DPI_Radius, having type int - ParameterId["Radius"] = "radius"; - // DPI_ReadoutOffset, having type int - ParameterId["ReadoutOffset"] = "readoutOffset"; - // DPI_ReferenceIndex, having type int - ParameterId["ReferenceIndex"] = "referenceIndex"; - // DPI_RegionHeight, having type int - ParameterId["RegionHeight"] = "regionHeight"; - // DPI_RegionWidth, having type int - ParameterId["RegionWidth"] = "regionWidth"; - // DPI_RemovedDatasourceCount, having type int - ParameterId["RemovedDatasourceCount"] = "removedDatasourceCount"; - // DPI_RemovedSheetCount, having type int - ParameterId["RemovedSheetCount"] = "removedSheetCount"; - // DPI_ResidualDF, having type int - ParameterId["ResidualDF"] = "residualDf"; - // DPI_ResizeColumn, having type int - ParameterId["ResizeColumn"] = "resizeColumn"; - // DPI_RestartEveryIndex, having type int - ParameterId["RestartEveryIndex"] = "restartEveryIndex"; - // DPI_RightMargin, having type int - ParameterId["RightMargin"] = "rightMargin"; - // DPI_RowCount, having type int - ParameterId["RowCount"] = "rowCount"; - // DPI_RowHeight, having type int - ParameterId["RowHeight"] = "rowHeight"; - // DPI_RowInnerLevels, having type int - ParameterId["RowInnerLevels"] = "rowInnerLevels"; - // DPI_RowLevels, having type int - ParameterId["RowLevels"] = "rowLevels"; - // DPI_RowNumber, having type int - ParameterId["RowNumber"] = "rowNumber"; - // DPI_RowWidth, having type int - ParameterId["RowWidth"] = "rowWidth"; - // DPI_SecondValueIndex, having type int - ParameterId["SecondValueIndex"] = "secondValueIndex"; - // DPI_SecondsAgo, having type int - ParameterId["SecondsAgo"] = "secondsAgo"; - // DPI_SelectionEnd, having type int - ParameterId["SelectionEnd"] = "selectionEnd"; - // DPI_SelectionStart, having type int - ParameterId["SelectionStart"] = "selectionStart"; - // DPI_ShapePaletteID, having type int - ParameterId["ShapePaletteID"] = "shapePaletteId"; - // DPI_SheetIndex, having type int - ParameterId["SheetIndex"] = "sheetIndex"; - // DPI_ShelfPositionIndex, having type int - ParameterId["ShelfPositionIndex"] = "shelfPosIndex"; - // DPI_Size, having type int - ParameterId["Size"] = "size"; - // DPI_SizeDifference, having type int - ParameterId["SizeDifference"] = "sizeDelta"; - // DPI_SnapDistance, having type int - ParameterId["SnapDistance"] = "snapDistance"; - // DPI_SnapLocation, having type int - ParameterId["SnapLocation"] = "snapLocation"; - // DPI_SolveOrder, having type int - ParameterId["SolveOrder"] = "solveOrder"; - // DPI_SpaceBetweenPoints, having type int - ParameterId["SpaceBetweenPoints"] = "spaceBetweenPoints"; - // DPI_StepSize, having type int - ParameterId["StepSize"] = "stepSize"; - // DPI_Steps, having type int - ParameterId["Steps"] = "steps"; - // DPI_StoryPointIndex, having type int - ParameterId["StoryPointIndex"] = "currentStorypointIndex"; - // DPI_StyleLen, having type int - ParameterId["StyleLen"] = "tokenLengthForStyle"; - // DPI_StylePos, having type int - ParameterId["StylePos"] = "tokenPositionForStyle"; - // DPI_SwatchAreaWidth, having type int - ParameterId["SwatchAreaWidth"] = "swatchWidth"; - // DPI_TargetBinId, having type int - ParameterId["TargetBinId"] = "targetBinId"; - // DPI_TargetPtX, having type int - ParameterId["TargetPtX"] = "targetX"; - // DPI_TargetPtY, having type int - ParameterId["TargetPtY"] = "targetY"; - // DPI_TileFactor, having type int - ParameterId["TileFactor"] = "tileFactor"; - // DPI_TitleHeight, having type int - ParameterId["TitleHeight"] = "titleHeight"; - // DPI_TitleWidth, having type int - ParameterId["TitleWidth"] = "titleWidth"; - // DPI_TopBottomBorderWidth, having type int - ParameterId["TopBottomBorderWidth"] = "topBottomBorderWidth"; - // DPI_UIAutomationLineSize, having type int - ParameterId["UIAutomationLineSize"] = "uiAutomationLineSize"; - // DPI_UIAutomationPageSize, having type int - ParameterId["UIAutomationPageSize"] = "uiAutomationPageSize"; - // DPI_UID, having type int - ParameterId["UID"] = "uid"; - // DPI_UpperBound, having type int - ParameterId["UpperBound"] = "upperBound"; - // DPI_VertTextCell, having type int - ParameterId["VertTextCell"] = "vertTextCell"; - // DPI_Width, having type int - ParameterId["Width"] = "w"; - // DPI_X, having type int - ParameterId["X"] = "x"; - // DPI_Y, having type int - ParameterId["Y"] = "y"; - // DPI_ZOrder, having type int - ParameterId["ZOrder"] = "zOrder"; - // DPI_ZoneIconIndex, having type int - ParameterId["ZoneIconIndex"] = "zoneIconIndex"; - // DPI_AliasIndices, having type int[] - ParameterId["AliasIndices"] = "aliasIndices"; - // DPI_AnovaDFVec, having type int[] - ParameterId["AnovaDFVec"] = "anovaDfVector"; - // DPI_ColumnIndices, having type int[] - ParameterId["ColumnIndices"] = "columnIndices"; - // DPI_DrillFieldIndices, having type int[] - ParameterId["DrillFieldIndices"] = "drillFieldIndices"; - // DPI_FilterMaxIndices, having type int[] - ParameterId["FilterMaxIndices"] = "filterMaxIndices"; - // DPI_FilterMinIndices, having type int[] - ParameterId["FilterMinIndices"] = "filterMinIndices"; - // DPI_FilterValuesIndices, having type int[] - ParameterId["FilterValuesIndices"] = "filterValueIndices"; - // DPI_FormatStringIndices, having type int[] - ParameterId["FormatStringIndices"] = "formatstrIndices"; - // DPI_FormattedValIndices, having type int[] - ParameterId["FormattedValIndices"] = "formatValIdxs"; - // DPI_PaletteIndices, having type int[] - ParameterId["PaletteIndices"] = "palettesIndices"; - // DPI_PaneIndices, having type int[] - ParameterId["PaneIndices"] = "paneIndices"; - // DPI_Points, having type int[] - ParameterId["Points"] = "points"; - // DPI_QuickFilterSettings, having type int[] - ParameterId["QuickFilterSettings"] = "quickFilterSettings"; - // DPI_SelectedIndices, having type int[] - ParameterId["SelectedIndices"] = "selectedIndices"; - // DPI_ShelfPositionIndices, having type int[] - ParameterId["ShelfPositionIndices"] = "shelfPosIndices"; - // DPI_TileBox, having type int[] - ParameterId["TileBox"] = "tileBox"; - // DPI_TrailOverride, having type int[] - ParameterId["TrailOverride"] = "trailOverride"; - // DPI_UIDs, having type int[] - ParameterId["UIDs"] = "uids"; - // DPI_ValueIndices, having type int[] - ParameterId["ValueIndices"] = "valueIndices"; - // DPI_XCellOffsets, having type int[] - ParameterId["XCellOffsets"] = "xCellOffsets"; - // DPI_XPixelOffsets, having type int[] - ParameterId["XPixelOffsets"] = "xPixelOffsets"; - // DPI_YCellOffsets, having type int[] - ParameterId["YCellOffsets"] = "yCellOffsets"; - // DPI_YPixelOffsets, having type int[] - ParameterId["YPixelOffsets"] = "yPixelOffsets"; - // DPI_IntMap, having type Dictionary(of int) - ParameterId["IntMap"] = "intMap"; - // DPI_SelectedAuthSettingIndices, having type Dictionary(of int) - ParameterId["SelectedAuthSettingIndices"] = "selectedAuthSettingIndices"; - // DPI_ActiveStoryPointID, having type uint - ParameterId["ActiveStoryPointID"] = "activeStoryPointId"; - // DPI_ActiveZoneID, having type uint - ParameterId["ActiveZoneID"] = "activeZoneId"; - // DPI_ActualSize, having type uint - ParameterId["ActualSize"] = "actualSize"; - // DPI_AddInDebugPort, having type uint - ParameterId["AddInDebugPort"] = "addInDebugPort"; - // DPI_AggregationIndex, having type uint - ParameterId["AggregationIndex"] = "aggregationIndex"; - // DPI_AnnotationID, having type uint - ParameterId["AnnotationID"] = "annotationId"; - // DPI_AssignedAliasCount, having type uint - ParameterId["AssignedAliasCount"] = "assignedAliasCount"; - // DPI_CapabilityId, having type uint - ParameterId["CapabilityId"] = "capabilityId"; - // DPI_CaretIndex, having type uint - ParameterId["CaretIndex"] = "caretIndex"; - // DPI_CellID, having type uint - ParameterId["CellID"] = "cellId"; - // DPI_ColumnIndex, having type uint - ParameterId["ColumnIndex"] = "columnIndex"; - // DPI_CommandID, having type uint - ParameterId["CommandID"] = "id"; - // DPI_CommandIndex, having type uint - ParameterId["CommandIndex"] = "index"; - // DPI_ControllerId, having type uint - ParameterId["ControllerId"] = "controllerId"; - // DPI_Count, having type uint - ParameterId["Count"] = "count"; - // DPI_URowCount, having type uint - ParameterId["URowCount"] = "uRowCount"; - // DPI_UColumnCount, having type uint - ParameterId["UColumnCount"] = "uColumnCount"; - // DPI_CurrentPage, having type uint - ParameterId["CurrentPage"] = "currentPage"; - // DPI_DatePeriodsCount, having type uint - ParameterId["DatePeriodsCount"] = "datePeriodsCount"; - // DPI_Decimals, having type uint - ParameterId["Decimals"] = "decimals"; - // DPI_DefaultHeight, having type uint - ParameterId["DefaultHeight"] = "defaultHeight"; - // DPI_DefaultItem, having type uint - ParameterId["DefaultItem"] = "defaultItem"; - // DPI_DefaultWidth, having type uint - ParameterId["DefaultWidth"] = "defaultWidth"; - // DPI_Depth, having type uint - ParameterId["Depth"] = "depth"; - // DPI_DetailID, having type uint - ParameterId["DetailID"] = "detailId"; - // DPI_DrillLevel, having type uint - ParameterId["DrillLevel"] = "drillLevel"; - // DPI_DuplicateIndex, having type uint - ParameterId["DuplicateIndex"] = "duplicateIndex"; - // DPI_EndIndex, having type uint - ParameterId["EndIndex"] = "endIndex"; - // DPI_FieldIconIdx, having type uint - ParameterId["FieldIconIdx"] = "fieldIconIdx"; - // DPI_FilterLevel, having type uint - ParameterId["FilterLevel"] = "filterLevel"; - // DPI_FilterTileSize, having type uint - ParameterId["FilterTileSize"] = "filterTileSize"; - // DPI_FiscalYearStart, having type uint - ParameterId["FiscalYearStart"] = "fiscalYearStart"; - // DPI_FitPagesAcross, having type uint - ParameterId["FitPagesAcross"] = "pageFitHorizontal"; - // DPI_FitPagesDown, having type uint - ParameterId["FitPagesDown"] = "pageFitVertical"; - // DPI_FixedIndex, having type uint - ParameterId["FixedIndex"] = "fixedIndex"; - // DPI_FlipboardZoneID, having type uint - ParameterId["FlipboardZoneID"] = "flipboardZoneId"; - // DPI_ForecastAutoRangeSize, having type uint - ParameterId["ForecastAutoRangeSize"] = "forecastAutoRangeSize"; - // DPI_ForecastEndOfRange, having type uint - ParameterId["ForecastEndOfRange"] = "forecastEndOfRange"; - // DPI_ForecastIgnoreLast, having type uint - ParameterId["ForecastIgnoreLast"] = "forecastIgnoreLast"; - // DPI_ForecastNextRangeSize, having type uint - ParameterId["ForecastNextRangeSize"] = "forecastNextRangeSize"; - // DPI_GroupFlags, having type uint - ParameterId["GroupFlags"] = "groupFlag"; - // DPI_HierarchyLevels, having type uint - ParameterId["HierarchyLevels"] = "hierarchyLevels"; - // DPI_HierarchyMemberId, having type uint - ParameterId["HierarchyMemberId"] = "hierarchyMemberId"; - // DPI_HitTestFlags, having type uint - ParameterId["HitTestFlags"] = "hitTestFlags"; - // DPI_ImageHeight, having type uint - ParameterId["ImageHeight"] = "imageHeight"; - // DPI_ImageWidth, having type uint - ParameterId["ImageWidth"] = "imageWidth"; - // DPI_ItemIndex, having type uint - ParameterId["ItemIndex"] = "itemIndex"; - // DPI_ItemIndex1, having type uint - ParameterId["ItemIndex1"] = "itemIndex1"; - // DPI_LineHeight, having type uint - ParameterId["LineHeight"] = "lineHeight"; - // DPI_MapIntermediateLevels, having type uint - ParameterId["MapIntermediateLevels"] = "mapIntermediateLevels"; - // DPI_MapWorldRepeats, having type uint - ParameterId["MapWorldRepeats"] = "mapWorldRepeats"; - // DPI_MaxAlpha, having type uint - ParameterId["MaxAlpha"] = "maxAlpha"; - // DPI_MaxHeight, having type uint - ParameterId["MaxHeight"] = "maxHeight"; - // DPI_MaxNumberWebListItems, having type uint - ParameterId["MaxNumberWebListItems"] = "maxNumberWebListItems"; - // DPI_MaxPrevOrNextValues, having type uint - ParameterId["MaxPrevOrNextValues"] = "maxPrevOrNextValues"; - // DPI_MaxRows, having type uint - ParameterId["MaxRows"] = "maxRows"; - // DPI_MaxTransparency, having type uint - ParameterId["MaxTransparency"] = "colorMaxTransparencyValue"; - // DPI_MaxWidth, having type uint - ParameterId["MaxWidth"] = "maxWidth"; - // DPI_MinColumns, having type uint - ParameterId["MinColumns"] = "minColumns"; - // DPI_MinHeight, having type uint - ParameterId["MinHeight"] = "minHeight"; - // DPI_MinPrevOrNextValues, having type uint - ParameterId["MinPrevOrNextValues"] = "minPrevOrNextValues"; - // DPI_MinTransparency, having type uint - ParameterId["MinTransparency"] = "colorMinTransparencyValue"; - // DPI_MinWidth, having type uint - ParameterId["MinWidth"] = "minWidth"; - // DPI_NestedCalcsIndex, having type uint - ParameterId["NestedCalcsIndex"] = "nestedCalcsIndex"; - // DPI_NextValues, having type uint - ParameterId["NextValues"] = "nextValues"; - // DPI_NodeLevel, having type uint - ParameterId["NodeLevel"] = "nodeLevel"; - // DPI_NumHighlighted, having type uint - ParameterId["NumHighlighted"] = "numHighlighted"; - // DPI_NumberOfNextValues, having type uint - ParameterId["NumberOfNextValues"] = "numberOfNextValues"; - // DPI_NumberOfPrevValues, having type uint - ParameterId["NumberOfPrevValues"] = "numberOfPrevValues"; - // DPI_ObjectID, having type uint - ParameterId["ObjectID"] = "objectId"; - // DPI_OrderingTypeIndex, having type uint - ParameterId["OrderingTypeIndex"] = "orderingTypeIndex"; - // DPI_PageCount, having type uint - ParameterId["PageCount"] = "pageCount"; - // DPI_PageFadeEnd, having type uint - ParameterId["PageFadeEnd"] = "fadeEnd"; - // DPI_PageFadeStart, having type uint - ParameterId["PageFadeStart"] = "fadeStart"; - // DPI_PageIndex, having type uint - ParameterId["PageIndex"] = "pageIndex"; - // DPI_PageNumber, having type uint - ParameterId["PageNumber"] = "pageNumber"; - // DPI_PageScalePercent, having type uint - ParameterId["PageScalePercent"] = "pageScalePercent"; - // DPI_PageTrailLength, having type uint - ParameterId["PageTrailLength"] = "historyLength"; - // DPI_PaletteFlagsVal, having type uint - ParameterId["PaletteFlagsVal"] = "paletteFlagsVal"; - // DPI_PaneIndex, having type uint - ParameterId["PaneIndex"] = "paneIndex"; - // DPI_ParamCtrlDisplayFlags, having type uint - ParameterId["ParamCtrlDisplayFlags"] = "paramDisplayFlags"; - // DPI_ParentZoneID, having type uint - ParameterId["ParentZoneID"] = "parentZoneId"; - // DPI_PercentileParam, having type uint - ParameterId["PercentileParam"] = "percentileParam"; - // DPI_PrevValues, having type uint - ParameterId["PrevValues"] = "prevValues"; - // DPI_QRGBColor, having type uint - ParameterId["QRGBColor"] = "qrgbColor"; - // DPI_RangeN, having type uint - ParameterId["RangeN"] = "rangeN"; - // DPI_RankTypeIndex, having type uint - ParameterId["RankTypeIndex"] = "rankTypeIndex"; - // DPI_RenderComplexity, having type uint - ParameterId["RenderComplexity"] = "renderComplexityLimit"; - // DPI_RowIndex, having type uint - ParameterId["RowIndex"] = "rowIndex"; - // DPI_SelectedAuthSettingIndex, having type uint - ParameterId["SelectedAuthSettingIndex"] = "selectedAuthSettingIndex"; - // DPI_SelectedFullScheduleIndex, having type uint - ParameterId["SelectedFullScheduleIndex"] = "selectedFullScheduleIndex"; - // DPI_SelectedIncrScheduleIndex, having type uint - ParameterId["SelectedIncrScheduleIndex"] = "selectedIncrScheduleIndex"; - // DPI_SelectedPublishChoiceIndex, having type uint - ParameterId["SelectedPublishChoiceIndex"] = "selectedPublishChoiceIndex"; - // DPI_SelectedMemberCount, having type uint - ParameterId["SelectedMemberCount"] = "selectedMemberCount"; - // DPI_ShapeID, having type uint - ParameterId["ShapeID"] = "shapeId"; - // DPI_SheetUseCount, having type uint - ParameterId["SheetUseCount"] = "useCount"; - // DPI_ShelfItemID, having type uint - ParameterId["ShelfItemID"] = "shelfItemId"; - // DPI_SigFigs, having type uint - ParameterId["SigFigs"] = "sigFigs"; - // DPI_SortAggIndex, having type uint - ParameterId["SortAggIndex"] = "sortAggIndvValues"; - // DPI_SortColumnIndex, having type uint - ParameterId["SortColumnIndex"] = "sortColumnIndex"; - // DPI_SortDirectionIndex, having type uint - ParameterId["SortDirectionIndex"] = "sortDirectionIndex"; - // DPI_SortFieldIndex, having type uint - ParameterId["SortFieldIndex"] = "sortFieldIndex"; - // DPI_StartIndex, having type uint - ParameterId["StartIndex"] = "startIndex"; - // DPI_StartOfWeek, having type uint - ParameterId["StartOfWeek"] = "startOfWeek"; - // DPI_StoryPointID, having type uint - ParameterId["StoryPointID"] = "storyPointId"; - // DPI_TableCalcTypeIndex, having type uint - ParameterId["TableCalcTypeIndex"] = "tableCalcTypeIndex"; - // DPI_TableCalcTypesUsed, having type uint - ParameterId["TableCalcTypesUsed"] = "tableCalcTypesUsed"; - // DPI_TemplateIndex, having type uint - ParameterId["TemplateIndex"] = "templateIndex"; - // DPI_TileCount, having type uint - ParameterId["TileCount"] = "tileCount"; - // DPI_TimeoutSeconds, having type uint - ParameterId["TimeoutSeconds"] = "timeoutSeconds"; - // DPI_TopN, having type uint - ParameterId["TopN"] = "topN"; - // DPI_TotalNumberOfItemsInSet, having type uint - ParameterId["TotalNumberOfItemsInSet"] = "totalNumberOfItemsInSet"; - // DPI_TotalMemberCount, having type uint - ParameterId["TotalMemberCount"] = "totalMemberCount"; - // DPI_Transparency, having type uint - ParameterId["Transparency"] = "colorTransparencyValue"; - // DPI_TupleID, having type uint - ParameterId["TupleID"] = "tupleId"; - // DPI_UIndex, having type uint - ParameterId["UIndex"] = "uindex"; - // DPI_UndoPosition, having type uint - ParameterId["UndoPosition"] = "undoPosition"; - // DPI_UnsignedWidth, having type uint - ParameterId["UnsignedWidth"] = "uw"; - // DPI_UnsignedWidthBottom, having type uint - ParameterId["UnsignedWidthBottom"] = "uwb"; - // DPI_UnsignedWidthLeft, having type uint - ParameterId["UnsignedWidthLeft"] = "uwl"; - // DPI_UnsignedWidthRight, having type uint - ParameterId["UnsignedWidthRight"] = "uwr"; - // DPI_UnsignedWidthTop, having type uint - ParameterId["UnsignedWidthTop"] = "uwt"; - // DPI_ValueIndex, having type uint - ParameterId["ValueIndex"] = "valueIndex"; - // DPI_ValueInt, having type uint - ParameterId["ValueInt"] = "valueInt"; - // DPI_WorldOffset, having type uint - ParameterId["WorldOffset"] = "worldOffset"; - // DPI_XDuplicateIndex, having type uint - ParameterId["XDuplicateIndex"] = "xDuplicateIndex"; - // DPI_XIndex, having type uint - ParameterId["XIndex"] = "xIndex"; - // DPI_YDuplicateIndex, having type uint - ParameterId["YDuplicateIndex"] = "yDuplicateIndex"; - // DPI_YIndex, having type uint - ParameterId["YIndex"] = "yIndex"; - // DPI_ZoneID, having type uint - ParameterId["ZoneID"] = "zoneId"; - // DPI_ZoneZOrder, having type uint - ParameterId["ZoneZOrder"] = "zoneZOrder"; - // DPI_ComponentID, having type uint - ParameterId["ComponentID"] = "componentId"; - // DPI_NonThreadPoolUseCount, having type uint - ParameterId["NonThreadPoolUseCount"] = "nonThreadPoolUseCount"; - // DPI_AddressingIndices, having type uint[] - ParameterId["AddressingIndices"] = "addressingIndices"; - // DPI_AddressingInvalidIndices, having type uint[] - ParameterId["AddressingInvalidIndices"] = "addressingInvalidIndices"; - // DPI_ChildZoneIds, having type uint[] - ParameterId["ChildZoneIds"] = "childZoneIds"; - // DPI_ColorList, having type uint[] - ParameterId["ColorList"] = "colorList"; - // DPI_DuplicateIndices, having type uint[] - ParameterId["DuplicateIndices"] = "duplicateIndices"; - // DPI_FilterAddIndices, having type uint[] - ParameterId["FilterAddIndices"] = "filterAddIndices"; - // DPI_FilterIndices, having type uint[] - ParameterId["FilterIndices"] = "filterIndices"; - // DPI_FilterLevelAdd, having type uint[] - ParameterId["FilterLevelAdd"] = "filterLevelAdd"; - // DPI_FilterLevelRemove, having type uint[] - ParameterId["FilterLevelRemove"] = "filterLevelRemove"; - // DPI_FilterLevels, having type uint[] - ParameterId["FilterLevels"] = "filterLevels"; - // DPI_FilterRemoveIndices, having type uint[] - ParameterId["FilterRemoveIndices"] = "filterRemoveIndices"; - // DPI_FixedValues, having type uint[] - ParameterId["FixedValues"] = "fixedValues"; - // DPI_HierarchyMemberIdList, having type uint[] - ParameterId["HierarchyMemberIdList"] = "hierarchyMemberIdList"; - // DPI_InvalidIndices, having type uint[] - ParameterId["InvalidIndices"] = "invalidIndices"; - // DPI_ItemIndices, having type uint[] - ParameterId["ItemIndices"] = "itemIndices"; - // DPI_LineTupleIDs, having type uint[] - ParameterId["LineTupleIDs"] = "lineTupleIds"; - // DPI_ObjectIDs, having type uint[] - ParameterId["ObjectIDs"] = "objectIds"; - // DPI_PageIndices, having type uint[] - ParameterId["PageIndices"] = "pageIndices"; - // DPI_QRGB, having type uint[] - ParameterId["QRGB"] = "qrgbList"; - // DPI_QRGBColors, having type uint[] - ParameterId["QRGBColors"] = "qrgbColors"; - // DPI_RefLineID, having type uint[] - ParameterId["RefLineID"] = "reflineId"; - // DPI_ShapeIDs, having type uint[] - ParameterId["ShapeIDs"] = "shapeIds"; - // DPI_ShelfSelection, having type uint[] - ParameterId["ShelfSelection"] = "shelfSelection"; - // DPI_StoryPointIDs, having type uint[] - ParameterId["StoryPointIDs"] = "storyPointIds"; - // DPI_TupleIDs, having type uint[] - ParameterId["TupleIDs"] = "tupleIds"; - // DPI_Widths, having type uint[] - ParameterId["Widths"] = "widths"; - // DPI_UintMap, having type Dictionary(of uint32_t) - ParameterId["UintMap"] = "uintMap"; - // DPI_Alpha, having type float - ParameterId["Alpha"] = "alpha"; - // DPI_Angle, having type float - ParameterId["Angle"] = "angle"; - // DPI_AutomaticDrillValueInVector, having type float - ParameterId["AutomaticDrillValueInVector"] = "automaticDrillValueInVector"; - // DPI_DevicePixelRatio, having type float - ParameterId["DevicePixelRatio"] = "devicePixelRatio"; - // DPI_Distance, having type float - ParameterId["Distance"] = "distance"; - // DPI_FloatX, having type float - ParameterId["FloatX"] = "floatX"; - // DPI_FloatY, having type float - ParameterId["FloatY"] = "floatY"; - // DPI_FogDesaturation, having type float - ParameterId["FogDesaturation"] = "fogDesaturation"; - // DPI_MarkScale, having type float - ParameterId["MarkScale"] = "markScale"; - // DPI_MarkSizeInPixelUnits, having type float - ParameterId["MarkSizeInPixelUnits"] = "markSizeInPixelUnits"; - // DPI_PointSize, having type float - ParameterId["PointSize"] = "pointSize"; - // DPI_StrokeWidth, having type float - ParameterId["StrokeWidth"] = "strokeWidth"; - // DPI_TextRegionOrientation, having type float - ParameterId["TextRegionOrientation"] = "orientation"; - // DPI_TransformAngle, having type float - ParameterId["TransformAngle"] = "transformAngle"; - // DPI_ZoomLevel, having type float - ParameterId["ZoomLevel"] = "zoomLevel"; - // DPI_OldZoomLevel, having type float - ParameterId["OldZoomLevel"] = "oldZoomLevel"; - // DPI_NewZoomLevel, having type float - ParameterId["NewZoomLevel"] = "newZoomLevel"; - // DPI_AspectRatio, having type float - ParameterId["AspectRatio"] = "aspectRatio"; - // DPI_BottomPrintMargin, having type float - ParameterId["BottomPrintMargin"] = "bottomPrintMargin"; - // DPI_EarthRadius, having type float - ParameterId["EarthRadius"] = "earthRadius"; - // DPI_FloatHeight, having type float - ParameterId["FloatHeight"] = "floatHeight"; - // DPI_FloatLeft, having type float - ParameterId["FloatLeft"] = "floatLeft"; - // DPI_FloatRadius, having type float - ParameterId["FloatRadius"] = "floatRadius"; - // DPI_FloatTop, having type float - ParameterId["FloatTop"] = "floatTop"; - // DPI_FloatWidth, having type float - ParameterId["FloatWidth"] = "floatWidth"; - // DPI_LeftPrintMargin, having type float - ParameterId["LeftPrintMargin"] = "leftPrintMargin"; - // DPI_MapCenterLatitude, having type float - ParameterId["MapCenterLatitude"] = "mapCenterLatitude"; - // DPI_MapCenterLongitude, having type float - ParameterId["MapCenterLongitude"] = "mapCenterLongitude"; - // DPI_MapDisplayScale, having type float - ParameterId["MapDisplayScale"] = "mapDisplayScale"; - // DPI_MapMaxStretch, having type float - ParameterId["MapMaxStretch"] = "mapMaxStretch"; - // DPI_MapMaxZoom, having type float - ParameterId["MapMaxZoom"] = "mapMaxZoom"; - // DPI_MapMinShrink, having type float - ParameterId["MapMinShrink"] = "mapMinShrink"; - // DPI_MapMinZoom, having type float - ParameterId["MapMinZoom"] = "mapMinZoom"; - // DPI_MapRequestZoom, having type float - ParameterId["MapRequestZoom"] = "mapRequestZoom"; - // DPI_MapWashout, having type float - ParameterId["MapWashout"] = "mapWashout"; - // DPI_MaxLatitude, having type float - ParameterId["MaxLatitude"] = "maxLatitude"; - // DPI_MaxLongitude, having type float - ParameterId["MaxLongitude"] = "maxLongitude"; - // DPI_MinLatitude, having type float - ParameterId["MinLatitude"] = "minLatitude"; - // DPI_MinLongitude, having type float - ParameterId["MinLongitude"] = "minLongitude"; - // DPI_RightPrintMargin, having type float - ParameterId["RightPrintMargin"] = "rightPrintMargin"; - // DPI_TopPrintMargin, having type float - ParameterId["TopPrintMargin"] = "topPrintMargin"; - // DPI_UIAutomationMaximum, having type float - ParameterId["UIAutomationMaximum"] = "uiAutomationMaximum"; - // DPI_UIAutomationMinimum, having type float - ParameterId["UIAutomationMinimum"] = "uiAutomationMinimum"; - // DPI_UIAutomationOffset, having type float - ParameterId["UIAutomationOffset"] = "uiAutomationOffset"; - // DPI_UnitDivisor, having type float - ParameterId["UnitDivisor"] = "unitDivisor"; - // DPI_UnitTransition, having type float - ParameterId["UnitTransition"] = "unitTransition"; - // DPI_AutomaticDrillIdx, having type float[] - ParameterId["AutomaticDrillIdx"] = "automaticDrillIdx"; - // DPI_DestinationBox, having type float[] - ParameterId["DestinationBox"] = "destBox"; - // DPI_LowerEnd, having type float[] - ParameterId["LowerEnd"] = "lowerEnd"; - // DPI_OppositeAxis, having type float[] - ParameterId["OppositeAxis"] = "oppositeAxis"; - // DPI_PointsF, having type float[] - ParameterId["PointsF"] = "pointsF"; - // DPI_SourceBox, having type float[] - ParameterId["SourceBox"] = "sourceBox"; - // DPI_TransformOffset, having type float[] - ParameterId["TransformOffset"] = "transformOffset"; - // DPI_TransformScale, having type float[] - ParameterId["TransformScale"] = "transformScale"; - // DPI_UpperEnd, having type float[] - ParameterId["UpperEnd"] = "upperEnd"; - // DPI_FloatMap, having type Dictionary(of float) - ParameterId["FloatMap"] = "floatMap"; - // DPI_BGSS, having type double - ParameterId["BGSS"] = "betweenGroupSumOfSquares"; - // DPI_ConfidenceLevel, having type double - ParameterId["ConfidenceLevel"] = "confidenceLevel"; - // DPI_ConfidencePercentage, having type double - ParameterId["ConfidencePercentage"] = "confidencePercentage"; - // DPI_DoubleLeft, having type double - ParameterId["DoubleLeft"] = "doubleLeft"; - // DPI_DoubleTop, having type double - ParameterId["DoubleTop"] = "doubleTop"; - // DPI_DoubleValue, having type double - ParameterId["DoubleValue"] = "doubleValue"; - // DPI_DoubleX, having type double - ParameterId["DoubleX"] = "doubleX"; - // DPI_DoubleY, having type double - ParameterId["DoubleY"] = "doubleY"; - // DPI_FStatistic, having type double - ParameterId["FStatistic"] = "fStatistic"; - // DPI_FilterRangeMax, having type double - ParameterId["FilterRangeMax"] = "filterRangeMax"; - // DPI_FilterRangeMin, having type double - ParameterId["FilterRangeMin"] = "filterRangeMin"; - // DPI_GeographicSearchCandidateScore, having type double - ParameterId["GeographicSearchCandidateScore"] = "geographicSearchCandidateScore"; - // DPI_HeightD, having type double - ParameterId["HeightD"] = "height"; - // DPI_InflectionFraction, having type double - ParameterId["InflectionFraction"] = "inflectionFraction"; - // DPI_InflectionValue, having type double - ParameterId["InflectionValue"] = "inflectionValue"; - // DPI_MSE, having type double - ParameterId["MSE"] = "meanSquaredError"; - // DPI_MSM, having type double - ParameterId["MSM"] = "meanSquaredModel"; - // DPI_MapScaleMarginOfError, having type double - ParameterId["MapScaleMarginOfError"] = "mapScaleMarginOfError"; - // DPI_MarkSize, having type double - ParameterId["MarkSize"] = "markSize"; - // DPI_MaxMarkSize, having type double - ParameterId["MaxMarkSize"] = "maxMarkSize"; - // DPI_MinMarkSize, having type double - ParameterId["MinMarkSize"] = "minMarkSize"; - // DPI_NotchPosition, having type double - ParameterId["NotchPosition"] = "notchPosition"; - // DPI_NotchValue, having type double - ParameterId["NotchValue"] = "notchValue"; - // DPI_PValue, having type double - ParameterId["PValue"] = "pValue"; - // DPI_PercentDimensions, having type double - ParameterId["PercentDimensions"] = "percentDimensions"; - // DPI_PercentGroups, having type double - ParameterId["PercentGroups"] = "percentGroups"; - // DPI_PercentMeasures, having type double - ParameterId["PercentMeasures"] = "percentMeasures"; - // DPI_RSquared, having type double - ParameterId["RSquared"] = "rSquared"; - // DPI_SSE, having type double - ParameterId["SSE"] = "sumSquaredError"; - // DPI_SSM, having type double - ParameterId["SSM"] = "sumSquaredModel"; - // DPI_StandardError, having type double - ParameterId["StandardError"] = "standardError"; - // DPI_TSS, having type double - ParameterId["TSS"] = "totalSumOfSquares"; - // DPI_WGSS, having type double - ParameterId["WGSS"] = "withinGroupSumOfSquares"; - // DPI_WidthD, having type double - ParameterId["WidthD"] = "width"; - // DPI_ZoomFactor, having type double - ParameterId["ZoomFactor"] = "zoomFactor"; - // DPI_CoefficientPValueVec, having type double[] - ParameterId["CoefficientPValueVec"] = "coefficientPValueVector"; - // DPI_CoefficientStdErrVec, having type double[] - ParameterId["CoefficientStdErrVec"] = "coefficientStdErrorVector"; - // DPI_CoefficientTValueVec, having type double[] - ParameterId["CoefficientTValueVec"] = "coefficientTValueVector"; - // DPI_CoefficientVec, having type double[] - ParameterId["CoefficientVec"] = "coefficientVector"; - // DPI_FStatisticVec, having type double[] - ParameterId["FStatisticVec"] = "trendLineFStatisticVector"; - // DPI_Factors, having type double[] - ParameterId["Factors"] = "factors"; - // DPI_MSEVec, having type double[] - ParameterId["MSEVec"] = "meanSquaredErrorVector"; - // DPI_Means, having type double[] - ParameterId["Means"] = "means"; - // DPI_PValueVec, having type double[] - ParameterId["PValueVec"] = "pValueVector"; - // DPI_Percentages, having type double[] - ParameterId["Percentages"] = "percentages"; - // DPI_Percentiles, having type double[] - ParameterId["Percentiles"] = "percentiles"; - // DPI_SSEVec, having type double[] - ParameterId["SSEVec"] = "sumSquaredErrorVector"; - // DPI_StDevs, having type double[] - ParameterId["StDevs"] = "stdev"; - // DPI_UnscaledMeans, having type double[] - ParameterId["UnscaledMeans"] = "unscaledMeans"; - // DPI_DeltaTimeMs, having type long - ParameterId["DeltaTimeMs"] = "deltaTimeMs"; - // DPI_ExtractHistoryRowCount, having type long - ParameterId["ExtractHistoryRowCount"] = "extractRowCount"; - // DPI_ExtractHistoryRowsRemoved, having type long - ParameterId["ExtractHistoryRowsRemoved"] = "extractRowsRemoved"; - // DPI_ExtractsSize, having type long - ParameterId["ExtractsSize"] = "extractsSize"; - // DPI_OldExtractSize, having type long - ParameterId["OldExtractSize"] = "oldExtractSize"; - // DPI_RowsInserted, having type long - ParameterId["RowsInserted"] = "rowsInserted"; - // DPI_SampleSize, having type long - ParameterId["SampleSize"] = "sampleSize"; - // DPI_SampleSpace, having type long - ParameterId["SampleSpace"] = "sampleSpace"; - // DPI_ThreadPoolUseCount, having type long - ParameterId["ThreadPoolUseCount"] = "threadPoolUseCount"; - // DPI_ActionId, having type string - ParameterId["ActionId"] = "actionId"; - // DPI_AxisColumn, having type string - ParameterId["AxisColumn"] = "axisColumn"; - // DPI_BaseColumnName, having type string - ParameterId["BaseColumnName"] = "baseColumnName"; - // DPI_PairedFieldName, having type string - ParameterId["PairedFieldName"] = "pairedFn"; - // DPI_FieldNameAllowEmpty, having type string - ParameterId["FieldNameAllowEmpty"] = "fieldNameAllowEmpty"; - // DPI_FieldNameDisAgg, having type string - ParameterId["FieldNameDisAgg"] = "fnDisagg"; - // DPI_FieldNameLocal, having type string - ParameterId["FieldNameLocal"] = "fieldNameLocal"; - // DPI_FieldNamePrev, having type string - ParameterId["FieldNamePrev"] = "fnPrev"; - // DPI_FieldNameSource, having type string - ParameterId["FieldNameSource"] = "fnSource"; - // DPI_FieldNameTarget, having type string - ParameterId["FieldNameTarget"] = "fnTarget"; - // DPI_FieldNameX, having type string - ParameterId["FieldNameX"] = "fnX"; - // DPI_FieldNameY, having type string - ParameterId["FieldNameY"] = "fnY"; - // DPI_FieldToSort, having type string - ParameterId["FieldToSort"] = "fieldToSort"; - // DPI_GlobalFieldName, having type string - ParameterId["GlobalFieldName"] = "globalFieldName"; - // DPI_HierarchyName, having type string - ParameterId["HierarchyName"] = "hierarchyName"; - // DPI_InvalidAggFieldName, having type string - ParameterId["InvalidAggFieldName"] = "invalidAggFieldName"; - // DPI_InvalidFieldName, having type string - ParameterId["InvalidFieldName"] = "invalidFieldName"; - // DPI_LimitParameterName, having type string - ParameterId["LimitParameterName"] = "limitParameterName"; - // DPI_LocalBaseColumnName, having type string - ParameterId["LocalBaseColumnName"] = "localBaseColumnName"; - // DPI_MeasureName, having type string - ParameterId["MeasureName"] = "measureName"; - // DPI_NestedCalcField, having type string - ParameterId["NestedCalcField"] = "nestedCalcFn"; - // DPI_ParameterName, having type string - ParameterId["ParameterName"] = "parameterName"; - // DPI_ReferenceParam, having type string - ParameterId["ReferenceParam"] = "referenceParam"; - // DPI_ReplacementFieldName, having type string - ParameterId["ReplacementFieldName"] = "replacementFieldName"; - // DPI_RHSTableAlias, having type string - ParameterId["RHSTableAlias"] = "rhsTableAlias"; - // DPI_SortMeasureName, having type string - ParameterId["SortMeasureName"] = "sortMeasureName"; - // DPI_UniqueName, having type string - ParameterId["UniqueName"] = "uniqueName"; - // DPI_ValueColumn, having type string - ParameterId["ValueColumn"] = "valueColumn"; - // DPI_PairedValueColumn, having type string - ParameterId["PairedValueColumn"] = "pairedValueColumn"; - // DPI_ActionIds, having type string[] - ParameterId["ActionIds"] = "actionIds"; - // DPI_AddressingValues, having type string[] - ParameterId["AddressingValues"] = "addressingValues"; - // DPI_AllColumns, having type string[] - ParameterId["AllColumns"] = "allColumns"; - // DPI_AtTheLevelValues, having type string[] - ParameterId["AtTheLevelValues"] = "atTheLevelValues"; - // DPI_AutomaticDrillFieldName, having type string[] - ParameterId["AutomaticDrillFieldName"] = "automaticDrillFieldName"; - // DPI_BlendingFieldCandidates, having type string[] - ParameterId["BlendingFieldCandidates"] = "blendingFieldCandidates"; - // DPI_Columns, having type string[] - ParameterId["Columns"] = "columns"; - // DPI_CurrentBlendingFields, having type string[] - ParameterId["CurrentBlendingFields"] = "currentBlendingFields"; - // DPI_DimensionsToSort, having type string[] - ParameterId["DimensionsToSort"] = "dimensionsToSort"; - // DPI_DrillFieldVector, having type string[] - ParameterId["DrillFieldVector"] = "drillFieldVector"; - // DPI_EncodingFieldVector, having type string[] - ParameterId["EncodingFieldVector"] = "encodingFieldVector"; - // DPI_FieldVector, having type string[] - ParameterId["FieldVector"] = "fieldVector"; - // DPI_FilterFields, having type string[] - ParameterId["FilterFields"] = "filterFields"; - // DPI_LODFieldVector, having type string[] - ParameterId["LODFieldVector"] = "lodFieldVector"; - // DPI_LegendColumns, having type string[] - ParameterId["LegendColumns"] = "legendColumns"; - // DPI_LegendNames, having type string[] - ParameterId["LegendNames"] = "legendNames"; - // DPI_NodeColumns, having type string[] - ParameterId["NodeColumns"] = "nodeColumns"; - // DPI_PageFields, having type string[] - ParameterId["PageFields"] = "pageFields"; - // DPI_ParamValues, having type string[] - ParameterId["ParamValues"] = "paramValues"; - // DPI_RefLineFields, having type string[] - ParameterId["RefLineFields"] = "reflineFields"; - // DPI_ReferencedColumns, having type string[] - ParameterId["ReferencedColumns"] = "referencedColumns"; - // DPI_RelatedFieldNames, having type string[] - ParameterId["RelatedFieldNames"] = "relatedFieldNames"; - // DPI_RemoveActionResults, having type string[] - ParameterId["RemoveActionResults"] = "removeActionResults"; - // DPI_ResponseVector, having type string[] - ParameterId["ResponseVector"] = "responseVector"; - // DPI_RestartEveryValues, having type string[] - ParameterId["RestartEveryValues"] = "restartEveryValues"; - // DPI_ResultFields, having type string[] - ParameterId["ResultFields"] = "resultFields"; - // DPI_SortFieldValues, having type string[] - ParameterId["SortFieldValues"] = "sortFieldValues"; - // DPI_XFields, having type string[] - ParameterId["XFields"] = "xFields"; - // DPI_YFields, having type string[] - ParameterId["YFields"] = "yFields"; - // DPI_ConnectionFullName, having type string - ParameterId["ConnectionFullName"] = "connectionFullName"; - // DPI_ConnectionFullNames, having type string[] - ParameterId["ConnectionFullNames"] = "connectionFullNames"; - // DPI_BoundDataValue, having type object - ParameterId["BoundDataValue"] = "boundDataValue"; - // DPI_DataValue, having type object - ParameterId["DataValue"] = "dataValue"; - // DPI_DataValueIncrement, having type object - ParameterId["DataValueIncrement"] = "dataValueIncrement"; - // DPI_DataValueLowerX, having type object - ParameterId["DataValueLowerX"] = "dataValueLowerX"; - // DPI_DataValueLowerY, having type object - ParameterId["DataValueLowerY"] = "dataValueLowerY"; - // DPI_DataValueUpperX, having type object - ParameterId["DataValueUpperX"] = "dataValueUpperX"; - // DPI_DataValueUpperY, having type object - ParameterId["DataValueUpperY"] = "dataValueUpperY"; - // DPI_DefaultDataValue, having type object - ParameterId["DefaultDataValue"] = "defaultDataValue"; - // DPI_MaxDataValue, having type object - ParameterId["MaxDataValue"] = "maxDataValue"; - // DPI_MinDataValue, having type object - ParameterId["MinDataValue"] = "minDataValue"; - // DPI_ValidatedDataValue, having type object - ParameterId["ValidatedDataValue"] = "validatedDataValue"; - // DPI_BinSize, having type object - ParameterId["BinSize"] = "binSize"; - // DPI_LimitCount, having type object - ParameterId["LimitCount"] = "limitCount"; - // DPI_DataValueList, having type object[] - ParameterId["DataValueList"] = "dataValueList"; - // DPI_FieldCaptionPair, having type FieldCaptionPairPresModel - ParameterId["FieldCaptionPair"] = "fieldCaptionPair"; - // DPI_FieldCaptionPairs, having type FieldCaptionPairPresModel[] - ParameterId["FieldCaptionPairs"] = "fieldCaptionPairs"; - // DPI_ParameterCaptionPairs, having type FieldCaptionPairPresModel[] - ParameterId["ParameterCaptionPairs"] = "parameterCaptionPairs"; - // DPI_VaryingAttributeDimensions, having type FieldCaptionPairPresModel[] - ParameterId["VaryingAttributeDimensions"] = "varyingAttributeDimensions"; - // DPI_FieldCaptionPairState, having type FieldCaptionPairStatePresModel - ParameterId["FieldCaptionPairState"] = "fieldCaptionPairState"; - // DPI_FieldCaptionPairStates, having type FieldCaptionPairStatePresModel[] - ParameterId["FieldCaptionPairStates"] = "fieldCaptionPairStates"; - // DPI_DatasourceCaptionPair, having type DatasourceCaptionPairPresModel - ParameterId["DatasourceCaptionPair"] = "datasourceCaptionPair"; - // DPI_DatasourceCaptionPairs, having type DatasourceCaptionPairPresModel[] - ParameterId["DatasourceCaptionPairs"] = "datasourceCaptionPairs"; - // DPI_SheetNameInfoPair, having type SheetNameInfoPairPresModel - ParameterId["SheetNameInfoPair"] = "sheetNameInfoPair"; - // DPI_SheetNameInfoPairs, having type SheetNameInfoPairPresModel[] - ParameterId["SheetNameInfoPairs"] = "sheetNameInfoPairs"; - // DPI_BGActiveColor, having type string - ParameterId["BGActiveColor"] = "bgActiveColor"; - // DPI_BGColor, having type string - ParameterId["BGColor"] = "bgColor"; - // DPI_BGRestColor, having type string - ParameterId["BGRestColor"] = "bgRestColor"; - // DPI_BorderColor, having type string - ParameterId["BorderColor"] = "borderColor"; - // DPI_BorderColorBottom, having type string - ParameterId["BorderColorBottom"] = "borderColorBottom"; - // DPI_BorderColorLeft, having type string - ParameterId["BorderColorLeft"] = "borderColorLeft"; - // DPI_BorderColorRight, having type string - ParameterId["BorderColorRight"] = "borderColorRight"; - // DPI_BorderColorTop, having type string - ParameterId["BorderColorTop"] = "borderColorTop"; - // DPI_Color, having type string - ParameterId["Color"] = "color"; - // DPI_Color1, having type string - ParameterId["Color1"] = "color1"; - // DPI_Color2, having type string - ParameterId["Color2"] = "color2"; - // DPI_DefaultColor, having type string - ParameterId["DefaultColor"] = "defaultColor"; - // DPI_DistanceFontColor, having type string - ParameterId["DistanceFontColor"] = "distanceFontColor"; - // DPI_FillColor, having type string - ParameterId["FillColor"] = "fillColor"; - // DPI_FogColor, having type string - ParameterId["FogColor"] = "fogColor"; - // DPI_HeaderColor, having type string - ParameterId["HeaderColor"] = "headerColor"; - // DPI_HighlightBGColor, having type string - ParameterId["HighlightBGColor"] = "highlightBgColor"; - // DPI_HighlightTextColor, having type string - ParameterId["HighlightTextColor"] = "highlightTextColor"; - // DPI_HoverColor, having type string - ParameterId["HoverColor"] = "hoverColor"; - // DPI_MapAttributionFill, having type string - ParameterId["MapAttributionFill"] = "mapAttributionFill"; - // DPI_MapAttributionTextColor, having type string - ParameterId["MapAttributionTextColor"] = "mapAttributionTextColor"; - // DPI_MapPaneBackgroundFill, having type string - ParameterId["MapPaneBackgroundFill"] = "mapPaneBackgroundFill"; - // DPI_MapScaleBorderColor, having type string - ParameterId["MapScaleBorderColor"] = "mapScaleBorderColor"; - // DPI_MapScaleColor, having type string - ParameterId["MapScaleColor"] = "mapScaleColor"; - // DPI_MapWaitTileFill, having type string - ParameterId["MapWaitTileFill"] = "mapWaitTileFill"; - // DPI_MarkColor, having type string - ParameterId["MarkColor"] = "markColor"; - // DPI_NavArrowDisabledColor, having type string - ParameterId["NavArrowDisabledColor"] = "navArrowDisabledColor"; - // DPI_NavArrowHoverColor, having type string - ParameterId["NavArrowHoverColor"] = "navArrowHoverColor"; - // DPI_NavArrowIdleColor, having type string - ParameterId["NavArrowIdleColor"] = "navArrowIdleColor"; - // DPI_NavArrowPressedColor, having type string - ParameterId["NavArrowPressedColor"] = "navArrowPressedColor"; - // DPI_PaneColor, having type string - ParameterId["PaneColor"] = "paneColor"; - // DPI_PressColor, having type string - ParameterId["PressColor"] = "pressColor"; - // DPI_ResizeBorderColor, having type string - ParameterId["ResizeBorderColor"] = "resizeBorderColor"; - // DPI_SelectBGColor, having type string - ParameterId["SelectBGColor"] = "selectBgColor"; - // DPI_SelectionTextColor, having type string - ParameterId["SelectionTextColor"] = "selectionTextColor"; - // DPI_SwatchBackgroundColor, having type string - ParameterId["SwatchBackgroundColor"] = "swatchBgColor"; - // DPI_SwatchBorderColor, having type string - ParameterId["SwatchBorderColor"] = "swatchBorderColor"; - // DPI_TabColor, having type string - ParameterId["TabColor"] = "tabColor"; - // DPI_Colors, having type string[] - ParameterId["Colors"] = "colors"; - // DPI_RampColorSamples, having type string[] - ParameterId["RampColorSamples"] = "rampColorSamples"; - // DPI_Pixmap, having type string - ParameterId["Pixmap"] = "pixmap"; - // DPI_Image, having type string - ParameterId["Image"] = "image"; - // DPI_OverlayImage, having type string - ParameterId["OverlayImage"] = "overlayImage"; - // DPI_IconImage, having type string - ParameterId["IconImage"] = "iconImage"; - // DPI_ImageList, having type string[] - ParameterId["ImageList"] = "imageList"; - // DPI_ImageMap, having type Dictionary(of string) - ParameterId["ImageMap"] = "imageMap"; - // DPI_UUID, having type object - ParameterId["UUID"] = "uuid"; - // DPI_Nanoseconds, having type object - ParameterId["Nanoseconds"] = "nanoseconds"; - // DPI_Microseconds, having type object - ParameterId["Microseconds"] = "microseconds"; - // DPI_Milliseconds, having type object - ParameterId["Milliseconds"] = "milliseconds"; - // DPI_TimeoutS, having type object - ParameterId["TimeoutS"] = "timeoutS"; - // DPI_Minutes, having type object - ParameterId["Minutes"] = "minutes"; - // DPI_Hours, having type object - ParameterId["Hours"] = "hours"; - // DPI_CardType, having type CardType - ParameterId["CardType"] = "cardType"; - // DPI_DocParameterID, having type string - ParameterId["DocParameterID"] = "type"; - // DPI_ArgumentParam, having type string - ParameterId["ArgumentParam"] = "argumentParam"; - // DPI_ArgumentParams, having type string[] - ParameterId["ArgumentParams"] = "argumentParams"; - // DPI_ActionType, having type ActionType - ParameterId["ActionType"] = "actionType"; - // DPI_AnnotateEnum, having type AnnotateEnum - ParameterId["AnnotateEnum"] = "annotateEnum"; - // DPI_JoinType, having type SQLJoinType - ParameterId["JoinType"] = "joinType"; - // DPI_SupportedJoinTypes, having type SQLJoinType[] - ParameterId["SupportedJoinTypes"] = "supportedJoinTypes"; - // DPI_Rounding, having type Rounding - ParameterId["Rounding"] = "roundingEnum"; - // DPI_BodyType, having type BodyType - ParameterId["BodyType"] = "bodyType"; - // DPI_LineEnd, having type LineEnd - ParameterId["LineEnd"] = "lineEndEnum"; - // DPI_LineEndSize, having type LineEndSize - ParameterId["LineEndSize"] = "lineEndSizeEnum"; - // DPI_BrushSpecialFields, having type BrushSpecialFields - ParameterId["BrushSpecialFields"] = "specialFields"; - // DPI_CellSizeChange, having type CellSizeChange - ParameterId["CellSizeChange"] = "cellSizeChange"; - // DPI_CellType, having type CellType - ParameterId["CellType"] = "cellType"; - // DPI_ConnectionAttemptResult, having type ConnectionAttemptResult - ParameterId["ConnectionAttemptResult"] = "connectionAttemptResult"; - // DPI_ConnectionErrorType, having type ConnectionErrorType - ParameterId["ConnectionErrorType"] = "connectionErrorType"; - // DPI_DataServerConnectionResult, having type DataServerConnectionResult - ParameterId["DataServerConnectionResult"] = "dsConnectionResult"; - // DPI_DropWhen, having type DropWhen - ParameterId["DropWhen"] = "dropWhen"; - // DPI_DropType, having type DropFieldResult - ParameterId["DropType"] = "dropType"; - // DPI_EncodingType, having type EncodingType - ParameterId["EncodingType"] = "encodingType"; - // DPI_DropdownEncodingType, having type EncodingType - ParameterId["DropdownEncodingType"] = "dropdownEncodingType"; - // DPI_EncodingTypes, having type EncodingType[] - ParameterId["EncodingTypes"] = "encodingTypes"; - // DPI_FieldOrderType, having type FieldOrderType - ParameterId["FieldOrderType"] = "fieldOrderType"; - // DPI_FilterIconType, having type FilterIconType - ParameterId["FilterIconType"] = "filterIconType"; - // DPI_FilterIconTypes, having type FilterIconType[] - ParameterId["FilterIconTypes"] = "filterIconTypes"; - // DPI_FloatingToolbarVis, having type FloatingToolbarVisibility - ParameterId["FloatingToolbarVis"] = "toolbarVisibility"; - // DPI_FolderRole, having type FolderRole - ParameterId["FolderRole"] = "folderRole"; - // DPI_LegendType, having type Enum - ParameterId["LegendType"] = "legendType"; - // DPI_ForecastModelType, having type ForecastModelType - ParameterId["ForecastModelType"] = "forecastModelType"; - // DPI_ForecastTrendType, having type ForecastComponentType - ParameterId["ForecastTrendType"] = "forecastTrendType"; - // DPI_ForecastSeasonType, having type ForecastComponentType - ParameterId["ForecastSeasonType"] = "forecastSeasonType"; - // DPI_ForecastRangeType, having type ForecastRangeType - ParameterId["ForecastRangeType"] = "forecastRangeType"; - // DPI_ForecastStatus, having type ForecastStatus - ParameterId["ForecastStatus"] = "forecastStatus"; - // DPI_SheetForecastStatus, having type ForecastStatus - ParameterId["SheetForecastStatus"] = "sheetForecastStatus"; - // DPI_PDForecastStatusList, having type ForecastStatus[] - ParameterId["PDForecastStatusList"] = "paneDescriptorForecastStatusList"; - // DPI_ForecastColumnType, having type ForecastColumnType - ParameterId["ForecastColumnType"] = "forecastColumnType"; - // DPI_DataScaling, having type DataScaling - ParameterId["DataScaling"] = "dataScaling"; - // DPI_GetFilterItemsJsonResponse, having type GetJsonResponseEnum - ParameterId["GetFilterItemsJsonResponse"] = "getFilterItemsJsonResponse"; - // DPI_FilterSearchJsonResponse, having type GetJsonResponseEnum - ParameterId["FilterSearchJsonResponse"] = "filterSearchJsonResponse"; - // DPI_FilterSearchWithIndexJsonResponse, having type GetJsonResponseEnum - ParameterId["FilterSearchWithIndexJsonResponse"] = "filterSearchWithIndexJsonResponse"; - // DPI_FilterShowChildrenJsonResponse, having type GetJsonResponseEnum - ParameterId["FilterShowChildrenJsonResponse"] = "filterShowChildrenJsonResponse"; - // DPI_HAlignment, having type LabelHAlignment - ParameterId["HAlignment"] = "horizontalLabelAlignment"; - // DPI_JoinValidationError, having type JoinValidationError - ParameterId["JoinValidationError"] = "joinValidationError"; - // DPI_NameConflictResolution, having type NameConflictResolution - ParameterId["NameConflictResolution"] = "nameConflictResolution"; - // DPI_LabelDir, having type TextOrient - ParameterId["LabelDir"] = "labelDirection"; - // DPI_LabelAlign, having type TextAlign - ParameterId["LabelAlign"] = "labelAlignment"; - // DPI_LabelWrap, having type TextWrapMode - ParameterId["LabelWrap"] = "labelWrap"; - // DPI_WrapMode, having type TextWrapMode - ParameterId["WrapMode"] = "wrapMode"; - // DPI_MarkEnum, having type MarkEnum - ParameterId["MarkEnum"] = "markEnum"; - // DPI_PercentMode, having type PercentMode - ParameterId["PercentMode"] = "percentageMode"; - // DPI_ReferenceOptionsSet, having type ReferenceOptionsSet - ParameterId["ReferenceOptionsSet"] = "referenceOptionsSet"; - // DPI_ReferenceOptionsSets, having type ReferenceOptionsSet[] - ParameterId["ReferenceOptionsSets"] = "referenceOptionsSets"; - // DPI_RankType, having type RankType - ParameterId["RankType"] = "rankType"; - // DPI_RankTypeValues, having type RankType[] - ParameterId["RankTypeValues"] = "rankTypeValues"; - // DPI_SpecialValuesMode, having type SpecialValuesMode - ParameterId["SpecialValuesMode"] = "specialValuesMode"; - // DPI_VAlignment, having type LabelVAlignment - ParameterId["VAlignment"] = "verticalLabelAlignment"; - // DPI_ColorMode, having type ColorMode - ParameterId["ColorMode"] = "colorMode"; - // DPI_MarkLabelsMode, having type MarkLabelsMode - ParameterId["MarkLabelsMode"] = "markLabelsMode"; - // DPI_MarkLabelsScope, having type MarkLabelsScope - ParameterId["MarkLabelsScope"] = "markLabelsScope"; - // DPI_MarkLabelsVisibility, having type MarkLabelsVisibility - ParameterId["MarkLabelsVisibility"] = "markLabelsVisibility"; - // DPI_PrimitiveType, having type PrimitiveType - ParameterId["PrimitiveType"] = "primitiveType"; - // DPI_ActualPrimitiveType, having type PrimitiveType - ParameterId["ActualPrimitiveType"] = "actualPrimitiveType"; - // DPI_PrimitiveTypes, having type PrimitiveType[] - ParameterId["PrimitiveTypes"] = "primitiveTypes"; - // DPI_ShapeType, having type ShapeType - ParameterId["ShapeType"] = "shapeType"; - // DPI_SortType, having type SortType - ParameterId["SortType"] = "sortBy"; - // DPI_SortEnd, having type SortEnd - ParameterId["SortEnd"] = "sortEnd"; - // DPI_StackingMode, having type StackingMode - ParameterId["StackingMode"] = "stackingMode"; - // DPI_StyleTheme, having type StyleTheme - ParameterId["StyleTheme"] = "styleTheme"; - // DPI_TrendLineFitType, having type TrendLineFitType - ParameterId["TrendLineFitType"] = "fitType"; - // DPI_UpdateScope, having type UpdateScope - ParameterId["UpdateScope"] = "updateScope"; - // DPI_ParameterCtrlDisplayMode, having type DisplayMode - ParameterId["ParameterCtrlDisplayMode"] = "paramDisplayMode"; - // DPI_ParameterCtrlDisplayFlag, having type ParameterCtrlDisplayFlag - ParameterId["ParameterCtrlDisplayFlag"] = "paramDisplayFlag"; - // DPI_Included, having type QuantitativeIncludedValues - ParameterId["Included"] = "included"; - // DPI_CommandsType, having type CommandsType - ParameterId["CommandsType"] = "commandsType"; - // DPI_ParameterDomainType, having type DomainType - ParameterId["ParameterDomainType"] = "parameterDomainType"; - // DPI_FilterDomainType, having type DomainType - ParameterId["FilterDomainType"] = "filterDomainType"; - // DPI_FilterDomains, having type DomainType[] - ParameterId["FilterDomains"] = "filterDomains"; - // DPI_DatePeriodType, having type DatePeriodType - ParameterId["DatePeriodType"] = "datePeriodType"; - // DPI_FilterPatternType, having type PatternType - ParameterId["FilterPatternType"] = "filterPatternType"; - // DPI_FilterConditionType, having type ConditionType - ParameterId["FilterConditionType"] = "filterConditionType"; - // DPI_FiltersPresetType, having type PresetType - ParameterId["FiltersPresetType"] = "filtersPresetType"; - // DPI_FiltersRangeType, having type RangeType - ParameterId["FiltersRangeType"] = "filtersRangeType"; - // DPI_DateRangeType, having type RelativeDateRangeType - ParameterId["DateRangeType"] = "dateRangeType"; - // DPI_PageFlag, having type PageNavFlags - ParameterId["PageFlag"] = "pageFlag"; - // DPI_MarksToTrail, having type MarksToTrail - ParameterId["MarksToTrail"] = "marksToTrail"; - // DPI_TrailType, having type TrailType - ParameterId["TrailType"] = "trailType"; - // DPI_ChangePageDirection, having type ChangePageType - ParameterId["ChangePageDirection"] = "changeTo"; - // DPI_AnimationControl, having type PageAnimationControl - ParameterId["AnimationControl"] = "animationControl"; - // DPI_LinePattern, having type LinePattern - ParameterId["LinePattern"] = "linePattern"; - // DPI_LineCap, having type LineCap - ParameterId["LineCap"] = "lineCap"; - // DPI_LineJoin, having type LineJoin - ParameterId["LineJoin"] = "lineJoin"; - // DPI_LineAlignment, having type LineAlignment - ParameterId["LineAlignment"] = "lineAlignment"; - // DPI_FillMode, having type FillMode - ParameterId["FillMode"] = "fillMode"; - // DPI_CursorShape, having type CursorShape - ParameterId["CursorShape"] = "cursorShape"; - // DPI_ShowMeCommandType, having type ShowMeCommandType - ParameterId["ShowMeCommandType"] = "showMeCommandType"; - // DPI_ShelfIconType, having type ShelfIconType - ParameterId["ShelfIconType"] = "shelfIconType"; - // DPI_ShelfIconTypes, having type ShelfIconType[] - ParameterId["ShelfIconTypes"] = "shelfIconTypes"; - // DPI_ItemDrawStyle, having type ItemDrawStyle - ParameterId["ItemDrawStyle"] = "itemDrawStyle"; - // DPI_ScaleMode, having type ScaleMode - ParameterId["ScaleMode"] = "pageScaleMode"; - // DPI_PageOrientationOption, having type PageOrientation - ParameterId["PageOrientationOption"] = "pageOrientationOption"; - // DPI_PageSizeOption, having type PageSizeOption - ParameterId["PageSizeOption"] = "pageSizeOption"; - // DPI_SortRegionType, having type SortRegionType - ParameterId["SortRegionType"] = "sortRegion"; - // DPI_LegendItemLayout, having type LegendItemLayout - ParameterId["LegendItemLayout"] = "legendLayout"; - // DPI_LegendItemOrder, having type LegendItemOrder - ParameterId["LegendItemOrder"] = "legendOrder"; - // DPI_VizImageRegion, having type VizImageRegion - ParameterId["VizImageRegion"] = "r"; - // DPI_LegacyMenuName, having type LegacyMenuName - ParameterId["LegacyMenuName"] = "legacyMenuName"; - // DPI_LegacyMenuState, having type LegacyMenuState - ParameterId["LegacyMenuState"] = "legacyMenuState"; - // DPI_LegacyMenuStateList, having type LegacyMenuState[] - ParameterId["LegacyMenuStateList"] = "legacyMenuStates"; - // DPI_DimensionType, having type DimensionType - ParameterId["DimensionType"] = "dimensionType"; - // DPI_LayoutType, having type LayoutType - ParameterId["LayoutType"] = "layoutType"; - // DPI_ShelfType, having type ShelfType - ParameterId["ShelfType"] = "shelfType"; - // DPI_LastSelectionShelf, having type ShelfType - ParameterId["LastSelectionShelf"] = "lastShelf"; - // DPI_SchemaViewerDataSourceType, having type SchemaViewerDataSourceType - ParameterId["SchemaViewerDataSourceType"] = "schemaDatasourceType"; - // DPI_SchemaItemType, having type SchemaItemType - ParameterId["SchemaItemType"] = "schemaItemType"; - // DPI_HSMSelectionMode, having type SelectionMode - ParameterId["HSMSelectionMode"] = "hsmSelectionMode"; - // DPI_HSMDefaultMemberType, having type DefaultMemberType - ParameterId["HSMDefaultMemberType"] = "hsmDefaultMemberType"; - // DPI_HSMNotificationType, having type NotificationType - ParameterId["HSMNotificationType"] = "hsmNotificationType"; - // DPI_HSMSelectionRequestType, having type SelectionRequestType - ParameterId["HSMSelectionRequestType"] = "hsmSelectionRequestType"; - // DPI_HSMMemberSelectRequestType, having type MemberSelectRequestType - ParameterId["HSMMemberSelectRequestType"] = "hsmMemberSelectRequestType"; - // DPI_PivotStrategy, having type FieldPivotStrategy - ParameterId["PivotStrategy"] = "pivotStrategy"; - // DPI_AliasType, having type AliasType - ParameterId["AliasType"] = "aliasType"; - // DPI_DSODimensionSortOrder, having type DataSourceOrder - ParameterId["DSODimensionSortOrder"] = "dsoDimensionSortOrder"; - // DPI_DSOMeasureSortOrder, having type DataSourceOrder - ParameterId["DSOMeasureSortOrder"] = "dsoMeasureSortOrder"; - // DPI_DSOSortOrder, having type DataSourceOrder - ParameterId["DSOSortOrder"] = "dsoSortOrder"; - // DPI_VTAggType, having type VTAggType - ParameterId["VTAggType"] = "vtAggregation"; - // DPI_FieldTypeIconSet, having type FieldTypeIconSet - ParameterId["FieldTypeIconSet"] = "fieldIconSet"; - // DPI_VisualPart, having type VisualPart - ParameterId["VisualPart"] = "visualPart"; - // DPI_DefaultMapToolEnum, having type MapToolSelection - ParameterId["DefaultMapToolEnum"] = "defaultMapToolEnum"; - // DPI_DefaultMapUnitEnum, having type MapUnitSelectionEnum - ParameterId["DefaultMapUnitEnum"] = "defaultMapUnitEnum"; - // DPI_SceneModelDetail, having type Detail - ParameterId["SceneModelDetail"] = "sceneModelDetailEnum"; - // DPI_SceneModelHitType, having type HitType - ParameterId["SceneModelHitType"] = "sceneModelHitType"; - // DPI_HitTestStyle, having type HitTestStyle - ParameterId["HitTestStyle"] = "hitTestStyle"; - // DPI_MarkState, having type MarkState - ParameterId["MarkState"] = "markState"; - // DPI_SheetType, having type SheetType - ParameterId["SheetType"] = "sheetType"; - // DPI_DragSource, having type DragDropType - ParameterId["DragSource"] = "dragSource"; - // DPI_DropTarget, having type DragDropType - ParameterId["DropTarget"] = "dropTarget"; - // DPI_ShelfDropAction, having type ShelfDropAction - ParameterId["ShelfDropAction"] = "shelfDropAction"; - // DPI_ShelfDropContext, having type ShelfDropContext - ParameterId["ShelfDropContext"] = "shelfDropContext"; - // DPI_FilterSelectionTracking, having type SelectionTracking - ParameterId["FilterSelectionTracking"] = "filterSelectionTracking"; - // DPI_FilterUpdateType, having type FilterUpdateType - ParameterId["FilterUpdateType"] = "filterUpdateType"; - // DPI_FilterUpdateQualifierType, having type FilterUpdateQualifierType - ParameterId["FilterUpdateQualifierType"] = "filterUpdateQualifierType"; - // DPI_ParameterError, having type ParameterError - ParameterId["ParameterError"] = "parameterError"; - // DPI_SelectionType, having type SelectionType - ParameterId["SelectionType"] = "selectionType"; - // DPI_SelectionUpdateType, having type SelectionUpdateType - ParameterId["SelectionUpdateType"] = "selectionUpdateType"; - // DPI_SelectOptions, having type SelectOptions - ParameterId["SelectOptions"] = "selectOptions"; - // DPI_AxisOrientation, having type Orientation - ParameterId["AxisOrientation"] = "axisOrientation"; - // DPI_DecimalMode, having type DecimalMode - ParameterId["DecimalMode"] = "decimalMode"; - // DPI_ActivationMethod, having type ActivationMethod - ParameterId["ActivationMethod"] = "activation"; - // DPI_SourceType, having type SourceType - ParameterId["SourceType"] = "sourceType"; - // DPI_OnClear, having type OnClear - ParameterId["OnClear"] = "onClear"; - // DPI_MergeOrSplit, having type MergeOrSplit - ParameterId["MergeOrSplit"] = "mergeOrSplit"; - // DPI_FilterMode, having type FilterMode - ParameterId["FilterMode"] = "filterMode"; - // DPI_ZoneType, having type ZoneType - ParameterId["ZoneType"] = "zoneType"; - // DPI_ZoneLayoutType, having type ZoneLayoutType - ParameterId["ZoneLayoutType"] = "zoneLayoutType"; - // DPI_QuickTableCalcType, having type QuickTableCalcCommandType - ParameterId["QuickTableCalcType"] = "quickTableCalcType"; - // DPI_TableCalcCommandType, having type TableCalcCommandType - ParameterId["TableCalcCommandType"] = "tableCalcCommandType"; - // DPI_TableCalcAddressType, having type TableCalcAddressCommandType - ParameterId["TableCalcAddressType"] = "tableCalcAddressType"; - // DPI_MarkLayoutPrimitive, having type Primitive - ParameterId["MarkLayoutPrimitive"] = "markLayoutPrimitive"; - // DPI_MarkLayoutVizType, having type VizType - ParameterId["MarkLayoutVizType"] = "markLayoutVizType"; - // DPI_MarkAlignment, having type MarkAlignment - ParameterId["MarkAlignment"] = "markAlignment"; - // DPI_ModifyZoneZOrderType, having type ModifyZoneZOrderCommandType - ParameterId["ModifyZoneZOrderType"] = "modifyZoneZOrderType"; - // DPI_TextRegionHAlign, having type TextRegionHAlign - ParameterId["TextRegionHAlign"] = "halign"; - // DPI_TextRegionVAlign, having type TextRegionVAlign - ParameterId["TextRegionVAlign"] = "valign"; - // DPI_PathElement, having type PathElement - ParameterId["PathElement"] = "pathElement"; - // DPI_PathElements, having type PathElement[] - ParameterId["PathElements"] = "pathElements"; - // DPI_RenderMode, having type RenderMode - ParameterId["RenderMode"] = "renderMode"; - // DPI_FontStyle, having type TableauFontStyle - ParameterId["FontStyle"] = "fontStyle"; - // DPI_FontWeight, having type FontWeight - ParameterId["FontWeight"] = "fontWeight"; - // DPI_TextDecoration, having type TextDecoration - ParameterId["TextDecoration"] = "textDecoration"; - // DPI_BorderStyle, having type BorderStyle - ParameterId["BorderStyle"] = "borderStyle"; - // DPI_BorderStyleTop, having type BorderStyle - ParameterId["BorderStyleTop"] = "borderStyleTop"; - // DPI_BorderStyleRight, having type BorderStyle - ParameterId["BorderStyleRight"] = "borderStyleRight"; - // DPI_BorderStyleBottom, having type BorderStyle - ParameterId["BorderStyleBottom"] = "borderStyleBottom"; - // DPI_BorderStyleLeft, having type BorderStyle - ParameterId["BorderStyleLeft"] = "borderStyleLeft"; - // DPI_FloatingToolbarVisibility, having type FloatingToolbarVisibility - ParameterId["FloatingToolbarVisibility"] = "floatingToolbarVisibility"; - // DPI_GeoSearchVisibility, having type GeoSearchVisibility - ParameterId["GeoSearchVisibility"] = "geographicSearchVisibility"; - // DPI_MapScaleVisibility, having type MapScaleVisibility - ParameterId["MapScaleVisibility"] = "mapScaleVisibility"; - // DPI_VizNavigationSetting, having type VizNavigationSetting - ParameterId["VizNavigationSetting"] = "vizNavigationSetting"; - // DPI_AutoDrillVisibility, having type AutoDrillVisibility - ParameterId["AutoDrillVisibility"] = "autoDrillVisibility"; - // DPI_ClientUIMetricType, having type ClientUIMetricType - ParameterId["ClientUIMetricType"] = "clientUiMetricType"; - // DPI_SheetScrollDirection, having type SheetScrollDirection - ParameterId["SheetScrollDirection"] = "sheetScrollDirection"; - // DPI_SizeMode, having type SizeMode - ParameterId["SizeMode"] = "sizeMode"; - // DPI_PerspectiveAggregate, having type PerspectiveAggregate - ParameterId["PerspectiveAggregate"] = "perspectiveAggregation"; - // DPI_StyleAttribute, having type StyleAttribute - ParameterId["StyleAttribute"] = "styleAttribute"; - // DPI_StyleAttributes, having type StyleAttribute[] - ParameterId["StyleAttributes"] = "styleAttributes"; - // DPI_StyleElement, having type StyleElement - ParameterId["StyleElement"] = "styleElement"; - // DPI_StyleDataClass, having type StyleDataClass - ParameterId["StyleDataClass"] = "styleClass"; - // DPI_StyleFieldScope, having type StyleFieldScope - ParameterId["StyleFieldScope"] = "styleScope"; - // DPI_FormatControlType, having type FormatControlType - ParameterId["FormatControlType"] = "formatType"; - // DPI_LineInterpolationMode, having type LineInterpolationMode - ParameterId["LineInterpolationMode"] = "lineInterpolationMode"; - // DPI_LineMarkerPosition, having type LineMarkerPosition - ParameterId["LineMarkerPosition"] = "lineMarkerPosition"; - // DPI_MarkersMode, having type MarkMarkersMode - ParameterId["MarkersMode"] = "markersMode"; - // DPI_AppConfigEnum, having type AppConfigEnum - ParameterId["AppConfigEnum"] = "appConfigEnum"; - // DPI_ColorPaletteType, having type ColorPaletteType - ParameterId["ColorPaletteType"] = "colorPaletteType"; - // DPI_ExtractType, having type ExtractType - ParameterId["ExtractType"] = "extractType"; - // DPI_ActivityDisposition, having type ActivityDisposition - ParameterId["ActivityDisposition"] = "activityDisposition"; - // DPI_ActivityResult, having type ActivityResult - ParameterId["ActivityResult"] = "activityResult"; - // DPI_TooltipMode, having type TooltipMode - ParameterId["TooltipMode"] = "tooltipMode"; - // DPI_RuntimeOutput, having type RuntimeOutput - ParameterId["RuntimeOutput"] = "runtimeOutput"; - // DPI_AnalyticsObjectType, having type AnalyticsObjectType - ParameterId["AnalyticsObjectType"] = "analyticsObjectType"; - // DPI_UIAutomationStatus, having type UIAutomationCommandStatus - ParameterId["UIAutomationStatus"] = "uiAutomationStatus"; - // DPI_TableViewDataType, having type TableViewDataType - ParameterId["TableViewDataType"] = "tableViewerDataType"; - // DPI_UnitsFormat, having type UnitsFormatEnum - ParameterId["UnitsFormat"] = "unitsFormat"; - // DPI_FilterLimitType, having type LimitType - ParameterId["FilterLimitType"] = "filterLimitType"; - // DPI_DistributionSelectedType, having type DistributionType - ParameterId["DistributionSelectedType"] = "distributionSelectedType"; - // DPI_DistributionType, having type DistributionType - ParameterId["DistributionType"] = "distributionType"; - // DPI_TranslatedDistributionType, having type TranslatedDistributionTypePresModel - ParameterId["TranslatedDistributionType"] = "translatedDistributionType"; - // DPI_TranslatedDistributionTypes, having type TranslatedDistributionTypePresModel[] - ParameterId["TranslatedDistributionTypes"] = "translatedDistributionTypes"; - // DPI_RefLineFormulaGroup, having type FormulaGroup - ParameterId["RefLineFormulaGroup"] = "reflineFormulaGroup"; - // DPI_ReferenceLineScopeType, having type ScopeType - ParameterId["ReferenceLineScopeType"] = "referenceLineScopeType"; - // DPI_StDevType, having type StDevType - ParameterId["StDevType"] = "stdevType"; - // DPI_ShowBounds, having type ShowBounds - ParameterId["ShowBounds"] = "showBounds"; - // DPI_BoxplotWhiskerType, having type BoxplotWhiskerType - ParameterId["BoxplotWhiskerType"] = "boxplotWhiskerType"; - // DPI_ReferenceLineLabelType, having type LabelType - ParameterId["ReferenceLineLabelType"] = "referenceLineLabelType"; - // DPI_PairedReferenceLineLabelType, having type LabelType - ParameterId["PairedReferenceLineLabelType"] = "pairedReferenceLineLabelType"; - // DPI_ConfidenceIntervalSelectedState, having type ConfidenceIntervalState - ParameterId["ConfidenceIntervalSelectedState"] = "confidenceIntervalSelectedState"; - // DPI_ConfidenceIntervalState, having type ConfidenceIntervalState - ParameterId["ConfidenceIntervalState"] = "confidenceIntervalState"; - // DPI_TranslatedLabelType, having type TranslatedLabelTypePresModel - ParameterId["TranslatedLabelType"] = "translatedLabelType"; - // DPI_ReferenceLineValidLabelTypes, having type TranslatedLabelTypePresModel[] - ParameterId["ReferenceLineValidLabelTypes"] = "validReferenceLineLabelTypes"; - // DPI_ReferenceLineFormulaType, having type FormulaType - ParameterId["ReferenceLineFormulaType"] = "referenceLineFormulaType"; - // DPI_PairedReferenceLineFormulaType, having type FormulaType - ParameterId["PairedReferenceLineFormulaType"] = "pairedReferenceLineFormulaType"; - // DPI_TranslatedFormulaType, having type TranslatedFormulaTypePresModel - ParameterId["TranslatedFormulaType"] = "translatedFormulaType"; - // DPI_ReferenceLineValidFormulaTypes, having type TranslatedFormulaTypePresModel[] - ParameterId["ReferenceLineValidFormulaTypes"] = "validReferenceLineFormulaTypes"; - // DPI_ReferenceLineValidPairedFormulaTypes, having type TranslatedFormulaTypePresModel[] - ParameterId["ReferenceLineValidPairedFormulaTypes"] = "validReferenceLinePairedFormulaTypes"; - // DPI_TranslatedConfidenceIntervalState, having type TranslatedConfidenceIntervalStatePresModel - ParameterId["TranslatedConfidenceIntervalState"] = "translatedConfidenceIntervalState"; - // DPI_TranslatedConfidenceIntervalStates, having type TranslatedConfidenceIntervalStatePresModel[] - ParameterId["TranslatedConfidenceIntervalStates"] = "translatedConfidenceIntervalStates"; - // DPI_TranslatedStDevType, having type TranslatedStDevTypePresModel - ParameterId["TranslatedStDevType"] = "translatedStdevType"; - // DPI_TranslatedStDevTypes, having type TranslatedStDevTypePresModel[] - ParameterId["TranslatedStDevTypes"] = "translatedStdevTypes"; - // DPI_ReferenceLineLODCalcType, having type LODCalcType - ParameterId["ReferenceLineLODCalcType"] = "referenceLineLodCalcType"; - // DPI_ValueDomainType, having type ValueDomainType - ParameterId["ValueDomainType"] = "valueDomainType"; - // DPI_ValueDomainTypes, having type ValueDomainType[] - ParameterId["ValueDomainTypes"] = "valueDomainTypes"; - // DPI_OperationType, having type OperationType - ParameterId["OperationType"] = "operationType"; - // DPI_OperationTypes, having type OperationType[] - ParameterId["OperationTypes"] = "operationTypes"; - // DPI_ConnectionTypeCategory, having type ConnectionTypeCategory - ParameterId["ConnectionTypeCategory"] = "connectionTypeCategory"; - // DPI_ConnectionTypeGroup, having type ConnectionTypeGroup - ParameterId["ConnectionTypeGroup"] = "connectionTypeGroup"; - // DPI_CommandRedirectType, having type CommandRedirectType - ParameterId["CommandRedirectType"] = "commandRedirectType"; - // DPI_CustomSplitMode, having type SplitMode - ParameterId["CustomSplitMode"] = "customSplitMode"; - // DPI_CustomSplitSeparatorType, having type SeparatorType - ParameterId["CustomSplitSeparatorType"] = "customSplitSeparatorType"; - // DPI_LevelSelectionState, having type LevelSelectionState - ParameterId["LevelSelectionState"] = "levelSelectionState"; - // DPI_LevelSelectionStates, having type LevelSelectionState[] - ParameterId["LevelSelectionStates"] = "levelSelectionStates"; - // DPI_SourceDestIcon, having type SourceDestIcon - ParameterId["SourceDestIcon"] = "sourceDestIcon"; - // DPI_LegendLayout, having type LegendLayout - ParameterId["LegendLayout"] = "pageLegendLayout"; - // DPI_ImagesEditResultCode, having type ImagesEditResultCode - ParameterId["ImagesEditResultCode"] = "imagesEditResultCode"; - // DPI_CalculationContext, having type CalculationContext - ParameterId["CalculationContext"] = "calculationContext"; - // DPI_WorkgroupPublishErrorType, having type WorkgroupPublishErrorType - ParameterId["WorkgroupPublishErrorType"] = "workgroupPublishErrorType"; - // DPI_IsParameter, having type TriBool - ParameterId["IsParameter"] = "isParameter"; - // DPI_AddressingState, having type WidgetState - ParameterId["AddressingState"] = "addressingState"; - // DPI_AllPagesState, having type WidgetState - ParameterId["AllPagesState"] = "allPagesState"; - // DPI_AtTheLevelState, having type WidgetState - ParameterId["AtTheLevelState"] = "atTheLevelState"; - // DPI_ComputeCompoundedRateState, having type WidgetState - ParameterId["ComputeCompoundedRateState"] = "computeCompoundedRateState"; - // DPI_CustomNullIfIncompleteState, having type WidgetState - ParameterId["CustomNullIfIncompleteState"] = "customNullIfIncompleteState"; - // DPI_NestedCalcsState, having type WidgetState - ParameterId["NestedCalcsState"] = "nestedCalcsState"; - // DPI_RankTypeState, having type WidgetState - ParameterId["RankTypeState"] = "rankTypeState"; - // DPI_ReferenceOptionsState, having type WidgetState - ParameterId["ReferenceOptionsState"] = "referenceOptionsState"; - // DPI_RestartEveryState, having type WidgetState - ParameterId["RestartEveryState"] = "restartEveryState"; - // DPI_SortAggState, having type WidgetState - ParameterId["SortAggState"] = "sortAggState"; - // DPI_SortState, having type WidgetState - ParameterId["SortState"] = "sortState"; - // DPI_TableCalcTypeState, having type WidgetState - ParameterId["TableCalcTypeState"] = "tableCalcTypeState"; - // DPI_TableCalcAssistanceWidgetState, having type WidgetState - ParameterId["TableCalcAssistanceWidgetState"] = "tableCalcAssistanceWidgetState"; - // DPI_CalcNestingLevel, having type CalcNestingLevel - ParameterId["CalcNestingLevel"] = "calcNestingLevel"; - // DPI_DataProviderType, having type DataProviderType - ParameterId["DataProviderType"] = "dataProviderType"; - // DPI_HeuristicCommandReinterpretation, having type HeuristicCommandReinterpretation - ParameterId["HeuristicCommandReinterpretation"] = "heuristicCommandReinterpretation"; - // DPI_ExtractRefreshStatus, having type ExtractRefreshStatus - ParameterId["ExtractRefreshStatus"] = "extractRefreshStatus"; - // DPI_RichTextEditorWidgetKey, having type RichTextEditorWidgetKey - ParameterId["RichTextEditorWidgetKey"] = "richTextEditorWidgetKey"; - // DPI_RichTextWidgetKeys, having type RichTextEditorWidgetKey[] - ParameterId["RichTextWidgetKeys"] = "richTextWidgetKeys"; - // DPI_TypeOfFormatItem, having type TypeOfFormatItem - ParameterId["TypeOfFormatItem"] = "typeOfFormatItem"; - // DPI_TypeOfFormatContainer, having type TypeOfFormatContainer - ParameterId["TypeOfFormatContainer"] = "typeOfFormatContainer"; - // DPI_TypeOfFormatControl, having type TypeOfFormatControl - ParameterId["TypeOfFormatControl"] = "typeOfFormatControl"; - // DPI_FormatWidgetKey, having type FormatWidgetKey - ParameterId["FormatWidgetKey"] = "formatWidgetKey"; - // DPI_ColorSwatchType, having type ColorSwatchType - ParameterId["ColorSwatchType"] = "formatColorSwatchType"; - // DPI_PickerType, having type PickerType - ParameterId["PickerType"] = "pickerType"; - // DPI_ExtractHistoryRefreshType, having type RefreshType - ParameterId["ExtractHistoryRefreshType"] = "extractHistoryRefreshTypeEnum"; - // DPI_AxisFoldState, having type AxisFoldState - ParameterId["AxisFoldState"] = "axisFoldState"; - // DPI_TickMarkSpacingUnits, having type TickSpacingUnits - ParameterId["TickMarkSpacingUnits"] = "tickSpacingUnits"; - // DPI_TickMarkState, having type TickMarkState - ParameterId["TickMarkState"] = "tickMarkState"; - // DPI_AxisRangeType, having type AxisRangeType - ParameterId["AxisRangeType"] = "axisRangeType"; - // DPI_ScaleType, having type ScaleType - ParameterId["ScaleType"] = "scaleType"; - // DPI_DashboardDeviceLayout, having type DashboardDeviceLayout - ParameterId["DashboardDeviceLayout"] = "dashboardDeviceLayout"; - // DPI_ActivateDeviceLayout, having type DashboardDeviceLayout - ParameterId["ActivateDeviceLayout"] = "activateDeviceLayout"; - // DPI_DashboardDeviceLayouts, having type DashboardDeviceLayout[] - ParameterId["DashboardDeviceLayouts"] = "dashboardDeviceLayouts"; - // DPI_DeviceSource, having type DeviceSource - ParameterId["DeviceSource"] = "deviceSource"; - // DPI_DashboardSizingDimension, having type DashboardSizingDimension - ParameterId["DashboardSizingDimension"] = "dashboardSizingDimension"; - // DPI_DashboardSizingMode, having type DashboardSizingMode - ParameterId["DashboardSizingMode"] = "dashboardSizingMode"; - // DPI_FlipboardNavType, having type FlipboardNavType - ParameterId["FlipboardNavType"] = "flipboardNavType"; - // DPI_FieldPickerDialogUseCase, having type FieldPickerDialogUseCase - ParameterId["FieldPickerDialogUseCase"] = "fieldPickerDialogUseCase"; - // DPI_StartOfWeekEnum, having type SOWValue - ParameterId["StartOfWeekEnum"] = "startOfWeekEnum"; - // DPI_StartOfFiscalYear, having type FYSValues - ParameterId["StartOfFiscalYear"] = "startOfFiscalYear"; - // DPI_TotalsInclusionValue, having type TotalsInclusion - ParameterId["TotalsInclusionValue"] = "totalsInclusionValue"; - // DPI_FormatCode, having type FormatCode - ParameterId["FormatCode"] = "formatCode"; - // DPI_FindType, having type FindType - ParameterId["FindType"] = "findType"; - // DPI_PerspectiveType, having type PerspectiveType - ParameterId["PerspectiveType"] = "perspectiveType"; - // DPI_GeometryType, having type GeometryType - ParameterId["GeometryType"] = "geometryType"; - // DPI_PaneLabelComposition, having type PaneLabelComposition - ParameterId["PaneLabelComposition"] = "paneLabelComposition"; - // DPI_WarningType, having type WarningType - ParameterId["WarningType"] = "warningType"; - // DPI_UIMode, having type WorkbookUIMode - ParameterId["UIMode"] = "uiMode"; - // DPI_MenuItemId, having type TopLevelMenuItem - ParameterId["MenuItemId"] = "menuItemId"; - // DPI_CommandReturn, having type object - ParameterId["CommandReturn"] = "commandReturn"; - // DPI_LegacyPresModel, having type object - ParameterId["LegacyPresModel"] = "legacyPresModel"; - // DPI_PresentationModel, having type object - ParameterId["PresentationModel"] = "presModelHolder"; - // DPI_Event, having type object - ParameterId["Event"] = "eventContainer"; - // DPI_LineStyle, having type Array - ParameterId["LineStyle"] = "lineStyle"; - // DPI_StrokeStyle, having type Array - ParameterId["StrokeStyle"] = "strokeStyle"; - // DPI_Schema, having type Array - ParameterId["Schema"] = "schema"; - // DPI_StartTuple, having type Array - ParameterId["StartTuple"] = "startTuple"; - // DPI_EndTuple, having type Array - ParameterId["EndTuple"] = "endTuple"; - // DPI_Tuple, having type Array - ParameterId["Tuple"] = "tuple"; - // DPI_Tuples, having type Array[] - ParameterId["Tuples"] = "tuples"; - // DPI_CustomDomainTuples, having type Array[] - ParameterId["CustomDomainTuples"] = "customDomainTuples"; - // DPI_UpdatedTuples, having type Array[] - ParameterId["UpdatedTuples"] = "updatedTuples"; - // DPI_Table, having type Array - ParameterId["Table"] = "table"; - // DPI_AliasedValue, having type Array - ParameterId["AliasedValue"] = "valueAlias"; - // DPI_FirstAliasedValue, having type Array - ParameterId["FirstAliasedValue"] = "firstAlisedValue"; - // DPI_MaximumRange, having type Array - ParameterId["MaximumRange"] = "maximumRangeValue"; - // DPI_MinimumRange, having type Array - ParameterId["MinimumRange"] = "minimumRangeValue"; - // DPI_SecondAliasedValue, having type Array - ParameterId["SecondAliasedValue"] = "secondAlisedValue"; - // DPI_AliasedSelectionList, having type Array[] - ParameterId["AliasedSelectionList"] = "aliasedSelectionList"; - // DPI_AliasedValues, having type Array[] - ParameterId["AliasedValues"] = "valuesAliases"; - // DPI_VerboseAliasedRangeMax, having type Array - ParameterId["VerboseAliasedRangeMax"] = "verboseAliasedRangeMax"; - // DPI_VerboseAliasedValue, having type Array - ParameterId["VerboseAliasedValue"] = "verboseAliasedValue"; - // DPI_MultiBucket, having type MultiBucket - ParameterId["MultiBucket"] = "xValues"; - // DPI_PageName, having type PageName - ParameterId["PageName"] = "pageName"; - // DPI_Selector, having type object - ParameterId["Selector"] = "selector"; - // DPI_PaneId, having type object - ParameterId["PaneId"] = "paneId"; - // DPI_PaneIds, having type PaneId[] - ParameterId["PaneIds"] = "paneIds"; - // DPI_ImageRegionInfo, having type object - ParameterId["ImageRegionInfo"] = "vizRegionRect"; - // DPI_ImageRegionInfoList, having type object[] - ParameterId["ImageRegionInfoList"] = "vizRegionRectList"; - // DPI_VisualID, having type VisualID - ParameterId["VisualID"] = "visualId"; - // DPI_VisualIDPM, having type VisualIDPresModel - ParameterId["VisualIDPM"] = "visualIdPresModel"; - // DPI_InvalidSheets, having type VisualIDPresModel[] - ParameterId["InvalidSheets"] = "invalidSheets"; - // DPI_VisualIDPMs, having type VisualIDPresModel[] - ParameterId["VisualIDPMs"] = "visualIds"; - // DPI_SheetPathPM, having type SheetPathPresModel - ParameterId["SheetPathPM"] = "sheetPath"; - // DPI_CapturedSheetPM, having type SheetPathPresModel - ParameterId["CapturedSheetPM"] = "capturedSheetPm"; - // DPI_CurrentSheetPM, having type SheetPathPresModel - ParameterId["CurrentSheetPM"] = "currentSheetPm"; - // DPI_DashboardPM, having type SheetPathPresModel - ParameterId["DashboardPM"] = "dashboardPm"; - // DPI_NewSheetPM, having type SheetPathPresModel - ParameterId["NewSheetPM"] = "newSheetPm"; - // DPI_SheetNamePM, having type SheetPathPresModel - ParameterId["SheetNamePM"] = "sheetNamePm"; - // DPI_SheetPM, having type SheetPathPresModel - ParameterId["SheetPM"] = "sheetPm"; - // DPI_SourceDashboardPM, having type SheetPathPresModel - ParameterId["SourceDashboardPM"] = "sourceDashboardPm"; - // DPI_SourceSheetPM, having type SheetPathPresModel - ParameterId["SourceSheetPM"] = "sourceSheetPm"; - // DPI_TargetSheetPM, having type SheetPathPresModel - ParameterId["TargetSheetPM"] = "targetSheetPm"; - // DPI_WorksheetPM, having type SheetPathPresModel - ParameterId["WorksheetPM"] = "worksheetPm"; - // DPI_ModifiedSheets, having type SheetPathPresModel[] - ParameterId["ModifiedSheets"] = "modifiedSheets"; - // DPI_DataColumn, having type DataColumnPresModel - ParameterId["DataColumn"] = "dataColumn"; - // DPI_DataColumns, having type DataColumnPresModel[] - ParameterId["DataColumns"] = "dataColumns"; - // DPI_Addresses, having type DataColumnPresModel[] - ParameterId["Addresses"] = "addresses"; - // DPI_EncodingColumns, having type Dictionary(of DataColumnPresModel) - ParameterId["EncodingColumns"] = "encodingColumns"; - // DPI_TextRunColumns, having type Dictionary(of DataColumnPresModel) - ParameterId["TextRunColumns"] = "textRunColumns"; - // DPI_TextStyleColumns, having type Dictionary(of DataColumnPresModel) - ParameterId["TextStyleColumns"] = "textStyleColumns"; - // DPI_NamedDataColumn, having type NamedDataColumnPresModel - ParameterId["NamedDataColumn"] = "namedDataColumn"; - // DPI_NamedDataColumns, having type NamedDataColumnPresModel[] - ParameterId["NamedDataColumns"] = "namedDataColumns"; - // DPI_DataTable, having type DataTablePresModel - ParameterId["DataTable"] = "dataTable"; - // DPI_ActionSpecification, having type None - ParameterId["ActionSpecification"] = "actionSpec"; - // DPI_Column, having type Column - ParameterId["Column"] = "columnContext"; - // DPI_SetFunction, having type SetFunction - ParameterId["SetFunction"] = "setFunction"; - // DPI_SetFunctions, having type SetFunctions - ParameterId["SetFunctions"] = "setFunctions"; - // DPI_VisualProfileShowMe, having type VisualProfileShowMe - ParameterId["VisualProfileShowMe"] = "vpsm"; - // DPI_DataSourcePtr, having type DataSource - ParameterId["DataSourcePtr"] = "datasourcePtr"; - // DPI_WorkgroupConnection, having type WorkgroupConnection - ParameterId["WorkgroupConnection"] = "workgroupConnection"; - // DPI_Authenticator, having type AuthenticatorRawPtr - ParameterId["Authenticator"] = "authenticator"; - // DPI_UpgradeAttr, having type UpgradeAttr - ParameterId["UpgradeAttr"] = "upgradeAttr"; - // DPI_ExtractAttr, having type ExtractAttr - ParameterId["ExtractAttr"] = "extractAttr"; - // DPI_RefreshAttr, having type RefreshAttr - ParameterId["RefreshAttr"] = "refreshAttr"; - // DPI_ContextSpecification, having type ContextSpecification - ParameterId["ContextSpecification"] = "contextSpecification"; - // DPI_SchemaViewerSelector, having type SchemaViewerSelectorPtr - ParameterId["SchemaViewerSelector"] = "schemaViewerSelector"; - // DPI_Buckets, having type Buckets - ParameterId["Buckets"] = "buckets"; - // DPI_LegendItems, having type MultiBuckets - ParameterId["LegendItems"] = "legendItems"; - // DPI_LegendItem, having type MultiBucket - ParameterId["LegendItem"] = "legendItem"; - // DPI_SourceItem, having type MultiBucket - ParameterId["SourceItem"] = "sourceItem"; - // DPI_DestItem, having type MultiBucket - ParameterId["DestItem"] = "destItem"; - // DPI_IQuickSortState, having type IQuickSortState - ParameterId["IQuickSortState"] = "quickSortState"; - // DPI_AppBuildDate, having type DateTime - ParameterId["AppBuildDate"] = "appBuildDate"; - // DPI_ForecastDateRangeEnd, having type DateTime - ParameterId["ForecastDateRangeEnd"] = "forecastDateRangeEnd"; - // DPI_ForecastDateRangeStart, having type DateTime - ParameterId["ForecastDateRangeStart"] = "forecastDateRangeStart"; - // DPI_LastModified, having type DateTime - ParameterId["LastModified"] = "lastModified"; - // DPI_SearchDomainPtr, having type MultiDomain - ParameterId["SearchDomainPtr"] = "searchDomainPtr"; - // DPI_ResultsDomainPtr, having type MultiDomain - ParameterId["ResultsDomainPtr"] = "resultsDomainPtr"; - // DPI_Actions, having type object - ParameterId["Actions"] = "actions"; - // DPI_SRCommands, having type object - ParameterId["SRCommands"] = "selectionRelaxationCommands"; - // DPI_Commands, having type object - ParameterId["Commands"] = "commands"; - // DPI_DataTypeCommands, having type object - ParameterId["DataTypeCommands"] = "datatypeCommands"; - // DPI_MultiSelectCommands, having type object - ParameterId["MultiSelectCommands"] = "multiselectCommands"; - // DPI_NonVizCommands, having type object - ParameterId["NonVizCommands"] = "nonVizCommands"; - // DPI_QuickFilterCommands, having type object - ParameterId["QuickFilterCommands"] = "quickFilterCommands"; - // DPI_ShowMeCommands, having type object - ParameterId["ShowMeCommands"] = "showMeCommands"; - // DPI_SortIndicatorMenu, having type object - ParameterId["SortIndicatorMenu"] = "sortIndicatorMenu"; - // DPI_StandardCommands, having type object - ParameterId["StandardCommands"] = "standardCommands"; - // DPI_VizCommands, having type object - ParameterId["VizCommands"] = "vizCommands"; - // DPI_ZoneChromeCommands, having type object - ParameterId["ZoneChromeCommands"] = "zoneChromeCommands"; - // DPI_CommandItem, having type CommandsItem - ParameterId["CommandItem"] = "commandItem"; - // DPI_CommandItems, having type CommandsItem[] - ParameterId["CommandItems"] = "commandItems"; - // DPI_Command, having type SimpleCommandsPresModel - ParameterId["Command"] = "simpleCommandModel"; - // DPI_AddCommand, having type SimpleCommandsPresModel - ParameterId["AddCommand"] = "addSimpleCommandModel"; - // DPI_RemoveCommand, having type SimpleCommandsPresModel - ParameterId["RemoveCommand"] = "removeSimpleCommandModel"; - // DPI_AcceptCommand, having type SimpleCommandsPresModel - ParameterId["AcceptCommand"] = "acceptSimpleCommandModel"; - // DPI_DeclineCommand, having type SimpleCommandsPresModel - ParameterId["DeclineCommand"] = "declineSimpleCommandModel"; - // DPI_DropCommand, having type SimpleCommandsPresModel - ParameterId["DropCommand"] = "dropCommandModel"; - // DPI_EditCaptionCommand, having type SimpleCommandsPresModel - ParameterId["EditCaptionCommand"] = "editCaptionCommandModel"; - // DPI_FontCommand, having type SimpleCommandsPresModel - ParameterId["FontCommand"] = "fontCommandModel"; - // DPI_LineStyleCommand, having type SimpleCommandsPresModel - ParameterId["LineStyleCommand"] = "lineStyleCommandModel"; - // DPI_FormatCommand, having type SimpleCommandsPresModel - ParameterId["FormatCommand"] = "formatCommandModel"; - // DPI_DestructorCommand, having type SimpleCommandsPresModel - ParameterId["DestructorCommand"] = "destructorCommand"; - // DPI_ClearFormatCommand, having type SimpleCommandsPresModel - ParameterId["ClearFormatCommand"] = "clearFormatCommandModel"; - // DPI_RichTextCommand, having type SimpleCommandsPresModel - ParameterId["RichTextCommand"] = "richTextCommandModel"; - // DPI_SortIndicatorCommand, having type SimpleCommandsPresModel - ParameterId["SortIndicatorCommand"] = "sortIndicatorCommand"; - // DPI_ResizeRowCommand, having type SimpleCommandsPresModel - ParameterId["ResizeRowCommand"] = "resizeRowCommandModel"; - // DPI_ResizeColCommand, having type SimpleCommandsPresModel - ParameterId["ResizeColCommand"] = "resizeColCommandModel"; - // DPI_CommandList, having type SimpleCommandsPresModel[] - ParameterId["CommandList"] = "commandList"; - // DPI_ParameterCtrl, having type ParameterCtrlPresModel - ParameterId["ParameterCtrl"] = "parameterControl"; - // DPI_ParameterCtrls, having type ParameterCtrlPresModel[] - ParameterId["ParameterCtrls"] = "parameterControls"; - // DPI_PageModel, having type PagePresModel - ParameterId["PageModel"] = "pageModel"; - // DPI_PageTrailOptions, having type PageTrailOptionsPresModel - ParameterId["PageTrailOptions"] = "pageTrailOptions"; - // DPI_Field, having type FieldPresModel - ParameterId["Field"] = "field"; - // DPI_FieldList, having type FieldPresModel[] - ParameterId["FieldList"] = "fieldList"; - // DPI_FieldColumn, having type FieldColumnPresModel - ParameterId["FieldColumn"] = "column"; - // DPI_FieldColumnList, having type FieldColumnPresModel[] - ParameterId["FieldColumnList"] = "columnList"; - // DPI_Parameter, having type ParameterPresModel - ParameterId["Parameter"] = "parameter"; - // DPI_Dimension, having type DimensionPresModel - ParameterId["Dimension"] = "dimension"; - // DPI_AttributeDimensionList, having type DimensionPresModel[] - ParameterId["AttributeDimensionList"] = "attributeDimensionList"; - // DPI_RelationalTable, having type RelationalTablePresModel - ParameterId["RelationalTable"] = "relationalTable"; - // DPI_DrillPath, having type DrillPathPresModel - ParameterId["DrillPath"] = "drillPath"; - // DPI_FieldFolder, having type FieldFolderPresModel - ParameterId["FieldFolder"] = "fieldFolder"; - // DPI_Group, having type GroupPresModel - ParameterId["Group"] = "group"; - // DPI_Hierarchy, having type HierarchyPresModel - ParameterId["Hierarchy"] = "hierarchy"; - // DPI_HierarchyList, having type HierarchyPresModel[] - ParameterId["HierarchyList"] = "hierarchyList"; - // DPI_HierarchyMemberSelectedState, having type HierarchySelect_MemberSelectedStatePresModel - ParameterId["HierarchyMemberSelectedState"] = "hierarchyMemberSelectedState"; - // DPI_HierarchySelectionChanges, having type HierarchySelect_MemberSelectedStatePresModel[] - ParameterId["HierarchySelectionChanges"] = "hierarchySelectionChanges"; - // DPI_DisplayFolder, having type DisplayFolderPresModel - ParameterId["DisplayFolder"] = "displayFolder"; - // DPI_DisplayFolderList, having type DisplayFolderPresModel[] - ParameterId["DisplayFolderList"] = "displayFolderList"; - // DPI_DataSourceLayout, having type DataSourceLayoutPresModel - ParameterId["DataSourceLayout"] = "dataSourceLayout"; - // DPI_DataSource, having type DataSourcePresModel - ParameterId["DataSource"] = "dataSource"; - // DPI_DataSources, having type Dictionary(of DataSourcePresModel) - ParameterId["DataSources"] = "dataSources"; - // DPI_DataSchema, having type DataSchemaPresModel - ParameterId["DataSchema"] = "dataSchema"; - // DPI_SheetListItem, having type SheetListItemPresModel - ParameterId["SheetListItem"] = "sheetListItem"; - // DPI_SheetListItems, having type SheetListItemPresModel[] - ParameterId["SheetListItems"] = "sheetListItems"; - // DPI_SheetList, having type SheetListPresModel - ParameterId["SheetList"] = "sheetList"; - // DPI_SizeModeOption, having type SizeModeOptionPresModel - ParameterId["SizeModeOption"] = "sizeModeOption"; - // DPI_SizeModeOptions, having type SizeModeOptionPresModel[] - ParameterId["SizeModeOptions"] = "sizeModeOptions"; - // DPI_DashboardSizeControl, having type DashboardSizeControlPresModel - ParameterId["DashboardSizeControl"] = "dashboardSizeControl"; - // DPI_DeviceLayoutInfoItem, having type DeviceLayoutInfoItemPresModel - ParameterId["DeviceLayoutInfoItem"] = "deviceLayoutInfoItem"; - // DPI_DeviceLayoutInfoItems, having type DeviceLayoutInfoItemPresModel[] - ParameterId["DeviceLayoutInfoItems"] = "deviceLayoutInfoItems"; - // DPI_DeviceLayoutInfoList, having type DeviceLayoutInfoListPresModel - ParameterId["DeviceLayoutInfoList"] = "deviceLayoutInfoList"; - // DPI_SpecializedDeviceLayoutItem, having type SpecializedDeviceLayoutItemPresModel - ParameterId["SpecializedDeviceLayoutItem"] = "specializedDeviceLayoutItem"; - // DPI_SpecializedDeviceLayoutItems, having type SpecializedDeviceLayoutItemPresModel[] - ParameterId["SpecializedDeviceLayoutItems"] = "specializedDeviceLayoutItems"; - // DPI_SpecializedDeviceLayoutList, having type SpecializedDeviceLayoutListPresModel - ParameterId["SpecializedDeviceLayoutList"] = "specializedDeviceLayoutList"; - // DPI_SizeItem, having type SizeItemPresModel - ParameterId["SizeItem"] = "sizeItem"; - // DPI_SizeItems, having type SizeItemPresModel[] - ParameterId["SizeItems"] = "sizeItems"; - // DPI_DeviceSizesList, having type SizeItemListPresModel - ParameterId["DeviceSizesList"] = "deviceSizesList"; - // DPI_PresetSizesList, having type SizeItemListPresModel - ParameterId["PresetSizesList"] = "presetSizesList"; - // DPI_SizeItemList, having type SizeItemListPresModel - ParameterId["SizeItemList"] = "sizeItemList"; - // DPI_SubstitutionKeyword, having type SubstitutionKeywordPresModel - ParameterId["SubstitutionKeyword"] = "substitutionKeyword"; - // DPI_SubstitutionKeywords, having type SubstitutionKeywordPresModel[] - ParameterId["SubstitutionKeywords"] = "substitutionKeywords"; - // DPI_SubstitutionKeywordSubList, having type SubstitutionKeywordSubListPresModel - ParameterId["SubstitutionKeywordSubList"] = "substitutionKeywordsSublist"; - // DPI_SubstitutionKeywordSubLists, having type SubstitutionKeywordSubListPresModel[] - ParameterId["SubstitutionKeywordSubLists"] = "substitutionKeywordSublists"; - // DPI_SubstitutionKeywordList, having type SubstitutionKeywordListPresModel - ParameterId["SubstitutionKeywordList"] = "substitutionKeywordsList"; - // DPI_DeviceZoneListItem, having type DeviceZoneListItemPresModel - ParameterId["DeviceZoneListItem"] = "deviceZoneListItem"; - // DPI_DeviceZoneListItems, having type DeviceZoneListItemPresModel[] - ParameterId["DeviceZoneListItems"] = "deviceZoneListItems"; - // DPI_DeviceZoneList, having type DeviceZoneListPresModel - ParameterId["DeviceZoneList"] = "deviceZoneList"; - // DPI_DashboardZoneHierarchy, having type DashboardZoneHierarchyPresModel - ParameterId["DashboardZoneHierarchy"] = "dashboardZoneHierarchy"; - // DPI_DeviceZoneVisibilityListItem, having type DeviceZoneVisibilityListItemPresModel - ParameterId["DeviceZoneVisibilityListItem"] = "deviceZoneVisibilityListItem"; - // DPI_DeviceZoneVisibilityListItems, having type DeviceZoneVisibilityListItemPresModel[] - ParameterId["DeviceZoneVisibilityListItems"] = "deviceZoneVisibilityListItems"; - // DPI_DeviceZoneVisibilityList, having type DeviceZoneVisibilityListPresModel - ParameterId["DeviceZoneVisibilityList"] = "deviceZoneVisibilityList"; - // DPI_WorksheetDataSchema, having type WorksheetDataSchemaPresModel - ParameterId["WorksheetDataSchema"] = "worksheetDataSchema"; - // DPI_WorksheetDataSchemaMap, having type Dictionary(of WorksheetDataSchemaPresModel) - ParameterId["WorksheetDataSchemaMap"] = "worksheetDataSchemaMap"; - // DPI_Shelf, having type ShelfPresModel - ParameterId["Shelf"] = "shelf"; - // DPI_ShelfDetail, having type ShelfPresModel - ParameterId["ShelfDetail"] = "shelfDetail"; - // DPI_ShelfList, having type ShelfPresModel[] - ParameterId["ShelfList"] = "shelfList"; - // DPI_ShelfItem, having type ShelfItemPresModel - ParameterId["ShelfItem"] = "shelfItem"; - // DPI_ShelfItems, having type ShelfItemPresModel[] - ParameterId["ShelfItems"] = "shelfItems"; - // DPI_Shelves, having type ShelvesPresModel - ParameterId["Shelves"] = "shelves"; - // DPI_FieldEncoding, having type FieldEncodingPresModel - ParameterId["FieldEncoding"] = "fieldEncoding"; - // DPI_FieldEncodings, having type FieldEncodingPresModel[] - ParameterId["FieldEncodings"] = "fieldEncodings"; - // DPI_UberTip, having type UberTipPresModel - ParameterId["UberTip"] = "uberTip"; - // DPI_AnalyticsObjectDragInfo, having type AnalyticsObjectDragInfoPresModel - ParameterId["AnalyticsObjectDragInfo"] = "analyticsObjectDragInfo"; - // DPI_TrendLine, having type TrendLinePresModel - ParameterId["TrendLine"] = "trendLine"; - // DPI_TrendLineDialog, having type TrendLineDialogPresModel - ParameterId["TrendLineDialog"] = "trendLineDialog"; - // DPI_TrendLineDescribePresModel, having type TrendLineDescribePresModel - ParameterId["TrendLineDescribePresModel"] = "trendLineDescribePresModel"; - // DPI_TrendLineAOVModelPresModel, having type TrendLineAOVModelPresModel - ParameterId["TrendLineAOVModelPresModel"] = "trendLineAovModelPresModel"; - // DPI_TrendLineAOVModelsPresModel, having type TrendLineAOVModelPresModel[] - ParameterId["TrendLineAOVModelsPresModel"] = "trendModelDescriptionVector"; - // DPI_TrendLineLineCoefficientPresModel, having type TrendLineLineCoefficientPresModel - ParameterId["TrendLineLineCoefficientPresModel"] = "trendLineLineCoefficient"; - // DPI_TrendLineLineCoefficientsPresModel, having type TrendLineLineCoefficientPresModel[] - ParameterId["TrendLineLineCoefficientsPresModel"] = "trendLineLineCoefficientsPresModel"; - // DPI_TrendLineLinesPresModel, having type TrendLineLinesPresModel - ParameterId["TrendLineLinesPresModel"] = "trendLineLinesPresModel"; - // DPI_TrendLineAOVPresModel, having type TrendLineAOVPresModel - ParameterId["TrendLineAOVPresModel"] = "trendLineAnovaPresModel"; - // DPI_ReferenceLine, having type ReferenceLinePresModel - ParameterId["ReferenceLine"] = "referenceLine"; - // DPI_ReferenceLines, having type ReferenceLinePresModel[] - ParameterId["ReferenceLines"] = "referenceLines"; - // DPI_PercentileEditDataValue, having type EditDataValuePresModel - ParameterId["PercentileEditDataValue"] = "percentileEditDataValue"; - // DPI_LimitEditDataValue, having type EditDataValuePresModel - ParameterId["LimitEditDataValue"] = "limitEditDataValue"; - // DPI_ConfidenceLevelCombo, having type EditValueWidgetPresModel - ParameterId["ConfidenceLevelCombo"] = "confidenceLevelCombo"; - // DPI_DistributionQuantilesCombo, having type EditValueWidgetPresModel - ParameterId["DistributionQuantilesCombo"] = "distributionQuantilesLevelCombo"; - // DPI_PercentilesCombo, having type EditValueWidgetPresModel - ParameterId["PercentilesCombo"] = "distributionPercentilesLevelCombo"; - // DPI_NumericBinSizeCombo, having type EditValueWidgetPresModel - ParameterId["NumericBinSizeCombo"] = "numericBinSizeCombo"; - // DPI_FieldPickerField, having type FieldPickerFieldPresModel - ParameterId["FieldPickerField"] = "fieldPickerField"; - // DPI_FieldPickerFields, having type FieldPickerFieldPresModel[] - ParameterId["FieldPickerFields"] = "fieldPickerFields"; - // DPI_FieldPickerCombo, having type FieldPickerComboPresModel - ParameterId["FieldPickerCombo"] = "fieldPickerCombo"; - // DPI_PairedFieldPickerCombo, having type FieldPickerComboPresModel - ParameterId["PairedFieldPickerCombo"] = "pairedFieldPickerCombo"; - // DPI_ReferenceLineEditorPresModel, having type ReferenceLineEditorPresModel - ParameterId["ReferenceLineEditorPresModel"] = "referenceLineEditor"; - // DPI_CloseDataSourceErrorDialogPresModel, having type CloseDataSourceErrorDialogPresModel - ParameterId["CloseDataSourceErrorDialogPresModel"] = "closeDsErrorDialog"; - // DPI_EditReferenceLine, having type EditReferenceLinePresModel - ParameterId["EditReferenceLine"] = "editReferenceLine"; - // DPI_EditReferenceBand, having type EditReferenceBandPresModel - ParameterId["EditReferenceBand"] = "editReferenceBand"; - // DPI_EditDistribution, having type EditDistributionPresModel - ParameterId["EditDistribution"] = "editDistribution"; - // DPI_DistributionPercentages, having type DistributionPercentagesPresModel - ParameterId["DistributionPercentages"] = "distributionPercentages"; - // DPI_DistributionPercentiles, having type DistributionPercentilesPresModel - ParameterId["DistributionPercentiles"] = "distributionPercentiles"; - // DPI_DistributionQuantiles, having type DistributionQuantilesPresModel - ParameterId["DistributionQuantiles"] = "distributionQuantiles"; - // DPI_DistributionStandardDeviation, having type DistributionStandardDeviationPresModel - ParameterId["DistributionStandardDeviation"] = "distributionStddev"; - // DPI_SortIndicators, having type SortIndicatorsPresModel - ParameterId["SortIndicators"] = "sortIndicators"; - // DPI_SortIndicatorRegion, having type SortIndicatorRegionPresModel - ParameterId["SortIndicatorRegion"] = "sortIndicatorRegion"; - // DPI_SortIndicatorRegions, having type SortIndicatorRegionPresModel[] - ParameterId["SortIndicatorRegions"] = "sortIndicatorRegions"; - // DPI_SortIndicatorItem, having type SortIndicatorItemPresModel - ParameterId["SortIndicatorItem"] = "sortIndicatorItem"; - // DPI_SortIndicatorItems, having type SortIndicatorItemPresModel[] - ParameterId["SortIndicatorItems"] = "sortIndicatorItems"; - // DPI_BuilderConfig, having type BuilderConfigPresModel - ParameterId["BuilderConfig"] = "builderConfig"; - // DPI_SheetLayoutInfo, having type SheetLayoutInfoPresModel - ParameterId["SheetLayoutInfo"] = "sheetLayoutInfo"; - // DPI_AreaRect, having type RectanglePresModel - ParameterId["AreaRect"] = "areaRect"; - // DPI_Border, having type RectanglePresModel - ParameterId["Border"] = "borderRect"; - // DPI_BoundsRect, having type RectanglePresModel - ParameterId["BoundsRect"] = "boundsRect"; - // DPI_ButtonRect, having type RectanglePresModel - ParameterId["ButtonRect"] = "buttonRect"; - // DPI_DragRect, having type RectanglePresModel - ParameterId["DragRect"] = "dragRect"; - // DPI_FocusRect, having type RectanglePresModel - ParameterId["FocusRect"] = "focusRect"; - // DPI_ImageTileRect, having type RectanglePresModel - ParameterId["ImageTileRect"] = "tileRect"; - // DPI_ItemRect, having type RectanglePresModel - ParameterId["ItemRect"] = "itemRect"; - // DPI_LabelRect, having type RectanglePresModel - ParameterId["LabelRect"] = "labelRect"; - // DPI_MarkRect, having type RectanglePresModel - ParameterId["MarkRect"] = "markRect"; - // DPI_MarkTooltipRect, having type RectanglePresModel - ParameterId["MarkTooltipRect"] = "markTooltipRect"; - // DPI_OutRegionRect, having type RectanglePresModel - ParameterId["OutRegionRect"] = "outRegionRect"; - // DPI_PaneRect, having type RectanglePresModel - ParameterId["PaneRect"] = "paneRect"; - // DPI_PixelExtents, having type RectanglePresModel - ParameterId["PixelExtents"] = "pixelExtents"; - // DPI_RectMaxLabel, having type RectanglePresModel - ParameterId["RectMaxLabel"] = "rectMaxLabel"; - // DPI_RectMinLabel, having type RectanglePresModel - ParameterId["RectMinLabel"] = "rectMinLabel"; - // DPI_RectRamp, having type RectanglePresModel - ParameterId["RectRamp"] = "rectRamp"; - // DPI_RectTitle, having type RectanglePresModel - ParameterId["RectTitle"] = "rectTitle"; - // DPI_RegionRect, having type RectanglePresModel - ParameterId["RegionRect"] = "regionRect"; - // DPI_SelectionRect, having type RectanglePresModel - ParameterId["SelectionRect"] = "selectionRect"; - // DPI_UnusedRect, having type RectanglePresModel - ParameterId["UnusedRect"] = "unusedRect"; - // DPI_ZoneEdgeRect, having type RectanglePresModel - ParameterId["ZoneEdgeRect"] = "zoneEdge"; - // DPI_ZoneEdgeRectPix, having type RectanglePresModel - ParameterId["ZoneEdgeRectPix"] = "zoneEdgePix"; - // DPI_ZoneEdgeRectPp, having type RectanglePresModel - ParameterId["ZoneEdgeRectPp"] = "zoneEdgePp"; - // DPI_UIAutomationLinkRect, having type RectanglePresModel - ParameterId["UIAutomationLinkRect"] = "linkRect"; - // DPI_Borders, having type RectanglePresModel[] - ParameterId["Borders"] = "borderRects"; - // DPI_UIAutomationLinkRects, having type RectanglePresModel[] - ParameterId["UIAutomationLinkRects"] = "linkRects"; - // DPI_DomainExtents, having type DoubleRectanglePresModel - ParameterId["DomainExtents"] = "domainExtents"; - // DPI_MapDomainExtents, having type DoubleRectanglePresModel - ParameterId["MapDomainExtents"] = "mapDomainExtents"; - // DPI_MapLatLongRect, having type MapRectPresModel - ParameterId["MapLatLongRect"] = "mapLatLongRect"; - // DPI_Center, having type PointPresModel - ParameterId["Center"] = "center"; - // DPI_CenterMarkLineBegin, having type PointPresModel - ParameterId["CenterMarkLineBegin"] = "centerMarkLineBegin"; - // DPI_CenterMarkLineEnd, having type PointPresModel - ParameterId["CenterMarkLineEnd"] = "centerMarkLineEnd"; - // DPI_DropLocation, having type PointPresModel - ParameterId["DropLocation"] = "dropLocation"; - // DPI_EndPt, having type PointPresModel - ParameterId["EndPt"] = "endPoint"; - // DPI_GrabLocation, having type PointPresModel - ParameterId["GrabLocation"] = "grabLocation"; - // DPI_GridOrigin, having type PointPresModel - ParameterId["GridOrigin"] = "gridOrigin"; - // DPI_LassoSelectionPoint, having type PointPresModel - ParameterId["LassoSelectionPoint"] = "lassoSelectionPoint"; - // DPI_MenuLocation, having type PointPresModel - ParameterId["MenuLocation"] = "menuLocation"; - // DPI_MoveOffset, having type PointPresModel - ParameterId["MoveOffset"] = "moveOffset"; - // DPI_OverlayAnchor, having type PointPresModel - ParameterId["OverlayAnchor"] = "overlayAnchor"; - // DPI_PanAmount, having type PointPresModel - ParameterId["PanAmount"] = "panAmount"; - // DPI_PanLocation, having type PointPresModel - ParameterId["PanLocation"] = "panLocation"; - // DPI_PaneResolverLocation, having type PointPresModel - ParameterId["PaneResolverLocation"] = "paneResolverLocation"; - // DPI_PixelExtentsOffset, having type PointPresModel - ParameterId["PixelExtentsOffset"] = "extentsOffset"; - // DPI_Point1, having type PointPresModel - ParameterId["Point1"] = "pt1"; - // DPI_Point2, having type PointPresModel - ParameterId["Point2"] = "pt2"; - // DPI_Point3, having type PointPresModel - ParameterId["Point3"] = "pt3"; - // DPI_RegionPoint, having type PointPresModel - ParameterId["RegionPoint"] = "regionPoint"; - // DPI_ScrollOffset, having type PointPresModel - ParameterId["ScrollOffset"] = "scrollOffset"; - // DPI_SelectAtPoint, having type PointPresModel - ParameterId["SelectAtPoint"] = "selectAtPoint"; - // DPI_SelectOffset, having type PointPresModel - ParameterId["SelectOffset"] = "selectOffset"; - // DPI_TargetPt, having type PointPresModel - ParameterId["TargetPt"] = "targetPoint"; - // DPI_TextOrigin, having type PointPresModel - ParameterId["TextOrigin"] = "textOrigin"; - // DPI_TooltipAnchorPoint, having type PointPresModel - ParameterId["TooltipAnchorPoint"] = "tooltipAnchorPoint"; - // DPI_TooltipOffset, having type PointPresModel - ParameterId["TooltipOffset"] = "tooltipOffset"; - // DPI_VizLocation, having type PointPresModel - ParameterId["VizLocation"] = "vizLocation"; - // DPI_ZoomAnchorPoint, having type PointPresModel - ParameterId["ZoomAnchorPoint"] = "zoomAnchorPoint"; - // DPI_OverlayAnchors, having type PointPresModel[] - ParameterId["OverlayAnchors"] = "overlayAnchors"; - // DPI_LassoSelection, having type PointPresModel[] - ParameterId["LassoSelection"] = "lassoSelection"; - // DPI_ScrollOffsetPoints, having type PointPresModel[] - ParameterId["ScrollOffsetPoints"] = "scrollOffsetPoints"; - // DPI_RadialSelection, having type CirclePresModel - ParameterId["RadialSelection"] = "radialSelection"; - // DPI_DomainOrigin, having type FloatPointPresModel - ParameterId["DomainOrigin"] = "domainOrigin"; - // DPI_FloatCenter, having type FloatPointPresModel - ParameterId["FloatCenter"] = "floatCenter"; - // DPI_FloatPoint, having type FloatPointPresModel - ParameterId["FloatPoint"] = "floatPoint"; - // DPI_ClientAvailableSpace, having type SizePresModel - ParameterId["ClientAvailableSpace"] = "clientAvailableSpace"; - // DPI_DashboardPortSize, having type SizePresModel - ParameterId["DashboardPortSize"] = "dashboardPort"; - // DPI_LegendSize, having type SizePresModel - ParameterId["LegendSize"] = "legendSize"; - // DPI_StoryPortSize, having type SizePresModel - ParameterId["StoryPortSize"] = "storyPort"; - // DPI_SwatchAreaSize, having type SizePresModel - ParameterId["SwatchAreaSize"] = "areaSize"; - // DPI_SwatchImageSize, having type SizePresModel - ParameterId["SwatchImageSize"] = "imageSize"; - // DPI_ViewportSize, having type SizePresModel - ParameterId["ViewportSize"] = "viewportSize"; - // DPI_WorksheetPortSize, having type SizePresModel - ParameterId["WorksheetPortSize"] = "worksheetPort"; - // DPI_ResizeEntity, having type ResizeEntityPresModel - ParameterId["ResizeEntity"] = "resizeEntity"; - // DPI_RowResizers, having type ResizeEntityPresModel[] - ParameterId["RowResizers"] = "rowResizers"; - // DPI_ColResizers, having type ResizeEntityPresModel[] - ParameterId["ColResizers"] = "colResizers"; - // DPI_ResizeInfoPresModel, having type ResizeInfoPresModel - ParameterId["ResizeInfoPresModel"] = "resizeInfo"; - // DPI_ServerSheet, having type ServerSheetPresModel - ParameterId["ServerSheet"] = "serverSheet"; - // DPI_ServerSheets, having type ServerSheetPresModel[] - ParameterId["ServerSheets"] = "serverSheets"; - // DPI_SheetInfo, having type SheetInfoPresModel - ParameterId["SheetInfo"] = "sheetInfo"; - // DPI_SheetsInfo, having type SheetInfoPresModel[] - ParameterId["SheetsInfo"] = "sheetsInfo"; - // DPI_ServerWorkbook, having type ServerWorkbookPresModel - ParameterId["ServerWorkbook"] = "serverWorkbook"; - // DPI_PDFExportOptionsPresModel, having type PDFExportOptionsPresModel - ParameterId["PDFExportOptionsPresModel"] = "pdfExport"; - // DPI_ExportFileResultPresModel, having type ExportFileResultPresModel - ParameterId["ExportFileResultPresModel"] = "pdfResult"; - // DPI_PDFSheet, having type PDFSheetPresModel - ParameterId["PDFSheet"] = "pdfSheet"; - // DPI_SheetOptions, having type PDFSheetPresModel[] - ParameterId["SheetOptions"] = "sheetOptions"; - // DPI_ExportLayoutOptions, having type ExportLayoutOptionsPresModel - ParameterId["ExportLayoutOptions"] = "exportLayoutOptions"; - // DPI_DataAlertConditionOperationType, having type DataAlertConditionOperationType - ParameterId["DataAlertConditionOperationType"] = "dataAlertConditionOp"; - // DPI_DataAlertDialogPresModel, having type DataAlertDialogPresModel - ParameterId["DataAlertDialogPresModel"] = "dataAlertDialogPresModel"; - // DPI_DataAlertMeasure, having type DataAlertMeasurePresModel - ParameterId["DataAlertMeasure"] = "dataAlertMeasure"; - // DPI_DataAlertMeasures, having type DataAlertMeasurePresModel[] - ParameterId["DataAlertMeasures"] = "dataAlertMeasures"; - // DPI_DataAlertConstantCondition, having type DataAlertConstantConditionPresModel - ParameterId["DataAlertConstantCondition"] = "dataAlertConstantCondition"; - // DPI_DataAlertDialogMode, having type DataAlertDialogMode - ParameterId["DataAlertDialogMode"] = "dataAlertDialogMode"; - // DPI_LightweightMapOptions, having type LightweightMapOptionsPresModel - ParameterId["LightweightMapOptions"] = "lightweightMapOptions"; - // DPI_DataHighlighter, having type DataHighlighterPresModel - ParameterId["DataHighlighter"] = "dataHighlighter"; - // DPI_DataHighlighterItemSet, having type DataHighlighterItemSetPresModel - ParameterId["DataHighlighterItemSet"] = "dataHighlighterItemSet"; - // DPI_DataHighlighterItem, having type DataHighlighterItemPresModel - ParameterId["DataHighlighterItem"] = "dataHighlighterItem"; - // DPI_DataHighlighterItems, having type DataHighlighterItemPresModel[] - ParameterId["DataHighlighterItems"] = "dataHighlighterItems"; - // DPI_CategoricalLegendLayout, having type CategoricalLegendLayoutPresModel - ParameterId["CategoricalLegendLayout"] = "catLegendLayout"; - // DPI_CategoricalLegend, having type CategoricalLegendPresModel - ParameterId["CategoricalLegend"] = "categoricalLegend"; - // DPI_CategoricalLegends, having type CategoricalLegendPresModel[] - ParameterId["CategoricalLegends"] = "categoricalLegends"; - // DPI_CategoricalColorLegend, having type CategoricalColorLegendPresModel - ParameterId["CategoricalColorLegend"] = "colorLegend"; - // DPI_ColorLegendItem, having type CategoricalColorLegendItemPresModel - ParameterId["ColorLegendItem"] = "colorLegendItem"; - // DPI_ColorLegendItems, having type CategoricalColorLegendItemPresModel[] - ParameterId["ColorLegendItems"] = "colorLegendItems"; - // DPI_CategoricalShapeLegend, having type CategoricalShapeLegendPresModel - ParameterId["CategoricalShapeLegend"] = "categoricalShapeLegend"; - // DPI_ShapeLegendItem, having type CategoricalShapeLegendItemPresModel - ParameterId["ShapeLegendItem"] = "shapeLegendItem"; - // DPI_ShapeLegendItems, having type CategoricalShapeLegendItemPresModel[] - ParameterId["ShapeLegendItems"] = "shapeLegendItems"; - // DPI_CategoricalHighlightLegend, having type CategoricalHighlightLegendPresModel - ParameterId["CategoricalHighlightLegend"] = "categoricalHighlightLegend"; - // DPI_HighlightLegendItem, having type CategoricalLegendItemPresModel - ParameterId["HighlightLegendItem"] = "highlightLegendItem"; - // DPI_HighlightLegendItems, having type CategoricalLegendItemPresModel[] - ParameterId["HighlightLegendItems"] = "highlightLegendItems"; - // DPI_CategoricalSizeLegend, having type CategoricalSizeLegendPresModel - ParameterId["CategoricalSizeLegend"] = "categoricalSizeLegend"; - // DPI_SizeLegendItem, having type CategoricalSizeLegendItemPresModel - ParameterId["SizeLegendItem"] = "sizeLegendItem"; - // DPI_SizeLegendItems, having type CategoricalSizeLegendItemPresModel[] - ParameterId["SizeLegendItems"] = "sizeLegendItems"; - // DPI_CategoricalMapLegend, having type CategoricalMapLegendPresModel - ParameterId["CategoricalMapLegend"] = "categoricalMapLegend"; - // DPI_QuantitativeColorLegend, having type QuantitativeColorLegendPresModel - ParameterId["QuantitativeColorLegend"] = "quantitativeColorLegend"; - // DPI_QuantitativeColorLegends, having type QuantitativeColorLegendPresModel[] - ParameterId["QuantitativeColorLegends"] = "quantitativeColorLegends"; - // DPI_QuantitativeLegendLayout, having type QuantitativeLegendLayoutPresModel - ParameterId["QuantitativeLegendLayout"] = "quantitativeLegendLayout"; - // DPI_ServerRenderedLegend, having type ServerRenderedLegendPresModel - ParameterId["ServerRenderedLegend"] = "serverRenderedLegend"; - // DPI_CategoricalFilter, having type CategoricalFilterPresModel - ParameterId["CategoricalFilter"] = "categoricalFilter"; - // DPI_CategoricalFilterRelational, having type CategoricalFilterRelationalPresModel - ParameterId["CategoricalFilterRelational"] = "categoricalFilterRelational"; - // DPI_CategoricalFilterMemberDomainPage, having type CategoricalFilterMemberDomainPagePresModel - ParameterId["CategoricalFilterMemberDomainPage"] = "categoricalFilterMemberDomainPage"; - // DPI_CategoricalFilterCacheInfo, having type CategoricalFilterCacheInfoPresModel - ParameterId["CategoricalFilterCacheInfo"] = "categoricalFilterCacheInfo"; - // DPI_CategoricalFilterPatternDisplay, having type CategoricalFilterPatternDisplayPresModel - ParameterId["CategoricalFilterPatternDisplay"] = "categoricalFilterPatternDisplay"; - // DPI_CategoricalFilterPatternUpdate, having type CategoricalFilterPatternUpdatePresModel - ParameterId["CategoricalFilterPatternUpdate"] = "categoricalFilterPatternUpdate"; - // DPI_CategoricalFilterConditionDisplay, having type CategoricalFilterConditionDisplayPresModel - ParameterId["CategoricalFilterConditionDisplay"] = "categoricalFilterConditionDisplay"; - // DPI_CategoricalFilterConditionUpdate, having type CategoricalFilterConditionUpdatePresModel - ParameterId["CategoricalFilterConditionUpdate"] = "categoricalFilterConditionUpdate"; - // DPI_CategoricalFilterLimitDisplay, having type CategoricalFilterLimitDisplayPresModel - ParameterId["CategoricalFilterLimitDisplay"] = "categoricalFilterLimitDisplay"; - // DPI_CategoricalFilterLimitUpdate, having type CategoricalFilterLimitUpdatePresModel - ParameterId["CategoricalFilterLimitUpdate"] = "categoricalFilterLimitUpdate"; - // DPI_CategoricalFilterNew, having type CategoricalFilter_NewPresModel - ParameterId["CategoricalFilterNew"] = "categoricalFilterNew"; - // DPI_CategoricalFilterHierarchy, having type CategoricalFilterHierarchyPresModel - ParameterId["CategoricalFilterHierarchy"] = "categoricalFilterHirerarchy"; - // DPI_CategoricalFilterUpdate, having type CategoricalFilterUpdatePresModel - ParameterId["CategoricalFilterUpdate"] = "categoricalFilterUpdate"; - // DPI_CategoricalFilterRelationalState, having type CategoricalFilterRelationalStatePresModel - ParameterId["CategoricalFilterRelationalState"] = "categoricalRelationalState"; - // DPI_CategoricalFilterRelationalUpdatedState, having type CategoricalFilterRelationalStatePresModel - ParameterId["CategoricalFilterRelationalUpdatedState"] = "categoricalRelationalUpdatedState"; - // DPI_CategoricalFilterRelationalDomainInfo, having type CategoricalFilterRelationalDomainInfoPresModel - ParameterId["CategoricalFilterRelationalDomainInfo"] = "categoricalFilterRelationalDomainInfo"; - // DPI_CategoricalFilterRelationalDisplay, having type CategoricalFilterRelationalDisplayPresModel - ParameterId["CategoricalFilterRelationalDisplay"] = "categoricalFilterRelationalDisplay"; - // DPI_ExpressionToken, having type ExpressionTokenPresModel - ParameterId["ExpressionToken"] = "expressionToken"; - // DPI_ExpressionTokens, having type ExpressionTokenPresModel[] - ParameterId["ExpressionTokens"] = "expressionTokens"; - // DPI_FormulaValidation, having type FormulaValidationPresModel - ParameterId["FormulaValidation"] = "formulaValidation"; - // DPI_ValidationResults, having type ValidationResultsPresModel - ParameterId["ValidationResults"] = "validationResults"; - // DPI_DomainMember, having type DomainMemberPresModel - ParameterId["DomainMember"] = "domainMember"; - // DPI_DomainMembers, having type DomainMemberPresModel[] - ParameterId["DomainMembers"] = "domainMembers"; - // DPI_QuickFilterDisplay, having type QuickFilterDisplayPresModel - ParameterId["QuickFilterDisplay"] = "quickFilterDisplay"; - // DPI_QuickFilter, having type QuickFilterPresModel - ParameterId["QuickFilter"] = "quickFilter"; - // DPI_QuantitativeQuickFilter, having type QuantitativeQuickFilterPresModel - ParameterId["QuantitativeQuickFilter"] = "quantitativeQuickFilter"; - // DPI_RelativeDateQuickFilter, having type RelativeDateQuickFilterPresModel - ParameterId["RelativeDateQuickFilter"] = "relativeDateQuickFilter"; - // DPI_CategoricalQuickFilter, having type CategoricalQuickFilterPresModel - ParameterId["CategoricalQuickFilter"] = "categoricalQuickFilter"; - // DPI_HierarchicalQuickFilter, having type HierarchicalQuickFilterPresModel - ParameterId["HierarchicalQuickFilter"] = "hierarchicalQuickFilter"; - // DPI_DomainTable, having type DomainTablePresModel - ParameterId["DomainTable"] = "domainTable"; - // DPI_DomainTables, having type DomainTablePresModel[] - ParameterId["DomainTables"] = "domainTables"; - // DPI_DomainTuples, having type Tuples - ParameterId["DomainTuples"] = "domainTuples"; - // DPI_SearchTuples, having type Tuples - ParameterId["SearchTuples"] = "searchTuples"; - // DPI_SelectedTuples, having type TupleHash - ParameterId["SelectedTuples"] = "selectedTuples"; - // DPI_PendingTuples, having type TupleHash - ParameterId["PendingTuples"] = "pendingTuples"; - // DPI_Domain, having type MultiDomain - ParameterId["Domain"] = "domain"; - // DPI_DateOption, having type DateBinDialogOptionPresModel - ParameterId["DateOption"] = "dateOption"; - // DPI_DateOptions, having type DateBinDialogOptionPresModel[] - ParameterId["DateOptions"] = "dateOptions"; - // DPI_FilterRangeAdd, having type FilterRangePresModel - ParameterId["FilterRangeAdd"] = "filterRangeAdd"; - // DPI_FilterRangeRemove, having type FilterRangePresModel - ParameterId["FilterRangeRemove"] = "filterRangeRemove"; - // DPI_FilterOptions, having type FilterOptionsPresModel - ParameterId["FilterOptions"] = "filterOptions"; - // DPI_Layer, having type LayerPresModel - ParameterId["Layer"] = "layer"; - // DPI_Layers, having type LayerPresModel[] - ParameterId["Layers"] = "layers"; - // DPI_MarksCardPresModel, having type MarksCardPresModel - ParameterId["MarksCardPresModel"] = "marksCardPresModel"; - // DPI_UIItem, having type UIItemPresModel - ParameterId["UIItem"] = "uiItem"; - // DPI_EncodingUIItem, having type EncodingUIItemPresModel - ParameterId["EncodingUIItem"] = "encodingUiItem"; - // DPI_EncodingUIItems, having type EncodingUIItemPresModel[] - ParameterId["EncodingUIItems"] = "encodingUiItems"; - // DPI_PrimTypeUIItem, having type PrimitiveTypeUIItemPresModel - ParameterId["PrimTypeUIItem"] = "primitiveTypeUiItem"; - // DPI_PrimTypeUIItems, having type PrimitiveTypeUIItemPresModel[] - ParameterId["PrimTypeUIItems"] = "primitiveTypeUiItems"; - // DPI_PrimitiveTypeUIItemOptions, having type PrimitiveTypeUIItemOptionsPresModel - ParameterId["PrimitiveTypeUIItemOptions"] = "primitiveTypeUiItemOptions"; - // DPI_LineUIItemOptions, having type LineUIItemOptionsPresModel - ParameterId["LineUIItemOptions"] = "lineUiItemOptions"; - // DPI_LineInterpolationModeUIItem, having type LineInterpolationModeUIItemPresModel - ParameterId["LineInterpolationModeUIItem"] = "lineInterpolationModeUiItem"; - // DPI_LineInterpolationModeUIItemSet, having type LineInterpolationModeUIItemPresModel[] - ParameterId["LineInterpolationModeUIItemSet"] = "lineInterpolationModeUiItemSet"; - // DPI_LineMarkerPositionUIItem, having type LineMarkerPositionUIItemPresModel - ParameterId["LineMarkerPositionUIItem"] = "lineMarkerPositionUiItem"; - // DPI_LineMarkerPositionUIItemSet, having type LineMarkerPositionUIItemPresModel[] - ParameterId["LineMarkerPositionUIItemSet"] = "lineMarkerPositionUiItemSet"; - // DPI_MarksCardDropdownItem, having type MarksCardDropdownItemPresModel - ParameterId["MarksCardDropdownItem"] = "marksCardDropdownItem"; - // DPI_TooltipDropdownItem, having type TooltipDropdownItemPresModel - ParameterId["TooltipDropdownItem"] = "tooltipDropdownItem"; - // DPI_TextDropdownItem, having type TextDropdownItemPresModel - ParameterId["TextDropdownItem"] = "textDropdownItem"; - // DPI_ColorDropdownItem, having type ColorDropdownItemPresModel - ParameterId["ColorDropdownItem"] = "colorDropdownItem"; - // DPI_SizeSliderPresModel, having type SizeSliderPresModel - ParameterId["SizeSliderPresModel"] = "sizeSliderPresModel"; - // DPI_InflectionPoint, having type InflectionPointPresModel - ParameterId["InflectionPoint"] = "inflectionPoint"; - // DPI_InflectionPoints, having type InflectionPointPresModel[] - ParameterId["InflectionPoints"] = "inflectionPoints"; - // DPI_Notch, having type NotchPresModel - ParameterId["Notch"] = "notch"; - // DPI_Notches, having type NotchPresModel[] - ParameterId["Notches"] = "notches"; - // DPI_MarkSizeOptionsPresModel, having type MarkSizeOptionsPresModel - ParameterId["MarkSizeOptionsPresModel"] = "markSizeOptionsPresModel"; - // DPI_ModifyMarksInSet, having type AddOrRemoveMarks - ParameterId["ModifyMarksInSet"] = "addOrRemoveMarks"; - // DPI_MarkLabelsSpecification, having type MarkLabelsSpecificationPresModel - ParameterId["MarkLabelsSpecification"] = "markLabelsSpecification"; - // DPI_ColorPalette, having type ColorPalettePresModel - ParameterId["ColorPalette"] = "colorPalette"; - // DPI_SelectedColorPalette, having type ColorPalettePresModel - ParameterId["SelectedColorPalette"] = "selectedColorPalette"; - // DPI_ColorPalettes, having type ColorPalettePresModel[] - ParameterId["ColorPalettes"] = "colorPalettes"; - // DPI_ColorPaletteGroup, having type ColorPaletteGroupPresModel - ParameterId["ColorPaletteGroup"] = "colorPaletteGroup"; - // DPI_CatColorPaletteGroups, having type ColorPaletteGroupPresModel[] - ParameterId["CatColorPaletteGroups"] = "catColorPaletteGroups"; - // DPI_QColorPaletteGroups, having type ColorPaletteGroupPresModel[] - ParameterId["QColorPaletteGroups"] = "qColorPaletteGroups"; - // DPI_ColorPaletteCollection, having type ColorPaletteCollectionPresModel - ParameterId["ColorPaletteCollection"] = "colorPaletteCollection"; - // DPI_QuantitativeColor, having type QuantitativeColorPresModel - ParameterId["QuantitativeColor"] = "quantitativeColor"; - // DPI_CategoricalColor, having type CategoricalColorPresModel - ParameterId["CategoricalColor"] = "categoricalColor"; - // DPI_ItemColorPair, having type ItemColorPairPresModel - ParameterId["ItemColorPair"] = "itemColorPair"; - // DPI_ItemColorPairs, having type ItemColorPairPresModel[] - ParameterId["ItemColorPairs"] = "itemColorPairs"; - // DPI_VQLCommandResponse, having type VQLCommandResponsePresModel - ParameterId["VQLCommandResponse"] = "vqlCmdResponse"; - // DPI_LayoutStatus, having type LayoutStatusPresModel - ParameterId["LayoutStatus"] = "layoutStatus"; - // DPI_VizState, having type VizStatePresModel - ParameterId["VizState"] = "vizState"; - // DPI_VizStateList, having type VizStatePresModel[] - ParameterId["VizStateList"] = "vizStateList"; - // DPI_CommandResult, having type CommandResultPresModel - ParameterId["CommandResult"] = "cmdResult"; - // DPI_CommandResultList, having type CommandResultPresModel[] - ParameterId["CommandResultList"] = "cmdResultList"; - // DPI_URLAction, having type URLActionPresModel - ParameterId["URLAction"] = "urlAction"; - // DPI_URLActionList, having type URLActionPresModel[] - ParameterId["URLActionList"] = "urlActionList"; - // DPI_LegacyMenu, having type LegacyMenuPresModel - ParameterId["LegacyMenu"] = "legacyMenu"; - // DPI_LegacyMenus, having type LegacyMenuPresModel[] - ParameterId["LegacyMenus"] = "legacyMenus"; - // DPI_ConnectionAttemptInfo, having type ConnectionAttemptInfoPresModel - ParameterId["ConnectionAttemptInfo"] = "connectionAttemptInfo"; - // DPI_DataSourceConnectionAttemptInfo, having type DataSourceConnectionAttemptInfoPresModel - ParameterId["DataSourceConnectionAttemptInfo"] = "dataSourceConnectionAttemptInfo"; - // DPI_DataSourceConnectionAttemptInfos, having type DataSourceConnectionAttemptInfoPresModel[] - ParameterId["DataSourceConnectionAttemptInfos"] = "dataSourceConnectionAttemptInfos"; - // DPI_CommandValidationPresModel, having type CommandValidationPresModel - ParameterId["CommandValidationPresModel"] = "commandValidationPresModel"; - // DPI_WarningMessage, having type WarningMessagePresModel - ParameterId["WarningMessage"] = "warningMessagePresModel"; - // DPI_ApplicationPresModel, having type ApplicationPresModel - ParameterId["ApplicationPresModel"] = "applicationPresModel"; - // DPI_ToolbarPresModel, having type ToolbarPresModel - ParameterId["ToolbarPresModel"] = "toolbarPresModel"; - // DPI_WorkbookPresModel, having type WorkbookPresModel - ParameterId["WorkbookPresModel"] = "workbookPresModel"; - // DPI_ServerFonts, having type ServerFontsPresModel - ParameterId["ServerFonts"] = "serverFonts"; - // DPI_PublishDataSourceMetadataPresModel, having type PublishDataSourceMetadataPresModel - ParameterId["PublishDataSourceMetadataPresModel"] = "publishDataSourceMetadataPresModel"; - // DPI_DashboardPresModel, having type DashboardPresModel - ParameterId["DashboardPresModel"] = "dashboardPresModel"; - // DPI_DashboardSizePresModel, having type DashboardSizePresModel - ParameterId["DashboardSizePresModel"] = "dashboardSizePresModel"; - // DPI_DashboardSizeWithValidationPresModel, having type DashboardSizeWithValidationPresModel - ParameterId["DashboardSizeWithValidationPresModel"] = "dashboardSizeWithValidationPresModel"; - // DPI_DashboardInfoPresModel, having type DashboardInfoPresModel - ParameterId["DashboardInfoPresModel"] = "dashboardInfoPresModel"; - // DPI_VisualPresModel, having type VisualPresModel - ParameterId["VisualPresModel"] = "visual"; - // DPI_VisualPresModels, having type VisualPresModel[] - ParameterId["VisualPresModels"] = "visuals"; - // DPI_DropLinesPresModel, having type DropLinesPresModel - ParameterId["DropLinesPresModel"] = "dropLinesPresModel"; - // DPI_DropFieldPresModel, having type DropFieldPresModel - ParameterId["DropFieldPresModel"] = "dropFieldPresModel"; - // DPI_DropFieldResultPresModel, having type DropFieldResultPresModel - ParameterId["DropFieldResultPresModel"] = "dropFieldResultPresModel"; - // DPI_CurrentAxisRange, having type DataValueRangePresModel - ParameterId["CurrentAxisRange"] = "currentAxisRange"; - // DPI_DefaultAxisRange, having type DataValueRangePresModel - ParameterId["DefaultAxisRange"] = "defaultAxisRange"; - // DPI_NewAxisRange, having type DataValueRangePresModel - ParameterId["NewAxisRange"] = "newAxisRange"; - // DPI_AxisOptions, having type AxisOptionsPresModel - ParameterId["AxisOptions"] = "axis"; - // DPI_AxisMajorTicks, having type TickMarkInfoPresModel - ParameterId["AxisMajorTicks"] = "axisMajorTicks"; - // DPI_AxisMinorTicks, having type TickMarkInfoPresModel - ParameterId["AxisMinorTicks"] = "axisMinorTicks"; - // DPI_EditAxisDialog, having type EditAxisDialogPresModel - ParameterId["EditAxisDialog"] = "editAxisDialog"; - // DPI_MarkLabels, having type ScenePresModel - ParameterId["MarkLabels"] = "markLabels"; - // DPI_Scene, having type ScenePresModel - ParameterId["Scene"] = "scene"; - // DPI_MapServer, having type MapServerPresModel - ParameterId["MapServer"] = "mapServer"; - // DPI_VisualList, having type VisualListPresModel - ParameterId["VisualList"] = "visualList"; - // DPI_DrawFirst, having type VisualListPresModel[] - ParameterId["DrawFirst"] = "drawFirst"; - // DPI_DrawLast, having type VisualListPresModel[] - ParameterId["DrawLast"] = "drawLast"; - // DPI_DrawPane, having type VisualListPresModel[] - ParameterId["DrawPane"] = "drawPane"; - // DPI_UserPaneInfo, having type UserPaneInfoPresModel - ParameterId["UserPaneInfo"] = "userPaneInfo"; - // DPI_AnalyticsPane, having type AnalyticsPanePresModel - ParameterId["AnalyticsPane"] = "analyticsPane"; - // DPI_AnalyticsObjectItem, having type AnalyticsObjectItemPresModel - ParameterId["AnalyticsObjectItem"] = "analyticsObjectItem"; - // DPI_AnalyticsObjectItems, having type AnalyticsObjectItemPresModel[] - ParameterId["AnalyticsObjectItems"] = "analyticsObjectItems"; - // DPI_AnalyticsObjectGroup, having type AnalyticsObjectGroupPresModel - ParameterId["AnalyticsObjectGroup"] = "analyticsObjectGroup"; - // DPI_AnalyticsObjectGroups, having type AnalyticsObjectGroupPresModel[] - ParameterId["AnalyticsObjectGroups"] = "analyticsObjectGroups"; - // DPI_DropZoneItem, having type DropZoneItemPresModel - ParameterId["DropZoneItem"] = "dropZoneItem"; - // DPI_DropZoneItems, having type DropZoneItemPresModel[] - ParameterId["DropZoneItems"] = "dropZoneItems"; - // DPI_DropTargetInfo, having type DropTargetInfoPresModel - ParameterId["DropTargetInfo"] = "dropTargetInfo"; - // DPI_Pane, having type PanePresModel - ParameterId["Pane"] = "pane"; - // DPI_Panes, having type PanePresModel[] - ParameterId["Panes"] = "panes"; - // DPI_RadialSelectionDistanceInfo, having type RadialSelectionDistanceInfoPresModel - ParameterId["RadialSelectionDistanceInfo"] = "radialSelectionDistanceInfo"; - // DPI_MapScaleInfo, having type MapScaleInfoPresModel - ParameterId["MapScaleInfo"] = "mapScaleInfo"; - // DPI_RenderNode, having type RenderNodePresModel - ParameterId["RenderNode"] = "renderNode"; - // DPI_RenderNodes, having type RenderNodePresModel[] - ParameterId["RenderNodes"] = "renderNodes"; - // DPI_PredictionBand, having type PredictionBandPresModel - ParameterId["PredictionBand"] = "predictionBand"; - // DPI_PredictionWhisker, having type PredictionWhiskerPresModel - ParameterId["PredictionWhisker"] = "predictionWhisker"; - // DPI_DrawGroup, having type DrawPointsPresModel - ParameterId["DrawGroup"] = "drawGroup"; - // DPI_ClipReset, having type DrawItemPresModel - ParameterId["ClipReset"] = "clipReset"; - // DPI_DrawItem, having type DrawItemPresModel - ParameterId["DrawItem"] = "drawItem"; - // DPI_TransformPop, having type DrawItemPresModel - ParameterId["TransformPop"] = "transformPop"; - // DPI_TransformPush, having type DrawItemPresModel - ParameterId["TransformPush"] = "transformPush"; - // DPI_DrawItems, having type DrawItemPresModel[] - ParameterId["DrawItems"] = "drawItems"; - // DPI_ClipRect, having type DrawPointsPresModel - ParameterId["ClipRect"] = "clipRect"; - // DPI_DrawEllipse, having type DrawPointsPresModel - ParameterId["DrawEllipse"] = "drawEllipse"; - // DPI_DrawFillEllipse, having type DrawPointsPresModel - ParameterId["DrawFillEllipse"] = "drawFillEllipse"; - // DPI_DrawFillPolygon, having type DrawPointsPresModel - ParameterId["DrawFillPolygon"] = "drawFillPolygon"; - // DPI_DrawFillRect, having type DrawPointsPresModel - ParameterId["DrawFillRect"] = "drawFillRect"; - // DPI_DrawPolygon, having type DrawPointsPresModel - ParameterId["DrawPolygon"] = "drawPolygon"; - // DPI_DrawPolyline, having type DrawPointsPresModel - ParameterId["DrawPolyline"] = "drawPolyline"; - // DPI_DrawRect, having type DrawPointsPresModel - ParameterId["DrawRect"] = "drawRect"; - // DPI_DrawFillPath, having type DrawPathPresModel - ParameterId["DrawFillPath"] = "drawFillPath"; - // DPI_DrawPath, having type DrawPathPresModel - ParameterId["DrawPath"] = "drawPath"; - // DPI_DrawText, having type DrawTextPresModel - ParameterId["DrawText"] = "drawText"; - // DPI_DrawImage, having type DrawImagePresModel - ParameterId["DrawImage"] = "drawImage"; - // DPI_ImageTileInfo, having type ImageTileInfoPresModel - ParameterId["ImageTileInfo"] = "tileInfo"; - // DPI_ImageTileInfos, having type ImageTileInfoPresModel[] - ParameterId["ImageTileInfos"] = "tileInfos"; - // DPI_DrawImageTiles, having type DrawImageTilesPresModel - ParameterId["DrawImageTiles"] = "drawImageTiles"; - // DPI_DrawPen, having type DrawPenPresModel - ParameterId["DrawPen"] = "drawPen"; - // DPI_DrawSolidBrush, having type DrawSolidBrushPresModel - ParameterId["DrawSolidBrush"] = "drawSolidBrush"; - // DPI_DrawTextProperties, having type DrawTextPropertiesPresModel - ParameterId["DrawTextProperties"] = "drawTextProps"; - // DPI_DrawGradientBrush, having type DrawGradientBrushPresModel - ParameterId["DrawGradientBrush"] = "drawGradientBrush"; - // DPI_DrawTransform, having type DrawTransformPresModel - ParameterId["DrawTransform"] = "transform"; - // DPI_DrawAntialias, having type DrawAntialiasPresModel - ParameterId["DrawAntialias"] = "drawAntialias"; - // DPI_ImageDictionary, having type ImageDictionaryPresModel - ParameterId["ImageDictionary"] = "imageDictionary"; - // DPI_ColorDictionary, having type ColorDictionaryPresModel - ParameterId["ColorDictionary"] = "colorDictionary"; - // DPI_MarkShape, having type MarkShapePresModel - ParameterId["MarkShape"] = "markShape"; - // DPI_MarkShapeList, having type MarkShapePresModel[] - ParameterId["MarkShapeList"] = "markShapeList"; - // DPI_PaneDescriptor, having type PaneDescriptorPresModel - ParameterId["PaneDescriptor"] = "paneDescriptor"; - // DPI_PDMarks, having type PDMarksPresModel - ParameterId["PDMarks"] = "pdMarks"; - // DPI_PDMarksMap, having type Dictionary(of PDMarksPresModel) - ParameterId["PDMarksMap"] = "pdMarksMap"; - // DPI_LabelTextTable, having type LabelTextTable - ParameterId["LabelTextTable"] = "labelTextTable"; - // DPI_TextTableHelper, having type TextTableHelper - ParameterId["TextTableHelper"] = "textTableHelper"; - // DPI_GeometryTable, having type GeometryTable - ParameterId["GeometryTable"] = "geometryTable"; - // DPI_PaneMarks, having type PaneMarksPresModel - ParameterId["PaneMarks"] = "paneMarks"; - // DPI_PaneMarksList, having type PaneMarksPresModel[] - ParameterId["PaneMarksList"] = "paneMarksList"; - // DPI_BrushingSelection, having type SelectionPresModel - ParameterId["BrushingSelection"] = "brushing"; - // DPI_Selection, having type SelectionPresModel - ParameterId["Selection"] = "selection"; - // DPI_BrushingSelectionList, having type SelectionPresModel[] - ParameterId["BrushingSelectionList"] = "brushingSelectionList"; - // DPI_SelectionList, having type SelectionPresModel[] - ParameterId["SelectionList"] = "selectionList"; - // DPI_ShelfSelectionModel, having type ShelfSelectionPresModel - ParameterId["ShelfSelectionModel"] = "shelfSelectionModel"; - // DPI_ShelfSelectionModels, having type ShelfSelectionPresModel[] - ParameterId["ShelfSelectionModels"] = "shelfSelectionModels"; - // DPI_ShelfSelectionsModel, having type ShelfSelectionsPresModel - ParameterId["ShelfSelectionsModel"] = "shelfSelectionsModel"; - // DPI_DimValSelectionModel, having type DimensionValueSelectionPresModel - ParameterId["DimValSelectionModel"] = "dimensionValueSelectionModel"; - // DPI_DimValSelectionModels, having type DimensionValueSelectionPresModel[] - ParameterId["DimValSelectionModels"] = "dimensionValueSelectionModels"; - // DPI_HierValSelectionModel, having type HierarchicalValueSelectionPresModel - ParameterId["HierValSelectionModel"] = "hierarchicalValueSelectionModel"; - // DPI_HierValSelectionModels, having type HierarchicalValueSelectionPresModel[] - ParameterId["HierValSelectionModels"] = "hierarchicalValueSelectionModels"; - // DPI_QuantRangeSelectionModel, having type QuantativeRangeSelectionPresModel - ParameterId["QuantRangeSelectionModel"] = "quantativeRangeSelectionModel"; - // DPI_QuantRangeSelectionModels, having type QuantativeRangeSelectionPresModel[] - ParameterId["QuantRangeSelectionModels"] = "quantativeRangeSelectionModels"; - // DPI_QuantValueSelectionModel, having type QuantativeValueSelectionPresModel - ParameterId["QuantValueSelectionModel"] = "quantativeValueSelectionModel"; - // DPI_QuantValueSelectionModels, having type QuantativeValueSelectionPresModel[] - ParameterId["QuantValueSelectionModels"] = "quantativeValueSelectionModels"; - // DPI_LegendSelectionInfo, having type LegendSelectionInfoPresModel - ParameterId["LegendSelectionInfo"] = "legendSelectionInfo"; - // DPI_NodeReference, having type NodeReferencePresModel - ParameterId["NodeReference"] = "nodeReference"; - // DPI_PageReference, having type PageReferencePresModel - ParameterId["PageReference"] = "pageReference"; - // DPI_OrientedNodeReference, having type OrientedNodeReferencePresModel - ParameterId["OrientedNodeReference"] = "orientedNodeReference"; - // DPI_OrientedNodeReferences, having type OrientedNodeReferencePresModel[] - ParameterId["OrientedNodeReferences"] = "orientedNodeReferences"; - // DPI_SelectionData, having type SelectionDataPresModel - ParameterId["SelectionData"] = "selectionData"; - // DPI_HighlightedData, having type HighlightedDataPresModel - ParameterId["HighlightedData"] = "highlightedData"; - // DPI_Node, having type NodePresModel - ParameterId["Node"] = "node"; - // DPI_Nodes, having type NodePresModel[] - ParameterId["Nodes"] = "nodes"; - // DPI_SelectedNodes, having type NodePresModel[] - ParameterId["SelectedNodes"] = "selectedNodes"; - // DPI_UserAction, having type ActionPresModel - ParameterId["UserAction"] = "userAction"; - // DPI_UserActions, having type ActionPresModel[] - ParameterId["UserActions"] = "userActions"; - // DPI_LinkSpec, having type LinkSpecPresModel - ParameterId["LinkSpec"] = "linkSpec"; - // DPI_ActionSpecificationModel, having type ActionSpecificationPresModel - ParameterId["ActionSpecificationModel"] = "actionSpecification"; - // DPI_LinkSpecification, having type LinkSpecificationPresModel - ParameterId["LinkSpecification"] = "linkSpecification"; - // DPI_ScriptDescription, having type ScriptDescriptionPresModel - ParameterId["ScriptDescription"] = "scriptDescription"; - // DPI_ActionSource, having type ActionSourcePresModel - ParameterId["ActionSource"] = "actionSource"; - // DPI_FieldExprItem, having type FieldExprItemPresModel - ParameterId["FieldExprItem"] = "fieldExpressionItem"; - // DPI_FieldExprVector, having type FieldExprItemPresModel[] - ParameterId["FieldExprVector"] = "fieldExpressionVector"; - // DPI_ActionComboItem, having type ActionComboItemPresModel - ParameterId["ActionComboItem"] = "actionComboItem"; - // DPI_ActionComboVector, having type ActionComboItemPresModel[] - ParameterId["ActionComboVector"] = "actionComboVector"; - // DPI_ActionSourceCombo, having type ActionSourceComboPresModel - ParameterId["ActionSourceCombo"] = "actionSourceCombo"; - // DPI_ActionDestCombo, having type ActionComboPresModel - ParameterId["ActionDestCombo"] = "actionDestCombo"; - // DPI_ActionFieldList, having type ActionFieldListPresModel - ParameterId["ActionFieldList"] = "actionFieldList"; - // DPI_EditBrushAction, having type EditBrushActionPresModel - ParameterId["EditBrushAction"] = "editBrushAction"; - // DPI_UpdateActionSource, having type UpdateActionSourcePresModel - ParameterId["UpdateActionSource"] = "updateActionSource"; - // DPI_UpdateBrushAction, having type UpdateBrushActionPresModel - ParameterId["UpdateBrushAction"] = "updateBrushAction"; - // DPI_ActionWarnings, having type ActionWarningsPresModel - ParameterId["ActionWarnings"] = "actionWarnings"; - // DPI_EditHyperlinkAction, having type EditHyperlinkActionPresModel - ParameterId["EditHyperlinkAction"] = "editHyperlinkAction"; - // DPI_UpdateHyperlinkAction, having type UpdateHyperlinkActionPresModel - ParameterId["UpdateHyperlinkAction"] = "updateHyperlinkAction"; - // DPI_EditSheetLinkAction, having type EditSheetLinkActionPresModel - ParameterId["EditSheetLinkAction"] = "editSheetlinkAction"; - // DPI_UpdateSheetLinkAction, having type UpdateSheetLinkActionPresModel - ParameterId["UpdateSheetLinkAction"] = "updateSheetlinkAction"; - // DPI_ActionItem, having type ActionItemPresModel - ParameterId["ActionItem"] = "actionItem"; - // DPI_ActionItemList, having type ActionItemPresModel[] - ParameterId["ActionItemList"] = "actionItemList"; - // DPI_DataSegment, having type DataSegmentPresModel - ParameterId["DataSegment"] = "dataSegment"; - // DPI_DataSegments, having type Dictionary(of DataSegmentPresModel) - ParameterId["DataSegments"] = "dataSegments"; - // DPI_DataDictionary, having type DataDictionaryPresModel - ParameterId["DataDictionary"] = "dataDictionary"; - // DPI_VizData, having type VizDataPresModel - ParameterId["VizData"] = "vizData"; - // DPI_VizColumn, having type VizColumnPresModel - ParameterId["VizColumn"] = "vizColumn"; - // DPI_VizColumns, having type VizColumnPresModel[] - ParameterId["VizColumns"] = "vizColumns"; - // DPI_VizDataColumn, having type VizDataColumnPresModel - ParameterId["VizDataColumn"] = "vizDataColumn"; - // DPI_VizDataColumns, having type VizDataColumnPresModel[] - ParameterId["VizDataColumns"] = "vizDataColumns"; - // DPI_VizPaneColumn, having type VizPaneColumnPresModel - ParameterId["VizPaneColumn"] = "vizPaneColumn"; - // DPI_VizPaneColumns, having type VizPaneColumnPresModel[] - ParameterId["VizPaneColumns"] = "vizPaneColumns"; - // DPI_PaneColumns, having type PaneColumnsPresModel - ParameterId["PaneColumns"] = "paneColumns"; - // DPI_PaneColumnsList, having type PaneColumnsPresModel[] - ParameterId["PaneColumnsList"] = "paneColumnsList"; - // DPI_PaneColumnsData, having type PaneColumnsDataPresModel - ParameterId["PaneColumnsData"] = "paneColumnsData"; - // DPI_FilterContext, having type FilterContextPresModel - ParameterId["FilterContext"] = "filterContext"; - // DPI_UberTipPaneData, having type UberTipPaneDataPresModel - ParameterId["UberTipPaneData"] = "ubertipPaneData"; - // DPI_UberTipPaneDatas, having type UberTipPaneDataPresModel[] - ParameterId["UberTipPaneDatas"] = "ubertipPaneDatas"; - // DPI_UberTipData, having type UberTipDataPresModel - ParameterId["UberTipData"] = "ubertipData"; - // DPI_RefLineTip, having type RefLineTipPresModel - ParameterId["RefLineTip"] = "refLineTip"; - // DPI_RefLineTips, having type RefLineTipPresModel[] - ParameterId["RefLineTips"] = "refLineTips"; - // DPI_NumericBin, having type NumericBinPresModel - ParameterId["NumericBin"] = "numericBin"; - // DPI_NumericBinDialog, having type NumericBinDialogPresModel - ParameterId["NumericBinDialog"] = "numericBinDialog"; - // DPI_DomainRange, having type DomainRangePresModel - ParameterId["DomainRange"] = "domainRange"; - // DPI_BinSizeInfo, having type BinSizeInfoPresModel - ParameterId["BinSizeInfo"] = "binSizeInfo"; - // DPI_DetailedErrorDialog, having type DetailedErrorPresModel - ParameterId["DetailedErrorDialog"] = "detailedErrorDialog"; - // DPI_DragSourcePosition, having type ShelfDropPositionPresModel - ParameterId["DragSourcePosition"] = "shelfDragSourcePosition"; - // DPI_DropTargetPosition, having type ShelfDropPositionPresModel - ParameterId["DropTargetPosition"] = "shelfDropTargetPosition"; - // DPI_ShelfDropPosition, having type ShelfDropPositionPresModel - ParameterId["ShelfDropPosition"] = "shelfDropPosition"; - // DPI_ShelfDropPositions, having type ShelfDropPositionPresModel[] - ParameterId["ShelfDropPositions"] = "shelfDropPositions"; - // DPI_ShelfDropModel, having type ShelfDropPresModel - ParameterId["ShelfDropModel"] = "shelfDropModel"; - // DPI_ShelfDropModels, having type ShelfDropPresModel[] - ParameterId["ShelfDropModels"] = "shelfDropModels"; - // DPI_Drag, having type DragPresModel - ParameterId["Drag"] = "drag"; - // DPI_SceneElement, having type SceneElementPresModel - ParameterId["SceneElement"] = "sceneElement"; - // DPI_SceneElements, having type SceneElementPresModel[] - ParameterId["SceneElements"] = "sceneElements"; - // DPI_QuickFilterType, having type QuickFilterType - ParameterId["QuickFilterType"] = "quickFilterType"; - // DPI_CatMode, having type QuickFilterCategoricalMode - ParameterId["CatMode"] = "categoricalMode"; - // DPI_CatCtrl, having type QuickFilterCategoricalCtrl - ParameterId["CatCtrl"] = "categoricalControl"; - // DPI_QuantMode, having type QuickFilterQuantitativeMode - ParameterId["QuantMode"] = "quantitativeMode"; - // DPI_QuantCtrl, having type QuickFilterQuantitativeCtrl - ParameterId["QuantCtrl"] = "quantitativeControl"; - // DPI_ZoneCommon, having type ZoneCommonPresModel - ParameterId["ZoneCommon"] = "zoneCommon"; - // DPI_ZoneCommonListItems, having type ZoneCommonPresModel[] - ParameterId["ZoneCommonListItems"] = "zoneCommonListItems"; - // DPI_Zone, having type ZonePresModel - ParameterId["Zone"] = "zone"; - // DPI_Zones, having type Dictionary(of ZonePresModel) - ParameterId["Zones"] = "zones"; - // DPI_ImageZone, having type ImageZonePresModel - ParameterId["ImageZone"] = "imageZone"; - // DPI_WebZone, having type WebZonePresModel - ParameterId["WebZone"] = "webZone"; - // DPI_ZoneEdgeMoveType, having type ZoneEdgeMove - ParameterId["ZoneEdgeMoveType"] = "zoneEdgeMoveType"; - // DPI_ZoneSide, having type SideType - ParameterId["ZoneSide"] = "zoneSide"; - // DPI_SnapPoint, having type SnapPointPresModel - ParameterId["SnapPoint"] = "snapPoint"; - // DPI_SnapPoints, having type SnapPointPresModel[] - ParameterId["SnapPoints"] = "snapPoints"; - // DPI_TargetPreviewPair, having type DragDropTargetPreviewPairPresModel - ParameterId["TargetPreviewPair"] = "targetPreviewPair"; - // DPI_TargetPreviewPairs, having type DragDropTargetPreviewPairPresModel[] - ParameterId["TargetPreviewPairs"] = "targetPreviewPairs"; - // DPI_ContainerGuide, having type DragDropContainerGuidePresModel - ParameterId["ContainerGuide"] = "containerGuide"; - // DPI_ContainerGuides, having type DragDropContainerGuidePresModel[] - ParameterId["ContainerGuides"] = "containerGuides"; - // DPI_ZoneBorder, having type DragDropZoneBorderPresModel - ParameterId["ZoneBorder"] = "zoneBorder"; - // DPI_ZoneBorders, having type DragDropZoneBorderPresModel[] - ParameterId["ZoneBorders"] = "zoneBorders"; - // DPI_DashboardDragDrop, having type DashboardDragDropPresModel - ParameterId["DashboardDragDrop"] = "zoneDragDrop"; - // DPI_DragZoneResize, having type DragZoneResizePresModel - ParameterId["DragZoneResize"] = "zoneResize"; - // DPI_DashboardText, having type TextRegionPresModel - ParameterId["DashboardText"] = "dashboardText"; - // DPI_DashboardTitle, having type TextRegionPresModel - ParameterId["DashboardTitle"] = "dashboardTitle"; - // DPI_QuickFilterTitle, having type TextRegionPresModel - ParameterId["QuickFilterTitle"] = "quickFilterTitle"; - // DPI_VisualCaption, having type TextRegionPresModel - ParameterId["VisualCaption"] = "visualCaption"; - // DPI_VisualTitle, having type TextRegionPresModel - ParameterId["VisualTitle"] = "visualTitle"; - // DPI_ZoneTitleRegion, having type TextRegionPresModel - ParameterId["ZoneTitleRegion"] = "zoneTitle"; - // DPI_ForecastOptions, having type ForecastPresModel - ParameterId["ForecastOptions"] = "forecastOptions"; - // DPI_ForecastDescription, having type ForecastDescribePresModel - ParameterId["ForecastDescription"] = "forecastDescription"; - // DPI_ForecastDiagnose, having type ForecastDiagnosePresModel - ParameterId["ForecastDiagnose"] = "forecastDiagnose"; - // DPI_WorkgroupPublishObject, having type WorkgroupPublishObjectPresModel - ParameterId["WorkgroupPublishObject"] = "publishDataSource"; - // DPI_PublishPermissionsSummary, having type PublishPermissionsSummaryPresModel - ParameterId["PublishPermissionsSummary"] = "publishPermissionsSummary"; - // DPI_CheckNameResults, having type CheckNameResultsPresModel - ParameterId["CheckNameResults"] = "checkNameResults"; - // DPI_ValidatePublishViewsResult, having type ValidatePublishViewsResultPresModel - ParameterId["ValidatePublishViewsResult"] = "validatePublishViewsResult"; - // DPI_PublishAuthenticationSettings, having type PublishAuthenticationSettingsPresModel - ParameterId["PublishAuthenticationSettings"] = "publishAuthenticationSettings"; - // DPI_ManageDatasources, having type ManageDatasourcesPresModel - ParameterId["ManageDatasources"] = "manageDatasources"; - // DPI_CredentialsAuthSettings, having type CredentialsAuthSettingsPresModel - ParameterId["CredentialsAuthSettings"] = "credentialsAuthSettings"; - // DPI_ConnectionCredentialsAuthSettings, having type ConnectionCredentialsAuthSettingsPresModel - ParameterId["ConnectionCredentialsAuthSettings"] = "connectionCredentialsAuthSettings"; - // DPI_ConnectionCredentialsAuthSettingsList, having type ConnectionCredentialsAuthSettingsPresModel[] - ParameterId["ConnectionCredentialsAuthSettingsList"] = "connectionCredentialsAuthSettingsList"; - // DPI_PublishDatasourceFromWorkbookInfo, having type PublishDatasourceFromWorkbookInfoPresModel - ParameterId["PublishDatasourceFromWorkbookInfo"] = "publishDatasourceFromWorkbookInfo"; - // DPI_PublishDatasourcesFromWorkbookInfo, having type PublishDatasourceFromWorkbookInfoPresModel[] - ParameterId["PublishDatasourcesFromWorkbookInfo"] = "publishDatasourcesFromWorkbookInfo"; - // DPI_PublishSheet, having type PublishSheetPresModel - ParameterId["PublishSheet"] = "publishSheet"; - // DPI_PublishSheets, having type PublishSheetPresModel[] - ParameterId["PublishSheets"] = "publishSheets"; - // DPI_PublishObjectViews, having type PublishObjectViewsPresModel - ParameterId["PublishObjectViews"] = "publishObjectViews"; - // DPI_PublishObjectPublishSheetResults, having type PublishObjectPublishSheetResultsPresModel - ParameterId["PublishObjectPublishSheetResults"] = "publishObjectPublishSheetResults"; - // DPI_RefreshExtractSchedulingSettings, having type RefreshExtractSchedulingSettingsPresModel - ParameterId["RefreshExtractSchedulingSettings"] = "refreshExtractSchedulingSettings"; - // DPI_SetRefreshExtractScheduleResult, having type SetRefreshExtractScheduleResultPresModel - ParameterId["SetRefreshExtractScheduleResult"] = "setRefreshExtractScheduleResult"; - // DPI_CheckPublishObjectNameWarningsResults, having type CheckPublishObjectNameWarningsResultsPresModel - ParameterId["CheckPublishObjectNameWarningsResults"] = "checkPublishObjectNameWarningsResults"; - // DPI_PublishDatasourceOnWorkbookPublishResults, having type PublishDatasourceOnWorkbookPublishResultsPresModel - ParameterId["PublishDatasourceOnWorkbookPublishResults"] = "publishDatasourceOnWorkbookPublishResult"; - // DPI_PublishDataSourceResult, having type PublishDataSourceResultPresModel - ParameterId["PublishDataSourceResult"] = "publishDataSourceResult"; - // DPI_PublishWarningMessage, having type PublishWarningMessagePresModel - ParameterId["PublishWarningMessage"] = "publishWarningMessage"; - // DPI_MustDowngradeToPublishWarningMessagePresModel, having type PublishWarningMessagePresModel - ParameterId["MustDowngradeToPublishWarningMessagePresModel"] = "mustDowngradeToPublishWarningMessagePresModel"; - // DPI_PublishSelectedAttributes, having type PublishSelectedAttributesPresModel - ParameterId["PublishSelectedAttributes"] = "publishSelectedAttributes"; - // DPI_AutosaveFile, having type AutosaveFilePresModel - ParameterId["AutosaveFile"] = "autosaveFile"; - // DPI_AutosaveFiles, having type AutosaveFilePresModel[] - ParameterId["AutosaveFiles"] = "autosaveFiles"; - // DPI_FunctionGroup, having type FunctionGroup - ParameterId["FunctionGroup"] = "funcGrp"; - // DPI_FunctionGroups, having type FunctionGroup[] - ParameterId["FunctionGroups"] = "funcGrps"; - // DPI_FunctionArgType, having type FunctionArgType - ParameterId["FunctionArgType"] = "funcArgType"; - // DPI_FunctionArgTypes, having type FunctionArgType[] - ParameterId["FunctionArgTypes"] = "funcArgTypes"; - // DPI_CalculationStyle, having type CalcStyle - ParameterId["CalculationStyle"] = "calculationStyle"; - // DPI_Calculation, having type CalculationPresModel - ParameterId["Calculation"] = "calculation"; - // DPI_TypeInPill, having type CalculationPresModel - ParameterId["TypeInPill"] = "typeInPill"; - // DPI_CalcErrorInfo, having type CalcErrorInfoPresModel - ParameterId["CalcErrorInfo"] = "errorInfo"; - // DPI_CalcErrorInfos, having type CalcErrorInfoPresModel[] - ParameterId["CalcErrorInfos"] = "errorInfoList"; - // DPI_CalcualtionValidation, having type CalculationValidationPresModel - ParameterId["CalcualtionValidation"] = "calculationValidation"; - // DPI_ExpressionFunction, having type ExpressionFunctionPresModel - ParameterId["ExpressionFunction"] = "expressionFunc"; - // DPI_ExpressionFunctions, having type ExpressionFunctionPresModel[] - ParameterId["ExpressionFunctions"] = "expressionFuncList"; - // DPI_ExpressionFunctionsPM, having type ExpressionFunctionsPresModel - ParameterId["ExpressionFunctionsPM"] = "expressionFuncPm"; - // DPI_StyleToken, having type StyleTokenPresModel - ParameterId["StyleToken"] = "styleToken"; - // DPI_StyleTokens, having type StyleTokenPresModel[] - ParameterId["StyleTokens"] = "styleTokenList"; - // DPI_CalcEditorTextSelection, having type CalcEditorTextSelectionPresModel - ParameterId["CalcEditorTextSelection"] = "calcEditorTextSelection"; - // DPI_AutoCompleteItemType, having type AutoCompleteItemType - ParameterId["AutoCompleteItemType"] = "autocompleteType"; - // DPI_AutoCompleteItem, having type AutoCompleteItemPresModel - ParameterId["AutoCompleteItem"] = "autocompleteItem"; - // DPI_AutoCompleteItems, having type AutoCompleteItemPresModel[] - ParameterId["AutoCompleteItems"] = "autocompleteItemList"; - // DPI_CalculationAutoCompleteContextMenu, having type CalculationAutoCompleteContextMenuPresModel - ParameterId["CalculationAutoCompleteContextMenu"] = "calculationAutocompleteContextMenu"; - // DPI_CalcApplyResult, having type CalcApplyResult - ParameterId["CalcApplyResult"] = "calculationApplyResult"; - // DPI_RampBorderStyledBox, having type StyledBoxPresModel - ParameterId["RampBorderStyledBox"] = "rampBorderStyledBox"; - // DPI_StyledBox, having type StyledBoxPresModel - ParameterId["StyledBox"] = "styledBox"; - // DPI_GlobalStyledBox, having type StyledBoxPresModel - ParameterId["GlobalStyledBox"] = "globalStyledBox"; - // DPI_StyleContext, having type StyleContextPresModel - ParameterId["StyleContext"] = "styleContext"; - // DPI_CurrentTextStyle, having type TextStylePresModel - ParameterId["CurrentTextStyle"] = "currentTextStyle"; - // DPI_LabelTextStyle, having type TextStylePresModel - ParameterId["LabelTextStyle"] = "labelTextStyle"; - // DPI_OriginalTextStyle, having type TextStylePresModel - ParameterId["OriginalTextStyle"] = "originalTextStyle"; - // DPI_SelectedTextStyleModel, having type TextStylePresModel - ParameterId["SelectedTextStyleModel"] = "selectedTextStyleModel"; - // DPI_SwatchTextStyleModel, having type TextStylePresModel - ParameterId["SwatchTextStyleModel"] = "swatchTextStyle"; - // DPI_TextStyleModel, having type TextStylePresModel - ParameterId["TextStyleModel"] = "textStyle"; - // DPI_TitleStyleModel, having type TextStylePresModel - ParameterId["TitleStyleModel"] = "titleStyleModel"; - // DPI_PropertyBag, having type PropertyBagPresModel - ParameterId["PropertyBag"] = "propBagWrapper"; - // DPI_PresModelMap, having type Dictionary(of PropertyBagPresModel) - ParameterId["PresModelMap"] = "presModelMap"; - // DPI_PresentationLayerNotifications, having type PresModelMapPresModel - ParameterId["PresentationLayerNotifications"] = "presentationLayerNotifications"; - // DPI_SecondaryInfo, having type PresModelMapPresModel - ParameterId["SecondaryInfo"] = "secondaryInfo"; - // DPI_ClientDashboardUIMetric, having type ClientDashboardUIMetricPresModel - ParameterId["ClientDashboardUIMetric"] = "clientDashboardUiMetric"; - // DPI_ClientDashboardUIMetrics, having type ClientDashboardUIMetricPresModel[] - ParameterId["ClientDashboardUIMetrics"] = "clientDashboardUiMetrics"; - // DPI_ClientDashboardUIMetricContainer, having type ClientDashboardUIMetricContainerPresModel - ParameterId["ClientDashboardUIMetricContainer"] = "clientDashboardUiMetricContainer"; - // DPI_ExtSvcConfig, having type ExtSvcConfigPresModel - ParameterId["ExtSvcConfig"] = "extSvcConfig"; - // DPI_StoryboardSheetItem, having type StoryboardSheetItemPresModel - ParameterId["StoryboardSheetItem"] = "storyboardSheetItem"; - // DPI_StoryboardSheetItems, having type StoryboardSheetItemPresModel[] - ParameterId["StoryboardSheetItems"] = "storyboardSheetItems"; - // DPI_StoryboardSheetList, having type StoryboardSheetListPresModel - ParameterId["StoryboardSheetList"] = "storyboardSheetList"; - // DPI_FitToStoryBoardOptionItem, having type FitToStoryBoardOptionItemPresModel - ParameterId["FitToStoryBoardOptionItem"] = "fitToStoryboardOptionItem"; - // DPI_FitToStoryBoardOptionItems, having type FitToStoryBoardOptionItemPresModel[] - ParameterId["FitToStoryBoardOptionItems"] = "fitToStoryboardOptionItems"; - // DPI_FitToStoryBoardOptionList, having type FitToStoryBoardOptionListPresModel - ParameterId["FitToStoryBoardOptionList"] = "fitToStoryboardOptionList"; - // DPI_StoryPointNavItem, having type StoryPointNavItemPresModel - ParameterId["StoryPointNavItem"] = "storypointNavItem"; - // DPI_StoryPointNavItems, having type StoryPointNavItemPresModel[] - ParameterId["StoryPointNavItems"] = "storypointNavItems"; - // DPI_FlipboardNav, having type FlipboardNavPresModel - ParameterId["FlipboardNav"] = "flipboardNav"; - // DPI_ScrollBarStyle, having type ScrollBarStylePresModel - ParameterId["ScrollBarStyle"] = "scrollBarStyle"; - // DPI_DashboardZoneLayoutPane, having type DashboardZoneLayoutPanePresModel - ParameterId["DashboardZoneLayoutPane"] = "dashboardZoneLayoutPane"; - // DPI_SelectedStoryPointStyle, having type StoryPointCaptionStylePresModel - ParameterId["SelectedStoryPointStyle"] = "selectedStoryPointStyle"; - // DPI_UnselectedStoryPointStyle, having type StoryPointCaptionStylePresModel - ParameterId["UnselectedStoryPointStyle"] = "unselectedStoryPointStyle"; - // DPI_FlipboardNavStyle, having type FlipboardNavStylePresModel - ParameterId["FlipboardNavStyle"] = "flipboardNavStyle"; - // DPI_StoryPoint, having type StoryPointPresModel - ParameterId["StoryPoint"] = "storyPoint"; - // DPI_StoryPoints, having type Dictionary(of StoryPointPresModel) - ParameterId["StoryPoints"] = "storyPoints"; - // DPI_Flipboard, having type FlipboardPresModel - ParameterId["Flipboard"] = "flipboard"; - // DPI_StoryPair, having type StoryPairPresModel - ParameterId["StoryPair"] = "storyPair"; - // DPI_StoryPairs, having type StoryPairPresModel[] - ParameterId["StoryPairs"] = "storyPairs"; - // DPI_StoryboardPM, having type StoryboardPresModel - ParameterId["StoryboardPM"] = "storyboardPm"; - // DPI_HiDpiIconDictionary, having type ImageCollectionPresModel - ParameterId["HiDpiIconDictionary"] = "hiDpiIconDictionary"; - // DPI_IconDictionary, having type ImageCollectionPresModel - ParameterId["IconDictionary"] = "iconDictionary"; - // DPI_IconResourceDictionary, having type ImageResourceCollectionPresModel - ParameterId["IconResourceDictionary"] = "iconResDictionary"; - // DPI_DataPreviewWindowMessage, having type DataPreviewWindowMessagePresModel - ParameterId["DataPreviewWindowMessage"] = "dataPreviewWindowMessage"; - // DPI_DataSourceData, having type DataSourceDataPresModel - ParameterId["DataSourceData"] = "dataSrcData"; - // DPI_DataSourceSort, having type DataSourceSortPresModel - ParameterId["DataSourceSort"] = "dataSrcSort"; - // DPI_ColumnInfo, having type DSColumnInfoPresModel - ParameterId["ColumnInfo"] = "columnInfo"; - // DPI_ColumnInfos, having type DSColumnInfoPresModel[] - ParameterId["ColumnInfos"] = "columnInfos"; - // DPI_DataFormatter, having type DVFormatter - ParameterId["DataFormatter"] = "dataFormatter"; - // DPI_JoinDescription, having type JoinDescriptionPresModel - ParameterId["JoinDescription"] = "joinDescription"; - // DPI_JoinDescriptions, having type Dictionary(of JoinDescriptionPresModel) - ParameterId["JoinDescriptions"] = "joinDescriptions"; - // DPI_FileTableInfo, having type FileTableInfoPresModel - ParameterId["FileTableInfo"] = "fileTableInfo"; - // DPI_FieldMapping, having type FieldMappingPresModel - ParameterId["FieldMapping"] = "fieldMapping"; - // DPI_FieldMappingData, having type FieldMappingDataPresModel - ParameterId["FieldMappingData"] = "fieldMappingData"; - // DPI_FieldMappingDataVector, having type FieldMappingDataPresModel[] - ParameterId["FieldMappingDataVector"] = "fieldMappingDataVector"; - // DPI_FrameFinder, having type FrameFinderPresModel - ParameterId["FrameFinder"] = "frameFinder"; - // DPI_SheetLinkFieldMapping, having type SheetLinkFieldMappingPresModel - ParameterId["SheetLinkFieldMapping"] = "sheetLinkFieldMapping"; - // DPI_UnionInfo, having type UnionInfoPresModel - ParameterId["UnionInfo"] = "unionInfo"; - // DPI_UnionTableInfo, having type UnionTableInfoPresMode - ParameterId["UnionTableInfo"] = "unionTableInfo"; - // DPI_UnionTableInfos, having type UnionTableInfoPresModel[] - ParameterId["UnionTableInfos"] = "unionTableInfos"; - // DPI_ConnectionPBUnionInfo, having type PBUnionInfoPresModel - ParameterId["ConnectionPBUnionInfo"] = "connectionPbunionInfo"; - // DPI_ConnectionPBUnionInfos, having type PBUnionInfoPresModel[] - ParameterId["ConnectionPBUnionInfos"] = "connectionPbunionInfos"; - // DPI_JoinClause, having type JoinClausePresModel - ParameterId["JoinClause"] = "joinClause"; - // DPI_JoinClauses, having type JoinClausePresModel[] - ParameterId["JoinClauses"] = "joinClauses"; - // DPI_JoinValidationResult, having type JoinValidationResultPresModel - ParameterId["JoinValidationResult"] = "joinValidationResult"; - // DPI_JoinTableInfo, having type JoinTableInfoPresModel - ParameterId["JoinTableInfo"] = "joinTableInfo"; - // DPI_ParameterInfo, having type JoinTableInfoPresModel - ParameterId["ParameterInfo"] = "parameterInfo"; - // DPI_JoinTableInfos, having type JoinTableInfoPresModel[] - ParameterId["JoinTableInfos"] = "joinTableInfos"; - // DPI_JoinOnCalcInfo, having type JoinOnCalcInfoPresModel - ParameterId["JoinOnCalcInfo"] = "joinOnCalcInfo"; - // DPI_ConnectionSummary, having type ConnectionSummaryPresModel - ParameterId["ConnectionSummary"] = "connectionSummary"; - // DPI_ConnectionSummaries, having type ConnectionSummaryPresModel[] - ParameterId["ConnectionSummaries"] = "connectionSummaries"; - // DPI_TopLevelConnectionDescription, having type TopLevelConnectionDescriptionPresModel - ParameterId["TopLevelConnectionDescription"] = "topLevelConnectionDescription"; - // DPI_DataConnectionTableViewMessages, having type DataConnectionTableViewMessagesPresModel - ParameterId["DataConnectionTableViewMessages"] = "dataConnectionTableViewMessages"; - // DPI_TextTransformScript, having type TextTransformScriptPresModel - ParameterId["TextTransformScript"] = "textTransformScript"; - // DPI_CalendarDateOptions, having type CalendarDateOptionsPresModel - ParameterId["CalendarDateOptions"] = "calendarDateOptions"; - // DPI_GoToWorksheetTooltipPresModel, having type GoToWorksheetTooltipPresModel - ParameterId["GoToWorksheetTooltipPresModel"] = "goToWorksheetTooltipPresModel"; - // DPI_TableCleaningPresModel, having type TableCleaningPresModel - ParameterId["TableCleaningPresModel"] = "tableCleaningPresModel"; - // DPI_PivotPresModel, having type PivotPresModel - ParameterId["PivotPresModel"] = "pivotPresModel"; - // DPI_PivotTreeItemPresModel, having type PivotTreeItemPresModel - ParameterId["PivotTreeItemPresModel"] = "pivotTreeItemPresModel"; - // DPI_PivotTreeItems, having type PivotTreeItemPresModel[] - ParameterId["PivotTreeItems"] = "pivotTreeItemsPresModel"; - // DPI_PivotDisplay, having type PivotDisplayPresModel - ParameterId["PivotDisplay"] = "pivotDisplay"; - // DPI_PivotTag, having type NameColumnsPairPresModel - ParameterId["PivotTag"] = "pivotTag"; - // DPI_PivotGroups, having type NameColumnsPairPresModel[] - ParameterId["PivotGroups"] = "pivotGroups"; - // DPI_DataSourceDropdown, having type DataSourceDropdownPresModel - ParameterId["DataSourceDropdown"] = "dataSourceDropdown"; - // DPI_ConnectionDropdown, having type ConnectionDropdownPresModel - ParameterId["ConnectionDropdown"] = "connectionDropdown"; - // DPI_ActivityEvent, having type ActivityEventPresModel - ParameterId["ActivityEvent"] = "activityEvent"; - // DPI_UIAutomation, having type UIAutomationPresModel - ParameterId["UIAutomation"] = "uiAutomation"; - // DPI_UIAutomationIndex, having type UIAutomationIndexPresModel - ParameterId["UIAutomationIndex"] = "uiAutomationIndex"; - // DPI_UIAutomationIndexList, having type UIAutomationIndexPresModel[] - ParameterId["UIAutomationIndexList"] = "uiAutomationIndexList"; - // DPI_UIAutomationComponentInfo, having type UIAutomationComponentInfoPresModel - ParameterId["UIAutomationComponentInfo"] = "uiAutomationComponentInfo"; - // DPI_UIAutomationComponentInfoList, having type UIAutomationComponentInfoPresModel[] - ParameterId["UIAutomationComponentInfoList"] = "uiAutomationComponentInfoList"; - // DPI_Geometry, having type GeometryPresModel - ParameterId["Geometry"] = "geometry"; - // DPI_MultiPoint, having type MultiPointPresModel - ParameterId["MultiPoint"] = "multiPoint"; - // DPI_MultiLine, having type MultiLinePresModel - ParameterId["MultiLine"] = "multiLine"; - // DPI_MultiPolygon, having type MultiPolygonPresModel - ParameterId["MultiPolygon"] = "multiPolygon"; - // DPI_Polygon, having type PolygonPresModel - ParameterId["Polygon"] = "polygon"; - // DPI_PolygonList, having type PolygonPresModel[] - ParameterId["PolygonList"] = "polygonList"; - // DPI_Line, having type LinePresModel - ParameterId["Line"] = "line"; - // DPI_LineList, having type LinePresModel[] - ParameterId["LineList"] = "lineList"; - // DPI_TabbedAuthentication, having type TabbedAuthenticationPresModel - ParameterId["TabbedAuthentication"] = "tabbedAuthentication"; - // DPI_TabbedAuthenticationTabInfo, having type TabbedAuthenticationTabInfoPresModel - ParameterId["TabbedAuthenticationTabInfo"] = "tabbedAuthenticationTabInfo"; - // DPI_TabbedAuthenticationTabInfos, having type TabbedAuthenticationTabInfoPresModel[] - ParameterId["TabbedAuthenticationTabInfos"] = "tabbedAuthenticationTabInfos"; - // DPI_GeographicSearchCandidate, having type GeographicSearchCandidatePresModel - ParameterId["GeographicSearchCandidate"] = "geographicSearchCandidate"; - // DPI_GeographicSearchCandidateList, having type GeographicSearchCandidatePresModel[] - ParameterId["GeographicSearchCandidateList"] = "geographicSearchCandidateList"; - // DPI_GeographicSearchResults, having type GeographicSearchPresModel - ParameterId["GeographicSearchResults"] = "geographicSearchResults"; - // DPI_ParamInfo, having type ParameterInfoPresModel - ParameterId["ParamInfo"] = "paramInfo"; - // DPI_ParamInfos, having type ParameterInfoPresModel[] - ParameterId["ParamInfos"] = "paramInfos"; - // DPI_ParamNamespaceInfo, having type ParameterNamespaceInfoInfoPresModel - ParameterId["ParamNamespaceInfo"] = "paramNamespaceInfo"; - // DPI_ParamNamespaceInfos, having type ParameterNamespaceInfoPresModel[] - ParameterId["ParamNamespaceInfos"] = "paramNamespaceInfos"; - // DPI_ParamRegistryInfo, having type ParameterRegistryInfoPresModel - ParameterId["ParamRegistryInfo"] = "paramRegistryInfo"; - // DPI_DataSourceProperties, having type DataSourcePropertiesPresModel - ParameterId["DataSourceProperties"] = "connectionProperties"; - // DPI_ConnectionTypePresModel, having type ConnectionTypePresModel - ParameterId["ConnectionTypePresModel"] = "connectionTypePresModel"; - // DPI_ConnectionTypes, having type ConnectionTypePresModel[] - ParameterId["ConnectionTypes"] = "connectionTypes"; - // DPI_ConnectionTypeGroupPresModel, having type ConnectionTypeGroupPresModel - ParameterId["ConnectionTypeGroupPresModel"] = "connectionTypeGroupPresModel"; - // DPI_SavedDataSourcePresModel, having type SavedDataSourcePresModel - ParameterId["SavedDataSourcePresModel"] = "savedDatasourcePresModel"; - // DPI_SavedDataSources, having type SavedDataSourcePresModel[] - ParameterId["SavedDataSources"] = "savedDatasources"; - // DPI_SavedDataSourcesPresModel, having type SavedDataSourcesPresModel - ParameterId["SavedDataSourcesPresModel"] = "savedDatasourcesPresModel"; - // DPI_OpenPaneItemPresModel, having type OpenPaneItemPresModel - ParameterId["OpenPaneItemPresModel"] = "openPaneItemPresModel"; - // DPI_OpenPaneItems, having type OpenPaneItemPresModel[] - ParameterId["OpenPaneItems"] = "openPaneItems"; - // DPI_OpenPaneItemsPresModel, having type OpenPaneItemsPresModel - ParameterId["OpenPaneItemsPresModel"] = "openPaneItemsPresModel"; - // DPI_VariableValue, having type VariableValuePresModel - ParameterId["VariableValue"] = "variableValue"; - // DPI_VariableValues, having type VariableValuePresModel[] - ParameterId["VariableValues"] = "variableValues"; - // DPI_ServerVariableValue, having type ServerVariableValuePresModel - ParameterId["ServerVariableValue"] = "serverVariableValue"; - // DPI_EditableVariableValue, having type EditableVariableValuePresModel - ParameterId["EditableVariableValue"] = "editableVariableValue"; - // DPI_ServerVariableMetadata, having type ServerVariableMetadataPresModel - ParameterId["ServerVariableMetadata"] = "serverVariableMetadata"; - // DPI_PromptVariable, having type PromptVariablePresModel - ParameterId["PromptVariable"] = "promptVariable"; - // DPI_PromptVariables, having type PromptVariablePresModel[] - ParameterId["PromptVariables"] = "promptVariables"; - // DPI_VariablePromptDialog, having type VariablePromptDialogPresModel - ParameterId["VariablePromptDialog"] = "variablePromptDialog"; - // DPI_VariableValueOperation, having type VariableValueOperationPresModel - ParameterId["VariableValueOperation"] = "variableValueOperation"; - // DPI_VariableValueOperations, having type VariableValueOperationPresModel[] - ParameterId["VariableValueOperations"] = "variableValueOperations"; - // DPI_TableOptionsPresModel, having type TableOptionsPresModel - ParameterId["TableOptionsPresModel"] = "tableOptionsPresModel"; - // DPI_ClientInfoPresModel, having type ClientInfoPresModel - ParameterId["ClientInfoPresModel"] = "clientInfoPresModel"; - // DPI_TableauFileInfoPresModel, having type TableauFileInfoPresModel - ParameterId["TableauFileInfoPresModel"] = "tableauFileInfoPresModel"; - // DPI_DebuggingInfoPresModel, having type DebuggingInfoPresModel - ParameterId["DebuggingInfoPresModel"] = "debuggingInfoPresModel"; - // DPI_RunningThreadInfoPresModel, having type RunningThreadInfoPresModel - ParameterId["RunningThreadInfoPresModel"] = "runningThreadInfoPresModel"; - // DPI_AboutDialogInfoPresModel, having type AboutDialogInfoPresModel - ParameterId["AboutDialogInfoPresModel"] = "aboutDialogInfoPresModel"; - // DPI_HybridUIShowcasePresModel, having type HybridUIShowcasePresModel - ParameterId["HybridUIShowcasePresModel"] = "hybridUiShowcasePresModel"; - // DPI_DefaultTextFormat, having type DefaultTextFormatPresModel - ParameterId["DefaultTextFormat"] = "defaultTextFormat"; - // DPI_MapBoxServerInfoPresModel, having type MapBoxServerInfoPresModel - ParameterId["MapBoxServerInfoPresModel"] = "mapboxServerInfoPresModel"; - // DPI_WMSServerInfoPresModel, having type WMSServerInfoPresModel - ParameterId["WMSServerInfoPresModel"] = "wmsServerInfoPresModel"; - // DPI_MapSourceConflictPresModel, having type MapSourceConflictPresModel - ParameterId["MapSourceConflictPresModel"] = "mapSourceConflictPresModel"; - // DPI_EnumeratedSetDialogPresModel, having type EnumeratedSetDialogPresModel - ParameterId["EnumeratedSetDialogPresModel"] = "enumeratedSetDialogPresModel"; - // DPI_EditAliasesDialog, having type EditAliasesDialogPresModel - ParameterId["EditAliasesDialog"] = "editAliasesDialogPresModel"; - // DPI_AliasesPresModel, having type AliasesPresModel - ParameterId["AliasesPresModel"] = "aliasesPresModel"; - // DPI_ClearAliasesPresModel, having type AliasesPresModel - ParameterId["ClearAliasesPresModel"] = "clearAliasesPresModel"; - // DPI_NewAliasesPresModel, having type NewAliasesPresModel - ParameterId["NewAliasesPresModel"] = "newAliasesPresModel"; - // DPI_AliasPresModel, having type AliasPresModel - ParameterId["AliasPresModel"] = "aliasPresModel"; - // DPI_AliasItem, having type AliasItemPresModel - ParameterId["AliasItem"] = "aliasItem"; - // DPI_DuplicateAliasItem, having type AliasItemPresModel - ParameterId["DuplicateAliasItem"] = "duplicateAliasItem"; - // DPI_AliasList, having type AliasItemPresModel[] - ParameterId["AliasList"] = "aliasList"; - // DPI_AliasResultItem, having type AliasResultItemPresModel - ParameterId["AliasResultItem"] = "aliasResultItem"; - // DPI_AliasResultList, having type AliasResultItemPresModel[] - ParameterId["AliasResultList"] = "aliasResultList"; - // DPI_AliasResults, having type AliasResultsPresModel - ParameterId["AliasResults"] = "aliasResults"; - // DPI_EditSetDialogPresModel, having type EditSetDialogPresModel - ParameterId["EditSetDialogPresModel"] = "editSetDialogPresModel"; - // DPI_ConfirmationPresModel, having type ConfirmationPresModel - ParameterId["ConfirmationPresModel"] = "confirmationPresModel"; - // DPI_NotificationPresModel, having type NotificationPresModel - ParameterId["NotificationPresModel"] = "notificationPresModel"; - // DPI_RetargetDataSourceDialogPresModel, having type RetargetDataSourceDialogPresModel - ParameterId["RetargetDataSourceDialogPresModel"] = "retargetDatasourceDialogPresModel"; - // DPI_SharedFilterPresModel, having type SharedFilterPresModel - ParameterId["SharedFilterPresModel"] = "sharedFilterPresModel"; - // DPI_SharedFilterWorksheetInfo, having type SharedFilterWorksheetInfoPresModel - ParameterId["SharedFilterWorksheetInfo"] = "sharedFilterWorksheetInfo"; - // DPI_SharedFilterWorksheetInfoList, having type SharedFilterWorksheetInfoPresModel[] - ParameterId["SharedFilterWorksheetInfoList"] = "sharedFilterWorksheetInfoList"; - // DPI_FieldPickerTreePresModel, having type FieldPickerTreePresModel - ParameterId["FieldPickerTreePresModel"] = "fieldPickerTreePresModel"; - // DPI_FieldPickerTreePresModelSource, having type FieldPickerTreePresModel - ParameterId["FieldPickerTreePresModelSource"] = "fieldPickerTreePresModelSource"; - // DPI_FieldPickerTreePresModelTarget, having type FieldPickerTreePresModel - ParameterId["FieldPickerTreePresModelTarget"] = "fieldPickerTreePresModelTarget"; - // DPI_ErrorInfo, having type ErrorInfoPresModel - ParameterId["ErrorInfo"] = "errorInfoPresModel"; - // DPI_CustomSplitPresModel, having type CustomSplitPresModel - ParameterId["CustomSplitPresModel"] = "customSplitPresModel"; - // DPI_PageSetup, having type PageSetupPresModel - ParameterId["PageSetup"] = "pageSetup"; - // DPI_ServerConnectStatus, having type ServerConnectionStatus - ParameterId["ServerConnectStatus"] = "serverConnectionStatus"; - // DPI_GetFilterItemsResponse, having type GetFilterItemsResponsePresModel - ParameterId["GetFilterItemsResponse"] = "getFilterItemsResponse"; - // DPI_FilterSearchResponse, having type FilterSearchResponsePresModel - ParameterId["FilterSearchResponse"] = "filterSearchResponse"; - // DPI_FilterSearchWithIndexResponse, having type FilterSearchWithIndexResponsePresModel - ParameterId["FilterSearchWithIndexResponse"] = "filterSearchWithIndexResponse"; - // DPI_FilterShowChildrenResponse, having type FilterShowChildrenResponsePresModel - ParameterId["FilterShowChildrenResponse"] = "filterShowChildrenResponse"; - // DPI_EditDataServerConnection, having type EditDataServerConnectionPresModel - ParameterId["EditDataServerConnection"] = "editDataServerConnection"; - // DPI_ImagesEdit, having type ImagesEditPresModel - ParameterId["ImagesEdit"] = "imagesEdit"; - // DPI_BackgroundImage, having type BackgroundImagePresModel - ParameterId["BackgroundImage"] = "backgroundImage"; - // DPI_BackgroundImages, having type BackgroundImagePresModel[] - ParameterId["BackgroundImages"] = "backgroundImages"; - // DPI_Predicate, having type PredicatePresModel - ParameterId["Predicate"] = "predicate"; - // DPI_Predicates, having type PredicatePresModel[] - ParameterId["Predicates"] = "predicates"; - // DPI_ImagesEditResult, having type ImagesEditResultPresModel - ParameterId["ImagesEditResult"] = "imagesEditResult"; - // DPI_SortDialogPresModel, having type SortDialogPresModel - ParameterId["SortDialogPresModel"] = "sortDialogPresModel"; - // DPI_CompoundTableCalc, having type CompoundTableCalculationPresModel - ParameterId["CompoundTableCalc"] = "compoundTableCalculationPresModel"; - // DPI_TableCalc, having type TableCalculationPresModel - ParameterId["TableCalc"] = "tableCalculationPresModel"; - // DPI_TableCalcs, having type TableCalculationPresModel[] - ParameterId["TableCalcs"] = "tableCalculationPresModels"; - // DPI_TableCalcIdentifier, having type TableCalcIdentifierPresModel - ParameterId["TableCalcIdentifier"] = "tableCalcIdentifier"; - // DPI_NestedTableCalcInfo, having type NestedTableCalcInfoPresModel - ParameterId["NestedTableCalcInfo"] = "nestedTableCalcInfo"; - // DPI_NestedTableCalcInfos, having type NestedTableCalcInfoPresModel[] - ParameterId["NestedTableCalcInfos"] = "nestedTableCalcInfos"; - // DPI_Ordering, having type TableCalcOrderingPresModel - ParameterId["Ordering"] = "tableCalcOrderingPresModel"; - // DPI_Cumulative, having type CumulativeTableCalcPresModel - ParameterId["Cumulative"] = "cumulativeTableCalcPresModel"; - // DPI_ReferenceOptions, having type TableCalcReferenceOptionsPresModel - ParameterId["ReferenceOptions"] = "tableCalcReferenceOptionsPresModel"; - // DPI_Difference, having type DifferenceTableCalcPresModel - ParameterId["Difference"] = "differenceTableCalcPresModel"; - // DPI_Window, having type WindowTableCalcPresModel - ParameterId["Window"] = "windowTableCalcPresModel"; - // DPI_PercentTotal, having type PercentTotalTableCalcPresModel - ParameterId["PercentTotal"] = "percentTotalTableCalcPresModel"; - // DPI_Rank, having type RankTableCalcPresModel - ParameterId["Rank"] = "rankTableCalcPresModel"; - // DPI_Custom, having type CustomTableCalcPresModel - ParameterId["Custom"] = "customTableCalcPresModel"; - // DPI_WebDataUrl, having type WebDataUrlPresModel - ParameterId["WebDataUrl"] = "webDataUrl"; - // DPI_VisitedWebDataConnectors, having type WebDataUrlPresModel[] - ParameterId["VisitedWebDataConnectors"] = "visitedWebDataConnectors"; - // DPI_WebDataSessionUrls, having type WebDataUrlPresModel[] - ParameterId["WebDataSessionUrls"] = "webDataSessionUrls"; - // DPI_WebDataUrls, having type WebDataUrlPresModel[] - ParameterId["WebDataUrls"] = "webDataUrls"; - // DPI_FieldPicker, having type FieldPickerPresModel - ParameterId["FieldPicker"] = "fieldPicker"; - // DPI_DescribeField, having type DescribeFieldPresModel - ParameterId["DescribeField"] = "describeField"; - // DPI_ShowDataPresModel, having type ShowDataPresModel - ParameterId["ShowDataPresModel"] = "showDataPresModel"; - // DPI_DataTablePresModel, having type ShowDataTablePresModel - ParameterId["DataTablePresModel"] = "dataTablePresModel"; - // DPI_DataTablePresModels, having type ShowDataTablePresModel[] - ParameterId["DataTablePresModels"] = "dataTablePresModels"; - // DPI_SummaryTablePresModels, having type ShowDataTablePresModel[] - ParameterId["SummaryTablePresModels"] = "summaryTablePresModels"; - // DPI_RefreshAllExtractsPresModel, having type RefreshAllExtractsPresModel - ParameterId["RefreshAllExtractsPresModel"] = "refeshAllExtractsPresModel"; - // DPI_RefreshExtractDataSourcePresModel, having type RefreshExtractDataSourcePresModel - ParameterId["RefreshExtractDataSourcePresModel"] = "refreshExtractDatasourcePresModel"; - // DPI_RefreshExtractDataSourceList, having type RefreshExtractDataSourcePresModel[] - ParameterId["RefreshExtractDataSourceList"] = "refreshExtractDatasourceList"; - // DPI_ExtractHistoryPresModel, having type ExtractHistoryPresModel - ParameterId["ExtractHistoryPresModel"] = "extractHistoryPresModel"; - // DPI_ExtractHistoryItemPresModel, having type ExtractHistoryItemPresModel - ParameterId["ExtractHistoryItemPresModel"] = "extractHistoryItem"; - // DPI_ExtractHistoryList, having type ExtractHistoryItemPresModel[] - ParameterId["ExtractHistoryList"] = "extractHistoryList"; - // DPI_DataProviderPresModel, having type DataProviderPresModel - ParameterId["DataProviderPresModel"] = "dataProviderPresModel"; - // DPI_FormatItem, having type FormatItemPresModel - ParameterId["FormatItem"] = "formatItem"; - // DPI_FormatItemList, having type FormatItemPresModel[] - ParameterId["FormatItemList"] = "formatItemList"; - // DPI_FormatContainer, having type FormatContainerPresModel - ParameterId["FormatContainer"] = "formatContainer"; - // DPI_FormatPane, having type FormatPanePresModel - ParameterId["FormatPane"] = "formatPane"; - // DPI_FormatSection, having type FormatSectionPresModel - ParameterId["FormatSection"] = "formatSection"; - // DPI_CollapsibleSection, having type CollapsibleSectionPresModel - ParameterId["CollapsibleSection"] = "collapsibleSection"; - // DPI_CompositeContainer, having type CompositeContainerPresModel - ParameterId["CompositeContainer"] = "compositeContainer"; - // DPI_UnitContainer, having type UnitContainerPresModel - ParameterId["UnitContainer"] = "unitContainer"; - // DPI_TabGroup, having type TabGroupPresModel - ParameterId["TabGroup"] = "tabGroup"; - // DPI_Tab, having type TabPresModel - ParameterId["Tab"] = "tab"; - // DPI_FormatControl, having type FormatControlPresModel - ParameterId["FormatControl"] = "formatControl"; - // DPI_TextControl, having type TextControlPresModel - ParameterId["TextControl"] = "textControl"; - // DPI_NumericControl, having type NumericControlPresModel - ParameterId["NumericControl"] = "numericControl"; - // DPI_ColorControl, having type ColorControlPresModel - ParameterId["ColorControl"] = "colorControl"; - // DPI_ToggleControl, having type ToggleControlPresModel - ParameterId["ToggleControl"] = "toggleControl"; - // DPI_SelectorControl, having type SelectorControlPresModel - ParameterId["SelectorControl"] = "enumStringStyle"; - // DPI_StatsAnalyticSpec, having type StatsAnalyticSpecPresModel - ParameterId["StatsAnalyticSpec"] = "statsAnalyticSpec"; - // DPI_ClusterSpec, having type ClusterSpecPresModel - ParameterId["ClusterSpec"] = "clusteringSpec"; - // DPI_ClusterResults, having type ClusterResultsPresModel - ParameterId["ClusterResults"] = "clusterResults"; - // DPI_ClusterUnit, having type ClusterUnitPresModel - ParameterId["ClusterUnit"] = "cluster"; - // DPI_ClusterUnits, having type ClusterUnitPresModel[] - ParameterId["ClusterUnits"] = "clusterUnitPresModels"; - // DPI_ClusterFieldANOVA, having type ClusterFieldANOVAPresModel - ParameterId["ClusterFieldANOVA"] = "clusterFieldAnova"; - // DPI_ClusterFieldANOVATable, having type ClusterFieldANOVAPresModel[] - ParameterId["ClusterFieldANOVATable"] = "clusterFieldAnovaTablePresModel"; - // DPI_ClusterEdit, having type ClusterEditPresModel - ParameterId["ClusterEdit"] = "clusterEditPresModel"; - // DPI_ClusterDescription, having type ClusterDescribePresModel - ParameterId["ClusterDescription"] = "clusterDescription"; - // DPI_OutlierResults, having type OutlierResultsPresModel - ParameterId["OutlierResults"] = "outlierResults"; - // DPI_ConnectToDataServerSourceResult, having type ConnectToDataServerSourceResultPresModel - ParameterId["ConnectToDataServerSourceResult"] = "connectToDataServerSourceResult"; - // DPI_DataServerConnectionReturnStatus, having type ConnectToDataServerSourceResultPresModel - ParameterId["DataServerConnectionReturnStatus"] = "dataServerConnectionReturnStatus"; - // DPI_WebQuantitativeColorDialog, having type WebQuantitativeColorDialogPresModel - ParameterId["WebQuantitativeColorDialog"] = "quantitativeColorDialog"; - // DPI_WebCategoricalColorDialog, having type WebCategoricalColorDialogPresModel - ParameterId["WebCategoricalColorDialog"] = "categoricalColorDialog"; - // DPI_WebSaveDatasourceDialog, having type WebSaveDatasourceDialogPresModel - ParameterId["WebSaveDatasourceDialog"] = "saveDatasourceDialog"; - // DPI_BorderStyleSpec, having type StyleSpecPresModel - ParameterId["BorderStyleSpec"] = "borderStyleSpec"; - // DPI_HaloStyleSpec, having type StyleSpecPresModel - ParameterId["HaloStyleSpec"] = "haloStyleSpec"; - // DPI_MarksColorUberEffects, having type MarksColorUberEffectsPresModel - ParameterId["MarksColorUberEffects"] = "marksColorUberEffects"; - // DPI_CategoricalColorEncoding, having type CategoricalColorEncodingPresModel - ParameterId["CategoricalColorEncoding"] = "categoricalColorEncoding"; - // DPI_CategoricalShapeEncoding, having type CategoricalShapeEncodingPresModel - ParameterId["CategoricalShapeEncoding"] = "categoricalShapeEncoding"; - // DPI_ShapePalettePresModel, having type ShapePalettePresModel - ParameterId["ShapePalettePresModel"] = "shapePalettePresModel"; - // DPI_ShapePalettePresModels, having type ShapePalettePresModel[] - ParameterId["ShapePalettePresModels"] = "shapePalettePresModels"; - // DPI_DataSourceDateProperties, having type DataSourceDatePropertiesPresModel - ParameterId["DataSourceDateProperties"] = "datasourceDateProperties"; - // DPI_DatePropertiesDateFormat, having type DatePropertiesDateFormatPresModel - ParameterId["DatePropertiesDateFormat"] = "datePropertiesDateFormat"; - // DPI_DatePropertiesDateFormats, having type DatePropertiesDateFormatPresModel[] - ParameterId["DatePropertiesDateFormats"] = "datePropertiesDateFormats"; - // DPI_HierarchySelect, having type HierarchySelectModel - ParameterId["HierarchySelect"] = "hierarchySelect"; - // DPI_HierarchySelectMember, having type HierarchySelectMemberPresModel - ParameterId["HierarchySelectMember"] = "hierarchySelectMember"; - // DPI_HierarchySelectMemberList, having type HierarchySelectMemberPresModel[] - ParameterId["HierarchySelectMemberList"] = "hierarchySelectMemberList"; - // DPI_HierarchySetDefaultMember, having type HierarchySetDefaultMemberPresModel - ParameterId["HierarchySetDefaultMember"] = "hierarchySetDefaultMember"; - // DPI_SemiStructSchema, having type SemiStructSchemaPresModel - ParameterId["SemiStructSchema"] = "semiStructSchema"; - // DPI_SemiStructSchemaMember, having type SemiStructSchemaMemberPresModel - ParameterId["SemiStructSchemaMember"] = "semiStructSchemaMember"; - // DPI_SemiStructSchemaMemberList, having type SemiStructSchemaMemberPresModel[] - ParameterId["SemiStructSchemaMemberList"] = "semiStructSchemaMemberList"; - // DPI_ParameterEditInfo, having type ParameterEditInfoPresModel - ParameterId["ParameterEditInfo"] = "parameterEditInfo"; - // DPI_ProductParameterInfo, having type ProductParameterInfoPresModel - ParameterId["ProductParameterInfo"] = "productParameterInfo"; - // DPI_CaptionedDatasourceField, having type CaptionedDatasourceInfoPresModel - ParameterId["CaptionedDatasourceField"] = "captionedDatasourceField"; - // DPI_CaptionedDatasourceFields, having type CaptionedDatasourceInfoPresModel[] - ParameterId["CaptionedDatasourceFields"] = "captionedDatasourceFields"; - // DPI_EditedParameterRangeDomain, having type ParameterRangeDomainPresModel - ParameterId["EditedParameterRangeDomain"] = "editedParameterRangeDomain"; - // DPI_ParameterRangeDomain, having type ParameterRangeDomainPresModel - ParameterId["ParameterRangeDomain"] = "parameterRangeDomain"; - // DPI_ParameterListDomain, having type ParameterListDomainPresModel - ParameterId["ParameterListDomain"] = "parameterListDomain"; - // DPI_ParameterListDomainMember, having type ParameterListDomainMemberPresModel - ParameterId["ParameterListDomainMember"] = "parameterListDomainMember"; - // DPI_ParameterListDomainMembers, having type ParameterListDomainMemberPresModel[] - ParameterId["ParameterListDomainMembers"] = "parameterListDomainMembers"; - // DPI_IndexedDomainMember, having type IndexedDomainMemberPresModel - ParameterId["IndexedDomainMember"] = "indexedDomainMember"; - // DPI_IndexedDomainMembers, having type IndexedDomainMemberPresModel[] - ParameterId["IndexedDomainMembers"] = "indexedDomainMembers"; - // DPI_NewIndexedDomainMembers, having type IndexedDomainMemberPresModel[] - ParameterId["NewIndexedDomainMembers"] = "newIndexedDomainMembers"; - // DPI_ParameterListDomainDiff, having type parameter-list-domain-diff - ParameterId["ParameterListDomainDiff"] = "parameterListDomainDiff"; - // DPI_IndexRange, having type IndexRangePresModel - ParameterId["IndexRange"] = "indexRange"; - // DPI_IndexRanges, having type IndexRangePresModel[] - ParameterId["IndexRanges"] = "indexRanges"; - // DPI_CategoricalFind, having type CategoricalFindPresModel - ParameterId["CategoricalFind"] = "categoricalFind"; - // DPI_CaptionedDataValue, having type CaptionedDataValuePresModel - ParameterId["CaptionedDataValue"] = "captionedDataValue"; - // DPI_SelectedValueCaption, having type CaptionedDataValuePresModel - ParameterId["SelectedValueCaption"] = "selectedValueCaption"; - // DPI_DataValueCaptionList, having type CaptionedDataValuePresModel[] - ParameterId["DataValueCaptionList"] = "dataValueCatpionList"; - // DPI_RangeDataValue, having type RangeDataValuePresModel - ParameterId["RangeDataValue"] = "rangeDataValue"; - // DPI_ParameterRangeDataValue, having type RangeDataValuePresModel - ParameterId["ParameterRangeDataValue"] = "parameterRangeDataValue"; - // DPI_DataValueRangeCaptions, having type DataValueRangeCaptionsPresModel - ParameterId["DataValueRangeCaptions"] = "dataValueRangeCaptions"; - // DPI_IndependentDimension, having type IndependentDimensionPresModel - ParameterId["IndependentDimension"] = "independentDimension"; - // DPI_IndependentDimensions, having type IndependentDimensionPresModel[] - ParameterId["IndependentDimensions"] = "independentDimensions"; - // DPI_AttributePerspective, having type PerspectivePresModel - ParameterId["AttributePerspective"] = "attributePerspective"; - // DPI_CubePerspective, having type PerspectivePresModel - ParameterId["CubePerspective"] = "cubePerspective"; - // DPI_AttributePerspectives, having type PerspectivePresModel[] - ParameterId["AttributePerspectives"] = "attributePerspectives"; - // DPI_CalculatedMembersForEditingPresModel, having type EditCalculatedMembersPresModel - ParameterId["CalculatedMembersForEditingPresModel"] = "calculatedMembersForEditingPresmodel"; - // DPI_CalculatedMember, having type CalculatedMemberPresModel - ParameterId["CalculatedMember"] = "calculatedMember"; - // DPI_NewCalculatedMember, having type CalculatedMemberPresModel - ParameterId["NewCalculatedMember"] = "newCalculatedMember"; - // DPI_UpdatedCalculatedMember, having type CalculatedMemberPresModel - ParameterId["UpdatedCalculatedMember"] = "updatedCalculatedMember"; - // DPI_CalculatedMembersList, having type CalculatedMemberPresModel[] - ParameterId["CalculatedMembersList"] = "calculatedMembersList"; - // DPI_CalculatedMemberHierarchyItem, having type CalculatedMemberHierarchyItemPresModel - ParameterId["CalculatedMemberHierarchyItem"] = "calculatedMemberHierarchyItem"; - // DPI_CalculatedMemberHierarchyList, having type CalculatedMemberHierarchyItemPresModel[] - ParameterId["CalculatedMemberHierarchyList"] = "calculatedMemberHierarchyList"; - // DPI_SummaryCardPresModel, having type SummaryCardPresModel - ParameterId["SummaryCardPresModel"] = "summaryCard"; - // DPI_MeasureSummary, having type MeasureSummaryPresModel - ParameterId["MeasureSummary"] = "measureSummary"; - // DPI_MeasureSummaryList, having type MeasureSummaryPresModel[] - ParameterId["MeasureSummaryList"] = "measureSummaryList"; - // DPI_AnnotationPresModel, having type AnnotationPresModel - ParameterId["AnnotationPresModel"] = "annotation"; - // DPI_AnnotationList, having type AnnotationPresModel[] - ParameterId["AnnotationList"] = "annotationList"; - // DPI_AnnotationShapeStyle, having type AnnotationShapeStylePresModel - ParameterId["AnnotationShapeStyle"] = "annotationShapeStyle"; - // DPI_Telemetry, having type TelemetryPresModel - ParameterId["Telemetry"] = "telemetry"; - // DPI_DataSourceTelemetry, having type DataSourceTelemetryPresModel - ParameterId["DataSourceTelemetry"] = "dataSourceTelemetry"; - // DPI_DataSourceTelemetryList, having type DataSourceTelemetryPresModel[] - ParameterId["DataSourceTelemetryList"] = "dataSourceTelemetryList"; - // DPI_VisualSpecificationTelemetry, having type VisualSpecificationTelemetryPresModel - ParameterId["VisualSpecificationTelemetry"] = "visualSpecificationTelemetry"; - // DPI_VisualSpecificationTelemetryList, having type VisualSpecificationTelemetryPresModel[] - ParameterId["VisualSpecificationTelemetryList"] = "visualSpecificationTelemetryList"; - // DPI_UnderlyingDataTable, having type UnderlyingDataTablePresModel - ParameterId["UnderlyingDataTable"] = "underlyingDataTable"; - // DPI_UnderlyingDataTables, having type UnderlyingDataTablePresModel[] - ParameterId["UnderlyingDataTables"] = "underlyingDataTables"; - // DPI_UnderlyingDataTableColumn, having type UnderlyingDataTableColumnPresModel - ParameterId["UnderlyingDataTableColumn"] = "underlyingDataTableColumn"; - // DPI_UnderlyingDataTableColumns, having type UnderlyingDataTableColumnPresModel[] - ParameterId["UnderlyingDataTableColumns"] = "underlyingDataTableColumns"; - // DPI_PageCacheID, having type PageCacheIDPresModel - ParameterId["PageCacheID"] = "pageCacheId"; - // DPI_RelationalPageCacheID, having type PageCacheIDPresModel - ParameterId["RelationalPageCacheID"] = "relationalPageCacheId"; - // DPI_SearchResultsCacheID, having type PageCacheIDPresModel - ParameterId["SearchResultsCacheID"] = "searchResultsCacheId"; - // DPI_PageInfo, having type PageInfoPresModel - ParameterId["PageInfo"] = "pageInfo"; - // DPI_RowColPair, having type RowColPairPresModel - ParameterId["RowColPair"] = "rowColPair"; - // DPI_TopLeftRowCol, having type RowColPairPresModel - ParameterId["TopLeftRowCol"] = "topLeftRowCol"; - // DPI_BotRightRowCol, having type RowColPairPresModel - ParameterId["BotRightRowCol"] = "botRightRowCol"; - // DPI_RowColPairs, having type RowColPairPresModel[] - ParameterId["RowColPairs"] = "rowColPairs"; - // DPI_TableViewCacheInfo, having type TableViewCachePresModel - ParameterId["TableViewCacheInfo"] = "tableViewCacheInfo"; - // DPI_TableViewInfo, having type tableViewInfoPresModel - ParameterId["TableViewInfo"] = "tableViewInfo"; - // DPI_TableViewColumnInfo, having type TableViewColumnInfoPresModel - ParameterId["TableViewColumnInfo"] = "tableViewColumnInfo"; - // DPI_TableViewColumns, having type TableViewColumnInfoPresModel[] - ParameterId["TableViewColumns"] = "tableViewColumns"; - // DPI_TableViewPageItem, having type TableViewPageItemPresModel - ParameterId["TableViewPageItem"] = "tableViewPageItem"; - // DPI_TableViewPageColumns, having type TableViewPageItemPresModel[] - ParameterId["TableViewPageColumns"] = "tableViewPageColumns"; - // DPI_TableViewPageRow, having type TableViewPageRowPresModel - ParameterId["TableViewPageRow"] = "tableViewPageRow"; - // DPI_TableViewPageRows, having type TableViewPageRowPresModel[] - ParameterId["TableViewPageRows"] = "tableViewPageRows"; - // DPI_TableViewPage, having type TableViewPagePresModel - ParameterId["TableViewPage"] = "tableViewPage"; - // DPI_CategoricalValuePicker, having type CategoricalValuePickerPresModel - ParameterId["CategoricalValuePicker"] = "categoricalValuePicker"; - // DPI_AnnotationShapeBorderStyle, having type LineStylePresModel - ParameterId["AnnotationShapeBorderStyle"] = "annotationShapeBorderStyle"; - // DPI_AnotationShapeStrokeStyle, having type LineStylePresModel - ParameterId["AnotationShapeStrokeStyle"] = "annotationShapeStrokeStyle"; - // DPI_CategoricalBinEditorPresModel, having type CategoricalBinEditorPresModel - ParameterId["CategoricalBinEditorPresModel"] = "categoricalBinEditor"; - // DPI_CategoricalBinItem, having type CategoricalBinItemPresModel - ParameterId["CategoricalBinItem"] = "categoricalBinItemPresModel"; - // DPI_CategoricalBinItems, having type CategoricalBinItemPresModel[] - ParameterId["CategoricalBinItems"] = "categoricalBinItemPresModels"; - // DPI_MeasurePickerFieldInfo, having type MeasurePickerFieldInfoPresModel - ParameterId["MeasurePickerFieldInfo"] = "measurePickerFieldInfo"; - // DPI_MeasurePickerFields, having type MeasurePickerFieldInfoPresModel[] - ParameterId["MeasurePickerFields"] = "measurePickerFields"; - // DPI_MeasureAggregationInfo, having type MeasureAggregationInfoPresModel - ParameterId["MeasureAggregationInfo"] = "measureAggregationInfo"; - // DPI_MeasureAggregations, having type MeasureAggregationInfoPresModel[] - ParameterId["MeasureAggregations"] = "measureAggregations"; - // DPI_TuplePair, having type TuplePairPresModel - ParameterId["TuplePair"] = "tuplePair"; - // DPI_DimensionBound, having type DimensionBoundPresModel - ParameterId["DimensionBound"] = "dimensionBound"; - // DPI_PerspectiveBounds, having type DimensionBoundPresModel[] - ParameterId["PerspectiveBounds"] = "perspectiveBounds"; - // DPI_FilterPerspectiveInfoPresModel, having type FilterPerspectiveInfoPresModel - ParameterId["FilterPerspectiveInfoPresModel"] = "filterPerspectiveInfo"; - // DPI_TableRelevance, having type TableRelevancePresModel - ParameterId["TableRelevance"] = "tableRelevance"; - // DPI_AddInRegistrationPresModel, having type AddInRegistrationPresModel - ParameterId["AddInRegistrationPresModel"] = "addInRegistrationPresModel"; - // DPI_AddInRegistrationPresModelList, having type AddInRegistrationPresModel[] - ParameterId["AddInRegistrationPresModelList"] = "addInRegistrationPresModelList"; - // DPI_AddInDashboardAuthoringWidget, having type AddInDashboardWidgetPresModel - ParameterId["AddInDashboardAuthoringWidget"] = "addInDashboardAuthoringWidgetPresModel"; - // DPI_AddInInstance, having type AddInInstancePresModel - ParameterId["AddInInstance"] = "addInInstancePresModel"; - // DPI_AddInLocator, having type AddInLocatorPresModel - ParameterId["AddInLocator"] = "addInLocatorPresModel"; - // DPI_AddInContext, having type AddInContext - ParameterId["AddInContext"] = "addInContext"; - // DPI_AddInMode, having type AddInMode - ParameterId["AddInMode"] = "addInMode"; - // DPI_SetAxisRangeStartResult, having type SetAxisRangeResult - ParameterId["SetAxisRangeStartResult"] = "setAxisRangeStartResult"; - // DPI_SetAxisRangeEndResult, having type SetAxisRangeResult - ParameterId["SetAxisRangeEndResult"] = "setAxisRangeEndResult"; - // DPI_AddInEnvironment, having type AddInEnvironmentPresModel - ParameterId["AddInEnvironment"] = "addInEnvironmentPresModel"; - // DPI_AddInDashboardInfo, having type AddInDashboardInfoPresModel - ParameterId["AddInDashboardInfo"] = "addInDashboardInfoPresModel"; - // DPI_AddInSettingsInfo, having type AddInSettingsInfoPresModel - ParameterId["AddInSettingsInfo"] = "addInSettingsInfo"; - // DPI_AddInBootstrapInfo, having type AddInBootstrapInfoPresModel - ParameterId["AddInBootstrapInfo"] = "addInBootstrapInfo"; - // DPI_AddInDebugSettings, having type AddInDebugSettingsPresModel - ParameterId["AddInDebugSettings"] = "addInDebugSettings"; - // DPI_RichText, having type RichTextPresModel - ParameterId["RichText"] = "richText"; - // DPI_RichTextKeywordSubList, having type RichTextKeywordSubListPresModel - ParameterId["RichTextKeywordSubList"] = "richTextKeywordsSublist"; - // DPI_RichTextKeywordSubLists, having type RichTextKeywordSubListPresModel[] - ParameterId["RichTextKeywordSubLists"] = "richTextKeywordSublists"; - // DPI_RichTextKeywordList, having type RichTextKeywordListPresModel - ParameterId["RichTextKeywordList"] = "richTextKeywordsList"; - // DPI_RichTextBlockStyle, having type RichTextBlockStylePresModel - ParameterId["RichTextBlockStyle"] = "richTextBlockStyle"; - // DPI_RichTextContentStyle, having type RichTextContentStylePresModel - ParameterId["RichTextContentStyle"] = "richTextContentStyle"; - })(ParameterId = exports.ParameterId || (exports.ParameterId = {})); - - -/***/ }, -/* 11 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(4); - var CommandIds_1 = __webpack_require__(12); - var Params_1 = __webpack_require__(10); - var CommandMappingRegistry_1 = __webpack_require__(13); - var CommandRegistration_1 = __webpack_require__(14); - var CommandMappingRegistryFactory = (function () { - function CommandMappingRegistryFactory() { - } - /** - * Creates and populates a new CommandMappingRegistry for the specific version number requested - * - * @static - * @param {VersionNumber} versionNumber - * @returns {CommandMappingRegistry} - * @memberof CommandMappingRegistryFactory - */ - CommandMappingRegistryFactory.createCommandMappingRegistry = function (versionNumber) { - var result = new CommandMappingRegistry_1.CommandMappingRegistry(); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.InitializeAddIn, CommandIds_1.DocCommands.InitializeAddInInstance, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.AddInLocator, Params_1.ParameterId.AddInLocator)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.AddInBootstrapInfo, Params_1.ParameterId.AddInBootstrapInfo))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetUnderlyingData, CommandIds_1.DocCommands.GetUnderlyingData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreAliases, Params_1.ParameterId.IgnoreAliases), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreSelection, Params_1.ParameterId.IgnoreSelection), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IncludeAllColumns, Params_1.ParameterId.IncludeAllColumns), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.MaxRows, Params_1.ParameterId.MaxRows), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.UnderlyingDataTable, Params_1.ParameterId.UnderlyingDataTable))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetDataSummaryData, CommandIds_1.DocCommands.GetSummaryData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreAliases, Params_1.ParameterId.IgnoreAliases), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreSelection, Params_1.ParameterId.IgnoreSelection), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.UnderlyingSummaryDataTable, Params_1.ParameterId.UnderlyingDataTable))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ApplyCategoricalFilter, CommandIds_1.DocCommands.CategoricalFilter, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.QualifiedFieldCaption), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterValues, Params_1.ParameterId.FilterAliases), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterUpdateType, Params_1.ParameterId.FilterUpdateType), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IsExcludeMode, Params_1.ParameterId.Exclude, true), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Worksheet), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Dashboard)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.FieldCaption))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ApplyRangeFilter, CommandIds_1.DocCommands.RangeFilter, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.QualifiedFieldCaption), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterRangeMin, Params_1.ParameterId.RangeMin, true), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterRangeMax, Params_1.ParameterId.RangeMax, true), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterRangeNullOption, Params_1.ParameterId.Included, true), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Worksheet), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Dashboard)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.FieldCaption))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ClearFilter, CommandIds_1.DocCommands.ClearExistingFilter, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.QualifiedFieldCaption), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Worksheet), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Dashboard)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.WorksheetName, Params_1.ParameterId.Worksheet))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetSelectedMarks, CommandIds_1.DocCommands.GetSelectionData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.SelectedData, Params_1.ParameterId.SelectionData))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetHighlightedMarks, CommandIds_1.DocCommands.GetHighlightedData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.HighlightedData, Params_1.ParameterId.HighlightedData))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.SaveAddInSettings, CommandIds_1.DocCommands.SaveAddInSettings, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.AddInLocator, Params_1.ParameterId.AddInLocator), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.SettingsValues, Params_1.ParameterId.AddInSettings)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.AddInSettingsInfo, Params_1.ParameterId.AddInSettingsInfo))); - return result; - }; - return CommandMappingRegistryFactory; - }()); - exports.CommandMappingRegistryFactory = CommandMappingRegistryFactory; - - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - "use strict"; - /* tslint:disable */ - // ----------------------------------------------------------------------------- - // - // This file is the copyrighted property of Tableau Software and is protected - // by registered patents and other applicable U.S. and international laws and - // regulations. - // - // Unlicensed use of the contents of this file is prohibited. Please refer to - // the NOTICES.txt file for further details. - // - // ----------------------------------------------------------------------------- - // WARNING: Computer generated file. Do not hand modify. - // DEPENDS ON: ['..\\js-api\\api-core\\node_modules\\@tableau\\preslayer-codegen-typescript\\templates\\commands-enum-ts.template', u'..\\js-api\\api-core\\temp-pres-layer\\all-cmd-wrappers.data'] - Object.defineProperty(exports, "__esModule", { value: true }); - var DocCommands; - (function (DocCommands) { - // Saves the settings for the specified add-in id - DocCommands["SaveAddInSettings"] = "save-add-in-settings"; - // Gets the pres model for an add-in instance. - DocCommands["GetAddInInstancePresModel"] = "get-add-in-instance-pres-model"; - // Gets the pres model for the dashboard authoring widget for add-ins. - DocCommands["GetAddInDashboardAuthoringWidgetPresModel"] = "get-add-in-dashboard-authoring-widget-pres-model"; - // Gets the necessary information for an add-in to initialize itself. - DocCommands["InitializeAddInInstance"] = "initialize-add-in-instance"; - // Enables or disable javascript debugging of an add-in. - DocCommands["SetAddInJsDebuggingEnabled"] = "set-add-in-js-debugging-enabled"; - // Whether or not we should pause before loading. If missing, toggle the value - DocCommands["SetPauseBeforeLoadingAddIn"] = "set-pause-before-loading-add-in"; - // Reloads the Add-In widget and web page. - DocCommands["ReloadAddIn"] = "reload-add-in"; - // Retrieves the context menu for a dashboard add-in. - DocCommands["GetAddInZoneContextMenu"] = "get-add-in-zone-context-menu"; - // Gets the pres model which indicates what the debug settings for add-ins is. - DocCommands["GetAddInDebugSettingsPresModel"] = "get-add-in-debug-settings-pres-model"; - // Gets the summary data for a worksheet - DocCommands["GetSummaryData"] = "get-summary-data"; - // Gets the underlying data for a worksheet - DocCommands["GetUnderlyingData"] = "get-underlying-data"; - // Select all marks that have the tuple's value for the given field . - DocCommands["SelectByTupleValue"] = "select-by-tuple-value"; - // Creates or updates and existing filter based on the provided updates. - DocCommands["ApplyCategoricalFilterUpdates"] = "apply-categorical-filter-updates"; - // Search filter domain for text and return any matching tuples. - DocCommands["CategoricalFilterSearch"] = "categorical-filter-search"; - // Clear all members from the table of the identified cache. - DocCommands["CategoricalFilterClearRelationalCache"] = "categorical-filter-clear-relational-cache"; - // Create tuples for an existing filter from supplied text. - DocCommands["GetCategoricalFilterTuplesFromText"] = "get-categorical-filter-tuples-from-text"; - // Returns a presmodel backing a categorical filter, initializing a data cache for fast lookup of the filter's member domain. - DocCommands["GetCategoricalFilter"] = "get-categorical-filter"; - // Retrieves a page of data to display in the filter's list domain - DocCommands["GetCategoricalFilterDomainPage"] = "get-categorical-filter-domain-page"; - // Reset filter to committed state - DocCommands["ResetCategoricalFilterDeferred"] = "reset-categorical-filter-deferred"; - // Use uncommitted state to reset the filter's controller - DocCommands["RecreateCategoricalFilterController"] = "recreate-categorical-filter-controller"; - // Validates a Categroical Filter name. - DocCommands["ValidateCategoricalFilterName"] = "validate-categorical-filter-name"; - // Gets a summary of the filter pattern. - DocCommands["GetCategoricalFilterPatternSummary"] = "get-categorical-filter-pattern-summary"; - // Gets a summery of the filter condition. - DocCommands["GetCategoricalFilterConditionSummary"] = "get-categorical-filter-condition-summary"; - // Load the current minimum and maximum data value range for the condition field. - DocCommands["LoadCategoricalFilterConditionFieldValueRange"] = "load-categorical-filter-condition-field-value-range"; - // Validates a Categorical Filter's condition formula and re-writes it. - DocCommands["ValidateCategoricalFilterConditionFormula"] = "validate-categorical-filter-condition-formula"; - // Gets a summery of the filter limit. - DocCommands["GetCategoricalFilterLimitSummary"] = "get-categorical-filter-limit-summary"; - // Validates a Categorical Filter's limit count. - DocCommands["ValidateCategoricalFilterLimitCount"] = "validate-categorical-filter-limit-count"; - // Validates a Categorical Filter's limit formula, and re-writes the formula. - DocCommands["ValidateCategoricalFilterLimitFormula"] = "validate-categorical-filter-limit-formula"; - // Validates a Categorical Filter's limit. - DocCommands["ValidateCategoricalFilterLimit"] = "validate-categorical-filter-limit"; - // Inform cache when a user changes the range - DocCommands["CategoricalFilterSetRangeTypeDeferred"] = "categorical-filter-set-range-type-deferred"; - // Inform cache when a user changes whether the selection is exclusive - DocCommands["CategoricalFilterSetSelectionExclusiveDeferred"] = "categorical-filter-set-selection-exclusive-deferred"; - // Inform cache when a user changes whether an empty selection should be considered a selection of 'All' in a Manual selection mode - DocCommands["CategoricalFilterSetUseAllWhenManualIsEmptyDeferred"] = "categorical-filter-set-use-all-when-manual-is-empty-deferred"; - // Inform cache when a user alters the preset type - DocCommands["CategoricalFilterSetPresetTypeDeferred"] = "categorical-filter-set-preset-type-deferred"; - // Inform cache the user has selected one or more members - DocCommands["CategoricalFilterSelectRelationalMembersDeferred"] = "categorical-filter-select-relational-members-deferred"; - // Inform cache the user has deselected one or more members - DocCommands["CategoricalFilterDeselectRelationalMembersDeferred"] = "categorical-filter-deselect-relational-members-deferred"; - // Inform cache when a user selects everything in the domain - DocCommands["CategoricalFilterSelectAllRelationalMembersDeferred"] = "categorical-filter-select-all-relational-members-deferred"; - // Inform cache when a user deselects everything in the domain - DocCommands["CategoricalFilterDeselectAllRelationalMembersDeferred"] = "categorical-filter-deselect-all-relational-members-deferred"; - // Inform cache the user wants to see a different domain (e.g. relevant values only) - DocCommands["CategoricalFilterSetDomainTypeDeferred"] = "categorical-filter-set-domain-type-deferred"; - // Set whether filters apply to totals as well as non-totals table calcs - DocCommands["FilterApplyToTotalTableCalcs"] = "filter-apply-to-total-table-calcs"; - // Gets the axis options . - DocCommands["GetAxisOptions"] = "get-axis-options"; - // Reset the axis options . - DocCommands["ResetAxisOptions"] = "reset-axis-options"; - // Show axis edit dialog - DocCommands["ShowEditAxisDialog"] = "show-edit-axis-dialog"; - // Sets the axis direction - DocCommands["SetAxisReversed"] = "set-axis-reversed"; - // Sets the axis scale type - DocCommands["SetAxisScaleType"] = "set-axis-scale-type"; - // Sets the main title of a quantitative axis - DocCommands["SetAxisTitle"] = "set-axis-title"; - // Sets the subtitle of a quantitative axis - DocCommands["SetAxisSubtitle"] = "set-axis-subtitle"; - // Sets whether we should use the automatic subtitle for a quantitative axis - DocCommands["SetAxisUseAutomaticSubtitle"] = "set-axis-use-automatic-subtitle"; - // Sets the axis range type of a quantitative axis - DocCommands["SetAxisRangeType"] = "set-axis-range-type"; - // Sets whether or not to force-include zero on a quantitative axis - DocCommands["SetAxisIncludeZero"] = "set-axis-include-zero"; - // Sets new min/max range endings for axis - DocCommands["SetAxisRange"] = "set-axis-range"; - // Synchronize dual axes on a folded quantitative axis - DocCommands["SetAxisFoldState"] = "set-axis-fold-state"; - // - DocCommands["GetHighlightedData"] = "get-highlighted-data"; - // - DocCommands["GetSelectionData"] = "get-selection"; - // - DocCommands["Select"] = "select"; - // - DocCommands["SelectAll"] = "select-all"; - // - DocCommands["SelectByValue"] = "select-by-value"; - // - DocCommands["SelectNoneIncludingMaster"] = "select-none-including-master"; - // - DocCommands["AddManualItemsToFilter"] = "add-manual-items-to-filter"; - // - DocCommands["CategoricalFilter"] = "categorical-filter"; - // - DocCommands["CategoricalFilterByIndex"] = "categorical-filter-by-index"; - // - DocCommands["ChangeSharedFilter"] = "change-shared-filter"; - // - DocCommands["ClearContextFilters"] = "clear-context-filters"; - // - DocCommands["ClearExistingFilter"] = "clear-existing-filter"; - // - DocCommands["DefaultFilter"] = "default-filter"; - // - DocCommands["FilterGeo"] = "filter-geo"; - // - DocCommands["FilterNeg"] = "filter-neg"; - // - DocCommands["FilterNulls"] = "filter-nulls"; - // - DocCommands["FilterTargets"] = "filter-targets"; - // - DocCommands["GetSharedFilterPresModel"] = "get-shared-filter-pres-model"; - // - DocCommands["HierarchicalFilter"] = "hierarchical-filter"; - // - DocCommands["KeepOnlyOrExclude"] = "keep-only-or-exclude"; - // - DocCommands["RangeFilter"] = "range-filter"; - // - DocCommands["RelDateFilter"] = "relative-date-filter"; - // - DocCommands["ResetFilter"] = "reset-filter"; - // - DocCommands["ShowGeoAtDefault"] = "show-geo-at-default"; - // - DocCommands["ShowSVAtDefault"] = "show-sv-at-default"; - // - DocCommands["ToggleLockQuickFilters"] = "toggle-lock-quick-filters"; - })(DocCommands = exports.DocCommands || (exports.DocCommands = {})); - - -/***/ }, -/* 13 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Registry which contains mappings from an Api VerbId to a pres-layer command. - * This includes the parameters and return values of the command as well - * - * @export - * @class CommandMappingRegistry - */ - var CommandMappingRegistry = (function () { - /** - * Creates an instance of CommandMappingRegistry. - * @memberof CommandMappingRegistry - */ - function CommandMappingRegistry() { - this.commands = {}; - } - /** - * Adds a new command to the registry - * - * @param {CommandRegistration} command - * @memberof CommandMappingRegistry - */ - CommandMappingRegistry.prototype.addCommand = function (command) { - this.commands[command.apiVerbId] = command; - }; - /** - * Whether or not this registry contains a definition for this ApiVerbId - * - * @param {ApiVerbId} apiVerbId - * @returns {boolean} - * @memberof CommandMappingRegistry - */ - CommandMappingRegistry.prototype.hasCommand = function (apiVerbId) { - if (!this.commands.hasOwnProperty(apiVerbId)) { - return false; - } - if (!this.commands[apiVerbId]) { - return false; - } - return true; - }; - /** - * Gets the command registration for this command id or throws if it doesn't exist - * - * @param {ApiVerbId} apiVerbId - * @returns {CommandRegistration} - * @memberof CommandMappingRegistry - */ - CommandMappingRegistry.prototype.getCommand = function (apiVerbId) { - if (!this.hasCommand(apiVerbId)) { - throw new Error('Unknown ApiVerb: ' + apiVerbId); - } - return this.commands[apiVerbId]; - }; - return CommandMappingRegistry; - }()); - exports.CommandMappingRegistry = CommandMappingRegistry; - - -/***/ }, -/* 14 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(4); - /** - * Represents an input or output paramter for a command. - * - * @export - * @class CommandParameter - */ - var CommandParameter = (function () { - /** - * Creates an instance of CommandParameter. - * @param {ApiParameterId} apiId - * @param {PresLayerParameterId} presLayerId - * @param {boolean} [isOptional] - * @memberof CommandParameter - */ - function CommandParameter(_apiId, _presLayerId, _isOptional) { - this._apiId = _apiId; - this._presLayerId = _presLayerId; - this._isOptional = _isOptional; - } - Object.defineProperty(CommandParameter.prototype, "apiId", { - /** - * The Id of the Api Parameter - * - * @readonly - * @type {ApiParameterId} - * @memberof CommandParameter - */ - get: function () { - return this._apiId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CommandParameter.prototype, "presLayerId", { - /** - * The Id of the Pres Layer Parameter - * - * @readonly - * @type {PresLayerParameterId} - * @memberof CommandParameter - */ - get: function () { - return this._presLayerId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CommandParameter.prototype, "isOptional", { - /** - * Whether or not this is an optional parameter - * - * @readonly - * @type {boolean} - * @memberof CommandParameter - */ - get: function () { - return !!this._isOptional; - }, - enumerable: true, - configurable: true - }); - return CommandParameter; - }()); - exports.CommandParameter = CommandParameter; - /** - * Represents a the complete mapping of an ApiCommand to its corresponding pres-layer command - * and the conversion of the output value as well - * - * @export - * @class CommandRegistration - */ - var CommandRegistration = (function () { - function CommandRegistration(_apiVerbId, _commandId, _inputParameters, _outputParameter) { - this._apiVerbId = _apiVerbId; - this._commandId = _commandId; - this._inputParameters = _inputParameters; - this._outputParameter = _outputParameter; - } - Object.defineProperty(CommandRegistration.prototype, "apiVerbId", { - get: function () { - return this._apiVerbId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CommandRegistration.prototype, "commandId", { - get: function () { - return this._commandId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CommandRegistration.prototype, "inputs", { - get: function () { - return this._inputParameters || new Array(); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CommandRegistration.prototype, "output", { - get: function () { - return this._outputParameter; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CommandRegistration.prototype, "needsAddInLocator", { - /** - * Whether or not this command requires an add-in locator to be injected into it - * - * @readonly - * @type {boolean} - * @memberof CommandRegistration - */ - get: function () { - for (var _i = 0, _a = this.inputs; _i < _a.length; _i++) { - var input = _a[_i]; - if (input.apiId === api_internal_contract_1.ParameterId.AddInLocator) { - return true; - } - } - return false; - }, - enumerable: true, - configurable: true - }); - /** - * Creates a dictionary of pres-layer parameters from the input dictionary - * of api parameters. - * - * @param {ExecuteParameters} parameters - The parameters to convert - * @param {ApiToPresLayerMappingRegistry} apiToPresLayer - mapping to determine the conversion - * @returns {{ [paramId: string]: object; }} - parameters to send to the pres-layer - * @memberof CommandRegistration - */ - CommandRegistration.prototype.createParams = function (parameters, apiToPresLayer) { - var result = {}; - for (var _i = 0, _a = this.inputs; _i < _a.length; _i++) { - var inputParam = _a[_i]; - // First make sure the parameter is there or that it's optional - if (!parameters.hasOwnProperty(inputParam.apiId)) { - if (inputParam.isOptional) { - continue; - } - else { - throw new Error('Missing parameter for command: ' + inputParam.apiId); - } - } - // Find the conversion function for this parameter - var conversionFn = apiToPresLayer.get(inputParam.apiId, inputParam.presLayerId); - // Convert the pres model and insert it into our results object - result[inputParam.presLayerId] = conversionFn(parameters[inputParam.apiId]); - } - return result; - }; - /** - * Processes the result received back after executing a pres-layer command - * - * @param {{ [docParamId: string]: object; }} resultParameters - * @param {PresLayerToApiMappingRegistry} presLayerToApi - * @returns {Model} - * @memberof CommandRegistration - */ - CommandRegistration.prototype.ProcessResult = function (resultParameters, presLayerToApi) { - // TODO: Add error handling - if (!resultParameters.hasOwnProperty(this.output.presLayerId)) { - throw new Error('Missing exptected result parameter: ' + this.output.presLayerId); - } - var conversionFn = presLayerToApi.get(this.output.presLayerId, this.output.apiId); - return conversionFn(resultParameters[this.output.presLayerId]); - }; - return CommandRegistration; - }()); - exports.CommandRegistration = CommandRegistration; - - -/***/ }, -/* 15 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(4); - var Events_1 = __webpack_require__(16); - var PresLayerToApiConverter_1 = __webpack_require__(17); - /** - * Simple wrapper which holds a mapping to go from a pres-layer event to an API event - */ - var EventMappingRegistration = (function () { - function EventMappingRegistration(_presLayerId, _apiId, _converter) { - this._presLayerId = _presLayerId; - this._apiId = _apiId; - this._converter = _converter; - } - Object.defineProperty(EventMappingRegistration.prototype, "presLayerId", { - get: function () { - return this._presLayerId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventMappingRegistration.prototype, "apiId", { - get: function () { - return this._apiId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventMappingRegistration.prototype, "converter", { - get: function () { - return this._converter; - }, - enumerable: true, - configurable: true - }); - return EventMappingRegistration; - }()); - exports.EventMappingRegistration = EventMappingRegistration; - var EventMappingRegistryFactory = (function () { - function EventMappingRegistryFactory() { - } - /** - * Creates and populates a new EventMappingRegistry for the specific version number requested - * - * @param {VersionNumber} versionNumber - * @returns {EventMappingRegistry} - */ - EventMappingRegistryFactory.createEventMappingRegistry = function (versionNumber) { - var registry = {}; - registry[Events_1.NotificationId.SelectionChanged] = new EventMappingRegistration(Events_1.NotificationId.SelectionChanged, api_internal_contract_1.NotificationId.SelectedMarksChanged, PresLayerToApiConverter_1.PresLayerToApiConverter.convertVisualId); - return registry; - }; - return EventMappingRegistryFactory; - }()); - exports.EventMappingRegistryFactory = EventMappingRegistryFactory; - - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - "use strict"; - /* tslint:disable */ - // ----------------------------------------------------------------------------- - // - // This file is the copyrighted property of Tableau Software and is protected - // by registered patents and other applicable U.S. and international laws and - // regulations. - // - // Unlicensed use of the contents of this file is prohibited. Please refer to - // the NOTICES.txt file for further details. - // - // ----------------------------------------------------------------------------- - // WARNING: Computer generated file. Do not hand modify. - // DEPENDS ON: ['..\\js-api\\api-core\\node_modules\\@tableau\\preslayer-codegen-typescript\\templates\\events-ts.template', u'..\\js-api\\api-core\\temp-pres-layer\\all-events.data'] - Object.defineProperty(exports, "__esModule", { value: true }); - // Events you can register to receive presentation models - var NotificationId; - (function (NotificationId) { - // Triggered when aliases are to be edited. Used to launch a dialog. - NotificationId["EditAliasesDialogNotification"] = "edit-aliases-dialog-notification-event"; - // for the calculation dialog - NotificationId["CalculationDialog"] = "calculation-dialog-event"; - // update for an adhoc calc in a type in pill - NotificationId["TypeInPill"] = "type-in-pill-event"; - // results of a validation command - NotificationId["CommandValidation"] = "command-validation-event"; - // event for the groups dialog - NotificationId["UpdateCategoricalBinEditDialog"] = "update-categorical-bin-edit-dialog-event"; - // for the categorical color dialog - NotificationId["CategoricalColor"] = "categorical-color-event"; - // update the web categorical color dialog - NotificationId["WebCategoricalColorDialog"] = "web-categorical-color-dialog-event"; - // user invoked action which requires a Data Alert Dialog - NotificationId["DataAlertDialog"] = "data-alert-dialog-event"; - // event for when the data source being edited is updated - NotificationId["UpdateDataPreparation"] = "update-data-preparation-event"; - // event for when the data source data is updated - NotificationId["UpdateDataSourceData"] = "update-data-source-data-event"; - // event for getting the pres model to update file join table properties - NotificationId["TextFileProperties"] = "text-file-properties-event"; - // event for the detailed error dialog - NotificationId["UpdateDetailedErrorDialog"] = "update-detailed-error-dialog-event"; - // notify changes to the state of a filter's relational model - NotificationId["FilterRelationalStateChanged"] = "filter-relational-state-changed-event"; - // notify changes to the size/selection count of a relational domain - NotificationId["FilterRelationalDomainChanged"] = "filter-relational-domain-changed-event"; - // notify when filter cache was requested but not found - NotificationId["FilterCacheNotFound"] = "filter-cache-not-found-event"; - // Hierarchy Select model observable notification. - NotificationId["HierarchyNotification"] = "hierarchy-notification-event"; - // Hierarchy selection change notifications. - NotificationId["HierarchySelection"] = "hierarchy-selection-event"; - // event for the bin dialog - NotificationId["UpdateNumericBinEditDialog"] = "update-numeric-bin-edit-dialog-event"; - // event for the map options dialog - NotificationId["MapOptionsDialog"] = "map-options-dialog-event"; - // notify the Page UI(hide/show states, layout) needs to be updated - NotificationId["UpdatePageUINotification"] = "update-page-uinotification-event"; - // notify to the SceneView has been drawn. - NotificationId["SceneViewDrawnNotification"] = "scene-view-drawn-notification-event"; - // The AnimationControlChange event fires when the user clicks an animation playback button: forward, stop, slow, fast, etc. - NotificationId["AnimationControlChange"] = "animation-control-change-event"; - // update the web quantitative color dialog - NotificationId["WebQuantitativeColorDialog"] = "web-quantitative-color-dialog-event"; - // update the axis edit dialog - NotificationId["UpdateEditAxisDialog"] = "update-edit-axis-dialog-event"; - // event for the reference line dialog, which is only valid during web authoring - NotificationId["UpdateRefLineDialog"] = "update-ref-line-dialog-event"; - // event to trigger other reference line dialogs to close - NotificationId["RefLineDialogOpening"] = "ref-line-dialog-opening-event"; - // event for the close data source error dialog, which is only valid during web authoring - NotificationId["CloseDataSourceErrorDialog"] = "close-data-source-error-dialog-event"; - // update the web Save Datasource dialog - NotificationId["WebSaveDatasourceDialog"] = "web-save-datasource-dialog-event"; - // warning resulting from WarningMsg - NotificationId["WarningMessage"] = "warning-message-event"; - // event for the table calc dialog, on web, this is only valid during web authoring - NotificationId["TableCalcDialog"] = "table-calc-dialog-event"; - // user invoked action which requires Table Calc Dialog - NotificationId["TableCalcActivateDialog"] = "table-calc-activate-dialog-event"; - // event for the trend line dialog - NotificationId["UpdateTrendLineEditDialog"] = "update-trend-line-edit-dialog-event"; - // The table page cache has been refreshed; pages must be reloaded from the cache. - NotificationId["PageCacheRefresh"] = "page-cache-refresh-event"; - // The table page cache has expired and all resources have been released. - NotificationId["PageCacheExpired"] = "page-cache-expired-event"; - // All pages, identified by row/col, in the provided list have expired and should be reloaded. - NotificationId["PageCachePagesExpired"] = "page-cache-pages-expired-event"; - // All pages betweem the range (inclusive) in the provided list have expired and should be reloaded. - NotificationId["PageCachePageRangeExpired"] = "page-cache-page-range-expired-event"; - // Update for the rich text editor dialog - NotificationId["RichTextEditorDialog"] = "rich-text-editor-dialog-event"; - // notification to launch the hybrid UI showcase - NotificationId["LaunchHybridUIShowcase"] = "launch-hybrid-uishowcase-event"; - // notification of new echoed text for HybridUI showcase demo - NotificationId["HybridUIShowcaseEcho"] = "hybrid-uishowcase-echo-event"; - // Triggered when the user wants to reload an add-in instance. - NotificationId["ReloadAddIn"] = "reload-add-in-event"; - // Triggered when the selected marks have changed. - NotificationId["SelectionChanged"] = "selection-changed-event"; - // a test event with a pres model - NotificationId["TestEventWithModel"] = "test-event-with-model-event"; - // a test event without a pres model - NotificationId["TestEventWithoutModel"] = "test-event-without-model-event"; - })(NotificationId = exports.NotificationId || (exports.NotificationId = {})); - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var EnumMappings_1 = __webpack_require__(18); - /** - * Class containing helper methods for converting from PresLayerPresModels to their ApiPresModels equivalents - * - * @export - * @class PresLayerToApiConverter - */ - var PresLayerToApiConverter = (function () { - function PresLayerToApiConverter() { - } - PresLayerToApiConverter.convertSheetPath = function (plSheetPath) { - var result = { - sheetName: plSheetPath.sheetName, - isDashboard: plSheetPath.isDashboard, - storyboard: plSheetPath.storyboard, - flipboardZoneID: plSheetPath.flipboardZoneId, - storyPointID: plSheetPath.storyPointId, - }; - return result; - }; - PresLayerToApiConverter.convertVisualId = function (plVisualId) { - var result = { - worksheet: plVisualId.worksheet, - dashboard: plVisualId.dashboard, - storyboard: plVisualId.storyboard, - flipboardZoneID: plVisualId.flipboardZoneId, - storyPointID: plVisualId.storyPointId, - }; - return result; - }; - PresLayerToApiConverter.convertAddInLocator = function (plAddInLocator) { - var dashboardPath = undefined; - if (plAddInLocator.sheetPath) { - dashboardPath = PresLayerToApiConverter.convertSheetPath(plAddInLocator.sheetPath); - } - var result = { - instanceId: plAddInLocator.addInInstanceId, - dashboardPath: dashboardPath - }; - return result; - }; - PresLayerToApiConverter.convertDashboardInZones = function (plDashboard) { - var result = new Array(); - for (var _i = 0, _a = Object.keys(plDashboard.zones); _i < _a.length; _i++) { - var zoneKey = _a[_i]; - var zone = plDashboard.zones[zoneKey]; - var apiZone = { - name: zone.zoneCommon.name, - zoneId: zone.zoneId, - zoneType: EnumMappings_1.PresLayerToApiEnumMappings.zoneType.convert(zone.zoneCommon.zoneType), - height: zone.zoneCommon.h, - width: zone.zoneCommon.w, - x: zone.zoneCommon.x, - y: zone.zoneCommon.y - }; - result.push(apiZone); - } - return result; - }; - PresLayerToApiConverter.convertDashboardInfo = function (plDashboardInfo) { - var result = { - zones: PresLayerToApiConverter.convertDashboardInZones(plDashboardInfo.dashboardPresModel), - name: plDashboardInfo.dashboardPresModel.sheetPath.sheetName, - addInZoneId: plDashboardInfo.zoneId - }; - return result; - }; - PresLayerToApiConverter.convertAddInInstance = function (plAddInInstance) { - var result = { - url: plAddInInstance.addInRegistrationPresModel.url, - locator: PresLayerToApiConverter.convertAddInLocator(plAddInInstance.addInLocatorPresModel) - }; - return result; - }; - PresLayerToApiConverter.convertAddInEnivrionment = function (plAddInEnvironment) { - var result = { - addInContext: EnumMappings_1.PresLayerToApiEnumMappings.addInContext.convert(plAddInEnvironment.addInContext), - addInMode: EnumMappings_1.PresLayerToApiEnumMappings.addInMode.convert(plAddInEnvironment.addInMode), - addInLocale: plAddInEnvironment.addInLocale, - addInLanguage: plAddInEnvironment.addInLanguage, - tableauVersion: plAddInEnvironment.tableauVersion, - operatingSystem: plAddInEnvironment.operatingSystem, - apiVersion: plAddInEnvironment.apiVersion - }; - return result; - }; - PresLayerToApiConverter.convertAddInSettingsInfo = function (plAddInSettings) { - var result = { - // addInSettings is undefined during bootstrap initialization - settingsValues: plAddInSettings.addInSettings || {} - }; - return result; - }; - PresLayerToApiConverter.convertAddInBootstrapInfo = function (plBootstrapInfo) { - var result = { - addinDashboardInfo: PresLayerToApiConverter.convertDashboardInfo(plBootstrapInfo.addInDashboardInfoPresModel), - addInEnvironment: PresLayerToApiConverter.convertAddInEnivrionment(plBootstrapInfo.addInEnvironmentPresModel), - addInInstance: PresLayerToApiConverter.convertAddInInstance(plBootstrapInfo.addInInstancePresModel), - addInSettingsInfo: PresLayerToApiConverter.convertAddInSettingsInfo(plBootstrapInfo.addInSettingsInfo) - }; - return result; - }; - return PresLayerToApiConverter; - }()); - exports.PresLayerToApiConverter = PresLayerToApiConverter; - - -/***/ }, -/* 18 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(4); - var api_utils_1 = __webpack_require__(19); - var Enums = __webpack_require__(22); - /* tslint:disable:typedef - Disable this to make declaring these classes a bit easier */ - var PresLayerToApiEnumMappings = (function () { - function PresLayerToApiEnumMappings() { - } - PresLayerToApiEnumMappings.zoneType = new api_utils_1.EnumConverter((_a = {}, - _a[Enums.ZoneType.ZT_Invalid] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_Viz] = api_internal_contract_1.DashboardObjectType.Worksheet, - _a[Enums.ZoneType.ZT_ColorLegend] = api_internal_contract_1.DashboardObjectType.Legend, - _a[Enums.ZoneType.ZT_ShapeLegend] = api_internal_contract_1.DashboardObjectType.Legend, - _a[Enums.ZoneType.ZT_SizeLegend] = api_internal_contract_1.DashboardObjectType.Legend, - _a[Enums.ZoneType.ZT_MapLegend] = api_internal_contract_1.DashboardObjectType.Legend, - _a[Enums.ZoneType.ZT_QuickFilter] = api_internal_contract_1.DashboardObjectType.QuickFilter, - _a[Enums.ZoneType.ZT_Highlighter] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_CurrPage] = api_internal_contract_1.DashboardObjectType.PageFilter, - _a[Enums.ZoneType.ZT_Empty] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_Title] = api_internal_contract_1.DashboardObjectType.Title, - _a[Enums.ZoneType.ZT_Text] = api_internal_contract_1.DashboardObjectType.Text, - _a[Enums.ZoneType.ZT_Bitmap] = api_internal_contract_1.DashboardObjectType.Image, - _a[Enums.ZoneType.ZT_Web] = api_internal_contract_1.DashboardObjectType.WebPage, - _a[Enums.ZoneType.ZT_AddIn] = api_internal_contract_1.DashboardObjectType.AddIn, - _a[Enums.ZoneType.ZT_ParamCtrl] = api_internal_contract_1.DashboardObjectType.ParameterControl, - _a[Enums.ZoneType.ZT_FlipboardNav] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_Flipboard] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_LayoutBasic] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_LayoutFlow] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_LayoutFreeForm] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_End] = api_internal_contract_1.DashboardObjectType.Blank, - _a), api_internal_contract_1.DashboardObjectType.Blank); - PresLayerToApiEnumMappings.addInContext = new api_utils_1.EnumConverter((_b = {}, - _b[Enums.AddInContext.Unknown] = api_internal_contract_1.AddInContext.Unknown, - _b[Enums.AddInContext.Desktop] = api_internal_contract_1.AddInContext.Desktop, - _b[Enums.AddInContext.Server] = api_internal_contract_1.AddInContext.Server, - _b)); - PresLayerToApiEnumMappings.addInMode = new api_utils_1.EnumConverter((_c = {}, - _c[Enums.AddInMode.Unknown] = api_internal_contract_1.AddInMode.Unknown, - _c[Enums.AddInMode.Authoring] = api_internal_contract_1.AddInMode.Authoring, - _c[Enums.AddInMode.Viewing] = api_internal_contract_1.AddInMode.Viewing, - _c)); - PresLayerToApiEnumMappings.dataType = new api_utils_1.EnumConverter((_d = {}, - _d[Enums.DataType.DT_BOOLEAN] = api_internal_contract_1.DataType.Bool, - _d[Enums.DataType.DT_DATE] = api_internal_contract_1.DataType.Date, - _d[Enums.DataType.DT_DATETIME] = api_internal_contract_1.DataType.DateTime, - _d[Enums.DataType.DT_INTEGER] = api_internal_contract_1.DataType.Int, - _d[Enums.DataType.DT_REAL] = api_internal_contract_1.DataType.Float, - _d[Enums.DataType.DT_STRING] = api_internal_contract_1.DataType.String, - _d[Enums.DataType.DT_SPATIAL] = api_internal_contract_1.DataType.Spatial, - _d)); - return PresLayerToApiEnumMappings; - }()); - exports.PresLayerToApiEnumMappings = PresLayerToApiEnumMappings; - var ApiToPresLayerEnumMappings = (function () { - function ApiToPresLayerEnumMappings() { - } - ApiToPresLayerEnumMappings.filterUpdateType = new api_utils_1.EnumConverter((_a = {}, - _a[api_internal_contract_1.FilterUpdateType.Add] = Enums.FilterUpdateType.ADD, - _a[api_internal_contract_1.FilterUpdateType.All] = Enums.FilterUpdateType.ALL, - _a[api_internal_contract_1.FilterUpdateType.Replace] = Enums.FilterUpdateType.REPLACE, - _a[api_internal_contract_1.FilterUpdateType.Remove] = Enums.FilterUpdateType.REMOVE, - _a)); - ApiToPresLayerEnumMappings.nullOption = new api_utils_1.EnumConverter((_b = {}, - _b[api_internal_contract_1.NullOption.AllValues] = Enums.FiltersQuantitativeIncludedValues.All, - _b[api_internal_contract_1.NullOption.NonNullValues] = Enums.FiltersQuantitativeIncludedValues.NonNull, - _b[api_internal_contract_1.NullOption.NullValues] = Enums.FiltersQuantitativeIncludedValues.Null, - _b)); - return ApiToPresLayerEnumMappings; - }()); - exports.ApiToPresLayerEnumMappings = ApiToPresLayerEnumMappings; - var _a, _b, _c, _d, _a, _b; - /* tslint:enable:typedef */ - - -/***/ }, -/* 19 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - Object.defineProperty(exports, "__esModule", { value: true }); - var EnumConverter_1 = __webpack_require__(20); - exports.EnumConverter = EnumConverter_1.EnumConverter; - var Param_1 = __webpack_require__(21); - exports.Param = Param_1.Param; - - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * This class converts from a source enum value to destination enum - * value given a mapping from source to destination when constructed. - */ - var EnumConverter = (function () { - function EnumConverter(mappings, defaultVal) { - this.mappings = mappings; - this.defaultVal = defaultVal; - } - EnumConverter.prototype.convert = function (enumVal, throwIfMissing) { - if (this.mappings.hasOwnProperty(enumVal)) { - return this.mappings[enumVal]; - } - if (this.defaultVal !== undefined && !throwIfMissing) { - return this.defaultVal; - } - throw new Error('Mapping not found for ' + enumVal); - }; - return EnumConverter; - }()); - exports.EnumConverter = EnumConverter; - - -/***/ }, -/* 21 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Param = (function () { - function Param() { - } - /** - * Verifies that an incoming parameter is 'truthy' and throws - * an error if it's not. This will throw an error if the value - * is null, undefined, NaN, the empty string, 0, or false. - * - * @param argumentValue value to verify - * @param argumentName name of argument to verify - */ - /*tslint:disable-next-line */ - Param.verifyValue = function (argumentValue, argumentName) { - if (!argumentValue) { - throw new Error('Value is invalid for argument: ' + argumentName); - } - }; - /** - * Verifies that a string is valid. Throws an error if the string is - * null, undefined, or NaN. - * - * @param argumentValue value to verify - * @param argumentName name of argument to verify - */ - Param.verifyString = function (argumentValue, argumentName) { - if (argumentValue === null || argumentValue === undefined) { - throw new Error('String value is invalid for argument: ' + argumentName); - } - }; - return Param; - }()); - exports.Param = Param; - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - "use strict"; - /* tslint:disable */ - // ----------------------------------------------------------------------------- - // - // This file is the copyrighted property of Tableau Software and is protected - // by registered patents and other applicable U.S. and international laws and - // regulations. - // - // Unlicensed use of the contents of this file is prohibited. Please refer to - // the NOTICES.txt file for further details. - // - // ----------------------------------------------------------------------------- - // WARNING: Computer generated file. Do not hand modify. - // DEPENDS ON: ['..\\js-api\\api-core\\node_modules\\@tableau\\preslayer-codegen-typescript\\templates\\enum-ts.template', u'..\\js-api\\api-core\\temp-pres-layer\\all-enums.data'] - Object.defineProperty(exports, "__esModule", { value: true }); - // - var DataScaling; - (function (DataScaling) { - // - DataScaling["SCALING_NONE"] = "none"; - // - DataScaling["SCALING_STANDARDIZED"] = "standardized"; - // - DataScaling["SCALING_NORMALIZED"] = "normalized"; - })(DataScaling = exports.DataScaling || (exports.DataScaling = {})); - // Should the parser be dumb or not - var ParserMode; - (function (ParserMode) { - // With Validation - ParserMode["ParserWithValidation"] = "parser-validation"; - // Without Validation - ParserMode["ParserWithoutValidation"] = "parser-without"; - })(ParserMode = exports.ParserMode || (exports.ParserMode = {})); - // - var ForecastModelType; - (function (ForecastModelType) { - // - ForecastModelType["ForecastModelTypeAutoSeason"] = "auto-season"; - // - ForecastModelType["ForecastModelTypeAuto"] = "auto"; - // - ForecastModelType["ForecastModelTypeCustom"] = "custom"; - })(ForecastModelType = exports.ForecastModelType || (exports.ForecastModelType = {})); - // - var ForecastRangeType; - (function (ForecastRangeType) { - // - ForecastRangeType["ForecastRangeTypeAuto"] = "auto"; - // - ForecastRangeType["ForecastRangeTypeNext"] = "next"; - // - ForecastRangeType["ForecastRangeTypeEndOf"] = "end-of"; - })(ForecastRangeType = exports.ForecastRangeType || (exports.ForecastRangeType = {})); - // - var ForecastStatus; - (function (ForecastStatus) { - // - ForecastStatus["FS_VALID"] = "fs-valid"; - // - ForecastStatus["FS_INVALID_DATETIME"] = "fs-invalid-datetime"; - // - ForecastStatus["FS_INVALID_RESPONSE"] = "fs-invalid-response"; - // - ForecastStatus["FS_NEED_MORE_DATA"] = "fs-need-more-data"; - // - ForecastStatus["FS_TIME_SERIES_TOO_SHORT"] = "fs-time-series-too-short"; - // - ForecastStatus["FS_TIME_SERIES_IRREGULAR"] = "fs-time-series-irregular"; - // - ForecastStatus["FS_NULL_DATETIME"] = "fs-null-datetime"; - // - ForecastStatus["FS_NULL_RESPONSE"] = "fs-null-response"; - // - ForecastStatus["FS_METADATA_INVALID"] = "fs-metadata-invalid"; - // - ForecastStatus["FS_NO_RESPONSE"] = "fs-no-response"; - // - ForecastStatus["FS_EXCESS_DATA"] = "fs-excess-data"; - // - ForecastStatus["FS_EXCESS_PARTITIONS"] = "fs-excess-partitions"; - // - ForecastStatus["FS_DIMENSION_INVALID"] = "fs-dimension-invalid"; - // - ForecastStatus["FS_TABLECALC_INVALID"] = "fs-tablecalc-invalid"; - // - ForecastStatus["FS_TIME_SERIES_TOO_IRREGULAR"] = "fs-time-series-too-irregular"; - // - ForecastStatus["FS_AGGREGATE_FILTER"] = "fs-aggregate-filter"; - // - ForecastStatus["FS_DISAGGREGATE_RESPONSE"] = "fs-disaggregate-response"; - // - ForecastStatus["FS_PERCENTAGE_INVALID"] = "fs-percentage-invalid"; - // - ForecastStatus["FS_TOTAL_INVALID"] = "fs-total-invalid"; - // - ForecastStatus["FS_EXCESS_DATETIME"] = "fs-excess-datetime"; - // - ForecastStatus["FS_DATE_AGG_INCOMPATIBLE"] = "fs-date-agg-incompatible"; - // - ForecastStatus["FS_TIME_SERIES_NOT_POSITIVE"] = "fs-time-series-not-positive"; - // - ForecastStatus["FS_REQUESTED_MODEL_INVALID"] = "fs-requested-model-invalid"; - // - ForecastStatus["FS_TOO_SHORT_FOR_SEASON"] = "fs-too-short-for-season"; - // - ForecastStatus["FS_REQUESTED_MODEL_UNSTABLE"] = "fs-requested-model-unstable"; - // - ForecastStatus["FS_UNDEFINED"] = "fs-undefined"; - })(ForecastStatus = exports.ForecastStatus || (exports.ForecastStatus = {})); - // - var StyleAttribute; - (function (StyleAttribute) { - // - StyleAttribute["saAlternateText"] = "saAlternateText"; - // - StyleAttribute["saAltMarkColor"] = "saAltMarkColor"; - // - StyleAttribute["saAspect"] = "saAspect"; - // - StyleAttribute["saAutoSubtitle"] = "saAutoSubtitle"; - // - StyleAttribute["saBackgroundColor"] = "saBackgroundColor"; - // - StyleAttribute["saBackgroundTransparency"] = "saBackgroundTransparency"; - // - StyleAttribute["saBandSize"] = "saBandSize"; - // - StyleAttribute["saBandColor"] = "saBandColor"; - // - StyleAttribute["saBandLevel"] = "saBandLevel"; - // - StyleAttribute["saBodyType"] = "saBodyType"; - // - StyleAttribute["saBorderColor"] = "saBorderColor"; - // - StyleAttribute["saBorderColorTop"] = "saBorderColorTop"; - // - StyleAttribute["saBorderColorRight"] = "saBorderColorRight"; - // - StyleAttribute["saBorderColorBottom"] = "saBorderColorBottom"; - // - StyleAttribute["saBorderColorLeft"] = "saBorderColorLeft"; - // - StyleAttribute["saBorderStyle"] = "saBorderStyle"; - // - StyleAttribute["saBorderStyleTop"] = "saBorderStyleTop"; - // - StyleAttribute["saBorderStyleRight"] = "saBorderStyleRight"; - // - StyleAttribute["saBorderStyleBottom"] = "saBorderStyleBottom"; - // - StyleAttribute["saBorderStyleLeft"] = "saBorderStyleLeft"; - // - StyleAttribute["saBorderWidth"] = "saBorderWidth"; - // - StyleAttribute["saBorderWidthTop"] = "saBorderWidthTop"; - // - StyleAttribute["saBorderWidthRight"] = "saBorderWidthRight"; - // - StyleAttribute["saBorderWidthBottom"] = "saBorderWidthBottom"; - // - StyleAttribute["saBorderWidthLeft"] = "saBorderWidthLeft"; - // - StyleAttribute["saBoxplotStyle"] = "saBoxplotStyle"; - // - StyleAttribute["saBreakOnSpecial"] = "saBreakOnSpecial"; - // - StyleAttribute["saCell"] = "saCell"; - // - StyleAttribute["saCellW"] = "saCellW"; - // - StyleAttribute["saCellH"] = "saCellH"; - // - StyleAttribute["saCellQ"] = "saCellQ"; - // - StyleAttribute["saCellQMark"] = "saCellQMark"; - // - StyleAttribute["saColor"] = "saColor"; - // - StyleAttribute["saColorMode"] = "saColorMode"; - // - StyleAttribute["saColLevels"] = "saColLevels"; - // - StyleAttribute["saColVertLevels"] = "saColVertLevels"; - // - StyleAttribute["saColHorizHeight"] = "saColHorizHeight"; - // - StyleAttribute["saColVertHeight"] = "saColVertHeight"; - // Deprecated - StyleAttribute["saColHeight"] = "saColHeight"; - // - StyleAttribute["saColWidth"] = "saColWidth"; - // - StyleAttribute["saContent"] = "saContent"; - // - StyleAttribute["saDisplayFieldLabels"] = "saDisplayFieldLabels"; - // - StyleAttribute["saDisplayHeader"] = "saDisplayHeader"; - // - StyleAttribute["saDisplayAlternateText"] = "saDisplayAlternateText"; - // - StyleAttribute["saDivLevel"] = "saDivLevel"; - // - StyleAttribute["saEnabled"] = "saEnabled"; - // - StyleAttribute["saFillAboveColor"] = "saFillAboveColor"; - // - StyleAttribute["saFillBelowColor"] = "saFillBelowColor"; - // - StyleAttribute["saFillColor"] = "saFillColor"; - // - StyleAttribute["saFogBGColor"] = "saFogBGColor"; - // - StyleAttribute["saFogDesaturationWithoutSelection"] = "saFogDesaturationWithoutSelection"; - // - StyleAttribute["saFogDesaturationWithSelection"] = "saFogDesaturationWithSelection"; - // - StyleAttribute["saFont"] = "saFont"; - // - StyleAttribute["saFontFamily"] = "saFontFamily"; - // - StyleAttribute["saFontSize"] = "saFontSize"; - // - StyleAttribute["saFontStyle"] = "saFontStyle"; - // - StyleAttribute["saFontWeight"] = "saFontWeight"; - // - StyleAttribute["saGeographicAreaType"] = "saGeographicAreaType"; - // - StyleAttribute["saHAlign"] = "saHAlign"; - // - StyleAttribute["saHaloColor"] = "saHaloColor"; - // - StyleAttribute["saHaloColorSelected"] = "saHaloColorSelected"; - // - StyleAttribute["saHasFill"] = "saHasFill"; - // - StyleAttribute["saHasHalo"] = "saHasHalo"; - // Deprecated - StyleAttribute["saHasLabel"] = "saHasLabel"; - // - StyleAttribute["saHasStroke"] = "saHasStroke"; - // - StyleAttribute["saHeight"] = "saHeight"; - // - StyleAttribute["saHeightHeader"] = "saHeightHeader"; - // - StyleAttribute["saHighlightLegend"] = "saHighlightLegend"; - // - StyleAttribute["saHnaxis"] = "saHnaxis"; - // - StyleAttribute["saHnlabel"] = "saHnlabel"; - // - StyleAttribute["saInTooltip"] = "saInTooltip"; - // - StyleAttribute["saLineEnd"] = "saLineEnd"; - // - StyleAttribute["saLineEndSize"] = "saLineEndSize"; - // - StyleAttribute["saLineInterpolation"] = "saLineInterpolation"; - // - StyleAttribute["saLineMarkerPosition"] = "saLineMarkerPosition"; - // - StyleAttribute["saLinePattern"] = "saLinePattern"; - // - StyleAttribute["saLinePatternOnly"] = "saLinePatternOnly"; - // - StyleAttribute["saLineVisibility"] = "saLineVisibility"; - // - StyleAttribute["saMap"] = "saMap"; - // - StyleAttribute["saMapStyle"] = "saMapStyle"; - // - StyleAttribute["saMargin"] = "saMargin"; - // - StyleAttribute["saMarginTop"] = "saMarginTop"; - // - StyleAttribute["saMarginRight"] = "saMarginRight"; - // - StyleAttribute["saMarginBottom"] = "saMarginBottom"; - // - StyleAttribute["saMarginLeft"] = "saMarginLeft"; - // - StyleAttribute["saMarkColor"] = "saMarkColor"; - // - StyleAttribute["saMarkTransparency"] = "saMarkTransparency"; - // - StyleAttribute["saMarkLabelsShow"] = "saMarkLabelsShow"; - // - StyleAttribute["saRunningOrderLabelsShow"] = "saRunningOrderLabelsShow"; - // - StyleAttribute["saMarkLabelsMode"] = "saMarkLabelsMode"; - // - StyleAttribute["saMarkLabelsCull"] = "saMarkLabelsCull"; - // - StyleAttribute["saMarkLabelsLineEndFirst"] = "saMarkLabelsLineEndFirst"; - // - StyleAttribute["saMarkLabelsLineEndLast"] = "saMarkLabelsLineEndLast"; - // - StyleAttribute["saMarkLabelsRangeMin"] = "saMarkLabelsRangeMin"; - // - StyleAttribute["saMarkLabelsRangeMax"] = "saMarkLabelsRangeMax"; - // - StyleAttribute["saMarkLabelsRangeScope"] = "saMarkLabelsRangeScope"; - // - StyleAttribute["saMarkLabelsRangeField"] = "saMarkLabelsRangeField"; - // - StyleAttribute["saMarkMarkersMode"] = "saMarkMarkersMode"; - // - StyleAttribute["saMaxHeight"] = "saMaxHeight"; - // - StyleAttribute["saMaxFontSize"] = "saMaxFontSize"; - // - StyleAttribute["saMaxStrokeWidth"] = "saMaxStrokeWidth"; - // - StyleAttribute["saMaxWidth"] = "saMaxWidth"; - // - StyleAttribute["saMidStrokeWidth"] = "saMidStrokeWidth"; - // - StyleAttribute["saMinHeight"] = "saMinHeight"; - // - StyleAttribute["saMinFontSize"] = "saMinFontSize"; - // - StyleAttribute["saMinLength"] = "saMinLength"; - // - StyleAttribute["saMinMapSize"] = "saMinMapSize"; - // - StyleAttribute["saMinSize"] = "saMinSize"; - // - StyleAttribute["saMinStrokeWidth"] = "saMinStrokeWidth"; - // - StyleAttribute["saMinWidth"] = "saMinWidth"; - // - StyleAttribute["saNonhighlightColor"] = "saNonhighlightColor"; - // - StyleAttribute["saOmitOnSpecial"] = "saOmitOnSpecial"; - // - StyleAttribute["saOpacity"] = "saOpacity"; - // - StyleAttribute["saOrientation"] = "saOrientation"; - // - StyleAttribute["saPadding"] = "saPadding"; - // - StyleAttribute["saPaddingTop"] = "saPaddingTop"; - // - StyleAttribute["saPaddingRight"] = "saPaddingRight"; - // - StyleAttribute["saPaddingBottom"] = "saPaddingBottom"; - // - StyleAttribute["saPaddingLeft"] = "saPaddingLeft"; - // - StyleAttribute["saPalette"] = "saPalette"; - // - StyleAttribute["saRenderFoldReversed"] = "saRenderFoldReversed"; - // - StyleAttribute["saReversePalette"] = "saReversePalette"; - // - StyleAttribute["saRounding"] = "saRounding"; - // - StyleAttribute["saRowHorizLevels"] = "saRowHorizLevels"; - // - StyleAttribute["saRowHorizWidth"] = "saRowHorizWidth"; - // - StyleAttribute["saRowLevels"] = "saRowLevels"; - // - StyleAttribute["saRowVertWidth"] = "saRowVertWidth"; - // - StyleAttribute["saSeparator"] = "saSeparator"; - // - StyleAttribute["saShape"] = "saShape"; - // Deprecated - StyleAttribute["saShowLabels"] = "saShowLabels"; - // - StyleAttribute["saSize"] = "saSize"; - // - StyleAttribute["saSizeBar"] = "saSizeBar"; - // - StyleAttribute["saSmartAutoAlignment"] = "saSmartAutoAlignment"; - // - StyleAttribute["saSpace"] = "saSpace"; - // - StyleAttribute["saStrokeColor"] = "saStrokeColor"; - // - StyleAttribute["saStrokeSize"] = "saStrokeSize"; - // - StyleAttribute["saSubtitle"] = "saSubtitle"; - // - StyleAttribute["saTextAlign"] = "saTextAlign"; - // - StyleAttribute["saTextAlignDefault"] = "saTextAlignDefault"; - // - StyleAttribute["saTextDecoration"] = "saTextDecoration"; - // - StyleAttribute["saTextIndent"] = "saTextIndent"; - // - StyleAttribute["saTextOrientation"] = "saTextOrientation"; - // - StyleAttribute["saTextFormat"] = "saTextFormat"; - // - StyleAttribute["saTickColor"] = "saTickColor"; - // - StyleAttribute["saTickLength"] = "saTickLength"; - // Deprecated - StyleAttribute["saTickSpacing"] = "saTickSpacing"; - // - StyleAttribute["saTitle"] = "saTitle"; - // - StyleAttribute["saTotalLabel"] = "saTotalLabel"; - // - StyleAttribute["saVAlign"] = "saVAlign"; - // - StyleAttribute["saVerticalAlign"] = "saVerticalAlign"; - // - StyleAttribute["saVerticalAlignDefault"] = "saVerticalAlignDefault"; - // - StyleAttribute["saVnaxis"] = "saVnaxis"; - // - StyleAttribute["saVnlabel"] = "saVnlabel"; - // - StyleAttribute["saWarnOnSpecial"] = "saWarnOnSpecial"; - // - StyleAttribute["saWashout"] = "saWashout"; - // - StyleAttribute["saWhiskerEnd"] = "saWhiskerEnd"; - // - StyleAttribute["saWhiskerStrokeColor"] = "saWhiskerStrokeColor"; - // - StyleAttribute["saWhiskerStrokeSize"] = "saWhiskerStrokeSize"; - // - StyleAttribute["saWidth"] = "saWidth"; - // - StyleAttribute["saWidthHeader"] = "saWidthHeader"; - // - StyleAttribute["saWrap"] = "saWrap"; - // - StyleAttribute["saZoom"] = "saZoom"; - // Special attributes used for matching - StyleAttribute["saNone"] = "saNone"; - // Special attributes used for matching - StyleAttribute["saAny"] = "saAny"; - })(StyleAttribute = exports.StyleAttribute || (exports.StyleAttribute = {})); - // lowest bit of enum value denotes two-tone styles; newly added styles should follow this pattern. - var BoxplotStyle; - (function (BoxplotStyle) { - // mask for checking if a style is two-tone - BoxplotStyle["BoxplotStyleTwoTone"] = "two-tone"; - // - BoxplotStyle["BoxplotStyleModern"] = "modern"; - // - BoxplotStyle["BoxplotStyleGlass"] = "glass"; - // - BoxplotStyle["BoxplotStyleClassic"] = "classic"; - // - BoxplotStyle["BoxplotStyleClassicTwoTone"] = "classic-two-tone"; - })(BoxplotStyle = exports.BoxplotStyle || (exports.BoxplotStyle = {})); - // used for boxplots and prediction band whiskers - var WhiskerEnd; - (function (WhiskerEnd) { - // - WhiskerEnd["WhiskerEndNone"] = "none"; - // - WhiskerEnd["WhiskerEndSmall"] = "small"; - // - WhiskerEnd["WhiskerEndLarge"] = "large"; - })(WhiskerEnd = exports.WhiskerEnd || (exports.WhiskerEnd = {})); - // - var StyleElement; - (function (StyleElement) { - // - StyleElement["elementAxis"] = "elementAxis"; - // - StyleElement["elementCell"] = "elementCell"; - // - StyleElement["elementDatalabel"] = "elementDatalabel"; - // - StyleElement["elementDropspot"] = "elementDropspot"; - // - StyleElement["elementHeader"] = "elementHeader"; - // - StyleElement["elementFieldLabel"] = "elementFieldLabel"; - // - StyleElement["elementFieldLabelDecoration"] = "elementFieldLabelDecoration"; - // - StyleElement["elementFieldLabelSpanner"] = "elementFieldLabelSpanner"; - // - StyleElement["elementLabel"] = "elementLabel"; - // - StyleElement["elementMark"] = "elementMark"; - // - StyleElement["elementPane"] = "elementPane"; - // - StyleElement["elementTable"] = "elementTable"; - // - StyleElement["elementWorksheet"] = "elementWorksheet"; - // - StyleElement["elementBasesheet"] = "elementBasesheet"; - // - StyleElement["elementDashboard"] = "elementDashboard"; - // - StyleElement["elementStoryboard"] = "elementStoryboard"; - // - StyleElement["elementCaption"] = "elementCaption"; - // - StyleElement["elementDropline"] = "elementDropline"; - // - StyleElement["elementRefline"] = "elementRefline"; - // - StyleElement["elementRefBand"] = "elementRefBand"; - // - StyleElement["elementRefBoxplot"] = "elementRefBoxplot"; - // - StyleElement["elementGridline"] = "elementGridline"; - // - StyleElement["elementZeroline"] = "elementZeroline"; - // - StyleElement["elementTrendline"] = "elementTrendline"; - // - StyleElement["elementTableDiv"] = "elementTableDiv"; - // - StyleElement["elementHeaderDiv"] = "elementHeaderDiv"; - // - StyleElement["elementMappedImage"] = "elementMappedImage"; - // - StyleElement["elementAction"] = "elementAction"; - // - StyleElement["elementTitle"] = "elementTitle"; - // - StyleElement["elementLegend"] = "elementLegend"; - // - StyleElement["elementLegendTitle"] = "elementLegendTitle"; - // - StyleElement["elementLegendTitleText"] = "elementLegendTitleText"; - // - StyleElement["elementAxisTitle"] = "elementAxisTitle"; - // - StyleElement["elementAnnotation"] = "elementAnnotation"; - // - StyleElement["elementDashTitle"] = "elementDashTitle"; - // - StyleElement["elementDashSubtitle"] = "elementDashSubtitle"; - // - StyleElement["elementDashText"] = "elementDashText"; - // - StyleElement["elementDashZone"] = "elementDashZone"; - // - StyleElement["elementDashContainer"] = "elementDashContainer"; - // - StyleElement["elementScrollbar"] = "elementScrollbar"; - // Static on/off map layers - StyleElement["elementMapLayer"] = "elementMapLayer"; - // Contains washout - StyleElement["elementMap"] = "elementMap"; - // Initially for UrbanMapping/Claritas data - StyleElement["elementMapDataLayer"] = "elementMapDataLayer"; - // - StyleElement["elementQuickFilter"] = "elementQuickFilter"; - // - StyleElement["elementQuickFilterTitle"] = "elementQuickFilterTitle"; - // - StyleElement["elementParameterCtrl"] = "elementParameterCtrl"; - // - StyleElement["elementParameterCtrlTitle"] = "elementParameterCtrlTitle"; - // - StyleElement["elementPageCardTitle"] = "elementPageCardTitle"; - // - StyleElement["elementStoryDescription"] = "elementStoryDescription"; - // - StyleElement["elementStoryPointCaption"] = "elementStoryPointCaption"; - // - StyleElement["elementStoryTitle"] = "elementStoryTitle"; - // - StyleElement["elementTooltip"] = "elementTooltip"; - // - StyleElement["elementAll"] = "elementAll"; - // - StyleElement["elementPageCardBody"] = "elementPageCardBody"; - // - StyleElement["elementDataHighlighter"] = "elementDataHighlighter"; - // - StyleElement["elementDataHighlighterTitle"] = "elementDataHighlighterTitle"; - // Special elements used for matching and organization - StyleElement["elementNone"] = "elementNone"; - // Special elements used for matching and organization - StyleElement["elementAny"] = "elementAny"; - // Special elements used for matching and organization - StyleElement["elementRoot"] = "elementRoot"; - })(StyleElement = exports.StyleElement || (exports.StyleElement = {})); - // Do not mess with these values. They are sometimes used as array indexes/bounds - var StyleDataClass; - (function (StyleDataClass) { - // - StyleDataClass["dcNormal"] = "dcNormal"; - // - StyleDataClass["dcTotal"] = "dcTotal"; - // - StyleDataClass["dcSubtotal"] = "dcSubtotal"; - // - StyleDataClass["dcCOUNT"] = "dcCOUNT"; - })(StyleDataClass = exports.StyleDataClass || (exports.StyleDataClass = {})); - // - var StyleFieldScope; - (function (StyleFieldScope) { - // - StyleFieldScope["fsNone"] = "fsNone"; - // - StyleFieldScope["fsRows"] = "fsRows"; - // - StyleFieldScope["fsCols"] = "fsCols"; - })(StyleFieldScope = exports.StyleFieldScope || (exports.StyleFieldScope = {})); - // - var StyleSwatch; - (function (StyleSwatch) { - // - StyleSwatch["ssUnspecified"] = "ssUnspecified"; - // - StyleSwatch["ssLight"] = "ssLight"; - // - StyleSwatch["ssDark"] = "ssDark"; - })(StyleSwatch = exports.StyleSwatch || (exports.StyleSwatch = {})); - // - var TableauFontStyle; - (function (TableauFontStyle) { - // - TableauFontStyle["NormalStyle"] = "font-style-normal"; - // - TableauFontStyle["Italic"] = "font-style-italic"; - })(TableauFontStyle = exports.TableauFontStyle || (exports.TableauFontStyle = {})); - // Unsupported for Betsy - var TextDecoration; - (function (TextDecoration) { - // - TextDecoration["NoDecoration"] = "text-decoration-none"; - // - TextDecoration["Underline"] = "text-decoration-underline"; - // not yet supported - TextDecoration["Overline"] = "text-decoration-overline"; - // - TextDecoration["Strikethrough"] = "text-decoration-strikethrough"; - })(TextDecoration = exports.TextDecoration || (exports.TextDecoration = {})); - // - var FontWeight; - (function (FontWeight) { - // - FontWeight["NormalWeight"] = "font-weight-normal"; - // - FontWeight["Bold"] = "font-weight-bold"; - })(FontWeight = exports.FontWeight || (exports.FontWeight = {})); - // - var TextOrient; - (function (TextOrient) { - // - TextOrient["TO_Auto"] = "text-orient-auto"; - // - TextOrient["TO_Horz"] = "text-orient-horizontal"; - // - TextOrient["TO_VertUp"] = "text-orient-vertical-up"; - // - TextOrient["TO_VertDown"] = "text-orient-vertical-down"; - })(TextOrient = exports.TextOrient || (exports.TextOrient = {})); - // - var TextAlign; - (function (TextAlign) { - // - TextAlign["TA_Start"] = "text-align-start"; - // - TextAlign["TA_Center"] = "text-align-center"; - // - TextAlign["TA_End"] = "text-align-end"; - })(TextAlign = exports.TextAlign || (exports.TextAlign = {})); - // - var TextWrapMode; - (function (TextWrapMode) { - // - TextWrapMode["TextWrapOff"] = "text-wrap-off"; - // - TextWrapMode["TextWrapTruncate"] = "text-wrap-truncate"; - // - TextWrapMode["TextWrapOn"] = "text-wrap-on"; - // - TextWrapMode["TextWrapAuto"] = "text-wrap-auto"; - })(TextWrapMode = exports.TextWrapMode || (exports.TextWrapMode = {})); - // - var TextWholeLineMode; - (function (TextWholeLineMode) { - // - TextWholeLineMode["TextWholeLineOff"] = "text-whole-line-off"; - // - TextWholeLineMode["TextWholeLineOn"] = "text-whole-line-on"; - // - TextWholeLineMode["TextWholeLineAuto"] = "text-whole-line-auto"; - })(TextWholeLineMode = exports.TextWholeLineMode || (exports.TextWholeLineMode = {})); - // - var TextBreakMode; - (function (TextBreakMode) { - // - TextBreakMode["TextBreakWhitespaceOnly"] = "text-break-ws-only"; - // - TextBreakMode["TextBreakAuto"] = "text-break-auto"; - })(TextBreakMode = exports.TextBreakMode || (exports.TextBreakMode = {})); - // type of aggregation - var AggType; - (function (AggType) { - // - AggType["AGG_SUM"] = "sum"; - // - AggType["AGG_AVG"] = "average"; - // - AggType["AGG_MIN"] = "min"; - // - AggType["AGG_MAX"] = "max"; - // - AggType["AGG_STDEV"] = "std-dev"; - // - AggType["AGG_STDEVP"] = "std-dev-p"; - // - AggType["AGG_VAR"] = "var"; - // - AggType["AGG_VARP"] = "var-p"; - // - AggType["AGG_COUNT"] = "count"; - // - AggType["AGG_COUNTD"] = "count-d"; - // - AggType["AGG_MEDIAN"] = "median"; - // - AggType["AGG_ATTR"] = "attr"; - // - AggType["AGG_NONE"] = "none"; - // - AggType["AGG_PERCENTILE"] = "percentile"; - // - AggType["AGG_YEAR"] = "year"; - // - AggType["AGG_QTR"] = "qtr"; - // - AggType["AGG_MONTH"] = "month"; - // - AggType["AGG_DAY"] = "day"; - // - AggType["AGG_HOUR"] = "hour"; - // - AggType["AGG_MINUTE"] = "minute"; - // - AggType["AGG_SECOND"] = "second"; - // - AggType["AGG_WEEK"] = "week"; - // - AggType["AGG_WEEKDAY"] = "weekday"; - // - AggType["AGG_MONTHYEAR"] = "month-year"; - // - AggType["AGG_MDY"] = "mdy"; - // - AggType["AGG_END"] = "end"; - // - AggType["TRUNC_YEAR"] = "trunc-year"; - // - AggType["TRUNC_QTR"] = "trunc-qtr"; - // - AggType["TRUNC_MONTH"] = "trunc-month"; - // - AggType["TRUNC_WEEK"] = "trunc-week"; - // - AggType["TRUNC_DAY"] = "trunc-day"; - // - AggType["TRUNC_HOUR"] = "trunc-hour"; - // - AggType["TRUNC_MINUTE"] = "trunc-minute"; - // - AggType["TRUNC_SECOND"] = "trunc-second"; - // - AggType["AGG_QUART1"] = "quart1"; - // - AggType["AGG_QUART3"] = "quart3"; - // - AggType["AGG_SKEWNESS"] = "skewness"; - // - AggType["AGG_KURTOSIS"] = "kurtosis"; - // - AggType["AGG_INOUT"] = "in-out"; - // - AggType["AGG_SUM_XSQR"] = "sum-xsqr"; - // - AggType["AGG_USER"] = "user"; - // - AggType["AGG_COLLECT"] = "collect"; - // - AggType["AGG_COVAR"] = "covar"; - // - AggType["AGG_COVARP"] = "covarp"; - // - AggType["AGG_CORR"] = "corr"; - })(AggType = exports.AggType || (exports.AggType = {})); - // DataValueFormatter::DataTypeEncodings has hardcoded values corresponding to following enum members - var DataType; - (function (DataType) { - // - DataType["DT_INTEGER"] = "integer"; - // - DataType["DT_REAL"] = "real"; - // - DataType["DT_STRING"] = "cstring"; - // - DataType["DT_DATETIME"] = "datetime"; - // - DataType["DT_BOOLEAN"] = "boolean"; - // - DataType["DT_DATE"] = "date"; - // - DataType["DT_TUPLE"] = "tuple"; - // - DataType["DT_SPATIAL"] = "spatial"; - // - DataType["DT_UNKNOWN"] = "unknown"; - // - DataType["DT_BINARY"] = "binary"; - })(DataType = exports.DataType || (exports.DataType = {})); - // - var SortDirection; - (function (SortDirection) { - // ascending - SortDirection["ST_ASC"] = "asc"; - // descending - SortDirection["ST_DESC"] = "desc"; - })(SortDirection = exports.SortDirection || (exports.SortDirection = {})); - // - var SortType; - (function (SortType) { - // Use the defined ordering - SortType["ST_NATURAL"] = "data-source-order"; - // Alphabetic/numeric ordering of data - SortType["ST_ALPHABETIC"] = "alpha"; - // Specify a secondary field - SortType["ST_COMPUTED"] = "field"; - // Manually defined ordering - SortType["ST_MANUAL"] = "manual"; - })(SortType = exports.SortType || (exports.SortType = {})); - // - var SortEnd; - (function (SortEnd) { - // - SortEnd["ST_TOP"] = "top"; - // - SortEnd["ST_BOTTOM"] = "bottom"; - })(SortEnd = exports.SortEnd || (exports.SortEnd = {})); - // - var ForecastColumnType; - (function (ForecastColumnType) { - // - ForecastColumnType["FORECAST_NONE"] = "none"; - // - ForecastColumnType["FORECAST_VALUE"] = "value"; - // - ForecastColumnType["FORECAST_INDICATOR"] = "indicator"; - // - ForecastColumnType["FORECAST_PRECISION"] = "precision"; - // - ForecastColumnType["FORECAST_QUALITY"] = "quality"; - // - ForecastColumnType["FORECAST_FIT_TREND"] = "fit_trend"; - // - ForecastColumnType["FORECAST_PRECISION_PERCENT"] = "precision_percent"; - // - ForecastColumnType["FORECAST_PREDICTION_INTERVAL_UPPER"] = "prediction_upper"; - // - ForecastColumnType["FORECAST_PREDICTION_INTERVAL_LOWER"] = "prediction_lower"; - })(ForecastColumnType = exports.ForecastColumnType || (exports.ForecastColumnType = {})); - // - var MarkMarkersMode; - (function (MarkMarkersMode) { - // - MarkMarkersMode["MMM_Auto"] = "mmm-auto"; - // - MarkMarkersMode["MMM_All"] = "mmm_all"; - // - MarkMarkersMode["MMM_None"] = "mmm_none"; - // - MarkMarkersMode["MMM_Default"] = "mmm_default"; - })(MarkMarkersMode = exports.MarkMarkersMode || (exports.MarkMarkersMode = {})); - // - var PercentMode; - (function (PercentMode) { - // - PercentMode["PERCENT_CELL_IN_PANE"] = "cell-in-pane"; - // - PercentMode["PERCENT_ROW_IN_PANE"] = "row-in-pane"; - // - PercentMode["PERCENT_COLUMN_IN_PANE"] = "column-in-pane"; - // - PercentMode["PERCENT_PANE"] = "pane"; - // - PercentMode["PERCENT_ROW"] = "row"; - // - PercentMode["PERCENT_COLUMN"] = "column"; - // - PercentMode["PERCENT_TABLE"] = "table"; - })(PercentMode = exports.PercentMode || (exports.PercentMode = {})); - // - var SpecialValuesMode; - (function (SpecialValuesMode) { - // - SpecialValuesMode["SPECIAL_VALUES_HIDE_AND_WARN"] = "hide-and-warn"; - // - SpecialValuesMode["SPECIAL_VALUES_HIDE"] = "hide"; - // - SpecialValuesMode["SPECIAL_VALUES_HIDE_BREAK_LINES"] = "hide-break-lines"; - // - SpecialValuesMode["SPECIAL_VALUES_SHOW"] = "show"; - })(SpecialValuesMode = exports.SpecialValuesMode || (exports.SpecialValuesMode = {})); - // - var LayoutType; - (function (LayoutType) { - // - LayoutType["LAYOUT_CARTESIAN"] = "cartesian"; - // - LayoutType["LAYOUT_DEFAULT"] = "default"; - })(LayoutType = exports.LayoutType || (exports.LayoutType = {})); - // - var ShelfType; - (function (ShelfType) { - // - ShelfType["ST_NONE"] = "none-shelf"; - // - ShelfType["ST_COLUMNS_SHELF"] = "columns-shelf"; - // - ShelfType["ST_ROWS_SHELF"] = "rows-shelf"; - // - ShelfType["ST_PAGES_SHELF"] = "pages-shelf"; - // - ShelfType["ST_FILTER_SHELF"] = "filter-shelf"; - // - ShelfType["ST_IMAGE_SHELF"] = "image-shelf"; - // - ShelfType["ST_MEASURES_SHELF"] = "measures-shelf"; - // - ShelfType["ST_SHOWME_SHELF"] = "show-me-shelf"; - // - ShelfType["ST_ENCODING_SHELF"] = "encoding-shelf"; - // - ShelfType["ST_CLUSTER_SHELF"] = "cluster-shelf"; - // - ShelfType["ST_GEOMETRY_SHELF"] = "geometry-shelf"; - // - ShelfType["ST_END"] = "end-shelf"; - // - ShelfType["ST_FINAL"] = "final-shelf"; - })(ShelfType = exports.ShelfType || (exports.ShelfType = {})); - // - var RestrictType; - (function (RestrictType) { - // - RestrictType["RT_INTERSECT"] = "rt-intersection"; - // - RestrictType["RT_UNION"] = "rt-union"; - })(RestrictType = exports.RestrictType || (exports.RestrictType = {})); - // - var TooltipMode; - (function (TooltipMode) { - // - TooltipMode["TM_NONE"] = "none"; - // - TooltipMode["TM_STICKY"] = "sticky"; - // - TooltipMode["TM_SMOOTH"] = "smooth"; - })(TooltipMode = exports.TooltipMode || (exports.TooltipMode = {})); - // - var ColumnGroups; - (function (ColumnGroups) { - // 0x01 - ColumnGroups["COLS_IN_OUTPUT"] = "cols-in-output"; - // 0x02 - ColumnGroups["COLS_IN_FILTER_SHELF"] = "cols-in-filter-shelf"; - // 0x04 - ColumnGroups["COLS_REF_BY_FILTERS"] = "cols-ref-by-filters"; - // 0x08 - ColumnGroups["COLS_REF_BY_OMEASURES"] = "cols-ref-by-omeasures"; - // 0x10 - ColumnGroups["COLS_REF_BY_JOIN_LOD"] = "cols-ref-by-join-lod"; - // 0x20 - ColumnGroups["COLS_HIDDEN"] = "cols-hidden"; - // 0x40 - ColumnGroups["COLS_REF_BY_SORTS"] = "cols-ref-by-sorts"; - // - ColumnGroups["COLS_REF_BY_FILTERS_OR_SORTS"] = "cols-ref-by-filters-or-sorts"; - // - ColumnGroups["COLS_ON_SHELVES"] = "cols-on-shelves"; - // - ColumnGroups["COLS_ALL"] = "cols-all"; - })(ColumnGroups = exports.ColumnGroups || (exports.ColumnGroups = {})); - // - var ButtonsOption; - (function (ButtonsOption) { - // - ButtonsOption["BO_HIDE"] = "buttons-hide"; - })(ButtonsOption = exports.ButtonsOption || (exports.ButtonsOption = {})); - // - var SelectionRelaxationOption; - (function (SelectionRelaxationOption) { - // - SelectionRelaxationOption["SRO_ALLOW"] = "selection-relaxation-allow"; - // - SelectionRelaxationOption["SRO_DISALLOW"] = "selection-relaxation-disallow"; - })(SelectionRelaxationOption = exports.SelectionRelaxationOption || (exports.SelectionRelaxationOption = {})); - // - var EncodingType; - (function (EncodingType) { - // a text encoding - EncodingType["ET_TEXT"] = "text-encoding"; - // a color encoding - EncodingType["ET_COLOR"] = "color-encoding"; - // a size encoding - EncodingType["ET_SIZE"] = "size-encoding"; - // a shape encoding - EncodingType["ET_SHAPE"] = "shape-encoding"; - // an image encoding - EncodingType["ET_IMAGE"] = "image-encoding"; - // a sort (path) encoding (currently only for line or polygon charts) - EncodingType["ET_SORT"] = "sort-encoding"; - // a wedge size (angle) encoding (currently only for pie charts) - EncodingType["ET_WEDGESIZE"] = "wedge-size-encoding"; - // a geometry encoding - EncodingType["ET_GEOMETRY"] = "geometry-encoding"; - // a level of detail encoding - EncodingType["ET_LOD"] = "level-of-detail-encoding"; - // encoding used for the data highlighter/legend mechanism - EncodingType["ET_HIGHLIGHT"] = "highlight-encoding"; - // a tooltip encoding - EncodingType["ET_TOOLTIP"] = "tooltip-encoding"; - // a temporary label placed above marks for the table calc dialog - EncodingType["ET_RUNNINGORDER"] = "runningorder-encoding"; - // the number of encodings, this is invalid input for an encoding presentation model - EncodingType["NUM_ENCODINGS"] = "num-encodings"; - // an invalid encoding - EncodingType["ET_INVALID"] = "invalid-encoding"; - })(EncodingType = exports.EncodingType || (exports.EncodingType = {})); - // Enumeration of valid horizontal alignments. - var LabelHAlignment; - (function (LabelHAlignment) { - // - LabelHAlignment["LHA_Left"] = "h-align-left"; - // - LabelHAlignment["LHA_Center"] = "h-align-center"; - // - LabelHAlignment["LHA_Right"] = "h-align-right"; - // - LabelHAlignment["LHA_Automatic"] = "h-align-auto"; - })(LabelHAlignment = exports.LabelHAlignment || (exports.LabelHAlignment = {})); - // Enumeration of valid vertical alignments. - var LabelVAlignment; - (function (LabelVAlignment) { - // - LabelVAlignment["LVA_Bottom"] = "v-align-bottom"; - // - LabelVAlignment["LVA_Center"] = "v-align-center"; - // - LabelVAlignment["LVA_Top"] = "v-align-top"; - // - LabelVAlignment["LVA_Automatic"] = "v-align-auto"; - })(LabelVAlignment = exports.LabelVAlignment || (exports.LabelVAlignment = {})); - // Enumeration of valid label positions. - var LabelPosition; - (function (LabelPosition) { - // Position each text run relative to the center of the original bbox. Use the original bbox as the height and width of the text mark. Used for non-stacked OO text marks. - LabelPosition["CenterInOriginalBbox"] = "label-position-center-in-original-box"; - // Position each text run relative to the bottom left corner of the measured bbox. Use the measured bbox as the width and height of the label. Used for labels - LabelPosition["OriginAtLowerLeft"] = "label-position-origin-at-lower-left"; - // Position each text run relative to the center of the measured bbox. Use the measured bbox as the width and height of the text mark. Used for most text marks. - LabelPosition["OriginAtCenter"] = "label-position-origin-at-center"; - })(LabelPosition = exports.LabelPosition || (exports.LabelPosition = {})); - // Enumeration of ways to use color. Values can be or'ed together to make a mask for allowed options - var ColorMode; - (function (ColorMode) { - // Color user specified - ColorMode["CLRM_User"] = "clrm-user"; - // Color selected automatically - ColorMode["CLRM_Auto"] = "clrm-auto"; - // Color matches mark color - ColorMode["CLRM_Match"] = "clrm-match"; - // No color (transparent or not drawn) - ColorMode["CLRM_None"] = "clrm-none"; - })(ColorMode = exports.ColorMode || (exports.ColorMode = {})); - // - var MarkLabelsMode; - (function (MarkLabelsMode) { - // - MarkLabelsMode["MLM_All"] = "mlm-all"; - // - MarkLabelsMode["MLM_Selection"] = "mlm-selection"; - // - MarkLabelsMode["MLM_Highlight"] = "mlm-highlight"; - // - MarkLabelsMode["MLM_LineEnds"] = "mlm-line-ends"; - // min/max setting - MarkLabelsMode["MLM_Range"] = "mlm-range"; - // most recent (only relevant when date field is in play) - MarkLabelsMode["MLM_MostRecent"] = "mlm-most-recent"; - // ...this is " virtual " (runtime only, not saved, not shown as a user setting - MarkLabelsMode["MLM_MultipleValues"] = "mlm-multiple-values"; - // - MarkLabelsMode["MLM_Default"] = "mlm-default"; - })(MarkLabelsMode = exports.MarkLabelsMode || (exports.MarkLabelsMode = {})); - // - var MarkLabelsScope; - (function (MarkLabelsScope) { - // - MarkLabelsScope["MLS_Table"] = "mls-table"; - // - MarkLabelsScope["MLS_Pane"] = "mls-pane"; - // - MarkLabelsScope["MLS_Cell"] = "mls-cell"; - // - MarkLabelsScope["MLS_MultiMark"] = "mls-multimark"; - // ...this is " virtual " (runtime only, not saved, not shown as a user setting) - MarkLabelsScope["MLS_MultipleValues"] = "mls-multiple-values"; - // - MarkLabelsScope["MLS_Default"] = "mls-default"; - })(MarkLabelsScope = exports.MarkLabelsScope || (exports.MarkLabelsScope = {})); - // - var MarkLabelsVisibility; - (function (MarkLabelsVisibility) { - // - MarkLabelsVisibility["MLV_Hidden"] = "mlv-hidden"; - // - MarkLabelsVisibility["MLV_Visible"] = "mlv-visible"; - // - MarkLabelsVisibility["MLV_UseCurrent"] = "mlv-use-current"; - })(MarkLabelsVisibility = exports.MarkLabelsVisibility || (exports.MarkLabelsVisibility = {})); - // - var StackingMode; - (function (StackingMode) { - // - StackingMode["StackingOff"] = "off"; - // - StackingMode["StackingOn"] = "on"; - // - StackingMode["StackingAuto"] = "auto"; - })(StackingMode = exports.StackingMode || (exports.StackingMode = {})); - // - var MarkAlignment; - (function (MarkAlignment) { - // - MarkAlignment["MarkAlignmentLeft"] = "mark-alignment-left"; - // - MarkAlignment["MarkAlignmentRight"] = "mark-alignment-right"; - // - MarkAlignment["MarkAlignmentCenter"] = "mark-alignment-center"; - })(MarkAlignment = exports.MarkAlignment || (exports.MarkAlignment = {})); - // - var PaneLabelComposition; - (function (PaneLabelComposition) { - // - PaneLabelComposition["PLC_None"] = "pane-label-composition-none"; - // - PaneLabelComposition["PLC_Mixed"] = "pane-label-composition-mixed"; - // - PaneLabelComposition["PLC_All"] = "pane-label-composition-all"; - })(PaneLabelComposition = exports.PaneLabelComposition || (exports.PaneLabelComposition = {})); - // The user-specified mark type on the Marks Card - var PrimitiveType; - (function (PrimitiveType) { - // - PrimitiveType["PT_AUTOMATIC"] = "automatic"; - // - PrimitiveType["PT_TEXT"] = "text"; - // - PrimitiveType["PT_IMAGE"] = "image"; - // - PrimitiveType["PT_SHAPE"] = "shape"; - // - PrimitiveType["PT_RECTANGLE"] = "rectangle"; - // - PrimitiveType["PT_BAR"] = "bar"; - // - PrimitiveType["PT_GANTT"] = "gantt"; - // - PrimitiveType["PT_SQUARE"] = "square"; - // - PrimitiveType["PT_CIRCLE"] = "circle"; - // - PrimitiveType["PT_POLYLINE"] = "polyline"; - // line chart - PrimitiveType["PT_LINE"] = "line"; - // - PrimitiveType["PT_POLYGON"] = "polygon"; - // area chart - PrimitiveType["PT_AREA"] = "area"; - // - PrimitiveType["PT_PIE"] = "pie"; - // - PrimitiveType["PT_MULTIPOLYGON"] = "multipolygon"; - // Not an actual primitive type. This is just used to flag the UI that multiple types are in play. - PrimitiveType["PT_MULTIPLE"] = "multiple"; - // used for looping over all values - PrimitiveType["NUM_PRIMITIVES"] = "count"; - // used to flag an unset or invalid state - PrimitiveType["PT_INVALID"] = "invalid"; - })(PrimitiveType = exports.PrimitiveType || (exports.PrimitiveType = {})); - // Defines the way a given primitive behaves on a viz - for instance, a PT_CIRCLE is treated as a point, while a PT_POLYGON would be treated as an area. - var MarkType; - (function (MarkType) { - // - MarkType["MT_POINT"] = "point"; - // - MarkType["MT_LINE"] = "line"; - // - MarkType["MT_AREA"] = "area"; - // - MarkType["MT_INVALID"] = "invalid"; - })(MarkType = exports.MarkType || (exports.MarkType = {})); - // PaneAxis is used to describe which axis of a pane is the independent axis. - var PaneAxis; - (function (PaneAxis) { - // The independent axis is inferred from other properties of the pane. - PaneAxis["AXIS_AUTO"] = "auto"; - // - PaneAxis["AXIS_X"] = "x"; - // - PaneAxis["AXIS_Y"] = "y"; - })(PaneAxis = exports.PaneAxis || (exports.PaneAxis = {})); - // - var Rounding; - (function (Rounding) { - // - Rounding["Rounding_None"] = "none"; - // - Rounding["Rounding_Small"] = "small"; - // - Rounding["Rounding_Medium"] = "medium"; - // - Rounding["Rounding_Large"] = "large"; - })(Rounding = exports.Rounding || (exports.Rounding = {})); - // - var LineEnd; - (function (LineEnd) { - // - LineEnd["LineEnd_None"] = "none"; - // - LineEnd["LineEnd_Arrow"] = "arrow"; - // - LineEnd["LineEnd_OpenArrow"] = "open-arrow"; - // - LineEnd["LineEnd_Dot"] = "dot"; - })(LineEnd = exports.LineEnd || (exports.LineEnd = {})); - // - var LineEndSize; - (function (LineEndSize) { - // - LineEndSize["LineEndSize_Smallest"] = "smallest"; - // - LineEndSize["LineEndSize_Smaller"] = "smaller"; - // - LineEndSize["LineEndSize_Small"] = "small"; - // - LineEndSize["LineEndSize_Medium"] = "medium"; - // - LineEndSize["LineEndSize_Large"] = "large"; - // - LineEndSize["LineEndSize_Larger"] = "larger"; - // - LineEndSize["LineEndSize_Largest"] = "largest"; - })(LineEndSize = exports.LineEndSize || (exports.LineEndSize = {})); - // - var BodyType; - (function (BodyType) { - // - BodyType["BodyType_None"] = "none"; - // - BodyType["BodyType_Box"] = "box"; - // - BodyType["BodyType_Edge"] = "edge"; - })(BodyType = exports.BodyType || (exports.BodyType = {})); - // - var StyleTheme; - (function (StyleTheme) { - // - StyleTheme["themeClassic"] = "classic"; - // - StyleTheme["themeModern"] = "modern"; - // - StyleTheme["themeClean"] = "clean"; - // - StyleTheme["themeSmooth"] = "smooth"; - // - StyleTheme["themeCustom"] = "custom"; - })(StyleTheme = exports.StyleTheme || (exports.StyleTheme = {})); - // - var AxisFoldState; - (function (AxisFoldState) { - // - AxisFoldState["afNone"] = "none"; - // - AxisFoldState["afFolded"] = "folded"; - // - AxisFoldState["afSynchronized"] = "synchronized"; - })(AxisFoldState = exports.AxisFoldState || (exports.AxisFoldState = {})); - // - var LinePattern; - (function (LinePattern) { - // - LinePattern["LinePatternNone"] = "none"; - // - LinePattern["LinePatternSolid"] = "solid"; - // - LinePattern["LinePatternDashed"] = "dashed"; - // - LinePattern["LinePatternDotted"] = "dotted"; - })(LinePattern = exports.LinePattern || (exports.LinePattern = {})); - // - var LineVisibility; - (function (LineVisibility) { - // - LineVisibility["LineVisibilityAuto"] = "automatic"; - // - LineVisibility["LineVisibilityOn"] = "on"; - // - LineVisibility["LineVisibilityOff"] = "off"; - })(LineVisibility = exports.LineVisibility || (exports.LineVisibility = {})); - // - var StylesLinePattern; - (function (StylesLinePattern) { - // - StylesLinePattern["StylesLinePatternSolid"] = "solid"; - // - StylesLinePattern["StylesLinePatternDashed"] = "dashed"; - // - StylesLinePattern["StylesLinePatternDotted"] = "dotted"; - })(StylesLinePattern = exports.StylesLinePattern || (exports.StylesLinePattern = {})); - // - var LineCap; - (function (LineCap) { - // - LineCap["LineCapFlat"] = "flat"; - // - LineCap["LineCapSquare"] = "square"; - // - LineCap["LineCapRound"] = "round"; - // - LineCap["LineCapTriangle"] = "triangle"; - })(LineCap = exports.LineCap || (exports.LineCap = {})); - // - var LineJoin; - (function (LineJoin) { - // - LineJoin["BevelJoin"] = "bevel"; - // - LineJoin["MiterJoin"] = "miter"; - // - LineJoin["RoundJoin"] = "round"; - })(LineJoin = exports.LineJoin || (exports.LineJoin = {})); - // - var LineAlignment; - (function (LineAlignment) { - // - LineAlignment["AlignmentCenter"] = "center"; - // - LineAlignment["AlignmentInset"] = "inset"; - })(LineAlignment = exports.LineAlignment || (exports.LineAlignment = {})); - // - var FillMode; - (function (FillMode) { - // - FillMode["FillEvenOdd"] = "even-odd"; - // - FillMode["FillWinding"] = "winding"; - })(FillMode = exports.FillMode || (exports.FillMode = {})); - // - var BorderStyle; - (function (BorderStyle) { - // none - BorderStyle["BorderStyleNone"] = "bs-none"; - // hidden - BorderStyle["BorderStyleHidden"] = "bs-hidden"; - // dotted - BorderStyle["BorderStyleDotted"] = "bs-dotted"; - // dashed - BorderStyle["BorderStyleDashed"] = "bs-dashed"; - // solid - BorderStyle["BorderStyleSolid"] = "bs-solid"; - // double - BorderStyle["BorderStyleDouble"] = "bs-double"; - // groove - BorderStyle["BorderStyleGroove"] = "bs-groove"; - // ridge - BorderStyle["BorderStyleRidge"] = "bs-ridge"; - // inset - BorderStyle["BorderStyleInset"] = "bs-inset"; - // outset - BorderStyle["BorderStyleOutset"] = "bs-outset"; - // invalid - BorderStyle["BorderStyleInvalid"] = "bs-invalid"; - })(BorderStyle = exports.BorderStyle || (exports.BorderStyle = {})); - // - var ColorPaletteType; - (function (ColorPaletteType) { - // - ColorPaletteType["ColorPaletteRegular"] = "color-palette-regular"; - // - ColorPaletteType["ColorPaletteOrderedDiverging"] = "palette-ordered-diverging"; - // - ColorPaletteType["ColorPaletteOrderedLinear"] = "palette-ordered-linear"; - })(ColorPaletteType = exports.ColorPaletteType || (exports.ColorPaletteType = {})); - // - var PaletteFlags; - (function (PaletteFlags) { - // - PaletteFlags["PaletteFlagNone"] = "palette-flag-none"; - // - PaletteFlags["PaletteFlagCustom"] = "palette-flag-custom"; - // - PaletteFlags["PaletteFlagNotQuantitative"] = "palette-flag-not-quantitative"; - // - PaletteFlags["PaletteFlagNotCategorical"] = "palette-flag-not-categorical"; - // - PaletteFlags["PaletteFlagNotReferenceBand"] = "palette-flag-not-reference-band"; - // - PaletteFlags["PaletteFlagNotBoxplot"] = "palette-flag-not-boxplot"; - // - PaletteFlags["PaletteFlagNotFilledMapLight"] = "palette-flag-not-filled-map-light"; - // - PaletteFlags["PaletteFlagNotFilledMapDark"] = "palette-flag-not-filled-map-dark"; - // - PaletteFlags["PaletteFlagLegacy"] = "palette-flag-legacy"; - })(PaletteFlags = exports.PaletteFlags || (exports.PaletteFlags = {})); - // - var DefaultPaletteType; - (function (DefaultPaletteType) { - // - DefaultPaletteType["SmallNominal"] = "palette-default-small-nominal"; - // - DefaultPaletteType["LargeNominal"] = "palette-default-large-nominal"; - // - DefaultPaletteType["Ordinal"] = "palette-default-ordinal"; - // - DefaultPaletteType["QuantitativePositive"] = "palette-default-quant-pos"; - // - DefaultPaletteType["QuantitativeNegative"] = "palette-default-quant-neg"; - // - DefaultPaletteType["QuantitativeDiverging"] = "palette-default-quant-div"; - // - DefaultPaletteType["QuantitativePositiveLight"] = "palette-default-quant-pos-light"; - // - DefaultPaletteType["QuantitativeNegativeLight"] = "palette-default-quant-neg-light"; - // - DefaultPaletteType["QuantitativeDivergingLight"] = "palette-default-quant-div-light"; - // - DefaultPaletteType["QuantitativePositiveArea"] = "palette-default-quant-pos-area"; - // - DefaultPaletteType["QuantitativeNegativeArea"] = "palette-default-quant-neg-area"; - // - DefaultPaletteType["QuantitativeDivergingArea"] = "palette-default-quant-div-area"; - })(DefaultPaletteType = exports.DefaultPaletteType || (exports.DefaultPaletteType = {})); - // - var ShowBounds; - (function (ShowBounds) { - // - ShowBounds["Both"] = "show-both"; - // - ShowBounds["Upper"] = "show-upper"; - // - ShowBounds["Lower"] = "show-lower"; - })(ShowBounds = exports.ShowBounds || (exports.ShowBounds = {})); - // Sample vs. population standard deviation - var StDevType; - (function (StDevType) { - // - StDevType["Sample"] = "stdev-sample"; - // - StDevType["Population"] = "stdev-population"; - })(StDevType = exports.StDevType || (exports.StDevType = {})); - // - var ReferenceLineFormulaGroup; - (function (ReferenceLineFormulaGroup) { - // - ReferenceLineFormulaGroup["None"] = "none"; - // - ReferenceLineFormulaGroup["Line"] = "line"; - // - ReferenceLineFormulaGroup["Band"] = "band"; - // - ReferenceLineFormulaGroup["Distribution"] = "distribution"; - // - ReferenceLineFormulaGroup["Boxplot"] = "boxplot"; - })(ReferenceLineFormulaGroup = exports.ReferenceLineFormulaGroup || (exports.ReferenceLineFormulaGroup = {})); - // - var ReferenceLineScopeType; - (function (ReferenceLineScopeType) { - // - ReferenceLineScopeType["PerCell"] = "per-cell"; - // - ReferenceLineScopeType["PerPane"] = "per-pane"; - // - ReferenceLineScopeType["PerTable"] = "per-table"; - })(ReferenceLineScopeType = exports.ReferenceLineScopeType || (exports.ReferenceLineScopeType = {})); - // how should the line be labeled - var ReferenceLineLabelType; - (function (ReferenceLineLabelType) { - // no label - ReferenceLineLabelType["None"] = "none"; - // an automatically generated label - ReferenceLineLabelType["Automatic"] = "automatic"; - // - ReferenceLineLabelType["Value"] = "value"; - // - ReferenceLineLabelType["Computation"] = "computation"; - // a user defined label - ReferenceLineLabelType["Custom"] = "custom"; - })(ReferenceLineLabelType = exports.ReferenceLineLabelType || (exports.ReferenceLineLabelType = {})); - // how should the line be computed - var ReferenceLineFormulaType; - (function (ReferenceLineFormulaType) { - // a user specified constant value - ReferenceLineFormulaType["Constant"] = "constant"; - // - ReferenceLineFormulaType["Total"] = "total"; - // total of all values at the given scope <- is this correct? looks like comment from FormulaTotal - ReferenceLineFormulaType["Sum"] = "sum"; - // minimum value in the scope - ReferenceLineFormulaType["Min"] = "min"; - // maximum value in the scope - ReferenceLineFormulaType["Max"] = "max"; - // average value in the scope - ReferenceLineFormulaType["Average"] = "average"; - // median value in the scope - ReferenceLineFormulaType["Median"] = "median"; - // the n quantiles values in the scope - ReferenceLineFormulaType["Quantiles"] = "quantiles"; - // a given percentile in the scope - ReferenceLineFormulaType["Percentile"] = "percentile"; - // mean +- standard deviation - ReferenceLineFormulaType["StandardDeviation"] = "standard-deviation"; - // a given confidence interval around the mean - ReferenceLineFormulaType["ConfidenceInterval"] = "confidence-interval"; - // - ReferenceLineFormulaType["MedianConfidenceInterval"] = "median-confidence-interval"; - })(ReferenceLineFormulaType = exports.ReferenceLineFormulaType || (exports.ReferenceLineFormulaType = {})); - // Line or confidence interval or both - var ReferenceLineConfidenceIntervalState; - (function (ReferenceLineConfidenceIntervalState) { - // display line only - ReferenceLineConfidenceIntervalState["LineOnly"] = "line-only"; - // display the line and a confidence interval - ReferenceLineConfidenceIntervalState["LineAndConfidenceInterval"] = "line-and-interval"; - // display confidence interval only - ReferenceLineConfidenceIntervalState["ConfidenceIntervalOnly"] = "interval-only"; - })(ReferenceLineConfidenceIntervalState = exports.ReferenceLineConfidenceIntervalState || (exports.ReferenceLineConfidenceIntervalState = {})); - // type of distribution. i.e. Percentage, Percentile, Quantile, and Standard Deviation - var ReferenceLineDistributionType; - (function (ReferenceLineDistributionType) { - // distribution type percentage - ReferenceLineDistributionType["Percentages"] = "percentages"; - // distribution type percentile - ReferenceLineDistributionType["Percentiles"] = "percentiles"; - // distribution type quantile - ReferenceLineDistributionType["Quantiles"] = "quantiles"; - // distribution type standard deviation - ReferenceLineDistributionType["StandardDeviation"] = "standard-deviation"; - })(ReferenceLineDistributionType = exports.ReferenceLineDistributionType || (exports.ReferenceLineDistributionType = {})); - // the kind of LOD calc to use for a given reference line - var ReferenceLineLODCalcType; - (function (ReferenceLineLODCalcType) { - // Create a formula using a FIXED-like level-of-detail calculation, to which sheet filters apply, that will go onto a specific sheet - ReferenceLineLODCalcType["MeasureFormula"] = "measure-formula"; - // Create a boolean formula that can be used as a filter - ReferenceLineLODCalcType["BooleanFilter"] = "boolean-filter"; - })(ReferenceLineLODCalcType = exports.ReferenceLineLODCalcType || (exports.ReferenceLineLODCalcType = {})); - // - var BoxplotWhiskerType; - (function (BoxplotWhiskerType) { - // - BoxplotWhiskerType["Standard"] = "standard"; - // - BoxplotWhiskerType["Minmax"] = "minmax"; - })(BoxplotWhiskerType = exports.BoxplotWhiskerType || (exports.BoxplotWhiskerType = {})); - // categories of connection types displayed by the connection UI - var ConnectionTypeCategory; - (function (ConnectionTypeCategory) { - // standard database - ConnectionTypeCategory["CTC_Database"] = "database"; - // 'More Items ...' meta item - ConnectionTypeCategory["CTC_More"] = "more"; - // Other file types - ConnectionTypeCategory["CTC_Other"] = "other"; - // invalid connection category - ConnectionTypeCategory["CTC_Invalid"] = "invalid"; - })(ConnectionTypeCategory = exports.ConnectionTypeCategory || (exports.ConnectionTypeCategory = {})); - // a logical grouping of connection types displayed by the connection UI - var ConnectionTypeGroup; - (function (ConnectionTypeGroup) { - // in a file - ConnectionTypeGroup["CTG_File"] = "file"; - // on a server - ConnectionTypeGroup["CTG_Server"] = "server"; - // on a recent server - ConnectionTypeGroup["CTG_MruServer"] = "mru-server"; - // invalid group - ConnectionTypeGroup["CTG_Invalid"] = "invalid"; - })(ConnectionTypeGroup = exports.ConnectionTypeGroup || (exports.ConnectionTypeGroup = {})); - // The type of metadata a column contains - var CubeMetadataCategory; - (function (CubeMetadataCategory) { - // cube's name - CubeMetadataCategory["CMC_Name"] = "name"; - // cube's description - CubeMetadataCategory["CMC_Description"] = "description"; - // cube's last updated timestamp - CubeMetadataCategory["CMC_LastUpdated"] = "last-updated"; - // invalid - CubeMetadataCategory["CMC_Invalid"] = "invalid"; - })(CubeMetadataCategory = exports.CubeMetadataCategory || (exports.CubeMetadataCategory = {})); - // The type of widget to display to the user when they are specifying connection info - var ConnectionWidgetType; - (function (ConnectionWidgetType) { - // show the join area - ConnectionWidgetType["CWT_JoinArea"] = "join-area"; - // show the cube selection ui - ConnectionWidgetType["CWT_CubeSelection"] = "cube-selection"; - // show the google analytics ui - ConnectionWidgetType["CWT_GoogleAnalytics"] = "google-analytics"; - // show the tableau server ui - ConnectionWidgetType["CWT_TableauServer"] = "tableau-server"; - // do not show any connection widget - ConnectionWidgetType["CWT_NoWidget"] = "no-widget"; - // invalid - ConnectionWidgetType["CWT_Invalid"] = "invalid"; - })(ConnectionWidgetType = exports.ConnectionWidgetType || (exports.ConnectionWidgetType = {})); - // The type of google analytics basic info - var GoogleBasicInfoType; - (function (GoogleBasicInfoType) { - // google analytics account - GoogleBasicInfoType["GA_Account"] = "ga-account"; - // google analytics property - GoogleBasicInfoType["GA_Property"] = "ga-property"; - // google analytics view - GoogleBasicInfoType["GA_View"] = "ga-view"; - // invalid - GoogleBasicInfoType["GA_Invalid"] = "invalid"; - })(GoogleBasicInfoType = exports.GoogleBasicInfoType || (exports.GoogleBasicInfoType = {})); - // The way in which a piece of connection information is specified - var ConnectionSpecificationType; - (function (ConnectionSpecificationType) { - // Uses a combo box - ConnectionSpecificationType["CST_ComboBox"] = "combo-box"; - // Uses a line edit - ConnectionSpecificationType["CST_LineEdit"] = "line-edit"; - // Uses a line edit with a browse button next to it - ConnectionSpecificationType["CST_LineEditBrowse"] = "line-edit-browse"; - // invalid - ConnectionSpecificationType["CST_Invalid"] = "invalid"; - })(ConnectionSpecificationType = exports.ConnectionSpecificationType || (exports.ConnectionSpecificationType = {})); - // GA Date Range - var DateRange; - (function (DateRange) { - // - DateRange["DateRangeFirst"] = "date-range-first"; - // - DateRange["DateRangeLast30Days"] = "date-range-last30"; - // - DateRange["DateRangeToday"] = "date-range-today"; - // - DateRange["DateRangeYesterday"] = "date-range-yesterday"; - // - DateRange["DateRangeLastWeek"] = "date-range-last-week"; - // - DateRange["DateRangeLastMonth"] = "date-range-last-month"; - // - DateRange["DateRangeLastYear"] = "date-range-last-year"; - // - DateRange["DateRangeThisWeekToYesterday"] = "date-range-this-week-to-yesterday"; - // - DateRange["DateRangeThisMonthToYesterday"] = "date-range-this-month-to-yesterday"; - // - DateRange["DateRangeThisYearToYesterday"] = "date-range-this-year-to-yesterday"; - // - DateRange["DateRangeLastWeekToYesterday"] = "date-range-last-week-to-yesterday"; - // - DateRange["DateRangeLastMonthToYesterday"] = "date-range-last-month-to-yesterday"; - // - DateRange["DateRangeLastYearToYesterday"] = "date-range-last-year-to-yesterday"; - // - DateRange["DateRangeFixedRange"] = "date-range-fixed-range"; - // - DateRange["DateRangeFixedStart"] = "date-range-fixed-start"; - // - DateRange["DateRangeCount"] = "date-range-count"; - })(DateRange = exports.DateRange || (exports.DateRange = {})); - // Specifies the type of widget to show in ConnectServerWidget - var ConnectServerWidgetType; - (function (ConnectServerWidgetType) { - // invalid - ConnectServerWidgetType["CSWT_Invalid"] = "invalid"; - // microsoft access - ConnectServerWidgetType["CSWT_Access"] = "access"; - // generic odbc - ConnectServerWidgetType["CSWT_ODBC"] = "odbc"; - // cubes - ConnectServerWidgetType["CSWT_Cube"] = "cube"; - // relational data sources - ConnectServerWidgetType["CSWT_Relational"] = "relational"; - // drill data source - ConnectServerWidgetType["CSWT_Drill"] = "drill"; - })(ConnectServerWidgetType = exports.ConnectServerWidgetType || (exports.ConnectServerWidgetType = {})); - // - var AuthenticationEnumsMode; - (function (AuthenticationEnumsMode) { - // no authentication widget - AuthenticationEnumsMode["AuthModeNone"] = "auth-mode-none"; - // username and password - AuthenticationEnumsMode["AuthModeBasic"] = "auth-mode-basic"; - // username and password can be blank - AuthenticationEnumsMode["AuthModeBasicNoValidateFields"] = "auth-mode-basic-no-validate-fields"; - // only username - AuthenticationEnumsMode["AuthModeBasicUserNameOnly"] = "auth-mode-basic-username-only"; - // aws access key and secret ID - AuthenticationEnumsMode["AuthModeBasicAWS"] = "auth-mode-basic-aws"; - // username, password, and a list of AuthOptions with radio buttons - AuthenticationEnumsMode["AuthModeRadio"] = "auth-mode-radio"; - // Like AuthModeRadio, but enable username/password even for integrated auth - AuthenticationEnumsMode["AuthModeRadioUnindented"] = "auth-mode-radio-unindented"; - // username, password, and a list of AuthOptions with a combobox - AuthenticationEnumsMode["AuthModeComboBox"] = "auth-mode-combobox"; - // Like AuthModeCombobox, but with option not requiring username/password - AuthenticationEnumsMode["AuthModeComboBoxIntegrated"] = "auth-mode-combobox-integrated"; - // driver, authentication, username, realm, etc - AuthenticationEnumsMode["AuthModeHive"] = "auth-mode-hive"; - // none, azure marketplace account, explicit - AuthenticationEnumsMode["AuthModeOData"] = "auth-mode-odata"; - // edition, authentication, sso domain, etc - AuthenticationEnumsMode["AuthModeSharePoint"] = "auth-mode-sharepoint"; - // username, password, client, & language - AuthenticationEnumsMode["AuthModeSAPBW"] = "auth-mode-sapbw"; - // Ability to switch between two different auth modes each in their own modal dialogs (basic and oauth) - AuthenticationEnumsMode["AuthModeSwitchModal"] = "auth-mode-switch-modal"; - })(AuthenticationEnumsMode = exports.AuthenticationEnumsMode || (exports.AuthenticationEnumsMode = {})); - // - var AuthenticationEnumsReconnectMode; - (function (AuthenticationEnumsReconnectMode) { - // Auth not needed for reconnect - AuthenticationEnumsReconnectMode["ReconnectModeNone"] = "reconnect-mode-none"; - // Username and password - AuthenticationEnumsReconnectMode["ReconnectModeBasic"] = "reconnect-mode-basic"; - // Access file - AuthenticationEnumsReconnectMode["ReconnectModeAccess"] = "reconnect-mode-access"; - // Microsoft Azure Data Market (OData) - AuthenticationEnumsReconnectMode["ReconnectModeDataMarket"] = "reconnect-mode-data-market"; - // Google OAuth - AuthenticationEnumsReconnectMode["ReconnectModeGoogleOAuth"] = "reconnect-mode-google-oauth"; - // SalesforceOAuth, with the option of username/password auth - AuthenticationEnumsReconnectMode["ReconnectModeSalesforceOAuth"] = "reconnect-mode-salesforce-oauth"; - // Web data connector - AuthenticationEnumsReconnectMode["ReconnectModeWebData"] = "reconnect-mode-web-data"; - })(AuthenticationEnumsReconnectMode = exports.AuthenticationEnumsReconnectMode || (exports.AuthenticationEnumsReconnectMode = {})); - // - var AuthenticationEnumsAuthOption; - (function (AuthenticationEnumsAuthOption) { - // FIRST - AuthenticationEnumsAuthOption["AuthExplicit"] = "auth-option-explicit"; - // - AuthenticationEnumsAuthOption["AuthExplicitUnindented"] = "auth-option-explicit-unindented"; - // - AuthenticationEnumsAuthOption["AuthUseWindows"] = "auth-option-use-windows"; - // - AuthenticationEnumsAuthOption["AuthUseWindowsPreferred"] = "auth-option-windows-preferred"; - // - AuthenticationEnumsAuthOption["AuthTeradata"] = "auth-option-teradata"; - // - AuthenticationEnumsAuthOption["AuthLDAP"] = "auth-option-ldap"; - // - AuthenticationEnumsAuthOption["AuthVirtualNode"] = "auth-option-virtual-node"; - // - AuthenticationEnumsAuthOption["AuthODataAccount"] = "auth-option-odata"; - // - AuthenticationEnumsAuthOption["AuthNone"] = "auth-option-none"; - // - AuthenticationEnumsAuthOption["AuthKerberos"] = "auth-option-kerberos"; - // Introduced for Kerberos with fallback, recognizing that the db may or may not be on Windows - AuthenticationEnumsAuthOption["AuthIntegrated"] = "auth-option-integrated"; - // - AuthenticationEnumsAuthOption["AuthUsername"] = "auth-option-username"; - // - AuthenticationEnumsAuthOption["AuthUsernameAndPassword"] = "auth-option-username-and-password"; - // - AuthenticationEnumsAuthOption["AuthSSL"] = "auth-option-ssl"; - // - AuthenticationEnumsAuthOption["AuthHDIEmulator"] = "auth-hdi-emulator"; - // - AuthenticationEnumsAuthOption["AuthHDIService"] = "auth-hdi-service"; - // - AuthenticationEnumsAuthOption["AuthHTTP"] = "auth-http"; - // - AuthenticationEnumsAuthOption["AuthHTTPS"] = "auth-https"; - // - AuthenticationEnumsAuthOption["AuthAccessNoSecurity"] = "auth-option-access-no"; - // - AuthenticationEnumsAuthOption["AuthAccessYesSecurity"] = "auth-option-access-yes"; - // - AuthenticationEnumsAuthOption["AuthOAuth"] = "auth-oauth"; - // - AuthenticationEnumsAuthOption["AuthForms"] = "auth-forms"; - // - AuthenticationEnumsAuthOption["AuthThirdPartySSO"] = "auth-third-party-SSO"; - // LAST - AuthenticationEnumsAuthOption["AuthInvalid"] = "auth-option-invalid"; - })(AuthenticationEnumsAuthOption = exports.AuthenticationEnumsAuthOption || (exports.AuthenticationEnumsAuthOption = {})); - // data source validation modes - var DataSourceParserValidationMode; - (function (DataSourceParserValidationMode) { - // - DataSourceParserValidationMode["WorkbookLoadValidation"] = "workbook-load-validation"; - // - DataSourceParserValidationMode["AutoValidation"] = "auto-validation"; - // - DataSourceParserValidationMode["ForceValidation"] = "force-validation"; - // - DataSourceParserValidationMode["PreventValidation"] = "prevent-validation"; - // - DataSourceParserValidationMode["PreventValidationAndThrow"] = "prevent-validation-and-throw"; - })(DataSourceParserValidationMode = exports.DataSourceParserValidationMode || (exports.DataSourceParserValidationMode = {})); - // Enum for DataGrid/MetadataGrid fields reordering - var FieldOrderType; - (function (FieldOrderType) { - // - FieldOrderType["DATASOURCE_ORDER"] = "datasource-order"; - // - FieldOrderType["ALPHA_PER_TABLE"] = "alpha-per-table"; - // - FieldOrderType["ALPHABETICAL_ORDER"] = "alphabetical-order"; - // - FieldOrderType["CUSTOM_ORDER"] = "custom-order"; - })(FieldOrderType = exports.FieldOrderType || (exports.FieldOrderType = {})); - // - var LineInterpolationMode; - (function (LineInterpolationMode) { - // - LineInterpolationMode["LIM_Linear"] = "lim-linear"; - // - LineInterpolationMode["LIM_Step"] = "lim-step"; - // - LineInterpolationMode["LIM_Jump"] = "lim-jump"; - })(LineInterpolationMode = exports.LineInterpolationMode || (exports.LineInterpolationMode = {})); - // - var LineMarkerPosition; - (function (LineMarkerPosition) { - // - LineMarkerPosition["LMP_Left"] = "lmp-left"; - // - LineMarkerPosition["LMP_Center"] = "lmp-center"; - // - LineMarkerPosition["LMP_Right"] = "lmp-right"; - })(LineMarkerPosition = exports.LineMarkerPosition || (exports.LineMarkerPosition = {})); - // Enumeration for the type of join connecting two tables - var SQLJoinType; - (function (SQLJoinType) { - // - SQLJoinType["SQL_InnerJoin"] = "sql-inner-join"; - // - SQLJoinType["SQL_LeftJoin"] = "sql-left-join"; - // - SQLJoinType["SQL_RightJoin"] = "sql-right-join"; - // - SQLJoinType["SQL_FullJoin"] = "sql-full-join"; - // - SQLJoinType["SQL_CrossJoin"] = "sql-cross-join"; - })(SQLJoinType = exports.SQLJoinType || (exports.SQLJoinType = {})); - // - var FolderRole; - (function (FolderRole) { - // - FolderRole["FOLDER_DIMENSIONS"] = "dimensions"; - // - FolderRole["FOLDER_MEASURES"] = "measure"; - // - FolderRole["FOLDER_GROUPS"] = "groups"; - // - FolderRole["FOLDER_PARAMETERS"] = "parameters"; - })(FolderRole = exports.FolderRole || (exports.FolderRole = {})); - // - var FieldTypeIconSet; - (function (FieldTypeIconSet) { - // - FieldTypeIconSet["FT_SET_ALL"] = "all"; - // - FieldTypeIconSet["FT_SET_CUBE_MEASURES"] = "cube-measures"; - // - FieldTypeIconSet["FT_SET_CUBE_DIMENSIONS"] = "cube-dimensions"; - })(FieldTypeIconSet = exports.FieldTypeIconSet || (exports.FieldTypeIconSet = {})); - // - var FieldPivotStrategy; - (function (FieldPivotStrategy) { - // - FieldPivotStrategy["PIVOT_ON_KEY"] = "pivot-on-key"; - // - FieldPivotStrategy["PIVOT_ON_ALIAS"] = "pivot-on-alias"; - })(FieldPivotStrategy = exports.FieldPivotStrategy || (exports.FieldPivotStrategy = {})); - // - var AliasType; - (function (AliasType) { - // - AliasType["ALIAS_NOTSET"] = "alias-not-set"; - // - AliasType["ALIAS_BEGIN"] = "alias-begin"; - // - AliasType["ALIAS_KEY"] = "alias-key"; - // - AliasType["ALIAS_KEY_NAME"] = "alias-key-name"; - // - AliasType["ALIAS_KEY_MEDNAME"] = "alias-key-medname"; - // - AliasType["ALIAS_KEY_LONGNAME"] = "alias-key-longname"; - // - AliasType["ALIAS_NAME"] = "alias-name"; - // - AliasType["ALIAS_NAME_KEY"] = "alias-name-key"; - // - AliasType["ALIAS_MEDNAME"] = "alias-medname"; - // - AliasType["ALIAS_MEDNAME_KEY"] = "alias-medname-key"; - // - AliasType["ALIAS_LONGNAME"] = "alias-longname"; - // - AliasType["ALIAS_LONGNAME_KEY"] = "alias-longname-key"; - // - AliasType["ALIAS_END"] = "alias-end"; - })(AliasType = exports.AliasType || (exports.AliasType = {})); - // - var AliasTypes; - (function (AliasTypes) { - // - AliasTypes["MASK_ALIAS_KEY"] = "mask-alias-key"; - // - AliasTypes["MASK_ALIAS_NAME"] = "mask-alias-name"; - // - AliasTypes["MASK_ALIAS_MEDNAME"] = "mask-alias-medname"; - // - AliasTypes["MASK_ALIAS_LONGNAME"] = "mask-alias-longname"; - })(AliasTypes = exports.AliasTypes || (exports.AliasTypes = {})); - // - var FieldRole; - (function (FieldRole) { - // - FieldRole["ROLE_DIMENSION"] = "dimension"; - // - FieldRole["ROLE_MEASURE"] = "measure"; - // - FieldRole["ROLE_UNKNOWN"] = "unknown"; - })(FieldRole = exports.FieldRole || (exports.FieldRole = {})); - // - var FieldType; - (function (FieldType) { - // - FieldType["TYPE_QUANTITATIVE"] = "quantitative"; - // - FieldType["TYPE_ORDINAL"] = "ordinal"; - // - FieldType["TYPE_NOMINAL"] = "nominal"; - // - FieldType["TYPE_UNKNOWN"] = "unknown"; - })(FieldType = exports.FieldType || (exports.FieldType = {})); - // - var DataSourceOrder; - (function (DataSourceOrder) { - // - DataSourceOrder["DSO_ALPHABETIC"] = "dso-alphabetic"; - // - DataSourceOrder["DSO_ORDINAL"] = "dso-ordinal"; - })(DataSourceOrder = exports.DataSourceOrder || (exports.DataSourceOrder = {})); - // Where the column comes from - var ColumnClass; - (function (ColumnClass) { - // A metadata column (O or Q Measures) - ColumnClass["COL_METADATA"] = "col-metadata"; - // A physical column on the database - ColumnClass["COL_DATABASE"] = "col-database"; - // A numberic bin (a special kind of calculated column) - ColumnClass["COL_NUMERICBIN"] = "col-numericbin"; - // A Categorical bin (group) - ColumnClass["COL_CATEGORICALBIN"] = "col-categoricalbin"; - // A column instance - ColumnClass["COL_INSTANCE"] = "col-instance"; - // A (raw) mdx calculated column - ColumnClass["COL_MDXCALC"] = "col-mdxcalc"; - // A user-defined calculated column, Tableau expression syntax - ColumnClass["COL_USERCALC"] = "col-usercalc"; - // A column that would have been COL_DATABASE, but the underlying database column does not exist - ColumnClass["COL_DANGLING"] = "col-dangling"; - // A column that contains local supplied data (e.g. Latitude) - ColumnClass["COL_LOCALDATA"] = "col-localdata"; - // A column that contains a visual model attribute (e.g. PaneIndex, Color, ...) - ColumnClass["COL_VISUALDATA"] = "col-visualdata"; - // A column that's a Group (a " Set " in UI terminology) - ColumnClass["COL_GROUP"] = "col-group"; - })(ColumnClass = exports.ColumnClass || (exports.ColumnClass = {})); - // - var VTAggType; - (function (VTAggType) { - // - VTAggType["VTAGG_SUM"] = "sum"; - // - VTAggType["VTAGG_AVG"] = "avg"; - // - VTAggType["VTAGG_MIN"] = "min"; - // - VTAggType["VTAGG_MAX"] = "max"; - // - VTAggType["VTAGG_SERVER"] = "server"; - // - VTAggType["VTAGG_NONE"] = "none"; - // - VTAggType["VTAGG_DEFAULT"] = "default"; - })(VTAggType = exports.VTAggType || (exports.VTAggType = {})); - // - var EntityType; - (function (EntityType) { - // - EntityType["NoEnumerationEntity"] = "no-enumeration-entity"; - // - EntityType["DatabaseEntity"] = "database-entity"; - // - EntityType["SchemaEntity"] = "schema-entity"; - // - EntityType["TableEntity"] = "table-entity"; - })(EntityType = exports.EntityType || (exports.EntityType = {})); - // - var PickEntitySearchType; - (function (PickEntitySearchType) { - // - PickEntitySearchType["PickEntitySearchType_StartsWith"] = "starts-with"; - // - PickEntitySearchType["PickEntitySearchType_Contains"] = "contains"; - // - PickEntitySearchType["PickEntitySearchType_ExactMatch"] = "exact-match"; - // - PickEntitySearchType["PickEntitySearchType_DEFAULT"] = "default"; - })(PickEntitySearchType = exports.PickEntitySearchType || (exports.PickEntitySearchType = {})); - // Parsing methods and structures. - var ExpressionOp; - (function (ExpressionOp) { - // - ExpressionOp["LogicalOr"] = "op-logical-or"; - // - ExpressionOp["LogicalAnd"] = "op-logical-and"; - // - ExpressionOp["LogicalNot"] = "op-logical-not"; - // - ExpressionOp["BitwiseXOr"] = "op-bitwise-xor"; - // - ExpressionOp["BitwiseOr"] = "op-bitwise-or"; - // - ExpressionOp["Equals"] = "op-equals"; - // - ExpressionOp["Greater"] = "op-greater"; - // - ExpressionOp["Less"] = "op-less"; - // - ExpressionOp["GEqual"] = "op-gequal"; - // - ExpressionOp["LEqual"] = "op-lequal"; - // - ExpressionOp["NEqual"] = "op-nequal"; - // - ExpressionOp["Plus"] = "op-plus"; - // - ExpressionOp["Minus"] = "op-minus"; - // - ExpressionOp["BitwiseAnd"] = "op-bitwise-and"; - // - ExpressionOp["Multiply"] = "op-multiply"; - // - ExpressionOp["Divide"] = "op-divide"; - // - ExpressionOp["Modulo"] = "op-modulo"; - // - ExpressionOp["Power"] = "op-power"; - // - ExpressionOp["Positive"] = "op-positive"; - // - ExpressionOp["Negative"] = "op-negative"; - // - ExpressionOp["BitwiseNot"] = "op-bitwise-not"; - // - ExpressionOp["Column"] = "op-column"; - // - ExpressionOp["String"] = "op-string"; - // - ExpressionOp["Number"] = "op-number"; - // - ExpressionOp["Date"] = "op-date"; - // - ExpressionOp["Boolean"] = "op-boolean"; - // - ExpressionOp["Funcall"] = "op-funcall"; - // - ExpressionOp["LParen"] = "op-lparen"; - // - ExpressionOp["RParen"] = "op-rparen"; - // - ExpressionOp["Comma"] = "op-comma"; - // - ExpressionOp["Ident"] = "op-ident"; - // - ExpressionOp["Null"] = "op-null"; - // - ExpressionOp["If"] = "op-if"; - // - ExpressionOp["Elseif"] = "op-elseif"; - // - ExpressionOp["Case"] = "op-case"; - // - ExpressionOp["When"] = "op-when"; - // - ExpressionOp["Then"] = "op-then"; - // - ExpressionOp["Else"] = "op-else"; - // - ExpressionOp["EndExpr"] = "op-endexpr"; - // - ExpressionOp["Whitespace"] = "op-whitespace"; - // - ExpressionOp["Comment"] = "op-comment"; - // - ExpressionOp["LBrace"] = "op-lbrace"; - // - ExpressionOp["RBrace"] = "op-rbrace"; - // - ExpressionOp["Colon"] = "op-colon"; - // - ExpressionOp["Bar"] = "op-bar"; - // - ExpressionOp["Txtype"] = "op-txtype"; - // - ExpressionOp["End"] = "op-end"; - // - ExpressionOp["RBrackets"] = "op-rbrackets"; - // used to represent invalid tokens - ExpressionOp["Invalid"] = "op-invalid"; - })(ExpressionOp = exports.ExpressionOp || (exports.ExpressionOp = {})); - // tri-state bool - var TriBool; - (function (TriBool) { - // - TriBool["TB_Invalid"] = "tribool-invalid"; - // - TriBool["TB_False"] = "tribool-false"; - // - TriBool["TB_True"] = "tribool-true"; - })(TriBool = exports.TriBool || (exports.TriBool = {})); - // table calc reference options set - var ReferenceOptionsSet; - (function (ReferenceOptionsSet) { - // - ReferenceOptionsSet["ROS_Relative"] = "reference-options-set-relative"; - // - ReferenceOptionsSet["ROS_Fixed"] = "reference-options-set-fixed"; - // - ReferenceOptionsSet["ROS_Parameter"] = "reference-options-set-parameter"; - // - ReferenceOptionsSet["ROS_None"] = "reference-options-set-none"; - })(ReferenceOptionsSet = exports.ReferenceOptionsSet || (exports.ReferenceOptionsSet = {})); - // widget state - var WidgetState; - (function (WidgetState) { - // - WidgetState["Hidden"] = "widget-state-hidden"; - // - WidgetState["Disabled"] = "widget-state-disabled"; - // - WidgetState["Enabled"] = "widget-state-enabled"; - })(WidgetState = exports.WidgetState || (exports.WidgetState = {})); - // rank type - var RankType; - (function (RankType) { - // - RankType["Competition"] = "rank-type-competition"; - // - RankType["ModifiedCompetition"] = "rank-type-modified-competition"; - // - RankType["Dense"] = "rank-type-dense"; - // - RankType["Unique"] = "rank-type-unique"; - })(RankType = exports.RankType || (exports.RankType = {})); - // - var TableCalcCommandType; - (function (TableCalcCommandType) { - // - TableCalcCommandType["TableCalcCommandClear"] = "clear"; - })(TableCalcCommandType = exports.TableCalcCommandType || (exports.TableCalcCommandType = {})); - // - var CalcNestingLevel; - (function (CalcNestingLevel) { - // - CalcNestingLevel["Primary"] = "primary"; - // used only for type != TC_CUSTOM - CalcNestingLevel["Secondary"] = "secondary"; - // used only for type == TC_CUSTOM - CalcNestingLevel["Nested"] = "nested"; - })(CalcNestingLevel = exports.CalcNestingLevel || (exports.CalcNestingLevel = {})); - // - var DecimalMode; - (function (DecimalMode) { - // - DecimalMode["DecimalModeAutomatic"] = "automatic"; - // - DecimalMode["DecimalModeManual"] = "manual"; - })(DecimalMode = exports.DecimalMode || (exports.DecimalMode = {})); - // - var TableCalcOrderingType; - (function (TableCalcOrderingType) { - // Advanced... - TableCalcOrderingType["OTField"] = "field"; - // Table (Across) - TableCalcOrderingType["OTRows"] = "rows"; - // Table (Down) - TableCalcOrderingType["OTColumns"] = "columns"; - // Table (Across then Down) - TableCalcOrderingType["OTTable"] = "table"; - // Table (Down then Across) - TableCalcOrderingType["OTTableColumnPrecedence"] = "table-column-precedence"; - // Pane Across - TableCalcOrderingType["OTRowInPane"] = "row-in-pane"; - // Pane (Down) - TableCalcOrderingType["OTColumnInPane"] = "column-in-pane"; - // Pane (Across then Down) - TableCalcOrderingType["OTPane"] = "pane"; - // Pane (Down then Across) - TableCalcOrderingType["OTPaneColumnPrecedence"] = "pane-column-precedence"; - // Cell - TableCalcOrderingType["OTCellInPane"] = "cell-in-pane"; - })(TableCalcOrderingType = exports.TableCalcOrderingType || (exports.TableCalcOrderingType = {})); - // - var TableCalcSortMode; - (function (TableCalcSortMode) { - // - TableCalcSortMode["SM_Automatic"] = "sort-mode-automatic"; - // - TableCalcSortMode["SM_Custom"] = "sort-mode-custom"; - })(TableCalcSortMode = exports.TableCalcSortMode || (exports.TableCalcSortMode = {})); - // - var TableCalcTableCalcType; - (function (TableCalcTableCalcType) { - // none (used to initialize variables) - TableCalcTableCalcType["TC_NONE"] = "none"; - // Running Total - TableCalcTableCalcType["TC_CUMULATIVE"] = "cumulative"; - // Moving Calculation - TableCalcTableCalcType["TC_WINDOW"] = "window"; - // Difference From - TableCalcTableCalcType["TC_DIFF"] = "diff"; - // Percent Difference From - TableCalcTableCalcType["TC_PCTDIFF"] = "pct-diff"; - // Percent From - TableCalcTableCalcType["TC_PCTVALUE"] = "pct-value"; - // Percent Of Total - TableCalcTableCalcType["TC_PCTTOTAL"] = "pct-total"; - // Rank - TableCalcTableCalcType["TC_RANK"] = "rank"; - // Percentile - TableCalcTableCalcType["TC_PCTRANK"] = "pct-rank"; - // Custom - TableCalcTableCalcType["TC_CUSTOM"] = "custom"; - })(TableCalcTableCalcType = exports.TableCalcTableCalcType || (exports.TableCalcTableCalcType = {})); - // - var QuickTableCalcCommandType; - (function (QuickTableCalcCommandType) { - // - QuickTableCalcCommandType["QuickTableCalcCommandRunTotal"] = "run-total"; - // - QuickTableCalcCommandType["QuickTableCalcCommandDifference"] = "difference"; - // - QuickTableCalcCommandType["QuickTableCalcCommandPctDiff"] = "pct-diff"; - // - QuickTableCalcCommandType["QuickTableCalcCommandPctTotal"] = "pct-total"; - // - QuickTableCalcCommandType["QuickTableCalcCommandRank"] = "rank"; - // - QuickTableCalcCommandType["QuickTableCalcCommandPctRank"] = "pct-rank"; - // - QuickTableCalcCommandType["QuickTableCalcCommandMovingAvg"] = "moving-avg"; - // - QuickTableCalcCommandType["QuickTableCalcCommandYtd"] = "ytd"; - // - QuickTableCalcCommandType["QuickTableCalcCommandCgr"] = "cgr"; - // - QuickTableCalcCommandType["QuickTableCalcCommandYOverY"] = "y-over-y"; - // - QuickTableCalcCommandType["QuickTableCalcCommandYtdGrowth"] = "ytd-growth"; - // - QuickTableCalcCommandType["QuickTableCalcCommandCustom"] = "custom"; - })(QuickTableCalcCommandType = exports.QuickTableCalcCommandType || (exports.QuickTableCalcCommandType = {})); - // - var TableCalcAddressCommandType; - (function (TableCalcAddressCommandType) { - // - TableCalcAddressCommandType["TableCalcAddressCommandRel"] = "rel"; - // - TableCalcAddressCommandType["TableCalcAddressCommandAbs"] = "abs"; - // - TableCalcAddressCommandType["TableCalcAddressCommandParam"] = "param"; - // - TableCalcAddressCommandType["TableCalcAddressCommandMore"] = "more"; - })(TableCalcAddressCommandType = exports.TableCalcAddressCommandType || (exports.TableCalcAddressCommandType = {})); - // relative addressing - var TableCalcRelativeAddress; - (function (TableCalcRelativeAddress) { - // - TableCalcRelativeAddress["RelAddrFirst"] = "relative-address-first"; - // - TableCalcRelativeAddress["RelAddrPrevious"] = "relative-address-previous"; - // - TableCalcRelativeAddress["RelAddrNext"] = "relative-address-next"; - // - TableCalcRelativeAddress["RelAddrLast"] = "relative-address-last"; - })(TableCalcRelativeAddress = exports.TableCalcRelativeAddress || (exports.TableCalcRelativeAddress = {})); - // - var CategoricalBinItemType; - (function (CategoricalBinItemType) { - // - CategoricalBinItemType["Unbinned"] = "unbinned"; - // - CategoricalBinItemType["BinMember"] = "categorical-bin-member"; - // - CategoricalBinItemType["Bin"] = "categorical-bin"; - })(CategoricalBinItemType = exports.CategoricalBinItemType || (exports.CategoricalBinItemType = {})); - // The class properties - var CredentialTypePropertiesFlag; - (function (CredentialTypePropertiesFlag) { - // - CredentialTypePropertiesFlag["None"] = "none"; - // - CredentialTypePropertiesFlag["GenericAuthClass"] = "generic-auth-class"; - // - CredentialTypePropertiesFlag["ProviderClass"] = "provider-class"; - // - CredentialTypePropertiesFlag["DataConnectionClass"] = "data-connection-class"; - })(CredentialTypePropertiesFlag = exports.CredentialTypePropertiesFlag || (exports.CredentialTypePropertiesFlag = {})); - // The connector type - var ConnectorType; - (function (ConnectorType) { - // - ConnectorType["Invalid"] = "invalid"; - // - ConnectorType["WebDataConnector"] = "web-data-connector"; - // - ConnectorType["CloudFileConnector"] = "cloud-file-connector"; - // - ConnectorType["LegacyConnector"] = "legacy-connector"; - })(ConnectorType = exports.ConnectorType || (exports.ConnectorType = {})); - // - var TablePillIcon; - (function (TablePillIcon) { - // - TablePillIcon["ListItem"] = "list-item"; - // - TablePillIcon["Sheet"] = "sheet"; - // - TablePillIcon["FoundTable"] = "found-table"; - // - TablePillIcon["NamedRange"] = "named-range"; - // - TablePillIcon["StoredProcedure"] = "stored-procedure"; - })(TablePillIcon = exports.TablePillIcon || (exports.TablePillIcon = {})); - // - var JoinValidationError; - (function (JoinValidationError) { - // - JoinValidationError["JVE_NoError"] = "no-error"; - // - JoinValidationError["JVE_EmptyClause"] = "empty-clause"; - // - JoinValidationError["JVE_TypeMismatch"] = "type-mismatch"; - // - JoinValidationError["JVE_InvalidField"] = "invalid-field"; - // - JoinValidationError["JVE_BadClause"] = "bad-clause"; - // - JoinValidationError["JVE_BadInputRelation"] = "bad-input-relation"; - // - JoinValidationError["JVE_RepeatedFieldReferences"] = "repeated-field-references"; - // - JoinValidationError["JVE_UnsupportedJoinType"] = "unsupported-join-type"; - // - JoinValidationError["JVE_InvalidCalculation"] = "invalid-calculation"; - // - JoinValidationError["JVE_Unknown"] = "unknown"; - })(JoinValidationError = exports.JoinValidationError || (exports.JoinValidationError = {})); - // - var ConnectionTypeEnum; - (function (ConnectionTypeEnum) { - // -d-s is used to force the enum generator to generate DS with capital letters in .cs just like the .cpp - ConnectionTypeEnum["InvalidDS"] = "invalid-d-s"; - // - ConnectionTypeEnum["FileDS"] = "file-d-s"; - // - ConnectionTypeEnum["ServerDS"] = "server-d-s"; - // - ConnectionTypeEnum["InternetDS"] = "internet-d-s"; - // - ConnectionTypeEnum["TableauServerDS"] = "tableau-server-d-s"; - })(ConnectionTypeEnum = exports.ConnectionTypeEnum || (exports.ConnectionTypeEnum = {})); - // The result of setting one end of an axis range - var SetAxisRangeResult; - (function (SetAxisRangeResult) { - // - SetAxisRangeResult["Success"] = "set-axis-range-success-result"; - // - SetAxisRangeResult["Failure"] = "set-axis-range-failure-result"; - })(SetAxisRangeResult = exports.SetAxisRangeResult || (exports.SetAxisRangeResult = {})); - // Enumeration of units tick spacing can take - var TickSpacingUnits; - (function (TickSpacingUnits) { - // - TickSpacingUnits["TickSpacingUnits__NoUnits"] = "no-units"; - // - TickSpacingUnits["TickSpacingUnits__Years"] = "years"; - // - TickSpacingUnits["TickSpacingUnits__Quarters"] = "quarters"; - // - TickSpacingUnits["TickSpacingUnits__Months"] = "months"; - // - TickSpacingUnits["TickSpacingUnits__Weeks"] = "weeks"; - // - TickSpacingUnits["TickSpacingUnits__Days"] = "days"; - // - TickSpacingUnits["TickSpacingUnits__Hours"] = "hours"; - // - TickSpacingUnits["TickSpacingUnits__Minutes"] = "minutes"; - // - TickSpacingUnits["TickSpacingUnits__Seconds"] = "seconds"; - })(TickSpacingUnits = exports.TickSpacingUnits || (exports.TickSpacingUnits = {})); - // Enumeration of whether totals are included in or excluded from the color encoding - var TotalsInclusion; - (function (TotalsInclusion) { - // Totals included in color encoding - TotalsInclusion["IncludeTotals"] = "include-totals"; - // Totals excluded from color encoding - TotalsInclusion["ExcludeTotals"] = "exclude-totals"; - })(TotalsInclusion = exports.TotalsInclusion || (exports.TotalsInclusion = {})); - // How tick marks are being calculated - var AxisOptionsTickMarkState; - (function (AxisOptionsTickMarkState) { - // - AxisOptionsTickMarkState["TicksNone"] = "ticks-None"; - // - AxisOptionsTickMarkState["TicksAutomatic"] = "ticks-automatic"; - // - AxisOptionsTickMarkState["TicksManual"] = "ticks-manual"; - })(AxisOptionsTickMarkState = exports.AxisOptionsTickMarkState || (exports.AxisOptionsTickMarkState = {})); - // Setting for type of axis range - var AxisRangeType; - (function (AxisRangeType) { - // - AxisRangeType["AxisRangeType__AutomaticRange"] = "automatic-range"; - // - AxisRangeType["AxisRangeType__UniformRange"] = "uniform-range"; - // - AxisRangeType["AxisRangeType__IndependentRange"] = "independent-range"; - // - AxisRangeType["AxisRangeType__FixedRange"] = "fixed-range"; - // - AxisRangeType["AxisRangeType__FixedMin"] = "fixed-min"; - // - AxisRangeType["AxisRangeType__FixedMax"] = "fixed-max"; - // - AxisRangeType["AxisRangeType__FixedMinIndependentMax"] = "fixed-min-independent-max"; - // - AxisRangeType["AxisRangeType__FixedMaxIndependentMin"] = "fixed-max-independent-min"; - // - AxisRangeType["AxisRangeType__FixedMinUniformMax"] = "fixed-min-uniform-max"; - // - AxisRangeType["AxisRangeType__FixedMaxUniformMin"] = "fixed-max-uniform-min"; - })(AxisRangeType = exports.AxisRangeType || (exports.AxisRangeType = {})); - // represents type of widget on the toolbar of rich text editor - var RichTextEditorWidgetKey; - (function (RichTextEditorWidgetKey) { - // - RichTextEditorWidgetKey["None"] = "none"; - // - RichTextEditorWidgetKey["FontSize"] = "fontsize"; - // - RichTextEditorWidgetKey["FontName"] = "fontname"; - // - RichTextEditorWidgetKey["FontColor"] = "color"; - // - RichTextEditorWidgetKey["Bold"] = "bold"; - // - RichTextEditorWidgetKey["Italic"] = "italic"; - // - RichTextEditorWidgetKey["Underline"] = "underline"; - // - RichTextEditorWidgetKey["AlignLeft"] = "justifyleft"; - // - RichTextEditorWidgetKey["AlignCenter"] = "justifycenter"; - // - RichTextEditorWidgetKey["AlignRight"] = "justifyright"; - // - RichTextEditorWidgetKey["ClearFormatting"] = "clearformatting"; - // - RichTextEditorWidgetKey["TableauKeywords"] = "tableaukeywords"; - })(RichTextEditorWidgetKey = exports.RichTextEditorWidgetKey || (exports.RichTextEditorWidgetKey = {})); - // - var CellSizeChange; - (function (CellSizeChange) { - // - CellSizeChange["CSC_Taller"] = "taller"; - // - CellSizeChange["CSC_Shorter"] = "shorter"; - // - CellSizeChange["CSC_Wider"] = "wider"; - // - CellSizeChange["CSC_Narrower"] = "narrower"; - // - CellSizeChange["CSC_Bigger"] = "bigger"; - // - CellSizeChange["CSC_Smaller"] = "smaller"; - })(CellSizeChange = exports.CellSizeChange || (exports.CellSizeChange = {})); - // - var CellTypeEnum; - (function (CellTypeEnum) { - // - CellTypeEnum["CLT_Square"] = "square"; - // - CellTypeEnum["CLT_Text"] = "text"; - })(CellTypeEnum = exports.CellTypeEnum || (exports.CellTypeEnum = {})); - // represents type of formatting pres model - var TypeOfFormatItem; - (function (TypeOfFormatItem) { - // - TypeOfFormatItem["FT_FormatItem"] = "formatItem"; - // - TypeOfFormatItem["FT_FormatContainer"] = "formatContainer"; - // - TypeOfFormatItem["FT_FormatControl"] = "formatControl"; - })(TypeOfFormatItem = exports.TypeOfFormatItem || (exports.TypeOfFormatItem = {})); - // represents type of formatting container - var TypeOfFormatContainer; - (function (TypeOfFormatContainer) { - // - TypeOfFormatContainer["FT_FormatPane"] = "formatPane"; - // - TypeOfFormatContainer["FT_FormatSection"] = "formatSection"; - // - TypeOfFormatContainer["FT_CollapsibleSection"] = "collapsibleSection"; - // - TypeOfFormatContainer["FT_CompositeContainer"] = "compositeContainer"; - // - TypeOfFormatContainer["FT_UnitContainer"] = "unitContainer"; - // - TypeOfFormatContainer["FT_Tab"] = "tab"; - // - TypeOfFormatContainer["FT_TabGroup"] = "tabGroup"; - })(TypeOfFormatContainer = exports.TypeOfFormatContainer || (exports.TypeOfFormatContainer = {})); - // represents type of formatting control - var TypeOfFormatControl; - (function (TypeOfFormatControl) { - // - TypeOfFormatControl["FT_None"] = "none"; - // - TypeOfFormatControl["FT_NumericControl"] = "numeric-control"; - // - TypeOfFormatControl["FT_TextControl"] = "text-control"; - // - TypeOfFormatControl["FT_ColorControl"] = "color-control"; - // - TypeOfFormatControl["FT_SelectorControl"] = "selector-control"; - // - TypeOfFormatControl["FT_ToggleControl"] = "toggle-control"; - })(TypeOfFormatControl = exports.TypeOfFormatControl || (exports.TypeOfFormatControl = {})); - // represents type of formatting widget - var FormatWidgetKey; - (function (FormatWidgetKey) { - // - FormatWidgetKey["FWK_None"] = "none"; - // - FormatWidgetKey["FWK_FontFamily"] = "fontFamily"; - // - FormatWidgetKey["FWK_FontSize"] = "fontSize"; - // - FormatWidgetKey["FWK_ColorSwatch"] = "colorSwatch"; - // - FormatWidgetKey["FWK_Bold"] = "bold"; - // - FormatWidgetKey["FWK_Italics"] = "italics"; - // - FormatWidgetKey["FWK_Underline"] = "underline"; - // - FormatWidgetKey["FWK_LineVisibility"] = "lineVisibility"; - // - FormatWidgetKey["FWK_LinePattern"] = "linePattern"; - // - FormatWidgetKey["FWK_LineSize"] = "lineSize"; - // - FormatWidgetKey["FWK_NumberType"] = "numericType"; - // - FormatWidgetKey["FWK_DecimalPlaces"] = "decimalPlaces"; - // - FormatWidgetKey["FWK_ThousandsSeparator"] = "thousandsSeparator"; - // - FormatWidgetKey["FWK_NumericUnits"] = "numericUnits"; - })(FormatWidgetKey = exports.FormatWidgetKey || (exports.FormatWidgetKey = {})); - // represents identifier for each node in format pane - var FormatNodeIdentifier; - (function (FormatNodeIdentifier) { - // - FormatNodeIdentifier["Format_None_Key"] = "none"; - // - FormatNodeIdentifier["Format_Workbook_Key"] = "workbook"; - // - FormatNodeIdentifier["Format_Font_Key"] = "font"; - // - FormatNodeIdentifier["Format_Color_Key"] = "color"; - // - FormatNodeIdentifier["Format_Lines_Key"] = "lines"; - // - FormatNodeIdentifier["Format_FontAll_Key"] = "font-all"; - // - FormatNodeIdentifier["Format_FontAllControls_Key"] = "font-all-controls"; - // - FormatNodeIdentifier["Format_FontMore_Key"] = "font-more"; - // - FormatNodeIdentifier["Format_FontWorksheetTitles_Key"] = "worksheet-titles"; - // - FormatNodeIdentifier["Format_FontToolTip_Key"] = "font-tooltip"; - // - FormatNodeIdentifier["Format_FontWorksheet_Key"] = "font-worksheet"; - // - FormatNodeIdentifier["Format_FontDashTitles_Key"] = "dash-titles"; - // - FormatNodeIdentifier["Format_FontStoryTitles_Key"] = "story-titles"; - // - FormatNodeIdentifier["Format_FontTitlesControls_Key"] = "titles-controls"; - // - FormatNodeIdentifier["Format_FontTooltipControls_Key"] = "tooltip-controls"; - // - FormatNodeIdentifier["Format_FontWorksheetControls_Key"] = "worksheet-controls"; - // - FormatNodeIdentifier["Format_LineMore_Key"] = "line-more"; - // - FormatNodeIdentifier["Format_LineGrid_Key"] = "line-grid"; - // - FormatNodeIdentifier["Format_LineGridTabs_Key"] = "line-grid-tabs"; - // - FormatNodeIdentifier["Format_LineZero_Key"] = "line-zero"; - // - FormatNodeIdentifier["Format_LineZeroTabs_Key"] = "line-zero-tabs"; - // - FormatNodeIdentifier["Format_LineAxisTick_Key"] = "line-axis-tick"; - // - FormatNodeIdentifier["Format_LineAxisTickTabs_Key"] = "line-axis-tick-tabs"; - // - FormatNodeIdentifier["Format_LineAxisRuler_Key"] = "line-axis-ruler"; - // - FormatNodeIdentifier["Format_LineAxisRulerTabs_Key"] = "line-axis-ruler-tabs"; - // - FormatNodeIdentifier["Format_LineHeaderDivider_Key"] = "line-header-divider"; - // - FormatNodeIdentifier["Format_LineHeaderDividerTabs_Key"] = "line-header-divider-tabs"; - // - FormatNodeIdentifier["Format_LinePaneDivider_Key"] = "line-paneDivider"; - // - FormatNodeIdentifier["Format_LinePaneDividerTabs_Key"] = "line-paneDivider-tabs"; - // - FormatNodeIdentifier["Format_LineGridAll_Key"] = "line-grid-all"; - // - FormatNodeIdentifier["Format_LineGridRow_Key"] = "line-grid-row"; - // - FormatNodeIdentifier["Format_LineGridColumn_Key"] = "line-grid-column"; - // - FormatNodeIdentifier["Format_LineZeroAll_Key"] = "line-zero-all"; - // - FormatNodeIdentifier["Format_LineZeroRow_Key"] = "line-zero-row"; - // - FormatNodeIdentifier["Format_LineZeroColumn_Key"] = "line-zero-column"; - // - FormatNodeIdentifier["Format_LineAxisTickAll_Key"] = "line-axis-tick-all"; - // - FormatNodeIdentifier["Format_LineAxisTickRow_Key"] = "line-axis-tick-row"; - // - FormatNodeIdentifier["Format_LineAxisTickColumn_Key"] = "line-axis-tick-column"; - // - FormatNodeIdentifier["Format_LineAxisRulerAll_Key"] = "line-axis-ruler-all"; - // - FormatNodeIdentifier["Format_LineAxisRulerRow_Key"] = "line-axis-ruler-row"; - // - FormatNodeIdentifier["Format_LineAxisRulerColumn_Key"] = "line-axis-ruler-column"; - // - FormatNodeIdentifier["Format_LineReference_Key"] = "line-reference"; - // - FormatNodeIdentifier["Format_LineDrop_Key"] = "line-drop"; - // - FormatNodeIdentifier["Format_LineTrend_Key"] = "line-trend"; - // - FormatNodeIdentifier["Format_LineVisibility_Key"] = "line-visibility"; - // - FormatNodeIdentifier["Format_LinePattern_Key"] = "line-pattern"; - // - FormatNodeIdentifier["Format_LineWidth_Key"] = "line-width"; - // - FormatNodeIdentifier["Format_LineColor_Key"] = "line-color"; - // - FormatNodeIdentifier["Format_TickColor_Key"] = "tick-color"; - // - FormatNodeIdentifier["Format_BorderPattern_Key"] = "border-pattern"; - // - FormatNodeIdentifier["Format_BorderColor_Key"] = "border-color"; - // - FormatNodeIdentifier["Format_DividerColor_Key"] = "divider-color"; - // - FormatNodeIdentifier["Format_FontFamily_Key"] = "font-family-key"; - // - FormatNodeIdentifier["Format_FontSize_Key"] = "font-size-key"; - // - FormatNodeIdentifier["Format_Bold_Key"] = "bold-key"; - // - FormatNodeIdentifier["Format_Italics_Key"] = "italics-key"; - // - FormatNodeIdentifier["Format_Underline_Key"] = "underline-key"; - // - FormatNodeIdentifier["Format_FontColor_Key"] = "font-color-key"; - // - FormatNodeIdentifier["Format_Number_Container_Key"] = "number-container"; - // - FormatNodeIdentifier["Format_Number_Type_Key"] = "number-container-type"; - // - FormatNodeIdentifier["Format_Number_Units_Key"] = "number-container-units"; - // - FormatNodeIdentifier["Format_Number_Decimal_Key"] = "number-container-decimal"; - // - FormatNodeIdentifier["Format_Number_Thousands_Separator_Key"] = "number-container-thousands-separator"; - // - FormatNodeIdentifier["Format_FontPickerMinimal_Key"] = "font-picker-minimal"; - // - FormatNodeIdentifier["Format_FontPickerDefault_Key"] = "font-picker-default"; - // - FormatNodeIdentifier["Format_LinePickerDefault_Key"] = "line-picker-default"; - // - FormatNodeIdentifier["Format_LinePickerNoVis_Key"] = "line-picker-no-visibility"; - // - FormatNodeIdentifier["Format_LineAxisTickPicker_Key"] = "line-axis-tick-picker"; - })(FormatNodeIdentifier = exports.FormatNodeIdentifier || (exports.FormatNodeIdentifier = {})); - // Format prepended to format strings to specify type - var FormatCode; - (function (FormatCode) { - // - FormatCode["AutoFormat"] = "auto-format"; - // - FormatCode["SystemLongDate"] = "system-long-date"; - // - FormatCode["SystemShortDate"] = "system-short-date"; - // - FormatCode["SystemNumber"] = "system-number"; - // - FormatCode["SystemCurrency"] = "system-currency"; - // - FormatCode["SystemTime"] = "system-time"; - // - FormatCode["Custom"] = "custom"; - // - FormatCode["CustomICU"] = "custom-icu"; - // - FormatCode["CustomNumber"] = "custom-number"; - // - FormatCode["CustomCurrency"] = "custom-currency"; - // - FormatCode["CustomScientific"] = "custom-scientific"; - // - FormatCode["CustomPercentage"] = "custom-percentage"; - })(FormatCode = exports.FormatCode || (exports.FormatCode = {})); - // Units specified in a format string - var UnitsFormatEnum; - (function (UnitsFormatEnum) { - // - UnitsFormatEnum["UnitsFmtNone"] = "units-none"; - // - UnitsFormatEnum["UnitsFmtThousands"] = "units-thousands"; - // - UnitsFormatEnum["UnitsFmtMillions"] = "units-millions"; - // - UnitsFormatEnum["UnitsFmtBillionsEnglish"] = "units-billions-english"; - // - UnitsFormatEnum["UnitsFmtBillionsStandard"] = "units-billions-standard"; - })(UnitsFormatEnum = exports.UnitsFormatEnum || (exports.UnitsFormatEnum = {})); - // represents the color swatch that will be used in the ColorControlPresModel - var ColorSwatchType; - (function (ColorSwatchType) { - // - ColorSwatchType["CST_Dark"] = "dark-swatch"; - // - ColorSwatchType["CST_Light"] = "light-swatch"; - })(ColorSwatchType = exports.ColorSwatchType || (exports.ColorSwatchType = {})); - // represents the type of a style picker, affecting the preview rendering and, possibly, the layout - var PickerType; - (function (PickerType) { - // - PickerType["PT_None"] = "none"; - // - PickerType["PT_Font"] = "font"; - // - PickerType["PT_Line"] = "line"; - // - PickerType["PT_Number"] = "number"; - })(PickerType = exports.PickerType || (exports.PickerType = {})); - // - var UpdateScope; - (function (UpdateScope) { - // - UpdateScope["US_Worksheet"] = "worksheet"; - // - UpdateScope["US_Dashboard"] = "dashboard"; - // - UpdateScope["US_QuickFilters"] = "quick-filters"; - // - UpdateScope["US_Story"] = "story"; - })(UpdateScope = exports.UpdateScope || (exports.UpdateScope = {})); - // - var ParameterCtrlTypesDisplayMode; - (function (ParameterCtrlTypesDisplayMode) { - // - ParameterCtrlTypesDisplayMode["MODE_TYPE_IN"] = "type_in"; - // - ParameterCtrlTypesDisplayMode["MODE_COMPACT_LIST"] = "compact"; - // - ParameterCtrlTypesDisplayMode["MODE_LIST"] = "list"; - // - ParameterCtrlTypesDisplayMode["MODE_SLIDER"] = "slider"; - // - ParameterCtrlTypesDisplayMode["MODE_DATETIME"] = "datetime"; - })(ParameterCtrlTypesDisplayMode = exports.ParameterCtrlTypesDisplayMode || (exports.ParameterCtrlTypesDisplayMode = {})); - // flags for display options - var ParameterCtrlTypesDisplayFlag; - (function (ParameterCtrlTypesDisplayFlag) { - // - ParameterCtrlTypesDisplayFlag["DISPLAY_CUSTOM_TITLE"] = "custom_title"; - // - ParameterCtrlTypesDisplayFlag["DISPLAY_HIDE_SLIDER_SLIDER"] = "hide_slider_slider"; - // - ParameterCtrlTypesDisplayFlag["DISPLAY_HIDE_SLIDER_READOUT"] = "hide_slider_readout"; - // - ParameterCtrlTypesDisplayFlag["DISPLAY_HIDE_SLIDER_BUTTONS"] = "hide_slider_buttons"; - })(ParameterCtrlTypesDisplayFlag = exports.ParameterCtrlTypesDisplayFlag || (exports.ParameterCtrlTypesDisplayFlag = {})); - // The follow supports 1024 custom palettes, each with 4m shapes. Encoding is palette << PaletteShift | shape. - var ShapeEncodeConstants; - (function (ShapeEncodeConstants) { - // Shift value for palette - ShapeEncodeConstants["EncodePaletteShift"] = "paletteShift"; - // Mask for getting palette from encoded value. (Then shift down) - ShapeEncodeConstants["EncodePaletteMask"] = "paletteMask"; - // Mask for getting shape from encoded value - ShapeEncodeConstants["EncodeShapeMask"] = "shapeMask"; - })(ShapeEncodeConstants = exports.ShapeEncodeConstants || (exports.ShapeEncodeConstants = {})); - // - var ShapeType; - (function (ShapeType) { - // - ShapeType["ShapeCircle"] = "circle"; - // - ShapeType["ShapeSquare"] = "square"; - // - ShapeType["ShapePlus"] = "plus"; - // - ShapeType["ShapeTimes"] = "times"; - // - ShapeType["ShapeAsterisk"] = "asterisk"; - // - ShapeType["ShapeDiamond"] = "diamond"; - // - ShapeType["ShapeTriangle"] = "triangle"; - // - ShapeType["ShapeDownTriangle"] = "down-triangle"; - // - ShapeType["ShapeLeftTriangle"] = "left-triangle"; - // - ShapeType["ShapeRightTriangle"] = "right-triangle"; - // - ShapeType["MaxAllShapes"] = "invalid"; - })(ShapeType = exports.ShapeType || (exports.ShapeType = {})); - // - var ShapePalette; - (function (ShapePalette) { - // built-in palette - ShapePalette["ShapePaletteFilled"] = "filled"; - // custom palettes - ShapePalette["ShapePaletteCustom1"] = "custom1"; - // - ShapePalette["ShapePaletteCustom2"] = "custom2"; - // - ShapePalette["ShapePaletteCustom3"] = "custom3"; - // - ShapePalette["ShapePaletteCustom4"] = "custom4"; - // - ShapePalette["ShapePaletteCustom5"] = "custom5"; - // - ShapePalette["ShapePaletteCustom6"] = "custom6"; - // - ShapePalette["ShapePaletteCustom7"] = "custom7"; - // - ShapePalette["ShapePaletteCustom8"] = "custom8"; - // - ShapePalette["ShapePaletteCustom9"] = "custom9"; - // - ShapePalette["ShapePaletteCustom10"] = "custom10"; - // - ShapePalette["ShapePaletteCustom11"] = "custom11"; - // and so on... - ShapePalette["ShapePaletteCustom12"] = "custom12"; - // - ShapePalette["ShapePaletteHidden"] = "hidden"; - })(ShapePalette = exports.ShapePalette || (exports.ShapePalette = {})); - // ShapeType and palette mapped into a single value. This enum depends on ShapeType and the implementation of ShapeManager::IntEncode. - var ShapeID; - (function (ShapeID) { - // - ShapeID["ShapeIDCircle"] = "shapeIDCircle"; - // - ShapeID["ShapeIDSquare"] = "shapeIDSquare"; - // - ShapeID["ShapeIDPlus"] = "shapeIDPlus"; - // - ShapeID["ShapeIDTimes"] = "shapeIDTimes"; - // - ShapeID["ShapeIDAsterisk"] = "shapeIDAsterisk"; - // - ShapeID["ShapeIDDiamond"] = "shapeIDDiamond"; - // - ShapeID["ShapeIDTriangle"] = "shapeIDTriangle"; - // - ShapeID["ShapeIDDownTriangle"] = "shapeIDDownTriangle"; - // - ShapeID["ShapeIDLeftTriangle"] = "shapeIDLeftTriangle"; - // - ShapeID["ShapeIDRightTriangle"] = "shapeIDRightTriangle"; - // - ShapeID["ShapeIDFilledCircle"] = "shapeIDFilledCircle"; - // - ShapeID["ShapeIDFilledSquare"] = "shapeIDFilledSquare"; - // - ShapeID["ShapeIDFilledPlus"] = "shapeIDFilledPlus"; - // - ShapeID["ShapeIDFilledTimes"] = "shapeIDFilledTimes"; - // - ShapeID["ShapeIDFilledStar"] = "shapeIDFilledStar"; - // - ShapeID["ShapeIDFilledDiamond"] = "shapeIDFilledDiamond"; - // - ShapeID["ShapeIDFilledTriangle"] = "shapeIDFilledTriangle"; - // - ShapeID["ShapeIDFilledDownTriangle"] = "shapeIDFilledDownTriangle"; - // - ShapeID["ShapeIDFilledLeftTriangle"] = "shapeIDFilledLeftTriangle"; - // - ShapeID["ShapeIDFilledRightTriangle"] = "shapeIDFilledRightTriangle"; - // 0+(ShapePaletteHidden< -1; - }); - // Create a mapping of which index in the data dictionary our columns are in - var columnIndices = columns.map(function (vizDataColumn) { - // The columnIndex is in the same position as the paneIndex - var paneIndex = vizDataColumn.paneIndices.indexOf(i); - var columnIndex = vizDataColumn.columnIndices[paneIndex]; - return columnIndex; - }); - // Get the data for the pane we are processing - var vizPane = vizData.paneColumnsData.paneColumnsList[i]; - if (vizPane.vizPaneColumns.length !== columns.length) { - throw new Error('Malformed data table'); - } - var headers = new Array(); - var rows = new Array(); - // Column 0 will be the tuple id column. We can use this as a counter for how many rows we have - var tupleIds = vizPane.vizPaneColumns[0].tupleIds; - for (var tupleIndex = 0; tupleIndex < tupleIds.length; tupleIndex++) { - // We will have 1 less value in this row since there's the tupleId column - var cells = new Array(vizPane.vizPaneColumns.length - 1); - for (var j = 1 /* skip the first which is tuple ids */; j < vizPane.vizPaneColumns.length; j++) { - // Next, we need to figure out which column we are reading data for - var column = columns[columnIndices[j]]; - var vizPaneColumnData = vizPane.vizPaneColumns[j]; - // Define the header when we are processing the first row - if (tupleIndex === 0) { - var header = { - dataType: EnumMappings_1.PresLayerToApiEnumMappings.dataType.convert(column.dataType), - fieldName: column.fn, - isReferenced: true, - index: j - 1, - fieldCaption: column.fieldCaption - }; - headers.push(header); - } - var value = UnderlyingDataConverter_1.UnderlyingDataConverter.lookupValueFromDictionary(dataDictionary, column.dataType, vizPaneColumnData.valueIndices[tupleIndex]); - var aliasValue = UnderlyingDataConverter_1.UnderlyingDataConverter.lookupValueFromDictionary(dataDictionary, column.dataType, vizPaneColumnData.aliasIndices[tupleIndex]) || ''; - var formattedValue = aliasValue; // TODO - Figure out how to use the formatStrings - var dataCell = { - value: value, - formattedValue: formattedValue, - aliasedValue: aliasValue - }; - // Add our cell to this row - cells[j - 1] = dataCell; - } - rows.push(cells); - } - var dataTable = { - dataTable: rows, - headers: headers - }; - result.push(dataTable); - }; - // The data model for the VizDataPresModel is a little strange, so this parsing takes some time to figure out. - // There can be multiple panes of data, so we must go through them one at a time to create data tables - for (var i = 0; i < vizData.paneColumnsData.paneColumnsList.length; i++) { - _loop_1(i); - } - return result; - }; - return ActiveMarksDataConverter; - }()); - exports.ActiveMarksDataConverter = ActiveMarksDataConverter; - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Enums = __webpack_require__(22); - var EnumMappings_1 = __webpack_require__(18); - /** - * Contains static helper methods for converting from an underlying data pres model into the api representation. - * Most of the code is a direct port from ApiUnderlyingDataHandler.cs - * https://opengrok/source/xref/teams_near/workgroup/vqlweb/scriptsharp/src/UI/Api/ApiUnderlyingDataHandler.cs - */ - var UnderlyingDataConverter = (function () { - function UnderlyingDataConverter() { - } - UnderlyingDataConverter.lookupValueFromDictionary = function (dataDictionary, dt, index) { - if (index < 0) { - // per cl 280396 / bugzid 81197 negative data value index means that it is special - dt = Enums.DataType.DT_STRING; - index = -index - 1; - } - var result = null; - var rawValue = UnderlyingDataConverter.getRawValue(dataDictionary, dt, index); - if (rawValue !== null) { - result = rawValue.toString(); - } - return result; - }; - /* tslint:disable-next-line:no-any */ - UnderlyingDataConverter.getRawValue = function (dataDictionary, dt, index) { - if (!dataDictionary.dataSegments) { - return null; - } - for (var _i = 0, _a = Object.keys(dataDictionary.dataSegments); _i < _a.length; _i++) { - var key = _a[_i]; - var dataSegment = dataDictionary.dataSegments[key]; - for (var _b = 0, _c = dataSegment.dataColumns; _b < _c.length; _b++) { - var dataColumn = _c[_b]; - if (!dataColumn || dataColumn.dataType !== dt) { - continue; - } - if (index < dataColumn.dataValues.length) { - return dataColumn.dataValues[index]; - } - index -= dataColumn.dataValues.length; - break; - } - } - return null; - }; - UnderlyingDataConverter.buildDataTable = function (dataDictionary, columns) { - var result = { - dataTable: UnderlyingDataConverter.buildTable(dataDictionary, columns), - headers: columns.map(function (c, i) { return UnderlyingDataConverter.buildColumnModel(c, i); }) - }; - return result; - }; - UnderlyingDataConverter.buildUnderlyingDataTable = function (isSummary, underlyingDataTable) { - var result = { - data: UnderlyingDataConverter.buildDataTable(underlyingDataTable.dataDictionary, underlyingDataTable.underlyingDataTableColumns), - isSummary: isSummary - }; - return result; - }; - UnderlyingDataConverter.buildActiveMarksTable = function (dataDictionary, vizData) { - throw new Error(); - }; - UnderlyingDataConverter.buildColumnModel = function (column, index) { - return { - dataType: EnumMappings_1.PresLayerToApiEnumMappings.dataType.convert(column.dataType), - fieldName: column.fn, - fieldCaption: column.fieldCaption, - isReferenced: !!column.isReferenced, - index: index - }; - }; - UnderlyingDataConverter.buildTable = function (dataDictionary, columns) { - if (columns.length === 0) { - return new Array(); - } - var rowCount = columns[0].formatValIdxs.length; - var columnCount = columns.length; - var result = new Array(rowCount); - // Initialize all of our rows - for (var rowIndex = 0; rowIndex < rowCount; rowIndex++) { - result[rowIndex] = new Array(columnCount); - } - // Go through column-by-column and convert the values - for (var columnIndex = 0; columnIndex < columnCount; columnIndex++) { - var column = columns[columnIndex]; - for (var rowIndex = 0; rowIndex < rowCount; rowIndex++) { - var formattedValue = UnderlyingDataConverter.lookupValueFromDictionary(dataDictionary, Enums.DataType.DT_STRING, column.formatValIdxs[rowIndex]); - if (formattedValue === null) { - throw new Error('formattedValue was null'); - } - var value = { - value: UnderlyingDataConverter.lookupValueFromDictionary(dataDictionary, column.dataType, column.valueIndices[rowIndex]), - formattedValue: formattedValue, - aliasedValue: formattedValue - }; - result[rowIndex][columnIndex] = value; - } - } - return result; - }; - return UnderlyingDataConverter; - }()); - exports.UnderlyingDataConverter = UnderlyingDataConverter; - - -/***/ }, -/* 26 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var EnumMappings_1 = __webpack_require__(18); - /** - * Class containing helper methods for converting from ApiPresModels to their PresLayer equivalents - * - * @export - * @class ApiToPresLayerConverter - */ - var ApiToPresLayerConverter = (function () { - function ApiToPresLayerConverter() { - } - ApiToPresLayerConverter.convertSheetPath = function (apiSheetPath) { - if (!apiSheetPath) { - throw new Error('sheetPath not defined'); - } - var result = { - sheetName: apiSheetPath.sheetName, - isDashboard: apiSheetPath.isDashboard, - storyboard: apiSheetPath.storyboard || '', - flipboardZoneId: apiSheetPath.flipboardZoneID || 0, - storyPointId: apiSheetPath.storyPointID || 0, - }; - return result; - }; - ApiToPresLayerConverter.convertAddInLocator = function (apiAddInLocator) { - var result = { - addInInstanceId: apiAddInLocator.instanceId, - sheetPath: ApiToPresLayerConverter.convertSheetPath(apiAddInLocator.dashboardPath) - }; - return result; - }; - ApiToPresLayerConverter.convertVisualId = function (apiVisualid) { - var result = { - worksheet: apiVisualid.worksheet, - dashboard: apiVisualid.dashboard, - storyboard: apiVisualid.storyboard, - storyPointId: apiVisualid.storyPointID, - flipboardZoneId: apiVisualid.flipboardZoneID - }; - return result; - }; - ApiToPresLayerConverter.convertVisualIdToWorksheet = function (apiVisualId) { - return apiVisualId.worksheet; - }; - ApiToPresLayerConverter.convertVisualIdToDashboard = function (apiVisualId) { - return apiVisualId.dashboard || ''; - }; - ApiToPresLayerConverter.convertFilterValues = function (filterValues) { - if (filterValues.length === 0) { - // platform code expects an empty string for clearing filter values - return ['']; - } - return filterValues; - }; - ApiToPresLayerConverter.convertFilterType = function (filterUpdateType) { - return EnumMappings_1.ApiToPresLayerEnumMappings.filterUpdateType.convert(filterUpdateType); - }; - ApiToPresLayerConverter.ConvertNullOption = function (nullOption) { - return EnumMappings_1.ApiToPresLayerEnumMappings.nullOption.convert(nullOption); - }; - return ApiToPresLayerConverter; - }()); - exports.ApiToPresLayerConverter = ApiToPresLayerConverter; - - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Simple registry class which creates a mapping based on two keys. - * - * @export - * @class MappingRegistry - * @template TInputEnumType - * @template TOutputEnumType - * @template TMappingStorageType - */ - var MappingRegistry = (function () { - function MappingRegistry() { - this.registry = {}; - } - MappingRegistry.prototype.has = function (inputType, outputType) { - var key = this.makeKey(inputType, outputType); - if (!this.registry.hasOwnProperty(key)) { - return false; - } - if (!this.registry[key]) { - return false; - } - return true; - }; - MappingRegistry.prototype.get = function (inputType, outputType) { - if (!this.has(inputType, outputType)) { - throw new Error('Missing requested mapping: ' + inputType + ' to ' + outputType); - } - var key = this.makeKey(inputType, outputType); - return this.registry[key]; - }; - MappingRegistry.prototype.addRegistration = function (inputType, outputType, storageItem) { - var key = this.makeKey(inputType, outputType); - // Add this item - this.registry[key] = storageItem; - }; - /** - * Combines the two keys into a unique string - * - * @private - * @param {TInputEnumType} inputType - * @param {TOutputEnumType} outputType - * @returns {string} - * @memberof MappingRegistry - */ - MappingRegistry.prototype.makeKey = function (inputType, outputType) { - var keyObj = { input: inputType, output: outputType }; - return JSON.stringify(keyObj); - }; - return MappingRegistry; - }()); - exports.MappingRegistry = MappingRegistry; - - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export(__webpack_require__(5)); - __export(__webpack_require__(6)); - __export(__webpack_require__(7)); - __export(__webpack_require__(8)); - __export(__webpack_require__(9)); - - -/***/ }, -/* 29 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Implemenation of the PresentationLayer contract with a bit of extra information - * added to work with add-ins. Most work is delegated down to the interopObject which - * communicates directly with the c++ layer via QWebChannel - * - * @class AddInApiPresLayerImpl - * @implements {contract.PresentationLayer} - */ - var AddInApiPresLayerImpl = (function () { - function AddInApiPresLayerImpl(interopObject) { - var _this = this; - this.interopObject = interopObject; - this.notificationHandlers = {}; - if (interopObject && interopObject.OnNotification) { - interopObject.OnNotification.connect(function (notification) { - _this.dispatchNotification(notification); - }); - } - } - Object.defineProperty(AddInApiPresLayerImpl.prototype, "AddInInstanceInfo", { - /** - * Gets the instance info for this particular add-in from the c++ code - * - * @readonly - * @type {AddInInstancePresModel} - * @memberof AddInApiPresLayerImpl - */ - get: function () { - return this.interopObject.addInInstanceInfo; - }, - enumerable: true, - configurable: true - }); - /** - * Invokes a command using the pres-layer interop - * - * @template T - The expected return type - * @param {string} commandNamespace - * @param {string} commandName - * @param {object} params - * @returns {Promise} - * @memberof AddInApiPresLayerImpl - */ - AddInApiPresLayerImpl.prototype.invokeCommand = function (commandNamespace, commandName, params) { - var _this = this; - return new Promise(function (resolve, reject) { - try { - commandNamespace = commandNamespace || 'tabdoc'; - _this.interopObject.ExecuteCommand(commandNamespace, commandName, params, function (response) { - if (!response.Success) { - var msg = 'ExecuteCommand failed, with result:' + JSON.stringify(response.Result); - reject(new Error(msg)); - } - else { - resolve(response.Result); - } - }); - } - catch (err) { - reject(err); - } - }); - }; - // This implementation will registration a single instance of a notification handler with the Native C++ object, - // and implement multi-dispatch to the web objects from h.ere - AddInApiPresLayerImpl.prototype.registerNotificationHandler = function (eventId, handler) { - var _this = this; - if (eventId in this.notificationHandlers) { - this.notificationHandlers[eventId].push(handler); - } - else { - this.notificationHandlers[eventId] = [handler]; - try { - this.interopObject.RegisterNotificationHandler(eventId); - } - catch (err) { - // console.log('RegisterNotificationHandler failed: ' + err); - } - } - return function () { return _this.removeNotificationHandler(eventId, handler); }; - }; - AddInApiPresLayerImpl.prototype.removeNotificationHandler = function (eventId, handler) { - var handlerList = this.notificationHandlers[eventId]; - if (!handlerList) { - return; - } - var foundIndex = handlerList.indexOf(handler); - if (foundIndex >= 0) { - handlerList.splice(foundIndex, 1); - } - if (handlerList.length === 0) { - delete this.notificationHandlers[eventId]; - } - }; - AddInApiPresLayerImpl.prototype.dispatchNotification = function (notification) { - // console.log('received notification: ' + JSON.stringify(notification)); - var eventId = notification.eventId; - var presModel = notification.presModel; - if (eventId in this.notificationHandlers) { - var handlers = this.notificationHandlers[eventId]; - for (var i = handlers.length - 1; i >= 0; i--) { - handlers[i](presModel); - } - } - }; - return AddInApiPresLayerImpl; - }()); - exports.AddInApiPresLayerImpl = AddInApiPresLayerImpl; - - -/***/ }, -/* 30 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Implementation of the InternalApiDispatcher for desktop. Since this will run in the same - * frame as the ApiEventHandler, this class mostly just marshalls down to that implementation - * - * @export - * @class DesktopApiDispatcher - * @implements {InternalApiDispatcher} - */ - var DesktopApiDispatcher = (function () { - function DesktopApiDispatcher(apiEventHandler) { - var _this = this; - this.apiEventHandler = apiEventHandler; - this.notificationHandlers = []; - this.apiEventHandler.setEventHandler(function (notificationId, model) { - _this.notificationHandlers.forEach(function (handler) { return handler({ - notificationId: notificationId, - data: model - }); }); - }); - } - DesktopApiDispatcher.prototype.setVersionNumber = function (versionNumber) { - this.apiEventHandler.setVersionNumber(versionNumber); - }; - DesktopApiDispatcher.prototype.execute = function (verb, parameters) { - // Just pass this right through to the ApiEventHandler - return this.apiEventHandler.execute(verb, parameters); - }; - DesktopApiDispatcher.prototype.registerNotificationHandler = function (handler) { - this.notificationHandlers.push(handler); - }; - DesktopApiDispatcher.prototype.unregisterNotificationHandler = function (handler) { - this.notificationHandlers = this.notificationHandlers.filter(function (h) { return h !== handler; }); - }; - return DesktopApiDispatcher; - }()); - exports.DesktopApiDispatcher = DesktopApiDispatcher; - - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - __webpack_require__(32); - var qwebchannel_1 = __webpack_require__(33); - /** - * Initializes the QWebChannel contract and returns the pres layer interop object - * - * @returns {Promise} - */ - function initializeWebChannelPresLayer() { - return new Promise(function (resolve, reject) { - try { - // tslint:disable-next-line - new qwebchannel_1.QWebChannel(qt.webChannelTransport, function (channel) { - // tslint:disable-next-line - var addInPresLayer = channel.objects['addInPresLayer']; - resolve(addInPresLayer); - }); - } - catch (e) { - reject(e); - } - }); - } - exports.initializeWebChannelPresLayer = initializeWebChannelPresLayer; - - -/***/ }, -/* 32 */ -/***/ function(module, exports) { - - - -/***/ }, -/* 33 */ -/***/ function(module, exports, __webpack_require__) { - - /**************************************************************************** - ** - ** Copyright (C) 2015 The Qt Company Ltd. - ** Copyright (C) 2014 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Milian Wolff - ** Contact: http://www.qt.io/licensing/ - ** - ** This file is part of the QtWebChannel module of the Qt Toolkit. - ** - ** $QT_BEGIN_LICENSE:LGPL21$ - ** Commercial License Usage - ** Licensees holding valid commercial Qt licenses may use this file in - ** accordance with the commercial license agreement provided with the - ** Software or, alternatively, in accordance with the terms contained in - ** a written agreement between you and The Qt Company. For licensing terms - ** and conditions see http://www.qt.io/terms-conditions. For further - ** information use the contact form at http://www.qt.io/contact-us. - ** - ** GNU Lesser General Public License Usage - ** Alternatively, this file may be used under the terms of the GNU Lesser - ** General Public License version 2.1 or version 3 as published by the Free - ** Software Foundation and appearing in the file LICENSE.LGPLv21 and - ** LICENSE.LGPLv3 included in the packaging of this file. Please review the - ** following information to ensure the GNU Lesser General Public License - ** requirements will be met: https://www.gnu.org/licenses/lgpl.html and - ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. - ** - ** As a special exception, The Qt Company gives you certain additional - ** rights. These rights are described in The Qt Company LGPL Exception - ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. - ** - ** $QT_END_LICENSE$ - ** - ****************************************************************************/ - - "use strict"; - - var QWebChannelMessageTypes = { - signal: 1, - propertyUpdate: 2, - init: 3, - idle: 4, - debug: 5, - invokeMethod: 6, - connectToSignal: 7, - disconnectFromSignal: 8, - setProperty: 9, - response: 10, - }; - - var QWebChannel = function(transport, initCallback) - { - if (typeof transport !== "object" || typeof transport.send !== "function") { - console.error("The QWebChannel expects a transport object with a send function and onmessage callback property." + - " Given is: transport: " + typeof(transport) + ", transport.send: " + typeof(transport.send)); - return; - } - - var channel = this; - this.transport = transport; - - this.send = function(data) - { - if (typeof(data) !== "string") { - data = JSON.stringify(data); - } - channel.transport.send(data); - } - - this.transport.onmessage = function(message) - { - var data = message.data; - if (typeof data === "string") { - data = JSON.parse(data); - } - switch (data.type) { - case QWebChannelMessageTypes.signal: - channel.handleSignal(data); - break; - case QWebChannelMessageTypes.response: - channel.handleResponse(data); - break; - case QWebChannelMessageTypes.propertyUpdate: - channel.handlePropertyUpdate(data); - break; - default: - console.error("invalid message received:", message.data); - break; - } - } - - this.execCallbacks = {}; - this.execId = 0; - this.exec = function(data, callback) - { - if (!callback) { - // if no callback is given, send directly - channel.send(data); - return; - } - if (channel.execId === Number.MAX_VALUE) { - // wrap - channel.execId = Number.MIN_VALUE; - } - if (data.hasOwnProperty("id")) { - console.error("Cannot exec message with property id: " + JSON.stringify(data)); - return; - } - data.id = channel.execId++; - channel.execCallbacks[data.id] = callback; - channel.send(data); - }; - - this.objects = {}; - - this.handleSignal = function(message) - { - var object = channel.objects[message.object]; - if (object) { - object.signalEmitted(message.signal, message.args); - } else { - console.warn("Unhandled signal: " + message.object + "::" + message.signal); - } - } - - this.handleResponse = function(message) - { - if (!message.hasOwnProperty("id")) { - console.error("Invalid response message received: ", JSON.stringify(message)); - return; - } - channel.execCallbacks[message.id](message.data); - delete channel.execCallbacks[message.id]; - } - - this.handlePropertyUpdate = function(message) - { - for (var i in message.data) { - var data = message.data[i]; - var object = channel.objects[data.object]; - if (object) { - object.propertyUpdate(data.signals, data.properties); - } else { - console.warn("Unhandled property update: " + data.object + "::" + data.signal); - } - } - channel.exec({type: QWebChannelMessageTypes.idle}); - } - - this.debug = function(message) - { - channel.send({type: QWebChannelMessageTypes.debug, data: message}); - }; - - channel.exec({type: QWebChannelMessageTypes.init}, function(data) { - for (var objectName in data) { - var object = new QObject(objectName, data[objectName], channel); - } - // now unwrap properties, which might reference other registered objects - for (var objectName in channel.objects) { - channel.objects[objectName].unwrapProperties(); - } - if (initCallback) { - initCallback(channel); - } - channel.exec({type: QWebChannelMessageTypes.idle}); - }); - }; - - function QObject(name, data, webChannel) - { - this.__id__ = name; - webChannel.objects[name] = this; - - // List of callbacks that get invoked upon signal emission - this.__objectSignals__ = {}; - - // Cache of all properties, updated when a notify signal is emitted - this.__propertyCache__ = {}; - - var object = this; - - // ---------------------------------------------------------------------- - - this.unwrapQObject = function(response) - { - if (response instanceof Array) { - // support list of objects - var ret = new Array(response.length); - for (var i = 0; i < response.length; ++i) { - ret[i] = object.unwrapQObject(response[i]); - } - return ret; - } - if (!response - || !response["__QObject*__"] - || response["id"] === undefined) { - return response; - } - - var objectId = response.id; - if (webChannel.objects[objectId]) - return webChannel.objects[objectId]; - - if (!response.data) { - console.error("Cannot unwrap unknown QObject " + objectId + " without data."); - return; - } - - var qObject = new QObject( objectId, response.data, webChannel ); - qObject.destroyed.connect(function() { - if (webChannel.objects[objectId] === qObject) { - delete webChannel.objects[objectId]; - // reset the now deleted QObject to an empty {} object - // just assigning {} though would not have the desired effect, but the - // below also ensures all external references will see the empty map - // NOTE: this detour is necessary to workaround QTBUG-40021 - var propertyNames = []; - for (var propertyName in qObject) { - propertyNames.push(propertyName); - } - for (var idx in propertyNames) { - delete qObject[propertyNames[idx]]; - } - } - }); - // here we are already initialized, and thus must directly unwrap the properties - qObject.unwrapProperties(); - return qObject; - } - - this.unwrapProperties = function() - { - for (var propertyIdx in object.__propertyCache__) { - object.__propertyCache__[propertyIdx] = object.unwrapQObject(object.__propertyCache__[propertyIdx]); - } - } - - function addSignal(signalData, isPropertyNotifySignal) - { - var signalName = signalData[0]; - var signalIndex = signalData[1]; - object[signalName] = { - connect: function(callback) { - if (typeof(callback) !== "function") { - console.error("Bad callback given to connect to signal " + signalName); - return; - } - - object.__objectSignals__[signalIndex] = object.__objectSignals__[signalIndex] || []; - object.__objectSignals__[signalIndex].push(callback); - - if (!isPropertyNotifySignal && signalName !== "destroyed") { - // only required for "pure" signals, handled separately for properties in propertyUpdate - // also note that we always get notified about the destroyed signal - webChannel.exec({ - type: QWebChannelMessageTypes.connectToSignal, - object: object.__id__, - signal: signalIndex - }); - } - }, - disconnect: function(callback) { - if (typeof(callback) !== "function") { - console.error("Bad callback given to disconnect from signal " + signalName); - return; - } - object.__objectSignals__[signalIndex] = object.__objectSignals__[signalIndex] || []; - var idx = object.__objectSignals__[signalIndex].indexOf(callback); - if (idx === -1) { - console.error("Cannot find connection of signal " + signalName + " to " + callback.name); - return; - } - object.__objectSignals__[signalIndex].splice(idx, 1); - if (!isPropertyNotifySignal && object.__objectSignals__[signalIndex].length === 0) { - // only required for "pure" signals, handled separately for properties in propertyUpdate - webChannel.exec({ - type: QWebChannelMessageTypes.disconnectFromSignal, - object: object.__id__, - signal: signalIndex - }); - } - } - }; - } - - /** - * Invokes all callbacks for the given signalname. Also works for property notify callbacks. - */ - function invokeSignalCallbacks(signalName, signalArgs) - { - var connections = object.__objectSignals__[signalName]; - if (connections) { - connections.forEach(function(callback) { - callback.apply(callback, signalArgs); - }); - } - } - - this.propertyUpdate = function(signals, propertyMap) - { - // update property cache - for (var propertyIndex in propertyMap) { - var propertyValue = propertyMap[propertyIndex]; - object.__propertyCache__[propertyIndex] = propertyValue; - } - - for (var signalName in signals) { - // Invoke all callbacks, as signalEmitted() does not. This ensures the - // property cache is updated before the callbacks are invoked. - invokeSignalCallbacks(signalName, signals[signalName]); - } - } - - this.signalEmitted = function(signalName, signalArgs) - { - invokeSignalCallbacks(signalName, signalArgs); - } - - function addMethod(methodData) - { - var methodName = methodData[0]; - var methodIdx = methodData[1]; - object[methodName] = function() { - var args = []; - var callback; - for (var i = 0; i < arguments.length; ++i) { - if (typeof arguments[i] === "function") - callback = arguments[i]; - else - args.push(arguments[i]); - } - - webChannel.exec({ - "type": QWebChannelMessageTypes.invokeMethod, - "object": object.__id__, - "method": methodIdx, - "args": args - }, function(response) { - if (response !== undefined) { - var result = object.unwrapQObject(response); - if (callback) { - (callback)(result); - } - } - }); - }; - } - - function bindGetterSetter(propertyInfo) - { - var propertyIndex = propertyInfo[0]; - var propertyName = propertyInfo[1]; - var notifySignalData = propertyInfo[2]; - // initialize property cache with current value - // NOTE: if this is an object, it is not directly unwrapped as it might - // reference other QObject that we do not know yet - object.__propertyCache__[propertyIndex] = propertyInfo[3]; - - if (notifySignalData) { - if (notifySignalData[0] === 1) { - // signal name is optimized away, reconstruct the actual name - notifySignalData[0] = propertyName + "Changed"; - } - addSignal(notifySignalData, true); - } - - Object.defineProperty(object, propertyName, { - get: function () { - var propertyValue = object.__propertyCache__[propertyIndex]; - if (propertyValue === undefined) { - // This shouldn't happen - console.warn("Undefined value in property cache for property \"" + propertyName + "\" in object " + object.__id__); - } - - return propertyValue; - }, - set: function(value) { - if (value === undefined) { - console.warn("Property setter for " + propertyName + " called with undefined value!"); - return; - } - object.__propertyCache__[propertyIndex] = value; - webChannel.exec({ - "type": QWebChannelMessageTypes.setProperty, - "object": object.__id__, - "property": propertyIndex, - "value": value - }); - } - }); - - } - - // ---------------------------------------------------------------------- - - data.methods.forEach(addMethod); - - data.properties.forEach(bindGetterSetter); - - data.signals.forEach(function(signal) { addSignal(signal, false); }); - - for (var name in data.enums) { - object[name] = data.enums[name]; - } - } - - //required for use with nodejs - if (true) { - module.exports = { - QWebChannel: QWebChannel - }; - } - - -/***/ } -/******/ ]) -}); -; -//# sourceMappingURL=frelard-desktop-bootstrap.js.map - -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); - else if(typeof define === 'function' && define.amd) - define([], factory); - else if(typeof exports === 'object') - exports["tableau"] = factory(); - else - root["tableau"] = factory(); -})(this, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; -/******/ -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.loaded = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = "/dist/"; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - Object.defineProperty(exports, "__esModule", { value: true }); - // Due to the way we configured webpack, we should be exporting things which will be under - // a global variable called "tableau". Export everything we want to be visible under tableau - // from this file. - var AddIn_1 = __webpack_require__(1); - var AddInImpl_1 = __webpack_require__(2); - var addInImpl = new AddInImpl_1.AddInImpl(); - exports.addIn = new AddIn_1.AddIn(addInImpl); - // Export Enums - var api_external_contract_1 = __webpack_require__(42); - exports.FilterUpdateType = api_external_contract_1.FilterUpdateType; - exports.NullOption = api_external_contract_1.NullOption; - - -/***/ }, -/* 1 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Implementation of the external AddIn namespace. - */ - var AddIn = (function () { - function AddIn(addInImpl) { - this.addInImpl = addInImpl; - this.addInImpl = addInImpl; - } - Object.defineProperty(AddIn.prototype, "dashboardContent", { - get: function () { - return this.addInImpl.dashboardContent; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(AddIn.prototype, "environment", { - get: function () { - return this.addInImpl.environment; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(AddIn.prototype, "settings", { - get: function () { - return this.addInImpl.settings; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(AddIn.prototype, "ui", { - get: function () { - throw new Error('API call not yet implemented'); - }, - enumerable: true, - configurable: true - }); - AddIn.prototype.initializeAsync = function () { - return this.addInImpl.initializeAsync(); - }; - return AddIn; - }()); - exports.AddIn = AddIn; - - -/***/ }, -/* 2 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(3); - var api_shared_1 = __webpack_require__(9); - var Dashboard_1 = __webpack_require__(32); - var DashboardContent_1 = __webpack_require__(34); - var Environment_1 = __webpack_require__(35); - var Settings_1 = __webpack_require__(36); - var RegisterAllAddInServices_1 = __webpack_require__(37); - var VersionNumber_1 = __webpack_require__(40); - var DashboardImpl_1 = __webpack_require__(41); - var SettingsImpl_1 = __webpack_require__(47); - var AddInImpl = (function () { - function AddInImpl() { - } - AddInImpl.prototype.initializeAsync = function () { - var _this = this; - if (!this.initializationPromise) { - this.initializationPromise = new Promise(function (resolve, reject) { - // First thing we want to do is check to see if there is a desktop dispatcher already registered for us - if (api_internal_contract_1.InternalApiDispatcherHolder.hasDesktopApiDispatcherPromise()) { - // Running in desktop, use this promise - var desktopDispatcherPromise = api_internal_contract_1.InternalApiDispatcherHolder.getDesktopDispatcherPromise(); - desktopDispatcherPromise.then(_this.onDispatcherReceived.bind(_this)).then(function () { resolve(); }); - } - else { - reject('Not running in desktop. Server support coming soon!'); - } - }); - } - return this.initializationPromise; - }; - AddInImpl.prototype.onDispatcherReceived = function (dispatcher) { - var _this = this; - dispatcher.setVersionNumber(VersionNumber_1.VersionNumber.Instance); - // Call to register all the services which will use the newly initialized dispatcher - api_shared_1.registerAllSharedServices(dispatcher); - RegisterAllAddInServices_1.registerAllAddInServices(dispatcher); - // Get the initialization service and initialize this add-in - var initializationService = api_shared_1.ApiServiceRegistry.instance.getService("InitializationService" /* InitializationService */); - return initializationService.initializeDashboardAddInAsync().then(function (result) { - if (!result.addInInstance.locator.dashboardPath) { - throw new Error('DashboardPath is undefined'); - } - _this.dashboardContent = _this.initializeDashboardContent(result.addinDashboardInfo, result.addInInstance.locator.dashboardPath); - _this.environment = new Environment_1.Environment(result.addInEnvironment); - _this.settings = _this.initializeSettings(result.addInSettingsInfo); - }); - }; - AddInImpl.prototype.initializeDashboardContent = function (info, sheetPath) { - var dashboardImpl = new DashboardImpl_1.DashboardImpl(info, sheetPath); - var dashboard = new Dashboard_1.Dashboard(dashboardImpl); - return new DashboardContent_1.DashboardContent(dashboard); - }; - AddInImpl.prototype.initializeSettings = function (settingsInfo) { - var settingsImpl = new SettingsImpl_1.SettingsImpl(settingsInfo); - return new Settings_1.Settings(settingsImpl); - }; - return AddInImpl; - }()); - exports.AddInImpl = AddInImpl; - - -/***/ }, -/* 3 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export(__webpack_require__(4)); - __export(__webpack_require__(5)); - __export(__webpack_require__(6)); - __export(__webpack_require__(7)); - __export(__webpack_require__(8)); - - -/***/ }, -/* 4 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var AddInContext; - (function (AddInContext) { - AddInContext["Desktop"] = "desktop"; - AddInContext["Server"] = "server"; - AddInContext["Unknown"] = "unknown"; - })(AddInContext = exports.AddInContext || (exports.AddInContext = {})); - var AddInMode; - (function (AddInMode) { - AddInMode["Authoring"] = "authoring"; - AddInMode["Viewing"] = "viewing"; - AddInMode["Unknown"] = "unknown"; - })(AddInMode = exports.AddInMode || (exports.AddInMode = {})); - var DashboardObjectType; - (function (DashboardObjectType) { - DashboardObjectType["Blank"] = "blank"; - DashboardObjectType["Worksheet"] = "worksheet"; - DashboardObjectType["QuickFilter"] = "quick-filter"; - DashboardObjectType["ParameterControl"] = "parameter-control"; - DashboardObjectType["PageFilter"] = "page-filter"; - DashboardObjectType["Legend"] = "legend"; - DashboardObjectType["Title"] = "title"; - DashboardObjectType["Text"] = "text"; - DashboardObjectType["Image"] = "image"; - DashboardObjectType["WebPage"] = "web-page"; - DashboardObjectType["AddIn"] = "addin"; - })(DashboardObjectType = exports.DashboardObjectType || (exports.DashboardObjectType = {})); - var DataType; - (function (DataType) { - DataType["String"] = "string"; - DataType["Int"] = "int"; - DataType["Float"] = "float"; - DataType["Bool"] = "bool"; - DataType["Date"] = "date"; - DataType["DateTime"] = "date-time"; - DataType["Spatial"] = "spatial"; - })(DataType = exports.DataType || (exports.DataType = {})); - var EncodedDataType; - (function (EncodedDataType) { - EncodedDataType["Number"] = "number"; - EncodedDataType["String"] = "string"; - EncodedDataType["Date"] = "date"; - EncodedDataType["Boolean"] = "boolean"; - })(EncodedDataType = exports.EncodedDataType || (exports.EncodedDataType = {})); - var ErrorCode; - (function (ErrorCode) { - ErrorCode["ServerError"] = "server-error"; - ErrorCode["InvalidAggregationFieldName"] = "invalid-aggregation-field-name"; - ErrorCode["InvalidFilterFieldName"] = "invalid-filter-fieldname"; - ErrorCode["InvalidFilterFieldValue"] = "invalid-filter-field-value"; - })(ErrorCode = exports.ErrorCode || (exports.ErrorCode = {})); - /** - * The different update types for applying filter. - */ - var FilterUpdateType; - (function (FilterUpdateType) { - FilterUpdateType["Add"] = "add"; - FilterUpdateType["All"] = "all"; - FilterUpdateType["Replace"] = "replace"; - FilterUpdateType["Remove"] = "remove"; - })(FilterUpdateType = exports.FilterUpdateType || (exports.FilterUpdateType = {})); - var SheetType; - (function (SheetType) { - SheetType["Dashboard"] = "dashboard"; - SheetType["Story"] = "story"; - SheetType["Worksheet"] = "worksheet"; - SheetType["Addin"] = "addin"; - })(SheetType = exports.SheetType || (exports.SheetType = {})); - /** - * The option for specifying which values to include for filtering. - */ - var NullOption; - (function (NullOption) { - NullOption["NullValues"] = "nullvalues"; - NullOption["NonNullValues"] = "nonnullvalues"; - NullOption["AllValues"] = "allvalues"; - })(NullOption = exports.NullOption || (exports.NullOption = {})); - - -/***/ }, -/* 5 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var InternalApiDispatcherHolder; - (function (InternalApiDispatcherHolder) { - function getDesktopDispatcherPromise() { - return window.__tableauDesktopDispatcher; - } - InternalApiDispatcherHolder.getDesktopDispatcherPromise = getDesktopDispatcherPromise; - function hasDesktopApiDispatcherPromise() { - return !!InternalApiDispatcherHolder.getDesktopDispatcherPromise(); - } - InternalApiDispatcherHolder.hasDesktopApiDispatcherPromise = hasDesktopApiDispatcherPromise; - function setDesktopDispatcherPromise(dispatcher) { - window.__tableauDesktopDispatcher = dispatcher; - } - InternalApiDispatcherHolder.setDesktopDispatcherPromise = setDesktopDispatcherPromise; - })(InternalApiDispatcherHolder = exports.InternalApiDispatcherHolder || (exports.InternalApiDispatcherHolder = {})); - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var NotificationId; - (function (NotificationId) { - NotificationId["SelectedMarksChanged"] = "selected-marks-changed"; - })(NotificationId = exports.NotificationId || (exports.NotificationId = {})); - - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var ParameterId; - (function (ParameterId) { - ParameterId["AddInLocator"] = "add-in-locator"; - ParameterId["AddInBootstrapInfo"] = "add-in-bootstrap-info"; - ParameterId["AddInSettingsInfo"] = "add-in-settings-info"; - ParameterId["VisualId"] = "visual-id"; - ParameterId["SheetPath"] = "sheet-path"; - ParameterId["IgnoreAliases"] = "ignore-aliases"; - ParameterId["IgnoreSelection"] = "ignore-selection"; - ParameterId["IncludeAllColumns"] = "include-all-columns"; - ParameterId["MaxRows"] = "max-rows"; - ParameterId["UnderlyingDataTable"] = "underlying-data-table"; - ParameterId["UnderlyingSummaryDataTable"] = "underlying-summary-data-table"; - ParameterId["SettingsValues"] = "settings-values"; - ParameterId["SelectedData"] = "selected-data"; - ParameterId["HighlightedData"] = "highlighted-data"; - // Filter Params - ParameterId["FieldName"] = "field-name"; - ParameterId["FilterValues"] = "filter-values"; - ParameterId["FilterUpdateType"] = "filter-update-type"; - ParameterId["IsExcludeMode"] = "is-exclude"; - ParameterId["FilterRangeMin"] = "filter-range-min"; - ParameterId["FilterRangeMax"] = "filter-range-max"; - ParameterId["FilterRangeNullOption"] = "filter-range-null-option"; - ParameterId["WorksheetName"] = "worksheet-name"; - })(ParameterId = exports.ParameterId || (exports.ParameterId = {})); - - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - // Declare this key type and export the NotificationId to make this behave like a string enum - var VerbId; - (function (VerbId) { - VerbId["ApplyCategoricalFilter"] = "categorical-filter"; - VerbId["ApplyRangeFilter"] = "range-filter"; - VerbId["ClearFilter"] = "clear-filter"; - VerbId["InitializeAddIn"] = "initialize-add-in"; - VerbId["GetDataSummaryData"] = "get-summary-data"; - VerbId["GetUnderlyingData"] = "get-underlying-data"; - VerbId["SaveAddInSettings"] = "save-add-in-settings"; - VerbId["GetSelectedMarks"] = "get-selected-marks"; - VerbId["GetHighlightedMarks"] = "get-highlighted-marks"; - })(VerbId = exports.VerbId || (exports.VerbId = {})); - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export(__webpack_require__(10)); - __export(__webpack_require__(11)); - __export(__webpack_require__(12)); - __export(__webpack_require__(13)); - __export(__webpack_require__(18)); - __export(__webpack_require__(17)); - __export(__webpack_require__(16)); - __export(__webpack_require__(19)); - __export(__webpack_require__(20)); - __export(__webpack_require__(21)); - __export(__webpack_require__(30)); - __export(__webpack_require__(31)); - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Class designed to register and unregister handlers from a user. Only those events - * which are added via AddNewEventType will be supported by this instance - */ - var EventListenerManager = (function () { - function EventListenerManager() { - this.eventListenerManagers = {}; - } - EventListenerManager.prototype.addEventListener = function (eventType, handler) { - if (!this.eventListenerManagers.hasOwnProperty(eventType)) { - throw new Error("Unsupported event type : " + eventType); - } - return this.eventListenerManagers[eventType].addEventListener(handler); - }; - EventListenerManager.prototype.removeEventListener = function (eventType, handler) { - if (!this.eventListenerManagers.hasOwnProperty(eventType)) { - throw new Error("Unsupported event type : " + eventType); - } - return this.eventListenerManagers[eventType].removeEventListener(handler); - }; - EventListenerManager.prototype.addNewEventType = function (eventManager) { - this.eventListenerManagers[eventManager.eventType] = eventManager; - }; - return EventListenerManager; - }()); - exports.EventListenerManager = EventListenerManager; - - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var DataTable = (function () { - function DataTable(_data, _columns, _totalRowCount, _isSummaryData) { - this._data = _data; - this._columns = _columns; - this._totalRowCount = _totalRowCount; - this._isSummaryData = _isSummaryData; - // TODO: get rid of this in redesign. - this._name = _isSummaryData ? 'Summary Data Table' : 'Underlying Data Table'; - } - Object.defineProperty(DataTable.prototype, "name", { - get: function () { - return this._name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTable.prototype, "data", { - get: function () { - return this._data; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTable.prototype, "columns", { - get: function () { - return this._columns; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTable.prototype, "totalRowCount", { - get: function () { - return this._totalRowCount; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTable.prototype, "isSummaryData", { - get: function () { - return this._isSummaryData; - }, - enumerable: true, - configurable: true - }); - return DataTable; - }()); - exports.DataTable = DataTable; - var Column = (function () { - function Column(_fieldName, _dataType, // TODO: this shoudl be an enum type - _isReferenced, _index) { - this._fieldName = _fieldName; - this._dataType = _dataType; - this._isReferenced = _isReferenced; - this._index = _index; - } - Object.defineProperty(Column.prototype, "fieldName", { - get: function () { - return this._fieldName; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Column.prototype, "dataType", { - get: function () { - return this._dataType; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Column.prototype, "isReferenced", { - get: function () { - return this._isReferenced; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Column.prototype, "index", { - get: function () { - return this._index; - }, - enumerable: true, - configurable: true - }); - return Column; - }()); - exports.Column = Column; - var DataValue = (function () { - /* tslint:disable:no-any */ - function DataValue(_value, _formattedValue) { - this._value = _value; - this._formattedValue = _formattedValue; - } - Object.defineProperty(DataValue.prototype, "value", { - get: function () { - return this._value; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataValue.prototype, "formattedValue", { - get: function () { - return this._formattedValue; - }, - enumerable: true, - configurable: true - }); - return DataValue; - }()); - exports.DataValue = DataValue; - - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var TableauExceptions = (function () { - function TableauExceptions() { - } - return TableauExceptions; - }()); - exports.TableauExceptions = TableauExceptions; - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var api_external_contract_1 = __webpack_require__(14); - var TableauWorksheetEvent_1 = __webpack_require__(16); - var MarksSelectedEvent = (function (_super) { - __extends(MarksSelectedEvent, _super); - function MarksSelectedEvent(worksheet) { - return _super.call(this, api_external_contract_1.TableauEventType.MarkSelectionChanged, worksheet) || this; - } - MarksSelectedEvent.prototype.getMarksAsync = function () { - return this.worksheet.getSelectedMarksAsync(); - }; - return MarksSelectedEvent; - }(TableauWorksheetEvent_1.TableauWorksheetEvent)); - exports.MarksSelectedEvent = MarksSelectedEvent; - - -/***/ }, -/* 14 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export(__webpack_require__(15)); - - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - "use strict"; - // All enum values made available to AddIn developers. - // Enums should be kept in alphabetical order. - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * The context in which the AddIn is currently running. - */ - var AddInContext; - (function (AddInContext) { - AddInContext["Desktop"] = "desktop"; - AddInContext["Server"] = "server"; - AddInContext["Unknown"] = "unknown"; - })(AddInContext = exports.AddInContext || (exports.AddInContext = {})); - /** - * The mode in which the AddIn is currently running. - */ - var AddInMode; - (function (AddInMode) { - AddInMode["Authoring"] = "authoring"; - AddInMode["Viewing"] = "viewing"; - AddInMode["Unknown"] = "unknown"; - })(AddInMode = exports.AddInMode || (exports.AddInMode = {})); - /** - * What the object represents in a dashboard. - */ - var DashboardObjectType; - (function (DashboardObjectType) { - DashboardObjectType["Blank"] = "blank"; - DashboardObjectType["Worksheet"] = "worksheet"; - DashboardObjectType["QuickFilter"] = "quick-filter"; - DashboardObjectType["ParameterControl"] = "parameter-control"; - DashboardObjectType["PageFilter"] = "page-filter"; - DashboardObjectType["Legend"] = "legend"; - DashboardObjectType["Title"] = "title"; - DashboardObjectType["Text"] = "text"; - DashboardObjectType["Image"] = "image"; - DashboardObjectType["WebPage"] = "web-page"; - DashboardObjectType["AddIn"] = "addin"; - })(DashboardObjectType = exports.DashboardObjectType || (exports.DashboardObjectType = {})); - /** - * The different types of data a value can have - */ - var DataType; - (function (DataType) { - DataType["String"] = "string"; - DataType["Int"] = "int"; - DataType["Float"] = "float"; - DataType["Bool"] = "bool"; - DataType["Date"] = "date"; - DataType["DateTime"] = "date-time"; - DataType["Spatial"] = "spatial"; - })(DataType = exports.DataType || (exports.DataType = {})); - /** - * Valid date ranges for a relative date filter. - */ - var DateRangeType; - (function (DateRangeType) { - DateRangeType["Last"] = "last"; - DateRangeType["LastN"] = "last-n"; - DateRangeType["Next"] = "next"; - DateRangeType["NextN"] = "next-n"; - DateRangeType["Current"] = "current"; - DateRangeType["ToDate"] = "to-date"; - })(DateRangeType = exports.DateRangeType || (exports.DateRangeType = {})); - /** - * Types of dialog event for event listening between a parent AddIn and a popup dialog. - */ - var DialogEventType; - (function (DialogEventType) { - DialogEventType["DialogMessage"] = "dialog-message"; - DialogEventType["DialogEvent"] = "dialog-event"; - })(DialogEventType = exports.DialogEventType || (exports.DialogEventType = {})); - /** - * All error codes used by the AddIn API. - */ - var ErrorCodes; - (function (ErrorCodes) { - /** - * Only one dialog can be opened at time with the UI namespace functionality. - */ - ErrorCodes["DialogAlreadyOpen"] = "dialog-already-open"; - /** - * The open dialog was closed by the user. - */ - ErrorCodes["DialogClosedByUser"] = "dialog-closed-by-user"; - /** - * An error occurred while attempting to perform a filter operation. - */ - ErrorCodes["FilterCannotBePerformed"] = "filter-cannot-be-performed"; - /** - * An error occurred within the Tableau AddIn API. Contact Tableau Support. - */ - ErrorCodes["InternalError"] = "internal-error"; - /** - * An invalid aggregation was specified for the filter, such as setting a range filter to "SUM(Sales)" instead of "Sales". - */ - ErrorCodes["InvalidAggregationFieldName"] = "invalid-aggregation-field-name"; - /** - * A dialog must first launch to, and send messages from, the same domain as the parent AddIn. - */ - ErrorCodes["InvalidDomainDialog"] = "invalid-dialog-domain"; - /** - * An invalid date was specified in a method that required a date parameter. - */ - ErrorCodes["InvalidDateParameter"] = "invalid-date-parameter"; - /** - * A filter operation was attempted on a field that does not exist in the data source. - */ - ErrorCodes["InvalidFilterFieldName"] = "invalid-filter-field-name"; - /** - * A filter operation was attempted using a value that is the wrong data type or format. - */ - ErrorCodes["InvalidFilterFieldValue"] = "invalid-filter-field-value"; - /** - * A parameter is not the correct data type or format. The name of the parameter is specified in the Error.message field. - */ - ErrorCodes["InvalidParameter"] = "invalid-parameter"; - /** - * An invalid date value was specified in a Sheet.selectMarksAsync() call for a date field. - */ - ErrorCodes["InvalidSelectionDate"] = "invalid-selection-date"; - /** - * A field was specified in a Sheet.selectMarksAsync() call that does not exist in the data source. - */ - ErrorCodes["InvalidSelectionFieldName"] = "invalid-selection-field-name"; - /** - * An invalid value was specified in a Sheet.selectMarksAsync() call. - */ - ErrorCodes["InvalidSelectionValue"] = "invalid-selection-value"; - /** - * A required parameter was not specified, null, or an empty string/array. - */ - ErrorCodes["NullOrEmptyParameter"] = "null-or-empty-parameter"; - /** - * An unknown event name was specified in the call to Viz.addEventListeneror Viz.removeEventListener. - */ - ErrorCodes["UnsupportedEventName"] = "unsupported-event-name"; - })(ErrorCodes = exports.ErrorCodes || (exports.ErrorCodes = {})); - /** - * Type of aggregation on a field. - */ - var FieldAggreationType; - (function (FieldAggreationType) { - FieldAggreationType["Sum"] = "sum"; - FieldAggreationType["Avg"] = "avg"; - FieldAggreationType["Min"] = "min"; - FieldAggreationType["Max"] = "max"; - FieldAggreationType["Stdev"] = "stdev"; - FieldAggreationType["Stdevp"] = "stdevp"; - FieldAggreationType["Var"] = "var"; - FieldAggreationType["Varp"] = "varp"; - FieldAggreationType["Count"] = "count"; - FieldAggreationType["Countd"] = "countd"; - FieldAggreationType["Median"] = "median"; - FieldAggreationType["Attr"] = "attr"; - FieldAggreationType["None"] = "none"; - FieldAggreationType["Year"] = "year"; - FieldAggreationType["Qtr"] = "qtr"; - FieldAggreationType["Month"] = "month"; - FieldAggreationType["Day"] = "day"; - FieldAggreationType["Hour"] = "hour"; - FieldAggreationType["Minute"] = "minute"; - FieldAggreationType["Second"] = "second"; - FieldAggreationType["Week"] = "week"; - FieldAggreationType["Weekday"] = "weekday"; - FieldAggreationType["MomthYear"] = "month-year"; - FieldAggreationType["Mdy"] = "mdy"; - FieldAggreationType["End"] = "end"; - FieldAggreationType["TruncYear"] = "trunc-year"; - FieldAggreationType["TruncQtr"] = "trunc-qtr"; - FieldAggreationType["TruncMonth"] = "trunc-month"; - FieldAggreationType["TruncWeek"] = "trunc-week"; - FieldAggreationType["TruncDay"] = "trunc-day"; - FieldAggreationType["TruncHour"] = "trunc-hour"; - FieldAggreationType["TruncMinute"] = "trunc-minute"; - FieldAggreationType["TruncSecond"] = "trunc-second"; - FieldAggreationType["Quart1"] = "quart1"; - FieldAggreationType["Quart3"] = "quart3"; - FieldAggreationType["Skewness"] = "skewness"; - FieldAggreationType["Kurtosis"] = "kurtosis"; - FieldAggreationType["InOut"] = "in-out"; - FieldAggreationType["User"] = "user"; - })(FieldAggreationType = exports.FieldAggreationType || (exports.FieldAggreationType = {})); - /** - * Role of a field. - */ - var FieldRoleType; - (function (FieldRoleType) { - FieldRoleType["Dimension"] = "dimension"; - FieldRoleType["Measure"] = "measure"; - FieldRoleType["Unknown"] = "unknown"; - })(FieldRoleType = exports.FieldRoleType || (exports.FieldRoleType = {})); - /** - * An enumeration of the valid types of filters that can be applied. - */ - var FilterType; - (function (FilterType) { - FilterType["Categorical"] = "categorical"; - FilterType["Quantitative"] = "quantitative"; - FilterType["Hierarchical"] = "hierarchical"; - FilterType["RelativeDate"] = "relative-data"; - })(FilterType = exports.FilterType || (exports.FilterType = {})); - /** - * The different update types for applying filter - */ - var FilterUpdateType; - (function (FilterUpdateType) { - FilterUpdateType["Add"] = "add"; - FilterUpdateType["All"] = "all"; - FilterUpdateType["Replace"] = "replace"; - FilterUpdateType["Remove"] = "remove"; - })(FilterUpdateType = exports.FilterUpdateType || (exports.FilterUpdateType = {})); - /** - * Indicates what to do with null values for a given filter or mark selection call. - */ - var NullOption; - (function (NullOption) { - NullOption["NullValues"] = "null-values"; - NullOption["NonNullValues"] = "non-null-values"; - NullOption["AllValues"] = "all-values"; - })(NullOption = exports.NullOption || (exports.NullOption = {})); - /** - * Date period used in filters and in parameters. - */ - var PeriodType; - (function (PeriodType) { - PeriodType["Years"] = "years"; - PeriodType["Quarters"] = "quarters"; - PeriodType["Months"] = "months"; - PeriodType["Weeks"] = "weeks"; - PeriodType["Days"] = "days"; - PeriodType["Hours"] = "hours"; - PeriodType["Minutes"] = "minutes"; - PeriodType["Seconds"] = "seconds"; - })(PeriodType = exports.PeriodType || (exports.PeriodType = {})); - /** - * The type of sheet a Sheet object represents - */ - var SheetType; - (function (SheetType) { - SheetType["Dashboard"] = "dashboard"; - SheetType["Story"] = "story"; - SheetType["Worksheet"] = "worksheet"; - SheetType["AddIn"] = "add-in"; - })(SheetType = exports.SheetType || (exports.SheetType = {})); - /** - * Represents a certain type of event which can be listened for - */ - var TableauEventType; - (function (TableauEventType) { - /** The selected marks on a visualization has changed */ - TableauEventType["MarkSelectionChanged"] = "mark-selection-changed"; - })(TableauEventType = exports.TableauEventType || (exports.TableauEventType = {})); - - -/***/ }, -/* 16 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var TableauSheetEvent_1 = __webpack_require__(17); - var TableauWorksheetEvent = (function (_super) { - __extends(TableauWorksheetEvent, _super); - function TableauWorksheetEvent(type, worksheet) { - var _this = _super.call(this, type, worksheet) || this; - _this._worksheet = worksheet; - return _this; - } - Object.defineProperty(TableauWorksheetEvent.prototype, "worksheet", { - get: function () { - return this._worksheet; - }, - enumerable: true, - configurable: true - }); - return TableauWorksheetEvent; - }(TableauSheetEvent_1.TableauSheetEvent)); - exports.TableauWorksheetEvent = TableauWorksheetEvent; - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var TableauEvent_1 = __webpack_require__(18); - var TableauSheetEvent = (function (_super) { - __extends(TableauSheetEvent, _super); - function TableauSheetEvent(type, sheet) { - var _this = _super.call(this, type) || this; - _this._sheet = sheet; - return _this; - } - Object.defineProperty(TableauSheetEvent.prototype, "sheet", { - get: function () { - return this._sheet; - }, - enumerable: true, - configurable: true - }); - return TableauSheetEvent; - }(TableauEvent_1.TableauEvent)); - exports.TableauSheetEvent = TableauSheetEvent; - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var TableauEvent = (function () { - function TableauEvent(type) { - this._type = type; - } - Object.defineProperty(TableauEvent.prototype, "type", { - get: function () { - return this._type; - }, - enumerable: true, - configurable: true - }); - return TableauEvent; - }()); - exports.TableauEvent = TableauEvent; - - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * This class implements the SingleEventManager interface for a single type of Tableau event - * - * @template TEventType The Tableau event type this class specializes - */ - var SingleEventManagerImpl = (function () { - function SingleEventManagerImpl(eventType) { - this._eventType = eventType; - this.handlers = []; - } - Object.defineProperty(SingleEventManagerImpl.prototype, "eventType", { - get: function () { - return this._eventType; - }, - enumerable: true, - configurable: true - }); - SingleEventManagerImpl.prototype.addEventListener = function (handler) { - var _this = this; - this.handlers.push(handler); - return function () { return _this.removeEventListener(handler); }; - }; - SingleEventManagerImpl.prototype.removeEventListener = function (handler) { - var beforeCount = this.handlers.length; - this.handlers = this.handlers.filter(function (h) { return h !== handler; }); - return beforeCount > this.handlers.length; - }; - SingleEventManagerImpl.prototype.triggerEvent = function (eventGenerator) { - for (var _i = 0, _a = this.handlers; _i < _a.length; _i++) { - var handler = _a[_i]; - try { - var eventModel = eventGenerator(); - handler(eventModel); - } - catch (e) { - // Since this handler could be outside our control, just catch anything it throws and continue on - continue; - } - } - }; - return SingleEventManagerImpl; - }()); - exports.SingleEventManagerImpl = SingleEventManagerImpl; - - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Defines which type of getData call to make. - */ - var GetDataType; - (function (GetDataType) { - GetDataType["Summary"] = "summary"; - GetDataType["Underlying"] = "underlying"; - })(GetDataType = exports.GetDataType || (exports.GetDataType = {})); - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var FilterServiceImpl_1 = __webpack_require__(22); - var GetDataServiceImpl_1 = __webpack_require__(28); - var NotificationServiceImpl_1 = __webpack_require__(29); - var ServiceRegistry_1 = __webpack_require__(30); - function registerAllSharedServices(dispatcher) { - ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new GetDataServiceImpl_1.GetDataServiceImpl(dispatcher)); - ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new FilterServiceImpl_1.FilterServiceImpl(dispatcher)); - ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new NotificationServiceImpl_1.NotificationServiceImpl(dispatcher)); - // TODO - more shared services - } - exports.registerAllSharedServices = registerAllSharedServices; - - -/***/ }, -/* 22 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_external_contract_1 = __webpack_require__(14); - var api_internal_contract_1 = __webpack_require__(23); - var api_utils_1 = __webpack_require__(24); - var ExternalToInternalEnumMappings_1 = __webpack_require__(27); - var FilterServiceImpl = (function () { - function FilterServiceImpl(dispatcher) { - this.dispatcher = dispatcher; - } - Object.defineProperty(FilterServiceImpl.prototype, "serviceName", { - get: function () { - return "filter-service" /* Filter */; - }, - enumerable: true, - configurable: true - }); - FilterServiceImpl.prototype.applyFilterAsync = function (visualId, fieldName, values, updateType, filterOptions) { - if (!api_utils_1.Param.isValidEnumValue(updateType, api_external_contract_1.FilterUpdateType)) { - throw new Error('Invalid value for parameter FilterUpdateType'); - } - var verb = api_internal_contract_1.VerbId.ApplyCategoricalFilter; - var parameters = {}; - parameters[api_internal_contract_1.ParameterId.VisualId] = visualId; - parameters[api_internal_contract_1.ParameterId.FieldName] = fieldName; - parameters[api_internal_contract_1.ParameterId.FilterValues] = values; - parameters[api_internal_contract_1.ParameterId.FilterUpdateType] = updateType; - parameters[api_internal_contract_1.ParameterId.IsExcludeMode] = - (filterOptions === undefined || filterOptions.isExcludeMode === undefined) ? false : filterOptions.isExcludeMode; - return this.dispatcher.execute(verb, parameters).then(function (response) { - var error = response.result; - if (!(error.errorCode === null || error.errorCode === undefined)) { - // TODO: come back and implement error handling logic - throw new Error('Error Applying Filter: ' + error.errorCode); - } - return fieldName; - }); - }; - FilterServiceImpl.prototype.applyRangeFilterAsync = function (visualId, fieldName, filterOptions) { - if (!filterOptions) { - throw new Error('Missing Parameter: RangeFilterOptions'); - } - api_utils_1.Param.verifyRangeParamType(filterOptions.min, filterOptions.max); - var verb = api_internal_contract_1.VerbId.ApplyRangeFilter; - var parameters = {}; - if (filterOptions.min) { - var min = void 0; - if (filterOptions.min instanceof Date) { - min = api_utils_1.Param.serializeDateForPlatform(filterOptions.min); - } - else { - min = filterOptions.min; - } - parameters[api_internal_contract_1.ParameterId.FilterRangeMin] = min; - } - if (filterOptions.max) { - var max = void 0; - if (filterOptions.max instanceof Date) { - max = api_utils_1.Param.serializeDateForPlatform(filterOptions.max); - } - else { - max = filterOptions.max; - } - parameters[api_internal_contract_1.ParameterId.FilterRangeMax] = max; - } - if (filterOptions.nullOption) { - if (!api_utils_1.Param.isValidEnumValue(filterOptions.nullOption, api_external_contract_1.NullOption)) { - throw new Error('Invalid value for parameter NullOption'); - } - parameters[api_internal_contract_1.ParameterId.FilterRangeNullOption] = ExternalToInternalEnumMappings_1.ExternalToInternalEnumMappings.nullOptions.convert(filterOptions.nullOption); - } - parameters[api_internal_contract_1.ParameterId.FieldName] = fieldName; - parameters[api_internal_contract_1.ParameterId.VisualId] = visualId; - return this.dispatcher.execute(verb, parameters).then(function (response) { - return fieldName; - }); - }; - FilterServiceImpl.prototype.clearFilterAsync = function (visualId, fieldName) { - var verb = api_internal_contract_1.VerbId.ClearFilter; - var parameters = {}; - parameters[api_internal_contract_1.ParameterId.VisualId] = visualId; - parameters[api_internal_contract_1.ParameterId.FieldName] = fieldName; - return this.dispatcher.execute(verb, parameters).then(function (resposne) { - return fieldName; - }); - }; - return FilterServiceImpl; - }()); - exports.FilterServiceImpl = FilterServiceImpl; - - -/***/ }, -/* 23 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export(__webpack_require__(4)); - __export(__webpack_require__(5)); - __export(__webpack_require__(6)); - __export(__webpack_require__(7)); - __export(__webpack_require__(8)); - - -/***/ }, -/* 24 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - Object.defineProperty(exports, "__esModule", { value: true }); - var EnumConverter_1 = __webpack_require__(25); - exports.EnumConverter = EnumConverter_1.EnumConverter; - var Param_1 = __webpack_require__(26); - exports.Param = Param_1.Param; - - -/***/ }, -/* 25 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * This class converts from a source enum value to destination enum - * value given a mapping from source to destination when constructed. - */ - var EnumConverter = (function () { - function EnumConverter(mappings, defaultVal) { - this.mappings = mappings; - this.defaultVal = defaultVal; - } - EnumConverter.prototype.convert = function (enumVal, throwIfMissing) { - if (this.mappings.hasOwnProperty(enumVal)) { - return this.mappings[enumVal]; - } - if (this.defaultVal !== undefined && !throwIfMissing) { - return this.defaultVal; - } - throw new Error('Mapping not found for ' + enumVal); - }; - return EnumConverter; - }()); - exports.EnumConverter = EnumConverter; - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Param = (function () { - function Param() { - } - /** - * Verifies that an incoming parameter is 'truthy' and throws - * an error if it's not. This will throw an error if the value - * is null, undefined, NaN, the empty string, 0, or false. - * - * @param argumentValue value to verify - * @param argumentName name of argument to verify - */ - /*tslint:disable-next-line */ - Param.verifyValue = function (argumentValue, argumentName) { - if (!argumentValue) { - throw new Error('Value is invalid for argument: ' + argumentName); - } - }; - /** - * Verifies that a string is valid. Throws an error if the string is - * null, undefined, or NaN. - * - * @param argumentValue value to verify - * @param argumentName name of argument to verify - */ - Param.verifyString = function (argumentValue, argumentName) { - if (argumentValue === null || argumentValue === undefined) { - throw new Error('String value is invalid for argument: ' + argumentName); - } - }; - /** - * Verifies the value is part of the Enum - * - * String enums are {string : string} dictionaries which are not reverse mappable - * This is an ugly workaround - * @param value value to verify - * @param enumType enum to verify against - */ - /* tslint:disable:no-any */ - Param.isValidEnumValue = function (value, enumType) { - var isValid = false; - Object.keys(enumType).forEach(function (enumKey) { - if (enumType[enumKey] === value.toString()) { - isValid = true; - } - }); - return isValid; - }; - /* tslint:enable:no-any */ - /** - * serializes the date into the format that the server expects. - * @param date the date to serialize - */ - Param.serializeDateForPlatform = function (date) { - var year = date.getUTCFullYear(); - var month = date.getUTCMonth() + 1; - var day = date.getUTCDate(); - var hh = date.getUTCHours(); - var mm = date.getUTCMinutes(); - var sec = date.getUTCSeconds(); - return year + '-' + month + '-' + day + ' ' + hh + ':' + mm + ':' + sec; - }; - /** - * Verifies the params min and max for applying range filter - * @param min range min - * @param max range max - */ - /* tslint:disable:no-any */ - Param.verifyRangeParamType = function (min, max) { - /* tslint:enable:no-any */ - if (!min && !max) { - throw new Error('Missing Parameter: At least one of min or max is required'); - } - if (!Param.isTypeNumber(min) && !Param.isTypeDate(min)) { - throw new Error('Invalid Parameter Type: Only Date and number are allowed for parameter min'); - } - if (!Param.isTypeNumber(max) && !Param.isTypeDate(max)) { - throw new Error('Invalid Parameter Type: Only Date and number are allowed for parameter max'); - } - if (typeof (min) !== typeof (max)) { - throw new Error('Invalid Parameter Type: Parameters min and max should be of the same type'); - } - }; - /** - * Verifies the input is a number - */ - /* tslint:disable:no-any */ - Param.isTypeNumber = function (input) { - return typeof (input) === 'number' || input instanceof Number; - }; - /* tslint:enable:no-any */ - /** - * Verifies the input is a Date - */ - /* tslint:disable:no-any */ - Param.isTypeDate = function (input) { - return input instanceof Date; - }; - return Param; - }()); - exports.Param = Param; - - -/***/ }, -/* 27 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_external_contract_1 = __webpack_require__(14); - var api_internal_contract_1 = __webpack_require__(23); - var api_utils_1 = __webpack_require__(24); - /* tslint:disable:typedef - Disable this to make declaring these classes a bit easier */ - /** - * Maps enums used by the external-api-contract to the enums used - * in the internal-api-contract, which developers code against. - */ - var ExternalToInternalEnumMappings = (function () { - function ExternalToInternalEnumMappings() { - } - ExternalToInternalEnumMappings.nullOptions = new api_utils_1.EnumConverter((_a = {}, - _a[api_external_contract_1.NullOption.AllValues] = api_internal_contract_1.NullOption.AllValues, - _a[api_external_contract_1.NullOption.NonNullValues] = api_internal_contract_1.NullOption.NonNullValues, - _a[api_external_contract_1.NullOption.NonNullValues] = api_internal_contract_1.NullOption.NullValues, - _a)); - return ExternalToInternalEnumMappings; - }()); - exports.ExternalToInternalEnumMappings = ExternalToInternalEnumMappings; - var _a; - /* tslint:enable:typedef */ - - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_external_contract_1 = __webpack_require__(14); - var api_internal_contract_1 = __webpack_require__(23); - var GetDataModels_1 = __webpack_require__(11); - var GetDataService_1 = __webpack_require__(20); - var GetDataServiceImpl = (function () { - function GetDataServiceImpl(dispatcher) { - this.dispatcher = dispatcher; - } - Object.defineProperty(GetDataServiceImpl.prototype, "serviceName", { - get: function () { - return "get-data-service" /* GetData */; - }, - enumerable: true, - configurable: true - }); - GetDataServiceImpl.prototype.getUnderlyingDataAsync = function (visualId, getType, ignoreAliases, ignoreSelection, includeAllColumns, maxRows) { - var _this = this; - // Create all of our parameters - var verb = getType === GetDataService_1.GetDataType.Summary ? api_internal_contract_1.VerbId.GetDataSummaryData : api_internal_contract_1.VerbId.GetUnderlyingData; - var parameters = {}; - parameters[api_internal_contract_1.ParameterId.VisualId] = visualId; - parameters[api_internal_contract_1.ParameterId.IgnoreAliases] = ignoreAliases; - parameters[api_internal_contract_1.ParameterId.IgnoreSelection] = ignoreSelection; - parameters[api_internal_contract_1.ParameterId.IncludeAllColumns] = includeAllColumns; - parameters[api_internal_contract_1.ParameterId.MaxRows] = maxRows; - return this.dispatcher.execute(verb, parameters).then(function (response) { - var responseData = response.result; - return _this.processResultsTable(responseData.data, responseData.isSummary); - }); - }; - GetDataServiceImpl.prototype.getSelectedMarksAsync = function (visualId) { - var _this = this; - var parameters = (_a = {}, _a[api_internal_contract_1.ParameterId.VisualId] = visualId, _a); - return this.dispatcher.execute(api_internal_contract_1.VerbId.GetSelectedMarks, parameters).then(function (response) { - var responseData = response.result; - return { - data: responseData.data.map(function (table) { return _this.processResultsTable(table, true); }) - }; - }); - var _a; - }; - GetDataServiceImpl.prototype.getHighlightedMarksAsync = function (visualId) { - var _this = this; - var parameters = (_a = {}, _a[api_internal_contract_1.ParameterId.VisualId] = visualId, _a); - return this.dispatcher.execute(api_internal_contract_1.VerbId.GetHighlightedMarks, parameters).then(function (response) { - var responseData = response.result; - return { - data: responseData.data.map(function (table) { return _this.processResultsTable(table, true); }) - }; - }); - var _a; - }; - GetDataServiceImpl.prototype.processResultsTable = function (responseData, isSummary) { - var headers = responseData.headers.map(function (h) { return new GetDataModels_1.Column(h.fieldCaption, api_external_contract_1.DataType.String /*h.DataType*/, h.isReferenced, h.index); }); - var table = responseData.dataTable.map(function (row) { - return row.map(function (cell) { - return new GetDataModels_1.DataValue(cell.value, cell.formattedValue); - }); - }); - return new GetDataModels_1.DataTable(table, headers, table.length, isSummary); - }; - return GetDataServiceImpl; - }()); - exports.GetDataServiceImpl = GetDataServiceImpl; - - -/***/ }, -/* 29 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Registration = (function () { - function Registration(filterFn, callbackFn) { - this.filterFn = filterFn; - this.callbackFn = callbackFn; - // Nothing Here - } - Registration.prototype.onNotification = function (notificationModel) { - if (this.filterFn(notificationModel)) { - this.callbackFn(notificationModel); - } - }; - return Registration; - }()); - var NotificationServiceImpl = (function () { - function NotificationServiceImpl(dispatcher) { - this.dispatcher = dispatcher; - this.handlers = {}; - this.dispatcher.registerNotificationHandler(this.onNotification.bind(this)); - } - Object.defineProperty(NotificationServiceImpl.prototype, "serviceName", { - get: function () { - return "notification-service" /* Notification */; - }, - enumerable: true, - configurable: true - }); - NotificationServiceImpl.prototype.registerHandler = function (id, filterFn, handler) { - var _this = this; - var handlers = this.handlers[id] || new Array(); - var registration = new Registration(filterFn, handler); - handlers.push(registration); - this.handlers[id] = handlers; - return function () { return _this.removeRegistration(id, registration); }; - }; - NotificationServiceImpl.prototype.hasHandlersForNotificationType = function (id) { - return this.handlers.hasOwnProperty(id); - }; - NotificationServiceImpl.prototype.onNotification = function (notification) { - if (!this.hasHandlersForNotificationType(notification.notificationId)) { - return; - } - // Go through and check for all the handlers of this particular notification - this.handlers[notification.notificationId].forEach(function (h) { return h.onNotification(notification.data); }); - }; - NotificationServiceImpl.prototype.removeRegistration = function (id, registration) { - if (!this.hasHandlersForNotificationType(id)) { - return; - } - this.handlers[id] = this.handlers[id].filter(function (reg) { return reg !== registration; }); - }; - return NotificationServiceImpl; - }()); - exports.NotificationServiceImpl = NotificationServiceImpl; - - -/***/ }, -/* 30 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var ServiceRegistryImpl = (function () { - function ServiceRegistryImpl() { - this.services = {}; - } - ServiceRegistryImpl.prototype.registerService = function (service) { - this.services[service.serviceName] = service; - }; - ServiceRegistryImpl.prototype.getService = function (serviceName) { - if (!this.services.hasOwnProperty(serviceName)) { - throw new Error("No Service " + serviceName + " is registered"); - } - return this.services[serviceName]; - }; - return ServiceRegistryImpl; - }()); - /** - * static class used for getting access to the single instance - * of the ApiServiceRegistry - */ - var ApiServiceRegistry = (function () { - // Private to avoid anyone constructing this - function ApiServiceRegistry() { - } - Object.defineProperty(ApiServiceRegistry, "instance", { - /** - * Gets the singleton instance of the ServiceRegistry - */ - get: function () { - if (!window.__tableauApiServiceRegistry) { - ApiServiceRegistry.setInstance(new ServiceRegistryImpl()); - } - if (!window.__tableauApiServiceRegistry) { - throw new Error('Assigning service registry failed'); - } - return window.__tableauApiServiceRegistry; - }, - enumerable: true, - configurable: true - }); - /** - * Helper method to override the registry instance. Can be used by unit tests - * - * @param {ServiceRegistry} serviceRegistry The new registry - */ - ApiServiceRegistry.setInstance = function (serviceRegistry) { - window.__tableauApiServiceRegistry = serviceRegistry; - }; - return ApiServiceRegistry; - }()); - exports.ApiServiceRegistry = ApiServiceRegistry; - - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_external_contract_1 = __webpack_require__(14); - var api_internal_contract_1 = __webpack_require__(23); - var api_utils_1 = __webpack_require__(24); - /* tslint:disable:typedef - Disable this to make declaring these classes a bit easier */ - /** - * Maps enums used by the internal-api-contract to the enums used - * in the external-api-contract, which developers code against. - */ - var InternalToExternalEnumMappings = (function () { - function InternalToExternalEnumMappings() { - } - InternalToExternalEnumMappings.addInContext = new api_utils_1.EnumConverter((_a = {}, - _a[api_internal_contract_1.AddInContext.Desktop] = api_external_contract_1.AddInContext.Desktop, - _a[api_internal_contract_1.AddInContext.Server] = api_external_contract_1.AddInContext.Server, - _a[api_internal_contract_1.AddInContext.Unknown] = api_external_contract_1.AddInContext.Unknown, - _a)); - InternalToExternalEnumMappings.addInMode = new api_utils_1.EnumConverter((_b = {}, - _b[api_internal_contract_1.AddInMode.Authoring] = api_external_contract_1.AddInMode.Authoring, - _b[api_internal_contract_1.AddInMode.Viewing] = api_external_contract_1.AddInMode.Viewing, - _b[api_internal_contract_1.AddInMode.Unknown] = api_external_contract_1.AddInMode.Unknown, - _b)); - InternalToExternalEnumMappings.sheetType = new api_utils_1.EnumConverter((_c = {}, - _c[api_internal_contract_1.SheetType.Dashboard] = api_external_contract_1.SheetType.Dashboard, - _c[api_internal_contract_1.SheetType.Story] = api_external_contract_1.SheetType.Story, - _c[api_internal_contract_1.SheetType.Worksheet] = api_external_contract_1.SheetType.Worksheet, - _c)); - InternalToExternalEnumMappings.dashboardObjectType = new api_utils_1.EnumConverter((_d = {}, - _d[api_internal_contract_1.DashboardObjectType.Blank] = api_external_contract_1.DashboardObjectType.Blank, - _d[api_internal_contract_1.DashboardObjectType.Image] = api_external_contract_1.DashboardObjectType.Image, - _d[api_internal_contract_1.DashboardObjectType.Legend] = api_external_contract_1.DashboardObjectType.Legend, - _d[api_internal_contract_1.DashboardObjectType.PageFilter] = api_external_contract_1.DashboardObjectType.PageFilter, - _d[api_internal_contract_1.DashboardObjectType.ParameterControl] = api_external_contract_1.DashboardObjectType.ParameterControl, - _d[api_internal_contract_1.DashboardObjectType.QuickFilter] = api_external_contract_1.DashboardObjectType.QuickFilter, - _d[api_internal_contract_1.DashboardObjectType.Text] = api_external_contract_1.DashboardObjectType.Text, - _d[api_internal_contract_1.DashboardObjectType.Title] = api_external_contract_1.DashboardObjectType.Title, - _d[api_internal_contract_1.DashboardObjectType.WebPage] = api_external_contract_1.DashboardObjectType.WebPage, - _d[api_internal_contract_1.DashboardObjectType.Worksheet] = api_external_contract_1.DashboardObjectType.Worksheet, - _d)); - InternalToExternalEnumMappings.dataType = new api_utils_1.EnumConverter((_e = {}, - _e[api_internal_contract_1.DataType.Bool] = api_external_contract_1.DataType.Bool, - _e[api_internal_contract_1.DataType.Date] = api_external_contract_1.DataType.Date, - _e[api_internal_contract_1.DataType.DateTime] = api_external_contract_1.DataType.DateTime, - _e[api_internal_contract_1.DataType.Float] = api_external_contract_1.DataType.Float, - _e[api_internal_contract_1.DataType.Int] = api_external_contract_1.DataType.Int, - _e[api_internal_contract_1.DataType.String] = api_external_contract_1.DataType.String, - _e)); - InternalToExternalEnumMappings.filterUpdateType = new api_utils_1.EnumConverter((_f = {}, - _f[api_internal_contract_1.FilterUpdateType.Add] = api_external_contract_1.FilterUpdateType.Add, - _f[api_internal_contract_1.FilterUpdateType.All] = api_external_contract_1.FilterUpdateType.All, - _f[api_internal_contract_1.FilterUpdateType.Remove] = api_external_contract_1.FilterUpdateType.Remove, - _f[api_internal_contract_1.FilterUpdateType.Replace] = api_external_contract_1.FilterUpdateType.Replace, - _f)); - return InternalToExternalEnumMappings; - }()); - exports.InternalToExternalEnumMappings = InternalToExternalEnumMappings; - var _a, _b, _c, _d, _e, _f; - /* tslint:enable:typedef */ - - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var Sheet_1 = __webpack_require__(33); - var Dashboard = (function (_super) { - __extends(Dashboard, _super); - function Dashboard(dashboardImpl) { - var _this = _super.call(this, dashboardImpl) || this; - _this.dashboardImpl = dashboardImpl; - return _this; - } - Object.defineProperty(Dashboard.prototype, "worksheets", { - get: function () { - return this.dashboardImpl.worksheets; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Dashboard.prototype, "objects", { - get: function () { - throw new Error('API call not yet implemented'); - }, - enumerable: true, - configurable: true - }); - return Dashboard; - }(Sheet_1.Sheet)); - exports.Dashboard = Dashboard; - - -/***/ }, -/* 33 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var api_shared_1 = __webpack_require__(9); - var Sheet = (function (_super) { - __extends(Sheet, _super); - function Sheet(sheetImpl) { - var _this = _super.call(this) || this; - _this.sheetImpl = sheetImpl; - return _this; - } - Object.defineProperty(Sheet.prototype, "name", { - get: function () { - return this.sheetImpl.name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Sheet.prototype, "sheetType", { - get: function () { - return this.sheetImpl.sheetType; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Sheet.prototype, "size", { - get: function () { - throw new Error('API call not yet implemented'); - }, - enumerable: true, - configurable: true - }); - return Sheet; - }(api_shared_1.EventListenerManager)); - exports.Sheet = Sheet; - - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Implementation of the external DashboardContent namespace. - * This does not follow the Impl pattern as DashboardContent is - * currently just a (single) property bag. - */ - var DashboardContent = (function () { - function DashboardContent(_dashboard) { - this._dashboard = _dashboard; - } - Object.defineProperty(DashboardContent.prototype, "dashboard", { - get: function () { - return this._dashboard; - }, - enumerable: true, - configurable: true - }); - return DashboardContent; - }()); - exports.DashboardContent = DashboardContent; - - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_shared_1 = __webpack_require__(9); - /** - * Implementation of the external environment namespace. - * Environment does not follow the Impl pattern as it is - * just a property bag. - */ - var Environment = (function () { - function Environment(addInEnvironment) { - this._apiVersion = addInEnvironment.apiVersion; - this._context = api_shared_1.InternalToExternalEnumMappings.addInContext.convert(addInEnvironment.addInContext); - this._language = addInEnvironment.addInLanguage; - this._locale = addInEnvironment.addInLocale; - this._mode = api_shared_1.InternalToExternalEnumMappings.addInMode.convert(addInEnvironment.addInMode); - this._operatingSystem = addInEnvironment.operatingSystem; - this._tableauVersion = addInEnvironment.tableauVersion; - } - Object.defineProperty(Environment.prototype, "apiVersion", { - get: function () { - return this._apiVersion; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Environment.prototype, "context", { - get: function () { - return this._context; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Environment.prototype, "language", { - get: function () { - return this._language; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Environment.prototype, "locale", { - get: function () { - return this._locale; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Environment.prototype, "mode", { - get: function () { - return this._mode; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Environment.prototype, "operatingSystem", { - get: function () { - return this._operatingSystem; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Environment.prototype, "tableauVersion", { - get: function () { - return this._tableauVersion; - }, - enumerable: true, - configurable: true - }); - return Environment; - }()); - exports.Environment = Environment; - - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Implementation of the external settings namespace. - */ - var Settings = (function () { - function Settings(settingsImpl) { - this.settingsImpl = settingsImpl; - } - Settings.prototype.erase = function (key) { - this.settingsImpl.erase(key); - }; - Settings.prototype.get = function (key) { - return this.settingsImpl.get(key); - }; - Settings.prototype.getAll = function () { - return this.settingsImpl.getAll(); - }; - Object.defineProperty(Settings.prototype, "isModified", { - get: function () { - return this.settingsImpl.isModified; - }, - enumerable: true, - configurable: true - }); - Settings.prototype.saveAsync = function () { - return this.settingsImpl.saveAsync(); - }; - Settings.prototype.set = function (key, value) { - this.settingsImpl.set(key, value); - }; - return Settings; - }()); - exports.Settings = Settings; - - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_shared_1 = __webpack_require__(9); - var InitializationServiceImpl_1 = __webpack_require__(38); - var SettingsServiceImpl_1 = __webpack_require__(39); - function registerAllAddInServices(dispatcher) { - api_shared_1.ApiServiceRegistry.instance.registerService(new InitializationServiceImpl_1.InitializationServiceImpl(dispatcher)); - api_shared_1.ApiServiceRegistry.instance.registerService(new SettingsServiceImpl_1.SettingsServiceImpl(dispatcher)); - } - exports.registerAllAddInServices = registerAllAddInServices; - - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(3); - var InitializationServiceImpl = (function () { - function InitializationServiceImpl(dispatcher) { - this.dispatcher = dispatcher; - } - Object.defineProperty(InitializationServiceImpl.prototype, "serviceName", { - get: function () { - return "InitializationService" /* InitializationService */; - }, - enumerable: true, - configurable: true - }); - InitializationServiceImpl.prototype.initializeDashboardAddInAsync = function () { - // We don't need any parameters for this call because they are added in for us by the dispatcher - return this.dispatcher.execute(api_internal_contract_1.VerbId.InitializeAddIn, {}).then(function (response) { - // TODO - Validate return value - var result = response.result; - return result; - }); - }; - return InitializationServiceImpl; - }()); - exports.InitializationServiceImpl = InitializationServiceImpl; - - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(3); - var SettingsServiceImpl = (function () { - function SettingsServiceImpl(dispatcher) { - this.dispatcher = dispatcher; - } - Object.defineProperty(SettingsServiceImpl.prototype, "serviceName", { - get: function () { - return "SettingsService" /* SettingsService */; - }, - enumerable: true, - configurable: true - }); - SettingsServiceImpl.prototype.saveSettingsAsync = function (settings) { - var parameters = {}; - parameters[api_internal_contract_1.ParameterId.SettingsValues] = settings; - return this.dispatcher.execute(api_internal_contract_1.VerbId.SaveAddInSettings, parameters).then(function (value) { - var result = value.result; - if (!result || !result.settingsValues) { - throw new Error('Internal error saving settings.'); - } - return (result.settingsValues); - }); - }; - return SettingsServiceImpl; - }()); - exports.SettingsServiceImpl = SettingsServiceImpl; - - -/***/ }, -/* 40 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Represents the current version of the addin library - */ - var VersionNumber = (function () { - // private constructor so everyone uses the singleton instance - function VersionNumber(versionString) { - var parts = versionString.split('.').map(function (p) { return parseInt(p, 10); }); - if (parts.length !== 3) { - throw new Error('Invalid version number: ' + versionString); - } - this._major = parts[0]; - this._minor = parts[1]; - this._fix = parts[2]; - } - Object.defineProperty(VersionNumber, "Instance", { - /** - * Gets the singleton instance of the version number. - */ - get: function () { - return VersionNumber.instance; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(VersionNumber.prototype, "major", { - get: function () { - return this._major; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(VersionNumber.prototype, "minor", { - get: function () { - return this._minor; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(VersionNumber.prototype, "fix", { - get: function () { - return this._fix; - }, - enumerable: true, - configurable: true - }); - // Using some webpack tricks, we can inject this version into our code (kinda like c++ preprocessor stuff) - VersionNumber.instance = new VersionNumber(("0.2.0")); - return VersionNumber; - }()); - exports.VersionNumber = VersionNumber; - - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var api_external_contract_1 = __webpack_require__(42); - var api_internal_contract_1 = __webpack_require__(3); - var AddInSheetInfoImpl_1 = __webpack_require__(43); - var SheetImpl_1 = __webpack_require__(44); - var WorksheetImpl_1 = __webpack_require__(45); - var Worksheet_1 = __webpack_require__(46); - var DashboardImpl = (function (_super) { - __extends(DashboardImpl, _super); - function DashboardImpl(info, sheetPath) { - var _this = _super.call(this, new AddInSheetInfoImpl_1.AddInSheetInfoImpl(info.name, api_external_contract_1.SheetType.Dashboard)) || this; - _this._worksheets = new Array(); - // Process all the zones which are contained in this dashboard - for (var _i = 0, _a = info.zones; _i < _a.length; _i++) { - var zone = _a[_i]; - if (zone.zoneType === api_internal_contract_1.DashboardObjectType.Worksheet) { - var sheetInfo = new AddInSheetInfoImpl_1.AddInSheetInfoImpl(zone.name, api_external_contract_1.SheetType.Worksheet); - var vizId = { - worksheet: zone.name, - dashboard: info.name, - storyboard: sheetPath.storyboard, - flipboardZoneID: sheetPath.flipboardZoneID, - storyPointID: sheetPath.storyPointID - }; - var worksheetImpl = new WorksheetImpl_1.WorksheetImpl(sheetInfo, vizId); - _this._worksheets.push(new Worksheet_1.Worksheet(worksheetImpl)); - } - } - return _this; - } - Object.defineProperty(DashboardImpl.prototype, "worksheets", { - get: function () { - return this._worksheets; - }, - enumerable: true, - configurable: true - }); - return DashboardImpl; - }(SheetImpl_1.SheetImpl)); - exports.DashboardImpl = DashboardImpl; - - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export(__webpack_require__(15)); - - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var AddInSheetInfoImpl = (function () { - function AddInSheetInfoImpl(_name, _sheetType) { - this._name = _name; - this._sheetType = _sheetType; - } - Object.defineProperty(AddInSheetInfoImpl.prototype, "name", { - get: function () { - return this._name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(AddInSheetInfoImpl.prototype, "sheetType", { - get: function () { - return this._sheetType; - }, - enumerable: true, - configurable: true - }); - return AddInSheetInfoImpl; - }()); - exports.AddInSheetInfoImpl = AddInSheetInfoImpl; - - -/***/ }, -/* 44 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var SheetImpl = (function () { - function SheetImpl(sheetInfoImpl) { - this._name = sheetInfoImpl.name; - this._sheetType = sheetInfoImpl.sheetType; - } - Object.defineProperty(SheetImpl.prototype, "name", { - get: function () { - return this._name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(SheetImpl.prototype, "sheetType", { - get: function () { - return this._sheetType; - }, - enumerable: true, - configurable: true - }); - return SheetImpl; - }()); - exports.SheetImpl = SheetImpl; - - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var api_external_contract_1 = __webpack_require__(42); - var api_internal_contract_1 = __webpack_require__(3); - var api_shared_1 = __webpack_require__(9); - var SheetImpl_1 = __webpack_require__(44); - var visualIdsAreEqual = function (a, b) { - return a && b && - a.worksheet === b.worksheet && - a.dashboard === b.dashboard && - a.storyboard === b.storyboard && - a.storyPointID === b.storyPointID && - a.flipboardZoneID === b.flipboardZoneID; - }; - var WorksheetImpl = (function (_super) { - __extends(WorksheetImpl, _super); - function WorksheetImpl(sheetInfoImpl, _visualId) { - var _this = _super.call(this, sheetInfoImpl) || this; - _this._visualId = _visualId; - return _this; - } - /** - * Helper method which goes through and registers each event type this impl knows about - * with the NotificationService. It returns an array of SingleEventManager objects which - * can then be passed to an EventListenerManager to handle user registration / unregistration. - * - * @param {Worksheet} worksheet The worksheet object which will be included with the event notifications - * @returns {Array} Collection of event managers to pass to an EventListenerManager - */ - WorksheetImpl.prototype.initializeEvents = function (worksheet) { - var _this = this; - var results = new Array(); - var notificationService; - try { - notificationService = api_shared_1.ApiServiceRegistry.instance.getService("notification-service" /* Notification */); - } - catch (e) { - // If we don't have this service registered, just return - return results; - } - // Initialize all of the event managers we'll need (one for each event type) - var marksEvent = new api_shared_1.SingleEventManagerImpl(api_external_contract_1.TableauEventType.MarkSelectionChanged); - notificationService.registerHandler(api_internal_contract_1.NotificationId.SelectedMarksChanged, function (model) { - var visualId = model; - return visualIdsAreEqual(visualId, _this.visualId); - }, function (viz) { - marksEvent.triggerEvent(function () { return new api_shared_1.MarksSelectedEvent(worksheet); }); - }); - results.push(marksEvent); - // TODO - other event types - return results; - }; - Object.defineProperty(WorksheetImpl.prototype, "visualId", { - get: function () { - return this._visualId; - }, - enumerable: true, - configurable: true - }); - WorksheetImpl.prototype.applyFilterAsync = function (fieldName, values, updateType, options) { - var service = api_shared_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */); - return service.applyFilterAsync(this.visualId, fieldName, values, updateType, options); - }; - WorksheetImpl.prototype.applyRangeFilterAsync = function (fieldName, filterOptions) { - var service = api_shared_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */); - return service.applyRangeFilterAsync(this.visualId, fieldName, filterOptions); - }; - WorksheetImpl.prototype.clearFilterAsync = function (fieldName) { - var service = api_shared_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */); - return service.clearFilterAsync(this.visualId, fieldName); - }; - WorksheetImpl.prototype.getSelectedMarksAsync = function () { - var service = api_shared_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */); - return service.getSelectedMarksAsync(this.visualId); - }; - WorksheetImpl.prototype.getHighlightedMarksAsync = function () { - var service = api_shared_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */); - return service.getHighlightedMarksAsync(this.visualId); - }; - WorksheetImpl.prototype.getSummaryDataAsync = function (options) { - var service = api_shared_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */); - options = options || {}; - return service.getUnderlyingDataAsync(this.visualId, api_shared_1.GetDataType.Summary, !!options.ignoreAliases, !!options.ignoreSelection, true, 0); - }; - WorksheetImpl.prototype.getUnderlyingDataAsync = function (options) { - var service = api_shared_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */); - options = options || {}; - return service.getUnderlyingDataAsync(this.visualId, api_shared_1.GetDataType.Underlying, !!options.ignoreAliases, !!options.ignoreSelection, !!options.includeAllColumns, options.maxRows || 0); - }; - return WorksheetImpl; - }(SheetImpl_1.SheetImpl)); - exports.WorksheetImpl = WorksheetImpl; - - -/***/ }, -/* 46 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var Sheet_1 = __webpack_require__(33); - var Worksheet = (function (_super) { - __extends(Worksheet, _super); - function Worksheet(worksheetImpl) { - var _this = _super.call(this, worksheetImpl) || this; - _this.worksheetImpl = worksheetImpl; - // Call to initialize events and then call down to the event listener manager to handle things - _this.worksheetImpl.initializeEvents(_this).forEach(function (e) { return _this.addNewEventType(e); }); - return _this; - } - Object.defineProperty(Worksheet.prototype, "parentDashboard", { - get: function () { - throw new Error('API call not yet implemented'); - }, - enumerable: true, - configurable: true - }); - Worksheet.prototype.applyFilterAsync = function (fieldName, values, updateType, options) { - return this.worksheetImpl.applyFilterAsync(fieldName, values, updateType, options); - }; - Worksheet.prototype.applyRangeFilterAsync = function (fieldName, filterOptions) { - return this.worksheetImpl.applyRangeFilterAsync(fieldName, filterOptions); - }; - Worksheet.prototype.clearFilterAsync = function (fieldName) { - return this.worksheetImpl.clearFilterAsync(fieldName); - }; - Worksheet.prototype.getFiltersAsync = function () { - throw new Error('API call not yet implemented'); - }; - Worksheet.prototype.getSelectedMarksAsync = function () { - return this.worksheetImpl.getSelectedMarksAsync(); - }; - Worksheet.prototype.getHighlightedMarksAsync = function () { - return this.worksheetImpl.getHighlightedMarksAsync(); - }; - Worksheet.prototype.getSummaryDataAsync = function (options) { - return this.worksheetImpl.getSummaryDataAsync(options); - }; - Worksheet.prototype.getUnderlyingDataAsync = function (options) { - return this.worksheetImpl.getUnderlyingDataAsync(options); - }; - return Worksheet; - }(Sheet_1.Sheet)); - exports.Worksheet = Worksheet; - - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_shared_1 = __webpack_require__(9); - var api_utils_1 = __webpack_require__(48); - var SettingsImpl = (function () { - function SettingsImpl(settingsInfo) { - // Since promises can't be introspected for state, keep a variable that - // indicates a save is in progress, so that set/erase can't be called during a save. - this.saveInProgress = false; - this.initializeSettings(settingsInfo); - } - SettingsImpl.prototype.erase = function (key) { - api_utils_1.Param.verifyValue(key, 'key'); - // Only make a modification if we have the key already - if (this.currentSettings[key]) { - this.verifySettingsAreUnlocked(); - delete this.currentSettings[key]; - this._isModified = true; - } - }; - SettingsImpl.prototype.get = function (key) { - api_utils_1.Param.verifyValue(key, 'key'); - return this.currentSettings[key]; - }; - SettingsImpl.prototype.getAll = function () { - // Returns a mutable copy of the settings - return Object.assign({}, this.currentSettings); - }; - Object.defineProperty(SettingsImpl.prototype, "isModified", { - get: function () { - return this._isModified; - }, - enumerable: true, - configurable: true - }); - SettingsImpl.prototype.saveAsync = function () { - var _this = this; - this.verifySettingsAreUnlocked(); - // Just resolve immediately if settings are unchanged - if (!this._isModified) { - return Promise.resolve(this.currentSettings); - } - this.saveInProgress = true; - // Use the settings service to save settings to twb - var settingsService = api_shared_1.ApiServiceRegistry.instance.getService("SettingsService" /* SettingsService */); - return settingsService.saveSettingsAsync(this.currentSettings).then(function (newSettings) { - _this.saveInProgress = false; - _this._isModified = false; - Object.assign(_this.currentSettings, newSettings); - return newSettings; - }); - }; - SettingsImpl.prototype.set = function (key, value) { - api_utils_1.Param.verifyValue(key, 'key'); // Key shouldn't be an empty string. - api_utils_1.Param.verifyString(value, 'value'); // Empty string value is allowed. - this.verifySettingsAreUnlocked(); - this.currentSettings[key] = value; - this._isModified = true; - }; - SettingsImpl.prototype.initializeSettings = function (settingsInfo) { - api_utils_1.Param.verifyValue(settingsInfo, 'settingsInfo'); - api_utils_1.Param.verifyValue(settingsInfo.settingsValues, 'settingsInfo.SettingsValues'); - this.currentSettings = settingsInfo.settingsValues; - // Reset the isModified flag - this._isModified = false; - }; - /** - * This helper should be called before any local update to this.currentSettings. - * Checks if a current save call is still in progress and throws an error if so. - */ - SettingsImpl.prototype.verifySettingsAreUnlocked = function () { - if (this.saveInProgress) { - throw new Error('Async Save is in progress, updating settings is not allowed.'); - } - }; - return SettingsImpl; - }()); - exports.SettingsImpl = SettingsImpl; - - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - Object.defineProperty(exports, "__esModule", { value: true }); - var EnumConverter_1 = __webpack_require__(25); - exports.EnumConverter = EnumConverter_1.EnumConverter; - var Param_1 = __webpack_require__(26); - exports.Param = Param_1.Param; - - -/***/ } -/******/ ]) -}); -; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovLy93ZWJwYWNrL2Jvb3RzdHJhcCBhZGZhOTkyYzlkYTU1MWVlOTRmYiIsIndlYnBhY2s6Ly8vLi4vc3JjL0FkZEluQXBpLnRzIiwid2VicGFjazovLy8uLi9zcmMvRXh0ZXJuYWxOYW1lc3BhY2VzL0FkZEluLnRzIiwid2VicGFjazovLy8uLi9zcmMvSW50ZXJuYWwvQWRkSW5JbXBsLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9zcmMvQXBpSW50ZXJuYWxDb250cmFjdC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3Qvc3JjL2ludGVyZmFjZS9FbnVtcy50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3Qvc3JjL2ludGVyZmFjZS9JbnRlcm5hbEFwaURpc3BhdGNoZXIudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWludGVybmFsLWNvbnRyYWN0L3NyYy9pbnRlcmZhY2UvTm90aWZpY2F0aW9ucy50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3Qvc3JjL2ludGVyZmFjZS9QYXJhbWV0ZXJzLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9zcmMvaW50ZXJmYWNlL1ZlcmJzLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0FwaVNoYXJlZC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FdmVudExpc3RlbmVyTWFuYWdlci50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9Nb2RlbHMvR2V0RGF0YU1vZGVscy50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FeGNlcHRpb25zL1RhYmxlYXVFeGNlcHRpb25zLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0V2ZW50cy9NYXJrc1NlbGVjdGVkRXZlbnQudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWV4dGVybmFsLWNvbnRyYWN0L3NyYy9BcGlFeHRlcm5hbENvbnRyYWN0LnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1leHRlcm5hbC1jb250cmFjdC9zcmMvRW51bXMudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRXZlbnRzL1RhYmxlYXVXb3Jrc2hlZXRFdmVudC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FdmVudHMvVGFibGVhdVNoZWV0RXZlbnQudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRXZlbnRzL1RhYmxlYXVFdmVudC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9JbnRlcm5hbC9TaW5nbGVFdmVudE1hbmFnZXJJbXBsLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NlcnZpY2VzL0dldERhdGFTZXJ2aWNlLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NlcnZpY2VzL1JlZ2lzdGVyQWxsU2hhcmVkU2VydmljZXMudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvU2VydmljZXMvaW1wbC9GaWx0ZXJTZXJ2aWNlSW1wbC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktdXRpbHMvc3JjL0FwaVV0aWxzLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS11dGlscy9zcmMvRW51bUNvbnZlcnRlci50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktdXRpbHMvc3JjL1BhcmFtLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0VudW1NYXBwaW5ncy9FeHRlcm5hbFRvSW50ZXJuYWxFbnVtTWFwcGluZ3MudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvU2VydmljZXMvaW1wbC9HZXREYXRhU2VydmljZUltcGwudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvU2VydmljZXMvaW1wbC9Ob3RpZmljYXRpb25TZXJ2aWNlSW1wbC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9TZXJ2aWNlUmVnaXN0cnkudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRW51bU1hcHBpbmdzL0ludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncy50cyIsIndlYnBhY2s6Ly8vLi4vc3JjL0Rhc2hib2FyZC50cyIsIndlYnBhY2s6Ly8vLi4vc3JjL1NoZWV0LnRzIiwid2VicGFjazovLy8uLi9zcmMvRXh0ZXJuYWxOYW1lc3BhY2VzL0Rhc2hib2FyZENvbnRlbnQudHMiLCJ3ZWJwYWNrOi8vLy4uL3NyYy9FeHRlcm5hbE5hbWVzcGFjZXMvRW52aXJvbm1lbnQudHMiLCJ3ZWJwYWNrOi8vLy4uL3NyYy9FeHRlcm5hbE5hbWVzcGFjZXMvU2V0dGluZ3MudHMiLCJ3ZWJwYWNrOi8vLy4uL3NyYy9TZXJ2aWNlcy9SZWdpc3RlckFsbEFkZEluU2VydmljZXMudHMiLCJ3ZWJwYWNrOi8vLy4uL3NyYy9TZXJ2aWNlcy9JbXBsL0luaXRpYWxpemF0aW9uU2VydmljZUltcGwudHMiLCJ3ZWJwYWNrOi8vLy4uL3NyYy9TZXJ2aWNlcy9JbXBsL1NldHRpbmdzU2VydmljZUltcGwudHMiLCJ3ZWJwYWNrOi8vLy4uL3NyYy9WZXJzaW9uTnVtYmVyLnRzIiwid2VicGFjazovLy8uLi9zcmMvSW50ZXJuYWwvRGFzaGJvYXJkSW1wbC50cyIsIndlYnBhY2s6Ly8vLi4vc3JjL0ludGVybmFsL0FkZEluU2hlZXRJbmZvSW1wbC50cyIsIndlYnBhY2s6Ly8vLi4vc3JjL0ludGVybmFsL1NoZWV0SW1wbC50cyIsIndlYnBhY2s6Ly8vLi4vc3JjL0ludGVybmFsL1dvcmtzaGVldEltcGwudHMiLCJ3ZWJwYWNrOi8vLy4uL3NyYy9Xb3Jrc2hlZXQudHMiLCJ3ZWJwYWNrOi8vLy4uL3NyYy9JbnRlcm5hbC9TZXR0aW5nc0ltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELE87QUNWQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx1QkFBZTtBQUNmO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOzs7Ozs7OztBQ3RDQTs7OztJQUlHOztBQUVILDJGQUEwRjtBQUMxRiw2RkFBNEY7QUFDNUYsbUJBQWtCO0FBRWxCLHNDQUFtRDtBQUNuRCwwQ0FBaUQ7QUFFakQsS0FBTSxTQUFTLEdBQUcsSUFBSSxxQkFBUyxFQUFFLENBQUM7QUFDckIsY0FBSyxHQUFHLElBQUksYUFBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRTFDLGdCQUFlO0FBQ2YsdURBR3dDO0FBRnRDLG9FQUFnQjtBQUNoQix3REFBVTs7Ozs7Ozs7O0FDVFo7O0lBRUc7QUFDSDtLQUNFLGVBQTJCLFNBQW9CO1NBQXBCLGNBQVMsR0FBVCxTQUFTLENBQVc7U0FDN0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7S0FDN0IsQ0FBQztLQUVELHNCQUFXLG1DQUFnQjtjQUEzQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDO1NBQ3pDLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsOEJBQVc7Y0FBdEI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7U0FDcEMsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVywyQkFBUTtjQUFuQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztTQUNqQyxDQUFDOzs7UUFBQTtLQUVELHNCQUFXLHFCQUFFO2NBQWI7YUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7U0FDbEQsQ0FBQzs7O1FBQUE7S0FFTSwrQkFBZSxHQUF0QjtTQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSxDQUFDO0tBQzFDLENBQUM7S0FDSCxZQUFDO0FBQUQsRUFBQztBQXhCWSx1QkFBSzs7Ozs7Ozs7O0FDYmxCLHNEQU13QztBQUN4QywyQ0FBb0Y7QUFFcEYsMkNBQXlDO0FBQ3pDLGtEQUEwRTtBQUMxRSw2Q0FBZ0U7QUFDaEUsMENBQTBEO0FBRzFELDBEQUFnRjtBQUNoRiwrQ0FBaUQ7QUFDakQsK0NBQWdEO0FBQ2hELDhDQUE4QztBQUU5QztLQUFBO0tBd0RBLENBQUM7S0FqRFEsbUNBQWUsR0FBdEI7U0FBQSxpQkFlQztTQWRDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQzthQUNoQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxPQUFPLENBQU8sVUFBQyxPQUFPLEVBQUUsTUFBTTtpQkFDN0QsdUdBQXVHO2lCQUN2RyxFQUFFLENBQUMsQ0FBQyxtREFBMkIsQ0FBQyw4QkFBOEIsRUFBRSxDQUFDLENBQUMsQ0FBQztxQkFDakUsdUNBQXVDO3FCQUN2QyxJQUFNLHdCQUF3QixHQUFHLG1EQUEyQixDQUFDLDJCQUEyQixFQUFFLENBQUM7cUJBQzNGLHdCQUF3QixDQUFDLElBQUksQ0FBQyxLQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQVEsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDakcsQ0FBQztpQkFBQyxJQUFJLENBQUMsQ0FBQztxQkFDTixNQUFNLENBQUMscURBQXFELENBQUMsQ0FBQztpQkFDaEUsQ0FBQzthQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0wsQ0FBQztTQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUM7S0FDcEMsQ0FBQztLQUVPLHdDQUFvQixHQUE1QixVQUE2QixVQUFpQztTQUE5RCxpQkFvQkM7U0FuQkMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLDZCQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7U0FFcEQsb0ZBQW9GO1NBQ3BGLHNDQUF5QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3RDLG1EQUF3QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBRXJDLDREQUE0RDtTQUM1RCxJQUFNLHFCQUFxQixHQUFHLCtCQUFrQixDQUFDLFFBQVEsQ0FBQyxVQUFVLHFEQUMxQixDQUFDO1NBRTNDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyw2QkFBNkIsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBTTthQUN0RSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7aUJBQ2hELE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQzthQUNoRCxDQUFDO2FBRUQsS0FBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUksQ0FBQywwQkFBMEIsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDL0gsS0FBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLHlCQUFXLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7YUFDNUQsS0FBSSxDQUFDLFFBQVEsR0FBRyxLQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDcEUsQ0FBQyxDQUFDLENBQUM7S0FDTCxDQUFDO0tBRU8sOENBQTBCLEdBQWxDLFVBQW1DLElBQXdCLEVBQUUsU0FBb0I7U0FDL0UsSUFBTSxhQUFhLEdBQUcsSUFBSSw2QkFBYSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztTQUN6RCxJQUFNLFNBQVMsR0FBRyxJQUFJLHFCQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDL0MsTUFBTSxDQUFDLElBQUksbUNBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDekMsQ0FBQztLQUVPLHNDQUFrQixHQUExQixVQUEyQixZQUErQjtTQUN4RCxJQUFNLFlBQVksR0FBRyxJQUFJLDJCQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDcEQsTUFBTSxDQUFDLElBQUksbUJBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztLQUNwQyxDQUFDO0tBQ0gsZ0JBQUM7QUFBRCxFQUFDO0FBeERZLCtCQUFTOzs7Ozs7OztBQ3BCdEI7Ozs7SUFJRzs7Ozs7QUFFSCxrQ0FBa0M7QUFDbEMsa0NBQWtEO0FBRWxELGtDQUEwQztBQUMxQyxrQ0FBdUM7QUFDdkMsa0NBQWtDOzs7Ozs7Ozs7QUNYbEMsS0FBWSxZQUlYO0FBSkQsWUFBWSxZQUFZO0tBQ3RCLG1DQUFtQjtLQUNuQixpQ0FBaUI7S0FDakIsbUNBQW1CO0FBQ3JCLEVBQUMsRUFKVyxZQUFZLEdBQVosb0JBQVksS0FBWixvQkFBWSxRQUl2QjtBQUVELEtBQVksU0FJWDtBQUpELFlBQVksU0FBUztLQUNuQixvQ0FBdUI7S0FDdkIsZ0NBQW1CO0tBQ25CLGdDQUFtQjtBQUNyQixFQUFDLEVBSlcsU0FBUyxHQUFULGlCQUFTLEtBQVQsaUJBQVMsUUFJcEI7QUFFRCxLQUFZLG1CQVlYO0FBWkQsWUFBWSxtQkFBbUI7S0FDN0Isc0NBQWU7S0FDZiw4Q0FBdUI7S0FDdkIsbURBQTRCO0tBQzVCLDZEQUFzQztLQUN0QyxpREFBMEI7S0FDMUIsd0NBQWlCO0tBQ2pCLHNDQUFlO0tBQ2Ysb0NBQWE7S0FDYixzQ0FBZTtLQUNmLDJDQUFvQjtLQUNwQixzQ0FBZTtBQUNqQixFQUFDLEVBWlcsbUJBQW1CLEdBQW5CLDJCQUFtQixLQUFuQiwyQkFBbUIsUUFZOUI7QUFFRCxLQUFZLFFBUVg7QUFSRCxZQUFZLFFBQVE7S0FDbEIsNkJBQWlCO0tBQ2pCLHVCQUFXO0tBQ1gsMkJBQWU7S0FDZix5QkFBYTtLQUNiLHlCQUFhO0tBQ2Isa0NBQXNCO0tBQ3RCLCtCQUFtQjtBQUNyQixFQUFDLEVBUlcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFRbkI7QUFFRCxLQUFZLGVBS1g7QUFMRCxZQUFZLGVBQWU7S0FDekIsb0NBQWlCO0tBQ2pCLG9DQUFpQjtLQUNqQixnQ0FBYTtLQUNiLHNDQUFtQjtBQUNyQixFQUFDLEVBTFcsZUFBZSxHQUFmLHVCQUFlLEtBQWYsdUJBQWUsUUFLMUI7QUFFRCxLQUFZLFNBS1g7QUFMRCxZQUFZLFNBQVM7S0FDbkIseUNBQTRCO0tBQzVCLDJFQUE4RDtLQUM5RCxnRUFBbUQ7S0FDbkQsbUVBQXNEO0FBQ3hELEVBQUMsRUFMVyxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQUtwQjtBQUVEOztJQUVHO0FBQ0gsS0FBWSxnQkFLWDtBQUxELFlBQVksZ0JBQWdCO0tBQzFCLCtCQUFXO0tBQ1gsK0JBQVc7S0FDWCx1Q0FBbUI7S0FDbkIscUNBQWlCO0FBQ25CLEVBQUMsRUFMVyxnQkFBZ0IsR0FBaEIsd0JBQWdCLEtBQWhCLHdCQUFnQixRQUszQjtBQUVELEtBQVksU0FLWDtBQUxELFlBQVksU0FBUztLQUNuQixvQ0FBdUI7S0FDdkIsNEJBQWU7S0FDZixvQ0FBdUI7S0FDdkIsNEJBQWU7QUFDakIsRUFBQyxFQUxXLFNBQVMsR0FBVCxpQkFBUyxLQUFULGlCQUFTLFFBS3BCO0FBRUQ7O0lBRUc7QUFDSCxLQUFZLFVBSVg7QUFKRCxZQUFZLFVBQVU7S0FDcEIsdUNBQXlCO0tBQ3pCLDZDQUErQjtLQUMvQixxQ0FBdUI7QUFDekIsRUFBQyxFQUpXLFVBQVUsR0FBVixrQkFBVSxLQUFWLGtCQUFVLFFBSXJCOzs7Ozs7Ozs7QUMzQ0QsS0FBaUIsMkJBQTJCLENBWTNDO0FBWkQsWUFBaUIsMkJBQTJCO0tBQzFDO1NBQ0UsTUFBTSxDQUFDLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQztLQUMzQyxDQUFDO0tBRmUsdURBQTJCLDhCQUUxQztLQUVEO1NBQ0UsTUFBTSxDQUFDLENBQUMsQ0FBQywyQkFBMkIsQ0FBQywyQkFBMkIsRUFBRSxDQUFDO0tBQ3JFLENBQUM7S0FGZSwwREFBOEIsaUNBRTdDO0tBRUQscUNBQTRDLFVBQTBDO1NBQ3BGLE1BQU0sQ0FBQywwQkFBMEIsR0FBRyxVQUFVLENBQUM7S0FDakQsQ0FBQztLQUZlLHVEQUEyQiw4QkFFMUM7QUFDSCxFQUFDLEVBWmdCLDJCQUEyQixHQUEzQixtQ0FBMkIsS0FBM0IsbUNBQTJCLFFBWTNDOzs7Ozs7Ozs7QUMzQ0QsS0FBWSxjQUVYO0FBRkQsWUFBWSxjQUFjO0tBQ3hCLGlFQUErQztBQUNqRCxFQUFDLEVBRlcsY0FBYyxHQUFkLHNCQUFjLEtBQWQsc0JBQWMsUUFFekI7Ozs7Ozs7OztBQ0ZELEtBQVksV0EwQlg7QUExQkQsWUFBWSxXQUFXO0tBQ3JCLDhDQUErQjtLQUMvQiwyREFBNEM7S0FDNUMseURBQTBDO0tBQzFDLHFDQUFzQjtLQUN0Qix1Q0FBd0I7S0FDeEIsK0NBQWdDO0tBQ2hDLG1EQUFvQztLQUNwQyx3REFBeUM7S0FDekMsbUNBQW9CO0tBQ3BCLDREQUE2QztLQUM3QywyRUFBNEQ7S0FDNUQsaURBQWtDO0tBQ2xDLDZDQUE4QjtLQUM5QixtREFBb0M7S0FFbkMsZ0JBQWdCO0tBQ2pCLHVDQUF3QjtLQUN4Qiw2Q0FBOEI7S0FDOUIsc0RBQXVDO0tBQ3ZDLDJDQUE0QjtLQUM1QixrREFBbUM7S0FDbkMsa0RBQW1DO0tBQ25DLGlFQUFrRDtLQUVsRCwrQ0FBZ0M7QUFDbEMsRUFBQyxFQTFCVyxXQUFXLEdBQVgsbUJBQVcsS0FBWCxtQkFBVyxRQTBCdEI7Ozs7Ozs7OztBQzFCRCw4RkFBNkY7QUFDN0YsS0FBWSxNQVVYO0FBVkQsWUFBWSxNQUFNO0tBQ2hCLHVEQUE2QztLQUM3QywyQ0FBaUM7S0FDakMsc0NBQTRCO0tBQzVCLCtDQUFxQztLQUNyQyxpREFBdUM7S0FDdkMsbURBQXlDO0tBQ3pDLG9EQUEwQztLQUMxQyxpREFBdUM7S0FDdkMsdURBQTZDO0FBQy9DLEVBQUMsRUFWVyxNQUFNLEdBQU4sY0FBTSxLQUFOLGNBQU0sUUFVakI7Ozs7Ozs7O0FDWEQ7Ozs7SUFJRzs7Ozs7QUFFSCxtQ0FBdUM7QUFFdkMsbUNBQXVDO0FBQ3ZDLG1DQUErQztBQUMvQyxtQ0FBNEM7QUFDNUMsbUNBQXNDO0FBQ3RDLG1DQUEyQztBQUMzQyxtQ0FBK0M7QUFDL0MsbUNBQWtEO0FBQ2xELG1DQUEwQztBQUcxQyxtQ0FBcUQ7QUFDckQsbUNBQTJDO0FBQzNDLG1DQUE4RDs7Ozs7Ozs7O0FDWDlEOzs7SUFHRztBQUNIO0tBR0U7U0FDRSxJQUFJLENBQUMscUJBQXFCLEdBQUcsRUFBRSxDQUFDO0tBQ2xDLENBQUM7S0FFTSwrQ0FBZ0IsR0FBdkIsVUFBd0IsU0FBMkIsRUFBRSxPQUE4QjtTQUNqRixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzFELE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQTRCLFNBQVcsQ0FBQyxDQUFDO1NBQzNELENBQUM7U0FFRCxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ3pFLENBQUM7S0FFTSxrREFBbUIsR0FBMUIsVUFBMkIsU0FBMkIsRUFBRSxPQUE4QjtTQUNwRixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzFELE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQTRCLFNBQVcsQ0FBQyxDQUFDO1NBQzNELENBQUM7U0FFRCxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQzVFLENBQUM7S0FFUyw4Q0FBZSxHQUF6QixVQUEwQixZQUFnQztTQUN4RCxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFlBQVksQ0FBQztLQUNwRSxDQUFDO0tBQ0gsMkJBQUM7QUFBRCxFQUFDO0FBMUJZLHFEQUFvQjs7Ozs7Ozs7O0FDTmpDO0tBR0UsbUJBQ1UsS0FBc0MsRUFDdEMsUUFBK0IsRUFDL0IsY0FBc0IsRUFDdEIsY0FBdUI7U0FIdkIsVUFBSyxHQUFMLEtBQUssQ0FBaUM7U0FDdEMsYUFBUSxHQUFSLFFBQVEsQ0FBdUI7U0FDL0IsbUJBQWMsR0FBZCxjQUFjLENBQVE7U0FDdEIsbUJBQWMsR0FBZCxjQUFjLENBQVM7U0FDM0IscUNBQXFDO1NBQ3JDLElBQUksQ0FBQyxLQUFLLEdBQUcsY0FBYyxHQUFHLG9CQUFvQixHQUFHLHVCQUF1QixDQUFDO0tBQ2pGLENBQUM7S0FFSCxzQkFBVywyQkFBSTtjQUFmO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDcEIsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVywyQkFBSTtjQUFmO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDcEIsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyw4QkFBTztjQUFsQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ3ZCLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsb0NBQWE7Y0FBeEI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUM3QixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLG9DQUFhO2NBQXhCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDN0IsQ0FBQzs7O1FBQUE7S0FDSCxnQkFBQztBQUFELEVBQUM7QUEvQlksK0JBQVM7QUFpQ3RCO0tBQ0UsZ0JBQ1UsVUFBa0IsRUFDbEIsU0FBbUIsRUFBRSxvQ0FBb0M7U0FDekQsYUFBc0IsRUFDdEIsTUFBYztTQUhkLGVBQVUsR0FBVixVQUFVLENBQVE7U0FDbEIsY0FBUyxHQUFULFNBQVMsQ0FBVTtTQUNuQixrQkFBYSxHQUFiLGFBQWEsQ0FBUztTQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFRO0tBQUcsQ0FBQztLQUU1QixzQkFBVyw2QkFBUztjQUFwQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQ3pCLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsNEJBQVE7Y0FBbkI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUN4QixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLGdDQUFZO2NBQXZCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7U0FDNUIsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyx5QkFBSztjQUFoQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3JCLENBQUM7OztRQUFBO0tBQ0gsYUFBQztBQUFELEVBQUM7QUF0QlkseUJBQU07QUF3Qm5CO0tBQ0UsMkJBQTJCO0tBQzNCLG1CQUNVLE1BQVcsRUFDWCxlQUF1QjtTQUR2QixXQUFNLEdBQU4sTUFBTSxDQUFLO1NBQ1gsb0JBQWUsR0FBZixlQUFlLENBQVE7S0FBRyxDQUFDO0tBRXJDLHNCQUFXLDRCQUFLO2NBQWhCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDckIsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyxxQ0FBYztjQUF6QjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO1NBQzlCLENBQUM7OztRQUFBO0tBRUgsZ0JBQUM7QUFBRCxFQUFDO0FBZFksK0JBQVM7Ozs7Ozs7OztBQ2hFdEI7S0FBQTtLQUVBLENBQUM7S0FBRCx3QkFBQztBQUFELEVBQUM7QUFGWSwrQ0FBaUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBOUIsdURBS3dDO0FBRXhDLHVEQUFnRTtBQUVoRTtLQUF3QyxzQ0FBcUI7S0FDM0QsNEJBQW1CLFNBQTRCO2dCQUM3QyxrQkFBTSx3Q0FBZ0IsQ0FBQyxvQkFBb0IsRUFBRSxTQUFTLENBQUM7S0FDekQsQ0FBQztLQUVNLDBDQUFhLEdBQXBCO1NBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMscUJBQXFCLEVBQUUsQ0FBQztLQUNoRCxDQUFDO0tBQ0gseUJBQUM7QUFBRCxFQUFDLENBUnVDLDZDQUFxQixHQVE1RDtBQVJZLGlEQUFrQjs7Ozs7Ozs7QUNUL0I7Ozs7SUFJRzs7Ozs7QUFHSCxtQ0FBd0I7Ozs7Ozs7O0FDUHhCLHVEQUFzRDtBQUN0RCwrQ0FBOEM7O0FBRTlDOztJQUVHO0FBQ0gsS0FBWSxZQUlYO0FBSkQsWUFBWSxZQUFZO0tBQ3RCLG1DQUFtQjtLQUNuQixpQ0FBaUI7S0FDakIsbUNBQW1CO0FBQ3JCLEVBQUMsRUFKVyxZQUFZLEdBQVosb0JBQVksS0FBWixvQkFBWSxRQUl2QjtBQUVEOztJQUVHO0FBQ0gsS0FBWSxTQUlYO0FBSkQsWUFBWSxTQUFTO0tBQ25CLG9DQUF1QjtLQUN2QixnQ0FBbUI7S0FDbkIsZ0NBQW1CO0FBQ3JCLEVBQUMsRUFKVyxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQUlwQjtBQUVEOztJQUVHO0FBQ0gsS0FBWSxtQkFZWDtBQVpELFlBQVksbUJBQW1CO0tBQzdCLHNDQUFlO0tBQ2YsOENBQXVCO0tBQ3ZCLG1EQUE0QjtLQUM1Qiw2REFBc0M7S0FDdEMsaURBQTBCO0tBQzFCLHdDQUFpQjtLQUNqQixzQ0FBZTtLQUNmLG9DQUFhO0tBQ2Isc0NBQWU7S0FDZiwyQ0FBb0I7S0FDcEIsc0NBQWU7QUFDakIsRUFBQyxFQVpXLG1CQUFtQixHQUFuQiwyQkFBbUIsS0FBbkIsMkJBQW1CLFFBWTlCO0FBRUQ7O0lBRUc7QUFDSCxLQUFZLFFBUVg7QUFSRCxZQUFZLFFBQVE7S0FDbEIsNkJBQWlCO0tBQ2pCLHVCQUFXO0tBQ1gsMkJBQWU7S0FDZix5QkFBYTtLQUNiLHlCQUFhO0tBQ2Isa0NBQXNCO0tBQ3RCLCtCQUFtQjtBQUNyQixFQUFDLEVBUlcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFRbkI7QUFFRDs7SUFFRztBQUNILEtBQVksYUFPWDtBQVBELFlBQVksYUFBYTtLQUN2Qiw4QkFBYTtLQUNiLGlDQUFnQjtLQUNoQiw4QkFBYTtLQUNiLGlDQUFnQjtLQUNoQixvQ0FBbUI7S0FDbkIsbUNBQWtCO0FBQ3BCLEVBQUMsRUFQVyxhQUFhLEdBQWIscUJBQWEsS0FBYixxQkFBYSxRQU94QjtBQUVEOztJQUVHO0FBQ0gsS0FBWSxlQUdYO0FBSEQsWUFBWSxlQUFlO0tBQ3pCLG1EQUFnQztLQUNoQywrQ0FBNEI7QUFDOUIsRUFBQyxFQUhXLGVBQWUsR0FBZix1QkFBZSxLQUFmLHVCQUFlLFFBRzFCO0FBRUQ7O0lBRUc7QUFDSCxLQUFZLFVBNkRYO0FBN0RELFlBQVksVUFBVTtLQUNwQjs7UUFFRztLQUNILHVEQUF5QztLQUN6Qzs7UUFFRztLQUNILDBEQUE0QztLQUM1Qzs7UUFFRztLQUNILG9FQUFzRDtLQUN0RDs7UUFFRztLQUNILDhDQUFnQztLQUNoQzs7UUFFRztLQUNILDRFQUE4RDtLQUM5RDs7UUFFRztLQUNILDJEQUE2QztLQUM3Qzs7UUFFRztLQUNILDZEQUErQztLQUMvQzs7UUFFRztLQUNILGtFQUFvRDtLQUNwRDs7UUFFRztLQUNILG9FQUFzRDtLQUN0RDs7UUFFRztLQUNILG9EQUFzQztLQUN0Qzs7UUFFRztLQUNILDZEQUErQztLQUMvQzs7UUFFRztLQUNILHdFQUEwRDtLQUMxRDs7UUFFRztLQUNILCtEQUFpRDtLQUNqRDs7UUFFRztLQUNILDhEQUFnRDtLQUNoRDs7UUFFRztLQUNILDZEQUErQztBQUNqRCxFQUFDLEVBN0RXLFVBQVUsR0FBVixrQkFBVSxLQUFWLGtCQUFVLFFBNkRyQjtBQUVEOztJQUVHO0FBQ0gsS0FBWSxtQkF3Q1g7QUF4Q0QsWUFBWSxtQkFBbUI7S0FDN0Isa0NBQVc7S0FDWCxrQ0FBVztLQUNYLGtDQUFXO0tBQ1gsa0NBQVc7S0FDWCxzQ0FBZTtLQUNmLHdDQUFpQjtLQUNqQixrQ0FBVztLQUNYLG9DQUFhO0tBQ2Isc0NBQWU7S0FDZix3Q0FBaUI7S0FDakIsd0NBQWlCO0tBQ2pCLG9DQUFhO0tBQ2Isb0NBQWE7S0FDYixvQ0FBYTtLQUNiLGtDQUFXO0tBQ1gsc0NBQWU7S0FDZixrQ0FBVztLQUNYLG9DQUFhO0tBQ2Isd0NBQWlCO0tBQ2pCLHdDQUFpQjtLQUNqQixvQ0FBYTtLQUNiLDBDQUFtQjtLQUNuQiwrQ0FBd0I7S0FDeEIsa0NBQVc7S0FDWCxrQ0FBVztLQUNYLCtDQUF3QjtLQUN4Qiw2Q0FBc0I7S0FDdEIsaURBQTBCO0tBQzFCLCtDQUF3QjtLQUN4Qiw2Q0FBc0I7S0FDdEIsK0NBQXdCO0tBQ3hCLG1EQUE0QjtLQUM1QixtREFBNEI7S0FDNUIsd0NBQWlCO0tBQ2pCLHdDQUFpQjtLQUNqQiw0Q0FBcUI7S0FDckIsNENBQXFCO0tBQ3JCLHVDQUFnQjtLQUNoQixvQ0FBYTtBQUNmLEVBQUMsRUF4Q1csbUJBQW1CLEdBQW5CLDJCQUFtQixLQUFuQiwyQkFBbUIsUUF3QzlCO0FBRUQ7O0lBRUc7QUFDSCxLQUFZLGFBSVg7QUFKRCxZQUFZLGFBQWE7S0FDdkIsd0NBQXVCO0tBQ3ZCLG9DQUFtQjtLQUNuQixvQ0FBbUI7QUFDckIsRUFBQyxFQUpXLGFBQWEsR0FBYixxQkFBYSxLQUFiLHFCQUFhLFFBSXhCO0FBRUQ7O0lBRUc7QUFDSCxLQUFZLFVBS1g7QUFMRCxZQUFZLFVBQVU7S0FDcEIseUNBQTJCO0tBQzNCLDJDQUE2QjtLQUM3QiwyQ0FBNkI7S0FDN0IsNENBQThCO0FBQ2hDLEVBQUMsRUFMVyxVQUFVLEdBQVYsa0JBQVUsS0FBVixrQkFBVSxRQUtyQjtBQUVEOztJQUVHO0FBQ0gsS0FBWSxnQkFLWDtBQUxELFlBQVksZ0JBQWdCO0tBQzFCLCtCQUFXO0tBQ1gsK0JBQVc7S0FDWCx1Q0FBbUI7S0FDbkIscUNBQWlCO0FBQ25CLEVBQUMsRUFMVyxnQkFBZ0IsR0FBaEIsd0JBQWdCLEtBQWhCLHdCQUFnQixRQUszQjtBQUVEOztJQUVHO0FBQ0gsS0FBWSxVQUlYO0FBSkQsWUFBWSxVQUFVO0tBQ3BCLHdDQUEwQjtLQUMxQiwrQ0FBaUM7S0FDakMsc0NBQXdCO0FBQzFCLEVBQUMsRUFKVyxVQUFVLEdBQVYsa0JBQVUsS0FBVixrQkFBVSxRQUlyQjtBQUVEOztJQUVHO0FBQ0gsS0FBWSxVQVNYO0FBVEQsWUFBWSxVQUFVO0tBQ3BCLDZCQUFlO0tBQ2YsbUNBQXFCO0tBQ3JCLCtCQUFpQjtLQUNqQiw2QkFBZTtLQUNmLDJCQUFhO0tBQ2IsNkJBQWU7S0FDZixpQ0FBbUI7S0FDbkIsaUNBQW1CO0FBQ3JCLEVBQUMsRUFUVyxVQUFVLEdBQVYsa0JBQVUsS0FBVixrQkFBVSxRQVNyQjtBQUVEOztJQUVHO0FBQ0gsS0FBWSxTQUtYO0FBTEQsWUFBWSxTQUFTO0tBQ25CLG9DQUF1QjtLQUN2Qiw0QkFBZTtLQUNmLG9DQUF1QjtLQUN2Qiw2QkFBZ0I7QUFDbEIsRUFBQyxFQUxXLFNBQVMsR0FBVCxpQkFBUyxLQUFULGlCQUFTLFFBS3BCO0FBQ0Q7O0lBRUc7QUFDSCxLQUFZLGdCQUdYO0FBSEQsWUFBWSxnQkFBZ0I7S0FDMUIsd0RBQXdEO0tBQ3hELG1FQUErQztBQUNqRCxFQUFDLEVBSFcsZ0JBQWdCLEdBQWhCLHdCQUFnQixLQUFoQix3QkFBZ0IsUUFHM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNuUEQsbURBQXdEO0FBRXhEO0tBQTJDLHlDQUFpQjtLQU8xRCwrQkFBbUIsSUFBc0IsRUFBRSxTQUE0QjtTQUF2RSxZQUNFLGtCQUFNLElBQUksRUFBRSxTQUFTLENBQUMsU0FHdkI7U0FEQyxLQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQzs7S0FDOUIsQ0FBQztLQVJELHNCQUFXLDRDQUFTO2NBQXBCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDekIsQ0FBQzs7O1FBQUE7S0FPSCw0QkFBQztBQUFELEVBQUMsQ0FaMEMscUNBQWlCLEdBWTNEO0FBWlksdURBQXFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDRmxDLDhDQUE4QztBQUU5QztLQUF1QyxxQ0FBWTtLQU9qRCwyQkFBbUIsSUFBc0IsRUFBRSxLQUFvQjtTQUEvRCxZQUNFLGtCQUFNLElBQUksQ0FBQyxTQUdaO1NBREMsS0FBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7O0tBQ3RCLENBQUM7S0FSRCxzQkFBVyxvQ0FBSztjQUFoQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3JCLENBQUM7OztRQUFBO0tBT0gsd0JBQUM7QUFBRCxFQUFDLENBWnNDLDJCQUFZLEdBWWxEO0FBWlksK0NBQWlCOzs7Ozs7Ozs7QUNOOUI7S0FHRSxzQkFBbUIsSUFBc0I7U0FDdkMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7S0FDcEIsQ0FBQztLQUVELHNCQUFXLDhCQUFJO2NBQWY7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNwQixDQUFDOzs7UUFBQTtLQUNILG1CQUFDO0FBQUQsRUFBQztBQVZZLHFDQUFZOzs7Ozs7Ozs7QUNFekI7Ozs7SUFJRztBQUNIO0tBSUUsZ0NBQW1CLFNBQTJCO1NBQzVDLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1NBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0tBQ3JCLENBQUM7S0FFRCxzQkFBVyw2Q0FBUztjQUFwQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQ3pCLENBQUM7OztRQUFBO0tBRU0saURBQWdCLEdBQXZCLFVBQXdCLE9BQXVDO1NBQS9ELGlCQUdDO1NBRkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDNUIsTUFBTSxDQUFDLGNBQU0sWUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxFQUFqQyxDQUFpQyxDQUFDO0tBQ2pELENBQUM7S0FFTSxvREFBbUIsR0FBMUIsVUFBMkIsT0FBdUM7U0FDaEUsSUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7U0FDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFDLElBQUksUUFBQyxLQUFLLE9BQU8sRUFBYixDQUFhLENBQUMsQ0FBQztTQUN6RCxNQUFNLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO0tBQzVDLENBQUM7S0FFTSw2Q0FBWSxHQUFuQixVQUFvQixjQUFnQztTQUNsRCxHQUFHLENBQUMsQ0FBa0IsVUFBYSxFQUFiLFNBQUksQ0FBQyxRQUFRLEVBQWIsY0FBYSxFQUFiLElBQWE7YUFBOUIsSUFBTSxPQUFPO2FBQ2hCLElBQUksQ0FBQztpQkFDSCxJQUFNLFVBQVUsR0FBRyxjQUFjLEVBQUUsQ0FBQztpQkFDcEMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3RCLENBQUM7YUFBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNYLGlHQUFpRztpQkFDakcsUUFBUSxDQUFDO2FBQ1gsQ0FBQztVQUNGO0tBQ0gsQ0FBQztLQUNILDZCQUFDO0FBQUQsRUFBQztBQW5DWSx5REFBc0I7Ozs7Ozs7OztBQ0huQzs7SUFFRztBQUNILEtBQVksV0FHWDtBQUhELFlBQVksV0FBVztLQUNyQixrQ0FBbUI7S0FDbkIsd0NBQXlCO0FBQzNCLEVBQUMsRUFIVyxXQUFXLEdBQVgsbUJBQVcsS0FBWCxtQkFBVyxRQUd0Qjs7Ozs7Ozs7O0FDVkQsbURBQTZEO0FBQzdELG9EQUErRDtBQUMvRCx5REFBeUU7QUFDekUsaURBQXVEO0FBRXZELG9DQUEwQyxVQUFpQztLQUN6RSxvQ0FBa0IsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksdUNBQWtCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztLQUNoRixvQ0FBa0IsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUkscUNBQWlCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztLQUMvRSxvQ0FBa0IsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksaURBQXVCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztLQUNyRiw4QkFBOEI7QUFDaEMsRUFBQztBQUxELCtEQUtDOzs7Ozs7Ozs7QUNaRCx1REFLd0M7QUFDeEMsdURBT3dDO0FBQ3hDLDJDQUEyQztBQUUzQyxnRUFBb0g7QUFLcEg7S0FHRSwyQkFBbUIsVUFBaUM7U0FDbEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7S0FDL0IsQ0FBQztLQUVELHNCQUFXLDBDQUFXO2NBQXRCO2FBQ0UsTUFBTSwrQkFBcUI7U0FDN0IsQ0FBQzs7O1FBQUE7S0FFTSw0Q0FBZ0IsR0FBdkIsVUFDRSxRQUFrQixFQUNsQixTQUFpQixFQUNqQixNQUFxQixFQUNyQixVQUE0QixFQUM1QixhQUE0QjtTQUMxQixFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFLLENBQUMsZ0JBQWdCLENBQW1CLFVBQVUsRUFBRSx3Q0FBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUM1RSxNQUFNLElBQUksS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7U0FDbEUsQ0FBQztTQUNELElBQU0sSUFBSSxHQUFHLDhCQUFNLENBQUMsc0JBQXNCLENBQUM7U0FDM0MsSUFBTSxVQUFVLEdBQXNCLEVBQUUsQ0FBQztTQUN6QyxVQUFVLENBQUMsbUNBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxRQUFRLENBQUM7U0FDNUMsVUFBVSxDQUFDLG1DQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsU0FBUyxDQUFDO1NBQzlDLFVBQVUsQ0FBQyxtQ0FBVyxDQUFDLFlBQVksQ0FBQyxHQUFHLE1BQU0sQ0FBQztTQUM5QyxVQUFVLENBQUMsbUNBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLFVBQVUsQ0FBQztTQUN0RCxVQUFVLENBQUMsbUNBQVcsQ0FBQyxhQUFhLENBQUM7YUFDbkMsQ0FBQyxhQUFhLEtBQUssU0FBUyxJQUFJLGFBQWEsQ0FBQyxhQUFhLEtBQUssU0FBUyxDQUFDLEdBQUcsS0FBSyxHQUFHLGFBQWEsQ0FBQyxhQUFhLENBQUM7U0FFbkgsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQVMsa0JBQVE7YUFDcEUsSUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLE1BQXNCLENBQUM7YUFDOUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLEtBQUssSUFBSSxJQUFJLEtBQUssQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNqRSxxREFBcUQ7aUJBQ3JELE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQy9ELENBQUM7YUFDRCxNQUFNLENBQUMsU0FBUyxDQUFDO1NBQ25CLENBQUMsQ0FBQyxDQUFDO0tBQ0wsQ0FBQztLQUVJLGlEQUFxQixHQUE1QixVQUE2QixRQUFrQixFQUFFLFNBQWlCLEVBQUUsYUFBaUM7U0FDbkcsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO2FBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztTQUMzRCxDQUFDO1NBQ0QsaUJBQUssQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUVqRSxJQUFNLElBQUksR0FBRyw4QkFBTSxDQUFDLGdCQUFnQixDQUFDO1NBQ3JDLElBQU0sVUFBVSxHQUFzQixFQUFFLENBQUM7U0FFekMsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDdEIsSUFBSSxHQUFHLFNBQWlCLENBQUM7YUFDekIsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsWUFBWSxJQUFJLENBQUMsQ0FBQyxDQUFDO2lCQUN0QyxHQUFHLEdBQUcsaUJBQUssQ0FBQyx3QkFBd0IsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDMUQsQ0FBQzthQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNOLEdBQUcsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDO2FBQzFCLENBQUM7YUFDRCxVQUFVLENBQUMsbUNBQVcsQ0FBQyxjQUFjLENBQUMsR0FBRyxHQUFHLENBQUM7U0FDL0MsQ0FBQztTQUVELEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ3RCLElBQUksR0FBRyxTQUFpQixDQUFDO2FBQ3pCLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDdEMsR0FBRyxHQUFHLGlCQUFLLENBQUMsd0JBQXdCLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzFELENBQUM7YUFBQyxJQUFJLENBQUMsQ0FBQztpQkFDTixHQUFHLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQzthQUMxQixDQUFDO2FBQ0QsVUFBVSxDQUFDLG1DQUFXLENBQUMsY0FBYyxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQy9DLENBQUM7U0FFRCxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQzthQUM3QixFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFLLENBQUMsZ0JBQWdCLENBQWEsYUFBYSxDQUFDLFVBQVUsRUFBRSxrQ0FBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUM5RSxNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7YUFDNUQsQ0FBQzthQUNELFVBQVUsQ0FBQyxtQ0FBVyxDQUFDLHFCQUFxQixDQUFDLEdBQUcsK0RBQWEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUM5RyxDQUFDO1NBQ0QsVUFBVSxDQUFDLG1DQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsU0FBUyxDQUFDO1NBQzlDLFVBQVUsQ0FBQyxtQ0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLFFBQVEsQ0FBQztTQUU1QyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBUyxrQkFBUTthQUNwRSxNQUFNLENBQUMsU0FBUyxDQUFDO1NBQ25CLENBQUMsQ0FBQyxDQUFDO0tBQ0wsQ0FBQztLQUVNLDRDQUFnQixHQUF2QixVQUF3QixRQUFrQixFQUFFLFNBQWlCO1NBQzNELElBQU0sSUFBSSxHQUFHLDhCQUFNLENBQUMsV0FBVyxDQUFDO1NBQ2hDLElBQUksVUFBVSxHQUFzQixFQUFFLENBQUM7U0FDdkMsVUFBVSxDQUFDLG1DQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsUUFBUSxDQUFDO1NBQzVDLFVBQVUsQ0FBQyxtQ0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztTQUM5QyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBUyxrQkFBUTthQUNwRSxNQUFNLENBQUMsU0FBUyxDQUFDO1NBQ25CLENBQUMsQ0FBQyxDQUFDO0tBQ0wsQ0FBQztLQUNILHdCQUFDO0FBQUQsRUFBQztBQTNGWSwrQ0FBaUI7Ozs7Ozs7O0FuQnJCOUI7Ozs7SUFJRzs7Ozs7QUFFSCxrQ0FBa0M7QUFDbEMsa0NBQWtEO0FBRWxELGtDQUEwQztBQUMxQyxrQ0FBdUM7QUFDdkMsa0NBQWtDOzs7Ozs7OztBb0JYbEM7Ozs7SUFJRzs7QUFFSCwrQ0FBZ0Q7QUFBdkMsc0RBQWE7QUFDdEIsdUNBQWdDO0FBQXZCLDhCQUFLOzs7Ozs7Ozs7QUNQZDs7O0lBR0c7QUFDSDtLQUNFLHVCQUNVLFFBQWtELEVBQ2xELFVBQTZCO1NBRDdCLGFBQVEsR0FBUixRQUFRLENBQTBDO1NBQ2xELGVBQVUsR0FBVixVQUFVLENBQW1CO0tBQUksQ0FBQztLQUVyQywrQkFBTyxHQUFkLFVBQWUsT0FBb0IsRUFBRSxjQUF3QjtTQUMzRCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDMUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBaUIsQ0FBQyxDQUFDO1NBQzFDLENBQUM7U0FFRCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLFNBQVMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7YUFDckQsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDekIsQ0FBQztTQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLEdBQUcsT0FBTyxDQUFDLENBQUM7S0FDdEQsQ0FBQztLQUNILG9CQUFDO0FBQUQsRUFBQztBQWhCWSx1Q0FBYTs7Ozs7Ozs7O0FDSjFCO0tBQUE7S0F5R0EsQ0FBQztLQXhHQzs7Ozs7OztRQU9HO0tBQ0gsNkJBQTZCO0tBQ2YsaUJBQVcsR0FBekIsVUFBMEIsYUFBa0IsRUFBRSxZQUFvQjtTQUNoRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7YUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsR0FBRyxZQUFZLENBQUMsQ0FBQztTQUNwRSxDQUFDO0tBQ0gsQ0FBQztLQUVEOzs7Ozs7UUFNRztLQUNXLGtCQUFZLEdBQTFCLFVBQTJCLGFBQXFCLEVBQUUsWUFBb0I7U0FDcEUsRUFBRSxDQUFDLENBQUMsYUFBYSxLQUFLLElBQUksSUFBSSxhQUFhLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQzthQUMxRCxNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxHQUFHLFlBQVksQ0FBQyxDQUFDO1NBQzNFLENBQUM7S0FDSCxDQUFDO0tBRUQ7Ozs7Ozs7UUFPRztLQUNILDJCQUEyQjtLQUNiLHNCQUFnQixHQUE5QixVQUF5QyxLQUFlLEVBQUUsUUFBYTtTQUNyRSxJQUFJLE9BQU8sR0FBWSxLQUFLLENBQUM7U0FDN0IsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQyxPQUFPO2FBQ3BDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO2lCQUMzQyxPQUFPLEdBQUcsSUFBSSxDQUFDO2FBQ2pCLENBQUM7U0FDSCxDQUFDLENBQUMsQ0FBQztTQUNILE1BQU0sQ0FBQyxPQUFPLENBQUM7S0FDakIsQ0FBQztLQUNELDBCQUEwQjtLQUUxQjs7O1FBR0c7S0FDVyw4QkFBd0IsR0FBdEMsVUFBdUMsSUFBVTtTQUMvQyxJQUFNLElBQUksR0FBVyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDM0MsSUFBTSxLQUFLLEdBQVcsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUM3QyxJQUFNLEdBQUcsR0FBVyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDdEMsSUFBTSxFQUFFLEdBQVcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3RDLElBQU0sRUFBRSxHQUFXLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN4QyxJQUFNLEdBQUcsR0FBVyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDekMsTUFBTSxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsS0FBSyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7S0FDMUUsQ0FBQztLQUVEOzs7O1FBSUc7S0FDSCwyQkFBMkI7S0FDYiwwQkFBb0IsR0FBbEMsVUFBbUMsR0FBUSxFQUFFLEdBQVE7U0FDckQsMEJBQTBCO1NBQ3hCLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUM7U0FDL0UsQ0FBQztTQUVELEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZELE1BQU0sSUFBSSxLQUFLLENBQUMsNEVBQTRFLENBQUMsQ0FBQztTQUNoRyxDQUFDO1NBRUQsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdkQsTUFBTSxJQUFJLEtBQUssQ0FBQyw0RUFBNEUsQ0FBQyxDQUFDO1NBQ2hHLENBQUM7U0FFRCxFQUFFLENBQUMsQ0FBQyxPQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssT0FBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLDJFQUEyRSxDQUFDLENBQUM7U0FDL0YsQ0FBQztLQUNILENBQUM7S0FFRDs7UUFFRztLQUNILDJCQUEyQjtLQUNiLGtCQUFZLEdBQTFCLFVBQTJCLEtBQVU7U0FDbkMsTUFBTSxDQUFDLE9BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxRQUFRLElBQUksS0FBSyxZQUFZLE1BQU0sQ0FBQztLQUMvRCxDQUFDO0tBQ0QsMEJBQTBCO0tBRTFCOztRQUVHO0tBQ0gsMkJBQTJCO0tBQ2IsZ0JBQVUsR0FBeEIsVUFBeUIsS0FBVTtTQUNqQyxNQUFNLENBQUMsS0FBSyxZQUFZLElBQUksQ0FBQztLQUMvQixDQUFDO0tBRUgsWUFBQztBQUFELEVBQUM7QUF6R1ksdUJBQUs7Ozs7Ozs7OztBQ0FsQix1REFBa0Y7QUFDbEYsdURBQWtGO0FBRWxGLDJDQUFtRDtBQUVuRCx5RkFBd0Y7QUFDeEY7OztJQUdHO0FBQ0g7S0FBQTtLQU1BLENBQUM7S0FMZSwwQ0FBVyxHQUFHLElBQUkseUJBQWE7U0FDM0MsR0FBQyxrQ0FBa0IsQ0FBQyxTQUFTLElBQUcsa0NBQWtCLENBQUMsU0FBUztTQUM1RCxHQUFDLGtDQUFrQixDQUFDLGFBQWEsSUFBRyxrQ0FBa0IsQ0FBQyxhQUFhO1NBQ3BFLEdBQUMsa0NBQWtCLENBQUMsYUFBYSxJQUFHLGtDQUFrQixDQUFDLFVBQVU7YUFDakUsQ0FBQztLQUNMLHFDQUFDO0VBQUE7QUFOWSx5RUFBOEI7O0FBTzNDLDRCQUEyQjs7Ozs7Ozs7O0FDakIzQix1REFBdUU7QUFDdkUsdURBVXdDO0FBRXhDLCtDQUEwRTtBQUMxRSxnREFBZ0U7QUFHaEU7S0FHRSw0QkFBbUIsVUFBaUM7U0FDbEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7S0FDL0IsQ0FBQztLQUVELHNCQUFXLDJDQUFXO2NBQXRCO2FBQ0UsTUFBTSxrQ0FBc0I7U0FDOUIsQ0FBQzs7O1FBQUE7S0FFTSxtREFBc0IsR0FBN0IsVUFDRSxRQUFrQixFQUNsQixPQUFvQixFQUNwQixhQUFzQixFQUN0QixlQUF3QixFQUN4QixpQkFBMEIsRUFDMUIsT0FBZTtTQU5qQixpQkFvQkc7U0FiQywrQkFBK0I7U0FDL0IsSUFBTSxJQUFJLEdBQUcsT0FBTyxLQUFLLDRCQUFXLENBQUMsT0FBTyxHQUFHLDhCQUFNLENBQUMsa0JBQWtCLEdBQUcsOEJBQU0sQ0FBQyxpQkFBaUIsQ0FBQztTQUNwRyxJQUFNLFVBQVUsR0FBc0IsRUFBRSxDQUFDO1NBQ3pDLFVBQVUsQ0FBQyxtQ0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLFFBQVEsQ0FBQztTQUM1QyxVQUFVLENBQUMsbUNBQVcsQ0FBQyxhQUFhLENBQUMsR0FBRyxhQUFhLENBQUM7U0FDdEQsVUFBVSxDQUFDLG1DQUFXLENBQUMsZUFBZSxDQUFDLEdBQUcsZUFBZSxDQUFDO1NBQzFELFVBQVUsQ0FBQyxtQ0FBVyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsaUJBQWlCLENBQUM7U0FDOUQsVUFBVSxDQUFDLG1DQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsT0FBTyxDQUFDO1NBRTFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFZLGtCQUFRO2FBQ3ZFLElBQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxNQUE2QixDQUFDO2FBQzVELE1BQU0sQ0FBQyxLQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDN0UsQ0FBQyxDQUFDLENBQUM7S0FDTCxDQUFDO0tBRUksa0RBQXFCLEdBQTVCLFVBQTZCLFFBQWtCO1NBQS9DLGlCQVFDO1NBUEMsSUFBTSxVQUFVLGFBQXdCLEdBQUMsbUNBQVcsQ0FBQyxRQUFRLElBQUcsUUFBUSxLQUFFLENBQUM7U0FDM0UsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLDhCQUFNLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFjLGtCQUFRO2FBQzVGLElBQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxNQUE0QixDQUFDO2FBQzNELE1BQU0sQ0FBQztpQkFDTCxJQUFJLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBSyxJQUFJLFlBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQXJDLENBQXFDLENBQUM7Y0FDNUUsQ0FBQztTQUNKLENBQUMsQ0FBQyxDQUFDOztLQUNMLENBQUM7S0FFTSxxREFBd0IsR0FBL0IsVUFBZ0MsUUFBa0I7U0FBbEQsaUJBUUM7U0FQQyxJQUFNLFVBQVUsYUFBd0IsR0FBQyxtQ0FBVyxDQUFDLFFBQVEsSUFBRyxRQUFRLEtBQUUsQ0FBQztTQUMzRSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsOEJBQU0sQ0FBQyxtQkFBbUIsRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQWMsa0JBQVE7YUFDL0YsSUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLE1BQStCLENBQUM7YUFDOUQsTUFBTSxDQUFDO2lCQUNMLElBQUksRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFLLElBQUksWUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBckMsQ0FBcUMsQ0FBQztjQUM1RSxDQUFDO1NBQ0osQ0FBQyxDQUFDLENBQUM7O0tBQ0wsQ0FBQztLQUVTLGdEQUFtQixHQUE3QixVQUE4QixZQUF1QyxFQUFFLFNBQWtCO1NBQ3ZGLElBQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQUMsSUFBSSxXQUFJLHNCQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxnQ0FBUSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQW5GLENBQW1GLENBQUMsQ0FBQztTQUNuSSxJQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxhQUFHO2FBQzFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGNBQUk7aUJBQ2pCLE1BQU0sQ0FBQyxJQUFJLHlCQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDeEQsQ0FBQyxDQUFDLENBQUM7U0FDTCxDQUFDLENBQUMsQ0FBQztTQUVILE1BQU0sQ0FBQyxJQUFJLHlCQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0tBQ2hFLENBQUM7S0FDSCx5QkFBQztBQUFELEVBQUM7QUEvRFksaURBQWtCOzs7Ozs7Ozs7QUNaL0I7S0FDRSxzQkFDVSxRQUErQyxFQUMvQyxVQUE4QztTQUQ5QyxhQUFRLEdBQVIsUUFBUSxDQUF1QztTQUMvQyxlQUFVLEdBQVYsVUFBVSxDQUFvQztTQUNwRCxlQUFlO0tBQ25CLENBQUM7S0FFTSxxQ0FBYyxHQUFyQixVQUFzQixpQkFBd0I7U0FDNUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNyQyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDckMsQ0FBQztLQUNILENBQUM7S0FDSCxtQkFBQztBQUFELEVBQUM7QUFFRDtLQUdFLGlDQUEyQixVQUFpQztTQUFqQyxlQUFVLEdBQVYsVUFBVSxDQUF1QjtTQUMxRCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztTQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7S0FDOUUsQ0FBQztLQUVELHNCQUFXLGdEQUFXO2NBQXRCO2FBQ0UsTUFBTSwyQ0FBMkI7U0FDbkMsQ0FBQzs7O1FBQUE7S0FFTSxpREFBZSxHQUF0QixVQUF1QixFQUFrQixFQUFFLFFBQW1DLEVBQUUsT0FBK0I7U0FBL0csaUJBTUM7U0FMQyxJQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksS0FBSyxFQUFnQixDQUFDO1NBQ2hFLElBQU0sWUFBWSxHQUFHLElBQUksWUFBWSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUN6RCxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDO1NBQzdCLE1BQU0sQ0FBQyxjQUFNLFlBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFDLEVBQXpDLENBQXlDLENBQUM7S0FDekQsQ0FBQztLQUVPLGdFQUE4QixHQUF0QyxVQUF1QyxFQUFrQjtTQUN2RCxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDMUMsQ0FBQztLQUVPLGdEQUFjLEdBQXRCLFVBQXVCLFlBQTBCO1NBQy9DLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdEUsTUFBTSxDQUFDO1NBQ1QsQ0FBQztTQUVELDRFQUE0RTtTQUM1RSxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBQyxJQUFJLFFBQUMsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFuQyxDQUFtQyxDQUFDLENBQUM7S0FDL0YsQ0FBQztLQUVPLG9EQUFrQixHQUExQixVQUEyQixFQUFrQixFQUFFLFlBQTBCO1NBQ3ZFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUM3QyxNQUFNLENBQUM7U0FDVCxDQUFDO1NBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFHLElBQUksVUFBRyxLQUFLLFlBQVksRUFBcEIsQ0FBb0IsQ0FBQyxDQUFDO0tBQzVFLENBQUM7S0FDSCw4QkFBQztBQUFELEVBQUM7QUF4Q1ksMkRBQXVCOzs7Ozs7Ozs7QUMyQnBDO0tBR0U7U0FDRSxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztLQUNyQixDQUFDO0tBRU0sNkNBQWUsR0FBdEIsVUFBdUIsT0FBbUI7U0FDeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsT0FBTyxDQUFDO0tBQy9DLENBQUM7S0FFTSx3Q0FBVSxHQUFqQixVQUF3QyxXQUFtQjtTQUN6RCxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMvQyxNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFjLFdBQVcsbUJBQWdCLENBQUMsQ0FBQztTQUM3RCxDQUFDO1NBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFNLENBQUM7S0FDekMsQ0FBQztLQUNILDBCQUFDO0FBQUQsRUFBQztBQUVEOzs7SUFHRztBQUNIO0tBeUJFLDRDQUE0QztLQUM1QztLQUF1QixDQUFDO0tBdEJ4QixzQkFBa0IsOEJBQVE7U0FIMUI7O1lBRUc7Y0FDSDthQUNFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQztpQkFDeEMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLElBQUksbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO2FBQzVELENBQUM7YUFFRCxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUM7aUJBQ3hDLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQzthQUN2RCxDQUFDO2FBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQztTQUM1QyxDQUFDOzs7UUFBQTtLQUVEOzs7O1FBSUc7S0FDVyw4QkFBVyxHQUF6QixVQUEwQixlQUFpQztTQUN6RCxNQUFNLENBQUMsMkJBQTJCLEdBQUcsZUFBZSxDQUFDO0tBQ3ZELENBQUM7S0FJSCx5QkFBQztBQUFELEVBQUM7QUEzQlksaURBQWtCOzs7Ozs7Ozs7QUN0RS9CLHVEQU93QztBQUN4Qyx1REFPd0M7QUFFeEMsMkNBQW1EO0FBRW5ELHlGQUF3RjtBQUN4Rjs7O0lBR0c7QUFDSDtLQUFBO0tBK0NBLENBQUM7S0E5Q2UsMkNBQVksR0FBRyxJQUFJLHlCQUFhO1NBQzVDLEdBQUMsb0NBQW9CLENBQUMsT0FBTyxJQUFHLG9DQUFvQixDQUFDLE9BQU87U0FDNUQsR0FBQyxvQ0FBb0IsQ0FBQyxNQUFNLElBQUcsb0NBQW9CLENBQUMsTUFBTTtTQUMxRCxHQUFDLG9DQUFvQixDQUFDLE9BQU8sSUFBRyxvQ0FBb0IsQ0FBQyxPQUFPO2FBQzVELENBQUM7S0FFVyx3Q0FBUyxHQUFHLElBQUkseUJBQWE7U0FDekMsR0FBQyxpQ0FBaUIsQ0FBQyxTQUFTLElBQUcsaUNBQWlCLENBQUMsU0FBUztTQUMxRCxHQUFDLGlDQUFpQixDQUFDLE9BQU8sSUFBRyxpQ0FBaUIsQ0FBQyxPQUFPO1NBQ3RELEdBQUMsaUNBQWlCLENBQUMsT0FBTyxJQUFHLGlDQUFpQixDQUFDLE9BQU87YUFDdEQsQ0FBQztLQUVXLHdDQUFTLEdBQUcsSUFBSSx5QkFBYTtTQUN6QyxHQUFDLGlDQUFpQixDQUFDLFNBQVMsSUFBRyxpQ0FBaUIsQ0FBQyxTQUFTO1NBQzFELEdBQUMsaUNBQWlCLENBQUMsS0FBSyxJQUFHLGlDQUFpQixDQUFDLEtBQUs7U0FDbEQsR0FBQyxpQ0FBaUIsQ0FBQyxTQUFTLElBQUcsaUNBQWlCLENBQUMsU0FBUzthQUMxRCxDQUFDO0tBRVcsa0RBQW1CLEdBQUcsSUFBSSx5QkFBYTtTQUNuRCxHQUFDLDJDQUEyQixDQUFDLEtBQUssSUFBRywyQ0FBMkIsQ0FBQyxLQUFLO1NBQ3RFLEdBQUMsMkNBQTJCLENBQUMsS0FBSyxJQUFHLDJDQUEyQixDQUFDLEtBQUs7U0FDdEUsR0FBQywyQ0FBMkIsQ0FBQyxNQUFNLElBQUcsMkNBQTJCLENBQUMsTUFBTTtTQUN4RSxHQUFDLDJDQUEyQixDQUFDLFVBQVUsSUFBRywyQ0FBMkIsQ0FBQyxVQUFVO1NBQ2hGLEdBQUMsMkNBQTJCLENBQUMsZ0JBQWdCLElBQUcsMkNBQTJCLENBQUMsZ0JBQWdCO1NBQzVGLEdBQUMsMkNBQTJCLENBQUMsV0FBVyxJQUFHLDJDQUEyQixDQUFDLFdBQVc7U0FDbEYsR0FBQywyQ0FBMkIsQ0FBQyxJQUFJLElBQUcsMkNBQTJCLENBQUMsSUFBSTtTQUNwRSxHQUFDLDJDQUEyQixDQUFDLEtBQUssSUFBRywyQ0FBMkIsQ0FBQyxLQUFLO1NBQ3RFLEdBQUMsMkNBQTJCLENBQUMsT0FBTyxJQUFHLDJDQUEyQixDQUFDLE9BQU87U0FDMUUsR0FBQywyQ0FBMkIsQ0FBQyxTQUFTLElBQUcsMkNBQTJCLENBQUMsU0FBUzthQUM5RSxDQUFDO0tBRVcsdUNBQVEsR0FBRyxJQUFJLHlCQUFhO1NBQ3hDLEdBQUMsZ0NBQWdCLENBQUMsSUFBSSxJQUFHLGdDQUFnQixDQUFDLElBQUk7U0FDOUMsR0FBQyxnQ0FBZ0IsQ0FBQyxJQUFJLElBQUcsZ0NBQWdCLENBQUMsSUFBSTtTQUM5QyxHQUFDLGdDQUFnQixDQUFDLFFBQVEsSUFBRyxnQ0FBZ0IsQ0FBQyxRQUFRO1NBQ3RELEdBQUMsZ0NBQWdCLENBQUMsS0FBSyxJQUFHLGdDQUFnQixDQUFDLEtBQUs7U0FDaEQsR0FBQyxnQ0FBZ0IsQ0FBQyxHQUFHLElBQUcsZ0NBQWdCLENBQUMsR0FBRztTQUM1QyxHQUFDLGdDQUFnQixDQUFDLE1BQU0sSUFBRyxnQ0FBZ0IsQ0FBQyxNQUFNO2FBQ2xELENBQUM7S0FFVywrQ0FBZ0IsR0FBRyxJQUFJLHlCQUFhO1NBQ2hELEdBQUMsd0NBQXdCLENBQUMsR0FBRyxJQUFHLHdDQUF3QixDQUFDLEdBQUc7U0FDNUQsR0FBQyx3Q0FBd0IsQ0FBQyxHQUFHLElBQUcsd0NBQXdCLENBQUMsR0FBRztTQUM1RCxHQUFDLHdDQUF3QixDQUFDLE1BQU0sSUFBRyx3Q0FBd0IsQ0FBQyxNQUFNO1NBQ2xFLEdBQUMsd0NBQXdCLENBQUMsT0FBTyxJQUFHLHdDQUF3QixDQUFDLE9BQU87YUFDcEUsQ0FBQztLQUNMLHFDQUFDO0VBQUE7QUEvQ1kseUVBQThCOztBQWdEM0MsNEJBQTJCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDckUzQix1Q0FBZ0M7QUFHaEM7S0FBK0IsNkJBQUs7S0FDbEMsbUJBQTJCLGFBQTRCO1NBQXZELFlBQ0Usa0JBQU0sYUFBYSxDQUFDLFNBQ3JCO1NBRjBCLG1CQUFhLEdBQWIsYUFBYSxDQUFlOztLQUV2RCxDQUFDO0tBRUQsc0JBQVcsaUNBQVU7Y0FBckI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7U0FDdkMsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyw4QkFBTztjQUFsQjthQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztTQUNsRCxDQUFDOzs7UUFBQTtLQUNILGdCQUFDO0FBQUQsRUFBQyxDQVo4QixhQUFLLEdBWW5DO0FBWlksK0JBQVM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNMdEIsMkNBQTJEO0FBSTNEO0tBQTJCLHlCQUFvQjtLQUM3QyxlQUEyQixTQUFvQjtTQUEvQyxZQUNFLGlCQUFPLFNBQ1I7U0FGMEIsZUFBUyxHQUFULFNBQVMsQ0FBVzs7S0FFL0MsQ0FBQztLQUVELHNCQUFXLHVCQUFJO2NBQWY7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7U0FDN0IsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyw0QkFBUztjQUFwQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztTQUNsQyxDQUFDOzs7UUFBQTtLQUVELHNCQUFXLHVCQUFJO2NBQWY7YUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7U0FDbEQsQ0FBQzs7O1FBQUE7S0FDSCxZQUFDO0FBQUQsRUFBQyxDQWhCMEIsaUNBQW9CLEdBZ0I5QztBQWhCWSx1QkFBSzs7Ozs7Ozs7O0FDRGxCOzs7O0lBSUc7QUFDSDtLQUNFLDBCQUEyQixVQUFxQjtTQUFyQixlQUFVLEdBQVYsVUFBVSxDQUFXO0tBQUksQ0FBQztLQUVyRCxzQkFBVyx1Q0FBUztjQUFwQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQ3pCLENBQUM7OztRQUFBO0tBQ0gsdUJBQUM7QUFBRCxFQUFDO0FBTlksNkNBQWdCOzs7Ozs7Ozs7QUNIN0IsMkNBQXFGO0FBRXJGOzs7O0lBSUc7QUFDSDtLQVNFLHFCQUFtQixnQkFBa0M7U0FDbkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUM7U0FDL0MsSUFBSSxDQUFDLFFBQVEsR0FBRywyQ0FBWSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDakYsSUFBSSxDQUFDLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUM7U0FDaEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUM7U0FDNUMsSUFBSSxDQUFDLEtBQUssR0FBRywyQ0FBWSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDeEUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDLGVBQWUsQ0FBQztTQUN6RCxJQUFJLENBQUMsZUFBZSxHQUFHLGdCQUFnQixDQUFDLGNBQWMsQ0FBQztLQUN6RCxDQUFDO0tBRUQsc0JBQVcsbUNBQVU7Y0FBckI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUMxQixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLGdDQUFPO2NBQWxCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDdkIsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyxpQ0FBUTtjQUFuQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQ3hCLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsK0JBQU07Y0FBakI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztTQUN0QixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLDZCQUFJO2NBQWY7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNwQixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLHdDQUFlO2NBQTFCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztTQUMvQixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLHVDQUFjO2NBQXpCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7U0FDOUIsQ0FBQzs7O1FBQUE7S0FDSCxrQkFBQztBQUFELEVBQUM7QUE5Q1ksbUNBQVc7Ozs7Ozs7OztBQ1J4Qjs7SUFFRztBQUNIO0tBQ0Usa0JBQTJCLFlBQTBCO1NBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO0tBQUksQ0FBQztLQUVuRCx3QkFBSyxHQUFaLFVBQWEsR0FBVztTQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUMvQixDQUFDO0tBRU0sc0JBQUcsR0FBVixVQUFXLEdBQVc7U0FDcEIsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ3BDLENBQUM7S0FFTSx5QkFBTSxHQUFiO1NBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7S0FDcEMsQ0FBQztLQUVELHNCQUFXLGdDQUFVO2NBQXJCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDO1NBQ3RDLENBQUM7OztRQUFBO0tBRU0sNEJBQVMsR0FBaEI7U0FDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQztLQUN2QyxDQUFDO0tBRU0sc0JBQUcsR0FBVixVQUFXLEdBQVcsRUFBRSxLQUFhO1NBQ25DLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztLQUNwQyxDQUFDO0tBQ0gsZUFBQztBQUFELEVBQUM7QUExQlksNkJBQVE7Ozs7Ozs7OztBQ1ByQiwyQ0FBeUQ7QUFFekQsMkRBQTZFO0FBQzdFLHFEQUFrRTtBQUVsRSxtQ0FBeUMsVUFBaUM7S0FDeEUsK0JBQWtCLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLHFEQUF5QixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7S0FDdkYsK0JBQWtCLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLHlDQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDbkYsRUFBQztBQUhELDZEQUdDOzs7Ozs7Ozs7QUNURCxzREFBbUc7QUFLbkc7S0FDRSxtQ0FBMkIsVUFBaUM7U0FBakMsZUFBVSxHQUFWLFVBQVUsQ0FBdUI7S0FBSSxDQUFDO0tBRWpFLHNCQUFXLGtEQUFXO2NBQXRCO2FBQ0UsTUFBTSxxREFBeUM7U0FDakQsQ0FBQzs7O1FBQUE7S0FFTSxpRUFBNkIsR0FBcEM7U0FDRSxnR0FBZ0c7U0FDaEcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLDhCQUFNLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBcUIsa0JBQVE7YUFDMUYsK0JBQStCO2FBRS9CLElBQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUE0QixDQUFDO2FBQ3JELE1BQU0sQ0FBQyxNQUFNLENBQUM7U0FDaEIsQ0FBQyxDQUFDLENBQUM7S0FDTCxDQUFDO0tBQ0gsZ0NBQUM7QUFBRCxFQUFDO0FBaEJZLCtEQUF5Qjs7Ozs7Ozs7O0FDTHRDLHNEQU13QztBQUt4QztLQUNFLDZCQUEyQixVQUFpQztTQUFqQyxlQUFVLEdBQVYsVUFBVSxDQUF1QjtLQUFJLENBQUM7S0FFakUsc0JBQVcsNENBQVc7Y0FBdEI7YUFDRSxNQUFNLHlDQUFtQztTQUMzQyxDQUFDOzs7UUFBQTtLQUVNLCtDQUFpQixHQUF4QixVQUF5QixRQUE0QjtTQUNuRCxJQUFNLFVBQVUsR0FBc0IsRUFBRSxDQUFDO1NBQ3pDLFVBQVUsQ0FBQyxtQ0FBVyxDQUFDLGNBQWMsQ0FBQyxHQUFHLFFBQVEsQ0FBQztTQUVsRCxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsOEJBQU0sQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQXFCLGVBQUs7YUFDakcsSUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQTJCLENBQUM7YUFFakQsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztpQkFDdEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO2FBQ3JELENBQUM7YUFFRCxNQUFNLEVBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ2hDLENBQUMsQ0FBQyxDQUFDO0tBQ0wsQ0FBQztLQUNILDBCQUFDO0FBQUQsRUFBQztBQXJCWSxtREFBbUI7Ozs7Ozs7OztBQ1BoQzs7SUFFRztBQUNIO0tBZ0JFLDhEQUE4RDtLQUM5RCx1QkFBb0IsYUFBcUI7U0FDdkMsSUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBQyxJQUFJLGVBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQWYsQ0FBZSxDQUFDLENBQUM7U0FDakUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLEdBQUcsYUFBYSxDQUFDLENBQUM7U0FDOUQsQ0FBQztTQUVELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3ZCLENBQUM7S0FsQkQsc0JBQWtCLHlCQUFRO1NBSDFCOztZQUVHO2NBQ0g7YUFDRSxNQUFNLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztTQUNoQyxDQUFDOzs7UUFBQTtLQWtCRCxzQkFBVyxnQ0FBSztjQUFoQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3JCLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsZ0NBQUs7Y0FBaEI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUNyQixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLDhCQUFHO2NBQWQ7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUNuQixDQUFDOzs7UUFBQTtLQXBDRCwwR0FBMEc7S0FDM0Ysc0JBQVEsR0FBa0IsSUFBSSxhQUFhLENBQUMsU0FBd0IsQ0FBQyxDQUFDO0tBb0N2RixvQkFBQztFQUFBO0FBdkNZLHVDQUFhOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDUDFCLHVEQUEyRDtBQUMzRCxzREFLd0M7QUFFeEMsb0RBQTBEO0FBQzFELDJDQUF3QztBQUN4QywrQ0FBZ0Q7QUFFaEQsMkNBQXlDO0FBRXpDO0tBQW1DLGlDQUFTO0tBRzFDLHVCQUFtQixJQUF3QixFQUFFLFNBQW9CO1NBQWpFLFlBQ0Usa0JBQU0sSUFBSSx1Q0FBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGlDQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsU0FtQjlEO1NBbEJDLEtBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxLQUFLLEVBQWEsQ0FBQztTQUUxQyw4REFBOEQ7U0FDOUQsR0FBRyxDQUFDLENBQWUsVUFBVSxFQUFWLFNBQUksQ0FBQyxLQUFLLEVBQVYsY0FBVSxFQUFWLElBQVU7YUFBeEIsSUFBTSxJQUFJO2FBQ2IsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSywyQ0FBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO2lCQUNwRCxJQUFNLFNBQVMsR0FBRyxJQUFJLHVDQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsaUNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDekUsSUFBTSxLQUFLLEdBQWE7cUJBQ3RCLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSTtxQkFDcEIsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJO3FCQUNwQixVQUFVLEVBQUUsU0FBUyxDQUFDLFVBQVU7cUJBQ2hDLGVBQWUsRUFBRSxTQUFTLENBQUMsZUFBZTtxQkFDMUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxZQUFZO2tCQUNyQyxDQUFDO2lCQUVGLElBQU0sYUFBYSxHQUFHLElBQUksNkJBQWEsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7aUJBQzFELEtBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUkscUJBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO2FBQ3RELENBQUM7VUFDRjs7S0FDSCxDQUFDO0tBRUQsc0JBQVcscUNBQVU7Y0FBckI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUMxQixDQUFDOzs7UUFBQTtLQUNILG9CQUFDO0FBQUQsRUFBQyxDQTVCa0MscUJBQVMsR0E0QjNDO0FBNUJZLHVDQUFhOzs7Ozs7OztBMUJkMUI7Ozs7SUFJRzs7Ozs7QUFHSCxtQ0FBd0I7Ozs7Ozs7OztBMkJMeEI7S0FDRSw0QkFDVSxLQUFhLEVBQ2IsVUFBcUI7U0FEckIsVUFBSyxHQUFMLEtBQUssQ0FBUTtTQUNiLGVBQVUsR0FBVixVQUFVLENBQVc7S0FBSSxDQUFDO0tBRXBDLHNCQUFXLG9DQUFJO2NBQWY7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNwQixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLHlDQUFTO2NBQXBCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDekIsQ0FBQzs7O1FBQUE7S0FDSCx5QkFBQztBQUFELEVBQUM7QUFaWSxpREFBa0I7Ozs7Ozs7OztBQ0UvQjtLQUlFLG1CQUFtQixhQUFpQztTQUNsRCxJQUFJLENBQUMsS0FBSyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUM7U0FDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDO0tBQzVDLENBQUM7S0FFRCxzQkFBSSwyQkFBSTtjQUFSO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDcEIsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBSSxnQ0FBUztjQUFiO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDekIsQ0FBQzs7O1FBQUE7S0FDSCxnQkFBQztBQUFELEVBQUM7QUFoQlksK0JBQVM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNKdEIsdURBU3dDO0FBQ3hDLHNEQUEwRTtBQUMxRSwyQ0FVNkI7QUFJN0IsMkNBQXdDO0FBRXhDLEtBQU0saUJBQWlCLEdBQUcsVUFBUyxDQUFXLEVBQUUsQ0FBVztLQUN6RCxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDWCxDQUFDLENBQUMsU0FBUyxLQUFLLENBQUMsQ0FBQyxTQUFTO1NBQzNCLENBQUMsQ0FBQyxTQUFTLEtBQUssQ0FBQyxDQUFDLFNBQVM7U0FDM0IsQ0FBQyxDQUFDLFVBQVUsS0FBSyxDQUFDLENBQUMsVUFBVTtTQUM3QixDQUFDLENBQUMsWUFBWSxLQUFLLENBQUMsQ0FBQyxZQUFZO1NBQ2pDLENBQUMsQ0FBQyxlQUFlLEtBQUssQ0FBQyxDQUFDLGVBQWUsQ0FBQztBQUM1QyxFQUFDLENBQUM7QUFFRjtLQUFtQyxpQ0FBUztLQUMxQyx1QkFBbUIsYUFBaUMsRUFBVSxTQUFtQjtTQUFqRixZQUNFLGtCQUFNLGFBQWEsQ0FBQyxTQUNyQjtTQUY2RCxlQUFTLEdBQVQsU0FBUyxDQUFVOztLQUVqRixDQUFDO0tBRUQ7Ozs7Ozs7UUFPRztLQUNJLHdDQUFnQixHQUF2QixVQUF3QixTQUFvQjtTQUE1QyxpQkF5QkM7U0F4QkMsSUFBTSxPQUFPLEdBQUcsSUFBSSxLQUFLLEVBQXNCLENBQUM7U0FDaEQsSUFBSSxtQkFBd0MsQ0FBQztTQUU3QyxJQUFJLENBQUM7YUFDSCxtQkFBbUIsR0FBRywrQkFBa0IsQ0FBQyxRQUFRLENBQUMsVUFBVSwyQ0FBZ0QsQ0FBQztTQUMvRyxDQUFDO1NBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNYLHdEQUF3RDthQUN4RCxNQUFNLENBQUMsT0FBTyxDQUFDO1NBQ2pCLENBQUM7U0FFRCw0RUFBNEU7U0FDNUUsSUFBTSxVQUFVLEdBQUcsSUFBSSxtQ0FBc0IsQ0FBcUIsd0NBQWdCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztTQUN6RyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsc0NBQWMsQ0FBQyxvQkFBb0IsRUFBRSxVQUFDLEtBQUs7YUFDN0UsSUFBTSxRQUFRLEdBQUcsS0FBaUIsQ0FBQzthQUNuQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLEtBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNwRCxDQUFDLEVBQUUsVUFBQyxHQUFhO2FBQ2YsVUFBVSxDQUFDLFlBQVksQ0FBQyxjQUFNLFdBQUksK0JBQWtCLENBQUMsU0FBUyxDQUFDLEVBQWpDLENBQWlDLENBQUMsQ0FBQztTQUNuRSxDQUFDLENBQUMsQ0FBQztTQUVILE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FFekIsMkJBQTJCO1NBRTNCLE1BQU0sQ0FBQyxPQUFPLENBQUM7S0FDakIsQ0FBQztLQUVELHNCQUFXLG1DQUFRO2NBQW5CO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7U0FDeEIsQ0FBQzs7O1FBQUE7S0FFTSx3Q0FBZ0IsR0FBdkIsVUFDRSxTQUFpQixFQUFFLE1BQXFCLEVBQUUsVUFBNEIsRUFBRSxPQUFzQjtTQUM1RixJQUFNLE9BQU8sR0FBRywrQkFBa0IsQ0FBQyxRQUFRLENBQUMsVUFBVSwrQkFBb0MsQ0FBQztTQUMzRixNQUFNLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDekYsQ0FBQztLQUVJLDZDQUFxQixHQUE1QixVQUE2QixTQUFpQixFQUFFLGFBQWlDO1NBQy9FLElBQU0sT0FBTyxHQUFHLCtCQUFrQixDQUFDLFFBQVEsQ0FBQyxVQUFVLCtCQUFvQyxDQUFDO1NBQzNGLE1BQU0sQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsYUFBYSxDQUFDLENBQUM7S0FDaEYsQ0FBQztLQUVNLHdDQUFnQixHQUF2QixVQUF3QixTQUFpQjtTQUN2QyxJQUFNLE9BQU8sR0FBRywrQkFBa0IsQ0FBQyxRQUFRLENBQUMsVUFBVSwrQkFBb0MsQ0FBQztTQUMzRixNQUFNLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7S0FDNUQsQ0FBQztLQUVNLDZDQUFxQixHQUE1QjtTQUNFLElBQU0sT0FBTyxHQUFHLCtCQUFrQixDQUFDLFFBQVEsQ0FBQyxVQUFVLGtDQUFzQyxDQUFDO1NBQzdGLE1BQU0sQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBQ3RELENBQUM7S0FFTSxnREFBd0IsR0FBL0I7U0FDRSxJQUFNLE9BQU8sR0FBRywrQkFBa0IsQ0FBQyxRQUFRLENBQUMsVUFBVSxrQ0FBc0MsQ0FBQztTQUM3RixNQUFNLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUN6RCxDQUFDO0tBRU0sMkNBQW1CLEdBQTFCLFVBQTJCLE9BQThCO1NBQ3ZELElBQU0sT0FBTyxHQUFHLCtCQUFrQixDQUFDLFFBQVEsQ0FBQyxVQUFVLGtDQUFzQyxDQUFDO1NBQzdGLE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1NBRXhCLE1BQU0sQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQ25DLElBQUksQ0FBQyxRQUFRLEVBQUUsd0JBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0tBQ25HLENBQUM7S0FFSSw4Q0FBc0IsR0FBN0IsVUFBOEIsT0FBaUM7U0FDN0QsSUFBTSxPQUFPLEdBQUcsK0JBQWtCLENBQUMsUUFBUSxDQUFDLFVBQVUsa0NBQXNDLENBQUM7U0FDN0YsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7U0FDeEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FDbkMsSUFBSSxDQUFDLFFBQVEsRUFDYix3QkFBVyxDQUFDLFVBQVUsRUFDdEIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQ3ZCLENBQUMsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUN6QixDQUFDLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUMzQixPQUFPLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDO0tBQzFCLENBQUM7S0FDSCxvQkFBQztBQUFELEVBQUMsQ0F6RmtDLHFCQUFTLEdBeUYzQztBQXpGWSx1Q0FBYTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3ZCMUIsdUNBQWdDO0FBSWhDO0tBQStCLDZCQUFLO0tBR2xDLG1CQUFtQixhQUE0QjtTQUEvQyxZQUNFLGtCQUFNLGFBQWEsQ0FBQyxTQUtyQjtTQUpDLEtBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1NBRW5DLDhGQUE4RjtTQUM5RixLQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLEtBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFDLElBQUksWUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBdkIsQ0FBdUIsQ0FBQyxDQUFDOztLQUNsRixDQUFDO0tBRUQsc0JBQVcsc0NBQWU7Y0FBMUI7YUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7U0FDbEQsQ0FBQzs7O1FBQUE7S0FFTSxvQ0FBZ0IsR0FBdkIsVUFDRSxTQUFpQixFQUFFLE1BQXFCLEVBQUUsVUFBNEIsRUFBRSxPQUFzQjtTQUM1RixNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztLQUN2RixDQUFDO0tBRU0seUNBQXFCLEdBQTVCLFVBQTZCLFNBQWlCLEVBQUUsYUFBaUM7U0FDL0UsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0tBQzVFLENBQUM7S0FFTSxvQ0FBZ0IsR0FBdkIsVUFBd0IsU0FBaUI7U0FDdkMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDeEQsQ0FBQztLQUVNLG1DQUFlLEdBQXRCO1NBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0tBQ2xELENBQUM7S0FFTSx5Q0FBcUIsR0FBNUI7U0FDRSxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0tBQ3BELENBQUM7S0FFTSw0Q0FBd0IsR0FBL0I7U0FDRSxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0tBQ3ZELENBQUM7S0FFTSx1Q0FBbUIsR0FBMUIsVUFBMkIsT0FBOEI7U0FDdkQsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDekQsQ0FBQztLQUVNLDBDQUFzQixHQUE3QixVQUE4QixPQUFpQztTQUM3RCxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUM1RCxDQUFDO0tBQ0gsZ0JBQUM7QUFBRCxFQUFDLENBL0M4QixhQUFLLEdBK0NuQztBQS9DWSwrQkFBUzs7Ozs7Ozs7O0FDaEJ0QiwyQ0FBeUQ7QUFDekQsMkNBQTJDO0FBSzNDO0tBUUUsc0JBQW1CLFlBQStCO1NBSmxELHVFQUF1RTtTQUN2RSxvRkFBb0Y7U0FDNUUsbUJBQWMsR0FBWSxLQUFLLENBQUM7U0FHdEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO0tBQ3hDLENBQUM7S0FFTSw0QkFBSyxHQUFaLFVBQWEsR0FBVztTQUN0QixpQkFBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FFOUIsc0RBQXNEO1NBQ3RELEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzlCLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO2FBRWpDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztTQUMxQixDQUFDO0tBQ0gsQ0FBQztLQUVNLDBCQUFHLEdBQVYsVUFBVyxHQUFXO1NBQ3BCLGlCQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUM5QixNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUNuQyxDQUFDO0tBRU0sNkJBQU0sR0FBYjtTQUNFLHlDQUF5QztTQUN6QyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0tBQ2pELENBQUM7S0FFRCxzQkFBVyxvQ0FBVTtjQUFyQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQzFCLENBQUM7OztRQUFBO0tBRU0sZ0NBQVMsR0FBaEI7U0FBQSxpQkFvQkM7U0FuQkMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7U0FFakMscURBQXFEO1NBQ3JELEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7YUFDdEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQXFCLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUNuRSxDQUFDO1NBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7U0FFM0IsbURBQW1EO1NBQ25ELElBQU0sZUFBZSxHQUFHLCtCQUFrQixDQUFDLFFBQVEsQ0FBQyxVQUFVLHlDQUMxQixDQUFDO1NBRXJDLE1BQU0sQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FBcUIscUJBQVc7YUFDakcsS0FBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7YUFDNUIsS0FBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7YUFDekIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFJLENBQUMsZUFBZSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2FBQ2pELE1BQU0sQ0FBQyxXQUFXLENBQUM7U0FDckIsQ0FBQyxDQUFDLENBQUM7S0FDTCxDQUFDO0tBRU0sMEJBQUcsR0FBVixVQUFXLEdBQVcsRUFBRSxLQUFhO1NBQ25DLGlCQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLG9DQUFvQztTQUNuRSxpQkFBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxpQ0FBaUM7U0FDckUsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7U0FFakMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7U0FDbEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7S0FDMUIsQ0FBQztLQUVPLHlDQUFrQixHQUExQixVQUEyQixZQUErQjtTQUN4RCxpQkFBSyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsY0FBYyxDQUFDLENBQUM7U0FDaEQsaUJBQUssQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1NBRTlFLElBQUksQ0FBQyxlQUFlLEdBQUcsWUFBWSxDQUFDLGNBQWMsQ0FBQztTQUVuRCw0QkFBNEI7U0FDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7S0FDM0IsQ0FBQztLQUVEOzs7UUFHRztLQUNLLGdEQUF5QixHQUFqQztTQUNFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO2FBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsOERBQThELENBQUMsQ0FBQztTQUNsRixDQUFDO0tBQ0gsQ0FBQztLQUNILG1CQUFDO0FBQUQsRUFBQztBQXhGWSxxQ0FBWTs7Ozs7Ozs7QXRCUHpCOzs7O0lBSUc7O0FBRUgsK0NBQWdEO0FBQXZDLHNEQUFhO0FBQ3RCLHVDQUFnQztBQUF2Qiw4QkFBSyIsImZpbGUiOiJAdGFibGVhdS9hZGRpbi1hcGkuMC4yLjAuanMiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJ0YWJsZWF1XCJdID0gZmFjdG9yeSgpO1xuXHRlbHNlXG5cdFx0cm9vdFtcInRhYmxlYXVcIl0gPSBmYWN0b3J5KCk7XG59KSh0aGlzLCBmdW5jdGlvbigpIHtcbnJldHVybiBcblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiB3ZWJwYWNrL3VuaXZlcnNhbE1vZHVsZURlZmluaXRpb25cbiAqKi8iLCIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSlcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcblxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0ZXhwb3J0czoge30sXG4gXHRcdFx0aWQ6IG1vZHVsZUlkLFxuIFx0XHRcdGxvYWRlZDogZmFsc2VcbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubG9hZGVkID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCIvZGlzdC9cIjtcblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIHdlYnBhY2svYm9vdHN0cmFwIGFkZmE5OTJjOWRhNTUxZWU5NGZiXG4gKiovIiwiLyoqXHJcbiAqIFRoaXMgaXMgeW91ciBtYWluLiBUaGlzIGlzIHdoZXJlIHlvdSByZS1leHBvcnQgZXZlcnl0aGluZyB5b3Ugd2FudCB0byBiZSBwdWJsaWNseSBhdmFpbGFibGUuXHJcbiAqXHJcbiAqIFRoZSBidWlsZCBlbmZvcmNlcyB0aGF0IHRoZSBmaWxlIGhhcyB0aGUgc2FtZSBuYW1lIGFzIHRoZSBnbG9iYWwgdmFyaWFibGUgdGhhdCBpcyBleHBvcnRlZC5cclxuICovXHJcblxyXG4vLyBEdWUgdG8gdGhlIHdheSB3ZSBjb25maWd1cmVkIHdlYnBhY2ssIHdlIHNob3VsZCBiZSBleHBvcnRpbmcgdGhpbmdzIHdoaWNoIHdpbGwgYmUgdW5kZXJcclxuLy8gYSBnbG9iYWwgdmFyaWFibGUgY2FsbGVkIFwidGFibGVhdVwiLiBFeHBvcnQgZXZlcnl0aGluZyB3ZSB3YW50IHRvIGJlIHZpc2libGUgdW5kZXIgdGFibGVhdVxyXG4vLyBmcm9tIHRoaXMgZmlsZS5cclxuXHJcbmltcG9ydCB7IEFkZEluIH0gZnJvbSAnLi9FeHRlcm5hbE5hbWVzcGFjZXMvQWRkSW4nO1xyXG5pbXBvcnQgeyBBZGRJbkltcGwgfSBmcm9tICcuL0ludGVybmFsL0FkZEluSW1wbCc7XHJcblxyXG5jb25zdCBhZGRJbkltcGwgPSBuZXcgQWRkSW5JbXBsKCk7XHJcbmV4cG9ydCBjb25zdCBhZGRJbiA9IG5ldyBBZGRJbihhZGRJbkltcGwpO1xyXG5cclxuLy8gRXhwb3J0IEVudW1zXHJcbmV4cG9ydCB7XHJcbiAgRmlsdGVyVXBkYXRlVHlwZSxcclxuICBOdWxsT3B0aW9uXHJcbn0gZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogLi4vc3JjL0FkZEluQXBpLnRzXG4gKiovIiwiaW1wb3J0IHtcclxuICBBZGRJbiBhcyBBZGRJbkNvbnRyYWN0LFxyXG4gIERhc2hib2FyZENvbnRlbnQsXHJcbiAgRW52aXJvbm1lbnQsXHJcbiAgU2V0dGluZ3MsXHJcbiAgVUlcclxufSBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgQWRkSW5JbXBsIH0gZnJvbSAnLi4vSW50ZXJuYWwvQWRkSW5JbXBsJztcclxuXHJcbi8qKlxyXG4gKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgZXh0ZXJuYWwgQWRkSW4gbmFtZXNwYWNlLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEFkZEluIGltcGxlbWVudHMgQWRkSW5Db250cmFjdCB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgYWRkSW5JbXBsOiBBZGRJbkltcGwpIHtcclxuICAgIHRoaXMuYWRkSW5JbXBsID0gYWRkSW5JbXBsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBkYXNoYm9hcmRDb250ZW50KCk6IERhc2hib2FyZENvbnRlbnQge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkSW5JbXBsLmRhc2hib2FyZENvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGVudmlyb25tZW50KCk6IEVudmlyb25tZW50IHtcclxuICAgIHJldHVybiB0aGlzLmFkZEluSW1wbC5lbnZpcm9ubWVudDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2V0dGluZ3MoKTogU2V0dGluZ3Mge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkSW5JbXBsLnNldHRpbmdzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB1aSgpOiBVSSB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0FQSSBjYWxsIG5vdCB5ZXQgaW1wbGVtZW50ZWQnKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbml0aWFsaXplQXN5bmMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRJbkltcGwuaW5pdGlhbGl6ZUFzeW5jKCk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIC4uL3NyYy9FeHRlcm5hbE5hbWVzcGFjZXMvQWRkSW4udHNcbiAqKi8iLCJpbXBvcnQge1xyXG4gIEFkZEluRGFzaGJvYXJkSW5mbyxcclxuICBBZGRJblNldHRpbmdzSW5mbyxcclxuICBJbnRlcm5hbEFwaURpc3BhdGNoZXIsXHJcbiAgSW50ZXJuYWxBcGlEaXNwYXRjaGVySG9sZGVyLFxyXG4gIFNoZWV0UGF0aCxcclxufSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBBcGlTZXJ2aWNlUmVnaXN0cnksIHJlZ2lzdGVyQWxsU2hhcmVkU2VydmljZXMgfSBmcm9tICdAdGFibGVhdS9hcGktc2hhcmVkJztcclxuXHJcbmltcG9ydCB7IERhc2hib2FyZCB9IGZyb20gJy4uL0Rhc2hib2FyZCc7XHJcbmltcG9ydCB7IERhc2hib2FyZENvbnRlbnQgfSBmcm9tICcuLi9FeHRlcm5hbE5hbWVzcGFjZXMvRGFzaGJvYXJkQ29udGVudCc7XHJcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vRXh0ZXJuYWxOYW1lc3BhY2VzL0Vudmlyb25tZW50JztcclxuaW1wb3J0IHsgU2V0dGluZ3MgfSBmcm9tICcuLi9FeHRlcm5hbE5hbWVzcGFjZXMvU2V0dGluZ3MnO1xyXG5pbXBvcnQgeyBBZGRJblNlcnZpY2VOYW1lcyB9IGZyb20gJy4uL1NlcnZpY2VzL0FkZEluU2VydmljZU5hbWVzJztcclxuaW1wb3J0IHsgSW5pdGlhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vU2VydmljZXMvSW5pdGlhbGl6YXRpb25TZXJ2aWNlJztcclxuaW1wb3J0IHsgcmVnaXN0ZXJBbGxBZGRJblNlcnZpY2VzIH0gZnJvbSAnLi4vU2VydmljZXMvUmVnaXN0ZXJBbGxBZGRJblNlcnZpY2VzJztcclxuaW1wb3J0IHsgVmVyc2lvbk51bWJlciB9IGZyb20gJy4uL1ZlcnNpb25OdW1iZXInO1xyXG5pbXBvcnQgeyBEYXNoYm9hcmRJbXBsIH0gZnJvbSAnLi9EYXNoYm9hcmRJbXBsJztcclxuaW1wb3J0IHsgU2V0dGluZ3NJbXBsIH0gZnJvbSAnLi9TZXR0aW5nc0ltcGwnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFkZEluSW1wbCB7XHJcbiAgcHJpdmF0ZSBpbml0aWFsaXphdGlvblByb21pc2U6IFByb21pc2U8dm9pZD47XHJcblxyXG4gIHB1YmxpYyBkYXNoYm9hcmRDb250ZW50OiBEYXNoYm9hcmRDb250ZW50O1xyXG4gIHB1YmxpYyBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQ7XHJcbiAgcHVibGljIHNldHRpbmdzOiBTZXR0aW5ncztcclxuXHJcbiAgcHVibGljIGluaXRpYWxpemVBc3luYygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICghdGhpcy5pbml0aWFsaXphdGlvblByb21pc2UpIHtcclxuICAgICAgdGhpcy5pbml0aWFsaXphdGlvblByb21pc2UgPSBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgLy8gRmlyc3QgdGhpbmcgd2Ugd2FudCB0byBkbyBpcyBjaGVjayB0byBzZWUgaWYgdGhlcmUgaXMgYSBkZXNrdG9wIGRpc3BhdGNoZXIgYWxyZWFkeSByZWdpc3RlcmVkIGZvciB1c1xyXG4gICAgICAgIGlmIChJbnRlcm5hbEFwaURpc3BhdGNoZXJIb2xkZXIuaGFzRGVza3RvcEFwaURpc3BhdGNoZXJQcm9taXNlKCkpIHtcclxuICAgICAgICAgIC8vIFJ1bm5pbmcgaW4gZGVza3RvcCwgdXNlIHRoaXMgcHJvbWlzZVxyXG4gICAgICAgICAgY29uc3QgZGVza3RvcERpc3BhdGNoZXJQcm9taXNlID0gSW50ZXJuYWxBcGlEaXNwYXRjaGVySG9sZGVyLmdldERlc2t0b3BEaXNwYXRjaGVyUHJvbWlzZSgpO1xyXG4gICAgICAgICAgZGVza3RvcERpc3BhdGNoZXJQcm9taXNlLnRoZW4odGhpcy5vbkRpc3BhdGNoZXJSZWNlaXZlZC5iaW5kKHRoaXMpKS50aGVuKCgpID0+IHsgcmVzb2x2ZSgpOyB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KCdOb3QgcnVubmluZyBpbiBkZXNrdG9wLiBTZXJ2ZXIgc3VwcG9ydCBjb21pbmcgc29vbiEnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemF0aW9uUHJvbWlzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25EaXNwYXRjaGVyUmVjZWl2ZWQoZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBkaXNwYXRjaGVyLnNldFZlcnNpb25OdW1iZXIoVmVyc2lvbk51bWJlci5JbnN0YW5jZSk7XHJcblxyXG4gICAgLy8gQ2FsbCB0byByZWdpc3RlciBhbGwgdGhlIHNlcnZpY2VzIHdoaWNoIHdpbGwgdXNlIHRoZSBuZXdseSBpbml0aWFsaXplZCBkaXNwYXRjaGVyXHJcbiAgICByZWdpc3RlckFsbFNoYXJlZFNlcnZpY2VzKGRpc3BhdGNoZXIpO1xyXG4gICAgcmVnaXN0ZXJBbGxBZGRJblNlcnZpY2VzKGRpc3BhdGNoZXIpO1xyXG5cclxuICAgIC8vIEdldCB0aGUgaW5pdGlhbGl6YXRpb24gc2VydmljZSBhbmQgaW5pdGlhbGl6ZSB0aGlzIGFkZC1pblxyXG4gICAgY29uc3QgaW5pdGlhbGl6YXRpb25TZXJ2aWNlID0gQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2U8SW5pdGlhbGl6YXRpb25TZXJ2aWNlPihcclxuICAgICAgQWRkSW5TZXJ2aWNlTmFtZXMuSW5pdGlhbGl6YXRpb25TZXJ2aWNlKTtcclxuXHJcbiAgICByZXR1cm4gaW5pdGlhbGl6YXRpb25TZXJ2aWNlLmluaXRpYWxpemVEYXNoYm9hcmRBZGRJbkFzeW5jKCkudGhlbihyZXN1bHQgPT4ge1xyXG4gICAgICBpZiAoIXJlc3VsdC5hZGRJbkluc3RhbmNlLmxvY2F0b3IuZGFzaGJvYXJkUGF0aCkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRGFzaGJvYXJkUGF0aCBpcyB1bmRlZmluZWQnKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5kYXNoYm9hcmRDb250ZW50ID0gdGhpcy5pbml0aWFsaXplRGFzaGJvYXJkQ29udGVudChyZXN1bHQuYWRkaW5EYXNoYm9hcmRJbmZvLCByZXN1bHQuYWRkSW5JbnN0YW5jZS5sb2NhdG9yLmRhc2hib2FyZFBhdGgpO1xyXG4gICAgICB0aGlzLmVudmlyb25tZW50ID0gbmV3IEVudmlyb25tZW50KHJlc3VsdC5hZGRJbkVudmlyb25tZW50KTtcclxuICAgICAgdGhpcy5zZXR0aW5ncyA9IHRoaXMuaW5pdGlhbGl6ZVNldHRpbmdzKHJlc3VsdC5hZGRJblNldHRpbmdzSW5mbyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdGlhbGl6ZURhc2hib2FyZENvbnRlbnQoaW5mbzogQWRkSW5EYXNoYm9hcmRJbmZvLCBzaGVldFBhdGg6IFNoZWV0UGF0aCk6IERhc2hib2FyZENvbnRlbnQge1xyXG4gICAgY29uc3QgZGFzaGJvYXJkSW1wbCA9IG5ldyBEYXNoYm9hcmRJbXBsKGluZm8sIHNoZWV0UGF0aCk7XHJcbiAgICBjb25zdCBkYXNoYm9hcmQgPSBuZXcgRGFzaGJvYXJkKGRhc2hib2FyZEltcGwpO1xyXG4gICAgcmV0dXJuIG5ldyBEYXNoYm9hcmRDb250ZW50KGRhc2hib2FyZCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRpYWxpemVTZXR0aW5ncyhzZXR0aW5nc0luZm86IEFkZEluU2V0dGluZ3NJbmZvKTogU2V0dGluZ3Mge1xyXG4gICAgY29uc3Qgc2V0dGluZ3NJbXBsID0gbmV3IFNldHRpbmdzSW1wbChzZXR0aW5nc0luZm8pO1xyXG4gICAgcmV0dXJuIG5ldyBTZXR0aW5ncyhzZXR0aW5nc0ltcGwpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiAuLi9zcmMvSW50ZXJuYWwvQWRkSW5JbXBsLnRzXG4gKiovIiwiLyoqXHJcbiAqIFRoaXMgaXMgeW91ciBtYWluLiBUaGlzIGlzIHdoZXJlIHlvdSByZS1leHBvcnQgZXZlcnl0aGluZyB5b3Ugd2FudCB0byBiZSBwdWJsaWNseSBhdmFpbGFibGUuXHJcbiAqXHJcbiAqIFRoZSBidWlsZCBlbmZvcmNlcyB0aGF0IHRoZSBmaWxlIGhhcyB0aGUgc2FtZSBuYW1lIGFzIHRoZSBnbG9iYWwgdmFyaWFibGUgdGhhdCBpcyBleHBvcnRlZC5cclxuICovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZS9FbnVtcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlL0ludGVybmFsQXBpRGlzcGF0Y2hlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlL01vZGVscyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlL05vdGlmaWNhdGlvbnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZS9QYXJhbWV0ZXJzJztcclxuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2UvVmVyYnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZS9WZXJzaW9uTnVtYmVyJztcclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3Qvc3JjL0FwaUludGVybmFsQ29udHJhY3QudHNcbiAqKi8iLCJleHBvcnQgZW51bSBBZGRJbkNvbnRleHQge1xyXG4gIERlc2t0b3AgPSAnZGVza3RvcCcsXHJcbiAgU2VydmVyID0gJ3NlcnZlcicsXHJcbiAgVW5rbm93biA9ICd1bmtub3duJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBBZGRJbk1vZGUge1xyXG4gIEF1dGhvcmluZyA9ICdhdXRob3JpbmcnLFxyXG4gIFZpZXdpbmcgPSAndmlld2luZycsXHJcbiAgVW5rbm93biA9ICd1bmtub3duJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBEYXNoYm9hcmRPYmplY3RUeXBlIHtcclxuICBCbGFuayA9ICdibGFuaycsXHJcbiAgV29ya3NoZWV0ID0gJ3dvcmtzaGVldCcsXHJcbiAgUXVpY2tGaWx0ZXIgPSAncXVpY2stZmlsdGVyJyxcclxuICBQYXJhbWV0ZXJDb250cm9sID0gJ3BhcmFtZXRlci1jb250cm9sJyxcclxuICBQYWdlRmlsdGVyID0gJ3BhZ2UtZmlsdGVyJyxcclxuICBMZWdlbmQgPSAnbGVnZW5kJyxcclxuICBUaXRsZSA9ICd0aXRsZScsXHJcbiAgVGV4dCA9ICd0ZXh0JyxcclxuICBJbWFnZSA9ICdpbWFnZScsXHJcbiAgV2ViUGFnZSA9ICd3ZWItcGFnZScsXHJcbiAgQWRkSW4gPSAnYWRkaW4nXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIERhdGFUeXBlIHtcclxuICBTdHJpbmcgPSAnc3RyaW5nJyxcclxuICBJbnQgPSAnaW50JyxcclxuICBGbG9hdCA9ICdmbG9hdCcsXHJcbiAgQm9vbCA9ICdib29sJyxcclxuICBEYXRlID0gJ2RhdGUnLFxyXG4gIERhdGVUaW1lID0gJ2RhdGUtdGltZScsXHJcbiAgU3BhdGlhbCA9ICdzcGF0aWFsJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBFbmNvZGVkRGF0YVR5cGUge1xyXG4gIE51bWJlciA9ICdudW1iZXInLFxyXG4gIFN0cmluZyA9ICdzdHJpbmcnLFxyXG4gIERhdGUgPSAnZGF0ZScsXHJcbiAgQm9vbGVhbiA9ICdib29sZWFuJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBFcnJvckNvZGUge1xyXG4gIFNlcnZlckVycm9yID0gJ3NlcnZlci1lcnJvcicsXHJcbiAgSW52YWxpZEFnZ3JlZ2F0aW9uRmllbGROYW1lID0gJ2ludmFsaWQtYWdncmVnYXRpb24tZmllbGQtbmFtZScsXHJcbiAgSW52YWxpZEZpbHRlckZpZWxkTmFtZSA9ICdpbnZhbGlkLWZpbHRlci1maWVsZG5hbWUnLFxyXG4gIEludmFsaWRGaWx0ZXJGaWVsZFZhbHVlID0gJ2ludmFsaWQtZmlsdGVyLWZpZWxkLXZhbHVlJ1xyXG59XHJcblxyXG4vKipcclxuICogIFRoZSBkaWZmZXJlbnQgdXBkYXRlIHR5cGVzIGZvciBhcHBseWluZyBmaWx0ZXIuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBGaWx0ZXJVcGRhdGVUeXBlIHtcclxuICBBZGQgPSAnYWRkJyxcclxuICBBbGwgPSAnYWxsJyxcclxuICBSZXBsYWNlID0gJ3JlcGxhY2UnLFxyXG4gIFJlbW92ZSA9ICdyZW1vdmUnXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFNoZWV0VHlwZSB7XHJcbiAgRGFzaGJvYXJkID0gJ2Rhc2hib2FyZCcsXHJcbiAgU3RvcnkgPSAnc3RvcnknLFxyXG4gIFdvcmtzaGVldCA9ICd3b3Jrc2hlZXQnLFxyXG4gIEFkZGluID0gJ2FkZGluJ1xyXG59XHJcblxyXG4vKipcclxuICogVGhlIG9wdGlvbiBmb3Igc3BlY2lmeWluZyB3aGljaCB2YWx1ZXMgdG8gaW5jbHVkZSBmb3IgZmlsdGVyaW5nLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gTnVsbE9wdGlvbiB7XHJcbiAgTnVsbFZhbHVlcyA9ICdudWxsdmFsdWVzJyxcclxuICBOb25OdWxsVmFsdWVzID0gJ25vbm51bGx2YWx1ZXMnLFxyXG4gIEFsbFZhbHVlcyA9ICdhbGx2YWx1ZXMnXHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3Qvc3JjL2ludGVyZmFjZS9FbnVtcy50c1xuICoqLyIsImltcG9ydCB7IE1vZGVsIH0gZnJvbSAnLi9Nb2RlbHMnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25JZCB9IGZyb20gJy4vTm90aWZpY2F0aW9ucyc7XHJcbmltcG9ydCB7IFZlcmJJZCB9IGZyb20gJy4vVmVyYnMnO1xyXG5pbXBvcnQgeyBWZXJzaW9uTnVtYmVyIH0gZnJvbSAnLi9WZXJzaW9uTnVtYmVyJztcclxuXHJcbmV4cG9ydCB0eXBlIE5vdGlmaWNhdGlvbkhhbmRsZXIgPSAobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24pID0+IHZvaWQ7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWN1dGVQYXJhbWV0ZXJzIHtcclxuICBba2V5OiBzdHJpbmddOiBNb2RlbDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFeGVjdXRlUmVzcG9uc2Uge1xyXG4gIHJlc3VsdDogTW9kZWw7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uIHtcclxuICBub3RpZmljYXRpb25JZDogTm90aWZpY2F0aW9uSWQ7XHJcbiAgZGF0YTogTW9kZWw7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSW50ZXJuYWxBcGlEaXNwYXRjaGVyIHtcclxuICBzZXRWZXJzaW9uTnVtYmVyKHZlcnNpb25OdW1iZXI6IFZlcnNpb25OdW1iZXIpOiB2b2lkO1xyXG4gIGV4ZWN1dGUodmVyYjogVmVyYklkLCBwYXJhbWV0ZXJzOiBFeGVjdXRlUGFyYW1ldGVycyk6IFByb21pc2U8RXhlY3V0ZVJlc3BvbnNlPjtcclxuICByZWdpc3Rlck5vdGlmaWNhdGlvbkhhbmRsZXIoaGFuZGxlcjogTm90aWZpY2F0aW9uSGFuZGxlcik6IHZvaWQ7XHJcbiAgdW5yZWdpc3Rlck5vdGlmaWNhdGlvbkhhbmRsZXIoaGFuZGxlcjogTm90aWZpY2F0aW9uSGFuZGxlcik6IHZvaWQ7XHJcbn1cclxuXHJcbmRlY2xhcmUgZ2xvYmFsIHtcclxuICBpbnRlcmZhY2UgV2luZG93IHsgX190YWJsZWF1RGVza3RvcERpc3BhdGNoZXI6IFByb21pc2U8SW50ZXJuYWxBcGlEaXNwYXRjaGVyPjsgfVxyXG59XHJcblxyXG5leHBvcnQgbmFtZXNwYWNlIEludGVybmFsQXBpRGlzcGF0Y2hlckhvbGRlciB7XHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldERlc2t0b3BEaXNwYXRjaGVyUHJvbWlzZSgpOiBQcm9taXNlPEludGVybmFsQXBpRGlzcGF0Y2hlcj4ge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5fX3RhYmxlYXVEZXNrdG9wRGlzcGF0Y2hlcjtcclxuICB9XHJcblxyXG4gIGV4cG9ydCBmdW5jdGlvbiBoYXNEZXNrdG9wQXBpRGlzcGF0Y2hlclByb21pc2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISFJbnRlcm5hbEFwaURpc3BhdGNoZXJIb2xkZXIuZ2V0RGVza3RvcERpc3BhdGNoZXJQcm9taXNlKCk7XHJcbiAgfVxyXG5cclxuICBleHBvcnQgZnVuY3Rpb24gc2V0RGVza3RvcERpc3BhdGNoZXJQcm9taXNlKGRpc3BhdGNoZXI6IFByb21pc2U8SW50ZXJuYWxBcGlEaXNwYXRjaGVyPik6IHZvaWQge1xyXG4gICAgd2luZG93Ll9fdGFibGVhdURlc2t0b3BEaXNwYXRjaGVyID0gZGlzcGF0Y2hlcjtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3Qvc3JjL2ludGVyZmFjZS9JbnRlcm5hbEFwaURpc3BhdGNoZXIudHNcbiAqKi8iLCJleHBvcnQgZW51bSBOb3RpZmljYXRpb25JZCB7XHJcbiAgU2VsZWN0ZWRNYXJrc0NoYW5nZWQgPSAnc2VsZWN0ZWQtbWFya3MtY2hhbmdlZCdcclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9zcmMvaW50ZXJmYWNlL05vdGlmaWNhdGlvbnMudHNcbiAqKi8iLCJleHBvcnQgZW51bSBQYXJhbWV0ZXJJZCB7XHJcbiAgQWRkSW5Mb2NhdG9yID0gJ2FkZC1pbi1sb2NhdG9yJyxcclxuICBBZGRJbkJvb3RzdHJhcEluZm8gPSAnYWRkLWluLWJvb3RzdHJhcC1pbmZvJyxcclxuICBBZGRJblNldHRpbmdzSW5mbyA9ICdhZGQtaW4tc2V0dGluZ3MtaW5mbycsXHJcbiAgVmlzdWFsSWQgPSAndmlzdWFsLWlkJyxcclxuICBTaGVldFBhdGggPSAnc2hlZXQtcGF0aCcsXHJcbiAgSWdub3JlQWxpYXNlcyA9ICdpZ25vcmUtYWxpYXNlcycsXHJcbiAgSWdub3JlU2VsZWN0aW9uID0gJ2lnbm9yZS1zZWxlY3Rpb24nLFxyXG4gIEluY2x1ZGVBbGxDb2x1bW5zID0gJ2luY2x1ZGUtYWxsLWNvbHVtbnMnLFxyXG4gIE1heFJvd3MgPSAnbWF4LXJvd3MnLFxyXG4gIFVuZGVybHlpbmdEYXRhVGFibGUgPSAndW5kZXJseWluZy1kYXRhLXRhYmxlJyxcclxuICBVbmRlcmx5aW5nU3VtbWFyeURhdGFUYWJsZSA9ICd1bmRlcmx5aW5nLXN1bW1hcnktZGF0YS10YWJsZScsXHJcbiAgU2V0dGluZ3NWYWx1ZXMgPSAnc2V0dGluZ3MtdmFsdWVzJyxcclxuICBTZWxlY3RlZERhdGEgPSAnc2VsZWN0ZWQtZGF0YScsXHJcbiAgSGlnaGxpZ2h0ZWREYXRhID0gJ2hpZ2hsaWdodGVkLWRhdGEnLFxyXG5cclxuICAgLy8gRmlsdGVyIFBhcmFtc1xyXG4gIEZpZWxkTmFtZSA9ICdmaWVsZC1uYW1lJyxcclxuICBGaWx0ZXJWYWx1ZXMgPSAnZmlsdGVyLXZhbHVlcycsXHJcbiAgRmlsdGVyVXBkYXRlVHlwZSA9ICdmaWx0ZXItdXBkYXRlLXR5cGUnLFxyXG4gIElzRXhjbHVkZU1vZGUgPSAnaXMtZXhjbHVkZScsXHJcbiAgRmlsdGVyUmFuZ2VNaW4gPSAnZmlsdGVyLXJhbmdlLW1pbicsXHJcbiAgRmlsdGVyUmFuZ2VNYXggPSAnZmlsdGVyLXJhbmdlLW1heCcsXHJcbiAgRmlsdGVyUmFuZ2VOdWxsT3B0aW9uID0gJ2ZpbHRlci1yYW5nZS1udWxsLW9wdGlvbicsXHJcblxyXG4gIFdvcmtzaGVldE5hbWUgPSAnd29ya3NoZWV0LW5hbWUnXHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3Qvc3JjL2ludGVyZmFjZS9QYXJhbWV0ZXJzLnRzXG4gKiovIiwiLy8gRGVjbGFyZSB0aGlzIGtleSB0eXBlIGFuZCBleHBvcnQgdGhlIE5vdGlmaWNhdGlvbklkIHRvIG1ha2UgdGhpcyBiZWhhdmUgbGlrZSBhIHN0cmluZyBlbnVtXHJcbmV4cG9ydCBlbnVtIFZlcmJJZCB7XHJcbiAgQXBwbHlDYXRlZ29yaWNhbEZpbHRlciA9ICdjYXRlZ29yaWNhbC1maWx0ZXInLFxyXG4gIEFwcGx5UmFuZ2VGaWx0ZXIgPSAncmFuZ2UtZmlsdGVyJyxcclxuICBDbGVhckZpbHRlciA9ICdjbGVhci1maWx0ZXInLFxyXG4gIEluaXRpYWxpemVBZGRJbiA9ICdpbml0aWFsaXplLWFkZC1pbicsXHJcbiAgR2V0RGF0YVN1bW1hcnlEYXRhID0gJ2dldC1zdW1tYXJ5LWRhdGEnLFxyXG4gIEdldFVuZGVybHlpbmdEYXRhID0gJ2dldC11bmRlcmx5aW5nLWRhdGEnLFxyXG4gIFNhdmVBZGRJblNldHRpbmdzID0gJ3NhdmUtYWRkLWluLXNldHRpbmdzJyxcclxuICBHZXRTZWxlY3RlZE1hcmtzID0gJ2dldC1zZWxlY3RlZC1tYXJrcycsXHJcbiAgR2V0SGlnaGxpZ2h0ZWRNYXJrcyA9ICdnZXQtaGlnaGxpZ2h0ZWQtbWFya3MnXHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3Qvc3JjL2ludGVyZmFjZS9WZXJicy50c1xuICoqLyIsIi8qKlxyXG4gKiBUaGlzIGlzIHlvdXIgbWFpbi4gVGhpcyBpcyB3aGVyZSB5b3UgcmUtZXhwb3J0IGV2ZXJ5dGhpbmcgeW91IHdhbnQgdG8gYmUgcHVibGljbHkgYXZhaWxhYmxlLlxyXG4gKlxyXG4gKiBUaGUgYnVpbGQgZW5mb3JjZXMgdGhhdCB0aGUgZmlsZSBoYXMgdGhlIHNhbWUgbmFtZSBhcyB0aGUgZ2xvYmFsIHZhcmlhYmxlIHRoYXQgaXMgZXhwb3J0ZWQuXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9FdmVudExpc3RlbmVyTWFuYWdlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vU2luZ2xlRXZlbnRNYW5hZ2VyJztcclxuZXhwb3J0ICogZnJvbSAnLi9Nb2RlbHMvR2V0RGF0YU1vZGVscyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vRXhjZXB0aW9ucy9UYWJsZWF1RXhjZXB0aW9ucyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vRXZlbnRzL01hcmtzU2VsZWN0ZWRFdmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vRXZlbnRzL1RhYmxlYXVFdmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vRXZlbnRzL1RhYmxlYXVTaGVldEV2ZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9FdmVudHMvVGFibGVhdVdvcmtzaGVldEV2ZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9JbnRlcm5hbC9TaW5nbGVFdmVudE1hbmFnZXJJbXBsJztcclxuZXhwb3J0ICogZnJvbSAnLi9TZXJ2aWNlcy9HZXREYXRhU2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vU2VydmljZXMvRmlsdGVyU2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vU2VydmljZXMvTm90aWZpY2F0aW9uU2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vU2VydmljZXMvUmVnaXN0ZXJBbGxTaGFyZWRTZXJ2aWNlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vU2VydmljZXMvU2VydmljZVJlZ2lzdHJ5JztcclxuZXhwb3J0ICogZnJvbSAnLi9FbnVtTWFwcGluZ3MvSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzJztcclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9BcGlTaGFyZWQudHNcbiAqKi8iLCJpbXBvcnQge1xyXG4gIEV2ZW50TGlzdGVuZXJNYW5hZ2VyIGFzIEV2ZW50TGlzdGVuZXJNYW5hZ2VyQ29udHJhY3QsXHJcbiAgVGFibGVhdUV2ZW50SGFuZGxlckZuLFxyXG4gIFRhYmxlYXVFdmVudFR5cGUsXHJcbiAgVGFibGVhdUV2ZW50VW5yZWdpc3RlckZuXHJcbn0gZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IFNpbmdsZUV2ZW50TWFuYWdlciB9IGZyb20gJy4vU2luZ2xlRXZlbnRNYW5hZ2VyJztcclxuXHJcbi8qKlxyXG4gKiBDbGFzcyBkZXNpZ25lZCB0byByZWdpc3RlciBhbmQgdW5yZWdpc3RlciBoYW5kbGVycyBmcm9tIGEgdXNlci4gT25seSB0aG9zZSBldmVudHNcclxuICogd2hpY2ggYXJlIGFkZGVkIHZpYSBBZGROZXdFdmVudFR5cGUgd2lsbCBiZSBzdXBwb3J0ZWQgYnkgdGhpcyBpbnN0YW5jZVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEV2ZW50TGlzdGVuZXJNYW5hZ2VyIGltcGxlbWVudHMgRXZlbnRMaXN0ZW5lck1hbmFnZXJDb250cmFjdCB7XHJcbiAgcHJpdmF0ZSBldmVudExpc3RlbmVyTWFuYWdlcnM6IHsgW3RhYmxlYXVFdmVudFR5cGU6IHN0cmluZ106IFNpbmdsZUV2ZW50TWFuYWdlcjsgfTtcclxuXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5ldmVudExpc3RlbmVyTWFuYWdlcnMgPSB7fTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZTogVGFibGVhdUV2ZW50VHlwZSwgaGFuZGxlcjogVGFibGVhdUV2ZW50SGFuZGxlckZuKTogVGFibGVhdUV2ZW50VW5yZWdpc3RlckZuIHtcclxuICAgIGlmICghdGhpcy5ldmVudExpc3RlbmVyTWFuYWdlcnMuaGFzT3duUHJvcGVydHkoZXZlbnRUeXBlKSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGV2ZW50IHR5cGUgOiAke2V2ZW50VHlwZX1gKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5ldmVudExpc3RlbmVyTWFuYWdlcnNbZXZlbnRUeXBlXS5hZGRFdmVudExpc3RlbmVyKGhhbmRsZXIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlOiBUYWJsZWF1RXZlbnRUeXBlLCBoYW5kbGVyOiBUYWJsZWF1RXZlbnRIYW5kbGVyRm4pOiBib29sZWFuIHtcclxuICAgIGlmICghdGhpcy5ldmVudExpc3RlbmVyTWFuYWdlcnMuaGFzT3duUHJvcGVydHkoZXZlbnRUeXBlKSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGV2ZW50IHR5cGUgOiAke2V2ZW50VHlwZX1gKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5ldmVudExpc3RlbmVyTWFuYWdlcnNbZXZlbnRUeXBlXS5yZW1vdmVFdmVudExpc3RlbmVyKGhhbmRsZXIpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGFkZE5ld0V2ZW50VHlwZShldmVudE1hbmFnZXI6IFNpbmdsZUV2ZW50TWFuYWdlcik6IHZvaWQge1xyXG4gICAgdGhpcy5ldmVudExpc3RlbmVyTWFuYWdlcnNbZXZlbnRNYW5hZ2VyLmV2ZW50VHlwZV0gPSBldmVudE1hbmFnZXI7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRXZlbnRMaXN0ZW5lck1hbmFnZXIudHNcbiAqKi8iLCJpbXBvcnQge1xyXG4gIENvbHVtbiBhcyBDb2x1bW5Db250cmFjdCxcclxuICBEYXRhVGFibGUgYXMgRGF0YVRhYmxlQ29udHJhY3QsXHJcbiAgRGF0YVR5cGUsXHJcbiAgRGF0YVZhbHVlIGFzIERhdGFWYWx1ZUNvbnRyYWN0XHJcbn0gZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmV4cG9ydCBjbGFzcyBEYXRhVGFibGUgaW1wbGVtZW50cyBEYXRhVGFibGVDb250cmFjdCB7XHJcbiAgcHJpdmF0ZSBfbmFtZTogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9kYXRhOiBBcnJheTxBcnJheTxEYXRhVmFsdWVDb250cmFjdD4+LFxyXG4gICAgcHJpdmF0ZSBfY29sdW1uczogQXJyYXk8Q29sdW1uQ29udHJhY3Q+LFxyXG4gICAgcHJpdmF0ZSBfdG90YWxSb3dDb3VudDogbnVtYmVyLFxyXG4gICAgcHJpdmF0ZSBfaXNTdW1tYXJ5RGF0YTogYm9vbGVhbikge1xyXG4gICAgICAgIC8vIFRPRE86IGdldCByaWQgb2YgdGhpcyBpbiByZWRlc2lnbi5cclxuICAgICAgICB0aGlzLl9uYW1lID0gX2lzU3VtbWFyeURhdGEgPyAnU3VtbWFyeSBEYXRhIFRhYmxlJyA6ICdVbmRlcmx5aW5nIERhdGEgVGFibGUnO1xyXG4gICAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9uYW1lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBkYXRhKCk6IEFycmF5PEFycmF5PERhdGFWYWx1ZUNvbnRyYWN0Pj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGE7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNvbHVtbnMoKTogQXJyYXk8Q29sdW1uQ29udHJhY3Q+IHtcclxuICAgIHJldHVybiB0aGlzLl9jb2x1bW5zO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB0b3RhbFJvd0NvdW50KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fdG90YWxSb3dDb3VudDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaXNTdW1tYXJ5RGF0YSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9pc1N1bW1hcnlEYXRhO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbHVtbiBpbXBsZW1lbnRzIENvbHVtbkNvbnRyYWN0IHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9maWVsZE5hbWU6IHN0cmluZyxcclxuICAgIHByaXZhdGUgX2RhdGFUeXBlOiBEYXRhVHlwZSwgLy8gVE9ETzogdGhpcyBzaG91ZGwgYmUgYW4gZW51bSB0eXBlXHJcbiAgICBwcml2YXRlIF9pc1JlZmVyZW5jZWQ6IGJvb2xlYW4sXHJcbiAgICBwcml2YXRlIF9pbmRleDogbnVtYmVyKSB7fVxyXG5cclxuICBwdWJsaWMgZ2V0IGZpZWxkTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkTmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZGF0YVR5cGUoKTogRGF0YVR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGFUeXBlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpc1JlZmVyZW5jZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNSZWZlcmVuY2VkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpbmRleCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2luZGV4O1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERhdGFWYWx1ZSBpbXBsZW1lbnRzIERhdGFWYWx1ZUNvbnRyYWN0IHtcclxuICAvKiB0c2xpbnQ6ZGlzYWJsZTpuby1hbnkgKi9cclxuICBwdWJsaWMgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF92YWx1ZTogYW55LFxyXG4gICAgcHJpdmF0ZSBfZm9ybWF0dGVkVmFsdWU6IHN0cmluZykge31cclxuXHJcbiAgcHVibGljIGdldCB2YWx1ZSgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBmb3JtYXR0ZWRWYWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1hdHRlZFZhbHVlO1xyXG4gIH1cclxuICAvKiB0c2xpbnQ6ZW5hYmxlOm5vLWFueSAqL1xyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvTW9kZWxzL0dldERhdGFNb2RlbHMudHNcbiAqKi8iLCJleHBvcnQgY2xhc3MgVGFibGVhdUV4Y2VwdGlvbnMge1xyXG4gIC8vIFRPRE8sIEFwaUVycm9yQ29kZXMgbmVlZCB0byBiZSBhZGRlZCB0byBleHRlcm5hbCBpbnRlcmZhY2VzLlxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRXhjZXB0aW9ucy9UYWJsZWF1RXhjZXB0aW9ucy50c1xuICoqLyIsImltcG9ydCB7XHJcbiAgQWN0aXZlTWFya3MsXHJcbiAgTWFya3NTZWxlY3RlZEV2ZW50IGFzIE1hcmtzU2VsZWN0ZWRFdmVudENvbnRyYWN0LFxyXG4gIFRhYmxlYXVFdmVudFR5cGUsXHJcbiAgV29ya3NoZWV0IGFzIFdvcmtzaGVldENvbnRyYWN0LFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBUYWJsZWF1V29ya3NoZWV0RXZlbnQgfSBmcm9tICcuL1RhYmxlYXVXb3Jrc2hlZXRFdmVudCc7XHJcblxyXG5leHBvcnQgY2xhc3MgTWFya3NTZWxlY3RlZEV2ZW50IGV4dGVuZHMgVGFibGVhdVdvcmtzaGVldEV2ZW50IGltcGxlbWVudHMgTWFya3NTZWxlY3RlZEV2ZW50Q29udHJhY3Qge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcih3b3Jrc2hlZXQ6IFdvcmtzaGVldENvbnRyYWN0KSB7XHJcbiAgICBzdXBlcihUYWJsZWF1RXZlbnRUeXBlLk1hcmtTZWxlY3Rpb25DaGFuZ2VkLCB3b3Jrc2hlZXQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldE1hcmtzQXN5bmMoKTogUHJvbWlzZTxBY3RpdmVNYXJrcz4ge1xyXG4gICAgcmV0dXJuIHRoaXMud29ya3NoZWV0LmdldFNlbGVjdGVkTWFya3NBc3luYygpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0V2ZW50cy9NYXJrc1NlbGVjdGVkRXZlbnQudHNcbiAqKi8iLCIvKipcclxuICogVGhpcyBpcyB5b3VyIG1haW4uIFRoaXMgaXMgd2hlcmUgeW91IHJlLWV4cG9ydCBldmVyeXRoaW5nIHlvdSB3YW50IHRvIGJlIHB1YmxpY2x5IGF2YWlsYWJsZS5cclxuICpcclxuICogVGhlIGJ1aWxkIGVuZm9yY2VzIHRoYXQgdGhlIGZpbGUgaGFzIHRoZSBzYW1lIG5hbWUgYXMgdGhlIGdsb2JhbCB2YXJpYWJsZSB0aGF0IGlzIGV4cG9ydGVkLlxyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vRGF0YVNvdXJjZUludGVyZmFjZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL0VudW1zJztcclxuZXhwb3J0ICogZnJvbSAnLi9FdmVudEludGVyZmFjZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL0ZpbHRlckludGVyZmFjZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL0dldERhdGFJbnRlcmZhY2VzJztcclxuZXhwb3J0ICogZnJvbSAnLi9TaGVldEludGVyZmFjZXMnO1xyXG5leHBvcnQgeyBBZGRJbiB9IGZyb20gJy4vRXh0ZXJuYWxOYW1lc3BhY2VzL0FkZGluJztcclxuZXhwb3J0IHsgRGFzaGJvYXJkQ29udGVudCB9IGZyb20gJy4vRXh0ZXJuYWxOYW1lc3BhY2VzL0Rhc2hib2FyZENvbnRlbnQnO1xyXG5leHBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4vRXh0ZXJuYWxOYW1lc3BhY2VzL0Vudmlyb25tZW50JztcclxuZXhwb3J0IHsgU2V0dGluZ3MgfSBmcm9tICcuL0V4dGVybmFsTmFtZXNwYWNlcy9TZXR0aW5ncyc7XHJcbmV4cG9ydCB7IFVJIH0gZnJvbSAnLi9FeHRlcm5hbE5hbWVzcGFjZXMvVUknO1xyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1leHRlcm5hbC1jb250cmFjdC9zcmMvQXBpRXh0ZXJuYWxDb250cmFjdC50c1xuICoqLyIsIi8vIEFsbCBlbnVtIHZhbHVlcyBtYWRlIGF2YWlsYWJsZSB0byBBZGRJbiBkZXZlbG9wZXJzLlxyXG4vLyBFbnVtcyBzaG91bGQgYmUga2VwdCBpbiBhbHBoYWJldGljYWwgb3JkZXIuXHJcblxyXG4vKipcclxuICogVGhlIGNvbnRleHQgaW4gd2hpY2ggdGhlIEFkZEluIGlzIGN1cnJlbnRseSBydW5uaW5nLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gQWRkSW5Db250ZXh0IHtcclxuICBEZXNrdG9wID0gJ2Rlc2t0b3AnLFxyXG4gIFNlcnZlciA9ICdzZXJ2ZXInLFxyXG4gIFVua25vd24gPSAndW5rbm93bidcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoZSBtb2RlIGluIHdoaWNoIHRoZSBBZGRJbiBpcyBjdXJyZW50bHkgcnVubmluZy5cclxuICovXHJcbmV4cG9ydCBlbnVtIEFkZEluTW9kZSB7XHJcbiAgQXV0aG9yaW5nID0gJ2F1dGhvcmluZycsXHJcbiAgVmlld2luZyA9ICd2aWV3aW5nJyxcclxuICBVbmtub3duID0gJ3Vua25vd24nXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBXaGF0IHRoZSBvYmplY3QgcmVwcmVzZW50cyBpbiBhIGRhc2hib2FyZC5cclxuICovXHJcbmV4cG9ydCBlbnVtIERhc2hib2FyZE9iamVjdFR5cGUge1xyXG4gIEJsYW5rID0gJ2JsYW5rJyxcclxuICBXb3Jrc2hlZXQgPSAnd29ya3NoZWV0JyxcclxuICBRdWlja0ZpbHRlciA9ICdxdWljay1maWx0ZXInLFxyXG4gIFBhcmFtZXRlckNvbnRyb2wgPSAncGFyYW1ldGVyLWNvbnRyb2wnLFxyXG4gIFBhZ2VGaWx0ZXIgPSAncGFnZS1maWx0ZXInLFxyXG4gIExlZ2VuZCA9ICdsZWdlbmQnLFxyXG4gIFRpdGxlID0gJ3RpdGxlJyxcclxuICBUZXh0ID0gJ3RleHQnLFxyXG4gIEltYWdlID0gJ2ltYWdlJyxcclxuICBXZWJQYWdlID0gJ3dlYi1wYWdlJyxcclxuICBBZGRJbiA9ICdhZGRpbidcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoZSBkaWZmZXJlbnQgdHlwZXMgb2YgZGF0YSBhIHZhbHVlIGNhbiBoYXZlXHJcbiAqL1xyXG5leHBvcnQgZW51bSBEYXRhVHlwZSB7XHJcbiAgU3RyaW5nID0gJ3N0cmluZycsXHJcbiAgSW50ID0gJ2ludCcsXHJcbiAgRmxvYXQgPSAnZmxvYXQnLFxyXG4gIEJvb2wgPSAnYm9vbCcsXHJcbiAgRGF0ZSA9ICdkYXRlJyxcclxuICBEYXRlVGltZSA9ICdkYXRlLXRpbWUnLFxyXG4gIFNwYXRpYWwgPSAnc3BhdGlhbCdcclxufVxyXG5cclxuLyoqXHJcbiAqIFZhbGlkIGRhdGUgcmFuZ2VzIGZvciBhIHJlbGF0aXZlIGRhdGUgZmlsdGVyLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gRGF0ZVJhbmdlVHlwZSB7XHJcbiAgTGFzdCA9ICdsYXN0JyxcclxuICBMYXN0TiA9ICdsYXN0LW4nLFxyXG4gIE5leHQgPSAnbmV4dCcsXHJcbiAgTmV4dE4gPSAnbmV4dC1uJyxcclxuICBDdXJyZW50ID0gJ2N1cnJlbnQnLFxyXG4gIFRvRGF0ZSA9ICd0by1kYXRlJ1xyXG59XHJcblxyXG4vKipcclxuICogVHlwZXMgb2YgZGlhbG9nIGV2ZW50IGZvciBldmVudCBsaXN0ZW5pbmcgYmV0d2VlbiBhIHBhcmVudCBBZGRJbiBhbmQgYSBwb3B1cCBkaWFsb2cuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBEaWFsb2dFdmVudFR5cGUge1xyXG4gIERpYWxvZ01lc3NhZ2UgPSAnZGlhbG9nLW1lc3NhZ2UnLFxyXG4gIERpYWxvZ0V2ZW50ID0gJ2RpYWxvZy1ldmVudCdcclxufVxyXG5cclxuLyoqXHJcbiAqIEFsbCBlcnJvciBjb2RlcyB1c2VkIGJ5IHRoZSBBZGRJbiBBUEkuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBFcnJvckNvZGVzIHtcclxuICAvKipcclxuICAgKiBPbmx5IG9uZSBkaWFsb2cgY2FuIGJlIG9wZW5lZCBhdCB0aW1lIHdpdGggdGhlIFVJIG5hbWVzcGFjZSBmdW5jdGlvbmFsaXR5LlxyXG4gICAqL1xyXG4gIERpYWxvZ0FscmVhZHlPcGVuID0gJ2RpYWxvZy1hbHJlYWR5LW9wZW4nLFxyXG4gIC8qKlxyXG4gICAqIFRoZSBvcGVuIGRpYWxvZyB3YXMgY2xvc2VkIGJ5IHRoZSB1c2VyLlxyXG4gICAqL1xyXG4gIERpYWxvZ0Nsb3NlZEJ5VXNlciA9ICdkaWFsb2ctY2xvc2VkLWJ5LXVzZXInLFxyXG4gIC8qKlxyXG4gICAqIEFuIGVycm9yIG9jY3VycmVkIHdoaWxlIGF0dGVtcHRpbmcgdG8gcGVyZm9ybSBhIGZpbHRlciBvcGVyYXRpb24uXHJcbiAgICovXHJcbiAgRmlsdGVyQ2Fubm90QmVQZXJmb3JtZWQgPSAnZmlsdGVyLWNhbm5vdC1iZS1wZXJmb3JtZWQnLFxyXG4gIC8qKlxyXG4gICAqIEFuIGVycm9yIG9jY3VycmVkIHdpdGhpbiB0aGUgVGFibGVhdSBBZGRJbiBBUEkuIENvbnRhY3QgVGFibGVhdSBTdXBwb3J0LlxyXG4gICAqL1xyXG4gIEludGVybmFsRXJyb3IgPSAnaW50ZXJuYWwtZXJyb3InLFxyXG4gIC8qKlxyXG4gICAqIEFuIGludmFsaWQgYWdncmVnYXRpb24gd2FzIHNwZWNpZmllZCBmb3IgdGhlIGZpbHRlciwgc3VjaCBhcyBzZXR0aW5nIGEgcmFuZ2UgZmlsdGVyIHRvIFwiU1VNKFNhbGVzKVwiIGluc3RlYWQgb2YgXCJTYWxlc1wiLlxyXG4gICAqL1xyXG4gIEludmFsaWRBZ2dyZWdhdGlvbkZpZWxkTmFtZSA9ICdpbnZhbGlkLWFnZ3JlZ2F0aW9uLWZpZWxkLW5hbWUnLFxyXG4gIC8qKlxyXG4gICAqIEEgZGlhbG9nIG11c3QgZmlyc3QgbGF1bmNoIHRvLCBhbmQgc2VuZCBtZXNzYWdlcyBmcm9tLCB0aGUgc2FtZSBkb21haW4gYXMgdGhlIHBhcmVudCBBZGRJbi5cclxuICAgKi9cclxuICBJbnZhbGlkRG9tYWluRGlhbG9nID0gJ2ludmFsaWQtZGlhbG9nLWRvbWFpbicsXHJcbiAgLyoqXHJcbiAgICogQW4gaW52YWxpZCBkYXRlIHdhcyBzcGVjaWZpZWQgaW4gYSBtZXRob2QgdGhhdCByZXF1aXJlZCBhIGRhdGUgcGFyYW1ldGVyLlxyXG4gICAqL1xyXG4gIEludmFsaWREYXRlUGFyYW1ldGVyID0gJ2ludmFsaWQtZGF0ZS1wYXJhbWV0ZXInLFxyXG4gIC8qKlxyXG4gICAqIEEgZmlsdGVyIG9wZXJhdGlvbiB3YXMgYXR0ZW1wdGVkIG9uIGEgZmllbGQgdGhhdCBkb2VzIG5vdCBleGlzdCBpbiB0aGUgZGF0YSBzb3VyY2UuXHJcbiAgICovXHJcbiAgSW52YWxpZEZpbHRlckZpZWxkTmFtZSA9ICdpbnZhbGlkLWZpbHRlci1maWVsZC1uYW1lJyxcclxuICAvKipcclxuICAgKiBBIGZpbHRlciBvcGVyYXRpb24gd2FzIGF0dGVtcHRlZCB1c2luZyBhIHZhbHVlIHRoYXQgaXMgdGhlIHdyb25nIGRhdGEgdHlwZSBvciBmb3JtYXQuXHJcbiAgICovXHJcbiAgSW52YWxpZEZpbHRlckZpZWxkVmFsdWUgPSAnaW52YWxpZC1maWx0ZXItZmllbGQtdmFsdWUnLFxyXG4gIC8qKlxyXG4gICAqIEEgcGFyYW1ldGVyIGlzIG5vdCB0aGUgY29ycmVjdCBkYXRhIHR5cGUgb3IgZm9ybWF0LiBUaGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyIGlzIHNwZWNpZmllZCBpbiB0aGUgRXJyb3IubWVzc2FnZSBmaWVsZC5cclxuICAgKi9cclxuICBJbnZhbGlkUGFyYW1ldGVyID0gJ2ludmFsaWQtcGFyYW1ldGVyJyxcclxuICAvKipcclxuICAgKiBBbiBpbnZhbGlkIGRhdGUgdmFsdWUgd2FzIHNwZWNpZmllZCBpbiBhIFNoZWV0LnNlbGVjdE1hcmtzQXN5bmMoKSBjYWxsIGZvciBhIGRhdGUgZmllbGQuXHJcbiAgICovXHJcbiAgSW52YWxpZFNlbGVjdGlvbkRhdGUgPSAnaW52YWxpZC1zZWxlY3Rpb24tZGF0ZScsXHJcbiAgLyoqXHJcbiAgICogQSBmaWVsZCB3YXMgc3BlY2lmaWVkIGluIGEgU2hlZXQuc2VsZWN0TWFya3NBc3luYygpIGNhbGwgdGhhdCBkb2VzIG5vdCBleGlzdCBpbiB0aGUgZGF0YSBzb3VyY2UuXHJcbiAgICovXHJcbiAgSW52YWxpZFNlbGVjdGlvbkZpZWxkTmFtZSA9ICdpbnZhbGlkLXNlbGVjdGlvbi1maWVsZC1uYW1lJyxcclxuICAvKipcclxuICAgKiBBbiBpbnZhbGlkIHZhbHVlIHdhcyBzcGVjaWZpZWQgaW4gYSBTaGVldC5zZWxlY3RNYXJrc0FzeW5jKCkgY2FsbC5cclxuICAgKi9cclxuICBJbnZhbGlkU2VsZWN0aW9uVmFsdWUgPSAnaW52YWxpZC1zZWxlY3Rpb24tdmFsdWUnLFxyXG4gIC8qKlxyXG4gICAqIEEgcmVxdWlyZWQgcGFyYW1ldGVyIHdhcyBub3Qgc3BlY2lmaWVkLCBudWxsLCBvciBhbiBlbXB0eSBzdHJpbmcvYXJyYXkuXHJcbiAgICovXHJcbiAgTnVsbE9yRW1wdHlQYXJhbWV0ZXIgPSAnbnVsbC1vci1lbXB0eS1wYXJhbWV0ZXInLFxyXG4gIC8qKlxyXG4gICAqIEFuIHVua25vd24gZXZlbnQgbmFtZSB3YXMgc3BlY2lmaWVkIGluIHRoZSBjYWxsIHRvIFZpei5hZGRFdmVudExpc3RlbmVyb3IgVml6LnJlbW92ZUV2ZW50TGlzdGVuZXIuXHJcbiAgICovXHJcbiAgVW5zdXBwb3J0ZWRFdmVudE5hbWUgPSAndW5zdXBwb3J0ZWQtZXZlbnQtbmFtZSdcclxufVxyXG5cclxuLyoqXHJcbiAqICBUeXBlIG9mIGFnZ3JlZ2F0aW9uIG9uIGEgZmllbGQuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBGaWVsZEFnZ3JlYXRpb25UeXBlIHtcclxuICBTdW0gPSAnc3VtJyxcclxuICBBdmcgPSAnYXZnJyxcclxuICBNaW4gPSAnbWluJyxcclxuICBNYXggPSAnbWF4JyxcclxuICBTdGRldiA9ICdzdGRldicsXHJcbiAgU3RkZXZwID0gJ3N0ZGV2cCcsXHJcbiAgVmFyID0gJ3ZhcicsXHJcbiAgVmFycCA9ICd2YXJwJyxcclxuICBDb3VudCA9ICdjb3VudCcsXHJcbiAgQ291bnRkID0gJ2NvdW50ZCcsXHJcbiAgTWVkaWFuID0gJ21lZGlhbicsXHJcbiAgQXR0ciA9ICdhdHRyJyxcclxuICBOb25lID0gJ25vbmUnLFxyXG4gIFllYXIgPSAneWVhcicsXHJcbiAgUXRyID0gJ3F0cicsXHJcbiAgTW9udGggPSAnbW9udGgnLFxyXG4gIERheSA9ICdkYXknLFxyXG4gIEhvdXIgPSAnaG91cicsXHJcbiAgTWludXRlID0gJ21pbnV0ZScsXHJcbiAgU2Vjb25kID0gJ3NlY29uZCcsXHJcbiAgV2VlayA9ICd3ZWVrJyxcclxuICBXZWVrZGF5ID0gJ3dlZWtkYXknLFxyXG4gIE1vbXRoWWVhciA9ICdtb250aC15ZWFyJyxcclxuICBNZHkgPSAnbWR5JyxcclxuICBFbmQgPSAnZW5kJyxcclxuICBUcnVuY1llYXIgPSAndHJ1bmMteWVhcicsXHJcbiAgVHJ1bmNRdHIgPSAndHJ1bmMtcXRyJyxcclxuICBUcnVuY01vbnRoID0gJ3RydW5jLW1vbnRoJyxcclxuICBUcnVuY1dlZWsgPSAndHJ1bmMtd2VlaycsXHJcbiAgVHJ1bmNEYXkgPSAndHJ1bmMtZGF5JyxcclxuICBUcnVuY0hvdXIgPSAndHJ1bmMtaG91cicsXHJcbiAgVHJ1bmNNaW51dGUgPSAndHJ1bmMtbWludXRlJyxcclxuICBUcnVuY1NlY29uZCA9ICd0cnVuYy1zZWNvbmQnLFxyXG4gIFF1YXJ0MSA9ICdxdWFydDEnLFxyXG4gIFF1YXJ0MyA9ICdxdWFydDMnLFxyXG4gIFNrZXduZXNzID0gJ3NrZXduZXNzJyxcclxuICBLdXJ0b3NpcyA9ICdrdXJ0b3NpcycsXHJcbiAgSW5PdXQgPSAnaW4tb3V0JyxcclxuICBVc2VyID0gJ3VzZXInXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSb2xlIG9mIGEgZmllbGQuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBGaWVsZFJvbGVUeXBlIHtcclxuICBEaW1lbnNpb24gPSAnZGltZW5zaW9uJyxcclxuICBNZWFzdXJlID0gJ21lYXN1cmUnLFxyXG4gIFVua25vd24gPSAndW5rbm93bidcclxufVxyXG5cclxuLyoqXHJcbiAqIEFuIGVudW1lcmF0aW9uIG9mIHRoZSB2YWxpZCB0eXBlcyBvZiBmaWx0ZXJzIHRoYXQgY2FuIGJlIGFwcGxpZWQuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBGaWx0ZXJUeXBlIHtcclxuICBDYXRlZ29yaWNhbCA9ICdjYXRlZ29yaWNhbCcsXHJcbiAgUXVhbnRpdGF0aXZlID0gJ3F1YW50aXRhdGl2ZScsXHJcbiAgSGllcmFyY2hpY2FsID0gJ2hpZXJhcmNoaWNhbCcsXHJcbiAgUmVsYXRpdmVEYXRlID0gJ3JlbGF0aXZlLWRhdGEnXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGUgZGlmZmVyZW50IHVwZGF0ZSB0eXBlcyBmb3IgYXBwbHlpbmcgZmlsdGVyXHJcbiAqL1xyXG5leHBvcnQgZW51bSBGaWx0ZXJVcGRhdGVUeXBlIHtcclxuICBBZGQgPSAnYWRkJyxcclxuICBBbGwgPSAnYWxsJyxcclxuICBSZXBsYWNlID0gJ3JlcGxhY2UnLFxyXG4gIFJlbW92ZSA9ICdyZW1vdmUnXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBJbmRpY2F0ZXMgd2hhdCB0byBkbyB3aXRoIG51bGwgdmFsdWVzIGZvciBhIGdpdmVuIGZpbHRlciBvciBtYXJrIHNlbGVjdGlvbiBjYWxsLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gTnVsbE9wdGlvbiB7XHJcbiAgTnVsbFZhbHVlcyA9ICdudWxsLXZhbHVlcycsXHJcbiAgTm9uTnVsbFZhbHVlcyA9ICdub24tbnVsbC12YWx1ZXMnLFxyXG4gIEFsbFZhbHVlcyA9ICdhbGwtdmFsdWVzJ1xyXG59XHJcblxyXG4vKipcclxuICogRGF0ZSBwZXJpb2QgdXNlZCBpbiBmaWx0ZXJzIGFuZCBpbiBwYXJhbWV0ZXJzLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gUGVyaW9kVHlwZSB7XHJcbiAgWWVhcnMgPSAneWVhcnMnLFxyXG4gIFF1YXJ0ZXJzID0gJ3F1YXJ0ZXJzJyxcclxuICBNb250aHMgPSAnbW9udGhzJyxcclxuICBXZWVrcyA9ICd3ZWVrcycsXHJcbiAgRGF5cyA9ICdkYXlzJyxcclxuICBIb3VycyA9ICdob3VycycsXHJcbiAgTWludXRlcyA9ICdtaW51dGVzJyxcclxuICBTZWNvbmRzID0gJ3NlY29uZHMnXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGUgdHlwZSBvZiBzaGVldCBhIFNoZWV0IG9iamVjdCByZXByZXNlbnRzXHJcbiAqL1xyXG5leHBvcnQgZW51bSBTaGVldFR5cGUge1xyXG4gIERhc2hib2FyZCA9ICdkYXNoYm9hcmQnLFxyXG4gIFN0b3J5ID0gJ3N0b3J5JyxcclxuICBXb3Jrc2hlZXQgPSAnd29ya3NoZWV0JyxcclxuICBBZGRJbiA9ICdhZGQtaW4nXHJcbn1cclxuLyoqXHJcbiAqIFJlcHJlc2VudHMgYSBjZXJ0YWluIHR5cGUgb2YgZXZlbnQgd2hpY2ggY2FuIGJlIGxpc3RlbmVkIGZvclxyXG4gKi9cclxuZXhwb3J0IGVudW0gVGFibGVhdUV2ZW50VHlwZSB7XHJcbiAgLyoqIFRoZSBzZWxlY3RlZCBtYXJrcyBvbiBhIHZpc3VhbGl6YXRpb24gaGFzIGNoYW5nZWQgKi9cclxuICBNYXJrU2VsZWN0aW9uQ2hhbmdlZCA9ICdtYXJrLXNlbGVjdGlvbi1jaGFuZ2VkJ1xyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWV4dGVybmFsLWNvbnRyYWN0L3NyYy9FbnVtcy50c1xuICoqLyIsImltcG9ydCB7XHJcbiAgVGFibGVhdUV2ZW50VHlwZSxcclxuICBUYWJsZWF1V29ya3NoZWV0RXZlbnQgYXMgVGFibGVhdVdvcmtTaGVldEV2ZW50Q29udHJhY3QsXHJcbiAgV29ya3NoZWV0IGFzIFdvcmtzaGVldENvbnRyYWN0XHJcbn0gZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IFRhYmxlYXVTaGVldEV2ZW50IH0gZnJvbSAnLi9UYWJsZWF1U2hlZXRFdmVudCc7XHJcblxyXG5leHBvcnQgY2xhc3MgVGFibGVhdVdvcmtzaGVldEV2ZW50IGV4dGVuZHMgVGFibGVhdVNoZWV0RXZlbnQgaW1wbGVtZW50cyBUYWJsZWF1V29ya1NoZWV0RXZlbnRDb250cmFjdCB7XHJcbiAgcHJpdmF0ZSBfd29ya3NoZWV0OiBXb3Jrc2hlZXRDb250cmFjdDtcclxuXHJcbiAgcHVibGljIGdldCB3b3Jrc2hlZXQoKTogV29ya3NoZWV0Q29udHJhY3Qge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcih0eXBlOiBUYWJsZWF1RXZlbnRUeXBlLCB3b3Jrc2hlZXQ6IFdvcmtzaGVldENvbnRyYWN0KSB7XHJcbiAgICBzdXBlcih0eXBlLCB3b3Jrc2hlZXQpO1xyXG5cclxuICAgIHRoaXMuX3dvcmtzaGVldCA9IHdvcmtzaGVldDtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FdmVudHMvVGFibGVhdVdvcmtzaGVldEV2ZW50LnRzXG4gKiovIiwiaW1wb3J0IHtcclxuICBTaGVldCBhcyBTaGVldENvbnRyYWN0LFxyXG4gIFRhYmxlYXVFdmVudFR5cGUsXHJcbiAgVGFibGVhdVNoZWV0RXZlbnQgYXMgVGFibGVhdVNoZWV0RXZlbnRDb250cmFjdFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBUYWJsZWF1RXZlbnQgfSBmcm9tICcuL1RhYmxlYXVFdmVudCc7XHJcblxyXG5leHBvcnQgY2xhc3MgVGFibGVhdVNoZWV0RXZlbnQgZXh0ZW5kcyBUYWJsZWF1RXZlbnQgaW1wbGVtZW50cyBUYWJsZWF1U2hlZXRFdmVudENvbnRyYWN0IHtcclxuICBwcml2YXRlIF9zaGVldDogU2hlZXRDb250cmFjdDtcclxuXHJcbiAgcHVibGljIGdldCBzaGVldCgpOiBTaGVldENvbnRyYWN0IHtcclxuICAgIHJldHVybiB0aGlzLl9zaGVldDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcih0eXBlOiBUYWJsZWF1RXZlbnRUeXBlLCBzaGVldDogU2hlZXRDb250cmFjdCkge1xyXG4gICAgc3VwZXIodHlwZSk7XHJcblxyXG4gICAgdGhpcy5fc2hlZXQgPSBzaGVldDtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FdmVudHMvVGFibGVhdVNoZWV0RXZlbnQudHNcbiAqKi8iLCJpbXBvcnQgeyBUYWJsZWF1RXZlbnQgYXMgVGFibGVhdUV2ZW50Q29udHJhY3QsIFRhYmxlYXVFdmVudFR5cGUgfSBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFRhYmxlYXVFdmVudCBpbXBsZW1lbnRzIFRhYmxlYXVFdmVudENvbnRyYWN0IHtcclxuICBwcml2YXRlIF90eXBlOiBUYWJsZWF1RXZlbnRUeXBlO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IodHlwZTogVGFibGVhdUV2ZW50VHlwZSkge1xyXG4gICAgdGhpcy5fdHlwZSA9IHR5cGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHR5cGUoKTogVGFibGVhdUV2ZW50VHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHlwZTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FdmVudHMvVGFibGVhdUV2ZW50LnRzXG4gKiovIiwiaW1wb3J0IHsgVGFibGVhdUV2ZW50LCBUYWJsZWF1RXZlbnRUeXBlLCBUYWJsZWF1RXZlbnRVbnJlZ2lzdGVyRm4gfSBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgU2luZ2xlRXZlbnRNYW5hZ2VyIH0gZnJvbSAnLi4vU2luZ2xlRXZlbnRNYW5hZ2VyJztcclxuXHJcbi8qKlxyXG4gKiBUaGlzIGNsYXNzIGltcGxlbWVudHMgdGhlIFNpbmdsZUV2ZW50TWFuYWdlciBpbnRlcmZhY2UgZm9yIGEgc2luZ2xlIHR5cGUgb2YgVGFibGVhdSBldmVudFxyXG4gKlxyXG4gKiBAdGVtcGxhdGUgVEV2ZW50VHlwZSBUaGUgVGFibGVhdSBldmVudCB0eXBlIHRoaXMgY2xhc3Mgc3BlY2lhbGl6ZXNcclxuICovXHJcbmV4cG9ydCBjbGFzcyBTaW5nbGVFdmVudE1hbmFnZXJJbXBsPFRFdmVudFR5cGUgZXh0ZW5kcyBUYWJsZWF1RXZlbnQ+IGltcGxlbWVudHMgU2luZ2xlRXZlbnRNYW5hZ2VyIHtcclxuICBwcml2YXRlIF9ldmVudFR5cGU6IFRhYmxlYXVFdmVudFR5cGU7XHJcbiAgcHJpdmF0ZSBoYW5kbGVyczogQXJyYXk8KGV2ZW50T2JqOiBURXZlbnRUeXBlKSA9PiB2b2lkPjtcclxuXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKGV2ZW50VHlwZTogVGFibGVhdUV2ZW50VHlwZSkge1xyXG4gICAgdGhpcy5fZXZlbnRUeXBlID0gZXZlbnRUeXBlO1xyXG4gICAgdGhpcy5oYW5kbGVycyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBldmVudFR5cGUoKTogVGFibGVhdUV2ZW50VHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZXZlbnRUeXBlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZEV2ZW50TGlzdGVuZXIoaGFuZGxlcjogKGV2ZW50T2JqOiBURXZlbnRUeXBlKSA9PiB2b2lkKTogVGFibGVhdUV2ZW50VW5yZWdpc3RlckZuIHtcclxuICAgIHRoaXMuaGFuZGxlcnMucHVzaChoYW5kbGVyKTtcclxuICAgIHJldHVybiAoKSA9PiB0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoaGFuZGxlcik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVtb3ZlRXZlbnRMaXN0ZW5lcihoYW5kbGVyOiAoZXZlbnRPYmo6IFRFdmVudFR5cGUpID0+IHZvaWQpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGJlZm9yZUNvdW50ID0gdGhpcy5oYW5kbGVycy5sZW5ndGg7XHJcbiAgICB0aGlzLmhhbmRsZXJzID0gdGhpcy5oYW5kbGVycy5maWx0ZXIoaCA9PiBoICE9PSBoYW5kbGVyKTtcclxuICAgIHJldHVybiBiZWZvcmVDb3VudCA+IHRoaXMuaGFuZGxlcnMubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRyaWdnZXJFdmVudChldmVudEdlbmVyYXRvcjogKCkgPT4gVEV2ZW50VHlwZSk6IHZvaWQge1xyXG4gICAgZm9yIChjb25zdCBoYW5kbGVyIG9mIHRoaXMuaGFuZGxlcnMpIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBjb25zdCBldmVudE1vZGVsID0gZXZlbnRHZW5lcmF0b3IoKTtcclxuICAgICAgICBoYW5kbGVyKGV2ZW50TW9kZWwpO1xyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgLy8gU2luY2UgdGhpcyBoYW5kbGVyIGNvdWxkIGJlIG91dHNpZGUgb3VyIGNvbnRyb2wsIGp1c3QgY2F0Y2ggYW55dGhpbmcgaXQgdGhyb3dzIGFuZCBjb250aW51ZSBvblxyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvSW50ZXJuYWwvU2luZ2xlRXZlbnRNYW5hZ2VySW1wbC50c1xuICoqLyIsImltcG9ydCB7IEFjdGl2ZU1hcmtzIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgVmlzdWFsSWQgfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgRGF0YVRhYmxlIH0gZnJvbSAnLi4vTW9kZWxzL0dldERhdGFNb2RlbHMnO1xyXG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSAnLi9TZXJ2aWNlUmVnaXN0cnknO1xyXG5cclxuLyoqXHJcbiAqIERlZmluZXMgd2hpY2ggdHlwZSBvZiBnZXREYXRhIGNhbGwgdG8gbWFrZS5cclxuICovXHJcbmV4cG9ydCBlbnVtIEdldERhdGFUeXBlIHtcclxuICBTdW1tYXJ5ID0gJ3N1bW1hcnknLFxyXG4gIFVuZGVybHlpbmcgPSAndW5kZXJseWluZydcclxufVxyXG5cclxuLyoqXHJcbiAqIFNlcnZpY2UgZm9yIGltcGxlbWVudGluZyB0aGUgbG9naWMgZm9yIHZhcmlvdXMgZ2V0RGF0YSBjYWxsc1xyXG4gKlxyXG4gKiBAaW50ZXJmYWNlIEdldERhdGFTZXJ2aWNlXHJcbiAqIEBleHRlbmRzIHtBcGlTZXJ2aWNlfVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBHZXREYXRhU2VydmljZSBleHRlbmRzIEFwaVNlcnZpY2Uge1xyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIHVuZGVybHlpbmcgZGF0YSBmb3IgYSBwYXJ0aWN1bGFyIHZpc3VhbFxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtWaXN1YWxJZH0gdmlzdWFsSWQgIFRoZSB2aXN1YWwgdG8gZ2V0IGRhdGEgZm9yXHJcbiAgICogQHBhcmFtIHtHZXREYXRhVHlwZX0gZ2V0VHlwZSAgVGhlIHR5cGUgb2YgZ2V0RGF0YSBjYWxsIHRvIG1ha2VcclxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGlnbm9yZUFsaWFzZXMgIFdoZXRoZXIgb3Igbm90IGFsaWFzZXMgc2hvdWxkIGJlIGlnbm9yZWRcclxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGlnbm9yZVNlbGVjdGlvbiAgV2hldGhlciBvciBub3Qgc2VsZWN0aW9uIHNob3VsZCBiZSBpZ25vcmVkXHJcbiAgICogQHBhcmFtIHtib29sZWFufSBpbmNsdWRlQWxsQ29sdW1ucyAgU2hvdWxkIGFsbCBjb2x1bW5zIGJlIGluY2x1ZGVkXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IG1heFJvd3MgIE1heGltdW0gbnVtYmVyIG9mIHJvd3MgdG8gcmV0dXJuXHJcbiAgICogQHJldHVybnMge1Byb21pc2U8RGF0YVRhYmxlPn0gIERhdGEgdGFibGUgd2l0aCB0aGUgcmVxdWVzdGVkIGRhdGFcclxuICAgKi9cclxuICAgIGdldFVuZGVybHlpbmdEYXRhQXN5bmMoXHJcbiAgICAgIHZpc3VhbElkOiBWaXN1YWxJZCxcclxuICAgICAgZ2V0VHlwZTogR2V0RGF0YVR5cGUsXHJcbiAgICAgIGlnbm9yZUFsaWFzZXM6IGJvb2xlYW4sXHJcbiAgICAgIGlnbm9yZVNlbGVjdGlvbjogYm9vbGVhbixcclxuICAgICAgaW5jbHVkZUFsbENvbHVtbnM6IGJvb2xlYW4sXHJcbiAgICAgIG1heFJvd3M6IG51bWJlcik6IFByb21pc2U8RGF0YVRhYmxlPjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBtYXJrcyBmb3IgYSBnaXZlbiB2aXN1YWxcclxuICAgICAqXHJcbiAgICAqIEBwYXJhbSB7VmlzdWFsSWR9IHZpc3VhbElkICBUaGUgdmlzdWFsIHRvIGdldCBkYXRhIGZvclxyXG4gICAgKiBAcmV0dXJucyB7UHJvbWlzZTxBY3RpdmVNYXJrcz59ICBDb2xsZWN0aW9uIG9mIGRhdGEgdGFibGVzIHdpdGggdGhlIGFjdGl2ZSBtYXJrc1xyXG4gICAgKi9cclxuICAgIGdldFNlbGVjdGVkTWFya3NBc3luYyh2aXN1YWxJZDogVmlzdWFsSWQpOiBQcm9taXNlPEFjdGl2ZU1hcmtzPjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIGN1cnJlbnRseSBoaWdobGlnaHRlZCBtYXJrcyBmb3IgYSBnaXZlbiB2aXN1YWxcclxuICAgICAqXHJcbiAgICAqIEBwYXJhbSB7VmlzdWFsSWR9IHZpc3VhbElkICBUaGUgdmlzdWFsIHRvIGdldCBkYXRhIGZvclxyXG4gICAgKiBAcmV0dXJucyB7UHJvbWlzZTxBY3RpdmVNYXJrcz59ICBDb2xsZWN0aW9uIG9mIGRhdGEgdGFibGVzIHdpdGggdGhlIGFjdGl2ZSBtYXJrc1xyXG4gICAgKi9cclxuICAgIGdldEhpZ2hsaWdodGVkTWFya3NBc3luYyh2aXN1YWxJZDogVmlzdWFsSWQpOiBQcm9taXNlPEFjdGl2ZU1hcmtzPjtcclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NlcnZpY2VzL0dldERhdGFTZXJ2aWNlLnRzXG4gKiovIiwiaW1wb3J0IHsgSW50ZXJuYWxBcGlEaXNwYXRjaGVyIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IEZpbHRlclNlcnZpY2VJbXBsIH0gZnJvbSAnLi9pbXBsL0ZpbHRlclNlcnZpY2VJbXBsJztcclxuaW1wb3J0IHsgR2V0RGF0YVNlcnZpY2VJbXBsIH0gZnJvbSAnLi9pbXBsL0dldERhdGFTZXJ2aWNlSW1wbCc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2VJbXBsIH0gZnJvbSAnLi9pbXBsL05vdGlmaWNhdGlvblNlcnZpY2VJbXBsJztcclxuaW1wb3J0IHsgQXBpU2VydmljZVJlZ2lzdHJ5IH0gZnJvbSAnLi9TZXJ2aWNlUmVnaXN0cnknO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyQWxsU2hhcmVkU2VydmljZXMoZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyKTogdm9pZCB7XHJcbiAgQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLnJlZ2lzdGVyU2VydmljZShuZXcgR2V0RGF0YVNlcnZpY2VJbXBsKGRpc3BhdGNoZXIpKTtcclxuICBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UucmVnaXN0ZXJTZXJ2aWNlKG5ldyBGaWx0ZXJTZXJ2aWNlSW1wbChkaXNwYXRjaGVyKSk7XHJcbiAgQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLnJlZ2lzdGVyU2VydmljZShuZXcgTm90aWZpY2F0aW9uU2VydmljZUltcGwoZGlzcGF0Y2hlcikpO1xyXG4gIC8vIFRPRE8gLSBtb3JlIHNoYXJlZCBzZXJ2aWNlc1xyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvU2VydmljZXMvUmVnaXN0ZXJBbGxTaGFyZWRTZXJ2aWNlcy50c1xuICoqLyIsImltcG9ydCB7XHJcbiAgRmlsdGVyT3B0aW9ucyxcclxuICBGaWx0ZXJVcGRhdGVUeXBlLFxyXG4gIE51bGxPcHRpb24sXHJcbiAgUmFuZ2VGaWx0ZXJPcHRpb25zXHJcbn0gZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHtcclxuICBDb21tYW5kRXJyb3IsXHJcbiAgRXhlY3V0ZVBhcmFtZXRlcnMsXHJcbiAgSW50ZXJuYWxBcGlEaXNwYXRjaGVyLFxyXG4gIFBhcmFtZXRlcklkLFxyXG4gIFZlcmJJZCxcclxuICBWaXN1YWxJZFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IFBhcmFtIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXV0aWxzJztcclxuXHJcbmltcG9ydCB7IEV4dGVybmFsVG9JbnRlcm5hbEVudW1NYXBwaW5ncyBhcyBFbnVtQ29udmVydGVyIH0gZnJvbSAnLi4vLi4vRW51bU1hcHBpbmdzL0V4dGVybmFsVG9JbnRlcm5hbEVudW1NYXBwaW5ncyc7XHJcblxyXG5pbXBvcnQgeyBGaWx0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vRmlsdGVyU2VydmljZSc7XHJcbmltcG9ydCB7IFNlcnZpY2VOYW1lcyB9IGZyb20gJy4uL1NlcnZpY2VSZWdpc3RyeSc7XHJcblxyXG5leHBvcnQgY2xhc3MgRmlsdGVyU2VydmljZUltcGwgaW1wbGVtZW50cyBGaWx0ZXJTZXJ2aWNlIHtcclxuICBwcml2YXRlIGRpc3BhdGNoZXI6IEludGVybmFsQXBpRGlzcGF0Y2hlcjtcclxuXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKGRpc3BhdGNoZXI6IEludGVybmFsQXBpRGlzcGF0Y2hlcikge1xyXG4gICAgdGhpcy5kaXNwYXRjaGVyID0gZGlzcGF0Y2hlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2VydmljZU5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBTZXJ2aWNlTmFtZXMuRmlsdGVyO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFwcGx5RmlsdGVyQXN5bmMoXHJcbiAgICB2aXN1YWxJZDogVmlzdWFsSWQsXHJcbiAgICBmaWVsZE5hbWU6IHN0cmluZyxcclxuICAgIHZhbHVlczogQXJyYXk8c3RyaW5nPixcclxuICAgIHVwZGF0ZVR5cGU6IEZpbHRlclVwZGF0ZVR5cGUsXHJcbiAgICBmaWx0ZXJPcHRpb25zOiBGaWx0ZXJPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgICAgaWYgKCFQYXJhbS5pc1ZhbGlkRW51bVZhbHVlPEZpbHRlclVwZGF0ZVR5cGU+KHVwZGF0ZVR5cGUsIEZpbHRlclVwZGF0ZVR5cGUpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHZhbHVlIGZvciBwYXJhbWV0ZXIgRmlsdGVyVXBkYXRlVHlwZScpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHZlcmIgPSBWZXJiSWQuQXBwbHlDYXRlZ29yaWNhbEZpbHRlcjtcclxuICAgICAgY29uc3QgcGFyYW1ldGVyczogRXhlY3V0ZVBhcmFtZXRlcnMgPSB7fTtcclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5WaXN1YWxJZF0gPSB2aXN1YWxJZDtcclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5GaWVsZE5hbWVdID0gZmllbGROYW1lO1xyXG4gICAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLkZpbHRlclZhbHVlc10gPSB2YWx1ZXM7XHJcbiAgICAgIHBhcmFtZXRlcnNbUGFyYW1ldGVySWQuRmlsdGVyVXBkYXRlVHlwZV0gPSB1cGRhdGVUeXBlO1xyXG4gICAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLklzRXhjbHVkZU1vZGVdID1cclxuICAgICAgICAoZmlsdGVyT3B0aW9ucyA9PT0gdW5kZWZpbmVkIHx8IGZpbHRlck9wdGlvbnMuaXNFeGNsdWRlTW9kZSA9PT0gdW5kZWZpbmVkKSA/IGZhbHNlIDogZmlsdGVyT3B0aW9ucy5pc0V4Y2x1ZGVNb2RlO1xyXG5cclxuICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hlci5leGVjdXRlKHZlcmIsIHBhcmFtZXRlcnMpLnRoZW48c3RyaW5nPihyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgY29uc3QgZXJyb3IgPSByZXNwb25zZS5yZXN1bHQgYXMgQ29tbWFuZEVycm9yO1xyXG4gICAgICAgIGlmICghKGVycm9yLmVycm9yQ29kZSA9PT0gbnVsbCB8fCBlcnJvci5lcnJvckNvZGUgPT09IHVuZGVmaW5lZCkpIHtcclxuICAgICAgICAgIC8vIFRPRE86IGNvbWUgYmFjayBhbmQgaW1wbGVtZW50IGVycm9yIGhhbmRsaW5nIGxvZ2ljXHJcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Vycm9yIEFwcGx5aW5nIEZpbHRlcjogJyArIGVycm9yLmVycm9yQ29kZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmaWVsZE5hbWU7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICBwdWJsaWMgYXBwbHlSYW5nZUZpbHRlckFzeW5jKHZpc3VhbElkOiBWaXN1YWxJZCwgZmllbGROYW1lOiBzdHJpbmcsIGZpbHRlck9wdGlvbnM6IFJhbmdlRmlsdGVyT3B0aW9ucyk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICBpZiAoIWZpbHRlck9wdGlvbnMpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIFBhcmFtZXRlcjogUmFuZ2VGaWx0ZXJPcHRpb25zJyk7XHJcbiAgICB9XHJcbiAgICBQYXJhbS52ZXJpZnlSYW5nZVBhcmFtVHlwZShmaWx0ZXJPcHRpb25zLm1pbiwgZmlsdGVyT3B0aW9ucy5tYXgpO1xyXG5cclxuICAgIGNvbnN0IHZlcmIgPSBWZXJiSWQuQXBwbHlSYW5nZUZpbHRlcjtcclxuICAgIGNvbnN0IHBhcmFtZXRlcnM6IEV4ZWN1dGVQYXJhbWV0ZXJzID0ge307XHJcblxyXG4gICAgaWYgKGZpbHRlck9wdGlvbnMubWluKSB7XHJcbiAgICAgIGxldCBtaW46IHN0cmluZyB8IG51bWJlcjtcclxuICAgICAgaWYgKGZpbHRlck9wdGlvbnMubWluIGluc3RhbmNlb2YgRGF0ZSkge1xyXG4gICAgICAgIG1pbiA9IFBhcmFtLnNlcmlhbGl6ZURhdGVGb3JQbGF0Zm9ybShmaWx0ZXJPcHRpb25zLm1pbik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbWluID0gZmlsdGVyT3B0aW9ucy5taW47XHJcbiAgICAgIH1cclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5GaWx0ZXJSYW5nZU1pbl0gPSBtaW47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZpbHRlck9wdGlvbnMubWF4KSB7XHJcbiAgICAgIGxldCBtYXg6IHN0cmluZyB8IG51bWJlcjtcclxuICAgICAgaWYgKGZpbHRlck9wdGlvbnMubWF4IGluc3RhbmNlb2YgRGF0ZSkge1xyXG4gICAgICAgIG1heCA9IFBhcmFtLnNlcmlhbGl6ZURhdGVGb3JQbGF0Zm9ybShmaWx0ZXJPcHRpb25zLm1heCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbWF4ID0gZmlsdGVyT3B0aW9ucy5tYXg7XHJcbiAgICAgIH1cclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5GaWx0ZXJSYW5nZU1heF0gPSBtYXg7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGZpbHRlck9wdGlvbnMubnVsbE9wdGlvbikge1xyXG4gICAgICBpZiAoIVBhcmFtLmlzVmFsaWRFbnVtVmFsdWU8TnVsbE9wdGlvbj4oZmlsdGVyT3B0aW9ucy5udWxsT3B0aW9uLCBOdWxsT3B0aW9uKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB2YWx1ZSBmb3IgcGFyYW1ldGVyIE51bGxPcHRpb24nKTtcclxuICAgICAgfVxyXG4gICAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLkZpbHRlclJhbmdlTnVsbE9wdGlvbl0gPSBFbnVtQ29udmVydGVyLm51bGxPcHRpb25zLmNvbnZlcnQoZmlsdGVyT3B0aW9ucy5udWxsT3B0aW9uKTtcclxuICAgIH1cclxuICAgIHBhcmFtZXRlcnNbUGFyYW1ldGVySWQuRmllbGROYW1lXSA9IGZpZWxkTmFtZTtcclxuICAgIHBhcmFtZXRlcnNbUGFyYW1ldGVySWQuVmlzdWFsSWRdID0gdmlzdWFsSWQ7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hlci5leGVjdXRlKHZlcmIsIHBhcmFtZXRlcnMpLnRoZW48c3RyaW5nPihyZXNwb25zZSA9PiB7XHJcbiAgICAgIHJldHVybiBmaWVsZE5hbWU7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhckZpbHRlckFzeW5jKHZpc3VhbElkOiBWaXN1YWxJZCwgZmllbGROYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgY29uc3QgdmVyYiA9IFZlcmJJZC5DbGVhckZpbHRlcjtcclxuICAgIGxldCBwYXJhbWV0ZXJzOiBFeGVjdXRlUGFyYW1ldGVycyA9IHt9O1xyXG4gICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5WaXN1YWxJZF0gPSB2aXN1YWxJZDtcclxuICAgIHBhcmFtZXRlcnNbUGFyYW1ldGVySWQuRmllbGROYW1lXSA9IGZpZWxkTmFtZTtcclxuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoZXIuZXhlY3V0ZSh2ZXJiLCBwYXJhbWV0ZXJzKS50aGVuPHN0cmluZz4ocmVzcG9zbmUgPT4ge1xyXG4gICAgICByZXR1cm4gZmllbGROYW1lO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvU2VydmljZXMvaW1wbC9GaWx0ZXJTZXJ2aWNlSW1wbC50c1xuICoqLyIsIi8qKlxyXG4gKiBUaGlzIGlzIHlvdXIgbWFpbi4gVGhpcyBpcyB3aGVyZSB5b3UgcmUtZXhwb3J0IGV2ZXJ5dGhpbmcgeW91IHdhbnQgdG8gYmUgcHVibGljbHkgYXZhaWxhYmxlLlxyXG4gKlxyXG4gKiBUaGUgYnVpbGQgZW5mb3JjZXMgdGhhdCB0aGUgZmlsZSBoYXMgdGhlIHNhbWUgbmFtZSBhcyB0aGUgZ2xvYmFsIHZhcmlhYmxlIHRoYXQgaXMgZXhwb3J0ZWQuXHJcbiAqL1xyXG5cclxuZXhwb3J0IHsgRW51bUNvbnZlcnRlciB9IGZyb20gJy4vRW51bUNvbnZlcnRlcic7XHJcbmV4cG9ydCB7IFBhcmFtIH0gZnJvbSAnLi9QYXJhbSc7XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXV0aWxzL3NyYy9BcGlVdGlscy50c1xuICoqLyIsIi8qKlxyXG4gKiBUaGlzIGNsYXNzIGNvbnZlcnRzIGZyb20gYSBzb3VyY2UgZW51bSB2YWx1ZSB0byBkZXN0aW5hdGlvbiBlbnVtXHJcbiAqIHZhbHVlIGdpdmVuIGEgbWFwcGluZyBmcm9tIHNvdXJjZSB0byBkZXN0aW5hdGlvbiB3aGVuIGNvbnN0cnVjdGVkLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEVudW1Db252ZXJ0ZXI8VFNvdXJjZVR5cGUgZXh0ZW5kcyBzdHJpbmcsIFREZXN0aW5hdGlvblR5cGU+IHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG1hcHBpbmdzOiB7IFtlbnVtVmFsOiBzdHJpbmddOiBURGVzdGluYXRpb25UeXBlOyB9LFxyXG4gICAgcHJpdmF0ZSBkZWZhdWx0VmFsPzogVERlc3RpbmF0aW9uVHlwZSkgeyB9XHJcblxyXG4gIHB1YmxpYyBjb252ZXJ0KGVudW1WYWw6IFRTb3VyY2VUeXBlLCB0aHJvd0lmTWlzc2luZz86IGJvb2xlYW4pOiBURGVzdGluYXRpb25UeXBlIHtcclxuICAgIGlmICh0aGlzLm1hcHBpbmdzLmhhc093blByb3BlcnR5KGVudW1WYWwpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1hcHBpbmdzW2VudW1WYWwgYXMgc3RyaW5nXTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kZWZhdWx0VmFsICE9PSB1bmRlZmluZWQgJiYgIXRocm93SWZNaXNzaW5nKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRWYWw7XHJcbiAgICB9XHJcblxyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdNYXBwaW5nIG5vdCBmb3VuZCBmb3IgJyArIGVudW1WYWwpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS11dGlscy9zcmMvRW51bUNvbnZlcnRlci50c1xuICoqLyIsImV4cG9ydCBjbGFzcyBQYXJhbSB7XHJcbiAgLyoqXHJcbiAgICogVmVyaWZpZXMgdGhhdCBhbiBpbmNvbWluZyBwYXJhbWV0ZXIgaXMgJ3RydXRoeScgYW5kIHRocm93c1xyXG4gICAqIGFuIGVycm9yIGlmIGl0J3Mgbm90LiBUaGlzIHdpbGwgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIHZhbHVlXHJcbiAgICogaXMgbnVsbCwgdW5kZWZpbmVkLCBOYU4sIHRoZSBlbXB0eSBzdHJpbmcsIDAsIG9yIGZhbHNlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGFyZ3VtZW50VmFsdWUgdmFsdWUgdG8gdmVyaWZ5XHJcbiAgICogQHBhcmFtIGFyZ3VtZW50TmFtZSBuYW1lIG9mIGFyZ3VtZW50IHRvIHZlcmlmeVxyXG4gICAqL1xyXG4gIC8qdHNsaW50OmRpc2FibGUtbmV4dC1saW5lICovXHJcbiAgcHVibGljIHN0YXRpYyB2ZXJpZnlWYWx1ZShhcmd1bWVudFZhbHVlOiBhbnksIGFyZ3VtZW50TmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoIWFyZ3VtZW50VmFsdWUpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdWYWx1ZSBpcyBpbnZhbGlkIGZvciBhcmd1bWVudDogJyArIGFyZ3VtZW50TmFtZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWZXJpZmllcyB0aGF0IGEgc3RyaW5nIGlzIHZhbGlkLiAgVGhyb3dzIGFuIGVycm9yIGlmIHRoZSBzdHJpbmcgaXNcclxuICAgKiBudWxsLCB1bmRlZmluZWQsIG9yIE5hTi5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBhcmd1bWVudFZhbHVlIHZhbHVlIHRvIHZlcmlmeVxyXG4gICAqIEBwYXJhbSBhcmd1bWVudE5hbWUgbmFtZSBvZiBhcmd1bWVudCB0byB2ZXJpZnlcclxuICAgKi9cclxuICBwdWJsaWMgc3RhdGljIHZlcmlmeVN0cmluZyhhcmd1bWVudFZhbHVlOiBzdHJpbmcsIGFyZ3VtZW50TmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoYXJndW1lbnRWYWx1ZSA9PT0gbnVsbCB8fCBhcmd1bWVudFZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTdHJpbmcgdmFsdWUgaXMgaW52YWxpZCBmb3IgYXJndW1lbnQ6ICcgKyBhcmd1bWVudE5hbWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmVyaWZpZXMgdGhlIHZhbHVlIGlzIHBhcnQgb2YgdGhlIEVudW1cclxuICAgKlxyXG4gICAqIFN0cmluZyBlbnVtcyBhcmUge3N0cmluZyA6IHN0cmluZ30gZGljdGlvbmFyaWVzIHdoaWNoIGFyZSBub3QgcmV2ZXJzZSBtYXBwYWJsZVxyXG4gICAqIFRoaXMgaXMgYW4gdWdseSB3b3JrYXJvdW5kXHJcbiAgICogQHBhcmFtIHZhbHVlIHZhbHVlIHRvIHZlcmlmeVxyXG4gICAqIEBwYXJhbSBlbnVtVHlwZSBlbnVtIHRvIHZlcmlmeSBhZ2FpbnN0XHJcbiAgICovXHJcbiAgLyogdHNsaW50OmRpc2FibGU6bm8tYW55ICovXHJcbiAgcHVibGljIHN0YXRpYyBpc1ZhbGlkRW51bVZhbHVlPEVudW1UeXBlPih2YWx1ZTogRW51bVR5cGUsIGVudW1UeXBlOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGxldCBpc1ZhbGlkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBPYmplY3Qua2V5cyhlbnVtVHlwZSkuZm9yRWFjaCgoZW51bUtleSkgPT4ge1xyXG4gICAgICBpZiAoZW51bVR5cGVbZW51bUtleV0gPT09IHZhbHVlLnRvU3RyaW5nKCkpIHtcclxuICAgICAgICBpc1ZhbGlkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gaXNWYWxpZDtcclxuICB9XHJcbiAgLyogdHNsaW50OmVuYWJsZTpuby1hbnkgKi9cclxuXHJcbiAgLyoqXHJcbiAgICogc2VyaWFsaXplcyB0aGUgZGF0ZSBpbnRvIHRoZSBmb3JtYXQgdGhhdCB0aGUgc2VydmVyIGV4cGVjdHMuXHJcbiAgICogQHBhcmFtIGRhdGUgdGhlIGRhdGUgdG8gc2VyaWFsaXplXHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBzZXJpYWxpemVEYXRlRm9yUGxhdGZvcm0oZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB5ZWFyOiBudW1iZXIgPSBkYXRlLmdldFVUQ0Z1bGxZZWFyKCk7XHJcbiAgICBjb25zdCBtb250aDogbnVtYmVyID0gZGF0ZS5nZXRVVENNb250aCgpICsgMTtcclxuICAgIGNvbnN0IGRheTogbnVtYmVyID0gZGF0ZS5nZXRVVENEYXRlKCk7XHJcbiAgICBjb25zdCBoaDogbnVtYmVyID0gZGF0ZS5nZXRVVENIb3VycygpO1xyXG4gICAgY29uc3QgbW06IG51bWJlciA9IGRhdGUuZ2V0VVRDTWludXRlcygpO1xyXG4gICAgY29uc3Qgc2VjOiBudW1iZXIgPSBkYXRlLmdldFVUQ1NlY29uZHMoKTtcclxuICAgIHJldHVybiB5ZWFyICsgJy0nICsgbW9udGggKyAnLScgKyBkYXkgKyAnICcgKyBoaCArICc6JyArIG1tICsgJzonICsgc2VjO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmVyaWZpZXMgdGhlIHBhcmFtcyBtaW4gYW5kIG1heCBmb3IgYXBwbHlpbmcgcmFuZ2UgZmlsdGVyXHJcbiAgICogQHBhcmFtIG1pbiByYW5nZSBtaW5cclxuICAgKiBAcGFyYW0gbWF4IHJhbmdlIG1heFxyXG4gICAqL1xyXG4gIC8qIHRzbGludDpkaXNhYmxlOm5vLWFueSAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgdmVyaWZ5UmFuZ2VQYXJhbVR5cGUobWluOiBhbnksIG1heDogYW55KTogdm9pZCB7XHJcbiAgLyogdHNsaW50OmVuYWJsZTpuby1hbnkgKi9cclxuICAgIGlmICghbWluICYmICFtYXgpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIFBhcmFtZXRlcjogQXQgbGVhc3Qgb25lIG9mIG1pbiBvciBtYXggaXMgcmVxdWlyZWQnKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIVBhcmFtLmlzVHlwZU51bWJlcihtaW4pICYmICFQYXJhbS5pc1R5cGVEYXRlKG1pbikpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFBhcmFtZXRlciBUeXBlOiBPbmx5IERhdGUgYW5kIG51bWJlciBhcmUgYWxsb3dlZCBmb3IgcGFyYW1ldGVyIG1pbicpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghUGFyYW0uaXNUeXBlTnVtYmVyKG1heCkgJiYgIVBhcmFtLmlzVHlwZURhdGUobWF4KSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgUGFyYW1ldGVyIFR5cGU6IE9ubHkgRGF0ZSBhbmQgbnVtYmVyIGFyZSBhbGxvd2VkIGZvciBwYXJhbWV0ZXIgbWF4Jyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHR5cGVvZihtaW4pICE9PSB0eXBlb2YobWF4KSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgUGFyYW1ldGVyIFR5cGU6IFBhcmFtZXRlcnMgbWluIGFuZCBtYXggc2hvdWxkIGJlIG9mIHRoZSBzYW1lIHR5cGUnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZlcmlmaWVzIHRoZSBpbnB1dCBpcyBhIG51bWJlclxyXG4gICAqL1xyXG4gIC8qIHRzbGludDpkaXNhYmxlOm5vLWFueSAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgaXNUeXBlTnVtYmVyKGlucHV0OiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0eXBlb2YoaW5wdXQpID09PSAnbnVtYmVyJyB8fCBpbnB1dCBpbnN0YW5jZW9mIE51bWJlcjtcclxuICB9XHJcbiAgLyogdHNsaW50OmVuYWJsZTpuby1hbnkgKi9cclxuXHJcbiAgLyoqXHJcbiAgICogVmVyaWZpZXMgdGhlIGlucHV0IGlzIGEgRGF0ZVxyXG4gICAqL1xyXG4gIC8qIHRzbGludDpkaXNhYmxlOm5vLWFueSAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgaXNUeXBlRGF0ZShpbnB1dDogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gaW5wdXQgaW5zdGFuY2VvZiBEYXRlO1xyXG4gIH1cclxuICAvKiB0c2xpbnQ6ZW5hYmxlOm5vLWFueSAqL1xyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXV0aWxzL3NyYy9QYXJhbS50c1xuICoqLyIsImltcG9ydCB7IE51bGxPcHRpb24gYXMgRXh0ZXJuYWxOdWxsT3B0aW9uIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgTnVsbE9wdGlvbiBhcyBJbnRlcm5hbE51bGxPcHRpb24gfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgRW51bUNvbnZlcnRlciB9IGZyb20gJ0B0YWJsZWF1L2FwaS11dGlscyc7XHJcblxyXG4vKiB0c2xpbnQ6ZGlzYWJsZTp0eXBlZGVmIC0gRGlzYWJsZSB0aGlzIHRvIG1ha2UgZGVjbGFyaW5nIHRoZXNlIGNsYXNzZXMgYSBiaXQgZWFzaWVyICovXHJcbi8qKlxyXG4gKiBNYXBzIGVudW1zIHVzZWQgYnkgdGhlIGV4dGVybmFsLWFwaS1jb250cmFjdCB0byB0aGUgZW51bXMgdXNlZFxyXG4gKiBpbiB0aGUgaW50ZXJuYWwtYXBpLWNvbnRyYWN0LCB3aGljaCBkZXZlbG9wZXJzIGNvZGUgYWdhaW5zdC5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBFeHRlcm5hbFRvSW50ZXJuYWxFbnVtTWFwcGluZ3Mge1xyXG4gIHB1YmxpYyBzdGF0aWMgbnVsbE9wdGlvbnMgPSBuZXcgRW51bUNvbnZlcnRlcjxFeHRlcm5hbE51bGxPcHRpb24sIEludGVybmFsTnVsbE9wdGlvbj4oe1xyXG4gICAgW0V4dGVybmFsTnVsbE9wdGlvbi5BbGxWYWx1ZXNdOiBJbnRlcm5hbE51bGxPcHRpb24uQWxsVmFsdWVzLFxyXG4gICAgW0V4dGVybmFsTnVsbE9wdGlvbi5Ob25OdWxsVmFsdWVzXTogSW50ZXJuYWxOdWxsT3B0aW9uLk5vbk51bGxWYWx1ZXMsXHJcbiAgICBbRXh0ZXJuYWxOdWxsT3B0aW9uLk5vbk51bGxWYWx1ZXNdOiBJbnRlcm5hbE51bGxPcHRpb24uTnVsbFZhbHVlc1xyXG4gIH0pO1xyXG59XHJcbi8qIHRzbGludDplbmFibGU6dHlwZWRlZiAqL1xyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0VudW1NYXBwaW5ncy9FeHRlcm5hbFRvSW50ZXJuYWxFbnVtTWFwcGluZ3MudHNcbiAqKi8iLCJpbXBvcnQgeyBBY3RpdmVNYXJrcywgRGF0YVR5cGUgfSBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQge1xyXG4gIERhdGFUYWJsZSBhcyBEYXRhVGFibGVJbnRlcm5hbENvbnRyYWN0LFxyXG4gIEV4ZWN1dGVQYXJhbWV0ZXJzLFxyXG4gIEhpZ2hsaWdodGVkTWFya3NUYWJsZSxcclxuICBJbnRlcm5hbEFwaURpc3BhdGNoZXIsXHJcbiAgUGFyYW1ldGVySWQsXHJcbiAgU2VsZWN0ZWRNYXJrc1RhYmxlLFxyXG4gIFVuZGVybHlpbmdEYXRhVGFibGUsXHJcbiAgVmVyYklkLFxyXG4gIFZpc3VhbElkLFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBDb2x1bW4sIERhdGFUYWJsZSwgRGF0YVZhbHVlIH0gZnJvbSAnLi4vLi4vTW9kZWxzL0dldERhdGFNb2RlbHMnO1xyXG5pbXBvcnQgeyBHZXREYXRhU2VydmljZSwgR2V0RGF0YVR5cGUgfSBmcm9tICcuLi9HZXREYXRhU2VydmljZSc7XHJcbmltcG9ydCB7IFNlcnZpY2VOYW1lcyB9IGZyb20gJy4uL1NlcnZpY2VSZWdpc3RyeSc7XHJcblxyXG5leHBvcnQgY2xhc3MgR2V0RGF0YVNlcnZpY2VJbXBsIGltcGxlbWVudHMgR2V0RGF0YVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IoZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyKSB7XHJcbiAgICB0aGlzLmRpc3BhdGNoZXIgPSBkaXNwYXRjaGVyO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzZXJ2aWNlTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIFNlcnZpY2VOYW1lcy5HZXREYXRhO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFVuZGVybHlpbmdEYXRhQXN5bmMoXHJcbiAgICB2aXN1YWxJZDogVmlzdWFsSWQsXHJcbiAgICBnZXRUeXBlOiBHZXREYXRhVHlwZSxcclxuICAgIGlnbm9yZUFsaWFzZXM6IGJvb2xlYW4sXHJcbiAgICBpZ25vcmVTZWxlY3Rpb246IGJvb2xlYW4sXHJcbiAgICBpbmNsdWRlQWxsQ29sdW1uczogYm9vbGVhbixcclxuICAgIG1heFJvd3M6IG51bWJlcik6IFByb21pc2U8RGF0YVRhYmxlPiB7XHJcbiAgICAgIC8vIENyZWF0ZSBhbGwgb2Ygb3VyIHBhcmFtZXRlcnNcclxuICAgICAgY29uc3QgdmVyYiA9IGdldFR5cGUgPT09IEdldERhdGFUeXBlLlN1bW1hcnkgPyBWZXJiSWQuR2V0RGF0YVN1bW1hcnlEYXRhIDogVmVyYklkLkdldFVuZGVybHlpbmdEYXRhO1xyXG4gICAgICBjb25zdCBwYXJhbWV0ZXJzOiBFeGVjdXRlUGFyYW1ldGVycyA9IHt9O1xyXG4gICAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLlZpc3VhbElkXSA9IHZpc3VhbElkO1xyXG4gICAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLklnbm9yZUFsaWFzZXNdID0gaWdub3JlQWxpYXNlcztcclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5JZ25vcmVTZWxlY3Rpb25dID0gaWdub3JlU2VsZWN0aW9uO1xyXG4gICAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLkluY2x1ZGVBbGxDb2x1bW5zXSA9IGluY2x1ZGVBbGxDb2x1bW5zO1xyXG4gICAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLk1heFJvd3NdID0gbWF4Um93cztcclxuXHJcbiAgICAgIHJldHVybiB0aGlzLmRpc3BhdGNoZXIuZXhlY3V0ZSh2ZXJiLCBwYXJhbWV0ZXJzKS50aGVuPERhdGFUYWJsZT4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlRGF0YSA9IHJlc3BvbnNlLnJlc3VsdCBhcyBVbmRlcmx5aW5nRGF0YVRhYmxlO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NSZXN1bHRzVGFibGUocmVzcG9uc2VEYXRhLmRhdGEsIHJlc3BvbnNlRGF0YS5pc1N1bW1hcnkpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgcHVibGljIGdldFNlbGVjdGVkTWFya3NBc3luYyh2aXN1YWxJZDogVmlzdWFsSWQpOiBQcm9taXNlPEFjdGl2ZU1hcmtzPiB7XHJcbiAgICBjb25zdCBwYXJhbWV0ZXJzOiBFeGVjdXRlUGFyYW1ldGVycyA9IHsgW1BhcmFtZXRlcklkLlZpc3VhbElkXTogdmlzdWFsSWQgfTtcclxuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoZXIuZXhlY3V0ZShWZXJiSWQuR2V0U2VsZWN0ZWRNYXJrcywgcGFyYW1ldGVycykudGhlbjxBY3RpdmVNYXJrcz4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICBjb25zdCByZXNwb25zZURhdGEgPSByZXNwb25zZS5yZXN1bHQgYXMgU2VsZWN0ZWRNYXJrc1RhYmxlO1xyXG4gICAgICByZXR1cm4ge1xyXG4gICAgICAgIGRhdGE6IHJlc3BvbnNlRGF0YS5kYXRhLm1hcCh0YWJsZSA9PiB0aGlzLnByb2Nlc3NSZXN1bHRzVGFibGUodGFibGUsIHRydWUpKVxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0SGlnaGxpZ2h0ZWRNYXJrc0FzeW5jKHZpc3VhbElkOiBWaXN1YWxJZCk6IFByb21pc2U8QWN0aXZlTWFya3M+IHtcclxuICAgIGNvbnN0IHBhcmFtZXRlcnM6IEV4ZWN1dGVQYXJhbWV0ZXJzID0geyBbUGFyYW1ldGVySWQuVmlzdWFsSWRdOiB2aXN1YWxJZCB9O1xyXG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hlci5leGVjdXRlKFZlcmJJZC5HZXRIaWdobGlnaHRlZE1hcmtzLCBwYXJhbWV0ZXJzKS50aGVuPEFjdGl2ZU1hcmtzPihyZXNwb25zZSA9PiB7XHJcbiAgICAgIGNvbnN0IHJlc3BvbnNlRGF0YSA9IHJlc3BvbnNlLnJlc3VsdCBhcyBIaWdobGlnaHRlZE1hcmtzVGFibGU7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgZGF0YTogcmVzcG9uc2VEYXRhLmRhdGEubWFwKHRhYmxlID0+IHRoaXMucHJvY2Vzc1Jlc3VsdHNUYWJsZSh0YWJsZSwgdHJ1ZSkpXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBwcm9jZXNzUmVzdWx0c1RhYmxlKHJlc3BvbnNlRGF0YTogRGF0YVRhYmxlSW50ZXJuYWxDb250cmFjdCwgaXNTdW1tYXJ5OiBib29sZWFuKTogRGF0YVRhYmxlIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSByZXNwb25zZURhdGEuaGVhZGVycy5tYXAoaCA9PiBuZXcgQ29sdW1uKGguZmllbGRDYXB0aW9uLCBEYXRhVHlwZS5TdHJpbmcgLypoLkRhdGFUeXBlKi8sIGguaXNSZWZlcmVuY2VkLCBoLmluZGV4KSk7XHJcbiAgICBjb25zdCB0YWJsZSA9IHJlc3BvbnNlRGF0YS5kYXRhVGFibGUubWFwKHJvdyA9PiB7XHJcbiAgICAgIHJldHVybiByb3cubWFwKGNlbGwgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgRGF0YVZhbHVlKGNlbGwudmFsdWUsIGNlbGwuZm9ybWF0dGVkVmFsdWUpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBuZXcgRGF0YVRhYmxlKHRhYmxlLCBoZWFkZXJzLCB0YWJsZS5sZW5ndGgsIGlzU3VtbWFyeSk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvU2VydmljZXMvaW1wbC9HZXREYXRhU2VydmljZUltcGwudHNcbiAqKi8iLCJpbXBvcnQgeyBJbnRlcm5hbEFwaURpc3BhdGNoZXIsIE1vZGVsLCBOb3RpZmljYXRpb24sIE5vdGlmaWNhdGlvbklkIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UsIFVucmVnaXN0ZXJGbiB9IGZyb20gJy4uL05vdGlmaWNhdGlvblNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXJ2aWNlTmFtZXMgfSBmcm9tICcuLi9TZXJ2aWNlUmVnaXN0cnknO1xyXG5cclxuY2xhc3MgUmVnaXN0cmF0aW9uIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGZpbHRlckZuOiAobm90aWZpY2F0aW9uTW9kZWw6IE1vZGVsKSA9PiBib29sZWFuLFxyXG4gICAgcHJpdmF0ZSBjYWxsYmFja0ZuOiAobm90aWZpY2F0aW9uTW9kZWw6IE1vZGVsKSA9PiB2b2lkKSB7XHJcbiAgICAgIC8vIE5vdGhpbmcgSGVyZVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbk1vZGVsOiBNb2RlbCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZmlsdGVyRm4obm90aWZpY2F0aW9uTW9kZWwpKSB7XHJcbiAgICAgIHRoaXMuY2FsbGJhY2tGbihub3RpZmljYXRpb25Nb2RlbCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uU2VydmljZUltcGwgaW1wbGVtZW50cyBOb3RpZmljYXRpb25TZXJ2aWNlIHtcclxuICBwcml2YXRlIGhhbmRsZXJzOiB7IFtub3RpZmljYXRpb25JZDogc3RyaW5nXTogQXJyYXk8UmVnaXN0cmF0aW9uPiB9O1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBkaXNwYXRjaGVyOiBJbnRlcm5hbEFwaURpc3BhdGNoZXIpIHtcclxuICAgIHRoaXMuaGFuZGxlcnMgPSB7fTtcclxuICAgIHRoaXMuZGlzcGF0Y2hlci5yZWdpc3Rlck5vdGlmaWNhdGlvbkhhbmRsZXIodGhpcy5vbk5vdGlmaWNhdGlvbi5iaW5kKHRoaXMpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2VydmljZU5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBTZXJ2aWNlTmFtZXMuTm90aWZpY2F0aW9uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVySGFuZGxlcihpZDogTm90aWZpY2F0aW9uSWQsIGZpbHRlckZuOiAobW9kZWw6IE1vZGVsKSA9PiBib29sZWFuLCBoYW5kbGVyOiAobW9kZWw6IE1vZGVsKSA9PiB2b2lkKTogVW5yZWdpc3RlckZuIHtcclxuICAgIGNvbnN0IGhhbmRsZXJzID0gdGhpcy5oYW5kbGVyc1tpZF0gfHwgbmV3IEFycmF5PFJlZ2lzdHJhdGlvbj4oKTtcclxuICAgIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IG5ldyBSZWdpc3RyYXRpb24oZmlsdGVyRm4sIGhhbmRsZXIpO1xyXG4gICAgaGFuZGxlcnMucHVzaChyZWdpc3RyYXRpb24pO1xyXG4gICAgdGhpcy5oYW5kbGVyc1tpZF0gPSBoYW5kbGVycztcclxuICAgIHJldHVybiAoKSA9PiB0aGlzLnJlbW92ZVJlZ2lzdHJhdGlvbihpZCwgcmVnaXN0cmF0aW9uKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFzSGFuZGxlcnNGb3JOb3RpZmljYXRpb25UeXBlKGlkOiBOb3RpZmljYXRpb25JZCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlcnMuaGFzT3duUHJvcGVydHkoaWQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbk5vdGlmaWNhdGlvbihub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbik6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmhhc0hhbmRsZXJzRm9yTm90aWZpY2F0aW9uVHlwZShub3RpZmljYXRpb24ubm90aWZpY2F0aW9uSWQpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBHbyB0aHJvdWdoIGFuZCBjaGVjayBmb3IgYWxsIHRoZSBoYW5kbGVycyBvZiB0aGlzIHBhcnRpY3VsYXIgbm90aWZpY2F0aW9uXHJcbiAgICB0aGlzLmhhbmRsZXJzW25vdGlmaWNhdGlvbi5ub3RpZmljYXRpb25JZF0uZm9yRWFjaChoID0+IGgub25Ob3RpZmljYXRpb24obm90aWZpY2F0aW9uLmRhdGEpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVtb3ZlUmVnaXN0cmF0aW9uKGlkOiBOb3RpZmljYXRpb25JZCwgcmVnaXN0cmF0aW9uOiBSZWdpc3RyYXRpb24pOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5oYXNIYW5kbGVyc0Zvck5vdGlmaWNhdGlvblR5cGUoaWQpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmhhbmRsZXJzW2lkXSA9IHRoaXMuaGFuZGxlcnNbaWRdLmZpbHRlcihyZWcgPT4gcmVnICE9PSByZWdpc3RyYXRpb24pO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NlcnZpY2VzL2ltcGwvTm90aWZpY2F0aW9uU2VydmljZUltcGwudHNcbiAqKi8iLCIvKipcclxuICogQmFzZSBpbnRlcmZhY2UgZm9yIGFuIGFwaSBzZXJ2aWNlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFwaVNlcnZpY2Uge1xyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIG5hbWUgZm9yIHRoaXMgc2VydmljZS5cclxuICAgKi9cclxuICByZWFkb25seSBzZXJ2aWNlTmFtZTogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogQ29sbGVjdGlvbiBvZiBzZXJ2aWNlIG5hbWUgd2hpY2ggd2lsbCBiZSByZWdpc3RlcmVkIGluIHRoZSBhcGktc2hhcmVkIHByb2plY3RcclxuICovXHJcbmV4cG9ydCBjb25zdCBlbnVtIFNlcnZpY2VOYW1lcyB7XHJcbiAgR2V0RGF0YSA9ICdnZXQtZGF0YS1zZXJ2aWNlJyxcclxuICBGaWx0ZXIgPSAnZmlsdGVyLXNlcnZpY2UnLFxyXG4gIE5vdGlmaWNhdGlvbiA9ICdub3RpZmljYXRpb24tc2VydmljZSdcclxufVxyXG5cclxuLyoqXHJcbiAqIERvIHNvbWUgZ2xvYmFibCBkZWNsYXJhdGlvbnMgc28gd2UgY2FuIGNyZWF0ZSBhIHNpbmdsZXRvbiBvbiB0aGUgd2luZG93IG9iamVjdFxyXG4gKi9cclxuZGVjbGFyZSBnbG9iYWwge1xyXG4gIGludGVyZmFjZSBXaW5kb3cgeyBfX3RhYmxlYXVBcGlTZXJ2aWNlUmVnaXN0cnk6IFNlcnZpY2VSZWdpc3RyeSB8IHVuZGVmaW5lZDsgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VSZWdpc3RyeSB7XHJcbiAgLyoqXHJcbiAgICogUmVnaXN0ZXJzIGEgbmV3IHNlcnZpY2UgaW50byB0aGUgc2VydmljZSByZWdpc3RyeS4gQW55IGV4aXN0aW5nIG9uZSB3aWxsXHJcbiAgICogYmUgb3ZlcndyaXR0ZW4uIHRoZSBzZXJ2aWNlIGlzIHJlZ2lzdGVyZWQgdW5kZXIgc2VydmljZS5zZXJ2aWNlTmFtZVxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtBcGlTZXJ2aWNlfSBzZXJ2aWNlIFRoZSBzZXJ2aXZlIHRvIHJlZ2lzdGVyXHJcbiAgICovXHJcbiAgcmVnaXN0ZXJTZXJ2aWNlKHNlcnZpY2U6IEFwaVNlcnZpY2UpOiB2b2lkO1xyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIGdpdmVuIHNlcnZpY2UgZnJvbSB0aGUgcmVnaXN0cnkuIElmIHRoZXJlIGlzIG5vdCBhXHJcbiAgICogc2VydmljZSByZWdpc3RlcmVkIHVuZGVyIHRoYXQgbmFtZSwgdGhyb3dzIGFuZCBlcnJvclxyXG4gICAqXHJcbiAgICogQHRlbXBsYXRlIFQgVGhlIHR5cGUgb2YgdGhlIHNlcnZpY2VcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VydmljZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHNlcnZpY2UuXHJcbiAgICogQHJldHVybnMge1R9IFRoZSByZXF1ZXN0ZWQgc2VydmljZVxyXG4gICAqL1xyXG4gIGdldFNlcnZpY2U8VCBleHRlbmRzIEFwaVNlcnZpY2U+KHNlcnZpY2VOYW1lOiBzdHJpbmcpOiBUO1xyXG59XHJcblxyXG5jbGFzcyBTZXJ2aWNlUmVnaXN0cnlJbXBsIGltcGxlbWVudHMgU2VydmljZVJlZ2lzdHJ5IHtcclxuICBwcml2YXRlIHNlcnZpY2VzOiB7IFtzZXJ2aWNlTmFtZTogc3RyaW5nXTogQXBpU2VydmljZTsgfTtcclxuXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5zZXJ2aWNlcyA9IHt9O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyU2VydmljZShzZXJ2aWNlOiBBcGlTZXJ2aWNlKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlcnZpY2VzW3NlcnZpY2Uuc2VydmljZU5hbWVdID0gc2VydmljZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTZXJ2aWNlPFQgZXh0ZW5kcyBBcGlTZXJ2aWNlPihzZXJ2aWNlTmFtZTogc3RyaW5nKTogVCB7XHJcbiAgICBpZiAoIXRoaXMuc2VydmljZXMuaGFzT3duUHJvcGVydHkoc2VydmljZU5hbWUpKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gU2VydmljZSAke3NlcnZpY2VOYW1lfSBpcyByZWdpc3RlcmVkYCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZXNbc2VydmljZU5hbWVdIGFzIFQ7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogc3RhdGljIGNsYXNzIHVzZWQgZm9yIGdldHRpbmcgYWNjZXNzIHRvIHRoZSBzaW5nbGUgaW5zdGFuY2VcclxuICogb2YgdGhlIEFwaVNlcnZpY2VSZWdpc3RyeVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEFwaVNlcnZpY2VSZWdpc3RyeSB7XHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgc2luZ2xldG9uIGluc3RhbmNlIG9mIHRoZSBTZXJ2aWNlUmVnaXN0cnlcclxuICAgKi9cclxuICBwdWJsaWMgc3RhdGljIGdldCBpbnN0YW5jZSgpOiBTZXJ2aWNlUmVnaXN0cnkge1xyXG4gICAgaWYgKCF3aW5kb3cuX190YWJsZWF1QXBpU2VydmljZVJlZ2lzdHJ5KSB7XHJcbiAgICAgIEFwaVNlcnZpY2VSZWdpc3RyeS5zZXRJbnN0YW5jZShuZXcgU2VydmljZVJlZ2lzdHJ5SW1wbCgpKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXdpbmRvdy5fX3RhYmxlYXVBcGlTZXJ2aWNlUmVnaXN0cnkpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBc3NpZ25pbmcgc2VydmljZSByZWdpc3RyeSBmYWlsZWQnKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gd2luZG93Ll9fdGFibGVhdUFwaVNlcnZpY2VSZWdpc3RyeTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhlbHBlciBtZXRob2QgdG8gb3ZlcnJpZGUgdGhlIHJlZ2lzdHJ5IGluc3RhbmNlLiBDYW4gYmUgdXNlZCBieSB1bml0IHRlc3RzXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1NlcnZpY2VSZWdpc3RyeX0gc2VydmljZVJlZ2lzdHJ5IFRoZSBuZXcgcmVnaXN0cnlcclxuICAgKi9cclxuICBwdWJsaWMgc3RhdGljIHNldEluc3RhbmNlKHNlcnZpY2VSZWdpc3RyeT86IFNlcnZpY2VSZWdpc3RyeSk6IHZvaWQge1xyXG4gICAgd2luZG93Ll9fdGFibGVhdUFwaVNlcnZpY2VSZWdpc3RyeSA9IHNlcnZpY2VSZWdpc3RyeTtcclxuICB9XHJcblxyXG4gIC8vIFByaXZhdGUgdG8gYXZvaWQgYW55b25lIGNvbnN0cnVjdGluZyB0aGlzXHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHt9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9TZXJ2aWNlUmVnaXN0cnkudHNcbiAqKi8iLCJpbXBvcnQge1xyXG4gIEFkZEluQ29udGV4dCBhcyBFeHRlcm5hbEFkZEluQ29udGV4dCxcclxuICBBZGRJbk1vZGUgYXMgRXh0ZXJuYWxBZGRJbk1vZGUsXHJcbiAgRGFzaGJvYXJkT2JqZWN0VHlwZSBhcyBFeHRlcm5hbERhc2hib2FyZE9iamVjdFR5cGUsXHJcbiAgRGF0YVR5cGUgYXMgRXh0ZXJuYWxEYXRhVHlwZSxcclxuICBGaWx0ZXJVcGRhdGVUeXBlIGFzIEV4dGVybmFsRmlsdGVyVXBkYXRlVHlwZSxcclxuICBTaGVldFR5cGUgYXMgRXh0ZXJuYWxTaGVldFR5cGVcclxufSBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQge1xyXG4gIEFkZEluQ29udGV4dCBhcyBJbnRlcm5hbEFkZEluQ29udGV4dCxcclxuICBBZGRJbk1vZGUgYXMgSW50ZXJuYWxBZGRJbk1vZGUsXHJcbiAgRGFzaGJvYXJkT2JqZWN0VHlwZSBhcyBJbnRlcm5hbERhc2hib2FyZE9iamVjdFR5cGUsXHJcbiAgRGF0YVR5cGUgYXMgSW50ZXJuYWxEYXRhVHlwZSxcclxuICBGaWx0ZXJVcGRhdGVUeXBlIGFzIEludGVybmFsRmlsdGVyVXBkYXRlVHlwZSxcclxuICBTaGVldFR5cGUgYXMgSW50ZXJuYWxTaGVldFR5cGVcclxufSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgRW51bUNvbnZlcnRlciB9IGZyb20gJ0B0YWJsZWF1L2FwaS11dGlscyc7XHJcblxyXG4vKiB0c2xpbnQ6ZGlzYWJsZTp0eXBlZGVmIC0gRGlzYWJsZSB0aGlzIHRvIG1ha2UgZGVjbGFyaW5nIHRoZXNlIGNsYXNzZXMgYSBiaXQgZWFzaWVyICovXHJcbi8qKlxyXG4gKiBNYXBzIGVudW1zIHVzZWQgYnkgdGhlIGludGVybmFsLWFwaS1jb250cmFjdCB0byB0aGUgZW51bXMgdXNlZFxyXG4gKiBpbiB0aGUgZXh0ZXJuYWwtYXBpLWNvbnRyYWN0LCB3aGljaCBkZXZlbG9wZXJzIGNvZGUgYWdhaW5zdC5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBJbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3Mge1xyXG4gIHB1YmxpYyBzdGF0aWMgYWRkSW5Db250ZXh0ID0gbmV3IEVudW1Db252ZXJ0ZXI8SW50ZXJuYWxBZGRJbkNvbnRleHQsIEV4dGVybmFsQWRkSW5Db250ZXh0Pih7XHJcbiAgICBbSW50ZXJuYWxBZGRJbkNvbnRleHQuRGVza3RvcF06IEV4dGVybmFsQWRkSW5Db250ZXh0LkRlc2t0b3AsXHJcbiAgICBbSW50ZXJuYWxBZGRJbkNvbnRleHQuU2VydmVyXTogRXh0ZXJuYWxBZGRJbkNvbnRleHQuU2VydmVyLFxyXG4gICAgW0ludGVybmFsQWRkSW5Db250ZXh0LlVua25vd25dOiBFeHRlcm5hbEFkZEluQ29udGV4dC5Vbmtub3duXHJcbiAgfSk7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgYWRkSW5Nb2RlID0gbmV3IEVudW1Db252ZXJ0ZXI8SW50ZXJuYWxBZGRJbk1vZGUsIEV4dGVybmFsQWRkSW5Nb2RlPih7XHJcbiAgICBbSW50ZXJuYWxBZGRJbk1vZGUuQXV0aG9yaW5nXTogRXh0ZXJuYWxBZGRJbk1vZGUuQXV0aG9yaW5nLFxyXG4gICAgW0ludGVybmFsQWRkSW5Nb2RlLlZpZXdpbmddOiBFeHRlcm5hbEFkZEluTW9kZS5WaWV3aW5nLFxyXG4gICAgW0ludGVybmFsQWRkSW5Nb2RlLlVua25vd25dOiBFeHRlcm5hbEFkZEluTW9kZS5Vbmtub3duXHJcbiAgfSk7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgc2hlZXRUeXBlID0gbmV3IEVudW1Db252ZXJ0ZXI8SW50ZXJuYWxTaGVldFR5cGUsIEV4dGVybmFsU2hlZXRUeXBlPih7XHJcbiAgICBbSW50ZXJuYWxTaGVldFR5cGUuRGFzaGJvYXJkXTogRXh0ZXJuYWxTaGVldFR5cGUuRGFzaGJvYXJkLFxyXG4gICAgW0ludGVybmFsU2hlZXRUeXBlLlN0b3J5XTogRXh0ZXJuYWxTaGVldFR5cGUuU3RvcnksXHJcbiAgICBbSW50ZXJuYWxTaGVldFR5cGUuV29ya3NoZWV0XTogRXh0ZXJuYWxTaGVldFR5cGUuV29ya3NoZWV0XHJcbiAgfSk7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZGFzaGJvYXJkT2JqZWN0VHlwZSA9IG5ldyBFbnVtQ29udmVydGVyPEludGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZSwgRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlPih7XHJcbiAgICBbSW50ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLkJsYW5rXTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLkJsYW5rLFxyXG4gICAgW0ludGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5JbWFnZV06IEV4dGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5JbWFnZSxcclxuICAgIFtJbnRlcm5hbERhc2hib2FyZE9iamVjdFR5cGUuTGVnZW5kXTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLkxlZ2VuZCxcclxuICAgIFtJbnRlcm5hbERhc2hib2FyZE9iamVjdFR5cGUuUGFnZUZpbHRlcl06IEV4dGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5QYWdlRmlsdGVyLFxyXG4gICAgW0ludGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5QYXJhbWV0ZXJDb250cm9sXTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLlBhcmFtZXRlckNvbnRyb2wsXHJcbiAgICBbSW50ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLlF1aWNrRmlsdGVyXTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLlF1aWNrRmlsdGVyLFxyXG4gICAgW0ludGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5UZXh0XTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLlRleHQsXHJcbiAgICBbSW50ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLlRpdGxlXTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLlRpdGxlLFxyXG4gICAgW0ludGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5XZWJQYWdlXTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLldlYlBhZ2UsXHJcbiAgICBbSW50ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLldvcmtzaGVldF06IEV4dGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5Xb3Jrc2hlZXRcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBkYXRhVHlwZSA9IG5ldyBFbnVtQ29udmVydGVyPEludGVybmFsRGF0YVR5cGUsIEV4dGVybmFsRGF0YVR5cGU+KHtcclxuICAgIFtJbnRlcm5hbERhdGFUeXBlLkJvb2xdOiBFeHRlcm5hbERhdGFUeXBlLkJvb2wsXHJcbiAgICBbSW50ZXJuYWxEYXRhVHlwZS5EYXRlXTogRXh0ZXJuYWxEYXRhVHlwZS5EYXRlLFxyXG4gICAgW0ludGVybmFsRGF0YVR5cGUuRGF0ZVRpbWVdOiBFeHRlcm5hbERhdGFUeXBlLkRhdGVUaW1lLFxyXG4gICAgW0ludGVybmFsRGF0YVR5cGUuRmxvYXRdOiBFeHRlcm5hbERhdGFUeXBlLkZsb2F0LFxyXG4gICAgW0ludGVybmFsRGF0YVR5cGUuSW50XTogRXh0ZXJuYWxEYXRhVHlwZS5JbnQsXHJcbiAgICBbSW50ZXJuYWxEYXRhVHlwZS5TdHJpbmddOiBFeHRlcm5hbERhdGFUeXBlLlN0cmluZ1xyXG4gIH0pO1xyXG5cclxuICBwdWJsaWMgc3RhdGljIGZpbHRlclVwZGF0ZVR5cGUgPSBuZXcgRW51bUNvbnZlcnRlcjxJbnRlcm5hbEZpbHRlclVwZGF0ZVR5cGUsIEV4dGVybmFsRmlsdGVyVXBkYXRlVHlwZT4oe1xyXG4gICAgW0ludGVybmFsRmlsdGVyVXBkYXRlVHlwZS5BZGRdOiBFeHRlcm5hbEZpbHRlclVwZGF0ZVR5cGUuQWRkLFxyXG4gICAgW0ludGVybmFsRmlsdGVyVXBkYXRlVHlwZS5BbGxdOiBFeHRlcm5hbEZpbHRlclVwZGF0ZVR5cGUuQWxsLFxyXG4gICAgW0ludGVybmFsRmlsdGVyVXBkYXRlVHlwZS5SZW1vdmVdOiBFeHRlcm5hbEZpbHRlclVwZGF0ZVR5cGUuUmVtb3ZlLFxyXG4gICAgW0ludGVybmFsRmlsdGVyVXBkYXRlVHlwZS5SZXBsYWNlXTogRXh0ZXJuYWxGaWx0ZXJVcGRhdGVUeXBlLlJlcGxhY2VcclxuICB9KTtcclxufVxyXG4vKiB0c2xpbnQ6ZW5hYmxlOnR5cGVkZWYgKi9cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FbnVtTWFwcGluZ3MvSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLnRzXG4gKiovIiwiaW1wb3J0IHsgRGFzaGJvYXJkIGFzIERhc2hib2FyZENvbnRyYWN0LCBEYXNoYm9hcmRPYmplY3QgfSBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgRGFzaGJvYXJkSW1wbCB9IGZyb20gJy4vSW50ZXJuYWwvRGFzaGJvYXJkSW1wbCc7XHJcbmltcG9ydCB7IFNoZWV0IH0gZnJvbSAnLi9TaGVldCc7XHJcbmltcG9ydCB7IFdvcmtzaGVldCB9IGZyb20gJy4vV29ya3NoZWV0JztcclxuXHJcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmQgZXh0ZW5kcyBTaGVldCBpbXBsZW1lbnRzIERhc2hib2FyZENvbnRyYWN0IHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBkYXNoYm9hcmRJbXBsOiBEYXNoYm9hcmRJbXBsKSB7XHJcbiAgICBzdXBlcihkYXNoYm9hcmRJbXBsKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgd29ya3NoZWV0cygpOiBBcnJheTxXb3Jrc2hlZXQ+IHtcclxuICAgIHJldHVybiB0aGlzLmRhc2hib2FyZEltcGwud29ya3NoZWV0cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgb2JqZWN0cygpOiBBcnJheTxEYXNoYm9hcmRPYmplY3Q+IHtcclxuICAgIHRocm93IG5ldyBFcnJvcignQVBJIGNhbGwgbm90IHlldCBpbXBsZW1lbnRlZCcpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiAuLi9zcmMvRGFzaGJvYXJkLnRzXG4gKiovIiwiaW1wb3J0IHsgU2hlZXQgYXMgU2hlZXRDb250cmFjdCwgU2hlZXRUeXBlLCBTaXplIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgRXZlbnRMaXN0ZW5lck1hbmFnZXIgfSBmcm9tICdAdGFibGVhdS9hcGktc2hhcmVkJztcclxuXHJcbmltcG9ydCB7IFNoZWV0SW1wbCB9IGZyb20gJy4vSW50ZXJuYWwvU2hlZXRJbXBsJztcclxuXHJcbmV4cG9ydCBjbGFzcyBTaGVldCBleHRlbmRzIEV2ZW50TGlzdGVuZXJNYW5hZ2VyIGltcGxlbWVudHMgU2hlZXRDb250cmFjdCB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgc2hlZXRJbXBsOiBTaGVldEltcGwpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnNoZWV0SW1wbC5uYW1lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzaGVldFR5cGUoKTogU2hlZXRUeXBlIHtcclxuICAgIHJldHVybiB0aGlzLnNoZWV0SW1wbC5zaGVldFR5cGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHNpemUoKTogU2l6ZSB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0FQSSBjYWxsIG5vdCB5ZXQgaW1wbGVtZW50ZWQnKTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogLi4vc3JjL1NoZWV0LnRzXG4gKiovIiwiaW1wb3J0IHsgRGFzaGJvYXJkQ29udGVudCBhcyBEYXNoYm9hcmRDb250ZW50Q29udHJhY3QgfSBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgRGFzaGJvYXJkIH0gZnJvbSAnLi4vRGFzaGJvYXJkJztcclxuXHJcbi8qKlxyXG4gKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgZXh0ZXJuYWwgRGFzaGJvYXJkQ29udGVudCBuYW1lc3BhY2UuXHJcbiAqIFRoaXMgZG9lcyBub3QgZm9sbG93IHRoZSBJbXBsIHBhdHRlcm4gYXMgRGFzaGJvYXJkQ29udGVudCBpc1xyXG4gKiBjdXJyZW50bHkganVzdCBhIChzaW5nbGUpIHByb3BlcnR5IGJhZy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRDb250ZW50IGltcGxlbWVudHMgRGFzaGJvYXJkQ29udGVudENvbnRyYWN0IHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfZGFzaGJvYXJkOiBEYXNoYm9hcmQpIHsgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGRhc2hib2FyZCgpOiBEYXNoYm9hcmQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Rhc2hib2FyZDtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogLi4vc3JjL0V4dGVybmFsTmFtZXNwYWNlcy9EYXNoYm9hcmRDb250ZW50LnRzXG4gKiovIiwiaW1wb3J0IHtcclxuICBBZGRJbkNvbnRleHQsXHJcbiAgQWRkSW5Nb2RlLFxyXG4gIEVudmlyb25tZW50IGFzIEVudmlyb25tZW50Q29udHJhY3RcclxufSBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBBZGRJbkVudmlyb25tZW50IH0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzIGFzIEVudW1NYXBwaW5ncyB9IGZyb20gJ0B0YWJsZWF1L2FwaS1zaGFyZWQnO1xyXG5cclxuLyoqXHJcbiAqIEltcGxlbWVudGF0aW9uIG9mIHRoZSBleHRlcm5hbCBlbnZpcm9ubWVudCBuYW1lc3BhY2UuXHJcbiAqIEVudmlyb25tZW50IGRvZXMgbm90IGZvbGxvdyB0aGUgSW1wbCBwYXR0ZXJuIGFzIGl0IGlzXHJcbiAqIGp1c3QgYSBwcm9wZXJ0eSBiYWcuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRW52aXJvbm1lbnQgaW1wbGVtZW50cyBFbnZpcm9ubWVudENvbnRyYWN0IHtcclxuICBwcml2YXRlIF9hcGlWZXJzaW9uOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfY29udGV4dDogQWRkSW5Db250ZXh0O1xyXG4gIHByaXZhdGUgX2xhbmd1YWdlOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfbG9jYWxlOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfbW9kZTogQWRkSW5Nb2RlO1xyXG4gIHByaXZhdGUgX29wZXJhdGluZ1N5c3RlbTogc3RyaW5nO1xyXG4gIHByaXZhdGUgX3RhYmxlYXVWZXJzaW9uOiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihhZGRJbkVudmlyb25tZW50OiBBZGRJbkVudmlyb25tZW50KSB7XHJcbiAgICB0aGlzLl9hcGlWZXJzaW9uID0gYWRkSW5FbnZpcm9ubWVudC5hcGlWZXJzaW9uO1xyXG4gICAgdGhpcy5fY29udGV4dCA9IEVudW1NYXBwaW5ncy5hZGRJbkNvbnRleHQuY29udmVydChhZGRJbkVudmlyb25tZW50LmFkZEluQ29udGV4dCk7XHJcbiAgICB0aGlzLl9sYW5ndWFnZSA9IGFkZEluRW52aXJvbm1lbnQuYWRkSW5MYW5ndWFnZTtcclxuICAgIHRoaXMuX2xvY2FsZSA9IGFkZEluRW52aXJvbm1lbnQuYWRkSW5Mb2NhbGU7XHJcbiAgICB0aGlzLl9tb2RlID0gRW51bU1hcHBpbmdzLmFkZEluTW9kZS5jb252ZXJ0KGFkZEluRW52aXJvbm1lbnQuYWRkSW5Nb2RlKTtcclxuICAgIHRoaXMuX29wZXJhdGluZ1N5c3RlbSA9IGFkZEluRW52aXJvbm1lbnQub3BlcmF0aW5nU3lzdGVtO1xyXG4gICAgdGhpcy5fdGFibGVhdVZlcnNpb24gPSBhZGRJbkVudmlyb25tZW50LnRhYmxlYXVWZXJzaW9uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBhcGlWZXJzaW9uKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXBpVmVyc2lvbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY29udGV4dCgpOiBBZGRJbkNvbnRleHQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbnRleHQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGxhbmd1YWdlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGFuZ3VhZ2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGxvY2FsZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xvY2FsZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbW9kZSgpOiBBZGRJbk1vZGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX21vZGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG9wZXJhdGluZ1N5c3RlbSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX29wZXJhdGluZ1N5c3RlbTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdGFibGVhdVZlcnNpb24oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl90YWJsZWF1VmVyc2lvbjtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogLi4vc3JjL0V4dGVybmFsTmFtZXNwYWNlcy9FbnZpcm9ubWVudC50c1xuICoqLyIsImltcG9ydCB7IFNldHRpbmdzIGFzIFNldHRpbmdzQ29udHJhY3QgfSBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgU2V0dGluZ3NJbXBsIH0gZnJvbSAnLi4vSW50ZXJuYWwvU2V0dGluZ3NJbXBsJztcclxuaW1wb3J0IHsgU2V0dGluZ3NDb2xsZWN0aW9uIH0gZnJvbSAnLi4vU2VydmljZXMvU2V0dGluZ3NTZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgZXh0ZXJuYWwgc2V0dGluZ3MgbmFtZXNwYWNlLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFNldHRpbmdzIGltcGxlbWVudHMgU2V0dGluZ3NDb250cmFjdCB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgc2V0dGluZ3NJbXBsOiBTZXR0aW5nc0ltcGwpIHsgfVxyXG5cclxuICBwdWJsaWMgZXJhc2Uoa2V5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0dGluZ3NJbXBsLmVyYXNlKGtleSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0KGtleTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLnNldHRpbmdzSW1wbC5nZXQoa2V5KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRBbGwoKTogU2V0dGluZ3NDb2xsZWN0aW9uIHtcclxuICAgIHJldHVybiB0aGlzLnNldHRpbmdzSW1wbC5nZXRBbGwoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaXNNb2RpZmllZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNldHRpbmdzSW1wbC5pc01vZGlmaWVkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNhdmVBc3luYygpOiBQcm9taXNlPFNldHRpbmdzQ29sbGVjdGlvbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3NJbXBsLnNhdmVBc3luYygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXR0aW5nc0ltcGwuc2V0KGtleSwgdmFsdWUpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiAuLi9zcmMvRXh0ZXJuYWxOYW1lc3BhY2VzL1NldHRpbmdzLnRzXG4gKiovIiwiaW1wb3J0IHsgSW50ZXJuYWxBcGlEaXNwYXRjaGVyIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgQXBpU2VydmljZVJlZ2lzdHJ5IH0gZnJvbSAnQHRhYmxlYXUvYXBpLXNoYXJlZCc7XHJcblxyXG5pbXBvcnQgeyBJbml0aWFsaXphdGlvblNlcnZpY2VJbXBsIH0gZnJvbSAnLi9JbXBsL0luaXRpYWxpemF0aW9uU2VydmljZUltcGwnO1xyXG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2VJbXBsIH0gZnJvbSAgJy4vSW1wbC9TZXR0aW5nc1NlcnZpY2VJbXBsJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckFsbEFkZEluU2VydmljZXMoZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyKTogdm9pZCB7XHJcbiAgQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLnJlZ2lzdGVyU2VydmljZShuZXcgSW5pdGlhbGl6YXRpb25TZXJ2aWNlSW1wbChkaXNwYXRjaGVyKSk7XHJcbiAgQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLnJlZ2lzdGVyU2VydmljZShuZXcgU2V0dGluZ3NTZXJ2aWNlSW1wbChkaXNwYXRjaGVyKSk7XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogLi4vc3JjL1NlcnZpY2VzL1JlZ2lzdGVyQWxsQWRkSW5TZXJ2aWNlcy50c1xuICoqLyIsImltcG9ydCB7IEFkZEluQm9vdHN0cmFwSW5mbywgSW50ZXJuYWxBcGlEaXNwYXRjaGVyLCBWZXJiSWQgfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgQWRkSW5TZXJ2aWNlTmFtZXMgfSBmcm9tICcuLi9BZGRJblNlcnZpY2VOYW1lcyc7XHJcbmltcG9ydCB7IEluaXRpYWxpemF0aW9uU2VydmljZSB9IGZyb20gJy4uL0luaXRpYWxpemF0aW9uU2VydmljZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgSW5pdGlhbGl6YXRpb25TZXJ2aWNlSW1wbCBpbXBsZW1lbnRzIEluaXRpYWxpemF0aW9uU2VydmljZSB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyKSB7IH1cclxuXHJcbiAgcHVibGljIGdldCBzZXJ2aWNlTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIEFkZEluU2VydmljZU5hbWVzLkluaXRpYWxpemF0aW9uU2VydmljZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbml0aWFsaXplRGFzaGJvYXJkQWRkSW5Bc3luYygpOiBQcm9taXNlPEFkZEluQm9vdHN0cmFwSW5mbz4ge1xyXG4gICAgLy8gV2UgZG9uJ3QgbmVlZCBhbnkgcGFyYW1ldGVycyBmb3IgdGhpcyBjYWxsIGJlY2F1c2UgdGhleSBhcmUgYWRkZWQgaW4gZm9yIHVzIGJ5IHRoZSBkaXNwYXRjaGVyXHJcbiAgICByZXR1cm4gdGhpcy5kaXNwYXRjaGVyLmV4ZWN1dGUoVmVyYklkLkluaXRpYWxpemVBZGRJbiwge30pLnRoZW48QWRkSW5Cb290c3RyYXBJbmZvPihyZXNwb25zZSA9PiB7XHJcbiAgICAgIC8vIFRPRE8gLSBWYWxpZGF0ZSByZXR1cm4gdmFsdWVcclxuXHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHJlc3BvbnNlLnJlc3VsdCBhcyBBZGRJbkJvb3RzdHJhcEluZm87XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogLi4vc3JjL1NlcnZpY2VzL0ltcGwvSW5pdGlhbGl6YXRpb25TZXJ2aWNlSW1wbC50c1xuICoqLyIsImltcG9ydCB7XHJcbiAgQWRkSW5TZXR0aW5nc0luZm8sXHJcbiAgRXhlY3V0ZVBhcmFtZXRlcnMsXHJcbiAgSW50ZXJuYWxBcGlEaXNwYXRjaGVyLFxyXG4gIFBhcmFtZXRlcklkLFxyXG4gIFZlcmJJZFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBBZGRJblNlcnZpY2VOYW1lcyB9IGZyb20gJy4uL0FkZEluU2VydmljZU5hbWVzJztcclxuaW1wb3J0IHsgU2V0dGluZ3NDb2xsZWN0aW9uLCBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi9TZXR0aW5nc1NlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFNldHRpbmdzU2VydmljZUltcGwgaW1wbGVtZW50cyBTZXR0aW5nc1NlcnZpY2Uge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpc3BhdGNoZXI6IEludGVybmFsQXBpRGlzcGF0Y2hlcikgeyB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2VydmljZU5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBBZGRJblNlcnZpY2VOYW1lcy5TZXR0aW5nc1NlcnZpY2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2F2ZVNldHRpbmdzQXN5bmMoc2V0dGluZ3M6IFNldHRpbmdzQ29sbGVjdGlvbik6IFByb21pc2U8U2V0dGluZ3NDb2xsZWN0aW9uPiB7XHJcbiAgICBjb25zdCBwYXJhbWV0ZXJzOiBFeGVjdXRlUGFyYW1ldGVycyA9IHt9O1xyXG4gICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5TZXR0aW5nc1ZhbHVlc10gPSBzZXR0aW5ncztcclxuXHJcbiAgICByZXR1cm4gdGhpcy5kaXNwYXRjaGVyLmV4ZWN1dGUoVmVyYklkLlNhdmVBZGRJblNldHRpbmdzLCBwYXJhbWV0ZXJzKS50aGVuPFNldHRpbmdzQ29sbGVjdGlvbj4odmFsdWUgPT4ge1xyXG4gICAgICBjb25zdCByZXN1bHQgPSB2YWx1ZS5yZXN1bHQgYXMgQWRkSW5TZXR0aW5nc0luZm87XHJcblxyXG4gICAgICBpZiAoIXJlc3VsdCB8fCAhcmVzdWx0LnNldHRpbmdzVmFsdWVzKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcm5hbCBlcnJvciBzYXZpbmcgc2V0dGluZ3MuJyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybihyZXN1bHQuc2V0dGluZ3NWYWx1ZXMpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIC4uL3NyYy9TZXJ2aWNlcy9JbXBsL1NldHRpbmdzU2VydmljZUltcGwudHNcbiAqKi8iLCJpbXBvcnQgeyBWZXJzaW9uTnVtYmVyIGFzIFZlcnNpb25OdW1iZXJDb250cmFjdCB9IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5kZWNsYXJlIHZhciBBRERJTl9BUElfVkVSU0lPTl9OVU1CRVI6IHN0cmluZztcclxuXHJcbi8qKlxyXG4gKiBSZXByZXNlbnRzIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgdGhlIGFkZGluIGxpYnJhcnlcclxuICovXHJcbmV4cG9ydCBjbGFzcyBWZXJzaW9uTnVtYmVyIGltcGxlbWVudHMgVmVyc2lvbk51bWJlckNvbnRyYWN0IHtcclxuXHJcbiAgLy8gVXNpbmcgc29tZSB3ZWJwYWNrIHRyaWNrcywgd2UgY2FuIGluamVjdCB0aGlzIHZlcnNpb24gaW50byBvdXIgY29kZSAoa2luZGEgbGlrZSBjKysgcHJlcHJvY2Vzc29yIHN0dWZmKVxyXG4gIHByaXZhdGUgc3RhdGljIGluc3RhbmNlOiBWZXJzaW9uTnVtYmVyID0gbmV3IFZlcnNpb25OdW1iZXIoQURESU5fQVBJX1ZFUlNJT05fTlVNQkVSKTtcclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgc2luZ2xldG9uIGluc3RhbmNlIG9mIHRoZSB2ZXJzaW9uIG51bWJlci5cclxuICAgKi9cclxuICBwdWJsaWMgc3RhdGljIGdldCBJbnN0YW5jZSgpOiBWZXJzaW9uTnVtYmVyIHtcclxuICAgIHJldHVybiBWZXJzaW9uTnVtYmVyLmluc3RhbmNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfbWFqb3I6IG51bWJlcjtcclxuICBwcml2YXRlIF9taW5vcjogbnVtYmVyO1xyXG4gIHByaXZhdGUgX2ZpeDogbnVtYmVyO1xyXG5cclxuICAvLyBwcml2YXRlIGNvbnN0cnVjdG9yIHNvIGV2ZXJ5b25lIHVzZXMgdGhlIHNpbmdsZXRvbiBpbnN0YW5jZVxyXG4gIHByaXZhdGUgY29uc3RydWN0b3IodmVyc2lvblN0cmluZzogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBwYXJ0cyA9IHZlcnNpb25TdHJpbmcuc3BsaXQoJy4nKS5tYXAocCA9PiBwYXJzZUludChwLCAxMCkpO1xyXG4gICAgaWYgKHBhcnRzLmxlbmd0aCAhPT0gMykge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdmVyc2lvbiBudW1iZXI6ICcgKyB2ZXJzaW9uU3RyaW5nKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9tYWpvciA9IHBhcnRzWzBdO1xyXG4gICAgdGhpcy5fbWlub3IgPSBwYXJ0c1sxXTtcclxuICAgIHRoaXMuX2ZpeCA9IHBhcnRzWzJdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBtYWpvcigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX21ham9yO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBtaW5vcigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX21pbm9yO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBmaXgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9maXg7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIC4uL3NyYy9WZXJzaW9uTnVtYmVyLnRzXG4gKiovIiwiaW1wb3J0IHsgU2hlZXRUeXBlIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHtcclxuICBBZGRJbkRhc2hib2FyZEluZm8sXHJcbiAgRGFzaGJvYXJkT2JqZWN0VHlwZSxcclxuICBTaGVldFBhdGgsXHJcbiAgVmlzdWFsSWRcclxufSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgQWRkSW5TaGVldEluZm9JbXBsIH0gZnJvbSAnLi9BZGRJblNoZWV0SW5mb0ltcGwnO1xyXG5pbXBvcnQgeyBTaGVldEltcGwgfSBmcm9tICcuL1NoZWV0SW1wbCc7XHJcbmltcG9ydCB7IFdvcmtzaGVldEltcGwgfSBmcm9tICcuL1dvcmtzaGVldEltcGwnO1xyXG5cclxuaW1wb3J0IHsgV29ya3NoZWV0IH0gZnJvbSAnLi4vV29ya3NoZWV0JztcclxuXHJcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRJbXBsIGV4dGVuZHMgU2hlZXRJbXBsIHtcclxuICBwcml2YXRlIF93b3Jrc2hlZXRzOiBBcnJheTxXb3Jrc2hlZXQ+O1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IoaW5mbzogQWRkSW5EYXNoYm9hcmRJbmZvLCBzaGVldFBhdGg6IFNoZWV0UGF0aCkge1xyXG4gICAgc3VwZXIobmV3IEFkZEluU2hlZXRJbmZvSW1wbChpbmZvLm5hbWUsIFNoZWV0VHlwZS5EYXNoYm9hcmQpKTtcclxuICAgIHRoaXMuX3dvcmtzaGVldHMgPSBuZXcgQXJyYXk8V29ya3NoZWV0PigpO1xyXG5cclxuICAgIC8vIFByb2Nlc3MgYWxsIHRoZSB6b25lcyB3aGljaCBhcmUgY29udGFpbmVkIGluIHRoaXMgZGFzaGJvYXJkXHJcbiAgICBmb3IgKGNvbnN0IHpvbmUgb2YgaW5mby56b25lcykge1xyXG4gICAgICBpZiAoem9uZS56b25lVHlwZSA9PT0gRGFzaGJvYXJkT2JqZWN0VHlwZS5Xb3Jrc2hlZXQpIHtcclxuICAgICAgICBjb25zdCBzaGVldEluZm8gPSBuZXcgQWRkSW5TaGVldEluZm9JbXBsKHpvbmUubmFtZSwgU2hlZXRUeXBlLldvcmtzaGVldCk7XHJcbiAgICAgICAgY29uc3Qgdml6SWQ6IFZpc3VhbElkID0ge1xyXG4gICAgICAgICAgd29ya3NoZWV0OiB6b25lLm5hbWUsXHJcbiAgICAgICAgICBkYXNoYm9hcmQ6IGluZm8ubmFtZSxcclxuICAgICAgICAgIHN0b3J5Ym9hcmQ6IHNoZWV0UGF0aC5zdG9yeWJvYXJkLFxyXG4gICAgICAgICAgZmxpcGJvYXJkWm9uZUlEOiBzaGVldFBhdGguZmxpcGJvYXJkWm9uZUlELFxyXG4gICAgICAgICAgc3RvcnlQb2ludElEOiBzaGVldFBhdGguc3RvcnlQb2ludElEXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgY29uc3Qgd29ya3NoZWV0SW1wbCA9IG5ldyBXb3Jrc2hlZXRJbXBsKHNoZWV0SW5mbywgdml6SWQpO1xyXG4gICAgICAgIHRoaXMuX3dvcmtzaGVldHMucHVzaChuZXcgV29ya3NoZWV0KHdvcmtzaGVldEltcGwpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB3b3Jrc2hlZXRzKCk6IEFycmF5PFdvcmtzaGVldD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldHM7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIC4uL3NyYy9JbnRlcm5hbC9EYXNoYm9hcmRJbXBsLnRzXG4gKiovIiwiaW1wb3J0IHsgU2hlZXRUeXBlIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmV4cG9ydCBjbGFzcyBBZGRJblNoZWV0SW5mb0ltcGwge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX25hbWU6IHN0cmluZyxcclxuICAgIHByaXZhdGUgX3NoZWV0VHlwZTogU2hlZXRUeXBlKSB7IH1cclxuXHJcbiAgcHVibGljIGdldCBuYW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fbmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2hlZXRUeXBlKCk6IFNoZWV0VHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2hlZXRUeXBlO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiAuLi9zcmMvSW50ZXJuYWwvQWRkSW5TaGVldEluZm9JbXBsLnRzXG4gKiovIiwiaW1wb3J0IHsgU2hlZXRUeXBlIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IEFkZEluU2hlZXRJbmZvSW1wbCB9IGZyb20gJy4vQWRkSW5TaGVldEluZm9JbXBsJztcclxuXHJcbmV4cG9ydCBjbGFzcyBTaGVldEltcGwge1xyXG4gIHByaXZhdGUgX25hbWU6IHN0cmluZztcclxuICBwcml2YXRlIF9zaGVldFR5cGU6IFNoZWV0VHlwZTtcclxuXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHNoZWV0SW5mb0ltcGw6IEFkZEluU2hlZXRJbmZvSW1wbCkge1xyXG4gICAgdGhpcy5fbmFtZSA9IHNoZWV0SW5mb0ltcGwubmFtZTtcclxuICAgIHRoaXMuX3NoZWV0VHlwZSA9IHNoZWV0SW5mb0ltcGwuc2hlZXRUeXBlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9uYW1lO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNoZWV0VHlwZSgpOiBTaGVldFR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NoZWV0VHlwZTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogLi4vc3JjL0ludGVybmFsL1NoZWV0SW1wbC50c1xuICoqLyIsImltcG9ydCB7XHJcbiAgQWN0aXZlTWFya3MsXHJcbiAgRGF0YVRhYmxlLFxyXG4gIEZpbHRlck9wdGlvbnMsXHJcbiAgRmlsdGVyVXBkYXRlVHlwZSxcclxuICBHZXRTdW1tYXJ5RGF0YU9wdGlvbnMsXHJcbiAgR2V0VW5kZXJseWluZ0RhdGFPcHRpb25zLFxyXG4gIFJhbmdlRmlsdGVyT3B0aW9ucyxcclxuICBUYWJsZWF1RXZlbnRUeXBlLFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbklkLCBWaXN1YWxJZCB9IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7XHJcbiAgQXBpU2VydmljZVJlZ2lzdHJ5LFxyXG4gIEZpbHRlclNlcnZpY2UsXHJcbiAgR2V0RGF0YVNlcnZpY2UsXHJcbiAgR2V0RGF0YVR5cGUsXHJcbiAgTWFya3NTZWxlY3RlZEV2ZW50LFxyXG4gIE5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgU2VydmljZU5hbWVzLFxyXG4gIFNpbmdsZUV2ZW50TWFuYWdlcixcclxuICBTaW5nbGVFdmVudE1hbmFnZXJJbXBsLFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1zaGFyZWQnO1xyXG5cclxuaW1wb3J0IHsgV29ya3NoZWV0IH0gZnJvbSAnLi4vV29ya3NoZWV0JztcclxuaW1wb3J0IHsgQWRkSW5TaGVldEluZm9JbXBsIH0gZnJvbSAnLi9BZGRJblNoZWV0SW5mb0ltcGwnO1xyXG5pbXBvcnQgeyBTaGVldEltcGwgfSBmcm9tICcuL1NoZWV0SW1wbCc7XHJcblxyXG5jb25zdCB2aXN1YWxJZHNBcmVFcXVhbCA9IGZ1bmN0aW9uKGE6IFZpc3VhbElkLCBiOiBWaXN1YWxJZCk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiBhICYmIGIgJiZcclxuICAgIGEud29ya3NoZWV0ID09PSBiLndvcmtzaGVldCAmJlxyXG4gICAgYS5kYXNoYm9hcmQgPT09IGIuZGFzaGJvYXJkICYmXHJcbiAgICBhLnN0b3J5Ym9hcmQgPT09IGIuc3Rvcnlib2FyZCAmJlxyXG4gICAgYS5zdG9yeVBvaW50SUQgPT09IGIuc3RvcnlQb2ludElEICYmXHJcbiAgICBhLmZsaXBib2FyZFpvbmVJRCA9PT0gYi5mbGlwYm9hcmRab25lSUQ7XHJcbn07XHJcblxyXG5leHBvcnQgY2xhc3MgV29ya3NoZWV0SW1wbCBleHRlbmRzIFNoZWV0SW1wbCB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHNoZWV0SW5mb0ltcGw6IEFkZEluU2hlZXRJbmZvSW1wbCwgcHJpdmF0ZSBfdmlzdWFsSWQ6IFZpc3VhbElkKSB7XHJcbiAgICBzdXBlcihzaGVldEluZm9JbXBsKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhlbHBlciBtZXRob2Qgd2hpY2ggZ29lcyB0aHJvdWdoIGFuZCByZWdpc3RlcnMgZWFjaCBldmVudCB0eXBlIHRoaXMgaW1wbCBrbm93cyBhYm91dFxyXG4gICAqIHdpdGggdGhlIE5vdGlmaWNhdGlvblNlcnZpY2UuIEl0IHJldHVybnMgYW4gYXJyYXkgb2YgU2luZ2xlRXZlbnRNYW5hZ2VyIG9iamVjdHMgd2hpY2hcclxuICAgKiBjYW4gdGhlbiBiZSBwYXNzZWQgdG8gYW4gRXZlbnRMaXN0ZW5lck1hbmFnZXIgdG8gaGFuZGxlIHVzZXIgcmVnaXN0cmF0aW9uIC8gdW5yZWdpc3RyYXRpb24uXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1dvcmtzaGVldH0gd29ya3NoZWV0IFRoZSB3b3Jrc2hlZXQgb2JqZWN0IHdoaWNoIHdpbGwgYmUgaW5jbHVkZWQgd2l0aCB0aGUgZXZlbnQgbm90aWZpY2F0aW9uc1xyXG4gICAqIEByZXR1cm5zIHtBcnJheTxTaW5nbGVFdmVudE1hbmFnZXI+fSBDb2xsZWN0aW9uIG9mIGV2ZW50IG1hbmFnZXJzIHRvIHBhc3MgdG8gYW4gRXZlbnRMaXN0ZW5lck1hbmFnZXJcclxuICAgKi9cclxuICBwdWJsaWMgaW5pdGlhbGl6ZUV2ZW50cyh3b3Jrc2hlZXQ6IFdvcmtzaGVldCk6IEFycmF5PFNpbmdsZUV2ZW50TWFuYWdlcj4ge1xyXG4gICAgY29uc3QgcmVzdWx0cyA9IG5ldyBBcnJheTxTaW5nbGVFdmVudE1hbmFnZXI+KCk7XHJcbiAgICBsZXQgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBub3RpZmljYXRpb25TZXJ2aWNlID0gQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2U8Tm90aWZpY2F0aW9uU2VydmljZT4oU2VydmljZU5hbWVzLk5vdGlmaWNhdGlvbik7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIC8vIElmIHdlIGRvbid0IGhhdmUgdGhpcyBzZXJ2aWNlIHJlZ2lzdGVyZWQsIGp1c3QgcmV0dXJuXHJcbiAgICAgIHJldHVybiByZXN1bHRzO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEluaXRpYWxpemUgYWxsIG9mIHRoZSBldmVudCBtYW5hZ2VycyB3ZSdsbCBuZWVkIChvbmUgZm9yIGVhY2ggZXZlbnQgdHlwZSlcclxuICAgIGNvbnN0IG1hcmtzRXZlbnQgPSBuZXcgU2luZ2xlRXZlbnRNYW5hZ2VySW1wbDxNYXJrc1NlbGVjdGVkRXZlbnQ+KFRhYmxlYXVFdmVudFR5cGUuTWFya1NlbGVjdGlvbkNoYW5nZWQpO1xyXG4gICAgbm90aWZpY2F0aW9uU2VydmljZS5yZWdpc3RlckhhbmRsZXIoTm90aWZpY2F0aW9uSWQuU2VsZWN0ZWRNYXJrc0NoYW5nZWQsIChtb2RlbCkgPT4ge1xyXG4gICAgICBjb25zdCB2aXN1YWxJZCA9IG1vZGVsIGFzIFZpc3VhbElkO1xyXG4gICAgICByZXR1cm4gdmlzdWFsSWRzQXJlRXF1YWwodmlzdWFsSWQsIHRoaXMudmlzdWFsSWQpO1xyXG4gICAgfSwgKHZpejogVmlzdWFsSWQpID0+IHtcclxuICAgICAgbWFya3NFdmVudC50cmlnZ2VyRXZlbnQoKCkgPT4gbmV3IE1hcmtzU2VsZWN0ZWRFdmVudCh3b3Jrc2hlZXQpKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJlc3VsdHMucHVzaChtYXJrc0V2ZW50KTtcclxuXHJcbiAgICAvLyBUT0RPIC0gb3RoZXIgZXZlbnQgdHlwZXNcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdmlzdWFsSWQoKTogVmlzdWFsSWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Zpc3VhbElkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFwcGx5RmlsdGVyQXN5bmMoXHJcbiAgICBmaWVsZE5hbWU6IHN0cmluZywgdmFsdWVzOiBBcnJheTxzdHJpbmc+LCB1cGRhdGVUeXBlOiBGaWx0ZXJVcGRhdGVUeXBlLCBvcHRpb25zOiBGaWx0ZXJPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgICAgY29uc3Qgc2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPEZpbHRlclNlcnZpY2U+KFNlcnZpY2VOYW1lcy5GaWx0ZXIpO1xyXG4gICAgICByZXR1cm4gc2VydmljZS5hcHBseUZpbHRlckFzeW5jKHRoaXMudmlzdWFsSWQsIGZpZWxkTmFtZSwgdmFsdWVzLCB1cGRhdGVUeXBlLCBvcHRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgcHVibGljIGFwcGx5UmFuZ2VGaWx0ZXJBc3luYyhmaWVsZE5hbWU6IHN0cmluZywgZmlsdGVyT3B0aW9uczogUmFuZ2VGaWx0ZXJPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIGNvbnN0IHNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxGaWx0ZXJTZXJ2aWNlPihTZXJ2aWNlTmFtZXMuRmlsdGVyKTtcclxuICAgIHJldHVybiBzZXJ2aWNlLmFwcGx5UmFuZ2VGaWx0ZXJBc3luYyh0aGlzLnZpc3VhbElkLCBmaWVsZE5hbWUsIGZpbHRlck9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsZWFyRmlsdGVyQXN5bmMoZmllbGROYW1lOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgY29uc3Qgc2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPEZpbHRlclNlcnZpY2U+KFNlcnZpY2VOYW1lcy5GaWx0ZXIpO1xyXG4gICAgcmV0dXJuIHNlcnZpY2UuY2xlYXJGaWx0ZXJBc3luYyh0aGlzLnZpc3VhbElkLCBmaWVsZE5hbWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFNlbGVjdGVkTWFya3NBc3luYygpOiBQcm9taXNlPEFjdGl2ZU1hcmtzPiB7XHJcbiAgICBjb25zdCBzZXJ2aWNlID0gQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2U8R2V0RGF0YVNlcnZpY2U+KFNlcnZpY2VOYW1lcy5HZXREYXRhKTtcclxuICAgIHJldHVybiBzZXJ2aWNlLmdldFNlbGVjdGVkTWFya3NBc3luYyh0aGlzLnZpc3VhbElkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRIaWdobGlnaHRlZE1hcmtzQXN5bmMoKTogUHJvbWlzZTxBY3RpdmVNYXJrcz4ge1xyXG4gICAgY29uc3Qgc2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPEdldERhdGFTZXJ2aWNlPihTZXJ2aWNlTmFtZXMuR2V0RGF0YSk7XHJcbiAgICByZXR1cm4gc2VydmljZS5nZXRIaWdobGlnaHRlZE1hcmtzQXN5bmModGhpcy52aXN1YWxJZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U3VtbWFyeURhdGFBc3luYyhvcHRpb25zOiBHZXRTdW1tYXJ5RGF0YU9wdGlvbnMpOiBQcm9taXNlPERhdGFUYWJsZT4ge1xyXG4gICAgY29uc3Qgc2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPEdldERhdGFTZXJ2aWNlPihTZXJ2aWNlTmFtZXMuR2V0RGF0YSk7XHJcbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcclxuXHJcbiAgICByZXR1cm4gc2VydmljZS5nZXRVbmRlcmx5aW5nRGF0YUFzeW5jKFxyXG4gICAgICB0aGlzLnZpc3VhbElkLCBHZXREYXRhVHlwZS5TdW1tYXJ5LCAhIW9wdGlvbnMuaWdub3JlQWxpYXNlcywgISFvcHRpb25zLmlnbm9yZVNlbGVjdGlvbiwgdHJ1ZSwgMCk7XHJcbiAgICB9XHJcblxyXG4gIHB1YmxpYyBnZXRVbmRlcmx5aW5nRGF0YUFzeW5jKG9wdGlvbnM6IEdldFVuZGVybHlpbmdEYXRhT3B0aW9ucyk6IFByb21pc2U8RGF0YVRhYmxlPiB7XHJcbiAgICBjb25zdCBzZXJ2aWNlID0gQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2U8R2V0RGF0YVNlcnZpY2U+KFNlcnZpY2VOYW1lcy5HZXREYXRhKTtcclxuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xyXG4gICAgcmV0dXJuIHNlcnZpY2UuZ2V0VW5kZXJseWluZ0RhdGFBc3luYyhcclxuICAgICAgdGhpcy52aXN1YWxJZCxcclxuICAgICAgR2V0RGF0YVR5cGUuVW5kZXJseWluZyxcclxuICAgICAgISFvcHRpb25zLmlnbm9yZUFsaWFzZXMsXHJcbiAgICAgICEhb3B0aW9ucy5pZ25vcmVTZWxlY3Rpb24sXHJcbiAgICAgICEhb3B0aW9ucy5pbmNsdWRlQWxsQ29sdW1ucyxcclxuICAgICAgb3B0aW9ucy5tYXhSb3dzIHx8IDApO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiAuLi9zcmMvSW50ZXJuYWwvV29ya3NoZWV0SW1wbC50c1xuICoqLyIsImltcG9ydCB7XHJcbiAgQWN0aXZlTWFya3MsXHJcbiAgRGFzaGJvYXJkLFxyXG4gIERhdGFUYWJsZSxcclxuICBGaWx0ZXIsXHJcbiAgRmlsdGVyT3B0aW9ucyxcclxuICBGaWx0ZXJVcGRhdGVUeXBlLFxyXG4gIEdldFN1bW1hcnlEYXRhT3B0aW9ucyxcclxuICBHZXRVbmRlcmx5aW5nRGF0YU9wdGlvbnMsXHJcbiAgUmFuZ2VGaWx0ZXJPcHRpb25zLFxyXG4gIFdvcmtzaGVldCBhcyBXb3Jrc2hlZXRDb250cmFjdFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBTaGVldCB9IGZyb20gJy4vU2hlZXQnO1xyXG5cclxuaW1wb3J0IHsgV29ya3NoZWV0SW1wbCB9IGZyb20gJy4vSW50ZXJuYWwvV29ya3NoZWV0SW1wbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgV29ya3NoZWV0IGV4dGVuZHMgU2hlZXQgaW1wbGVtZW50cyBXb3Jrc2hlZXRDb250cmFjdCB7XHJcbiAgcHJpdmF0ZSB3b3Jrc2hlZXRJbXBsOiBXb3Jrc2hlZXRJbXBsO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3Iod29ya3NoZWV0SW1wbDogV29ya3NoZWV0SW1wbCkge1xyXG4gICAgc3VwZXIod29ya3NoZWV0SW1wbCk7XHJcbiAgICB0aGlzLndvcmtzaGVldEltcGwgPSB3b3Jrc2hlZXRJbXBsO1xyXG5cclxuICAgIC8vIENhbGwgdG8gaW5pdGlhbGl6ZSBldmVudHMgYW5kIHRoZW4gY2FsbCBkb3duIHRvIHRoZSBldmVudCBsaXN0ZW5lciBtYW5hZ2VyIHRvIGhhbmRsZSB0aGluZ3NcclxuICAgIHRoaXMud29ya3NoZWV0SW1wbC5pbml0aWFsaXplRXZlbnRzKHRoaXMpLmZvckVhY2goZSA9PiB0aGlzLmFkZE5ld0V2ZW50VHlwZShlKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHBhcmVudERhc2hib2FyZCgpOiBEYXNoYm9hcmQge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdBUEkgY2FsbCBub3QgeWV0IGltcGxlbWVudGVkJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXBwbHlGaWx0ZXJBc3luYyhcclxuICAgIGZpZWxkTmFtZTogc3RyaW5nLCB2YWx1ZXM6IEFycmF5PHN0cmluZz4sIHVwZGF0ZVR5cGU6IEZpbHRlclVwZGF0ZVR5cGUsIG9wdGlvbnM6IEZpbHRlck9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgICByZXR1cm4gdGhpcy53b3Jrc2hlZXRJbXBsLmFwcGx5RmlsdGVyQXN5bmMoZmllbGROYW1lLCB2YWx1ZXMsIHVwZGF0ZVR5cGUsIG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFwcGx5UmFuZ2VGaWx0ZXJBc3luYyhmaWVsZE5hbWU6IHN0cmluZywgZmlsdGVyT3B0aW9uczogUmFuZ2VGaWx0ZXJPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIHJldHVybiB0aGlzLndvcmtzaGVldEltcGwuYXBwbHlSYW5nZUZpbHRlckFzeW5jKGZpZWxkTmFtZSwgZmlsdGVyT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xlYXJGaWx0ZXJBc3luYyhmaWVsZE5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy53b3Jrc2hlZXRJbXBsLmNsZWFyRmlsdGVyQXN5bmMoZmllbGROYW1lKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRGaWx0ZXJzQXN5bmMoKTogUHJvbWlzZTxGaWx0ZXJbXT4ge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdBUEkgY2FsbCBub3QgeWV0IGltcGxlbWVudGVkJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U2VsZWN0ZWRNYXJrc0FzeW5jKCk6IFByb21pc2U8QWN0aXZlTWFya3M+IHtcclxuICAgIHJldHVybiB0aGlzLndvcmtzaGVldEltcGwuZ2V0U2VsZWN0ZWRNYXJrc0FzeW5jKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0SGlnaGxpZ2h0ZWRNYXJrc0FzeW5jKCk6IFByb21pc2U8QWN0aXZlTWFya3M+IHtcclxuICAgIHJldHVybiB0aGlzLndvcmtzaGVldEltcGwuZ2V0SGlnaGxpZ2h0ZWRNYXJrc0FzeW5jKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U3VtbWFyeURhdGFBc3luYyhvcHRpb25zOiBHZXRTdW1tYXJ5RGF0YU9wdGlvbnMpOiBQcm9taXNlPERhdGFUYWJsZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMud29ya3NoZWV0SW1wbC5nZXRTdW1tYXJ5RGF0YUFzeW5jKG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFVuZGVybHlpbmdEYXRhQXN5bmMob3B0aW9uczogR2V0VW5kZXJseWluZ0RhdGFPcHRpb25zKTogUHJvbWlzZTxEYXRhVGFibGU+IHtcclxuICAgIHJldHVybiB0aGlzLndvcmtzaGVldEltcGwuZ2V0VW5kZXJseWluZ0RhdGFBc3luYyhvcHRpb25zKTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogLi4vc3JjL1dvcmtzaGVldC50c1xuICoqLyIsImltcG9ydCB7IEFkZEluU2V0dGluZ3NJbmZvIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgQXBpU2VydmljZVJlZ2lzdHJ5IH0gZnJvbSAnQHRhYmxlYXUvYXBpLXNoYXJlZCc7XHJcbmltcG9ydCB7IFBhcmFtIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXV0aWxzJztcclxuXHJcbmltcG9ydCB7IEFkZEluU2VydmljZU5hbWVzIH0gZnJvbSAnLi4vU2VydmljZXMvQWRkSW5TZXJ2aWNlTmFtZXMnO1xyXG5pbXBvcnQgeyBTZXR0aW5nc0NvbGxlY3Rpb24sIFNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uL1NlcnZpY2VzL1NldHRpbmdzU2VydmljZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgU2V0dGluZ3NJbXBsIHtcclxuICBwcml2YXRlIF9pc01vZGlmaWVkOiBib29sZWFuO1xyXG4gIHByaXZhdGUgY3VycmVudFNldHRpbmdzOiBTZXR0aW5nc0NvbGxlY3Rpb247XHJcblxyXG4gIC8vIFNpbmNlIHByb21pc2VzIGNhbid0IGJlIGludHJvc3BlY3RlZCBmb3Igc3RhdGUsIGtlZXAgYSB2YXJpYWJsZSB0aGF0XHJcbiAgLy8gaW5kaWNhdGVzIGEgc2F2ZSBpcyBpbiBwcm9ncmVzcywgc28gdGhhdCBzZXQvZXJhc2UgY2FuJ3QgYmUgY2FsbGVkIGR1cmluZyBhIHNhdmUuXHJcbiAgcHJpdmF0ZSBzYXZlSW5Qcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3Ioc2V0dGluZ3NJbmZvOiBBZGRJblNldHRpbmdzSW5mbykge1xyXG4gICAgdGhpcy5pbml0aWFsaXplU2V0dGluZ3Moc2V0dGluZ3NJbmZvKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBlcmFzZShrZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgUGFyYW0udmVyaWZ5VmFsdWUoa2V5LCAna2V5Jyk7XHJcblxyXG4gICAgLy8gT25seSBtYWtlIGEgbW9kaWZpY2F0aW9uIGlmIHdlIGhhdmUgdGhlIGtleSBhbHJlYWR5XHJcbiAgICBpZiAodGhpcy5jdXJyZW50U2V0dGluZ3Nba2V5XSkge1xyXG4gICAgICB0aGlzLnZlcmlmeVNldHRpbmdzQXJlVW5sb2NrZWQoKTtcclxuXHJcbiAgICAgIGRlbGV0ZSB0aGlzLmN1cnJlbnRTZXR0aW5nc1trZXldO1xyXG4gICAgICB0aGlzLl9pc01vZGlmaWVkID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQoa2V5OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgUGFyYW0udmVyaWZ5VmFsdWUoa2V5LCAna2V5Jyk7XHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50U2V0dGluZ3Nba2V5XTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRBbGwoKTogU2V0dGluZ3NDb2xsZWN0aW9uIHtcclxuICAgIC8vIFJldHVybnMgYSBtdXRhYmxlIGNvcHkgb2YgdGhlIHNldHRpbmdzXHJcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5jdXJyZW50U2V0dGluZ3MpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpc01vZGlmaWVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzTW9kaWZpZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2F2ZUFzeW5jKCk6IFByb21pc2U8U2V0dGluZ3NDb2xsZWN0aW9uPiB7XHJcbiAgICB0aGlzLnZlcmlmeVNldHRpbmdzQXJlVW5sb2NrZWQoKTtcclxuXHJcbiAgICAvLyBKdXN0IHJlc29sdmUgaW1tZWRpYXRlbHkgaWYgc2V0dGluZ3MgYXJlIHVuY2hhbmdlZFxyXG4gICAgaWYgKCF0aGlzLl9pc01vZGlmaWVkKSB7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmU8U2V0dGluZ3NDb2xsZWN0aW9uPih0aGlzLmN1cnJlbnRTZXR0aW5ncyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zYXZlSW5Qcm9ncmVzcyA9IHRydWU7XHJcblxyXG4gICAgLy8gVXNlIHRoZSBzZXR0aW5ncyBzZXJ2aWNlIHRvIHNhdmUgc2V0dGluZ3MgdG8gdHdiXHJcbiAgICBjb25zdCBzZXR0aW5nc1NlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxTZXR0aW5nc1NlcnZpY2U+KFxyXG4gICAgICBBZGRJblNlcnZpY2VOYW1lcy5TZXR0aW5nc1NlcnZpY2UpO1xyXG5cclxuICAgIHJldHVybiBzZXR0aW5nc1NlcnZpY2Uuc2F2ZVNldHRpbmdzQXN5bmModGhpcy5jdXJyZW50U2V0dGluZ3MpLnRoZW48U2V0dGluZ3NDb2xsZWN0aW9uPihuZXdTZXR0aW5ncyA9PiB7XHJcbiAgICAgIHRoaXMuc2F2ZUluUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgdGhpcy5faXNNb2RpZmllZCA9IGZhbHNlO1xyXG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuY3VycmVudFNldHRpbmdzLCBuZXdTZXR0aW5ncyk7XHJcbiAgICAgIHJldHVybiBuZXdTZXR0aW5ncztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgUGFyYW0udmVyaWZ5VmFsdWUoa2V5LCAna2V5Jyk7IC8vIEtleSBzaG91bGRuJ3QgYmUgYW4gZW1wdHkgc3RyaW5nLlxyXG4gICAgUGFyYW0udmVyaWZ5U3RyaW5nKHZhbHVlLCAndmFsdWUnKTsgLy8gRW1wdHkgc3RyaW5nIHZhbHVlIGlzIGFsbG93ZWQuXHJcbiAgICB0aGlzLnZlcmlmeVNldHRpbmdzQXJlVW5sb2NrZWQoKTtcclxuXHJcbiAgICB0aGlzLmN1cnJlbnRTZXR0aW5nc1trZXldID0gdmFsdWU7XHJcbiAgICB0aGlzLl9pc01vZGlmaWVkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVNldHRpbmdzKHNldHRpbmdzSW5mbzogQWRkSW5TZXR0aW5nc0luZm8pOiB2b2lkIHtcclxuICAgIFBhcmFtLnZlcmlmeVZhbHVlKHNldHRpbmdzSW5mbywgJ3NldHRpbmdzSW5mbycpO1xyXG4gICAgUGFyYW0udmVyaWZ5VmFsdWUoc2V0dGluZ3NJbmZvLnNldHRpbmdzVmFsdWVzLCAnc2V0dGluZ3NJbmZvLlNldHRpbmdzVmFsdWVzJyk7XHJcblxyXG4gICAgdGhpcy5jdXJyZW50U2V0dGluZ3MgPSBzZXR0aW5nc0luZm8uc2V0dGluZ3NWYWx1ZXM7XHJcblxyXG4gICAgLy8gUmVzZXQgdGhlIGlzTW9kaWZpZWQgZmxhZ1xyXG4gICAgdGhpcy5faXNNb2RpZmllZCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGhpcyBoZWxwZXIgc2hvdWxkIGJlIGNhbGxlZCBiZWZvcmUgYW55IGxvY2FsIHVwZGF0ZSB0byB0aGlzLmN1cnJlbnRTZXR0aW5ncy5cclxuICAgKiBDaGVja3MgaWYgYSBjdXJyZW50IHNhdmUgY2FsbCBpcyBzdGlsbCBpbiBwcm9ncmVzcyBhbmQgdGhyb3dzIGFuIGVycm9yIGlmIHNvLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgdmVyaWZ5U2V0dGluZ3NBcmVVbmxvY2tlZCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNhdmVJblByb2dyZXNzKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignQXN5bmMgU2F2ZSBpcyBpbiBwcm9ncmVzcywgdXBkYXRpbmcgc2V0dGluZ3MgaXMgbm90IGFsbG93ZWQuJyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIC4uL3NyYy9JbnRlcm5hbC9TZXR0aW5nc0ltcGwudHNcbiAqKi8iXSwic291cmNlUm9vdCI6IiJ9 \ No newline at end of file diff --git a/Examples/HelloFrelard/tableau-addin-0.3.0.js b/Examples/HelloFrelard/tableau-addin-0.3.0.js deleted file mode 100644 index 5e13a1e0..00000000 --- a/Examples/HelloFrelard/tableau-addin-0.3.0.js +++ /dev/null @@ -1,20442 +0,0 @@ -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); - else if(typeof define === 'function' && define.amd) - define([], factory); - else if(typeof exports === 'object') - exports["Main"] = factory(); - else - root["Main"] = factory(); -})(this, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; -/******/ -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.loaded = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = "/dist/"; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var FrelardDesktopBootstrap_1 = __webpack_require__(1); - // This Main function will be executed when this module is loaded. Attempt to do our - // bootstrapping with qt and log any errors we encounter - FrelardDesktopBootstrap_1.doBootstrap().catch(function (e) { - console.error('Desktop bootstrapping failed: ' + e); - }); - - -/***/ }, -/* 1 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_core_1 = __webpack_require__(2); - var api_internal_contract_1 = __webpack_require__(29); - var AddInApiPresLayerImpl_1 = __webpack_require__(30); - var DesktopApiDispatcher_1 = __webpack_require__(31); - var QtWebChannelImpl_1 = __webpack_require__(32); - /** - * Wrapper for all the bootstrapping logic. This code attempts to initialize the qt pres-layer - * as well as the desktop dispatcher. It then assigns it to the global desktop dispatcher to - * be picked up by the add-in external Api - */ - function doBootstrap() { - // First we need to initialize the webchannel pres-layer - var dispatcherPromise = QtWebChannelImpl_1.initializeWebChannelPresLayer().then(function (preslayer) { - var presLayerApi = new AddInApiPresLayerImpl_1.AddInApiPresLayerImpl(preslayer); - if (!presLayerApi.AddInInstanceInfo.addInLocatorPresModel) { - throw new Error('AddInInstanceInfo undefined'); - } - // Initialize the apiEventHandler and the desktopDispatcher with it - var apiEventHandler = new api_core_1.ApiEventHandler(presLayerApi, presLayerApi.AddInInstanceInfo.addInLocatorPresModel); - var desktopDispatcher = new DesktopApiDispatcher_1.DesktopApiDispatcher(apiEventHandler); - return desktopDispatcher; - }); - // Assign the desktop dispatcher for the other project to find it - api_internal_contract_1.InternalApiDispatcherHolder.setDesktopDispatcherPromise(dispatcherPromise); - return dispatcherPromise; - } - exports.doBootstrap = doBootstrap; - - -/***/ }, -/* 2 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export(__webpack_require__(3)); - var Events_1 = __webpack_require__(16); - exports.NotificationId = Events_1.NotificationId; - - -/***/ }, -/* 3 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(4); - var Params_1 = __webpack_require__(10); - var CommandMappingRegistryFactory_1 = __webpack_require__(11); - var EventMappingRegistryFactory_1 = __webpack_require__(15); - var ParameterMappingRegistryFactory_1 = __webpack_require__(23); - /** - * Main class for the api-core project. This class is responsible for executing comamnd and marshalling notifcations - * between the internal Api and the pres-layer Api. After construction, SetVersionNumber must be called in order to - * use this class - * - * @export - * @class ApiEventHandler - */ - var ApiEventHandler = (function () { - /** - * Creates an instance of ApiEventHandler. - * @param {PresentationLayer} presLayer - An implementation of the pres-layer Api to use - * @param {AddInLocatorPresModel} addInLocatorPresModel - locator for the add-in which is being referenced - * @memberof ApiEventHandler - */ - function ApiEventHandler(presLayer, addInLocatorPresModel) { - this._presLayer = presLayer; - this._presLayerAddInLocator = addInLocatorPresModel; - } - /** - * Sets the internal Api version number which the external library is expecting to use. This must be called before - * anything else in order to properly set up the translation layers. - * - * @param {VersionNumber} versionNumber - * @memberof ApiEventHandler - */ - ApiEventHandler.prototype.setVersionNumber = function (versionNumber) { - this._versionNumber = versionNumber; - // Initialize all our registries - this._commandRegistry = CommandMappingRegistryFactory_1.CommandMappingRegistryFactory.createCommandMappingRegistry(versionNumber); - this._apiToPresLayerRegistry = ParameterMappingRegistryFactory_1.ParameterMappingRegistryFactory.createApiToPresLayerParamRegistry(versionNumber); - this._presLayerToApiRegistry = ParameterMappingRegistryFactory_1.ParameterMappingRegistryFactory.createPresLayerToApiParamRegistry(versionNumber); - this._eventRegistry = EventMappingRegistryFactory_1.EventMappingRegistryFactory.createEventMappingRegistry(versionNumber); - // Convert our addInLocator to the Api version - this._apiAddInLocator = this._presLayerToApiRegistry - .get(Params_1.ParameterId.AddInLocator, api_internal_contract_1.ParameterId.AddInLocator)(this._presLayerAddInLocator); - for (var _i = 0, _a = Object.keys(this._eventRegistry); _i < _a.length; _i++) { - var plEventId = _a[_i]; - // Register for all notifications we know about and bind the event type to the callback - this._presLayer.registerNotificationHandler(plEventId, this.onPresLayerNotification.bind(this, plEventId)); - } - }; - /** - * Sets an event handler function to be notified when Api events come in. Only a single registration is supported. - * - * @param {NotificationHandler} eventHandler - * @memberof ApiEventHandler - */ - ApiEventHandler.prototype.setEventHandler = function (eventHandler) { - this._eventHandler = eventHandler; - // TODO - Register for pres layer events - }; - /** - * Executes the requested Api command by converting the parameters, running the command against the pres-layer, - * then processing the result back into a format the Api can understand - * - * @param {VerbId} verb - * @param {ExecuteParameters} parameters - * @returns {Promise} - * @memberof ApiEventHandler - */ - ApiEventHandler.prototype.execute = function (verb, parameters) { - var _this = this; - this.assertInitialized(); - var command = this._commandRegistry.getCommand(verb); - parameters = parameters || {}; - // Augment the command with the locator if it's needed - if (command.needsAddInLocator) { - parameters[api_internal_contract_1.ParameterId.AddInLocator] = this._apiAddInLocator; - } - var commandsParams = command.createParams(parameters, this._apiToPresLayerRegistry); - return this._presLayer.invokeCommand('tabdoc', command.commandId, commandsParams) - .then(function (commandResult) { - var convertedResult = command.ProcessResult(commandResult, _this._presLayerToApiRegistry); - return { - result: convertedResult - }; - }); - }; - /** - * Helper method to check that things are initialized as expected. Throws if initialization not complete - * - * @private - * @memberof ApiEventHandler - */ - ApiEventHandler.prototype.assertInitialized = function () { - if (!this._versionNumber) { - throw new Error('VersionNumber not yet configured. Cannot take any actions'); - } - }; - /** - * Called when a new event notification comes in from the presentation layer - * - * @param eventId The pres layer event id - * @param presModel The pres model that is included with the event - */ - ApiEventHandler.prototype.onPresLayerNotification = function (eventId, presModel) { - // First look up this eventId in our registry and convert to presModel - var eventMapping = this._eventRegistry[eventId]; - var apiModel = eventMapping.converter(presModel); - if (this._eventHandler) { - this._eventHandler(eventMapping.apiId, apiModel); - } - }; - return ApiEventHandler; - }()); - exports.ApiEventHandler = ApiEventHandler; - - -/***/ }, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export(__webpack_require__(5)); - __export(__webpack_require__(6)); - __export(__webpack_require__(7)); - __export(__webpack_require__(8)); - __export(__webpack_require__(9)); - - -/***/ }, -/* 5 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var AddInContext; - (function (AddInContext) { - AddInContext["Desktop"] = "desktop"; - AddInContext["Server"] = "server"; - AddInContext["Unknown"] = "unknown"; - })(AddInContext = exports.AddInContext || (exports.AddInContext = {})); - var AddInMode; - (function (AddInMode) { - AddInMode["Authoring"] = "authoring"; - AddInMode["Viewing"] = "viewing"; - AddInMode["Unknown"] = "unknown"; - })(AddInMode = exports.AddInMode || (exports.AddInMode = {})); - var DashboardObjectType; - (function (DashboardObjectType) { - DashboardObjectType["Blank"] = "blank"; - DashboardObjectType["Worksheet"] = "worksheet"; - DashboardObjectType["QuickFilter"] = "quick-filter"; - DashboardObjectType["ParameterControl"] = "parameter-control"; - DashboardObjectType["PageFilter"] = "page-filter"; - DashboardObjectType["Legend"] = "legend"; - DashboardObjectType["Title"] = "title"; - DashboardObjectType["Text"] = "text"; - DashboardObjectType["Image"] = "image"; - DashboardObjectType["WebPage"] = "web-page"; - DashboardObjectType["AddIn"] = "addin"; - })(DashboardObjectType = exports.DashboardObjectType || (exports.DashboardObjectType = {})); - var DataType; - (function (DataType) { - DataType["String"] = "string"; - DataType["Int"] = "int"; - DataType["Float"] = "float"; - DataType["Bool"] = "bool"; - DataType["Date"] = "date"; - DataType["DateTime"] = "date-time"; - DataType["Spatial"] = "spatial"; - })(DataType = exports.DataType || (exports.DataType = {})); - var EncodedDataType; - (function (EncodedDataType) { - EncodedDataType["Number"] = "number"; - EncodedDataType["String"] = "string"; - EncodedDataType["Date"] = "date"; - EncodedDataType["Boolean"] = "boolean"; - })(EncodedDataType = exports.EncodedDataType || (exports.EncodedDataType = {})); - var ErrorCode; - (function (ErrorCode) { - ErrorCode["ServerError"] = "server-error"; - ErrorCode["InvalidAggregationFieldName"] = "invalid-aggregation-field-name"; - ErrorCode["InvalidFilterFieldName"] = "invalid-filter-fieldname"; - ErrorCode["InvalidFilterFieldValue"] = "invalid-filter-field-value"; - })(ErrorCode = exports.ErrorCode || (exports.ErrorCode = {})); - /** - * The different update types for applying filter. - */ - var FilterUpdateType; - (function (FilterUpdateType) { - FilterUpdateType["Add"] = "add"; - FilterUpdateType["All"] = "all"; - FilterUpdateType["Replace"] = "replace"; - FilterUpdateType["Remove"] = "remove"; - })(FilterUpdateType = exports.FilterUpdateType || (exports.FilterUpdateType = {})); - var SheetType; - (function (SheetType) { - SheetType["Dashboard"] = "dashboard"; - SheetType["Story"] = "story"; - SheetType["Worksheet"] = "worksheet"; - SheetType["Addin"] = "addin"; - })(SheetType = exports.SheetType || (exports.SheetType = {})); - var DomainRestrictionType; - (function (DomainRestrictionType) { - DomainRestrictionType["All"] = "all"; - DomainRestrictionType["List"] = "list"; - DomainRestrictionType["Range"] = "range"; - })(DomainRestrictionType = exports.DomainRestrictionType || (exports.DomainRestrictionType = {})); - var DateStepPeriod; - (function (DateStepPeriod) { - DateStepPeriod["Years"] = "years"; - DateStepPeriod["Quarters"] = "quarters"; - DateStepPeriod["Months"] = "months"; - DateStepPeriod["Weeks"] = "weeks"; - DateStepPeriod["Days"] = "days"; - DateStepPeriod["Hours"] = "hours"; - DateStepPeriod["Minutes"] = "minutes"; - DateStepPeriod["Seconds"] = "seconds"; - })(DateStepPeriod = exports.DateStepPeriod || (exports.DateStepPeriod = {})); - /** - * The option for specifying which values to include for filtering. - */ - var NullOption; - (function (NullOption) { - NullOption["NullValues"] = "nullvalues"; - NullOption["NonNullValues"] = "nonnullvalues"; - NullOption["AllValues"] = "allvalues"; - })(NullOption = exports.NullOption || (exports.NullOption = {})); - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var InternalApiDispatcherHolder; - (function (InternalApiDispatcherHolder) { - function getDesktopDispatcherPromise() { - return window.__tableauDesktopDispatcher; - } - InternalApiDispatcherHolder.getDesktopDispatcherPromise = getDesktopDispatcherPromise; - function hasDesktopApiDispatcherPromise() { - return !!InternalApiDispatcherHolder.getDesktopDispatcherPromise(); - } - InternalApiDispatcherHolder.hasDesktopApiDispatcherPromise = hasDesktopApiDispatcherPromise; - function setDesktopDispatcherPromise(dispatcher) { - window.__tableauDesktopDispatcher = dispatcher; - } - InternalApiDispatcherHolder.setDesktopDispatcherPromise = setDesktopDispatcherPromise; - })(InternalApiDispatcherHolder = exports.InternalApiDispatcherHolder || (exports.InternalApiDispatcherHolder = {})); - - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var NotificationId; - (function (NotificationId) { - NotificationId["SelectedMarksChanged"] = "selected-marks-changed"; - NotificationId["ParameterChanged"] = "parameter-changed"; - NotificationId["FilterChanged"] = "filter-changed"; - })(NotificationId = exports.NotificationId || (exports.NotificationId = {})); - - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var ParameterId; - (function (ParameterId) { - ParameterId["AddInLocator"] = "add-in-locator"; - ParameterId["AddInBootstrapInfo"] = "add-in-bootstrap-info"; - ParameterId["AddInSettingsInfo"] = "add-in-settings-info"; - ParameterId["VisualId"] = "visual-id"; - ParameterId["SheetPath"] = "sheet-path"; - ParameterId["IgnoreAliases"] = "ignore-aliases"; - ParameterId["IgnoreSelection"] = "ignore-selection"; - ParameterId["IncludeAllColumns"] = "include-all-columns"; - ParameterId["MaxRows"] = "max-rows"; - ParameterId["UnderlyingDataTable"] = "underlying-data-table"; - ParameterId["UnderlyingSummaryDataTable"] = "underlying-summary-data-table"; - ParameterId["SettingsValues"] = "settings-values"; - ParameterId["SelectedData"] = "selected-data"; - ParameterId["HighlightedData"] = "highlighted-data"; - // Filter Params - ParameterId["FieldName"] = "field-name"; - ParameterId["FilterValues"] = "filter-values"; - ParameterId["FilterUpdateType"] = "filter-update-type"; - ParameterId["IsExcludeMode"] = "is-exclude"; - ParameterId["FilterRangeMin"] = "filter-range-min"; - ParameterId["FilterRangeMax"] = "filter-range-max"; - ParameterId["FilterRangeNullOption"] = "filter-range-null-option"; - ParameterId["WorksheetName"] = "worksheet-name"; - ParameterId["DashboardName"] = "dashboard"; - ParameterId["ParameterInfo"] = "parameter-info"; - ParameterId["ParameterInfos"] = "parameter-infos"; - ParameterId["ParameterCaption"] = "paremeter-caption"; - ParameterId["ParameterFieldName"] = "parameter-field-name"; - ParameterId["ParameterValue"] = "parameter-value"; - })(ParameterId = exports.ParameterId || (exports.ParameterId = {})); - - -/***/ }, -/* 9 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - // Declare this key type and export the NotificationId to make this behave like a string enum - var VerbId; - (function (VerbId) { - VerbId["ApplyCategoricalFilter"] = "categorical-filter"; - VerbId["ApplyRangeFilter"] = "range-filter"; - VerbId["ClearFilter"] = "clear-filter"; - VerbId["InitializeAddIn"] = "initialize-add-in"; - VerbId["GetDataSummaryData"] = "get-summary-data"; - VerbId["GetUnderlyingData"] = "get-underlying-data"; - VerbId["SaveAddInSettings"] = "save-add-in-settings"; - VerbId["GetSelectedMarks"] = "get-selected-marks"; - VerbId["GetHighlightedMarks"] = "get-highlighted-marks"; - VerbId["GetParametersForSheet"] = "get-parameters-for-sheet"; - VerbId["FindParameter"] = "find-parameter"; - VerbId["ChangeParameterValue"] = "change-parameter-value"; - VerbId["ClearSelectedMarks"] = "clear-selected-marks"; - })(VerbId = exports.VerbId || (exports.VerbId = {})); - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - "use strict"; - // ----------------------------------------------------------------------------- - // - // This file is the copyrighted property of Tableau Software and is protected - // by registered patents and other applicable U.S. and international laws and - // regulations. - // - // Unlicensed use of the contents of this file is prohibited. Please refer to - // the NOTICES.txt file for further details. - // - // ----------------------------------------------------------------------------- - // WARNING: Computer generated file. Do not hand modify. - // DEPENDS ON: ['..\\typescript\\js-api\\api-core\\node_modules\\@tableau\\preslayer-codegen-typescript\\templates\\params-ts.template', u'..\\typescript\\js-api\\api-core\\temp-pres-layer\\all-params.data'] - Object.defineProperty(exports, "__esModule", { value: true }); - var ParameterId; - (function (ParameterId) { - // DPI_IntegerRLE, having type int[] - ParameterId["IntegerRLE"] = "intRle"; - // DPI_UnsignedIntegerRLE, having type uint[] - ParameterId["UnsignedIntegerRLE"] = "uintRle"; - // DPI_FloatRLE, having type float[] - ParameterId["FloatRLE"] = "floatRle"; - // DPI_ParameterID, having type string - ParameterId["ParameterID"] = "paramType"; - // DPI_AllowCustomDatabase, having type bool - ParameterId["AllowCustomDatabase"] = "allowCustomDatabase"; - // DPI_AllowCustomSchema, having type bool - ParameterId["AllowCustomSchema"] = "allowCustomSchema"; - // DPI_AllowCustomSQL, having type bool - ParameterId["AllowCustomSQL"] = "allowCustomSql"; - // DPI_AllowCustomSQLWithoutSchema, having type bool - ParameterId["AllowCustomSQLWithoutSchema"] = "allowCustomSqlWithoutSchema"; - // DPI_AllowPreviewData, having type bool - ParameterId["AllowPreviewData"] = "allowPreviewData"; - // DPI_AllowStoredProc, having type bool - ParameterId["AllowStoredProc"] = "allowStoredProcedure"; - // DPI_AllowUnion, having type bool - ParameterId["AllowUnion"] = "allowUnion"; - // DPI_AreVariablesVisible, having type bool - ParameterId["AreVariablesVisible"] = "areVariablesVisible"; - // DPI_AttrLegacyConnection, having type bool - ParameterId["AttrLegacyConnection"] = "widgetAttrLegacy"; - // DPI_AttrReadUncommitted, having type bool - ParameterId["AttrReadUncommitted"] = "widgetAttrReadUncommittedData"; - // DPI_AttrRequireSSL, having type bool - ParameterId["AttrRequireSSL"] = "widgetAttrRequireSsl"; - // DPI_AttrRequireEncryption, having type bool - ParameterId["AttrRequireEncryption"] = "widgetAttrRequireEncryption"; - // DPI_Bool, having type bool - ParameterId["Bool"] = "bool"; - // DPI_CanPartition, having type bool - ParameterId["CanPartition"] = "canPartition"; - // DPI_CanRecommendDataSources, having type bool - ParameterId["CanRecommendDataSources"] = "canRecommendDatasources"; - // DPI_CanRecommendTables, having type bool - ParameterId["CanRecommendTables"] = "canRecommendTables"; - // DPI_CheckPermissions, having type bool - ParameterId["CheckPermissions"] = "checkPermissions"; - // DPI_DatabaseNameOptional, having type bool - ParameterId["DatabaseNameOptional"] = "databaseNameOptional"; - // DPI_DatabaseWHOptional, having type bool - ParameterId["DatabaseWHOptional"] = "databaseWarehouseOptional"; - // DPI_DoValidation, having type bool - ParameterId["DoValidation"] = "doValidation"; - // DPI_DoneLoadingAllSheets, having type bool - ParameterId["DoneLoadingAllSheets"] = "googleSheetDoneLoading"; - // DPI_GABasicItemsEnabled, having type bool - ParameterId["GABasicItemsEnabled"] = "gaBasicItemsEnabled"; - // DPI_GADimensionMeasuresEnabled, having type bool - ParameterId["GADimensionMeasuresEnabled"] = "gaDimensionsMeasuresEnabled"; - // DPI_GAFiltersEnabled, having type bool - ParameterId["GAFiltersEnabled"] = "gaFiltersEnabled"; - // DPI_HasDatabase, having type bool - ParameterId["HasDatabase"] = "hasDatabase"; - // DPI_HasDataLoss, having type bool - ParameterId["HasDataLoss"] = "hasDataLoss"; - // DPI_HasFastMetadata, having type bool - ParameterId["HasFastMetadata"] = "hasFastMetadata"; - // DPI_HasNewlyDiscoveredSchema, having type bool - ParameterId["HasNewlyDiscoveredSchema"] = "hasNewlyDiscoveredSchema"; - // DPI_HasPermissions, having type bool - ParameterId["HasPermissions"] = "hasPermissions"; - // DPI_HasSchema, having type bool - ParameterId["HasSchema"] = "hasSchema"; - // DPI_HasSchemaCount, having type bool - ParameterId["HasSchemaCount"] = "hasSchemaCount"; - // DPI_HasTables, having type bool - ParameterId["HasTables"] = "hasTables"; - // DPI_HasUncommittedChanges, having type bool - ParameterId["HasUncommittedChanges"] = "hasUncommittedChanges"; - // DPI_HasWarehouse, having type bool - ParameterId["HasWarehouse"] = "hasWarehouse"; - // DPI_HasWarning, having type bool - ParameterId["HasWarning"] = "hasWarning"; - // DPI_IsCalculated, having type bool - ParameterId["IsCalculated"] = "isCalculated"; - // DPI_IsConnectedToDataSource, having type bool - ParameterId["IsConnectedToDataSource"] = "isConnectedDatasource"; - // DPI_IsDisabledDataConnection, having type bool - ParameterId["IsDisabledDataConnection"] = "isDisabledDataConnection"; - // DPI_IsEditable, having type bool - ParameterId["IsEditable"] = "isEditable"; - // DPI_IsEnabled, having type bool - ParameterId["IsEnabled"] = "isEnabled"; - // DPI_IsFinishedConnecting, having type bool - ParameterId["IsFinishedConnecting"] = "isFinishedConnecting"; - // DPI_IsHidden, having type bool - ParameterId["IsHidden"] = "isHidden"; - // DPI_IsMultiTable, having type bool - ParameterId["IsMultiTable"] = "isMultiTable"; - // DPI_IsNewCustomSQL, having type bool - ParameterId["IsNewCustomSQL"] = "isNewCustomSql"; - // DPI_IsNewDataSource, having type bool - ParameterId["IsNewDataSource"] = "isNewDataSrc"; - // DPI_IsPublishedFederated, having type bool - ParameterId["IsPublishedFederated"] = "isPublishedFederated"; - // DPI_IsSampled, having type bool - ParameterId["IsSampled"] = "isSampled"; - // DPI_IsSchemaMemberNewlyDiscovered, having type bool - ParameterId["IsSchemaMemberNewlyDiscovered"] = "isSchemaMemberNewlyDiscovered"; - // DPI_IsSlowFast, having type bool - ParameterId["IsSlowFast"] = "isSlowfast"; - // DPI_IsSupported, having type bool - ParameterId["IsSupported"] = "isSupported"; - // DPI_IsTableSelectionVisible, having type bool - ParameterId["IsTableSelectionVisible"] = "isTableSelectionVisible"; - // DPI_IsTableauServerDatasource, having type bool - ParameterId["IsTableauServerDatasource"] = "isTableauServerDatasource"; - // DPI_IsTableauServerDatasourceConnectable, having type bool - ParameterId["IsTableauServerDatasourceConnectable"] = "isTableauServerDatasourceConnectable"; - // DPI_IsTableauServerDatasourceDownloadable, having type bool - ParameterId["IsTableauServerDatasourceDownloadable"] = "isTableauServerDatasourceDownloadable"; - // DPI_IsVisible, having type bool - ParameterId["IsVisible"] = "isVisible"; - // DPI_NeedFlatten, having type bool - ParameterId["NeedFlatten"] = "needFlatten"; - // DPI_SSLRequiresCertificate, having type bool - ParameterId["SSLRequiresCertificate"] = "sslRequiresCertificate"; - // DPI_SchemaOptional, having type bool - ParameterId["SchemaOptional"] = "schemaOptional"; - // DPI_ServiceNameOptional, having type bool - ParameterId["ServiceNameOptional"] = "serviceNameOptional"; - // DPI_ShouldWarnForCrossSchemaJoins, having type bool - ParameterId["ShouldWarnForCrossSchemaJoins"] = "shouldWarnCrossSchemaJoins"; - // DPI_ShowBrowseButton, having type bool - ParameterId["ShowBrowseButton"] = "showBrowseButton"; - // DPI_ShowConnectionPrompt, having type bool - ParameterId["ShowConnectionPrompt"] = "showConnectionPrompt"; - // DPI_ShowDBBrowseButton, having type bool - ParameterId["ShowDBBrowseButton"] = "showDbBrowseButton"; - // DPI_ShowDBNamePrompt, having type bool - ParameterId["ShowDBNamePrompt"] = "showDbPrompt"; - // DPI_ShowDBWHNamePrompt, having type bool - ParameterId["ShowDBWHNamePrompt"] = "showDbwhPrompt"; - // DPI_ShowImportSSLCertLabel, having type bool - ParameterId["ShowImportSSLCertLabel"] = "showImportSslcertLabel"; - // DPI_ShowPortPrompt, having type bool - ParameterId["ShowPortPrompt"] = "showPortPrompt"; - // DPI_ShowSSLCheckbox, having type bool - ParameterId["ShowSSLCheckbox"] = "showSslCheckbox"; - // DPI_ShowEncryptionCheckbox, having type bool - ParameterId["ShowEncryptionCheckbox"] = "showEncryptionCheckbox"; - // DPI_ShowServerNamePrompt, having type bool - ParameterId["ShowServerNamePrompt"] = "showServerPrompt"; - // DPI_ShowServiceNamePrompt, having type bool - ParameterId["ShowServiceNamePrompt"] = "showServicePrompt"; - // DPI_ShowUncommittedDataCheckbox, having type bool - ParameterId["ShowUncommittedDataCheckbox"] = "showUncommittedDataCheckbox"; - // DPI_SupportsGenericAuth, having type bool - ParameterId["SupportsGenericAuth"] = "supportsGenericAuth"; - // DPI_TableauServerFetchAscending, having type bool - ParameterId["TableauServerFetchAscending"] = "tableauServerFetchAscending"; - // DPI_UsesRadioButton, having type bool - ParameterId["UsesRadioButton"] = "usesRadioButton"; - // DPI_BigQueryLegacySQLCheckStatus, having type bool - ParameterId["BigQueryLegacySQLCheckStatus"] = "datasourceBigqueryLegacySqlCheckStatus"; - // DPI_HasBigQueryLegacySQLCheck, having type bool - ParameterId["HasBigQueryLegacySQLCheck"] = "datasourceBigqueryLegacySqlCheck"; - // DPI_AutoFetchLimit, having type int - ParameterId["AutoFetchLimit"] = "autoFetchLimit"; - // DPI_ConnectionType, having type int - ParameterId["ConnectionType"] = "connectionType"; - // DPI_IconId, having type int - ParameterId["IconId"] = "iconId"; - // DPI_SelectedCatalogIndex, having type int - ParameterId["SelectedCatalogIndex"] = "selectedCatalogIndex"; - // DPI_SelectedCubeIndex, having type int - ParameterId["SelectedCubeIndex"] = "selectedCubeIndex"; - // DPI_SelectedGAAccountIndex, having type int - ParameterId["SelectedGAAccountIndex"] = "selectedGaAccountIndex"; - // DPI_SelectedGAMeasureSetIndex, having type int - ParameterId["SelectedGAMeasureSetIndex"] = "selectedGaMeasureSetIndex"; - // DPI_SelectedGAPropertyIndex, having type int - ParameterId["SelectedGAPropertyIndex"] = "selectedGaPropertyIndex"; - // DPI_SelectedGASegmentIndex, having type int - ParameterId["SelectedGASegmentIndex"] = "selectedGaSegmentIndex"; - // DPI_SelectedGAViewIndex, having type int - ParameterId["SelectedGAViewIndex"] = "selectedGaViewIndex"; - // DPI_SelectedGoogleSheetIndex, having type int - ParameterId["SelectedGoogleSheetIndex"] = "selectedGoogleSheetIndex"; - // DPI_SelectedOptionIndex, having type int - ParameterId["SelectedOptionIndex"] = "selectedOptionIndex"; - // DPI_SlowMetadataCount, having type int - ParameterId["SlowMetadataCount"] = "slowMetadataCount"; - // DPI_TableauServerFetchSortBy, having type int - ParameterId["TableauServerFetchSortBy"] = "tableauServerFetchSort"; - // DPI_ActualParameterOrdinal, having type uint - ParameterId["ActualParameterOrdinal"] = "actualParameterOrdinal"; - // DPI_ActualParameterType, having type uint - ParameterId["ActualParameterType"] = "actualParameterType"; - // DPI_CharSetID, having type uint - ParameterId["CharSetID"] = "charsetId"; - // DPI_DataSourceOrdinal, having type uint - ParameterId["DataSourceOrdinal"] = "datasourceOrdinal"; - // DPI_FilterCount, having type uint - ParameterId["FilterCount"] = "filterCount"; - // DPI_VariablesCount, having type uint - ParameterId["VariablesCount"] = "variablesCount"; - // DPI_ActualParameterDisplayName, having type string - ParameterId["ActualParameterDisplayName"] = "actualParameterDisplayName"; - // DPI_ActualParameterName, having type string - ParameterId["ActualParameterName"] = "actualParameterName"; - // DPI_ActualParameterValue, having type string - ParameterId["ActualParameterValue"] = "actualParameterValue"; - // DPI_AttrAPIVersion, having type string - ParameterId["AttrAPIVersion"] = "attrApiVersion"; - // DPI_AttrAuthType, having type string - ParameterId["AttrAuthType"] = "widgetAttrAuthtype"; - // DPI_AttrConnectionData, having type string - ParameterId["AttrConnectionData"] = "attrConnectionData"; - // DPI_AttrConnectionName, having type string - ParameterId["AttrConnectionName"] = "attrConnectionName"; - // DPI_AttrConnectionType, having type string - ParameterId["AttrConnectionType"] = "widgetAttrConnectiontype"; - // DPI_AttrConnectionURL, having type string - ParameterId["AttrConnectionURL"] = "attrConnectionUrl"; - // DPI_AttrCubeSpecificationId, having type string - ParameterId["AttrCubeSpecificationId"] = "widgetAttrCubeSpecificationId"; - // DPI_AttrCubeSpecificationValue, having type string - ParameterId["AttrCubeSpecificationValue"] = "widgetAttrCubeSpecificationValue"; - // DPI_AttrDSN, having type string - ParameterId["AttrDSN"] = "widgetAttrDsn"; - // DPI_AttrDatabase, having type string - ParameterId["AttrDatabase"] = "widgetAttrDb"; - // DPI_AttrDatabaseWarehouse, having type string - ParameterId["AttrDatabaseWarehouse"] = "widgetAttrDbwh"; - // DPI_AttrDriver, having type string - ParameterId["AttrDriver"] = "widgetAttrDriver"; - // DPI_AttrFilename, having type string - ParameterId["AttrFilename"] = "widgetAttrFilename"; - // DPI_AttrHTTPPath, having type string - ParameterId["AttrHTTPPath"] = "widgetAttrHttpPath"; - // DPI_AttrIncrementalRefreshKey, having type string - ParameterId["AttrIncrementalRefreshKey"] = "attrIncrementalRefreshKey"; - // DPI_AttrKerberosHost, having type string - ParameterId["AttrKerberosHost"] = "widgetAttrKerberosHost"; - // DPI_AttrKerberosRealm, having type string - ParameterId["AttrKerberosRealm"] = "widgetAttrKerberosRealm"; - // DPI_AttrKerberosService, having type string - ParameterId["AttrKerberosService"] = "widgetAttrKerberosService"; - // DPI_AttrLastRecordToken, having type string - ParameterId["AttrLastRecordToken"] = "attrLastRecordToken"; - // DPI_AttrMDWPath, having type string - ParameterId["AttrMDWPath"] = "widgetAttrMdwPath"; - // DPI_AttrMDWUsername, having type string - ParameterId["AttrMDWUsername"] = "widgetAttrMdwUsername"; - // DPI_AttrODBCPrompt, having type string - ParameterId["AttrODBCPrompt"] = "widgetAttrOdbcPrompt"; - // DPI_AttrODBCStringExtras, having type string - ParameterId["AttrODBCStringExtras"] = "widgetAttrOdbcStringExtras"; - // DPI_AttrPort, having type string - ParameterId["AttrPort"] = "widgetAttrPort"; - // DPI_AttrSAPClient, having type string - ParameterId["AttrSAPClient"] = "widgetAttrSapClient"; - // DPI_AttrSAPLanguage, having type string - ParameterId["AttrSAPLanguage"] = "widgetAttrSapLanguage"; - // DPI_AttrEdition, having type string - ParameterId["AttrEdition"] = "widgetAttrSslEdition"; - // DPI_AttrSSODomain, having type string - ParameterId["AttrSSODomain"] = "widgetAttrSsoDomain"; - // DPI_AttrSSLCert, having type string - ParameterId["AttrSSLCert"] = "widgetAttrSslCert"; - // DPI_AttrScriptVersion, having type string - ParameterId["AttrScriptVersion"] = "attrScriptVersion"; - // DPI_AttrServer, having type string - ParameterId["AttrServer"] = "widgetAttrServer"; - // DPI_AttrService, having type string - ParameterId["AttrService"] = "widgetAttrService"; - // DPI_AttrUsername, having type string - ParameterId["AttrUsername"] = "widgetAttrUser"; - // DPI_AuthenticationPrompt, having type string - ParameterId["AuthenticationPrompt"] = "authenticationPrompt"; - // DPI_Caption, having type string - ParameterId["Caption"] = "caption"; - // DPI_CatalogListPrompt, having type string - ParameterId["CatalogListPrompt"] = "catalogListPrompt"; - // DPI_CatalogName, having type string - ParameterId["CatalogName"] = "catalogName"; - // DPI_CatalogSearchTerm, having type string - ParameterId["CatalogSearchTerm"] = "catalogSearchTerm"; - // DPI_Category, having type string - ParameterId["Category"] = "itemCategory"; - // DPI_ClassName, having type string - ParameterId["ClassName"] = "classNameForCleaning"; - // DPI_CloudFileClassName, having type string - ParameterId["CloudFileClassName"] = "cloudFileClassName"; - // DPI_CloudFileStorageProvider, having type string - ParameterId["CloudFileStorageProvider"] = "cloudFileStorageProvider"; - // DPI_ConfigName, having type string - ParameterId["ConfigName"] = "connectionConfigName"; - // DPI_ConnectionCaption, having type string - ParameterId["ConnectionCaption"] = "connectionCaption"; - // DPI_ConnectionDescriptionLabel, having type string - ParameterId["ConnectionDescriptionLabel"] = "connectionDescriptionLabel"; - // DPI_ConnectionClass, having type string - ParameterId["ConnectionClass"] = "connectionClassName"; - // DPI_ConnectionName, having type string - ParameterId["ConnectionName"] = "connectionName"; - // DPI_ConnectionOptionName, having type string - ParameterId["ConnectionOptionName"] = "connectionOptionName"; - // DPI_ConnectionSpecificationTitle, having type string - ParameterId["ConnectionSpecificationTitle"] = "connectionSpecificationTitle"; - // DPI_ConnectionTypeLabel, having type string - ParameterId["ConnectionTypeLabel"] = "connectionTypeLabel"; - // DPI_CubeDescription, having type string - ParameterId["CubeDescription"] = "cubeDescription"; - // DPI_CubeLastUpdated, having type string - ParameterId["CubeLastUpdated"] = "cubeLastUpdated"; - // DPI_CubeListPrompt, having type string - ParameterId["CubeListPrompt"] = "cubeListPrompt"; - // DPI_CubeName, having type string - ParameterId["CubeName"] = "cubeName"; - // DPI_CubeSearchTerm, having type string - ParameterId["CubeSearchTerm"] = "cubeSearchTerm"; - // DPI_CurrentText, having type string - ParameterId["CurrentText"] = "currentText"; - // DPI_CustomSplitStringSeparator, having type string - ParameterId["CustomSplitStringSeparator"] = "customSplitStringSeparator"; - // DPI_DatasourceId, having type string - ParameterId["DatasourceId"] = "datasourceId"; - // DPI_DBNamePrompt, having type string - ParameterId["DBNamePrompt"] = "dbNamePrompt"; - // DPI_DBWHNamePrompt, having type string - ParameterId["DBWHNamePrompt"] = "dbWarehouseNamePrompt"; - // DPI_DSClass, having type string - ParameterId["DSClass"] = "dsClass"; - // DPI_DatabaseName, having type string - ParameterId["DatabaseName"] = "datasourceDatabaseName"; - // DPI_DatabaseNote, having type string - ParameterId["DatabaseNote"] = "databaseNote"; - // DPI_DragLabel, having type string - ParameterId["DragLabel"] = "dragLabel"; - // DPI_EffectiveDateRange, having type string - ParameterId["EffectiveDateRange"] = "effectiveDateRange"; - // DPI_GoogleSheetCreatedTime, having type string - ParameterId["GoogleSheetCreatedTime"] = "googleSheetCreatedTime"; - // DPI_GoogleSheetId, having type string - ParameterId["GoogleSheetId"] = "googleSheetId"; - // DPI_GoogleSheetLastModifiedTime, having type string - ParameterId["GoogleSheetLastModifiedTime"] = "googleSheetLastModifiedTime"; - // DPI_GoogleSheetLastModifyingUser, having type string - ParameterId["GoogleSheetLastModifyingUser"] = "googleSheetLastModifyingUser"; - // DPI_GoogleSheetLastViewedByUserTime, having type string - ParameterId["GoogleSheetLastViewedByUserTime"] = "googleSheetLastViewedByUserTime"; - // DPI_GoogleSheetMimeType, having type string - ParameterId["GoogleSheetMimeType"] = "googleSheetMimeType"; - // DPI_GoogleSheetName, having type string - ParameterId["GoogleSheetName"] = "googleSheetName"; - // DPI_GoogleSheetOwner, having type string - ParameterId["GoogleSheetOwner"] = "googleSheetOwner"; - // DPI_GoogleSheetThumbnailLink, having type string - ParameterId["GoogleSheetThumbnailLink"] = "googleSheetThumbnailLink"; - // DPI_GoogleSheetThumbnailId, having type string - ParameterId["GoogleSheetThumbnailId"] = "googleSheetThumbnailId"; - // DPI_GoogleSheetThumbnailLocalPath, having type string - ParameterId["GoogleSheetThumbnailLocalPath"] = "googleSheetThumbnailLocalPath"; - // DPI_GoogleSheetWebViewLink, having type string - ParameterId["GoogleSheetWebViewLink"] = "googleSheetWebViewLink"; - // DPI_GoogleSheetsListErrorMessage, having type string - ParameterId["GoogleSheetsListErrorMessage"] = "googleSheetsListErrorMessage"; - // DPI_InitialSQL, having type string - ParameterId["InitialSQL"] = "initialSql"; - // DPI_ISODate, having type string - ParameterId["ISODate"] = "isoDate"; - // DPI_ISOEndDate, having type string - ParameterId["ISOEndDate"] = "isoEndDate"; - // DPI_ISOStartDate, having type string - ParameterId["ISOStartDate"] = "isoStartDate"; - // DPI_IsolationLevel, having type string - ParameterId["IsolationLevel"] = "datasourceIsolationLevel"; - // DPI_ItemDescription, having type string - ParameterId["ItemDescription"] = "itemDescription"; - // DPI_ItemId, having type string - ParameterId["ItemId"] = "itemId"; - // DPI_KerberosHost, having type string - ParameterId["KerberosHost"] = "datasourceKerberosHost"; - // DPI_KerberosRealm, having type string - ParameterId["KerberosRealm"] = "datasourceKerberosRealm"; - // DPI_KerberosService, having type string - ParameterId["KerberosService"] = "datasourceKerberosService"; - // DPI_Name, having type string - ParameterId["Name"] = "name"; - // DPI_OptionId, having type string - ParameterId["OptionId"] = "optionId"; - // DPI_PartitioningButtonLabel, having type string - ParameterId["PartitioningButtonLabel"] = "partitioningButtonLabel"; - // DPI_PartitioningButtonTooltip, having type string - ParameterId["PartitioningButtonTooltip"] = "partitioningButtonTooltip"; - // DPI_PartitioningText, having type string - ParameterId["PartitioningText"] = "queryPartitioningText"; - // DPI_PdfStartPage, having type string - ParameterId["PdfStartPage"] = "pdfStartPage"; - // DPI_PdfEndPage, having type string - ParameterId["PdfEndPage"] = "pdfEndPage"; - // DPI_PortPrompt, having type string - ParameterId["PortPrompt"] = "portPrompt"; - // DPI_PromptText, having type string - ParameterId["PromptText"] = "promptText"; - // DPI_QueryBanding, having type string - ParameterId["QueryBanding"] = "queryBanding"; - // DPI_QueryText, having type string - ParameterId["QueryText"] = "queryText"; - // DPI_RecommendationUUID, having type string - ParameterId["RecommendationUUID"] = "recommendationUuid"; - // DPI_SQLQuery, having type string - ParameterId["SQLQuery"] = "sqlQuery"; - // DPI_SchemaComboFallbackText, having type string - ParameterId["SchemaComboFallbackText"] = "schemaComboFallbackText"; - // DPI_SchemaLabel, having type string - ParameterId["SchemaLabel"] = "schemaLabel"; - // DPI_SchemaMemberGlobalName, having type string - ParameterId["SchemaMemberGlobalName"] = "schemaMemberGlobalName"; - // DPI_SchemaName, having type string - ParameterId["SchemaName"] = "datasourceSchemaName"; - // DPI_ScriptText, having type string - ParameterId["ScriptText"] = "scriptText"; - // DPI_SecondaryWhiteList, having type string - ParameterId["SecondaryWhiteList"] = "secondaryWhiteList"; - // DPI_Server, having type string - ParameterId["Server"] = "datasourceServer"; - // DPI_ServerNamePrompt, having type string - ParameterId["ServerNamePrompt"] = "serverNamePrompt"; - // DPI_Service, having type string - ParameterId["Service"] = "datasourceService"; - // DPI_ServiceNamePrompt, having type string - ParameterId["ServiceNamePrompt"] = "servicePrompt"; - // DPI_SheetFormatting, having type string - ParameterId["SheetFormatting"] = "sheetFormatting"; - // DPI_SlowMetadataSearchTerm, having type string - ParameterId["SlowMetadataSearchTerm"] = "slowMetadataSearchTerm"; - // DPI_StandardConnectionName, having type string - ParameterId["StandardConnectionName"] = "datasourceStandardConnectionName"; - // DPI_StandardConnectionPlaceholderText, having type string - ParameterId["StandardConnectionPlaceholderText"] = "standardConnectionPlaceholderText"; - // DPI_StoredProcedureParameterTitle, having type string - ParameterId["StoredProcedureParameterTitle"] = "storedProcedureParameterTitle"; - // DPI_TableAlias, having type string - ParameterId["TableAlias"] = "tableAlias"; - // DPI_RightTableAlias, having type string - ParameterId["RightTableAlias"] = "rightTableAlias"; - // DPI_TableCaption, having type string - ParameterId["TableCaption"] = "tableCaption"; - // DPI_TableCollectionName, having type string - ParameterId["TableCollectionName"] = "tableCollectionName"; - // DPI_TablePlaceholderText, having type string - ParameterId["TablePlaceholderText"] = "tablePlaceholderText"; - // DPI_TableRanking, having type string - ParameterId["TableRanking"] = "tableRanking"; - // DPI_TableSortKey, having type string - ParameterId["TableSortKey"] = "tableSortkey"; - // DPI_TableTooltip, having type string - ParameterId["TableTooltip"] = "tableTooltip"; - // DPI_TableToReplace, having type string - ParameterId["TableToReplace"] = "tableToReplace"; - // DPI_TableWarningMessage, having type string - ParameterId["TableWarningMessage"] = "tableWarningMessage"; - // DPI_TableauServerDatasourceDescription, having type string - ParameterId["TableauServerDatasourceDescription"] = "tableauServerDatasourceDescription"; - // DPI_TableauServerDatasourceLastExtract, having type string - ParameterId["TableauServerDatasourceLastExtract"] = "tableauServerDatasourceLastExtract"; - // DPI_TableauServerDatasourceModified, having type string - ParameterId["TableauServerDatasourceModified"] = "tableauServerDatasourceModified"; - // DPI_TableauServerDatasourceOwner, having type string - ParameterId["TableauServerDatasourceOwner"] = "tableauServerDatasourceOwner"; - // DPI_TableauServerDatasourcePath, having type string - ParameterId["TableauServerDatasourcePath"] = "tableauServerDatasourcePath"; - // DPI_TableauServerFetchSearchQuery, having type string - ParameterId["TableauServerFetchSearchQuery"] = "tableauServerFetchSearchQuery"; - // DPI_TableauServerName, having type string - ParameterId["TableauServerName"] = "tableauServerName"; - // DPI_TableauServerProjectName, having type string - ParameterId["TableauServerProjectName"] = "tableauServerProjectName"; - // DPI_TableauServerUsername, having type string - ParameterId["TableauServerUsername"] = "tableauServerUsername"; - // DPI_TransportType, having type string - ParameterId["TransportType"] = "transportType"; - // DPI_WarehouseName, having type string - ParameterId["WarehouseName"] = "datasourceWarehouseName"; - // DPI_WorkgroupWorkbookName, having type string - ParameterId["WorkgroupWorkbookName"] = "workgroupWorkbookName"; - // DPI_AnalyticsItemTooltip, having type string - ParameterId["AnalyticsItemTooltip"] = "analyticsItemTooltip"; - // DPI_Description, having type string - ParameterId["Description"] = "description"; - // DPI_DSClassCaption, having type string - ParameterId["DSClassCaption"] = "dsClassCaption"; - // DPI_Formula, having type string - ParameterId["Formula"] = "formula"; - // DPI_MessageText, having type string - ParameterId["MessageText"] = "messageText"; - // DPI_Datasource, having type string - ParameterId["Datasource"] = "datasource"; - // DPI_DatasourceSource, having type string - ParameterId["DatasourceSource"] = "datasourceSource"; - // DPI_DatasourceTarget, having type string - ParameterId["DatasourceTarget"] = "datasourceTarget"; - // DPI_FirstDatasource, having type string - ParameterId["FirstDatasource"] = "firstDatasource"; - // DPI_NewDatasource, having type string - ParameterId["NewDatasource"] = "newDatasource"; - // DPI_ParametersDatasource, having type string - ParameterId["ParametersDatasource"] = "parametersDatasource"; - // DPI_PrimaryDatasource, having type string - ParameterId["PrimaryDatasource"] = "primaryDatasource"; - // DPI_ConnectionDatabases, having type string[] - ParameterId["ConnectionDatabases"] = "connectionDatabases"; - // DPI_ConnectionSchemas, having type string[] - ParameterId["ConnectionSchemas"] = "connectionSchemas"; - // DPI_ConnectionWarehouses, having type string[] - ParameterId["ConnectionWarehouses"] = "connectionWarehouses"; - // DPI_PossibleChoices, having type string[] - ParameterId["PossibleChoices"] = "possibleChoices"; - // DPI_StandardConnections, having type string[] - ParameterId["StandardConnections"] = "standardConnections"; - // DPI_Strings, having type string[] - ParameterId["Strings"] = "strings"; - // DPI_TableauServerProjectNames, having type string[] - ParameterId["TableauServerProjectNames"] = "tableauServerProjectNames"; - // DPI_TableCaptions, having type string[] - ParameterId["TableCaptions"] = "tableCaptions"; - // DPI_DataValues, having type object[] - ParameterId["DataValues"] = "dataValues"; - // DPI_QueryBandErrors, having type object[] - ParameterId["QueryBandErrors"] = "queryBandErrors"; - // DPI_QueryBandParameters, having type object[] - ParameterId["QueryBandParameters"] = "queryBandParameters"; - // DPI_InitialSQLParameters, having type object[] - ParameterId["InitialSQLParameters"] = "initialSqlParameters"; - // DPI_ConnectionAttributes, having type Dictionary(of string) - ParameterId["ConnectionAttributes"] = "connectionAttrs"; - // DPI_ConnectionProps, having type Dictionary(of string) - ParameterId["ConnectionProps"] = "connectionProps"; - // DPI_DisplayNameMap, having type Dictionary(of string) - ParameterId["DisplayNameMap"] = "displayNameMap"; - // DPI_LookupTable, having type Dictionary(of string) - ParameterId["LookupTable"] = "lookupTable"; - // DPI_OAuthAttrs, having type Dictionary(of string) - ParameterId["OAuthAttrs"] = "oauthAttrs"; - // DPI_StringMap, having type Dictionary(of string) - ParameterId["StringMap"] = "stringMap"; - // DPI_TableRankingMap, having type Dictionary(of string) - ParameterId["TableRankingMap"] = "tableRankingMap"; - // DPI_WDCAttributes, having type Dictionary(of string) - ParameterId["WDCAttributes"] = "wdcAttrs"; - // DPI_ConnectorAttributes, having type Dictionary(of string) - ParameterId["ConnectorAttributes"] = "connectorAttrs"; - // DPI_TableRelevanceParams, having type Dictionary(of string) - ParameterId["TableRelevanceParams"] = "tableRelevanceParams"; - // DPI_ActualParameterParameter, having type string - ParameterId["ActualParameterParameter"] = "actualParameterParameter"; - // DPI_DataColumnName, having type string - ParameterId["DataColumnName"] = "dataColumnName"; - // DPI_LHSDataColumnName, having type string - ParameterId["LHSDataColumnName"] = "lhsDataColumnName"; - // DPI_RHSDataColumnName, having type string - ParameterId["RHSDataColumnName"] = "rhsDataColumnName"; - // DPI_FullCubeName, having type string - ParameterId["FullCubeName"] = "fullCubeName"; - // DPI_FullVariableName, having type string - ParameterId["FullVariableName"] = "fullVariableName"; - // DPI_SemanticRole, having type string - ParameterId["SemanticRole"] = "semanticRole"; - // DPI_StoredProcedureName, having type string - ParameterId["StoredProcedureName"] = "storedProcName"; - // DPI_TableName, having type string - ParameterId["TableName"] = "tableName"; - // DPI_AddedTableNames, having type string[] - ParameterId["AddedTableNames"] = "addedTableNames"; - // DPI_CoalesceGroupFields, having type string[] - ParameterId["CoalesceGroupFields"] = "coalesceGroupFields"; - // DPI_FieldNames, having type string[] - ParameterId["FieldNames"] = "fieldNames"; - // DPI_JoinFieldAliases, having type string[] - ParameterId["JoinFieldAliases"] = "joinField_aliases"; - // DPI_JoinInfoFields, having type string[] - ParameterId["JoinInfoFields"] = "joinInfoFields"; - // DPI_PivotGroupFields, having type string[] - ParameterId["PivotGroupFields"] = "pivotGroupFields"; - // DPI_RemovedTableNames, having type string[] - ParameterId["RemovedTableNames"] = "removedTableNames"; - // DPI_StoredProcedures, having type string[] - ParameterId["StoredProcedures"] = "storedProcedures"; - // DPI_TableNames, having type string[] - ParameterId["TableNames"] = "tableNames"; - // DPI_ColumnName, having type string - ParameterId["ColumnName"] = "columnName"; - // DPI_FieldName, having type string - ParameterId["FieldName"] = "fn"; - // DPI_GoogleSheetThumbnailImage, having type string - ParameterId["GoogleSheetThumbnailImage"] = "googleSheetThumbnailImage"; - // DPI_AttrMDWPassword, having type string - ParameterId["AttrMDWPassword"] = "widgetAttrMdwPassword"; - // DPI_AttrPassword, having type string - ParameterId["AttrPassword"] = "widgetAttrPassword"; - // DPI_DatasourcePassword, having type string - ParameterId["DatasourcePassword"] = "datasourcePassword"; - // DPI_FederatedKeychain, having type string - ParameterId["FederatedKeychain"] = "federatedKeychain"; - // DPI_DataParameterID, having type string - ParameterId["DataParameterID"] = "dataParamType"; - // DPI_ConnectServerWidgetType, having type ConnectServerWidgetType - ParameterId["ConnectServerWidgetType"] = "connectServerWidgetType"; - // DPI_AuthenticationMode, having type Mode - ParameterId["AuthenticationMode"] = "authMode"; - // DPI_ReconnectAuthMode, having type ReconnectMode - ParameterId["ReconnectAuthMode"] = "reconnectAuthMode"; - // DPI_CurrentAuthOption, having type AuthOption - ParameterId["CurrentAuthOption"] = "currAuthOption"; - // DPI_AuthOptionList, having type AuthOption[] - ParameterId["AuthOptionList"] = "authOptions"; - // DPI_ConnectionSpecificationType, having type ConnectionSpecificationType - ParameterId["ConnectionSpecificationType"] = "connectionSpecificationType"; - // DPI_DataType, having type DataType - ParameterId["DataType"] = "dataType"; - // DPI_LHSDataType, having type DataType - ParameterId["LHSDataType"] = "lhsDataType"; - // DPI_RHSDataType, having type DataType - ParameterId["RHSDataType"] = "rhsDataType"; - // DPI_DefaultFieldRole, having type FieldRole - ParameterId["DefaultFieldRole"] = "defaultFieldRole"; - // DPI_FieldRole, having type FieldRole - ParameterId["FieldRole"] = "fieldRole"; - // DPI_DefaultFieldType, having type FieldType - ParameterId["DefaultFieldType"] = "defaultFieldType"; - // DPI_FieldType, having type FieldType - ParameterId["FieldType"] = "fieldType"; - // DPI_FieldTypeList, having type FieldType[] - ParameterId["FieldTypeList"] = "fieldTypeList"; - // DPI_FieldTypeListDetail, having type FieldType[] - ParameterId["FieldTypeListDetail"] = "fieldTypeListDetail"; - // DPI_AggType, having type AggType - ParameterId["AggType"] = "aggregation"; - // DPI_DefaultAggType, having type AggType - ParameterId["DefaultAggType"] = "defaultAggregation"; - // DPI_ForecastAgg, having type AggType - ParameterId["ForecastAgg"] = "forecastSummarizeTo"; - // DPI_ForecastAutoAgg, having type AggType - ParameterId["ForecastAutoAgg"] = "forecastAutoSummarizeTo"; - // DPI_ForecastAutoRangeUnits, having type AggType - ParameterId["ForecastAutoRangeUnits"] = "forecastAutoRangeUnits"; - // DPI_ForecastEndOfRangeUnits, having type AggType - ParameterId["ForecastEndOfRangeUnits"] = "forecastEndOfRangeUnits"; - // DPI_ForecastNextRangeUnits, having type AggType - ParameterId["ForecastNextRangeUnits"] = "forecastNextRangeUnits"; - // DPI_SourceAgg, having type AggType - ParameterId["SourceAgg"] = "sourceAggregation"; - // DPI_TargetAgg, having type AggType - ParameterId["TargetAgg"] = "targetAggregation"; - // DPI_AggregateByAggTypes, having type AggType[] - ParameterId["AggregateByAggTypes"] = "aggregateByAggTypes"; - // DPI_AggregationValues, having type AggType[] - ParameterId["AggregationValues"] = "aggregationValues"; - // DPI_SortAggValues, having type AggType[] - ParameterId["SortAggValues"] = "sortAggValues"; - // DPI_ColumnClass, having type ColumnClass - ParameterId["ColumnClass"] = "columnClass"; - // DPI_ConnectionWidgetType, having type ConnectionWidgetType - ParameterId["ConnectionWidgetType"] = "connectionWidgetType"; - // DPI_TablePillIcon, having type TablePillIcon - ParameterId["TablePillIcon"] = "tablePillIconType"; - // DPI_EnumeratedEntityType, having type EntityType - ParameterId["EnumeratedEntityType"] = "enumeratedEntityType"; - // DPI_PickEntitySearchType, having type PickEntitySearchType - ParameterId["PickEntitySearchType"] = "entitySearchType"; - // DPI_ExpressionOp, having type Op - ParameterId["ExpressionOp"] = "expressionOp"; - // DPI_ExpressionOperatorCaption, having type ExpressionOperatorCaptionPresModel - ParameterId["ExpressionOperatorCaption"] = "expressionOperatorCaption"; - // DPI_RelationalExperessionOps, having type ExpressionOperatorCaptionPresModel[] - ParameterId["RelationalExperessionOps"] = "relationalExpressionOps"; - // DPI_HierarchyExpressionOps, having type ExpressionOperatorCaptionPresModel[] - ParameterId["HierarchyExpressionOps"] = "hierarchyExpressionOps"; - // DPI_DefaultSortDirection, having type SortDirection - ParameterId["DefaultSortDirection"] = "defSortOrder"; - // DPI_SortDirection, having type SortDirection - ParameterId["SortDirection"] = "sortOrder"; - // DPI_SortDirectionValues, having type SortDirection[] - ParameterId["SortDirectionValues"] = "sortDirectionValues"; - // DPI_CubeMetadataCategory, having type CubeMetadataCategory - ParameterId["CubeMetadataCategory"] = "cubeMetadataCategory"; - // DPI_CubeMetadataCategories, having type CubeMetadataCategory[] - ParameterId["CubeMetadataCategories"] = "cubeMetadataCategories"; - // DPI_GoogleBasicInfoType, having type GoogleBasicInfoType - ParameterId["GoogleBasicInfoType"] = "googleBasicInfoType"; - // DPI_GoogleAnalyticsDateRangeOptionType, having type DateRange - ParameterId["GoogleAnalyticsDateRangeOptionType"] = "googleAnalyticsDateRangeOptionType"; - // DPI_TableCalcType, having type TableCalcType - ParameterId["TableCalcType"] = "tableCalcType"; - // DPI_TableCalcTypeValues, having type TableCalcType[] - ParameterId["TableCalcTypeValues"] = "tableCalcTypeValues"; - // DPI_RelativeAddress, having type RelativeAddress - ParameterId["RelativeAddress"] = "relativeAddress"; - // DPI_RelativeValues, having type RelativeAddress[] - ParameterId["RelativeValues"] = "relativeValues"; - // DPI_OrderingType, having type OrderingType - ParameterId["OrderingType"] = "orderingType"; - // DPI_OrderingTypeValues, having type OrderingType[] - ParameterId["OrderingTypeValues"] = "orderingTypeValues"; - // DPI_CategoricalBinItemType, having type CategoricalBinItemType - ParameterId["CategoricalBinItemType"] = "categoricalBinItemType"; - // DPI_AuthenticationInfos, having type AuthenticationSettingsPresModel - ParameterId["AuthenticationInfos"] = "authInfo"; - // DPI_ConnectionWidgetParams, having type ConnectionParamsPresModel - ParameterId["ConnectionWidgetParams"] = "widgetConnectionParams"; - // DPI_ConnectionSettings, having type ConnectionSettingsPresModel - ParameterId["ConnectionSettings"] = "connectionSettings"; - // DPI_ReconnectAuthenticationSettings, having type AuthenticationSettingsPresModel - ParameterId["ReconnectAuthenticationSettings"] = "reconnectAuthSettings"; - // DPI_CubeConnectionSpecificationOption, having type CubeConnectionSpecificationOptionPresModel - ParameterId["CubeConnectionSpecificationOption"] = "cubeConnectionSpecificationOption"; - // DPI_CubeConnectionSpecificationOptions, having type CubeConnectionSpecificationOptionPresModel[] - ParameterId["CubeConnectionSpecificationOptions"] = "cubeConnectionSpecificationOptions"; - // DPI_CubeConnectionSpecification, having type CubeConnectionSpecificationPresModel - ParameterId["CubeConnectionSpecification"] = "cubeConnectionSpecification"; - // DPI_ConnectionSettingsOption, having type ConnectionSettingsOptionPresModel - ParameterId["ConnectionSettingsOption"] = "connectionSettingsOption"; - // DPI_ConnectionSettingsOptions, having type ConnectionSettingsOptionPresModel[] - ParameterId["ConnectionSettingsOptions"] = "connectionSettingsOptions"; - // DPI_StringCollation, having type StringCollationPresModel - ParameterId["StringCollation"] = "stringCollation"; - // DPI_DatabaseEnumeration, having type DatabaseEnumerationPresModel - ParameterId["DatabaseEnumeration"] = "databaseEnumeration"; - // DPI_SchemaEnumeration, having type SchemaEnumerationPresModel - ParameterId["SchemaEnumeration"] = "schemaEnumeration"; - // DPI_StandardConnectionEnumeration, having type StandardConnectionEnumerationPresModel - ParameterId["StandardConnectionEnumeration"] = "standardConnectionEnumeration"; - // DPI_StoredProcedureEnumeration, having type StoredProcedureEnumerationPresModel - ParameterId["StoredProcedureEnumeration"] = "storedProcedureEnumeration"; - // DPI_TableEnumeration, having type TableEnumerationPresModel - ParameterId["TableEnumeration"] = "tableEnumeration"; - // DPI_WarehouseEnumeration, having type WarehouseEnumerationPresModel - ParameterId["WarehouseEnumeration"] = "warehouseEnumeration"; - // DPI_SlowMetadataSchemaList, having type SlowMetadataSchemaListPresModel - ParameterId["SlowMetadataSchemaList"] = "slowMetadataSchemaList"; - // DPI_SlowMetadataTableList, having type SlowMetadataTableListPresModel - ParameterId["SlowMetadataTableList"] = "slowMetadataTableList"; - // DPI_CubeCatalog, having type CubeCatalogPresModel - ParameterId["CubeCatalog"] = "cubeCatalog"; - // DPI_CubeCatalogs, having type CubeCatalogPresModel[] - ParameterId["CubeCatalogs"] = "cubeCatalogs"; - // DPI_CubeCatalogEnumeration, having type CubeCatalogEnumerationPresModel - ParameterId["CubeCatalogEnumeration"] = "cubeCatalogEnumeration"; - // DPI_Cube, having type CubePresModel - ParameterId["Cube"] = "cube"; - // DPI_Cubes, having type CubePresModel[] - ParameterId["Cubes"] = "cubes"; - // DPI_CubeEnumeration, having type CubeEnumerationPresModel - ParameterId["CubeEnumeration"] = "cubeEnumeration"; - // DPI_GoogleAnalyticsBasicItem, having type GoogleAnalyticsBasicItemPresModel - ParameterId["GoogleAnalyticsBasicItem"] = "googleAnalyticsBasicItem"; - // DPI_GAMeasureSets, having type GoogleAnalyticsBasicItemPresModel[] - ParameterId["GAMeasureSets"] = "gaMeasureSets"; - // DPI_GoogleAnalyticsViews, having type GoogleAnalyticsBasicItemPresModel[] - ParameterId["GoogleAnalyticsViews"] = "googleAnalyticsViews"; - // DPI_GoogleAnalyticsProperties, having type GoogleAnalyticsBasicItemPresModel[] - ParameterId["GoogleAnalyticsProperties"] = "googleAnalyticsProperties"; - // DPI_GoogleBasicInfoItems, having type GoogleAnalyticsBasicItemPresModel[] - ParameterId["GoogleBasicInfoItems"] = "googleAnalyticsAccounts"; - // DPI_GoogleAnalyticsComplexItem, having type GoogleAnalyticsComplexItemPresModel - ParameterId["GoogleAnalyticsComplexItem"] = "googleAnalyticsComplexItem"; - // DPI_GoogleAnalyticsPossibleDimensions, having type GoogleAnalyticsComplexItemPresModel[] - ParameterId["GoogleAnalyticsPossibleDimensions"] = "googleAnalyticsPossibleDimensions"; - // DPI_GoogleAnalyticsPossibleMeasures, having type GoogleAnalyticsComplexItemPresModel[] - ParameterId["GoogleAnalyticsPossibleMeasures"] = "googleAnalyticsPossibleMeasures"; - // DPI_GoogleAnalyticsPossibleSegments, having type GoogleAnalyticsComplexItemPresModel[] - ParameterId["GoogleAnalyticsPossibleSegments"] = "googleAnalyticsPossibleSegments"; - // DPI_GoogleAnalyticsSelectedDimensions, having type GoogleAnalyticsComplexItemPresModel[] - ParameterId["GoogleAnalyticsSelectedDimensions"] = "googleAnalyticsSelectedDimensions"; - // DPI_GoogleAnalyticsSelectedMeasures, having type GoogleAnalyticsComplexItemPresModel[] - ParameterId["GoogleAnalyticsSelectedMeasures"] = "googleAnalyticsSelectedMeasures"; - // DPI_GoogleAnalyticsDateRangeOption, having type GoogleAnalyticsDateRangeOptionPresModel - ParameterId["GoogleAnalyticsDateRangeOption"] = "googleAnalyticsDateRangeOption"; - // DPI_GoogleAnalyticsDateRangeOptions, having type GoogleAnalyticsDateRangeOptionPresModel[] - ParameterId["GoogleAnalyticsDateRangeOptions"] = "googleAnalyticsDateRangeOptions"; - // DPI_GoogleAnalyticsEndDate, having type GoogleAnalyticsDatePresModel - ParameterId["GoogleAnalyticsEndDate"] = "googleAnalyticsEndDate"; - // DPI_GoogleAnalyticsStartDate, having type GoogleAnalyticsDatePresModel - ParameterId["GoogleAnalyticsStartDate"] = "googleAnalyticsStartDate"; - // DPI_GoogleAnalyticsDateRange, having type GoogleAnalyticsDateRangePresModel - ParameterId["GoogleAnalyticsDateRange"] = "googleAnalyticsDateRange"; - // DPI_GoogleAnalyticsQueryPartitioning, having type GoogleAnalyticsQueryPartitioningPresModel - ParameterId["GoogleAnalyticsQueryPartitioning"] = "googleAnalyticsQueryPartitioning"; - // DPI_GAConnectionDescription, having type GoogleAnalyticsConnectionDescriptionPresModel - ParameterId["GAConnectionDescription"] = "gaConnectionDescription"; - // DPI_GoogleSheetItem, having type GoogleSheetItemPresModel - ParameterId["GoogleSheetItem"] = "googleSheetItem"; - // DPI_GoogleSheetItems, having type GoogleSheetItemPresModel[] - ParameterId["GoogleSheetItems"] = "googleSheetItems"; - // DPI_GoogleSheetsListPresModel, having type GoogleSheetsListPresModel - ParameterId["GoogleSheetsListPresModel"] = "googleSheetsList"; - // DPI_GoogleSheetPanePresModel, having type GoogleSheetPanePresModel - ParameterId["GoogleSheetPanePresModel"] = "googleSheetPane"; - // DPI_TableauServerConnectionDescription, having type TableauServerConnectionDescriptionPresModel - ParameterId["TableauServerConnectionDescription"] = "tableauServerConnectionDescription"; - // DPI_InitialSQLPresModel, having type InitialSQLPresModel - ParameterId["InitialSQLPresModel"] = "initialSqlPresModel"; - // DPI_QueryBandingPresModel, having type QueryBandingPresModel - ParameterId["QueryBandingPresModel"] = "queryBandingPresModel"; - // DPI_SlowMetadata, having type SlowMetadataPresModel - ParameterId["SlowMetadata"] = "slowMetadata"; - // DPI_SlowMetadataSchemaSearchPresModel, having type SlowMetadataSearchPresModel - ParameterId["SlowMetadataSchemaSearchPresModel"] = "slowMetadataSchemaSearch"; - // DPI_SlowMetadataTableSearchPresModel, having type SlowMetadataSearchPresModel - ParameterId["SlowMetadataTableSearchPresModel"] = "slowMetadataTableSearch"; - // DPI_TableauServerProjectsPresModel, having type TableauServerProjectsPresModel - ParameterId["TableauServerProjectsPresModel"] = "tableauServerProjectsPresmodel"; - // DPI_TableauServerDataSourcePresModel, having type TableauServerDataSourcePresModel - ParameterId["TableauServerDataSourcePresModel"] = "tableauServerDataSourcePresmodel"; - // DPI_TableauServerDataSourcePresModels, having type TableauServerDataSourcePresModel[] - ParameterId["TableauServerDataSourcePresModels"] = "tableauServerDataSourcePresmodels"; - // DPI_TableauServerDataSourcesPresModel, having type TableauServerDataSourcesPresModel - ParameterId["TableauServerDataSourcesPresModel"] = "tableauServerDataSourcesPresmodel"; - // DPI_TableauServerDataPresModel, having type TableauServerDataPresModel - ParameterId["TableauServerDataPresModel"] = "tableauServerDataPresmodel"; - // DPI_StoredProcedureParameterPresModel, having type StoredProcedureParameterPresModel - ParameterId["StoredProcedureParameterPresModel"] = "storedProcedureParameter"; - // DPI_StoredProcedureParametersPresModel, having type StoredProcedureParameterPresModel[] - ParameterId["StoredProcedureParametersPresModel"] = "storedProcedureParameters"; - // DPI_CustomSQLInfo, having type CustomSQLInfoPresModel - ParameterId["CustomSQLInfo"] = "customSqlInfo"; - // DPI_ConnectionTableInfo, having type ConnectionTableInfoPresModel - ParameterId["ConnectionTableInfo"] = "connectionTableInfo"; - // DPI_TableInfos, having type ConnectionTableInfoPresModel[] - ParameterId["TableInfos"] = "tableInfos"; - // DPI_ConnectionDescription, having type ConnectionDescriptionPresModel - ParameterId["ConnectionDescription"] = "connectionDescription"; - // DPI_DataSourceParserValidationMode, having type DataSourceParserValidationMode - ParameterId["DataSourceParserValidationMode"] = "dataSourceParserValidationMode"; - // DPI_OAuthCredentialTypeInfo, having type OAuthCredentialTypeInfoPresModel - ParameterId["OAuthCredentialTypeInfo"] = "oauthCredentialTypeInfo"; - // DPI_OAuthCredentialTypeInfos, having type OAuthCredentialTypeInfoPresModel[] - ParameterId["OAuthCredentialTypeInfos"] = "oauthCredentialTypeInfos"; - // DPI_OAuthSettings, having type OAuthSettingsPresModel - ParameterId["OAuthSettings"] = "oauthSettings"; - // DPI_CredentialTypePropertiesFlag, having type CredentialTypePropertiesFlag - ParameterId["CredentialTypePropertiesFlag"] = "credentialTypePropertiesFlag"; - // DPI_CredentialTypePropertiesFlags, having type CredentialTypePropertiesFlag[] - ParameterId["CredentialTypePropertiesFlags"] = "credentialTypePropertiesFlags"; - // DPI_ConnectionTypeEnum, having type ConnectionTypeEnum - ParameterId["ConnectionTypeEnum"] = "connectionTypeEnum"; - // DPI_ConnectorType, having type ConnectorType - ParameterId["ConnectorType"] = "connectorType"; - // DPI_PdfPagePicker, having type PdfPagePickerPresModel - ParameterId["PdfPagePicker"] = "pdfPagePicker"; - // DPI_ActivateNew, having type bool - ParameterId["ActivateNew"] = "activateNew"; - // DPI_AddActions, having type bool - ParameterId["AddActions"] = "addActions"; - // DPI_AddAsFloating, having type bool - ParameterId["AddAsFloating"] = "addAsFloating"; - // DPI_AddColorDictionary, having type bool - ParameterId["AddColorDictionary"] = "addColorDictionary"; - // DPI_AddDroplines, having type bool - ParameterId["AddDroplines"] = "addDroplines"; - // DPI_AddHeaders, having type bool - ParameterId["AddHeaders"] = "addHeaders"; - // DPI_AddHighlighting, having type bool - ParameterId["AddHighlighting"] = "addHighlighting"; - // DPI_AddImageDictionary, having type bool - ParameterId["AddImageDictionary"] = "addImageDictionary"; - // DPI_AddMarkLabels, having type bool - ParameterId["AddMarkLabels"] = "addMarkLabels"; - // DPI_AddPages, having type bool - ParameterId["AddPages"] = "addPages"; - // DPI_AddSelection, having type bool - ParameterId["AddSelection"] = "addSelection"; - // DPI_AddToFolder, having type bool - ParameterId["AddToFolder"] = "addToFolder"; - // DPI_AddVizData, having type bool - ParameterId["AddVizData"] = "addVizData"; - // DPI_AlertConditionMet, having type bool - ParameterId["AlertConditionMet"] = "alertConditionMet"; - // DPI_AllFields, having type bool - ParameterId["AllFields"] = "allFields"; - // DPI_AllOnEmpty, having type bool - ParameterId["AllOnEmpty"] = "allOnEmpty"; - // DPI_AllPages, having type bool - ParameterId["AllPages"] = "includeAllPages"; - // DPI_AllowPreviewSizeChange, having type bool - ParameterId["AllowPreviewSizeChange"] = "allowPreviewSizeChange"; - // DPI_AllSelectedIsEffectivelyRangeTypeAll, having type bool - ParameterId["AllSelectedIsEffectivelyRangeTypeAll"] = "allSelectedIsEffectivelyRangeTypeAll"; - // DPI_AllStoryPoints, having type bool - ParameterId["AllStoryPoints"] = "allStorypoints"; - // DPI_AllowAllRange, having type bool - ParameterId["AllowAllRange"] = "allowAllRange"; - // DPI_AllowCreatingNewParameters, having type bool - ParameterId["AllowCreatingNewParameters"] = "allowCreatingNewParameters"; - // DPI_AllowDuplicateFieldDropOnFilterShelf, having type bool - ParameterId["AllowDuplicateFieldDropOnFilterShelf"] = "allowDuplicateFieldDropOnFilterShelf"; - // DPI_AllowFilterPreset, having type bool - ParameterId["AllowFilterPreset"] = "allowFilterPreset"; - // DPI_AllowHoverActions, having type bool - ParameterId["AllowHoverActions"] = "allowHoverActions"; - // DPI_AllowHyphenation, having type bool - ParameterId["AllowHyphenation"] = "allowHyphenation"; - // DPI_AllowJoinOnCalc, having type bool - ParameterId["AllowJoinOnCalc"] = "allowJoinOnCalc"; - // DPI_AllowManualRange, having type bool - ParameterId["AllowManualRange"] = "allowManualRange"; - // DPI_AllowMapping, having type bool - ParameterId["AllowMapping"] = "allowMapping"; - // DPI_AllowMultiSelect, having type bool - ParameterId["AllowMultiSelect"] = "allowMultiSelect"; - // DPI_AllowNull, having type bool - ParameterId["AllowNull"] = "allowNull"; - // DPI_AllowPanZoom, having type bool - ParameterId["AllowPanZoom"] = "allowPanZoom"; - // DPI_AllowPatternBased, having type bool - ParameterId["AllowPatternBased"] = "allowPatternBasedUnion"; - // DPI_AllowPromptText, having type bool - ParameterId["AllowPromptText"] = "allowPromptText"; - // DPI_AllowSaveDataSource, having type bool - ParameterId["AllowSaveDataSource"] = "allowSaveDataSource"; - // DPI_AllowWholeDate, having type bool - ParameterId["AllowWholeDate"] = "allowWholeDate"; - // DPI_AllowWork, having type bool - ParameterId["AllowWork"] = "allowWork"; - // DPI_AllowWrap, having type bool - ParameterId["AllowWrap"] = "allowWrap"; - // DPI_AppIs32Bit, having type bool - ParameterId["AppIs32Bit"] = "appIs32Bit"; - // DPI_AppIs64Bit, having type bool - ParameterId["AppIs64Bit"] = "appIs64Bit"; - // DPI_AppIsBeta, having type bool - ParameterId["AppIsBeta"] = "appIsBeta"; - // DPI_AppIsOEM, having type bool - ParameterId["AppIsOEM"] = "appIsOem"; - // DPI_AppendTde, having type bool - ParameterId["AppendTde"] = "appendTde"; - // DPI_ApplyColors, having type bool - ParameterId["ApplyColors"] = "applyColors"; - // DPI_ApplyNewSelection, having type bool - ParameterId["ApplyNewSelection"] = "applyNewSelection"; - // DPI_AreConfidenceBandsValid, having type bool - ParameterId["AreConfidenceBandsValid"] = "areConfidenceBandsValid"; - // DPI_AreDataSourceFiltersVisible, having type bool - ParameterId["AreDataSourceFiltersVisible"] = "areDataSourceFiltersVisible"; - // DPI_AreExtractFiltersEnabled, having type bool - ParameterId["AreExtractFiltersEnabled"] = "areExtractFiltersEnabled"; - // DPI_AreTotalsUsed, having type bool - ParameterId["AreTotalsUsed"] = "areTotalsUsed"; - // DPI_AtTheLevelFieldIsInvalid, having type bool - ParameterId["AtTheLevelFieldIsInvalid"] = "atTheLevelFieldIsInvalid"; - // DPI_AutoURL, having type bool - ParameterId["AutoURL"] = "autoUrl"; - // DPI_AutoUpdate, having type bool - ParameterId["AutoUpdate"] = "autoUpdate"; - // DPI_BackingSheetIsDashboard, having type bool - ParameterId["BackingSheetIsDashboard"] = "isBackingSheetDashboard"; - // DPI_BeginDataSourcePresModelUpdate, having type bool - ParameterId["BeginDataSourcePresModelUpdate"] = "beginDataSourcePresModelUpdate"; - // DPI_AggregateDrillUp, having type bool - ParameterId["AggregateDrillUp"] = "boolAggregateDrillUp"; - // DPI_BoxplotMarkExclusion, having type bool - ParameterId["BoxplotMarkExclusion"] = "boxplotMarkExclusion"; - // DPI_BreakPageOnPane, having type bool - ParameterId["BreakPageOnPane"] = "breakPageOnPane"; - // DPI_BrushLegends, having type bool - ParameterId["BrushLegends"] = "brushLegends"; - // DPI_CachePresModels, having type bool - ParameterId["CachePresModels"] = "cachePresModels"; - // DPI_CanAddConnections, having type bool - ParameterId["CanAddConnections"] = "canAddConnections"; - // DPI_SortPillCanBeDragged, having type bool - ParameterId["SortPillCanBeDragged"] = "sortPillCanBeDragged"; - // DPI_CanAddTable, having type bool - ParameterId["CanAddTable"] = "canAddTable"; - // DPI_CanAnalyzeData, having type bool - ParameterId["CanAnalyzeData"] = "canAnalyzeData"; - // DPI_CanChangeDataType, having type bool - ParameterId["CanChangeDataType"] = "canChangeDataType"; - // DPI_CanChangeSemanticRole, having type bool - ParameterId["CanChangeSemanticRole"] = "canChangeSemanticRole"; - // DPI_CanDerive, having type bool - ParameterId["CanDerive"] = "canDerive"; - // DPI_CanDrop, having type bool - ParameterId["CanDrop"] = "canDrop"; - // DPI_CanEdit, having type bool - ParameterId["CanEdit"] = "canEdit"; - // DPI_CanEditLegendColor, having type bool - ParameterId["CanEditLegendColor"] = "canEditLegendColor"; - // DPI_CanEnableCenter, having type bool - ParameterId["CanEnableCenter"] = "canEnableCenter"; - // DPI_CanEnableFilterStateButton, having type bool - ParameterId["CanEnableFilterStateButton"] = "canEnableFilterStateButton"; - // DPI_CanFloat, having type bool - ParameterId["CanFloat"] = "canFloat"; - // DPI_CanHaveTitle, having type bool - ParameterId["CanHaveTitle"] = "canHaveTitle"; - // DPI_CanIgnoreUpdate, having type bool - ParameterId["CanIgnoreUpdate"] = "canIgnoreUpdate"; - // DPI_CanNavigateBack, having type bool - ParameterId["CanNavigateBack"] = "canNavigateBack"; - // DPI_CanNavigateForward, having type bool - ParameterId["CanNavigateForward"] = "canNavigateForward"; - // DPI_CanScrollX, having type bool - ParameterId["CanScrollX"] = "canScrollX"; - // DPI_CanScrollY, having type bool - ParameterId["CanScrollY"] = "canScrollY"; - // DPI_CanSetDomain, having type bool - ParameterId["CanSetDomain"] = "canSetDomain"; - // DPI_CanSetMapUnit, having type bool - ParameterId["CanSetMapUnit"] = "canSetMapUnit"; - // DPI_CanShowApplyButton, having type bool - ParameterId["CanShowApplyButton"] = "canShowApplyButton"; - // DPI_CanShowFilterStateButton, having type bool - ParameterId["CanShowFilterStateButton"] = "canShowFilterStateButton"; - // DPI_CanShowMoreFewerButton, having type bool - ParameterId["CanShowMoreFewerButton"] = "canShowMoreFewerButton"; - // DPI_CanShowSyncClientOptions, having type bool - ParameterId["CanShowSyncClientOptions"] = "canShowSyncClientOptions"; - // DPI_CanSort, having type bool - ParameterId["CanSort"] = "canSort"; - // DPI_CanSortOrdinally, having type bool - ParameterId["CanSortOrdinally"] = "canSortOrdinal"; - // DPI_CanToggleAutomaticDrill, having type bool - ParameterId["CanToggleAutomaticDrill"] = "canToggleAutomaticDrill"; - // DPI_CanToggleGeographicSearch, having type bool - ParameterId["CanToggleGeographicSearch"] = "canToggleGeographicSearch"; - // DPI_CanToggleMapScale, having type bool - ParameterId["CanToggleMapScale"] = "canToggleMapScale"; - // DPI_CanUseFullColorRange, having type bool - ParameterId["CanUseFullColorRange"] = "canUseFullColorRange"; - // DPI_CenterHorizontally, having type bool - ParameterId["CenterHorizontally"] = "centerHorizontally"; - // DPI_CenterVertically, having type bool - ParameterId["CenterVertically"] = "centerVertically"; - // DPI_ChangeAllFields, having type bool - ParameterId["ChangeAllFields"] = "changeAllFields"; - // DPI_Changed, having type bool - ParameterId["Changed"] = "changed"; - // DPI_ClearBrushing, having type bool - ParameterId["ClearBrushing"] = "clearBrushing"; - // DPI_ClearSort, having type bool - ParameterId["ClearSort"] = "clearSort"; - // DPI_ClearView, having type bool - ParameterId["ClearView"] = "clearView"; - // DPI_Collapsed, having type bool - ParameterId["Collapsed"] = "collapsed"; - // DPI_ConsolidateInCommit, having type bool - ParameterId["ConsolidateInCommit"] = "consolidateInCommit"; - // DPI_ClusterEnableScaledCheckbox, having type bool - ParameterId["ClusterEnableScaledCheckbox"] = "clusterEnableScaledCheckbox"; - // DPI_CommitPillFinished, having type bool - ParameterId["CommitPillFinished"] = "commitPillFinished"; - // DPI_CompressArrays, having type bool - ParameterId["CompressArrays"] = "compressArrays"; - // DPI_ComputeCompoundedRate, having type bool - ParameterId["ComputeCompoundedRate"] = "computeCompoundedRate"; - // DPI_ConfidenceIntervalAllowed, having type bool - ParameterId["ConfidenceIntervalAllowed"] = "confidenceIntervalAllowed"; - // DPI_ConfigIsDesktopStandard, having type bool - ParameterId["ConfigIsDesktopStandard"] = "configIsDesktopStandard"; - // DPI_ConfigIsInteractor, having type bool - ParameterId["ConfigIsInteractor"] = "configIsInteractor"; - // DPI_ConfigIsPublic, having type bool - ParameterId["ConfigIsPublic"] = "configIsPublic"; - // DPI_ConfigIsReader, having type bool - ParameterId["ConfigIsReader"] = "configIsReader"; - // DPI_ContainsQuant, having type bool - ParameterId["ContainsQuant"] = "containsQuant"; - // DPI_ContainsValidDatasources, having type bool - ParameterId["ContainsValidDatasources"] = "containsValidDatasources"; - // DPI_ControllerMissing, having type bool - ParameterId["ControllerMissing"] = "controllerMissing"; - // DPI_CreateExtractForPublish, having type bool - ParameterId["CreateExtractForPublish"] = "createExtractForPublish"; - // DPI_CrossTab, having type bool - ParameterId["CrossTab"] = "crossTab"; - // DPI_CullLabels, having type bool - ParameterId["CullLabels"] = "cullLabels"; - // DPI_CurrentCustViewIdFlag, having type bool - ParameterId["CurrentCustViewIdFlag"] = "isCurrentCustViewIdValid"; - // DPI_DashboardEnableSnap, having type bool - ParameterId["DashboardEnableSnap"] = "dashboardEnableSnap"; - // DPI_DashboardShowGrid, having type bool - ParameterId["DashboardShowGrid"] = "dashboardShowGrid"; - // DPI_DataGridSortOrder, having type bool - ParameterId["DataGridSortOrder"] = "datagridSortOrder"; - // DPI_DeleteExtract, having type bool - ParameterId["DeleteExtract"] = "deleteExtract"; - // DPI_DeleteOnlySpecifiedSelection, having type bool - ParameterId["DeleteOnlySpecifiedSelection"] = "deleteOnlySpecifiedSelection"; - // DPI_DeleteOrphans, having type bool - ParameterId["DeleteOrphans"] = "deleteOrphans"; - // DPI_DisabledDataConnectionClassNames, having type bool - ParameterId["DisabledDataConnectionClassNames"] = "disabledDataConnectionClassNames"; - // DPI_DisablePresModelHandler, having type bool - ParameterId["DisablePresModelHandler"] = "disablePresModelHandler"; - // DPI_DisplayDate, having type bool - ParameterId["DisplayDate"] = "displayDate"; - // DPI_DisplayTime, having type bool - ParameterId["DisplayTime"] = "displayTime"; - // DPI_DoDropUIAction, having type bool - ParameterId["DoDropUIAction"] = "doDropUiAction"; - // DPI_DoMerge, having type bool - ParameterId["DoMerge"] = "doMerge"; - // DPI_DoPreDropUIAction, having type bool - ParameterId["DoPreDropUIAction"] = "doPreDropUiAction"; - // DPI_DoQuery, having type bool - ParameterId["DoQuery"] = "doQuery"; - // DPI_DragHorz, having type bool - ParameterId["DragHorz"] = "dragHorz"; - // DPI_DrillDown, having type bool - ParameterId["DrillDown"] = "drillDown"; - // DPI_DropToXAxis, having type bool - ParameterId["DropToXAxis"] = "dropToXAxis"; - // DPI_DropToYAxis, having type bool - ParameterId["DropToYAxis"] = "dropToYAxis"; - // DPI_DropUnnamedFields, having type bool - ParameterId["DropUnnamedFields"] = "dropUnnamedFields"; - // DPI_EditExisting, having type bool - ParameterId["EditExisting"] = "editExisting"; - // DPI_EditingConnection, having type bool - ParameterId["EditingConnection"] = "editingConnection"; - // DPI_EmbedCredentials, having type bool - ParameterId["EmbedCredentials"] = "embedCredentials"; - // DPI_EmbedOAuthCredential, having type bool - ParameterId["EmbedOAuthCredential"] = "embedOauthCredentials"; - // DPI_EmptyHighlightFogAll, having type bool - ParameterId["EmptyHighlightFogAll"] = "emptyHighlightFogAll"; - // DPI_EnableAlphabeticSort, having type bool - ParameterId["EnableAlphabeticSort"] = "enableAlphabeticSort"; - // DPI_EnableAutomaticDrill, having type bool - ParameterId["EnableAutomaticDrill"] = "enableAutomaticDrill"; - // DPI_EnableConfidenceBands, having type bool - ParameterId["EnableConfidenceBands"] = "enableConfidenceBands"; - // DPI_EnableDataOrderSort, having type bool - ParameterId["EnableDataOrderSort"] = "enableDataOrderSort"; - // DPI_EnableFieldSort, having type bool - ParameterId["EnableFieldSort"] = "enableFieldSort"; - // DPI_EnableInstantAnalytics, having type bool - ParameterId["EnableInstantAnalytics"] = "enableInstantAnalytics"; - // DPI_EnableLines, having type bool - ParameterId["EnableLines"] = "enableLines"; - // DPI_EnableManualSort, having type bool - ParameterId["EnableManualSort"] = "enableManualSort"; - // DPI_EnableMarks, having type bool - ParameterId["EnableMarks"] = "enableMarks"; - // DPI_EnableMultipleSelection, having type bool - ParameterId["EnableMultipleSelection"] = "enableMultipleSelection"; - // DPI_EnablePrefetching, having type bool - ParameterId["EnablePrefetching"] = "enablePrefetching"; - // DPI_EnableTableCalcDensification, having type bool - ParameterId["EnableTableCalcDensification"] = "enableTableCalcDensification"; - // DPI_EndDataSourcePresModelUpdate, having type bool - ParameterId["EndDataSourcePresModelUpdate"] = "endDataSourcePresModelUpdate"; - // DPI_EstimateNulls, having type bool - ParameterId["EstimateNulls"] = "estimateNulls"; - // DPI_Exclude, having type bool - ParameterId["Exclude"] = "exclude"; - // DPI_ExcludeColor, having type bool - ParameterId["ExcludeColor"] = "excludeColor"; - // DPI_ExcludeCubeDenorm, having type bool - ParameterId["ExcludeCubeDenorm"] = "excludeCubeDenorm"; - // DPI_ExcludeInterceptEnabled, having type bool - ParameterId["ExcludeInterceptEnabled"] = "excludeInterceptEnabled"; - // DPI_ExcludeLocalFunctions, having type bool - ParameterId["ExcludeLocalFunctions"] = "excludeLocalFunctions"; - // DPI_ExportDashboardImageFromSheet, having type bool - ParameterId["ExportDashboardImageFromSheet"] = "exportImageSheetAsDashboard"; - // DPI_ExtSvcConfigIsAuthEnabled, having type bool - ParameterId["ExtSvcConfigIsAuthEnabled"] = "extSvcConfigIsAuthEnabled"; - // DPI_ExtractFullRefresh, having type bool - ParameterId["ExtractFullRefresh"] = "extractFullRefresh"; - // DPI_ExtractNeedsRefresh, having type bool - ParameterId["ExtractNeedsRefresh"] = "extractNeedsRefresh"; - // DPI_ExtractPending, having type bool - ParameterId["ExtractPending"] = "extractPending"; - // DPI_ExtractSelected, having type bool - ParameterId["ExtractSelected"] = "extractSelected"; - // DPI_FederatableOnly, having type bool - ParameterId["FederatableOnly"] = "federatableOnly"; - // DPI_FieldSortOrder, having type bool - ParameterId["FieldSortOrder"] = "fieldSortOrder"; - // DPI_FieldSupportsContains, having type bool - ParameterId["FieldSupportsContains"] = "fieldSupportsContains"; - // DPI_FieldSupportsEndsWith, having type bool - ParameterId["FieldSupportsEndsWith"] = "fieldSupportsEndsWith"; - // DPI_FieldSupportsStartsWith, having type bool - ParameterId["FieldSupportsStartsWith"] = "fieldSupportsStartsWith"; - // DPI_FillAbove, having type bool - ParameterId["FillAbove"] = "fillAbove"; - // DPI_FillBelow, having type bool - ParameterId["FillBelow"] = "fillBelow"; - // DPI_FillWithZeroes, having type bool - ParameterId["FillWithZeroes"] = "fillZeroes"; - // DPI_FilterIsNamed, having type bool - ParameterId["FilterIsNamed"] = "filterIsNamed"; - // DPI_Focus, having type bool - ParameterId["Focus"] = "focus"; - // DPI_ForInternalUse, having type bool - ParameterId["ForInternalUse"] = "internalUse"; - // DPI_ForceBrowserRendering, having type bool - ParameterId["ForceBrowserRendering"] = "forceBrowserRendering"; - // DPI_ForceCache, having type bool - ParameterId["ForceCache"] = "forceCache"; - // DPI_ForceColorFromApp, having type bool - ParameterId["ForceColorFromApp"] = "forceColorFromApp"; - // DPI_ForceConnectionAttempt, having type bool - ParameterId["ForceConnectionAttempt"] = "forceConnectionAttempt"; - // DPI_ForceConsolidateInCommit, having type bool - ParameterId["ForceConsolidateInCommit"] = "forceConsolidateInCommit"; - // DPI_ForceExtractRefresh, having type bool - ParameterId["ForceExtractRefresh"] = "extractForceRefresh"; - // DPI_ForceInterceptZero, having type bool - ParameterId["ForceInterceptZero"] = "forceInterceptZero"; - // DPI_ForceOldConnectExperience, having type bool - ParameterId["ForceOldConnectExperience"] = "forceOldConnectExperience"; - // DPI_ForceToggleHighlightStateOn, having type bool - ParameterId["ForceToggleHighlightStateOn"] = "forceHighlightOn"; - // DPI_ForceWholeDate, having type bool - ParameterId["ForceWholeDate"] = "forceWholeDate"; - // DPI_ForecastSelected, having type bool - ParameterId["ForecastSelected"] = "forecastSelected"; - // DPI_ForecastUseAutoAgg, having type bool - ParameterId["ForecastUseAutoAgg"] = "forecastUseAutoSummarize"; - // DPI_ForJoin, having type bool - ParameterId["ForJoin"] = "forJoin"; - // DPI_FormatDataValueLocally, having type bool - ParameterId["FormatDataValueLocally"] = "formatDataValueLocally"; - // DPI_FormatIfColumn, having type bool - ParameterId["FormatIfColumn"] = "formatIfColumn"; - // DPI_FormatIfParameter, having type bool - ParameterId["FormatIfParameter"] = "formatIfParameter"; - // DPI_GeographicSearchIsDataLoaded, having type bool - ParameterId["GeographicSearchIsDataLoaded"] = "geographicSearchDataLoaded"; - // DPI_GeographicSearchLoadDataAsync, having type bool - ParameterId["GeographicSearchLoadDataAsync"] = "geographicSearchLoadDataAsync"; - // DPI_GroupByAll, having type bool - ParameterId["GroupByAll"] = "groupByAll"; - // DPI_HasAlias, having type bool - ParameterId["HasAlias"] = "hasAlias"; - // DPI_HasAllMember, having type bool - ParameterId["HasAllMember"] = "hasAllMember"; - // DPI_HasApply, having type bool - ParameterId["HasApply"] = "hasApply"; - // DPI_HasBackgroundImage, having type bool - ParameterId["HasBackgroundImage"] = "hasBackgroundImage"; - // DPI_HasBeenDismissed, having type bool - ParameterId["HasBeenDismissed"] = "hasBeenDismissed"; - // DPI_HasCaption, having type bool - ParameterId["HasCaption"] = "hasCaption"; - // DPI_HasCondition, having type bool - ParameterId["HasCondition"] = "hasCondition"; - // DPI_HasConnectPermissions, having type bool - ParameterId["HasConnectPermissions"] = "hasConnectPermissions"; - // DPI_HasDashboard, having type bool - ParameterId["HasDashboard"] = "hasDashboard"; - // DPI_HasDownloadPermissions, having type bool - ParameterId["HasDownloadPermissions"] = "hasDownloadPermissions"; - // DPI_HasDrill, having type bool - ParameterId["HasDrill"] = "hasDrill"; - // DPI_HasExclude, having type bool - ParameterId["HasExclude"] = "hasExclude"; - // DPI_HasFill, having type bool - ParameterId["HasFill"] = "hasFill"; - // DPI_HasLabels, having type bool - ParameterId["HasLabels"] = "hasLabels"; - // DPI_HasLimit, having type bool - ParameterId["HasLimit"] = "hasLimit"; - // DPI_HasLine, having type bool - ParameterId["HasLine"] = "hasLine"; - // DPI_HasModifiedAxes, having type bool - ParameterId["HasModifiedAxes"] = "hasModifiedAxes"; - // DPI_HasNonRootCalculations, having type bool - ParameterId["HasNonRootCalculations"] = "hasNonRootCalculations"; - // DPI_HasPattern, having type bool - ParameterId["HasPattern"] = "hasPattern"; - // DPI_HasPublishGuidanceResults, having type bool - ParameterId["HasPublishGuidanceResults"] = "hasPublishGuidanceResults"; - // DPI_HasSelection, having type bool - ParameterId["HasSelection"] = "hasSelection"; - // DPI_HasServerCredentials, having type bool - ParameterId["HasServerCredentials"] = "hasServerCredentials"; - // DPI_HasSpace, having type bool - ParameterId["HasSpace"] = "hasSpace"; - // DPI_HasStoredProcedure, having type bool - ParameterId["HasStoredProcedure"] = "hasStoredProcedure"; - // DPI_HasStringCalculatedMeasures, having type bool - ParameterId["HasStringCalculatedMeasures"] = "hasStringCalculatedMeasures"; - // DPI_HasTableCalcData, having type bool - ParameterId["HasTableCalcData"] = "hasTableCalcData"; - // DPI_HasTitle, having type bool - ParameterId["HasTitle"] = "hasTitle"; - // DPI_HasUserSpecificContent, having type bool - ParameterId["HasUserSpecificContent"] = "hasUserSpecificContent"; - // DPI_HasUnjoinedTable, having type bool - ParameterId["HasUnjoinedTable"] = "hasUnjoinedTable"; - // DPI_HasVarArgs, having type bool - ParameterId["HasVarArgs"] = "hasVarArgs"; - // DPI_HasVisitedWDCPage, having type bool - ParameterId["HasVisitedWDCPage"] = "hasVisitedWdcPage"; - // DPI_IgnoreAliases, having type bool - ParameterId["IgnoreAliases"] = "ignoreAliases"; - // DPI_IgnoreDomain, having type bool - ParameterId["IgnoreDomain"] = "ignoreDomain"; - // DPI_IgnoreSelection, having type bool - ParameterId["IgnoreSelection"] = "ignoreSelection"; - // DPI_IncludeAllColumns, having type bool - ParameterId["IncludeAllColumns"] = "includeAllColumns"; - // DPI_IncludeContext, having type bool - ParameterId["IncludeContext"] = "includeContext"; - // DPI_IncludeDashboardPresModels, having type bool - ParameterId["IncludeDashboardPresModels"] = "includeDashboardPresModels"; - // DPI_IncludeItemSet, having type bool - ParameterId["IncludeItemSet"] = "includeItemSet"; - // DPI_IncludeLocalFiles, having type bool - ParameterId["IncludeLocalFiles"] = "includeLocalFiles"; - // DPI_IncludeOtherSelected, having type bool - ParameterId["IncludeOtherSelected"] = "includeOtherSelected"; - // DPI_IncludeNulls, having type bool - ParameterId["IncludeNulls"] = "includeNulls"; - // DPI_IncludeParent, having type bool - ParameterId["IncludeParent"] = "includeParent"; - // DPI_IncludeSelections, having type bool - ParameterId["IncludeSelections"] = "includeSelections"; - // DPI_IncludeSiblings, having type bool - ParameterId["IncludeSiblings"] = "includeSiblings"; - // DPI_IncludeStories, having type bool - ParameterId["IncludeStories"] = "includeStories"; - // DPI_IncludeSubfolders, having type bool - ParameterId["IncludeSubfolders"] = "includeSubfolders"; - // DPI_IncludeVolatileProps, having type bool - ParameterId["IncludeVolatileProps"] = "includeVolatileProps"; - // DPI_IncludesTag, having type bool - ParameterId["IncludesTag"] = "includesTag"; - // DPI_InsertAfter, having type bool - ParameterId["InsertAfter"] = "insertAfter"; - // DPI_InsertAtEnd, having type bool - ParameterId["InsertAtEnd"] = "insertAtEnd"; - // DPI_InstantAnalyticsAllowed, having type bool - ParameterId["InstantAnalyticsAllowed"] = "instantAnalyticsAllowed"; - // DPI_IntegerCoordinates, having type bool - ParameterId["IntegerCoordinates"] = "intCoords"; - // DPI_InvalidatedLayout, having type bool - ParameterId["InvalidatedLayout"] = "invalidatedLayout"; - // DPI_IsActive, having type bool - ParameterId["IsActive"] = "isActive"; - // DPI_IsAddToFilter, having type bool - ParameterId["IsAddToFilter"] = "isAddToFilterButtonChecked"; - // DPI_IsAllButtonVisible, having type bool - ParameterId["IsAllButtonVisible"] = "isAllButtonVisible"; - // DPI_IsAllowedInCalcs, having type bool - ParameterId["IsAllowedInCalcs"] = "isAllowedInCalcs"; - // DPI_IsAppMapSource, having type bool - ParameterId["IsAppMapSource"] = "isAppMapSource"; - // DPI_IsArchive, having type bool - ParameterId["IsArchive"] = "isArchive"; - // DPI_IsAuthoringMode, having type bool - ParameterId["IsAuthoringMode"] = "isAuthoringMode"; - // DPI_IsAuto, having type bool - ParameterId["IsAuto"] = "isAuto"; - // DPI_IsAutoClear, having type bool - ParameterId["IsAutoClear"] = "isAutoClear"; - // DPI_IsAutoColumn, having type bool - ParameterId["IsAutoColumn"] = "isAutoColumn"; - // DPI_IsAutoHidden, having type bool - ParameterId["IsAutoHidden"] = "isAutoHidden"; - // DPI_IsAutoSelect, having type bool - ParameterId["IsAutoSelect"] = "isAutoSelect"; - // DPI_IsBold, having type bool - ParameterId["IsBold"] = "isBold"; - // DPI_IsBorderVisible, having type bool - ParameterId["IsBorderVisible"] = "isBorderVisible"; - // DPI_IsBoxplot, having type bool - ParameterId["IsBoxplot"] = "isBoxplot"; - // DPI_IsCapable, having type bool - ParameterId["IsCapable"] = "isCapable"; - // DPI_IsCaptured, having type bool - ParameterId["IsCaptured"] = "isCaptured"; - // DPI_IsCentered, having type bool - ParameterId["IsCentered"] = "isCentered"; - // DPI_IsChecked, having type bool - ParameterId["IsChecked"] = "isChecked"; - // DPI_IsColorDiverging, having type bool - ParameterId["IsColorDiverging"] = "isColorDiverging"; - // DPI_IsColorStepped, having type bool - ParameterId["IsColorStepped"] = "isColorStepped"; - // DPI_IsCombinedField, having type bool - ParameterId["IsCombinedField"] = "isCombinedField"; - // DPI_IsConnected, having type bool - ParameterId["IsConnected"] = "isConnected"; - // DPI_IsContextMenuAllowed, having type bool - ParameterId["IsContextMenuAllowed"] = "isContextMenuAllowed"; - // DPI_IsContinuous, having type bool - ParameterId["IsContinuous"] = "isContinuous"; - // DPI_IsCopy, having type bool - ParameterId["IsCopy"] = "isCopy"; - // DPI_IsCustomPalette, having type bool - ParameterId["IsCustomPalette"] = "isCustomPalette"; - // DPI_IsCustomSQL, having type bool - ParameterId["IsCustomSQL"] = "isCustomSql"; - // DPI_IsCustomValueEnabled, having type bool - ParameterId["IsCustomValueEnabled"] = "isCustomValueEnabled"; - // DPI_IsDataAlertConditionMet, having type bool - ParameterId["IsDataAlertConditionMet"] = "isDataAlertConditionMet"; - // DPI_IsDataAlertDialogVisible, having type bool - ParameterId["IsDataAlertDialogVisible"] = "isDataAlertDialogVisible"; - // DPI_IsDataBin, having type bool - ParameterId["IsDataBin"] = "isDataBin"; - // DPI_IsDataGridVisible, having type bool - ParameterId["IsDataGridVisible"] = "isDataGridVisible"; - // DPI_IsDatabase, having type bool - ParameterId["IsDatabase"] = "isDatabase"; - // DPI_IsDatabaseFilterInclusive, having type bool - ParameterId["IsDatabaseFilterInclusive"] = "isDbFilterInclusive"; - // DPI_IsWebDataTabViewSupported, having type bool - ParameterId["IsWebDataTabViewSupported"] = "isWebDataTabViewSupported"; - // DPI_IsPublishedDatasourceReplacement, having type bool - ParameterId["IsPublishedDatasourceReplacement"] = "isPublishedDatasourceReplacement"; - // DPI_IsDeadDrop, having type bool - ParameterId["IsDeadDrop"] = "isDeadDrop"; - // DPI_IsDefault, having type bool - ParameterId["IsDefault"] = "isDefault"; - // DPI_IsDeleteCalcConfirm, having type bool - ParameterId["IsDeleteCalcConfirm"] = "isDeleteCalcConfirmed"; - // DPI_IsDimension, having type bool - ParameterId["IsDimension"] = "isDimension"; - // DPI_IsDropdownEnabled, having type bool - ParameterId["IsDropdownEnabled"] = "isDropdownEnabled"; - // DPI_IsEditing, having type bool - ParameterId["IsEditing"] = "isEditing"; - // DPI_IsEmbedded, having type bool - ParameterId["IsEmbedded"] = "isEmbedded"; - // DPI_IsEmpty, having type bool - ParameterId["IsEmpty"] = "isEmpty"; - // DPI_IsAddInEnabled, having type bool - ParameterId["IsAddInEnabled"] = "isAddInEnabled"; - // DPI_AddInJSDebuggingEnabled, having type bool - ParameterId["AddInJSDebuggingEnabled"] = "addInJsDebugginEnabled"; - // DPI_AddInPauseBeforeLoading, having type bool - ParameterId["AddInPauseBeforeLoading"] = "addInPauseBeforeLoading"; - // DPI_IsEndPtMoveable, having type bool - ParameterId["IsEndPtMoveable"] = "isEndpointMovable"; - // DPI_IsExclude, having type bool - ParameterId["IsExclude"] = "isExcludeButtonChecked"; - // DPI_IsExistingConnection, having type bool - ParameterId["IsExistingConnection"] = "isExistingConnection"; - // DPI_IsExistingObject, having type bool - ParameterId["IsExistingObject"] = "isExistingObject"; - // DPI_IsExtract, having type bool - ParameterId["IsExtract"] = "isExtract"; - // DPI_IsExtractOnlyConnection, having type bool - ParameterId["IsExtractOnlyConnection"] = "isExtractOnlyConnection"; - // DPI_IsExtractSelectionVisible, having type bool - ParameterId["IsExtractSelectionVisible"] = "isExtractSelectionVisible"; - // DPI_IsFederatable, having type bool - ParameterId["IsFederatable"] = "isFederatable"; - // DPI_IsField, having type bool - ParameterId["IsField"] = "isField"; - // DPI_IsFieldParameter, having type bool - ParameterId["IsFieldParameter"] = "isFieldParameter"; - // DPI_IsFilterActionField, having type bool - ParameterId["IsFilterActionField"] = "isFilterActionField"; - // DPI_IsFirstClassConnector, having type bool - ParameterId["IsFirstClassConnector"] = "isFirstClassConnector"; - // DPI_IsFloating, having type bool - ParameterId["IsFloating"] = "isFloating"; - // DPI_IsFolded, having type bool - ParameterId["IsFolded"] = "isFolded"; - // DPI_IsForInput, having type bool - ParameterId["IsForInput"] = "isForInput"; - // DPI_IsForecastEnabled, having type bool - ParameterId["IsForecastEnabled"] = "isForecastEnabled"; - // DPI_IsForceDirty, having type bool - ParameterId["IsForceDirty"] = "isForceDirty"; - // DPI_IsFullScan, having type bool - ParameterId["IsFullScan"] = "isFullScan"; - // DPI_IsFullStyling, having type bool - ParameterId["IsFullStyling"] = "isFullStyling"; - // DPI_IsGenerated, having type bool - ParameterId["IsGenerated"] = "isGenerated"; - // DPI_IsGlobalNames, having type bool - ParameterId["IsGlobalNames"] = "isGlobalNames"; - // DPI_IsGrayed, having type bool - ParameterId["IsGrayed"] = "isGrayed"; - // DPI_IsGrayscale, having type bool - ParameterId["IsGrayscale"] = "isGrayscale"; - // DPI_IsGroup, having type bool - ParameterId["IsGroup"] = "isGroup"; - // DPI_IsHierarchy, having type bool - ParameterId["IsHierarchy"] = "isHierarchy"; - // DPI_IsHierarchySingleSelect, having type bool - ParameterId["IsHierarchySingleSelect"] = "isHierarchySingleSelect"; - // DPI_IsHighlightAllowed, having type bool - ParameterId["IsHighlightAllowed"] = "isHighlightAllowed"; - // DPI_IsHighlightEnabled, having type bool - ParameterId["IsHighlightEnabled"] = "isHighlightEnabled"; - // DPI_IsHighlightField, having type bool - ParameterId["IsHighlightField"] = "isHighlightField"; - // DPI_IsHorizontal, having type bool - ParameterId["IsHorizontal"] = "isHorizontal"; - // DPI_IsImageEnabled, having type bool - ParameterId["IsImageEnabled"] = "isImageEnabled"; - // DPI_IsInDefault, having type bool - ParameterId["IsInDefault"] = "isInDefault"; - // DPI_IsInPrimaryDataSource, having type bool - ParameterId["IsInPrimaryDataSource"] = "isInPrimaryDataSource"; - // DPI_IsInner, having type bool - ParameterId["IsInner"] = "isInner"; - // DPI_IsInstance, having type bool - ParameterId["IsInstance"] = "isInstance"; - // DPI_IsInvalid, having type bool - ParameterId["IsInvalid"] = "isInvalid"; - // DPI_IsInvalidCalcOnDG, having type bool - ParameterId["IsInvalidCalcOnDG"] = "isInvalidDgCalc"; - // DPI_IsItalics, having type bool - ParameterId["IsItalics"] = "isItalics"; - // DPI_IsJoinAreaVisible, having type bool - ParameterId["IsJoinAreaVisible"] = "isJoinAreaVisible"; - // DPI_IsLabels, having type bool - ParameterId["IsLabels"] = "isLabels"; - // DPI_IsLayered, having type bool - ParameterId["IsLayered"] = "isLayered"; - // DPI_IsLeft, having type bool - ParameterId["IsLeft"] = "isLeft"; - // DPI_IsLegacy, having type bool - ParameterId["IsLegacy"] = "isLegacy"; - // DPI_IsLevel, having type bool - ParameterId["IsLevel"] = "isLevel"; - // DPI_IsLevelOrLevelIdentity, having type bool - ParameterId["IsLevelOrLevelIdentity"] = "isLevelOrLevelIdentity"; - // DPI_IsLicensed, having type bool - ParameterId["IsLicensed"] = "isLicensed"; - // DPI_IsLink, having type bool - ParameterId["IsLink"] = "isLink"; - // DPI_IsMap, having type bool - ParameterId["IsMap"] = "isMap"; - // DPI_IsMeasure, having type bool - ParameterId["IsMeasure"] = "isMeasure"; - // DPI_IsMerge, having type bool - ParameterId["IsMerge"] = "isMerge"; - // DPI_IsMessageSourceRemote, having type bool - ParameterId["IsMessageSourceRemote"] = "isMessageSourceRemote"; - // DPI_IsMissingFromExtract, having type bool - ParameterId["IsMissingFromExtract"] = "isMissingFromExtract"; - // DPI_IsMobile, having type bool - ParameterId["IsMobile"] = "isMobile"; - // DPI_IsModified, having type bool - ParameterId["IsModified"] = "isModified"; - // DPI_IsNew, having type bool - ParameterId["IsNew"] = "isNew"; - // DPI_IsNewCloudFileDataSource, having type bool - ParameterId["IsNewCloudFileDataSource"] = "isNewCloudFileDataSource"; - // DPI_IsNone, having type bool - ParameterId["IsNone"] = "isNone"; - // DPI_IsOfflineMode, having type bool - ParameterId["IsOfflineMode"] = "isOfflineMode"; - // DPI_IsPreAqlBin, having type bool - ParameterId["IsPreAqlBin"] = "isPreAqlBin"; - // DPI_IsOMeasuresAndRelational, having type bool - ParameterId["IsOMeasuresAndRelational"] = "isOmeasuresAndRelational"; - // DPI_IsOpaque, having type bool - ParameterId["IsOpaque"] = "isOpaque"; - // DPI_IsOrphaned, having type bool - ParameterId["IsOrphaned"] = "isOrphaned"; - // DPI_IsOverlay, having type bool - ParameterId["IsOverlay"] = "isOverlay"; - // DPI_IsOverride, having type bool - ParameterId["IsOverride"] = "isOverride"; - // DPI_IsPageLoading, having type bool - ParameterId["IsPageLoading"] = "isPageLoading"; - // DPI_IsParameterSelected, having type bool - ParameterId["IsParameterSelected"] = "isParameterSelected"; - // DPI_IsParameterSelectedOnFrom, having type bool - ParameterId["IsParameterSelectedOnFrom"] = "isParameterSelectedOnFrom"; - // DPI_IsParameterSelectedOnTo, having type bool - ParameterId["IsParameterSelectedOnTo"] = "isParameterSelectedOnTo"; - // DPI_IsPatternBased, having type bool - ParameterId["IsPatternBased"] = "isPatternBased"; - // DPI_IsPinned, having type bool - ParameterId["IsPinned"] = "isPinned"; - // DPI_IsPresentationMode, having type bool - ParameterId["IsPresentationMode"] = "isPresentationModeDoc"; - // DPI_IsPublishAllowed, having type bool - ParameterId["IsPublishAllowed"] = "isPublishAllowed"; - // DPI_IsMustDowngradeToPublish, having type bool - ParameterId["IsMustDowngradeToPublish"] = "isDowngradeToPublishRequired"; - // DPI_IsPublished, having type bool - ParameterId["IsPublished"] = "isPublished"; - // DPI_IsQuickTableCalc, having type bool - ParameterId["IsQuickTableCalc"] = "isQuickTableCalc"; - // DPI_IsRadioOn, having type bool - ParameterId["IsRadioOn"] = "isRadioOn"; - // DPI_IsReconnect, having type bool - ParameterId["IsReconnect"] = "isReconnect"; - // DPI_IsRecursive, having type bool - ParameterId["IsRecursive"] = "isRecursive"; - // DPI_IsReferenced, having type bool - ParameterId["IsReferenced"] = "isReferenced"; - // DPI_IsRemovalAllowed, having type bool - ParameterId["IsRemovalAllowed"] = "isRowRemovalAllowed"; - // DPI_IsRenderCapable, having type bool - ParameterId["IsRenderCapable"] = "isRenderCapable"; - // DPI_IsRequired, having type bool - ParameterId["IsRequired"] = "isRequired"; - // DPI_IsReversed, having type bool - ParameterId["IsReversed"] = "isReversed"; - // DPI_IsRightDrag, having type bool - ParameterId["IsRightDrag"] = "isRightDrag"; - // DPI_IsRowLabels, having type bool - ParameterId["IsRowLabels"] = "isRowLabels"; - // DPI_IsPercentage, having type bool - ParameterId["IsPercentage"] = "isPercentage"; - // DPI_IsSalesforceInConnection, having type bool - ParameterId["IsSalesforceInConnection"] = "isSalesforceInConnection"; - // DPI_IsScaled, having type bool - ParameterId["IsScaled"] = "isScaled"; - // DPI_IsSelected, having type bool - ParameterId["IsSelected"] = "isSelected"; - // DPI_IsSelectedItem, having type bool - ParameterId["IsSelectedItem"] = "isSelectedItem"; - // DPI_IsSelectionDisabled, having type bool - ParameterId["IsSelectionDisabled"] = "isSelectionDisabled"; - // DPI_IsShiftDrag, having type bool - ParameterId["IsShiftDrag"] = "isShiftDrag"; - // DPI_IsSingleLabel, having type bool - ParameterId["IsSingleLabel"] = "isSingleLabel"; - // DPI_IsSingleSelect, having type bool - ParameterId["IsSingleSelect"] = "isSingleSelect"; - // DPI_IsSingleSelectMode, having type bool - ParameterId["IsSingleSelectMode"] = "isSingleSelectMode"; - // DPI_IsSingleSelection, having type bool - ParameterId["IsSingleSelection"] = "isSingleSelection"; - // DPI_IsSorted, having type bool - ParameterId["IsSorted"] = "isSorted"; - // DPI_IsSortPill, having type bool - ParameterId["IsSortPill"] = "isSortPill"; - // DPI_IsSpecial, having type bool - ParameterId["IsSpecial"] = "isSpecial"; - // DPI_IsSplashScreen, having type bool - ParameterId["IsSplashScreen"] = "isSplashScreen"; - // DPI_IsStoryEmpty, having type bool - ParameterId["IsStoryEmpty"] = "isStoryEmpty"; - // DPI_IsStrikeThrough, having type bool - ParameterId["IsStrikeThrough"] = "isStrikeThrough"; - // DPI_IsTableCalc, having type bool - ParameterId["IsTableCalc"] = "isTableCalc"; - // DPI_IsTableCleaningSubtable, having type bool - ParameterId["IsTableCleaningSubtable"] = "isTableCleaningSubtable"; - // DPI_IsTableFilterInclusive, having type bool - ParameterId["IsTableFilterInclusive"] = "isTableFilterInclusive"; - // DPI_IsTableRanked, having type bool - ParameterId["IsTableRanked"] = "isTableRanked"; - // DPI_IsTemporary, having type bool - ParameterId["IsTemporary"] = "isTemporary"; - // DPI_IsTitleVisible, having type bool - ParameterId["IsTitleVisible"] = "isTitleVisible"; - // DPI_IsTopLevel, having type bool - ParameterId["IsTopLevel"] = "isTopLevel"; - // DPI_IsTwoValued, having type bool - ParameterId["IsTwoValued"] = "isTwoValued"; - // DPI_IsTypeInFinished, having type bool - ParameterId["IsTypeInFinished"] = "isTypeinFinished"; - // DPI_IsTypeInPill, having type bool - ParameterId["IsTypeInPill"] = "isTypeInPill"; - // DPI_IsURLActionField, having type bool - ParameterId["IsURLActionField"] = "isUrlActionField"; - // DPI_IsUnderlined, having type bool - ParameterId["IsUnderlined"] = "isUnderlined"; - // DPI_IsUnion, having type bool - ParameterId["IsUnion"] = "isUnion"; - // DPI_IsUnionReplacement, having type bool - ParameterId["IsUnionReplacement"] = "isUnionReplacement"; - // DPI_IsUnnamedCalc, having type bool - ParameterId["IsUnnamedCalc"] = "isUnnamed"; - // DPI_IsUserEditable, having type bool - ParameterId["IsUserEditable"] = "isUserEditable"; - // DPI_IsUserPrompted, having type bool - ParameterId["IsUserPrompted"] = "isUserPrompted"; - // DPI_IsUserResponded, having type bool - ParameterId["IsUserResponded"] = "isUserResponded"; - // DPI_IsValid, having type bool - ParameterId["IsValid"] = "isValid"; - // DPI_IsValidWDCPage, having type bool - ParameterId["IsValidWDCPage"] = "isValidWdcPage"; - // DPI_IsVaryingAttributeDimension, having type bool - ParameterId["IsVaryingAttributeDimension"] = "isVaryingAttributeDimension"; - // DPI_IsVertical, having type bool - ParameterId["IsVertical"] = "isVertical"; - // DPI_IsViewModified, having type bool - ParameterId["IsViewModified"] = "isViewModified"; - // DPI_IsVisuallyCategorical, having type bool - ParameterId["IsVisuallyCategorical"] = "isVisuallyCat"; - // DPI_IsVizInTooltip, having type bool - ParameterId["IsVizInTooltip"] = "isVizInTooltip"; - // DPI_IsWeb, having type bool - ParameterId["IsWeb"] = "isWeb"; - // DPI_IsWhite, having type bool - ParameterId["IsWhite"] = "isWhite"; - // DPI_IsWorldNew, having type bool - ParameterId["IsWorldNew"] = "isWorldNew"; - // DPI_IsXAxis, having type bool - ParameterId["IsXAxis"] = "isXAxis"; - // DPI_KeepAspectRatio, having type bool - ParameterId["KeepAspectRatio"] = "keepAspectRatio"; - // DPI_LabelLineEndFirst, having type bool - ParameterId["LabelLineEndFirst"] = "labelLineEndFirst"; - // DPI_LabelLineEndLast, having type bool - ParameterId["LabelLineEndLast"] = "labelLineEndLast"; - // DPI_LabelMarkMax, having type bool - ParameterId["LabelMarkMax"] = "labelMarkMax"; - // DPI_LabelMarkMin, having type bool - ParameterId["LabelMarkMin"] = "labelMarkMin"; - // DPI_LockAspectRatio, having type bool - ParameterId["LockAspectRatio"] = "lockAspectRatio"; - // DPI_LoopPlayback, having type bool - ParameterId["LoopPlayback"] = "loopPlayback"; - // DPI_LossyImages, having type bool - ParameterId["LossyImages"] = "lossyImages"; - // DPI_MakeGlobal, having type bool - ParameterId["MakeGlobal"] = "isMakeGlobal"; - // DPI_ManualSortOnly, having type bool - ParameterId["ManualSortOnly"] = "manualSortOnly"; - // DPI_MapBoxDefaultStyleSelected, having type bool - ParameterId["MapBoxDefaultStyleSelected"] = "mapboxDefaultStyleSelected"; - // DPI_MapBoxURLParseSuccessful, having type bool - ParameterId["MapBoxURLParseSuccessful"] = "mapboxUrlParseSuccessful"; - // DPI_MapClientRequestsMapTiles, having type bool - ParameterId["MapClientRequestsMapTiles"] = "clientRequestsMapTiles"; - // DPI_MapHasValidLayer, having type bool - ParameterId["MapHasValidLayer"] = "mapHasValidLayer"; - // DPI_MapShowAttribution, having type bool - ParameterId["MapShowAttribution"] = "showAttribution"; - // DPI_MarkLabelsVisibilityChanged, having type bool - ParameterId["MarkLabelsVisibilityChanged"] = "markLabelsVisibilityChanged"; - // DPI_MembersLoaded, having type bool - ParameterId["MembersLoaded"] = "membersLoaded"; - // DPI_MinimizeNames, having type bool - ParameterId["MinimizeNames"] = "useMinNames"; - // DPI_MoveRefereceLineUp, having type bool - ParameterId["MoveRefereceLineUp"] = "moveReferenceLineUp"; - // DPI_MultiDataSources, having type bool - ParameterId["MultiDataSources"] = "multiDataSources"; - // DPI_NavArrowsVisible, having type bool - ParameterId["NavArrowsVisible"] = "navArrowsVisible"; - // DPI_OEMHasSplashScreen, having type bool - ParameterId["OEMHasSplashScreen"] = "oemHasSplashScreen"; - // DPI_OneWayBrushing, having type bool - ParameterId["OneWayBrushing"] = "oneWayBrushing"; - // DPI_OnlyAggregations, having type bool - ParameterId["OnlyAggregations"] = "onlyAggregations"; - // DPI_OverrideAllowed, having type bool - ParameterId["OverrideAllowed"] = "overrideAllowed"; - // DPI_OverrideStackDumper, having type bool - ParameterId["OverrideStackDumper"] = "overrideStackDumper"; - // DPI_PageAutoColorLines, having type bool - ParameterId["PageAutoColorLines"] = "autoColorLines"; - // DPI_PageAutoColorMarks, having type bool - ParameterId["PageAutoColorMarks"] = "autoColorMarks"; - // DPI_PageHistoryFade, having type bool - ParameterId["PageHistoryFade"] = "historyFade"; - // DPI_PercentageBands, having type bool - ParameterId["PercentageBands"] = "percentageBands"; - // DPI_PublishWithRemoteQueryAgent, having type bool - ParameterId["PublishWithRemoteQueryAgent"] = "publishWithRemoteQueryAgent"; - // DPI_PreviousSheet, having type bool - ParameterId["PreviousSheet"] = "previousSheet"; - // DPI_PromptDeleteSheetsWithVizInTooltip, having type bool - ParameterId["PromptDeleteSheetsWithVizInTooltip"] = "promptDeleteSheetsWithVizInTooltip"; - // DPI_QuantilesAllowed, having type bool - ParameterId["QuantilesAllowed"] = "quantilesAllowed"; - // DPI_RadialDistanceHitTest, having type bool - ParameterId["RadialDistanceHitTest"] = "radialDistanceHitTest"; - // DPI_RefLineSelected, having type bool - ParameterId["RefLineSelected"] = "refLineSelected"; - // DPI_RemovedSheets, having type bool - ParameterId["RemovedSheets"] = "removedSheets"; - // DPI_RenderImagesAsUrls, having type bool - ParameterId["RenderImagesAsUrls"] = "imagesAsUrls"; - // DPI_RenderOnTop, having type bool - ParameterId["RenderOnTop"] = "renderOnTop"; - // DPI_RepeatHeadersLegends, having type bool - ParameterId["RepeatHeadersLegends"] = "repeatHeadersLegends"; - // DPI_ReplaceActiveConfig, having type bool - ParameterId["ReplaceActiveConfig"] = "replaceActiveConfig"; - // DPI_ReplaceDatasourceAfterPublish, having type bool - ParameterId["ReplaceDatasourceAfterPublish"] = "replaceDatasourceAfterPublish"; - // DPI_ReplaceDatasourceFailed, having type bool - ParameterId["ReplaceDatasourceFailed"] = "replaceDatasourceFailed"; - // DPI_ReplaceTde, having type bool - ParameterId["ReplaceTde"] = "replaceTde"; - // DPI_RequireSelection, having type bool - ParameterId["RequireSelection"] = "requireSelection"; - // DPI_RequiresDBVariables, having type bool - ParameterId["RequiresDBVariables"] = "requiresDbVariables"; - // DPI_RequiresFieldList, having type bool - ParameterId["RequiresFieldList"] = "requiresFieldList"; - // DPI_RestartEveryFieldIsInvalid, having type bool - ParameterId["RestartEveryFieldIsInvalid"] = "restartEveryFieldIsInvalid"; - // DPI_RightJustify, having type bool - ParameterId["RightJustify"] = "rightJustify"; - // DPI_SaveEnabled, having type bool - ParameterId["SaveEnabled"] = "saveEnabled"; - // DPI_SavePasswordAllowed, having type bool - ParameterId["SavePasswordAllowed"] = "savePasswordAllowed"; - // DPI_ScopeIsolation, having type bool - ParameterId["ScopeIsolation"] = "scopeIsolation"; - // DPI_SelectionRequired, having type bool - ParameterId["SelectionRequired"] = "selectionRequired"; - // DPI_SendNotifications, having type bool - ParameterId["SendNotifications"] = "sendNotifications"; - // DPI_SetActive, having type bool - ParameterId["SetActive"] = "setActive"; - // DPI_SetDefaultSort, having type bool - ParameterId["SetDefaultSort"] = "setDefault"; - // DPI_SheetIsDashboard, having type bool - ParameterId["SheetIsDashboard"] = "isDashboard"; - // DPI_SheetIsStoryboard, having type bool - ParameterId["SheetIsStoryboard"] = "isStory"; - // DPI_ShouldAlwaysDisplayAlias, having type bool - ParameterId["ShouldAlwaysDisplayAlias"] = "shouldAlwaysDisplayAlias"; - // DPI_ShouldAutoCapture, having type bool - ParameterId["ShouldAutoCapture"] = "shouldAutoCapture"; - // DPI_ShouldAutoRevert, having type bool - ParameterId["ShouldAutoRevert"] = "shouldAutoRevert"; - // DPI_ShouldChangeUIMode, having type bool - ParameterId["ShouldChangeUIMode"] = "shouldChangeUiMode"; - // DPI_ShouldDisplay, having type bool - ParameterId["ShouldDisplay"] = "shouldDisplay"; - // DPI_ShouldDrill, having type bool - ParameterId["ShouldDrill"] = "shouldDrill"; - // DPI_ShouldForceConnectionAttempt, having type bool - ParameterId["ShouldForceConnectionAttempt"] = "shouldForceConnectionAttempt"; - // DPI_ShouldRefreshDS, having type bool - ParameterId["ShouldRefreshDS"] = "shouldRefreshDs"; - // DPI_ShouldScaleMarksInAxisUnits, having type bool - ParameterId["ShouldScaleMarksInAxisUnits"] = "shouldScaleMarksInAxisUnits"; - // DPI_ShouldSeedCredentials, having type bool - ParameterId["ShouldSeedCredentials"] = "shouldSeedCredentials"; - // DPI_ShouldShowDistance, having type bool - ParameterId["ShouldShowDistance"] = "shouldShowDistance"; - // DPI_ShouldShowMapScale, having type bool - ParameterId["ShouldShowMapScale"] = "shouldShowMapScale"; - // DPI_ShouldURLEscape, having type bool - ParameterId["ShouldURLEscape"] = "shouldUrlEscape"; - // DPI_ShouldUpdateDomainInfo, having type bool - ParameterId["ShouldUpdateDomainInfo"] = "shouldUpdateDomInfo"; - // DPI_ShowAddToFilter, having type bool - ParameterId["ShowAddToFilter"] = "showAddToFilterButton"; - // DPI_ShowAliases, having type bool - ParameterId["ShowAliases"] = "showAliases"; - // DPI_ShowAllPages, having type bool - ParameterId["ShowAllPages"] = "showAllPages"; - // DPI_ShowApply, having type bool - ParameterId["ShowApply"] = "showApplyButton"; - // DPI_ShowApplyAndCancelButtons, having type bool - ParameterId["ShowApplyAndCancelButtons"] = "showApplyAndCancelButtons"; - // DPI_ShowAuthenticationOptions, having type bool - ParameterId["ShowAuthenticationOptions"] = "showAuthenticationOptions"; - // DPI_ShowAuthenticationSetting, having type bool - ParameterId["ShowAuthenticationSetting"] = "showAuthenticationSetting"; - // DPI_ShowAuto, having type bool - ParameterId["ShowAuto"] = "showAuto"; - // DPI_ShowBold, having type bool - ParameterId["ShowBold"] = "showBoldOption"; - // DPI_ShowButtons, having type bool - ParameterId["ShowButtons"] = "showButtons"; - // DPI_ShowCaption, having type bool - ParameterId["ShowCaption"] = "showCaption"; - // DPI_ShowColorLegend, having type bool - ParameterId["ShowColorLegend"] = "showColorLegend"; - // DPI_ShowDataGridInlineRename, having type bool - ParameterId["ShowDataGridInlineRename"] = "showDataGridInlineRename"; - // DPI_ShowDetailMessages, having type bool - ParameterId["ShowDetailMessages"] = "showDetailMessages"; - // DPI_ShowDate, having type bool - ParameterId["ShowDate"] = "showDate"; - // DPI_ShowDragLabel, having type bool - ParameterId["ShowDragLabel"] = "showDragLabel"; - // DPI_ShowDropMeasures, having type bool - ParameterId["ShowDropMeasures"] = "showDropMeasures"; - // DPI_ShowEmbedAll, having type bool - ParameterId["ShowEmbedAll"] = "showEmbedAll"; - // DPI_ShowEntireImage, having type bool - ParameterId["ShowEntireImage"] = "showEntireImage"; - // DPI_ShowExclude, having type bool - ParameterId["ShowExclude"] = "showExcludeButton"; - // DPI_ShowFloatingZoomToolbar, having type bool - ParameterId["ShowFloatingZoomToolbar"] = "showFloatingZoomToolbar"; - // DPI_ShowFormatter, having type bool - ParameterId["ShowFormatter"] = "showFormatter"; - // DPI_ShowFullSchedules, having type bool - ParameterId["ShowFullSchedules"] = "showFullSchedules"; - // DPI_ShowGeographicSearch, having type bool - ParameterId["ShowGeographicSearch"] = "showGeographicSearch"; - // DPI_ShowHiddenFields, having type bool - ParameterId["ShowHiddenFields"] = "showHiddenFields"; - // DPI_ShowHistoryControls, having type bool - ParameterId["ShowHistoryControls"] = "showHistoryControls"; - // DPI_ShowIncludeLocalFiles, having type bool - ParameterId["ShowIncludeLocalFiles"] = "showIncludeLocalFiles"; - // DPI_ShowIncludeOtherOption, having type bool - ParameterId["ShowIncludeOtherOption"] = "showIncludeOtherOption"; - // DPI_ShowIncludeSelections, having type bool - ParameterId["ShowIncludeSelections"] = "showIncludeSelections"; - // DPI_ShowIncrSchedules, having type bool - ParameterId["ShowIncrSchedules"] = "showIncrSchedules"; - // DPI_ShowInnerMostLevel, having type bool - ParameterId["ShowInnerMostLevel"] = "showInnermostLevel"; - // DPI_ShowItalics, having type bool - ParameterId["ShowItalics"] = "showItalicsOption"; - // DPI_ShowLegend, having type bool - ParameterId["ShowLegend"] = "showLegend"; - // DPI_ShowLockedPermissionsIcon, having type bool - ParameterId["ShowLockedPermissionsIcon"] = "showLockedPermissionsIcon"; - // DPI_ShowManageDatasources, having type bool - ParameterId["ShowManageDatasources"] = "showManageDatasources"; - // DPI_ShowMapLegend, having type bool - ParameterId["ShowMapLegend"] = "showMapLegend"; - // DPI_ShowMapScale, having type bool - ParameterId["ShowMapScale"] = "showMapScale"; - // DPI_ShowMappedFilterCols, having type bool - ParameterId["ShowMappedFilterCols"] = "showMappedFilterColumns"; - // DPI_ShowName, having type bool - ParameterId["ShowName"] = "showName"; - // DPI_ShowNone, having type bool - ParameterId["ShowNone"] = "showNone"; - // DPI_ShowPagePlayback, having type bool - ParameterId["ShowPagePlayback"] = "showPagePlayback"; - // DPI_ShowPageReadout, having type bool - ParameterId["ShowPageReadout"] = "showPageReadout"; - // DPI_ShowPageSlider, having type bool - ParameterId["ShowPageSlider"] = "showPageSlider"; - // DPI_ShowParent, having type bool - ParameterId["ShowParent"] = "showParent"; - // DPI_ShowPercentages, having type bool - ParameterId["ShowPercentages"] = "showPercentages"; - // DPI_ShowPredictionIntervals, having type bool - ParameterId["ShowPredictionIntervals"] = "showPredictionIntervals"; - // DPI_ShowPublishedDatasources, having type bool - ParameterId["ShowPublishedDatasources"] = "showPublishedDatasources"; - // DPI_ShowRelDatePicker, having type bool - ParameterId["ShowRelDatePicker"] = "showRelDatePicker"; - // DPI_ShowReplaceDatasource, having type bool - ParameterId["ShowReplaceDatasource"] = "showReplaceDatasource"; - // DPI_ShowSeparator, having type bool - ParameterId["ShowSeparator"] = "showSeparator"; - // DPI_ShowShapeLegend, having type bool - ParameterId["ShowShapeLegend"] = "showShapeLegend"; - // DPI_ShowSizeLegend, having type bool - ParameterId["ShowSizeLegend"] = "showSizeLegend"; - // DPI_ShowShelf, having type bool - ParameterId["ShowShelf"] = "showShelf"; - // DPI_ShowStructure, having type bool - ParameterId["ShowStructure"] = "showStructure"; - // DPI_ShowSyncClientOptions, having type bool - ParameterId["ShowSyncClientOptions"] = "showSyncClientOptions"; - // DPI_ShowTabsAllowed, having type bool - ParameterId["ShowTabsAllowed"] = "showTabsAllowed"; - // DPI_ShowTime, having type bool - ParameterId["ShowTime"] = "showTime"; - // DPI_ShowTitle, having type bool - ParameterId["ShowTitle"] = "showTitle"; - // DPI_ShowTransSlider, having type bool - ParameterId["ShowTransSlider"] = "showTransparencySlider"; - // DPI_ShowUnderline, having type bool - ParameterId["ShowUnderline"] = "showUnderlineOption"; - // DPI_ShowUserThumbnailOptions, having type bool - ParameterId["ShowUserThumbnailOptions"] = "showUserThumbnailOptions"; - // DPI_ShowView, having type bool - ParameterId["ShowView"] = "showView"; - // DPI_ShowViews, having type bool - ParameterId["ShowViews"] = "showViews"; - // DPI_ShowingPageLoadError, having type bool - ParameterId["ShowingPageLoadError"] = "showingPageLoadError"; - // DPI_SupressAliases, having type bool - ParameterId["SupressAliases"] = "suspressAliases"; - // DPI_SupressThousandsSeparator, having type bool - ParameterId["SupressThousandsSeparator"] = "supressThousandsSeparator"; - // DPI_SingleSelectOnly, having type bool - ParameterId["SingleSelectOnly"] = "singleSelectOnly"; - // DPI_SkipIfActive, having type bool - ParameterId["SkipIfActive"] = "skipIfActive"; - // DPI_SkipRefresh, having type bool - ParameterId["SkipRefresh"] = "skipRefresh"; - // DPI_SkipValidation, having type bool - ParameterId["SkipValidation"] = "skipValidation"; - // DPI_Skipped, having type bool - ParameterId["Skipped"] = "skipped"; - // DPI_SortFieldIsInvalid, having type bool - ParameterId["SortFieldIsInvalid"] = "sortFieldIsInvalid"; - // DPI_SortModeIsAuto, having type bool - ParameterId["SortModeIsAuto"] = "sortModeIsAuto"; - // DPI_SplitOnEdgeSnap, having type bool - ParameterId["SplitOnEdgeSnap"] = "splitOnEdgeSnap"; - // DPI_StandardDeviationAllowed, having type bool - ParameterId["StandardDeviationAllowed"] = "standardDeviationAllowed"; - // DPI_State, having type bool - ParameterId["State"] = "state"; - // DPI_StoredProcDisabled, having type bool - ParameterId["StoredProcDisabled"] = "storedProcDisabled"; - // DPI_StoredProcsDropable, having type bool - ParameterId["StoredProcsDropable"] = "storedProcsDropable"; - // DPI_StoryIsEmpty, having type bool - ParameterId["StoryIsEmpty"] = "storyIsEmpty"; - // DPI_StoryPointIsEmpty, having type bool - ParameterId["StoryPointIsEmpty"] = "storyPointIsEmpty"; - // DPI_SuccessfulSave, having type bool - ParameterId["SuccessfulSave"] = "successfulSave"; - // DPI_SupportXAxis, having type bool - ParameterId["SupportXAxis"] = "supportXAxis"; - // DPI_SupportYAxis, having type bool - ParameterId["SupportYAxis"] = "supportYAxis"; - // DPI_SupportsCenterAlignment, having type bool - ParameterId["SupportsCenterAlignment"] = "supportsCenterAlignment"; - // DPI_SupportsDBFilters, having type bool - ParameterId["SupportsDBFilters"] = "supportsDatabaseFilters"; - // DPI_SupportsMultipleValues, having type bool - ParameterId["SupportsMultipleValues"] = "supportsMultipleValues"; - // DPI_SupportsRightAlignment, having type bool - ParameterId["SupportsRightAlignment"] = "supportsRightAlignment"; - // DPI_SupportsTableFilters, having type bool - ParameterId["SupportsTableFilters"] = "supportsTableFilters"; - // DPI_Symmetric, having type bool - ParameterId["Symmetric"] = "symmetric"; - // DPI_SyncAutomaticDrill, having type bool - ParameterId["SyncAutomaticDrill"] = "syncAutomaticDrill"; - // DPI_TabsAllowed, having type bool - ParameterId["TabsAllowed"] = "tabsAllowed"; - // DPI_TextDropdownState, having type bool - ParameterId["TextDropdownState"] = "toggleState"; - // DPI_TitleInline, having type bool - ParameterId["TitleInline"] = "titleInline"; - // DPI_ToggleHighlightStateChanged, having type bool - ParameterId["ToggleHighlightStateChanged"] = "toggleHighlight"; - // DPI_Transformed80Format, having type bool - ParameterId["Transformed80Format"] = "oldFormat"; - // DPI_TrendLineSelected, having type bool - ParameterId["TrendLineSelected"] = "trendLineSelected"; - // DPI_TruncDate, having type bool - ParameterId["TruncDate"] = "truncDate"; - // DPI_TupleSelected, having type bool - ParameterId["TupleSelected"] = "tupleSelected"; - // DPI_UIAutomationDidPageLoad, having type bool - ParameterId["UIAutomationDidPageLoad"] = "uiAutomationDidPageLoad"; - // DPI_UIAutomationIsChecked, having type bool - ParameterId["UIAutomationIsChecked"] = "uiAutomationIsChecked"; - // DPI_UIAutomationIsEnabled, having type bool - ParameterId["UIAutomationIsEnabled"] = "uiAutomationIsEnabled"; - // DPI_UIAutomationIsEventProcessed, having type bool - ParameterId["UIAutomationIsEventProcessed"] = "uiAutomationIsEventProcessed"; - // DPI_UIAutomationIsFocused, having type bool - ParameterId["UIAutomationIsFocused"] = "uiAutomationIsFocused"; - // DPI_UIAutomationIsFound, having type bool - ParameterId["UIAutomationIsFound"] = "uiAutomationIsFound"; - // DPI_UIAutomationIsReadonly, having type bool - ParameterId["UIAutomationIsReadonly"] = "uiAutomationIsReadonly"; - // DPI_UIAutomationIsSelected, having type bool - ParameterId["UIAutomationIsSelected"] = "uiAutomationIsSelected"; - // DPI_UpdateAllPanes, having type bool - ParameterId["UpdateAllPanes"] = "updateAllPanes"; - // DPI_UpdateDSCaptionOnly, having type bool - ParameterId["UpdateDSCaptionOnly"] = "updateDsCaptionOnly"; - // DPI_UpdateModelFromParams, having type bool - ParameterId["UpdateModelFromParams"] = "updateModelFromParams"; - // DPI_UpdateShelves, having type bool - ParameterId["UpdateShelves"] = "updateShelves"; - // DPI_UpdatesUseContext, having type bool - ParameterId["UpdatesUseContext"] = "updatesUseContext"; - // DPI_UpgradeDocumentVersion, having type bool - ParameterId["UpgradeDocumentVersion"] = "upgradeDocumentVersion"; - // DPI_UseAliases, having type bool - ParameterId["UseAliases"] = "useAliases"; - // DPI_UseBlankForNull, having type bool - ParameterId["UseBlankForNull"] = "useBlankForNull"; - // DPI_UseCalculationEditor, having type bool - ParameterId["UseCalculationEditor"] = "useCalculationEditor"; - // DPI_UseCenterValue, having type bool - ParameterId["UseCenterValue"] = "useCenterValue"; - // DPI_UseColor, having type bool - ParameterId["UseColor"] = "useColor"; - // DPI_UseCustomMarkSize, having type bool - ParameterId["UseCustomMarkSize"] = "useCustomMarkSize"; - // DPI_UseDarkIcons, having type bool - ParameterId["UseDarkIcons"] = "useDarkIcons"; - // DPI_UseDataStoreMinfiedNames, having type bool - ParameterId["UseDataStoreMinfiedNames"] = "useDatastoreMinNames"; - // DPI_UseInitialDomainType, having type bool - ParameterId["UseInitialDomainType"] = "useInitialDomainType"; - // DPI_UseEndValue, having type bool - ParameterId["UseEndValue"] = "useEndValue"; - // DPI_UseForOverlayHitTest, having type bool - ParameterId["UseForOverlayHitTest"] = "useForOverlayHitTest"; - // DPI_UseFullColorRange, having type bool - ParameterId["UseFullColorRange"] = "useFullColorRange"; - // DPI_UseFullDomain, having type bool - ParameterId["UseFullDomain"] = "useFullDomain"; - // DPI_UseInlineImages, having type bool - ParameterId["UseInlineImages"] = "useInlineImages"; - // DPI_UseMeasures, having type bool - ParameterId["UseMeasures"] = "useMeasures"; - // DPI_UseNewQuickFilters, having type bool - ParameterId["UseNewQuickFilters"] = "useNewQuickFilters"; - // DPI_UseNotificationReturn, having type bool - ParameterId["UseNotificationReturn"] = "useNotificationReturn"; - // DPI_UseParameters, having type bool - ParameterId["UseParameters"] = "useParameters"; - // DPI_UseSelector, having type bool - ParameterId["UseSelector"] = "useSelector"; - // DPI_UseSignificantDigits, having type bool - ParameterId["UseSignificantDigits"] = "useSignificantDigits"; - // DPI_UseSpecialStrings, having type bool - ParameterId["UseSpecialStrings"] = "useSpecialStrings"; - // DPI_UseStartValue, having type bool - ParameterId["UseStartValue"] = "useStartValue"; - // DPI_UseTabletAsDefaultPreview, having type bool - ParameterId["UseTabletAsDefaultPreview"] = "useTabletAsDefaultPreview"; - // DPI_UseTargetPt, having type bool - ParameterId["UseTargetPt"] = "useTargetPoint"; - // DPI_UseUSLocale, having type bool - ParameterId["UseUSLocale"] = "useUsLocale"; - // DPI_UseYAxis, having type bool - ParameterId["UseYAxis"] = "useYAxis"; - // DPI_Valid, having type bool - ParameterId["Valid"] = "valid"; - // DPI_VizDataV82, having type bool - ParameterId["VizDataV82"] = "vizData82"; - // DPI_WMSConnectionSuccessful, having type bool - ParameterId["WMSConnectionSuccessful"] = "wmsConnectionSuccessful"; - // DPI_WMSShouldUseTiles, having type bool - ParameterId["WMSShouldUseTiles"] = "wmsShouldUseTiles"; - // DPI_WantDomain, having type bool - ParameterId["WantDomain"] = "wantDomain"; - // DPI_WorkbookModified, having type bool - ParameterId["WorkbookModified"] = "workbookModified"; - // DPI_ZoomIn, having type bool - ParameterId["ZoomIn"] = "zoomIn"; - // DPI_ShowMarkLabels, having type bool - ParameterId["ShowMarkLabels"] = "showMarkLabels"; - // DPI_HasDuplicates, having type bool - ParameterId["HasDuplicates"] = "hasDuplicates"; - // DPI_HasUserDefinedIncrement, having type bool - ParameterId["HasUserDefinedIncrement"] = "hasUserDefinedIncrement"; - // DPI_HasUserDefinedMax, having type bool - ParameterId["HasUserDefinedMax"] = "hasUserDefinedMax"; - // DPI_HasUserDefinedMin, having type bool - ParameterId["HasUserDefinedMin"] = "hasUserDefinedMin"; - // DPI_IsDuplicate, having type bool - ParameterId["IsDuplicate"] = "isDuplicate"; - // DPI_IsEditingValue, having type bool - ParameterId["IsEditingValue"] = "isEditingValue"; - // DPI_ShouldRestrictDataType, having type bool - ParameterId["ShouldRestrictDataType"] = "restrictDataType"; - // DPI_EnableIncludeZero, having type bool - ParameterId["EnableIncludeZero"] = "enableIncludeZero"; - // DPI_EnableSyncDualAxes, having type bool - ParameterId["EnableSyncDualAxes"] = "enableSynchronizeDualAxes"; - // DPI_EnableShowTimes, having type bool - ParameterId["EnableShowTimes"] = "enableShowTimes"; - // DPI_IsTemporal, having type bool - ParameterId["IsTemporal"] = "isTemporal"; - // DPI_ShouldIncludeZero, having type bool - ParameterId["ShouldIncludeZero"] = "shouldIncludeZero"; - // DPI_ShouldReverseAxis, having type bool - ParameterId["ShouldReverseAxis"] = "shouldReverseAxis"; - // DPI_ShouldShowTimes, having type bool - ParameterId["ShouldShowTimes"] = "shouldShowTimes"; - // DPI_UseAutomaticAxisSubtitle, having type bool - ParameterId["UseAutomaticAxisSubtitle"] = "useAutomaticSubtitle"; - // DPI_UseAutomaticAxisTitle, having type bool - ParameterId["UseAutomaticAxisTitle"] = "useAutomaticTitle"; - // DPI_AllSelected, having type bool - ParameterId["AllSelected"] = "allSelected"; - // DPI_AutoCommit, having type bool - ParameterId["AutoCommit"] = "autoCommit"; - // DPI_CacheOnly, having type bool - ParameterId["CacheOnly"] = "cacheOnly"; - // DPI_IncludeData, having type bool - ParameterId["IncludeData"] = "includeData"; - // DPI_IsPatternExclusive, having type bool - ParameterId["IsPatternExclusive"] = "isPatternExclusive"; - // DPI_IsSearchable, having type bool - ParameterId["IsSearchable"] = "isSearchable"; - // DPI_IsSelectionExclusive, having type bool - ParameterId["IsSelectionExclusive"] = "isSelectionExclusive"; - // DPI_ResetNewFilter, having type bool - ParameterId["ResetNewFilter"] = "resetNewFilter"; - // DPI_UseAllWhenManualEmpty, having type bool - ParameterId["UseAllWhenManualEmpty"] = "useAllWhenManualEmpty"; - // DPI_UseAllWhenPatternEmpty, having type bool - ParameterId["UseAllWhenPatternEmpty"] = "useAllWhenPatternEmpty"; - // DPI_GroupByDrillDown, having type bool - ParameterId["GroupByDrillDown"] = "groupByDrillDown"; - // DPI_GroupByTable, having type bool - ParameterId["GroupByTable"] = "groupByTable"; - // DPI_IncludeGroups, having type bool - ParameterId["IncludeGroups"] = "includeGroups"; - // DPI_IncludePendingState, having type bool - ParameterId["IncludePendingState"] = "includePendingState"; - // DPI_IncludeFieldMenus, having type bool - ParameterId["IncludeFieldMenus"] = "includeFieldMenus"; - // DPI_IncludeFormattedValues, having type bool - ParameterId["IncludeFormattedValues"] = "includeFormattedValues"; - // DPI_IncludeColumnInstances, having type bool - ParameterId["IncludeColumnInstances"] = "includeColumnInstances"; - // DPI_IncludeAdHocCalcs, having type bool - ParameterId["IncludeAdHocCalcs"] = "includeAdhocCalcs"; - // DPI_IncludeHiddenInvalidFields, having type bool - ParameterId["IncludeHiddenInvalidFields"] = "includeHiddenInvalidFields"; - // DPI_IncludeNonExtractedColumns, having type bool - ParameterId["IncludeNonExtractedColumns"] = "includeNonExtractedColumns"; - // DPI_SetDataPreviewCustomFieldOrder, having type bool - ParameterId["SetDataPreviewCustomFieldOrder"] = "setDataPreviewCustomFieldOrder"; - // DPI_CustomSplitAllowSplitFromRight, having type bool - ParameterId["CustomSplitAllowSplitFromRight"] = "customSplitAllowSplitFromRight"; - // DPI_IsChanged, having type bool - ParameterId["IsChanged"] = "isChanged"; - // DPI_ShowFontColorPicker, having type bool - ParameterId["ShowFontColorPicker"] = "showFontColorPicker"; - // DPI_ShowFontFamilyPicker, having type bool - ParameterId["ShowFontFamilyPicker"] = "showFontFamilyPicker"; - // DPI_ShowFontSizePicker, having type bool - ParameterId["ShowFontSizePicker"] = "showFontSizePicker"; - // DPI_ShowFontStyleButtons, having type bool - ParameterId["ShowFontStyleButtons"] = "showFontStyleButtons"; - // DPI_ShowLineForAll, having type bool - ParameterId["ShowLineForAll"] = "showLineForAll"; - // DPI_ShowLineForColumn, having type bool - ParameterId["ShowLineForColumn"] = "showLineForColumn"; - // DPI_ShowLineForRow, having type bool - ParameterId["ShowLineForRow"] = "showLineForRow"; - // DPI_ShowLinePatternPicker, having type bool - ParameterId["ShowLinePatternPicker"] = "showLinePatternPicker"; - // DPI_ShowLineTransparency, having type bool - ParameterId["ShowLineTransparency"] = "showLineTransparency"; - // DPI_ShowLineWidthPicker, having type bool - ParameterId["ShowLineWidthPicker"] = "showLineWidthPicker"; - // DPI_CanBeAuto, having type bool - ParameterId["CanBeAuto"] = "canBeAuto"; - // DPI_CanBeNone, having type bool - ParameterId["CanBeNone"] = "canBeNone"; - // DPI_CanMatchMarkColor, having type bool - ParameterId["CanMatchMarkColor"] = "canMatchMarkColor"; - // DPI_HasOpacity, having type bool - ParameterId["HasOpacity"] = "hasOpacity"; - // DPI_IncludeAllHidden, having type bool - ParameterId["IncludeAllHidden"] = "includeAllHidden"; - // DPI_IncludeCurrent, having type bool - ParameterId["IncludeCurrent"] = "includeCurrent"; - // DPI_IsIncluded, having type bool - ParameterId["IsIncluded"] = "isIncluded"; - // DPI_IsRelative, having type bool - ParameterId["IsRelative"] = "isRelative"; - // DPI_IsSecondaryAllowed, having type bool - ParameterId["IsSecondaryAllowed"] = "isSecondaryAllowed"; - // DPI_NullIfIncomplete, having type bool - ParameterId["NullIfIncomplete"] = "nullIfIncomplete"; - // DPI_IsCalcAssistanceEnabled, having type bool - ParameterId["IsCalcAssistanceEnabled"] = "isCalcAssistanceEnabled"; - // DPI_UseSecondaryCalc, having type bool - ParameterId["UseSecondaryCalc"] = "useSecondaryCalc"; - // DPI_CanLoad, having type bool - ParameterId["CanLoad"] = "canLoad"; - // DPI_DescriptionOnly, having type bool - ParameterId["DescriptionOnly"] = "descriptionOnly"; - // DPI_AreAliasesSupported, having type bool - ParameterId["AreAliasesSupported"] = "areAliasesSupported"; - // DPI_AreRefColumnsSupported, having type bool - ParameterId["AreRefColumnsSupported"] = "areRefColumnsSupported"; - // DPI_IsAggregated, having type bool - ParameterId["IsAggregated"] = "isAggregated"; - // DPI_IsExportSupported, having type bool - ParameterId["IsExportSupported"] = "isExportSupported"; - // DPI_IsMeasureNames, having type bool - ParameterId["IsMeasureNames"] = "isMeasureNames"; - // DPI_IsSummarySupported, having type bool - ParameterId["IsSummarySupported"] = "isSummarySupported"; - // DPI_IsTopNSupported, having type bool - ParameterId["IsTopNSupported"] = "isTopNSupported"; - // DPI_IsUnderlyingSupported, having type bool - ParameterId["IsUnderlyingSupported"] = "isUnderlyingSupported"; - // DPI_OnlyExportSummary, having type bool - ParameterId["OnlyExportSummary"] = "onlyExportSummary"; - // DPI_ShowAllFields, having type bool - ParameterId["ShowAllFields"] = "showAllFields"; - // DPI_UseTablePtrs, having type bool - ParameterId["UseTablePtrs"] = "useTablePtrs"; - // DPI_OnlyFetchSummary, having type bool - ParameterId["OnlyFetchSummary"] = "onlyFetchSummary"; - // DPI_IsDeviceLayoutCustomized, having type bool - ParameterId["IsDeviceLayoutCustomized"] = "isDeviceLayoutCustomized"; - // DPI_IsDeviceSizeCustomized, having type bool - ParameterId["IsDeviceSizeCustomized"] = "isDeviceSizeCustomized"; - // DPI_IsDeviceSupportedByMobileApp, having type bool - ParameterId["IsDeviceSupportedByMobileApp"] = "isDeviceSupportedByMobileApp"; - // DPI_IsPortrait, having type bool - ParameterId["IsPortrait"] = "isPortrait"; - // DPI_IsPortraitByDefault, having type bool - ParameterId["IsPortraitByDefault"] = "isPortraitByDefault"; - // DPI_IsUserCustomFormat, having type bool - ParameterId["IsUserCustomFormat"] = "isUserCustomFormat"; - // DPI_ShouldDisplayRebuildExtractMessage, having type bool - ParameterId["ShouldDisplayRebuildExtractMessage"] = "shouldDisplayRebuildExtractMessage"; - // DPI_SupportsCustomStartOfWeek, having type bool - ParameterId["SupportsCustomStartOfWeek"] = "supportsCustomStartOfWeek"; - // DPI_NeedsConnectPrompt, having type bool - ParameterId["NeedsConnectPrompt"] = "needsConnectPrompt"; - // DPI_NeedsCloseDataSourceErrorPrompt, having type bool - ParameterId["NeedsCloseDataSourceErrorPrompt"] = "needsCloseDsErrorPrompt"; - // DPI_ClearCurrentSelection, having type bool - ParameterId["ClearCurrentSelection"] = "clearCurrentSelection"; - // DPI_HasContains, having type bool - ParameterId["HasContains"] = "hasContains"; - // DPI_HasEndsWith, having type bool - ParameterId["HasEndsWith"] = "hasEndsWith"; - // DPI_HasReplaceSelection, having type bool - ParameterId["HasReplaceSelection"] = "hasReplaceSelection"; - // DPI_HasStartsWith, having type bool - ParameterId["HasStartsWith"] = "hasStartsWith"; - // DPI_IsLeafSelectionOnly, having type bool - ParameterId["IsLeafSelectionOnly"] = "isLeafSelectionOnly"; - // DPI_ReplaceSelection, having type bool - ParameterId["ReplaceSelection"] = "replaceSelection"; - // DPI_IsColorPaletteCustomized, having type bool - ParameterId["IsColorPaletteCustomized"] = "isColorPaletteCustomized"; - // DPI_ReversePaletteOrder, having type bool - ParameterId["ReversePaletteOrder"] = "reversePaletteOrder"; - // DPI_TriedToConnect, having type bool - ParameterId["TriedToConnect"] = "triedToConnect"; - // DPI_ScaleMarksInAxisUnits, having type bool - ParameterId["ScaleMarksInAxisUnits"] = "scaleMarksInAxisUnits"; - // DPI_ShowMarkSizingOptions, having type bool - ParameterId["ShowMarkSizingOptions"] = "showMarkSizingOptions"; - // DPI_UseSizeFieldCaption, having type bool - ParameterId["UseSizeFieldCaption"] = "useSizeFieldCaption"; - // DPI_IsLicensedAndRegistered, having type bool - ParameterId["IsLicensedAndRegistered"] = "isLicensedAndRegistered"; - // DPI_SetNewDatasourceActive, having type bool - ParameterId["SetNewDatasourceActive"] = "setNewDatasourceActive"; - // DPI_AllowCustomLabel, having type bool - ParameterId["AllowCustomLabel"] = "allowCustomLabel"; - // DPI_IsMostRecentModeValid, having type bool - ParameterId["IsMostRecentModeValid"] = "isMostRecentModeValid"; - // DPI_MustShowLabels, having type bool - ParameterId["MustShowLabels"] = "mustShowLabels"; - // DPI_ShowRunningOrderLabels, having type bool - ParameterId["ShowRunningOrderLabels"] = "showRunningOrderLabels"; - // DPI_IsDroppedFile, having type bool - ParameterId["IsDroppedFile"] = "isDroppedFile"; - // DPI_IsInitialized, having type bool - ParameterId["IsInitialized"] = "isInitialized"; - // DPI_IncludeDashboard, having type bool - ParameterId["IncludeDashboard"] = "includeDashboard"; - // DPI_ChildrenCanResize, having type bool - ParameterId["ChildrenCanResize"] = "childrenCanResize"; - // DPI_BoolMap, having type Dictionary(of bool) - ParameterId["BoolMap"] = "boolMap"; - // DPI_CheckedMenuItems, having type bool[] - ParameterId["CheckedMenuItems"] = "checkedMenuItems"; - // DPI_IncludedSheetValues, having type bool[] - ParameterId["IncludedSheetValues"] = "includedSheetValues"; - // DPI_SortOrderVector, having type bool[] - ParameterId["SortOrderVector"] = "sortOrderVector"; - // DPI_ActionName, having type string - ParameterId["ActionName"] = "actionName"; - // DPI_ActionSourceText, having type string - ParameterId["ActionSourceText"] = "actionSourceText"; - // DPI_ActionTypeAsString, having type string - ParameterId["ActionTypeAsString"] = "actionTypeAsString"; - // DPI_ActiveTab, having type string - ParameterId["ActiveTab"] = "active_tab"; - // DPI_AddInId, having type string - ParameterId["AddInId"] = "addInId"; - // DPI_AddInstanceId, having type string - ParameterId["AddInstanceId"] = "addInInstanceId"; - // DPI_AddInName, having type string - ParameterId["AddInName"] = "addInName"; - // DPI_AddInLocale, having type string - ParameterId["AddInLocale"] = "addInLocale"; - // DPI_AddInLanguage, having type string - ParameterId["AddInLanguage"] = "addInLanguage"; - // DPI_APIVersion, having type string - ParameterId["APIVersion"] = "apiVersion"; - // DPI_Alias, having type string - ParameterId["Alias"] = "alias"; - // DPI_AnchorDate, having type string - ParameterId["AnchorDate"] = "anchorDate"; - // DPI_AnnotationRes, having type string - ParameterId["AnnotationRes"] = "annotationRes"; - // DPI_ReadId, having type string - ParameterId["ReadId"] = "readId"; - // DPI_AnnotationText, having type string - ParameterId["AnnotationText"] = "annotationText"; - // DPI_ArchiveDirectory, having type string - ParameterId["ArchiveDirectory"] = "archiveDirectory"; - // DPI_ArchiveFullPath, having type string - ParameterId["ArchiveFullPath"] = "archiveFullPath"; - // DPI_AtTheLevelInvalidFieldCaption, having type string - ParameterId["AtTheLevelInvalidFieldCaption"] = "atTheLevelInvalidFieldCaption"; - // DPI_AutoCompleteSubstring, having type string - ParameterId["AutoCompleteSubstring"] = "acSubstring"; - // DPI_AutosaveFileId, having type string - ParameterId["AutosaveFileId"] = "autosaveFileId"; - // DPI_AutosaveTimerInterval, having type string - ParameterId["AutosaveTimerInterval"] = "autosaveTimerInterval"; - // DPI_BaseColumnCaption, having type string - ParameterId["BaseColumnCaption"] = "baseColumnCaption"; - // DPI_ClearButtonText, having type string - ParameterId["ClearButtonText"] = "clearButtonText"; - // DPI_ColorPaletteId, having type string - ParameterId["ColorPaletteId"] = "colorPaletteId"; - // DPI_ColorPaletteName, having type string - ParameterId["ColorPaletteName"] = "colorPaletteName"; - // DPI_ColorSwatch, having type string - ParameterId["ColorSwatch"] = "colorSwatch"; - // DPI_CommandName, having type string - ParameterId["CommandName"] = "commandName"; - // DPI_ConfidenceLevelValue, having type string - ParameterId["ConfidenceLevelValue"] = "confidenceLevelValue"; - // DPI_CountDistinctStr, having type string - ParameterId["CountDistinctStr"] = "countDistinctStr"; - // DPI_CSSMargin, having type string - ParameterId["CSSMargin"] = "cssMargin"; - // DPI_CSSWhitespace, having type string - ParameterId["CSSWhitespace"] = "cssWhitespace"; - // DPI_DBPassword, having type string - ParameterId["DBPassword"] = "dbPassword"; - // DPI_DBUsername, having type string - ParameterId["DBUsername"] = "dbUsername"; - // DPI_DataAlertConditionText, having type string - ParameterId["DataAlertConditionText"] = "dataAlertConditionText"; - // DPI_DataAlertMeasureText, having type string - ParameterId["DataAlertMeasureText"] = "dataAlertMeasureText"; - // DPI_DataAlertSpecSerializedText, having type string - ParameterId["DataAlertSpecSerializedText"] = "dataAlertSpecSerializedText"; - // DPI_DataAlertDefaultSubject, having type string - ParameterId["DataAlertDefaultSubject"] = "dataAlertDefaultSubject"; - // DPI_DataAlertThresholdText, having type string - ParameterId["DataAlertThresholdText"] = "dataAlertThresholdText"; - // DPI_DataGridSortColumnName, having type string - ParameterId["DataGridSortColumnName"] = "datagridSortColumnName"; - // DPI_DataServerConnectionError, having type string - ParameterId["DataServerConnectionError"] = "dataServerConnectionError"; - // DPI_DatabaseFilter, having type string - ParameterId["DatabaseFilter"] = "databaseFilter"; - // DPI_DatabaseFilterPrompt, having type string - ParameterId["DatabaseFilterPrompt"] = "databaseFilterPrompt"; - // DPI_DatasourceRanking, having type string - ParameterId["DatasourceRanking"] = "datasourceRanking"; - // DPI_DatasourceUrl, having type string - ParameterId["DatasourceUrl"] = "datasourceUrl"; - // DPI_DatasourceUsername, having type string - ParameterId["DatasourceUsername"] = "datasourceUsername"; - // DPI_DateFormat, having type string - ParameterId["DateFormat"] = "dateFormat"; - // DPI_DatePart, having type string - ParameterId["DatePart"] = "datePart"; - // DPI_DatePartAbbrev, having type string - ParameterId["DatePartAbbrev"] = "datePartAbbrev"; - // DPI_DefaultHierarchyName, having type string - ParameterId["DefaultHierarchyName"] = "defaultHierarchyName"; - // DPI_Delimiter, having type string - ParameterId["Delimiter"] = "delimiter"; - // DPI_DeviceName, having type string - ParameterId["DeviceName"] = "deviceName"; - // DPI_DeviceType, having type string - ParameterId["DeviceType"] = "deviceType"; - // DPI_DisplayPath, having type string - ParameterId["DisplayPath"] = "displayPath"; - // DPI_DistributionValueString, having type string - ParameterId["DistributionValueString"] = "distributionValueString"; - // DPI_DrillPathName, having type string - ParameterId["DrillPathName"] = "drillPathName"; - // DPI_EmbeddedTitle, having type string - ParameterId["EmbeddedTitle"] = "embeddedTitle"; - // DPI_EnterValueText, having type string - ParameterId["EnterValueText"] = "enterValueText"; - // DPI_EscapeString, having type string - ParameterId["EscapeString"] = "escapeString"; - // DPI_ExtSvcConfigHost, having type string - ParameterId["ExtSvcConfigHost"] = "extSvcConfigHost"; - // DPI_ExtSvcConfigPassword, having type string - ParameterId["ExtSvcConfigPassword"] = "extSvcConfigPassword"; - // DPI_ExtSvcConfigPort, having type string - ParameterId["ExtSvcConfigPort"] = "extSvcConfigPort"; - // DPI_ExtSvcConfigConnectTimeout, having type string - ParameterId["ExtSvcConfigConnectTimeout"] = "extSvcConnectTimeout"; - // DPI_ExtSvcConfigPrevHost, having type string - ParameterId["ExtSvcConfigPrevHost"] = "extSvcConfigPrevHost"; - // DPI_ExtSvcConfigUsername, having type string - ParameterId["ExtSvcConfigUsername"] = "extSvcConfigUsername"; - // DPI_ExtractUpdateTime, having type string - ParameterId["ExtractUpdateTime"] = "extractUpdateTime"; - // DPI_FieldFolderName, having type string - ParameterId["FieldFolderName"] = "fieldFolderName"; - // DPI_FieldNameString, having type string - ParameterId["FieldNameString"] = "fieldName"; - // DPI_FilterSearchDomain, having type string - ParameterId["FilterSearchDomain"] = "filterSearchDomain"; - // DPI_FilterSpec, having type string - ParameterId["FilterSpec"] = "filterSpec"; - // DPI_FirstValue, having type string - ParameterId["FirstValue"] = "firstValue"; - // DPI_FolderName, having type string - ParameterId["FolderName"] = "folderName"; - // DPI_FontName, having type string - ParameterId["FontName"] = "fontName"; - // DPI_FormatString, having type string - ParameterId["FormatString"] = "formatString"; - // DPI_FormattedIncrementValue, having type string - ParameterId["FormattedIncrementValue"] = "formattedIncrement"; - // DPI_FormattedMaxValue, having type string - ParameterId["FormattedMaxValue"] = "formattedMax"; - // DPI_FormattedMinValue, having type string - ParameterId["FormattedMinValue"] = "formattedMin"; - // DPI_FormattedValue, having type string - ParameterId["FormattedValue"] = "formattedValue"; - // DPI_FormattedCenterValue, having type string - ParameterId["FormattedCenterValue"] = "formattedCenter"; - // DPI_FormattedEndValue, having type string - ParameterId["FormattedEndValue"] = "formattedEnd"; - // DPI_FormattedStartValue, having type string - ParameterId["FormattedStartValue"] = "formattedStart"; - // DPI_PairedFormattedValue, having type string - ParameterId["PairedFormattedValue"] = "pairedFormattedValue"; - // DPI_FrameAttributes, having type string - ParameterId["FrameAttributes"] = "frameAttr"; - // DPI_GUID, having type string - ParameterId["GUID"] = "guid"; - // DPI_GeographicSearchCandidateDisplayName, having type string - ParameterId["GeographicSearchCandidateDisplayName"] = "geographicSearchCandidateDisplayName"; - // DPI_GeographicSearchCandidateParentName, having type string - ParameterId["GeographicSearchCandidateParentName"] = "geographicSearchCandidateParentName"; - // DPI_GeographicSearchCandidateType, having type string - ParameterId["GeographicSearchCandidateType"] = "geographicSearchCandidateType"; - // DPI_GeographicSearchLocale, having type string - ParameterId["GeographicSearchLocale"] = "geographicSearchLocale"; - // DPI_GeographicSearchQueryString, having type string - ParameterId["GeographicSearchQueryString"] = "geographicSearchSearchString"; - // DPI_GeographicSearchUILocale, having type string - ParameterId["GeographicSearchUILocale"] = "geographicSearchUilocale"; - // DPI_IconRes, having type string - ParameterId["IconRes"] = "iconRes"; - // DPI_ImageHash, having type string - ParameterId["ImageHash"] = "imageHash"; - // DPI_ImageName, having type string - ParameterId["ImageName"] = "imageName"; - // DPI_ImageRes, having type string - ParameterId["ImageRes"] = "imageRes"; - // DPI_IncludesSiblingsPrompt, having type string - ParameterId["IncludesSiblingsPrompt"] = "includesSiblingsPrompt"; - // DPI_IncludesSubfoldersPrompt, having type string - ParameterId["IncludesSubfoldersPrompt"] = "includesSubfoldersPrompt"; - // DPI_IncrementalScheduleIDs, having type string - ParameterId["IncrementalScheduleIDs"] = "incrementalScheduleIds"; - // DPI_InvariantKeyword, having type string - ParameterId["InvariantKeyword"] = "invariantKeyword"; - // DPI_JoinOperator, having type string - ParameterId["JoinOperator"] = "joinOperator"; - // DPI_JoinExpression, having type string - ParameterId["JoinExpression"] = "joinExpression"; - // DPI_Label, having type string - ParameterId["Label"] = "label"; - // DPI_PairedLabel, having type string - ParameterId["PairedLabel"] = "pairedLabel"; - // DPI_LayoutID, having type string - ParameterId["LayoutID"] = "layoutId"; - // DPI_LeftJoinExpression, having type string - ParameterId["LeftJoinExpression"] = "leftJoinExpression"; - // DPI_LimitCountExpression, having type string - ParameterId["LimitCountExpression"] = "limitCountExpression"; - // DPI_LinkTarget, having type string - ParameterId["LinkTarget"] = "linkTarget"; - // DPI_Locale, having type string - ParameterId["Locale"] = "locale"; - // DPI_LocalizedKeyword, having type string - ParameterId["LocalizedKeyword"] = "localizedKeyword"; - // DPI_MapBoxGLStyleId, having type string - ParameterId["MapBoxGLStyleId"] = "mapboxGlStyleId"; - // DPI_MapBoxStyleUrl, having type string - ParameterId["MapBoxStyleUrl"] = "mapboxStyleUrl"; - // DPI_MapBoxUsername, having type string - ParameterId["MapBoxUsername"] = "mapboxUsername"; - // DPI_MapScaleReadoutString, having type string - ParameterId["MapScaleReadoutString"] = "mapScaleReadoutString"; - // DPI_MapScaleTooltipString, having type string - ParameterId["MapScaleTooltipString"] = "mapScaleTooltipString"; - // DPI_MapSourceName, having type string - ParameterId["MapSourceName"] = "mapSourceName"; - // DPI_MaxLabel, having type string - ParameterId["MaxLabel"] = "maxLabel"; - // DPI_MinLabel, having type string - ParameterId["MinLabel"] = "minLabel"; - // DPI_ModelDescriptionParagraph, having type string - ParameterId["ModelDescriptionParagraph"] = "modelDescriptionParagraph"; - // DPI_NameTemplate, having type string - ParameterId["NameTemplate"] = "nameTemplate"; - // DPI_NewDrillPath, having type string - ParameterId["NewDrillPath"] = "newDrillPath"; - // DPI_NewFieldFolderName, having type string - ParameterId["NewFieldFolderName"] = "newFieldFolderName"; - // DPI_NewTableAlias, having type string - ParameterId["NewTableAlias"] = "newTableAlias"; - // DPI_NonFormattedValue, having type string - ParameterId["NonFormattedValue"] = "unformattedValue"; - // DPI_OAuthUserName, having type string - ParameterId["OAuthUserName"] = "oauthUsername"; - // DPI_ObjectName, having type string - ParameterId["ObjectName"] = "objectName"; - // DPI_ObjectOverrideMessage, having type string - ParameterId["ObjectOverrideMessage"] = "objectOverrideMessage"; - // DPI_OldTableAlias, having type string - ParameterId["OldTableAlias"] = "oldTableAlias"; - // DPI_OperatingSystem, having type string - ParameterId["OperatingSystem"] = "operatingSystem"; - // DPI_OriginalFilePath, having type string - ParameterId["OriginalFilePath"] = "originalFilePath"; - // DPI_OriginalFileVersion, having type string - ParameterId["OriginalFileVersion"] = "originalFileVersion"; - // DPI_PaneDescriptorKey, having type string - ParameterId["PaneDescriptorKey"] = "paneDescrKey"; - // DPI_ParentName, having type string - ParameterId["ParentName"] = "parentName"; - // DPI_ParentTable, having type string - ParameterId["ParentTable"] = "parentTable"; - // DPI_PatternFilterString, having type string - ParameterId["PatternFilterString"] = "patternFilterString"; - // DPI_PendingCalcName, having type string - ParameterId["PendingCalcName"] = "pendingCalcName"; - // DPI_PercentilesString, having type string - ParameterId["PercentilesString"] = "percentilesString"; - // DPI_ProjectName, having type string - ParameterId["ProjectName"] = "projectName"; - // DPI_PropertyName, having type string - ParameterId["PropertyName"] = "propertyName"; - // DPI_QuickFilterTitleCaption, having type string - ParameterId["QuickFilterTitleCaption"] = "quickFilterTitleCaption"; - // DPI_RangeDiffStr, having type string - ParameterId["RangeDiffStr"] = "diffValue"; - // DPI_RangeMaxStr, having type string - ParameterId["RangeMaxStr"] = "maxValue"; - // DPI_RangeMinStr, having type string - ParameterId["RangeMinStr"] = "minValue"; - // DPI_RecoveredFilePath, having type string - ParameterId["RecoveredFilePath"] = "recoveredFilePath"; - // DPI_ReferenceLineSpecificationId, having type string - ParameterId["ReferenceLineSpecificationId"] = "referenceLineId"; - // DPI_ReplaceFieldPrompt, having type string - ParameterId["ReplaceFieldPrompt"] = "replaceFieldPrompt"; - // DPI_RightJoinExpression, having type string - ParameterId["RightJoinExpression"] = "rightJoinExpression"; - // DPI_RootPath, having type string - ParameterId["RootPath"] = "rootPath"; - // DPI_RuntimeFinalDatastore, having type string - ParameterId["RuntimeFinalDatastore"] = "runtimeFinalDatastore"; - // DPI_RuntimeInitialDatastore, having type string - ParameterId["RuntimeInitialDatastore"] = "runtimeInitialDatastore"; - // DPI_RuntimeVTL, having type string - ParameterId["RuntimeVTL"] = "runtimeVtl"; - // DPI_SampleDataString, having type string - ParameterId["SampleDataString"] = "sampleData"; - // DPI_ScheduleIDs, having type string - ParameterId["ScheduleIDs"] = "scheduleIds"; - // DPI_SchemaFieldIconResource, having type string - ParameterId["SchemaFieldIconResource"] = "fieldIconRes"; - // DPI_ScreenName, having type string - ParameterId["ScreenName"] = "screenName"; - // DPI_ScriptCommand, having type string - ParameterId["ScriptCommand"] = "command"; - // DPI_SecondValue, having type string - ParameterId["SecondValue"] = "secondValue"; - // DPI_SelectedValue, having type string - ParameterId["SelectedValue"] = "selectedValue"; - // DPI_ShapeName, having type string - ParameterId["ShapeName"] = "shapeName"; - // DPI_SheetId, having type string - ParameterId["SheetId"] = "sheetId"; - // DPI_ShowDataTable, having type string - ParameterId["ShowDataTable"] = "showDataTable"; - // DPI_SimpleCommand, having type string - ParameterId["SimpleCommand"] = "simpleCommand"; - // DPI_SortModeCaption, having type string - ParameterId["SortModeCaption"] = "sortModeCaption"; - // DPI_SourceName, having type string - ParameterId["SourceName"] = "sourceName"; - // DPI_SourceText, having type string - ParameterId["SourceText"] = "sourceText"; - // DPI_SpecialValueText, having type string - ParameterId["SpecialValueText"] = "specialValueText"; - // DPI_StaticImage, having type string - ParameterId["StaticImage"] = "staticImage"; - // DPI_StoryPointBase, having type string - ParameterId["StoryPointBase"] = "storyPointBase"; - // DPI_StoryPointCaption, having type string - ParameterId["StoryPointCaption"] = "storyPointCaption"; - // DPI_Storyboard, having type string - ParameterId["Storyboard"] = "storyboard"; - // DPI_StyledLabel, having type string - ParameterId["StyledLabel"] = "styledLabel"; - // DPI_SummaryCaption, having type string - ParameterId["SummaryCaption"] = "summaryCaption"; - // DPI_SummaryField, having type string - ParameterId["SummaryField"] = "summaryField"; - // DPI_TableauVersion, having type string - ParameterId["TableauVersion"] = "tableauVersion"; - // DPI_TableFilter, having type string - ParameterId["TableFilter"] = "tableFilter"; - // DPI_TableFilterPrompt, having type string - ParameterId["TableFilterPrompt"] = "tableFilterPrompt"; - // DPI_TagsLabel, having type string - ParameterId["TagsLabel"] = "tagsLabel"; - // DPI_Target, having type string - ParameterId["Target"] = "target"; - // DPI_ThumbnailGroup, having type string - ParameterId["ThumbnailGroup"] = "thumbnailGroup"; - // DPI_ThumbnailUser, having type string - ParameterId["ThumbnailUser"] = "thumbnailUser"; - // DPI_TimeFormat, having type string - ParameterId["TimeFormat"] = "timeFormat"; - // DPI_TrendLineErrorString, having type string - ParameterId["TrendLineErrorString"] = "trendLineErrorString"; - // DPI_TrendLineModelFormula, having type string - ParameterId["TrendLineModelFormula"] = "trendLineModelFormula"; - // DPI_URLString, having type string - ParameterId["URLString"] = "urlString"; - // DPI_URLTest, having type string - ParameterId["URLTest"] = "urlTest"; - // DPI_ValidationMessage, having type string - ParameterId["ValidationMessage"] = "validationMessage"; - // DPI_ValueStr, having type string - ParameterId["ValueStr"] = "valueString"; - // DPI_VerifiedNonFormattedValue, having type string - ParameterId["VerifiedNonFormattedValue"] = "verifiedUnformattedValue"; - // DPI_WorkbookFullPath, having type string - ParameterId["WorkbookFullPath"] = "workbookFullPath"; - // DPI_WindowTitle, having type string - ParameterId["WindowTitle"] = "windowTitle"; - // DPI_ZoneName, having type string - ParameterId["ZoneName"] = "zoneName"; - // DPI_ZoneParam, having type string - ParameterId["ZoneParam"] = "zoneParam"; - // DPI_DataAlertErrorText, having type string - ParameterId["DataAlertErrorText"] = "dataAlertErrorText"; - // DPI_ExtractTempDirectory, having type string - ParameterId["ExtractTempDirectory"] = "extractTempDir"; - // DPI_DSSubClass, having type string - ParameterId["DSSubClass"] = "dsSubClass"; - // DPI_DbgCommandLine, having type string - ParameterId["DbgCommandLine"] = "debugCommandLine"; - // DPI_DbgLogPath, having type string - ParameterId["DbgLogPath"] = "debugLogPath"; - // DPI_DbgOSVersion, having type string - ParameterId["DbgOSVersion"] = "debugOsVersion"; - // DPI_DbgUserName, having type string - ParameterId["DbgUserName"] = "debugUsername"; - // DPI_ErrorMsg, having type string - ParameterId["ErrorMsg"] = "errorMessage"; - // DPI_ErrorStr, having type string - ParameterId["ErrorStr"] = "errorString"; - // DPI_EventMessage, having type string - ParameterId["EventMessage"] = "eventMessage"; - // DPI_EventTimestamp, having type string - ParameterId["EventTimestamp"] = "eventTimestamp"; - // DPI_ExtractDeltaPath, having type string - ParameterId["ExtractDeltaPath"] = "extractDeltaPath"; - // DPI_ExtractPath, having type string - ParameterId["ExtractPath"] = "extractPath"; - // DPI_ExtractSuggestedPath, having type string - ParameterId["ExtractSuggestedPath"] = "suggestedExtractPath"; - // DPI_ExtractTaskSummary, having type string - ParameterId["ExtractTaskSummary"] = "extractTaskSummary"; - // DPI_FactorsString, having type string - ParameterId["FactorsString"] = "factorsStr"; - // DPI_FormattedFamilyName, having type string - ParameterId["FormattedFamilyName"] = "formattedFamilyName"; - // DPI_FunctionSignature, having type string - ParameterId["FunctionSignature"] = "funcSig"; - // DPI_FunctionTooltip, having type string - ParameterId["FunctionTooltip"] = "funcTooltip"; - // DPI_HelpContents, having type string - ParameterId["HelpContents"] = "helpContents"; - // DPI_MapAttributionText, having type string - ParameterId["MapAttributionText"] = "mapAttributionText"; - // DPI_MapAttributionTextSize, having type string - ParameterId["MapAttributionTextSize"] = "mapAttributionTextSize"; - // DPI_MapAttributionUrl, having type string - ParameterId["MapAttributionUrl"] = "mapAttributionUrl"; - // DPI_MapBoxErrorMessage, having type string - ParameterId["MapBoxErrorMessage"] = "mapboxErrorMessage"; - // DPI_MapBoxOldStyleName, having type string - ParameterId["MapBoxOldStyleName"] = "mapboxOldStyleName"; - // DPI_MapBoxSelectedStyle, having type string - ParameterId["MapBoxSelectedStyle"] = "mapboxSelectedStyle"; - // DPI_MapBoxStyleName, having type string - ParameterId["MapBoxStyleName"] = "mapboxStyleName"; - // DPI_MapLayerRequest, having type string - ParameterId["MapLayerRequest"] = "mapLayerRequest"; - // DPI_MapServerKey, having type string - ParameterId["MapServerKey"] = "mapServerKey"; - // DPI_MapTileServer, having type string - ParameterId["MapTileServer"] = "mapTileServer"; - // DPI_MapTileUrl, having type string - ParameterId["MapTileUrl"] = "mapTileUrl"; - // DPI_PercentagesString, having type string - ParameterId["PercentagesString"] = "percentagesStr"; - // DPI_PublishErrorMessage, having type string - ParameterId["PublishErrorMessage"] = "publishErrorMessage"; - // DPI_TdePath, having type string - ParameterId["TdePath"] = "tdePath"; - // DPI_UIAutomationComponentName, having type string - ParameterId["UIAutomationComponentName"] = "uiAutomationComponentName"; - // DPI_UIAutomationEndTime, having type string - ParameterId["UIAutomationEndTime"] = "uiAutomationEndTime"; - // DPI_UIAutomationName, having type string - ParameterId["UIAutomationName"] = "uiAutomationName"; - // DPI_UIAutomationStartTime, having type string - ParameterId["UIAutomationStartTime"] = "uiAutomationStartTime"; - // DPI_UIAutomationValue, having type string - ParameterId["UIAutomationValue"] = "uiAutomationValue"; - // DPI_WMSConnectionName, having type string - ParameterId["WMSConnectionName"] = "wmsConnectionName"; - // DPI_WMSOldConnectionName, having type string - ParameterId["WMSOldConnectionName"] = "wmsOldConnectionName"; - // DPI_WMSServerUrl, having type string - ParameterId["WMSServerUrl"] = "wmsServerUrl"; - // DPI_AboutBuildVersion, having type string - ParameterId["AboutBuildVersion"] = "aboutBuildVersion"; - // DPI_ActionFields, having type string - ParameterId["ActionFields"] = "actionFields"; - // DPI_AddVariableLabel, having type string - ParameterId["AddVariableLabel"] = "addVariableLabel"; - // DPI_AddVariableTooltip, having type string - ParameterId["AddVariableTooltip"] = "addVariableTooltip"; - // DPI_AllowedDataSourcesByName, having type string - ParameterId["AllowedDataSourcesByName"] = "allowedDataSourcesByName"; - // DPI_AppAboutVersion, having type string - ParameterId["AppAboutVersion"] = "appAboutVersion"; - // DPI_AppBuildBranchName, having type string - ParameterId["AppBuildBranchName"] = "appBuildBranchName"; - // DPI_AppBuildVersion, having type string - ParameterId["AppBuildVersion"] = "appBuildVersion"; - // DPI_AppExternalVersion, having type string - ParameterId["AppExternalVersion"] = "appExternalVersion"; - // DPI_AppName, having type string - ParameterId["AppName"] = "appName"; - // DPI_AppProductVersion, having type string - ParameterId["AppProductVersion"] = "appProductVersion"; - // DPI_OriginalVersion, having type string - ParameterId["OriginalVersion"] = "originalVersion"; - // DPI_AtTheLevelSpecialCaption, having type string - ParameterId["AtTheLevelSpecialCaption"] = "atTheLevelSpecialCaption"; - // DPI_AutoCompleteCalc, having type string - ParameterId["AutoCompleteCalc"] = "acCalc"; - // DPI_CallToAction, having type string - ParameterId["CallToAction"] = "callToAction"; - // DPI_CSVPath, having type string - ParameterId["CSVPath"] = "csvPath"; - // DPI_CommandNamespace, having type string - ParameterId["CommandNamespace"] = "commandNamespace"; - // DPI_Condition, having type string - ParameterId["Condition"] = "condition"; - // DPI_ConditionSummary, having type string - ParameterId["ConditionSummary"] = "conditionSummary"; - // DPI_ConfirmationMsg, having type string - ParameterId["ConfirmationMsg"] = "confirmationMsg"; - // DPI_DashboardTypeText, having type string - ParameterId["DashboardTypeText"] = "dashboardType"; - // DPI_DataserverPublicAddress, having type string - ParameterId["DataserverPublicAddress"] = "dataserverPublicAddress"; - // DPI_DatasourceFileName, having type string - ParameterId["DatasourceFileName"] = "datasourceFileName"; - // DPI_DecimalMark, having type string - ParameterId["DecimalMark"] = "decimalMark"; - // DPI_DeleteVariableTooltip, having type string - ParameterId["DeleteVariableTooltip"] = "deleteVariableTooltip"; - // DPI_DialogTitle, having type string - ParameterId["DialogTitle"] = "dialogTitle"; - // DPI_DisplayValue, having type string - ParameterId["DisplayValue"] = "displayValue"; - // DPI_TooltipValue, having type string - ParameterId["TooltipValue"] = "tooltipValue"; - // DPI_DstPath, having type string - ParameterId["DstPath"] = "dstPath"; - // DPI_EditWidgetHeader, having type string - ParameterId["EditWidgetHeader"] = "editWidgetHeader"; - // DPI_EditWidgetInstruction, having type string - ParameterId["EditWidgetInstruction"] = "editWidgetInstruction"; - // DPI_EndSelectionCaption, having type string - ParameterId["EndSelectionCaption"] = "endSelectionCaption"; - // DPI_ErrorDialogTitle, having type string - ParameterId["ErrorDialogTitle"] = "errorDialogTitle"; - // DPI_ErrorHelpLink, having type string - ParameterId["ErrorHelpLink"] = "errorHelpLink"; - // DPI_FilterSearchQuery, having type string - ParameterId["FilterSearchQuery"] = "filterSearchQuery"; - // DPI_FromLabel, having type string - ParameterId["FromLabel"] = "fromLabel"; - // DPI_FunctionHelp, having type string - ParameterId["FunctionHelp"] = "functionHelp"; - // DPI_Instructions, having type string - ParameterId["Instructions"] = "instructions"; - // DPI_LargeUnitDisplay, having type string - ParameterId["LargeUnitDisplay"] = "largeUnitDisplay"; - // DPI_Limit, having type string - ParameterId["Limit"] = "limit"; - // DPI_ListViewNameLabel, having type string - ParameterId["ListViewNameLabel"] = "listViewNameLabel"; - // DPI_ListViewValueLabel, having type string - ParameterId["ListViewValueLabel"] = "listViewValueLabel"; - // DPI_MapScaleReadoutUnit, having type string - ParameterId["MapScaleReadoutUnit"] = "mapScaleReadoutUnit"; - // DPI_MeasureDimension, having type string - ParameterId["MeasureDimension"] = "measuresDimension"; - // DPI_MimeType, having type string - ParameterId["MimeType"] = "mimeType"; - // DPI_MinimizedName, having type string - ParameterId["MinimizedName"] = "minName"; - // DPI_NotificationMsg, having type string - ParameterId["NotificationMsg"] = "notificationMsg"; - // DPI_OperationName, having type string - ParameterId["OperationName"] = "operationName"; - // DPI_PageTitle, having type string - ParameterId["PageTitle"] = "pageTitle"; - // DPI_PatternSummary, having type string - ParameterId["PatternSummary"] = "patternSummary"; - // DPI_ReferenceLineId, having type string - ParameterId["ReferenceLineId"] = "refLineId"; - // DPI_ReferenceLinePairedId, having type string - ParameterId["ReferenceLinePairedId"] = "refLinePairedId"; - // DPI_ReplaceText, having type string - ParameterId["ReplaceText"] = "replaceText"; - // DPI_RequiredVariableMessage, having type string - ParameterId["RequiredVariableMessage"] = "requiredVariableMessage"; - // DPI_RestartEverySpecialCaption, having type string - ParameterId["RestartEverySpecialCaption"] = "restartEverySpecialCaption"; - // DPI_Root, having type string - ParameterId["Root"] = "root"; - // DPI_SelectionSummary, having type string - ParameterId["SelectionSummary"] = "selectionSummary"; - // DPI_SessionAttributeKey, having type string - ParameterId["SessionAttributeKey"] = "sessionAttributeKey"; - // DPI_SessionAttributeValue, having type string - ParameterId["SessionAttributeValue"] = "sessionAttributeValue"; - // DPI_SheetAttributeKey, having type string - ParameterId["SheetAttributeKey"] = "baseSheetAttributeKey"; - // DPI_SheetAttributeValue, having type string - ParameterId["SheetAttributeValue"] = "baseSheetAttributeValue"; - // DPI_SmallUnitDisplay, having type string - ParameterId["SmallUnitDisplay"] = "smallUnitDisplay"; - // DPI_SourceCaption, having type string - ParameterId["SourceCaption"] = "sourceCaption"; - // DPI_SrcPath, having type string - ParameterId["SrcPath"] = "srcPath"; - // DPI_StartSelectionCaption, having type string - ParameterId["StartSelectionCaption"] = "startSelectionCaption"; - // DPI_Subtitle, having type string - ParameterId["Subtitle"] = "subtitle"; - // DPI_TableauServerSiteName, having type string - ParameterId["TableauServerSiteName"] = "tableauServerSiteName"; - // DPI_TargetCaption, having type string - ParameterId["TargetCaption"] = "targetCaption"; - // DPI_ThumbnailPath, having type string - ParameterId["ThumbnailPath"] = "thumbnailPath"; - // DPI_ToLabel, having type string - ParameterId["ToLabel"] = "toLabel"; - // DPI_URLAddress, having type string - ParameterId["URLAddress"] = "urlAddress"; - // DPI_ValuesTableHeader, having type string - ParameterId["ValuesTableHeader"] = "valuesTableHeader"; - // DPI_ValuesTableHeader2, having type string - ParameterId["ValuesTableHeader2"] = "valuesTableHeader2"; - // DPI_VariableDescription, having type string - ParameterId["VariableDescription"] = "variableDescription"; - // DPI_VariableDisplayName, having type string - ParameterId["VariableDisplayName"] = "variableDisplayName"; - // DPI_VariableGUID, having type string - ParameterId["VariableGUID"] = "variableGuid"; - // DPI_VerboseName, having type string - ParameterId["VerboseName"] = "verboseName"; - // DPI_ViewId, having type string - ParameterId["ViewId"] = "viewId"; - // DPI_Warning1, having type string - ParameterId["Warning1"] = "warning1"; - // DPI_Warning2, having type string - ParameterId["Warning2"] = "warning2"; - // DPI_RefreshToken, having type string - ParameterId["RefreshToken"] = "refresh_token"; - // DPI_TokenType, having type string - ParameterId["TokenType"] = "token_type"; - // DPI_XSRFToken, having type string - ParameterId["XSRFToken"] = "xsrf_token"; - // DPI_AxisSubtitle, having type string - ParameterId["AxisSubtitle"] = "axisSubtitle"; - // DPI_AxisTitle, having type string - ParameterId["AxisTitle"] = "axisTitle"; - // DPI_TickMarkOriginDataValue, having type string - ParameterId["TickMarkOriginDataValue"] = "tickMarkOriginDataValue"; - // DPI_TickMarkSpacingDataValue, having type string - ParameterId["TickMarkSpacingDataValue"] = "tickMarkSpacingDataValue"; - // DPI_ExtractActionLocalized, having type string - ParameterId["ExtractActionLocalized"] = "extractActionLocalized"; - // DPI_ExtractSource, having type string - ParameterId["ExtractSource"] = "extractSource"; - // DPI_FileContents, having type string - ParameterId["FileContents"] = "fileContents"; - // DPI_SaveImagePath, having type string - ParameterId["SaveImagePath"] = "saveImagePath"; - // DPI_WidgetUID, having type string - ParameterId["WidgetUID"] = "widgetUniqueId"; - // DPI_DatePropertiesDisplayText, having type string - ParameterId["DatePropertiesDisplayText"] = "datePropertiesDisplayText"; - // DPI_DatePropertiesHelperText, having type string - ParameterId["DatePropertiesHelperText"] = "datePropertiesHelperText"; - // DPI_EventName, having type string - ParameterId["EventName"] = "eventName"; - // DPI_ExceptionType, having type string - ParameterId["ExceptionType"] = "exceptionType"; - // DPI_SearchPlaceholder, having type string - ParameterId["SearchPlaceholder"] = "searchPlaceholder"; - // DPI_TargetVersion, having type string - ParameterId["TargetVersion"] = "targetVersion"; - // DPI_DataValueDisplayString, having type string - ParameterId["DataValueDisplayString"] = "dataValueDisplayString"; - // DPI_DomainString, having type string - ParameterId["DomainString"] = "domainString"; - // DPI_RawDataValueString, having type string - ParameterId["RawDataValueString"] = "rawDataValueString"; - // DPI_RichTextDialogTitle, having type string - ParameterId["RichTextDialogTitle"] = "richTextDialogTitle"; - // DPI_RichTextContent, having type string - ParameterId["RichTextContent"] = "richTextContent"; - // DPI_MarkSizeAsString, having type string - ParameterId["MarkSizeAsString"] = "markSizeAsString"; - // DPI_UnitsLabel, having type string - ParameterId["UnitsLabel"] = "unitsLabel"; - // DPI_EmailAddress, having type string - ParameterId["EmailAddress"] = "emailAddress"; - // DPI_FirstName, having type string - ParameterId["FirstName"] = "firstName"; - // DPI_LastName, having type string - ParameterId["LastName"] = "lastName"; - // DPI_SummaryCardAvg, having type string - ParameterId["SummaryCardAvg"] = "summaryCardAvg"; - // DPI_SummaryCardCaption, having type string - ParameterId["SummaryCardCaption"] = "summaryCardCaption"; - // DPI_SummaryCardCount, having type string - ParameterId["SummaryCardCount"] = "summaryCardCount"; - // DPI_SummaryCardKurtosis, having type string - ParameterId["SummaryCardKurtosis"] = "summaryCardKurtosis"; - // DPI_SummaryCardMax, having type string - ParameterId["SummaryCardMax"] = "summaryCardMax"; - // DPI_SummaryCardMedian, having type string - ParameterId["SummaryCardMedian"] = "summaryCardMedian"; - // DPI_SummaryCardMin, having type string - ParameterId["SummaryCardMin"] = "summaryCardMin"; - // DPI_SummaryCardQuart1, having type string - ParameterId["SummaryCardQuart1"] = "summaryCardQuart1"; - // DPI_SummaryCardQuart3, having type string - ParameterId["SummaryCardQuart3"] = "summaryCardQuart3"; - // DPI_SummaryCardSkewness, having type string - ParameterId["SummaryCardSkewness"] = "summaryCardSkewness"; - // DPI_SummaryCardStdev, having type string - ParameterId["SummaryCardStdev"] = "summaryCardStdev"; - // DPI_SummaryCardSum, having type string - ParameterId["SummaryCardSum"] = "summaryCardSum"; - // DPI_ValueClassAttr, having type string - ParameterId["ValueClassAttr"] = "valueClassAttr"; - // DPI_AuthenticationSummary, having type string - ParameterId["AuthenticationSummary"] = "authenticationSummary"; - // DPI_BtnCancelText, having type string - ParameterId["BtnCancelText"] = "btnCancelText"; - // DPI_BtnOkText, having type string - ParameterId["BtnOkText"] = "btnOkText"; - // DPI_ButtonText, having type string - ParameterId["ButtonText"] = "buttonText"; - // DPI_CalculationCaption, having type string - ParameterId["CalculationCaption"] = "calculationCaption"; - // DPI_CalculationDependencies, having type string - ParameterId["CalculationDependencies"] = "calculationDependencies"; - // DPI_CalculationFormula, having type string - ParameterId["CalculationFormula"] = "calculationFormula"; - // DPI_CheckPublishMessage, having type string - ParameterId["CheckPublishMessage"] = "checkPublishSummary"; - // DPI_ClusterModelText, having type string - ParameterId["ClusterModelText"] = "clusterModelText"; - // DPI_ClusterSummaryScaledText, having type string - ParameterId["ClusterSummaryScaledText"] = "clusterSummaryScaledText"; - // DPI_ClusterSummaryText, having type string - ParameterId["ClusterSummaryText"] = "clusterSummaryText"; - // DPI_ColumnCaption, having type string - ParameterId["ColumnCaption"] = "columnCaption"; - // DPI_DatasourceCaption, having type string - ParameterId["DatasourceCaption"] = "datasourceCaption"; - // DPI_DefaultCaption, having type string - ParameterId["DefaultCaption"] = "defaultCaption"; - // DPI_DisplayString, having type string - ParameterId["DisplayString"] = "displayText"; - // DPI_DragDescription, having type string - ParameterId["DragDescription"] = "dragDescription"; - // DPI_ExceptionMessage, having type string - ParameterId["ExceptionMessage"] = "exceptionMessage"; - // DPI_Explanation, having type string - ParameterId["Explanation"] = "explanation"; - // DPI_FieldCaption, having type string - ParameterId["FieldCaption"] = "fieldCaption"; - // DPI_FieldSummary, having type string - ParameterId["FieldSummary"] = "fieldSummary"; - // DPI_FieldSummaryLabel, having type string - ParameterId["FieldSummaryLabel"] = "fieldSummaryLabel"; - // DPI_FilterDescription, having type string - ParameterId["FilterDescription"] = "filterDescription"; - // DPI_FilterName, having type string - ParameterId["FilterName"] = "filterName"; - // DPI_ForecastDiagnoseText, having type string - ParameterId["ForecastDiagnoseText"] = "forecastDiagnoseText"; - // DPI_ForecastModelText, having type string - ParameterId["ForecastModelText"] = "forecastModelText"; - // DPI_ForecastSummaryPctText, having type string - ParameterId["ForecastSummaryPctText"] = "forecastSummaryPctText"; - // DPI_ForecastSummaryText, having type string - ParameterId["ForecastSummaryText"] = "forecastSummaryText"; - // DPI_HasActiveExtractText, having type string - ParameterId["HasActiveExtractText"] = "hasActiveExtractText"; - // DPI_HtmlColor, having type string - ParameterId["HtmlColor"] = "htmlColor"; - // DPI_IncludeLocalFilesCheckedWarning, having type string - ParameterId["IncludeLocalFilesCheckedWarning"] = "includeLocalFilesCheckedWarning"; - // DPI_IncludeLocalFilesWarning, having type string - ParameterId["IncludeLocalFilesWarning"] = "includeLocalFilesWarning"; - // DPI_InvalidFieldCaption, having type string - ParameterId["InvalidFieldCaption"] = "invalidFieldCaption"; - // DPI_LimitSummary, having type string - ParameterId["LimitSummary"] = "limitSummary"; - // DPI_LoadedExistingObjectWarning, having type string - ParameterId["LoadedExistingObjectWarning"] = "loadedExistingObjectWarning"; - // DPI_ManageDatasourcesSummary, having type string - ParameterId["ManageDatasourcesSummary"] = "manageDatasourcesSummary"; - // DPI_ModalDialog, having type string - ParameterId["ModalDialog"] = "modalDialog"; - // DPI_NewDatasourceCaption, having type string - ParameterId["NewDatasourceCaption"] = "newDatasourceCaption"; - // DPI_PermissionsButtonLabel, having type string - ParameterId["PermissionsButtonLabel"] = "permissionsButtonLabel"; - // DPI_PermissionsEditorRoleId, having type string - ParameterId["PermissionsEditorRoleId"] = "permissionsEditorRoleId"; - // DPI_PermissionsLabel, having type string - ParameterId["PermissionsLabel"] = "permissionsLabel"; - // DPI_PerspectiveCaption, having type string - ParameterId["PerspectiveCaption"] = "perspectiveCaption"; - // DPI_PublishButtonLabel, having type string - ParameterId["PublishButtonLabel"] = "publishButtonLabel"; - // DPI_PublishChoiceLabel, having type string - ParameterId["PublishChoiceLabel"] = "publishChoiceLabel"; - // DPI_PublishObjectViewsSummary, having type string - ParameterId["PublishObjectViewsSummary"] = "publishObjectViewsSummary"; - // DPI_QualifiedFieldCaption, having type string - ParameterId["QualifiedFieldCaption"] = "qualifiedFieldCaption"; - // DPI_RelationshipTooltipText, having type string - ParameterId["RelationshipTooltipText"] = "relationshipTooltipText"; - // DPI_ResetObjectAttributesWarning, having type string - ParameterId["ResetObjectAttributesWarning"] = "resetObjectAttributesWarning"; - // DPI_RowCountCaption, having type string - ParameterId["RowCountCaption"] = "rowCountCaption"; - // DPI_ServerCaption, having type string - ParameterId["ServerCaption"] = "serverCaption"; - // DPI_SizeModeName, having type string - ParameterId["SizeModeName"] = "sizeModeName"; - // DPI_SummaryText, having type string - ParameterId["SummaryText"] = "summaryText"; - // DPI_SyncClientUseExtractLabel, having type string - ParameterId["SyncClientUseExtractLabel"] = "syncClientUseExtractLabel"; - // DPI_Text, having type string - ParameterId["Text"] = "text"; - // DPI_TextDropdownControlLabel, having type string - ParameterId["TextDropdownControlLabel"] = "controlLabel"; - // DPI_ThumbnailUserName, having type string - ParameterId["ThumbnailUserName"] = "thumbnailUserName"; - // DPI_TitleString, having type string - ParameterId["TitleString"] = "titleString"; - // DPI_TooltipText, having type string - ParameterId["TooltipText"] = "tooltipText"; - // DPI_UpdatedCalcCaption, having type string - ParameterId["UpdatedCalcCaption"] = "updatedCalculationCaption"; - // DPI_UpdatedCalcFormula, having type string - ParameterId["UpdatedCalcFormula"] = "updatedCalculationFormula"; - // DPI_UserCaption, having type string - ParameterId["UserCaption"] = "userCaption"; - // DPI_WarningTooltipText, having type string - ParameterId["WarningTooltipText"] = "warningTooltipText"; - // DPI_DatasourceFile, having type string - ParameterId["DatasourceFile"] = "datasourceFile"; - // DPI_File, having type string - ParameterId["File"] = "file"; - // DPI_FileNameBase, having type string - ParameterId["FileNameBase"] = "filenameBase"; - // DPI_NewFile, having type string - ParameterId["NewFile"] = "newFile"; - // DPI_OriginalFile, having type string - ParameterId["OriginalFile"] = "originalFile"; - // DPI_OutputFile, having type string - ParameterId["OutputFile"] = "outputFile"; - // DPI_SampleFileName, having type string - ParameterId["SampleFileName"] = "sampleFilename"; - // DPI_WorkbookFile, having type string - ParameterId["WorkbookFile"] = "workbookFile"; - // DPI_ImageKey, having type string - ParameterId["ImageKey"] = "imageKey"; - // DPI_OverlayImageKey, having type string - ParameterId["OverlayImageKey"] = "overlayImageKey"; - // DPI_TempFileKey, having type string - ParameterId["TempFileKey"] = "tempfileKey"; - // DPI_CapturedSheet, having type string - ParameterId["CapturedSheet"] = "capturedSheet"; - // DPI_CurrentSheet, having type string - ParameterId["CurrentSheet"] = "currentSheet"; - // DPI_Dashboard, having type string - ParameterId["Dashboard"] = "dashboard"; - // DPI_EnsureSheet, having type string - ParameterId["EnsureSheet"] = "ensureSheetName"; - // DPI_NewSheet, having type string - ParameterId["NewSheet"] = "newSheet"; - // DPI_Sheet, having type string - ParameterId["Sheet"] = "sheet"; - // DPI_SheetName, having type string - ParameterId["SheetName"] = "sheetName"; - // DPI_SourceDashboard, having type string - ParameterId["SourceDashboard"] = "sourceDashboard"; - // DPI_SourceSheet, having type string - ParameterId["SourceSheet"] = "sourceSheet"; - // DPI_TargetSheet, having type string - ParameterId["TargetSheet"] = "targetSheet"; - // DPI_WorkbookName, having type string - ParameterId["WorkbookName"] = "workbookName"; - // DPI_Worksheet, having type string - ParameterId["Worksheet"] = "worksheet"; - // DPI_BaseViewThumbLink, having type string - ParameterId["BaseViewThumbLink"] = "baseViewThumbLink"; - // DPI_BlogLink, having type string - ParameterId["BlogLink"] = "blogLink"; - // DPI_CacheUrl, having type string - ParameterId["CacheUrl"] = "cacheUrl"; - // DPI_DownloadLink, having type string - ParameterId["DownloadLink"] = "downloadLink"; - // DPI_RepositoryUrl, having type string - ParameterId["RepositoryUrl"] = "repositoryUrl"; - // DPI_ShareLink, having type string - ParameterId["ShareLink"] = "shareLink"; - // DPI_URL, having type string - ParameterId["URL"] = "url"; - // DPI_ClusterModelHtml, having type string - ParameterId["ClusterModelHtml"] = "clusterModelHtml"; - // DPI_ClusterSummaryHtml, having type string - ParameterId["ClusterSummaryHtml"] = "clusterSummaryHtml"; - // DPI_ClusterSummaryScaledHtml, having type string - ParameterId["ClusterSummaryScaledHtml"] = "clusterSummaryScaledHtml"; - // DPI_FieldDescription, having type string - ParameterId["FieldDescription"] = "fieldDescription"; - // DPI_ForecastDiagnoseHtml, having type string - ParameterId["ForecastDiagnoseHtml"] = "forecastDiagnoseHtml"; - // DPI_ForecastModelHtml, having type string - ParameterId["ForecastModelHtml"] = "forecastModelHtml"; - // DPI_ForecastSummaryHtml, having type string - ParameterId["ForecastSummaryHtml"] = "forecastSummaryHtml"; - // DPI_ForecastSummaryPctHtml, having type string - ParameterId["ForecastSummaryPctHtml"] = "forecastSummaryPctHtml"; - // DPI_Html, having type string - ParameterId["Html"] = "html"; - // DPI_HtmlSelection, having type string - ParameterId["HtmlSelection"] = "htmlSelection"; - // DPI_HtmlTooltip, having type string - ParameterId["HtmlTooltip"] = "htmlTooltip"; - // DPI_TitleHtml, having type string - ParameterId["TitleHtml"] = "titleHtml"; - // DPI_CacheUrlInfoJson, having type string - ParameterId["CacheUrlInfoJson"] = "cacheUrlInfoJson"; - // DPI_FilterSearchJson, having type string - ParameterId["FilterSearchJson"] = "filterSearchJson"; - // DPI_FilterSearchWithIndexJson, having type string - ParameterId["FilterSearchWithIndexJson"] = "filterSearchWithIndexJson"; - // DPI_FilterShowChildrenJson, having type string - ParameterId["FilterShowChildrenJson"] = "filterShowChildrenJson"; - // DPI_FiltersJson, having type string - ParameterId["FiltersJson"] = "filtersJson"; - // DPI_FrameJson, having type string - ParameterId["FrameJson"] = "frameJson"; - // DPI_GeometryJson, having type string - ParameterId["GeometryJson"] = "geometryJson"; - // DPI_GetFilterItemsJson, having type string - ParameterId["GetFilterItemsJson"] = "getFilterItemsJson"; - // DPI_KeepOnlyResponseJson, having type string - ParameterId["KeepOnlyResponseJson"] = "keepOnlyResponseJson"; - // DPI_MenuCommandsJson, having type string - ParameterId["MenuCommandsJson"] = "menuCommandsJson"; - // DPI_ModifiedSheetsJson, having type string - ParameterId["ModifiedSheetsJson"] = "modifiedSheetsJson"; - // DPI_ParameterCtrlJson, having type string - ParameterId["ParameterCtrlJson"] = "parameterCtrlJson"; - // DPI_ViewJson, having type string - ParameterId["ViewJson"] = "viewJson"; - // DPI_CustomizedViewXML, having type string - ParameterId["CustomizedViewXML"] = "customizedViewXml"; - // DPI_DatasourceDeltaXML, having type string - ParameterId["DatasourceDeltaXML"] = "datasourceDeltaXml"; - // DPI_DatasourceXML, having type string - ParameterId["DatasourceXML"] = "datasourceXml"; - // DPI_KeychainXML, having type string - ParameterId["KeychainXML"] = "keychainXml"; - // DPI_PermissionsModelXML, having type string - ParameterId["PermissionsModelXML"] = "permissionsModelXml"; - // DPI_SharedViewsXML, having type string - ParameterId["SharedViewsXML"] = "sharedViewsXml"; - // DPI_TargetURL, having type string - ParameterId["TargetURL"] = "targetUrl"; - // DPI_Anchor, having type string - ParameterId["Anchor"] = "anchor"; - // DPI_CenterValue, having type string - ParameterId["CenterValue"] = "centerValue"; - // DPI_ComputedBinSize, having type string - ParameterId["ComputedBinSize"] = "computedBinSize"; - // DPI_ConstantValue, having type string - ParameterId["ConstantValue"] = "constantValue"; - // DPI_PairedConstantValue, having type string - ParameterId["PairedConstantValue"] = "pairedConstantValue"; - // DPI_CountDistinct, having type string - ParameterId["CountDistinct"] = "countDistinct"; - // DPI_DataMax, having type string - ParameterId["DataMax"] = "dataMax"; - // DPI_DataMin, having type string - ParameterId["DataMin"] = "dataMin"; - // DPI_EndValue, having type string - ParameterId["EndValue"] = "endValue"; - // DPI_RangeMax, having type string - ParameterId["RangeMax"] = "rangeMax"; - // DPI_RangeMin, having type string - ParameterId["RangeMin"] = "rangeMin"; - // DPI_RangeStepSize, having type string - ParameterId["RangeStepSize"] = "rangeStepSize"; - // DPI_StartValue, having type string - ParameterId["StartValue"] = "startValue"; - // DPI_TargetValue, having type string - ParameterId["TargetValue"] = "targetValue"; - // DPI_ValueInc, having type string - ParameterId["ValueInc"] = "valueInc"; - // DPI_ValueMax, having type string - ParameterId["ValueMax"] = "valueMax"; - // DPI_ValueMin, having type string - ParameterId["ValueMin"] = "valueMin"; - // DPI_QuantilesValue, having type string - ParameterId["QuantilesValue"] = "quantilesValue"; - // DPI_UserInputBinSize, having type string - ParameterId["UserInputBinSize"] = "userBinSize"; - // DPI_AddedDataSources, having type string[] - ParameterId["AddedDataSources"] = "addedDataSourceNames"; - // DPI_AddressingCaptions, having type string[] - ParameterId["AddressingCaptions"] = "addressingCaptions"; - // DPI_AggregationCaptions, having type string[] - ParameterId["AggregationCaptions"] = "aggregationCaptions"; - // DPI_AtTheLevelCaptions, having type string[] - ParameterId["AtTheLevelCaptions"] = "atTheLevelCaptions"; - // DPI_AuthenticationSettingLabels, having type string[] - ParameterId["AuthenticationSettingLabels"] = "authenticationSettingLabels"; - // DPI_AutosaveFileIdsVector, having type string[] - ParameterId["AutosaveFileIdsVector"] = "autosaveFileIdsVector"; - // DPI_ChangedTuples, having type string[] - ParameterId["ChangedTuples"] = "changedTuples"; - // DPI_CharsetsAvailable, having type string[] - ParameterId["CharsetsAvailable"] = "charsetsAvailable"; - // DPI_CharsetDisplayNames, having type string[] - ParameterId["CharsetDisplayNames"] = "charsetDisplayNames"; - // DPI_ColorFactors, having type string[] - ParameterId["ColorFactors"] = "colorFactors"; - // DPI_ColumnFullNames, having type string[] - ParameterId["ColumnFullNames"] = "columnFullNames"; - // DPI_ConnectionNames, having type string[] - ParameterId["ConnectionNames"] = "connectionNames"; - // DPI_ConnectionCaptions, having type string[] - ParameterId["ConnectionCaptions"] = "connectionCaptions"; - // DPI_ConnectionBigQueryLegacySQLCheckBox, having type string[] - ParameterId["ConnectionBigQueryLegacySQLCheckBox"] = "connectionBigqueryLegacySqlCheckbox"; - // DPI_CustomFieldOrder, having type string[] - ParameterId["CustomFieldOrder"] = "customFieldOrder"; - // DPI_DataSourceClasses, having type string[] - ParameterId["DataSourceClasses"] = "dataSourceClasses"; - // DPI_DataSourceNames, having type string[] - ParameterId["DataSourceNames"] = "dataSourceNames"; - // DPI_DataSourceNames2, having type string[] - ParameterId["DataSourceNames2"] = "dataSourceNames2"; - // DPI_DateFormats, having type string[] - ParameterId["DateFormats"] = "dateFormats"; - // DPI_DayNames, having type string[] - ParameterId["DayNames"] = "dayNames"; - // DPI_DrillPathVector, having type string[] - ParameterId["DrillPathVector"] = "drillpathVector"; - // DPI_ErrorDetails, having type string[] - ParameterId["ErrorDetails"] = "errorDetails"; - // DPI_ExceptionMessageParams, having type string[] - ParameterId["ExceptionMessageParams"] = "exceptionMessageParams"; - // DPI_ExcludedSheets, having type string[] - ParameterId["ExcludedSheets"] = "excludeSheets"; - // DPI_FieldDisplayNames, having type string[] - ParameterId["FieldDisplayNames"] = "fieldDisplayNames"; - // DPI_FieldFolderVector, having type string[] - ParameterId["FieldFolderVector"] = "fieldFolderVector"; - // DPI_FileIds, having type string[] - ParameterId["FileIds"] = "fileIds"; - // DPI_FilePaths, having type string[] - ParameterId["FilePaths"] = "filePaths"; - // DPI_FileNames, having type string[] - ParameterId["FileNames"] = "fileNames"; - // DPI_FilterAdd, having type string[] - ParameterId["FilterAdd"] = "filterAdd"; - // DPI_FilterAliases, having type string[] - ParameterId["FilterAliases"] = "filterValues"; - // DPI_FilterRemove, having type string[] - ParameterId["FilterRemove"] = "filterRemove"; - // DPI_FixedCaptions, having type string[] - ParameterId["FixedCaptions"] = "fixedCaptions"; - // DPI_FontFamilies, having type string[] - ParameterId["FontFamilies"] = "fontFamilies"; - // DPI_FormatStrings, having type string[] - ParameterId["FormatStrings"] = "formatStrings"; - // DPI_FormattedValues, having type string[] - ParameterId["FormattedValues"] = "formattedValues"; - // DPI_FoundTuples, having type string[] - ParameterId["FoundTuples"] = "foundTuples"; - // DPI_FullSchedulesLabels, having type string[] - ParameterId["FullSchedulesLabels"] = "fullSchedulesLabels"; - // DPI_ImageResourceList, having type string[] - ParameterId["ImageResourceList"] = "imageResources"; - // DPI_IncludeList, having type string[] - ParameterId["IncludeList"] = "includeList"; - // DPI_IncrSchedulesLabels, having type string[] - ParameterId["IncrSchedulesLabels"] = "incrSchedulesLabels"; - // DPI_InvalidDates, having type string[] - ParameterId["InvalidDates"] = "invalidDates"; - // DPI_InvalidValues, having type string[] - ParameterId["InvalidValues"] = "invalidValues"; - // DPI_ItemValues, having type string[] - ParameterId["ItemValues"] = "itemValues"; - // DPI_JoinEditableProps, having type string[] - ParameterId["JoinEditableProps"] = "joinEditableProps"; - // DPI_JoinFieldCaptions, having type string[] - ParameterId["JoinFieldCaptions"] = "joinFieldCaptions"; - // DPI_LocaleOptions, having type string[] - ParameterId["LocaleOptions"] = "localeOptions"; - // DPI_LocaleDisplayNames, having type string[] - ParameterId["LocaleDisplayNames"] = "localeDisplayNames"; - // DPI_MapBoxStyleMaps, having type string[] - ParameterId["MapBoxStyleMaps"] = "mapboxStyleMaps"; - // DPI_MapConnectionErrorDetails, having type string[] - ParameterId["MapConnectionErrorDetails"] = "mapConnectionErrorDetails"; - // DPI_SheetNames, having type string[] - ParameterId["SheetNames"] = "sheetNames"; - // DPI_MapSourceNames, having type string[] - ParameterId["MapSourceNames"] = "mapSourceNames"; - // DPI_MarkGeometries, having type string[] - ParameterId["MarkGeometries"] = "markGeometries"; - // DPI_MenuItems, having type string[] - ParameterId["MenuItems"] = "menuItems"; - // DPI_Modes, having type string[] - ParameterId["Modes"] = "modes"; - // DPI_MonthNames, having type string[] - ParameterId["MonthNames"] = "monthNames"; - // DPI_NumberFormats, having type string[] - ParameterId["NumberFormats"] = "numberFormats"; - // DPI_ObjectTextIDs, having type string[] - ParameterId["ObjectTextIDs"] = "objectTextIds"; - // DPI_OldExtracts, having type string[] - ParameterId["OldExtracts"] = "oldExtracts"; - // DPI_OrderingTypeCaptions, having type string[] - ParameterId["OrderingTypeCaptions"] = "orderingTypeCaptions"; - // DPI_PageNames, having type string[] - ParameterId["PageNames"] = "pageNames"; - // DPI_PaneDescriptorKeys, having type string[] - ParameterId["PaneDescriptorKeys"] = "paneDescriptorKeys"; - // DPI_ParamCaptions, having type string[] - ParameterId["ParamCaptions"] = "paramCaptions"; - // DPI_PrecannedDataValues, having type string[] - ParameterId["PrecannedDataValues"] = "precannedDataValues"; - // DPI_PublishChoiceLabels, having type string[] - ParameterId["PublishChoiceLabels"] = "publishChoiceLabels"; - // DPI_RankTypeCaptions, having type string[] - ParameterId["RankTypeCaptions"] = "rankTypeCaptions"; - // DPI_RecentTags, having type string[] - ParameterId["RecentTags"] = "recentTags"; - // DPI_RelativeCaptions, having type string[] - ParameterId["RelativeCaptions"] = "relativeCaptions"; - // DPI_RemovedDataSources, having type string[] - ParameterId["RemovedDataSources"] = "removedDataSourceNames"; - // DPI_RepresentativeTuple, having type string[] - ParameterId["RepresentativeTuple"] = "representativeTuple"; - // DPI_RestartEveryCaptions, having type string[] - ParameterId["RestartEveryCaptions"] = "restartEveryCaptions"; - // DPI_SchemaMemberGlobalNames, having type string[] - ParameterId["SchemaMemberGlobalNames"] = "schemaMemberGlobalNames"; - // DPI_SelectValuesList, having type string[] - ParameterId["SelectValuesList"] = "selectValues"; - // DPI_SelectionValueList, having type string[] - ParameterId["SelectionValueList"] = "selectionValueList"; - // DPI_SortAggCaptions, having type string[] - ParameterId["SortAggCaptions"] = "sortAggCaptions"; - // DPI_SortDirectionCaptions, having type string[] - ParameterId["SortDirectionCaptions"] = "sortDirectionCaptions"; - // DPI_SortFieldCaptions, having type string[] - ParameterId["SortFieldCaptions"] = "sortFieldCaptions"; - // DPI_SortFieldNameVector, having type string[] - ParameterId["SortFieldNameVector"] = "sortFieldnameVector"; - // DPI_SupportedJoinOperators, having type string[] - ParameterId["SupportedJoinOperators"] = "supportedJoinOperators"; - // DPI_TableCalcTypeCaptions, having type string[] - ParameterId["TableCalcTypeCaptions"] = "tableCalcTypeCaptions"; - // DPI_Tags, having type string[] - ParameterId["Tags"] = "tags"; - // DPI_TermVec, having type string[] - ParameterId["TermVec"] = "termVector"; - // DPI_UIAutomationList, having type string[] - ParameterId["UIAutomationList"] = "uiAutomationList"; - // DPI_ReferenceLineValidCustomLabelTags, having type string[] - ParameterId["ReferenceLineValidCustomLabelTags"] = "validReferenceLineCustomLabelTags"; - // DPI_LocalizedKeywords, having type string[] - ParameterId["LocalizedKeywords"] = "localizedKeywords"; - // DPI_AvailableCalendars, having type string[] - ParameterId["AvailableCalendars"] = "availableCalendars"; - // DPI_SheetsToBeDeletedOrHidden, having type string[] - ParameterId["SheetsToBeDeletedOrHidden"] = "sheetsToBeDeletedOrHidden"; - // DPI_AddSheets, having type string[] - ParameterId["AddSheets"] = "addSheets"; - // DPI_NamesOfSubsheets, having type string[] - ParameterId["NamesOfSubsheets"] = "namesOfSubsheets"; - // DPI_RemoveSheets, having type string[] - ParameterId["RemoveSheets"] = "removeSheets"; - // DPI_ScrollOffsetSheets, having type string[] - ParameterId["ScrollOffsetSheets"] = "scrollOffsetSheets"; - // DPI_Sheets, having type string[] - ParameterId["Sheets"] = "sheets"; - // DPI_SourceWorksheets, having type string[] - ParameterId["SourceWorksheets"] = "sourceWorksheets"; - // DPI_TargetExcludes, having type string[] - ParameterId["TargetExcludes"] = "targetExclude"; - // DPI_TargetWorksheets, having type string[] - ParameterId["TargetWorksheets"] = "targetWorksheets"; - // DPI_TileURLs, having type string[] - ParameterId["TileURLs"] = "tileUrls"; - // DPI_Details, having type string[] - ParameterId["Details"] = "details"; - // DPI_FieldCaptions, having type string[] - ParameterId["FieldCaptions"] = "fieldCaptions"; - // DPI_HighlightCaptions, having type string[] - ParameterId["HighlightCaptions"] = "highlightCaptions"; - // DPI_LevelCaptions, having type string[] - ParameterId["LevelCaptions"] = "levelCaptions"; - // DPI_LevelLeafValues, having type string[] - ParameterId["LevelLeafValues"] = "levelLeafValues"; - // DPI_SubstitutionVariables, having type string[] - ParameterId["SubstitutionVariables"] = "substitutionVariables"; - // DPI_SubstitutionVariableValues, having type string[] - ParameterId["SubstitutionVariableValues"] = "substitutionVariableValues"; - // DPI_HtmlTooltips, having type string[] - ParameterId["HtmlTooltips"] = "htmlTooltips"; - // DPI_InvalidFields, having type string[] - ParameterId["InvalidFields"] = "invalidFields"; - // DPI_NamesOfColumns, having type string[] - ParameterId["NamesOfColumns"] = "namesOfColumns"; - // DPI_NamesOfFields, having type string[] - ParameterId["NamesOfFields"] = "namesOfFields"; - // DPI_ReferencedDatasources, having type string[] - ParameterId["ReferencedDatasources"] = "referencedDataSourceList"; - // DPI_CSSAttrs, having type Dictionary(of string) - ParameterId["CSSAttrs"] = "cssAttrs"; - // DPI_DataSourceMap, having type Dictionary(of string) - ParameterId["DataSourceMap"] = "dataSourceMap"; - // DPI_EventParameters, having type Dictionary(of string) - ParameterId["EventParameters"] = "eventParameters"; - // DPI_ExceptionAttrs, having type Dictionary(of string) - ParameterId["ExceptionAttrs"] = "exceptionAttrs"; - // DPI_InvalidSheetMessage, having type Dictionary(of string) - ParameterId["InvalidSheetMessage"] = "invalidSheetMessages"; - // DPI_MapBoxDefaultStyle, having type Dictionary(of string) - ParameterId["MapBoxDefaultStyle"] = "mapboxDefaultStyles"; - // DPI_PaneFormattings, having type Dictionary(of string) - ParameterId["PaneFormattings"] = "paneFormattings"; - // DPI_SourceNameWithCaption, having type Dictionary(of string) - ParameterId["SourceNameWithCaption"] = "sourceNameWithCaption"; - // DPI_ConnectionColorMap, having type Dictionary(of string) - ParameterId["ConnectionColorMap"] = "connectionColorMap"; - // DPI_TargetNameWithCaption, having type Dictionary(of string) - ParameterId["TargetNameWithCaption"] = "targetNameWithCaption"; - // DPI_ViewIds, having type Dictionary(of string) - ParameterId["ViewIds"] = "viewIds"; - // DPI_AddInSettings, having type Dictionary(of string) - ParameterId["AddInSettings"] = "addInSettings"; - // DPI_DatasourceIcons, having type Dictionary(of string) - ParameterId["DatasourceIcons"] = "datasourceIcons"; - // DPI_FormattedText, having type string - ParameterId["FormattedText"] = "formattedText"; - // DPI_IconTooltip, having type string - ParameterId["IconTooltip"] = "iconTooltip"; - // DPI_Title, having type string - ParameterId["Title"] = "title"; - // DPI_Tooltip, having type string - ParameterId["Tooltip"] = "tooltip"; - // DPI_ZoneText, having type string - ParameterId["ZoneText"] = "zoneText"; - // DPI_AlignmentFlags, having type int - ParameterId["AlignmentFlags"] = "alignmentFlags"; - // DPI_AlphaLevel, having type int - ParameterId["AlphaLevel"] = "alphaLevel"; - // DPI_AnovaDF, having type int - ParameterId["AnovaDF"] = "anovaDf"; - // DPI_AtTheLevelIndex, having type int - ParameterId["AtTheLevelIndex"] = "atTheLevelIndex"; - // DPI_AutomaticDrillIdxInVector, having type int - ParameterId["AutomaticDrillIdxInVector"] = "automaticDrillIdxVector"; - // DPI_AutoSize, having type int - ParameterId["AutoSize"] = "automaticSize"; - // DPI_BaseCoord, having type int - ParameterId["BaseCoord"] = "baseCoord"; - // DPI_CalcEditorCursorPosPostDrop, having type int - ParameterId["CalcEditorCursorPosPostDrop"] = "calcEditorCursorPosPostDrop"; - // DPI_CalcEditorDropPos, having type int - ParameterId["CalcEditorDropPos"] = "calcEditorDropPos"; - // DPI_CalcEditorTextSelectionEndPos, having type int - ParameterId["CalcEditorTextSelectionEndPos"] = "calcEditorTextSelectionEndPos"; - // DPI_CalcEditorTextSelectionStartPos, having type int - ParameterId["CalcEditorTextSelectionStartPos"] = "calcEditorTextSelectionStartPos"; - // DPI_CategoricalBinId, having type int - ParameterId["CategoricalBinId"] = "categoricalBinId"; - // DPI_CategoricalFindControllerId, having type int - ParameterId["CategoricalFindControllerId"] = "categoricalFindControllerId"; - // DPI_ClauseToModifyIndex, having type int - ParameterId["ClauseToModifyIndex"] = "clauseToModifyIndex"; - // DPI_ClientRenderPixelLimit, having type int - ParameterId["ClientRenderPixelLimit"] = "clientRenderPixelLimit"; - // DPI_ColCount, having type int - ParameterId["ColCount"] = "colCount"; - // DPI_ColWidth, having type int - ParameterId["ColWidth"] = "colWidth"; - // DPI_ColumnLevels, having type int - ParameterId["ColumnLevels"] = "columnLevels"; - // DPI_ColumnNumber, having type int - ParameterId["ColumnNumber"] = "columnNumber"; - // DPI_ColumnWidth, having type int - ParameterId["ColumnWidth"] = "columnWidth"; - // DPI_ContentHeight, having type int - ParameterId["ContentHeight"] = "contentH"; - // DPI_ContentWidth, having type int - ParameterId["ContentWidth"] = "contentW"; - // DPI_ContentX, having type int - ParameterId["ContentX"] = "contentX"; - // DPI_ContentY, having type int - ParameterId["ContentY"] = "contentY"; - // DPI_CurDateAgg, having type int - ParameterId["CurDateAgg"] = "curDateAgg"; - // DPI_CurrentCustViewId, having type int - ParameterId["CurrentCustViewId"] = "currentCustomViewId"; - // DPI_CustomSplitCharacterCountSeparator, having type int - ParameterId["CustomSplitCharacterCountSeparator"] = "customSplitCharacterCountSeparator"; - // DPI_CustomSplitDesiredSplitCount, having type int - ParameterId["CustomSplitDesiredSplitCount"] = "customSplitDesiredSplitCount"; - // DPI_DashboardGridSize, having type int - ParameterId["DashboardGridSize"] = "dashboardGridSize"; - // DPI_DataIndex, having type int - ParameterId["DataIndex"] = "dataIndex"; - // DPI_DecimalPlaces, having type int - ParameterId["DecimalPlaces"] = "decimalPlaces"; - // DPI_DeltaTime, having type int - ParameterId["DeltaTime"] = "deltaTime"; - // DPI_DestPix, having type int - ParameterId["DestPix"] = "destPix"; - // DPI_DeviceIndex, having type int - ParameterId["DeviceIndex"] = "deviceIndex"; - // DPI_Duration, having type int - ParameterId["Duration"] = "duration"; - // DPI_EndPtX, having type int - ParameterId["EndPtX"] = "endX"; - // DPI_EndPtY, having type int - ParameterId["EndPtY"] = "endY"; - // DPI_ErrorLen, having type int - ParameterId["ErrorLen"] = "lengthOfCalcOfError"; - // DPI_ErrorPos, having type int - ParameterId["ErrorPos"] = "startPositionForError"; - // DPI_ExceptionErrorMessageId, having type int - ParameterId["ExceptionErrorMessageId"] = "exceptionErrorMessageId"; - // DPI_ExtentsH, having type int - ParameterId["ExtentsH"] = "extentsHeight"; - // DPI_ExtentsW, having type int - ParameterId["ExtentsW"] = "extentsWidth"; - // DPI_ExtentsX, having type int - ParameterId["ExtentsX"] = "extentsX"; - // DPI_ExtentsY, having type int - ParameterId["ExtentsY"] = "extentsY"; - // DPI_FieldIndex, having type int - ParameterId["FieldIndex"] = "fieldIndex"; - // DPI_FieldNameId, having type int - ParameterId["FieldNameId"] = "fieldNameId"; - // DPI_FirstDayOfWeek, having type int - ParameterId["FirstDayOfWeek"] = "firstDayOfWeek"; - // DPI_FirstValueIndex, having type int - ParameterId["FirstValueIndex"] = "firstValueIndex"; - // DPI_FixedSizePresetIndex, having type int - ParameterId["FixedSizePresetIndex"] = "fixedSizePresetIndex"; - // DPI_FocusItemIndex, having type int - ParameterId["FocusItemIndex"] = "focusItemIndex"; - // DPI_FontSize, having type int - ParameterId["FontSize"] = "fontSize"; - // DPI_ForecastIntRangeEnd, having type int - ParameterId["ForecastIntRangeEnd"] = "forecastIntRangeEnd"; - // DPI_ForecastIntRangeStart, having type int - ParameterId["ForecastIntRangeStart"] = "forecastIntRangeStart"; - // DPI_FunctionHelpIndex, having type int - ParameterId["FunctionHelpIndex"] = "functionHelpIndex"; - // DPI_GeographicSearchMaxResults, having type int - ParameterId["GeographicSearchMaxResults"] = "geographicSearchMaxResults"; - // DPI_Height, having type int - ParameterId["Height"] = "h"; - // DPI_HierarchyLevel, having type int - ParameterId["HierarchyLevel"] = "hierarchyLevel"; - // DPI_HierarchyLevelLoaded, having type int - ParameterId["HierarchyLevelLoaded"] = "hierarchyLevelLoaded"; - // DPI_HierarchyLevelMinimum, having type int - ParameterId["HierarchyLevelMinimum"] = "hierarchyLevelMinimum"; - // DPI_HierarchyLoadLimit, having type int - ParameterId["HierarchyLoadLimit"] = "hierarchyLoadLimit"; - // DPI_HierarchySelectControllerId, having type int - ParameterId["HierarchySelectControllerId"] = "hierarchySelectControllerId"; - // DPI_HorzTextCell, having type int - ParameterId["HorzTextCell"] = "horzTextCell"; - // DPI_ImageIndex, having type int - ParameterId["ImageIndex"] = "imageIndex"; - // DPI_ImageSizeLimit, having type int - ParameterId["ImageSizeLimit"] = "imageSizeLimit"; - // DPI_TransparentLineMarksLimit, having type int - ParameterId["TransparentLineMarksLimit"] = "transparentLineMarksLimit"; - // DPI_Indent, having type int - ParameterId["Indent"] = "indent"; - // DPI_Index, having type int - ParameterId["Index"] = "idx"; - // DPI_IndexFrom, having type int - ParameterId["IndexFrom"] = "indexFrom"; - // DPI_IndexOffset, having type int - ParameterId["IndexOffset"] = "indexOffset"; - // DPI_IndexTo, having type int - ParameterId["IndexTo"] = "indexTo"; - // DPI_InlineConnectionRenameRow, having type int - ParameterId["InlineConnectionRenameRow"] = "inlineConnectionRenameRow"; - // DPI_InsertPos, having type int - ParameterId["InsertPos"] = "insertPos"; - // DPI_IsHasDataSupported, having type int - ParameterId["IsHasDataSupported"] = "isHasDataSupported"; - // DPI_LeftMargin, having type int - ParameterId["LeftMargin"] = "leftMargin"; - // DPI_LeftRightBorderWidth, having type int - ParameterId["LeftRightBorderWidth"] = "leftRightBorderWidth"; - // DPI_LowerBound, having type int - ParameterId["LowerBound"] = "lowerBound"; - // DPI_MapRequestPixels, having type int - ParameterId["MapRequestPixels"] = "mapRequestPixels"; - // DPI_MapScaleFontSizePixels, having type int - ParameterId["MapScaleFontSizePixels"] = "mapScaleFontSizePixels"; - // DPI_MapScaleReadoutNumber, having type int - ParameterId["MapScaleReadoutNumber"] = "mapScaleReadoutNumber"; - // DPI_MapScaleWidth, having type int - ParameterId["MapScaleWidth"] = "mapScaleWidth"; - // DPI_MapTileSize, having type int - ParameterId["MapTileSize"] = "mapTileSize"; - // DPI_Margin, having type int - ParameterId["Margin"] = "margin"; - // DPI_MarginBottom, having type int - ParameterId["MarginBottom"] = "marginBottom"; - // DPI_MarginLeft, having type int - ParameterId["MarginLeft"] = "marginLeft"; - // DPI_MarginRight, having type int - ParameterId["MarginRight"] = "marginRight"; - // DPI_MarginTop, having type int - ParameterId["MarginTop"] = "marginTop"; - // DPI_MaxCell, having type int - ParameterId["MaxCell"] = "maxCell"; - // DPI_MaxItemSpan, having type int - ParameterId["MaxItemSpan"] = "maxItemSpan"; - // DPI_MaxPolynomialDegree, having type int - ParameterId["MaxPolynomialDegree"] = "maxDegree"; - // DPI_MaxPosition, having type int - ParameterId["MaxPosition"] = "maxPosition"; - // DPI_MaxSize, having type int - ParameterId["MaxSize"] = "maxSize"; - // DPI_MinCell, having type int - ParameterId["MinCell"] = "minCell"; - // DPI_MinPolynomialDegree, having type int - ParameterId["MinPolynomialDegree"] = "minDegree"; - // DPI_MinPosition, having type int - ParameterId["MinPosition"] = "minPosition"; - // DPI_MinSize, having type int - ParameterId["MinSize"] = "minSize"; - // DPI_ModelDF, having type int - ParameterId["ModelDF"] = "modelDf"; - // DPI_NewIndex, having type int - ParameterId["NewIndex"] = "newIndex"; - // DPI_NumDataSourcesUsingServer, having type int - ParameterId["NumDataSourcesUsingServer"] = "numDataSourcesUsingServer"; - // DPI_NumFilteredObs, having type int - ParameterId["NumFilteredObs"] = "filteredObservations"; - // DPI_NumModeledObs, having type int - ParameterId["NumModeledObs"] = "modeledObservations"; - // DPI_NumNotClustered, having type int - ParameterId["NumNotClustered"] = "numNotClustered"; - // DPI_NumNumericFields, having type int - ParameterId["NumNumericFields"] = "numNumericFields"; - // DPI_NumOutliers, having type int - ParameterId["NumOutliers"] = "numOutliers"; - // DPI_NumRows, having type int - ParameterId["NumRows"] = "numRows"; - // DPI_NumSelected, having type int - ParameterId["NumSelected"] = "numSelected"; - // DPI_OffsetX, having type int - ParameterId["OffsetX"] = "offsetX"; - // DPI_OffsetY, having type int - ParameterId["OffsetY"] = "offsetY"; - // DPI_Padding, having type int - ParameterId["Padding"] = "padding"; - // DPI_PaddingBottom, having type int - ParameterId["PaddingBottom"] = "paddingBottom"; - // DPI_PaddingLeft, having type int - ParameterId["PaddingLeft"] = "paddingLeft"; - // DPI_PaddingRight, having type int - ParameterId["PaddingRight"] = "paddingRight"; - // DPI_PaddingTop, having type int - ParameterId["PaddingTop"] = "paddingTop"; - // DPI_PageLoadPercentage, having type int - ParameterId["PageLoadPercentage"] = "pageLoadPercentage"; - // DPI_PaletteIndex, having type int - ParameterId["PaletteIndex"] = "paletteIndex"; - // DPI_PaneSpecificationId, having type int - ParameterId["PaneSpecificationId"] = "paneSpec"; - // DPI_ParameterCtrlIncrementsPerTick, having type int - ParameterId["ParameterCtrlIncrementsPerTick"] = "parameterControlIncrementMultiplier"; - // DPI_PolynomialDegree, having type int - ParameterId["PolynomialDegree"] = "degree"; - // DPI_Port, having type int - ParameterId["Port"] = "datasourcePort"; - // DPI_Position, having type int - ParameterId["Position"] = "position"; - // DPI_ParentProjectId, having type int - ParameterId["ParentProjectId"] = "parentProjectId"; - // DPI_PublishResultStringId, having type int - ParameterId["PublishResultStringId"] = "publishResultStringId"; - // DPI_Radius, having type int - ParameterId["Radius"] = "radius"; - // DPI_ReadoutOffset, having type int - ParameterId["ReadoutOffset"] = "readoutOffset"; - // DPI_ReferenceIndex, having type int - ParameterId["ReferenceIndex"] = "referenceIndex"; - // DPI_RegionHeight, having type int - ParameterId["RegionHeight"] = "regionHeight"; - // DPI_RegionWidth, having type int - ParameterId["RegionWidth"] = "regionWidth"; - // DPI_RemovedDatasourceCount, having type int - ParameterId["RemovedDatasourceCount"] = "removedDatasourceCount"; - // DPI_RemovedSheetCount, having type int - ParameterId["RemovedSheetCount"] = "removedSheetCount"; - // DPI_ResidualDF, having type int - ParameterId["ResidualDF"] = "residualDf"; - // DPI_ResizeColumn, having type int - ParameterId["ResizeColumn"] = "resizeColumn"; - // DPI_RestartEveryIndex, having type int - ParameterId["RestartEveryIndex"] = "restartEveryIndex"; - // DPI_RightMargin, having type int - ParameterId["RightMargin"] = "rightMargin"; - // DPI_RowCount, having type int - ParameterId["RowCount"] = "rowCount"; - // DPI_RowHeight, having type int - ParameterId["RowHeight"] = "rowHeight"; - // DPI_RowInnerLevels, having type int - ParameterId["RowInnerLevels"] = "rowInnerLevels"; - // DPI_RowLevels, having type int - ParameterId["RowLevels"] = "rowLevels"; - // DPI_RowNumber, having type int - ParameterId["RowNumber"] = "rowNumber"; - // DPI_RowWidth, having type int - ParameterId["RowWidth"] = "rowWidth"; - // DPI_SecondValueIndex, having type int - ParameterId["SecondValueIndex"] = "secondValueIndex"; - // DPI_SecondsAgo, having type int - ParameterId["SecondsAgo"] = "secondsAgo"; - // DPI_SelectionEnd, having type int - ParameterId["SelectionEnd"] = "selectionEnd"; - // DPI_SelectionStart, having type int - ParameterId["SelectionStart"] = "selectionStart"; - // DPI_ShapePaletteID, having type int - ParameterId["ShapePaletteID"] = "shapePaletteId"; - // DPI_SheetIndex, having type int - ParameterId["SheetIndex"] = "sheetIndex"; - // DPI_ShelfPositionIndex, having type int - ParameterId["ShelfPositionIndex"] = "shelfPosIndex"; - // DPI_Size, having type int - ParameterId["Size"] = "size"; - // DPI_SizeDifference, having type int - ParameterId["SizeDifference"] = "sizeDelta"; - // DPI_SnapDistance, having type int - ParameterId["SnapDistance"] = "snapDistance"; - // DPI_SnapLocation, having type int - ParameterId["SnapLocation"] = "snapLocation"; - // DPI_SolveOrder, having type int - ParameterId["SolveOrder"] = "solveOrder"; - // DPI_SpaceBetweenPoints, having type int - ParameterId["SpaceBetweenPoints"] = "spaceBetweenPoints"; - // DPI_StepSize, having type int - ParameterId["StepSize"] = "stepSize"; - // DPI_Steps, having type int - ParameterId["Steps"] = "steps"; - // DPI_StoryPointIndex, having type int - ParameterId["StoryPointIndex"] = "currentStorypointIndex"; - // DPI_StyleLen, having type int - ParameterId["StyleLen"] = "tokenLengthForStyle"; - // DPI_StylePos, having type int - ParameterId["StylePos"] = "tokenPositionForStyle"; - // DPI_SwatchAreaWidth, having type int - ParameterId["SwatchAreaWidth"] = "swatchWidth"; - // DPI_TargetBinId, having type int - ParameterId["TargetBinId"] = "targetBinId"; - // DPI_TargetPtX, having type int - ParameterId["TargetPtX"] = "targetX"; - // DPI_TargetPtY, having type int - ParameterId["TargetPtY"] = "targetY"; - // DPI_TileFactor, having type int - ParameterId["TileFactor"] = "tileFactor"; - // DPI_TitleHeight, having type int - ParameterId["TitleHeight"] = "titleHeight"; - // DPI_TitleWidth, having type int - ParameterId["TitleWidth"] = "titleWidth"; - // DPI_TopBottomBorderWidth, having type int - ParameterId["TopBottomBorderWidth"] = "topBottomBorderWidth"; - // DPI_UIAutomationLineSize, having type int - ParameterId["UIAutomationLineSize"] = "uiAutomationLineSize"; - // DPI_UIAutomationPageSize, having type int - ParameterId["UIAutomationPageSize"] = "uiAutomationPageSize"; - // DPI_UID, having type int - ParameterId["UID"] = "uid"; - // DPI_UpperBound, having type int - ParameterId["UpperBound"] = "upperBound"; - // DPI_VertTextCell, having type int - ParameterId["VertTextCell"] = "vertTextCell"; - // DPI_Width, having type int - ParameterId["Width"] = "w"; - // DPI_X, having type int - ParameterId["X"] = "x"; - // DPI_Y, having type int - ParameterId["Y"] = "y"; - // DPI_ZOrder, having type int - ParameterId["ZOrder"] = "zOrder"; - // DPI_ZoneIconIndex, having type int - ParameterId["ZoneIconIndex"] = "zoneIconIndex"; - // DPI_AliasIndices, having type int[] - ParameterId["AliasIndices"] = "aliasIndices"; - // DPI_AnovaDFVec, having type int[] - ParameterId["AnovaDFVec"] = "anovaDfVector"; - // DPI_ColumnIndices, having type int[] - ParameterId["ColumnIndices"] = "columnIndices"; - // DPI_DrillFieldIndices, having type int[] - ParameterId["DrillFieldIndices"] = "drillFieldIndices"; - // DPI_FilterMaxIndices, having type int[] - ParameterId["FilterMaxIndices"] = "filterMaxIndices"; - // DPI_FilterMinIndices, having type int[] - ParameterId["FilterMinIndices"] = "filterMinIndices"; - // DPI_FilterValuesIndices, having type int[] - ParameterId["FilterValuesIndices"] = "filterValueIndices"; - // DPI_FormatStringIndices, having type int[] - ParameterId["FormatStringIndices"] = "formatstrIndices"; - // DPI_FormattedValIndices, having type int[] - ParameterId["FormattedValIndices"] = "formatValIdxs"; - // DPI_PaletteIndices, having type int[] - ParameterId["PaletteIndices"] = "palettesIndices"; - // DPI_PaneIndices, having type int[] - ParameterId["PaneIndices"] = "paneIndices"; - // DPI_Points, having type int[] - ParameterId["Points"] = "points"; - // DPI_QuickFilterSettings, having type int[] - ParameterId["QuickFilterSettings"] = "quickFilterSettings"; - // DPI_SelectedIndices, having type int[] - ParameterId["SelectedIndices"] = "selectedIndices"; - // DPI_ShelfPositionIndices, having type int[] - ParameterId["ShelfPositionIndices"] = "shelfPosIndices"; - // DPI_TileBox, having type int[] - ParameterId["TileBox"] = "tileBox"; - // DPI_TrailOverride, having type int[] - ParameterId["TrailOverride"] = "trailOverride"; - // DPI_UIDs, having type int[] - ParameterId["UIDs"] = "uids"; - // DPI_ValueIndices, having type int[] - ParameterId["ValueIndices"] = "valueIndices"; - // DPI_XCellOffsets, having type int[] - ParameterId["XCellOffsets"] = "xCellOffsets"; - // DPI_XPixelOffsets, having type int[] - ParameterId["XPixelOffsets"] = "xPixelOffsets"; - // DPI_YCellOffsets, having type int[] - ParameterId["YCellOffsets"] = "yCellOffsets"; - // DPI_YPixelOffsets, having type int[] - ParameterId["YPixelOffsets"] = "yPixelOffsets"; - // DPI_IntMap, having type Dictionary(of int) - ParameterId["IntMap"] = "intMap"; - // DPI_SelectedAuthSettingIndices, having type Dictionary(of int) - ParameterId["SelectedAuthSettingIndices"] = "selectedAuthSettingIndices"; - // DPI_ActiveStoryPointID, having type uint - ParameterId["ActiveStoryPointID"] = "activeStoryPointId"; - // DPI_ActiveZoneID, having type uint - ParameterId["ActiveZoneID"] = "activeZoneId"; - // DPI_ActualSize, having type uint - ParameterId["ActualSize"] = "actualSize"; - // DPI_AddInDebugPort, having type uint - ParameterId["AddInDebugPort"] = "addInDebugPort"; - // DPI_AggregationIndex, having type uint - ParameterId["AggregationIndex"] = "aggregationIndex"; - // DPI_AnnotationID, having type uint - ParameterId["AnnotationID"] = "annotationId"; - // DPI_AssignedAliasCount, having type uint - ParameterId["AssignedAliasCount"] = "assignedAliasCount"; - // DPI_CapabilityId, having type uint - ParameterId["CapabilityId"] = "capabilityId"; - // DPI_CaretIndex, having type uint - ParameterId["CaretIndex"] = "caretIndex"; - // DPI_CellID, having type uint - ParameterId["CellID"] = "cellId"; - // DPI_ColumnIndex, having type uint - ParameterId["ColumnIndex"] = "columnIndex"; - // DPI_CommandID, having type uint - ParameterId["CommandID"] = "id"; - // DPI_CommandIndex, having type uint - ParameterId["CommandIndex"] = "index"; - // DPI_ControllerId, having type uint - ParameterId["ControllerId"] = "controllerId"; - // DPI_Count, having type uint - ParameterId["Count"] = "count"; - // DPI_URowCount, having type uint - ParameterId["URowCount"] = "uRowCount"; - // DPI_UColumnCount, having type uint - ParameterId["UColumnCount"] = "uColumnCount"; - // DPI_CurrentPage, having type uint - ParameterId["CurrentPage"] = "currentPage"; - // DPI_DatePeriodsCount, having type uint - ParameterId["DatePeriodsCount"] = "datePeriodsCount"; - // DPI_Decimals, having type uint - ParameterId["Decimals"] = "decimals"; - // DPI_DefaultHeight, having type uint - ParameterId["DefaultHeight"] = "defaultHeight"; - // DPI_DefaultItem, having type uint - ParameterId["DefaultItem"] = "defaultItem"; - // DPI_DefaultWidth, having type uint - ParameterId["DefaultWidth"] = "defaultWidth"; - // DPI_Depth, having type uint - ParameterId["Depth"] = "depth"; - // DPI_DetailID, having type uint - ParameterId["DetailID"] = "detailId"; - // DPI_DrillLevel, having type uint - ParameterId["DrillLevel"] = "drillLevel"; - // DPI_DuplicateIndex, having type uint - ParameterId["DuplicateIndex"] = "duplicateIndex"; - // DPI_EndIndex, having type uint - ParameterId["EndIndex"] = "endIndex"; - // DPI_FieldIconIdx, having type uint - ParameterId["FieldIconIdx"] = "fieldIconIdx"; - // DPI_FilterLevel, having type uint - ParameterId["FilterLevel"] = "filterLevel"; - // DPI_FilterTileSize, having type uint - ParameterId["FilterTileSize"] = "filterTileSize"; - // DPI_FiscalYearStart, having type uint - ParameterId["FiscalYearStart"] = "fiscalYearStart"; - // DPI_FitPagesAcross, having type uint - ParameterId["FitPagesAcross"] = "pageFitHorizontal"; - // DPI_FitPagesDown, having type uint - ParameterId["FitPagesDown"] = "pageFitVertical"; - // DPI_FixedIndex, having type uint - ParameterId["FixedIndex"] = "fixedIndex"; - // DPI_FlipboardZoneID, having type uint - ParameterId["FlipboardZoneID"] = "flipboardZoneId"; - // DPI_ForecastAutoRangeSize, having type uint - ParameterId["ForecastAutoRangeSize"] = "forecastAutoRangeSize"; - // DPI_ForecastEndOfRange, having type uint - ParameterId["ForecastEndOfRange"] = "forecastEndOfRange"; - // DPI_ForecastIgnoreLast, having type uint - ParameterId["ForecastIgnoreLast"] = "forecastIgnoreLast"; - // DPI_ForecastNextRangeSize, having type uint - ParameterId["ForecastNextRangeSize"] = "forecastNextRangeSize"; - // DPI_GroupFlags, having type uint - ParameterId["GroupFlags"] = "groupFlag"; - // DPI_HierarchyLevels, having type uint - ParameterId["HierarchyLevels"] = "hierarchyLevels"; - // DPI_HierarchyMemberId, having type uint - ParameterId["HierarchyMemberId"] = "hierarchyMemberId"; - // DPI_HitTestFlags, having type uint - ParameterId["HitTestFlags"] = "hitTestFlags"; - // DPI_ImageHeight, having type uint - ParameterId["ImageHeight"] = "imageHeight"; - // DPI_ImageWidth, having type uint - ParameterId["ImageWidth"] = "imageWidth"; - // DPI_ItemIndex, having type uint - ParameterId["ItemIndex"] = "itemIndex"; - // DPI_ItemIndex1, having type uint - ParameterId["ItemIndex1"] = "itemIndex1"; - // DPI_LineHeight, having type uint - ParameterId["LineHeight"] = "lineHeight"; - // DPI_MapIntermediateLevels, having type uint - ParameterId["MapIntermediateLevels"] = "mapIntermediateLevels"; - // DPI_MapWorldRepeats, having type uint - ParameterId["MapWorldRepeats"] = "mapWorldRepeats"; - // DPI_MaxAlpha, having type uint - ParameterId["MaxAlpha"] = "maxAlpha"; - // DPI_MaxHeight, having type uint - ParameterId["MaxHeight"] = "maxHeight"; - // DPI_MaxNumberWebListItems, having type uint - ParameterId["MaxNumberWebListItems"] = "maxNumberWebListItems"; - // DPI_MaxPrevOrNextValues, having type uint - ParameterId["MaxPrevOrNextValues"] = "maxPrevOrNextValues"; - // DPI_MaxRows, having type uint - ParameterId["MaxRows"] = "maxRows"; - // DPI_MaxTransparency, having type uint - ParameterId["MaxTransparency"] = "colorMaxTransparencyValue"; - // DPI_MaxWidth, having type uint - ParameterId["MaxWidth"] = "maxWidth"; - // DPI_MinColumns, having type uint - ParameterId["MinColumns"] = "minColumns"; - // DPI_MinHeight, having type uint - ParameterId["MinHeight"] = "minHeight"; - // DPI_MinPrevOrNextValues, having type uint - ParameterId["MinPrevOrNextValues"] = "minPrevOrNextValues"; - // DPI_MinTransparency, having type uint - ParameterId["MinTransparency"] = "colorMinTransparencyValue"; - // DPI_MinWidth, having type uint - ParameterId["MinWidth"] = "minWidth"; - // DPI_NestedCalcsIndex, having type uint - ParameterId["NestedCalcsIndex"] = "nestedCalcsIndex"; - // DPI_NextValues, having type uint - ParameterId["NextValues"] = "nextValues"; - // DPI_NodeLevel, having type uint - ParameterId["NodeLevel"] = "nodeLevel"; - // DPI_NumHighlighted, having type uint - ParameterId["NumHighlighted"] = "numHighlighted"; - // DPI_NumberOfNextValues, having type uint - ParameterId["NumberOfNextValues"] = "numberOfNextValues"; - // DPI_NumberOfPrevValues, having type uint - ParameterId["NumberOfPrevValues"] = "numberOfPrevValues"; - // DPI_ObjectID, having type uint - ParameterId["ObjectID"] = "objectId"; - // DPI_OrderingTypeIndex, having type uint - ParameterId["OrderingTypeIndex"] = "orderingTypeIndex"; - // DPI_PageCount, having type uint - ParameterId["PageCount"] = "pageCount"; - // DPI_PageFadeEnd, having type uint - ParameterId["PageFadeEnd"] = "fadeEnd"; - // DPI_PageFadeStart, having type uint - ParameterId["PageFadeStart"] = "fadeStart"; - // DPI_PageIndex, having type uint - ParameterId["PageIndex"] = "pageIndex"; - // DPI_PageNumber, having type uint - ParameterId["PageNumber"] = "pageNumber"; - // DPI_PageScalePercent, having type uint - ParameterId["PageScalePercent"] = "pageScalePercent"; - // DPI_PageTrailLength, having type uint - ParameterId["PageTrailLength"] = "historyLength"; - // DPI_PaletteFlagsVal, having type uint - ParameterId["PaletteFlagsVal"] = "paletteFlagsVal"; - // DPI_PaneIndex, having type uint - ParameterId["PaneIndex"] = "paneIndex"; - // DPI_ParamCtrlDisplayFlags, having type uint - ParameterId["ParamCtrlDisplayFlags"] = "paramDisplayFlags"; - // DPI_ParentZoneID, having type uint - ParameterId["ParentZoneID"] = "parentZoneId"; - // DPI_PercentileParam, having type uint - ParameterId["PercentileParam"] = "percentileParam"; - // DPI_PrevValues, having type uint - ParameterId["PrevValues"] = "prevValues"; - // DPI_QRGBColor, having type uint - ParameterId["QRGBColor"] = "qrgbColor"; - // DPI_RangeN, having type uint - ParameterId["RangeN"] = "rangeN"; - // DPI_RankTypeIndex, having type uint - ParameterId["RankTypeIndex"] = "rankTypeIndex"; - // DPI_RenderComplexity, having type uint - ParameterId["RenderComplexity"] = "renderComplexityLimit"; - // DPI_RowIndex, having type uint - ParameterId["RowIndex"] = "rowIndex"; - // DPI_SelectedAuthSettingIndex, having type uint - ParameterId["SelectedAuthSettingIndex"] = "selectedAuthSettingIndex"; - // DPI_SelectedFullScheduleIndex, having type uint - ParameterId["SelectedFullScheduleIndex"] = "selectedFullScheduleIndex"; - // DPI_SelectedIncrScheduleIndex, having type uint - ParameterId["SelectedIncrScheduleIndex"] = "selectedIncrScheduleIndex"; - // DPI_SelectedPublishChoiceIndex, having type uint - ParameterId["SelectedPublishChoiceIndex"] = "selectedPublishChoiceIndex"; - // DPI_SelectedMemberCount, having type uint - ParameterId["SelectedMemberCount"] = "selectedMemberCount"; - // DPI_ShapeID, having type uint - ParameterId["ShapeID"] = "shapeId"; - // DPI_SheetUseCount, having type uint - ParameterId["SheetUseCount"] = "useCount"; - // DPI_ShelfItemID, having type uint - ParameterId["ShelfItemID"] = "shelfItemId"; - // DPI_SigFigs, having type uint - ParameterId["SigFigs"] = "sigFigs"; - // DPI_SortAggIndex, having type uint - ParameterId["SortAggIndex"] = "sortAggIndvValues"; - // DPI_SortColumnIndex, having type uint - ParameterId["SortColumnIndex"] = "sortColumnIndex"; - // DPI_SortDirectionIndex, having type uint - ParameterId["SortDirectionIndex"] = "sortDirectionIndex"; - // DPI_SortFieldIndex, having type uint - ParameterId["SortFieldIndex"] = "sortFieldIndex"; - // DPI_StartIndex, having type uint - ParameterId["StartIndex"] = "startIndex"; - // DPI_StartOfWeek, having type uint - ParameterId["StartOfWeek"] = "startOfWeek"; - // DPI_StoryPointID, having type uint - ParameterId["StoryPointID"] = "storyPointId"; - // DPI_TableCalcTypeIndex, having type uint - ParameterId["TableCalcTypeIndex"] = "tableCalcTypeIndex"; - // DPI_TableCalcTypesUsed, having type uint - ParameterId["TableCalcTypesUsed"] = "tableCalcTypesUsed"; - // DPI_TemplateIndex, having type uint - ParameterId["TemplateIndex"] = "templateIndex"; - // DPI_TileCount, having type uint - ParameterId["TileCount"] = "tileCount"; - // DPI_TimeoutSeconds, having type uint - ParameterId["TimeoutSeconds"] = "timeoutSeconds"; - // DPI_TopN, having type uint - ParameterId["TopN"] = "topN"; - // DPI_TotalNumberOfItemsInSet, having type uint - ParameterId["TotalNumberOfItemsInSet"] = "totalNumberOfItemsInSet"; - // DPI_TotalMemberCount, having type uint - ParameterId["TotalMemberCount"] = "totalMemberCount"; - // DPI_Transparency, having type uint - ParameterId["Transparency"] = "colorTransparencyValue"; - // DPI_TupleID, having type uint - ParameterId["TupleID"] = "tupleId"; - // DPI_UIndex, having type uint - ParameterId["UIndex"] = "uindex"; - // DPI_UndoPosition, having type uint - ParameterId["UndoPosition"] = "undoPosition"; - // DPI_UnsignedWidth, having type uint - ParameterId["UnsignedWidth"] = "uw"; - // DPI_UnsignedWidthBottom, having type uint - ParameterId["UnsignedWidthBottom"] = "uwb"; - // DPI_UnsignedWidthLeft, having type uint - ParameterId["UnsignedWidthLeft"] = "uwl"; - // DPI_UnsignedWidthRight, having type uint - ParameterId["UnsignedWidthRight"] = "uwr"; - // DPI_UnsignedWidthTop, having type uint - ParameterId["UnsignedWidthTop"] = "uwt"; - // DPI_ValueIndex, having type uint - ParameterId["ValueIndex"] = "valueIndex"; - // DPI_ValueInt, having type uint - ParameterId["ValueInt"] = "valueInt"; - // DPI_WorldOffset, having type uint - ParameterId["WorldOffset"] = "worldOffset"; - // DPI_XDuplicateIndex, having type uint - ParameterId["XDuplicateIndex"] = "xDuplicateIndex"; - // DPI_XIndex, having type uint - ParameterId["XIndex"] = "xIndex"; - // DPI_YDuplicateIndex, having type uint - ParameterId["YDuplicateIndex"] = "yDuplicateIndex"; - // DPI_YIndex, having type uint - ParameterId["YIndex"] = "yIndex"; - // DPI_ZoneID, having type uint - ParameterId["ZoneID"] = "zoneId"; - // DPI_ZoneZOrder, having type uint - ParameterId["ZoneZOrder"] = "zoneZOrder"; - // DPI_ComponentID, having type uint - ParameterId["ComponentID"] = "componentId"; - // DPI_NonThreadPoolUseCount, having type uint - ParameterId["NonThreadPoolUseCount"] = "nonThreadPoolUseCount"; - // DPI_AddressingIndices, having type uint[] - ParameterId["AddressingIndices"] = "addressingIndices"; - // DPI_AddressingInvalidIndices, having type uint[] - ParameterId["AddressingInvalidIndices"] = "addressingInvalidIndices"; - // DPI_ChildZoneIds, having type uint[] - ParameterId["ChildZoneIds"] = "childZoneIds"; - // DPI_ColorList, having type uint[] - ParameterId["ColorList"] = "colorList"; - // DPI_DuplicateIndices, having type uint[] - ParameterId["DuplicateIndices"] = "duplicateIndices"; - // DPI_FilterAddIndices, having type uint[] - ParameterId["FilterAddIndices"] = "filterAddIndices"; - // DPI_FilterIndices, having type uint[] - ParameterId["FilterIndices"] = "filterIndices"; - // DPI_FilterLevelAdd, having type uint[] - ParameterId["FilterLevelAdd"] = "filterLevelAdd"; - // DPI_FilterLevelRemove, having type uint[] - ParameterId["FilterLevelRemove"] = "filterLevelRemove"; - // DPI_FilterLevels, having type uint[] - ParameterId["FilterLevels"] = "filterLevels"; - // DPI_FilterRemoveIndices, having type uint[] - ParameterId["FilterRemoveIndices"] = "filterRemoveIndices"; - // DPI_FixedValues, having type uint[] - ParameterId["FixedValues"] = "fixedValues"; - // DPI_HierarchyMemberIdList, having type uint[] - ParameterId["HierarchyMemberIdList"] = "hierarchyMemberIdList"; - // DPI_InvalidIndices, having type uint[] - ParameterId["InvalidIndices"] = "invalidIndices"; - // DPI_ItemIndices, having type uint[] - ParameterId["ItemIndices"] = "itemIndices"; - // DPI_LineTupleIDs, having type uint[] - ParameterId["LineTupleIDs"] = "lineTupleIds"; - // DPI_ObjectIDs, having type uint[] - ParameterId["ObjectIDs"] = "objectIds"; - // DPI_PageIndices, having type uint[] - ParameterId["PageIndices"] = "pageIndices"; - // DPI_QRGB, having type uint[] - ParameterId["QRGB"] = "qrgbList"; - // DPI_QRGBColors, having type uint[] - ParameterId["QRGBColors"] = "qrgbColors"; - // DPI_RefLineID, having type uint[] - ParameterId["RefLineID"] = "reflineId"; - // DPI_ShapeIDs, having type uint[] - ParameterId["ShapeIDs"] = "shapeIds"; - // DPI_ShelfSelection, having type uint[] - ParameterId["ShelfSelection"] = "shelfSelection"; - // DPI_StoryPointIDs, having type uint[] - ParameterId["StoryPointIDs"] = "storyPointIds"; - // DPI_TupleIDs, having type uint[] - ParameterId["TupleIDs"] = "tupleIds"; - // DPI_Widths, having type uint[] - ParameterId["Widths"] = "widths"; - // DPI_UintMap, having type Dictionary(of uint32_t) - ParameterId["UintMap"] = "uintMap"; - // DPI_Alpha, having type float - ParameterId["Alpha"] = "alpha"; - // DPI_Angle, having type float - ParameterId["Angle"] = "angle"; - // DPI_AutomaticDrillValueInVector, having type float - ParameterId["AutomaticDrillValueInVector"] = "automaticDrillValueInVector"; - // DPI_DevicePixelRatio, having type float - ParameterId["DevicePixelRatio"] = "devicePixelRatio"; - // DPI_Distance, having type float - ParameterId["Distance"] = "distance"; - // DPI_FloatX, having type float - ParameterId["FloatX"] = "floatX"; - // DPI_FloatY, having type float - ParameterId["FloatY"] = "floatY"; - // DPI_FogDesaturation, having type float - ParameterId["FogDesaturation"] = "fogDesaturation"; - // DPI_MarkScale, having type float - ParameterId["MarkScale"] = "markScale"; - // DPI_MarkSizeInPixelUnits, having type float - ParameterId["MarkSizeInPixelUnits"] = "markSizeInPixelUnits"; - // DPI_PointSize, having type float - ParameterId["PointSize"] = "pointSize"; - // DPI_StrokeWidth, having type float - ParameterId["StrokeWidth"] = "strokeWidth"; - // DPI_TextRegionOrientation, having type float - ParameterId["TextRegionOrientation"] = "orientation"; - // DPI_TransformAngle, having type float - ParameterId["TransformAngle"] = "transformAngle"; - // DPI_ZoomLevel, having type float - ParameterId["ZoomLevel"] = "zoomLevel"; - // DPI_OldZoomLevel, having type float - ParameterId["OldZoomLevel"] = "oldZoomLevel"; - // DPI_NewZoomLevel, having type float - ParameterId["NewZoomLevel"] = "newZoomLevel"; - // DPI_AspectRatio, having type float - ParameterId["AspectRatio"] = "aspectRatio"; - // DPI_BottomPrintMargin, having type float - ParameterId["BottomPrintMargin"] = "bottomPrintMargin"; - // DPI_EarthRadius, having type float - ParameterId["EarthRadius"] = "earthRadius"; - // DPI_FloatHeight, having type float - ParameterId["FloatHeight"] = "floatHeight"; - // DPI_FloatLeft, having type float - ParameterId["FloatLeft"] = "floatLeft"; - // DPI_FloatRadius, having type float - ParameterId["FloatRadius"] = "floatRadius"; - // DPI_FloatTop, having type float - ParameterId["FloatTop"] = "floatTop"; - // DPI_FloatWidth, having type float - ParameterId["FloatWidth"] = "floatWidth"; - // DPI_LeftPrintMargin, having type float - ParameterId["LeftPrintMargin"] = "leftPrintMargin"; - // DPI_MapCenterLatitude, having type float - ParameterId["MapCenterLatitude"] = "mapCenterLatitude"; - // DPI_MapCenterLongitude, having type float - ParameterId["MapCenterLongitude"] = "mapCenterLongitude"; - // DPI_MapDisplayScale, having type float - ParameterId["MapDisplayScale"] = "mapDisplayScale"; - // DPI_MapMaxStretch, having type float - ParameterId["MapMaxStretch"] = "mapMaxStretch"; - // DPI_MapMaxZoom, having type float - ParameterId["MapMaxZoom"] = "mapMaxZoom"; - // DPI_MapMinShrink, having type float - ParameterId["MapMinShrink"] = "mapMinShrink"; - // DPI_MapMinZoom, having type float - ParameterId["MapMinZoom"] = "mapMinZoom"; - // DPI_MapRequestZoom, having type float - ParameterId["MapRequestZoom"] = "mapRequestZoom"; - // DPI_MapWashout, having type float - ParameterId["MapWashout"] = "mapWashout"; - // DPI_MaxLatitude, having type float - ParameterId["MaxLatitude"] = "maxLatitude"; - // DPI_MaxLongitude, having type float - ParameterId["MaxLongitude"] = "maxLongitude"; - // DPI_MinLatitude, having type float - ParameterId["MinLatitude"] = "minLatitude"; - // DPI_MinLongitude, having type float - ParameterId["MinLongitude"] = "minLongitude"; - // DPI_RightPrintMargin, having type float - ParameterId["RightPrintMargin"] = "rightPrintMargin"; - // DPI_TopPrintMargin, having type float - ParameterId["TopPrintMargin"] = "topPrintMargin"; - // DPI_UIAutomationMaximum, having type float - ParameterId["UIAutomationMaximum"] = "uiAutomationMaximum"; - // DPI_UIAutomationMinimum, having type float - ParameterId["UIAutomationMinimum"] = "uiAutomationMinimum"; - // DPI_UIAutomationOffset, having type float - ParameterId["UIAutomationOffset"] = "uiAutomationOffset"; - // DPI_UnitDivisor, having type float - ParameterId["UnitDivisor"] = "unitDivisor"; - // DPI_UnitTransition, having type float - ParameterId["UnitTransition"] = "unitTransition"; - // DPI_AutomaticDrillIdx, having type float[] - ParameterId["AutomaticDrillIdx"] = "automaticDrillIdx"; - // DPI_DestinationBox, having type float[] - ParameterId["DestinationBox"] = "destBox"; - // DPI_LowerEnd, having type float[] - ParameterId["LowerEnd"] = "lowerEnd"; - // DPI_OppositeAxis, having type float[] - ParameterId["OppositeAxis"] = "oppositeAxis"; - // DPI_PointsF, having type float[] - ParameterId["PointsF"] = "pointsF"; - // DPI_SourceBox, having type float[] - ParameterId["SourceBox"] = "sourceBox"; - // DPI_TransformOffset, having type float[] - ParameterId["TransformOffset"] = "transformOffset"; - // DPI_TransformScale, having type float[] - ParameterId["TransformScale"] = "transformScale"; - // DPI_UpperEnd, having type float[] - ParameterId["UpperEnd"] = "upperEnd"; - // DPI_FloatMap, having type Dictionary(of float) - ParameterId["FloatMap"] = "floatMap"; - // DPI_BGSS, having type double - ParameterId["BGSS"] = "betweenGroupSumOfSquares"; - // DPI_ConfidenceLevel, having type double - ParameterId["ConfidenceLevel"] = "confidenceLevel"; - // DPI_ConfidencePercentage, having type double - ParameterId["ConfidencePercentage"] = "confidencePercentage"; - // DPI_DoubleLeft, having type double - ParameterId["DoubleLeft"] = "doubleLeft"; - // DPI_DoubleTop, having type double - ParameterId["DoubleTop"] = "doubleTop"; - // DPI_DoubleValue, having type double - ParameterId["DoubleValue"] = "doubleValue"; - // DPI_DoubleX, having type double - ParameterId["DoubleX"] = "doubleX"; - // DPI_DoubleY, having type double - ParameterId["DoubleY"] = "doubleY"; - // DPI_FStatistic, having type double - ParameterId["FStatistic"] = "fStatistic"; - // DPI_FilterRangeMax, having type double - ParameterId["FilterRangeMax"] = "filterRangeMax"; - // DPI_FilterRangeMin, having type double - ParameterId["FilterRangeMin"] = "filterRangeMin"; - // DPI_GeographicSearchCandidateScore, having type double - ParameterId["GeographicSearchCandidateScore"] = "geographicSearchCandidateScore"; - // DPI_HeightD, having type double - ParameterId["HeightD"] = "height"; - // DPI_InflectionFraction, having type double - ParameterId["InflectionFraction"] = "inflectionFraction"; - // DPI_InflectionValue, having type double - ParameterId["InflectionValue"] = "inflectionValue"; - // DPI_MSE, having type double - ParameterId["MSE"] = "meanSquaredError"; - // DPI_MSM, having type double - ParameterId["MSM"] = "meanSquaredModel"; - // DPI_MapScaleMarginOfError, having type double - ParameterId["MapScaleMarginOfError"] = "mapScaleMarginOfError"; - // DPI_MarkSize, having type double - ParameterId["MarkSize"] = "markSize"; - // DPI_MaxMarkSize, having type double - ParameterId["MaxMarkSize"] = "maxMarkSize"; - // DPI_MinMarkSize, having type double - ParameterId["MinMarkSize"] = "minMarkSize"; - // DPI_NotchPosition, having type double - ParameterId["NotchPosition"] = "notchPosition"; - // DPI_NotchValue, having type double - ParameterId["NotchValue"] = "notchValue"; - // DPI_PValue, having type double - ParameterId["PValue"] = "pValue"; - // DPI_PercentDimensions, having type double - ParameterId["PercentDimensions"] = "percentDimensions"; - // DPI_PercentGroups, having type double - ParameterId["PercentGroups"] = "percentGroups"; - // DPI_PercentMeasures, having type double - ParameterId["PercentMeasures"] = "percentMeasures"; - // DPI_RSquared, having type double - ParameterId["RSquared"] = "rSquared"; - // DPI_SSE, having type double - ParameterId["SSE"] = "sumSquaredError"; - // DPI_SSM, having type double - ParameterId["SSM"] = "sumSquaredModel"; - // DPI_StandardError, having type double - ParameterId["StandardError"] = "standardError"; - // DPI_TSS, having type double - ParameterId["TSS"] = "totalSumOfSquares"; - // DPI_WGSS, having type double - ParameterId["WGSS"] = "withinGroupSumOfSquares"; - // DPI_WidthD, having type double - ParameterId["WidthD"] = "width"; - // DPI_ZoomFactor, having type double - ParameterId["ZoomFactor"] = "zoomFactor"; - // DPI_CoefficientPValueVec, having type double[] - ParameterId["CoefficientPValueVec"] = "coefficientPValueVector"; - // DPI_CoefficientStdErrVec, having type double[] - ParameterId["CoefficientStdErrVec"] = "coefficientStdErrorVector"; - // DPI_CoefficientTValueVec, having type double[] - ParameterId["CoefficientTValueVec"] = "coefficientTValueVector"; - // DPI_CoefficientVec, having type double[] - ParameterId["CoefficientVec"] = "coefficientVector"; - // DPI_FStatisticVec, having type double[] - ParameterId["FStatisticVec"] = "trendLineFStatisticVector"; - // DPI_Factors, having type double[] - ParameterId["Factors"] = "factors"; - // DPI_MSEVec, having type double[] - ParameterId["MSEVec"] = "meanSquaredErrorVector"; - // DPI_Means, having type double[] - ParameterId["Means"] = "means"; - // DPI_PValueVec, having type double[] - ParameterId["PValueVec"] = "pValueVector"; - // DPI_Percentages, having type double[] - ParameterId["Percentages"] = "percentages"; - // DPI_Percentiles, having type double[] - ParameterId["Percentiles"] = "percentiles"; - // DPI_SSEVec, having type double[] - ParameterId["SSEVec"] = "sumSquaredErrorVector"; - // DPI_StDevs, having type double[] - ParameterId["StDevs"] = "stdev"; - // DPI_UnscaledMeans, having type double[] - ParameterId["UnscaledMeans"] = "unscaledMeans"; - // DPI_DeltaTimeMs, having type long - ParameterId["DeltaTimeMs"] = "deltaTimeMs"; - // DPI_ExtractHistoryRowCount, having type long - ParameterId["ExtractHistoryRowCount"] = "extractRowCount"; - // DPI_ExtractHistoryRowsRemoved, having type long - ParameterId["ExtractHistoryRowsRemoved"] = "extractRowsRemoved"; - // DPI_ExtractsSize, having type long - ParameterId["ExtractsSize"] = "extractsSize"; - // DPI_OldExtractSize, having type long - ParameterId["OldExtractSize"] = "oldExtractSize"; - // DPI_RowsInserted, having type long - ParameterId["RowsInserted"] = "rowsInserted"; - // DPI_SampleSize, having type long - ParameterId["SampleSize"] = "sampleSize"; - // DPI_SampleSpace, having type long - ParameterId["SampleSpace"] = "sampleSpace"; - // DPI_ThreadPoolUseCount, having type long - ParameterId["ThreadPoolUseCount"] = "threadPoolUseCount"; - // DPI_ActionId, having type string - ParameterId["ActionId"] = "actionId"; - // DPI_AxisColumn, having type string - ParameterId["AxisColumn"] = "axisColumn"; - // DPI_BaseColumnName, having type string - ParameterId["BaseColumnName"] = "baseColumnName"; - // DPI_PairedFieldName, having type string - ParameterId["PairedFieldName"] = "pairedFn"; - // DPI_FieldNameAllowEmpty, having type string - ParameterId["FieldNameAllowEmpty"] = "fieldNameAllowEmpty"; - // DPI_FieldNameDisAgg, having type string - ParameterId["FieldNameDisAgg"] = "fnDisagg"; - // DPI_FieldNameLocal, having type string - ParameterId["FieldNameLocal"] = "fieldNameLocal"; - // DPI_FieldNamePrev, having type string - ParameterId["FieldNamePrev"] = "fnPrev"; - // DPI_FieldNameSource, having type string - ParameterId["FieldNameSource"] = "fnSource"; - // DPI_FieldNameTarget, having type string - ParameterId["FieldNameTarget"] = "fnTarget"; - // DPI_FieldNameX, having type string - ParameterId["FieldNameX"] = "fnX"; - // DPI_FieldNameY, having type string - ParameterId["FieldNameY"] = "fnY"; - // DPI_FieldToSort, having type string - ParameterId["FieldToSort"] = "fieldToSort"; - // DPI_GlobalFieldName, having type string - ParameterId["GlobalFieldName"] = "globalFieldName"; - // DPI_HierarchyName, having type string - ParameterId["HierarchyName"] = "hierarchyName"; - // DPI_InvalidAggFieldName, having type string - ParameterId["InvalidAggFieldName"] = "invalidAggFieldName"; - // DPI_InvalidFieldName, having type string - ParameterId["InvalidFieldName"] = "invalidFieldName"; - // DPI_LimitParameterName, having type string - ParameterId["LimitParameterName"] = "limitParameterName"; - // DPI_LocalBaseColumnName, having type string - ParameterId["LocalBaseColumnName"] = "localBaseColumnName"; - // DPI_MeasureName, having type string - ParameterId["MeasureName"] = "measureName"; - // DPI_NestedCalcField, having type string - ParameterId["NestedCalcField"] = "nestedCalcFn"; - // DPI_ParameterName, having type string - ParameterId["ParameterName"] = "parameterName"; - // DPI_ReferenceParam, having type string - ParameterId["ReferenceParam"] = "referenceParam"; - // DPI_ReplacementFieldName, having type string - ParameterId["ReplacementFieldName"] = "replacementFieldName"; - // DPI_RHSTableAlias, having type string - ParameterId["RHSTableAlias"] = "rhsTableAlias"; - // DPI_SortMeasureName, having type string - ParameterId["SortMeasureName"] = "sortMeasureName"; - // DPI_UniqueName, having type string - ParameterId["UniqueName"] = "uniqueName"; - // DPI_ValueColumn, having type string - ParameterId["ValueColumn"] = "valueColumn"; - // DPI_PairedValueColumn, having type string - ParameterId["PairedValueColumn"] = "pairedValueColumn"; - // DPI_ActionIds, having type string[] - ParameterId["ActionIds"] = "actionIds"; - // DPI_AddressingValues, having type string[] - ParameterId["AddressingValues"] = "addressingValues"; - // DPI_AllColumns, having type string[] - ParameterId["AllColumns"] = "allColumns"; - // DPI_AtTheLevelValues, having type string[] - ParameterId["AtTheLevelValues"] = "atTheLevelValues"; - // DPI_AutomaticDrillFieldName, having type string[] - ParameterId["AutomaticDrillFieldName"] = "automaticDrillFieldName"; - // DPI_BlendingFieldCandidates, having type string[] - ParameterId["BlendingFieldCandidates"] = "blendingFieldCandidates"; - // DPI_Columns, having type string[] - ParameterId["Columns"] = "columns"; - // DPI_CurrentBlendingFields, having type string[] - ParameterId["CurrentBlendingFields"] = "currentBlendingFields"; - // DPI_DimensionsToSort, having type string[] - ParameterId["DimensionsToSort"] = "dimensionsToSort"; - // DPI_DrillFieldVector, having type string[] - ParameterId["DrillFieldVector"] = "drillFieldVector"; - // DPI_EncodingFieldVector, having type string[] - ParameterId["EncodingFieldVector"] = "encodingFieldVector"; - // DPI_FieldVector, having type string[] - ParameterId["FieldVector"] = "fieldVector"; - // DPI_FilterFields, having type string[] - ParameterId["FilterFields"] = "filterFields"; - // DPI_LODFieldVector, having type string[] - ParameterId["LODFieldVector"] = "lodFieldVector"; - // DPI_LegendColumns, having type string[] - ParameterId["LegendColumns"] = "legendColumns"; - // DPI_LegendNames, having type string[] - ParameterId["LegendNames"] = "legendNames"; - // DPI_NodeColumns, having type string[] - ParameterId["NodeColumns"] = "nodeColumns"; - // DPI_PageFields, having type string[] - ParameterId["PageFields"] = "pageFields"; - // DPI_ParamValues, having type string[] - ParameterId["ParamValues"] = "paramValues"; - // DPI_RefLineFields, having type string[] - ParameterId["RefLineFields"] = "reflineFields"; - // DPI_ReferencedColumns, having type string[] - ParameterId["ReferencedColumns"] = "referencedColumns"; - // DPI_RelatedFieldNames, having type string[] - ParameterId["RelatedFieldNames"] = "relatedFieldNames"; - // DPI_RemoveActionResults, having type string[] - ParameterId["RemoveActionResults"] = "removeActionResults"; - // DPI_ResponseVector, having type string[] - ParameterId["ResponseVector"] = "responseVector"; - // DPI_RestartEveryValues, having type string[] - ParameterId["RestartEveryValues"] = "restartEveryValues"; - // DPI_ResultFields, having type string[] - ParameterId["ResultFields"] = "resultFields"; - // DPI_SortFieldValues, having type string[] - ParameterId["SortFieldValues"] = "sortFieldValues"; - // DPI_XFields, having type string[] - ParameterId["XFields"] = "xFields"; - // DPI_YFields, having type string[] - ParameterId["YFields"] = "yFields"; - // DPI_ConnectionFullName, having type string - ParameterId["ConnectionFullName"] = "connectionFullName"; - // DPI_ConnectionFullNames, having type string[] - ParameterId["ConnectionFullNames"] = "connectionFullNames"; - // DPI_BoundDataValue, having type object - ParameterId["BoundDataValue"] = "boundDataValue"; - // DPI_DataValue, having type object - ParameterId["DataValue"] = "dataValue"; - // DPI_DataValueIncrement, having type object - ParameterId["DataValueIncrement"] = "dataValueIncrement"; - // DPI_DataValueLowerX, having type object - ParameterId["DataValueLowerX"] = "dataValueLowerX"; - // DPI_DataValueLowerY, having type object - ParameterId["DataValueLowerY"] = "dataValueLowerY"; - // DPI_DataValueUpperX, having type object - ParameterId["DataValueUpperX"] = "dataValueUpperX"; - // DPI_DataValueUpperY, having type object - ParameterId["DataValueUpperY"] = "dataValueUpperY"; - // DPI_DefaultDataValue, having type object - ParameterId["DefaultDataValue"] = "defaultDataValue"; - // DPI_MaxDataValue, having type object - ParameterId["MaxDataValue"] = "maxDataValue"; - // DPI_MinDataValue, having type object - ParameterId["MinDataValue"] = "minDataValue"; - // DPI_ValidatedDataValue, having type object - ParameterId["ValidatedDataValue"] = "validatedDataValue"; - // DPI_BinSize, having type object - ParameterId["BinSize"] = "binSize"; - // DPI_LimitCount, having type object - ParameterId["LimitCount"] = "limitCount"; - // DPI_DataValueList, having type object[] - ParameterId["DataValueList"] = "dataValueList"; - // DPI_FieldCaptionPair, having type FieldCaptionPairPresModel - ParameterId["FieldCaptionPair"] = "fieldCaptionPair"; - // DPI_FieldCaptionPairs, having type FieldCaptionPairPresModel[] - ParameterId["FieldCaptionPairs"] = "fieldCaptionPairs"; - // DPI_ParameterCaptionPairs, having type FieldCaptionPairPresModel[] - ParameterId["ParameterCaptionPairs"] = "parameterCaptionPairs"; - // DPI_VaryingAttributeDimensions, having type FieldCaptionPairPresModel[] - ParameterId["VaryingAttributeDimensions"] = "varyingAttributeDimensions"; - // DPI_FieldCaptionPairState, having type FieldCaptionPairStatePresModel - ParameterId["FieldCaptionPairState"] = "fieldCaptionPairState"; - // DPI_FieldCaptionPairStates, having type FieldCaptionPairStatePresModel[] - ParameterId["FieldCaptionPairStates"] = "fieldCaptionPairStates"; - // DPI_DatasourceCaptionPair, having type DatasourceCaptionPairPresModel - ParameterId["DatasourceCaptionPair"] = "datasourceCaptionPair"; - // DPI_DatasourceCaptionPairs, having type DatasourceCaptionPairPresModel[] - ParameterId["DatasourceCaptionPairs"] = "datasourceCaptionPairs"; - // DPI_SheetNameInfoPair, having type SheetNameInfoPairPresModel - ParameterId["SheetNameInfoPair"] = "sheetNameInfoPair"; - // DPI_SheetNameInfoPairs, having type SheetNameInfoPairPresModel[] - ParameterId["SheetNameInfoPairs"] = "sheetNameInfoPairs"; - // DPI_BGActiveColor, having type string - ParameterId["BGActiveColor"] = "bgActiveColor"; - // DPI_BGColor, having type string - ParameterId["BGColor"] = "bgColor"; - // DPI_BGRestColor, having type string - ParameterId["BGRestColor"] = "bgRestColor"; - // DPI_BorderColor, having type string - ParameterId["BorderColor"] = "borderColor"; - // DPI_BorderColorBottom, having type string - ParameterId["BorderColorBottom"] = "borderColorBottom"; - // DPI_BorderColorLeft, having type string - ParameterId["BorderColorLeft"] = "borderColorLeft"; - // DPI_BorderColorRight, having type string - ParameterId["BorderColorRight"] = "borderColorRight"; - // DPI_BorderColorTop, having type string - ParameterId["BorderColorTop"] = "borderColorTop"; - // DPI_Color, having type string - ParameterId["Color"] = "color"; - // DPI_Color1, having type string - ParameterId["Color1"] = "color1"; - // DPI_Color2, having type string - ParameterId["Color2"] = "color2"; - // DPI_DefaultColor, having type string - ParameterId["DefaultColor"] = "defaultColor"; - // DPI_DistanceFontColor, having type string - ParameterId["DistanceFontColor"] = "distanceFontColor"; - // DPI_FillColor, having type string - ParameterId["FillColor"] = "fillColor"; - // DPI_FogColor, having type string - ParameterId["FogColor"] = "fogColor"; - // DPI_HeaderColor, having type string - ParameterId["HeaderColor"] = "headerColor"; - // DPI_HighlightBGColor, having type string - ParameterId["HighlightBGColor"] = "highlightBgColor"; - // DPI_HighlightTextColor, having type string - ParameterId["HighlightTextColor"] = "highlightTextColor"; - // DPI_HoverColor, having type string - ParameterId["HoverColor"] = "hoverColor"; - // DPI_MapAttributionFill, having type string - ParameterId["MapAttributionFill"] = "mapAttributionFill"; - // DPI_MapAttributionTextColor, having type string - ParameterId["MapAttributionTextColor"] = "mapAttributionTextColor"; - // DPI_MapPaneBackgroundFill, having type string - ParameterId["MapPaneBackgroundFill"] = "mapPaneBackgroundFill"; - // DPI_MapScaleBorderColor, having type string - ParameterId["MapScaleBorderColor"] = "mapScaleBorderColor"; - // DPI_MapScaleColor, having type string - ParameterId["MapScaleColor"] = "mapScaleColor"; - // DPI_MapWaitTileFill, having type string - ParameterId["MapWaitTileFill"] = "mapWaitTileFill"; - // DPI_MarkColor, having type string - ParameterId["MarkColor"] = "markColor"; - // DPI_NavArrowDisabledColor, having type string - ParameterId["NavArrowDisabledColor"] = "navArrowDisabledColor"; - // DPI_NavArrowHoverColor, having type string - ParameterId["NavArrowHoverColor"] = "navArrowHoverColor"; - // DPI_NavArrowIdleColor, having type string - ParameterId["NavArrowIdleColor"] = "navArrowIdleColor"; - // DPI_NavArrowPressedColor, having type string - ParameterId["NavArrowPressedColor"] = "navArrowPressedColor"; - // DPI_PaneColor, having type string - ParameterId["PaneColor"] = "paneColor"; - // DPI_PressColor, having type string - ParameterId["PressColor"] = "pressColor"; - // DPI_ResizeBorderColor, having type string - ParameterId["ResizeBorderColor"] = "resizeBorderColor"; - // DPI_SelectBGColor, having type string - ParameterId["SelectBGColor"] = "selectBgColor"; - // DPI_SelectionTextColor, having type string - ParameterId["SelectionTextColor"] = "selectionTextColor"; - // DPI_SwatchBackgroundColor, having type string - ParameterId["SwatchBackgroundColor"] = "swatchBgColor"; - // DPI_SwatchBorderColor, having type string - ParameterId["SwatchBorderColor"] = "swatchBorderColor"; - // DPI_TabColor, having type string - ParameterId["TabColor"] = "tabColor"; - // DPI_Colors, having type string[] - ParameterId["Colors"] = "colors"; - // DPI_RampColorSamples, having type string[] - ParameterId["RampColorSamples"] = "rampColorSamples"; - // DPI_Pixmap, having type string - ParameterId["Pixmap"] = "pixmap"; - // DPI_Image, having type string - ParameterId["Image"] = "image"; - // DPI_OverlayImage, having type string - ParameterId["OverlayImage"] = "overlayImage"; - // DPI_IconImage, having type string - ParameterId["IconImage"] = "iconImage"; - // DPI_ImageList, having type string[] - ParameterId["ImageList"] = "imageList"; - // DPI_ImageMap, having type Dictionary(of string) - ParameterId["ImageMap"] = "imageMap"; - // DPI_UUID, having type object - ParameterId["UUID"] = "uuid"; - // DPI_Nanoseconds, having type object - ParameterId["Nanoseconds"] = "nanoseconds"; - // DPI_Microseconds, having type object - ParameterId["Microseconds"] = "microseconds"; - // DPI_Milliseconds, having type object - ParameterId["Milliseconds"] = "milliseconds"; - // DPI_TimeoutS, having type object - ParameterId["TimeoutS"] = "timeoutS"; - // DPI_Minutes, having type object - ParameterId["Minutes"] = "minutes"; - // DPI_Hours, having type object - ParameterId["Hours"] = "hours"; - // DPI_CardType, having type CardType - ParameterId["CardType"] = "cardType"; - // DPI_DocParameterID, having type string - ParameterId["DocParameterID"] = "type"; - // DPI_ArgumentParam, having type string - ParameterId["ArgumentParam"] = "argumentParam"; - // DPI_ArgumentParams, having type string[] - ParameterId["ArgumentParams"] = "argumentParams"; - // DPI_ActionType, having type ActionType - ParameterId["ActionType"] = "actionType"; - // DPI_AnnotateEnum, having type AnnotateEnum - ParameterId["AnnotateEnum"] = "annotateEnum"; - // DPI_JoinType, having type SQLJoinType - ParameterId["JoinType"] = "joinType"; - // DPI_SupportedJoinTypes, having type SQLJoinType[] - ParameterId["SupportedJoinTypes"] = "supportedJoinTypes"; - // DPI_Rounding, having type Rounding - ParameterId["Rounding"] = "roundingEnum"; - // DPI_BodyType, having type BodyType - ParameterId["BodyType"] = "bodyType"; - // DPI_LineEnd, having type LineEnd - ParameterId["LineEnd"] = "lineEndEnum"; - // DPI_LineEndSize, having type LineEndSize - ParameterId["LineEndSize"] = "lineEndSizeEnum"; - // DPI_BrushSpecialFields, having type BrushSpecialFields - ParameterId["BrushSpecialFields"] = "specialFields"; - // DPI_CellSizeChange, having type CellSizeChange - ParameterId["CellSizeChange"] = "cellSizeChange"; - // DPI_CellType, having type CellType - ParameterId["CellType"] = "cellType"; - // DPI_ConnectionAttemptResult, having type ConnectionAttemptResult - ParameterId["ConnectionAttemptResult"] = "connectionAttemptResult"; - // DPI_ConnectionErrorStage, having type ConnectionErrorStage - ParameterId["ConnectionErrorStage"] = "connectionErrorStage"; - // DPI_ConnectionErrorType, having type ConnectionErrorType - ParameterId["ConnectionErrorType"] = "connectionErrorType"; - // DPI_DataServerConnectionResult, having type DataServerConnectionResult - ParameterId["DataServerConnectionResult"] = "dsConnectionResult"; - // DPI_DropWhen, having type DropWhen - ParameterId["DropWhen"] = "dropWhen"; - // DPI_DropType, having type DropFieldResult - ParameterId["DropType"] = "dropType"; - // DPI_EncodingType, having type EncodingType - ParameterId["EncodingType"] = "encodingType"; - // DPI_DropdownEncodingType, having type EncodingType - ParameterId["DropdownEncodingType"] = "dropdownEncodingType"; - // DPI_EncodingTypes, having type EncodingType[] - ParameterId["EncodingTypes"] = "encodingTypes"; - // DPI_FieldOrderType, having type FieldOrderType - ParameterId["FieldOrderType"] = "fieldOrderType"; - // DPI_FilterIconType, having type FilterIconType - ParameterId["FilterIconType"] = "filterIconType"; - // DPI_FilterIconTypes, having type FilterIconType[] - ParameterId["FilterIconTypes"] = "filterIconTypes"; - // DPI_FloatingToolbarVis, having type FloatingToolbarVisibility - ParameterId["FloatingToolbarVis"] = "toolbarVisibility"; - // DPI_FolderRole, having type FolderRole - ParameterId["FolderRole"] = "folderRole"; - // DPI_LegendType, having type Enum - ParameterId["LegendType"] = "legendType"; - // DPI_ForecastModelType, having type ForecastModelType - ParameterId["ForecastModelType"] = "forecastModelType"; - // DPI_ForecastTrendType, having type ForecastComponentType - ParameterId["ForecastTrendType"] = "forecastTrendType"; - // DPI_ForecastSeasonType, having type ForecastComponentType - ParameterId["ForecastSeasonType"] = "forecastSeasonType"; - // DPI_ForecastRangeType, having type ForecastRangeType - ParameterId["ForecastRangeType"] = "forecastRangeType"; - // DPI_ForecastStatus, having type ForecastStatus - ParameterId["ForecastStatus"] = "forecastStatus"; - // DPI_SheetForecastStatus, having type ForecastStatus - ParameterId["SheetForecastStatus"] = "sheetForecastStatus"; - // DPI_PDForecastStatusList, having type ForecastStatus[] - ParameterId["PDForecastStatusList"] = "paneDescriptorForecastStatusList"; - // DPI_ForecastColumnType, having type ForecastColumnType - ParameterId["ForecastColumnType"] = "forecastColumnType"; - // DPI_DataScaling, having type DataScaling - ParameterId["DataScaling"] = "dataScaling"; - // DPI_GetFilterItemsJsonResponse, having type GetJsonResponseEnum - ParameterId["GetFilterItemsJsonResponse"] = "getFilterItemsJsonResponse"; - // DPI_FilterSearchJsonResponse, having type GetJsonResponseEnum - ParameterId["FilterSearchJsonResponse"] = "filterSearchJsonResponse"; - // DPI_FilterSearchWithIndexJsonResponse, having type GetJsonResponseEnum - ParameterId["FilterSearchWithIndexJsonResponse"] = "filterSearchWithIndexJsonResponse"; - // DPI_FilterShowChildrenJsonResponse, having type GetJsonResponseEnum - ParameterId["FilterShowChildrenJsonResponse"] = "filterShowChildrenJsonResponse"; - // DPI_HAlignment, having type LabelHAlignment - ParameterId["HAlignment"] = "horizontalLabelAlignment"; - // DPI_JoinValidationError, having type JoinValidationError - ParameterId["JoinValidationError"] = "joinValidationError"; - // DPI_NameConflictResolution, having type NameConflictResolution - ParameterId["NameConflictResolution"] = "nameConflictResolution"; - // DPI_LabelDir, having type TextOrient - ParameterId["LabelDir"] = "labelDirection"; - // DPI_LabelAlign, having type TextAlign - ParameterId["LabelAlign"] = "labelAlignment"; - // DPI_LabelWrap, having type TextWrapMode - ParameterId["LabelWrap"] = "labelWrap"; - // DPI_WrapMode, having type TextWrapMode - ParameterId["WrapMode"] = "wrapMode"; - // DPI_MarkEnum, having type MarkEnum - ParameterId["MarkEnum"] = "markEnum"; - // DPI_PercentMode, having type PercentMode - ParameterId["PercentMode"] = "percentageMode"; - // DPI_ReferenceOptionsSet, having type ReferenceOptionsSet - ParameterId["ReferenceOptionsSet"] = "referenceOptionsSet"; - // DPI_ReferenceOptionsSets, having type ReferenceOptionsSet[] - ParameterId["ReferenceOptionsSets"] = "referenceOptionsSets"; - // DPI_RankType, having type RankType - ParameterId["RankType"] = "rankType"; - // DPI_RankTypeValues, having type RankType[] - ParameterId["RankTypeValues"] = "rankTypeValues"; - // DPI_SpecialValuesMode, having type SpecialValuesMode - ParameterId["SpecialValuesMode"] = "specialValuesMode"; - // DPI_VAlignment, having type LabelVAlignment - ParameterId["VAlignment"] = "verticalLabelAlignment"; - // DPI_ColorMode, having type ColorMode - ParameterId["ColorMode"] = "colorMode"; - // DPI_MarkLabelsMode, having type MarkLabelsMode - ParameterId["MarkLabelsMode"] = "markLabelsMode"; - // DPI_MarkLabelsScope, having type MarkLabelsScope - ParameterId["MarkLabelsScope"] = "markLabelsScope"; - // DPI_MarkLabelsVisibility, having type MarkLabelsVisibility - ParameterId["MarkLabelsVisibility"] = "markLabelsVisibility"; - // DPI_PrimitiveType, having type PrimitiveType - ParameterId["PrimitiveType"] = "primitiveType"; - // DPI_ActualPrimitiveType, having type PrimitiveType - ParameterId["ActualPrimitiveType"] = "actualPrimitiveType"; - // DPI_PrimitiveTypes, having type PrimitiveType[] - ParameterId["PrimitiveTypes"] = "primitiveTypes"; - // DPI_ShapeType, having type ShapeType - ParameterId["ShapeType"] = "shapeType"; - // DPI_SortType, having type SortType - ParameterId["SortType"] = "sortBy"; - // DPI_SortEnd, having type SortEnd - ParameterId["SortEnd"] = "sortEnd"; - // DPI_StackingMode, having type StackingMode - ParameterId["StackingMode"] = "stackingMode"; - // DPI_StyleTheme, having type StyleTheme - ParameterId["StyleTheme"] = "styleTheme"; - // DPI_TrendLineFitType, having type TrendLineFitType - ParameterId["TrendLineFitType"] = "fitType"; - // DPI_UpdateScope, having type UpdateScope - ParameterId["UpdateScope"] = "updateScope"; - // DPI_ParameterCtrlDisplayMode, having type DisplayMode - ParameterId["ParameterCtrlDisplayMode"] = "paramDisplayMode"; - // DPI_ParameterCtrlDisplayFlag, having type ParameterCtrlDisplayFlag - ParameterId["ParameterCtrlDisplayFlag"] = "paramDisplayFlag"; - // DPI_Included, having type QuantitativeIncludedValues - ParameterId["Included"] = "included"; - // DPI_CommandsType, having type CommandsType - ParameterId["CommandsType"] = "commandsType"; - // DPI_ParameterDomainType, having type DomainType - ParameterId["ParameterDomainType"] = "parameterDomainType"; - // DPI_FilterDomainType, having type DomainType - ParameterId["FilterDomainType"] = "filterDomainType"; - // DPI_FilterDomains, having type DomainType[] - ParameterId["FilterDomains"] = "filterDomains"; - // DPI_DatePeriodType, having type DatePeriodType - ParameterId["DatePeriodType"] = "datePeriodType"; - // DPI_FilterPatternType, having type PatternType - ParameterId["FilterPatternType"] = "filterPatternType"; - // DPI_FilterConditionType, having type ConditionType - ParameterId["FilterConditionType"] = "filterConditionType"; - // DPI_FiltersPresetType, having type PresetType - ParameterId["FiltersPresetType"] = "filtersPresetType"; - // DPI_FiltersRangeType, having type RangeType - ParameterId["FiltersRangeType"] = "filtersRangeType"; - // DPI_DateRangeType, having type RelativeDateRangeType - ParameterId["DateRangeType"] = "dateRangeType"; - // DPI_PageFlag, having type PageNavFlags - ParameterId["PageFlag"] = "pageFlag"; - // DPI_MarksToTrail, having type MarksToTrail - ParameterId["MarksToTrail"] = "marksToTrail"; - // DPI_TrailType, having type TrailType - ParameterId["TrailType"] = "trailType"; - // DPI_ChangePageDirection, having type ChangePageType - ParameterId["ChangePageDirection"] = "changeTo"; - // DPI_AnimationControl, having type PageAnimationControl - ParameterId["AnimationControl"] = "animationControl"; - // DPI_LinePattern, having type LinePattern - ParameterId["LinePattern"] = "linePattern"; - // DPI_LineCap, having type LineCap - ParameterId["LineCap"] = "lineCap"; - // DPI_LineJoin, having type LineJoin - ParameterId["LineJoin"] = "lineJoin"; - // DPI_LineAlignment, having type LineAlignment - ParameterId["LineAlignment"] = "lineAlignment"; - // DPI_FillMode, having type FillMode - ParameterId["FillMode"] = "fillMode"; - // DPI_CursorShape, having type CursorShape - ParameterId["CursorShape"] = "cursorShape"; - // DPI_ShowMeCommandType, having type ShowMeCommandType - ParameterId["ShowMeCommandType"] = "showMeCommandType"; - // DPI_ShelfIconType, having type ShelfIconType - ParameterId["ShelfIconType"] = "shelfIconType"; - // DPI_ShelfIconTypes, having type ShelfIconType[] - ParameterId["ShelfIconTypes"] = "shelfIconTypes"; - // DPI_ItemDrawStyle, having type ItemDrawStyle - ParameterId["ItemDrawStyle"] = "itemDrawStyle"; - // DPI_ScaleMode, having type ScaleMode - ParameterId["ScaleMode"] = "pageScaleMode"; - // DPI_PageOrientationOption, having type PageOrientation - ParameterId["PageOrientationOption"] = "pageOrientationOption"; - // DPI_PageSizeOption, having type PageSizeOption - ParameterId["PageSizeOption"] = "pageSizeOption"; - // DPI_SortRegionType, having type SortRegionType - ParameterId["SortRegionType"] = "sortRegion"; - // DPI_LegendItemLayout, having type LegendItemLayout - ParameterId["LegendItemLayout"] = "legendLayout"; - // DPI_LegendItemOrder, having type LegendItemOrder - ParameterId["LegendItemOrder"] = "legendOrder"; - // DPI_VizImageRegion, having type VizImageRegion - ParameterId["VizImageRegion"] = "r"; - // DPI_LegacyMenuName, having type LegacyMenuName - ParameterId["LegacyMenuName"] = "legacyMenuName"; - // DPI_LegacyMenuState, having type LegacyMenuState - ParameterId["LegacyMenuState"] = "legacyMenuState"; - // DPI_LegacyMenuStateList, having type LegacyMenuState[] - ParameterId["LegacyMenuStateList"] = "legacyMenuStates"; - // DPI_DimensionType, having type DimensionType - ParameterId["DimensionType"] = "dimensionType"; - // DPI_LayoutType, having type LayoutType - ParameterId["LayoutType"] = "layoutType"; - // DPI_ShelfType, having type ShelfType - ParameterId["ShelfType"] = "shelfType"; - // DPI_LastSelectionShelf, having type ShelfType - ParameterId["LastSelectionShelf"] = "lastShelf"; - // DPI_SchemaViewerDataSourceType, having type SchemaViewerDataSourceType - ParameterId["SchemaViewerDataSourceType"] = "schemaDatasourceType"; - // DPI_SchemaItemType, having type SchemaItemType - ParameterId["SchemaItemType"] = "schemaItemType"; - // DPI_HSMSelectionMode, having type SelectionMode - ParameterId["HSMSelectionMode"] = "hsmSelectionMode"; - // DPI_HSMDefaultMemberType, having type DefaultMemberType - ParameterId["HSMDefaultMemberType"] = "hsmDefaultMemberType"; - // DPI_HSMNotificationType, having type NotificationType - ParameterId["HSMNotificationType"] = "hsmNotificationType"; - // DPI_HSMSelectionRequestType, having type SelectionRequestType - ParameterId["HSMSelectionRequestType"] = "hsmSelectionRequestType"; - // DPI_HSMMemberSelectRequestType, having type MemberSelectRequestType - ParameterId["HSMMemberSelectRequestType"] = "hsmMemberSelectRequestType"; - // DPI_PivotStrategy, having type FieldPivotStrategy - ParameterId["PivotStrategy"] = "pivotStrategy"; - // DPI_AliasType, having type AliasType - ParameterId["AliasType"] = "aliasType"; - // DPI_DSODimensionSortOrder, having type DataSourceOrder - ParameterId["DSODimensionSortOrder"] = "dsoDimensionSortOrder"; - // DPI_DSOMeasureSortOrder, having type DataSourceOrder - ParameterId["DSOMeasureSortOrder"] = "dsoMeasureSortOrder"; - // DPI_DSOSortOrder, having type DataSourceOrder - ParameterId["DSOSortOrder"] = "dsoSortOrder"; - // DPI_VTAggType, having type VTAggType - ParameterId["VTAggType"] = "vtAggregation"; - // DPI_FieldTypeIconSet, having type FieldTypeIconSet - ParameterId["FieldTypeIconSet"] = "fieldIconSet"; - // DPI_VisualPart, having type VisualPart - ParameterId["VisualPart"] = "visualPart"; - // DPI_DefaultMapToolEnum, having type MapToolSelection - ParameterId["DefaultMapToolEnum"] = "defaultMapToolEnum"; - // DPI_DefaultMapUnitEnum, having type MapUnitSelectionEnum - ParameterId["DefaultMapUnitEnum"] = "defaultMapUnitEnum"; - // DPI_SceneModelDetail, having type Detail - ParameterId["SceneModelDetail"] = "sceneModelDetailEnum"; - // DPI_SceneModelHitType, having type HitType - ParameterId["SceneModelHitType"] = "sceneModelHitType"; - // DPI_HitTestStyle, having type HitTestStyle - ParameterId["HitTestStyle"] = "hitTestStyle"; - // DPI_MarkState, having type MarkState - ParameterId["MarkState"] = "markState"; - // DPI_SheetType, having type SheetType - ParameterId["SheetType"] = "sheetType"; - // DPI_DragSource, having type DragDropType - ParameterId["DragSource"] = "dragSource"; - // DPI_DropTarget, having type DragDropType - ParameterId["DropTarget"] = "dropTarget"; - // DPI_ShelfDropAction, having type ShelfDropAction - ParameterId["ShelfDropAction"] = "shelfDropAction"; - // DPI_ShelfDropContext, having type ShelfDropContext - ParameterId["ShelfDropContext"] = "shelfDropContext"; - // DPI_FilterSelectionTracking, having type SelectionTracking - ParameterId["FilterSelectionTracking"] = "filterSelectionTracking"; - // DPI_FilterUpdateType, having type FilterUpdateType - ParameterId["FilterUpdateType"] = "filterUpdateType"; - // DPI_FilterUpdateQualifierType, having type FilterUpdateQualifierType - ParameterId["FilterUpdateQualifierType"] = "filterUpdateQualifierType"; - // DPI_ParameterError, having type ParameterError - ParameterId["ParameterError"] = "parameterError"; - // DPI_SelectionType, having type SelectionType - ParameterId["SelectionType"] = "selectionType"; - // DPI_SelectionUpdateType, having type SelectionUpdateType - ParameterId["SelectionUpdateType"] = "selectionUpdateType"; - // DPI_SelectOptions, having type SelectOptions - ParameterId["SelectOptions"] = "selectOptions"; - // DPI_AxisOrientation, having type Orientation - ParameterId["AxisOrientation"] = "axisOrientation"; - // DPI_DecimalMode, having type DecimalMode - ParameterId["DecimalMode"] = "decimalMode"; - // DPI_ActivationMethod, having type ActivationMethod - ParameterId["ActivationMethod"] = "activation"; - // DPI_SourceType, having type SourceType - ParameterId["SourceType"] = "sourceType"; - // DPI_OnClear, having type OnClear - ParameterId["OnClear"] = "onClear"; - // DPI_MergeOrSplit, having type MergeOrSplit - ParameterId["MergeOrSplit"] = "mergeOrSplit"; - // DPI_FilterMode, having type FilterMode - ParameterId["FilterMode"] = "filterMode"; - // DPI_ZoneType, having type ZoneType - ParameterId["ZoneType"] = "zoneType"; - // DPI_ZoneLayoutType, having type ZoneLayoutType - ParameterId["ZoneLayoutType"] = "zoneLayoutType"; - // DPI_QuickTableCalcType, having type QuickTableCalcCommandType - ParameterId["QuickTableCalcType"] = "quickTableCalcType"; - // DPI_TableCalcCommandType, having type TableCalcCommandType - ParameterId["TableCalcCommandType"] = "tableCalcCommandType"; - // DPI_TableCalcAddressType, having type TableCalcAddressCommandType - ParameterId["TableCalcAddressType"] = "tableCalcAddressType"; - // DPI_MarkLayoutPrimitive, having type Primitive - ParameterId["MarkLayoutPrimitive"] = "markLayoutPrimitive"; - // DPI_MarkLayoutVizType, having type VizType - ParameterId["MarkLayoutVizType"] = "markLayoutVizType"; - // DPI_MarkAlignment, having type MarkAlignment - ParameterId["MarkAlignment"] = "markAlignment"; - // DPI_ModifyZoneZOrderType, having type ModifyZoneZOrderCommandType - ParameterId["ModifyZoneZOrderType"] = "modifyZoneZOrderType"; - // DPI_TextRegionHAlign, having type TextRegionHAlign - ParameterId["TextRegionHAlign"] = "halign"; - // DPI_TextRegionVAlign, having type TextRegionVAlign - ParameterId["TextRegionVAlign"] = "valign"; - // DPI_PathElement, having type PathElement - ParameterId["PathElement"] = "pathElement"; - // DPI_PathElements, having type PathElement[] - ParameterId["PathElements"] = "pathElements"; - // DPI_RenderMode, having type RenderMode - ParameterId["RenderMode"] = "renderMode"; - // DPI_FontStyle, having type TableauFontStyle - ParameterId["FontStyle"] = "fontStyle"; - // DPI_FontWeight, having type FontWeight - ParameterId["FontWeight"] = "fontWeight"; - // DPI_TextDecoration, having type TextDecoration - ParameterId["TextDecoration"] = "textDecoration"; - // DPI_BorderStyle, having type BorderStyle - ParameterId["BorderStyle"] = "borderStyle"; - // DPI_BorderStyleTop, having type BorderStyle - ParameterId["BorderStyleTop"] = "borderStyleTop"; - // DPI_BorderStyleRight, having type BorderStyle - ParameterId["BorderStyleRight"] = "borderStyleRight"; - // DPI_BorderStyleBottom, having type BorderStyle - ParameterId["BorderStyleBottom"] = "borderStyleBottom"; - // DPI_BorderStyleLeft, having type BorderStyle - ParameterId["BorderStyleLeft"] = "borderStyleLeft"; - // DPI_FloatingToolbarVisibility, having type FloatingToolbarVisibility - ParameterId["FloatingToolbarVisibility"] = "floatingToolbarVisibility"; - // DPI_GeoSearchVisibility, having type GeoSearchVisibility - ParameterId["GeoSearchVisibility"] = "geographicSearchVisibility"; - // DPI_MapScaleVisibility, having type MapScaleVisibility - ParameterId["MapScaleVisibility"] = "mapScaleVisibility"; - // DPI_VizNavigationSetting, having type VizNavigationSetting - ParameterId["VizNavigationSetting"] = "vizNavigationSetting"; - // DPI_AutoDrillVisibility, having type AutoDrillVisibility - ParameterId["AutoDrillVisibility"] = "autoDrillVisibility"; - // DPI_ClientUIMetricType, having type ClientUIMetricType - ParameterId["ClientUIMetricType"] = "clientUiMetricType"; - // DPI_SheetScrollDirection, having type SheetScrollDirection - ParameterId["SheetScrollDirection"] = "sheetScrollDirection"; - // DPI_SizeMode, having type SizeMode - ParameterId["SizeMode"] = "sizeMode"; - // DPI_PerspectiveAggregate, having type PerspectiveAggregate - ParameterId["PerspectiveAggregate"] = "perspectiveAggregation"; - // DPI_StyleAttribute, having type StyleAttribute - ParameterId["StyleAttribute"] = "styleAttribute"; - // DPI_StyleAttributes, having type StyleAttribute[] - ParameterId["StyleAttributes"] = "styleAttributes"; - // DPI_StyleElement, having type StyleElement - ParameterId["StyleElement"] = "styleElement"; - // DPI_StyleDataClass, having type StyleDataClass - ParameterId["StyleDataClass"] = "styleClass"; - // DPI_StyleFieldScope, having type StyleFieldScope - ParameterId["StyleFieldScope"] = "styleScope"; - // DPI_FormatControlType, having type FormatControlType - ParameterId["FormatControlType"] = "formatType"; - // DPI_LineInterpolationMode, having type LineInterpolationMode - ParameterId["LineInterpolationMode"] = "lineInterpolationMode"; - // DPI_LineMarkerPosition, having type LineMarkerPosition - ParameterId["LineMarkerPosition"] = "lineMarkerPosition"; - // DPI_MarkersMode, having type MarkMarkersMode - ParameterId["MarkersMode"] = "markersMode"; - // DPI_AppConfigEnum, having type AppConfigEnum - ParameterId["AppConfigEnum"] = "appConfigEnum"; - // DPI_ColorPaletteType, having type ColorPaletteType - ParameterId["ColorPaletteType"] = "colorPaletteType"; - // DPI_ExtractType, having type ExtractType - ParameterId["ExtractType"] = "extractType"; - // DPI_ActivityDisposition, having type ActivityDisposition - ParameterId["ActivityDisposition"] = "activityDisposition"; - // DPI_ActivityResult, having type ActivityResult - ParameterId["ActivityResult"] = "activityResult"; - // DPI_TooltipMode, having type TooltipMode - ParameterId["TooltipMode"] = "tooltipMode"; - // DPI_RuntimeOutput, having type RuntimeOutput - ParameterId["RuntimeOutput"] = "runtimeOutput"; - // DPI_AnalyticsObjectType, having type AnalyticsObjectType - ParameterId["AnalyticsObjectType"] = "analyticsObjectType"; - // DPI_UIAutomationStatus, having type UIAutomationCommandStatus - ParameterId["UIAutomationStatus"] = "uiAutomationStatus"; - // DPI_TableViewDataType, having type TableViewDataType - ParameterId["TableViewDataType"] = "tableViewerDataType"; - // DPI_UnitsFormat, having type UnitsFormatEnum - ParameterId["UnitsFormat"] = "unitsFormat"; - // DPI_FilterLimitType, having type LimitType - ParameterId["FilterLimitType"] = "filterLimitType"; - // DPI_DistributionSelectedType, having type DistributionType - ParameterId["DistributionSelectedType"] = "distributionSelectedType"; - // DPI_DistributionType, having type DistributionType - ParameterId["DistributionType"] = "distributionType"; - // DPI_TranslatedDistributionType, having type TranslatedDistributionTypePresModel - ParameterId["TranslatedDistributionType"] = "translatedDistributionType"; - // DPI_TranslatedDistributionTypes, having type TranslatedDistributionTypePresModel[] - ParameterId["TranslatedDistributionTypes"] = "translatedDistributionTypes"; - // DPI_RefLineFormulaGroup, having type FormulaGroup - ParameterId["RefLineFormulaGroup"] = "reflineFormulaGroup"; - // DPI_ReferenceLineScopeType, having type ScopeType - ParameterId["ReferenceLineScopeType"] = "referenceLineScopeType"; - // DPI_StDevType, having type StDevType - ParameterId["StDevType"] = "stdevType"; - // DPI_ShowBounds, having type ShowBounds - ParameterId["ShowBounds"] = "showBounds"; - // DPI_BoxplotWhiskerType, having type BoxplotWhiskerType - ParameterId["BoxplotWhiskerType"] = "boxplotWhiskerType"; - // DPI_ReferenceLineLabelType, having type LabelType - ParameterId["ReferenceLineLabelType"] = "referenceLineLabelType"; - // DPI_PairedReferenceLineLabelType, having type LabelType - ParameterId["PairedReferenceLineLabelType"] = "pairedReferenceLineLabelType"; - // DPI_ConfidenceIntervalSelectedState, having type ConfidenceIntervalState - ParameterId["ConfidenceIntervalSelectedState"] = "confidenceIntervalSelectedState"; - // DPI_ConfidenceIntervalState, having type ConfidenceIntervalState - ParameterId["ConfidenceIntervalState"] = "confidenceIntervalState"; - // DPI_TranslatedLabelType, having type TranslatedLabelTypePresModel - ParameterId["TranslatedLabelType"] = "translatedLabelType"; - // DPI_ReferenceLineValidLabelTypes, having type TranslatedLabelTypePresModel[] - ParameterId["ReferenceLineValidLabelTypes"] = "validReferenceLineLabelTypes"; - // DPI_ReferenceLineFormulaType, having type FormulaType - ParameterId["ReferenceLineFormulaType"] = "referenceLineFormulaType"; - // DPI_PairedReferenceLineFormulaType, having type FormulaType - ParameterId["PairedReferenceLineFormulaType"] = "pairedReferenceLineFormulaType"; - // DPI_TranslatedFormulaType, having type TranslatedFormulaTypePresModel - ParameterId["TranslatedFormulaType"] = "translatedFormulaType"; - // DPI_ReferenceLineValidFormulaTypes, having type TranslatedFormulaTypePresModel[] - ParameterId["ReferenceLineValidFormulaTypes"] = "validReferenceLineFormulaTypes"; - // DPI_ReferenceLineValidPairedFormulaTypes, having type TranslatedFormulaTypePresModel[] - ParameterId["ReferenceLineValidPairedFormulaTypes"] = "validReferenceLinePairedFormulaTypes"; - // DPI_TranslatedConfidenceIntervalState, having type TranslatedConfidenceIntervalStatePresModel - ParameterId["TranslatedConfidenceIntervalState"] = "translatedConfidenceIntervalState"; - // DPI_TranslatedConfidenceIntervalStates, having type TranslatedConfidenceIntervalStatePresModel[] - ParameterId["TranslatedConfidenceIntervalStates"] = "translatedConfidenceIntervalStates"; - // DPI_TranslatedStDevType, having type TranslatedStDevTypePresModel - ParameterId["TranslatedStDevType"] = "translatedStdevType"; - // DPI_TranslatedStDevTypes, having type TranslatedStDevTypePresModel[] - ParameterId["TranslatedStDevTypes"] = "translatedStdevTypes"; - // DPI_ReferenceLineLODCalcType, having type LODCalcType - ParameterId["ReferenceLineLODCalcType"] = "referenceLineLodCalcType"; - // DPI_ValueDomainType, having type ValueDomainType - ParameterId["ValueDomainType"] = "valueDomainType"; - // DPI_ValueDomainTypes, having type ValueDomainType[] - ParameterId["ValueDomainTypes"] = "valueDomainTypes"; - // DPI_OperationType, having type OperationType - ParameterId["OperationType"] = "operationType"; - // DPI_OperationTypes, having type OperationType[] - ParameterId["OperationTypes"] = "operationTypes"; - // DPI_ConnectionTypeCategory, having type ConnectionTypeCategory - ParameterId["ConnectionTypeCategory"] = "connectionTypeCategory"; - // DPI_ConnectionTypeGroup, having type ConnectionTypeGroup - ParameterId["ConnectionTypeGroup"] = "connectionTypeGroup"; - // DPI_CommandRedirectType, having type CommandRedirectType - ParameterId["CommandRedirectType"] = "commandRedirectType"; - // DPI_CustomSplitMode, having type SplitMode - ParameterId["CustomSplitMode"] = "customSplitMode"; - // DPI_CustomSplitSeparatorType, having type SeparatorType - ParameterId["CustomSplitSeparatorType"] = "customSplitSeparatorType"; - // DPI_LevelSelectionState, having type LevelSelectionState - ParameterId["LevelSelectionState"] = "levelSelectionState"; - // DPI_LevelSelectionStates, having type LevelSelectionState[] - ParameterId["LevelSelectionStates"] = "levelSelectionStates"; - // DPI_SourceDestIcon, having type SourceDestIcon - ParameterId["SourceDestIcon"] = "sourceDestIcon"; - // DPI_LegendLayout, having type LegendLayout - ParameterId["LegendLayout"] = "pageLegendLayout"; - // DPI_ImagesEditResultCode, having type ImagesEditResultCode - ParameterId["ImagesEditResultCode"] = "imagesEditResultCode"; - // DPI_CalculationContext, having type CalculationContext - ParameterId["CalculationContext"] = "calculationContext"; - // DPI_WorkgroupPublishErrorType, having type WorkgroupPublishErrorType - ParameterId["WorkgroupPublishErrorType"] = "workgroupPublishErrorType"; - // DPI_IsParameter, having type TriBool - ParameterId["IsParameter"] = "isParameter"; - // DPI_AddressingState, having type WidgetState - ParameterId["AddressingState"] = "addressingState"; - // DPI_AllPagesState, having type WidgetState - ParameterId["AllPagesState"] = "allPagesState"; - // DPI_AtTheLevelState, having type WidgetState - ParameterId["AtTheLevelState"] = "atTheLevelState"; - // DPI_ComputeCompoundedRateState, having type WidgetState - ParameterId["ComputeCompoundedRateState"] = "computeCompoundedRateState"; - // DPI_CustomNullIfIncompleteState, having type WidgetState - ParameterId["CustomNullIfIncompleteState"] = "customNullIfIncompleteState"; - // DPI_NestedCalcsState, having type WidgetState - ParameterId["NestedCalcsState"] = "nestedCalcsState"; - // DPI_RankTypeState, having type WidgetState - ParameterId["RankTypeState"] = "rankTypeState"; - // DPI_ReferenceOptionsState, having type WidgetState - ParameterId["ReferenceOptionsState"] = "referenceOptionsState"; - // DPI_RestartEveryState, having type WidgetState - ParameterId["RestartEveryState"] = "restartEveryState"; - // DPI_SortAggState, having type WidgetState - ParameterId["SortAggState"] = "sortAggState"; - // DPI_SortState, having type WidgetState - ParameterId["SortState"] = "sortState"; - // DPI_TableCalcTypeState, having type WidgetState - ParameterId["TableCalcTypeState"] = "tableCalcTypeState"; - // DPI_TableCalcAssistanceWidgetState, having type WidgetState - ParameterId["TableCalcAssistanceWidgetState"] = "tableCalcAssistanceWidgetState"; - // DPI_CalcNestingLevel, having type CalcNestingLevel - ParameterId["CalcNestingLevel"] = "calcNestingLevel"; - // DPI_DataProviderType, having type DataProviderType - ParameterId["DataProviderType"] = "dataProviderType"; - // DPI_HeuristicCommandReinterpretation, having type HeuristicCommandReinterpretation - ParameterId["HeuristicCommandReinterpretation"] = "heuristicCommandReinterpretation"; - // DPI_ExtractRefreshStatus, having type ExtractRefreshStatus - ParameterId["ExtractRefreshStatus"] = "extractRefreshStatus"; - // DPI_RichTextEditorWidgetKey, having type RichTextEditorWidgetKey - ParameterId["RichTextEditorWidgetKey"] = "richTextEditorWidgetKey"; - // DPI_RichTextWidgetKeys, having type RichTextEditorWidgetKey[] - ParameterId["RichTextWidgetKeys"] = "richTextWidgetKeys"; - // DPI_TypeOfFormatItem, having type TypeOfFormatItem - ParameterId["TypeOfFormatItem"] = "typeOfFormatItem"; - // DPI_TypeOfFormatContainer, having type TypeOfFormatContainer - ParameterId["TypeOfFormatContainer"] = "typeOfFormatContainer"; - // DPI_TypeOfFormatControl, having type TypeOfFormatControl - ParameterId["TypeOfFormatControl"] = "typeOfFormatControl"; - // DPI_FormatWidgetKey, having type FormatWidgetKey - ParameterId["FormatWidgetKey"] = "formatWidgetKey"; - // DPI_ColorSwatchType, having type ColorSwatchType - ParameterId["ColorSwatchType"] = "formatColorSwatchType"; - // DPI_PickerType, having type PickerType - ParameterId["PickerType"] = "pickerType"; - // DPI_ExtractHistoryRefreshType, having type RefreshType - ParameterId["ExtractHistoryRefreshType"] = "extractHistoryRefreshTypeEnum"; - // DPI_AxisFoldState, having type AxisFoldState - ParameterId["AxisFoldState"] = "axisFoldState"; - // DPI_TickMarkSpacingUnits, having type TickSpacingUnits - ParameterId["TickMarkSpacingUnits"] = "tickSpacingUnits"; - // DPI_TickMarkState, having type TickMarkState - ParameterId["TickMarkState"] = "tickMarkState"; - // DPI_AxisRangeType, having type AxisRangeType - ParameterId["AxisRangeType"] = "axisRangeType"; - // DPI_ScaleType, having type ScaleType - ParameterId["ScaleType"] = "scaleType"; - // DPI_DashboardDeviceLayout, having type DashboardDeviceLayout - ParameterId["DashboardDeviceLayout"] = "dashboardDeviceLayout"; - // DPI_ActivateDeviceLayout, having type DashboardDeviceLayout - ParameterId["ActivateDeviceLayout"] = "activateDeviceLayout"; - // DPI_DashboardDeviceLayouts, having type DashboardDeviceLayout[] - ParameterId["DashboardDeviceLayouts"] = "dashboardDeviceLayouts"; - // DPI_DeviceSource, having type DeviceSource - ParameterId["DeviceSource"] = "deviceSource"; - // DPI_DashboardSizingDimension, having type DashboardSizingDimension - ParameterId["DashboardSizingDimension"] = "dashboardSizingDimension"; - // DPI_DashboardSizingMode, having type DashboardSizingMode - ParameterId["DashboardSizingMode"] = "dashboardSizingMode"; - // DPI_FlipboardNavType, having type FlipboardNavType - ParameterId["FlipboardNavType"] = "flipboardNavType"; - // DPI_FieldPickerDialogUseCase, having type FieldPickerDialogUseCase - ParameterId["FieldPickerDialogUseCase"] = "fieldPickerDialogUseCase"; - // DPI_StartOfWeekEnum, having type SOWValue - ParameterId["StartOfWeekEnum"] = "startOfWeekEnum"; - // DPI_StartOfFiscalYear, having type FYSValues - ParameterId["StartOfFiscalYear"] = "startOfFiscalYear"; - // DPI_TotalsInclusionValue, having type TotalsInclusion - ParameterId["TotalsInclusionValue"] = "totalsInclusionValue"; - // DPI_FormatCode, having type FormatCode - ParameterId["FormatCode"] = "formatCode"; - // DPI_FindType, having type FindType - ParameterId["FindType"] = "findType"; - // DPI_PerspectiveType, having type PerspectiveType - ParameterId["PerspectiveType"] = "perspectiveType"; - // DPI_GeometryType, having type GeometryType - ParameterId["GeometryType"] = "geometryType"; - // DPI_PaneLabelComposition, having type PaneLabelComposition - ParameterId["PaneLabelComposition"] = "paneLabelComposition"; - // DPI_WarningType, having type WarningType - ParameterId["WarningType"] = "warningType"; - // DPI_UIMode, having type WorkbookUIMode - ParameterId["UIMode"] = "uiMode"; - // DPI_MenuItemId, having type TopLevelMenuItem - ParameterId["MenuItemId"] = "menuItemId"; - // DPI_CommandReturn, having type object - ParameterId["CommandReturn"] = "commandReturn"; - // DPI_LegacyPresModel, having type object - ParameterId["LegacyPresModel"] = "legacyPresModel"; - // DPI_PresentationModel, having type object - ParameterId["PresentationModel"] = "presModelHolder"; - // DPI_Event, having type object - ParameterId["Event"] = "eventContainer"; - // DPI_LineStyle, having type Array - ParameterId["LineStyle"] = "lineStyle"; - // DPI_StrokeStyle, having type Array - ParameterId["StrokeStyle"] = "strokeStyle"; - // DPI_Schema, having type Array - ParameterId["Schema"] = "schema"; - // DPI_StartTuple, having type Array - ParameterId["StartTuple"] = "startTuple"; - // DPI_EndTuple, having type Array - ParameterId["EndTuple"] = "endTuple"; - // DPI_Tuple, having type Array - ParameterId["Tuple"] = "tuple"; - // DPI_Tuples, having type Array[] - ParameterId["Tuples"] = "tuples"; - // DPI_CustomDomainTuples, having type Array[] - ParameterId["CustomDomainTuples"] = "customDomainTuples"; - // DPI_UpdatedTuples, having type Array[] - ParameterId["UpdatedTuples"] = "updatedTuples"; - // DPI_Table, having type Array - ParameterId["Table"] = "table"; - // DPI_AliasedValue, having type Array - ParameterId["AliasedValue"] = "valueAlias"; - // DPI_FirstAliasedValue, having type Array - ParameterId["FirstAliasedValue"] = "firstAlisedValue"; - // DPI_MaximumRange, having type Array - ParameterId["MaximumRange"] = "maximumRangeValue"; - // DPI_MinimumRange, having type Array - ParameterId["MinimumRange"] = "minimumRangeValue"; - // DPI_SecondAliasedValue, having type Array - ParameterId["SecondAliasedValue"] = "secondAlisedValue"; - // DPI_AliasedSelectionList, having type Array[] - ParameterId["AliasedSelectionList"] = "aliasedSelectionList"; - // DPI_AliasedValues, having type Array[] - ParameterId["AliasedValues"] = "valuesAliases"; - // DPI_VerboseAliasedRangeMax, having type Array - ParameterId["VerboseAliasedRangeMax"] = "verboseAliasedRangeMax"; - // DPI_VerboseAliasedValue, having type Array - ParameterId["VerboseAliasedValue"] = "verboseAliasedValue"; - // DPI_MultiBucket, having type MultiBucket - ParameterId["MultiBucket"] = "xValues"; - // DPI_PageName, having type PageName - ParameterId["PageName"] = "pageName"; - // DPI_Selector, having type object - ParameterId["Selector"] = "selector"; - // DPI_PaneId, having type object - ParameterId["PaneId"] = "paneId"; - // DPI_PaneIds, having type PaneId[] - ParameterId["PaneIds"] = "paneIds"; - // DPI_ImageRegionInfo, having type object - ParameterId["ImageRegionInfo"] = "vizRegionRect"; - // DPI_ImageRegionInfoList, having type object[] - ParameterId["ImageRegionInfoList"] = "vizRegionRectList"; - // DPI_VisualID, having type VisualID - ParameterId["VisualID"] = "visualId"; - // DPI_VisualIDPM, having type VisualIDPresModel - ParameterId["VisualIDPM"] = "visualIdPresModel"; - // DPI_InvalidSheets, having type VisualIDPresModel[] - ParameterId["InvalidSheets"] = "invalidSheets"; - // DPI_VisualIDPMs, having type VisualIDPresModel[] - ParameterId["VisualIDPMs"] = "visualIds"; - // DPI_SheetPathPM, having type SheetPathPresModel - ParameterId["SheetPathPM"] = "sheetPath"; - // DPI_CapturedSheetPM, having type SheetPathPresModel - ParameterId["CapturedSheetPM"] = "capturedSheetPm"; - // DPI_CurrentSheetPM, having type SheetPathPresModel - ParameterId["CurrentSheetPM"] = "currentSheetPm"; - // DPI_DashboardPM, having type SheetPathPresModel - ParameterId["DashboardPM"] = "dashboardPm"; - // DPI_NewSheetPM, having type SheetPathPresModel - ParameterId["NewSheetPM"] = "newSheetPm"; - // DPI_SheetNamePM, having type SheetPathPresModel - ParameterId["SheetNamePM"] = "sheetNamePm"; - // DPI_SheetPM, having type SheetPathPresModel - ParameterId["SheetPM"] = "sheetPm"; - // DPI_SourceDashboardPM, having type SheetPathPresModel - ParameterId["SourceDashboardPM"] = "sourceDashboardPm"; - // DPI_SourceSheetPM, having type SheetPathPresModel - ParameterId["SourceSheetPM"] = "sourceSheetPm"; - // DPI_TargetSheetPM, having type SheetPathPresModel - ParameterId["TargetSheetPM"] = "targetSheetPm"; - // DPI_WorksheetPM, having type SheetPathPresModel - ParameterId["WorksheetPM"] = "worksheetPm"; - // DPI_ModifiedSheets, having type SheetPathPresModel[] - ParameterId["ModifiedSheets"] = "modifiedSheets"; - // DPI_DataColumn, having type DataColumnPresModel - ParameterId["DataColumn"] = "dataColumn"; - // DPI_DataColumns, having type DataColumnPresModel[] - ParameterId["DataColumns"] = "dataColumns"; - // DPI_Addresses, having type DataColumnPresModel[] - ParameterId["Addresses"] = "addresses"; - // DPI_EncodingColumns, having type Dictionary(of DataColumnPresModel) - ParameterId["EncodingColumns"] = "encodingColumns"; - // DPI_TextRunColumns, having type Dictionary(of DataColumnPresModel) - ParameterId["TextRunColumns"] = "textRunColumns"; - // DPI_TextStyleColumns, having type Dictionary(of DataColumnPresModel) - ParameterId["TextStyleColumns"] = "textStyleColumns"; - // DPI_NamedDataColumn, having type NamedDataColumnPresModel - ParameterId["NamedDataColumn"] = "namedDataColumn"; - // DPI_NamedDataColumns, having type NamedDataColumnPresModel[] - ParameterId["NamedDataColumns"] = "namedDataColumns"; - // DPI_DataTable, having type DataTablePresModel - ParameterId["DataTable"] = "dataTable"; - // DPI_ActionSpecification, having type None - ParameterId["ActionSpecification"] = "actionSpec"; - // DPI_Column, having type Column - ParameterId["Column"] = "columnContext"; - // DPI_SetFunction, having type SetFunction - ParameterId["SetFunction"] = "setFunction"; - // DPI_SetFunctions, having type SetFunctions - ParameterId["SetFunctions"] = "setFunctions"; - // DPI_VisualProfileShowMe, having type VisualProfileShowMe - ParameterId["VisualProfileShowMe"] = "vpsm"; - // DPI_DataSourcePtr, having type DataSource - ParameterId["DataSourcePtr"] = "datasourcePtr"; - // DPI_WorkgroupConnection, having type WorkgroupConnection - ParameterId["WorkgroupConnection"] = "workgroupConnection"; - // DPI_Authenticator, having type AuthenticatorRawPtr - ParameterId["Authenticator"] = "authenticator"; - // DPI_UpgradeAttr, having type UpgradeAttr - ParameterId["UpgradeAttr"] = "upgradeAttr"; - // DPI_ExtractAttr, having type ExtractAttr - ParameterId["ExtractAttr"] = "extractAttr"; - // DPI_RefreshAttr, having type RefreshAttr - ParameterId["RefreshAttr"] = "refreshAttr"; - // DPI_ContextSpecification, having type ContextSpecification - ParameterId["ContextSpecification"] = "contextSpecification"; - // DPI_SchemaViewerSelector, having type SchemaViewerSelectorPtr - ParameterId["SchemaViewerSelector"] = "schemaViewerSelector"; - // DPI_Buckets, having type Buckets - ParameterId["Buckets"] = "buckets"; - // DPI_LegendItems, having type MultiBuckets - ParameterId["LegendItems"] = "legendItems"; - // DPI_LegendItem, having type MultiBucket - ParameterId["LegendItem"] = "legendItem"; - // DPI_SourceItem, having type MultiBucket - ParameterId["SourceItem"] = "sourceItem"; - // DPI_DestItem, having type MultiBucket - ParameterId["DestItem"] = "destItem"; - // DPI_IQuickSortState, having type IQuickSortState - ParameterId["IQuickSortState"] = "quickSortState"; - // DPI_AppBuildDate, having type DateTime - ParameterId["AppBuildDate"] = "appBuildDate"; - // DPI_ForecastDateRangeEnd, having type DateTime - ParameterId["ForecastDateRangeEnd"] = "forecastDateRangeEnd"; - // DPI_ForecastDateRangeStart, having type DateTime - ParameterId["ForecastDateRangeStart"] = "forecastDateRangeStart"; - // DPI_LastModified, having type DateTime - ParameterId["LastModified"] = "lastModified"; - // DPI_SearchDomainPtr, having type MultiDomain - ParameterId["SearchDomainPtr"] = "searchDomainPtr"; - // DPI_ResultsDomainPtr, having type MultiDomain - ParameterId["ResultsDomainPtr"] = "resultsDomainPtr"; - // DPI_Actions, having type object - ParameterId["Actions"] = "actions"; - // DPI_SRCommands, having type object - ParameterId["SRCommands"] = "selectionRelaxationCommands"; - // DPI_Commands, having type object - ParameterId["Commands"] = "commands"; - // DPI_DataTypeCommands, having type object - ParameterId["DataTypeCommands"] = "datatypeCommands"; - // DPI_MultiSelectCommands, having type object - ParameterId["MultiSelectCommands"] = "multiselectCommands"; - // DPI_NonVizCommands, having type object - ParameterId["NonVizCommands"] = "nonVizCommands"; - // DPI_QuickFilterCommands, having type object - ParameterId["QuickFilterCommands"] = "quickFilterCommands"; - // DPI_ShowMeCommands, having type object - ParameterId["ShowMeCommands"] = "showMeCommands"; - // DPI_SortIndicatorMenu, having type object - ParameterId["SortIndicatorMenu"] = "sortIndicatorMenu"; - // DPI_StandardCommands, having type object - ParameterId["StandardCommands"] = "standardCommands"; - // DPI_VizCommands, having type object - ParameterId["VizCommands"] = "vizCommands"; - // DPI_ZoneChromeCommands, having type object - ParameterId["ZoneChromeCommands"] = "zoneChromeCommands"; - // DPI_CommandItem, having type CommandsItem - ParameterId["CommandItem"] = "commandItem"; - // DPI_CommandItems, having type CommandsItem[] - ParameterId["CommandItems"] = "commandItems"; - // DPI_Command, having type SimpleCommandsPresModel - ParameterId["Command"] = "simpleCommandModel"; - // DPI_AddCommand, having type SimpleCommandsPresModel - ParameterId["AddCommand"] = "addSimpleCommandModel"; - // DPI_RemoveCommand, having type SimpleCommandsPresModel - ParameterId["RemoveCommand"] = "removeSimpleCommandModel"; - // DPI_AcceptCommand, having type SimpleCommandsPresModel - ParameterId["AcceptCommand"] = "acceptSimpleCommandModel"; - // DPI_DeclineCommand, having type SimpleCommandsPresModel - ParameterId["DeclineCommand"] = "declineSimpleCommandModel"; - // DPI_DropCommand, having type SimpleCommandsPresModel - ParameterId["DropCommand"] = "dropCommandModel"; - // DPI_EditCaptionCommand, having type SimpleCommandsPresModel - ParameterId["EditCaptionCommand"] = "editCaptionCommandModel"; - // DPI_FontCommand, having type SimpleCommandsPresModel - ParameterId["FontCommand"] = "fontCommandModel"; - // DPI_LineStyleCommand, having type SimpleCommandsPresModel - ParameterId["LineStyleCommand"] = "lineStyleCommandModel"; - // DPI_FormatCommand, having type SimpleCommandsPresModel - ParameterId["FormatCommand"] = "formatCommandModel"; - // DPI_DestructorCommand, having type SimpleCommandsPresModel - ParameterId["DestructorCommand"] = "destructorCommand"; - // DPI_ClearFormatCommand, having type SimpleCommandsPresModel - ParameterId["ClearFormatCommand"] = "clearFormatCommandModel"; - // DPI_RichTextCommand, having type SimpleCommandsPresModel - ParameterId["RichTextCommand"] = "richTextCommandModel"; - // DPI_SortIndicatorCommand, having type SimpleCommandsPresModel - ParameterId["SortIndicatorCommand"] = "sortIndicatorCommand"; - // DPI_ResizeRowCommand, having type SimpleCommandsPresModel - ParameterId["ResizeRowCommand"] = "resizeRowCommandModel"; - // DPI_ResizeColCommand, having type SimpleCommandsPresModel - ParameterId["ResizeColCommand"] = "resizeColCommandModel"; - // DPI_CommandList, having type SimpleCommandsPresModel[] - ParameterId["CommandList"] = "commandList"; - // DPI_ParameterCtrl, having type ParameterCtrlPresModel - ParameterId["ParameterCtrl"] = "parameterControl"; - // DPI_ParameterCtrls, having type ParameterCtrlPresModel[] - ParameterId["ParameterCtrls"] = "parameterControls"; - // DPI_PageModel, having type PagePresModel - ParameterId["PageModel"] = "pageModel"; - // DPI_PageTrailOptions, having type PageTrailOptionsPresModel - ParameterId["PageTrailOptions"] = "pageTrailOptions"; - // DPI_Field, having type FieldPresModel - ParameterId["Field"] = "field"; - // DPI_FieldList, having type FieldPresModel[] - ParameterId["FieldList"] = "fieldList"; - // DPI_FieldColumn, having type FieldColumnPresModel - ParameterId["FieldColumn"] = "column"; - // DPI_FieldColumnList, having type FieldColumnPresModel[] - ParameterId["FieldColumnList"] = "columnList"; - // DPI_Parameter, having type ParameterPresModel - ParameterId["Parameter"] = "parameter"; - // DPI_Dimension, having type DimensionPresModel - ParameterId["Dimension"] = "dimension"; - // DPI_AttributeDimensionList, having type DimensionPresModel[] - ParameterId["AttributeDimensionList"] = "attributeDimensionList"; - // DPI_RelationalTable, having type RelationalTablePresModel - ParameterId["RelationalTable"] = "relationalTable"; - // DPI_DrillPath, having type DrillPathPresModel - ParameterId["DrillPath"] = "drillPath"; - // DPI_FieldFolder, having type FieldFolderPresModel - ParameterId["FieldFolder"] = "fieldFolder"; - // DPI_Group, having type GroupPresModel - ParameterId["Group"] = "group"; - // DPI_Hierarchy, having type HierarchyPresModel - ParameterId["Hierarchy"] = "hierarchy"; - // DPI_HierarchyList, having type HierarchyPresModel[] - ParameterId["HierarchyList"] = "hierarchyList"; - // DPI_HierarchyMemberSelectedState, having type HierarchySelect_MemberSelectedStatePresModel - ParameterId["HierarchyMemberSelectedState"] = "hierarchyMemberSelectedState"; - // DPI_HierarchySelectionChanges, having type HierarchySelect_MemberSelectedStatePresModel[] - ParameterId["HierarchySelectionChanges"] = "hierarchySelectionChanges"; - // DPI_DisplayFolder, having type DisplayFolderPresModel - ParameterId["DisplayFolder"] = "displayFolder"; - // DPI_DisplayFolderList, having type DisplayFolderPresModel[] - ParameterId["DisplayFolderList"] = "displayFolderList"; - // DPI_DataSourceLayout, having type DataSourceLayoutPresModel - ParameterId["DataSourceLayout"] = "dataSourceLayout"; - // DPI_DataSource, having type DataSourcePresModel - ParameterId["DataSource"] = "dataSource"; - // DPI_DataSources, having type Dictionary(of DataSourcePresModel) - ParameterId["DataSources"] = "dataSources"; - // DPI_DataSchema, having type DataSchemaPresModel - ParameterId["DataSchema"] = "dataSchema"; - // DPI_SheetListItem, having type SheetListItemPresModel - ParameterId["SheetListItem"] = "sheetListItem"; - // DPI_SheetListItems, having type SheetListItemPresModel[] - ParameterId["SheetListItems"] = "sheetListItems"; - // DPI_SheetList, having type SheetListPresModel - ParameterId["SheetList"] = "sheetList"; - // DPI_SizeModeOption, having type SizeModeOptionPresModel - ParameterId["SizeModeOption"] = "sizeModeOption"; - // DPI_SizeModeOptions, having type SizeModeOptionPresModel[] - ParameterId["SizeModeOptions"] = "sizeModeOptions"; - // DPI_DashboardSizeControl, having type DashboardSizeControlPresModel - ParameterId["DashboardSizeControl"] = "dashboardSizeControl"; - // DPI_DeviceLayoutInfoItem, having type DeviceLayoutInfoItemPresModel - ParameterId["DeviceLayoutInfoItem"] = "deviceLayoutInfoItem"; - // DPI_DeviceLayoutInfoItems, having type DeviceLayoutInfoItemPresModel[] - ParameterId["DeviceLayoutInfoItems"] = "deviceLayoutInfoItems"; - // DPI_DeviceLayoutInfoList, having type DeviceLayoutInfoListPresModel - ParameterId["DeviceLayoutInfoList"] = "deviceLayoutInfoList"; - // DPI_SpecializedDeviceLayoutItem, having type SpecializedDeviceLayoutItemPresModel - ParameterId["SpecializedDeviceLayoutItem"] = "specializedDeviceLayoutItem"; - // DPI_SpecializedDeviceLayoutItems, having type SpecializedDeviceLayoutItemPresModel[] - ParameterId["SpecializedDeviceLayoutItems"] = "specializedDeviceLayoutItems"; - // DPI_SpecializedDeviceLayoutList, having type SpecializedDeviceLayoutListPresModel - ParameterId["SpecializedDeviceLayoutList"] = "specializedDeviceLayoutList"; - // DPI_SizeItem, having type SizeItemPresModel - ParameterId["SizeItem"] = "sizeItem"; - // DPI_SizeItems, having type SizeItemPresModel[] - ParameterId["SizeItems"] = "sizeItems"; - // DPI_DeviceSizesList, having type SizeItemListPresModel - ParameterId["DeviceSizesList"] = "deviceSizesList"; - // DPI_PresetSizesList, having type SizeItemListPresModel - ParameterId["PresetSizesList"] = "presetSizesList"; - // DPI_SizeItemList, having type SizeItemListPresModel - ParameterId["SizeItemList"] = "sizeItemList"; - // DPI_SubstitutionKeyword, having type SubstitutionKeywordPresModel - ParameterId["SubstitutionKeyword"] = "substitutionKeyword"; - // DPI_SubstitutionKeywords, having type SubstitutionKeywordPresModel[] - ParameterId["SubstitutionKeywords"] = "substitutionKeywords"; - // DPI_SubstitutionKeywordSubList, having type SubstitutionKeywordSubListPresModel - ParameterId["SubstitutionKeywordSubList"] = "substitutionKeywordsSublist"; - // DPI_SubstitutionKeywordSubLists, having type SubstitutionKeywordSubListPresModel[] - ParameterId["SubstitutionKeywordSubLists"] = "substitutionKeywordSublists"; - // DPI_SubstitutionKeywordList, having type SubstitutionKeywordListPresModel - ParameterId["SubstitutionKeywordList"] = "substitutionKeywordsList"; - // DPI_DeviceZoneListItem, having type DeviceZoneListItemPresModel - ParameterId["DeviceZoneListItem"] = "deviceZoneListItem"; - // DPI_DeviceZoneListItems, having type DeviceZoneListItemPresModel[] - ParameterId["DeviceZoneListItems"] = "deviceZoneListItems"; - // DPI_DeviceZoneList, having type DeviceZoneListPresModel - ParameterId["DeviceZoneList"] = "deviceZoneList"; - // DPI_DashboardZoneHierarchy, having type DashboardZoneHierarchyPresModel - ParameterId["DashboardZoneHierarchy"] = "dashboardZoneHierarchy"; - // DPI_DeviceZoneVisibilityListItem, having type DeviceZoneVisibilityListItemPresModel - ParameterId["DeviceZoneVisibilityListItem"] = "deviceZoneVisibilityListItem"; - // DPI_DeviceZoneVisibilityListItems, having type DeviceZoneVisibilityListItemPresModel[] - ParameterId["DeviceZoneVisibilityListItems"] = "deviceZoneVisibilityListItems"; - // DPI_DeviceZoneVisibilityList, having type DeviceZoneVisibilityListPresModel - ParameterId["DeviceZoneVisibilityList"] = "deviceZoneVisibilityList"; - // DPI_WorksheetDataSchema, having type WorksheetDataSchemaPresModel - ParameterId["WorksheetDataSchema"] = "worksheetDataSchema"; - // DPI_WorksheetDataSchemaMap, having type Dictionary(of WorksheetDataSchemaPresModel) - ParameterId["WorksheetDataSchemaMap"] = "worksheetDataSchemaMap"; - // DPI_Shelf, having type ShelfPresModel - ParameterId["Shelf"] = "shelf"; - // DPI_ShelfDetail, having type ShelfPresModel - ParameterId["ShelfDetail"] = "shelfDetail"; - // DPI_ShelfList, having type ShelfPresModel[] - ParameterId["ShelfList"] = "shelfList"; - // DPI_ShelfItem, having type ShelfItemPresModel - ParameterId["ShelfItem"] = "shelfItem"; - // DPI_ShelfItems, having type ShelfItemPresModel[] - ParameterId["ShelfItems"] = "shelfItems"; - // DPI_Shelves, having type ShelvesPresModel - ParameterId["Shelves"] = "shelves"; - // DPI_FieldEncoding, having type FieldEncodingPresModel - ParameterId["FieldEncoding"] = "fieldEncoding"; - // DPI_FieldEncodings, having type FieldEncodingPresModel[] - ParameterId["FieldEncodings"] = "fieldEncodings"; - // DPI_UberTip, having type UberTipPresModel - ParameterId["UberTip"] = "uberTip"; - // DPI_AnalyticsObjectDragInfo, having type AnalyticsObjectDragInfoPresModel - ParameterId["AnalyticsObjectDragInfo"] = "analyticsObjectDragInfo"; - // DPI_TrendLine, having type TrendLinePresModel - ParameterId["TrendLine"] = "trendLine"; - // DPI_TrendLineDialog, having type TrendLineDialogPresModel - ParameterId["TrendLineDialog"] = "trendLineDialog"; - // DPI_TrendLineDescribePresModel, having type TrendLineDescribePresModel - ParameterId["TrendLineDescribePresModel"] = "trendLineDescribePresModel"; - // DPI_TrendLineAOVModelPresModel, having type TrendLineAOVModelPresModel - ParameterId["TrendLineAOVModelPresModel"] = "trendLineAovModelPresModel"; - // DPI_TrendLineAOVModelsPresModel, having type TrendLineAOVModelPresModel[] - ParameterId["TrendLineAOVModelsPresModel"] = "trendModelDescriptionVector"; - // DPI_TrendLineLineCoefficientPresModel, having type TrendLineLineCoefficientPresModel - ParameterId["TrendLineLineCoefficientPresModel"] = "trendLineLineCoefficient"; - // DPI_TrendLineLineCoefficientsPresModel, having type TrendLineLineCoefficientPresModel[] - ParameterId["TrendLineLineCoefficientsPresModel"] = "trendLineLineCoefficientsPresModel"; - // DPI_TrendLineLinesPresModel, having type TrendLineLinesPresModel - ParameterId["TrendLineLinesPresModel"] = "trendLineLinesPresModel"; - // DPI_TrendLineAOVPresModel, having type TrendLineAOVPresModel - ParameterId["TrendLineAOVPresModel"] = "trendLineAnovaPresModel"; - // DPI_ReferenceLine, having type ReferenceLinePresModel - ParameterId["ReferenceLine"] = "referenceLine"; - // DPI_ReferenceLines, having type ReferenceLinePresModel[] - ParameterId["ReferenceLines"] = "referenceLines"; - // DPI_PercentileEditDataValue, having type EditDataValuePresModel - ParameterId["PercentileEditDataValue"] = "percentileEditDataValue"; - // DPI_LimitEditDataValue, having type EditDataValuePresModel - ParameterId["LimitEditDataValue"] = "limitEditDataValue"; - // DPI_ConfidenceLevelCombo, having type EditValueWidgetPresModel - ParameterId["ConfidenceLevelCombo"] = "confidenceLevelCombo"; - // DPI_DistributionQuantilesCombo, having type EditValueWidgetPresModel - ParameterId["DistributionQuantilesCombo"] = "distributionQuantilesLevelCombo"; - // DPI_PercentilesCombo, having type EditValueWidgetPresModel - ParameterId["PercentilesCombo"] = "distributionPercentilesLevelCombo"; - // DPI_NumericBinSizeCombo, having type EditValueWidgetPresModel - ParameterId["NumericBinSizeCombo"] = "numericBinSizeCombo"; - // DPI_FieldPickerField, having type FieldPickerFieldPresModel - ParameterId["FieldPickerField"] = "fieldPickerField"; - // DPI_FieldPickerFields, having type FieldPickerFieldPresModel[] - ParameterId["FieldPickerFields"] = "fieldPickerFields"; - // DPI_FieldPickerCombo, having type FieldPickerComboPresModel - ParameterId["FieldPickerCombo"] = "fieldPickerCombo"; - // DPI_PairedFieldPickerCombo, having type FieldPickerComboPresModel - ParameterId["PairedFieldPickerCombo"] = "pairedFieldPickerCombo"; - // DPI_ReferenceLineEditorPresModel, having type ReferenceLineEditorPresModel - ParameterId["ReferenceLineEditorPresModel"] = "referenceLineEditor"; - // DPI_CloseDataSourceErrorDialogPresModel, having type CloseDataSourceErrorDialogPresModel - ParameterId["CloseDataSourceErrorDialogPresModel"] = "closeDsErrorDialog"; - // DPI_EditReferenceLine, having type EditReferenceLinePresModel - ParameterId["EditReferenceLine"] = "editReferenceLine"; - // DPI_EditReferenceBand, having type EditReferenceBandPresModel - ParameterId["EditReferenceBand"] = "editReferenceBand"; - // DPI_EditDistribution, having type EditDistributionPresModel - ParameterId["EditDistribution"] = "editDistribution"; - // DPI_DistributionPercentages, having type DistributionPercentagesPresModel - ParameterId["DistributionPercentages"] = "distributionPercentages"; - // DPI_DistributionPercentiles, having type DistributionPercentilesPresModel - ParameterId["DistributionPercentiles"] = "distributionPercentiles"; - // DPI_DistributionQuantiles, having type DistributionQuantilesPresModel - ParameterId["DistributionQuantiles"] = "distributionQuantiles"; - // DPI_DistributionStandardDeviation, having type DistributionStandardDeviationPresModel - ParameterId["DistributionStandardDeviation"] = "distributionStddev"; - // DPI_SortIndicators, having type SortIndicatorsPresModel - ParameterId["SortIndicators"] = "sortIndicators"; - // DPI_SortIndicatorRegion, having type SortIndicatorRegionPresModel - ParameterId["SortIndicatorRegion"] = "sortIndicatorRegion"; - // DPI_SortIndicatorRegions, having type SortIndicatorRegionPresModel[] - ParameterId["SortIndicatorRegions"] = "sortIndicatorRegions"; - // DPI_SortIndicatorItem, having type SortIndicatorItemPresModel - ParameterId["SortIndicatorItem"] = "sortIndicatorItem"; - // DPI_SortIndicatorItems, having type SortIndicatorItemPresModel[] - ParameterId["SortIndicatorItems"] = "sortIndicatorItems"; - // DPI_BuilderConfig, having type BuilderConfigPresModel - ParameterId["BuilderConfig"] = "builderConfig"; - // DPI_SheetLayoutInfo, having type SheetLayoutInfoPresModel - ParameterId["SheetLayoutInfo"] = "sheetLayoutInfo"; - // DPI_AreaRect, having type RectanglePresModel - ParameterId["AreaRect"] = "areaRect"; - // DPI_Border, having type RectanglePresModel - ParameterId["Border"] = "borderRect"; - // DPI_BoundsRect, having type RectanglePresModel - ParameterId["BoundsRect"] = "boundsRect"; - // DPI_ButtonRect, having type RectanglePresModel - ParameterId["ButtonRect"] = "buttonRect"; - // DPI_DragRect, having type RectanglePresModel - ParameterId["DragRect"] = "dragRect"; - // DPI_FocusRect, having type RectanglePresModel - ParameterId["FocusRect"] = "focusRect"; - // DPI_ImageTileRect, having type RectanglePresModel - ParameterId["ImageTileRect"] = "tileRect"; - // DPI_ItemRect, having type RectanglePresModel - ParameterId["ItemRect"] = "itemRect"; - // DPI_LabelRect, having type RectanglePresModel - ParameterId["LabelRect"] = "labelRect"; - // DPI_MarkRect, having type RectanglePresModel - ParameterId["MarkRect"] = "markRect"; - // DPI_MarkTooltipRect, having type RectanglePresModel - ParameterId["MarkTooltipRect"] = "markTooltipRect"; - // DPI_OutRegionRect, having type RectanglePresModel - ParameterId["OutRegionRect"] = "outRegionRect"; - // DPI_PaneRect, having type RectanglePresModel - ParameterId["PaneRect"] = "paneRect"; - // DPI_PixelExtents, having type RectanglePresModel - ParameterId["PixelExtents"] = "pixelExtents"; - // DPI_RectMaxLabel, having type RectanglePresModel - ParameterId["RectMaxLabel"] = "rectMaxLabel"; - // DPI_RectMinLabel, having type RectanglePresModel - ParameterId["RectMinLabel"] = "rectMinLabel"; - // DPI_RectRamp, having type RectanglePresModel - ParameterId["RectRamp"] = "rectRamp"; - // DPI_RectTitle, having type RectanglePresModel - ParameterId["RectTitle"] = "rectTitle"; - // DPI_RegionRect, having type RectanglePresModel - ParameterId["RegionRect"] = "regionRect"; - // DPI_SelectionRect, having type RectanglePresModel - ParameterId["SelectionRect"] = "selectionRect"; - // DPI_UnusedRect, having type RectanglePresModel - ParameterId["UnusedRect"] = "unusedRect"; - // DPI_ZoneEdgeRect, having type RectanglePresModel - ParameterId["ZoneEdgeRect"] = "zoneEdge"; - // DPI_ZoneEdgeRectPix, having type RectanglePresModel - ParameterId["ZoneEdgeRectPix"] = "zoneEdgePix"; - // DPI_ZoneEdgeRectPp, having type RectanglePresModel - ParameterId["ZoneEdgeRectPp"] = "zoneEdgePp"; - // DPI_UIAutomationLinkRect, having type RectanglePresModel - ParameterId["UIAutomationLinkRect"] = "linkRect"; - // DPI_Borders, having type RectanglePresModel[] - ParameterId["Borders"] = "borderRects"; - // DPI_UIAutomationLinkRects, having type RectanglePresModel[] - ParameterId["UIAutomationLinkRects"] = "linkRects"; - // DPI_DomainExtents, having type DoubleRectanglePresModel - ParameterId["DomainExtents"] = "domainExtents"; - // DPI_MapDomainExtents, having type DoubleRectanglePresModel - ParameterId["MapDomainExtents"] = "mapDomainExtents"; - // DPI_MapLatLongRect, having type MapRectPresModel - ParameterId["MapLatLongRect"] = "mapLatLongRect"; - // DPI_Center, having type PointPresModel - ParameterId["Center"] = "center"; - // DPI_CenterMarkLineBegin, having type PointPresModel - ParameterId["CenterMarkLineBegin"] = "centerMarkLineBegin"; - // DPI_CenterMarkLineEnd, having type PointPresModel - ParameterId["CenterMarkLineEnd"] = "centerMarkLineEnd"; - // DPI_DropLocation, having type PointPresModel - ParameterId["DropLocation"] = "dropLocation"; - // DPI_EndPt, having type PointPresModel - ParameterId["EndPt"] = "endPoint"; - // DPI_GrabLocation, having type PointPresModel - ParameterId["GrabLocation"] = "grabLocation"; - // DPI_GridOrigin, having type PointPresModel - ParameterId["GridOrigin"] = "gridOrigin"; - // DPI_LassoSelectionPoint, having type PointPresModel - ParameterId["LassoSelectionPoint"] = "lassoSelectionPoint"; - // DPI_MenuLocation, having type PointPresModel - ParameterId["MenuLocation"] = "menuLocation"; - // DPI_MoveOffset, having type PointPresModel - ParameterId["MoveOffset"] = "moveOffset"; - // DPI_OverlayAnchor, having type PointPresModel - ParameterId["OverlayAnchor"] = "overlayAnchor"; - // DPI_PanAmount, having type PointPresModel - ParameterId["PanAmount"] = "panAmount"; - // DPI_PanLocation, having type PointPresModel - ParameterId["PanLocation"] = "panLocation"; - // DPI_PaneResolverLocation, having type PointPresModel - ParameterId["PaneResolverLocation"] = "paneResolverLocation"; - // DPI_PixelExtentsOffset, having type PointPresModel - ParameterId["PixelExtentsOffset"] = "extentsOffset"; - // DPI_Point1, having type PointPresModel - ParameterId["Point1"] = "pt1"; - // DPI_Point2, having type PointPresModel - ParameterId["Point2"] = "pt2"; - // DPI_Point3, having type PointPresModel - ParameterId["Point3"] = "pt3"; - // DPI_RegionPoint, having type PointPresModel - ParameterId["RegionPoint"] = "regionPoint"; - // DPI_ScrollOffset, having type PointPresModel - ParameterId["ScrollOffset"] = "scrollOffset"; - // DPI_SelectAtPoint, having type PointPresModel - ParameterId["SelectAtPoint"] = "selectAtPoint"; - // DPI_SelectOffset, having type PointPresModel - ParameterId["SelectOffset"] = "selectOffset"; - // DPI_TargetPt, having type PointPresModel - ParameterId["TargetPt"] = "targetPoint"; - // DPI_TextOrigin, having type PointPresModel - ParameterId["TextOrigin"] = "textOrigin"; - // DPI_TooltipAnchorPoint, having type PointPresModel - ParameterId["TooltipAnchorPoint"] = "tooltipAnchorPoint"; - // DPI_TooltipOffset, having type PointPresModel - ParameterId["TooltipOffset"] = "tooltipOffset"; - // DPI_VizLocation, having type PointPresModel - ParameterId["VizLocation"] = "vizLocation"; - // DPI_ZoomAnchorPoint, having type PointPresModel - ParameterId["ZoomAnchorPoint"] = "zoomAnchorPoint"; - // DPI_OverlayAnchors, having type PointPresModel[] - ParameterId["OverlayAnchors"] = "overlayAnchors"; - // DPI_LassoSelection, having type PointPresModel[] - ParameterId["LassoSelection"] = "lassoSelection"; - // DPI_ScrollOffsetPoints, having type PointPresModel[] - ParameterId["ScrollOffsetPoints"] = "scrollOffsetPoints"; - // DPI_RadialSelection, having type CirclePresModel - ParameterId["RadialSelection"] = "radialSelection"; - // DPI_DomainOrigin, having type FloatPointPresModel - ParameterId["DomainOrigin"] = "domainOrigin"; - // DPI_FloatCenter, having type FloatPointPresModel - ParameterId["FloatCenter"] = "floatCenter"; - // DPI_FloatPoint, having type FloatPointPresModel - ParameterId["FloatPoint"] = "floatPoint"; - // DPI_ClientAvailableSpace, having type SizePresModel - ParameterId["ClientAvailableSpace"] = "clientAvailableSpace"; - // DPI_DashboardPortSize, having type SizePresModel - ParameterId["DashboardPortSize"] = "dashboardPort"; - // DPI_LegendSize, having type SizePresModel - ParameterId["LegendSize"] = "legendSize"; - // DPI_StoryPortSize, having type SizePresModel - ParameterId["StoryPortSize"] = "storyPort"; - // DPI_SwatchAreaSize, having type SizePresModel - ParameterId["SwatchAreaSize"] = "areaSize"; - // DPI_SwatchImageSize, having type SizePresModel - ParameterId["SwatchImageSize"] = "imageSize"; - // DPI_ViewportSize, having type SizePresModel - ParameterId["ViewportSize"] = "viewportSize"; - // DPI_WorksheetPortSize, having type SizePresModel - ParameterId["WorksheetPortSize"] = "worksheetPort"; - // DPI_ResizeEntity, having type ResizeEntityPresModel - ParameterId["ResizeEntity"] = "resizeEntity"; - // DPI_RowResizers, having type ResizeEntityPresModel[] - ParameterId["RowResizers"] = "rowResizers"; - // DPI_ColResizers, having type ResizeEntityPresModel[] - ParameterId["ColResizers"] = "colResizers"; - // DPI_ResizeInfoPresModel, having type ResizeInfoPresModel - ParameterId["ResizeInfoPresModel"] = "resizeInfo"; - // DPI_ServerSheet, having type ServerSheetPresModel - ParameterId["ServerSheet"] = "serverSheet"; - // DPI_ServerSheets, having type ServerSheetPresModel[] - ParameterId["ServerSheets"] = "serverSheets"; - // DPI_SheetInfo, having type SheetInfoPresModel - ParameterId["SheetInfo"] = "sheetInfo"; - // DPI_SheetsInfo, having type SheetInfoPresModel[] - ParameterId["SheetsInfo"] = "sheetsInfo"; - // DPI_ServerWorkbook, having type ServerWorkbookPresModel - ParameterId["ServerWorkbook"] = "serverWorkbook"; - // DPI_PDFExportOptionsPresModel, having type PDFExportOptionsPresModel - ParameterId["PDFExportOptionsPresModel"] = "pdfExport"; - // DPI_ExportFileResultPresModel, having type ExportFileResultPresModel - ParameterId["ExportFileResultPresModel"] = "pdfResult"; - // DPI_PDFSheet, having type PDFSheetPresModel - ParameterId["PDFSheet"] = "pdfSheet"; - // DPI_SheetOptions, having type PDFSheetPresModel[] - ParameterId["SheetOptions"] = "sheetOptions"; - // DPI_ExportLayoutOptions, having type ExportLayoutOptionsPresModel - ParameterId["ExportLayoutOptions"] = "exportLayoutOptions"; - // DPI_DataAlertConditionOperationType, having type DataAlertConditionOperationType - ParameterId["DataAlertConditionOperationType"] = "dataAlertConditionOp"; - // DPI_DataAlertDialogPresModel, having type DataAlertDialogPresModel - ParameterId["DataAlertDialogPresModel"] = "dataAlertDialogPresModel"; - // DPI_DataAlertMeasure, having type DataAlertMeasurePresModel - ParameterId["DataAlertMeasure"] = "dataAlertMeasure"; - // DPI_DataAlertMeasures, having type DataAlertMeasurePresModel[] - ParameterId["DataAlertMeasures"] = "dataAlertMeasures"; - // DPI_DataAlertConstantCondition, having type DataAlertConstantConditionPresModel - ParameterId["DataAlertConstantCondition"] = "dataAlertConstantCondition"; - // DPI_DataAlertDialogMode, having type DataAlertDialogMode - ParameterId["DataAlertDialogMode"] = "dataAlertDialogMode"; - // DPI_LightweightMapOptions, having type LightweightMapOptionsPresModel - ParameterId["LightweightMapOptions"] = "lightweightMapOptions"; - // DPI_DataHighlighter, having type DataHighlighterPresModel - ParameterId["DataHighlighter"] = "dataHighlighter"; - // DPI_DataHighlighterItemSet, having type DataHighlighterItemSetPresModel - ParameterId["DataHighlighterItemSet"] = "dataHighlighterItemSet"; - // DPI_DataHighlighterItem, having type DataHighlighterItemPresModel - ParameterId["DataHighlighterItem"] = "dataHighlighterItem"; - // DPI_DataHighlighterItems, having type DataHighlighterItemPresModel[] - ParameterId["DataHighlighterItems"] = "dataHighlighterItems"; - // DPI_CategoricalLegendLayout, having type CategoricalLegendLayoutPresModel - ParameterId["CategoricalLegendLayout"] = "catLegendLayout"; - // DPI_CategoricalLegend, having type CategoricalLegendPresModel - ParameterId["CategoricalLegend"] = "categoricalLegend"; - // DPI_CategoricalLegends, having type CategoricalLegendPresModel[] - ParameterId["CategoricalLegends"] = "categoricalLegends"; - // DPI_CategoricalColorLegend, having type CategoricalColorLegendPresModel - ParameterId["CategoricalColorLegend"] = "colorLegend"; - // DPI_ColorLegendItem, having type CategoricalColorLegendItemPresModel - ParameterId["ColorLegendItem"] = "colorLegendItem"; - // DPI_ColorLegendItems, having type CategoricalColorLegendItemPresModel[] - ParameterId["ColorLegendItems"] = "colorLegendItems"; - // DPI_CategoricalShapeLegend, having type CategoricalShapeLegendPresModel - ParameterId["CategoricalShapeLegend"] = "categoricalShapeLegend"; - // DPI_ShapeLegendItem, having type CategoricalShapeLegendItemPresModel - ParameterId["ShapeLegendItem"] = "shapeLegendItem"; - // DPI_ShapeLegendItems, having type CategoricalShapeLegendItemPresModel[] - ParameterId["ShapeLegendItems"] = "shapeLegendItems"; - // DPI_CategoricalHighlightLegend, having type CategoricalHighlightLegendPresModel - ParameterId["CategoricalHighlightLegend"] = "categoricalHighlightLegend"; - // DPI_HighlightLegendItem, having type CategoricalLegendItemPresModel - ParameterId["HighlightLegendItem"] = "highlightLegendItem"; - // DPI_HighlightLegendItems, having type CategoricalLegendItemPresModel[] - ParameterId["HighlightLegendItems"] = "highlightLegendItems"; - // DPI_CategoricalSizeLegend, having type CategoricalSizeLegendPresModel - ParameterId["CategoricalSizeLegend"] = "categoricalSizeLegend"; - // DPI_SizeLegendItem, having type CategoricalSizeLegendItemPresModel - ParameterId["SizeLegendItem"] = "sizeLegendItem"; - // DPI_SizeLegendItems, having type CategoricalSizeLegendItemPresModel[] - ParameterId["SizeLegendItems"] = "sizeLegendItems"; - // DPI_CategoricalMapLegend, having type CategoricalMapLegendPresModel - ParameterId["CategoricalMapLegend"] = "categoricalMapLegend"; - // DPI_QuantitativeColorLegend, having type QuantitativeColorLegendPresModel - ParameterId["QuantitativeColorLegend"] = "quantitativeColorLegend"; - // DPI_QuantitativeColorLegends, having type QuantitativeColorLegendPresModel[] - ParameterId["QuantitativeColorLegends"] = "quantitativeColorLegends"; - // DPI_QuantitativeLegendLayout, having type QuantitativeLegendLayoutPresModel - ParameterId["QuantitativeLegendLayout"] = "quantitativeLegendLayout"; - // DPI_ServerRenderedLegend, having type ServerRenderedLegendPresModel - ParameterId["ServerRenderedLegend"] = "serverRenderedLegend"; - // DPI_CategoricalFilter, having type CategoricalFilterPresModel - ParameterId["CategoricalFilter"] = "categoricalFilter"; - // DPI_CategoricalFilterRelational, having type CategoricalFilterRelationalPresModel - ParameterId["CategoricalFilterRelational"] = "categoricalFilterRelational"; - // DPI_CategoricalFilterMemberDomainPage, having type CategoricalFilterMemberDomainPagePresModel - ParameterId["CategoricalFilterMemberDomainPage"] = "categoricalFilterMemberDomainPage"; - // DPI_CategoricalFilterCacheInfo, having type CategoricalFilterCacheInfoPresModel - ParameterId["CategoricalFilterCacheInfo"] = "categoricalFilterCacheInfo"; - // DPI_CategoricalFilterPatternDisplay, having type CategoricalFilterPatternDisplayPresModel - ParameterId["CategoricalFilterPatternDisplay"] = "categoricalFilterPatternDisplay"; - // DPI_CategoricalFilterPatternUpdate, having type CategoricalFilterPatternUpdatePresModel - ParameterId["CategoricalFilterPatternUpdate"] = "categoricalFilterPatternUpdate"; - // DPI_CategoricalFilterConditionDisplay, having type CategoricalFilterConditionDisplayPresModel - ParameterId["CategoricalFilterConditionDisplay"] = "categoricalFilterConditionDisplay"; - // DPI_CategoricalFilterConditionUpdate, having type CategoricalFilterConditionUpdatePresModel - ParameterId["CategoricalFilterConditionUpdate"] = "categoricalFilterConditionUpdate"; - // DPI_CategoricalFilterLimitDisplay, having type CategoricalFilterLimitDisplayPresModel - ParameterId["CategoricalFilterLimitDisplay"] = "categoricalFilterLimitDisplay"; - // DPI_CategoricalFilterLimitUpdate, having type CategoricalFilterLimitUpdatePresModel - ParameterId["CategoricalFilterLimitUpdate"] = "categoricalFilterLimitUpdate"; - // DPI_CategoricalFilterNew, having type CategoricalFilter_NewPresModel - ParameterId["CategoricalFilterNew"] = "categoricalFilterNew"; - // DPI_CategoricalFilterHierarchy, having type CategoricalFilterHierarchyPresModel - ParameterId["CategoricalFilterHierarchy"] = "categoricalFilterHirerarchy"; - // DPI_CategoricalFilterUpdate, having type CategoricalFilterUpdatePresModel - ParameterId["CategoricalFilterUpdate"] = "categoricalFilterUpdate"; - // DPI_CategoricalFilterRelationalState, having type CategoricalFilterRelationalStatePresModel - ParameterId["CategoricalFilterRelationalState"] = "categoricalRelationalState"; - // DPI_CategoricalFilterRelationalUpdatedState, having type CategoricalFilterRelationalStatePresModel - ParameterId["CategoricalFilterRelationalUpdatedState"] = "categoricalRelationalUpdatedState"; - // DPI_CategoricalFilterRelationalDomainInfo, having type CategoricalFilterRelationalDomainInfoPresModel - ParameterId["CategoricalFilterRelationalDomainInfo"] = "categoricalFilterRelationalDomainInfo"; - // DPI_CategoricalFilterRelationalDisplay, having type CategoricalFilterRelationalDisplayPresModel - ParameterId["CategoricalFilterRelationalDisplay"] = "categoricalFilterRelationalDisplay"; - // DPI_ExpressionToken, having type ExpressionTokenPresModel - ParameterId["ExpressionToken"] = "expressionToken"; - // DPI_ExpressionTokens, having type ExpressionTokenPresModel[] - ParameterId["ExpressionTokens"] = "expressionTokens"; - // DPI_FormulaValidation, having type FormulaValidationPresModel - ParameterId["FormulaValidation"] = "formulaValidation"; - // DPI_ValidationResults, having type ValidationResultsPresModel - ParameterId["ValidationResults"] = "validationResults"; - // DPI_DomainMember, having type DomainMemberPresModel - ParameterId["DomainMember"] = "domainMember"; - // DPI_DomainMembers, having type DomainMemberPresModel[] - ParameterId["DomainMembers"] = "domainMembers"; - // DPI_QuickFilterDisplay, having type QuickFilterDisplayPresModel - ParameterId["QuickFilterDisplay"] = "quickFilterDisplay"; - // DPI_QuickFilter, having type QuickFilterPresModel - ParameterId["QuickFilter"] = "quickFilter"; - // DPI_QuantitativeQuickFilter, having type QuantitativeQuickFilterPresModel - ParameterId["QuantitativeQuickFilter"] = "quantitativeQuickFilter"; - // DPI_RelativeDateQuickFilter, having type RelativeDateQuickFilterPresModel - ParameterId["RelativeDateQuickFilter"] = "relativeDateQuickFilter"; - // DPI_CategoricalQuickFilter, having type CategoricalQuickFilterPresModel - ParameterId["CategoricalQuickFilter"] = "categoricalQuickFilter"; - // DPI_HierarchicalQuickFilter, having type HierarchicalQuickFilterPresModel - ParameterId["HierarchicalQuickFilter"] = "hierarchicalQuickFilter"; - // DPI_DomainTable, having type DomainTablePresModel - ParameterId["DomainTable"] = "domainTable"; - // DPI_DomainTables, having type DomainTablePresModel[] - ParameterId["DomainTables"] = "domainTables"; - // DPI_DomainTuples, having type Tuples - ParameterId["DomainTuples"] = "domainTuples"; - // DPI_SearchTuples, having type Tuples - ParameterId["SearchTuples"] = "searchTuples"; - // DPI_SelectedTuples, having type TupleHash - ParameterId["SelectedTuples"] = "selectedTuples"; - // DPI_PendingTuples, having type TupleHash - ParameterId["PendingTuples"] = "pendingTuples"; - // DPI_Domain, having type MultiDomain - ParameterId["Domain"] = "domain"; - // DPI_DateOption, having type DateBinDialogOptionPresModel - ParameterId["DateOption"] = "dateOption"; - // DPI_DateOptions, having type DateBinDialogOptionPresModel[] - ParameterId["DateOptions"] = "dateOptions"; - // DPI_FilterRangeAdd, having type FilterRangePresModel - ParameterId["FilterRangeAdd"] = "filterRangeAdd"; - // DPI_FilterRangeRemove, having type FilterRangePresModel - ParameterId["FilterRangeRemove"] = "filterRangeRemove"; - // DPI_FilterOptions, having type FilterOptionsPresModel - ParameterId["FilterOptions"] = "filterOptions"; - // DPI_Layer, having type LayerPresModel - ParameterId["Layer"] = "layer"; - // DPI_Layers, having type LayerPresModel[] - ParameterId["Layers"] = "layers"; - // DPI_MarksCardPresModel, having type MarksCardPresModel - ParameterId["MarksCardPresModel"] = "marksCardPresModel"; - // DPI_UIItem, having type UIItemPresModel - ParameterId["UIItem"] = "uiItem"; - // DPI_EncodingUIItem, having type EncodingUIItemPresModel - ParameterId["EncodingUIItem"] = "encodingUiItem"; - // DPI_EncodingUIItems, having type EncodingUIItemPresModel[] - ParameterId["EncodingUIItems"] = "encodingUiItems"; - // DPI_PrimTypeUIItem, having type PrimitiveTypeUIItemPresModel - ParameterId["PrimTypeUIItem"] = "primitiveTypeUiItem"; - // DPI_PrimTypeUIItems, having type PrimitiveTypeUIItemPresModel[] - ParameterId["PrimTypeUIItems"] = "primitiveTypeUiItems"; - // DPI_PrimitiveTypeUIItemOptions, having type PrimitiveTypeUIItemOptionsPresModel - ParameterId["PrimitiveTypeUIItemOptions"] = "primitiveTypeUiItemOptions"; - // DPI_LineUIItemOptions, having type LineUIItemOptionsPresModel - ParameterId["LineUIItemOptions"] = "lineUiItemOptions"; - // DPI_LineInterpolationModeUIItem, having type LineInterpolationModeUIItemPresModel - ParameterId["LineInterpolationModeUIItem"] = "lineInterpolationModeUiItem"; - // DPI_LineInterpolationModeUIItemSet, having type LineInterpolationModeUIItemPresModel[] - ParameterId["LineInterpolationModeUIItemSet"] = "lineInterpolationModeUiItemSet"; - // DPI_LineMarkerPositionUIItem, having type LineMarkerPositionUIItemPresModel - ParameterId["LineMarkerPositionUIItem"] = "lineMarkerPositionUiItem"; - // DPI_LineMarkerPositionUIItemSet, having type LineMarkerPositionUIItemPresModel[] - ParameterId["LineMarkerPositionUIItemSet"] = "lineMarkerPositionUiItemSet"; - // DPI_MarksCardDropdownItem, having type MarksCardDropdownItemPresModel - ParameterId["MarksCardDropdownItem"] = "marksCardDropdownItem"; - // DPI_TooltipDropdownItem, having type TooltipDropdownItemPresModel - ParameterId["TooltipDropdownItem"] = "tooltipDropdownItem"; - // DPI_TextDropdownItem, having type TextDropdownItemPresModel - ParameterId["TextDropdownItem"] = "textDropdownItem"; - // DPI_ColorDropdownItem, having type ColorDropdownItemPresModel - ParameterId["ColorDropdownItem"] = "colorDropdownItem"; - // DPI_SizeSliderPresModel, having type SizeSliderPresModel - ParameterId["SizeSliderPresModel"] = "sizeSliderPresModel"; - // DPI_InflectionPoint, having type InflectionPointPresModel - ParameterId["InflectionPoint"] = "inflectionPoint"; - // DPI_InflectionPoints, having type InflectionPointPresModel[] - ParameterId["InflectionPoints"] = "inflectionPoints"; - // DPI_Notch, having type NotchPresModel - ParameterId["Notch"] = "notch"; - // DPI_Notches, having type NotchPresModel[] - ParameterId["Notches"] = "notches"; - // DPI_MarkSizeOptionsPresModel, having type MarkSizeOptionsPresModel - ParameterId["MarkSizeOptionsPresModel"] = "markSizeOptionsPresModel"; - // DPI_ModifyMarksInSet, having type AddOrRemoveMarks - ParameterId["ModifyMarksInSet"] = "addOrRemoveMarks"; - // DPI_MarkLabelsSpecification, having type MarkLabelsSpecificationPresModel - ParameterId["MarkLabelsSpecification"] = "markLabelsSpecification"; - // DPI_ColorPalette, having type ColorPalettePresModel - ParameterId["ColorPalette"] = "colorPalette"; - // DPI_SelectedColorPalette, having type ColorPalettePresModel - ParameterId["SelectedColorPalette"] = "selectedColorPalette"; - // DPI_ColorPalettes, having type ColorPalettePresModel[] - ParameterId["ColorPalettes"] = "colorPalettes"; - // DPI_ColorPaletteGroup, having type ColorPaletteGroupPresModel - ParameterId["ColorPaletteGroup"] = "colorPaletteGroup"; - // DPI_CatColorPaletteGroups, having type ColorPaletteGroupPresModel[] - ParameterId["CatColorPaletteGroups"] = "catColorPaletteGroups"; - // DPI_QColorPaletteGroups, having type ColorPaletteGroupPresModel[] - ParameterId["QColorPaletteGroups"] = "qColorPaletteGroups"; - // DPI_ColorPaletteCollection, having type ColorPaletteCollectionPresModel - ParameterId["ColorPaletteCollection"] = "colorPaletteCollection"; - // DPI_QuantitativeColor, having type QuantitativeColorPresModel - ParameterId["QuantitativeColor"] = "quantitativeColor"; - // DPI_CategoricalColor, having type CategoricalColorPresModel - ParameterId["CategoricalColor"] = "categoricalColor"; - // DPI_ItemColorPair, having type ItemColorPairPresModel - ParameterId["ItemColorPair"] = "itemColorPair"; - // DPI_ItemColorPairs, having type ItemColorPairPresModel[] - ParameterId["ItemColorPairs"] = "itemColorPairs"; - // DPI_VQLCommandResponse, having type VQLCommandResponsePresModel - ParameterId["VQLCommandResponse"] = "vqlCmdResponse"; - // DPI_LayoutStatus, having type LayoutStatusPresModel - ParameterId["LayoutStatus"] = "layoutStatus"; - // DPI_VizState, having type VizStatePresModel - ParameterId["VizState"] = "vizState"; - // DPI_VizStateList, having type VizStatePresModel[] - ParameterId["VizStateList"] = "vizStateList"; - // DPI_CommandResult, having type CommandResultPresModel - ParameterId["CommandResult"] = "cmdResult"; - // DPI_CommandResultList, having type CommandResultPresModel[] - ParameterId["CommandResultList"] = "cmdResultList"; - // DPI_URLAction, having type URLActionPresModel - ParameterId["URLAction"] = "urlAction"; - // DPI_URLActionList, having type URLActionPresModel[] - ParameterId["URLActionList"] = "urlActionList"; - // DPI_LegacyMenu, having type LegacyMenuPresModel - ParameterId["LegacyMenu"] = "legacyMenu"; - // DPI_LegacyMenus, having type LegacyMenuPresModel[] - ParameterId["LegacyMenus"] = "legacyMenus"; - // DPI_ConnectionAttemptInfo, having type ConnectionAttemptInfoPresModel - ParameterId["ConnectionAttemptInfo"] = "connectionAttemptInfo"; - // DPI_DataSourceConnectionAttemptInfo, having type DataSourceConnectionAttemptInfoPresModel - ParameterId["DataSourceConnectionAttemptInfo"] = "dataSourceConnectionAttemptInfo"; - // DPI_DataSourceConnectionAttemptInfos, having type DataSourceConnectionAttemptInfoPresModel[] - ParameterId["DataSourceConnectionAttemptInfos"] = "dataSourceConnectionAttemptInfos"; - // DPI_CommandValidationPresModel, having type CommandValidationPresModel - ParameterId["CommandValidationPresModel"] = "commandValidationPresModel"; - // DPI_WarningMessage, having type WarningMessagePresModel - ParameterId["WarningMessage"] = "warningMessagePresModel"; - // DPI_ApplicationPresModel, having type ApplicationPresModel - ParameterId["ApplicationPresModel"] = "applicationPresModel"; - // DPI_ToolbarPresModel, having type ToolbarPresModel - ParameterId["ToolbarPresModel"] = "toolbarPresModel"; - // DPI_WorkbookPresModel, having type WorkbookPresModel - ParameterId["WorkbookPresModel"] = "workbookPresModel"; - // DPI_ServerFonts, having type ServerFontsPresModel - ParameterId["ServerFonts"] = "serverFonts"; - // DPI_PublishDataSourceMetadataPresModel, having type PublishDataSourceMetadataPresModel - ParameterId["PublishDataSourceMetadataPresModel"] = "publishDataSourceMetadataPresModel"; - // DPI_DashboardPresModel, having type DashboardPresModel - ParameterId["DashboardPresModel"] = "dashboardPresModel"; - // DPI_DashboardSizePresModel, having type DashboardSizePresModel - ParameterId["DashboardSizePresModel"] = "dashboardSizePresModel"; - // DPI_DashboardSizeWithValidationPresModel, having type DashboardSizeWithValidationPresModel - ParameterId["DashboardSizeWithValidationPresModel"] = "dashboardSizeWithValidationPresModel"; - // DPI_DashboardInfoPresModel, having type DashboardInfoPresModel - ParameterId["DashboardInfoPresModel"] = "dashboardInfoPresModel"; - // DPI_VisualPresModel, having type VisualPresModel - ParameterId["VisualPresModel"] = "visual"; - // DPI_VisualPresModels, having type VisualPresModel[] - ParameterId["VisualPresModels"] = "visuals"; - // DPI_DropLinesPresModel, having type DropLinesPresModel - ParameterId["DropLinesPresModel"] = "dropLinesPresModel"; - // DPI_DropFieldPresModel, having type DropFieldPresModel - ParameterId["DropFieldPresModel"] = "dropFieldPresModel"; - // DPI_DropFieldResultPresModel, having type DropFieldResultPresModel - ParameterId["DropFieldResultPresModel"] = "dropFieldResultPresModel"; - // DPI_CurrentAxisRange, having type DataValueRangePresModel - ParameterId["CurrentAxisRange"] = "currentAxisRange"; - // DPI_CurrentAxisRangeNoTime, having type DataValueRangePresModel - ParameterId["CurrentAxisRangeNoTime"] = "currentAxisRangeNoTime"; - // DPI_DefaultAxisRange, having type DataValueRangePresModel - ParameterId["DefaultAxisRange"] = "defaultAxisRange"; - // DPI_NewAxisRange, having type DataValueRangePresModel - ParameterId["NewAxisRange"] = "newAxisRange"; - // DPI_AxisOptions, having type AxisOptionsPresModel - ParameterId["AxisOptions"] = "axis"; - // DPI_AxisMajorTicks, having type TickMarkInfoPresModel - ParameterId["AxisMajorTicks"] = "axisMajorTicks"; - // DPI_AxisMinorTicks, having type TickMarkInfoPresModel - ParameterId["AxisMinorTicks"] = "axisMinorTicks"; - // DPI_EditAxisDialog, having type EditAxisDialogPresModel - ParameterId["EditAxisDialog"] = "editAxisDialog"; - // DPI_MarkLabels, having type ScenePresModel - ParameterId["MarkLabels"] = "markLabels"; - // DPI_Scene, having type ScenePresModel - ParameterId["Scene"] = "scene"; - // DPI_MapServer, having type MapServerPresModel - ParameterId["MapServer"] = "mapServer"; - // DPI_VisualList, having type VisualListPresModel - ParameterId["VisualList"] = "visualList"; - // DPI_DrawFirst, having type VisualListPresModel[] - ParameterId["DrawFirst"] = "drawFirst"; - // DPI_DrawLast, having type VisualListPresModel[] - ParameterId["DrawLast"] = "drawLast"; - // DPI_DrawPane, having type VisualListPresModel[] - ParameterId["DrawPane"] = "drawPane"; - // DPI_UserPaneInfo, having type UserPaneInfoPresModel - ParameterId["UserPaneInfo"] = "userPaneInfo"; - // DPI_AnalyticsPane, having type AnalyticsPanePresModel - ParameterId["AnalyticsPane"] = "analyticsPane"; - // DPI_AnalyticsObjectItem, having type AnalyticsObjectItemPresModel - ParameterId["AnalyticsObjectItem"] = "analyticsObjectItem"; - // DPI_AnalyticsObjectItems, having type AnalyticsObjectItemPresModel[] - ParameterId["AnalyticsObjectItems"] = "analyticsObjectItems"; - // DPI_AnalyticsObjectGroup, having type AnalyticsObjectGroupPresModel - ParameterId["AnalyticsObjectGroup"] = "analyticsObjectGroup"; - // DPI_AnalyticsObjectGroups, having type AnalyticsObjectGroupPresModel[] - ParameterId["AnalyticsObjectGroups"] = "analyticsObjectGroups"; - // DPI_DropZoneItem, having type DropZoneItemPresModel - ParameterId["DropZoneItem"] = "dropZoneItem"; - // DPI_DropZoneItems, having type DropZoneItemPresModel[] - ParameterId["DropZoneItems"] = "dropZoneItems"; - // DPI_DropTargetInfo, having type DropTargetInfoPresModel - ParameterId["DropTargetInfo"] = "dropTargetInfo"; - // DPI_Pane, having type PanePresModel - ParameterId["Pane"] = "pane"; - // DPI_Panes, having type PanePresModel[] - ParameterId["Panes"] = "panes"; - // DPI_RadialSelectionDistanceInfo, having type RadialSelectionDistanceInfoPresModel - ParameterId["RadialSelectionDistanceInfo"] = "radialSelectionDistanceInfo"; - // DPI_MapScaleInfo, having type MapScaleInfoPresModel - ParameterId["MapScaleInfo"] = "mapScaleInfo"; - // DPI_RenderNode, having type RenderNodePresModel - ParameterId["RenderNode"] = "renderNode"; - // DPI_RenderNodes, having type RenderNodePresModel[] - ParameterId["RenderNodes"] = "renderNodes"; - // DPI_PredictionBand, having type PredictionBandPresModel - ParameterId["PredictionBand"] = "predictionBand"; - // DPI_PredictionWhisker, having type PredictionWhiskerPresModel - ParameterId["PredictionWhisker"] = "predictionWhisker"; - // DPI_DrawGroup, having type DrawPointsPresModel - ParameterId["DrawGroup"] = "drawGroup"; - // DPI_ClipReset, having type DrawItemPresModel - ParameterId["ClipReset"] = "clipReset"; - // DPI_DrawItem, having type DrawItemPresModel - ParameterId["DrawItem"] = "drawItem"; - // DPI_TransformPop, having type DrawItemPresModel - ParameterId["TransformPop"] = "transformPop"; - // DPI_TransformPush, having type DrawItemPresModel - ParameterId["TransformPush"] = "transformPush"; - // DPI_DrawItems, having type DrawItemPresModel[] - ParameterId["DrawItems"] = "drawItems"; - // DPI_ClipRect, having type DrawPointsPresModel - ParameterId["ClipRect"] = "clipRect"; - // DPI_DrawEllipse, having type DrawPointsPresModel - ParameterId["DrawEllipse"] = "drawEllipse"; - // DPI_DrawFillEllipse, having type DrawPointsPresModel - ParameterId["DrawFillEllipse"] = "drawFillEllipse"; - // DPI_DrawFillPolygon, having type DrawPointsPresModel - ParameterId["DrawFillPolygon"] = "drawFillPolygon"; - // DPI_DrawFillRect, having type DrawPointsPresModel - ParameterId["DrawFillRect"] = "drawFillRect"; - // DPI_DrawPolygon, having type DrawPointsPresModel - ParameterId["DrawPolygon"] = "drawPolygon"; - // DPI_DrawPolyline, having type DrawPointsPresModel - ParameterId["DrawPolyline"] = "drawPolyline"; - // DPI_DrawRect, having type DrawPointsPresModel - ParameterId["DrawRect"] = "drawRect"; - // DPI_DrawFillPath, having type DrawPathPresModel - ParameterId["DrawFillPath"] = "drawFillPath"; - // DPI_DrawPath, having type DrawPathPresModel - ParameterId["DrawPath"] = "drawPath"; - // DPI_DrawText, having type DrawTextPresModel - ParameterId["DrawText"] = "drawText"; - // DPI_DrawImage, having type DrawImagePresModel - ParameterId["DrawImage"] = "drawImage"; - // DPI_ImageTileInfo, having type ImageTileInfoPresModel - ParameterId["ImageTileInfo"] = "tileInfo"; - // DPI_ImageTileInfos, having type ImageTileInfoPresModel[] - ParameterId["ImageTileInfos"] = "tileInfos"; - // DPI_DrawImageTiles, having type DrawImageTilesPresModel - ParameterId["DrawImageTiles"] = "drawImageTiles"; - // DPI_DrawPen, having type DrawPenPresModel - ParameterId["DrawPen"] = "drawPen"; - // DPI_DrawSolidBrush, having type DrawSolidBrushPresModel - ParameterId["DrawSolidBrush"] = "drawSolidBrush"; - // DPI_DrawTextProperties, having type DrawTextPropertiesPresModel - ParameterId["DrawTextProperties"] = "drawTextProps"; - // DPI_DrawGradientBrush, having type DrawGradientBrushPresModel - ParameterId["DrawGradientBrush"] = "drawGradientBrush"; - // DPI_DrawTransform, having type DrawTransformPresModel - ParameterId["DrawTransform"] = "transform"; - // DPI_DrawAntialias, having type DrawAntialiasPresModel - ParameterId["DrawAntialias"] = "drawAntialias"; - // DPI_ImageDictionary, having type ImageDictionaryPresModel - ParameterId["ImageDictionary"] = "imageDictionary"; - // DPI_ColorDictionary, having type ColorDictionaryPresModel - ParameterId["ColorDictionary"] = "colorDictionary"; - // DPI_MarkShape, having type MarkShapePresModel - ParameterId["MarkShape"] = "markShape"; - // DPI_MarkShapeList, having type MarkShapePresModel[] - ParameterId["MarkShapeList"] = "markShapeList"; - // DPI_PaneDescriptor, having type PaneDescriptorPresModel - ParameterId["PaneDescriptor"] = "paneDescriptor"; - // DPI_PDMarks, having type PDMarksPresModel - ParameterId["PDMarks"] = "pdMarks"; - // DPI_PDMarksMap, having type Dictionary(of PDMarksPresModel) - ParameterId["PDMarksMap"] = "pdMarksMap"; - // DPI_LabelTextTable, having type LabelTextTable - ParameterId["LabelTextTable"] = "labelTextTable"; - // DPI_TextTableHelper, having type TextTableHelper - ParameterId["TextTableHelper"] = "textTableHelper"; - // DPI_GeometryTable, having type GeometryTable - ParameterId["GeometryTable"] = "geometryTable"; - // DPI_PaneMarks, having type PaneMarksPresModel - ParameterId["PaneMarks"] = "paneMarks"; - // DPI_PaneMarksList, having type PaneMarksPresModel[] - ParameterId["PaneMarksList"] = "paneMarksList"; - // DPI_BrushingSelection, having type SelectionPresModel - ParameterId["BrushingSelection"] = "brushing"; - // DPI_Selection, having type SelectionPresModel - ParameterId["Selection"] = "selection"; - // DPI_BrushingSelectionList, having type SelectionPresModel[] - ParameterId["BrushingSelectionList"] = "brushingSelectionList"; - // DPI_SelectionList, having type SelectionPresModel[] - ParameterId["SelectionList"] = "selectionList"; - // DPI_ShelfSelectionModel, having type ShelfSelectionPresModel - ParameterId["ShelfSelectionModel"] = "shelfSelectionModel"; - // DPI_ShelfSelectionModels, having type ShelfSelectionPresModel[] - ParameterId["ShelfSelectionModels"] = "shelfSelectionModels"; - // DPI_ShelfSelectionsModel, having type ShelfSelectionsPresModel - ParameterId["ShelfSelectionsModel"] = "shelfSelectionsModel"; - // DPI_DimValSelectionModel, having type DimensionValueSelectionPresModel - ParameterId["DimValSelectionModel"] = "dimensionValueSelectionModel"; - // DPI_DimValSelectionModels, having type DimensionValueSelectionPresModel[] - ParameterId["DimValSelectionModels"] = "dimensionValueSelectionModels"; - // DPI_HierValSelectionModel, having type HierarchicalValueSelectionPresModel - ParameterId["HierValSelectionModel"] = "hierarchicalValueSelectionModel"; - // DPI_HierValSelectionModels, having type HierarchicalValueSelectionPresModel[] - ParameterId["HierValSelectionModels"] = "hierarchicalValueSelectionModels"; - // DPI_QuantRangeSelectionModel, having type QuantativeRangeSelectionPresModel - ParameterId["QuantRangeSelectionModel"] = "quantativeRangeSelectionModel"; - // DPI_QuantRangeSelectionModels, having type QuantativeRangeSelectionPresModel[] - ParameterId["QuantRangeSelectionModels"] = "quantativeRangeSelectionModels"; - // DPI_QuantValueSelectionModel, having type QuantativeValueSelectionPresModel - ParameterId["QuantValueSelectionModel"] = "quantativeValueSelectionModel"; - // DPI_QuantValueSelectionModels, having type QuantativeValueSelectionPresModel[] - ParameterId["QuantValueSelectionModels"] = "quantativeValueSelectionModels"; - // DPI_LegendSelectionInfo, having type LegendSelectionInfoPresModel - ParameterId["LegendSelectionInfo"] = "legendSelectionInfo"; - // DPI_NodeReference, having type NodeReferencePresModel - ParameterId["NodeReference"] = "nodeReference"; - // DPI_PageReference, having type PageReferencePresModel - ParameterId["PageReference"] = "pageReference"; - // DPI_OrientedNodeReference, having type OrientedNodeReferencePresModel - ParameterId["OrientedNodeReference"] = "orientedNodeReference"; - // DPI_OrientedNodeReferences, having type OrientedNodeReferencePresModel[] - ParameterId["OrientedNodeReferences"] = "orientedNodeReferences"; - // DPI_SelectionData, having type SelectionDataPresModel - ParameterId["SelectionData"] = "selectionData"; - // DPI_HighlightedData, having type HighlightedDataPresModel - ParameterId["HighlightedData"] = "highlightedData"; - // DPI_Node, having type NodePresModel - ParameterId["Node"] = "node"; - // DPI_Nodes, having type NodePresModel[] - ParameterId["Nodes"] = "nodes"; - // DPI_SelectedNodes, having type NodePresModel[] - ParameterId["SelectedNodes"] = "selectedNodes"; - // DPI_UserAction, having type ActionPresModel - ParameterId["UserAction"] = "userAction"; - // DPI_UserActions, having type ActionPresModel[] - ParameterId["UserActions"] = "userActions"; - // DPI_LinkSpec, having type LinkSpecPresModel - ParameterId["LinkSpec"] = "linkSpec"; - // DPI_ActionSpecificationModel, having type ActionSpecificationPresModel - ParameterId["ActionSpecificationModel"] = "actionSpecification"; - // DPI_LinkSpecification, having type LinkSpecificationPresModel - ParameterId["LinkSpecification"] = "linkSpecification"; - // DPI_ScriptDescription, having type ScriptDescriptionPresModel - ParameterId["ScriptDescription"] = "scriptDescription"; - // DPI_ActionSource, having type ActionSourcePresModel - ParameterId["ActionSource"] = "actionSource"; - // DPI_FieldExprItem, having type FieldExprItemPresModel - ParameterId["FieldExprItem"] = "fieldExpressionItem"; - // DPI_FieldExprVector, having type FieldExprItemPresModel[] - ParameterId["FieldExprVector"] = "fieldExpressionVector"; - // DPI_ActionComboItem, having type ActionComboItemPresModel - ParameterId["ActionComboItem"] = "actionComboItem"; - // DPI_ActionComboVector, having type ActionComboItemPresModel[] - ParameterId["ActionComboVector"] = "actionComboVector"; - // DPI_ActionSourceCombo, having type ActionSourceComboPresModel - ParameterId["ActionSourceCombo"] = "actionSourceCombo"; - // DPI_ActionDestCombo, having type ActionComboPresModel - ParameterId["ActionDestCombo"] = "actionDestCombo"; - // DPI_ActionFieldList, having type ActionFieldListPresModel - ParameterId["ActionFieldList"] = "actionFieldList"; - // DPI_EditBrushAction, having type EditBrushActionPresModel - ParameterId["EditBrushAction"] = "editBrushAction"; - // DPI_UpdateActionSource, having type UpdateActionSourcePresModel - ParameterId["UpdateActionSource"] = "updateActionSource"; - // DPI_UpdateBrushAction, having type UpdateBrushActionPresModel - ParameterId["UpdateBrushAction"] = "updateBrushAction"; - // DPI_ActionWarnings, having type ActionWarningsPresModel - ParameterId["ActionWarnings"] = "actionWarnings"; - // DPI_EditHyperlinkAction, having type EditHyperlinkActionPresModel - ParameterId["EditHyperlinkAction"] = "editHyperlinkAction"; - // DPI_UpdateHyperlinkAction, having type UpdateHyperlinkActionPresModel - ParameterId["UpdateHyperlinkAction"] = "updateHyperlinkAction"; - // DPI_EditSheetLinkAction, having type EditSheetLinkActionPresModel - ParameterId["EditSheetLinkAction"] = "editSheetlinkAction"; - // DPI_UpdateSheetLinkAction, having type UpdateSheetLinkActionPresModel - ParameterId["UpdateSheetLinkAction"] = "updateSheetlinkAction"; - // DPI_ActionItem, having type ActionItemPresModel - ParameterId["ActionItem"] = "actionItem"; - // DPI_ActionItemList, having type ActionItemPresModel[] - ParameterId["ActionItemList"] = "actionItemList"; - // DPI_DataSegment, having type DataSegmentPresModel - ParameterId["DataSegment"] = "dataSegment"; - // DPI_DataSegments, having type Dictionary(of DataSegmentPresModel) - ParameterId["DataSegments"] = "dataSegments"; - // DPI_DataDictionary, having type DataDictionaryPresModel - ParameterId["DataDictionary"] = "dataDictionary"; - // DPI_VizData, having type VizDataPresModel - ParameterId["VizData"] = "vizData"; - // DPI_VizColumn, having type VizColumnPresModel - ParameterId["VizColumn"] = "vizColumn"; - // DPI_VizColumns, having type VizColumnPresModel[] - ParameterId["VizColumns"] = "vizColumns"; - // DPI_VizDataColumn, having type VizDataColumnPresModel - ParameterId["VizDataColumn"] = "vizDataColumn"; - // DPI_VizDataColumns, having type VizDataColumnPresModel[] - ParameterId["VizDataColumns"] = "vizDataColumns"; - // DPI_VizPaneColumn, having type VizPaneColumnPresModel - ParameterId["VizPaneColumn"] = "vizPaneColumn"; - // DPI_VizPaneColumns, having type VizPaneColumnPresModel[] - ParameterId["VizPaneColumns"] = "vizPaneColumns"; - // DPI_PaneColumns, having type PaneColumnsPresModel - ParameterId["PaneColumns"] = "paneColumns"; - // DPI_PaneColumnsList, having type PaneColumnsPresModel[] - ParameterId["PaneColumnsList"] = "paneColumnsList"; - // DPI_PaneColumnsData, having type PaneColumnsDataPresModel - ParameterId["PaneColumnsData"] = "paneColumnsData"; - // DPI_FilterContext, having type FilterContextPresModel - ParameterId["FilterContext"] = "filterContext"; - // DPI_UberTipPaneData, having type UberTipPaneDataPresModel - ParameterId["UberTipPaneData"] = "ubertipPaneData"; - // DPI_UberTipPaneDatas, having type UberTipPaneDataPresModel[] - ParameterId["UberTipPaneDatas"] = "ubertipPaneDatas"; - // DPI_UberTipData, having type UberTipDataPresModel - ParameterId["UberTipData"] = "ubertipData"; - // DPI_RefLineTip, having type RefLineTipPresModel - ParameterId["RefLineTip"] = "refLineTip"; - // DPI_RefLineTips, having type RefLineTipPresModel[] - ParameterId["RefLineTips"] = "refLineTips"; - // DPI_NumericBin, having type NumericBinPresModel - ParameterId["NumericBin"] = "numericBin"; - // DPI_NumericBinDialog, having type NumericBinDialogPresModel - ParameterId["NumericBinDialog"] = "numericBinDialog"; - // DPI_DomainRange, having type DomainRangePresModel - ParameterId["DomainRange"] = "domainRange"; - // DPI_BinSizeInfo, having type BinSizeInfoPresModel - ParameterId["BinSizeInfo"] = "binSizeInfo"; - // DPI_DetailedErrorDialog, having type DetailedErrorPresModel - ParameterId["DetailedErrorDialog"] = "detailedErrorDialog"; - // DPI_DragSourcePosition, having type ShelfDropPositionPresModel - ParameterId["DragSourcePosition"] = "shelfDragSourcePosition"; - // DPI_DropTargetPosition, having type ShelfDropPositionPresModel - ParameterId["DropTargetPosition"] = "shelfDropTargetPosition"; - // DPI_ShelfDropPosition, having type ShelfDropPositionPresModel - ParameterId["ShelfDropPosition"] = "shelfDropPosition"; - // DPI_ShelfDropPositions, having type ShelfDropPositionPresModel[] - ParameterId["ShelfDropPositions"] = "shelfDropPositions"; - // DPI_ShelfDropModel, having type ShelfDropPresModel - ParameterId["ShelfDropModel"] = "shelfDropModel"; - // DPI_ShelfDropModels, having type ShelfDropPresModel[] - ParameterId["ShelfDropModels"] = "shelfDropModels"; - // DPI_Drag, having type DragPresModel - ParameterId["Drag"] = "drag"; - // DPI_SceneElement, having type SceneElementPresModel - ParameterId["SceneElement"] = "sceneElement"; - // DPI_SceneElements, having type SceneElementPresModel[] - ParameterId["SceneElements"] = "sceneElements"; - // DPI_QuickFilterType, having type QuickFilterType - ParameterId["QuickFilterType"] = "quickFilterType"; - // DPI_CatMode, having type QuickFilterCategoricalMode - ParameterId["CatMode"] = "categoricalMode"; - // DPI_CatCtrl, having type QuickFilterCategoricalCtrl - ParameterId["CatCtrl"] = "categoricalControl"; - // DPI_QuantMode, having type QuickFilterQuantitativeMode - ParameterId["QuantMode"] = "quantitativeMode"; - // DPI_QuantCtrl, having type QuickFilterQuantitativeCtrl - ParameterId["QuantCtrl"] = "quantitativeControl"; - // DPI_ZoneCommon, having type ZoneCommonPresModel - ParameterId["ZoneCommon"] = "zoneCommon"; - // DPI_ZoneCommonListItems, having type ZoneCommonPresModel[] - ParameterId["ZoneCommonListItems"] = "zoneCommonListItems"; - // DPI_Zone, having type ZonePresModel - ParameterId["Zone"] = "zone"; - // DPI_Zones, having type Dictionary(of ZonePresModel) - ParameterId["Zones"] = "zones"; - // DPI_ImageZone, having type ImageZonePresModel - ParameterId["ImageZone"] = "imageZone"; - // DPI_WebZone, having type WebZonePresModel - ParameterId["WebZone"] = "webZone"; - // DPI_ZoneEdgeMoveType, having type ZoneEdgeMove - ParameterId["ZoneEdgeMoveType"] = "zoneEdgeMoveType"; - // DPI_ZoneSide, having type SideType - ParameterId["ZoneSide"] = "zoneSide"; - // DPI_SnapPoint, having type SnapPointPresModel - ParameterId["SnapPoint"] = "snapPoint"; - // DPI_SnapPoints, having type SnapPointPresModel[] - ParameterId["SnapPoints"] = "snapPoints"; - // DPI_TargetPreviewPair, having type DragDropTargetPreviewPairPresModel - ParameterId["TargetPreviewPair"] = "targetPreviewPair"; - // DPI_TargetPreviewPairs, having type DragDropTargetPreviewPairPresModel[] - ParameterId["TargetPreviewPairs"] = "targetPreviewPairs"; - // DPI_ContainerGuide, having type DragDropContainerGuidePresModel - ParameterId["ContainerGuide"] = "containerGuide"; - // DPI_ContainerGuides, having type DragDropContainerGuidePresModel[] - ParameterId["ContainerGuides"] = "containerGuides"; - // DPI_ZoneBorder, having type DragDropZoneBorderPresModel - ParameterId["ZoneBorder"] = "zoneBorder"; - // DPI_ZoneBorders, having type DragDropZoneBorderPresModel[] - ParameterId["ZoneBorders"] = "zoneBorders"; - // DPI_DashboardDragDrop, having type DashboardDragDropPresModel - ParameterId["DashboardDragDrop"] = "zoneDragDrop"; - // DPI_DragZoneResize, having type DragZoneResizePresModel - ParameterId["DragZoneResize"] = "zoneResize"; - // DPI_DashboardText, having type TextRegionPresModel - ParameterId["DashboardText"] = "dashboardText"; - // DPI_DashboardTitle, having type TextRegionPresModel - ParameterId["DashboardTitle"] = "dashboardTitle"; - // DPI_QuickFilterTitle, having type TextRegionPresModel - ParameterId["QuickFilterTitle"] = "quickFilterTitle"; - // DPI_VisualCaption, having type TextRegionPresModel - ParameterId["VisualCaption"] = "visualCaption"; - // DPI_VisualTitle, having type TextRegionPresModel - ParameterId["VisualTitle"] = "visualTitle"; - // DPI_ZoneTitleRegion, having type TextRegionPresModel - ParameterId["ZoneTitleRegion"] = "zoneTitle"; - // DPI_ForecastOptions, having type ForecastPresModel - ParameterId["ForecastOptions"] = "forecastOptions"; - // DPI_ForecastDescription, having type ForecastDescribePresModel - ParameterId["ForecastDescription"] = "forecastDescription"; - // DPI_ForecastDiagnose, having type ForecastDiagnosePresModel - ParameterId["ForecastDiagnose"] = "forecastDiagnose"; - // DPI_WorkgroupPublishObject, having type WorkgroupPublishObjectPresModel - ParameterId["WorkgroupPublishObject"] = "publishDataSource"; - // DPI_PublishPermissionsSummary, having type PublishPermissionsSummaryPresModel - ParameterId["PublishPermissionsSummary"] = "publishPermissionsSummary"; - // DPI_CheckNameResults, having type CheckNameResultsPresModel - ParameterId["CheckNameResults"] = "checkNameResults"; - // DPI_ValidatePublishViewsResult, having type ValidatePublishViewsResultPresModel - ParameterId["ValidatePublishViewsResult"] = "validatePublishViewsResult"; - // DPI_PublishAuthenticationSettings, having type PublishAuthenticationSettingsPresModel - ParameterId["PublishAuthenticationSettings"] = "publishAuthenticationSettings"; - // DPI_ManageDatasources, having type ManageDatasourcesPresModel - ParameterId["ManageDatasources"] = "manageDatasources"; - // DPI_CredentialsAuthSettings, having type CredentialsAuthSettingsPresModel - ParameterId["CredentialsAuthSettings"] = "credentialsAuthSettings"; - // DPI_ConnectionCredentialsAuthSettings, having type ConnectionCredentialsAuthSettingsPresModel - ParameterId["ConnectionCredentialsAuthSettings"] = "connectionCredentialsAuthSettings"; - // DPI_ConnectionCredentialsAuthSettingsList, having type ConnectionCredentialsAuthSettingsPresModel[] - ParameterId["ConnectionCredentialsAuthSettingsList"] = "connectionCredentialsAuthSettingsList"; - // DPI_PublishDatasourceFromWorkbookInfo, having type PublishDatasourceFromWorkbookInfoPresModel - ParameterId["PublishDatasourceFromWorkbookInfo"] = "publishDatasourceFromWorkbookInfo"; - // DPI_PublishDatasourcesFromWorkbookInfo, having type PublishDatasourceFromWorkbookInfoPresModel[] - ParameterId["PublishDatasourcesFromWorkbookInfo"] = "publishDatasourcesFromWorkbookInfo"; - // DPI_PublishSheet, having type PublishSheetPresModel - ParameterId["PublishSheet"] = "publishSheet"; - // DPI_PublishSheets, having type PublishSheetPresModel[] - ParameterId["PublishSheets"] = "publishSheets"; - // DPI_PublishObjectViews, having type PublishObjectViewsPresModel - ParameterId["PublishObjectViews"] = "publishObjectViews"; - // DPI_PublishObjectPublishSheetResults, having type PublishObjectPublishSheetResultsPresModel - ParameterId["PublishObjectPublishSheetResults"] = "publishObjectPublishSheetResults"; - // DPI_RefreshExtractSchedulingSettings, having type RefreshExtractSchedulingSettingsPresModel - ParameterId["RefreshExtractSchedulingSettings"] = "refreshExtractSchedulingSettings"; - // DPI_SetRefreshExtractScheduleResult, having type SetRefreshExtractScheduleResultPresModel - ParameterId["SetRefreshExtractScheduleResult"] = "setRefreshExtractScheduleResult"; - // DPI_CheckPublishObjectNameWarningsResults, having type CheckPublishObjectNameWarningsResultsPresModel - ParameterId["CheckPublishObjectNameWarningsResults"] = "checkPublishObjectNameWarningsResults"; - // DPI_PublishDatasourceOnWorkbookPublishResults, having type PublishDatasourceOnWorkbookPublishResultsPresModel - ParameterId["PublishDatasourceOnWorkbookPublishResults"] = "publishDatasourceOnWorkbookPublishResult"; - // DPI_PublishDataSourceResult, having type PublishDataSourceResultPresModel - ParameterId["PublishDataSourceResult"] = "publishDataSourceResult"; - // DPI_PublishWarningMessage, having type PublishWarningMessagePresModel - ParameterId["PublishWarningMessage"] = "publishWarningMessage"; - // DPI_MustDowngradeToPublishWarningMessagePresModel, having type PublishWarningMessagePresModel - ParameterId["MustDowngradeToPublishWarningMessagePresModel"] = "mustDowngradeToPublishWarningMessagePresModel"; - // DPI_PublishSelectedAttributes, having type PublishSelectedAttributesPresModel - ParameterId["PublishSelectedAttributes"] = "publishSelectedAttributes"; - // DPI_AutosaveFile, having type AutosaveFilePresModel - ParameterId["AutosaveFile"] = "autosaveFile"; - // DPI_AutosaveFiles, having type AutosaveFilePresModel[] - ParameterId["AutosaveFiles"] = "autosaveFiles"; - // DPI_FunctionGroup, having type FunctionGroup - ParameterId["FunctionGroup"] = "funcGrp"; - // DPI_FunctionGroups, having type FunctionGroup[] - ParameterId["FunctionGroups"] = "funcGrps"; - // DPI_FunctionArgType, having type FunctionArgType - ParameterId["FunctionArgType"] = "funcArgType"; - // DPI_FunctionArgTypes, having type FunctionArgType[] - ParameterId["FunctionArgTypes"] = "funcArgTypes"; - // DPI_CalculationStyle, having type CalcStyle - ParameterId["CalculationStyle"] = "calculationStyle"; - // DPI_Calculation, having type CalculationPresModel - ParameterId["Calculation"] = "calculation"; - // DPI_TypeInPill, having type CalculationPresModel - ParameterId["TypeInPill"] = "typeInPill"; - // DPI_CalcErrorInfo, having type CalcErrorInfoPresModel - ParameterId["CalcErrorInfo"] = "errorInfo"; - // DPI_CalcErrorInfos, having type CalcErrorInfoPresModel[] - ParameterId["CalcErrorInfos"] = "errorInfoList"; - // DPI_CalcualtionValidation, having type CalculationValidationPresModel - ParameterId["CalcualtionValidation"] = "calculationValidation"; - // DPI_ExpressionFunction, having type ExpressionFunctionPresModel - ParameterId["ExpressionFunction"] = "expressionFunc"; - // DPI_ExpressionFunctions, having type ExpressionFunctionPresModel[] - ParameterId["ExpressionFunctions"] = "expressionFuncList"; - // DPI_ExpressionFunctionsPM, having type ExpressionFunctionsPresModel - ParameterId["ExpressionFunctionsPM"] = "expressionFuncPm"; - // DPI_StyleToken, having type StyleTokenPresModel - ParameterId["StyleToken"] = "styleToken"; - // DPI_StyleTokens, having type StyleTokenPresModel[] - ParameterId["StyleTokens"] = "styleTokenList"; - // DPI_CalcEditorTextSelection, having type CalcEditorTextSelectionPresModel - ParameterId["CalcEditorTextSelection"] = "calcEditorTextSelection"; - // DPI_AutoCompleteItemType, having type AutoCompleteItemType - ParameterId["AutoCompleteItemType"] = "autocompleteType"; - // DPI_AutoCompleteItem, having type AutoCompleteItemPresModel - ParameterId["AutoCompleteItem"] = "autocompleteItem"; - // DPI_AutoCompleteItems, having type AutoCompleteItemPresModel[] - ParameterId["AutoCompleteItems"] = "autocompleteItemList"; - // DPI_CalculationAutoCompleteContextMenu, having type CalculationAutoCompleteContextMenuPresModel - ParameterId["CalculationAutoCompleteContextMenu"] = "calculationAutocompleteContextMenu"; - // DPI_CalcApplyResult, having type CalcApplyResult - ParameterId["CalcApplyResult"] = "calculationApplyResult"; - // DPI_RampBorderStyledBox, having type StyledBoxPresModel - ParameterId["RampBorderStyledBox"] = "rampBorderStyledBox"; - // DPI_StyledBox, having type StyledBoxPresModel - ParameterId["StyledBox"] = "styledBox"; - // DPI_GlobalStyledBox, having type StyledBoxPresModel - ParameterId["GlobalStyledBox"] = "globalStyledBox"; - // DPI_StyleContext, having type StyleContextPresModel - ParameterId["StyleContext"] = "styleContext"; - // DPI_CurrentTextStyle, having type TextStylePresModel - ParameterId["CurrentTextStyle"] = "currentTextStyle"; - // DPI_LabelTextStyle, having type TextStylePresModel - ParameterId["LabelTextStyle"] = "labelTextStyle"; - // DPI_OriginalTextStyle, having type TextStylePresModel - ParameterId["OriginalTextStyle"] = "originalTextStyle"; - // DPI_SelectedTextStyleModel, having type TextStylePresModel - ParameterId["SelectedTextStyleModel"] = "selectedTextStyleModel"; - // DPI_SwatchTextStyleModel, having type TextStylePresModel - ParameterId["SwatchTextStyleModel"] = "swatchTextStyle"; - // DPI_TextStyleModel, having type TextStylePresModel - ParameterId["TextStyleModel"] = "textStyle"; - // DPI_TitleStyleModel, having type TextStylePresModel - ParameterId["TitleStyleModel"] = "titleStyleModel"; - // DPI_PropertyBag, having type PropertyBagPresModel - ParameterId["PropertyBag"] = "propBagWrapper"; - // DPI_PresModelMap, having type Dictionary(of PropertyBagPresModel) - ParameterId["PresModelMap"] = "presModelMap"; - // DPI_PresentationLayerNotifications, having type PresModelMapPresModel - ParameterId["PresentationLayerNotifications"] = "presentationLayerNotifications"; - // DPI_SecondaryInfo, having type PresModelMapPresModel - ParameterId["SecondaryInfo"] = "secondaryInfo"; - // DPI_ClientDashboardUIMetric, having type ClientDashboardUIMetricPresModel - ParameterId["ClientDashboardUIMetric"] = "clientDashboardUiMetric"; - // DPI_ClientDashboardUIMetrics, having type ClientDashboardUIMetricPresModel[] - ParameterId["ClientDashboardUIMetrics"] = "clientDashboardUiMetrics"; - // DPI_ClientDashboardUIMetricContainer, having type ClientDashboardUIMetricContainerPresModel - ParameterId["ClientDashboardUIMetricContainer"] = "clientDashboardUiMetricContainer"; - // DPI_ExtSvcConfig, having type ExtSvcConfigPresModel - ParameterId["ExtSvcConfig"] = "extSvcConfig"; - // DPI_StoryboardSheetItem, having type StoryboardSheetItemPresModel - ParameterId["StoryboardSheetItem"] = "storyboardSheetItem"; - // DPI_StoryboardSheetItems, having type StoryboardSheetItemPresModel[] - ParameterId["StoryboardSheetItems"] = "storyboardSheetItems"; - // DPI_StoryboardSheetList, having type StoryboardSheetListPresModel - ParameterId["StoryboardSheetList"] = "storyboardSheetList"; - // DPI_FitToStoryBoardOptionItem, having type FitToStoryBoardOptionItemPresModel - ParameterId["FitToStoryBoardOptionItem"] = "fitToStoryboardOptionItem"; - // DPI_FitToStoryBoardOptionItems, having type FitToStoryBoardOptionItemPresModel[] - ParameterId["FitToStoryBoardOptionItems"] = "fitToStoryboardOptionItems"; - // DPI_FitToStoryBoardOptionList, having type FitToStoryBoardOptionListPresModel - ParameterId["FitToStoryBoardOptionList"] = "fitToStoryboardOptionList"; - // DPI_StoryPointNavItem, having type StoryPointNavItemPresModel - ParameterId["StoryPointNavItem"] = "storypointNavItem"; - // DPI_StoryPointNavItems, having type StoryPointNavItemPresModel[] - ParameterId["StoryPointNavItems"] = "storypointNavItems"; - // DPI_FlipboardNav, having type FlipboardNavPresModel - ParameterId["FlipboardNav"] = "flipboardNav"; - // DPI_ScrollBarStyle, having type ScrollBarStylePresModel - ParameterId["ScrollBarStyle"] = "scrollBarStyle"; - // DPI_DashboardZoneLayoutPane, having type DashboardZoneLayoutPanePresModel - ParameterId["DashboardZoneLayoutPane"] = "dashboardZoneLayoutPane"; - // DPI_SelectedStoryPointStyle, having type StoryPointCaptionStylePresModel - ParameterId["SelectedStoryPointStyle"] = "selectedStoryPointStyle"; - // DPI_UnselectedStoryPointStyle, having type StoryPointCaptionStylePresModel - ParameterId["UnselectedStoryPointStyle"] = "unselectedStoryPointStyle"; - // DPI_FlipboardNavStyle, having type FlipboardNavStylePresModel - ParameterId["FlipboardNavStyle"] = "flipboardNavStyle"; - // DPI_StoryPoint, having type StoryPointPresModel - ParameterId["StoryPoint"] = "storyPoint"; - // DPI_StoryPoints, having type Dictionary(of StoryPointPresModel) - ParameterId["StoryPoints"] = "storyPoints"; - // DPI_Flipboard, having type FlipboardPresModel - ParameterId["Flipboard"] = "flipboard"; - // DPI_StoryPair, having type StoryPairPresModel - ParameterId["StoryPair"] = "storyPair"; - // DPI_StoryPairs, having type StoryPairPresModel[] - ParameterId["StoryPairs"] = "storyPairs"; - // DPI_StoryboardPM, having type StoryboardPresModel - ParameterId["StoryboardPM"] = "storyboardPm"; - // DPI_HiDpiIconDictionary, having type ImageCollectionPresModel - ParameterId["HiDpiIconDictionary"] = "hiDpiIconDictionary"; - // DPI_IconDictionary, having type ImageCollectionPresModel - ParameterId["IconDictionary"] = "iconDictionary"; - // DPI_IconResourceDictionary, having type ImageResourceCollectionPresModel - ParameterId["IconResourceDictionary"] = "iconResDictionary"; - // DPI_DataPreviewWindowMessage, having type DataPreviewWindowMessagePresModel - ParameterId["DataPreviewWindowMessage"] = "dataPreviewWindowMessage"; - // DPI_DataSourceData, having type DataSourceDataPresModel - ParameterId["DataSourceData"] = "dataSrcData"; - // DPI_DataSourceSort, having type DataSourceSortPresModel - ParameterId["DataSourceSort"] = "dataSrcSort"; - // DPI_ColumnInfo, having type DSColumnInfoPresModel - ParameterId["ColumnInfo"] = "columnInfo"; - // DPI_ColumnInfos, having type DSColumnInfoPresModel[] - ParameterId["ColumnInfos"] = "columnInfos"; - // DPI_DataFormatter, having type DVFormatter - ParameterId["DataFormatter"] = "dataFormatter"; - // DPI_JoinDescription, having type JoinDescriptionPresModel - ParameterId["JoinDescription"] = "joinDescription"; - // DPI_JoinDescriptions, having type Dictionary(of JoinDescriptionPresModel) - ParameterId["JoinDescriptions"] = "joinDescriptions"; - // DPI_FileTableInfo, having type FileTableInfoPresModel - ParameterId["FileTableInfo"] = "fileTableInfo"; - // DPI_FieldMapping, having type FieldMappingPresModel - ParameterId["FieldMapping"] = "fieldMapping"; - // DPI_FieldMappingData, having type FieldMappingDataPresModel - ParameterId["FieldMappingData"] = "fieldMappingData"; - // DPI_FieldMappingDataVector, having type FieldMappingDataPresModel[] - ParameterId["FieldMappingDataVector"] = "fieldMappingDataVector"; - // DPI_FrameFinder, having type FrameFinderPresModel - ParameterId["FrameFinder"] = "frameFinder"; - // DPI_SheetLinkFieldMapping, having type SheetLinkFieldMappingPresModel - ParameterId["SheetLinkFieldMapping"] = "sheetLinkFieldMapping"; - // DPI_UnionInfo, having type UnionInfoPresModel - ParameterId["UnionInfo"] = "unionInfo"; - // DPI_UnionTableInfo, having type UnionTableInfoPresMode - ParameterId["UnionTableInfo"] = "unionTableInfo"; - // DPI_UnionTableInfos, having type UnionTableInfoPresModel[] - ParameterId["UnionTableInfos"] = "unionTableInfos"; - // DPI_ConnectionPBUnionInfo, having type PBUnionInfoPresModel - ParameterId["ConnectionPBUnionInfo"] = "connectionPbunionInfo"; - // DPI_ConnectionPBUnionInfos, having type PBUnionInfoPresModel[] - ParameterId["ConnectionPBUnionInfos"] = "connectionPbunionInfos"; - // DPI_JoinClause, having type JoinClausePresModel - ParameterId["JoinClause"] = "joinClause"; - // DPI_JoinClauses, having type JoinClausePresModel[] - ParameterId["JoinClauses"] = "joinClauses"; - // DPI_JoinValidationResult, having type JoinValidationResultPresModel - ParameterId["JoinValidationResult"] = "joinValidationResult"; - // DPI_JoinTableInfo, having type JoinTableInfoPresModel - ParameterId["JoinTableInfo"] = "joinTableInfo"; - // DPI_ParameterInfo, having type JoinTableInfoPresModel - ParameterId["ParameterInfo"] = "parameterInfo"; - // DPI_JoinTableInfos, having type JoinTableInfoPresModel[] - ParameterId["JoinTableInfos"] = "joinTableInfos"; - // DPI_JoinOnCalcInfo, having type JoinOnCalcInfoPresModel - ParameterId["JoinOnCalcInfo"] = "joinOnCalcInfo"; - // DPI_ConnectionSummary, having type ConnectionSummaryPresModel - ParameterId["ConnectionSummary"] = "connectionSummary"; - // DPI_ConnectionSummaries, having type ConnectionSummaryPresModel[] - ParameterId["ConnectionSummaries"] = "connectionSummaries"; - // DPI_TopLevelConnectionDescription, having type TopLevelConnectionDescriptionPresModel - ParameterId["TopLevelConnectionDescription"] = "topLevelConnectionDescription"; - // DPI_DataConnectionTableViewMessages, having type DataConnectionTableViewMessagesPresModel - ParameterId["DataConnectionTableViewMessages"] = "dataConnectionTableViewMessages"; - // DPI_TextTransformScript, having type TextTransformScriptPresModel - ParameterId["TextTransformScript"] = "textTransformScript"; - // DPI_CalendarDateOptions, having type CalendarDateOptionsPresModel - ParameterId["CalendarDateOptions"] = "calendarDateOptions"; - // DPI_GoToWorksheetTooltipPresModel, having type GoToWorksheetTooltipPresModel - ParameterId["GoToWorksheetTooltipPresModel"] = "goToWorksheetTooltipPresModel"; - // DPI_TableCleaningPresModel, having type TableCleaningPresModel - ParameterId["TableCleaningPresModel"] = "tableCleaningPresModel"; - // DPI_PivotPresModel, having type PivotPresModel - ParameterId["PivotPresModel"] = "pivotPresModel"; - // DPI_PivotTreeItemPresModel, having type PivotTreeItemPresModel - ParameterId["PivotTreeItemPresModel"] = "pivotTreeItemPresModel"; - // DPI_PivotTreeItems, having type PivotTreeItemPresModel[] - ParameterId["PivotTreeItems"] = "pivotTreeItemsPresModel"; - // DPI_PivotDisplay, having type PivotDisplayPresModel - ParameterId["PivotDisplay"] = "pivotDisplay"; - // DPI_PivotTag, having type NameColumnsPairPresModel - ParameterId["PivotTag"] = "pivotTag"; - // DPI_PivotGroups, having type NameColumnsPairPresModel[] - ParameterId["PivotGroups"] = "pivotGroups"; - // DPI_DataSourceDropdown, having type DataSourceDropdownPresModel - ParameterId["DataSourceDropdown"] = "dataSourceDropdown"; - // DPI_ConnectionDropdown, having type ConnectionDropdownPresModel - ParameterId["ConnectionDropdown"] = "connectionDropdown"; - // DPI_ActivityEvent, having type ActivityEventPresModel - ParameterId["ActivityEvent"] = "activityEvent"; - // DPI_UIAutomation, having type UIAutomationPresModel - ParameterId["UIAutomation"] = "uiAutomation"; - // DPI_UIAutomationIndex, having type UIAutomationIndexPresModel - ParameterId["UIAutomationIndex"] = "uiAutomationIndex"; - // DPI_UIAutomationIndexList, having type UIAutomationIndexPresModel[] - ParameterId["UIAutomationIndexList"] = "uiAutomationIndexList"; - // DPI_UIAutomationComponentInfo, having type UIAutomationComponentInfoPresModel - ParameterId["UIAutomationComponentInfo"] = "uiAutomationComponentInfo"; - // DPI_UIAutomationComponentInfoList, having type UIAutomationComponentInfoPresModel[] - ParameterId["UIAutomationComponentInfoList"] = "uiAutomationComponentInfoList"; - // DPI_Geometry, having type GeometryPresModel - ParameterId["Geometry"] = "geometry"; - // DPI_MultiPoint, having type MultiPointPresModel - ParameterId["MultiPoint"] = "multiPoint"; - // DPI_MultiLine, having type MultiLinePresModel - ParameterId["MultiLine"] = "multiLine"; - // DPI_MultiPolygon, having type MultiPolygonPresModel - ParameterId["MultiPolygon"] = "multiPolygon"; - // DPI_Polygon, having type PolygonPresModel - ParameterId["Polygon"] = "polygon"; - // DPI_PolygonList, having type PolygonPresModel[] - ParameterId["PolygonList"] = "polygonList"; - // DPI_Line, having type LinePresModel - ParameterId["Line"] = "line"; - // DPI_LineList, having type LinePresModel[] - ParameterId["LineList"] = "lineList"; - // DPI_TabbedAuthentication, having type TabbedAuthenticationPresModel - ParameterId["TabbedAuthentication"] = "tabbedAuthentication"; - // DPI_TabbedAuthenticationTabInfo, having type TabbedAuthenticationTabInfoPresModel - ParameterId["TabbedAuthenticationTabInfo"] = "tabbedAuthenticationTabInfo"; - // DPI_TabbedAuthenticationTabInfos, having type TabbedAuthenticationTabInfoPresModel[] - ParameterId["TabbedAuthenticationTabInfos"] = "tabbedAuthenticationTabInfos"; - // DPI_GeographicSearchCandidate, having type GeographicSearchCandidatePresModel - ParameterId["GeographicSearchCandidate"] = "geographicSearchCandidate"; - // DPI_GeographicSearchCandidateList, having type GeographicSearchCandidatePresModel[] - ParameterId["GeographicSearchCandidateList"] = "geographicSearchCandidateList"; - // DPI_GeographicSearchResults, having type GeographicSearchPresModel - ParameterId["GeographicSearchResults"] = "geographicSearchResults"; - // DPI_ParamInfo, having type ParameterInfoPresModel - ParameterId["ParamInfo"] = "paramInfo"; - // DPI_ParamInfos, having type ParameterInfoPresModel[] - ParameterId["ParamInfos"] = "paramInfos"; - // DPI_ParamNamespaceInfo, having type ParameterNamespaceInfoInfoPresModel - ParameterId["ParamNamespaceInfo"] = "paramNamespaceInfo"; - // DPI_ParamNamespaceInfos, having type ParameterNamespaceInfoPresModel[] - ParameterId["ParamNamespaceInfos"] = "paramNamespaceInfos"; - // DPI_ParamRegistryInfo, having type ParameterRegistryInfoPresModel - ParameterId["ParamRegistryInfo"] = "paramRegistryInfo"; - // DPI_DataSourceProperties, having type DataSourcePropertiesPresModel - ParameterId["DataSourceProperties"] = "connectionProperties"; - // DPI_ConnectionTypePresModel, having type ConnectionTypePresModel - ParameterId["ConnectionTypePresModel"] = "connectionTypePresModel"; - // DPI_ConnectionTypes, having type ConnectionTypePresModel[] - ParameterId["ConnectionTypes"] = "connectionTypes"; - // DPI_ConnectionTypeGroupPresModel, having type ConnectionTypeGroupPresModel - ParameterId["ConnectionTypeGroupPresModel"] = "connectionTypeGroupPresModel"; - // DPI_SavedDataSourcePresModel, having type SavedDataSourcePresModel - ParameterId["SavedDataSourcePresModel"] = "savedDatasourcePresModel"; - // DPI_SavedDataSources, having type SavedDataSourcePresModel[] - ParameterId["SavedDataSources"] = "savedDatasources"; - // DPI_SavedDataSourcesPresModel, having type SavedDataSourcesPresModel - ParameterId["SavedDataSourcesPresModel"] = "savedDatasourcesPresModel"; - // DPI_OpenPaneItemPresModel, having type OpenPaneItemPresModel - ParameterId["OpenPaneItemPresModel"] = "openPaneItemPresModel"; - // DPI_OpenPaneItems, having type OpenPaneItemPresModel[] - ParameterId["OpenPaneItems"] = "openPaneItems"; - // DPI_OpenPaneItemsPresModel, having type OpenPaneItemsPresModel - ParameterId["OpenPaneItemsPresModel"] = "openPaneItemsPresModel"; - // DPI_VariableValue, having type VariableValuePresModel - ParameterId["VariableValue"] = "variableValue"; - // DPI_VariableValues, having type VariableValuePresModel[] - ParameterId["VariableValues"] = "variableValues"; - // DPI_ServerVariableValue, having type ServerVariableValuePresModel - ParameterId["ServerVariableValue"] = "serverVariableValue"; - // DPI_EditableVariableValue, having type EditableVariableValuePresModel - ParameterId["EditableVariableValue"] = "editableVariableValue"; - // DPI_ServerVariableMetadata, having type ServerVariableMetadataPresModel - ParameterId["ServerVariableMetadata"] = "serverVariableMetadata"; - // DPI_PromptVariable, having type PromptVariablePresModel - ParameterId["PromptVariable"] = "promptVariable"; - // DPI_PromptVariables, having type PromptVariablePresModel[] - ParameterId["PromptVariables"] = "promptVariables"; - // DPI_VariablePromptDialog, having type VariablePromptDialogPresModel - ParameterId["VariablePromptDialog"] = "variablePromptDialog"; - // DPI_VariableValueOperation, having type VariableValueOperationPresModel - ParameterId["VariableValueOperation"] = "variableValueOperation"; - // DPI_VariableValueOperations, having type VariableValueOperationPresModel[] - ParameterId["VariableValueOperations"] = "variableValueOperations"; - // DPI_TableOptionsPresModel, having type TableOptionsPresModel - ParameterId["TableOptionsPresModel"] = "tableOptionsPresModel"; - // DPI_ClientInfoPresModel, having type ClientInfoPresModel - ParameterId["ClientInfoPresModel"] = "clientInfoPresModel"; - // DPI_TableauFileInfoPresModel, having type TableauFileInfoPresModel - ParameterId["TableauFileInfoPresModel"] = "tableauFileInfoPresModel"; - // DPI_DebuggingInfoPresModel, having type DebuggingInfoPresModel - ParameterId["DebuggingInfoPresModel"] = "debuggingInfoPresModel"; - // DPI_RunningThreadInfoPresModel, having type RunningThreadInfoPresModel - ParameterId["RunningThreadInfoPresModel"] = "runningThreadInfoPresModel"; - // DPI_AboutDialogInfoPresModel, having type AboutDialogInfoPresModel - ParameterId["AboutDialogInfoPresModel"] = "aboutDialogInfoPresModel"; - // DPI_HybridUIShowcasePresModel, having type HybridUIShowcasePresModel - ParameterId["HybridUIShowcasePresModel"] = "hybridUiShowcasePresModel"; - // DPI_DefaultTextFormat, having type DefaultTextFormatPresModel - ParameterId["DefaultTextFormat"] = "defaultTextFormat"; - // DPI_MapBoxServerInfoPresModel, having type MapBoxServerInfoPresModel - ParameterId["MapBoxServerInfoPresModel"] = "mapboxServerInfoPresModel"; - // DPI_WMSServerInfoPresModel, having type WMSServerInfoPresModel - ParameterId["WMSServerInfoPresModel"] = "wmsServerInfoPresModel"; - // DPI_MapSourceConflictPresModel, having type MapSourceConflictPresModel - ParameterId["MapSourceConflictPresModel"] = "mapSourceConflictPresModel"; - // DPI_EnumeratedSetDialogPresModel, having type EnumeratedSetDialogPresModel - ParameterId["EnumeratedSetDialogPresModel"] = "enumeratedSetDialogPresModel"; - // DPI_EditAliasesDialog, having type EditAliasesDialogPresModel - ParameterId["EditAliasesDialog"] = "editAliasesDialogPresModel"; - // DPI_AliasesPresModel, having type AliasesPresModel - ParameterId["AliasesPresModel"] = "aliasesPresModel"; - // DPI_ClearAliasesPresModel, having type AliasesPresModel - ParameterId["ClearAliasesPresModel"] = "clearAliasesPresModel"; - // DPI_NewAliasesPresModel, having type NewAliasesPresModel - ParameterId["NewAliasesPresModel"] = "newAliasesPresModel"; - // DPI_AliasPresModel, having type AliasPresModel - ParameterId["AliasPresModel"] = "aliasPresModel"; - // DPI_AliasItem, having type AliasItemPresModel - ParameterId["AliasItem"] = "aliasItem"; - // DPI_DuplicateAliasItem, having type AliasItemPresModel - ParameterId["DuplicateAliasItem"] = "duplicateAliasItem"; - // DPI_AliasList, having type AliasItemPresModel[] - ParameterId["AliasList"] = "aliasList"; - // DPI_AliasResultItem, having type AliasResultItemPresModel - ParameterId["AliasResultItem"] = "aliasResultItem"; - // DPI_AliasResultList, having type AliasResultItemPresModel[] - ParameterId["AliasResultList"] = "aliasResultList"; - // DPI_AliasResults, having type AliasResultsPresModel - ParameterId["AliasResults"] = "aliasResults"; - // DPI_EditSetDialogPresModel, having type EditSetDialogPresModel - ParameterId["EditSetDialogPresModel"] = "editSetDialogPresModel"; - // DPI_ConfirmationPresModel, having type ConfirmationPresModel - ParameterId["ConfirmationPresModel"] = "confirmationPresModel"; - // DPI_NotificationPresModel, having type NotificationPresModel - ParameterId["NotificationPresModel"] = "notificationPresModel"; - // DPI_RetargetDataSourceDialogPresModel, having type RetargetDataSourceDialogPresModel - ParameterId["RetargetDataSourceDialogPresModel"] = "retargetDatasourceDialogPresModel"; - // DPI_SharedFilterPresModel, having type SharedFilterPresModel - ParameterId["SharedFilterPresModel"] = "sharedFilterPresModel"; - // DPI_SharedFilterWorksheetInfo, having type SharedFilterWorksheetInfoPresModel - ParameterId["SharedFilterWorksheetInfo"] = "sharedFilterWorksheetInfo"; - // DPI_SharedFilterWorksheetInfoList, having type SharedFilterWorksheetInfoPresModel[] - ParameterId["SharedFilterWorksheetInfoList"] = "sharedFilterWorksheetInfoList"; - // DPI_FieldPickerTreePresModel, having type FieldPickerTreePresModel - ParameterId["FieldPickerTreePresModel"] = "fieldPickerTreePresModel"; - // DPI_FieldPickerTreePresModelSource, having type FieldPickerTreePresModel - ParameterId["FieldPickerTreePresModelSource"] = "fieldPickerTreePresModelSource"; - // DPI_FieldPickerTreePresModelTarget, having type FieldPickerTreePresModel - ParameterId["FieldPickerTreePresModelTarget"] = "fieldPickerTreePresModelTarget"; - // DPI_ErrorInfo, having type ErrorInfoPresModel - ParameterId["ErrorInfo"] = "errorInfoPresModel"; - // DPI_CustomSplitPresModel, having type CustomSplitPresModel - ParameterId["CustomSplitPresModel"] = "customSplitPresModel"; - // DPI_PageSetup, having type PageSetupPresModel - ParameterId["PageSetup"] = "pageSetup"; - // DPI_ServerConnectStatus, having type ServerConnectionStatus - ParameterId["ServerConnectStatus"] = "serverConnectionStatus"; - // DPI_GetFilterItemsResponse, having type GetFilterItemsResponsePresModel - ParameterId["GetFilterItemsResponse"] = "getFilterItemsResponse"; - // DPI_FilterSearchResponse, having type FilterSearchResponsePresModel - ParameterId["FilterSearchResponse"] = "filterSearchResponse"; - // DPI_FilterSearchWithIndexResponse, having type FilterSearchWithIndexResponsePresModel - ParameterId["FilterSearchWithIndexResponse"] = "filterSearchWithIndexResponse"; - // DPI_FilterShowChildrenResponse, having type FilterShowChildrenResponsePresModel - ParameterId["FilterShowChildrenResponse"] = "filterShowChildrenResponse"; - // DPI_EditDataServerConnection, having type EditDataServerConnectionPresModel - ParameterId["EditDataServerConnection"] = "editDataServerConnection"; - // DPI_ImagesEdit, having type ImagesEditPresModel - ParameterId["ImagesEdit"] = "imagesEdit"; - // DPI_BackgroundImage, having type BackgroundImagePresModel - ParameterId["BackgroundImage"] = "backgroundImage"; - // DPI_BackgroundImages, having type BackgroundImagePresModel[] - ParameterId["BackgroundImages"] = "backgroundImages"; - // DPI_Predicate, having type PredicatePresModel - ParameterId["Predicate"] = "predicate"; - // DPI_Predicates, having type PredicatePresModel[] - ParameterId["Predicates"] = "predicates"; - // DPI_ImagesEditResult, having type ImagesEditResultPresModel - ParameterId["ImagesEditResult"] = "imagesEditResult"; - // DPI_SortDialogPresModel, having type SortDialogPresModel - ParameterId["SortDialogPresModel"] = "sortDialogPresModel"; - // DPI_CompoundTableCalc, having type CompoundTableCalculationPresModel - ParameterId["CompoundTableCalc"] = "compoundTableCalculationPresModel"; - // DPI_TableCalc, having type TableCalculationPresModel - ParameterId["TableCalc"] = "tableCalculationPresModel"; - // DPI_TableCalcs, having type TableCalculationPresModel[] - ParameterId["TableCalcs"] = "tableCalculationPresModels"; - // DPI_TableCalcIdentifier, having type TableCalcIdentifierPresModel - ParameterId["TableCalcIdentifier"] = "tableCalcIdentifier"; - // DPI_NestedTableCalcInfo, having type NestedTableCalcInfoPresModel - ParameterId["NestedTableCalcInfo"] = "nestedTableCalcInfo"; - // DPI_NestedTableCalcInfos, having type NestedTableCalcInfoPresModel[] - ParameterId["NestedTableCalcInfos"] = "nestedTableCalcInfos"; - // DPI_Ordering, having type TableCalcOrderingPresModel - ParameterId["Ordering"] = "tableCalcOrderingPresModel"; - // DPI_Cumulative, having type CumulativeTableCalcPresModel - ParameterId["Cumulative"] = "cumulativeTableCalcPresModel"; - // DPI_ReferenceOptions, having type TableCalcReferenceOptionsPresModel - ParameterId["ReferenceOptions"] = "tableCalcReferenceOptionsPresModel"; - // DPI_Difference, having type DifferenceTableCalcPresModel - ParameterId["Difference"] = "differenceTableCalcPresModel"; - // DPI_Window, having type WindowTableCalcPresModel - ParameterId["Window"] = "windowTableCalcPresModel"; - // DPI_PercentTotal, having type PercentTotalTableCalcPresModel - ParameterId["PercentTotal"] = "percentTotalTableCalcPresModel"; - // DPI_Rank, having type RankTableCalcPresModel - ParameterId["Rank"] = "rankTableCalcPresModel"; - // DPI_Custom, having type CustomTableCalcPresModel - ParameterId["Custom"] = "customTableCalcPresModel"; - // DPI_WebDataUrl, having type WebDataUrlPresModel - ParameterId["WebDataUrl"] = "webDataUrl"; - // DPI_VisitedWebDataConnectors, having type WebDataUrlPresModel[] - ParameterId["VisitedWebDataConnectors"] = "visitedWebDataConnectors"; - // DPI_WebDataSessionUrls, having type WebDataUrlPresModel[] - ParameterId["WebDataSessionUrls"] = "webDataSessionUrls"; - // DPI_WebDataUrls, having type WebDataUrlPresModel[] - ParameterId["WebDataUrls"] = "webDataUrls"; - // DPI_FieldPicker, having type FieldPickerPresModel - ParameterId["FieldPicker"] = "fieldPicker"; - // DPI_DescribeField, having type DescribeFieldPresModel - ParameterId["DescribeField"] = "describeField"; - // DPI_ShowDataPresModel, having type ShowDataPresModel - ParameterId["ShowDataPresModel"] = "showDataPresModel"; - // DPI_DataTablePresModel, having type ShowDataTablePresModel - ParameterId["DataTablePresModel"] = "dataTablePresModel"; - // DPI_DataTablePresModels, having type ShowDataTablePresModel[] - ParameterId["DataTablePresModels"] = "dataTablePresModels"; - // DPI_SummaryTablePresModels, having type ShowDataTablePresModel[] - ParameterId["SummaryTablePresModels"] = "summaryTablePresModels"; - // DPI_RefreshAllExtractsPresModel, having type RefreshAllExtractsPresModel - ParameterId["RefreshAllExtractsPresModel"] = "refeshAllExtractsPresModel"; - // DPI_RefreshExtractDataSourcePresModel, having type RefreshExtractDataSourcePresModel - ParameterId["RefreshExtractDataSourcePresModel"] = "refreshExtractDatasourcePresModel"; - // DPI_RefreshExtractDataSourceList, having type RefreshExtractDataSourcePresModel[] - ParameterId["RefreshExtractDataSourceList"] = "refreshExtractDatasourceList"; - // DPI_ExtractHistoryPresModel, having type ExtractHistoryPresModel - ParameterId["ExtractHistoryPresModel"] = "extractHistoryPresModel"; - // DPI_ExtractHistoryItemPresModel, having type ExtractHistoryItemPresModel - ParameterId["ExtractHistoryItemPresModel"] = "extractHistoryItem"; - // DPI_ExtractHistoryList, having type ExtractHistoryItemPresModel[] - ParameterId["ExtractHistoryList"] = "extractHistoryList"; - // DPI_DataProviderPresModel, having type DataProviderPresModel - ParameterId["DataProviderPresModel"] = "dataProviderPresModel"; - // DPI_FormatItem, having type FormatItemPresModel - ParameterId["FormatItem"] = "formatItem"; - // DPI_FormatItemList, having type FormatItemPresModel[] - ParameterId["FormatItemList"] = "formatItemList"; - // DPI_FormatContainer, having type FormatContainerPresModel - ParameterId["FormatContainer"] = "formatContainer"; - // DPI_FormatPane, having type FormatPanePresModel - ParameterId["FormatPane"] = "formatPane"; - // DPI_FormatSection, having type FormatSectionPresModel - ParameterId["FormatSection"] = "formatSection"; - // DPI_CollapsibleSection, having type CollapsibleSectionPresModel - ParameterId["CollapsibleSection"] = "collapsibleSection"; - // DPI_CompositeContainer, having type CompositeContainerPresModel - ParameterId["CompositeContainer"] = "compositeContainer"; - // DPI_UnitContainer, having type UnitContainerPresModel - ParameterId["UnitContainer"] = "unitContainer"; - // DPI_TabGroup, having type TabGroupPresModel - ParameterId["TabGroup"] = "tabGroup"; - // DPI_Tab, having type TabPresModel - ParameterId["Tab"] = "tab"; - // DPI_FormatControl, having type FormatControlPresModel - ParameterId["FormatControl"] = "formatControl"; - // DPI_TextControl, having type TextControlPresModel - ParameterId["TextControl"] = "textControl"; - // DPI_NumericControl, having type NumericControlPresModel - ParameterId["NumericControl"] = "numericControl"; - // DPI_ColorControl, having type ColorControlPresModel - ParameterId["ColorControl"] = "colorControl"; - // DPI_ToggleControl, having type ToggleControlPresModel - ParameterId["ToggleControl"] = "toggleControl"; - // DPI_SelectorControl, having type SelectorControlPresModel - ParameterId["SelectorControl"] = "enumStringStyle"; - // DPI_StatsAnalyticSpec, having type StatsAnalyticSpecPresModel - ParameterId["StatsAnalyticSpec"] = "statsAnalyticSpec"; - // DPI_ClusterSpec, having type ClusterSpecPresModel - ParameterId["ClusterSpec"] = "clusteringSpec"; - // DPI_ClusterResults, having type ClusterResultsPresModel - ParameterId["ClusterResults"] = "clusterResults"; - // DPI_ClusterUnit, having type ClusterUnitPresModel - ParameterId["ClusterUnit"] = "cluster"; - // DPI_ClusterUnits, having type ClusterUnitPresModel[] - ParameterId["ClusterUnits"] = "clusterUnitPresModels"; - // DPI_ClusterFieldANOVA, having type ClusterFieldANOVAPresModel - ParameterId["ClusterFieldANOVA"] = "clusterFieldAnova"; - // DPI_ClusterFieldANOVATable, having type ClusterFieldANOVAPresModel[] - ParameterId["ClusterFieldANOVATable"] = "clusterFieldAnovaTablePresModel"; - // DPI_ClusterEdit, having type ClusterEditPresModel - ParameterId["ClusterEdit"] = "clusterEditPresModel"; - // DPI_ClusterDescription, having type ClusterDescribePresModel - ParameterId["ClusterDescription"] = "clusterDescription"; - // DPI_OutlierResults, having type OutlierResultsPresModel - ParameterId["OutlierResults"] = "outlierResults"; - // DPI_ConnectToDataServerSourceResult, having type ConnectToDataServerSourceResultPresModel - ParameterId["ConnectToDataServerSourceResult"] = "connectToDataServerSourceResult"; - // DPI_DataServerConnectionReturnStatus, having type ConnectToDataServerSourceResultPresModel - ParameterId["DataServerConnectionReturnStatus"] = "dataServerConnectionReturnStatus"; - // DPI_WebQuantitativeColorDialog, having type WebQuantitativeColorDialogPresModel - ParameterId["WebQuantitativeColorDialog"] = "quantitativeColorDialog"; - // DPI_WebCategoricalColorDialog, having type WebCategoricalColorDialogPresModel - ParameterId["WebCategoricalColorDialog"] = "categoricalColorDialog"; - // DPI_WebSaveDatasourceDialog, having type WebSaveDatasourceDialogPresModel - ParameterId["WebSaveDatasourceDialog"] = "saveDatasourceDialog"; - // DPI_BorderStyleSpec, having type StyleSpecPresModel - ParameterId["BorderStyleSpec"] = "borderStyleSpec"; - // DPI_HaloStyleSpec, having type StyleSpecPresModel - ParameterId["HaloStyleSpec"] = "haloStyleSpec"; - // DPI_MarksColorUberEffects, having type MarksColorUberEffectsPresModel - ParameterId["MarksColorUberEffects"] = "marksColorUberEffects"; - // DPI_CategoricalColorEncoding, having type CategoricalColorEncodingPresModel - ParameterId["CategoricalColorEncoding"] = "categoricalColorEncoding"; - // DPI_CategoricalShapeEncoding, having type CategoricalShapeEncodingPresModel - ParameterId["CategoricalShapeEncoding"] = "categoricalShapeEncoding"; - // DPI_ShapePalettePresModel, having type ShapePalettePresModel - ParameterId["ShapePalettePresModel"] = "shapePalettePresModel"; - // DPI_ShapePalettePresModels, having type ShapePalettePresModel[] - ParameterId["ShapePalettePresModels"] = "shapePalettePresModels"; - // DPI_DataSourceDateProperties, having type DataSourceDatePropertiesPresModel - ParameterId["DataSourceDateProperties"] = "datasourceDateProperties"; - // DPI_DatePropertiesDateFormat, having type DatePropertiesDateFormatPresModel - ParameterId["DatePropertiesDateFormat"] = "datePropertiesDateFormat"; - // DPI_DatePropertiesDateFormats, having type DatePropertiesDateFormatPresModel[] - ParameterId["DatePropertiesDateFormats"] = "datePropertiesDateFormats"; - // DPI_HierarchySelect, having type HierarchySelectModel - ParameterId["HierarchySelect"] = "hierarchySelect"; - // DPI_HierarchySelectMember, having type HierarchySelectMemberPresModel - ParameterId["HierarchySelectMember"] = "hierarchySelectMember"; - // DPI_HierarchySelectMemberList, having type HierarchySelectMemberPresModel[] - ParameterId["HierarchySelectMemberList"] = "hierarchySelectMemberList"; - // DPI_HierarchySetDefaultMember, having type HierarchySetDefaultMemberPresModel - ParameterId["HierarchySetDefaultMember"] = "hierarchySetDefaultMember"; - // DPI_SemiStructSchema, having type SemiStructSchemaPresModel - ParameterId["SemiStructSchema"] = "semiStructSchema"; - // DPI_SemiStructSchemaMember, having type SemiStructSchemaMemberPresModel - ParameterId["SemiStructSchemaMember"] = "semiStructSchemaMember"; - // DPI_SemiStructSchemaMemberList, having type SemiStructSchemaMemberPresModel[] - ParameterId["SemiStructSchemaMemberList"] = "semiStructSchemaMemberList"; - // DPI_ParameterEditInfo, having type ParameterEditInfoPresModel - ParameterId["ParameterEditInfo"] = "parameterEditInfo"; - // DPI_ProductParameterInfo, having type ProductParameterInfoPresModel - ParameterId["ProductParameterInfo"] = "productParameterInfo"; - // DPI_CaptionedDatasourceField, having type CaptionedDatasourceInfoPresModel - ParameterId["CaptionedDatasourceField"] = "captionedDatasourceField"; - // DPI_CaptionedDatasourceFields, having type CaptionedDatasourceInfoPresModel[] - ParameterId["CaptionedDatasourceFields"] = "captionedDatasourceFields"; - // DPI_EditedParameterRangeDomain, having type ParameterRangeDomainPresModel - ParameterId["EditedParameterRangeDomain"] = "editedParameterRangeDomain"; - // DPI_ParameterRangeDomain, having type ParameterRangeDomainPresModel - ParameterId["ParameterRangeDomain"] = "parameterRangeDomain"; - // DPI_ParameterListDomain, having type ParameterListDomainPresModel - ParameterId["ParameterListDomain"] = "parameterListDomain"; - // DPI_ParameterListDomainMember, having type ParameterListDomainMemberPresModel - ParameterId["ParameterListDomainMember"] = "parameterListDomainMember"; - // DPI_ParameterListDomainMembers, having type ParameterListDomainMemberPresModel[] - ParameterId["ParameterListDomainMembers"] = "parameterListDomainMembers"; - // DPI_IndexedDomainMember, having type IndexedDomainMemberPresModel - ParameterId["IndexedDomainMember"] = "indexedDomainMember"; - // DPI_IndexedDomainMembers, having type IndexedDomainMemberPresModel[] - ParameterId["IndexedDomainMembers"] = "indexedDomainMembers"; - // DPI_NewIndexedDomainMembers, having type IndexedDomainMemberPresModel[] - ParameterId["NewIndexedDomainMembers"] = "newIndexedDomainMembers"; - // DPI_ParameterListDomainDiff, having type parameter-list-domain-diff - ParameterId["ParameterListDomainDiff"] = "parameterListDomainDiff"; - // DPI_IndexRange, having type IndexRangePresModel - ParameterId["IndexRange"] = "indexRange"; - // DPI_IndexRanges, having type IndexRangePresModel[] - ParameterId["IndexRanges"] = "indexRanges"; - // DPI_CategoricalFind, having type CategoricalFindPresModel - ParameterId["CategoricalFind"] = "categoricalFind"; - // DPI_CaptionedDataValue, having type CaptionedDataValuePresModel - ParameterId["CaptionedDataValue"] = "captionedDataValue"; - // DPI_SelectedValueCaption, having type CaptionedDataValuePresModel - ParameterId["SelectedValueCaption"] = "selectedValueCaption"; - // DPI_DataValueCaptionList, having type CaptionedDataValuePresModel[] - ParameterId["DataValueCaptionList"] = "dataValueCatpionList"; - // DPI_RangeDataValue, having type RangeDataValuePresModel - ParameterId["RangeDataValue"] = "rangeDataValue"; - // DPI_ParameterRangeDataValue, having type RangeDataValuePresModel - ParameterId["ParameterRangeDataValue"] = "parameterRangeDataValue"; - // DPI_DataValueRangeCaptions, having type DataValueRangeCaptionsPresModel - ParameterId["DataValueRangeCaptions"] = "dataValueRangeCaptions"; - // DPI_IndependentDimension, having type IndependentDimensionPresModel - ParameterId["IndependentDimension"] = "independentDimension"; - // DPI_IndependentDimensions, having type IndependentDimensionPresModel[] - ParameterId["IndependentDimensions"] = "independentDimensions"; - // DPI_AttributePerspective, having type PerspectivePresModel - ParameterId["AttributePerspective"] = "attributePerspective"; - // DPI_CubePerspective, having type PerspectivePresModel - ParameterId["CubePerspective"] = "cubePerspective"; - // DPI_AttributePerspectives, having type PerspectivePresModel[] - ParameterId["AttributePerspectives"] = "attributePerspectives"; - // DPI_CalculatedMembersForEditingPresModel, having type EditCalculatedMembersPresModel - ParameterId["CalculatedMembersForEditingPresModel"] = "calculatedMembersForEditingPresmodel"; - // DPI_CalculatedMember, having type CalculatedMemberPresModel - ParameterId["CalculatedMember"] = "calculatedMember"; - // DPI_NewCalculatedMember, having type CalculatedMemberPresModel - ParameterId["NewCalculatedMember"] = "newCalculatedMember"; - // DPI_UpdatedCalculatedMember, having type CalculatedMemberPresModel - ParameterId["UpdatedCalculatedMember"] = "updatedCalculatedMember"; - // DPI_CalculatedMembersList, having type CalculatedMemberPresModel[] - ParameterId["CalculatedMembersList"] = "calculatedMembersList"; - // DPI_CalculatedMemberHierarchyItem, having type CalculatedMemberHierarchyItemPresModel - ParameterId["CalculatedMemberHierarchyItem"] = "calculatedMemberHierarchyItem"; - // DPI_CalculatedMemberHierarchyList, having type CalculatedMemberHierarchyItemPresModel[] - ParameterId["CalculatedMemberHierarchyList"] = "calculatedMemberHierarchyList"; - // DPI_SummaryCardPresModel, having type SummaryCardPresModel - ParameterId["SummaryCardPresModel"] = "summaryCard"; - // DPI_MeasureSummary, having type MeasureSummaryPresModel - ParameterId["MeasureSummary"] = "measureSummary"; - // DPI_MeasureSummaryList, having type MeasureSummaryPresModel[] - ParameterId["MeasureSummaryList"] = "measureSummaryList"; - // DPI_AnnotationPresModel, having type AnnotationPresModel - ParameterId["AnnotationPresModel"] = "annotation"; - // DPI_AnnotationList, having type AnnotationPresModel[] - ParameterId["AnnotationList"] = "annotationList"; - // DPI_AnnotationShapeStyle, having type AnnotationShapeStylePresModel - ParameterId["AnnotationShapeStyle"] = "annotationShapeStyle"; - // DPI_Telemetry, having type TelemetryPresModel - ParameterId["Telemetry"] = "telemetry"; - // DPI_DataSourceTelemetry, having type DataSourceTelemetryPresModel - ParameterId["DataSourceTelemetry"] = "dataSourceTelemetry"; - // DPI_DataSourceTelemetryList, having type DataSourceTelemetryPresModel[] - ParameterId["DataSourceTelemetryList"] = "dataSourceTelemetryList"; - // DPI_VisualSpecificationTelemetry, having type VisualSpecificationTelemetryPresModel - ParameterId["VisualSpecificationTelemetry"] = "visualSpecificationTelemetry"; - // DPI_VisualSpecificationTelemetryList, having type VisualSpecificationTelemetryPresModel[] - ParameterId["VisualSpecificationTelemetryList"] = "visualSpecificationTelemetryList"; - // DPI_UnderlyingDataTable, having type UnderlyingDataTablePresModel - ParameterId["UnderlyingDataTable"] = "underlyingDataTable"; - // DPI_UnderlyingDataTables, having type UnderlyingDataTablePresModel[] - ParameterId["UnderlyingDataTables"] = "underlyingDataTables"; - // DPI_UnderlyingDataTableColumn, having type UnderlyingDataTableColumnPresModel - ParameterId["UnderlyingDataTableColumn"] = "underlyingDataTableColumn"; - // DPI_UnderlyingDataTableColumns, having type UnderlyingDataTableColumnPresModel[] - ParameterId["UnderlyingDataTableColumns"] = "underlyingDataTableColumns"; - // DPI_PageCacheID, having type PageCacheIDPresModel - ParameterId["PageCacheID"] = "pageCacheId"; - // DPI_RelationalPageCacheID, having type PageCacheIDPresModel - ParameterId["RelationalPageCacheID"] = "relationalPageCacheId"; - // DPI_SearchResultsCacheID, having type PageCacheIDPresModel - ParameterId["SearchResultsCacheID"] = "searchResultsCacheId"; - // DPI_PageInfo, having type PageInfoPresModel - ParameterId["PageInfo"] = "pageInfo"; - // DPI_RowColPair, having type RowColPairPresModel - ParameterId["RowColPair"] = "rowColPair"; - // DPI_TopLeftRowCol, having type RowColPairPresModel - ParameterId["TopLeftRowCol"] = "topLeftRowCol"; - // DPI_BotRightRowCol, having type RowColPairPresModel - ParameterId["BotRightRowCol"] = "botRightRowCol"; - // DPI_RowColPairs, having type RowColPairPresModel[] - ParameterId["RowColPairs"] = "rowColPairs"; - // DPI_TableViewCacheInfo, having type TableViewCachePresModel - ParameterId["TableViewCacheInfo"] = "tableViewCacheInfo"; - // DPI_TableViewInfo, having type tableViewInfoPresModel - ParameterId["TableViewInfo"] = "tableViewInfo"; - // DPI_TableViewColumnInfo, having type TableViewColumnInfoPresModel - ParameterId["TableViewColumnInfo"] = "tableViewColumnInfo"; - // DPI_TableViewColumns, having type TableViewColumnInfoPresModel[] - ParameterId["TableViewColumns"] = "tableViewColumns"; - // DPI_TableViewPageItem, having type TableViewPageItemPresModel - ParameterId["TableViewPageItem"] = "tableViewPageItem"; - // DPI_TableViewPageColumns, having type TableViewPageItemPresModel[] - ParameterId["TableViewPageColumns"] = "tableViewPageColumns"; - // DPI_TableViewPageRow, having type TableViewPageRowPresModel - ParameterId["TableViewPageRow"] = "tableViewPageRow"; - // DPI_TableViewPageRows, having type TableViewPageRowPresModel[] - ParameterId["TableViewPageRows"] = "tableViewPageRows"; - // DPI_TableViewPage, having type TableViewPagePresModel - ParameterId["TableViewPage"] = "tableViewPage"; - // DPI_CategoricalValuePicker, having type CategoricalValuePickerPresModel - ParameterId["CategoricalValuePicker"] = "categoricalValuePicker"; - // DPI_AnnotationShapeBorderStyle, having type LineStylePresModel - ParameterId["AnnotationShapeBorderStyle"] = "annotationShapeBorderStyle"; - // DPI_AnotationShapeStrokeStyle, having type LineStylePresModel - ParameterId["AnotationShapeStrokeStyle"] = "annotationShapeStrokeStyle"; - // DPI_CategoricalBinEditorPresModel, having type CategoricalBinEditorPresModel - ParameterId["CategoricalBinEditorPresModel"] = "categoricalBinEditor"; - // DPI_CategoricalBinItem, having type CategoricalBinItemPresModel - ParameterId["CategoricalBinItem"] = "categoricalBinItemPresModel"; - // DPI_CategoricalBinItems, having type CategoricalBinItemPresModel[] - ParameterId["CategoricalBinItems"] = "categoricalBinItemPresModels"; - // DPI_MeasurePickerFieldInfo, having type MeasurePickerFieldInfoPresModel - ParameterId["MeasurePickerFieldInfo"] = "measurePickerFieldInfo"; - // DPI_MeasurePickerFields, having type MeasurePickerFieldInfoPresModel[] - ParameterId["MeasurePickerFields"] = "measurePickerFields"; - // DPI_MeasureAggregationInfo, having type MeasureAggregationInfoPresModel - ParameterId["MeasureAggregationInfo"] = "measureAggregationInfo"; - // DPI_MeasureAggregations, having type MeasureAggregationInfoPresModel[] - ParameterId["MeasureAggregations"] = "measureAggregations"; - // DPI_TuplePair, having type TuplePairPresModel - ParameterId["TuplePair"] = "tuplePair"; - // DPI_DimensionBound, having type DimensionBoundPresModel - ParameterId["DimensionBound"] = "dimensionBound"; - // DPI_PerspectiveBounds, having type DimensionBoundPresModel[] - ParameterId["PerspectiveBounds"] = "perspectiveBounds"; - // DPI_FilterPerspectiveInfoPresModel, having type FilterPerspectiveInfoPresModel - ParameterId["FilterPerspectiveInfoPresModel"] = "filterPerspectiveInfo"; - // DPI_TableRelevance, having type TableRelevancePresModel - ParameterId["TableRelevance"] = "tableRelevance"; - // DPI_AddInRegistrationPresModel, having type AddInRegistrationPresModel - ParameterId["AddInRegistrationPresModel"] = "addInRegistrationPresModel"; - // DPI_AddInRegistrationPresModelList, having type AddInRegistrationPresModel[] - ParameterId["AddInRegistrationPresModelList"] = "addInRegistrationPresModelList"; - // DPI_AddInDashboardAuthoringWidget, having type AddInDashboardWidgetPresModel - ParameterId["AddInDashboardAuthoringWidget"] = "addInDashboardAuthoringWidgetPresModel"; - // DPI_AddInInstance, having type AddInInstancePresModel - ParameterId["AddInInstance"] = "addInInstancePresModel"; - // DPI_AddInLocator, having type AddInLocatorPresModel - ParameterId["AddInLocator"] = "addInLocatorPresModel"; - // DPI_AddInContext, having type AddInContext - ParameterId["AddInContext"] = "addInContext"; - // DPI_AddInMode, having type AddInMode - ParameterId["AddInMode"] = "addInMode"; - // DPI_SetAxisRangeStartResult, having type SetAxisRangeResult - ParameterId["SetAxisRangeStartResult"] = "setAxisRangeStartResult"; - // DPI_SetAxisRangeEndResult, having type SetAxisRangeResult - ParameterId["SetAxisRangeEndResult"] = "setAxisRangeEndResult"; - // DPI_AddInEnvironment, having type AddInEnvironmentPresModel - ParameterId["AddInEnvironment"] = "addInEnvironmentPresModel"; - // DPI_AddInDashboardInfo, having type AddInDashboardInfoPresModel - ParameterId["AddInDashboardInfo"] = "addInDashboardInfoPresModel"; - // DPI_AddInSettingsInfo, having type AddInSettingsInfoPresModel - ParameterId["AddInSettingsInfo"] = "addInSettingsInfo"; - // DPI_AddInBootstrapInfo, having type AddInBootstrapInfoPresModel - ParameterId["AddInBootstrapInfo"] = "addInBootstrapInfo"; - // DPI_AddInDebugSettings, having type AddInDebugSettingsPresModel - ParameterId["AddInDebugSettings"] = "addInDebugSettings"; - // DPI_RichText, having type RichTextPresModel - ParameterId["RichText"] = "richText"; - // DPI_RichTextKeywordSubList, having type RichTextKeywordSubListPresModel - ParameterId["RichTextKeywordSubList"] = "richTextKeywordsSublist"; - // DPI_RichTextKeywordSubLists, having type RichTextKeywordSubListPresModel[] - ParameterId["RichTextKeywordSubLists"] = "richTextKeywordSublists"; - // DPI_RichTextKeywordList, having type RichTextKeywordListPresModel - ParameterId["RichTextKeywordList"] = "richTextKeywordsList"; - // DPI_RichTextBlockStyle, having type RichTextBlockStylePresModel - ParameterId["RichTextBlockStyle"] = "richTextBlockStyle"; - // DPI_RichTextContentStyle, having type RichTextContentStylePresModel - ParameterId["RichTextContentStyle"] = "richTextContentStyle"; - })(ParameterId = exports.ParameterId || (exports.ParameterId = {})); - - -/***/ }, -/* 11 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(4); - var CommandIds_1 = __webpack_require__(12); - var Params_1 = __webpack_require__(10); - var CommandMappingRegistry_1 = __webpack_require__(13); - var CommandRegistration_1 = __webpack_require__(14); - var CommandMappingRegistryFactory = (function () { - function CommandMappingRegistryFactory() { - } - /** - * Creates and populates a new CommandMappingRegistry for the specific version number requested - * - * @static - * @param {VersionNumber} versionNumber - * @returns {CommandMappingRegistry} - * @memberof CommandMappingRegistryFactory - */ - CommandMappingRegistryFactory.createCommandMappingRegistry = function (versionNumber) { - var result = new CommandMappingRegistry_1.CommandMappingRegistry(); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.InitializeAddIn, CommandIds_1.DocCommands.InitializeAddInInstance, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.AddInLocator, Params_1.ParameterId.AddInLocator)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.AddInBootstrapInfo, Params_1.ParameterId.AddInBootstrapInfo))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetUnderlyingData, CommandIds_1.DocCommands.GetUnderlyingData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreAliases, Params_1.ParameterId.IgnoreAliases), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreSelection, Params_1.ParameterId.IgnoreSelection), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IncludeAllColumns, Params_1.ParameterId.IncludeAllColumns), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.MaxRows, Params_1.ParameterId.MaxRows), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.UnderlyingDataTable, Params_1.ParameterId.UnderlyingDataTable))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetDataSummaryData, CommandIds_1.DocCommands.GetSummaryData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreAliases, Params_1.ParameterId.IgnoreAliases), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreSelection, Params_1.ParameterId.IgnoreSelection), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.UnderlyingSummaryDataTable, Params_1.ParameterId.UnderlyingDataTable))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ApplyCategoricalFilter, CommandIds_1.DocCommands.CategoricalFilter, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.QualifiedFieldCaption), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterValues, Params_1.ParameterId.FilterAliases), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterUpdateType, Params_1.ParameterId.FilterUpdateType), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IsExcludeMode, Params_1.ParameterId.Exclude, true), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Worksheet), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Dashboard)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.FieldCaption))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ApplyRangeFilter, CommandIds_1.DocCommands.RangeFilter, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.QualifiedFieldCaption), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterRangeMin, Params_1.ParameterId.RangeMin, true), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterRangeMax, Params_1.ParameterId.RangeMax, true), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterRangeNullOption, Params_1.ParameterId.Included, true), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Worksheet), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Dashboard)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.FieldCaption))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ClearFilter, CommandIds_1.DocCommands.ClearExistingFilter, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.QualifiedFieldCaption), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Worksheet), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Dashboard)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.FieldCaption))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetSelectedMarks, CommandIds_1.DocCommands.GetSelectionData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.SelectedData, Params_1.ParameterId.SelectionData))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetHighlightedMarks, CommandIds_1.DocCommands.GetHighlightedData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.HighlightedData, Params_1.ParameterId.HighlightedData))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.SaveAddInSettings, CommandIds_1.DocCommands.SaveAddInSettings, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.AddInLocator, Params_1.ParameterId.AddInLocator), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.SettingsValues, Params_1.ParameterId.AddInSettings)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.AddInSettingsInfo, Params_1.ParameterId.AddInSettingsInfo))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetParametersForSheet, CommandIds_1.DocCommands.GetParameterModels, [], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterInfos, Params_1.ParameterId.ParameterCtrls))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.FindParameter, CommandIds_1.DocCommands.FindParameterModel, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterCaption, Params_1.ParameterId.FieldCaption, true), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterFieldName, Params_1.ParameterId.FieldNameString, true)], - // We might not get a response if the parameter isn't found - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterInfo, Params_1.ParameterId.ParameterCtrl, true))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ChangeParameterValue, CommandIds_1.DocCommands.SetParameterValue, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterFieldName, Params_1.ParameterId.GlobalFieldName), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterValue, Params_1.ParameterId.ValueStr)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterInfo, Params_1.ParameterId.ParameterCtrl))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ClearSelectedMarks, CommandIds_1.DocCommands.ClearSelectedMarks, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)])); - return result; - }; - return CommandMappingRegistryFactory; - }()); - exports.CommandMappingRegistryFactory = CommandMappingRegistryFactory; - - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - "use strict"; - /* tslint:disable */ - // ----------------------------------------------------------------------------- - // - // This file is the copyrighted property of Tableau Software and is protected - // by registered patents and other applicable U.S. and international laws and - // regulations. - // - // Unlicensed use of the contents of this file is prohibited. Please refer to - // the NOTICES.txt file for further details. - // - // ----------------------------------------------------------------------------- - // WARNING: Computer generated file. Do not hand modify. - // DEPENDS ON: ['..\\typescript\\js-api\\api-core\\node_modules\\@tableau\\preslayer-codegen-typescript\\templates\\commands-enum-ts.template', u'..\\typescript\\js-api\\api-core\\temp-pres-layer\\all-cmd-wrappers.data'] - Object.defineProperty(exports, "__esModule", { value: true }); - var DocCommands; - (function (DocCommands) { - // Saves the settings for the specified add-in id - DocCommands["SaveAddInSettings"] = "save-add-in-settings"; - // Gets the pres model for an add-in instance. - DocCommands["GetAddInInstancePresModel"] = "get-add-in-instance-pres-model"; - // Gets the pres model for the dashboard authoring widget for add-ins. - DocCommands["GetAddInDashboardAuthoringWidgetPresModel"] = "get-add-in-dashboard-authoring-widget-pres-model"; - // Gets the necessary information for an add-in to initialize itself. - DocCommands["InitializeAddInInstance"] = "initialize-add-in-instance"; - // Enables or disable javascript debugging of an add-in. - DocCommands["SetAddInJsDebuggingEnabled"] = "set-add-in-js-debugging-enabled"; - // Whether or not we should pause before loading. If missing, toggle the value - DocCommands["SetPauseBeforeLoadingAddIn"] = "set-pause-before-loading-add-in"; - // Reloads the Add-In widget and web page. - DocCommands["ReloadAddIn"] = "reload-add-in"; - // Retrieves the context menu for a dashboard add-in. - DocCommands["GetAddInZoneContextMenu"] = "get-add-in-zone-context-menu"; - // Gets the pres model which indicates what the debug settings for add-ins is. - DocCommands["GetAddInDebugSettingsPresModel"] = "get-add-in-debug-settings-pres-model"; - // Primary use is for building context menus - DocCommands["IsSelectionAnEditableParameter"] = "is-selection-an-editable-parameter"; - // Check if selection can be used as base for creating a new parameter. Primary use is for building context menus - DocCommands["GetCreateParameterState"] = "get-create-parameter-state"; - // Uses EditParameter to get and return info about the presmodel without maintaining the controller - DocCommands["GetParameterEditInfo"] = "get-parameter-edit-info"; - // Initialize the controller and its stored parameter then return a populated presmodel - DocCommands["CreateParameter"] = "create-parameter"; - // Same underlying logic as CreateParameter but edits rather than creating a new parameter - DocCommands["EditParameter_New"] = "edit-parameter-new"; - // Add a member of a parameter domain. Changes are applied to intermediate state and saved on commit - DocCommands["AddParameterMember"] = "add-parameter-member"; - // Edit a member of a parameter domain. Changes are applied to intermediate state and saved on commit - DocCommands["EditParameterMember"] = "edit-parameter-member"; - // Delete a series of ranges of members from the parameter list. - DocCommands["DeleteParameterMembers"] = "delete-parameter-members"; - // Copy a series of ranges of members of a parameter list - DocCommands["CopyParameterMembers"] = "copy-parameter-members"; - // Move a series of ranges of members of a parameter list - DocCommands["MoveParameterMembers"] = "move-parameter-members"; - // Change domain of a parameter. Changes are applied to intermediate state and saved on commit - DocCommands["EditParameterDomainType"] = "edit-parameter-domain-type"; - // Change datatype of a parameter. Changes are applied to intermediate state and saved on commit - DocCommands["EditParameterDataType"] = "edit-parameter-data-type"; - // Change display format of a parameter. Changes are applied to intermediate state and saved on commit - DocCommands["EditParameterFormat"] = "edit-parameter-format"; - // Validate changes to a parameter's range domain and apply to intermediate state. Changes are saved on commit - DocCommands["EditParameterRange"] = "edit-parameter-range"; - // Edit the value of a non-list domain parameter - DocCommands["EditParameterValue"] = "edit-parameter-value"; - // Edit the value of a list domain parameter - DocCommands["EditParameterValueIndex"] = "edit-parameter-value-index"; - // Update the parameter caption and description - used to keep backend in sync. No verification/return is requried. - DocCommands["EditParameterDisplayInfo"] = "edit-parameter-display-info"; - // Update the domain of the parameter using a field (column or parameter) as a base - DocCommands["UpdateParameterFromField"] = "update-parameter-from-field"; - // Update the list domain of a parameter from a plain text representation of values - DocCommands["ParseParameterListDomain"] = "parse-parameter-list-domain"; - // Clears the parameter's domain of all members - DocCommands["ClearParameterListDomain"] = "clear-parameter-list-domain"; - // Creates or edits parameter from intermediate state. Takes a few properties that are cached in dialog and applies them pre-commit. - DocCommands["CommitParameterEdits"] = "commit-parameter-edits"; - // Gets the model for a particular parameter or returns an empty response if one is not found. - DocCommands["FindParameterModel"] = "find-parameter-model"; - // Gets the summary data for a worksheet - DocCommands["GetSummaryData"] = "get-summary-data"; - // Gets the underlying data for a worksheet - DocCommands["GetUnderlyingData"] = "get-underlying-data"; - // Select all marks that have the tuple's value for the given field . - DocCommands["SelectByTupleValue"] = "select-by-tuple-value"; - // Clear all the selected marks for the given worksheet - DocCommands["ClearSelectedMarks"] = "clear-selected-marks"; - // Creates or updates and existing filter based on the provided updates. - DocCommands["ApplyCategoricalFilterUpdates"] = "apply-categorical-filter-updates"; - // Search filter domain for text and return any matching tuples. - DocCommands["CategoricalFilterSearch"] = "categorical-filter-search"; - // Clear all members from the table of the identified cache. - DocCommands["CategoricalFilterClearRelationalCache"] = "categorical-filter-clear-relational-cache"; - // Create tuples for an existing filter from supplied text. - DocCommands["GetCategoricalFilterTuplesFromText"] = "get-categorical-filter-tuples-from-text"; - // Returns a presmodel backing a categorical filter, initializing a data cache for fast lookup of the filter's member domain. - DocCommands["GetCategoricalFilter"] = "get-categorical-filter"; - // Retrieves a page of data to display in the filter's list domain - DocCommands["GetCategoricalFilterDomainPage"] = "get-categorical-filter-domain-page"; - // Reset filter to committed state - DocCommands["ResetCategoricalFilterDeferred"] = "reset-categorical-filter-deferred"; - // Use uncommitted state to reset the filter's controller - DocCommands["RecreateCategoricalFilterController"] = "recreate-categorical-filter-controller"; - // Validates a Categroical Filter name. - DocCommands["ValidateCategoricalFilterName"] = "validate-categorical-filter-name"; - // Gets a summary of the filter pattern. - DocCommands["GetCategoricalFilterPatternSummary"] = "get-categorical-filter-pattern-summary"; - // Gets a summery of the filter condition. - DocCommands["GetCategoricalFilterConditionSummary"] = "get-categorical-filter-condition-summary"; - // Load the current minimum and maximum data value range for the condition field. - DocCommands["LoadCategoricalFilterConditionFieldValueRange"] = "load-categorical-filter-condition-field-value-range"; - // Validates a Categorical Filter's condition formula and re-writes it. - DocCommands["ValidateCategoricalFilterConditionFormula"] = "validate-categorical-filter-condition-formula"; - // Gets a summery of the filter limit. - DocCommands["GetCategoricalFilterLimitSummary"] = "get-categorical-filter-limit-summary"; - // Validates a Categorical Filter's limit count. - DocCommands["ValidateCategoricalFilterLimitCount"] = "validate-categorical-filter-limit-count"; - // Validates a Categorical Filter's limit formula, and re-writes the formula. - DocCommands["ValidateCategoricalFilterLimitFormula"] = "validate-categorical-filter-limit-formula"; - // Validates a Categorical Filter's limit. - DocCommands["ValidateCategoricalFilterLimit"] = "validate-categorical-filter-limit"; - // Inform cache when a user changes the range - DocCommands["CategoricalFilterSetRangeTypeDeferred"] = "categorical-filter-set-range-type-deferred"; - // Inform cache when a user changes whether the selection is exclusive - DocCommands["CategoricalFilterSetSelectionExclusiveDeferred"] = "categorical-filter-set-selection-exclusive-deferred"; - // Inform cache when a user changes whether an empty selection should be considered a selection of 'All' in a Manual selection mode - DocCommands["CategoricalFilterSetUseAllWhenManualIsEmptyDeferred"] = "categorical-filter-set-use-all-when-manual-is-empty-deferred"; - // Inform cache when a user alters the preset type - DocCommands["CategoricalFilterSetPresetTypeDeferred"] = "categorical-filter-set-preset-type-deferred"; - // Inform cache the user has selected one or more members - DocCommands["CategoricalFilterSelectRelationalMembersDeferred"] = "categorical-filter-select-relational-members-deferred"; - // Inform cache the user has deselected one or more members - DocCommands["CategoricalFilterDeselectRelationalMembersDeferred"] = "categorical-filter-deselect-relational-members-deferred"; - // Inform cache when a user selects everything in the domain - DocCommands["CategoricalFilterSelectAllRelationalMembersDeferred"] = "categorical-filter-select-all-relational-members-deferred"; - // Inform cache when a user deselects everything in the domain - DocCommands["CategoricalFilterDeselectAllRelationalMembersDeferred"] = "categorical-filter-deselect-all-relational-members-deferred"; - // Inform cache the user wants to see a different domain (e.g. relevant values only) - DocCommands["CategoricalFilterSetDomainTypeDeferred"] = "categorical-filter-set-domain-type-deferred"; - // Set whether filters apply to totals as well as non-totals table calcs - DocCommands["FilterApplyToTotalTableCalcs"] = "filter-apply-to-total-table-calcs"; - // Gets the axis options . - DocCommands["GetAxisOptions"] = "get-axis-options"; - // Reset the axis options . - DocCommands["ResetAxisOptions"] = "reset-axis-options"; - // Show axis edit dialog - DocCommands["ShowEditAxisDialog"] = "show-edit-axis-dialog"; - // Sets the axis direction - DocCommands["SetAxisReversed"] = "set-axis-reversed"; - // Sets the axis scale type - DocCommands["SetAxisScaleType"] = "set-axis-scale-type"; - // Sets the main title of a quantitative axis - DocCommands["SetAxisTitle"] = "set-axis-title"; - // Sets the subtitle of a quantitative axis - DocCommands["SetAxisSubtitle"] = "set-axis-subtitle"; - // Sets whether we should use the automatic subtitle for a quantitative axis - DocCommands["SetAxisUseAutomaticSubtitle"] = "set-axis-use-automatic-subtitle"; - // Sets the axis range type of a quantitative axis - DocCommands["SetAxisRangeType"] = "set-axis-range-type"; - // Sets whether or not to force-include zero on a quantitative axis - DocCommands["SetAxisIncludeZero"] = "set-axis-include-zero"; - // Sets new min/max range endings for axis - DocCommands["SetAxisRange"] = "set-axis-range"; - // Synchronize dual axes on a folded quantitative axis - DocCommands["SetAxisFoldState"] = "set-axis-fold-state"; - // - DocCommands["GetHighlightedData"] = "get-highlighted-data"; - // - DocCommands["GetSelectionData"] = "get-selection"; - // - DocCommands["Select"] = "select"; - // - DocCommands["SelectAll"] = "select-all"; - // - DocCommands["SelectByValue"] = "select-by-value"; - // - DocCommands["SelectNoneIncludingMaster"] = "select-none-including-master"; - // - DocCommands["AddManualItemsToFilter"] = "add-manual-items-to-filter"; - // - DocCommands["CategoricalFilter"] = "categorical-filter"; - // - DocCommands["CategoricalFilterByIndex"] = "categorical-filter-by-index"; - // - DocCommands["ChangeSharedFilter"] = "change-shared-filter"; - // - DocCommands["ClearContextFilters"] = "clear-context-filters"; - // - DocCommands["ClearExistingFilter"] = "clear-existing-filter"; - // - DocCommands["DefaultFilter"] = "default-filter"; - // - DocCommands["FilterGeo"] = "filter-geo"; - // - DocCommands["FilterNeg"] = "filter-neg"; - // - DocCommands["FilterNulls"] = "filter-nulls"; - // - DocCommands["FilterTargets"] = "filter-targets"; - // - DocCommands["GetSharedFilterPresModel"] = "get-shared-filter-pres-model"; - // - DocCommands["HierarchicalFilter"] = "hierarchical-filter"; - // - DocCommands["KeepOnlyOrExclude"] = "keep-only-or-exclude"; - // - DocCommands["RangeFilter"] = "range-filter"; - // - DocCommands["RelDateFilter"] = "relative-date-filter"; - // - DocCommands["ResetFilter"] = "reset-filter"; - // - DocCommands["ShowGeoAtDefault"] = "show-geo-at-default"; - // - DocCommands["ShowSVAtDefault"] = "show-sv-at-default"; - // - DocCommands["ToggleLockQuickFilters"] = "toggle-lock-quick-filters"; - // - DocCommands["AddDataConnection"] = "add-data-connection"; - // - DocCommands["AddDrillPath"] = "add-drill-path"; - // - DocCommands["AddCredentialsFromKeychain"] = "add-credentials-from-keychain"; - // - DocCommands["AddCredentialsFromKeychainFile"] = "add-credentials-from-keychain-file"; - // - DocCommands["AddFieldFolder"] = "add-field-folder"; - // - DocCommands["AddSubtotals"] = "add-subtotals"; - // - DocCommands["AddToDrillPath"] = "add-to-drill-path"; - // - DocCommands["AddToFieldFolder"] = "add-to-field-folder"; - // - DocCommands["AggregateMeasuresFlag"] = "aggregate-measures"; - // - DocCommands["ApplyCalculation"] = "apply-calculation"; - // - DocCommands["ApplyPageSetupOptions"] = "apply-page-setup-options"; - // - DocCommands["ApplyTableOptions"] = "apply-table-options"; - // - DocCommands["ApplyTypeInPill"] = "apply-type-in-pill"; - // - DocCommands["Assert"] = "assert"; - // - DocCommands["AttemptConnectDataSourcesOnSheet"] = "attempt-connect-datasources-on-sheet"; - // - DocCommands["AttemptConnectWorkbook"] = "attempt-connect-workbook"; - // - DocCommands["AttemptDataSourcesConnection"] = "attempt-datasources-connection"; - // - DocCommands["AutoUpdates"] = "auto-update"; - // - DocCommands["BoundingBoxPan"] = "bounding-box-pan"; - // - DocCommands["Brush"] = "highlight"; - // - DocCommands["BrushSpecial"] = "highlight-special"; - // - DocCommands["BuildDataSchemaDataSourceContextMenu"] = "build-data-schema-data-source-context-menu"; - // - DocCommands["BuildDataSchemaContextMenu"] = "build-data-schema-context-menu"; - // - DocCommands["BuildDataSchemaFieldContextMenu"] = "build-data-schema-field-context-menu"; - // - DocCommands["BuildDataSchemaDrillPathContextMenu"] = "build-data-schema-drill-path-context-menu"; - // - DocCommands["BuildFileTableInfoPresModel"] = "build-file-table-info-pres-model"; - // - DocCommands["BuildSheetTabContextMenu"] = "build-sheet-tab-context-menu"; - // - DocCommands["CancelDataSourcePresModel"] = "cancel-datasource-pres-model"; - // - DocCommands["CatBinMergeSplitLabel"] = "categorical-bin-merge-split"; - // - DocCommands["CategoricalQuickFilterEdit"] = "categorical-quick-filter-edit"; - // - DocCommands["CategoricalQuickFilterExcludeValues"] = "categorical-quick-filter-exclude-values"; - // - DocCommands["CategoricalQuickFilterIncludeAllWhenEmpty"] = "categorical-quick-filter-include-all-when-empty"; - // - DocCommands["CategoricalQuickFilterMode"] = "categorical-quick-filter-mode"; - // - DocCommands["CategoricalQuickFilterPattern"] = "categorical-quick-filter-pattern"; - // - DocCommands["CellSize"] = "cell-size"; - // - DocCommands["CellType"] = "cell-type"; - // - DocCommands["ChangeAggregation"] = "change-aggregation"; - // - DocCommands["ChangeAlphaLevel"] = "change-alpha-level"; - // - DocCommands["ChangeBorder"] = "change-border"; - // - DocCommands["ChangeFieldType"] = "change-field-type"; - // - DocCommands["ChangeForecastColumnType"] = "change-forecast-column-type"; - // - DocCommands["ChangeHalo"] = "change-halo"; - // - DocCommands["ChangeMarkers"] = "change-markers"; - // - DocCommands["ChangeSize"] = "change-size"; - // - DocCommands["ChangeSheetTabColor"] = "change-sheet-tab-color"; - // - DocCommands["ClearAllAxisRanges"] = "clear-axis-ranges"; - // - DocCommands["ClearCalcModel"] = "clear-calculation-model"; - // - DocCommands["ClearFilters"] = "clear-filters"; - // - DocCommands["ClearFormatting"] = "clear-formatting"; - // - DocCommands["ClearFuture"] = "clear-future"; - // - DocCommands["ClearLayout"] = "clear-layout"; - // - DocCommands["ClearQuickFilter"] = "clear-quick-filter"; - // - DocCommands["ClearSorts"] = "clear-sorts"; - // - DocCommands["CloseConnection"] = "close-connection"; - // - DocCommands["CloseDataSource"] = "close-data-source"; - // - DocCommands["ConnectionAddGoogleAnalyticsDimension"] = "connection-add-google-analytics-dimension"; - // - DocCommands["ConnectionAddGoogleAnalyticsMeasure"] = "connection-add-google-analytics-measure"; - // - DocCommands["ConnectionAddNewTable"] = "connection-add-new-table"; - // - DocCommands["ConnectionAddCoalesce"] = "connection-add-coalesce"; - // - DocCommands["ConnectionAddPivot"] = "connection-add-pivot"; - // - DocCommands["ConnectionConvertToUnionAndEdit"] = "connection-convert-to-union-and-edit"; - // - DocCommands["ConnectionConvertToUnion"] = "connection-convert-to-union"; - // - DocCommands["ConnectionEditUnion"] = "connection-edit-union"; - // - DocCommands["ConnectionAddOrEditBatchUnion"] = "connection-add-or-edit-batch-union"; - // - DocCommands["ConnectionChangeTableProperty"] = "connection-change-table-property"; - // - DocCommands["ConnectionCountEntity"] = "connection-count-entity"; - // - DocCommands["ConnectionDataServerFetchMoreDatasources"] = "connection-dataserver-fetch-more-datasources"; - // - DocCommands["ConnectionDataServerProjectSelect"] = "connection-dataserver-change-selected-project"; - // - DocCommands["ConnectionDataServerUpdateFetchParameters"] = "connection-dataserver-update-fetch-parameters"; - // - DocCommands["ConnectionDataServerFlushCache"] = "connection-dataserver-flush-cache"; - // - DocCommands["ConnectionDeleteAllTables"] = "connection-delete-all-tables"; - // - DocCommands["ConnectionDeleteTable"] = "connection-delete-table"; - // - DocCommands["ConnectionEditCaption"] = "connection-edit-caption"; - // - DocCommands["ConnectionEditGoogleAnalyticsAccount"] = "connection-edit-google-analytics-account"; - // - DocCommands["ConnectionEditGoogleAnalyticsDateRange"] = "connection-edit-google-analytics-date-range"; - // - DocCommands["ConnectionEditGoogleAnalyticsMeasureGroup"] = "connection-edit-google-analytics-measure-group"; - // - DocCommands["ConnectionToggleGAQueryPartitioning"] = "connection-toggle-ga-query-partitioning"; - // - DocCommands["ConnectionEditGoogleAnalyticsProperty"] = "connection-edit-google-analytics-property"; - // - DocCommands["ConnectionEditGoogleAnalyticsView"] = "connection-edit-google-analytics-view"; - // - DocCommands["ConnectionEditGoogleAnalyticsSegment"] = "connection-edit-google-analytics-segment"; - // - DocCommands["ConnectionEditJoinClauses"] = "connection-edit-join-clauses"; - // - DocCommands["ConnectionEditJoinType"] = "connection-edit-join-type"; - // - DocCommands["ConnectionEditSQLText"] = "connection-edit-sql-text"; - // - DocCommands["ConnectionFetchEntity"] = "connection-fetch-entity"; - // - DocCommands["ConnectionSetForceExtractRefresh"] = "connection-set-force-extract-refresh"; - // - DocCommands["ConnectionPrepareDataSourceForEdit"] = "connection-prepare-datasource-for-edit"; - // - DocCommands["ConnectionClearRefreshAttributes"] = "connection-clear-refresh-attributes"; - // - DocCommands["ConnectionRemoveGoogleAnalyticsDimension"] = "connection-remove-google-analytics-dimension"; - // - DocCommands["ConnectionRemoveGoogleAnalyticsMeasure"] = "connection-remove-google-analytics-measure"; - // - DocCommands["ConnectionRemoveCoalesce"] = "connection-remove-coalesce"; - // - DocCommands["ConnectionRemovePivot"] = "connection-remove-pivot"; - // - DocCommands["ConnectionAddDateParseFormats"] = "connection-add-date-parse-formats"; - // - DocCommands["ConnectionRenameTable"] = "connection-rename-table"; - // - DocCommands["ConnectionReplaceRelationWithSQLText"] = "connection-replace-relation-with-sql-text"; - // - DocCommands["ConnectionReplaceTable"] = "connection-replace-table"; - // - DocCommands["ConnectionResetTableAlias"] = "connection-reset-table-alias"; - // - DocCommands["ConnectionSelectCatalog"] = "connection-select-catalog"; - // - DocCommands["ConnectionSelectCube"] = "connection-select-cube"; - // - DocCommands["ConnectionSelectDatabase"] = "connection-select-database"; - // - DocCommands["ConnectionSelectSchema"] = "connection-select-schema"; - // - DocCommands["ConnectionSelectStoredProcedure"] = "connection-select-stored-procedure"; - // - DocCommands["ConnectionSelectWarehouse"] = "connection-select-warehouse"; - // - DocCommands["ConnectionSelectBigQueryLegacySQLCheckBox"] = "connection-select-bigquery-legacy-check"; - // - DocCommands["ConnectionToggleHasHeaderRow"] = "connection-toggle-has-header-row"; - // - DocCommands["ConnectionToggleTableCleaning"] = "connection-toggle-table-cleaning"; - // - DocCommands["ConnectionToggleUseExtract"] = "connection-toggle-use-extract"; - // - DocCommands["ConnectionViewTableCleaningResults"] = "connection-view-table-cleaning-results"; - // - DocCommands["ConnectToDataServerSource"] = "connect-data-server-datasource"; - // - DocCommands["ConsiderZerosEmptyFlag"] = "consider-zeros-empty"; - // - DocCommands["ConvertUnnamedFields"] = "convert-unnamed-fields"; - // - DocCommands["Crash"] = "crash"; - // - DocCommands["CreateAggregateRole"] = "create-aggregate-role"; - // - DocCommands["CreateConnection"] = "create-connection"; - // - DocCommands["CreateDefaultQuickFilter"] = "create-default-quick-filter"; - // - DocCommands["CreateTypeInPill"] = "create-type-in-pill"; - // - DocCommands["CustomDataGridFieldOrder"] = "custom-datagrid-field-order"; - // - DocCommands["CustomDateAggregation"] = "custom-date-aggregation"; - // - DocCommands["CustomSplitField"] = "custom-split-field"; - // - DocCommands["DebugAssertion"] = "debug-assertion"; - // - DocCommands["DecrementParameterValue"] = "decr-parameter-value"; - // - DocCommands["DeleteFields"] = "delete-calculation-fields-command"; - // - DocCommands["DeleteSheet"] = "delete-sheet"; - // - DocCommands["DescribeDrillPath"] = "describe-drill-path"; - // - DocCommands["DescribeSortFilter"] = "describe-sort-filter"; - // - DocCommands["DismissNullWart"] = "dismiss-null-wart"; - // - DocCommands["DomainQuickFilter"] = "domain-quick-filter"; - // - DocCommands["DoubleFreeCrash"] = "double-free"; - // - DocCommands["DropNowhere"] = "drop-nowhere"; - // - DocCommands["DropOnSchemaViewer"] = "drop-on-schema-viewer"; - // - DocCommands["DropOnShelf"] = "drop-on-shelf"; - // - DocCommands["DropOnCalcEditor"] = "drop-on-calc-editor"; - // - DocCommands["DropOnShowMe"] = "drop-on-showme"; - // - DocCommands["DropPrepare"] = "drop-prepare"; - // - DocCommands["DualAxis"] = "dual-axis"; - // - DocCommands["DuplicateSheet"] = "duplicate-sheet"; - // - DocCommands["EditCopyCalc"] = "edit-copy-calc"; - // - DocCommands["EditDropLines"] = "edit-drop-lines"; - // - DocCommands["EditEnumeratedGroup"] = "edit-enumerated-group"; - // - DocCommands["EditNestedGroup"] = "edit-nested-group"; - // - DocCommands["EditPill"] = "edit-pill"; - // - DocCommands["EditPrimitiveType"] = "edit-primitive-type"; - // - DocCommands["EnableAllBrushing"] = "enable-all-highlights"; - // - DocCommands["EnableQuickFilter"] = "enable-quick-filter"; - // - DocCommands["EnableSheetBrushing"] = "enable-sheet-highlights"; - // - DocCommands["EnableThemedBrushing"] = "enable-themed-highlights"; - // - DocCommands["EnumerateVariables"] = "enumerate-variables"; - // - DocCommands["EnumerateVariableSelectionValues"] = "enumerate-variable-selection-values"; - // - DocCommands["EstablishConnection"] = "establish-connection"; - // - DocCommands["EstablishMatchingConnections"] = "establish-matching-connections"; - // - DocCommands["ExportDataToText"] = "export-data-to-text"; - // - DocCommands["ExtSvcConfig"] = "ext-svc-config"; - // - DocCommands["ExtSvcConfigConnect"] = "ext-svc-config-connect"; - // - DocCommands["Extract"] = "extract"; - // - DocCommands["SetDataGridCurrentTable"] = "set-data-grid-current-table"; - // - DocCommands["FetchTableRelevance"] = "fetch-table-relevance"; - // - DocCommands["FetchCachedTableRelevance"] = "fetch-cached-table-relevance"; - // - DocCommands["FlipLabels"] = "flip-labels"; - // - DocCommands["FloatingToolbar"] = "zoom-controls"; - // - DocCommands["FloatingToolbarToggle"] = "zoom-controls-toggle"; - // - DocCommands["ForecastConfig"] = "forecast-config"; - // - DocCommands["ForecastToggle"] = "forecast-toggle"; - // - DocCommands["FormatWorkbook"] = "format-workbook"; - // - DocCommands["GeographicSearchQuery"] = "geographic-search-query"; - // - DocCommands["GeographicSearchLoadData"] = "geographic-search-load-data"; - // - DocCommands["GeographicSearchIsDataDoneLoading"] = "geographic-search-data-done-loading"; - // - DocCommands["GeographicSearchToggleVisibility"] = "geographic-search-toggle-visibility"; - // - DocCommands["GetEditConnectionPresModel"] = "get-edit-connection-pres-model"; - // - DocCommands["GetEditEnumeratedGroupPresModel"] = "get-edit-enumerated-group-pres-model"; - // - DocCommands["GetEditNestedGroupPresModel"] = "get-edit-nested-group-pres-model"; - // - DocCommands["GetFrameFinderPresModel"] = "get-frame-finder-pres-model"; - // - DocCommands["GetGoogleSheetsListPresModel"] = "get-google-sheets-list-pres-model"; - // - DocCommands["GetGoogleSheetPanePresModel"] = "get-google-sheet-pane-pres-model"; - // - DocCommands["GetInitialSQLPresModel"] = "get-initial-sql-pres-model"; - // - DocCommands["GetQueryBandingPresModel"] = "get-query-banding-pres-model"; - // - DocCommands["GetTabbedAuthenticationPresModel"] = "get-tabbed-authentication-pres-model"; - // - DocCommands["GetActiveSheet"] = "get-active-sheet"; - // - DocCommands["GetAlphaLevel"] = "get-alpha-level"; - // - DocCommands["GetAppConfig"] = "get-app-config"; - // - DocCommands["GetDisabledSecondaryDSFields"] = "get-disabled-secondaryds-fields"; - // - DocCommands["GetBlendingFields"] = "get-blending-fields"; - // - DocCommands["GetCalculationPresModel"] = "get-calculation-pres-model"; - // - DocCommands["GetCategoricalColor"] = "get-categorical-color"; - // - DocCommands["GetClientInfo"] = "get-client-info"; - // - DocCommands["GetCommands"] = "get-commands"; - // - DocCommands["GetConnectionDescriptionPresModel"] = "get-connection-description-pres-model"; - // - DocCommands["GetDSDropdownPresModel"] = "get-ds-dropdown-pres-model"; - // - DocCommands["GetDataPreviewWindowMessagePresModel"] = "get-data-preview-window-pres-model"; - // - DocCommands["GetDataSourcePresModel"] = "get-datasource-pres-model"; - // - DocCommands["GetDataSourceSortPresModel"] = "get-datasource-sort-pres-model"; - // - DocCommands["GetDataSourcePropertiesPresModel"] = "get-datasource-properties-pres-model"; - // - DocCommands["GetConnectionSettingsPresModel"] = "get-connection-settings-pres-model"; - // - DocCommands["GetDashboard"] = "get-dashboard"; - // - DocCommands["GetDataPreview"] = "get-data-preview"; - // - DocCommands["GetDatabaseEnumerationPresModel"] = "get-database-enumeration-pres-model"; - // - DocCommands["GetDefaultColor"] = "get-default-color"; - // - DocCommands["GetDefaultShape"] = "get-default-shape"; - // - DocCommands["GetDragPresModelForText"] = "get-drag-pres-model-for-text"; - // - DocCommands["GetDropTargetPresModel"] = "get-drop-target-pres-model"; - // - DocCommands["GetEditDataServerConnectionPresModel"] = "get-edit-data-server-connection-pres-model"; - // - DocCommands["GetEditDropLinesModel"] = "get-edit-drop-lines-model"; - // - DocCommands["GetEncodingState"] = "get-encoding-state"; - // - DocCommands["GetEncodingTypeMenuModel"] = "get-encoding-type-menu"; - // - DocCommands["GetExtSvcConfig"] = "get-ext-svc-config"; - // - DocCommands["GetForecastPresModel"] = "get-forecast-pres-model"; - // - DocCommands["GetJoinDescriptionPresModel"] = "get-join-description-pres-model"; - // - DocCommands["GetQuickFilter"] = "get-quick-filter"; - // - DocCommands["GetQuickFilters"] = "get-quick-filters"; - // - DocCommands["GetReferenceLinePresModel"] = "get-reference-line-pres-model"; - // - DocCommands["GetParameters"] = "get-parameters"; - // - DocCommands["GetParameterModels"] = "get-parameter-models"; - // - DocCommands["GetParametersRegistryInfo"] = "get-params-registry-info"; - // - DocCommands["GetPivotPresModel"] = "get-pivot-pres-model"; - // - DocCommands["GetScene"] = "get-scene"; - // - DocCommands["GetSchemaEnumerationPresModel"] = "get-schema-enumeration-pres-model"; - // - DocCommands["GetSheetsInfo"] = "get-sheets-info"; - // - DocCommands["GetShowMe"] = "get-show-me"; - // - DocCommands["GetStandardConnectionEnumerationPresModel"] = "get-standard-connection-enumeration-pres-model"; - // - DocCommands["GetStoredProcedureEnumerationPresModel"] = "get-stored-procedure-enumeration-pres-model"; - // - DocCommands["GetStoredProcedureParametersPresModel"] = "get-stored-procedure-parameters-pres-model"; - // - DocCommands["GetTableEnumerationPresModel"] = "get-table-enumeration-pres-model"; - // - DocCommands["GetTableCleaningPresModel"] = "get-table-cleaning-pres-model"; - // - DocCommands["GetTargetFieldList"] = "get-target-field-list"; - // - DocCommands["GetTopLevelConnectionDescriptionPresModel"] = "get-top-level-connection-description-pres-model"; - // - DocCommands["GetTypeInPillPresModel"] = "get-type-in-pill-pres-model"; - // - DocCommands["GetUberTipPresModel"] = "get-ubertip-pres-model"; - // - DocCommands["GetUnionInfoPresModel"] = "get-union-info-pres-model"; - // - DocCommands["GetVisual"] = "get-visual"; - // - DocCommands["GetVizData"] = "get-viz-data"; - // - DocCommands["GetWarehouseEnumerationPresModel"] = "get-warehouse-enumeration-pres-model"; - // - DocCommands["GetWorkbook"] = "get-workbook"; - // - DocCommands["GetWorldUpdate"] = "get-world-update"; - // - DocCommands["GoToSheet"] = "goto-sheet"; - // - DocCommands["HeapCorruptionCrash"] = "corrupt-heap"; - // - DocCommands["HideColumnFieldLabel"] = "hide-column-field-label"; - // - DocCommands["HideEmptyColsFlag"] = "hide-empty-cols"; - // - DocCommands["HideEmptyRowsFlag"] = "hide-empty-rows"; - // - DocCommands["HideLabel"] = "hide-label"; - // - DocCommands["HideRowFieldLabel"] = "hide-row-field-label"; - // - DocCommands["HierarchicalQuickFilterUpdateSetFunction"] = "hierarchical-quick-filter-update-set-function"; - // - DocCommands["IncludeInTooltip"] = "include-in-tooltip"; - // - DocCommands["IncludeOtherCategoricalBin"] = "include-other-cat-bin"; - // - DocCommands["IncrementExtract"] = "increment-extract"; - // - DocCommands["IncrementParameterValue"] = "incr-parameter-value"; - // - DocCommands["CreateCalc"] = "create-calc"; - // - DocCommands["EditCalc"] = "edit-calc"; - // - DocCommands["InvokeHyperlink"] = "invoke-hyperlink"; - // - DocCommands["KeepOnlyOrExcludeSelection"] = "keep-only-or-exclude-selection"; - // - DocCommands["LabelDrill"] = "label-drill"; - // - DocCommands["LabelDrillCtx"] = "label-drill-ctx"; - // - DocCommands["LevelDrill"] = "level-drill"; - // - DocCommands["LoadUrl"] = "load-url"; - // - DocCommands["ListPublishedDataSources"] = "list-published-datasources"; - // - DocCommands["MarkLabel"] = "mark-label"; - // - DocCommands["MarkTrail"] = "mark-trail"; - // - DocCommands["MemoryDumpObjectCounts"] = "memory-dump-object-counts"; - // - DocCommands["MemoryLeak"] = "memory-leak"; - // - DocCommands["Merge"] = "merge-or-split"; - // - DocCommands["MigrateDataSource"] = "migrate-data-source"; - // - DocCommands["ModifyMarksInSet"] = "add-or-remove-marks"; - // - DocCommands["MoveAreaAnnotationText"] = "move-area-annotation-text"; - // - DocCommands["MoveColumnTotals"] = "move-column-totals"; - // - DocCommands["MoveMark"] = "move-mark"; - // - DocCommands["MovePointAnnotation"] = "move-point-annotation"; - // - DocCommands["MovePointAnnotationTarget"] = "move-point-annotation-target"; - // - DocCommands["MoveReferenceLine"] = "move-reference-line"; - // - DocCommands["MoveRowTotals"] = "move-row-totals"; - // - DocCommands["NavigateToSheet"] = "navigate-to-sheet"; - // - DocCommands["PostCalcJoinClauseResult"] = "post-calc-join-clause-result"; - // - DocCommands["NewDocDashboard"] = "new-dashboard"; - // - DocCommands["NewDocStoryboard"] = "new-storyboard"; - // - DocCommands["NewDocWorksheet"] = "new-worksheet"; - // - DocCommands["NonRangedRemoveReferenceLine"] = "non-ranged-remove-reference-line"; - // - DocCommands["OptimizeExtract"] = "optimize-extract"; - // - DocCommands["OptOutActions"] = "opt-out-actions"; - // - DocCommands["PageHistorySettings"] = "page-history-settings"; - // - DocCommands["PageToggleTrails"] = "page-toggle-trails"; - // - DocCommands["PanePan"] = "pane-pan"; - // - DocCommands["PaneZoom"] = "pane-zoom"; - // - DocCommands["PaneZoomFactor"] = "pane-zoom-factor"; - // - DocCommands["PaneZoomPan"] = "pane-zoom-pan"; - // - DocCommands["ParseUIName"] = "parse-ui-name"; - // - DocCommands["Percentages"] = "percentages"; - // - DocCommands["Perspectives"] = "perspectives"; - // - DocCommands["PositionPointAnnotation"] = "position-point-annotation"; - // - DocCommands["ProtocolPoolLog"] = "protocol-pool-log"; - // - DocCommands["PublishToWorkgroup"] = "publish-to-workgroup"; - // - DocCommands["PublishDataSource"] = "publish-datasource"; - // - DocCommands["PublishDataSourceFromData"] = "publish-data-source-from-data"; - // - DocCommands["PublishDataSourceFromWorkbookData"] = "publish-data-source-from-workbook-data"; - // - DocCommands["QuantitativeQuickFilterEdit"] = "quantitative-quick-filter-edit"; - // - DocCommands["QuantitativeModeQuickFilter"] = "quantitative-mode-quick-filter"; - // - DocCommands["QueryMigrateDataSources"] = "query-migrate-data-sources"; - // - DocCommands["QuickSort"] = "quick-sort"; - // - DocCommands["RangedByIndexMerge"] = "ranged-by-index-merge"; - // - DocCommands["RangedByValueMerge"] = "ranged-by-value-merge"; - // - DocCommands["Record"] = "record"; - // - DocCommands["Redo"] = "redo"; - // - DocCommands["RefreshExtract"] = "refresh-extract"; - // - DocCommands["RefreshFromSource"] = "refresh-from-source"; - // - DocCommands["RelativeDateQuickFilterEdit"] = "relative-date-quick-filter-edit"; - // - DocCommands["RemoveAllReferenceLines"] = "remove-all-reference-lines"; - // - DocCommands["RemoveDrillPath"] = "remove-drill-path"; - // - DocCommands["RemoveExtract"] = "remove-extract"; - // - DocCommands["RemoveFieldFolder"] = "remove-field-folder"; - // - DocCommands["RemoveFieldLabel"] = "remove-field-label"; - // - DocCommands["RemoveFields"] = "remove-fields"; - // - DocCommands["RemoveFieldsFromShelf"] = "remove-fields-from-shelf"; - // - DocCommands["RemoveFromDrillPath"] = "remove-from-drill-path"; - // - DocCommands["RemoveFromFieldFolder"] = "remove-from-field-folder"; - // - DocCommands["RemoveReferenceLine"] = "remove-reference-line"; - // - DocCommands["RemoveSubtotals"] = "remove-subtotals"; - // - DocCommands["RenameDataSource"] = "rename-data-source"; - // - DocCommands["RenameDrillPath"] = "rename-drill-path"; - // - DocCommands["RenameFieldFolder"] = "rename-field-folder"; - // - DocCommands["RenameSheet"] = "rename-sheet"; - // - DocCommands["ReorderLabels"] = "reorder-labels"; - // - DocCommands["ReportBug"] = "report-bug"; - // - DocCommands["RequestDataSourcePresModel"] = "request-datasource-pres-model"; - // - DocCommands["ResetParameterCtrlTitle"] = "reset-parameter-ctrl-title"; - // - DocCommands["ResetTooltip"] = "reset-tooltip"; - // - DocCommands["ResizeAreaAnnotationText"] = "resize-area-annotation-text"; - // - DocCommands["ResizeAxis"] = "resize-axis"; - // - DocCommands["ResizeCell"] = "resize-cell"; - // - DocCommands["ResizeHeader"] = "resize-header"; - // - DocCommands["ResizePointAnnotation"] = "resize-point-annotation"; - // - DocCommands["Revert"] = "revert"; - // - DocCommands["RotateFieldLabel"] = "rotate-field-label"; - // - DocCommands["RotateLabel"] = "rotate-label"; - // - DocCommands["SplitFieldLabel"] = "split-field-label"; - // - DocCommands["RunAction"] = "run-action"; - // - DocCommands["RunScript"] = "run-script"; - // - DocCommands["RunUpdates"] = "run-update"; - // - DocCommands["SaveModel"] = "save-model"; - // - DocCommands["SavePublishedDStoFile"] = "save-published-ds-to-file"; - // - DocCommands["SelectDataSource"] = "select-data-source"; - // - DocCommands["SelectFieldsInShelf"] = "select-fields-in-shelf"; - // - DocCommands["SendDataConnectionTableViewMessage"] = "send-data-connection-tableview-message"; - // - DocCommands["SetActiveDataSourceName"] = "set-active-data-source-name"; - // - DocCommands["SetActiveConnectionName"] = "set-active-connection-name"; - // - DocCommands["SetActiveDataSource"] = "set-active-datasource"; - // - DocCommands["SetBasePalette"] = "set-base-palette"; - // - DocCommands["SetCategoricalColor"] = "set-categorical-color"; - // - DocCommands["SetDataCacheDelta"] = "set-data-cache-delta"; - // - DocCommands["SetDataPreviewAutoUpdate"] = "set-data-preview-auto-update"; - // - DocCommands["SetDataPreviewCustomFieldOrder"] = "set-data-preview-custom-field-order"; - // - DocCommands["SetDefaultColor"] = "set-default-color"; - // - DocCommands["SetDefaultShape"] = "set-default-shape"; - // - DocCommands["SetFilterContext"] = "set-filter-context"; - // - DocCommands["SetFilterShared"] = "set-filter-shared"; - // - DocCommands["SetInitialSQL"] = "set-initial-sql"; - // - DocCommands["SetItemColor"] = "set-item-color"; - // - DocCommands["SetItemColorResetCustomization"] = "set-item-color-reset-customization"; - // - DocCommands["SetItemEncodingType"] = "set-item-encoding-type"; - // - DocCommands["SetMarkSize"] = "set-mark-size"; - // - DocCommands["SetPageNavFlag"] = "set-page-flag"; - // - DocCommands["SetParameterCtrlDisplayFlags"] = "set-parameter-ctrl-display-flags"; - // - DocCommands["SetParameterCtrlDisplayMode"] = "set-parameter-ctrl-display-mode"; - // - DocCommands["SetParameterCtrlTitle"] = "set-parameter-ctrl-title"; - // - DocCommands["SetParameterValue"] = "set-parameter-value"; - // - DocCommands["SetPrimitive"] = "set-primitive"; - // - DocCommands["SetQueryBanding"] = "set-query-banding"; - // - DocCommands["SetQuickFilterIncludedValues"] = "set-quick-filter-included"; - // - DocCommands["SetReferenceLineFormula"] = "set-reference-line-formula"; - // - DocCommands["SetReferenceLineConstantValue"] = "set-reference-line-constant-value"; - // - DocCommands["SetSheetFormatting"] = "set-sheet-formatting"; - // - DocCommands["SetSheetSize"] = "set-sheet-size"; - // - DocCommands["SetTotalsType"] = "set-totals-type"; - // - DocCommands["SetWorkbookLocale"] = "set-workbook-locale"; - // - DocCommands["ShowCatCtrlQuickFilter"] = "show-cat-ctrl-quick-filter"; - // - DocCommands["ShowColFieldNamesFlag"] = "show-col-field-names"; - // - DocCommands["ShowColTotalsFlag"] = "show-col-totals"; - // - DocCommands["ShowColumnFieldLabel"] = "show-column-field-label"; - // - DocCommands["ShowEmptyColsFlag"] = "show-empty-cols"; - // - DocCommands["ShowEmptyRowsFlag"] = "show-empty-rows"; - // - DocCommands["ShowForecastEditor"] = "show-forecast-editor"; - // - DocCommands["ShowFullRange"] = "show-full-range"; - // - DocCommands["ShowHeader"] = "show-header"; - // - DocCommands["ShowHiddenData"] = "show-hidden-data"; - // - DocCommands["ShowMe"] = "show-me"; - // - DocCommands["ShowQuantCtrlQuickFilter"] = "show-quant-ctrl-quick-filter"; - // - DocCommands["ShowQuickFilterDoc"] = "show-quickfilter-doc"; - // - DocCommands["ShowReferenceLineEditor"] = "show-reference-line-editor"; - // - DocCommands["ShowReferenceLineConstantValueEditor"] = "show-reference-line-constant-value-editor"; - // - DocCommands["ShowReferenceLineFormatter"] = "show-reference-line-formatter"; - // - DocCommands["ShowRowFieldLabel"] = "show-row-field-label"; - // - DocCommands["ShowRowFieldNamesFlag"] = "show-row-field-names"; - // - DocCommands["ShowRowTotalsFlag"] = "show-row-totals"; - // - DocCommands["SimpleCommandList"] = "simple-command-list"; - // - DocCommands["Sleep"] = "sleep"; - // - DocCommands["SleepBackgroundThread"] = "sleep-background-thread"; - // - DocCommands["SortDataGridByColumn"] = "sort-datagrid-by-column"; - // - DocCommands["SortDataGridFields"] = "sort-datagrid-fields"; - // - DocCommands["SpecialValues"] = "special-values"; - // - DocCommands["SplitField"] = "split-field"; - // - DocCommands["StackMarks"] = "stack-marks"; - // - DocCommands["StackOverflowCrash"] = "stack-overflow"; - // - DocCommands["SubtotalAggregation"] = "subtotal-aggregation"; - // - DocCommands["Subtotals"] = "subtotals"; - // - DocCommands["SwapFields"] = "swap-fields"; - // - DocCommands["SwapRowsAndColumns"] = "swap-rows-and-columns"; - // - DocCommands["TableauException"] = "tableau-exception"; - // - DocCommands["Theme"] = "theme"; - // - DocCommands["ToggleDropLines"] = "toggle-drop-lines"; - // - DocCommands["ToggleFieldBlending"] = "toggle-field-blending"; - // - DocCommands["ToggleMarkLabels"] = "toggle-mark-labels"; - // - DocCommands["TogglePageTitle"] = "toggle-page-title"; - // - DocCommands["ToggleParameterCtrlDisplayFlag"] = "toggle-parameter-ctrl-display-flag"; - // - DocCommands["ToggleParameterCtrlTitle"] = "toggle-parameter-ctrl-title"; - // - DocCommands["ToggleQuickFilterTitle"] = "toggle-quick-filter-title"; - // - DocCommands["ToggleVizNavigationSetting"] = "toggle-viz-navigation-setting"; - // - DocCommands["Undo"] = "undo"; - // - DocCommands["UnhideData"] = "unhide-data"; - // - DocCommands["UnhideLabel"] = "unhide-label"; - // - DocCommands["UpdateAreaAnnotation"] = "update-area-annotation"; - // - DocCommands["UpdateCalcScopeIsolation"] = "update-scope-isolation-for-calculation"; - // - DocCommands["UpdateDataServerConnectionInfo"] = "update-data-server-connection-info"; - // - DocCommands["UpdatePointAnnotationPullback"] = "update-point-annotation-pullback"; - // - DocCommands["UpdateTableCalcInfo"] = "update-table-calc-infomation"; - // - DocCommands["UpgradeExtract"] = "upgrade-extract"; - // - DocCommands["UseExtract"] = "use-extract"; - // - DocCommands["ValidateDrillPathName"] = "validate-drill-path-name"; - // - DocCommands["ValidateFormula"] = "validate-formula"; - // - DocCommands["ValidateInitialSQL"] = "validate-initial-sql"; - // - DocCommands["ValidateQueryBanding"] = "validate-query-banding"; - // - DocCommands["ValidateTypeInPill"] = "validate-type-in-pill"; - // - DocCommands["ViewParameterCtrls"] = "view-param-ctrls"; - // - DocCommands["ViewQuickFilters"] = "view-quick-filters"; - // - DocCommands["ZoomLevel"] = "zoom-level"; - // - DocCommands["OnToggleAxisRanges"] = "on-toggle-axis-ranges"; - // - DocCommands["ReorderFoldedAxes"] = "reorder-folded-axes"; - // - DocCommands["ResetAxisRange"] = "reset-axis-range"; - // - DocCommands["SelectAxisTuples"] = "select-axis-tuples"; - // - DocCommands["SwapReferenceLineFields"] = "swap-reference-line-fields"; - // - DocCommands["SynchronizeAxis"] = "synchronize-axis"; - // - DocCommands["ToggleDualAxis"] = "toggle-dual-axis"; - })(DocCommands = exports.DocCommands || (exports.DocCommands = {})); - - -/***/ }, -/* 13 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Registry which contains mappings from an Api VerbId to a pres-layer command. - * This includes the parameters and return values of the command as well - * - * @export - * @class CommandMappingRegistry - */ - var CommandMappingRegistry = (function () { - /** - * Creates an instance of CommandMappingRegistry. - * @memberof CommandMappingRegistry - */ - function CommandMappingRegistry() { - this._commands = {}; - } - /** - * Adds a new command to the registry - * - * @param {CommandRegistration} command - * @memberof CommandMappingRegistry - */ - CommandMappingRegistry.prototype.addCommand = function (command) { - this._commands[command.apiVerbId] = command; - }; - /** - * Whether or not this registry contains a definition for this ApiVerbId - * - * @param {ApiVerbId} apiVerbId - * @returns {boolean} - * @memberof CommandMappingRegistry - */ - CommandMappingRegistry.prototype.hasCommand = function (apiVerbId) { - if (!this._commands.hasOwnProperty(apiVerbId)) { - return false; - } - if (!this._commands[apiVerbId]) { - return false; - } - return true; - }; - /** - * Gets the command registration for this command id or throws if it doesn't exist - * - * @param {ApiVerbId} apiVerbId - * @returns {CommandRegistration} - * @memberof CommandMappingRegistry - */ - CommandMappingRegistry.prototype.getCommand = function (apiVerbId) { - if (!this.hasCommand(apiVerbId)) { - throw new Error('Unknown ApiVerb: ' + apiVerbId); - } - return this._commands[apiVerbId]; - }; - return CommandMappingRegistry; - }()); - exports.CommandMappingRegistry = CommandMappingRegistry; - - -/***/ }, -/* 14 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(4); - /** - * Represents an input or output paramter for a command. - * - * @export - * @class CommandParameter - */ - var CommandParameter = (function () { - /** - * Creates an instance of CommandParameter. - * @param {ApiParameterId} apiId - * @param {PresLayerParameterId} presLayerId - * @param {boolean} [isOptional] - * @memberof CommandParameter - */ - function CommandParameter(_apiId, _presLayerId, _isOptional) { - this._apiId = _apiId; - this._presLayerId = _presLayerId; - this._isOptional = _isOptional; - } - Object.defineProperty(CommandParameter.prototype, "apiId", { - /** - * The Id of the Api Parameter - * - * @readonly - * @type {ApiParameterId} - * @memberof CommandParameter - */ - get: function () { - return this._apiId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CommandParameter.prototype, "presLayerId", { - /** - * The Id of the Pres Layer Parameter - * - * @readonly - * @type {PresLayerParameterId} - * @memberof CommandParameter - */ - get: function () { - return this._presLayerId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CommandParameter.prototype, "isOptional", { - /** - * Whether or not this is an optional parameter - * - * @readonly - * @type {boolean} - * @memberof CommandParameter - */ - get: function () { - return !!this._isOptional; - }, - enumerable: true, - configurable: true - }); - return CommandParameter; - }()); - exports.CommandParameter = CommandParameter; - /** - * Represents a the complete mapping of an ApiCommand to its corresponding pres-layer command - * and the conversion of the output value as well - * - * @export - * @class CommandRegistration - */ - var CommandRegistration = (function () { - function CommandRegistration(_apiVerbId, _commandId, _inputParameters, _outputParameter) { - this._apiVerbId = _apiVerbId; - this._commandId = _commandId; - this._inputParameters = _inputParameters; - this._outputParameter = _outputParameter; - } - Object.defineProperty(CommandRegistration.prototype, "apiVerbId", { - get: function () { - return this._apiVerbId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CommandRegistration.prototype, "commandId", { - get: function () { - return this._commandId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CommandRegistration.prototype, "inputs", { - get: function () { - return this._inputParameters || new Array(); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CommandRegistration.prototype, "output", { - get: function () { - return this._outputParameter; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CommandRegistration.prototype, "needsAddInLocator", { - /** - * Whether or not this command requires an add-in locator to be injected into it - * - * @readonly - * @type {boolean} - * @memberof CommandRegistration - */ - get: function () { - for (var _i = 0, _a = this.inputs; _i < _a.length; _i++) { - var input = _a[_i]; - if (input.apiId === api_internal_contract_1.ParameterId.AddInLocator) { - return true; - } - } - return false; - }, - enumerable: true, - configurable: true - }); - /** - * Creates a dictionary of pres-layer parameters from the input dictionary - * of api parameters. - * - * @param {ExecuteParameters} parameters - The parameters to convert - * @param {ApiToPresLayerMappingRegistry} apiToPresLayer - mapping to determine the conversion - * @returns {{ [paramId: string]: object; }} - parameters to send to the pres-layer - * @memberof CommandRegistration - */ - CommandRegistration.prototype.createParams = function (parameters, apiToPresLayer) { - var result = {}; - for (var _i = 0, _a = this.inputs; _i < _a.length; _i++) { - var inputParam = _a[_i]; - // First make sure the parameter is there or that it's optional - if (!parameters.hasOwnProperty(inputParam.apiId)) { - if (inputParam.isOptional) { - continue; - } - else { - throw new Error('Missing parameter for command: ' + inputParam.apiId); - } - } - // Find the conversion function for this parameter - var conversionFn = apiToPresLayer.get(inputParam.apiId, inputParam.presLayerId); - // Convert the pres model and insert it into our results object - result[inputParam.presLayerId] = conversionFn(parameters[inputParam.apiId]); - } - return result; - }; - /** - * Processes the result received back after executing a pres-layer command - * - * @param {{ [docParamId: string]: object; }} resultParameters - * @param {PresLayerToApiMappingRegistry} presLayerToApi - * @returns {Model} - * @memberof CommandRegistration - */ - CommandRegistration.prototype.ProcessResult = function (resultParameters, presLayerToApi) { - // TODO: Add error handling - if (this.output === undefined) { - var noOutputModel = {}; - return noOutputModel; - } - if (!resultParameters || !resultParameters.hasOwnProperty(this.output.presLayerId)) { - // if the output result is marked as optional, we don't consider this an error situation and just return an empty model - if (this.output.isOptional) { - return {}; - } - throw new Error('Missing expected result parameter: ' + this.output.presLayerId); - } - var conversionFn = presLayerToApi.get(this.output.presLayerId, this.output.apiId); - return conversionFn(resultParameters[this.output.presLayerId]); - }; - return CommandRegistration; - }()); - exports.CommandRegistration = CommandRegistration; - - -/***/ }, -/* 15 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(4); - var Events_1 = __webpack_require__(16); - var PresLayerToApiConverter_1 = __webpack_require__(17); - /** - * Simple wrapper which holds a mapping to go from a pres-layer event to an API event - */ - var EventMappingRegistration = (function () { - function EventMappingRegistration(_presLayerId, _apiId, _converter) { - this._presLayerId = _presLayerId; - this._apiId = _apiId; - this._converter = _converter; - } - Object.defineProperty(EventMappingRegistration.prototype, "presLayerId", { - get: function () { - return this._presLayerId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventMappingRegistration.prototype, "apiId", { - get: function () { - return this._apiId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventMappingRegistration.prototype, "converter", { - get: function () { - return this._converter; - }, - enumerable: true, - configurable: true - }); - return EventMappingRegistration; - }()); - exports.EventMappingRegistration = EventMappingRegistration; - var EventMappingRegistryFactory = (function () { - function EventMappingRegistryFactory() { - } - /** - * Creates and populates a new EventMappingRegistry for the specific version number requested - * - * @param {VersionNumber} versionNumber - * @returns {EventMappingRegistry} - */ - EventMappingRegistryFactory.createEventMappingRegistry = function (versionNumber) { - var registry = {}; - registry[Events_1.NotificationId.SelectionChanged] = new EventMappingRegistration(Events_1.NotificationId.SelectionChanged, api_internal_contract_1.NotificationId.SelectedMarksChanged, PresLayerToApiConverter_1.PresLayerToApiConverter.convertVisualId); - registry[Events_1.NotificationId.ParameterChanged] = new EventMappingRegistration(Events_1.NotificationId.ParameterChanged, api_internal_contract_1.NotificationId.ParameterChanged, PresLayerToApiConverter_1.PresLayerToApiConverter.convertFieldCaptionPair); - registry[Events_1.NotificationId.FilterChanged] = new EventMappingRegistration(Events_1.NotificationId.FilterChanged, api_internal_contract_1.NotificationId.FilterChanged, PresLayerToApiConverter_1.PresLayerToApiConverter.convertFilterEvent); - return registry; - }; - return EventMappingRegistryFactory; - }()); - exports.EventMappingRegistryFactory = EventMappingRegistryFactory; - - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - "use strict"; - /* tslint:disable */ - // ----------------------------------------------------------------------------- - // - // This file is the copyrighted property of Tableau Software and is protected - // by registered patents and other applicable U.S. and international laws and - // regulations. - // - // Unlicensed use of the contents of this file is prohibited. Please refer to - // the NOTICES.txt file for further details. - // - // ----------------------------------------------------------------------------- - // WARNING: Computer generated file. Do not hand modify. - // DEPENDS ON: ['..\\typescript\\js-api\\api-core\\node_modules\\@tableau\\preslayer-codegen-typescript\\templates\\events-ts.template', u'..\\typescript\\js-api\\api-core\\temp-pres-layer\\all-events.data'] - Object.defineProperty(exports, "__esModule", { value: true }); - // Events you can register to receive presentation models - var NotificationId; - (function (NotificationId) { - // Triggered when aliases are to be edited. Used to launch a dialog. - NotificationId["EditAliasesDialogNotification"] = "edit-aliases-dialog-notification-event"; - // for the calculation dialog - NotificationId["CalculationDialog"] = "calculation-dialog-event"; - // update for an adhoc calc in a type in pill - NotificationId["TypeInPill"] = "type-in-pill-event"; - // results of a validation command - NotificationId["CommandValidation"] = "command-validation-event"; - // event for the groups dialog - NotificationId["UpdateCategoricalBinEditDialog"] = "update-categorical-bin-edit-dialog-event"; - // for the categorical color dialog - NotificationId["CategoricalColor"] = "categorical-color-event"; - // update the web categorical color dialog - NotificationId["WebCategoricalColorDialog"] = "web-categorical-color-dialog-event"; - // user invoked action which requires a Data Alert Dialog - NotificationId["DataAlertDialog"] = "data-alert-dialog-event"; - // event for when the data source being edited is updated - NotificationId["UpdateDataPreparation"] = "update-data-preparation-event"; - // event for when the data source data is updated - NotificationId["UpdateDataSourceData"] = "update-data-source-data-event"; - // event for when a client should request new data source or data source data pres models - NotificationId["DataSourceUpdateNeeded"] = "data-source-update-needed-event"; - // event for getting the pres model to update file join table properties - NotificationId["TextFileProperties"] = "text-file-properties-event"; - // event for the detailed error dialog - NotificationId["UpdateDetailedErrorDialog"] = "update-detailed-error-dialog-event"; - // notify changes to the state of a filter's relational model - NotificationId["FilterRelationalStateChanged"] = "filter-relational-state-changed-event"; - // notify changes to the size/selection count of a relational domain - NotificationId["FilterRelationalDomainChanged"] = "filter-relational-domain-changed-event"; - // notify when filter cache was requested but not found - NotificationId["FilterCacheNotFound"] = "filter-cache-not-found-event"; - // Hierarchy Select model observable notification. - NotificationId["HierarchyNotification"] = "hierarchy-notification-event"; - // Hierarchy selection change notifications. - NotificationId["HierarchySelection"] = "hierarchy-selection-event"; - // event for the bin dialog - NotificationId["UpdateNumericBinEditDialog"] = "update-numeric-bin-edit-dialog-event"; - // event for the map options dialog - NotificationId["MapOptionsDialog"] = "map-options-dialog-event"; - // notify the Page UI(hide/show states, layout) needs to be updated - NotificationId["UpdatePageUINotification"] = "update-page-uinotification-event"; - // notify to the SceneView has been drawn. - NotificationId["SceneViewDrawnNotification"] = "scene-view-drawn-notification-event"; - // The AnimationControlChange event fires when the user clicks an animation playback button: forward, stop, slow, fast, etc. - NotificationId["AnimationControlChange"] = "animation-control-change-event"; - // notify the sheet has been renamed - NotificationId["RenameSheetNotification"] = "rename-sheet-notification-event"; - // update the web quantitative color dialog - NotificationId["WebQuantitativeColorDialog"] = "web-quantitative-color-dialog-event"; - // update the axis edit dialog - NotificationId["UpdateEditAxisDialog"] = "update-edit-axis-dialog-event"; - // event for the reference line dialog, which is only valid during web authoring - NotificationId["UpdateRefLineDialog"] = "update-ref-line-dialog-event"; - // event to trigger other reference line dialogs to close - NotificationId["RefLineDialogOpening"] = "ref-line-dialog-opening-event"; - // event for the close data source error dialog, which is only valid during web authoring - NotificationId["CloseDataSourceErrorDialog"] = "close-data-source-error-dialog-event"; - // update the web Save Datasource dialog - NotificationId["WebSaveDatasourceDialog"] = "web-save-datasource-dialog-event"; - // warning resulting from WarningMsg - NotificationId["WarningMessage"] = "warning-message-event"; - // event for the table calc dialog, on web, this is only valid during web authoring - NotificationId["TableCalcDialog"] = "table-calc-dialog-event"; - // user invoked action which requires Table Calc Dialog - NotificationId["TableCalcActivateDialog"] = "table-calc-activate-dialog-event"; - // event for the trend line dialog - NotificationId["UpdateTrendLineEditDialog"] = "update-trend-line-edit-dialog-event"; - // The table page cache has been refreshed; pages must be reloaded from the cache. - NotificationId["PageCacheRefresh"] = "page-cache-refresh-event"; - // The table page cache has expired and all resources have been released. - NotificationId["PageCacheExpired"] = "page-cache-expired-event"; - // All pages, identified by row/col, in the provided list have expired and should be reloaded. - NotificationId["PageCachePagesExpired"] = "page-cache-pages-expired-event"; - // All pages betweem the range (inclusive) in the provided list have expired and should be reloaded. - NotificationId["PageCachePageRangeExpired"] = "page-cache-page-range-expired-event"; - // Update for the rich text editor dialog - NotificationId["RichTextEditorDialog"] = "rich-text-editor-dialog-event"; - // notification to launch the hybrid UI showcase - NotificationId["LaunchHybridUIShowcase"] = "launch-hybrid-uishowcase-event"; - // notification of new echoed text for HybridUI showcase demo - NotificationId["HybridUIShowcaseEcho"] = "hybrid-uishowcase-echo-event"; - // Triggered when the user wants to reload an add-in instance. - NotificationId["ReloadAddIn"] = "reload-add-in-event"; - // Triggered when the selected marks have changed. - NotificationId["SelectionChanged"] = "selection-changed-event"; - // Triggered when the value of a parameter has changed. Emits the name and caption of the parameter - NotificationId["ParameterChanged"] = "parameter-changed-event"; - // Triggered when the filters have changed. - NotificationId["FilterChanged"] = "filter-changed-event"; - // a test event with a pres model - NotificationId["TestEventWithModel"] = "test-event-with-model-event"; - // a test event without a pres model - NotificationId["TestEventWithoutModel"] = "test-event-without-model-event"; - })(NotificationId = exports.NotificationId || (exports.NotificationId = {})); - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var EnumMappings_1 = __webpack_require__(18); - /** - * Class containing helper methods for converting from PresLayerPresModels to their ApiPresModels equivalents - * - * @export - * @class PresLayerToApiConverter - */ - var PresLayerToApiConverter = (function () { - function PresLayerToApiConverter() { - } - PresLayerToApiConverter.convertSheetPath = function (plSheetPath) { - var result = { - sheetName: plSheetPath.sheetName, - isDashboard: plSheetPath.isDashboard, - storyboard: plSheetPath.storyboard, - flipboardZoneID: plSheetPath.flipboardZoneId, - storyPointID: plSheetPath.storyPointId, - }; - return result; - }; - PresLayerToApiConverter.convertVisualId = function (plVisualId) { - var result = { - worksheet: plVisualId.worksheet, - dashboard: plVisualId.dashboard, - storyboard: plVisualId.storyboard, - flipboardZoneID: plVisualId.flipboardZoneId, - storyPointID: plVisualId.storyPointId, - }; - return result; - }; - PresLayerToApiConverter.convertAddInLocator = function (plAddInLocator) { - var dashboardPath = undefined; - if (plAddInLocator.sheetPath) { - dashboardPath = PresLayerToApiConverter.convertSheetPath(plAddInLocator.sheetPath); - } - var result = { - instanceId: plAddInLocator.addInInstanceId, - dashboardPath: dashboardPath - }; - return result; - }; - PresLayerToApiConverter.convertDashboardInZones = function (plDashboard) { - var result = new Array(); - for (var _i = 0, _a = Object.keys(plDashboard.zones); _i < _a.length; _i++) { - var zoneKey = _a[_i]; - var zone = plDashboard.zones[zoneKey]; - var apiZone = { - name: zone.zoneCommon.name, - zoneId: zone.zoneId, - zoneType: EnumMappings_1.PresLayerToApiEnumMappings.zoneType.convert(zone.zoneCommon.zoneType), - height: zone.zoneCommon.h, - width: zone.zoneCommon.w, - x: zone.zoneCommon.x, - y: zone.zoneCommon.y - }; - result.push(apiZone); - } - return result; - }; - PresLayerToApiConverter.convertDashboardInfo = function (plDashboardInfo) { - var result = { - zones: PresLayerToApiConverter.convertDashboardInZones(plDashboardInfo.dashboardPresModel), - name: plDashboardInfo.dashboardPresModel.sheetPath.sheetName, - addInZoneId: plDashboardInfo.zoneId - }; - return result; - }; - PresLayerToApiConverter.convertAddInInstance = function (plAddInInstance) { - var result = { - url: plAddInInstance.addInRegistrationPresModel.url, - locator: PresLayerToApiConverter.convertAddInLocator(plAddInInstance.addInLocatorPresModel) - }; - return result; - }; - PresLayerToApiConverter.convertAddInEnivrionment = function (plAddInEnvironment) { - var result = { - addInContext: EnumMappings_1.PresLayerToApiEnumMappings.addInContext.convert(plAddInEnvironment.addInContext), - addInMode: EnumMappings_1.PresLayerToApiEnumMappings.addInMode.convert(plAddInEnvironment.addInMode), - addInLocale: plAddInEnvironment.addInLocale, - addInLanguage: plAddInEnvironment.addInLanguage, - tableauVersion: plAddInEnvironment.tableauVersion, - operatingSystem: plAddInEnvironment.operatingSystem, - apiVersion: plAddInEnvironment.apiVersion - }; - return result; - }; - PresLayerToApiConverter.convertAddInSettingsInfo = function (plAddInSettings) { - var result = { - // addInSettings is undefined during bootstrap initialization - settingsValues: plAddInSettings.addInSettings || {} - }; - return result; - }; - PresLayerToApiConverter.convertAddInBootstrapInfo = function (plBootstrapInfo) { - var result = { - addinDashboardInfo: PresLayerToApiConverter.convertDashboardInfo(plBootstrapInfo.addInDashboardInfoPresModel), - addInEnvironment: PresLayerToApiConverter.convertAddInEnivrionment(plBootstrapInfo.addInEnvironmentPresModel), - addInInstance: PresLayerToApiConverter.convertAddInInstance(plBootstrapInfo.addInInstancePresModel), - addInSettingsInfo: PresLayerToApiConverter.convertAddInSettingsInfo(plBootstrapInfo.addInSettingsInfo) - }; - return result; - }; - PresLayerToApiConverter.convertFieldCaptionPair = function (plFieldCaptionPair) { - return plFieldCaptionPair.fn; - }; - PresLayerToApiConverter.convertFilterEvent = function (plFilterEvent) { - var result = { - visualId: PresLayerToApiConverter.convertVisualId(plFilterEvent.visualIdPresModel), - fieldName: plFilterEvent.fieldCaption - }; - return result; - }; - return PresLayerToApiConverter; - }()); - exports.PresLayerToApiConverter = PresLayerToApiConverter; - - -/***/ }, -/* 18 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(4); - var api_utils_1 = __webpack_require__(19); - var Enums = __webpack_require__(22); - /* tslint:disable:typedef - Disable this to make declaring these classes a bit easier */ - var PresLayerToApiEnumMappings = (function () { - function PresLayerToApiEnumMappings() { - } - PresLayerToApiEnumMappings.zoneType = new api_utils_1.EnumConverter((_a = {}, - _a[Enums.ZoneType.ZT_Invalid] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_Viz] = api_internal_contract_1.DashboardObjectType.Worksheet, - _a[Enums.ZoneType.ZT_ColorLegend] = api_internal_contract_1.DashboardObjectType.Legend, - _a[Enums.ZoneType.ZT_ShapeLegend] = api_internal_contract_1.DashboardObjectType.Legend, - _a[Enums.ZoneType.ZT_SizeLegend] = api_internal_contract_1.DashboardObjectType.Legend, - _a[Enums.ZoneType.ZT_MapLegend] = api_internal_contract_1.DashboardObjectType.Legend, - _a[Enums.ZoneType.ZT_QuickFilter] = api_internal_contract_1.DashboardObjectType.QuickFilter, - _a[Enums.ZoneType.ZT_Highlighter] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_CurrPage] = api_internal_contract_1.DashboardObjectType.PageFilter, - _a[Enums.ZoneType.ZT_Empty] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_Title] = api_internal_contract_1.DashboardObjectType.Title, - _a[Enums.ZoneType.ZT_Text] = api_internal_contract_1.DashboardObjectType.Text, - _a[Enums.ZoneType.ZT_Bitmap] = api_internal_contract_1.DashboardObjectType.Image, - _a[Enums.ZoneType.ZT_Web] = api_internal_contract_1.DashboardObjectType.WebPage, - _a[Enums.ZoneType.ZT_AddIn] = api_internal_contract_1.DashboardObjectType.AddIn, - _a[Enums.ZoneType.ZT_ParamCtrl] = api_internal_contract_1.DashboardObjectType.ParameterControl, - _a[Enums.ZoneType.ZT_FlipboardNav] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_Flipboard] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_LayoutBasic] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_LayoutFlow] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_LayoutFreeForm] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_End] = api_internal_contract_1.DashboardObjectType.Blank, - _a), api_internal_contract_1.DashboardObjectType.Blank); - PresLayerToApiEnumMappings.addInContext = new api_utils_1.EnumConverter((_b = {}, - _b[Enums.AddInContext.Unknown] = api_internal_contract_1.AddInContext.Unknown, - _b[Enums.AddInContext.Desktop] = api_internal_contract_1.AddInContext.Desktop, - _b[Enums.AddInContext.Server] = api_internal_contract_1.AddInContext.Server, - _b)); - PresLayerToApiEnumMappings.addInMode = new api_utils_1.EnumConverter((_c = {}, - _c[Enums.AddInMode.Unknown] = api_internal_contract_1.AddInMode.Unknown, - _c[Enums.AddInMode.Authoring] = api_internal_contract_1.AddInMode.Authoring, - _c[Enums.AddInMode.Viewing] = api_internal_contract_1.AddInMode.Viewing, - _c)); - PresLayerToApiEnumMappings.dataType = new api_utils_1.EnumConverter((_d = {}, - _d[Enums.DataType.DT_BOOLEAN] = api_internal_contract_1.DataType.Bool, - _d[Enums.DataType.DT_DATE] = api_internal_contract_1.DataType.Date, - _d[Enums.DataType.DT_DATETIME] = api_internal_contract_1.DataType.DateTime, - _d[Enums.DataType.DT_INTEGER] = api_internal_contract_1.DataType.Int, - _d[Enums.DataType.DT_REAL] = api_internal_contract_1.DataType.Float, - _d[Enums.DataType.DT_STRING] = api_internal_contract_1.DataType.String, - _d[Enums.DataType.DT_SPATIAL] = api_internal_contract_1.DataType.Spatial, - _d)); - PresLayerToApiEnumMappings.parameterTypesDomainType = new api_utils_1.EnumConverter((_e = {}, - _e[Enums.ParameterTypesDomainType.Domain_Any] = api_internal_contract_1.DomainRestrictionType.All, - _e[Enums.ParameterTypesDomainType.Domain_List] = api_internal_contract_1.DomainRestrictionType.List, - _e[Enums.ParameterTypesDomainType.Domain_Range] = api_internal_contract_1.DomainRestrictionType.Range, - _e)); - PresLayerToApiEnumMappings.dateStepPeriod = new api_utils_1.EnumConverter((_f = {}, - _f[Enums.DatePeriodType.PeriodYear] = api_internal_contract_1.DateStepPeriod.Years, - _f[Enums.DatePeriodType.PeriodQuarter] = api_internal_contract_1.DateStepPeriod.Quarters, - _f[Enums.DatePeriodType.PeriodMonth] = api_internal_contract_1.DateStepPeriod.Months, - _f[Enums.DatePeriodType.PeriodWeek] = api_internal_contract_1.DateStepPeriod.Weeks, - _f[Enums.DatePeriodType.PeriodDay] = api_internal_contract_1.DateStepPeriod.Days, - _f[Enums.DatePeriodType.PeriodHour] = api_internal_contract_1.DateStepPeriod.Hours, - _f[Enums.DatePeriodType.PeriodMinute] = api_internal_contract_1.DateStepPeriod.Minutes, - _f[Enums.DatePeriodType.PeriodSecond] = api_internal_contract_1.DateStepPeriod.Seconds, - _f)); - return PresLayerToApiEnumMappings; - }()); - exports.PresLayerToApiEnumMappings = PresLayerToApiEnumMappings; - var ApiToPresLayerEnumMappings = (function () { - function ApiToPresLayerEnumMappings() { - } - ApiToPresLayerEnumMappings.filterUpdateType = new api_utils_1.EnumConverter((_a = {}, - _a[api_internal_contract_1.FilterUpdateType.Add] = Enums.FilterUpdateType.ADD, - _a[api_internal_contract_1.FilterUpdateType.All] = Enums.FilterUpdateType.ALL, - _a[api_internal_contract_1.FilterUpdateType.Replace] = Enums.FilterUpdateType.REPLACE, - _a[api_internal_contract_1.FilterUpdateType.Remove] = Enums.FilterUpdateType.REMOVE, - _a)); - ApiToPresLayerEnumMappings.nullOption = new api_utils_1.EnumConverter((_b = {}, - _b[api_internal_contract_1.NullOption.AllValues] = Enums.FiltersQuantitativeIncludedValues.All, - _b[api_internal_contract_1.NullOption.NonNullValues] = Enums.FiltersQuantitativeIncludedValues.NonNull, - _b[api_internal_contract_1.NullOption.NullValues] = Enums.FiltersQuantitativeIncludedValues.Null, - _b)); - return ApiToPresLayerEnumMappings; - }()); - exports.ApiToPresLayerEnumMappings = ApiToPresLayerEnumMappings; - var _a, _b, _c, _d, _e, _f, _a, _b; - /* tslint:enable:typedef */ - - -/***/ }, -/* 19 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - Object.defineProperty(exports, "__esModule", { value: true }); - var EnumConverter_1 = __webpack_require__(20); - exports.EnumConverter = EnumConverter_1.EnumConverter; - var Param_1 = __webpack_require__(21); - exports.Param = Param_1.Param; - - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * This class converts from a source enum value to destination enum - * value given a mapping from source to destination when constructed. - */ - var EnumConverter = (function () { - function EnumConverter(_mappings, _defaultVal) { - this._mappings = _mappings; - this._defaultVal = _defaultVal; - } - EnumConverter.prototype.convert = function (enumVal, throwIfMissing) { - if (this._mappings.hasOwnProperty(enumVal)) { - return this._mappings[enumVal]; - } - if (this._defaultVal !== undefined && !throwIfMissing) { - return this._defaultVal; - } - throw new Error('Mapping not found for ' + enumVal); - }; - return EnumConverter; - }()); - exports.EnumConverter = EnumConverter; - - -/***/ }, -/* 21 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Param = (function () { - function Param() { - } - /** - * Verifies that an incoming parameter is 'truthy' and throws - * an error if it's not. This will throw an error if the value - * is null, undefined, NaN, the empty string, 0, or false. - * - * @param argumentValue value to verify - * @param argumentName name of argument to verify - */ - /*tslint:disable-next-line */ - Param.verifyValue = function (argumentValue, argumentName) { - if (!argumentValue) { - throw new Error('Value is invalid for argument: ' + argumentName); - } - }; - /** - * Verifies that a string is valid. Throws an error if the string is - * null, undefined, or NaN. - * - * @param argumentValue value to verify - * @param argumentName name of argument to verify - */ - Param.verifyString = function (argumentValue, argumentName) { - if (argumentValue === null || argumentValue === undefined) { - throw new Error('String value is invalid for argument: ' + argumentName); - } - }; - /** - * Verifies the value is part of the Enum - * - * String enums are {string : string} dictionaries which are not reverse mappable - * This is an ugly workaround - * @param value value to verify - * @param enumType enum to verify against - */ - /* tslint:disable:no-any */ - Param.isValidEnumValue = function (value, enumType) { - var isValid = false; - Object.keys(enumType).forEach(function (enumKey) { - if (enumType[enumKey] === value.toString()) { - isValid = true; - } - }); - return isValid; - }; - /* tslint:enable:no-any */ - /** - * serializes the date into the format that the server expects. - * @param date the date to serialize - */ - Param.serializeDateForPlatform = function (date) { - var year = date.getUTCFullYear(); - var month = date.getUTCMonth() + 1; - var day = date.getUTCDate(); - var hh = date.getUTCHours(); - var mm = date.getUTCMinutes(); - var sec = date.getUTCSeconds(); - return year + '-' + month + '-' + day + ' ' + hh + ':' + mm + ':' + sec; - }; - Param.serializeBooleanForPlatform = function (bool) { - return bool ? 'true' : 'false'; - }; - Param.serializeNumberForPlatform = function (num) { - return num.toString(10); - }; - /** - * Verifies the params min and max for applying range filter - * @param min range min - * @param max range max - */ - /* tslint:disable:no-any */ - Param.verifyRangeParamType = function (min, max) { - /* tslint:enable:no-any */ - if (!min && !max) { - throw new Error('Missing Parameter: At least one of min or max is required'); - } - if (!Param.isTypeNumber(min) && !Param.isTypeDate(min)) { - throw new Error('Invalid Parameter Type: Only Date and number are allowed for parameter min'); - } - if (!Param.isTypeNumber(max) && !Param.isTypeDate(max)) { - throw new Error('Invalid Parameter Type: Only Date and number are allowed for parameter max'); - } - if (typeof (min) !== typeof (max)) { - throw new Error('Invalid Parameter Type: Parameters min and max should be of the same type'); - } - }; - /** - * Verifies the input is a number - */ - /* tslint:disable:no-any */ - Param.isTypeNumber = function (input) { - return typeof (input) === 'number' || input instanceof Number; - }; - /* tslint:enable:no-any */ - /** - * Verifies the input is a Date - */ - /* tslint:disable:no-any */ - Param.isTypeDate = function (input) { - return input instanceof Date; - }; - /* tslint:enable:no-any */ - /* tslint:disable-next-line:no-any */ - Param.isTypeString = function (input) { - return typeof (input) === 'string' || input instanceof String; - }; - /* tslint:disable-next-line:no-any */ - Param.isTypeBool = function (input) { - return typeof (input) === 'boolean' || input instanceof Boolean; - }; - /* tslint:disable-next-line:no-any */ - Param.serializeParamterValue = function (value) { - if (Param.isTypeNumber(value)) { - return Param.serializeNumberForPlatform(value); - } - else if (Param.isTypeDate(value)) { - return Param.serializeDateForPlatform(value); - } - else if (Param.isTypeBool(value)) { - return Param.serializeBooleanForPlatform(value); - } - else if (Param.isTypeString(value)) { - return value; - } - else { - throw new Error('Value is invalid for argument: value'); - } - }; - return Param; - }()); - exports.Param = Param; - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - "use strict"; - /* tslint:disable */ - // ----------------------------------------------------------------------------- - // - // This file is the copyrighted property of Tableau Software and is protected - // by registered patents and other applicable U.S. and international laws and - // regulations. - // - // Unlicensed use of the contents of this file is prohibited. Please refer to - // the NOTICES.txt file for further details. - // - // ----------------------------------------------------------------------------- - // WARNING: Computer generated file. Do not hand modify. - // DEPENDS ON: ['..\\typescript\\js-api\\api-core\\node_modules\\@tableau\\preslayer-codegen-typescript\\templates\\enum-ts.template', u'..\\typescript\\js-api\\api-core\\temp-pres-layer\\all-enums.data'] - Object.defineProperty(exports, "__esModule", { value: true }); - // - var DataScaling; - (function (DataScaling) { - // - DataScaling["SCALING_NONE"] = "none"; - // - DataScaling["SCALING_STANDARDIZED"] = "standardized"; - // - DataScaling["SCALING_NORMALIZED"] = "normalized"; - })(DataScaling = exports.DataScaling || (exports.DataScaling = {})); - // - var ForecastModelType; - (function (ForecastModelType) { - // - ForecastModelType["ForecastModelTypeAutoSeason"] = "auto-season"; - // - ForecastModelType["ForecastModelTypeAuto"] = "auto"; - // - ForecastModelType["ForecastModelTypeCustom"] = "custom"; - })(ForecastModelType = exports.ForecastModelType || (exports.ForecastModelType = {})); - // - var ForecastRangeType; - (function (ForecastRangeType) { - // - ForecastRangeType["ForecastRangeTypeAuto"] = "auto"; - // - ForecastRangeType["ForecastRangeTypeNext"] = "next"; - // - ForecastRangeType["ForecastRangeTypeEndOf"] = "end-of"; - })(ForecastRangeType = exports.ForecastRangeType || (exports.ForecastRangeType = {})); - // - var ForecastStatus; - (function (ForecastStatus) { - // - ForecastStatus["FS_VALID"] = "fs-valid"; - // - ForecastStatus["FS_INVALID_DATETIME"] = "fs-invalid-datetime"; - // - ForecastStatus["FS_INVALID_RESPONSE"] = "fs-invalid-response"; - // - ForecastStatus["FS_NEED_MORE_DATA"] = "fs-need-more-data"; - // - ForecastStatus["FS_TIME_SERIES_TOO_SHORT"] = "fs-time-series-too-short"; - // - ForecastStatus["FS_TIME_SERIES_IRREGULAR"] = "fs-time-series-irregular"; - // - ForecastStatus["FS_NULL_DATETIME"] = "fs-null-datetime"; - // - ForecastStatus["FS_NULL_RESPONSE"] = "fs-null-response"; - // - ForecastStatus["FS_METADATA_INVALID"] = "fs-metadata-invalid"; - // - ForecastStatus["FS_NO_RESPONSE"] = "fs-no-response"; - // - ForecastStatus["FS_EXCESS_DATA"] = "fs-excess-data"; - // - ForecastStatus["FS_EXCESS_PARTITIONS"] = "fs-excess-partitions"; - // - ForecastStatus["FS_DIMENSION_INVALID"] = "fs-dimension-invalid"; - // - ForecastStatus["FS_TABLECALC_INVALID"] = "fs-tablecalc-invalid"; - // - ForecastStatus["FS_TIME_SERIES_TOO_IRREGULAR"] = "fs-time-series-too-irregular"; - // - ForecastStatus["FS_AGGREGATE_FILTER"] = "fs-aggregate-filter"; - // - ForecastStatus["FS_DISAGGREGATE_RESPONSE"] = "fs-disaggregate-response"; - // - ForecastStatus["FS_PERCENTAGE_INVALID"] = "fs-percentage-invalid"; - // - ForecastStatus["FS_TOTAL_INVALID"] = "fs-total-invalid"; - // - ForecastStatus["FS_EXCESS_DATETIME"] = "fs-excess-datetime"; - // - ForecastStatus["FS_DATE_AGG_INCOMPATIBLE"] = "fs-date-agg-incompatible"; - // - ForecastStatus["FS_TIME_SERIES_NOT_POSITIVE"] = "fs-time-series-not-positive"; - // - ForecastStatus["FS_REQUESTED_MODEL_INVALID"] = "fs-requested-model-invalid"; - // - ForecastStatus["FS_TOO_SHORT_FOR_SEASON"] = "fs-too-short-for-season"; - // - ForecastStatus["FS_REQUESTED_MODEL_UNSTABLE"] = "fs-requested-model-unstable"; - // - ForecastStatus["FS_UNDEFINED"] = "fs-undefined"; - })(ForecastStatus = exports.ForecastStatus || (exports.ForecastStatus = {})); - // - var StyleAttribute; - (function (StyleAttribute) { - // - StyleAttribute["saAlternateText"] = "saAlternateText"; - // - StyleAttribute["saAltMarkColor"] = "saAltMarkColor"; - // - StyleAttribute["saAspect"] = "saAspect"; - // - StyleAttribute["saAutoSubtitle"] = "saAutoSubtitle"; - // - StyleAttribute["saBackgroundColor"] = "saBackgroundColor"; - // - StyleAttribute["saBackgroundTransparency"] = "saBackgroundTransparency"; - // - StyleAttribute["saBandSize"] = "saBandSize"; - // - StyleAttribute["saBandColor"] = "saBandColor"; - // - StyleAttribute["saBandLevel"] = "saBandLevel"; - // - StyleAttribute["saBodyType"] = "saBodyType"; - // - StyleAttribute["saBorderColor"] = "saBorderColor"; - // - StyleAttribute["saBorderColorTop"] = "saBorderColorTop"; - // - StyleAttribute["saBorderColorRight"] = "saBorderColorRight"; - // - StyleAttribute["saBorderColorBottom"] = "saBorderColorBottom"; - // - StyleAttribute["saBorderColorLeft"] = "saBorderColorLeft"; - // - StyleAttribute["saBorderStyle"] = "saBorderStyle"; - // - StyleAttribute["saBorderStyleTop"] = "saBorderStyleTop"; - // - StyleAttribute["saBorderStyleRight"] = "saBorderStyleRight"; - // - StyleAttribute["saBorderStyleBottom"] = "saBorderStyleBottom"; - // - StyleAttribute["saBorderStyleLeft"] = "saBorderStyleLeft"; - // - StyleAttribute["saBorderWidth"] = "saBorderWidth"; - // - StyleAttribute["saBorderWidthTop"] = "saBorderWidthTop"; - // - StyleAttribute["saBorderWidthRight"] = "saBorderWidthRight"; - // - StyleAttribute["saBorderWidthBottom"] = "saBorderWidthBottom"; - // - StyleAttribute["saBorderWidthLeft"] = "saBorderWidthLeft"; - // - StyleAttribute["saBoxplotStyle"] = "saBoxplotStyle"; - // - StyleAttribute["saBreakOnSpecial"] = "saBreakOnSpecial"; - // - StyleAttribute["saCell"] = "saCell"; - // - StyleAttribute["saCellW"] = "saCellW"; - // - StyleAttribute["saCellH"] = "saCellH"; - // - StyleAttribute["saCellQ"] = "saCellQ"; - // - StyleAttribute["saCellQMark"] = "saCellQMark"; - // - StyleAttribute["saColor"] = "saColor"; - // - StyleAttribute["saColorMode"] = "saColorMode"; - // - StyleAttribute["saColLevels"] = "saColLevels"; - // - StyleAttribute["saColVertLevels"] = "saColVertLevels"; - // - StyleAttribute["saColHorizHeight"] = "saColHorizHeight"; - // - StyleAttribute["saColVertHeight"] = "saColVertHeight"; - // Deprecated - StyleAttribute["saColHeight"] = "saColHeight"; - // - StyleAttribute["saColWidth"] = "saColWidth"; - // - StyleAttribute["saContent"] = "saContent"; - // - StyleAttribute["saDisplayFieldLabels"] = "saDisplayFieldLabels"; - // - StyleAttribute["saDisplayHeader"] = "saDisplayHeader"; - // - StyleAttribute["saDisplayAlternateText"] = "saDisplayAlternateText"; - // - StyleAttribute["saDivLevel"] = "saDivLevel"; - // - StyleAttribute["saEnabled"] = "saEnabled"; - // - StyleAttribute["saFillAboveColor"] = "saFillAboveColor"; - // - StyleAttribute["saFillBelowColor"] = "saFillBelowColor"; - // - StyleAttribute["saFillColor"] = "saFillColor"; - // - StyleAttribute["saFogBGColor"] = "saFogBGColor"; - // - StyleAttribute["saFogDesaturationWithoutSelection"] = "saFogDesaturationWithoutSelection"; - // - StyleAttribute["saFogDesaturationWithSelection"] = "saFogDesaturationWithSelection"; - // - StyleAttribute["saFont"] = "saFont"; - // - StyleAttribute["saFontFamily"] = "saFontFamily"; - // - StyleAttribute["saFontSize"] = "saFontSize"; - // - StyleAttribute["saFontStyle"] = "saFontStyle"; - // - StyleAttribute["saFontWeight"] = "saFontWeight"; - // - StyleAttribute["saGeographicAreaType"] = "saGeographicAreaType"; - // - StyleAttribute["saHAlign"] = "saHAlign"; - // - StyleAttribute["saHaloColor"] = "saHaloColor"; - // - StyleAttribute["saHaloColorSelected"] = "saHaloColorSelected"; - // - StyleAttribute["saHasFill"] = "saHasFill"; - // - StyleAttribute["saHasHalo"] = "saHasHalo"; - // Deprecated - StyleAttribute["saHasLabel"] = "saHasLabel"; - // - StyleAttribute["saHasStroke"] = "saHasStroke"; - // - StyleAttribute["saHeight"] = "saHeight"; - // - StyleAttribute["saHeightHeader"] = "saHeightHeader"; - // - StyleAttribute["saHighlightLegend"] = "saHighlightLegend"; - // - StyleAttribute["saHnaxis"] = "saHnaxis"; - // - StyleAttribute["saHnlabel"] = "saHnlabel"; - // - StyleAttribute["saInTooltip"] = "saInTooltip"; - // - StyleAttribute["saLineEnd"] = "saLineEnd"; - // - StyleAttribute["saLineEndSize"] = "saLineEndSize"; - // - StyleAttribute["saLineInterpolation"] = "saLineInterpolation"; - // - StyleAttribute["saLineMarkerPosition"] = "saLineMarkerPosition"; - // - StyleAttribute["saLinePattern"] = "saLinePattern"; - // - StyleAttribute["saLinePatternOnly"] = "saLinePatternOnly"; - // - StyleAttribute["saLineVisibility"] = "saLineVisibility"; - // - StyleAttribute["saMap"] = "saMap"; - // - StyleAttribute["saMapStyle"] = "saMapStyle"; - // - StyleAttribute["saMargin"] = "saMargin"; - // - StyleAttribute["saMarginTop"] = "saMarginTop"; - // - StyleAttribute["saMarginRight"] = "saMarginRight"; - // - StyleAttribute["saMarginBottom"] = "saMarginBottom"; - // - StyleAttribute["saMarginLeft"] = "saMarginLeft"; - // - StyleAttribute["saMarkColor"] = "saMarkColor"; - // - StyleAttribute["saMarkTransparency"] = "saMarkTransparency"; - // - StyleAttribute["saMarkLabelsShow"] = "saMarkLabelsShow"; - // - StyleAttribute["saRunningOrderLabelsShow"] = "saRunningOrderLabelsShow"; - // - StyleAttribute["saMarkLabelsMode"] = "saMarkLabelsMode"; - // - StyleAttribute["saMarkLabelsCull"] = "saMarkLabelsCull"; - // - StyleAttribute["saMarkLabelsLineEndFirst"] = "saMarkLabelsLineEndFirst"; - // - StyleAttribute["saMarkLabelsLineEndLast"] = "saMarkLabelsLineEndLast"; - // - StyleAttribute["saMarkLabelsRangeMin"] = "saMarkLabelsRangeMin"; - // - StyleAttribute["saMarkLabelsRangeMax"] = "saMarkLabelsRangeMax"; - // - StyleAttribute["saMarkLabelsRangeScope"] = "saMarkLabelsRangeScope"; - // - StyleAttribute["saMarkLabelsRangeField"] = "saMarkLabelsRangeField"; - // - StyleAttribute["saMarkMarkersMode"] = "saMarkMarkersMode"; - // - StyleAttribute["saMaxHeight"] = "saMaxHeight"; - // - StyleAttribute["saMaxFontSize"] = "saMaxFontSize"; - // - StyleAttribute["saMaxStrokeWidth"] = "saMaxStrokeWidth"; - // - StyleAttribute["saMaxWidth"] = "saMaxWidth"; - // - StyleAttribute["saMidStrokeWidth"] = "saMidStrokeWidth"; - // - StyleAttribute["saMinHeight"] = "saMinHeight"; - // - StyleAttribute["saMinFontSize"] = "saMinFontSize"; - // - StyleAttribute["saMinLength"] = "saMinLength"; - // - StyleAttribute["saMinMapSize"] = "saMinMapSize"; - // - StyleAttribute["saMinSize"] = "saMinSize"; - // - StyleAttribute["saMinStrokeWidth"] = "saMinStrokeWidth"; - // - StyleAttribute["saMinWidth"] = "saMinWidth"; - // - StyleAttribute["saNonhighlightColor"] = "saNonhighlightColor"; - // - StyleAttribute["saOmitOnSpecial"] = "saOmitOnSpecial"; - // - StyleAttribute["saOpacity"] = "saOpacity"; - // - StyleAttribute["saOrientation"] = "saOrientation"; - // - StyleAttribute["saPadding"] = "saPadding"; - // - StyleAttribute["saPaddingTop"] = "saPaddingTop"; - // - StyleAttribute["saPaddingRight"] = "saPaddingRight"; - // - StyleAttribute["saPaddingBottom"] = "saPaddingBottom"; - // - StyleAttribute["saPaddingLeft"] = "saPaddingLeft"; - // - StyleAttribute["saPalette"] = "saPalette"; - // - StyleAttribute["saRenderFoldReversed"] = "saRenderFoldReversed"; - // - StyleAttribute["saReversePalette"] = "saReversePalette"; - // - StyleAttribute["saRounding"] = "saRounding"; - // - StyleAttribute["saRowHorizLevels"] = "saRowHorizLevels"; - // - StyleAttribute["saRowHorizWidth"] = "saRowHorizWidth"; - // - StyleAttribute["saRowLevels"] = "saRowLevels"; - // - StyleAttribute["saRowVertWidth"] = "saRowVertWidth"; - // - StyleAttribute["saSeparator"] = "saSeparator"; - // - StyleAttribute["saShape"] = "saShape"; - // Deprecated - StyleAttribute["saShowLabels"] = "saShowLabels"; - // - StyleAttribute["saSize"] = "saSize"; - // - StyleAttribute["saSizeBar"] = "saSizeBar"; - // - StyleAttribute["saSmartAutoAlignment"] = "saSmartAutoAlignment"; - // - StyleAttribute["saSpace"] = "saSpace"; - // - StyleAttribute["saStrokeColor"] = "saStrokeColor"; - // - StyleAttribute["saStrokeSize"] = "saStrokeSize"; - // - StyleAttribute["saSubtitle"] = "saSubtitle"; - // - StyleAttribute["saTextAlign"] = "saTextAlign"; - // - StyleAttribute["saTextAlignDefault"] = "saTextAlignDefault"; - // - StyleAttribute["saTextDecoration"] = "saTextDecoration"; - // - StyleAttribute["saTextIndent"] = "saTextIndent"; - // - StyleAttribute["saTextOrientation"] = "saTextOrientation"; - // - StyleAttribute["saTextFormat"] = "saTextFormat"; - // - StyleAttribute["saTickColor"] = "saTickColor"; - // - StyleAttribute["saTickLength"] = "saTickLength"; - // Deprecated - StyleAttribute["saTickSpacing"] = "saTickSpacing"; - // - StyleAttribute["saTitle"] = "saTitle"; - // - StyleAttribute["saTotalLabel"] = "saTotalLabel"; - // - StyleAttribute["saVAlign"] = "saVAlign"; - // - StyleAttribute["saVerticalAlign"] = "saVerticalAlign"; - // - StyleAttribute["saVerticalAlignDefault"] = "saVerticalAlignDefault"; - // - StyleAttribute["saVnaxis"] = "saVnaxis"; - // - StyleAttribute["saVnlabel"] = "saVnlabel"; - // - StyleAttribute["saWarnOnSpecial"] = "saWarnOnSpecial"; - // - StyleAttribute["saWashout"] = "saWashout"; - // - StyleAttribute["saWhiskerEnd"] = "saWhiskerEnd"; - // - StyleAttribute["saWhiskerStrokeColor"] = "saWhiskerStrokeColor"; - // - StyleAttribute["saWhiskerStrokeSize"] = "saWhiskerStrokeSize"; - // - StyleAttribute["saWidth"] = "saWidth"; - // - StyleAttribute["saWidthHeader"] = "saWidthHeader"; - // - StyleAttribute["saWrap"] = "saWrap"; - // - StyleAttribute["saZoom"] = "saZoom"; - // Special attributes used for matching - StyleAttribute["saNone"] = "saNone"; - // Special attributes used for matching - StyleAttribute["saAny"] = "saAny"; - })(StyleAttribute = exports.StyleAttribute || (exports.StyleAttribute = {})); - // lowest bit of enum value denotes two-tone styles; newly added styles should follow this pattern. - var BoxplotStyle; - (function (BoxplotStyle) { - // mask for checking if a style is two-tone - BoxplotStyle["BoxplotStyleTwoTone"] = "two-tone"; - // - BoxplotStyle["BoxplotStyleModern"] = "modern"; - // - BoxplotStyle["BoxplotStyleGlass"] = "glass"; - // - BoxplotStyle["BoxplotStyleClassic"] = "classic"; - // - BoxplotStyle["BoxplotStyleClassicTwoTone"] = "classic-two-tone"; - })(BoxplotStyle = exports.BoxplotStyle || (exports.BoxplotStyle = {})); - // used for boxplots and prediction band whiskers - var WhiskerEnd; - (function (WhiskerEnd) { - // - WhiskerEnd["WhiskerEndNone"] = "none"; - // - WhiskerEnd["WhiskerEndSmall"] = "small"; - // - WhiskerEnd["WhiskerEndLarge"] = "large"; - })(WhiskerEnd = exports.WhiskerEnd || (exports.WhiskerEnd = {})); - // - var StyleElement; - (function (StyleElement) { - // - StyleElement["elementAxis"] = "elementAxis"; - // - StyleElement["elementCell"] = "elementCell"; - // - StyleElement["elementDatalabel"] = "elementDatalabel"; - // - StyleElement["elementDropspot"] = "elementDropspot"; - // - StyleElement["elementHeader"] = "elementHeader"; - // - StyleElement["elementFieldLabel"] = "elementFieldLabel"; - // - StyleElement["elementFieldLabelDecoration"] = "elementFieldLabelDecoration"; - // - StyleElement["elementFieldLabelSpanner"] = "elementFieldLabelSpanner"; - // - StyleElement["elementLabel"] = "elementLabel"; - // - StyleElement["elementMark"] = "elementMark"; - // - StyleElement["elementPane"] = "elementPane"; - // - StyleElement["elementTable"] = "elementTable"; - // - StyleElement["elementWorksheet"] = "elementWorksheet"; - // - StyleElement["elementBasesheet"] = "elementBasesheet"; - // - StyleElement["elementDashboard"] = "elementDashboard"; - // - StyleElement["elementStoryboard"] = "elementStoryboard"; - // - StyleElement["elementCaption"] = "elementCaption"; - // - StyleElement["elementDropline"] = "elementDropline"; - // - StyleElement["elementRefline"] = "elementRefline"; - // - StyleElement["elementRefBand"] = "elementRefBand"; - // - StyleElement["elementRefBoxplot"] = "elementRefBoxplot"; - // - StyleElement["elementGridline"] = "elementGridline"; - // - StyleElement["elementZeroline"] = "elementZeroline"; - // - StyleElement["elementTrendline"] = "elementTrendline"; - // - StyleElement["elementTableDiv"] = "elementTableDiv"; - // - StyleElement["elementHeaderDiv"] = "elementHeaderDiv"; - // - StyleElement["elementMappedImage"] = "elementMappedImage"; - // - StyleElement["elementAction"] = "elementAction"; - // - StyleElement["elementTitle"] = "elementTitle"; - // - StyleElement["elementLegend"] = "elementLegend"; - // - StyleElement["elementLegendTitle"] = "elementLegendTitle"; - // - StyleElement["elementLegendTitleText"] = "elementLegendTitleText"; - // - StyleElement["elementAxisTitle"] = "elementAxisTitle"; - // - StyleElement["elementAnnotation"] = "elementAnnotation"; - // - StyleElement["elementDashTitle"] = "elementDashTitle"; - // - StyleElement["elementDashSubtitle"] = "elementDashSubtitle"; - // - StyleElement["elementDashText"] = "elementDashText"; - // - StyleElement["elementDashZone"] = "elementDashZone"; - // - StyleElement["elementDashContainer"] = "elementDashContainer"; - // - StyleElement["elementScrollbar"] = "elementScrollbar"; - // Static on/off map layers - StyleElement["elementMapLayer"] = "elementMapLayer"; - // Contains washout - StyleElement["elementMap"] = "elementMap"; - // Initially for UrbanMapping/Claritas data - StyleElement["elementMapDataLayer"] = "elementMapDataLayer"; - // - StyleElement["elementQuickFilter"] = "elementQuickFilter"; - // - StyleElement["elementQuickFilterTitle"] = "elementQuickFilterTitle"; - // - StyleElement["elementParameterCtrl"] = "elementParameterCtrl"; - // - StyleElement["elementParameterCtrlTitle"] = "elementParameterCtrlTitle"; - // - StyleElement["elementPageCardTitle"] = "elementPageCardTitle"; - // - StyleElement["elementStoryDescription"] = "elementStoryDescription"; - // - StyleElement["elementStoryPointCaption"] = "elementStoryPointCaption"; - // - StyleElement["elementStoryTitle"] = "elementStoryTitle"; - // - StyleElement["elementTooltip"] = "elementTooltip"; - // - StyleElement["elementAll"] = "elementAll"; - // - StyleElement["elementPageCardBody"] = "elementPageCardBody"; - // - StyleElement["elementDataHighlighter"] = "elementDataHighlighter"; - // - StyleElement["elementDataHighlighterTitle"] = "elementDataHighlighterTitle"; - // Special elements used for matching and organization - StyleElement["elementNone"] = "elementNone"; - // Special elements used for matching and organization - StyleElement["elementAny"] = "elementAny"; - // Special elements used for matching and organization - StyleElement["elementRoot"] = "elementRoot"; - })(StyleElement = exports.StyleElement || (exports.StyleElement = {})); - // Do not mess with these values. They are sometimes used as array indexes/bounds - var StyleDataClass; - (function (StyleDataClass) { - // - StyleDataClass["dcNormal"] = "dcNormal"; - // - StyleDataClass["dcTotal"] = "dcTotal"; - // - StyleDataClass["dcSubtotal"] = "dcSubtotal"; - // - StyleDataClass["dcCOUNT"] = "dcCOUNT"; - })(StyleDataClass = exports.StyleDataClass || (exports.StyleDataClass = {})); - // - var StyleFieldScope; - (function (StyleFieldScope) { - // - StyleFieldScope["fsNone"] = "fsNone"; - // - StyleFieldScope["fsRows"] = "fsRows"; - // - StyleFieldScope["fsCols"] = "fsCols"; - })(StyleFieldScope = exports.StyleFieldScope || (exports.StyleFieldScope = {})); - // - var StyleSwatch; - (function (StyleSwatch) { - // - StyleSwatch["ssUnspecified"] = "ssUnspecified"; - // - StyleSwatch["ssLight"] = "ssLight"; - // - StyleSwatch["ssDark"] = "ssDark"; - })(StyleSwatch = exports.StyleSwatch || (exports.StyleSwatch = {})); - // - var TableauFontStyle; - (function (TableauFontStyle) { - // - TableauFontStyle["NormalStyle"] = "font-style-normal"; - // - TableauFontStyle["Italic"] = "font-style-italic"; - })(TableauFontStyle = exports.TableauFontStyle || (exports.TableauFontStyle = {})); - // Unsupported for Betsy - var TextDecoration; - (function (TextDecoration) { - // - TextDecoration["NoDecoration"] = "text-decoration-none"; - // - TextDecoration["Underline"] = "text-decoration-underline"; - // not yet supported - TextDecoration["Overline"] = "text-decoration-overline"; - // - TextDecoration["Strikethrough"] = "text-decoration-strikethrough"; - })(TextDecoration = exports.TextDecoration || (exports.TextDecoration = {})); - // - var FontWeight; - (function (FontWeight) { - // - FontWeight["NormalWeight"] = "font-weight-normal"; - // - FontWeight["Bold"] = "font-weight-bold"; - })(FontWeight = exports.FontWeight || (exports.FontWeight = {})); - // - var TextOrient; - (function (TextOrient) { - // - TextOrient["TO_Auto"] = "text-orient-auto"; - // - TextOrient["TO_Horz"] = "text-orient-horizontal"; - // - TextOrient["TO_VertUp"] = "text-orient-vertical-up"; - // - TextOrient["TO_VertDown"] = "text-orient-vertical-down"; - })(TextOrient = exports.TextOrient || (exports.TextOrient = {})); - // - var TextAlign; - (function (TextAlign) { - // - TextAlign["TA_Start"] = "text-align-start"; - // - TextAlign["TA_Center"] = "text-align-center"; - // - TextAlign["TA_End"] = "text-align-end"; - })(TextAlign = exports.TextAlign || (exports.TextAlign = {})); - // - var TextWrapMode; - (function (TextWrapMode) { - // - TextWrapMode["TextWrapOff"] = "text-wrap-off"; - // - TextWrapMode["TextWrapTruncate"] = "text-wrap-truncate"; - // - TextWrapMode["TextWrapOn"] = "text-wrap-on"; - // - TextWrapMode["TextWrapAuto"] = "text-wrap-auto"; - })(TextWrapMode = exports.TextWrapMode || (exports.TextWrapMode = {})); - // - var TextWholeLineMode; - (function (TextWholeLineMode) { - // - TextWholeLineMode["TextWholeLineOff"] = "text-whole-line-off"; - // - TextWholeLineMode["TextWholeLineOn"] = "text-whole-line-on"; - // - TextWholeLineMode["TextWholeLineAuto"] = "text-whole-line-auto"; - })(TextWholeLineMode = exports.TextWholeLineMode || (exports.TextWholeLineMode = {})); - // - var TextBreakMode; - (function (TextBreakMode) { - // - TextBreakMode["TextBreakWhitespaceOnly"] = "text-break-ws-only"; - // - TextBreakMode["TextBreakAuto"] = "text-break-auto"; - })(TextBreakMode = exports.TextBreakMode || (exports.TextBreakMode = {})); - // type of aggregation - var AggType; - (function (AggType) { - // - AggType["AGG_SUM"] = "sum"; - // - AggType["AGG_AVG"] = "average"; - // - AggType["AGG_MIN"] = "min"; - // - AggType["AGG_MAX"] = "max"; - // - AggType["AGG_STDEV"] = "std-dev"; - // - AggType["AGG_STDEVP"] = "std-dev-p"; - // - AggType["AGG_VAR"] = "var"; - // - AggType["AGG_VARP"] = "var-p"; - // - AggType["AGG_COUNT"] = "count"; - // - AggType["AGG_COUNTD"] = "count-d"; - // - AggType["AGG_MEDIAN"] = "median"; - // - AggType["AGG_ATTR"] = "attr"; - // - AggType["AGG_NONE"] = "none"; - // - AggType["AGG_PERCENTILE"] = "percentile"; - // - AggType["AGG_YEAR"] = "year"; - // - AggType["AGG_QTR"] = "qtr"; - // - AggType["AGG_MONTH"] = "month"; - // - AggType["AGG_DAY"] = "day"; - // - AggType["AGG_HOUR"] = "hour"; - // - AggType["AGG_MINUTE"] = "minute"; - // - AggType["AGG_SECOND"] = "second"; - // - AggType["AGG_WEEK"] = "week"; - // - AggType["AGG_WEEKDAY"] = "weekday"; - // - AggType["AGG_MONTHYEAR"] = "month-year"; - // - AggType["AGG_MDY"] = "mdy"; - // - AggType["AGG_END"] = "end"; - // - AggType["TRUNC_YEAR"] = "trunc-year"; - // - AggType["TRUNC_QTR"] = "trunc-qtr"; - // - AggType["TRUNC_MONTH"] = "trunc-month"; - // - AggType["TRUNC_WEEK"] = "trunc-week"; - // - AggType["TRUNC_DAY"] = "trunc-day"; - // - AggType["TRUNC_HOUR"] = "trunc-hour"; - // - AggType["TRUNC_MINUTE"] = "trunc-minute"; - // - AggType["TRUNC_SECOND"] = "trunc-second"; - // - AggType["AGG_QUART1"] = "quart1"; - // - AggType["AGG_QUART3"] = "quart3"; - // - AggType["AGG_SKEWNESS"] = "skewness"; - // - AggType["AGG_KURTOSIS"] = "kurtosis"; - // - AggType["AGG_INOUT"] = "in-out"; - // - AggType["AGG_SUM_XSQR"] = "sum-xsqr"; - // - AggType["AGG_USER"] = "user"; - // - AggType["AGG_COLLECT"] = "collect"; - // - AggType["AGG_COVAR"] = "covar"; - // - AggType["AGG_COVARP"] = "covarp"; - // - AggType["AGG_CORR"] = "corr"; - })(AggType = exports.AggType || (exports.AggType = {})); - // DataValueFormatter::DataTypeEncodings has hardcoded values corresponding to following enum members - var DataType; - (function (DataType) { - // - DataType["DT_INTEGER"] = "integer"; - // - DataType["DT_REAL"] = "real"; - // - DataType["DT_STRING"] = "cstring"; - // - DataType["DT_DATETIME"] = "datetime"; - // - DataType["DT_BOOLEAN"] = "boolean"; - // - DataType["DT_DATE"] = "date"; - // - DataType["DT_TUPLE"] = "tuple"; - // - DataType["DT_SPATIAL"] = "spatial"; - // - DataType["DT_UNKNOWN"] = "unknown"; - // - DataType["DT_BINARY"] = "binary"; - })(DataType = exports.DataType || (exports.DataType = {})); - // - var SortDirection; - (function (SortDirection) { - // ascending - SortDirection["ST_ASC"] = "asc"; - // descending - SortDirection["ST_DESC"] = "desc"; - })(SortDirection = exports.SortDirection || (exports.SortDirection = {})); - // - var SortType; - (function (SortType) { - // Use the defined ordering - SortType["ST_NATURAL"] = "data-source-order"; - // Alphabetic/numeric ordering of data - SortType["ST_ALPHABETIC"] = "alpha"; - // Specify a secondary field - SortType["ST_COMPUTED"] = "field"; - // Manually defined ordering - SortType["ST_MANUAL"] = "manual"; - })(SortType = exports.SortType || (exports.SortType = {})); - // - var SortEnd; - (function (SortEnd) { - // - SortEnd["ST_TOP"] = "top"; - // - SortEnd["ST_BOTTOM"] = "bottom"; - })(SortEnd = exports.SortEnd || (exports.SortEnd = {})); - // - var ForecastColumnType; - (function (ForecastColumnType) { - // - ForecastColumnType["FORECAST_NONE"] = "none"; - // - ForecastColumnType["FORECAST_VALUE"] = "value"; - // - ForecastColumnType["FORECAST_INDICATOR"] = "indicator"; - // - ForecastColumnType["FORECAST_PRECISION"] = "precision"; - // - ForecastColumnType["FORECAST_QUALITY"] = "quality"; - // - ForecastColumnType["FORECAST_FIT_TREND"] = "fit_trend"; - // - ForecastColumnType["FORECAST_PRECISION_PERCENT"] = "precision_percent"; - // - ForecastColumnType["FORECAST_PREDICTION_INTERVAL_UPPER"] = "prediction_upper"; - // - ForecastColumnType["FORECAST_PREDICTION_INTERVAL_LOWER"] = "prediction_lower"; - })(ForecastColumnType = exports.ForecastColumnType || (exports.ForecastColumnType = {})); - // - var MarkMarkersMode; - (function (MarkMarkersMode) { - // - MarkMarkersMode["MMM_Auto"] = "mmm-auto"; - // - MarkMarkersMode["MMM_All"] = "mmm_all"; - // - MarkMarkersMode["MMM_None"] = "mmm_none"; - // - MarkMarkersMode["MMM_Default"] = "mmm_default"; - })(MarkMarkersMode = exports.MarkMarkersMode || (exports.MarkMarkersMode = {})); - // - var PercentMode; - (function (PercentMode) { - // - PercentMode["PERCENT_CELL_IN_PANE"] = "cell-in-pane"; - // - PercentMode["PERCENT_ROW_IN_PANE"] = "row-in-pane"; - // - PercentMode["PERCENT_COLUMN_IN_PANE"] = "column-in-pane"; - // - PercentMode["PERCENT_PANE"] = "pane"; - // - PercentMode["PERCENT_ROW"] = "row"; - // - PercentMode["PERCENT_COLUMN"] = "column"; - // - PercentMode["PERCENT_TABLE"] = "table"; - })(PercentMode = exports.PercentMode || (exports.PercentMode = {})); - // - var SpecialValuesMode; - (function (SpecialValuesMode) { - // - SpecialValuesMode["SPECIAL_VALUES_HIDE_AND_WARN"] = "hide-and-warn"; - // - SpecialValuesMode["SPECIAL_VALUES_HIDE"] = "hide"; - // - SpecialValuesMode["SPECIAL_VALUES_HIDE_BREAK_LINES"] = "hide-break-lines"; - // - SpecialValuesMode["SPECIAL_VALUES_SHOW"] = "show"; - })(SpecialValuesMode = exports.SpecialValuesMode || (exports.SpecialValuesMode = {})); - // - var LayoutType; - (function (LayoutType) { - // - LayoutType["LAYOUT_CARTESIAN"] = "cartesian"; - // - LayoutType["LAYOUT_DEFAULT"] = "default"; - })(LayoutType = exports.LayoutType || (exports.LayoutType = {})); - // - var ShelfType; - (function (ShelfType) { - // - ShelfType["ST_NONE"] = "none-shelf"; - // - ShelfType["ST_COLUMNS_SHELF"] = "columns-shelf"; - // - ShelfType["ST_ROWS_SHELF"] = "rows-shelf"; - // - ShelfType["ST_PAGES_SHELF"] = "pages-shelf"; - // - ShelfType["ST_FILTER_SHELF"] = "filter-shelf"; - // - ShelfType["ST_IMAGE_SHELF"] = "image-shelf"; - // - ShelfType["ST_MEASURES_SHELF"] = "measures-shelf"; - // - ShelfType["ST_SHOWME_SHELF"] = "show-me-shelf"; - // - ShelfType["ST_ENCODING_SHELF"] = "encoding-shelf"; - // - ShelfType["ST_CLUSTER_SHELF"] = "cluster-shelf"; - // - ShelfType["ST_GEOMETRY_SHELF"] = "geometry-shelf"; - // - ShelfType["ST_END"] = "end-shelf"; - // - ShelfType["ST_FINAL"] = "final-shelf"; - })(ShelfType = exports.ShelfType || (exports.ShelfType = {})); - // - var RestrictType; - (function (RestrictType) { - // - RestrictType["RT_INTERSECT"] = "rt-intersection"; - // - RestrictType["RT_UNION"] = "rt-union"; - })(RestrictType = exports.RestrictType || (exports.RestrictType = {})); - // - var TooltipMode; - (function (TooltipMode) { - // - TooltipMode["TM_NONE"] = "none"; - // - TooltipMode["TM_STICKY"] = "sticky"; - // - TooltipMode["TM_SMOOTH"] = "smooth"; - })(TooltipMode = exports.TooltipMode || (exports.TooltipMode = {})); - // - var ColumnGroups; - (function (ColumnGroups) { - // 0x01 - ColumnGroups["COLS_IN_OUTPUT"] = "cols-in-output"; - // 0x02 - ColumnGroups["COLS_IN_FILTER_SHELF"] = "cols-in-filter-shelf"; - // 0x04 - ColumnGroups["COLS_REF_BY_FILTERS"] = "cols-ref-by-filters"; - // 0x08 - ColumnGroups["COLS_REF_BY_OMEASURES"] = "cols-ref-by-omeasures"; - // 0x10 - ColumnGroups["COLS_REF_BY_JOIN_LOD"] = "cols-ref-by-join-lod"; - // 0x20 - ColumnGroups["COLS_HIDDEN"] = "cols-hidden"; - // 0x40 - ColumnGroups["COLS_REF_BY_SORTS"] = "cols-ref-by-sorts"; - // - ColumnGroups["COLS_REF_BY_FILTERS_OR_SORTS"] = "cols-ref-by-filters-or-sorts"; - // - ColumnGroups["COLS_ON_SHELVES"] = "cols-on-shelves"; - // - ColumnGroups["COLS_ALL"] = "cols-all"; - })(ColumnGroups = exports.ColumnGroups || (exports.ColumnGroups = {})); - // - var ButtonsOption; - (function (ButtonsOption) { - // - ButtonsOption["BO_HIDE"] = "buttons-hide"; - })(ButtonsOption = exports.ButtonsOption || (exports.ButtonsOption = {})); - // - var SelectionRelaxationOption; - (function (SelectionRelaxationOption) { - // - SelectionRelaxationOption["SRO_ALLOW"] = "selection-relaxation-allow"; - // - SelectionRelaxationOption["SRO_DISALLOW"] = "selection-relaxation-disallow"; - })(SelectionRelaxationOption = exports.SelectionRelaxationOption || (exports.SelectionRelaxationOption = {})); - // - var EncodingType; - (function (EncodingType) { - // a text encoding - EncodingType["ET_TEXT"] = "text-encoding"; - // a color encoding - EncodingType["ET_COLOR"] = "color-encoding"; - // a size encoding - EncodingType["ET_SIZE"] = "size-encoding"; - // a shape encoding - EncodingType["ET_SHAPE"] = "shape-encoding"; - // an image encoding - EncodingType["ET_IMAGE"] = "image-encoding"; - // a sort (path) encoding (currently only for line or polygon charts) - EncodingType["ET_SORT"] = "sort-encoding"; - // a wedge size (angle) encoding (currently only for pie charts) - EncodingType["ET_WEDGESIZE"] = "wedge-size-encoding"; - // a geometry encoding - EncodingType["ET_GEOMETRY"] = "geometry-encoding"; - // a level of detail encoding - EncodingType["ET_LOD"] = "level-of-detail-encoding"; - // encoding used for the data highlighter/legend mechanism - EncodingType["ET_HIGHLIGHT"] = "highlight-encoding"; - // a tooltip encoding - EncodingType["ET_TOOLTIP"] = "tooltip-encoding"; - // a temporary label placed above marks for the table calc dialog - EncodingType["ET_RUNNINGORDER"] = "runningorder-encoding"; - // the number of encodings, this is invalid input for an encoding presentation model - EncodingType["NUM_ENCODINGS"] = "num-encodings"; - // an invalid encoding - EncodingType["ET_INVALID"] = "invalid-encoding"; - })(EncodingType = exports.EncodingType || (exports.EncodingType = {})); - // Enumeration of valid horizontal alignments. - var LabelHAlignment; - (function (LabelHAlignment) { - // - LabelHAlignment["LHA_Left"] = "h-align-left"; - // - LabelHAlignment["LHA_Center"] = "h-align-center"; - // - LabelHAlignment["LHA_Right"] = "h-align-right"; - // - LabelHAlignment["LHA_Automatic"] = "h-align-auto"; - })(LabelHAlignment = exports.LabelHAlignment || (exports.LabelHAlignment = {})); - // Enumeration of valid vertical alignments. - var LabelVAlignment; - (function (LabelVAlignment) { - // - LabelVAlignment["LVA_Bottom"] = "v-align-bottom"; - // - LabelVAlignment["LVA_Center"] = "v-align-center"; - // - LabelVAlignment["LVA_Top"] = "v-align-top"; - // - LabelVAlignment["LVA_Automatic"] = "v-align-auto"; - })(LabelVAlignment = exports.LabelVAlignment || (exports.LabelVAlignment = {})); - // Enumeration of valid label positions. - var LabelPosition; - (function (LabelPosition) { - // Position each text run relative to the center of the original bbox. Use the original bbox as the height and width of the text mark. Used for non-stacked OO text marks. - LabelPosition["CenterInOriginalBbox"] = "label-position-center-in-original-box"; - // Position each text run relative to the bottom left corner of the measured bbox. Use the measured bbox as the width and height of the label. Used for labels - LabelPosition["OriginAtLowerLeft"] = "label-position-origin-at-lower-left"; - // Position each text run relative to the center of the measured bbox. Use the measured bbox as the width and height of the text mark. Used for most text marks. - LabelPosition["OriginAtCenter"] = "label-position-origin-at-center"; - })(LabelPosition = exports.LabelPosition || (exports.LabelPosition = {})); - // Enumeration of ways to use color. Values can be or'ed together to make a mask for allowed options - var ColorMode; - (function (ColorMode) { - // Color user specified - ColorMode["CLRM_User"] = "clrm-user"; - // Color selected automatically - ColorMode["CLRM_Auto"] = "clrm-auto"; - // Color matches mark color - ColorMode["CLRM_Match"] = "clrm-match"; - // No color (transparent or not drawn) - ColorMode["CLRM_None"] = "clrm-none"; - })(ColorMode = exports.ColorMode || (exports.ColorMode = {})); - // - var MarkLabelsMode; - (function (MarkLabelsMode) { - // - MarkLabelsMode["MLM_All"] = "mlm-all"; - // - MarkLabelsMode["MLM_Selection"] = "mlm-selection"; - // - MarkLabelsMode["MLM_Highlight"] = "mlm-highlight"; - // - MarkLabelsMode["MLM_LineEnds"] = "mlm-line-ends"; - // min/max setting - MarkLabelsMode["MLM_Range"] = "mlm-range"; - // most recent (only relevant when date field is in play) - MarkLabelsMode["MLM_MostRecent"] = "mlm-most-recent"; - // ...this is " virtual " (runtime only, not saved, not shown as a user setting - MarkLabelsMode["MLM_MultipleValues"] = "mlm-multiple-values"; - // - MarkLabelsMode["MLM_Default"] = "mlm-default"; - })(MarkLabelsMode = exports.MarkLabelsMode || (exports.MarkLabelsMode = {})); - // - var MarkLabelsScope; - (function (MarkLabelsScope) { - // - MarkLabelsScope["MLS_Table"] = "mls-table"; - // - MarkLabelsScope["MLS_Pane"] = "mls-pane"; - // - MarkLabelsScope["MLS_Cell"] = "mls-cell"; - // - MarkLabelsScope["MLS_MultiMark"] = "mls-multimark"; - // ...this is " virtual " (runtime only, not saved, not shown as a user setting) - MarkLabelsScope["MLS_MultipleValues"] = "mls-multiple-values"; - // - MarkLabelsScope["MLS_Default"] = "mls-default"; - })(MarkLabelsScope = exports.MarkLabelsScope || (exports.MarkLabelsScope = {})); - // - var MarkLabelsVisibility; - (function (MarkLabelsVisibility) { - // - MarkLabelsVisibility["MLV_Hidden"] = "mlv-hidden"; - // - MarkLabelsVisibility["MLV_Visible"] = "mlv-visible"; - // - MarkLabelsVisibility["MLV_UseCurrent"] = "mlv-use-current"; - })(MarkLabelsVisibility = exports.MarkLabelsVisibility || (exports.MarkLabelsVisibility = {})); - // - var StackingMode; - (function (StackingMode) { - // - StackingMode["StackingOff"] = "off"; - // - StackingMode["StackingOn"] = "on"; - // - StackingMode["StackingAuto"] = "auto"; - })(StackingMode = exports.StackingMode || (exports.StackingMode = {})); - // - var MarkAlignment; - (function (MarkAlignment) { - // - MarkAlignment["MarkAlignmentLeft"] = "mark-alignment-left"; - // - MarkAlignment["MarkAlignmentRight"] = "mark-alignment-right"; - // - MarkAlignment["MarkAlignmentCenter"] = "mark-alignment-center"; - })(MarkAlignment = exports.MarkAlignment || (exports.MarkAlignment = {})); - // - var PaneLabelComposition; - (function (PaneLabelComposition) { - // - PaneLabelComposition["PLC_None"] = "pane-label-composition-none"; - // - PaneLabelComposition["PLC_Mixed"] = "pane-label-composition-mixed"; - // - PaneLabelComposition["PLC_All"] = "pane-label-composition-all"; - })(PaneLabelComposition = exports.PaneLabelComposition || (exports.PaneLabelComposition = {})); - // The user-specified mark type on the Marks Card - var PrimitiveType; - (function (PrimitiveType) { - // - PrimitiveType["PT_AUTOMATIC"] = "automatic"; - // - PrimitiveType["PT_TEXT"] = "text"; - // - PrimitiveType["PT_IMAGE"] = "image"; - // - PrimitiveType["PT_SHAPE"] = "shape"; - // - PrimitiveType["PT_RECTANGLE"] = "rectangle"; - // - PrimitiveType["PT_BAR"] = "bar"; - // - PrimitiveType["PT_GANTT"] = "gantt"; - // - PrimitiveType["PT_SQUARE"] = "square"; - // - PrimitiveType["PT_CIRCLE"] = "circle"; - // - PrimitiveType["PT_POLYLINE"] = "polyline"; - // line chart - PrimitiveType["PT_LINE"] = "line"; - // - PrimitiveType["PT_POLYGON"] = "polygon"; - // area chart - PrimitiveType["PT_AREA"] = "area"; - // - PrimitiveType["PT_PIE"] = "pie"; - // - PrimitiveType["PT_MULTIPOLYGON"] = "multipolygon"; - // Not an actual primitive type. This is just used to flag the UI that multiple types are in play. - PrimitiveType["PT_MULTIPLE"] = "multiple"; - // used for looping over all values - PrimitiveType["NUM_PRIMITIVES"] = "count"; - // used to flag an unset or invalid state - PrimitiveType["PT_INVALID"] = "invalid"; - })(PrimitiveType = exports.PrimitiveType || (exports.PrimitiveType = {})); - // Defines the way a given primitive behaves on a viz - for instance, a PT_CIRCLE is treated as a point, while a PT_POLYGON would be treated as an area. - var MarkType; - (function (MarkType) { - // - MarkType["MT_POINT"] = "point"; - // - MarkType["MT_LINE"] = "line"; - // - MarkType["MT_AREA"] = "area"; - // - MarkType["MT_INVALID"] = "invalid"; - })(MarkType = exports.MarkType || (exports.MarkType = {})); - // PaneAxis is used to describe which axis of a pane is the independent axis. - var PaneAxis; - (function (PaneAxis) { - // The independent axis is inferred from other properties of the pane. - PaneAxis["AXIS_AUTO"] = "auto"; - // - PaneAxis["AXIS_X"] = "x"; - // - PaneAxis["AXIS_Y"] = "y"; - })(PaneAxis = exports.PaneAxis || (exports.PaneAxis = {})); - // - var Rounding; - (function (Rounding) { - // - Rounding["Rounding_None"] = "none"; - // - Rounding["Rounding_Small"] = "small"; - // - Rounding["Rounding_Medium"] = "medium"; - // - Rounding["Rounding_Large"] = "large"; - })(Rounding = exports.Rounding || (exports.Rounding = {})); - // - var LineEnd; - (function (LineEnd) { - // - LineEnd["LineEnd_None"] = "none"; - // - LineEnd["LineEnd_Arrow"] = "arrow"; - // - LineEnd["LineEnd_OpenArrow"] = "open-arrow"; - // - LineEnd["LineEnd_Dot"] = "dot"; - })(LineEnd = exports.LineEnd || (exports.LineEnd = {})); - // - var LineEndSize; - (function (LineEndSize) { - // - LineEndSize["LineEndSize_Smallest"] = "smallest"; - // - LineEndSize["LineEndSize_Smaller"] = "smaller"; - // - LineEndSize["LineEndSize_Small"] = "small"; - // - LineEndSize["LineEndSize_Medium"] = "medium"; - // - LineEndSize["LineEndSize_Large"] = "large"; - // - LineEndSize["LineEndSize_Larger"] = "larger"; - // - LineEndSize["LineEndSize_Largest"] = "largest"; - })(LineEndSize = exports.LineEndSize || (exports.LineEndSize = {})); - // - var BodyType; - (function (BodyType) { - // - BodyType["BodyType_None"] = "none"; - // - BodyType["BodyType_Box"] = "box"; - // - BodyType["BodyType_Edge"] = "edge"; - })(BodyType = exports.BodyType || (exports.BodyType = {})); - // - var StyleTheme; - (function (StyleTheme) { - // - StyleTheme["themeClassic"] = "classic"; - // - StyleTheme["themeModern"] = "modern"; - // - StyleTheme["themeClean"] = "clean"; - // - StyleTheme["themeSmooth"] = "smooth"; - // - StyleTheme["themeCustom"] = "custom"; - })(StyleTheme = exports.StyleTheme || (exports.StyleTheme = {})); - // - var AxisFoldState; - (function (AxisFoldState) { - // - AxisFoldState["afNone"] = "none"; - // - AxisFoldState["afFolded"] = "folded"; - // - AxisFoldState["afSynchronized"] = "synchronized"; - })(AxisFoldState = exports.AxisFoldState || (exports.AxisFoldState = {})); - // - var LinePattern; - (function (LinePattern) { - // - LinePattern["LinePatternNone"] = "none"; - // - LinePattern["LinePatternSolid"] = "solid"; - // - LinePattern["LinePatternDashed"] = "dashed"; - // - LinePattern["LinePatternDotted"] = "dotted"; - })(LinePattern = exports.LinePattern || (exports.LinePattern = {})); - // - var LineVisibility; - (function (LineVisibility) { - // - LineVisibility["LineVisibilityAuto"] = "automatic"; - // - LineVisibility["LineVisibilityOn"] = "on"; - // - LineVisibility["LineVisibilityOff"] = "off"; - })(LineVisibility = exports.LineVisibility || (exports.LineVisibility = {})); - // - var StylesLinePattern; - (function (StylesLinePattern) { - // - StylesLinePattern["StylesLinePatternSolid"] = "solid"; - // - StylesLinePattern["StylesLinePatternDashed"] = "dashed"; - // - StylesLinePattern["StylesLinePatternDotted"] = "dotted"; - })(StylesLinePattern = exports.StylesLinePattern || (exports.StylesLinePattern = {})); - // - var LineCap; - (function (LineCap) { - // - LineCap["LineCapFlat"] = "flat"; - // - LineCap["LineCapSquare"] = "square"; - // - LineCap["LineCapRound"] = "round"; - // - LineCap["LineCapTriangle"] = "triangle"; - })(LineCap = exports.LineCap || (exports.LineCap = {})); - // - var LineJoin; - (function (LineJoin) { - // - LineJoin["BevelJoin"] = "bevel"; - // - LineJoin["MiterJoin"] = "miter"; - // - LineJoin["RoundJoin"] = "round"; - })(LineJoin = exports.LineJoin || (exports.LineJoin = {})); - // - var LineAlignment; - (function (LineAlignment) { - // - LineAlignment["AlignmentCenter"] = "center"; - // - LineAlignment["AlignmentInset"] = "inset"; - })(LineAlignment = exports.LineAlignment || (exports.LineAlignment = {})); - // - var FillMode; - (function (FillMode) { - // - FillMode["FillEvenOdd"] = "even-odd"; - // - FillMode["FillWinding"] = "winding"; - })(FillMode = exports.FillMode || (exports.FillMode = {})); - // - var BorderStyle; - (function (BorderStyle) { - // none - BorderStyle["BorderStyleNone"] = "bs-none"; - // hidden - BorderStyle["BorderStyleHidden"] = "bs-hidden"; - // dotted - BorderStyle["BorderStyleDotted"] = "bs-dotted"; - // dashed - BorderStyle["BorderStyleDashed"] = "bs-dashed"; - // solid - BorderStyle["BorderStyleSolid"] = "bs-solid"; - // double - BorderStyle["BorderStyleDouble"] = "bs-double"; - // groove - BorderStyle["BorderStyleGroove"] = "bs-groove"; - // ridge - BorderStyle["BorderStyleRidge"] = "bs-ridge"; - // inset - BorderStyle["BorderStyleInset"] = "bs-inset"; - // outset - BorderStyle["BorderStyleOutset"] = "bs-outset"; - // invalid - BorderStyle["BorderStyleInvalid"] = "bs-invalid"; - })(BorderStyle = exports.BorderStyle || (exports.BorderStyle = {})); - // - var ColorPaletteType; - (function (ColorPaletteType) { - // - ColorPaletteType["ColorPaletteRegular"] = "color-palette-regular"; - // - ColorPaletteType["ColorPaletteOrderedDiverging"] = "palette-ordered-diverging"; - // - ColorPaletteType["ColorPaletteOrderedLinear"] = "palette-ordered-linear"; - })(ColorPaletteType = exports.ColorPaletteType || (exports.ColorPaletteType = {})); - // - var PaletteFlags; - (function (PaletteFlags) { - // - PaletteFlags["PaletteFlagNone"] = "palette-flag-none"; - // - PaletteFlags["PaletteFlagCustom"] = "palette-flag-custom"; - // - PaletteFlags["PaletteFlagNotQuantitative"] = "palette-flag-not-quantitative"; - // - PaletteFlags["PaletteFlagNotCategorical"] = "palette-flag-not-categorical"; - // - PaletteFlags["PaletteFlagNotReferenceBand"] = "palette-flag-not-reference-band"; - // - PaletteFlags["PaletteFlagNotBoxplot"] = "palette-flag-not-boxplot"; - // - PaletteFlags["PaletteFlagNotFilledMapLight"] = "palette-flag-not-filled-map-light"; - // - PaletteFlags["PaletteFlagNotFilledMapDark"] = "palette-flag-not-filled-map-dark"; - // - PaletteFlags["PaletteFlagLegacy"] = "palette-flag-legacy"; - })(PaletteFlags = exports.PaletteFlags || (exports.PaletteFlags = {})); - // - var DefaultPaletteType; - (function (DefaultPaletteType) { - // - DefaultPaletteType["SmallNominal"] = "palette-default-small-nominal"; - // - DefaultPaletteType["LargeNominal"] = "palette-default-large-nominal"; - // - DefaultPaletteType["Ordinal"] = "palette-default-ordinal"; - // - DefaultPaletteType["QuantitativePositive"] = "palette-default-quant-pos"; - // - DefaultPaletteType["QuantitativeNegative"] = "palette-default-quant-neg"; - // - DefaultPaletteType["QuantitativeDiverging"] = "palette-default-quant-div"; - // - DefaultPaletteType["QuantitativePositiveLight"] = "palette-default-quant-pos-light"; - // - DefaultPaletteType["QuantitativeNegativeLight"] = "palette-default-quant-neg-light"; - // - DefaultPaletteType["QuantitativeDivergingLight"] = "palette-default-quant-div-light"; - // - DefaultPaletteType["QuantitativePositiveArea"] = "palette-default-quant-pos-area"; - // - DefaultPaletteType["QuantitativeNegativeArea"] = "palette-default-quant-neg-area"; - // - DefaultPaletteType["QuantitativeDivergingArea"] = "palette-default-quant-div-area"; - })(DefaultPaletteType = exports.DefaultPaletteType || (exports.DefaultPaletteType = {})); - // - var ShowBounds; - (function (ShowBounds) { - // - ShowBounds["Both"] = "show-both"; - // - ShowBounds["Upper"] = "show-upper"; - // - ShowBounds["Lower"] = "show-lower"; - })(ShowBounds = exports.ShowBounds || (exports.ShowBounds = {})); - // Sample vs. population standard deviation - var StDevType; - (function (StDevType) { - // - StDevType["Sample"] = "stdev-sample"; - // - StDevType["Population"] = "stdev-population"; - })(StDevType = exports.StDevType || (exports.StDevType = {})); - // - var ReferenceLineFormulaGroup; - (function (ReferenceLineFormulaGroup) { - // - ReferenceLineFormulaGroup["None"] = "none"; - // - ReferenceLineFormulaGroup["Line"] = "line"; - // - ReferenceLineFormulaGroup["Band"] = "band"; - // - ReferenceLineFormulaGroup["Distribution"] = "distribution"; - // - ReferenceLineFormulaGroup["Boxplot"] = "boxplot"; - })(ReferenceLineFormulaGroup = exports.ReferenceLineFormulaGroup || (exports.ReferenceLineFormulaGroup = {})); - // - var ReferenceLineScopeType; - (function (ReferenceLineScopeType) { - // - ReferenceLineScopeType["PerCell"] = "per-cell"; - // - ReferenceLineScopeType["PerPane"] = "per-pane"; - // - ReferenceLineScopeType["PerTable"] = "per-table"; - })(ReferenceLineScopeType = exports.ReferenceLineScopeType || (exports.ReferenceLineScopeType = {})); - // how should the line be labeled - var ReferenceLineLabelType; - (function (ReferenceLineLabelType) { - // no label - ReferenceLineLabelType["None"] = "none"; - // an automatically generated label - ReferenceLineLabelType["Automatic"] = "automatic"; - // - ReferenceLineLabelType["Value"] = "value"; - // - ReferenceLineLabelType["Computation"] = "computation"; - // a user defined label - ReferenceLineLabelType["Custom"] = "custom"; - })(ReferenceLineLabelType = exports.ReferenceLineLabelType || (exports.ReferenceLineLabelType = {})); - // how should the line be computed - var ReferenceLineFormulaType; - (function (ReferenceLineFormulaType) { - // a user specified constant value - ReferenceLineFormulaType["Constant"] = "constant"; - // - ReferenceLineFormulaType["Total"] = "total"; - // total of all values at the given scope <- is this correct? looks like comment from FormulaTotal - ReferenceLineFormulaType["Sum"] = "sum"; - // minimum value in the scope - ReferenceLineFormulaType["Min"] = "min"; - // maximum value in the scope - ReferenceLineFormulaType["Max"] = "max"; - // average value in the scope - ReferenceLineFormulaType["Average"] = "average"; - // median value in the scope - ReferenceLineFormulaType["Median"] = "median"; - // the n quantiles values in the scope - ReferenceLineFormulaType["Quantiles"] = "quantiles"; - // a given percentile in the scope - ReferenceLineFormulaType["Percentile"] = "percentile"; - // mean +- standard deviation - ReferenceLineFormulaType["StandardDeviation"] = "standard-deviation"; - // a given confidence interval around the mean - ReferenceLineFormulaType["ConfidenceInterval"] = "confidence-interval"; - // - ReferenceLineFormulaType["MedianConfidenceInterval"] = "median-confidence-interval"; - })(ReferenceLineFormulaType = exports.ReferenceLineFormulaType || (exports.ReferenceLineFormulaType = {})); - // Line or confidence interval or both - var ReferenceLineConfidenceIntervalState; - (function (ReferenceLineConfidenceIntervalState) { - // display line only - ReferenceLineConfidenceIntervalState["LineOnly"] = "line-only"; - // display the line and a confidence interval - ReferenceLineConfidenceIntervalState["LineAndConfidenceInterval"] = "line-and-interval"; - // display confidence interval only - ReferenceLineConfidenceIntervalState["ConfidenceIntervalOnly"] = "interval-only"; - })(ReferenceLineConfidenceIntervalState = exports.ReferenceLineConfidenceIntervalState || (exports.ReferenceLineConfidenceIntervalState = {})); - // type of distribution. i.e. Percentage, Percentile, Quantile, and Standard Deviation - var ReferenceLineDistributionType; - (function (ReferenceLineDistributionType) { - // distribution type percentage - ReferenceLineDistributionType["Percentages"] = "percentages"; - // distribution type percentile - ReferenceLineDistributionType["Percentiles"] = "percentiles"; - // distribution type quantile - ReferenceLineDistributionType["Quantiles"] = "quantiles"; - // distribution type standard deviation - ReferenceLineDistributionType["StandardDeviation"] = "standard-deviation"; - })(ReferenceLineDistributionType = exports.ReferenceLineDistributionType || (exports.ReferenceLineDistributionType = {})); - // the kind of LOD calc to use for a given reference line - var ReferenceLineLODCalcType; - (function (ReferenceLineLODCalcType) { - // Create a formula using a FIXED-like level-of-detail calculation, to which sheet filters apply, that will go onto a specific sheet - ReferenceLineLODCalcType["MeasureFormula"] = "measure-formula"; - // Create a boolean formula that can be used as a filter - ReferenceLineLODCalcType["BooleanFilter"] = "boolean-filter"; - })(ReferenceLineLODCalcType = exports.ReferenceLineLODCalcType || (exports.ReferenceLineLODCalcType = {})); - // - var BoxplotWhiskerType; - (function (BoxplotWhiskerType) { - // - BoxplotWhiskerType["Standard"] = "standard"; - // - BoxplotWhiskerType["Minmax"] = "minmax"; - })(BoxplotWhiskerType = exports.BoxplotWhiskerType || (exports.BoxplotWhiskerType = {})); - // categories of connection types displayed by the connection UI - var ConnectionTypeCategory; - (function (ConnectionTypeCategory) { - // standard database - ConnectionTypeCategory["CTC_Database"] = "database"; - // 'More Items ...' meta item - ConnectionTypeCategory["CTC_More"] = "more"; - // Other file types - ConnectionTypeCategory["CTC_Other"] = "other"; - // invalid connection category - ConnectionTypeCategory["CTC_Invalid"] = "invalid"; - })(ConnectionTypeCategory = exports.ConnectionTypeCategory || (exports.ConnectionTypeCategory = {})); - // a logical grouping of connection types displayed by the connection UI - var ConnectionTypeGroup; - (function (ConnectionTypeGroup) { - // in a file - ConnectionTypeGroup["CTG_File"] = "file"; - // on a server - ConnectionTypeGroup["CTG_Server"] = "server"; - // on a recent server - ConnectionTypeGroup["CTG_MruServer"] = "mru-server"; - // invalid group - ConnectionTypeGroup["CTG_Invalid"] = "invalid"; - })(ConnectionTypeGroup = exports.ConnectionTypeGroup || (exports.ConnectionTypeGroup = {})); - // The type of metadata a column contains - var CubeMetadataCategory; - (function (CubeMetadataCategory) { - // cube's name - CubeMetadataCategory["CMC_Name"] = "name"; - // cube's description - CubeMetadataCategory["CMC_Description"] = "description"; - // cube's last updated timestamp - CubeMetadataCategory["CMC_LastUpdated"] = "last-updated"; - // invalid - CubeMetadataCategory["CMC_Invalid"] = "invalid"; - })(CubeMetadataCategory = exports.CubeMetadataCategory || (exports.CubeMetadataCategory = {})); - // The type of widget to display to the user when they are specifying connection info - var ConnectionWidgetType; - (function (ConnectionWidgetType) { - // show the join area - ConnectionWidgetType["CWT_JoinArea"] = "join-area"; - // show the cube selection ui - ConnectionWidgetType["CWT_CubeSelection"] = "cube-selection"; - // show the google analytics ui - ConnectionWidgetType["CWT_GoogleAnalytics"] = "google-analytics"; - // show the tableau server ui - ConnectionWidgetType["CWT_TableauServer"] = "tableau-server"; - // do not show any connection widget - ConnectionWidgetType["CWT_NoWidget"] = "no-widget"; - // invalid - ConnectionWidgetType["CWT_Invalid"] = "invalid"; - })(ConnectionWidgetType = exports.ConnectionWidgetType || (exports.ConnectionWidgetType = {})); - // The type of google analytics basic info - var GoogleBasicInfoType; - (function (GoogleBasicInfoType) { - // google analytics account - GoogleBasicInfoType["GA_Account"] = "ga-account"; - // google analytics property - GoogleBasicInfoType["GA_Property"] = "ga-property"; - // google analytics view - GoogleBasicInfoType["GA_View"] = "ga-view"; - // invalid - GoogleBasicInfoType["GA_Invalid"] = "invalid"; - })(GoogleBasicInfoType = exports.GoogleBasicInfoType || (exports.GoogleBasicInfoType = {})); - // The way in which a piece of connection information is specified - var ConnectionSpecificationType; - (function (ConnectionSpecificationType) { - // Uses a combo box - ConnectionSpecificationType["CST_ComboBox"] = "combo-box"; - // Uses a line edit - ConnectionSpecificationType["CST_LineEdit"] = "line-edit"; - // Uses a line edit with a browse button next to it - ConnectionSpecificationType["CST_LineEditBrowse"] = "line-edit-browse"; - // invalid - ConnectionSpecificationType["CST_Invalid"] = "invalid"; - })(ConnectionSpecificationType = exports.ConnectionSpecificationType || (exports.ConnectionSpecificationType = {})); - // GA Date Range - var DateRange; - (function (DateRange) { - // - DateRange["DateRangeFirst"] = "date-range-first"; - // - DateRange["DateRangeLast30Days"] = "date-range-last30"; - // - DateRange["DateRangeToday"] = "date-range-today"; - // - DateRange["DateRangeYesterday"] = "date-range-yesterday"; - // - DateRange["DateRangeLastWeek"] = "date-range-last-week"; - // - DateRange["DateRangeLastMonth"] = "date-range-last-month"; - // - DateRange["DateRangeLastYear"] = "date-range-last-year"; - // - DateRange["DateRangeThisWeekToYesterday"] = "date-range-this-week-to-yesterday"; - // - DateRange["DateRangeThisMonthToYesterday"] = "date-range-this-month-to-yesterday"; - // - DateRange["DateRangeThisYearToYesterday"] = "date-range-this-year-to-yesterday"; - // - DateRange["DateRangeLastWeekToYesterday"] = "date-range-last-week-to-yesterday"; - // - DateRange["DateRangeLastMonthToYesterday"] = "date-range-last-month-to-yesterday"; - // - DateRange["DateRangeLastYearToYesterday"] = "date-range-last-year-to-yesterday"; - // - DateRange["DateRangeFixedRange"] = "date-range-fixed-range"; - // - DateRange["DateRangeFixedStart"] = "date-range-fixed-start"; - // - DateRange["DateRangeCount"] = "date-range-count"; - })(DateRange = exports.DateRange || (exports.DateRange = {})); - // Specifies the type of widget to show in ConnectServerWidget - var ConnectServerWidgetType; - (function (ConnectServerWidgetType) { - // invalid - ConnectServerWidgetType["CSWT_Invalid"] = "invalid"; - // microsoft access - ConnectServerWidgetType["CSWT_Access"] = "access"; - // generic odbc - ConnectServerWidgetType["CSWT_ODBC"] = "odbc"; - // cubes - ConnectServerWidgetType["CSWT_Cube"] = "cube"; - // relational data sources - ConnectServerWidgetType["CSWT_Relational"] = "relational"; - })(ConnectServerWidgetType = exports.ConnectServerWidgetType || (exports.ConnectServerWidgetType = {})); - // - var AuthenticationEnumsMode; - (function (AuthenticationEnumsMode) { - // no authentication widget - AuthenticationEnumsMode["AuthModeNone"] = "auth-mode-none"; - // username and password - AuthenticationEnumsMode["AuthModeBasic"] = "auth-mode-basic"; - // username and password can be blank - AuthenticationEnumsMode["AuthModeBasicNoValidateFields"] = "auth-mode-basic-no-validate-fields"; - // only username - AuthenticationEnumsMode["AuthModeBasicUserNameOnly"] = "auth-mode-basic-username-only"; - // aws access key and secret ID - AuthenticationEnumsMode["AuthModeBasicAWS"] = "auth-mode-basic-aws"; - // username, password, and a list of AuthOptions with radio buttons - AuthenticationEnumsMode["AuthModeRadio"] = "auth-mode-radio"; - // Like AuthModeRadio, but enable username/password even for integrated auth - AuthenticationEnumsMode["AuthModeRadioUnindented"] = "auth-mode-radio-unindented"; - // username, password, and a list of AuthOptions with a combobox - AuthenticationEnumsMode["AuthModeComboBox"] = "auth-mode-combobox"; - // Like AuthModeCombobox, but with option not requiring username/password - AuthenticationEnumsMode["AuthModeComboBoxIntegrated"] = "auth-mode-combobox-integrated"; - // driver, authentication, username, realm, etc - AuthenticationEnumsMode["AuthModeHive"] = "auth-mode-hive"; - // none, azure marketplace account, explicit - AuthenticationEnumsMode["AuthModeOData"] = "auth-mode-odata"; - // edition, authentication, sso domain, etc - AuthenticationEnumsMode["AuthModeSharePoint"] = "auth-mode-sharepoint"; - // username, password, client, & language - AuthenticationEnumsMode["AuthModeSAPBW"] = "auth-mode-sapbw"; - // Ability to switch between two different auth modes each in their own modal dialogs (basic and oauth) - AuthenticationEnumsMode["AuthModeSwitchModal"] = "auth-mode-switch-modal"; - })(AuthenticationEnumsMode = exports.AuthenticationEnumsMode || (exports.AuthenticationEnumsMode = {})); - // - var AuthenticationEnumsReconnectMode; - (function (AuthenticationEnumsReconnectMode) { - // Auth not needed for reconnect - AuthenticationEnumsReconnectMode["ReconnectModeNone"] = "reconnect-mode-none"; - // Username and password - AuthenticationEnumsReconnectMode["ReconnectModeBasic"] = "reconnect-mode-basic"; - // Access file - AuthenticationEnumsReconnectMode["ReconnectModeAccess"] = "reconnect-mode-access"; - // Microsoft Azure Data Market (OData) - AuthenticationEnumsReconnectMode["ReconnectModeDataMarket"] = "reconnect-mode-data-market"; - // Google OAuth - AuthenticationEnumsReconnectMode["ReconnectModeGoogleOAuth"] = "reconnect-mode-google-oauth"; - // SalesforceOAuth, with the option of username/password auth - AuthenticationEnumsReconnectMode["ReconnectModeSalesforceOAuth"] = "reconnect-mode-salesforce-oauth"; - // Web data connector - AuthenticationEnumsReconnectMode["ReconnectModeWebData"] = "reconnect-mode-web-data"; - })(AuthenticationEnumsReconnectMode = exports.AuthenticationEnumsReconnectMode || (exports.AuthenticationEnumsReconnectMode = {})); - // - var AuthenticationEnumsAuthOption; - (function (AuthenticationEnumsAuthOption) { - // FIRST - AuthenticationEnumsAuthOption["AuthExplicit"] = "auth-option-explicit"; - // - AuthenticationEnumsAuthOption["AuthExplicitUnindented"] = "auth-option-explicit-unindented"; - // - AuthenticationEnumsAuthOption["AuthUseWindows"] = "auth-option-use-windows"; - // - AuthenticationEnumsAuthOption["AuthUseWindowsPreferred"] = "auth-option-windows-preferred"; - // - AuthenticationEnumsAuthOption["AuthTeradata"] = "auth-option-teradata"; - // - AuthenticationEnumsAuthOption["AuthLDAP"] = "auth-option-ldap"; - // - AuthenticationEnumsAuthOption["AuthVirtualNode"] = "auth-option-virtual-node"; - // - AuthenticationEnumsAuthOption["AuthODataAccount"] = "auth-option-odata"; - // - AuthenticationEnumsAuthOption["AuthNone"] = "auth-option-none"; - // - AuthenticationEnumsAuthOption["AuthKerberos"] = "auth-option-kerberos"; - // Introduced for Kerberos with fallback, recognizing that the db may or may not be on Windows - AuthenticationEnumsAuthOption["AuthIntegrated"] = "auth-option-integrated"; - // - AuthenticationEnumsAuthOption["AuthUsername"] = "auth-option-username"; - // - AuthenticationEnumsAuthOption["AuthUsernameAndPassword"] = "auth-option-username-and-password"; - // - AuthenticationEnumsAuthOption["AuthSSL"] = "auth-option-ssl"; - // - AuthenticationEnumsAuthOption["AuthHDIEmulator"] = "auth-hdi-emulator"; - // - AuthenticationEnumsAuthOption["AuthHDIService"] = "auth-hdi-service"; - // - AuthenticationEnumsAuthOption["AuthHTTP"] = "auth-http"; - // - AuthenticationEnumsAuthOption["AuthHTTPS"] = "auth-https"; - // - AuthenticationEnumsAuthOption["AuthAccessNoSecurity"] = "auth-option-access-no"; - // - AuthenticationEnumsAuthOption["AuthAccessYesSecurity"] = "auth-option-access-yes"; - // - AuthenticationEnumsAuthOption["AuthOAuth"] = "auth-oauth"; - // - AuthenticationEnumsAuthOption["AuthForms"] = "auth-forms"; - // - AuthenticationEnumsAuthOption["AuthThirdPartySSO"] = "auth-third-party-SSO"; - // LAST - AuthenticationEnumsAuthOption["AuthInvalid"] = "auth-option-invalid"; - })(AuthenticationEnumsAuthOption = exports.AuthenticationEnumsAuthOption || (exports.AuthenticationEnumsAuthOption = {})); - // data source validation modes - var DataSourceParserValidationMode; - (function (DataSourceParserValidationMode) { - // - DataSourceParserValidationMode["WorkbookLoadValidation"] = "workbook-load-validation"; - // - DataSourceParserValidationMode["AutoValidation"] = "auto-validation"; - // - DataSourceParserValidationMode["ForceValidation"] = "force-validation"; - // - DataSourceParserValidationMode["PreventValidation"] = "prevent-validation"; - // - DataSourceParserValidationMode["PreventValidationAndThrow"] = "prevent-validation-and-throw"; - })(DataSourceParserValidationMode = exports.DataSourceParserValidationMode || (exports.DataSourceParserValidationMode = {})); - // Enum for DataGrid/MetadataGrid fields reordering - var FieldOrderType; - (function (FieldOrderType) { - // - FieldOrderType["DATASOURCE_ORDER"] = "datasource-order"; - // - FieldOrderType["ALPHA_PER_TABLE"] = "alpha-per-table"; - // - FieldOrderType["ALPHABETICAL_ORDER"] = "alphabetical-order"; - // - FieldOrderType["CUSTOM_ORDER"] = "custom-order"; - })(FieldOrderType = exports.FieldOrderType || (exports.FieldOrderType = {})); - // - var LineInterpolationMode; - (function (LineInterpolationMode) { - // - LineInterpolationMode["LIM_Linear"] = "lim-linear"; - // - LineInterpolationMode["LIM_Step"] = "lim-step"; - // - LineInterpolationMode["LIM_Jump"] = "lim-jump"; - })(LineInterpolationMode = exports.LineInterpolationMode || (exports.LineInterpolationMode = {})); - // - var LineMarkerPosition; - (function (LineMarkerPosition) { - // - LineMarkerPosition["LMP_Left"] = "lmp-left"; - // - LineMarkerPosition["LMP_Center"] = "lmp-center"; - // - LineMarkerPosition["LMP_Right"] = "lmp-right"; - })(LineMarkerPosition = exports.LineMarkerPosition || (exports.LineMarkerPosition = {})); - // Enumeration for the type of join connecting two tables - var SQLJoinType; - (function (SQLJoinType) { - // - SQLJoinType["SQL_InnerJoin"] = "sql-inner-join"; - // - SQLJoinType["SQL_LeftJoin"] = "sql-left-join"; - // - SQLJoinType["SQL_RightJoin"] = "sql-right-join"; - // - SQLJoinType["SQL_FullJoin"] = "sql-full-join"; - // - SQLJoinType["SQL_CrossJoin"] = "sql-cross-join"; - })(SQLJoinType = exports.SQLJoinType || (exports.SQLJoinType = {})); - // - var FolderRole; - (function (FolderRole) { - // - FolderRole["FOLDER_DIMENSIONS"] = "dimensions"; - // - FolderRole["FOLDER_MEASURES"] = "measure"; - // - FolderRole["FOLDER_GROUPS"] = "groups"; - // - FolderRole["FOLDER_PARAMETERS"] = "parameters"; - })(FolderRole = exports.FolderRole || (exports.FolderRole = {})); - // - var FieldTypeIconSet; - (function (FieldTypeIconSet) { - // - FieldTypeIconSet["FT_SET_ALL"] = "all"; - // - FieldTypeIconSet["FT_SET_CUBE_MEASURES"] = "cube-measures"; - // - FieldTypeIconSet["FT_SET_CUBE_DIMENSIONS"] = "cube-dimensions"; - })(FieldTypeIconSet = exports.FieldTypeIconSet || (exports.FieldTypeIconSet = {})); - // - var FieldPivotStrategy; - (function (FieldPivotStrategy) { - // - FieldPivotStrategy["PIVOT_ON_KEY"] = "pivot-on-key"; - // - FieldPivotStrategy["PIVOT_ON_ALIAS"] = "pivot-on-alias"; - })(FieldPivotStrategy = exports.FieldPivotStrategy || (exports.FieldPivotStrategy = {})); - // - var AliasType; - (function (AliasType) { - // - AliasType["ALIAS_NOTSET"] = "alias-not-set"; - // - AliasType["ALIAS_BEGIN"] = "alias-begin"; - // - AliasType["ALIAS_KEY"] = "alias-key"; - // - AliasType["ALIAS_KEY_NAME"] = "alias-key-name"; - // - AliasType["ALIAS_KEY_MEDNAME"] = "alias-key-medname"; - // - AliasType["ALIAS_KEY_LONGNAME"] = "alias-key-longname"; - // - AliasType["ALIAS_NAME"] = "alias-name"; - // - AliasType["ALIAS_NAME_KEY"] = "alias-name-key"; - // - AliasType["ALIAS_MEDNAME"] = "alias-medname"; - // - AliasType["ALIAS_MEDNAME_KEY"] = "alias-medname-key"; - // - AliasType["ALIAS_LONGNAME"] = "alias-longname"; - // - AliasType["ALIAS_LONGNAME_KEY"] = "alias-longname-key"; - // - AliasType["ALIAS_END"] = "alias-end"; - })(AliasType = exports.AliasType || (exports.AliasType = {})); - // - var AliasTypes; - (function (AliasTypes) { - // - AliasTypes["MASK_ALIAS_KEY"] = "mask-alias-key"; - // - AliasTypes["MASK_ALIAS_NAME"] = "mask-alias-name"; - // - AliasTypes["MASK_ALIAS_MEDNAME"] = "mask-alias-medname"; - // - AliasTypes["MASK_ALIAS_LONGNAME"] = "mask-alias-longname"; - })(AliasTypes = exports.AliasTypes || (exports.AliasTypes = {})); - // - var FieldRole; - (function (FieldRole) { - // - FieldRole["ROLE_DIMENSION"] = "dimension"; - // - FieldRole["ROLE_MEASURE"] = "measure"; - // - FieldRole["ROLE_UNKNOWN"] = "unknown"; - })(FieldRole = exports.FieldRole || (exports.FieldRole = {})); - // - var FieldType; - (function (FieldType) { - // - FieldType["TYPE_QUANTITATIVE"] = "quantitative"; - // - FieldType["TYPE_ORDINAL"] = "ordinal"; - // - FieldType["TYPE_NOMINAL"] = "nominal"; - // - FieldType["TYPE_UNKNOWN"] = "unknown"; - })(FieldType = exports.FieldType || (exports.FieldType = {})); - // - var DataSourceOrder; - (function (DataSourceOrder) { - // - DataSourceOrder["DSO_ALPHABETIC"] = "dso-alphabetic"; - // - DataSourceOrder["DSO_ORDINAL"] = "dso-ordinal"; - })(DataSourceOrder = exports.DataSourceOrder || (exports.DataSourceOrder = {})); - // Where the column comes from - var ColumnClass; - (function (ColumnClass) { - // A metadata column (O or Q Measures) - ColumnClass["COL_METADATA"] = "col-metadata"; - // A physical column on the database - ColumnClass["COL_DATABASE"] = "col-database"; - // A numberic bin (a special kind of calculated column) - ColumnClass["COL_NUMERICBIN"] = "col-numericbin"; - // A Categorical bin (group) - ColumnClass["COL_CATEGORICALBIN"] = "col-categoricalbin"; - // A column instance - ColumnClass["COL_INSTANCE"] = "col-instance"; - // A (raw) mdx calculated column - ColumnClass["COL_MDXCALC"] = "col-mdxcalc"; - // A user-defined calculated column, Tableau expression syntax - ColumnClass["COL_USERCALC"] = "col-usercalc"; - // A column that would have been COL_DATABASE, but the underlying database column does not exist - ColumnClass["COL_DANGLING"] = "col-dangling"; - // A column that contains local supplied data (e.g. Latitude) - ColumnClass["COL_LOCALDATA"] = "col-localdata"; - // A column that contains a visual model attribute (e.g. PaneIndex, Color, ...) - ColumnClass["COL_VISUALDATA"] = "col-visualdata"; - // A column that's a Group (a " Set " in UI terminology) - ColumnClass["COL_GROUP"] = "col-group"; - })(ColumnClass = exports.ColumnClass || (exports.ColumnClass = {})); - // - var VTAggType; - (function (VTAggType) { - // - VTAggType["VTAGG_SUM"] = "sum"; - // - VTAggType["VTAGG_AVG"] = "avg"; - // - VTAggType["VTAGG_MIN"] = "min"; - // - VTAggType["VTAGG_MAX"] = "max"; - // - VTAggType["VTAGG_SERVER"] = "server"; - // - VTAggType["VTAGG_NONE"] = "none"; - // - VTAggType["VTAGG_DEFAULT"] = "default"; - })(VTAggType = exports.VTAggType || (exports.VTAggType = {})); - // - var EntityType; - (function (EntityType) { - // - EntityType["NoEnumerationEntity"] = "no-enumeration-entity"; - // - EntityType["DatabaseEntity"] = "database-entity"; - // - EntityType["SchemaEntity"] = "schema-entity"; - // - EntityType["TableEntity"] = "table-entity"; - })(EntityType = exports.EntityType || (exports.EntityType = {})); - // - var PickEntitySearchType; - (function (PickEntitySearchType) { - // - PickEntitySearchType["PickEntitySearchType_StartsWith"] = "starts-with"; - // - PickEntitySearchType["PickEntitySearchType_Contains"] = "contains"; - // - PickEntitySearchType["PickEntitySearchType_ExactMatch"] = "exact-match"; - // - PickEntitySearchType["PickEntitySearchType_DEFAULT"] = "default"; - })(PickEntitySearchType = exports.PickEntitySearchType || (exports.PickEntitySearchType = {})); - // Parsing methods and structures. - var ExpressionOp; - (function (ExpressionOp) { - // - ExpressionOp["LogicalOr"] = "op-logical-or"; - // - ExpressionOp["LogicalAnd"] = "op-logical-and"; - // - ExpressionOp["LogicalNot"] = "op-logical-not"; - // - ExpressionOp["BitwiseXOr"] = "op-bitwise-xor"; - // - ExpressionOp["BitwiseOr"] = "op-bitwise-or"; - // - ExpressionOp["Equals"] = "op-equals"; - // - ExpressionOp["Greater"] = "op-greater"; - // - ExpressionOp["Less"] = "op-less"; - // - ExpressionOp["GEqual"] = "op-gequal"; - // - ExpressionOp["LEqual"] = "op-lequal"; - // - ExpressionOp["NEqual"] = "op-nequal"; - // - ExpressionOp["Plus"] = "op-plus"; - // - ExpressionOp["Minus"] = "op-minus"; - // - ExpressionOp["BitwiseAnd"] = "op-bitwise-and"; - // - ExpressionOp["Multiply"] = "op-multiply"; - // - ExpressionOp["Divide"] = "op-divide"; - // - ExpressionOp["Modulo"] = "op-modulo"; - // - ExpressionOp["Power"] = "op-power"; - // - ExpressionOp["Positive"] = "op-positive"; - // - ExpressionOp["Negative"] = "op-negative"; - // - ExpressionOp["BitwiseNot"] = "op-bitwise-not"; - // - ExpressionOp["Column"] = "op-column"; - // - ExpressionOp["String"] = "op-string"; - // - ExpressionOp["Number"] = "op-number"; - // - ExpressionOp["Date"] = "op-date"; - // - ExpressionOp["Boolean"] = "op-boolean"; - // - ExpressionOp["Funcall"] = "op-funcall"; - // - ExpressionOp["LParen"] = "op-lparen"; - // - ExpressionOp["RParen"] = "op-rparen"; - // - ExpressionOp["Comma"] = "op-comma"; - // - ExpressionOp["Ident"] = "op-ident"; - // - ExpressionOp["Null"] = "op-null"; - // - ExpressionOp["If"] = "op-if"; - // - ExpressionOp["Elseif"] = "op-elseif"; - // - ExpressionOp["Case"] = "op-case"; - // - ExpressionOp["When"] = "op-when"; - // - ExpressionOp["Then"] = "op-then"; - // - ExpressionOp["Else"] = "op-else"; - // - ExpressionOp["EndExpr"] = "op-endexpr"; - // - ExpressionOp["Whitespace"] = "op-whitespace"; - // - ExpressionOp["Comment"] = "op-comment"; - // - ExpressionOp["LBrace"] = "op-lbrace"; - // - ExpressionOp["RBrace"] = "op-rbrace"; - // - ExpressionOp["Colon"] = "op-colon"; - // - ExpressionOp["Bar"] = "op-bar"; - // - ExpressionOp["Txtype"] = "op-txtype"; - // - ExpressionOp["End"] = "op-end"; - // - ExpressionOp["RBrackets"] = "op-rbrackets"; - // used to represent invalid tokens - ExpressionOp["Invalid"] = "op-invalid"; - })(ExpressionOp = exports.ExpressionOp || (exports.ExpressionOp = {})); - // tri-state bool - var TriBool; - (function (TriBool) { - // - TriBool["TB_Invalid"] = "tribool-invalid"; - // - TriBool["TB_False"] = "tribool-false"; - // - TriBool["TB_True"] = "tribool-true"; - })(TriBool = exports.TriBool || (exports.TriBool = {})); - // table calc reference options set - var ReferenceOptionsSet; - (function (ReferenceOptionsSet) { - // - ReferenceOptionsSet["ROS_Relative"] = "reference-options-set-relative"; - // - ReferenceOptionsSet["ROS_Fixed"] = "reference-options-set-fixed"; - // - ReferenceOptionsSet["ROS_Parameter"] = "reference-options-set-parameter"; - // - ReferenceOptionsSet["ROS_None"] = "reference-options-set-none"; - })(ReferenceOptionsSet = exports.ReferenceOptionsSet || (exports.ReferenceOptionsSet = {})); - // widget state - var WidgetState; - (function (WidgetState) { - // - WidgetState["Hidden"] = "widget-state-hidden"; - // - WidgetState["Disabled"] = "widget-state-disabled"; - // - WidgetState["Enabled"] = "widget-state-enabled"; - })(WidgetState = exports.WidgetState || (exports.WidgetState = {})); - // rank type - var RankType; - (function (RankType) { - // - RankType["Competition"] = "rank-type-competition"; - // - RankType["ModifiedCompetition"] = "rank-type-modified-competition"; - // - RankType["Dense"] = "rank-type-dense"; - // - RankType["Unique"] = "rank-type-unique"; - })(RankType = exports.RankType || (exports.RankType = {})); - // - var TableCalcCommandType; - (function (TableCalcCommandType) { - // - TableCalcCommandType["TableCalcCommandClear"] = "clear"; - })(TableCalcCommandType = exports.TableCalcCommandType || (exports.TableCalcCommandType = {})); - // - var CalcNestingLevel; - (function (CalcNestingLevel) { - // - CalcNestingLevel["Primary"] = "primary"; - // used only for type != TC_CUSTOM - CalcNestingLevel["Secondary"] = "secondary"; - // used only for type == TC_CUSTOM - CalcNestingLevel["Nested"] = "nested"; - })(CalcNestingLevel = exports.CalcNestingLevel || (exports.CalcNestingLevel = {})); - // - var DecimalMode; - (function (DecimalMode) { - // - DecimalMode["DecimalModeAutomatic"] = "automatic"; - // - DecimalMode["DecimalModeManual"] = "manual"; - })(DecimalMode = exports.DecimalMode || (exports.DecimalMode = {})); - // - var TableCalcOrderingType; - (function (TableCalcOrderingType) { - // Advanced... - TableCalcOrderingType["OTField"] = "field"; - // Table (Across) - TableCalcOrderingType["OTRows"] = "rows"; - // Table (Down) - TableCalcOrderingType["OTColumns"] = "columns"; - // Table (Across then Down) - TableCalcOrderingType["OTTable"] = "table"; - // Table (Down then Across) - TableCalcOrderingType["OTTableColumnPrecedence"] = "table-column-precedence"; - // Pane Across - TableCalcOrderingType["OTRowInPane"] = "row-in-pane"; - // Pane (Down) - TableCalcOrderingType["OTColumnInPane"] = "column-in-pane"; - // Pane (Across then Down) - TableCalcOrderingType["OTPane"] = "pane"; - // Pane (Down then Across) - TableCalcOrderingType["OTPaneColumnPrecedence"] = "pane-column-precedence"; - // Cell - TableCalcOrderingType["OTCellInPane"] = "cell-in-pane"; - })(TableCalcOrderingType = exports.TableCalcOrderingType || (exports.TableCalcOrderingType = {})); - // - var TableCalcSortMode; - (function (TableCalcSortMode) { - // - TableCalcSortMode["SM_Automatic"] = "sort-mode-automatic"; - // - TableCalcSortMode["SM_Custom"] = "sort-mode-custom"; - })(TableCalcSortMode = exports.TableCalcSortMode || (exports.TableCalcSortMode = {})); - // - var TableCalcTableCalcType; - (function (TableCalcTableCalcType) { - // none (used to initialize variables) - TableCalcTableCalcType["TC_NONE"] = "none"; - // Running Total - TableCalcTableCalcType["TC_CUMULATIVE"] = "cumulative"; - // Moving Calculation - TableCalcTableCalcType["TC_WINDOW"] = "window"; - // Difference From - TableCalcTableCalcType["TC_DIFF"] = "diff"; - // Percent Difference From - TableCalcTableCalcType["TC_PCTDIFF"] = "pct-diff"; - // Percent From - TableCalcTableCalcType["TC_PCTVALUE"] = "pct-value"; - // Percent Of Total - TableCalcTableCalcType["TC_PCTTOTAL"] = "pct-total"; - // Rank - TableCalcTableCalcType["TC_RANK"] = "rank"; - // Percentile - TableCalcTableCalcType["TC_PCTRANK"] = "pct-rank"; - // Custom - TableCalcTableCalcType["TC_CUSTOM"] = "custom"; - })(TableCalcTableCalcType = exports.TableCalcTableCalcType || (exports.TableCalcTableCalcType = {})); - // - var QuickTableCalcCommandType; - (function (QuickTableCalcCommandType) { - // - QuickTableCalcCommandType["QuickTableCalcCommandRunTotal"] = "run-total"; - // - QuickTableCalcCommandType["QuickTableCalcCommandDifference"] = "difference"; - // - QuickTableCalcCommandType["QuickTableCalcCommandPctDiff"] = "pct-diff"; - // - QuickTableCalcCommandType["QuickTableCalcCommandPctTotal"] = "pct-total"; - // - QuickTableCalcCommandType["QuickTableCalcCommandRank"] = "rank"; - // - QuickTableCalcCommandType["QuickTableCalcCommandPctRank"] = "pct-rank"; - // - QuickTableCalcCommandType["QuickTableCalcCommandMovingAvg"] = "moving-avg"; - // - QuickTableCalcCommandType["QuickTableCalcCommandYtd"] = "ytd"; - // - QuickTableCalcCommandType["QuickTableCalcCommandCgr"] = "cgr"; - // - QuickTableCalcCommandType["QuickTableCalcCommandYOverY"] = "y-over-y"; - // - QuickTableCalcCommandType["QuickTableCalcCommandYtdGrowth"] = "ytd-growth"; - // - QuickTableCalcCommandType["QuickTableCalcCommandCustom"] = "custom"; - })(QuickTableCalcCommandType = exports.QuickTableCalcCommandType || (exports.QuickTableCalcCommandType = {})); - // - var TableCalcAddressCommandType; - (function (TableCalcAddressCommandType) { - // - TableCalcAddressCommandType["TableCalcAddressCommandRel"] = "rel"; - // - TableCalcAddressCommandType["TableCalcAddressCommandAbs"] = "abs"; - // - TableCalcAddressCommandType["TableCalcAddressCommandParam"] = "param"; - // - TableCalcAddressCommandType["TableCalcAddressCommandMore"] = "more"; - })(TableCalcAddressCommandType = exports.TableCalcAddressCommandType || (exports.TableCalcAddressCommandType = {})); - // relative addressing - var TableCalcRelativeAddress; - (function (TableCalcRelativeAddress) { - // - TableCalcRelativeAddress["RelAddrFirst"] = "relative-address-first"; - // - TableCalcRelativeAddress["RelAddrPrevious"] = "relative-address-previous"; - // - TableCalcRelativeAddress["RelAddrNext"] = "relative-address-next"; - // - TableCalcRelativeAddress["RelAddrLast"] = "relative-address-last"; - })(TableCalcRelativeAddress = exports.TableCalcRelativeAddress || (exports.TableCalcRelativeAddress = {})); - // - var CategoricalBinItemType; - (function (CategoricalBinItemType) { - // - CategoricalBinItemType["Unbinned"] = "unbinned"; - // - CategoricalBinItemType["BinMember"] = "categorical-bin-member"; - // - CategoricalBinItemType["Bin"] = "categorical-bin"; - })(CategoricalBinItemType = exports.CategoricalBinItemType || (exports.CategoricalBinItemType = {})); - // The class properties - var CredentialTypePropertiesFlag; - (function (CredentialTypePropertiesFlag) { - // - CredentialTypePropertiesFlag["None"] = "none"; - // - CredentialTypePropertiesFlag["GenericAuthClass"] = "generic-auth-class"; - // - CredentialTypePropertiesFlag["ProviderClass"] = "provider-class"; - // - CredentialTypePropertiesFlag["DataConnectionClass"] = "data-connection-class"; - })(CredentialTypePropertiesFlag = exports.CredentialTypePropertiesFlag || (exports.CredentialTypePropertiesFlag = {})); - // The connector type - var ConnectorType; - (function (ConnectorType) { - // - ConnectorType["Invalid"] = "invalid"; - // - ConnectorType["WebDataConnector"] = "web-data-connector"; - // - ConnectorType["CloudFileConnector"] = "cloud-file-connector"; - // - ConnectorType["LegacyConnector"] = "legacy-connector"; - })(ConnectorType = exports.ConnectorType || (exports.ConnectorType = {})); - // - var TablePillIcon; - (function (TablePillIcon) { - // - TablePillIcon["ListItem"] = "list-item"; - // - TablePillIcon["Sheet"] = "sheet"; - // - TablePillIcon["FoundTable"] = "found-table"; - // - TablePillIcon["NamedRange"] = "named-range"; - // - TablePillIcon["StoredProcedure"] = "stored-procedure"; - })(TablePillIcon = exports.TablePillIcon || (exports.TablePillIcon = {})); - // - var JoinValidationError; - (function (JoinValidationError) { - // - JoinValidationError["JVE_NoError"] = "no-error"; - // - JoinValidationError["JVE_EmptyClause"] = "empty-clause"; - // - JoinValidationError["JVE_TypeMismatch"] = "type-mismatch"; - // - JoinValidationError["JVE_InvalidField"] = "invalid-field"; - // - JoinValidationError["JVE_BadClause"] = "bad-clause"; - // - JoinValidationError["JVE_BadInputRelation"] = "bad-input-relation"; - // - JoinValidationError["JVE_RepeatedFieldReferences"] = "repeated-field-references"; - // - JoinValidationError["JVE_UnsupportedJoinType"] = "unsupported-join-type"; - // - JoinValidationError["JVE_InvalidCalculation"] = "invalid-calculation"; - // - JoinValidationError["JVE_Unknown"] = "unknown"; - })(JoinValidationError = exports.JoinValidationError || (exports.JoinValidationError = {})); - // - var ConnectionTypeEnum; - (function (ConnectionTypeEnum) { - // -d-s is used to force the enum generator to generate DS with capital letters in .cs just like the .cpp - ConnectionTypeEnum["InvalidDS"] = "invalid-d-s"; - // - ConnectionTypeEnum["FileDS"] = "file-d-s"; - // - ConnectionTypeEnum["ServerDS"] = "server-d-s"; - // - ConnectionTypeEnum["InternetDS"] = "internet-d-s"; - // - ConnectionTypeEnum["TableauServerDS"] = "tableau-server-d-s"; - })(ConnectionTypeEnum = exports.ConnectionTypeEnum || (exports.ConnectionTypeEnum = {})); - // - var ConnectionErrorStage; - (function (ConnectionErrorStage) { - // - ConnectionErrorStage["Unknown"] = "unknown"; - // - ConnectionErrorStage["CreateProtocolFailed"] = "create-protocol-failed"; - // - ConnectionErrorStage["LoadMetadataFailed"] = "load-metadata-failed"; - })(ConnectionErrorStage = exports.ConnectionErrorStage || (exports.ConnectionErrorStage = {})); - // The result of setting one end of an axis range - var SetAxisRangeResult; - (function (SetAxisRangeResult) { - // - SetAxisRangeResult["Success"] = "set-axis-range-success-result"; - // - SetAxisRangeResult["Failure"] = "set-axis-range-failure-result"; - })(SetAxisRangeResult = exports.SetAxisRangeResult || (exports.SetAxisRangeResult = {})); - // Enumeration of units tick spacing can take - var TickSpacingUnits; - (function (TickSpacingUnits) { - // - TickSpacingUnits["TickSpacingUnits__NoUnits"] = "no-units"; - // - TickSpacingUnits["TickSpacingUnits__Years"] = "years"; - // - TickSpacingUnits["TickSpacingUnits__Quarters"] = "quarters"; - // - TickSpacingUnits["TickSpacingUnits__Months"] = "months"; - // - TickSpacingUnits["TickSpacingUnits__Weeks"] = "weeks"; - // - TickSpacingUnits["TickSpacingUnits__Days"] = "days"; - // - TickSpacingUnits["TickSpacingUnits__Hours"] = "hours"; - // - TickSpacingUnits["TickSpacingUnits__Minutes"] = "minutes"; - // - TickSpacingUnits["TickSpacingUnits__Seconds"] = "seconds"; - })(TickSpacingUnits = exports.TickSpacingUnits || (exports.TickSpacingUnits = {})); - // Enumeration of whether totals are included in or excluded from the color encoding - var TotalsInclusion; - (function (TotalsInclusion) { - // Totals included in color encoding - TotalsInclusion["IncludeTotals"] = "include-totals"; - // Totals excluded from color encoding - TotalsInclusion["ExcludeTotals"] = "exclude-totals"; - })(TotalsInclusion = exports.TotalsInclusion || (exports.TotalsInclusion = {})); - // How tick marks are being calculated - var AxisOptionsTickMarkState; - (function (AxisOptionsTickMarkState) { - // - AxisOptionsTickMarkState["TicksNone"] = "ticks-None"; - // - AxisOptionsTickMarkState["TicksAutomatic"] = "ticks-automatic"; - // - AxisOptionsTickMarkState["TicksManual"] = "ticks-manual"; - })(AxisOptionsTickMarkState = exports.AxisOptionsTickMarkState || (exports.AxisOptionsTickMarkState = {})); - // Setting for type of axis range - var AxisRangeType; - (function (AxisRangeType) { - // - AxisRangeType["AxisRangeType__AutomaticRange"] = "automatic-range"; - // - AxisRangeType["AxisRangeType__UniformRange"] = "uniform-range"; - // - AxisRangeType["AxisRangeType__IndependentRange"] = "independent-range"; - // - AxisRangeType["AxisRangeType__FixedRange"] = "fixed-range"; - // - AxisRangeType["AxisRangeType__FixedMin"] = "fixed-min"; - // - AxisRangeType["AxisRangeType__FixedMax"] = "fixed-max"; - // - AxisRangeType["AxisRangeType__FixedMinIndependentMax"] = "fixed-min-independent-max"; - // - AxisRangeType["AxisRangeType__FixedMaxIndependentMin"] = "fixed-max-independent-min"; - // - AxisRangeType["AxisRangeType__FixedMinUniformMax"] = "fixed-min-uniform-max"; - // - AxisRangeType["AxisRangeType__FixedMaxUniformMin"] = "fixed-max-uniform-min"; - })(AxisRangeType = exports.AxisRangeType || (exports.AxisRangeType = {})); - // represents type of widget on the toolbar of rich text editor - var RichTextEditorWidgetKey; - (function (RichTextEditorWidgetKey) { - // - RichTextEditorWidgetKey["None"] = "none"; - // - RichTextEditorWidgetKey["FontSize"] = "fontsize"; - // - RichTextEditorWidgetKey["FontName"] = "fontname"; - // - RichTextEditorWidgetKey["FontColor"] = "color"; - // - RichTextEditorWidgetKey["Bold"] = "bold"; - // - RichTextEditorWidgetKey["Italic"] = "italic"; - // - RichTextEditorWidgetKey["Underline"] = "underline"; - // - RichTextEditorWidgetKey["AlignLeft"] = "justifyleft"; - // - RichTextEditorWidgetKey["AlignCenter"] = "justifycenter"; - // - RichTextEditorWidgetKey["AlignRight"] = "justifyright"; - // - RichTextEditorWidgetKey["ClearFormatting"] = "clearformatting"; - // - RichTextEditorWidgetKey["TableauKeywords"] = "tableaukeywords"; - })(RichTextEditorWidgetKey = exports.RichTextEditorWidgetKey || (exports.RichTextEditorWidgetKey = {})); - // - var CellSizeChange; - (function (CellSizeChange) { - // - CellSizeChange["CSC_Taller"] = "taller"; - // - CellSizeChange["CSC_Shorter"] = "shorter"; - // - CellSizeChange["CSC_Wider"] = "wider"; - // - CellSizeChange["CSC_Narrower"] = "narrower"; - // - CellSizeChange["CSC_Bigger"] = "bigger"; - // - CellSizeChange["CSC_Smaller"] = "smaller"; - })(CellSizeChange = exports.CellSizeChange || (exports.CellSizeChange = {})); - // - var CellTypeEnum; - (function (CellTypeEnum) { - // - CellTypeEnum["CLT_Square"] = "square"; - // - CellTypeEnum["CLT_Text"] = "text"; - })(CellTypeEnum = exports.CellTypeEnum || (exports.CellTypeEnum = {})); - // represents type of formatting pres model - var TypeOfFormatItem; - (function (TypeOfFormatItem) { - // - TypeOfFormatItem["FT_FormatItem"] = "formatItem"; - // - TypeOfFormatItem["FT_FormatContainer"] = "formatContainer"; - // - TypeOfFormatItem["FT_FormatControl"] = "formatControl"; - })(TypeOfFormatItem = exports.TypeOfFormatItem || (exports.TypeOfFormatItem = {})); - // represents type of formatting container - var TypeOfFormatContainer; - (function (TypeOfFormatContainer) { - // - TypeOfFormatContainer["FT_FormatPane"] = "formatPane"; - // - TypeOfFormatContainer["FT_FormatSection"] = "formatSection"; - // - TypeOfFormatContainer["FT_CollapsibleSection"] = "collapsibleSection"; - // - TypeOfFormatContainer["FT_CompositeContainer"] = "compositeContainer"; - // - TypeOfFormatContainer["FT_UnitContainer"] = "unitContainer"; - // - TypeOfFormatContainer["FT_Tab"] = "tab"; - // - TypeOfFormatContainer["FT_TabGroup"] = "tabGroup"; - })(TypeOfFormatContainer = exports.TypeOfFormatContainer || (exports.TypeOfFormatContainer = {})); - // represents type of formatting control - var TypeOfFormatControl; - (function (TypeOfFormatControl) { - // - TypeOfFormatControl["FT_None"] = "none"; - // - TypeOfFormatControl["FT_NumericControl"] = "numeric-control"; - // - TypeOfFormatControl["FT_TextControl"] = "text-control"; - // - TypeOfFormatControl["FT_ColorControl"] = "color-control"; - // - TypeOfFormatControl["FT_SelectorControl"] = "selector-control"; - // - TypeOfFormatControl["FT_ToggleControl"] = "toggle-control"; - })(TypeOfFormatControl = exports.TypeOfFormatControl || (exports.TypeOfFormatControl = {})); - // represents type of formatting widget - var FormatWidgetKey; - (function (FormatWidgetKey) { - // - FormatWidgetKey["FWK_None"] = "none"; - // - FormatWidgetKey["FWK_FontFamily"] = "fontFamily"; - // - FormatWidgetKey["FWK_FontSize"] = "fontSize"; - // - FormatWidgetKey["FWK_ColorSwatch"] = "colorSwatch"; - // - FormatWidgetKey["FWK_Bold"] = "bold"; - // - FormatWidgetKey["FWK_Italics"] = "italics"; - // - FormatWidgetKey["FWK_Underline"] = "underline"; - // - FormatWidgetKey["FWK_LineVisibility"] = "lineVisibility"; - // - FormatWidgetKey["FWK_LinePattern"] = "linePattern"; - // - FormatWidgetKey["FWK_LineSize"] = "lineSize"; - // - FormatWidgetKey["FWK_NumberType"] = "numericType"; - // - FormatWidgetKey["FWK_DecimalPlaces"] = "decimalPlaces"; - // - FormatWidgetKey["FWK_ThousandsSeparator"] = "thousandsSeparator"; - // - FormatWidgetKey["FWK_NumericUnits"] = "numericUnits"; - })(FormatWidgetKey = exports.FormatWidgetKey || (exports.FormatWidgetKey = {})); - // represents identifier for each node in format pane - var FormatNodeIdentifier; - (function (FormatNodeIdentifier) { - // - FormatNodeIdentifier["Format_None_Key"] = "none"; - // - FormatNodeIdentifier["Format_Workbook_Key"] = "workbook"; - // - FormatNodeIdentifier["Format_Font_Key"] = "font"; - // - FormatNodeIdentifier["Format_Color_Key"] = "color"; - // - FormatNodeIdentifier["Format_Lines_Key"] = "lines"; - // - FormatNodeIdentifier["Format_FontAll_Key"] = "font-all"; - // - FormatNodeIdentifier["Format_FontAllControls_Key"] = "font-all-controls"; - // - FormatNodeIdentifier["Format_FontMore_Key"] = "font-more"; - // - FormatNodeIdentifier["Format_FontWorksheetTitles_Key"] = "worksheet-titles"; - // - FormatNodeIdentifier["Format_FontToolTip_Key"] = "font-tooltip"; - // - FormatNodeIdentifier["Format_FontWorksheet_Key"] = "font-worksheet"; - // - FormatNodeIdentifier["Format_FontDashTitles_Key"] = "dash-titles"; - // - FormatNodeIdentifier["Format_FontStoryTitles_Key"] = "story-titles"; - // - FormatNodeIdentifier["Format_FontTitlesControls_Key"] = "titles-controls"; - // - FormatNodeIdentifier["Format_FontTooltipControls_Key"] = "tooltip-controls"; - // - FormatNodeIdentifier["Format_FontWorksheetControls_Key"] = "worksheet-controls"; - // - FormatNodeIdentifier["Format_LineMore_Key"] = "line-more"; - // - FormatNodeIdentifier["Format_LineGrid_Key"] = "line-grid"; - // - FormatNodeIdentifier["Format_LineGridTabs_Key"] = "line-grid-tabs"; - // - FormatNodeIdentifier["Format_LineZero_Key"] = "line-zero"; - // - FormatNodeIdentifier["Format_LineZeroTabs_Key"] = "line-zero-tabs"; - // - FormatNodeIdentifier["Format_LineAxisTick_Key"] = "line-axis-tick"; - // - FormatNodeIdentifier["Format_LineAxisTickTabs_Key"] = "line-axis-tick-tabs"; - // - FormatNodeIdentifier["Format_LineAxisRuler_Key"] = "line-axis-ruler"; - // - FormatNodeIdentifier["Format_LineAxisRulerTabs_Key"] = "line-axis-ruler-tabs"; - // - FormatNodeIdentifier["Format_LineHeaderDivider_Key"] = "line-header-divider"; - // - FormatNodeIdentifier["Format_LineHeaderDividerTabs_Key"] = "line-header-divider-tabs"; - // - FormatNodeIdentifier["Format_LinePaneDivider_Key"] = "line-paneDivider"; - // - FormatNodeIdentifier["Format_LinePaneDividerTabs_Key"] = "line-paneDivider-tabs"; - // - FormatNodeIdentifier["Format_LineGridAll_Key"] = "line-grid-all"; - // - FormatNodeIdentifier["Format_LineGridRow_Key"] = "line-grid-row"; - // - FormatNodeIdentifier["Format_LineGridColumn_Key"] = "line-grid-column"; - // - FormatNodeIdentifier["Format_LineZeroAll_Key"] = "line-zero-all"; - // - FormatNodeIdentifier["Format_LineZeroRow_Key"] = "line-zero-row"; - // - FormatNodeIdentifier["Format_LineZeroColumn_Key"] = "line-zero-column"; - // - FormatNodeIdentifier["Format_LineAxisTickAll_Key"] = "line-axis-tick-all"; - // - FormatNodeIdentifier["Format_LineAxisTickRow_Key"] = "line-axis-tick-row"; - // - FormatNodeIdentifier["Format_LineAxisTickColumn_Key"] = "line-axis-tick-column"; - // - FormatNodeIdentifier["Format_LineAxisRulerAll_Key"] = "line-axis-ruler-all"; - // - FormatNodeIdentifier["Format_LineAxisRulerRow_Key"] = "line-axis-ruler-row"; - // - FormatNodeIdentifier["Format_LineAxisRulerColumn_Key"] = "line-axis-ruler-column"; - // - FormatNodeIdentifier["Format_LineReference_Key"] = "line-reference"; - // - FormatNodeIdentifier["Format_LineDrop_Key"] = "line-drop"; - // - FormatNodeIdentifier["Format_LineTrend_Key"] = "line-trend"; - // - FormatNodeIdentifier["Format_LineVisibility_Key"] = "line-visibility"; - // - FormatNodeIdentifier["Format_LinePattern_Key"] = "line-pattern"; - // - FormatNodeIdentifier["Format_LineWidth_Key"] = "line-width"; - // - FormatNodeIdentifier["Format_LineColor_Key"] = "line-color"; - // - FormatNodeIdentifier["Format_TickColor_Key"] = "tick-color"; - // - FormatNodeIdentifier["Format_BorderPattern_Key"] = "border-pattern"; - // - FormatNodeIdentifier["Format_BorderColor_Key"] = "border-color"; - // - FormatNodeIdentifier["Format_DividerColor_Key"] = "divider-color"; - // - FormatNodeIdentifier["Format_FontFamily_Key"] = "font-family-key"; - // - FormatNodeIdentifier["Format_FontSize_Key"] = "font-size-key"; - // - FormatNodeIdentifier["Format_Bold_Key"] = "bold-key"; - // - FormatNodeIdentifier["Format_Italics_Key"] = "italics-key"; - // - FormatNodeIdentifier["Format_Underline_Key"] = "underline-key"; - // - FormatNodeIdentifier["Format_FontColor_Key"] = "font-color-key"; - // - FormatNodeIdentifier["Format_Number_Container_Key"] = "number-container"; - // - FormatNodeIdentifier["Format_Number_Type_Key"] = "number-container-type"; - // - FormatNodeIdentifier["Format_Number_Units_Key"] = "number-container-units"; - // - FormatNodeIdentifier["Format_Number_Decimal_Key"] = "number-container-decimal"; - // - FormatNodeIdentifier["Format_Number_Thousands_Separator_Key"] = "number-container-thousands-separator"; - // - FormatNodeIdentifier["Format_FontPickerMinimal_Key"] = "font-picker-minimal"; - // - FormatNodeIdentifier["Format_FontPickerDefault_Key"] = "font-picker-default"; - // - FormatNodeIdentifier["Format_LinePickerDefault_Key"] = "line-picker-default"; - // - FormatNodeIdentifier["Format_LinePickerNoVis_Key"] = "line-picker-no-visibility"; - // - FormatNodeIdentifier["Format_LineAxisTickPicker_Key"] = "line-axis-tick-picker"; - })(FormatNodeIdentifier = exports.FormatNodeIdentifier || (exports.FormatNodeIdentifier = {})); - // Format prepended to format strings to specify type - var FormatCode; - (function (FormatCode) { - // - FormatCode["AutoFormat"] = "auto-format"; - // - FormatCode["SystemLongDate"] = "system-long-date"; - // - FormatCode["SystemShortDate"] = "system-short-date"; - // - FormatCode["SystemNumber"] = "system-number"; - // - FormatCode["SystemCurrency"] = "system-currency"; - // - FormatCode["SystemTime"] = "system-time"; - // - FormatCode["Custom"] = "custom"; - // - FormatCode["CustomICU"] = "custom-icu"; - // - FormatCode["CustomNumber"] = "custom-number"; - // - FormatCode["CustomCurrency"] = "custom-currency"; - // - FormatCode["CustomScientific"] = "custom-scientific"; - // - FormatCode["CustomPercentage"] = "custom-percentage"; - })(FormatCode = exports.FormatCode || (exports.FormatCode = {})); - // Units specified in a format string - var UnitsFormatEnum; - (function (UnitsFormatEnum) { - // - UnitsFormatEnum["UnitsFmtNone"] = "units-none"; - // - UnitsFormatEnum["UnitsFmtThousands"] = "units-thousands"; - // - UnitsFormatEnum["UnitsFmtMillions"] = "units-millions"; - // - UnitsFormatEnum["UnitsFmtBillionsEnglish"] = "units-billions-english"; - // - UnitsFormatEnum["UnitsFmtBillionsStandard"] = "units-billions-standard"; - })(UnitsFormatEnum = exports.UnitsFormatEnum || (exports.UnitsFormatEnum = {})); - // represents the color swatch that will be used in the ColorControlPresModel - var ColorSwatchType; - (function (ColorSwatchType) { - // - ColorSwatchType["CST_Dark"] = "dark-swatch"; - // - ColorSwatchType["CST_Light"] = "light-swatch"; - })(ColorSwatchType = exports.ColorSwatchType || (exports.ColorSwatchType = {})); - // represents the type of a style picker, affecting the preview rendering and, possibly, the layout - var PickerType; - (function (PickerType) { - // - PickerType["PT_None"] = "none"; - // - PickerType["PT_Font"] = "font"; - // - PickerType["PT_Line"] = "line"; - // - PickerType["PT_Number"] = "number"; - })(PickerType = exports.PickerType || (exports.PickerType = {})); - // - var UpdateScope; - (function (UpdateScope) { - // - UpdateScope["US_Worksheet"] = "worksheet"; - // - UpdateScope["US_Dashboard"] = "dashboard"; - // - UpdateScope["US_QuickFilters"] = "quick-filters"; - // - UpdateScope["US_Story"] = "story"; - })(UpdateScope = exports.UpdateScope || (exports.UpdateScope = {})); - // - var ParameterCtrlTypesDisplayMode; - (function (ParameterCtrlTypesDisplayMode) { - // - ParameterCtrlTypesDisplayMode["MODE_TYPE_IN"] = "type_in"; - // - ParameterCtrlTypesDisplayMode["MODE_COMPACT_LIST"] = "compact"; - // - ParameterCtrlTypesDisplayMode["MODE_LIST"] = "list"; - // - ParameterCtrlTypesDisplayMode["MODE_SLIDER"] = "slider"; - // - ParameterCtrlTypesDisplayMode["MODE_DATETIME"] = "datetime"; - })(ParameterCtrlTypesDisplayMode = exports.ParameterCtrlTypesDisplayMode || (exports.ParameterCtrlTypesDisplayMode = {})); - // flags for display options - var ParameterCtrlTypesDisplayFlag; - (function (ParameterCtrlTypesDisplayFlag) { - // - ParameterCtrlTypesDisplayFlag["DISPLAY_CUSTOM_TITLE"] = "custom_title"; - // - ParameterCtrlTypesDisplayFlag["DISPLAY_HIDE_SLIDER_SLIDER"] = "hide_slider_slider"; - // - ParameterCtrlTypesDisplayFlag["DISPLAY_HIDE_SLIDER_READOUT"] = "hide_slider_readout"; - // - ParameterCtrlTypesDisplayFlag["DISPLAY_HIDE_SLIDER_BUTTONS"] = "hide_slider_buttons"; - })(ParameterCtrlTypesDisplayFlag = exports.ParameterCtrlTypesDisplayFlag || (exports.ParameterCtrlTypesDisplayFlag = {})); - // The follow supports 1024 custom palettes, each with 4m shapes. Encoding is palette << PaletteShift | shape. - var ShapeEncodeConstants; - (function (ShapeEncodeConstants) { - // Shift value for palette - ShapeEncodeConstants["EncodePaletteShift"] = "paletteShift"; - // Mask for getting palette from encoded value. (Then shift down) - ShapeEncodeConstants["EncodePaletteMask"] = "paletteMask"; - // Mask for getting shape from encoded value - ShapeEncodeConstants["EncodeShapeMask"] = "shapeMask"; - })(ShapeEncodeConstants = exports.ShapeEncodeConstants || (exports.ShapeEncodeConstants = {})); - // - var ShapeType; - (function (ShapeType) { - // - ShapeType["ShapeCircle"] = "circle"; - // - ShapeType["ShapeSquare"] = "square"; - // - ShapeType["ShapePlus"] = "plus"; - // - ShapeType["ShapeTimes"] = "times"; - // - ShapeType["ShapeAsterisk"] = "asterisk"; - // - ShapeType["ShapeDiamond"] = "diamond"; - // - ShapeType["ShapeTriangle"] = "triangle"; - // - ShapeType["ShapeDownTriangle"] = "down-triangle"; - // - ShapeType["ShapeLeftTriangle"] = "left-triangle"; - // - ShapeType["ShapeRightTriangle"] = "right-triangle"; - // - ShapeType["MaxAllShapes"] = "invalid"; - })(ShapeType = exports.ShapeType || (exports.ShapeType = {})); - // - var ShapePalette; - (function (ShapePalette) { - // built-in palette - ShapePalette["ShapePaletteFilled"] = "filled"; - // custom palettes - ShapePalette["ShapePaletteCustom1"] = "custom1"; - // - ShapePalette["ShapePaletteCustom2"] = "custom2"; - // - ShapePalette["ShapePaletteCustom3"] = "custom3"; - // - ShapePalette["ShapePaletteCustom4"] = "custom4"; - // - ShapePalette["ShapePaletteCustom5"] = "custom5"; - // - ShapePalette["ShapePaletteCustom6"] = "custom6"; - // - ShapePalette["ShapePaletteCustom7"] = "custom7"; - // - ShapePalette["ShapePaletteCustom8"] = "custom8"; - // - ShapePalette["ShapePaletteCustom9"] = "custom9"; - // - ShapePalette["ShapePaletteCustom10"] = "custom10"; - // - ShapePalette["ShapePaletteCustom11"] = "custom11"; - // and so on... - ShapePalette["ShapePaletteCustom12"] = "custom12"; - // - ShapePalette["ShapePaletteHidden"] = "hidden"; - })(ShapePalette = exports.ShapePalette || (exports.ShapePalette = {})); - // ShapeType and palette mapped into a single value. This enum depends on ShapeType and the implementation of ShapeManager::IntEncode. - var ShapeID; - (function (ShapeID) { - // - ShapeID["ShapeIDCircle"] = "shapeIDCircle"; - // - ShapeID["ShapeIDSquare"] = "shapeIDSquare"; - // - ShapeID["ShapeIDPlus"] = "shapeIDPlus"; - // - ShapeID["ShapeIDTimes"] = "shapeIDTimes"; - // - ShapeID["ShapeIDAsterisk"] = "shapeIDAsterisk"; - // - ShapeID["ShapeIDDiamond"] = "shapeIDDiamond"; - // - ShapeID["ShapeIDTriangle"] = "shapeIDTriangle"; - // - ShapeID["ShapeIDDownTriangle"] = "shapeIDDownTriangle"; - // - ShapeID["ShapeIDLeftTriangle"] = "shapeIDLeftTriangle"; - // - ShapeID["ShapeIDRightTriangle"] = "shapeIDRightTriangle"; - // - ShapeID["ShapeIDFilledCircle"] = "shapeIDFilledCircle"; - // - ShapeID["ShapeIDFilledSquare"] = "shapeIDFilledSquare"; - // - ShapeID["ShapeIDFilledPlus"] = "shapeIDFilledPlus"; - // - ShapeID["ShapeIDFilledTimes"] = "shapeIDFilledTimes"; - // - ShapeID["ShapeIDFilledStar"] = "shapeIDFilledStar"; - // - ShapeID["ShapeIDFilledDiamond"] = "shapeIDFilledDiamond"; - // - ShapeID["ShapeIDFilledTriangle"] = "shapeIDFilledTriangle"; - // - ShapeID["ShapeIDFilledDownTriangle"] = "shapeIDFilledDownTriangle"; - // - ShapeID["ShapeIDFilledLeftTriangle"] = "shapeIDFilledLeftTriangle"; - // - ShapeID["ShapeIDFilledRightTriangle"] = "shapeIDFilledRightTriangle"; - // 0+(ShapePaletteHidden< -1; - }); - // Create a mapping of which index in the data dictionary our columns are in - var columnIndices = columns.map(function (vizDataColumn) { - // The columnIndex is in the same position as the paneIndex - var paneIndex = vizDataColumn.paneIndices.indexOf(i); - var columnIndex = vizDataColumn.columnIndices[paneIndex]; - return columnIndex; - }); - // Get the data for the pane we are processing - var vizPane = vizData.paneColumnsData.paneColumnsList[i]; - if (vizPane.vizPaneColumns.length !== columns.length) { - throw new Error('Malformed data table'); - } - var headers = new Array(); - var rows = new Array(); - // Column 0 will be the tuple id column. We can use this as a counter for how many rows we have - var tupleIds = vizPane.vizPaneColumns[0].tupleIds; - for (var tupleIndex = 0; tupleIndex < tupleIds.length; tupleIndex++) { - // We will have 1 less value in this row since there's the tupleId column - var cells = new Array(vizPane.vizPaneColumns.length - 1); - for (var j = 1 /* skip the first which is tuple ids */; j < vizPane.vizPaneColumns.length; j++) { - // Next, we need to figure out which column we are reading data for - var column = columns[columnIndices[j]]; - var vizPaneColumnData = vizPane.vizPaneColumns[j]; - // Define the header when we are processing the first row - if (tupleIndex === 0) { - var header = { - dataType: EnumMappings_1.PresLayerToApiEnumMappings.dataType.convert(column.dataType), - fieldName: column.fn, - isReferenced: true, - index: j - 1, - fieldCaption: column.fieldCaption - }; - headers.push(header); - } - var value = UnderlyingDataConverter_1.UnderlyingDataConverter.lookupValueFromDictionary(dataDictionary, column.dataType, vizPaneColumnData.valueIndices[tupleIndex]); - var aliasValue = UnderlyingDataConverter_1.UnderlyingDataConverter.lookupValueFromDictionary(dataDictionary, column.dataType, vizPaneColumnData.aliasIndices[tupleIndex]) || ''; - var formattedValue = aliasValue; // TODO - Figure out how to use the formatStrings - var dataCell = { - value: value, - formattedValue: formattedValue, - aliasedValue: aliasValue - }; - // Add our cell to this row - cells[j - 1] = dataCell; - } - rows.push(cells); - } - var dataTable = { - dataTable: rows, - headers: headers - }; - result.push(dataTable); - }; - // The data model for the VizDataPresModel is a little strange, so this parsing takes some time to figure out. - // There can be multiple panes of data, so we must go through them one at a time to create data tables - for (var i = 0; i < vizData.paneColumnsData.paneColumnsList.length; i++) { - _loop_1(i); - } - return result; - }; - return ActiveMarksDataConverter; - }()); - exports.ActiveMarksDataConverter = ActiveMarksDataConverter; - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Enums = __webpack_require__(22); - var EnumMappings_1 = __webpack_require__(18); - /** - * Contains static helper methods for converting from an underlying data pres model into the api representation. - * Most of the code is a direct port from ApiUnderlyingDataHandler.cs - * https://opengrok/source/xref/teams_near/workgroup/vqlweb/scriptsharp/src/UI/Api/ApiUnderlyingDataHandler.cs - */ - var UnderlyingDataConverter = (function () { - function UnderlyingDataConverter() { - } - UnderlyingDataConverter.lookupValueFromDictionary = function (dataDictionary, dt, index) { - if (index < 0) { - // per cl 280396 / bugzid 81197 negative data value index means that it is special - dt = Enums.DataType.DT_STRING; - index = -index - 1; - } - var result = null; - var rawValue = UnderlyingDataConverter.getRawValue(dataDictionary, dt, index); - if (rawValue !== null) { - result = rawValue.toString(); - } - return result; - }; - /* tslint:disable-next-line:no-any */ - UnderlyingDataConverter.getRawValue = function (dataDictionary, dt, index) { - if (!dataDictionary.dataSegments) { - return null; - } - for (var _i = 0, _a = Object.keys(dataDictionary.dataSegments); _i < _a.length; _i++) { - var key = _a[_i]; - var dataSegment = dataDictionary.dataSegments[key]; - for (var _b = 0, _c = dataSegment.dataColumns; _b < _c.length; _b++) { - var dataColumn = _c[_b]; - if (!dataColumn || dataColumn.dataType !== dt) { - continue; - } - if (index < dataColumn.dataValues.length) { - return dataColumn.dataValues[index]; - } - index -= dataColumn.dataValues.length; - break; - } - } - return null; - }; - UnderlyingDataConverter.buildDataTable = function (dataDictionary, columns) { - var result = { - dataTable: UnderlyingDataConverter.buildTable(dataDictionary, columns), - headers: columns.map(function (c, i) { return UnderlyingDataConverter.buildColumnModel(c, i); }) - }; - return result; - }; - UnderlyingDataConverter.buildUnderlyingDataTable = function (isSummary, underlyingDataTable) { - var result = { - data: UnderlyingDataConverter.buildDataTable(underlyingDataTable.dataDictionary, underlyingDataTable.underlyingDataTableColumns), - isSummary: isSummary - }; - return result; - }; - UnderlyingDataConverter.buildActiveMarksTable = function (dataDictionary, vizData) { - throw new Error(); - }; - UnderlyingDataConverter.buildColumnModel = function (column, index) { - return { - dataType: EnumMappings_1.PresLayerToApiEnumMappings.dataType.convert(column.dataType), - fieldName: column.fn, - fieldCaption: column.fieldCaption, - isReferenced: !!column.isReferenced, - index: index - }; - }; - UnderlyingDataConverter.buildTable = function (dataDictionary, columns) { - if (columns.length === 0) { - return new Array(); - } - var rowCount = columns[0].formatValIdxs.length; - var columnCount = columns.length; - var result = new Array(rowCount); - // Initialize all of our rows - for (var rowIndex = 0; rowIndex < rowCount; rowIndex++) { - result[rowIndex] = new Array(columnCount); - } - // Go through column-by-column and convert the values - for (var columnIndex = 0; columnIndex < columnCount; columnIndex++) { - var column = columns[columnIndex]; - for (var rowIndex = 0; rowIndex < rowCount; rowIndex++) { - var formattedValue = UnderlyingDataConverter.lookupValueFromDictionary(dataDictionary, Enums.DataType.DT_STRING, column.formatValIdxs[rowIndex]); - if (formattedValue === null) { - throw new Error('formattedValue was null'); - } - var value = { - value: UnderlyingDataConverter.lookupValueFromDictionary(dataDictionary, column.dataType, column.valueIndices[rowIndex]), - formattedValue: formattedValue, - aliasedValue: formattedValue - }; - result[rowIndex][columnIndex] = value; - } - } - return result; - }; - return UnderlyingDataConverter; - }()); - exports.UnderlyingDataConverter = UnderlyingDataConverter; - - -/***/ }, -/* 26 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var EnumMappings_1 = __webpack_require__(18); - /** - * Class containing helper methods for converting from ApiPresModels to their PresLayer equivalents - * - * @export - * @class ApiToPresLayerConverter - */ - var ApiToPresLayerConverter = (function () { - function ApiToPresLayerConverter() { - } - ApiToPresLayerConverter.convertSheetPath = function (apiSheetPath) { - if (!apiSheetPath) { - throw new Error('sheetPath not defined'); - } - var result = { - sheetName: apiSheetPath.sheetName, - isDashboard: apiSheetPath.isDashboard, - storyboard: apiSheetPath.storyboard || '', - flipboardZoneId: apiSheetPath.flipboardZoneID || 0, - storyPointId: apiSheetPath.storyPointID || 0, - }; - return result; - }; - ApiToPresLayerConverter.convertAddInLocator = function (apiAddInLocator) { - var result = { - addInInstanceId: apiAddInLocator.instanceId, - sheetPath: ApiToPresLayerConverter.convertSheetPath(apiAddInLocator.dashboardPath) - }; - return result; - }; - ApiToPresLayerConverter.convertVisualId = function (apiVisualid) { - var result = { - worksheet: apiVisualid.worksheet, - dashboard: apiVisualid.dashboard, - storyboard: apiVisualid.storyboard, - storyPointId: apiVisualid.storyPointID, - flipboardZoneId: apiVisualid.flipboardZoneID - }; - return result; - }; - ApiToPresLayerConverter.convertVisualIdToWorksheet = function (apiVisualId) { - return apiVisualId.worksheet; - }; - ApiToPresLayerConverter.convertVisualIdToDashboard = function (apiVisualId) { - return apiVisualId.dashboard || ''; - }; - ApiToPresLayerConverter.convertFilterValues = function (filterValues) { - if (filterValues.length === 0) { - // platform code expects an empty string for clearing filter values - return ['']; - } - return filterValues; - }; - ApiToPresLayerConverter.convertFilterType = function (filterUpdateType) { - return EnumMappings_1.ApiToPresLayerEnumMappings.filterUpdateType.convert(filterUpdateType); - }; - ApiToPresLayerConverter.ConvertNullOption = function (nullOption) { - return EnumMappings_1.ApiToPresLayerEnumMappings.nullOption.convert(nullOption); - }; - return ApiToPresLayerConverter; - }()); - exports.ApiToPresLayerConverter = ApiToPresLayerConverter; - - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Simple registry class which creates a mapping based on two keys. - * - * @export - * @class MappingRegistry - * @template TInputEnumType - * @template TOutputEnumType - * @template TMappingStorageType - */ - var MappingRegistry = (function () { - function MappingRegistry() { - this._registry = {}; - } - MappingRegistry.prototype.has = function (inputType, outputType) { - var key = this.makeKey(inputType, outputType); - if (!this._registry.hasOwnProperty(key)) { - return false; - } - if (!this._registry[key]) { - return false; - } - return true; - }; - MappingRegistry.prototype.get = function (inputType, outputType) { - if (!this.has(inputType, outputType)) { - throw new Error('Missing requested mapping: ' + inputType + ' to ' + outputType); - } - var key = this.makeKey(inputType, outputType); - return this._registry[key]; - }; - MappingRegistry.prototype.addRegistration = function (inputType, outputType, storageItem) { - var key = this.makeKey(inputType, outputType); - // Add this item - this._registry[key] = storageItem; - }; - /** - * Combines the two keys into a unique string - * - * @private - * @param {TInputEnumType} inputType - * @param {TOutputEnumType} outputType - * @returns {string} - * @memberof MappingRegistry - */ - MappingRegistry.prototype.makeKey = function (inputType, outputType) { - var keyObj = { input: inputType, output: outputType }; - return JSON.stringify(keyObj); - }; - return MappingRegistry; - }()); - exports.MappingRegistry = MappingRegistry; - - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(4); - var EnumMappings_1 = __webpack_require__(18); - /** - * Contains logic for converting Parameter models into their equivalent Api versions - */ - var ParametersDataConverter = (function () { - function ParametersDataConverter() { - } - ParametersDataConverter.convertParameterList = function (parameters) { - return parameters.map(ParametersDataConverter.convertParameter); - }; - // Converts a single parameter. - // Rough port of https://opengrok/source/xref/dev_nessie/workgroup/vqlweb/scriptsharp/src/UI/Api/ApiParameterHandler.cs#95 - ParametersDataConverter.convertParameter = function (param) { - var currentValue = ParametersDataConverter.convertAliasedDataValue(param.valueAlias, param.formattedValue); - var allowableValuesType = EnumMappings_1.PresLayerToApiEnumMappings.parameterTypesDomainType.convert(param.parameterDomainType); - var result = { - name: param.fieldCaption, - fieldName: param.parameterName, - dataType: EnumMappings_1.PresLayerToApiEnumMappings.dataType.convert(param.dataType), - currentValue: currentValue, - allowableValuesType: allowableValuesType - }; - if (allowableValuesType === api_internal_contract_1.DomainRestrictionType.List) { - var allowableValues = new Array(); - for (var i = 0; i < param.valuesAliases.length; i++) { - var adv = param.valuesAliases[i]; - var formattedValue = param.formattedValues[i]; - allowableValues.push(ParametersDataConverter.convertAliasedDataValue(adv, formattedValue)); - } - result.allowableValues = allowableValues; - } - else if (allowableValuesType === api_internal_contract_1.DomainRestrictionType.Range) { - result.minValue = ParametersDataConverter.makeDataValue(param.valueMin, param.formattedMin); - result.maxValue = ParametersDataConverter.makeDataValue(param.valueMax, param.formattedMax); - result.stepSize = ParametersDataConverter.convertNumber(result.dataType, param.valueInc); - result.dateStepPeriod = EnumMappings_1.PresLayerToApiEnumMappings.dateStepPeriod.convert(param.datePeriodType, false); - } - else { - // Nothing to do in the case that all values are allowed - } - return result; - }; - ParametersDataConverter.convertNumber = function (dataType, value) { - if (value) { - if (dataType === api_internal_contract_1.DataType.Int || dataType === api_internal_contract_1.DataType.Date || dataType === api_internal_contract_1.DataType.DateTime) { - return parseInt(value, 10); - } - else if (dataType === api_internal_contract_1.DataType.Float) { - return parseFloat(value); - } - } - return undefined; - }; - /*tslint:disable-next-line:no-any */ - ParametersDataConverter.makeDataValue = function (value, formattedValue, alias) { - var result = { - value: value, - formattedValue: formattedValue, - aliasedValue: alias || formattedValue - }; - return result; - }; - /*tslint:disable-next-line:no-any */ - ParametersDataConverter.convertAliasedDataValue = function (adv, formattedValue) { - // AliasedDataValues are serialized in kind of a strange way from the platform code. They are output - // as an array of 2 values. The first is the actual value, the second is the alias. See AliasedDataValueSerializer::ToSerializer - if (!adv || !(adv instanceof Array)) { - throw new Error('Invalid aliased data value'); - } - var value = adv[0]; - var alias = adv.length < 2 ? undefined : adv[1]; - return ParametersDataConverter.makeDataValue(value, formattedValue, alias); - }; - return ParametersDataConverter; - }()); - exports.ParametersDataConverter = ParametersDataConverter; - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export(__webpack_require__(5)); - __export(__webpack_require__(6)); - __export(__webpack_require__(7)); - __export(__webpack_require__(8)); - __export(__webpack_require__(9)); - - -/***/ }, -/* 30 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Implemenation of the PresentationLayer contract with a bit of extra information - * added to work with add-ins. Most work is delegated down to the interopObject which - * communicates directly with the c++ layer via QWebChannel - * - * @class AddInApiPresLayerImpl - * @implements {contract.PresentationLayer} - */ - var AddInApiPresLayerImpl = (function () { - function AddInApiPresLayerImpl(_interopObject) { - var _this = this; - this._interopObject = _interopObject; - this._notificationHandlers = {}; - if (_interopObject && _interopObject.OnNotification) { - _interopObject.OnNotification.connect(function (notification) { - _this.dispatchNotification(notification); - }); - } - } - Object.defineProperty(AddInApiPresLayerImpl.prototype, "AddInInstanceInfo", { - /** - * Gets the instance info for this particular add-in from the c++ code - * - * @readonly - * @type {AddInInstancePresModel} - * @memberof AddInApiPresLayerImpl - */ - get: function () { - return this._interopObject.addInInstanceInfo; - }, - enumerable: true, - configurable: true - }); - /** - * Invokes a command using the pres-layer interop - * - * @template T - The expected return type - * @param {string} commandNamespace - * @param {string} commandName - * @param {object} params - * @returns {Promise} - * @memberof AddInApiPresLayerImpl - */ - AddInApiPresLayerImpl.prototype.invokeCommand = function (commandNamespace, commandName, params) { - var _this = this; - return new Promise(function (resolve, reject) { - try { - commandNamespace = commandNamespace || 'tabdoc'; - _this._interopObject.ExecuteCommand(commandNamespace, commandName, params, function (response) { - if (!response.Success) { - var msg = 'ExecuteCommand failed, with result:' + JSON.stringify(response.Result); - reject(new Error(msg)); - } - else { - resolve(response.Result); - } - }); - } - catch (err) { - reject(err); - } - }); - }; - // This implementation will registration a single instance of a notification handler with the Native C++ object, - // and implement multi-dispatch to the web objects from h.ere - AddInApiPresLayerImpl.prototype.registerNotificationHandler = function (eventId, handler) { - var _this = this; - if (eventId in this._notificationHandlers) { - this._notificationHandlers[eventId].push(handler); - } - else { - this._notificationHandlers[eventId] = [handler]; - try { - this._interopObject.RegisterNotificationHandler(eventId); - } - catch (err) { - // console.log('RegisterNotificationHandler failed: ' + err); - } - } - return function () { return _this.removeNotificationHandler(eventId, handler); }; - }; - AddInApiPresLayerImpl.prototype.removeNotificationHandler = function (eventId, handler) { - var handlerList = this._notificationHandlers[eventId]; - if (!handlerList) { - return; - } - var foundIndex = handlerList.indexOf(handler); - if (foundIndex >= 0) { - handlerList.splice(foundIndex, 1); - } - if (handlerList.length === 0) { - delete this._notificationHandlers[eventId]; - } - }; - AddInApiPresLayerImpl.prototype.dispatchNotification = function (notification) { - // console.log('received notification: ' + JSON.stringify(notification)); - var eventId = notification.eventId; - var presModel = notification.presModel; - if (eventId in this._notificationHandlers) { - var handlers = this._notificationHandlers[eventId]; - for (var i = handlers.length - 1; i >= 0; i--) { - handlers[i](presModel); - } - } - }; - return AddInApiPresLayerImpl; - }()); - exports.AddInApiPresLayerImpl = AddInApiPresLayerImpl; - - -/***/ }, -/* 31 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Implementation of the InternalApiDispatcher for desktop. Since this will run in the same - * frame as the ApiEventHandler, this class mostly just marshalls down to that implementation - * - * @export - * @class DesktopApiDispatcher - * @implements {InternalApiDispatcher} - */ - var DesktopApiDispatcher = (function () { - function DesktopApiDispatcher(_apiEventHandler) { - var _this = this; - this._apiEventHandler = _apiEventHandler; - this._notificationHandlers = []; - this._apiEventHandler.setEventHandler(function (notificationId, model) { - _this._notificationHandlers.forEach(function (handler) { return handler({ - notificationId: notificationId, - data: model - }); }); - }); - } - DesktopApiDispatcher.prototype.setVersionNumber = function (versionNumber) { - this._apiEventHandler.setVersionNumber(versionNumber); - }; - DesktopApiDispatcher.prototype.execute = function (verb, parameters) { - // Just pass this right through to the ApiEventHandler - return this._apiEventHandler.execute(verb, parameters); - }; - DesktopApiDispatcher.prototype.registerNotificationHandler = function (handler) { - this._notificationHandlers.push(handler); - }; - DesktopApiDispatcher.prototype.unregisterNotificationHandler = function (handler) { - this._notificationHandlers = this._notificationHandlers.filter(function (h) { return h !== handler; }); - }; - return DesktopApiDispatcher; - }()); - exports.DesktopApiDispatcher = DesktopApiDispatcher; - - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - __webpack_require__(33); - var qwebchannel_1 = __webpack_require__(34); - /** - * Initializes the QWebChannel contract and returns the pres layer interop object - * - * @returns {Promise} - */ - function initializeWebChannelPresLayer() { - return new Promise(function (resolve, reject) { - try { - // tslint:disable-next-line - new qwebchannel_1.QWebChannel(qt.webChannelTransport, function (channel) { - // tslint:disable-next-line - var addInPresLayer = channel.objects['addInPresLayer']; - resolve(addInPresLayer); - }); - } - catch (e) { - reject(e); - } - }); - } - exports.initializeWebChannelPresLayer = initializeWebChannelPresLayer; - - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - - -/***/ }, -/* 34 */ -/***/ function(module, exports, __webpack_require__) { - - /**************************************************************************** - ** - ** Copyright (C) 2015 The Qt Company Ltd. - ** Copyright (C) 2014 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Milian Wolff - ** Contact: http://www.qt.io/licensing/ - ** - ** This file is part of the QtWebChannel module of the Qt Toolkit. - ** - ** $QT_BEGIN_LICENSE:LGPL21$ - ** Commercial License Usage - ** Licensees holding valid commercial Qt licenses may use this file in - ** accordance with the commercial license agreement provided with the - ** Software or, alternatively, in accordance with the terms contained in - ** a written agreement between you and The Qt Company. For licensing terms - ** and conditions see http://www.qt.io/terms-conditions. For further - ** information use the contact form at http://www.qt.io/contact-us. - ** - ** GNU Lesser General Public License Usage - ** Alternatively, this file may be used under the terms of the GNU Lesser - ** General Public License version 2.1 or version 3 as published by the Free - ** Software Foundation and appearing in the file LICENSE.LGPLv21 and - ** LICENSE.LGPLv3 included in the packaging of this file. Please review the - ** following information to ensure the GNU Lesser General Public License - ** requirements will be met: https://www.gnu.org/licenses/lgpl.html and - ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. - ** - ** As a special exception, The Qt Company gives you certain additional - ** rights. These rights are described in The Qt Company LGPL Exception - ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. - ** - ** $QT_END_LICENSE$ - ** - ****************************************************************************/ - - "use strict"; - - var QWebChannelMessageTypes = { - signal: 1, - propertyUpdate: 2, - init: 3, - idle: 4, - debug: 5, - invokeMethod: 6, - connectToSignal: 7, - disconnectFromSignal: 8, - setProperty: 9, - response: 10, - }; - - var QWebChannel = function(transport, initCallback) - { - if (typeof transport !== "object" || typeof transport.send !== "function") { - console.error("The QWebChannel expects a transport object with a send function and onmessage callback property." + - " Given is: transport: " + typeof(transport) + ", transport.send: " + typeof(transport.send)); - return; - } - - var channel = this; - this.transport = transport; - - this.send = function(data) - { - if (typeof(data) !== "string") { - data = JSON.stringify(data); - } - channel.transport.send(data); - } - - this.transport.onmessage = function(message) - { - var data = message.data; - if (typeof data === "string") { - data = JSON.parse(data); - } - switch (data.type) { - case QWebChannelMessageTypes.signal: - channel.handleSignal(data); - break; - case QWebChannelMessageTypes.response: - channel.handleResponse(data); - break; - case QWebChannelMessageTypes.propertyUpdate: - channel.handlePropertyUpdate(data); - break; - default: - console.error("invalid message received:", message.data); - break; - } - } - - this.execCallbacks = {}; - this.execId = 0; - this.exec = function(data, callback) - { - if (!callback) { - // if no callback is given, send directly - channel.send(data); - return; - } - if (channel.execId === Number.MAX_VALUE) { - // wrap - channel.execId = Number.MIN_VALUE; - } - if (data.hasOwnProperty("id")) { - console.error("Cannot exec message with property id: " + JSON.stringify(data)); - return; - } - data.id = channel.execId++; - channel.execCallbacks[data.id] = callback; - channel.send(data); - }; - - this.objects = {}; - - this.handleSignal = function(message) - { - var object = channel.objects[message.object]; - if (object) { - object.signalEmitted(message.signal, message.args); - } else { - console.warn("Unhandled signal: " + message.object + "::" + message.signal); - } - } - - this.handleResponse = function(message) - { - if (!message.hasOwnProperty("id")) { - console.error("Invalid response message received: ", JSON.stringify(message)); - return; - } - channel.execCallbacks[message.id](message.data); - delete channel.execCallbacks[message.id]; - } - - this.handlePropertyUpdate = function(message) - { - for (var i in message.data) { - var data = message.data[i]; - var object = channel.objects[data.object]; - if (object) { - object.propertyUpdate(data.signals, data.properties); - } else { - console.warn("Unhandled property update: " + data.object + "::" + data.signal); - } - } - channel.exec({type: QWebChannelMessageTypes.idle}); - } - - this.debug = function(message) - { - channel.send({type: QWebChannelMessageTypes.debug, data: message}); - }; - - channel.exec({type: QWebChannelMessageTypes.init}, function(data) { - for (var objectName in data) { - var object = new QObject(objectName, data[objectName], channel); - } - // now unwrap properties, which might reference other registered objects - for (var objectName in channel.objects) { - channel.objects[objectName].unwrapProperties(); - } - if (initCallback) { - initCallback(channel); - } - channel.exec({type: QWebChannelMessageTypes.idle}); - }); - }; - - function QObject(name, data, webChannel) - { - this.__id__ = name; - webChannel.objects[name] = this; - - // List of callbacks that get invoked upon signal emission - this.__objectSignals__ = {}; - - // Cache of all properties, updated when a notify signal is emitted - this.__propertyCache__ = {}; - - var object = this; - - // ---------------------------------------------------------------------- - - this.unwrapQObject = function(response) - { - if (response instanceof Array) { - // support list of objects - var ret = new Array(response.length); - for (var i = 0; i < response.length; ++i) { - ret[i] = object.unwrapQObject(response[i]); - } - return ret; - } - if (!response - || !response["__QObject*__"] - || response["id"] === undefined) { - return response; - } - - var objectId = response.id; - if (webChannel.objects[objectId]) - return webChannel.objects[objectId]; - - if (!response.data) { - console.error("Cannot unwrap unknown QObject " + objectId + " without data."); - return; - } - - var qObject = new QObject( objectId, response.data, webChannel ); - qObject.destroyed.connect(function() { - if (webChannel.objects[objectId] === qObject) { - delete webChannel.objects[objectId]; - // reset the now deleted QObject to an empty {} object - // just assigning {} though would not have the desired effect, but the - // below also ensures all external references will see the empty map - // NOTE: this detour is necessary to workaround QTBUG-40021 - var propertyNames = []; - for (var propertyName in qObject) { - propertyNames.push(propertyName); - } - for (var idx in propertyNames) { - delete qObject[propertyNames[idx]]; - } - } - }); - // here we are already initialized, and thus must directly unwrap the properties - qObject.unwrapProperties(); - return qObject; - } - - this.unwrapProperties = function() - { - for (var propertyIdx in object.__propertyCache__) { - object.__propertyCache__[propertyIdx] = object.unwrapQObject(object.__propertyCache__[propertyIdx]); - } - } - - function addSignal(signalData, isPropertyNotifySignal) - { - var signalName = signalData[0]; - var signalIndex = signalData[1]; - object[signalName] = { - connect: function(callback) { - if (typeof(callback) !== "function") { - console.error("Bad callback given to connect to signal " + signalName); - return; - } - - object.__objectSignals__[signalIndex] = object.__objectSignals__[signalIndex] || []; - object.__objectSignals__[signalIndex].push(callback); - - if (!isPropertyNotifySignal && signalName !== "destroyed") { - // only required for "pure" signals, handled separately for properties in propertyUpdate - // also note that we always get notified about the destroyed signal - webChannel.exec({ - type: QWebChannelMessageTypes.connectToSignal, - object: object.__id__, - signal: signalIndex - }); - } - }, - disconnect: function(callback) { - if (typeof(callback) !== "function") { - console.error("Bad callback given to disconnect from signal " + signalName); - return; - } - object.__objectSignals__[signalIndex] = object.__objectSignals__[signalIndex] || []; - var idx = object.__objectSignals__[signalIndex].indexOf(callback); - if (idx === -1) { - console.error("Cannot find connection of signal " + signalName + " to " + callback.name); - return; - } - object.__objectSignals__[signalIndex].splice(idx, 1); - if (!isPropertyNotifySignal && object.__objectSignals__[signalIndex].length === 0) { - // only required for "pure" signals, handled separately for properties in propertyUpdate - webChannel.exec({ - type: QWebChannelMessageTypes.disconnectFromSignal, - object: object.__id__, - signal: signalIndex - }); - } - } - }; - } - - /** - * Invokes all callbacks for the given signalname. Also works for property notify callbacks. - */ - function invokeSignalCallbacks(signalName, signalArgs) - { - var connections = object.__objectSignals__[signalName]; - if (connections) { - connections.forEach(function(callback) { - callback.apply(callback, signalArgs); - }); - } - } - - this.propertyUpdate = function(signals, propertyMap) - { - // update property cache - for (var propertyIndex in propertyMap) { - var propertyValue = propertyMap[propertyIndex]; - object.__propertyCache__[propertyIndex] = propertyValue; - } - - for (var signalName in signals) { - // Invoke all callbacks, as signalEmitted() does not. This ensures the - // property cache is updated before the callbacks are invoked. - invokeSignalCallbacks(signalName, signals[signalName]); - } - } - - this.signalEmitted = function(signalName, signalArgs) - { - invokeSignalCallbacks(signalName, signalArgs); - } - - function addMethod(methodData) - { - var methodName = methodData[0]; - var methodIdx = methodData[1]; - object[methodName] = function() { - var args = []; - var callback; - for (var i = 0; i < arguments.length; ++i) { - if (typeof arguments[i] === "function") - callback = arguments[i]; - else - args.push(arguments[i]); - } - - webChannel.exec({ - "type": QWebChannelMessageTypes.invokeMethod, - "object": object.__id__, - "method": methodIdx, - "args": args - }, function(response) { - if (response !== undefined) { - var result = object.unwrapQObject(response); - if (callback) { - (callback)(result); - } - } - }); - }; - } - - function bindGetterSetter(propertyInfo) - { - var propertyIndex = propertyInfo[0]; - var propertyName = propertyInfo[1]; - var notifySignalData = propertyInfo[2]; - // initialize property cache with current value - // NOTE: if this is an object, it is not directly unwrapped as it might - // reference other QObject that we do not know yet - object.__propertyCache__[propertyIndex] = propertyInfo[3]; - - if (notifySignalData) { - if (notifySignalData[0] === 1) { - // signal name is optimized away, reconstruct the actual name - notifySignalData[0] = propertyName + "Changed"; - } - addSignal(notifySignalData, true); - } - - Object.defineProperty(object, propertyName, { - get: function () { - var propertyValue = object.__propertyCache__[propertyIndex]; - if (propertyValue === undefined) { - // This shouldn't happen - console.warn("Undefined value in property cache for property \"" + propertyName + "\" in object " + object.__id__); - } - - return propertyValue; - }, - set: function(value) { - if (value === undefined) { - console.warn("Property setter for " + propertyName + " called with undefined value!"); - return; - } - object.__propertyCache__[propertyIndex] = value; - webChannel.exec({ - "type": QWebChannelMessageTypes.setProperty, - "object": object.__id__, - "property": propertyIndex, - "value": value - }); - } - }); - - } - - // ---------------------------------------------------------------------- - - data.methods.forEach(addMethod); - - data.properties.forEach(bindGetterSetter); - - data.signals.forEach(function(signal) { addSignal(signal, false); }); - - for (var name in data.enums) { - object[name] = data.enums[name]; - } - } - - //required for use with nodejs - if (true) { - module.exports = { - QWebChannel: QWebChannel - }; - } - - -/***/ } -/******/ ]) -}); -; -//# sourceMappingURL=frelard-desktop-bootstrap.js.map -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); - else if(typeof define === 'function' && define.amd) - define([], factory); - else if(typeof exports === 'object') - exports["tableau"] = factory(); - else - root["tableau"] = factory(); -})(this, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; -/******/ -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.loaded = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = "/dist/"; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - Object.defineProperty(exports, "__esModule", { value: true }); - // Due to the way we configured webpack, we should be exporting things which will be under - // a global variable called "tableau". Export everything we want to be visible under tableau - // from this file. - var AddIn_1 = __webpack_require__(1); - var AddInImpl_1 = __webpack_require__(2); - var addInImpl = new AddInImpl_1.AddInImpl(); - exports.addIn = new AddIn_1.AddIn(addInImpl); - // Export Enums - var api_external_contract_1 = __webpack_require__(50); - exports.FilterUpdateType = api_external_contract_1.FilterUpdateType; - exports.NullOption = api_external_contract_1.NullOption; - exports.TableauEventType = api_external_contract_1.TableauEventType; - - -/***/ }, -/* 1 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Implementation of the external AddIn namespace. - */ - var AddIn = (function () { - function AddIn(addInImpl) { - this.addInImpl = addInImpl; - this.addInImpl = addInImpl; - } - Object.defineProperty(AddIn.prototype, "dashboardContent", { - get: function () { - return this.addInImpl.dashboardContent; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(AddIn.prototype, "environment", { - get: function () { - return this.addInImpl.environment; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(AddIn.prototype, "settings", { - get: function () { - return this.addInImpl.settings; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(AddIn.prototype, "ui", { - get: function () { - throw new Error('API call not yet implemented'); - }, - enumerable: true, - configurable: true - }); - AddIn.prototype.initializeAsync = function () { - return this.addInImpl.initializeAsync(); - }; - return AddIn; - }()); - exports.AddIn = AddIn; - - -/***/ }, -/* 2 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(3); - var api_shared_1 = __webpack_require__(9); - var Dashboard_1 = __webpack_require__(40); - var DashboardContent_1 = __webpack_require__(42); - var Environment_1 = __webpack_require__(43); - var Settings_1 = __webpack_require__(44); - var RegisterAllAddInServices_1 = __webpack_require__(45); - var VersionNumber_1 = __webpack_require__(48); - var DashboardImpl_1 = __webpack_require__(49); - var SettingsImpl_1 = __webpack_require__(56); - var AddInImpl = (function () { - function AddInImpl() { - } - AddInImpl.prototype.initializeAsync = function () { - var _this = this; - if (!this._initializationPromise) { - this._initializationPromise = new Promise(function (resolve, reject) { - // First thing we want to do is check to see if there is a desktop dispatcher already registered for us - if (api_internal_contract_1.InternalApiDispatcherHolder.hasDesktopApiDispatcherPromise()) { - // Running in desktop, use this promise - var desktopDispatcherPromise = api_internal_contract_1.InternalApiDispatcherHolder.getDesktopDispatcherPromise(); - desktopDispatcherPromise.then(_this.onDispatcherReceived.bind(_this)).then(function () { resolve(); }); - } - else { - reject('Not running in desktop. Server support coming soon!'); - } - }); - } - return this._initializationPromise; - }; - AddInImpl.prototype.onDispatcherReceived = function (dispatcher) { - var _this = this; - dispatcher.setVersionNumber(VersionNumber_1.VersionNumber.Instance); - // Call to register all the services which will use the newly initialized dispatcher - api_shared_1.registerAllSharedServices(dispatcher); - RegisterAllAddInServices_1.registerAllAddInServices(dispatcher); - // Get the initialization service and initialize this add-in - var initializationService = api_shared_1.ApiServiceRegistry.instance.getService("InitializationService" /* InitializationService */); - return initializationService.initializeDashboardAddInAsync().then(function (result) { - if (!result.addInInstance.locator.dashboardPath) { - throw new Error('DashboardPath is undefined'); - } - _this.dashboardContent = _this.initializeDashboardContent(result.addinDashboardInfo, result.addInInstance.locator.dashboardPath); - _this.environment = new Environment_1.Environment(result.addInEnvironment); - _this.settings = _this.initializeSettings(result.addInSettingsInfo); - }); - }; - AddInImpl.prototype.initializeDashboardContent = function (info, sheetPath) { - var dashboardImpl = new DashboardImpl_1.DashboardImpl(info, sheetPath); - var dashboard = new Dashboard_1.Dashboard(dashboardImpl); - return new DashboardContent_1.DashboardContent(dashboard); - }; - AddInImpl.prototype.initializeSettings = function (settingsInfo) { - var settingsImpl = new SettingsImpl_1.SettingsImpl(settingsInfo); - return new Settings_1.Settings(settingsImpl); - }; - return AddInImpl; - }()); - exports.AddInImpl = AddInImpl; - - -/***/ }, -/* 3 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export(__webpack_require__(4)); - __export(__webpack_require__(5)); - __export(__webpack_require__(6)); - __export(__webpack_require__(7)); - __export(__webpack_require__(8)); - - -/***/ }, -/* 4 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var AddInContext; - (function (AddInContext) { - AddInContext["Desktop"] = "desktop"; - AddInContext["Server"] = "server"; - AddInContext["Unknown"] = "unknown"; - })(AddInContext = exports.AddInContext || (exports.AddInContext = {})); - var AddInMode; - (function (AddInMode) { - AddInMode["Authoring"] = "authoring"; - AddInMode["Viewing"] = "viewing"; - AddInMode["Unknown"] = "unknown"; - })(AddInMode = exports.AddInMode || (exports.AddInMode = {})); - var DashboardObjectType; - (function (DashboardObjectType) { - DashboardObjectType["Blank"] = "blank"; - DashboardObjectType["Worksheet"] = "worksheet"; - DashboardObjectType["QuickFilter"] = "quick-filter"; - DashboardObjectType["ParameterControl"] = "parameter-control"; - DashboardObjectType["PageFilter"] = "page-filter"; - DashboardObjectType["Legend"] = "legend"; - DashboardObjectType["Title"] = "title"; - DashboardObjectType["Text"] = "text"; - DashboardObjectType["Image"] = "image"; - DashboardObjectType["WebPage"] = "web-page"; - DashboardObjectType["AddIn"] = "addin"; - })(DashboardObjectType = exports.DashboardObjectType || (exports.DashboardObjectType = {})); - var DataType; - (function (DataType) { - DataType["String"] = "string"; - DataType["Int"] = "int"; - DataType["Float"] = "float"; - DataType["Bool"] = "bool"; - DataType["Date"] = "date"; - DataType["DateTime"] = "date-time"; - DataType["Spatial"] = "spatial"; - })(DataType = exports.DataType || (exports.DataType = {})); - var EncodedDataType; - (function (EncodedDataType) { - EncodedDataType["Number"] = "number"; - EncodedDataType["String"] = "string"; - EncodedDataType["Date"] = "date"; - EncodedDataType["Boolean"] = "boolean"; - })(EncodedDataType = exports.EncodedDataType || (exports.EncodedDataType = {})); - var ErrorCode; - (function (ErrorCode) { - ErrorCode["ServerError"] = "server-error"; - ErrorCode["InvalidAggregationFieldName"] = "invalid-aggregation-field-name"; - ErrorCode["InvalidFilterFieldName"] = "invalid-filter-fieldname"; - ErrorCode["InvalidFilterFieldValue"] = "invalid-filter-field-value"; - })(ErrorCode = exports.ErrorCode || (exports.ErrorCode = {})); - /** - * The different update types for applying filter. - */ - var FilterUpdateType; - (function (FilterUpdateType) { - FilterUpdateType["Add"] = "add"; - FilterUpdateType["All"] = "all"; - FilterUpdateType["Replace"] = "replace"; - FilterUpdateType["Remove"] = "remove"; - })(FilterUpdateType = exports.FilterUpdateType || (exports.FilterUpdateType = {})); - var SheetType; - (function (SheetType) { - SheetType["Dashboard"] = "dashboard"; - SheetType["Story"] = "story"; - SheetType["Worksheet"] = "worksheet"; - SheetType["Addin"] = "addin"; - })(SheetType = exports.SheetType || (exports.SheetType = {})); - var DomainRestrictionType; - (function (DomainRestrictionType) { - DomainRestrictionType["All"] = "all"; - DomainRestrictionType["List"] = "list"; - DomainRestrictionType["Range"] = "range"; - })(DomainRestrictionType = exports.DomainRestrictionType || (exports.DomainRestrictionType = {})); - var DateStepPeriod; - (function (DateStepPeriod) { - DateStepPeriod["Years"] = "years"; - DateStepPeriod["Quarters"] = "quarters"; - DateStepPeriod["Months"] = "months"; - DateStepPeriod["Weeks"] = "weeks"; - DateStepPeriod["Days"] = "days"; - DateStepPeriod["Hours"] = "hours"; - DateStepPeriod["Minutes"] = "minutes"; - DateStepPeriod["Seconds"] = "seconds"; - })(DateStepPeriod = exports.DateStepPeriod || (exports.DateStepPeriod = {})); - /** - * The option for specifying which values to include for filtering. - */ - var NullOption; - (function (NullOption) { - NullOption["NullValues"] = "nullvalues"; - NullOption["NonNullValues"] = "nonnullvalues"; - NullOption["AllValues"] = "allvalues"; - })(NullOption = exports.NullOption || (exports.NullOption = {})); - - -/***/ }, -/* 5 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var InternalApiDispatcherHolder; - (function (InternalApiDispatcherHolder) { - function getDesktopDispatcherPromise() { - return window.__tableauDesktopDispatcher; - } - InternalApiDispatcherHolder.getDesktopDispatcherPromise = getDesktopDispatcherPromise; - function hasDesktopApiDispatcherPromise() { - return !!InternalApiDispatcherHolder.getDesktopDispatcherPromise(); - } - InternalApiDispatcherHolder.hasDesktopApiDispatcherPromise = hasDesktopApiDispatcherPromise; - function setDesktopDispatcherPromise(dispatcher) { - window.__tableauDesktopDispatcher = dispatcher; - } - InternalApiDispatcherHolder.setDesktopDispatcherPromise = setDesktopDispatcherPromise; - })(InternalApiDispatcherHolder = exports.InternalApiDispatcherHolder || (exports.InternalApiDispatcherHolder = {})); - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var NotificationId; - (function (NotificationId) { - NotificationId["SelectedMarksChanged"] = "selected-marks-changed"; - NotificationId["ParameterChanged"] = "parameter-changed"; - NotificationId["FilterChanged"] = "filter-changed"; - })(NotificationId = exports.NotificationId || (exports.NotificationId = {})); - - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var ParameterId; - (function (ParameterId) { - ParameterId["AddInLocator"] = "add-in-locator"; - ParameterId["AddInBootstrapInfo"] = "add-in-bootstrap-info"; - ParameterId["AddInSettingsInfo"] = "add-in-settings-info"; - ParameterId["VisualId"] = "visual-id"; - ParameterId["SheetPath"] = "sheet-path"; - ParameterId["IgnoreAliases"] = "ignore-aliases"; - ParameterId["IgnoreSelection"] = "ignore-selection"; - ParameterId["IncludeAllColumns"] = "include-all-columns"; - ParameterId["MaxRows"] = "max-rows"; - ParameterId["UnderlyingDataTable"] = "underlying-data-table"; - ParameterId["UnderlyingSummaryDataTable"] = "underlying-summary-data-table"; - ParameterId["SettingsValues"] = "settings-values"; - ParameterId["SelectedData"] = "selected-data"; - ParameterId["HighlightedData"] = "highlighted-data"; - // Filter Params - ParameterId["FieldName"] = "field-name"; - ParameterId["FilterValues"] = "filter-values"; - ParameterId["FilterUpdateType"] = "filter-update-type"; - ParameterId["IsExcludeMode"] = "is-exclude"; - ParameterId["FilterRangeMin"] = "filter-range-min"; - ParameterId["FilterRangeMax"] = "filter-range-max"; - ParameterId["FilterRangeNullOption"] = "filter-range-null-option"; - ParameterId["WorksheetName"] = "worksheet-name"; - ParameterId["DashboardName"] = "dashboard"; - ParameterId["ParameterInfo"] = "parameter-info"; - ParameterId["ParameterInfos"] = "parameter-infos"; - ParameterId["ParameterCaption"] = "paremeter-caption"; - ParameterId["ParameterFieldName"] = "parameter-field-name"; - ParameterId["ParameterValue"] = "parameter-value"; - })(ParameterId = exports.ParameterId || (exports.ParameterId = {})); - - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - // Declare this key type and export the NotificationId to make this behave like a string enum - var VerbId; - (function (VerbId) { - VerbId["ApplyCategoricalFilter"] = "categorical-filter"; - VerbId["ApplyRangeFilter"] = "range-filter"; - VerbId["ClearFilter"] = "clear-filter"; - VerbId["InitializeAddIn"] = "initialize-add-in"; - VerbId["GetDataSummaryData"] = "get-summary-data"; - VerbId["GetUnderlyingData"] = "get-underlying-data"; - VerbId["SaveAddInSettings"] = "save-add-in-settings"; - VerbId["GetSelectedMarks"] = "get-selected-marks"; - VerbId["GetHighlightedMarks"] = "get-highlighted-marks"; - VerbId["GetParametersForSheet"] = "get-parameters-for-sheet"; - VerbId["FindParameter"] = "find-parameter"; - VerbId["ChangeParameterValue"] = "change-parameter-value"; - VerbId["ClearSelectedMarks"] = "clear-selected-marks"; - })(VerbId = exports.VerbId || (exports.VerbId = {})); - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export(__webpack_require__(10)); - __export(__webpack_require__(11)); - var Point_1 = __webpack_require__(12); - exports.Point = Point_1.Point; - var Size_1 = __webpack_require__(13); - exports.Size = Size_1.Size; - __export(__webpack_require__(14)); - __export(__webpack_require__(15)); - __export(__webpack_require__(16)); - __export(__webpack_require__(22)); - __export(__webpack_require__(21)); - __export(__webpack_require__(20)); - __export(__webpack_require__(19)); - __export(__webpack_require__(23)); - __export(__webpack_require__(24)); - __export(__webpack_require__(25)); - __export(__webpack_require__(38)); - __export(__webpack_require__(36)); - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Class designed to register and unregister handlers from a user. Only those events - * which are added via AddNewEventType will be supported by this instance - */ - var EventListenerManager = (function () { - function EventListenerManager() { - this._eventListenerManagers = {}; - } - EventListenerManager.prototype.addEventListener = function (eventType, handler) { - if (!this._eventListenerManagers.hasOwnProperty(eventType)) { - throw new Error("Unsupported event type : " + eventType); - } - return this._eventListenerManagers[eventType].addEventListener(handler); - }; - EventListenerManager.prototype.removeEventListener = function (eventType, handler) { - if (!this._eventListenerManagers.hasOwnProperty(eventType)) { - throw new Error("Unsupported event type : " + eventType); - } - return this._eventListenerManagers[eventType].removeEventListener(handler); - }; - EventListenerManager.prototype.addNewEventType = function (eventManager) { - this._eventListenerManagers[eventManager.eventType] = eventManager; - }; - return EventListenerManager; - }()); - exports.EventListenerManager = EventListenerManager; - - -/***/ }, -/* 11 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var EventListenerManager_1 = __webpack_require__(10); - /** - * Implementation of the Parameter contract. Calls down to the impl - * class for almost all of the work it does. - */ - var Parameter = (function (_super) { - __extends(Parameter, _super); - function Parameter(parameterImpl, sheet) { - var _this = _super.call(this) || this; - _this.parameterImpl = parameterImpl; - // Initialize our event handling for this class - _this.parameterImpl.initializeEvents(sheet).forEach(function (e) { return _this.addNewEventType(e); }); - return _this; - } - Object.defineProperty(Parameter.prototype, "name", { - get: function () { - return this.parameterImpl.name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Parameter.prototype, "currentValue", { - get: function () { - return this.parameterImpl.currentValue; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Parameter.prototype, "dataType", { - get: function () { - return this.parameterImpl.dataType; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Parameter.prototype, "allowableValues", { - get: function () { - return this.parameterImpl.allowableValues; - }, - enumerable: true, - configurable: true - }); - Parameter.prototype.changeValueAsync = function (newValue) { - return this.parameterImpl.changeValueAsync(newValue); - }; - return Parameter; - }(EventListenerManager_1.EventListenerManager)); - exports.Parameter = Parameter; - - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Point = (function () { - function Point(_x, _y) { - this._x = _x; - this._y = _y; - } - Object.defineProperty(Point.prototype, "x", { - get: function () { - return this._x; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Point.prototype, "y", { - get: function () { - return this._y; - }, - enumerable: true, - configurable: true - }); - return Point; - }()); - exports.Point = Point; - - -/***/ }, -/* 13 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Size = (function () { - function Size(_height, _width) { - this._height = _height; - this._width = _width; - } - Object.defineProperty(Size.prototype, "height", { - get: function () { - return this._height; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Size.prototype, "width", { - get: function () { - return this._width; - }, - enumerable: true, - configurable: true - }); - return Size; - }()); - exports.Size = Size; - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var DataTable = (function () { - function DataTable(_data, _columns, _totalRowCount, _isSummaryData) { - this._data = _data; - this._columns = _columns; - this._totalRowCount = _totalRowCount; - this._isSummaryData = _isSummaryData; - // TODO: get rid of this in redesign. - this._name = _isSummaryData ? 'Summary Data Table' : 'Underlying Data Table'; - } - Object.defineProperty(DataTable.prototype, "name", { - get: function () { - return this._name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTable.prototype, "data", { - get: function () { - return this._data; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTable.prototype, "columns", { - get: function () { - return this._columns; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTable.prototype, "totalRowCount", { - get: function () { - return this._totalRowCount; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTable.prototype, "isSummaryData", { - get: function () { - return this._isSummaryData; - }, - enumerable: true, - configurable: true - }); - return DataTable; - }()); - exports.DataTable = DataTable; - var Column = (function () { - function Column(_fieldName, _dataType, // TODO: this shoudl be an enum type - _isReferenced, _index) { - this._fieldName = _fieldName; - this._dataType = _dataType; - this._isReferenced = _isReferenced; - this._index = _index; - } - Object.defineProperty(Column.prototype, "fieldName", { - get: function () { - return this._fieldName; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Column.prototype, "dataType", { - get: function () { - return this._dataType; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Column.prototype, "isReferenced", { - get: function () { - return this._isReferenced; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Column.prototype, "index", { - get: function () { - return this._index; - }, - enumerable: true, - configurable: true - }); - return Column; - }()); - exports.Column = Column; - var DataValue = (function () { - /* tslint:disable:no-any */ - function DataValue(_value, _formattedValue) { - this._value = _value; - this._formattedValue = _formattedValue; - } - Object.defineProperty(DataValue.prototype, "value", { - get: function () { - return this._value; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataValue.prototype, "formattedValue", { - get: function () { - return this._formattedValue; - }, - enumerable: true, - configurable: true - }); - return DataValue; - }()); - exports.DataValue = DataValue; - - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var TableauExceptions = (function () { - function TableauExceptions() { - } - return TableauExceptions; - }()); - exports.TableauExceptions = TableauExceptions; - - -/***/ }, -/* 16 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var api_external_contract_1 = __webpack_require__(17); - var TableauWorksheetEvent_1 = __webpack_require__(19); - var FilterChangedEvent = (function (_super) { - __extends(FilterChangedEvent, _super); - function FilterChangedEvent(worksheet, _fieldName) { - var _this = _super.call(this, api_external_contract_1.TableauEventType.FilterChanged, worksheet) || this; - _this._fieldName = _fieldName; - return _this; - } - Object.defineProperty(FilterChangedEvent.prototype, "fieldName", { - get: function () { - return this._fieldName; - }, - enumerable: true, - configurable: true - }); - FilterChangedEvent.prototype.getFilterAsync = function () { - throw new Error('API call not yet implmemented'); - }; - return FilterChangedEvent; - }(TableauWorksheetEvent_1.TableauWorksheetEvent)); - exports.FilterChangedEvent = FilterChangedEvent; - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export(__webpack_require__(18)); - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - "use strict"; - // All enum values made available to AddIn developers. - // Enums should be kept in alphabetical order. - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * The context in which the AddIn is currently running. - */ - var AddInContext; - (function (AddInContext) { - AddInContext["Desktop"] = "desktop"; - AddInContext["Server"] = "server"; - AddInContext["Unknown"] = "unknown"; - })(AddInContext = exports.AddInContext || (exports.AddInContext = {})); - /** - * The mode in which the AddIn is currently running. - */ - var AddInMode; - (function (AddInMode) { - AddInMode["Authoring"] = "authoring"; - AddInMode["Viewing"] = "viewing"; - AddInMode["Unknown"] = "unknown"; - })(AddInMode = exports.AddInMode || (exports.AddInMode = {})); - /** - * What the object represents in a dashboard. - */ - var DashboardObjectType; - (function (DashboardObjectType) { - DashboardObjectType["Blank"] = "blank"; - DashboardObjectType["Worksheet"] = "worksheet"; - DashboardObjectType["QuickFilter"] = "quick-filter"; - DashboardObjectType["ParameterControl"] = "parameter-control"; - DashboardObjectType["PageFilter"] = "page-filter"; - DashboardObjectType["Legend"] = "legend"; - DashboardObjectType["Title"] = "title"; - DashboardObjectType["Text"] = "text"; - DashboardObjectType["Image"] = "image"; - DashboardObjectType["WebPage"] = "web-page"; - DashboardObjectType["AddIn"] = "addin"; - })(DashboardObjectType = exports.DashboardObjectType || (exports.DashboardObjectType = {})); - /** - * The different types of data a value can have - */ - var DataType; - (function (DataType) { - DataType["String"] = "string"; - DataType["Int"] = "int"; - DataType["Float"] = "float"; - DataType["Bool"] = "bool"; - DataType["Date"] = "date"; - DataType["DateTime"] = "date-time"; - DataType["Spatial"] = "spatial"; - })(DataType = exports.DataType || (exports.DataType = {})); - /** - * Valid date ranges for a relative date filter. - */ - var DateRangeType; - (function (DateRangeType) { - DateRangeType["Last"] = "last"; - DateRangeType["LastN"] = "last-n"; - DateRangeType["Next"] = "next"; - DateRangeType["NextN"] = "next-n"; - DateRangeType["Current"] = "current"; - DateRangeType["ToDate"] = "to-date"; - })(DateRangeType = exports.DateRangeType || (exports.DateRangeType = {})); - /** - * Types of dialog event for event listening between a parent AddIn and a popup dialog. - */ - var DialogEventType; - (function (DialogEventType) { - DialogEventType["DialogMessage"] = "dialog-message"; - DialogEventType["DialogEvent"] = "dialog-event"; - })(DialogEventType = exports.DialogEventType || (exports.DialogEventType = {})); - /** - * All error codes used by the AddIn API. - */ - var ErrorCodes; - (function (ErrorCodes) { - /** - * Only one dialog can be opened at time with the UI namespace functionality. - */ - ErrorCodes["DialogAlreadyOpen"] = "dialog-already-open"; - /** - * The open dialog was closed by the user. - */ - ErrorCodes["DialogClosedByUser"] = "dialog-closed-by-user"; - /** - * An error occurred while attempting to perform a filter operation. - */ - ErrorCodes["FilterCannotBePerformed"] = "filter-cannot-be-performed"; - /** - * An error occurred within the Tableau AddIn API. Contact Tableau Support. - */ - ErrorCodes["InternalError"] = "internal-error"; - /** - * An invalid aggregation was specified for the filter, such as setting a range filter to "SUM(Sales)" instead of "Sales". - */ - ErrorCodes["InvalidAggregationFieldName"] = "invalid-aggregation-field-name"; - /** - * A dialog must first launch to, and send messages from, the same domain as the parent AddIn. - */ - ErrorCodes["InvalidDomainDialog"] = "invalid-dialog-domain"; - /** - * An invalid date was specified in a method that required a date parameter. - */ - ErrorCodes["InvalidDateParameter"] = "invalid-date-parameter"; - /** - * A filter operation was attempted on a field that does not exist in the data source. - */ - ErrorCodes["InvalidFilterFieldName"] = "invalid-filter-field-name"; - /** - * A filter operation was attempted using a value that is the wrong data type or format. - */ - ErrorCodes["InvalidFilterFieldValue"] = "invalid-filter-field-value"; - /** - * A parameter is not the correct data type or format. The name of the parameter is specified in the Error.message field. - */ - ErrorCodes["InvalidParameter"] = "invalid-parameter"; - /** - * An invalid date value was specified in a Sheet.selectMarksAsync() call for a date field. - */ - ErrorCodes["InvalidSelectionDate"] = "invalid-selection-date"; - /** - * A field was specified in a Sheet.selectMarksAsync() call that does not exist in the data source. - */ - ErrorCodes["InvalidSelectionFieldName"] = "invalid-selection-field-name"; - /** - * An invalid value was specified in a Sheet.selectMarksAsync() call. - */ - ErrorCodes["InvalidSelectionValue"] = "invalid-selection-value"; - /** - * A required parameter was not specified, null, or an empty string/array. - */ - ErrorCodes["NullOrEmptyParameter"] = "null-or-empty-parameter"; - /** - * An unknown event name was specified in the call to Viz.addEventListeneror Viz.removeEventListener. - */ - ErrorCodes["UnsupportedEventName"] = "unsupported-event-name"; - })(ErrorCodes = exports.ErrorCodes || (exports.ErrorCodes = {})); - /** - * Type of aggregation on a field. - */ - var FieldAggreationType; - (function (FieldAggreationType) { - FieldAggreationType["Sum"] = "sum"; - FieldAggreationType["Avg"] = "avg"; - FieldAggreationType["Min"] = "min"; - FieldAggreationType["Max"] = "max"; - FieldAggreationType["Stdev"] = "stdev"; - FieldAggreationType["Stdevp"] = "stdevp"; - FieldAggreationType["Var"] = "var"; - FieldAggreationType["Varp"] = "varp"; - FieldAggreationType["Count"] = "count"; - FieldAggreationType["Countd"] = "countd"; - FieldAggreationType["Median"] = "median"; - FieldAggreationType["Attr"] = "attr"; - FieldAggreationType["None"] = "none"; - FieldAggreationType["Year"] = "year"; - FieldAggreationType["Qtr"] = "qtr"; - FieldAggreationType["Month"] = "month"; - FieldAggreationType["Day"] = "day"; - FieldAggreationType["Hour"] = "hour"; - FieldAggreationType["Minute"] = "minute"; - FieldAggreationType["Second"] = "second"; - FieldAggreationType["Week"] = "week"; - FieldAggreationType["Weekday"] = "weekday"; - FieldAggreationType["MomthYear"] = "month-year"; - FieldAggreationType["Mdy"] = "mdy"; - FieldAggreationType["End"] = "end"; - FieldAggreationType["TruncYear"] = "trunc-year"; - FieldAggreationType["TruncQtr"] = "trunc-qtr"; - FieldAggreationType["TruncMonth"] = "trunc-month"; - FieldAggreationType["TruncWeek"] = "trunc-week"; - FieldAggreationType["TruncDay"] = "trunc-day"; - FieldAggreationType["TruncHour"] = "trunc-hour"; - FieldAggreationType["TruncMinute"] = "trunc-minute"; - FieldAggreationType["TruncSecond"] = "trunc-second"; - FieldAggreationType["Quart1"] = "quart1"; - FieldAggreationType["Quart3"] = "quart3"; - FieldAggreationType["Skewness"] = "skewness"; - FieldAggreationType["Kurtosis"] = "kurtosis"; - FieldAggreationType["InOut"] = "in-out"; - FieldAggreationType["User"] = "user"; - })(FieldAggreationType = exports.FieldAggreationType || (exports.FieldAggreationType = {})); - /** - * Role of a field. - */ - var FieldRoleType; - (function (FieldRoleType) { - FieldRoleType["Dimension"] = "dimension"; - FieldRoleType["Measure"] = "measure"; - FieldRoleType["Unknown"] = "unknown"; - })(FieldRoleType = exports.FieldRoleType || (exports.FieldRoleType = {})); - /** - * An enumeration of the valid types of filters that can be applied. - */ - var FilterType; - (function (FilterType) { - FilterType["Categorical"] = "categorical"; - FilterType["Quantitative"] = "quantitative"; - FilterType["Hierarchical"] = "hierarchical"; - FilterType["RelativeDate"] = "relative-data"; - })(FilterType = exports.FilterType || (exports.FilterType = {})); - /** - * The different update types for applying filter - */ - var FilterUpdateType; - (function (FilterUpdateType) { - FilterUpdateType["Add"] = "add"; - FilterUpdateType["All"] = "all"; - FilterUpdateType["Replace"] = "replace"; - FilterUpdateType["Remove"] = "remove"; - })(FilterUpdateType = exports.FilterUpdateType || (exports.FilterUpdateType = {})); - /** - * An enumeration describing the different types of allowable values. - * This is used for restricting the domain of a parameter - */ - var AllowableValuesType; - (function (AllowableValuesType) { - AllowableValuesType["All"] = "all"; - AllowableValuesType["List"] = "list"; - AllowableValuesType["Range"] = "range"; - })(AllowableValuesType = exports.AllowableValuesType || (exports.AllowableValuesType = {})); - /** - * The option for specifying which values to include for filtering - * Indicates what to do with null values for a given filter or mark selection call. - */ - var NullOption; - (function (NullOption) { - NullOption["NullValues"] = "null-values"; - NullOption["NonNullValues"] = "non-null-values"; - NullOption["AllValues"] = "all-values"; - })(NullOption = exports.NullOption || (exports.NullOption = {})); - /** - * Date period used in filters and in parameters. - */ - var PeriodType; - (function (PeriodType) { - PeriodType["Years"] = "years"; - PeriodType["Quarters"] = "quarters"; - PeriodType["Months"] = "months"; - PeriodType["Weeks"] = "weeks"; - PeriodType["Days"] = "days"; - PeriodType["Hours"] = "hours"; - PeriodType["Minutes"] = "minutes"; - PeriodType["Seconds"] = "seconds"; - })(PeriodType = exports.PeriodType || (exports.PeriodType = {})); - /** - * The type of sheet a Sheet object represents - */ - var SheetType; - (function (SheetType) { - SheetType["Dashboard"] = "dashboard"; - SheetType["Story"] = "story"; - SheetType["Worksheet"] = "worksheet"; - SheetType["AddIn"] = "add-in"; - })(SheetType = exports.SheetType || (exports.SheetType = {})); - /** - * Represents a certain type of event which can be listened for - */ - var TableauEventType; - (function (TableauEventType) { - /** The selected marks on a visualization has changed */ - TableauEventType["MarkSelectionChanged"] = "mark-selection-changed"; - /** A parameter has had its value modified */ - TableauEventType["ParameterChanged"] = "parameter-changed"; - /** A filter has changed */ - TableauEventType["FilterChanged"] = "filter-changed"; - })(TableauEventType = exports.TableauEventType || (exports.TableauEventType = {})); - - -/***/ }, -/* 19 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var TableauSheetEvent_1 = __webpack_require__(20); - var TableauWorksheetEvent = (function (_super) { - __extends(TableauWorksheetEvent, _super); - function TableauWorksheetEvent(type, worksheet) { - var _this = _super.call(this, type, worksheet) || this; - _this._worksheet = worksheet; - return _this; - } - Object.defineProperty(TableauWorksheetEvent.prototype, "worksheet", { - get: function () { - return this._worksheet; - }, - enumerable: true, - configurable: true - }); - return TableauWorksheetEvent; - }(TableauSheetEvent_1.TableauSheetEvent)); - exports.TableauWorksheetEvent = TableauWorksheetEvent; - - -/***/ }, -/* 20 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var TableauEvent_1 = __webpack_require__(21); - var TableauSheetEvent = (function (_super) { - __extends(TableauSheetEvent, _super); - function TableauSheetEvent(type, sheet) { - var _this = _super.call(this, type) || this; - _this._sheet = sheet; - return _this; - } - Object.defineProperty(TableauSheetEvent.prototype, "sheet", { - get: function () { - return this._sheet; - }, - enumerable: true, - configurable: true - }); - return TableauSheetEvent; - }(TableauEvent_1.TableauEvent)); - exports.TableauSheetEvent = TableauSheetEvent; - - -/***/ }, -/* 21 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var TableauEvent = (function () { - function TableauEvent(type) { - this._type = type; - } - Object.defineProperty(TableauEvent.prototype, "type", { - get: function () { - return this._type; - }, - enumerable: true, - configurable: true - }); - return TableauEvent; - }()); - exports.TableauEvent = TableauEvent; - - -/***/ }, -/* 22 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var api_external_contract_1 = __webpack_require__(17); - var TableauWorksheetEvent_1 = __webpack_require__(19); - var MarksSelectedEvent = (function (_super) { - __extends(MarksSelectedEvent, _super); - function MarksSelectedEvent(worksheet) { - return _super.call(this, api_external_contract_1.TableauEventType.MarkSelectionChanged, worksheet) || this; - } - MarksSelectedEvent.prototype.getMarksAsync = function () { - return this.worksheet.getSelectedMarksAsync(); - }; - return MarksSelectedEvent; - }(TableauWorksheetEvent_1.TableauWorksheetEvent)); - exports.MarksSelectedEvent = MarksSelectedEvent; - - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * This class implements the SingleEventManager interface for a single type of Tableau event - * - * @template TEventType The Tableau event type this class specializes - */ - var SingleEventManagerImpl = (function () { - function SingleEventManagerImpl(eventType) { - this._eventType = eventType; - this._handlers = []; - } - Object.defineProperty(SingleEventManagerImpl.prototype, "eventType", { - get: function () { - return this._eventType; - }, - enumerable: true, - configurable: true - }); - SingleEventManagerImpl.prototype.addEventListener = function (handler) { - var _this = this; - this._handlers.push(handler); - return function () { return _this.removeEventListener(handler); }; - }; - SingleEventManagerImpl.prototype.removeEventListener = function (handler) { - var beforeCount = this._handlers.length; - this._handlers = this._handlers.filter(function (h) { return h !== handler; }); - return beforeCount > this._handlers.length; - }; - SingleEventManagerImpl.prototype.triggerEvent = function (eventGenerator) { - for (var _i = 0, _a = this._handlers; _i < _a.length; _i++) { - var handler = _a[_i]; - try { - var eventModel = eventGenerator(); - handler(eventModel); - } - catch (e) { - // Since this handler could be outside our control, just catch anything it throws and continue on - continue; - } - } - }; - return SingleEventManagerImpl; - }()); - exports.SingleEventManagerImpl = SingleEventManagerImpl; - - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Defines which type of getData call to make. - */ - var GetDataType; - (function (GetDataType) { - GetDataType["Summary"] = "summary"; - GetDataType["Underlying"] = "underlying"; - })(GetDataType = exports.GetDataType || (exports.GetDataType = {})); - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var FilterServiceImpl_1 = __webpack_require__(26); - var GetDataServiceImpl_1 = __webpack_require__(32); - var NotificationServiceImpl_1 = __webpack_require__(33); - var ParametersServiceImpl_1 = __webpack_require__(34); - var SelectionServiceImpl_1 = __webpack_require__(39); - var ServiceRegistry_1 = __webpack_require__(38); - function registerAllSharedServices(dispatcher) { - ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new GetDataServiceImpl_1.GetDataServiceImpl(dispatcher)); - ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new FilterServiceImpl_1.FilterServiceImpl(dispatcher)); - ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new NotificationServiceImpl_1.NotificationServiceImpl(dispatcher)); - ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new ParametersServiceImpl_1.ParametersServiceImpl(dispatcher)); - ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new SelectionServiceImpl_1.SelectionServiceImpl(dispatcher)); - // TODO - more shared services - } - exports.registerAllSharedServices = registerAllSharedServices; - - -/***/ }, -/* 26 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_external_contract_1 = __webpack_require__(17); - var api_internal_contract_1 = __webpack_require__(27); - var api_utils_1 = __webpack_require__(28); - var ExternalToInternalEnumMappings_1 = __webpack_require__(31); - var FilterServiceImpl = (function () { - function FilterServiceImpl(dispatcher) { - this._dispatcher = dispatcher; - } - Object.defineProperty(FilterServiceImpl.prototype, "serviceName", { - get: function () { - return "filter-service" /* Filter */; - }, - enumerable: true, - configurable: true - }); - FilterServiceImpl.prototype.applyFilterAsync = function (visualId, fieldName, values, updateType, filterOptions) { - if (!api_utils_1.Param.isValidEnumValue(updateType, api_external_contract_1.FilterUpdateType)) { - throw new Error('Invalid value for parameter FilterUpdateType'); - } - var verb = api_internal_contract_1.VerbId.ApplyCategoricalFilter; - var parameters = {}; - parameters[api_internal_contract_1.ParameterId.VisualId] = visualId; - parameters[api_internal_contract_1.ParameterId.FieldName] = fieldName; - parameters[api_internal_contract_1.ParameterId.FilterValues] = values; - parameters[api_internal_contract_1.ParameterId.FilterUpdateType] = updateType; - parameters[api_internal_contract_1.ParameterId.IsExcludeMode] = - (filterOptions === undefined || filterOptions.isExcludeMode === undefined) ? false : filterOptions.isExcludeMode; - return this._dispatcher.execute(verb, parameters).then(function (response) { - var error = response.result; - if (!(error.errorCode === null || error.errorCode === undefined)) { - // TODO: come back and implement error handling logic - throw new Error('Error Applying Filter: ' + error.errorCode); - } - return fieldName; - }); - }; - FilterServiceImpl.prototype.applyRangeFilterAsync = function (visualId, fieldName, filterOptions) { - if (!filterOptions) { - throw new Error('Missing Parameter: RangeFilterOptions'); - } - api_utils_1.Param.verifyRangeParamType(filterOptions.min, filterOptions.max); - var verb = api_internal_contract_1.VerbId.ApplyRangeFilter; - var parameters = {}; - if (filterOptions.min) { - var min = void 0; - if (filterOptions.min instanceof Date) { - min = api_utils_1.Param.serializeDateForPlatform(filterOptions.min); - } - else { - min = filterOptions.min; - } - parameters[api_internal_contract_1.ParameterId.FilterRangeMin] = min; - } - if (filterOptions.max) { - var max = void 0; - if (filterOptions.max instanceof Date) { - max = api_utils_1.Param.serializeDateForPlatform(filterOptions.max); - } - else { - max = filterOptions.max; - } - parameters[api_internal_contract_1.ParameterId.FilterRangeMax] = max; - } - if (filterOptions.nullOption) { - if (!api_utils_1.Param.isValidEnumValue(filterOptions.nullOption, api_external_contract_1.NullOption)) { - throw new Error('Invalid value for parameter NullOption'); - } - parameters[api_internal_contract_1.ParameterId.FilterRangeNullOption] = ExternalToInternalEnumMappings_1.ExternalToInternalEnumMappings.nullOptions.convert(filterOptions.nullOption); - } - parameters[api_internal_contract_1.ParameterId.FieldName] = fieldName; - parameters[api_internal_contract_1.ParameterId.VisualId] = visualId; - return this._dispatcher.execute(verb, parameters).then(function (response) { - return fieldName; - }); - }; - FilterServiceImpl.prototype.clearFilterAsync = function (visualId, fieldName) { - var verb = api_internal_contract_1.VerbId.ClearFilter; - var parameters = {}; - parameters[api_internal_contract_1.ParameterId.VisualId] = visualId; - parameters[api_internal_contract_1.ParameterId.FieldName] = fieldName; - return this._dispatcher.execute(verb, parameters).then(function (resposne) { - return fieldName; - }); - }; - return FilterServiceImpl; - }()); - exports.FilterServiceImpl = FilterServiceImpl; - - -/***/ }, -/* 27 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export(__webpack_require__(4)); - __export(__webpack_require__(5)); - __export(__webpack_require__(6)); - __export(__webpack_require__(7)); - __export(__webpack_require__(8)); - - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - Object.defineProperty(exports, "__esModule", { value: true }); - var EnumConverter_1 = __webpack_require__(29); - exports.EnumConverter = EnumConverter_1.EnumConverter; - var Param_1 = __webpack_require__(30); - exports.Param = Param_1.Param; - - -/***/ }, -/* 29 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * This class converts from a source enum value to destination enum - * value given a mapping from source to destination when constructed. - */ - var EnumConverter = (function () { - function EnumConverter(_mappings, _defaultVal) { - this._mappings = _mappings; - this._defaultVal = _defaultVal; - } - EnumConverter.prototype.convert = function (enumVal, throwIfMissing) { - if (this._mappings.hasOwnProperty(enumVal)) { - return this._mappings[enumVal]; - } - if (this._defaultVal !== undefined && !throwIfMissing) { - return this._defaultVal; - } - throw new Error('Mapping not found for ' + enumVal); - }; - return EnumConverter; - }()); - exports.EnumConverter = EnumConverter; - - -/***/ }, -/* 30 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Param = (function () { - function Param() { - } - /** - * Verifies that an incoming parameter is 'truthy' and throws - * an error if it's not. This will throw an error if the value - * is null, undefined, NaN, the empty string, 0, or false. - * - * @param argumentValue value to verify - * @param argumentName name of argument to verify - */ - /*tslint:disable-next-line */ - Param.verifyValue = function (argumentValue, argumentName) { - if (!argumentValue) { - throw new Error('Value is invalid for argument: ' + argumentName); - } - }; - /** - * Verifies that a string is valid. Throws an error if the string is - * null, undefined, or NaN. - * - * @param argumentValue value to verify - * @param argumentName name of argument to verify - */ - Param.verifyString = function (argumentValue, argumentName) { - if (argumentValue === null || argumentValue === undefined) { - throw new Error('String value is invalid for argument: ' + argumentName); - } - }; - /** - * Verifies the value is part of the Enum - * - * String enums are {string : string} dictionaries which are not reverse mappable - * This is an ugly workaround - * @param value value to verify - * @param enumType enum to verify against - */ - /* tslint:disable:no-any */ - Param.isValidEnumValue = function (value, enumType) { - var isValid = false; - Object.keys(enumType).forEach(function (enumKey) { - if (enumType[enumKey] === value.toString()) { - isValid = true; - } - }); - return isValid; - }; - /* tslint:enable:no-any */ - /** - * serializes the date into the format that the server expects. - * @param date the date to serialize - */ - Param.serializeDateForPlatform = function (date) { - var year = date.getUTCFullYear(); - var month = date.getUTCMonth() + 1; - var day = date.getUTCDate(); - var hh = date.getUTCHours(); - var mm = date.getUTCMinutes(); - var sec = date.getUTCSeconds(); - return year + '-' + month + '-' + day + ' ' + hh + ':' + mm + ':' + sec; - }; - Param.serializeBooleanForPlatform = function (bool) { - return bool ? 'true' : 'false'; - }; - Param.serializeNumberForPlatform = function (num) { - return num.toString(10); - }; - /** - * Verifies the params min and max for applying range filter - * @param min range min - * @param max range max - */ - /* tslint:disable:no-any */ - Param.verifyRangeParamType = function (min, max) { - /* tslint:enable:no-any */ - if (!min && !max) { - throw new Error('Missing Parameter: At least one of min or max is required'); - } - if (!Param.isTypeNumber(min) && !Param.isTypeDate(min)) { - throw new Error('Invalid Parameter Type: Only Date and number are allowed for parameter min'); - } - if (!Param.isTypeNumber(max) && !Param.isTypeDate(max)) { - throw new Error('Invalid Parameter Type: Only Date and number are allowed for parameter max'); - } - if (typeof (min) !== typeof (max)) { - throw new Error('Invalid Parameter Type: Parameters min and max should be of the same type'); - } - }; - /** - * Verifies the input is a number - */ - /* tslint:disable:no-any */ - Param.isTypeNumber = function (input) { - return typeof (input) === 'number' || input instanceof Number; - }; - /* tslint:enable:no-any */ - /** - * Verifies the input is a Date - */ - /* tslint:disable:no-any */ - Param.isTypeDate = function (input) { - return input instanceof Date; - }; - /* tslint:enable:no-any */ - /* tslint:disable-next-line:no-any */ - Param.isTypeString = function (input) { - return typeof (input) === 'string' || input instanceof String; - }; - /* tslint:disable-next-line:no-any */ - Param.isTypeBool = function (input) { - return typeof (input) === 'boolean' || input instanceof Boolean; - }; - /* tslint:disable-next-line:no-any */ - Param.serializeParamterValue = function (value) { - if (Param.isTypeNumber(value)) { - return Param.serializeNumberForPlatform(value); - } - else if (Param.isTypeDate(value)) { - return Param.serializeDateForPlatform(value); - } - else if (Param.isTypeBool(value)) { - return Param.serializeBooleanForPlatform(value); - } - else if (Param.isTypeString(value)) { - return value; - } - else { - throw new Error('Value is invalid for argument: value'); - } - }; - return Param; - }()); - exports.Param = Param; - - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_external_contract_1 = __webpack_require__(17); - var api_internal_contract_1 = __webpack_require__(27); - var api_utils_1 = __webpack_require__(28); - /* tslint:disable:typedef - Disable this to make declaring these classes a bit easier */ - /** - * Maps enums used by the external-api-contract to the enums used - * in the internal-api-contract, which developers code against. - */ - var ExternalToInternalEnumMappings = (function () { - function ExternalToInternalEnumMappings() { - } - ExternalToInternalEnumMappings.nullOptions = new api_utils_1.EnumConverter((_a = {}, - _a[api_external_contract_1.NullOption.AllValues] = api_internal_contract_1.NullOption.AllValues, - _a[api_external_contract_1.NullOption.NonNullValues] = api_internal_contract_1.NullOption.NonNullValues, - _a[api_external_contract_1.NullOption.NonNullValues] = api_internal_contract_1.NullOption.NullValues, - _a)); - return ExternalToInternalEnumMappings; - }()); - exports.ExternalToInternalEnumMappings = ExternalToInternalEnumMappings; - var _a; - /* tslint:enable:typedef */ - - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_external_contract_1 = __webpack_require__(17); - var api_internal_contract_1 = __webpack_require__(27); - var GetDataModels_1 = __webpack_require__(14); - var GetDataService_1 = __webpack_require__(24); - var GetDataServiceImpl = (function () { - function GetDataServiceImpl(dispatcher) { - this._dispatcher = dispatcher; - } - Object.defineProperty(GetDataServiceImpl.prototype, "serviceName", { - get: function () { - return "get-data-service" /* GetData */; - }, - enumerable: true, - configurable: true - }); - GetDataServiceImpl.prototype.getUnderlyingDataAsync = function (visualId, getType, ignoreAliases, ignoreSelection, includeAllColumns, maxRows) { - var _this = this; - // Create all of our parameters - var verb = getType === GetDataService_1.GetDataType.Summary ? api_internal_contract_1.VerbId.GetDataSummaryData : api_internal_contract_1.VerbId.GetUnderlyingData; - var parameters = {}; - parameters[api_internal_contract_1.ParameterId.VisualId] = visualId; - parameters[api_internal_contract_1.ParameterId.IgnoreAliases] = ignoreAliases; - parameters[api_internal_contract_1.ParameterId.IgnoreSelection] = ignoreSelection; - parameters[api_internal_contract_1.ParameterId.IncludeAllColumns] = includeAllColumns; - parameters[api_internal_contract_1.ParameterId.MaxRows] = maxRows; - return this._dispatcher.execute(verb, parameters).then(function (response) { - var responseData = response.result; - return _this.processResultsTable(responseData.data, responseData.isSummary); - }); - }; - GetDataServiceImpl.prototype.getSelectedMarksAsync = function (visualId) { - var _this = this; - var parameters = (_a = {}, _a[api_internal_contract_1.ParameterId.VisualId] = visualId, _a); - return this._dispatcher.execute(api_internal_contract_1.VerbId.GetSelectedMarks, parameters).then(function (response) { - var responseData = response.result; - return { - data: responseData.data.map(function (table) { return _this.processResultsTable(table, true); }) - }; - }); - var _a; - }; - GetDataServiceImpl.prototype.getHighlightedMarksAsync = function (visualId) { - var _this = this; - var parameters = (_a = {}, _a[api_internal_contract_1.ParameterId.VisualId] = visualId, _a); - return this._dispatcher.execute(api_internal_contract_1.VerbId.GetHighlightedMarks, parameters).then(function (response) { - var responseData = response.result; - return { - data: responseData.data.map(function (table) { return _this.processResultsTable(table, true); }) - }; - }); - var _a; - }; - GetDataServiceImpl.prototype.processResultsTable = function (responseData, isSummary) { - var headers = responseData.headers.map(function (h) { return new GetDataModels_1.Column(h.fieldCaption, api_external_contract_1.DataType.String /*h.DataType*/, h.isReferenced, h.index); }); - var table = responseData.dataTable.map(function (row) { - return row.map(function (cell) { - return new GetDataModels_1.DataValue(cell.value, cell.formattedValue); - }); - }); - return new GetDataModels_1.DataTable(table, headers, table.length, isSummary); - }; - return GetDataServiceImpl; - }()); - exports.GetDataServiceImpl = GetDataServiceImpl; - - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Registration = (function () { - function Registration(_filterFn, _callbackFn) { - this._filterFn = _filterFn; - this._callbackFn = _callbackFn; - // Nothing Here - } - Registration.prototype.onNotification = function (notificationModel) { - if (this._filterFn(notificationModel)) { - this._callbackFn(notificationModel); - } - }; - return Registration; - }()); - var NotificationServiceImpl = (function () { - function NotificationServiceImpl(dispatcher) { - this.dispatcher = dispatcher; - this._handlers = {}; - this.dispatcher.registerNotificationHandler(this.onNotification.bind(this)); - } - Object.defineProperty(NotificationServiceImpl.prototype, "serviceName", { - get: function () { - return "notification-service" /* Notification */; - }, - enumerable: true, - configurable: true - }); - NotificationServiceImpl.prototype.registerHandler = function (id, filterFn, handler) { - var _this = this; - var handlers = this._handlers[id] || new Array(); - var registration = new Registration(filterFn, handler); - handlers.push(registration); - this._handlers[id] = handlers; - return function () { return _this.removeRegistration(id, registration); }; - }; - NotificationServiceImpl.prototype.hasHandlersForNotificationType = function (id) { - return this._handlers.hasOwnProperty(id); - }; - NotificationServiceImpl.prototype.onNotification = function (notification) { - if (!this.hasHandlersForNotificationType(notification.notificationId)) { - return; - } - // Go through and check for all the handlers of this particular notification - this._handlers[notification.notificationId].forEach(function (h) { return h.onNotification(notification.data); }); - }; - NotificationServiceImpl.prototype.removeRegistration = function (id, registration) { - if (!this.hasHandlersForNotificationType(id)) { - return; - } - this._handlers[id] = this._handlers[id].filter(function (reg) { return reg !== registration; }); - }; - return NotificationServiceImpl; - }()); - exports.NotificationServiceImpl = NotificationServiceImpl; - - -/***/ }, -/* 34 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(27); - var ParameterImpl_1 = __webpack_require__(35); - var Parameter_1 = __webpack_require__(11); - var ParametersServiceImpl = (function () { - function ParametersServiceImpl(dispatcher) { - this.dispatcher = dispatcher; - } - Object.defineProperty(ParametersServiceImpl.prototype, "serviceName", { - get: function () { - return "parameters-service" /* Parameters */; - }, - enumerable: true, - configurable: true - }); - ParametersServiceImpl.prototype.getParametersForSheetAsync = function (sheetPath, sheet) { - var parameters = (_a = {}, - _a[api_internal_contract_1.ParameterId.SheetPath] = sheetPath, - _a); - return this.dispatcher.execute(api_internal_contract_1.VerbId.GetParametersForSheet, parameters).then(function (response) { - // TODO - Check for error - var result = response.result; - return result.map(function (parameterInfo) { - var impl = new ParameterImpl_1.ParameterImpl(parameterInfo); - return new Parameter_1.Parameter(impl, sheet); - }); - }); - var _a; - }; - ParametersServiceImpl.prototype.changeParameterValueAsync = function (fieldName, newValue) { - var parameters = (_a = {}, - _a[api_internal_contract_1.ParameterId.ParameterFieldName] = fieldName, - _a[api_internal_contract_1.ParameterId.ParameterValue] = newValue, - _a); - return this.dispatcher.execute(api_internal_contract_1.VerbId.ChangeParameterValue, parameters).then(function (response) { - var result = response.result; - return result; - }); - var _a; - }; - ParametersServiceImpl.prototype.findParameterByNameAsync = function (name, sheet) { - return this.findParameterAsync(sheet, name, undefined); - }; - ParametersServiceImpl.prototype.findParameterByGlobalFieldNameAsync = function (fieldName, sheet) { - return this.findParameterAsync(sheet, undefined, fieldName); - }; - ParametersServiceImpl.prototype.findParameterAsync = function (sheet, name, fieldName) { - var parameters = {}; - if (name !== undefined) { - parameters[api_internal_contract_1.ParameterId.ParameterCaption] = name; - } - else if (fieldName !== undefined) { - parameters[api_internal_contract_1.ParameterId.ParameterFieldName] = fieldName; - } - else { - throw new Error('Missing require field name or caption'); - } - return this.dispatcher.execute(api_internal_contract_1.VerbId.FindParameter, parameters).then(function (response) { - var instanceOfParameterInfo = function (object) { - return 'fieldName' in object; - }; - // We need to check to see if we got a valid response back again - if (instanceOfParameterInfo(response.result)) { - var result = response.result; - var impl = new ParameterImpl_1.ParameterImpl(result); - return new Parameter_1.Parameter(impl, sheet); - } - else { - return undefined; - } - }); - }; - return ParametersServiceImpl; - }()); - exports.ParametersServiceImpl = ParametersServiceImpl; - - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_external_contract_1 = __webpack_require__(17); - var api_internal_contract_1 = __webpack_require__(27); - var api_utils_1 = __webpack_require__(28); - var InternalToExternalEnumMappings_1 = __webpack_require__(36); - var ParameterChangedEvent_1 = __webpack_require__(37); - var GetDataModels_1 = __webpack_require__(14); - var ServiceRegistry_1 = __webpack_require__(38); - var SingleEventManagerImpl_1 = __webpack_require__(23); - var ParameterImpl = (function () { - function ParameterImpl(parameterInfo) { - this.setParameterInfo(parameterInfo); - } - Object.defineProperty(ParameterImpl.prototype, "name", { - get: function () { - return this._parameterInfo.name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(ParameterImpl.prototype, "currentValue", { - get: function () { - return new GetDataModels_1.DataValue(this._parameterInfo.currentValue.value, this._parameterInfo.currentValue.formattedValue); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(ParameterImpl.prototype, "dataType", { - get: function () { - return InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.dataType.convert(this._parameterInfo.dataType); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(ParameterImpl.prototype, "allowableValues", { - get: function () { - return this._allowableValues; - }, - enumerable: true, - configurable: true - }); - ParameterImpl.prototype.changeValueAsync = function (newValue) { - var _this = this; - var coercedValue = api_utils_1.Param.serializeParamterValue(newValue); - var parametersService = ServiceRegistry_1.ApiServiceRegistry.instance.getService("parameters-service" /* Parameters */); - return parametersService.changeParameterValueAsync(this._globalFieldName, coercedValue).then(function (parameterInfo) { - _this.setParameterInfo(parameterInfo); - return _this.currentValue; - }); - }; - /** - * Helper method which goes through and registers each event type this impl knows about - * with the NotificationService. It returns an array of SingleEventManager objects which - * can then be passed to an EventListenerManager to handle user registration / unregistration. - * - * @param sheet The sheet object which will be included with the event notifications - * @returns {Array} Collection of event managers to pass to an EventListenerManager - */ - ParameterImpl.prototype.initializeEvents = function (sheet) { - var _this = this; - var results = new Array(); - var notificationService; - try { - notificationService = ServiceRegistry_1.ApiServiceRegistry.instance.getService("notification-service" /* Notification */); - } - catch (e) { - // If we don't have this service registered, just return - return results; - } - // Initialize all of the event managers we'll need (one for each event type) - var parameterEvent = new SingleEventManagerImpl_1.SingleEventManagerImpl(api_external_contract_1.TableauEventType.ParameterChanged); - notificationService.registerHandler(api_internal_contract_1.NotificationId.ParameterChanged, function (model) { - var fieldName = model; - return fieldName === _this._globalFieldName; - }, function (fieldName) { - parameterEvent.triggerEvent(function () { return new ParameterChangedEvent_1.ParameterChangedEvent(fieldName, sheet); }); - }); - results.push(parameterEvent); - return results; - }; - ParameterImpl.prototype.setParameterInfo = function (parameterInfo) { - this._parameterInfo = parameterInfo; - this._globalFieldName = parameterInfo.fieldName; - var type = InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.allowableValues.convert(parameterInfo.allowableValuesType); - var listValues; - var minValue; - var maxValue; - var stepSize; - var dateStepPeriod; - if (type === api_external_contract_1.AllowableValuesType.List) { - var values = parameterInfo.allowableValues || []; - listValues = values.map(function (val) { return new GetDataModels_1.DataValue(val.value, val.formattedValue); }); - } - else if (type === api_external_contract_1.AllowableValuesType.Range) { - minValue = parameterInfo.minValue && new GetDataModels_1.DataValue(parameterInfo.minValue.value, parameterInfo.minValue.formattedValue); - maxValue = parameterInfo.maxValue && new GetDataModels_1.DataValue(parameterInfo.maxValue.value, parameterInfo.maxValue.formattedValue); - stepSize = parameterInfo.stepSize; - dateStepPeriod = parameterInfo.dateStepPeriod && - InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.dateStepPeriod.convert(parameterInfo.dateStepPeriod); - } - this._allowableValues = { - type: type, - allowableValues: listValues, - minValue: minValue, - maxValue: maxValue, - stepSize: stepSize, - dateStepPeriod: dateStepPeriod - }; - }; - return ParameterImpl; - }()); - exports.ParameterImpl = ParameterImpl; - - -/***/ }, -/* 36 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_external_contract_1 = __webpack_require__(17); - var api_internal_contract_1 = __webpack_require__(27); - var api_utils_1 = __webpack_require__(28); - /* tslint:disable:typedef - Disable this to make declaring these classes a bit easier */ - /** - * Maps enums used by the internal-api-contract to the enums used - * in the external-api-contract, which developers code against. - */ - var InternalToExternalEnumMappings = (function () { - function InternalToExternalEnumMappings() { - } - InternalToExternalEnumMappings.addInContext = new api_utils_1.EnumConverter((_a = {}, - _a[api_internal_contract_1.AddInContext.Desktop] = api_external_contract_1.AddInContext.Desktop, - _a[api_internal_contract_1.AddInContext.Server] = api_external_contract_1.AddInContext.Server, - _a[api_internal_contract_1.AddInContext.Unknown] = api_external_contract_1.AddInContext.Unknown, - _a)); - InternalToExternalEnumMappings.addInMode = new api_utils_1.EnumConverter((_b = {}, - _b[api_internal_contract_1.AddInMode.Authoring] = api_external_contract_1.AddInMode.Authoring, - _b[api_internal_contract_1.AddInMode.Viewing] = api_external_contract_1.AddInMode.Viewing, - _b[api_internal_contract_1.AddInMode.Unknown] = api_external_contract_1.AddInMode.Unknown, - _b)); - InternalToExternalEnumMappings.sheetType = new api_utils_1.EnumConverter((_c = {}, - _c[api_internal_contract_1.SheetType.Dashboard] = api_external_contract_1.SheetType.Dashboard, - _c[api_internal_contract_1.SheetType.Story] = api_external_contract_1.SheetType.Story, - _c[api_internal_contract_1.SheetType.Worksheet] = api_external_contract_1.SheetType.Worksheet, - _c)); - InternalToExternalEnumMappings.dashboardObjectType = new api_utils_1.EnumConverter((_d = {}, - _d[api_internal_contract_1.DashboardObjectType.Blank] = api_external_contract_1.DashboardObjectType.Blank, - _d[api_internal_contract_1.DashboardObjectType.Image] = api_external_contract_1.DashboardObjectType.Image, - _d[api_internal_contract_1.DashboardObjectType.Legend] = api_external_contract_1.DashboardObjectType.Legend, - _d[api_internal_contract_1.DashboardObjectType.PageFilter] = api_external_contract_1.DashboardObjectType.PageFilter, - _d[api_internal_contract_1.DashboardObjectType.ParameterControl] = api_external_contract_1.DashboardObjectType.ParameterControl, - _d[api_internal_contract_1.DashboardObjectType.QuickFilter] = api_external_contract_1.DashboardObjectType.QuickFilter, - _d[api_internal_contract_1.DashboardObjectType.Text] = api_external_contract_1.DashboardObjectType.Text, - _d[api_internal_contract_1.DashboardObjectType.Title] = api_external_contract_1.DashboardObjectType.Title, - _d[api_internal_contract_1.DashboardObjectType.WebPage] = api_external_contract_1.DashboardObjectType.WebPage, - _d[api_internal_contract_1.DashboardObjectType.Worksheet] = api_external_contract_1.DashboardObjectType.Worksheet, - _d)); - InternalToExternalEnumMappings.dataType = new api_utils_1.EnumConverter((_e = {}, - _e[api_internal_contract_1.DataType.Bool] = api_external_contract_1.DataType.Bool, - _e[api_internal_contract_1.DataType.Date] = api_external_contract_1.DataType.Date, - _e[api_internal_contract_1.DataType.DateTime] = api_external_contract_1.DataType.DateTime, - _e[api_internal_contract_1.DataType.Float] = api_external_contract_1.DataType.Float, - _e[api_internal_contract_1.DataType.Int] = api_external_contract_1.DataType.Int, - _e[api_internal_contract_1.DataType.String] = api_external_contract_1.DataType.String, - _e)); - InternalToExternalEnumMappings.filterUpdateType = new api_utils_1.EnumConverter((_f = {}, - _f[api_internal_contract_1.FilterUpdateType.Add] = api_external_contract_1.FilterUpdateType.Add, - _f[api_internal_contract_1.FilterUpdateType.All] = api_external_contract_1.FilterUpdateType.All, - _f[api_internal_contract_1.FilterUpdateType.Remove] = api_external_contract_1.FilterUpdateType.Remove, - _f[api_internal_contract_1.FilterUpdateType.Replace] = api_external_contract_1.FilterUpdateType.Replace, - _f)); - InternalToExternalEnumMappings.allowableValues = new api_utils_1.EnumConverter((_g = {}, - _g[api_internal_contract_1.DomainRestrictionType.All] = api_external_contract_1.AllowableValuesType.All, - _g[api_internal_contract_1.DomainRestrictionType.List] = api_external_contract_1.AllowableValuesType.List, - _g[api_internal_contract_1.DomainRestrictionType.Range] = api_external_contract_1.AllowableValuesType.Range, - _g)); - InternalToExternalEnumMappings.dateStepPeriod = new api_utils_1.EnumConverter((_h = {}, - _h[api_internal_contract_1.DateStepPeriod.Years] = api_external_contract_1.PeriodType.Years, - _h[api_internal_contract_1.DateStepPeriod.Quarters] = api_external_contract_1.PeriodType.Quarters, - _h[api_internal_contract_1.DateStepPeriod.Months] = api_external_contract_1.PeriodType.Months, - _h[api_internal_contract_1.DateStepPeriod.Weeks] = api_external_contract_1.PeriodType.Weeks, - _h[api_internal_contract_1.DateStepPeriod.Days] = api_external_contract_1.PeriodType.Days, - _h[api_internal_contract_1.DateStepPeriod.Hours] = api_external_contract_1.PeriodType.Hours, - _h[api_internal_contract_1.DateStepPeriod.Minutes] = api_external_contract_1.PeriodType.Minutes, - _h[api_internal_contract_1.DateStepPeriod.Seconds] = api_external_contract_1.PeriodType.Seconds, - _h)); - return InternalToExternalEnumMappings; - }()); - exports.InternalToExternalEnumMappings = InternalToExternalEnumMappings; - var _a, _b, _c, _d, _e, _f, _g, _h; - /* tslint:enable:typedef */ - - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var api_external_contract_1 = __webpack_require__(17); - var ServiceRegistry_1 = __webpack_require__(38); - var TableauSheetEvent_1 = __webpack_require__(20); - var ParameterChangedEvent = (function (_super) { - __extends(ParameterChangedEvent, _super); - function ParameterChangedEvent(_globalFieldName, sheet) { - var _this = _super.call(this, api_external_contract_1.TableauEventType.ParameterChanged, sheet) || this; - _this._globalFieldName = _globalFieldName; - return _this; - } - ParameterChangedEvent.prototype.getParameterAsync = function () { - // Call down to our service to get the parameter back via its field name - var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("parameters-service" /* Parameters */); - return service.findParameterByGlobalFieldNameAsync(this._globalFieldName, this.sheet).then(function (parameter) { - if (parameter === undefined) { - throw new Error('Unable to find parameter'); - } - return parameter; - }); - }; - return ParameterChangedEvent; - }(TableauSheetEvent_1.TableauSheetEvent)); - exports.ParameterChangedEvent = ParameterChangedEvent; - - -/***/ }, -/* 38 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var ServiceRegistryImpl = (function () { - function ServiceRegistryImpl() { - this._services = {}; - } - ServiceRegistryImpl.prototype.registerService = function (service) { - this._services[service.serviceName] = service; - }; - ServiceRegistryImpl.prototype.getService = function (serviceName) { - if (!this._services.hasOwnProperty(serviceName)) { - throw new Error("No Service " + serviceName + " is registered"); - } - return this._services[serviceName]; - }; - return ServiceRegistryImpl; - }()); - /** - * static class used for getting access to the single instance - * of the ApiServiceRegistry - */ - var ApiServiceRegistry = (function () { - // Private to avoid anyone constructing this - function ApiServiceRegistry() { - } - Object.defineProperty(ApiServiceRegistry, "instance", { - /** - * Gets the singleton instance of the ServiceRegistry - */ - get: function () { - if (!window.__tableauApiServiceRegistry) { - ApiServiceRegistry.setInstance(new ServiceRegistryImpl()); - } - if (!window.__tableauApiServiceRegistry) { - throw new Error('Assigning service registry failed'); - } - return window.__tableauApiServiceRegistry; - }, - enumerable: true, - configurable: true - }); - /** - * Helper method to override the registry instance. Can be used by unit tests - * - * @param {ServiceRegistry} serviceRegistry The new registry - */ - ApiServiceRegistry.setInstance = function (serviceRegistry) { - window.__tableauApiServiceRegistry = serviceRegistry; - }; - return ApiServiceRegistry; - }()); - exports.ApiServiceRegistry = ApiServiceRegistry; - - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(27); - var SelectionServiceImpl = (function () { - function SelectionServiceImpl(dispatcher) { - this._dispatcher = dispatcher; - } - Object.defineProperty(SelectionServiceImpl.prototype, "serviceName", { - get: function () { - return "selection-service" /* Selection */; - }, - enumerable: true, - configurable: true - }); - /** - * Method to clear all the selected marks for the given worksheet - * @param visualId - */ - SelectionServiceImpl.prototype.clearSelectedMarksAsync = function (visualId) { - var parameters = (_a = {}, _a[api_internal_contract_1.ParameterId.VisualId] = visualId, _a); - return this._dispatcher.execute(api_internal_contract_1.VerbId.ClearSelectedMarks, parameters).then(function (response) { - return; // Expecting an empty model and hence the void response. - }); - var _a; - }; - return SelectionServiceImpl; - }()); - exports.SelectionServiceImpl = SelectionServiceImpl; - - -/***/ }, -/* 40 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var Sheet_1 = __webpack_require__(41); - var Dashboard = (function (_super) { - __extends(Dashboard, _super); - function Dashboard(dashboardImpl) { - var _this = _super.call(this, dashboardImpl) || this; - _this.dashboardImpl = dashboardImpl; - dashboardImpl.initializeWithPublicInterfaces(_this); - return _this; - } - Object.defineProperty(Dashboard.prototype, "worksheets", { - get: function () { - return this.dashboardImpl.worksheets; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Dashboard.prototype, "objects", { - get: function () { - return this.dashboardImpl.objects; - }, - enumerable: true, - configurable: true - }); - return Dashboard; - }(Sheet_1.Sheet)); - exports.Dashboard = Dashboard; - - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var api_shared_1 = __webpack_require__(9); - var Sheet = (function (_super) { - __extends(Sheet, _super); - function Sheet(sheetImpl) { - var _this = _super.call(this) || this; - _this.sheetImpl = sheetImpl; - return _this; - } - Object.defineProperty(Sheet.prototype, "name", { - get: function () { - return this.sheetImpl.name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Sheet.prototype, "sheetType", { - get: function () { - return this.sheetImpl.sheetType; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Sheet.prototype, "size", { - get: function () { - throw new Error('API call not yet implemented'); - }, - enumerable: true, - configurable: true - }); - Sheet.prototype.findParameterAsync = function (parameterName) { - return this.sheetImpl.findParameterAsync(parameterName, this); - }; - Sheet.prototype.getParametersAsync = function () { - return this.sheetImpl.getParametersAsync(this); - }; - return Sheet; - }(api_shared_1.EventListenerManager)); - exports.Sheet = Sheet; - - -/***/ }, -/* 42 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Implementation of the external DashboardContent namespace. - * This does not follow the Impl pattern as DashboardContent is - * currently just a (single) property bag. - */ - var DashboardContent = (function () { - function DashboardContent(_dashboard) { - this._dashboard = _dashboard; - } - Object.defineProperty(DashboardContent.prototype, "dashboard", { - get: function () { - return this._dashboard; - }, - enumerable: true, - configurable: true - }); - return DashboardContent; - }()); - exports.DashboardContent = DashboardContent; - - -/***/ }, -/* 43 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_shared_1 = __webpack_require__(9); - /** - * Implementation of the external environment namespace. - * Environment does not follow the Impl pattern as it is - * just a property bag. - */ - var Environment = (function () { - function Environment(addInEnvironment) { - this._apiVersion = addInEnvironment.apiVersion; - this._context = api_shared_1.InternalToExternalEnumMappings.addInContext.convert(addInEnvironment.addInContext); - this._language = addInEnvironment.addInLanguage; - this._locale = addInEnvironment.addInLocale; - this._mode = api_shared_1.InternalToExternalEnumMappings.addInMode.convert(addInEnvironment.addInMode); - this._operatingSystem = addInEnvironment.operatingSystem; - this._tableauVersion = addInEnvironment.tableauVersion; - } - Object.defineProperty(Environment.prototype, "apiVersion", { - get: function () { - return this._apiVersion; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Environment.prototype, "context", { - get: function () { - return this._context; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Environment.prototype, "language", { - get: function () { - return this._language; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Environment.prototype, "locale", { - get: function () { - return this._locale; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Environment.prototype, "mode", { - get: function () { - return this._mode; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Environment.prototype, "operatingSystem", { - get: function () { - return this._operatingSystem; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Environment.prototype, "tableauVersion", { - get: function () { - return this._tableauVersion; - }, - enumerable: true, - configurable: true - }); - return Environment; - }()); - exports.Environment = Environment; - - -/***/ }, -/* 44 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Implementation of the external settings namespace. - */ - var Settings = (function () { - function Settings(settingsImpl) { - this.settingsImpl = settingsImpl; - } - Settings.prototype.erase = function (key) { - this.settingsImpl.erase(key); - }; - Settings.prototype.get = function (key) { - return this.settingsImpl.get(key); - }; - Settings.prototype.getAll = function () { - return this.settingsImpl.getAll(); - }; - Object.defineProperty(Settings.prototype, "isModified", { - get: function () { - return this.settingsImpl.isModified; - }, - enumerable: true, - configurable: true - }); - Settings.prototype.saveAsync = function () { - return this.settingsImpl.saveAsync(); - }; - Settings.prototype.set = function (key, value) { - this.settingsImpl.set(key, value); - }; - return Settings; - }()); - exports.Settings = Settings; - - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_shared_1 = __webpack_require__(9); - var InitializationServiceImpl_1 = __webpack_require__(46); - var SettingsServiceImpl_1 = __webpack_require__(47); - function registerAllAddInServices(dispatcher) { - api_shared_1.ApiServiceRegistry.instance.registerService(new InitializationServiceImpl_1.InitializationServiceImpl(dispatcher)); - api_shared_1.ApiServiceRegistry.instance.registerService(new SettingsServiceImpl_1.SettingsServiceImpl(dispatcher)); - } - exports.registerAllAddInServices = registerAllAddInServices; - - -/***/ }, -/* 46 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(3); - var InitializationServiceImpl = (function () { - function InitializationServiceImpl(dispatcher) { - this.dispatcher = dispatcher; - } - Object.defineProperty(InitializationServiceImpl.prototype, "serviceName", { - get: function () { - return "InitializationService" /* InitializationService */; - }, - enumerable: true, - configurable: true - }); - InitializationServiceImpl.prototype.initializeDashboardAddInAsync = function () { - // We don't need any parameters for this call because they are added in for us by the dispatcher - return this.dispatcher.execute(api_internal_contract_1.VerbId.InitializeAddIn, {}).then(function (response) { - // TODO - Validate return value - var result = response.result; - return result; - }); - }; - return InitializationServiceImpl; - }()); - exports.InitializationServiceImpl = InitializationServiceImpl; - - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(3); - var SettingsServiceImpl = (function () { - function SettingsServiceImpl(dispatcher) { - this.dispatcher = dispatcher; - } - Object.defineProperty(SettingsServiceImpl.prototype, "serviceName", { - get: function () { - return "SettingsService" /* SettingsService */; - }, - enumerable: true, - configurable: true - }); - SettingsServiceImpl.prototype.saveSettingsAsync = function (settings) { - var parameters = {}; - parameters[api_internal_contract_1.ParameterId.SettingsValues] = settings; - return this.dispatcher.execute(api_internal_contract_1.VerbId.SaveAddInSettings, parameters).then(function (value) { - var result = value.result; - if (!result || !result.settingsValues) { - throw new Error('Internal error saving settings.'); - } - return (result.settingsValues); - }); - }; - return SettingsServiceImpl; - }()); - exports.SettingsServiceImpl = SettingsServiceImpl; - - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Represents the current version of the addin library - */ - var VersionNumber = (function () { - // private constructor so everyone uses the singleton instance - function VersionNumber(versionString) { - var parts = versionString.split('.').map(function (p) { return parseInt(p, 10); }); - if (parts.length !== 3) { - throw new Error('Invalid version number: ' + versionString); - } - this._major = parts[0]; - this._minor = parts[1]; - this._fix = parts[2]; - } - Object.defineProperty(VersionNumber, "Instance", { - /** - * Gets the singleton instance of the version number. - */ - get: function () { - return VersionNumber._instance; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(VersionNumber.prototype, "major", { - get: function () { - return this._major; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(VersionNumber.prototype, "minor", { - get: function () { - return this._minor; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(VersionNumber.prototype, "fix", { - get: function () { - return this._fix; - }, - enumerable: true, - configurable: true - }); - // Using some webpack tricks, we can inject this version into our code (kinda like c++ preprocessor stuff) - VersionNumber._instance = new VersionNumber(("0.2.0")); - return VersionNumber; - }()); - exports.VersionNumber = VersionNumber; - - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var Contract = __webpack_require__(50); - var api_internal_contract_1 = __webpack_require__(3); - var api_shared_1 = __webpack_require__(9); - var DashboardObject_1 = __webpack_require__(51); - var Worksheet_1 = __webpack_require__(52); - var SheetImpl_1 = __webpack_require__(53); - var SheetInfoImpl_1 = __webpack_require__(54); - var WorksheetImpl_1 = __webpack_require__(55); - var DashboardImpl = (function (_super) { - __extends(DashboardImpl, _super); - function DashboardImpl(_info, _sheetPath) { - var _this = _super.call(this, new SheetInfoImpl_1.SheetInfoImpl(_info.name, Contract.SheetType.Dashboard)) || this; - _this._info = _info; - _this._sheetPath = _sheetPath; - return _this; - } - Object.defineProperty(DashboardImpl.prototype, "worksheets", { - get: function () { - return this._worksheets; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DashboardImpl.prototype, "objects", { - get: function () { - return this._objects; - }, - enumerable: true, - configurable: true - }); - DashboardImpl.prototype.initializeWithPublicInterfaces = function (dashboard) { - this._worksheets = new Array(); - this._objects = new Array(); - // Process all the zones which are contained in this dashboard - for (var _i = 0, _a = this._info.zones; _i < _a.length; _i++) { - var zone = _a[_i]; - var worksheet = undefined; - if (zone.zoneType === api_internal_contract_1.DashboardObjectType.Worksheet) { - var sheetInfo = new SheetInfoImpl_1.SheetInfoImpl(zone.name, Contract.SheetType.Worksheet); - var vizId = { - worksheet: zone.name, - dashboard: this._info.name, - storyboard: this._sheetPath.storyboard, - flipboardZoneID: this._sheetPath.flipboardZoneID, - storyPointID: this._sheetPath.storyPointID - }; - var worksheetImpl = new WorksheetImpl_1.WorksheetImpl(sheetInfo, vizId); - worksheet = new Worksheet_1.Worksheet(worksheetImpl); - this._worksheets.push(worksheet); - } - var zonePoint = new api_shared_1.Point(zone.x, zone.y); - var zoneSize = new api_shared_1.Size(zone.height, zone.width); - var dashboardObject = new DashboardObject_1.DashboardObject(dashboard, zone.zoneType, zonePoint, zoneSize, worksheet); - this._objects.push(dashboardObject); - } - }; - return DashboardImpl; - }(SheetImpl_1.SheetImpl)); - exports.DashboardImpl = DashboardImpl; - - -/***/ }, -/* 50 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export(__webpack_require__(18)); - - -/***/ }, -/* 51 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Implementation of the dashboard objects - the zones in a dashboard. - * This does not follow the Impl pattern as it is just a property bag. - */ - var DashboardObject = (function () { - function DashboardObject(_dashboard, _type, _position, _size, _worksheet) { - this._dashboard = _dashboard; - this._type = _type; - this._position = _position; - this._size = _size; - this._worksheet = _worksheet; - } - Object.defineProperty(DashboardObject.prototype, "dashboard", { - get: function () { - return this._dashboard; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DashboardObject.prototype, "type", { - get: function () { - return this._type; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DashboardObject.prototype, "position", { - get: function () { - return this._position; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DashboardObject.prototype, "size", { - get: function () { - return this._size; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DashboardObject.prototype, "worksheet", { - get: function () { - return this._worksheet; - }, - enumerable: true, - configurable: true - }); - return DashboardObject; - }()); - exports.DashboardObject = DashboardObject; - - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var Sheet_1 = __webpack_require__(41); - var Worksheet = (function (_super) { - __extends(Worksheet, _super); - function Worksheet(worksheetImpl) { - var _this = _super.call(this, worksheetImpl) || this; - _this._worksheetImpl = worksheetImpl; - // Call to initialize events and then call down to the event listener manager to handle things - _this._worksheetImpl.initializeEvents(_this).forEach(function (e) { return _this.addNewEventType(e); }); - return _this; - } - Object.defineProperty(Worksheet.prototype, "parentDashboard", { - get: function () { - throw new Error('API call not yet implemented'); - }, - enumerable: true, - configurable: true - }); - Worksheet.prototype.applyFilterAsync = function (fieldName, values, updateType, options) { - return this._worksheetImpl.applyFilterAsync(fieldName, values, updateType, options); - }; - Worksheet.prototype.applyRangeFilterAsync = function (fieldName, filterOptions) { - return this._worksheetImpl.applyRangeFilterAsync(fieldName, filterOptions); - }; - Worksheet.prototype.clearFilterAsync = function (fieldName) { - return this._worksheetImpl.clearFilterAsync(fieldName); - }; - Worksheet.prototype.getFiltersAsync = function () { - throw new Error('API call not yet implemented'); - }; - Worksheet.prototype.getSelectedMarksAsync = function () { - return this._worksheetImpl.getSelectedMarksAsync(); - }; - Worksheet.prototype.getHighlightedMarksAsync = function () { - return this._worksheetImpl.getHighlightedMarksAsync(); - }; - Worksheet.prototype.getSummaryDataAsync = function (options) { - return this._worksheetImpl.getSummaryDataAsync(options); - }; - Worksheet.prototype.getUnderlyingDataAsync = function (options) { - return this._worksheetImpl.getUnderlyingDataAsync(options); - }; - Worksheet.prototype.clearSelectedMarksAsync = function () { - return this._worksheetImpl.clearSelectedMarksAsync(); - }; - return Worksheet; - }(Sheet_1.Sheet)); - exports.Worksheet = Worksheet; - - -/***/ }, -/* 53 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_shared_1 = __webpack_require__(9); - var SheetImpl = (function () { - function SheetImpl(sheetInfoImpl) { - this.sheetInfoImpl = sheetInfoImpl; - } - Object.defineProperty(SheetImpl.prototype, "name", { - get: function () { - return this.sheetInfoImpl.name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(SheetImpl.prototype, "sheetType", { - get: function () { - return this.sheetInfoImpl.sheetType; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(SheetImpl.prototype, "sheetPath", { - get: function () { - return this.sheetInfoImpl.sheetPath; - }, - enumerable: true, - configurable: true - }); - SheetImpl.prototype.findParameterAsync = function (parameterName, sheet) { - var service = api_shared_1.ApiServiceRegistry.instance.getService("parameters-service" /* Parameters */); - return service.findParameterByNameAsync(parameterName, sheet); - }; - SheetImpl.prototype.getParametersAsync = function (sheet) { - var service = api_shared_1.ApiServiceRegistry.instance.getService("parameters-service" /* Parameters */); - return service.getParametersForSheetAsync(this.sheetPath, sheet); - }; - return SheetImpl; - }()); - exports.SheetImpl = SheetImpl; - - -/***/ }, -/* 54 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_external_contract_1 = __webpack_require__(50); - var SheetInfoImpl = (function () { - function SheetInfoImpl(_name, _sheetType - // TODO: ZoneId - // TODO: SheetSize - ) { - this._name = _name; - this._sheetType = _sheetType; - } - Object.defineProperty(SheetInfoImpl.prototype, "name", { - get: function () { - return this._name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(SheetInfoImpl.prototype, "sheetType", { - get: function () { - return this._sheetType; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(SheetInfoImpl.prototype, "sheetPath", { - get: function () { - return { - sheetName: this.name, - isDashboard: this.sheetType === api_external_contract_1.SheetType.Dashboard - // TODO - Stories - }; - }, - enumerable: true, - configurable: true - }); - return SheetInfoImpl; - }()); - exports.SheetInfoImpl = SheetInfoImpl; - - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var Contract = __webpack_require__(50); - var api_internal_contract_1 = __webpack_require__(3); - var api_shared_1 = __webpack_require__(9); - var SheetImpl_1 = __webpack_require__(53); - var visualIdsAreEqual = function (a, b) { - return a && b && - a.worksheet === b.worksheet && - a.dashboard === b.dashboard && - a.storyboard === b.storyboard && - a.storyPointID === b.storyPointID && - a.flipboardZoneID === b.flipboardZoneID; - }; - var WorksheetImpl = (function (_super) { - __extends(WorksheetImpl, _super); - function WorksheetImpl(sheetInfoImpl, _visualId) { - var _this = _super.call(this, sheetInfoImpl) || this; - _this._visualId = _visualId; - return _this; - } - /** - * Helper method which goes through and registers each event type this impl knows about - * with the NotificationService. It returns an array of SingleEventManager objects which - * can then be passed to an EventListenerManager to handle user registration / unregistration. - * - * @param {Worksheet} worksheet The worksheet object which will be included with the event notifications - * @returns {Array} Collection of event managers to pass to an EventListenerManager - */ - WorksheetImpl.prototype.initializeEvents = function (worksheet) { - var _this = this; - var results = new Array(); - var notificationService; - try { - notificationService = api_shared_1.ApiServiceRegistry.instance.getService("notification-service" /* Notification */); - } - catch (e) { - // If we don't have this service registered, just return - return results; - } - // Initialize all of the event managers we'll need (one for each event type) - var marksEvent = new api_shared_1.SingleEventManagerImpl(Contract.TableauEventType.MarkSelectionChanged); - notificationService.registerHandler(api_internal_contract_1.NotificationId.SelectedMarksChanged, function (model) { - var visualId = model; - return visualIdsAreEqual(visualId, _this.visualId); - }, function (viz) { - marksEvent.triggerEvent(function () { return new api_shared_1.MarksSelectedEvent(worksheet); }); - }); - var filterEvent = new api_shared_1.SingleEventManagerImpl(Contract.TableauEventType.FilterChanged); - notificationService.registerHandler(api_internal_contract_1.NotificationId.FilterChanged, function (model) { - var filterEventResponse = model; - return _this.visualId.worksheet === filterEventResponse.visualId.worksheet; - }, function (event) { - filterEvent.triggerEvent(function () { return new api_shared_1.FilterChangedEvent(worksheet, event.fieldName); }); - }); - results.push(marksEvent); - results.push(filterEvent); - // TODO - other event types - return results; - }; - Object.defineProperty(WorksheetImpl.prototype, "visualId", { - get: function () { - return this._visualId; - }, - enumerable: true, - configurable: true - }); - WorksheetImpl.prototype.applyFilterAsync = function (fieldName, values, updateType, options) { - var service = api_shared_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */); - return service.applyFilterAsync(this.visualId, fieldName, values, updateType, options); - }; - WorksheetImpl.prototype.applyRangeFilterAsync = function (fieldName, filterOptions) { - var service = api_shared_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */); - return service.applyRangeFilterAsync(this.visualId, fieldName, filterOptions); - }; - WorksheetImpl.prototype.clearFilterAsync = function (fieldName) { - var service = api_shared_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */); - return service.clearFilterAsync(this.visualId, fieldName); - }; - WorksheetImpl.prototype.getSelectedMarksAsync = function () { - var service = api_shared_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */); - return service.getSelectedMarksAsync(this.visualId); - }; - WorksheetImpl.prototype.getHighlightedMarksAsync = function () { - var service = api_shared_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */); - return service.getHighlightedMarksAsync(this.visualId); - }; - WorksheetImpl.prototype.getSummaryDataAsync = function (options) { - var service = api_shared_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */); - options = options || {}; - return service.getUnderlyingDataAsync(this.visualId, api_shared_1.GetDataType.Summary, !!options.ignoreAliases, !!options.ignoreSelection, true, 0); - }; - WorksheetImpl.prototype.getUnderlyingDataAsync = function (options) { - var service = api_shared_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */); - options = options || {}; - return service.getUnderlyingDataAsync(this.visualId, api_shared_1.GetDataType.Underlying, !!options.ignoreAliases, !!options.ignoreSelection, !!options.includeAllColumns, options.maxRows || 0); - }; - WorksheetImpl.prototype.clearSelectedMarksAsync = function () { - var service = api_shared_1.ApiServiceRegistry.instance.getService("selection-service" /* Selection */); - return service.clearSelectedMarksAsync(this.visualId); - }; - return WorksheetImpl; - }(SheetImpl_1.SheetImpl)); - exports.WorksheetImpl = WorksheetImpl; - - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_shared_1 = __webpack_require__(9); - var api_utils_1 = __webpack_require__(57); - var SettingsImpl = (function () { - function SettingsImpl(settingsInfo) { - // Since promises can't be introspected for state, keep a variable that - // indicates a save is in progress, so that set/erase can't be called during a save. - this._saveInProgress = false; - this.initializeSettings(settingsInfo); - } - SettingsImpl.prototype.erase = function (key) { - api_utils_1.Param.verifyValue(key, 'key'); - // Only make a modification if we have the key already - if (this._currentSettings[key]) { - this.verifySettingsAreUnlocked(); - delete this._currentSettings[key]; - this._isModified = true; - } - }; - SettingsImpl.prototype.get = function (key) { - api_utils_1.Param.verifyValue(key, 'key'); - return this._currentSettings[key]; - }; - SettingsImpl.prototype.getAll = function () { - // Returns a mutable copy of the settings - return Object.assign({}, this._currentSettings); - }; - Object.defineProperty(SettingsImpl.prototype, "isModified", { - get: function () { - return this._isModified; - }, - enumerable: true, - configurable: true - }); - SettingsImpl.prototype.saveAsync = function () { - var _this = this; - this.verifySettingsAreUnlocked(); - // Just resolve immediately if settings are unchanged - if (!this._isModified) { - return Promise.resolve(this._currentSettings); - } - this._saveInProgress = true; - // Use the settings service to save settings to twb - var settingsService = api_shared_1.ApiServiceRegistry.instance.getService("SettingsService" /* SettingsService */); - return settingsService.saveSettingsAsync(this._currentSettings).then(function (newSettings) { - _this._saveInProgress = false; - _this._isModified = false; - Object.assign(_this._currentSettings, newSettings); - return newSettings; - }); - }; - SettingsImpl.prototype.set = function (key, value) { - api_utils_1.Param.verifyValue(key, 'key'); // Key shouldn't be an empty string. - api_utils_1.Param.verifyString(value, 'value'); // Empty string value is allowed. - this.verifySettingsAreUnlocked(); - this._currentSettings[key] = value; - this._isModified = true; - }; - SettingsImpl.prototype.initializeSettings = function (settingsInfo) { - api_utils_1.Param.verifyValue(settingsInfo, 'settingsInfo'); - api_utils_1.Param.verifyValue(settingsInfo.settingsValues, 'settingsInfo.SettingsValues'); - this._currentSettings = settingsInfo.settingsValues; - // Reset the isModified flag - this._isModified = false; - }; - /** - * This helper should be called before any local update to this.currentSettings. - * Checks if a current save call is still in progress and throws an error if so. - */ - SettingsImpl.prototype.verifySettingsAreUnlocked = function () { - if (this._saveInProgress) { - throw new Error('Async Save is in progress, updating settings is not allowed.'); - } - }; - return SettingsImpl; - }()); - exports.SettingsImpl = SettingsImpl; - - -/***/ }, -/* 57 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - Object.defineProperty(exports, "__esModule", { value: true }); - var EnumConverter_1 = __webpack_require__(29); - exports.EnumConverter = EnumConverter_1.EnumConverter; - var Param_1 = __webpack_require__(30); - exports.Param = Param_1.Param; - - -/***/ } -/******/ ]) -}); -; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovLy93ZWJwYWNrL2Jvb3RzdHJhcCA4NzkwYzFmYTZjNTg2YjA5NDIyZSIsIndlYnBhY2s6Ly8vLi4vc3JjL0FkZEluQXBpLnRzIiwid2VicGFjazovLy8uLi9zcmMvRXh0ZXJuYWxOYW1lc3BhY2VzL0FkZEluLnRzIiwid2VicGFjazovLy8uLi9zcmMvSW50ZXJuYWwvQWRkSW5JbXBsLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9zcmMvQXBpSW50ZXJuYWxDb250cmFjdC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3Qvc3JjL2ludGVyZmFjZS9FbnVtcy50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3Qvc3JjL2ludGVyZmFjZS9JbnRlcm5hbEFwaURpc3BhdGNoZXIudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWludGVybmFsLWNvbnRyYWN0L3NyYy9pbnRlcmZhY2UvTm90aWZpY2F0aW9ucy50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3Qvc3JjL2ludGVyZmFjZS9QYXJhbWV0ZXJzLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9zcmMvaW50ZXJmYWNlL1ZlcmJzLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0FwaVNoYXJlZC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FdmVudExpc3RlbmVyTWFuYWdlci50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9QYXJhbWV0ZXIudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvUG9pbnQudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvU2l6ZS50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9Nb2RlbHMvR2V0RGF0YU1vZGVscy50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FeGNlcHRpb25zL1RhYmxlYXVFeGNlcHRpb25zLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0V2ZW50cy9GaWx0ZXJDaGFuZ2VkRXZlbnQudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWV4dGVybmFsLWNvbnRyYWN0L3NyYy9BcGlFeHRlcm5hbENvbnRyYWN0LnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1leHRlcm5hbC1jb250cmFjdC9zcmMvRW51bXMudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRXZlbnRzL1RhYmxlYXVXb3Jrc2hlZXRFdmVudC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FdmVudHMvVGFibGVhdVNoZWV0RXZlbnQudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRXZlbnRzL1RhYmxlYXVFdmVudC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FdmVudHMvTWFya3NTZWxlY3RlZEV2ZW50LnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0ludGVybmFsL1NpbmdsZUV2ZW50TWFuYWdlckltcGwudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvU2VydmljZXMvR2V0RGF0YVNlcnZpY2UudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvU2VydmljZXMvUmVnaXN0ZXJBbGxTaGFyZWRTZXJ2aWNlcy50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9pbXBsL0ZpbHRlclNlcnZpY2VJbXBsLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS11dGlscy9zcmMvQXBpVXRpbHMudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXV0aWxzL3NyYy9FbnVtQ29udmVydGVyLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS11dGlscy9zcmMvUGFyYW0udHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRW51bU1hcHBpbmdzL0V4dGVybmFsVG9JbnRlcm5hbEVudW1NYXBwaW5ncy50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9pbXBsL0dldERhdGFTZXJ2aWNlSW1wbC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9pbXBsL05vdGlmaWNhdGlvblNlcnZpY2VJbXBsLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NlcnZpY2VzL2ltcGwvUGFyYW1ldGVyc1NlcnZpY2VJbXBsLnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0ludGVybmFsL1BhcmFtZXRlckltcGwudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRW51bU1hcHBpbmdzL0ludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncy50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FdmVudHMvUGFyYW1ldGVyQ2hhbmdlZEV2ZW50LnRzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NlcnZpY2VzL1NlcnZpY2VSZWdpc3RyeS50cyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9pbXBsL1NlbGVjdGlvblNlcnZpY2VJbXBsLnRzIiwid2VicGFjazovLy8uLi9zcmMvRGFzaGJvYXJkLnRzIiwid2VicGFjazovLy8uLi9zcmMvU2hlZXQudHMiLCJ3ZWJwYWNrOi8vLy4uL3NyYy9FeHRlcm5hbE5hbWVzcGFjZXMvRGFzaGJvYXJkQ29udGVudC50cyIsIndlYnBhY2s6Ly8vLi4vc3JjL0V4dGVybmFsTmFtZXNwYWNlcy9FbnZpcm9ubWVudC50cyIsIndlYnBhY2s6Ly8vLi4vc3JjL0V4dGVybmFsTmFtZXNwYWNlcy9TZXR0aW5ncy50cyIsIndlYnBhY2s6Ly8vLi4vc3JjL1NlcnZpY2VzL1JlZ2lzdGVyQWxsQWRkSW5TZXJ2aWNlcy50cyIsIndlYnBhY2s6Ly8vLi4vc3JjL1NlcnZpY2VzL0ltcGwvSW5pdGlhbGl6YXRpb25TZXJ2aWNlSW1wbC50cyIsIndlYnBhY2s6Ly8vLi4vc3JjL1NlcnZpY2VzL0ltcGwvU2V0dGluZ3NTZXJ2aWNlSW1wbC50cyIsIndlYnBhY2s6Ly8vLi4vc3JjL1ZlcnNpb25OdW1iZXIudHMiLCJ3ZWJwYWNrOi8vLy4uL3NyYy9JbnRlcm5hbC9EYXNoYm9hcmRJbXBsLnRzIiwid2VicGFjazovLy8uLi9zcmMvRGFzaGJvYXJkT2JqZWN0LnRzIiwid2VicGFjazovLy8uLi9zcmMvV29ya3NoZWV0LnRzIiwid2VicGFjazovLy8uLi9zcmMvSW50ZXJuYWwvU2hlZXRJbXBsLnRzIiwid2VicGFjazovLy8uLi9zcmMvSW50ZXJuYWwvU2hlZXRJbmZvSW1wbC50cyIsIndlYnBhY2s6Ly8vLi4vc3JjL0ludGVybmFsL1dvcmtzaGVldEltcGwudHMiLCJ3ZWJwYWNrOi8vLy4uL3NyYy9JbnRlcm5hbC9TZXR0aW5nc0ltcGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELE87QUNWQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSx1QkFBZTtBQUNmO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOzs7Ozs7OztBQ3RDQTs7OztJQUlHOztBQUVILDJGQUEwRjtBQUMxRiw2RkFBNEY7QUFDNUYsbUJBQWtCO0FBRWxCLHNDQUFtRDtBQUNuRCwwQ0FBaUQ7QUFFakQsS0FBTSxTQUFTLEdBQUcsSUFBSSxxQkFBUyxFQUFFLENBQUM7QUFDckIsY0FBSyxHQUFHLElBQUksYUFBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRTFDLGdCQUFlO0FBQ2YsdURBSXdDO0FBSHRDLG9FQUFnQjtBQUNoQix3REFBVTtBQUNWLG9FQUFnQjs7Ozs7Ozs7O0FDaEJsQjs7SUFFRztBQUNIO0tBQ0UsZUFBMkIsU0FBb0I7U0FBcEIsY0FBUyxHQUFULFNBQVMsQ0FBVztTQUM3QyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztLQUM3QixDQUFDO0tBRUQsc0JBQVcsbUNBQWdCO2NBQTNCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUM7U0FDekMsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyw4QkFBVztjQUF0QjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQztTQUNwQyxDQUFDOzs7UUFBQTtLQUVELHNCQUFXLDJCQUFRO2NBQW5CO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO1NBQ2pDLENBQUM7OztRQUFBO0tBRUQsc0JBQVcscUJBQUU7Y0FBYjthQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztTQUNsRCxDQUFDOzs7UUFBQTtLQUVNLCtCQUFlLEdBQXRCO1NBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLENBQUM7S0FDMUMsQ0FBQztLQUNILFlBQUM7QUFBRCxFQUFDO0FBeEJZLHVCQUFLOzs7Ozs7Ozs7QUNQbEIsc0RBTXdDO0FBQ3hDLDJDQUFvRjtBQUVwRiwyQ0FBeUM7QUFDekMsa0RBQTBFO0FBQzFFLDZDQUFnRTtBQUNoRSwwQ0FBMEQ7QUFHMUQsMERBQWdGO0FBQ2hGLCtDQUFpRDtBQUNqRCwrQ0FBZ0Q7QUFDaEQsOENBQThDO0FBRTlDO0tBQUE7S0F3REEsQ0FBQztLQWpEUSxtQ0FBZSxHQUF0QjtTQUFBLGlCQWVDO1NBZEMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO2FBQ2pDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLE9BQU8sQ0FBTyxVQUFDLE9BQU8sRUFBRSxNQUFNO2lCQUM5RCx1R0FBdUc7aUJBQ3ZHLEVBQUUsQ0FBQyxDQUFDLG1EQUEyQixDQUFDLDhCQUE4QixFQUFFLENBQUMsQ0FBQyxDQUFDO3FCQUNqRSx1Q0FBdUM7cUJBQ3ZDLElBQU0sd0JBQXdCLEdBQUcsbURBQTJCLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztxQkFDM0Ysd0JBQXdCLENBQUMsSUFBSSxDQUFDLEtBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBUSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNqRyxDQUFDO2lCQUFDLElBQUksQ0FBQyxDQUFDO3FCQUNOLE1BQU0sQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO2lCQUNoRSxDQUFDO2FBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDTCxDQUFDO1NBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztLQUNyQyxDQUFDO0tBRU8sd0NBQW9CLEdBQTVCLFVBQTZCLFVBQWlDO1NBQTlELGlCQW9CQztTQW5CQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsNkJBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUVwRCxvRkFBb0Y7U0FDcEYsc0NBQXlCLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDdEMsbURBQXdCLENBQUMsVUFBVSxDQUFDLENBQUM7U0FFckMsNERBQTREO1NBQzVELElBQU0scUJBQXFCLEdBQUcsK0JBQWtCLENBQUMsUUFBUSxDQUFDLFVBQVUscURBQzFCLENBQUM7U0FFM0MsTUFBTSxDQUFDLHFCQUFxQixDQUFDLDZCQUE2QixFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFNO2FBQ3RFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztpQkFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO2FBQ2hELENBQUM7YUFFRCxLQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSSxDQUFDLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUMvSCxLQUFJLENBQUMsV0FBVyxHQUFHLElBQUkseUJBQVcsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzthQUM1RCxLQUFJLENBQUMsUUFBUSxHQUFHLEtBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUNwRSxDQUFDLENBQUMsQ0FBQztLQUNMLENBQUM7S0FFTyw4Q0FBMEIsR0FBbEMsVUFBbUMsSUFBd0IsRUFBRSxTQUFvQjtTQUMvRSxJQUFNLGFBQWEsR0FBRyxJQUFJLDZCQUFhLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQ3pELElBQU0sU0FBUyxHQUFHLElBQUkscUJBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUMvQyxNQUFNLENBQUMsSUFBSSxtQ0FBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUN6QyxDQUFDO0tBRU8sc0NBQWtCLEdBQTFCLFVBQTJCLFlBQStCO1NBQ3hELElBQU0sWUFBWSxHQUFHLElBQUksMkJBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNwRCxNQUFNLENBQUMsSUFBSSxtQkFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO0tBQ3BDLENBQUM7S0FDSCxnQkFBQztBQUFELEVBQUM7QUF4RFksK0JBQVM7Ozs7Ozs7O0FDcEJ0Qjs7OztJQUlHOzs7OztBQUVILGtDQUFrQztBQUNsQyxrQ0FBa0Q7QUFFbEQsa0NBQTBDO0FBQzFDLGtDQUF1QztBQUN2QyxrQ0FBa0M7Ozs7Ozs7OztBQ1hsQyxLQUFZLFlBSVg7QUFKRCxZQUFZLFlBQVk7S0FDdEIsbUNBQW1CO0tBQ25CLGlDQUFpQjtLQUNqQixtQ0FBbUI7QUFDckIsRUFBQyxFQUpXLFlBQVksR0FBWixvQkFBWSxLQUFaLG9CQUFZLFFBSXZCO0FBRUQsS0FBWSxTQUlYO0FBSkQsWUFBWSxTQUFTO0tBQ25CLG9DQUF1QjtLQUN2QixnQ0FBbUI7S0FDbkIsZ0NBQW1CO0FBQ3JCLEVBQUMsRUFKVyxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQUlwQjtBQUVELEtBQVksbUJBWVg7QUFaRCxZQUFZLG1CQUFtQjtLQUM3QixzQ0FBZTtLQUNmLDhDQUF1QjtLQUN2QixtREFBNEI7S0FDNUIsNkRBQXNDO0tBQ3RDLGlEQUEwQjtLQUMxQix3Q0FBaUI7S0FDakIsc0NBQWU7S0FDZixvQ0FBYTtLQUNiLHNDQUFlO0tBQ2YsMkNBQW9CO0tBQ3BCLHNDQUFlO0FBQ2pCLEVBQUMsRUFaVyxtQkFBbUIsR0FBbkIsMkJBQW1CLEtBQW5CLDJCQUFtQixRQVk5QjtBQUVELEtBQVksUUFRWDtBQVJELFlBQVksUUFBUTtLQUNsQiw2QkFBaUI7S0FDakIsdUJBQVc7S0FDWCwyQkFBZTtLQUNmLHlCQUFhO0tBQ2IseUJBQWE7S0FDYixrQ0FBc0I7S0FDdEIsK0JBQW1CO0FBQ3JCLEVBQUMsRUFSVyxRQUFRLEdBQVIsZ0JBQVEsS0FBUixnQkFBUSxRQVFuQjtBQUVELEtBQVksZUFLWDtBQUxELFlBQVksZUFBZTtLQUN6QixvQ0FBaUI7S0FDakIsb0NBQWlCO0tBQ2pCLGdDQUFhO0tBQ2Isc0NBQW1CO0FBQ3JCLEVBQUMsRUFMVyxlQUFlLEdBQWYsdUJBQWUsS0FBZix1QkFBZSxRQUsxQjtBQUVELEtBQVksU0FLWDtBQUxELFlBQVksU0FBUztLQUNuQix5Q0FBNEI7S0FDNUIsMkVBQThEO0tBQzlELGdFQUFtRDtLQUNuRCxtRUFBc0Q7QUFDeEQsRUFBQyxFQUxXLFNBQVMsR0FBVCxpQkFBUyxLQUFULGlCQUFTLFFBS3BCO0FBRUQ7O0lBRUc7QUFDSCxLQUFZLGdCQUtYO0FBTEQsWUFBWSxnQkFBZ0I7S0FDMUIsK0JBQVc7S0FDWCwrQkFBVztLQUNYLHVDQUFtQjtLQUNuQixxQ0FBaUI7QUFDbkIsRUFBQyxFQUxXLGdCQUFnQixHQUFoQix3QkFBZ0IsS0FBaEIsd0JBQWdCLFFBSzNCO0FBRUQsS0FBWSxTQUtYO0FBTEQsWUFBWSxTQUFTO0tBQ25CLG9DQUF1QjtLQUN2Qiw0QkFBZTtLQUNmLG9DQUF1QjtLQUN2Qiw0QkFBZTtBQUNqQixFQUFDLEVBTFcsU0FBUyxHQUFULGlCQUFTLEtBQVQsaUJBQVMsUUFLcEI7QUFFRCxLQUFZLHFCQUlYO0FBSkQsWUFBWSxxQkFBcUI7S0FDL0Isb0NBQVc7S0FDWCxzQ0FBYTtLQUNiLHdDQUFlO0FBQ2pCLEVBQUMsRUFKVyxxQkFBcUIsR0FBckIsNkJBQXFCLEtBQXJCLDZCQUFxQixRQUloQztBQUVELEtBQVksY0FTWDtBQVRELFlBQVksY0FBYztLQUN4QixpQ0FBZTtLQUNmLHVDQUFxQjtLQUNyQixtQ0FBaUI7S0FDakIsaUNBQWU7S0FDZiwrQkFBYTtLQUNiLGlDQUFlO0tBQ2YscUNBQW1CO0tBQ25CLHFDQUFtQjtBQUNyQixFQUFDLEVBVFcsY0FBYyxHQUFkLHNCQUFjLEtBQWQsc0JBQWMsUUFTekI7QUFFRDs7SUFFRztBQUNILEtBQVksVUFJWDtBQUpELFlBQVksVUFBVTtLQUNwQix1Q0FBeUI7S0FDekIsNkNBQStCO0tBQy9CLHFDQUF1QjtBQUN6QixFQUFDLEVBSlcsVUFBVSxHQUFWLGtCQUFVLEtBQVYsa0JBQVUsUUFJckI7Ozs7Ozs7OztBQzVERCxLQUFpQiwyQkFBMkIsQ0FZM0M7QUFaRCxZQUFpQiwyQkFBMkI7S0FDMUM7U0FDRSxNQUFNLENBQUMsTUFBTSxDQUFDLDBCQUEwQixDQUFDO0tBQzNDLENBQUM7S0FGZSx1REFBMkIsOEJBRTFDO0tBRUQ7U0FDRSxNQUFNLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLDJCQUEyQixFQUFFLENBQUM7S0FDckUsQ0FBQztLQUZlLDBEQUE4QixpQ0FFN0M7S0FFRCxxQ0FBNEMsVUFBMEM7U0FDcEYsTUFBTSxDQUFDLDBCQUEwQixHQUFHLFVBQVUsQ0FBQztLQUNqRCxDQUFDO0tBRmUsdURBQTJCLDhCQUUxQztBQUNILEVBQUMsRUFaZ0IsMkJBQTJCLEdBQTNCLG1DQUEyQixLQUEzQixtQ0FBMkIsUUFZM0M7Ozs7Ozs7OztBQzNDRCxLQUFZLGNBSVg7QUFKRCxZQUFZLGNBQWM7S0FDeEIsaUVBQStDO0tBQy9DLHdEQUFzQztLQUN0QyxrREFBZ0M7QUFDbEMsRUFBQyxFQUpXLGNBQWMsR0FBZCxzQkFBYyxLQUFkLHNCQUFjLFFBSXpCOzs7Ozs7Ozs7QUNKRCxLQUFZLFdBaUNYO0FBakNELFlBQVksV0FBVztLQUNyQiw4Q0FBK0I7S0FDL0IsMkRBQTRDO0tBQzVDLHlEQUEwQztLQUMxQyxxQ0FBc0I7S0FDdEIsdUNBQXdCO0tBQ3hCLCtDQUFnQztLQUNoQyxtREFBb0M7S0FDcEMsd0RBQXlDO0tBQ3pDLG1DQUFvQjtLQUNwQiw0REFBNkM7S0FDN0MsMkVBQTREO0tBQzVELGlEQUFrQztLQUNsQyw2Q0FBOEI7S0FDOUIsbURBQW9DO0tBRW5DLGdCQUFnQjtLQUNqQix1Q0FBd0I7S0FDeEIsNkNBQThCO0tBQzlCLHNEQUF1QztLQUN2QywyQ0FBNEI7S0FDNUIsa0RBQW1DO0tBQ25DLGtEQUFtQztLQUNuQyxpRUFBa0Q7S0FFbEQsK0NBQWdDO0tBQ2hDLDBDQUEyQjtLQUUzQiwrQ0FBZ0M7S0FDaEMsaURBQWtDO0tBQ2xDLHFEQUFzQztLQUN0QywwREFBMkM7S0FDM0MsaURBQWtDO0FBQ3BDLEVBQUMsRUFqQ1csV0FBVyxHQUFYLG1CQUFXLEtBQVgsbUJBQVcsUUFpQ3RCOzs7Ozs7Ozs7QUNqQ0QsOEZBQTZGO0FBQzdGLEtBQVksTUFjWDtBQWRELFlBQVksTUFBTTtLQUNoQix1REFBNkM7S0FDN0MsMkNBQWlDO0tBQ2pDLHNDQUE0QjtLQUM1QiwrQ0FBcUM7S0FDckMsaURBQXVDO0tBQ3ZDLG1EQUF5QztLQUN6QyxvREFBMEM7S0FDMUMsaURBQXVDO0tBQ3ZDLHVEQUE2QztLQUM3Qyw0REFBa0Q7S0FDbEQsMENBQWdDO0tBQ2hDLHlEQUErQztLQUMvQyxxREFBMkM7QUFDN0MsRUFBQyxFQWRXLE1BQU0sR0FBTixjQUFNLEtBQU4sY0FBTSxRQWNqQjs7Ozs7Ozs7QUNmRDs7OztJQUlHOzs7OztBQUVILG1DQUF1QztBQUN2QyxtQ0FBNEI7QUFDNUIsdUNBQWdDO0FBQXZCLDhCQUFLO0FBRWQsc0NBQThCO0FBQXJCLDJCQUFJO0FBQ2IsbUNBQXVDO0FBQ3ZDLG1DQUErQztBQUMvQyxtQ0FBNEM7QUFDNUMsbUNBQTRDO0FBQzVDLG1DQUFzQztBQUN0QyxtQ0FBMkM7QUFDM0MsbUNBQStDO0FBQy9DLG1DQUFrRDtBQUNsRCxtQ0FBMEM7QUFJMUMsbUNBQXFEO0FBRXJELG1DQUEyQztBQUMzQyxtQ0FBOEQ7Ozs7Ozs7OztBQ2pCOUQ7OztJQUdHO0FBQ0g7S0FHRTtTQUNFLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxFQUFFLENBQUM7S0FDbkMsQ0FBQztLQUVNLCtDQUFnQixHQUF2QixVQUF3QixTQUEyQixFQUFFLE9BQThCO1NBQ2pGLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDM0QsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBNEIsU0FBVyxDQUFDLENBQUM7U0FDM0QsQ0FBQztTQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDMUUsQ0FBQztLQUVNLGtEQUFtQixHQUExQixVQUEyQixTQUEyQixFQUFFLE9BQThCO1NBQ3BGLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDM0QsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBNEIsU0FBVyxDQUFDLENBQUM7U0FDM0QsQ0FBQztTQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDN0UsQ0FBQztLQUVTLDhDQUFlLEdBQXpCLFVBQTBCLFlBQWdDO1NBQ3hELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsWUFBWSxDQUFDO0tBQ3JFLENBQUM7S0FDSCwyQkFBQztBQUFELEVBQUM7QUExQlkscURBQW9COzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDTGpDLHNEQUE4RDtBQUc5RDs7O0lBR0c7QUFDSDtLQUErQiw2QkFBb0I7S0FDakQsbUJBQTJCLGFBQTRCLEVBQUUsS0FBb0I7U0FBN0UsWUFDRSxpQkFBTyxTQUlSO1NBTDBCLG1CQUFhLEdBQWIsYUFBYSxDQUFlO1NBR3JELCtDQUErQztTQUMvQyxLQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFDLElBQUksWUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBdkIsQ0FBdUIsQ0FBQyxDQUFDOztLQUNuRixDQUFDO0tBRUQsc0JBQVcsMkJBQUk7Y0FBZjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztTQUNqQyxDQUFDOzs7UUFBQTtLQUVELHNCQUFXLG1DQUFZO2NBQXZCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO1NBQ3pDLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsK0JBQVE7Y0FBbkI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7U0FDckMsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyxzQ0FBZTtjQUExQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQztTQUM1QyxDQUFDOzs7UUFBQTtLQUVNLG9DQUFnQixHQUF2QixVQUF3QixRQUEwQztTQUNoRSxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUN2RCxDQUFDO0tBQ0gsZ0JBQUM7QUFBRCxFQUFDLENBM0I4QiwyQ0FBb0IsR0EyQmxEO0FBM0JZLCtCQUFTOzs7Ozs7Ozs7QUNidEI7S0FDRSxlQUEyQixFQUFVLEVBQVUsRUFBVTtTQUE5QixPQUFFLEdBQUYsRUFBRSxDQUFRO1NBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBUTtLQUFJLENBQUM7S0FFOUQsc0JBQVcsb0JBQUM7Y0FBWjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1NBQ2pCLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsb0JBQUM7Y0FBWjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1NBQ2pCLENBQUM7OztRQUFBO0tBQ0gsWUFBQztBQUFELEVBQUM7QUFWWSx1QkFBSzs7Ozs7Ozs7O0FDQWxCO0tBQ0UsY0FBMkIsT0FBZSxFQUFVLE1BQWM7U0FBdkMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtTQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7S0FBSSxDQUFDO0tBRXZFLHNCQUFXLHdCQUFNO2NBQWpCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7U0FDdEIsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyx1QkFBSztjQUFoQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3JCLENBQUM7OztRQUFBO0tBQ0gsV0FBQztBQUFELEVBQUM7QUFWWSxxQkFBSTs7Ozs7Ozs7O0FDS2pCO0tBR0UsbUJBQ1UsS0FBc0MsRUFDdEMsUUFBK0IsRUFDL0IsY0FBc0IsRUFDdEIsY0FBdUI7U0FIdkIsVUFBSyxHQUFMLEtBQUssQ0FBaUM7U0FDdEMsYUFBUSxHQUFSLFFBQVEsQ0FBdUI7U0FDL0IsbUJBQWMsR0FBZCxjQUFjLENBQVE7U0FDdEIsbUJBQWMsR0FBZCxjQUFjLENBQVM7U0FDM0IscUNBQXFDO1NBQ3JDLElBQUksQ0FBQyxLQUFLLEdBQUcsY0FBYyxHQUFHLG9CQUFvQixHQUFHLHVCQUF1QixDQUFDO0tBQ2pGLENBQUM7S0FFSCxzQkFBVywyQkFBSTtjQUFmO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDcEIsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVywyQkFBSTtjQUFmO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDcEIsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyw4QkFBTztjQUFsQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ3ZCLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsb0NBQWE7Y0FBeEI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUM3QixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLG9DQUFhO2NBQXhCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDN0IsQ0FBQzs7O1FBQUE7S0FDSCxnQkFBQztBQUFELEVBQUM7QUEvQlksK0JBQVM7QUFpQ3RCO0tBQ0UsZ0JBQ1UsVUFBa0IsRUFDbEIsU0FBbUIsRUFBRSxvQ0FBb0M7U0FDekQsYUFBc0IsRUFDdEIsTUFBYztTQUhkLGVBQVUsR0FBVixVQUFVLENBQVE7U0FDbEIsY0FBUyxHQUFULFNBQVMsQ0FBVTtTQUNuQixrQkFBYSxHQUFiLGFBQWEsQ0FBUztTQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFRO0tBQUcsQ0FBQztLQUU1QixzQkFBVyw2QkFBUztjQUFwQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQ3pCLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsNEJBQVE7Y0FBbkI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUN4QixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLGdDQUFZO2NBQXZCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7U0FDNUIsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyx5QkFBSztjQUFoQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3JCLENBQUM7OztRQUFBO0tBQ0gsYUFBQztBQUFELEVBQUM7QUF0QlkseUJBQU07QUF3Qm5CO0tBQ0UsMkJBQTJCO0tBQzNCLG1CQUNVLE1BQVcsRUFDWCxlQUF1QjtTQUR2QixXQUFNLEdBQU4sTUFBTSxDQUFLO1NBQ1gsb0JBQWUsR0FBZixlQUFlLENBQVE7S0FBRyxDQUFDO0tBRXJDLHNCQUFXLDRCQUFLO2NBQWhCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDckIsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyxxQ0FBYztjQUF6QjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO1NBQzlCLENBQUM7OztRQUFBO0tBRUgsZ0JBQUM7QUFBRCxFQUFDO0FBZFksK0JBQVM7Ozs7Ozs7OztBQ2hFdEI7S0FBQTtLQUVBLENBQUM7S0FBRCx3QkFBQztBQUFELEVBQUM7QUFGWSwrQ0FBaUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBOUIsdURBS3dDO0FBRXhDLHVEQUFnRTtBQUVoRTtLQUF3QyxzQ0FBcUI7S0FDM0QsNEJBQW1CLFNBQTRCLEVBQVUsVUFBa0I7U0FBM0UsWUFDRSxrQkFBTSx3Q0FBZ0IsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLFNBQ2pEO1NBRndELGdCQUFVLEdBQVYsVUFBVSxDQUFROztLQUUzRSxDQUFDO0tBRUQsc0JBQVcseUNBQVM7Y0FBcEI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUN6QixDQUFDOzs7UUFBQTtLQUVNLDJDQUFjLEdBQXJCO1NBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0tBQ25ELENBQUM7S0FDSCx5QkFBQztBQUFELEVBQUMsQ0FadUMsNkNBQXFCLEdBWTVEO0FBWlksaURBQWtCOzs7Ozs7OztBQ1QvQjs7OztJQUlHOzs7OztBQUdILG1DQUF3Qjs7Ozs7Ozs7QUNQeEIsdURBQXNEO0FBQ3RELCtDQUE4Qzs7QUFFOUM7O0lBRUc7QUFDSCxLQUFZLFlBSVg7QUFKRCxZQUFZLFlBQVk7S0FDdEIsbUNBQW1CO0tBQ25CLGlDQUFpQjtLQUNqQixtQ0FBbUI7QUFDckIsRUFBQyxFQUpXLFlBQVksR0FBWixvQkFBWSxLQUFaLG9CQUFZLFFBSXZCO0FBRUQ7O0lBRUc7QUFDSCxLQUFZLFNBSVg7QUFKRCxZQUFZLFNBQVM7S0FDbkIsb0NBQXVCO0tBQ3ZCLGdDQUFtQjtLQUNuQixnQ0FBbUI7QUFDckIsRUFBQyxFQUpXLFNBQVMsR0FBVCxpQkFBUyxLQUFULGlCQUFTLFFBSXBCO0FBRUQ7O0lBRUc7QUFDSCxLQUFZLG1CQVlYO0FBWkQsWUFBWSxtQkFBbUI7S0FDN0Isc0NBQWU7S0FDZiw4Q0FBdUI7S0FDdkIsbURBQTRCO0tBQzVCLDZEQUFzQztLQUN0QyxpREFBMEI7S0FDMUIsd0NBQWlCO0tBQ2pCLHNDQUFlO0tBQ2Ysb0NBQWE7S0FDYixzQ0FBZTtLQUNmLDJDQUFvQjtLQUNwQixzQ0FBZTtBQUNqQixFQUFDLEVBWlcsbUJBQW1CLEdBQW5CLDJCQUFtQixLQUFuQiwyQkFBbUIsUUFZOUI7QUFFRDs7SUFFRztBQUNILEtBQVksUUFRWDtBQVJELFlBQVksUUFBUTtLQUNsQiw2QkFBaUI7S0FDakIsdUJBQVc7S0FDWCwyQkFBZTtLQUNmLHlCQUFhO0tBQ2IseUJBQWE7S0FDYixrQ0FBc0I7S0FDdEIsK0JBQW1CO0FBQ3JCLEVBQUMsRUFSVyxRQUFRLEdBQVIsZ0JBQVEsS0FBUixnQkFBUSxRQVFuQjtBQUVEOztJQUVHO0FBQ0gsS0FBWSxhQU9YO0FBUEQsWUFBWSxhQUFhO0tBQ3ZCLDhCQUFhO0tBQ2IsaUNBQWdCO0tBQ2hCLDhCQUFhO0tBQ2IsaUNBQWdCO0tBQ2hCLG9DQUFtQjtLQUNuQixtQ0FBa0I7QUFDcEIsRUFBQyxFQVBXLGFBQWEsR0FBYixxQkFBYSxLQUFiLHFCQUFhLFFBT3hCO0FBRUQ7O0lBRUc7QUFDSCxLQUFZLGVBR1g7QUFIRCxZQUFZLGVBQWU7S0FDekIsbURBQWdDO0tBQ2hDLCtDQUE0QjtBQUM5QixFQUFDLEVBSFcsZUFBZSxHQUFmLHVCQUFlLEtBQWYsdUJBQWUsUUFHMUI7QUFFRDs7SUFFRztBQUNILEtBQVksVUE2RFg7QUE3REQsWUFBWSxVQUFVO0tBQ3BCOztRQUVHO0tBQ0gsdURBQXlDO0tBQ3pDOztRQUVHO0tBQ0gsMERBQTRDO0tBQzVDOztRQUVHO0tBQ0gsb0VBQXNEO0tBQ3REOztRQUVHO0tBQ0gsOENBQWdDO0tBQ2hDOztRQUVHO0tBQ0gsNEVBQThEO0tBQzlEOztRQUVHO0tBQ0gsMkRBQTZDO0tBQzdDOztRQUVHO0tBQ0gsNkRBQStDO0tBQy9DOztRQUVHO0tBQ0gsa0VBQW9EO0tBQ3BEOztRQUVHO0tBQ0gsb0VBQXNEO0tBQ3REOztRQUVHO0tBQ0gsb0RBQXNDO0tBQ3RDOztRQUVHO0tBQ0gsNkRBQStDO0tBQy9DOztRQUVHO0tBQ0gsd0VBQTBEO0tBQzFEOztRQUVHO0tBQ0gsK0RBQWlEO0tBQ2pEOztRQUVHO0tBQ0gsOERBQWdEO0tBQ2hEOztRQUVHO0tBQ0gsNkRBQStDO0FBQ2pELEVBQUMsRUE3RFcsVUFBVSxHQUFWLGtCQUFVLEtBQVYsa0JBQVUsUUE2RHJCO0FBRUQ7O0lBRUc7QUFDSCxLQUFZLG1CQXdDWDtBQXhDRCxZQUFZLG1CQUFtQjtLQUM3QixrQ0FBVztLQUNYLGtDQUFXO0tBQ1gsa0NBQVc7S0FDWCxrQ0FBVztLQUNYLHNDQUFlO0tBQ2Ysd0NBQWlCO0tBQ2pCLGtDQUFXO0tBQ1gsb0NBQWE7S0FDYixzQ0FBZTtLQUNmLHdDQUFpQjtLQUNqQix3Q0FBaUI7S0FDakIsb0NBQWE7S0FDYixvQ0FBYTtLQUNiLG9DQUFhO0tBQ2Isa0NBQVc7S0FDWCxzQ0FBZTtLQUNmLGtDQUFXO0tBQ1gsb0NBQWE7S0FDYix3Q0FBaUI7S0FDakIsd0NBQWlCO0tBQ2pCLG9DQUFhO0tBQ2IsMENBQW1CO0tBQ25CLCtDQUF3QjtLQUN4QixrQ0FBVztLQUNYLGtDQUFXO0tBQ1gsK0NBQXdCO0tBQ3hCLDZDQUFzQjtLQUN0QixpREFBMEI7S0FDMUIsK0NBQXdCO0tBQ3hCLDZDQUFzQjtLQUN0QiwrQ0FBd0I7S0FDeEIsbURBQTRCO0tBQzVCLG1EQUE0QjtLQUM1Qix3Q0FBaUI7S0FDakIsd0NBQWlCO0tBQ2pCLDRDQUFxQjtLQUNyQiw0Q0FBcUI7S0FDckIsdUNBQWdCO0tBQ2hCLG9DQUFhO0FBQ2YsRUFBQyxFQXhDVyxtQkFBbUIsR0FBbkIsMkJBQW1CLEtBQW5CLDJCQUFtQixRQXdDOUI7QUFFRDs7SUFFRztBQUNILEtBQVksYUFJWDtBQUpELFlBQVksYUFBYTtLQUN2Qix3Q0FBdUI7S0FDdkIsb0NBQW1CO0tBQ25CLG9DQUFtQjtBQUNyQixFQUFDLEVBSlcsYUFBYSxHQUFiLHFCQUFhLEtBQWIscUJBQWEsUUFJeEI7QUFFRDs7SUFFRztBQUNILEtBQVksVUFLWDtBQUxELFlBQVksVUFBVTtLQUNwQix5Q0FBMkI7S0FDM0IsMkNBQTZCO0tBQzdCLDJDQUE2QjtLQUM3Qiw0Q0FBOEI7QUFDaEMsRUFBQyxFQUxXLFVBQVUsR0FBVixrQkFBVSxLQUFWLGtCQUFVLFFBS3JCO0FBRUQ7O0lBRUc7QUFDSCxLQUFZLGdCQUtYO0FBTEQsWUFBWSxnQkFBZ0I7S0FDMUIsK0JBQVc7S0FDWCwrQkFBVztLQUNYLHVDQUFtQjtLQUNuQixxQ0FBaUI7QUFDbkIsRUFBQyxFQUxXLGdCQUFnQixHQUFoQix3QkFBZ0IsS0FBaEIsd0JBQWdCLFFBSzNCO0FBRUQ7OztJQUdHO0FBQ0gsS0FBWSxtQkFJWDtBQUpELFlBQVksbUJBQW1CO0tBQzdCLGtDQUFXO0tBQ1gsb0NBQWE7S0FDYixzQ0FBZTtBQUNqQixFQUFDLEVBSlcsbUJBQW1CLEdBQW5CLDJCQUFtQixLQUFuQiwyQkFBbUIsUUFJOUI7QUFFRDs7O0lBR0c7QUFDSCxLQUFZLFVBSVg7QUFKRCxZQUFZLFVBQVU7S0FDcEIsd0NBQTBCO0tBQzFCLCtDQUFpQztLQUNqQyxzQ0FBd0I7QUFDMUIsRUFBQyxFQUpXLFVBQVUsR0FBVixrQkFBVSxLQUFWLGtCQUFVLFFBSXJCO0FBRUQ7O0lBRUc7QUFDSCxLQUFZLFVBU1g7QUFURCxZQUFZLFVBQVU7S0FDcEIsNkJBQWU7S0FDZixtQ0FBcUI7S0FDckIsK0JBQWlCO0tBQ2pCLDZCQUFlO0tBQ2YsMkJBQWE7S0FDYiw2QkFBZTtLQUNmLGlDQUFtQjtLQUNuQixpQ0FBbUI7QUFDckIsRUFBQyxFQVRXLFVBQVUsR0FBVixrQkFBVSxLQUFWLGtCQUFVLFFBU3JCO0FBRUQ7O0lBRUc7QUFDSCxLQUFZLFNBS1g7QUFMRCxZQUFZLFNBQVM7S0FDbkIsb0NBQXVCO0tBQ3ZCLDRCQUFlO0tBQ2Ysb0NBQXVCO0tBQ3ZCLDZCQUFnQjtBQUNsQixFQUFDLEVBTFcsU0FBUyxHQUFULGlCQUFTLEtBQVQsaUJBQVMsUUFLcEI7QUFDRDs7SUFFRztBQUNILEtBQVksZ0JBU1g7QUFURCxZQUFZLGdCQUFnQjtLQUMxQix3REFBd0Q7S0FDeEQsbUVBQStDO0tBRS9DLDZDQUE2QztLQUM3QywwREFBc0M7S0FFdEMsMkJBQTJCO0tBQzNCLG9EQUFnQztBQUNsQyxFQUFDLEVBVFcsZ0JBQWdCLEdBQWhCLHdCQUFnQixLQUFoQix3QkFBZ0IsUUFTM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNwUUQsbURBQXdEO0FBRXhEO0tBQTJDLHlDQUFpQjtLQU8xRCwrQkFBbUIsSUFBc0IsRUFBRSxTQUE0QjtTQUF2RSxZQUNFLGtCQUFNLElBQUksRUFBRSxTQUFTLENBQUMsU0FHdkI7U0FEQyxLQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQzs7S0FDOUIsQ0FBQztLQVJELHNCQUFXLDRDQUFTO2NBQXBCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDekIsQ0FBQzs7O1FBQUE7S0FPSCw0QkFBQztBQUFELEVBQUMsQ0FaMEMscUNBQWlCLEdBWTNEO0FBWlksdURBQXFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDRmxDLDhDQUE4QztBQUU5QztLQUF1QyxxQ0FBWTtLQU9qRCwyQkFBbUIsSUFBc0IsRUFBRSxLQUFvQjtTQUEvRCxZQUNFLGtCQUFNLElBQUksQ0FBQyxTQUdaO1NBREMsS0FBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7O0tBQ3RCLENBQUM7S0FSRCxzQkFBVyxvQ0FBSztjQUFoQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3JCLENBQUM7OztRQUFBO0tBT0gsd0JBQUM7QUFBRCxFQUFDLENBWnNDLDJCQUFZLEdBWWxEO0FBWlksK0NBQWlCOzs7Ozs7Ozs7QUNOOUI7S0FHRSxzQkFBbUIsSUFBc0I7U0FDdkMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7S0FDcEIsQ0FBQztLQUVELHNCQUFXLDhCQUFJO2NBQWY7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNwQixDQUFDOzs7UUFBQTtLQUNILG1CQUFDO0FBQUQsRUFBQztBQVZZLHFDQUFZOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDRnpCLHVEQUt3QztBQUV4Qyx1REFBZ0U7QUFFaEU7S0FBd0Msc0NBQXFCO0tBQzNELDRCQUFtQixTQUE0QjtnQkFDN0Msa0JBQU0sd0NBQWdCLENBQUMsb0JBQW9CLEVBQUUsU0FBUyxDQUFDO0tBQ3pELENBQUM7S0FFTSwwQ0FBYSxHQUFwQjtTQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLHFCQUFxQixFQUFFLENBQUM7S0FDaEQsQ0FBQztLQUNILHlCQUFDO0FBQUQsRUFBQyxDQVJ1Qyw2Q0FBcUIsR0FRNUQ7QUFSWSxpREFBa0I7Ozs7Ozs7OztBQ0wvQjs7OztJQUlHO0FBQ0g7S0FJRSxnQ0FBbUIsU0FBMkI7U0FDNUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7U0FDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7S0FDdEIsQ0FBQztLQUVELHNCQUFXLDZDQUFTO2NBQXBCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDekIsQ0FBQzs7O1FBQUE7S0FFTSxpREFBZ0IsR0FBdkIsVUFBd0IsT0FBdUM7U0FBL0QsaUJBR0M7U0FGQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUM3QixNQUFNLENBQUMsY0FBTSxZQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLEVBQWpDLENBQWlDLENBQUM7S0FDakQsQ0FBQztLQUVNLG9EQUFtQixHQUExQixVQUEyQixPQUF1QztTQUNoRSxJQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztTQUMxQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQUMsSUFBSSxRQUFDLEtBQUssT0FBTyxFQUFiLENBQWEsQ0FBQyxDQUFDO1NBQzNELE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7S0FDN0MsQ0FBQztLQUVNLDZDQUFZLEdBQW5CLFVBQW9CLGNBQWdDO1NBQ2xELEdBQUcsQ0FBQyxDQUFrQixVQUFjLEVBQWQsU0FBSSxDQUFDLFNBQVMsRUFBZCxjQUFjLEVBQWQsSUFBYzthQUEvQixJQUFNLE9BQU87YUFDaEIsSUFBSSxDQUFDO2lCQUNILElBQU0sVUFBVSxHQUFHLGNBQWMsRUFBRSxDQUFDO2lCQUNwQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDdEIsQ0FBQzthQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ1gsaUdBQWlHO2lCQUNqRyxRQUFRLENBQUM7YUFDWCxDQUFDO1VBQ0Y7S0FDSCxDQUFDO0tBQ0gsNkJBQUM7QUFBRCxFQUFDO0FBbkNZLHlEQUFzQjs7Ozs7Ozs7O0FDSG5DOztJQUVHO0FBQ0gsS0FBWSxXQUdYO0FBSEQsWUFBWSxXQUFXO0tBQ3JCLGtDQUFtQjtLQUNuQix3Q0FBeUI7QUFDM0IsRUFBQyxFQUhXLFdBQVcsR0FBWCxtQkFBVyxLQUFYLG1CQUFXLFFBR3RCOzs7Ozs7Ozs7QUNWRCxtREFBNkQ7QUFDN0Qsb0RBQStEO0FBQy9ELHlEQUF5RTtBQUN6RSx1REFBcUU7QUFDckUsc0RBQW1FO0FBQ25FLGlEQUF1RDtBQUV2RCxvQ0FBMEMsVUFBaUM7S0FDekUsb0NBQWtCLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLHVDQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7S0FDaEYsb0NBQWtCLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLHFDQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7S0FDL0Usb0NBQWtCLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLGlEQUF1QixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7S0FDckYsb0NBQWtCLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLDZDQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7S0FDbkYsb0NBQWtCLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLDJDQUFvQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7S0FDbEYsOEJBQThCO0FBQ2hDLEVBQUM7QUFQRCwrREFPQzs7Ozs7Ozs7O0FDaEJELHVEQUt3QztBQUN4Qyx1REFPd0M7QUFDeEMsMkNBQTJDO0FBRTNDLGdFQUFvSDtBQUtwSDtLQUdFLDJCQUFtQixVQUFpQztTQUNsRCxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztLQUNoQyxDQUFDO0tBRUQsc0JBQVcsMENBQVc7Y0FBdEI7YUFDRSxNQUFNLCtCQUFxQjtTQUM3QixDQUFDOzs7UUFBQTtLQUVNLDRDQUFnQixHQUF2QixVQUNFLFFBQWtCLEVBQ2xCLFNBQWlCLEVBQ2pCLE1BQXFCLEVBQ3JCLFVBQTRCLEVBQzVCLGFBQTRCO1NBQzFCLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUJBQUssQ0FBQyxnQkFBZ0IsQ0FBbUIsVUFBVSxFQUFFLHdDQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzVFLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztTQUNsRSxDQUFDO1NBQ0QsSUFBTSxJQUFJLEdBQUcsOEJBQU0sQ0FBQyxzQkFBc0IsQ0FBQztTQUMzQyxJQUFNLFVBQVUsR0FBc0IsRUFBRSxDQUFDO1NBQ3pDLFVBQVUsQ0FBQyxtQ0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLFFBQVEsQ0FBQztTQUM1QyxVQUFVLENBQUMsbUNBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFTLENBQUM7U0FDOUMsVUFBVSxDQUFDLG1DQUFXLENBQUMsWUFBWSxDQUFDLEdBQUcsTUFBTSxDQUFDO1NBQzlDLFVBQVUsQ0FBQyxtQ0FBVyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsVUFBVSxDQUFDO1NBQ3RELFVBQVUsQ0FBQyxtQ0FBVyxDQUFDLGFBQWEsQ0FBQzthQUNuQyxDQUFDLGFBQWEsS0FBSyxTQUFTLElBQUksYUFBYSxDQUFDLGFBQWEsS0FBSyxTQUFTLENBQUMsR0FBRyxLQUFLLEdBQUcsYUFBYSxDQUFDLGFBQWEsQ0FBQztTQUVuSCxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBUyxrQkFBUTthQUNyRSxJQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsTUFBc0IsQ0FBQzthQUM5QyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsS0FBSyxJQUFJLElBQUksS0FBSyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ2pFLHFEQUFxRDtpQkFDckQsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDL0QsQ0FBQzthQUNELE1BQU0sQ0FBQyxTQUFTLENBQUM7U0FDbkIsQ0FBQyxDQUFDLENBQUM7S0FDTCxDQUFDO0tBRUksaURBQXFCLEdBQTVCLFVBQTZCLFFBQWtCLEVBQUUsU0FBaUIsRUFBRSxhQUFpQztTQUNuRyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7YUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1NBQzNELENBQUM7U0FDRCxpQkFBSyxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBRWpFLElBQU0sSUFBSSxHQUFHLDhCQUFNLENBQUMsZ0JBQWdCLENBQUM7U0FDckMsSUFBTSxVQUFVLEdBQXNCLEVBQUUsQ0FBQztTQUV6QyxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUN0QixJQUFJLEdBQUcsU0FBaUIsQ0FBQzthQUN6QixFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUM7aUJBQ3RDLEdBQUcsR0FBRyxpQkFBSyxDQUFDLHdCQUF3QixDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUMxRCxDQUFDO2FBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ04sR0FBRyxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUM7YUFDMUIsQ0FBQzthQUNELFVBQVUsQ0FBQyxtQ0FBVyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUMvQyxDQUFDO1NBRUQsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDdEIsSUFBSSxHQUFHLFNBQWlCLENBQUM7YUFDekIsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsWUFBWSxJQUFJLENBQUMsQ0FBQyxDQUFDO2lCQUN0QyxHQUFHLEdBQUcsaUJBQUssQ0FBQyx3QkFBd0IsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDMUQsQ0FBQzthQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNOLEdBQUcsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDO2FBQzFCLENBQUM7YUFDRCxVQUFVLENBQUMsbUNBQVcsQ0FBQyxjQUFjLENBQUMsR0FBRyxHQUFHLENBQUM7U0FDL0MsQ0FBQztTQUVELEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2FBQzdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUJBQUssQ0FBQyxnQkFBZ0IsQ0FBYSxhQUFhLENBQUMsVUFBVSxFQUFFLGtDQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQzlFLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQzthQUM1RCxDQUFDO2FBQ0QsVUFBVSxDQUFDLG1DQUFXLENBQUMscUJBQXFCLENBQUMsR0FBRywrREFBYSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQzlHLENBQUM7U0FDRCxVQUFVLENBQUMsbUNBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFTLENBQUM7U0FDOUMsVUFBVSxDQUFDLG1DQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsUUFBUSxDQUFDO1NBRTVDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFTLGtCQUFRO2FBQ3JFLE1BQU0sQ0FBQyxTQUFTLENBQUM7U0FDbkIsQ0FBQyxDQUFDLENBQUM7S0FDTCxDQUFDO0tBRU0sNENBQWdCLEdBQXZCLFVBQXdCLFFBQWtCLEVBQUUsU0FBaUI7U0FDM0QsSUFBTSxJQUFJLEdBQUcsOEJBQU0sQ0FBQyxXQUFXLENBQUM7U0FDaEMsSUFBSSxVQUFVLEdBQXNCLEVBQUUsQ0FBQztTQUN2QyxVQUFVLENBQUMsbUNBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxRQUFRLENBQUM7U0FDNUMsVUFBVSxDQUFDLG1DQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsU0FBUyxDQUFDO1NBQzlDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFTLGtCQUFRO2FBQ3JFLE1BQU0sQ0FBQyxTQUFTLENBQUM7U0FDbkIsQ0FBQyxDQUFDLENBQUM7S0FDTCxDQUFDO0tBQ0gsd0JBQUM7QUFBRCxFQUFDO0FBM0ZZLCtDQUFpQjs7Ozs7Ozs7QXZCckI5Qjs7OztJQUlHOzs7OztBQUVILGtDQUFrQztBQUNsQyxrQ0FBa0Q7QUFFbEQsa0NBQTBDO0FBQzFDLGtDQUF1QztBQUN2QyxrQ0FBa0M7Ozs7Ozs7O0F3QlhsQzs7OztJQUlHOztBQUVILCtDQUFnRDtBQUF2QyxzREFBYTtBQUN0Qix1Q0FBZ0M7QUFBdkIsOEJBQUs7Ozs7Ozs7OztBQ1BkOzs7SUFHRztBQUNIO0tBQ0UsdUJBQ1UsU0FBbUQsRUFDbkQsV0FBOEI7U0FEOUIsY0FBUyxHQUFULFNBQVMsQ0FBMEM7U0FDbkQsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO0tBQUksQ0FBQztLQUV0QywrQkFBTyxHQUFkLFVBQWUsT0FBb0IsRUFBRSxjQUF3QjtTQUMzRCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDM0MsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBaUIsQ0FBQyxDQUFDO1NBQzNDLENBQUM7U0FFRCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxLQUFLLFNBQVMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7YUFDdEQsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7U0FDMUIsQ0FBQztTQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLEdBQUcsT0FBTyxDQUFDLENBQUM7S0FDdEQsQ0FBQztLQUNILG9CQUFDO0FBQUQsRUFBQztBQWhCWSx1Q0FBYTs7Ozs7Ozs7O0FDSjFCO0tBQUE7S0EwSUEsQ0FBQztLQXpJQzs7Ozs7OztRQU9HO0tBQ0gsNkJBQTZCO0tBQ2YsaUJBQVcsR0FBekIsVUFBMEIsYUFBa0IsRUFBRSxZQUFvQjtTQUNoRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7YUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsR0FBRyxZQUFZLENBQUMsQ0FBQztTQUNwRSxDQUFDO0tBQ0gsQ0FBQztLQUVEOzs7Ozs7UUFNRztLQUNXLGtCQUFZLEdBQTFCLFVBQTJCLGFBQXFCLEVBQUUsWUFBb0I7U0FDcEUsRUFBRSxDQUFDLENBQUMsYUFBYSxLQUFLLElBQUksSUFBSSxhQUFhLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQzthQUMxRCxNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxHQUFHLFlBQVksQ0FBQyxDQUFDO1NBQzNFLENBQUM7S0FDSCxDQUFDO0tBRUQ7Ozs7Ozs7UUFPRztLQUNILDJCQUEyQjtLQUNiLHNCQUFnQixHQUE5QixVQUF5QyxLQUFlLEVBQUUsUUFBYTtTQUNyRSxJQUFJLE9BQU8sR0FBWSxLQUFLLENBQUM7U0FDN0IsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQyxPQUFPO2FBQ3BDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO2lCQUMzQyxPQUFPLEdBQUcsSUFBSSxDQUFDO2FBQ2pCLENBQUM7U0FDSCxDQUFDLENBQUMsQ0FBQztTQUNILE1BQU0sQ0FBQyxPQUFPLENBQUM7S0FDakIsQ0FBQztLQUNELDBCQUEwQjtLQUUxQjs7O1FBR0c7S0FDVyw4QkFBd0IsR0FBdEMsVUFBdUMsSUFBVTtTQUMvQyxJQUFNLElBQUksR0FBVyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDM0MsSUFBTSxLQUFLLEdBQVcsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUM3QyxJQUFNLEdBQUcsR0FBVyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDdEMsSUFBTSxFQUFFLEdBQVcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3RDLElBQU0sRUFBRSxHQUFXLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN4QyxJQUFNLEdBQUcsR0FBVyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDekMsTUFBTSxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsS0FBSyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7S0FDMUUsQ0FBQztLQUVhLGlDQUEyQixHQUF6QyxVQUEwQyxJQUFhO1NBQ3JELE1BQU0sQ0FBQyxJQUFJLEdBQUcsTUFBTSxHQUFHLE9BQU8sQ0FBQztLQUNqQyxDQUFDO0tBRWEsZ0NBQTBCLEdBQXhDLFVBQXlDLEdBQVc7U0FDbEQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDMUIsQ0FBQztLQUVEOzs7O1FBSUc7S0FDSCwyQkFBMkI7S0FDYiwwQkFBb0IsR0FBbEMsVUFBbUMsR0FBUSxFQUFFLEdBQVE7U0FDckQsMEJBQTBCO1NBQ3hCLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUM7U0FDL0UsQ0FBQztTQUVELEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZELE1BQU0sSUFBSSxLQUFLLENBQUMsNEVBQTRFLENBQUMsQ0FBQztTQUNoRyxDQUFDO1NBRUQsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdkQsTUFBTSxJQUFJLEtBQUssQ0FBQyw0RUFBNEUsQ0FBQyxDQUFDO1NBQ2hHLENBQUM7U0FFRCxFQUFFLENBQUMsQ0FBQyxPQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssT0FBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLDJFQUEyRSxDQUFDLENBQUM7U0FDL0YsQ0FBQztLQUNILENBQUM7S0FFRDs7UUFFRztLQUNILDJCQUEyQjtLQUNiLGtCQUFZLEdBQTFCLFVBQTJCLEtBQVU7U0FDbkMsTUFBTSxDQUFDLE9BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxRQUFRLElBQUksS0FBSyxZQUFZLE1BQU0sQ0FBQztLQUMvRCxDQUFDO0tBQ0QsMEJBQTBCO0tBRTFCOztRQUVHO0tBQ0gsMkJBQTJCO0tBQ2IsZ0JBQVUsR0FBeEIsVUFBeUIsS0FBVTtTQUNqQyxNQUFNLENBQUMsS0FBSyxZQUFZLElBQUksQ0FBQztLQUMvQixDQUFDO0tBQ0QsMEJBQTBCO0tBRTFCLHFDQUFxQztLQUN2QixrQkFBWSxHQUExQixVQUEyQixLQUFVO1NBQ25DLE1BQU0sQ0FBQyxPQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssUUFBUSxJQUFJLEtBQUssWUFBWSxNQUFNLENBQUM7S0FDL0QsQ0FBQztLQUVELHFDQUFxQztLQUN2QixnQkFBVSxHQUF4QixVQUF5QixLQUFVO1NBQ2pDLE1BQU0sQ0FBQyxPQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssU0FBUyxJQUFJLEtBQUssWUFBWSxPQUFPLENBQUM7S0FDakUsQ0FBQztLQUVELHFDQUFxQztLQUN2Qiw0QkFBc0IsR0FBcEMsVUFBcUMsS0FBVTtTQUM3QyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUM5QixNQUFNLENBQUMsS0FBSyxDQUFDLDBCQUEwQixDQUFDLEtBQWUsQ0FBQyxDQUFDO1NBQzNELENBQUM7U0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDbkMsTUFBTSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxLQUFhLENBQUMsQ0FBQztTQUN2RCxDQUFDO1NBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ25DLE1BQU0sQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsS0FBZ0IsQ0FBQyxDQUFDO1NBQzdELENBQUM7U0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDckMsTUFBTSxDQUFDLEtBQUssQ0FBQztTQUNmLENBQUM7U0FBQyxJQUFJLENBQUMsQ0FBQzthQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztTQUMxRCxDQUFDO0tBQ0gsQ0FBQztLQUNILFlBQUM7QUFBRCxFQUFDO0FBMUlZLHVCQUFLOzs7Ozs7Ozs7QUNBbEIsdURBQWtGO0FBQ2xGLHVEQUFrRjtBQUVsRiwyQ0FBbUQ7QUFFbkQseUZBQXdGO0FBQ3hGOzs7SUFHRztBQUNIO0tBQUE7S0FNQSxDQUFDO0tBTGUsMENBQVcsR0FBRyxJQUFJLHlCQUFhO1NBQzNDLEdBQUMsa0NBQWtCLENBQUMsU0FBUyxJQUFHLGtDQUFrQixDQUFDLFNBQVM7U0FDNUQsR0FBQyxrQ0FBa0IsQ0FBQyxhQUFhLElBQUcsa0NBQWtCLENBQUMsYUFBYTtTQUNwRSxHQUFDLGtDQUFrQixDQUFDLGFBQWEsSUFBRyxrQ0FBa0IsQ0FBQyxVQUFVO2FBQ2pFLENBQUM7S0FDTCxxQ0FBQztFQUFBO0FBTlkseUVBQThCOztBQU8zQyw0QkFBMkI7Ozs7Ozs7OztBQ2pCM0IsdURBQXVFO0FBQ3ZFLHVEQVV3QztBQUV4QywrQ0FBMEU7QUFDMUUsZ0RBQWdFO0FBR2hFO0tBR0UsNEJBQW1CLFVBQWlDO1NBQ2xELElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO0tBQ2hDLENBQUM7S0FFRCxzQkFBVywyQ0FBVztjQUF0QjthQUNFLE1BQU0sa0NBQXNCO1NBQzlCLENBQUM7OztRQUFBO0tBRU0sbURBQXNCLEdBQTdCLFVBQ0UsUUFBa0IsRUFDbEIsT0FBb0IsRUFDcEIsYUFBc0IsRUFDdEIsZUFBd0IsRUFDeEIsaUJBQTBCLEVBQzFCLE9BQWU7U0FOakIsaUJBb0JHO1NBYkMsK0JBQStCO1NBQy9CLElBQU0sSUFBSSxHQUFHLE9BQU8sS0FBSyw0QkFBVyxDQUFDLE9BQU8sR0FBRyw4QkFBTSxDQUFDLGtCQUFrQixHQUFHLDhCQUFNLENBQUMsaUJBQWlCLENBQUM7U0FDcEcsSUFBTSxVQUFVLEdBQXNCLEVBQUUsQ0FBQztTQUN6QyxVQUFVLENBQUMsbUNBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxRQUFRLENBQUM7U0FDNUMsVUFBVSxDQUFDLG1DQUFXLENBQUMsYUFBYSxDQUFDLEdBQUcsYUFBYSxDQUFDO1NBQ3RELFVBQVUsQ0FBQyxtQ0FBVyxDQUFDLGVBQWUsQ0FBQyxHQUFHLGVBQWUsQ0FBQztTQUMxRCxVQUFVLENBQUMsbUNBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLGlCQUFpQixDQUFDO1NBQzlELFVBQVUsQ0FBQyxtQ0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLE9BQU8sQ0FBQztTQUUxQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBWSxrQkFBUTthQUN4RSxJQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsTUFBNkIsQ0FBQzthQUM1RCxNQUFNLENBQUMsS0FBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzdFLENBQUMsQ0FBQyxDQUFDO0tBQ0wsQ0FBQztLQUVJLGtEQUFxQixHQUE1QixVQUE2QixRQUFrQjtTQUEvQyxpQkFRQztTQVBDLElBQU0sVUFBVSxhQUF3QixHQUFDLG1DQUFXLENBQUMsUUFBUSxJQUFHLFFBQVEsS0FBRSxDQUFDO1NBQzNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyw4QkFBTSxDQUFDLGdCQUFnQixFQUFFLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBYyxrQkFBUTthQUM3RixJQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsTUFBNEIsQ0FBQzthQUMzRCxNQUFNLENBQUM7aUJBQ0wsSUFBSSxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQUssSUFBSSxZQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFyQyxDQUFxQyxDQUFDO2NBQzVFLENBQUM7U0FDSixDQUFDLENBQUMsQ0FBQzs7S0FDTCxDQUFDO0tBRU0scURBQXdCLEdBQS9CLFVBQWdDLFFBQWtCO1NBQWxELGlCQVFDO1NBUEMsSUFBTSxVQUFVLGFBQXdCLEdBQUMsbUNBQVcsQ0FBQyxRQUFRLElBQUcsUUFBUSxLQUFFLENBQUM7U0FDM0UsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLDhCQUFNLENBQUMsbUJBQW1CLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFjLGtCQUFRO2FBQ2hHLElBQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxNQUErQixDQUFDO2FBQzlELE1BQU0sQ0FBQztpQkFDTCxJQUFJLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBSyxJQUFJLFlBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQXJDLENBQXFDLENBQUM7Y0FDNUUsQ0FBQztTQUNKLENBQUMsQ0FBQyxDQUFDOztLQUNMLENBQUM7S0FFUyxnREFBbUIsR0FBN0IsVUFBOEIsWUFBdUMsRUFBRSxTQUFrQjtTQUN2RixJQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFDLElBQUksV0FBSSxzQkFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsZ0NBQVEsQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFuRixDQUFtRixDQUFDLENBQUM7U0FDbkksSUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsYUFBRzthQUMxQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxjQUFJO2lCQUNqQixNQUFNLENBQUMsSUFBSSx5QkFBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQ3hELENBQUMsQ0FBQyxDQUFDO1NBQ0wsQ0FBQyxDQUFDLENBQUM7U0FFSCxNQUFNLENBQUMsSUFBSSx5QkFBUyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztLQUNoRSxDQUFDO0tBQ0gseUJBQUM7QUFBRCxFQUFDO0FBL0RZLGlEQUFrQjs7Ozs7Ozs7O0FDWi9CO0tBQ0Usc0JBQ1UsU0FBZ0QsRUFDaEQsV0FBK0M7U0FEL0MsY0FBUyxHQUFULFNBQVMsQ0FBdUM7U0FDaEQsZ0JBQVcsR0FBWCxXQUFXLENBQW9DO1NBQ3JELGVBQWU7S0FDbkIsQ0FBQztLQUVNLHFDQUFjLEdBQXJCLFVBQXNCLGlCQUF3QjtTQUM1QyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3RDLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUN0QyxDQUFDO0tBQ0gsQ0FBQztLQUNILG1CQUFDO0FBQUQsRUFBQztBQUVEO0tBR0UsaUNBQTJCLFVBQWlDO1NBQWpDLGVBQVUsR0FBVixVQUFVLENBQXVCO1NBQzFELElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1NBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztLQUM5RSxDQUFDO0tBRUQsc0JBQVcsZ0RBQVc7Y0FBdEI7YUFDRSxNQUFNLDJDQUEyQjtTQUNuQyxDQUFDOzs7UUFBQTtLQUVNLGlEQUFlLEdBQXRCLFVBQXVCLEVBQWtCLEVBQUUsUUFBbUMsRUFBRSxPQUErQjtTQUEvRyxpQkFNQztTQUxDLElBQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxLQUFLLEVBQWdCLENBQUM7U0FDakUsSUFBTSxZQUFZLEdBQUcsSUFBSSxZQUFZLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ3pELFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDNUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUM7U0FDOUIsTUFBTSxDQUFDLGNBQU0sWUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxZQUFZLENBQUMsRUFBekMsQ0FBeUMsQ0FBQztLQUN6RCxDQUFDO0tBRU8sZ0VBQThCLEdBQXRDLFVBQXVDLEVBQWtCO1NBQ3ZELE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUMzQyxDQUFDO0tBRU8sZ0RBQWMsR0FBdEIsVUFBdUIsWUFBMEI7U0FDL0MsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsOEJBQThCLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN0RSxNQUFNLENBQUM7U0FDVCxDQUFDO1NBRUQsNEVBQTRFO1NBQzVFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFDLElBQUksUUFBQyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQW5DLENBQW1DLENBQUMsQ0FBQztLQUNoRyxDQUFDO0tBRU8sb0RBQWtCLEdBQTFCLFVBQTJCLEVBQWtCLEVBQUUsWUFBMEI7U0FDdkUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsOEJBQThCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzdDLE1BQU0sQ0FBQztTQUNULENBQUM7U0FFRCxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQUcsSUFBSSxVQUFHLEtBQUssWUFBWSxFQUFwQixDQUFvQixDQUFDLENBQUM7S0FDOUUsQ0FBQztLQUNILDhCQUFDO0FBQUQsRUFBQztBQXhDWSwyREFBdUI7Ozs7Ozs7OztBQ2xCcEMsdURBUXdDO0FBRXhDLCtDQUE2RDtBQUM3RCwyQ0FBNEM7QUFJNUM7S0FDRSwrQkFBMkIsVUFBaUM7U0FBakMsZUFBVSxHQUFWLFVBQVUsQ0FBdUI7S0FDNUQsQ0FBQztLQUVELHNCQUFXLDhDQUFXO2NBQXRCO2FBQ0UsTUFBTSx1Q0FBeUI7U0FDakMsQ0FBQzs7O1FBQUE7S0FFTSwwREFBMEIsR0FBakMsVUFBa0MsU0FBb0IsRUFBRSxLQUFvQjtTQUMxRSxJQUFNLFVBQVU7YUFDZCxHQUFDLG1DQUFXLENBQUMsU0FBUyxJQUFHLFNBQVM7Z0JBQ25DLENBQUM7U0FFRixNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsOEJBQU0sQ0FBQyxxQkFBcUIsRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQVE7YUFDcEYseUJBQXlCO2FBRXpCLElBQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUE4QixDQUFDO2FBQ3ZELE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLHVCQUFhO2lCQUM3QixJQUFNLElBQUksR0FBRyxJQUFJLDZCQUFhLENBQUMsYUFBYSxDQUFDLENBQUM7aUJBQzlDLE1BQU0sQ0FBQyxJQUFJLHFCQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ3BDLENBQUMsQ0FBQyxDQUFDO1NBQ0wsQ0FBQyxDQUFDLENBQUM7O0tBQ0wsQ0FBQztLQUVNLHlEQUF5QixHQUFoQyxVQUFpQyxTQUFpQixFQUFFLFFBQWdCO1NBQ2xFLElBQU0sVUFBVTthQUNkLEdBQUMsbUNBQVcsQ0FBQyxrQkFBa0IsSUFBRyxTQUFTO2FBQzNDLEdBQUMsbUNBQVcsQ0FBQyxjQUFjLElBQUcsUUFBUTtnQkFDdkMsQ0FBQztTQUVGLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyw4QkFBTSxDQUFDLG9CQUFvQixFQUFFLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBUTthQUNuRixJQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBdUIsQ0FBQzthQUNoRCxNQUFNLENBQUMsTUFBTSxDQUFDO1NBQ2hCLENBQUMsQ0FBQyxDQUFDOztLQUNMLENBQUM7S0FFTSx3REFBd0IsR0FBL0IsVUFBZ0MsSUFBWSxFQUFFLEtBQW9CO1NBQ2hFLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztLQUN6RCxDQUFDO0tBRU0sbUVBQW1DLEdBQTFDLFVBQTJDLFNBQWlCLEVBQUUsS0FBb0I7U0FDaEYsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0tBQzlELENBQUM7S0FFTyxrREFBa0IsR0FBMUIsVUFDRSxLQUFvQixFQUNwQixJQUF3QixFQUN4QixTQUE2QjtTQUM3QixJQUFNLFVBQVUsR0FBc0IsRUFBRSxDQUFDO1NBQ3pDLEVBQUUsQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDO2FBQ3ZCLFVBQVUsQ0FBQyxtQ0FBVyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQ2xELENBQUM7U0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7YUFDbkMsVUFBVSxDQUFDLG1DQUFXLENBQUMsa0JBQWtCLENBQUMsR0FBRyxTQUFTLENBQUM7U0FDekQsQ0FBQztTQUFDLElBQUksQ0FBQyxDQUFDO2FBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1NBQzNELENBQUM7U0FFRCxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsOEJBQU0sQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFRO2FBQzVFLElBQU0sdUJBQXVCLEdBQUcsVUFBQyxNQUFhO2lCQUM1QyxNQUFNLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQzthQUMvQixDQUFDLENBQUM7YUFFRixnRUFBZ0U7YUFDaEUsRUFBRSxDQUFDLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDN0MsSUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQXVCLENBQUM7aUJBQ2hELElBQU0sSUFBSSxHQUFHLElBQUksNkJBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDdkMsTUFBTSxDQUFDLElBQUkscUJBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDcEMsQ0FBQzthQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNOLE1BQU0sQ0FBQyxTQUFTLENBQUM7YUFDbkIsQ0FBQztTQUNILENBQUMsQ0FBQyxDQUFDO0tBQ0wsQ0FBQztLQUNILDRCQUFDO0FBQUQsRUFBQztBQXhFWSx1REFBcUI7Ozs7Ozs7OztBQ2hCbEMsdURBT3dDO0FBQ3hDLHVEQUErRTtBQUMvRSwyQ0FBMkM7QUFFM0MsZ0VBQWdHO0FBQ2hHLHVEQUF3RTtBQUN4RSwrQ0FBb0Q7QUFHcEQsaURBQStFO0FBRS9FLHdEQUFrRTtBQUVsRTtLQUtFLHVCQUFtQixhQUE0QjtTQUM3QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7S0FDdkMsQ0FBQztLQUVELHNCQUFXLCtCQUFJO2NBQWY7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7U0FDbEMsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyx1Q0FBWTtjQUF2QjthQUNFLE1BQU0sQ0FBQyxJQUFJLHlCQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ2hILENBQUM7OztRQUFBO0tBRUQsc0JBQVcsbUNBQVE7Y0FBbkI7YUFDRSxNQUFNLENBQUMsK0RBQThCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3ZGLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsMENBQWU7Y0FBMUI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1NBQy9CLENBQUM7OztRQUFBO0tBRU0sd0NBQWdCLEdBQXZCLFVBQXdCLFFBQTBDO1NBQWxFLGlCQU9DO1NBTkMsSUFBSSxZQUFZLEdBQUcsaUJBQUssQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMxRCxJQUFNLGlCQUFpQixHQUFHLG9DQUFrQixDQUFDLFFBQVEsQ0FBQyxVQUFVLHVDQUE0QyxDQUFDO1NBQzdHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLHVCQUFhO2FBQ3hHLEtBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNyQyxNQUFNLENBQUMsS0FBSSxDQUFDLFlBQVksQ0FBQztTQUMzQixDQUFDLENBQUMsQ0FBQztLQUNMLENBQUM7S0FFRDs7Ozs7OztRQU9HO0tBQ0ksd0NBQWdCLEdBQXZCLFVBQXdCLEtBQVk7U0FBcEMsaUJBdUJDO1NBdEJDLElBQU0sT0FBTyxHQUFHLElBQUksS0FBSyxFQUFzQixDQUFDO1NBQ2hELElBQUksbUJBQXdDLENBQUM7U0FFN0MsSUFBSSxDQUFDO2FBQ0gsbUJBQW1CLEdBQUcsb0NBQWtCLENBQUMsUUFBUSxDQUFDLFVBQVUsMkNBQWdELENBQUM7U0FDL0csQ0FBQztTQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDWCx3REFBd0Q7YUFDeEQsTUFBTSxDQUFDLE9BQU8sQ0FBQztTQUNqQixDQUFDO1NBRUQsNEVBQTRFO1NBQzVFLElBQU0sY0FBYyxHQUFHLElBQUksK0NBQXNCLENBQXdCLHdDQUFnQixDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDNUcsbUJBQW1CLENBQUMsZUFBZSxDQUFDLHNDQUFjLENBQUMsZ0JBQWdCLEVBQUUsVUFBQyxLQUFLO2FBQ3pFLElBQU0sU0FBUyxHQUFHLEtBQWUsQ0FBQzthQUNsQyxNQUFNLENBQUMsU0FBUyxLQUFLLEtBQUksQ0FBQyxnQkFBZ0IsQ0FBQztTQUM3QyxDQUFDLEVBQUUsVUFBQyxTQUFpQjthQUNuQixjQUFjLENBQUMsWUFBWSxDQUFDLGNBQU0sV0FBSSw2Q0FBcUIsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQTNDLENBQTJDLENBQUMsQ0FBQztTQUNqRixDQUFDLENBQUMsQ0FBQztTQUVILE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7U0FFN0IsTUFBTSxDQUFDLE9BQU8sQ0FBQztLQUNqQixDQUFDO0tBRU8sd0NBQWdCLEdBQXhCLFVBQXlCLGFBQTRCO1NBQ25ELElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1NBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDO1NBRWhELElBQU0sSUFBSSxHQUFHLCtEQUE4QixDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDdkcsSUFBSSxVQUF3QyxDQUFDO1NBQzdDLElBQUksUUFBK0IsQ0FBQztTQUNwQyxJQUFJLFFBQStCLENBQUM7U0FDcEMsSUFBSSxRQUE0QixDQUFDO1NBQ2pDLElBQUksY0FBc0MsQ0FBQztTQUUzQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssMkNBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzthQUN0QyxJQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQzthQUNuRCxVQUFVLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxhQUFHLElBQUksV0FBSSx5QkFBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUE1QyxDQUE0QyxDQUFDLENBQUM7U0FDL0UsQ0FBQztTQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssMkNBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUM5QyxRQUFRLEdBQUcsYUFBYSxDQUFDLFFBQVEsSUFBSSxJQUFJLHlCQUFTLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUN4SCxRQUFRLEdBQUcsYUFBYSxDQUFDLFFBQVEsSUFBSSxJQUFJLHlCQUFTLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUN4SCxRQUFRLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQzthQUNsQyxjQUFjLEdBQUcsYUFBYSxDQUFDLGNBQWM7aUJBQzVCLCtEQUE4QixDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ3ZHLENBQUM7U0FFRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUc7YUFDdEIsSUFBSSxFQUFFLElBQUk7YUFDVixlQUFlLEVBQUUsVUFBVTthQUMzQixRQUFRLEVBQUUsUUFBUTthQUNsQixRQUFRLEVBQUUsUUFBUTthQUNsQixRQUFRLEVBQUUsUUFBUTthQUNsQixjQUFjLEVBQUUsY0FBYztVQUMvQixDQUFDO0tBQ0osQ0FBQztLQUNILG9CQUFDO0FBQUQsRUFBQztBQWxHWSx1Q0FBYTs7Ozs7Ozs7O0FDcEIxQix1REFTd0M7QUFDeEMsdURBU3dDO0FBQ3hDLDJDQUFtRDtBQUVuRCx5RkFBd0Y7QUFDeEY7OztJQUdHO0FBQ0g7S0FBQTtLQWdFQSxDQUFDO0tBL0RlLDJDQUFZLEdBQUcsSUFBSSx5QkFBYTtTQUM1QyxHQUFDLG9DQUFvQixDQUFDLE9BQU8sSUFBRyxvQ0FBb0IsQ0FBQyxPQUFPO1NBQzVELEdBQUMsb0NBQW9CLENBQUMsTUFBTSxJQUFHLG9DQUFvQixDQUFDLE1BQU07U0FDMUQsR0FBQyxvQ0FBb0IsQ0FBQyxPQUFPLElBQUcsb0NBQW9CLENBQUMsT0FBTzthQUM1RCxDQUFDO0tBRVcsd0NBQVMsR0FBRyxJQUFJLHlCQUFhO1NBQ3pDLEdBQUMsaUNBQWlCLENBQUMsU0FBUyxJQUFHLGlDQUFpQixDQUFDLFNBQVM7U0FDMUQsR0FBQyxpQ0FBaUIsQ0FBQyxPQUFPLElBQUcsaUNBQWlCLENBQUMsT0FBTztTQUN0RCxHQUFDLGlDQUFpQixDQUFDLE9BQU8sSUFBRyxpQ0FBaUIsQ0FBQyxPQUFPO2FBQ3RELENBQUM7S0FFVyx3Q0FBUyxHQUFHLElBQUkseUJBQWE7U0FDekMsR0FBQyxpQ0FBaUIsQ0FBQyxTQUFTLElBQUcsaUNBQWlCLENBQUMsU0FBUztTQUMxRCxHQUFDLGlDQUFpQixDQUFDLEtBQUssSUFBRyxpQ0FBaUIsQ0FBQyxLQUFLO1NBQ2xELEdBQUMsaUNBQWlCLENBQUMsU0FBUyxJQUFHLGlDQUFpQixDQUFDLFNBQVM7YUFDMUQsQ0FBQztLQUVXLGtEQUFtQixHQUFHLElBQUkseUJBQWE7U0FDbkQsR0FBQywyQ0FBMkIsQ0FBQyxLQUFLLElBQUcsMkNBQTJCLENBQUMsS0FBSztTQUN0RSxHQUFDLDJDQUEyQixDQUFDLEtBQUssSUFBRywyQ0FBMkIsQ0FBQyxLQUFLO1NBQ3RFLEdBQUMsMkNBQTJCLENBQUMsTUFBTSxJQUFHLDJDQUEyQixDQUFDLE1BQU07U0FDeEUsR0FBQywyQ0FBMkIsQ0FBQyxVQUFVLElBQUcsMkNBQTJCLENBQUMsVUFBVTtTQUNoRixHQUFDLDJDQUEyQixDQUFDLGdCQUFnQixJQUFHLDJDQUEyQixDQUFDLGdCQUFnQjtTQUM1RixHQUFDLDJDQUEyQixDQUFDLFdBQVcsSUFBRywyQ0FBMkIsQ0FBQyxXQUFXO1NBQ2xGLEdBQUMsMkNBQTJCLENBQUMsSUFBSSxJQUFHLDJDQUEyQixDQUFDLElBQUk7U0FDcEUsR0FBQywyQ0FBMkIsQ0FBQyxLQUFLLElBQUcsMkNBQTJCLENBQUMsS0FBSztTQUN0RSxHQUFDLDJDQUEyQixDQUFDLE9BQU8sSUFBRywyQ0FBMkIsQ0FBQyxPQUFPO1NBQzFFLEdBQUMsMkNBQTJCLENBQUMsU0FBUyxJQUFHLDJDQUEyQixDQUFDLFNBQVM7YUFDOUUsQ0FBQztLQUVXLHVDQUFRLEdBQUcsSUFBSSx5QkFBYTtTQUN4QyxHQUFDLGdDQUFnQixDQUFDLElBQUksSUFBRyxnQ0FBZ0IsQ0FBQyxJQUFJO1NBQzlDLEdBQUMsZ0NBQWdCLENBQUMsSUFBSSxJQUFHLGdDQUFnQixDQUFDLElBQUk7U0FDOUMsR0FBQyxnQ0FBZ0IsQ0FBQyxRQUFRLElBQUcsZ0NBQWdCLENBQUMsUUFBUTtTQUN0RCxHQUFDLGdDQUFnQixDQUFDLEtBQUssSUFBRyxnQ0FBZ0IsQ0FBQyxLQUFLO1NBQ2hELEdBQUMsZ0NBQWdCLENBQUMsR0FBRyxJQUFHLGdDQUFnQixDQUFDLEdBQUc7U0FDNUMsR0FBQyxnQ0FBZ0IsQ0FBQyxNQUFNLElBQUcsZ0NBQWdCLENBQUMsTUFBTTthQUNsRCxDQUFDO0tBRVcsK0NBQWdCLEdBQUcsSUFBSSx5QkFBYTtTQUNoRCxHQUFDLHdDQUF3QixDQUFDLEdBQUcsSUFBRyx3Q0FBd0IsQ0FBQyxHQUFHO1NBQzVELEdBQUMsd0NBQXdCLENBQUMsR0FBRyxJQUFHLHdDQUF3QixDQUFDLEdBQUc7U0FDNUQsR0FBQyx3Q0FBd0IsQ0FBQyxNQUFNLElBQUcsd0NBQXdCLENBQUMsTUFBTTtTQUNsRSxHQUFDLHdDQUF3QixDQUFDLE9BQU8sSUFBRyx3Q0FBd0IsQ0FBQyxPQUFPO2FBQ3BFLENBQUM7S0FFVyw4Q0FBZSxHQUFHLElBQUkseUJBQWE7U0FDL0MsR0FBQyw2Q0FBNkIsQ0FBQyxHQUFHLElBQUcsMkNBQTJCLENBQUMsR0FBRztTQUNwRSxHQUFDLDZDQUE2QixDQUFDLElBQUksSUFBRywyQ0FBMkIsQ0FBQyxJQUFJO1NBQ3RFLEdBQUMsNkNBQTZCLENBQUMsS0FBSyxJQUFHLDJDQUEyQixDQUFDLEtBQUs7YUFDeEUsQ0FBQztLQUVXLDZDQUFjLEdBQUcsSUFBSSx5QkFBYTtTQUM5QyxHQUFDLHNDQUFzQixDQUFDLEtBQUssSUFBRyxrQ0FBa0IsQ0FBQyxLQUFLO1NBQ3hELEdBQUMsc0NBQXNCLENBQUMsUUFBUSxJQUFHLGtDQUFrQixDQUFDLFFBQVE7U0FDOUQsR0FBQyxzQ0FBc0IsQ0FBQyxNQUFNLElBQUcsa0NBQWtCLENBQUMsTUFBTTtTQUMxRCxHQUFDLHNDQUFzQixDQUFDLEtBQUssSUFBRyxrQ0FBa0IsQ0FBQyxLQUFLO1NBQ3hELEdBQUMsc0NBQXNCLENBQUMsSUFBSSxJQUFHLGtDQUFrQixDQUFDLElBQUk7U0FDdEQsR0FBQyxzQ0FBc0IsQ0FBQyxLQUFLLElBQUcsa0NBQWtCLENBQUMsS0FBSztTQUN4RCxHQUFDLHNDQUFzQixDQUFDLE9BQU8sSUFBRyxrQ0FBa0IsQ0FBQyxPQUFPO1NBQzVELEdBQUMsc0NBQXNCLENBQUMsT0FBTyxJQUFHLGtDQUFrQixDQUFDLE9BQU87YUFDNUQsQ0FBQztLQUNMLHFDQUFDO0VBQUE7QUFoRVkseUVBQThCOztBQWlFM0MsNEJBQTJCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDNUYzQix1REFLd0M7QUFHeEMsaURBQStFO0FBQy9FLG1EQUF3RDtBQUV4RDtLQUEyQyx5Q0FBaUI7S0FDMUQsK0JBQTJCLGdCQUF3QixFQUFFLEtBQW9CO1NBQXpFLFlBQ0Usa0JBQU0sd0NBQWdCLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLFNBQ2hEO1NBRjBCLHNCQUFnQixHQUFoQixnQkFBZ0IsQ0FBUTs7S0FFbkQsQ0FBQztLQUVNLGlEQUFpQixHQUF4QjtTQUNFLHdFQUF3RTtTQUN4RSxJQUFNLE9BQU8sR0FBRyxvQ0FBa0IsQ0FBQyxRQUFRLENBQUMsVUFBVSx1Q0FBNEMsQ0FBQztTQUNuRyxNQUFNLENBQUMsT0FBTyxDQUFDLG1DQUFtQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFTO2FBQ2xHLEVBQUUsQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDO2lCQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7YUFDOUMsQ0FBQzthQUVELE1BQU0sQ0FBQyxTQUFTLENBQUM7U0FDbkIsQ0FBQyxDQUFDLENBQUM7S0FDTCxDQUFDO0tBQ0gsNEJBQUM7QUFBRCxFQUFDLENBaEIwQyxxQ0FBaUIsR0FnQjNEO0FBaEJZLHVEQUFxQjs7Ozs7Ozs7O0FDcUNsQztLQUdFO1NBQ0UsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7S0FDdEIsQ0FBQztLQUVNLDZDQUFlLEdBQXRCLFVBQXVCLE9BQW1CO1NBQ3hDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLE9BQU8sQ0FBQztLQUNoRCxDQUFDO0tBRU0sd0NBQVUsR0FBakIsVUFBd0MsV0FBbUI7U0FDekQsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBYyxXQUFXLG1CQUFnQixDQUFDLENBQUM7U0FDN0QsQ0FBQztTQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBTSxDQUFDO0tBQzFDLENBQUM7S0FDSCwwQkFBQztBQUFELEVBQUM7QUFFRDs7O0lBR0c7QUFDSDtLQXlCRSw0Q0FBNEM7S0FDNUM7S0FBdUIsQ0FBQztLQXRCeEIsc0JBQWtCLDhCQUFRO1NBSDFCOztZQUVHO2NBQ0g7YUFDRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUM7aUJBQ3hDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxJQUFJLG1CQUFtQixFQUFFLENBQUMsQ0FBQzthQUM1RCxDQUFDO2FBRUQsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxDQUFDO2lCQUN4QyxNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7YUFDdkQsQ0FBQzthQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsMkJBQTJCLENBQUM7U0FDNUMsQ0FBQzs7O1FBQUE7S0FFRDs7OztRQUlHO0tBQ1csOEJBQVcsR0FBekIsVUFBMEIsZUFBaUM7U0FDekQsTUFBTSxDQUFDLDJCQUEyQixHQUFHLGVBQWUsQ0FBQztLQUN2RCxDQUFDO0tBSUgseUJBQUM7QUFBRCxFQUFDO0FBM0JZLGlEQUFrQjs7Ozs7Ozs7O0FDeEUvQix1REFNd0M7QUFLeEM7S0FHRSw4QkFBbUIsVUFBaUM7U0FDbEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7S0FDaEMsQ0FBQztLQUVELHNCQUFXLDZDQUFXO2NBQXRCO2FBQ0UsTUFBTSxxQ0FBd0I7U0FDaEMsQ0FBQzs7O1FBQUE7S0FFRDs7O1FBR0c7S0FDSSxzREFBdUIsR0FBOUIsVUFBK0IsUUFBa0I7U0FDL0MsSUFBTSxVQUFVLGFBQXVCLEdBQUMsbUNBQVcsQ0FBQyxRQUFRLElBQUcsUUFBUSxLQUFDLENBQUM7U0FDekUsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLDhCQUFNLENBQUMsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFPLGtCQUFRO2FBQ3hGLE1BQU0sQ0FBRSxDQUFDLHdEQUF3RDtTQUNuRSxDQUFDLENBQUMsQ0FBQzs7S0FDTCxDQUFDO0tBQ0gsMkJBQUM7QUFBRCxFQUFDO0FBckJZLHFEQUFvQjs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ1JqQyx1Q0FBZ0M7QUFFaEM7S0FBK0IsNkJBQUs7S0FDbEMsbUJBQTJCLGFBQTRCO1NBQXZELFlBQ0Usa0JBQU0sYUFBYSxDQUFDLFNBRXJCO1NBSDBCLG1CQUFhLEdBQWIsYUFBYSxDQUFlO1NBRXJELGFBQWEsQ0FBQyw4QkFBOEIsQ0FBQyxLQUFJLENBQUMsQ0FBQzs7S0FDckQsQ0FBQztLQUVELHNCQUFXLGlDQUFVO2NBQXJCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDO1NBQ3ZDLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsOEJBQU87Y0FBbEI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7U0FDcEMsQ0FBQzs7O1FBQUE7S0FDSCxnQkFBQztBQUFELEVBQUMsQ0FiOEIsYUFBSyxHQWFuQztBQWJZLCtCQUFTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDSHRCLDJDQUEyRDtBQUkzRDtLQUEyQix5QkFBb0I7S0FDN0MsZUFBMkIsU0FBb0I7U0FBL0MsWUFDRSxpQkFBTyxTQUNSO1NBRjBCLGVBQVMsR0FBVCxTQUFTLENBQVc7O0tBRS9DLENBQUM7S0FFRCxzQkFBVyx1QkFBSTtjQUFmO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1NBQzdCLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsNEJBQVM7Y0FBcEI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7U0FDbEMsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyx1QkFBSTtjQUFmO2FBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1NBQ2xELENBQUM7OztRQUFBO0tBRU0sa0NBQWtCLEdBQXpCLFVBQTBCLGFBQXFCO1NBQzdDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztLQUNoRSxDQUFDO0tBRU0sa0NBQWtCLEdBQXpCO1NBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDakQsQ0FBQztLQUNILFlBQUM7QUFBRCxFQUFDLENBeEIwQixpQ0FBb0IsR0F3QjlDO0FBeEJZLHVCQUFLOzs7Ozs7Ozs7QUNKbEI7Ozs7SUFJRztBQUNIO0tBQ0UsMEJBQTJCLFVBQThCO1NBQTlCLGVBQVUsR0FBVixVQUFVLENBQW9CO0tBQUksQ0FBQztLQUU5RCxzQkFBVyx1Q0FBUztjQUFwQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQ3pCLENBQUM7OztRQUFBO0tBQ0gsdUJBQUM7QUFBRCxFQUFDO0FBTlksNkNBQWdCOzs7Ozs7Ozs7QUNKN0IsMkNBQXFGO0FBRXJGOzs7O0lBSUc7QUFDSDtLQVNFLHFCQUFtQixnQkFBa0M7U0FDbkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUM7U0FDL0MsSUFBSSxDQUFDLFFBQVEsR0FBRywyQ0FBWSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDakYsSUFBSSxDQUFDLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUM7U0FDaEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUM7U0FDNUMsSUFBSSxDQUFDLEtBQUssR0FBRywyQ0FBWSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDeEUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDLGVBQWUsQ0FBQztTQUN6RCxJQUFJLENBQUMsZUFBZSxHQUFHLGdCQUFnQixDQUFDLGNBQWMsQ0FBQztLQUN6RCxDQUFDO0tBRUQsc0JBQVcsbUNBQVU7Y0FBckI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUMxQixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLGdDQUFPO2NBQWxCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDdkIsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyxpQ0FBUTtjQUFuQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQ3hCLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsK0JBQU07Y0FBakI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztTQUN0QixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLDZCQUFJO2NBQWY7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNwQixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLHdDQUFlO2NBQTFCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztTQUMvQixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLHVDQUFjO2NBQXpCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7U0FDOUIsQ0FBQzs7O1FBQUE7S0FDSCxrQkFBQztBQUFELEVBQUM7QUE5Q1ksbUNBQVc7Ozs7Ozs7OztBQ0x4Qjs7SUFFRztBQUNIO0tBQ0Usa0JBQTJCLFlBQTBCO1NBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO0tBQUksQ0FBQztLQUVuRCx3QkFBSyxHQUFaLFVBQWEsR0FBVztTQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUMvQixDQUFDO0tBRU0sc0JBQUcsR0FBVixVQUFXLEdBQVc7U0FDcEIsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ3BDLENBQUM7S0FFTSx5QkFBTSxHQUFiO1NBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7S0FDcEMsQ0FBQztLQUVELHNCQUFXLGdDQUFVO2NBQXJCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDO1NBQ3RDLENBQUM7OztRQUFBO0tBRU0sNEJBQVMsR0FBaEI7U0FDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQztLQUN2QyxDQUFDO0tBRU0sc0JBQUcsR0FBVixVQUFXLEdBQVcsRUFBRSxLQUFhO1NBQ25DLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztLQUNwQyxDQUFDO0tBQ0gsZUFBQztBQUFELEVBQUM7QUExQlksNkJBQVE7Ozs7Ozs7OztBQ1ByQiwyQ0FBeUQ7QUFFekQsMkRBQTZFO0FBQzdFLHFEQUFrRTtBQUVsRSxtQ0FBeUMsVUFBaUM7S0FDeEUsK0JBQWtCLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLHFEQUF5QixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7S0FDdkYsK0JBQWtCLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLHlDQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDbkYsRUFBQztBQUhELDZEQUdDOzs7Ozs7Ozs7QUNURCxzREFBbUc7QUFLbkc7S0FDRSxtQ0FBMkIsVUFBaUM7U0FBakMsZUFBVSxHQUFWLFVBQVUsQ0FBdUI7S0FBSSxDQUFDO0tBRWpFLHNCQUFXLGtEQUFXO2NBQXRCO2FBQ0UsTUFBTSxxREFBeUM7U0FDakQsQ0FBQzs7O1FBQUE7S0FFTSxpRUFBNkIsR0FBcEM7U0FDRSxnR0FBZ0c7U0FDaEcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLDhCQUFNLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBcUIsa0JBQVE7YUFDMUYsK0JBQStCO2FBRS9CLElBQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUE0QixDQUFDO2FBQ3JELE1BQU0sQ0FBQyxNQUFNLENBQUM7U0FDaEIsQ0FBQyxDQUFDLENBQUM7S0FDTCxDQUFDO0tBQ0gsZ0NBQUM7QUFBRCxFQUFDO0FBaEJZLCtEQUF5Qjs7Ozs7Ozs7O0FDTHRDLHNEQU13QztBQUt4QztLQUNFLDZCQUEyQixVQUFpQztTQUFqQyxlQUFVLEdBQVYsVUFBVSxDQUF1QjtLQUFJLENBQUM7S0FFakUsc0JBQVcsNENBQVc7Y0FBdEI7YUFDRSxNQUFNLHlDQUFtQztTQUMzQyxDQUFDOzs7UUFBQTtLQUVNLCtDQUFpQixHQUF4QixVQUF5QixRQUE0QjtTQUNuRCxJQUFNLFVBQVUsR0FBc0IsRUFBRSxDQUFDO1NBQ3pDLFVBQVUsQ0FBQyxtQ0FBVyxDQUFDLGNBQWMsQ0FBQyxHQUFHLFFBQVEsQ0FBQztTQUVsRCxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsOEJBQU0sQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQXFCLGVBQUs7YUFDakcsSUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQTJCLENBQUM7YUFFakQsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztpQkFDdEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO2FBQ3JELENBQUM7YUFFRCxNQUFNLEVBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ2hDLENBQUMsQ0FBQyxDQUFDO0tBQ0wsQ0FBQztLQUNILDBCQUFDO0FBQUQsRUFBQztBQXJCWSxtREFBbUI7Ozs7Ozs7OztBQ1BoQzs7SUFFRztBQUNIO0tBZ0JFLDhEQUE4RDtLQUM5RCx1QkFBb0IsYUFBcUI7U0FDdkMsSUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBQyxJQUFJLGVBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQWYsQ0FBZSxDQUFDLENBQUM7U0FDakUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLEdBQUcsYUFBYSxDQUFDLENBQUM7U0FDOUQsQ0FBQztTQUVELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3ZCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3ZCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ3ZCLENBQUM7S0FsQkQsc0JBQWtCLHlCQUFRO1NBSDFCOztZQUVHO2NBQ0g7YUFDRSxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztTQUNqQyxDQUFDOzs7UUFBQTtLQWtCRCxzQkFBVyxnQ0FBSztjQUFoQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3JCLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsZ0NBQUs7Y0FBaEI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUNyQixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLDhCQUFHO2NBQWQ7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUNuQixDQUFDOzs7UUFBQTtLQXBDRCwwR0FBMEc7S0FDM0YsdUJBQVMsR0FBa0IsSUFBSSxhQUFhLENBQUMsU0FBd0IsQ0FBQyxDQUFDO0tBb0N4RixvQkFBQztFQUFBO0FBdkNZLHVDQUFhOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDUDFCLHdDQUEyRDtBQUMzRCxzREFBOEc7QUFDOUcsMkNBQWtEO0FBRWxELGlEQUFxRDtBQUNyRCwyQ0FBeUM7QUFDekMsMkNBQXdDO0FBQ3hDLCtDQUFnRDtBQUNoRCwrQ0FBZ0Q7QUFFaEQ7S0FBbUMsaUNBQVM7S0FJMUMsdUJBQTJCLEtBQXlCLEVBQVUsVUFBcUI7U0FBbkYsWUFDRSxrQkFBTSxJQUFJLDZCQUFhLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQ25FO1NBRjBCLFdBQUssR0FBTCxLQUFLLENBQW9CO1NBQVUsZ0JBQVUsR0FBVixVQUFVLENBQVc7O0tBRW5GLENBQUM7S0FFRCxzQkFBVyxxQ0FBVTtjQUFyQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQzFCLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsa0NBQU87Y0FBbEI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUN2QixDQUFDOzs7UUFBQTtLQUVNLHNEQUE4QixHQUFyQyxVQUFzQyxTQUE2QjtTQUNqRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksS0FBSyxFQUFhLENBQUM7U0FDMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEtBQUssRUFBNEIsQ0FBQztTQUV0RCw4REFBOEQ7U0FDOUQsR0FBRyxDQUFDLENBQWUsVUFBZ0IsRUFBaEIsU0FBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQWhCLGNBQWdCLEVBQWhCLElBQWdCO2FBQTlCLElBQU0sSUFBSTthQUNiLElBQUksU0FBUyxHQUEwQixTQUFTLENBQUM7YUFFakQsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSywyQ0FBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO2lCQUNwRCxJQUFNLFNBQVMsR0FBRyxJQUFJLDZCQUFhLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUM3RSxJQUFNLEtBQUssR0FBYTtxQkFDdEIsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJO3FCQUNwQixTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJO3FCQUMxQixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVO3FCQUN0QyxlQUFlLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlO3FCQUNoRCxZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZO2tCQUMzQyxDQUFDO2lCQUVGLElBQU0sYUFBYSxHQUFHLElBQUksNkJBQWEsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7aUJBQzFELFNBQVMsR0FBRyxJQUFJLHFCQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7aUJBQ3pDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ25DLENBQUM7YUFFRCxJQUFNLFNBQVMsR0FBRyxJQUFJLGtCQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDNUMsSUFBTSxRQUFRLEdBQUcsSUFBSSxpQkFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBRW5ELElBQU0sZUFBZSxHQUFHLElBQUksaUNBQWUsQ0FDekMsU0FBUyxFQUNULElBQUksQ0FBQyxRQUFRLEVBQ2IsU0FBUyxFQUNULFFBQVEsRUFDUixTQUFTLENBQ1YsQ0FBQzthQUVGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1VBQ3JDO0tBQ0gsQ0FBQztLQUNILG9CQUFDO0FBQUQsRUFBQyxDQXJEa0MscUJBQVMsR0FxRDNDO0FBckRZLHVDQUFhOzs7Ozs7OztBL0JWMUI7Ozs7SUFJRzs7Ozs7QUFHSCxtQ0FBd0I7Ozs7Ozs7OztBZ0NMeEI7OztJQUdHO0FBQ0g7S0FDRSx5QkFDVSxVQUE4QixFQUM5QixLQUFtQyxFQUNuQyxTQUF5QixFQUN6QixLQUFvQixFQUNwQixVQUEwQztTQUoxQyxlQUFVLEdBQVYsVUFBVSxDQUFvQjtTQUM5QixVQUFLLEdBQUwsS0FBSyxDQUE4QjtTQUNuQyxjQUFTLEdBQVQsU0FBUyxDQUFnQjtTQUN6QixVQUFLLEdBQUwsS0FBSyxDQUFlO1NBQ3BCLGVBQVUsR0FBVixVQUFVLENBQWdDO0tBQ2hELENBQUM7S0FFTCxzQkFBVyxzQ0FBUztjQUFwQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQ3pCLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsaUNBQUk7Y0FBZjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ3BCLENBQUM7OztRQUFBO0tBRUQsc0JBQVcscUNBQVE7Y0FBbkI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUN4QixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLGlDQUFJO2NBQWY7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNwQixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLHNDQUFTO2NBQXBCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDekIsQ0FBQzs7O1FBQUE7S0FDSCxzQkFBQztBQUFELEVBQUM7QUE1QlksMkNBQWU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNKNUIsdUNBQWdDO0FBSWhDO0tBQStCLDZCQUFLO0tBR2xDLG1CQUFtQixhQUE0QjtTQUEvQyxZQUNFLGtCQUFNLGFBQWEsQ0FBQyxTQUtyQjtTQUpDLEtBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1NBRXBDLDhGQUE4RjtTQUM5RixLQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLEtBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFDLElBQUksWUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBdkIsQ0FBdUIsQ0FBQyxDQUFDOztLQUNuRixDQUFDO0tBRUQsc0JBQVcsc0NBQWU7Y0FBMUI7YUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7U0FDbEQsQ0FBQzs7O1FBQUE7S0FFTSxvQ0FBZ0IsR0FBdkIsVUFDRSxTQUFpQixFQUFFLE1BQXFCLEVBQUUsVUFBcUMsRUFBRSxPQUErQjtTQUM5RyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztLQUN4RixDQUFDO0tBRU0seUNBQXFCLEdBQTVCLFVBQTZCLFNBQWlCLEVBQUUsYUFBMEM7U0FDeEYsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0tBQzdFLENBQUM7S0FFTSxvQ0FBZ0IsR0FBdkIsVUFBd0IsU0FBaUI7U0FDdkMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDekQsQ0FBQztLQUVNLG1DQUFlLEdBQXRCO1NBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0tBQ2xELENBQUM7S0FFTSx5Q0FBcUIsR0FBNUI7U0FDRSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0tBQ3JELENBQUM7S0FFTSw0Q0FBd0IsR0FBL0I7U0FDRSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0tBQ3hELENBQUM7S0FFTSx1Q0FBbUIsR0FBMUIsVUFBMkIsT0FBdUM7U0FDaEUsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDMUQsQ0FBQztLQUVNLDBDQUFzQixHQUE3QixVQUE4QixPQUEwQztTQUN0RSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUM3RCxDQUFDO0tBRU0sMkNBQXVCLEdBQTlCO1NBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztLQUN2RCxDQUFDO0tBQ0gsZ0JBQUM7QUFBRCxFQUFDLENBbkQ4QixhQUFLLEdBbURuQztBQW5EWSwrQkFBUzs7Ozs7Ozs7O0FDSHRCLDJDQUEwRjtBQUkxRjtLQUNFLG1CQUEyQixhQUE0QjtTQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtLQUN2RCxDQUFDO0tBRUQsc0JBQUksMkJBQUk7Y0FBUjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztTQUNqQyxDQUFDOzs7UUFBQTtLQUVELHNCQUFJLGdDQUFTO2NBQWI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7U0FDdEMsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBSSxnQ0FBUztjQUFiO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO1NBQ3RDLENBQUM7OztRQUFBO0tBRU0sc0NBQWtCLEdBQXpCLFVBQTBCLGFBQXFCLEVBQUUsS0FBcUI7U0FDcEUsSUFBTSxPQUFPLEdBQUcsK0JBQWtCLENBQUMsUUFBUSxDQUFDLFVBQVUsdUNBQTRDLENBQUM7U0FDbkcsTUFBTSxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7S0FDaEUsQ0FBQztLQUVNLHNDQUFrQixHQUF6QixVQUEwQixLQUFxQjtTQUM3QyxJQUFNLE9BQU8sR0FBRywrQkFBa0IsQ0FBQyxRQUFRLENBQUMsVUFBVSx1Q0FBNEMsQ0FBQztTQUNuRyxNQUFNLENBQUMsT0FBTyxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7S0FDbkUsQ0FBQztLQUNILGdCQUFDO0FBQUQsRUFBQztBQXpCWSwrQkFBUzs7Ozs7Ozs7O0FDUHRCLHVEQUEyRDtBQUczRDtLQUNFLHVCQUNVLEtBQWEsRUFDYixVQUFxQjtTQUM3QixlQUFlO1NBQ2Ysa0JBQWtCOztTQUhWLFVBQUssR0FBTCxLQUFLLENBQVE7U0FDYixlQUFVLEdBQVYsVUFBVSxDQUFXO0tBRzNCLENBQUM7S0FFTCxzQkFBVywrQkFBSTtjQUFmO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDcEIsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyxvQ0FBUztjQUFwQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQ3pCLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsb0NBQVM7Y0FBcEI7YUFDRSxNQUFNLENBQUM7aUJBQ0wsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJO2lCQUNwQixXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsS0FBSyxpQ0FBUyxDQUFDLFNBQVM7aUJBQ25ELGlCQUFpQjtjQUNsQixDQUFDO1NBQ0osQ0FBQzs7O1FBQUE7S0FDSCxvQkFBQztBQUFELEVBQUM7QUF2QlksdUNBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNIMUIsd0NBQTJEO0FBQzNELHNEQUF1RjtBQUN2RiwyQ0FZNkI7QUFHN0IsMkNBQXdDO0FBR3hDLEtBQU0saUJBQWlCLEdBQUcsVUFBUyxDQUFXLEVBQUUsQ0FBVztLQUN6RCxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDWCxDQUFDLENBQUMsU0FBUyxLQUFLLENBQUMsQ0FBQyxTQUFTO1NBQzNCLENBQUMsQ0FBQyxTQUFTLEtBQUssQ0FBQyxDQUFDLFNBQVM7U0FDM0IsQ0FBQyxDQUFDLFVBQVUsS0FBSyxDQUFDLENBQUMsVUFBVTtTQUM3QixDQUFDLENBQUMsWUFBWSxLQUFLLENBQUMsQ0FBQyxZQUFZO1NBQ2pDLENBQUMsQ0FBQyxlQUFlLEtBQUssQ0FBQyxDQUFDLGVBQWUsQ0FBQztBQUM1QyxFQUFDLENBQUM7QUFFRjtLQUFtQyxpQ0FBUztLQUMxQyx1QkFBbUIsYUFBNEIsRUFBVSxTQUFtQjtTQUE1RSxZQUNFLGtCQUFNLGFBQWEsQ0FBQyxTQUNyQjtTQUZ3RCxlQUFTLEdBQVQsU0FBUyxDQUFVOztLQUU1RSxDQUFDO0tBRUQ7Ozs7Ozs7UUFPRztLQUNJLHdDQUFnQixHQUF2QixVQUF3QixTQUFvQjtTQUE1QyxpQkFrQ0M7U0FqQ0MsSUFBTSxPQUFPLEdBQUcsSUFBSSxLQUFLLEVBQXNCLENBQUM7U0FDaEQsSUFBSSxtQkFBd0MsQ0FBQztTQUU3QyxJQUFJLENBQUM7YUFDSCxtQkFBbUIsR0FBRywrQkFBa0IsQ0FBQyxRQUFRLENBQUMsVUFBVSwyQ0FBZ0QsQ0FBQztTQUMvRyxDQUFDO1NBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNYLHdEQUF3RDthQUN4RCxNQUFNLENBQUMsT0FBTyxDQUFDO1NBQ2pCLENBQUM7U0FFRCw0RUFBNEU7U0FDNUUsSUFBTSxVQUFVLEdBQUcsSUFBSSxtQ0FBc0IsQ0FBcUIsUUFBUSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDbEgsbUJBQW1CLENBQUMsZUFBZSxDQUFDLHNDQUFjLENBQUMsb0JBQW9CLEVBQUUsVUFBQyxLQUFLO2FBQzdFLElBQU0sUUFBUSxHQUFHLEtBQWlCLENBQUM7YUFDbkMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxLQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDcEQsQ0FBQyxFQUFFLFVBQUMsR0FBYTthQUNmLFVBQVUsQ0FBQyxZQUFZLENBQUMsY0FBTSxXQUFJLCtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFqQyxDQUFpQyxDQUFDLENBQUM7U0FDbkUsQ0FBQyxDQUFDLENBQUM7U0FFSCxJQUFNLFdBQVcsR0FBRyxJQUFJLG1DQUFzQixDQUFxQixRQUFRLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDNUcsbUJBQW1CLENBQUMsZUFBZSxDQUFDLHNDQUFjLENBQUMsYUFBYSxFQUFFLFVBQUMsS0FBSzthQUN0RSxJQUFNLG1CQUFtQixHQUFHLEtBQW9CLENBQUM7YUFDakQsTUFBTSxDQUFDLEtBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxLQUFLLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7U0FDNUUsQ0FBQyxFQUFFLFVBQUMsS0FBa0I7YUFDcEIsV0FBVyxDQUFDLFlBQVksQ0FBQyxjQUFNLFdBQUksK0JBQWtCLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBbEQsQ0FBa0QsQ0FBQyxDQUFDO1NBQ3JGLENBQUMsQ0FBQyxDQUFDO1NBRUgsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUN6QixPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBRTFCLDJCQUEyQjtTQUUzQixNQUFNLENBQUMsT0FBTyxDQUFDO0tBQ2pCLENBQUM7S0FFRCxzQkFBVyxtQ0FBUTtjQUFuQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQ3hCLENBQUM7OztRQUFBO0tBRU0sd0NBQWdCLEdBQXZCLFVBQ0UsU0FBaUIsRUFBRSxNQUFxQixFQUFFLFVBQXFDLEVBQUUsT0FBK0I7U0FDOUcsSUFBTSxPQUFPLEdBQUcsK0JBQWtCLENBQUMsUUFBUSxDQUFDLFVBQVUsK0JBQW9DLENBQUM7U0FDM0YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0tBQ3pGLENBQUM7S0FFSSw2Q0FBcUIsR0FBNUIsVUFBNkIsU0FBaUIsRUFBRSxhQUEwQztTQUN4RixJQUFNLE9BQU8sR0FBRywrQkFBa0IsQ0FBQyxRQUFRLENBQUMsVUFBVSwrQkFBb0MsQ0FBQztTQUMzRixNQUFNLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0tBQ2hGLENBQUM7S0FFTSx3Q0FBZ0IsR0FBdkIsVUFBd0IsU0FBaUI7U0FDdkMsSUFBTSxPQUFPLEdBQUcsK0JBQWtCLENBQUMsUUFBUSxDQUFDLFVBQVUsK0JBQW9DLENBQUM7U0FDM0YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0tBQzVELENBQUM7S0FFTSw2Q0FBcUIsR0FBNUI7U0FDRSxJQUFNLE9BQU8sR0FBRywrQkFBa0IsQ0FBQyxRQUFRLENBQUMsVUFBVSxrQ0FBc0MsQ0FBQztTQUM3RixNQUFNLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUN0RCxDQUFDO0tBRU0sZ0RBQXdCLEdBQS9CO1NBQ0UsSUFBTSxPQUFPLEdBQUcsK0JBQWtCLENBQUMsUUFBUSxDQUFDLFVBQVUsa0NBQXNDLENBQUM7U0FDN0YsTUFBTSxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7S0FDekQsQ0FBQztLQUVNLDJDQUFtQixHQUExQixVQUEyQixPQUF1QztTQUNoRSxJQUFNLE9BQU8sR0FBRywrQkFBa0IsQ0FBQyxRQUFRLENBQUMsVUFBVSxrQ0FBc0MsQ0FBQztTQUM3RixPQUFPLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztTQUV4QixNQUFNLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUNuQyxJQUFJLENBQUMsUUFBUSxFQUFFLHdCQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztLQUNuRyxDQUFDO0tBRUksOENBQXNCLEdBQTdCLFVBQThCLE9BQTBDO1NBQ3RFLElBQU0sT0FBTyxHQUFHLCtCQUFrQixDQUFDLFFBQVEsQ0FBQyxVQUFVLGtDQUFzQyxDQUFDO1NBQzdGLE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1NBQ3hCLE1BQU0sQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQ25DLElBQUksQ0FBQyxRQUFRLEVBQ2Isd0JBQVcsQ0FBQyxVQUFVLEVBQ3RCLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUN2QixDQUFDLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFDekIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFDM0IsT0FBTyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQztLQUMxQixDQUFDO0tBRU0sK0NBQXVCLEdBQTlCO1NBQ0UsSUFBTSxPQUFPLEdBQUcsK0JBQWtCLENBQUMsUUFBUSxDQUFDLFVBQVUscUNBQTBDLENBQUM7U0FDakcsTUFBTSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7S0FDeEQsQ0FBQztLQUNILG9CQUFDO0FBQUQsRUFBQyxDQXZHa0MscUJBQVMsR0F1RzNDO0FBdkdZLHVDQUFhOzs7Ozs7Ozs7QUM1QjFCLDJDQUF5RDtBQUN6RCwyQ0FBMkM7QUFLM0M7S0FRRSxzQkFBbUIsWUFBK0I7U0FKbEQsdUVBQXVFO1NBQ3ZFLG9GQUFvRjtTQUM1RSxvQkFBZSxHQUFZLEtBQUssQ0FBQztTQUd2QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUM7S0FDeEMsQ0FBQztLQUVNLDRCQUFLLEdBQVosVUFBYSxHQUFXO1NBQ3RCLGlCQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUU5QixzREFBc0Q7U0FDdEQsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMvQixJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQzthQUVqQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztTQUMxQixDQUFDO0tBQ0gsQ0FBQztLQUVNLDBCQUFHLEdBQVYsVUFBVyxHQUFXO1NBQ3BCLGlCQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUM5QixNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ3BDLENBQUM7S0FFTSw2QkFBTSxHQUFiO1NBQ0UseUNBQXlDO1NBQ3pDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztLQUNsRCxDQUFDO0tBRUQsc0JBQVcsb0NBQVU7Y0FBckI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUMxQixDQUFDOzs7UUFBQTtLQUVNLGdDQUFTLEdBQWhCO1NBQUEsaUJBb0JDO1NBbkJDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1NBRWpDLHFEQUFxRDtTQUNyRCxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO2FBQ3RCLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFxQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUNwRSxDQUFDO1NBRUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7U0FFNUIsbURBQW1EO1NBQ25ELElBQU0sZUFBZSxHQUFHLCtCQUFrQixDQUFDLFFBQVEsQ0FBQyxVQUFVLHlDQUMxQixDQUFDO1NBRXJDLE1BQU0sQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUFxQixxQkFBVzthQUNsRyxLQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQzthQUM3QixLQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQzthQUN6QixNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUksQ0FBQyxnQkFBZ0IsRUFBRSxXQUFXLENBQUMsQ0FBQzthQUNsRCxNQUFNLENBQUMsV0FBVyxDQUFDO1NBQ3JCLENBQUMsQ0FBQyxDQUFDO0tBQ0wsQ0FBQztLQUVNLDBCQUFHLEdBQVYsVUFBVyxHQUFXLEVBQUUsS0FBYTtTQUNuQyxpQkFBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxvQ0FBb0M7U0FDbkUsaUJBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsaUNBQWlDO1NBQ3JFLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1NBRWpDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7U0FDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7S0FDMUIsQ0FBQztLQUVPLHlDQUFrQixHQUExQixVQUEyQixZQUErQjtTQUN4RCxpQkFBSyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsY0FBYyxDQUFDLENBQUM7U0FDaEQsaUJBQUssQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1NBRTlFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsY0FBYyxDQUFDO1NBRXBELDRCQUE0QjtTQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztLQUMzQixDQUFDO0tBRUQ7OztRQUdHO0tBQ0ssZ0RBQXlCLEdBQWpDO1NBQ0UsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7YUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4REFBOEQsQ0FBQyxDQUFDO1NBQ2xGLENBQUM7S0FDSCxDQUFDO0tBQ0gsbUJBQUM7QUFBRCxFQUFDO0FBeEZZLHFDQUFZOzs7Ozs7OztBM0JQekI7Ozs7SUFJRzs7QUFFSCwrQ0FBZ0Q7QUFBdkMsc0RBQWE7QUFDdEIsdUNBQWdDO0FBQXZCLDhCQUFLIiwiZmlsZSI6IkB0YWJsZWF1L2FkZGluLWFwaS4wLjIuMC5qcyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcInRhYmxlYXVcIl0gPSBmYWN0b3J5KCk7XG5cdGVsc2Vcblx0XHRyb290W1widGFibGVhdVwiXSA9IGZhY3RvcnkoKTtcbn0pKHRoaXMsIGZ1bmN0aW9uKCkge1xucmV0dXJuIFxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIHdlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvblxuICoqLyIsIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKVxuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuXG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRleHBvcnRzOiB7fSxcbiBcdFx0XHRpZDogbW9kdWxlSWQsXG4gXHRcdFx0bG9hZGVkOiBmYWxzZVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sb2FkZWQgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIi9kaXN0L1wiO1xuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKDApO1xuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogd2VicGFjay9ib290c3RyYXAgODc5MGMxZmE2YzU4NmIwOTQyMmVcbiAqKi8iLCIvKipcclxuICogVGhpcyBpcyB5b3VyIG1haW4uIFRoaXMgaXMgd2hlcmUgeW91IHJlLWV4cG9ydCBldmVyeXRoaW5nIHlvdSB3YW50IHRvIGJlIHB1YmxpY2x5IGF2YWlsYWJsZS5cclxuICpcclxuICogVGhlIGJ1aWxkIGVuZm9yY2VzIHRoYXQgdGhlIGZpbGUgaGFzIHRoZSBzYW1lIG5hbWUgYXMgdGhlIGdsb2JhbCB2YXJpYWJsZSB0aGF0IGlzIGV4cG9ydGVkLlxyXG4gKi9cclxuXHJcbi8vIER1ZSB0byB0aGUgd2F5IHdlIGNvbmZpZ3VyZWQgd2VicGFjaywgd2Ugc2hvdWxkIGJlIGV4cG9ydGluZyB0aGluZ3Mgd2hpY2ggd2lsbCBiZSB1bmRlclxyXG4vLyBhIGdsb2JhbCB2YXJpYWJsZSBjYWxsZWQgXCJ0YWJsZWF1XCIuIEV4cG9ydCBldmVyeXRoaW5nIHdlIHdhbnQgdG8gYmUgdmlzaWJsZSB1bmRlciB0YWJsZWF1XHJcbi8vIGZyb20gdGhpcyBmaWxlLlxyXG5cclxuaW1wb3J0IHsgQWRkSW4gfSBmcm9tICcuL0V4dGVybmFsTmFtZXNwYWNlcy9BZGRJbic7XHJcbmltcG9ydCB7IEFkZEluSW1wbCB9IGZyb20gJy4vSW50ZXJuYWwvQWRkSW5JbXBsJztcclxuXHJcbmNvbnN0IGFkZEluSW1wbCA9IG5ldyBBZGRJbkltcGwoKTtcclxuZXhwb3J0IGNvbnN0IGFkZEluID0gbmV3IEFkZEluKGFkZEluSW1wbCk7XHJcblxyXG4vLyBFeHBvcnQgRW51bXNcclxuZXhwb3J0IHtcclxuICBGaWx0ZXJVcGRhdGVUeXBlLFxyXG4gIE51bGxPcHRpb24sXHJcbiAgVGFibGVhdUV2ZW50VHlwZVxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIC4uL3NyYy9BZGRJbkFwaS50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBBZGRJbkltcGwgfSBmcm9tICcuLi9JbnRlcm5hbC9BZGRJbkltcGwnO1xyXG5cclxuLyoqXHJcbiAqIEltcGxlbWVudGF0aW9uIG9mIHRoZSBleHRlcm5hbCBBZGRJbiBuYW1lc3BhY2UuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQWRkSW4gaW1wbGVtZW50cyBDb250cmFjdC5BZGRJbiB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgYWRkSW5JbXBsOiBBZGRJbkltcGwpIHtcclxuICAgIHRoaXMuYWRkSW5JbXBsID0gYWRkSW5JbXBsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBkYXNoYm9hcmRDb250ZW50KCk6IENvbnRyYWN0LkRhc2hib2FyZENvbnRlbnQge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkSW5JbXBsLmRhc2hib2FyZENvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGVudmlyb25tZW50KCk6IENvbnRyYWN0LkVudmlyb25tZW50IHtcclxuICAgIHJldHVybiB0aGlzLmFkZEluSW1wbC5lbnZpcm9ubWVudDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2V0dGluZ3MoKTogQ29udHJhY3QuU2V0dGluZ3Mge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkSW5JbXBsLnNldHRpbmdzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB1aSgpOiBDb250cmFjdC5VSSB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0FQSSBjYWxsIG5vdCB5ZXQgaW1wbGVtZW50ZWQnKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbml0aWFsaXplQXN5bmMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRJbkltcGwuaW5pdGlhbGl6ZUFzeW5jKCk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIC4uL3NyYy9FeHRlcm5hbE5hbWVzcGFjZXMvQWRkSW4udHNcbiAqKi8iLCJpbXBvcnQge1xyXG4gIEFkZEluRGFzaGJvYXJkSW5mbyxcclxuICBBZGRJblNldHRpbmdzSW5mbyxcclxuICBJbnRlcm5hbEFwaURpc3BhdGNoZXIsXHJcbiAgSW50ZXJuYWxBcGlEaXNwYXRjaGVySG9sZGVyLFxyXG4gIFNoZWV0UGF0aCxcclxufSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBBcGlTZXJ2aWNlUmVnaXN0cnksIHJlZ2lzdGVyQWxsU2hhcmVkU2VydmljZXMgfSBmcm9tICdAdGFibGVhdS9hcGktc2hhcmVkJztcclxuXHJcbmltcG9ydCB7IERhc2hib2FyZCB9IGZyb20gJy4uL0Rhc2hib2FyZCc7XHJcbmltcG9ydCB7IERhc2hib2FyZENvbnRlbnQgfSBmcm9tICcuLi9FeHRlcm5hbE5hbWVzcGFjZXMvRGFzaGJvYXJkQ29udGVudCc7XHJcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vRXh0ZXJuYWxOYW1lc3BhY2VzL0Vudmlyb25tZW50JztcclxuaW1wb3J0IHsgU2V0dGluZ3MgfSBmcm9tICcuLi9FeHRlcm5hbE5hbWVzcGFjZXMvU2V0dGluZ3MnO1xyXG5pbXBvcnQgeyBBZGRJblNlcnZpY2VOYW1lcyB9IGZyb20gJy4uL1NlcnZpY2VzL0FkZEluU2VydmljZU5hbWVzJztcclxuaW1wb3J0IHsgSW5pdGlhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vU2VydmljZXMvSW5pdGlhbGl6YXRpb25TZXJ2aWNlJztcclxuaW1wb3J0IHsgcmVnaXN0ZXJBbGxBZGRJblNlcnZpY2VzIH0gZnJvbSAnLi4vU2VydmljZXMvUmVnaXN0ZXJBbGxBZGRJblNlcnZpY2VzJztcclxuaW1wb3J0IHsgVmVyc2lvbk51bWJlciB9IGZyb20gJy4uL1ZlcnNpb25OdW1iZXInO1xyXG5pbXBvcnQgeyBEYXNoYm9hcmRJbXBsIH0gZnJvbSAnLi9EYXNoYm9hcmRJbXBsJztcclxuaW1wb3J0IHsgU2V0dGluZ3NJbXBsIH0gZnJvbSAnLi9TZXR0aW5nc0ltcGwnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFkZEluSW1wbCB7XHJcbiAgcHJpdmF0ZSBfaW5pdGlhbGl6YXRpb25Qcm9taXNlOiBQcm9taXNlPHZvaWQ+O1xyXG5cclxuICBwdWJsaWMgZGFzaGJvYXJkQ29udGVudDogRGFzaGJvYXJkQ29udGVudDtcclxuICBwdWJsaWMgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50O1xyXG4gIHB1YmxpYyBzZXR0aW5nczogU2V0dGluZ3M7XHJcblxyXG4gIHB1YmxpYyBpbml0aWFsaXplQXN5bmMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMuX2luaXRpYWxpemF0aW9uUHJvbWlzZSkge1xyXG4gICAgICB0aGlzLl9pbml0aWFsaXphdGlvblByb21pc2UgPSBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgLy8gRmlyc3QgdGhpbmcgd2Ugd2FudCB0byBkbyBpcyBjaGVjayB0byBzZWUgaWYgdGhlcmUgaXMgYSBkZXNrdG9wIGRpc3BhdGNoZXIgYWxyZWFkeSByZWdpc3RlcmVkIGZvciB1c1xyXG4gICAgICAgIGlmIChJbnRlcm5hbEFwaURpc3BhdGNoZXJIb2xkZXIuaGFzRGVza3RvcEFwaURpc3BhdGNoZXJQcm9taXNlKCkpIHtcclxuICAgICAgICAgIC8vIFJ1bm5pbmcgaW4gZGVza3RvcCwgdXNlIHRoaXMgcHJvbWlzZVxyXG4gICAgICAgICAgY29uc3QgZGVza3RvcERpc3BhdGNoZXJQcm9taXNlID0gSW50ZXJuYWxBcGlEaXNwYXRjaGVySG9sZGVyLmdldERlc2t0b3BEaXNwYXRjaGVyUHJvbWlzZSgpO1xyXG4gICAgICAgICAgZGVza3RvcERpc3BhdGNoZXJQcm9taXNlLnRoZW4odGhpcy5vbkRpc3BhdGNoZXJSZWNlaXZlZC5iaW5kKHRoaXMpKS50aGVuKCgpID0+IHsgcmVzb2x2ZSgpOyB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KCdOb3QgcnVubmluZyBpbiBkZXNrdG9wLiBTZXJ2ZXIgc3VwcG9ydCBjb21pbmcgc29vbiEnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLl9pbml0aWFsaXphdGlvblByb21pc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uRGlzcGF0Y2hlclJlY2VpdmVkKGRpc3BhdGNoZXI6IEludGVybmFsQXBpRGlzcGF0Y2hlcik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgZGlzcGF0Y2hlci5zZXRWZXJzaW9uTnVtYmVyKFZlcnNpb25OdW1iZXIuSW5zdGFuY2UpO1xyXG5cclxuICAgIC8vIENhbGwgdG8gcmVnaXN0ZXIgYWxsIHRoZSBzZXJ2aWNlcyB3aGljaCB3aWxsIHVzZSB0aGUgbmV3bHkgaW5pdGlhbGl6ZWQgZGlzcGF0Y2hlclxyXG4gICAgcmVnaXN0ZXJBbGxTaGFyZWRTZXJ2aWNlcyhkaXNwYXRjaGVyKTtcclxuICAgIHJlZ2lzdGVyQWxsQWRkSW5TZXJ2aWNlcyhkaXNwYXRjaGVyKTtcclxuXHJcbiAgICAvLyBHZXQgdGhlIGluaXRpYWxpemF0aW9uIHNlcnZpY2UgYW5kIGluaXRpYWxpemUgdGhpcyBhZGQtaW5cclxuICAgIGNvbnN0IGluaXRpYWxpemF0aW9uU2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPEluaXRpYWxpemF0aW9uU2VydmljZT4oXHJcbiAgICAgIEFkZEluU2VydmljZU5hbWVzLkluaXRpYWxpemF0aW9uU2VydmljZSk7XHJcblxyXG4gICAgcmV0dXJuIGluaXRpYWxpemF0aW9uU2VydmljZS5pbml0aWFsaXplRGFzaGJvYXJkQWRkSW5Bc3luYygpLnRoZW4ocmVzdWx0ID0+IHtcclxuICAgICAgaWYgKCFyZXN1bHQuYWRkSW5JbnN0YW5jZS5sb2NhdG9yLmRhc2hib2FyZFBhdGgpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Rhc2hib2FyZFBhdGggaXMgdW5kZWZpbmVkJyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuZGFzaGJvYXJkQ29udGVudCA9IHRoaXMuaW5pdGlhbGl6ZURhc2hib2FyZENvbnRlbnQocmVzdWx0LmFkZGluRGFzaGJvYXJkSW5mbywgcmVzdWx0LmFkZEluSW5zdGFuY2UubG9jYXRvci5kYXNoYm9hcmRQYXRoKTtcclxuICAgICAgdGhpcy5lbnZpcm9ubWVudCA9IG5ldyBFbnZpcm9ubWVudChyZXN1bHQuYWRkSW5FbnZpcm9ubWVudCk7XHJcbiAgICAgIHRoaXMuc2V0dGluZ3MgPSB0aGlzLmluaXRpYWxpemVTZXR0aW5ncyhyZXN1bHQuYWRkSW5TZXR0aW5nc0luZm8pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRpYWxpemVEYXNoYm9hcmRDb250ZW50KGluZm86IEFkZEluRGFzaGJvYXJkSW5mbywgc2hlZXRQYXRoOiBTaGVldFBhdGgpOiBEYXNoYm9hcmRDb250ZW50IHtcclxuICAgIGNvbnN0IGRhc2hib2FyZEltcGwgPSBuZXcgRGFzaGJvYXJkSW1wbChpbmZvLCBzaGVldFBhdGgpO1xyXG4gICAgY29uc3QgZGFzaGJvYXJkID0gbmV3IERhc2hib2FyZChkYXNoYm9hcmRJbXBsKTtcclxuICAgIHJldHVybiBuZXcgRGFzaGJvYXJkQ29udGVudChkYXNoYm9hcmQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplU2V0dGluZ3Moc2V0dGluZ3NJbmZvOiBBZGRJblNldHRpbmdzSW5mbyk6IFNldHRpbmdzIHtcclxuICAgIGNvbnN0IHNldHRpbmdzSW1wbCA9IG5ldyBTZXR0aW5nc0ltcGwoc2V0dGluZ3NJbmZvKTtcclxuICAgIHJldHVybiBuZXcgU2V0dGluZ3Moc2V0dGluZ3NJbXBsKTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogLi4vc3JjL0ludGVybmFsL0FkZEluSW1wbC50c1xuICoqLyIsIi8qKlxyXG4gKiBUaGlzIGlzIHlvdXIgbWFpbi4gVGhpcyBpcyB3aGVyZSB5b3UgcmUtZXhwb3J0IGV2ZXJ5dGhpbmcgeW91IHdhbnQgdG8gYmUgcHVibGljbHkgYXZhaWxhYmxlLlxyXG4gKlxyXG4gKiBUaGUgYnVpbGQgZW5mb3JjZXMgdGhhdCB0aGUgZmlsZSBoYXMgdGhlIHNhbWUgbmFtZSBhcyB0aGUgZ2xvYmFsIHZhcmlhYmxlIHRoYXQgaXMgZXhwb3J0ZWQuXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2UvRW51bXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZS9JbnRlcm5hbEFwaURpc3BhdGNoZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZS9Nb2RlbHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZS9Ob3RpZmljYXRpb25zJztcclxuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2UvUGFyYW1ldGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlL1ZlcmJzJztcclxuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2UvVmVyc2lvbk51bWJlcic7XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWludGVybmFsLWNvbnRyYWN0L3NyYy9BcGlJbnRlcm5hbENvbnRyYWN0LnRzXG4gKiovIiwiZXhwb3J0IGVudW0gQWRkSW5Db250ZXh0IHtcclxuICBEZXNrdG9wID0gJ2Rlc2t0b3AnLFxyXG4gIFNlcnZlciA9ICdzZXJ2ZXInLFxyXG4gIFVua25vd24gPSAndW5rbm93bidcclxufVxyXG5cclxuZXhwb3J0IGVudW0gQWRkSW5Nb2RlIHtcclxuICBBdXRob3JpbmcgPSAnYXV0aG9yaW5nJyxcclxuICBWaWV3aW5nID0gJ3ZpZXdpbmcnLFxyXG4gIFVua25vd24gPSAndW5rbm93bidcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRGFzaGJvYXJkT2JqZWN0VHlwZSB7XHJcbiAgQmxhbmsgPSAnYmxhbmsnLFxyXG4gIFdvcmtzaGVldCA9ICd3b3Jrc2hlZXQnLFxyXG4gIFF1aWNrRmlsdGVyID0gJ3F1aWNrLWZpbHRlcicsXHJcbiAgUGFyYW1ldGVyQ29udHJvbCA9ICdwYXJhbWV0ZXItY29udHJvbCcsXHJcbiAgUGFnZUZpbHRlciA9ICdwYWdlLWZpbHRlcicsXHJcbiAgTGVnZW5kID0gJ2xlZ2VuZCcsXHJcbiAgVGl0bGUgPSAndGl0bGUnLFxyXG4gIFRleHQgPSAndGV4dCcsXHJcbiAgSW1hZ2UgPSAnaW1hZ2UnLFxyXG4gIFdlYlBhZ2UgPSAnd2ViLXBhZ2UnLFxyXG4gIEFkZEluID0gJ2FkZGluJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBEYXRhVHlwZSB7XHJcbiAgU3RyaW5nID0gJ3N0cmluZycsXHJcbiAgSW50ID0gJ2ludCcsXHJcbiAgRmxvYXQgPSAnZmxvYXQnLFxyXG4gIEJvb2wgPSAnYm9vbCcsXHJcbiAgRGF0ZSA9ICdkYXRlJyxcclxuICBEYXRlVGltZSA9ICdkYXRlLXRpbWUnLFxyXG4gIFNwYXRpYWwgPSAnc3BhdGlhbCdcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRW5jb2RlZERhdGFUeXBlIHtcclxuICBOdW1iZXIgPSAnbnVtYmVyJyxcclxuICBTdHJpbmcgPSAnc3RyaW5nJyxcclxuICBEYXRlID0gJ2RhdGUnLFxyXG4gIEJvb2xlYW4gPSAnYm9vbGVhbidcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRXJyb3JDb2RlIHtcclxuICBTZXJ2ZXJFcnJvciA9ICdzZXJ2ZXItZXJyb3InLFxyXG4gIEludmFsaWRBZ2dyZWdhdGlvbkZpZWxkTmFtZSA9ICdpbnZhbGlkLWFnZ3JlZ2F0aW9uLWZpZWxkLW5hbWUnLFxyXG4gIEludmFsaWRGaWx0ZXJGaWVsZE5hbWUgPSAnaW52YWxpZC1maWx0ZXItZmllbGRuYW1lJyxcclxuICBJbnZhbGlkRmlsdGVyRmllbGRWYWx1ZSA9ICdpbnZhbGlkLWZpbHRlci1maWVsZC12YWx1ZSdcclxufVxyXG5cclxuLyoqXHJcbiAqICBUaGUgZGlmZmVyZW50IHVwZGF0ZSB0eXBlcyBmb3IgYXBwbHlpbmcgZmlsdGVyLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gRmlsdGVyVXBkYXRlVHlwZSB7XHJcbiAgQWRkID0gJ2FkZCcsXHJcbiAgQWxsID0gJ2FsbCcsXHJcbiAgUmVwbGFjZSA9ICdyZXBsYWNlJyxcclxuICBSZW1vdmUgPSAncmVtb3ZlJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBTaGVldFR5cGUge1xyXG4gIERhc2hib2FyZCA9ICdkYXNoYm9hcmQnLFxyXG4gIFN0b3J5ID0gJ3N0b3J5JyxcclxuICBXb3Jrc2hlZXQgPSAnd29ya3NoZWV0JyxcclxuICBBZGRpbiA9ICdhZGRpbidcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRG9tYWluUmVzdHJpY3Rpb25UeXBlIHtcclxuICBBbGwgPSAnYWxsJyxcclxuICBMaXN0ID0gJ2xpc3QnLFxyXG4gIFJhbmdlID0gJ3JhbmdlJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBEYXRlU3RlcFBlcmlvZCB7XHJcbiAgWWVhcnMgPSAneWVhcnMnLFxyXG4gIFF1YXJ0ZXJzID0gJ3F1YXJ0ZXJzJyxcclxuICBNb250aHMgPSAnbW9udGhzJyxcclxuICBXZWVrcyA9ICd3ZWVrcycsXHJcbiAgRGF5cyA9ICdkYXlzJyxcclxuICBIb3VycyA9ICdob3VycycsXHJcbiAgTWludXRlcyA9ICdtaW51dGVzJyxcclxuICBTZWNvbmRzID0gJ3NlY29uZHMnXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGUgb3B0aW9uIGZvciBzcGVjaWZ5aW5nIHdoaWNoIHZhbHVlcyB0byBpbmNsdWRlIGZvciBmaWx0ZXJpbmcuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBOdWxsT3B0aW9uIHtcclxuICBOdWxsVmFsdWVzID0gJ251bGx2YWx1ZXMnLFxyXG4gIE5vbk51bGxWYWx1ZXMgPSAnbm9ubnVsbHZhbHVlcycsXHJcbiAgQWxsVmFsdWVzID0gJ2FsbHZhbHVlcydcclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9zcmMvaW50ZXJmYWNlL0VudW1zLnRzXG4gKiovIiwiaW1wb3J0IHsgTW9kZWwgfSBmcm9tICcuL01vZGVscyc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbklkIH0gZnJvbSAnLi9Ob3RpZmljYXRpb25zJztcclxuaW1wb3J0IHsgVmVyYklkIH0gZnJvbSAnLi9WZXJicyc7XHJcbmltcG9ydCB7IFZlcnNpb25OdW1iZXIgfSBmcm9tICcuL1ZlcnNpb25OdW1iZXInO1xyXG5cclxuZXhwb3J0IHR5cGUgTm90aWZpY2F0aW9uSGFuZGxlciA9IChub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbikgPT4gdm9pZDtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXhlY3V0ZVBhcmFtZXRlcnMge1xyXG4gIFtrZXk6IHN0cmluZ106IE1vZGVsO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWN1dGVSZXNwb25zZSB7XHJcbiAgcmVzdWx0OiBNb2RlbDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBOb3RpZmljYXRpb24ge1xyXG4gIG5vdGlmaWNhdGlvbklkOiBOb3RpZmljYXRpb25JZDtcclxuICBkYXRhOiBNb2RlbDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJbnRlcm5hbEFwaURpc3BhdGNoZXIge1xyXG4gIHNldFZlcnNpb25OdW1iZXIodmVyc2lvbk51bWJlcjogVmVyc2lvbk51bWJlcik6IHZvaWQ7XHJcbiAgZXhlY3V0ZSh2ZXJiOiBWZXJiSWQsIHBhcmFtZXRlcnM6IEV4ZWN1dGVQYXJhbWV0ZXJzKTogUHJvbWlzZTxFeGVjdXRlUmVzcG9uc2U+O1xyXG4gIHJlZ2lzdGVyTm90aWZpY2F0aW9uSGFuZGxlcihoYW5kbGVyOiBOb3RpZmljYXRpb25IYW5kbGVyKTogdm9pZDtcclxuICB1bnJlZ2lzdGVyTm90aWZpY2F0aW9uSGFuZGxlcihoYW5kbGVyOiBOb3RpZmljYXRpb25IYW5kbGVyKTogdm9pZDtcclxufVxyXG5cclxuZGVjbGFyZSBnbG9iYWwge1xyXG4gIGludGVyZmFjZSBXaW5kb3cgeyBfX3RhYmxlYXVEZXNrdG9wRGlzcGF0Y2hlcjogUHJvbWlzZTxJbnRlcm5hbEFwaURpc3BhdGNoZXI+OyB9XHJcbn1cclxuXHJcbmV4cG9ydCBuYW1lc3BhY2UgSW50ZXJuYWxBcGlEaXNwYXRjaGVySG9sZGVyIHtcclxuICBleHBvcnQgZnVuY3Rpb24gZ2V0RGVza3RvcERpc3BhdGNoZXJQcm9taXNlKCk6IFByb21pc2U8SW50ZXJuYWxBcGlEaXNwYXRjaGVyPiB7XHJcbiAgICByZXR1cm4gd2luZG93Ll9fdGFibGVhdURlc2t0b3BEaXNwYXRjaGVyO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGhhc0Rlc2t0b3BBcGlEaXNwYXRjaGVyUHJvbWlzZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIUludGVybmFsQXBpRGlzcGF0Y2hlckhvbGRlci5nZXREZXNrdG9wRGlzcGF0Y2hlclByb21pc2UoKTtcclxuICB9XHJcblxyXG4gIGV4cG9ydCBmdW5jdGlvbiBzZXREZXNrdG9wRGlzcGF0Y2hlclByb21pc2UoZGlzcGF0Y2hlcjogUHJvbWlzZTxJbnRlcm5hbEFwaURpc3BhdGNoZXI+KTogdm9pZCB7XHJcbiAgICB3aW5kb3cuX190YWJsZWF1RGVza3RvcERpc3BhdGNoZXIgPSBkaXNwYXRjaGVyO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9zcmMvaW50ZXJmYWNlL0ludGVybmFsQXBpRGlzcGF0Y2hlci50c1xuICoqLyIsImV4cG9ydCBlbnVtIE5vdGlmaWNhdGlvbklkIHtcclxuICBTZWxlY3RlZE1hcmtzQ2hhbmdlZCA9ICdzZWxlY3RlZC1tYXJrcy1jaGFuZ2VkJyxcclxuICBQYXJhbWV0ZXJDaGFuZ2VkID0gJ3BhcmFtZXRlci1jaGFuZ2VkJyxcclxuICBGaWx0ZXJDaGFuZ2VkID0gJ2ZpbHRlci1jaGFuZ2VkJ1xyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWludGVybmFsLWNvbnRyYWN0L3NyYy9pbnRlcmZhY2UvTm90aWZpY2F0aW9ucy50c1xuICoqLyIsImV4cG9ydCBlbnVtIFBhcmFtZXRlcklkIHtcclxuICBBZGRJbkxvY2F0b3IgPSAnYWRkLWluLWxvY2F0b3InLFxyXG4gIEFkZEluQm9vdHN0cmFwSW5mbyA9ICdhZGQtaW4tYm9vdHN0cmFwLWluZm8nLFxyXG4gIEFkZEluU2V0dGluZ3NJbmZvID0gJ2FkZC1pbi1zZXR0aW5ncy1pbmZvJyxcclxuICBWaXN1YWxJZCA9ICd2aXN1YWwtaWQnLFxyXG4gIFNoZWV0UGF0aCA9ICdzaGVldC1wYXRoJyxcclxuICBJZ25vcmVBbGlhc2VzID0gJ2lnbm9yZS1hbGlhc2VzJyxcclxuICBJZ25vcmVTZWxlY3Rpb24gPSAnaWdub3JlLXNlbGVjdGlvbicsXHJcbiAgSW5jbHVkZUFsbENvbHVtbnMgPSAnaW5jbHVkZS1hbGwtY29sdW1ucycsXHJcbiAgTWF4Um93cyA9ICdtYXgtcm93cycsXHJcbiAgVW5kZXJseWluZ0RhdGFUYWJsZSA9ICd1bmRlcmx5aW5nLWRhdGEtdGFibGUnLFxyXG4gIFVuZGVybHlpbmdTdW1tYXJ5RGF0YVRhYmxlID0gJ3VuZGVybHlpbmctc3VtbWFyeS1kYXRhLXRhYmxlJyxcclxuICBTZXR0aW5nc1ZhbHVlcyA9ICdzZXR0aW5ncy12YWx1ZXMnLFxyXG4gIFNlbGVjdGVkRGF0YSA9ICdzZWxlY3RlZC1kYXRhJyxcclxuICBIaWdobGlnaHRlZERhdGEgPSAnaGlnaGxpZ2h0ZWQtZGF0YScsXHJcblxyXG4gICAvLyBGaWx0ZXIgUGFyYW1zXHJcbiAgRmllbGROYW1lID0gJ2ZpZWxkLW5hbWUnLFxyXG4gIEZpbHRlclZhbHVlcyA9ICdmaWx0ZXItdmFsdWVzJyxcclxuICBGaWx0ZXJVcGRhdGVUeXBlID0gJ2ZpbHRlci11cGRhdGUtdHlwZScsXHJcbiAgSXNFeGNsdWRlTW9kZSA9ICdpcy1leGNsdWRlJyxcclxuICBGaWx0ZXJSYW5nZU1pbiA9ICdmaWx0ZXItcmFuZ2UtbWluJyxcclxuICBGaWx0ZXJSYW5nZU1heCA9ICdmaWx0ZXItcmFuZ2UtbWF4JyxcclxuICBGaWx0ZXJSYW5nZU51bGxPcHRpb24gPSAnZmlsdGVyLXJhbmdlLW51bGwtb3B0aW9uJyxcclxuXHJcbiAgV29ya3NoZWV0TmFtZSA9ICd3b3Jrc2hlZXQtbmFtZScsXHJcbiAgRGFzaGJvYXJkTmFtZSA9ICdkYXNoYm9hcmQnLFxyXG5cclxuICBQYXJhbWV0ZXJJbmZvID0gJ3BhcmFtZXRlci1pbmZvJyxcclxuICBQYXJhbWV0ZXJJbmZvcyA9ICdwYXJhbWV0ZXItaW5mb3MnLFxyXG4gIFBhcmFtZXRlckNhcHRpb24gPSAncGFyZW1ldGVyLWNhcHRpb24nLFxyXG4gIFBhcmFtZXRlckZpZWxkTmFtZSA9ICdwYXJhbWV0ZXItZmllbGQtbmFtZScsXHJcbiAgUGFyYW1ldGVyVmFsdWUgPSAncGFyYW1ldGVyLXZhbHVlJ1xyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWludGVybmFsLWNvbnRyYWN0L3NyYy9pbnRlcmZhY2UvUGFyYW1ldGVycy50c1xuICoqLyIsIi8vIERlY2xhcmUgdGhpcyBrZXkgdHlwZSBhbmQgZXhwb3J0IHRoZSBOb3RpZmljYXRpb25JZCB0byBtYWtlIHRoaXMgYmVoYXZlIGxpa2UgYSBzdHJpbmcgZW51bVxyXG5leHBvcnQgZW51bSBWZXJiSWQge1xyXG4gIEFwcGx5Q2F0ZWdvcmljYWxGaWx0ZXIgPSAnY2F0ZWdvcmljYWwtZmlsdGVyJyxcclxuICBBcHBseVJhbmdlRmlsdGVyID0gJ3JhbmdlLWZpbHRlcicsXHJcbiAgQ2xlYXJGaWx0ZXIgPSAnY2xlYXItZmlsdGVyJyxcclxuICBJbml0aWFsaXplQWRkSW4gPSAnaW5pdGlhbGl6ZS1hZGQtaW4nLFxyXG4gIEdldERhdGFTdW1tYXJ5RGF0YSA9ICdnZXQtc3VtbWFyeS1kYXRhJyxcclxuICBHZXRVbmRlcmx5aW5nRGF0YSA9ICdnZXQtdW5kZXJseWluZy1kYXRhJyxcclxuICBTYXZlQWRkSW5TZXR0aW5ncyA9ICdzYXZlLWFkZC1pbi1zZXR0aW5ncycsXHJcbiAgR2V0U2VsZWN0ZWRNYXJrcyA9ICdnZXQtc2VsZWN0ZWQtbWFya3MnLFxyXG4gIEdldEhpZ2hsaWdodGVkTWFya3MgPSAnZ2V0LWhpZ2hsaWdodGVkLW1hcmtzJyxcclxuICBHZXRQYXJhbWV0ZXJzRm9yU2hlZXQgPSAnZ2V0LXBhcmFtZXRlcnMtZm9yLXNoZWV0JyxcclxuICBGaW5kUGFyYW1ldGVyID0gJ2ZpbmQtcGFyYW1ldGVyJyxcclxuICBDaGFuZ2VQYXJhbWV0ZXJWYWx1ZSA9ICdjaGFuZ2UtcGFyYW1ldGVyLXZhbHVlJyxcclxuICBDbGVhclNlbGVjdGVkTWFya3MgPSAnY2xlYXItc2VsZWN0ZWQtbWFya3MnXHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3Qvc3JjL2ludGVyZmFjZS9WZXJicy50c1xuICoqLyIsIi8qKlxyXG4gKiBUaGlzIGlzIHlvdXIgbWFpbi4gVGhpcyBpcyB3aGVyZSB5b3UgcmUtZXhwb3J0IGV2ZXJ5dGhpbmcgeW91IHdhbnQgdG8gYmUgcHVibGljbHkgYXZhaWxhYmxlLlxyXG4gKlxyXG4gKiBUaGUgYnVpbGQgZW5mb3JjZXMgdGhhdCB0aGUgZmlsZSBoYXMgdGhlIHNhbWUgbmFtZSBhcyB0aGUgZ2xvYmFsIHZhcmlhYmxlIHRoYXQgaXMgZXhwb3J0ZWQuXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9FdmVudExpc3RlbmVyTWFuYWdlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vUGFyYW1ldGVyJztcclxuZXhwb3J0IHsgUG9pbnQgfSBmcm9tICcuL1BvaW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9TaW5nbGVFdmVudE1hbmFnZXInO1xyXG5leHBvcnQgeyBTaXplIH0gZnJvbSAnLi9TaXplJztcclxuZXhwb3J0ICogZnJvbSAnLi9Nb2RlbHMvR2V0RGF0YU1vZGVscyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vRXhjZXB0aW9ucy9UYWJsZWF1RXhjZXB0aW9ucyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vRXZlbnRzL0ZpbHRlckNoYW5nZWRFdmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vRXZlbnRzL01hcmtzU2VsZWN0ZWRFdmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vRXZlbnRzL1RhYmxlYXVFdmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vRXZlbnRzL1RhYmxlYXVTaGVldEV2ZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9FdmVudHMvVGFibGVhdVdvcmtzaGVldEV2ZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9JbnRlcm5hbC9TaW5nbGVFdmVudE1hbmFnZXJJbXBsJztcclxuZXhwb3J0ICogZnJvbSAnLi9TZXJ2aWNlcy9HZXREYXRhU2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vU2VydmljZXMvRmlsdGVyU2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vU2VydmljZXMvTm90aWZpY2F0aW9uU2VydmljZSc7XHJcbmV4cG9ydCB7IFBhcmFtZXRlcnNTZXJ2aWNlIH0gZnJvbSAnLi9TZXJ2aWNlcy9QYXJhbWV0ZXJzU2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vU2VydmljZXMvUmVnaXN0ZXJBbGxTaGFyZWRTZXJ2aWNlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vU2VydmljZXMvU2VsZWN0aW9uU2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vU2VydmljZXMvU2VydmljZVJlZ2lzdHJ5JztcclxuZXhwb3J0ICogZnJvbSAnLi9FbnVtTWFwcGluZ3MvSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzJztcclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9BcGlTaGFyZWQudHNcbiAqKi8iLCJpbXBvcnQge1xyXG4gIEV2ZW50TGlzdGVuZXJNYW5hZ2VyIGFzIEV2ZW50TGlzdGVuZXJNYW5hZ2VyQ29udHJhY3QsXHJcbiAgVGFibGVhdUV2ZW50SGFuZGxlckZuLFxyXG4gIFRhYmxlYXVFdmVudFR5cGUsXHJcbiAgVGFibGVhdUV2ZW50VW5yZWdpc3RlckZuXHJcbn0gZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IFNpbmdsZUV2ZW50TWFuYWdlciB9IGZyb20gJy4vU2luZ2xlRXZlbnRNYW5hZ2VyJztcclxuXHJcbi8qKlxyXG4gKiBDbGFzcyBkZXNpZ25lZCB0byByZWdpc3RlciBhbmQgdW5yZWdpc3RlciBoYW5kbGVycyBmcm9tIGEgdXNlci4gT25seSB0aG9zZSBldmVudHNcclxuICogd2hpY2ggYXJlIGFkZGVkIHZpYSBBZGROZXdFdmVudFR5cGUgd2lsbCBiZSBzdXBwb3J0ZWQgYnkgdGhpcyBpbnN0YW5jZVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEV2ZW50TGlzdGVuZXJNYW5hZ2VyIGltcGxlbWVudHMgRXZlbnRMaXN0ZW5lck1hbmFnZXJDb250cmFjdCB7XHJcbiAgcHJpdmF0ZSBfZXZlbnRMaXN0ZW5lck1hbmFnZXJzOiB7IFt0YWJsZWF1RXZlbnRUeXBlOiBzdHJpbmddOiBTaW5nbGVFdmVudE1hbmFnZXI7IH07XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuX2V2ZW50TGlzdGVuZXJNYW5hZ2VycyA9IHt9O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlOiBUYWJsZWF1RXZlbnRUeXBlLCBoYW5kbGVyOiBUYWJsZWF1RXZlbnRIYW5kbGVyRm4pOiBUYWJsZWF1RXZlbnRVbnJlZ2lzdGVyRm4ge1xyXG4gICAgaWYgKCF0aGlzLl9ldmVudExpc3RlbmVyTWFuYWdlcnMuaGFzT3duUHJvcGVydHkoZXZlbnRUeXBlKSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGV2ZW50IHR5cGUgOiAke2V2ZW50VHlwZX1gKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5fZXZlbnRMaXN0ZW5lck1hbmFnZXJzW2V2ZW50VHlwZV0uYWRkRXZlbnRMaXN0ZW5lcihoYW5kbGVyKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZTogVGFibGVhdUV2ZW50VHlwZSwgaGFuZGxlcjogVGFibGVhdUV2ZW50SGFuZGxlckZuKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuX2V2ZW50TGlzdGVuZXJNYW5hZ2Vycy5oYXNPd25Qcm9wZXJ0eShldmVudFR5cGUpKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgZXZlbnQgdHlwZSA6ICR7ZXZlbnRUeXBlfWApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLl9ldmVudExpc3RlbmVyTWFuYWdlcnNbZXZlbnRUeXBlXS5yZW1vdmVFdmVudExpc3RlbmVyKGhhbmRsZXIpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGFkZE5ld0V2ZW50VHlwZShldmVudE1hbmFnZXI6IFNpbmdsZUV2ZW50TWFuYWdlcik6IHZvaWQge1xyXG4gICAgdGhpcy5fZXZlbnRMaXN0ZW5lck1hbmFnZXJzW2V2ZW50TWFuYWdlci5ldmVudFR5cGVdID0gZXZlbnRNYW5hZ2VyO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0V2ZW50TGlzdGVuZXJNYW5hZ2VyLnRzXG4gKiovIiwiaW1wb3J0IHtcclxuICBEYXRhVHlwZSxcclxuICBEYXRhVmFsdWUsXHJcbiAgUGFyYW1ldGVyIGFzIFBhcmFtZXRlckNvbnRyYWN0LFxyXG4gIFBhcmFtZXRlckRvbWFpblJlc3RyaWN0aW9uIGFzIFBhcmFtZXRlckRvbWFpblJlc3RyaWN0aW9uQ29udHJhY3QsXHJcbiAgU2hlZXQgYXMgU2hlZXRDb250cmFjdFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBFdmVudExpc3RlbmVyTWFuYWdlciB9IGZyb20gJy4vRXZlbnRMaXN0ZW5lck1hbmFnZXInO1xyXG5pbXBvcnQgeyBQYXJhbWV0ZXJJbXBsIH0gZnJvbSAnLi9JbnRlcm5hbC9QYXJhbWV0ZXJJbXBsJztcclxuXHJcbi8qKlxyXG4gKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgUGFyYW1ldGVyIGNvbnRyYWN0LiBDYWxscyBkb3duIHRvIHRoZSBpbXBsXHJcbiAqIGNsYXNzIGZvciBhbG1vc3QgYWxsIG9mIHRoZSB3b3JrIGl0IGRvZXMuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgUGFyYW1ldGVyIGV4dGVuZHMgRXZlbnRMaXN0ZW5lck1hbmFnZXIgaW1wbGVtZW50cyBQYXJhbWV0ZXJDb250cmFjdCB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcGFyYW1ldGVySW1wbDogUGFyYW1ldGVySW1wbCwgc2hlZXQ6IFNoZWV0Q29udHJhY3QpIHtcclxuICAgIHN1cGVyKCk7XHJcblxyXG4gICAgLy8gSW5pdGlhbGl6ZSBvdXIgZXZlbnQgaGFuZGxpbmcgZm9yIHRoaXMgY2xhc3NcclxuICAgIHRoaXMucGFyYW1ldGVySW1wbC5pbml0aWFsaXplRXZlbnRzKHNoZWV0KS5mb3JFYWNoKGUgPT4gdGhpcy5hZGROZXdFdmVudFR5cGUoZSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBuYW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJJbXBsLm5hbWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGN1cnJlbnRWYWx1ZSgpOiBEYXRhVmFsdWUge1xyXG4gICAgcmV0dXJuIHRoaXMucGFyYW1ldGVySW1wbC5jdXJyZW50VmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGRhdGFUeXBlKCk6IERhdGFUeXBlIHtcclxuICAgIHJldHVybiB0aGlzLnBhcmFtZXRlckltcGwuZGF0YVR5cGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFsbG93YWJsZVZhbHVlcygpOiBQYXJhbWV0ZXJEb21haW5SZXN0cmljdGlvbkNvbnRyYWN0IHtcclxuICAgIHJldHVybiB0aGlzLnBhcmFtZXRlckltcGwuYWxsb3dhYmxlVmFsdWVzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoYW5nZVZhbHVlQXN5bmMobmV3VmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBEYXRlKTogUHJvbWlzZTxEYXRhVmFsdWU+IHtcclxuICAgIHJldHVybiB0aGlzLnBhcmFtZXRlckltcGwuY2hhbmdlVmFsdWVBc3luYyhuZXdWYWx1ZSk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvUGFyYW1ldGVyLnRzXG4gKiovIiwiaW1wb3J0IHsgUG9pbnQgYXMgUG9pbnRDb250cmFjdCB9IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5leHBvcnQgY2xhc3MgUG9pbnQgaW1wbGVtZW50cyBQb2ludENvbnRyYWN0IHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfeDogbnVtYmVyLCBwcml2YXRlIF95OiBudW1iZXIpIHsgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl94O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB5KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5feTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9Qb2ludC50c1xuICoqLyIsImltcG9ydCB7IFNpemUgYXMgU2l6ZUNvbnRyYWN0IH0gZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmV4cG9ydCBjbGFzcyBTaXplIGltcGxlbWVudHMgU2l6ZUNvbnRyYWN0IHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfaGVpZ2h0OiBudW1iZXIsIHByaXZhdGUgX3dpZHRoOiBudW1iZXIpIHsgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGhlaWdodCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2hlaWdodDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgd2lkdGgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl93aWR0aDtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TaXplLnRzXG4gKiovIiwiaW1wb3J0IHtcclxuICBDb2x1bW4gYXMgQ29sdW1uQ29udHJhY3QsXHJcbiAgRGF0YVRhYmxlIGFzIERhdGFUYWJsZUNvbnRyYWN0LFxyXG4gIERhdGFUeXBlLFxyXG4gIERhdGFWYWx1ZSBhcyBEYXRhVmFsdWVDb250cmFjdFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRGF0YVRhYmxlIGltcGxlbWVudHMgRGF0YVRhYmxlQ29udHJhY3Qge1xyXG4gIHByaXZhdGUgX25hbWU6IHN0cmluZztcclxuXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZGF0YTogQXJyYXk8QXJyYXk8RGF0YVZhbHVlQ29udHJhY3Q+PixcclxuICAgIHByaXZhdGUgX2NvbHVtbnM6IEFycmF5PENvbHVtbkNvbnRyYWN0PixcclxuICAgIHByaXZhdGUgX3RvdGFsUm93Q291bnQ6IG51bWJlcixcclxuICAgIHByaXZhdGUgX2lzU3VtbWFyeURhdGE6IGJvb2xlYW4pIHtcclxuICAgICAgICAvLyBUT0RPOiBnZXQgcmlkIG9mIHRoaXMgaW4gcmVkZXNpZ24uXHJcbiAgICAgICAgdGhpcy5fbmFtZSA9IF9pc1N1bW1hcnlEYXRhID8gJ1N1bW1hcnkgRGF0YSBUYWJsZScgOiAnVW5kZXJseWluZyBEYXRhIFRhYmxlJztcclxuICAgIH1cclxuXHJcbiAgcHVibGljIGdldCBuYW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fbmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZGF0YSgpOiBBcnJheTxBcnJheTxEYXRhVmFsdWVDb250cmFjdD4+IHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjb2x1bW5zKCk6IEFycmF5PENvbHVtbkNvbnRyYWN0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29sdW1ucztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdG90YWxSb3dDb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RvdGFsUm93Q291bnQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzU3VtbWFyeURhdGEoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNTdW1tYXJ5RGF0YTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb2x1bW4gaW1wbGVtZW50cyBDb2x1bW5Db250cmFjdCB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZmllbGROYW1lOiBzdHJpbmcsXHJcbiAgICBwcml2YXRlIF9kYXRhVHlwZTogRGF0YVR5cGUsIC8vIFRPRE86IHRoaXMgc2hvdWRsIGJlIGFuIGVudW0gdHlwZVxyXG4gICAgcHJpdmF0ZSBfaXNSZWZlcmVuY2VkOiBib29sZWFuLFxyXG4gICAgcHJpdmF0ZSBfaW5kZXg6IG51bWJlcikge31cclxuXHJcbiAgcHVibGljIGdldCBmaWVsZE5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZE5hbWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGRhdGFUeXBlKCk6IERhdGFUeXBlIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhVHlwZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaXNSZWZlcmVuY2VkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzUmVmZXJlbmNlZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaW5kZXgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9pbmRleDtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEYXRhVmFsdWUgaW1wbGVtZW50cyBEYXRhVmFsdWVDb250cmFjdCB7XHJcbiAgLyogdHNsaW50OmRpc2FibGU6bm8tYW55ICovXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfdmFsdWU6IGFueSxcclxuICAgIHByaXZhdGUgX2Zvcm1hdHRlZFZhbHVlOiBzdHJpbmcpIHt9XHJcblxyXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZm9ybWF0dGVkVmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9mb3JtYXR0ZWRWYWx1ZTtcclxuICB9XHJcbiAgLyogdHNsaW50OmVuYWJsZTpuby1hbnkgKi9cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL01vZGVscy9HZXREYXRhTW9kZWxzLnRzXG4gKiovIiwiZXhwb3J0IGNsYXNzIFRhYmxlYXVFeGNlcHRpb25zIHtcclxuICAvLyBUT0RPLCBBcGlFcnJvckNvZGVzIG5lZWQgdG8gYmUgYWRkZWQgdG8gZXh0ZXJuYWwgaW50ZXJmYWNlcy5cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0V4Y2VwdGlvbnMvVGFibGVhdUV4Y2VwdGlvbnMudHNcbiAqKi8iLCJpbXBvcnQge1xyXG4gIEZpbHRlcixcclxuICBGaWx0ZXJDaGFuZ2VkRXZlbnQgYXMgRmlsdGVyQ2hhbmdlZEV2ZW50Q29udHJhY3QsXHJcbiAgVGFibGVhdUV2ZW50VHlwZSxcclxuICBXb3Jrc2hlZXQgYXMgV29ya3NoZWV0Q29udHJhY3QsXHJcbn0gZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IFRhYmxlYXVXb3Jrc2hlZXRFdmVudCB9IGZyb20gJy4vVGFibGVhdVdvcmtzaGVldEV2ZW50JztcclxuXHJcbmV4cG9ydCBjbGFzcyBGaWx0ZXJDaGFuZ2VkRXZlbnQgZXh0ZW5kcyBUYWJsZWF1V29ya3NoZWV0RXZlbnQgaW1wbGVtZW50cyBGaWx0ZXJDaGFuZ2VkRXZlbnRDb250cmFjdCB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHdvcmtzaGVldDogV29ya3NoZWV0Q29udHJhY3QsIHByaXZhdGUgX2ZpZWxkTmFtZTogc3RyaW5nKSB7XHJcbiAgICBzdXBlcihUYWJsZWF1RXZlbnRUeXBlLkZpbHRlckNoYW5nZWQsIHdvcmtzaGVldCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGZpZWxkTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkTmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRGaWx0ZXJBc3luYygpOiBQcm9taXNlPEZpbHRlcj4ge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdBUEkgY2FsbCBub3QgeWV0IGltcGxtZW1lbnRlZCcpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0V2ZW50cy9GaWx0ZXJDaGFuZ2VkRXZlbnQudHNcbiAqKi8iLCIvKipcclxuICogVGhpcyBpcyB5b3VyIG1haW4uIFRoaXMgaXMgd2hlcmUgeW91IHJlLWV4cG9ydCBldmVyeXRoaW5nIHlvdSB3YW50IHRvIGJlIHB1YmxpY2x5IGF2YWlsYWJsZS5cclxuICpcclxuICogVGhlIGJ1aWxkIGVuZm9yY2VzIHRoYXQgdGhlIGZpbGUgaGFzIHRoZSBzYW1lIG5hbWUgYXMgdGhlIGdsb2JhbCB2YXJpYWJsZSB0aGF0IGlzIGV4cG9ydGVkLlxyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vRGF0YVNvdXJjZUludGVyZmFjZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL0VudW1zJztcclxuZXhwb3J0ICogZnJvbSAnLi9FdmVudEludGVyZmFjZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL0ZpbHRlckludGVyZmFjZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL0dldERhdGFJbnRlcmZhY2VzJztcclxuZXhwb3J0ICogZnJvbSAnLi9QYXJhbWV0ZXJJbnRlcmZhY2VzJztcclxuZXhwb3J0ICogZnJvbSAnLi9TaGVldEludGVyZmFjZXMnO1xyXG5leHBvcnQgeyBBZGRJbiB9IGZyb20gJy4vRXh0ZXJuYWxOYW1lc3BhY2VzL0FkZEluJztcclxuZXhwb3J0IHsgRGFzaGJvYXJkQ29udGVudCB9IGZyb20gJy4vRXh0ZXJuYWxOYW1lc3BhY2VzL0Rhc2hib2FyZENvbnRlbnQnO1xyXG5leHBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4vRXh0ZXJuYWxOYW1lc3BhY2VzL0Vudmlyb25tZW50JztcclxuZXhwb3J0IHsgU2V0dGluZ3MgfSBmcm9tICcuL0V4dGVybmFsTmFtZXNwYWNlcy9TZXR0aW5ncyc7XHJcbmV4cG9ydCB7IFVJIH0gZnJvbSAnLi9FeHRlcm5hbE5hbWVzcGFjZXMvVUknO1xyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1leHRlcm5hbC1jb250cmFjdC9zcmMvQXBpRXh0ZXJuYWxDb250cmFjdC50c1xuICoqLyIsIi8vIEFsbCBlbnVtIHZhbHVlcyBtYWRlIGF2YWlsYWJsZSB0byBBZGRJbiBkZXZlbG9wZXJzLlxyXG4vLyBFbnVtcyBzaG91bGQgYmUga2VwdCBpbiBhbHBoYWJldGljYWwgb3JkZXIuXHJcblxyXG4vKipcclxuICogVGhlIGNvbnRleHQgaW4gd2hpY2ggdGhlIEFkZEluIGlzIGN1cnJlbnRseSBydW5uaW5nLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gQWRkSW5Db250ZXh0IHtcclxuICBEZXNrdG9wID0gJ2Rlc2t0b3AnLFxyXG4gIFNlcnZlciA9ICdzZXJ2ZXInLFxyXG4gIFVua25vd24gPSAndW5rbm93bidcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoZSBtb2RlIGluIHdoaWNoIHRoZSBBZGRJbiBpcyBjdXJyZW50bHkgcnVubmluZy5cclxuICovXHJcbmV4cG9ydCBlbnVtIEFkZEluTW9kZSB7XHJcbiAgQXV0aG9yaW5nID0gJ2F1dGhvcmluZycsXHJcbiAgVmlld2luZyA9ICd2aWV3aW5nJyxcclxuICBVbmtub3duID0gJ3Vua25vd24nXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBXaGF0IHRoZSBvYmplY3QgcmVwcmVzZW50cyBpbiBhIGRhc2hib2FyZC5cclxuICovXHJcbmV4cG9ydCBlbnVtIERhc2hib2FyZE9iamVjdFR5cGUge1xyXG4gIEJsYW5rID0gJ2JsYW5rJyxcclxuICBXb3Jrc2hlZXQgPSAnd29ya3NoZWV0JyxcclxuICBRdWlja0ZpbHRlciA9ICdxdWljay1maWx0ZXInLFxyXG4gIFBhcmFtZXRlckNvbnRyb2wgPSAncGFyYW1ldGVyLWNvbnRyb2wnLFxyXG4gIFBhZ2VGaWx0ZXIgPSAncGFnZS1maWx0ZXInLFxyXG4gIExlZ2VuZCA9ICdsZWdlbmQnLFxyXG4gIFRpdGxlID0gJ3RpdGxlJyxcclxuICBUZXh0ID0gJ3RleHQnLFxyXG4gIEltYWdlID0gJ2ltYWdlJyxcclxuICBXZWJQYWdlID0gJ3dlYi1wYWdlJyxcclxuICBBZGRJbiA9ICdhZGRpbidcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoZSBkaWZmZXJlbnQgdHlwZXMgb2YgZGF0YSBhIHZhbHVlIGNhbiBoYXZlXHJcbiAqL1xyXG5leHBvcnQgZW51bSBEYXRhVHlwZSB7XHJcbiAgU3RyaW5nID0gJ3N0cmluZycsXHJcbiAgSW50ID0gJ2ludCcsXHJcbiAgRmxvYXQgPSAnZmxvYXQnLFxyXG4gIEJvb2wgPSAnYm9vbCcsXHJcbiAgRGF0ZSA9ICdkYXRlJyxcclxuICBEYXRlVGltZSA9ICdkYXRlLXRpbWUnLFxyXG4gIFNwYXRpYWwgPSAnc3BhdGlhbCdcclxufVxyXG5cclxuLyoqXHJcbiAqIFZhbGlkIGRhdGUgcmFuZ2VzIGZvciBhIHJlbGF0aXZlIGRhdGUgZmlsdGVyLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gRGF0ZVJhbmdlVHlwZSB7XHJcbiAgTGFzdCA9ICdsYXN0JyxcclxuICBMYXN0TiA9ICdsYXN0LW4nLFxyXG4gIE5leHQgPSAnbmV4dCcsXHJcbiAgTmV4dE4gPSAnbmV4dC1uJyxcclxuICBDdXJyZW50ID0gJ2N1cnJlbnQnLFxyXG4gIFRvRGF0ZSA9ICd0by1kYXRlJ1xyXG59XHJcblxyXG4vKipcclxuICogVHlwZXMgb2YgZGlhbG9nIGV2ZW50IGZvciBldmVudCBsaXN0ZW5pbmcgYmV0d2VlbiBhIHBhcmVudCBBZGRJbiBhbmQgYSBwb3B1cCBkaWFsb2cuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBEaWFsb2dFdmVudFR5cGUge1xyXG4gIERpYWxvZ01lc3NhZ2UgPSAnZGlhbG9nLW1lc3NhZ2UnLFxyXG4gIERpYWxvZ0V2ZW50ID0gJ2RpYWxvZy1ldmVudCdcclxufVxyXG5cclxuLyoqXHJcbiAqIEFsbCBlcnJvciBjb2RlcyB1c2VkIGJ5IHRoZSBBZGRJbiBBUEkuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBFcnJvckNvZGVzIHtcclxuICAvKipcclxuICAgKiBPbmx5IG9uZSBkaWFsb2cgY2FuIGJlIG9wZW5lZCBhdCB0aW1lIHdpdGggdGhlIFVJIG5hbWVzcGFjZSBmdW5jdGlvbmFsaXR5LlxyXG4gICAqL1xyXG4gIERpYWxvZ0FscmVhZHlPcGVuID0gJ2RpYWxvZy1hbHJlYWR5LW9wZW4nLFxyXG4gIC8qKlxyXG4gICAqIFRoZSBvcGVuIGRpYWxvZyB3YXMgY2xvc2VkIGJ5IHRoZSB1c2VyLlxyXG4gICAqL1xyXG4gIERpYWxvZ0Nsb3NlZEJ5VXNlciA9ICdkaWFsb2ctY2xvc2VkLWJ5LXVzZXInLFxyXG4gIC8qKlxyXG4gICAqIEFuIGVycm9yIG9jY3VycmVkIHdoaWxlIGF0dGVtcHRpbmcgdG8gcGVyZm9ybSBhIGZpbHRlciBvcGVyYXRpb24uXHJcbiAgICovXHJcbiAgRmlsdGVyQ2Fubm90QmVQZXJmb3JtZWQgPSAnZmlsdGVyLWNhbm5vdC1iZS1wZXJmb3JtZWQnLFxyXG4gIC8qKlxyXG4gICAqIEFuIGVycm9yIG9jY3VycmVkIHdpdGhpbiB0aGUgVGFibGVhdSBBZGRJbiBBUEkuIENvbnRhY3QgVGFibGVhdSBTdXBwb3J0LlxyXG4gICAqL1xyXG4gIEludGVybmFsRXJyb3IgPSAnaW50ZXJuYWwtZXJyb3InLFxyXG4gIC8qKlxyXG4gICAqIEFuIGludmFsaWQgYWdncmVnYXRpb24gd2FzIHNwZWNpZmllZCBmb3IgdGhlIGZpbHRlciwgc3VjaCBhcyBzZXR0aW5nIGEgcmFuZ2UgZmlsdGVyIHRvIFwiU1VNKFNhbGVzKVwiIGluc3RlYWQgb2YgXCJTYWxlc1wiLlxyXG4gICAqL1xyXG4gIEludmFsaWRBZ2dyZWdhdGlvbkZpZWxkTmFtZSA9ICdpbnZhbGlkLWFnZ3JlZ2F0aW9uLWZpZWxkLW5hbWUnLFxyXG4gIC8qKlxyXG4gICAqIEEgZGlhbG9nIG11c3QgZmlyc3QgbGF1bmNoIHRvLCBhbmQgc2VuZCBtZXNzYWdlcyBmcm9tLCB0aGUgc2FtZSBkb21haW4gYXMgdGhlIHBhcmVudCBBZGRJbi5cclxuICAgKi9cclxuICBJbnZhbGlkRG9tYWluRGlhbG9nID0gJ2ludmFsaWQtZGlhbG9nLWRvbWFpbicsXHJcbiAgLyoqXHJcbiAgICogQW4gaW52YWxpZCBkYXRlIHdhcyBzcGVjaWZpZWQgaW4gYSBtZXRob2QgdGhhdCByZXF1aXJlZCBhIGRhdGUgcGFyYW1ldGVyLlxyXG4gICAqL1xyXG4gIEludmFsaWREYXRlUGFyYW1ldGVyID0gJ2ludmFsaWQtZGF0ZS1wYXJhbWV0ZXInLFxyXG4gIC8qKlxyXG4gICAqIEEgZmlsdGVyIG9wZXJhdGlvbiB3YXMgYXR0ZW1wdGVkIG9uIGEgZmllbGQgdGhhdCBkb2VzIG5vdCBleGlzdCBpbiB0aGUgZGF0YSBzb3VyY2UuXHJcbiAgICovXHJcbiAgSW52YWxpZEZpbHRlckZpZWxkTmFtZSA9ICdpbnZhbGlkLWZpbHRlci1maWVsZC1uYW1lJyxcclxuICAvKipcclxuICAgKiBBIGZpbHRlciBvcGVyYXRpb24gd2FzIGF0dGVtcHRlZCB1c2luZyBhIHZhbHVlIHRoYXQgaXMgdGhlIHdyb25nIGRhdGEgdHlwZSBvciBmb3JtYXQuXHJcbiAgICovXHJcbiAgSW52YWxpZEZpbHRlckZpZWxkVmFsdWUgPSAnaW52YWxpZC1maWx0ZXItZmllbGQtdmFsdWUnLFxyXG4gIC8qKlxyXG4gICAqIEEgcGFyYW1ldGVyIGlzIG5vdCB0aGUgY29ycmVjdCBkYXRhIHR5cGUgb3IgZm9ybWF0LiBUaGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyIGlzIHNwZWNpZmllZCBpbiB0aGUgRXJyb3IubWVzc2FnZSBmaWVsZC5cclxuICAgKi9cclxuICBJbnZhbGlkUGFyYW1ldGVyID0gJ2ludmFsaWQtcGFyYW1ldGVyJyxcclxuICAvKipcclxuICAgKiBBbiBpbnZhbGlkIGRhdGUgdmFsdWUgd2FzIHNwZWNpZmllZCBpbiBhIFNoZWV0LnNlbGVjdE1hcmtzQXN5bmMoKSBjYWxsIGZvciBhIGRhdGUgZmllbGQuXHJcbiAgICovXHJcbiAgSW52YWxpZFNlbGVjdGlvbkRhdGUgPSAnaW52YWxpZC1zZWxlY3Rpb24tZGF0ZScsXHJcbiAgLyoqXHJcbiAgICogQSBmaWVsZCB3YXMgc3BlY2lmaWVkIGluIGEgU2hlZXQuc2VsZWN0TWFya3NBc3luYygpIGNhbGwgdGhhdCBkb2VzIG5vdCBleGlzdCBpbiB0aGUgZGF0YSBzb3VyY2UuXHJcbiAgICovXHJcbiAgSW52YWxpZFNlbGVjdGlvbkZpZWxkTmFtZSA9ICdpbnZhbGlkLXNlbGVjdGlvbi1maWVsZC1uYW1lJyxcclxuICAvKipcclxuICAgKiBBbiBpbnZhbGlkIHZhbHVlIHdhcyBzcGVjaWZpZWQgaW4gYSBTaGVldC5zZWxlY3RNYXJrc0FzeW5jKCkgY2FsbC5cclxuICAgKi9cclxuICBJbnZhbGlkU2VsZWN0aW9uVmFsdWUgPSAnaW52YWxpZC1zZWxlY3Rpb24tdmFsdWUnLFxyXG4gIC8qKlxyXG4gICAqIEEgcmVxdWlyZWQgcGFyYW1ldGVyIHdhcyBub3Qgc3BlY2lmaWVkLCBudWxsLCBvciBhbiBlbXB0eSBzdHJpbmcvYXJyYXkuXHJcbiAgICovXHJcbiAgTnVsbE9yRW1wdHlQYXJhbWV0ZXIgPSAnbnVsbC1vci1lbXB0eS1wYXJhbWV0ZXInLFxyXG4gIC8qKlxyXG4gICAqIEFuIHVua25vd24gZXZlbnQgbmFtZSB3YXMgc3BlY2lmaWVkIGluIHRoZSBjYWxsIHRvIFZpei5hZGRFdmVudExpc3RlbmVyb3IgVml6LnJlbW92ZUV2ZW50TGlzdGVuZXIuXHJcbiAgICovXHJcbiAgVW5zdXBwb3J0ZWRFdmVudE5hbWUgPSAndW5zdXBwb3J0ZWQtZXZlbnQtbmFtZSdcclxufVxyXG5cclxuLyoqXHJcbiAqICBUeXBlIG9mIGFnZ3JlZ2F0aW9uIG9uIGEgZmllbGQuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBGaWVsZEFnZ3JlYXRpb25UeXBlIHtcclxuICBTdW0gPSAnc3VtJyxcclxuICBBdmcgPSAnYXZnJyxcclxuICBNaW4gPSAnbWluJyxcclxuICBNYXggPSAnbWF4JyxcclxuICBTdGRldiA9ICdzdGRldicsXHJcbiAgU3RkZXZwID0gJ3N0ZGV2cCcsXHJcbiAgVmFyID0gJ3ZhcicsXHJcbiAgVmFycCA9ICd2YXJwJyxcclxuICBDb3VudCA9ICdjb3VudCcsXHJcbiAgQ291bnRkID0gJ2NvdW50ZCcsXHJcbiAgTWVkaWFuID0gJ21lZGlhbicsXHJcbiAgQXR0ciA9ICdhdHRyJyxcclxuICBOb25lID0gJ25vbmUnLFxyXG4gIFllYXIgPSAneWVhcicsXHJcbiAgUXRyID0gJ3F0cicsXHJcbiAgTW9udGggPSAnbW9udGgnLFxyXG4gIERheSA9ICdkYXknLFxyXG4gIEhvdXIgPSAnaG91cicsXHJcbiAgTWludXRlID0gJ21pbnV0ZScsXHJcbiAgU2Vjb25kID0gJ3NlY29uZCcsXHJcbiAgV2VlayA9ICd3ZWVrJyxcclxuICBXZWVrZGF5ID0gJ3dlZWtkYXknLFxyXG4gIE1vbXRoWWVhciA9ICdtb250aC15ZWFyJyxcclxuICBNZHkgPSAnbWR5JyxcclxuICBFbmQgPSAnZW5kJyxcclxuICBUcnVuY1llYXIgPSAndHJ1bmMteWVhcicsXHJcbiAgVHJ1bmNRdHIgPSAndHJ1bmMtcXRyJyxcclxuICBUcnVuY01vbnRoID0gJ3RydW5jLW1vbnRoJyxcclxuICBUcnVuY1dlZWsgPSAndHJ1bmMtd2VlaycsXHJcbiAgVHJ1bmNEYXkgPSAndHJ1bmMtZGF5JyxcclxuICBUcnVuY0hvdXIgPSAndHJ1bmMtaG91cicsXHJcbiAgVHJ1bmNNaW51dGUgPSAndHJ1bmMtbWludXRlJyxcclxuICBUcnVuY1NlY29uZCA9ICd0cnVuYy1zZWNvbmQnLFxyXG4gIFF1YXJ0MSA9ICdxdWFydDEnLFxyXG4gIFF1YXJ0MyA9ICdxdWFydDMnLFxyXG4gIFNrZXduZXNzID0gJ3NrZXduZXNzJyxcclxuICBLdXJ0b3NpcyA9ICdrdXJ0b3NpcycsXHJcbiAgSW5PdXQgPSAnaW4tb3V0JyxcclxuICBVc2VyID0gJ3VzZXInXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSb2xlIG9mIGEgZmllbGQuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBGaWVsZFJvbGVUeXBlIHtcclxuICBEaW1lbnNpb24gPSAnZGltZW5zaW9uJyxcclxuICBNZWFzdXJlID0gJ21lYXN1cmUnLFxyXG4gIFVua25vd24gPSAndW5rbm93bidcclxufVxyXG5cclxuLyoqXHJcbiAqIEFuIGVudW1lcmF0aW9uIG9mIHRoZSB2YWxpZCB0eXBlcyBvZiBmaWx0ZXJzIHRoYXQgY2FuIGJlIGFwcGxpZWQuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBGaWx0ZXJUeXBlIHtcclxuICBDYXRlZ29yaWNhbCA9ICdjYXRlZ29yaWNhbCcsXHJcbiAgUXVhbnRpdGF0aXZlID0gJ3F1YW50aXRhdGl2ZScsXHJcbiAgSGllcmFyY2hpY2FsID0gJ2hpZXJhcmNoaWNhbCcsXHJcbiAgUmVsYXRpdmVEYXRlID0gJ3JlbGF0aXZlLWRhdGEnXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGUgZGlmZmVyZW50IHVwZGF0ZSB0eXBlcyBmb3IgYXBwbHlpbmcgZmlsdGVyXHJcbiAqL1xyXG5leHBvcnQgZW51bSBGaWx0ZXJVcGRhdGVUeXBlIHtcclxuICBBZGQgPSAnYWRkJyxcclxuICBBbGwgPSAnYWxsJyxcclxuICBSZXBsYWNlID0gJ3JlcGxhY2UnLFxyXG4gIFJlbW92ZSA9ICdyZW1vdmUnXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBbiBlbnVtZXJhdGlvbiBkZXNjcmliaW5nIHRoZSBkaWZmZXJlbnQgdHlwZXMgb2YgYWxsb3dhYmxlIHZhbHVlcy5cclxuICogVGhpcyBpcyB1c2VkIGZvciByZXN0cmljdGluZyB0aGUgZG9tYWluIG9mIGEgcGFyYW1ldGVyXHJcbiAqL1xyXG5leHBvcnQgZW51bSBBbGxvd2FibGVWYWx1ZXNUeXBlIHtcclxuICBBbGwgPSAnYWxsJyxcclxuICBMaXN0ID0gJ2xpc3QnLFxyXG4gIFJhbmdlID0gJ3JhbmdlJ1xyXG59XHJcblxyXG4vKipcclxuICogVGhlIG9wdGlvbiBmb3Igc3BlY2lmeWluZyB3aGljaCB2YWx1ZXMgdG8gaW5jbHVkZSBmb3IgZmlsdGVyaW5nXHJcbiAqIEluZGljYXRlcyB3aGF0IHRvIGRvIHdpdGggbnVsbCB2YWx1ZXMgZm9yIGEgZ2l2ZW4gZmlsdGVyIG9yIG1hcmsgc2VsZWN0aW9uIGNhbGwuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBOdWxsT3B0aW9uIHtcclxuICBOdWxsVmFsdWVzID0gJ251bGwtdmFsdWVzJyxcclxuICBOb25OdWxsVmFsdWVzID0gJ25vbi1udWxsLXZhbHVlcycsXHJcbiAgQWxsVmFsdWVzID0gJ2FsbC12YWx1ZXMnXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEYXRlIHBlcmlvZCB1c2VkIGluIGZpbHRlcnMgYW5kIGluIHBhcmFtZXRlcnMuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBQZXJpb2RUeXBlIHtcclxuICBZZWFycyA9ICd5ZWFycycsXHJcbiAgUXVhcnRlcnMgPSAncXVhcnRlcnMnLFxyXG4gIE1vbnRocyA9ICdtb250aHMnLFxyXG4gIFdlZWtzID0gJ3dlZWtzJyxcclxuICBEYXlzID0gJ2RheXMnLFxyXG4gIEhvdXJzID0gJ2hvdXJzJyxcclxuICBNaW51dGVzID0gJ21pbnV0ZXMnLFxyXG4gIFNlY29uZHMgPSAnc2Vjb25kcydcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoZSB0eXBlIG9mIHNoZWV0IGEgU2hlZXQgb2JqZWN0IHJlcHJlc2VudHNcclxuICovXHJcbmV4cG9ydCBlbnVtIFNoZWV0VHlwZSB7XHJcbiAgRGFzaGJvYXJkID0gJ2Rhc2hib2FyZCcsXHJcbiAgU3RvcnkgPSAnc3RvcnknLFxyXG4gIFdvcmtzaGVldCA9ICd3b3Jrc2hlZXQnLFxyXG4gIEFkZEluID0gJ2FkZC1pbidcclxufVxyXG4vKipcclxuICogUmVwcmVzZW50cyBhIGNlcnRhaW4gdHlwZSBvZiBldmVudCB3aGljaCBjYW4gYmUgbGlzdGVuZWQgZm9yXHJcbiAqL1xyXG5leHBvcnQgZW51bSBUYWJsZWF1RXZlbnRUeXBlIHtcclxuICAvKiogVGhlIHNlbGVjdGVkIG1hcmtzIG9uIGEgdmlzdWFsaXphdGlvbiBoYXMgY2hhbmdlZCAqL1xyXG4gIE1hcmtTZWxlY3Rpb25DaGFuZ2VkID0gJ21hcmstc2VsZWN0aW9uLWNoYW5nZWQnLFxyXG5cclxuICAvKiogQSBwYXJhbWV0ZXIgaGFzIGhhZCBpdHMgdmFsdWUgbW9kaWZpZWQgKi9cclxuICBQYXJhbWV0ZXJDaGFuZ2VkID0gJ3BhcmFtZXRlci1jaGFuZ2VkJyxcclxuXHJcbiAgLyoqIEEgZmlsdGVyIGhhcyBjaGFuZ2VkICovXHJcbiAgRmlsdGVyQ2hhbmdlZCA9ICdmaWx0ZXItY2hhbmdlZCdcclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1leHRlcm5hbC1jb250cmFjdC9zcmMvRW51bXMudHNcbiAqKi8iLCJpbXBvcnQge1xyXG4gIFRhYmxlYXVFdmVudFR5cGUsXHJcbiAgVGFibGVhdVdvcmtzaGVldEV2ZW50IGFzIFRhYmxlYXVXb3JrU2hlZXRFdmVudENvbnRyYWN0LFxyXG4gIFdvcmtzaGVldCBhcyBXb3Jrc2hlZXRDb250cmFjdFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBUYWJsZWF1U2hlZXRFdmVudCB9IGZyb20gJy4vVGFibGVhdVNoZWV0RXZlbnQnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFRhYmxlYXVXb3Jrc2hlZXRFdmVudCBleHRlbmRzIFRhYmxlYXVTaGVldEV2ZW50IGltcGxlbWVudHMgVGFibGVhdVdvcmtTaGVldEV2ZW50Q29udHJhY3Qge1xyXG4gIHByaXZhdGUgX3dvcmtzaGVldDogV29ya3NoZWV0Q29udHJhY3Q7XHJcblxyXG4gIHB1YmxpYyBnZXQgd29ya3NoZWV0KCk6IFdvcmtzaGVldENvbnRyYWN0IHtcclxuICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IodHlwZTogVGFibGVhdUV2ZW50VHlwZSwgd29ya3NoZWV0OiBXb3Jrc2hlZXRDb250cmFjdCkge1xyXG4gICAgc3VwZXIodHlwZSwgd29ya3NoZWV0KTtcclxuXHJcbiAgICB0aGlzLl93b3Jrc2hlZXQgPSB3b3Jrc2hlZXQ7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRXZlbnRzL1RhYmxlYXVXb3Jrc2hlZXRFdmVudC50c1xuICoqLyIsImltcG9ydCB7XHJcbiAgU2hlZXQgYXMgU2hlZXRDb250cmFjdCxcclxuICBUYWJsZWF1RXZlbnRUeXBlLFxyXG4gIFRhYmxlYXVTaGVldEV2ZW50IGFzIFRhYmxlYXVTaGVldEV2ZW50Q29udHJhY3RcclxufSBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgVGFibGVhdUV2ZW50IH0gZnJvbSAnLi9UYWJsZWF1RXZlbnQnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFRhYmxlYXVTaGVldEV2ZW50IGV4dGVuZHMgVGFibGVhdUV2ZW50IGltcGxlbWVudHMgVGFibGVhdVNoZWV0RXZlbnRDb250cmFjdCB7XHJcbiAgcHJpdmF0ZSBfc2hlZXQ6IFNoZWV0Q29udHJhY3Q7XHJcblxyXG4gIHB1YmxpYyBnZXQgc2hlZXQoKTogU2hlZXRDb250cmFjdCB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2hlZXQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IodHlwZTogVGFibGVhdUV2ZW50VHlwZSwgc2hlZXQ6IFNoZWV0Q29udHJhY3QpIHtcclxuICAgIHN1cGVyKHR5cGUpO1xyXG5cclxuICAgIHRoaXMuX3NoZWV0ID0gc2hlZXQ7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRXZlbnRzL1RhYmxlYXVTaGVldEV2ZW50LnRzXG4gKiovIiwiaW1wb3J0IHsgVGFibGVhdUV2ZW50IGFzIFRhYmxlYXVFdmVudENvbnRyYWN0LCBUYWJsZWF1RXZlbnRUeXBlIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmV4cG9ydCBjbGFzcyBUYWJsZWF1RXZlbnQgaW1wbGVtZW50cyBUYWJsZWF1RXZlbnRDb250cmFjdCB7XHJcbiAgcHJpdmF0ZSBfdHlwZTogVGFibGVhdUV2ZW50VHlwZTtcclxuXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHR5cGU6IFRhYmxlYXVFdmVudFR5cGUpIHtcclxuICAgIHRoaXMuX3R5cGUgPSB0eXBlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB0eXBlKCk6IFRhYmxlYXVFdmVudFR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3R5cGU7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRXZlbnRzL1RhYmxlYXVFdmVudC50c1xuICoqLyIsImltcG9ydCB7XHJcbiAgQWN0aXZlTWFya3MsXHJcbiAgTWFya3NTZWxlY3RlZEV2ZW50IGFzIE1hcmtzU2VsZWN0ZWRFdmVudENvbnRyYWN0LFxyXG4gIFRhYmxlYXVFdmVudFR5cGUsXHJcbiAgV29ya3NoZWV0IGFzIFdvcmtzaGVldENvbnRyYWN0LFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBUYWJsZWF1V29ya3NoZWV0RXZlbnQgfSBmcm9tICcuL1RhYmxlYXVXb3Jrc2hlZXRFdmVudCc7XHJcblxyXG5leHBvcnQgY2xhc3MgTWFya3NTZWxlY3RlZEV2ZW50IGV4dGVuZHMgVGFibGVhdVdvcmtzaGVldEV2ZW50IGltcGxlbWVudHMgTWFya3NTZWxlY3RlZEV2ZW50Q29udHJhY3Qge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcih3b3Jrc2hlZXQ6IFdvcmtzaGVldENvbnRyYWN0KSB7XHJcbiAgICBzdXBlcihUYWJsZWF1RXZlbnRUeXBlLk1hcmtTZWxlY3Rpb25DaGFuZ2VkLCB3b3Jrc2hlZXQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldE1hcmtzQXN5bmMoKTogUHJvbWlzZTxBY3RpdmVNYXJrcz4ge1xyXG4gICAgcmV0dXJuIHRoaXMud29ya3NoZWV0LmdldFNlbGVjdGVkTWFya3NBc3luYygpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0V2ZW50cy9NYXJrc1NlbGVjdGVkRXZlbnQudHNcbiAqKi8iLCJpbXBvcnQgeyBUYWJsZWF1RXZlbnQsIFRhYmxlYXVFdmVudFR5cGUsIFRhYmxlYXVFdmVudFVucmVnaXN0ZXJGbiB9IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBTaW5nbGVFdmVudE1hbmFnZXIgfSBmcm9tICcuLi9TaW5nbGVFdmVudE1hbmFnZXInO1xyXG5cclxuLyoqXHJcbiAqIFRoaXMgY2xhc3MgaW1wbGVtZW50cyB0aGUgU2luZ2xlRXZlbnRNYW5hZ2VyIGludGVyZmFjZSBmb3IgYSBzaW5nbGUgdHlwZSBvZiBUYWJsZWF1IGV2ZW50XHJcbiAqXHJcbiAqIEB0ZW1wbGF0ZSBURXZlbnRUeXBlIFRoZSBUYWJsZWF1IGV2ZW50IHR5cGUgdGhpcyBjbGFzcyBzcGVjaWFsaXplc1xyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFNpbmdsZUV2ZW50TWFuYWdlckltcGw8VEV2ZW50VHlwZSBleHRlbmRzIFRhYmxlYXVFdmVudD4gaW1wbGVtZW50cyBTaW5nbGVFdmVudE1hbmFnZXIge1xyXG4gIHByaXZhdGUgX2V2ZW50VHlwZTogVGFibGVhdUV2ZW50VHlwZTtcclxuICBwcml2YXRlIF9oYW5kbGVyczogQXJyYXk8KGV2ZW50T2JqOiBURXZlbnRUeXBlKSA9PiB2b2lkPjtcclxuXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKGV2ZW50VHlwZTogVGFibGVhdUV2ZW50VHlwZSkge1xyXG4gICAgdGhpcy5fZXZlbnRUeXBlID0gZXZlbnRUeXBlO1xyXG4gICAgdGhpcy5faGFuZGxlcnMgPSBbXTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZXZlbnRUeXBlKCk6IFRhYmxlYXVFdmVudFR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX2V2ZW50VHlwZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGRFdmVudExpc3RlbmVyKGhhbmRsZXI6IChldmVudE9iajogVEV2ZW50VHlwZSkgPT4gdm9pZCk6IFRhYmxlYXVFdmVudFVucmVnaXN0ZXJGbiB7XHJcbiAgICB0aGlzLl9oYW5kbGVycy5wdXNoKGhhbmRsZXIpO1xyXG4gICAgcmV0dXJuICgpID0+IHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihoYW5kbGVyKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZW1vdmVFdmVudExpc3RlbmVyKGhhbmRsZXI6IChldmVudE9iajogVEV2ZW50VHlwZSkgPT4gdm9pZCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgYmVmb3JlQ291bnQgPSB0aGlzLl9oYW5kbGVycy5sZW5ndGg7XHJcbiAgICB0aGlzLl9oYW5kbGVycyA9IHRoaXMuX2hhbmRsZXJzLmZpbHRlcihoID0+IGggIT09IGhhbmRsZXIpO1xyXG4gICAgcmV0dXJuIGJlZm9yZUNvdW50ID4gdGhpcy5faGFuZGxlcnMubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRyaWdnZXJFdmVudChldmVudEdlbmVyYXRvcjogKCkgPT4gVEV2ZW50VHlwZSk6IHZvaWQge1xyXG4gICAgZm9yIChjb25zdCBoYW5kbGVyIG9mIHRoaXMuX2hhbmRsZXJzKSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgZXZlbnRNb2RlbCA9IGV2ZW50R2VuZXJhdG9yKCk7XHJcbiAgICAgICAgaGFuZGxlcihldmVudE1vZGVsKTtcclxuICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgIC8vIFNpbmNlIHRoaXMgaGFuZGxlciBjb3VsZCBiZSBvdXRzaWRlIG91ciBjb250cm9sLCBqdXN0IGNhdGNoIGFueXRoaW5nIGl0IHRocm93cyBhbmQgY29udGludWUgb25cclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0ludGVybmFsL1NpbmdsZUV2ZW50TWFuYWdlckltcGwudHNcbiAqKi8iLCJpbXBvcnQgeyBBY3RpdmVNYXJrcyB9IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IFZpc3VhbElkIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IERhdGFUYWJsZSB9IGZyb20gJy4uL01vZGVscy9HZXREYXRhTW9kZWxzJztcclxuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gJy4vU2VydmljZVJlZ2lzdHJ5JztcclxuXHJcbi8qKlxyXG4gKiBEZWZpbmVzIHdoaWNoIHR5cGUgb2YgZ2V0RGF0YSBjYWxsIHRvIG1ha2UuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBHZXREYXRhVHlwZSB7XHJcbiAgU3VtbWFyeSA9ICdzdW1tYXJ5JyxcclxuICBVbmRlcmx5aW5nID0gJ3VuZGVybHlpbmcnXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTZXJ2aWNlIGZvciBpbXBsZW1lbnRpbmcgdGhlIGxvZ2ljIGZvciB2YXJpb3VzIGdldERhdGEgY2FsbHNcclxuICpcclxuICogQGludGVyZmFjZSBHZXREYXRhU2VydmljZVxyXG4gKiBAZXh0ZW5kcyB7QXBpU2VydmljZX1cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgR2V0RGF0YVNlcnZpY2UgZXh0ZW5kcyBBcGlTZXJ2aWNlIHtcclxuICAvKipcclxuICAgKiBHZXRzIHRoZSB1bmRlcmx5aW5nIGRhdGEgZm9yIGEgcGFydGljdWxhciB2aXN1YWxcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7VmlzdWFsSWR9IHZpc3VhbElkICBUaGUgdmlzdWFsIHRvIGdldCBkYXRhIGZvclxyXG4gICAqIEBwYXJhbSB7R2V0RGF0YVR5cGV9IGdldFR5cGUgIFRoZSB0eXBlIG9mIGdldERhdGEgY2FsbCB0byBtYWtlXHJcbiAgICogQHBhcmFtIHtib29sZWFufSBpZ25vcmVBbGlhc2VzICBXaGV0aGVyIG9yIG5vdCBhbGlhc2VzIHNob3VsZCBiZSBpZ25vcmVkXHJcbiAgICogQHBhcmFtIHtib29sZWFufSBpZ25vcmVTZWxlY3Rpb24gIFdoZXRoZXIgb3Igbm90IHNlbGVjdGlvbiBzaG91bGQgYmUgaWdub3JlZFxyXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gaW5jbHVkZUFsbENvbHVtbnMgIFNob3VsZCBhbGwgY29sdW1ucyBiZSBpbmNsdWRlZFxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBtYXhSb3dzICBNYXhpbXVtIG51bWJlciBvZiByb3dzIHRvIHJldHVyblxyXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPERhdGFUYWJsZT59ICBEYXRhIHRhYmxlIHdpdGggdGhlIHJlcXVlc3RlZCBkYXRhXHJcbiAgICovXHJcbiAgICBnZXRVbmRlcmx5aW5nRGF0YUFzeW5jKFxyXG4gICAgICB2aXN1YWxJZDogVmlzdWFsSWQsXHJcbiAgICAgIGdldFR5cGU6IEdldERhdGFUeXBlLFxyXG4gICAgICBpZ25vcmVBbGlhc2VzOiBib29sZWFuLFxyXG4gICAgICBpZ25vcmVTZWxlY3Rpb246IGJvb2xlYW4sXHJcbiAgICAgIGluY2x1ZGVBbGxDb2x1bW5zOiBib29sZWFuLFxyXG4gICAgICBtYXhSb3dzOiBudW1iZXIpOiBQcm9taXNlPERhdGFUYWJsZT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgbWFya3MgZm9yIGEgZ2l2ZW4gdmlzdWFsXHJcbiAgICAgKlxyXG4gICAgKiBAcGFyYW0ge1Zpc3VhbElkfSB2aXN1YWxJZCAgVGhlIHZpc3VhbCB0byBnZXQgZGF0YSBmb3JcclxuICAgICogQHJldHVybnMge1Byb21pc2U8QWN0aXZlTWFya3M+fSAgQ29sbGVjdGlvbiBvZiBkYXRhIHRhYmxlcyB3aXRoIHRoZSBhY3RpdmUgbWFya3NcclxuICAgICovXHJcbiAgICBnZXRTZWxlY3RlZE1hcmtzQXN5bmModmlzdWFsSWQ6IFZpc3VhbElkKTogUHJvbWlzZTxBY3RpdmVNYXJrcz47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRoZSBjdXJyZW50bHkgaGlnaGxpZ2h0ZWQgbWFya3MgZm9yIGEgZ2l2ZW4gdmlzdWFsXHJcbiAgICAgKlxyXG4gICAgKiBAcGFyYW0ge1Zpc3VhbElkfSB2aXN1YWxJZCAgVGhlIHZpc3VhbCB0byBnZXQgZGF0YSBmb3JcclxuICAgICogQHJldHVybnMge1Byb21pc2U8QWN0aXZlTWFya3M+fSAgQ29sbGVjdGlvbiBvZiBkYXRhIHRhYmxlcyB3aXRoIHRoZSBhY3RpdmUgbWFya3NcclxuICAgICovXHJcbiAgICBnZXRIaWdobGlnaHRlZE1hcmtzQXN5bmModmlzdWFsSWQ6IFZpc3VhbElkKTogUHJvbWlzZTxBY3RpdmVNYXJrcz47XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9HZXREYXRhU2VydmljZS50c1xuICoqLyIsImltcG9ydCB7IEludGVybmFsQXBpRGlzcGF0Y2hlciB9IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBGaWx0ZXJTZXJ2aWNlSW1wbCB9IGZyb20gJy4vaW1wbC9GaWx0ZXJTZXJ2aWNlSW1wbCc7XHJcbmltcG9ydCB7IEdldERhdGFTZXJ2aWNlSW1wbCB9IGZyb20gJy4vaW1wbC9HZXREYXRhU2VydmljZUltcGwnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlSW1wbCB9IGZyb20gJy4vaW1wbC9Ob3RpZmljYXRpb25TZXJ2aWNlSW1wbCc7XHJcbmltcG9ydCB7IFBhcmFtZXRlcnNTZXJ2aWNlSW1wbCB9IGZyb20gJy4vaW1wbC9QYXJhbWV0ZXJzU2VydmljZUltcGwnO1xyXG5pbXBvcnQgeyBTZWxlY3Rpb25TZXJ2aWNlSW1wbCB9IGZyb20gJy4vaW1wbC9TZWxlY3Rpb25TZXJ2aWNlSW1wbCc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2VSZWdpc3RyeSB9IGZyb20gJy4vU2VydmljZVJlZ2lzdHJ5JztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckFsbFNoYXJlZFNlcnZpY2VzKGRpc3BhdGNoZXI6IEludGVybmFsQXBpRGlzcGF0Y2hlcik6IHZvaWQge1xyXG4gIEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5yZWdpc3RlclNlcnZpY2UobmV3IEdldERhdGFTZXJ2aWNlSW1wbChkaXNwYXRjaGVyKSk7XHJcbiAgQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLnJlZ2lzdGVyU2VydmljZShuZXcgRmlsdGVyU2VydmljZUltcGwoZGlzcGF0Y2hlcikpO1xyXG4gIEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5yZWdpc3RlclNlcnZpY2UobmV3IE5vdGlmaWNhdGlvblNlcnZpY2VJbXBsKGRpc3BhdGNoZXIpKTtcclxuICBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UucmVnaXN0ZXJTZXJ2aWNlKG5ldyBQYXJhbWV0ZXJzU2VydmljZUltcGwoZGlzcGF0Y2hlcikpO1xyXG4gIEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5yZWdpc3RlclNlcnZpY2UobmV3IFNlbGVjdGlvblNlcnZpY2VJbXBsKGRpc3BhdGNoZXIpKTtcclxuICAvLyBUT0RPIC0gbW9yZSBzaGFyZWQgc2VydmljZXNcclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NlcnZpY2VzL1JlZ2lzdGVyQWxsU2hhcmVkU2VydmljZXMudHNcbiAqKi8iLCJpbXBvcnQge1xyXG4gIEZpbHRlck9wdGlvbnMsXHJcbiAgRmlsdGVyVXBkYXRlVHlwZSxcclxuICBOdWxsT3B0aW9uLFxyXG4gIFJhbmdlRmlsdGVyT3B0aW9uc1xyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7XHJcbiAgQ29tbWFuZEVycm9yLFxyXG4gIEV4ZWN1dGVQYXJhbWV0ZXJzLFxyXG4gIEludGVybmFsQXBpRGlzcGF0Y2hlcixcclxuICBQYXJhbWV0ZXJJZCxcclxuICBWZXJiSWQsXHJcbiAgVmlzdWFsSWRcclxufSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBQYXJhbSB9IGZyb20gJ0B0YWJsZWF1L2FwaS11dGlscyc7XHJcblxyXG5pbXBvcnQgeyBFeHRlcm5hbFRvSW50ZXJuYWxFbnVtTWFwcGluZ3MgYXMgRW51bUNvbnZlcnRlciB9IGZyb20gJy4uLy4uL0VudW1NYXBwaW5ncy9FeHRlcm5hbFRvSW50ZXJuYWxFbnVtTWFwcGluZ3MnO1xyXG5cclxuaW1wb3J0IHsgRmlsdGVyU2VydmljZSB9IGZyb20gJy4uL0ZpbHRlclNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXJ2aWNlTmFtZXMgfSBmcm9tICcuLi9TZXJ2aWNlUmVnaXN0cnknO1xyXG5cclxuZXhwb3J0IGNsYXNzIEZpbHRlclNlcnZpY2VJbXBsIGltcGxlbWVudHMgRmlsdGVyU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBfZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IoZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyKSB7XHJcbiAgICB0aGlzLl9kaXNwYXRjaGVyID0gZGlzcGF0Y2hlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2VydmljZU5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBTZXJ2aWNlTmFtZXMuRmlsdGVyO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFwcGx5RmlsdGVyQXN5bmMoXHJcbiAgICB2aXN1YWxJZDogVmlzdWFsSWQsXHJcbiAgICBmaWVsZE5hbWU6IHN0cmluZyxcclxuICAgIHZhbHVlczogQXJyYXk8c3RyaW5nPixcclxuICAgIHVwZGF0ZVR5cGU6IEZpbHRlclVwZGF0ZVR5cGUsXHJcbiAgICBmaWx0ZXJPcHRpb25zOiBGaWx0ZXJPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgICAgaWYgKCFQYXJhbS5pc1ZhbGlkRW51bVZhbHVlPEZpbHRlclVwZGF0ZVR5cGU+KHVwZGF0ZVR5cGUsIEZpbHRlclVwZGF0ZVR5cGUpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHZhbHVlIGZvciBwYXJhbWV0ZXIgRmlsdGVyVXBkYXRlVHlwZScpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHZlcmIgPSBWZXJiSWQuQXBwbHlDYXRlZ29yaWNhbEZpbHRlcjtcclxuICAgICAgY29uc3QgcGFyYW1ldGVyczogRXhlY3V0ZVBhcmFtZXRlcnMgPSB7fTtcclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5WaXN1YWxJZF0gPSB2aXN1YWxJZDtcclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5GaWVsZE5hbWVdID0gZmllbGROYW1lO1xyXG4gICAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLkZpbHRlclZhbHVlc10gPSB2YWx1ZXM7XHJcbiAgICAgIHBhcmFtZXRlcnNbUGFyYW1ldGVySWQuRmlsdGVyVXBkYXRlVHlwZV0gPSB1cGRhdGVUeXBlO1xyXG4gICAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLklzRXhjbHVkZU1vZGVdID1cclxuICAgICAgICAoZmlsdGVyT3B0aW9ucyA9PT0gdW5kZWZpbmVkIHx8IGZpbHRlck9wdGlvbnMuaXNFeGNsdWRlTW9kZSA9PT0gdW5kZWZpbmVkKSA/IGZhbHNlIDogZmlsdGVyT3B0aW9ucy5pc0V4Y2x1ZGVNb2RlO1xyXG5cclxuICAgICAgcmV0dXJuIHRoaXMuX2Rpc3BhdGNoZXIuZXhlY3V0ZSh2ZXJiLCBwYXJhbWV0ZXJzKS50aGVuPHN0cmluZz4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgIGNvbnN0IGVycm9yID0gcmVzcG9uc2UucmVzdWx0IGFzIENvbW1hbmRFcnJvcjtcclxuICAgICAgICBpZiAoIShlcnJvci5lcnJvckNvZGUgPT09IG51bGwgfHwgZXJyb3IuZXJyb3JDb2RlID09PSB1bmRlZmluZWQpKSB7XHJcbiAgICAgICAgICAvLyBUT0RPOiBjb21lIGJhY2sgYW5kIGltcGxlbWVudCBlcnJvciBoYW5kbGluZyBsb2dpY1xyXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFcnJvciBBcHBseWluZyBGaWx0ZXI6ICcgKyBlcnJvci5lcnJvckNvZGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmllbGROYW1lO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgcHVibGljIGFwcGx5UmFuZ2VGaWx0ZXJBc3luYyh2aXN1YWxJZDogVmlzdWFsSWQsIGZpZWxkTmFtZTogc3RyaW5nLCBmaWx0ZXJPcHRpb25zOiBSYW5nZUZpbHRlck9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgaWYgKCFmaWx0ZXJPcHRpb25zKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyBQYXJhbWV0ZXI6IFJhbmdlRmlsdGVyT3B0aW9ucycpO1xyXG4gICAgfVxyXG4gICAgUGFyYW0udmVyaWZ5UmFuZ2VQYXJhbVR5cGUoZmlsdGVyT3B0aW9ucy5taW4sIGZpbHRlck9wdGlvbnMubWF4KTtcclxuXHJcbiAgICBjb25zdCB2ZXJiID0gVmVyYklkLkFwcGx5UmFuZ2VGaWx0ZXI7XHJcbiAgICBjb25zdCBwYXJhbWV0ZXJzOiBFeGVjdXRlUGFyYW1ldGVycyA9IHt9O1xyXG5cclxuICAgIGlmIChmaWx0ZXJPcHRpb25zLm1pbikge1xyXG4gICAgICBsZXQgbWluOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgICAgIGlmIChmaWx0ZXJPcHRpb25zLm1pbiBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICBtaW4gPSBQYXJhbS5zZXJpYWxpemVEYXRlRm9yUGxhdGZvcm0oZmlsdGVyT3B0aW9ucy5taW4pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG1pbiA9IGZpbHRlck9wdGlvbnMubWluO1xyXG4gICAgICB9XHJcbiAgICAgIHBhcmFtZXRlcnNbUGFyYW1ldGVySWQuRmlsdGVyUmFuZ2VNaW5dID0gbWluO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmaWx0ZXJPcHRpb25zLm1heCkge1xyXG4gICAgICBsZXQgbWF4OiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgICAgIGlmIChmaWx0ZXJPcHRpb25zLm1heCBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICBtYXggPSBQYXJhbS5zZXJpYWxpemVEYXRlRm9yUGxhdGZvcm0oZmlsdGVyT3B0aW9ucy5tYXgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG1heCA9IGZpbHRlck9wdGlvbnMubWF4O1xyXG4gICAgICB9XHJcbiAgICAgIHBhcmFtZXRlcnNbUGFyYW1ldGVySWQuRmlsdGVyUmFuZ2VNYXhdID0gbWF4O1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChmaWx0ZXJPcHRpb25zLm51bGxPcHRpb24pIHtcclxuICAgICAgaWYgKCFQYXJhbS5pc1ZhbGlkRW51bVZhbHVlPE51bGxPcHRpb24+KGZpbHRlck9wdGlvbnMubnVsbE9wdGlvbiwgTnVsbE9wdGlvbikpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdmFsdWUgZm9yIHBhcmFtZXRlciBOdWxsT3B0aW9uJyk7XHJcbiAgICAgIH1cclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5GaWx0ZXJSYW5nZU51bGxPcHRpb25dID0gRW51bUNvbnZlcnRlci5udWxsT3B0aW9ucy5jb252ZXJ0KGZpbHRlck9wdGlvbnMubnVsbE9wdGlvbik7XHJcbiAgICB9XHJcbiAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLkZpZWxkTmFtZV0gPSBmaWVsZE5hbWU7XHJcbiAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLlZpc3VhbElkXSA9IHZpc3VhbElkO1xyXG5cclxuICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUodmVyYiwgcGFyYW1ldGVycykudGhlbjxzdHJpbmc+KHJlc3BvbnNlID0+IHtcclxuICAgICAgcmV0dXJuIGZpZWxkTmFtZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsZWFyRmlsdGVyQXN5bmModmlzdWFsSWQ6IFZpc3VhbElkLCBmaWVsZE5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICBjb25zdCB2ZXJiID0gVmVyYklkLkNsZWFyRmlsdGVyO1xyXG4gICAgbGV0IHBhcmFtZXRlcnM6IEV4ZWN1dGVQYXJhbWV0ZXJzID0ge307XHJcbiAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLlZpc3VhbElkXSA9IHZpc3VhbElkO1xyXG4gICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5GaWVsZE5hbWVdID0gZmllbGROYW1lO1xyXG4gICAgcmV0dXJuIHRoaXMuX2Rpc3BhdGNoZXIuZXhlY3V0ZSh2ZXJiLCBwYXJhbWV0ZXJzKS50aGVuPHN0cmluZz4ocmVzcG9zbmUgPT4ge1xyXG4gICAgICByZXR1cm4gZmllbGROYW1lO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvU2VydmljZXMvaW1wbC9GaWx0ZXJTZXJ2aWNlSW1wbC50c1xuICoqLyIsIi8qKlxyXG4gKiBUaGlzIGlzIHlvdXIgbWFpbi4gVGhpcyBpcyB3aGVyZSB5b3UgcmUtZXhwb3J0IGV2ZXJ5dGhpbmcgeW91IHdhbnQgdG8gYmUgcHVibGljbHkgYXZhaWxhYmxlLlxyXG4gKlxyXG4gKiBUaGUgYnVpbGQgZW5mb3JjZXMgdGhhdCB0aGUgZmlsZSBoYXMgdGhlIHNhbWUgbmFtZSBhcyB0aGUgZ2xvYmFsIHZhcmlhYmxlIHRoYXQgaXMgZXhwb3J0ZWQuXHJcbiAqL1xyXG5cclxuZXhwb3J0IHsgRW51bUNvbnZlcnRlciB9IGZyb20gJy4vRW51bUNvbnZlcnRlcic7XHJcbmV4cG9ydCB7IFBhcmFtIH0gZnJvbSAnLi9QYXJhbSc7XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXV0aWxzL3NyYy9BcGlVdGlscy50c1xuICoqLyIsIi8qKlxyXG4gKiBUaGlzIGNsYXNzIGNvbnZlcnRzIGZyb20gYSBzb3VyY2UgZW51bSB2YWx1ZSB0byBkZXN0aW5hdGlvbiBlbnVtXHJcbiAqIHZhbHVlIGdpdmVuIGEgbWFwcGluZyBmcm9tIHNvdXJjZSB0byBkZXN0aW5hdGlvbiB3aGVuIGNvbnN0cnVjdGVkLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEVudW1Db252ZXJ0ZXI8VFNvdXJjZVR5cGUgZXh0ZW5kcyBzdHJpbmcsIFREZXN0aW5hdGlvblR5cGU+IHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9tYXBwaW5nczogeyBbZW51bVZhbDogc3RyaW5nXTogVERlc3RpbmF0aW9uVHlwZTsgfSxcclxuICAgIHByaXZhdGUgX2RlZmF1bHRWYWw/OiBURGVzdGluYXRpb25UeXBlKSB7IH1cclxuXHJcbiAgcHVibGljIGNvbnZlcnQoZW51bVZhbDogVFNvdXJjZVR5cGUsIHRocm93SWZNaXNzaW5nPzogYm9vbGVhbik6IFREZXN0aW5hdGlvblR5cGUge1xyXG4gICAgaWYgKHRoaXMuX21hcHBpbmdzLmhhc093blByb3BlcnR5KGVudW1WYWwpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9tYXBwaW5nc1tlbnVtVmFsIGFzIHN0cmluZ107XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuX2RlZmF1bHRWYWwgIT09IHVuZGVmaW5lZCAmJiAhdGhyb3dJZk1pc3NpbmcpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2RlZmF1bHRWYWw7XHJcbiAgICB9XHJcblxyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdNYXBwaW5nIG5vdCBmb3VuZCBmb3IgJyArIGVudW1WYWwpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS11dGlscy9zcmMvRW51bUNvbnZlcnRlci50c1xuICoqLyIsImV4cG9ydCBjbGFzcyBQYXJhbSB7XHJcbiAgLyoqXHJcbiAgICogVmVyaWZpZXMgdGhhdCBhbiBpbmNvbWluZyBwYXJhbWV0ZXIgaXMgJ3RydXRoeScgYW5kIHRocm93c1xyXG4gICAqIGFuIGVycm9yIGlmIGl0J3Mgbm90LiBUaGlzIHdpbGwgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIHZhbHVlXHJcbiAgICogaXMgbnVsbCwgdW5kZWZpbmVkLCBOYU4sIHRoZSBlbXB0eSBzdHJpbmcsIDAsIG9yIGZhbHNlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGFyZ3VtZW50VmFsdWUgdmFsdWUgdG8gdmVyaWZ5XHJcbiAgICogQHBhcmFtIGFyZ3VtZW50TmFtZSBuYW1lIG9mIGFyZ3VtZW50IHRvIHZlcmlmeVxyXG4gICAqL1xyXG4gIC8qdHNsaW50OmRpc2FibGUtbmV4dC1saW5lICovXHJcbiAgcHVibGljIHN0YXRpYyB2ZXJpZnlWYWx1ZShhcmd1bWVudFZhbHVlOiBhbnksIGFyZ3VtZW50TmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoIWFyZ3VtZW50VmFsdWUpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdWYWx1ZSBpcyBpbnZhbGlkIGZvciBhcmd1bWVudDogJyArIGFyZ3VtZW50TmFtZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWZXJpZmllcyB0aGF0IGEgc3RyaW5nIGlzIHZhbGlkLiAgVGhyb3dzIGFuIGVycm9yIGlmIHRoZSBzdHJpbmcgaXNcclxuICAgKiBudWxsLCB1bmRlZmluZWQsIG9yIE5hTi5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBhcmd1bWVudFZhbHVlIHZhbHVlIHRvIHZlcmlmeVxyXG4gICAqIEBwYXJhbSBhcmd1bWVudE5hbWUgbmFtZSBvZiBhcmd1bWVudCB0byB2ZXJpZnlcclxuICAgKi9cclxuICBwdWJsaWMgc3RhdGljIHZlcmlmeVN0cmluZyhhcmd1bWVudFZhbHVlOiBzdHJpbmcsIGFyZ3VtZW50TmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoYXJndW1lbnRWYWx1ZSA9PT0gbnVsbCB8fCBhcmd1bWVudFZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTdHJpbmcgdmFsdWUgaXMgaW52YWxpZCBmb3IgYXJndW1lbnQ6ICcgKyBhcmd1bWVudE5hbWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmVyaWZpZXMgdGhlIHZhbHVlIGlzIHBhcnQgb2YgdGhlIEVudW1cclxuICAgKlxyXG4gICAqIFN0cmluZyBlbnVtcyBhcmUge3N0cmluZyA6IHN0cmluZ30gZGljdGlvbmFyaWVzIHdoaWNoIGFyZSBub3QgcmV2ZXJzZSBtYXBwYWJsZVxyXG4gICAqIFRoaXMgaXMgYW4gdWdseSB3b3JrYXJvdW5kXHJcbiAgICogQHBhcmFtIHZhbHVlIHZhbHVlIHRvIHZlcmlmeVxyXG4gICAqIEBwYXJhbSBlbnVtVHlwZSBlbnVtIHRvIHZlcmlmeSBhZ2FpbnN0XHJcbiAgICovXHJcbiAgLyogdHNsaW50OmRpc2FibGU6bm8tYW55ICovXHJcbiAgcHVibGljIHN0YXRpYyBpc1ZhbGlkRW51bVZhbHVlPEVudW1UeXBlPih2YWx1ZTogRW51bVR5cGUsIGVudW1UeXBlOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGxldCBpc1ZhbGlkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBPYmplY3Qua2V5cyhlbnVtVHlwZSkuZm9yRWFjaCgoZW51bUtleSkgPT4ge1xyXG4gICAgICBpZiAoZW51bVR5cGVbZW51bUtleV0gPT09IHZhbHVlLnRvU3RyaW5nKCkpIHtcclxuICAgICAgICBpc1ZhbGlkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gaXNWYWxpZDtcclxuICB9XHJcbiAgLyogdHNsaW50OmVuYWJsZTpuby1hbnkgKi9cclxuXHJcbiAgLyoqXHJcbiAgICogc2VyaWFsaXplcyB0aGUgZGF0ZSBpbnRvIHRoZSBmb3JtYXQgdGhhdCB0aGUgc2VydmVyIGV4cGVjdHMuXHJcbiAgICogQHBhcmFtIGRhdGUgdGhlIGRhdGUgdG8gc2VyaWFsaXplXHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBzZXJpYWxpemVEYXRlRm9yUGxhdGZvcm0oZGF0ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB5ZWFyOiBudW1iZXIgPSBkYXRlLmdldFVUQ0Z1bGxZZWFyKCk7XHJcbiAgICBjb25zdCBtb250aDogbnVtYmVyID0gZGF0ZS5nZXRVVENNb250aCgpICsgMTtcclxuICAgIGNvbnN0IGRheTogbnVtYmVyID0gZGF0ZS5nZXRVVENEYXRlKCk7XHJcbiAgICBjb25zdCBoaDogbnVtYmVyID0gZGF0ZS5nZXRVVENIb3VycygpO1xyXG4gICAgY29uc3QgbW06IG51bWJlciA9IGRhdGUuZ2V0VVRDTWludXRlcygpO1xyXG4gICAgY29uc3Qgc2VjOiBudW1iZXIgPSBkYXRlLmdldFVUQ1NlY29uZHMoKTtcclxuICAgIHJldHVybiB5ZWFyICsgJy0nICsgbW9udGggKyAnLScgKyBkYXkgKyAnICcgKyBoaCArICc6JyArIG1tICsgJzonICsgc2VjO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBzZXJpYWxpemVCb29sZWFuRm9yUGxhdGZvcm0oYm9vbDogYm9vbGVhbik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYm9vbCA/ICd0cnVlJyA6ICdmYWxzZSc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIHNlcmlhbGl6ZU51bWJlckZvclBsYXRmb3JtKG51bTogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBudW0udG9TdHJpbmcoMTApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmVyaWZpZXMgdGhlIHBhcmFtcyBtaW4gYW5kIG1heCBmb3IgYXBwbHlpbmcgcmFuZ2UgZmlsdGVyXHJcbiAgICogQHBhcmFtIG1pbiByYW5nZSBtaW5cclxuICAgKiBAcGFyYW0gbWF4IHJhbmdlIG1heFxyXG4gICAqL1xyXG4gIC8qIHRzbGludDpkaXNhYmxlOm5vLWFueSAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgdmVyaWZ5UmFuZ2VQYXJhbVR5cGUobWluOiBhbnksIG1heDogYW55KTogdm9pZCB7XHJcbiAgLyogdHNsaW50OmVuYWJsZTpuby1hbnkgKi9cclxuICAgIGlmICghbWluICYmICFtYXgpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIFBhcmFtZXRlcjogQXQgbGVhc3Qgb25lIG9mIG1pbiBvciBtYXggaXMgcmVxdWlyZWQnKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIVBhcmFtLmlzVHlwZU51bWJlcihtaW4pICYmICFQYXJhbS5pc1R5cGVEYXRlKG1pbikpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFBhcmFtZXRlciBUeXBlOiBPbmx5IERhdGUgYW5kIG51bWJlciBhcmUgYWxsb3dlZCBmb3IgcGFyYW1ldGVyIG1pbicpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghUGFyYW0uaXNUeXBlTnVtYmVyKG1heCkgJiYgIVBhcmFtLmlzVHlwZURhdGUobWF4KSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgUGFyYW1ldGVyIFR5cGU6IE9ubHkgRGF0ZSBhbmQgbnVtYmVyIGFyZSBhbGxvd2VkIGZvciBwYXJhbWV0ZXIgbWF4Jyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHR5cGVvZihtaW4pICE9PSB0eXBlb2YobWF4KSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgUGFyYW1ldGVyIFR5cGU6IFBhcmFtZXRlcnMgbWluIGFuZCBtYXggc2hvdWxkIGJlIG9mIHRoZSBzYW1lIHR5cGUnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZlcmlmaWVzIHRoZSBpbnB1dCBpcyBhIG51bWJlclxyXG4gICAqL1xyXG4gIC8qIHRzbGludDpkaXNhYmxlOm5vLWFueSAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgaXNUeXBlTnVtYmVyKGlucHV0OiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0eXBlb2YoaW5wdXQpID09PSAnbnVtYmVyJyB8fCBpbnB1dCBpbnN0YW5jZW9mIE51bWJlcjtcclxuICB9XHJcbiAgLyogdHNsaW50OmVuYWJsZTpuby1hbnkgKi9cclxuXHJcbiAgLyoqXHJcbiAgICogVmVyaWZpZXMgdGhlIGlucHV0IGlzIGEgRGF0ZVxyXG4gICAqL1xyXG4gIC8qIHRzbGludDpkaXNhYmxlOm5vLWFueSAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgaXNUeXBlRGF0ZShpbnB1dDogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gaW5wdXQgaW5zdGFuY2VvZiBEYXRlO1xyXG4gIH1cclxuICAvKiB0c2xpbnQ6ZW5hYmxlOm5vLWFueSAqL1xyXG5cclxuICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55ICovXHJcbiAgcHVibGljIHN0YXRpYyBpc1R5cGVTdHJpbmcoaW5wdXQ6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHR5cGVvZihpbnB1dCkgPT09ICdzdHJpbmcnIHx8IGlucHV0IGluc3RhbmNlb2YgU3RyaW5nO1xyXG4gIH1cclxuXHJcbiAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueSAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgaXNUeXBlQm9vbChpbnB1dDogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHlwZW9mKGlucHV0KSA9PT0gJ2Jvb2xlYW4nIHx8IGlucHV0IGluc3RhbmNlb2YgQm9vbGVhbjtcclxuICB9XHJcblxyXG4gIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnkgKi9cclxuICBwdWJsaWMgc3RhdGljIHNlcmlhbGl6ZVBhcmFtdGVyVmFsdWUodmFsdWU6IGFueSk6IHN0cmluZyB7XHJcbiAgICBpZiAoUGFyYW0uaXNUeXBlTnVtYmVyKHZhbHVlKSkge1xyXG4gICAgICByZXR1cm4gUGFyYW0uc2VyaWFsaXplTnVtYmVyRm9yUGxhdGZvcm0odmFsdWUgYXMgbnVtYmVyKTtcclxuICAgIH0gZWxzZSBpZiAoUGFyYW0uaXNUeXBlRGF0ZSh2YWx1ZSkpIHtcclxuICAgICAgcmV0dXJuIFBhcmFtLnNlcmlhbGl6ZURhdGVGb3JQbGF0Zm9ybSh2YWx1ZSBhcyBEYXRlKTtcclxuICAgIH0gZWxzZSBpZiAoUGFyYW0uaXNUeXBlQm9vbCh2YWx1ZSkpIHtcclxuICAgICAgcmV0dXJuIFBhcmFtLnNlcmlhbGl6ZUJvb2xlYW5Gb3JQbGF0Zm9ybSh2YWx1ZSBhcyBib29sZWFuKTtcclxuICAgIH0gZWxzZSBpZiAoUGFyYW0uaXNUeXBlU3RyaW5nKHZhbHVlKSkge1xyXG4gICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1ZhbHVlIGlzIGludmFsaWQgZm9yIGFyZ3VtZW50OiB2YWx1ZScpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS11dGlscy9zcmMvUGFyYW0udHNcbiAqKi8iLCJpbXBvcnQgeyBOdWxsT3B0aW9uIGFzIEV4dGVybmFsTnVsbE9wdGlvbiB9IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IE51bGxPcHRpb24gYXMgSW50ZXJuYWxOdWxsT3B0aW9uIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IEVudW1Db252ZXJ0ZXIgfSBmcm9tICdAdGFibGVhdS9hcGktdXRpbHMnO1xyXG5cclxuLyogdHNsaW50OmRpc2FibGU6dHlwZWRlZiAtIERpc2FibGUgdGhpcyB0byBtYWtlIGRlY2xhcmluZyB0aGVzZSBjbGFzc2VzIGEgYml0IGVhc2llciAqL1xyXG4vKipcclxuICogTWFwcyBlbnVtcyB1c2VkIGJ5IHRoZSBleHRlcm5hbC1hcGktY29udHJhY3QgdG8gdGhlIGVudW1zIHVzZWRcclxuICogaW4gdGhlIGludGVybmFsLWFwaS1jb250cmFjdCwgd2hpY2ggZGV2ZWxvcGVycyBjb2RlIGFnYWluc3QuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRXh0ZXJuYWxUb0ludGVybmFsRW51bU1hcHBpbmdzIHtcclxuICBwdWJsaWMgc3RhdGljIG51bGxPcHRpb25zID0gbmV3IEVudW1Db252ZXJ0ZXI8RXh0ZXJuYWxOdWxsT3B0aW9uLCBJbnRlcm5hbE51bGxPcHRpb24+KHtcclxuICAgIFtFeHRlcm5hbE51bGxPcHRpb24uQWxsVmFsdWVzXTogSW50ZXJuYWxOdWxsT3B0aW9uLkFsbFZhbHVlcyxcclxuICAgIFtFeHRlcm5hbE51bGxPcHRpb24uTm9uTnVsbFZhbHVlc106IEludGVybmFsTnVsbE9wdGlvbi5Ob25OdWxsVmFsdWVzLFxyXG4gICAgW0V4dGVybmFsTnVsbE9wdGlvbi5Ob25OdWxsVmFsdWVzXTogSW50ZXJuYWxOdWxsT3B0aW9uLk51bGxWYWx1ZXNcclxuICB9KTtcclxufVxyXG4vKiB0c2xpbnQ6ZW5hYmxlOnR5cGVkZWYgKi9cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FbnVtTWFwcGluZ3MvRXh0ZXJuYWxUb0ludGVybmFsRW51bU1hcHBpbmdzLnRzXG4gKiovIiwiaW1wb3J0IHsgQWN0aXZlTWFya3MsIERhdGFUeXBlIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHtcclxuICBEYXRhVGFibGUgYXMgRGF0YVRhYmxlSW50ZXJuYWxDb250cmFjdCxcclxuICBFeGVjdXRlUGFyYW1ldGVycyxcclxuICBIaWdobGlnaHRlZE1hcmtzVGFibGUsXHJcbiAgSW50ZXJuYWxBcGlEaXNwYXRjaGVyLFxyXG4gIFBhcmFtZXRlcklkLFxyXG4gIFNlbGVjdGVkTWFya3NUYWJsZSxcclxuICBVbmRlcmx5aW5nRGF0YVRhYmxlLFxyXG4gIFZlcmJJZCxcclxuICBWaXN1YWxJZCxcclxufSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgQ29sdW1uLCBEYXRhVGFibGUsIERhdGFWYWx1ZSB9IGZyb20gJy4uLy4uL01vZGVscy9HZXREYXRhTW9kZWxzJztcclxuaW1wb3J0IHsgR2V0RGF0YVNlcnZpY2UsIEdldERhdGFUeXBlIH0gZnJvbSAnLi4vR2V0RGF0YVNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXJ2aWNlTmFtZXMgfSBmcm9tICcuLi9TZXJ2aWNlUmVnaXN0cnknO1xyXG5cclxuZXhwb3J0IGNsYXNzIEdldERhdGFTZXJ2aWNlSW1wbCBpbXBsZW1lbnRzIEdldERhdGFTZXJ2aWNlIHtcclxuICBwcml2YXRlIF9kaXNwYXRjaGVyOiBJbnRlcm5hbEFwaURpc3BhdGNoZXI7XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihkaXNwYXRjaGVyOiBJbnRlcm5hbEFwaURpc3BhdGNoZXIpIHtcclxuICAgIHRoaXMuX2Rpc3BhdGNoZXIgPSBkaXNwYXRjaGVyO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzZXJ2aWNlTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIFNlcnZpY2VOYW1lcy5HZXREYXRhO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFVuZGVybHlpbmdEYXRhQXN5bmMoXHJcbiAgICB2aXN1YWxJZDogVmlzdWFsSWQsXHJcbiAgICBnZXRUeXBlOiBHZXREYXRhVHlwZSxcclxuICAgIGlnbm9yZUFsaWFzZXM6IGJvb2xlYW4sXHJcbiAgICBpZ25vcmVTZWxlY3Rpb246IGJvb2xlYW4sXHJcbiAgICBpbmNsdWRlQWxsQ29sdW1uczogYm9vbGVhbixcclxuICAgIG1heFJvd3M6IG51bWJlcik6IFByb21pc2U8RGF0YVRhYmxlPiB7XHJcbiAgICAgIC8vIENyZWF0ZSBhbGwgb2Ygb3VyIHBhcmFtZXRlcnNcclxuICAgICAgY29uc3QgdmVyYiA9IGdldFR5cGUgPT09IEdldERhdGFUeXBlLlN1bW1hcnkgPyBWZXJiSWQuR2V0RGF0YVN1bW1hcnlEYXRhIDogVmVyYklkLkdldFVuZGVybHlpbmdEYXRhO1xyXG4gICAgICBjb25zdCBwYXJhbWV0ZXJzOiBFeGVjdXRlUGFyYW1ldGVycyA9IHt9O1xyXG4gICAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLlZpc3VhbElkXSA9IHZpc3VhbElkO1xyXG4gICAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLklnbm9yZUFsaWFzZXNdID0gaWdub3JlQWxpYXNlcztcclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5JZ25vcmVTZWxlY3Rpb25dID0gaWdub3JlU2VsZWN0aW9uO1xyXG4gICAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLkluY2x1ZGVBbGxDb2x1bW5zXSA9IGluY2x1ZGVBbGxDb2x1bW5zO1xyXG4gICAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLk1heFJvd3NdID0gbWF4Um93cztcclxuXHJcbiAgICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUodmVyYiwgcGFyYW1ldGVycykudGhlbjxEYXRhVGFibGU+KHJlc3BvbnNlID0+IHtcclxuICAgICAgICBjb25zdCByZXNwb25zZURhdGEgPSByZXNwb25zZS5yZXN1bHQgYXMgVW5kZXJseWluZ0RhdGFUYWJsZTtcclxuICAgICAgICByZXR1cm4gdGhpcy5wcm9jZXNzUmVzdWx0c1RhYmxlKHJlc3BvbnNlRGF0YS5kYXRhLCByZXNwb25zZURhdGEuaXNTdW1tYXJ5KTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTZWxlY3RlZE1hcmtzQXN5bmModmlzdWFsSWQ6IFZpc3VhbElkKTogUHJvbWlzZTxBY3RpdmVNYXJrcz4ge1xyXG4gICAgY29uc3QgcGFyYW1ldGVyczogRXhlY3V0ZVBhcmFtZXRlcnMgPSB7IFtQYXJhbWV0ZXJJZC5WaXN1YWxJZF06IHZpc3VhbElkIH07XHJcbiAgICByZXR1cm4gdGhpcy5fZGlzcGF0Y2hlci5leGVjdXRlKFZlcmJJZC5HZXRTZWxlY3RlZE1hcmtzLCBwYXJhbWV0ZXJzKS50aGVuPEFjdGl2ZU1hcmtzPihyZXNwb25zZSA9PiB7XHJcbiAgICAgIGNvbnN0IHJlc3BvbnNlRGF0YSA9IHJlc3BvbnNlLnJlc3VsdCBhcyBTZWxlY3RlZE1hcmtzVGFibGU7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgZGF0YTogcmVzcG9uc2VEYXRhLmRhdGEubWFwKHRhYmxlID0+IHRoaXMucHJvY2Vzc1Jlc3VsdHNUYWJsZSh0YWJsZSwgdHJ1ZSkpXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRIaWdobGlnaHRlZE1hcmtzQXN5bmModmlzdWFsSWQ6IFZpc3VhbElkKTogUHJvbWlzZTxBY3RpdmVNYXJrcz4ge1xyXG4gICAgY29uc3QgcGFyYW1ldGVyczogRXhlY3V0ZVBhcmFtZXRlcnMgPSB7IFtQYXJhbWV0ZXJJZC5WaXN1YWxJZF06IHZpc3VhbElkIH07XHJcbiAgICByZXR1cm4gdGhpcy5fZGlzcGF0Y2hlci5leGVjdXRlKFZlcmJJZC5HZXRIaWdobGlnaHRlZE1hcmtzLCBwYXJhbWV0ZXJzKS50aGVuPEFjdGl2ZU1hcmtzPihyZXNwb25zZSA9PiB7XHJcbiAgICAgIGNvbnN0IHJlc3BvbnNlRGF0YSA9IHJlc3BvbnNlLnJlc3VsdCBhcyBIaWdobGlnaHRlZE1hcmtzVGFibGU7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgZGF0YTogcmVzcG9uc2VEYXRhLmRhdGEubWFwKHRhYmxlID0+IHRoaXMucHJvY2Vzc1Jlc3VsdHNUYWJsZSh0YWJsZSwgdHJ1ZSkpXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBwcm9jZXNzUmVzdWx0c1RhYmxlKHJlc3BvbnNlRGF0YTogRGF0YVRhYmxlSW50ZXJuYWxDb250cmFjdCwgaXNTdW1tYXJ5OiBib29sZWFuKTogRGF0YVRhYmxlIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSByZXNwb25zZURhdGEuaGVhZGVycy5tYXAoaCA9PiBuZXcgQ29sdW1uKGguZmllbGRDYXB0aW9uLCBEYXRhVHlwZS5TdHJpbmcgLypoLkRhdGFUeXBlKi8sIGguaXNSZWZlcmVuY2VkLCBoLmluZGV4KSk7XHJcbiAgICBjb25zdCB0YWJsZSA9IHJlc3BvbnNlRGF0YS5kYXRhVGFibGUubWFwKHJvdyA9PiB7XHJcbiAgICAgIHJldHVybiByb3cubWFwKGNlbGwgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgRGF0YVZhbHVlKGNlbGwudmFsdWUsIGNlbGwuZm9ybWF0dGVkVmFsdWUpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBuZXcgRGF0YVRhYmxlKHRhYmxlLCBoZWFkZXJzLCB0YWJsZS5sZW5ndGgsIGlzU3VtbWFyeSk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvU2VydmljZXMvaW1wbC9HZXREYXRhU2VydmljZUltcGwudHNcbiAqKi8iLCJpbXBvcnQgeyBJbnRlcm5hbEFwaURpc3BhdGNoZXIsIE1vZGVsLCBOb3RpZmljYXRpb24sIE5vdGlmaWNhdGlvbklkIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UsIFVucmVnaXN0ZXJGbiB9IGZyb20gJy4uL05vdGlmaWNhdGlvblNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXJ2aWNlTmFtZXMgfSBmcm9tICcuLi9TZXJ2aWNlUmVnaXN0cnknO1xyXG5cclxuY2xhc3MgUmVnaXN0cmF0aW9uIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9maWx0ZXJGbjogKG5vdGlmaWNhdGlvbk1vZGVsOiBNb2RlbCkgPT4gYm9vbGVhbixcclxuICAgIHByaXZhdGUgX2NhbGxiYWNrRm46IChub3RpZmljYXRpb25Nb2RlbDogTW9kZWwpID0+IHZvaWQpIHtcclxuICAgICAgLy8gTm90aGluZyBIZXJlXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25Ob3RpZmljYXRpb24obm90aWZpY2F0aW9uTW9kZWw6IE1vZGVsKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fZmlsdGVyRm4obm90aWZpY2F0aW9uTW9kZWwpKSB7XHJcbiAgICAgIHRoaXMuX2NhbGxiYWNrRm4obm90aWZpY2F0aW9uTW9kZWwpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvblNlcnZpY2VJbXBsIGltcGxlbWVudHMgTm90aWZpY2F0aW9uU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBfaGFuZGxlcnM6IHsgW25vdGlmaWNhdGlvbklkOiBzdHJpbmddOiBBcnJheTxSZWdpc3RyYXRpb24+IH07XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpc3BhdGNoZXI6IEludGVybmFsQXBpRGlzcGF0Y2hlcikge1xyXG4gICAgdGhpcy5faGFuZGxlcnMgPSB7fTtcclxuICAgIHRoaXMuZGlzcGF0Y2hlci5yZWdpc3Rlck5vdGlmaWNhdGlvbkhhbmRsZXIodGhpcy5vbk5vdGlmaWNhdGlvbi5iaW5kKHRoaXMpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2VydmljZU5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBTZXJ2aWNlTmFtZXMuTm90aWZpY2F0aW9uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVySGFuZGxlcihpZDogTm90aWZpY2F0aW9uSWQsIGZpbHRlckZuOiAobW9kZWw6IE1vZGVsKSA9PiBib29sZWFuLCBoYW5kbGVyOiAobW9kZWw6IE1vZGVsKSA9PiB2b2lkKTogVW5yZWdpc3RlckZuIHtcclxuICAgIGNvbnN0IGhhbmRsZXJzID0gdGhpcy5faGFuZGxlcnNbaWRdIHx8IG5ldyBBcnJheTxSZWdpc3RyYXRpb24+KCk7XHJcbiAgICBjb25zdCByZWdpc3RyYXRpb24gPSBuZXcgUmVnaXN0cmF0aW9uKGZpbHRlckZuLCBoYW5kbGVyKTtcclxuICAgIGhhbmRsZXJzLnB1c2gocmVnaXN0cmF0aW9uKTtcclxuICAgIHRoaXMuX2hhbmRsZXJzW2lkXSA9IGhhbmRsZXJzO1xyXG4gICAgcmV0dXJuICgpID0+IHRoaXMucmVtb3ZlUmVnaXN0cmF0aW9uKGlkLCByZWdpc3RyYXRpb24pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYXNIYW5kbGVyc0Zvck5vdGlmaWNhdGlvblR5cGUoaWQ6IE5vdGlmaWNhdGlvbklkKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faGFuZGxlcnMuaGFzT3duUHJvcGVydHkoaWQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbk5vdGlmaWNhdGlvbihub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbik6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmhhc0hhbmRsZXJzRm9yTm90aWZpY2F0aW9uVHlwZShub3RpZmljYXRpb24ubm90aWZpY2F0aW9uSWQpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBHbyB0aHJvdWdoIGFuZCBjaGVjayBmb3IgYWxsIHRoZSBoYW5kbGVycyBvZiB0aGlzIHBhcnRpY3VsYXIgbm90aWZpY2F0aW9uXHJcbiAgICB0aGlzLl9oYW5kbGVyc1tub3RpZmljYXRpb24ubm90aWZpY2F0aW9uSWRdLmZvckVhY2goaCA9PiBoLm9uTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi5kYXRhKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbW92ZVJlZ2lzdHJhdGlvbihpZDogTm90aWZpY2F0aW9uSWQsIHJlZ2lzdHJhdGlvbjogUmVnaXN0cmF0aW9uKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaGFzSGFuZGxlcnNGb3JOb3RpZmljYXRpb25UeXBlKGlkKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5faGFuZGxlcnNbaWRdID0gdGhpcy5faGFuZGxlcnNbaWRdLmZpbHRlcihyZWcgPT4gcmVnICE9PSByZWdpc3RyYXRpb24pO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NlcnZpY2VzL2ltcGwvTm90aWZpY2F0aW9uU2VydmljZUltcGwudHNcbiAqKi8iLCJpbXBvcnQgeyBTaGVldCBhcyBTaGVldENvbnRyYWN0IH0gZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHtcclxuICBFeGVjdXRlUGFyYW1ldGVycyxcclxuICBJbnRlcm5hbEFwaURpc3BhdGNoZXIsXHJcbiAgTW9kZWwsXHJcbiAgUGFyYW1ldGVySWQsXHJcbiAgUGFyYW1ldGVySW5mbyxcclxuICBTaGVldFBhdGgsXHJcbiAgVmVyYklkLFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBQYXJhbWV0ZXJJbXBsIH0gZnJvbSAnLi4vLi4vSW50ZXJuYWwvUGFyYW1ldGVySW1wbCc7XHJcbmltcG9ydCB7IFBhcmFtZXRlciB9IGZyb20gJy4uLy4uL1BhcmFtZXRlcic7XHJcbmltcG9ydCB7IFBhcmFtZXRlcnNTZXJ2aWNlIH0gZnJvbSAnLi4vUGFyYW1ldGVyc1NlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXJ2aWNlTmFtZXMgfSBmcm9tICcuLi9TZXJ2aWNlUmVnaXN0cnknO1xyXG5cclxuZXhwb3J0IGNsYXNzIFBhcmFtZXRlcnNTZXJ2aWNlSW1wbCBpbXBsZW1lbnRzIFBhcmFtZXRlcnNTZXJ2aWNlIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBkaXNwYXRjaGVyOiBJbnRlcm5hbEFwaURpc3BhdGNoZXIpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2VydmljZU5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBTZXJ2aWNlTmFtZXMuUGFyYW1ldGVycztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRQYXJhbWV0ZXJzRm9yU2hlZXRBc3luYyhzaGVldFBhdGg6IFNoZWV0UGF0aCwgc2hlZXQ6IFNoZWV0Q29udHJhY3QpOiBQcm9taXNlPEFycmF5PFBhcmFtZXRlcj4+IHtcclxuICAgIGNvbnN0IHBhcmFtZXRlcnMgPSB7XHJcbiAgICAgIFtQYXJhbWV0ZXJJZC5TaGVldFBhdGhdOiBzaGVldFBhdGhcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hlci5leGVjdXRlKFZlcmJJZC5HZXRQYXJhbWV0ZXJzRm9yU2hlZXQsIHBhcmFtZXRlcnMpLnRoZW4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICAvLyBUT0RPIC0gQ2hlY2sgZm9yIGVycm9yXHJcblxyXG4gICAgICBjb25zdCByZXN1bHQgPSByZXNwb25zZS5yZXN1bHQgYXMgQXJyYXk8UGFyYW1ldGVySW5mbz47XHJcbiAgICAgIHJldHVybiByZXN1bHQubWFwKHBhcmFtZXRlckluZm8gPT4ge1xyXG4gICAgICAgIGNvbnN0IGltcGwgPSBuZXcgUGFyYW1ldGVySW1wbChwYXJhbWV0ZXJJbmZvKTtcclxuICAgICAgICByZXR1cm4gbmV3IFBhcmFtZXRlcihpbXBsLCBzaGVldCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hhbmdlUGFyYW1ldGVyVmFsdWVBc3luYyhmaWVsZE5hbWU6IHN0cmluZywgbmV3VmFsdWU6IHN0cmluZyk6IFByb21pc2U8UGFyYW1ldGVySW5mbz4ge1xyXG4gICAgY29uc3QgcGFyYW1ldGVycyA9IHtcclxuICAgICAgW1BhcmFtZXRlcklkLlBhcmFtZXRlckZpZWxkTmFtZV06IGZpZWxkTmFtZSxcclxuICAgICAgW1BhcmFtZXRlcklkLlBhcmFtZXRlclZhbHVlXTogbmV3VmFsdWVcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hlci5leGVjdXRlKFZlcmJJZC5DaGFuZ2VQYXJhbWV0ZXJWYWx1ZSwgcGFyYW1ldGVycykudGhlbihyZXNwb25zZSA9PiB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHJlc3BvbnNlLnJlc3VsdCBhcyBQYXJhbWV0ZXJJbmZvO1xyXG4gICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZmluZFBhcmFtZXRlckJ5TmFtZUFzeW5jKG5hbWU6IHN0cmluZywgc2hlZXQ6IFNoZWV0Q29udHJhY3QpOiBQcm9taXNlPFBhcmFtZXRlciB8IHVuZGVmaW5lZD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZmluZFBhcmFtZXRlckFzeW5jKHNoZWV0LCBuYW1lLCB1bmRlZmluZWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZpbmRQYXJhbWV0ZXJCeUdsb2JhbEZpZWxkTmFtZUFzeW5jKGZpZWxkTmFtZTogc3RyaW5nLCBzaGVldDogU2hlZXRDb250cmFjdCk6IFByb21pc2U8UGFyYW1ldGVyIHwgdW5kZWZpbmVkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5maW5kUGFyYW1ldGVyQXN5bmMoc2hlZXQsIHVuZGVmaW5lZCwgZmllbGROYW1lKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmluZFBhcmFtZXRlckFzeW5jKFxyXG4gICAgc2hlZXQ6IFNoZWV0Q29udHJhY3QsXHJcbiAgICBuYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQsXHJcbiAgICBmaWVsZE5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IFByb21pc2U8UGFyYW1ldGVyIHwgdW5kZWZpbmVkPiB7XHJcbiAgICBjb25zdCBwYXJhbWV0ZXJzOiBFeGVjdXRlUGFyYW1ldGVycyA9IHt9O1xyXG4gICAgaWYgKG5hbWUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLlBhcmFtZXRlckNhcHRpb25dID0gbmFtZTtcclxuICAgIH0gZWxzZSBpZiAoZmllbGROYW1lICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5QYXJhbWV0ZXJGaWVsZE5hbWVdID0gZmllbGROYW1lO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHJlcXVpcmUgZmllbGQgbmFtZSBvciBjYXB0aW9uJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hlci5leGVjdXRlKFZlcmJJZC5GaW5kUGFyYW1ldGVyLCBwYXJhbWV0ZXJzKS50aGVuKHJlc3BvbnNlID0+IHtcclxuICAgICAgY29uc3QgaW5zdGFuY2VPZlBhcmFtZXRlckluZm8gPSAob2JqZWN0OiBNb2RlbCk6IG9iamVjdCBpcyBQYXJhbWV0ZXJJbmZvID0+IHtcclxuICAgICAgICByZXR1cm4gJ2ZpZWxkTmFtZScgaW4gb2JqZWN0O1xyXG4gICAgICB9O1xyXG5cclxuICAgICAgLy8gV2UgbmVlZCB0byBjaGVjayB0byBzZWUgaWYgd2UgZ290IGEgdmFsaWQgcmVzcG9uc2UgYmFjayBhZ2FpblxyXG4gICAgICBpZiAoaW5zdGFuY2VPZlBhcmFtZXRlckluZm8ocmVzcG9uc2UucmVzdWx0KSkge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHJlc3BvbnNlLnJlc3VsdCBhcyBQYXJhbWV0ZXJJbmZvO1xyXG4gICAgICAgIGNvbnN0IGltcGwgPSBuZXcgUGFyYW1ldGVySW1wbChyZXN1bHQpO1xyXG4gICAgICAgIHJldHVybiBuZXcgUGFyYW1ldGVyKGltcGwsIHNoZWV0KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9pbXBsL1BhcmFtZXRlcnNTZXJ2aWNlSW1wbC50c1xuICoqLyIsImltcG9ydCB7XHJcbiAgQWxsb3dhYmxlVmFsdWVzVHlwZSxcclxuICBEYXRhVHlwZSxcclxuICBQYXJhbWV0ZXJEb21haW5SZXN0cmljdGlvbiBhcyBEb21haW5SZXN0cmljdGlvbixcclxuICBQZXJpb2RUeXBlLFxyXG4gIFNoZWV0LFxyXG4gIFRhYmxlYXVFdmVudFR5cGUsXHJcbn0gZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uSWQsIFBhcmFtZXRlckluZm8gfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBQYXJhbSB9IGZyb20gJ0B0YWJsZWF1L2FwaS11dGlscyc7XHJcblxyXG5pbXBvcnQgeyBJbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MgfSBmcm9tICcuLi9FbnVtTWFwcGluZ3MvSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzJztcclxuaW1wb3J0IHsgUGFyYW1ldGVyQ2hhbmdlZEV2ZW50IH0gZnJvbSAnLi4vRXZlbnRzL1BhcmFtZXRlckNoYW5nZWRFdmVudCc7XHJcbmltcG9ydCB7IERhdGFWYWx1ZSB9IGZyb20gJy4uL01vZGVscy9HZXREYXRhTW9kZWxzJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uL1NlcnZpY2VzL05vdGlmaWNhdGlvblNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQYXJhbWV0ZXJzU2VydmljZSB9IGZyb20gJy4uL1NlcnZpY2VzL1BhcmFtZXRlcnNTZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBpU2VydmljZVJlZ2lzdHJ5LCBTZXJ2aWNlTmFtZXMgfSBmcm9tICcuLi9TZXJ2aWNlcy9TZXJ2aWNlUmVnaXN0cnknO1xyXG5pbXBvcnQgeyBTaW5nbGVFdmVudE1hbmFnZXIgfSBmcm9tICcuLi9TaW5nbGVFdmVudE1hbmFnZXInO1xyXG5pbXBvcnQgeyBTaW5nbGVFdmVudE1hbmFnZXJJbXBsIH0gZnJvbSAnLi9TaW5nbGVFdmVudE1hbmFnZXJJbXBsJztcclxuXHJcbmV4cG9ydCBjbGFzcyBQYXJhbWV0ZXJJbXBsIHtcclxuICBwcml2YXRlIF9hbGxvd2FibGVWYWx1ZXM6IERvbWFpblJlc3RyaWN0aW9uO1xyXG4gIHByaXZhdGUgX2dsb2JhbEZpZWxkTmFtZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgX3BhcmFtZXRlckluZm86IFBhcmFtZXRlckluZm87XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihwYXJhbWV0ZXJJbmZvOiBQYXJhbWV0ZXJJbmZvKSB7XHJcbiAgICB0aGlzLnNldFBhcmFtZXRlckluZm8ocGFyYW1ldGVySW5mbyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9wYXJhbWV0ZXJJbmZvLm5hbWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGN1cnJlbnRWYWx1ZSgpOiBEYXRhVmFsdWUge1xyXG4gICAgcmV0dXJuIG5ldyBEYXRhVmFsdWUodGhpcy5fcGFyYW1ldGVySW5mby5jdXJyZW50VmFsdWUudmFsdWUsIHRoaXMuX3BhcmFtZXRlckluZm8uY3VycmVudFZhbHVlLmZvcm1hdHRlZFZhbHVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZGF0YVR5cGUoKTogRGF0YVR5cGUge1xyXG4gICAgcmV0dXJuIEludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncy5kYXRhVHlwZS5jb252ZXJ0KHRoaXMuX3BhcmFtZXRlckluZm8uZGF0YVR5cGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBhbGxvd2FibGVWYWx1ZXMoKTogRG9tYWluUmVzdHJpY3Rpb24ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FsbG93YWJsZVZhbHVlcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VWYWx1ZUFzeW5jKG5ld1ZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgRGF0ZSk6IFByb21pc2U8RGF0YVZhbHVlPiB7XHJcbiAgICBsZXQgY29lcmNlZFZhbHVlID0gUGFyYW0uc2VyaWFsaXplUGFyYW10ZXJWYWx1ZShuZXdWYWx1ZSk7XHJcbiAgICBjb25zdCBwYXJhbWV0ZXJzU2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPFBhcmFtZXRlcnNTZXJ2aWNlPihTZXJ2aWNlTmFtZXMuUGFyYW1ldGVycyk7XHJcbiAgICByZXR1cm4gcGFyYW1ldGVyc1NlcnZpY2UuY2hhbmdlUGFyYW1ldGVyVmFsdWVBc3luYyh0aGlzLl9nbG9iYWxGaWVsZE5hbWUsIGNvZXJjZWRWYWx1ZSkudGhlbihwYXJhbWV0ZXJJbmZvID0+IHtcclxuICAgICAgdGhpcy5zZXRQYXJhbWV0ZXJJbmZvKHBhcmFtZXRlckluZm8pO1xyXG4gICAgICByZXR1cm4gdGhpcy5jdXJyZW50VmFsdWU7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhlbHBlciBtZXRob2Qgd2hpY2ggZ29lcyB0aHJvdWdoIGFuZCByZWdpc3RlcnMgZWFjaCBldmVudCB0eXBlIHRoaXMgaW1wbCBrbm93cyBhYm91dFxyXG4gICAqIHdpdGggdGhlIE5vdGlmaWNhdGlvblNlcnZpY2UuIEl0IHJldHVybnMgYW4gYXJyYXkgb2YgU2luZ2xlRXZlbnRNYW5hZ2VyIG9iamVjdHMgd2hpY2hcclxuICAgKiBjYW4gdGhlbiBiZSBwYXNzZWQgdG8gYW4gRXZlbnRMaXN0ZW5lck1hbmFnZXIgdG8gaGFuZGxlIHVzZXIgcmVnaXN0cmF0aW9uIC8gdW5yZWdpc3RyYXRpb24uXHJcbiAgICpcclxuICAgKiBAcGFyYW0gc2hlZXQgVGhlIHNoZWV0IG9iamVjdCB3aGljaCB3aWxsIGJlIGluY2x1ZGVkIHdpdGggdGhlIGV2ZW50IG5vdGlmaWNhdGlvbnNcclxuICAgKiBAcmV0dXJucyB7QXJyYXk8U2luZ2xlRXZlbnRNYW5hZ2VyPn0gQ29sbGVjdGlvbiBvZiBldmVudCBtYW5hZ2VycyB0byBwYXNzIHRvIGFuIEV2ZW50TGlzdGVuZXJNYW5hZ2VyXHJcbiAgICovXHJcbiAgcHVibGljIGluaXRpYWxpemVFdmVudHMoc2hlZXQ6IFNoZWV0KTogQXJyYXk8U2luZ2xlRXZlbnRNYW5hZ2VyPiB7XHJcbiAgICBjb25zdCByZXN1bHRzID0gbmV3IEFycmF5PFNpbmdsZUV2ZW50TWFuYWdlcj4oKTtcclxuICAgIGxldCBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIG5vdGlmaWNhdGlvblNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxOb3RpZmljYXRpb25TZXJ2aWNlPihTZXJ2aWNlTmFtZXMuTm90aWZpY2F0aW9uKTtcclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSB0aGlzIHNlcnZpY2UgcmVnaXN0ZXJlZCwganVzdCByZXR1cm5cclxuICAgICAgcmV0dXJuIHJlc3VsdHM7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSW5pdGlhbGl6ZSBhbGwgb2YgdGhlIGV2ZW50IG1hbmFnZXJzIHdlJ2xsIG5lZWQgKG9uZSBmb3IgZWFjaCBldmVudCB0eXBlKVxyXG4gICAgY29uc3QgcGFyYW1ldGVyRXZlbnQgPSBuZXcgU2luZ2xlRXZlbnRNYW5hZ2VySW1wbDxQYXJhbWV0ZXJDaGFuZ2VkRXZlbnQ+KFRhYmxlYXVFdmVudFR5cGUuUGFyYW1ldGVyQ2hhbmdlZCk7XHJcbiAgICBub3RpZmljYXRpb25TZXJ2aWNlLnJlZ2lzdGVySGFuZGxlcihOb3RpZmljYXRpb25JZC5QYXJhbWV0ZXJDaGFuZ2VkLCAobW9kZWwpID0+IHtcclxuICAgICAgY29uc3QgZmllbGROYW1lID0gbW9kZWwgYXMgc3RyaW5nO1xyXG4gICAgICByZXR1cm4gZmllbGROYW1lID09PSB0aGlzLl9nbG9iYWxGaWVsZE5hbWU7XHJcbiAgICB9LCAoZmllbGROYW1lOiBzdHJpbmcpID0+IHtcclxuICAgICAgcGFyYW1ldGVyRXZlbnQudHJpZ2dlckV2ZW50KCgpID0+IG5ldyBQYXJhbWV0ZXJDaGFuZ2VkRXZlbnQoZmllbGROYW1lLCBzaGVldCkpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmVzdWx0cy5wdXNoKHBhcmFtZXRlckV2ZW50KTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0cztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0UGFyYW1ldGVySW5mbyhwYXJhbWV0ZXJJbmZvOiBQYXJhbWV0ZXJJbmZvKTogdm9pZCB7XHJcbiAgICB0aGlzLl9wYXJhbWV0ZXJJbmZvID0gcGFyYW1ldGVySW5mbztcclxuICAgIHRoaXMuX2dsb2JhbEZpZWxkTmFtZSA9IHBhcmFtZXRlckluZm8uZmllbGROYW1lO1xyXG5cclxuICAgIGNvbnN0IHR5cGUgPSBJbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MuYWxsb3dhYmxlVmFsdWVzLmNvbnZlcnQocGFyYW1ldGVySW5mby5hbGxvd2FibGVWYWx1ZXNUeXBlKTtcclxuICAgIGxldCBsaXN0VmFsdWVzOiBBcnJheTxEYXRhVmFsdWU+IHwgdW5kZWZpbmVkO1xyXG4gICAgbGV0IG1pblZhbHVlOiBEYXRhVmFsdWUgfCB1bmRlZmluZWQ7XHJcbiAgICBsZXQgbWF4VmFsdWU6IERhdGFWYWx1ZSB8IHVuZGVmaW5lZDtcclxuICAgIGxldCBzdGVwU2l6ZTogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gICAgbGV0IGRhdGVTdGVwUGVyaW9kOiBQZXJpb2RUeXBlIHwgdW5kZWZpbmVkO1xyXG5cclxuICAgIGlmICh0eXBlID09PSBBbGxvd2FibGVWYWx1ZXNUeXBlLkxpc3QpIHtcclxuICAgICAgY29uc3QgdmFsdWVzID0gcGFyYW1ldGVySW5mby5hbGxvd2FibGVWYWx1ZXMgfHwgW107XHJcbiAgICAgIGxpc3RWYWx1ZXMgPSB2YWx1ZXMubWFwKHZhbCA9PiBuZXcgRGF0YVZhbHVlKHZhbC52YWx1ZSwgdmFsLmZvcm1hdHRlZFZhbHVlKSk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09IEFsbG93YWJsZVZhbHVlc1R5cGUuUmFuZ2UpIHtcclxuICAgICAgbWluVmFsdWUgPSBwYXJhbWV0ZXJJbmZvLm1pblZhbHVlICYmIG5ldyBEYXRhVmFsdWUocGFyYW1ldGVySW5mby5taW5WYWx1ZS52YWx1ZSwgcGFyYW1ldGVySW5mby5taW5WYWx1ZS5mb3JtYXR0ZWRWYWx1ZSk7XHJcbiAgICAgIG1heFZhbHVlID0gcGFyYW1ldGVySW5mby5tYXhWYWx1ZSAmJiBuZXcgRGF0YVZhbHVlKHBhcmFtZXRlckluZm8ubWF4VmFsdWUudmFsdWUsIHBhcmFtZXRlckluZm8ubWF4VmFsdWUuZm9ybWF0dGVkVmFsdWUpO1xyXG4gICAgICBzdGVwU2l6ZSA9IHBhcmFtZXRlckluZm8uc3RlcFNpemU7XHJcbiAgICAgIGRhdGVTdGVwUGVyaW9kID0gcGFyYW1ldGVySW5mby5kYXRlU3RlcFBlcmlvZCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgIEludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncy5kYXRlU3RlcFBlcmlvZC5jb252ZXJ0KHBhcmFtZXRlckluZm8uZGF0ZVN0ZXBQZXJpb2QpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2FsbG93YWJsZVZhbHVlcyA9IHtcclxuICAgICAgdHlwZTogdHlwZSxcclxuICAgICAgYWxsb3dhYmxlVmFsdWVzOiBsaXN0VmFsdWVzLFxyXG4gICAgICBtaW5WYWx1ZTogbWluVmFsdWUsXHJcbiAgICAgIG1heFZhbHVlOiBtYXhWYWx1ZSxcclxuICAgICAgc3RlcFNpemU6IHN0ZXBTaXplLFxyXG4gICAgICBkYXRlU3RlcFBlcmlvZDogZGF0ZVN0ZXBQZXJpb2RcclxuICAgIH07XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvSW50ZXJuYWwvUGFyYW1ldGVySW1wbC50c1xuICoqLyIsImltcG9ydCB7XHJcbiAgQWRkSW5Db250ZXh0IGFzIEV4dGVybmFsQWRkSW5Db250ZXh0LFxyXG4gIEFkZEluTW9kZSBhcyBFeHRlcm5hbEFkZEluTW9kZSxcclxuICBBbGxvd2FibGVWYWx1ZXNUeXBlIGFzIEV4dGVybmFsQWxsb3dhYmxlVmFsdWVzVHlwZSxcclxuICBEYXNoYm9hcmRPYmplY3RUeXBlIGFzIEV4dGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZSxcclxuICBEYXRhVHlwZSBhcyBFeHRlcm5hbERhdGFUeXBlLFxyXG4gIEZpbHRlclVwZGF0ZVR5cGUgYXMgRXh0ZXJuYWxGaWx0ZXJVcGRhdGVUeXBlLFxyXG4gIFBlcmlvZFR5cGUgYXMgRXh0ZXJuYWxEYXRlUGVyaW9kLFxyXG4gIFNoZWV0VHlwZSBhcyBFeHRlcm5hbFNoZWV0VHlwZSxcclxufSBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQge1xyXG4gIEFkZEluQ29udGV4dCBhcyBJbnRlcm5hbEFkZEluQ29udGV4dCxcclxuICBBZGRJbk1vZGUgYXMgSW50ZXJuYWxBZGRJbk1vZGUsXHJcbiAgRGFzaGJvYXJkT2JqZWN0VHlwZSBhcyBJbnRlcm5hbERhc2hib2FyZE9iamVjdFR5cGUsXHJcbiAgRGF0YVR5cGUgYXMgSW50ZXJuYWxEYXRhVHlwZSxcclxuICBEYXRlU3RlcFBlcmlvZCBhcyBJbnRlcm5hbERhdGVTdGVwUGVyaW9kLFxyXG4gIERvbWFpblJlc3RyaWN0aW9uVHlwZSBhcyBJbnRlcm5hbERvbWFpblJlc3RyaWN0aW9uVHlwZSxcclxuICBGaWx0ZXJVcGRhdGVUeXBlIGFzIEludGVybmFsRmlsdGVyVXBkYXRlVHlwZSxcclxuICBTaGVldFR5cGUgYXMgSW50ZXJuYWxTaGVldFR5cGUsXHJcbn0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgRW51bUNvbnZlcnRlciB9IGZyb20gJ0B0YWJsZWF1L2FwaS11dGlscyc7XHJcblxyXG4vKiB0c2xpbnQ6ZGlzYWJsZTp0eXBlZGVmIC0gRGlzYWJsZSB0aGlzIHRvIG1ha2UgZGVjbGFyaW5nIHRoZXNlIGNsYXNzZXMgYSBiaXQgZWFzaWVyICovXHJcbi8qKlxyXG4gKiBNYXBzIGVudW1zIHVzZWQgYnkgdGhlIGludGVybmFsLWFwaS1jb250cmFjdCB0byB0aGUgZW51bXMgdXNlZFxyXG4gKiBpbiB0aGUgZXh0ZXJuYWwtYXBpLWNvbnRyYWN0LCB3aGljaCBkZXZlbG9wZXJzIGNvZGUgYWdhaW5zdC5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBJbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3Mge1xyXG4gIHB1YmxpYyBzdGF0aWMgYWRkSW5Db250ZXh0ID0gbmV3IEVudW1Db252ZXJ0ZXI8SW50ZXJuYWxBZGRJbkNvbnRleHQsIEV4dGVybmFsQWRkSW5Db250ZXh0Pih7XHJcbiAgICBbSW50ZXJuYWxBZGRJbkNvbnRleHQuRGVza3RvcF06IEV4dGVybmFsQWRkSW5Db250ZXh0LkRlc2t0b3AsXHJcbiAgICBbSW50ZXJuYWxBZGRJbkNvbnRleHQuU2VydmVyXTogRXh0ZXJuYWxBZGRJbkNvbnRleHQuU2VydmVyLFxyXG4gICAgW0ludGVybmFsQWRkSW5Db250ZXh0LlVua25vd25dOiBFeHRlcm5hbEFkZEluQ29udGV4dC5Vbmtub3duXHJcbiAgfSk7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgYWRkSW5Nb2RlID0gbmV3IEVudW1Db252ZXJ0ZXI8SW50ZXJuYWxBZGRJbk1vZGUsIEV4dGVybmFsQWRkSW5Nb2RlPih7XHJcbiAgICBbSW50ZXJuYWxBZGRJbk1vZGUuQXV0aG9yaW5nXTogRXh0ZXJuYWxBZGRJbk1vZGUuQXV0aG9yaW5nLFxyXG4gICAgW0ludGVybmFsQWRkSW5Nb2RlLlZpZXdpbmddOiBFeHRlcm5hbEFkZEluTW9kZS5WaWV3aW5nLFxyXG4gICAgW0ludGVybmFsQWRkSW5Nb2RlLlVua25vd25dOiBFeHRlcm5hbEFkZEluTW9kZS5Vbmtub3duXHJcbiAgfSk7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgc2hlZXRUeXBlID0gbmV3IEVudW1Db252ZXJ0ZXI8SW50ZXJuYWxTaGVldFR5cGUsIEV4dGVybmFsU2hlZXRUeXBlPih7XHJcbiAgICBbSW50ZXJuYWxTaGVldFR5cGUuRGFzaGJvYXJkXTogRXh0ZXJuYWxTaGVldFR5cGUuRGFzaGJvYXJkLFxyXG4gICAgW0ludGVybmFsU2hlZXRUeXBlLlN0b3J5XTogRXh0ZXJuYWxTaGVldFR5cGUuU3RvcnksXHJcbiAgICBbSW50ZXJuYWxTaGVldFR5cGUuV29ya3NoZWV0XTogRXh0ZXJuYWxTaGVldFR5cGUuV29ya3NoZWV0XHJcbiAgfSk7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZGFzaGJvYXJkT2JqZWN0VHlwZSA9IG5ldyBFbnVtQ29udmVydGVyPEludGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZSwgRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlPih7XHJcbiAgICBbSW50ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLkJsYW5rXTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLkJsYW5rLFxyXG4gICAgW0ludGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5JbWFnZV06IEV4dGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5JbWFnZSxcclxuICAgIFtJbnRlcm5hbERhc2hib2FyZE9iamVjdFR5cGUuTGVnZW5kXTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLkxlZ2VuZCxcclxuICAgIFtJbnRlcm5hbERhc2hib2FyZE9iamVjdFR5cGUuUGFnZUZpbHRlcl06IEV4dGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5QYWdlRmlsdGVyLFxyXG4gICAgW0ludGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5QYXJhbWV0ZXJDb250cm9sXTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLlBhcmFtZXRlckNvbnRyb2wsXHJcbiAgICBbSW50ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLlF1aWNrRmlsdGVyXTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLlF1aWNrRmlsdGVyLFxyXG4gICAgW0ludGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5UZXh0XTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLlRleHQsXHJcbiAgICBbSW50ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLlRpdGxlXTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLlRpdGxlLFxyXG4gICAgW0ludGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5XZWJQYWdlXTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLldlYlBhZ2UsXHJcbiAgICBbSW50ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLldvcmtzaGVldF06IEV4dGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5Xb3Jrc2hlZXRcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBkYXRhVHlwZSA9IG5ldyBFbnVtQ29udmVydGVyPEludGVybmFsRGF0YVR5cGUsIEV4dGVybmFsRGF0YVR5cGU+KHtcclxuICAgIFtJbnRlcm5hbERhdGFUeXBlLkJvb2xdOiBFeHRlcm5hbERhdGFUeXBlLkJvb2wsXHJcbiAgICBbSW50ZXJuYWxEYXRhVHlwZS5EYXRlXTogRXh0ZXJuYWxEYXRhVHlwZS5EYXRlLFxyXG4gICAgW0ludGVybmFsRGF0YVR5cGUuRGF0ZVRpbWVdOiBFeHRlcm5hbERhdGFUeXBlLkRhdGVUaW1lLFxyXG4gICAgW0ludGVybmFsRGF0YVR5cGUuRmxvYXRdOiBFeHRlcm5hbERhdGFUeXBlLkZsb2F0LFxyXG4gICAgW0ludGVybmFsRGF0YVR5cGUuSW50XTogRXh0ZXJuYWxEYXRhVHlwZS5JbnQsXHJcbiAgICBbSW50ZXJuYWxEYXRhVHlwZS5TdHJpbmddOiBFeHRlcm5hbERhdGFUeXBlLlN0cmluZ1xyXG4gIH0pO1xyXG5cclxuICBwdWJsaWMgc3RhdGljIGZpbHRlclVwZGF0ZVR5cGUgPSBuZXcgRW51bUNvbnZlcnRlcjxJbnRlcm5hbEZpbHRlclVwZGF0ZVR5cGUsIEV4dGVybmFsRmlsdGVyVXBkYXRlVHlwZT4oe1xyXG4gICAgW0ludGVybmFsRmlsdGVyVXBkYXRlVHlwZS5BZGRdOiBFeHRlcm5hbEZpbHRlclVwZGF0ZVR5cGUuQWRkLFxyXG4gICAgW0ludGVybmFsRmlsdGVyVXBkYXRlVHlwZS5BbGxdOiBFeHRlcm5hbEZpbHRlclVwZGF0ZVR5cGUuQWxsLFxyXG4gICAgW0ludGVybmFsRmlsdGVyVXBkYXRlVHlwZS5SZW1vdmVdOiBFeHRlcm5hbEZpbHRlclVwZGF0ZVR5cGUuUmVtb3ZlLFxyXG4gICAgW0ludGVybmFsRmlsdGVyVXBkYXRlVHlwZS5SZXBsYWNlXTogRXh0ZXJuYWxGaWx0ZXJVcGRhdGVUeXBlLlJlcGxhY2VcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBhbGxvd2FibGVWYWx1ZXMgPSBuZXcgRW51bUNvbnZlcnRlcjxJbnRlcm5hbERvbWFpblJlc3RyaWN0aW9uVHlwZSwgRXh0ZXJuYWxBbGxvd2FibGVWYWx1ZXNUeXBlPih7XHJcbiAgICBbSW50ZXJuYWxEb21haW5SZXN0cmljdGlvblR5cGUuQWxsXTogRXh0ZXJuYWxBbGxvd2FibGVWYWx1ZXNUeXBlLkFsbCxcclxuICAgIFtJbnRlcm5hbERvbWFpblJlc3RyaWN0aW9uVHlwZS5MaXN0XTogRXh0ZXJuYWxBbGxvd2FibGVWYWx1ZXNUeXBlLkxpc3QsXHJcbiAgICBbSW50ZXJuYWxEb21haW5SZXN0cmljdGlvblR5cGUuUmFuZ2VdOiBFeHRlcm5hbEFsbG93YWJsZVZhbHVlc1R5cGUuUmFuZ2VcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBkYXRlU3RlcFBlcmlvZCA9IG5ldyBFbnVtQ29udmVydGVyPEludGVybmFsRGF0ZVN0ZXBQZXJpb2QsIEV4dGVybmFsRGF0ZVBlcmlvZD4oe1xyXG4gICAgW0ludGVybmFsRGF0ZVN0ZXBQZXJpb2QuWWVhcnNdOiBFeHRlcm5hbERhdGVQZXJpb2QuWWVhcnMsXHJcbiAgICBbSW50ZXJuYWxEYXRlU3RlcFBlcmlvZC5RdWFydGVyc106IEV4dGVybmFsRGF0ZVBlcmlvZC5RdWFydGVycyxcclxuICAgIFtJbnRlcm5hbERhdGVTdGVwUGVyaW9kLk1vbnRoc106IEV4dGVybmFsRGF0ZVBlcmlvZC5Nb250aHMsXHJcbiAgICBbSW50ZXJuYWxEYXRlU3RlcFBlcmlvZC5XZWVrc106IEV4dGVybmFsRGF0ZVBlcmlvZC5XZWVrcyxcclxuICAgIFtJbnRlcm5hbERhdGVTdGVwUGVyaW9kLkRheXNdOiBFeHRlcm5hbERhdGVQZXJpb2QuRGF5cyxcclxuICAgIFtJbnRlcm5hbERhdGVTdGVwUGVyaW9kLkhvdXJzXTogRXh0ZXJuYWxEYXRlUGVyaW9kLkhvdXJzLFxyXG4gICAgW0ludGVybmFsRGF0ZVN0ZXBQZXJpb2QuTWludXRlc106IEV4dGVybmFsRGF0ZVBlcmlvZC5NaW51dGVzLFxyXG4gICAgW0ludGVybmFsRGF0ZVN0ZXBQZXJpb2QuU2Vjb25kc106IEV4dGVybmFsRGF0ZVBlcmlvZC5TZWNvbmRzXHJcbiAgfSk7XHJcbn1cclxuLyogdHNsaW50OmVuYWJsZTp0eXBlZGVmICovXHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRW51bU1hcHBpbmdzL0ludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncy50c1xuICoqLyIsImltcG9ydCB7XHJcbiAgUGFyYW1ldGVyIGFzIFBhcmFtZXRlckNvbnRyYWN0LFxyXG4gIFBhcmFtZXRlckNoYW5nZWRFdmVudCBhcyBQYXJhbWV0ZXJDaGFuZ2VkRXZlbnRDb250cmFjdCxcclxuICBTaGVldCBhcyBTaGVldENvbnRyYWN0LFxyXG4gIFRhYmxlYXVFdmVudFR5cGUsXHJcbn0gZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IFBhcmFtZXRlcnNTZXJ2aWNlIH0gZnJvbSAnLi4vU2VydmljZXMvUGFyYW1ldGVyc1NlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcGlTZXJ2aWNlUmVnaXN0cnksIFNlcnZpY2VOYW1lcyB9IGZyb20gJy4uL1NlcnZpY2VzL1NlcnZpY2VSZWdpc3RyeSc7XHJcbmltcG9ydCB7IFRhYmxlYXVTaGVldEV2ZW50IH0gZnJvbSAnLi9UYWJsZWF1U2hlZXRFdmVudCc7XHJcblxyXG5leHBvcnQgY2xhc3MgUGFyYW1ldGVyQ2hhbmdlZEV2ZW50IGV4dGVuZHMgVGFibGVhdVNoZWV0RXZlbnQgaW1wbGVtZW50cyBQYXJhbWV0ZXJDaGFuZ2VkRXZlbnRDb250cmFjdCB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgX2dsb2JhbEZpZWxkTmFtZTogc3RyaW5nLCBzaGVldDogU2hlZXRDb250cmFjdCkge1xyXG4gICAgc3VwZXIoVGFibGVhdUV2ZW50VHlwZS5QYXJhbWV0ZXJDaGFuZ2VkLCBzaGVldCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0UGFyYW1ldGVyQXN5bmMoKTogUHJvbWlzZTxQYXJhbWV0ZXJDb250cmFjdD4ge1xyXG4gICAgLy8gQ2FsbCBkb3duIHRvIG91ciBzZXJ2aWNlIHRvIGdldCB0aGUgcGFyYW1ldGVyIGJhY2sgdmlhIGl0cyBmaWVsZCBuYW1lXHJcbiAgICBjb25zdCBzZXJ2aWNlID0gQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2U8UGFyYW1ldGVyc1NlcnZpY2U+KFNlcnZpY2VOYW1lcy5QYXJhbWV0ZXJzKTtcclxuICAgIHJldHVybiBzZXJ2aWNlLmZpbmRQYXJhbWV0ZXJCeUdsb2JhbEZpZWxkTmFtZUFzeW5jKHRoaXMuX2dsb2JhbEZpZWxkTmFtZSwgdGhpcy5zaGVldCkudGhlbihwYXJhbWV0ZXIgPT4ge1xyXG4gICAgICBpZiAocGFyYW1ldGVyID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBmaW5kIHBhcmFtZXRlcicpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gcGFyYW1ldGVyO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRXZlbnRzL1BhcmFtZXRlckNoYW5nZWRFdmVudC50c1xuICoqLyIsIi8qKlxyXG4gKiBCYXNlIGludGVyZmFjZSBmb3IgYW4gYXBpIHNlcnZpY2VcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXBpU2VydmljZSB7XHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgbmFtZSBmb3IgdGhpcyBzZXJ2aWNlLlxyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb2xsZWN0aW9uIG9mIHNlcnZpY2UgbmFtZSB3aGljaCB3aWxsIGJlIHJlZ2lzdGVyZWQgaW4gdGhlIGFwaS1zaGFyZWQgcHJvamVjdFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGVudW0gU2VydmljZU5hbWVzIHtcclxuICBHZXREYXRhID0gJ2dldC1kYXRhLXNlcnZpY2UnLFxyXG4gIEZpbHRlciA9ICdmaWx0ZXItc2VydmljZScsXHJcbiAgTm90aWZpY2F0aW9uID0gJ25vdGlmaWNhdGlvbi1zZXJ2aWNlJyxcclxuICBQYXJhbWV0ZXJzID0gJ3BhcmFtZXRlcnMtc2VydmljZScsXHJcbiAgU2VsZWN0aW9uID0gJ3NlbGVjdGlvbi1zZXJ2aWNlJ1xyXG59XHJcblxyXG4vKipcclxuICogRG8gc29tZSBnbG9iYWJsIGRlY2xhcmF0aW9ucyBzbyB3ZSBjYW4gY3JlYXRlIGEgc2luZ2xldG9uIG9uIHRoZSB3aW5kb3cgb2JqZWN0XHJcbiAqL1xyXG5kZWNsYXJlIGdsb2JhbCB7XHJcbiAgaW50ZXJmYWNlIFdpbmRvdyB7IF9fdGFibGVhdUFwaVNlcnZpY2VSZWdpc3RyeTogU2VydmljZVJlZ2lzdHJ5IHwgdW5kZWZpbmVkOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VydmljZVJlZ2lzdHJ5IHtcclxuICAvKipcclxuICAgKiBSZWdpc3RlcnMgYSBuZXcgc2VydmljZSBpbnRvIHRoZSBzZXJ2aWNlIHJlZ2lzdHJ5LiBBbnkgZXhpc3Rpbmcgb25lIHdpbGxcclxuICAgKiBiZSBvdmVyd3JpdHRlbi4gdGhlIHNlcnZpY2UgaXMgcmVnaXN0ZXJlZCB1bmRlciBzZXJ2aWNlLnNlcnZpY2VOYW1lXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge0FwaVNlcnZpY2V9IHNlcnZpY2UgVGhlIHNlcnZpdmUgdG8gcmVnaXN0ZXJcclxuICAgKi9cclxuICByZWdpc3RlclNlcnZpY2Uoc2VydmljZTogQXBpU2VydmljZSk6IHZvaWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgZ2l2ZW4gc2VydmljZSBmcm9tIHRoZSByZWdpc3RyeS4gSWYgdGhlcmUgaXMgbm90IGFcclxuICAgKiBzZXJ2aWNlIHJlZ2lzdGVyZWQgdW5kZXIgdGhhdCBuYW1lLCB0aHJvd3MgYW5kIGVycm9yXHJcbiAgICpcclxuICAgKiBAdGVtcGxhdGUgVCBUaGUgdHlwZSBvZiB0aGUgc2VydmljZVxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZXJ2aWNlTmFtZSBUaGUgbmFtZSBvZiB0aGUgc2VydmljZS5cclxuICAgKiBAcmV0dXJucyB7VH0gVGhlIHJlcXVlc3RlZCBzZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0U2VydmljZTxUIGV4dGVuZHMgQXBpU2VydmljZT4oc2VydmljZU5hbWU6IHN0cmluZyk6IFQ7XHJcbn1cclxuXHJcbmNsYXNzIFNlcnZpY2VSZWdpc3RyeUltcGwgaW1wbGVtZW50cyBTZXJ2aWNlUmVnaXN0cnkge1xyXG4gIHByaXZhdGUgX3NlcnZpY2VzOiB7IFtzZXJ2aWNlTmFtZTogc3RyaW5nXTogQXBpU2VydmljZTsgfTtcclxuXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5fc2VydmljZXMgPSB7fTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3RlclNlcnZpY2Uoc2VydmljZTogQXBpU2VydmljZSk6IHZvaWQge1xyXG4gICAgdGhpcy5fc2VydmljZXNbc2VydmljZS5zZXJ2aWNlTmFtZV0gPSBzZXJ2aWNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFNlcnZpY2U8VCBleHRlbmRzIEFwaVNlcnZpY2U+KHNlcnZpY2VOYW1lOiBzdHJpbmcpOiBUIHtcclxuICAgIGlmICghdGhpcy5fc2VydmljZXMuaGFzT3duUHJvcGVydHkoc2VydmljZU5hbWUpKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gU2VydmljZSAke3NlcnZpY2VOYW1lfSBpcyByZWdpc3RlcmVkYCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX3NlcnZpY2VzW3NlcnZpY2VOYW1lXSBhcyBUO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIHN0YXRpYyBjbGFzcyB1c2VkIGZvciBnZXR0aW5nIGFjY2VzcyB0byB0aGUgc2luZ2xlIGluc3RhbmNlXHJcbiAqIG9mIHRoZSBBcGlTZXJ2aWNlUmVnaXN0cnlcclxuICovXHJcbmV4cG9ydCBjbGFzcyBBcGlTZXJ2aWNlUmVnaXN0cnkge1xyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIHNpbmdsZXRvbiBpbnN0YW5jZSBvZiB0aGUgU2VydmljZVJlZ2lzdHJ5XHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBnZXQgaW5zdGFuY2UoKTogU2VydmljZVJlZ2lzdHJ5IHtcclxuICAgIGlmICghd2luZG93Ll9fdGFibGVhdUFwaVNlcnZpY2VSZWdpc3RyeSkge1xyXG4gICAgICBBcGlTZXJ2aWNlUmVnaXN0cnkuc2V0SW5zdGFuY2UobmV3IFNlcnZpY2VSZWdpc3RyeUltcGwoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF3aW5kb3cuX190YWJsZWF1QXBpU2VydmljZVJlZ2lzdHJ5KSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignQXNzaWduaW5nIHNlcnZpY2UgcmVnaXN0cnkgZmFpbGVkJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHdpbmRvdy5fX3RhYmxlYXVBcGlTZXJ2aWNlUmVnaXN0cnk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIZWxwZXIgbWV0aG9kIHRvIG92ZXJyaWRlIHRoZSByZWdpc3RyeSBpbnN0YW5jZS4gQ2FuIGJlIHVzZWQgYnkgdW5pdCB0ZXN0c1xyXG4gICAqXHJcbiAgICogQHBhcmFtIHtTZXJ2aWNlUmVnaXN0cnl9IHNlcnZpY2VSZWdpc3RyeSBUaGUgbmV3IHJlZ2lzdHJ5XHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBzZXRJbnN0YW5jZShzZXJ2aWNlUmVnaXN0cnk/OiBTZXJ2aWNlUmVnaXN0cnkpOiB2b2lkIHtcclxuICAgIHdpbmRvdy5fX3RhYmxlYXVBcGlTZXJ2aWNlUmVnaXN0cnkgPSBzZXJ2aWNlUmVnaXN0cnk7XHJcbiAgfVxyXG5cclxuICAvLyBQcml2YXRlIHRvIGF2b2lkIGFueW9uZSBjb25zdHJ1Y3RpbmcgdGhpc1xyXG4gIHByaXZhdGUgY29uc3RydWN0b3IoKSB7fVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvU2VydmljZXMvU2VydmljZVJlZ2lzdHJ5LnRzXG4gKiovIiwiaW1wb3J0IHtcclxuICBFeGVjdXRlUGFyYW1ldGVycyxcclxuICBJbnRlcm5hbEFwaURpc3BhdGNoZXIsXHJcbiAgUGFyYW1ldGVySWQsXHJcbiAgVmVyYklkLFxyXG4gIFZpc3VhbElkLFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBTZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vU2VsZWN0aW9uU2VydmljZSc7XHJcbmltcG9ydCB7IFNlcnZpY2VOYW1lcyB9IGZyb20gJy4uL1NlcnZpY2VSZWdpc3RyeSc7XHJcblxyXG5leHBvcnQgY2xhc3MgU2VsZWN0aW9uU2VydmljZUltcGwgaW1wbGVtZW50cyBTZWxlY3Rpb25TZXJ2aWNlIHtcclxuICBwcml2YXRlIF9kaXNwYXRjaGVyOiBJbnRlcm5hbEFwaURpc3BhdGNoZXI7XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihkaXNwYXRjaGVyOiBJbnRlcm5hbEFwaURpc3BhdGNoZXIpIHtcclxuICAgIHRoaXMuX2Rpc3BhdGNoZXIgPSBkaXNwYXRjaGVyO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzZXJ2aWNlTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIFNlcnZpY2VOYW1lcy5TZWxlY3Rpb247XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRob2QgdG8gY2xlYXIgYWxsIHRoZSBzZWxlY3RlZCBtYXJrcyBmb3IgdGhlIGdpdmVuIHdvcmtzaGVldFxyXG4gICAqIEBwYXJhbSB2aXN1YWxJZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBjbGVhclNlbGVjdGVkTWFya3NBc3luYyh2aXN1YWxJZDogVmlzdWFsSWQpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHBhcmFtZXRlcnM6IEV4ZWN1dGVQYXJhbWV0ZXJzID0ge1tQYXJhbWV0ZXJJZC5WaXN1YWxJZF06IHZpc3VhbElkfTtcclxuICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUoVmVyYklkLkNsZWFyU2VsZWN0ZWRNYXJrcywgcGFyYW1ldGVycykudGhlbjx2b2lkPihyZXNwb25zZSA9PiB7XHJcbiAgICAgIHJldHVybiA7IC8vIEV4cGVjdGluZyBhbiBlbXB0eSBtb2RlbCBhbmQgaGVuY2UgdGhlIHZvaWQgcmVzcG9uc2UuXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9pbXBsL1NlbGVjdGlvblNlcnZpY2VJbXBsLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IERhc2hib2FyZEltcGwgfSBmcm9tICcuL0ludGVybmFsL0Rhc2hib2FyZEltcGwnO1xyXG5pbXBvcnQgeyBTaGVldCB9IGZyb20gJy4vU2hlZXQnO1xyXG5cclxuZXhwb3J0IGNsYXNzIERhc2hib2FyZCBleHRlbmRzIFNoZWV0IGltcGxlbWVudHMgQ29udHJhY3QuRGFzaGJvYXJkIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBkYXNoYm9hcmRJbXBsOiBEYXNoYm9hcmRJbXBsKSB7XHJcbiAgICBzdXBlcihkYXNoYm9hcmRJbXBsKTtcclxuICAgIGRhc2hib2FyZEltcGwuaW5pdGlhbGl6ZVdpdGhQdWJsaWNJbnRlcmZhY2VzKHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB3b3Jrc2hlZXRzKCk6IEFycmF5PENvbnRyYWN0LldvcmtzaGVldD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGFzaGJvYXJkSW1wbC53b3Jrc2hlZXRzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBvYmplY3RzKCk6IEFycmF5PENvbnRyYWN0LkRhc2hib2FyZE9iamVjdD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGFzaGJvYXJkSW1wbC5vYmplY3RzO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiAuLi9zcmMvRGFzaGJvYXJkLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IEV2ZW50TGlzdGVuZXJNYW5hZ2VyIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXNoYXJlZCc7XHJcblxyXG5pbXBvcnQgeyBTaGVldEltcGwgfSBmcm9tICcuL0ludGVybmFsL1NoZWV0SW1wbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgU2hlZXQgZXh0ZW5kcyBFdmVudExpc3RlbmVyTWFuYWdlciBpbXBsZW1lbnRzIENvbnRyYWN0LlNoZWV0IHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBzaGVldEltcGw6IFNoZWV0SW1wbCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc2hlZXRJbXBsLm5hbWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHNoZWV0VHlwZSgpOiBDb250cmFjdC5TaGVldFR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuc2hlZXRJbXBsLnNoZWV0VHlwZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2l6ZSgpOiBDb250cmFjdC5TaXplIHtcclxuICAgIHRocm93IG5ldyBFcnJvcignQVBJIGNhbGwgbm90IHlldCBpbXBsZW1lbnRlZCcpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZpbmRQYXJhbWV0ZXJBc3luYyhwYXJhbWV0ZXJOYW1lOiBzdHJpbmcpOiBQcm9taXNlPENvbnRyYWN0LlBhcmFtZXRlciB8IHVuZGVmaW5lZD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2hlZXRJbXBsLmZpbmRQYXJhbWV0ZXJBc3luYyhwYXJhbWV0ZXJOYW1lLCB0aGlzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRQYXJhbWV0ZXJzQXN5bmMoKTogUHJvbWlzZTxBcnJheTxDb250cmFjdC5QYXJhbWV0ZXI+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5zaGVldEltcGwuZ2V0UGFyYW1ldGVyc0FzeW5jKHRoaXMpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiAuLi9zcmMvU2hlZXQudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuLyoqXHJcbiAqIEltcGxlbWVudGF0aW9uIG9mIHRoZSBleHRlcm5hbCBEYXNoYm9hcmRDb250ZW50IG5hbWVzcGFjZS5cclxuICogVGhpcyBkb2VzIG5vdCBmb2xsb3cgdGhlIEltcGwgcGF0dGVybiBhcyBEYXNoYm9hcmRDb250ZW50IGlzXHJcbiAqIGN1cnJlbnRseSBqdXN0IGEgKHNpbmdsZSkgcHJvcGVydHkgYmFnLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIERhc2hib2FyZENvbnRlbnQgaW1wbGVtZW50cyBDb250cmFjdC5EYXNoYm9hcmRDb250ZW50IHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfZGFzaGJvYXJkOiBDb250cmFjdC5EYXNoYm9hcmQpIHsgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGRhc2hib2FyZCgpOiBDb250cmFjdC5EYXNoYm9hcmQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Rhc2hib2FyZDtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogLi4vc3JjL0V4dGVybmFsTmFtZXNwYWNlcy9EYXNoYm9hcmRDb250ZW50LnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IEFkZEluRW52aXJvbm1lbnQgfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBJbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MgYXMgRW51bU1hcHBpbmdzIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXNoYXJlZCc7XHJcblxyXG4vKipcclxuICogSW1wbGVtZW50YXRpb24gb2YgdGhlIGV4dGVybmFsIGVudmlyb25tZW50IG5hbWVzcGFjZS5cclxuICogRW52aXJvbm1lbnQgZG9lcyBub3QgZm9sbG93IHRoZSBJbXBsIHBhdHRlcm4gYXMgaXQgaXNcclxuICoganVzdCBhIHByb3BlcnR5IGJhZy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBFbnZpcm9ubWVudCBpbXBsZW1lbnRzIENvbnRyYWN0LkVudmlyb25tZW50IHtcclxuICBwcml2YXRlIF9hcGlWZXJzaW9uOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfY29udGV4dDogQ29udHJhY3QuQWRkSW5Db250ZXh0O1xyXG4gIHByaXZhdGUgX2xhbmd1YWdlOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfbG9jYWxlOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfbW9kZTogQ29udHJhY3QuQWRkSW5Nb2RlO1xyXG4gIHByaXZhdGUgX29wZXJhdGluZ1N5c3RlbTogc3RyaW5nO1xyXG4gIHByaXZhdGUgX3RhYmxlYXVWZXJzaW9uOiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihhZGRJbkVudmlyb25tZW50OiBBZGRJbkVudmlyb25tZW50KSB7XHJcbiAgICB0aGlzLl9hcGlWZXJzaW9uID0gYWRkSW5FbnZpcm9ubWVudC5hcGlWZXJzaW9uO1xyXG4gICAgdGhpcy5fY29udGV4dCA9IEVudW1NYXBwaW5ncy5hZGRJbkNvbnRleHQuY29udmVydChhZGRJbkVudmlyb25tZW50LmFkZEluQ29udGV4dCk7XHJcbiAgICB0aGlzLl9sYW5ndWFnZSA9IGFkZEluRW52aXJvbm1lbnQuYWRkSW5MYW5ndWFnZTtcclxuICAgIHRoaXMuX2xvY2FsZSA9IGFkZEluRW52aXJvbm1lbnQuYWRkSW5Mb2NhbGU7XHJcbiAgICB0aGlzLl9tb2RlID0gRW51bU1hcHBpbmdzLmFkZEluTW9kZS5jb252ZXJ0KGFkZEluRW52aXJvbm1lbnQuYWRkSW5Nb2RlKTtcclxuICAgIHRoaXMuX29wZXJhdGluZ1N5c3RlbSA9IGFkZEluRW52aXJvbm1lbnQub3BlcmF0aW5nU3lzdGVtO1xyXG4gICAgdGhpcy5fdGFibGVhdVZlcnNpb24gPSBhZGRJbkVudmlyb25tZW50LnRhYmxlYXVWZXJzaW9uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBhcGlWZXJzaW9uKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXBpVmVyc2lvbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY29udGV4dCgpOiBDb250cmFjdC5BZGRJbkNvbnRleHQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbnRleHQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGxhbmd1YWdlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGFuZ3VhZ2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGxvY2FsZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xvY2FsZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbW9kZSgpOiBDb250cmFjdC5BZGRJbk1vZGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX21vZGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG9wZXJhdGluZ1N5c3RlbSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX29wZXJhdGluZ1N5c3RlbTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdGFibGVhdVZlcnNpb24oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl90YWJsZWF1VmVyc2lvbjtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogLi4vc3JjL0V4dGVybmFsTmFtZXNwYWNlcy9FbnZpcm9ubWVudC50c1xuICoqLyIsImltcG9ydCB7IFNldHRpbmdzIGFzIFNldHRpbmdzQ29udHJhY3QgfSBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgU2V0dGluZ3NJbXBsIH0gZnJvbSAnLi4vSW50ZXJuYWwvU2V0dGluZ3NJbXBsJztcclxuaW1wb3J0IHsgU2V0dGluZ3NDb2xsZWN0aW9uIH0gZnJvbSAnLi4vU2VydmljZXMvU2V0dGluZ3NTZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgZXh0ZXJuYWwgc2V0dGluZ3MgbmFtZXNwYWNlLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFNldHRpbmdzIGltcGxlbWVudHMgU2V0dGluZ3NDb250cmFjdCB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgc2V0dGluZ3NJbXBsOiBTZXR0aW5nc0ltcGwpIHsgfVxyXG5cclxuICBwdWJsaWMgZXJhc2Uoa2V5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0dGluZ3NJbXBsLmVyYXNlKGtleSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0KGtleTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLnNldHRpbmdzSW1wbC5nZXQoa2V5KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRBbGwoKTogU2V0dGluZ3NDb2xsZWN0aW9uIHtcclxuICAgIHJldHVybiB0aGlzLnNldHRpbmdzSW1wbC5nZXRBbGwoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaXNNb2RpZmllZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNldHRpbmdzSW1wbC5pc01vZGlmaWVkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNhdmVBc3luYygpOiBQcm9taXNlPFNldHRpbmdzQ29sbGVjdGlvbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3NJbXBsLnNhdmVBc3luYygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXR0aW5nc0ltcGwuc2V0KGtleSwgdmFsdWUpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiAuLi9zcmMvRXh0ZXJuYWxOYW1lc3BhY2VzL1NldHRpbmdzLnRzXG4gKiovIiwiaW1wb3J0IHsgSW50ZXJuYWxBcGlEaXNwYXRjaGVyIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgQXBpU2VydmljZVJlZ2lzdHJ5IH0gZnJvbSAnQHRhYmxlYXUvYXBpLXNoYXJlZCc7XHJcblxyXG5pbXBvcnQgeyBJbml0aWFsaXphdGlvblNlcnZpY2VJbXBsIH0gZnJvbSAnLi9JbXBsL0luaXRpYWxpemF0aW9uU2VydmljZUltcGwnO1xyXG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2VJbXBsIH0gZnJvbSAgJy4vSW1wbC9TZXR0aW5nc1NlcnZpY2VJbXBsJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckFsbEFkZEluU2VydmljZXMoZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyKTogdm9pZCB7XHJcbiAgQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLnJlZ2lzdGVyU2VydmljZShuZXcgSW5pdGlhbGl6YXRpb25TZXJ2aWNlSW1wbChkaXNwYXRjaGVyKSk7XHJcbiAgQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLnJlZ2lzdGVyU2VydmljZShuZXcgU2V0dGluZ3NTZXJ2aWNlSW1wbChkaXNwYXRjaGVyKSk7XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogLi4vc3JjL1NlcnZpY2VzL1JlZ2lzdGVyQWxsQWRkSW5TZXJ2aWNlcy50c1xuICoqLyIsImltcG9ydCB7IEFkZEluQm9vdHN0cmFwSW5mbywgSW50ZXJuYWxBcGlEaXNwYXRjaGVyLCBWZXJiSWQgfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgQWRkSW5TZXJ2aWNlTmFtZXMgfSBmcm9tICcuLi9BZGRJblNlcnZpY2VOYW1lcyc7XHJcbmltcG9ydCB7IEluaXRpYWxpemF0aW9uU2VydmljZSB9IGZyb20gJy4uL0luaXRpYWxpemF0aW9uU2VydmljZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgSW5pdGlhbGl6YXRpb25TZXJ2aWNlSW1wbCBpbXBsZW1lbnRzIEluaXRpYWxpemF0aW9uU2VydmljZSB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyKSB7IH1cclxuXHJcbiAgcHVibGljIGdldCBzZXJ2aWNlTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIEFkZEluU2VydmljZU5hbWVzLkluaXRpYWxpemF0aW9uU2VydmljZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbml0aWFsaXplRGFzaGJvYXJkQWRkSW5Bc3luYygpOiBQcm9taXNlPEFkZEluQm9vdHN0cmFwSW5mbz4ge1xyXG4gICAgLy8gV2UgZG9uJ3QgbmVlZCBhbnkgcGFyYW1ldGVycyBmb3IgdGhpcyBjYWxsIGJlY2F1c2UgdGhleSBhcmUgYWRkZWQgaW4gZm9yIHVzIGJ5IHRoZSBkaXNwYXRjaGVyXHJcbiAgICByZXR1cm4gdGhpcy5kaXNwYXRjaGVyLmV4ZWN1dGUoVmVyYklkLkluaXRpYWxpemVBZGRJbiwge30pLnRoZW48QWRkSW5Cb290c3RyYXBJbmZvPihyZXNwb25zZSA9PiB7XHJcbiAgICAgIC8vIFRPRE8gLSBWYWxpZGF0ZSByZXR1cm4gdmFsdWVcclxuXHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHJlc3BvbnNlLnJlc3VsdCBhcyBBZGRJbkJvb3RzdHJhcEluZm87XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogLi4vc3JjL1NlcnZpY2VzL0ltcGwvSW5pdGlhbGl6YXRpb25TZXJ2aWNlSW1wbC50c1xuICoqLyIsImltcG9ydCB7XHJcbiAgQWRkSW5TZXR0aW5nc0luZm8sXHJcbiAgRXhlY3V0ZVBhcmFtZXRlcnMsXHJcbiAgSW50ZXJuYWxBcGlEaXNwYXRjaGVyLFxyXG4gIFBhcmFtZXRlcklkLFxyXG4gIFZlcmJJZFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBBZGRJblNlcnZpY2VOYW1lcyB9IGZyb20gJy4uL0FkZEluU2VydmljZU5hbWVzJztcclxuaW1wb3J0IHsgU2V0dGluZ3NDb2xsZWN0aW9uLCBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi9TZXR0aW5nc1NlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFNldHRpbmdzU2VydmljZUltcGwgaW1wbGVtZW50cyBTZXR0aW5nc1NlcnZpY2Uge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpc3BhdGNoZXI6IEludGVybmFsQXBpRGlzcGF0Y2hlcikgeyB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2VydmljZU5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBBZGRJblNlcnZpY2VOYW1lcy5TZXR0aW5nc1NlcnZpY2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2F2ZVNldHRpbmdzQXN5bmMoc2V0dGluZ3M6IFNldHRpbmdzQ29sbGVjdGlvbik6IFByb21pc2U8U2V0dGluZ3NDb2xsZWN0aW9uPiB7XHJcbiAgICBjb25zdCBwYXJhbWV0ZXJzOiBFeGVjdXRlUGFyYW1ldGVycyA9IHt9O1xyXG4gICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5TZXR0aW5nc1ZhbHVlc10gPSBzZXR0aW5ncztcclxuXHJcbiAgICByZXR1cm4gdGhpcy5kaXNwYXRjaGVyLmV4ZWN1dGUoVmVyYklkLlNhdmVBZGRJblNldHRpbmdzLCBwYXJhbWV0ZXJzKS50aGVuPFNldHRpbmdzQ29sbGVjdGlvbj4odmFsdWUgPT4ge1xyXG4gICAgICBjb25zdCByZXN1bHQgPSB2YWx1ZS5yZXN1bHQgYXMgQWRkSW5TZXR0aW5nc0luZm87XHJcblxyXG4gICAgICBpZiAoIXJlc3VsdCB8fCAhcmVzdWx0LnNldHRpbmdzVmFsdWVzKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcm5hbCBlcnJvciBzYXZpbmcgc2V0dGluZ3MuJyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybihyZXN1bHQuc2V0dGluZ3NWYWx1ZXMpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIC4uL3NyYy9TZXJ2aWNlcy9JbXBsL1NldHRpbmdzU2VydmljZUltcGwudHNcbiAqKi8iLCJpbXBvcnQgeyBWZXJzaW9uTnVtYmVyIGFzIFZlcnNpb25OdW1iZXJDb250cmFjdCB9IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5kZWNsYXJlIHZhciBBRERJTl9BUElfVkVSU0lPTl9OVU1CRVI6IHN0cmluZztcclxuXHJcbi8qKlxyXG4gKiBSZXByZXNlbnRzIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgdGhlIGFkZGluIGxpYnJhcnlcclxuICovXHJcbmV4cG9ydCBjbGFzcyBWZXJzaW9uTnVtYmVyIGltcGxlbWVudHMgVmVyc2lvbk51bWJlckNvbnRyYWN0IHtcclxuXHJcbiAgLy8gVXNpbmcgc29tZSB3ZWJwYWNrIHRyaWNrcywgd2UgY2FuIGluamVjdCB0aGlzIHZlcnNpb24gaW50byBvdXIgY29kZSAoa2luZGEgbGlrZSBjKysgcHJlcHJvY2Vzc29yIHN0dWZmKVxyXG4gIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogVmVyc2lvbk51bWJlciA9IG5ldyBWZXJzaW9uTnVtYmVyKEFERElOX0FQSV9WRVJTSU9OX05VTUJFUik7XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIHNpbmdsZXRvbiBpbnN0YW5jZSBvZiB0aGUgdmVyc2lvbiBudW1iZXIuXHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBnZXQgSW5zdGFuY2UoKTogVmVyc2lvbk51bWJlciB7XHJcbiAgICByZXR1cm4gVmVyc2lvbk51bWJlci5faW5zdGFuY2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9tYWpvcjogbnVtYmVyO1xyXG4gIHByaXZhdGUgX21pbm9yOiBudW1iZXI7XHJcbiAgcHJpdmF0ZSBfZml4OiBudW1iZXI7XHJcblxyXG4gIC8vIHByaXZhdGUgY29uc3RydWN0b3Igc28gZXZlcnlvbmUgdXNlcyB0aGUgc2luZ2xldG9uIGluc3RhbmNlXHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2ZXJzaW9uU3RyaW5nOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHBhcnRzID0gdmVyc2lvblN0cmluZy5zcGxpdCgnLicpLm1hcChwID0+IHBhcnNlSW50KHAsIDEwKSk7XHJcbiAgICBpZiAocGFydHMubGVuZ3RoICE9PSAzKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB2ZXJzaW9uIG51bWJlcjogJyArIHZlcnNpb25TdHJpbmcpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX21ham9yID0gcGFydHNbMF07XHJcbiAgICB0aGlzLl9taW5vciA9IHBhcnRzWzFdO1xyXG4gICAgdGhpcy5fZml4ID0gcGFydHNbMl07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG1ham9yKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWFqb3I7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG1pbm9yKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWlub3I7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGZpeCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpeDtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogLi4vc3JjL1ZlcnNpb25OdW1iZXIudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBBZGRJbkRhc2hib2FyZEluZm8sIERhc2hib2FyZE9iamVjdFR5cGUsIFNoZWV0UGF0aCwgVmlzdWFsSWQgfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBQb2ludCwgU2l6ZSB9IGZyb20gJ0B0YWJsZWF1L2FwaS1zaGFyZWQnO1xyXG5cclxuaW1wb3J0IHsgRGFzaGJvYXJkT2JqZWN0IH0gZnJvbSAnLi4vRGFzaGJvYXJkT2JqZWN0JztcclxuaW1wb3J0IHsgV29ya3NoZWV0IH0gZnJvbSAnLi4vV29ya3NoZWV0JztcclxuaW1wb3J0IHsgU2hlZXRJbXBsIH0gZnJvbSAnLi9TaGVldEltcGwnO1xyXG5pbXBvcnQgeyBTaGVldEluZm9JbXBsIH0gZnJvbSAnLi9TaGVldEluZm9JbXBsJztcclxuaW1wb3J0IHsgV29ya3NoZWV0SW1wbCB9IGZyb20gJy4vV29ya3NoZWV0SW1wbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRGFzaGJvYXJkSW1wbCBleHRlbmRzIFNoZWV0SW1wbCB7XHJcbiAgcHJpdmF0ZSBfd29ya3NoZWV0czogQXJyYXk8Q29udHJhY3QuV29ya3NoZWV0PjtcclxuICBwcml2YXRlIF9vYmplY3RzOiBBcnJheTxDb250cmFjdC5EYXNoYm9hcmRPYmplY3Q+O1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfaW5mbzogQWRkSW5EYXNoYm9hcmRJbmZvLCBwcml2YXRlIF9zaGVldFBhdGg6IFNoZWV0UGF0aCkge1xyXG4gICAgc3VwZXIobmV3IFNoZWV0SW5mb0ltcGwoX2luZm8ubmFtZSwgQ29udHJhY3QuU2hlZXRUeXBlLkRhc2hib2FyZCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB3b3Jrc2hlZXRzKCk6IEFycmF5PENvbnRyYWN0LldvcmtzaGVldD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldHM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG9iamVjdHMoKTogQXJyYXk8Q29udHJhY3QuRGFzaGJvYXJkT2JqZWN0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fb2JqZWN0cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbml0aWFsaXplV2l0aFB1YmxpY0ludGVyZmFjZXMoZGFzaGJvYXJkOiBDb250cmFjdC5EYXNoYm9hcmQpOiB2b2lkIHtcclxuICAgIHRoaXMuX3dvcmtzaGVldHMgPSBuZXcgQXJyYXk8V29ya3NoZWV0PigpO1xyXG4gICAgdGhpcy5fb2JqZWN0cyA9IG5ldyBBcnJheTxDb250cmFjdC5EYXNoYm9hcmRPYmplY3Q+KCk7XHJcblxyXG4gICAgLy8gUHJvY2VzcyBhbGwgdGhlIHpvbmVzIHdoaWNoIGFyZSBjb250YWluZWQgaW4gdGhpcyBkYXNoYm9hcmRcclxuICAgIGZvciAoY29uc3Qgem9uZSBvZiB0aGlzLl9pbmZvLnpvbmVzKSB7XHJcbiAgICAgIGxldCB3b3Jrc2hlZXQ6IFdvcmtzaGVldCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICAgIGlmICh6b25lLnpvbmVUeXBlID09PSBEYXNoYm9hcmRPYmplY3RUeXBlLldvcmtzaGVldCkge1xyXG4gICAgICAgIGNvbnN0IHNoZWV0SW5mbyA9IG5ldyBTaGVldEluZm9JbXBsKHpvbmUubmFtZSwgQ29udHJhY3QuU2hlZXRUeXBlLldvcmtzaGVldCk7XHJcbiAgICAgICAgY29uc3Qgdml6SWQ6IFZpc3VhbElkID0ge1xyXG4gICAgICAgICAgd29ya3NoZWV0OiB6b25lLm5hbWUsXHJcbiAgICAgICAgICBkYXNoYm9hcmQ6IHRoaXMuX2luZm8ubmFtZSxcclxuICAgICAgICAgIHN0b3J5Ym9hcmQ6IHRoaXMuX3NoZWV0UGF0aC5zdG9yeWJvYXJkLFxyXG4gICAgICAgICAgZmxpcGJvYXJkWm9uZUlEOiB0aGlzLl9zaGVldFBhdGguZmxpcGJvYXJkWm9uZUlELFxyXG4gICAgICAgICAgc3RvcnlQb2ludElEOiB0aGlzLl9zaGVldFBhdGguc3RvcnlQb2ludElEXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgY29uc3Qgd29ya3NoZWV0SW1wbCA9IG5ldyBXb3Jrc2hlZXRJbXBsKHNoZWV0SW5mbywgdml6SWQpO1xyXG4gICAgICAgIHdvcmtzaGVldCA9IG5ldyBXb3Jrc2hlZXQod29ya3NoZWV0SW1wbCk7XHJcbiAgICAgICAgdGhpcy5fd29ya3NoZWV0cy5wdXNoKHdvcmtzaGVldCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IHpvbmVQb2ludCA9IG5ldyBQb2ludCh6b25lLngsIHpvbmUueSk7XHJcbiAgICAgIGNvbnN0IHpvbmVTaXplID0gbmV3IFNpemUoem9uZS5oZWlnaHQsIHpvbmUud2lkdGgpO1xyXG5cclxuICAgICAgY29uc3QgZGFzaGJvYXJkT2JqZWN0ID0gbmV3IERhc2hib2FyZE9iamVjdChcclxuICAgICAgICBkYXNoYm9hcmQsXHJcbiAgICAgICAgem9uZS56b25lVHlwZSxcclxuICAgICAgICB6b25lUG9pbnQsXHJcbiAgICAgICAgem9uZVNpemUsXHJcbiAgICAgICAgd29ya3NoZWV0XHJcbiAgICAgICk7XHJcblxyXG4gICAgICB0aGlzLl9vYmplY3RzLnB1c2goZGFzaGJvYXJkT2JqZWN0KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogLi4vc3JjL0ludGVybmFsL0Rhc2hib2FyZEltcGwudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuLyoqXHJcbiAqIEltcGxlbWVudGF0aW9uIG9mIHRoZSBkYXNoYm9hcmQgb2JqZWN0cyAtIHRoZSB6b25lcyBpbiBhIGRhc2hib2FyZC5cclxuICogVGhpcyBkb2VzIG5vdCBmb2xsb3cgdGhlIEltcGwgcGF0dGVybiBhcyBpdCBpcyBqdXN0IGEgcHJvcGVydHkgYmFnLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIERhc2hib2FyZE9iamVjdCBpbXBsZW1lbnRzIENvbnRyYWN0LkRhc2hib2FyZE9iamVjdCB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZGFzaGJvYXJkOiBDb250cmFjdC5EYXNoYm9hcmQsXHJcbiAgICBwcml2YXRlIF90eXBlOiBDb250cmFjdC5EYXNoYm9hcmRPYmplY3RUeXBlLFxyXG4gICAgcHJpdmF0ZSBfcG9zaXRpb246IENvbnRyYWN0LlBvaW50LFxyXG4gICAgcHJpdmF0ZSBfc2l6ZTogQ29udHJhY3QuU2l6ZSxcclxuICAgIHByaXZhdGUgX3dvcmtzaGVldDogQ29udHJhY3QuV29ya3NoZWV0IHwgdW5kZWZpbmVkXHJcbiAgKSB7IH1cclxuXHJcbiAgcHVibGljIGdldCBkYXNoYm9hcmQoKTogQ29udHJhY3QuRGFzaGJvYXJkIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXNoYm9hcmQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHR5cGUoKTogQ29udHJhY3QuRGFzaGJvYXJkT2JqZWN0VHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdHlwZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgcG9zaXRpb24oKTogQ29udHJhY3QuUG9pbnQge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzaXplKCk6IENvbnRyYWN0LlNpemUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NpemU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHdvcmtzaGVldCgpOiBDb250cmFjdC5Xb3Jrc2hlZXQgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldDtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogLi4vc3JjL0Rhc2hib2FyZE9iamVjdC50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBTaGVldCB9IGZyb20gJy4vU2hlZXQnO1xyXG5cclxuaW1wb3J0IHsgV29ya3NoZWV0SW1wbCB9IGZyb20gJy4vSW50ZXJuYWwvV29ya3NoZWV0SW1wbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgV29ya3NoZWV0IGV4dGVuZHMgU2hlZXQgaW1wbGVtZW50cyBDb250cmFjdC5Xb3Jrc2hlZXQge1xyXG4gIHByaXZhdGUgX3dvcmtzaGVldEltcGw6IFdvcmtzaGVldEltcGw7XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcih3b3Jrc2hlZXRJbXBsOiBXb3Jrc2hlZXRJbXBsKSB7XHJcbiAgICBzdXBlcih3b3Jrc2hlZXRJbXBsKTtcclxuICAgIHRoaXMuX3dvcmtzaGVldEltcGwgPSB3b3Jrc2hlZXRJbXBsO1xyXG5cclxuICAgIC8vIENhbGwgdG8gaW5pdGlhbGl6ZSBldmVudHMgYW5kIHRoZW4gY2FsbCBkb3duIHRvIHRoZSBldmVudCBsaXN0ZW5lciBtYW5hZ2VyIHRvIGhhbmRsZSB0aGluZ3NcclxuICAgIHRoaXMuX3dvcmtzaGVldEltcGwuaW5pdGlhbGl6ZUV2ZW50cyh0aGlzKS5mb3JFYWNoKGUgPT4gdGhpcy5hZGROZXdFdmVudFR5cGUoZSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBwYXJlbnREYXNoYm9hcmQoKTogQ29udHJhY3QuRGFzaGJvYXJkIHtcclxuICAgIHRocm93IG5ldyBFcnJvcignQVBJIGNhbGwgbm90IHlldCBpbXBsZW1lbnRlZCcpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFwcGx5RmlsdGVyQXN5bmMoXHJcbiAgICBmaWVsZE5hbWU6IHN0cmluZywgdmFsdWVzOiBBcnJheTxzdHJpbmc+LCB1cGRhdGVUeXBlOiBDb250cmFjdC5GaWx0ZXJVcGRhdGVUeXBlLCBvcHRpb25zOiBDb250cmFjdC5GaWx0ZXJPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldEltcGwuYXBwbHlGaWx0ZXJBc3luYyhmaWVsZE5hbWUsIHZhbHVlcywgdXBkYXRlVHlwZSwgb3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXBwbHlSYW5nZUZpbHRlckFzeW5jKGZpZWxkTmFtZTogc3RyaW5nLCBmaWx0ZXJPcHRpb25zOiBDb250cmFjdC5SYW5nZUZpbHRlck9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldEltcGwuYXBwbHlSYW5nZUZpbHRlckFzeW5jKGZpZWxkTmFtZSwgZmlsdGVyT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xlYXJGaWx0ZXJBc3luYyhmaWVsZE5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fd29ya3NoZWV0SW1wbC5jbGVhckZpbHRlckFzeW5jKGZpZWxkTmFtZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0RmlsdGVyc0FzeW5jKCk6IFByb21pc2U8Q29udHJhY3QuRmlsdGVyW10+IHtcclxuICAgIHRocm93IG5ldyBFcnJvcignQVBJIGNhbGwgbm90IHlldCBpbXBsZW1lbnRlZCcpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFNlbGVjdGVkTWFya3NBc3luYygpOiBQcm9taXNlPENvbnRyYWN0LkFjdGl2ZU1hcmtzPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fd29ya3NoZWV0SW1wbC5nZXRTZWxlY3RlZE1hcmtzQXN5bmMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRIaWdobGlnaHRlZE1hcmtzQXN5bmMoKTogUHJvbWlzZTxDb250cmFjdC5BY3RpdmVNYXJrcz4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldEltcGwuZ2V0SGlnaGxpZ2h0ZWRNYXJrc0FzeW5jKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U3VtbWFyeURhdGFBc3luYyhvcHRpb25zOiBDb250cmFjdC5HZXRTdW1tYXJ5RGF0YU9wdGlvbnMpOiBQcm9taXNlPENvbnRyYWN0LkRhdGFUYWJsZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldEltcGwuZ2V0U3VtbWFyeURhdGFBc3luYyhvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRVbmRlcmx5aW5nRGF0YUFzeW5jKG9wdGlvbnM6IENvbnRyYWN0LkdldFVuZGVybHlpbmdEYXRhT3B0aW9ucyk6IFByb21pc2U8Q29udHJhY3QuRGF0YVRhYmxlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fd29ya3NoZWV0SW1wbC5nZXRVbmRlcmx5aW5nRGF0YUFzeW5jKG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsZWFyU2VsZWN0ZWRNYXJrc0FzeW5jKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldEltcGwuY2xlYXJTZWxlY3RlZE1hcmtzQXN5bmMoKTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogLi4vc3JjL1dvcmtzaGVldC50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBTaGVldFBhdGggfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBBcGlTZXJ2aWNlUmVnaXN0cnksIFBhcmFtZXRlcnNTZXJ2aWNlLCBTZXJ2aWNlTmFtZXMgfSBmcm9tICdAdGFibGVhdS9hcGktc2hhcmVkJztcclxuXHJcbmltcG9ydCB7IFNoZWV0SW5mb0ltcGwgfSBmcm9tICcuL1NoZWV0SW5mb0ltcGwnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFNoZWV0SW1wbCB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgc2hlZXRJbmZvSW1wbDogU2hlZXRJbmZvSW1wbCkge1xyXG4gIH1cclxuXHJcbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnNoZWV0SW5mb0ltcGwubmFtZTtcclxuICB9XHJcblxyXG4gIGdldCBzaGVldFR5cGUoKTogQ29udHJhY3QuU2hlZXRUeXBlIHtcclxuICAgIHJldHVybiB0aGlzLnNoZWV0SW5mb0ltcGwuc2hlZXRUeXBlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNoZWV0UGF0aCgpOiBTaGVldFBhdGgge1xyXG4gICAgcmV0dXJuIHRoaXMuc2hlZXRJbmZvSW1wbC5zaGVldFBhdGg7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZmluZFBhcmFtZXRlckFzeW5jKHBhcmFtZXRlck5hbWU6IHN0cmluZywgc2hlZXQ6IENvbnRyYWN0LlNoZWV0KTogUHJvbWlzZTxDb250cmFjdC5QYXJhbWV0ZXIgfCB1bmRlZmluZWQ+IHtcclxuICAgIGNvbnN0IHNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxQYXJhbWV0ZXJzU2VydmljZT4oU2VydmljZU5hbWVzLlBhcmFtZXRlcnMpO1xyXG4gICAgcmV0dXJuIHNlcnZpY2UuZmluZFBhcmFtZXRlckJ5TmFtZUFzeW5jKHBhcmFtZXRlck5hbWUsIHNoZWV0KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRQYXJhbWV0ZXJzQXN5bmMoc2hlZXQ6IENvbnRyYWN0LlNoZWV0KTogUHJvbWlzZTxBcnJheTxDb250cmFjdC5QYXJhbWV0ZXI+PiB7XHJcbiAgICBjb25zdCBzZXJ2aWNlID0gQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2U8UGFyYW1ldGVyc1NlcnZpY2U+KFNlcnZpY2VOYW1lcy5QYXJhbWV0ZXJzKTtcclxuICAgIHJldHVybiBzZXJ2aWNlLmdldFBhcmFtZXRlcnNGb3JTaGVldEFzeW5jKHRoaXMuc2hlZXRQYXRoLCBzaGVldCk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIC4uL3NyYy9JbnRlcm5hbC9TaGVldEltcGwudHNcbiAqKi8iLCJpbXBvcnQgeyBTaGVldFR5cGUgfSBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBTaGVldFBhdGggfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFNoZWV0SW5mb0ltcGwge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX25hbWU6IHN0cmluZyxcclxuICAgIHByaXZhdGUgX3NoZWV0VHlwZTogU2hlZXRUeXBlXHJcbiAgICAvLyBUT0RPOiBab25lSWRcclxuICAgIC8vIFRPRE86IFNoZWV0U2l6ZVxyXG4gICkgeyB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX25hbWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHNoZWV0VHlwZSgpOiBTaGVldFR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NoZWV0VHlwZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2hlZXRQYXRoKCk6IFNoZWV0UGF0aCB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBzaGVldE5hbWU6IHRoaXMubmFtZSxcclxuICAgICAgaXNEYXNoYm9hcmQ6IHRoaXMuc2hlZXRUeXBlID09PSBTaGVldFR5cGUuRGFzaGJvYXJkXHJcbiAgICAgIC8vIFRPRE8gLSBTdG9yaWVzXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiAuLi9zcmMvSW50ZXJuYWwvU2hlZXRJbmZvSW1wbC50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IEZpbHRlckV2ZW50LCBOb3RpZmljYXRpb25JZCwgVmlzdWFsSWQgfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQge1xyXG4gIEFwaVNlcnZpY2VSZWdpc3RyeSxcclxuICBGaWx0ZXJDaGFuZ2VkRXZlbnQsXHJcbiAgRmlsdGVyU2VydmljZSxcclxuICBHZXREYXRhU2VydmljZSxcclxuICBHZXREYXRhVHlwZSxcclxuICBNYXJrc1NlbGVjdGVkRXZlbnQsXHJcbiAgTm90aWZpY2F0aW9uU2VydmljZSxcclxuICBTZWxlY3Rpb25TZXJ2aWNlLFxyXG4gIFNlcnZpY2VOYW1lcyxcclxuICBTaW5nbGVFdmVudE1hbmFnZXIsXHJcbiAgU2luZ2xlRXZlbnRNYW5hZ2VySW1wbFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1zaGFyZWQnO1xyXG5cclxuaW1wb3J0IHsgV29ya3NoZWV0IH0gZnJvbSAnLi4vV29ya3NoZWV0JztcclxuaW1wb3J0IHsgU2hlZXRJbXBsIH0gZnJvbSAnLi9TaGVldEltcGwnO1xyXG5pbXBvcnQgeyBTaGVldEluZm9JbXBsIH0gZnJvbSAnLi9TaGVldEluZm9JbXBsJztcclxuXHJcbmNvbnN0IHZpc3VhbElkc0FyZUVxdWFsID0gZnVuY3Rpb24oYTogVmlzdWFsSWQsIGI6IFZpc3VhbElkKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIGEgJiYgYiAmJlxyXG4gICAgYS53b3Jrc2hlZXQgPT09IGIud29ya3NoZWV0ICYmXHJcbiAgICBhLmRhc2hib2FyZCA9PT0gYi5kYXNoYm9hcmQgJiZcclxuICAgIGEuc3Rvcnlib2FyZCA9PT0gYi5zdG9yeWJvYXJkICYmXHJcbiAgICBhLnN0b3J5UG9pbnRJRCA9PT0gYi5zdG9yeVBvaW50SUQgJiZcclxuICAgIGEuZmxpcGJvYXJkWm9uZUlEID09PSBiLmZsaXBib2FyZFpvbmVJRDtcclxufTtcclxuXHJcbmV4cG9ydCBjbGFzcyBXb3Jrc2hlZXRJbXBsIGV4dGVuZHMgU2hlZXRJbXBsIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3Ioc2hlZXRJbmZvSW1wbDogU2hlZXRJbmZvSW1wbCwgcHJpdmF0ZSBfdmlzdWFsSWQ6IFZpc3VhbElkKSB7XHJcbiAgICBzdXBlcihzaGVldEluZm9JbXBsKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhlbHBlciBtZXRob2Qgd2hpY2ggZ29lcyB0aHJvdWdoIGFuZCByZWdpc3RlcnMgZWFjaCBldmVudCB0eXBlIHRoaXMgaW1wbCBrbm93cyBhYm91dFxyXG4gICAqIHdpdGggdGhlIE5vdGlmaWNhdGlvblNlcnZpY2UuIEl0IHJldHVybnMgYW4gYXJyYXkgb2YgU2luZ2xlRXZlbnRNYW5hZ2VyIG9iamVjdHMgd2hpY2hcclxuICAgKiBjYW4gdGhlbiBiZSBwYXNzZWQgdG8gYW4gRXZlbnRMaXN0ZW5lck1hbmFnZXIgdG8gaGFuZGxlIHVzZXIgcmVnaXN0cmF0aW9uIC8gdW5yZWdpc3RyYXRpb24uXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1dvcmtzaGVldH0gd29ya3NoZWV0IFRoZSB3b3Jrc2hlZXQgb2JqZWN0IHdoaWNoIHdpbGwgYmUgaW5jbHVkZWQgd2l0aCB0aGUgZXZlbnQgbm90aWZpY2F0aW9uc1xyXG4gICAqIEByZXR1cm5zIHtBcnJheTxTaW5nbGVFdmVudE1hbmFnZXI+fSBDb2xsZWN0aW9uIG9mIGV2ZW50IG1hbmFnZXJzIHRvIHBhc3MgdG8gYW4gRXZlbnRMaXN0ZW5lck1hbmFnZXJcclxuICAgKi9cclxuICBwdWJsaWMgaW5pdGlhbGl6ZUV2ZW50cyh3b3Jrc2hlZXQ6IFdvcmtzaGVldCk6IEFycmF5PFNpbmdsZUV2ZW50TWFuYWdlcj4ge1xyXG4gICAgY29uc3QgcmVzdWx0cyA9IG5ldyBBcnJheTxTaW5nbGVFdmVudE1hbmFnZXI+KCk7XHJcbiAgICBsZXQgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBub3RpZmljYXRpb25TZXJ2aWNlID0gQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2U8Tm90aWZpY2F0aW9uU2VydmljZT4oU2VydmljZU5hbWVzLk5vdGlmaWNhdGlvbik7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIC8vIElmIHdlIGRvbid0IGhhdmUgdGhpcyBzZXJ2aWNlIHJlZ2lzdGVyZWQsIGp1c3QgcmV0dXJuXHJcbiAgICAgIHJldHVybiByZXN1bHRzO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEluaXRpYWxpemUgYWxsIG9mIHRoZSBldmVudCBtYW5hZ2VycyB3ZSdsbCBuZWVkIChvbmUgZm9yIGVhY2ggZXZlbnQgdHlwZSlcclxuICAgIGNvbnN0IG1hcmtzRXZlbnQgPSBuZXcgU2luZ2xlRXZlbnRNYW5hZ2VySW1wbDxNYXJrc1NlbGVjdGVkRXZlbnQ+KENvbnRyYWN0LlRhYmxlYXVFdmVudFR5cGUuTWFya1NlbGVjdGlvbkNoYW5nZWQpO1xyXG4gICAgbm90aWZpY2F0aW9uU2VydmljZS5yZWdpc3RlckhhbmRsZXIoTm90aWZpY2F0aW9uSWQuU2VsZWN0ZWRNYXJrc0NoYW5nZWQsIChtb2RlbCkgPT4ge1xyXG4gICAgICBjb25zdCB2aXN1YWxJZCA9IG1vZGVsIGFzIFZpc3VhbElkO1xyXG4gICAgICByZXR1cm4gdmlzdWFsSWRzQXJlRXF1YWwodmlzdWFsSWQsIHRoaXMudmlzdWFsSWQpO1xyXG4gICAgfSwgKHZpejogVmlzdWFsSWQpID0+IHtcclxuICAgICAgbWFya3NFdmVudC50cmlnZ2VyRXZlbnQoKCkgPT4gbmV3IE1hcmtzU2VsZWN0ZWRFdmVudCh3b3Jrc2hlZXQpKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGZpbHRlckV2ZW50ID0gbmV3IFNpbmdsZUV2ZW50TWFuYWdlckltcGw8RmlsdGVyQ2hhbmdlZEV2ZW50PihDb250cmFjdC5UYWJsZWF1RXZlbnRUeXBlLkZpbHRlckNoYW5nZWQpO1xyXG4gICAgbm90aWZpY2F0aW9uU2VydmljZS5yZWdpc3RlckhhbmRsZXIoTm90aWZpY2F0aW9uSWQuRmlsdGVyQ2hhbmdlZCwgKG1vZGVsKSA9PiB7XHJcbiAgICAgIGNvbnN0IGZpbHRlckV2ZW50UmVzcG9uc2UgPSBtb2RlbCBhcyBGaWx0ZXJFdmVudDtcclxuICAgICAgcmV0dXJuIHRoaXMudmlzdWFsSWQud29ya3NoZWV0ID09PSBmaWx0ZXJFdmVudFJlc3BvbnNlLnZpc3VhbElkLndvcmtzaGVldDtcclxuICAgIH0sIChldmVudDogRmlsdGVyRXZlbnQpID0+IHtcclxuICAgICAgZmlsdGVyRXZlbnQudHJpZ2dlckV2ZW50KCgpID0+IG5ldyBGaWx0ZXJDaGFuZ2VkRXZlbnQod29ya3NoZWV0LCBldmVudC5maWVsZE5hbWUpKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJlc3VsdHMucHVzaChtYXJrc0V2ZW50KTtcclxuICAgIHJlc3VsdHMucHVzaChmaWx0ZXJFdmVudCk7XHJcblxyXG4gICAgLy8gVE9ETyAtIG90aGVyIGV2ZW50IHR5cGVzXHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdHM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHZpc3VhbElkKCk6IFZpc3VhbElkIHtcclxuICAgIHJldHVybiB0aGlzLl92aXN1YWxJZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhcHBseUZpbHRlckFzeW5jKFxyXG4gICAgZmllbGROYW1lOiBzdHJpbmcsIHZhbHVlczogQXJyYXk8c3RyaW5nPiwgdXBkYXRlVHlwZTogQ29udHJhY3QuRmlsdGVyVXBkYXRlVHlwZSwgb3B0aW9uczogQ29udHJhY3QuRmlsdGVyT3B0aW9ucyk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICAgIGNvbnN0IHNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxGaWx0ZXJTZXJ2aWNlPihTZXJ2aWNlTmFtZXMuRmlsdGVyKTtcclxuICAgICAgcmV0dXJuIHNlcnZpY2UuYXBwbHlGaWx0ZXJBc3luYyh0aGlzLnZpc3VhbElkLCBmaWVsZE5hbWUsIHZhbHVlcywgdXBkYXRlVHlwZSwgb3B0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gIHB1YmxpYyBhcHBseVJhbmdlRmlsdGVyQXN5bmMoZmllbGROYW1lOiBzdHJpbmcsIGZpbHRlck9wdGlvbnM6IENvbnRyYWN0LlJhbmdlRmlsdGVyT3B0aW9ucyk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICBjb25zdCBzZXJ2aWNlID0gQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2U8RmlsdGVyU2VydmljZT4oU2VydmljZU5hbWVzLkZpbHRlcik7XHJcbiAgICByZXR1cm4gc2VydmljZS5hcHBseVJhbmdlRmlsdGVyQXN5bmModGhpcy52aXN1YWxJZCwgZmllbGROYW1lLCBmaWx0ZXJPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhckZpbHRlckFzeW5jKGZpZWxkTmFtZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIGNvbnN0IHNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxGaWx0ZXJTZXJ2aWNlPihTZXJ2aWNlTmFtZXMuRmlsdGVyKTtcclxuICAgIHJldHVybiBzZXJ2aWNlLmNsZWFyRmlsdGVyQXN5bmModGhpcy52aXN1YWxJZCwgZmllbGROYW1lKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTZWxlY3RlZE1hcmtzQXN5bmMoKTogUHJvbWlzZTxDb250cmFjdC5BY3RpdmVNYXJrcz4ge1xyXG4gICAgY29uc3Qgc2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPEdldERhdGFTZXJ2aWNlPihTZXJ2aWNlTmFtZXMuR2V0RGF0YSk7XHJcbiAgICByZXR1cm4gc2VydmljZS5nZXRTZWxlY3RlZE1hcmtzQXN5bmModGhpcy52aXN1YWxJZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0SGlnaGxpZ2h0ZWRNYXJrc0FzeW5jKCk6IFByb21pc2U8Q29udHJhY3QuQWN0aXZlTWFya3M+IHtcclxuICAgIGNvbnN0IHNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxHZXREYXRhU2VydmljZT4oU2VydmljZU5hbWVzLkdldERhdGEpO1xyXG4gICAgcmV0dXJuIHNlcnZpY2UuZ2V0SGlnaGxpZ2h0ZWRNYXJrc0FzeW5jKHRoaXMudmlzdWFsSWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFN1bW1hcnlEYXRhQXN5bmMob3B0aW9uczogQ29udHJhY3QuR2V0U3VtbWFyeURhdGFPcHRpb25zKTogUHJvbWlzZTxDb250cmFjdC5EYXRhVGFibGU+IHtcclxuICAgIGNvbnN0IHNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxHZXREYXRhU2VydmljZT4oU2VydmljZU5hbWVzLkdldERhdGEpO1xyXG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XHJcblxyXG4gICAgcmV0dXJuIHNlcnZpY2UuZ2V0VW5kZXJseWluZ0RhdGFBc3luYyhcclxuICAgICAgdGhpcy52aXN1YWxJZCwgR2V0RGF0YVR5cGUuU3VtbWFyeSwgISFvcHRpb25zLmlnbm9yZUFsaWFzZXMsICEhb3B0aW9ucy5pZ25vcmVTZWxlY3Rpb24sIHRydWUsIDApO1xyXG4gICAgfVxyXG5cclxuICBwdWJsaWMgZ2V0VW5kZXJseWluZ0RhdGFBc3luYyhvcHRpb25zOiBDb250cmFjdC5HZXRVbmRlcmx5aW5nRGF0YU9wdGlvbnMpOiBQcm9taXNlPENvbnRyYWN0LkRhdGFUYWJsZT4ge1xyXG4gICAgY29uc3Qgc2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPEdldERhdGFTZXJ2aWNlPihTZXJ2aWNlTmFtZXMuR2V0RGF0YSk7XHJcbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcclxuICAgIHJldHVybiBzZXJ2aWNlLmdldFVuZGVybHlpbmdEYXRhQXN5bmMoXHJcbiAgICAgIHRoaXMudmlzdWFsSWQsXHJcbiAgICAgIEdldERhdGFUeXBlLlVuZGVybHlpbmcsXHJcbiAgICAgICEhb3B0aW9ucy5pZ25vcmVBbGlhc2VzLFxyXG4gICAgICAhIW9wdGlvbnMuaWdub3JlU2VsZWN0aW9uLFxyXG4gICAgICAhIW9wdGlvbnMuaW5jbHVkZUFsbENvbHVtbnMsXHJcbiAgICAgIG9wdGlvbnMubWF4Um93cyB8fCAwKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhclNlbGVjdGVkTWFya3NBc3luYygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxTZWxlY3Rpb25TZXJ2aWNlPihTZXJ2aWNlTmFtZXMuU2VsZWN0aW9uKTtcclxuICAgIHJldHVybiBzZXJ2aWNlLmNsZWFyU2VsZWN0ZWRNYXJrc0FzeW5jKHRoaXMudmlzdWFsSWQpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiAuLi9zcmMvSW50ZXJuYWwvV29ya3NoZWV0SW1wbC50c1xuICoqLyIsImltcG9ydCB7IEFkZEluU2V0dGluZ3NJbmZvIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgQXBpU2VydmljZVJlZ2lzdHJ5IH0gZnJvbSAnQHRhYmxlYXUvYXBpLXNoYXJlZCc7XHJcbmltcG9ydCB7IFBhcmFtIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXV0aWxzJztcclxuXHJcbmltcG9ydCB7IEFkZEluU2VydmljZU5hbWVzIH0gZnJvbSAnLi4vU2VydmljZXMvQWRkSW5TZXJ2aWNlTmFtZXMnO1xyXG5pbXBvcnQgeyBTZXR0aW5nc0NvbGxlY3Rpb24sIFNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uL1NlcnZpY2VzL1NldHRpbmdzU2VydmljZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgU2V0dGluZ3NJbXBsIHtcclxuICBwcml2YXRlIF9pc01vZGlmaWVkOiBib29sZWFuO1xyXG4gIHByaXZhdGUgX2N1cnJlbnRTZXR0aW5nczogU2V0dGluZ3NDb2xsZWN0aW9uO1xyXG5cclxuICAvLyBTaW5jZSBwcm9taXNlcyBjYW4ndCBiZSBpbnRyb3NwZWN0ZWQgZm9yIHN0YXRlLCBrZWVwIGEgdmFyaWFibGUgdGhhdFxyXG4gIC8vIGluZGljYXRlcyBhIHNhdmUgaXMgaW4gcHJvZ3Jlc3MsIHNvIHRoYXQgc2V0L2VyYXNlIGNhbid0IGJlIGNhbGxlZCBkdXJpbmcgYSBzYXZlLlxyXG4gIHByaXZhdGUgX3NhdmVJblByb2dyZXNzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihzZXR0aW5nc0luZm86IEFkZEluU2V0dGluZ3NJbmZvKSB7XHJcbiAgICB0aGlzLmluaXRpYWxpemVTZXR0aW5ncyhzZXR0aW5nc0luZm8pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGVyYXNlKGtleTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBQYXJhbS52ZXJpZnlWYWx1ZShrZXksICdrZXknKTtcclxuXHJcbiAgICAvLyBPbmx5IG1ha2UgYSBtb2RpZmljYXRpb24gaWYgd2UgaGF2ZSB0aGUga2V5IGFscmVhZHlcclxuICAgIGlmICh0aGlzLl9jdXJyZW50U2V0dGluZ3Nba2V5XSkge1xyXG4gICAgICB0aGlzLnZlcmlmeVNldHRpbmdzQXJlVW5sb2NrZWQoKTtcclxuXHJcbiAgICAgIGRlbGV0ZSB0aGlzLl9jdXJyZW50U2V0dGluZ3Nba2V5XTtcclxuICAgICAgdGhpcy5faXNNb2RpZmllZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0KGtleTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIFBhcmFtLnZlcmlmeVZhbHVlKGtleSwgJ2tleScpO1xyXG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRTZXR0aW5nc1trZXldO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEFsbCgpOiBTZXR0aW5nc0NvbGxlY3Rpb24ge1xyXG4gICAgLy8gUmV0dXJucyBhIG11dGFibGUgY29weSBvZiB0aGUgc2V0dGluZ3NcclxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9jdXJyZW50U2V0dGluZ3MpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpc01vZGlmaWVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzTW9kaWZpZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2F2ZUFzeW5jKCk6IFByb21pc2U8U2V0dGluZ3NDb2xsZWN0aW9uPiB7XHJcbiAgICB0aGlzLnZlcmlmeVNldHRpbmdzQXJlVW5sb2NrZWQoKTtcclxuXHJcbiAgICAvLyBKdXN0IHJlc29sdmUgaW1tZWRpYXRlbHkgaWYgc2V0dGluZ3MgYXJlIHVuY2hhbmdlZFxyXG4gICAgaWYgKCF0aGlzLl9pc01vZGlmaWVkKSB7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmU8U2V0dGluZ3NDb2xsZWN0aW9uPih0aGlzLl9jdXJyZW50U2V0dGluZ3MpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3NhdmVJblByb2dyZXNzID0gdHJ1ZTtcclxuXHJcbiAgICAvLyBVc2UgdGhlIHNldHRpbmdzIHNlcnZpY2UgdG8gc2F2ZSBzZXR0aW5ncyB0byB0d2JcclxuICAgIGNvbnN0IHNldHRpbmdzU2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPFNldHRpbmdzU2VydmljZT4oXHJcbiAgICAgIEFkZEluU2VydmljZU5hbWVzLlNldHRpbmdzU2VydmljZSk7XHJcblxyXG4gICAgcmV0dXJuIHNldHRpbmdzU2VydmljZS5zYXZlU2V0dGluZ3NBc3luYyh0aGlzLl9jdXJyZW50U2V0dGluZ3MpLnRoZW48U2V0dGluZ3NDb2xsZWN0aW9uPihuZXdTZXR0aW5ncyA9PiB7XHJcbiAgICAgIHRoaXMuX3NhdmVJblByb2dyZXNzID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuX2lzTW9kaWZpZWQgPSBmYWxzZTtcclxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9jdXJyZW50U2V0dGluZ3MsIG5ld1NldHRpbmdzKTtcclxuICAgICAgcmV0dXJuIG5ld1NldHRpbmdzO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0KGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBQYXJhbS52ZXJpZnlWYWx1ZShrZXksICdrZXknKTsgLy8gS2V5IHNob3VsZG4ndCBiZSBhbiBlbXB0eSBzdHJpbmcuXHJcbiAgICBQYXJhbS52ZXJpZnlTdHJpbmcodmFsdWUsICd2YWx1ZScpOyAvLyBFbXB0eSBzdHJpbmcgdmFsdWUgaXMgYWxsb3dlZC5cclxuICAgIHRoaXMudmVyaWZ5U2V0dGluZ3NBcmVVbmxvY2tlZCgpO1xyXG5cclxuICAgIHRoaXMuX2N1cnJlbnRTZXR0aW5nc1trZXldID0gdmFsdWU7XHJcbiAgICB0aGlzLl9pc01vZGlmaWVkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVNldHRpbmdzKHNldHRpbmdzSW5mbzogQWRkSW5TZXR0aW5nc0luZm8pOiB2b2lkIHtcclxuICAgIFBhcmFtLnZlcmlmeVZhbHVlKHNldHRpbmdzSW5mbywgJ3NldHRpbmdzSW5mbycpO1xyXG4gICAgUGFyYW0udmVyaWZ5VmFsdWUoc2V0dGluZ3NJbmZvLnNldHRpbmdzVmFsdWVzLCAnc2V0dGluZ3NJbmZvLlNldHRpbmdzVmFsdWVzJyk7XHJcblxyXG4gICAgdGhpcy5fY3VycmVudFNldHRpbmdzID0gc2V0dGluZ3NJbmZvLnNldHRpbmdzVmFsdWVzO1xyXG5cclxuICAgIC8vIFJlc2V0IHRoZSBpc01vZGlmaWVkIGZsYWdcclxuICAgIHRoaXMuX2lzTW9kaWZpZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoaXMgaGVscGVyIHNob3VsZCBiZSBjYWxsZWQgYmVmb3JlIGFueSBsb2NhbCB1cGRhdGUgdG8gdGhpcy5jdXJyZW50U2V0dGluZ3MuXHJcbiAgICogQ2hlY2tzIGlmIGEgY3VycmVudCBzYXZlIGNhbGwgaXMgc3RpbGwgaW4gcHJvZ3Jlc3MgYW5kIHRocm93cyBhbiBlcnJvciBpZiBzby5cclxuICAgKi9cclxuICBwcml2YXRlIHZlcmlmeVNldHRpbmdzQXJlVW5sb2NrZWQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fc2F2ZUluUHJvZ3Jlc3MpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBc3luYyBTYXZlIGlzIGluIHByb2dyZXNzLCB1cGRhdGluZyBzZXR0aW5ncyBpcyBub3QgYWxsb3dlZC4nKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogLi4vc3JjL0ludGVybmFsL1NldHRpbmdzSW1wbC50c1xuICoqLyJdLCJzb3VyY2VSb290IjoiIn0= \ No newline at end of file diff --git a/Examples/HelloFrelard/tableau-addin-0.4.0.js b/Examples/HelloFrelard/tableau-addin-0.4.0.js deleted file mode 100644 index 8287da07..00000000 --- a/Examples/HelloFrelard/tableau-addin-0.4.0.js +++ /dev/null @@ -1,23414 +0,0 @@ -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); - else if(typeof define === 'function' && define.amd) - define([], factory); - else if(typeof exports === 'object') - exports["Main"] = factory(); - else - root["Main"] = factory(); -})(this, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; -/******/ -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.loaded = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = "/dist/"; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var FrelardDesktopBootstrap_1 = __webpack_require__(1); - // This Main function will be executed when this module is loaded. Attempt to do our - // bootstrapping with qt and log any errors we encounter - FrelardDesktopBootstrap_1.doBootstrap().catch(function (e) { - console.error('Desktop bootstrapping failed: ' + e); - }); - - -/***/ }, -/* 1 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_core_1 = __webpack_require__(2); - var api_internal_contract_1 = __webpack_require__(30); - var AddInApiPresLayerImpl_1 = __webpack_require__(31); - var DesktopApiDispatcher_1 = __webpack_require__(32); - var QtWebChannelImpl_1 = __webpack_require__(33); - /** - * Wrapper for all the bootstrapping logic. This code attempts to initialize the qt pres-layer - * as well as the desktop dispatcher. It then assigns it to the global desktop dispatcher to - * be picked up by the add-in external Api - */ - function doBootstrap() { - // First we need to initialize the webchannel pres-layer - var dispatcherPromise = QtWebChannelImpl_1.initializeWebChannelPresLayer().then(function (preslayer) { - var presLayerApi = new AddInApiPresLayerImpl_1.AddInApiPresLayerImpl(preslayer); - if (!presLayerApi.AddInInstanceInfo.addInLocatorPresModel) { - throw new Error('AddInInstanceInfo undefined'); - } - // Initialize the apiEventHandler and the desktopDispatcher with it - var apiEventHandler = new api_core_1.ApiEventHandler(presLayerApi, presLayerApi.AddInInstanceInfo.addInLocatorPresModel); - var desktopDispatcher = new DesktopApiDispatcher_1.DesktopApiDispatcher(apiEventHandler); - return desktopDispatcher; - }); - // Assign the desktop dispatcher for the other project to find it - api_internal_contract_1.InternalApiDispatcherHolder.setDesktopDispatcherPromise(dispatcherPromise); - return dispatcherPromise; - } - exports.doBootstrap = doBootstrap; - - -/***/ }, -/* 2 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export(__webpack_require__(3)); - var Events_1 = __webpack_require__(16); - exports.NotificationId = Events_1.NotificationId; - - -/***/ }, -/* 3 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(4); - var Params_1 = __webpack_require__(10); - var CommandMappingRegistryFactory_1 = __webpack_require__(11); - var EventMappingRegistryFactory_1 = __webpack_require__(15); - var ParameterMappingRegistryFactory_1 = __webpack_require__(23); - /** - * Main class for the api-core project. This class is responsible for executing comamnd and marshalling notifcations - * between the internal Api and the pres-layer Api. After construction, SetVersionNumber must be called in order to - * use this class - * - * @export - * @class ApiEventHandler - */ - var ApiEventHandler = (function () { - /** - * Creates an instance of ApiEventHandler. - * @param {PresentationLayer} presLayer - An implementation of the pres-layer Api to use - * @param {AddInLocatorPresModel} addInLocatorPresModel - locator for the add-in which is being referenced - * @memberof ApiEventHandler - */ - function ApiEventHandler(presLayer, addInLocatorPresModel) { - this._presLayer = presLayer; - this._presLayerAddInLocator = addInLocatorPresModel; - } - /** - * Sets the internal Api version number which the external library is expecting to use. This must be called before - * anything else in order to properly set up the translation layers. - * - * @param {VersionNumber} versionNumber - * @memberof ApiEventHandler - */ - ApiEventHandler.prototype.setVersionNumber = function (versionNumber) { - this._versionNumber = versionNumber; - // Initialize all our registries - this._commandRegistry = CommandMappingRegistryFactory_1.CommandMappingRegistryFactory.createCommandMappingRegistry(versionNumber); - this._apiToPresLayerRegistry = ParameterMappingRegistryFactory_1.ParameterMappingRegistryFactory.createApiToPresLayerParamRegistry(versionNumber); - this._presLayerToApiRegistry = ParameterMappingRegistryFactory_1.ParameterMappingRegistryFactory.createPresLayerToApiParamRegistry(versionNumber); - this._eventRegistry = EventMappingRegistryFactory_1.EventMappingRegistryFactory.createEventMappingRegistry(versionNumber); - // Convert our addInLocator to the Api version - this._apiAddInLocator = this._presLayerToApiRegistry - .get(Params_1.ParameterId.AddInLocator, api_internal_contract_1.ParameterId.AddInLocator)(this._presLayerAddInLocator); - for (var _i = 0, _a = Object.keys(this._eventRegistry); _i < _a.length; _i++) { - var plEventId = _a[_i]; - // Register for all notifications we know about and bind the event type to the callback - this._presLayer.registerNotificationHandler(plEventId, this.onPresLayerNotification.bind(this, plEventId)); - } - }; - /** - * Sets an event handler function to be notified when Api events come in. Only a single registration is supported. - * - * @param {NotificationHandler} eventHandler - * @memberof ApiEventHandler - */ - ApiEventHandler.prototype.setEventHandler = function (eventHandler) { - this._eventHandler = eventHandler; - // TODO - Register for pres layer events - }; - /** - * Executes the requested Api command by converting the parameters, running the command against the pres-layer, - * then processing the result back into a format the Api can understand - * - * @param {VerbId} verb - * @param {ExecuteParameters} parameters - * @returns {Promise} - * @memberof ApiEventHandler - */ - ApiEventHandler.prototype.execute = function (verb, parameters) { - var _this = this; - this.assertInitialized(); - var command = this._commandRegistry.getCommand(verb); - parameters = parameters || {}; - // Augment the command with the locator if it's needed - if (command.needsAddInLocator) { - parameters[api_internal_contract_1.ParameterId.AddInLocator] = this._apiAddInLocator; - } - var commandsParams = command.createParams(parameters, this._apiToPresLayerRegistry); - return this._presLayer.invokeCommand(command.namespace, command.commandId, commandsParams) - .then(function (commandResult) { - var convertedResult = command.ProcessResult(commandResult, _this._presLayerToApiRegistry); - return { - result: convertedResult - }; - }); - }; - /** - * Helper method to check that things are initialized as expected. Throws if initialization not complete - * - * @private - * @memberof ApiEventHandler - */ - ApiEventHandler.prototype.assertInitialized = function () { - if (!this._versionNumber) { - throw new Error('VersionNumber not yet configured. Cannot take any actions'); - } - }; - /** - * Called when a new event notification comes in from the presentation layer - * - * @param eventId The pres layer event id - * @param presModel The pres model that is included with the event - */ - ApiEventHandler.prototype.onPresLayerNotification = function (eventId, presModel) { - // First look up this eventId in our registry and convert to presModel - var eventMapping = this._eventRegistry[eventId]; - var apiModel = eventMapping.converter(presModel); - if (this._eventHandler) { - this._eventHandler(eventMapping.apiId, apiModel); - } - }; - return ApiEventHandler; - }()); - exports.ApiEventHandler = ApiEventHandler; - - -/***/ }, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export(__webpack_require__(5)); - __export(__webpack_require__(6)); - __export(__webpack_require__(7)); - __export(__webpack_require__(8)); - __export(__webpack_require__(9)); - - -/***/ }, -/* 5 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var AddInContext; - (function (AddInContext) { - AddInContext["Desktop"] = "desktop"; - AddInContext["Server"] = "server"; - AddInContext["Unknown"] = "unknown"; - })(AddInContext = exports.AddInContext || (exports.AddInContext = {})); - var AddInMode; - (function (AddInMode) { - AddInMode["Authoring"] = "authoring"; - AddInMode["Viewing"] = "viewing"; - AddInMode["Unknown"] = "unknown"; - })(AddInMode = exports.AddInMode || (exports.AddInMode = {})); - var ColumnType; - (function (ColumnType) { - ColumnType["Discrete"] = "discrete"; - ColumnType["Continuous"] = "continuous"; - })(ColumnType = exports.ColumnType || (exports.ColumnType = {})); - var DashboardObjectType; - (function (DashboardObjectType) { - DashboardObjectType["Blank"] = "blank"; - DashboardObjectType["Worksheet"] = "worksheet"; - DashboardObjectType["QuickFilter"] = "quick-filter"; - DashboardObjectType["ParameterControl"] = "parameter-control"; - DashboardObjectType["PageFilter"] = "page-filter"; - DashboardObjectType["Legend"] = "legend"; - DashboardObjectType["Title"] = "title"; - DashboardObjectType["Text"] = "text"; - DashboardObjectType["Image"] = "image"; - DashboardObjectType["WebPage"] = "web-page"; - DashboardObjectType["AddIn"] = "addin"; - })(DashboardObjectType = exports.DashboardObjectType || (exports.DashboardObjectType = {})); - var DataType; - (function (DataType) { - DataType["String"] = "string"; - DataType["Int"] = "int"; - DataType["Float"] = "float"; - DataType["Bool"] = "bool"; - DataType["Date"] = "date"; - DataType["DateTime"] = "date-time"; - DataType["Spatial"] = "spatial"; - })(DataType = exports.DataType || (exports.DataType = {})); - var EncodedDataType; - (function (EncodedDataType) { - EncodedDataType["Number"] = "number"; - EncodedDataType["String"] = "string"; - EncodedDataType["Date"] = "date"; - EncodedDataType["Boolean"] = "boolean"; - })(EncodedDataType = exports.EncodedDataType || (exports.EncodedDataType = {})); - var ErrorCode; - (function (ErrorCode) { - ErrorCode["ServerError"] = "server-error"; - ErrorCode["InvalidAggregationFieldName"] = "invalid-aggregation-field-name"; - ErrorCode["InvalidFilterFieldName"] = "invalid-filter-fieldname"; - ErrorCode["InvalidFilterFieldValue"] = "invalid-filter-field-value"; - })(ErrorCode = exports.ErrorCode || (exports.ErrorCode = {})); - var FieldAggregationType; - (function (FieldAggregationType) { - FieldAggregationType["Sum"] = "sum"; - FieldAggregationType["Avg"] = "avg"; - FieldAggregationType["Min"] = "min"; - FieldAggregationType["Max"] = "max"; - FieldAggregationType["Stdev"] = "stdev"; - FieldAggregationType["Stdevp"] = "stdevp"; - FieldAggregationType["Var"] = "var"; - FieldAggregationType["Varp"] = "varp"; - FieldAggregationType["Count"] = "count"; - FieldAggregationType["Countd"] = "countd"; - FieldAggregationType["Median"] = "median"; - FieldAggregationType["Attr"] = "attr"; - FieldAggregationType["None"] = "none"; - FieldAggregationType["Year"] = "year"; - FieldAggregationType["Qtr"] = "qtr"; - FieldAggregationType["Month"] = "month"; - FieldAggregationType["Day"] = "day"; - FieldAggregationType["Hour"] = "hour"; - FieldAggregationType["Minute"] = "minute"; - FieldAggregationType["Second"] = "second"; - FieldAggregationType["Week"] = "week"; - FieldAggregationType["Weekday"] = "weekday"; - FieldAggregationType["MonthYear"] = "month-year"; - FieldAggregationType["Mdy"] = "mdy"; - FieldAggregationType["End"] = "end"; - FieldAggregationType["TruncYear"] = "trunc-year"; - FieldAggregationType["TruncQtr"] = "trunc-qtr"; - FieldAggregationType["TruncMonth"] = "trunc-month"; - FieldAggregationType["TruncWeek"] = "trunc-week"; - FieldAggregationType["TruncDay"] = "trunc-day"; - FieldAggregationType["TruncHour"] = "trunc-hour"; - FieldAggregationType["TruncMinute"] = "trunc-minute"; - FieldAggregationType["TruncSecond"] = "trunc-second"; - FieldAggregationType["Quart1"] = "quart1"; - FieldAggregationType["Quart3"] = "quart3"; - FieldAggregationType["Skewness"] = "skewness"; - FieldAggregationType["Kurtosis"] = "kurtosis"; - FieldAggregationType["InOut"] = "in-out"; - FieldAggregationType["User"] = "user"; - })(FieldAggregationType = exports.FieldAggregationType || (exports.FieldAggregationType = {})); - var FieldRoleType; - (function (FieldRoleType) { - FieldRoleType["Dimension"] = "dimension"; - FieldRoleType["Measure"] = "measure"; - FieldRoleType["Unknown"] = "unknown"; - })(FieldRoleType = exports.FieldRoleType || (exports.FieldRoleType = {})); - /** - * The different update types for applying filter. - */ - var FilterUpdateType; - (function (FilterUpdateType) { - FilterUpdateType["Add"] = "add"; - FilterUpdateType["All"] = "all"; - FilterUpdateType["Replace"] = "replace"; - FilterUpdateType["Remove"] = "remove"; - })(FilterUpdateType = exports.FilterUpdateType || (exports.FilterUpdateType = {})); - var SheetType; - (function (SheetType) { - SheetType["Dashboard"] = "dashboard"; - SheetType["Story"] = "story"; - SheetType["Worksheet"] = "worksheet"; - SheetType["Addin"] = "addin"; - })(SheetType = exports.SheetType || (exports.SheetType = {})); - var DomainRestrictionType; - (function (DomainRestrictionType) { - DomainRestrictionType["All"] = "all"; - DomainRestrictionType["List"] = "list"; - DomainRestrictionType["Range"] = "range"; - })(DomainRestrictionType = exports.DomainRestrictionType || (exports.DomainRestrictionType = {})); - var DateStepPeriod; - (function (DateStepPeriod) { - DateStepPeriod["Years"] = "years"; - DateStepPeriod["Quarters"] = "quarters"; - DateStepPeriod["Months"] = "months"; - DateStepPeriod["Weeks"] = "weeks"; - DateStepPeriod["Days"] = "days"; - DateStepPeriod["Hours"] = "hours"; - DateStepPeriod["Minutes"] = "minutes"; - DateStepPeriod["Seconds"] = "seconds"; - })(DateStepPeriod = exports.DateStepPeriod || (exports.DateStepPeriod = {})); - /** - * The option for specifying which values to include for filtering. - */ - var FilterNullOption; - (function (FilterNullOption) { - FilterNullOption["NullValues"] = "nullvalues"; - FilterNullOption["NonNullValues"] = "nonnullvalues"; - FilterNullOption["AllValues"] = "allvalues"; - })(FilterNullOption = exports.FilterNullOption || (exports.FilterNullOption = {})); - /** - * Internal enum for specifying the selection type for select marks api. - */ - var SelectionUpdateType; - (function (SelectionUpdateType) { - SelectionUpdateType["Replace"] = "select-replace"; - SelectionUpdateType["Add"] = "select-add"; - SelectionUpdateType["Remove"] = "select-remove"; - })(SelectionUpdateType = exports.SelectionUpdateType || (exports.SelectionUpdateType = {})); - /** - * Internal enum for specifying the included values type for range selection. - */ - var QuantitativeIncludedValues; - (function (QuantitativeIncludedValues) { - QuantitativeIncludedValues["IncludeNull"] = "include-null"; - QuantitativeIncludedValues["IncludeNonNull"] = "include-non-null"; - QuantitativeIncludedValues["IncludeAll"] = "include-all"; - })(QuantitativeIncludedValues = exports.QuantitativeIncludedValues || (exports.QuantitativeIncludedValues = {})); - /** - * Type of mark for a given marks card in a viz. - */ - var MarkType; - (function (MarkType) { - MarkType["Bar"] = "bar"; - MarkType["Line"] = "line"; - MarkType["Area"] = "area"; - MarkType["Square"] = "square"; - MarkType["Circle"] = "circle"; - MarkType["Shape"] = "shape"; - MarkType["Text"] = "text"; - MarkType["Map"] = "map"; - MarkType["Pie"] = "pie"; - MarkType["GanttBar"] = "gantt-bar"; - MarkType["Polygon"] = "polygon"; - })(MarkType = exports.MarkType || (exports.MarkType = {})); - /** - * Internal enum for specifying the type of filter - */ - var FilterType; - (function (FilterType) { - FilterType["Categorical"] = "categorical"; - FilterType["Range"] = "range"; - FilterType["RelativeDate"] = "relativeDate"; - FilterType["Hierarchical"] = "hierarchical"; - })(FilterType = exports.FilterType || (exports.FilterType = {})); - /** - * Internal enum for specifying the DateRangeType of a relative date filter - */ - var DateRangeType; - (function (DateRangeType) { - /** - * Refers to the last day, week, month, etc. of the date period. - */ - DateRangeType["Last"] = "last"; - /** - * Refers to the last N days, weeks, months, etc. of the date period. - */ - DateRangeType["LastN"] = "lastN"; - /** - * Refers to the next day, week, month, etc. of the date period. - */ - DateRangeType["Next"] = "next"; - /** - * Refers to the next N days, weeks, months, etc. of the date period. - */ - DateRangeType["NextN"] = "nextN"; - /** - * Refers to the current day, week, month, etc. of the date period. - */ - DateRangeType["Current"] = "current"; - /** - * Refers to everything up to and including the current day, week, month, etc. of the date period. - */ - DateRangeType["ToDate"] = "toDate"; - })(DateRangeType = exports.DateRangeType || (exports.DateRangeType = {})); - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var InternalApiDispatcherHolder; - (function (InternalApiDispatcherHolder) { - function getDesktopDispatcherPromise() { - return window.__tableauDesktopDispatcher; - } - InternalApiDispatcherHolder.getDesktopDispatcherPromise = getDesktopDispatcherPromise; - function hasDesktopApiDispatcherPromise() { - return !!InternalApiDispatcherHolder.getDesktopDispatcherPromise(); - } - InternalApiDispatcherHolder.hasDesktopApiDispatcherPromise = hasDesktopApiDispatcherPromise; - function setDesktopDispatcherPromise(dispatcher) { - window.__tableauDesktopDispatcher = dispatcher; - } - InternalApiDispatcherHolder.setDesktopDispatcherPromise = setDesktopDispatcherPromise; - })(InternalApiDispatcherHolder = exports.InternalApiDispatcherHolder || (exports.InternalApiDispatcherHolder = {})); - - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var NotificationId; - (function (NotificationId) { - NotificationId["SelectedMarksChanged"] = "selected-marks-changed"; - NotificationId["ParameterChanged"] = "parameter-changed"; - NotificationId["FilterChanged"] = "filter-changed"; - })(NotificationId = exports.NotificationId || (exports.NotificationId = {})); - - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var ParameterId; - (function (ParameterId) { - ParameterId["AddInLocator"] = "add-in-locator"; - ParameterId["AddInBootstrapInfo"] = "add-in-bootstrap-info"; - ParameterId["AddInSettingsInfo"] = "add-in-settings-info"; - ParameterId["VisualId"] = "visual-id"; - ParameterId["SheetPath"] = "sheet-path"; - ParameterId["IgnoreAliases"] = "ignore-aliases"; - ParameterId["IgnoreSelection"] = "ignore-selection"; - ParameterId["IncludeAllColumns"] = "include-all-columns"; - ParameterId["MaxRows"] = "max-rows"; - ParameterId["UnderlyingDataTable"] = "underlying-data-table"; - ParameterId["UnderlyingSummaryDataTable"] = "underlying-summary-data-table"; - ParameterId["SettingsValues"] = "settings-values"; - ParameterId["SelectedData"] = "selected-data"; - ParameterId["HighlightedData"] = "highlighted-data"; - // Filter Params - ParameterId["FieldName"] = "field-name"; - ParameterId["FilterValues"] = "filter-values"; - ParameterId["FilterUpdateType"] = "filter-update-type"; - ParameterId["IsExcludeMode"] = "is-exclude"; - ParameterId["FilterRangeMin"] = "filter-range-min"; - ParameterId["FilterRangeMax"] = "filter-range-max"; - ParameterId["FilterRangeNullOption"] = "filter-range-null-option"; - ParameterId["WorksheetFilters"] = "worksheet-filters"; - ParameterId["WorksheetName"] = "worksheet-name"; - ParameterId["DashboardName"] = "dashboard"; - ParameterId["ParameterInfo"] = "parameter-info"; - ParameterId["ParameterInfos"] = "parameter-infos"; - ParameterId["ParameterCaption"] = "paremeter-caption"; - ParameterId["ParameterFieldName"] = "parameter-field-name"; - ParameterId["ParameterValue"] = "parameter-value"; - ParameterId["Selection"] = "selection"; - ParameterId["SelectionUpdateType"] = "selectionUpdateType"; - ParameterId["HierValSelectionModels"] = "hierarchicalValueSelectionModels"; - ParameterId["QuantRangeSelectionModels"] = "quantativeRangeSelectionModels"; - ParameterId["DimValSelectionModels"] = "dimensionValueSelectionModels"; - ParameterId["DataSourceId"] = "data-source-id"; - ParameterId["DataSchema"] = "data-schema"; - })(ParameterId = exports.ParameterId || (exports.ParameterId = {})); - - -/***/ }, -/* 9 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - // Declare this key type and export the NotificationId to make this behave like a string enum - var VerbId; - (function (VerbId) { - VerbId["ApplyCategoricalFilter"] = "categorical-filter"; - VerbId["ApplyRangeFilter"] = "range-filter"; - VerbId["ClearFilter"] = "clear-filter"; - VerbId["InitializeAddIn"] = "initialize-add-in"; - VerbId["GetDataSummaryData"] = "get-summary-data"; - VerbId["GetUnderlyingData"] = "get-underlying-data"; - VerbId["SaveAddInSettings"] = "save-add-in-settings"; - VerbId["GetSelectedMarks"] = "get-selected-marks"; - VerbId["GetHighlightedMarks"] = "get-highlighted-marks"; - VerbId["GetParametersForSheet"] = "get-parameters-for-sheet"; - VerbId["FindParameter"] = "find-parameter"; - VerbId["ChangeParameterValue"] = "change-parameter-value"; - VerbId["ClearSelectedMarks"] = "clear-selected-marks"; - VerbId["SelectByValue"] = "select-by-value"; - VerbId["GetDataSources"] = "get-data-sources"; - VerbId["RefreshDataSource"] = "refresh-data-source"; - VerbId["GetFilters"] = "get-filters"; - })(VerbId = exports.VerbId || (exports.VerbId = {})); - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - "use strict"; - // ----------------------------------------------------------------------------- - // - // This file is the copyrighted property of Tableau Software and is protected - // by registered patents and other applicable U.S. and international laws and - // regulations. - // - // Unlicensed use of the contents of this file is prohibited. Please refer to - // the NOTICES.txt file for further details. - // - // ----------------------------------------------------------------------------- - // WARNING: Computer generated file. Do not hand modify. - // DEPENDS ON: ['../typescript/js-api/api-core/node_modules/@tableau/preslayer-codegen-typescript/templates/params-ts.template', u'../typescript/js-api/api-core/temp-pres-layer/all-params.data'] - Object.defineProperty(exports, "__esModule", { value: true }); - var ParameterId; - (function (ParameterId) { - // DPI_IntegerRLE, having type int[] - ParameterId["IntegerRLE"] = "intRle"; - // DPI_UnsignedIntegerRLE, having type uint[] - ParameterId["UnsignedIntegerRLE"] = "uintRle"; - // DPI_FloatRLE, having type float[] - ParameterId["FloatRLE"] = "floatRle"; - // DPI_ParameterID, having type string - ParameterId["ParameterID"] = "paramType"; - // DPI_AllowCustomDatabase, having type bool - ParameterId["AllowCustomDatabase"] = "allowCustomDatabase"; - // DPI_AllowCustomSchema, having type bool - ParameterId["AllowCustomSchema"] = "allowCustomSchema"; - // DPI_AllowCustomSQL, having type bool - ParameterId["AllowCustomSQL"] = "allowCustomSql"; - // DPI_AllowCustomSQLWithoutSchema, having type bool - ParameterId["AllowCustomSQLWithoutSchema"] = "allowCustomSqlWithoutSchema"; - // DPI_AllowPreviewData, having type bool - ParameterId["AllowPreviewData"] = "allowPreviewData"; - // DPI_AllowStoredProc, having type bool - ParameterId["AllowStoredProc"] = "allowStoredProcedure"; - // DPI_AllowUnion, having type bool - ParameterId["AllowUnion"] = "allowUnion"; - // DPI_AreVariablesVisible, having type bool - ParameterId["AreVariablesVisible"] = "areVariablesVisible"; - // DPI_AttrLegacyConnection, having type bool - ParameterId["AttrLegacyConnection"] = "widgetAttrLegacy"; - // DPI_AttrReadUncommitted, having type bool - ParameterId["AttrReadUncommitted"] = "widgetAttrReadUncommittedData"; - // DPI_AttrRequireSSL, having type bool - ParameterId["AttrRequireSSL"] = "widgetAttrRequireSsl"; - // DPI_AttrRequireEncryption, having type bool - ParameterId["AttrRequireEncryption"] = "widgetAttrRequireEncryption"; - // DPI_Bool, having type bool - ParameterId["Bool"] = "bool"; - // DPI_CanPartition, having type bool - ParameterId["CanPartition"] = "canPartition"; - // DPI_CanRecommendDataSources, having type bool - ParameterId["CanRecommendDataSources"] = "canRecommendDatasources"; - // DPI_CanRecommendTables, having type bool - ParameterId["CanRecommendTables"] = "canRecommendTables"; - // DPI_CheckPermissions, having type bool - ParameterId["CheckPermissions"] = "checkPermissions"; - // DPI_DatabaseNameOptional, having type bool - ParameterId["DatabaseNameOptional"] = "databaseNameOptional"; - // DPI_DatabaseWHOptional, having type bool - ParameterId["DatabaseWHOptional"] = "databaseWarehouseOptional"; - // DPI_DoValidation, having type bool - ParameterId["DoValidation"] = "doValidation"; - // DPI_DoneLoadingAllSheets, having type bool - ParameterId["DoneLoadingAllSheets"] = "googleSheetDoneLoading"; - // DPI_GABasicItemsEnabled, having type bool - ParameterId["GABasicItemsEnabled"] = "gaBasicItemsEnabled"; - // DPI_GADimensionMeasuresEnabled, having type bool - ParameterId["GADimensionMeasuresEnabled"] = "gaDimensionsMeasuresEnabled"; - // DPI_GAFiltersEnabled, having type bool - ParameterId["GAFiltersEnabled"] = "gaFiltersEnabled"; - // DPI_HasDatabase, having type bool - ParameterId["HasDatabase"] = "hasDatabase"; - // DPI_HasDataLoss, having type bool - ParameterId["HasDataLoss"] = "hasDataLoss"; - // DPI_HasFastMetadata, having type bool - ParameterId["HasFastMetadata"] = "hasFastMetadata"; - // DPI_HasNewlyDiscoveredSchema, having type bool - ParameterId["HasNewlyDiscoveredSchema"] = "hasNewlyDiscoveredSchema"; - // DPI_HasPermissions, having type bool - ParameterId["HasPermissions"] = "hasPermissions"; - // DPI_HasSchema, having type bool - ParameterId["HasSchema"] = "hasSchema"; - // DPI_HasSchemaCount, having type bool - ParameterId["HasSchemaCount"] = "hasSchemaCount"; - // DPI_HasTables, having type bool - ParameterId["HasTables"] = "hasTables"; - // DPI_HasUncommittedChanges, having type bool - ParameterId["HasUncommittedChanges"] = "hasUncommittedChanges"; - // DPI_HasWarehouse, having type bool - ParameterId["HasWarehouse"] = "hasWarehouse"; - // DPI_HasWarning, having type bool - ParameterId["HasWarning"] = "hasWarning"; - // DPI_IsCalculated, having type bool - ParameterId["IsCalculated"] = "isCalculated"; - // DPI_IsConnectedToDataSource, having type bool - ParameterId["IsConnectedToDataSource"] = "isConnectedDatasource"; - // DPI_IsDisabledDataConnection, having type bool - ParameterId["IsDisabledDataConnection"] = "isDisabledDataConnection"; - // DPI_IsEditable, having type bool - ParameterId["IsEditable"] = "isEditable"; - // DPI_IsEnabled, having type bool - ParameterId["IsEnabled"] = "isEnabled"; - // DPI_IsFinishedConnecting, having type bool - ParameterId["IsFinishedConnecting"] = "isFinishedConnecting"; - // DPI_IsHidden, having type bool - ParameterId["IsHidden"] = "isHidden"; - // DPI_IsMultiTable, having type bool - ParameterId["IsMultiTable"] = "isMultiTable"; - // DPI_IsNewCustomSQL, having type bool - ParameterId["IsNewCustomSQL"] = "isNewCustomSql"; - // DPI_IsNewDataSource, having type bool - ParameterId["IsNewDataSource"] = "isNewDataSrc"; - // DPI_IsPublishedFederated, having type bool - ParameterId["IsPublishedFederated"] = "isPublishedFederated"; - // DPI_IsSampled, having type bool - ParameterId["IsSampled"] = "isSampled"; - // DPI_IsSchemaMemberNewlyDiscovered, having type bool - ParameterId["IsSchemaMemberNewlyDiscovered"] = "isSchemaMemberNewlyDiscovered"; - // DPI_IsSlowFast, having type bool - ParameterId["IsSlowFast"] = "isSlowfast"; - // DPI_IsSupported, having type bool - ParameterId["IsSupported"] = "isSupported"; - // DPI_IsTableSelectionVisible, having type bool - ParameterId["IsTableSelectionVisible"] = "isTableSelectionVisible"; - // DPI_IsTableauServerDatasource, having type bool - ParameterId["IsTableauServerDatasource"] = "isTableauServerDatasource"; - // DPI_IsTableauServerDatasourceConnectable, having type bool - ParameterId["IsTableauServerDatasourceConnectable"] = "isTableauServerDatasourceConnectable"; - // DPI_IsTableauServerDatasourceDownloadable, having type bool - ParameterId["IsTableauServerDatasourceDownloadable"] = "isTableauServerDatasourceDownloadable"; - // DPI_IsVisible, having type bool - ParameterId["IsVisible"] = "isVisible"; - // DPI_NeedFlatten, having type bool - ParameterId["NeedFlatten"] = "needFlatten"; - // DPI_SSLRequiresCertificate, having type bool - ParameterId["SSLRequiresCertificate"] = "sslRequiresCertificate"; - // DPI_SchemaOptional, having type bool - ParameterId["SchemaOptional"] = "schemaOptional"; - // DPI_ServiceNameOptional, having type bool - ParameterId["ServiceNameOptional"] = "serviceNameOptional"; - // DPI_ShouldWarnForCrossSchemaJoins, having type bool - ParameterId["ShouldWarnForCrossSchemaJoins"] = "shouldWarnCrossSchemaJoins"; - // DPI_ShowBrowseButton, having type bool - ParameterId["ShowBrowseButton"] = "showBrowseButton"; - // DPI_ShowConnectionPrompt, having type bool - ParameterId["ShowConnectionPrompt"] = "showConnectionPrompt"; - // DPI_ShowDBBrowseButton, having type bool - ParameterId["ShowDBBrowseButton"] = "showDbBrowseButton"; - // DPI_ShowDBNamePrompt, having type bool - ParameterId["ShowDBNamePrompt"] = "showDbPrompt"; - // DPI_ShowDBWHNamePrompt, having type bool - ParameterId["ShowDBWHNamePrompt"] = "showDbwhPrompt"; - // DPI_ShowImportSSLCertLabel, having type bool - ParameterId["ShowImportSSLCertLabel"] = "showImportSslcertLabel"; - // DPI_ShowPortPrompt, having type bool - ParameterId["ShowPortPrompt"] = "showPortPrompt"; - // DPI_ShowSSLCheckbox, having type bool - ParameterId["ShowSSLCheckbox"] = "showSslCheckbox"; - // DPI_ShowEncryptionCheckbox, having type bool - ParameterId["ShowEncryptionCheckbox"] = "showEncryptionCheckbox"; - // DPI_ShowServerNamePrompt, having type bool - ParameterId["ShowServerNamePrompt"] = "showServerPrompt"; - // DPI_ShowServiceNamePrompt, having type bool - ParameterId["ShowServiceNamePrompt"] = "showServicePrompt"; - // DPI_ShowUncommittedDataCheckbox, having type bool - ParameterId["ShowUncommittedDataCheckbox"] = "showUncommittedDataCheckbox"; - // DPI_SupportsGenericAuth, having type bool - ParameterId["SupportsGenericAuth"] = "supportsGenericAuth"; - // DPI_TableauServerFetchAscending, having type bool - ParameterId["TableauServerFetchAscending"] = "tableauServerFetchAscending"; - // DPI_UsesRadioButton, having type bool - ParameterId["UsesRadioButton"] = "usesRadioButton"; - // DPI_BigQueryLegacySQLCheckStatus, having type bool - ParameterId["BigQueryLegacySQLCheckStatus"] = "datasourceBigqueryLegacySqlCheckStatus"; - // DPI_HasBigQueryLegacySQLCheck, having type bool - ParameterId["HasBigQueryLegacySQLCheck"] = "datasourceBigqueryLegacySqlCheck"; - // DPI_AutoFetchLimit, having type int - ParameterId["AutoFetchLimit"] = "autoFetchLimit"; - // DPI_ConnectionType, having type int - ParameterId["ConnectionType"] = "connectionType"; - // DPI_IconId, having type int - ParameterId["IconId"] = "iconId"; - // DPI_SelectedCatalogIndex, having type int - ParameterId["SelectedCatalogIndex"] = "selectedCatalogIndex"; - // DPI_SelectedCubeIndex, having type int - ParameterId["SelectedCubeIndex"] = "selectedCubeIndex"; - // DPI_SelectedGAAccountIndex, having type int - ParameterId["SelectedGAAccountIndex"] = "selectedGaAccountIndex"; - // DPI_SelectedGAMeasureSetIndex, having type int - ParameterId["SelectedGAMeasureSetIndex"] = "selectedGaMeasureSetIndex"; - // DPI_SelectedGAPropertyIndex, having type int - ParameterId["SelectedGAPropertyIndex"] = "selectedGaPropertyIndex"; - // DPI_SelectedGASegmentIndex, having type int - ParameterId["SelectedGASegmentIndex"] = "selectedGaSegmentIndex"; - // DPI_SelectedGAViewIndex, having type int - ParameterId["SelectedGAViewIndex"] = "selectedGaViewIndex"; - // DPI_SelectedGoogleSheetIndex, having type int - ParameterId["SelectedGoogleSheetIndex"] = "selectedGoogleSheetIndex"; - // DPI_SelectedOptionIndex, having type int - ParameterId["SelectedOptionIndex"] = "selectedOptionIndex"; - // DPI_SlowMetadataCount, having type int - ParameterId["SlowMetadataCount"] = "slowMetadataCount"; - // DPI_TableauServerFetchSortBy, having type int - ParameterId["TableauServerFetchSortBy"] = "tableauServerFetchSort"; - // DPI_ActualParameterOrdinal, having type uint - ParameterId["ActualParameterOrdinal"] = "actualParameterOrdinal"; - // DPI_ActualParameterType, having type uint - ParameterId["ActualParameterType"] = "actualParameterType"; - // DPI_CharSetID, having type uint - ParameterId["CharSetID"] = "charsetId"; - // DPI_DataSourceOrdinal, having type uint - ParameterId["DataSourceOrdinal"] = "datasourceOrdinal"; - // DPI_FilterCount, having type uint - ParameterId["FilterCount"] = "filterCount"; - // DPI_VariablesCount, having type uint - ParameterId["VariablesCount"] = "variablesCount"; - // DPI_ActualParameterDisplayName, having type string - ParameterId["ActualParameterDisplayName"] = "actualParameterDisplayName"; - // DPI_ActualParameterName, having type string - ParameterId["ActualParameterName"] = "actualParameterName"; - // DPI_ActualParameterValue, having type string - ParameterId["ActualParameterValue"] = "actualParameterValue"; - // DPI_AttrAPIVersion, having type string - ParameterId["AttrAPIVersion"] = "attrApiVersion"; - // DPI_AttrAuthType, having type string - ParameterId["AttrAuthType"] = "widgetAttrAuthtype"; - // DPI_AttrConnectionData, having type string - ParameterId["AttrConnectionData"] = "attrConnectionData"; - // DPI_AttrConnectionName, having type string - ParameterId["AttrConnectionName"] = "attrConnectionName"; - // DPI_AttrConnectionType, having type string - ParameterId["AttrConnectionType"] = "widgetAttrConnectiontype"; - // DPI_AttrConnectionURL, having type string - ParameterId["AttrConnectionURL"] = "attrConnectionUrl"; - // DPI_AttrCubeSpecificationId, having type string - ParameterId["AttrCubeSpecificationId"] = "widgetAttrCubeSpecificationId"; - // DPI_AttrCubeSpecificationValue, having type string - ParameterId["AttrCubeSpecificationValue"] = "widgetAttrCubeSpecificationValue"; - // DPI_AttrDSN, having type string - ParameterId["AttrDSN"] = "widgetAttrDsn"; - // DPI_AttrDatabase, having type string - ParameterId["AttrDatabase"] = "widgetAttrDb"; - // DPI_AttrDatabaseWarehouse, having type string - ParameterId["AttrDatabaseWarehouse"] = "widgetAttrDbwh"; - // DPI_AttrDriver, having type string - ParameterId["AttrDriver"] = "widgetAttrDriver"; - // DPI_AttrFilename, having type string - ParameterId["AttrFilename"] = "widgetAttrFilename"; - // DPI_AttrHTTPPath, having type string - ParameterId["AttrHTTPPath"] = "widgetAttrHttpPath"; - // DPI_AttrIncrementalRefreshKey, having type string - ParameterId["AttrIncrementalRefreshKey"] = "attrIncrementalRefreshKey"; - // DPI_AttrKerberosHost, having type string - ParameterId["AttrKerberosHost"] = "widgetAttrKerberosHost"; - // DPI_AttrKerberosRealm, having type string - ParameterId["AttrKerberosRealm"] = "widgetAttrKerberosRealm"; - // DPI_AttrKerberosService, having type string - ParameterId["AttrKerberosService"] = "widgetAttrKerberosService"; - // DPI_AttrLastRecordToken, having type string - ParameterId["AttrLastRecordToken"] = "attrLastRecordToken"; - // DPI_AttrMDWPath, having type string - ParameterId["AttrMDWPath"] = "widgetAttrMdwPath"; - // DPI_AttrMDWUsername, having type string - ParameterId["AttrMDWUsername"] = "widgetAttrMdwUsername"; - // DPI_AttrODBCPrompt, having type string - ParameterId["AttrODBCPrompt"] = "widgetAttrOdbcPrompt"; - // DPI_AttrODBCStringExtras, having type string - ParameterId["AttrODBCStringExtras"] = "widgetAttrOdbcStringExtras"; - // DPI_AttrPort, having type string - ParameterId["AttrPort"] = "widgetAttrPort"; - // DPI_AttrSAPClient, having type string - ParameterId["AttrSAPClient"] = "widgetAttrSapClient"; - // DPI_AttrSAPLanguage, having type string - ParameterId["AttrSAPLanguage"] = "widgetAttrSapLanguage"; - // DPI_AttrEdition, having type string - ParameterId["AttrEdition"] = "widgetAttrSslEdition"; - // DPI_AttrSSODomain, having type string - ParameterId["AttrSSODomain"] = "widgetAttrSsoDomain"; - // DPI_AttrSSLCert, having type string - ParameterId["AttrSSLCert"] = "widgetAttrSslCert"; - // DPI_AttrScriptVersion, having type string - ParameterId["AttrScriptVersion"] = "attrScriptVersion"; - // DPI_AttrServer, having type string - ParameterId["AttrServer"] = "widgetAttrServer"; - // DPI_AttrService, having type string - ParameterId["AttrService"] = "widgetAttrService"; - // DPI_AttrUsername, having type string - ParameterId["AttrUsername"] = "widgetAttrUser"; - // DPI_AuthenticationPrompt, having type string - ParameterId["AuthenticationPrompt"] = "authenticationPrompt"; - // DPI_ButtonClickAction, having type string - ParameterId["ButtonClickAction"] = "buttonClickAction"; - // DPI_ButtonCaption, having type string - ParameterId["ButtonCaption"] = "buttonCaption"; - // DPI_Caption, having type string - ParameterId["Caption"] = "caption"; - // DPI_CatalogListPrompt, having type string - ParameterId["CatalogListPrompt"] = "catalogListPrompt"; - // DPI_CatalogName, having type string - ParameterId["CatalogName"] = "catalogName"; - // DPI_CatalogSearchTerm, having type string - ParameterId["CatalogSearchTerm"] = "catalogSearchTerm"; - // DPI_Category, having type string - ParameterId["Category"] = "itemCategory"; - // DPI_ClassName, having type string - ParameterId["ClassName"] = "classNameForCleaning"; - // DPI_CloudFileClassName, having type string - ParameterId["CloudFileClassName"] = "cloudFileClassName"; - // DPI_CloudFileStorageProvider, having type string - ParameterId["CloudFileStorageProvider"] = "cloudFileStorageProvider"; - // DPI_ConfigName, having type string - ParameterId["ConfigName"] = "connectionConfigName"; - // DPI_ConnectionCaption, having type string - ParameterId["ConnectionCaption"] = "connectionCaption"; - // DPI_ConnectionDescriptionLabel, having type string - ParameterId["ConnectionDescriptionLabel"] = "connectionDescriptionLabel"; - // DPI_ConnectionClass, having type string - ParameterId["ConnectionClass"] = "connectionClassName"; - // DPI_ConnectionName, having type string - ParameterId["ConnectionName"] = "connectionName"; - // DPI_ConnectionOptionName, having type string - ParameterId["ConnectionOptionName"] = "connectionOptionName"; - // DPI_ConnectionSpecificationTitle, having type string - ParameterId["ConnectionSpecificationTitle"] = "connectionSpecificationTitle"; - // DPI_ConnectionTypeLabel, having type string - ParameterId["ConnectionTypeLabel"] = "connectionTypeLabel"; - // DPI_CubeDescription, having type string - ParameterId["CubeDescription"] = "cubeDescription"; - // DPI_CubeLastUpdated, having type string - ParameterId["CubeLastUpdated"] = "cubeLastUpdated"; - // DPI_CubeListPrompt, having type string - ParameterId["CubeListPrompt"] = "cubeListPrompt"; - // DPI_CubeName, having type string - ParameterId["CubeName"] = "cubeName"; - // DPI_CubeSearchTerm, having type string - ParameterId["CubeSearchTerm"] = "cubeSearchTerm"; - // DPI_CurrentText, having type string - ParameterId["CurrentText"] = "currentText"; - // DPI_CustomSplitStringSeparator, having type string - ParameterId["CustomSplitStringSeparator"] = "customSplitStringSeparator"; - // DPI_DatasourceId, having type string - ParameterId["DatasourceId"] = "datasourceId"; - // DPI_DBNamePrompt, having type string - ParameterId["DBNamePrompt"] = "dbNamePrompt"; - // DPI_DBWHNamePrompt, having type string - ParameterId["DBWHNamePrompt"] = "dbWarehouseNamePrompt"; - // DPI_DSClass, having type string - ParameterId["DSClass"] = "dsClass"; - // DPI_DatabaseName, having type string - ParameterId["DatabaseName"] = "datasourceDatabaseName"; - // DPI_DatabaseNote, having type string - ParameterId["DatabaseNote"] = "databaseNote"; - // DPI_DragLabel, having type string - ParameterId["DragLabel"] = "dragLabel"; - // DPI_EffectiveDateRange, having type string - ParameterId["EffectiveDateRange"] = "effectiveDateRange"; - // DPI_GoogleSheetCreatedTime, having type string - ParameterId["GoogleSheetCreatedTime"] = "googleSheetCreatedTime"; - // DPI_GoogleSheetId, having type string - ParameterId["GoogleSheetId"] = "googleSheetId"; - // DPI_GoogleSheetLastModifiedTime, having type string - ParameterId["GoogleSheetLastModifiedTime"] = "googleSheetLastModifiedTime"; - // DPI_GoogleSheetLastModifyingUser, having type string - ParameterId["GoogleSheetLastModifyingUser"] = "googleSheetLastModifyingUser"; - // DPI_GoogleSheetLastViewedByUserTime, having type string - ParameterId["GoogleSheetLastViewedByUserTime"] = "googleSheetLastViewedByUserTime"; - // DPI_GoogleSheetMimeType, having type string - ParameterId["GoogleSheetMimeType"] = "googleSheetMimeType"; - // DPI_GoogleSheetName, having type string - ParameterId["GoogleSheetName"] = "googleSheetName"; - // DPI_GoogleSheetOwner, having type string - ParameterId["GoogleSheetOwner"] = "googleSheetOwner"; - // DPI_GoogleSheetThumbnailLink, having type string - ParameterId["GoogleSheetThumbnailLink"] = "googleSheetThumbnailLink"; - // DPI_GoogleSheetThumbnailId, having type string - ParameterId["GoogleSheetThumbnailId"] = "googleSheetThumbnailId"; - // DPI_GoogleSheetThumbnailLocalPath, having type string - ParameterId["GoogleSheetThumbnailLocalPath"] = "googleSheetThumbnailLocalPath"; - // DPI_GoogleSheetWebViewLink, having type string - ParameterId["GoogleSheetWebViewLink"] = "googleSheetWebViewLink"; - // DPI_GoogleSheetsListErrorMessage, having type string - ParameterId["GoogleSheetsListErrorMessage"] = "googleSheetsListErrorMessage"; - // DPI_InitialSQL, having type string - ParameterId["InitialSQL"] = "initialSql"; - // DPI_ISODate, having type string - ParameterId["ISODate"] = "isoDate"; - // DPI_ISOEndDate, having type string - ParameterId["ISOEndDate"] = "isoEndDate"; - // DPI_ISOStartDate, having type string - ParameterId["ISOStartDate"] = "isoStartDate"; - // DPI_IsolationLevel, having type string - ParameterId["IsolationLevel"] = "datasourceIsolationLevel"; - // DPI_ItemDescription, having type string - ParameterId["ItemDescription"] = "itemDescription"; - // DPI_ItemId, having type string - ParameterId["ItemId"] = "itemId"; - // DPI_KerberosHost, having type string - ParameterId["KerberosHost"] = "datasourceKerberosHost"; - // DPI_KerberosRealm, having type string - ParameterId["KerberosRealm"] = "datasourceKerberosRealm"; - // DPI_KerberosService, having type string - ParameterId["KerberosService"] = "datasourceKerberosService"; - // DPI_Name, having type string - ParameterId["Name"] = "name"; - // DPI_OptionId, having type string - ParameterId["OptionId"] = "optionId"; - // DPI_PartitioningButtonLabel, having type string - ParameterId["PartitioningButtonLabel"] = "partitioningButtonLabel"; - // DPI_PartitioningButtonTooltip, having type string - ParameterId["PartitioningButtonTooltip"] = "partitioningButtonTooltip"; - // DPI_PartitioningText, having type string - ParameterId["PartitioningText"] = "queryPartitioningText"; - // DPI_PdfStartPage, having type string - ParameterId["PdfStartPage"] = "pdfStartPage"; - // DPI_PdfEndPage, having type string - ParameterId["PdfEndPage"] = "pdfEndPage"; - // DPI_PortPrompt, having type string - ParameterId["PortPrompt"] = "portPrompt"; - // DPI_PromptText, having type string - ParameterId["PromptText"] = "promptText"; - // DPI_QueryBanding, having type string - ParameterId["QueryBanding"] = "queryBanding"; - // DPI_QueryText, having type string - ParameterId["QueryText"] = "queryText"; - // DPI_RecommendationUUID, having type string - ParameterId["RecommendationUUID"] = "recommendationUuid"; - // DPI_SQLQuery, having type string - ParameterId["SQLQuery"] = "sqlQuery"; - // DPI_SchemaComboFallbackText, having type string - ParameterId["SchemaComboFallbackText"] = "schemaComboFallbackText"; - // DPI_SchemaLabel, having type string - ParameterId["SchemaLabel"] = "schemaLabel"; - // DPI_SchemaMemberGlobalName, having type string - ParameterId["SchemaMemberGlobalName"] = "schemaMemberGlobalName"; - // DPI_SchemaName, having type string - ParameterId["SchemaName"] = "datasourceSchemaName"; - // DPI_ScriptText, having type string - ParameterId["ScriptText"] = "scriptText"; - // DPI_SecondaryWhiteList, having type string - ParameterId["SecondaryWhiteList"] = "secondaryWhiteList"; - // DPI_Server, having type string - ParameterId["Server"] = "datasourceServer"; - // DPI_ServerNamePrompt, having type string - ParameterId["ServerNamePrompt"] = "serverNamePrompt"; - // DPI_Service, having type string - ParameterId["Service"] = "datasourceService"; - // DPI_ServiceNamePrompt, having type string - ParameterId["ServiceNamePrompt"] = "servicePrompt"; - // DPI_SheetFormatting, having type string - ParameterId["SheetFormatting"] = "sheetFormatting"; - // DPI_SlowMetadataSearchTerm, having type string - ParameterId["SlowMetadataSearchTerm"] = "slowMetadataSearchTerm"; - // DPI_StandardConnectionName, having type string - ParameterId["StandardConnectionName"] = "datasourceStandardConnectionName"; - // DPI_StandardConnectionPlaceholderText, having type string - ParameterId["StandardConnectionPlaceholderText"] = "standardConnectionPlaceholderText"; - // DPI_StoredProcedureParameterTitle, having type string - ParameterId["StoredProcedureParameterTitle"] = "storedProcedureParameterTitle"; - // DPI_TableAlias, having type string - ParameterId["TableAlias"] = "tableAlias"; - // DPI_RightTableAlias, having type string - ParameterId["RightTableAlias"] = "rightTableAlias"; - // DPI_TableCaption, having type string - ParameterId["TableCaption"] = "tableCaption"; - // DPI_TableCollectionName, having type string - ParameterId["TableCollectionName"] = "tableCollectionName"; - // DPI_TablePlaceholderText, having type string - ParameterId["TablePlaceholderText"] = "tablePlaceholderText"; - // DPI_TableRanking, having type string - ParameterId["TableRanking"] = "tableRanking"; - // DPI_TableSortKey, having type string - ParameterId["TableSortKey"] = "tableSortkey"; - // DPI_TableTooltip, having type string - ParameterId["TableTooltip"] = "tableTooltip"; - // DPI_TableToReplace, having type string - ParameterId["TableToReplace"] = "tableToReplace"; - // DPI_TableWarningMessage, having type string - ParameterId["TableWarningMessage"] = "tableWarningMessage"; - // DPI_TableauServerDatasourceDescription, having type string - ParameterId["TableauServerDatasourceDescription"] = "tableauServerDatasourceDescription"; - // DPI_TableauServerDatasourceLastExtract, having type string - ParameterId["TableauServerDatasourceLastExtract"] = "tableauServerDatasourceLastExtract"; - // DPI_TableauServerDatasourceModified, having type string - ParameterId["TableauServerDatasourceModified"] = "tableauServerDatasourceModified"; - // DPI_TableauServerDatasourceOwner, having type string - ParameterId["TableauServerDatasourceOwner"] = "tableauServerDatasourceOwner"; - // DPI_TableauServerDatasourcePath, having type string - ParameterId["TableauServerDatasourcePath"] = "tableauServerDatasourcePath"; - // DPI_TableauServerFetchSearchQuery, having type string - ParameterId["TableauServerFetchSearchQuery"] = "tableauServerFetchSearchQuery"; - // DPI_TableauServerName, having type string - ParameterId["TableauServerName"] = "tableauServerName"; - // DPI_TableauServerProjectName, having type string - ParameterId["TableauServerProjectName"] = "tableauServerProjectName"; - // DPI_TableauServerUsername, having type string - ParameterId["TableauServerUsername"] = "tableauServerUsername"; - // DPI_TransportType, having type string - ParameterId["TransportType"] = "transportType"; - // DPI_WarehouseName, having type string - ParameterId["WarehouseName"] = "datasourceWarehouseName"; - // DPI_WorkgroupWorkbookName, having type string - ParameterId["WorkgroupWorkbookName"] = "workgroupWorkbookName"; - // DPI_AnalyticsItemTooltip, having type string - ParameterId["AnalyticsItemTooltip"] = "analyticsItemTooltip"; - // DPI_Description, having type string - ParameterId["Description"] = "description"; - // DPI_DSClassCaption, having type string - ParameterId["DSClassCaption"] = "dsClassCaption"; - // DPI_Formula, having type string - ParameterId["Formula"] = "formula"; - // DPI_MessageText, having type string - ParameterId["MessageText"] = "messageText"; - // DPI_Datasource, having type string - ParameterId["Datasource"] = "datasource"; - // DPI_DatasourceSource, having type string - ParameterId["DatasourceSource"] = "datasourceSource"; - // DPI_DatasourceTarget, having type string - ParameterId["DatasourceTarget"] = "datasourceTarget"; - // DPI_FirstDatasource, having type string - ParameterId["FirstDatasource"] = "firstDatasource"; - // DPI_NewDatasource, having type string - ParameterId["NewDatasource"] = "newDatasource"; - // DPI_ParametersDatasource, having type string - ParameterId["ParametersDatasource"] = "parametersDatasource"; - // DPI_PrimaryDatasource, having type string - ParameterId["PrimaryDatasource"] = "primaryDatasource"; - // DPI_ConnectionDatabases, having type string[] - ParameterId["ConnectionDatabases"] = "connectionDatabases"; - // DPI_ConnectionSchemas, having type string[] - ParameterId["ConnectionSchemas"] = "connectionSchemas"; - // DPI_ConnectionWarehouses, having type string[] - ParameterId["ConnectionWarehouses"] = "connectionWarehouses"; - // DPI_DSClasses, having type string[] - ParameterId["DSClasses"] = "dsClasses"; - // DPI_PossibleChoices, having type string[] - ParameterId["PossibleChoices"] = "possibleChoices"; - // DPI_StandardConnections, having type string[] - ParameterId["StandardConnections"] = "standardConnections"; - // DPI_Strings, having type string[] - ParameterId["Strings"] = "strings"; - // DPI_TableauServerProjectNames, having type string[] - ParameterId["TableauServerProjectNames"] = "tableauServerProjectNames"; - // DPI_TableCaptions, having type string[] - ParameterId["TableCaptions"] = "tableCaptions"; - // DPI_DataValues, having type object[] - ParameterId["DataValues"] = "dataValues"; - // DPI_QueryBandErrors, having type object[] - ParameterId["QueryBandErrors"] = "queryBandErrors"; - // DPI_QueryBandParameters, having type object[] - ParameterId["QueryBandParameters"] = "queryBandParameters"; - // DPI_InitialSQLParameters, having type object[] - ParameterId["InitialSQLParameters"] = "initialSqlParameters"; - // DPI_ConnectionAttributes, having type Dictionary(of string) - ParameterId["ConnectionAttributes"] = "connectionAttrs"; - // DPI_ConnectionProps, having type Dictionary(of string) - ParameterId["ConnectionProps"] = "connectionProps"; - // DPI_DisplayNameMap, having type Dictionary(of string) - ParameterId["DisplayNameMap"] = "displayNameMap"; - // DPI_LookupTable, having type Dictionary(of string) - ParameterId["LookupTable"] = "lookupTable"; - // DPI_OAuthAttrs, having type Dictionary(of string) - ParameterId["OAuthAttrs"] = "oauthAttrs"; - // DPI_StringMap, having type Dictionary(of string) - ParameterId["StringMap"] = "stringMap"; - // DPI_TableRankingMap, having type Dictionary(of string) - ParameterId["TableRankingMap"] = "tableRankingMap"; - // DPI_WDCAttributes, having type Dictionary(of string) - ParameterId["WDCAttributes"] = "wdcAttrs"; - // DPI_ConnectorAttributes, having type Dictionary(of string) - ParameterId["ConnectorAttributes"] = "connectorAttrs"; - // DPI_TableRelevanceParams, having type Dictionary(of string) - ParameterId["TableRelevanceParams"] = "tableRelevanceParams"; - // DPI_ActualParameterParameter, having type string - ParameterId["ActualParameterParameter"] = "actualParameterParameter"; - // DPI_DataColumnName, having type string - ParameterId["DataColumnName"] = "dataColumnName"; - // DPI_LHSDataColumnName, having type string - ParameterId["LHSDataColumnName"] = "lhsDataColumnName"; - // DPI_RHSDataColumnName, having type string - ParameterId["RHSDataColumnName"] = "rhsDataColumnName"; - // DPI_FullCubeName, having type string - ParameterId["FullCubeName"] = "fullCubeName"; - // DPI_FullVariableName, having type string - ParameterId["FullVariableName"] = "fullVariableName"; - // DPI_SemanticRole, having type string - ParameterId["SemanticRole"] = "semanticRole"; - // DPI_StoredProcedureName, having type string - ParameterId["StoredProcedureName"] = "storedProcName"; - // DPI_TableName, having type string - ParameterId["TableName"] = "tableName"; - // DPI_AddedTableNames, having type string[] - ParameterId["AddedTableNames"] = "addedTableNames"; - // DPI_CoalesceGroupFields, having type string[] - ParameterId["CoalesceGroupFields"] = "coalesceGroupFields"; - // DPI_FieldNames, having type string[] - ParameterId["FieldNames"] = "fieldNames"; - // DPI_JoinFieldAliases, having type string[] - ParameterId["JoinFieldAliases"] = "joinField_aliases"; - // DPI_JoinInfoFields, having type string[] - ParameterId["JoinInfoFields"] = "joinInfoFields"; - // DPI_PivotGroupFields, having type string[] - ParameterId["PivotGroupFields"] = "pivotGroupFields"; - // DPI_RemovedTableNames, having type string[] - ParameterId["RemovedTableNames"] = "removedTableNames"; - // DPI_StoredProcedures, having type string[] - ParameterId["StoredProcedures"] = "storedProcedures"; - // DPI_TableNames, having type string[] - ParameterId["TableNames"] = "tableNames"; - // DPI_ColumnName, having type string - ParameterId["ColumnName"] = "columnName"; - // DPI_FieldName, having type string - ParameterId["FieldName"] = "fn"; - // DPI_GoogleSheetThumbnailImage, having type string - ParameterId["GoogleSheetThumbnailImage"] = "googleSheetThumbnailImage"; - // DPI_AttrMDWPassword, having type string - ParameterId["AttrMDWPassword"] = "widgetAttrMdwPassword"; - // DPI_AttrPassword, having type string - ParameterId["AttrPassword"] = "widgetAttrPassword"; - // DPI_DatasourcePassword, having type string - ParameterId["DatasourcePassword"] = "datasourcePassword"; - // DPI_FederatedKeychain, having type string - ParameterId["FederatedKeychain"] = "federatedKeychain"; - // DPI_DataParameterID, having type string - ParameterId["DataParameterID"] = "dataParamType"; - // DPI_ConnectServerWidgetType, having type ConnectServerWidgetType - ParameterId["ConnectServerWidgetType"] = "connectServerWidgetType"; - // DPI_AuthenticationMode, having type Mode - ParameterId["AuthenticationMode"] = "authMode"; - // DPI_ReconnectAuthMode, having type ReconnectMode - ParameterId["ReconnectAuthMode"] = "reconnectAuthMode"; - // DPI_CurrentAuthOption, having type AuthOption - ParameterId["CurrentAuthOption"] = "currAuthOption"; - // DPI_AuthOptionList, having type AuthOption[] - ParameterId["AuthOptionList"] = "authOptions"; - // DPI_ConnectionSpecificationType, having type ConnectionSpecificationType - ParameterId["ConnectionSpecificationType"] = "connectionSpecificationType"; - // DPI_DataType, having type DataType - ParameterId["DataType"] = "dataType"; - // DPI_LHSDataType, having type DataType - ParameterId["LHSDataType"] = "lhsDataType"; - // DPI_RHSDataType, having type DataType - ParameterId["RHSDataType"] = "rhsDataType"; - // DPI_DefaultFieldRole, having type FieldRole - ParameterId["DefaultFieldRole"] = "defaultFieldRole"; - // DPI_FieldRole, having type FieldRole - ParameterId["FieldRole"] = "fieldRole"; - // DPI_DefaultFieldType, having type FieldType - ParameterId["DefaultFieldType"] = "defaultFieldType"; - // DPI_FieldType, having type FieldType - ParameterId["FieldType"] = "fieldType"; - // DPI_FieldTypeList, having type FieldType[] - ParameterId["FieldTypeList"] = "fieldTypeList"; - // DPI_FieldTypeListDetail, having type FieldType[] - ParameterId["FieldTypeListDetail"] = "fieldTypeListDetail"; - // DPI_AggType, having type AggType - ParameterId["AggType"] = "aggregation"; - // DPI_DefaultAggType, having type AggType - ParameterId["DefaultAggType"] = "defaultAggregation"; - // DPI_ForecastAgg, having type AggType - ParameterId["ForecastAgg"] = "forecastSummarizeTo"; - // DPI_ForecastAutoAgg, having type AggType - ParameterId["ForecastAutoAgg"] = "forecastAutoSummarizeTo"; - // DPI_ForecastAutoRangeUnits, having type AggType - ParameterId["ForecastAutoRangeUnits"] = "forecastAutoRangeUnits"; - // DPI_ForecastEndOfRangeUnits, having type AggType - ParameterId["ForecastEndOfRangeUnits"] = "forecastEndOfRangeUnits"; - // DPI_ForecastNextRangeUnits, having type AggType - ParameterId["ForecastNextRangeUnits"] = "forecastNextRangeUnits"; - // DPI_SourceAgg, having type AggType - ParameterId["SourceAgg"] = "sourceAggregation"; - // DPI_TargetAgg, having type AggType - ParameterId["TargetAgg"] = "targetAggregation"; - // DPI_AggregateByAggTypes, having type AggType[] - ParameterId["AggregateByAggTypes"] = "aggregateByAggTypes"; - // DPI_AggregationValues, having type AggType[] - ParameterId["AggregationValues"] = "aggregationValues"; - // DPI_SortAggValues, having type AggType[] - ParameterId["SortAggValues"] = "sortAggValues"; - // DPI_ColumnClass, having type ColumnClass - ParameterId["ColumnClass"] = "columnClass"; - // DPI_ConnectionWidgetType, having type ConnectionWidgetType - ParameterId["ConnectionWidgetType"] = "connectionWidgetType"; - // DPI_TablePillIcon, having type TablePillIcon - ParameterId["TablePillIcon"] = "tablePillIconType"; - // DPI_EnumeratedEntityType, having type EntityType - ParameterId["EnumeratedEntityType"] = "enumeratedEntityType"; - // DPI_PickEntitySearchType, having type PickEntitySearchType - ParameterId["PickEntitySearchType"] = "entitySearchType"; - // DPI_ExpressionOp, having type Op - ParameterId["ExpressionOp"] = "expressionOp"; - // DPI_ExpressionOperatorCaption, having type ExpressionOperatorCaptionPresModel - ParameterId["ExpressionOperatorCaption"] = "expressionOperatorCaption"; - // DPI_RelationalExperessionOps, having type ExpressionOperatorCaptionPresModel[] - ParameterId["RelationalExperessionOps"] = "relationalExpressionOps"; - // DPI_HierarchyExpressionOps, having type ExpressionOperatorCaptionPresModel[] - ParameterId["HierarchyExpressionOps"] = "hierarchyExpressionOps"; - // DPI_DefaultSortDirection, having type SortDirection - ParameterId["DefaultSortDirection"] = "defSortOrder"; - // DPI_SortDirection, having type SortDirection - ParameterId["SortDirection"] = "sortOrder"; - // DPI_SortDirectionValues, having type SortDirection[] - ParameterId["SortDirectionValues"] = "sortDirectionValues"; - // DPI_CubeMetadataCategory, having type CubeMetadataCategory - ParameterId["CubeMetadataCategory"] = "cubeMetadataCategory"; - // DPI_CubeMetadataCategories, having type CubeMetadataCategory[] - ParameterId["CubeMetadataCategories"] = "cubeMetadataCategories"; - // DPI_GoogleBasicInfoType, having type GoogleBasicInfoType - ParameterId["GoogleBasicInfoType"] = "googleBasicInfoType"; - // DPI_GoogleAnalyticsDateRangeOptionType, having type DateRange - ParameterId["GoogleAnalyticsDateRangeOptionType"] = "googleAnalyticsDateRangeOptionType"; - // DPI_TableCalcType, having type TableCalcType - ParameterId["TableCalcType"] = "tableCalcType"; - // DPI_TableCalcTypeValues, having type TableCalcType[] - ParameterId["TableCalcTypeValues"] = "tableCalcTypeValues"; - // DPI_RelativeAddress, having type RelativeAddress - ParameterId["RelativeAddress"] = "relativeAddress"; - // DPI_RelativeValues, having type RelativeAddress[] - ParameterId["RelativeValues"] = "relativeValues"; - // DPI_OrderingType, having type OrderingType - ParameterId["OrderingType"] = "orderingType"; - // DPI_OrderingTypeValues, having type OrderingType[] - ParameterId["OrderingTypeValues"] = "orderingTypeValues"; - // DPI_CategoricalBinItemType, having type CategoricalBinItemType - ParameterId["CategoricalBinItemType"] = "categoricalBinItemType"; - // DPI_AuthenticationInfos, having type AuthenticationSettingsPresModel - ParameterId["AuthenticationInfos"] = "authInfo"; - // DPI_ConnectionWidgetParams, having type ConnectionParamsPresModel - ParameterId["ConnectionWidgetParams"] = "widgetConnectionParams"; - // DPI_ConnectionSettings, having type ConnectionSettingsPresModel - ParameterId["ConnectionSettings"] = "connectionSettings"; - // DPI_ReconnectAuthenticationSettings, having type AuthenticationSettingsPresModel - ParameterId["ReconnectAuthenticationSettings"] = "reconnectAuthSettings"; - // DPI_CubeConnectionSpecificationOption, having type CubeConnectionSpecificationOptionPresModel - ParameterId["CubeConnectionSpecificationOption"] = "cubeConnectionSpecificationOption"; - // DPI_CubeConnectionSpecificationOptions, having type CubeConnectionSpecificationOptionPresModel[] - ParameterId["CubeConnectionSpecificationOptions"] = "cubeConnectionSpecificationOptions"; - // DPI_CubeConnectionSpecification, having type CubeConnectionSpecificationPresModel - ParameterId["CubeConnectionSpecification"] = "cubeConnectionSpecification"; - // DPI_ConnectionSettingsOption, having type ConnectionSettingsOptionPresModel - ParameterId["ConnectionSettingsOption"] = "connectionSettingsOption"; - // DPI_ConnectionSettingsOptions, having type ConnectionSettingsOptionPresModel[] - ParameterId["ConnectionSettingsOptions"] = "connectionSettingsOptions"; - // DPI_StringCollation, having type StringCollationPresModel - ParameterId["StringCollation"] = "stringCollation"; - // DPI_DatabaseEnumeration, having type DatabaseEnumerationPresModel - ParameterId["DatabaseEnumeration"] = "databaseEnumeration"; - // DPI_SchemaEnumeration, having type SchemaEnumerationPresModel - ParameterId["SchemaEnumeration"] = "schemaEnumeration"; - // DPI_StandardConnectionEnumeration, having type StandardConnectionEnumerationPresModel - ParameterId["StandardConnectionEnumeration"] = "standardConnectionEnumeration"; - // DPI_StoredProcedureEnumeration, having type StoredProcedureEnumerationPresModel - ParameterId["StoredProcedureEnumeration"] = "storedProcedureEnumeration"; - // DPI_TableEnumeration, having type TableEnumerationPresModel - ParameterId["TableEnumeration"] = "tableEnumeration"; - // DPI_WarehouseEnumeration, having type WarehouseEnumerationPresModel - ParameterId["WarehouseEnumeration"] = "warehouseEnumeration"; - // DPI_SlowMetadataSchemaList, having type SlowMetadataSchemaListPresModel - ParameterId["SlowMetadataSchemaList"] = "slowMetadataSchemaList"; - // DPI_SlowMetadataTableList, having type SlowMetadataTableListPresModel - ParameterId["SlowMetadataTableList"] = "slowMetadataTableList"; - // DPI_CubeCatalog, having type CubeCatalogPresModel - ParameterId["CubeCatalog"] = "cubeCatalog"; - // DPI_CubeCatalogs, having type CubeCatalogPresModel[] - ParameterId["CubeCatalogs"] = "cubeCatalogs"; - // DPI_CubeCatalogEnumeration, having type CubeCatalogEnumerationPresModel - ParameterId["CubeCatalogEnumeration"] = "cubeCatalogEnumeration"; - // DPI_Cube, having type CubePresModel - ParameterId["Cube"] = "cube"; - // DPI_Cubes, having type CubePresModel[] - ParameterId["Cubes"] = "cubes"; - // DPI_CubeEnumeration, having type CubeEnumerationPresModel - ParameterId["CubeEnumeration"] = "cubeEnumeration"; - // DPI_GoogleAnalyticsBasicItem, having type GoogleAnalyticsBasicItemPresModel - ParameterId["GoogleAnalyticsBasicItem"] = "googleAnalyticsBasicItem"; - // DPI_GAMeasureSets, having type GoogleAnalyticsBasicItemPresModel[] - ParameterId["GAMeasureSets"] = "gaMeasureSets"; - // DPI_GoogleAnalyticsViews, having type GoogleAnalyticsBasicItemPresModel[] - ParameterId["GoogleAnalyticsViews"] = "googleAnalyticsViews"; - // DPI_GoogleAnalyticsProperties, having type GoogleAnalyticsBasicItemPresModel[] - ParameterId["GoogleAnalyticsProperties"] = "googleAnalyticsProperties"; - // DPI_GoogleBasicInfoItems, having type GoogleAnalyticsBasicItemPresModel[] - ParameterId["GoogleBasicInfoItems"] = "googleAnalyticsAccounts"; - // DPI_GoogleAnalyticsComplexItem, having type GoogleAnalyticsComplexItemPresModel - ParameterId["GoogleAnalyticsComplexItem"] = "googleAnalyticsComplexItem"; - // DPI_GoogleAnalyticsPossibleDimensions, having type GoogleAnalyticsComplexItemPresModel[] - ParameterId["GoogleAnalyticsPossibleDimensions"] = "googleAnalyticsPossibleDimensions"; - // DPI_GoogleAnalyticsPossibleMeasures, having type GoogleAnalyticsComplexItemPresModel[] - ParameterId["GoogleAnalyticsPossibleMeasures"] = "googleAnalyticsPossibleMeasures"; - // DPI_GoogleAnalyticsPossibleSegments, having type GoogleAnalyticsComplexItemPresModel[] - ParameterId["GoogleAnalyticsPossibleSegments"] = "googleAnalyticsPossibleSegments"; - // DPI_GoogleAnalyticsSelectedDimensions, having type GoogleAnalyticsComplexItemPresModel[] - ParameterId["GoogleAnalyticsSelectedDimensions"] = "googleAnalyticsSelectedDimensions"; - // DPI_GoogleAnalyticsSelectedMeasures, having type GoogleAnalyticsComplexItemPresModel[] - ParameterId["GoogleAnalyticsSelectedMeasures"] = "googleAnalyticsSelectedMeasures"; - // DPI_GoogleAnalyticsDateRangeOption, having type GoogleAnalyticsDateRangeOptionPresModel - ParameterId["GoogleAnalyticsDateRangeOption"] = "googleAnalyticsDateRangeOption"; - // DPI_GoogleAnalyticsDateRangeOptions, having type GoogleAnalyticsDateRangeOptionPresModel[] - ParameterId["GoogleAnalyticsDateRangeOptions"] = "googleAnalyticsDateRangeOptions"; - // DPI_GoogleAnalyticsEndDate, having type GoogleAnalyticsDatePresModel - ParameterId["GoogleAnalyticsEndDate"] = "googleAnalyticsEndDate"; - // DPI_GoogleAnalyticsStartDate, having type GoogleAnalyticsDatePresModel - ParameterId["GoogleAnalyticsStartDate"] = "googleAnalyticsStartDate"; - // DPI_GoogleAnalyticsDateRange, having type GoogleAnalyticsDateRangePresModel - ParameterId["GoogleAnalyticsDateRange"] = "googleAnalyticsDateRange"; - // DPI_GoogleAnalyticsQueryPartitioning, having type GoogleAnalyticsQueryPartitioningPresModel - ParameterId["GoogleAnalyticsQueryPartitioning"] = "googleAnalyticsQueryPartitioning"; - // DPI_GAConnectionDescription, having type GoogleAnalyticsConnectionDescriptionPresModel - ParameterId["GAConnectionDescription"] = "gaConnectionDescription"; - // DPI_GoogleSheetItem, having type GoogleSheetItemPresModel - ParameterId["GoogleSheetItem"] = "googleSheetItem"; - // DPI_GoogleSheetItems, having type GoogleSheetItemPresModel[] - ParameterId["GoogleSheetItems"] = "googleSheetItems"; - // DPI_GoogleSheetsListPresModel, having type GoogleSheetsListPresModel - ParameterId["GoogleSheetsListPresModel"] = "googleSheetsList"; - // DPI_GoogleSheetPanePresModel, having type GoogleSheetPanePresModel - ParameterId["GoogleSheetPanePresModel"] = "googleSheetPane"; - // DPI_TableauServerConnectionDescription, having type TableauServerConnectionDescriptionPresModel - ParameterId["TableauServerConnectionDescription"] = "tableauServerConnectionDescription"; - // DPI_InitialSQLPresModel, having type InitialSQLPresModel - ParameterId["InitialSQLPresModel"] = "initialSqlPresModel"; - // DPI_QueryBandingPresModel, having type QueryBandingPresModel - ParameterId["QueryBandingPresModel"] = "queryBandingPresModel"; - // DPI_SlowMetadata, having type SlowMetadataPresModel - ParameterId["SlowMetadata"] = "slowMetadata"; - // DPI_SlowMetadataSchemaSearchPresModel, having type SlowMetadataSearchPresModel - ParameterId["SlowMetadataSchemaSearchPresModel"] = "slowMetadataSchemaSearch"; - // DPI_SlowMetadataTableSearchPresModel, having type SlowMetadataSearchPresModel - ParameterId["SlowMetadataTableSearchPresModel"] = "slowMetadataTableSearch"; - // DPI_TableauServerProjectsPresModel, having type TableauServerProjectsPresModel - ParameterId["TableauServerProjectsPresModel"] = "tableauServerProjectsPresmodel"; - // DPI_TableauServerDataSourcePresModel, having type TableauServerDataSourcePresModel - ParameterId["TableauServerDataSourcePresModel"] = "tableauServerDataSourcePresmodel"; - // DPI_TableauServerDataSourcePresModels, having type TableauServerDataSourcePresModel[] - ParameterId["TableauServerDataSourcePresModels"] = "tableauServerDataSourcePresmodels"; - // DPI_TableauServerDataSourcesPresModel, having type TableauServerDataSourcesPresModel - ParameterId["TableauServerDataSourcesPresModel"] = "tableauServerDataSourcesPresmodel"; - // DPI_TableauServerDataPresModel, having type TableauServerDataPresModel - ParameterId["TableauServerDataPresModel"] = "tableauServerDataPresmodel"; - // DPI_StoredProcedureParameterPresModel, having type StoredProcedureParameterPresModel - ParameterId["StoredProcedureParameterPresModel"] = "storedProcedureParameter"; - // DPI_StoredProcedureParametersPresModel, having type StoredProcedureParameterPresModel[] - ParameterId["StoredProcedureParametersPresModel"] = "storedProcedureParameters"; - // DPI_CustomSQLInfo, having type CustomSQLInfoPresModel - ParameterId["CustomSQLInfo"] = "customSqlInfo"; - // DPI_ConnectionTableInfo, having type ConnectionTableInfoPresModel - ParameterId["ConnectionTableInfo"] = "connectionTableInfo"; - // DPI_TableInfos, having type ConnectionTableInfoPresModel[] - ParameterId["TableInfos"] = "tableInfos"; - // DPI_ConnectionDescription, having type ConnectionDescriptionPresModel - ParameterId["ConnectionDescription"] = "connectionDescription"; - // DPI_DataSourceParserValidationMode, having type DataSourceParserValidationMode - ParameterId["DataSourceParserValidationMode"] = "dataSourceParserValidationMode"; - // DPI_OAuthCredentialTypeInfo, having type OAuthCredentialTypeInfoPresModel - ParameterId["OAuthCredentialTypeInfo"] = "oauthCredentialTypeInfo"; - // DPI_OAuthCredentialTypeInfos, having type OAuthCredentialTypeInfoPresModel[] - ParameterId["OAuthCredentialTypeInfos"] = "oauthCredentialTypeInfos"; - // DPI_OAuthSettings, having type OAuthSettingsPresModel - ParameterId["OAuthSettings"] = "oauthSettings"; - // DPI_CredentialTypePropertiesFlag, having type CredentialTypePropertiesFlag - ParameterId["CredentialTypePropertiesFlag"] = "credentialTypePropertiesFlag"; - // DPI_CredentialTypePropertiesFlags, having type CredentialTypePropertiesFlag[] - ParameterId["CredentialTypePropertiesFlags"] = "credentialTypePropertiesFlags"; - // DPI_ConnectionTypeEnum, having type ConnectionTypeEnum - ParameterId["ConnectionTypeEnum"] = "connectionTypeEnum"; - // DPI_ConnectorType, having type ConnectorType - ParameterId["ConnectorType"] = "connectorType"; - // DPI_PdfPagePicker, having type PdfPagePickerPresModel - ParameterId["PdfPagePicker"] = "pdfPagePicker"; - // DPI_ActivateNew, having type bool - ParameterId["ActivateNew"] = "activateNew"; - // DPI_AddActions, having type bool - ParameterId["AddActions"] = "addActions"; - // DPI_AddAsFloating, having type bool - ParameterId["AddAsFloating"] = "addAsFloating"; - // DPI_AddColorDictionary, having type bool - ParameterId["AddColorDictionary"] = "addColorDictionary"; - // DPI_AddDroplines, having type bool - ParameterId["AddDroplines"] = "addDroplines"; - // DPI_AddHeaders, having type bool - ParameterId["AddHeaders"] = "addHeaders"; - // DPI_AddHighlighting, having type bool - ParameterId["AddHighlighting"] = "addHighlighting"; - // DPI_AddImageDictionary, having type bool - ParameterId["AddImageDictionary"] = "addImageDictionary"; - // DPI_AddMarkLabels, having type bool - ParameterId["AddMarkLabels"] = "addMarkLabels"; - // DPI_AddPages, having type bool - ParameterId["AddPages"] = "addPages"; - // DPI_AddSelection, having type bool - ParameterId["AddSelection"] = "addSelection"; - // DPI_AddToFolder, having type bool - ParameterId["AddToFolder"] = "addToFolder"; - // DPI_AddVizData, having type bool - ParameterId["AddVizData"] = "addVizData"; - // DPI_AlertConditionMet, having type bool - ParameterId["AlertConditionMet"] = "alertConditionMet"; - // DPI_AllFields, having type bool - ParameterId["AllFields"] = "allFields"; - // DPI_AllOnEmpty, having type bool - ParameterId["AllOnEmpty"] = "allOnEmpty"; - // DPI_AllPages, having type bool - ParameterId["AllPages"] = "includeAllPages"; - // DPI_AllowPreviewSizeChange, having type bool - ParameterId["AllowPreviewSizeChange"] = "allowPreviewSizeChange"; - // DPI_AllSelectedIsEffectivelyRangeTypeAll, having type bool - ParameterId["AllSelectedIsEffectivelyRangeTypeAll"] = "allSelectedIsEffectivelyRangeTypeAll"; - // DPI_AllStoryPoints, having type bool - ParameterId["AllStoryPoints"] = "allStorypoints"; - // DPI_AllowAllRange, having type bool - ParameterId["AllowAllRange"] = "allowAllRange"; - // DPI_AllowCreatingNewParameters, having type bool - ParameterId["AllowCreatingNewParameters"] = "allowCreatingNewParameters"; - // DPI_AllowDuplicateFieldDropOnFilterShelf, having type bool - ParameterId["AllowDuplicateFieldDropOnFilterShelf"] = "allowDuplicateFieldDropOnFilterShelf"; - // DPI_AllowFilterPreset, having type bool - ParameterId["AllowFilterPreset"] = "allowFilterPreset"; - // DPI_AllowHoverActions, having type bool - ParameterId["AllowHoverActions"] = "allowHoverActions"; - // DPI_AllowHyphenation, having type bool - ParameterId["AllowHyphenation"] = "allowHyphenation"; - // DPI_AllowJoinOnCalc, having type bool - ParameterId["AllowJoinOnCalc"] = "allowJoinOnCalc"; - // DPI_AllowManualRange, having type bool - ParameterId["AllowManualRange"] = "allowManualRange"; - // DPI_AllowMapping, having type bool - ParameterId["AllowMapping"] = "allowMapping"; - // DPI_AllowMultiSelect, having type bool - ParameterId["AllowMultiSelect"] = "allowMultiSelect"; - // DPI_AllowNull, having type bool - ParameterId["AllowNull"] = "allowNull"; - // DPI_AllowPanZoom, having type bool - ParameterId["AllowPanZoom"] = "allowPanZoom"; - // DPI_AllowPatternBased, having type bool - ParameterId["AllowPatternBased"] = "allowPatternBasedUnion"; - // DPI_AllowPromptText, having type bool - ParameterId["AllowPromptText"] = "allowPromptText"; - // DPI_AllowSaveDataSource, having type bool - ParameterId["AllowSaveDataSource"] = "allowSaveDataSource"; - // DPI_AllowWholeDate, having type bool - ParameterId["AllowWholeDate"] = "allowWholeDate"; - // DPI_AllowWork, having type bool - ParameterId["AllowWork"] = "allowWork"; - // DPI_AllowWrap, having type bool - ParameterId["AllowWrap"] = "allowWrap"; - // DPI_AppIs32Bit, having type bool - ParameterId["AppIs32Bit"] = "appIs32Bit"; - // DPI_AppIs64Bit, having type bool - ParameterId["AppIs64Bit"] = "appIs64Bit"; - // DPI_AppIsBeta, having type bool - ParameterId["AppIsBeta"] = "appIsBeta"; - // DPI_AppIsOEM, having type bool - ParameterId["AppIsOEM"] = "appIsOem"; - // DPI_AppendTde, having type bool - ParameterId["AppendTde"] = "appendTde"; - // DPI_ApplyColors, having type bool - ParameterId["ApplyColors"] = "applyColors"; - // DPI_ApplyNewSelection, having type bool - ParameterId["ApplyNewSelection"] = "applyNewSelection"; - // DPI_AreConfidenceBandsValid, having type bool - ParameterId["AreConfidenceBandsValid"] = "areConfidenceBandsValid"; - // DPI_AreDataSourceFiltersVisible, having type bool - ParameterId["AreDataSourceFiltersVisible"] = "areDataSourceFiltersVisible"; - // DPI_AreExtractFiltersEnabled, having type bool - ParameterId["AreExtractFiltersEnabled"] = "areExtractFiltersEnabled"; - // DPI_AreTotalsUsed, having type bool - ParameterId["AreTotalsUsed"] = "areTotalsUsed"; - // DPI_AtTheLevelFieldIsInvalid, having type bool - ParameterId["AtTheLevelFieldIsInvalid"] = "atTheLevelFieldIsInvalid"; - // DPI_AutoURL, having type bool - ParameterId["AutoURL"] = "autoUrl"; - // DPI_AutoUpdate, having type bool - ParameterId["AutoUpdate"] = "autoUpdate"; - // DPI_BackingSheetIsDashboard, having type bool - ParameterId["BackingSheetIsDashboard"] = "isBackingSheetDashboard"; - // DPI_BeginDataSourcePresModelUpdate, having type bool - ParameterId["BeginDataSourcePresModelUpdate"] = "beginDataSourcePresModelUpdate"; - // DPI_AggregateDrillUp, having type bool - ParameterId["AggregateDrillUp"] = "boolAggregateDrillUp"; - // DPI_BoxplotMarkExclusion, having type bool - ParameterId["BoxplotMarkExclusion"] = "boxplotMarkExclusion"; - // DPI_BreakPageOnPane, having type bool - ParameterId["BreakPageOnPane"] = "breakPageOnPane"; - // DPI_BrushLegends, having type bool - ParameterId["BrushLegends"] = "brushLegends"; - // DPI_CachePresModels, having type bool - ParameterId["CachePresModels"] = "cachePresModels"; - // DPI_CanAddConnections, having type bool - ParameterId["CanAddConnections"] = "canAddConnections"; - // DPI_SortPillCanBeDragged, having type bool - ParameterId["SortPillCanBeDragged"] = "sortPillCanBeDragged"; - // DPI_CanAddTable, having type bool - ParameterId["CanAddTable"] = "canAddTable"; - // DPI_CanAnalyzeData, having type bool - ParameterId["CanAnalyzeData"] = "canAnalyzeData"; - // DPI_CanChangeDataType, having type bool - ParameterId["CanChangeDataType"] = "canChangeDataType"; - // DPI_CanChangeSemanticRole, having type bool - ParameterId["CanChangeSemanticRole"] = "canChangeSemanticRole"; - // DPI_CanDerive, having type bool - ParameterId["CanDerive"] = "canDerive"; - // DPI_CanDrop, having type bool - ParameterId["CanDrop"] = "canDrop"; - // DPI_CanEdit, having type bool - ParameterId["CanEdit"] = "canEdit"; - // DPI_CanEditLegendColor, having type bool - ParameterId["CanEditLegendColor"] = "canEditLegendColor"; - // DPI_CanEnableCenter, having type bool - ParameterId["CanEnableCenter"] = "canEnableCenter"; - // DPI_CanShowAdvancedSettings, having type bool - ParameterId["CanShowAdvancedSettings"] = "canShowAdvancedSettings"; - // DPI_CanEnableFilterStateButton, having type bool - ParameterId["CanEnableFilterStateButton"] = "canEnableFilterStateButton"; - // DPI_CanFloat, having type bool - ParameterId["CanFloat"] = "canFloat"; - // DPI_CanHaveTitle, having type bool - ParameterId["CanHaveTitle"] = "canHaveTitle"; - // DPI_CanIgnoreUpdate, having type bool - ParameterId["CanIgnoreUpdate"] = "canIgnoreUpdate"; - // DPI_CanNavigateBack, having type bool - ParameterId["CanNavigateBack"] = "canNavigateBack"; - // DPI_CanNavigateForward, having type bool - ParameterId["CanNavigateForward"] = "canNavigateForward"; - // DPI_CanScrollX, having type bool - ParameterId["CanScrollX"] = "canScrollX"; - // DPI_CanScrollY, having type bool - ParameterId["CanScrollY"] = "canScrollY"; - // DPI_CanSetDomain, having type bool - ParameterId["CanSetDomain"] = "canSetDomain"; - // DPI_CanSetMapUnit, having type bool - ParameterId["CanSetMapUnit"] = "canSetMapUnit"; - // DPI_CanShowApplyButton, having type bool - ParameterId["CanShowApplyButton"] = "canShowApplyButton"; - // DPI_CanShowFilterStateButton, having type bool - ParameterId["CanShowFilterStateButton"] = "canShowFilterStateButton"; - // DPI_CanShowMoreFewerButton, having type bool - ParameterId["CanShowMoreFewerButton"] = "canShowMoreFewerButton"; - // DPI_CanShowSyncClientOptions, having type bool - ParameterId["CanShowSyncClientOptions"] = "canShowSyncClientOptions"; - // DPI_CanSort, having type bool - ParameterId["CanSort"] = "canSort"; - // DPI_CanSortOrdinally, having type bool - ParameterId["CanSortOrdinally"] = "canSortOrdinal"; - // DPI_CanToggleAutomaticDrill, having type bool - ParameterId["CanToggleAutomaticDrill"] = "canToggleAutomaticDrill"; - // DPI_CanToggleGeographicSearch, having type bool - ParameterId["CanToggleGeographicSearch"] = "canToggleGeographicSearch"; - // DPI_CanToggleMapScale, having type bool - ParameterId["CanToggleMapScale"] = "canToggleMapScale"; - // DPI_CanUseFullColorRange, having type bool - ParameterId["CanUseFullColorRange"] = "canUseFullColorRange"; - // DPI_CenterHorizontally, having type bool - ParameterId["CenterHorizontally"] = "centerHorizontally"; - // DPI_CenterVertically, having type bool - ParameterId["CenterVertically"] = "centerVertically"; - // DPI_ChangeAllFields, having type bool - ParameterId["ChangeAllFields"] = "changeAllFields"; - // DPI_Changed, having type bool - ParameterId["Changed"] = "changed"; - // DPI_ClearBrushing, having type bool - ParameterId["ClearBrushing"] = "clearBrushing"; - // DPI_ClearSort, having type bool - ParameterId["ClearSort"] = "clearSort"; - // DPI_ClearView, having type bool - ParameterId["ClearView"] = "clearView"; - // DPI_Collapsed, having type bool - ParameterId["Collapsed"] = "collapsed"; - // DPI_ConsolidateInCommit, having type bool - ParameterId["ConsolidateInCommit"] = "consolidateInCommit"; - // DPI_ClusterEnableScaledCheckbox, having type bool - ParameterId["ClusterEnableScaledCheckbox"] = "clusterEnableScaledCheckbox"; - // DPI_CommitPillFinished, having type bool - ParameterId["CommitPillFinished"] = "commitPillFinished"; - // DPI_CompressArrays, having type bool - ParameterId["CompressArrays"] = "compressArrays"; - // DPI_ComputeCompoundedRate, having type bool - ParameterId["ComputeCompoundedRate"] = "computeCompoundedRate"; - // DPI_ConfidenceIntervalAllowed, having type bool - ParameterId["ConfidenceIntervalAllowed"] = "confidenceIntervalAllowed"; - // DPI_ConfigIsDesktopStandard, having type bool - ParameterId["ConfigIsDesktopStandard"] = "configIsDesktopStandard"; - // DPI_ConfigIsInteractor, having type bool - ParameterId["ConfigIsInteractor"] = "configIsInteractor"; - // DPI_ConfigIsPublic, having type bool - ParameterId["ConfigIsPublic"] = "configIsPublic"; - // DPI_ConfigIsReader, having type bool - ParameterId["ConfigIsReader"] = "configIsReader"; - // DPI_ContainsQuant, having type bool - ParameterId["ContainsQuant"] = "containsQuant"; - // DPI_ContainsValidDatasources, having type bool - ParameterId["ContainsValidDatasources"] = "containsValidDatasources"; - // DPI_ControllerMissing, having type bool - ParameterId["ControllerMissing"] = "controllerMissing"; - // DPI_CreateExtractForPublish, having type bool - ParameterId["CreateExtractForPublish"] = "createExtractForPublish"; - // DPI_CrossTab, having type bool - ParameterId["CrossTab"] = "crossTab"; - // DPI_CullLabels, having type bool - ParameterId["CullLabels"] = "cullLabels"; - // DPI_CurrentCustViewIdFlag, having type bool - ParameterId["CurrentCustViewIdFlag"] = "isCurrentCustViewIdValid"; - // DPI_DashboardEnableSnap, having type bool - ParameterId["DashboardEnableSnap"] = "dashboardEnableSnap"; - // DPI_DashboardShowGrid, having type bool - ParameterId["DashboardShowGrid"] = "dashboardShowGrid"; - // DPI_DataGridSortOrder, having type bool - ParameterId["DataGridSortOrder"] = "datagridSortOrder"; - // DPI_DeleteExtract, having type bool - ParameterId["DeleteExtract"] = "deleteExtract"; - // DPI_DeleteOnlySpecifiedSelection, having type bool - ParameterId["DeleteOnlySpecifiedSelection"] = "deleteOnlySpecifiedSelection"; - // DPI_DeleteOrphans, having type bool - ParameterId["DeleteOrphans"] = "deleteOrphans"; - // DPI_DisabledDataConnectionClassNames, having type bool - ParameterId["DisabledDataConnectionClassNames"] = "disabledDataConnectionClassNames"; - // DPI_DisablePresModelHandler, having type bool - ParameterId["DisablePresModelHandler"] = "disablePresModelHandler"; - // DPI_DisplayDate, having type bool - ParameterId["DisplayDate"] = "displayDate"; - // DPI_DisplayTime, having type bool - ParameterId["DisplayTime"] = "displayTime"; - // DPI_DoDropUIAction, having type bool - ParameterId["DoDropUIAction"] = "doDropUiAction"; - // DPI_DoMerge, having type bool - ParameterId["DoMerge"] = "doMerge"; - // DPI_DoPreDropUIAction, having type bool - ParameterId["DoPreDropUIAction"] = "doPreDropUiAction"; - // DPI_DoQuery, having type bool - ParameterId["DoQuery"] = "doQuery"; - // DPI_DragHorz, having type bool - ParameterId["DragHorz"] = "dragHorz"; - // DPI_DrillDown, having type bool - ParameterId["DrillDown"] = "drillDown"; - // DPI_DropToXAxis, having type bool - ParameterId["DropToXAxis"] = "dropToXAxis"; - // DPI_DropToYAxis, having type bool - ParameterId["DropToYAxis"] = "dropToYAxis"; - // DPI_DropUnnamedFields, having type bool - ParameterId["DropUnnamedFields"] = "dropUnnamedFields"; - // DPI_EditExisting, having type bool - ParameterId["EditExisting"] = "editExisting"; - // DPI_EditingConnection, having type bool - ParameterId["EditingConnection"] = "editingConnection"; - // DPI_EmbedCredentials, having type bool - ParameterId["EmbedCredentials"] = "embedCredentials"; - // DPI_EmbedOAuthCredential, having type bool - ParameterId["EmbedOAuthCredential"] = "embedOauthCredentials"; - // DPI_EmptyHighlightFogAll, having type bool - ParameterId["EmptyHighlightFogAll"] = "emptyHighlightFogAll"; - // DPI_EnableAlphabeticSort, having type bool - ParameterId["EnableAlphabeticSort"] = "enableAlphabeticSort"; - // DPI_EnableAutomaticDrill, having type bool - ParameterId["EnableAutomaticDrill"] = "enableAutomaticDrill"; - // DPI_EnableConfidenceBands, having type bool - ParameterId["EnableConfidenceBands"] = "enableConfidenceBands"; - // DPI_EnableDataOrderSort, having type bool - ParameterId["EnableDataOrderSort"] = "enableDataOrderSort"; - // DPI_EnableFieldSort, having type bool - ParameterId["EnableFieldSort"] = "enableFieldSort"; - // DPI_EnableInstantAnalytics, having type bool - ParameterId["EnableInstantAnalytics"] = "enableInstantAnalytics"; - // DPI_EnableLines, having type bool - ParameterId["EnableLines"] = "enableLines"; - // DPI_EnableManualSort, having type bool - ParameterId["EnableManualSort"] = "enableManualSort"; - // DPI_EnableMarks, having type bool - ParameterId["EnableMarks"] = "enableMarks"; - // DPI_EnableMultipleSelection, having type bool - ParameterId["EnableMultipleSelection"] = "enableMultipleSelection"; - // DPI_EnablePrefetching, having type bool - ParameterId["EnablePrefetching"] = "enablePrefetching"; - // DPI_EnableTableCalcDensification, having type bool - ParameterId["EnableTableCalcDensification"] = "enableTableCalcDensification"; - // DPI_EnableTooltips, having type bool - ParameterId["EnableTooltips"] = "enableTooltips"; - // DPI_EndDataSourcePresModelUpdate, having type bool - ParameterId["EndDataSourcePresModelUpdate"] = "endDataSourcePresModelUpdate"; - // DPI_EstimateNulls, having type bool - ParameterId["EstimateNulls"] = "estimateNulls"; - // DPI_Exclude, having type bool - ParameterId["Exclude"] = "exclude"; - // DPI_ExcludeColor, having type bool - ParameterId["ExcludeColor"] = "excludeColor"; - // DPI_ExcludeCubeDenorm, having type bool - ParameterId["ExcludeCubeDenorm"] = "excludeCubeDenorm"; - // DPI_ExcludeInterceptEnabled, having type bool - ParameterId["ExcludeInterceptEnabled"] = "excludeInterceptEnabled"; - // DPI_ExcludeLocalFunctions, having type bool - ParameterId["ExcludeLocalFunctions"] = "excludeLocalFunctions"; - // DPI_ExportDashboardImageFromSheet, having type bool - ParameterId["ExportDashboardImageFromSheet"] = "exportImageSheetAsDashboard"; - // DPI_ExtSvcConfigIsAuthEnabled, having type bool - ParameterId["ExtSvcConfigIsAuthEnabled"] = "extSvcConfigIsAuthEnabled"; - // DPI_ExtractFullRefresh, having type bool - ParameterId["ExtractFullRefresh"] = "extractFullRefresh"; - // DPI_ExtractNeedsRefresh, having type bool - ParameterId["ExtractNeedsRefresh"] = "extractNeedsRefresh"; - // DPI_ExtractPending, having type bool - ParameterId["ExtractPending"] = "extractPending"; - // DPI_ExtractSelected, having type bool - ParameterId["ExtractSelected"] = "extractSelected"; - // DPI_FederatableOnly, having type bool - ParameterId["FederatableOnly"] = "federatableOnly"; - // DPI_FieldSortOrder, having type bool - ParameterId["FieldSortOrder"] = "fieldSortOrder"; - // DPI_FieldSupportsContains, having type bool - ParameterId["FieldSupportsContains"] = "fieldSupportsContains"; - // DPI_FieldSupportsEndsWith, having type bool - ParameterId["FieldSupportsEndsWith"] = "fieldSupportsEndsWith"; - // DPI_FieldSupportsStartsWith, having type bool - ParameterId["FieldSupportsStartsWith"] = "fieldSupportsStartsWith"; - // DPI_FillAbove, having type bool - ParameterId["FillAbove"] = "fillAbove"; - // DPI_FillBelow, having type bool - ParameterId["FillBelow"] = "fillBelow"; - // DPI_FillWithZeroes, having type bool - ParameterId["FillWithZeroes"] = "fillZeroes"; - // DPI_FilterIsNamed, having type bool - ParameterId["FilterIsNamed"] = "filterIsNamed"; - // DPI_Focus, having type bool - ParameterId["Focus"] = "focus"; - // DPI_ForInternalUse, having type bool - ParameterId["ForInternalUse"] = "internalUse"; - // DPI_ForceBrowserRendering, having type bool - ParameterId["ForceBrowserRendering"] = "forceBrowserRendering"; - // DPI_ForceCache, having type bool - ParameterId["ForceCache"] = "forceCache"; - // DPI_ForceColorFromApp, having type bool - ParameterId["ForceColorFromApp"] = "forceColorFromApp"; - // DPI_ForceConnectionAttempt, having type bool - ParameterId["ForceConnectionAttempt"] = "forceConnectionAttempt"; - // DPI_ForceConsolidateInCommit, having type bool - ParameterId["ForceConsolidateInCommit"] = "forceConsolidateInCommit"; - // DPI_ForceExtractRefresh, having type bool - ParameterId["ForceExtractRefresh"] = "extractForceRefresh"; - // DPI_ForceInterceptZero, having type bool - ParameterId["ForceInterceptZero"] = "forceInterceptZero"; - // DPI_ForceOldConnectExperience, having type bool - ParameterId["ForceOldConnectExperience"] = "forceOldConnectExperience"; - // DPI_ForceToggleHighlightStateOn, having type bool - ParameterId["ForceToggleHighlightStateOn"] = "forceHighlightOn"; - // DPI_ForceWholeDate, having type bool - ParameterId["ForceWholeDate"] = "forceWholeDate"; - // DPI_ForecastSelected, having type bool - ParameterId["ForecastSelected"] = "forecastSelected"; - // DPI_ForecastUseAutoAgg, having type bool - ParameterId["ForecastUseAutoAgg"] = "forecastUseAutoSummarize"; - // DPI_ForJoin, having type bool - ParameterId["ForJoin"] = "forJoin"; - // DPI_FormatDataValueLocally, having type bool - ParameterId["FormatDataValueLocally"] = "formatDataValueLocally"; - // DPI_FormatIfColumn, having type bool - ParameterId["FormatIfColumn"] = "formatIfColumn"; - // DPI_FormatIfParameter, having type bool - ParameterId["FormatIfParameter"] = "formatIfParameter"; - // DPI_GeographicSearchIsDataLoaded, having type bool - ParameterId["GeographicSearchIsDataLoaded"] = "geographicSearchDataLoaded"; - // DPI_GeographicSearchLoadDataAsync, having type bool - ParameterId["GeographicSearchLoadDataAsync"] = "geographicSearchLoadDataAsync"; - // DPI_GroupByAll, having type bool - ParameterId["GroupByAll"] = "groupByAll"; - // DPI_HasAlias, having type bool - ParameterId["HasAlias"] = "hasAlias"; - // DPI_HasAllMember, having type bool - ParameterId["HasAllMember"] = "hasAllMember"; - // DPI_HasApply, having type bool - ParameterId["HasApply"] = "hasApply"; - // DPI_HasBackgroundImage, having type bool - ParameterId["HasBackgroundImage"] = "hasBackgroundImage"; - // DPI_HasBeenDismissed, having type bool - ParameterId["HasBeenDismissed"] = "hasBeenDismissed"; - // DPI_HasCaption, having type bool - ParameterId["HasCaption"] = "hasCaption"; - // DPI_HasCondition, having type bool - ParameterId["HasCondition"] = "hasCondition"; - // DPI_HasConnectPermissions, having type bool - ParameterId["HasConnectPermissions"] = "hasConnectPermissions"; - // DPI_HasDashboard, having type bool - ParameterId["HasDashboard"] = "hasDashboard"; - // DPI_HasDownloadPermissions, having type bool - ParameterId["HasDownloadPermissions"] = "hasDownloadPermissions"; - // DPI_HasDrill, having type bool - ParameterId["HasDrill"] = "hasDrill"; - // DPI_HasExclude, having type bool - ParameterId["HasExclude"] = "hasExclude"; - // DPI_HasFill, having type bool - ParameterId["HasFill"] = "hasFill"; - // DPI_HasLabels, having type bool - ParameterId["HasLabels"] = "hasLabels"; - // DPI_HasLimit, having type bool - ParameterId["HasLimit"] = "hasLimit"; - // DPI_HasLine, having type bool - ParameterId["HasLine"] = "hasLine"; - // DPI_HasModifiedAxes, having type bool - ParameterId["HasModifiedAxes"] = "hasModifiedAxes"; - // DPI_HasNonRootCalculations, having type bool - ParameterId["HasNonRootCalculations"] = "hasNonRootCalculations"; - // DPI_HasPattern, having type bool - ParameterId["HasPattern"] = "hasPattern"; - // DPI_HasPublishGuidanceResults, having type bool - ParameterId["HasPublishGuidanceResults"] = "hasPublishGuidanceResults"; - // DPI_HasSelection, having type bool - ParameterId["HasSelection"] = "hasSelection"; - // DPI_HasServerCredentials, having type bool - ParameterId["HasServerCredentials"] = "hasServerCredentials"; - // DPI_HasSpace, having type bool - ParameterId["HasSpace"] = "hasSpace"; - // DPI_HasStoredProcedure, having type bool - ParameterId["HasStoredProcedure"] = "hasStoredProcedure"; - // DPI_HasStringCalculatedMeasures, having type bool - ParameterId["HasStringCalculatedMeasures"] = "hasStringCalculatedMeasures"; - // DPI_HasTableCalcData, having type bool - ParameterId["HasTableCalcData"] = "hasTableCalcData"; - // DPI_HasTitle, having type bool - ParameterId["HasTitle"] = "hasTitle"; - // DPI_HasUserSpecificContent, having type bool - ParameterId["HasUserSpecificContent"] = "hasUserSpecificContent"; - // DPI_HasUnjoinedTable, having type bool - ParameterId["HasUnjoinedTable"] = "hasUnjoinedTable"; - // DPI_HasVarArgs, having type bool - ParameterId["HasVarArgs"] = "hasVarArgs"; - // DPI_HasVisitedWDCPage, having type bool - ParameterId["HasVisitedWDCPage"] = "hasVisitedWdcPage"; - // DPI_IgnoreAliases, having type bool - ParameterId["IgnoreAliases"] = "ignoreAliases"; - // DPI_IgnoreDomain, having type bool - ParameterId["IgnoreDomain"] = "ignoreDomain"; - // DPI_IgnoreSelection, having type bool - ParameterId["IgnoreSelection"] = "ignoreSelection"; - // DPI_IncludeAllColumns, having type bool - ParameterId["IncludeAllColumns"] = "includeAllColumns"; - // DPI_IncludeContext, having type bool - ParameterId["IncludeContext"] = "includeContext"; - // DPI_IncludeDashboardPresModels, having type bool - ParameterId["IncludeDashboardPresModels"] = "includeDashboardPresModels"; - // DPI_IncludeItemSet, having type bool - ParameterId["IncludeItemSet"] = "includeItemSet"; - // DPI_IncludeLocalFiles, having type bool - ParameterId["IncludeLocalFiles"] = "includeLocalFiles"; - // DPI_IncludeOtherSelected, having type bool - ParameterId["IncludeOtherSelected"] = "includeOtherSelected"; - // DPI_IncludeNulls, having type bool - ParameterId["IncludeNulls"] = "includeNulls"; - // DPI_IncludeParent, having type bool - ParameterId["IncludeParent"] = "includeParent"; - // DPI_IncludeSelections, having type bool - ParameterId["IncludeSelections"] = "includeSelections"; - // DPI_IncludeSiblings, having type bool - ParameterId["IncludeSiblings"] = "includeSiblings"; - // DPI_IncludeStories, having type bool - ParameterId["IncludeStories"] = "includeStories"; - // DPI_IncludeSubfolders, having type bool - ParameterId["IncludeSubfolders"] = "includeSubfolders"; - // DPI_IncludeVolatileProps, having type bool - ParameterId["IncludeVolatileProps"] = "includeVolatileProps"; - // DPI_IncludesTag, having type bool - ParameterId["IncludesTag"] = "includesTag"; - // DPI_InsertAfter, having type bool - ParameterId["InsertAfter"] = "insertAfter"; - // DPI_InsertAtEnd, having type bool - ParameterId["InsertAtEnd"] = "insertAtEnd"; - // DPI_InstantAnalyticsAllowed, having type bool - ParameterId["InstantAnalyticsAllowed"] = "instantAnalyticsAllowed"; - // DPI_IntegerCoordinates, having type bool - ParameterId["IntegerCoordinates"] = "intCoords"; - // DPI_InvalidatedLayout, having type bool - ParameterId["InvalidatedLayout"] = "invalidatedLayout"; - // DPI_IsActive, having type bool - ParameterId["IsActive"] = "isActive"; - // DPI_IsAddToFilter, having type bool - ParameterId["IsAddToFilter"] = "isAddToFilterButtonChecked"; - // DPI_IsAllButtonVisible, having type bool - ParameterId["IsAllButtonVisible"] = "isAllButtonVisible"; - // DPI_IsAllowedInCalcs, having type bool - ParameterId["IsAllowedInCalcs"] = "isAllowedInCalcs"; - // DPI_IsAppMapSource, having type bool - ParameterId["IsAppMapSource"] = "isAppMapSource"; - // DPI_IsArchive, having type bool - ParameterId["IsArchive"] = "isArchive"; - // DPI_IsAuthoringMode, having type bool - ParameterId["IsAuthoringMode"] = "isAuthoringMode"; - // DPI_IsAuto, having type bool - ParameterId["IsAuto"] = "isAuto"; - // DPI_IsAutoClear, having type bool - ParameterId["IsAutoClear"] = "isAutoClear"; - // DPI_IsAutoColumn, having type bool - ParameterId["IsAutoColumn"] = "isAutoColumn"; - // DPI_IsAutoHidden, having type bool - ParameterId["IsAutoHidden"] = "isAutoHidden"; - // DPI_IsAutoSelect, having type bool - ParameterId["IsAutoSelect"] = "isAutoSelect"; - // DPI_IsBold, having type bool - ParameterId["IsBold"] = "isBold"; - // DPI_IsBorderVisible, having type bool - ParameterId["IsBorderVisible"] = "isBorderVisible"; - // DPI_IsBoxplot, having type bool - ParameterId["IsBoxplot"] = "isBoxplot"; - // DPI_IsCapable, having type bool - ParameterId["IsCapable"] = "isCapable"; - // DPI_IsCaptured, having type bool - ParameterId["IsCaptured"] = "isCaptured"; - // DPI_IsCentered, having type bool - ParameterId["IsCentered"] = "isCentered"; - // DPI_IsChecked, having type bool - ParameterId["IsChecked"] = "isChecked"; - // DPI_IsColorDiverging, having type bool - ParameterId["IsColorDiverging"] = "isColorDiverging"; - // DPI_IsColorStepped, having type bool - ParameterId["IsColorStepped"] = "isColorStepped"; - // DPI_IsCombinedField, having type bool - ParameterId["IsCombinedField"] = "isCombinedField"; - // DPI_IsConnected, having type bool - ParameterId["IsConnected"] = "isConnected"; - // DPI_IsContextMenuAllowed, having type bool - ParameterId["IsContextMenuAllowed"] = "isContextMenuAllowed"; - // DPI_IsContinuous, having type bool - ParameterId["IsContinuous"] = "isContinuous"; - // DPI_IsCopy, having type bool - ParameterId["IsCopy"] = "isCopy"; - // DPI_IsCustomPalette, having type bool - ParameterId["IsCustomPalette"] = "isCustomPalette"; - // DPI_IsCustomSQL, having type bool - ParameterId["IsCustomSQL"] = "isCustomSql"; - // DPI_IsCustomValueEnabled, having type bool - ParameterId["IsCustomValueEnabled"] = "isCustomValueEnabled"; - // DPI_IsDataAlertConditionMet, having type bool - ParameterId["IsDataAlertConditionMet"] = "isDataAlertConditionMet"; - // DPI_IsDataAlertDialogVisible, having type bool - ParameterId["IsDataAlertDialogVisible"] = "isDataAlertDialogVisible"; - // DPI_IsDataBin, having type bool - ParameterId["IsDataBin"] = "isDataBin"; - // DPI_IsDataGridVisible, having type bool - ParameterId["IsDataGridVisible"] = "isDataGridVisible"; - // DPI_IsDatabase, having type bool - ParameterId["IsDatabase"] = "isDatabase"; - // DPI_IsDatabaseFilterInclusive, having type bool - ParameterId["IsDatabaseFilterInclusive"] = "isDbFilterInclusive"; - // DPI_IsWebDataTabViewSupported, having type bool - ParameterId["IsWebDataTabViewSupported"] = "isWebDataTabViewSupported"; - // DPI_IsPublishedDatasourceReplacement, having type bool - ParameterId["IsPublishedDatasourceReplacement"] = "isPublishedDatasourceReplacement"; - // DPI_IsDeadDrop, having type bool - ParameterId["IsDeadDrop"] = "isDeadDrop"; - // DPI_IsDefault, having type bool - ParameterId["IsDefault"] = "isDefault"; - // DPI_IsDeleteCalcConfirm, having type bool - ParameterId["IsDeleteCalcConfirm"] = "isDeleteCalcConfirmed"; - // DPI_IsDimension, having type bool - ParameterId["IsDimension"] = "isDimension"; - // DPI_IsDropdownEnabled, having type bool - ParameterId["IsDropdownEnabled"] = "isDropdownEnabled"; - // DPI_IsEditing, having type bool - ParameterId["IsEditing"] = "isEditing"; - // DPI_IsEmbedded, having type bool - ParameterId["IsEmbedded"] = "isEmbedded"; - // DPI_IsEmpty, having type bool - ParameterId["IsEmpty"] = "isEmpty"; - // DPI_IsAddInEnabled, having type bool - ParameterId["IsAddInEnabled"] = "isAddInEnabled"; - // DPI_AddInJSDebuggingEnabled, having type bool - ParameterId["AddInJSDebuggingEnabled"] = "addInJsDebugginEnabled"; - // DPI_AddInPauseBeforeLoading, having type bool - ParameterId["AddInPauseBeforeLoading"] = "addInPauseBeforeLoading"; - // DPI_IsDSHierarchical, having type bool - ParameterId["IsDSHierarchical"] = "isDsHierarchical"; - // DPI_IsEndPtMoveable, having type bool - ParameterId["IsEndPtMoveable"] = "isEndpointMovable"; - // DPI_IsExclude, having type bool - ParameterId["IsExclude"] = "isExcludeButtonChecked"; - // DPI_IsExistingConnection, having type bool - ParameterId["IsExistingConnection"] = "isExistingConnection"; - // DPI_IsExistingObject, having type bool - ParameterId["IsExistingObject"] = "isExistingObject"; - // DPI_IsExtract, having type bool - ParameterId["IsExtract"] = "isExtract"; - // DPI_IsExtractOnlyConnection, having type bool - ParameterId["IsExtractOnlyConnection"] = "isExtractOnlyConnection"; - // DPI_IsExtractSelectionVisible, having type bool - ParameterId["IsExtractSelectionVisible"] = "isExtractSelectionVisible"; - // DPI_IsFederatable, having type bool - ParameterId["IsFederatable"] = "isFederatable"; - // DPI_IsField, having type bool - ParameterId["IsField"] = "isField"; - // DPI_IsFieldParameter, having type bool - ParameterId["IsFieldParameter"] = "isFieldParameter"; - // DPI_IsFilterActionField, having type bool - ParameterId["IsFilterActionField"] = "isFilterActionField"; - // DPI_IsFirstClassConnector, having type bool - ParameterId["IsFirstClassConnector"] = "isFirstClassConnector"; - // DPI_IsFloating, having type bool - ParameterId["IsFloating"] = "isFloating"; - // DPI_IsFolded, having type bool - ParameterId["IsFolded"] = "isFolded"; - // DPI_IsForInput, having type bool - ParameterId["IsForInput"] = "isForInput"; - // DPI_IsForecastEnabled, having type bool - ParameterId["IsForecastEnabled"] = "isForecastEnabled"; - // DPI_IsForceDirty, having type bool - ParameterId["IsForceDirty"] = "isForceDirty"; - // DPI_IsFullScan, having type bool - ParameterId["IsFullScan"] = "isFullScan"; - // DPI_IsFullStyling, having type bool - ParameterId["IsFullStyling"] = "isFullStyling"; - // DPI_IsGenerated, having type bool - ParameterId["IsGenerated"] = "isGenerated"; - // DPI_IsGlobalNames, having type bool - ParameterId["IsGlobalNames"] = "isGlobalNames"; - // DPI_IsGrayed, having type bool - ParameterId["IsGrayed"] = "isGrayed"; - // DPI_IsGrayscale, having type bool - ParameterId["IsGrayscale"] = "isGrayscale"; - // DPI_IsGroup, having type bool - ParameterId["IsGroup"] = "isGroup"; - // DPI_IsHideableField, having type bool - ParameterId["IsHideableField"] = "isHideableField"; - // DPI_IsHierarchy, having type bool - ParameterId["IsHierarchy"] = "isHierarchy"; - // DPI_IsHierarchySingleSelect, having type bool - ParameterId["IsHierarchySingleSelect"] = "isHierarchySingleSelect"; - // DPI_IsHighlightAllowed, having type bool - ParameterId["IsHighlightAllowed"] = "isHighlightAllowed"; - // DPI_IsHighlightEnabled, having type bool - ParameterId["IsHighlightEnabled"] = "isHighlightEnabled"; - // DPI_IsHighlightField, having type bool - ParameterId["IsHighlightField"] = "isHighlightField"; - // DPI_IsHorizontal, having type bool - ParameterId["IsHorizontal"] = "isHorizontal"; - // DPI_IsImageEnabled, having type bool - ParameterId["IsImageEnabled"] = "isImageEnabled"; - // DPI_IsInDefault, having type bool - ParameterId["IsInDefault"] = "isInDefault"; - // DPI_IsInPrimaryDataSource, having type bool - ParameterId["IsInPrimaryDataSource"] = "isInPrimaryDataSource"; - // DPI_IsInner, having type bool - ParameterId["IsInner"] = "isInner"; - // DPI_IsInitial, having type bool - ParameterId["IsInitial"] = "isInitial"; - // DPI_IsInstance, having type bool - ParameterId["IsInstance"] = "isInstance"; - // DPI_IsInvalid, having type bool - ParameterId["IsInvalid"] = "isInvalid"; - // DPI_IsInvalidCalcOnDG, having type bool - ParameterId["IsInvalidCalcOnDG"] = "isInvalidDgCalc"; - // DPI_IsItalics, having type bool - ParameterId["IsItalics"] = "isItalics"; - // DPI_IsJoinAreaVisible, having type bool - ParameterId["IsJoinAreaVisible"] = "isJoinAreaVisible"; - // DPI_IsLabels, having type bool - ParameterId["IsLabels"] = "isLabels"; - // DPI_IsLayered, having type bool - ParameterId["IsLayered"] = "isLayered"; - // DPI_IsLeft, having type bool - ParameterId["IsLeft"] = "isLeft"; - // DPI_IsLegacy, having type bool - ParameterId["IsLegacy"] = "isLegacy"; - // DPI_IsLevel, having type bool - ParameterId["IsLevel"] = "isLevel"; - // DPI_IsLevelOrLevelIdentity, having type bool - ParameterId["IsLevelOrLevelIdentity"] = "isLevelOrLevelIdentity"; - // DPI_IsLicensed, having type bool - ParameterId["IsLicensed"] = "isLicensed"; - // DPI_IsLink, having type bool - ParameterId["IsLink"] = "isLink"; - // DPI_IsMap, having type bool - ParameterId["IsMap"] = "isMap"; - // DPI_IsMeasure, having type bool - ParameterId["IsMeasure"] = "isMeasure"; - // DPI_IsMerge, having type bool - ParameterId["IsMerge"] = "isMerge"; - // DPI_IsMessageSourceRemote, having type bool - ParameterId["IsMessageSourceRemote"] = "isMessageSourceRemote"; - // DPI_IsMissingFromExtract, having type bool - ParameterId["IsMissingFromExtract"] = "isMissingFromExtract"; - // DPI_IsMobile, having type bool - ParameterId["IsMobile"] = "isMobile"; - // DPI_IsModified, having type bool - ParameterId["IsModified"] = "isModified"; - // DPI_IsNew, having type bool - ParameterId["IsNew"] = "isNew"; - // DPI_IsNewCloudFileDataSource, having type bool - ParameterId["IsNewCloudFileDataSource"] = "isNewCloudFileDataSource"; - // DPI_IsNone, having type bool - ParameterId["IsNone"] = "isNone"; - // DPI_IsOfflineMode, having type bool - ParameterId["IsOfflineMode"] = "isOfflineMode"; - // DPI_IsPreAqlBin, having type bool - ParameterId["IsPreAqlBin"] = "isPreAqlBin"; - // DPI_IsOMeasuresAndRelational, having type bool - ParameterId["IsOMeasuresAndRelational"] = "isOmeasuresAndRelational"; - // DPI_IsOpaque, having type bool - ParameterId["IsOpaque"] = "isOpaque"; - // DPI_IsOrphaned, having type bool - ParameterId["IsOrphaned"] = "isOrphaned"; - // DPI_IsOverlay, having type bool - ParameterId["IsOverlay"] = "isOverlay"; - // DPI_IsOverride, having type bool - ParameterId["IsOverride"] = "isOverride"; - // DPI_IsPageLoading, having type bool - ParameterId["IsPageLoading"] = "isPageLoading"; - // DPI_IsParameterSelected, having type bool - ParameterId["IsParameterSelected"] = "isParameterSelected"; - // DPI_IsParameterSelectedOnFrom, having type bool - ParameterId["IsParameterSelectedOnFrom"] = "isParameterSelectedOnFrom"; - // DPI_IsParameterSelectedOnTo, having type bool - ParameterId["IsParameterSelectedOnTo"] = "isParameterSelectedOnTo"; - // DPI_IsPatternBased, having type bool - ParameterId["IsPatternBased"] = "isPatternBased"; - // DPI_IsPinned, having type bool - ParameterId["IsPinned"] = "isPinned"; - // DPI_IsPresentationMode, having type bool - ParameterId["IsPresentationMode"] = "isPresentationModeDoc"; - // DPI_IsPublishAllowed, having type bool - ParameterId["IsPublishAllowed"] = "isPublishAllowed"; - // DPI_IsMustDowngradeToPublish, having type bool - ParameterId["IsMustDowngradeToPublish"] = "isDowngradeToPublishRequired"; - // DPI_IsPublished, having type bool - ParameterId["IsPublished"] = "isPublished"; - // DPI_IsQuickTableCalc, having type bool - ParameterId["IsQuickTableCalc"] = "isQuickTableCalc"; - // DPI_IsRadioOn, having type bool - ParameterId["IsRadioOn"] = "isRadioOn"; - // DPI_IsReconnect, having type bool - ParameterId["IsReconnect"] = "isReconnect"; - // DPI_IsRecursive, having type bool - ParameterId["IsRecursive"] = "isRecursive"; - // DPI_IsReferenced, having type bool - ParameterId["IsReferenced"] = "isReferenced"; - // DPI_IsRemovalAllowed, having type bool - ParameterId["IsRemovalAllowed"] = "isRowRemovalAllowed"; - // DPI_IsRenderCapable, having type bool - ParameterId["IsRenderCapable"] = "isRenderCapable"; - // DPI_IsRequired, having type bool - ParameterId["IsRequired"] = "isRequired"; - // DPI_IsReversed, having type bool - ParameterId["IsReversed"] = "isReversed"; - // DPI_IsRightDrag, having type bool - ParameterId["IsRightDrag"] = "isRightDrag"; - // DPI_IsRowLabels, having type bool - ParameterId["IsRowLabels"] = "isRowLabels"; - // DPI_IsPercentage, having type bool - ParameterId["IsPercentage"] = "isPercentage"; - // DPI_IsSalesforceInConnection, having type bool - ParameterId["IsSalesforceInConnection"] = "isSalesforceInConnection"; - // DPI_IsScaled, having type bool - ParameterId["IsScaled"] = "isScaled"; - // DPI_IsSelected, having type bool - ParameterId["IsSelected"] = "isSelected"; - // DPI_IsSelectedItem, having type bool - ParameterId["IsSelectedItem"] = "isSelectedItem"; - // DPI_IsSelectionDisabled, having type bool - ParameterId["IsSelectionDisabled"] = "isSelectionDisabled"; - // DPI_IsShiftDrag, having type bool - ParameterId["IsShiftDrag"] = "isShiftDrag"; - // DPI_IsSingleLabel, having type bool - ParameterId["IsSingleLabel"] = "isSingleLabel"; - // DPI_IsSingleSelect, having type bool - ParameterId["IsSingleSelect"] = "isSingleSelect"; - // DPI_IsSingleSelectMode, having type bool - ParameterId["IsSingleSelectMode"] = "isSingleSelectMode"; - // DPI_IsSingleSelection, having type bool - ParameterId["IsSingleSelection"] = "isSingleSelection"; - // DPI_IsSorted, having type bool - ParameterId["IsSorted"] = "isSorted"; - // DPI_IsSortPill, having type bool - ParameterId["IsSortPill"] = "isSortPill"; - // DPI_IsSpecial, having type bool - ParameterId["IsSpecial"] = "isSpecial"; - // DPI_IsSplashScreen, having type bool - ParameterId["IsSplashScreen"] = "isSplashScreen"; - // DPI_IsStoryEmpty, having type bool - ParameterId["IsStoryEmpty"] = "isStoryEmpty"; - // DPI_IsStrikeThrough, having type bool - ParameterId["IsStrikeThrough"] = "isStrikeThrough"; - // DPI_IsTableCalc, having type bool - ParameterId["IsTableCalc"] = "isTableCalc"; - // DPI_IsTableCleaningSubtable, having type bool - ParameterId["IsTableCleaningSubtable"] = "isTableCleaningSubtable"; - // DPI_IsTableFilterInclusive, having type bool - ParameterId["IsTableFilterInclusive"] = "isTableFilterInclusive"; - // DPI_IsTableRanked, having type bool - ParameterId["IsTableRanked"] = "isTableRanked"; - // DPI_IsTemporary, having type bool - ParameterId["IsTemporary"] = "isTemporary"; - // DPI_IsTitleVisible, having type bool - ParameterId["IsTitleVisible"] = "isTitleVisible"; - // DPI_IsTopLevel, having type bool - ParameterId["IsTopLevel"] = "isTopLevel"; - // DPI_IsTwoValued, having type bool - ParameterId["IsTwoValued"] = "isTwoValued"; - // DPI_IsTypeInFinished, having type bool - ParameterId["IsTypeInFinished"] = "isTypeinFinished"; - // DPI_IsTypeInPill, having type bool - ParameterId["IsTypeInPill"] = "isTypeInPill"; - // DPI_IsURLActionField, having type bool - ParameterId["IsURLActionField"] = "isUrlActionField"; - // DPI_IsUnderlined, having type bool - ParameterId["IsUnderlined"] = "isUnderlined"; - // DPI_IsUnion, having type bool - ParameterId["IsUnion"] = "isUnion"; - // DPI_IsUnionReplacement, having type bool - ParameterId["IsUnionReplacement"] = "isUnionReplacement"; - // DPI_IsUnnamedCalc, having type bool - ParameterId["IsUnnamedCalc"] = "isUnnamed"; - // DPI_IsUserDefinedAttribute, having type bool - ParameterId["IsUserDefinedAttribute"] = "isUserDefinedAttribute"; - // DPI_IsUserEditable, having type bool - ParameterId["IsUserEditable"] = "isUserEditable"; - // DPI_IsUserPrompted, having type bool - ParameterId["IsUserPrompted"] = "isUserPrompted"; - // DPI_IsUserResponded, having type bool - ParameterId["IsUserResponded"] = "isUserResponded"; - // DPI_IsValid, having type bool - ParameterId["IsValid"] = "isValid"; - // DPI_IsValidWDCPage, having type bool - ParameterId["IsValidWDCPage"] = "isValidWdcPage"; - // DPI_IsVaryingAttributeDimension, having type bool - ParameterId["IsVaryingAttributeDimension"] = "isVaryingAttributeDimension"; - // DPI_IsVertical, having type bool - ParameterId["IsVertical"] = "isVertical"; - // DPI_IsViewModified, having type bool - ParameterId["IsViewModified"] = "isViewModified"; - // DPI_IsVisuallyCategorical, having type bool - ParameterId["IsVisuallyCategorical"] = "isVisuallyCat"; - // DPI_IsVizInTooltip, having type bool - ParameterId["IsVizInTooltip"] = "isVizInTooltip"; - // DPI_IsWeb, having type bool - ParameterId["IsWeb"] = "isWeb"; - // DPI_IsWhite, having type bool - ParameterId["IsWhite"] = "isWhite"; - // DPI_IsWorldNew, having type bool - ParameterId["IsWorldNew"] = "isWorldNew"; - // DPI_IsXAxis, having type bool - ParameterId["IsXAxis"] = "isXAxis"; - // DPI_KeepAspectRatio, having type bool - ParameterId["KeepAspectRatio"] = "keepAspectRatio"; - // DPI_LabelLineEndFirst, having type bool - ParameterId["LabelLineEndFirst"] = "labelLineEndFirst"; - // DPI_LabelLineEndLast, having type bool - ParameterId["LabelLineEndLast"] = "labelLineEndLast"; - // DPI_LabelMarkMax, having type bool - ParameterId["LabelMarkMax"] = "labelMarkMax"; - // DPI_LabelMarkMin, having type bool - ParameterId["LabelMarkMin"] = "labelMarkMin"; - // DPI_LockAspectRatio, having type bool - ParameterId["LockAspectRatio"] = "lockAspectRatio"; - // DPI_LoopPlayback, having type bool - ParameterId["LoopPlayback"] = "loopPlayback"; - // DPI_LossyImages, having type bool - ParameterId["LossyImages"] = "lossyImages"; - // DPI_MakeGlobal, having type bool - ParameterId["MakeGlobal"] = "isMakeGlobal"; - // DPI_ManualSortOnly, having type bool - ParameterId["ManualSortOnly"] = "manualSortOnly"; - // DPI_MapBoxDefaultStyleSelected, having type bool - ParameterId["MapBoxDefaultStyleSelected"] = "mapboxDefaultStyleSelected"; - // DPI_MapBoxURLParseSuccessful, having type bool - ParameterId["MapBoxURLParseSuccessful"] = "mapboxUrlParseSuccessful"; - // DPI_MapClientRequestsMapTiles, having type bool - ParameterId["MapClientRequestsMapTiles"] = "clientRequestsMapTiles"; - // DPI_MapHasValidLayer, having type bool - ParameterId["MapHasValidLayer"] = "mapHasValidLayer"; - // DPI_MapShowAttribution, having type bool - ParameterId["MapShowAttribution"] = "showAttribution"; - // DPI_MarkLabelsVisibilityChanged, having type bool - ParameterId["MarkLabelsVisibilityChanged"] = "markLabelsVisibilityChanged"; - // DPI_MembersLoaded, having type bool - ParameterId["MembersLoaded"] = "membersLoaded"; - // DPI_MinimizeNames, having type bool - ParameterId["MinimizeNames"] = "useMinNames"; - // DPI_MoveRefereceLineUp, having type bool - ParameterId["MoveRefereceLineUp"] = "moveReferenceLineUp"; - // DPI_MultiDataSources, having type bool - ParameterId["MultiDataSources"] = "multiDataSources"; - // DPI_NavArrowsVisible, having type bool - ParameterId["NavArrowsVisible"] = "navArrowsVisible"; - // DPI_OEMHasSplashScreen, having type bool - ParameterId["OEMHasSplashScreen"] = "oemHasSplashScreen"; - // DPI_OneWayBrushing, having type bool - ParameterId["OneWayBrushing"] = "oneWayBrushing"; - // DPI_OnlyAggregations, having type bool - ParameterId["OnlyAggregations"] = "onlyAggregations"; - // DPI_OverrideAllowed, having type bool - ParameterId["OverrideAllowed"] = "overrideAllowed"; - // DPI_OverrideStackDumper, having type bool - ParameterId["OverrideStackDumper"] = "overrideStackDumper"; - // DPI_PageAutoColorLines, having type bool - ParameterId["PageAutoColorLines"] = "autoColorLines"; - // DPI_PageAutoColorMarks, having type bool - ParameterId["PageAutoColorMarks"] = "autoColorMarks"; - // DPI_PageHistoryFade, having type bool - ParameterId["PageHistoryFade"] = "historyFade"; - // DPI_PercentageBands, having type bool - ParameterId["PercentageBands"] = "percentageBands"; - // DPI_PublishWithRemoteQueryAgent, having type bool - ParameterId["PublishWithRemoteQueryAgent"] = "publishWithRemoteQueryAgent"; - // DPI_PreviousSheet, having type bool - ParameterId["PreviousSheet"] = "previousSheet"; - // DPI_PromptDeleteSheetsWithVizInTooltip, having type bool - ParameterId["PromptDeleteSheetsWithVizInTooltip"] = "promptDeleteSheetsWithVizInTooltip"; - // DPI_QuantilesAllowed, having type bool - ParameterId["QuantilesAllowed"] = "quantilesAllowed"; - // DPI_RadialDistanceHitTest, having type bool - ParameterId["RadialDistanceHitTest"] = "radialDistanceHitTest"; - // DPI_RefLineSelected, having type bool - ParameterId["RefLineSelected"] = "refLineSelected"; - // DPI_RemovedSheets, having type bool - ParameterId["RemovedSheets"] = "removedSheets"; - // DPI_RenderImagesAsUrls, having type bool - ParameterId["RenderImagesAsUrls"] = "imagesAsUrls"; - // DPI_RenderOnTop, having type bool - ParameterId["RenderOnTop"] = "renderOnTop"; - // DPI_RepeatHeadersLegends, having type bool - ParameterId["RepeatHeadersLegends"] = "repeatHeadersLegends"; - // DPI_ReplaceActiveConfig, having type bool - ParameterId["ReplaceActiveConfig"] = "replaceActiveConfig"; - // DPI_ReplaceDatasourceAfterPublish, having type bool - ParameterId["ReplaceDatasourceAfterPublish"] = "replaceDatasourceAfterPublish"; - // DPI_ReplaceDatasourceFailed, having type bool - ParameterId["ReplaceDatasourceFailed"] = "replaceDatasourceFailed"; - // DPI_ReplaceTde, having type bool - ParameterId["ReplaceTde"] = "replaceTde"; - // DPI_RequireSelection, having type bool - ParameterId["RequireSelection"] = "requireSelection"; - // DPI_RequiresDBVariables, having type bool - ParameterId["RequiresDBVariables"] = "requiresDbVariables"; - // DPI_RequiresFieldList, having type bool - ParameterId["RequiresFieldList"] = "requiresFieldList"; - // DPI_RestartEveryFieldIsInvalid, having type bool - ParameterId["RestartEveryFieldIsInvalid"] = "restartEveryFieldIsInvalid"; - // DPI_RightJustify, having type bool - ParameterId["RightJustify"] = "rightJustify"; - // DPI_SaveEnabled, having type bool - ParameterId["SaveEnabled"] = "saveEnabled"; - // DPI_SavePasswordAllowed, having type bool - ParameterId["SavePasswordAllowed"] = "savePasswordAllowed"; - // DPI_ScopeIsolation, having type bool - ParameterId["ScopeIsolation"] = "scopeIsolation"; - // DPI_SelectionRequired, having type bool - ParameterId["SelectionRequired"] = "selectionRequired"; - // DPI_SendNotifications, having type bool - ParameterId["SendNotifications"] = "sendNotifications"; - // DPI_SetActive, having type bool - ParameterId["SetActive"] = "setActive"; - // DPI_SetDefaultSort, having type bool - ParameterId["SetDefaultSort"] = "setDefault"; - // DPI_SheetIsDashboard, having type bool - ParameterId["SheetIsDashboard"] = "isDashboard"; - // DPI_SheetIsStoryboard, having type bool - ParameterId["SheetIsStoryboard"] = "isStory"; - // DPI_ShouldAlwaysDisplayAlias, having type bool - ParameterId["ShouldAlwaysDisplayAlias"] = "shouldAlwaysDisplayAlias"; - // DPI_ShouldAutoCapture, having type bool - ParameterId["ShouldAutoCapture"] = "shouldAutoCapture"; - // DPI_ShouldAutoRevert, having type bool - ParameterId["ShouldAutoRevert"] = "shouldAutoRevert"; - // DPI_ShouldChangeUIMode, having type bool - ParameterId["ShouldChangeUIMode"] = "shouldChangeUiMode"; - // DPI_ShouldDisplay, having type bool - ParameterId["ShouldDisplay"] = "shouldDisplay"; - // DPI_ShouldDrill, having type bool - ParameterId["ShouldDrill"] = "shouldDrill"; - // DPI_ShouldForceConnectionAttempt, having type bool - ParameterId["ShouldForceConnectionAttempt"] = "shouldForceConnectionAttempt"; - // DPI_ShouldRefreshDS, having type bool - ParameterId["ShouldRefreshDS"] = "shouldRefreshDs"; - // DPI_ShouldScaleMarksInAxisUnits, having type bool - ParameterId["ShouldScaleMarksInAxisUnits"] = "shouldScaleMarksInAxisUnits"; - // DPI_ShouldSeedCredentials, having type bool - ParameterId["ShouldSeedCredentials"] = "shouldSeedCredentials"; - // DPI_ShouldShowDistance, having type bool - ParameterId["ShouldShowDistance"] = "shouldShowDistance"; - // DPI_ShouldShowHiddenField, having type bool - ParameterId["ShouldShowHiddenField"] = "shouldShowHiddenField"; - // DPI_ShouldShowMapScale, having type bool - ParameterId["ShouldShowMapScale"] = "shouldShowMapScale"; - // DPI_ShouldURLEscape, having type bool - ParameterId["ShouldURLEscape"] = "shouldUrlEscape"; - // DPI_ShouldUpdateDomainInfo, having type bool - ParameterId["ShouldUpdateDomainInfo"] = "shouldUpdateDomInfo"; - // DPI_ShowAddToFilter, having type bool - ParameterId["ShowAddToFilter"] = "showAddToFilterButton"; - // DPI_ShowAliases, having type bool - ParameterId["ShowAliases"] = "showAliases"; - // DPI_ShowAllPages, having type bool - ParameterId["ShowAllPages"] = "showAllPages"; - // DPI_ShowApply, having type bool - ParameterId["ShowApply"] = "showApplyButton"; - // DPI_ShowApplyAndCancelButtons, having type bool - ParameterId["ShowApplyAndCancelButtons"] = "showApplyAndCancelButtons"; - // DPI_ShowAuthenticationOptions, having type bool - ParameterId["ShowAuthenticationOptions"] = "showAuthenticationOptions"; - // DPI_ShowAuthenticationSetting, having type bool - ParameterId["ShowAuthenticationSetting"] = "showAuthenticationSetting"; - // DPI_ShowAuto, having type bool - ParameterId["ShowAuto"] = "showAuto"; - // DPI_ShowBold, having type bool - ParameterId["ShowBold"] = "showBoldOption"; - // DPI_ShowButtons, having type bool - ParameterId["ShowButtons"] = "showButtons"; - // DPI_ShowCaption, having type bool - ParameterId["ShowCaption"] = "showCaption"; - // DPI_ShowColorLegend, having type bool - ParameterId["ShowColorLegend"] = "showColorLegend"; - // DPI_ShowDataGridInlineRename, having type bool - ParameterId["ShowDataGridInlineRename"] = "showDataGridInlineRename"; - // DPI_ShowDetailMessages, having type bool - ParameterId["ShowDetailMessages"] = "showDetailMessages"; - // DPI_ShowDate, having type bool - ParameterId["ShowDate"] = "showDate"; - // DPI_ShowDragLabel, having type bool - ParameterId["ShowDragLabel"] = "showDragLabel"; - // DPI_ShowDropMeasures, having type bool - ParameterId["ShowDropMeasures"] = "showDropMeasures"; - // DPI_ShowEmbedAll, having type bool - ParameterId["ShowEmbedAll"] = "showEmbedAll"; - // DPI_ShowEntireImage, having type bool - ParameterId["ShowEntireImage"] = "showEntireImage"; - // DPI_ShowExclude, having type bool - ParameterId["ShowExclude"] = "showExcludeButton"; - // DPI_ShowFloatingZoomToolbar, having type bool - ParameterId["ShowFloatingZoomToolbar"] = "showFloatingZoomToolbar"; - // DPI_ShowFormatter, having type bool - ParameterId["ShowFormatter"] = "showFormatter"; - // DPI_ShowFullSchedules, having type bool - ParameterId["ShowFullSchedules"] = "showFullSchedules"; - // DPI_ShowGeographicSearch, having type bool - ParameterId["ShowGeographicSearch"] = "showGeographicSearch"; - // DPI_ShowHiddenFields, having type bool - ParameterId["ShowHiddenFields"] = "showHiddenFields"; - // DPI_ShowHistoryControls, having type bool - ParameterId["ShowHistoryControls"] = "showHistoryControls"; - // DPI_ShowIncludeLocalFiles, having type bool - ParameterId["ShowIncludeLocalFiles"] = "showIncludeLocalFiles"; - // DPI_ShowIncludeOtherOption, having type bool - ParameterId["ShowIncludeOtherOption"] = "showIncludeOtherOption"; - // DPI_ShowIncludeSelections, having type bool - ParameterId["ShowIncludeSelections"] = "showIncludeSelections"; - // DPI_ShowIncrSchedules, having type bool - ParameterId["ShowIncrSchedules"] = "showIncrSchedules"; - // DPI_ShowInnerMostLevel, having type bool - ParameterId["ShowInnerMostLevel"] = "showInnermostLevel"; - // DPI_ShowItalics, having type bool - ParameterId["ShowItalics"] = "showItalicsOption"; - // DPI_ShowLegend, having type bool - ParameterId["ShowLegend"] = "showLegend"; - // DPI_ShowLockedPermissionsIcon, having type bool - ParameterId["ShowLockedPermissionsIcon"] = "showLockedPermissionsIcon"; - // DPI_ShowManageDatasources, having type bool - ParameterId["ShowManageDatasources"] = "showManageDatasources"; - // DPI_ShowMapLegend, having type bool - ParameterId["ShowMapLegend"] = "showMapLegend"; - // DPI_ShowMapScale, having type bool - ParameterId["ShowMapScale"] = "showMapScale"; - // DPI_ShowMappedFilterCols, having type bool - ParameterId["ShowMappedFilterCols"] = "showMappedFilterColumns"; - // DPI_ShowName, having type bool - ParameterId["ShowName"] = "showName"; - // DPI_ShowNone, having type bool - ParameterId["ShowNone"] = "showNone"; - // DPI_ShowPagePlayback, having type bool - ParameterId["ShowPagePlayback"] = "showPagePlayback"; - // DPI_ShowPageReadout, having type bool - ParameterId["ShowPageReadout"] = "showPageReadout"; - // DPI_ShowPageSlider, having type bool - ParameterId["ShowPageSlider"] = "showPageSlider"; - // DPI_ShowParent, having type bool - ParameterId["ShowParent"] = "showParent"; - // DPI_ShowPercentages, having type bool - ParameterId["ShowPercentages"] = "showPercentages"; - // DPI_ShowPredictionIntervals, having type bool - ParameterId["ShowPredictionIntervals"] = "showPredictionIntervals"; - // DPI_ShowPublishedDatasources, having type bool - ParameterId["ShowPublishedDatasources"] = "showPublishedDatasources"; - // DPI_ShowRelDatePicker, having type bool - ParameterId["ShowRelDatePicker"] = "showRelDatePicker"; - // DPI_ShowReplaceDatasource, having type bool - ParameterId["ShowReplaceDatasource"] = "showReplaceDatasource"; - // DPI_ShowSeparator, having type bool - ParameterId["ShowSeparator"] = "showSeparator"; - // DPI_ShowShapeLegend, having type bool - ParameterId["ShowShapeLegend"] = "showShapeLegend"; - // DPI_ShowSizeLegend, having type bool - ParameterId["ShowSizeLegend"] = "showSizeLegend"; - // DPI_ShowShelf, having type bool - ParameterId["ShowShelf"] = "showShelf"; - // DPI_ShowStructure, having type bool - ParameterId["ShowStructure"] = "showStructure"; - // DPI_ShowSyncClientOptions, having type bool - ParameterId["ShowSyncClientOptions"] = "showSyncClientOptions"; - // DPI_ShowTabsAllowed, having type bool - ParameterId["ShowTabsAllowed"] = "showTabsAllowed"; - // DPI_ShowTime, having type bool - ParameterId["ShowTime"] = "showTime"; - // DPI_ShowTitle, having type bool - ParameterId["ShowTitle"] = "showTitle"; - // DPI_ShowTransSlider, having type bool - ParameterId["ShowTransSlider"] = "showTransparencySlider"; - // DPI_ShowUnderline, having type bool - ParameterId["ShowUnderline"] = "showUnderlineOption"; - // DPI_ShowUserThumbnailOptions, having type bool - ParameterId["ShowUserThumbnailOptions"] = "showUserThumbnailOptions"; - // DPI_ShowView, having type bool - ParameterId["ShowView"] = "showView"; - // DPI_ShowViews, having type bool - ParameterId["ShowViews"] = "showViews"; - // DPI_ShowingPageLoadError, having type bool - ParameterId["ShowingPageLoadError"] = "showingPageLoadError"; - // DPI_SupressAliases, having type bool - ParameterId["SupressAliases"] = "suspressAliases"; - // DPI_SupressThousandsSeparator, having type bool - ParameterId["SupressThousandsSeparator"] = "supressThousandsSeparator"; - // DPI_SingleSelectOnly, having type bool - ParameterId["SingleSelectOnly"] = "singleSelectOnly"; - // DPI_SkipIfActive, having type bool - ParameterId["SkipIfActive"] = "skipIfActive"; - // DPI_SkipRefresh, having type bool - ParameterId["SkipRefresh"] = "skipRefresh"; - // DPI_SkipValidation, having type bool - ParameterId["SkipValidation"] = "skipValidation"; - // DPI_Skipped, having type bool - ParameterId["Skipped"] = "skipped"; - // DPI_SortFieldIsInvalid, having type bool - ParameterId["SortFieldIsInvalid"] = "sortFieldIsInvalid"; - // DPI_SortModeIsAuto, having type bool - ParameterId["SortModeIsAuto"] = "sortModeIsAuto"; - // DPI_SplitOnEdgeSnap, having type bool - ParameterId["SplitOnEdgeSnap"] = "splitOnEdgeSnap"; - // DPI_StandardDeviationAllowed, having type bool - ParameterId["StandardDeviationAllowed"] = "standardDeviationAllowed"; - // DPI_State, having type bool - ParameterId["State"] = "state"; - // DPI_StoredProcDisabled, having type bool - ParameterId["StoredProcDisabled"] = "storedProcDisabled"; - // DPI_StoredProcsDropable, having type bool - ParameterId["StoredProcsDropable"] = "storedProcsDropable"; - // DPI_StoryIsEmpty, having type bool - ParameterId["StoryIsEmpty"] = "storyIsEmpty"; - // DPI_StoryPointIsEmpty, having type bool - ParameterId["StoryPointIsEmpty"] = "storyPointIsEmpty"; - // DPI_SuccessfulSave, having type bool - ParameterId["SuccessfulSave"] = "successfulSave"; - // DPI_SupportXAxis, having type bool - ParameterId["SupportXAxis"] = "supportXAxis"; - // DPI_SupportYAxis, having type bool - ParameterId["SupportYAxis"] = "supportYAxis"; - // DPI_SupportsCenterAlignment, having type bool - ParameterId["SupportsCenterAlignment"] = "supportsCenterAlignment"; - // DPI_SupportsDBFilters, having type bool - ParameterId["SupportsDBFilters"] = "supportsDatabaseFilters"; - // DPI_SupportsMultipleValues, having type bool - ParameterId["SupportsMultipleValues"] = "supportsMultipleValues"; - // DPI_SupportsRightAlignment, having type bool - ParameterId["SupportsRightAlignment"] = "supportsRightAlignment"; - // DPI_SupportsTableFilters, having type bool - ParameterId["SupportsTableFilters"] = "supportsTableFilters"; - // DPI_Symmetric, having type bool - ParameterId["Symmetric"] = "symmetric"; - // DPI_SyncAutomaticDrill, having type bool - ParameterId["SyncAutomaticDrill"] = "syncAutomaticDrill"; - // DPI_TabsAllowed, having type bool - ParameterId["TabsAllowed"] = "tabsAllowed"; - // DPI_TextDropdownState, having type bool - ParameterId["TextDropdownState"] = "toggleState"; - // DPI_TitleInline, having type bool - ParameterId["TitleInline"] = "titleInline"; - // DPI_ToggleHighlightStateChanged, having type bool - ParameterId["ToggleHighlightStateChanged"] = "toggleHighlight"; - // DPI_Transformed80Format, having type bool - ParameterId["Transformed80Format"] = "oldFormat"; - // DPI_TrendLineSelected, having type bool - ParameterId["TrendLineSelected"] = "trendLineSelected"; - // DPI_TruncDate, having type bool - ParameterId["TruncDate"] = "truncDate"; - // DPI_TupleSelected, having type bool - ParameterId["TupleSelected"] = "tupleSelected"; - // DPI_UIAutomationDidPageLoad, having type bool - ParameterId["UIAutomationDidPageLoad"] = "uiAutomationDidPageLoad"; - // DPI_UIAutomationIsChecked, having type bool - ParameterId["UIAutomationIsChecked"] = "uiAutomationIsChecked"; - // DPI_UIAutomationIsEnabled, having type bool - ParameterId["UIAutomationIsEnabled"] = "uiAutomationIsEnabled"; - // DPI_UIAutomationIsEventProcessed, having type bool - ParameterId["UIAutomationIsEventProcessed"] = "uiAutomationIsEventProcessed"; - // DPI_UIAutomationIsFocused, having type bool - ParameterId["UIAutomationIsFocused"] = "uiAutomationIsFocused"; - // DPI_UIAutomationIsFound, having type bool - ParameterId["UIAutomationIsFound"] = "uiAutomationIsFound"; - // DPI_UIAutomationIsReadonly, having type bool - ParameterId["UIAutomationIsReadonly"] = "uiAutomationIsReadonly"; - // DPI_UIAutomationIsSelected, having type bool - ParameterId["UIAutomationIsSelected"] = "uiAutomationIsSelected"; - // DPI_UpdateAllPanes, having type bool - ParameterId["UpdateAllPanes"] = "updateAllPanes"; - // DPI_UpdateDSCaptionOnly, having type bool - ParameterId["UpdateDSCaptionOnly"] = "updateDsCaptionOnly"; - // DPI_UpdateModelFromParams, having type bool - ParameterId["UpdateModelFromParams"] = "updateModelFromParams"; - // DPI_UpdateShelves, having type bool - ParameterId["UpdateShelves"] = "updateShelves"; - // DPI_UpdatesUseContext, having type bool - ParameterId["UpdatesUseContext"] = "updatesUseContext"; - // DPI_UpgradeDocumentVersion, having type bool - ParameterId["UpgradeDocumentVersion"] = "upgradeDocumentVersion"; - // DPI_UseAliases, having type bool - ParameterId["UseAliases"] = "useAliases"; - // DPI_UseBlankForNull, having type bool - ParameterId["UseBlankForNull"] = "useBlankForNull"; - // DPI_UseCalculationEditor, having type bool - ParameterId["UseCalculationEditor"] = "useCalculationEditor"; - // DPI_UseCenterValue, having type bool - ParameterId["UseCenterValue"] = "useCenterValue"; - // DPI_UseColor, having type bool - ParameterId["UseColor"] = "useColor"; - // DPI_UseCustomMarkSize, having type bool - ParameterId["UseCustomMarkSize"] = "useCustomMarkSize"; - // DPI_UseDarkIcons, having type bool - ParameterId["UseDarkIcons"] = "useDarkIcons"; - // DPI_UseDataStoreMinfiedNames, having type bool - ParameterId["UseDataStoreMinfiedNames"] = "useDatastoreMinNames"; - // DPI_UseInitialDomainType, having type bool - ParameterId["UseInitialDomainType"] = "useInitialDomainType"; - // DPI_UseEndValue, having type bool - ParameterId["UseEndValue"] = "useEndValue"; - // DPI_UseForOverlayHitTest, having type bool - ParameterId["UseForOverlayHitTest"] = "useForOverlayHitTest"; - // DPI_UseFullColorRange, having type bool - ParameterId["UseFullColorRange"] = "useFullColorRange"; - // DPI_UseFullDomain, having type bool - ParameterId["UseFullDomain"] = "useFullDomain"; - // DPI_UseInlineImages, having type bool - ParameterId["UseInlineImages"] = "useInlineImages"; - // DPI_UseMeasures, having type bool - ParameterId["UseMeasures"] = "useMeasures"; - // DPI_UseNewQuickFilters, having type bool - ParameterId["UseNewQuickFilters"] = "useNewQuickFilters"; - // DPI_UseNotificationReturn, having type bool - ParameterId["UseNotificationReturn"] = "useNotificationReturn"; - // DPI_UseParameters, having type bool - ParameterId["UseParameters"] = "useParameters"; - // DPI_UseSelector, having type bool - ParameterId["UseSelector"] = "useSelector"; - // DPI_UseSignificantDigits, having type bool - ParameterId["UseSignificantDigits"] = "useSignificantDigits"; - // DPI_UseSpecialStrings, having type bool - ParameterId["UseSpecialStrings"] = "useSpecialStrings"; - // DPI_UseStartValue, having type bool - ParameterId["UseStartValue"] = "useStartValue"; - // DPI_UseTabs, having type bool - ParameterId["UseTabs"] = "useTabs"; - // DPI_UseTabletAsDefaultPreview, having type bool - ParameterId["UseTabletAsDefaultPreview"] = "useTabletAsDefaultPreview"; - // DPI_UseTargetPt, having type bool - ParameterId["UseTargetPt"] = "useTargetPoint"; - // DPI_UseUSLocale, having type bool - ParameterId["UseUSLocale"] = "useUsLocale"; - // DPI_UseYAxis, having type bool - ParameterId["UseYAxis"] = "useYAxis"; - // DPI_Valid, having type bool - ParameterId["Valid"] = "valid"; - // DPI_VizDataV82, having type bool - ParameterId["VizDataV82"] = "vizData82"; - // DPI_WMSConnectionSuccessful, having type bool - ParameterId["WMSConnectionSuccessful"] = "wmsConnectionSuccessful"; - // DPI_WMSShouldUseTiles, having type bool - ParameterId["WMSShouldUseTiles"] = "wmsShouldUseTiles"; - // DPI_WantDomain, having type bool - ParameterId["WantDomain"] = "wantDomain"; - // DPI_WorkbookModified, having type bool - ParameterId["WorkbookModified"] = "workbookModified"; - // DPI_ZoomIn, having type bool - ParameterId["ZoomIn"] = "zoomIn"; - // DPI_ShowMarkLabels, having type bool - ParameterId["ShowMarkLabels"] = "showMarkLabels"; - // DPI_HasDuplicates, having type bool - ParameterId["HasDuplicates"] = "hasDuplicates"; - // DPI_HasUserDefinedIncrement, having type bool - ParameterId["HasUserDefinedIncrement"] = "hasUserDefinedIncrement"; - // DPI_HasUserDefinedMax, having type bool - ParameterId["HasUserDefinedMax"] = "hasUserDefinedMax"; - // DPI_HasUserDefinedMin, having type bool - ParameterId["HasUserDefinedMin"] = "hasUserDefinedMin"; - // DPI_IsDuplicate, having type bool - ParameterId["IsDuplicate"] = "isDuplicate"; - // DPI_IsEditingValue, having type bool - ParameterId["IsEditingValue"] = "isEditingValue"; - // DPI_ShouldRestrictDataType, having type bool - ParameterId["ShouldRestrictDataType"] = "restrictDataType"; - // DPI_EnableIncludeZero, having type bool - ParameterId["EnableIncludeZero"] = "enableIncludeZero"; - // DPI_EnableSyncDualAxes, having type bool - ParameterId["EnableSyncDualAxes"] = "enableSynchronizeDualAxes"; - // DPI_EnableShowTimes, having type bool - ParameterId["EnableShowTimes"] = "enableShowTimes"; - // DPI_EnableTickMarksTab, having type bool - ParameterId["EnableTickMarksTab"] = "enableTickMarksTab"; - // DPI_IsTemporal, having type bool - ParameterId["IsTemporal"] = "isTemporal"; - // DPI_ShouldIncludeZero, having type bool - ParameterId["ShouldIncludeZero"] = "shouldIncludeZero"; - // DPI_ShouldReverseAxis, having type bool - ParameterId["ShouldReverseAxis"] = "shouldReverseAxis"; - // DPI_ShouldShowTimes, having type bool - ParameterId["ShouldShowTimes"] = "shouldShowTimes"; - // DPI_UseAutomaticAxisSubtitle, having type bool - ParameterId["UseAutomaticAxisSubtitle"] = "useAutomaticSubtitle"; - // DPI_UseAutomaticAxisTitle, having type bool - ParameterId["UseAutomaticAxisTitle"] = "useAutomaticTitle"; - // DPI_AllSelected, having type bool - ParameterId["AllSelected"] = "allSelected"; - // DPI_AutoCommit, having type bool - ParameterId["AutoCommit"] = "autoCommit"; - // DPI_CacheOnly, having type bool - ParameterId["CacheOnly"] = "cacheOnly"; - // DPI_IncludeData, having type bool - ParameterId["IncludeData"] = "includeData"; - // DPI_IsPatternExclusive, having type bool - ParameterId["IsPatternExclusive"] = "isPatternExclusive"; - // DPI_IsSearchable, having type bool - ParameterId["IsSearchable"] = "isSearchable"; - // DPI_IsSelectionExclusive, having type bool - ParameterId["IsSelectionExclusive"] = "isSelectionExclusive"; - // DPI_ResetNewFilter, having type bool - ParameterId["ResetNewFilter"] = "resetNewFilter"; - // DPI_UseAllWhenManualEmpty, having type bool - ParameterId["UseAllWhenManualEmpty"] = "useAllWhenManualEmpty"; - // DPI_UseAllWhenPatternEmpty, having type bool - ParameterId["UseAllWhenPatternEmpty"] = "useAllWhenPatternEmpty"; - // DPI_GroupByDrillDown, having type bool - ParameterId["GroupByDrillDown"] = "groupByDrillDown"; - // DPI_GroupByTable, having type bool - ParameterId["GroupByTable"] = "groupByTable"; - // DPI_IncludeGroups, having type bool - ParameterId["IncludeGroups"] = "includeGroups"; - // DPI_IncludePendingState, having type bool - ParameterId["IncludePendingState"] = "includePendingState"; - // DPI_IncludeFieldMenus, having type bool - ParameterId["IncludeFieldMenus"] = "includeFieldMenus"; - // DPI_IncludeFormattedValues, having type bool - ParameterId["IncludeFormattedValues"] = "includeFormattedValues"; - // DPI_IncludeColumnInstances, having type bool - ParameterId["IncludeColumnInstances"] = "includeColumnInstances"; - // DPI_IncludeAdHocCalcs, having type bool - ParameterId["IncludeAdHocCalcs"] = "includeAdhocCalcs"; - // DPI_IncludeHiddenInvalidFields, having type bool - ParameterId["IncludeHiddenInvalidFields"] = "includeHiddenInvalidFields"; - // DPI_IncludeNonExtractedColumns, having type bool - ParameterId["IncludeNonExtractedColumns"] = "includeNonExtractedColumns"; - // DPI_SetDataPreviewCustomFieldOrder, having type bool - ParameterId["SetDataPreviewCustomFieldOrder"] = "setDataPreviewCustomFieldOrder"; - // DPI_CustomSplitAllowSplitFromRight, having type bool - ParameterId["CustomSplitAllowSplitFromRight"] = "customSplitAllowSplitFromRight"; - // DPI_IsChanged, having type bool - ParameterId["IsChanged"] = "isChanged"; - // DPI_ShowFontColorPicker, having type bool - ParameterId["ShowFontColorPicker"] = "showFontColorPicker"; - // DPI_ShowFontFamilyPicker, having type bool - ParameterId["ShowFontFamilyPicker"] = "showFontFamilyPicker"; - // DPI_ShowFontSizePicker, having type bool - ParameterId["ShowFontSizePicker"] = "showFontSizePicker"; - // DPI_ShowFontStyleButtons, having type bool - ParameterId["ShowFontStyleButtons"] = "showFontStyleButtons"; - // DPI_ShowLineForAll, having type bool - ParameterId["ShowLineForAll"] = "showLineForAll"; - // DPI_ShowLineForColumn, having type bool - ParameterId["ShowLineForColumn"] = "showLineForColumn"; - // DPI_ShowLineForRow, having type bool - ParameterId["ShowLineForRow"] = "showLineForRow"; - // DPI_ShowLinePatternPicker, having type bool - ParameterId["ShowLinePatternPicker"] = "showLinePatternPicker"; - // DPI_ShowLineTransparency, having type bool - ParameterId["ShowLineTransparency"] = "showLineTransparency"; - // DPI_ShowLineWidthPicker, having type bool - ParameterId["ShowLineWidthPicker"] = "showLineWidthPicker"; - // DPI_CanBeAuto, having type bool - ParameterId["CanBeAuto"] = "canBeAuto"; - // DPI_CanBeNone, having type bool - ParameterId["CanBeNone"] = "canBeNone"; - // DPI_CanMatchMarkColor, having type bool - ParameterId["CanMatchMarkColor"] = "canMatchMarkColor"; - // DPI_HasOpacity, having type bool - ParameterId["HasOpacity"] = "hasOpacity"; - // DPI_IncludeAllHidden, having type bool - ParameterId["IncludeAllHidden"] = "includeAllHidden"; - // DPI_IncludeCurrent, having type bool - ParameterId["IncludeCurrent"] = "includeCurrent"; - // DPI_IsIncluded, having type bool - ParameterId["IsIncluded"] = "isIncluded"; - // DPI_IsRelative, having type bool - ParameterId["IsRelative"] = "isRelative"; - // DPI_IsSecondaryAllowed, having type bool - ParameterId["IsSecondaryAllowed"] = "isSecondaryAllowed"; - // DPI_NullIfIncomplete, having type bool - ParameterId["NullIfIncomplete"] = "nullIfIncomplete"; - // DPI_IsCalcAssistanceEnabled, having type bool - ParameterId["IsCalcAssistanceEnabled"] = "isCalcAssistanceEnabled"; - // DPI_UseSecondaryCalc, having type bool - ParameterId["UseSecondaryCalc"] = "useSecondaryCalc"; - // DPI_CanLoad, having type bool - ParameterId["CanLoad"] = "canLoad"; - // DPI_DescriptionOnly, having type bool - ParameterId["DescriptionOnly"] = "descriptionOnly"; - // DPI_AreAliasesSupported, having type bool - ParameterId["AreAliasesSupported"] = "areAliasesSupported"; - // DPI_AreRefColumnsSupported, having type bool - ParameterId["AreRefColumnsSupported"] = "areRefColumnsSupported"; - // DPI_IsAggregated, having type bool - ParameterId["IsAggregated"] = "isAggregated"; - // DPI_IsExportSupported, having type bool - ParameterId["IsExportSupported"] = "isExportSupported"; - // DPI_IsMeasureNames, having type bool - ParameterId["IsMeasureNames"] = "isMeasureNames"; - // DPI_IsSummarySupported, having type bool - ParameterId["IsSummarySupported"] = "isSummarySupported"; - // DPI_IsTopNSupported, having type bool - ParameterId["IsTopNSupported"] = "isTopNSupported"; - // DPI_IsUnderlyingSupported, having type bool - ParameterId["IsUnderlyingSupported"] = "isUnderlyingSupported"; - // DPI_OnlyExportSummary, having type bool - ParameterId["OnlyExportSummary"] = "onlyExportSummary"; - // DPI_ShowAllFields, having type bool - ParameterId["ShowAllFields"] = "showAllFields"; - // DPI_UseTablePtrs, having type bool - ParameterId["UseTablePtrs"] = "useTablePtrs"; - // DPI_OnlyFetchSummary, having type bool - ParameterId["OnlyFetchSummary"] = "onlyFetchSummary"; - // DPI_IsDeviceLayoutCustomized, having type bool - ParameterId["IsDeviceLayoutCustomized"] = "isDeviceLayoutCustomized"; - // DPI_IsDeviceSizeCustomized, having type bool - ParameterId["IsDeviceSizeCustomized"] = "isDeviceSizeCustomized"; - // DPI_IsDeviceSupportedByMobileApp, having type bool - ParameterId["IsDeviceSupportedByMobileApp"] = "isDeviceSupportedByMobileApp"; - // DPI_IsPortrait, having type bool - ParameterId["IsPortrait"] = "isPortrait"; - // DPI_IsPortraitByDefault, having type bool - ParameterId["IsPortraitByDefault"] = "isPortraitByDefault"; - // DPI_IsUserCustomFormat, having type bool - ParameterId["IsUserCustomFormat"] = "isUserCustomFormat"; - // DPI_ShouldDisplayRebuildExtractMessage, having type bool - ParameterId["ShouldDisplayRebuildExtractMessage"] = "shouldDisplayRebuildExtractMessage"; - // DPI_SupportsCustomStartOfWeek, having type bool - ParameterId["SupportsCustomStartOfWeek"] = "supportsCustomStartOfWeek"; - // DPI_NeedsConnectPrompt, having type bool - ParameterId["NeedsConnectPrompt"] = "needsConnectPrompt"; - // DPI_NeedsCloseDataSourceErrorPrompt, having type bool - ParameterId["NeedsCloseDataSourceErrorPrompt"] = "needsCloseDsErrorPrompt"; - // DPI_ClearCurrentSelection, having type bool - ParameterId["ClearCurrentSelection"] = "clearCurrentSelection"; - // DPI_HasContains, having type bool - ParameterId["HasContains"] = "hasContains"; - // DPI_HasEndsWith, having type bool - ParameterId["HasEndsWith"] = "hasEndsWith"; - // DPI_HasReplaceSelection, having type bool - ParameterId["HasReplaceSelection"] = "hasReplaceSelection"; - // DPI_HasStartsWith, having type bool - ParameterId["HasStartsWith"] = "hasStartsWith"; - // DPI_IsLeafSelectionOnly, having type bool - ParameterId["IsLeafSelectionOnly"] = "isLeafSelectionOnly"; - // DPI_ReplaceSelection, having type bool - ParameterId["ReplaceSelection"] = "replaceSelection"; - // DPI_IsColorPaletteCustomized, having type bool - ParameterId["IsColorPaletteCustomized"] = "isColorPaletteCustomized"; - // DPI_ReversePaletteOrder, having type bool - ParameterId["ReversePaletteOrder"] = "reversePaletteOrder"; - // DPI_TriedToConnect, having type bool - ParameterId["TriedToConnect"] = "triedToConnect"; - // DPI_ScaleMarksInAxisUnits, having type bool - ParameterId["ScaleMarksInAxisUnits"] = "scaleMarksInAxisUnits"; - // DPI_ShowMarkSizingOptions, having type bool - ParameterId["ShowMarkSizingOptions"] = "showMarkSizingOptions"; - // DPI_UseSizeFieldCaption, having type bool - ParameterId["UseSizeFieldCaption"] = "useSizeFieldCaption"; - // DPI_IsLicensedAndRegistered, having type bool - ParameterId["IsLicensedAndRegistered"] = "isLicensedAndRegistered"; - // DPI_SetNewDatasourceActive, having type bool - ParameterId["SetNewDatasourceActive"] = "setNewDatasourceActive"; - // DPI_AllowCustomLabel, having type bool - ParameterId["AllowCustomLabel"] = "allowCustomLabel"; - // DPI_IsMostRecentModeValid, having type bool - ParameterId["IsMostRecentModeValid"] = "isMostRecentModeValid"; - // DPI_MustShowLabels, having type bool - ParameterId["MustShowLabels"] = "mustShowLabels"; - // DPI_ShowRunningOrderLabels, having type bool - ParameterId["ShowRunningOrderLabels"] = "showRunningOrderLabels"; - // DPI_IsDroppedFile, having type bool - ParameterId["IsDroppedFile"] = "isDroppedFile"; - // DPI_IsInitialized, having type bool - ParameterId["IsInitialized"] = "isInitialized"; - // DPI_IncludeDashboard, having type bool - ParameterId["IncludeDashboard"] = "includeDashboard"; - // DPI_ChildrenCanResize, having type bool - ParameterId["ChildrenCanResize"] = "childrenCanResize"; - // DPI_BoolMap, having type Dictionary(of bool) - ParameterId["BoolMap"] = "boolMap"; - // DPI_CheckedMenuItems, having type bool[] - ParameterId["CheckedMenuItems"] = "checkedMenuItems"; - // DPI_IncludedSheetValues, having type bool[] - ParameterId["IncludedSheetValues"] = "includedSheetValues"; - // DPI_SortOrderVector, having type bool[] - ParameterId["SortOrderVector"] = "sortOrderVector"; - // DPI_ActionName, having type string - ParameterId["ActionName"] = "actionName"; - // DPI_ActionSourceText, having type string - ParameterId["ActionSourceText"] = "actionSourceText"; - // DPI_ActionTypeAsString, having type string - ParameterId["ActionTypeAsString"] = "actionTypeAsString"; - // DPI_ActiveTab, having type string - ParameterId["ActiveTab"] = "active_tab"; - // DPI_AddInId, having type string - ParameterId["AddInId"] = "addInId"; - // DPI_AddInstanceId, having type string - ParameterId["AddInstanceId"] = "addInInstanceId"; - // DPI_AddInName, having type string - ParameterId["AddInName"] = "addInName"; - // DPI_AddInLocale, having type string - ParameterId["AddInLocale"] = "addInLocale"; - // DPI_AddInLanguage, having type string - ParameterId["AddInLanguage"] = "addInLanguage"; - // DPI_APIVersion, having type string - ParameterId["APIVersion"] = "apiVersion"; - // DPI_Alias, having type string - ParameterId["Alias"] = "alias"; - // DPI_AnchorDate, having type string - ParameterId["AnchorDate"] = "anchorDate"; - // DPI_AnnotationRes, having type string - ParameterId["AnnotationRes"] = "annotationRes"; - // DPI_ReadId, having type string - ParameterId["ReadId"] = "readId"; - // DPI_AnnotationText, having type string - ParameterId["AnnotationText"] = "annotationText"; - // DPI_ArchiveDirectory, having type string - ParameterId["ArchiveDirectory"] = "archiveDirectory"; - // DPI_ArchiveFullPath, having type string - ParameterId["ArchiveFullPath"] = "archiveFullPath"; - // DPI_AtTheLevelInvalidFieldCaption, having type string - ParameterId["AtTheLevelInvalidFieldCaption"] = "atTheLevelInvalidFieldCaption"; - // DPI_AutoCompleteSubstring, having type string - ParameterId["AutoCompleteSubstring"] = "acSubstring"; - // DPI_AutosaveFileId, having type string - ParameterId["AutosaveFileId"] = "autosaveFileId"; - // DPI_AutosaveTimerInterval, having type string - ParameterId["AutosaveTimerInterval"] = "autosaveTimerInterval"; - // DPI_BaseColumnCaption, having type string - ParameterId["BaseColumnCaption"] = "baseColumnCaption"; - // DPI_ClearButtonText, having type string - ParameterId["ClearButtonText"] = "clearButtonText"; - // DPI_ColorPaletteId, having type string - ParameterId["ColorPaletteId"] = "colorPaletteId"; - // DPI_ColorPaletteName, having type string - ParameterId["ColorPaletteName"] = "colorPaletteName"; - // DPI_ColorSwatch, having type string - ParameterId["ColorSwatch"] = "colorSwatch"; - // DPI_CommandName, having type string - ParameterId["CommandName"] = "commandName"; - // DPI_ConfidenceLevelValue, having type string - ParameterId["ConfidenceLevelValue"] = "confidenceLevelValue"; - // DPI_CountDistinctStr, having type string - ParameterId["CountDistinctStr"] = "countDistinctStr"; - // DPI_CrossTabFilepath, having type string - ParameterId["CrossTabFilepath"] = "crossTabFilepath"; - // DPI_CSSMargin, having type string - ParameterId["CSSMargin"] = "cssMargin"; - // DPI_CSSWhitespace, having type string - ParameterId["CSSWhitespace"] = "cssWhitespace"; - // DPI_DBPassword, having type string - ParameterId["DBPassword"] = "dbPassword"; - // DPI_DBUsername, having type string - ParameterId["DBUsername"] = "dbUsername"; - // DPI_DataAlertConditionText, having type string - ParameterId["DataAlertConditionText"] = "dataAlertConditionText"; - // DPI_DataAlertMeasureText, having type string - ParameterId["DataAlertMeasureText"] = "dataAlertMeasureText"; - // DPI_DataAlertSpecSerializedText, having type string - ParameterId["DataAlertSpecSerializedText"] = "dataAlertSpecSerializedText"; - // DPI_DataAlertDefaultSubject, having type string - ParameterId["DataAlertDefaultSubject"] = "dataAlertDefaultSubject"; - // DPI_DataAlertThresholdText, having type string - ParameterId["DataAlertThresholdText"] = "dataAlertThresholdText"; - // DPI_DataGridSortColumnName, having type string - ParameterId["DataGridSortColumnName"] = "datagridSortColumnName"; - // DPI_DataServerConnectionError, having type string - ParameterId["DataServerConnectionError"] = "dataServerConnectionError"; - // DPI_DatabaseFilter, having type string - ParameterId["DatabaseFilter"] = "databaseFilter"; - // DPI_DatabaseFilterPrompt, having type string - ParameterId["DatabaseFilterPrompt"] = "databaseFilterPrompt"; - // DPI_DatasourceRanking, having type string - ParameterId["DatasourceRanking"] = "datasourceRanking"; - // DPI_DatasourceUrl, having type string - ParameterId["DatasourceUrl"] = "datasourceUrl"; - // DPI_DatasourceUsername, having type string - ParameterId["DatasourceUsername"] = "datasourceUsername"; - // DPI_DateFormat, having type string - ParameterId["DateFormat"] = "dateFormat"; - // DPI_DatePart, having type string - ParameterId["DatePart"] = "datePart"; - // DPI_DatePartAbbrev, having type string - ParameterId["DatePartAbbrev"] = "datePartAbbrev"; - // DPI_DefaultHierarchyName, having type string - ParameterId["DefaultHierarchyName"] = "defaultHierarchyName"; - // DPI_Delimiter, having type string - ParameterId["Delimiter"] = "delimiter"; - // DPI_DeviceName, having type string - ParameterId["DeviceName"] = "deviceName"; - // DPI_DeviceType, having type string - ParameterId["DeviceType"] = "deviceType"; - // DPI_DisplayPath, having type string - ParameterId["DisplayPath"] = "displayPath"; - // DPI_DistributionValueString, having type string - ParameterId["DistributionValueString"] = "distributionValueString"; - // DPI_DrillPathName, having type string - ParameterId["DrillPathName"] = "drillPathName"; - // DPI_EmbeddedTitle, having type string - ParameterId["EmbeddedTitle"] = "embeddedTitle"; - // DPI_EnterValueText, having type string - ParameterId["EnterValueText"] = "enterValueText"; - // DPI_EscapeString, having type string - ParameterId["EscapeString"] = "escapeString"; - // DPI_ExtSvcConfigHost, having type string - ParameterId["ExtSvcConfigHost"] = "extSvcConfigHost"; - // DPI_ExtSvcConfigPassword, having type string - ParameterId["ExtSvcConfigPassword"] = "extSvcConfigPassword"; - // DPI_ExtSvcConfigPort, having type string - ParameterId["ExtSvcConfigPort"] = "extSvcConfigPort"; - // DPI_ExtSvcConfigConnectTimeout, having type string - ParameterId["ExtSvcConfigConnectTimeout"] = "extSvcConnectTimeout"; - // DPI_ExtSvcConfigPrevHost, having type string - ParameterId["ExtSvcConfigPrevHost"] = "extSvcConfigPrevHost"; - // DPI_ExtSvcConfigUsername, having type string - ParameterId["ExtSvcConfigUsername"] = "extSvcConfigUsername"; - // DPI_ExtractUpdateTime, having type string - ParameterId["ExtractUpdateTime"] = "extractUpdateTime"; - // DPI_FieldFolderName, having type string - ParameterId["FieldFolderName"] = "fieldFolderName"; - // DPI_FieldNameString, having type string - ParameterId["FieldNameString"] = "fieldName"; - // DPI_FilterSearchDomain, having type string - ParameterId["FilterSearchDomain"] = "filterSearchDomain"; - // DPI_FilterSpec, having type string - ParameterId["FilterSpec"] = "filterSpec"; - // DPI_FirstValue, having type string - ParameterId["FirstValue"] = "firstValue"; - // DPI_FolderName, having type string - ParameterId["FolderName"] = "folderName"; - // DPI_FontName, having type string - ParameterId["FontName"] = "fontName"; - // DPI_FormatString, having type string - ParameterId["FormatString"] = "formatString"; - // DPI_FormattedDisplayString, having type string - ParameterId["FormattedDisplayString"] = "formattedDisplayString"; - // DPI_FormattedIncrementValue, having type string - ParameterId["FormattedIncrementValue"] = "formattedIncrement"; - // DPI_FormattedMaxValue, having type string - ParameterId["FormattedMaxValue"] = "formattedMax"; - // DPI_FormattedMinValue, having type string - ParameterId["FormattedMinValue"] = "formattedMin"; - // DPI_FormattedValue, having type string - ParameterId["FormattedValue"] = "formattedValue"; - // DPI_FormattedCenterValue, having type string - ParameterId["FormattedCenterValue"] = "formattedCenter"; - // DPI_FormattedEndValue, having type string - ParameterId["FormattedEndValue"] = "formattedEnd"; - // DPI_FormattedStartValue, having type string - ParameterId["FormattedStartValue"] = "formattedStart"; - // DPI_PairedFormattedValue, having type string - ParameterId["PairedFormattedValue"] = "pairedFormattedValue"; - // DPI_FrameAttributes, having type string - ParameterId["FrameAttributes"] = "frameAttr"; - // DPI_GUID, having type string - ParameterId["GUID"] = "guid"; - // DPI_GeographicSearchCandidateDisplayName, having type string - ParameterId["GeographicSearchCandidateDisplayName"] = "geographicSearchCandidateDisplayName"; - // DPI_GeographicSearchCandidateParentName, having type string - ParameterId["GeographicSearchCandidateParentName"] = "geographicSearchCandidateParentName"; - // DPI_GeographicSearchCandidateType, having type string - ParameterId["GeographicSearchCandidateType"] = "geographicSearchCandidateType"; - // DPI_GeographicSearchLocale, having type string - ParameterId["GeographicSearchLocale"] = "geographicSearchLocale"; - // DPI_GeographicSearchQueryString, having type string - ParameterId["GeographicSearchQueryString"] = "geographicSearchSearchString"; - // DPI_GeographicSearchUILocale, having type string - ParameterId["GeographicSearchUILocale"] = "geographicSearchUilocale"; - // DPI_IconRes, having type string - ParameterId["IconRes"] = "iconRes"; - // DPI_ImageHash, having type string - ParameterId["ImageHash"] = "imageHash"; - // DPI_ImageName, having type string - ParameterId["ImageName"] = "imageName"; - // DPI_ImageRes, having type string - ParameterId["ImageRes"] = "imageRes"; - // DPI_IncludesSiblingsPrompt, having type string - ParameterId["IncludesSiblingsPrompt"] = "includesSiblingsPrompt"; - // DPI_IncludesSubfoldersPrompt, having type string - ParameterId["IncludesSubfoldersPrompt"] = "includesSubfoldersPrompt"; - // DPI_IncrementalScheduleIDs, having type string - ParameterId["IncrementalScheduleIDs"] = "incrementalScheduleIds"; - // DPI_InvariantKeyword, having type string - ParameterId["InvariantKeyword"] = "invariantKeyword"; - // DPI_JoinOperator, having type string - ParameterId["JoinOperator"] = "joinOperator"; - // DPI_JoinExpression, having type string - ParameterId["JoinExpression"] = "joinExpression"; - // DPI_Label, having type string - ParameterId["Label"] = "label"; - // DPI_PairedLabel, having type string - ParameterId["PairedLabel"] = "pairedLabel"; - // DPI_LayoutID, having type string - ParameterId["LayoutID"] = "layoutId"; - // DPI_LeftJoinExpression, having type string - ParameterId["LeftJoinExpression"] = "leftJoinExpression"; - // DPI_LimitCountExpression, having type string - ParameterId["LimitCountExpression"] = "limitCountExpression"; - // DPI_LinkTarget, having type string - ParameterId["LinkTarget"] = "linkTarget"; - // DPI_Locale, having type string - ParameterId["Locale"] = "locale"; - // DPI_LocalizedKeyword, having type string - ParameterId["LocalizedKeyword"] = "localizedKeyword"; - // DPI_MapBoxGLStyleId, having type string - ParameterId["MapBoxGLStyleId"] = "mapboxGlStyleId"; - // DPI_MapBoxStyleUrl, having type string - ParameterId["MapBoxStyleUrl"] = "mapboxStyleUrl"; - // DPI_MapBoxUsername, having type string - ParameterId["MapBoxUsername"] = "mapboxUsername"; - // DPI_MapScaleReadoutString, having type string - ParameterId["MapScaleReadoutString"] = "mapScaleReadoutString"; - // DPI_MapScaleTooltipString, having type string - ParameterId["MapScaleTooltipString"] = "mapScaleTooltipString"; - // DPI_MapSourceName, having type string - ParameterId["MapSourceName"] = "mapSourceName"; - // DPI_MaxLabel, having type string - ParameterId["MaxLabel"] = "maxLabel"; - // DPI_MinLabel, having type string - ParameterId["MinLabel"] = "minLabel"; - // DPI_ModelDescriptionParagraph, having type string - ParameterId["ModelDescriptionParagraph"] = "modelDescriptionParagraph"; - // DPI_NameTemplate, having type string - ParameterId["NameTemplate"] = "nameTemplate"; - // DPI_NewDrillPath, having type string - ParameterId["NewDrillPath"] = "newDrillPath"; - // DPI_NewFieldFolderName, having type string - ParameterId["NewFieldFolderName"] = "newFieldFolderName"; - // DPI_NewTableAlias, having type string - ParameterId["NewTableAlias"] = "newTableAlias"; - // DPI_NonFormattedValue, having type string - ParameterId["NonFormattedValue"] = "unformattedValue"; - // DPI_OAuthUserName, having type string - ParameterId["OAuthUserName"] = "oauthUsername"; - // DPI_ObjectName, having type string - ParameterId["ObjectName"] = "objectName"; - // DPI_ObjectOverrideMessage, having type string - ParameterId["ObjectOverrideMessage"] = "objectOverrideMessage"; - // DPI_OldTableAlias, having type string - ParameterId["OldTableAlias"] = "oldTableAlias"; - // DPI_OperatingSystem, having type string - ParameterId["OperatingSystem"] = "operatingSystem"; - // DPI_OriginalFilePath, having type string - ParameterId["OriginalFilePath"] = "originalFilePath"; - // DPI_OriginalFileVersion, having type string - ParameterId["OriginalFileVersion"] = "originalFileVersion"; - // DPI_PaneDescriptorKey, having type string - ParameterId["PaneDescriptorKey"] = "paneDescrKey"; - // DPI_ParentName, having type string - ParameterId["ParentName"] = "parentName"; - // DPI_ParentTable, having type string - ParameterId["ParentTable"] = "parentTable"; - // DPI_PatternFilterString, having type string - ParameterId["PatternFilterString"] = "patternFilterString"; - // DPI_PendingCalcName, having type string - ParameterId["PendingCalcName"] = "pendingCalcName"; - // DPI_PercentilesString, having type string - ParameterId["PercentilesString"] = "percentilesString"; - // DPI_ProjectName, having type string - ParameterId["ProjectName"] = "projectName"; - // DPI_PropertyName, having type string - ParameterId["PropertyName"] = "propertyName"; - // DPI_QuickFilterTitleCaption, having type string - ParameterId["QuickFilterTitleCaption"] = "quickFilterTitleCaption"; - // DPI_RangeDiffStr, having type string - ParameterId["RangeDiffStr"] = "diffValue"; - // DPI_RangeMaxStr, having type string - ParameterId["RangeMaxStr"] = "maxValue"; - // DPI_RangeMinStr, having type string - ParameterId["RangeMinStr"] = "minValue"; - // DPI_RecoveredFilePath, having type string - ParameterId["RecoveredFilePath"] = "recoveredFilePath"; - // DPI_ReferenceLineSpecificationId, having type string - ParameterId["ReferenceLineSpecificationId"] = "referenceLineId"; - // DPI_ReplaceFieldPrompt, having type string - ParameterId["ReplaceFieldPrompt"] = "replaceFieldPrompt"; - // DPI_RightJoinExpression, having type string - ParameterId["RightJoinExpression"] = "rightJoinExpression"; - // DPI_RootPath, having type string - ParameterId["RootPath"] = "rootPath"; - // DPI_RuntimeFinalDatastore, having type string - ParameterId["RuntimeFinalDatastore"] = "runtimeFinalDatastore"; - // DPI_RuntimeInitialDatastore, having type string - ParameterId["RuntimeInitialDatastore"] = "runtimeInitialDatastore"; - // DPI_RuntimeVTL, having type string - ParameterId["RuntimeVTL"] = "runtimeVtl"; - // DPI_SampleDataString, having type string - ParameterId["SampleDataString"] = "sampleData"; - // DPI_ScheduleIDs, having type string - ParameterId["ScheduleIDs"] = "scheduleIds"; - // DPI_SchemaFieldIconResource, having type string - ParameterId["SchemaFieldIconResource"] = "fieldIconRes"; - // DPI_ScreenName, having type string - ParameterId["ScreenName"] = "screenName"; - // DPI_ScriptCommand, having type string - ParameterId["ScriptCommand"] = "command"; - // DPI_SecondValue, having type string - ParameterId["SecondValue"] = "secondValue"; - // DPI_SelectedValue, having type string - ParameterId["SelectedValue"] = "selectedValue"; - // DPI_ShapeName, having type string - ParameterId["ShapeName"] = "shapeName"; - // DPI_SheetId, having type string - ParameterId["SheetId"] = "sheetId"; - // DPI_ShowDataTable, having type string - ParameterId["ShowDataTable"] = "showDataTable"; - // DPI_SimpleCommand, having type string - ParameterId["SimpleCommand"] = "simpleCommand"; - // DPI_SortModeCaption, having type string - ParameterId["SortModeCaption"] = "sortModeCaption"; - // DPI_SourceName, having type string - ParameterId["SourceName"] = "sourceName"; - // DPI_SourceText, having type string - ParameterId["SourceText"] = "sourceText"; - // DPI_SpecialValueText, having type string - ParameterId["SpecialValueText"] = "specialValueText"; - // DPI_StaticImage, having type string - ParameterId["StaticImage"] = "staticImage"; - // DPI_StoryPointBase, having type string - ParameterId["StoryPointBase"] = "storyPointBase"; - // DPI_StoryPointCaption, having type string - ParameterId["StoryPointCaption"] = "storyPointCaption"; - // DPI_Storyboard, having type string - ParameterId["Storyboard"] = "storyboard"; - // DPI_StyledLabel, having type string - ParameterId["StyledLabel"] = "styledLabel"; - // DPI_SummaryCaption, having type string - ParameterId["SummaryCaption"] = "summaryCaption"; - // DPI_SummaryField, having type string - ParameterId["SummaryField"] = "summaryField"; - // DPI_TableauVersion, having type string - ParameterId["TableauVersion"] = "tableauVersion"; - // DPI_TableFilter, having type string - ParameterId["TableFilter"] = "tableFilter"; - // DPI_TableFilterPrompt, having type string - ParameterId["TableFilterPrompt"] = "tableFilterPrompt"; - // DPI_TagsLabel, having type string - ParameterId["TagsLabel"] = "tagsLabel"; - // DPI_Target, having type string - ParameterId["Target"] = "target"; - // DPI_ThumbnailGroup, having type string - ParameterId["ThumbnailGroup"] = "thumbnailGroup"; - // DPI_ThumbnailUser, having type string - ParameterId["ThumbnailUser"] = "thumbnailUser"; - // DPI_TimeFormat, having type string - ParameterId["TimeFormat"] = "timeFormat"; - // DPI_TrendLineErrorString, having type string - ParameterId["TrendLineErrorString"] = "trendLineErrorString"; - // DPI_TrendLineModelFormula, having type string - ParameterId["TrendLineModelFormula"] = "trendLineModelFormula"; - // DPI_URLString, having type string - ParameterId["URLString"] = "urlString"; - // DPI_URLTest, having type string - ParameterId["URLTest"] = "urlTest"; - // DPI_ValidationMessage, having type string - ParameterId["ValidationMessage"] = "validationMessage"; - // DPI_ValueStr, having type string - ParameterId["ValueStr"] = "valueString"; - // DPI_VerifiedNonFormattedValue, having type string - ParameterId["VerifiedNonFormattedValue"] = "verifiedUnformattedValue"; - // DPI_WorkbookFullPath, having type string - ParameterId["WorkbookFullPath"] = "workbookFullPath"; - // DPI_WindowTitle, having type string - ParameterId["WindowTitle"] = "windowTitle"; - // DPI_ZoneName, having type string - ParameterId["ZoneName"] = "zoneName"; - // DPI_ZoneParam, having type string - ParameterId["ZoneParam"] = "zoneParam"; - // DPI_DataAlertErrorText, having type string - ParameterId["DataAlertErrorText"] = "dataAlertErrorText"; - // DPI_ExtractTempDirectory, having type string - ParameterId["ExtractTempDirectory"] = "extractTempDir"; - // DPI_DSSubClass, having type string - ParameterId["DSSubClass"] = "dsSubClass"; - // DPI_DbgCommandLine, having type string - ParameterId["DbgCommandLine"] = "debugCommandLine"; - // DPI_DbgLogPath, having type string - ParameterId["DbgLogPath"] = "debugLogPath"; - // DPI_DbgOSVersion, having type string - ParameterId["DbgOSVersion"] = "debugOsVersion"; - // DPI_DbgUserName, having type string - ParameterId["DbgUserName"] = "debugUsername"; - // DPI_ErrorMsg, having type string - ParameterId["ErrorMsg"] = "errorMessage"; - // DPI_ErrorStr, having type string - ParameterId["ErrorStr"] = "errorString"; - // DPI_EventMessage, having type string - ParameterId["EventMessage"] = "eventMessage"; - // DPI_EventTimestamp, having type string - ParameterId["EventTimestamp"] = "eventTimestamp"; - // DPI_ExtractDeltaPath, having type string - ParameterId["ExtractDeltaPath"] = "extractDeltaPath"; - // DPI_ExtractPath, having type string - ParameterId["ExtractPath"] = "extractPath"; - // DPI_ExtractSuggestedPath, having type string - ParameterId["ExtractSuggestedPath"] = "suggestedExtractPath"; - // DPI_ExtractTaskSummary, having type string - ParameterId["ExtractTaskSummary"] = "extractTaskSummary"; - // DPI_FactorsString, having type string - ParameterId["FactorsString"] = "factorsStr"; - // DPI_FormattedFamilyName, having type string - ParameterId["FormattedFamilyName"] = "formattedFamilyName"; - // DPI_FunctionSignature, having type string - ParameterId["FunctionSignature"] = "funcSig"; - // DPI_FunctionTooltip, having type string - ParameterId["FunctionTooltip"] = "funcTooltip"; - // DPI_HelpContents, having type string - ParameterId["HelpContents"] = "helpContents"; - // DPI_MapAttributionText, having type string - ParameterId["MapAttributionText"] = "mapAttributionText"; - // DPI_MapAttributionTextSize, having type string - ParameterId["MapAttributionTextSize"] = "mapAttributionTextSize"; - // DPI_MapAttributionUrl, having type string - ParameterId["MapAttributionUrl"] = "mapAttributionUrl"; - // DPI_MapBoxErrorMessage, having type string - ParameterId["MapBoxErrorMessage"] = "mapboxErrorMessage"; - // DPI_MapBoxOldStyleName, having type string - ParameterId["MapBoxOldStyleName"] = "mapboxOldStyleName"; - // DPI_MapBoxSelectedStyle, having type string - ParameterId["MapBoxSelectedStyle"] = "mapboxSelectedStyle"; - // DPI_MapBoxStyleName, having type string - ParameterId["MapBoxStyleName"] = "mapboxStyleName"; - // DPI_MapLayerRequest, having type string - ParameterId["MapLayerRequest"] = "mapLayerRequest"; - // DPI_MapServerKey, having type string - ParameterId["MapServerKey"] = "mapServerKey"; - // DPI_MapTileServer, having type string - ParameterId["MapTileServer"] = "mapTileServer"; - // DPI_MapTileUrl, having type string - ParameterId["MapTileUrl"] = "mapTileUrl"; - // DPI_PercentagesString, having type string - ParameterId["PercentagesString"] = "percentagesStr"; - // DPI_PublishErrorMessage, having type string - ParameterId["PublishErrorMessage"] = "publishErrorMessage"; - // DPI_TdePath, having type string - ParameterId["TdePath"] = "tdePath"; - // DPI_UIAutomationComponentName, having type string - ParameterId["UIAutomationComponentName"] = "uiAutomationComponentName"; - // DPI_UIAutomationEndTime, having type string - ParameterId["UIAutomationEndTime"] = "uiAutomationEndTime"; - // DPI_UIAutomationName, having type string - ParameterId["UIAutomationName"] = "uiAutomationName"; - // DPI_UIAutomationStartTime, having type string - ParameterId["UIAutomationStartTime"] = "uiAutomationStartTime"; - // DPI_UIAutomationValue, having type string - ParameterId["UIAutomationValue"] = "uiAutomationValue"; - // DPI_WMSConnectionName, having type string - ParameterId["WMSConnectionName"] = "wmsConnectionName"; - // DPI_WMSOldConnectionName, having type string - ParameterId["WMSOldConnectionName"] = "wmsOldConnectionName"; - // DPI_WMSServerUrl, having type string - ParameterId["WMSServerUrl"] = "wmsServerUrl"; - // DPI_AboutBuildVersion, having type string - ParameterId["AboutBuildVersion"] = "aboutBuildVersion"; - // DPI_ActionFields, having type string - ParameterId["ActionFields"] = "actionFields"; - // DPI_AddVariableLabel, having type string - ParameterId["AddVariableLabel"] = "addVariableLabel"; - // DPI_AddVariableTooltip, having type string - ParameterId["AddVariableTooltip"] = "addVariableTooltip"; - // DPI_AllowedDataSourcesByName, having type string - ParameterId["AllowedDataSourcesByName"] = "allowedDataSourcesByName"; - // DPI_AppAboutVersion, having type string - ParameterId["AppAboutVersion"] = "appAboutVersion"; - // DPI_AppBuildBranchName, having type string - ParameterId["AppBuildBranchName"] = "appBuildBranchName"; - // DPI_AppBuildVersion, having type string - ParameterId["AppBuildVersion"] = "appBuildVersion"; - // DPI_AppExternalVersion, having type string - ParameterId["AppExternalVersion"] = "appExternalVersion"; - // DPI_AppName, having type string - ParameterId["AppName"] = "appName"; - // DPI_AppProductVersion, having type string - ParameterId["AppProductVersion"] = "appProductVersion"; - // DPI_OriginalVersion, having type string - ParameterId["OriginalVersion"] = "originalVersion"; - // DPI_AtTheLevelSpecialCaption, having type string - ParameterId["AtTheLevelSpecialCaption"] = "atTheLevelSpecialCaption"; - // DPI_AutoCompleteCalc, having type string - ParameterId["AutoCompleteCalc"] = "acCalc"; - // DPI_CSVPath, having type string - ParameterId["CSVPath"] = "csvPath"; - // DPI_CommandNamespace, having type string - ParameterId["CommandNamespace"] = "commandNamespace"; - // DPI_Condition, having type string - ParameterId["Condition"] = "condition"; - // DPI_ConditionSummary, having type string - ParameterId["ConditionSummary"] = "conditionSummary"; - // DPI_ConfirmationMsg, having type string - ParameterId["ConfirmationMsg"] = "confirmationMsg"; - // DPI_DashboardTypeText, having type string - ParameterId["DashboardTypeText"] = "dashboardType"; - // DPI_DataserverPublicAddress, having type string - ParameterId["DataserverPublicAddress"] = "dataserverPublicAddress"; - // DPI_DatasourceFileName, having type string - ParameterId["DatasourceFileName"] = "datasourceFileName"; - // DPI_DecimalMark, having type string - ParameterId["DecimalMark"] = "decimalMark"; - // DPI_DeleteVariableTooltip, having type string - ParameterId["DeleteVariableTooltip"] = "deleteVariableTooltip"; - // DPI_DialogTitle, having type string - ParameterId["DialogTitle"] = "dialogTitle"; - // DPI_DisplayValue, having type string - ParameterId["DisplayValue"] = "displayValue"; - // DPI_TooltipValue, having type string - ParameterId["TooltipValue"] = "tooltipValue"; - // DPI_DstPath, having type string - ParameterId["DstPath"] = "dstPath"; - // DPI_EditWidgetHeader, having type string - ParameterId["EditWidgetHeader"] = "editWidgetHeader"; - // DPI_EditWidgetInstruction, having type string - ParameterId["EditWidgetInstruction"] = "editWidgetInstruction"; - // DPI_EndSelectionCaption, having type string - ParameterId["EndSelectionCaption"] = "endSelectionCaption"; - // DPI_ErrorDialogTitle, having type string - ParameterId["ErrorDialogTitle"] = "errorDialogTitle"; - // DPI_ErrorHelpLink, having type string - ParameterId["ErrorHelpLink"] = "errorHelpLink"; - // DPI_FilterSearchQuery, having type string - ParameterId["FilterSearchQuery"] = "filterSearchQuery"; - // DPI_FromLabel, having type string - ParameterId["FromLabel"] = "fromLabel"; - // DPI_FunctionHelp, having type string - ParameterId["FunctionHelp"] = "functionHelp"; - // DPI_Instructions, having type string - ParameterId["Instructions"] = "instructions"; - // DPI_LargeUnitDisplay, having type string - ParameterId["LargeUnitDisplay"] = "largeUnitDisplay"; - // DPI_Limit, having type string - ParameterId["Limit"] = "limit"; - // DPI_ListViewNameLabel, having type string - ParameterId["ListViewNameLabel"] = "listViewNameLabel"; - // DPI_ListViewValueLabel, having type string - ParameterId["ListViewValueLabel"] = "listViewValueLabel"; - // DPI_MapScaleReadoutUnit, having type string - ParameterId["MapScaleReadoutUnit"] = "mapScaleReadoutUnit"; - // DPI_MeasureDimension, having type string - ParameterId["MeasureDimension"] = "measuresDimension"; - // DPI_MimeType, having type string - ParameterId["MimeType"] = "mimeType"; - // DPI_MinimizedName, having type string - ParameterId["MinimizedName"] = "minName"; - // DPI_NotificationMsg, having type string - ParameterId["NotificationMsg"] = "notificationMsg"; - // DPI_OperationName, having type string - ParameterId["OperationName"] = "operationName"; - // DPI_PageTitle, having type string - ParameterId["PageTitle"] = "pageTitle"; - // DPI_PatternSummary, having type string - ParameterId["PatternSummary"] = "patternSummary"; - // DPI_ReferenceLineId, having type string - ParameterId["ReferenceLineId"] = "refLineId"; - // DPI_ReferenceLinePairedId, having type string - ParameterId["ReferenceLinePairedId"] = "refLinePairedId"; - // DPI_ReplaceText, having type string - ParameterId["ReplaceText"] = "replaceText"; - // DPI_RequiredVariableMessage, having type string - ParameterId["RequiredVariableMessage"] = "requiredVariableMessage"; - // DPI_RestartEverySpecialCaption, having type string - ParameterId["RestartEverySpecialCaption"] = "restartEverySpecialCaption"; - // DPI_Root, having type string - ParameterId["Root"] = "root"; - // DPI_SelectionSummary, having type string - ParameterId["SelectionSummary"] = "selectionSummary"; - // DPI_SessionAttributeKey, having type string - ParameterId["SessionAttributeKey"] = "sessionAttributeKey"; - // DPI_SessionAttributeValue, having type string - ParameterId["SessionAttributeValue"] = "sessionAttributeValue"; - // DPI_SheetAttributeKey, having type string - ParameterId["SheetAttributeKey"] = "baseSheetAttributeKey"; - // DPI_SheetAttributeValue, having type string - ParameterId["SheetAttributeValue"] = "baseSheetAttributeValue"; - // DPI_SmallUnitDisplay, having type string - ParameterId["SmallUnitDisplay"] = "smallUnitDisplay"; - // DPI_SourceCaption, having type string - ParameterId["SourceCaption"] = "sourceCaption"; - // DPI_SrcPath, having type string - ParameterId["SrcPath"] = "srcPath"; - // DPI_StartSelectionCaption, having type string - ParameterId["StartSelectionCaption"] = "startSelectionCaption"; - // DPI_Subtitle, having type string - ParameterId["Subtitle"] = "subtitle"; - // DPI_TableauServerSiteName, having type string - ParameterId["TableauServerSiteName"] = "tableauServerSiteName"; - // DPI_TargetCaption, having type string - ParameterId["TargetCaption"] = "targetCaption"; - // DPI_ThumbnailPath, having type string - ParameterId["ThumbnailPath"] = "thumbnailPath"; - // DPI_ToLabel, having type string - ParameterId["ToLabel"] = "toLabel"; - // DPI_URLAddress, having type string - ParameterId["URLAddress"] = "urlAddress"; - // DPI_ValuesTableHeader, having type string - ParameterId["ValuesTableHeader"] = "valuesTableHeader"; - // DPI_ValuesTableHeader2, having type string - ParameterId["ValuesTableHeader2"] = "valuesTableHeader2"; - // DPI_VariableDescription, having type string - ParameterId["VariableDescription"] = "variableDescription"; - // DPI_VariableDisplayName, having type string - ParameterId["VariableDisplayName"] = "variableDisplayName"; - // DPI_VariableGUID, having type string - ParameterId["VariableGUID"] = "variableGuid"; - // DPI_VerboseName, having type string - ParameterId["VerboseName"] = "verboseName"; - // DPI_ViewId, having type string - ParameterId["ViewId"] = "viewId"; - // DPI_Warning1, having type string - ParameterId["Warning1"] = "warning1"; - // DPI_Warning2, having type string - ParameterId["Warning2"] = "warning2"; - // DPI_RefreshToken, having type string - ParameterId["RefreshToken"] = "refresh_token"; - // DPI_TokenType, having type string - ParameterId["TokenType"] = "token_type"; - // DPI_XSRFToken, having type string - ParameterId["XSRFToken"] = "xsrf_token"; - // DPI_AxisSubtitle, having type string - ParameterId["AxisSubtitle"] = "axisSubtitle"; - // DPI_AxisTitle, having type string - ParameterId["AxisTitle"] = "axisTitle"; - // DPI_TickMarkOriginDataValue, having type string - ParameterId["TickMarkOriginDataValue"] = "tickMarkOriginDataValue"; - // DPI_TickMarkSpacingDataValue, having type string - ParameterId["TickMarkSpacingDataValue"] = "tickMarkSpacingDataValue"; - // DPI_ExtractActionLocalized, having type string - ParameterId["ExtractActionLocalized"] = "extractActionLocalized"; - // DPI_ExtractSource, having type string - ParameterId["ExtractSource"] = "extractSource"; - // DPI_FileContents, having type string - ParameterId["FileContents"] = "fileContents"; - // DPI_SaveImagePath, having type string - ParameterId["SaveImagePath"] = "saveImagePath"; - // DPI_WidgetUID, having type string - ParameterId["WidgetUID"] = "widgetUniqueId"; - // DPI_DatePropertiesDisplayText, having type string - ParameterId["DatePropertiesDisplayText"] = "datePropertiesDisplayText"; - // DPI_DatePropertiesHelperText, having type string - ParameterId["DatePropertiesHelperText"] = "datePropertiesHelperText"; - // DPI_EventName, having type string - ParameterId["EventName"] = "eventName"; - // DPI_ExceptionType, having type string - ParameterId["ExceptionType"] = "exceptionType"; - // DPI_SearchPlaceholder, having type string - ParameterId["SearchPlaceholder"] = "searchPlaceholder"; - // DPI_TargetVersion, having type string - ParameterId["TargetVersion"] = "targetVersion"; - // DPI_DataValueDisplayString, having type string - ParameterId["DataValueDisplayString"] = "dataValueDisplayString"; - // DPI_DomainString, having type string - ParameterId["DomainString"] = "domainString"; - // DPI_RawDataValueString, having type string - ParameterId["RawDataValueString"] = "rawDataValueString"; - // DPI_RichTextDialogTitle, having type string - ParameterId["RichTextDialogTitle"] = "richTextDialogTitle"; - // DPI_RichTextContent, having type string - ParameterId["RichTextContent"] = "richTextContent"; - // DPI_MarkSizeAsString, having type string - ParameterId["MarkSizeAsString"] = "markSizeAsString"; - // DPI_UnitsLabel, having type string - ParameterId["UnitsLabel"] = "unitsLabel"; - // DPI_EmailAddress, having type string - ParameterId["EmailAddress"] = "emailAddress"; - // DPI_FirstName, having type string - ParameterId["FirstName"] = "firstName"; - // DPI_LastName, having type string - ParameterId["LastName"] = "lastName"; - // DPI_SummaryCardAvg, having type string - ParameterId["SummaryCardAvg"] = "summaryCardAvg"; - // DPI_SummaryCardCaption, having type string - ParameterId["SummaryCardCaption"] = "summaryCardCaption"; - // DPI_SummaryCardCount, having type string - ParameterId["SummaryCardCount"] = "summaryCardCount"; - // DPI_SummaryCardKurtosis, having type string - ParameterId["SummaryCardKurtosis"] = "summaryCardKurtosis"; - // DPI_SummaryCardMax, having type string - ParameterId["SummaryCardMax"] = "summaryCardMax"; - // DPI_SummaryCardMedian, having type string - ParameterId["SummaryCardMedian"] = "summaryCardMedian"; - // DPI_SummaryCardMin, having type string - ParameterId["SummaryCardMin"] = "summaryCardMin"; - // DPI_SummaryCardQuart1, having type string - ParameterId["SummaryCardQuart1"] = "summaryCardQuart1"; - // DPI_SummaryCardQuart3, having type string - ParameterId["SummaryCardQuart3"] = "summaryCardQuart3"; - // DPI_SummaryCardSkewness, having type string - ParameterId["SummaryCardSkewness"] = "summaryCardSkewness"; - // DPI_SummaryCardStdev, having type string - ParameterId["SummaryCardStdev"] = "summaryCardStdev"; - // DPI_SummaryCardSum, having type string - ParameterId["SummaryCardSum"] = "summaryCardSum"; - // DPI_ValueClassAttr, having type string - ParameterId["ValueClassAttr"] = "valueClassAttr"; - // DPI_AuthenticationSummary, having type string - ParameterId["AuthenticationSummary"] = "authenticationSummary"; - // DPI_BtnCancelText, having type string - ParameterId["BtnCancelText"] = "btnCancelText"; - // DPI_BtnOkText, having type string - ParameterId["BtnOkText"] = "btnOkText"; - // DPI_ButtonText, having type string - ParameterId["ButtonText"] = "buttonText"; - // DPI_CalculationCaption, having type string - ParameterId["CalculationCaption"] = "calculationCaption"; - // DPI_CalculationDependencies, having type string - ParameterId["CalculationDependencies"] = "calculationDependencies"; - // DPI_CalculationFormula, having type string - ParameterId["CalculationFormula"] = "calculationFormula"; - // DPI_CheckPublishMessage, having type string - ParameterId["CheckPublishMessage"] = "checkPublishSummary"; - // DPI_ClusterModelText, having type string - ParameterId["ClusterModelText"] = "clusterModelText"; - // DPI_ClusterSummaryScaledText, having type string - ParameterId["ClusterSummaryScaledText"] = "clusterSummaryScaledText"; - // DPI_ClusterSummaryText, having type string - ParameterId["ClusterSummaryText"] = "clusterSummaryText"; - // DPI_ColumnCaption, having type string - ParameterId["ColumnCaption"] = "columnCaption"; - // DPI_DatasourceCaption, having type string - ParameterId["DatasourceCaption"] = "datasourceCaption"; - // DPI_DefaultCaption, having type string - ParameterId["DefaultCaption"] = "defaultCaption"; - // DPI_DisplayString, having type string - ParameterId["DisplayString"] = "displayText"; - // DPI_DragDescription, having type string - ParameterId["DragDescription"] = "dragDescription"; - // DPI_ExceptionMessage, having type string - ParameterId["ExceptionMessage"] = "exceptionMessage"; - // DPI_Explanation, having type string - ParameterId["Explanation"] = "explanation"; - // DPI_FieldCaption, having type string - ParameterId["FieldCaption"] = "fieldCaption"; - // DPI_FieldSummary, having type string - ParameterId["FieldSummary"] = "fieldSummary"; - // DPI_FieldSummaryLabel, having type string - ParameterId["FieldSummaryLabel"] = "fieldSummaryLabel"; - // DPI_FilterDescription, having type string - ParameterId["FilterDescription"] = "filterDescription"; - // DPI_FilterName, having type string - ParameterId["FilterName"] = "filterName"; - // DPI_ForecastModelText, having type string - ParameterId["ForecastModelText"] = "forecastModelText"; - // DPI_ForecastSummaryPctText, having type string - ParameterId["ForecastSummaryPctText"] = "forecastSummaryPctText"; - // DPI_ForecastSummaryText, having type string - ParameterId["ForecastSummaryText"] = "forecastSummaryText"; - // DPI_HasActiveExtractText, having type string - ParameterId["HasActiveExtractText"] = "hasActiveExtractText"; - // DPI_HtmlColor, having type string - ParameterId["HtmlColor"] = "htmlColor"; - // DPI_IncludeLocalFilesCheckedWarning, having type string - ParameterId["IncludeLocalFilesCheckedWarning"] = "includeLocalFilesCheckedWarning"; - // DPI_IncludeLocalFilesWarning, having type string - ParameterId["IncludeLocalFilesWarning"] = "includeLocalFilesWarning"; - // DPI_InvalidFieldCaption, having type string - ParameterId["InvalidFieldCaption"] = "invalidFieldCaption"; - // DPI_LimitSummary, having type string - ParameterId["LimitSummary"] = "limitSummary"; - // DPI_LoadedExistingObjectWarning, having type string - ParameterId["LoadedExistingObjectWarning"] = "loadedExistingObjectWarning"; - // DPI_ManageDatasourcesSummary, having type string - ParameterId["ManageDatasourcesSummary"] = "manageDatasourcesSummary"; - // DPI_ModalDialog, having type string - ParameterId["ModalDialog"] = "modalDialog"; - // DPI_NewDatasourceCaption, having type string - ParameterId["NewDatasourceCaption"] = "newDatasourceCaption"; - // DPI_PermissionsButtonLabel, having type string - ParameterId["PermissionsButtonLabel"] = "permissionsButtonLabel"; - // DPI_PermissionsEditorRoleId, having type string - ParameterId["PermissionsEditorRoleId"] = "permissionsEditorRoleId"; - // DPI_PermissionsLabel, having type string - ParameterId["PermissionsLabel"] = "permissionsLabel"; - // DPI_PerspectiveCaption, having type string - ParameterId["PerspectiveCaption"] = "perspectiveCaption"; - // DPI_PublishButtonLabel, having type string - ParameterId["PublishButtonLabel"] = "publishButtonLabel"; - // DPI_PublishChoiceLabel, having type string - ParameterId["PublishChoiceLabel"] = "publishChoiceLabel"; - // DPI_PublishObjectViewsSummary, having type string - ParameterId["PublishObjectViewsSummary"] = "publishObjectViewsSummary"; - // DPI_QualifiedFieldCaption, having type string - ParameterId["QualifiedFieldCaption"] = "qualifiedFieldCaption"; - // DPI_RelationshipTooltipText, having type string - ParameterId["RelationshipTooltipText"] = "relationshipTooltipText"; - // DPI_ResetObjectAttributesWarning, having type string - ParameterId["ResetObjectAttributesWarning"] = "resetObjectAttributesWarning"; - // DPI_RowCountCaption, having type string - ParameterId["RowCountCaption"] = "rowCountCaption"; - // DPI_ServerCaption, having type string - ParameterId["ServerCaption"] = "serverCaption"; - // DPI_SizeModeName, having type string - ParameterId["SizeModeName"] = "sizeModeName"; - // DPI_SummaryText, having type string - ParameterId["SummaryText"] = "summaryText"; - // DPI_SyncClientUseExtractLabel, having type string - ParameterId["SyncClientUseExtractLabel"] = "syncClientUseExtractLabel"; - // DPI_Text, having type string - ParameterId["Text"] = "text"; - // DPI_TextDropdownControlLabel, having type string - ParameterId["TextDropdownControlLabel"] = "controlLabel"; - // DPI_ThumbnailUserName, having type string - ParameterId["ThumbnailUserName"] = "thumbnailUserName"; - // DPI_TitleString, having type string - ParameterId["TitleString"] = "titleString"; - // DPI_TooltipText, having type string - ParameterId["TooltipText"] = "tooltipText"; - // DPI_UpdatedCalcCaption, having type string - ParameterId["UpdatedCalcCaption"] = "updatedCalculationCaption"; - // DPI_UpdatedCalcFormula, having type string - ParameterId["UpdatedCalcFormula"] = "updatedCalculationFormula"; - // DPI_UserCaption, having type string - ParameterId["UserCaption"] = "userCaption"; - // DPI_WarningTooltipText, having type string - ParameterId["WarningTooltipText"] = "warningTooltipText"; - // DPI_DatasourceFile, having type string - ParameterId["DatasourceFile"] = "datasourceFile"; - // DPI_File, having type string - ParameterId["File"] = "file"; - // DPI_FileNameBase, having type string - ParameterId["FileNameBase"] = "filenameBase"; - // DPI_NewFile, having type string - ParameterId["NewFile"] = "newFile"; - // DPI_OriginalFile, having type string - ParameterId["OriginalFile"] = "originalFile"; - // DPI_OutputFile, having type string - ParameterId["OutputFile"] = "outputFile"; - // DPI_SampleFileName, having type string - ParameterId["SampleFileName"] = "sampleFilename"; - // DPI_WorkbookFile, having type string - ParameterId["WorkbookFile"] = "workbookFile"; - // DPI_ImageKey, having type string - ParameterId["ImageKey"] = "imageKey"; - // DPI_OverlayImageKey, having type string - ParameterId["OverlayImageKey"] = "overlayImageKey"; - // DPI_TempFileKey, having type string - ParameterId["TempFileKey"] = "tempfileKey"; - // DPI_CapturedSheet, having type string - ParameterId["CapturedSheet"] = "capturedSheet"; - // DPI_CurrentSheet, having type string - ParameterId["CurrentSheet"] = "currentSheet"; - // DPI_Dashboard, having type string - ParameterId["Dashboard"] = "dashboard"; - // DPI_EnsureSheet, having type string - ParameterId["EnsureSheet"] = "ensureSheetName"; - // DPI_NewSheet, having type string - ParameterId["NewSheet"] = "newSheet"; - // DPI_Sheet, having type string - ParameterId["Sheet"] = "sheet"; - // DPI_SheetName, having type string - ParameterId["SheetName"] = "sheetName"; - // DPI_SourceDashboard, having type string - ParameterId["SourceDashboard"] = "sourceDashboard"; - // DPI_SourceSheet, having type string - ParameterId["SourceSheet"] = "sourceSheet"; - // DPI_TargetSheet, having type string - ParameterId["TargetSheet"] = "targetSheet"; - // DPI_WorkbookName, having type string - ParameterId["WorkbookName"] = "workbookName"; - // DPI_Worksheet, having type string - ParameterId["Worksheet"] = "worksheet"; - // DPI_BaseViewThumbLink, having type string - ParameterId["BaseViewThumbLink"] = "baseViewThumbLink"; - // DPI_BlogLink, having type string - ParameterId["BlogLink"] = "blogLink"; - // DPI_CacheUrl, having type string - ParameterId["CacheUrl"] = "cacheUrl"; - // DPI_DownloadLink, having type string - ParameterId["DownloadLink"] = "downloadLink"; - // DPI_RepositoryUrl, having type string - ParameterId["RepositoryUrl"] = "repositoryUrl"; - // DPI_ShareLink, having type string - ParameterId["ShareLink"] = "shareLink"; - // DPI_URL, having type string - ParameterId["URL"] = "url"; - // DPI_ClusterModelHtml, having type string - ParameterId["ClusterModelHtml"] = "clusterModelHtml"; - // DPI_ClusterSummaryHtml, having type string - ParameterId["ClusterSummaryHtml"] = "clusterSummaryHtml"; - // DPI_ClusterSummaryScaledHtml, having type string - ParameterId["ClusterSummaryScaledHtml"] = "clusterSummaryScaledHtml"; - // DPI_FieldDescription, having type string - ParameterId["FieldDescription"] = "fieldDescription"; - // DPI_ForecastModelHtml, having type string - ParameterId["ForecastModelHtml"] = "forecastModelHtml"; - // DPI_ForecastSummaryHtml, having type string - ParameterId["ForecastSummaryHtml"] = "forecastSummaryHtml"; - // DPI_ForecastSummaryPctHtml, having type string - ParameterId["ForecastSummaryPctHtml"] = "forecastSummaryPctHtml"; - // DPI_Html, having type string - ParameterId["Html"] = "html"; - // DPI_HtmlSelection, having type string - ParameterId["HtmlSelection"] = "htmlSelection"; - // DPI_HtmlTooltip, having type string - ParameterId["HtmlTooltip"] = "htmlTooltip"; - // DPI_TitleHtml, having type string - ParameterId["TitleHtml"] = "titleHtml"; - // DPI_CacheUrlInfoJson, having type string - ParameterId["CacheUrlInfoJson"] = "cacheUrlInfoJson"; - // DPI_FilterSearchJson, having type string - ParameterId["FilterSearchJson"] = "filterSearchJson"; - // DPI_FilterSearchWithIndexJson, having type string - ParameterId["FilterSearchWithIndexJson"] = "filterSearchWithIndexJson"; - // DPI_FilterShowChildrenJson, having type string - ParameterId["FilterShowChildrenJson"] = "filterShowChildrenJson"; - // DPI_FiltersJson, having type string - ParameterId["FiltersJson"] = "filtersJson"; - // DPI_FrameJson, having type string - ParameterId["FrameJson"] = "frameJson"; - // DPI_GeometryJson, having type string - ParameterId["GeometryJson"] = "geometryJson"; - // DPI_GetFilterItemsJson, having type string - ParameterId["GetFilterItemsJson"] = "getFilterItemsJson"; - // DPI_KeepOnlyResponseJson, having type string - ParameterId["KeepOnlyResponseJson"] = "keepOnlyResponseJson"; - // DPI_MenuCommandsJson, having type string - ParameterId["MenuCommandsJson"] = "menuCommandsJson"; - // DPI_ModifiedSheetsJson, having type string - ParameterId["ModifiedSheetsJson"] = "modifiedSheetsJson"; - // DPI_ParameterCtrlJson, having type string - ParameterId["ParameterCtrlJson"] = "parameterCtrlJson"; - // DPI_ViewJson, having type string - ParameterId["ViewJson"] = "viewJson"; - // DPI_CustomizedViewXML, having type string - ParameterId["CustomizedViewXML"] = "customizedViewXml"; - // DPI_DatasourceDeltaXML, having type string - ParameterId["DatasourceDeltaXML"] = "datasourceDeltaXml"; - // DPI_DatasourceXML, having type string - ParameterId["DatasourceXML"] = "datasourceXml"; - // DPI_KeychainXML, having type string - ParameterId["KeychainXML"] = "keychainXml"; - // DPI_PermissionsModelXML, having type string - ParameterId["PermissionsModelXML"] = "permissionsModelXml"; - // DPI_SharedViewsXML, having type string - ParameterId["SharedViewsXML"] = "sharedViewsXml"; - // DPI_TargetURL, having type string - ParameterId["TargetURL"] = "targetUrl"; - // DPI_Anchor, having type string - ParameterId["Anchor"] = "anchor"; - // DPI_CenterValue, having type string - ParameterId["CenterValue"] = "centerValue"; - // DPI_ComputedBinSize, having type string - ParameterId["ComputedBinSize"] = "computedBinSize"; - // DPI_ConstantValue, having type string - ParameterId["ConstantValue"] = "constantValue"; - // DPI_PairedConstantValue, having type string - ParameterId["PairedConstantValue"] = "pairedConstantValue"; - // DPI_CountDistinct, having type string - ParameterId["CountDistinct"] = "countDistinct"; - // DPI_DataMax, having type string - ParameterId["DataMax"] = "dataMax"; - // DPI_DataMin, having type string - ParameterId["DataMin"] = "dataMin"; - // DPI_DataValueString, having type string - ParameterId["DataValueString"] = "dataValueStr"; - // DPI_EndValue, having type string - ParameterId["EndValue"] = "endValue"; - // DPI_RangeMax, having type string - ParameterId["RangeMax"] = "rangeMax"; - // DPI_RangeMin, having type string - ParameterId["RangeMin"] = "rangeMin"; - // DPI_RangeStepSize, having type string - ParameterId["RangeStepSize"] = "rangeStepSize"; - // DPI_StartValue, having type string - ParameterId["StartValue"] = "startValue"; - // DPI_TargetValue, having type string - ParameterId["TargetValue"] = "targetValue"; - // DPI_ValueInc, having type string - ParameterId["ValueInc"] = "valueInc"; - // DPI_ValueMax, having type string - ParameterId["ValueMax"] = "valueMax"; - // DPI_ValueMin, having type string - ParameterId["ValueMin"] = "valueMin"; - // DPI_QuantilesValue, having type string - ParameterId["QuantilesValue"] = "quantilesValue"; - // DPI_UserInputBinSize, having type string - ParameterId["UserInputBinSize"] = "userBinSize"; - // DPI_AddedDataSources, having type string[] - ParameterId["AddedDataSources"] = "addedDataSourceNames"; - // DPI_AddressingCaptions, having type string[] - ParameterId["AddressingCaptions"] = "addressingCaptions"; - // DPI_AggregationCaptions, having type string[] - ParameterId["AggregationCaptions"] = "aggregationCaptions"; - // DPI_AtTheLevelCaptions, having type string[] - ParameterId["AtTheLevelCaptions"] = "atTheLevelCaptions"; - // DPI_AuthenticationSettingLabels, having type string[] - ParameterId["AuthenticationSettingLabels"] = "authenticationSettingLabels"; - // DPI_AutosaveFileIdsVector, having type string[] - ParameterId["AutosaveFileIdsVector"] = "autosaveFileIdsVector"; - // DPI_ChangedTuples, having type string[] - ParameterId["ChangedTuples"] = "changedTuples"; - // DPI_CharsetsAvailable, having type string[] - ParameterId["CharsetsAvailable"] = "charsetsAvailable"; - // DPI_CharsetDisplayNames, having type string[] - ParameterId["CharsetDisplayNames"] = "charsetDisplayNames"; - // DPI_ColorFactors, having type string[] - ParameterId["ColorFactors"] = "colorFactors"; - // DPI_ColumnFullNames, having type string[] - ParameterId["ColumnFullNames"] = "columnFullNames"; - // DPI_ConnectionNames, having type string[] - ParameterId["ConnectionNames"] = "connectionNames"; - // DPI_ConnectionCaptions, having type string[] - ParameterId["ConnectionCaptions"] = "connectionCaptions"; - // DPI_ConnectionBigQueryLegacySQLCheckBox, having type string[] - ParameterId["ConnectionBigQueryLegacySQLCheckBox"] = "connectionBigqueryLegacySqlCheckbox"; - // DPI_CustomFieldOrder, having type string[] - ParameterId["CustomFieldOrder"] = "customFieldOrder"; - // DPI_DataSourceClasses, having type string[] - ParameterId["DataSourceClasses"] = "dataSourceClasses"; - // DPI_DataSourceNames, having type string[] - ParameterId["DataSourceNames"] = "dataSourceNames"; - // DPI_DataSourceNames2, having type string[] - ParameterId["DataSourceNames2"] = "dataSourceNames2"; - // DPI_DataSourcesWithEmptyRelation, having type string[] - ParameterId["DataSourcesWithEmptyRelation"] = "dataSourcesWithEmptyRelation"; - // DPI_DateFormats, having type string[] - ParameterId["DateFormats"] = "dateFormats"; - // DPI_DayNames, having type string[] - ParameterId["DayNames"] = "dayNames"; - // DPI_DrillPathVector, having type string[] - ParameterId["DrillPathVector"] = "drillpathVector"; - // DPI_ErrorDetails, having type string[] - ParameterId["ErrorDetails"] = "errorDetails"; - // DPI_ErrorExtraDetails, having type string[] - ParameterId["ErrorExtraDetails"] = "errorExtraDetails"; - // DPI_ExceptionMessageParams, having type string[] - ParameterId["ExceptionMessageParams"] = "exceptionMessageParams"; - // DPI_ExcludedSheets, having type string[] - ParameterId["ExcludedSheets"] = "excludeSheets"; - // DPI_FieldDisplayNames, having type string[] - ParameterId["FieldDisplayNames"] = "fieldDisplayNames"; - // DPI_FieldFolderVector, having type string[] - ParameterId["FieldFolderVector"] = "fieldFolderVector"; - // DPI_FileIds, having type string[] - ParameterId["FileIds"] = "fileIds"; - // DPI_FilePaths, having type string[] - ParameterId["FilePaths"] = "filePaths"; - // DPI_FileNames, having type string[] - ParameterId["FileNames"] = "fileNames"; - // DPI_FilterAdd, having type string[] - ParameterId["FilterAdd"] = "filterAdd"; - // DPI_FilterAliases, having type string[] - ParameterId["FilterAliases"] = "filterValues"; - // DPI_FilterRemove, having type string[] - ParameterId["FilterRemove"] = "filterRemove"; - // DPI_FixedCaptions, having type string[] - ParameterId["FixedCaptions"] = "fixedCaptions"; - // DPI_FontFamilies, having type string[] - ParameterId["FontFamilies"] = "fontFamilies"; - // DPI_FormatStrings, having type string[] - ParameterId["FormatStrings"] = "formatStrings"; - // DPI_FormattedValues, having type string[] - ParameterId["FormattedValues"] = "formattedValues"; - // DPI_FoundTuples, having type string[] - ParameterId["FoundTuples"] = "foundTuples"; - // DPI_FullSchedulesLabels, having type string[] - ParameterId["FullSchedulesLabels"] = "fullSchedulesLabels"; - // DPI_ImageResourceList, having type string[] - ParameterId["ImageResourceList"] = "imageResources"; - // DPI_IncludeList, having type string[] - ParameterId["IncludeList"] = "includeList"; - // DPI_IncrSchedulesLabels, having type string[] - ParameterId["IncrSchedulesLabels"] = "incrSchedulesLabels"; - // DPI_InvalidDates, having type string[] - ParameterId["InvalidDates"] = "invalidDates"; - // DPI_InvalidValues, having type string[] - ParameterId["InvalidValues"] = "invalidValues"; - // DPI_ItemValues, having type string[] - ParameterId["ItemValues"] = "itemValues"; - // DPI_JoinEditableProps, having type string[] - ParameterId["JoinEditableProps"] = "joinEditableProps"; - // DPI_JoinFieldCaptions, having type string[] - ParameterId["JoinFieldCaptions"] = "joinFieldCaptions"; - // DPI_LocaleOptions, having type string[] - ParameterId["LocaleOptions"] = "localeOptions"; - // DPI_LocaleDisplayNames, having type string[] - ParameterId["LocaleDisplayNames"] = "localeDisplayNames"; - // DPI_MapBoxStyleMaps, having type string[] - ParameterId["MapBoxStyleMaps"] = "mapboxStyleMaps"; - // DPI_MapConnectionErrorDetails, having type string[] - ParameterId["MapConnectionErrorDetails"] = "mapConnectionErrorDetails"; - // DPI_SheetNames, having type string[] - ParameterId["SheetNames"] = "sheetNames"; - // DPI_MapSourceNames, having type string[] - ParameterId["MapSourceNames"] = "mapSourceNames"; - // DPI_MarkGeometries, having type string[] - ParameterId["MarkGeometries"] = "markGeometries"; - // DPI_MenuItems, having type string[] - ParameterId["MenuItems"] = "menuItems"; - // DPI_Modes, having type string[] - ParameterId["Modes"] = "modes"; - // DPI_MonthNames, having type string[] - ParameterId["MonthNames"] = "monthNames"; - // DPI_NumberFormats, having type string[] - ParameterId["NumberFormats"] = "numberFormats"; - // DPI_ObjectTextIDs, having type string[] - ParameterId["ObjectTextIDs"] = "objectTextIds"; - // DPI_OldExtracts, having type string[] - ParameterId["OldExtracts"] = "oldExtracts"; - // DPI_OrderingTypeCaptions, having type string[] - ParameterId["OrderingTypeCaptions"] = "orderingTypeCaptions"; - // DPI_PageNames, having type string[] - ParameterId["PageNames"] = "pageNames"; - // DPI_PaneDescriptorKeys, having type string[] - ParameterId["PaneDescriptorKeys"] = "paneDescriptorKeys"; - // DPI_ParamCaptions, having type string[] - ParameterId["ParamCaptions"] = "paramCaptions"; - // DPI_PrecannedDataValues, having type string[] - ParameterId["PrecannedDataValues"] = "precannedDataValues"; - // DPI_PublishChoiceLabels, having type string[] - ParameterId["PublishChoiceLabels"] = "publishChoiceLabels"; - // DPI_RankTypeCaptions, having type string[] - ParameterId["RankTypeCaptions"] = "rankTypeCaptions"; - // DPI_RecentTags, having type string[] - ParameterId["RecentTags"] = "recentTags"; - // DPI_RelativeCaptions, having type string[] - ParameterId["RelativeCaptions"] = "relativeCaptions"; - // DPI_RemovedDataSources, having type string[] - ParameterId["RemovedDataSources"] = "removedDataSourceNames"; - // DPI_RepresentativeTuple, having type string[] - ParameterId["RepresentativeTuple"] = "representativeTuple"; - // DPI_RestartEveryCaptions, having type string[] - ParameterId["RestartEveryCaptions"] = "restartEveryCaptions"; - // DPI_SchemaMemberGlobalNames, having type string[] - ParameterId["SchemaMemberGlobalNames"] = "schemaMemberGlobalNames"; - // DPI_SelectValuesList, having type string[] - ParameterId["SelectValuesList"] = "selectValues"; - // DPI_SelectionValueList, having type string[] - ParameterId["SelectionValueList"] = "selectionValueList"; - // DPI_SortAggCaptions, having type string[] - ParameterId["SortAggCaptions"] = "sortAggCaptions"; - // DPI_SortDirectionCaptions, having type string[] - ParameterId["SortDirectionCaptions"] = "sortDirectionCaptions"; - // DPI_SortFieldCaptions, having type string[] - ParameterId["SortFieldCaptions"] = "sortFieldCaptions"; - // DPI_SortFieldNameVector, having type string[] - ParameterId["SortFieldNameVector"] = "sortFieldnameVector"; - // DPI_SupportedJoinOperators, having type string[] - ParameterId["SupportedJoinOperators"] = "supportedJoinOperators"; - // DPI_TableCalcTypeCaptions, having type string[] - ParameterId["TableCalcTypeCaptions"] = "tableCalcTypeCaptions"; - // DPI_Tags, having type string[] - ParameterId["Tags"] = "tags"; - // DPI_TermVec, having type string[] - ParameterId["TermVec"] = "termVector"; - // DPI_UIAutomationList, having type string[] - ParameterId["UIAutomationList"] = "uiAutomationList"; - // DPI_ReferenceLineValidCustomLabelTags, having type string[] - ParameterId["ReferenceLineValidCustomLabelTags"] = "validReferenceLineCustomLabelTags"; - // DPI_LocalizedKeywords, having type string[] - ParameterId["LocalizedKeywords"] = "localizedKeywords"; - // DPI_AvailableCalendars, having type string[] - ParameterId["AvailableCalendars"] = "availableCalendars"; - // DPI_SheetsToBeDeletedOrHidden, having type string[] - ParameterId["SheetsToBeDeletedOrHidden"] = "sheetsToBeDeletedOrHidden"; - // DPI_AddSheets, having type string[] - ParameterId["AddSheets"] = "addSheets"; - // DPI_NamesOfSubsheets, having type string[] - ParameterId["NamesOfSubsheets"] = "namesOfSubsheets"; - // DPI_RemoveSheets, having type string[] - ParameterId["RemoveSheets"] = "removeSheets"; - // DPI_ScrollOffsetSheets, having type string[] - ParameterId["ScrollOffsetSheets"] = "scrollOffsetSheets"; - // DPI_Sheets, having type string[] - ParameterId["Sheets"] = "sheets"; - // DPI_SourceWorksheets, having type string[] - ParameterId["SourceWorksheets"] = "sourceWorksheets"; - // DPI_TargetExcludes, having type string[] - ParameterId["TargetExcludes"] = "targetExclude"; - // DPI_TargetWorksheets, having type string[] - ParameterId["TargetWorksheets"] = "targetWorksheets"; - // DPI_TileURLs, having type string[] - ParameterId["TileURLs"] = "tileUrls"; - // DPI_Details, having type string[] - ParameterId["Details"] = "details"; - // DPI_FieldCaptions, having type string[] - ParameterId["FieldCaptions"] = "fieldCaptions"; - // DPI_HighlightCaptions, having type string[] - ParameterId["HighlightCaptions"] = "highlightCaptions"; - // DPI_LevelCaptions, having type string[] - ParameterId["LevelCaptions"] = "levelCaptions"; - // DPI_LevelLeafValues, having type string[] - ParameterId["LevelLeafValues"] = "levelLeafValues"; - // DPI_SubstitutionVariables, having type string[] - ParameterId["SubstitutionVariables"] = "substitutionVariables"; - // DPI_SubstitutionVariableValues, having type string[] - ParameterId["SubstitutionVariableValues"] = "substitutionVariableValues"; - // DPI_HtmlTooltips, having type string[] - ParameterId["HtmlTooltips"] = "htmlTooltips"; - // DPI_InvalidFields, having type string[] - ParameterId["InvalidFields"] = "invalidFields"; - // DPI_NamesOfColumns, having type string[] - ParameterId["NamesOfColumns"] = "namesOfColumns"; - // DPI_NamesOfFields, having type string[] - ParameterId["NamesOfFields"] = "namesOfFields"; - // DPI_ReferencedDatasources, having type string[] - ParameterId["ReferencedDatasources"] = "referencedDataSourceList"; - // DPI_CSSAttrs, having type Dictionary(of string) - ParameterId["CSSAttrs"] = "cssAttrs"; - // DPI_DataSourceMap, having type Dictionary(of string) - ParameterId["DataSourceMap"] = "dataSourceMap"; - // DPI_EventParameters, having type Dictionary(of string) - ParameterId["EventParameters"] = "eventParameters"; - // DPI_ExceptionAttrs, having type Dictionary(of string) - ParameterId["ExceptionAttrs"] = "exceptionAttrs"; - // DPI_InvalidSheetMessage, having type Dictionary(of string) - ParameterId["InvalidSheetMessage"] = "invalidSheetMessages"; - // DPI_MapBoxDefaultStyle, having type Dictionary(of string) - ParameterId["MapBoxDefaultStyle"] = "mapboxDefaultStyles"; - // DPI_PaneFormattings, having type Dictionary(of string) - ParameterId["PaneFormattings"] = "paneFormattings"; - // DPI_SourceNameWithCaption, having type Dictionary(of string) - ParameterId["SourceNameWithCaption"] = "sourceNameWithCaption"; - // DPI_ConnectionColorMap, having type Dictionary(of string) - ParameterId["ConnectionColorMap"] = "connectionColorMap"; - // DPI_TargetNameWithCaption, having type Dictionary(of string) - ParameterId["TargetNameWithCaption"] = "targetNameWithCaption"; - // DPI_ViewIds, having type Dictionary(of string) - ParameterId["ViewIds"] = "viewIds"; - // DPI_AddInSettings, having type Dictionary(of string) - ParameterId["AddInSettings"] = "addInSettings"; - // DPI_DatasourceIcons, having type Dictionary(of string) - ParameterId["DatasourceIcons"] = "datasourceIcons"; - // DPI_FormattedText, having type string - ParameterId["FormattedText"] = "formattedText"; - // DPI_IconTooltip, having type string - ParameterId["IconTooltip"] = "iconTooltip"; - // DPI_Title, having type string - ParameterId["Title"] = "title"; - // DPI_Tooltip, having type string - ParameterId["Tooltip"] = "tooltip"; - // DPI_ZoneText, having type string - ParameterId["ZoneText"] = "zoneText"; - // DPI_AlignmentFlags, having type int - ParameterId["AlignmentFlags"] = "alignmentFlags"; - // DPI_AlphaLevel, having type int - ParameterId["AlphaLevel"] = "alphaLevel"; - // DPI_AnovaDF, having type int - ParameterId["AnovaDF"] = "anovaDf"; - // DPI_AtTheLevelIndex, having type int - ParameterId["AtTheLevelIndex"] = "atTheLevelIndex"; - // DPI_AutomaticDrillIdxInVector, having type int - ParameterId["AutomaticDrillIdxInVector"] = "automaticDrillIdxVector"; - // DPI_AutoSize, having type int - ParameterId["AutoSize"] = "automaticSize"; - // DPI_BaseCoord, having type int - ParameterId["BaseCoord"] = "baseCoord"; - // DPI_CalcEditorCursorPosPostDrop, having type int - ParameterId["CalcEditorCursorPosPostDrop"] = "calcEditorCursorPosPostDrop"; - // DPI_CalcEditorDropPos, having type int - ParameterId["CalcEditorDropPos"] = "calcEditorDropPos"; - // DPI_CalcEditorTextSelectionEndPos, having type int - ParameterId["CalcEditorTextSelectionEndPos"] = "calcEditorTextSelectionEndPos"; - // DPI_CalcEditorTextSelectionStartPos, having type int - ParameterId["CalcEditorTextSelectionStartPos"] = "calcEditorTextSelectionStartPos"; - // DPI_CategoricalBinId, having type int - ParameterId["CategoricalBinId"] = "categoricalBinId"; - // DPI_CategoricalFindControllerId, having type int - ParameterId["CategoricalFindControllerId"] = "categoricalFindControllerId"; - // DPI_ClauseToModifyIndex, having type int - ParameterId["ClauseToModifyIndex"] = "clauseToModifyIndex"; - // DPI_ClientRenderPixelLimit, having type int - ParameterId["ClientRenderPixelLimit"] = "clientRenderPixelLimit"; - // DPI_ColCount, having type int - ParameterId["ColCount"] = "colCount"; - // DPI_ColWidth, having type int - ParameterId["ColWidth"] = "colWidth"; - // DPI_ColumnLevels, having type int - ParameterId["ColumnLevels"] = "columnLevels"; - // DPI_ColumnNumber, having type int - ParameterId["ColumnNumber"] = "columnNumber"; - // DPI_ColumnWidth, having type int - ParameterId["ColumnWidth"] = "columnWidth"; - // DPI_ContentHeight, having type int - ParameterId["ContentHeight"] = "contentH"; - // DPI_ContentWidth, having type int - ParameterId["ContentWidth"] = "contentW"; - // DPI_ContentX, having type int - ParameterId["ContentX"] = "contentX"; - // DPI_ContentY, having type int - ParameterId["ContentY"] = "contentY"; - // DPI_Coordinate, having type int - ParameterId["Coordinate"] = "coord"; - // DPI_CurDateAgg, having type int - ParameterId["CurDateAgg"] = "curDateAgg"; - // DPI_CurrentCustViewId, having type int - ParameterId["CurrentCustViewId"] = "currentCustomViewId"; - // DPI_CustomSplitCharacterCountSeparator, having type int - ParameterId["CustomSplitCharacterCountSeparator"] = "customSplitCharacterCountSeparator"; - // DPI_CustomSplitDesiredSplitCount, having type int - ParameterId["CustomSplitDesiredSplitCount"] = "customSplitDesiredSplitCount"; - // DPI_DashboardGridSize, having type int - ParameterId["DashboardGridSize"] = "dashboardGridSize"; - // DPI_DataIndex, having type int - ParameterId["DataIndex"] = "dataIndex"; - // DPI_DecimalPlaces, having type int - ParameterId["DecimalPlaces"] = "decimalPlaces"; - // DPI_DeltaTime, having type int - ParameterId["DeltaTime"] = "deltaTime"; - // DPI_DestPix, having type int - ParameterId["DestPix"] = "destPix"; - // DPI_DeviceIndex, having type int - ParameterId["DeviceIndex"] = "deviceIndex"; - // DPI_Duration, having type int - ParameterId["Duration"] = "duration"; - // DPI_EndPtX, having type int - ParameterId["EndPtX"] = "endX"; - // DPI_EndPtY, having type int - ParameterId["EndPtY"] = "endY"; - // DPI_ErrorLen, having type int - ParameterId["ErrorLen"] = "lengthOfCalcOfError"; - // DPI_ErrorPos, having type int - ParameterId["ErrorPos"] = "startPositionForError"; - // DPI_ExceptionErrorMessageId, having type int - ParameterId["ExceptionErrorMessageId"] = "exceptionErrorMessageId"; - // DPI_ExtentsH, having type int - ParameterId["ExtentsH"] = "extentsHeight"; - // DPI_ExtentsW, having type int - ParameterId["ExtentsW"] = "extentsWidth"; - // DPI_ExtentsX, having type int - ParameterId["ExtentsX"] = "extentsX"; - // DPI_ExtentsY, having type int - ParameterId["ExtentsY"] = "extentsY"; - // DPI_FieldIndex, having type int - ParameterId["FieldIndex"] = "fieldIndex"; - // DPI_FieldNameId, having type int - ParameterId["FieldNameId"] = "fieldNameId"; - // DPI_FirstDayOfWeek, having type int - ParameterId["FirstDayOfWeek"] = "firstDayOfWeek"; - // DPI_FirstValueIndex, having type int - ParameterId["FirstValueIndex"] = "firstValueIndex"; - // DPI_FixedSizePresetIndex, having type int - ParameterId["FixedSizePresetIndex"] = "fixedSizePresetIndex"; - // DPI_FocusItemIndex, having type int - ParameterId["FocusItemIndex"] = "focusItemIndex"; - // DPI_FontSize, having type int - ParameterId["FontSize"] = "fontSize"; - // DPI_ForecastIntRangeEnd, having type int - ParameterId["ForecastIntRangeEnd"] = "forecastIntRangeEnd"; - // DPI_ForecastIntRangeStart, having type int - ParameterId["ForecastIntRangeStart"] = "forecastIntRangeStart"; - // DPI_FunctionHelpIndex, having type int - ParameterId["FunctionHelpIndex"] = "functionHelpIndex"; - // DPI_GeographicSearchMaxResults, having type int - ParameterId["GeographicSearchMaxResults"] = "geographicSearchMaxResults"; - // DPI_Height, having type int - ParameterId["Height"] = "h"; - // DPI_HierarchyLevel, having type int - ParameterId["HierarchyLevel"] = "hierarchyLevel"; - // DPI_HierarchyLevelLoaded, having type int - ParameterId["HierarchyLevelLoaded"] = "hierarchyLevelLoaded"; - // DPI_HierarchyLevelMinimum, having type int - ParameterId["HierarchyLevelMinimum"] = "hierarchyLevelMinimum"; - // DPI_HierarchyLoadLimit, having type int - ParameterId["HierarchyLoadLimit"] = "hierarchyLoadLimit"; - // DPI_HierarchySelectControllerId, having type int - ParameterId["HierarchySelectControllerId"] = "hierarchySelectControllerId"; - // DPI_HorzTextCell, having type int - ParameterId["HorzTextCell"] = "horzTextCell"; - // DPI_ImageIndex, having type int - ParameterId["ImageIndex"] = "imageIndex"; - // DPI_ImageSizeLimit, having type int - ParameterId["ImageSizeLimit"] = "imageSizeLimit"; - // DPI_TransparentLineMarksLimit, having type int - ParameterId["TransparentLineMarksLimit"] = "transparentLineMarksLimit"; - // DPI_Indent, having type int - ParameterId["Indent"] = "indent"; - // DPI_Index, having type int - ParameterId["Index"] = "idx"; - // DPI_IndexFrom, having type int - ParameterId["IndexFrom"] = "indexFrom"; - // DPI_IndexOffset, having type int - ParameterId["IndexOffset"] = "indexOffset"; - // DPI_IndexTo, having type int - ParameterId["IndexTo"] = "indexTo"; - // DPI_InlineConnectionRenameRow, having type int - ParameterId["InlineConnectionRenameRow"] = "inlineConnectionRenameRow"; - // DPI_InsertPos, having type int - ParameterId["InsertPos"] = "insertPos"; - // DPI_IsHasDataSupported, having type int - ParameterId["IsHasDataSupported"] = "isHasDataSupported"; - // DPI_LeftMargin, having type int - ParameterId["LeftMargin"] = "leftMargin"; - // DPI_LeftRightBorderWidth, having type int - ParameterId["LeftRightBorderWidth"] = "leftRightBorderWidth"; - // DPI_LowerBound, having type int - ParameterId["LowerBound"] = "lowerBound"; - // DPI_MapRequestPixels, having type int - ParameterId["MapRequestPixels"] = "mapRequestPixels"; - // DPI_MapScaleFontSizePixels, having type int - ParameterId["MapScaleFontSizePixels"] = "mapScaleFontSizePixels"; - // DPI_MapScaleReadoutNumber, having type int - ParameterId["MapScaleReadoutNumber"] = "mapScaleReadoutNumber"; - // DPI_MapScaleWidth, having type int - ParameterId["MapScaleWidth"] = "mapScaleWidth"; - // DPI_MapTileSize, having type int - ParameterId["MapTileSize"] = "mapTileSize"; - // DPI_Margin, having type int - ParameterId["Margin"] = "margin"; - // DPI_MarginBottom, having type int - ParameterId["MarginBottom"] = "marginBottom"; - // DPI_MarginLeft, having type int - ParameterId["MarginLeft"] = "marginLeft"; - // DPI_MarginRight, having type int - ParameterId["MarginRight"] = "marginRight"; - // DPI_MarginTop, having type int - ParameterId["MarginTop"] = "marginTop"; - // DPI_MaxCell, having type int - ParameterId["MaxCell"] = "maxCell"; - // DPI_MaxItemSpan, having type int - ParameterId["MaxItemSpan"] = "maxItemSpan"; - // DPI_MaxPolynomialDegree, having type int - ParameterId["MaxPolynomialDegree"] = "maxDegree"; - // DPI_MaxPosition, having type int - ParameterId["MaxPosition"] = "maxPosition"; - // DPI_MaxSize, having type int - ParameterId["MaxSize"] = "maxSize"; - // DPI_MinCell, having type int - ParameterId["MinCell"] = "minCell"; - // DPI_MinPolynomialDegree, having type int - ParameterId["MinPolynomialDegree"] = "minDegree"; - // DPI_MinPosition, having type int - ParameterId["MinPosition"] = "minPosition"; - // DPI_MinSize, having type int - ParameterId["MinSize"] = "minSize"; - // DPI_ModelDF, having type int - ParameterId["ModelDF"] = "modelDf"; - // DPI_NewIndex, having type int - ParameterId["NewIndex"] = "newIndex"; - // DPI_NumDataSourcesUsingServer, having type int - ParameterId["NumDataSourcesUsingServer"] = "numDataSourcesUsingServer"; - // DPI_NumFilteredObs, having type int - ParameterId["NumFilteredObs"] = "filteredObservations"; - // DPI_NumModeledObs, having type int - ParameterId["NumModeledObs"] = "modeledObservations"; - // DPI_NumNotClustered, having type int - ParameterId["NumNotClustered"] = "numNotClustered"; - // DPI_NumNumericFields, having type int - ParameterId["NumNumericFields"] = "numNumericFields"; - // DPI_NumOutliers, having type int - ParameterId["NumOutliers"] = "numOutliers"; - // DPI_NumRows, having type int - ParameterId["NumRows"] = "numRows"; - // DPI_NumSelected, having type int - ParameterId["NumSelected"] = "numSelected"; - // DPI_OffsetX, having type int - ParameterId["OffsetX"] = "offsetX"; - // DPI_OffsetY, having type int - ParameterId["OffsetY"] = "offsetY"; - // DPI_Padding, having type int - ParameterId["Padding"] = "padding"; - // DPI_PaddingBottom, having type int - ParameterId["PaddingBottom"] = "paddingBottom"; - // DPI_PaddingLeft, having type int - ParameterId["PaddingLeft"] = "paddingLeft"; - // DPI_PaddingRight, having type int - ParameterId["PaddingRight"] = "paddingRight"; - // DPI_PaddingTop, having type int - ParameterId["PaddingTop"] = "paddingTop"; - // DPI_PageLoadPercentage, having type int - ParameterId["PageLoadPercentage"] = "pageLoadPercentage"; - // DPI_PaletteIndex, having type int - ParameterId["PaletteIndex"] = "paletteIndex"; - // DPI_PaneSpecificationId, having type int - ParameterId["PaneSpecificationId"] = "paneSpec"; - // DPI_ParameterCtrlIncrementsPerTick, having type int - ParameterId["ParameterCtrlIncrementsPerTick"] = "parameterControlIncrementMultiplier"; - // DPI_PolynomialDegree, having type int - ParameterId["PolynomialDegree"] = "degree"; - // DPI_Port, having type int - ParameterId["Port"] = "datasourcePort"; - // DPI_Position, having type int - ParameterId["Position"] = "position"; - // DPI_ParentProjectId, having type int - ParameterId["ParentProjectId"] = "parentProjectId"; - // DPI_PublishResultStringId, having type int - ParameterId["PublishResultStringId"] = "publishResultStringId"; - // DPI_Radius, having type int - ParameterId["Radius"] = "radius"; - // DPI_ReadoutOffset, having type int - ParameterId["ReadoutOffset"] = "readoutOffset"; - // DPI_ReferenceIndex, having type int - ParameterId["ReferenceIndex"] = "referenceIndex"; - // DPI_RegionHeight, having type int - ParameterId["RegionHeight"] = "regionHeight"; - // DPI_RegionWidth, having type int - ParameterId["RegionWidth"] = "regionWidth"; - // DPI_RemovedDatasourceCount, having type int - ParameterId["RemovedDatasourceCount"] = "removedDatasourceCount"; - // DPI_RemovedSheetCount, having type int - ParameterId["RemovedSheetCount"] = "removedSheetCount"; - // DPI_ResidualDF, having type int - ParameterId["ResidualDF"] = "residualDf"; - // DPI_ResizeColumn, having type int - ParameterId["ResizeColumn"] = "resizeColumn"; - // DPI_RestartEveryIndex, having type int - ParameterId["RestartEveryIndex"] = "restartEveryIndex"; - // DPI_RightMargin, having type int - ParameterId["RightMargin"] = "rightMargin"; - // DPI_RowCount, having type int - ParameterId["RowCount"] = "rowCount"; - // DPI_RowHeight, having type int - ParameterId["RowHeight"] = "rowHeight"; - // DPI_RowInnerLevels, having type int - ParameterId["RowInnerLevels"] = "rowInnerLevels"; - // DPI_RowLevels, having type int - ParameterId["RowLevels"] = "rowLevels"; - // DPI_RowNumber, having type int - ParameterId["RowNumber"] = "rowNumber"; - // DPI_RowWidth, having type int - ParameterId["RowWidth"] = "rowWidth"; - // DPI_SecondValueIndex, having type int - ParameterId["SecondValueIndex"] = "secondValueIndex"; - // DPI_SecondsAgo, having type int - ParameterId["SecondsAgo"] = "secondsAgo"; - // DPI_SelectionEnd, having type int - ParameterId["SelectionEnd"] = "selectionEnd"; - // DPI_SelectionStart, having type int - ParameterId["SelectionStart"] = "selectionStart"; - // DPI_ShapePaletteID, having type int - ParameterId["ShapePaletteID"] = "shapePaletteId"; - // DPI_SheetIndex, having type int - ParameterId["SheetIndex"] = "sheetIndex"; - // DPI_ShelfPositionIndex, having type int - ParameterId["ShelfPositionIndex"] = "shelfPosIndex"; - // DPI_Size, having type int - ParameterId["Size"] = "size"; - // DPI_SizeDifference, having type int - ParameterId["SizeDifference"] = "sizeDelta"; - // DPI_SnapDistance, having type int - ParameterId["SnapDistance"] = "snapDistance"; - // DPI_SnapLocation, having type int - ParameterId["SnapLocation"] = "snapLocation"; - // DPI_SolveOrder, having type int - ParameterId["SolveOrder"] = "solveOrder"; - // DPI_SpaceBetweenPoints, having type int - ParameterId["SpaceBetweenPoints"] = "spaceBetweenPoints"; - // DPI_StepSize, having type int - ParameterId["StepSize"] = "stepSize"; - // DPI_Steps, having type int - ParameterId["Steps"] = "steps"; - // DPI_StoryPointIndex, having type int - ParameterId["StoryPointIndex"] = "currentStorypointIndex"; - // DPI_StyleLen, having type int - ParameterId["StyleLen"] = "tokenLengthForStyle"; - // DPI_StylePos, having type int - ParameterId["StylePos"] = "tokenPositionForStyle"; - // DPI_SwatchAreaWidth, having type int - ParameterId["SwatchAreaWidth"] = "swatchWidth"; - // DPI_TargetBinId, having type int - ParameterId["TargetBinId"] = "targetBinId"; - // DPI_TargetPtX, having type int - ParameterId["TargetPtX"] = "targetX"; - // DPI_TargetPtY, having type int - ParameterId["TargetPtY"] = "targetY"; - // DPI_TileFactor, having type int - ParameterId["TileFactor"] = "tileFactor"; - // DPI_TitleHeight, having type int - ParameterId["TitleHeight"] = "titleHeight"; - // DPI_TitleWidth, having type int - ParameterId["TitleWidth"] = "titleWidth"; - // DPI_TopBottomBorderWidth, having type int - ParameterId["TopBottomBorderWidth"] = "topBottomBorderWidth"; - // DPI_UIAutomationLineSize, having type int - ParameterId["UIAutomationLineSize"] = "uiAutomationLineSize"; - // DPI_UIAutomationPageSize, having type int - ParameterId["UIAutomationPageSize"] = "uiAutomationPageSize"; - // DPI_UID, having type int - ParameterId["UID"] = "uid"; - // DPI_UpperBound, having type int - ParameterId["UpperBound"] = "upperBound"; - // DPI_VertTextCell, having type int - ParameterId["VertTextCell"] = "vertTextCell"; - // DPI_Width, having type int - ParameterId["Width"] = "w"; - // DPI_X, having type int - ParameterId["X"] = "x"; - // DPI_Y, having type int - ParameterId["Y"] = "y"; - // DPI_ZOrder, having type int - ParameterId["ZOrder"] = "zOrder"; - // DPI_ZoneIconIndex, having type int - ParameterId["ZoneIconIndex"] = "zoneIconIndex"; - // DPI_AliasIndices, having type int[] - ParameterId["AliasIndices"] = "aliasIndices"; - // DPI_AnovaDFVec, having type int[] - ParameterId["AnovaDFVec"] = "anovaDfVector"; - // DPI_ColumnIndices, having type int[] - ParameterId["ColumnIndices"] = "columnIndices"; - // DPI_DrillFieldIndices, having type int[] - ParameterId["DrillFieldIndices"] = "drillFieldIndices"; - // DPI_FilterMaxIndices, having type int[] - ParameterId["FilterMaxIndices"] = "filterMaxIndices"; - // DPI_FilterMinIndices, having type int[] - ParameterId["FilterMinIndices"] = "filterMinIndices"; - // DPI_FilterValuesIndices, having type int[] - ParameterId["FilterValuesIndices"] = "filterValueIndices"; - // DPI_FormatStringIndices, having type int[] - ParameterId["FormatStringIndices"] = "formatstrIndices"; - // DPI_FormattedValIndices, having type int[] - ParameterId["FormattedValIndices"] = "formatValIdxs"; - // DPI_PaletteIndices, having type int[] - ParameterId["PaletteIndices"] = "palettesIndices"; - // DPI_PaneIndices, having type int[] - ParameterId["PaneIndices"] = "paneIndices"; - // DPI_Points, having type int[] - ParameterId["Points"] = "points"; - // DPI_QuickFilterSettings, having type int[] - ParameterId["QuickFilterSettings"] = "quickFilterSettings"; - // DPI_SelectedIndices, having type int[] - ParameterId["SelectedIndices"] = "selectedIndices"; - // DPI_ShelfPositionIndices, having type int[] - ParameterId["ShelfPositionIndices"] = "shelfPosIndices"; - // DPI_TileBox, having type int[] - ParameterId["TileBox"] = "tileBox"; - // DPI_TrailOverride, having type int[] - ParameterId["TrailOverride"] = "trailOverride"; - // DPI_UIDs, having type int[] - ParameterId["UIDs"] = "uids"; - // DPI_ValueIndices, having type int[] - ParameterId["ValueIndices"] = "valueIndices"; - // DPI_XCellOffsets, having type int[] - ParameterId["XCellOffsets"] = "xCellOffsets"; - // DPI_XPixelOffsets, having type int[] - ParameterId["XPixelOffsets"] = "xPixelOffsets"; - // DPI_YCellOffsets, having type int[] - ParameterId["YCellOffsets"] = "yCellOffsets"; - // DPI_YPixelOffsets, having type int[] - ParameterId["YPixelOffsets"] = "yPixelOffsets"; - // DPI_IntMap, having type Dictionary(of int) - ParameterId["IntMap"] = "intMap"; - // DPI_SelectedAuthSettingIndices, having type Dictionary(of int) - ParameterId["SelectedAuthSettingIndices"] = "selectedAuthSettingIndices"; - // DPI_ActiveStoryPointID, having type uint - ParameterId["ActiveStoryPointID"] = "activeStoryPointId"; - // DPI_ActiveZoneID, having type uint - ParameterId["ActiveZoneID"] = "activeZoneId"; - // DPI_ActualSize, having type uint - ParameterId["ActualSize"] = "actualSize"; - // DPI_AddInDebugPort, having type uint - ParameterId["AddInDebugPort"] = "addInDebugPort"; - // DPI_AggregationIndex, having type uint - ParameterId["AggregationIndex"] = "aggregationIndex"; - // DPI_AnnotationID, having type uint - ParameterId["AnnotationID"] = "annotationId"; - // DPI_AssignedAliasCount, having type uint - ParameterId["AssignedAliasCount"] = "assignedAliasCount"; - // DPI_CapabilityId, having type uint - ParameterId["CapabilityId"] = "capabilityId"; - // DPI_CaretIndex, having type uint - ParameterId["CaretIndex"] = "caretIndex"; - // DPI_CellID, having type uint - ParameterId["CellID"] = "cellId"; - // DPI_ColumnIndex, having type uint - ParameterId["ColumnIndex"] = "columnIndex"; - // DPI_CommandID, having type uint - ParameterId["CommandID"] = "id"; - // DPI_CommandIndex, having type uint - ParameterId["CommandIndex"] = "index"; - // DPI_ControllerId, having type uint - ParameterId["ControllerId"] = "controllerId"; - // DPI_Count, having type uint - ParameterId["Count"] = "count"; - // DPI_URowCount, having type uint - ParameterId["URowCount"] = "uRowCount"; - // DPI_UColumnCount, having type uint - ParameterId["UColumnCount"] = "uColumnCount"; - // DPI_CurrentPage, having type uint - ParameterId["CurrentPage"] = "currentPage"; - // DPI_DatePeriodsCount, having type uint - ParameterId["DatePeriodsCount"] = "datePeriodsCount"; - // DPI_Decimals, having type uint - ParameterId["Decimals"] = "decimals"; - // DPI_DefaultHeight, having type uint - ParameterId["DefaultHeight"] = "defaultHeight"; - // DPI_DefaultItem, having type uint - ParameterId["DefaultItem"] = "defaultItem"; - // DPI_DefaultWidth, having type uint - ParameterId["DefaultWidth"] = "defaultWidth"; - // DPI_Depth, having type uint - ParameterId["Depth"] = "depth"; - // DPI_DetailID, having type uint - ParameterId["DetailID"] = "detailId"; - // DPI_DrillLevel, having type uint - ParameterId["DrillLevel"] = "drillLevel"; - // DPI_DuplicateIndex, having type uint - ParameterId["DuplicateIndex"] = "duplicateIndex"; - // DPI_EndIndex, having type uint - ParameterId["EndIndex"] = "endIndex"; - // DPI_FieldIconIdx, having type uint - ParameterId["FieldIconIdx"] = "fieldIconIdx"; - // DPI_FilterLevel, having type uint - ParameterId["FilterLevel"] = "filterLevel"; - // DPI_FilterTileSize, having type uint - ParameterId["FilterTileSize"] = "filterTileSize"; - // DPI_FiscalYearStart, having type uint - ParameterId["FiscalYearStart"] = "fiscalYearStart"; - // DPI_FitPagesAcross, having type uint - ParameterId["FitPagesAcross"] = "pageFitHorizontal"; - // DPI_FitPagesDown, having type uint - ParameterId["FitPagesDown"] = "pageFitVertical"; - // DPI_FixedIndex, having type uint - ParameterId["FixedIndex"] = "fixedIndex"; - // DPI_FlipboardZoneID, having type uint - ParameterId["FlipboardZoneID"] = "flipboardZoneId"; - // DPI_ForecastAutoRangeSize, having type uint - ParameterId["ForecastAutoRangeSize"] = "forecastAutoRangeSize"; - // DPI_ForecastEndOfRange, having type uint - ParameterId["ForecastEndOfRange"] = "forecastEndOfRange"; - // DPI_ForecastIgnoreLast, having type uint - ParameterId["ForecastIgnoreLast"] = "forecastIgnoreLast"; - // DPI_ForecastNextRangeSize, having type uint - ParameterId["ForecastNextRangeSize"] = "forecastNextRangeSize"; - // DPI_GroupFlags, having type uint - ParameterId["GroupFlags"] = "groupFlag"; - // DPI_HierarchyLevels, having type uint - ParameterId["HierarchyLevels"] = "hierarchyLevels"; - // DPI_HierarchyMemberId, having type uint - ParameterId["HierarchyMemberId"] = "hierarchyMemberId"; - // DPI_HitTestFlags, having type uint - ParameterId["HitTestFlags"] = "hitTestFlags"; - // DPI_ImageHeight, having type uint - ParameterId["ImageHeight"] = "imageHeight"; - // DPI_ImageWidth, having type uint - ParameterId["ImageWidth"] = "imageWidth"; - // DPI_ItemIndex, having type uint - ParameterId["ItemIndex"] = "itemIndex"; - // DPI_ItemIndex1, having type uint - ParameterId["ItemIndex1"] = "itemIndex1"; - // DPI_LineHeight, having type uint - ParameterId["LineHeight"] = "lineHeight"; - // DPI_MapIntermediateLevels, having type uint - ParameterId["MapIntermediateLevels"] = "mapIntermediateLevels"; - // DPI_MapWorldRepeats, having type uint - ParameterId["MapWorldRepeats"] = "mapWorldRepeats"; - // DPI_MaxAlpha, having type uint - ParameterId["MaxAlpha"] = "maxAlpha"; - // DPI_MaxHeight, having type uint - ParameterId["MaxHeight"] = "maxHeight"; - // DPI_MaxNumberWebListItems, having type uint - ParameterId["MaxNumberWebListItems"] = "maxNumberWebListItems"; - // DPI_MaxPrevOrNextValues, having type uint - ParameterId["MaxPrevOrNextValues"] = "maxPrevOrNextValues"; - // DPI_MaxRows, having type uint - ParameterId["MaxRows"] = "maxRows"; - // DPI_MaxTransparency, having type uint - ParameterId["MaxTransparency"] = "colorMaxTransparencyValue"; - // DPI_MaxWidth, having type uint - ParameterId["MaxWidth"] = "maxWidth"; - // DPI_MinColumns, having type uint - ParameterId["MinColumns"] = "minColumns"; - // DPI_MinHeight, having type uint - ParameterId["MinHeight"] = "minHeight"; - // DPI_MinPrevOrNextValues, having type uint - ParameterId["MinPrevOrNextValues"] = "minPrevOrNextValues"; - // DPI_MinTransparency, having type uint - ParameterId["MinTransparency"] = "colorMinTransparencyValue"; - // DPI_MinWidth, having type uint - ParameterId["MinWidth"] = "minWidth"; - // DPI_NestedCalcsIndex, having type uint - ParameterId["NestedCalcsIndex"] = "nestedCalcsIndex"; - // DPI_NextValues, having type uint - ParameterId["NextValues"] = "nextValues"; - // DPI_NodeLevel, having type uint - ParameterId["NodeLevel"] = "nodeLevel"; - // DPI_NumHighlighted, having type uint - ParameterId["NumHighlighted"] = "numHighlighted"; - // DPI_NumberOfNextValues, having type uint - ParameterId["NumberOfNextValues"] = "numberOfNextValues"; - // DPI_NumberOfPrevValues, having type uint - ParameterId["NumberOfPrevValues"] = "numberOfPrevValues"; - // DPI_ObjectID, having type uint - ParameterId["ObjectID"] = "objectId"; - // DPI_OrderingTypeIndex, having type uint - ParameterId["OrderingTypeIndex"] = "orderingTypeIndex"; - // DPI_PageCount, having type uint - ParameterId["PageCount"] = "pageCount"; - // DPI_PageFadeEnd, having type uint - ParameterId["PageFadeEnd"] = "fadeEnd"; - // DPI_PageFadeStart, having type uint - ParameterId["PageFadeStart"] = "fadeStart"; - // DPI_PageIndex, having type uint - ParameterId["PageIndex"] = "pageIndex"; - // DPI_PageNumber, having type uint - ParameterId["PageNumber"] = "pageNumber"; - // DPI_PageScalePercent, having type uint - ParameterId["PageScalePercent"] = "pageScalePercent"; - // DPI_PageTrailLength, having type uint - ParameterId["PageTrailLength"] = "historyLength"; - // DPI_PaletteFlagsVal, having type uint - ParameterId["PaletteFlagsVal"] = "paletteFlagsVal"; - // DPI_PaneIndex, having type uint - ParameterId["PaneIndex"] = "paneIndex"; - // DPI_ParamCtrlDisplayFlags, having type uint - ParameterId["ParamCtrlDisplayFlags"] = "paramDisplayFlags"; - // DPI_ParentZoneID, having type uint - ParameterId["ParentZoneID"] = "parentZoneId"; - // DPI_PercentileParam, having type uint - ParameterId["PercentileParam"] = "percentileParam"; - // DPI_PrevValues, having type uint - ParameterId["PrevValues"] = "prevValues"; - // DPI_QRGBColor, having type uint - ParameterId["QRGBColor"] = "qrgbColor"; - // DPI_RangeN, having type uint - ParameterId["RangeN"] = "rangeN"; - // DPI_RankTypeIndex, having type uint - ParameterId["RankTypeIndex"] = "rankTypeIndex"; - // DPI_RenderComplexity, having type uint - ParameterId["RenderComplexity"] = "renderComplexityLimit"; - // DPI_RowIndex, having type uint - ParameterId["RowIndex"] = "rowIndex"; - // DPI_SelectedAuthSettingIndex, having type uint - ParameterId["SelectedAuthSettingIndex"] = "selectedAuthSettingIndex"; - // DPI_SelectedFullScheduleIndex, having type uint - ParameterId["SelectedFullScheduleIndex"] = "selectedFullScheduleIndex"; - // DPI_SelectedIncrScheduleIndex, having type uint - ParameterId["SelectedIncrScheduleIndex"] = "selectedIncrScheduleIndex"; - // DPI_SelectedPublishChoiceIndex, having type uint - ParameterId["SelectedPublishChoiceIndex"] = "selectedPublishChoiceIndex"; - // DPI_SelectedMemberCount, having type uint - ParameterId["SelectedMemberCount"] = "selectedMemberCount"; - // DPI_ShapeID, having type uint - ParameterId["ShapeID"] = "shapeId"; - // DPI_SheetUseCount, having type uint - ParameterId["SheetUseCount"] = "useCount"; - // DPI_ShelfItemID, having type uint - ParameterId["ShelfItemID"] = "shelfItemId"; - // DPI_SigFigs, having type uint - ParameterId["SigFigs"] = "sigFigs"; - // DPI_SortAggIndex, having type uint - ParameterId["SortAggIndex"] = "sortAggIndvValues"; - // DPI_SortColumnIndex, having type uint - ParameterId["SortColumnIndex"] = "sortColumnIndex"; - // DPI_SortDirectionIndex, having type uint - ParameterId["SortDirectionIndex"] = "sortDirectionIndex"; - // DPI_SortFieldIndex, having type uint - ParameterId["SortFieldIndex"] = "sortFieldIndex"; - // DPI_StartIndex, having type uint - ParameterId["StartIndex"] = "startIndex"; - // DPI_StartOfWeek, having type uint - ParameterId["StartOfWeek"] = "startOfWeek"; - // DPI_StoryPointID, having type uint - ParameterId["StoryPointID"] = "storyPointId"; - // DPI_TableCalcTypeIndex, having type uint - ParameterId["TableCalcTypeIndex"] = "tableCalcTypeIndex"; - // DPI_TableCalcTypesUsed, having type uint - ParameterId["TableCalcTypesUsed"] = "tableCalcTypesUsed"; - // DPI_TemplateIndex, having type uint - ParameterId["TemplateIndex"] = "templateIndex"; - // DPI_TileCount, having type uint - ParameterId["TileCount"] = "tileCount"; - // DPI_TimeoutSeconds, having type uint - ParameterId["TimeoutSeconds"] = "timeoutSeconds"; - // DPI_TopN, having type uint - ParameterId["TopN"] = "topN"; - // DPI_TotalNumberOfItemsInSet, having type uint - ParameterId["TotalNumberOfItemsInSet"] = "totalNumberOfItemsInSet"; - // DPI_TotalMemberCount, having type uint - ParameterId["TotalMemberCount"] = "totalMemberCount"; - // DPI_Transparency, having type uint - ParameterId["Transparency"] = "colorTransparencyValue"; - // DPI_TupleID, having type uint - ParameterId["TupleID"] = "tupleId"; - // DPI_UIndex, having type uint - ParameterId["UIndex"] = "uindex"; - // DPI_UndoPosition, having type uint - ParameterId["UndoPosition"] = "undoPosition"; - // DPI_UnsignedWidth, having type uint - ParameterId["UnsignedWidth"] = "uw"; - // DPI_UnsignedWidthBottom, having type uint - ParameterId["UnsignedWidthBottom"] = "uwb"; - // DPI_UnsignedWidthLeft, having type uint - ParameterId["UnsignedWidthLeft"] = "uwl"; - // DPI_UnsignedWidthRight, having type uint - ParameterId["UnsignedWidthRight"] = "uwr"; - // DPI_UnsignedWidthTop, having type uint - ParameterId["UnsignedWidthTop"] = "uwt"; - // DPI_ValueIndex, having type uint - ParameterId["ValueIndex"] = "valueIndex"; - // DPI_ValueInt, having type uint - ParameterId["ValueInt"] = "valueInt"; - // DPI_WorldOffset, having type uint - ParameterId["WorldOffset"] = "worldOffset"; - // DPI_XDuplicateIndex, having type uint - ParameterId["XDuplicateIndex"] = "xDuplicateIndex"; - // DPI_XIndex, having type uint - ParameterId["XIndex"] = "xIndex"; - // DPI_YDuplicateIndex, having type uint - ParameterId["YDuplicateIndex"] = "yDuplicateIndex"; - // DPI_YIndex, having type uint - ParameterId["YIndex"] = "yIndex"; - // DPI_ZoneID, having type uint - ParameterId["ZoneID"] = "zoneId"; - // DPI_ZoneZOrder, having type uint - ParameterId["ZoneZOrder"] = "zoneZOrder"; - // DPI_ComponentID, having type uint - ParameterId["ComponentID"] = "componentId"; - // DPI_NonThreadPoolUseCount, having type uint - ParameterId["NonThreadPoolUseCount"] = "nonThreadPoolUseCount"; - // DPI_AddressingIndices, having type uint[] - ParameterId["AddressingIndices"] = "addressingIndices"; - // DPI_AddressingInvalidIndices, having type uint[] - ParameterId["AddressingInvalidIndices"] = "addressingInvalidIndices"; - // DPI_ChildZoneIds, having type uint[] - ParameterId["ChildZoneIds"] = "childZoneIds"; - // DPI_ColorList, having type uint[] - ParameterId["ColorList"] = "colorList"; - // DPI_DuplicateIndices, having type uint[] - ParameterId["DuplicateIndices"] = "duplicateIndices"; - // DPI_FilterAddIndices, having type uint[] - ParameterId["FilterAddIndices"] = "filterAddIndices"; - // DPI_FilterIndices, having type uint[] - ParameterId["FilterIndices"] = "filterIndices"; - // DPI_FilterLevelAdd, having type uint[] - ParameterId["FilterLevelAdd"] = "filterLevelAdd"; - // DPI_FilterLevelRemove, having type uint[] - ParameterId["FilterLevelRemove"] = "filterLevelRemove"; - // DPI_FilterLevels, having type uint[] - ParameterId["FilterLevels"] = "filterLevels"; - // DPI_FilterRemoveIndices, having type uint[] - ParameterId["FilterRemoveIndices"] = "filterRemoveIndices"; - // DPI_FixedValues, having type uint[] - ParameterId["FixedValues"] = "fixedValues"; - // DPI_HierarchyMemberIdList, having type uint[] - ParameterId["HierarchyMemberIdList"] = "hierarchyMemberIdList"; - // DPI_InvalidIndices, having type uint[] - ParameterId["InvalidIndices"] = "invalidIndices"; - // DPI_ItemIndices, having type uint[] - ParameterId["ItemIndices"] = "itemIndices"; - // DPI_LineTupleIDs, having type uint[] - ParameterId["LineTupleIDs"] = "lineTupleIds"; - // DPI_ObjectIDs, having type uint[] - ParameterId["ObjectIDs"] = "objectIds"; - // DPI_PageIndices, having type uint[] - ParameterId["PageIndices"] = "pageIndices"; - // DPI_QRGB, having type uint[] - ParameterId["QRGB"] = "qrgbList"; - // DPI_QRGBColors, having type uint[] - ParameterId["QRGBColors"] = "qrgbColors"; - // DPI_RefLineID, having type uint[] - ParameterId["RefLineID"] = "reflineId"; - // DPI_ShapeIDs, having type uint[] - ParameterId["ShapeIDs"] = "shapeIds"; - // DPI_ShelfSelection, having type uint[] - ParameterId["ShelfSelection"] = "shelfSelection"; - // DPI_StoryPointIDs, having type uint[] - ParameterId["StoryPointIDs"] = "storyPointIds"; - // DPI_TupleIDs, having type uint[] - ParameterId["TupleIDs"] = "tupleIds"; - // DPI_Widths, having type uint[] - ParameterId["Widths"] = "widths"; - // DPI_UintMap, having type Dictionary(of uint32_t) - ParameterId["UintMap"] = "uintMap"; - // DPI_Alpha, having type float - ParameterId["Alpha"] = "alpha"; - // DPI_Angle, having type float - ParameterId["Angle"] = "angle"; - // DPI_BreakPointValue, having type float - ParameterId["BreakPointValue"] = "breakPointValue"; - // DPI_DevicePixelRatio, having type float - ParameterId["DevicePixelRatio"] = "devicePixelRatio"; - // DPI_Distance, having type float - ParameterId["Distance"] = "distance"; - // DPI_FloatX, having type float - ParameterId["FloatX"] = "floatX"; - // DPI_FloatY, having type float - ParameterId["FloatY"] = "floatY"; - // DPI_FogDesaturation, having type float - ParameterId["FogDesaturation"] = "fogDesaturation"; - // DPI_MarkScale, having type float - ParameterId["MarkScale"] = "markScale"; - // DPI_MarkSizeInPixelUnits, having type float - ParameterId["MarkSizeInPixelUnits"] = "markSizeInPixelUnits"; - // DPI_PointSize, having type float - ParameterId["PointSize"] = "pointSize"; - // DPI_StrokeWidth, having type float - ParameterId["StrokeWidth"] = "strokeWidth"; - // DPI_TextRegionOrientation, having type float - ParameterId["TextRegionOrientation"] = "orientation"; - // DPI_TransformAngle, having type float - ParameterId["TransformAngle"] = "transformAngle"; - // DPI_ZoomLevel, having type float - ParameterId["ZoomLevel"] = "zoomLevel"; - // DPI_OldZoomLevel, having type float - ParameterId["OldZoomLevel"] = "oldZoomLevel"; - // DPI_NewZoomLevel, having type float - ParameterId["NewZoomLevel"] = "newZoomLevel"; - // DPI_AspectRatio, having type float - ParameterId["AspectRatio"] = "aspectRatio"; - // DPI_BottomPrintMargin, having type float - ParameterId["BottomPrintMargin"] = "bottomPrintMargin"; - // DPI_EarthRadius, having type float - ParameterId["EarthRadius"] = "earthRadius"; - // DPI_FloatHeight, having type float - ParameterId["FloatHeight"] = "floatHeight"; - // DPI_FloatLeft, having type float - ParameterId["FloatLeft"] = "floatLeft"; - // DPI_FloatRadius, having type float - ParameterId["FloatRadius"] = "floatRadius"; - // DPI_FloatTop, having type float - ParameterId["FloatTop"] = "floatTop"; - // DPI_FloatWidth, having type float - ParameterId["FloatWidth"] = "floatWidth"; - // DPI_LeftPrintMargin, having type float - ParameterId["LeftPrintMargin"] = "leftPrintMargin"; - // DPI_MapCenterLatitude, having type float - ParameterId["MapCenterLatitude"] = "mapCenterLatitude"; - // DPI_MapCenterLongitude, having type float - ParameterId["MapCenterLongitude"] = "mapCenterLongitude"; - // DPI_MapDisplayScale, having type float - ParameterId["MapDisplayScale"] = "mapDisplayScale"; - // DPI_MapMaxStretch, having type float - ParameterId["MapMaxStretch"] = "mapMaxStretch"; - // DPI_MapMaxZoom, having type float - ParameterId["MapMaxZoom"] = "mapMaxZoom"; - // DPI_MapMinShrink, having type float - ParameterId["MapMinShrink"] = "mapMinShrink"; - // DPI_MapMinZoom, having type float - ParameterId["MapMinZoom"] = "mapMinZoom"; - // DPI_MapRequestZoom, having type float - ParameterId["MapRequestZoom"] = "mapRequestZoom"; - // DPI_MapWashout, having type float - ParameterId["MapWashout"] = "mapWashout"; - // DPI_MaxLatitude, having type float - ParameterId["MaxLatitude"] = "maxLatitude"; - // DPI_MaxLongitude, having type float - ParameterId["MaxLongitude"] = "maxLongitude"; - // DPI_MinLatitude, having type float - ParameterId["MinLatitude"] = "minLatitude"; - // DPI_MinLongitude, having type float - ParameterId["MinLongitude"] = "minLongitude"; - // DPI_RightPrintMargin, having type float - ParameterId["RightPrintMargin"] = "rightPrintMargin"; - // DPI_TopPrintMargin, having type float - ParameterId["TopPrintMargin"] = "topPrintMargin"; - // DPI_UIAutomationMaximum, having type float - ParameterId["UIAutomationMaximum"] = "uiAutomationMaximum"; - // DPI_UIAutomationMinimum, having type float - ParameterId["UIAutomationMinimum"] = "uiAutomationMinimum"; - // DPI_UIAutomationOffset, having type float - ParameterId["UIAutomationOffset"] = "uiAutomationOffset"; - // DPI_UnitDivisor, having type float - ParameterId["UnitDivisor"] = "unitDivisor"; - // DPI_UnitTransition, having type float - ParameterId["UnitTransition"] = "unitTransition"; - // DPI_AutomaticDrillIdx, having type float[] - ParameterId["AutomaticDrillIdx"] = "automaticDrillIdx"; - // DPI_DestinationBox, having type float[] - ParameterId["DestinationBox"] = "destBox"; - // DPI_LowerEnd, having type float[] - ParameterId["LowerEnd"] = "lowerEnd"; - // DPI_OppositeAxis, having type float[] - ParameterId["OppositeAxis"] = "oppositeAxis"; - // DPI_PointsF, having type float[] - ParameterId["PointsF"] = "pointsF"; - // DPI_SourceBox, having type float[] - ParameterId["SourceBox"] = "sourceBox"; - // DPI_TransformOffset, having type float[] - ParameterId["TransformOffset"] = "transformOffset"; - // DPI_TransformScale, having type float[] - ParameterId["TransformScale"] = "transformScale"; - // DPI_UpperEnd, having type float[] - ParameterId["UpperEnd"] = "upperEnd"; - // DPI_FloatMap, having type Dictionary(of float) - ParameterId["FloatMap"] = "floatMap"; - // DPI_BGSS, having type double - ParameterId["BGSS"] = "betweenGroupSumOfSquares"; - // DPI_ConfidenceLevel, having type double - ParameterId["ConfidenceLevel"] = "confidenceLevel"; - // DPI_ConfidencePercentage, having type double - ParameterId["ConfidencePercentage"] = "confidencePercentage"; - // DPI_DoubleLeft, having type double - ParameterId["DoubleLeft"] = "doubleLeft"; - // DPI_DoubleTop, having type double - ParameterId["DoubleTop"] = "doubleTop"; - // DPI_DoubleValue, having type double - ParameterId["DoubleValue"] = "doubleValue"; - // DPI_DoubleX, having type double - ParameterId["DoubleX"] = "doubleX"; - // DPI_DoubleY, having type double - ParameterId["DoubleY"] = "doubleY"; - // DPI_FStatistic, having type double - ParameterId["FStatistic"] = "fStatistic"; - // DPI_FilterRangeMax, having type double - ParameterId["FilterRangeMax"] = "filterRangeMax"; - // DPI_FilterRangeMin, having type double - ParameterId["FilterRangeMin"] = "filterRangeMin"; - // DPI_GeographicSearchCandidateScore, having type double - ParameterId["GeographicSearchCandidateScore"] = "geographicSearchCandidateScore"; - // DPI_HeightD, having type double - ParameterId["HeightD"] = "height"; - // DPI_InflectionFraction, having type double - ParameterId["InflectionFraction"] = "inflectionFraction"; - // DPI_InflectionValue, having type double - ParameterId["InflectionValue"] = "inflectionValue"; - // DPI_MSE, having type double - ParameterId["MSE"] = "meanSquaredError"; - // DPI_MSM, having type double - ParameterId["MSM"] = "meanSquaredModel"; - // DPI_MapScaleMarginOfError, having type double - ParameterId["MapScaleMarginOfError"] = "mapScaleMarginOfError"; - // DPI_MarkSize, having type double - ParameterId["MarkSize"] = "markSize"; - // DPI_MaxMarkSize, having type double - ParameterId["MaxMarkSize"] = "maxMarkSize"; - // DPI_MinMarkSize, having type double - ParameterId["MinMarkSize"] = "minMarkSize"; - // DPI_NotchPosition, having type double - ParameterId["NotchPosition"] = "notchPosition"; - // DPI_NotchValue, having type double - ParameterId["NotchValue"] = "notchValue"; - // DPI_PValue, having type double - ParameterId["PValue"] = "pValue"; - // DPI_PercentDimensions, having type double - ParameterId["PercentDimensions"] = "percentDimensions"; - // DPI_PercentGroups, having type double - ParameterId["PercentGroups"] = "percentGroups"; - // DPI_PercentMeasures, having type double - ParameterId["PercentMeasures"] = "percentMeasures"; - // DPI_RSquared, having type double - ParameterId["RSquared"] = "rSquared"; - // DPI_SSE, having type double - ParameterId["SSE"] = "sumSquaredError"; - // DPI_SSM, having type double - ParameterId["SSM"] = "sumSquaredModel"; - // DPI_StandardError, having type double - ParameterId["StandardError"] = "standardError"; - // DPI_TSS, having type double - ParameterId["TSS"] = "totalSumOfSquares"; - // DPI_WGSS, having type double - ParameterId["WGSS"] = "withinGroupSumOfSquares"; - // DPI_WidthD, having type double - ParameterId["WidthD"] = "width"; - // DPI_ZoomFactor, having type double - ParameterId["ZoomFactor"] = "zoomFactor"; - // DPI_CoefficientPValueVec, having type double[] - ParameterId["CoefficientPValueVec"] = "coefficientPValueVector"; - // DPI_CoefficientStdErrVec, having type double[] - ParameterId["CoefficientStdErrVec"] = "coefficientStdErrorVector"; - // DPI_CoefficientTValueVec, having type double[] - ParameterId["CoefficientTValueVec"] = "coefficientTValueVector"; - // DPI_CoefficientVec, having type double[] - ParameterId["CoefficientVec"] = "coefficientVector"; - // DPI_FStatisticVec, having type double[] - ParameterId["FStatisticVec"] = "trendLineFStatisticVector"; - // DPI_Factors, having type double[] - ParameterId["Factors"] = "factors"; - // DPI_MSEVec, having type double[] - ParameterId["MSEVec"] = "meanSquaredErrorVector"; - // DPI_Means, having type double[] - ParameterId["Means"] = "means"; - // DPI_PValueVec, having type double[] - ParameterId["PValueVec"] = "pValueVector"; - // DPI_Percentages, having type double[] - ParameterId["Percentages"] = "percentages"; - // DPI_Percentiles, having type double[] - ParameterId["Percentiles"] = "percentiles"; - // DPI_SSEVec, having type double[] - ParameterId["SSEVec"] = "sumSquaredErrorVector"; - // DPI_StDevs, having type double[] - ParameterId["StDevs"] = "stdev"; - // DPI_UnscaledMeans, having type double[] - ParameterId["UnscaledMeans"] = "unscaledMeans"; - // DPI_DeltaTimeMs, having type long - ParameterId["DeltaTimeMs"] = "deltaTimeMs"; - // DPI_ExtractHistoryRowCount, having type long - ParameterId["ExtractHistoryRowCount"] = "extractRowCount"; - // DPI_ExtractHistoryRowsRemoved, having type long - ParameterId["ExtractHistoryRowsRemoved"] = "extractRowsRemoved"; - // DPI_ExtractsSize, having type long - ParameterId["ExtractsSize"] = "extractsSize"; - // DPI_OldExtractSize, having type long - ParameterId["OldExtractSize"] = "oldExtractSize"; - // DPI_RowsInserted, having type long - ParameterId["RowsInserted"] = "rowsInserted"; - // DPI_SampleSize, having type long - ParameterId["SampleSize"] = "sampleSize"; - // DPI_SampleSpace, having type long - ParameterId["SampleSpace"] = "sampleSpace"; - // DPI_ThreadPoolUseCount, having type long - ParameterId["ThreadPoolUseCount"] = "threadPoolUseCount"; - // DPI_ActionId, having type string - ParameterId["ActionId"] = "actionId"; - // DPI_AxisColumn, having type string - ParameterId["AxisColumn"] = "axisColumn"; - // DPI_BaseColumnName, having type string - ParameterId["BaseColumnName"] = "baseColumnName"; - // DPI_BreakPointFieldName, having type string - ParameterId["BreakPointFieldName"] = "breakPointFieldName"; - // DPI_PairedFieldName, having type string - ParameterId["PairedFieldName"] = "pairedFn"; - // DPI_FieldNameAllowEmpty, having type string - ParameterId["FieldNameAllowEmpty"] = "fieldNameAllowEmpty"; - // DPI_FieldNameDisAgg, having type string - ParameterId["FieldNameDisAgg"] = "fnDisagg"; - // DPI_FieldNameLocal, having type string - ParameterId["FieldNameLocal"] = "fieldNameLocal"; - // DPI_FieldNamePrev, having type string - ParameterId["FieldNamePrev"] = "fnPrev"; - // DPI_FieldNameSource, having type string - ParameterId["FieldNameSource"] = "fnSource"; - // DPI_FieldNameTarget, having type string - ParameterId["FieldNameTarget"] = "fnTarget"; - // DPI_FieldNameX, having type string - ParameterId["FieldNameX"] = "fnX"; - // DPI_FieldNameY, having type string - ParameterId["FieldNameY"] = "fnY"; - // DPI_FieldToSort, having type string - ParameterId["FieldToSort"] = "fieldToSort"; - // DPI_GlobalFieldName, having type string - ParameterId["GlobalFieldName"] = "globalFieldName"; - // DPI_HierarchyName, having type string - ParameterId["HierarchyName"] = "hierarchyName"; - // DPI_InvalidAggFieldName, having type string - ParameterId["InvalidAggFieldName"] = "invalidAggFieldName"; - // DPI_InvalidFieldName, having type string - ParameterId["InvalidFieldName"] = "invalidFieldName"; - // DPI_LimitParameterName, having type string - ParameterId["LimitParameterName"] = "limitParameterName"; - // DPI_LocalBaseColumnName, having type string - ParameterId["LocalBaseColumnName"] = "localBaseColumnName"; - // DPI_MeasureName, having type string - ParameterId["MeasureName"] = "measureName"; - // DPI_NestedCalcField, having type string - ParameterId["NestedCalcField"] = "nestedCalcFn"; - // DPI_ParameterName, having type string - ParameterId["ParameterName"] = "parameterName"; - // DPI_ReferenceParam, having type string - ParameterId["ReferenceParam"] = "referenceParam"; - // DPI_ReplacementFieldName, having type string - ParameterId["ReplacementFieldName"] = "replacementFieldName"; - // DPI_RHSTableAlias, having type string - ParameterId["RHSTableAlias"] = "rhsTableAlias"; - // DPI_SortMeasureName, having type string - ParameterId["SortMeasureName"] = "sortMeasureName"; - // DPI_UniqueName, having type string - ParameterId["UniqueName"] = "uniqueName"; - // DPI_ValueColumn, having type string - ParameterId["ValueColumn"] = "valueColumn"; - // DPI_PairedValueColumn, having type string - ParameterId["PairedValueColumn"] = "pairedValueColumn"; - // DPI_ActionIds, having type string[] - ParameterId["ActionIds"] = "actionIds"; - // DPI_AddressingValues, having type string[] - ParameterId["AddressingValues"] = "addressingValues"; - // DPI_AllColumns, having type string[] - ParameterId["AllColumns"] = "allColumns"; - // DPI_AtTheLevelValues, having type string[] - ParameterId["AtTheLevelValues"] = "atTheLevelValues"; - // DPI_AutomaticDrillFieldName, having type string[] - ParameterId["AutomaticDrillFieldName"] = "automaticDrillFieldName"; - // DPI_BlendingFieldCandidates, having type string[] - ParameterId["BlendingFieldCandidates"] = "blendingFieldCandidates"; - // DPI_Columns, having type string[] - ParameterId["Columns"] = "columns"; - // DPI_CurrentBlendingFields, having type string[] - ParameterId["CurrentBlendingFields"] = "currentBlendingFields"; - // DPI_DimensionsToSort, having type string[] - ParameterId["DimensionsToSort"] = "dimensionsToSort"; - // DPI_DrillFieldVector, having type string[] - ParameterId["DrillFieldVector"] = "drillFieldVector"; - // DPI_EncodingFieldVector, having type string[] - ParameterId["EncodingFieldVector"] = "encodingFieldVector"; - // DPI_FieldVector, having type string[] - ParameterId["FieldVector"] = "fieldVector"; - // DPI_FilterFields, having type string[] - ParameterId["FilterFields"] = "filterFields"; - // DPI_LODFieldVector, having type string[] - ParameterId["LODFieldVector"] = "lodFieldVector"; - // DPI_LegendColumns, having type string[] - ParameterId["LegendColumns"] = "legendColumns"; - // DPI_LegendNames, having type string[] - ParameterId["LegendNames"] = "legendNames"; - // DPI_NodeColumns, having type string[] - ParameterId["NodeColumns"] = "nodeColumns"; - // DPI_PageFields, having type string[] - ParameterId["PageFields"] = "pageFields"; - // DPI_ParamValues, having type string[] - ParameterId["ParamValues"] = "paramValues"; - // DPI_RefLineFields, having type string[] - ParameterId["RefLineFields"] = "reflineFields"; - // DPI_ReferencedColumns, having type string[] - ParameterId["ReferencedColumns"] = "referencedColumns"; - // DPI_RelatedFieldNames, having type string[] - ParameterId["RelatedFieldNames"] = "relatedFieldNames"; - // DPI_RemoveActionResults, having type string[] - ParameterId["RemoveActionResults"] = "removeActionResults"; - // DPI_ResponseVector, having type string[] - ParameterId["ResponseVector"] = "responseVector"; - // DPI_RestartEveryValues, having type string[] - ParameterId["RestartEveryValues"] = "restartEveryValues"; - // DPI_ResultFields, having type string[] - ParameterId["ResultFields"] = "resultFields"; - // DPI_SortFieldValues, having type string[] - ParameterId["SortFieldValues"] = "sortFieldValues"; - // DPI_XFields, having type string[] - ParameterId["XFields"] = "xFields"; - // DPI_YFields, having type string[] - ParameterId["YFields"] = "yFields"; - // DPI_ConnectionFullName, having type string - ParameterId["ConnectionFullName"] = "connectionFullName"; - // DPI_ConnectionFullNames, having type string[] - ParameterId["ConnectionFullNames"] = "connectionFullNames"; - // DPI_BoundDataValue, having type object - ParameterId["BoundDataValue"] = "boundDataValue"; - // DPI_DataValue, having type object - ParameterId["DataValue"] = "dataValue"; - // DPI_DataValueIncrement, having type object - ParameterId["DataValueIncrement"] = "dataValueIncrement"; - // DPI_DataValueLowerX, having type object - ParameterId["DataValueLowerX"] = "dataValueLowerX"; - // DPI_DataValueLowerY, having type object - ParameterId["DataValueLowerY"] = "dataValueLowerY"; - // DPI_DataValueUpperX, having type object - ParameterId["DataValueUpperX"] = "dataValueUpperX"; - // DPI_DataValueUpperY, having type object - ParameterId["DataValueUpperY"] = "dataValueUpperY"; - // DPI_DefaultDataValue, having type object - ParameterId["DefaultDataValue"] = "defaultDataValue"; - // DPI_MaxDataValue, having type object - ParameterId["MaxDataValue"] = "maxDataValue"; - // DPI_MinDataValue, having type object - ParameterId["MinDataValue"] = "minDataValue"; - // DPI_ValidatedDataValue, having type object - ParameterId["ValidatedDataValue"] = "validatedDataValue"; - // DPI_BinSize, having type object - ParameterId["BinSize"] = "binSize"; - // DPI_LimitCount, having type object - ParameterId["LimitCount"] = "limitCount"; - // DPI_DataValueList, having type object[] - ParameterId["DataValueList"] = "dataValueList"; - // DPI_FieldCaptionPair, having type FieldCaptionPairPresModel - ParameterId["FieldCaptionPair"] = "fieldCaptionPair"; - // DPI_FieldCaptionPairs, having type FieldCaptionPairPresModel[] - ParameterId["FieldCaptionPairs"] = "fieldCaptionPairs"; - // DPI_ParameterCaptionPairs, having type FieldCaptionPairPresModel[] - ParameterId["ParameterCaptionPairs"] = "parameterCaptionPairs"; - // DPI_VaryingAttributeDimensions, having type FieldCaptionPairPresModel[] - ParameterId["VaryingAttributeDimensions"] = "varyingAttributeDimensions"; - // DPI_FieldCaptionPairState, having type FieldCaptionPairStatePresModel - ParameterId["FieldCaptionPairState"] = "fieldCaptionPairState"; - // DPI_FieldCaptionPairStates, having type FieldCaptionPairStatePresModel[] - ParameterId["FieldCaptionPairStates"] = "fieldCaptionPairStates"; - // DPI_DatasourceCaptionPair, having type DatasourceCaptionPairPresModel - ParameterId["DatasourceCaptionPair"] = "datasourceCaptionPair"; - // DPI_DatasourceCaptionPairs, having type DatasourceCaptionPairPresModel[] - ParameterId["DatasourceCaptionPairs"] = "datasourceCaptionPairs"; - // DPI_SheetNameInfoPair, having type SheetNameInfoPairPresModel - ParameterId["SheetNameInfoPair"] = "sheetNameInfoPair"; - // DPI_SheetNameInfoPairs, having type SheetNameInfoPairPresModel[] - ParameterId["SheetNameInfoPairs"] = "sheetNameInfoPairs"; - // DPI_BGActiveColor, having type string - ParameterId["BGActiveColor"] = "bgActiveColor"; - // DPI_BGColor, having type string - ParameterId["BGColor"] = "bgColor"; - // DPI_BGRestColor, having type string - ParameterId["BGRestColor"] = "bgRestColor"; - // DPI_BorderColor, having type string - ParameterId["BorderColor"] = "borderColor"; - // DPI_BorderColorBottom, having type string - ParameterId["BorderColorBottom"] = "borderColorBottom"; - // DPI_BorderColorLeft, having type string - ParameterId["BorderColorLeft"] = "borderColorLeft"; - // DPI_BorderColorRight, having type string - ParameterId["BorderColorRight"] = "borderColorRight"; - // DPI_BorderColorTop, having type string - ParameterId["BorderColorTop"] = "borderColorTop"; - // DPI_Color, having type string - ParameterId["Color"] = "color"; - // DPI_Color1, having type string - ParameterId["Color1"] = "color1"; - // DPI_Color2, having type string - ParameterId["Color2"] = "color2"; - // DPI_DefaultColor, having type string - ParameterId["DefaultColor"] = "defaultColor"; - // DPI_DistanceFontColor, having type string - ParameterId["DistanceFontColor"] = "distanceFontColor"; - // DPI_FillColor, having type string - ParameterId["FillColor"] = "fillColor"; - // DPI_FogColor, having type string - ParameterId["FogColor"] = "fogColor"; - // DPI_HeaderColor, having type string - ParameterId["HeaderColor"] = "headerColor"; - // DPI_HighlightBGColor, having type string - ParameterId["HighlightBGColor"] = "highlightBgColor"; - // DPI_HighlightTextColor, having type string - ParameterId["HighlightTextColor"] = "highlightTextColor"; - // DPI_HoverColor, having type string - ParameterId["HoverColor"] = "hoverColor"; - // DPI_MapAttributionFill, having type string - ParameterId["MapAttributionFill"] = "mapAttributionFill"; - // DPI_MapAttributionTextColor, having type string - ParameterId["MapAttributionTextColor"] = "mapAttributionTextColor"; - // DPI_MapPaneBackgroundFill, having type string - ParameterId["MapPaneBackgroundFill"] = "mapPaneBackgroundFill"; - // DPI_MapScaleBorderColor, having type string - ParameterId["MapScaleBorderColor"] = "mapScaleBorderColor"; - // DPI_MapScaleColor, having type string - ParameterId["MapScaleColor"] = "mapScaleColor"; - // DPI_MapWaitTileFill, having type string - ParameterId["MapWaitTileFill"] = "mapWaitTileFill"; - // DPI_MarkColor, having type string - ParameterId["MarkColor"] = "markColor"; - // DPI_NavArrowDisabledColor, having type string - ParameterId["NavArrowDisabledColor"] = "navArrowDisabledColor"; - // DPI_NavArrowHoverColor, having type string - ParameterId["NavArrowHoverColor"] = "navArrowHoverColor"; - // DPI_NavArrowIdleColor, having type string - ParameterId["NavArrowIdleColor"] = "navArrowIdleColor"; - // DPI_NavArrowPressedColor, having type string - ParameterId["NavArrowPressedColor"] = "navArrowPressedColor"; - // DPI_PaneColor, having type string - ParameterId["PaneColor"] = "paneColor"; - // DPI_PressColor, having type string - ParameterId["PressColor"] = "pressColor"; - // DPI_ResizeBorderColor, having type string - ParameterId["ResizeBorderColor"] = "resizeBorderColor"; - // DPI_SelectBGColor, having type string - ParameterId["SelectBGColor"] = "selectBgColor"; - // DPI_SelectionTextColor, having type string - ParameterId["SelectionTextColor"] = "selectionTextColor"; - // DPI_SwatchBackgroundColor, having type string - ParameterId["SwatchBackgroundColor"] = "swatchBgColor"; - // DPI_SwatchBorderColor, having type string - ParameterId["SwatchBorderColor"] = "swatchBorderColor"; - // DPI_TabColor, having type string - ParameterId["TabColor"] = "tabColor"; - // DPI_Colors, having type string[] - ParameterId["Colors"] = "colors"; - // DPI_ColorMap, having type Dictionary(of string) - ParameterId["ColorMap"] = "colorMap"; - // DPI_Pixmap, having type string - ParameterId["Pixmap"] = "pixmap"; - // DPI_Image, having type string - ParameterId["Image"] = "image"; - // DPI_OverlayImage, having type string - ParameterId["OverlayImage"] = "overlayImage"; - // DPI_IconImage, having type string - ParameterId["IconImage"] = "iconImage"; - // DPI_ImageList, having type string[] - ParameterId["ImageList"] = "imageList"; - // DPI_ImageMap, having type Dictionary(of string) - ParameterId["ImageMap"] = "imageMap"; - // DPI_UUID, having type object - ParameterId["UUID"] = "uuid"; - // DPI_Nanoseconds, having type object - ParameterId["Nanoseconds"] = "nanoseconds"; - // DPI_Microseconds, having type object - ParameterId["Microseconds"] = "microseconds"; - // DPI_Milliseconds, having type object - ParameterId["Milliseconds"] = "milliseconds"; - // DPI_TimeoutS, having type object - ParameterId["TimeoutS"] = "timeoutS"; - // DPI_Minutes, having type object - ParameterId["Minutes"] = "minutes"; - // DPI_Hours, having type object - ParameterId["Hours"] = "hours"; - // DPI_CardType, having type CardType - ParameterId["CardType"] = "cardType"; - // DPI_DocParameterID, having type string - ParameterId["DocParameterID"] = "type"; - // DPI_ArgumentParam, having type string - ParameterId["ArgumentParam"] = "argumentParam"; - // DPI_ArgumentParams, having type string[] - ParameterId["ArgumentParams"] = "argumentParams"; - // DPI_ActionType, having type ActionType - ParameterId["ActionType"] = "actionType"; - // DPI_AnnotateEnum, having type AnnotateEnum - ParameterId["AnnotateEnum"] = "annotateEnum"; - // DPI_JoinType, having type SQLJoinType - ParameterId["JoinType"] = "joinType"; - // DPI_SupportedJoinTypes, having type SQLJoinType[] - ParameterId["SupportedJoinTypes"] = "supportedJoinTypes"; - // DPI_Rounding, having type Rounding - ParameterId["Rounding"] = "roundingEnum"; - // DPI_BodyType, having type BodyType - ParameterId["BodyType"] = "bodyType"; - // DPI_LineEnd, having type LineEnd - ParameterId["LineEnd"] = "lineEndEnum"; - // DPI_LineEndSize, having type LineEndSize - ParameterId["LineEndSize"] = "lineEndSizeEnum"; - // DPI_BrushSpecialFields, having type BrushSpecialFields - ParameterId["BrushSpecialFields"] = "specialFields"; - // DPI_CellSizeChange, having type CellSizeChange - ParameterId["CellSizeChange"] = "cellSizeChange"; - // DPI_CellType, having type CellType - ParameterId["CellType"] = "cellType"; - // DPI_ConnectionAttemptResult, having type ConnectionAttemptResult - ParameterId["ConnectionAttemptResult"] = "connectionAttemptResult"; - // DPI_ConnectionErrorStage, having type ConnectionErrorStage - ParameterId["ConnectionErrorStage"] = "connectionErrorStage"; - // DPI_ConnectionErrorType, having type ConnectionErrorType - ParameterId["ConnectionErrorType"] = "connectionErrorType"; - // DPI_DataServerConnectionResult, having type DataServerConnectionResult - ParameterId["DataServerConnectionResult"] = "dsConnectionResult"; - // DPI_DropWhen, having type DropWhen - ParameterId["DropWhen"] = "dropWhen"; - // DPI_DropType, having type DropFieldResult - ParameterId["DropType"] = "dropType"; - // DPI_EncodingType, having type EncodingType - ParameterId["EncodingType"] = "encodingType"; - // DPI_DropdownEncodingType, having type EncodingType - ParameterId["DropdownEncodingType"] = "dropdownEncodingType"; - // DPI_EncodingTypes, having type EncodingType[] - ParameterId["EncodingTypes"] = "encodingTypes"; - // DPI_FieldOrderType, having type FieldOrderType - ParameterId["FieldOrderType"] = "fieldOrderType"; - // DPI_FilterIconType, having type FilterIconType - ParameterId["FilterIconType"] = "filterIconType"; - // DPI_FilterIconTypes, having type FilterIconType[] - ParameterId["FilterIconTypes"] = "filterIconTypes"; - // DPI_FloatingToolbarVis, having type FloatingToolbarVisibility - ParameterId["FloatingToolbarVis"] = "toolbarVisibility"; - // DPI_FolderRole, having type FolderRole - ParameterId["FolderRole"] = "folderRole"; - // DPI_LegendType, having type Enum - ParameterId["LegendType"] = "legendType"; - // DPI_ForecastModelType, having type ForecastModelType - ParameterId["ForecastModelType"] = "forecastModelType"; - // DPI_ForecastTrendType, having type ForecastComponentType - ParameterId["ForecastTrendType"] = "forecastTrendType"; - // DPI_ForecastSeasonType, having type ForecastComponentType - ParameterId["ForecastSeasonType"] = "forecastSeasonType"; - // DPI_ForecastRangeType, having type ForecastRangeType - ParameterId["ForecastRangeType"] = "forecastRangeType"; - // DPI_ForecastStatus, having type ForecastStatus - ParameterId["ForecastStatus"] = "forecastStatus"; - // DPI_SheetForecastStatus, having type ForecastStatus - ParameterId["SheetForecastStatus"] = "sheetForecastStatus"; - // DPI_PDForecastStatusList, having type ForecastStatus[] - ParameterId["PDForecastStatusList"] = "paneDescriptorForecastStatusList"; - // DPI_ForecastColumnType, having type ForecastColumnType - ParameterId["ForecastColumnType"] = "forecastColumnType"; - // DPI_DataScaling, having type DataScaling - ParameterId["DataScaling"] = "dataScaling"; - // DPI_GetFilterItemsJsonResponse, having type GetJsonResponseEnum - ParameterId["GetFilterItemsJsonResponse"] = "getFilterItemsJsonResponse"; - // DPI_FilterSearchJsonResponse, having type GetJsonResponseEnum - ParameterId["FilterSearchJsonResponse"] = "filterSearchJsonResponse"; - // DPI_FilterSearchWithIndexJsonResponse, having type GetJsonResponseEnum - ParameterId["FilterSearchWithIndexJsonResponse"] = "filterSearchWithIndexJsonResponse"; - // DPI_FilterShowChildrenJsonResponse, having type GetJsonResponseEnum - ParameterId["FilterShowChildrenJsonResponse"] = "filterShowChildrenJsonResponse"; - // DPI_HAlignment, having type LabelHAlignment - ParameterId["HAlignment"] = "horizontalLabelAlignment"; - // DPI_JoinValidationError, having type JoinValidationError - ParameterId["JoinValidationError"] = "joinValidationError"; - // DPI_NameConflictResolution, having type NameConflictResolution - ParameterId["NameConflictResolution"] = "nameConflictResolution"; - // DPI_LabelDir, having type TextOrient - ParameterId["LabelDir"] = "labelDirection"; - // DPI_LabelAlign, having type TextAlign - ParameterId["LabelAlign"] = "labelAlignment"; - // DPI_LabelWrap, having type TextWrapMode - ParameterId["LabelWrap"] = "labelWrap"; - // DPI_WrapMode, having type TextWrapMode - ParameterId["WrapMode"] = "wrapMode"; - // DPI_MarkEnum, having type MarkEnum - ParameterId["MarkEnum"] = "markEnum"; - // DPI_PercentMode, having type PercentMode - ParameterId["PercentMode"] = "percentageMode"; - // DPI_ReferenceOptionsSet, having type ReferenceOptionsSet - ParameterId["ReferenceOptionsSet"] = "referenceOptionsSet"; - // DPI_ReferenceOptionsSets, having type ReferenceOptionsSet[] - ParameterId["ReferenceOptionsSets"] = "referenceOptionsSets"; - // DPI_RankType, having type RankType - ParameterId["RankType"] = "rankType"; - // DPI_RankTypeValues, having type RankType[] - ParameterId["RankTypeValues"] = "rankTypeValues"; - // DPI_SpecialValuesMode, having type SpecialValuesMode - ParameterId["SpecialValuesMode"] = "specialValuesMode"; - // DPI_VAlignment, having type LabelVAlignment - ParameterId["VAlignment"] = "verticalLabelAlignment"; - // DPI_ColorMode, having type ColorMode - ParameterId["ColorMode"] = "colorMode"; - // DPI_MarkLabelsMode, having type MarkLabelsMode - ParameterId["MarkLabelsMode"] = "markLabelsMode"; - // DPI_MarkLabelsScope, having type MarkLabelsScope - ParameterId["MarkLabelsScope"] = "markLabelsScope"; - // DPI_MarkLabelsVisibility, having type MarkLabelsVisibility - ParameterId["MarkLabelsVisibility"] = "markLabelsVisibility"; - // DPI_PrimitiveType, having type PrimitiveType - ParameterId["PrimitiveType"] = "primitiveType"; - // DPI_ActualPrimitiveType, having type PrimitiveType - ParameterId["ActualPrimitiveType"] = "actualPrimitiveType"; - // DPI_PrimitiveTypes, having type PrimitiveType[] - ParameterId["PrimitiveTypes"] = "primitiveTypes"; - // DPI_ShapeType, having type ShapeType - ParameterId["ShapeType"] = "shapeType"; - // DPI_SortType, having type SortType - ParameterId["SortType"] = "sortBy"; - // DPI_SortEnd, having type SortEnd - ParameterId["SortEnd"] = "sortEnd"; - // DPI_StackingMode, having type StackingMode - ParameterId["StackingMode"] = "stackingMode"; - // DPI_StyleTheme, having type StyleTheme - ParameterId["StyleTheme"] = "styleTheme"; - // DPI_TrendLineFitType, having type TrendLineFitType - ParameterId["TrendLineFitType"] = "fitType"; - // DPI_UpdateScope, having type UpdateScope - ParameterId["UpdateScope"] = "updateScope"; - // DPI_ParameterCtrlDisplayMode, having type DisplayMode - ParameterId["ParameterCtrlDisplayMode"] = "paramDisplayMode"; - // DPI_ParameterCtrlDisplayFlag, having type ParameterCtrlDisplayFlag - ParameterId["ParameterCtrlDisplayFlag"] = "paramDisplayFlag"; - // DPI_Included, having type QuantitativeIncludedValues - ParameterId["Included"] = "included"; - // DPI_CommandsType, having type CommandsType - ParameterId["CommandsType"] = "commandsType"; - // DPI_ParameterDomainType, having type DomainType - ParameterId["ParameterDomainType"] = "parameterDomainType"; - // DPI_FilterDomainType, having type DomainType - ParameterId["FilterDomainType"] = "filterDomainType"; - // DPI_FilterDomains, having type DomainType[] - ParameterId["FilterDomains"] = "filterDomains"; - // DPI_DatePeriodType, having type DatePeriodType - ParameterId["DatePeriodType"] = "datePeriodType"; - // DPI_FilterPatternType, having type PatternType - ParameterId["FilterPatternType"] = "filterPatternType"; - // DPI_FilterConditionType, having type ConditionType - ParameterId["FilterConditionType"] = "filterConditionType"; - // DPI_FiltersPresetType, having type PresetType - ParameterId["FiltersPresetType"] = "filtersPresetType"; - // DPI_FiltersRangeType, having type RangeType - ParameterId["FiltersRangeType"] = "filtersRangeType"; - // DPI_DateRangeType, having type RelativeDateRangeType - ParameterId["DateRangeType"] = "dateRangeType"; - // DPI_PageFlag, having type PageNavFlags - ParameterId["PageFlag"] = "pageFlag"; - // DPI_MarksToTrail, having type MarksToTrail - ParameterId["MarksToTrail"] = "marksToTrail"; - // DPI_TrailType, having type TrailType - ParameterId["TrailType"] = "trailType"; - // DPI_ChangePageDirection, having type ChangePageType - ParameterId["ChangePageDirection"] = "changeTo"; - // DPI_AnimationControl, having type PageAnimationControl - ParameterId["AnimationControl"] = "animationControl"; - // DPI_LinePattern, having type LinePattern - ParameterId["LinePattern"] = "linePattern"; - // DPI_LineCap, having type LineCap - ParameterId["LineCap"] = "lineCap"; - // DPI_LineJoin, having type LineJoin - ParameterId["LineJoin"] = "lineJoin"; - // DPI_LineAlignment, having type LineAlignment - ParameterId["LineAlignment"] = "lineAlignment"; - // DPI_FillMode, having type FillMode - ParameterId["FillMode"] = "fillMode"; - // DPI_CursorShape, having type CursorShape - ParameterId["CursorShape"] = "cursorShape"; - // DPI_ShowMeCommandType, having type ShowMeCommandType - ParameterId["ShowMeCommandType"] = "showMeCommandType"; - // DPI_ShelfIconType, having type ShelfIconType - ParameterId["ShelfIconType"] = "shelfIconType"; - // DPI_ShelfIconTypes, having type ShelfIconType[] - ParameterId["ShelfIconTypes"] = "shelfIconTypes"; - // DPI_ItemDrawStyle, having type ItemDrawStyle - ParameterId["ItemDrawStyle"] = "itemDrawStyle"; - // DPI_ScaleMode, having type ScaleMode - ParameterId["ScaleMode"] = "pageScaleMode"; - // DPI_PageOrientationOption, having type PageOrientation - ParameterId["PageOrientationOption"] = "pageOrientationOption"; - // DPI_PageSizeOption, having type PageSizeOption - ParameterId["PageSizeOption"] = "pageSizeOption"; - // DPI_SortRegionType, having type SortRegionType - ParameterId["SortRegionType"] = "sortRegion"; - // DPI_LegendItemLayout, having type LegendItemLayout - ParameterId["LegendItemLayout"] = "legendLayout"; - // DPI_LegendItemOrder, having type LegendItemOrder - ParameterId["LegendItemOrder"] = "legendOrder"; - // DPI_VizImageRegion, having type VizImageRegion - ParameterId["VizImageRegion"] = "r"; - // DPI_LegacyMenuName, having type LegacyMenuName - ParameterId["LegacyMenuName"] = "legacyMenuName"; - // DPI_LegacyMenuState, having type LegacyMenuState - ParameterId["LegacyMenuState"] = "legacyMenuState"; - // DPI_LegacyMenuStateList, having type LegacyMenuState[] - ParameterId["LegacyMenuStateList"] = "legacyMenuStates"; - // DPI_DimensionType, having type DimensionType - ParameterId["DimensionType"] = "dimensionType"; - // DPI_LayoutType, having type LayoutType - ParameterId["LayoutType"] = "layoutType"; - // DPI_ShelfType, having type ShelfType - ParameterId["ShelfType"] = "shelfType"; - // DPI_LastSelectionShelf, having type ShelfType - ParameterId["LastSelectionShelf"] = "lastShelf"; - // DPI_SchemaViewerDataSourceType, having type SchemaViewerDataSourceType - ParameterId["SchemaViewerDataSourceType"] = "schemaDatasourceType"; - // DPI_SchemaItemType, having type SchemaItemType - ParameterId["SchemaItemType"] = "schemaItemType"; - // DPI_HSMSelectionMode, having type SelectionMode - ParameterId["HSMSelectionMode"] = "hsmSelectionMode"; - // DPI_HSMDefaultMemberType, having type DefaultMemberType - ParameterId["HSMDefaultMemberType"] = "hsmDefaultMemberType"; - // DPI_HSMNotificationType, having type NotificationType - ParameterId["HSMNotificationType"] = "hsmNotificationType"; - // DPI_HSMSelectionRequestType, having type SelectionRequestType - ParameterId["HSMSelectionRequestType"] = "hsmSelectionRequestType"; - // DPI_HSMMemberSelectRequestType, having type MemberSelectRequestType - ParameterId["HSMMemberSelectRequestType"] = "hsmMemberSelectRequestType"; - // DPI_PivotStrategy, having type FieldPivotStrategy - ParameterId["PivotStrategy"] = "pivotStrategy"; - // DPI_AliasType, having type AliasType - ParameterId["AliasType"] = "aliasType"; - // DPI_DSODimensionSortOrder, having type DataSourceOrder - ParameterId["DSODimensionSortOrder"] = "dsoDimensionSortOrder"; - // DPI_DSOMeasureSortOrder, having type DataSourceOrder - ParameterId["DSOMeasureSortOrder"] = "dsoMeasureSortOrder"; - // DPI_DSOSortOrder, having type DataSourceOrder - ParameterId["DSOSortOrder"] = "dsoSortOrder"; - // DPI_VTAggType, having type VTAggType - ParameterId["VTAggType"] = "vtAggregation"; - // DPI_FieldTypeIconSet, having type FieldTypeIconSet - ParameterId["FieldTypeIconSet"] = "fieldIconSet"; - // DPI_VisualPart, having type VisualPart - ParameterId["VisualPart"] = "visualPart"; - // DPI_DefaultMapToolEnum, having type MapToolSelection - ParameterId["DefaultMapToolEnum"] = "defaultMapToolEnum"; - // DPI_DefaultMapUnitEnum, having type MapUnitSelectionEnum - ParameterId["DefaultMapUnitEnum"] = "defaultMapUnitEnum"; - // DPI_SceneModelDetail, having type Detail - ParameterId["SceneModelDetail"] = "sceneModelDetailEnum"; - // DPI_SceneModelHitType, having type HitType - ParameterId["SceneModelHitType"] = "sceneModelHitType"; - // DPI_HitTestStyle, having type HitTestStyle - ParameterId["HitTestStyle"] = "hitTestStyle"; - // DPI_MarkState, having type MarkState - ParameterId["MarkState"] = "markState"; - // DPI_SheetType, having type SheetType - ParameterId["SheetType"] = "sheetType"; - // DPI_DragSource, having type DragDropType - ParameterId["DragSource"] = "dragSource"; - // DPI_DropTarget, having type DragDropType - ParameterId["DropTarget"] = "dropTarget"; - // DPI_ShelfDropAction, having type ShelfDropAction - ParameterId["ShelfDropAction"] = "shelfDropAction"; - // DPI_ShelfDropContext, having type ShelfDropContext - ParameterId["ShelfDropContext"] = "shelfDropContext"; - // DPI_FilterSelectionTracking, having type SelectionTracking - ParameterId["FilterSelectionTracking"] = "filterSelectionTracking"; - // DPI_FilterUpdateType, having type FilterUpdateType - ParameterId["FilterUpdateType"] = "filterUpdateType"; - // DPI_FilterUpdateQualifierType, having type FilterUpdateQualifierType - ParameterId["FilterUpdateQualifierType"] = "filterUpdateQualifierType"; - // DPI_ParameterError, having type ParameterError - ParameterId["ParameterError"] = "parameterError"; - // DPI_SelectionType, having type SelectionType - ParameterId["SelectionType"] = "selectionType"; - // DPI_SelectionUpdateType, having type SelectionUpdateType - ParameterId["SelectionUpdateType"] = "selectionUpdateType"; - // DPI_SelectOptions, having type SelectOptions - ParameterId["SelectOptions"] = "selectOptions"; - // DPI_WhitespaceSelectionBehavior, having type WhitespaceSelectionBehavior - ParameterId["WhitespaceSelectionBehavior"] = "whitespaceSelectionBehavior"; - // DPI_AxisOrientation, having type Orientation - ParameterId["AxisOrientation"] = "axisOrientation"; - // DPI_DecimalMode, having type DecimalMode - ParameterId["DecimalMode"] = "decimalMode"; - // DPI_ActivationMethod, having type ActivationMethod - ParameterId["ActivationMethod"] = "activation"; - // DPI_SourceType, having type SourceType - ParameterId["SourceType"] = "sourceType"; - // DPI_OnClear, having type OnClear - ParameterId["OnClear"] = "onClear"; - // DPI_MergeOrSplit, having type MergeOrSplit - ParameterId["MergeOrSplit"] = "mergeOrSplit"; - // DPI_FilterMode, having type FilterMode - ParameterId["FilterMode"] = "filterMode"; - // DPI_FilterType, having type FilterType - ParameterId["FilterType"] = "filterType"; - // DPI_ZoneType, having type ZoneType - ParameterId["ZoneType"] = "zoneType"; - // DPI_ZoneLayoutType, having type ZoneLayoutType - ParameterId["ZoneLayoutType"] = "zoneLayoutType"; - // DPI_QuickTableCalcType, having type QuickTableCalcCommandType - ParameterId["QuickTableCalcType"] = "quickTableCalcType"; - // DPI_TableCalcCommandType, having type TableCalcCommandType - ParameterId["TableCalcCommandType"] = "tableCalcCommandType"; - // DPI_TableCalcAddressType, having type TableCalcAddressCommandType - ParameterId["TableCalcAddressType"] = "tableCalcAddressType"; - // DPI_MarkLayoutPrimitive, having type Primitive - ParameterId["MarkLayoutPrimitive"] = "markLayoutPrimitive"; - // DPI_MarkLayoutVizType, having type VizType - ParameterId["MarkLayoutVizType"] = "markLayoutVizType"; - // DPI_MarkAlignment, having type MarkAlignment - ParameterId["MarkAlignment"] = "markAlignment"; - // DPI_ModifyZoneZOrderType, having type ModifyZoneZOrderCommandType - ParameterId["ModifyZoneZOrderType"] = "modifyZoneZOrderType"; - // DPI_TextRegionHAlign, having type TextRegionHAlign - ParameterId["TextRegionHAlign"] = "halign"; - // DPI_TextRegionVAlign, having type TextRegionVAlign - ParameterId["TextRegionVAlign"] = "valign"; - // DPI_PathElement, having type PathElement - ParameterId["PathElement"] = "pathElement"; - // DPI_PathElements, having type PathElement[] - ParameterId["PathElements"] = "pathElements"; - // DPI_RenderMode, having type RenderMode - ParameterId["RenderMode"] = "renderMode"; - // DPI_FontStyle, having type TableauFontStyle - ParameterId["FontStyle"] = "fontStyle"; - // DPI_FontWeight, having type FontWeight - ParameterId["FontWeight"] = "fontWeight"; - // DPI_TextDecoration, having type TextDecoration - ParameterId["TextDecoration"] = "textDecoration"; - // DPI_BorderStyle, having type BorderStyle - ParameterId["BorderStyle"] = "borderStyle"; - // DPI_BorderStyleTop, having type BorderStyle - ParameterId["BorderStyleTop"] = "borderStyleTop"; - // DPI_BorderStyleRight, having type BorderStyle - ParameterId["BorderStyleRight"] = "borderStyleRight"; - // DPI_BorderStyleBottom, having type BorderStyle - ParameterId["BorderStyleBottom"] = "borderStyleBottom"; - // DPI_BorderStyleLeft, having type BorderStyle - ParameterId["BorderStyleLeft"] = "borderStyleLeft"; - // DPI_FloatingToolbarVisibility, having type FloatingToolbarVisibility - ParameterId["FloatingToolbarVisibility"] = "floatingToolbarVisibility"; - // DPI_GeoSearchVisibility, having type GeoSearchVisibility - ParameterId["GeoSearchVisibility"] = "geographicSearchVisibility"; - // DPI_MapScaleVisibility, having type MapScaleVisibility - ParameterId["MapScaleVisibility"] = "mapScaleVisibility"; - // DPI_VizNavigationSetting, having type VizNavigationSetting - ParameterId["VizNavigationSetting"] = "vizNavigationSetting"; - // DPI_AutoDrillVisibility, having type AutoDrillVisibility - ParameterId["AutoDrillVisibility"] = "autoDrillVisibility"; - // DPI_ClientUIMetricType, having type ClientUIMetricType - ParameterId["ClientUIMetricType"] = "clientUiMetricType"; - // DPI_SheetScrollDirection, having type SheetScrollDirection - ParameterId["SheetScrollDirection"] = "sheetScrollDirection"; - // DPI_SizeMode, having type SizeMode - ParameterId["SizeMode"] = "sizeMode"; - // DPI_PerspectiveAggregate, having type PerspectiveAggregate - ParameterId["PerspectiveAggregate"] = "perspectiveAggregation"; - // DPI_StyleAttribute, having type StyleAttribute - ParameterId["StyleAttribute"] = "styleAttribute"; - // DPI_StyleAttributes, having type StyleAttribute[] - ParameterId["StyleAttributes"] = "styleAttributes"; - // DPI_StyleElement, having type StyleElement - ParameterId["StyleElement"] = "styleElement"; - // DPI_StyleDataClass, having type StyleDataClass - ParameterId["StyleDataClass"] = "styleClass"; - // DPI_StyleFieldScope, having type StyleFieldScope - ParameterId["StyleFieldScope"] = "styleScope"; - // DPI_FormatControlType, having type FormatControlType - ParameterId["FormatControlType"] = "formatType"; - // DPI_LineInterpolationMode, having type LineInterpolationMode - ParameterId["LineInterpolationMode"] = "lineInterpolationMode"; - // DPI_LineMarkerPosition, having type LineMarkerPosition - ParameterId["LineMarkerPosition"] = "lineMarkerPosition"; - // DPI_MarkersMode, having type MarkMarkersMode - ParameterId["MarkersMode"] = "markersMode"; - // DPI_AppConfigEnum, having type AppConfigEnum - ParameterId["AppConfigEnum"] = "appConfigEnum"; - // DPI_ColorPaletteType, having type ColorPaletteType - ParameterId["ColorPaletteType"] = "colorPaletteType"; - // DPI_ExtractType, having type ExtractType - ParameterId["ExtractType"] = "extractType"; - // DPI_ActivityDisposition, having type ActivityDisposition - ParameterId["ActivityDisposition"] = "activityDisposition"; - // DPI_ActivityResult, having type ActivityResult - ParameterId["ActivityResult"] = "activityResult"; - // DPI_TooltipMode, having type TooltipMode - ParameterId["TooltipMode"] = "tooltipMode"; - // DPI_RuntimeOutput, having type RuntimeOutput - ParameterId["RuntimeOutput"] = "runtimeOutput"; - // DPI_AnalyticsObjectType, having type AnalyticsObjectType - ParameterId["AnalyticsObjectType"] = "analyticsObjectType"; - // DPI_UIAutomationStatus, having type UIAutomationCommandStatus - ParameterId["UIAutomationStatus"] = "uiAutomationStatus"; - // DPI_TableViewDataType, having type TableViewDataType - ParameterId["TableViewDataType"] = "tableViewerDataType"; - // DPI_UnitsFormat, having type UnitsFormatEnum - ParameterId["UnitsFormat"] = "unitsFormat"; - // DPI_FilterLimitType, having type LimitType - ParameterId["FilterLimitType"] = "filterLimitType"; - // DPI_DistributionSelectedType, having type DistributionType - ParameterId["DistributionSelectedType"] = "distributionSelectedType"; - // DPI_DistributionType, having type DistributionType - ParameterId["DistributionType"] = "distributionType"; - // DPI_TranslatedDistributionType, having type TranslatedDistributionTypePresModel - ParameterId["TranslatedDistributionType"] = "translatedDistributionType"; - // DPI_TranslatedDistributionTypes, having type TranslatedDistributionTypePresModel[] - ParameterId["TranslatedDistributionTypes"] = "translatedDistributionTypes"; - // DPI_RefLineFormulaGroup, having type FormulaGroup - ParameterId["RefLineFormulaGroup"] = "reflineFormulaGroup"; - // DPI_ReferenceLineScopeType, having type ScopeType - ParameterId["ReferenceLineScopeType"] = "referenceLineScopeType"; - // DPI_StDevType, having type StDevType - ParameterId["StDevType"] = "stdevType"; - // DPI_ShowBounds, having type ShowBounds - ParameterId["ShowBounds"] = "showBounds"; - // DPI_BoxplotWhiskerType, having type BoxplotWhiskerType - ParameterId["BoxplotWhiskerType"] = "boxplotWhiskerType"; - // DPI_ReferenceLineLabelType, having type LabelType - ParameterId["ReferenceLineLabelType"] = "referenceLineLabelType"; - // DPI_PairedReferenceLineLabelType, having type LabelType - ParameterId["PairedReferenceLineLabelType"] = "pairedReferenceLineLabelType"; - // DPI_ConfidenceIntervalSelectedState, having type ConfidenceIntervalState - ParameterId["ConfidenceIntervalSelectedState"] = "confidenceIntervalSelectedState"; - // DPI_ConfidenceIntervalState, having type ConfidenceIntervalState - ParameterId["ConfidenceIntervalState"] = "confidenceIntervalState"; - // DPI_TranslatedLabelType, having type TranslatedLabelTypePresModel - ParameterId["TranslatedLabelType"] = "translatedLabelType"; - // DPI_ReferenceLineValidLabelTypes, having type TranslatedLabelTypePresModel[] - ParameterId["ReferenceLineValidLabelTypes"] = "validReferenceLineLabelTypes"; - // DPI_ReferenceLineFormulaType, having type FormulaType - ParameterId["ReferenceLineFormulaType"] = "referenceLineFormulaType"; - // DPI_PairedReferenceLineFormulaType, having type FormulaType - ParameterId["PairedReferenceLineFormulaType"] = "pairedReferenceLineFormulaType"; - // DPI_TranslatedFormulaType, having type TranslatedFormulaTypePresModel - ParameterId["TranslatedFormulaType"] = "translatedFormulaType"; - // DPI_ReferenceLineValidFormulaTypes, having type TranslatedFormulaTypePresModel[] - ParameterId["ReferenceLineValidFormulaTypes"] = "validReferenceLineFormulaTypes"; - // DPI_ReferenceLineValidPairedFormulaTypes, having type TranslatedFormulaTypePresModel[] - ParameterId["ReferenceLineValidPairedFormulaTypes"] = "validReferenceLinePairedFormulaTypes"; - // DPI_TranslatedConfidenceIntervalState, having type TranslatedConfidenceIntervalStatePresModel - ParameterId["TranslatedConfidenceIntervalState"] = "translatedConfidenceIntervalState"; - // DPI_TranslatedConfidenceIntervalStates, having type TranslatedConfidenceIntervalStatePresModel[] - ParameterId["TranslatedConfidenceIntervalStates"] = "translatedConfidenceIntervalStates"; - // DPI_TranslatedStDevType, having type TranslatedStDevTypePresModel - ParameterId["TranslatedStDevType"] = "translatedStdevType"; - // DPI_TranslatedStDevTypes, having type TranslatedStDevTypePresModel[] - ParameterId["TranslatedStDevTypes"] = "translatedStdevTypes"; - // DPI_ReferenceLineLODCalcType, having type LODCalcType - ParameterId["ReferenceLineLODCalcType"] = "referenceLineLodCalcType"; - // DPI_ValueDomainType, having type ValueDomainType - ParameterId["ValueDomainType"] = "valueDomainType"; - // DPI_ValueDomainTypes, having type ValueDomainType[] - ParameterId["ValueDomainTypes"] = "valueDomainTypes"; - // DPI_OperationType, having type OperationType - ParameterId["OperationType"] = "operationType"; - // DPI_OperationTypes, having type OperationType[] - ParameterId["OperationTypes"] = "operationTypes"; - // DPI_ConnectionTypeCategory, having type ConnectionTypeCategory - ParameterId["ConnectionTypeCategory"] = "connectionTypeCategory"; - // DPI_ConnectionTypeGroup, having type ConnectionTypeGroup - ParameterId["ConnectionTypeGroup"] = "connectionTypeGroup"; - // DPI_CommandRedirectType, having type CommandRedirectType - ParameterId["CommandRedirectType"] = "commandRedirectType"; - // DPI_CustomSplitMode, having type SplitMode - ParameterId["CustomSplitMode"] = "customSplitMode"; - // DPI_CustomSplitSeparatorType, having type SeparatorType - ParameterId["CustomSplitSeparatorType"] = "customSplitSeparatorType"; - // DPI_LevelSelectionState, having type LevelSelectionState - ParameterId["LevelSelectionState"] = "levelSelectionState"; - // DPI_LevelSelectionStates, having type LevelSelectionState[] - ParameterId["LevelSelectionStates"] = "levelSelectionStates"; - // DPI_SourceDestIcon, having type SourceDestIcon - ParameterId["SourceDestIcon"] = "sourceDestIcon"; - // DPI_LegendLayout, having type LegendLayout - ParameterId["LegendLayout"] = "pageLegendLayout"; - // DPI_ImagesEditResultCode, having type ImagesEditResultCode - ParameterId["ImagesEditResultCode"] = "imagesEditResultCode"; - // DPI_CalculationContext, having type CalculationContext - ParameterId["CalculationContext"] = "calculationContext"; - // DPI_WorkgroupPublishErrorType, having type WorkgroupPublishErrorType - ParameterId["WorkgroupPublishErrorType"] = "workgroupPublishErrorType"; - // DPI_IsParameter, having type TriBool - ParameterId["IsParameter"] = "isParameter"; - // DPI_AddressingState, having type WidgetState - ParameterId["AddressingState"] = "addressingState"; - // DPI_AllPagesState, having type WidgetState - ParameterId["AllPagesState"] = "allPagesState"; - // DPI_AtTheLevelState, having type WidgetState - ParameterId["AtTheLevelState"] = "atTheLevelState"; - // DPI_ComputeCompoundedRateState, having type WidgetState - ParameterId["ComputeCompoundedRateState"] = "computeCompoundedRateState"; - // DPI_CustomNullIfIncompleteState, having type WidgetState - ParameterId["CustomNullIfIncompleteState"] = "customNullIfIncompleteState"; - // DPI_NestedCalcsState, having type WidgetState - ParameterId["NestedCalcsState"] = "nestedCalcsState"; - // DPI_RankTypeState, having type WidgetState - ParameterId["RankTypeState"] = "rankTypeState"; - // DPI_ReferenceOptionsState, having type WidgetState - ParameterId["ReferenceOptionsState"] = "referenceOptionsState"; - // DPI_RestartEveryState, having type WidgetState - ParameterId["RestartEveryState"] = "restartEveryState"; - // DPI_SortAggState, having type WidgetState - ParameterId["SortAggState"] = "sortAggState"; - // DPI_SortState, having type WidgetState - ParameterId["SortState"] = "sortState"; - // DPI_TableCalcTypeState, having type WidgetState - ParameterId["TableCalcTypeState"] = "tableCalcTypeState"; - // DPI_TableCalcAssistanceWidgetState, having type WidgetState - ParameterId["TableCalcAssistanceWidgetState"] = "tableCalcAssistanceWidgetState"; - // DPI_CalcNestingLevel, having type CalcNestingLevel - ParameterId["CalcNestingLevel"] = "calcNestingLevel"; - // DPI_DataProviderType, having type DataProviderType - ParameterId["DataProviderType"] = "dataProviderType"; - // DPI_HeuristicCommandReinterpretation, having type HeuristicCommandReinterpretation - ParameterId["HeuristicCommandReinterpretation"] = "heuristicCommandReinterpretation"; - // DPI_ExtractRefreshStatus, having type ExtractRefreshStatus - ParameterId["ExtractRefreshStatus"] = "extractRefreshStatus"; - // DPI_RichTextEditorWidgetKey, having type RichTextEditorWidgetKey - ParameterId["RichTextEditorWidgetKey"] = "richTextEditorWidgetKey"; - // DPI_RichTextWidgetKeys, having type RichTextEditorWidgetKey[] - ParameterId["RichTextWidgetKeys"] = "richTextWidgetKeys"; - // DPI_TypeOfFormatItem, having type TypeOfFormatItem - ParameterId["TypeOfFormatItem"] = "typeOfFormatItem"; - // DPI_TypeOfFormatContainer, having type TypeOfFormatContainer - ParameterId["TypeOfFormatContainer"] = "typeOfFormatContainer"; - // DPI_TypeOfFormatControl, having type TypeOfFormatControl - ParameterId["TypeOfFormatControl"] = "typeOfFormatControl"; - // DPI_FormatWidgetKey, having type FormatWidgetKey - ParameterId["FormatWidgetKey"] = "formatWidgetKey"; - // DPI_ColorSwatchType, having type ColorSwatchType - ParameterId["ColorSwatchType"] = "formatColorSwatchType"; - // DPI_PickerType, having type PickerType - ParameterId["PickerType"] = "pickerType"; - // DPI_ExtractHistoryRefreshType, having type RefreshType - ParameterId["ExtractHistoryRefreshType"] = "extractHistoryRefreshTypeEnum"; - // DPI_AxisFoldState, having type AxisFoldState - ParameterId["AxisFoldState"] = "axisFoldState"; - // DPI_TickMarkSpacingUnits, having type TickSpacingUnits - ParameterId["TickMarkSpacingUnits"] = "tickSpacingUnits"; - // DPI_TickMarkState, having type TickMarkState - ParameterId["TickMarkState"] = "tickMarkState"; - // DPI_AxisRangeType, having type AxisRangeType - ParameterId["AxisRangeType"] = "axisRangeType"; - // DPI_ScaleType, having type ScaleType - ParameterId["ScaleType"] = "scaleType"; - // DPI_DashboardDeviceLayout, having type DashboardDeviceLayout - ParameterId["DashboardDeviceLayout"] = "dashboardDeviceLayout"; - // DPI_ActivateDeviceLayout, having type DashboardDeviceLayout - ParameterId["ActivateDeviceLayout"] = "activateDeviceLayout"; - // DPI_DashboardDeviceLayouts, having type DashboardDeviceLayout[] - ParameterId["DashboardDeviceLayouts"] = "dashboardDeviceLayouts"; - // DPI_DeviceSource, having type DeviceSource - ParameterId["DeviceSource"] = "deviceSource"; - // DPI_DashboardSizingDimension, having type DashboardSizingDimension - ParameterId["DashboardSizingDimension"] = "dashboardSizingDimension"; - // DPI_DashboardSizingMode, having type DashboardSizingMode - ParameterId["DashboardSizingMode"] = "dashboardSizingMode"; - // DPI_FlipboardNavType, having type FlipboardNavType - ParameterId["FlipboardNavType"] = "flipboardNavType"; - // DPI_FieldPickerDialogUseCase, having type FieldPickerDialogUseCase - ParameterId["FieldPickerDialogUseCase"] = "fieldPickerDialogUseCase"; - // DPI_StartOfWeekEnum, having type SOWValue - ParameterId["StartOfWeekEnum"] = "startOfWeekEnum"; - // DPI_StartOfFiscalYear, having type FYSValues - ParameterId["StartOfFiscalYear"] = "startOfFiscalYear"; - // DPI_TotalsInclusionValue, having type TotalsInclusion - ParameterId["TotalsInclusionValue"] = "totalsInclusionValue"; - // DPI_FormatCode, having type FormatCode - ParameterId["FormatCode"] = "formatCode"; - // DPI_FindType, having type FindType - ParameterId["FindType"] = "findType"; - // DPI_PerspectiveType, having type PerspectiveType - ParameterId["PerspectiveType"] = "perspectiveType"; - // DPI_GeometryType, having type GeometryType - ParameterId["GeometryType"] = "geometryType"; - // DPI_PaneLabelComposition, having type PaneLabelComposition - ParameterId["PaneLabelComposition"] = "paneLabelComposition"; - // DPI_WarningType, having type WarningType - ParameterId["WarningType"] = "warningType"; - // DPI_UIMode, having type WorkbookUIMode - ParameterId["UIMode"] = "uiMode"; - // DPI_MenuItemId, having type TopLevelMenuItem - ParameterId["MenuItemId"] = "menuItemId"; - // DPI_CommandReturn, having type object - ParameterId["CommandReturn"] = "commandReturn"; - // DPI_LegacyPresModel, having type object - ParameterId["LegacyPresModel"] = "legacyPresModel"; - // DPI_PresentationModel, having type object - ParameterId["PresentationModel"] = "presModelHolder"; - // DPI_Event, having type object - ParameterId["Event"] = "eventContainer"; - // DPI_LineStyle, having type Array - ParameterId["LineStyle"] = "lineStyle"; - // DPI_StrokeStyle, having type Array - ParameterId["StrokeStyle"] = "strokeStyle"; - // DPI_Schema, having type Array - ParameterId["Schema"] = "schema"; - // DPI_StartTuple, having type Array - ParameterId["StartTuple"] = "startTuple"; - // DPI_EndTuple, having type Array - ParameterId["EndTuple"] = "endTuple"; - // DPI_Tuple, having type Array - ParameterId["Tuple"] = "tuple"; - // DPI_Tuples, having type Array[] - ParameterId["Tuples"] = "tuples"; - // DPI_CustomDomainTuples, having type Array[] - ParameterId["CustomDomainTuples"] = "customDomainTuples"; - // DPI_UpdatedTuples, having type Array[] - ParameterId["UpdatedTuples"] = "updatedTuples"; - // DPI_Table, having type Array - ParameterId["Table"] = "table"; - // DPI_AliasedValue, having type Array - ParameterId["AliasedValue"] = "valueAlias"; - // DPI_FirstAliasedValue, having type Array - ParameterId["FirstAliasedValue"] = "firstAlisedValue"; - // DPI_MaximumRange, having type Array - ParameterId["MaximumRange"] = "maximumRangeValue"; - // DPI_MinimumRange, having type Array - ParameterId["MinimumRange"] = "minimumRangeValue"; - // DPI_SecondAliasedValue, having type Array - ParameterId["SecondAliasedValue"] = "secondAlisedValue"; - // DPI_AliasedSelectionList, having type Array[] - ParameterId["AliasedSelectionList"] = "aliasedSelectionList"; - // DPI_AliasedValues, having type Array[] - ParameterId["AliasedValues"] = "valuesAliases"; - // DPI_VerboseAliasedRangeMax, having type Array - ParameterId["VerboseAliasedRangeMax"] = "verboseAliasedRangeMax"; - // DPI_VerboseAliasedValue, having type Array - ParameterId["VerboseAliasedValue"] = "verboseAliasedValue"; - // DPI_MultiBucket, having type MultiBucket - ParameterId["MultiBucket"] = "xValues"; - // DPI_PageName, having type PageName - ParameterId["PageName"] = "pageName"; - // DPI_Selector, having type object - ParameterId["Selector"] = "selector"; - // DPI_PaneId, having type object - ParameterId["PaneId"] = "paneId"; - // DPI_PaneIds, having type PaneId[] - ParameterId["PaneIds"] = "paneIds"; - // DPI_ImageRegionInfo, having type object - ParameterId["ImageRegionInfo"] = "vizRegionRect"; - // DPI_ImageRegionInfoList, having type object[] - ParameterId["ImageRegionInfoList"] = "vizRegionRectList"; - // DPI_VisualID, having type VisualID - ParameterId["VisualID"] = "visualId"; - // DPI_VisualIDPM, having type VisualIDPresModel - ParameterId["VisualIDPM"] = "visualIdPresModel"; - // DPI_InvalidSheets, having type VisualIDPresModel[] - ParameterId["InvalidSheets"] = "invalidSheets"; - // DPI_VisualIDPMs, having type VisualIDPresModel[] - ParameterId["VisualIDPMs"] = "visualIds"; - // DPI_SheetPathPM, having type SheetPathPresModel - ParameterId["SheetPathPM"] = "sheetPath"; - // DPI_CapturedSheetPM, having type SheetPathPresModel - ParameterId["CapturedSheetPM"] = "capturedSheetPm"; - // DPI_CurrentSheetPM, having type SheetPathPresModel - ParameterId["CurrentSheetPM"] = "currentSheetPm"; - // DPI_DashboardPM, having type SheetPathPresModel - ParameterId["DashboardPM"] = "dashboardPm"; - // DPI_NewSheetPM, having type SheetPathPresModel - ParameterId["NewSheetPM"] = "newSheetPm"; - // DPI_SheetNamePM, having type SheetPathPresModel - ParameterId["SheetNamePM"] = "sheetNamePm"; - // DPI_SheetPM, having type SheetPathPresModel - ParameterId["SheetPM"] = "sheetPm"; - // DPI_SourceDashboardPM, having type SheetPathPresModel - ParameterId["SourceDashboardPM"] = "sourceDashboardPm"; - // DPI_SourceSheetPM, having type SheetPathPresModel - ParameterId["SourceSheetPM"] = "sourceSheetPm"; - // DPI_TargetSheetPM, having type SheetPathPresModel - ParameterId["TargetSheetPM"] = "targetSheetPm"; - // DPI_WorksheetPM, having type SheetPathPresModel - ParameterId["WorksheetPM"] = "worksheetPm"; - // DPI_ModifiedSheets, having type SheetPathPresModel[] - ParameterId["ModifiedSheets"] = "modifiedSheets"; - // DPI_DataColumn, having type DataColumnPresModel - ParameterId["DataColumn"] = "dataColumn"; - // DPI_DataColumns, having type DataColumnPresModel[] - ParameterId["DataColumns"] = "dataColumns"; - // DPI_Addresses, having type DataColumnPresModel[] - ParameterId["Addresses"] = "addresses"; - // DPI_EncodingColumns, having type Dictionary(of DataColumnPresModel) - ParameterId["EncodingColumns"] = "encodingColumns"; - // DPI_TextRunColumns, having type Dictionary(of DataColumnPresModel) - ParameterId["TextRunColumns"] = "textRunColumns"; - // DPI_TextStyleColumns, having type Dictionary(of DataColumnPresModel) - ParameterId["TextStyleColumns"] = "textStyleColumns"; - // DPI_NamedDataColumn, having type NamedDataColumnPresModel - ParameterId["NamedDataColumn"] = "namedDataColumn"; - // DPI_NamedDataColumns, having type NamedDataColumnPresModel[] - ParameterId["NamedDataColumns"] = "namedDataColumns"; - // DPI_DataTable, having type DataTablePresModel - ParameterId["DataTable"] = "dataTable"; - // DPI_ActionSpecification, having type None - ParameterId["ActionSpecification"] = "actionSpec"; - // DPI_Column, having type Column - ParameterId["Column"] = "columnContext"; - // DPI_SetFunction, having type SetFunction - ParameterId["SetFunction"] = "setFunction"; - // DPI_SetFunctions, having type SetFunctions - ParameterId["SetFunctions"] = "setFunctions"; - // DPI_VisualProfileShowMe, having type VisualProfileShowMe - ParameterId["VisualProfileShowMe"] = "vpsm"; - // DPI_DataSourcePtr, having type DataSource - ParameterId["DataSourcePtr"] = "datasourcePtr"; - // DPI_WorkgroupConnection, having type WorkgroupConnection - ParameterId["WorkgroupConnection"] = "workgroupConnection"; - // DPI_Authenticator, having type AuthenticatorRawPtr - ParameterId["Authenticator"] = "authenticator"; - // DPI_UpgradeAttr, having type UpgradeAttr - ParameterId["UpgradeAttr"] = "upgradeAttr"; - // DPI_ExtractAttr, having type ExtractAttr - ParameterId["ExtractAttr"] = "extractAttr"; - // DPI_RefreshAttr, having type RefreshAttr - ParameterId["RefreshAttr"] = "refreshAttr"; - // DPI_ContextSpecification, having type ContextSpecification - ParameterId["ContextSpecification"] = "contextSpecification"; - // DPI_SchemaViewerSelector, having type SchemaViewerSelectorPtr - ParameterId["SchemaViewerSelector"] = "schemaViewerSelector"; - // DPI_Buckets, having type Buckets - ParameterId["Buckets"] = "buckets"; - // DPI_LegendItems, having type MultiBuckets - ParameterId["LegendItems"] = "legendItems"; - // DPI_LegendItem, having type MultiBucket - ParameterId["LegendItem"] = "legendItem"; - // DPI_SourceItem, having type MultiBucket - ParameterId["SourceItem"] = "sourceItem"; - // DPI_DestItem, having type MultiBucket - ParameterId["DestItem"] = "destItem"; - // DPI_IQuickSortState, having type IQuickSortState - ParameterId["IQuickSortState"] = "quickSortState"; - // DPI_AppBuildDate, having type DateTime - ParameterId["AppBuildDate"] = "appBuildDate"; - // DPI_ForecastDateRangeEnd, having type DateTime - ParameterId["ForecastDateRangeEnd"] = "forecastDateRangeEnd"; - // DPI_ForecastDateRangeStart, having type DateTime - ParameterId["ForecastDateRangeStart"] = "forecastDateRangeStart"; - // DPI_LastModified, having type DateTime - ParameterId["LastModified"] = "lastModified"; - // DPI_SearchDomainPtr, having type MultiDomain - ParameterId["SearchDomainPtr"] = "searchDomainPtr"; - // DPI_ResultsDomainPtr, having type MultiDomain - ParameterId["ResultsDomainPtr"] = "resultsDomainPtr"; - // DPI_Actions, having type object - ParameterId["Actions"] = "actions"; - // DPI_SRCommands, having type object - ParameterId["SRCommands"] = "selectionRelaxationCommands"; - // DPI_Commands, having type object - ParameterId["Commands"] = "commands"; - // DPI_DataTypeCommands, having type object - ParameterId["DataTypeCommands"] = "datatypeCommands"; - // DPI_MultiSelectCommands, having type object - ParameterId["MultiSelectCommands"] = "multiselectCommands"; - // DPI_NonVizCommands, having type object - ParameterId["NonVizCommands"] = "nonVizCommands"; - // DPI_QuickFilterCommands, having type object - ParameterId["QuickFilterCommands"] = "quickFilterCommands"; - // DPI_ShowMeCommands, having type object - ParameterId["ShowMeCommands"] = "showMeCommands"; - // DPI_SortIndicatorMenu, having type object - ParameterId["SortIndicatorMenu"] = "sortIndicatorMenu"; - // DPI_StandardCommands, having type object - ParameterId["StandardCommands"] = "standardCommands"; - // DPI_VizCommands, having type object - ParameterId["VizCommands"] = "vizCommands"; - // DPI_ZoneChromeCommands, having type object - ParameterId["ZoneChromeCommands"] = "zoneChromeCommands"; - // DPI_CommandItem, having type CommandsItem - ParameterId["CommandItem"] = "commandItem"; - // DPI_CommandItems, having type CommandsItem[] - ParameterId["CommandItems"] = "commandItems"; - // DPI_Command, having type SimpleCommandsPresModel - ParameterId["Command"] = "simpleCommandModel"; - // DPI_AddCommand, having type SimpleCommandsPresModel - ParameterId["AddCommand"] = "addSimpleCommandModel"; - // DPI_RemoveCommand, having type SimpleCommandsPresModel - ParameterId["RemoveCommand"] = "removeSimpleCommandModel"; - // DPI_AcceptCommand, having type SimpleCommandsPresModel - ParameterId["AcceptCommand"] = "acceptSimpleCommandModel"; - // DPI_DeclineCommand, having type SimpleCommandsPresModel - ParameterId["DeclineCommand"] = "declineSimpleCommandModel"; - // DPI_DropCommand, having type SimpleCommandsPresModel - ParameterId["DropCommand"] = "dropCommandModel"; - // DPI_EditCaptionCommand, having type SimpleCommandsPresModel - ParameterId["EditCaptionCommand"] = "editCaptionCommandModel"; - // DPI_FontCommand, having type SimpleCommandsPresModel - ParameterId["FontCommand"] = "fontCommandModel"; - // DPI_LineStyleCommand, having type SimpleCommandsPresModel - ParameterId["LineStyleCommand"] = "lineStyleCommandModel"; - // DPI_FormatCommand, having type SimpleCommandsPresModel - ParameterId["FormatCommand"] = "formatCommandModel"; - // DPI_DestructorCommand, having type SimpleCommandsPresModel - ParameterId["DestructorCommand"] = "destructorCommand"; - // DPI_ClearFormatCommand, having type SimpleCommandsPresModel - ParameterId["ClearFormatCommand"] = "clearFormatCommandModel"; - // DPI_RichTextCommand, having type SimpleCommandsPresModel - ParameterId["RichTextCommand"] = "richTextCommandModel"; - // DPI_SortIndicatorCommand, having type SimpleCommandsPresModel - ParameterId["SortIndicatorCommand"] = "sortIndicatorCommand"; - // DPI_ResizeRowCommand, having type SimpleCommandsPresModel - ParameterId["ResizeRowCommand"] = "resizeRowCommandModel"; - // DPI_ResizeColCommand, having type SimpleCommandsPresModel - ParameterId["ResizeColCommand"] = "resizeColCommandModel"; - // DPI_CommandList, having type SimpleCommandsPresModel[] - ParameterId["CommandList"] = "commandList"; - // DPI_ParameterCtrl, having type ParameterCtrlPresModel - ParameterId["ParameterCtrl"] = "parameterControl"; - // DPI_ParameterCtrls, having type ParameterCtrlPresModel[] - ParameterId["ParameterCtrls"] = "parameterControls"; - // DPI_PageModel, having type PagePresModel - ParameterId["PageModel"] = "pageModel"; - // DPI_PageTrailOptions, having type PageTrailOptionsPresModel - ParameterId["PageTrailOptions"] = "pageTrailOptions"; - // DPI_Field, having type FieldPresModel - ParameterId["Field"] = "field"; - // DPI_FieldList, having type FieldPresModel[] - ParameterId["FieldList"] = "fieldList"; - // DPI_FieldColumn, having type FieldColumnPresModel - ParameterId["FieldColumn"] = "column"; - // DPI_FieldColumnList, having type FieldColumnPresModel[] - ParameterId["FieldColumnList"] = "columnList"; - // DPI_Parameter, having type ParameterPresModel - ParameterId["Parameter"] = "parameter"; - // DPI_Dimension, having type DimensionPresModel - ParameterId["Dimension"] = "dimension"; - // DPI_AttributeDimensionList, having type DimensionPresModel[] - ParameterId["AttributeDimensionList"] = "attributeDimensionList"; - // DPI_RelationalTable, having type RelationalTablePresModel - ParameterId["RelationalTable"] = "relationalTable"; - // DPI_DrillPath, having type DrillPathPresModel - ParameterId["DrillPath"] = "drillPath"; - // DPI_FieldFolder, having type FieldFolderPresModel - ParameterId["FieldFolder"] = "fieldFolder"; - // DPI_Group, having type GroupPresModel - ParameterId["Group"] = "group"; - // DPI_Hierarchy, having type HierarchyPresModel - ParameterId["Hierarchy"] = "hierarchy"; - // DPI_HierarchyList, having type HierarchyPresModel[] - ParameterId["HierarchyList"] = "hierarchyList"; - // DPI_HierarchyMemberSelectedState, having type HierarchySelect_MemberSelectedStatePresModel - ParameterId["HierarchyMemberSelectedState"] = "hierarchyMemberSelectedState"; - // DPI_HierarchySelectionChanges, having type HierarchySelect_MemberSelectedStatePresModel[] - ParameterId["HierarchySelectionChanges"] = "hierarchySelectionChanges"; - // DPI_DisplayFolder, having type DisplayFolderPresModel - ParameterId["DisplayFolder"] = "displayFolder"; - // DPI_DisplayFolderList, having type DisplayFolderPresModel[] - ParameterId["DisplayFolderList"] = "displayFolderList"; - // DPI_DataSourceLayout, having type DataSourceLayoutPresModel - ParameterId["DataSourceLayout"] = "dataSourceLayout"; - // DPI_BaseDataSource, having type BaseDataSourcePresModel - ParameterId["BaseDataSource"] = "baseDataSource"; - // DPI_BaseDataSources, having type Dictionary(of BaseDataSourcePresModel) - ParameterId["BaseDataSources"] = "baseDataSources"; - // DPI_DataSource, having type DataSourcePresModel - ParameterId["DataSource"] = "dataSource"; - // DPI_DataSources, having type Dictionary(of DataSourcePresModel) - ParameterId["DataSources"] = "dataSources"; - // DPI_SchemaViewerDataSource, having type SchemaViewerDataSourcePresModel - ParameterId["SchemaViewerDataSource"] = "schemaViewerDataSource"; - // DPI_SchemaViewerDataSources, having type Dictionary(of SchemaViewerDataSourcePresModel) - ParameterId["SchemaViewerDataSources"] = "schemaViewerDataSources"; - // DPI_BaseDataSchema, having type BaseDataSchemaPresModel - ParameterId["BaseDataSchema"] = "baseDataSchema"; - // DPI_DataSchema, having type DataSchemaPresModel - ParameterId["DataSchema"] = "dataSchema"; - // DPI_SchemaViewerDataSchema, having type SchemaViewerDataSchemaPresModel - ParameterId["SchemaViewerDataSchema"] = "schemaViewerDataSchema"; - // DPI_SheetListItem, having type SheetListItemPresModel - ParameterId["SheetListItem"] = "sheetListItem"; - // DPI_SheetListItems, having type SheetListItemPresModel[] - ParameterId["SheetListItems"] = "sheetListItems"; - // DPI_SheetList, having type SheetListPresModel - ParameterId["SheetList"] = "sheetList"; - // DPI_SizeModeOption, having type SizeModeOptionPresModel - ParameterId["SizeModeOption"] = "sizeModeOption"; - // DPI_SizeModeOptions, having type SizeModeOptionPresModel[] - ParameterId["SizeModeOptions"] = "sizeModeOptions"; - // DPI_DashboardSizeControl, having type DashboardSizeControlPresModel - ParameterId["DashboardSizeControl"] = "dashboardSizeControl"; - // DPI_DeviceLayoutInfoItem, having type DeviceLayoutInfoItemPresModel - ParameterId["DeviceLayoutInfoItem"] = "deviceLayoutInfoItem"; - // DPI_DeviceLayoutInfoItems, having type DeviceLayoutInfoItemPresModel[] - ParameterId["DeviceLayoutInfoItems"] = "deviceLayoutInfoItems"; - // DPI_DeviceLayoutInfoList, having type DeviceLayoutInfoListPresModel - ParameterId["DeviceLayoutInfoList"] = "deviceLayoutInfoList"; - // DPI_SpecializedDeviceLayoutItem, having type SpecializedDeviceLayoutItemPresModel - ParameterId["SpecializedDeviceLayoutItem"] = "specializedDeviceLayoutItem"; - // DPI_SpecializedDeviceLayoutItems, having type SpecializedDeviceLayoutItemPresModel[] - ParameterId["SpecializedDeviceLayoutItems"] = "specializedDeviceLayoutItems"; - // DPI_SpecializedDeviceLayoutList, having type SpecializedDeviceLayoutListPresModel - ParameterId["SpecializedDeviceLayoutList"] = "specializedDeviceLayoutList"; - // DPI_SizeItem, having type SizeItemPresModel - ParameterId["SizeItem"] = "sizeItem"; - // DPI_SizeItems, having type SizeItemPresModel[] - ParameterId["SizeItems"] = "sizeItems"; - // DPI_DeviceSizesList, having type SizeItemListPresModel - ParameterId["DeviceSizesList"] = "deviceSizesList"; - // DPI_PresetSizesList, having type SizeItemListPresModel - ParameterId["PresetSizesList"] = "presetSizesList"; - // DPI_SizeItemList, having type SizeItemListPresModel - ParameterId["SizeItemList"] = "sizeItemList"; - // DPI_SubstitutionKeyword, having type SubstitutionKeywordPresModel - ParameterId["SubstitutionKeyword"] = "substitutionKeyword"; - // DPI_SubstitutionKeywords, having type SubstitutionKeywordPresModel[] - ParameterId["SubstitutionKeywords"] = "substitutionKeywords"; - // DPI_SubstitutionKeywordSubList, having type SubstitutionKeywordSubListPresModel - ParameterId["SubstitutionKeywordSubList"] = "substitutionKeywordsSublist"; - // DPI_SubstitutionKeywordSubLists, having type SubstitutionKeywordSubListPresModel[] - ParameterId["SubstitutionKeywordSubLists"] = "substitutionKeywordSublists"; - // DPI_SubstitutionKeywordList, having type SubstitutionKeywordListPresModel - ParameterId["SubstitutionKeywordList"] = "substitutionKeywordsList"; - // DPI_DeviceZoneListItem, having type DeviceZoneListItemPresModel - ParameterId["DeviceZoneListItem"] = "deviceZoneListItem"; - // DPI_DeviceZoneListItems, having type DeviceZoneListItemPresModel[] - ParameterId["DeviceZoneListItems"] = "deviceZoneListItems"; - // DPI_DeviceZoneList, having type DeviceZoneListPresModel - ParameterId["DeviceZoneList"] = "deviceZoneList"; - // DPI_ZoneSnapLineListItem, having type ZoneSnapLineListItemPresModel - ParameterId["ZoneSnapLineListItem"] = "snapLineListItem"; - // DPI_OuterHorizontalSnapLines, having type ZoneSnapLineListItemPresModel[] - ParameterId["OuterHorizontalSnapLines"] = "outerHorizontalSnapLines"; - // DPI_OuterVerticalSnapLines, having type ZoneSnapLineListItemPresModel[] - ParameterId["OuterVerticalSnapLines"] = "outerVerticalSnapLines"; - // DPI_InnerHorizontalSnapLines, having type ZoneSnapLineListItemPresModel[] - ParameterId["InnerHorizontalSnapLines"] = "innerHorizontalSnapLines"; - // DPI_InnerVerticalSnapLines, having type ZoneSnapLineListItemPresModel[] - ParameterId["InnerVerticalSnapLines"] = "innerVerticalSnapLines"; - // DPI_ZoneSnapLineList, having type ZoneSnapLineListPresModel - ParameterId["ZoneSnapLineList"] = "snapLineList"; - // DPI_DashboardZoneHierarchy, having type DashboardZoneHierarchyPresModel - ParameterId["DashboardZoneHierarchy"] = "dashboardZoneHierarchy"; - // DPI_DeviceZoneVisibilityListItem, having type DeviceZoneVisibilityListItemPresModel - ParameterId["DeviceZoneVisibilityListItem"] = "deviceZoneVisibilityListItem"; - // DPI_DeviceZoneVisibilityListItems, having type DeviceZoneVisibilityListItemPresModel[] - ParameterId["DeviceZoneVisibilityListItems"] = "deviceZoneVisibilityListItems"; - // DPI_DeviceZoneVisibilityList, having type DeviceZoneVisibilityListPresModel - ParameterId["DeviceZoneVisibilityList"] = "deviceZoneVisibilityList"; - // DPI_WorksheetDataSchema, having type WorksheetDataSchemaPresModel - ParameterId["WorksheetDataSchema"] = "worksheetDataSchema"; - // DPI_WorksheetDataSchemaMap, having type Dictionary(of WorksheetDataSchemaPresModel) - ParameterId["WorksheetDataSchemaMap"] = "worksheetDataSchemaMap"; - // DPI_Shelf, having type ShelfPresModel - ParameterId["Shelf"] = "shelf"; - // DPI_ShelfDetail, having type ShelfPresModel - ParameterId["ShelfDetail"] = "shelfDetail"; - // DPI_ShelfList, having type ShelfPresModel[] - ParameterId["ShelfList"] = "shelfList"; - // DPI_ShelfItem, having type ShelfItemPresModel - ParameterId["ShelfItem"] = "shelfItem"; - // DPI_ShelfItems, having type ShelfItemPresModel[] - ParameterId["ShelfItems"] = "shelfItems"; - // DPI_Shelves, having type ShelvesPresModel - ParameterId["Shelves"] = "shelves"; - // DPI_FieldEncoding, having type FieldEncodingPresModel - ParameterId["FieldEncoding"] = "fieldEncoding"; - // DPI_FieldEncodings, having type FieldEncodingPresModel[] - ParameterId["FieldEncodings"] = "fieldEncodings"; - // DPI_UberTip, having type UberTipPresModel - ParameterId["UberTip"] = "uberTip"; - // DPI_AnalyticsObjectDragInfo, having type AnalyticsObjectDragInfoPresModel - ParameterId["AnalyticsObjectDragInfo"] = "analyticsObjectDragInfo"; - // DPI_TrendLine, having type TrendLinePresModel - ParameterId["TrendLine"] = "trendLine"; - // DPI_TrendLineDialog, having type TrendLineDialogPresModel - ParameterId["TrendLineDialog"] = "trendLineDialog"; - // DPI_TrendLineDescribePresModel, having type TrendLineDescribePresModel - ParameterId["TrendLineDescribePresModel"] = "trendLineDescribePresModel"; - // DPI_TrendLineAOVModelPresModel, having type TrendLineAOVModelPresModel - ParameterId["TrendLineAOVModelPresModel"] = "trendLineAovModelPresModel"; - // DPI_TrendLineAOVModelsPresModel, having type TrendLineAOVModelPresModel[] - ParameterId["TrendLineAOVModelsPresModel"] = "trendModelDescriptionVector"; - // DPI_TrendLineLineCoefficientPresModel, having type TrendLineLineCoefficientPresModel - ParameterId["TrendLineLineCoefficientPresModel"] = "trendLineLineCoefficient"; - // DPI_TrendLineLineCoefficientsPresModel, having type TrendLineLineCoefficientPresModel[] - ParameterId["TrendLineLineCoefficientsPresModel"] = "trendLineLineCoefficientsPresModel"; - // DPI_TrendLineLinesPresModel, having type TrendLineLinesPresModel - ParameterId["TrendLineLinesPresModel"] = "trendLineLinesPresModel"; - // DPI_TrendLineAOVPresModel, having type TrendLineAOVPresModel - ParameterId["TrendLineAOVPresModel"] = "trendLineAnovaPresModel"; - // DPI_ReferenceLine, having type ReferenceLinePresModel - ParameterId["ReferenceLine"] = "referenceLine"; - // DPI_ReferenceLines, having type ReferenceLinePresModel[] - ParameterId["ReferenceLines"] = "referenceLines"; - // DPI_PercentileEditDataValue, having type EditDataValuePresModel - ParameterId["PercentileEditDataValue"] = "percentileEditDataValue"; - // DPI_LimitEditDataValue, having type EditDataValuePresModel - ParameterId["LimitEditDataValue"] = "limitEditDataValue"; - // DPI_ConfidenceLevelCombo, having type EditValueWidgetPresModel - ParameterId["ConfidenceLevelCombo"] = "confidenceLevelCombo"; - // DPI_DistributionQuantilesCombo, having type EditValueWidgetPresModel - ParameterId["DistributionQuantilesCombo"] = "distributionQuantilesLevelCombo"; - // DPI_PercentilesCombo, having type EditValueWidgetPresModel - ParameterId["PercentilesCombo"] = "distributionPercentilesLevelCombo"; - // DPI_NumericBinSizeCombo, having type EditValueWidgetPresModel - ParameterId["NumericBinSizeCombo"] = "numericBinSizeCombo"; - // DPI_FieldPickerField, having type FieldPickerFieldPresModel - ParameterId["FieldPickerField"] = "fieldPickerField"; - // DPI_FieldPickerFields, having type FieldPickerFieldPresModel[] - ParameterId["FieldPickerFields"] = "fieldPickerFields"; - // DPI_FieldPickerCombo, having type FieldPickerComboPresModel - ParameterId["FieldPickerCombo"] = "fieldPickerCombo"; - // DPI_PairedFieldPickerCombo, having type FieldPickerComboPresModel - ParameterId["PairedFieldPickerCombo"] = "pairedFieldPickerCombo"; - // DPI_ReferenceLineEditorPresModel, having type ReferenceLineEditorPresModel - ParameterId["ReferenceLineEditorPresModel"] = "referenceLineEditor"; - // DPI_CloseDataSourceErrorDialogPresModel, having type CloseDataSourceErrorDialogPresModel - ParameterId["CloseDataSourceErrorDialogPresModel"] = "closeDsErrorDialog"; - // DPI_EditReferenceLine, having type EditReferenceLinePresModel - ParameterId["EditReferenceLine"] = "editReferenceLine"; - // DPI_EditReferenceBand, having type EditReferenceBandPresModel - ParameterId["EditReferenceBand"] = "editReferenceBand"; - // DPI_EditDistribution, having type EditDistributionPresModel - ParameterId["EditDistribution"] = "editDistribution"; - // DPI_DistributionPercentages, having type DistributionPercentagesPresModel - ParameterId["DistributionPercentages"] = "distributionPercentages"; - // DPI_DistributionPercentiles, having type DistributionPercentilesPresModel - ParameterId["DistributionPercentiles"] = "distributionPercentiles"; - // DPI_DistributionQuantiles, having type DistributionQuantilesPresModel - ParameterId["DistributionQuantiles"] = "distributionQuantiles"; - // DPI_DistributionStandardDeviation, having type DistributionStandardDeviationPresModel - ParameterId["DistributionStandardDeviation"] = "distributionStddev"; - // DPI_SortIndicators, having type SortIndicatorsPresModel - ParameterId["SortIndicators"] = "sortIndicators"; - // DPI_SortIndicatorRegion, having type SortIndicatorRegionPresModel - ParameterId["SortIndicatorRegion"] = "sortIndicatorRegion"; - // DPI_SortIndicatorRegions, having type SortIndicatorRegionPresModel[] - ParameterId["SortIndicatorRegions"] = "sortIndicatorRegions"; - // DPI_SortIndicatorItem, having type SortIndicatorItemPresModel - ParameterId["SortIndicatorItem"] = "sortIndicatorItem"; - // DPI_SortIndicatorItems, having type SortIndicatorItemPresModel[] - ParameterId["SortIndicatorItems"] = "sortIndicatorItems"; - // DPI_BuilderConfig, having type BuilderConfigPresModel - ParameterId["BuilderConfig"] = "builderConfig"; - // DPI_SheetLayoutInfo, having type SheetLayoutInfoPresModel - ParameterId["SheetLayoutInfo"] = "sheetLayoutInfo"; - // DPI_AreaRect, having type RectanglePresModel - ParameterId["AreaRect"] = "areaRect"; - // DPI_Border, having type RectanglePresModel - ParameterId["Border"] = "borderRect"; - // DPI_BoundsRect, having type RectanglePresModel - ParameterId["BoundsRect"] = "boundsRect"; - // DPI_ButtonRect, having type RectanglePresModel - ParameterId["ButtonRect"] = "buttonRect"; - // DPI_DragRect, having type RectanglePresModel - ParameterId["DragRect"] = "dragRect"; - // DPI_FocusRect, having type RectanglePresModel - ParameterId["FocusRect"] = "focusRect"; - // DPI_ImageTileRect, having type RectanglePresModel - ParameterId["ImageTileRect"] = "tileRect"; - // DPI_ItemRect, having type RectanglePresModel - ParameterId["ItemRect"] = "itemRect"; - // DPI_LabelRect, having type RectanglePresModel - ParameterId["LabelRect"] = "labelRect"; - // DPI_MarkRect, having type RectanglePresModel - ParameterId["MarkRect"] = "markRect"; - // DPI_MarkTooltipRect, having type RectanglePresModel - ParameterId["MarkTooltipRect"] = "markTooltipRect"; - // DPI_OutRegionRect, having type RectanglePresModel - ParameterId["OutRegionRect"] = "outRegionRect"; - // DPI_PaneRect, having type RectanglePresModel - ParameterId["PaneRect"] = "paneRect"; - // DPI_PixelExtents, having type RectanglePresModel - ParameterId["PixelExtents"] = "pixelExtents"; - // DPI_RectMaxLabel, having type RectanglePresModel - ParameterId["RectMaxLabel"] = "rectMaxLabel"; - // DPI_RectMinLabel, having type RectanglePresModel - ParameterId["RectMinLabel"] = "rectMinLabel"; - // DPI_RectRamp, having type RectanglePresModel - ParameterId["RectRamp"] = "rectRamp"; - // DPI_RectTitle, having type RectanglePresModel - ParameterId["RectTitle"] = "rectTitle"; - // DPI_RegionRect, having type RectanglePresModel - ParameterId["RegionRect"] = "regionRect"; - // DPI_SelectionRect, having type RectanglePresModel - ParameterId["SelectionRect"] = "selectionRect"; - // DPI_UnusedRect, having type RectanglePresModel - ParameterId["UnusedRect"] = "unusedRect"; - // DPI_ZoneEdgeRect, having type RectanglePresModel - ParameterId["ZoneEdgeRect"] = "zoneEdge"; - // DPI_ZoneEdgeRectPix, having type RectanglePresModel - ParameterId["ZoneEdgeRectPix"] = "zoneEdgePix"; - // DPI_ZoneEdgeRectPp, having type RectanglePresModel - ParameterId["ZoneEdgeRectPp"] = "zoneEdgePp"; - // DPI_UIAutomationLinkRect, having type RectanglePresModel - ParameterId["UIAutomationLinkRect"] = "linkRect"; - // DPI_Borders, having type RectanglePresModel[] - ParameterId["Borders"] = "borderRects"; - // DPI_UIAutomationLinkRects, having type RectanglePresModel[] - ParameterId["UIAutomationLinkRects"] = "linkRects"; - // DPI_DomainExtents, having type DoubleRectanglePresModel - ParameterId["DomainExtents"] = "domainExtents"; - // DPI_MapDomainExtents, having type DoubleRectanglePresModel - ParameterId["MapDomainExtents"] = "mapDomainExtents"; - // DPI_MapLatLongRect, having type MapRectPresModel - ParameterId["MapLatLongRect"] = "mapLatLongRect"; - // DPI_Center, having type PointPresModel - ParameterId["Center"] = "center"; - // DPI_CenterMarkLineBegin, having type PointPresModel - ParameterId["CenterMarkLineBegin"] = "centerMarkLineBegin"; - // DPI_CenterMarkLineEnd, having type PointPresModel - ParameterId["CenterMarkLineEnd"] = "centerMarkLineEnd"; - // DPI_DropLocation, having type PointPresModel - ParameterId["DropLocation"] = "dropLocation"; - // DPI_EndPt, having type PointPresModel - ParameterId["EndPt"] = "endPoint"; - // DPI_GrabLocation, having type PointPresModel - ParameterId["GrabLocation"] = "grabLocation"; - // DPI_GridOrigin, having type PointPresModel - ParameterId["GridOrigin"] = "gridOrigin"; - // DPI_LassoSelectionPoint, having type PointPresModel - ParameterId["LassoSelectionPoint"] = "lassoSelectionPoint"; - // DPI_MenuLocation, having type PointPresModel - ParameterId["MenuLocation"] = "menuLocation"; - // DPI_MoveOffset, having type PointPresModel - ParameterId["MoveOffset"] = "moveOffset"; - // DPI_OverlayAnchor, having type PointPresModel - ParameterId["OverlayAnchor"] = "overlayAnchor"; - // DPI_PanAmount, having type PointPresModel - ParameterId["PanAmount"] = "panAmount"; - // DPI_PanLocation, having type PointPresModel - ParameterId["PanLocation"] = "panLocation"; - // DPI_PaneResolverLocation, having type PointPresModel - ParameterId["PaneResolverLocation"] = "paneResolverLocation"; - // DPI_PixelExtentsOffset, having type PointPresModel - ParameterId["PixelExtentsOffset"] = "extentsOffset"; - // DPI_Point1, having type PointPresModel - ParameterId["Point1"] = "pt1"; - // DPI_Point2, having type PointPresModel - ParameterId["Point2"] = "pt2"; - // DPI_Point3, having type PointPresModel - ParameterId["Point3"] = "pt3"; - // DPI_RegionPoint, having type PointPresModel - ParameterId["RegionPoint"] = "regionPoint"; - // DPI_ScrollOffset, having type PointPresModel - ParameterId["ScrollOffset"] = "scrollOffset"; - // DPI_SelectAtPoint, having type PointPresModel - ParameterId["SelectAtPoint"] = "selectAtPoint"; - // DPI_SelectOffset, having type PointPresModel - ParameterId["SelectOffset"] = "selectOffset"; - // DPI_TargetPt, having type PointPresModel - ParameterId["TargetPt"] = "targetPoint"; - // DPI_TextOrigin, having type PointPresModel - ParameterId["TextOrigin"] = "textOrigin"; - // DPI_TooltipAnchorPoint, having type PointPresModel - ParameterId["TooltipAnchorPoint"] = "tooltipAnchorPoint"; - // DPI_TooltipOffset, having type PointPresModel - ParameterId["TooltipOffset"] = "tooltipOffset"; - // DPI_VizLocation, having type PointPresModel - ParameterId["VizLocation"] = "vizLocation"; - // DPI_ZoomAnchorPoint, having type PointPresModel - ParameterId["ZoomAnchorPoint"] = "zoomAnchorPoint"; - // DPI_OverlayAnchors, having type PointPresModel[] - ParameterId["OverlayAnchors"] = "overlayAnchors"; - // DPI_LassoSelection, having type PointPresModel[] - ParameterId["LassoSelection"] = "lassoSelection"; - // DPI_ScrollOffsetPoints, having type PointPresModel[] - ParameterId["ScrollOffsetPoints"] = "scrollOffsetPoints"; - // DPI_RadialSelection, having type CirclePresModel - ParameterId["RadialSelection"] = "radialSelection"; - // DPI_DomainOrigin, having type FloatPointPresModel - ParameterId["DomainOrigin"] = "domainOrigin"; - // DPI_FloatCenter, having type FloatPointPresModel - ParameterId["FloatCenter"] = "floatCenter"; - // DPI_FloatPoint, having type FloatPointPresModel - ParameterId["FloatPoint"] = "floatPoint"; - // DPI_ClientAvailableSpace, having type SizePresModel - ParameterId["ClientAvailableSpace"] = "clientAvailableSpace"; - // DPI_DashboardPortSize, having type SizePresModel - ParameterId["DashboardPortSize"] = "dashboardPort"; - // DPI_LegendSize, having type SizePresModel - ParameterId["LegendSize"] = "legendSize"; - // DPI_StoryPortSize, having type SizePresModel - ParameterId["StoryPortSize"] = "storyPort"; - // DPI_SwatchAreaSize, having type SizePresModel - ParameterId["SwatchAreaSize"] = "areaSize"; - // DPI_SwatchImageSize, having type SizePresModel - ParameterId["SwatchImageSize"] = "imageSize"; - // DPI_ViewportSize, having type SizePresModel - ParameterId["ViewportSize"] = "viewportSize"; - // DPI_WorksheetPortSize, having type SizePresModel - ParameterId["WorksheetPortSize"] = "worksheetPort"; - // DPI_ResizeEntity, having type ResizeEntityPresModel - ParameterId["ResizeEntity"] = "resizeEntity"; - // DPI_RowResizers, having type ResizeEntityPresModel[] - ParameterId["RowResizers"] = "rowResizers"; - // DPI_ColResizers, having type ResizeEntityPresModel[] - ParameterId["ColResizers"] = "colResizers"; - // DPI_ResizeInfoPresModel, having type ResizeInfoPresModel - ParameterId["ResizeInfoPresModel"] = "resizeInfo"; - // DPI_ServerSheet, having type ServerSheetPresModel - ParameterId["ServerSheet"] = "serverSheet"; - // DPI_ServerSheets, having type ServerSheetPresModel[] - ParameterId["ServerSheets"] = "serverSheets"; - // DPI_SheetInfo, having type SheetInfoPresModel - ParameterId["SheetInfo"] = "sheetInfo"; - // DPI_SheetsInfo, having type SheetInfoPresModel[] - ParameterId["SheetsInfo"] = "sheetsInfo"; - // DPI_ServerWorkbook, having type ServerWorkbookPresModel - ParameterId["ServerWorkbook"] = "serverWorkbook"; - // DPI_PDFExportOptionsPresModel, having type PDFExportOptionsPresModel - ParameterId["PDFExportOptionsPresModel"] = "pdfExport"; - // DPI_ExportFileResultPresModel, having type ExportFileResultPresModel - ParameterId["ExportFileResultPresModel"] = "pdfResult"; - // DPI_PDFSheet, having type PDFSheetPresModel - ParameterId["PDFSheet"] = "pdfSheet"; - // DPI_SheetOptions, having type PDFSheetPresModel[] - ParameterId["SheetOptions"] = "sheetOptions"; - // DPI_ExportLayoutOptions, having type ExportLayoutOptionsPresModel - ParameterId["ExportLayoutOptions"] = "exportLayoutOptions"; - // DPI_DataAlertConditionOperationType, having type DataAlertConditionOperationType - ParameterId["DataAlertConditionOperationType"] = "dataAlertConditionOp"; - // DPI_DataAlertDialogPresModel, having type DataAlertDialogPresModel - ParameterId["DataAlertDialogPresModel"] = "dataAlertDialogPresModel"; - // DPI_DataAlertMeasure, having type DataAlertMeasurePresModel - ParameterId["DataAlertMeasure"] = "dataAlertMeasure"; - // DPI_DataAlertMeasures, having type DataAlertMeasurePresModel[] - ParameterId["DataAlertMeasures"] = "dataAlertMeasures"; - // DPI_DataAlertConstantCondition, having type DataAlertConstantConditionPresModel - ParameterId["DataAlertConstantCondition"] = "dataAlertConstantCondition"; - // DPI_DataAlertDialogMode, having type DataAlertDialogMode - ParameterId["DataAlertDialogMode"] = "dataAlertDialogMode"; - // DPI_LightweightMapOptions, having type LightweightMapOptionsPresModel - ParameterId["LightweightMapOptions"] = "lightweightMapOptions"; - // DPI_DataHighlighter, having type DataHighlighterPresModel - ParameterId["DataHighlighter"] = "dataHighlighter"; - // DPI_DataHighlighterItemSet, having type DataHighlighterItemSetPresModel - ParameterId["DataHighlighterItemSet"] = "dataHighlighterItemSet"; - // DPI_DataHighlighterItem, having type DataHighlighterItemPresModel - ParameterId["DataHighlighterItem"] = "dataHighlighterItem"; - // DPI_DataHighlighterItems, having type DataHighlighterItemPresModel[] - ParameterId["DataHighlighterItems"] = "dataHighlighterItems"; - // DPI_CategoricalLegendLayout, having type CategoricalLegendLayoutPresModel - ParameterId["CategoricalLegendLayout"] = "catLegendLayout"; - // DPI_CategoricalLegend, having type CategoricalLegendPresModel - ParameterId["CategoricalLegend"] = "categoricalLegend"; - // DPI_CategoricalLegends, having type CategoricalLegendPresModel[] - ParameterId["CategoricalLegends"] = "categoricalLegends"; - // DPI_CategoricalColorLegend, having type CategoricalColorLegendPresModel - ParameterId["CategoricalColorLegend"] = "colorLegend"; - // DPI_ColorLegendItem, having type CategoricalColorLegendItemPresModel - ParameterId["ColorLegendItem"] = "colorLegendItem"; - // DPI_ColorLegendItems, having type CategoricalColorLegendItemPresModel[] - ParameterId["ColorLegendItems"] = "colorLegendItems"; - // DPI_CategoricalShapeLegend, having type CategoricalShapeLegendPresModel - ParameterId["CategoricalShapeLegend"] = "categoricalShapeLegend"; - // DPI_ShapeLegendItem, having type CategoricalShapeLegendItemPresModel - ParameterId["ShapeLegendItem"] = "shapeLegendItem"; - // DPI_ShapeLegendItems, having type CategoricalShapeLegendItemPresModel[] - ParameterId["ShapeLegendItems"] = "shapeLegendItems"; - // DPI_CategoricalHighlightLegend, having type CategoricalHighlightLegendPresModel - ParameterId["CategoricalHighlightLegend"] = "categoricalHighlightLegend"; - // DPI_HighlightLegendItem, having type CategoricalLegendItemPresModel - ParameterId["HighlightLegendItem"] = "highlightLegendItem"; - // DPI_HighlightLegendItems, having type CategoricalLegendItemPresModel[] - ParameterId["HighlightLegendItems"] = "highlightLegendItems"; - // DPI_CategoricalSizeLegend, having type CategoricalSizeLegendPresModel - ParameterId["CategoricalSizeLegend"] = "categoricalSizeLegend"; - // DPI_SizeLegendItem, having type CategoricalSizeLegendItemPresModel - ParameterId["SizeLegendItem"] = "sizeLegendItem"; - // DPI_SizeLegendItems, having type CategoricalSizeLegendItemPresModel[] - ParameterId["SizeLegendItems"] = "sizeLegendItems"; - // DPI_CategoricalMapLegend, having type CategoricalMapLegendPresModel - ParameterId["CategoricalMapLegend"] = "categoricalMapLegend"; - // DPI_QuantitativeColorLegend, having type QuantitativeColorLegendPresModel - ParameterId["QuantitativeColorLegend"] = "quantitativeColorLegend"; - // DPI_QuantitativeColorLegends, having type QuantitativeColorLegendPresModel[] - ParameterId["QuantitativeColorLegends"] = "quantitativeColorLegends"; - // DPI_QuantitativeLegendLayout, having type QuantitativeLegendLayoutPresModel - ParameterId["QuantitativeLegendLayout"] = "quantitativeLegendLayout"; - // DPI_ServerRenderedLegend, having type ServerRenderedLegendPresModel - ParameterId["ServerRenderedLegend"] = "serverRenderedLegend"; - // DPI_CategoricalFilter, having type CategoricalFilterPresModel - ParameterId["CategoricalFilter"] = "categoricalFilter"; - // DPI_CategoricalFilterRelational, having type CategoricalFilterRelationalPresModel - ParameterId["CategoricalFilterRelational"] = "categoricalFilterRelational"; - // DPI_CategoricalFilterMemberDomainPage, having type CategoricalFilterMemberDomainPagePresModel - ParameterId["CategoricalFilterMemberDomainPage"] = "categoricalFilterMemberDomainPage"; - // DPI_CategoricalFilterCacheInfo, having type CategoricalFilterCacheInfoPresModel - ParameterId["CategoricalFilterCacheInfo"] = "categoricalFilterCacheInfo"; - // DPI_CategoricalFilterPatternDisplay, having type CategoricalFilterPatternDisplayPresModel - ParameterId["CategoricalFilterPatternDisplay"] = "categoricalFilterPatternDisplay"; - // DPI_CategoricalFilterPatternUpdate, having type CategoricalFilterPatternUpdatePresModel - ParameterId["CategoricalFilterPatternUpdate"] = "categoricalFilterPatternUpdate"; - // DPI_CategoricalFilterConditionDisplay, having type CategoricalFilterConditionDisplayPresModel - ParameterId["CategoricalFilterConditionDisplay"] = "categoricalFilterConditionDisplay"; - // DPI_CategoricalFilterConditionUpdate, having type CategoricalFilterConditionUpdatePresModel - ParameterId["CategoricalFilterConditionUpdate"] = "categoricalFilterConditionUpdate"; - // DPI_CategoricalFilterLimitDisplay, having type CategoricalFilterLimitDisplayPresModel - ParameterId["CategoricalFilterLimitDisplay"] = "categoricalFilterLimitDisplay"; - // DPI_CategoricalFilterLimitUpdate, having type CategoricalFilterLimitUpdatePresModel - ParameterId["CategoricalFilterLimitUpdate"] = "categoricalFilterLimitUpdate"; - // DPI_CategoricalFilterNew, having type CategoricalFilter_NewPresModel - ParameterId["CategoricalFilterNew"] = "categoricalFilterNew"; - // DPI_CategoricalFilterHierarchy, having type CategoricalFilterHierarchyPresModel - ParameterId["CategoricalFilterHierarchy"] = "categoricalFilterHirerarchy"; - // DPI_CategoricalFilterUpdate, having type CategoricalFilterUpdatePresModel - ParameterId["CategoricalFilterUpdate"] = "categoricalFilterUpdate"; - // DPI_CategoricalFilterRelationalState, having type CategoricalFilterRelationalStatePresModel - ParameterId["CategoricalFilterRelationalState"] = "categoricalRelationalState"; - // DPI_CategoricalFilterRelationalUpdatedState, having type CategoricalFilterRelationalStatePresModel - ParameterId["CategoricalFilterRelationalUpdatedState"] = "categoricalRelationalUpdatedState"; - // DPI_CategoricalFilterRelationalDomainInfo, having type CategoricalFilterRelationalDomainInfoPresModel - ParameterId["CategoricalFilterRelationalDomainInfo"] = "categoricalFilterRelationalDomainInfo"; - // DPI_CategoricalFilterRelationalDisplay, having type CategoricalFilterRelationalDisplayPresModel - ParameterId["CategoricalFilterRelationalDisplay"] = "categoricalFilterRelationalDisplay"; - // DPI_ExpressionToken, having type ExpressionTokenPresModel - ParameterId["ExpressionToken"] = "expressionToken"; - // DPI_ExpressionTokens, having type ExpressionTokenPresModel[] - ParameterId["ExpressionTokens"] = "expressionTokens"; - // DPI_FormulaValidation, having type FormulaValidationPresModel - ParameterId["FormulaValidation"] = "formulaValidation"; - // DPI_CaptionedFilterValue, having type FilterValuePresModel - ParameterId["CaptionedFilterValue"] = "captionedFilterValue"; - // DPI_CaptionedRangeMin, having type FilterValuePresModel - ParameterId["CaptionedRangeMin"] = "captionedRangeMin"; - // DPI_CaptionedRangeMax, having type FilterValuePresModel - ParameterId["CaptionedRangeMax"] = "captionedRangeMax"; - // DPI_CaptionedAnchorDate, having type FilterValuePresModel - ParameterId["CaptionedAnchorDate"] = "captionedAnchorDate"; - // DPI_CaptionedFilterValueList, having type FilterValuePresModel[] - ParameterId["CaptionedFilterValueList"] = "captionedFilterValueList"; - // DPI_CategoricalFilterInfo, having type CategoricalFilterInfoPresModel - ParameterId["CategoricalFilterInfo"] = "categoricalFilterInfo"; - // DPI_QuantitativeFilterInfo, having type QuantitativeFilterInfoPresModel - ParameterId["QuantitativeFilterInfo"] = "quantitativeFilterInfo"; - // DPI_RelativeDateFilterInfo, having type RelativeDateFilterInfoPresModel - ParameterId["RelativeDateFilterInfo"] = "relativeDateFilterInfo"; - // DPI_FilterInfo, having type FilterInfoPresModel - ParameterId["FilterInfo"] = "filterInfo"; - // DPI_FiltersInfo, having type FilterInforPresModel[] - ParameterId["FiltersInfo"] = "filtersInfo"; - // DPI_ValidationResults, having type ValidationResultsPresModel - ParameterId["ValidationResults"] = "validationResults"; - // DPI_DomainMember, having type DomainMemberPresModel - ParameterId["DomainMember"] = "domainMember"; - // DPI_DomainMembers, having type DomainMemberPresModel[] - ParameterId["DomainMembers"] = "domainMembers"; - // DPI_QuickFilterDisplay, having type QuickFilterDisplayPresModel - ParameterId["QuickFilterDisplay"] = "quickFilterDisplay"; - // DPI_QuickFilter, having type QuickFilterPresModel - ParameterId["QuickFilter"] = "quickFilter"; - // DPI_QuantitativeQuickFilter, having type QuantitativeQuickFilterPresModel - ParameterId["QuantitativeQuickFilter"] = "quantitativeQuickFilter"; - // DPI_RelativeDateQuickFilter, having type RelativeDateQuickFilterPresModel - ParameterId["RelativeDateQuickFilter"] = "relativeDateQuickFilter"; - // DPI_CategoricalQuickFilter, having type CategoricalQuickFilterPresModel - ParameterId["CategoricalQuickFilter"] = "categoricalQuickFilter"; - // DPI_HierarchicalQuickFilter, having type HierarchicalQuickFilterPresModel - ParameterId["HierarchicalQuickFilter"] = "hierarchicalQuickFilter"; - // DPI_DomainTable, having type DomainTablePresModel - ParameterId["DomainTable"] = "domainTable"; - // DPI_DomainTables, having type DomainTablePresModel[] - ParameterId["DomainTables"] = "domainTables"; - // DPI_DomainTuples, having type Tuples - ParameterId["DomainTuples"] = "domainTuples"; - // DPI_SearchTuples, having type Tuples - ParameterId["SearchTuples"] = "searchTuples"; - // DPI_SelectedTuples, having type TupleHash - ParameterId["SelectedTuples"] = "selectedTuples"; - // DPI_PendingTuples, having type TupleHash - ParameterId["PendingTuples"] = "pendingTuples"; - // DPI_Domain, having type MultiDomain - ParameterId["Domain"] = "domain"; - // DPI_DateOption, having type DateBinDialogOptionPresModel - ParameterId["DateOption"] = "dateOption"; - // DPI_DateOptions, having type DateBinDialogOptionPresModel[] - ParameterId["DateOptions"] = "dateOptions"; - // DPI_FilterRangeAdd, having type FilterRangePresModel - ParameterId["FilterRangeAdd"] = "filterRangeAdd"; - // DPI_FilterRangeRemove, having type FilterRangePresModel - ParameterId["FilterRangeRemove"] = "filterRangeRemove"; - // DPI_FilterOptions, having type FilterOptionsPresModel - ParameterId["FilterOptions"] = "filterOptions"; - // DPI_Layer, having type LayerPresModel - ParameterId["Layer"] = "layer"; - // DPI_Layers, having type LayerPresModel[] - ParameterId["Layers"] = "layers"; - // DPI_MarksCardPresModel, having type MarksCardPresModel - ParameterId["MarksCardPresModel"] = "marksCardPresModel"; - // DPI_UIItem, having type UIItemPresModel - ParameterId["UIItem"] = "uiItem"; - // DPI_EncodingUIItem, having type EncodingUIItemPresModel - ParameterId["EncodingUIItem"] = "encodingUiItem"; - // DPI_EncodingUIItems, having type EncodingUIItemPresModel[] - ParameterId["EncodingUIItems"] = "encodingUiItems"; - // DPI_PrimTypeUIItem, having type PrimitiveTypeUIItemPresModel - ParameterId["PrimTypeUIItem"] = "primitiveTypeUiItem"; - // DPI_PrimTypeUIItems, having type PrimitiveTypeUIItemPresModel[] - ParameterId["PrimTypeUIItems"] = "primitiveTypeUiItems"; - // DPI_PrimitiveTypeUIItemOptions, having type PrimitiveTypeUIItemOptionsPresModel - ParameterId["PrimitiveTypeUIItemOptions"] = "primitiveTypeUiItemOptions"; - // DPI_LineUIItemOptions, having type LineUIItemOptionsPresModel - ParameterId["LineUIItemOptions"] = "lineUiItemOptions"; - // DPI_LineInterpolationModeUIItem, having type LineInterpolationModeUIItemPresModel - ParameterId["LineInterpolationModeUIItem"] = "lineInterpolationModeUiItem"; - // DPI_LineInterpolationModeUIItemSet, having type LineInterpolationModeUIItemPresModel[] - ParameterId["LineInterpolationModeUIItemSet"] = "lineInterpolationModeUiItemSet"; - // DPI_LineMarkerPositionUIItem, having type LineMarkerPositionUIItemPresModel - ParameterId["LineMarkerPositionUIItem"] = "lineMarkerPositionUiItem"; - // DPI_LineMarkerPositionUIItemSet, having type LineMarkerPositionUIItemPresModel[] - ParameterId["LineMarkerPositionUIItemSet"] = "lineMarkerPositionUiItemSet"; - // DPI_MarksCardDropdownItem, having type MarksCardDropdownItemPresModel - ParameterId["MarksCardDropdownItem"] = "marksCardDropdownItem"; - // DPI_TooltipDropdownItem, having type TooltipDropdownItemPresModel - ParameterId["TooltipDropdownItem"] = "tooltipDropdownItem"; - // DPI_TextDropdownItem, having type TextDropdownItemPresModel - ParameterId["TextDropdownItem"] = "textDropdownItem"; - // DPI_ColorDropdownItem, having type ColorDropdownItemPresModel - ParameterId["ColorDropdownItem"] = "colorDropdownItem"; - // DPI_SizeSliderPresModel, having type SizeSliderPresModel - ParameterId["SizeSliderPresModel"] = "sizeSliderPresModel"; - // DPI_InflectionPoint, having type InflectionPointPresModel - ParameterId["InflectionPoint"] = "inflectionPoint"; - // DPI_InflectionPoints, having type InflectionPointPresModel[] - ParameterId["InflectionPoints"] = "inflectionPoints"; - // DPI_Notch, having type NotchPresModel - ParameterId["Notch"] = "notch"; - // DPI_Notches, having type NotchPresModel[] - ParameterId["Notches"] = "notches"; - // DPI_MarkSizeOptionsPresModel, having type MarkSizeOptionsPresModel - ParameterId["MarkSizeOptionsPresModel"] = "markSizeOptionsPresModel"; - // DPI_ModifyMarksInSet, having type AddOrRemoveMarks - ParameterId["ModifyMarksInSet"] = "addOrRemoveMarks"; - // DPI_MarkLabelsSpecification, having type MarkLabelsSpecificationPresModel - ParameterId["MarkLabelsSpecification"] = "markLabelsSpecification"; - // DPI_ColorPalette, having type ColorPalettePresModel - ParameterId["ColorPalette"] = "colorPalette"; - // DPI_SelectedColorPalette, having type ColorPalettePresModel - ParameterId["SelectedColorPalette"] = "selectedColorPalette"; - // DPI_ColorPalettes, having type ColorPalettePresModel[] - ParameterId["ColorPalettes"] = "colorPalettes"; - // DPI_ColorPaletteGroup, having type ColorPaletteGroupPresModel - ParameterId["ColorPaletteGroup"] = "colorPaletteGroup"; - // DPI_CatColorPaletteGroups, having type ColorPaletteGroupPresModel[] - ParameterId["CatColorPaletteGroups"] = "catColorPaletteGroups"; - // DPI_QColorPaletteGroups, having type ColorPaletteGroupPresModel[] - ParameterId["QColorPaletteGroups"] = "qColorPaletteGroups"; - // DPI_ColorPaletteCollection, having type ColorPaletteCollectionPresModel - ParameterId["ColorPaletteCollection"] = "colorPaletteCollection"; - // DPI_QuantitativeColor, having type QuantitativeColorPresModel - ParameterId["QuantitativeColor"] = "quantitativeColor"; - // DPI_CategoricalColor, having type CategoricalColorPresModel - ParameterId["CategoricalColor"] = "categoricalColor"; - // DPI_ItemColorPair, having type ItemColorPairPresModel - ParameterId["ItemColorPair"] = "itemColorPair"; - // DPI_ItemColorPairs, having type ItemColorPairPresModel[] - ParameterId["ItemColorPairs"] = "itemColorPairs"; - // DPI_VQLCommandResponse, having type VQLCommandResponsePresModel - ParameterId["VQLCommandResponse"] = "vqlCmdResponse"; - // DPI_LayoutStatus, having type LayoutStatusPresModel - ParameterId["LayoutStatus"] = "layoutStatus"; - // DPI_VizState, having type VizStatePresModel - ParameterId["VizState"] = "vizState"; - // DPI_VizStateList, having type VizStatePresModel[] - ParameterId["VizStateList"] = "vizStateList"; - // DPI_CommandResult, having type CommandResultPresModel - ParameterId["CommandResult"] = "cmdResult"; - // DPI_CommandResultList, having type CommandResultPresModel[] - ParameterId["CommandResultList"] = "cmdResultList"; - // DPI_URLAction, having type URLActionPresModel - ParameterId["URLAction"] = "urlAction"; - // DPI_URLActionList, having type URLActionPresModel[] - ParameterId["URLActionList"] = "urlActionList"; - // DPI_LegacyMenu, having type LegacyMenuPresModel - ParameterId["LegacyMenu"] = "legacyMenu"; - // DPI_LegacyMenus, having type LegacyMenuPresModel[] - ParameterId["LegacyMenus"] = "legacyMenus"; - // DPI_ConnectionAttemptInfo, having type ConnectionAttemptInfoPresModel - ParameterId["ConnectionAttemptInfo"] = "connectionAttemptInfo"; - // DPI_DataSourceConnectionAttemptInfo, having type DataSourceConnectionAttemptInfoPresModel - ParameterId["DataSourceConnectionAttemptInfo"] = "dataSourceConnectionAttemptInfo"; - // DPI_DataSourceConnectionAttemptInfos, having type DataSourceConnectionAttemptInfoPresModel[] - ParameterId["DataSourceConnectionAttemptInfos"] = "dataSourceConnectionAttemptInfos"; - // DPI_CommandValidationPresModel, having type CommandValidationPresModel - ParameterId["CommandValidationPresModel"] = "commandValidationPresModel"; - // DPI_WarningMessage, having type WarningMessagePresModel - ParameterId["WarningMessage"] = "warningMessagePresModel"; - // DPI_ApplicationPresModel, having type ApplicationPresModel - ParameterId["ApplicationPresModel"] = "applicationPresModel"; - // DPI_ToolbarPresModel, having type ToolbarPresModel - ParameterId["ToolbarPresModel"] = "toolbarPresModel"; - // DPI_WorkbookPresModel, having type WorkbookPresModel - ParameterId["WorkbookPresModel"] = "workbookPresModel"; - // DPI_ServerFonts, having type ServerFontsPresModel - ParameterId["ServerFonts"] = "serverFonts"; - // DPI_PublishDataSourceMetadataPresModel, having type PublishDataSourceMetadataPresModel - ParameterId["PublishDataSourceMetadataPresModel"] = "publishDataSourceMetadataPresModel"; - // DPI_DashboardPresModel, having type DashboardPresModel - ParameterId["DashboardPresModel"] = "dashboardPresModel"; - // DPI_DashboardSizePresModel, having type DashboardSizePresModel - ParameterId["DashboardSizePresModel"] = "dashboardSizePresModel"; - // DPI_DashboardSizeWithValidationPresModel, having type DashboardSizeWithValidationPresModel - ParameterId["DashboardSizeWithValidationPresModel"] = "dashboardSizeWithValidationPresModel"; - // DPI_DashboardInfoPresModel, having type DashboardInfoPresModel - ParameterId["DashboardInfoPresModel"] = "dashboardInfoPresModel"; - // DPI_VisualPresModel, having type VisualPresModel - ParameterId["VisualPresModel"] = "visual"; - // DPI_VisualPresModels, having type VisualPresModel[] - ParameterId["VisualPresModels"] = "visuals"; - // DPI_DropLinesPresModel, having type DropLinesPresModel - ParameterId["DropLinesPresModel"] = "dropLinesPresModel"; - // DPI_DropFieldPresModel, having type DropFieldPresModel - ParameterId["DropFieldPresModel"] = "dropFieldPresModel"; - // DPI_DropFieldResultPresModel, having type DropFieldResultPresModel - ParameterId["DropFieldResultPresModel"] = "dropFieldResultPresModel"; - // DPI_CurrentAxisRange, having type DataValueRangePresModel - ParameterId["CurrentAxisRange"] = "currentAxisRange"; - // DPI_CurrentAxisRangeNoTime, having type DataValueRangePresModel - ParameterId["CurrentAxisRangeNoTime"] = "currentAxisRangeNoTime"; - // DPI_DefaultAxisRange, having type DataValueRangePresModel - ParameterId["DefaultAxisRange"] = "defaultAxisRange"; - // DPI_NewAxisRange, having type DataValueRangePresModel - ParameterId["NewAxisRange"] = "newAxisRange"; - // DPI_AxisOptions, having type AxisOptionsPresModel - ParameterId["AxisOptions"] = "axis"; - // DPI_AxisMajorTicks, having type TickMarkInfoPresModel - ParameterId["AxisMajorTicks"] = "axisMajorTicks"; - // DPI_AxisMinorTicks, having type TickMarkInfoPresModel - ParameterId["AxisMinorTicks"] = "axisMinorTicks"; - // DPI_EditAxisDialog, having type EditAxisDialogPresModel - ParameterId["EditAxisDialog"] = "editAxisDialog"; - // DPI_MarkLabels, having type ScenePresModel - ParameterId["MarkLabels"] = "markLabels"; - // DPI_Scene, having type ScenePresModel - ParameterId["Scene"] = "scene"; - // DPI_MapServer, having type MapServerPresModel - ParameterId["MapServer"] = "mapServer"; - // DPI_VisualList, having type VisualListPresModel - ParameterId["VisualList"] = "visualList"; - // DPI_DrawFirst, having type VisualListPresModel[] - ParameterId["DrawFirst"] = "drawFirst"; - // DPI_DrawLast, having type VisualListPresModel[] - ParameterId["DrawLast"] = "drawLast"; - // DPI_DrawPane, having type VisualListPresModel[] - ParameterId["DrawPane"] = "drawPane"; - // DPI_UserPaneInfo, having type UserPaneInfoPresModel - ParameterId["UserPaneInfo"] = "userPaneInfo"; - // DPI_AnalyticsPane, having type AnalyticsPanePresModel - ParameterId["AnalyticsPane"] = "analyticsPane"; - // DPI_AnalyticsObjectItem, having type AnalyticsObjectItemPresModel - ParameterId["AnalyticsObjectItem"] = "analyticsObjectItem"; - // DPI_AnalyticsObjectItems, having type AnalyticsObjectItemPresModel[] - ParameterId["AnalyticsObjectItems"] = "analyticsObjectItems"; - // DPI_AnalyticsObjectGroup, having type AnalyticsObjectGroupPresModel - ParameterId["AnalyticsObjectGroup"] = "analyticsObjectGroup"; - // DPI_AnalyticsObjectGroups, having type AnalyticsObjectGroupPresModel[] - ParameterId["AnalyticsObjectGroups"] = "analyticsObjectGroups"; - // DPI_DropZoneItem, having type DropZoneItemPresModel - ParameterId["DropZoneItem"] = "dropZoneItem"; - // DPI_DropZoneItems, having type DropZoneItemPresModel[] - ParameterId["DropZoneItems"] = "dropZoneItems"; - // DPI_DropTargetInfo, having type DropTargetInfoPresModel - ParameterId["DropTargetInfo"] = "dropTargetInfo"; - // DPI_Pane, having type PanePresModel - ParameterId["Pane"] = "pane"; - // DPI_Panes, having type PanePresModel[] - ParameterId["Panes"] = "panes"; - // DPI_RadialSelectionDistanceInfo, having type RadialSelectionDistanceInfoPresModel - ParameterId["RadialSelectionDistanceInfo"] = "radialSelectionDistanceInfo"; - // DPI_MapScaleInfo, having type MapScaleInfoPresModel - ParameterId["MapScaleInfo"] = "mapScaleInfo"; - // DPI_RenderNode, having type RenderNodePresModel - ParameterId["RenderNode"] = "renderNode"; - // DPI_RenderNodes, having type RenderNodePresModel[] - ParameterId["RenderNodes"] = "renderNodes"; - // DPI_PredictionBand, having type PredictionBandPresModel - ParameterId["PredictionBand"] = "predictionBand"; - // DPI_PredictionWhisker, having type PredictionWhiskerPresModel - ParameterId["PredictionWhisker"] = "predictionWhisker"; - // DPI_DrawGroup, having type DrawPointsPresModel - ParameterId["DrawGroup"] = "drawGroup"; - // DPI_ClipReset, having type DrawItemPresModel - ParameterId["ClipReset"] = "clipReset"; - // DPI_DrawItem, having type DrawItemPresModel - ParameterId["DrawItem"] = "drawItem"; - // DPI_TransformPop, having type DrawItemPresModel - ParameterId["TransformPop"] = "transformPop"; - // DPI_TransformPush, having type DrawItemPresModel - ParameterId["TransformPush"] = "transformPush"; - // DPI_DrawItems, having type DrawItemPresModel[] - ParameterId["DrawItems"] = "drawItems"; - // DPI_ClipRect, having type DrawPointsPresModel - ParameterId["ClipRect"] = "clipRect"; - // DPI_DrawEllipse, having type DrawPointsPresModel - ParameterId["DrawEllipse"] = "drawEllipse"; - // DPI_DrawFillEllipse, having type DrawPointsPresModel - ParameterId["DrawFillEllipse"] = "drawFillEllipse"; - // DPI_DrawFillPolygon, having type DrawPointsPresModel - ParameterId["DrawFillPolygon"] = "drawFillPolygon"; - // DPI_DrawFillRect, having type DrawPointsPresModel - ParameterId["DrawFillRect"] = "drawFillRect"; - // DPI_DrawPolygon, having type DrawPointsPresModel - ParameterId["DrawPolygon"] = "drawPolygon"; - // DPI_DrawPolyline, having type DrawPointsPresModel - ParameterId["DrawPolyline"] = "drawPolyline"; - // DPI_DrawRect, having type DrawPointsPresModel - ParameterId["DrawRect"] = "drawRect"; - // DPI_DrawFillPath, having type DrawPathPresModel - ParameterId["DrawFillPath"] = "drawFillPath"; - // DPI_DrawPath, having type DrawPathPresModel - ParameterId["DrawPath"] = "drawPath"; - // DPI_DrawText, having type DrawTextPresModel - ParameterId["DrawText"] = "drawText"; - // DPI_DrawImage, having type DrawImagePresModel - ParameterId["DrawImage"] = "drawImage"; - // DPI_ImageTileInfo, having type ImageTileInfoPresModel - ParameterId["ImageTileInfo"] = "tileInfo"; - // DPI_ImageTileInfos, having type ImageTileInfoPresModel[] - ParameterId["ImageTileInfos"] = "tileInfos"; - // DPI_DrawImageTiles, having type DrawImageTilesPresModel - ParameterId["DrawImageTiles"] = "drawImageTiles"; - // DPI_DrawPen, having type DrawPenPresModel - ParameterId["DrawPen"] = "drawPen"; - // DPI_DrawSolidBrush, having type DrawSolidBrushPresModel - ParameterId["DrawSolidBrush"] = "drawSolidBrush"; - // DPI_DrawTextProperties, having type DrawTextPropertiesPresModel - ParameterId["DrawTextProperties"] = "drawTextProps"; - // DPI_DrawGradientBrush, having type DrawGradientBrushPresModel - ParameterId["DrawGradientBrush"] = "drawGradientBrush"; - // DPI_DrawTransform, having type DrawTransformPresModel - ParameterId["DrawTransform"] = "transform"; - // DPI_DrawAntialias, having type DrawAntialiasPresModel - ParameterId["DrawAntialias"] = "drawAntialias"; - // DPI_ImageDictionary, having type ImageDictionaryPresModel - ParameterId["ImageDictionary"] = "imageDictionary"; - // DPI_ColorDictionary, having type ColorDictionaryPresModel - ParameterId["ColorDictionary"] = "colorDictionary"; - // DPI_MarkShape, having type MarkShapePresModel - ParameterId["MarkShape"] = "markShape"; - // DPI_MarkShapeList, having type MarkShapePresModel[] - ParameterId["MarkShapeList"] = "markShapeList"; - // DPI_PaneDescriptor, having type PaneDescriptorPresModel - ParameterId["PaneDescriptor"] = "paneDescriptor"; - // DPI_PDMarks, having type PDMarksPresModel - ParameterId["PDMarks"] = "pdMarks"; - // DPI_PDMarksMap, having type Dictionary(of PDMarksPresModel) - ParameterId["PDMarksMap"] = "pdMarksMap"; - // DPI_LabelTextTable, having type LabelTextTable - ParameterId["LabelTextTable"] = "labelTextTable"; - // DPI_TextTableHelper, having type TextTableHelper - ParameterId["TextTableHelper"] = "textTableHelper"; - // DPI_GeometryTable, having type GeometryTable - ParameterId["GeometryTable"] = "geometryTable"; - // DPI_PaneMarks, having type PaneMarksPresModel - ParameterId["PaneMarks"] = "paneMarks"; - // DPI_PaneMarksList, having type PaneMarksPresModel[] - ParameterId["PaneMarksList"] = "paneMarksList"; - // DPI_BrushingSelection, having type SelectionPresModel - ParameterId["BrushingSelection"] = "brushing"; - // DPI_Selection, having type SelectionPresModel - ParameterId["Selection"] = "selection"; - // DPI_BrushingSelectionList, having type SelectionPresModel[] - ParameterId["BrushingSelectionList"] = "brushingSelectionList"; - // DPI_SelectionList, having type SelectionPresModel[] - ParameterId["SelectionList"] = "selectionList"; - // DPI_ShelfSelectionModel, having type ShelfSelectionPresModel - ParameterId["ShelfSelectionModel"] = "shelfSelectionModel"; - // DPI_ShelfSelectionModels, having type ShelfSelectionPresModel[] - ParameterId["ShelfSelectionModels"] = "shelfSelectionModels"; - // DPI_ShelfSelectionsModel, having type ShelfSelectionsPresModel - ParameterId["ShelfSelectionsModel"] = "shelfSelectionsModel"; - // DPI_DimValSelectionModel, having type DimensionValueSelectionPresModel - ParameterId["DimValSelectionModel"] = "dimensionValueSelectionModel"; - // DPI_DimValSelectionModels, having type DimensionValueSelectionPresModel[] - ParameterId["DimValSelectionModels"] = "dimensionValueSelectionModels"; - // DPI_HierValSelectionModel, having type HierarchicalValueSelectionPresModel - ParameterId["HierValSelectionModel"] = "hierarchicalValueSelectionModel"; - // DPI_HierValSelectionModels, having type HierarchicalValueSelectionPresModel[] - ParameterId["HierValSelectionModels"] = "hierarchicalValueSelectionModels"; - // DPI_QuantRangeSelectionModel, having type QuantativeRangeSelectionPresModel - ParameterId["QuantRangeSelectionModel"] = "quantativeRangeSelectionModel"; - // DPI_QuantRangeSelectionModels, having type QuantativeRangeSelectionPresModel[] - ParameterId["QuantRangeSelectionModels"] = "quantativeRangeSelectionModels"; - // DPI_QuantValueSelectionModel, having type QuantativeValueSelectionPresModel - ParameterId["QuantValueSelectionModel"] = "quantativeValueSelectionModel"; - // DPI_QuantValueSelectionModels, having type QuantativeValueSelectionPresModel[] - ParameterId["QuantValueSelectionModels"] = "quantativeValueSelectionModels"; - // DPI_LegendSelectionInfo, having type LegendSelectionInfoPresModel - ParameterId["LegendSelectionInfo"] = "legendSelectionInfo"; - // DPI_NodeReference, having type NodeReferencePresModel - ParameterId["NodeReference"] = "nodeReference"; - // DPI_PageReference, having type PageReferencePresModel - ParameterId["PageReference"] = "pageReference"; - // DPI_OrientedNodeReference, having type OrientedNodeReferencePresModel - ParameterId["OrientedNodeReference"] = "orientedNodeReference"; - // DPI_OrientedNodeReferences, having type OrientedNodeReferencePresModel[] - ParameterId["OrientedNodeReferences"] = "orientedNodeReferences"; - // DPI_SelectionData, having type SelectionDataPresModel - ParameterId["SelectionData"] = "selectionData"; - // DPI_HighlightedData, having type HighlightedDataPresModel - ParameterId["HighlightedData"] = "highlightedData"; - // DPI_Node, having type NodePresModel - ParameterId["Node"] = "node"; - // DPI_Nodes, having type NodePresModel[] - ParameterId["Nodes"] = "nodes"; - // DPI_SelectedNodes, having type NodePresModel[] - ParameterId["SelectedNodes"] = "selectedNodes"; - // DPI_UserAction, having type ActionPresModel - ParameterId["UserAction"] = "userAction"; - // DPI_UserActions, having type ActionPresModel[] - ParameterId["UserActions"] = "userActions"; - // DPI_LinkSpec, having type LinkSpecPresModel - ParameterId["LinkSpec"] = "linkSpec"; - // DPI_ActionSpecificationModel, having type ActionSpecificationPresModel - ParameterId["ActionSpecificationModel"] = "actionSpecification"; - // DPI_LinkSpecification, having type LinkSpecificationPresModel - ParameterId["LinkSpecification"] = "linkSpecification"; - // DPI_ScriptDescription, having type ScriptDescriptionPresModel - ParameterId["ScriptDescription"] = "scriptDescription"; - // DPI_ActionSource, having type ActionSourcePresModel - ParameterId["ActionSource"] = "actionSource"; - // DPI_FieldExprItem, having type FieldExprItemPresModel - ParameterId["FieldExprItem"] = "fieldExpressionItem"; - // DPI_FieldExprVector, having type FieldExprItemPresModel[] - ParameterId["FieldExprVector"] = "fieldExpressionVector"; - // DPI_ActionComboItem, having type ActionComboItemPresModel - ParameterId["ActionComboItem"] = "actionComboItem"; - // DPI_ActionComboVector, having type ActionComboItemPresModel[] - ParameterId["ActionComboVector"] = "actionComboVector"; - // DPI_ActionSourceCombo, having type ActionSourceComboPresModel - ParameterId["ActionSourceCombo"] = "actionSourceCombo"; - // DPI_ActionDestCombo, having type ActionComboPresModel - ParameterId["ActionDestCombo"] = "actionDestCombo"; - // DPI_ActionFieldList, having type ActionFieldListPresModel - ParameterId["ActionFieldList"] = "actionFieldList"; - // DPI_EditBrushAction, having type EditBrushActionPresModel - ParameterId["EditBrushAction"] = "editBrushAction"; - // DPI_UpdateActionSource, having type UpdateActionSourcePresModel - ParameterId["UpdateActionSource"] = "updateActionSource"; - // DPI_UpdateBrushAction, having type UpdateBrushActionPresModel - ParameterId["UpdateBrushAction"] = "updateBrushAction"; - // DPI_ActionWarnings, having type ActionWarningsPresModel - ParameterId["ActionWarnings"] = "actionWarnings"; - // DPI_EditHyperlinkAction, having type EditHyperlinkActionPresModel - ParameterId["EditHyperlinkAction"] = "editHyperlinkAction"; - // DPI_UpdateHyperlinkAction, having type UpdateHyperlinkActionPresModel - ParameterId["UpdateHyperlinkAction"] = "updateHyperlinkAction"; - // DPI_EditSheetLinkAction, having type EditSheetLinkActionPresModel - ParameterId["EditSheetLinkAction"] = "editSheetlinkAction"; - // DPI_UpdateSheetLinkAction, having type UpdateSheetLinkActionPresModel - ParameterId["UpdateSheetLinkAction"] = "updateSheetlinkAction"; - // DPI_ActionItem, having type ActionItemPresModel - ParameterId["ActionItem"] = "actionItem"; - // DPI_ActionItemList, having type ActionItemPresModel[] - ParameterId["ActionItemList"] = "actionItemList"; - // DPI_DataSegment, having type DataSegmentPresModel - ParameterId["DataSegment"] = "dataSegment"; - // DPI_DataSegments, having type Dictionary(of DataSegmentPresModel) - ParameterId["DataSegments"] = "dataSegments"; - // DPI_DataDictionary, having type DataDictionaryPresModel - ParameterId["DataDictionary"] = "dataDictionary"; - // DPI_VizData, having type VizDataPresModel - ParameterId["VizData"] = "vizData"; - // DPI_VizColumn, having type VizColumnPresModel - ParameterId["VizColumn"] = "vizColumn"; - // DPI_VizColumns, having type VizColumnPresModel[] - ParameterId["VizColumns"] = "vizColumns"; - // DPI_VizDataColumn, having type VizDataColumnPresModel - ParameterId["VizDataColumn"] = "vizDataColumn"; - // DPI_VizDataColumns, having type VizDataColumnPresModel[] - ParameterId["VizDataColumns"] = "vizDataColumns"; - // DPI_VizPaneColumn, having type VizPaneColumnPresModel - ParameterId["VizPaneColumn"] = "vizPaneColumn"; - // DPI_VizPaneColumns, having type VizPaneColumnPresModel[] - ParameterId["VizPaneColumns"] = "vizPaneColumns"; - // DPI_PaneColumns, having type PaneColumnsPresModel - ParameterId["PaneColumns"] = "paneColumns"; - // DPI_PaneColumnsList, having type PaneColumnsPresModel[] - ParameterId["PaneColumnsList"] = "paneColumnsList"; - // DPI_PaneColumnsData, having type PaneColumnsDataPresModel - ParameterId["PaneColumnsData"] = "paneColumnsData"; - // DPI_FilterContext, having type FilterContextPresModel - ParameterId["FilterContext"] = "filterContext"; - // DPI_UberTipPaneData, having type UberTipPaneDataPresModel - ParameterId["UberTipPaneData"] = "ubertipPaneData"; - // DPI_UberTipPaneDatas, having type UberTipPaneDataPresModel[] - ParameterId["UberTipPaneDatas"] = "ubertipPaneDatas"; - // DPI_UberTipData, having type UberTipDataPresModel - ParameterId["UberTipData"] = "ubertipData"; - // DPI_RefLineTip, having type RefLineTipPresModel - ParameterId["RefLineTip"] = "refLineTip"; - // DPI_RefLineTips, having type RefLineTipPresModel[] - ParameterId["RefLineTips"] = "refLineTips"; - // DPI_NumericBin, having type NumericBinPresModel - ParameterId["NumericBin"] = "numericBin"; - // DPI_NumericBinDialog, having type NumericBinDialogPresModel - ParameterId["NumericBinDialog"] = "numericBinDialog"; - // DPI_DomainRange, having type DomainRangePresModel - ParameterId["DomainRange"] = "domainRange"; - // DPI_BinSizeInfo, having type BinSizeInfoPresModel - ParameterId["BinSizeInfo"] = "binSizeInfo"; - // DPI_DetailedErrorDialog, having type DetailedErrorPresModel - ParameterId["DetailedErrorDialog"] = "detailedErrorDialog"; - // DPI_DragSourcePosition, having type ShelfDropPositionPresModel - ParameterId["DragSourcePosition"] = "shelfDragSourcePosition"; - // DPI_DropTargetPosition, having type ShelfDropPositionPresModel - ParameterId["DropTargetPosition"] = "shelfDropTargetPosition"; - // DPI_ShelfDropPosition, having type ShelfDropPositionPresModel - ParameterId["ShelfDropPosition"] = "shelfDropPosition"; - // DPI_ShelfDropPositions, having type ShelfDropPositionPresModel[] - ParameterId["ShelfDropPositions"] = "shelfDropPositions"; - // DPI_ShelfDropModel, having type ShelfDropPresModel - ParameterId["ShelfDropModel"] = "shelfDropModel"; - // DPI_ShelfDropModels, having type ShelfDropPresModel[] - ParameterId["ShelfDropModels"] = "shelfDropModels"; - // DPI_Drag, having type DragPresModel - ParameterId["Drag"] = "drag"; - // DPI_SceneElement, having type SceneElementPresModel - ParameterId["SceneElement"] = "sceneElement"; - // DPI_SceneElements, having type SceneElementPresModel[] - ParameterId["SceneElements"] = "sceneElements"; - // DPI_QuickFilterType, having type QuickFilterType - ParameterId["QuickFilterType"] = "quickFilterType"; - // DPI_CatMode, having type QuickFilterCategoricalMode - ParameterId["CatMode"] = "categoricalMode"; - // DPI_CatCtrl, having type QuickFilterCategoricalCtrl - ParameterId["CatCtrl"] = "categoricalControl"; - // DPI_QuantMode, having type QuickFilterQuantitativeMode - ParameterId["QuantMode"] = "quantitativeMode"; - // DPI_QuantCtrl, having type QuickFilterQuantitativeCtrl - ParameterId["QuantCtrl"] = "quantitativeControl"; - // DPI_ZoneCommon, having type ZoneCommonPresModel - ParameterId["ZoneCommon"] = "zoneCommon"; - // DPI_ZoneCommonListItems, having type ZoneCommonPresModel[] - ParameterId["ZoneCommonListItems"] = "zoneCommonListItems"; - // DPI_Zone, having type ZonePresModel - ParameterId["Zone"] = "zone"; - // DPI_Zones, having type Dictionary(of ZonePresModel) - ParameterId["Zones"] = "zones"; - // DPI_ImageZone, having type ImageZonePresModel - ParameterId["ImageZone"] = "imageZone"; - // DPI_WebZone, having type WebZonePresModel - ParameterId["WebZone"] = "webZone"; - // DPI_ButtonZonePresModel, having type ButtonZonePresModel - ParameterId["ButtonZonePresModel"] = "buttonZone"; - // DPI_ZoneEdgeMoveType, having type ZoneEdgeMove - ParameterId["ZoneEdgeMoveType"] = "zoneEdgeMoveType"; - // DPI_ZoneSide, having type SideType - ParameterId["ZoneSide"] = "zoneSide"; - // DPI_SnapPoint, having type SnapPointPresModel - ParameterId["SnapPoint"] = "snapPoint"; - // DPI_SnapPoints, having type SnapPointPresModel[] - ParameterId["SnapPoints"] = "snapPoints"; - // DPI_TargetPreviewPair, having type DragDropTargetPreviewPairPresModel - ParameterId["TargetPreviewPair"] = "targetPreviewPair"; - // DPI_TargetPreviewPairs, having type DragDropTargetPreviewPairPresModel[] - ParameterId["TargetPreviewPairs"] = "targetPreviewPairs"; - // DPI_ContainerGuide, having type DragDropContainerGuidePresModel - ParameterId["ContainerGuide"] = "containerGuide"; - // DPI_ContainerGuides, having type DragDropContainerGuidePresModel[] - ParameterId["ContainerGuides"] = "containerGuides"; - // DPI_ZoneBorder, having type DragDropZoneBorderPresModel - ParameterId["ZoneBorder"] = "zoneBorder"; - // DPI_ZoneBorders, having type DragDropZoneBorderPresModel[] - ParameterId["ZoneBorders"] = "zoneBorders"; - // DPI_DashboardDragDrop, having type DashboardDragDropPresModel - ParameterId["DashboardDragDrop"] = "zoneDragDrop"; - // DPI_DragZoneResize, having type DragZoneResizePresModel - ParameterId["DragZoneResize"] = "zoneResize"; - // DPI_DashboardText, having type TextRegionPresModel - ParameterId["DashboardText"] = "dashboardText"; - // DPI_DashboardTitle, having type TextRegionPresModel - ParameterId["DashboardTitle"] = "dashboardTitle"; - // DPI_QuickFilterTitle, having type TextRegionPresModel - ParameterId["QuickFilterTitle"] = "quickFilterTitle"; - // DPI_VisualCaption, having type TextRegionPresModel - ParameterId["VisualCaption"] = "visualCaption"; - // DPI_VisualTitle, having type TextRegionPresModel - ParameterId["VisualTitle"] = "visualTitle"; - // DPI_ZoneTitleRegion, having type TextRegionPresModel - ParameterId["ZoneTitleRegion"] = "zoneTitle"; - // DPI_ForecastOptions, having type ForecastPresModel - ParameterId["ForecastOptions"] = "forecastOptions"; - // DPI_ForecastDescription, having type ForecastDescribePresModel - ParameterId["ForecastDescription"] = "forecastDescription"; - // DPI_WorkgroupPublishObject, having type WorkgroupPublishObjectPresModel - ParameterId["WorkgroupPublishObject"] = "publishDataSource"; - // DPI_PublishPermissionsSummary, having type PublishPermissionsSummaryPresModel - ParameterId["PublishPermissionsSummary"] = "publishPermissionsSummary"; - // DPI_CheckNameResults, having type CheckNameResultsPresModel - ParameterId["CheckNameResults"] = "checkNameResults"; - // DPI_ValidatePublishViewsResult, having type ValidatePublishViewsResultPresModel - ParameterId["ValidatePublishViewsResult"] = "validatePublishViewsResult"; - // DPI_PublishAuthenticationSettings, having type PublishAuthenticationSettingsPresModel - ParameterId["PublishAuthenticationSettings"] = "publishAuthenticationSettings"; - // DPI_ManageDatasources, having type ManageDatasourcesPresModel - ParameterId["ManageDatasources"] = "manageDatasources"; - // DPI_CredentialsAuthSettings, having type CredentialsAuthSettingsPresModel - ParameterId["CredentialsAuthSettings"] = "credentialsAuthSettings"; - // DPI_ConnectionCredentialsAuthSettings, having type ConnectionCredentialsAuthSettingsPresModel - ParameterId["ConnectionCredentialsAuthSettings"] = "connectionCredentialsAuthSettings"; - // DPI_ConnectionCredentialsAuthSettingsList, having type ConnectionCredentialsAuthSettingsPresModel[] - ParameterId["ConnectionCredentialsAuthSettingsList"] = "connectionCredentialsAuthSettingsList"; - // DPI_PublishDatasourceFromWorkbookInfo, having type PublishDatasourceFromWorkbookInfoPresModel - ParameterId["PublishDatasourceFromWorkbookInfo"] = "publishDatasourceFromWorkbookInfo"; - // DPI_PublishDatasourcesFromWorkbookInfo, having type PublishDatasourceFromWorkbookInfoPresModel[] - ParameterId["PublishDatasourcesFromWorkbookInfo"] = "publishDatasourcesFromWorkbookInfo"; - // DPI_PublishSheet, having type PublishSheetPresModel - ParameterId["PublishSheet"] = "publishSheet"; - // DPI_PublishSheets, having type PublishSheetPresModel[] - ParameterId["PublishSheets"] = "publishSheets"; - // DPI_PublishObjectViews, having type PublishObjectViewsPresModel - ParameterId["PublishObjectViews"] = "publishObjectViews"; - // DPI_PublishObjectPublishSheetResults, having type PublishObjectPublishSheetResultsPresModel - ParameterId["PublishObjectPublishSheetResults"] = "publishObjectPublishSheetResults"; - // DPI_RefreshExtractSchedulingSettings, having type RefreshExtractSchedulingSettingsPresModel - ParameterId["RefreshExtractSchedulingSettings"] = "refreshExtractSchedulingSettings"; - // DPI_SetRefreshExtractScheduleResult, having type SetRefreshExtractScheduleResultPresModel - ParameterId["SetRefreshExtractScheduleResult"] = "setRefreshExtractScheduleResult"; - // DPI_CheckPublishObjectNameWarningsResults, having type CheckPublishObjectNameWarningsResultsPresModel - ParameterId["CheckPublishObjectNameWarningsResults"] = "checkPublishObjectNameWarningsResults"; - // DPI_PublishDatasourceOnWorkbookPublishResults, having type PublishDatasourceOnWorkbookPublishResultsPresModel - ParameterId["PublishDatasourceOnWorkbookPublishResults"] = "publishDatasourceOnWorkbookPublishResult"; - // DPI_PublishDataSourceResult, having type PublishDataSourceResultPresModel - ParameterId["PublishDataSourceResult"] = "publishDataSourceResult"; - // DPI_PublishWarningMessage, having type PublishWarningMessagePresModel - ParameterId["PublishWarningMessage"] = "publishWarningMessage"; - // DPI_MustDowngradeToPublishWarningMessagePresModel, having type PublishWarningMessagePresModel - ParameterId["MustDowngradeToPublishWarningMessagePresModel"] = "mustDowngradeToPublishWarningMessagePresModel"; - // DPI_PublishSelectedAttributes, having type PublishSelectedAttributesPresModel - ParameterId["PublishSelectedAttributes"] = "publishSelectedAttributes"; - // DPI_AutosaveFile, having type AutosaveFilePresModel - ParameterId["AutosaveFile"] = "autosaveFile"; - // DPI_AutosaveFiles, having type AutosaveFilePresModel[] - ParameterId["AutosaveFiles"] = "autosaveFiles"; - // DPI_FunctionGroup, having type FunctionGroup - ParameterId["FunctionGroup"] = "funcGrp"; - // DPI_FunctionGroups, having type FunctionGroup[] - ParameterId["FunctionGroups"] = "funcGrps"; - // DPI_FunctionArgType, having type FunctionArgType - ParameterId["FunctionArgType"] = "funcArgType"; - // DPI_FunctionArgTypes, having type FunctionArgType[] - ParameterId["FunctionArgTypes"] = "funcArgTypes"; - // DPI_CalculationStyle, having type CalcStyle - ParameterId["CalculationStyle"] = "calculationStyle"; - // DPI_Calculation, having type CalculationPresModel - ParameterId["Calculation"] = "calculation"; - // DPI_TypeInPill, having type CalculationPresModel - ParameterId["TypeInPill"] = "typeInPill"; - // DPI_CalcErrorInfo, having type CalcErrorInfoPresModel - ParameterId["CalcErrorInfo"] = "errorInfo"; - // DPI_CalcErrorInfos, having type CalcErrorInfoPresModel[] - ParameterId["CalcErrorInfos"] = "errorInfoList"; - // DPI_CalcualtionValidation, having type CalculationValidationPresModel - ParameterId["CalcualtionValidation"] = "calculationValidation"; - // DPI_ExpressionFunction, having type ExpressionFunctionPresModel - ParameterId["ExpressionFunction"] = "expressionFunc"; - // DPI_ExpressionFunctions, having type ExpressionFunctionPresModel[] - ParameterId["ExpressionFunctions"] = "expressionFuncList"; - // DPI_ExpressionFunctionsPM, having type ExpressionFunctionsPresModel - ParameterId["ExpressionFunctionsPM"] = "expressionFuncPm"; - // DPI_StyleToken, having type StyleTokenPresModel - ParameterId["StyleToken"] = "styleToken"; - // DPI_StyleTokens, having type StyleTokenPresModel[] - ParameterId["StyleTokens"] = "styleTokenList"; - // DPI_CalcEditorTextSelection, having type CalcEditorTextSelectionPresModel - ParameterId["CalcEditorTextSelection"] = "calcEditorTextSelection"; - // DPI_AutoCompleteItemType, having type AutoCompleteItemType - ParameterId["AutoCompleteItemType"] = "autocompleteType"; - // DPI_AutoCompleteItem, having type AutoCompleteItemPresModel - ParameterId["AutoCompleteItem"] = "autocompleteItem"; - // DPI_AutoCompleteItems, having type AutoCompleteItemPresModel[] - ParameterId["AutoCompleteItems"] = "autocompleteItemList"; - // DPI_CalculationAutoCompleteContextMenu, having type CalculationAutoCompleteContextMenuPresModel - ParameterId["CalculationAutoCompleteContextMenu"] = "calculationAutocompleteContextMenu"; - // DPI_CalcApplyResult, having type CalcApplyResult - ParameterId["CalcApplyResult"] = "calculationApplyResult"; - // DPI_RampBorderStyledBox, having type StyledBoxPresModel - ParameterId["RampBorderStyledBox"] = "rampBorderStyledBox"; - // DPI_StyledBox, having type StyledBoxPresModel - ParameterId["StyledBox"] = "styledBox"; - // DPI_GlobalStyledBox, having type StyledBoxPresModel - ParameterId["GlobalStyledBox"] = "globalStyledBox"; - // DPI_StyleContext, having type StyleContextPresModel - ParameterId["StyleContext"] = "styleContext"; - // DPI_CurrentTextStyle, having type TextStylePresModel - ParameterId["CurrentTextStyle"] = "currentTextStyle"; - // DPI_LabelTextStyle, having type TextStylePresModel - ParameterId["LabelTextStyle"] = "labelTextStyle"; - // DPI_OriginalTextStyle, having type TextStylePresModel - ParameterId["OriginalTextStyle"] = "originalTextStyle"; - // DPI_SelectedTextStyleModel, having type TextStylePresModel - ParameterId["SelectedTextStyleModel"] = "selectedTextStyleModel"; - // DPI_SwatchTextStyleModel, having type TextStylePresModel - ParameterId["SwatchTextStyleModel"] = "swatchTextStyle"; - // DPI_TextStyleModel, having type TextStylePresModel - ParameterId["TextStyleModel"] = "textStyle"; - // DPI_TitleStyleModel, having type TextStylePresModel - ParameterId["TitleStyleModel"] = "titleStyleModel"; - // DPI_PropertyBag, having type PropertyBagPresModel - ParameterId["PropertyBag"] = "propBagWrapper"; - // DPI_PresModelMap, having type Dictionary(of PropertyBagPresModel) - ParameterId["PresModelMap"] = "presModelMap"; - // DPI_PresentationLayerNotifications, having type PresModelMapPresModel - ParameterId["PresentationLayerNotifications"] = "presentationLayerNotifications"; - // DPI_SecondaryInfo, having type PresModelMapPresModel - ParameterId["SecondaryInfo"] = "secondaryInfo"; - // DPI_ClientDashboardUIMetric, having type ClientDashboardUIMetricPresModel - ParameterId["ClientDashboardUIMetric"] = "clientDashboardUiMetric"; - // DPI_ClientDashboardUIMetrics, having type ClientDashboardUIMetricPresModel[] - ParameterId["ClientDashboardUIMetrics"] = "clientDashboardUiMetrics"; - // DPI_ClientDashboardUIMetricContainer, having type ClientDashboardUIMetricContainerPresModel - ParameterId["ClientDashboardUIMetricContainer"] = "clientDashboardUiMetricContainer"; - // DPI_ExtSvcConfig, having type ExtSvcConfigPresModel - ParameterId["ExtSvcConfig"] = "extSvcConfig"; - // DPI_StoryboardSheetItem, having type StoryboardSheetItemPresModel - ParameterId["StoryboardSheetItem"] = "storyboardSheetItem"; - // DPI_StoryboardSheetItems, having type StoryboardSheetItemPresModel[] - ParameterId["StoryboardSheetItems"] = "storyboardSheetItems"; - // DPI_StoryboardSheetList, having type StoryboardSheetListPresModel - ParameterId["StoryboardSheetList"] = "storyboardSheetList"; - // DPI_FitToStoryBoardOptionItem, having type FitToStoryBoardOptionItemPresModel - ParameterId["FitToStoryBoardOptionItem"] = "fitToStoryboardOptionItem"; - // DPI_FitToStoryBoardOptionItems, having type FitToStoryBoardOptionItemPresModel[] - ParameterId["FitToStoryBoardOptionItems"] = "fitToStoryboardOptionItems"; - // DPI_FitToStoryBoardOptionList, having type FitToStoryBoardOptionListPresModel - ParameterId["FitToStoryBoardOptionList"] = "fitToStoryboardOptionList"; - // DPI_StoryPointNavItem, having type StoryPointNavItemPresModel - ParameterId["StoryPointNavItem"] = "storypointNavItem"; - // DPI_StoryPointNavItems, having type StoryPointNavItemPresModel[] - ParameterId["StoryPointNavItems"] = "storypointNavItems"; - // DPI_FlipboardNav, having type FlipboardNavPresModel - ParameterId["FlipboardNav"] = "flipboardNav"; - // DPI_ScrollBarStyle, having type ScrollBarStylePresModel - ParameterId["ScrollBarStyle"] = "scrollBarStyle"; - // DPI_DashboardZoneLayoutPane, having type DashboardZoneLayoutPanePresModel - ParameterId["DashboardZoneLayoutPane"] = "dashboardZoneLayoutPane"; - // DPI_SelectedStoryPointStyle, having type StoryPointCaptionStylePresModel - ParameterId["SelectedStoryPointStyle"] = "selectedStoryPointStyle"; - // DPI_UnselectedStoryPointStyle, having type StoryPointCaptionStylePresModel - ParameterId["UnselectedStoryPointStyle"] = "unselectedStoryPointStyle"; - // DPI_FlipboardNavStyle, having type FlipboardNavStylePresModel - ParameterId["FlipboardNavStyle"] = "flipboardNavStyle"; - // DPI_StoryPoint, having type StoryPointPresModel - ParameterId["StoryPoint"] = "storyPoint"; - // DPI_StoryPoints, having type Dictionary(of StoryPointPresModel) - ParameterId["StoryPoints"] = "storyPoints"; - // DPI_Flipboard, having type FlipboardPresModel - ParameterId["Flipboard"] = "flipboard"; - // DPI_StoryPair, having type StoryPairPresModel - ParameterId["StoryPair"] = "storyPair"; - // DPI_StoryPairs, having type StoryPairPresModel[] - ParameterId["StoryPairs"] = "storyPairs"; - // DPI_StoryboardPM, having type StoryboardPresModel - ParameterId["StoryboardPM"] = "storyboardPm"; - // DPI_HiDpiIconDictionary, having type ImageCollectionPresModel - ParameterId["HiDpiIconDictionary"] = "hiDpiIconDictionary"; - // DPI_IconDictionary, having type ImageCollectionPresModel - ParameterId["IconDictionary"] = "iconDictionary"; - // DPI_IconResourceDictionary, having type ImageResourceCollectionPresModel - ParameterId["IconResourceDictionary"] = "iconResDictionary"; - // DPI_DataPreviewWindowMessage, having type DataPreviewWindowMessagePresModel - ParameterId["DataPreviewWindowMessage"] = "dataPreviewWindowMessage"; - // DPI_DataSourceData, having type DataSourceDataPresModel - ParameterId["DataSourceData"] = "dataSrcData"; - // DPI_DataSourceSort, having type DataSourceSortPresModel - ParameterId["DataSourceSort"] = "dataSrcSort"; - // DPI_ColumnInfo, having type DSColumnInfoPresModel - ParameterId["ColumnInfo"] = "columnInfo"; - // DPI_ColumnInfos, having type DSColumnInfoPresModel[] - ParameterId["ColumnInfos"] = "columnInfos"; - // DPI_DataFormatter, having type DVFormatter - ParameterId["DataFormatter"] = "dataFormatter"; - // DPI_JoinDescription, having type JoinDescriptionPresModel - ParameterId["JoinDescription"] = "joinDescription"; - // DPI_JoinDescriptions, having type Dictionary(of JoinDescriptionPresModel) - ParameterId["JoinDescriptions"] = "joinDescriptions"; - // DPI_FileTableInfo, having type FileTableInfoPresModel - ParameterId["FileTableInfo"] = "fileTableInfo"; - // DPI_FieldMapping, having type FieldMappingPresModel - ParameterId["FieldMapping"] = "fieldMapping"; - // DPI_FieldMappingData, having type FieldMappingDataPresModel - ParameterId["FieldMappingData"] = "fieldMappingData"; - // DPI_FieldMappingDataVector, having type FieldMappingDataPresModel[] - ParameterId["FieldMappingDataVector"] = "fieldMappingDataVector"; - // DPI_FrameFinder, having type FrameFinderPresModel - ParameterId["FrameFinder"] = "frameFinder"; - // DPI_SheetLinkFieldMapping, having type SheetLinkFieldMappingPresModel - ParameterId["SheetLinkFieldMapping"] = "sheetLinkFieldMapping"; - // DPI_UnionInfo, having type UnionInfoPresModel - ParameterId["UnionInfo"] = "unionInfo"; - // DPI_UnionTableInfo, having type UnionTableInfoPresMode - ParameterId["UnionTableInfo"] = "unionTableInfo"; - // DPI_UnionTableInfos, having type UnionTableInfoPresModel[] - ParameterId["UnionTableInfos"] = "unionTableInfos"; - // DPI_ConnectionPBUnionInfo, having type PBUnionInfoPresModel - ParameterId["ConnectionPBUnionInfo"] = "connectionPbunionInfo"; - // DPI_ConnectionPBUnionInfos, having type PBUnionInfoPresModel[] - ParameterId["ConnectionPBUnionInfos"] = "connectionPbunionInfos"; - // DPI_JoinClause, having type JoinClausePresModel - ParameterId["JoinClause"] = "joinClause"; - // DPI_JoinClauses, having type JoinClausePresModel[] - ParameterId["JoinClauses"] = "joinClauses"; - // DPI_JoinValidationResult, having type JoinValidationResultPresModel - ParameterId["JoinValidationResult"] = "joinValidationResult"; - // DPI_JoinTableInfo, having type JoinTableInfoPresModel - ParameterId["JoinTableInfo"] = "joinTableInfo"; - // DPI_ParameterInfo, having type JoinTableInfoPresModel - ParameterId["ParameterInfo"] = "parameterInfo"; - // DPI_JoinTableInfos, having type JoinTableInfoPresModel[] - ParameterId["JoinTableInfos"] = "joinTableInfos"; - // DPI_JoinOnCalcInfo, having type JoinOnCalcInfoPresModel - ParameterId["JoinOnCalcInfo"] = "joinOnCalcInfo"; - // DPI_ConnectionSummary, having type ConnectionSummaryPresModel - ParameterId["ConnectionSummary"] = "connectionSummary"; - // DPI_ConnectionSummaries, having type ConnectionSummaryPresModel[] - ParameterId["ConnectionSummaries"] = "connectionSummaries"; - // DPI_TopLevelConnectionDescription, having type TopLevelConnectionDescriptionPresModel - ParameterId["TopLevelConnectionDescription"] = "topLevelConnectionDescription"; - // DPI_DataConnectionTableViewMessages, having type DataConnectionTableViewMessagesPresModel - ParameterId["DataConnectionTableViewMessages"] = "dataConnectionTableViewMessages"; - // DPI_TextTransformScript, having type TextTransformScriptPresModel - ParameterId["TextTransformScript"] = "textTransformScript"; - // DPI_CalendarDateOptions, having type CalendarDateOptionsPresModel - ParameterId["CalendarDateOptions"] = "calendarDateOptions"; - // DPI_GoToWorksheetTooltipPresModel, having type GoToWorksheetTooltipPresModel - ParameterId["GoToWorksheetTooltipPresModel"] = "goToWorksheetTooltipPresModel"; - // DPI_TableCleaningPresModel, having type TableCleaningPresModel - ParameterId["TableCleaningPresModel"] = "tableCleaningPresModel"; - // DPI_PivotPresModel, having type PivotPresModel - ParameterId["PivotPresModel"] = "pivotPresModel"; - // DPI_PivotTreeItemPresModel, having type PivotTreeItemPresModel - ParameterId["PivotTreeItemPresModel"] = "pivotTreeItemPresModel"; - // DPI_PivotTreeItems, having type PivotTreeItemPresModel[] - ParameterId["PivotTreeItems"] = "pivotTreeItemsPresModel"; - // DPI_PivotDisplay, having type PivotDisplayPresModel - ParameterId["PivotDisplay"] = "pivotDisplay"; - // DPI_PivotTag, having type NameColumnsPairPresModel - ParameterId["PivotTag"] = "pivotTag"; - // DPI_PivotGroups, having type NameColumnsPairPresModel[] - ParameterId["PivotGroups"] = "pivotGroups"; - // DPI_DataSourceDropdown, having type DataSourceDropdownPresModel - ParameterId["DataSourceDropdown"] = "dataSourceDropdown"; - // DPI_ConnectionDropdown, having type ConnectionDropdownPresModel - ParameterId["ConnectionDropdown"] = "connectionDropdown"; - // DPI_ActivityEvent, having type ActivityEventPresModel - ParameterId["ActivityEvent"] = "activityEvent"; - // DPI_UIAutomation, having type UIAutomationPresModel - ParameterId["UIAutomation"] = "uiAutomation"; - // DPI_UIAutomationIndex, having type UIAutomationIndexPresModel - ParameterId["UIAutomationIndex"] = "uiAutomationIndex"; - // DPI_UIAutomationIndexList, having type UIAutomationIndexPresModel[] - ParameterId["UIAutomationIndexList"] = "uiAutomationIndexList"; - // DPI_UIAutomationComponentInfo, having type UIAutomationComponentInfoPresModel - ParameterId["UIAutomationComponentInfo"] = "uiAutomationComponentInfo"; - // DPI_UIAutomationComponentInfoList, having type UIAutomationComponentInfoPresModel[] - ParameterId["UIAutomationComponentInfoList"] = "uiAutomationComponentInfoList"; - // DPI_Geometry, having type GeometryPresModel - ParameterId["Geometry"] = "geometry"; - // DPI_MultiPoint, having type MultiPointPresModel - ParameterId["MultiPoint"] = "multiPoint"; - // DPI_MultiLine, having type MultiLinePresModel - ParameterId["MultiLine"] = "multiLine"; - // DPI_MultiPolygon, having type MultiPolygonPresModel - ParameterId["MultiPolygon"] = "multiPolygon"; - // DPI_Polygon, having type PolygonPresModel - ParameterId["Polygon"] = "polygon"; - // DPI_PolygonList, having type PolygonPresModel[] - ParameterId["PolygonList"] = "polygonList"; - // DPI_Line, having type LinePresModel - ParameterId["Line"] = "line"; - // DPI_LineList, having type LinePresModel[] - ParameterId["LineList"] = "lineList"; - // DPI_TabbedAuthentication, having type TabbedAuthenticationPresModel - ParameterId["TabbedAuthentication"] = "tabbedAuthentication"; - // DPI_TabbedAuthenticationTabInfo, having type TabbedAuthenticationTabInfoPresModel - ParameterId["TabbedAuthenticationTabInfo"] = "tabbedAuthenticationTabInfo"; - // DPI_TabbedAuthenticationTabInfos, having type TabbedAuthenticationTabInfoPresModel[] - ParameterId["TabbedAuthenticationTabInfos"] = "tabbedAuthenticationTabInfos"; - // DPI_GeographicSearchCandidate, having type GeographicSearchCandidatePresModel - ParameterId["GeographicSearchCandidate"] = "geographicSearchCandidate"; - // DPI_GeographicSearchCandidateList, having type GeographicSearchCandidatePresModel[] - ParameterId["GeographicSearchCandidateList"] = "geographicSearchCandidateList"; - // DPI_GeographicSearchResults, having type GeographicSearchPresModel - ParameterId["GeographicSearchResults"] = "geographicSearchResults"; - // DPI_ParamInfo, having type ParameterInfoPresModel - ParameterId["ParamInfo"] = "paramInfo"; - // DPI_ParamInfos, having type ParameterInfoPresModel[] - ParameterId["ParamInfos"] = "paramInfos"; - // DPI_ParamNamespaceInfo, having type ParameterNamespaceInfoInfoPresModel - ParameterId["ParamNamespaceInfo"] = "paramNamespaceInfo"; - // DPI_ParamNamespaceInfos, having type ParameterNamespaceInfoPresModel[] - ParameterId["ParamNamespaceInfos"] = "paramNamespaceInfos"; - // DPI_ParamRegistryInfo, having type ParameterRegistryInfoPresModel - ParameterId["ParamRegistryInfo"] = "paramRegistryInfo"; - // DPI_DataSourceProperties, having type DataSourcePropertiesPresModel - ParameterId["DataSourceProperties"] = "connectionProperties"; - // DPI_ConnectionTypePresModel, having type ConnectionTypePresModel - ParameterId["ConnectionTypePresModel"] = "connectionTypePresModel"; - // DPI_ConnectionTypes, having type ConnectionTypePresModel[] - ParameterId["ConnectionTypes"] = "connectionTypes"; - // DPI_ConnectionTypeGroupPresModel, having type ConnectionTypeGroupPresModel - ParameterId["ConnectionTypeGroupPresModel"] = "connectionTypeGroupPresModel"; - // DPI_SavedDataSourcePresModel, having type SavedDataSourcePresModel - ParameterId["SavedDataSourcePresModel"] = "savedDatasourcePresModel"; - // DPI_SavedDataSources, having type SavedDataSourcePresModel[] - ParameterId["SavedDataSources"] = "savedDatasources"; - // DPI_SavedDataSourcesPresModel, having type SavedDataSourcesPresModel - ParameterId["SavedDataSourcesPresModel"] = "savedDatasourcesPresModel"; - // DPI_OpenPaneItemPresModel, having type OpenPaneItemPresModel - ParameterId["OpenPaneItemPresModel"] = "openPaneItemPresModel"; - // DPI_OpenPaneItems, having type OpenPaneItemPresModel[] - ParameterId["OpenPaneItems"] = "openPaneItems"; - // DPI_OpenPaneItemsPresModel, having type OpenPaneItemsPresModel - ParameterId["OpenPaneItemsPresModel"] = "openPaneItemsPresModel"; - // DPI_VariableValue, having type VariableValuePresModel - ParameterId["VariableValue"] = "variableValue"; - // DPI_VariableValues, having type VariableValuePresModel[] - ParameterId["VariableValues"] = "variableValues"; - // DPI_ServerVariableValue, having type ServerVariableValuePresModel - ParameterId["ServerVariableValue"] = "serverVariableValue"; - // DPI_EditableVariableValue, having type EditableVariableValuePresModel - ParameterId["EditableVariableValue"] = "editableVariableValue"; - // DPI_ServerVariableMetadata, having type ServerVariableMetadataPresModel - ParameterId["ServerVariableMetadata"] = "serverVariableMetadata"; - // DPI_PromptVariable, having type PromptVariablePresModel - ParameterId["PromptVariable"] = "promptVariable"; - // DPI_PromptVariables, having type PromptVariablePresModel[] - ParameterId["PromptVariables"] = "promptVariables"; - // DPI_VariablePromptDialog, having type VariablePromptDialogPresModel - ParameterId["VariablePromptDialog"] = "variablePromptDialog"; - // DPI_VariableValueOperation, having type VariableValueOperationPresModel - ParameterId["VariableValueOperation"] = "variableValueOperation"; - // DPI_VariableValueOperations, having type VariableValueOperationPresModel[] - ParameterId["VariableValueOperations"] = "variableValueOperations"; - // DPI_TableOptionsPresModel, having type TableOptionsPresModel - ParameterId["TableOptionsPresModel"] = "tableOptionsPresModel"; - // DPI_ClientInfoPresModel, having type ClientInfoPresModel - ParameterId["ClientInfoPresModel"] = "clientInfoPresModel"; - // DPI_TableauFileInfoPresModel, having type TableauFileInfoPresModel - ParameterId["TableauFileInfoPresModel"] = "tableauFileInfoPresModel"; - // DPI_DebuggingInfoPresModel, having type DebuggingInfoPresModel - ParameterId["DebuggingInfoPresModel"] = "debuggingInfoPresModel"; - // DPI_RunningThreadInfoPresModel, having type RunningThreadInfoPresModel - ParameterId["RunningThreadInfoPresModel"] = "runningThreadInfoPresModel"; - // DPI_AboutDialogInfoPresModel, having type AboutDialogInfoPresModel - ParameterId["AboutDialogInfoPresModel"] = "aboutDialogInfoPresModel"; - // DPI_HybridUIShowcasePresModel, having type HybridUIShowcasePresModel - ParameterId["HybridUIShowcasePresModel"] = "hybridUiShowcasePresModel"; - // DPI_DefaultTextFormat, having type DefaultTextFormatPresModel - ParameterId["DefaultTextFormat"] = "defaultTextFormat"; - // DPI_MapBoxServerInfoPresModel, having type MapBoxServerInfoPresModel - ParameterId["MapBoxServerInfoPresModel"] = "mapboxServerInfoPresModel"; - // DPI_WMSServerInfoPresModel, having type WMSServerInfoPresModel - ParameterId["WMSServerInfoPresModel"] = "wmsServerInfoPresModel"; - // DPI_MapSourceConflictPresModel, having type MapSourceConflictPresModel - ParameterId["MapSourceConflictPresModel"] = "mapSourceConflictPresModel"; - // DPI_EnumeratedSetDialogPresModel, having type EnumeratedSetDialogPresModel - ParameterId["EnumeratedSetDialogPresModel"] = "enumeratedSetDialogPresModel"; - // DPI_EditAliasesDialog, having type EditAliasesDialogPresModel - ParameterId["EditAliasesDialog"] = "editAliasesDialogPresModel"; - // DPI_AliasesPresModel, having type AliasesPresModel - ParameterId["AliasesPresModel"] = "aliasesPresModel"; - // DPI_ClearAliasesPresModel, having type AliasesPresModel - ParameterId["ClearAliasesPresModel"] = "clearAliasesPresModel"; - // DPI_NewAliasesPresModel, having type NewAliasesPresModel - ParameterId["NewAliasesPresModel"] = "newAliasesPresModel"; - // DPI_AliasPresModel, having type AliasPresModel - ParameterId["AliasPresModel"] = "aliasPresModel"; - // DPI_AliasItem, having type AliasItemPresModel - ParameterId["AliasItem"] = "aliasItem"; - // DPI_DuplicateAliasItem, having type AliasItemPresModel - ParameterId["DuplicateAliasItem"] = "duplicateAliasItem"; - // DPI_AliasList, having type AliasItemPresModel[] - ParameterId["AliasList"] = "aliasList"; - // DPI_AliasResultItem, having type AliasResultItemPresModel - ParameterId["AliasResultItem"] = "aliasResultItem"; - // DPI_AliasResultList, having type AliasResultItemPresModel[] - ParameterId["AliasResultList"] = "aliasResultList"; - // DPI_AliasResults, having type AliasResultsPresModel - ParameterId["AliasResults"] = "aliasResults"; - // DPI_EditSetDialogPresModel, having type EditSetDialogPresModel - ParameterId["EditSetDialogPresModel"] = "editSetDialogPresModel"; - // DPI_ConfirmationPresModel, having type ConfirmationPresModel - ParameterId["ConfirmationPresModel"] = "confirmationPresModel"; - // DPI_NotificationPresModel, having type NotificationPresModel - ParameterId["NotificationPresModel"] = "notificationPresModel"; - // DPI_RetargetDataSourceDialogPresModel, having type RetargetDataSourceDialogPresModel - ParameterId["RetargetDataSourceDialogPresModel"] = "retargetDatasourceDialogPresModel"; - // DPI_SharedFilterPresModel, having type SharedFilterPresModel - ParameterId["SharedFilterPresModel"] = "sharedFilterPresModel"; - // DPI_SharedFilterWorksheetInfo, having type SharedFilterWorksheetInfoPresModel - ParameterId["SharedFilterWorksheetInfo"] = "sharedFilterWorksheetInfo"; - // DPI_SharedFilterWorksheetInfoList, having type SharedFilterWorksheetInfoPresModel[] - ParameterId["SharedFilterWorksheetInfoList"] = "sharedFilterWorksheetInfoList"; - // DPI_FieldPickerTreePresModel, having type FieldPickerTreePresModel - ParameterId["FieldPickerTreePresModel"] = "fieldPickerTreePresModel"; - // DPI_FieldPickerTreePresModelSource, having type FieldPickerTreePresModel - ParameterId["FieldPickerTreePresModelSource"] = "fieldPickerTreePresModelSource"; - // DPI_FieldPickerTreePresModelTarget, having type FieldPickerTreePresModel - ParameterId["FieldPickerTreePresModelTarget"] = "fieldPickerTreePresModelTarget"; - // DPI_ErrorInfo, having type ErrorInfoPresModel - ParameterId["ErrorInfo"] = "errorInfoPresModel"; - // DPI_CustomSplitPresModel, having type CustomSplitPresModel - ParameterId["CustomSplitPresModel"] = "customSplitPresModel"; - // DPI_PageSetup, having type PageSetupPresModel - ParameterId["PageSetup"] = "pageSetup"; - // DPI_ServerConnectStatus, having type ServerConnectionStatus - ParameterId["ServerConnectStatus"] = "serverConnectionStatus"; - // DPI_GetFilterItemsResponse, having type GetFilterItemsResponsePresModel - ParameterId["GetFilterItemsResponse"] = "getFilterItemsResponse"; - // DPI_FilterSearchResponse, having type FilterSearchResponsePresModel - ParameterId["FilterSearchResponse"] = "filterSearchResponse"; - // DPI_FilterSearchWithIndexResponse, having type FilterSearchWithIndexResponsePresModel - ParameterId["FilterSearchWithIndexResponse"] = "filterSearchWithIndexResponse"; - // DPI_FilterShowChildrenResponse, having type FilterShowChildrenResponsePresModel - ParameterId["FilterShowChildrenResponse"] = "filterShowChildrenResponse"; - // DPI_EditDataServerConnection, having type EditDataServerConnectionPresModel - ParameterId["EditDataServerConnection"] = "editDataServerConnection"; - // DPI_ImagesEdit, having type ImagesEditPresModel - ParameterId["ImagesEdit"] = "imagesEdit"; - // DPI_BackgroundImage, having type BackgroundImagePresModel - ParameterId["BackgroundImage"] = "backgroundImage"; - // DPI_BackgroundImages, having type BackgroundImagePresModel[] - ParameterId["BackgroundImages"] = "backgroundImages"; - // DPI_Predicate, having type PredicatePresModel - ParameterId["Predicate"] = "predicate"; - // DPI_Predicates, having type PredicatePresModel[] - ParameterId["Predicates"] = "predicates"; - // DPI_ImagesEditResult, having type ImagesEditResultPresModel - ParameterId["ImagesEditResult"] = "imagesEditResult"; - // DPI_SortDialogPresModel, having type SortDialogPresModel - ParameterId["SortDialogPresModel"] = "sortDialogPresModel"; - // DPI_CompoundTableCalc, having type CompoundTableCalculationPresModel - ParameterId["CompoundTableCalc"] = "compoundTableCalculationPresModel"; - // DPI_TableCalc, having type TableCalculationPresModel - ParameterId["TableCalc"] = "tableCalculationPresModel"; - // DPI_TableCalcs, having type TableCalculationPresModel[] - ParameterId["TableCalcs"] = "tableCalculationPresModels"; - // DPI_TableCalcIdentifier, having type TableCalcIdentifierPresModel - ParameterId["TableCalcIdentifier"] = "tableCalcIdentifier"; - // DPI_NestedTableCalcInfo, having type NestedTableCalcInfoPresModel - ParameterId["NestedTableCalcInfo"] = "nestedTableCalcInfo"; - // DPI_NestedTableCalcInfos, having type NestedTableCalcInfoPresModel[] - ParameterId["NestedTableCalcInfos"] = "nestedTableCalcInfos"; - // DPI_Ordering, having type TableCalcOrderingPresModel - ParameterId["Ordering"] = "tableCalcOrderingPresModel"; - // DPI_Cumulative, having type CumulativeTableCalcPresModel - ParameterId["Cumulative"] = "cumulativeTableCalcPresModel"; - // DPI_ReferenceOptions, having type TableCalcReferenceOptionsPresModel - ParameterId["ReferenceOptions"] = "tableCalcReferenceOptionsPresModel"; - // DPI_Difference, having type DifferenceTableCalcPresModel - ParameterId["Difference"] = "differenceTableCalcPresModel"; - // DPI_Window, having type WindowTableCalcPresModel - ParameterId["Window"] = "windowTableCalcPresModel"; - // DPI_PercentTotal, having type PercentTotalTableCalcPresModel - ParameterId["PercentTotal"] = "percentTotalTableCalcPresModel"; - // DPI_Rank, having type RankTableCalcPresModel - ParameterId["Rank"] = "rankTableCalcPresModel"; - // DPI_Custom, having type CustomTableCalcPresModel - ParameterId["Custom"] = "customTableCalcPresModel"; - // DPI_WebDataUrl, having type WebDataUrlPresModel - ParameterId["WebDataUrl"] = "webDataUrl"; - // DPI_VisitedWebDataConnectors, having type WebDataUrlPresModel[] - ParameterId["VisitedWebDataConnectors"] = "visitedWebDataConnectors"; - // DPI_WebDataSessionUrls, having type WebDataUrlPresModel[] - ParameterId["WebDataSessionUrls"] = "webDataSessionUrls"; - // DPI_WebDataUrls, having type WebDataUrlPresModel[] - ParameterId["WebDataUrls"] = "webDataUrls"; - // DPI_FieldPicker, having type FieldPickerPresModel - ParameterId["FieldPicker"] = "fieldPicker"; - // DPI_DescribeField, having type DescribeFieldPresModel - ParameterId["DescribeField"] = "describeField"; - // DPI_ShowDataPresModel, having type ShowDataPresModel - ParameterId["ShowDataPresModel"] = "showDataPresModel"; - // DPI_DataTablePresModel, having type ShowDataTablePresModel - ParameterId["DataTablePresModel"] = "dataTablePresModel"; - // DPI_DataTablePresModels, having type ShowDataTablePresModel[] - ParameterId["DataTablePresModels"] = "dataTablePresModels"; - // DPI_SummaryTablePresModels, having type ShowDataTablePresModel[] - ParameterId["SummaryTablePresModels"] = "summaryTablePresModels"; - // DPI_RefreshAllExtractsPresModel, having type RefreshAllExtractsPresModel - ParameterId["RefreshAllExtractsPresModel"] = "refeshAllExtractsPresModel"; - // DPI_RefreshExtractDataSourcePresModel, having type RefreshExtractDataSourcePresModel - ParameterId["RefreshExtractDataSourcePresModel"] = "refreshExtractDatasourcePresModel"; - // DPI_RefreshExtractDataSourceList, having type RefreshExtractDataSourcePresModel[] - ParameterId["RefreshExtractDataSourceList"] = "refreshExtractDatasourceList"; - // DPI_ExtractHistoryPresModel, having type ExtractHistoryPresModel - ParameterId["ExtractHistoryPresModel"] = "extractHistoryPresModel"; - // DPI_ExtractHistoryItemPresModel, having type ExtractHistoryItemPresModel - ParameterId["ExtractHistoryItemPresModel"] = "extractHistoryItem"; - // DPI_ExtractHistoryList, having type ExtractHistoryItemPresModel[] - ParameterId["ExtractHistoryList"] = "extractHistoryList"; - // DPI_DataProviderPresModel, having type DataProviderPresModel - ParameterId["DataProviderPresModel"] = "dataProviderPresModel"; - // DPI_FormatItem, having type FormatItemPresModel - ParameterId["FormatItem"] = "formatItem"; - // DPI_FormatItemList, having type FormatItemPresModel[] - ParameterId["FormatItemList"] = "formatItemList"; - // DPI_FormatContainer, having type FormatContainerPresModel - ParameterId["FormatContainer"] = "formatContainer"; - // DPI_FormatPane, having type FormatPanePresModel - ParameterId["FormatPane"] = "formatPane"; - // DPI_FormatSection, having type FormatSectionPresModel - ParameterId["FormatSection"] = "formatSection"; - // DPI_CollapsibleSection, having type CollapsibleSectionPresModel - ParameterId["CollapsibleSection"] = "collapsibleSection"; - // DPI_CompositeContainer, having type CompositeContainerPresModel - ParameterId["CompositeContainer"] = "compositeContainer"; - // DPI_UnitContainer, having type UnitContainerPresModel - ParameterId["UnitContainer"] = "unitContainer"; - // DPI_TabGroup, having type TabGroupPresModel - ParameterId["TabGroup"] = "tabGroup"; - // DPI_Tab, having type TabPresModel - ParameterId["Tab"] = "tab"; - // DPI_FormatControl, having type FormatControlPresModel - ParameterId["FormatControl"] = "formatControl"; - // DPI_TextControl, having type TextControlPresModel - ParameterId["TextControl"] = "textControl"; - // DPI_NumericControl, having type NumericControlPresModel - ParameterId["NumericControl"] = "numericControl"; - // DPI_ColorControl, having type ColorControlPresModel - ParameterId["ColorControl"] = "colorControl"; - // DPI_ToggleControl, having type ToggleControlPresModel - ParameterId["ToggleControl"] = "toggleControl"; - // DPI_SelectorControl, having type SelectorControlPresModel - ParameterId["SelectorControl"] = "enumStringStyle"; - // DPI_StatsAnalyticSpec, having type StatsAnalyticSpecPresModel - ParameterId["StatsAnalyticSpec"] = "statsAnalyticSpec"; - // DPI_ClusterSpec, having type ClusterSpecPresModel - ParameterId["ClusterSpec"] = "clusteringSpec"; - // DPI_ClusterResults, having type ClusterResultsPresModel - ParameterId["ClusterResults"] = "clusterResults"; - // DPI_ClusterUnit, having type ClusterUnitPresModel - ParameterId["ClusterUnit"] = "cluster"; - // DPI_ClusterUnits, having type ClusterUnitPresModel[] - ParameterId["ClusterUnits"] = "clusterUnitPresModels"; - // DPI_ClusterFieldANOVA, having type ClusterFieldANOVAPresModel - ParameterId["ClusterFieldANOVA"] = "clusterFieldAnova"; - // DPI_ClusterFieldANOVATable, having type ClusterFieldANOVAPresModel[] - ParameterId["ClusterFieldANOVATable"] = "clusterFieldAnovaTablePresModel"; - // DPI_ClusterEdit, having type ClusterEditPresModel - ParameterId["ClusterEdit"] = "clusterEditPresModel"; - // DPI_ClusterDescription, having type ClusterDescribePresModel - ParameterId["ClusterDescription"] = "clusterDescription"; - // DPI_OutlierResults, having type OutlierResultsPresModel - ParameterId["OutlierResults"] = "outlierResults"; - // DPI_ConnectToDataServerSourceResult, having type ConnectToDataServerSourceResultPresModel - ParameterId["ConnectToDataServerSourceResult"] = "connectToDataServerSourceResult"; - // DPI_DataServerConnectionReturnStatus, having type ConnectToDataServerSourceResultPresModel - ParameterId["DataServerConnectionReturnStatus"] = "dataServerConnectionReturnStatus"; - // DPI_WebQuantitativeColorDialog, having type WebQuantitativeColorDialogPresModel - ParameterId["WebQuantitativeColorDialog"] = "quantitativeColorDialog"; - // DPI_WebCategoricalColorDialog, having type WebCategoricalColorDialogPresModel - ParameterId["WebCategoricalColorDialog"] = "categoricalColorDialog"; - // DPI_WebSaveDatasourceDialog, having type WebSaveDatasourceDialogPresModel - ParameterId["WebSaveDatasourceDialog"] = "saveDatasourceDialog"; - // DPI_BorderStyleSpec, having type StyleSpecPresModel - ParameterId["BorderStyleSpec"] = "borderStyleSpec"; - // DPI_HaloStyleSpec, having type StyleSpecPresModel - ParameterId["HaloStyleSpec"] = "haloStyleSpec"; - // DPI_MarksColorUberEffects, having type MarksColorUberEffectsPresModel - ParameterId["MarksColorUberEffects"] = "marksColorUberEffects"; - // DPI_CategoricalColorEncoding, having type CategoricalColorEncodingPresModel - ParameterId["CategoricalColorEncoding"] = "categoricalColorEncoding"; - // DPI_CategoricalShapeEncoding, having type CategoricalShapeEncodingPresModel - ParameterId["CategoricalShapeEncoding"] = "categoricalShapeEncoding"; - // DPI_ShapePalettePresModel, having type ShapePalettePresModel - ParameterId["ShapePalettePresModel"] = "shapePalettePresModel"; - // DPI_ShapePalettePresModels, having type ShapePalettePresModel[] - ParameterId["ShapePalettePresModels"] = "shapePalettePresModels"; - // DPI_DataSourceDateProperties, having type DataSourceDatePropertiesPresModel - ParameterId["DataSourceDateProperties"] = "datasourceDateProperties"; - // DPI_DatePropertiesDateFormat, having type DatePropertiesDateFormatPresModel - ParameterId["DatePropertiesDateFormat"] = "datePropertiesDateFormat"; - // DPI_DatePropertiesDateFormats, having type DatePropertiesDateFormatPresModel[] - ParameterId["DatePropertiesDateFormats"] = "datePropertiesDateFormats"; - // DPI_HierarchySelect, having type HierarchySelectModel - ParameterId["HierarchySelect"] = "hierarchySelect"; - // DPI_HierarchySelectMember, having type HierarchySelectMemberPresModel - ParameterId["HierarchySelectMember"] = "hierarchySelectMember"; - // DPI_HierarchySelectMemberList, having type HierarchySelectMemberPresModel[] - ParameterId["HierarchySelectMemberList"] = "hierarchySelectMemberList"; - // DPI_HierarchySetDefaultMember, having type HierarchySetDefaultMemberPresModel - ParameterId["HierarchySetDefaultMember"] = "hierarchySetDefaultMember"; - // DPI_SemiStructSchema, having type SemiStructSchemaPresModel - ParameterId["SemiStructSchema"] = "semiStructSchema"; - // DPI_SemiStructSchemaMember, having type SemiStructSchemaMemberPresModel - ParameterId["SemiStructSchemaMember"] = "semiStructSchemaMember"; - // DPI_SemiStructSchemaMemberList, having type SemiStructSchemaMemberPresModel[] - ParameterId["SemiStructSchemaMemberList"] = "semiStructSchemaMemberList"; - // DPI_ParameterEditInfo, having type ParameterEditInfoPresModel - ParameterId["ParameterEditInfo"] = "parameterEditInfo"; - // DPI_ProductParameterInfo, having type ProductParameterInfoPresModel - ParameterId["ProductParameterInfo"] = "productParameterInfo"; - // DPI_CaptionedDatasourceField, having type CaptionedDatasourceInfoPresModel - ParameterId["CaptionedDatasourceField"] = "captionedDatasourceField"; - // DPI_CaptionedDatasourceFields, having type CaptionedDatasourceInfoPresModel[] - ParameterId["CaptionedDatasourceFields"] = "captionedDatasourceFields"; - // DPI_EditedParameterRangeDomain, having type ParameterRangeDomainPresModel - ParameterId["EditedParameterRangeDomain"] = "editedParameterRangeDomain"; - // DPI_ParameterRangeDomain, having type ParameterRangeDomainPresModel - ParameterId["ParameterRangeDomain"] = "parameterRangeDomain"; - // DPI_ParameterListDomain, having type ParameterListDomainPresModel - ParameterId["ParameterListDomain"] = "parameterListDomain"; - // DPI_ParameterListDomainMember, having type ParameterListDomainMemberPresModel - ParameterId["ParameterListDomainMember"] = "parameterListDomainMember"; - // DPI_ParameterListDomainMembers, having type ParameterListDomainMemberPresModel[] - ParameterId["ParameterListDomainMembers"] = "parameterListDomainMembers"; - // DPI_IndexedDomainMember, having type IndexedDomainMemberPresModel - ParameterId["IndexedDomainMember"] = "indexedDomainMember"; - // DPI_IndexedDomainMembers, having type IndexedDomainMemberPresModel[] - ParameterId["IndexedDomainMembers"] = "indexedDomainMembers"; - // DPI_NewIndexedDomainMembers, having type IndexedDomainMemberPresModel[] - ParameterId["NewIndexedDomainMembers"] = "newIndexedDomainMembers"; - // DPI_ParameterListDomainDiff, having type parameter-list-domain-diff - ParameterId["ParameterListDomainDiff"] = "parameterListDomainDiff"; - // DPI_IndexRange, having type IndexRangePresModel - ParameterId["IndexRange"] = "indexRange"; - // DPI_IndexRanges, having type IndexRangePresModel[] - ParameterId["IndexRanges"] = "indexRanges"; - // DPI_CategoricalFind, having type CategoricalFindPresModel - ParameterId["CategoricalFind"] = "categoricalFind"; - // DPI_CaptionedDataValue, having type CaptionedDataValuePresModel - ParameterId["CaptionedDataValue"] = "captionedDataValue"; - // DPI_SelectedValueCaption, having type CaptionedDataValuePresModel - ParameterId["SelectedValueCaption"] = "selectedValueCaption"; - // DPI_DataValueCaptionList, having type CaptionedDataValuePresModel[] - ParameterId["DataValueCaptionList"] = "dataValueCatpionList"; - // DPI_RangeDataValue, having type RangeDataValuePresModel - ParameterId["RangeDataValue"] = "rangeDataValue"; - // DPI_ParameterRangeDataValue, having type RangeDataValuePresModel - ParameterId["ParameterRangeDataValue"] = "parameterRangeDataValue"; - // DPI_DataValueRangeCaptions, having type DataValueRangeCaptionsPresModel - ParameterId["DataValueRangeCaptions"] = "dataValueRangeCaptions"; - // DPI_IndependentDimension, having type IndependentDimensionPresModel - ParameterId["IndependentDimension"] = "independentDimension"; - // DPI_IndependentDimensions, having type IndependentDimensionPresModel[] - ParameterId["IndependentDimensions"] = "independentDimensions"; - // DPI_AttributePerspective, having type PerspectivePresModel - ParameterId["AttributePerspective"] = "attributePerspective"; - // DPI_CubePerspective, having type PerspectivePresModel - ParameterId["CubePerspective"] = "cubePerspective"; - // DPI_AttributePerspectives, having type PerspectivePresModel[] - ParameterId["AttributePerspectives"] = "attributePerspectives"; - // DPI_CalculatedMembersForEditingPresModel, having type EditCalculatedMembersPresModel - ParameterId["CalculatedMembersForEditingPresModel"] = "calculatedMembersForEditingPresmodel"; - // DPI_CalculatedMember, having type CalculatedMemberPresModel - ParameterId["CalculatedMember"] = "calculatedMember"; - // DPI_NewCalculatedMember, having type CalculatedMemberPresModel - ParameterId["NewCalculatedMember"] = "newCalculatedMember"; - // DPI_UpdatedCalculatedMember, having type CalculatedMemberPresModel - ParameterId["UpdatedCalculatedMember"] = "updatedCalculatedMember"; - // DPI_CalculatedMembersList, having type CalculatedMemberPresModel[] - ParameterId["CalculatedMembersList"] = "calculatedMembersList"; - // DPI_CalculatedMemberHierarchyItem, having type CalculatedMemberHierarchyItemPresModel - ParameterId["CalculatedMemberHierarchyItem"] = "calculatedMemberHierarchyItem"; - // DPI_CalculatedMemberHierarchyList, having type CalculatedMemberHierarchyItemPresModel[] - ParameterId["CalculatedMemberHierarchyList"] = "calculatedMemberHierarchyList"; - // DPI_SummaryCardPresModel, having type SummaryCardPresModel - ParameterId["SummaryCardPresModel"] = "summaryCard"; - // DPI_MeasureSummary, having type MeasureSummaryPresModel - ParameterId["MeasureSummary"] = "measureSummary"; - // DPI_MeasureSummaryList, having type MeasureSummaryPresModel[] - ParameterId["MeasureSummaryList"] = "measureSummaryList"; - // DPI_AnnotationPresModel, having type AnnotationPresModel - ParameterId["AnnotationPresModel"] = "annotation"; - // DPI_AnnotationList, having type AnnotationPresModel[] - ParameterId["AnnotationList"] = "annotationList"; - // DPI_AnnotationShapeStyle, having type AnnotationShapeStylePresModel - ParameterId["AnnotationShapeStyle"] = "annotationShapeStyle"; - // DPI_Telemetry, having type TelemetryPresModel - ParameterId["Telemetry"] = "telemetry"; - // DPI_DataSourceTelemetry, having type DataSourceTelemetryPresModel - ParameterId["DataSourceTelemetry"] = "dataSourceTelemetry"; - // DPI_DataSourceTelemetryList, having type DataSourceTelemetryPresModel[] - ParameterId["DataSourceTelemetryList"] = "dataSourceTelemetryList"; - // DPI_VisualSpecificationTelemetry, having type VisualSpecificationTelemetryPresModel - ParameterId["VisualSpecificationTelemetry"] = "visualSpecificationTelemetry"; - // DPI_VisualSpecificationTelemetryList, having type VisualSpecificationTelemetryPresModel[] - ParameterId["VisualSpecificationTelemetryList"] = "visualSpecificationTelemetryList"; - // DPI_UnderlyingDataTable, having type UnderlyingDataTablePresModel - ParameterId["UnderlyingDataTable"] = "underlyingDataTable"; - // DPI_UnderlyingDataTables, having type UnderlyingDataTablePresModel[] - ParameterId["UnderlyingDataTables"] = "underlyingDataTables"; - // DPI_UnderlyingDataTableColumn, having type UnderlyingDataTableColumnPresModel - ParameterId["UnderlyingDataTableColumn"] = "underlyingDataTableColumn"; - // DPI_UnderlyingDataTableColumns, having type UnderlyingDataTableColumnPresModel[] - ParameterId["UnderlyingDataTableColumns"] = "underlyingDataTableColumns"; - // DPI_PageCacheID, having type PageCacheIDPresModel - ParameterId["PageCacheID"] = "pageCacheId"; - // DPI_RelationalPageCacheID, having type PageCacheIDPresModel - ParameterId["RelationalPageCacheID"] = "relationalPageCacheId"; - // DPI_SearchResultsCacheID, having type PageCacheIDPresModel - ParameterId["SearchResultsCacheID"] = "searchResultsCacheId"; - // DPI_PageInfo, having type PageInfoPresModel - ParameterId["PageInfo"] = "pageInfo"; - // DPI_RowColPair, having type RowColPairPresModel - ParameterId["RowColPair"] = "rowColPair"; - // DPI_TopLeftRowCol, having type RowColPairPresModel - ParameterId["TopLeftRowCol"] = "topLeftRowCol"; - // DPI_BotRightRowCol, having type RowColPairPresModel - ParameterId["BotRightRowCol"] = "botRightRowCol"; - // DPI_RowColPairs, having type RowColPairPresModel[] - ParameterId["RowColPairs"] = "rowColPairs"; - // DPI_TableViewCacheInfo, having type TableViewCachePresModel - ParameterId["TableViewCacheInfo"] = "tableViewCacheInfo"; - // DPI_TableViewInfo, having type tableViewInfoPresModel - ParameterId["TableViewInfo"] = "tableViewInfo"; - // DPI_TableViewColumnInfo, having type TableViewColumnInfoPresModel - ParameterId["TableViewColumnInfo"] = "tableViewColumnInfo"; - // DPI_TableViewColumns, having type TableViewColumnInfoPresModel[] - ParameterId["TableViewColumns"] = "tableViewColumns"; - // DPI_TableViewPageItem, having type TableViewPageItemPresModel - ParameterId["TableViewPageItem"] = "tableViewPageItem"; - // DPI_TableViewPageColumns, having type TableViewPageItemPresModel[] - ParameterId["TableViewPageColumns"] = "tableViewPageColumns"; - // DPI_TableViewPageRow, having type TableViewPageRowPresModel - ParameterId["TableViewPageRow"] = "tableViewPageRow"; - // DPI_TableViewPageRows, having type TableViewPageRowPresModel[] - ParameterId["TableViewPageRows"] = "tableViewPageRows"; - // DPI_TableViewPage, having type TableViewPagePresModel - ParameterId["TableViewPage"] = "tableViewPage"; - // DPI_CategoricalValuePicker, having type CategoricalValuePickerPresModel - ParameterId["CategoricalValuePicker"] = "categoricalValuePicker"; - // DPI_AnnotationShapeBorderStyle, having type LineStylePresModel - ParameterId["AnnotationShapeBorderStyle"] = "annotationShapeBorderStyle"; - // DPI_AnotationShapeStrokeStyle, having type LineStylePresModel - ParameterId["AnotationShapeStrokeStyle"] = "annotationShapeStrokeStyle"; - // DPI_CategoricalBinEditorPresModel, having type CategoricalBinEditorPresModel - ParameterId["CategoricalBinEditorPresModel"] = "categoricalBinEditor"; - // DPI_CategoricalBinItem, having type CategoricalBinItemPresModel - ParameterId["CategoricalBinItem"] = "categoricalBinItemPresModel"; - // DPI_CategoricalBinItems, having type CategoricalBinItemPresModel[] - ParameterId["CategoricalBinItems"] = "categoricalBinItemPresModels"; - // DPI_MeasurePickerFieldInfo, having type MeasurePickerFieldInfoPresModel - ParameterId["MeasurePickerFieldInfo"] = "measurePickerFieldInfo"; - // DPI_MeasurePickerFields, having type MeasurePickerFieldInfoPresModel[] - ParameterId["MeasurePickerFields"] = "measurePickerFields"; - // DPI_MeasureAggregationInfo, having type MeasureAggregationInfoPresModel - ParameterId["MeasureAggregationInfo"] = "measureAggregationInfo"; - // DPI_MeasureAggregations, having type MeasureAggregationInfoPresModel[] - ParameterId["MeasureAggregations"] = "measureAggregations"; - // DPI_TuplePair, having type TuplePairPresModel - ParameterId["TuplePair"] = "tuplePair"; - // DPI_DimensionBound, having type DimensionBoundPresModel - ParameterId["DimensionBound"] = "dimensionBound"; - // DPI_PerspectiveBounds, having type DimensionBoundPresModel[] - ParameterId["PerspectiveBounds"] = "perspectiveBounds"; - // DPI_FilterPerspectiveInfoPresModel, having type FilterPerspectiveInfoPresModel - ParameterId["FilterPerspectiveInfoPresModel"] = "filterPerspectiveInfo"; - // DPI_TableRelevance, having type TableRelevancePresModel - ParameterId["TableRelevance"] = "tableRelevance"; - // DPI_AddInRegistrationPresModel, having type AddInRegistrationPresModel - ParameterId["AddInRegistrationPresModel"] = "addInRegistrationPresModel"; - // DPI_AddInRegistrationPresModelList, having type AddInRegistrationPresModel[] - ParameterId["AddInRegistrationPresModelList"] = "addInRegistrationPresModelList"; - // DPI_AddInDashboardAuthoringWidget, having type AddInDashboardWidgetPresModel - ParameterId["AddInDashboardAuthoringWidget"] = "addInDashboardAuthoringWidgetPresModel"; - // DPI_AddInInstance, having type AddInInstancePresModel - ParameterId["AddInInstance"] = "addInInstancePresModel"; - // DPI_AddInLocator, having type AddInLocatorPresModel - ParameterId["AddInLocator"] = "addInLocatorPresModel"; - // DPI_AddInContext, having type AddInContext - ParameterId["AddInContext"] = "addInContext"; - // DPI_AddInMode, having type AddInMode - ParameterId["AddInMode"] = "addInMode"; - // DPI_SetAxisRangeResult, having type SetAxisRangeResult - ParameterId["SetAxisRangeResult"] = "setAxisRangeResult"; - // DPI_SetTickOriginResult, having type SetTickOriginResult - ParameterId["SetTickOriginResult"] = "setTickOriginResult"; - // DPI_SetTickSpacingResult, having type SetTickSpacingResult - ParameterId["SetTickSpacingResult"] = "setTickSpacingResult"; - // DPI_AxisExtentStartType, having type AxisExtentType - ParameterId["AxisExtentStartType"] = "axisExtentStartType"; - // DPI_AxisExtentEndType, having type AxisExtentType - ParameterId["AxisExtentEndType"] = "axisExtentEndType"; - // DPI_AxisExtentsType, having type AxisExtentType - ParameterId["AxisExtentsType"] = "axisExtentsType"; - // DPI_AddInEnvironment, having type AddInEnvironmentPresModel - ParameterId["AddInEnvironment"] = "addInEnvironmentPresModel"; - // DPI_AddInDashboardInfo, having type AddInDashboardInfoPresModel - ParameterId["AddInDashboardInfo"] = "addInDashboardInfoPresModel"; - // DPI_AddInSettingsInfo, having type AddInSettingsInfoPresModel - ParameterId["AddInSettingsInfo"] = "addInSettingsInfo"; - // DPI_AddInBootstrapInfo, having type AddInBootstrapInfoPresModel - ParameterId["AddInBootstrapInfo"] = "addInBootstrapInfo"; - // DPI_AddInDebugSettings, having type AddInDebugSettingsPresModel - ParameterId["AddInDebugSettings"] = "addInDebugSettings"; - // DPI_RichText, having type RichTextPresModel - ParameterId["RichText"] = "richText"; - // DPI_RichTextKeywordSubList, having type RichTextKeywordSubListPresModel - ParameterId["RichTextKeywordSubList"] = "richTextKeywordsSublist"; - // DPI_RichTextKeywordSubLists, having type RichTextKeywordSubListPresModel[] - ParameterId["RichTextKeywordSubLists"] = "richTextKeywordSublists"; - // DPI_RichTextKeywordList, having type RichTextKeywordListPresModel - ParameterId["RichTextKeywordList"] = "richTextKeywordsList"; - // DPI_RichTextBlockStyle, having type RichTextBlockStylePresModel - ParameterId["RichTextBlockStyle"] = "richTextBlockStyle"; - // DPI_RichTextContentStyle, having type RichTextContentStylePresModel - ParameterId["RichTextContentStyle"] = "richTextContentStyle"; - })(ParameterId = exports.ParameterId || (exports.ParameterId = {})); - - -/***/ }, -/* 11 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(4); - var CommandIds_1 = __webpack_require__(12); - var Params_1 = __webpack_require__(10); - var CommandMappingRegistry_1 = __webpack_require__(13); - var CommandRegistration_1 = __webpack_require__(14); - var CommandMappingRegistryFactory = (function () { - function CommandMappingRegistryFactory() { - } - /** - * Creates and populates a new CommandMappingRegistry for the specific version number requested - * - * @static - * @param {VersionNumber} versionNumber - * @returns {CommandMappingRegistry} - * @memberof CommandMappingRegistryFactory - */ - CommandMappingRegistryFactory.createCommandMappingRegistry = function (versionNumber) { - var result = new CommandMappingRegistry_1.CommandMappingRegistry(); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.InitializeAddIn, CommandIds_1.DocCommands.InitializeAddInInstance, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.AddInLocator, Params_1.ParameterId.AddInLocator)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.AddInBootstrapInfo, Params_1.ParameterId.AddInBootstrapInfo))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetUnderlyingData, CommandIds_1.DocCommands.GetUnderlyingData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreAliases, Params_1.ParameterId.IgnoreAliases), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreSelection, Params_1.ParameterId.IgnoreSelection), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IncludeAllColumns, Params_1.ParameterId.IncludeAllColumns), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.MaxRows, Params_1.ParameterId.MaxRows), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.UnderlyingDataTable, Params_1.ParameterId.UnderlyingDataTable))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetDataSummaryData, CommandIds_1.DocCommands.GetSummaryData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreAliases, Params_1.ParameterId.IgnoreAliases), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreSelection, Params_1.ParameterId.IgnoreSelection), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.UnderlyingSummaryDataTable, Params_1.ParameterId.UnderlyingDataTable))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ApplyCategoricalFilter, CommandIds_1.DocCommands.CategoricalFilter, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.QualifiedFieldCaption), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterValues, Params_1.ParameterId.FilterAliases), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterUpdateType, Params_1.ParameterId.FilterUpdateType), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IsExcludeMode, Params_1.ParameterId.Exclude, true), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Worksheet), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Dashboard)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.FieldCaption))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ApplyRangeFilter, CommandIds_1.DocCommands.RangeFilter, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.QualifiedFieldCaption), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterRangeMin, Params_1.ParameterId.RangeMin, true), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterRangeMax, Params_1.ParameterId.RangeMax, true), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterRangeNullOption, Params_1.ParameterId.Included, true), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Worksheet), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Dashboard)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.FieldCaption))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ClearFilter, CommandIds_1.DocCommands.ClearExistingFilter, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.QualifiedFieldCaption), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Worksheet), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Dashboard)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.FieldCaption))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetSelectedMarks, CommandIds_1.DocCommands.GetSelectionData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.SelectedData, Params_1.ParameterId.SelectionData))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetHighlightedMarks, CommandIds_1.DocCommands.GetHighlightedData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.HighlightedData, Params_1.ParameterId.HighlightedData))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.SaveAddInSettings, CommandIds_1.DocCommands.SaveAddInSettings, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.AddInLocator, Params_1.ParameterId.AddInLocator), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.SettingsValues, Params_1.ParameterId.AddInSettings)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.AddInSettingsInfo, Params_1.ParameterId.AddInSettingsInfo))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetParametersForSheet, CommandIds_1.DocCommands.GetParameterModels, [], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterInfos, Params_1.ParameterId.ParameterCtrls))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.FindParameter, CommandIds_1.DocCommands.FindParameterModel, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterCaption, Params_1.ParameterId.FieldCaption, true), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterFieldName, Params_1.ParameterId.FieldNameString, true)], - // We might not get a response if the parameter isn't found - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterInfo, Params_1.ParameterId.ParameterCtrl, true))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ChangeParameterValue, CommandIds_1.DocCommands.SetParameterValue, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterFieldName, Params_1.ParameterId.GlobalFieldName), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterValue, Params_1.ParameterId.ValueStr)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterInfo, Params_1.ParameterId.ParameterCtrl))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ClearSelectedMarks, CommandIds_1.DocCommands.ClearSelectedMarks, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)])); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.SelectByValue, CommandIds_1.DocCommands.SelectByValue, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.Selection, Params_1.ParameterId.Selection, true), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.SelectionUpdateType, Params_1.ParameterId.SelectionUpdateType), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.HierValSelectionModels, Params_1.ParameterId.HierValSelectionModels, true), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DimValSelectionModels, Params_1.ParameterId.DimValSelectionModels, true), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.QuantRangeSelectionModels, Params_1.ParameterId.QuantRangeSelectionModels, true)])); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetDataSources, CommandIds_1.DocCommands.GetSchema, [], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DataSchema, Params_1.ParameterId.DataSchema))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.RefreshDataSource, CommandIds_1.UICommands.RefreshDataSourceUI, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DataSourceId, Params_1.ParameterId.Datasource)], undefined, CommandRegistration_1.CommandNamespace.TabUI)); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetFilters, CommandIds_1.DocCommands.GetWorksheetFilters, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.WorksheetFilters, Params_1.ParameterId.FiltersInfo))); - return result; - }; - return CommandMappingRegistryFactory; - }()); - exports.CommandMappingRegistryFactory = CommandMappingRegistryFactory; - - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - "use strict"; - /* tslint:disable */ - // ----------------------------------------------------------------------------- - // - // This file is the copyrighted property of Tableau Software and is protected - // by registered patents and other applicable U.S. and international laws and - // regulations. - // - // Unlicensed use of the contents of this file is prohibited. Please refer to - // the NOTICES.txt file for further details. - // - // ----------------------------------------------------------------------------- - // WARNING: Computer generated file. Do not hand modify. - // DEPENDS ON: ['../typescript/js-api/api-core/node_modules/@tableau/preslayer-codegen-typescript/templates/commands-enum-ts.template', u'../typescript/js-api/api-core/temp-pres-layer/all-cmd-wrappers.data'] - Object.defineProperty(exports, "__esModule", { value: true }); - var DocCommands; - (function (DocCommands) { - // Saves the settings for the specified add-in id - DocCommands["SaveAddInSettings"] = "save-add-in-settings"; - // Gets the pres model for an add-in instance. - DocCommands["GetAddInInstancePresModel"] = "get-add-in-instance-pres-model"; - // Gets the pres model for the dashboard authoring widget for add-ins. - DocCommands["GetAddInDashboardAuthoringWidgetPresModel"] = "get-add-in-dashboard-authoring-widget-pres-model"; - // Gets the necessary information for an add-in to initialize itself. - DocCommands["InitializeAddInInstance"] = "initialize-add-in-instance"; - // Enables or disable javascript debugging of an add-in. - DocCommands["SetAddInJsDebuggingEnabled"] = "set-add-in-js-debugging-enabled"; - // Whether or not we should pause before loading. If missing, toggle the value - DocCommands["SetPauseBeforeLoadingAddIn"] = "set-pause-before-loading-add-in"; - // Reloads the Add-In widget and web page. - DocCommands["ReloadAddIn"] = "reload-add-in"; - // Retrieves the context menu for a dashboard add-in. - DocCommands["GetAddInZoneContextMenu"] = "get-add-in-zone-context-menu"; - // Gets the pres model which indicates what the debug settings for add-ins is. - DocCommands["GetAddInDebugSettingsPresModel"] = "get-add-in-debug-settings-pres-model"; - // Primary use is for building context menus - DocCommands["IsSelectionAnEditableParameter"] = "is-selection-an-editable-parameter"; - // Check if selection can be used as base for creating a new parameter. Primary use is for building context menus - DocCommands["GetCreateParameterState"] = "get-create-parameter-state"; - // Uses EditParameter to get and return info about the presmodel without maintaining the controller - DocCommands["GetParameterEditInfo"] = "get-parameter-edit-info"; - // Initialize the controller and its stored parameter then return a populated presmodel - DocCommands["CreateParameter"] = "create-parameter"; - // Same underlying logic as CreateParameter but edits rather than creating a new parameter - DocCommands["EditParameter_New"] = "edit-parameter-new"; - // Add a member of a parameter domain. Changes are applied to intermediate state and saved on commit - DocCommands["AddParameterMember"] = "add-parameter-member"; - // Edit a member of a parameter domain. Changes are applied to intermediate state and saved on commit - DocCommands["EditParameterMember"] = "edit-parameter-member"; - // Delete a series of ranges of members from the parameter list. - DocCommands["DeleteParameterMembers"] = "delete-parameter-members"; - // Copy a series of ranges of members of a parameter list - DocCommands["CopyParameterMembers"] = "copy-parameter-members"; - // Move a series of ranges of members of a parameter list - DocCommands["MoveParameterMembers"] = "move-parameter-members"; - // Change domain of a parameter. Changes are applied to intermediate state and saved on commit - DocCommands["EditParameterDomainType"] = "edit-parameter-domain-type"; - // Change datatype of a parameter. Changes are applied to intermediate state and saved on commit - DocCommands["EditParameterDataType"] = "edit-parameter-data-type"; - // Change display format of a parameter. Changes are applied to intermediate state and saved on commit - DocCommands["EditParameterFormat"] = "edit-parameter-format"; - // Validate changes to a parameter's range domain and apply to intermediate state. Changes are saved on commit - DocCommands["EditParameterRange"] = "edit-parameter-range"; - // Edit the value of a non-list domain parameter - DocCommands["EditParameterValue"] = "edit-parameter-value"; - // Edit the value of a list domain parameter - DocCommands["EditParameterValueIndex"] = "edit-parameter-value-index"; - // Update the parameter caption and description - used to keep backend in sync. No verification/return is requried. - DocCommands["EditParameterDisplayInfo"] = "edit-parameter-display-info"; - // Update the domain of the parameter using a field (column or parameter) as a base - DocCommands["UpdateParameterFromField"] = "update-parameter-from-field"; - // Update the list domain of a parameter from a plain text representation of values - DocCommands["ParseParameterListDomain"] = "parse-parameter-list-domain"; - // Clears the parameter's domain of all members - DocCommands["ClearParameterListDomain"] = "clear-parameter-list-domain"; - // Creates or edits parameter from intermediate state. Takes a few properties that are cached in dialog and applies them pre-commit. - DocCommands["CommitParameterEdits"] = "commit-parameter-edits"; - // Gets the model for a particular parameter or returns an empty response if one is not found. - DocCommands["FindParameterModel"] = "find-parameter-model"; - // Gets the summary data for a worksheet - DocCommands["GetSummaryData"] = "get-summary-data"; - // Gets the underlying data for a worksheet - DocCommands["GetUnderlyingData"] = "get-underlying-data"; - // Select all marks that have the tuple's value for the given field . - DocCommands["SelectByTupleValue"] = "select-by-tuple-value"; - // Clear all the selected marks for the given worksheet - DocCommands["ClearSelectedMarks"] = "clear-selected-marks"; - // Creates or updates and existing filter based on the provided updates. - DocCommands["ApplyCategoricalFilterUpdates"] = "apply-categorical-filter-updates"; - // Search filter domain for text and return any matching tuples. - DocCommands["CategoricalFilterSearch"] = "categorical-filter-search"; - // Clear all members from the table of the identified cache. - DocCommands["CategoricalFilterClearRelationalCache"] = "categorical-filter-clear-relational-cache"; - // Create tuples for an existing filter from supplied text. - DocCommands["GetCategoricalFilterTuplesFromText"] = "get-categorical-filter-tuples-from-text"; - // Returns a presmodel backing a categorical filter, initializing a data cache for fast lookup of the filter's member domain. - DocCommands["GetCategoricalFilter"] = "get-categorical-filter"; - // Retrieves a page of data to display in the filter's list domain - DocCommands["GetCategoricalFilterDomainPage"] = "get-categorical-filter-domain-page"; - // Reset filter to committed state - DocCommands["ResetCategoricalFilterDeferred"] = "reset-categorical-filter-deferred"; - // Use uncommitted state to reset the filter's controller - DocCommands["RecreateCategoricalFilterController"] = "recreate-categorical-filter-controller"; - // Validates a Categroical Filter name. - DocCommands["ValidateCategoricalFilterName"] = "validate-categorical-filter-name"; - // Gets a summary of the filter pattern. - DocCommands["GetCategoricalFilterPatternSummary"] = "get-categorical-filter-pattern-summary"; - // Gets a summery of the filter condition. - DocCommands["GetCategoricalFilterConditionSummary"] = "get-categorical-filter-condition-summary"; - // Load the current minimum and maximum data value range for the condition field. - DocCommands["LoadCategoricalFilterConditionFieldValueRange"] = "load-categorical-filter-condition-field-value-range"; - // Validates a Categorical Filter's condition formula and re-writes it. - DocCommands["ValidateCategoricalFilterConditionFormula"] = "validate-categorical-filter-condition-formula"; - // Gets a summery of the filter limit. - DocCommands["GetCategoricalFilterLimitSummary"] = "get-categorical-filter-limit-summary"; - // Validates a Categorical Filter's limit count. - DocCommands["ValidateCategoricalFilterLimitCount"] = "validate-categorical-filter-limit-count"; - // Validates a Categorical Filter's limit formula, and re-writes the formula. - DocCommands["ValidateCategoricalFilterLimitFormula"] = "validate-categorical-filter-limit-formula"; - // Validates a Categorical Filter's limit. - DocCommands["ValidateCategoricalFilterLimit"] = "validate-categorical-filter-limit"; - // Inform cache when a user changes the range - DocCommands["CategoricalFilterSetRangeTypeDeferred"] = "categorical-filter-set-range-type-deferred"; - // Inform cache when a user changes whether the selection is exclusive - DocCommands["CategoricalFilterSetSelectionExclusiveDeferred"] = "categorical-filter-set-selection-exclusive-deferred"; - // Inform cache when a user changes whether an empty selection should be considered a selection of 'All' in a Manual selection mode - DocCommands["CategoricalFilterSetUseAllWhenManualIsEmptyDeferred"] = "categorical-filter-set-use-all-when-manual-is-empty-deferred"; - // Inform cache when a user alters the preset type - DocCommands["CategoricalFilterSetPresetTypeDeferred"] = "categorical-filter-set-preset-type-deferred"; - // Inform cache the user has selected one or more members - DocCommands["CategoricalFilterSelectRelationalMembersDeferred"] = "categorical-filter-select-relational-members-deferred"; - // Inform cache the user has deselected one or more members - DocCommands["CategoricalFilterDeselectRelationalMembersDeferred"] = "categorical-filter-deselect-relational-members-deferred"; - // Inform cache when a user selects everything in the domain - DocCommands["CategoricalFilterSelectAllRelationalMembersDeferred"] = "categorical-filter-select-all-relational-members-deferred"; - // Inform cache when a user deselects everything in the domain - DocCommands["CategoricalFilterDeselectAllRelationalMembersDeferred"] = "categorical-filter-deselect-all-relational-members-deferred"; - // Inform cache the user wants to see a different domain (e.g. relevant values only) - DocCommands["CategoricalFilterSetDomainTypeDeferred"] = "categorical-filter-set-domain-type-deferred"; - // Set whether filters apply to totals as well as non-totals table calcs - DocCommands["FilterApplyToTotalTableCalcs"] = "filter-apply-to-total-table-calcs"; - // Gets the list of filters used in a worksheet - DocCommands["GetWorksheetFilters"] = "get-worksheet-filters"; - // - DocCommands["GetHighlightedData"] = "get-highlighted-data"; - // - DocCommands["GetSelectionData"] = "get-selection"; - // - DocCommands["Select"] = "select"; - // - DocCommands["SelectAll"] = "select-all"; - // - DocCommands["SelectByValue"] = "select-by-value"; - // - DocCommands["SelectNoneIncludingMaster"] = "select-none-including-master"; - // - DocCommands["AddManualItemsToFilter"] = "add-manual-items-to-filter"; - // - DocCommands["CategoricalFilter"] = "categorical-filter"; - // - DocCommands["CategoricalFilterByIndex"] = "categorical-filter-by-index"; - // - DocCommands["ChangeSharedFilter"] = "change-shared-filter"; - // - DocCommands["ClearContextFilters"] = "clear-context-filters"; - // - DocCommands["ClearExistingFilter"] = "clear-existing-filter"; - // - DocCommands["DefaultFilter"] = "default-filter"; - // - DocCommands["FilterGeo"] = "filter-geo"; - // - DocCommands["FilterNeg"] = "filter-neg"; - // - DocCommands["FilterNulls"] = "filter-nulls"; - // - DocCommands["FilterTargets"] = "filter-targets"; - // - DocCommands["GetSharedFilterPresModel"] = "get-shared-filter-pres-model"; - // - DocCommands["HierarchicalFilter"] = "hierarchical-filter"; - // - DocCommands["KeepOnlyOrExclude"] = "keep-only-or-exclude"; - // - DocCommands["RangeFilter"] = "range-filter"; - // - DocCommands["RelDateFilter"] = "relative-date-filter"; - // - DocCommands["ResetFilter"] = "reset-filter"; - // - DocCommands["ShowGeoAtDefault"] = "show-geo-at-default"; - // - DocCommands["ShowSVAtDefault"] = "show-sv-at-default"; - // - DocCommands["ToggleLockQuickFilters"] = "toggle-lock-quick-filters"; - // - DocCommands["AddDataConnection"] = "add-data-connection"; - // - DocCommands["AddDrillPath"] = "add-drill-path"; - // - DocCommands["AddCredentialsFromKeychain"] = "add-credentials-from-keychain"; - // - DocCommands["AddCredentialsFromKeychainFile"] = "add-credentials-from-keychain-file"; - // - DocCommands["AddFieldFolder"] = "add-field-folder"; - // - DocCommands["AddSubtotals"] = "add-subtotals"; - // - DocCommands["AddToDrillPath"] = "add-to-drill-path"; - // - DocCommands["AddToFieldFolder"] = "add-to-field-folder"; - // - DocCommands["AggregateMeasuresFlag"] = "aggregate-measures"; - // - DocCommands["ApplyCalculation"] = "apply-calculation"; - // - DocCommands["ApplyPageSetupOptions"] = "apply-page-setup-options"; - // - DocCommands["ApplyTableOptions"] = "apply-table-options"; - // - DocCommands["ApplyTypeInPill"] = "apply-type-in-pill"; - // - DocCommands["Assert"] = "assert"; - // - DocCommands["AttemptConnectDataSourcesOnSheet"] = "attempt-connect-datasources-on-sheet"; - // - DocCommands["AttemptConnectWorkbook"] = "attempt-connect-workbook"; - // - DocCommands["AttemptDataSourcesConnection"] = "attempt-datasources-connection"; - // - DocCommands["AutoUpdates"] = "auto-update"; - // - DocCommands["Brush"] = "highlight"; - // - DocCommands["BrushSpecial"] = "highlight-special"; - // - DocCommands["BuildDataSchemaDataSourceContextMenu"] = "build-data-schema-data-source-context-menu"; - // - DocCommands["BuildDataSchemaContextMenu"] = "build-data-schema-context-menu"; - // - DocCommands["BuildDataSchemaFieldContextMenu"] = "build-data-schema-field-context-menu"; - // - DocCommands["BuildDataSchemaDrillPathContextMenu"] = "build-data-schema-drill-path-context-menu"; - // - DocCommands["BuildFileTableInfoPresModel"] = "build-file-table-info-pres-model"; - // - DocCommands["BuildSheetTabContextMenu"] = "build-sheet-tab-context-menu"; - // - DocCommands["CancelDataSourcePresModel"] = "cancel-datasource-pres-model"; - // - DocCommands["CatBinMergeSplitLabel"] = "categorical-bin-merge-split"; - // - DocCommands["CategoricalQuickFilterEdit"] = "categorical-quick-filter-edit"; - // - DocCommands["CategoricalQuickFilterExcludeValues"] = "categorical-quick-filter-exclude-values"; - // - DocCommands["CategoricalQuickFilterIncludeAllWhenEmpty"] = "categorical-quick-filter-include-all-when-empty"; - // - DocCommands["CategoricalQuickFilterMode"] = "categorical-quick-filter-mode"; - // - DocCommands["CategoricalQuickFilterPattern"] = "categorical-quick-filter-pattern"; - // - DocCommands["CellSize"] = "cell-size"; - // - DocCommands["CellType"] = "cell-type"; - // - DocCommands["ChangeAggregation"] = "change-aggregation"; - // - DocCommands["ChangeAlphaLevel"] = "change-alpha-level"; - // - DocCommands["ChangeBorder"] = "change-border"; - // - DocCommands["ChangeFieldType"] = "change-field-type"; - // - DocCommands["ChangeForecastColumnType"] = "change-forecast-column-type"; - // - DocCommands["ChangeHalo"] = "change-halo"; - // - DocCommands["ChangeMarkers"] = "change-markers"; - // - DocCommands["ChangeSize"] = "change-size"; - // - DocCommands["ChangeSheetTabColor"] = "change-sheet-tab-color"; - // - DocCommands["ClearAllAxisRanges"] = "clear-axis-ranges"; - // - DocCommands["ClearCalcModel"] = "clear-calculation-model"; - // - DocCommands["ClearFilters"] = "clear-filters"; - // - DocCommands["ClearFormatting"] = "clear-formatting"; - // - DocCommands["ClearFuture"] = "clear-future"; - // - DocCommands["ClearLayout"] = "clear-layout"; - // - DocCommands["ClearQuickFilter"] = "clear-quick-filter"; - // - DocCommands["ClearSorts"] = "clear-sorts"; - // - DocCommands["CloseConnection"] = "close-connection"; - // - DocCommands["CloseDataSource"] = "close-data-source"; - // - DocCommands["ConnectionAddGoogleAnalyticsDimension"] = "connection-add-google-analytics-dimension"; - // - DocCommands["ConnectionAddGoogleAnalyticsMeasure"] = "connection-add-google-analytics-measure"; - // - DocCommands["ConnectionAddNewTable"] = "connection-add-new-table"; - // - DocCommands["ConnectionAddCoalesce"] = "connection-add-coalesce"; - // - DocCommands["ConnectionAddPivot"] = "connection-add-pivot"; - // - DocCommands["ConnectionConvertToUnionAndEdit"] = "connection-convert-to-union-and-edit"; - // - DocCommands["ConnectionConvertToUnion"] = "connection-convert-to-union"; - // - DocCommands["ConnectionEditUnion"] = "connection-edit-union"; - // - DocCommands["ConnectionAddOrEditBatchUnion"] = "connection-add-or-edit-batch-union"; - // - DocCommands["ConnectionChangeTableProperty"] = "connection-change-table-property"; - // - DocCommands["ConnectionCountEntity"] = "connection-count-entity"; - // - DocCommands["ConnectionDataServerFetchMoreDatasources"] = "connection-dataserver-fetch-more-datasources"; - // - DocCommands["ConnectionDataServerProjectSelect"] = "connection-dataserver-change-selected-project"; - // - DocCommands["ConnectionDataServerUpdateFetchParameters"] = "connection-dataserver-update-fetch-parameters"; - // - DocCommands["ConnectionDataServerFlushCache"] = "connection-dataserver-flush-cache"; - // - DocCommands["ConnectionDeleteAllTables"] = "connection-delete-all-tables"; - // - DocCommands["ConnectionDeleteTable"] = "connection-delete-table"; - // - DocCommands["ConnectionEditCaption"] = "connection-edit-caption"; - // - DocCommands["ConnectionEditGoogleAnalyticsAccount"] = "connection-edit-google-analytics-account"; - // - DocCommands["ConnectionEditGoogleAnalyticsDateRange"] = "connection-edit-google-analytics-date-range"; - // - DocCommands["ConnectionEditGoogleAnalyticsMeasureGroup"] = "connection-edit-google-analytics-measure-group"; - // - DocCommands["ConnectionToggleGAQueryPartitioning"] = "connection-toggle-ga-query-partitioning"; - // - DocCommands["ConnectionEditGoogleAnalyticsProperty"] = "connection-edit-google-analytics-property"; - // - DocCommands["ConnectionEditGoogleAnalyticsView"] = "connection-edit-google-analytics-view"; - // - DocCommands["ConnectionEditGoogleAnalyticsSegment"] = "connection-edit-google-analytics-segment"; - // - DocCommands["ConnectionEditJoinClauses"] = "connection-edit-join-clauses"; - // - DocCommands["ConnectionEditJoinType"] = "connection-edit-join-type"; - // - DocCommands["ConnectionEditSQLText"] = "connection-edit-sql-text"; - // - DocCommands["ConnectionFetchEntity"] = "connection-fetch-entity"; - // - DocCommands["ConnectionSetForceExtractRefresh"] = "connection-set-force-extract-refresh"; - // - DocCommands["ConnectionPrepareDataSourceForEdit"] = "connection-prepare-datasource-for-edit"; - // - DocCommands["ConnectionClearRefreshAttributes"] = "connection-clear-refresh-attributes"; - // - DocCommands["ConnectionRemoveGoogleAnalyticsDimension"] = "connection-remove-google-analytics-dimension"; - // - DocCommands["ConnectionRemoveGoogleAnalyticsMeasure"] = "connection-remove-google-analytics-measure"; - // - DocCommands["ConnectionRemoveCoalesce"] = "connection-remove-coalesce"; - // - DocCommands["ConnectionRemovePivot"] = "connection-remove-pivot"; - // - DocCommands["ConnectionAddDateParseFormats"] = "connection-add-date-parse-formats"; - // - DocCommands["ConnectionRenameTable"] = "connection-rename-table"; - // - DocCommands["ConnectionReplaceRelationWithSQLText"] = "connection-replace-relation-with-sql-text"; - // - DocCommands["ConnectionReplaceTable"] = "connection-replace-table"; - // - DocCommands["ConnectionResetTableAlias"] = "connection-reset-table-alias"; - // - DocCommands["ConnectionSelectCatalog"] = "connection-select-catalog"; - // - DocCommands["ConnectionSelectCube"] = "connection-select-cube"; - // - DocCommands["ConnectionSelectDatabase"] = "connection-select-database"; - // - DocCommands["ConnectionSelectSchema"] = "connection-select-schema"; - // - DocCommands["ConnectionSelectStoredProcedure"] = "connection-select-stored-procedure"; - // - DocCommands["ConnectionSelectWarehouse"] = "connection-select-warehouse"; - // - DocCommands["ConnectionSelectBigQueryLegacySQLCheckBox"] = "connection-select-bigquery-legacy-check"; - // - DocCommands["ConnectionToggleHasHeaderRow"] = "connection-toggle-has-header-row"; - // - DocCommands["ConnectionToggleTableCleaning"] = "connection-toggle-table-cleaning"; - // - DocCommands["ConnectionToggleUseExtract"] = "connection-toggle-use-extract"; - // - DocCommands["ConnectionViewTableCleaningResults"] = "connection-view-table-cleaning-results"; - // - DocCommands["ConnectToDataServerSource"] = "connect-data-server-datasource"; - // - DocCommands["ConsiderZerosEmptyFlag"] = "consider-zeros-empty"; - // - DocCommands["ConvertUnnamedFields"] = "convert-unnamed-fields"; - // - DocCommands["Crash"] = "crash"; - // - DocCommands["CreateAggregateRole"] = "create-aggregate-role"; - // - DocCommands["CreateConnection"] = "create-connection"; - // - DocCommands["CreateDefaultQuickFilter"] = "create-default-quick-filter"; - // - DocCommands["CreateTypeInPill"] = "create-type-in-pill"; - // - DocCommands["CustomDataGridFieldOrder"] = "custom-datagrid-field-order"; - // - DocCommands["CustomDateAggregation"] = "custom-date-aggregation"; - // - DocCommands["CustomSplitField"] = "custom-split-field"; - // - DocCommands["DebugAssertion"] = "debug-assertion"; - // - DocCommands["DecrementParameterValue"] = "decr-parameter-value"; - // - DocCommands["DeleteFields"] = "delete-calculation-fields-command"; - // - DocCommands["DeleteSheet"] = "delete-sheet"; - // - DocCommands["DescribeDrillPath"] = "describe-drill-path"; - // - DocCommands["DescribeSortFilter"] = "describe-sort-filter"; - // - DocCommands["DismissNullWart"] = "dismiss-null-wart"; - // - DocCommands["DomainQuickFilter"] = "domain-quick-filter"; - // - DocCommands["DoubleFreeCrash"] = "double-free"; - // - DocCommands["DropNowhere"] = "drop-nowhere"; - // - DocCommands["DropOnSchemaViewer"] = "drop-on-schema-viewer"; - // - DocCommands["DropOnShelf"] = "drop-on-shelf"; - // - DocCommands["DropOnCalcEditor"] = "drop-on-calc-editor"; - // - DocCommands["DropOnShowMe"] = "drop-on-showme"; - // - DocCommands["DropPrepare"] = "drop-prepare"; - // - DocCommands["DualAxis"] = "dual-axis"; - // - DocCommands["DuplicateSheet"] = "duplicate-sheet"; - // - DocCommands["EditCopyCalc"] = "edit-copy-calc"; - // - DocCommands["EditDropLines"] = "edit-drop-lines"; - // - DocCommands["EditEnumeratedGroup"] = "edit-enumerated-group"; - // - DocCommands["EditNestedGroup"] = "edit-nested-group"; - // - DocCommands["EditPill"] = "edit-pill"; - // - DocCommands["EditPrimitiveType"] = "edit-primitive-type"; - // - DocCommands["EnableAllBrushing"] = "enable-all-highlights"; - // - DocCommands["EnableQuickFilter"] = "enable-quick-filter"; - // - DocCommands["EnableSheetBrushing"] = "enable-sheet-highlights"; - // - DocCommands["EnableThemedBrushing"] = "enable-themed-highlights"; - // - DocCommands["EnumerateVariables"] = "enumerate-variables"; - // - DocCommands["EnumerateVariableSelectionValues"] = "enumerate-variable-selection-values"; - // - DocCommands["EstablishConnection"] = "establish-connection"; - // - DocCommands["EstablishMatchingConnections"] = "establish-matching-connections"; - // - DocCommands["ExportDataToText"] = "export-data-to-text"; - // - DocCommands["ExtSvcConfig"] = "ext-svc-config"; - // - DocCommands["ExtSvcConfigConnect"] = "ext-svc-config-connect"; - // - DocCommands["Extract"] = "extract"; - // - DocCommands["SetDataGridCurrentTable"] = "set-data-grid-current-table"; - // - DocCommands["FetchTableRelevance"] = "fetch-table-relevance"; - // - DocCommands["FetchCachedTableRelevance"] = "fetch-cached-table-relevance"; - // - DocCommands["FlipLabels"] = "flip-labels"; - // - DocCommands["FloatingToolbar"] = "zoom-controls"; - // - DocCommands["FloatingToolbarToggle"] = "zoom-controls-toggle"; - // - DocCommands["ForecastConfig"] = "forecast-config"; - // - DocCommands["ForecastToggle"] = "forecast-toggle"; - // - DocCommands["FormatWorkbook"] = "format-workbook"; - // - DocCommands["GeographicSearchQuery"] = "geographic-search-query"; - // - DocCommands["GeographicSearchLoadData"] = "geographic-search-load-data"; - // - DocCommands["GeographicSearchIsDataDoneLoading"] = "geographic-search-data-done-loading"; - // - DocCommands["GeographicSearchToggleVisibility"] = "geographic-search-toggle-visibility"; - // - DocCommands["GetEditConnectionPresModel"] = "get-edit-connection-pres-model"; - // - DocCommands["GetEditEnumeratedGroupPresModel"] = "get-edit-enumerated-group-pres-model"; - // - DocCommands["GetEditNestedGroupPresModel"] = "get-edit-nested-group-pres-model"; - // - DocCommands["GetFrameFinderPresModel"] = "get-frame-finder-pres-model"; - // - DocCommands["GetGoogleSheetsListPresModel"] = "get-google-sheets-list-pres-model"; - // - DocCommands["GetGoogleSheetPanePresModel"] = "get-google-sheet-pane-pres-model"; - // - DocCommands["GetInitialSQLPresModel"] = "get-initial-sql-pres-model"; - // - DocCommands["GetQueryBandingPresModel"] = "get-query-banding-pres-model"; - // - DocCommands["GetTabbedAuthenticationPresModel"] = "get-tabbed-authentication-pres-model"; - // - DocCommands["GetActiveSheet"] = "get-active-sheet"; - // - DocCommands["GetAlphaLevel"] = "get-alpha-level"; - // - DocCommands["GetAppConfig"] = "get-app-config"; - // - DocCommands["GetDisabledSecondaryDSFields"] = "get-disabled-secondaryds-fields"; - // - DocCommands["GetBlendingFields"] = "get-blending-fields"; - // - DocCommands["GetCalculationPresModel"] = "get-calculation-pres-model"; - // - DocCommands["GetCategoricalColor"] = "get-categorical-color"; - // - DocCommands["GetClientInfo"] = "get-client-info"; - // - DocCommands["GetCommands"] = "get-commands"; - // - DocCommands["GetConnectionDescriptionPresModel"] = "get-connection-description-pres-model"; - // - DocCommands["GetDSDropdownPresModel"] = "get-ds-dropdown-pres-model"; - // - DocCommands["GetDataPreviewWindowMessagePresModel"] = "get-data-preview-window-pres-model"; - // - DocCommands["GetDataSourcePresModel"] = "get-datasource-pres-model"; - // - DocCommands["GetDataSourceSortPresModel"] = "get-datasource-sort-pres-model"; - // - DocCommands["GetDataSourcePropertiesPresModel"] = "get-datasource-properties-pres-model"; - // - DocCommands["GetConnectionSettingsPresModel"] = "get-connection-settings-pres-model"; - // - DocCommands["GetDashboard"] = "get-dashboard"; - // - DocCommands["GetDataPreview"] = "get-data-preview"; - // - DocCommands["GetDatabaseEnumerationPresModel"] = "get-database-enumeration-pres-model"; - // - DocCommands["GetDefaultColor"] = "get-default-color"; - // - DocCommands["GetDefaultShape"] = "get-default-shape"; - // - DocCommands["GetDragPresModelForText"] = "get-drag-pres-model-for-text"; - // - DocCommands["GetDropTargetPresModel"] = "get-drop-target-pres-model"; - // - DocCommands["GetEditDataServerConnectionPresModel"] = "get-edit-data-server-connection-pres-model"; - // - DocCommands["GetEditDropLinesModel"] = "get-edit-drop-lines-model"; - // - DocCommands["GetEncodingState"] = "get-encoding-state"; - // - DocCommands["GetEncodingTypeMenuModel"] = "get-encoding-type-menu"; - // - DocCommands["GetExtSvcConfig"] = "get-ext-svc-config"; - // - DocCommands["GetForecastPresModel"] = "get-forecast-pres-model"; - // - DocCommands["GetJoinDescriptionPresModel"] = "get-join-description-pres-model"; - // - DocCommands["GetQuickFilter"] = "get-quick-filter"; - // - DocCommands["GetQuickFilters"] = "get-quick-filters"; - // - DocCommands["GetReferenceLinePresModel"] = "get-reference-line-pres-model"; - // - DocCommands["GetParameters"] = "get-parameters"; - // - DocCommands["GetParameterModels"] = "get-parameter-models"; - // - DocCommands["GetParametersRegistryInfo"] = "get-params-registry-info"; - // - DocCommands["GetPivotPresModel"] = "get-pivot-pres-model"; - // - DocCommands["GetScene"] = "get-scene"; - // - DocCommands["GetSchemaEnumerationPresModel"] = "get-schema-enumeration-pres-model"; - // - DocCommands["GetSheetsInfo"] = "get-sheets-info"; - // - DocCommands["GetShowMe"] = "get-show-me"; - // - DocCommands["GetStandardConnectionEnumerationPresModel"] = "get-standard-connection-enumeration-pres-model"; - // - DocCommands["GetStoredProcedureEnumerationPresModel"] = "get-stored-procedure-enumeration-pres-model"; - // - DocCommands["GetStoredProcedureParametersPresModel"] = "get-stored-procedure-parameters-pres-model"; - // - DocCommands["GetTableEnumerationPresModel"] = "get-table-enumeration-pres-model"; - // - DocCommands["GetTableCleaningPresModel"] = "get-table-cleaning-pres-model"; - // - DocCommands["GetTargetFieldList"] = "get-target-field-list"; - // - DocCommands["GetTopLevelConnectionDescriptionPresModel"] = "get-top-level-connection-description-pres-model"; - // - DocCommands["GetTypeInPillPresModel"] = "get-type-in-pill-pres-model"; - // - DocCommands["GetUberTipPresModel"] = "get-ubertip-pres-model"; - // - DocCommands["GetUnionInfoPresModel"] = "get-union-info-pres-model"; - // - DocCommands["GetVisual"] = "get-visual"; - // - DocCommands["GetVizData"] = "get-viz-data"; - // - DocCommands["GetWarehouseEnumerationPresModel"] = "get-warehouse-enumeration-pres-model"; - // - DocCommands["GetWorkbook"] = "get-workbook"; - // - DocCommands["GetWorldUpdate"] = "get-world-update"; - // - DocCommands["GoToSheet"] = "goto-sheet"; - // - DocCommands["HeapCorruptionCrash"] = "corrupt-heap"; - // - DocCommands["HideColumnFieldLabel"] = "hide-column-field-label"; - // - DocCommands["HideEmptyColsFlag"] = "hide-empty-cols"; - // - DocCommands["HideEmptyRowsFlag"] = "hide-empty-rows"; - // - DocCommands["HideLabel"] = "hide-label"; - // - DocCommands["HideRowFieldLabel"] = "hide-row-field-label"; - // - DocCommands["HierarchicalQuickFilterUpdateSetFunction"] = "hierarchical-quick-filter-update-set-function"; - // - DocCommands["IncludeInTooltip"] = "include-in-tooltip"; - // - DocCommands["IncludeOtherCategoricalBin"] = "include-other-cat-bin"; - // - DocCommands["IncrementExtract"] = "increment-extract"; - // - DocCommands["IncrementParameterValue"] = "incr-parameter-value"; - // - DocCommands["CreateCalc"] = "create-calc"; - // - DocCommands["EditCalc"] = "edit-calc"; - // - DocCommands["InvokeHyperlink"] = "invoke-hyperlink"; - // - DocCommands["KeepOnlyOrExcludeSelection"] = "keep-only-or-exclude-selection"; - // - DocCommands["LabelDrill"] = "label-drill"; - // - DocCommands["LabelDrillCtx"] = "label-drill-ctx"; - // - DocCommands["LevelDrill"] = "level-drill"; - // - DocCommands["LoadUrl"] = "load-url"; - // - DocCommands["ListPublishedDataSources"] = "list-published-datasources"; - // - DocCommands["MarkLabel"] = "mark-label"; - // - DocCommands["MarkTrail"] = "mark-trail"; - // - DocCommands["MemoryDumpObjectCounts"] = "memory-dump-object-counts"; - // - DocCommands["MemoryLeak"] = "memory-leak"; - // - DocCommands["Merge"] = "merge-or-split"; - // - DocCommands["MigrateDataSource"] = "migrate-data-source"; - // - DocCommands["ModifyMarksInSet"] = "add-or-remove-marks"; - // - DocCommands["MoveAreaAnnotationText"] = "move-area-annotation-text"; - // - DocCommands["MoveColumnTotals"] = "move-column-totals"; - // - DocCommands["MoveMark"] = "move-mark"; - // - DocCommands["MovePointAnnotation"] = "move-point-annotation"; - // - DocCommands["MovePointAnnotationTarget"] = "move-point-annotation-target"; - // - DocCommands["MoveReferenceLine"] = "move-reference-line"; - // - DocCommands["MoveRowTotals"] = "move-row-totals"; - // - DocCommands["NavigateToSheet"] = "navigate-to-sheet"; - // - DocCommands["PostCalcJoinClauseResult"] = "post-calc-join-clause-result"; - // - DocCommands["NewDocDashboard"] = "new-dashboard"; - // - DocCommands["NewDocWorksheet"] = "new-worksheet"; - // - DocCommands["NonRangedRemoveReferenceLine"] = "non-ranged-remove-reference-line"; - // - DocCommands["OptimizeExtract"] = "optimize-extract"; - // - DocCommands["OptOutActions"] = "opt-out-actions"; - // - DocCommands["PageHistorySettings"] = "page-history-settings"; - // - DocCommands["PageToggleTrails"] = "page-toggle-trails"; - // - DocCommands["ParseUIName"] = "parse-ui-name"; - // - DocCommands["Percentages"] = "percentages"; - // - DocCommands["Perspectives"] = "perspectives"; - // - DocCommands["PositionPointAnnotation"] = "position-point-annotation"; - // - DocCommands["ProtocolPoolLog"] = "protocol-pool-log"; - // - DocCommands["PublishDataSource"] = "publish-datasource"; - // - DocCommands["PublishDataSourceFromData"] = "publish-data-source-from-data"; - // - DocCommands["PublishDataSourceFromWorkbookData"] = "publish-data-source-from-workbook-data"; - // - DocCommands["QuantitativeQuickFilterEdit"] = "quantitative-quick-filter-edit"; - // - DocCommands["QuantitativeModeQuickFilter"] = "quantitative-mode-quick-filter"; - // - DocCommands["QueryMigrateDataSources"] = "query-migrate-data-sources"; - // - DocCommands["QuickSort"] = "quick-sort"; - // - DocCommands["RangedByIndexMerge"] = "ranged-by-index-merge"; - // - DocCommands["RangedByValueMerge"] = "ranged-by-value-merge"; - // - DocCommands["Record"] = "record"; - // - DocCommands["Redo"] = "redo"; - // - DocCommands["RefreshExtract"] = "refresh-extract"; - // - DocCommands["RefreshFromSource"] = "refresh-from-source"; - // - DocCommands["RelativeDateQuickFilterEdit"] = "relative-date-quick-filter-edit"; - // - DocCommands["RemoveAllReferenceLines"] = "remove-all-reference-lines"; - // - DocCommands["RemoveDrillPath"] = "remove-drill-path"; - // - DocCommands["RemoveExtract"] = "remove-extract"; - // - DocCommands["RemoveFieldFolder"] = "remove-field-folder"; - // - DocCommands["RemoveFieldLabel"] = "remove-field-label"; - // - DocCommands["RemoveFields"] = "remove-fields"; - // - DocCommands["RemoveFieldsFromShelf"] = "remove-fields-from-shelf"; - // - DocCommands["RemoveFromDrillPath"] = "remove-from-drill-path"; - // - DocCommands["RemoveFromFieldFolder"] = "remove-from-field-folder"; - // - DocCommands["RemoveReferenceLine"] = "remove-reference-line"; - // - DocCommands["RemoveSubtotals"] = "remove-subtotals"; - // - DocCommands["RenameDataSource"] = "rename-data-source"; - // - DocCommands["RenameDrillPath"] = "rename-drill-path"; - // - DocCommands["RenameFieldFolder"] = "rename-field-folder"; - // - DocCommands["RenameSheet"] = "rename-sheet"; - // - DocCommands["ReorderLabels"] = "reorder-labels"; - // - DocCommands["ReportBug"] = "report-bug"; - // - DocCommands["RequestDataSourcePresModel"] = "request-datasource-pres-model"; - // - DocCommands["ResetParameterCtrlTitle"] = "reset-parameter-ctrl-title"; - // - DocCommands["ResetTooltip"] = "reset-tooltip"; - // - DocCommands["ResizeAreaAnnotationText"] = "resize-area-annotation-text"; - // - DocCommands["ResizeAxis"] = "resize-axis"; - // - DocCommands["ResizeCell"] = "resize-cell"; - // - DocCommands["ResizeHeader"] = "resize-header"; - // - DocCommands["ResizePointAnnotation"] = "resize-point-annotation"; - // - DocCommands["Revert"] = "revert"; - // - DocCommands["RotateFieldLabel"] = "rotate-field-label"; - // - DocCommands["RotateLabel"] = "rotate-label"; - // - DocCommands["SplitFieldLabel"] = "split-field-label"; - // - DocCommands["RunAction"] = "run-action"; - // - DocCommands["RunScript"] = "run-script"; - // - DocCommands["RunUpdates"] = "run-update"; - // - DocCommands["SaveModel"] = "save-model"; - // - DocCommands["SavePublishedDStoFile"] = "save-published-ds-to-file"; - // - DocCommands["SelectDataSource"] = "select-data-source"; - // - DocCommands["SelectFieldsInShelf"] = "select-fields-in-shelf"; - // - DocCommands["SendDataConnectionTableViewMessage"] = "send-data-connection-tableview-message"; - // - DocCommands["SetActiveDataSourceName"] = "set-active-data-source-name"; - // - DocCommands["SetActiveConnectionName"] = "set-active-connection-name"; - // - DocCommands["SetActiveDataSource"] = "set-active-datasource"; - // - DocCommands["SetBasePalette"] = "set-base-palette"; - // - DocCommands["SetCategoricalColor"] = "set-categorical-color"; - // - DocCommands["SetDataCacheDelta"] = "set-data-cache-delta"; - // - DocCommands["SetDataPreviewAutoUpdate"] = "set-data-preview-auto-update"; - // - DocCommands["SetDataPreviewCustomFieldOrder"] = "set-data-preview-custom-field-order"; - // - DocCommands["SetDefaultColor"] = "set-default-color"; - // - DocCommands["SetDefaultShape"] = "set-default-shape"; - // - DocCommands["SetFilterContext"] = "set-filter-context"; - // - DocCommands["SetFilterShared"] = "set-filter-shared"; - // - DocCommands["SetInitialSQL"] = "set-initial-sql"; - // - DocCommands["SetItemColor"] = "set-item-color"; - // - DocCommands["SetItemColorResetCustomization"] = "set-item-color-reset-customization"; - // - DocCommands["SetItemEncodingType"] = "set-item-encoding-type"; - // - DocCommands["SetMarkSize"] = "set-mark-size"; - // - DocCommands["SetPageNavFlag"] = "set-page-flag"; - // - DocCommands["SetParameterCtrlDisplayFlags"] = "set-parameter-ctrl-display-flags"; - // - DocCommands["SetParameterCtrlDisplayMode"] = "set-parameter-ctrl-display-mode"; - // - DocCommands["SetParameterCtrlTitle"] = "set-parameter-ctrl-title"; - // - DocCommands["SetParameterValue"] = "set-parameter-value"; - // - DocCommands["SetPrimitive"] = "set-primitive"; - // - DocCommands["SetQueryBanding"] = "set-query-banding"; - // - DocCommands["SetQuickFilterIncludedValues"] = "set-quick-filter-included"; - // - DocCommands["SetReferenceLineFormula"] = "set-reference-line-formula"; - // - DocCommands["SetReferenceLineConstantValue"] = "set-reference-line-constant-value"; - // - DocCommands["SetSheetFormatting"] = "set-sheet-formatting"; - // - DocCommands["SetSheetSize"] = "set-sheet-size"; - // - DocCommands["SetTotalsType"] = "set-totals-type"; - // - DocCommands["SetWorkbookLocale"] = "set-workbook-locale"; - // - DocCommands["ShowCatCtrlQuickFilter"] = "show-cat-ctrl-quick-filter"; - // - DocCommands["ShowColFieldNamesFlag"] = "show-col-field-names"; - // - DocCommands["ShowColTotalsFlag"] = "show-col-totals"; - // - DocCommands["ShowColumnFieldLabel"] = "show-column-field-label"; - // - DocCommands["ShowEmptyColsFlag"] = "show-empty-cols"; - // - DocCommands["ShowEmptyRowsFlag"] = "show-empty-rows"; - // - DocCommands["ShowForecastEditor"] = "show-forecast-editor"; - // - DocCommands["ShowFullRange"] = "show-full-range"; - // - DocCommands["ShowHeader"] = "show-header"; - // - DocCommands["ShowHiddenData"] = "show-hidden-data"; - // - DocCommands["ShowMe"] = "show-me"; - // - DocCommands["ShowQuantCtrlQuickFilter"] = "show-quant-ctrl-quick-filter"; - // - DocCommands["ShowQuickFilterDoc"] = "show-quickfilter-doc"; - // - DocCommands["ShowReferenceLineEditor"] = "show-reference-line-editor"; - // - DocCommands["ShowReferenceLineConstantValueEditor"] = "show-reference-line-constant-value-editor"; - // - DocCommands["ShowReferenceLineFormatter"] = "show-reference-line-formatter"; - // - DocCommands["ShowRowFieldLabel"] = "show-row-field-label"; - // - DocCommands["ShowRowFieldNamesFlag"] = "show-row-field-names"; - // - DocCommands["ShowRowTotalsFlag"] = "show-row-totals"; - // - DocCommands["SimpleCommandList"] = "simple-command-list"; - // - DocCommands["Sleep"] = "sleep"; - // - DocCommands["SleepBackgroundThread"] = "sleep-background-thread"; - // - DocCommands["SortDataGridByColumn"] = "sort-datagrid-by-column"; - // - DocCommands["SortDataGridFields"] = "sort-datagrid-fields"; - // - DocCommands["SpecialValues"] = "special-values"; - // - DocCommands["SplitField"] = "split-field"; - // - DocCommands["StackMarks"] = "stack-marks"; - // - DocCommands["StackOverflowCrash"] = "stack-overflow"; - // - DocCommands["SubtotalAggregation"] = "subtotal-aggregation"; - // - DocCommands["Subtotals"] = "subtotals"; - // - DocCommands["SwapFields"] = "swap-fields"; - // - DocCommands["SwapRowsAndColumns"] = "swap-rows-and-columns"; - // - DocCommands["TableauException"] = "tableau-exception"; - // - DocCommands["Theme"] = "theme"; - // - DocCommands["ToggleDropLines"] = "toggle-drop-lines"; - // - DocCommands["ToggleFieldBlending"] = "toggle-field-blending"; - // - DocCommands["ToggleMarkLabels"] = "toggle-mark-labels"; - // - DocCommands["TogglePageTitle"] = "toggle-page-title"; - // - DocCommands["ToggleParameterCtrlDisplayFlag"] = "toggle-parameter-ctrl-display-flag"; - // - DocCommands["ToggleParameterCtrlTitle"] = "toggle-parameter-ctrl-title"; - // - DocCommands["ToggleQuickFilterTitle"] = "toggle-quick-filter-title"; - // - DocCommands["ToggleVizNavigationSetting"] = "toggle-viz-navigation-setting"; - // - DocCommands["Undo"] = "undo"; - // - DocCommands["UnhideData"] = "unhide-data"; - // - DocCommands["UnhideLabel"] = "unhide-label"; - // - DocCommands["UpdateAreaAnnotation"] = "update-area-annotation"; - // - DocCommands["UpdateCalcScopeIsolation"] = "update-scope-isolation-for-calculation"; - // - DocCommands["UpdateDataServerConnectionInfo"] = "update-data-server-connection-info"; - // - DocCommands["UpdatePointAnnotationPullback"] = "update-point-annotation-pullback"; - // - DocCommands["UpdateTableCalcInfo"] = "update-table-calc-infomation"; - // - DocCommands["UpgradeExtract"] = "upgrade-extract"; - // - DocCommands["UseExtract"] = "use-extract"; - // - DocCommands["ValidateDrillPathName"] = "validate-drill-path-name"; - // - DocCommands["ValidateFormula"] = "validate-formula"; - // - DocCommands["ValidateInitialSQL"] = "validate-initial-sql"; - // - DocCommands["ValidateQueryBanding"] = "validate-query-banding"; - // - DocCommands["ValidateTypeInPill"] = "validate-type-in-pill"; - // - DocCommands["ViewParameterCtrls"] = "view-param-ctrls"; - // - DocCommands["ViewQuickFilters"] = "view-quick-filters"; - // - DocCommands["GetSchema"] = "get-schema"; - // - DocCommands["GetSchemaViewerDataSchema"] = "get-schema-viewer-data-schema"; - // - DocCommands["ConvertToDimension"] = "convert-to-dimension"; - // - DocCommands["ConvertToMeasure"] = "convert-to-measure"; - // - DocCommands["ConvertToContinuous"] = "convert-to-continuous"; - // - DocCommands["ConvertToDiscrete"] = "convert-to-discrete"; - // - DocCommands["RenameField"] = "rename-field"; - // - DocCommands["HideField"] = "hide-field"; - // - DocCommands["UnhideField"] = "unhide-field"; - // - DocCommands["HideUnusedFields"] = "hide-unused-fields"; - // - DocCommands["DuplicateFields"] = "duplicate-fields"; - // - DocCommands["CleanValues"] = "clean-values"; - // - DocCommands["ParseDate"] = "parse-date"; - // - DocCommands["MakeDate"] = "make-date"; - // - DocCommands["SetQualifyNames"] = "set-qualify-names"; - // - DocCommands["CreateMeasureFromColumn"] = "create-measure-from-column"; - // - DocCommands["RemoveFromSchemaDrillPath"] = "remove-from-schema-drill-path"; - // - DocCommands["AddToSchemaDrillPath"] = "add-to-schema-drill-path"; - // - DocCommands["RemoveSchemaDrillPath"] = "remove-schema-drill-path"; - // - DocCommands["ShowHiddenFields"] = "show-hidden-fields"; - // - DocCommands["ShowAliases"] = "show-aliases"; - // - DocCommands["SetRowDisplayCount"] = "set-row-display-count"; - // - DocCommands["ShowStructure"] = "show-structure"; - // - DocCommands["GroupByTable"] = "group-by-table"; - // - DocCommands["ChangeDataType"] = "change-data-type"; - // - DocCommands["ChangePivotStrategy"] = "change-pivot-strategy"; - // - DocCommands["ChangeDisplayAlias"] = "change-display-alias"; - // - DocCommands["SetIncludeSharedMembers"] = "set-include-shared-members"; - // - DocCommands["SetUtilityDimension"] = "set-utility-dimension"; - // - DocCommands["SetDefaultHierarchy"] = "set-default-hierarchy"; - // - DocCommands["DataSourceSortOrder"] = "data-source-sort-order"; - // - DocCommands["ClearUtilityDimension"] = "clear-utility-dimension"; - // - DocCommands["ClearDefaultSort"] = "clear-default-sort"; - // - DocCommands["SetDefaultAggregation"] = "set-default-aggregation"; - // - DocCommands["SetDefaultVTAggregation"] = "set-default-vtaggregation"; - // - DocCommands["ChangeFiscalYear"] = "change-fiscal-year"; - // - DocCommands["ChangeSemanticRole"] = "change-semantic-role"; - // - DocCommands["AddToSheet"] = "add-to-sheet"; - // - DocCommands["DropSchemaSelOnShelf"] = "drop-schema-sel-on-shelf"; - // - DocCommands["AddToSchemaFieldFolder"] = "add-to-schema-field-folder"; - // - DocCommands["RemoveFromSchemaFieldFolder"] = "remove-from-schema-field-folder"; - // - DocCommands["RemoveSchemaFieldFolder"] = "remove-schema-field-folder"; - // - DocCommands["DefaultTextFormat"] = "default-text-format"; - // - DocCommands["EditSchemaCaption"] = "edit-schema-caption"; - // - DocCommands["ResetSchemaCaption"] = "reset-schema-caption"; - // - DocCommands["CreateOutlierSet"] = "create-outlier-set"; - })(DocCommands = exports.DocCommands || (exports.DocCommands = {})); - var UICommands; - (function (UICommands) { - // - UICommands["About"] = "about"; - // - UICommands["AddDataServerDataSourceUI"] = "add-data-server-datasource-ui"; - // - UICommands["SwitchToDocumentAndAddDataServerDataSourceUI"] = "switch-to-document-and-add-data-server-ds-ui"; - // - UICommands["AddDrillPathUI"] = "add-drillpath-ui"; - // - UICommands["AddFieldFolderUI"] = "add-field-folder-ui"; - // - UICommands["AddFileToExtractUI"] = "add-file-to-extract-ui"; - // - UICommands["AddDataSourceToExtractUI"] = "add-data-source-to-extract-ui"; - // - UICommands["AddQCToSheetUI"] = "add-qc-to-sheet-ui"; - // - UICommands["AddReferenceLineUI"] = "add-reference-line-ui"; - // - UICommands["AddSchemaFieldFolderUI"] = "add-to-schema-field-folder-ui"; - // - UICommands["AddTableauServerDSConnectionUI"] = "add-tableau-server-ds-connection-ui"; - // - UICommands["AddToSchemaDrillPathUI"] = "add-to-schema-drillpath-ui"; - // - UICommands["AddToSheetUI"] = "add-to-sheet-ui"; - // - UICommands["AnnotateUI"] = "annotate-ui"; - // - UICommands["AppendDataSourceToRemoteExtractUI"] = "append-data-source-to-remote-extract-ui"; - // - UICommands["AttemptConnectDataSourcesOnSheetUI"] = "attempt-connect-datasources-on-sheet-ui"; - // - UICommands["AttemptDataSourceConnectionUI"] = "attempt-datasource-connect-ui"; - // - UICommands["AutoHideSheet"] = "auto-hide-sheet"; - // - UICommands["AutomationClickMRUItem"] = "click-mru-item"; - // - UICommands["CalculatedMembersUI"] = "calculated-members-ui"; - // - UICommands["ChangeAggregationUI"] = "change-aggregation-ui"; - // - UICommands["ChangeDataServerLogonUI"] = "change-data-server-logon-ui"; - // - UICommands["ChangeEssbaseAliasFile"] = "change-essbase-alias-file"; - // - UICommands["ChangeFieldTypeUI"] = "change-field-type-ui"; - // - UICommands["ChangeTabColorSheet"] = "change-tab-color-sheet"; - // - UICommands["CheckForProductUpdates"] = "check-for-product-updates"; - // - UICommands["ClearDashboardUI"] = "clear-dashboard-ui"; - // - UICommands["ClearSheetUI"] = "clear-sheet-ui"; - // - UICommands["ClearStoryUI"] = "clear-story-ui"; - // - UICommands["ClearVizUI"] = "clear-viz-ui"; - // - UICommands["CloseCalculationUI"] = "close-calculation-ui"; - // - UICommands["CloseDataSourceUI"] = "close-datasource-ui"; - // - UICommands["CloseWorkbook"] = "close-workbook"; - // - UICommands["ColorLegendEditUI"] = "color-legend-edit-ui"; - // - UICommands["CommitPillEditUI"] = "commit-pill-edit-ui"; - // - UICommands["ConnectDataSourceUI"] = "connect-datasource-ui"; - // - UICommands["ConnectRepromptUI"] = "connect-reprompt-ui"; - // - UICommands["ConnectVariablePromptUI"] = "connect-variable-prompt-ui"; - // - UICommands["ConnectVariablePromptMatchingUI"] = "connect-variable-prompt-matching-ui"; - // - UICommands["ConnectionAddNewCustomSQLUI"] = "connection-add-new-custom-sql-ui"; - // - UICommands["ConnectionAddNewTableUI"] = "connection-add-new-table-ui"; - // - UICommands["ConnectionDataGridCopyUI"] = "connection-data-grid-copy-ui"; - // - UICommands["ConnectionEditCustomSQLUI"] = "connection-custom-sql-ui"; - // - UICommands["ConnectionEditExtractUI"] = "connection-extract-ui"; - // - UICommands["ConnectionEditDBVariablesUI"] = "connection-edit-db-variables-ui"; - // - UICommands["ConnectionEditConnectionUI"] = "connection-edit-connection-ui"; - // - UICommands["ConnectionFinalizeDataSourceUI"] = "connection-finalize-datasource-ui"; - // - UICommands["ConnectionFinalizeExtractStatesUI"] = "connection-finalize-extract-states-ui"; - // - UICommands["ConnectionGetTypeGroupPresModelUI"] = "connection-get-type-group-pres-model-ui"; - // - UICommands["ConnectionGetSavedDataSourcesPresModelUI"] = "connection-get-saved-ds-pres-model-ui"; - // - UICommands["ConnectionPartitioningFailureUI"] = "connection-partitioning-failure-ui"; - // - UICommands["ConnectionReplaceTableUI"] = "connection-replace-table-ui"; - // - UICommands["ConnectionSearchCatalogUI"] = "connection-search-catalog-ui"; - // - UICommands["ConnectionSearchCubeUI"] = "connection-search-cube-ui"; - // - UICommands["ConnectionSelectCatalogUI"] = "connection-select-catalog-ui"; - // - UICommands["ConnectionSelectCubeUI"] = "connection-select-cube-ui"; - // - UICommands["ConnectionSelectDatabaseUI"] = "connection-select-database-ui"; - // - UICommands["ConnectionSelectStandardConnectionUI"] = "connection-select-standard-connection-ui"; - // - UICommands["ConnectionSelectStoredProcedureUI"] = "connection-select-stored-procedure-ui"; - // - UICommands["ConnectionShowEditTableDialogUI"] = "connection-show-edit-table-ui"; - // - UICommands["ConnectionShowPivotDialogUI"] = "conneciton-show-pivot-dialog-ui"; - // - UICommands["ConnectionSortCatalogUI"] = "connection-sort-catalog-ui"; - // - UICommands["ConnectionSortCubeUI"] = "connection-sort-cube-ui"; - // - UICommands["ConnectionValidateCustomSQLUI"] = "connection-validate-custom-sql-ui"; - // - UICommands["ConnectToCloudFile"] = "connect-to-cloud-file"; - // - UICommands["ConnectToDataServerSourceUI"] = "connect-data-server-datasource-ui"; - // - UICommands["ConnectionConvertToSQLUI"] = "connection-convert-to-sql-ui"; - // - UICommands["ConnectionRenameConnectionUI"] = "connection-rename-connection-ui"; - // - UICommands["ExportUnderlyingDataToCSVUI"] = "export-to-csv-with-progress-ui"; - // - UICommands["ConnectODBCUI"] = "connect-odbc-ui"; - // - UICommands["CopyCrosstab"] = "copy-crosstab"; - // - UICommands["CopyData"] = "copy-data"; - // - UICommands["CopyDrillPathFieldsUI"] = "copy-drill-path-fields-ui"; - // - UICommands["CopyFieldsDefnUI"] = "copy-fields-defn-ui"; - // - UICommands["CopyImage"] = "copy-image"; - // - UICommands["CopyImageDashboard"] = "copy-image-dashboard"; - // - UICommands["CopyImageWorksheet"] = "copy-image-worksheet"; - // - UICommands["CopyImageStory"] = "copy-image-story"; - // - UICommands["CopyWorksheetFormatting"] = "copy-formatting"; - // - UICommands["CreateCalculatedSetUI"] = "create-calculated-set-ui"; - // - UICommands["CreateCalculationUI"] = "create-calculation-ui"; - // - UICommands["CreateCombinedFieldUI"] = "create-combined-field-ui"; - // - UICommands["CreateConnectionUI"] = "create-connection-ui"; - // - UICommands["CreateDateBinUI"] = "create-Date-bin-ui"; - // - UICommands["CreateGroupSelectionUI"] = "create-group-selection-ui"; - // - UICommands["CreateGroupUI"] = "create-group-ui"; - // - UICommands["CreateIdentitySet"] = "create-user-filter"; - // - UICommands["CreateLeafConnectionUI"] = "create-leaf-connection-ui"; - // - UICommands["CreateNumericBinsUI"] = "create-numeric-bins-ui"; - // - UICommands["CreateSetUI"] = "create-set-ui"; - // - UICommands["CustomDateAggregationUI"] = "custom-date-aggregation-ui"; - // - UICommands["CutDrillPathFieldsUI"] = "cut-drill-path-fields-ui"; - // - UICommands["CutFieldsDefnUI"] = "cut-fields-defn-ui"; - // - UICommands["DeactivateDashboard"] = "deactivate-dashboard"; - // - UICommands["DeleteCookies"] = "delete-cookies"; - // - UICommands["DeleteFieldsUI"] = "delete-fields-ui"; - // - UICommands["DeleteSheetUI"] = "delete-sheet-ui"; - // - UICommands["DescribeAdhocClusterUI"] = "describe-adhoc-cluster-ui"; - // - UICommands["DescribeDrillPathUI"] = "describe-drillpath-ui"; - // - UICommands["DescribeFieldUI"] = "describe-field-ui"; - // - UICommands["DescribeForecastUI"] = "describe-forecast-ui"; - // - UICommands["DescribeSchemaDrillPathUI"] = "describe-schema-drillpath-ui"; - // - UICommands["DescribeTrendLine"] = "describe-trend-line"; - // - UICommands["DescribeTrendModel"] = "describe-trend-model"; - // - UICommands["OpenDiscoverPaneLinks"] = "open-discover-pane-links"; - // - UICommands["DismissGoToWorksheetTooltipUI"] = "dismiss-go-to-worksheet-tooltip-ui"; - // - UICommands["DownloadCopyDataSource"] = "download-copy-data-source"; - // - UICommands["DrilldownUI"] = "drilldown-ui"; - // - UICommands["DropSchemaSelOnShelfUI"] = "drop-schema-sel-on-shelf-ui"; - // - UICommands["DropUI"] = "drop-ui"; - // - UICommands["DuplicateDataSourceUI"] = "duplicate-datasource-ui"; - // - UICommands["DuplicateSheetAsCrosstab"] = "duplicate-sheet-as-crosstab"; - // - UICommands["DuplicateSheetOrCrosstabUI"] = "duplicate-sheet-or-crosstab-ui"; - // - UICommands["DuplicateSheetUI"] = "duplicate-sheet-ui"; - // - UICommands["EditAliasesUI"] = "edit-aliases-ui"; - // - UICommands["EditAnnotation"] = "edit-annotation"; - // - UICommands["EditAxisUI"] = "edit-axis-ui"; - // - UICommands["EditCalculatedSetUI"] = "edit-calculated-set-ui"; - // - UICommands["EditCalculationUI"] = "edit-calculation-ui"; - // - UICommands["EditCaptionUI"] = "edit-caption"; - // - UICommands["EditCombinedFieldUI"] = "edit-combined-field"; - // - UICommands["EditCopyFieldUI"] = "edit-copy-field-ui"; - // - UICommands["EditDataSourceUI"] = "edit-datasource-ui"; - // - UICommands["EditDataSourceFieldAliases"] = "edit-datasource-field-aliases"; - // - UICommands["EditDataSourceFiltersUI"] = "edit-datasource-filters-ui"; - // - UICommands["EditDataSourceSitePathsUI"] = "edit-datasource-site-paths-ui"; - // - UICommands["EditDateBinUI"] = "edit-date-bin-ui"; - // - UICommands["EditDefaultSortUI"] = "edit-default-sort-ui"; - // - UICommands["EditDropLinesUI"] = "edit-drop-lines-ui"; - // - UICommands["EditDropFieldUI"] = "edit-drop-field-ui"; - // - UICommands["EditDataSourceRelationshipsUI"] = "edit-datasource-relationships-ui"; - // - UICommands["EditEnumeratedSetUI"] = "edit-enumerated-set"; - // - UICommands["EditFilterQuickFilter"] = "edit-filter-quick-filter"; - // - UICommands["EditFilterUI"] = "edit-filter-ui"; - // - UICommands["EditForecastUI"] = "edit-forecast-ui"; - // - UICommands["EditGroupUI"] = "edit-group-ui"; - // - UICommands["EditGroupValue"] = "edit-group-value"; - // - UICommands["EditGroupValueLabel"] = "edit-group-value-label"; - // - UICommands["EditLegendGroupValueUI"] = "edit-group-value-legend"; - // - UICommands["EditImageUI"] = "edit-image-ui"; - // - UICommands["EditLegendMemberAliasUI"] = "edit-legend-member-alias-ui"; - // - UICommands["EditLegendTitleUI"] = "edit-legend-title-ui"; - // - UICommands["EditMarkColorUI"] = "edit-mark-color-ui"; - // - UICommands["EditMarkShapeUI"] = "edit-mark-shape-ui"; - // - UICommands["EditMemberAlias"] = "edit-member-alias"; - // - UICommands["EditMemberAliasLabel"] = "edit-member-alias-label"; - // - UICommands["EditPageTitleUI"] = "edit-page-title-ui"; - // - UICommands["EditParameterCtrlTitle"] = "edit-param-control-title"; - // - UICommands["EditPdfPageSelectionUI"] = "edit-pdf-page-selection-ui"; - // - UICommands["EditPrimaryAliasesUI"] = "edit-primary-aliases-ui"; - // - UICommands["EditReferenceLine"] = "edit-reference-line"; - // - UICommands["EditSchemaCalculationUI"] = "edit-schema-calculation-ui"; - // - UICommands["EditSchemaCalculationRangeUI"] = "edit-schema-calculation-range-ui"; - // - UICommands["EditSchemaCaptionUI"] = "edit-schema-caption-ui"; - // - UICommands["EditSchemaFieldAliasUI"] = "edit-schema-field-alias-ui"; - // - UICommands["ResetSchemaCaptionUI"] = "reset-schema-field-alias-ui"; - // - UICommands["ResetMultipleSchemaCaptionsUI"] = "reset-multiple-schema-field-alias-ui"; - // - UICommands["EditSchemaNumericBinsUI"] = "edit-schema-numeric-bins-ui"; - // - UICommands["EditSetUI"] = "edit-set-ui"; - // - UICommands["EditTitleQuickFilter"] = "edit-title-quick-filter"; - // - UICommands["EditTitleUI"] = "edit-title"; - // - UICommands["EditTooltipUI"] = "edit-tooltip"; - // - UICommands["EditTrendLinesUI"] = "edit-trend-lines-ui"; - // - UICommands["EditUserDescriptionUI"] = "edit-user-description-ui"; - // - UICommands["EditWMSMapTileServer"] = "edit-wms-map-tile-server"; - // - UICommands["EditZoneParam"] = "edit-zone-param"; - // - UICommands["EditZoneUrl"] = "edit-zone-url"; - // - UICommands["EstablishConnectionUI"] = "establish-connection-ui"; - // - UICommands["EstablishTableauServerConnectionUI"] = "establish-tableau-server-connection-ui"; - // - UICommands["ExecuteUIAutomationButton"] = "execute-ui-button-action"; - // - UICommands["ExecuteUIAutomationComboBox"] = "execute-ui-combo-box-action"; - // - UICommands["ExecuteUIAutomationGenericWidget"] = "execute-ui-generic-widget-action"; - // - UICommands["ExecuteUIAutomationLabel"] = "execute-ui-label-action"; - // - UICommands["ExecuteUIAutomationMenu"] = "execute-ui-menu-action"; - // - UICommands["ExecuteUIAutomationItemView"] = "execute-ui-item-view-action"; - // - UICommands["ExecuteUIAutomationTextBox"] = "execute-ui-text-box-action"; - // - UICommands["ExecuteUIAutomationToggleButton"] = "execute-ui-toggle-button-action"; - // - UICommands["ExecuteUIAutomationSlider"] = "execute-ui-slider-action"; - // - UICommands["ExecuteUIAutomationWindow"] = "execute-ui-window-action"; - // - UICommands["ExecuteUIAutomationWebView"] = "execute-ui-web-view-action"; - // - UICommands["ExecuteUIAutomationTab"] = "execute-ui-tab-action"; - // - UICommands["ExecuteUIAutomationTextBrowser"] = "execute-ui-text-browser-action"; - // - UICommands["ExitApplication"] = "exit-application"; - // - UICommands["ExportData"] = "export-data"; - // - UICommands["ExportDataSourceUI"] = "export-datasource-ui"; - // - UICommands["ExportPackagedWorkbook"] = "export-packaged"; - // - UICommands["ExportWorkbookSheetsUI"] = "export-workbook-sheets-ui"; - // - UICommands["ExtSvcConfigUI"] = "ext-svc-config-ui"; - // - UICommands["ExtractHistory"] = "extract-history"; - // - UICommands["ExtractPropertiesUI"] = "extract-properties-ui"; - // - UICommands["ExtractUI"] = "extract-ui"; - // - UICommands["FilterFieldLabelUI"] = "filter-field-label-ui"; - // - UICommands["FormatAnnotation"] = "format-annotation"; - // - UICommands["FormatAxisUI"] = "format-axis-ui"; - // - UICommands["FormatCaptionTitleUI"] = "format-caption-title"; - // - UICommands["FormatField"] = "format-pane"; - // - UICommands["FormatFieldLabelUI"] = "format-field-label-ui"; - // - UICommands["FormatLabel"] = "format-label"; - // - UICommands["FormatLegendsUI"] = "format-legends-ui"; - // - UICommands["FormatReferenceLine"] = "format-reference-line"; - // - UICommands["FormatUI"] = "format-ui"; - // - UICommands["FullScreen"] = "fullscreen"; - // - UICommands["GetDashboardSidePaneMode"] = "get-dashboard-sidepane-mode"; - // - UICommands["GetDebuggingInfo"] = "get-debugging-info"; - // - UICommands["GetIconPathForEncodingType"] = "get-icon-path-for-encoding-type"; - // - UICommands["GetIconPathForPrimitiveType"] = "get-icon-path-for-primitive-type"; - // - UICommands["GetTableOptionsPresModel"] = "get-table-options-pres-model"; - // - UICommands["GetWindowNameUI"] = "get-window-name"; - // - UICommands["GetWorksheetSidePaneMode"] = "get-worksheet-sidepane-mode"; - // - UICommands["GetHiddenSheets"] = "get-hidden-sheets"; - // - UICommands["GetOpenPaneMRUs"] = "get-open-pane-mrus"; - // - UICommands["GetOpenPaneSampleWorkbooks"] = "get-open-pane-sample-workbooks"; - // - UICommands["GetRetargetDataSourcePresModelUI"] = "get-retarget-datasource-pres-model-ui"; - // - UICommands["GetSchemaViewerPresModel"] = "get-schema-viewer-pres-model"; - // - UICommands["GetSelectedSheets"] = "get-selected-sheets"; - // - UICommands["GetSheetSorterThumbnail"] = "get-sheet-sorter-thumbnail"; - // - UICommands["GetSheetTabUIThumbnail"] = "get-sheet-tab-ui-thumbnail"; - // - UICommands["GetSheetTabUIText"] = "get-sheet-tab-ui-text"; - // - UICommands["GetVisibleTreeItems"] = "get-visible-tree-items"; - // - UICommands["GotoSheetRange"] = "goto"; - // - UICommands["GotoURL"] = "goto-url"; - // - UICommands["HideCaptionUI"] = "hide-caption"; - // - UICommands["HideFilmstripUI"] = "hide-filmstrip-ui"; - // - UICommands["HideTitleUI"] = "hide-title"; - // - UICommands["HideZoneUI"] = "hide-zone-ui"; - // - UICommands["HideAllSheetsUI"] = "hide-all-sheets-ui"; - // - UICommands["UnhideAllSheetsUI"] = "unhide-all-sheets-ui"; - // - UICommands["ImportLocalDataUI"] = "import-local-data-ui"; - // - UICommands["ImportMapSource"] = "import-map-source"; - // - UICommands["ImportMapSourceUI"] = "import-map-source-ui"; - // - UICommands["ImportWorkbookUI"] = "import-workbook-ui"; - // - UICommands["LoadDefaultFormattingUI"] = "load-formatting-ui"; - // - UICommands["LocateFieldUI"] = "locate-field-ui"; - // - UICommands["LogMemoryUsage"] = "log-memory-usage"; - // - UICommands["ManageLicensing"] = "manage-licensing"; - // - UICommands["ManageMapbox"] = "manage-mapbox"; - // - UICommands["ManagePublicWorkbooks"] = "manage-public"; - // - UICommands["ManageMapServices"] = "manage-map-services"; - // - UICommands["MapLayersUI"] = "map-layers-ui"; - // - UICommands["ManageWMS"] = "manage-wms"; - // - UICommands["UpgradeDataSourcesUI"] = "upgrade-datasources-ui"; - // - UICommands["UpgradeDataSourceUI"] = "upgrade-datasource-ui"; - // - UICommands["MoveRepository"] = "move-repository"; - // - UICommands["NewSchemaDrillPathUI"] = "new-schema-drill-path-ui"; - // - UICommands["NewUIDashboard"] = "new-dashboard-ui"; - // - UICommands["NewUIWorksheet"] = "new-worksheet-ui"; - // - UICommands["NewUIStoryboard"] = "new-storyboard-ui"; - // - UICommands["NewWorkbook"] = "new-workbook"; - // - UICommands["NextSheet"] = "next-sheet"; - // - UICommands["NonRangedEditReferenceLine"] = "non-ranged-edit-reference-line"; - // - UICommands["OpenBookmark"] = "open-bookmark"; - // - UICommands["OpenFromWorkgroup"] = "open-workbook-from-workgroup"; - // - UICommands["OpenMapSource"] = "open-map-source"; - // - UICommands["OpenMapSourceUI"] = "open-map-source-ui"; - // - UICommands["OpenSampleWorkbook"] = "open-sample-workbook"; - // - UICommands["OpenWorkbook"] = "open-workbook"; - // - UICommands["OpenRecentWorkbook"] = "open-recent-workbook"; - // - UICommands["OpenOtherFiles"] = "open-other-files"; - // - UICommands["OptimizeExtractUI"] = "optimize-extract-ui"; - // - UICommands["PageSetup"] = "page-setup"; - // - UICommands["Paste"] = "paste"; - // - UICommands["PasteFieldsDefnUI"] = "paste-fields-defn-ui"; - // - UICommands["PasteWorksheetFormatting"] = "paste-formatting"; - // - UICommands["PDFExport"] = "export-pdf"; - // - UICommands["PerspectivesUI"] = "perspectives-ui"; - // - UICommands["PresentationMode"] = "presentation-mode"; - // - UICommands["Print"] = "print"; - // - UICommands["PromptScript"] = "prompt-command"; - // - UICommands["PropertiesDataSourceUI"] = "properties-datasource-ui"; - // - UICommands["PublishDatasourceToWorkgroup"] = "publish-datasource-to-workgroup"; - // - UICommands["PublishDatasourceToWorkgroupFromData"] = "publish-datasource-to-workgroup-from-data"; - // - UICommands["PublishDatasourceToWorkgroupRange"] = "publish-datasource-to-workgroup-range"; - // - UICommands["PublishWorkbookToWorkgroup"] = "publish-workbook-to-workgroup"; - // - UICommands["PublishDatasourceToWorkgroupFromWorkbookData"] = "publish-datasource-to-workgroup-from-workbook-data"; - // - UICommands["PromptForDataSourceFileUI"] = "prompt-for-datasource-file-ui"; - // - UICommands["PromptUnknownWDCUrlUI"] = "prompt-unknown-wdc-url-ui"; - // - UICommands["QueryDataSourceUI"] = "query-datasource-ui"; - // - UICommands["QuickFilterFieldLabelUI"] = "quick-filter-field-label-ui"; - // - UICommands["QuickTableCalcUI"] = "quick-table-calc-ui"; - // - UICommands["ReconnectMapSourceUI"] = "reconnect-map-source-ui"; - // - UICommands["RecordPerformance"] = "record-perf"; - // - UICommands["RefreshAllExtractsUI"] = "refresh-all-extracts-ui"; - // - UICommands["RefreshAllThumbnailsUI"] = "refresh-all-thumbnails"; - // - UICommands["RefreshAutoExtractUI"] = "refresh-auto-extract-ui"; - // - UICommands["RefreshDataSourceUI"] = "refresh-datasource-ui"; - // - UICommands["RefreshExtractUI"] = "refresh-extract-ui"; - // - UICommands["RefreshFromSourceUI"] = "refresh-from-source-ui"; - // - UICommands["RefreshLocalDataUI"] = "refresh-local-data-ui"; - // - UICommands["RefreshThumbnailUI"] = "refresh-thumbnail"; - // - UICommands["ReleaseMemory"] = "release-memory"; - // - UICommands["RemoveAnnotation"] = "remove-annotation"; - // - UICommands["RemoveExtractUI"] = "remove-extract-ui"; - // - UICommands["RemoveMRUItem"] = "remove-mru"; - // - UICommands["RemoveSavedDataSourceUI"] = "remove-saved-datasource"; - // - UICommands["RemoveSheetFromDashboardUI"] = "remove-sheet-from-dashboard-ui"; - // - UICommands["RemoveTableUI"] = "remove-table-ui"; - // - UICommands["RenameDataSourceUI"] = "rename-datasource-ui"; - // - UICommands["RenameSchemaFieldFolderUI"] = "rename-field-folder-ui"; - // - UICommands["RenameSchemaDrillPathUI"] = "rename-schema-drillpath-ui"; - // - UICommands["RenameSheetUI"] = "rename-sheet-ui"; - // - UICommands["ReorderSheetsUI"] = "reorder-sheets-ui"; - // - UICommands["ReplaceDataSourceWithDataServerDataSourceUI"] = "replace-datasource-with-data-server-datasource-ui"; - // - UICommands["ReplaceFieldUI"] = "replace-field-ui"; - // - UICommands["ResetCaptionUI"] = "reset-caption-ui"; - // - UICommands["ResetCards"] = "reset-cards"; - // - UICommands["ResetLocalDataUI"] = "remove-local-data-ui"; - // - UICommands["ResetMessages"] = "reset-messages"; - // - UICommands["StartOnlineSyncClient"] = "start-online-sync-client"; - // - UICommands["ResetTitleUI"] = "reset-title-ui"; - // - UICommands["ResetToDefaultsMapCard"] = "reset-map-to-defaults"; - // - UICommands["ResetWorkbook"] = "revert-workbook-ui"; - // - UICommands["RetargetDataSource"] = "retarget-datasource"; - // - UICommands["RetargetDataSourceUI"] = "retarget-datasource-ui"; - // - UICommands["SaveAsWorkbook"] = "save-as-workbook"; - // - UICommands["SaveBookmark"] = "save-bookmark"; - // - UICommands["SaveDebuggingWorkbook"] = "save-debugging-workbook"; - // - UICommands["SaveDefaultFormattingUI"] = "save-formatting-ui"; - // - UICommands["SaveWorkbook"] = "save-workbook"; - // - UICommands["SchemaDefaultMemberUI"] = "schema-default-member-ui"; - // - UICommands["ScrollSheet"] = "scroll-sheet"; - // - UICommands["SetAccountsDimension"] = "set-accounts-dimension"; - // - UICommands["SetActiveConnectionUI"] = "set-active-connection-ui"; - // - UICommands["SetAnalyticsDropTargetVisibility"] = "set-analytics-drop-target-visibility"; - // - UICommands["SetDashboardSidePaneMode"] = "set-dashboard-sidepane-mode"; - // - UICommands["SetDefaultDateFormatUI"] = "set-default-date-format-ui"; - // - UICommands["SetDefaultLocationUI"] = "set-default-location-ui"; - // - UICommands["SetDefaultMapSourceUI"] = "set-default-mapsource-ui"; - // - UICommands["SetDefaultTextFormatUI"] = "set-default-text-format-ui"; - // - UICommands["SetDefaultUtilityMember"] = "set-default-utility-member"; - // - UICommands["SetFreeFormDashboardUI"] = "set-free-form-dashboard-ui"; - // - UICommands["SetFilterSharedUI"] = "set-filter-shared-ui"; - // - UICommands["SetKey"] = "set-key"; - // - UICommands["SetProductAutoUpdate"] = "set-auto-update"; - // - UICommands["SetQueryFailure"] = "set-query-failure"; - // - UICommands["SetRendering"] = "set-rendering"; - // - UICommands["SetRuntimeImmediateMode"] = "set-runtime-immediate-mode"; - // - UICommands["SetUILanguage"] = "set-ui-language"; - // - UICommands["SetWorkbookLocaleUI"] = "set-workbook-locale-ui"; - // - UICommands["SetWorksheetSidePaneMode"] = "set-worksheet-sidepane-mode"; - // - UICommands["SetZoneFixedSizeUI"] = "set-zone-fixed-size-ui"; - // - UICommands["SetsInOutUI"] = "show-in-out-sets"; - // - UICommands["ShapeLegendEditUI"] = "shape-legend-edit-ui"; - // - UICommands["ShowCloudFileOAuthPromptAndSelectionUI"] = "show-cloudfile-oauth-prompt-and-selection-ui"; - // - UICommands["ShowConnectionAuthUI"] = "show-connection-auth-ui"; - // - UICommands["ShowConnectionAuthAndEstablishConnectionUI"] = "show-connection-auth-and-establish-connection-ui"; - // - UICommands["ShowConnectTab"] = "show-connect-tab"; - // - UICommands["ShowCustomSplitDialogUI"] = "show-custom-split-dialog-ui"; - // - UICommands["ShowDocument"] = "document"; - // - UICommands["ShowFeatureFlagDialog"] = "show-feature-flag-dialog"; - // - UICommands["ShowFieldFormatUI"] = "show-field-format-ui"; - // - UICommands["ShowFieldInSchemaUI"] = "show-field-in-schema"; - // - UICommands["ShowFilmstripUI"] = "show-filmstrip-ui"; - // - UICommands["ShowGoogleSheetsSelectionUI"] = "show-google-sheets-selection-ui"; - // - UICommands["ShowHelp"] = "show-help"; - // - UICommands["ShowHideDashboardSheetUI"] = "show-hide-dashboard-sheet-ui"; - // - UICommands["ShowHideStoryboardSheetUI"] = "show-hide-storyboard-sheet-ui"; - // - UICommands["ShowGraphicsAPI"] = "show-graphics-api-command"; - // - UICommands["ShowMapOptionsDialog"] = "show-map-options-dialog"; - // - UICommands["ShowMeasuresUI"] = "show-measures-ui"; - // - UICommands["ShowMeCycleUI"] = "show-me-cycle-ui"; - // - UICommands["ShowMeHideUI"] = "show-me-hide-ui"; - // - UICommands["ShowMembersUI"] = "show-members-ui"; - // - UICommands["ShowMeToggleUI"] = "show-me-toggle-ui"; - // - UICommands["ShowOAuthPromptUI"] = "show-oauth-prompt-ui"; - // - UICommands["ShowParameterControl"] = "show-parameter-control"; - // - UICommands["ShowPublicStatusDialog"] = "show-public-status-dialog"; - // - UICommands["ShowPublicQuotaExceededDialog"] = "show-public-quota-exceeded-dialog"; - // - UICommands["ShowPublishDatasourceToWorkgroupDialog"] = "show-publish-datasource-to-workgroup-dialog"; - // - UICommands["ShowQueryBandingAndInitialSQLDialogUI"] = "show-query-banding-and-initial-sql-dialog-ui"; - // - UICommands["ShowQuickFilter"] = "show-quickfilter"; - // - UICommands["ShowQuickFilterUI"] = "show-quickfilter-ui"; - // - UICommands["ShowRuntimeIndicator"] = "show-runtime-indicator"; - // - UICommands["ShowSheetSorter"] = "sheet-sorter"; - // - UICommands["ShowTableOptionsDialog"] = "show-table-options-dialog"; - // - UICommands["ShowWebDataConnectorUI"] = "show-web-data-connector-ui"; - // - UICommands["ShowWidgetSandboxUI"] = "show-widget-sandbox-ui"; - // - UICommands["SizeLegendEditUI"] = "size-legend-edit-ui"; - // - UICommands["SleepUI"] = "sleep-ui"; - // - UICommands["SortAscendingFieldLabelUI"] = "sort-ascending-field-label-ui"; - // - UICommands["SortDescendingFieldLabelUI"] = "sort-descending-field-label-ui"; - // - UICommands["SortFieldLabelUI"] = "sort-field-label-ui"; - // - UICommands["SortUI"] = "sort-ui"; - // - UICommands["SplitFieldUI"] = "split-field-ui"; - // - UICommands["StackMarksUI"] = "stack-marks-ui"; - // - UICommands["StartFileConnectionUI"] = "start-file-connection-ui"; - // - UICommands["StartPillEditUI"] = "start-pill-edit-ui"; - // - UICommands["SwitchToConnectTab"] = "switch-to-connect-tab"; - // - UICommands["SwitchToDocument"] = "switch-to-document"; - // - UICommands["SwitchToSheetSorter"] = "switch-to-sheet-sorter"; - // - UICommands["TableCalcAddressUI"] = "table-calc-address-ui"; - // - UICommands["TableCalcIgnoreUI"] = "table-calc-ignore-ui"; - // - UICommands["TableCalcOrderingUI"] = "table-calc-ordering-ui"; - // - UICommands["TableCalcUI"] = "table-calc-ui"; - // - UICommands["ToggleConnectPaneUI"] = "toggle-connect-pane"; - // - UICommands["ToggleFilmstripUI"] = "toggle-filmstrip-ui"; - // - UICommands["ToggleINDJoinSemanticsUI"] = "toggle-ind-join-semantics-ui"; - // - UICommands["TogglePinMRUItem"] = "toggle-pin-mru"; - // - UICommands["ToggleReferentialIntegrityUI"] = "toggle-referential-integrity-ui"; - // - UICommands["ToggleStartPageUI"] = "toggle-start-page"; - // - UICommands["TrackMemory"] = "track-memory"; - // - UICommands["TrendLinesFlagUI"] = "trend-lines-ui"; - // - UICommands["UpdateDefaultsMapCard"] = "update-map-defaults"; - // - UICommands["UpgradeExtractsUI"] = "upgrade-extracts-ui"; - // - UICommands["UpgradeExtractUI"] = "upgrade-extract-ui"; - // - UICommands["UseExtractUI"] = "use-extract-ui"; - // - UICommands["UseMemory"] = "use-memory"; - // - UICommands["UtilityDimensionUI"] = "utility-dimension-ui"; - // - UICommands["ValidateExtractCredentialsUI"] = "validate-extract-credentials-ui"; - // - UICommands["ViewCard"] = "view-card"; - // - UICommands["ViewTitleCard"] = "view-title-card"; - // - UICommands["ViewSummaryCard"] = "view-summary-card"; - // - UICommands["ViewCaptionCard"] = "view-caption-card"; - // - UICommands["ViewColumnsShelf"] = "view-columns-shelf"; - // - UICommands["ViewRowsShelf"] = "view-rows-shelf"; - // - UICommands["ViewPagesShelf"] = "view-pages-shelf"; - // - UICommands["ViewFiltersShelf"] = "view-filters-shelf"; - // - UICommands["ViewMeasuresShelf"] = "view-measures-shelf"; - // - UICommands["ViewMarksShelf"] = "view-marks-shelf"; - // - UICommands["ViewCurrentPageCard"] = "view-current-page-card"; - // - UICommands["ViewData"] = "view-data"; - // - UICommands["ViewSQLDataUI"] = "view-sql-data-ui"; - // - UICommands["ViewDataSourceData"] = "view-datasource-data"; - // - UICommands["ViewLegend"] = "view-legend"; - // - UICommands["ViewSidePane"] = "view-side-pane"; - // - UICommands["ViewStatusBar"] = "view-statusbar"; - // - UICommands["ViewSummaryDetail"] = "view-summary-detail"; - // - UICommands["ViewTableData"] = "view-table-data"; - // - UICommands["ViewToolBar"] = "view-toolbar"; - // - UICommands["WebViewEnableJavascript"] = "webview-enable-javascript"; - // - UICommands["WebViewEnablePlugins"] = "webview-enable-plugins"; - // - UICommands["WebViewBlockPopups"] = "webview-block-popups"; - // - UICommands["WebViewEnableURLHoverActions"] = "webview-enable-url-hover-actions"; - // - UICommands["WorkgroupChangeDataserver"] = "workgroup-change-dataserver"; - // - UICommands["WorkgroupChangeServer"] = "workgroup-change-server"; - // - UICommands["WorkgroupChangeUser"] = "workgroup-change-user"; - // - UICommands["WorkgroupRemoveLastServer"] = "workgroup-remove-last-server"; - })(UICommands = exports.UICommands || (exports.UICommands = {})); - (function (DocCommands) { - // Gets the axis options . - DocCommands["GetAxisOptions"] = "get-axis-options"; - // Reset the axis options . - DocCommands["ResetAxisOptions"] = "reset-axis-options"; - // Show axis edit dialog - DocCommands["ShowEditAxisDialog"] = "show-edit-axis-dialog"; - // Sets the axis direction - DocCommands["SetAxisReversed"] = "set-axis-reversed"; - // Sets the axis scale type - DocCommands["SetAxisScaleType"] = "set-axis-scale-type"; - // Sets the main title of a quantitative axis - DocCommands["SetAxisTitle"] = "set-axis-title"; - // Sets the subtitle of a quantitative axis - DocCommands["SetAxisSubtitle"] = "set-axis-subtitle"; - // Sets whether we should use the automatic subtitle for a quantitative axis - DocCommands["SetAxisUseAutomaticSubtitle"] = "set-axis-use-automatic-subtitle"; - // Sets the axis range type of a quantitative axis - DocCommands["SetAxisExtentStartType"] = "set-axis-extent-start-type"; - // Sets the axis range type of a quantitative axis - DocCommands["SetAxisExtentEndType"] = "set-axis-extent-end-type"; - // Sets the axis range type of a quantitative axis - DocCommands["SetBothAxisExtentsType"] = "set-both-axis-extents-type"; - // Sets whether or not to force-include zero on a quantitative axis - DocCommands["SetAxisIncludeZero"] = "set-axis-include-zero"; - // Sets new min/max range endings for axis - DocCommands["SetAxisRangeEnd"] = "set-axis-range-end"; - // Sets new min/max range endings for axis - DocCommands["SetAxisRangeStart"] = "set-axis-range-start"; - // Synchronize dual axes on a folded quantitative axis - DocCommands["SetAxisFoldState"] = "set-axis-fold-state"; - // Set the major tick mark state - DocCommands["SetMajorTickMarkState"] = "set-major-tick-mark-state"; - // Set the minor tick mark state - DocCommands["SetMinorTickMarkState"] = "set-minor-tick-mark-state"; - // Set the major tick mark origin - DocCommands["SetMajorTickMarkOrigin"] = "set-major-tick-mark-origin"; - // Set the minor tick mark origin - DocCommands["SetMinorTickMarkOrigin"] = "set-minor-tick-mark-origin"; - // Set the major tick mark spacing - DocCommands["SetMajorTickMarkSpacing"] = "set-major-tick-mark-spacing"; - // Set the minor tick mark spacing - DocCommands["SetMinorTickMarkSpacing"] = "set-minor-tick-mark-spacing"; - // Set the major tick mark units - DocCommands["SetMajorTickMarkUnits"] = "set-major-tick-mark-units"; - // Set the minor tick mark units - DocCommands["SetMinorTickMarkUnits"] = "set-minor-tick-mark-units"; - // - DocCommands["BoundingBoxPan"] = "bounding-box-pan"; - // - DocCommands["OnToggleAxisRanges"] = "on-toggle-axis-ranges"; - // - DocCommands["PanePan"] = "pane-pan"; - // - DocCommands["PaneZoom"] = "pane-zoom"; - // - DocCommands["PaneZoomFactor"] = "pane-zoom-factor"; - // - DocCommands["PaneZoomPan"] = "pane-zoom-pan"; - // - DocCommands["ReorderFoldedAxes"] = "reorder-folded-axes"; - // - DocCommands["ResetAxisRange"] = "reset-axis-range"; - // - DocCommands["SelectAxisTuples"] = "select-axis-tuples"; - // - DocCommands["SwapReferenceLineFields"] = "swap-reference-line-fields"; - // - DocCommands["SynchronizeAxis"] = "synchronize-axis"; - // - DocCommands["ToggleDualAxis"] = "toggle-dual-axis"; - // - DocCommands["ZoomLevel"] = "zoom-level"; - })(DocCommands = exports.DocCommands || (exports.DocCommands = {})); - - -/***/ }, -/* 13 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Registry which contains mappings from an Api VerbId to a pres-layer command. - * This includes the parameters and return values of the command as well - * - * @export - * @class CommandMappingRegistry - */ - var CommandMappingRegistry = (function () { - /** - * Creates an instance of CommandMappingRegistry. - * @memberof CommandMappingRegistry - */ - function CommandMappingRegistry() { - this._commands = {}; - } - /** - * Adds a new command to the registry - * - * @param {CommandRegistration} command - * @memberof CommandMappingRegistry - */ - CommandMappingRegistry.prototype.addCommand = function (command) { - this._commands[command.apiVerbId] = command; - }; - /** - * Whether or not this registry contains a definition for this ApiVerbId - * - * @param {ApiVerbId} apiVerbId - * @returns {boolean} - * @memberof CommandMappingRegistry - */ - CommandMappingRegistry.prototype.hasCommand = function (apiVerbId) { - if (!this._commands.hasOwnProperty(apiVerbId)) { - return false; - } - if (!this._commands[apiVerbId]) { - return false; - } - return true; - }; - /** - * Gets the command registration for this command id or throws if it doesn't exist - * - * @param {ApiVerbId} apiVerbId - * @returns {CommandRegistration} - * @memberof CommandMappingRegistry - */ - CommandMappingRegistry.prototype.getCommand = function (apiVerbId) { - if (!this.hasCommand(apiVerbId)) { - throw new Error('Unknown ApiVerb: ' + apiVerbId); - } - return this._commands[apiVerbId]; - }; - return CommandMappingRegistry; - }()); - exports.CommandMappingRegistry = CommandMappingRegistry; - - -/***/ }, -/* 14 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(4); - /** - * This is an enum used only internally by the api-core project. - * This enum represents the difference namespaces available for commands. - */ - var CommandNamespace; - (function (CommandNamespace) { - CommandNamespace["TabDoc"] = "tabdoc"; - CommandNamespace["TabUI"] = "tabui"; - })(CommandNamespace = exports.CommandNamespace || (exports.CommandNamespace = {})); - /** - * Represents an input or output paramter for a command. - * - * @export - * @class CommandParameter - */ - var CommandParameter = (function () { - /** - * Creates an instance of CommandParameter. - * @param {ApiParameterId} apiId - * @param {PresLayerParameterId} presLayerId - * @param {boolean} [isOptional] - * @memberof CommandParameter - */ - function CommandParameter(_apiId, _presLayerId, _isOptional) { - this._apiId = _apiId; - this._presLayerId = _presLayerId; - this._isOptional = _isOptional; - } - Object.defineProperty(CommandParameter.prototype, "apiId", { - /** - * The Id of the Api Parameter - * - * @readonly - * @type {ApiParameterId} - * @memberof CommandParameter - */ - get: function () { - return this._apiId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CommandParameter.prototype, "presLayerId", { - /** - * The Id of the Pres Layer Parameter - * - * @readonly - * @type {PresLayerParameterId} - * @memberof CommandParameter - */ - get: function () { - return this._presLayerId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CommandParameter.prototype, "isOptional", { - /** - * Whether or not this is an optional parameter - * - * @readonly - * @type {boolean} - * @memberof CommandParameter - */ - get: function () { - return !!this._isOptional; - }, - enumerable: true, - configurable: true - }); - return CommandParameter; - }()); - exports.CommandParameter = CommandParameter; - /** - * Represents a the complete mapping of an ApiCommand to its corresponding pres-layer command - * and the conversion of the output value as well - * - * @export - * @class CommandRegistration - */ - var CommandRegistration = (function () { - function CommandRegistration(_apiVerbId, _commandId, _inputParameters, _outputParameter, _namespace) { - this._apiVerbId = _apiVerbId; - this._commandId = _commandId; - this._inputParameters = _inputParameters; - this._outputParameter = _outputParameter; - this._namespace = _namespace; - } - Object.defineProperty(CommandRegistration.prototype, "apiVerbId", { - get: function () { - return this._apiVerbId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CommandRegistration.prototype, "commandId", { - get: function () { - return this._commandId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CommandRegistration.prototype, "inputs", { - get: function () { - return this._inputParameters || new Array(); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CommandRegistration.prototype, "output", { - get: function () { - return this._outputParameter; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CommandRegistration.prototype, "namespace", { - get: function () { - return this._namespace || CommandNamespace.TabDoc; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CommandRegistration.prototype, "needsAddInLocator", { - /** - * Whether or not this command requires an add-in locator to be injected into it - * - * @readonly - * @type {boolean} - * @memberof CommandRegistration - */ - get: function () { - for (var _i = 0, _a = this.inputs; _i < _a.length; _i++) { - var input = _a[_i]; - if (input.apiId === api_internal_contract_1.ParameterId.AddInLocator) { - return true; - } - } - return false; - }, - enumerable: true, - configurable: true - }); - /** - * Creates a dictionary of pres-layer parameters from the input dictionary - * of api parameters. - * - * @param {ExecuteParameters} parameters - The parameters to convert - * @param {ApiToPresLayerMappingRegistry} apiToPresLayer - mapping to determine the conversion - * @returns {{ [paramId: string]: object; }} - parameters to send to the pres-layer - * @memberof CommandRegistration - */ - CommandRegistration.prototype.createParams = function (parameters, apiToPresLayer) { - var result = {}; - for (var _i = 0, _a = this.inputs; _i < _a.length; _i++) { - var inputParam = _a[_i]; - // First make sure the parameter is there or that it's optional - if (!parameters.hasOwnProperty(inputParam.apiId)) { - if (inputParam.isOptional) { - continue; - } - else { - throw new Error('Missing parameter for command: ' + inputParam.apiId); - } - } - // Find the conversion function for this parameter - var conversionFn = apiToPresLayer.get(inputParam.apiId, inputParam.presLayerId); - // Convert the pres model and insert it into our results object - result[inputParam.presLayerId] = conversionFn(parameters[inputParam.apiId]); - } - return result; - }; - /** - * Processes the result received back after executing a pres-layer command - * - * @param {{ [docParamId: string]: object; }} resultParameters - * @param {PresLayerToApiMappingRegistry} presLayerToApi - * @returns {Model} - * @memberof CommandRegistration - */ - CommandRegistration.prototype.ProcessResult = function (resultParameters, presLayerToApi) { - // TODO: Add error handling - if (this.output === undefined) { - var noOutputModel = {}; - return noOutputModel; - } - if (!resultParameters || !resultParameters.hasOwnProperty(this.output.presLayerId)) { - // if the output result is marked as optional, we don't consider this an error situation and just return an empty model - if (this.output.isOptional) { - return {}; - } - throw new Error('Missing expected result parameter: ' + this.output.presLayerId); - } - var conversionFn = presLayerToApi.get(this.output.presLayerId, this.output.apiId); - return conversionFn(resultParameters[this.output.presLayerId]); - }; - return CommandRegistration; - }()); - exports.CommandRegistration = CommandRegistration; - - -/***/ }, -/* 15 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(4); - var Events_1 = __webpack_require__(16); - var PresLayerToApiConverter_1 = __webpack_require__(17); - /** - * Simple wrapper which holds a mapping to go from a pres-layer event to an API event - */ - var EventMappingRegistration = (function () { - function EventMappingRegistration(_presLayerId, _apiId, _converter) { - this._presLayerId = _presLayerId; - this._apiId = _apiId; - this._converter = _converter; - } - Object.defineProperty(EventMappingRegistration.prototype, "presLayerId", { - get: function () { - return this._presLayerId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventMappingRegistration.prototype, "apiId", { - get: function () { - return this._apiId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventMappingRegistration.prototype, "converter", { - get: function () { - return this._converter; - }, - enumerable: true, - configurable: true - }); - return EventMappingRegistration; - }()); - exports.EventMappingRegistration = EventMappingRegistration; - var EventMappingRegistryFactory = (function () { - function EventMappingRegistryFactory() { - } - /** - * Creates and populates a new EventMappingRegistry for the specific version number requested - * - * @param {VersionNumber} versionNumber - * @returns {EventMappingRegistry} - */ - EventMappingRegistryFactory.createEventMappingRegistry = function (versionNumber) { - var registry = {}; - registry[Events_1.NotificationId.SelectionChanged] = new EventMappingRegistration(Events_1.NotificationId.SelectionChanged, api_internal_contract_1.NotificationId.SelectedMarksChanged, PresLayerToApiConverter_1.PresLayerToApiConverter.convertVisualId); - registry[Events_1.NotificationId.ParameterChanged] = new EventMappingRegistration(Events_1.NotificationId.ParameterChanged, api_internal_contract_1.NotificationId.ParameterChanged, PresLayerToApiConverter_1.PresLayerToApiConverter.convertFieldCaptionPair); - registry[Events_1.NotificationId.FilterChanged] = new EventMappingRegistration(Events_1.NotificationId.FilterChanged, api_internal_contract_1.NotificationId.FilterChanged, PresLayerToApiConverter_1.PresLayerToApiConverter.convertFilterEvent); - return registry; - }; - return EventMappingRegistryFactory; - }()); - exports.EventMappingRegistryFactory = EventMappingRegistryFactory; - - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - "use strict"; - /* tslint:disable */ - // ----------------------------------------------------------------------------- - // - // This file is the copyrighted property of Tableau Software and is protected - // by registered patents and other applicable U.S. and international laws and - // regulations. - // - // Unlicensed use of the contents of this file is prohibited. Please refer to - // the NOTICES.txt file for further details. - // - // ----------------------------------------------------------------------------- - // WARNING: Computer generated file. Do not hand modify. - // DEPENDS ON: ['../typescript/js-api/api-core/node_modules/@tableau/preslayer-codegen-typescript/templates/events-ts.template', u'../typescript/js-api/api-core/temp-pres-layer/all-events.data'] - Object.defineProperty(exports, "__esModule", { value: true }); - // Events you can register to receive presentation models - var NotificationId; - (function (NotificationId) { - // Triggered when aliases are to be edited. Used to launch a dialog. - NotificationId["EditAliasesDialogNotification"] = "edit-aliases-dialog-notification-event"; - // for the calculation dialog - NotificationId["CalculationDialog"] = "calculation-dialog-event"; - // update for an adhoc calc in a type in pill - NotificationId["TypeInPill"] = "type-in-pill-event"; - // results of a validation command - NotificationId["CommandValidation"] = "command-validation-event"; - // event for the groups dialog - NotificationId["UpdateCategoricalBinEditDialog"] = "update-categorical-bin-edit-dialog-event"; - // for the categorical color dialog - NotificationId["CategoricalColor"] = "categorical-color-event"; - // update the web categorical color dialog - NotificationId["WebCategoricalColorDialog"] = "web-categorical-color-dialog-event"; - // user invoked action which requires a Data Alert Dialog - NotificationId["DataAlertDialog"] = "data-alert-dialog-event"; - // event to select field(s) in the data schema - NotificationId["DataSchemaSelection"] = "data-schema-selection-event"; - // event for when the data source being edited is updated - NotificationId["UpdateDataPreparation"] = "update-data-preparation-event"; - // event for when the data source data is updated - NotificationId["UpdateDataSourceData"] = "update-data-source-data-event"; - // event for when a client should request new data source or data source data pres models - NotificationId["DataSourceUpdateNeeded"] = "data-source-update-needed-event"; - // event for getting the pres model to update file join table properties - NotificationId["TextFileProperties"] = "text-file-properties-event"; - // event for the detailed error dialog - NotificationId["UpdateDetailedErrorDialog"] = "update-detailed-error-dialog-event"; - // notify changes to the state of a filter's relational model - NotificationId["FilterRelationalStateChanged"] = "filter-relational-state-changed-event"; - // notify changes to the size/selection count of a relational domain - NotificationId["FilterRelationalDomainChanged"] = "filter-relational-domain-changed-event"; - // notify when filter cache was requested but not found - NotificationId["FilterCacheNotFound"] = "filter-cache-not-found-event"; - // Hierarchy Select model observable notification. - NotificationId["HierarchyNotification"] = "hierarchy-notification-event"; - // Hierarchy selection change notifications. - NotificationId["HierarchySelection"] = "hierarchy-selection-event"; - // event for the map options dialog - NotificationId["MapOptionsDialog"] = "map-options-dialog-event"; - // notify the Page UI(hide/show states, layout) needs to be updated - NotificationId["UpdatePageUINotification"] = "update-page-uinotification-event"; - // notify to the SceneView has been drawn. - NotificationId["SceneViewDrawnNotification"] = "scene-view-drawn-notification-event"; - // The AnimationControlChange event fires when the user clicks an animation playback button: forward, stop, slow, fast, etc. - NotificationId["AnimationControlChange"] = "animation-control-change-event"; - // notify the sheet has been renamed - NotificationId["RenameSheetNotification"] = "rename-sheet-notification-event"; - // update the web quantitative color dialog - NotificationId["WebQuantitativeColorDialog"] = "web-quantitative-color-dialog-event"; - // update the axis edit dialog - NotificationId["UpdateEditAxisDialog"] = "update-edit-axis-dialog-event"; - // event for the reference line dialog, which is only valid during web authoring - NotificationId["UpdateRefLineDialog"] = "update-ref-line-dialog-event"; - // event to trigger other reference line dialogs to close - NotificationId["RefLineDialogOpening"] = "ref-line-dialog-opening-event"; - // event for the close data source error dialog, which is only valid during web authoring - NotificationId["CloseDataSourceErrorDialog"] = "close-data-source-error-dialog-event"; - // update the web Save Datasource dialog - NotificationId["WebSaveDatasourceDialog"] = "web-save-datasource-dialog-event"; - // warning resulting from WarningMsg - NotificationId["WarningMessage"] = "warning-message-event"; - // event for the table calc dialog, on web, this is only valid during web authoring - NotificationId["TableCalcDialog"] = "table-calc-dialog-event"; - // user invoked action which requires Table Calc Dialog - NotificationId["TableCalcActivateDialog"] = "table-calc-activate-dialog-event"; - // event for the trend line dialog - NotificationId["UpdateTrendLineEditDialog"] = "update-trend-line-edit-dialog-event"; - // The table page cache has been refreshed; pages must be reloaded from the cache. - NotificationId["PageCacheRefresh"] = "page-cache-refresh-event"; - // The table page cache has expired and all resources have been released. - NotificationId["PageCacheExpired"] = "page-cache-expired-event"; - // All pages, identified by row/col, in the provided list have expired and should be reloaded. - NotificationId["PageCachePagesExpired"] = "page-cache-pages-expired-event"; - // All pages betweem the range (inclusive) in the provided list have expired and should be reloaded. - NotificationId["PageCachePageRangeExpired"] = "page-cache-page-range-expired-event"; - // Update for the rich text editor dialog - NotificationId["RichTextEditorDialog"] = "rich-text-editor-dialog-event"; - // Triggered when the user wants to reload an add-in instance. - NotificationId["ReloadAddIn"] = "reload-add-in-event"; - // Triggered when the selected marks have changed. - NotificationId["SelectionChanged"] = "selection-changed-event"; - // Triggered when the value of a parameter has changed. Emits the name and caption of the parameter - NotificationId["ParameterChanged"] = "parameter-changed-event"; - // Triggered when the filters have changed. - NotificationId["FilterChanged"] = "filter-changed-event"; - // notification to launch the hybrid UI showcase - NotificationId["LaunchHybridUIShowcase"] = "launch-hybrid-uishowcase-event"; - // notification of new echoed text for HybridUI showcase demo - NotificationId["HybridUIShowcaseEcho"] = "hybrid-uishowcase-echo-event"; - // event for the bin dialog - NotificationId["UpdateNumericBinEditDialog"] = "update-numeric-bin-edit-dialog-event"; - // a test event with a pres model - NotificationId["TestEventWithModel"] = "test-event-with-model-event"; - // a test event without a pres model - NotificationId["TestEventWithoutModel"] = "test-event-without-model-event"; - })(NotificationId = exports.NotificationId || (exports.NotificationId = {})); - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Api = __webpack_require__(4); - var api_utils_1 = __webpack_require__(18); - var EnumMappings_1 = __webpack_require__(21); - /** - * Class containing helper methods for converting from PresLayerPresModels to their ApiPresModels equivalents - * - * @export - * @class PresLayerToApiConverter - */ - var PresLayerToApiConverter = (function () { - function PresLayerToApiConverter() { - } - PresLayerToApiConverter.convertSheetPath = function (plSheetPath) { - var result = { - sheetName: plSheetPath.sheetName, - isDashboard: plSheetPath.isDashboard, - storyboard: plSheetPath.storyboard, - flipboardZoneID: plSheetPath.flipboardZoneId, - storyPointID: plSheetPath.storyPointId, - }; - return result; - }; - PresLayerToApiConverter.convertVisualId = function (plVisualId) { - var result = { - worksheet: plVisualId.worksheet, - dashboard: plVisualId.dashboard, - storyboard: plVisualId.storyboard, - flipboardZoneID: plVisualId.flipboardZoneId, - storyPointID: plVisualId.storyPointId, - }; - return result; - }; - PresLayerToApiConverter.convertAddInLocator = function (plAddInLocator) { - var dashboardPath = undefined; - if (plAddInLocator.sheetPath) { - dashboardPath = PresLayerToApiConverter.convertSheetPath(plAddInLocator.sheetPath); - } - var result = { - instanceId: plAddInLocator.addInInstanceId, - dashboardPath: dashboardPath - }; - return result; - }; - PresLayerToApiConverter.convertDashboardInZones = function (plDashboard) { - var result = new Array(); - for (var _i = 0, _a = Object.keys(plDashboard.zones); _i < _a.length; _i++) { - var zoneKey = _a[_i]; - var zone = plDashboard.zones[zoneKey]; - var apiZone = { - name: zone.zoneCommon.name, - zoneId: zone.zoneId, - zoneType: EnumMappings_1.PresLayerToApiEnumMappings.zoneType.convert(zone.zoneCommon.zoneType), - height: zone.zoneCommon.h, - width: zone.zoneCommon.w, - x: zone.zoneCommon.x, - y: zone.zoneCommon.y - }; - result.push(apiZone); - } - return result; - }; - PresLayerToApiConverter.convertDashboardInfo = function (plDashboardInfo) { - var result = { - zones: PresLayerToApiConverter.convertDashboardInZones(plDashboardInfo.dashboardPresModel), - name: plDashboardInfo.dashboardPresModel.sheetPath.sheetName, - addInZoneId: plDashboardInfo.zoneId, - size: plDashboardInfo.dashboardPresModel.viewportSize - }; - return result; - }; - PresLayerToApiConverter.convertAddInInstance = function (plAddInInstance) { - var result = { - url: plAddInInstance.addInRegistrationPresModel.url, - locator: PresLayerToApiConverter.convertAddInLocator(plAddInInstance.addInLocatorPresModel) - }; - return result; - }; - PresLayerToApiConverter.convertAddInEnivrionment = function (plAddInEnvironment) { - var result = { - addInContext: EnumMappings_1.PresLayerToApiEnumMappings.addInContext.convert(plAddInEnvironment.addInContext), - addInMode: EnumMappings_1.PresLayerToApiEnumMappings.addInMode.convert(plAddInEnvironment.addInMode), - addInLocale: plAddInEnvironment.addInLocale, - addInLanguage: plAddInEnvironment.addInLanguage, - tableauVersion: plAddInEnvironment.tableauVersion, - operatingSystem: plAddInEnvironment.operatingSystem, - apiVersion: plAddInEnvironment.apiVersion - }; - return result; - }; - PresLayerToApiConverter.convertAddInSettingsInfo = function (plAddInSettings) { - var result = { - // addInSettings is undefined during bootstrap initialization - settingsValues: plAddInSettings.addInSettings || {} - }; - return result; - }; - PresLayerToApiConverter.convertAddInBootstrapInfo = function (plBootstrapInfo) { - var result = { - addinDashboardInfo: PresLayerToApiConverter.convertDashboardInfo(plBootstrapInfo.addInDashboardInfoPresModel), - addInEnvironment: PresLayerToApiConverter.convertAddInEnivrionment(plBootstrapInfo.addInEnvironmentPresModel), - addInInstance: PresLayerToApiConverter.convertAddInInstance(plBootstrapInfo.addInInstancePresModel), - addInSettingsInfo: PresLayerToApiConverter.convertAddInSettingsInfo(plBootstrapInfo.addInSettingsInfo) - }; - return result; - }; - PresLayerToApiConverter.convertFieldCaptionPair = function (plFieldCaptionPair) { - return plFieldCaptionPair.fn; - }; - PresLayerToApiConverter.convertFilterEvent = function (plFilterEvent) { - var result = { - visualId: PresLayerToApiConverter.convertVisualId(plFilterEvent.visualIdPresModel), - fieldName: plFilterEvent.fieldCaption - }; - return result; - }; - PresLayerToApiConverter.convertDataSchema = function (dataSchema) { - var apiDataSources = {}; - api_utils_1.Param.verifyValue(dataSchema, 'dataSchema'); - api_utils_1.Param.verifyValue(dataSchema.dataSources, 'dataSchema.dataSources'); - // Convert each pres layer datasource in the schema to an Api datasource - Object.keys(dataSchema.dataSources).forEach(function (key) { - // Skip the default Parameters datasource we receive from the platform - if (dataSchema.dataSources[key].datasource !== 'Parameters') { - apiDataSources[key] = PresLayerToApiConverter.convertDataSource(dataSchema.dataSources[key]); - } - }); - var schemaMap = PresLayerToApiConverter.convertWorksheetDataSchemaMap(dataSchema.worksheetDataSchemaMap); - var result = { - dataSources: apiDataSources, - worksheetDataSchemaMap: schemaMap, - }; - return result; - }; - PresLayerToApiConverter.convertDataSource = function (dataSource) { - var extractUpdateTime = (dataSource.extractUpdateTime === '') ? undefined : dataSource.extractUpdateTime; - var dataSourceFields = new Array(); - api_utils_1.Param.verifyValue(dataSource, 'dataSource'); - api_utils_1.Param.verifyValue(dataSource.fieldList, 'dataSchema.fieldList'); - dataSource.fieldList.forEach(function (plField) { - dataSourceFields.push(PresLayerToApiConverter.convertField(plField)); - }); - var result = { - name: dataSource.datasourceCaption, - id: dataSource.datasource, - isExtract: (extractUpdateTime !== undefined), - extractUpdateTime: extractUpdateTime, - fields: dataSourceFields - }; - return result; - }; - PresLayerToApiConverter.convertWorksheetDataSchemaMap = function (schemaMap) { - var result = {}; - Object.keys(schemaMap).forEach(function (key) { - var worksheetDataSourceInfo = { - primaryDataSource: schemaMap[key].primaryDatasource, - referencedDataSourceList: schemaMap[key].referencedDataSourceList - }; - result[key] = worksheetDataSourceInfo; - }); - return result; - }; - PresLayerToApiConverter.convertField = function (plField) { - var fieldColumn = plField; - var groupColumn = plField; - var aggregation = Api.FieldAggregationType.None; - var role = Api.FieldRoleType.Unknown; - var isCalculated = false; - // We expect that every FieldPresModel we get back from the command that returns FieldPresModels - // is actually an instance of the derived FieldColumnPresModel. - if (fieldColumn.aggregation && fieldColumn.fieldRole) { - aggregation = EnumMappings_1.PresLayerToApiEnumMappings.fieldAggregationType.convert(fieldColumn.aggregation); - role = EnumMappings_1.PresLayerToApiEnumMappings.fieldRoleType.convert(fieldColumn.fieldRole); - isCalculated = fieldColumn.isCalculated || false; - } - else { - throw new Error('Unexpected Internal Error: field pres model is missing expected properties.'); - } - var result = { - name: plField.description, - id: plField.name, - description: plField.userCaption, - aggregation: aggregation, - isHidden: !!(plField.isHidden), - isGenerated: plField.isGenerated, - isCalculatedField: isCalculated, - role: role, - isCombinedField: !!(groupColumn.isCombinedField) - }; - return result; - }; - return PresLayerToApiConverter; - }()); - exports.PresLayerToApiConverter = PresLayerToApiConverter; - - -/***/ }, -/* 18 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - Object.defineProperty(exports, "__esModule", { value: true }); - var EnumConverter_1 = __webpack_require__(19); - exports.EnumConverter = EnumConverter_1.EnumConverter; - var Param_1 = __webpack_require__(20); - exports.Param = Param_1.Param; - - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * This class converts from a source enum value to destination enum - * value given a mapping from source to destination when constructed. - */ - var EnumConverter = (function () { - function EnumConverter(_mappings, _defaultVal) { - this._mappings = _mappings; - this._defaultVal = _defaultVal; - } - EnumConverter.prototype.convert = function (enumVal, throwIfMissing) { - if (this._mappings.hasOwnProperty(enumVal)) { - return this._mappings[enumVal]; - } - if (this._defaultVal !== undefined && !throwIfMissing) { - return this._defaultVal; - } - throw new Error('Mapping not found for ' + enumVal); - }; - return EnumConverter; - }()); - exports.EnumConverter = EnumConverter; - - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Param = (function () { - function Param() { - } - /** - * Verifies that an incoming parameter is 'truthy' and throws - * an error if it's not. This will throw an error if the value - * is null, undefined, NaN, the empty string, 0, or false. - * - * @param argumentValue value to verify - * @param argumentName name of argument to verify - */ - /*tslint:disable-next-line */ - Param.verifyValue = function (argumentValue, argumentName) { - if (!argumentValue) { - throw new Error('Value is invalid for argument: ' + argumentName); - } - }; - /** - * Verifies that a string is valid. Throws an error if the string is - * null, undefined, or NaN. - * - * @param argumentValue value to verify - * @param argumentName name of argument to verify - */ - Param.verifyString = function (argumentValue, argumentName) { - if (argumentValue === null || argumentValue === undefined) { - throw new Error('String value is invalid for argument: ' + argumentName); - } - }; - /** - * Verifies the value is part of the Enum - * - * String enums are {string : string} dictionaries which are not reverse mappable - * This is an ugly workaround - * @param value value to verify - * @param enumType enum to verify against - */ - /* tslint:disable:no-any */ - Param.isValidEnumValue = function (value, enumType) { - var isValid = false; - Object.keys(enumType).forEach(function (enumKey) { - if (enumType[enumKey] === value.toString()) { - isValid = true; - } - }); - return isValid; - }; - /* tslint:enable:no-any */ - /** - * serializes the date into the format that the server expects. - * @param date the date to serialize - */ - Param.serializeDateForPlatform = function (date) { - var year = date.getUTCFullYear(); - var month = date.getUTCMonth() + 1; - var day = date.getUTCDate(); - var hh = date.getUTCHours(); - var mm = date.getUTCMinutes(); - var sec = date.getUTCSeconds(); - return year + '-' + month + '-' + day + ' ' + hh + ':' + mm + ':' + sec; - }; - Param.serializeBooleanForPlatform = function (bool) { - return bool ? 'true' : 'false'; - }; - Param.serializeNumberForPlatform = function (num) { - return num.toString(10); - }; - /** - * Verifies the params min and max for applying range filter - * @param min range min - * @param max range max - */ - /* tslint:disable:no-any */ - Param.verifyRangeParamType = function (min, max) { - /* tslint:enable:no-any */ - if (!min && !max) { - throw new Error('Missing Parameter: At least one of min or max is required'); - } - if (!Param.isTypeNumber(min) && !Param.isTypeDate(min)) { - throw new Error('Invalid Parameter Type: Only Date and number are allowed for parameter min'); - } - if (!Param.isTypeNumber(max) && !Param.isTypeDate(max)) { - throw new Error('Invalid Parameter Type: Only Date and number are allowed for parameter max'); - } - if (typeof (min) !== typeof (max)) { - throw new Error('Invalid Parameter Type: Parameters min and max should be of the same type'); - } - }; - /** - * Verifies the input is a number - */ - /* tslint:disable:no-any */ - Param.isTypeNumber = function (input) { - return typeof (input) === 'number' || input instanceof Number; - }; - /* tslint:enable:no-any */ - /** - * Verifies the input is a Date - */ - /* tslint:disable:no-any */ - Param.isTypeDate = function (input) { - return input instanceof Date; - }; - /* tslint:enable:no-any */ - /* tslint:disable-next-line:no-any */ - Param.isTypeString = function (input) { - return typeof (input) === 'string' || input instanceof String; - }; - /* tslint:disable-next-line:no-any */ - Param.isTypeBool = function (input) { - return typeof (input) === 'boolean' || input instanceof Boolean; - }; - /* tslint:disable-next-line:no-any */ - Param.serializeParamterValue = function (value) { - if (Param.isTypeNumber(value)) { - return Param.serializeNumberForPlatform(value); - } - else if (Param.isTypeDate(value)) { - return Param.serializeDateForPlatform(value); - } - else if (Param.isTypeBool(value)) { - return Param.serializeBooleanForPlatform(value); - } - else if (Param.isTypeString(value)) { - return value; - } - else { - throw new Error('Value is invalid for argument: value'); - } - }; - return Param; - }()); - exports.Param = Param; - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(4); - var api_utils_1 = __webpack_require__(18); - var Enums = __webpack_require__(22); - /* tslint:disable:typedef - Disable this to make declaring these classes a bit easier */ - var PresLayerToApiEnumMappings = (function () { - function PresLayerToApiEnumMappings() { - } - PresLayerToApiEnumMappings.zoneType = new api_utils_1.EnumConverter((_a = {}, - _a[Enums.ZoneType.ZT_Invalid] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_Viz] = api_internal_contract_1.DashboardObjectType.Worksheet, - _a[Enums.ZoneType.ZT_ColorLegend] = api_internal_contract_1.DashboardObjectType.Legend, - _a[Enums.ZoneType.ZT_ShapeLegend] = api_internal_contract_1.DashboardObjectType.Legend, - _a[Enums.ZoneType.ZT_SizeLegend] = api_internal_contract_1.DashboardObjectType.Legend, - _a[Enums.ZoneType.ZT_MapLegend] = api_internal_contract_1.DashboardObjectType.Legend, - _a[Enums.ZoneType.ZT_QuickFilter] = api_internal_contract_1.DashboardObjectType.QuickFilter, - _a[Enums.ZoneType.ZT_Highlighter] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_CurrPage] = api_internal_contract_1.DashboardObjectType.PageFilter, - _a[Enums.ZoneType.ZT_Empty] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_Title] = api_internal_contract_1.DashboardObjectType.Title, - _a[Enums.ZoneType.ZT_Text] = api_internal_contract_1.DashboardObjectType.Text, - _a[Enums.ZoneType.ZT_Bitmap] = api_internal_contract_1.DashboardObjectType.Image, - _a[Enums.ZoneType.ZT_Web] = api_internal_contract_1.DashboardObjectType.WebPage, - _a[Enums.ZoneType.ZT_AddIn] = api_internal_contract_1.DashboardObjectType.AddIn, - _a[Enums.ZoneType.ZT_ParamCtrl] = api_internal_contract_1.DashboardObjectType.ParameterControl, - _a[Enums.ZoneType.ZT_FlipboardNav] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_Flipboard] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_LayoutBasic] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_LayoutFlow] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_LayoutFreeForm] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_End] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_Button] = api_internal_contract_1.DashboardObjectType.Blank, - _a), api_internal_contract_1.DashboardObjectType.Blank); - PresLayerToApiEnumMappings.addInContext = new api_utils_1.EnumConverter((_b = {}, - _b[Enums.AddInContext.Unknown] = api_internal_contract_1.AddInContext.Unknown, - _b[Enums.AddInContext.Desktop] = api_internal_contract_1.AddInContext.Desktop, - _b[Enums.AddInContext.Server] = api_internal_contract_1.AddInContext.Server, - _b)); - PresLayerToApiEnumMappings.addInMode = new api_utils_1.EnumConverter((_c = {}, - _c[Enums.AddInMode.Unknown] = api_internal_contract_1.AddInMode.Unknown, - _c[Enums.AddInMode.Authoring] = api_internal_contract_1.AddInMode.Authoring, - _c[Enums.AddInMode.Viewing] = api_internal_contract_1.AddInMode.Viewing, - _c)); - PresLayerToApiEnumMappings.dataType = new api_utils_1.EnumConverter((_d = {}, - _d[Enums.DataType.DT_BOOLEAN] = api_internal_contract_1.DataType.Bool, - _d[Enums.DataType.DT_DATE] = api_internal_contract_1.DataType.Date, - _d[Enums.DataType.DT_DATETIME] = api_internal_contract_1.DataType.DateTime, - _d[Enums.DataType.DT_INTEGER] = api_internal_contract_1.DataType.Int, - _d[Enums.DataType.DT_REAL] = api_internal_contract_1.DataType.Float, - _d[Enums.DataType.DT_STRING] = api_internal_contract_1.DataType.String, - _d[Enums.DataType.DT_SPATIAL] = api_internal_contract_1.DataType.Spatial, - _d)); - PresLayerToApiEnumMappings.fieldAggregationType = new api_utils_1.EnumConverter((_e = {}, - _e[Enums.AggType.AGG_ATTR] = api_internal_contract_1.FieldAggregationType.Attr, - _e[Enums.AggType.AGG_AVG] = api_internal_contract_1.FieldAggregationType.Avg, - _e[Enums.AggType.AGG_COUNT] = api_internal_contract_1.FieldAggregationType.Count, - _e[Enums.AggType.AGG_COUNTD] = api_internal_contract_1.FieldAggregationType.Countd, - _e[Enums.AggType.AGG_DAY] = api_internal_contract_1.FieldAggregationType.Day, - _e[Enums.AggType.AGG_END] = api_internal_contract_1.FieldAggregationType.End, - _e[Enums.AggType.AGG_HOUR] = api_internal_contract_1.FieldAggregationType.Hour, - _e[Enums.AggType.AGG_INOUT] = api_internal_contract_1.FieldAggregationType.InOut, - _e[Enums.AggType.AGG_KURTOSIS] = api_internal_contract_1.FieldAggregationType.Kurtosis, - _e[Enums.AggType.AGG_MAX] = api_internal_contract_1.FieldAggregationType.Max, - _e[Enums.AggType.AGG_MDY] = api_internal_contract_1.FieldAggregationType.Mdy, - _e[Enums.AggType.AGG_MEDIAN] = api_internal_contract_1.FieldAggregationType.Median, - _e[Enums.AggType.AGG_MIN] = api_internal_contract_1.FieldAggregationType.Min, - _e[Enums.AggType.AGG_MINUTE] = api_internal_contract_1.FieldAggregationType.Minute, - _e[Enums.AggType.AGG_MONTHYEAR] = api_internal_contract_1.FieldAggregationType.MonthYear, - _e[Enums.AggType.AGG_NONE] = api_internal_contract_1.FieldAggregationType.None, - _e[Enums.AggType.AGG_QTR] = api_internal_contract_1.FieldAggregationType.Qtr, - _e[Enums.AggType.AGG_QUART1] = api_internal_contract_1.FieldAggregationType.Quart1, - _e[Enums.AggType.AGG_QUART3] = api_internal_contract_1.FieldAggregationType.Quart3, - _e[Enums.AggType.AGG_SECOND] = api_internal_contract_1.FieldAggregationType.Second, - _e[Enums.AggType.AGG_SKEWNESS] = api_internal_contract_1.FieldAggregationType.Skewness, - _e[Enums.AggType.AGG_STDEV] = api_internal_contract_1.FieldAggregationType.Stdev, - _e[Enums.AggType.AGG_STDEVP] = api_internal_contract_1.FieldAggregationType.Stdevp, - _e[Enums.AggType.AGG_SUM] = api_internal_contract_1.FieldAggregationType.Sum, - _e[Enums.AggType.TRUNC_DAY] = api_internal_contract_1.FieldAggregationType.TruncDay, - _e[Enums.AggType.TRUNC_HOUR] = api_internal_contract_1.FieldAggregationType.TruncHour, - _e[Enums.AggType.TRUNC_MINUTE] = api_internal_contract_1.FieldAggregationType.TruncMinute, - _e[Enums.AggType.TRUNC_MONTH] = api_internal_contract_1.FieldAggregationType.TruncMonth, - _e[Enums.AggType.TRUNC_QTR] = api_internal_contract_1.FieldAggregationType.TruncQtr, - _e[Enums.AggType.TRUNC_SECOND] = api_internal_contract_1.FieldAggregationType.TruncSecond, - _e[Enums.AggType.TRUNC_WEEK] = api_internal_contract_1.FieldAggregationType.TruncWeek, - _e[Enums.AggType.TRUNC_YEAR] = api_internal_contract_1.FieldAggregationType.TruncYear, - _e[Enums.AggType.AGG_USER] = api_internal_contract_1.FieldAggregationType.User, - _e[Enums.AggType.AGG_VAR] = api_internal_contract_1.FieldAggregationType.Var, - _e[Enums.AggType.AGG_VARP] = api_internal_contract_1.FieldAggregationType.Varp, - _e[Enums.AggType.AGG_WEEK] = api_internal_contract_1.FieldAggregationType.Week, - _e[Enums.AggType.AGG_WEEKDAY] = api_internal_contract_1.FieldAggregationType.Weekday, - _e[Enums.AggType.AGG_YEAR] = api_internal_contract_1.FieldAggregationType.Year, - _e)); - PresLayerToApiEnumMappings.fieldRoleType = new api_utils_1.EnumConverter((_f = {}, - _f[Enums.FieldRole.ROLE_DIMENSION] = api_internal_contract_1.FieldRoleType.Dimension, - _f[Enums.FieldRole.ROLE_MEASURE] = api_internal_contract_1.FieldRoleType.Measure, - _f)); - PresLayerToApiEnumMappings.parameterTypesDomainType = new api_utils_1.EnumConverter((_g = {}, - _g[Enums.ParameterTypesDomainType.Domain_Any] = api_internal_contract_1.DomainRestrictionType.All, - _g[Enums.ParameterTypesDomainType.Domain_List] = api_internal_contract_1.DomainRestrictionType.List, - _g[Enums.ParameterTypesDomainType.Domain_Range] = api_internal_contract_1.DomainRestrictionType.Range, - _g)); - PresLayerToApiEnumMappings.dateStepPeriod = new api_utils_1.EnumConverter((_h = {}, - _h[Enums.DatePeriodType.PeriodYear] = api_internal_contract_1.DateStepPeriod.Years, - _h[Enums.DatePeriodType.PeriodQuarter] = api_internal_contract_1.DateStepPeriod.Quarters, - _h[Enums.DatePeriodType.PeriodMonth] = api_internal_contract_1.DateStepPeriod.Months, - _h[Enums.DatePeriodType.PeriodWeek] = api_internal_contract_1.DateStepPeriod.Weeks, - _h[Enums.DatePeriodType.PeriodDay] = api_internal_contract_1.DateStepPeriod.Days, - _h[Enums.DatePeriodType.PeriodHour] = api_internal_contract_1.DateStepPeriod.Hours, - _h[Enums.DatePeriodType.PeriodMinute] = api_internal_contract_1.DateStepPeriod.Minutes, - _h[Enums.DatePeriodType.PeriodSecond] = api_internal_contract_1.DateStepPeriod.Seconds, - _h)); - PresLayerToApiEnumMappings.dateRangeType = new api_utils_1.EnumConverter((_j = {}, - _j[Enums.FiltersRelativeDateRangeType.RangeCurrent] = api_internal_contract_1.DateRangeType.Current, - _j[Enums.FiltersRelativeDateRangeType.RangeCurrentToDate] = api_internal_contract_1.DateRangeType.ToDate, - _j[Enums.FiltersRelativeDateRangeType.RangeLast1] = api_internal_contract_1.DateRangeType.Last, - _j[Enums.FiltersRelativeDateRangeType.RangeLastN] = api_internal_contract_1.DateRangeType.LastN, - _j[Enums.FiltersRelativeDateRangeType.RangeNext1] = api_internal_contract_1.DateRangeType.Next, - _j[Enums.FiltersRelativeDateRangeType.RangeNextN] = api_internal_contract_1.DateRangeType.NextN, - _j)); - return PresLayerToApiEnumMappings; - }()); - exports.PresLayerToApiEnumMappings = PresLayerToApiEnumMappings; - var ApiToPresLayerEnumMappings = (function () { - function ApiToPresLayerEnumMappings() { - } - ApiToPresLayerEnumMappings.filterUpdateType = new api_utils_1.EnumConverter((_a = {}, - _a[api_internal_contract_1.FilterUpdateType.Add] = Enums.FilterUpdateType.ADD, - _a[api_internal_contract_1.FilterUpdateType.All] = Enums.FilterUpdateType.ALL, - _a[api_internal_contract_1.FilterUpdateType.Replace] = Enums.FilterUpdateType.REPLACE, - _a[api_internal_contract_1.FilterUpdateType.Remove] = Enums.FilterUpdateType.REMOVE, - _a)); - ApiToPresLayerEnumMappings.nullOption = new api_utils_1.EnumConverter((_b = {}, - _b[api_internal_contract_1.FilterNullOption.AllValues] = Enums.FiltersQuantitativeIncludedValues.All, - _b[api_internal_contract_1.FilterNullOption.NonNullValues] = Enums.FiltersQuantitativeIncludedValues.NonNull, - _b[api_internal_contract_1.FilterNullOption.NullValues] = Enums.FiltersQuantitativeIncludedValues.Null, - _b)); - return ApiToPresLayerEnumMappings; - }()); - exports.ApiToPresLayerEnumMappings = ApiToPresLayerEnumMappings; - var _a, _b, _c, _d, _e, _f, _g, _h, _j, _a, _b; - /* tslint:enable:typedef */ - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - "use strict"; - /* tslint:disable */ - // ----------------------------------------------------------------------------- - // - // This file is the copyrighted property of Tableau Software and is protected - // by registered patents and other applicable U.S. and international laws and - // regulations. - // - // Unlicensed use of the contents of this file is prohibited. Please refer to - // the NOTICES.txt file for further details. - // - // ----------------------------------------------------------------------------- - // WARNING: Computer generated file. Do not hand modify. - // DEPENDS ON: ['../typescript/js-api/api-core/node_modules/@tableau/preslayer-codegen-typescript/templates/enum-ts.template', u'../typescript/js-api/api-core/temp-pres-layer/all-enums.data'] - Object.defineProperty(exports, "__esModule", { value: true }); - // - var DataScaling; - (function (DataScaling) { - // - DataScaling["SCALING_NONE"] = "none"; - // - DataScaling["SCALING_STANDARDIZED"] = "standardized"; - // - DataScaling["SCALING_NORMALIZED"] = "normalized"; - })(DataScaling = exports.DataScaling || (exports.DataScaling = {})); - // - var ForecastModelType; - (function (ForecastModelType) { - // - ForecastModelType["ForecastModelTypeAutoSeason"] = "auto-season"; - // - ForecastModelType["ForecastModelTypeAuto"] = "auto"; - // - ForecastModelType["ForecastModelTypeCustom"] = "custom"; - })(ForecastModelType = exports.ForecastModelType || (exports.ForecastModelType = {})); - // - var ForecastRangeType; - (function (ForecastRangeType) { - // - ForecastRangeType["ForecastRangeTypeAuto"] = "auto"; - // - ForecastRangeType["ForecastRangeTypeNext"] = "next"; - // - ForecastRangeType["ForecastRangeTypeEndOf"] = "end-of"; - })(ForecastRangeType = exports.ForecastRangeType || (exports.ForecastRangeType = {})); - // - var ForecastStatus; - (function (ForecastStatus) { - // - ForecastStatus["FS_VALID"] = "fs-valid"; - // - ForecastStatus["FS_INVALID_DATETIME"] = "fs-invalid-datetime"; - // - ForecastStatus["FS_INVALID_RESPONSE"] = "fs-invalid-response"; - // - ForecastStatus["FS_NEED_MORE_DATA"] = "fs-need-more-data"; - // - ForecastStatus["FS_TIME_SERIES_TOO_SHORT"] = "fs-time-series-too-short"; - // - ForecastStatus["FS_TIME_SERIES_IRREGULAR"] = "fs-time-series-irregular"; - // - ForecastStatus["FS_NULL_DATETIME"] = "fs-null-datetime"; - // - ForecastStatus["FS_NULL_RESPONSE"] = "fs-null-response"; - // - ForecastStatus["FS_METADATA_INVALID"] = "fs-metadata-invalid"; - // - ForecastStatus["FS_NO_RESPONSE"] = "fs-no-response"; - // - ForecastStatus["FS_EXCESS_DATA"] = "fs-excess-data"; - // - ForecastStatus["FS_EXCESS_PARTITIONS"] = "fs-excess-partitions"; - // - ForecastStatus["FS_DIMENSION_INVALID"] = "fs-dimension-invalid"; - // - ForecastStatus["FS_TABLECALC_INVALID"] = "fs-tablecalc-invalid"; - // - ForecastStatus["FS_TIME_SERIES_TOO_IRREGULAR"] = "fs-time-series-too-irregular"; - // - ForecastStatus["FS_AGGREGATE_FILTER"] = "fs-aggregate-filter"; - // - ForecastStatus["FS_DISAGGREGATE_RESPONSE"] = "fs-disaggregate-response"; - // - ForecastStatus["FS_PERCENTAGE_INVALID"] = "fs-percentage-invalid"; - // - ForecastStatus["FS_TOTAL_INVALID"] = "fs-total-invalid"; - // - ForecastStatus["FS_EXCESS_DATETIME"] = "fs-excess-datetime"; - // - ForecastStatus["FS_DATE_AGG_INCOMPATIBLE"] = "fs-date-agg-incompatible"; - // - ForecastStatus["FS_TIME_SERIES_NOT_POSITIVE"] = "fs-time-series-not-positive"; - // - ForecastStatus["FS_REQUESTED_MODEL_INVALID"] = "fs-requested-model-invalid"; - // - ForecastStatus["FS_TOO_SHORT_FOR_SEASON"] = "fs-too-short-for-season"; - // - ForecastStatus["FS_REQUESTED_MODEL_UNSTABLE"] = "fs-requested-model-unstable"; - // - ForecastStatus["FS_UNDEFINED"] = "fs-undefined"; - })(ForecastStatus = exports.ForecastStatus || (exports.ForecastStatus = {})); - // - var StyleAttribute; - (function (StyleAttribute) { - // - StyleAttribute["saAlternateText"] = "saAlternateText"; - // - StyleAttribute["saAltMarkColor"] = "saAltMarkColor"; - // - StyleAttribute["saAspect"] = "saAspect"; - // - StyleAttribute["saAutoSubtitle"] = "saAutoSubtitle"; - // - StyleAttribute["saBackgroundColor"] = "saBackgroundColor"; - // - StyleAttribute["saBackgroundTransparency"] = "saBackgroundTransparency"; - // - StyleAttribute["saBandSize"] = "saBandSize"; - // - StyleAttribute["saBandColor"] = "saBandColor"; - // - StyleAttribute["saBandLevel"] = "saBandLevel"; - // - StyleAttribute["saBodyType"] = "saBodyType"; - // - StyleAttribute["saBorderColor"] = "saBorderColor"; - // - StyleAttribute["saBorderColorTop"] = "saBorderColorTop"; - // - StyleAttribute["saBorderColorRight"] = "saBorderColorRight"; - // - StyleAttribute["saBorderColorBottom"] = "saBorderColorBottom"; - // - StyleAttribute["saBorderColorLeft"] = "saBorderColorLeft"; - // - StyleAttribute["saBorderStyle"] = "saBorderStyle"; - // - StyleAttribute["saBorderStyleTop"] = "saBorderStyleTop"; - // - StyleAttribute["saBorderStyleRight"] = "saBorderStyleRight"; - // - StyleAttribute["saBorderStyleBottom"] = "saBorderStyleBottom"; - // - StyleAttribute["saBorderStyleLeft"] = "saBorderStyleLeft"; - // - StyleAttribute["saBorderWidth"] = "saBorderWidth"; - // - StyleAttribute["saBorderWidthTop"] = "saBorderWidthTop"; - // - StyleAttribute["saBorderWidthRight"] = "saBorderWidthRight"; - // - StyleAttribute["saBorderWidthBottom"] = "saBorderWidthBottom"; - // - StyleAttribute["saBorderWidthLeft"] = "saBorderWidthLeft"; - // - StyleAttribute["saBoxplotStyle"] = "saBoxplotStyle"; - // - StyleAttribute["saBreakOnSpecial"] = "saBreakOnSpecial"; - // - StyleAttribute["saCell"] = "saCell"; - // - StyleAttribute["saCellW"] = "saCellW"; - // - StyleAttribute["saCellH"] = "saCellH"; - // - StyleAttribute["saCellQ"] = "saCellQ"; - // - StyleAttribute["saCellQMark"] = "saCellQMark"; - // - StyleAttribute["saColor"] = "saColor"; - // - StyleAttribute["saColorMode"] = "saColorMode"; - // - StyleAttribute["saColLevels"] = "saColLevels"; - // - StyleAttribute["saColVertLevels"] = "saColVertLevels"; - // - StyleAttribute["saColHorizHeight"] = "saColHorizHeight"; - // - StyleAttribute["saColVertHeight"] = "saColVertHeight"; - // Deprecated - StyleAttribute["saColHeight"] = "saColHeight"; - // - StyleAttribute["saColWidth"] = "saColWidth"; - // - StyleAttribute["saContent"] = "saContent"; - // - StyleAttribute["saDisplayFieldLabels"] = "saDisplayFieldLabels"; - // - StyleAttribute["saDisplayHeader"] = "saDisplayHeader"; - // - StyleAttribute["saDisplayAlternateText"] = "saDisplayAlternateText"; - // - StyleAttribute["saDivLevel"] = "saDivLevel"; - // - StyleAttribute["saEnabled"] = "saEnabled"; - // - StyleAttribute["saFillAboveColor"] = "saFillAboveColor"; - // - StyleAttribute["saFillBelowColor"] = "saFillBelowColor"; - // - StyleAttribute["saFillColor"] = "saFillColor"; - // - StyleAttribute["saFogBGColor"] = "saFogBGColor"; - // - StyleAttribute["saFogDesaturationWithoutSelection"] = "saFogDesaturationWithoutSelection"; - // - StyleAttribute["saFogDesaturationWithSelection"] = "saFogDesaturationWithSelection"; - // - StyleAttribute["saFont"] = "saFont"; - // - StyleAttribute["saFontFamily"] = "saFontFamily"; - // - StyleAttribute["saFontSize"] = "saFontSize"; - // - StyleAttribute["saFontStyle"] = "saFontStyle"; - // - StyleAttribute["saFontWeight"] = "saFontWeight"; - // - StyleAttribute["saGeographicAreaType"] = "saGeographicAreaType"; - // - StyleAttribute["saHAlign"] = "saHAlign"; - // - StyleAttribute["saHaloColor"] = "saHaloColor"; - // - StyleAttribute["saHaloColorSelected"] = "saHaloColorSelected"; - // - StyleAttribute["saHasFill"] = "saHasFill"; - // - StyleAttribute["saHasHalo"] = "saHasHalo"; - // Deprecated - StyleAttribute["saHasLabel"] = "saHasLabel"; - // - StyleAttribute["saHasStroke"] = "saHasStroke"; - // - StyleAttribute["saHeight"] = "saHeight"; - // - StyleAttribute["saHeightHeader"] = "saHeightHeader"; - // - StyleAttribute["saHighlightLegend"] = "saHighlightLegend"; - // - StyleAttribute["saHnaxis"] = "saHnaxis"; - // - StyleAttribute["saHnlabel"] = "saHnlabel"; - // - StyleAttribute["saInTooltip"] = "saInTooltip"; - // - StyleAttribute["saLineEnd"] = "saLineEnd"; - // - StyleAttribute["saLineEndSize"] = "saLineEndSize"; - // - StyleAttribute["saLineInterpolation"] = "saLineInterpolation"; - // - StyleAttribute["saLineMarkerPosition"] = "saLineMarkerPosition"; - // - StyleAttribute["saLinePattern"] = "saLinePattern"; - // - StyleAttribute["saLinePatternOnly"] = "saLinePatternOnly"; - // - StyleAttribute["saLineVisibility"] = "saLineVisibility"; - // - StyleAttribute["saMap"] = "saMap"; - // - StyleAttribute["saMapStyle"] = "saMapStyle"; - // - StyleAttribute["saMargin"] = "saMargin"; - // - StyleAttribute["saMarginTop"] = "saMarginTop"; - // - StyleAttribute["saMarginRight"] = "saMarginRight"; - // - StyleAttribute["saMarginBottom"] = "saMarginBottom"; - // - StyleAttribute["saMarginLeft"] = "saMarginLeft"; - // - StyleAttribute["saMarkColor"] = "saMarkColor"; - // - StyleAttribute["saMarkTransparency"] = "saMarkTransparency"; - // - StyleAttribute["saMarkLabelsShow"] = "saMarkLabelsShow"; - // - StyleAttribute["saRunningOrderLabelsShow"] = "saRunningOrderLabelsShow"; - // - StyleAttribute["saMarkLabelsMode"] = "saMarkLabelsMode"; - // - StyleAttribute["saMarkLabelsCull"] = "saMarkLabelsCull"; - // - StyleAttribute["saMarkLabelsLineEndFirst"] = "saMarkLabelsLineEndFirst"; - // - StyleAttribute["saMarkLabelsLineEndLast"] = "saMarkLabelsLineEndLast"; - // - StyleAttribute["saMarkLabelsRangeMin"] = "saMarkLabelsRangeMin"; - // - StyleAttribute["saMarkLabelsRangeMax"] = "saMarkLabelsRangeMax"; - // - StyleAttribute["saMarkLabelsRangeScope"] = "saMarkLabelsRangeScope"; - // - StyleAttribute["saMarkLabelsRangeField"] = "saMarkLabelsRangeField"; - // - StyleAttribute["saMarkMarkersMode"] = "saMarkMarkersMode"; - // - StyleAttribute["saMaxHeight"] = "saMaxHeight"; - // - StyleAttribute["saMaxFontSize"] = "saMaxFontSize"; - // - StyleAttribute["saMaxStrokeWidth"] = "saMaxStrokeWidth"; - // - StyleAttribute["saMaxWidth"] = "saMaxWidth"; - // - StyleAttribute["saMidStrokeWidth"] = "saMidStrokeWidth"; - // - StyleAttribute["saMinHeight"] = "saMinHeight"; - // - StyleAttribute["saMinFontSize"] = "saMinFontSize"; - // - StyleAttribute["saMinLength"] = "saMinLength"; - // - StyleAttribute["saMinMapSize"] = "saMinMapSize"; - // - StyleAttribute["saMinSize"] = "saMinSize"; - // - StyleAttribute["saMinStrokeWidth"] = "saMinStrokeWidth"; - // - StyleAttribute["saMinWidth"] = "saMinWidth"; - // - StyleAttribute["saNonhighlightColor"] = "saNonhighlightColor"; - // - StyleAttribute["saOmitOnSpecial"] = "saOmitOnSpecial"; - // - StyleAttribute["saOpacity"] = "saOpacity"; - // - StyleAttribute["saOrientation"] = "saOrientation"; - // - StyleAttribute["saPadding"] = "saPadding"; - // - StyleAttribute["saPaddingTop"] = "saPaddingTop"; - // - StyleAttribute["saPaddingRight"] = "saPaddingRight"; - // - StyleAttribute["saPaddingBottom"] = "saPaddingBottom"; - // - StyleAttribute["saPaddingLeft"] = "saPaddingLeft"; - // - StyleAttribute["saPalette"] = "saPalette"; - // - StyleAttribute["saRenderFoldReversed"] = "saRenderFoldReversed"; - // - StyleAttribute["saReversePalette"] = "saReversePalette"; - // - StyleAttribute["saRounding"] = "saRounding"; - // - StyleAttribute["saRowHorizLevels"] = "saRowHorizLevels"; - // - StyleAttribute["saRowHorizWidth"] = "saRowHorizWidth"; - // - StyleAttribute["saRowLevels"] = "saRowLevels"; - // - StyleAttribute["saRowVertWidth"] = "saRowVertWidth"; - // - StyleAttribute["saSeparator"] = "saSeparator"; - // - StyleAttribute["saShape"] = "saShape"; - // Deprecated - StyleAttribute["saShowLabels"] = "saShowLabels"; - // - StyleAttribute["saSize"] = "saSize"; - // - StyleAttribute["saSizeBar"] = "saSizeBar"; - // - StyleAttribute["saSmartAutoAlignment"] = "saSmartAutoAlignment"; - // - StyleAttribute["saSpace"] = "saSpace"; - // - StyleAttribute["saStrokeColor"] = "saStrokeColor"; - // - StyleAttribute["saStrokeSize"] = "saStrokeSize"; - // - StyleAttribute["saSubtitle"] = "saSubtitle"; - // - StyleAttribute["saTextAlign"] = "saTextAlign"; - // - StyleAttribute["saTextAlignDefault"] = "saTextAlignDefault"; - // - StyleAttribute["saTextDecoration"] = "saTextDecoration"; - // - StyleAttribute["saTextIndent"] = "saTextIndent"; - // - StyleAttribute["saTextOrientation"] = "saTextOrientation"; - // - StyleAttribute["saTextFormat"] = "saTextFormat"; - // - StyleAttribute["saTickColor"] = "saTickColor"; - // - StyleAttribute["saTickLength"] = "saTickLength"; - // Deprecated - StyleAttribute["saTickSpacing"] = "saTickSpacing"; - // - StyleAttribute["saTitle"] = "saTitle"; - // - StyleAttribute["saTotalLabel"] = "saTotalLabel"; - // - StyleAttribute["saVAlign"] = "saVAlign"; - // - StyleAttribute["saVerticalAlign"] = "saVerticalAlign"; - // - StyleAttribute["saVerticalAlignDefault"] = "saVerticalAlignDefault"; - // - StyleAttribute["saVnaxis"] = "saVnaxis"; - // - StyleAttribute["saVnlabel"] = "saVnlabel"; - // - StyleAttribute["saWarnOnSpecial"] = "saWarnOnSpecial"; - // - StyleAttribute["saWashout"] = "saWashout"; - // - StyleAttribute["saWhiskerEnd"] = "saWhiskerEnd"; - // - StyleAttribute["saWhiskerStrokeColor"] = "saWhiskerStrokeColor"; - // - StyleAttribute["saWhiskerStrokeSize"] = "saWhiskerStrokeSize"; - // - StyleAttribute["saWidth"] = "saWidth"; - // - StyleAttribute["saWidthHeader"] = "saWidthHeader"; - // - StyleAttribute["saWrap"] = "saWrap"; - // - StyleAttribute["saZoom"] = "saZoom"; - // Special attributes used for matching - StyleAttribute["saNone"] = "saNone"; - // Special attributes used for matching - StyleAttribute["saAny"] = "saAny"; - })(StyleAttribute = exports.StyleAttribute || (exports.StyleAttribute = {})); - // lowest bit of enum value denotes two-tone styles; newly added styles should follow this pattern. - var BoxplotStyle; - (function (BoxplotStyle) { - // mask for checking if a style is two-tone - BoxplotStyle["BoxplotStyleTwoTone"] = "two-tone"; - // - BoxplotStyle["BoxplotStyleModern"] = "modern"; - // - BoxplotStyle["BoxplotStyleGlass"] = "glass"; - // - BoxplotStyle["BoxplotStyleClassic"] = "classic"; - // - BoxplotStyle["BoxplotStyleClassicTwoTone"] = "classic-two-tone"; - })(BoxplotStyle = exports.BoxplotStyle || (exports.BoxplotStyle = {})); - // used for boxplots and prediction band whiskers - var WhiskerEnd; - (function (WhiskerEnd) { - // - WhiskerEnd["WhiskerEndNone"] = "none"; - // - WhiskerEnd["WhiskerEndSmall"] = "small"; - // - WhiskerEnd["WhiskerEndLarge"] = "large"; - })(WhiskerEnd = exports.WhiskerEnd || (exports.WhiskerEnd = {})); - // - var StyleElement; - (function (StyleElement) { - // - StyleElement["elementAxis"] = "elementAxis"; - // - StyleElement["elementCell"] = "elementCell"; - // - StyleElement["elementDatalabel"] = "elementDatalabel"; - // - StyleElement["elementDropspot"] = "elementDropspot"; - // - StyleElement["elementHeader"] = "elementHeader"; - // - StyleElement["elementFieldLabel"] = "elementFieldLabel"; - // - StyleElement["elementFieldLabelDecoration"] = "elementFieldLabelDecoration"; - // - StyleElement["elementFieldLabelSpanner"] = "elementFieldLabelSpanner"; - // - StyleElement["elementLabel"] = "elementLabel"; - // - StyleElement["elementMark"] = "elementMark"; - // - StyleElement["elementPane"] = "elementPane"; - // - StyleElement["elementTable"] = "elementTable"; - // - StyleElement["elementWorksheet"] = "elementWorksheet"; - // - StyleElement["elementBasesheet"] = "elementBasesheet"; - // - StyleElement["elementDashboard"] = "elementDashboard"; - // - StyleElement["elementStoryboard"] = "elementStoryboard"; - // - StyleElement["elementCaption"] = "elementCaption"; - // - StyleElement["elementDropline"] = "elementDropline"; - // - StyleElement["elementRefline"] = "elementRefline"; - // - StyleElement["elementRefBand"] = "elementRefBand"; - // - StyleElement["elementRefBoxplot"] = "elementRefBoxplot"; - // - StyleElement["elementGridline"] = "elementGridline"; - // - StyleElement["elementZeroline"] = "elementZeroline"; - // - StyleElement["elementTrendline"] = "elementTrendline"; - // - StyleElement["elementTableDiv"] = "elementTableDiv"; - // - StyleElement["elementHeaderDiv"] = "elementHeaderDiv"; - // - StyleElement["elementMappedImage"] = "elementMappedImage"; - // - StyleElement["elementAction"] = "elementAction"; - // - StyleElement["elementTitle"] = "elementTitle"; - // - StyleElement["elementLegend"] = "elementLegend"; - // - StyleElement["elementLegendTitle"] = "elementLegendTitle"; - // - StyleElement["elementLegendTitleText"] = "elementLegendTitleText"; - // - StyleElement["elementAxisTitle"] = "elementAxisTitle"; - // - StyleElement["elementAnnotation"] = "elementAnnotation"; - // - StyleElement["elementDashTitle"] = "elementDashTitle"; - // - StyleElement["elementDashSubtitle"] = "elementDashSubtitle"; - // - StyleElement["elementDashText"] = "elementDashText"; - // - StyleElement["elementDashZone"] = "elementDashZone"; - // - StyleElement["elementDashContainer"] = "elementDashContainer"; - // - StyleElement["elementScrollbar"] = "elementScrollbar"; - // Static on/off map layers - StyleElement["elementMapLayer"] = "elementMapLayer"; - // Contains washout - StyleElement["elementMap"] = "elementMap"; - // Initially for UrbanMapping/Claritas data - StyleElement["elementMapDataLayer"] = "elementMapDataLayer"; - // - StyleElement["elementQuickFilter"] = "elementQuickFilter"; - // - StyleElement["elementQuickFilterTitle"] = "elementQuickFilterTitle"; - // - StyleElement["elementParameterCtrl"] = "elementParameterCtrl"; - // - StyleElement["elementParameterCtrlTitle"] = "elementParameterCtrlTitle"; - // - StyleElement["elementPageCardTitle"] = "elementPageCardTitle"; - // - StyleElement["elementStoryDescription"] = "elementStoryDescription"; - // - StyleElement["elementStoryPointCaption"] = "elementStoryPointCaption"; - // - StyleElement["elementStoryTitle"] = "elementStoryTitle"; - // - StyleElement["elementTooltip"] = "elementTooltip"; - // - StyleElement["elementAll"] = "elementAll"; - // - StyleElement["elementPageCardBody"] = "elementPageCardBody"; - // - StyleElement["elementDataHighlighter"] = "elementDataHighlighter"; - // - StyleElement["elementDataHighlighterTitle"] = "elementDataHighlighterTitle"; - // Special elements used for matching and organization - StyleElement["elementNone"] = "elementNone"; - // Special elements used for matching and organization - StyleElement["elementAny"] = "elementAny"; - // Special elements used for matching and organization - StyleElement["elementRoot"] = "elementRoot"; - })(StyleElement = exports.StyleElement || (exports.StyleElement = {})); - // Do not mess with these values. They are sometimes used as array indexes/bounds - var StyleDataClass; - (function (StyleDataClass) { - // - StyleDataClass["dcNormal"] = "dcNormal"; - // - StyleDataClass["dcTotal"] = "dcTotal"; - // - StyleDataClass["dcSubtotal"] = "dcSubtotal"; - // - StyleDataClass["dcCOUNT"] = "dcCOUNT"; - })(StyleDataClass = exports.StyleDataClass || (exports.StyleDataClass = {})); - // - var StyleFieldScope; - (function (StyleFieldScope) { - // - StyleFieldScope["fsNone"] = "fsNone"; - // - StyleFieldScope["fsRows"] = "fsRows"; - // - StyleFieldScope["fsCols"] = "fsCols"; - })(StyleFieldScope = exports.StyleFieldScope || (exports.StyleFieldScope = {})); - // - var StyleSwatch; - (function (StyleSwatch) { - // - StyleSwatch["ssUnspecified"] = "ssUnspecified"; - // - StyleSwatch["ssLight"] = "ssLight"; - // - StyleSwatch["ssDark"] = "ssDark"; - })(StyleSwatch = exports.StyleSwatch || (exports.StyleSwatch = {})); - // - var TableauFontStyle; - (function (TableauFontStyle) { - // - TableauFontStyle["NormalStyle"] = "font-style-normal"; - // - TableauFontStyle["Italic"] = "font-style-italic"; - })(TableauFontStyle = exports.TableauFontStyle || (exports.TableauFontStyle = {})); - // Unsupported for Betsy - var TextDecoration; - (function (TextDecoration) { - // - TextDecoration["NoDecoration"] = "text-decoration-none"; - // - TextDecoration["Underline"] = "text-decoration-underline"; - // not yet supported - TextDecoration["Overline"] = "text-decoration-overline"; - // - TextDecoration["Strikethrough"] = "text-decoration-strikethrough"; - })(TextDecoration = exports.TextDecoration || (exports.TextDecoration = {})); - // - var FontWeight; - (function (FontWeight) { - // - FontWeight["NormalWeight"] = "font-weight-normal"; - // - FontWeight["Bold"] = "font-weight-bold"; - })(FontWeight = exports.FontWeight || (exports.FontWeight = {})); - // - var TextOrient; - (function (TextOrient) { - // - TextOrient["TO_Auto"] = "text-orient-auto"; - // - TextOrient["TO_Horz"] = "text-orient-horizontal"; - // - TextOrient["TO_VertUp"] = "text-orient-vertical-up"; - // - TextOrient["TO_VertDown"] = "text-orient-vertical-down"; - })(TextOrient = exports.TextOrient || (exports.TextOrient = {})); - // - var TextAlign; - (function (TextAlign) { - // - TextAlign["TA_Start"] = "text-align-start"; - // - TextAlign["TA_Center"] = "text-align-center"; - // - TextAlign["TA_End"] = "text-align-end"; - })(TextAlign = exports.TextAlign || (exports.TextAlign = {})); - // - var TextWrapMode; - (function (TextWrapMode) { - // - TextWrapMode["TextWrapOff"] = "text-wrap-off"; - // - TextWrapMode["TextWrapTruncate"] = "text-wrap-truncate"; - // - TextWrapMode["TextWrapOn"] = "text-wrap-on"; - // - TextWrapMode["TextWrapAuto"] = "text-wrap-auto"; - })(TextWrapMode = exports.TextWrapMode || (exports.TextWrapMode = {})); - // - var TextWholeLineMode; - (function (TextWholeLineMode) { - // - TextWholeLineMode["TextWholeLineOff"] = "text-whole-line-off"; - // - TextWholeLineMode["TextWholeLineOn"] = "text-whole-line-on"; - // - TextWholeLineMode["TextWholeLineAuto"] = "text-whole-line-auto"; - })(TextWholeLineMode = exports.TextWholeLineMode || (exports.TextWholeLineMode = {})); - // - var TextBreakMode; - (function (TextBreakMode) { - // - TextBreakMode["TextBreakWhitespaceOnly"] = "text-break-ws-only"; - // - TextBreakMode["TextBreakAuto"] = "text-break-auto"; - })(TextBreakMode = exports.TextBreakMode || (exports.TextBreakMode = {})); - // type of aggregation - var AggType; - (function (AggType) { - // - AggType["AGG_SUM"] = "sum"; - // - AggType["AGG_AVG"] = "average"; - // - AggType["AGG_MIN"] = "min"; - // - AggType["AGG_MAX"] = "max"; - // - AggType["AGG_STDEV"] = "std-dev"; - // - AggType["AGG_STDEVP"] = "std-dev-p"; - // - AggType["AGG_VAR"] = "var"; - // - AggType["AGG_VARP"] = "var-p"; - // - AggType["AGG_COUNT"] = "count"; - // - AggType["AGG_COUNTD"] = "count-d"; - // - AggType["AGG_MEDIAN"] = "median"; - // - AggType["AGG_ATTR"] = "attr"; - // - AggType["AGG_NONE"] = "none"; - // - AggType["AGG_PERCENTILE"] = "percentile"; - // - AggType["AGG_YEAR"] = "year"; - // - AggType["AGG_QTR"] = "qtr"; - // - AggType["AGG_MONTH"] = "month"; - // - AggType["AGG_DAY"] = "day"; - // - AggType["AGG_HOUR"] = "hour"; - // - AggType["AGG_MINUTE"] = "minute"; - // - AggType["AGG_SECOND"] = "second"; - // - AggType["AGG_WEEK"] = "week"; - // - AggType["AGG_WEEKDAY"] = "weekday"; - // - AggType["AGG_MONTHYEAR"] = "month-year"; - // - AggType["AGG_MDY"] = "mdy"; - // - AggType["AGG_END"] = "end"; - // - AggType["TRUNC_YEAR"] = "trunc-year"; - // - AggType["TRUNC_QTR"] = "trunc-qtr"; - // - AggType["TRUNC_MONTH"] = "trunc-month"; - // - AggType["TRUNC_WEEK"] = "trunc-week"; - // - AggType["TRUNC_DAY"] = "trunc-day"; - // - AggType["TRUNC_HOUR"] = "trunc-hour"; - // - AggType["TRUNC_MINUTE"] = "trunc-minute"; - // - AggType["TRUNC_SECOND"] = "trunc-second"; - // - AggType["AGG_QUART1"] = "quart1"; - // - AggType["AGG_QUART3"] = "quart3"; - // - AggType["AGG_SKEWNESS"] = "skewness"; - // - AggType["AGG_KURTOSIS"] = "kurtosis"; - // - AggType["AGG_INOUT"] = "in-out"; - // - AggType["AGG_SUM_XSQR"] = "sum-xsqr"; - // - AggType["AGG_USER"] = "user"; - // - AggType["AGG_COLLECT"] = "collect"; - // - AggType["AGG_COVAR"] = "covar"; - // - AggType["AGG_COVARP"] = "covarp"; - // - AggType["AGG_CORR"] = "corr"; - })(AggType = exports.AggType || (exports.AggType = {})); - // DataValueFormatter::DataTypeEncodings has hardcoded values corresponding to following enum members. So any changes here should be done there too - var DataType; - (function (DataType) { - // - DataType["DT_INTEGER"] = "integer"; - // - DataType["DT_REAL"] = "real"; - // - DataType["DT_STRING"] = "cstring"; - // - DataType["DT_DATETIME"] = "datetime"; - // - DataType["DT_BOOLEAN"] = "boolean"; - // - DataType["DT_DATE"] = "date"; - // - DataType["DT_TUPLE"] = "tuple"; - // - DataType["DT_SPATIAL"] = "spatial"; - // - DataType["DT_UNKNOWN"] = "unknown"; - // - DataType["DT_BINARY"] = "binary"; - // - DataType["DT_TIME"] = "time"; - })(DataType = exports.DataType || (exports.DataType = {})); - // - var SortDirection; - (function (SortDirection) { - // ascending - SortDirection["ST_ASC"] = "asc"; - // descending - SortDirection["ST_DESC"] = "desc"; - })(SortDirection = exports.SortDirection || (exports.SortDirection = {})); - // - var SortType; - (function (SortType) { - // Use the defined ordering - SortType["ST_NATURAL"] = "data-source-order"; - // Alphabetic/numeric ordering of data - SortType["ST_ALPHABETIC"] = "alpha"; - // Specify a secondary field - SortType["ST_COMPUTED"] = "field"; - // Manually defined ordering - SortType["ST_MANUAL"] = "manual"; - })(SortType = exports.SortType || (exports.SortType = {})); - // - var SortEnd; - (function (SortEnd) { - // - SortEnd["ST_TOP"] = "top"; - // - SortEnd["ST_BOTTOM"] = "bottom"; - })(SortEnd = exports.SortEnd || (exports.SortEnd = {})); - // - var ForecastColumnType; - (function (ForecastColumnType) { - // - ForecastColumnType["FORECAST_NONE"] = "none"; - // - ForecastColumnType["FORECAST_VALUE"] = "value"; - // - ForecastColumnType["FORECAST_INDICATOR"] = "indicator"; - // - ForecastColumnType["FORECAST_PRECISION"] = "precision"; - // - ForecastColumnType["FORECAST_QUALITY"] = "quality"; - // - ForecastColumnType["FORECAST_FIT_TREND"] = "fit_trend"; - // - ForecastColumnType["FORECAST_PRECISION_PERCENT"] = "precision_percent"; - // - ForecastColumnType["FORECAST_PREDICTION_INTERVAL_UPPER"] = "prediction_upper"; - // - ForecastColumnType["FORECAST_PREDICTION_INTERVAL_LOWER"] = "prediction_lower"; - })(ForecastColumnType = exports.ForecastColumnType || (exports.ForecastColumnType = {})); - // - var MarkMarkersMode; - (function (MarkMarkersMode) { - // - MarkMarkersMode["MMM_Auto"] = "mmm-auto"; - // - MarkMarkersMode["MMM_All"] = "mmm_all"; - // - MarkMarkersMode["MMM_None"] = "mmm_none"; - // - MarkMarkersMode["MMM_Default"] = "mmm_default"; - })(MarkMarkersMode = exports.MarkMarkersMode || (exports.MarkMarkersMode = {})); - // - var PercentMode; - (function (PercentMode) { - // - PercentMode["PERCENT_CELL_IN_PANE"] = "cell-in-pane"; - // - PercentMode["PERCENT_ROW_IN_PANE"] = "row-in-pane"; - // - PercentMode["PERCENT_COLUMN_IN_PANE"] = "column-in-pane"; - // - PercentMode["PERCENT_PANE"] = "pane"; - // - PercentMode["PERCENT_ROW"] = "row"; - // - PercentMode["PERCENT_COLUMN"] = "column"; - // - PercentMode["PERCENT_TABLE"] = "table"; - })(PercentMode = exports.PercentMode || (exports.PercentMode = {})); - // - var SpecialValuesMode; - (function (SpecialValuesMode) { - // - SpecialValuesMode["SPECIAL_VALUES_HIDE_AND_WARN"] = "hide-and-warn"; - // - SpecialValuesMode["SPECIAL_VALUES_HIDE"] = "hide"; - // - SpecialValuesMode["SPECIAL_VALUES_HIDE_BREAK_LINES"] = "hide-break-lines"; - // - SpecialValuesMode["SPECIAL_VALUES_SHOW"] = "show"; - })(SpecialValuesMode = exports.SpecialValuesMode || (exports.SpecialValuesMode = {})); - // - var LayoutType; - (function (LayoutType) { - // - LayoutType["LAYOUT_CARTESIAN"] = "cartesian"; - // - LayoutType["LAYOUT_DEFAULT"] = "default"; - })(LayoutType = exports.LayoutType || (exports.LayoutType = {})); - // - var ShelfType; - (function (ShelfType) { - // - ShelfType["ST_NONE"] = "none-shelf"; - // - ShelfType["ST_COLUMNS_SHELF"] = "columns-shelf"; - // - ShelfType["ST_ROWS_SHELF"] = "rows-shelf"; - // - ShelfType["ST_PAGES_SHELF"] = "pages-shelf"; - // - ShelfType["ST_FILTER_SHELF"] = "filter-shelf"; - // - ShelfType["ST_IMAGE_SHELF"] = "image-shelf"; - // - ShelfType["ST_MEASURES_SHELF"] = "measures-shelf"; - // - ShelfType["ST_SHOWME_SHELF"] = "show-me-shelf"; - // - ShelfType["ST_ENCODING_SHELF"] = "encoding-shelf"; - // - ShelfType["ST_CLUSTER_SHELF"] = "cluster-shelf"; - // - ShelfType["ST_GEOMETRY_SHELF"] = "geometry-shelf"; - // - ShelfType["ST_END"] = "end-shelf"; - // - ShelfType["ST_FINAL"] = "final-shelf"; - })(ShelfType = exports.ShelfType || (exports.ShelfType = {})); - // - var RestrictType; - (function (RestrictType) { - // - RestrictType["RT_INTERSECT"] = "rt-intersection"; - // - RestrictType["RT_UNION"] = "rt-union"; - })(RestrictType = exports.RestrictType || (exports.RestrictType = {})); - // - var TooltipMode; - (function (TooltipMode) { - // - TooltipMode["TM_NONE"] = "none"; - // - TooltipMode["TM_STICKY"] = "sticky"; - // - TooltipMode["TM_SMOOTH"] = "smooth"; - })(TooltipMode = exports.TooltipMode || (exports.TooltipMode = {})); - // - var ColumnGroups; - (function (ColumnGroups) { - // 0x01 - ColumnGroups["COLS_IN_OUTPUT"] = "cols-in-output"; - // 0x02 - ColumnGroups["COLS_IN_FILTER_SHELF"] = "cols-in-filter-shelf"; - // 0x04 - ColumnGroups["COLS_REF_BY_FILTERS"] = "cols-ref-by-filters"; - // 0x08 - ColumnGroups["COLS_REF_BY_OMEASURES"] = "cols-ref-by-omeasures"; - // 0x10 - ColumnGroups["COLS_REF_BY_JOIN_LOD"] = "cols-ref-by-join-lod"; - // 0x20 - ColumnGroups["COLS_HIDDEN"] = "cols-hidden"; - // 0x40 - ColumnGroups["COLS_REF_BY_SORTS"] = "cols-ref-by-sorts"; - // - ColumnGroups["COLS_REF_BY_FILTERS_OR_SORTS"] = "cols-ref-by-filters-or-sorts"; - // - ColumnGroups["COLS_ON_SHELVES"] = "cols-on-shelves"; - // - ColumnGroups["COLS_ALL"] = "cols-all"; - })(ColumnGroups = exports.ColumnGroups || (exports.ColumnGroups = {})); - // - var ButtonsOption; - (function (ButtonsOption) { - // - ButtonsOption["BO_HIDE"] = "buttons-hide"; - })(ButtonsOption = exports.ButtonsOption || (exports.ButtonsOption = {})); - // - var SelectionRelaxationOption; - (function (SelectionRelaxationOption) { - // - SelectionRelaxationOption["SRO_ALLOW"] = "selection-relaxation-allow"; - // - SelectionRelaxationOption["SRO_DISALLOW"] = "selection-relaxation-disallow"; - })(SelectionRelaxationOption = exports.SelectionRelaxationOption || (exports.SelectionRelaxationOption = {})); - // - var EncodingType; - (function (EncodingType) { - // a text encoding - EncodingType["ET_TEXT"] = "text-encoding"; - // a color encoding - EncodingType["ET_COLOR"] = "color-encoding"; - // a size encoding - EncodingType["ET_SIZE"] = "size-encoding"; - // a shape encoding - EncodingType["ET_SHAPE"] = "shape-encoding"; - // an image encoding - EncodingType["ET_IMAGE"] = "image-encoding"; - // a sort (path) encoding (currently only for line or polygon charts) - EncodingType["ET_SORT"] = "sort-encoding"; - // a wedge size (angle) encoding (currently only for pie charts) - EncodingType["ET_WEDGESIZE"] = "wedge-size-encoding"; - // a geometry encoding - EncodingType["ET_GEOMETRY"] = "geometry-encoding"; - // a level of detail encoding - EncodingType["ET_LOD"] = "level-of-detail-encoding"; - // encoding used for the data highlighter/legend mechanism - EncodingType["ET_HIGHLIGHT"] = "highlight-encoding"; - // a tooltip encoding - EncodingType["ET_TOOLTIP"] = "tooltip-encoding"; - // a temporary label placed above marks for the table calc dialog - EncodingType["ET_RUNNINGORDER"] = "runningorder-encoding"; - // the number of encodings, this is invalid input for an encoding presentation model - EncodingType["NUM_ENCODINGS"] = "num-encodings"; - // an invalid encoding - EncodingType["ET_INVALID"] = "invalid-encoding"; - })(EncodingType = exports.EncodingType || (exports.EncodingType = {})); - // Enumeration of valid horizontal alignments. - var LabelHAlignment; - (function (LabelHAlignment) { - // - LabelHAlignment["LHA_Left"] = "h-align-left"; - // - LabelHAlignment["LHA_Center"] = "h-align-center"; - // - LabelHAlignment["LHA_Right"] = "h-align-right"; - // - LabelHAlignment["LHA_Automatic"] = "h-align-auto"; - })(LabelHAlignment = exports.LabelHAlignment || (exports.LabelHAlignment = {})); - // Enumeration of valid vertical alignments. - var LabelVAlignment; - (function (LabelVAlignment) { - // - LabelVAlignment["LVA_Bottom"] = "v-align-bottom"; - // - LabelVAlignment["LVA_Center"] = "v-align-center"; - // - LabelVAlignment["LVA_Top"] = "v-align-top"; - // - LabelVAlignment["LVA_Automatic"] = "v-align-auto"; - })(LabelVAlignment = exports.LabelVAlignment || (exports.LabelVAlignment = {})); - // Enumeration of valid label positions. - var LabelPosition; - (function (LabelPosition) { - // Position each text run relative to the center of the original bbox. Use the original bbox as the height and width of the text mark. Used for non-stacked OO text marks. - LabelPosition["CenterInOriginalBbox"] = "label-position-center-in-original-box"; - // Position each text run relative to the bottom left corner of the measured bbox. Use the measured bbox as the width and height of the label. Used for labels - LabelPosition["OriginAtLowerLeft"] = "label-position-origin-at-lower-left"; - // Position each text run relative to the center of the measured bbox. Use the measured bbox as the width and height of the text mark. Used for most text marks. - LabelPosition["OriginAtCenter"] = "label-position-origin-at-center"; - })(LabelPosition = exports.LabelPosition || (exports.LabelPosition = {})); - // Enumeration of ways to use color. Values can be or'ed together to make a mask for allowed options - var ColorMode; - (function (ColorMode) { - // Color user specified - ColorMode["CLRM_User"] = "clrm-user"; - // Color selected automatically - ColorMode["CLRM_Auto"] = "clrm-auto"; - // Color matches mark color - ColorMode["CLRM_Match"] = "clrm-match"; - // No color (transparent or not drawn) - ColorMode["CLRM_None"] = "clrm-none"; - })(ColorMode = exports.ColorMode || (exports.ColorMode = {})); - // - var MarkLabelsMode; - (function (MarkLabelsMode) { - // - MarkLabelsMode["MLM_All"] = "mlm-all"; - // - MarkLabelsMode["MLM_Selection"] = "mlm-selection"; - // - MarkLabelsMode["MLM_Highlight"] = "mlm-highlight"; - // - MarkLabelsMode["MLM_LineEnds"] = "mlm-line-ends"; - // min/max setting - MarkLabelsMode["MLM_Range"] = "mlm-range"; - // most recent (only relevant when date field is in play) - MarkLabelsMode["MLM_MostRecent"] = "mlm-most-recent"; - // ...this is " virtual " (runtime only, not saved, not shown as a user setting - MarkLabelsMode["MLM_MultipleValues"] = "mlm-multiple-values"; - // - MarkLabelsMode["MLM_Default"] = "mlm-default"; - })(MarkLabelsMode = exports.MarkLabelsMode || (exports.MarkLabelsMode = {})); - // - var MarkLabelsScope; - (function (MarkLabelsScope) { - // - MarkLabelsScope["MLS_Table"] = "mls-table"; - // - MarkLabelsScope["MLS_Pane"] = "mls-pane"; - // - MarkLabelsScope["MLS_Cell"] = "mls-cell"; - // - MarkLabelsScope["MLS_MultiMark"] = "mls-multimark"; - // ...this is " virtual " (runtime only, not saved, not shown as a user setting) - MarkLabelsScope["MLS_MultipleValues"] = "mls-multiple-values"; - // - MarkLabelsScope["MLS_Default"] = "mls-default"; - })(MarkLabelsScope = exports.MarkLabelsScope || (exports.MarkLabelsScope = {})); - // - var MarkLabelsVisibility; - (function (MarkLabelsVisibility) { - // - MarkLabelsVisibility["MLV_Hidden"] = "mlv-hidden"; - // - MarkLabelsVisibility["MLV_Visible"] = "mlv-visible"; - // - MarkLabelsVisibility["MLV_UseCurrent"] = "mlv-use-current"; - })(MarkLabelsVisibility = exports.MarkLabelsVisibility || (exports.MarkLabelsVisibility = {})); - // - var StackingMode; - (function (StackingMode) { - // - StackingMode["StackingOff"] = "off"; - // - StackingMode["StackingOn"] = "on"; - // - StackingMode["StackingAuto"] = "auto"; - })(StackingMode = exports.StackingMode || (exports.StackingMode = {})); - // - var MarkAlignment; - (function (MarkAlignment) { - // - MarkAlignment["MarkAlignmentLeft"] = "mark-alignment-left"; - // - MarkAlignment["MarkAlignmentRight"] = "mark-alignment-right"; - // - MarkAlignment["MarkAlignmentCenter"] = "mark-alignment-center"; - })(MarkAlignment = exports.MarkAlignment || (exports.MarkAlignment = {})); - // - var PaneLabelComposition; - (function (PaneLabelComposition) { - // - PaneLabelComposition["PLC_None"] = "pane-label-composition-none"; - // - PaneLabelComposition["PLC_Mixed"] = "pane-label-composition-mixed"; - // - PaneLabelComposition["PLC_All"] = "pane-label-composition-all"; - })(PaneLabelComposition = exports.PaneLabelComposition || (exports.PaneLabelComposition = {})); - // The user-specified mark type on the Marks Card - var PrimitiveType; - (function (PrimitiveType) { - // - PrimitiveType["PT_AUTOMATIC"] = "automatic"; - // - PrimitiveType["PT_TEXT"] = "text"; - // - PrimitiveType["PT_IMAGE"] = "image"; - // - PrimitiveType["PT_SHAPE"] = "shape"; - // - PrimitiveType["PT_RECTANGLE"] = "rectangle"; - // - PrimitiveType["PT_BAR"] = "bar"; - // - PrimitiveType["PT_GANTT"] = "gantt"; - // - PrimitiveType["PT_SQUARE"] = "square"; - // - PrimitiveType["PT_CIRCLE"] = "circle"; - // - PrimitiveType["PT_POLYLINE"] = "polyline"; - // line chart - PrimitiveType["PT_LINE"] = "line"; - // - PrimitiveType["PT_POLYGON"] = "polygon"; - // area chart - PrimitiveType["PT_AREA"] = "area"; - // - PrimitiveType["PT_PIE"] = "pie"; - // - PrimitiveType["PT_MULTIPOLYGON"] = "multipolygon"; - // Not an actual primitive type. This is just used to flag the UI that multiple types are in play. - PrimitiveType["PT_MULTIPLE"] = "multiple"; - // used for looping over all values - PrimitiveType["NUM_PRIMITIVES"] = "count"; - // used to flag an unset or invalid state - PrimitiveType["PT_INVALID"] = "invalid"; - })(PrimitiveType = exports.PrimitiveType || (exports.PrimitiveType = {})); - // Defines the way a given primitive behaves on a viz - for instance, a PT_CIRCLE is treated as a point, while a PT_POLYGON would be treated as an area. - var MarkType; - (function (MarkType) { - // - MarkType["MT_POINT"] = "point"; - // - MarkType["MT_LINE"] = "line"; - // - MarkType["MT_AREA"] = "area"; - // - MarkType["MT_INVALID"] = "invalid"; - })(MarkType = exports.MarkType || (exports.MarkType = {})); - // PaneAxis is used to describe which axis of a pane is the independent axis. - var PaneAxis; - (function (PaneAxis) { - // The independent axis is inferred from other properties of the pane. - PaneAxis["AXIS_AUTO"] = "auto"; - // - PaneAxis["AXIS_X"] = "x"; - // - PaneAxis["AXIS_Y"] = "y"; - })(PaneAxis = exports.PaneAxis || (exports.PaneAxis = {})); - // - var Rounding; - (function (Rounding) { - // - Rounding["Rounding_None"] = "none"; - // - Rounding["Rounding_Small"] = "small"; - // - Rounding["Rounding_Medium"] = "medium"; - // - Rounding["Rounding_Large"] = "large"; - })(Rounding = exports.Rounding || (exports.Rounding = {})); - // - var LineEnd; - (function (LineEnd) { - // - LineEnd["LineEnd_None"] = "none"; - // - LineEnd["LineEnd_Arrow"] = "arrow"; - // - LineEnd["LineEnd_OpenArrow"] = "open-arrow"; - // - LineEnd["LineEnd_Dot"] = "dot"; - })(LineEnd = exports.LineEnd || (exports.LineEnd = {})); - // - var LineEndSize; - (function (LineEndSize) { - // - LineEndSize["LineEndSize_Smallest"] = "smallest"; - // - LineEndSize["LineEndSize_Smaller"] = "smaller"; - // - LineEndSize["LineEndSize_Small"] = "small"; - // - LineEndSize["LineEndSize_Medium"] = "medium"; - // - LineEndSize["LineEndSize_Large"] = "large"; - // - LineEndSize["LineEndSize_Larger"] = "larger"; - // - LineEndSize["LineEndSize_Largest"] = "largest"; - })(LineEndSize = exports.LineEndSize || (exports.LineEndSize = {})); - // - var BodyType; - (function (BodyType) { - // - BodyType["BodyType_None"] = "none"; - // - BodyType["BodyType_Box"] = "box"; - // - BodyType["BodyType_Edge"] = "edge"; - })(BodyType = exports.BodyType || (exports.BodyType = {})); - // - var StyleTheme; - (function (StyleTheme) { - // - StyleTheme["themeClassic"] = "classic"; - // - StyleTheme["themeModern"] = "modern"; - // - StyleTheme["themeClean"] = "clean"; - // - StyleTheme["themeSmooth"] = "smooth"; - // - StyleTheme["themeCustom"] = "custom"; - })(StyleTheme = exports.StyleTheme || (exports.StyleTheme = {})); - // - var AxisFoldState; - (function (AxisFoldState) { - // - AxisFoldState["afNone"] = "none"; - // - AxisFoldState["afFolded"] = "folded"; - // - AxisFoldState["afSynchronized"] = "synchronized"; - })(AxisFoldState = exports.AxisFoldState || (exports.AxisFoldState = {})); - // - var LinePattern; - (function (LinePattern) { - // - LinePattern["LinePatternNone"] = "none"; - // - LinePattern["LinePatternSolid"] = "solid"; - // - LinePattern["LinePatternDashed"] = "dashed"; - // - LinePattern["LinePatternDotted"] = "dotted"; - })(LinePattern = exports.LinePattern || (exports.LinePattern = {})); - // - var LineVisibility; - (function (LineVisibility) { - // - LineVisibility["LineVisibilityAuto"] = "automatic"; - // - LineVisibility["LineVisibilityOn"] = "on"; - // - LineVisibility["LineVisibilityOff"] = "off"; - })(LineVisibility = exports.LineVisibility || (exports.LineVisibility = {})); - // - var StylesLinePattern; - (function (StylesLinePattern) { - // - StylesLinePattern["StylesLinePatternSolid"] = "solid"; - // - StylesLinePattern["StylesLinePatternDashed"] = "dashed"; - // - StylesLinePattern["StylesLinePatternDotted"] = "dotted"; - })(StylesLinePattern = exports.StylesLinePattern || (exports.StylesLinePattern = {})); - // - var LineCap; - (function (LineCap) { - // - LineCap["LineCapFlat"] = "flat"; - // - LineCap["LineCapSquare"] = "square"; - // - LineCap["LineCapRound"] = "round"; - // - LineCap["LineCapTriangle"] = "triangle"; - })(LineCap = exports.LineCap || (exports.LineCap = {})); - // - var LineJoin; - (function (LineJoin) { - // - LineJoin["BevelJoin"] = "bevel"; - // - LineJoin["MiterJoin"] = "miter"; - // - LineJoin["RoundJoin"] = "round"; - })(LineJoin = exports.LineJoin || (exports.LineJoin = {})); - // - var LineAlignment; - (function (LineAlignment) { - // - LineAlignment["AlignmentCenter"] = "center"; - // - LineAlignment["AlignmentInset"] = "inset"; - })(LineAlignment = exports.LineAlignment || (exports.LineAlignment = {})); - // - var FillMode; - (function (FillMode) { - // - FillMode["FillEvenOdd"] = "even-odd"; - // - FillMode["FillWinding"] = "winding"; - })(FillMode = exports.FillMode || (exports.FillMode = {})); - // - var BorderStyle; - (function (BorderStyle) { - // none - BorderStyle["BorderStyleNone"] = "bs-none"; - // hidden - BorderStyle["BorderStyleHidden"] = "bs-hidden"; - // dotted - BorderStyle["BorderStyleDotted"] = "bs-dotted"; - // dashed - BorderStyle["BorderStyleDashed"] = "bs-dashed"; - // solid - BorderStyle["BorderStyleSolid"] = "bs-solid"; - // double - BorderStyle["BorderStyleDouble"] = "bs-double"; - // groove - BorderStyle["BorderStyleGroove"] = "bs-groove"; - // ridge - BorderStyle["BorderStyleRidge"] = "bs-ridge"; - // inset - BorderStyle["BorderStyleInset"] = "bs-inset"; - // outset - BorderStyle["BorderStyleOutset"] = "bs-outset"; - // invalid - BorderStyle["BorderStyleInvalid"] = "bs-invalid"; - })(BorderStyle = exports.BorderStyle || (exports.BorderStyle = {})); - // - var ColorPaletteType; - (function (ColorPaletteType) { - // - ColorPaletteType["ColorPaletteRegular"] = "color-palette-regular"; - // - ColorPaletteType["ColorPaletteOrderedDiverging"] = "palette-ordered-diverging"; - // - ColorPaletteType["ColorPaletteOrderedLinear"] = "palette-ordered-linear"; - })(ColorPaletteType = exports.ColorPaletteType || (exports.ColorPaletteType = {})); - // - var PaletteFlags; - (function (PaletteFlags) { - // - PaletteFlags["PaletteFlagNone"] = "palette-flag-none"; - // - PaletteFlags["PaletteFlagCustom"] = "palette-flag-custom"; - // - PaletteFlags["PaletteFlagNotQuantitative"] = "palette-flag-not-quantitative"; - // - PaletteFlags["PaletteFlagNotCategorical"] = "palette-flag-not-categorical"; - // - PaletteFlags["PaletteFlagNotReferenceBand"] = "palette-flag-not-reference-band"; - // - PaletteFlags["PaletteFlagNotBoxplot"] = "palette-flag-not-boxplot"; - // - PaletteFlags["PaletteFlagNotFilledMapLight"] = "palette-flag-not-filled-map-light"; - // - PaletteFlags["PaletteFlagNotFilledMapDark"] = "palette-flag-not-filled-map-dark"; - // - PaletteFlags["PaletteFlagLegacy"] = "palette-flag-legacy"; - })(PaletteFlags = exports.PaletteFlags || (exports.PaletteFlags = {})); - // - var DefaultPaletteType; - (function (DefaultPaletteType) { - // - DefaultPaletteType["SmallNominal"] = "palette-default-small-nominal"; - // - DefaultPaletteType["LargeNominal"] = "palette-default-large-nominal"; - // - DefaultPaletteType["Ordinal"] = "palette-default-ordinal"; - // - DefaultPaletteType["QuantitativePositive"] = "palette-default-quant-pos"; - // - DefaultPaletteType["QuantitativeNegative"] = "palette-default-quant-neg"; - // - DefaultPaletteType["QuantitativeDiverging"] = "palette-default-quant-div"; - // - DefaultPaletteType["QuantitativePositiveLight"] = "palette-default-quant-pos-light"; - // - DefaultPaletteType["QuantitativeNegativeLight"] = "palette-default-quant-neg-light"; - // - DefaultPaletteType["QuantitativeDivergingLight"] = "palette-default-quant-div-light"; - // - DefaultPaletteType["QuantitativePositiveArea"] = "palette-default-quant-pos-area"; - // - DefaultPaletteType["QuantitativeNegativeArea"] = "palette-default-quant-neg-area"; - // - DefaultPaletteType["QuantitativeDivergingArea"] = "palette-default-quant-div-area"; - })(DefaultPaletteType = exports.DefaultPaletteType || (exports.DefaultPaletteType = {})); - // - var ShowBounds; - (function (ShowBounds) { - // - ShowBounds["Both"] = "show-both"; - // - ShowBounds["Upper"] = "show-upper"; - // - ShowBounds["Lower"] = "show-lower"; - })(ShowBounds = exports.ShowBounds || (exports.ShowBounds = {})); - // Sample vs. population standard deviation - var StDevType; - (function (StDevType) { - // - StDevType["Sample"] = "stdev-sample"; - // - StDevType["Population"] = "stdev-population"; - })(StDevType = exports.StDevType || (exports.StDevType = {})); - // - var ReferenceLineFormulaGroup; - (function (ReferenceLineFormulaGroup) { - // - ReferenceLineFormulaGroup["None"] = "none"; - // - ReferenceLineFormulaGroup["Line"] = "line"; - // - ReferenceLineFormulaGroup["Band"] = "band"; - // - ReferenceLineFormulaGroup["Distribution"] = "distribution"; - // - ReferenceLineFormulaGroup["Boxplot"] = "boxplot"; - })(ReferenceLineFormulaGroup = exports.ReferenceLineFormulaGroup || (exports.ReferenceLineFormulaGroup = {})); - // - var ReferenceLineScopeType; - (function (ReferenceLineScopeType) { - // - ReferenceLineScopeType["PerCell"] = "per-cell"; - // - ReferenceLineScopeType["PerPane"] = "per-pane"; - // - ReferenceLineScopeType["PerTable"] = "per-table"; - })(ReferenceLineScopeType = exports.ReferenceLineScopeType || (exports.ReferenceLineScopeType = {})); - // how should the line be labeled - var ReferenceLineLabelType; - (function (ReferenceLineLabelType) { - // no label - ReferenceLineLabelType["None"] = "none"; - // an automatically generated label - ReferenceLineLabelType["Automatic"] = "automatic"; - // - ReferenceLineLabelType["Value"] = "value"; - // - ReferenceLineLabelType["Computation"] = "computation"; - // a user defined label - ReferenceLineLabelType["Custom"] = "custom"; - })(ReferenceLineLabelType = exports.ReferenceLineLabelType || (exports.ReferenceLineLabelType = {})); - // how should the line be computed - var ReferenceLineFormulaType; - (function (ReferenceLineFormulaType) { - // a user specified constant value - ReferenceLineFormulaType["Constant"] = "constant"; - // - ReferenceLineFormulaType["Total"] = "total"; - // total of all values at the given scope <- is this correct? looks like comment from FormulaTotal - ReferenceLineFormulaType["Sum"] = "sum"; - // minimum value in the scope - ReferenceLineFormulaType["Min"] = "min"; - // maximum value in the scope - ReferenceLineFormulaType["Max"] = "max"; - // average value in the scope - ReferenceLineFormulaType["Average"] = "average"; - // median value in the scope - ReferenceLineFormulaType["Median"] = "median"; - // the n quantiles values in the scope - ReferenceLineFormulaType["Quantiles"] = "quantiles"; - // a given percentile in the scope - ReferenceLineFormulaType["Percentile"] = "percentile"; - // mean +- standard deviation - ReferenceLineFormulaType["StandardDeviation"] = "standard-deviation"; - // a given confidence interval around the mean - ReferenceLineFormulaType["ConfidenceInterval"] = "confidence-interval"; - // - ReferenceLineFormulaType["MedianConfidenceInterval"] = "median-confidence-interval"; - })(ReferenceLineFormulaType = exports.ReferenceLineFormulaType || (exports.ReferenceLineFormulaType = {})); - // Line or confidence interval or both - var ReferenceLineConfidenceIntervalState; - (function (ReferenceLineConfidenceIntervalState) { - // display line only - ReferenceLineConfidenceIntervalState["LineOnly"] = "line-only"; - // display the line and a confidence interval - ReferenceLineConfidenceIntervalState["LineAndConfidenceInterval"] = "line-and-interval"; - // display confidence interval only - ReferenceLineConfidenceIntervalState["ConfidenceIntervalOnly"] = "interval-only"; - })(ReferenceLineConfidenceIntervalState = exports.ReferenceLineConfidenceIntervalState || (exports.ReferenceLineConfidenceIntervalState = {})); - // type of distribution. i.e. Percentage, Percentile, Quantile, and Standard Deviation - var ReferenceLineDistributionType; - (function (ReferenceLineDistributionType) { - // distribution type percentage - ReferenceLineDistributionType["Percentages"] = "percentages"; - // distribution type percentile - ReferenceLineDistributionType["Percentiles"] = "percentiles"; - // distribution type quantile - ReferenceLineDistributionType["Quantiles"] = "quantiles"; - // distribution type standard deviation - ReferenceLineDistributionType["StandardDeviation"] = "standard-deviation"; - })(ReferenceLineDistributionType = exports.ReferenceLineDistributionType || (exports.ReferenceLineDistributionType = {})); - // the kind of LOD calc to use for a given reference line - var ReferenceLineLODCalcType; - (function (ReferenceLineLODCalcType) { - // Create a formula using a FIXED-like level-of-detail calculation, to which sheet filters apply, that will go onto a specific sheet - ReferenceLineLODCalcType["MeasureFormula"] = "measure-formula"; - // Create a boolean formula that can be used as a filter - ReferenceLineLODCalcType["BooleanFilter"] = "boolean-filter"; - })(ReferenceLineLODCalcType = exports.ReferenceLineLODCalcType || (exports.ReferenceLineLODCalcType = {})); - // - var BoxplotWhiskerType; - (function (BoxplotWhiskerType) { - // - BoxplotWhiskerType["Standard"] = "standard"; - // - BoxplotWhiskerType["Minmax"] = "minmax"; - })(BoxplotWhiskerType = exports.BoxplotWhiskerType || (exports.BoxplotWhiskerType = {})); - // categories of connection types displayed by the connection UI - var ConnectionTypeCategory; - (function (ConnectionTypeCategory) { - // standard database - ConnectionTypeCategory["CTC_Database"] = "database"; - // 'More Items ...' meta item - ConnectionTypeCategory["CTC_More"] = "more"; - // Other file types - ConnectionTypeCategory["CTC_Other"] = "other"; - // invalid connection category - ConnectionTypeCategory["CTC_Invalid"] = "invalid"; - })(ConnectionTypeCategory = exports.ConnectionTypeCategory || (exports.ConnectionTypeCategory = {})); - // a logical grouping of connection types displayed by the connection UI - var ConnectionTypeGroup; - (function (ConnectionTypeGroup) { - // in a file - ConnectionTypeGroup["CTG_File"] = "file"; - // on a server - ConnectionTypeGroup["CTG_Server"] = "server"; - // on a recent server - ConnectionTypeGroup["CTG_MruServer"] = "mru-server"; - // invalid group - ConnectionTypeGroup["CTG_Invalid"] = "invalid"; - })(ConnectionTypeGroup = exports.ConnectionTypeGroup || (exports.ConnectionTypeGroup = {})); - // The type of metadata a column contains - var CubeMetadataCategory; - (function (CubeMetadataCategory) { - // cube's name - CubeMetadataCategory["CMC_Name"] = "name"; - // cube's description - CubeMetadataCategory["CMC_Description"] = "description"; - // cube's last updated timestamp - CubeMetadataCategory["CMC_LastUpdated"] = "last-updated"; - // invalid - CubeMetadataCategory["CMC_Invalid"] = "invalid"; - })(CubeMetadataCategory = exports.CubeMetadataCategory || (exports.CubeMetadataCategory = {})); - // The type of widget to display to the user when they are specifying connection info - var ConnectionWidgetType; - (function (ConnectionWidgetType) { - // show the join area - ConnectionWidgetType["CWT_JoinArea"] = "join-area"; - // show the cube selection ui - ConnectionWidgetType["CWT_CubeSelection"] = "cube-selection"; - // show the google analytics ui - ConnectionWidgetType["CWT_GoogleAnalytics"] = "google-analytics"; - // show the tableau server ui - ConnectionWidgetType["CWT_TableauServer"] = "tableau-server"; - // do not show any connection widget - ConnectionWidgetType["CWT_NoWidget"] = "no-widget"; - // invalid - ConnectionWidgetType["CWT_Invalid"] = "invalid"; - })(ConnectionWidgetType = exports.ConnectionWidgetType || (exports.ConnectionWidgetType = {})); - // The type of google analytics basic info - var GoogleBasicInfoType; - (function (GoogleBasicInfoType) { - // google analytics account - GoogleBasicInfoType["GA_Account"] = "ga-account"; - // google analytics property - GoogleBasicInfoType["GA_Property"] = "ga-property"; - // google analytics view - GoogleBasicInfoType["GA_View"] = "ga-view"; - // invalid - GoogleBasicInfoType["GA_Invalid"] = "invalid"; - })(GoogleBasicInfoType = exports.GoogleBasicInfoType || (exports.GoogleBasicInfoType = {})); - // The way in which a piece of connection information is specified - var ConnectionSpecificationType; - (function (ConnectionSpecificationType) { - // Uses a combo box - ConnectionSpecificationType["CST_ComboBox"] = "combo-box"; - // Uses a line edit - ConnectionSpecificationType["CST_LineEdit"] = "line-edit"; - // Uses a line edit with a browse button next to it - ConnectionSpecificationType["CST_LineEditBrowse"] = "line-edit-browse"; - // invalid - ConnectionSpecificationType["CST_Invalid"] = "invalid"; - })(ConnectionSpecificationType = exports.ConnectionSpecificationType || (exports.ConnectionSpecificationType = {})); - // GA Date Range - var DateRange; - (function (DateRange) { - // - DateRange["DateRangeFirst"] = "date-range-first"; - // - DateRange["DateRangeLast30Days"] = "date-range-last30"; - // - DateRange["DateRangeToday"] = "date-range-today"; - // - DateRange["DateRangeYesterday"] = "date-range-yesterday"; - // - DateRange["DateRangeLastWeek"] = "date-range-last-week"; - // - DateRange["DateRangeLastMonth"] = "date-range-last-month"; - // - DateRange["DateRangeLastYear"] = "date-range-last-year"; - // - DateRange["DateRangeThisWeekToYesterday"] = "date-range-this-week-to-yesterday"; - // - DateRange["DateRangeThisMonthToYesterday"] = "date-range-this-month-to-yesterday"; - // - DateRange["DateRangeThisYearToYesterday"] = "date-range-this-year-to-yesterday"; - // - DateRange["DateRangeLastWeekToYesterday"] = "date-range-last-week-to-yesterday"; - // - DateRange["DateRangeLastMonthToYesterday"] = "date-range-last-month-to-yesterday"; - // - DateRange["DateRangeLastYearToYesterday"] = "date-range-last-year-to-yesterday"; - // - DateRange["DateRangeFixedRange"] = "date-range-fixed-range"; - // - DateRange["DateRangeFixedStart"] = "date-range-fixed-start"; - // - DateRange["DateRangeCount"] = "date-range-count"; - })(DateRange = exports.DateRange || (exports.DateRange = {})); - // Specifies the type of widget to show in ConnectServerWidget - var ConnectServerWidgetType; - (function (ConnectServerWidgetType) { - // invalid - ConnectServerWidgetType["CSWT_Invalid"] = "invalid"; - // microsoft access - ConnectServerWidgetType["CSWT_Access"] = "access"; - // generic odbc - ConnectServerWidgetType["CSWT_ODBC"] = "odbc"; - // cubes - ConnectServerWidgetType["CSWT_Cube"] = "cube"; - // relational data sources - ConnectServerWidgetType["CSWT_Relational"] = "relational"; - })(ConnectServerWidgetType = exports.ConnectServerWidgetType || (exports.ConnectServerWidgetType = {})); - // - var AuthenticationEnumsMode; - (function (AuthenticationEnumsMode) { - // no authentication widget - AuthenticationEnumsMode["AuthModeNone"] = "auth-mode-none"; - // username and password - AuthenticationEnumsMode["AuthModeBasic"] = "auth-mode-basic"; - // username and password can be blank - AuthenticationEnumsMode["AuthModeBasicNoValidateFields"] = "auth-mode-basic-no-validate-fields"; - // only username - AuthenticationEnumsMode["AuthModeBasicUserNameOnly"] = "auth-mode-basic-username-only"; - // aws access key and secret ID - AuthenticationEnumsMode["AuthModeBasicAWS"] = "auth-mode-basic-aws"; - // username, password, and a list of AuthOptions with radio buttons - AuthenticationEnumsMode["AuthModeRadio"] = "auth-mode-radio"; - // Like AuthModeRadio, but enable username/password even for integrated auth - AuthenticationEnumsMode["AuthModeRadioUnindented"] = "auth-mode-radio-unindented"; - // username, password, and a list of AuthOptions with a combobox - AuthenticationEnumsMode["AuthModeComboBox"] = "auth-mode-combobox"; - // Like AuthModeCombobox, but with option not requiring username/password - AuthenticationEnumsMode["AuthModeComboBoxIntegrated"] = "auth-mode-combobox-integrated"; - // driver, authentication, username, realm, etc - AuthenticationEnumsMode["AuthModeHive"] = "auth-mode-hive"; - // none, azure marketplace account, explicit - AuthenticationEnumsMode["AuthModeOData"] = "auth-mode-odata"; - // edition, authentication, sso domain, etc - AuthenticationEnumsMode["AuthModeSharePoint"] = "auth-mode-sharepoint"; - // username, password, client, & language - AuthenticationEnumsMode["AuthModeSAPBW"] = "auth-mode-sapbw"; - // Ability to switch between two different auth modes each in their own modal dialogs (basic and oauth) - AuthenticationEnumsMode["AuthModeSwitchModal"] = "auth-mode-switch-modal"; - })(AuthenticationEnumsMode = exports.AuthenticationEnumsMode || (exports.AuthenticationEnumsMode = {})); - // - var AuthenticationEnumsReconnectMode; - (function (AuthenticationEnumsReconnectMode) { - // Auth not needed for reconnect - AuthenticationEnumsReconnectMode["ReconnectModeNone"] = "reconnect-mode-none"; - // Username and password - AuthenticationEnumsReconnectMode["ReconnectModeBasic"] = "reconnect-mode-basic"; - // Access file - AuthenticationEnumsReconnectMode["ReconnectModeAccess"] = "reconnect-mode-access"; - // Microsoft Azure Data Market (OData) - AuthenticationEnumsReconnectMode["ReconnectModeDataMarket"] = "reconnect-mode-data-market"; - // Google OAuth - AuthenticationEnumsReconnectMode["ReconnectModeGoogleOAuth"] = "reconnect-mode-google-oauth"; - // SalesforceOAuth, with the option of username/password auth - AuthenticationEnumsReconnectMode["ReconnectModeSalesforceOAuth"] = "reconnect-mode-salesforce-oauth"; - // Web data connector - AuthenticationEnumsReconnectMode["ReconnectModeWebData"] = "reconnect-mode-web-data"; - })(AuthenticationEnumsReconnectMode = exports.AuthenticationEnumsReconnectMode || (exports.AuthenticationEnumsReconnectMode = {})); - // - var AuthenticationEnumsAuthOption; - (function (AuthenticationEnumsAuthOption) { - // FIRST - AuthenticationEnumsAuthOption["AuthExplicit"] = "auth-option-explicit"; - // - AuthenticationEnumsAuthOption["AuthExplicitUnindented"] = "auth-option-explicit-unindented"; - // - AuthenticationEnumsAuthOption["AuthUseWindows"] = "auth-option-use-windows"; - // - AuthenticationEnumsAuthOption["AuthUseWindowsPreferred"] = "auth-option-windows-preferred"; - // - AuthenticationEnumsAuthOption["AuthTeradata"] = "auth-option-teradata"; - // - AuthenticationEnumsAuthOption["AuthLDAP"] = "auth-option-ldap"; - // - AuthenticationEnumsAuthOption["AuthVirtualNode"] = "auth-option-virtual-node"; - // - AuthenticationEnumsAuthOption["AuthODataAccount"] = "auth-option-odata"; - // - AuthenticationEnumsAuthOption["AuthNone"] = "auth-option-none"; - // - AuthenticationEnumsAuthOption["AuthKerberos"] = "auth-option-kerberos"; - // Introduced for Kerberos with fallback, recognizing that the db may or may not be on Windows - AuthenticationEnumsAuthOption["AuthIntegrated"] = "auth-option-integrated"; - // - AuthenticationEnumsAuthOption["AuthUsername"] = "auth-option-username"; - // - AuthenticationEnumsAuthOption["AuthUsernameAndPassword"] = "auth-option-username-and-password"; - // - AuthenticationEnumsAuthOption["AuthSSL"] = "auth-option-ssl"; - // - AuthenticationEnumsAuthOption["AuthHDIEmulator"] = "auth-hdi-emulator"; - // - AuthenticationEnumsAuthOption["AuthHDIService"] = "auth-hdi-service"; - // - AuthenticationEnumsAuthOption["AuthHTTP"] = "auth-http"; - // - AuthenticationEnumsAuthOption["AuthHTTPS"] = "auth-https"; - // - AuthenticationEnumsAuthOption["AuthAccessNoSecurity"] = "auth-option-access-no"; - // - AuthenticationEnumsAuthOption["AuthAccessYesSecurity"] = "auth-option-access-yes"; - // - AuthenticationEnumsAuthOption["AuthOAuth"] = "auth-oauth"; - // - AuthenticationEnumsAuthOption["AuthForms"] = "auth-forms"; - // - AuthenticationEnumsAuthOption["AuthThirdPartySSO"] = "auth-third-party-SSO"; - // LAST - AuthenticationEnumsAuthOption["AuthInvalid"] = "auth-option-invalid"; - })(AuthenticationEnumsAuthOption = exports.AuthenticationEnumsAuthOption || (exports.AuthenticationEnumsAuthOption = {})); - // data source validation modes - var DataSourceParserValidationMode; - (function (DataSourceParserValidationMode) { - // - DataSourceParserValidationMode["WorkbookLoadValidation"] = "workbook-load-validation"; - // - DataSourceParserValidationMode["AutoValidation"] = "auto-validation"; - // - DataSourceParserValidationMode["ForceValidation"] = "force-validation"; - // - DataSourceParserValidationMode["PreventValidation"] = "prevent-validation"; - // - DataSourceParserValidationMode["PreventValidationAndThrow"] = "prevent-validation-and-throw"; - })(DataSourceParserValidationMode = exports.DataSourceParserValidationMode || (exports.DataSourceParserValidationMode = {})); - // Enum for DataGrid/MetadataGrid fields reordering - var FieldOrderType; - (function (FieldOrderType) { - // - FieldOrderType["DATASOURCE_ORDER"] = "datasource-order"; - // - FieldOrderType["ALPHA_PER_TABLE"] = "alpha-per-table"; - // - FieldOrderType["ALPHABETICAL_ORDER"] = "alphabetical-order"; - // - FieldOrderType["CUSTOM_ORDER"] = "custom-order"; - })(FieldOrderType = exports.FieldOrderType || (exports.FieldOrderType = {})); - // - var LineInterpolationMode; - (function (LineInterpolationMode) { - // - LineInterpolationMode["LIM_Linear"] = "lim-linear"; - // - LineInterpolationMode["LIM_Step"] = "lim-step"; - // - LineInterpolationMode["LIM_Jump"] = "lim-jump"; - })(LineInterpolationMode = exports.LineInterpolationMode || (exports.LineInterpolationMode = {})); - // - var LineMarkerPosition; - (function (LineMarkerPosition) { - // - LineMarkerPosition["LMP_Left"] = "lmp-left"; - // - LineMarkerPosition["LMP_Center"] = "lmp-center"; - // - LineMarkerPosition["LMP_Right"] = "lmp-right"; - })(LineMarkerPosition = exports.LineMarkerPosition || (exports.LineMarkerPosition = {})); - // Enumeration for the type of join connecting two tables - var SQLJoinType; - (function (SQLJoinType) { - // - SQLJoinType["SQL_InnerJoin"] = "sql-inner-join"; - // - SQLJoinType["SQL_LeftJoin"] = "sql-left-join"; - // - SQLJoinType["SQL_RightJoin"] = "sql-right-join"; - // - SQLJoinType["SQL_FullJoin"] = "sql-full-join"; - // - SQLJoinType["SQL_CrossJoin"] = "sql-cross-join"; - })(SQLJoinType = exports.SQLJoinType || (exports.SQLJoinType = {})); - // - var FolderRole; - (function (FolderRole) { - // - FolderRole["FOLDER_DIMENSIONS"] = "dimensions"; - // - FolderRole["FOLDER_MEASURES"] = "measure"; - // - FolderRole["FOLDER_GROUPS"] = "groups"; - // - FolderRole["FOLDER_PARAMETERS"] = "parameters"; - })(FolderRole = exports.FolderRole || (exports.FolderRole = {})); - // - var FieldTypeIconSet; - (function (FieldTypeIconSet) { - // - FieldTypeIconSet["FT_SET_ALL"] = "all"; - // - FieldTypeIconSet["FT_SET_CUBE_MEASURES"] = "cube-measures"; - // - FieldTypeIconSet["FT_SET_CUBE_DIMENSIONS"] = "cube-dimensions"; - })(FieldTypeIconSet = exports.FieldTypeIconSet || (exports.FieldTypeIconSet = {})); - // - var FieldPivotStrategy; - (function (FieldPivotStrategy) { - // - FieldPivotStrategy["PIVOT_ON_KEY"] = "pivot-on-key"; - // - FieldPivotStrategy["PIVOT_ON_ALIAS"] = "pivot-on-alias"; - })(FieldPivotStrategy = exports.FieldPivotStrategy || (exports.FieldPivotStrategy = {})); - // - var AliasType; - (function (AliasType) { - // - AliasType["ALIAS_NOTSET"] = "alias-not-set"; - // - AliasType["ALIAS_BEGIN"] = "alias-begin"; - // - AliasType["ALIAS_KEY"] = "alias-key"; - // - AliasType["ALIAS_KEY_NAME"] = "alias-key-name"; - // - AliasType["ALIAS_KEY_MEDNAME"] = "alias-key-medname"; - // - AliasType["ALIAS_KEY_LONGNAME"] = "alias-key-longname"; - // - AliasType["ALIAS_NAME"] = "alias-name"; - // - AliasType["ALIAS_NAME_KEY"] = "alias-name-key"; - // - AliasType["ALIAS_MEDNAME"] = "alias-medname"; - // - AliasType["ALIAS_MEDNAME_KEY"] = "alias-medname-key"; - // - AliasType["ALIAS_LONGNAME"] = "alias-longname"; - // - AliasType["ALIAS_LONGNAME_KEY"] = "alias-longname-key"; - // - AliasType["ALIAS_END"] = "alias-end"; - })(AliasType = exports.AliasType || (exports.AliasType = {})); - // - var AliasTypes; - (function (AliasTypes) { - // - AliasTypes["MASK_ALIAS_KEY"] = "mask-alias-key"; - // - AliasTypes["MASK_ALIAS_NAME"] = "mask-alias-name"; - // - AliasTypes["MASK_ALIAS_MEDNAME"] = "mask-alias-medname"; - // - AliasTypes["MASK_ALIAS_LONGNAME"] = "mask-alias-longname"; - })(AliasTypes = exports.AliasTypes || (exports.AliasTypes = {})); - // - var FieldRole; - (function (FieldRole) { - // - FieldRole["ROLE_DIMENSION"] = "dimension"; - // - FieldRole["ROLE_MEASURE"] = "measure"; - // - FieldRole["ROLE_UNKNOWN"] = "unknown"; - })(FieldRole = exports.FieldRole || (exports.FieldRole = {})); - // - var FieldType; - (function (FieldType) { - // - FieldType["TYPE_QUANTITATIVE"] = "quantitative"; - // - FieldType["TYPE_ORDINAL"] = "ordinal"; - // - FieldType["TYPE_NOMINAL"] = "nominal"; - // - FieldType["TYPE_UNKNOWN"] = "unknown"; - })(FieldType = exports.FieldType || (exports.FieldType = {})); - // - var DataSourceOrder; - (function (DataSourceOrder) { - // - DataSourceOrder["DSO_ALPHABETIC"] = "dso-alphabetic"; - // - DataSourceOrder["DSO_ORDINAL"] = "dso-ordinal"; - })(DataSourceOrder = exports.DataSourceOrder || (exports.DataSourceOrder = {})); - // Where the column comes from - var ColumnClass; - (function (ColumnClass) { - // A metadata column (O or Q Measures) - ColumnClass["COL_METADATA"] = "col-metadata"; - // A physical column on the database - ColumnClass["COL_DATABASE"] = "col-database"; - // A numberic bin (a special kind of calculated column) - ColumnClass["COL_NUMERICBIN"] = "col-numericbin"; - // A Categorical bin (group) - ColumnClass["COL_CATEGORICALBIN"] = "col-categoricalbin"; - // A column instance - ColumnClass["COL_INSTANCE"] = "col-instance"; - // A (raw) mdx calculated column - ColumnClass["COL_MDXCALC"] = "col-mdxcalc"; - // A user-defined calculated column, Tableau expression syntax - ColumnClass["COL_USERCALC"] = "col-usercalc"; - // A column that would have been COL_DATABASE, but the underlying database column does not exist - ColumnClass["COL_DANGLING"] = "col-dangling"; - // A column that contains local supplied data (e.g. Latitude) - ColumnClass["COL_LOCALDATA"] = "col-localdata"; - // A column that contains a visual model attribute (e.g. PaneIndex, Color, ...) - ColumnClass["COL_VISUALDATA"] = "col-visualdata"; - // A column that's a Group (a " Set " in UI terminology) - ColumnClass["COL_GROUP"] = "col-group"; - })(ColumnClass = exports.ColumnClass || (exports.ColumnClass = {})); - // - var VTAggType; - (function (VTAggType) { - // - VTAggType["VTAGG_SUM"] = "sum"; - // - VTAggType["VTAGG_AVG"] = "avg"; - // - VTAggType["VTAGG_MIN"] = "min"; - // - VTAggType["VTAGG_MAX"] = "max"; - // - VTAggType["VTAGG_SERVER"] = "server"; - // - VTAggType["VTAGG_NONE"] = "none"; - // - VTAggType["VTAGG_DEFAULT"] = "default"; - })(VTAggType = exports.VTAggType || (exports.VTAggType = {})); - // - var EntityType; - (function (EntityType) { - // - EntityType["NoEnumerationEntity"] = "no-enumeration-entity"; - // - EntityType["DatabaseEntity"] = "database-entity"; - // - EntityType["SchemaEntity"] = "schema-entity"; - // - EntityType["TableEntity"] = "table-entity"; - })(EntityType = exports.EntityType || (exports.EntityType = {})); - // - var PickEntitySearchType; - (function (PickEntitySearchType) { - // - PickEntitySearchType["PickEntitySearchType_StartsWith"] = "starts-with"; - // - PickEntitySearchType["PickEntitySearchType_Contains"] = "contains"; - // - PickEntitySearchType["PickEntitySearchType_ExactMatch"] = "exact-match"; - // - PickEntitySearchType["PickEntitySearchType_DEFAULT"] = "default"; - })(PickEntitySearchType = exports.PickEntitySearchType || (exports.PickEntitySearchType = {})); - // Parsing methods and structures. - var ExpressionOp; - (function (ExpressionOp) { - // - ExpressionOp["LogicalOr"] = "op-logical-or"; - // - ExpressionOp["LogicalAnd"] = "op-logical-and"; - // - ExpressionOp["LogicalNot"] = "op-logical-not"; - // - ExpressionOp["BitwiseXOr"] = "op-bitwise-xor"; - // - ExpressionOp["BitwiseOr"] = "op-bitwise-or"; - // - ExpressionOp["Equals"] = "op-equals"; - // - ExpressionOp["Greater"] = "op-greater"; - // - ExpressionOp["Less"] = "op-less"; - // - ExpressionOp["GEqual"] = "op-gequal"; - // - ExpressionOp["LEqual"] = "op-lequal"; - // - ExpressionOp["NEqual"] = "op-nequal"; - // - ExpressionOp["Plus"] = "op-plus"; - // - ExpressionOp["Minus"] = "op-minus"; - // - ExpressionOp["BitwiseAnd"] = "op-bitwise-and"; - // - ExpressionOp["Multiply"] = "op-multiply"; - // - ExpressionOp["Divide"] = "op-divide"; - // - ExpressionOp["Modulo"] = "op-modulo"; - // - ExpressionOp["Power"] = "op-power"; - // - ExpressionOp["Positive"] = "op-positive"; - // - ExpressionOp["Negative"] = "op-negative"; - // - ExpressionOp["BitwiseNot"] = "op-bitwise-not"; - // - ExpressionOp["Column"] = "op-column"; - // - ExpressionOp["String"] = "op-string"; - // - ExpressionOp["Number"] = "op-number"; - // - ExpressionOp["Date"] = "op-date"; - // - ExpressionOp["Boolean"] = "op-boolean"; - // - ExpressionOp["Funcall"] = "op-funcall"; - // - ExpressionOp["LParen"] = "op-lparen"; - // - ExpressionOp["RParen"] = "op-rparen"; - // - ExpressionOp["Comma"] = "op-comma"; - // - ExpressionOp["Ident"] = "op-ident"; - // - ExpressionOp["Null"] = "op-null"; - // - ExpressionOp["If"] = "op-if"; - // - ExpressionOp["Elseif"] = "op-elseif"; - // - ExpressionOp["Case"] = "op-case"; - // - ExpressionOp["When"] = "op-when"; - // - ExpressionOp["Then"] = "op-then"; - // - ExpressionOp["Else"] = "op-else"; - // - ExpressionOp["EndExpr"] = "op-endexpr"; - // - ExpressionOp["Whitespace"] = "op-whitespace"; - // - ExpressionOp["Comment"] = "op-comment"; - // - ExpressionOp["LBrace"] = "op-lbrace"; - // - ExpressionOp["RBrace"] = "op-rbrace"; - // - ExpressionOp["Colon"] = "op-colon"; - // - ExpressionOp["Bar"] = "op-bar"; - // - ExpressionOp["Txtype"] = "op-txtype"; - // - ExpressionOp["End"] = "op-end"; - // - ExpressionOp["RBrackets"] = "op-rbrackets"; - // used to represent invalid tokens - ExpressionOp["Invalid"] = "op-invalid"; - })(ExpressionOp = exports.ExpressionOp || (exports.ExpressionOp = {})); - // tri-state bool - var TriBool; - (function (TriBool) { - // - TriBool["TB_Invalid"] = "tribool-invalid"; - // - TriBool["TB_False"] = "tribool-false"; - // - TriBool["TB_True"] = "tribool-true"; - })(TriBool = exports.TriBool || (exports.TriBool = {})); - // table calc reference options set - var ReferenceOptionsSet; - (function (ReferenceOptionsSet) { - // - ReferenceOptionsSet["ROS_Relative"] = "reference-options-set-relative"; - // - ReferenceOptionsSet["ROS_Fixed"] = "reference-options-set-fixed"; - // - ReferenceOptionsSet["ROS_Parameter"] = "reference-options-set-parameter"; - // - ReferenceOptionsSet["ROS_None"] = "reference-options-set-none"; - })(ReferenceOptionsSet = exports.ReferenceOptionsSet || (exports.ReferenceOptionsSet = {})); - // widget state - var WidgetState; - (function (WidgetState) { - // - WidgetState["Hidden"] = "widget-state-hidden"; - // - WidgetState["Disabled"] = "widget-state-disabled"; - // - WidgetState["Enabled"] = "widget-state-enabled"; - })(WidgetState = exports.WidgetState || (exports.WidgetState = {})); - // rank type - var RankType; - (function (RankType) { - // - RankType["Competition"] = "rank-type-competition"; - // - RankType["ModifiedCompetition"] = "rank-type-modified-competition"; - // - RankType["Dense"] = "rank-type-dense"; - // - RankType["Unique"] = "rank-type-unique"; - })(RankType = exports.RankType || (exports.RankType = {})); - // - var TableCalcCommandType; - (function (TableCalcCommandType) { - // - TableCalcCommandType["TableCalcCommandClear"] = "clear"; - })(TableCalcCommandType = exports.TableCalcCommandType || (exports.TableCalcCommandType = {})); - // - var CalcNestingLevel; - (function (CalcNestingLevel) { - // - CalcNestingLevel["Primary"] = "primary"; - // used only for type != TC_CUSTOM - CalcNestingLevel["Secondary"] = "secondary"; - // used only for type == TC_CUSTOM - CalcNestingLevel["Nested"] = "nested"; - })(CalcNestingLevel = exports.CalcNestingLevel || (exports.CalcNestingLevel = {})); - // - var DecimalMode; - (function (DecimalMode) { - // - DecimalMode["DecimalModeAutomatic"] = "automatic"; - // - DecimalMode["DecimalModeManual"] = "manual"; - })(DecimalMode = exports.DecimalMode || (exports.DecimalMode = {})); - // - var TableCalcOrderingType; - (function (TableCalcOrderingType) { - // Advanced... - TableCalcOrderingType["OTField"] = "field"; - // Table (Across) - TableCalcOrderingType["OTRows"] = "rows"; - // Table (Down) - TableCalcOrderingType["OTColumns"] = "columns"; - // Table (Across then Down) - TableCalcOrderingType["OTTable"] = "table"; - // Table (Down then Across) - TableCalcOrderingType["OTTableColumnPrecedence"] = "table-column-precedence"; - // Pane Across - TableCalcOrderingType["OTRowInPane"] = "row-in-pane"; - // Pane (Down) - TableCalcOrderingType["OTColumnInPane"] = "column-in-pane"; - // Pane (Across then Down) - TableCalcOrderingType["OTPane"] = "pane"; - // Pane (Down then Across) - TableCalcOrderingType["OTPaneColumnPrecedence"] = "pane-column-precedence"; - // Cell - TableCalcOrderingType["OTCellInPane"] = "cell-in-pane"; - })(TableCalcOrderingType = exports.TableCalcOrderingType || (exports.TableCalcOrderingType = {})); - // - var TableCalcSortMode; - (function (TableCalcSortMode) { - // - TableCalcSortMode["SM_Automatic"] = "sort-mode-automatic"; - // - TableCalcSortMode["SM_Custom"] = "sort-mode-custom"; - })(TableCalcSortMode = exports.TableCalcSortMode || (exports.TableCalcSortMode = {})); - // - var TableCalcTableCalcType; - (function (TableCalcTableCalcType) { - // none (used to initialize variables) - TableCalcTableCalcType["TC_NONE"] = "none"; - // Running Total - TableCalcTableCalcType["TC_CUMULATIVE"] = "cumulative"; - // Moving Calculation - TableCalcTableCalcType["TC_WINDOW"] = "window"; - // Difference From - TableCalcTableCalcType["TC_DIFF"] = "diff"; - // Percent Difference From - TableCalcTableCalcType["TC_PCTDIFF"] = "pct-diff"; - // Percent From - TableCalcTableCalcType["TC_PCTVALUE"] = "pct-value"; - // Percent Of Total - TableCalcTableCalcType["TC_PCTTOTAL"] = "pct-total"; - // Rank - TableCalcTableCalcType["TC_RANK"] = "rank"; - // Percentile - TableCalcTableCalcType["TC_PCTRANK"] = "pct-rank"; - // Custom - TableCalcTableCalcType["TC_CUSTOM"] = "custom"; - })(TableCalcTableCalcType = exports.TableCalcTableCalcType || (exports.TableCalcTableCalcType = {})); - // - var QuickTableCalcCommandType; - (function (QuickTableCalcCommandType) { - // - QuickTableCalcCommandType["QuickTableCalcCommandRunTotal"] = "run-total"; - // - QuickTableCalcCommandType["QuickTableCalcCommandDifference"] = "difference"; - // - QuickTableCalcCommandType["QuickTableCalcCommandPctDiff"] = "pct-diff"; - // - QuickTableCalcCommandType["QuickTableCalcCommandPctTotal"] = "pct-total"; - // - QuickTableCalcCommandType["QuickTableCalcCommandRank"] = "rank"; - // - QuickTableCalcCommandType["QuickTableCalcCommandPctRank"] = "pct-rank"; - // - QuickTableCalcCommandType["QuickTableCalcCommandMovingAvg"] = "moving-avg"; - // - QuickTableCalcCommandType["QuickTableCalcCommandYtd"] = "ytd"; - // - QuickTableCalcCommandType["QuickTableCalcCommandCgr"] = "cgr"; - // - QuickTableCalcCommandType["QuickTableCalcCommandYOverY"] = "y-over-y"; - // - QuickTableCalcCommandType["QuickTableCalcCommandYtdGrowth"] = "ytd-growth"; - // - QuickTableCalcCommandType["QuickTableCalcCommandCustom"] = "custom"; - })(QuickTableCalcCommandType = exports.QuickTableCalcCommandType || (exports.QuickTableCalcCommandType = {})); - // - var TableCalcAddressCommandType; - (function (TableCalcAddressCommandType) { - // - TableCalcAddressCommandType["TableCalcAddressCommandRel"] = "rel"; - // - TableCalcAddressCommandType["TableCalcAddressCommandAbs"] = "abs"; - // - TableCalcAddressCommandType["TableCalcAddressCommandParam"] = "param"; - // - TableCalcAddressCommandType["TableCalcAddressCommandMore"] = "more"; - })(TableCalcAddressCommandType = exports.TableCalcAddressCommandType || (exports.TableCalcAddressCommandType = {})); - // relative addressing - var TableCalcRelativeAddress; - (function (TableCalcRelativeAddress) { - // - TableCalcRelativeAddress["RelAddrFirst"] = "relative-address-first"; - // - TableCalcRelativeAddress["RelAddrPrevious"] = "relative-address-previous"; - // - TableCalcRelativeAddress["RelAddrNext"] = "relative-address-next"; - // - TableCalcRelativeAddress["RelAddrLast"] = "relative-address-last"; - })(TableCalcRelativeAddress = exports.TableCalcRelativeAddress || (exports.TableCalcRelativeAddress = {})); - // - var CategoricalBinItemType; - (function (CategoricalBinItemType) { - // - CategoricalBinItemType["Unbinned"] = "unbinned"; - // - CategoricalBinItemType["BinMember"] = "categorical-bin-member"; - // - CategoricalBinItemType["Bin"] = "categorical-bin"; - })(CategoricalBinItemType = exports.CategoricalBinItemType || (exports.CategoricalBinItemType = {})); - // The class properties - var CredentialTypePropertiesFlag; - (function (CredentialTypePropertiesFlag) { - // - CredentialTypePropertiesFlag["None"] = "none"; - // - CredentialTypePropertiesFlag["GenericAuthClass"] = "generic-auth-class"; - // - CredentialTypePropertiesFlag["ProviderClass"] = "provider-class"; - // - CredentialTypePropertiesFlag["DataConnectionClass"] = "data-connection-class"; - })(CredentialTypePropertiesFlag = exports.CredentialTypePropertiesFlag || (exports.CredentialTypePropertiesFlag = {})); - // The connector type - var ConnectorType; - (function (ConnectorType) { - // - ConnectorType["Invalid"] = "invalid"; - // - ConnectorType["WebDataConnector"] = "web-data-connector"; - // - ConnectorType["CloudFileConnector"] = "cloud-file-connector"; - // - ConnectorType["LegacyConnector"] = "legacy-connector"; - })(ConnectorType = exports.ConnectorType || (exports.ConnectorType = {})); - // - var TablePillIcon; - (function (TablePillIcon) { - // - TablePillIcon["ListItem"] = "list-item"; - // - TablePillIcon["Sheet"] = "sheet"; - // - TablePillIcon["FoundTable"] = "found-table"; - // - TablePillIcon["NamedRange"] = "named-range"; - // - TablePillIcon["StoredProcedure"] = "stored-procedure"; - })(TablePillIcon = exports.TablePillIcon || (exports.TablePillIcon = {})); - // - var JoinValidationError; - (function (JoinValidationError) { - // - JoinValidationError["JVE_NoError"] = "no-error"; - // - JoinValidationError["JVE_EmptyClause"] = "empty-clause"; - // - JoinValidationError["JVE_TypeMismatch"] = "type-mismatch"; - // - JoinValidationError["JVE_InvalidField"] = "invalid-field"; - // - JoinValidationError["JVE_BadClause"] = "bad-clause"; - // - JoinValidationError["JVE_BadInputRelation"] = "bad-input-relation"; - // - JoinValidationError["JVE_RepeatedFieldReferences"] = "repeated-field-references"; - // - JoinValidationError["JVE_UnsupportedJoinType"] = "unsupported-join-type"; - // - JoinValidationError["JVE_InvalidCalculation"] = "invalid-calculation"; - // - JoinValidationError["JVE_Unknown"] = "unknown"; - })(JoinValidationError = exports.JoinValidationError || (exports.JoinValidationError = {})); - // - var ConnectionTypeEnum; - (function (ConnectionTypeEnum) { - // -d-s is used to force the enum generator to generate DS with capital letters in .cs just like the .cpp - ConnectionTypeEnum["InvalidDS"] = "invalid-d-s"; - // - ConnectionTypeEnum["FileDS"] = "file-d-s"; - // - ConnectionTypeEnum["ServerDS"] = "server-d-s"; - // - ConnectionTypeEnum["InternetDS"] = "internet-d-s"; - // - ConnectionTypeEnum["TableauServerDS"] = "tableau-server-d-s"; - })(ConnectionTypeEnum = exports.ConnectionTypeEnum || (exports.ConnectionTypeEnum = {})); - // - var ConnectionErrorStage; - (function (ConnectionErrorStage) { - // - ConnectionErrorStage["Unknown"] = "unknown"; - // - ConnectionErrorStage["CreateProtocolFailed"] = "create-protocol-failed"; - // - ConnectionErrorStage["LoadMetadataFailed"] = "load-metadata-failed"; - })(ConnectionErrorStage = exports.ConnectionErrorStage || (exports.ConnectionErrorStage = {})); - // - var SetTickOriginResult; - (function (SetTickOriginResult) { - // - SetTickOriginResult["Success"] = "set-tick-origin-success-result"; - // - SetTickOriginResult["ParseFailure"] = "set-tick-origin-parse-failure-result"; - // - SetTickOriginResult["ValueFailure"] = "set-tick-origin-value-failure-result"; - })(SetTickOriginResult = exports.SetTickOriginResult || (exports.SetTickOriginResult = {})); - // - var SetTickSpacingResult; - (function (SetTickSpacingResult) { - // - SetTickSpacingResult["Success"] = "set-tick-spacing-success-result"; - // - SetTickSpacingResult["ParseFailure"] = "set-tick-spacing-parse-failure-result"; - // - SetTickSpacingResult["ValueFailure"] = "set-tick-spacing-value-failure-result"; - })(SetTickSpacingResult = exports.SetTickSpacingResult || (exports.SetTickSpacingResult = {})); - // The result of setting one end of an axis range - var SetAxisRangeResult; - (function (SetAxisRangeResult) { - // - SetAxisRangeResult["Success"] = "set-axis-range-success-result"; - // - SetAxisRangeResult["Failure"] = "set-axis-range-failure-result"; - })(SetAxisRangeResult = exports.SetAxisRangeResult || (exports.SetAxisRangeResult = {})); - // The type of an axis' extent - var AxisExtentType; - (function (AxisExtentType) { - // - AxisExtentType["Automatic"] = "axis-extent-automatic"; - // - AxisExtentType["Uniform"] = "axis-extent-uniform"; - // - AxisExtentType["Independent"] = "axis-extent-independent"; - // - AxisExtentType["Fixed"] = "axis-extent-fixed"; - })(AxisExtentType = exports.AxisExtentType || (exports.AxisExtentType = {})); - // Enumeration of units tick spacing can take - var TickSpacingUnits; - (function (TickSpacingUnits) { - // - TickSpacingUnits["NoUnits"] = "no-units"; - // - TickSpacingUnits["Years"] = "years"; - // - TickSpacingUnits["Quarters"] = "quarters"; - // - TickSpacingUnits["Months"] = "months"; - // - TickSpacingUnits["Weeks"] = "weeks"; - // - TickSpacingUnits["Days"] = "days"; - // - TickSpacingUnits["Hours"] = "hours"; - // - TickSpacingUnits["Minutes"] = "minutes"; - // - TickSpacingUnits["Seconds"] = "seconds"; - })(TickSpacingUnits = exports.TickSpacingUnits || (exports.TickSpacingUnits = {})); - // Enumeration of whether totals are included in or excluded from the color encoding - var TotalsInclusion; - (function (TotalsInclusion) { - // Totals included in color encoding - TotalsInclusion["IncludeTotals"] = "include-totals"; - // Totals excluded from color encoding - TotalsInclusion["ExcludeTotals"] = "exclude-totals"; - })(TotalsInclusion = exports.TotalsInclusion || (exports.TotalsInclusion = {})); - // How tick marks are being calculated - var TickMarkState; - (function (TickMarkState) { - // - TickMarkState["TicksAutomatic"] = "ticks-automatic"; - // - TickMarkState["TicksManual"] = "ticks-manual"; - // - TickMarkState["TicksNone"] = "ticks-None"; - })(TickMarkState = exports.TickMarkState || (exports.TickMarkState = {})); - // Setting for type of axis range - var AxisRangeType; - (function (AxisRangeType) { - // - AxisRangeType["AutomaticRange"] = "automatic-range"; - // - AxisRangeType["UniformRange"] = "uniform-range"; - // - AxisRangeType["IndependentRange"] = "independent-range"; - // - AxisRangeType["FixedRange"] = "fixed-range"; - // - AxisRangeType["FixedMin"] = "fixed-min"; - // - AxisRangeType["FixedMax"] = "fixed-max"; - // - AxisRangeType["FixedMinUniformMax"] = "fixed-min-uniform-max"; - // - AxisRangeType["FixedMinIndependentMax"] = "fixed-min-independent-max"; - // - AxisRangeType["FixedMaxUniformMin"] = "fixed-max-uniform-min"; - // - AxisRangeType["FixedMaxIndependentMin"] = "fixed-max-independent-min"; - // - AxisRangeType["FixedRangeOrdinal"] = "fixed-range-ordinal"; - })(AxisRangeType = exports.AxisRangeType || (exports.AxisRangeType = {})); - // represents type of widget on the toolbar of rich text editor - var RichTextEditorWidgetKey; - (function (RichTextEditorWidgetKey) { - // - RichTextEditorWidgetKey["None"] = "none"; - // - RichTextEditorWidgetKey["FontSize"] = "fontsize"; - // - RichTextEditorWidgetKey["FontName"] = "fontname"; - // - RichTextEditorWidgetKey["FontColor"] = "color"; - // - RichTextEditorWidgetKey["Bold"] = "bold"; - // - RichTextEditorWidgetKey["Italic"] = "italic"; - // - RichTextEditorWidgetKey["Underline"] = "underline"; - // - RichTextEditorWidgetKey["AlignLeft"] = "justifyleft"; - // - RichTextEditorWidgetKey["AlignCenter"] = "justifycenter"; - // - RichTextEditorWidgetKey["AlignRight"] = "justifyright"; - // - RichTextEditorWidgetKey["ClearFormatting"] = "clearformatting"; - // - RichTextEditorWidgetKey["TableauKeywords"] = "tableaukeywords"; - })(RichTextEditorWidgetKey = exports.RichTextEditorWidgetKey || (exports.RichTextEditorWidgetKey = {})); - // - var CellSizeChange; - (function (CellSizeChange) { - // - CellSizeChange["CSC_Taller"] = "taller"; - // - CellSizeChange["CSC_Shorter"] = "shorter"; - // - CellSizeChange["CSC_Wider"] = "wider"; - // - CellSizeChange["CSC_Narrower"] = "narrower"; - // - CellSizeChange["CSC_Bigger"] = "bigger"; - // - CellSizeChange["CSC_Smaller"] = "smaller"; - })(CellSizeChange = exports.CellSizeChange || (exports.CellSizeChange = {})); - // - var CellTypeEnum; - (function (CellTypeEnum) { - // - CellTypeEnum["CLT_Square"] = "square"; - // - CellTypeEnum["CLT_Text"] = "text"; - })(CellTypeEnum = exports.CellTypeEnum || (exports.CellTypeEnum = {})); - // represents type of formatting pres model - var TypeOfFormatItem; - (function (TypeOfFormatItem) { - // - TypeOfFormatItem["FT_FormatItem"] = "formatItem"; - // - TypeOfFormatItem["FT_FormatContainer"] = "formatContainer"; - // - TypeOfFormatItem["FT_FormatControl"] = "formatControl"; - })(TypeOfFormatItem = exports.TypeOfFormatItem || (exports.TypeOfFormatItem = {})); - // represents type of formatting container - var TypeOfFormatContainer; - (function (TypeOfFormatContainer) { - // - TypeOfFormatContainer["FT_FormatPane"] = "formatPane"; - // - TypeOfFormatContainer["FT_FormatSection"] = "formatSection"; - // - TypeOfFormatContainer["FT_CollapsibleSection"] = "collapsibleSection"; - // - TypeOfFormatContainer["FT_CompositeContainer"] = "compositeContainer"; - // - TypeOfFormatContainer["FT_UnitContainer"] = "unitContainer"; - // - TypeOfFormatContainer["FT_Tab"] = "tab"; - // - TypeOfFormatContainer["FT_TabGroup"] = "tabGroup"; - })(TypeOfFormatContainer = exports.TypeOfFormatContainer || (exports.TypeOfFormatContainer = {})); - // represents type of formatting control - var TypeOfFormatControl; - (function (TypeOfFormatControl) { - // - TypeOfFormatControl["FT_None"] = "none"; - // - TypeOfFormatControl["FT_NumericControl"] = "numeric-control"; - // - TypeOfFormatControl["FT_TextControl"] = "text-control"; - // - TypeOfFormatControl["FT_ColorControl"] = "color-control"; - // - TypeOfFormatControl["FT_SelectorControl"] = "selector-control"; - // - TypeOfFormatControl["FT_ToggleControl"] = "toggle-control"; - })(TypeOfFormatControl = exports.TypeOfFormatControl || (exports.TypeOfFormatControl = {})); - // represents type of formatting widget - var FormatWidgetKey; - (function (FormatWidgetKey) { - // - FormatWidgetKey["FWK_None"] = "none"; - // - FormatWidgetKey["FWK_FontFamily"] = "fontFamily"; - // - FormatWidgetKey["FWK_FontSize"] = "fontSize"; - // - FormatWidgetKey["FWK_ColorSwatch"] = "colorSwatch"; - // - FormatWidgetKey["FWK_Bold"] = "bold"; - // - FormatWidgetKey["FWK_Italics"] = "italics"; - // - FormatWidgetKey["FWK_Underline"] = "underline"; - // - FormatWidgetKey["FWK_LineVisibility"] = "lineVisibility"; - // - FormatWidgetKey["FWK_LinePattern"] = "linePattern"; - // - FormatWidgetKey["FWK_LineSize"] = "lineSize"; - // - FormatWidgetKey["FWK_NumberType"] = "numericType"; - // - FormatWidgetKey["FWK_DecimalPlaces"] = "decimalPlaces"; - // - FormatWidgetKey["FWK_ThousandsSeparator"] = "thousandsSeparator"; - // - FormatWidgetKey["FWK_NumericUnits"] = "numericUnits"; - })(FormatWidgetKey = exports.FormatWidgetKey || (exports.FormatWidgetKey = {})); - // represents identifier for each node in format pane - var FormatNodeIdentifier; - (function (FormatNodeIdentifier) { - // - FormatNodeIdentifier["Format_None_Key"] = "none"; - // - FormatNodeIdentifier["Format_Workbook_Key"] = "workbook"; - // - FormatNodeIdentifier["Format_Font_Key"] = "font"; - // - FormatNodeIdentifier["Format_Color_Key"] = "color"; - // - FormatNodeIdentifier["Format_Lines_Key"] = "lines"; - // - FormatNodeIdentifier["Format_FontAll_Key"] = "font-all"; - // - FormatNodeIdentifier["Format_FontAllControls_Key"] = "font-all-controls"; - // - FormatNodeIdentifier["Format_FontMore_Key"] = "font-more"; - // - FormatNodeIdentifier["Format_FontWorksheetTitles_Key"] = "worksheet-titles"; - // - FormatNodeIdentifier["Format_FontToolTip_Key"] = "font-tooltip"; - // - FormatNodeIdentifier["Format_FontWorksheet_Key"] = "font-worksheet"; - // - FormatNodeIdentifier["Format_FontDashTitles_Key"] = "dash-titles"; - // - FormatNodeIdentifier["Format_FontStoryTitles_Key"] = "story-titles"; - // - FormatNodeIdentifier["Format_FontTitlesControls_Key"] = "titles-controls"; - // - FormatNodeIdentifier["Format_FontTooltipControls_Key"] = "tooltip-controls"; - // - FormatNodeIdentifier["Format_FontWorksheetControls_Key"] = "worksheet-controls"; - // - FormatNodeIdentifier["Format_LineMore_Key"] = "line-more"; - // - FormatNodeIdentifier["Format_LineGrid_Key"] = "line-grid"; - // - FormatNodeIdentifier["Format_LineGridTabs_Key"] = "line-grid-tabs"; - // - FormatNodeIdentifier["Format_LineZero_Key"] = "line-zero"; - // - FormatNodeIdentifier["Format_LineZeroTabs_Key"] = "line-zero-tabs"; - // - FormatNodeIdentifier["Format_LineAxisTick_Key"] = "line-axis-tick"; - // - FormatNodeIdentifier["Format_LineAxisTickTabs_Key"] = "line-axis-tick-tabs"; - // - FormatNodeIdentifier["Format_LineAxisRuler_Key"] = "line-axis-ruler"; - // - FormatNodeIdentifier["Format_LineAxisRulerTabs_Key"] = "line-axis-ruler-tabs"; - // - FormatNodeIdentifier["Format_LineHeaderDivider_Key"] = "line-header-divider"; - // - FormatNodeIdentifier["Format_LineHeaderDividerTabs_Key"] = "line-header-divider-tabs"; - // - FormatNodeIdentifier["Format_LinePaneDivider_Key"] = "line-paneDivider"; - // - FormatNodeIdentifier["Format_LinePaneDividerTabs_Key"] = "line-paneDivider-tabs"; - // - FormatNodeIdentifier["Format_LineGridAll_Key"] = "line-grid-all"; - // - FormatNodeIdentifier["Format_LineGridRow_Key"] = "line-grid-row"; - // - FormatNodeIdentifier["Format_LineGridColumn_Key"] = "line-grid-column"; - // - FormatNodeIdentifier["Format_LineZeroAll_Key"] = "line-zero-all"; - // - FormatNodeIdentifier["Format_LineZeroRow_Key"] = "line-zero-row"; - // - FormatNodeIdentifier["Format_LineZeroColumn_Key"] = "line-zero-column"; - // - FormatNodeIdentifier["Format_LineAxisTickAll_Key"] = "line-axis-tick-all"; - // - FormatNodeIdentifier["Format_LineAxisTickRow_Key"] = "line-axis-tick-row"; - // - FormatNodeIdentifier["Format_LineAxisTickColumn_Key"] = "line-axis-tick-column"; - // - FormatNodeIdentifier["Format_LineAxisRulerAll_Key"] = "line-axis-ruler-all"; - // - FormatNodeIdentifier["Format_LineAxisRulerRow_Key"] = "line-axis-ruler-row"; - // - FormatNodeIdentifier["Format_LineAxisRulerColumn_Key"] = "line-axis-ruler-column"; - // - FormatNodeIdentifier["Format_LineReference_Key"] = "line-reference"; - // - FormatNodeIdentifier["Format_LineDrop_Key"] = "line-drop"; - // - FormatNodeIdentifier["Format_LineTrend_Key"] = "line-trend"; - // - FormatNodeIdentifier["Format_LineVisibility_Key"] = "line-visibility"; - // - FormatNodeIdentifier["Format_LinePattern_Key"] = "line-pattern"; - // - FormatNodeIdentifier["Format_LineWidth_Key"] = "line-width"; - // - FormatNodeIdentifier["Format_LineColor_Key"] = "line-color"; - // - FormatNodeIdentifier["Format_TickColor_Key"] = "tick-color"; - // - FormatNodeIdentifier["Format_BorderPattern_Key"] = "border-pattern"; - // - FormatNodeIdentifier["Format_BorderColor_Key"] = "border-color"; - // - FormatNodeIdentifier["Format_DividerColor_Key"] = "divider-color"; - // - FormatNodeIdentifier["Format_FontFamily_Key"] = "font-family-key"; - // - FormatNodeIdentifier["Format_FontSize_Key"] = "font-size-key"; - // - FormatNodeIdentifier["Format_Bold_Key"] = "bold-key"; - // - FormatNodeIdentifier["Format_Italics_Key"] = "italics-key"; - // - FormatNodeIdentifier["Format_Underline_Key"] = "underline-key"; - // - FormatNodeIdentifier["Format_FontColor_Key"] = "font-color-key"; - // - FormatNodeIdentifier["Format_Number_Container_Key"] = "number-container"; - // - FormatNodeIdentifier["Format_Number_Type_Key"] = "number-container-type"; - // - FormatNodeIdentifier["Format_Number_Units_Key"] = "number-container-units"; - // - FormatNodeIdentifier["Format_Number_Decimal_Key"] = "number-container-decimal"; - // - FormatNodeIdentifier["Format_Number_Thousands_Separator_Key"] = "number-container-thousands-separator"; - // - FormatNodeIdentifier["Format_FontPickerMinimal_Key"] = "font-picker-minimal"; - // - FormatNodeIdentifier["Format_FontPickerDefault_Key"] = "font-picker-default"; - // - FormatNodeIdentifier["Format_LinePickerDefault_Key"] = "line-picker-default"; - // - FormatNodeIdentifier["Format_LinePickerNoVis_Key"] = "line-picker-no-visibility"; - // - FormatNodeIdentifier["Format_LineAxisTickPicker_Key"] = "line-axis-tick-picker"; - })(FormatNodeIdentifier = exports.FormatNodeIdentifier || (exports.FormatNodeIdentifier = {})); - // Format prepended to format strings to specify type - var FormatCode; - (function (FormatCode) { - // - FormatCode["AutoFormat"] = "auto-format"; - // - FormatCode["SystemLongDate"] = "system-long-date"; - // - FormatCode["SystemShortDate"] = "system-short-date"; - // - FormatCode["SystemNumber"] = "system-number"; - // - FormatCode["SystemCurrency"] = "system-currency"; - // - FormatCode["SystemTime"] = "system-time"; - // - FormatCode["Custom"] = "custom"; - // - FormatCode["CustomICU"] = "custom-icu"; - // - FormatCode["CustomNumber"] = "custom-number"; - // - FormatCode["CustomCurrency"] = "custom-currency"; - // - FormatCode["CustomScientific"] = "custom-scientific"; - // - FormatCode["CustomPercentage"] = "custom-percentage"; - })(FormatCode = exports.FormatCode || (exports.FormatCode = {})); - // Units specified in a format string - var UnitsFormatEnum; - (function (UnitsFormatEnum) { - // - UnitsFormatEnum["UnitsFmtNone"] = "units-none"; - // - UnitsFormatEnum["UnitsFmtThousands"] = "units-thousands"; - // - UnitsFormatEnum["UnitsFmtMillions"] = "units-millions"; - // - UnitsFormatEnum["UnitsFmtBillionsEnglish"] = "units-billions-english"; - // - UnitsFormatEnum["UnitsFmtBillionsStandard"] = "units-billions-standard"; - })(UnitsFormatEnum = exports.UnitsFormatEnum || (exports.UnitsFormatEnum = {})); - // represents the color swatch that will be used in the ColorControlPresModel - var ColorSwatchType; - (function (ColorSwatchType) { - // - ColorSwatchType["CST_Dark"] = "dark-swatch"; - // - ColorSwatchType["CST_Light"] = "light-swatch"; - })(ColorSwatchType = exports.ColorSwatchType || (exports.ColorSwatchType = {})); - // represents the type of a style picker, affecting the preview rendering and, possibly, the layout - var PickerType; - (function (PickerType) { - // - PickerType["PT_None"] = "none"; - // - PickerType["PT_Font"] = "font"; - // - PickerType["PT_Line"] = "line"; - // - PickerType["PT_Number"] = "number"; - })(PickerType = exports.PickerType || (exports.PickerType = {})); - // - var UpdateScope; - (function (UpdateScope) { - // - UpdateScope["US_Worksheet"] = "worksheet"; - // - UpdateScope["US_Dashboard"] = "dashboard"; - // - UpdateScope["US_QuickFilters"] = "quick-filters"; - // - UpdateScope["US_Story"] = "story"; - })(UpdateScope = exports.UpdateScope || (exports.UpdateScope = {})); - // - var ParameterCtrlTypesDisplayMode; - (function (ParameterCtrlTypesDisplayMode) { - // - ParameterCtrlTypesDisplayMode["MODE_TYPE_IN"] = "type_in"; - // - ParameterCtrlTypesDisplayMode["MODE_COMPACT_LIST"] = "compact"; - // - ParameterCtrlTypesDisplayMode["MODE_LIST"] = "list"; - // - ParameterCtrlTypesDisplayMode["MODE_SLIDER"] = "slider"; - // - ParameterCtrlTypesDisplayMode["MODE_DATETIME"] = "datetime"; - })(ParameterCtrlTypesDisplayMode = exports.ParameterCtrlTypesDisplayMode || (exports.ParameterCtrlTypesDisplayMode = {})); - // flags for display options - var ParameterCtrlTypesDisplayFlag; - (function (ParameterCtrlTypesDisplayFlag) { - // - ParameterCtrlTypesDisplayFlag["DISPLAY_CUSTOM_TITLE"] = "custom_title"; - // - ParameterCtrlTypesDisplayFlag["DISPLAY_HIDE_SLIDER_SLIDER"] = "hide_slider_slider"; - // - ParameterCtrlTypesDisplayFlag["DISPLAY_HIDE_SLIDER_READOUT"] = "hide_slider_readout"; - // - ParameterCtrlTypesDisplayFlag["DISPLAY_HIDE_SLIDER_BUTTONS"] = "hide_slider_buttons"; - })(ParameterCtrlTypesDisplayFlag = exports.ParameterCtrlTypesDisplayFlag || (exports.ParameterCtrlTypesDisplayFlag = {})); - // The follow supports 1024 custom palettes, each with 4m shapes. Encoding is palette << PaletteShift | shape. - var ShapeEncodeConstants; - (function (ShapeEncodeConstants) { - // Shift value for palette - ShapeEncodeConstants["EncodePaletteShift"] = "paletteShift"; - // Mask for getting palette from encoded value. (Then shift down) - ShapeEncodeConstants["EncodePaletteMask"] = "paletteMask"; - // Mask for getting shape from encoded value - ShapeEncodeConstants["EncodeShapeMask"] = "shapeMask"; - })(ShapeEncodeConstants = exports.ShapeEncodeConstants || (exports.ShapeEncodeConstants = {})); - // - var ShapeType; - (function (ShapeType) { - // - ShapeType["ShapeCircle"] = "circle"; - // - ShapeType["ShapeSquare"] = "square"; - // - ShapeType["ShapePlus"] = "plus"; - // - ShapeType["ShapeTimes"] = "times"; - // - ShapeType["ShapeAsterisk"] = "asterisk"; - // - ShapeType["ShapeDiamond"] = "diamond"; - // - ShapeType["ShapeTriangle"] = "triangle"; - // - ShapeType["ShapeDownTriangle"] = "down-triangle"; - // - ShapeType["ShapeLeftTriangle"] = "left-triangle"; - // - ShapeType["ShapeRightTriangle"] = "right-triangle"; - // - ShapeType["MaxAllShapes"] = "invalid"; - })(ShapeType = exports.ShapeType || (exports.ShapeType = {})); - // - var ShapePalette; - (function (ShapePalette) { - // built-in palette - ShapePalette["ShapePaletteFilled"] = "filled"; - // custom palettes - ShapePalette["ShapePaletteCustom1"] = "custom1"; - // - ShapePalette["ShapePaletteCustom2"] = "custom2"; - // - ShapePalette["ShapePaletteCustom3"] = "custom3"; - // - ShapePalette["ShapePaletteCustom4"] = "custom4"; - // - ShapePalette["ShapePaletteCustom5"] = "custom5"; - // - ShapePalette["ShapePaletteCustom6"] = "custom6"; - // - ShapePalette["ShapePaletteCustom7"] = "custom7"; - // - ShapePalette["ShapePaletteCustom8"] = "custom8"; - // - ShapePalette["ShapePaletteCustom9"] = "custom9"; - // - ShapePalette["ShapePaletteCustom10"] = "custom10"; - // - ShapePalette["ShapePaletteCustom11"] = "custom11"; - // and so on... - ShapePalette["ShapePaletteCustom12"] = "custom12"; - // - ShapePalette["ShapePaletteHidden"] = "hidden"; - })(ShapePalette = exports.ShapePalette || (exports.ShapePalette = {})); - // ShapeType and palette mapped into a single value. This enum depends on ShapeType and the implementation of ShapeManager::IntEncode. - var ShapeID; - (function (ShapeID) { - // - ShapeID["ShapeIDCircle"] = "shapeIDCircle"; - // - ShapeID["ShapeIDSquare"] = "shapeIDSquare"; - // - ShapeID["ShapeIDPlus"] = "shapeIDPlus"; - // - ShapeID["ShapeIDTimes"] = "shapeIDTimes"; - // - ShapeID["ShapeIDAsterisk"] = "shapeIDAsterisk"; - // - ShapeID["ShapeIDDiamond"] = "shapeIDDiamond"; - // - ShapeID["ShapeIDTriangle"] = "shapeIDTriangle"; - // - ShapeID["ShapeIDDownTriangle"] = "shapeIDDownTriangle"; - // - ShapeID["ShapeIDLeftTriangle"] = "shapeIDLeftTriangle"; - // - ShapeID["ShapeIDRightTriangle"] = "shapeIDRightTriangle"; - // - ShapeID["ShapeIDFilledCircle"] = "shapeIDFilledCircle"; - // - ShapeID["ShapeIDFilledSquare"] = "shapeIDFilledSquare"; - // - ShapeID["ShapeIDFilledPlus"] = "shapeIDFilledPlus"; - // - ShapeID["ShapeIDFilledTimes"] = "shapeIDFilledTimes"; - // - ShapeID["ShapeIDFilledStar"] = "shapeIDFilledStar"; - // - ShapeID["ShapeIDFilledDiamond"] = "shapeIDFilledDiamond"; - // - ShapeID["ShapeIDFilledTriangle"] = "shapeIDFilledTriangle"; - // - ShapeID["ShapeIDFilledDownTriangle"] = "shapeIDFilledDownTriangle"; - // - ShapeID["ShapeIDFilledLeftTriangle"] = "shapeIDFilledLeftTriangle"; - // - ShapeID["ShapeIDFilledRightTriangle"] = "shapeIDFilledRightTriangle"; - // 0+(ShapePaletteHidden< -1; - }); - // Create a mapping of which index in the data dictionary our columns are in - var columnIndices = columns.map(function (vizDataColumn) { - // The columnIndex is in the same position as the paneIndex - var paneIndex = vizDataColumn.paneIndices.indexOf(i); - var columnIndex = vizDataColumn.columnIndices[paneIndex]; - return columnIndex; - }); - // Get the data for the pane we are processing - var vizPane = vizData.paneColumnsData.paneColumnsList[i]; - if (vizPane.vizPaneColumns.length !== columns.length) { - throw new Error('Malformed data table'); - } - var headers = new Array(); - var rows = new Array(); - // Column 0 will be the tuple id column. We can use this as a counter for how many rows we have - var tupleIds = vizPane.vizPaneColumns[0].tupleIds; - var marks = new Array(); - for (var tupleIndex = 0; tupleIndex < tupleIds.length; tupleIndex++) { - // TODO Need to revaluate the place of this logic. If it turns out that we need a separate command - // call to get the marks info, then this logic should not be here but instead in a layer above somewhere - var mark = { - type: api_internal_contract_1.MarkType.Bar, - color: 'red', - tupleId: tupleIds[tupleIndex], - }; - marks.push(mark); - // We will have 1 less value in this row since there's the tupleId column - var cells = new Array(vizPane.vizPaneColumns.length - 1); - for (var j = 1 /* skip the first which is tuple ids */; j < vizPane.vizPaneColumns.length; j++) { - // Next, we need to figure out which column we are reading data for - var column = columns[columnIndices[j]]; - var vizPaneColumnData = vizPane.vizPaneColumns[j]; - // Define the header when we are processing the first row - if (tupleIndex === 0) { - var header = { - dataType: EnumMappings_1.PresLayerToApiEnumMappings.dataType.convert(column.dataType), - fieldName: column.fn, - isReferenced: true, - index: j - 1, - fieldCaption: column.fieldCaption - }; - headers.push(header); - } - var value = UnderlyingDataConverter_1.UnderlyingDataConverter.lookupValueFromDictionary(dataDictionary, column.dataType, vizPaneColumnData.valueIndices[tupleIndex]); - var aliasValue = UnderlyingDataConverter_1.UnderlyingDataConverter.lookupValueFromDictionary(dataDictionary, column.dataType, vizPaneColumnData.aliasIndices[tupleIndex]) || ''; - var formattedValue = aliasValue; // TODO - Figure out how to use the formatStrings - var dataCell = { - value: value, - formattedValue: formattedValue, - aliasedValue: aliasValue - }; - // Add our cell to this row - cells[j - 1] = dataCell; - } - rows.push(cells); - } - var dataTable = { - dataTable: rows, - headers: headers, - marks: marks - }; - result.push(dataTable); - }; - // The data model for the VizDataPresModel is a little strange, so this parsing takes some time to figure out. - // There can be multiple panes of data, so we must go through them one at a time to create data tables - for (var i = 0; i < vizData.paneColumnsData.paneColumnsList.length; i++) { - _loop_1(i); - } - return result; - }; - return ActiveMarksDataConverter; - }()); - exports.ActiveMarksDataConverter = ActiveMarksDataConverter; - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Enums = __webpack_require__(22); - var EnumMappings_1 = __webpack_require__(21); - /** - * Contains static helper methods for converting from an underlying data pres model into the api representation. - * Most of the code is a direct port from ApiUnderlyingDataHandler.cs - * https://opengrok/source/xref/teams_near/workgroup/vqlweb/scriptsharp/src/UI/Api/ApiUnderlyingDataHandler.cs - */ - var UnderlyingDataConverter = (function () { - function UnderlyingDataConverter() { - } - UnderlyingDataConverter.lookupValueFromDictionary = function (dataDictionary, dt, index) { - if (index < 0) { - // per cl 280396 / bugzid 81197 negative data value index means that it is special - dt = Enums.DataType.DT_STRING; - index = -index - 1; - } - var result = null; - var rawValue = UnderlyingDataConverter.getRawValue(dataDictionary, dt, index); - if (rawValue !== null) { - result = rawValue.toString(); - } - return result; - }; - /* tslint:disable-next-line:no-any */ - UnderlyingDataConverter.getRawValue = function (dataDictionary, dt, index) { - if (!dataDictionary.dataSegments) { - return null; - } - for (var _i = 0, _a = Object.keys(dataDictionary.dataSegments); _i < _a.length; _i++) { - var key = _a[_i]; - var dataSegment = dataDictionary.dataSegments[key]; - for (var _b = 0, _c = dataSegment.dataColumns; _b < _c.length; _b++) { - var dataColumn = _c[_b]; - if (!dataColumn || dataColumn.dataType !== dt) { - continue; - } - if (index < dataColumn.dataValues.length) { - return dataColumn.dataValues[index]; - } - index -= dataColumn.dataValues.length; - break; - } - } - return null; - }; - UnderlyingDataConverter.buildDataTable = function (dataDictionary, columns) { - var result = { - dataTable: UnderlyingDataConverter.buildTable(dataDictionary, columns), - headers: columns.map(function (c, i) { return UnderlyingDataConverter.buildColumnModel(c, i); }) - }; - return result; - }; - UnderlyingDataConverter.buildUnderlyingDataTable = function (isSummary, underlyingDataTable) { - var result = { - data: UnderlyingDataConverter.buildDataTable(underlyingDataTable.dataDictionary, underlyingDataTable.underlyingDataTableColumns), - isSummary: isSummary - }; - return result; - }; - UnderlyingDataConverter.buildActiveMarksTable = function (dataDictionary, vizData) { - throw new Error(); - }; - UnderlyingDataConverter.buildColumnModel = function (column, index) { - return { - dataType: EnumMappings_1.PresLayerToApiEnumMappings.dataType.convert(column.dataType), - fieldName: column.fn, - fieldCaption: column.fieldCaption, - isReferenced: !!column.isReferenced, - index: index - }; - }; - UnderlyingDataConverter.buildTable = function (dataDictionary, columns) { - if (columns.length === 0) { - return new Array(); - } - var rowCount = columns[0].formatValIdxs.length; - var columnCount = columns.length; - var result = new Array(rowCount); - // Initialize all of our rows - for (var rowIndex = 0; rowIndex < rowCount; rowIndex++) { - result[rowIndex] = new Array(columnCount); - } - // Go through column-by-column and convert the values - for (var columnIndex = 0; columnIndex < columnCount; columnIndex++) { - var column = columns[columnIndex]; - for (var rowIndex = 0; rowIndex < rowCount; rowIndex++) { - var formattedValue = UnderlyingDataConverter.lookupValueFromDictionary(dataDictionary, Enums.DataType.DT_STRING, column.formatValIdxs[rowIndex]); - if (formattedValue === null) { - throw new Error('formattedValue was null'); - } - var value = { - value: UnderlyingDataConverter.lookupValueFromDictionary(dataDictionary, column.dataType, column.valueIndices[rowIndex]), - formattedValue: formattedValue, - aliasedValue: formattedValue - }; - result[rowIndex][columnIndex] = value; - } - } - return result; - }; - return UnderlyingDataConverter; - }()); - exports.UnderlyingDataConverter = UnderlyingDataConverter; - - -/***/ }, -/* 26 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var EnumMappings_1 = __webpack_require__(21); - /** - * Class containing helper methods for converting from ApiPresModels to their PresLayer equivalents - * - * @export - * @class ApiToPresLayerConverter - */ - var ApiToPresLayerConverter = (function () { - function ApiToPresLayerConverter() { - } - ApiToPresLayerConverter.convertSheetPath = function (apiSheetPath) { - if (!apiSheetPath) { - throw new Error('sheetPath not defined'); - } - var result = { - sheetName: apiSheetPath.sheetName, - isDashboard: apiSheetPath.isDashboard, - storyboard: apiSheetPath.storyboard || '', - flipboardZoneId: apiSheetPath.flipboardZoneID || 0, - storyPointId: apiSheetPath.storyPointID || 0, - }; - return result; - }; - ApiToPresLayerConverter.convertAddInLocator = function (apiAddInLocator) { - var result = { - addInInstanceId: apiAddInLocator.instanceId, - sheetPath: ApiToPresLayerConverter.convertSheetPath(apiAddInLocator.dashboardPath) - }; - return result; - }; - ApiToPresLayerConverter.convertVisualId = function (apiVisualid) { - var result = { - worksheet: apiVisualid.worksheet, - dashboard: apiVisualid.dashboard, - storyboard: apiVisualid.storyboard, - storyPointId: apiVisualid.storyPointID, - flipboardZoneId: apiVisualid.flipboardZoneID - }; - return result; - }; - ApiToPresLayerConverter.convertVisualIdToWorksheet = function (apiVisualId) { - return apiVisualId.worksheet; - }; - ApiToPresLayerConverter.convertVisualIdToDashboard = function (apiVisualId) { - return apiVisualId.dashboard || ''; - }; - ApiToPresLayerConverter.convertFilterValues = function (filterValues) { - if (filterValues.length === 0) { - // platform code expects an empty string for clearing filter values - return ['']; - } - return filterValues; - }; - ApiToPresLayerConverter.convertFilterType = function (filterUpdateType) { - return EnumMappings_1.ApiToPresLayerEnumMappings.filterUpdateType.convert(filterUpdateType); - }; - ApiToPresLayerConverter.ConvertNullOption = function (nullOption) { - return EnumMappings_1.ApiToPresLayerEnumMappings.nullOption.convert(nullOption); - }; - return ApiToPresLayerConverter; - }()); - exports.ApiToPresLayerConverter = ApiToPresLayerConverter; - - -/***/ }, -/* 27 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(4); - var Enums_1 = __webpack_require__(22); - var EnumMappings_1 = __webpack_require__(21); - var PresLayerToApiConverter_1 = __webpack_require__(17); - var FiltersConverter = (function () { - function FiltersConverter() { - } - FiltersConverter.convertFiltersPresModel = function (filterPms) { - var filters = []; - filterPms.forEach(function (filterPm) { - switch (filterPm.filterType) { - case Enums_1.FilterType.FLTR_Categorical: { - filters.push(FiltersConverter.convertCategoricalFilterPresModel(filterPm)); - break; - } - case Enums_1.FilterType.FLTR_Quantitative: { - filters.push(FiltersConverter.convertQuantitativeFilterPresModel(filterPm)); - break; - } - case Enums_1.FilterType.FLTR_RelativeDate: { - filters.push(FiltersConverter.convertRelativeDateFilterPresModel(filterPm)); - break; - } - default: - return; - } - }); - return filters; - }; - FiltersConverter.convertCategoricalFilterPresModel = function (filterPm) { - var selectedValues = filterPm.categoricalFilterInfo.captionedFilterValueList.map(function (filterValue) { - return FiltersConverter.convertFilterValuePresModel(filterValue); - }); - var filter = { - values: selectedValues, - isExclude: filterPm.categoricalFilterInfo.exclude, - filterType: api_internal_contract_1.FilterType.Categorical, - fieldCaption: filterPm.fieldCaption, - visualId: PresLayerToApiConverter_1.PresLayerToApiConverter.convertVisualId(filterPm.visualIdPresModel) - }; - return filter; - }; - FiltersConverter.convertQuantitativeFilterPresModel = function (filterPm) { - var minValue = FiltersConverter.convertFilterValuePresModel(filterPm.quantitativeFilterInfo.captionedRangeMin); - var maxValue = FiltersConverter.convertFilterValuePresModel(filterPm.quantitativeFilterInfo.captionedRangeMax); - var filter = { - filterType: api_internal_contract_1.FilterType.Range, - fieldCaption: filterPm.fieldCaption, - visualId: PresLayerToApiConverter_1.PresLayerToApiConverter.convertVisualId(filterPm.visualIdPresModel), - min: minValue, - max: maxValue, - includeNullValues: FiltersConverter.convertIncludedNullValues(filterPm.quantitativeFilterInfo.included) - }; - return filter; - }; - FiltersConverter.convertRelativeDateFilterPresModel = function (filterPm) { - var anchorDateValue = FiltersConverter.convertFilterValuePresModel(filterPm.relativeDateFilterInfo.captionedAnchorDate); - var filter = { - filterType: api_internal_contract_1.FilterType.RelativeDate, - fieldCaption: filterPm.fieldCaption, - visualId: PresLayerToApiConverter_1.PresLayerToApiConverter.convertVisualId(filterPm.visualIdPresModel), - anchorDate: anchorDateValue, - periodType: EnumMappings_1.PresLayerToApiEnumMappings.dateStepPeriod.convert(filterPm.relativeDateFilterInfo.datePeriodType), - rangeType: EnumMappings_1.PresLayerToApiEnumMappings.dateRangeType.convert(filterPm.relativeDateFilterInfo.dateRangeType), - rangeN: filterPm.relativeDateFilterInfo.rangeN - }; - return filter; - }; - FiltersConverter.convertFilterValuePresModel = function (dvPM) { - /*tslint:disable-next-line:no-any */ - var value; - switch (dvPM.dataType) { - case Enums_1.DataType.DT_BOOLEAN: { - value = Boolean(dvPM.dataValueStr); - break; - } - case Enums_1.DataType.DT_DATE: { - value = new Date(dvPM.dataValueStr); - break; - } - case Enums_1.DataType.DT_DATETIME: { - value = new Date(dvPM.dataValueStr); - break; - } - case Enums_1.DataType.DT_INTEGER: { - value = Number.parseInt(dvPM.dataValueStr); - break; - } - case Enums_1.DataType.DT_REAL: { - value = Number.parseFloat(dvPM.dataValueStr); - break; - } - // default to string - default: { - value = dvPM.dataValueStr; - break; - } - } - return { - value: value, - // TODO: no easy way of getting back aliased value from platform, will need to investigate further - aliasedValue: '', - formattedValue: dvPM.dataValueDisplayString - }; - }; - FiltersConverter.convertIncludedNullValues = function (includeNull) { - return (includeNull === Enums_1.FiltersQuantitativeIncludedValues.InRangeOrNull || - includeNull === Enums_1.FiltersQuantitativeIncludedValues.All || - includeNull === Enums_1.FiltersQuantitativeIncludedValues.Null); - }; - return FiltersConverter; - }()); - exports.FiltersConverter = FiltersConverter; - - -/***/ }, -/* 28 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Simple registry class which creates a mapping based on two keys. - * - * @export - * @class MappingRegistry - * @template TInputEnumType - * @template TOutputEnumType - * @template TMappingStorageType - */ - var MappingRegistry = (function () { - function MappingRegistry() { - this._registry = {}; - } - MappingRegistry.prototype.has = function (inputType, outputType) { - var key = this.makeKey(inputType, outputType); - if (!this._registry.hasOwnProperty(key)) { - return false; - } - if (!this._registry[key]) { - return false; - } - return true; - }; - MappingRegistry.prototype.get = function (inputType, outputType) { - if (!this.has(inputType, outputType)) { - throw new Error('Missing requested mapping: ' + inputType + ' to ' + outputType); - } - var key = this.makeKey(inputType, outputType); - return this._registry[key]; - }; - MappingRegistry.prototype.addRegistration = function (inputType, outputType, storageItem) { - var key = this.makeKey(inputType, outputType); - // Add this item - this._registry[key] = storageItem; - }; - /** - * Combines the two keys into a unique string - * - * @private - * @param {TInputEnumType} inputType - * @param {TOutputEnumType} outputType - * @returns {string} - * @memberof MappingRegistry - */ - MappingRegistry.prototype.makeKey = function (inputType, outputType) { - var keyObj = { input: inputType, output: outputType }; - return JSON.stringify(keyObj); - }; - return MappingRegistry; - }()); - exports.MappingRegistry = MappingRegistry; - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(4); - var EnumMappings_1 = __webpack_require__(21); - /** - * Contains logic for converting Parameter models into their equivalent Api versions - */ - var ParametersDataConverter = (function () { - function ParametersDataConverter() { - } - ParametersDataConverter.convertParameterList = function (parameters) { - return parameters.map(ParametersDataConverter.convertParameter); - }; - // Converts a single parameter. - // Rough port of https://opengrok/source/xref/dev_nessie/workgroup/vqlweb/scriptsharp/src/UI/Api/ApiParameterHandler.cs#95 - ParametersDataConverter.convertParameter = function (param) { - var currentValue = ParametersDataConverter.convertAliasedDataValue(param.valueAlias, param.formattedValue); - var allowableValuesType = EnumMappings_1.PresLayerToApiEnumMappings.parameterTypesDomainType.convert(param.parameterDomainType); - var result = { - name: param.fieldCaption, - fieldName: param.parameterName, - dataType: EnumMappings_1.PresLayerToApiEnumMappings.dataType.convert(param.dataType), - currentValue: currentValue, - allowableValuesType: allowableValuesType - }; - if (allowableValuesType === api_internal_contract_1.DomainRestrictionType.List) { - var allowableValues = new Array(); - for (var i = 0; i < param.valuesAliases.length; i++) { - var adv = param.valuesAliases[i]; - var formattedValue = param.formattedValues[i]; - allowableValues.push(ParametersDataConverter.convertAliasedDataValue(adv, formattedValue)); - } - result.allowableValues = allowableValues; - } - else if (allowableValuesType === api_internal_contract_1.DomainRestrictionType.Range) { - result.minValue = ParametersDataConverter.makeDataValue(param.valueMin, param.formattedMin); - result.maxValue = ParametersDataConverter.makeDataValue(param.valueMax, param.formattedMax); - result.stepSize = ParametersDataConverter.convertNumber(result.dataType, param.valueInc); - result.dateStepPeriod = EnumMappings_1.PresLayerToApiEnumMappings.dateStepPeriod.convert(param.datePeriodType, false); - } - else { - // Nothing to do in the case that all values are allowed - } - return result; - }; - ParametersDataConverter.convertNumber = function (dataType, value) { - if (value) { - if (dataType === api_internal_contract_1.DataType.Int || dataType === api_internal_contract_1.DataType.Date || dataType === api_internal_contract_1.DataType.DateTime) { - return parseInt(value, 10); - } - else if (dataType === api_internal_contract_1.DataType.Float) { - return parseFloat(value); - } - } - return undefined; - }; - /*tslint:disable-next-line:no-any */ - ParametersDataConverter.makeDataValue = function (value, formattedValue, alias) { - var result = { - value: value, - formattedValue: formattedValue, - aliasedValue: alias || formattedValue - }; - return result; - }; - /*tslint:disable-next-line:no-any */ - ParametersDataConverter.convertAliasedDataValue = function (adv, formattedValue) { - // AliasedDataValues are serialized in kind of a strange way from the platform code. They are output - // as an array of 2 values. The first is the actual value, the second is the alias. See AliasedDataValueSerializer::ToSerializer - if (!adv || !(adv instanceof Array)) { - throw new Error('Invalid aliased data value'); - } - var value = adv[0]; - var alias = adv.length < 2 ? undefined : adv[1]; - return ParametersDataConverter.makeDataValue(value, formattedValue, alias); - }; - return ParametersDataConverter; - }()); - exports.ParametersDataConverter = ParametersDataConverter; - - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export(__webpack_require__(5)); - __export(__webpack_require__(6)); - __export(__webpack_require__(7)); - __export(__webpack_require__(8)); - __export(__webpack_require__(9)); - - -/***/ }, -/* 31 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Implemenation of the PresentationLayer contract with a bit of extra information - * added to work with add-ins. Most work is delegated down to the interopObject which - * communicates directly with the c++ layer via QWebChannel - * - * @class AddInApiPresLayerImpl - * @implements {contract.PresentationLayer} - */ - var AddInApiPresLayerImpl = (function () { - function AddInApiPresLayerImpl(_interopObject) { - var _this = this; - this._interopObject = _interopObject; - this._notificationHandlers = {}; - if (_interopObject && _interopObject.OnNotification) { - _interopObject.OnNotification.connect(function (notification) { - _this.dispatchNotification(notification); - }); - } - } - Object.defineProperty(AddInApiPresLayerImpl.prototype, "AddInInstanceInfo", { - /** - * Gets the instance info for this particular add-in from the c++ code - * - * @readonly - * @type {AddInInstancePresModel} - * @memberof AddInApiPresLayerImpl - */ - get: function () { - return this._interopObject.addInInstanceInfo; - }, - enumerable: true, - configurable: true - }); - /** - * Invokes a command using the pres-layer interop - * - * @template T - The expected return type - * @param {string} commandNamespace - * @param {string} commandName - * @param {object} params - * @returns {Promise} - * @memberof AddInApiPresLayerImpl - */ - AddInApiPresLayerImpl.prototype.invokeCommand = function (commandNamespace, commandName, params) { - var _this = this; - return new Promise(function (resolve, reject) { - try { - commandNamespace = commandNamespace || 'tabdoc'; - _this._interopObject.ExecuteCommand(commandNamespace, commandName, params, function (response) { - if (!response.Success) { - var msg = 'ExecuteCommand failed, with result:' + JSON.stringify(response.Result); - reject(new Error(msg)); - } - else { - resolve(response.Result); - } - }); - } - catch (err) { - reject(err); - } - }); - }; - // This implementation will registration a single instance of a notification handler with the Native C++ object, - // and implement multi-dispatch to the web objects from h.ere - AddInApiPresLayerImpl.prototype.registerNotificationHandler = function (eventId, handler) { - var _this = this; - if (eventId in this._notificationHandlers) { - this._notificationHandlers[eventId].push(handler); - } - else { - this._notificationHandlers[eventId] = [handler]; - try { - this._interopObject.RegisterNotificationHandler(eventId); - } - catch (err) { - // console.log('RegisterNotificationHandler failed: ' + err); - } - } - return function () { return _this.removeNotificationHandler(eventId, handler); }; - }; - AddInApiPresLayerImpl.prototype.removeNotificationHandler = function (eventId, handler) { - var handlerList = this._notificationHandlers[eventId]; - if (!handlerList) { - return; - } - var foundIndex = handlerList.indexOf(handler); - if (foundIndex >= 0) { - handlerList.splice(foundIndex, 1); - } - if (handlerList.length === 0) { - delete this._notificationHandlers[eventId]; - } - }; - AddInApiPresLayerImpl.prototype.dispatchNotification = function (notification) { - // console.log('received notification: ' + JSON.stringify(notification)); - var eventId = notification.eventId; - var presModel = notification.presModel; - if (eventId in this._notificationHandlers) { - var handlers = this._notificationHandlers[eventId]; - for (var i = handlers.length - 1; i >= 0; i--) { - handlers[i](presModel); - } - } - }; - return AddInApiPresLayerImpl; - }()); - exports.AddInApiPresLayerImpl = AddInApiPresLayerImpl; - - -/***/ }, -/* 32 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Implementation of the InternalApiDispatcher for desktop. Since this will run in the same - * frame as the ApiEventHandler, this class mostly just marshalls down to that implementation - * - * @export - * @class DesktopApiDispatcher - * @implements {InternalApiDispatcher} - */ - var DesktopApiDispatcher = (function () { - function DesktopApiDispatcher(_apiEventHandler) { - var _this = this; - this._apiEventHandler = _apiEventHandler; - this._notificationHandlers = []; - this._apiEventHandler.setEventHandler(function (notificationId, model) { - _this._notificationHandlers.forEach(function (handler) { return handler({ - notificationId: notificationId, - data: model - }); }); - }); - } - DesktopApiDispatcher.prototype.setVersionNumber = function (versionNumber) { - this._apiEventHandler.setVersionNumber(versionNumber); - }; - DesktopApiDispatcher.prototype.execute = function (verb, parameters) { - // Just pass this right through to the ApiEventHandler - return this._apiEventHandler.execute(verb, parameters); - }; - DesktopApiDispatcher.prototype.registerNotificationHandler = function (handler) { - this._notificationHandlers.push(handler); - }; - DesktopApiDispatcher.prototype.unregisterNotificationHandler = function (handler) { - this._notificationHandlers = this._notificationHandlers.filter(function (h) { return h !== handler; }); - }; - return DesktopApiDispatcher; - }()); - exports.DesktopApiDispatcher = DesktopApiDispatcher; - - -/***/ }, -/* 33 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - __webpack_require__(34); - var qwebchannel_1 = __webpack_require__(35); - /** - * Initializes the QWebChannel contract and returns the pres layer interop object - * - * @returns {Promise} - */ - function initializeWebChannelPresLayer() { - return new Promise(function (resolve, reject) { - try { - // tslint:disable-next-line - new qwebchannel_1.QWebChannel(qt.webChannelTransport, function (channel) { - // tslint:disable-next-line - var addInPresLayer = channel.objects['addInPresLayer']; - resolve(addInPresLayer); - }); - } - catch (e) { - reject(e); - } - }); - } - exports.initializeWebChannelPresLayer = initializeWebChannelPresLayer; - - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - /**************************************************************************** - ** - ** Copyright (C) 2015 The Qt Company Ltd. - ** Copyright (C) 2014 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Milian Wolff - ** Contact: http://www.qt.io/licensing/ - ** - ** This file is part of the QtWebChannel module of the Qt Toolkit. - ** - ** $QT_BEGIN_LICENSE:LGPL21$ - ** Commercial License Usage - ** Licensees holding valid commercial Qt licenses may use this file in - ** accordance with the commercial license agreement provided with the - ** Software or, alternatively, in accordance with the terms contained in - ** a written agreement between you and The Qt Company. For licensing terms - ** and conditions see http://www.qt.io/terms-conditions. For further - ** information use the contact form at http://www.qt.io/contact-us. - ** - ** GNU Lesser General Public License Usage - ** Alternatively, this file may be used under the terms of the GNU Lesser - ** General Public License version 2.1 or version 3 as published by the Free - ** Software Foundation and appearing in the file LICENSE.LGPLv21 and - ** LICENSE.LGPLv3 included in the packaging of this file. Please review the - ** following information to ensure the GNU Lesser General Public License - ** requirements will be met: https://www.gnu.org/licenses/lgpl.html and - ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. - ** - ** As a special exception, The Qt Company gives you certain additional - ** rights. These rights are described in The Qt Company LGPL Exception - ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. - ** - ** $QT_END_LICENSE$ - ** - ****************************************************************************/ - - "use strict"; - - var QWebChannelMessageTypes = { - signal: 1, - propertyUpdate: 2, - init: 3, - idle: 4, - debug: 5, - invokeMethod: 6, - connectToSignal: 7, - disconnectFromSignal: 8, - setProperty: 9, - response: 10, - }; - - var QWebChannel = function(transport, initCallback) - { - if (typeof transport !== "object" || typeof transport.send !== "function") { - console.error("The QWebChannel expects a transport object with a send function and onmessage callback property." + - " Given is: transport: " + typeof(transport) + ", transport.send: " + typeof(transport.send)); - return; - } - - var channel = this; - this.transport = transport; - - this.send = function(data) - { - if (typeof(data) !== "string") { - data = JSON.stringify(data); - } - channel.transport.send(data); - } - - this.transport.onmessage = function(message) - { - var data = message.data; - if (typeof data === "string") { - data = JSON.parse(data); - } - switch (data.type) { - case QWebChannelMessageTypes.signal: - channel.handleSignal(data); - break; - case QWebChannelMessageTypes.response: - channel.handleResponse(data); - break; - case QWebChannelMessageTypes.propertyUpdate: - channel.handlePropertyUpdate(data); - break; - default: - console.error("invalid message received:", message.data); - break; - } - } - - this.execCallbacks = {}; - this.execId = 0; - this.exec = function(data, callback) - { - if (!callback) { - // if no callback is given, send directly - channel.send(data); - return; - } - if (channel.execId === Number.MAX_VALUE) { - // wrap - channel.execId = Number.MIN_VALUE; - } - if (data.hasOwnProperty("id")) { - console.error("Cannot exec message with property id: " + JSON.stringify(data)); - return; - } - data.id = channel.execId++; - channel.execCallbacks[data.id] = callback; - channel.send(data); - }; - - this.objects = {}; - - this.handleSignal = function(message) - { - var object = channel.objects[message.object]; - if (object) { - object.signalEmitted(message.signal, message.args); - } else { - console.warn("Unhandled signal: " + message.object + "::" + message.signal); - } - } - - this.handleResponse = function(message) - { - if (!message.hasOwnProperty("id")) { - console.error("Invalid response message received: ", JSON.stringify(message)); - return; - } - channel.execCallbacks[message.id](message.data); - delete channel.execCallbacks[message.id]; - } - - this.handlePropertyUpdate = function(message) - { - for (var i in message.data) { - var data = message.data[i]; - var object = channel.objects[data.object]; - if (object) { - object.propertyUpdate(data.signals, data.properties); - } else { - console.warn("Unhandled property update: " + data.object + "::" + data.signal); - } - } - channel.exec({type: QWebChannelMessageTypes.idle}); - } - - this.debug = function(message) - { - channel.send({type: QWebChannelMessageTypes.debug, data: message}); - }; - - channel.exec({type: QWebChannelMessageTypes.init}, function(data) { - for (var objectName in data) { - var object = new QObject(objectName, data[objectName], channel); - } - // now unwrap properties, which might reference other registered objects - for (var objectName in channel.objects) { - channel.objects[objectName].unwrapProperties(); - } - if (initCallback) { - initCallback(channel); - } - channel.exec({type: QWebChannelMessageTypes.idle}); - }); - }; - - function QObject(name, data, webChannel) - { - this.__id__ = name; - webChannel.objects[name] = this; - - // List of callbacks that get invoked upon signal emission - this.__objectSignals__ = {}; - - // Cache of all properties, updated when a notify signal is emitted - this.__propertyCache__ = {}; - - var object = this; - - // ---------------------------------------------------------------------- - - this.unwrapQObject = function(response) - { - if (response instanceof Array) { - // support list of objects - var ret = new Array(response.length); - for (var i = 0; i < response.length; ++i) { - ret[i] = object.unwrapQObject(response[i]); - } - return ret; - } - if (!response - || !response["__QObject*__"] - || response["id"] === undefined) { - return response; - } - - var objectId = response.id; - if (webChannel.objects[objectId]) - return webChannel.objects[objectId]; - - if (!response.data) { - console.error("Cannot unwrap unknown QObject " + objectId + " without data."); - return; - } - - var qObject = new QObject( objectId, response.data, webChannel ); - qObject.destroyed.connect(function() { - if (webChannel.objects[objectId] === qObject) { - delete webChannel.objects[objectId]; - // reset the now deleted QObject to an empty {} object - // just assigning {} though would not have the desired effect, but the - // below also ensures all external references will see the empty map - // NOTE: this detour is necessary to workaround QTBUG-40021 - var propertyNames = []; - for (var propertyName in qObject) { - propertyNames.push(propertyName); - } - for (var idx in propertyNames) { - delete qObject[propertyNames[idx]]; - } - } - }); - // here we are already initialized, and thus must directly unwrap the properties - qObject.unwrapProperties(); - return qObject; - } - - this.unwrapProperties = function() - { - for (var propertyIdx in object.__propertyCache__) { - object.__propertyCache__[propertyIdx] = object.unwrapQObject(object.__propertyCache__[propertyIdx]); - } - } - - function addSignal(signalData, isPropertyNotifySignal) - { - var signalName = signalData[0]; - var signalIndex = signalData[1]; - object[signalName] = { - connect: function(callback) { - if (typeof(callback) !== "function") { - console.error("Bad callback given to connect to signal " + signalName); - return; - } - - object.__objectSignals__[signalIndex] = object.__objectSignals__[signalIndex] || []; - object.__objectSignals__[signalIndex].push(callback); - - if (!isPropertyNotifySignal && signalName !== "destroyed") { - // only required for "pure" signals, handled separately for properties in propertyUpdate - // also note that we always get notified about the destroyed signal - webChannel.exec({ - type: QWebChannelMessageTypes.connectToSignal, - object: object.__id__, - signal: signalIndex - }); - } - }, - disconnect: function(callback) { - if (typeof(callback) !== "function") { - console.error("Bad callback given to disconnect from signal " + signalName); - return; - } - object.__objectSignals__[signalIndex] = object.__objectSignals__[signalIndex] || []; - var idx = object.__objectSignals__[signalIndex].indexOf(callback); - if (idx === -1) { - console.error("Cannot find connection of signal " + signalName + " to " + callback.name); - return; - } - object.__objectSignals__[signalIndex].splice(idx, 1); - if (!isPropertyNotifySignal && object.__objectSignals__[signalIndex].length === 0) { - // only required for "pure" signals, handled separately for properties in propertyUpdate - webChannel.exec({ - type: QWebChannelMessageTypes.disconnectFromSignal, - object: object.__id__, - signal: signalIndex - }); - } - } - }; - } - - /** - * Invokes all callbacks for the given signalname. Also works for property notify callbacks. - */ - function invokeSignalCallbacks(signalName, signalArgs) - { - var connections = object.__objectSignals__[signalName]; - if (connections) { - connections.forEach(function(callback) { - callback.apply(callback, signalArgs); - }); - } - } - - this.propertyUpdate = function(signals, propertyMap) - { - // update property cache - for (var propertyIndex in propertyMap) { - var propertyValue = propertyMap[propertyIndex]; - object.__propertyCache__[propertyIndex] = propertyValue; - } - - for (var signalName in signals) { - // Invoke all callbacks, as signalEmitted() does not. This ensures the - // property cache is updated before the callbacks are invoked. - invokeSignalCallbacks(signalName, signals[signalName]); - } - } - - this.signalEmitted = function(signalName, signalArgs) - { - invokeSignalCallbacks(signalName, signalArgs); - } - - function addMethod(methodData) - { - var methodName = methodData[0]; - var methodIdx = methodData[1]; - object[methodName] = function() { - var args = []; - var callback; - for (var i = 0; i < arguments.length; ++i) { - if (typeof arguments[i] === "function") - callback = arguments[i]; - else - args.push(arguments[i]); - } - - webChannel.exec({ - "type": QWebChannelMessageTypes.invokeMethod, - "object": object.__id__, - "method": methodIdx, - "args": args - }, function(response) { - if (response !== undefined) { - var result = object.unwrapQObject(response); - if (callback) { - (callback)(result); - } - } - }); - }; - } - - function bindGetterSetter(propertyInfo) - { - var propertyIndex = propertyInfo[0]; - var propertyName = propertyInfo[1]; - var notifySignalData = propertyInfo[2]; - // initialize property cache with current value - // NOTE: if this is an object, it is not directly unwrapped as it might - // reference other QObject that we do not know yet - object.__propertyCache__[propertyIndex] = propertyInfo[3]; - - if (notifySignalData) { - if (notifySignalData[0] === 1) { - // signal name is optimized away, reconstruct the actual name - notifySignalData[0] = propertyName + "Changed"; - } - addSignal(notifySignalData, true); - } - - Object.defineProperty(object, propertyName, { - get: function () { - var propertyValue = object.__propertyCache__[propertyIndex]; - if (propertyValue === undefined) { - // This shouldn't happen - console.warn("Undefined value in property cache for property \"" + propertyName + "\" in object " + object.__id__); - } - - return propertyValue; - }, - set: function(value) { - if (value === undefined) { - console.warn("Property setter for " + propertyName + " called with undefined value!"); - return; - } - object.__propertyCache__[propertyIndex] = value; - webChannel.exec({ - "type": QWebChannelMessageTypes.setProperty, - "object": object.__id__, - "property": propertyIndex, - "value": value - }); - } - }); - - } - - // ---------------------------------------------------------------------- - - data.methods.forEach(addMethod); - - data.properties.forEach(bindGetterSetter); - - data.signals.forEach(function(signal) { addSignal(signal, false); }); - - for (var name in data.enums) { - object[name] = data.enums[name]; - } - } - - //required for use with nodejs - if (true) { - module.exports = { - QWebChannel: QWebChannel - }; - } - - -/***/ } -/******/ ]) -}); -; -//# sourceMappingURL=frelard-desktop-bootstrap.js.map -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); - else if(typeof define === 'function' && define.amd) - define([], factory); - else if(typeof exports === 'object') - exports["tableau"] = factory(); - else - root["tableau"] = factory(); -})(this, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; -/******/ -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.loaded = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = "/dist/"; -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - Object.defineProperty(exports, "__esModule", { value: true }); - // Due to the way we configured webpack, we should be exporting things which will be under - // a global variable called "tableau". Export everything we want to be visible under tableau - // from this file. - var AddInImpl_1 = __webpack_require__(1); - var AddIn_1 = __webpack_require__(64); - var addInImpl = new AddInImpl_1.AddInImpl(); - exports.addIn = new AddIn_1.AddIn(addInImpl); - // Export Enums - // These show up under the tableau object. I.e. tableau.AddInContext.Server - var api_external_contract_1 = __webpack_require__(52); - exports.AddInContext = api_external_contract_1.AddInContext; - exports.AddInMode = api_external_contract_1.AddInMode; - exports.AnalyticsObjectType = api_external_contract_1.AnalyticsObjectType; - exports.ColumnType = api_external_contract_1.ColumnType; - exports.DashboardObjectType = api_external_contract_1.DashboardObjectType; - exports.DataType = api_external_contract_1.DataType; - exports.DateRangeType = api_external_contract_1.DateRangeType; - exports.DialogEventType = api_external_contract_1.DialogEventType; - exports.EncodingType = api_external_contract_1.EncodingType; - exports.ErrorCodes = api_external_contract_1.ErrorCodes; - exports.FieldAggregationType = api_external_contract_1.FieldAggregationType; - exports.FieldRoleType = api_external_contract_1.FieldRoleType; - exports.FilterType = api_external_contract_1.FilterType; - exports.FilterUpdateType = api_external_contract_1.FilterUpdateType; - exports.FilterNullOption = api_external_contract_1.FilterNullOption; - exports.MarkType = api_external_contract_1.MarkType; - exports.ParameterValueType = api_external_contract_1.ParameterValueType; - exports.PeriodType = api_external_contract_1.PeriodType; - exports.QuickTableCalcType = api_external_contract_1.QuickTableCalcType; - exports.SelectionUpdateType = api_external_contract_1.SelectionUpdateType; - exports.SheetType = api_external_contract_1.SheetType; - exports.SortDirection = api_external_contract_1.SortDirection; - exports.TableauEventType = api_external_contract_1.TableauEventType; - exports.TrendLineModelType = api_external_contract_1.TrendLineModelType; - - -/***/ }, -/* 1 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(2); - var api_shared_1 = __webpack_require__(8); - var Dashboard_1 = __webpack_require__(42); - var DashboardContent_1 = __webpack_require__(44); - var Environment_1 = __webpack_require__(45); - var Settings_1 = __webpack_require__(46); - var RegisterAllAddInServices_1 = __webpack_require__(47); - var VersionNumber_1 = __webpack_require__(50); - var DashboardImpl_1 = __webpack_require__(51); - var SettingsImpl_1 = __webpack_require__(62); - var AddInImpl = (function () { - function AddInImpl() { - } - AddInImpl.prototype.initializeAsync = function () { - var _this = this; - if (!this._initializationPromise) { - this._initializationPromise = new Promise(function (resolve, reject) { - // First thing we want to do is check to see if there is a desktop dispatcher already registered for us - if (api_internal_contract_1.InternalApiDispatcherHolder.hasDesktopApiDispatcherPromise()) { - // Running in desktop, use this promise - var desktopDispatcherPromise = api_internal_contract_1.InternalApiDispatcherHolder.getDesktopDispatcherPromise(); - desktopDispatcherPromise.then(_this.onDispatcherReceived.bind(_this)).then(function () { resolve(); }); - } - else { - reject('Not running in desktop. Server support coming soon!'); - } - }); - } - return this._initializationPromise; - }; - AddInImpl.prototype.onDispatcherReceived = function (dispatcher) { - var _this = this; - dispatcher.setVersionNumber(VersionNumber_1.VersionNumber.Instance); - // Call to register all the services which will use the newly initialized dispatcher - api_shared_1.registerAllSharedServices(dispatcher); - RegisterAllAddInServices_1.registerAllAddInServices(dispatcher); - // Get the initialization service and initialize this add-in - var initializationService = api_shared_1.ApiServiceRegistry.instance.getService("InitializationService" /* InitializationService */); - return initializationService.initializeDashboardAddInAsync().then(function (result) { - if (!result.addInInstance.locator.dashboardPath) { - throw new Error('DashboardPath is undefined'); - } - _this.dashboardContent = _this.initializeDashboardContent(result.addinDashboardInfo, result.addInInstance.locator.dashboardPath); - _this.environment = new Environment_1.Environment(result.addInEnvironment); - _this.settings = _this.initializeSettings(result.addInSettingsInfo); - }); - }; - AddInImpl.prototype.initializeDashboardContent = function (info, sheetPath) { - var dashboardImpl = new DashboardImpl_1.DashboardImpl(info, sheetPath); - var dashboard = new Dashboard_1.Dashboard(dashboardImpl); - return new DashboardContent_1.DashboardContent(dashboard); - }; - AddInImpl.prototype.initializeSettings = function (settingsInfo) { - var settingsImpl = new SettingsImpl_1.SettingsImpl(settingsInfo); - return new Settings_1.Settings(settingsImpl); - }; - return AddInImpl; - }()); - exports.AddInImpl = AddInImpl; - - -/***/ }, -/* 2 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export(__webpack_require__(3)); - __export(__webpack_require__(4)); - __export(__webpack_require__(5)); - __export(__webpack_require__(6)); - __export(__webpack_require__(7)); - - -/***/ }, -/* 3 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var AddInContext; - (function (AddInContext) { - AddInContext["Desktop"] = "desktop"; - AddInContext["Server"] = "server"; - AddInContext["Unknown"] = "unknown"; - })(AddInContext = exports.AddInContext || (exports.AddInContext = {})); - var AddInMode; - (function (AddInMode) { - AddInMode["Authoring"] = "authoring"; - AddInMode["Viewing"] = "viewing"; - AddInMode["Unknown"] = "unknown"; - })(AddInMode = exports.AddInMode || (exports.AddInMode = {})); - var ColumnType; - (function (ColumnType) { - ColumnType["Discrete"] = "discrete"; - ColumnType["Continuous"] = "continuous"; - })(ColumnType = exports.ColumnType || (exports.ColumnType = {})); - var DashboardObjectType; - (function (DashboardObjectType) { - DashboardObjectType["Blank"] = "blank"; - DashboardObjectType["Worksheet"] = "worksheet"; - DashboardObjectType["QuickFilter"] = "quick-filter"; - DashboardObjectType["ParameterControl"] = "parameter-control"; - DashboardObjectType["PageFilter"] = "page-filter"; - DashboardObjectType["Legend"] = "legend"; - DashboardObjectType["Title"] = "title"; - DashboardObjectType["Text"] = "text"; - DashboardObjectType["Image"] = "image"; - DashboardObjectType["WebPage"] = "web-page"; - DashboardObjectType["AddIn"] = "addin"; - })(DashboardObjectType = exports.DashboardObjectType || (exports.DashboardObjectType = {})); - var DataType; - (function (DataType) { - DataType["String"] = "string"; - DataType["Int"] = "int"; - DataType["Float"] = "float"; - DataType["Bool"] = "bool"; - DataType["Date"] = "date"; - DataType["DateTime"] = "date-time"; - DataType["Spatial"] = "spatial"; - })(DataType = exports.DataType || (exports.DataType = {})); - var EncodedDataType; - (function (EncodedDataType) { - EncodedDataType["Number"] = "number"; - EncodedDataType["String"] = "string"; - EncodedDataType["Date"] = "date"; - EncodedDataType["Boolean"] = "boolean"; - })(EncodedDataType = exports.EncodedDataType || (exports.EncodedDataType = {})); - var ErrorCode; - (function (ErrorCode) { - ErrorCode["ServerError"] = "server-error"; - ErrorCode["InvalidAggregationFieldName"] = "invalid-aggregation-field-name"; - ErrorCode["InvalidFilterFieldName"] = "invalid-filter-fieldname"; - ErrorCode["InvalidFilterFieldValue"] = "invalid-filter-field-value"; - })(ErrorCode = exports.ErrorCode || (exports.ErrorCode = {})); - var FieldAggregationType; - (function (FieldAggregationType) { - FieldAggregationType["Sum"] = "sum"; - FieldAggregationType["Avg"] = "avg"; - FieldAggregationType["Min"] = "min"; - FieldAggregationType["Max"] = "max"; - FieldAggregationType["Stdev"] = "stdev"; - FieldAggregationType["Stdevp"] = "stdevp"; - FieldAggregationType["Var"] = "var"; - FieldAggregationType["Varp"] = "varp"; - FieldAggregationType["Count"] = "count"; - FieldAggregationType["Countd"] = "countd"; - FieldAggregationType["Median"] = "median"; - FieldAggregationType["Attr"] = "attr"; - FieldAggregationType["None"] = "none"; - FieldAggregationType["Year"] = "year"; - FieldAggregationType["Qtr"] = "qtr"; - FieldAggregationType["Month"] = "month"; - FieldAggregationType["Day"] = "day"; - FieldAggregationType["Hour"] = "hour"; - FieldAggregationType["Minute"] = "minute"; - FieldAggregationType["Second"] = "second"; - FieldAggregationType["Week"] = "week"; - FieldAggregationType["Weekday"] = "weekday"; - FieldAggregationType["MonthYear"] = "month-year"; - FieldAggregationType["Mdy"] = "mdy"; - FieldAggregationType["End"] = "end"; - FieldAggregationType["TruncYear"] = "trunc-year"; - FieldAggregationType["TruncQtr"] = "trunc-qtr"; - FieldAggregationType["TruncMonth"] = "trunc-month"; - FieldAggregationType["TruncWeek"] = "trunc-week"; - FieldAggregationType["TruncDay"] = "trunc-day"; - FieldAggregationType["TruncHour"] = "trunc-hour"; - FieldAggregationType["TruncMinute"] = "trunc-minute"; - FieldAggregationType["TruncSecond"] = "trunc-second"; - FieldAggregationType["Quart1"] = "quart1"; - FieldAggregationType["Quart3"] = "quart3"; - FieldAggregationType["Skewness"] = "skewness"; - FieldAggregationType["Kurtosis"] = "kurtosis"; - FieldAggregationType["InOut"] = "in-out"; - FieldAggregationType["User"] = "user"; - })(FieldAggregationType = exports.FieldAggregationType || (exports.FieldAggregationType = {})); - var FieldRoleType; - (function (FieldRoleType) { - FieldRoleType["Dimension"] = "dimension"; - FieldRoleType["Measure"] = "measure"; - FieldRoleType["Unknown"] = "unknown"; - })(FieldRoleType = exports.FieldRoleType || (exports.FieldRoleType = {})); - /** - * The different update types for applying filter. - */ - var FilterUpdateType; - (function (FilterUpdateType) { - FilterUpdateType["Add"] = "add"; - FilterUpdateType["All"] = "all"; - FilterUpdateType["Replace"] = "replace"; - FilterUpdateType["Remove"] = "remove"; - })(FilterUpdateType = exports.FilterUpdateType || (exports.FilterUpdateType = {})); - var SheetType; - (function (SheetType) { - SheetType["Dashboard"] = "dashboard"; - SheetType["Story"] = "story"; - SheetType["Worksheet"] = "worksheet"; - SheetType["Addin"] = "addin"; - })(SheetType = exports.SheetType || (exports.SheetType = {})); - var DomainRestrictionType; - (function (DomainRestrictionType) { - DomainRestrictionType["All"] = "all"; - DomainRestrictionType["List"] = "list"; - DomainRestrictionType["Range"] = "range"; - })(DomainRestrictionType = exports.DomainRestrictionType || (exports.DomainRestrictionType = {})); - var DateStepPeriod; - (function (DateStepPeriod) { - DateStepPeriod["Years"] = "years"; - DateStepPeriod["Quarters"] = "quarters"; - DateStepPeriod["Months"] = "months"; - DateStepPeriod["Weeks"] = "weeks"; - DateStepPeriod["Days"] = "days"; - DateStepPeriod["Hours"] = "hours"; - DateStepPeriod["Minutes"] = "minutes"; - DateStepPeriod["Seconds"] = "seconds"; - })(DateStepPeriod = exports.DateStepPeriod || (exports.DateStepPeriod = {})); - /** - * The option for specifying which values to include for filtering. - */ - var FilterNullOption; - (function (FilterNullOption) { - FilterNullOption["NullValues"] = "nullvalues"; - FilterNullOption["NonNullValues"] = "nonnullvalues"; - FilterNullOption["AllValues"] = "allvalues"; - })(FilterNullOption = exports.FilterNullOption || (exports.FilterNullOption = {})); - /** - * Internal enum for specifying the selection type for select marks api. - */ - var SelectionUpdateType; - (function (SelectionUpdateType) { - SelectionUpdateType["Replace"] = "select-replace"; - SelectionUpdateType["Add"] = "select-add"; - SelectionUpdateType["Remove"] = "select-remove"; - })(SelectionUpdateType = exports.SelectionUpdateType || (exports.SelectionUpdateType = {})); - /** - * Internal enum for specifying the included values type for range selection. - */ - var QuantitativeIncludedValues; - (function (QuantitativeIncludedValues) { - QuantitativeIncludedValues["IncludeNull"] = "include-null"; - QuantitativeIncludedValues["IncludeNonNull"] = "include-non-null"; - QuantitativeIncludedValues["IncludeAll"] = "include-all"; - })(QuantitativeIncludedValues = exports.QuantitativeIncludedValues || (exports.QuantitativeIncludedValues = {})); - /** - * Type of mark for a given marks card in a viz. - */ - var MarkType; - (function (MarkType) { - MarkType["Bar"] = "bar"; - MarkType["Line"] = "line"; - MarkType["Area"] = "area"; - MarkType["Square"] = "square"; - MarkType["Circle"] = "circle"; - MarkType["Shape"] = "shape"; - MarkType["Text"] = "text"; - MarkType["Map"] = "map"; - MarkType["Pie"] = "pie"; - MarkType["GanttBar"] = "gantt-bar"; - MarkType["Polygon"] = "polygon"; - })(MarkType = exports.MarkType || (exports.MarkType = {})); - /** - * Internal enum for specifying the type of filter - */ - var FilterType; - (function (FilterType) { - FilterType["Categorical"] = "categorical"; - FilterType["Range"] = "range"; - FilterType["RelativeDate"] = "relativeDate"; - FilterType["Hierarchical"] = "hierarchical"; - })(FilterType = exports.FilterType || (exports.FilterType = {})); - /** - * Internal enum for specifying the DateRangeType of a relative date filter - */ - var DateRangeType; - (function (DateRangeType) { - /** - * Refers to the last day, week, month, etc. of the date period. - */ - DateRangeType["Last"] = "last"; - /** - * Refers to the last N days, weeks, months, etc. of the date period. - */ - DateRangeType["LastN"] = "lastN"; - /** - * Refers to the next day, week, month, etc. of the date period. - */ - DateRangeType["Next"] = "next"; - /** - * Refers to the next N days, weeks, months, etc. of the date period. - */ - DateRangeType["NextN"] = "nextN"; - /** - * Refers to the current day, week, month, etc. of the date period. - */ - DateRangeType["Current"] = "current"; - /** - * Refers to everything up to and including the current day, week, month, etc. of the date period. - */ - DateRangeType["ToDate"] = "toDate"; - })(DateRangeType = exports.DateRangeType || (exports.DateRangeType = {})); - - -/***/ }, -/* 4 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var InternalApiDispatcherHolder; - (function (InternalApiDispatcherHolder) { - function getDesktopDispatcherPromise() { - return window.__tableauDesktopDispatcher; - } - InternalApiDispatcherHolder.getDesktopDispatcherPromise = getDesktopDispatcherPromise; - function hasDesktopApiDispatcherPromise() { - return !!InternalApiDispatcherHolder.getDesktopDispatcherPromise(); - } - InternalApiDispatcherHolder.hasDesktopApiDispatcherPromise = hasDesktopApiDispatcherPromise; - function setDesktopDispatcherPromise(dispatcher) { - window.__tableauDesktopDispatcher = dispatcher; - } - InternalApiDispatcherHolder.setDesktopDispatcherPromise = setDesktopDispatcherPromise; - })(InternalApiDispatcherHolder = exports.InternalApiDispatcherHolder || (exports.InternalApiDispatcherHolder = {})); - - -/***/ }, -/* 5 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var NotificationId; - (function (NotificationId) { - NotificationId["SelectedMarksChanged"] = "selected-marks-changed"; - NotificationId["ParameterChanged"] = "parameter-changed"; - NotificationId["FilterChanged"] = "filter-changed"; - })(NotificationId = exports.NotificationId || (exports.NotificationId = {})); - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var ParameterId; - (function (ParameterId) { - ParameterId["AddInLocator"] = "add-in-locator"; - ParameterId["AddInBootstrapInfo"] = "add-in-bootstrap-info"; - ParameterId["AddInSettingsInfo"] = "add-in-settings-info"; - ParameterId["VisualId"] = "visual-id"; - ParameterId["SheetPath"] = "sheet-path"; - ParameterId["IgnoreAliases"] = "ignore-aliases"; - ParameterId["IgnoreSelection"] = "ignore-selection"; - ParameterId["IncludeAllColumns"] = "include-all-columns"; - ParameterId["MaxRows"] = "max-rows"; - ParameterId["UnderlyingDataTable"] = "underlying-data-table"; - ParameterId["UnderlyingSummaryDataTable"] = "underlying-summary-data-table"; - ParameterId["SettingsValues"] = "settings-values"; - ParameterId["SelectedData"] = "selected-data"; - ParameterId["HighlightedData"] = "highlighted-data"; - // Filter Params - ParameterId["FieldName"] = "field-name"; - ParameterId["FilterValues"] = "filter-values"; - ParameterId["FilterUpdateType"] = "filter-update-type"; - ParameterId["IsExcludeMode"] = "is-exclude"; - ParameterId["FilterRangeMin"] = "filter-range-min"; - ParameterId["FilterRangeMax"] = "filter-range-max"; - ParameterId["FilterRangeNullOption"] = "filter-range-null-option"; - ParameterId["WorksheetFilters"] = "worksheet-filters"; - ParameterId["WorksheetName"] = "worksheet-name"; - ParameterId["DashboardName"] = "dashboard"; - ParameterId["ParameterInfo"] = "parameter-info"; - ParameterId["ParameterInfos"] = "parameter-infos"; - ParameterId["ParameterCaption"] = "paremeter-caption"; - ParameterId["ParameterFieldName"] = "parameter-field-name"; - ParameterId["ParameterValue"] = "parameter-value"; - ParameterId["Selection"] = "selection"; - ParameterId["SelectionUpdateType"] = "selectionUpdateType"; - ParameterId["HierValSelectionModels"] = "hierarchicalValueSelectionModels"; - ParameterId["QuantRangeSelectionModels"] = "quantativeRangeSelectionModels"; - ParameterId["DimValSelectionModels"] = "dimensionValueSelectionModels"; - ParameterId["DataSourceId"] = "data-source-id"; - ParameterId["DataSchema"] = "data-schema"; - })(ParameterId = exports.ParameterId || (exports.ParameterId = {})); - - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - // Declare this key type and export the NotificationId to make this behave like a string enum - var VerbId; - (function (VerbId) { - VerbId["ApplyCategoricalFilter"] = "categorical-filter"; - VerbId["ApplyRangeFilter"] = "range-filter"; - VerbId["ClearFilter"] = "clear-filter"; - VerbId["InitializeAddIn"] = "initialize-add-in"; - VerbId["GetDataSummaryData"] = "get-summary-data"; - VerbId["GetUnderlyingData"] = "get-underlying-data"; - VerbId["SaveAddInSettings"] = "save-add-in-settings"; - VerbId["GetSelectedMarks"] = "get-selected-marks"; - VerbId["GetHighlightedMarks"] = "get-highlighted-marks"; - VerbId["GetParametersForSheet"] = "get-parameters-for-sheet"; - VerbId["FindParameter"] = "find-parameter"; - VerbId["ChangeParameterValue"] = "change-parameter-value"; - VerbId["ClearSelectedMarks"] = "clear-selected-marks"; - VerbId["SelectByValue"] = "select-by-value"; - VerbId["GetDataSources"] = "get-data-sources"; - VerbId["RefreshDataSource"] = "refresh-data-source"; - VerbId["GetFilters"] = "get-filters"; - })(VerbId = exports.VerbId || (exports.VerbId = {})); - - -/***/ }, -/* 8 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export(__webpack_require__(9)); - __export(__webpack_require__(10)); - var Point_1 = __webpack_require__(11); - exports.Point = Point_1.Point; - var Size_1 = __webpack_require__(12); - exports.Size = Size_1.Size; - __export(__webpack_require__(13)); - __export(__webpack_require__(14)); - __export(__webpack_require__(15)); - __export(__webpack_require__(21)); - __export(__webpack_require__(20)); - __export(__webpack_require__(19)); - __export(__webpack_require__(18)); - __export(__webpack_require__(22)); - __export(__webpack_require__(23)); - __export(__webpack_require__(24)); - __export(__webpack_require__(39)); - __export(__webpack_require__(32)); - - -/***/ }, -/* 9 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Class designed to register and unregister handlers from a user. Only those events - * which are added via AddNewEventType will be supported by this instance - */ - var EventListenerManager = (function () { - function EventListenerManager() { - this._eventListenerManagers = {}; - } - EventListenerManager.prototype.addEventListener = function (eventType, handler) { - if (!this._eventListenerManagers.hasOwnProperty(eventType)) { - throw new Error("Unsupported event type : " + eventType); - } - return this._eventListenerManagers[eventType].addEventListener(handler); - }; - EventListenerManager.prototype.removeEventListener = function (eventType, handler) { - if (!this._eventListenerManagers.hasOwnProperty(eventType)) { - throw new Error("Unsupported event type : " + eventType); - } - return this._eventListenerManagers[eventType].removeEventListener(handler); - }; - EventListenerManager.prototype.addNewEventType = function (eventManager) { - this._eventListenerManagers[eventManager.eventType] = eventManager; - }; - return EventListenerManager; - }()); - exports.EventListenerManager = EventListenerManager; - - -/***/ }, -/* 10 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var EventListenerManager_1 = __webpack_require__(9); - /** - * Implementation of the Parameter contract. Calls down to the impl - * class for almost all of the work it does. - */ - var Parameter = (function (_super) { - __extends(Parameter, _super); - function Parameter(parameterImpl, sheet) { - var _this = _super.call(this) || this; - _this.parameterImpl = parameterImpl; - // Initialize our event handling for this class - _this.parameterImpl.initializeEvents(sheet).forEach(function (e) { return _this.addNewEventType(e); }); - return _this; - } - Object.defineProperty(Parameter.prototype, "name", { - get: function () { - return this.parameterImpl.name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Parameter.prototype, "currentValue", { - get: function () { - return this.parameterImpl.currentValue; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Parameter.prototype, "dataType", { - get: function () { - return this.parameterImpl.dataType; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Parameter.prototype, "allowableValues", { - get: function () { - return this.parameterImpl.allowableValues; - }, - enumerable: true, - configurable: true - }); - Parameter.prototype.changeValueAsync = function (newValue) { - return this.parameterImpl.changeValueAsync(newValue); - }; - return Parameter; - }(EventListenerManager_1.EventListenerManager)); - exports.Parameter = Parameter; - - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Point = (function () { - function Point(_x, _y) { - this._x = _x; - this._y = _y; - } - Object.defineProperty(Point.prototype, "x", { - get: function () { - return this._x; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Point.prototype, "y", { - get: function () { - return this._y; - }, - enumerable: true, - configurable: true - }); - return Point; - }()); - exports.Point = Point; - - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Size = (function () { - function Size(_height, _width) { - this._height = _height; - this._width = _width; - } - Object.defineProperty(Size.prototype, "height", { - get: function () { - return this._height; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Size.prototype, "width", { - get: function () { - return this._width; - }, - enumerable: true, - configurable: true - }); - return Size; - }()); - exports.Size = Size; - - -/***/ }, -/* 13 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var DataTable = (function () { - function DataTable(_data, _columns, _totalRowCount, _isSummaryData, _marksInfo) { - this._data = _data; - this._columns = _columns; - this._totalRowCount = _totalRowCount; - this._isSummaryData = _isSummaryData; - this._marksInfo = _marksInfo; - // TODO: get rid of this in redesign. - this._name = _isSummaryData ? 'Summary Data Table' : 'Underlying Data Table'; - } - Object.defineProperty(DataTable.prototype, "name", { - get: function () { - return this._name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTable.prototype, "data", { - get: function () { - return this._data; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTable.prototype, "columns", { - get: function () { - return this._columns; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTable.prototype, "marksInfo", { - get: function () { - return this._marksInfo; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTable.prototype, "totalRowCount", { - get: function () { - return this._totalRowCount; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTable.prototype, "isSummaryData", { - get: function () { - return this._isSummaryData; - }, - enumerable: true, - configurable: true - }); - return DataTable; - }()); - exports.DataTable = DataTable; - var MarkInfo = (function () { - function MarkInfo(_type, _color, _tupleId) { - this._type = _type; - this._color = _color; - this._tupleId = _tupleId; - } - Object.defineProperty(MarkInfo.prototype, "type", { - get: function () { - return this._type; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(MarkInfo.prototype, "color", { - get: function () { - return this._color; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(MarkInfo.prototype, "tupleId", { - get: function () { - return this._tupleId; - }, - enumerable: true, - configurable: true - }); - return MarkInfo; - }()); - exports.MarkInfo = MarkInfo; - var Column = (function () { - function Column(_fieldName, _dataType, // TODO: this shoudl be an enum type - _isReferenced, _index) { - this._fieldName = _fieldName; - this._dataType = _dataType; - this._isReferenced = _isReferenced; - this._index = _index; - } - Object.defineProperty(Column.prototype, "fieldName", { - get: function () { - return this._fieldName; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Column.prototype, "dataType", { - get: function () { - return this._dataType; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Column.prototype, "isReferenced", { - get: function () { - return this._isReferenced; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Column.prototype, "index", { - get: function () { - return this._index; - }, - enumerable: true, - configurable: true - }); - return Column; - }()); - exports.Column = Column; - var DataValue = (function () { - /* tslint:disable:no-any */ - function DataValue(_value, _formattedValue) { - this._value = _value; - this._formattedValue = _formattedValue; - } - Object.defineProperty(DataValue.prototype, "value", { - get: function () { - return this._value; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataValue.prototype, "formattedValue", { - get: function () { - return this._formattedValue; - }, - enumerable: true, - configurable: true - }); - return DataValue; - }()); - exports.DataValue = DataValue; - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var TableauExceptions = (function () { - function TableauExceptions() { - } - return TableauExceptions; - }()); - exports.TableauExceptions = TableauExceptions; - - -/***/ }, -/* 15 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var Contract = __webpack_require__(16); - var TableauWorksheetEvent_1 = __webpack_require__(18); - var FilterChangedEvent = (function (_super) { - __extends(FilterChangedEvent, _super); - function FilterChangedEvent(worksheet, _fieldName) { - var _this = _super.call(this, Contract.TableauEventType.FilterChanged, worksheet) || this; - _this._fieldName = _fieldName; - return _this; - } - Object.defineProperty(FilterChangedEvent.prototype, "fieldName", { - get: function () { - return this._fieldName; - }, - enumerable: true, - configurable: true - }); - FilterChangedEvent.prototype.getFilterAsync = function () { - throw new Error('API call not yet implmemented'); - }; - return FilterChangedEvent; - }(TableauWorksheetEvent_1.TableauWorksheetEvent)); - exports.FilterChangedEvent = FilterChangedEvent; - - -/***/ }, -/* 16 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export(__webpack_require__(17)); - - -/***/ }, -/* 17 */ -/***/ function(module, exports) { - - "use strict"; - // All enum values made available to AddIn developers. - // Enums should be kept in alphabetical order. - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * The context in which the AddIn is currently running. - */ - var AddInContext; - (function (AddInContext) { - AddInContext["Desktop"] = "desktop"; - AddInContext["Server"] = "server"; - })(AddInContext = exports.AddInContext || (exports.AddInContext = {})); - /** - * The mode in which the AddIn is currently running. - */ - var AddInMode; - (function (AddInMode) { - AddInMode["Authoring"] = "authoring"; - AddInMode["Viewing"] = "viewing"; - })(AddInMode = exports.AddInMode || (exports.AddInMode = {})); - var AnalyticsObjectType; - (function (AnalyticsObjectType) { - AnalyticsObjectType["Cluster"] = "cluster"; - AnalyticsObjectType["Forecast"] = "forecast"; - AnalyticsObjectType["TrendLine"] = "trend-line"; - })(AnalyticsObjectType = exports.AnalyticsObjectType || (exports.AnalyticsObjectType = {})); - var ColumnType; - (function (ColumnType) { - ColumnType["Discrete"] = "discrete"; - ColumnType["Continuous"] = "continuous"; - })(ColumnType = exports.ColumnType || (exports.ColumnType = {})); - /** - * What the object represents in a dashboard. - */ - var DashboardObjectType; - (function (DashboardObjectType) { - DashboardObjectType["Blank"] = "blank"; - DashboardObjectType["Worksheet"] = "worksheet"; - DashboardObjectType["QuickFilter"] = "quick-filter"; - DashboardObjectType["ParameterControl"] = "parameter-control"; - DashboardObjectType["PageFilter"] = "page-filter"; - DashboardObjectType["Legend"] = "legend"; - DashboardObjectType["Title"] = "title"; - DashboardObjectType["Text"] = "text"; - DashboardObjectType["Image"] = "image"; - DashboardObjectType["WebPage"] = "web-page"; - DashboardObjectType["AddIn"] = "addin"; - })(DashboardObjectType = exports.DashboardObjectType || (exports.DashboardObjectType = {})); - /** - * The different types of data a value can have - */ - var DataType; - (function (DataType) { - DataType["String"] = "string"; - DataType["Int"] = "int"; - DataType["Float"] = "float"; - DataType["Bool"] = "bool"; - DataType["Date"] = "date"; - DataType["DateTime"] = "date-time"; - DataType["Spatial"] = "spatial"; - })(DataType = exports.DataType || (exports.DataType = {})); - /** - * Valid date ranges for a relative date filter. - */ - var DateRangeType; - (function (DateRangeType) { - DateRangeType["Last"] = "last"; - DateRangeType["LastN"] = "last-n"; - DateRangeType["Next"] = "next"; - DateRangeType["NextN"] = "next-n"; - DateRangeType["Current"] = "current"; - DateRangeType["ToDate"] = "to-date"; - })(DateRangeType = exports.DateRangeType || (exports.DateRangeType = {})); - /** - * Types of dialog event for event listening between a parent AddIn and a popup dialog. - */ - var DialogEventType; - (function (DialogEventType) { - DialogEventType["DialogMessage"] = "dialog-message"; - DialogEventType["DialogEvent"] = "dialog-event"; - })(DialogEventType = exports.DialogEventType || (exports.DialogEventType = {})); - var EncodingType; - (function (EncodingType) { - EncodingType["Column"] = "column"; - EncodingType["Row"] = "row"; - EncodingType["Page"] = "page"; - EncodingType["Filter"] = "filter"; - EncodingType["MarksType"] = "marks-type"; - EncodingType["MeasureValues"] = "measure-values"; - EncodingType["Color"] = "color"; - EncodingType["Size"] = "size"; - EncodingType["Label"] = "label"; - EncodingType["Detail"] = "detail"; - EncodingType["Tooltip"] = "tooltip"; - EncodingType["Shape"] = "shape"; - EncodingType["Path"] = "path"; - EncodingType["Angle"] = "angle"; - })(EncodingType = exports.EncodingType || (exports.EncodingType = {})); - /** - * All error codes used by the AddIn API. - */ - var ErrorCodes; - (function (ErrorCodes) { - /** - * Only one dialog can be opened at time with the UI namespace functionality. - */ - ErrorCodes["DialogAlreadyOpen"] = "dialog-already-open"; - /** - * The open dialog was closed by the user. - */ - ErrorCodes["DialogClosedByUser"] = "dialog-closed-by-user"; - /** - * An error occurred while attempting to perform a filter operation. - */ - ErrorCodes["FilterCannotBePerformed"] = "filter-cannot-be-performed"; - /** - * An error occurred within the Tableau AddIn API. Contact Tableau Support. - */ - ErrorCodes["InternalError"] = "internal-error"; - /** - * An invalid aggregation was specified for the filter, such as setting a range filter to "SUM(Sales)" instead of "Sales". - */ - ErrorCodes["InvalidAggregationFieldName"] = "invalid-aggregation-field-name"; - /** - * A dialog must first launch to, and send messages from, the same domain as the parent AddIn. - */ - ErrorCodes["InvalidDomainDialog"] = "invalid-dialog-domain"; - /** - * An invalid date was specified in a method that required a date parameter. - */ - ErrorCodes["InvalidDateParameter"] = "invalid-date-parameter"; - /** - * A filter operation was attempted on a field that does not exist in the data source. - */ - ErrorCodes["InvalidFilterFieldName"] = "invalid-filter-field-name"; - /** - * A filter operation was attempted using a value that is the wrong data type or format. - */ - ErrorCodes["InvalidFilterFieldValue"] = "invalid-filter-field-value"; - /** - * A parameter is not the correct data type or format. The name of the parameter is specified in the Error.message field. - */ - ErrorCodes["InvalidParameter"] = "invalid-parameter"; - /** - * An invalid date value was specified in a Sheet.selectMarksAsync() call for a date field. - */ - ErrorCodes["InvalidSelectionDate"] = "invalid-selection-date"; - /** - * A field was specified in a Sheet.selectMarksAsync() call that does not exist in the data source. - */ - ErrorCodes["InvalidSelectionFieldName"] = "invalid-selection-field-name"; - /** - * An invalid value was specified in a Sheet.selectMarksAsync() call. - */ - ErrorCodes["InvalidSelectionValue"] = "invalid-selection-value"; - /** - * A required parameter was not specified, null, or an empty string/array. - */ - ErrorCodes["NullOrEmptyParameter"] = "null-or-empty-parameter"; - /** - * An unknown event name was specified in the call to Viz.addEventListeneror Viz.removeEventListener. - */ - ErrorCodes["UnsupportedEventName"] = "unsupported-event-name"; - })(ErrorCodes = exports.ErrorCodes || (exports.ErrorCodes = {})); - /** - * Type of aggregation on a field. - */ - var FieldAggregationType; - (function (FieldAggregationType) { - FieldAggregationType["Sum"] = "sum"; - FieldAggregationType["Avg"] = "avg"; - FieldAggregationType["Min"] = "min"; - FieldAggregationType["Max"] = "max"; - FieldAggregationType["Stdev"] = "stdev"; - FieldAggregationType["Stdevp"] = "stdevp"; - FieldAggregationType["Var"] = "var"; - FieldAggregationType["Varp"] = "varp"; - FieldAggregationType["Count"] = "count"; - FieldAggregationType["Countd"] = "countd"; - FieldAggregationType["Median"] = "median"; - FieldAggregationType["Attr"] = "attr"; - FieldAggregationType["None"] = "none"; - FieldAggregationType["Year"] = "year"; - FieldAggregationType["Qtr"] = "qtr"; - FieldAggregationType["Month"] = "month"; - FieldAggregationType["Day"] = "day"; - FieldAggregationType["Hour"] = "hour"; - FieldAggregationType["Minute"] = "minute"; - FieldAggregationType["Second"] = "second"; - FieldAggregationType["Week"] = "week"; - FieldAggregationType["Weekday"] = "weekday"; - FieldAggregationType["MonthYear"] = "month-year"; - FieldAggregationType["Mdy"] = "mdy"; - FieldAggregationType["End"] = "end"; - FieldAggregationType["TruncYear"] = "trunc-year"; - FieldAggregationType["TruncQtr"] = "trunc-qtr"; - FieldAggregationType["TruncMonth"] = "trunc-month"; - FieldAggregationType["TruncWeek"] = "trunc-week"; - FieldAggregationType["TruncDay"] = "trunc-day"; - FieldAggregationType["TruncHour"] = "trunc-hour"; - FieldAggregationType["TruncMinute"] = "trunc-minute"; - FieldAggregationType["TruncSecond"] = "trunc-second"; - FieldAggregationType["Quart1"] = "quart1"; - FieldAggregationType["Quart3"] = "quart3"; - FieldAggregationType["Skewness"] = "skewness"; - FieldAggregationType["Kurtosis"] = "kurtosis"; - FieldAggregationType["InOut"] = "in-out"; - FieldAggregationType["User"] = "user"; - })(FieldAggregationType = exports.FieldAggregationType || (exports.FieldAggregationType = {})); - /** - * Role of a field. - */ - var FieldRoleType; - (function (FieldRoleType) { - FieldRoleType["Dimension"] = "dimension"; - FieldRoleType["Measure"] = "measure"; - FieldRoleType["Unknown"] = "unknown"; - })(FieldRoleType = exports.FieldRoleType || (exports.FieldRoleType = {})); - /** - * An enumeration of the valid types of filters that can be applied. - */ - var FilterType; - (function (FilterType) { - FilterType["Categorical"] = "categorical"; - FilterType["Range"] = "range"; - FilterType["Hierarchical"] = "hierarchical"; - FilterType["RelativeDate"] = "relative-date"; - })(FilterType = exports.FilterType || (exports.FilterType = {})); - /** - * The different update types for applying filter - */ - var FilterUpdateType; - (function (FilterUpdateType) { - FilterUpdateType["Add"] = "add"; - FilterUpdateType["All"] = "all"; - FilterUpdateType["Replace"] = "replace"; - FilterUpdateType["Remove"] = "remove"; - })(FilterUpdateType = exports.FilterUpdateType || (exports.FilterUpdateType = {})); - /** - * The domain type for a filter - */ - var FilterDomainType; - (function (FilterDomainType) { - /** - * The domain values that are relevant to the specified filter - * i.e. the domain is restricted by a previous filter - */ - FilterDomainType["Relevant"] = "relevant"; - /** - * list of all possible domain values from database - */ - FilterDomainType["Database"] = "database"; - })(FilterDomainType = exports.FilterDomainType || (exports.FilterDomainType = {})); - /** - * The option for specifying which values to include for filtering - * Indicates what to do with null values for a given filter or mark selection call. - */ - var FilterNullOption; - (function (FilterNullOption) { - FilterNullOption["NullValues"] = "null-values"; - FilterNullOption["NonNullValues"] = "non-null-values"; - FilterNullOption["AllValues"] = "all-values"; - })(FilterNullOption = exports.FilterNullOption || (exports.FilterNullOption = {})); - /** - * Type of mark for a given marks card in a viz. - */ - var MarkType; - (function (MarkType) { - MarkType["Bar"] = "bar"; - MarkType["Line"] = "line"; - MarkType["Area"] = "area"; - MarkType["Square"] = "square"; - MarkType["Circle"] = "circle"; - MarkType["Shape"] = "shape"; - MarkType["Text"] = "text"; - MarkType["Map"] = "map"; - MarkType["Pie"] = "pie"; - MarkType["GanttBar"] = "gantt-bar"; - MarkType["Polygon"] = "polygon"; - })(MarkType = exports.MarkType || (exports.MarkType = {})); - /** - * An enumeration describing the different types of allowable values. - * This is used for restricting the domain of a parameter - */ - var ParameterValueType; - (function (ParameterValueType) { - ParameterValueType["All"] = "all"; - ParameterValueType["List"] = "list"; - ParameterValueType["Range"] = "range"; - })(ParameterValueType = exports.ParameterValueType || (exports.ParameterValueType = {})); - /** - * Date period used in filters and in parameters. - */ - var PeriodType; - (function (PeriodType) { - PeriodType["Years"] = "years"; - PeriodType["Quarters"] = "quarters"; - PeriodType["Months"] = "months"; - PeriodType["Weeks"] = "weeks"; - PeriodType["Days"] = "days"; - PeriodType["Hours"] = "hours"; - PeriodType["Minutes"] = "minutes"; - PeriodType["Seconds"] = "seconds"; - })(PeriodType = exports.PeriodType || (exports.PeriodType = {})); - var QuickTableCalcType; - (function (QuickTableCalcType) { - QuickTableCalcType["RunningTotal"] = "running-total"; - QuickTableCalcType["Difference"] = "difference"; - QuickTableCalcType["PercentDifference"] = "percent-difference"; - QuickTableCalcType["PercentOfTotal"] = "percent-of-total"; - QuickTableCalcType["Rank"] = "rank"; - QuickTableCalcType["Percentile"] = "percentile"; - QuickTableCalcType["MovingAverage"] = "moving-average"; - QuickTableCalcType["YTDTotal"] = "ytd-total"; - QuickTableCalcType["CompoundGrowthRate"] = "compound-growth-rate"; - QuickTableCalcType["YearOverYearGrowth"] = "year-over-year-growth"; - QuickTableCalcType["YTDGrowth"] = "ytd-growth"; - QuickTableCalcType["Undefined"] = "undefined"; - })(QuickTableCalcType = exports.QuickTableCalcType || (exports.QuickTableCalcType = {})); - /** - * Enum for specifying the selection type for select marks api. - */ - var SelectionUpdateType; - (function (SelectionUpdateType) { - SelectionUpdateType["Replace"] = "select-replace"; - SelectionUpdateType["Add"] = "select-add"; - SelectionUpdateType["Remove"] = "select-remove"; - })(SelectionUpdateType = exports.SelectionUpdateType || (exports.SelectionUpdateType = {})); - /** - * The type of sheet a Sheet object represents - */ - var SheetType; - (function (SheetType) { - SheetType["Dashboard"] = "dashboard"; - SheetType["Story"] = "story"; - SheetType["Worksheet"] = "worksheet"; - })(SheetType = exports.SheetType || (exports.SheetType = {})); - var SortDirection; - (function (SortDirection) { - SortDirection["Increasing"] = "increasing"; - SortDirection["Decreasing"] = "decreasing"; - })(SortDirection = exports.SortDirection || (exports.SortDirection = {})); - /** - * Represents a certain type of event which can be listened for - */ - var TableauEventType; - (function (TableauEventType) { - /** Raised when any filter has changed state.*/ - TableauEventType["FilterChanged"] = "filter-changed"; - /** The selected marks on a visualization has changed */ - TableauEventType["MarkSelectionChanged"] = "mark-selection-changed"; - /** A parameter has had its value modified */ - TableauEventType["ParameterChanged"] = "parameter-changed"; - })(TableauEventType = exports.TableauEventType || (exports.TableauEventType = {})); - var TrendLineModelType; - (function (TrendLineModelType) { - TrendLineModelType["Linear"] = "linear"; - TrendLineModelType["Logarithmic"] = "logarithmic"; - TrendLineModelType["Exponential"] = "exponential"; - TrendLineModelType["Polynomial"] = "polynomial"; - })(TrendLineModelType = exports.TrendLineModelType || (exports.TrendLineModelType = {})); - - -/***/ }, -/* 18 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var TableauSheetEvent_1 = __webpack_require__(19); - var TableauWorksheetEvent = (function (_super) { - __extends(TableauWorksheetEvent, _super); - function TableauWorksheetEvent(type, worksheet) { - var _this = _super.call(this, type, worksheet) || this; - _this._worksheet = worksheet; - return _this; - } - Object.defineProperty(TableauWorksheetEvent.prototype, "worksheet", { - get: function () { - return this._worksheet; - }, - enumerable: true, - configurable: true - }); - return TableauWorksheetEvent; - }(TableauSheetEvent_1.TableauSheetEvent)); - exports.TableauWorksheetEvent = TableauWorksheetEvent; - - -/***/ }, -/* 19 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var TableauEvent_1 = __webpack_require__(20); - var TableauSheetEvent = (function (_super) { - __extends(TableauSheetEvent, _super); - function TableauSheetEvent(type, sheet) { - var _this = _super.call(this, type) || this; - _this._sheet = sheet; - return _this; - } - Object.defineProperty(TableauSheetEvent.prototype, "sheet", { - get: function () { - return this._sheet; - }, - enumerable: true, - configurable: true - }); - return TableauSheetEvent; - }(TableauEvent_1.TableauEvent)); - exports.TableauSheetEvent = TableauSheetEvent; - - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var TableauEvent = (function () { - function TableauEvent(type) { - this._type = type; - } - Object.defineProperty(TableauEvent.prototype, "type", { - get: function () { - return this._type; - }, - enumerable: true, - configurable: true - }); - return TableauEvent; - }()); - exports.TableauEvent = TableauEvent; - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var Contract = __webpack_require__(16); - var TableauWorksheetEvent_1 = __webpack_require__(18); - var MarksSelectedEvent = (function (_super) { - __extends(MarksSelectedEvent, _super); - function MarksSelectedEvent(worksheet) { - return _super.call(this, Contract.TableauEventType.MarkSelectionChanged, worksheet) || this; - } - MarksSelectedEvent.prototype.getMarksAsync = function () { - return this.worksheet.getSelectedMarksAsync(); - }; - return MarksSelectedEvent; - }(TableauWorksheetEvent_1.TableauWorksheetEvent)); - exports.MarksSelectedEvent = MarksSelectedEvent; - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * This class implements the SingleEventManager interface for a single type of Tableau event - * - * @template TEventType The Tableau event type this class specializes - */ - var SingleEventManagerImpl = (function () { - function SingleEventManagerImpl(eventType) { - this._eventType = eventType; - this._handlers = []; - } - Object.defineProperty(SingleEventManagerImpl.prototype, "eventType", { - get: function () { - return this._eventType; - }, - enumerable: true, - configurable: true - }); - SingleEventManagerImpl.prototype.addEventListener = function (handler) { - var _this = this; - this._handlers.push(handler); - return function () { return _this.removeEventListener(handler); }; - }; - SingleEventManagerImpl.prototype.removeEventListener = function (handler) { - var beforeCount = this._handlers.length; - this._handlers = this._handlers.filter(function (h) { return h !== handler; }); - return beforeCount > this._handlers.length; - }; - SingleEventManagerImpl.prototype.triggerEvent = function (eventGenerator) { - for (var _i = 0, _a = this._handlers; _i < _a.length; _i++) { - var handler = _a[_i]; - try { - var eventModel = eventGenerator(); - handler(eventModel); - } - catch (e) { - // Since this handler could be outside our control, just catch anything it throws and continue on - continue; - } - } - }; - return SingleEventManagerImpl; - }()); - exports.SingleEventManagerImpl = SingleEventManagerImpl; - - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Defines which type of getData call to make. - */ - var GetDataType; - (function (GetDataType) { - GetDataType["Summary"] = "summary"; - GetDataType["Underlying"] = "underlying"; - })(GetDataType = exports.GetDataType || (exports.GetDataType = {})); - - -/***/ }, -/* 24 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var DataSourceServiceImpl_1 = __webpack_require__(25); - var FilterServiceImpl_1 = __webpack_require__(27); - var GetDataServiceImpl_1 = __webpack_require__(34); - var NotificationServiceImpl_1 = __webpack_require__(35); - var ParametersServiceImpl_1 = __webpack_require__(36); - var SelectionServiceImpl_1 = __webpack_require__(40); - var ServiceRegistry_1 = __webpack_require__(39); - function registerAllSharedServices(dispatcher) { - ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new DataSourceServiceImpl_1.DataSourceServiceImpl(dispatcher)); - ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new GetDataServiceImpl_1.GetDataServiceImpl(dispatcher)); - ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new FilterServiceImpl_1.FilterServiceImpl(dispatcher)); - ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new NotificationServiceImpl_1.NotificationServiceImpl(dispatcher)); - ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new ParametersServiceImpl_1.ParametersServiceImpl(dispatcher)); - ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new SelectionServiceImpl_1.SelectionServiceImpl(dispatcher)); - } - exports.registerAllSharedServices = registerAllSharedServices; - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(26); - var DataSourceServiceImpl = (function () { - function DataSourceServiceImpl(_dispatcher) { - this._dispatcher = _dispatcher; - } - Object.defineProperty(DataSourceServiceImpl.prototype, "serviceName", { - get: function () { - return "data-source-service" /* DataSourceService */; - }, - enumerable: true, - configurable: true - }); - DataSourceServiceImpl.prototype.refreshAsync = function (dataSourceId) { - var parameters = (_a = {}, _a[api_internal_contract_1.ParameterId.DataSourceId] = dataSourceId, _a); - return this._dispatcher.execute(api_internal_contract_1.VerbId.RefreshDataSource, parameters).then(function (response) { - return; - }); - var _a; - }; - DataSourceServiceImpl.prototype.getDataSourcesAsync = function () { - return this._dispatcher.execute(api_internal_contract_1.VerbId.GetDataSources, {}).then(function (response) { - var dataSchema = response.result; - return dataSchema; - }); - }; - return DataSourceServiceImpl; - }()); - exports.DataSourceServiceImpl = DataSourceServiceImpl; - - -/***/ }, -/* 26 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export(__webpack_require__(3)); - __export(__webpack_require__(4)); - __export(__webpack_require__(5)); - __export(__webpack_require__(6)); - __export(__webpack_require__(7)); - - -/***/ }, -/* 27 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Contract = __webpack_require__(16); - var api_internal_contract_1 = __webpack_require__(26); - var api_utils_1 = __webpack_require__(28); - var ExternalToInternalEnumMappings_1 = __webpack_require__(31); - var InternalToExternalEnumMappings_1 = __webpack_require__(32); - var FilterModels_1 = __webpack_require__(33); - var GetDataModels_1 = __webpack_require__(13); - var FilterServiceImpl = (function () { - function FilterServiceImpl(dispatcher) { - this._dispatcher = dispatcher; - } - Object.defineProperty(FilterServiceImpl.prototype, "serviceName", { - get: function () { - return "filter-service" /* Filter */; - }, - enumerable: true, - configurable: true - }); - FilterServiceImpl.prototype.applyFilterAsync = function (visualId, fieldName, values, updateType, filterOptions) { - if (!api_utils_1.Param.isValidEnumValue(updateType, Contract.FilterUpdateType)) { - throw new Error('Invalid value for parameter FilterUpdateType'); - } - var verb = api_internal_contract_1.VerbId.ApplyCategoricalFilter; - var parameters = {}; - parameters[api_internal_contract_1.ParameterId.VisualId] = visualId; - parameters[api_internal_contract_1.ParameterId.FieldName] = fieldName; - parameters[api_internal_contract_1.ParameterId.FilterValues] = values; - parameters[api_internal_contract_1.ParameterId.FilterUpdateType] = updateType; - parameters[api_internal_contract_1.ParameterId.IsExcludeMode] = - (filterOptions === undefined || filterOptions.isExcludeMode === undefined) ? false : filterOptions.isExcludeMode; - return this._dispatcher.execute(verb, parameters).then(function (response) { - var error = response.result; - if (!(error.errorCode === null || error.errorCode === undefined)) { - // TODO: come back and implement error handling logic - throw new Error('Error Applying Filter: ' + error.errorCode); - } - return fieldName; - }); - }; - FilterServiceImpl.prototype.applyRangeFilterAsync = function (visualId, fieldName, filterOptions) { - if (!filterOptions) { - throw new Error('Missing Parameter: RangeFilterOptions'); - } - api_utils_1.Param.verifyRangeParamType(filterOptions.min, filterOptions.max); - var verb = api_internal_contract_1.VerbId.ApplyRangeFilter; - var parameters = {}; - if (filterOptions.min) { - var min = void 0; - if (filterOptions.min instanceof Date) { - min = api_utils_1.Param.serializeDateForPlatform(filterOptions.min); - } - else { - min = filterOptions.min; - } - parameters[api_internal_contract_1.ParameterId.FilterRangeMin] = min; - } - if (filterOptions.max) { - var max = void 0; - if (filterOptions.max instanceof Date) { - max = api_utils_1.Param.serializeDateForPlatform(filterOptions.max); - } - else { - max = filterOptions.max; - } - parameters[api_internal_contract_1.ParameterId.FilterRangeMax] = max; - } - if (filterOptions.nullOption) { - if (!api_utils_1.Param.isValidEnumValue(filterOptions.nullOption, Contract.FilterNullOption)) { - throw new Error('Invalid value for parameter NullOption'); - } - parameters[api_internal_contract_1.ParameterId.FilterRangeNullOption] = ExternalToInternalEnumMappings_1.ExternalToInternalEnumMappings.nullOptions.convert(filterOptions.nullOption); - } - parameters[api_internal_contract_1.ParameterId.FieldName] = fieldName; - parameters[api_internal_contract_1.ParameterId.VisualId] = visualId; - return this._dispatcher.execute(verb, parameters).then(function (response) { - return fieldName; - }); - }; - FilterServiceImpl.prototype.clearFilterAsync = function (visualId, fieldName) { - var verb = api_internal_contract_1.VerbId.ClearFilter; - var parameters = {}; - parameters[api_internal_contract_1.ParameterId.VisualId] = visualId; - parameters[api_internal_contract_1.ParameterId.FieldName] = fieldName; - return this._dispatcher.execute(verb, parameters).then(function (resposne) { - return fieldName; - }); - }; - FilterServiceImpl.prototype.getFiltersAsync = function (visualId) { - var _this = this; - var verb = api_internal_contract_1.VerbId.GetFilters; - var parameters = {}; - parameters[api_internal_contract_1.ParameterId.VisualId] = visualId; - return this._dispatcher.execute(verb, parameters).then(function (response) { - var filters = response.result; - return _this.convertDomainFilters(filters); - }); - }; - // Helper Methods - FilterServiceImpl.prototype.convertDomainFilters = function (domainFilters) { - var _this = this; - var filters = []; - domainFilters.forEach(function (domainFilter) { - switch (domainFilter.filterType) { - case api_internal_contract_1.FilterType.Categorical: { - var filter = domainFilter; - if (filter) { - filters.push(_this.convertCategoricalFilter(filter)); - } - else { - throw new Error('Invalid Categorical Filter'); - } - break; - } - case api_internal_contract_1.FilterType.Range: { - var filter = domainFilter; - if (filter) { - filters.push(_this.convertRangeFilter(filter)); - } - else { - throw new Error('Invalid Range Filter'); - } - break; - } - case api_internal_contract_1.FilterType.RelativeDate: { - var filter = domainFilter; - if (filter) { - filters.push(_this.convertRelativeDateFilter(filter)); - } - else { - throw new Error('Invalid Relative Date Filter'); - } - break; - } - default: { - break; - } - } - }); - return filters; - }; - FilterServiceImpl.prototype.convertCategoricalFilter = function (domainFilter) { - var appliedValues = domainFilter.values.map(function (dv) { - return new GetDataModels_1.DataValue(dv.value, dv.formattedValue); - }); - return new FilterModels_1.CategoricalFilter(domainFilter.visualId.worksheet, domainFilter.fieldCaption, Contract.FilterType.Categorical, appliedValues, domainFilter.isExclude); - }; - FilterServiceImpl.prototype.convertRangeFilter = function (domainFilter) { - var minValue = new GetDataModels_1.DataValue(domainFilter.min.value, domainFilter.min.formattedValue); - var maxValue = new GetDataModels_1.DataValue(domainFilter.max.value, domainFilter.max.formattedValue); - return new FilterModels_1.RangeFilter(domainFilter.visualId.worksheet, domainFilter.fieldCaption, Contract.FilterType.Range, minValue, maxValue, domainFilter.includeNullValues); - }; - FilterServiceImpl.prototype.convertRelativeDateFilter = function (domainFilter) { - var anchorDateValue = new GetDataModels_1.DataValue(domainFilter.anchorDate.value, domainFilter.anchorDate.formattedValue); - return new FilterModels_1.RelativeDateFilter(domainFilter.visualId.worksheet, domainFilter.fieldCaption, Contract.FilterType.RelativeDate, anchorDateValue, InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.dateStepPeriod.convert(domainFilter.periodType), InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.dateRangeType.convert(domainFilter.rangeType), domainFilter.rangeN); - }; - return FilterServiceImpl; - }()); - exports.FilterServiceImpl = FilterServiceImpl; - - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - Object.defineProperty(exports, "__esModule", { value: true }); - var EnumConverter_1 = __webpack_require__(29); - exports.EnumConverter = EnumConverter_1.EnumConverter; - var Param_1 = __webpack_require__(30); - exports.Param = Param_1.Param; - - -/***/ }, -/* 29 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * This class converts from a source enum value to destination enum - * value given a mapping from source to destination when constructed. - */ - var EnumConverter = (function () { - function EnumConverter(_mappings, _defaultVal) { - this._mappings = _mappings; - this._defaultVal = _defaultVal; - } - EnumConverter.prototype.convert = function (enumVal, throwIfMissing) { - if (this._mappings.hasOwnProperty(enumVal)) { - return this._mappings[enumVal]; - } - if (this._defaultVal !== undefined && !throwIfMissing) { - return this._defaultVal; - } - throw new Error('Mapping not found for ' + enumVal); - }; - return EnumConverter; - }()); - exports.EnumConverter = EnumConverter; - - -/***/ }, -/* 30 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Param = (function () { - function Param() { - } - /** - * Verifies that an incoming parameter is 'truthy' and throws - * an error if it's not. This will throw an error if the value - * is null, undefined, NaN, the empty string, 0, or false. - * - * @param argumentValue value to verify - * @param argumentName name of argument to verify - */ - /*tslint:disable-next-line */ - Param.verifyValue = function (argumentValue, argumentName) { - if (!argumentValue) { - throw new Error('Value is invalid for argument: ' + argumentName); - } - }; - /** - * Verifies that a string is valid. Throws an error if the string is - * null, undefined, or NaN. - * - * @param argumentValue value to verify - * @param argumentName name of argument to verify - */ - Param.verifyString = function (argumentValue, argumentName) { - if (argumentValue === null || argumentValue === undefined) { - throw new Error('String value is invalid for argument: ' + argumentName); - } - }; - /** - * Verifies the value is part of the Enum - * - * String enums are {string : string} dictionaries which are not reverse mappable - * This is an ugly workaround - * @param value value to verify - * @param enumType enum to verify against - */ - /* tslint:disable:no-any */ - Param.isValidEnumValue = function (value, enumType) { - var isValid = false; - Object.keys(enumType).forEach(function (enumKey) { - if (enumType[enumKey] === value.toString()) { - isValid = true; - } - }); - return isValid; - }; - /* tslint:enable:no-any */ - /** - * serializes the date into the format that the server expects. - * @param date the date to serialize - */ - Param.serializeDateForPlatform = function (date) { - var year = date.getUTCFullYear(); - var month = date.getUTCMonth() + 1; - var day = date.getUTCDate(); - var hh = date.getUTCHours(); - var mm = date.getUTCMinutes(); - var sec = date.getUTCSeconds(); - return year + '-' + month + '-' + day + ' ' + hh + ':' + mm + ':' + sec; - }; - Param.serializeBooleanForPlatform = function (bool) { - return bool ? 'true' : 'false'; - }; - Param.serializeNumberForPlatform = function (num) { - return num.toString(10); - }; - /** - * Verifies the params min and max for applying range filter - * @param min range min - * @param max range max - */ - /* tslint:disable:no-any */ - Param.verifyRangeParamType = function (min, max) { - /* tslint:enable:no-any */ - if (!min && !max) { - throw new Error('Missing Parameter: At least one of min or max is required'); - } - if (!Param.isTypeNumber(min) && !Param.isTypeDate(min)) { - throw new Error('Invalid Parameter Type: Only Date and number are allowed for parameter min'); - } - if (!Param.isTypeNumber(max) && !Param.isTypeDate(max)) { - throw new Error('Invalid Parameter Type: Only Date and number are allowed for parameter max'); - } - if (typeof (min) !== typeof (max)) { - throw new Error('Invalid Parameter Type: Parameters min and max should be of the same type'); - } - }; - /** - * Verifies the input is a number - */ - /* tslint:disable:no-any */ - Param.isTypeNumber = function (input) { - return typeof (input) === 'number' || input instanceof Number; - }; - /* tslint:enable:no-any */ - /** - * Verifies the input is a Date - */ - /* tslint:disable:no-any */ - Param.isTypeDate = function (input) { - return input instanceof Date; - }; - /* tslint:enable:no-any */ - /* tslint:disable-next-line:no-any */ - Param.isTypeString = function (input) { - return typeof (input) === 'string' || input instanceof String; - }; - /* tslint:disable-next-line:no-any */ - Param.isTypeBool = function (input) { - return typeof (input) === 'boolean' || input instanceof Boolean; - }; - /* tslint:disable-next-line:no-any */ - Param.serializeParamterValue = function (value) { - if (Param.isTypeNumber(value)) { - return Param.serializeNumberForPlatform(value); - } - else if (Param.isTypeDate(value)) { - return Param.serializeDateForPlatform(value); - } - else if (Param.isTypeBool(value)) { - return Param.serializeBooleanForPlatform(value); - } - else if (Param.isTypeString(value)) { - return value; - } - else { - throw new Error('Value is invalid for argument: value'); - } - }; - return Param; - }()); - exports.Param = Param; - - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_external_contract_1 = __webpack_require__(16); - var api_internal_contract_1 = __webpack_require__(26); - var api_utils_1 = __webpack_require__(28); - /* tslint:disable:typedef - Disable this to make declaring these classes a bit easier */ - /** - * Maps enums used by the external-api-contract to the enums used - * in the internal-api-contract, which developers code against. - */ - var ExternalToInternalEnumMappings = (function () { - function ExternalToInternalEnumMappings() { - } - ExternalToInternalEnumMappings.nullOptions = new api_utils_1.EnumConverter((_a = {}, - _a[api_external_contract_1.FilterNullOption.AllValues] = api_internal_contract_1.FilterNullOption.AllValues, - _a[api_external_contract_1.FilterNullOption.NonNullValues] = api_internal_contract_1.FilterNullOption.NonNullValues, - _a[api_external_contract_1.FilterNullOption.NonNullValues] = api_internal_contract_1.FilterNullOption.NullValues, - _a)); - return ExternalToInternalEnumMappings; - }()); - exports.ExternalToInternalEnumMappings = ExternalToInternalEnumMappings; - var _a; - /* tslint:enable:typedef */ - - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_external_contract_1 = __webpack_require__(16); - var api_internal_contract_1 = __webpack_require__(26); - var api_utils_1 = __webpack_require__(28); - /* tslint:disable:typedef - Disable this to make declaring these classes a bit easier */ - /** - * Maps enums used by the internal-api-contract to the enums used - * in the external-api-contract, which developers code against. - */ - var InternalToExternalEnumMappings = (function () { - function InternalToExternalEnumMappings() { - } - InternalToExternalEnumMappings.addInContext = new api_utils_1.EnumConverter((_a = {}, - _a[api_internal_contract_1.AddInContext.Desktop] = api_external_contract_1.AddInContext.Desktop, - _a[api_internal_contract_1.AddInContext.Server] = api_external_contract_1.AddInContext.Server, - _a)); - InternalToExternalEnumMappings.addInMode = new api_utils_1.EnumConverter((_b = {}, - _b[api_internal_contract_1.AddInMode.Authoring] = api_external_contract_1.AddInMode.Authoring, - _b[api_internal_contract_1.AddInMode.Viewing] = api_external_contract_1.AddInMode.Viewing, - _b)); - InternalToExternalEnumMappings.columnType = new api_utils_1.EnumConverter((_c = {}, - _c[api_internal_contract_1.ColumnType.Continuous] = api_external_contract_1.ColumnType.Continuous, - _c[api_internal_contract_1.ColumnType.Discrete] = api_external_contract_1.ColumnType.Discrete, - _c)); - InternalToExternalEnumMappings.fieldAggregationType = new api_utils_1.EnumConverter((_d = {}, - _d[api_internal_contract_1.FieldAggregationType.Attr] = api_external_contract_1.FieldAggregationType.Attr, - _d[api_internal_contract_1.FieldAggregationType.Avg] = api_external_contract_1.FieldAggregationType.Avg, - _d[api_internal_contract_1.FieldAggregationType.Count] = api_external_contract_1.FieldAggregationType.Count, - _d[api_internal_contract_1.FieldAggregationType.Countd] = api_external_contract_1.FieldAggregationType.Countd, - _d[api_internal_contract_1.FieldAggregationType.Day] = api_external_contract_1.FieldAggregationType.Day, - _d[api_internal_contract_1.FieldAggregationType.End] = api_external_contract_1.FieldAggregationType.End, - _d[api_internal_contract_1.FieldAggregationType.Hour] = api_external_contract_1.FieldAggregationType.Hour, - _d[api_internal_contract_1.FieldAggregationType.InOut] = api_external_contract_1.FieldAggregationType.InOut, - _d[api_internal_contract_1.FieldAggregationType.Kurtosis] = api_external_contract_1.FieldAggregationType.Kurtosis, - _d[api_internal_contract_1.FieldAggregationType.Max] = api_external_contract_1.FieldAggregationType.Max, - _d[api_internal_contract_1.FieldAggregationType.Mdy] = api_external_contract_1.FieldAggregationType.Mdy, - _d[api_internal_contract_1.FieldAggregationType.Median] = api_external_contract_1.FieldAggregationType.Median, - _d[api_internal_contract_1.FieldAggregationType.Min] = api_external_contract_1.FieldAggregationType.Min, - _d[api_internal_contract_1.FieldAggregationType.Minute] = api_external_contract_1.FieldAggregationType.Minute, - _d[api_internal_contract_1.FieldAggregationType.MonthYear] = api_external_contract_1.FieldAggregationType.MonthYear, - _d[api_internal_contract_1.FieldAggregationType.None] = api_external_contract_1.FieldAggregationType.None, - _d[api_internal_contract_1.FieldAggregationType.Qtr] = api_external_contract_1.FieldAggregationType.Qtr, - _d[api_internal_contract_1.FieldAggregationType.Quart1] = api_external_contract_1.FieldAggregationType.Quart1, - _d[api_internal_contract_1.FieldAggregationType.Quart3] = api_external_contract_1.FieldAggregationType.Quart3, - _d[api_internal_contract_1.FieldAggregationType.Second] = api_external_contract_1.FieldAggregationType.Second, - _d[api_internal_contract_1.FieldAggregationType.Skewness] = api_external_contract_1.FieldAggregationType.Skewness, - _d[api_internal_contract_1.FieldAggregationType.Stdev] = api_external_contract_1.FieldAggregationType.Stdev, - _d[api_internal_contract_1.FieldAggregationType.Stdevp] = api_external_contract_1.FieldAggregationType.Stdevp, - _d[api_internal_contract_1.FieldAggregationType.Sum] = api_external_contract_1.FieldAggregationType.Sum, - _d[api_internal_contract_1.FieldAggregationType.TruncDay] = api_external_contract_1.FieldAggregationType.TruncDay, - _d[api_internal_contract_1.FieldAggregationType.TruncHour] = api_external_contract_1.FieldAggregationType.TruncHour, - _d[api_internal_contract_1.FieldAggregationType.TruncMinute] = api_external_contract_1.FieldAggregationType.TruncMinute, - _d[api_internal_contract_1.FieldAggregationType.TruncMonth] = api_external_contract_1.FieldAggregationType.TruncMonth, - _d[api_internal_contract_1.FieldAggregationType.TruncQtr] = api_external_contract_1.FieldAggregationType.TruncQtr, - _d[api_internal_contract_1.FieldAggregationType.TruncSecond] = api_external_contract_1.FieldAggregationType.TruncSecond, - _d[api_internal_contract_1.FieldAggregationType.TruncWeek] = api_external_contract_1.FieldAggregationType.TruncWeek, - _d[api_internal_contract_1.FieldAggregationType.TruncYear] = api_external_contract_1.FieldAggregationType.TruncYear, - _d[api_internal_contract_1.FieldAggregationType.User] = api_external_contract_1.FieldAggregationType.User, - _d[api_internal_contract_1.FieldAggregationType.Var] = api_external_contract_1.FieldAggregationType.Var, - _d[api_internal_contract_1.FieldAggregationType.Varp] = api_external_contract_1.FieldAggregationType.Varp, - _d[api_internal_contract_1.FieldAggregationType.Week] = api_external_contract_1.FieldAggregationType.Week, - _d[api_internal_contract_1.FieldAggregationType.Weekday] = api_external_contract_1.FieldAggregationType.Weekday, - _d[api_internal_contract_1.FieldAggregationType.Year] = api_external_contract_1.FieldAggregationType.Year, - _d)); - InternalToExternalEnumMappings.fieldRoleType = new api_utils_1.EnumConverter((_e = {}, - _e[api_internal_contract_1.FieldRoleType.Dimension] = api_external_contract_1.FieldRoleType.Dimension, - _e[api_internal_contract_1.FieldRoleType.Measure] = api_external_contract_1.FieldRoleType.Measure, - _e[api_internal_contract_1.FieldRoleType.Unknown] = api_external_contract_1.FieldRoleType.Unknown, - _e)); - InternalToExternalEnumMappings.sheetType = new api_utils_1.EnumConverter((_f = {}, - _f[api_internal_contract_1.SheetType.Dashboard] = api_external_contract_1.SheetType.Dashboard, - _f[api_internal_contract_1.SheetType.Story] = api_external_contract_1.SheetType.Story, - _f[api_internal_contract_1.SheetType.Worksheet] = api_external_contract_1.SheetType.Worksheet, - _f)); - InternalToExternalEnumMappings.dashboardObjectType = new api_utils_1.EnumConverter((_g = {}, - _g[api_internal_contract_1.DashboardObjectType.AddIn] = api_external_contract_1.DashboardObjectType.AddIn, - _g[api_internal_contract_1.DashboardObjectType.Blank] = api_external_contract_1.DashboardObjectType.Blank, - _g[api_internal_contract_1.DashboardObjectType.Image] = api_external_contract_1.DashboardObjectType.Image, - _g[api_internal_contract_1.DashboardObjectType.Legend] = api_external_contract_1.DashboardObjectType.Legend, - _g[api_internal_contract_1.DashboardObjectType.PageFilter] = api_external_contract_1.DashboardObjectType.PageFilter, - _g[api_internal_contract_1.DashboardObjectType.ParameterControl] = api_external_contract_1.DashboardObjectType.ParameterControl, - _g[api_internal_contract_1.DashboardObjectType.QuickFilter] = api_external_contract_1.DashboardObjectType.QuickFilter, - _g[api_internal_contract_1.DashboardObjectType.Text] = api_external_contract_1.DashboardObjectType.Text, - _g[api_internal_contract_1.DashboardObjectType.Title] = api_external_contract_1.DashboardObjectType.Title, - _g[api_internal_contract_1.DashboardObjectType.WebPage] = api_external_contract_1.DashboardObjectType.WebPage, - _g[api_internal_contract_1.DashboardObjectType.Worksheet] = api_external_contract_1.DashboardObjectType.Worksheet, - _g)); - InternalToExternalEnumMappings.dataType = new api_utils_1.EnumConverter((_h = {}, - _h[api_internal_contract_1.DataType.Bool] = api_external_contract_1.DataType.Bool, - _h[api_internal_contract_1.DataType.Date] = api_external_contract_1.DataType.Date, - _h[api_internal_contract_1.DataType.DateTime] = api_external_contract_1.DataType.DateTime, - _h[api_internal_contract_1.DataType.Float] = api_external_contract_1.DataType.Float, - _h[api_internal_contract_1.DataType.Int] = api_external_contract_1.DataType.Int, - _h[api_internal_contract_1.DataType.String] = api_external_contract_1.DataType.String, - _h)); - InternalToExternalEnumMappings.filterUpdateType = new api_utils_1.EnumConverter((_j = {}, - _j[api_internal_contract_1.FilterUpdateType.Add] = api_external_contract_1.FilterUpdateType.Add, - _j[api_internal_contract_1.FilterUpdateType.All] = api_external_contract_1.FilterUpdateType.All, - _j[api_internal_contract_1.FilterUpdateType.Remove] = api_external_contract_1.FilterUpdateType.Remove, - _j[api_internal_contract_1.FilterUpdateType.Replace] = api_external_contract_1.FilterUpdateType.Replace, - _j)); - InternalToExternalEnumMappings.allowableValues = new api_utils_1.EnumConverter((_k = {}, - _k[api_internal_contract_1.DomainRestrictionType.All] = api_external_contract_1.ParameterValueType.All, - _k[api_internal_contract_1.DomainRestrictionType.List] = api_external_contract_1.ParameterValueType.List, - _k[api_internal_contract_1.DomainRestrictionType.Range] = api_external_contract_1.ParameterValueType.Range, - _k)); - InternalToExternalEnumMappings.dateStepPeriod = new api_utils_1.EnumConverter((_l = {}, - _l[api_internal_contract_1.DateStepPeriod.Years] = api_external_contract_1.PeriodType.Years, - _l[api_internal_contract_1.DateStepPeriod.Quarters] = api_external_contract_1.PeriodType.Quarters, - _l[api_internal_contract_1.DateStepPeriod.Months] = api_external_contract_1.PeriodType.Months, - _l[api_internal_contract_1.DateStepPeriod.Weeks] = api_external_contract_1.PeriodType.Weeks, - _l[api_internal_contract_1.DateStepPeriod.Days] = api_external_contract_1.PeriodType.Days, - _l[api_internal_contract_1.DateStepPeriod.Hours] = api_external_contract_1.PeriodType.Hours, - _l[api_internal_contract_1.DateStepPeriod.Minutes] = api_external_contract_1.PeriodType.Minutes, - _l[api_internal_contract_1.DateStepPeriod.Seconds] = api_external_contract_1.PeriodType.Seconds, - _l)); - InternalToExternalEnumMappings.dateRangeType = new api_utils_1.EnumConverter((_m = {}, - _m[api_internal_contract_1.DateRangeType.Current] = api_external_contract_1.DateRangeType.Current, - _m[api_internal_contract_1.DateRangeType.Last] = api_external_contract_1.DateRangeType.Last, - _m[api_internal_contract_1.DateRangeType.LastN] = api_external_contract_1.DateRangeType.LastN, - _m[api_internal_contract_1.DateRangeType.Next] = api_external_contract_1.DateRangeType.Next, - _m[api_internal_contract_1.DateRangeType.NextN] = api_external_contract_1.DateRangeType.NextN, - _m[api_internal_contract_1.DateRangeType.ToDate] = api_external_contract_1.DateRangeType.ToDate, - _m)); - InternalToExternalEnumMappings.filterType = new api_utils_1.EnumConverter((_o = {}, - _o[api_internal_contract_1.FilterType.Categorical] = api_external_contract_1.FilterType.Categorical, - _o[api_internal_contract_1.FilterType.Range] = api_external_contract_1.FilterType.Range, - _o[api_internal_contract_1.FilterType.RelativeDate] = api_external_contract_1.FilterType.RelativeDate, - _o[api_internal_contract_1.FilterType.Hierarchical] = api_external_contract_1.FilterType.Hierarchical, - _o)); - return InternalToExternalEnumMappings; - }()); - exports.InternalToExternalEnumMappings = InternalToExternalEnumMappings; - var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o; - /* tslint:enable:typedef */ - - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var Filter = (function () { - function Filter(worksheetName, fieldName, filterType) { - this._worksheetName = worksheetName; - this._fieldName = fieldName; - this._filterType = filterType; - } - Object.defineProperty(Filter.prototype, "worksheetName", { - get: function () { - return this._worksheetName; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Filter.prototype, "fieldName", { - get: function () { - return this._fieldName; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Filter.prototype, "filterType", { - get: function () { - return this._filterType; - }, - enumerable: true, - configurable: true - }); - Filter.prototype.getFieldAsync = function () { - throw new Error('Method not implemented'); - }; - return Filter; - }()); - exports.Filter = Filter; - var CategoricalFilter = (function (_super) { - __extends(CategoricalFilter, _super); - function CategoricalFilter(worksheetName, fieldName, filterType, _appliedValues, _isExcludeMode) { - var _this = _super.call(this, worksheetName, fieldName, filterType) || this; - _this._appliedValues = _appliedValues; - _this._isExcludeMode = _isExcludeMode; - return _this; - } - Object.defineProperty(CategoricalFilter.prototype, "appliedValues", { - get: function () { - return this._appliedValues; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CategoricalFilter.prototype, "isExcludeMode", { - get: function () { - return this._isExcludeMode; - }, - enumerable: true, - configurable: true - }); - CategoricalFilter.prototype.getCategoricalDomainAsync = function () { - throw new Error('Method not implemented'); - }; - return CategoricalFilter; - }(Filter)); - exports.CategoricalFilter = CategoricalFilter; - var RangeFilter = (function (_super) { - __extends(RangeFilter, _super); - function RangeFilter(worksheetName, fieldName, filterType, _min, _max, _includeNullValues) { - var _this = _super.call(this, worksheetName, fieldName, filterType) || this; - _this._min = _min; - _this._max = _max; - _this._includeNullValues = _includeNullValues; - return _this; - } - Object.defineProperty(RangeFilter.prototype, "minValue", { - get: function () { - return this._min; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(RangeFilter.prototype, "maxValue", { - get: function () { - return this._max; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(RangeFilter.prototype, "includeNullValues", { - get: function () { - return this._includeNullValues; - }, - enumerable: true, - configurable: true - }); - RangeFilter.prototype.getRangeFilterDomainAsync = function () { - throw new Error('Method not implemented'); - }; - return RangeFilter; - }(Filter)); - exports.RangeFilter = RangeFilter; - var RelativeDateFilter = (function (_super) { - __extends(RelativeDateFilter, _super); - function RelativeDateFilter(worksheetName, fieldName, filterType, _anchorDate, _periodType, _rangeType, _rangeN) { - var _this = _super.call(this, worksheetName, fieldName, filterType) || this; - _this._anchorDate = _anchorDate; - _this._periodType = _periodType; - _this._rangeType = _rangeType; - _this._rangeN = _rangeN; - return _this; - } - Object.defineProperty(RelativeDateFilter.prototype, "anchorDate", { - get: function () { - return this._anchorDate; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(RelativeDateFilter.prototype, "periodType", { - get: function () { - return this._periodType; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(RelativeDateFilter.prototype, "rangeType", { - get: function () { - return this._rangeType; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(RelativeDateFilter.prototype, "rangeN", { - get: function () { - return this._rangeN; - }, - enumerable: true, - configurable: true - }); - return RelativeDateFilter; - }(Filter)); - exports.RelativeDateFilter = RelativeDateFilter; - - -/***/ }, -/* 34 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Contract = __webpack_require__(16); - var api_internal_contract_1 = __webpack_require__(26); - var GetDataModels_1 = __webpack_require__(13); - var GetDataService_1 = __webpack_require__(23); - var GetDataServiceImpl = (function () { - function GetDataServiceImpl(dispatcher) { - this._dispatcher = dispatcher; - } - Object.defineProperty(GetDataServiceImpl.prototype, "serviceName", { - get: function () { - return "get-data-service" /* GetData */; - }, - enumerable: true, - configurable: true - }); - GetDataServiceImpl.prototype.getUnderlyingDataAsync = function (visualId, getType, ignoreAliases, ignoreSelection, includeAllColumns, maxRows) { - var _this = this; - // Create all of our parameters - var verb = getType === GetDataService_1.GetDataType.Summary ? api_internal_contract_1.VerbId.GetDataSummaryData : api_internal_contract_1.VerbId.GetUnderlyingData; - var parameters = {}; - parameters[api_internal_contract_1.ParameterId.VisualId] = visualId; - parameters[api_internal_contract_1.ParameterId.IgnoreAliases] = ignoreAliases; - parameters[api_internal_contract_1.ParameterId.IgnoreSelection] = ignoreSelection; - parameters[api_internal_contract_1.ParameterId.IncludeAllColumns] = includeAllColumns; - parameters[api_internal_contract_1.ParameterId.MaxRows] = maxRows; - return this._dispatcher.execute(verb, parameters).then(function (response) { - var responseData = response.result; - return _this.processResultsTable(responseData.data, responseData.isSummary); - }); - }; - GetDataServiceImpl.prototype.getSelectedMarksAsync = function (visualId) { - var _this = this; - var parameters = (_a = {}, _a[api_internal_contract_1.ParameterId.VisualId] = visualId, _a); - return this._dispatcher.execute(api_internal_contract_1.VerbId.GetSelectedMarks, parameters).then(function (response) { - var responseData = response.result; - return { - data: responseData.data.map(function (table) { return _this.processResultsTable(table, true); }) - }; - }); - var _a; - }; - GetDataServiceImpl.prototype.getHighlightedMarksAsync = function (visualId) { - var _this = this; - var parameters = (_a = {}, _a[api_internal_contract_1.ParameterId.VisualId] = visualId, _a); - return this._dispatcher.execute(api_internal_contract_1.VerbId.GetHighlightedMarks, parameters).then(function (response) { - var responseData = response.result; - return { - data: responseData.data.map(function (table) { return _this.processResultsTable(table, true); }) - }; - }); - var _a; - }; - GetDataServiceImpl.prototype.processResultsTable = function (responseData, isSummary) { - var headers = responseData.headers.map(function (h) { return new GetDataModels_1.Column(h.fieldCaption, Contract.DataType.String /*h.DataType*/, h.isReferenced, h.index); }); - // TODO This should be controlled by a flag indicating whether this api will respond marks info or not - var marks; - if (responseData.marks) { - marks = responseData.marks.map(function (h) { return new GetDataModels_1.MarkInfo(h.type, h.color, h.tupleId); }); - } - var table = responseData.dataTable.map(function (row) { - return row.map(function (cell) { - return new GetDataModels_1.DataValue(cell.value, cell.formattedValue); - }); - }); - if (marks) { - return new GetDataModels_1.DataTable(table, headers, table.length, isSummary, marks); - } - return new GetDataModels_1.DataTable(table, headers, table.length, isSummary); - }; - return GetDataServiceImpl; - }()); - exports.GetDataServiceImpl = GetDataServiceImpl; - - -/***/ }, -/* 35 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Registration = (function () { - function Registration(_filterFn, _callbackFn) { - this._filterFn = _filterFn; - this._callbackFn = _callbackFn; - // Nothing Here - } - Registration.prototype.onNotification = function (notificationModel) { - if (this._filterFn(notificationModel)) { - this._callbackFn(notificationModel); - } - }; - return Registration; - }()); - var NotificationServiceImpl = (function () { - function NotificationServiceImpl(dispatcher) { - this.dispatcher = dispatcher; - this._handlers = {}; - this.dispatcher.registerNotificationHandler(this.onNotification.bind(this)); - } - Object.defineProperty(NotificationServiceImpl.prototype, "serviceName", { - get: function () { - return "notification-service" /* Notification */; - }, - enumerable: true, - configurable: true - }); - NotificationServiceImpl.prototype.registerHandler = function (id, filterFn, handler) { - var _this = this; - var handlers = this._handlers[id] || new Array(); - var registration = new Registration(filterFn, handler); - handlers.push(registration); - this._handlers[id] = handlers; - return function () { return _this.removeRegistration(id, registration); }; - }; - NotificationServiceImpl.prototype.hasHandlersForNotificationType = function (id) { - return this._handlers.hasOwnProperty(id); - }; - NotificationServiceImpl.prototype.onNotification = function (notification) { - if (!this.hasHandlersForNotificationType(notification.notificationId)) { - return; - } - // Go through and check for all the handlers of this particular notification - this._handlers[notification.notificationId].forEach(function (h) { return h.onNotification(notification.data); }); - }; - NotificationServiceImpl.prototype.removeRegistration = function (id, registration) { - if (!this.hasHandlersForNotificationType(id)) { - return; - } - this._handlers[id] = this._handlers[id].filter(function (reg) { return reg !== registration; }); - }; - return NotificationServiceImpl; - }()); - exports.NotificationServiceImpl = NotificationServiceImpl; - - -/***/ }, -/* 36 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(26); - var ParameterImpl_1 = __webpack_require__(37); - var Parameter_1 = __webpack_require__(10); - var ParametersServiceImpl = (function () { - function ParametersServiceImpl(dispatcher) { - this.dispatcher = dispatcher; - } - Object.defineProperty(ParametersServiceImpl.prototype, "serviceName", { - get: function () { - return "parameters-service" /* Parameters */; - }, - enumerable: true, - configurable: true - }); - ParametersServiceImpl.prototype.getParametersForSheetAsync = function (sheetPath, sheet) { - var parameters = (_a = {}, - _a[api_internal_contract_1.ParameterId.SheetPath] = sheetPath, - _a); - return this.dispatcher.execute(api_internal_contract_1.VerbId.GetParametersForSheet, parameters).then(function (response) { - // TODO - Check for error - var result = response.result; - return result.map(function (parameterInfo) { - var impl = new ParameterImpl_1.ParameterImpl(parameterInfo); - return new Parameter_1.Parameter(impl, sheet); - }); - }); - var _a; - }; - ParametersServiceImpl.prototype.changeParameterValueAsync = function (fieldName, newValue) { - var parameters = (_a = {}, - _a[api_internal_contract_1.ParameterId.ParameterFieldName] = fieldName, - _a[api_internal_contract_1.ParameterId.ParameterValue] = newValue, - _a); - return this.dispatcher.execute(api_internal_contract_1.VerbId.ChangeParameterValue, parameters).then(function (response) { - var result = response.result; - return result; - }); - var _a; - }; - ParametersServiceImpl.prototype.findParameterByNameAsync = function (name, sheet) { - return this.findParameterAsync(sheet, name, undefined); - }; - ParametersServiceImpl.prototype.findParameterByGlobalFieldNameAsync = function (fieldName, sheet) { - return this.findParameterAsync(sheet, undefined, fieldName); - }; - ParametersServiceImpl.prototype.findParameterAsync = function (sheet, name, fieldName) { - var parameters = {}; - if (name !== undefined) { - parameters[api_internal_contract_1.ParameterId.ParameterCaption] = name; - } - else if (fieldName !== undefined) { - parameters[api_internal_contract_1.ParameterId.ParameterFieldName] = fieldName; - } - else { - throw new Error('Missing require field name or caption'); - } - return this.dispatcher.execute(api_internal_contract_1.VerbId.FindParameter, parameters).then(function (response) { - var instanceOfParameterInfo = function (object) { - return 'fieldName' in object; - }; - // We need to check to see if we got a valid response back again - if (instanceOfParameterInfo(response.result)) { - var result = response.result; - var impl = new ParameterImpl_1.ParameterImpl(result); - return new Parameter_1.Parameter(impl, sheet); - } - else { - return undefined; - } - }); - }; - return ParametersServiceImpl; - }()); - exports.ParametersServiceImpl = ParametersServiceImpl; - - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Contract = __webpack_require__(16); - var api_internal_contract_1 = __webpack_require__(26); - var api_utils_1 = __webpack_require__(28); - var InternalToExternalEnumMappings_1 = __webpack_require__(32); - var ParameterChangedEvent_1 = __webpack_require__(38); - var GetDataModels_1 = __webpack_require__(13); - var ServiceRegistry_1 = __webpack_require__(39); - var SingleEventManagerImpl_1 = __webpack_require__(22); - var ParameterImpl = (function () { - function ParameterImpl(parameterInfo) { - this.setParameterInfo(parameterInfo); - } - Object.defineProperty(ParameterImpl.prototype, "name", { - get: function () { - return this._parameterInfo.name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(ParameterImpl.prototype, "currentValue", { - get: function () { - return new GetDataModels_1.DataValue(this._parameterInfo.currentValue.value, this._parameterInfo.currentValue.formattedValue); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(ParameterImpl.prototype, "dataType", { - get: function () { - return InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.dataType.convert(this._parameterInfo.dataType); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(ParameterImpl.prototype, "allowableValues", { - get: function () { - return this._allowableValues; - }, - enumerable: true, - configurable: true - }); - ParameterImpl.prototype.changeValueAsync = function (newValue) { - var _this = this; - var coercedValue = api_utils_1.Param.serializeParamterValue(newValue); - var parametersService = ServiceRegistry_1.ApiServiceRegistry.instance.getService("parameters-service" /* Parameters */); - return parametersService.changeParameterValueAsync(this._globalFieldName, coercedValue).then(function (parameterInfo) { - _this.setParameterInfo(parameterInfo); - return _this.currentValue; - }); - }; - /** - * Helper method which goes through and registers each event type this impl knows about - * with the NotificationService. It returns an array of SingleEventManager objects which - * can then be passed to an EventListenerManager to handle user registration / unregistration. - * - * @param sheet The sheet object which will be included with the event notifications - * @returns {Array} Collection of event managers to pass to an EventListenerManager - */ - ParameterImpl.prototype.initializeEvents = function (sheet) { - var _this = this; - var results = new Array(); - var notificationService; - try { - notificationService = ServiceRegistry_1.ApiServiceRegistry.instance.getService("notification-service" /* Notification */); - } - catch (e) { - // If we don't have this service registered, just return - return results; - } - // Initialize all of the event managers we'll need (one for each event type) - var parameterEvent = new SingleEventManagerImpl_1.SingleEventManagerImpl(Contract.TableauEventType.ParameterChanged); - notificationService.registerHandler(api_internal_contract_1.NotificationId.ParameterChanged, function (model) { - var fieldName = model; - return fieldName === _this._globalFieldName; - }, function (fieldName) { - parameterEvent.triggerEvent(function () { return new ParameterChangedEvent_1.ParameterChangedEvent(fieldName, sheet); }); - }); - results.push(parameterEvent); - return results; - }; - ParameterImpl.prototype.setParameterInfo = function (parameterInfo) { - this._parameterInfo = parameterInfo; - this._globalFieldName = parameterInfo.fieldName; - var type = InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.allowableValues.convert(parameterInfo.allowableValuesType); - var listValues; - var minValue; - var maxValue; - var stepSize; - var dateStepPeriod; - if (type === Contract.ParameterValueType.List) { - var values = parameterInfo.allowableValues || []; - listValues = values.map(function (val) { return new GetDataModels_1.DataValue(val.value, val.formattedValue); }); - } - else if (type === Contract.ParameterValueType.Range) { - minValue = parameterInfo.minValue && new GetDataModels_1.DataValue(parameterInfo.minValue.value, parameterInfo.minValue.formattedValue); - maxValue = parameterInfo.maxValue && new GetDataModels_1.DataValue(parameterInfo.maxValue.value, parameterInfo.maxValue.formattedValue); - stepSize = parameterInfo.stepSize; - dateStepPeriod = parameterInfo.dateStepPeriod && - InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.dateStepPeriod.convert(parameterInfo.dateStepPeriod); - } - this._allowableValues = { - type: type, - allowableValues: listValues, - minValue: minValue, - maxValue: maxValue, - stepSize: stepSize, - dateStepPeriod: dateStepPeriod - }; - }; - return ParameterImpl; - }()); - exports.ParameterImpl = ParameterImpl; - - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var Contract = __webpack_require__(16); - var ServiceRegistry_1 = __webpack_require__(39); - var TableauSheetEvent_1 = __webpack_require__(19); - var ParameterChangedEvent = (function (_super) { - __extends(ParameterChangedEvent, _super); - function ParameterChangedEvent(_globalFieldName, sheet) { - var _this = _super.call(this, Contract.TableauEventType.ParameterChanged, sheet) || this; - _this._globalFieldName = _globalFieldName; - return _this; - } - ParameterChangedEvent.prototype.getParameterAsync = function () { - // Call down to our service to get the parameter back via its field name - var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("parameters-service" /* Parameters */); - return service.findParameterByGlobalFieldNameAsync(this._globalFieldName, this.sheet).then(function (parameter) { - if (parameter === undefined) { - throw new Error('Unable to find parameter'); - } - return parameter; - }); - }; - return ParameterChangedEvent; - }(TableauSheetEvent_1.TableauSheetEvent)); - exports.ParameterChangedEvent = ParameterChangedEvent; - - -/***/ }, -/* 39 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var ServiceRegistryImpl = (function () { - function ServiceRegistryImpl() { - this._services = {}; - } - ServiceRegistryImpl.prototype.registerService = function (service) { - this._services[service.serviceName] = service; - }; - ServiceRegistryImpl.prototype.getService = function (serviceName) { - if (!this._services.hasOwnProperty(serviceName)) { - throw new Error("No Service " + serviceName + " is registered"); - } - return this._services[serviceName]; - }; - return ServiceRegistryImpl; - }()); - /** - * static class used for getting access to the single instance - * of the ApiServiceRegistry - */ - var ApiServiceRegistry = (function () { - // Private to avoid anyone constructing this - function ApiServiceRegistry() { - } - Object.defineProperty(ApiServiceRegistry, "instance", { - /** - * Gets the singleton instance of the ServiceRegistry - */ - get: function () { - if (!window.__tableauApiServiceRegistry) { - ApiServiceRegistry.setInstance(new ServiceRegistryImpl()); - } - if (!window.__tableauApiServiceRegistry) { - throw new Error('Assigning service registry failed'); - } - return window.__tableauApiServiceRegistry; - }, - enumerable: true, - configurable: true - }); - /** - * Helper method to override the registry instance. Can be used by unit tests - * - * @param {ServiceRegistry} serviceRegistry The new registry - */ - ApiServiceRegistry.setInstance = function (serviceRegistry) { - window.__tableauApiServiceRegistry = serviceRegistry; - }; - return ApiServiceRegistry; - }()); - exports.ApiServiceRegistry = ApiServiceRegistry; - - -/***/ }, -/* 40 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Contract = __webpack_require__(16); - var api_internal_contract_1 = __webpack_require__(26); - var SelectionModels_1 = __webpack_require__(41); - var SelectionServiceImpl = (function () { - function SelectionServiceImpl(dispatcher) { - this._dispatcher = dispatcher; - } - Object.defineProperty(SelectionServiceImpl.prototype, "serviceName", { - get: function () { - return "selection-service" /* Selection */; - }, - enumerable: true, - configurable: true - }); - /** - * Method to clear all the selected marks for the given worksheet. - * - * @param visualId - */ - SelectionServiceImpl.prototype.clearSelectedMarksAsync = function (visualId) { - var parameters = (_a = {}, _a[api_internal_contract_1.ParameterId.VisualId] = visualId, _a); - return this._dispatcher.execute(api_internal_contract_1.VerbId.ClearSelectedMarks, parameters).then(function (response) { - return; // Expecting an empty model and hence the void response. - }); - var _a; - }; - /** - * Method to select marks for the given worksheet. - * - * @param visualId - * @param selectionCriteria - * @param selectionUpdateType - */ - SelectionServiceImpl.prototype.selectMarksByValueAsync = function (visualId, selectionCriterias, selectionUpdateType) { - if (selectionCriterias.length === 0) { - throw new Error('Invalid selection criteria. Selections missing.'); - } - var selectionType = this.validateSelectionUpdateType(selectionUpdateType); - var selectionCriteriaType = this.validateSelectionCriteria(selectionCriterias[0]); - var selectionModelContainer = this.parseSelectionMarks(selectionCriterias, selectionCriteriaType); - var parameters = (_a = {}, - _a[api_internal_contract_1.ParameterId.VisualId] = visualId, - _a[api_internal_contract_1.ParameterId.SelectionUpdateType] = selectionType, - _a); - switch (selectionCriteriaType) { - case SelectionCriteriaType.HierarchicalType: { - parameters[api_internal_contract_1.ParameterId.HierValSelectionModels] = selectionModelContainer.hierModelArr; - break; - } - case SelectionCriteriaType.RangeType: { - parameters[api_internal_contract_1.ParameterId.QuantRangeSelectionModels] = selectionModelContainer.quantModelArr; - break; - } - case SelectionCriteriaType.DimensionType: { - parameters[api_internal_contract_1.ParameterId.DimValSelectionModels] = selectionModelContainer.dimModelArr; - break; - } - default: - break; - } - return this._dispatcher.execute(api_internal_contract_1.VerbId.SelectByValue, parameters).then(function (response) { - // Expecting an empty model and hence the void response. - return; - // TODO Investigate the error response with multiple output params and throw error accordingly. - }); - var _a; - }; - /** - * Method to select marks for the given worksheet. - * - * @param visualId - * @param MarkInfo - * @param selectionUpdateType - */ - SelectionServiceImpl.prototype.selectMarksByIdAsync = function (visualId, marks, selectionUpdateType) { - if (marks.length === 0) { - throw new Error('Invalid selection. Marks info missing.'); - } - var selectionType = this.validateSelectionUpdateType(selectionUpdateType); - var selectionModelContainer = this.parseSelectionIds(marks); - var parameters = (_a = {}, - _a[api_internal_contract_1.ParameterId.VisualId] = visualId, - _a[api_internal_contract_1.ParameterId.SelectionUpdateType] = selectionType, - _a[api_internal_contract_1.ParameterId.Selection] = selectionModelContainer.selection, - _a); - return this._dispatcher.execute(api_internal_contract_1.VerbId.SelectByValue, parameters).then(function (response) { - // Expecting an empty model and hence the void response. - return; - // TODO Investigate the error response with multiple output params and throw error accordingly. - }); - var _a; - }; - /** - * Method to prepare the pres models for selection by MarksInfo - * @param marks - */ - SelectionServiceImpl.prototype.parseSelectionIds = function (marks) { - var ids = []; - var selectionModelContainer = new SelectionModels_1.SelectionModelsContainer(); - for (var i = 0; i < marks.length; i++) { - var tupleId = marks[i].tupleId; - if (tupleId !== undefined && tupleId !== null) { - ids.push(tupleId.toString()); // collect the tuple ids - } - else { - throw new Error('Invalid tupleId provided.'); - } - } - if (ids.length !== 0) { - var tupleSelectionModel = new SelectionModels_1.TupleSelectionModel(); - tupleSelectionModel.selectionType = 'tuples'; - tupleSelectionModel.objectIds = ids; - selectionModelContainer.selection = tupleSelectionModel; - } - return selectionModelContainer; - }; - /** - * Method to prepare the pres models for selection by values. - * - * Supports 3 types for selection: - * 1) hierarchical value based selection - * 2) range value based selection - * 3) Dimension value based selection - * - * @param marks - * @param hierModelArr - * @param dimModelArr - * @param quantModelArr - * @param selection - */ - SelectionServiceImpl.prototype.parseSelectionMarks = function (selectionCriterias, selectionType) { - var selectionModelContainer = new SelectionModels_1.SelectionModelsContainer(); - var mixedSelectionsError = false; - for (var i = 0; i < selectionCriterias.length; i++) { - var st = selectionCriterias[i]; - if (st.fieldName && (st.value !== undefined && st.value !== null)) { - var catRegex = new RegExp('(\[[A-Za-z0-9]+]).*', 'g'); - var rangeOption = st.value; - if (catRegex.test(st.fieldName)) { - if (selectionType === SelectionCriteriaType.HierarchicalType) { - var hierModel = this.addToParamsList(st.fieldName, st.value); - selectionModelContainer.hierModelArr.push(hierModel); - } - else { - mixedSelectionsError = true; - break; - } - } - else if (rangeOption.min !== undefined - && rangeOption.max !== undefined) { - if (selectionType === SelectionCriteriaType.RangeType) { - var quantModel = this.addToRangeParamsList(st.fieldName, rangeOption); - selectionModelContainer.quantModelArr.push(quantModel); - } - else { - mixedSelectionsError = true; - break; - } - } - else { - if (selectionType === SelectionCriteriaType.DimensionType) { - var dimModel = this.addToParamsList(st.fieldName, st.value); - selectionModelContainer.dimModelArr.push(dimModel); - } - else { - mixedSelectionsError = true; - break; - } - } - } - } - if (mixedSelectionsError) { - throw new Error('Different types of selection criterias provided.'); - } - return selectionModelContainer; - }; - /** - * - * @param selectionCriterias Validate and determine the selection criterias type. - */ - SelectionServiceImpl.prototype.validateSelectionCriteria = function (selectionCriteria) { - var selectionType; - // Determine the type of selection, this command is by looking at the first selection - var crit = selectionCriteria; - var catRegex = new RegExp('(\[[A-Za-z0-9]+]).*', 'g'); - var rangeOption = crit.value; - if (crit.fieldName && (crit.value !== undefined && crit.value !== null)) { - if (catRegex.test(crit.fieldName)) { - selectionType = SelectionCriteriaType.HierarchicalType; - } - else if (rangeOption.min !== undefined - && rangeOption.max !== undefined) { - selectionType = SelectionCriteriaType.RangeType; - } - else { - selectionType = SelectionCriteriaType.DimensionType; - } - } - else { - throw new Error('Invalid selection criteria format.'); - } - return selectionType; - }; - /** - * Method to transform the key value pair into value based pres model object. - * - * @param valueSelectionModel - * @param fieldName - * @param value - */ - SelectionServiceImpl.prototype.addToParamsList = function (fieldName, value) { - var valueSelectionModel = new SelectionModels_1.ValueSelectionModel(); - var markValues = []; - if (value instanceof Array) { - var valueArr = value; - for (var i = 0; i < valueArr.length; i++) { - markValues.push(valueArr[i].toString()); - } - } - else { - markValues.push(value.toString()); - } - valueSelectionModel.qualifiedFieldCaption = fieldName; - valueSelectionModel.selectValues = markValues; - return valueSelectionModel; - }; - /** - * Method to transform the key value pair into range based selection pres model. - * - * TODO: Need to handle the parsing of date type values. - * - * @param valueSelectionModel - * @param fieldName - * @param value - */ - SelectionServiceImpl.prototype.addToRangeParamsList = function (fieldName, value) { - var rangeSelectionModel = new SelectionModels_1.RangeSelectionModel(); - rangeSelectionModel.qualifiedFieldCaption = fieldName; - if (value.max !== undefined && value.max !== null) { - rangeSelectionModel.maxValue = value.max.toString(); - } - if (value.min !== undefined && value.min !== null) { - rangeSelectionModel.minValue = value.min.toString(); - } - rangeSelectionModel.included = this.validateNullOptionType(value.nullOption); - return rangeSelectionModel; - }; - /** - * Method to validate the selection update type. - * - * @param selectionUpdateType - */ - SelectionServiceImpl.prototype.validateSelectionUpdateType = function (selectionUpdateType) { - if (selectionUpdateType === Contract.SelectionUpdateType.Replace) { - return api_internal_contract_1.SelectionUpdateType.Replace; - } - else if (selectionUpdateType === Contract.SelectionUpdateType.Add) { - return api_internal_contract_1.SelectionUpdateType.Add; - } - else if (selectionUpdateType === Contract.SelectionUpdateType.Remove) { - return api_internal_contract_1.SelectionUpdateType.Remove; - } - return api_internal_contract_1.SelectionUpdateType.Replace; - }; - /** - * Method to validate the include type for range selection. - * - * @param nullOption - */ - SelectionServiceImpl.prototype.validateNullOptionType = function (nullOption) { - if (nullOption) { - if (nullOption === Contract.FilterNullOption.NullValues) { - return api_internal_contract_1.QuantitativeIncludedValues.IncludeNull; - } - else if (nullOption === Contract.FilterNullOption.NonNullValues) { - return api_internal_contract_1.QuantitativeIncludedValues.IncludeNonNull; - } - else if (nullOption === Contract.FilterNullOption.AllValues) { - return api_internal_contract_1.QuantitativeIncludedValues.IncludeAll; - } - } - return api_internal_contract_1.QuantitativeIncludedValues.IncludeAll; - }; - return SelectionServiceImpl; - }()); - exports.SelectionServiceImpl = SelectionServiceImpl; - /** - * Enum for the different selection criteria types. - */ - var SelectionCriteriaType; - (function (SelectionCriteriaType) { - SelectionCriteriaType[SelectionCriteriaType["HierarchicalType"] = 1] = "HierarchicalType"; - SelectionCriteriaType[SelectionCriteriaType["RangeType"] = 2] = "RangeType"; - SelectionCriteriaType[SelectionCriteriaType["DimensionType"] = 3] = "DimensionType"; - SelectionCriteriaType[SelectionCriteriaType["TuplesType"] = 4] = "TuplesType"; - })(SelectionCriteriaType || (SelectionCriteriaType = {})); - - -/***/ }, -/* 41 */ -/***/ function(module, exports) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Selection Model. - */ - var SelectionModel = (function () { - function SelectionModel() { - } - return SelectionModel; - }()); - exports.SelectionModel = SelectionModel; - /** - * Value based selection model. Meant for hierarchical, range and categorical selections. - */ - var ValueSelectionModel = (function (_super) { - __extends(ValueSelectionModel, _super); - function ValueSelectionModel() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.selectValues = []; - return _this; - } - return ValueSelectionModel; - }(SelectionModel)); - exports.ValueSelectionModel = ValueSelectionModel; - /** - * Hierarchical value selection model - */ - var HierarchicalSelectionModel = (function (_super) { - __extends(HierarchicalSelectionModel, _super); - function HierarchicalSelectionModel() { - return _super !== null && _super.apply(this, arguments) || this; - } - return HierarchicalSelectionModel; - }(ValueSelectionModel)); - exports.HierarchicalSelectionModel = HierarchicalSelectionModel; - /** - * Range based value selection model - */ - var RangeSelectionModel = (function (_super) { - __extends(RangeSelectionModel, _super); - function RangeSelectionModel() { - return _super !== null && _super.apply(this, arguments) || this; - } - return RangeSelectionModel; - }(SelectionModel)); - exports.RangeSelectionModel = RangeSelectionModel; - /** - * Dimension value selection model - */ - var DimensionSelectionModel = (function (_super) { - __extends(DimensionSelectionModel, _super); - function DimensionSelectionModel() { - return _super !== null && _super.apply(this, arguments) || this; - } - return DimensionSelectionModel; - }(ValueSelectionModel)); - exports.DimensionSelectionModel = DimensionSelectionModel; - /** - * Tuple based selection model - */ - var TupleSelectionModel = (function () { - function TupleSelectionModel() { - this.objectIds = []; - } - return TupleSelectionModel; - }()); - exports.TupleSelectionModel = TupleSelectionModel; - /** - * Container class to populate all the selection models when parsing input - */ - var SelectionModelsContainer = (function () { - function SelectionModelsContainer() { - this.hierModelArr = []; - this.dimModelArr = []; - this.quantModelArr = []; - } - return SelectionModelsContainer; - }()); - exports.SelectionModelsContainer = SelectionModelsContainer; - - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var Sheet_1 = __webpack_require__(43); - var Dashboard = (function (_super) { - __extends(Dashboard, _super); - function Dashboard(_dashboardImpl) { - var _this = _super.call(this, _dashboardImpl) || this; - _this._dashboardImpl = _dashboardImpl; - _dashboardImpl.initializeWithPublicInterfaces(_this); - return _this; - } - Object.defineProperty(Dashboard.prototype, "worksheets", { - get: function () { - return this._dashboardImpl.worksheets; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Dashboard.prototype, "objects", { - get: function () { - return this._dashboardImpl.objects; - }, - enumerable: true, - configurable: true - }); - return Dashboard; - }(Sheet_1.Sheet)); - exports.Dashboard = Dashboard; - - -/***/ }, -/* 43 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var api_shared_1 = __webpack_require__(8); - var Sheet = (function (_super) { - __extends(Sheet, _super); - function Sheet(_sheetImpl) { - var _this = _super.call(this) || this; - _this._sheetImpl = _sheetImpl; - return _this; - } - Object.defineProperty(Sheet.prototype, "name", { - get: function () { - return this._sheetImpl.name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Sheet.prototype, "sheetType", { - get: function () { - return this._sheetImpl.sheetType; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Sheet.prototype, "size", { - get: function () { - return this._sheetImpl.size; - }, - enumerable: true, - configurable: true - }); - Sheet.prototype.findParameterAsync = function (parameterName) { - return this._sheetImpl.findParameterAsync(parameterName, this); - }; - Sheet.prototype.getParametersAsync = function () { - return this._sheetImpl.getParametersAsync(this); - }; - return Sheet; - }(api_shared_1.EventListenerManager)); - exports.Sheet = Sheet; - - -/***/ }, -/* 44 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Implementation of the external DashboardContent namespace. - * This does not follow the Impl pattern as DashboardContent is - * currently just a (single) property bag. - */ - var DashboardContent = (function () { - function DashboardContent(_dashboard) { - this._dashboard = _dashboard; - } - Object.defineProperty(DashboardContent.prototype, "dashboard", { - get: function () { - return this._dashboard; - }, - enumerable: true, - configurable: true - }); - return DashboardContent; - }()); - exports.DashboardContent = DashboardContent; - - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_shared_1 = __webpack_require__(8); - /** - * Implementation of the external environment namespace. - * Environment does not follow the Impl pattern as it is - * just a property bag. - */ - var Environment = (function () { - function Environment(addInEnvironment) { - this._apiVersion = addInEnvironment.apiVersion; - this._context = api_shared_1.InternalToExternalEnumMappings.addInContext.convert(addInEnvironment.addInContext); - this._language = addInEnvironment.addInLanguage; - this._locale = addInEnvironment.addInLocale; - this._mode = api_shared_1.InternalToExternalEnumMappings.addInMode.convert(addInEnvironment.addInMode); - this._operatingSystem = addInEnvironment.operatingSystem; - this._tableauVersion = addInEnvironment.tableauVersion; - } - Object.defineProperty(Environment.prototype, "apiVersion", { - get: function () { - return this._apiVersion; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Environment.prototype, "context", { - get: function () { - return this._context; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Environment.prototype, "language", { - get: function () { - return this._language; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Environment.prototype, "locale", { - get: function () { - return this._locale; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Environment.prototype, "mode", { - get: function () { - return this._mode; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Environment.prototype, "operatingSystem", { - get: function () { - return this._operatingSystem; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Environment.prototype, "tableauVersion", { - get: function () { - return this._tableauVersion; - }, - enumerable: true, - configurable: true - }); - return Environment; - }()); - exports.Environment = Environment; - - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Implementation of the external settings namespace. - */ - var Settings = (function () { - function Settings(settingsImpl) { - this.settingsImpl = settingsImpl; - } - Settings.prototype.erase = function (key) { - this.settingsImpl.erase(key); - }; - Settings.prototype.get = function (key) { - return this.settingsImpl.get(key); - }; - Settings.prototype.getAll = function () { - return this.settingsImpl.getAll(); - }; - Object.defineProperty(Settings.prototype, "isModified", { - get: function () { - return this.settingsImpl.isModified; - }, - enumerable: true, - configurable: true - }); - Settings.prototype.saveAsync = function () { - return this.settingsImpl.saveAsync(); - }; - Settings.prototype.set = function (key, value) { - this.settingsImpl.set(key, value); - }; - return Settings; - }()); - exports.Settings = Settings; - - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_shared_1 = __webpack_require__(8); - var InitializationServiceImpl_1 = __webpack_require__(48); - var SettingsServiceImpl_1 = __webpack_require__(49); - function registerAllAddInServices(dispatcher) { - api_shared_1.ApiServiceRegistry.instance.registerService(new InitializationServiceImpl_1.InitializationServiceImpl(dispatcher)); - api_shared_1.ApiServiceRegistry.instance.registerService(new SettingsServiceImpl_1.SettingsServiceImpl(dispatcher)); - } - exports.registerAllAddInServices = registerAllAddInServices; - - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(2); - var InitializationServiceImpl = (function () { - function InitializationServiceImpl(dispatcher) { - this.dispatcher = dispatcher; - } - Object.defineProperty(InitializationServiceImpl.prototype, "serviceName", { - get: function () { - return "InitializationService" /* InitializationService */; - }, - enumerable: true, - configurable: true - }); - InitializationServiceImpl.prototype.initializeDashboardAddInAsync = function () { - // We don't need any parameters for this call because they are added in for us by the dispatcher - return this.dispatcher.execute(api_internal_contract_1.VerbId.InitializeAddIn, {}).then(function (response) { - // TODO - Validate return value - var result = response.result; - return result; - }); - }; - return InitializationServiceImpl; - }()); - exports.InitializationServiceImpl = InitializationServiceImpl; - - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(2); - var SettingsServiceImpl = (function () { - function SettingsServiceImpl(dispatcher) { - this.dispatcher = dispatcher; - } - Object.defineProperty(SettingsServiceImpl.prototype, "serviceName", { - get: function () { - return "SettingsService" /* SettingsService */; - }, - enumerable: true, - configurable: true - }); - SettingsServiceImpl.prototype.saveSettingsAsync = function (settings) { - var parameters = (_a = {}, _a[api_internal_contract_1.ParameterId.SettingsValues] = settings, _a); - return this.dispatcher.execute(api_internal_contract_1.VerbId.SaveAddInSettings, parameters).then(function (value) { - var result = value.result; - if (!result || !result.settingsValues) { - throw new Error('Internal error saving settings.'); - } - return (result.settingsValues); - }); - var _a; - }; - return SettingsServiceImpl; - }()); - exports.SettingsServiceImpl = SettingsServiceImpl; - - -/***/ }, -/* 50 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Represents the current version of the addin library - */ - var VersionNumber = (function () { - // private constructor so everyone uses the singleton instance - function VersionNumber(versionString) { - var parts = versionString.split('.').map(function (p) { return parseInt(p, 10); }); - if (parts.length !== 3) { - throw new Error('Invalid version number: ' + versionString); - } - this._major = parts[0]; - this._minor = parts[1]; - this._fix = parts[2]; - } - Object.defineProperty(VersionNumber, "Instance", { - /** - * Gets the singleton instance of the version number. - */ - get: function () { - return VersionNumber._instance; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(VersionNumber.prototype, "major", { - get: function () { - return this._major; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(VersionNumber.prototype, "minor", { - get: function () { - return this._minor; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(VersionNumber.prototype, "fix", { - get: function () { - return this._fix; - }, - enumerable: true, - configurable: true - }); - // Using some webpack tricks, we can inject this version into our code (kinda like c++ preprocessor stuff) - VersionNumber._instance = new VersionNumber(("0.4.0")); - return VersionNumber; - }()); - exports.VersionNumber = VersionNumber; - - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var Contract = __webpack_require__(52); - var api_internal_contract_1 = __webpack_require__(2); - var api_shared_1 = __webpack_require__(8); - var DashboardObject_1 = __webpack_require__(53); - var Worksheet_1 = __webpack_require__(54); - var SheetImpl_1 = __webpack_require__(55); - var SheetInfoImpl_1 = __webpack_require__(56); - var WorksheetImpl_1 = __webpack_require__(57); - var DashboardImpl = (function (_super) { - __extends(DashboardImpl, _super); - function DashboardImpl(_info, _sheetPath) { - var _this = _super.call(this, new SheetInfoImpl_1.SheetInfoImpl(_info.name, Contract.SheetType.Dashboard, new api_shared_1.Size(_info.size.h, _info.size.w))) || this; - _this._info = _info; - _this._sheetPath = _sheetPath; - return _this; - } - Object.defineProperty(DashboardImpl.prototype, "worksheets", { - get: function () { - return this._worksheets; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DashboardImpl.prototype, "objects", { - get: function () { - return this._objects; - }, - enumerable: true, - configurable: true - }); - DashboardImpl.prototype.initializeWithPublicInterfaces = function (dashboard) { - this._worksheets = new Array(); - this._objects = new Array(); - // Process all the zones which are contained in this dashboard - for (var _i = 0, _a = this._info.zones; _i < _a.length; _i++) { - var zone = _a[_i]; - var worksheet = undefined; - var zoneSize = new api_shared_1.Size(zone.height, zone.width); - if (zone.zoneType === api_internal_contract_1.DashboardObjectType.Worksheet) { - var sheetInfo = new SheetInfoImpl_1.SheetInfoImpl(zone.name, Contract.SheetType.Worksheet, zoneSize); - var vizId = { - worksheet: zone.name, - dashboard: this._info.name, - storyboard: this._sheetPath.storyboard, - flipboardZoneID: this._sheetPath.flipboardZoneID, - storyPointID: this._sheetPath.storyPointID - }; - var worksheetImpl = new WorksheetImpl_1.WorksheetImpl(sheetInfo, vizId, dashboard); - worksheet = new Worksheet_1.Worksheet(worksheetImpl); - this._worksheets.push(worksheet); - } - var zonePoint = new api_shared_1.Point(zone.x, zone.y); - var dashboardObject = new DashboardObject_1.DashboardObject(dashboard, api_shared_1.InternalToExternalEnumMappings.dashboardObjectType.convert(zone.zoneType), zonePoint, zoneSize, worksheet); - this._objects.push(dashboardObject); - } - }; - return DashboardImpl; - }(SheetImpl_1.SheetImpl)); - exports.DashboardImpl = DashboardImpl; - - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export(__webpack_require__(17)); - - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Implementation of the dashboard objects - the zones in a dashboard. - * This does not follow the Impl pattern as it is just a property bag. - */ - var DashboardObject = (function () { - function DashboardObject(_dashboard, _type, _position, _size, _worksheet) { - this._dashboard = _dashboard; - this._type = _type; - this._position = _position; - this._size = _size; - this._worksheet = _worksheet; - } - Object.defineProperty(DashboardObject.prototype, "dashboard", { - get: function () { - return this._dashboard; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DashboardObject.prototype, "type", { - get: function () { - return this._type; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DashboardObject.prototype, "position", { - get: function () { - return this._position; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DashboardObject.prototype, "size", { - get: function () { - return this._size; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DashboardObject.prototype, "worksheet", { - get: function () { - return this._worksheet; - }, - enumerable: true, - configurable: true - }); - return DashboardObject; - }()); - exports.DashboardObject = DashboardObject; - - -/***/ }, -/* 54 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var Sheet_1 = __webpack_require__(43); - var Worksheet = (function (_super) { - __extends(Worksheet, _super); - function Worksheet(_worksheetImpl) { - var _this = _super.call(this, _worksheetImpl) || this; - _this._worksheetImpl = _worksheetImpl; - // Call to initialize events and then call down to the event listener manager to handle things - _this._worksheetImpl.initializeEvents(_this).forEach(function (e) { return _this.addNewEventType(e); }); - return _this; - } - Object.defineProperty(Worksheet.prototype, "parentDashboard", { - get: function () { - return this._worksheetImpl.parentDashboard; - }, - enumerable: true, - configurable: true - }); - Worksheet.prototype.applyFilterAsync = function (fieldName, values, updateType, options) { - return this._worksheetImpl.applyFilterAsync(fieldName, values, updateType, options); - }; - Worksheet.prototype.applyRangeFilterAsync = function (fieldName, filterOptions) { - return this._worksheetImpl.applyRangeFilterAsync(fieldName, filterOptions); - }; - Worksheet.prototype.clearFilterAsync = function (fieldName) { - return this._worksheetImpl.clearFilterAsync(fieldName); - }; - Worksheet.prototype.getAnalyticObjectsAsync = function () { - throw new Error('API call not yet implemented.'); - }; - Worksheet.prototype.getDataSourcesAsync = function () { - return this._worksheetImpl.getDataSourcesAsync(); - }; - Worksheet.prototype.getEncodingsAsync = function () { - throw new Error('API call not yet implemented.'); - }; - Worksheet.prototype.getFiltersAsync = function () { - return this._worksheetImpl.getFiltersAsync(); - }; - Worksheet.prototype.getSelectedMarksAsync = function () { - return this._worksheetImpl.getSelectedMarksAsync(); - }; - Worksheet.prototype.getHighlightedMarksAsync = function () { - return this._worksheetImpl.getHighlightedMarksAsync(); - }; - Worksheet.prototype.getSummaryDataAsync = function (options) { - return this._worksheetImpl.getSummaryDataAsync(options); - }; - Worksheet.prototype.getUnderlyingDataAsync = function (options) { - return this._worksheetImpl.getUnderlyingDataAsync(options); - }; - Worksheet.prototype.clearSelectedMarksAsync = function () { - return this._worksheetImpl.clearSelectedMarksAsync(); - }; - Worksheet.prototype.selectMarksByIDAsync = function (marksInfo, updateType) { - throw new Error('API call not yet implemented.'); - }; - Worksheet.prototype.selectMarksByValueAsync = function (selections, selectionUpdateType) { - return this._worksheetImpl.selectMarksByValueAsync(selections, selectionUpdateType); - }; - Worksheet.prototype.selectMarksByIdAsync = function (selections, selectionUpdateType) { - return this._worksheetImpl.selectMarksByIdAsync(selections, selectionUpdateType); - }; - return Worksheet; - }(Sheet_1.Sheet)); - exports.Worksheet = Worksheet; - - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_shared_1 = __webpack_require__(8); - var SheetImpl = (function () { - function SheetImpl(_sheetInfoImpl) { - this._sheetInfoImpl = _sheetInfoImpl; - } - Object.defineProperty(SheetImpl.prototype, "name", { - get: function () { - return this._sheetInfoImpl.name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(SheetImpl.prototype, "sheetType", { - get: function () { - return this._sheetInfoImpl.sheetType; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(SheetImpl.prototype, "sheetPath", { - get: function () { - return this._sheetInfoImpl.sheetPath; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(SheetImpl.prototype, "size", { - get: function () { - return this._sheetInfoImpl.sheetSize; - }, - enumerable: true, - configurable: true - }); - SheetImpl.prototype.findParameterAsync = function (parameterName, sheet) { - var service = api_shared_1.ApiServiceRegistry.instance.getService("parameters-service" /* Parameters */); - return service.findParameterByNameAsync(parameterName, sheet); - }; - SheetImpl.prototype.getParametersAsync = function (sheet) { - var service = api_shared_1.ApiServiceRegistry.instance.getService("parameters-service" /* Parameters */); - return service.getParametersForSheetAsync(this.sheetPath, sheet); - }; - return SheetImpl; - }()); - exports.SheetImpl = SheetImpl; - - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_external_contract_1 = __webpack_require__(52); - var SheetInfoImpl = (function () { - function SheetInfoImpl(_name, _sheetType, _sheetSize) { - this._name = _name; - this._sheetType = _sheetType; - this._sheetSize = _sheetSize; - } - Object.defineProperty(SheetInfoImpl.prototype, "name", { - get: function () { - return this._name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(SheetInfoImpl.prototype, "sheetSize", { - get: function () { - return this._sheetSize; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(SheetInfoImpl.prototype, "sheetType", { - get: function () { - return this._sheetType; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(SheetInfoImpl.prototype, "sheetPath", { - get: function () { - return { - sheetName: this.name, - isDashboard: this.sheetType === api_external_contract_1.SheetType.Dashboard - // TODO - Stories - }; - }, - enumerable: true, - configurable: true - }); - return SheetInfoImpl; - }()); - exports.SheetInfoImpl = SheetInfoImpl; - - -/***/ }, -/* 57 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var Contract = __webpack_require__(52); - var api_internal_contract_1 = __webpack_require__(2); - var api_shared_1 = __webpack_require__(8); - var DataSource_1 = __webpack_require__(58); - var DataSourceImpl_1 = __webpack_require__(59); - var SheetImpl_1 = __webpack_require__(55); - var visualIdsAreEqual = function (a, b) { - return a && b && - a.worksheet === b.worksheet && - a.dashboard === b.dashboard && - a.storyboard === b.storyboard && - a.storyPointID === b.storyPointID && - a.flipboardZoneID === b.flipboardZoneID; - }; - var WorksheetImpl = (function (_super) { - __extends(WorksheetImpl, _super); - function WorksheetImpl(sheetInfoImpl, _visualId, _parentDashboard) { - var _this = _super.call(this, sheetInfoImpl) || this; - _this._visualId = _visualId; - _this._parentDashboard = _parentDashboard; - return _this; - } - Object.defineProperty(WorksheetImpl.prototype, "parentDashboard", { - get: function () { - return this._parentDashboard; - }, - enumerable: true, - configurable: true - }); - /** - * Helper method which goes through and registers each event type this impl knows about - * with the NotificationService. It returns an array of SingleEventManager objects which - * can then be passed to an EventListenerManager to handle user registration / unregistration. - * - * @param {Worksheet} worksheet The worksheet object which will be included with the event notifications - * @returns {Array} Collection of event managers to pass to an EventListenerManager - */ - WorksheetImpl.prototype.initializeEvents = function (worksheet) { - var _this = this; - var results = new Array(); - var notificationService; - try { - notificationService = api_shared_1.ApiServiceRegistry.instance.getService("notification-service" /* Notification */); - } - catch (e) { - // If we don't have this service registered, just return - return results; - } - // Initialize all of the event managers we'll need (one for each event type) - var marksEvent = new api_shared_1.SingleEventManagerImpl(Contract.TableauEventType.MarkSelectionChanged); - notificationService.registerHandler(api_internal_contract_1.NotificationId.SelectedMarksChanged, function (model) { - var visualId = model; - return visualIdsAreEqual(visualId, _this.visualId); - }, function (viz) { - marksEvent.triggerEvent(function () { return new api_shared_1.MarksSelectedEvent(worksheet); }); - }); - var filterEvent = new api_shared_1.SingleEventManagerImpl(Contract.TableauEventType.FilterChanged); - notificationService.registerHandler(api_internal_contract_1.NotificationId.FilterChanged, function (model) { - var filterEventResponse = model; - return _this.visualId.worksheet === filterEventResponse.visualId.worksheet; - }, function (event) { - filterEvent.triggerEvent(function () { return new api_shared_1.FilterChangedEvent(worksheet, event.fieldName); }); - }); - results.push(marksEvent); - results.push(filterEvent); - // TODO - other event types - return results; - }; - Object.defineProperty(WorksheetImpl.prototype, "visualId", { - get: function () { - return this._visualId; - }, - enumerable: true, - configurable: true - }); - WorksheetImpl.prototype.applyFilterAsync = function (fieldName, values, updateType, options) { - var service = api_shared_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */); - return service.applyFilterAsync(this.visualId, fieldName, values, updateType, options); - }; - WorksheetImpl.prototype.applyRangeFilterAsync = function (fieldName, filterOptions) { - var service = api_shared_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */); - return service.applyRangeFilterAsync(this.visualId, fieldName, filterOptions); - }; - WorksheetImpl.prototype.clearFilterAsync = function (fieldName) { - var service = api_shared_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */); - return service.clearFilterAsync(this.visualId, fieldName); - }; - WorksheetImpl.prototype.getDataSourcesAsync = function () { - var _this = this; - var service = api_shared_1.ApiServiceRegistry.instance.getService("data-source-service" /* DataSourceService */); - return service.getDataSourcesAsync().then(function (result) { - var dataSchema = result; - var worksheetDataSourceInfo = dataSchema.worksheetDataSchemaMap[_this.name]; - var dataSources = []; - // First, add the primary datasource. By convention, it comes first in the returned array. - var primaryId = worksheetDataSourceInfo.primaryDataSource; - dataSources.push(_this.createDataSourceById(primaryId, dataSchema.dataSources[primaryId])); - // Then, loop through any secondary data sources and add them. - for (var _i = 0, _a = worksheetDataSourceInfo.referencedDataSourceList; _i < _a.length; _i++) { - var secondaryId = _a[_i]; - if (secondaryId !== primaryId) { - dataSources.push(_this.createDataSourceById(secondaryId, dataSchema.dataSources[secondaryId])); - } - } - return dataSources; - }); - }; - WorksheetImpl.prototype.getFiltersAsync = function () { - var service = api_shared_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */); - return service.getFiltersAsync(this.visualId); - }; - WorksheetImpl.prototype.getSelectedMarksAsync = function () { - var service = api_shared_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */); - return service.getSelectedMarksAsync(this.visualId); - }; - WorksheetImpl.prototype.getHighlightedMarksAsync = function () { - var service = api_shared_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */); - return service.getHighlightedMarksAsync(this.visualId); - }; - WorksheetImpl.prototype.getSummaryDataAsync = function (options) { - var service = api_shared_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */); - options = options || {}; - return service.getUnderlyingDataAsync(this.visualId, api_shared_1.GetDataType.Summary, !!options.ignoreAliases, !!options.ignoreSelection, true, 0); - }; - WorksheetImpl.prototype.getUnderlyingDataAsync = function (options) { - var service = api_shared_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */); - options = options || {}; - return service.getUnderlyingDataAsync(this.visualId, api_shared_1.GetDataType.Underlying, !!options.ignoreAliases, !!options.ignoreSelection, !!options.includeAllColumns, options.maxRows || 0); - }; - WorksheetImpl.prototype.clearSelectedMarksAsync = function () { - var service = api_shared_1.ApiServiceRegistry.instance.getService("selection-service" /* Selection */); - return service.clearSelectedMarksAsync(this.visualId); - }; - WorksheetImpl.prototype.selectMarksByValueAsync = function (selections, selectionUpdateType) { - var service = api_shared_1.ApiServiceRegistry.instance.getService("selection-service" /* Selection */); - return service.selectMarksByValueAsync(this.visualId, selections, selectionUpdateType); - }; - WorksheetImpl.prototype.selectMarksByIdAsync = function (selections, selectionUpdateType) { - var service = api_shared_1.ApiServiceRegistry.instance.getService("selection-service" /* Selection */); - return service.selectMarksByIdAsync(this.visualId, selections, selectionUpdateType); - }; - WorksheetImpl.prototype.createDataSourceById = function (id, dataSourceInfo) { - var dataSourceImpl = new DataSourceImpl_1.DataSourceImpl(dataSourceInfo); - var dataSource = new DataSource_1.DataSource(dataSourceImpl); - return dataSource; - }; - return WorksheetImpl; - }(SheetImpl_1.SheetImpl)); - exports.WorksheetImpl = WorksheetImpl; - - -/***/ }, -/* 58 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var DataSource = (function () { - function DataSource(_dataSourceImpl) { - this._dataSourceImpl = _dataSourceImpl; - } - Object.defineProperty(DataSource.prototype, "name", { - get: function () { - return this._dataSourceImpl.name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataSource.prototype, "id", { - get: function () { - return this._dataSourceImpl.id; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataSource.prototype, "fields", { - get: function () { - return this._dataSourceImpl.fields; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataSource.prototype, "connectionSummaries", { - get: function () { - return this._dataSourceImpl.connectionSummaries; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataSource.prototype, "extractUpdateTime", { - get: function () { - return this._dataSourceImpl.extractUpdateTime; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataSource.prototype, "isExtract", { - get: function () { - return this._dataSourceImpl.isExtract; - }, - enumerable: true, - configurable: true - }); - DataSource.prototype.refreshAsync = function () { - return this._dataSourceImpl.refreshAsync(); - }; - DataSource.prototype.getUnderlyingData = function (options) { - return this._dataSourceImpl.getUnderlyingData(); - }; - return DataSource; - }()); - exports.DataSource = DataSource; - - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_shared_1 = __webpack_require__(8); - var FieldImpl_1 = __webpack_require__(60); - var Field_1 = __webpack_require__(61); - var DataSourceImpl = (function () { - function DataSourceImpl(_dataSourceInfo) { - var _this = this; - this._dataSourceInfo = _dataSourceInfo; - this._fields = _dataSourceInfo.fields.map(function (fieldModel) { - var fieldImpl = new FieldImpl_1.FieldImpl(fieldModel, _this); - return new Field_1.Field(fieldImpl); - }); - } - Object.defineProperty(DataSourceImpl.prototype, "name", { - get: function () { - return this._dataSourceInfo.name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataSourceImpl.prototype, "id", { - get: function () { - return this._dataSourceInfo.id; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataSourceImpl.prototype, "extractUpdateTime", { - get: function () { - return this._dataSourceInfo.extractUpdateTime; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataSourceImpl.prototype, "fields", { - get: function () { - return this._fields; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataSourceImpl.prototype, "isExtract", { - get: function () { - return this._dataSourceInfo.isExtract; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataSourceImpl.prototype, "connectionSummaries", { - get: function () { - throw new Error('DataSource connectionSummaries API not yet implemented.'); - }, - enumerable: true, - configurable: true - }); - DataSourceImpl.prototype.refreshAsync = function () { - var dataSourceService = api_shared_1.ApiServiceRegistry.instance.getService("data-source-service" /* DataSourceService */); - return dataSourceService.refreshAsync(this._dataSourceInfo.id); - }; - DataSourceImpl.prototype.getUnderlyingData = function (options) { - throw new Error('DataSource getUnderlyingData API not yet implemented.'); - }; - return DataSourceImpl; - }()); - exports.DataSourceImpl = DataSourceImpl; - - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_shared_1 = __webpack_require__(8); - var FieldImpl = (function () { - function FieldImpl(_fieldInfo, _parentDataSource) { - this._fieldInfo = _fieldInfo; - this._parentDataSource = _parentDataSource; - } - Object.defineProperty(FieldImpl.prototype, "name", { - get: function () { - return this._fieldInfo.name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(FieldImpl.prototype, "id", { - get: function () { - return this._fieldInfo.id; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(FieldImpl.prototype, "description", { - get: function () { - return this._fieldInfo.description; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(FieldImpl.prototype, "aggregation", { - get: function () { - return api_shared_1.InternalToExternalEnumMappings.fieldAggregationType.convert(this._fieldInfo.aggregation); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(FieldImpl.prototype, "dataSource", { - get: function () { - return this._parentDataSource; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(FieldImpl.prototype, "role", { - get: function () { - return api_shared_1.InternalToExternalEnumMappings.fieldRoleType.convert(this._fieldInfo.role); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(FieldImpl.prototype, "isHidden", { - get: function () { - return this._fieldInfo.isHidden; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(FieldImpl.prototype, "isGenerated", { - get: function () { - return this._fieldInfo.isGenerated; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(FieldImpl.prototype, "isCalculatedField", { - get: function () { - return this._fieldInfo.isCalculatedField; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(FieldImpl.prototype, "isCombinedField", { - get: function () { - return this._fieldInfo.isCombinedField; - }, - enumerable: true, - configurable: true - }); - FieldImpl.prototype.getCalculatedFieldAsync = function () { - throw new Error('Field getCalculatedFieldAsync method not yet implemented.'); - }; - return FieldImpl; - }()); - exports.FieldImpl = FieldImpl; - - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Field = (function () { - function Field(_fieldImpl) { - this._fieldImpl = _fieldImpl; - } - Object.defineProperty(Field.prototype, "name", { - get: function () { - return this._fieldImpl.name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Field.prototype, "id", { - get: function () { - return this._fieldImpl.id; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Field.prototype, "description", { - get: function () { - return this._fieldImpl.description; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Field.prototype, "aggregation", { - get: function () { - return this._fieldImpl.aggregation; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Field.prototype, "dataSource", { - get: function () { - return this._fieldImpl.dataSource; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Field.prototype, "role", { - get: function () { - return this._fieldImpl.role; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Field.prototype, "isHidden", { - get: function () { - return this._fieldImpl.isHidden; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Field.prototype, "isGenerated", { - get: function () { - return this._fieldImpl.isGenerated; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Field.prototype, "isCalculatedField", { - get: function () { - return this._fieldImpl.isCalculatedField; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Field.prototype, "columnType", { - get: function () { - throw new Error('Field.columnType not yet implemetned.'); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Field.prototype, "isCombinedField", { - get: function () { - return this._fieldImpl.isCombinedField; - }, - enumerable: true, - configurable: true - }); - Field.prototype.getCalculatedFieldAsync = function () { - return this._fieldImpl.getCalculatedFieldAsync(); - }; - return Field; - }()); - exports.Field = Field; - - -/***/ }, -/* 62 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_shared_1 = __webpack_require__(8); - var api_utils_1 = __webpack_require__(63); - var SettingsImpl = (function () { - function SettingsImpl(settingsInfo) { - // Since promises can't be introspected for state, keep a variable that - // indicates a save is in progress, so that set/erase can't be called during a save. - this._saveInProgress = false; - this.initializeSettings(settingsInfo); - } - SettingsImpl.prototype.erase = function (key) { - api_utils_1.Param.verifyValue(key, 'key'); - // Only make a modification if we have the key already - if (this._currentSettings[key]) { - this.verifySettingsAreUnlocked(); - delete this._currentSettings[key]; - this._isModified = true; - } - }; - SettingsImpl.prototype.get = function (key) { - api_utils_1.Param.verifyValue(key, 'key'); - return this._currentSettings[key]; - }; - SettingsImpl.prototype.getAll = function () { - // Returns a mutable copy of the settings - return Object.assign({}, this._currentSettings); - }; - Object.defineProperty(SettingsImpl.prototype, "isModified", { - get: function () { - return this._isModified; - }, - enumerable: true, - configurable: true - }); - SettingsImpl.prototype.saveAsync = function () { - var _this = this; - this.verifySettingsAreUnlocked(); - // Just resolve immediately if settings are unchanged - if (!this._isModified) { - return Promise.resolve(this._currentSettings); - } - this._saveInProgress = true; - // Use the settings service to save settings to twb - var settingsService = api_shared_1.ApiServiceRegistry.instance.getService("SettingsService" /* SettingsService */); - return settingsService.saveSettingsAsync(this._currentSettings).then(function (newSettings) { - _this._saveInProgress = false; - _this._isModified = false; - Object.assign(_this._currentSettings, newSettings); - return newSettings; - }); - }; - SettingsImpl.prototype.set = function (key, value) { - api_utils_1.Param.verifyValue(key, 'key'); // Key shouldn't be an empty string. - api_utils_1.Param.verifyString(value, 'value'); // Empty string value is allowed. - this.verifySettingsAreUnlocked(); - this._currentSettings[key] = value; - this._isModified = true; - }; - SettingsImpl.prototype.initializeSettings = function (settingsInfo) { - api_utils_1.Param.verifyValue(settingsInfo, 'settingsInfo'); - api_utils_1.Param.verifyValue(settingsInfo.settingsValues, 'settingsInfo.SettingsValues'); - this._currentSettings = settingsInfo.settingsValues; - // Reset the isModified flag - this._isModified = false; - }; - /** - * This helper should be called before any local update to this.currentSettings. - * Checks if a current save call is still in progress and throws an error if so. - */ - SettingsImpl.prototype.verifySettingsAreUnlocked = function () { - if (this._saveInProgress) { - throw new Error('Async Save is in progress, updating settings is not allowed.'); - } - }; - return SettingsImpl; - }()); - exports.SettingsImpl = SettingsImpl; - - -/***/ }, -/* 63 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - Object.defineProperty(exports, "__esModule", { value: true }); - var EnumConverter_1 = __webpack_require__(29); - exports.EnumConverter = EnumConverter_1.EnumConverter; - var Param_1 = __webpack_require__(30); - exports.Param = Param_1.Param; - - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Implementation of the external AddIn namespace. - */ - var AddIn = (function () { - function AddIn(addInImpl) { - this.addInImpl = addInImpl; - this.addInImpl = addInImpl; - } - Object.defineProperty(AddIn.prototype, "dashboardContent", { - get: function () { - return this.addInImpl.dashboardContent; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(AddIn.prototype, "environment", { - get: function () { - return this.addInImpl.environment; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(AddIn.prototype, "settings", { - get: function () { - return this.addInImpl.settings; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(AddIn.prototype, "ui", { - get: function () { - throw new Error('API call not yet implemented'); - }, - enumerable: true, - configurable: true - }); - AddIn.prototype.initializeAsync = function () { - return this.addInImpl.initializeAsync(); - }; - return AddIn; - }()); - exports.AddIn = AddIn; - - -/***/ } -/******/ ]) -}); -; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovLy93ZWJwYWNrL2Jvb3RzdHJhcCA0MGY1MTI0NDdjNjliMGE4Njc2NCIsIndlYnBhY2s6Ly8vLi4vc3JjL0FkZEluQXBpLnRzIiwid2VicGFjazovLy8uLi9zcmMvSW50ZXJuYWwvQWRkSW5JbXBsLnRzIiwid2VicGFjazovLy9EOi9kZXYvdHlwZXNjcmlwdC9qcy1hcGkvYXBpLWludGVybmFsLWNvbnRyYWN0L3NyYy9BcGlJbnRlcm5hbENvbnRyYWN0LnRzIiwid2VicGFjazovLy9EOi9kZXYvdHlwZXNjcmlwdC9qcy1hcGkvYXBpLWludGVybmFsLWNvbnRyYWN0L3NyYy9pbnRlcmZhY2UvRW51bXMudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3Qvc3JjL2ludGVyZmFjZS9JbnRlcm5hbEFwaURpc3BhdGNoZXIudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3Qvc3JjL2ludGVyZmFjZS9Ob3RpZmljYXRpb25zLnRzIiwid2VicGFjazovLy9EOi9kZXYvdHlwZXNjcmlwdC9qcy1hcGkvYXBpLWludGVybmFsLWNvbnRyYWN0L3NyYy9pbnRlcmZhY2UvUGFyYW1ldGVycy50cyIsIndlYnBhY2s6Ly8vRDovZGV2L3R5cGVzY3JpcHQvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9zcmMvaW50ZXJmYWNlL1ZlcmJzLnRzIiwid2VicGFjazovLy9EOi9kZXYvdHlwZXNjcmlwdC9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvQXBpU2hhcmVkLnRzIiwid2VicGFjazovLy9EOi9kZXYvdHlwZXNjcmlwdC9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRXZlbnRMaXN0ZW5lck1hbmFnZXIudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9QYXJhbWV0ZXIudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9Qb2ludC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L3R5cGVzY3JpcHQvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NpemUudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9Nb2RlbHMvR2V0RGF0YU1vZGVscy50cyIsIndlYnBhY2s6Ly8vRDovZGV2L3R5cGVzY3JpcHQvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0V4Y2VwdGlvbnMvVGFibGVhdUV4Y2VwdGlvbnMudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FdmVudHMvRmlsdGVyQ2hhbmdlZEV2ZW50LnRzIiwid2VicGFjazovLy9EOi9kZXYvdHlwZXNjcmlwdC9qcy1hcGkvYXBpLWV4dGVybmFsLWNvbnRyYWN0L3NyYy9BcGlFeHRlcm5hbENvbnRyYWN0LnRzIiwid2VicGFjazovLy9EOi9kZXYvdHlwZXNjcmlwdC9qcy1hcGkvYXBpLWV4dGVybmFsLWNvbnRyYWN0L3NyYy9FbnVtcy50cyIsIndlYnBhY2s6Ly8vRDovZGV2L3R5cGVzY3JpcHQvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0V2ZW50cy9UYWJsZWF1V29ya3NoZWV0RXZlbnQudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FdmVudHMvVGFibGVhdVNoZWV0RXZlbnQudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FdmVudHMvVGFibGVhdUV2ZW50LnRzIiwid2VicGFjazovLy9EOi9kZXYvdHlwZXNjcmlwdC9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRXZlbnRzL01hcmtzU2VsZWN0ZWRFdmVudC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L3R5cGVzY3JpcHQvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0ludGVybmFsL1NpbmdsZUV2ZW50TWFuYWdlckltcGwudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9HZXREYXRhU2VydmljZS50cyIsIndlYnBhY2s6Ly8vRDovZGV2L3R5cGVzY3JpcHQvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NlcnZpY2VzL1JlZ2lzdGVyQWxsU2hhcmVkU2VydmljZXMudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9pbXBsL0RhdGFTb3VyY2VTZXJ2aWNlSW1wbC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L3R5cGVzY3JpcHQvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NlcnZpY2VzL2ltcGwvRmlsdGVyU2VydmljZUltcGwudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktdXRpbHMvc3JjL0FwaVV0aWxzLnRzIiwid2VicGFjazovLy9EOi9kZXYvdHlwZXNjcmlwdC9qcy1hcGkvYXBpLXV0aWxzL3NyYy9FbnVtQ29udmVydGVyLnRzIiwid2VicGFjazovLy9EOi9kZXYvdHlwZXNjcmlwdC9qcy1hcGkvYXBpLXV0aWxzL3NyYy9QYXJhbS50cyIsIndlYnBhY2s6Ly8vRDovZGV2L3R5cGVzY3JpcHQvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0VudW1NYXBwaW5ncy9FeHRlcm5hbFRvSW50ZXJuYWxFbnVtTWFwcGluZ3MudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FbnVtTWFwcGluZ3MvSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLnRzIiwid2VicGFjazovLy9EOi9kZXYvdHlwZXNjcmlwdC9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvTW9kZWxzL0ZpbHRlck1vZGVscy50cyIsIndlYnBhY2s6Ly8vRDovZGV2L3R5cGVzY3JpcHQvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NlcnZpY2VzL2ltcGwvR2V0RGF0YVNlcnZpY2VJbXBsLnRzIiwid2VicGFjazovLy9EOi9kZXYvdHlwZXNjcmlwdC9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvU2VydmljZXMvaW1wbC9Ob3RpZmljYXRpb25TZXJ2aWNlSW1wbC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L3R5cGVzY3JpcHQvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NlcnZpY2VzL2ltcGwvUGFyYW1ldGVyc1NlcnZpY2VJbXBsLnRzIiwid2VicGFjazovLy9EOi9kZXYvdHlwZXNjcmlwdC9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvSW50ZXJuYWwvUGFyYW1ldGVySW1wbC50cyIsIndlYnBhY2s6Ly8vRDovZGV2L3R5cGVzY3JpcHQvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0V2ZW50cy9QYXJhbWV0ZXJDaGFuZ2VkRXZlbnQudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9TZXJ2aWNlUmVnaXN0cnkudHMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9pbXBsL1NlbGVjdGlvblNlcnZpY2VJbXBsLnRzIiwid2VicGFjazovLy9EOi9kZXYvdHlwZXNjcmlwdC9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvTW9kZWxzL1NlbGVjdGlvbk1vZGVscy50cyIsIndlYnBhY2s6Ly8vLi4vc3JjL0Rhc2hib2FyZC50cyIsIndlYnBhY2s6Ly8vLi4vc3JjL1NoZWV0LnRzIiwid2VicGFjazovLy8uLi9zcmMvTmFtZXNwYWNlcy9EYXNoYm9hcmRDb250ZW50LnRzIiwid2VicGFjazovLy8uLi9zcmMvTmFtZXNwYWNlcy9FbnZpcm9ubWVudC50cyIsIndlYnBhY2s6Ly8vLi4vc3JjL05hbWVzcGFjZXMvU2V0dGluZ3MudHMiLCJ3ZWJwYWNrOi8vLy4uL3NyYy9TZXJ2aWNlcy9SZWdpc3RlckFsbEFkZEluU2VydmljZXMudHMiLCJ3ZWJwYWNrOi8vLy4uL3NyYy9TZXJ2aWNlcy9JbXBsL0luaXRpYWxpemF0aW9uU2VydmljZUltcGwudHMiLCJ3ZWJwYWNrOi8vLy4uL3NyYy9TZXJ2aWNlcy9JbXBsL1NldHRpbmdzU2VydmljZUltcGwudHMiLCJ3ZWJwYWNrOi8vLy4uL3NyYy9WZXJzaW9uTnVtYmVyLnRzIiwid2VicGFjazovLy8uLi9zcmMvSW50ZXJuYWwvRGFzaGJvYXJkSW1wbC50cyIsIndlYnBhY2s6Ly8vLi4vc3JjL0Rhc2hib2FyZE9iamVjdC50cyIsIndlYnBhY2s6Ly8vLi4vc3JjL1dvcmtzaGVldC50cyIsIndlYnBhY2s6Ly8vLi4vc3JjL0ludGVybmFsL1NoZWV0SW1wbC50cyIsIndlYnBhY2s6Ly8vLi4vc3JjL0ludGVybmFsL1NoZWV0SW5mb0ltcGwudHMiLCJ3ZWJwYWNrOi8vLy4uL3NyYy9JbnRlcm5hbC9Xb3Jrc2hlZXRJbXBsLnRzIiwid2VicGFjazovLy8uLi9zcmMvRGF0YVNvdXJjZS50cyIsIndlYnBhY2s6Ly8vLi4vc3JjL0ludGVybmFsL0RhdGFTb3VyY2VJbXBsLnRzIiwid2VicGFjazovLy8uLi9zcmMvSW50ZXJuYWwvRmllbGRJbXBsLnRzIiwid2VicGFjazovLy8uLi9zcmMvRmllbGQudHMiLCJ3ZWJwYWNrOi8vLy4uL3NyYy9JbnRlcm5hbC9TZXR0aW5nc0ltcGwudHMiLCJ3ZWJwYWNrOi8vLy4uL3NyYy9OYW1lc3BhY2VzL0FkZEluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxPO0FDVkE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsdUJBQWU7QUFDZjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7Ozs7Ozs7QUN0Q0E7Ozs7SUFJRzs7QUFFSCwyRkFBMEY7QUFDMUYsNkZBQTRGO0FBQzVGLG1CQUFrQjtBQUVsQiwwQ0FBaUQ7QUFDakQsdUNBQTJDO0FBRTNDLEtBQU0sU0FBUyxHQUFHLElBQUkscUJBQVMsRUFBRSxDQUFDO0FBQ3JCLGNBQUssR0FBRyxJQUFJLGFBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUUxQyxnQkFBZTtBQUNmLDRFQUEyRTtBQUMzRSx1REF5QndDO0FBeEJ0Qyw0REFBWTtBQUNaLHNEQUFTO0FBQ1QsMEVBQW1CO0FBQ25CLHdEQUFVO0FBQ1YsMEVBQW1CO0FBQ25CLG9EQUFRO0FBQ1IsOERBQWE7QUFDYixrRUFBZTtBQUNmLDREQUFZO0FBQ1osd0RBQVU7QUFDViw0RUFBb0I7QUFDcEIsOERBQWE7QUFDYix3REFBVTtBQUNWLG9FQUFnQjtBQUNoQixvRUFBZ0I7QUFDaEIsb0RBQVE7QUFDUix3RUFBa0I7QUFDbEIsd0RBQVU7QUFDVix3RUFBa0I7QUFDbEIsMEVBQW1CO0FBQ25CLHNEQUFTO0FBQ1QsOERBQWE7QUFDYixvRUFBZ0I7QUFDaEIsd0VBQWtCOzs7Ozs7Ozs7QUMxQ3BCLHNEQU13QztBQUN4QywyQ0FBb0Y7QUFFcEYsMkNBQXlDO0FBQ3pDLGtEQUFrRTtBQUNsRSw2Q0FBd0Q7QUFDeEQsMENBQWtEO0FBR2xELDBEQUFnRjtBQUNoRiwrQ0FBaUQ7QUFDakQsK0NBQWdEO0FBQ2hELDhDQUE4QztBQUU5QztLQUFBO0tBd0RBLENBQUM7S0FqRFEsbUNBQWUsR0FBdEI7U0FBQSxpQkFlQztTQWRDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQzthQUNqQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxPQUFPLENBQU8sVUFBQyxPQUFPLEVBQUUsTUFBTTtpQkFDOUQsdUdBQXVHO2lCQUN2RyxFQUFFLENBQUMsQ0FBQyxtREFBMkIsQ0FBQyw4QkFBOEIsRUFBRSxDQUFDLENBQUMsQ0FBQztxQkFDakUsdUNBQXVDO3FCQUN2QyxJQUFNLHdCQUF3QixHQUFHLG1EQUEyQixDQUFDLDJCQUEyQixFQUFFLENBQUM7cUJBQzNGLHdCQUF3QixDQUFDLElBQUksQ0FBQyxLQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQVEsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDakcsQ0FBQztpQkFBQyxJQUFJLENBQUMsQ0FBQztxQkFDTixNQUFNLENBQUMscURBQXFELENBQUMsQ0FBQztpQkFDaEUsQ0FBQzthQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0wsQ0FBQztTQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUM7S0FDckMsQ0FBQztLQUVPLHdDQUFvQixHQUE1QixVQUE2QixVQUFpQztTQUE5RCxpQkFvQkM7U0FuQkMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLDZCQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7U0FFcEQsb0ZBQW9GO1NBQ3BGLHNDQUF5QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3RDLG1EQUF3QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBRXJDLDREQUE0RDtTQUM1RCxJQUFNLHFCQUFxQixHQUFHLCtCQUFrQixDQUFDLFFBQVEsQ0FBQyxVQUFVLHFEQUMxQixDQUFDO1NBRTNDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyw2QkFBNkIsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBTTthQUN0RSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7aUJBQ2hELE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQzthQUNoRCxDQUFDO2FBRUQsS0FBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUksQ0FBQywwQkFBMEIsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDL0gsS0FBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLHlCQUFXLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7YUFDNUQsS0FBSSxDQUFDLFFBQVEsR0FBRyxLQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDcEUsQ0FBQyxDQUFDLENBQUM7S0FDTCxDQUFDO0tBRU8sOENBQTBCLEdBQWxDLFVBQW1DLElBQXdCLEVBQUUsU0FBb0I7U0FDL0UsSUFBTSxhQUFhLEdBQUcsSUFBSSw2QkFBYSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztTQUN6RCxJQUFNLFNBQVMsR0FBRyxJQUFJLHFCQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDL0MsTUFBTSxDQUFDLElBQUksbUNBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDekMsQ0FBQztLQUVPLHNDQUFrQixHQUExQixVQUEyQixZQUErQjtTQUN4RCxJQUFNLFlBQVksR0FBRyxJQUFJLDJCQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDcEQsTUFBTSxDQUFDLElBQUksbUJBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztLQUNwQyxDQUFDO0tBQ0gsZ0JBQUM7QUFBRCxFQUFDO0FBeERZLCtCQUFTOzs7Ozs7OztBQ3BCdEI7Ozs7SUFJRzs7Ozs7QUFFSCxrQ0FBa0M7QUFDbEMsa0NBQWtEO0FBRWxELGtDQUEwQztBQUMxQyxrQ0FBdUM7QUFDdkMsa0NBQWtDOzs7Ozs7Ozs7QUNYbEMsS0FBWSxZQUlYO0FBSkQsWUFBWSxZQUFZO0tBQ3RCLG1DQUFtQjtLQUNuQixpQ0FBaUI7S0FDakIsbUNBQW1CO0FBQ3JCLEVBQUMsRUFKVyxZQUFZLEdBQVosb0JBQVksS0FBWixvQkFBWSxRQUl2QjtBQUVELEtBQVksU0FJWDtBQUpELFlBQVksU0FBUztLQUNuQixvQ0FBdUI7S0FDdkIsZ0NBQW1CO0tBQ25CLGdDQUFtQjtBQUNyQixFQUFDLEVBSlcsU0FBUyxHQUFULGlCQUFTLEtBQVQsaUJBQVMsUUFJcEI7QUFFRCxLQUFZLFVBR1g7QUFIRCxZQUFZLFVBQVU7S0FDcEIsbUNBQXFCO0tBQ3JCLHVDQUF5QjtBQUMzQixFQUFDLEVBSFcsVUFBVSxHQUFWLGtCQUFVLEtBQVYsa0JBQVUsUUFHckI7QUFFRCxLQUFZLG1CQVlYO0FBWkQsWUFBWSxtQkFBbUI7S0FDN0Isc0NBQWU7S0FDZiw4Q0FBdUI7S0FDdkIsbURBQTRCO0tBQzVCLDZEQUFzQztLQUN0QyxpREFBMEI7S0FDMUIsd0NBQWlCO0tBQ2pCLHNDQUFlO0tBQ2Ysb0NBQWE7S0FDYixzQ0FBZTtLQUNmLDJDQUFvQjtLQUNwQixzQ0FBZTtBQUNqQixFQUFDLEVBWlcsbUJBQW1CLEdBQW5CLDJCQUFtQixLQUFuQiwyQkFBbUIsUUFZOUI7QUFFRCxLQUFZLFFBUVg7QUFSRCxZQUFZLFFBQVE7S0FDbEIsNkJBQWlCO0tBQ2pCLHVCQUFXO0tBQ1gsMkJBQWU7S0FDZix5QkFBYTtLQUNiLHlCQUFhO0tBQ2Isa0NBQXNCO0tBQ3RCLCtCQUFtQjtBQUNyQixFQUFDLEVBUlcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFRbkI7QUFFRCxLQUFZLGVBS1g7QUFMRCxZQUFZLGVBQWU7S0FDekIsb0NBQWlCO0tBQ2pCLG9DQUFpQjtLQUNqQixnQ0FBYTtLQUNiLHNDQUFtQjtBQUNyQixFQUFDLEVBTFcsZUFBZSxHQUFmLHVCQUFlLEtBQWYsdUJBQWUsUUFLMUI7QUFFRCxLQUFZLFNBS1g7QUFMRCxZQUFZLFNBQVM7S0FDbkIseUNBQTRCO0tBQzVCLDJFQUE4RDtLQUM5RCxnRUFBbUQ7S0FDbkQsbUVBQXNEO0FBQ3hELEVBQUMsRUFMVyxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQUtwQjtBQUVELEtBQVksb0JBd0NYO0FBeENELFlBQVksb0JBQW9CO0tBQzlCLG1DQUFXO0tBQ1gsbUNBQVc7S0FDWCxtQ0FBVztLQUNYLG1DQUFXO0tBQ1gsdUNBQWU7S0FDZix5Q0FBaUI7S0FDakIsbUNBQVc7S0FDWCxxQ0FBYTtLQUNiLHVDQUFlO0tBQ2YseUNBQWlCO0tBQ2pCLHlDQUFpQjtLQUNqQixxQ0FBYTtLQUNiLHFDQUFhO0tBQ2IscUNBQWE7S0FDYixtQ0FBVztLQUNYLHVDQUFlO0tBQ2YsbUNBQVc7S0FDWCxxQ0FBYTtLQUNiLHlDQUFpQjtLQUNqQix5Q0FBaUI7S0FDakIscUNBQWE7S0FDYiwyQ0FBbUI7S0FDbkIsZ0RBQXdCO0tBQ3hCLG1DQUFXO0tBQ1gsbUNBQVc7S0FDWCxnREFBd0I7S0FDeEIsOENBQXNCO0tBQ3RCLGtEQUEwQjtLQUMxQixnREFBd0I7S0FDeEIsOENBQXNCO0tBQ3RCLGdEQUF3QjtLQUN4QixvREFBNEI7S0FDNUIsb0RBQTRCO0tBQzVCLHlDQUFpQjtLQUNqQix5Q0FBaUI7S0FDakIsNkNBQXFCO0tBQ3JCLDZDQUFxQjtLQUNyQix3Q0FBZ0I7S0FDaEIscUNBQWE7QUFDZixFQUFDLEVBeENXLG9CQUFvQixHQUFwQiw0QkFBb0IsS0FBcEIsNEJBQW9CLFFBd0MvQjtBQUVELEtBQVksYUFJWDtBQUpELFlBQVksYUFBYTtLQUN2Qix3Q0FBdUI7S0FDdkIsb0NBQW1CO0tBQ25CLG9DQUFtQjtBQUNyQixFQUFDLEVBSlcsYUFBYSxHQUFiLHFCQUFhLEtBQWIscUJBQWEsUUFJeEI7QUFFRDs7SUFFRztBQUNILEtBQVksZ0JBS1g7QUFMRCxZQUFZLGdCQUFnQjtLQUMxQiwrQkFBVztLQUNYLCtCQUFXO0tBQ1gsdUNBQW1CO0tBQ25CLHFDQUFpQjtBQUNuQixFQUFDLEVBTFcsZ0JBQWdCLEdBQWhCLHdCQUFnQixLQUFoQix3QkFBZ0IsUUFLM0I7QUFFRCxLQUFZLFNBS1g7QUFMRCxZQUFZLFNBQVM7S0FDbkIsb0NBQXVCO0tBQ3ZCLDRCQUFlO0tBQ2Ysb0NBQXVCO0tBQ3ZCLDRCQUFlO0FBQ2pCLEVBQUMsRUFMVyxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQUtwQjtBQUVELEtBQVkscUJBSVg7QUFKRCxZQUFZLHFCQUFxQjtLQUMvQixvQ0FBVztLQUNYLHNDQUFhO0tBQ2Isd0NBQWU7QUFDakIsRUFBQyxFQUpXLHFCQUFxQixHQUFyQiw2QkFBcUIsS0FBckIsNkJBQXFCLFFBSWhDO0FBRUQsS0FBWSxjQVNYO0FBVEQsWUFBWSxjQUFjO0tBQ3hCLGlDQUFlO0tBQ2YsdUNBQXFCO0tBQ3JCLG1DQUFpQjtLQUNqQixpQ0FBZTtLQUNmLCtCQUFhO0tBQ2IsaUNBQWU7S0FDZixxQ0FBbUI7S0FDbkIscUNBQW1CO0FBQ3JCLEVBQUMsRUFUVyxjQUFjLEdBQWQsc0JBQWMsS0FBZCxzQkFBYyxRQVN6QjtBQUVEOztJQUVHO0FBQ0gsS0FBWSxnQkFJWDtBQUpELFlBQVksZ0JBQWdCO0tBQzFCLDZDQUF5QjtLQUN6QixtREFBK0I7S0FDL0IsMkNBQXVCO0FBQ3pCLEVBQUMsRUFKVyxnQkFBZ0IsR0FBaEIsd0JBQWdCLEtBQWhCLHdCQUFnQixRQUkzQjtBQUVEOztJQUVHO0FBQ0gsS0FBWSxtQkFJWDtBQUpELFlBQVksbUJBQW1CO0tBQzdCLGlEQUEwQjtLQUMxQix5Q0FBa0I7S0FDbEIsK0NBQXdCO0FBQzFCLEVBQUMsRUFKVyxtQkFBbUIsR0FBbkIsMkJBQW1CLEtBQW5CLDJCQUFtQixRQUk5QjtBQUVEOztJQUVHO0FBQ0gsS0FBWSwwQkFJWDtBQUpELFlBQVksMEJBQTBCO0tBQ3BDLDBEQUE0QjtLQUM1QixpRUFBbUM7S0FDbkMsd0RBQTBCO0FBQzVCLEVBQUMsRUFKVywwQkFBMEIsR0FBMUIsa0NBQTBCLEtBQTFCLGtDQUEwQixRQUlyQztBQUVEOztJQUVHO0FBQ0gsS0FBWSxRQVlYO0FBWkQsWUFBWSxRQUFRO0tBQ2hCLHVCQUFXO0tBQ1gseUJBQWE7S0FDYix5QkFBYTtLQUNiLDZCQUFpQjtLQUNqQiw2QkFBaUI7S0FDakIsMkJBQWU7S0FDZix5QkFBYTtLQUNiLHVCQUFXO0tBQ1gsdUJBQVc7S0FDWCxrQ0FBc0I7S0FDdEIsK0JBQW1CO0FBQ3ZCLEVBQUMsRUFaVyxRQUFRLEdBQVIsZ0JBQVEsS0FBUixnQkFBUSxRQVluQjtBQUVEOztJQUVHO0FBQ0gsS0FBWSxVQUtYO0FBTEQsWUFBWSxVQUFVO0tBQ3BCLHlDQUEyQjtLQUMzQiw2QkFBZTtLQUNmLDJDQUE2QjtLQUM3QiwyQ0FBNkI7QUFDL0IsRUFBQyxFQUxXLFVBQVUsR0FBVixrQkFBVSxLQUFWLGtCQUFVLFFBS3JCO0FBRUQ7O0lBRUc7QUFDSCxLQUFZLGFBeUJYO0FBekJELFlBQVksYUFBYTtLQUN2Qjs7UUFFRztLQUNILDhCQUFhO0tBQ2I7O1FBRUc7S0FDSCxnQ0FBZTtLQUNmOztRQUVHO0tBQ0gsOEJBQWE7S0FDYjs7UUFFRztLQUNILGdDQUFlO0tBQ2Y7O1FBRUc7S0FDSCxvQ0FBbUI7S0FDbkI7O1FBRUc7S0FDSCxrQ0FBaUI7QUFDbkIsRUFBQyxFQXpCVyxhQUFhLEdBQWIscUJBQWEsS0FBYixxQkFBYSxRQXlCeEI7Ozs7Ozs7OztBQzVMRCxLQUFpQiwyQkFBMkIsQ0FZM0M7QUFaRCxZQUFpQiwyQkFBMkI7S0FDMUM7U0FDRSxNQUFNLENBQUMsTUFBTSxDQUFDLDBCQUEwQixDQUFDO0tBQzNDLENBQUM7S0FGZSx1REFBMkIsOEJBRTFDO0tBRUQ7U0FDRSxNQUFNLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLDJCQUEyQixFQUFFLENBQUM7S0FDckUsQ0FBQztLQUZlLDBEQUE4QixpQ0FFN0M7S0FFRCxxQ0FBNEMsVUFBMEM7U0FDcEYsTUFBTSxDQUFDLDBCQUEwQixHQUFHLFVBQVUsQ0FBQztLQUNqRCxDQUFDO0tBRmUsdURBQTJCLDhCQUUxQztBQUNILEVBQUMsRUFaZ0IsMkJBQTJCLEdBQTNCLG1DQUEyQixLQUEzQixtQ0FBMkIsUUFZM0M7Ozs7Ozs7OztBQzNDRCxLQUFZLGNBSVg7QUFKRCxZQUFZLGNBQWM7S0FDeEIsaUVBQStDO0tBQy9DLHdEQUFzQztLQUN0QyxrREFBZ0M7QUFDbEMsRUFBQyxFQUpXLGNBQWMsR0FBZCxzQkFBYyxLQUFkLHNCQUFjLFFBSXpCOzs7Ozs7Ozs7QUNKRCxLQUFZLFdBMENYO0FBMUNELFlBQVksV0FBVztLQUNyQiw4Q0FBK0I7S0FDL0IsMkRBQTRDO0tBQzVDLHlEQUEwQztLQUMxQyxxQ0FBc0I7S0FDdEIsdUNBQXdCO0tBQ3hCLCtDQUFnQztLQUNoQyxtREFBb0M7S0FDcEMsd0RBQXlDO0tBQ3pDLG1DQUFvQjtLQUNwQiw0REFBNkM7S0FDN0MsMkVBQTREO0tBQzVELGlEQUFrQztLQUNsQyw2Q0FBOEI7S0FDOUIsbURBQW9DO0tBRW5DLGdCQUFnQjtLQUNqQix1Q0FBd0I7S0FDeEIsNkNBQThCO0tBQzlCLHNEQUF1QztLQUN2QywyQ0FBNEI7S0FDNUIsa0RBQW1DO0tBQ25DLGtEQUFtQztLQUNuQyxpRUFBa0Q7S0FDbEQscURBQXNDO0tBRXRDLCtDQUFnQztLQUNoQywwQ0FBMkI7S0FFM0IsK0NBQWdDO0tBQ2hDLGlEQUFrQztLQUNsQyxxREFBc0M7S0FDdEMsMERBQTJDO0tBQzNDLGlEQUFrQztLQUNsQyxzQ0FBdUI7S0FDdkIsMERBQTJDO0tBQzNDLDBFQUEyRDtLQUMzRCwyRUFBNEQ7S0FDNUQsc0VBQXVEO0tBRXZELDhDQUErQjtLQUMvQix5Q0FBMEI7QUFDNUIsRUFBQyxFQTFDVyxXQUFXLEdBQVgsbUJBQVcsS0FBWCxtQkFBVyxRQTBDdEI7Ozs7Ozs7OztBQzFDRCw4RkFBNkY7QUFDN0YsS0FBWSxNQWtCWDtBQWxCRCxZQUFZLE1BQU07S0FDaEIsdURBQTZDO0tBQzdDLDJDQUFpQztLQUNqQyxzQ0FBNEI7S0FDNUIsK0NBQXFDO0tBQ3JDLGlEQUF1QztLQUN2QyxtREFBeUM7S0FDekMsb0RBQTBDO0tBQzFDLGlEQUF1QztLQUN2Qyx1REFBNkM7S0FDN0MsNERBQWtEO0tBQ2xELDBDQUFnQztLQUNoQyx5REFBK0M7S0FDL0MscURBQTJDO0tBQzNDLDJDQUFpQztLQUNqQyw2Q0FBbUM7S0FDbkMsbURBQXlDO0tBQ3pDLG9DQUEwQjtBQUM1QixFQUFDLEVBbEJXLE1BQU0sR0FBTixjQUFNLEtBQU4sY0FBTSxRQWtCakI7Ozs7Ozs7O0FDbkJEOzs7O0lBSUc7Ozs7O0FBRUgsa0NBQXVDO0FBQ3ZDLG1DQUE0QjtBQUM1Qix1Q0FBZ0M7QUFBdkIsOEJBQUs7QUFFZCxzQ0FBOEI7QUFBckIsMkJBQUk7QUFDYixtQ0FBdUM7QUFDdkMsbUNBQStDO0FBQy9DLG1DQUE0QztBQUM1QyxtQ0FBNEM7QUFDNUMsbUNBQXNDO0FBQ3RDLG1DQUEyQztBQUMzQyxtQ0FBK0M7QUFDL0MsbUNBQWtEO0FBRWxELG1DQUEwQztBQUkxQyxtQ0FBcUQ7QUFFckQsbUNBQTJDO0FBQzNDLG1DQUE4RDs7Ozs7Ozs7O0FDdkI5RDs7O0lBR0c7QUFDSDtLQUdFO1NBQ0UsSUFBSSxDQUFDLHNCQUFzQixHQUFHLEVBQUUsQ0FBQztLQUNuQyxDQUFDO0tBRU0sK0NBQWdCLEdBQXZCLFVBQXdCLFNBQW9DLEVBQ3BDLE9BQXVDO1NBQzdELEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDM0QsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBNEIsU0FBVyxDQUFDLENBQUM7U0FDM0QsQ0FBQztTQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDMUUsQ0FBQztLQUVNLGtEQUFtQixHQUExQixVQUEyQixTQUFvQyxFQUFFLE9BQXVDO1NBQ3RHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDM0QsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBNEIsU0FBVyxDQUFDLENBQUM7U0FDM0QsQ0FBQztTQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDN0UsQ0FBQztLQUVTLDhDQUFlLEdBQXpCLFVBQTBCLFlBQWdDO1NBQ3hELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsWUFBWSxDQUFDO0tBQ3JFLENBQUM7S0FDSCwyQkFBQztBQUFELEVBQUM7QUEzQlkscURBQW9COzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDTmpDLHFEQUE4RDtBQUc5RDs7O0lBR0c7QUFDSDtLQUErQiw2QkFBb0I7S0FDakQsbUJBQTJCLGFBQTRCLEVBQUUsS0FBcUI7U0FBOUUsWUFDRSxpQkFBTyxTQUlSO1NBTDBCLG1CQUFhLEdBQWIsYUFBYSxDQUFlO1NBR3JELCtDQUErQztTQUMvQyxLQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFDLElBQUksWUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBdkIsQ0FBdUIsQ0FBQyxDQUFDOztLQUNuRixDQUFDO0tBRUQsc0JBQVcsMkJBQUk7Y0FBZjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztTQUNqQyxDQUFDOzs7UUFBQTtLQUVELHNCQUFXLG1DQUFZO2NBQXZCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO1NBQ3pDLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsK0JBQVE7Y0FBbkI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7U0FDckMsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyxzQ0FBZTtjQUExQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQztTQUM1QyxDQUFDOzs7UUFBQTtLQUVNLG9DQUFnQixHQUF2QixVQUF3QixRQUEwQztTQUNoRSxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUN2RCxDQUFDO0tBQ0gsZ0JBQUM7QUFBRCxFQUFDLENBM0I4QiwyQ0FBb0IsR0EyQmxEO0FBM0JZLCtCQUFTOzs7Ozs7Ozs7QUNQdEI7S0FDRSxlQUEyQixFQUFVLEVBQVUsRUFBVTtTQUE5QixPQUFFLEdBQUYsRUFBRSxDQUFRO1NBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBUTtLQUFJLENBQUM7S0FFOUQsc0JBQVcsb0JBQUM7Y0FBWjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1NBQ2pCLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsb0JBQUM7Y0FBWjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1NBQ2pCLENBQUM7OztRQUFBO0tBQ0gsWUFBQztBQUFELEVBQUM7QUFWWSx1QkFBSzs7Ozs7Ozs7O0FDQWxCO0tBQ0UsY0FBMkIsT0FBZSxFQUFVLE1BQWM7U0FBdkMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtTQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7S0FBSSxDQUFDO0tBRXZFLHNCQUFXLHdCQUFNO2NBQWpCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7U0FDdEIsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyx1QkFBSztjQUFoQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3JCLENBQUM7OztRQUFBO0tBQ0gsV0FBQztBQUFELEVBQUM7QUFWWSxxQkFBSTs7Ozs7Ozs7O0FDQWpCO0tBR0UsbUJBQ1UsS0FBdUMsRUFDdkMsUUFBZ0MsRUFDaEMsY0FBc0IsRUFDdEIsY0FBdUIsRUFDdkIsVUFBNEI7U0FKNUIsVUFBSyxHQUFMLEtBQUssQ0FBa0M7U0FDdkMsYUFBUSxHQUFSLFFBQVEsQ0FBd0I7U0FDaEMsbUJBQWMsR0FBZCxjQUFjLENBQVE7U0FDdEIsbUJBQWMsR0FBZCxjQUFjLENBQVM7U0FDdkIsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7U0FDaEMscUNBQXFDO1NBQ3JDLElBQUksQ0FBQyxLQUFLLEdBQUcsY0FBYyxHQUFHLG9CQUFvQixHQUFHLHVCQUF1QixDQUFDO0tBQ2pGLENBQUM7S0FFSCxzQkFBVywyQkFBSTtjQUFmO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDcEIsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVywyQkFBSTtjQUFmO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDcEIsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyw4QkFBTztjQUFsQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ3ZCLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsZ0NBQVM7Y0FBcEI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUN6QixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLG9DQUFhO2NBQXhCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDN0IsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyxvQ0FBYTtjQUF4QjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO1NBQzdCLENBQUM7OztRQUFBO0tBQ0gsZ0JBQUM7QUFBRCxFQUFDO0FBcENZLCtCQUFTO0FBc0N0QjtLQUNFLGtCQUNVLEtBQXdCLEVBQ3hCLE1BQWMsRUFDZCxRQUFpQjtTQUZqQixVQUFLLEdBQUwsS0FBSyxDQUFtQjtTQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFRO1NBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBUztLQUN4QixDQUFDO0tBRUosc0JBQVcsMEJBQUk7Y0FBZjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ3BCLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsMkJBQUs7Y0FBaEI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUNyQixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLDZCQUFPO2NBQWxCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDdkIsQ0FBQzs7O1FBQUE7S0FDSCxlQUFDO0FBQUQsRUFBQztBQWxCWSw2QkFBUTtBQW9CckI7S0FDRSxnQkFDVSxVQUFrQixFQUNsQixTQUE0QixFQUFFLG9DQUFvQztTQUNsRSxhQUFzQixFQUN0QixNQUFjO1NBSGQsZUFBVSxHQUFWLFVBQVUsQ0FBUTtTQUNsQixjQUFTLEdBQVQsU0FBUyxDQUFtQjtTQUM1QixrQkFBYSxHQUFiLGFBQWEsQ0FBUztTQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFRO0tBQUcsQ0FBQztLQUU1QixzQkFBVyw2QkFBUztjQUFwQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQ3pCLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsNEJBQVE7Y0FBbkI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUN4QixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLGdDQUFZO2NBQXZCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7U0FDNUIsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyx5QkFBSztjQUFoQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3JCLENBQUM7OztRQUFBO0tBQ0gsYUFBQztBQUFELEVBQUM7QUF0QlkseUJBQU07QUF3Qm5CO0tBQ0UsMkJBQTJCO0tBQzNCLG1CQUNVLE1BQVcsRUFDWCxlQUF1QjtTQUR2QixXQUFNLEdBQU4sTUFBTSxDQUFLO1NBQ1gsb0JBQWUsR0FBZixlQUFlLENBQVE7S0FBRyxDQUFDO0tBRXJDLHNCQUFXLDRCQUFLO2NBQWhCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDckIsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyxxQ0FBYztjQUF6QjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO1NBQzlCLENBQUM7OztRQUFBO0tBRUgsZ0JBQUM7QUFBRCxFQUFDO0FBZFksK0JBQVM7Ozs7Ozs7OztBQ3BGdEI7S0FBQTtLQUVBLENBQUM7S0FBRCx3QkFBQztBQUFELEVBQUM7QUFGWSwrQ0FBaUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNBOUIsd0NBQTJEO0FBRTNELHVEQUFnRTtBQUVoRTtLQUF3QyxzQ0FBcUI7S0FDM0QsNEJBQW1CLFNBQTZCLEVBQVUsVUFBa0I7U0FBNUUsWUFDRSxrQkFBTSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxTQUMxRDtTQUZ5RCxnQkFBVSxHQUFWLFVBQVUsQ0FBUTs7S0FFNUUsQ0FBQztLQUVELHNCQUFXLHlDQUFTO2NBQXBCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDekIsQ0FBQzs7O1FBQUE7S0FFTSwyQ0FBYyxHQUFyQjtTQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztLQUNuRCxDQUFDO0tBQ0gseUJBQUM7QUFBRCxFQUFDLENBWnVDLDZDQUFxQixHQVk1RDtBQVpZLGlEQUFrQjs7Ozs7Ozs7QUNKL0I7Ozs7SUFJRzs7Ozs7QUFNSCxtQ0FBd0I7Ozs7Ozs7O0FDVnhCLHVEQUFzRDtBQUN0RCwrQ0FBOEM7O0FBRTlDOztJQUVHO0FBQ0gsS0FBWSxZQUdYO0FBSEQsWUFBWSxZQUFZO0tBQ3RCLG1DQUFtQjtLQUNuQixpQ0FBaUI7QUFDbkIsRUFBQyxFQUhXLFlBQVksR0FBWixvQkFBWSxLQUFaLG9CQUFZLFFBR3ZCO0FBRUQ7O0lBRUc7QUFDSCxLQUFZLFNBR1g7QUFIRCxZQUFZLFNBQVM7S0FDbkIsb0NBQXVCO0tBQ3ZCLGdDQUFtQjtBQUNyQixFQUFDLEVBSFcsU0FBUyxHQUFULGlCQUFTLEtBQVQsaUJBQVMsUUFHcEI7QUFFRCxLQUFZLG1CQUlYO0FBSkQsWUFBWSxtQkFBbUI7S0FDN0IsMENBQW1CO0tBQ25CLDRDQUFxQjtLQUNyQiwrQ0FBd0I7QUFDMUIsRUFBQyxFQUpXLG1CQUFtQixHQUFuQiwyQkFBbUIsS0FBbkIsMkJBQW1CLFFBSTlCO0FBRUQsS0FBWSxVQUdYO0FBSEQsWUFBWSxVQUFVO0tBQ3BCLG1DQUFxQjtLQUNyQix1Q0FBeUI7QUFDM0IsRUFBQyxFQUhXLFVBQVUsR0FBVixrQkFBVSxLQUFWLGtCQUFVLFFBR3JCO0FBRUQ7O0lBRUc7QUFDSCxLQUFZLG1CQVlYO0FBWkQsWUFBWSxtQkFBbUI7S0FDN0Isc0NBQWU7S0FDZiw4Q0FBdUI7S0FDdkIsbURBQTRCO0tBQzVCLDZEQUFzQztLQUN0QyxpREFBMEI7S0FDMUIsd0NBQWlCO0tBQ2pCLHNDQUFlO0tBQ2Ysb0NBQWE7S0FDYixzQ0FBZTtLQUNmLDJDQUFvQjtLQUNwQixzQ0FBZTtBQUNqQixFQUFDLEVBWlcsbUJBQW1CLEdBQW5CLDJCQUFtQixLQUFuQiwyQkFBbUIsUUFZOUI7QUFFRDs7SUFFRztBQUNILEtBQVksUUFRWDtBQVJELFlBQVksUUFBUTtLQUNsQiw2QkFBaUI7S0FDakIsdUJBQVc7S0FDWCwyQkFBZTtLQUNmLHlCQUFhO0tBQ2IseUJBQWE7S0FDYixrQ0FBc0I7S0FDdEIsK0JBQW1CO0FBQ3JCLEVBQUMsRUFSVyxRQUFRLEdBQVIsZ0JBQVEsS0FBUixnQkFBUSxRQVFuQjtBQUVEOztJQUVHO0FBQ0gsS0FBWSxhQU9YO0FBUEQsWUFBWSxhQUFhO0tBQ3ZCLDhCQUFhO0tBQ2IsaUNBQWdCO0tBQ2hCLDhCQUFhO0tBQ2IsaUNBQWdCO0tBQ2hCLG9DQUFtQjtLQUNuQixtQ0FBa0I7QUFDcEIsRUFBQyxFQVBXLGFBQWEsR0FBYixxQkFBYSxLQUFiLHFCQUFhLFFBT3hCO0FBRUQ7O0lBRUc7QUFDSCxLQUFZLGVBR1g7QUFIRCxZQUFZLGVBQWU7S0FDekIsbURBQWdDO0tBQ2hDLCtDQUE0QjtBQUM5QixFQUFDLEVBSFcsZUFBZSxHQUFmLHVCQUFlLEtBQWYsdUJBQWUsUUFHMUI7QUFFRCxLQUFZLFlBZVg7QUFmRCxZQUFZLFlBQVk7S0FDdEIsaUNBQWlCO0tBQ2pCLDJCQUFXO0tBQ1gsNkJBQWE7S0FDYixpQ0FBaUI7S0FDakIsd0NBQXdCO0tBQ3hCLGdEQUFnQztLQUNoQywrQkFBZTtLQUNmLDZCQUFhO0tBQ2IsK0JBQWU7S0FDZixpQ0FBaUI7S0FDakIsbUNBQW1CO0tBQ25CLCtCQUFlO0tBQ2YsNkJBQWE7S0FDYiwrQkFBZTtBQUNqQixFQUFDLEVBZlcsWUFBWSxHQUFaLG9CQUFZLEtBQVosb0JBQVksUUFldkI7QUFFRDs7SUFFRztBQUNILEtBQVksVUE2RFg7QUE3REQsWUFBWSxVQUFVO0tBQ3BCOztRQUVHO0tBQ0gsdURBQXlDO0tBQ3pDOztRQUVHO0tBQ0gsMERBQTRDO0tBQzVDOztRQUVHO0tBQ0gsb0VBQXNEO0tBQ3REOztRQUVHO0tBQ0gsOENBQWdDO0tBQ2hDOztRQUVHO0tBQ0gsNEVBQThEO0tBQzlEOztRQUVHO0tBQ0gsMkRBQTZDO0tBQzdDOztRQUVHO0tBQ0gsNkRBQStDO0tBQy9DOztRQUVHO0tBQ0gsa0VBQW9EO0tBQ3BEOztRQUVHO0tBQ0gsb0VBQXNEO0tBQ3REOztRQUVHO0tBQ0gsb0RBQXNDO0tBQ3RDOztRQUVHO0tBQ0gsNkRBQStDO0tBQy9DOztRQUVHO0tBQ0gsd0VBQTBEO0tBQzFEOztRQUVHO0tBQ0gsK0RBQWlEO0tBQ2pEOztRQUVHO0tBQ0gsOERBQWdEO0tBQ2hEOztRQUVHO0tBQ0gsNkRBQStDO0FBQ2pELEVBQUMsRUE3RFcsVUFBVSxHQUFWLGtCQUFVLEtBQVYsa0JBQVUsUUE2RHJCO0FBRUQ7O0lBRUc7QUFDSCxLQUFZLG9CQXdDWDtBQXhDRCxZQUFZLG9CQUFvQjtLQUM5QixtQ0FBVztLQUNYLG1DQUFXO0tBQ1gsbUNBQVc7S0FDWCxtQ0FBVztLQUNYLHVDQUFlO0tBQ2YseUNBQWlCO0tBQ2pCLG1DQUFXO0tBQ1gscUNBQWE7S0FDYix1Q0FBZTtLQUNmLHlDQUFpQjtLQUNqQix5Q0FBaUI7S0FDakIscUNBQWE7S0FDYixxQ0FBYTtLQUNiLHFDQUFhO0tBQ2IsbUNBQVc7S0FDWCx1Q0FBZTtLQUNmLG1DQUFXO0tBQ1gscUNBQWE7S0FDYix5Q0FBaUI7S0FDakIseUNBQWlCO0tBQ2pCLHFDQUFhO0tBQ2IsMkNBQW1CO0tBQ25CLGdEQUF3QjtLQUN4QixtQ0FBVztLQUNYLG1DQUFXO0tBQ1gsZ0RBQXdCO0tBQ3hCLDhDQUFzQjtLQUN0QixrREFBMEI7S0FDMUIsZ0RBQXdCO0tBQ3hCLDhDQUFzQjtLQUN0QixnREFBd0I7S0FDeEIsb0RBQTRCO0tBQzVCLG9EQUE0QjtLQUM1Qix5Q0FBaUI7S0FDakIseUNBQWlCO0tBQ2pCLDZDQUFxQjtLQUNyQiw2Q0FBcUI7S0FDckIsd0NBQWdCO0tBQ2hCLHFDQUFhO0FBQ2YsRUFBQyxFQXhDVyxvQkFBb0IsR0FBcEIsNEJBQW9CLEtBQXBCLDRCQUFvQixRQXdDL0I7QUFFRDs7SUFFRztBQUNILEtBQVksYUFJWDtBQUpELFlBQVksYUFBYTtLQUN2Qix3Q0FBdUI7S0FDdkIsb0NBQW1CO0tBQ25CLG9DQUFtQjtBQUNyQixFQUFDLEVBSlcsYUFBYSxHQUFiLHFCQUFhLEtBQWIscUJBQWEsUUFJeEI7QUFFRDs7SUFFRztBQUNILEtBQVksVUFLWDtBQUxELFlBQVksVUFBVTtLQUNwQix5Q0FBMkI7S0FDM0IsNkJBQWU7S0FDZiwyQ0FBNkI7S0FDN0IsNENBQThCO0FBQ2hDLEVBQUMsRUFMVyxVQUFVLEdBQVYsa0JBQVUsS0FBVixrQkFBVSxRQUtyQjtBQUVEOztJQUVHO0FBQ0gsS0FBWSxnQkFLWDtBQUxELFlBQVksZ0JBQWdCO0tBQzFCLCtCQUFXO0tBQ1gsK0JBQVc7S0FDWCx1Q0FBbUI7S0FDbkIscUNBQWlCO0FBQ25CLEVBQUMsRUFMVyxnQkFBZ0IsR0FBaEIsd0JBQWdCLEtBQWhCLHdCQUFnQixRQUszQjtBQUVEOztJQUVHO0FBQ0gsS0FBWSxnQkFVWDtBQVZELFlBQVksZ0JBQWdCO0tBQzFCOzs7UUFHRztLQUNILHlDQUFxQjtLQUNyQjs7UUFFRztLQUNILHlDQUFxQjtBQUN2QixFQUFDLEVBVlcsZ0JBQWdCLEdBQWhCLHdCQUFnQixLQUFoQix3QkFBZ0IsUUFVM0I7QUFFRDs7O0lBR0c7QUFDSCxLQUFZLGdCQUlYO0FBSkQsWUFBWSxnQkFBZ0I7S0FDMUIsOENBQTBCO0tBQzFCLHFEQUFpQztLQUNqQyw0Q0FBd0I7QUFDMUIsRUFBQyxFQUpXLGdCQUFnQixHQUFoQix3QkFBZ0IsS0FBaEIsd0JBQWdCLFFBSTNCO0FBRUQ7O0lBRUc7QUFDSCxLQUFZLFFBWVg7QUFaRCxZQUFZLFFBQVE7S0FDbEIsdUJBQVc7S0FDWCx5QkFBYTtLQUNiLHlCQUFhO0tBQ2IsNkJBQWlCO0tBQ2pCLDZCQUFpQjtLQUNqQiwyQkFBZTtLQUNmLHlCQUFhO0tBQ2IsdUJBQVc7S0FDWCx1QkFBVztLQUNYLGtDQUFzQjtLQUN0QiwrQkFBbUI7QUFDckIsRUFBQyxFQVpXLFFBQVEsR0FBUixnQkFBUSxLQUFSLGdCQUFRLFFBWW5CO0FBRUQ7OztJQUdHO0FBQ0gsS0FBWSxrQkFJWDtBQUpELFlBQVksa0JBQWtCO0tBQzVCLGlDQUFXO0tBQ1gsbUNBQWE7S0FDYixxQ0FBZTtBQUNqQixFQUFDLEVBSlcsa0JBQWtCLEdBQWxCLDBCQUFrQixLQUFsQiwwQkFBa0IsUUFJN0I7QUFFRDs7SUFFRztBQUNILEtBQVksVUFTWDtBQVRELFlBQVksVUFBVTtLQUNwQiw2QkFBZTtLQUNmLG1DQUFxQjtLQUNyQiwrQkFBaUI7S0FDakIsNkJBQWU7S0FDZiwyQkFBYTtLQUNiLDZCQUFlO0tBQ2YsaUNBQW1CO0tBQ25CLGlDQUFtQjtBQUNyQixFQUFDLEVBVFcsVUFBVSxHQUFWLGtCQUFVLEtBQVYsa0JBQVUsUUFTckI7QUFFRCxLQUFZLGtCQWFYO0FBYkQsWUFBWSxrQkFBa0I7S0FDNUIsb0RBQThCO0tBQzlCLCtDQUF5QjtLQUN6Qiw4REFBd0M7S0FDeEMseURBQW1DO0tBQ25DLG1DQUFhO0tBQ2IsK0NBQXlCO0tBQ3pCLHNEQUFnQztLQUNoQyw0Q0FBc0I7S0FDdEIsaUVBQTJDO0tBQzNDLGtFQUE0QztLQUM1Qyw4Q0FBd0I7S0FDeEIsNkNBQXVCO0FBQ3pCLEVBQUMsRUFiVyxrQkFBa0IsR0FBbEIsMEJBQWtCLEtBQWxCLDBCQUFrQixRQWE3QjtBQUVEOztJQUVHO0FBQ0gsS0FBWSxtQkFJWDtBQUpELFlBQVksbUJBQW1CO0tBQzdCLGlEQUEwQjtLQUMxQix5Q0FBa0I7S0FDbEIsK0NBQXdCO0FBQzFCLEVBQUMsRUFKVyxtQkFBbUIsR0FBbkIsMkJBQW1CLEtBQW5CLDJCQUFtQixRQUk5QjtBQUVEOztJQUVHO0FBQ0gsS0FBWSxTQUlYO0FBSkQsWUFBWSxTQUFTO0tBQ25CLG9DQUF1QjtLQUN2Qiw0QkFBZTtLQUNmLG9DQUF1QjtBQUN6QixFQUFDLEVBSlcsU0FBUyxHQUFULGlCQUFTLEtBQVQsaUJBQVMsUUFJcEI7QUFFRCxLQUFZLGFBR1g7QUFIRCxZQUFZLGFBQWE7S0FDdkIsMENBQXlCO0tBQ3pCLDBDQUF5QjtBQUMzQixFQUFDLEVBSFcsYUFBYSxHQUFiLHFCQUFhLEtBQWIscUJBQWEsUUFHeEI7QUFFRDs7SUFFRztBQUNILEtBQVksZ0JBU1g7QUFURCxZQUFZLGdCQUFnQjtLQUMxQiwrQ0FBK0M7S0FDL0Msb0RBQWdDO0tBRWhDLHdEQUF3RDtLQUN4RCxtRUFBK0M7S0FFL0MsNkNBQTZDO0tBQzdDLDBEQUFzQztBQUN4QyxFQUFDLEVBVFcsZ0JBQWdCLEdBQWhCLHdCQUFnQixLQUFoQix3QkFBZ0IsUUFTM0I7QUFFRCxLQUFZLGtCQUtYO0FBTEQsWUFBWSxrQkFBa0I7S0FDNUIsdUNBQWlCO0tBQ2pCLGlEQUEyQjtLQUMzQixpREFBMkI7S0FDM0IsK0NBQXlCO0FBQzNCLEVBQUMsRUFMVyxrQkFBa0IsR0FBbEIsMEJBQWtCLEtBQWxCLDBCQUFrQixRQUs3Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ3RXRCxtREFBd0Q7QUFFeEQ7S0FBMkMseUNBQWlCO0tBTzFELCtCQUFtQixJQUErQixFQUFFLFNBQTZCO1NBQWpGLFlBQ0Usa0JBQU0sSUFBSSxFQUFFLFNBQVMsQ0FBQyxTQUd2QjtTQURDLEtBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDOztLQUM5QixDQUFDO0tBUkQsc0JBQVcsNENBQVM7Y0FBcEI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUN6QixDQUFDOzs7UUFBQTtLQU9ILDRCQUFDO0FBQUQsRUFBQyxDQVowQyxxQ0FBaUIsR0FZM0Q7QUFaWSx1REFBcUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNGbEMsOENBQThDO0FBRTlDO0tBQXVDLHFDQUFZO0tBT2pELDJCQUFtQixJQUErQixFQUFFLEtBQXFCO1NBQXpFLFlBQ0Usa0JBQU0sSUFBSSxDQUFDLFNBR1o7U0FEQyxLQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQzs7S0FDdEIsQ0FBQztLQVJELHNCQUFXLG9DQUFLO2NBQWhCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDckIsQ0FBQzs7O1FBQUE7S0FPSCx3QkFBQztBQUFELEVBQUMsQ0Fac0MsMkJBQVksR0FZbEQ7QUFaWSwrQ0FBaUI7Ozs7Ozs7OztBQ0Y5QjtLQUdFLHNCQUFtQixJQUErQjtTQUNoRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztLQUNwQixDQUFDO0tBRUQsc0JBQVcsOEJBQUk7Y0FBZjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ3BCLENBQUM7OztRQUFBO0tBQ0gsbUJBQUM7QUFBRCxFQUFDO0FBVlkscUNBQVk7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNGekIsd0NBQTJEO0FBRTNELHVEQUFnRTtBQUVoRTtLQUF3QyxzQ0FBcUI7S0FDM0QsNEJBQW1CLFNBQTZCO2dCQUM5QyxrQkFBTSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLEVBQUUsU0FBUyxDQUFDO0tBQ2xFLENBQUM7S0FFTSwwQ0FBYSxHQUFwQjtTQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLHFCQUFxQixFQUFFLENBQUM7S0FDaEQsQ0FBQztLQUNILHlCQUFDO0FBQUQsRUFBQyxDQVJ1Qyw2Q0FBcUIsR0FRNUQ7QUFSWSxpREFBa0I7Ozs7Ozs7OztBQ0EvQjs7OztJQUlHO0FBQ0g7S0FJRSxnQ0FBbUIsU0FBb0M7U0FDckQsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7U0FDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7S0FDdEIsQ0FBQztLQUVELHNCQUFXLDZDQUFTO2NBQXBCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDekIsQ0FBQzs7O1FBQUE7S0FFTSxpREFBZ0IsR0FBdkIsVUFBd0IsT0FBdUM7U0FBL0QsaUJBR0M7U0FGQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUM3QixNQUFNLENBQUMsY0FBTSxZQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLEVBQWpDLENBQWlDLENBQUM7S0FDakQsQ0FBQztLQUVNLG9EQUFtQixHQUExQixVQUEyQixPQUF1QztTQUNoRSxJQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztTQUMxQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQUMsSUFBSSxRQUFDLEtBQUssT0FBTyxFQUFiLENBQWEsQ0FBQyxDQUFDO1NBQzNELE1BQU0sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7S0FDN0MsQ0FBQztLQUVNLDZDQUFZLEdBQW5CLFVBQW9CLGNBQWdDO1NBQ2xELEdBQUcsQ0FBQyxDQUFrQixVQUFjLEVBQWQsU0FBSSxDQUFDLFNBQVMsRUFBZCxjQUFjLEVBQWQsSUFBYzthQUEvQixJQUFNLE9BQU87YUFDaEIsSUFBSSxDQUFDO2lCQUNILElBQU0sVUFBVSxHQUFHLGNBQWMsRUFBRSxDQUFDO2lCQUNwQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDdEIsQ0FBQzthQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ1gsaUdBQWlHO2lCQUNqRyxRQUFRLENBQUM7YUFDWCxDQUFDO1VBQ0Y7S0FDSCxDQUFDO0tBQ0gsNkJBQUM7QUFBRCxFQUFDO0FBbkNZLHlEQUFzQjs7Ozs7Ozs7O0FDSm5DOztJQUVHO0FBQ0gsS0FBWSxXQUdYO0FBSEQsWUFBWSxXQUFXO0tBQ3JCLGtDQUFtQjtLQUNuQix3Q0FBeUI7QUFDM0IsRUFBQyxFQUhXLFdBQVcsR0FBWCxtQkFBVyxLQUFYLG1CQUFXLFFBR3RCOzs7Ozs7Ozs7QUNURCx1REFBcUU7QUFDckUsbURBQTZEO0FBQzdELG9EQUErRDtBQUMvRCx5REFBeUU7QUFDekUsdURBQXFFO0FBQ3JFLHNEQUFtRTtBQUNuRSxpREFBdUQ7QUFFdkQsb0NBQTBDLFVBQWlDO0tBQ3pFLG9DQUFrQixDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSw2Q0FBcUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0tBQ25GLG9DQUFrQixDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSx1Q0FBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0tBQ2hGLG9DQUFrQixDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxxQ0FBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0tBQy9FLG9DQUFrQixDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxpREFBdUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0tBQ3JGLG9DQUFrQixDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSw2Q0FBcUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0tBQ25GLG9DQUFrQixDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSwyQ0FBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBQ3BGLEVBQUM7QUFQRCwrREFPQzs7Ozs7Ozs7O0FDakJELHVEQU13QztBQUt4QztLQUNFLCtCQUEyQixXQUFrQztTQUFsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBdUI7S0FBSSxDQUFDO0tBRWxFLHNCQUFXLDhDQUFXO2NBQXRCO2FBQ0UsTUFBTSwrQ0FBZ0M7U0FDeEMsQ0FBQzs7O1FBQUE7S0FFTSw0Q0FBWSxHQUFuQixVQUFvQixZQUFvQjtTQUN0QyxJQUFNLFVBQVUsYUFBdUIsR0FBQyxtQ0FBVyxDQUFDLFlBQVksSUFBRyxZQUFZLEtBQUMsQ0FBQztTQUVqRixNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsOEJBQU0sQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQU8sa0JBQVE7YUFDdkYsTUFBTSxDQUFDO1NBQ1QsQ0FBQyxDQUFDLENBQUM7O0tBQ0wsQ0FBQztLQUVNLG1EQUFtQixHQUExQjtTQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyw4QkFBTSxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQWEsa0JBQVE7YUFDbEYsSUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLE1BQW9CLENBQUM7YUFDakQsTUFBTSxDQUFDLFVBQVUsQ0FBQztTQUNwQixDQUFDLENBQUMsQ0FBQztLQUNMLENBQUM7S0FDSCw0QkFBQztBQUFELEVBQUM7QUFyQlksdURBQXFCOzs7Ozs7OztBdkJYbEM7Ozs7SUFJRzs7Ozs7QUFFSCxrQ0FBa0M7QUFDbEMsa0NBQWtEO0FBRWxELGtDQUEwQztBQUMxQyxrQ0FBdUM7QUFDdkMsa0NBQWtDOzs7Ozs7Ozs7QXdCWGxDLHdDQUEyRDtBQUUzRCx1REFRd0M7QUFDeEMsMkNBQTJDO0FBRTNDLGdFQUE0SDtBQUM1SCxnRUFBNEg7QUFDNUgsOENBQStGO0FBQy9GLCtDQUF1RDtBQUt2RDtLQUdFLDJCQUFtQixVQUFpQztTQUNsRCxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztLQUNoQyxDQUFDO0tBRUQsc0JBQVcsMENBQVc7Y0FBdEI7YUFDRSxNQUFNLCtCQUFxQjtTQUM3QixDQUFDOzs7UUFBQTtLQUVNLDRDQUFnQixHQUF2QixVQUNFLFFBQWtCLEVBQ2xCLFNBQWlCLEVBQ2pCLE1BQXFCLEVBQ3JCLFVBQXFDLEVBQ3JDLGFBQXFDO1NBQ25DLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUJBQUssQ0FBQyxnQkFBZ0IsQ0FBNEIsVUFBVSxFQUFFLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUM5RixNQUFNLElBQUksS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7U0FDbEUsQ0FBQztTQUNELElBQU0sSUFBSSxHQUFHLDhCQUFNLENBQUMsc0JBQXNCLENBQUM7U0FDM0MsSUFBTSxVQUFVLEdBQXNCLEVBQUUsQ0FBQztTQUN6QyxVQUFVLENBQUMsbUNBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxRQUFRLENBQUM7U0FDNUMsVUFBVSxDQUFDLG1DQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsU0FBUyxDQUFDO1NBQzlDLFVBQVUsQ0FBQyxtQ0FBVyxDQUFDLFlBQVksQ0FBQyxHQUFHLE1BQU0sQ0FBQztTQUM5QyxVQUFVLENBQUMsbUNBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLFVBQVUsQ0FBQztTQUN0RCxVQUFVLENBQUMsbUNBQVcsQ0FBQyxhQUFhLENBQUM7YUFDbkMsQ0FBQyxhQUFhLEtBQUssU0FBUyxJQUFJLGFBQWEsQ0FBQyxhQUFhLEtBQUssU0FBUyxDQUFDLEdBQUcsS0FBSyxHQUFHLGFBQWEsQ0FBQyxhQUFhLENBQUM7U0FFbkgsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQVMsa0JBQVE7YUFDckUsSUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLE1BQXNCLENBQUM7YUFDOUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLEtBQUssSUFBSSxJQUFJLEtBQUssQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNqRSxxREFBcUQ7aUJBQ3JELE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQy9ELENBQUM7YUFDRCxNQUFNLENBQUMsU0FBUyxDQUFDO1NBQ25CLENBQUMsQ0FBQyxDQUFDO0tBQ0wsQ0FBQztLQUVJLGlEQUFxQixHQUE1QixVQUE2QixRQUFrQixFQUFFLFNBQWlCLEVBQUUsYUFBMEM7U0FDNUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO2FBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztTQUMzRCxDQUFDO1NBQ0QsaUJBQUssQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUVqRSxJQUFNLElBQUksR0FBRyw4QkFBTSxDQUFDLGdCQUFnQixDQUFDO1NBQ3JDLElBQU0sVUFBVSxHQUFzQixFQUFFLENBQUM7U0FFekMsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDdEIsSUFBSSxHQUFHLFNBQWlCLENBQUM7YUFDekIsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsWUFBWSxJQUFJLENBQUMsQ0FBQyxDQUFDO2lCQUN0QyxHQUFHLEdBQUcsaUJBQUssQ0FBQyx3QkFBd0IsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDMUQsQ0FBQzthQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNOLEdBQUcsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDO2FBQzFCLENBQUM7YUFDRCxVQUFVLENBQUMsbUNBQVcsQ0FBQyxjQUFjLENBQUMsR0FBRyxHQUFHLENBQUM7U0FDL0MsQ0FBQztTQUVELEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ3RCLElBQUksR0FBRyxTQUFpQixDQUFDO2FBQ3pCLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDdEMsR0FBRyxHQUFHLGlCQUFLLENBQUMsd0JBQXdCLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzFELENBQUM7YUFBQyxJQUFJLENBQUMsQ0FBQztpQkFDTixHQUFHLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQzthQUMxQixDQUFDO2FBQ0QsVUFBVSxDQUFDLG1DQUFXLENBQUMsY0FBYyxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQy9DLENBQUM7U0FFRCxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQzthQUM3QixFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFLLENBQUMsZ0JBQWdCLENBQTRCLGFBQWEsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUM1RyxNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7YUFDNUQsQ0FBQzthQUNELFVBQVUsQ0FBQyxtQ0FBVyxDQUFDLHFCQUFxQixDQUFDLEdBQUcsK0RBQXFCLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDdEgsQ0FBQztTQUNELFVBQVUsQ0FBQyxtQ0FBVyxDQUFDLFNBQVMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztTQUM5QyxVQUFVLENBQUMsbUNBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxRQUFRLENBQUM7U0FFNUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQVMsa0JBQVE7YUFDckUsTUFBTSxDQUFDLFNBQVMsQ0FBQztTQUNuQixDQUFDLENBQUMsQ0FBQztLQUNMLENBQUM7S0FFTSw0Q0FBZ0IsR0FBdkIsVUFBd0IsUUFBa0IsRUFBRSxTQUFpQjtTQUMzRCxJQUFNLElBQUksR0FBRyw4QkFBTSxDQUFDLFdBQVcsQ0FBQztTQUNoQyxJQUFJLFVBQVUsR0FBc0IsRUFBRSxDQUFDO1NBQ3ZDLFVBQVUsQ0FBQyxtQ0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLFFBQVEsQ0FBQztTQUM1QyxVQUFVLENBQUMsbUNBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFTLENBQUM7U0FDOUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQVMsa0JBQVE7YUFDckUsTUFBTSxDQUFDLFNBQVMsQ0FBQztTQUNuQixDQUFDLENBQUMsQ0FBQztLQUNMLENBQUM7S0FFTSwyQ0FBZSxHQUF0QixVQUF1QixRQUFrQjtTQUF6QyxpQkFRQztTQVBDLElBQU0sSUFBSSxHQUFHLDhCQUFNLENBQUMsVUFBVSxDQUFDO1NBQy9CLElBQUksVUFBVSxHQUFzQixFQUFFLENBQUM7U0FDdkMsVUFBVSxDQUFDLG1DQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsUUFBUSxDQUFDO1NBQzVDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFvQixrQkFBUTthQUNoRixJQUFJLE9BQU8sR0FBRyxRQUFRLENBQUMsTUFBbUMsQ0FBQzthQUMzRCxNQUFNLENBQUMsS0FBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzVDLENBQUMsQ0FBQyxDQUFDO0tBQ0wsQ0FBQztLQUVELGlCQUFpQjtLQUNULGdEQUFvQixHQUE1QixVQUE2QixhQUF3QztTQUFyRSxpQkF3Q0M7U0F2Q0MsSUFBSSxPQUFPLEdBQXNCLEVBQUUsQ0FBQztTQUNwQyxhQUFhLENBQUMsT0FBTyxDQUFDLHNCQUFZO2FBQ2hDLE1BQU0sQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2lCQUNoQyxLQUFLLGtDQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7cUJBQzVCLElBQUksTUFBTSxHQUFHLFlBQWtELENBQUM7cUJBQ2hFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7eUJBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFJLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztxQkFDdEQsQ0FBQztxQkFBQyxJQUFJLENBQUMsQ0FBQzt5QkFDTixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7cUJBQ2hELENBQUM7cUJBQ0QsS0FBSyxDQUFDO2lCQUNSLENBQUM7aUJBRUQsS0FBSyxrQ0FBVSxDQUFDLEtBQUssRUFBRSxDQUFDO3FCQUN0QixJQUFJLE1BQU0sR0FBRyxZQUE0QyxDQUFDO3FCQUMxRCxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO3lCQUNYLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7cUJBQ2hELENBQUM7cUJBQUMsSUFBSSxDQUFDLENBQUM7eUJBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO3FCQUMxQyxDQUFDO3FCQUNELEtBQUssQ0FBQztpQkFDUixDQUFDO2lCQUVELEtBQUssa0NBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztxQkFDN0IsSUFBSSxNQUFNLEdBQUcsWUFBbUQsQ0FBQztxQkFDakUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQzt5QkFDWCxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO3FCQUN2RCxDQUFDO3FCQUFDLElBQUksQ0FBQyxDQUFDO3lCQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztxQkFDbEQsQ0FBQztxQkFDRCxLQUFLLENBQUM7aUJBQ1IsQ0FBQztpQkFFRCxTQUFTLENBQUM7cUJBQ1IsS0FBSyxDQUFDO2lCQUNSLENBQUM7YUFDSCxDQUFDO1NBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSCxNQUFNLENBQUMsT0FBTyxDQUFDO0tBQ2pCLENBQUM7S0FFTyxvREFBd0IsR0FBaEMsVUFBaUMsWUFBZ0Q7U0FDL0UsSUFBSSxhQUFhLEdBQXlCLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFlBQUU7YUFDbEUsTUFBTSxDQUFDLElBQUkseUJBQVMsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUNwRCxDQUFDLENBQUMsQ0FBQztTQUVILE1BQU0sQ0FBQyxJQUFJLGdDQUFpQixDQUMxQixZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFDL0IsWUFBWSxDQUFDLFlBQVksRUFDekIsUUFBUSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQy9CLGFBQWEsRUFDYixZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDNUIsQ0FBQztLQUVPLDhDQUFrQixHQUExQixVQUEyQixZQUEwQztTQUNuRSxJQUFJLFFBQVEsR0FBYyxJQUFJLHlCQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUNqRyxJQUFJLFFBQVEsR0FBYyxJQUFJLHlCQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUNqRyxNQUFNLENBQUMsSUFBSSwwQkFBVyxDQUNwQixZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFDL0IsWUFBWSxDQUFDLFlBQVksRUFDekIsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQ3pCLFFBQVEsRUFDUixRQUFRLEVBQ1IsWUFBWSxDQUFDLGlCQUFpQixDQUMvQixDQUFDO0tBQ0osQ0FBQztLQUVPLHFEQUF5QixHQUFqQyxVQUFrQyxZQUFpRDtTQUNqRixJQUFJLGVBQWUsR0FBYyxJQUFJLHlCQUFTLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUN0SCxNQUFNLENBQUMsSUFBSSxpQ0FBa0IsQ0FDM0IsWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQy9CLFlBQVksQ0FBQyxZQUFZLEVBQ3pCLFFBQVEsQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUNoQyxlQUFlLEVBQ2YsK0RBQXFCLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEVBQ3JFLCtEQUFxQixDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUNuRSxZQUFZLENBQUMsTUFBTSxDQUNwQixDQUFDO0tBQ0osQ0FBQztLQUNILHdCQUFDO0FBQUQsRUFBQztBQXZMWSwrQ0FBaUI7Ozs7Ozs7O0FDckI5Qjs7OztJQUlHOztBQUVILCtDQUFnRDtBQUF2QyxzREFBYTtBQUN0Qix1Q0FBZ0M7QUFBdkIsOEJBQUs7Ozs7Ozs7OztBQ1BkOzs7SUFHRztBQUNIO0tBQ0UsdUJBQ1UsU0FBbUQsRUFDbkQsV0FBOEI7U0FEOUIsY0FBUyxHQUFULFNBQVMsQ0FBMEM7U0FDbkQsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO0tBQUksQ0FBQztLQUV0QywrQkFBTyxHQUFkLFVBQWUsT0FBb0IsRUFBRSxjQUF3QjtTQUMzRCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDM0MsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBaUIsQ0FBQyxDQUFDO1NBQzNDLENBQUM7U0FFRCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxLQUFLLFNBQVMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7YUFDdEQsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7U0FDMUIsQ0FBQztTQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLEdBQUcsT0FBTyxDQUFDLENBQUM7S0FDdEQsQ0FBQztLQUNILG9CQUFDO0FBQUQsRUFBQztBQWhCWSx1Q0FBYTs7Ozs7Ozs7O0FDSjFCO0tBQUE7S0EwSUEsQ0FBQztLQXpJQzs7Ozs7OztRQU9HO0tBQ0gsNkJBQTZCO0tBQ2YsaUJBQVcsR0FBekIsVUFBMEIsYUFBa0IsRUFBRSxZQUFvQjtTQUNoRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7YUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsR0FBRyxZQUFZLENBQUMsQ0FBQztTQUNwRSxDQUFDO0tBQ0gsQ0FBQztLQUVEOzs7Ozs7UUFNRztLQUNXLGtCQUFZLEdBQTFCLFVBQTJCLGFBQXFCLEVBQUUsWUFBb0I7U0FDcEUsRUFBRSxDQUFDLENBQUMsYUFBYSxLQUFLLElBQUksSUFBSSxhQUFhLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQzthQUMxRCxNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxHQUFHLFlBQVksQ0FBQyxDQUFDO1NBQzNFLENBQUM7S0FDSCxDQUFDO0tBRUQ7Ozs7Ozs7UUFPRztLQUNILDJCQUEyQjtLQUNiLHNCQUFnQixHQUE5QixVQUF5QyxLQUFlLEVBQUUsUUFBYTtTQUNyRSxJQUFJLE9BQU8sR0FBWSxLQUFLLENBQUM7U0FDN0IsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQyxPQUFPO2FBQ3BDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO2lCQUMzQyxPQUFPLEdBQUcsSUFBSSxDQUFDO2FBQ2pCLENBQUM7U0FDSCxDQUFDLENBQUMsQ0FBQztTQUNILE1BQU0sQ0FBQyxPQUFPLENBQUM7S0FDakIsQ0FBQztLQUNELDBCQUEwQjtLQUUxQjs7O1FBR0c7S0FDVyw4QkFBd0IsR0FBdEMsVUFBdUMsSUFBVTtTQUMvQyxJQUFNLElBQUksR0FBVyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDM0MsSUFBTSxLQUFLLEdBQVcsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUM3QyxJQUFNLEdBQUcsR0FBVyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDdEMsSUFBTSxFQUFFLEdBQVcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3RDLElBQU0sRUFBRSxHQUFXLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN4QyxJQUFNLEdBQUcsR0FBVyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDekMsTUFBTSxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsS0FBSyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7S0FDMUUsQ0FBQztLQUVhLGlDQUEyQixHQUF6QyxVQUEwQyxJQUFhO1NBQ3JELE1BQU0sQ0FBQyxJQUFJLEdBQUcsTUFBTSxHQUFHLE9BQU8sQ0FBQztLQUNqQyxDQUFDO0tBRWEsZ0NBQTBCLEdBQXhDLFVBQXlDLEdBQVc7U0FDbEQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDMUIsQ0FBQztLQUVEOzs7O1FBSUc7S0FDSCwyQkFBMkI7S0FDYiwwQkFBb0IsR0FBbEMsVUFBbUMsR0FBUSxFQUFFLEdBQVE7U0FDckQsMEJBQTBCO1NBQ3hCLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUM7U0FDL0UsQ0FBQztTQUVELEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZELE1BQU0sSUFBSSxLQUFLLENBQUMsNEVBQTRFLENBQUMsQ0FBQztTQUNoRyxDQUFDO1NBRUQsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdkQsTUFBTSxJQUFJLEtBQUssQ0FBQyw0RUFBNEUsQ0FBQyxDQUFDO1NBQ2hHLENBQUM7U0FFRCxFQUFFLENBQUMsQ0FBQyxPQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssT0FBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLDJFQUEyRSxDQUFDLENBQUM7U0FDL0YsQ0FBQztLQUNILENBQUM7S0FFRDs7UUFFRztLQUNILDJCQUEyQjtLQUNiLGtCQUFZLEdBQTFCLFVBQTJCLEtBQVU7U0FDbkMsTUFBTSxDQUFDLE9BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxRQUFRLElBQUksS0FBSyxZQUFZLE1BQU0sQ0FBQztLQUMvRCxDQUFDO0tBQ0QsMEJBQTBCO0tBRTFCOztRQUVHO0tBQ0gsMkJBQTJCO0tBQ2IsZ0JBQVUsR0FBeEIsVUFBeUIsS0FBVTtTQUNqQyxNQUFNLENBQUMsS0FBSyxZQUFZLElBQUksQ0FBQztLQUMvQixDQUFDO0tBQ0QsMEJBQTBCO0tBRTFCLHFDQUFxQztLQUN2QixrQkFBWSxHQUExQixVQUEyQixLQUFVO1NBQ25DLE1BQU0sQ0FBQyxPQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssUUFBUSxJQUFJLEtBQUssWUFBWSxNQUFNLENBQUM7S0FDL0QsQ0FBQztLQUVELHFDQUFxQztLQUN2QixnQkFBVSxHQUF4QixVQUF5QixLQUFVO1NBQ2pDLE1BQU0sQ0FBQyxPQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssU0FBUyxJQUFJLEtBQUssWUFBWSxPQUFPLENBQUM7S0FDakUsQ0FBQztLQUVELHFDQUFxQztLQUN2Qiw0QkFBc0IsR0FBcEMsVUFBcUMsS0FBVTtTQUM3QyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUM5QixNQUFNLENBQUMsS0FBSyxDQUFDLDBCQUEwQixDQUFDLEtBQWUsQ0FBQyxDQUFDO1NBQzNELENBQUM7U0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDbkMsTUFBTSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxLQUFhLENBQUMsQ0FBQztTQUN2RCxDQUFDO1NBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ25DLE1BQU0sQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsS0FBZ0IsQ0FBQyxDQUFDO1NBQzdELENBQUM7U0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDckMsTUFBTSxDQUFDLEtBQUssQ0FBQztTQUNmLENBQUM7U0FBQyxJQUFJLENBQUMsQ0FBQzthQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztTQUMxRCxDQUFDO0tBQ0gsQ0FBQztLQUNILFlBQUM7QUFBRCxFQUFDO0FBMUlZLHVCQUFLOzs7Ozs7Ozs7QUNBbEIsdURBQXdGO0FBQ3hGLHVEQUF3RjtBQUV4RiwyQ0FBbUQ7QUFFbkQseUZBQXdGO0FBQ3hGOzs7SUFHRztBQUNIO0tBQUE7S0FNQSxDQUFDO0tBTGUsMENBQVcsR0FBRyxJQUFJLHlCQUFhO1NBQzNDLEdBQUMsd0NBQWtCLENBQUMsU0FBUyxJQUFHLHdDQUFrQixDQUFDLFNBQVM7U0FDNUQsR0FBQyx3Q0FBa0IsQ0FBQyxhQUFhLElBQUcsd0NBQWtCLENBQUMsYUFBYTtTQUNwRSxHQUFDLHdDQUFrQixDQUFDLGFBQWEsSUFBRyx3Q0FBa0IsQ0FBQyxVQUFVO2FBQ2pFLENBQUM7S0FDTCxxQ0FBQztFQUFBO0FBTlkseUVBQThCOztBQU8zQyw0QkFBMkI7Ozs7Ozs7OztBQ2pCM0IsdURBY3dDO0FBQ3hDLHVEQWN3QztBQUN4QywyQ0FBbUQ7QUFFbkQseUZBQXdGO0FBQ3hGOzs7SUFHRztBQUNIO0tBQUE7S0FtSUEsQ0FBQztLQWxJZSwyQ0FBWSxHQUFHLElBQUkseUJBQWE7U0FDNUMsR0FBQyxvQ0FBb0IsQ0FBQyxPQUFPLElBQUcsb0NBQW9CLENBQUMsT0FBTztTQUM1RCxHQUFDLG9DQUFvQixDQUFDLE1BQU0sSUFBRyxvQ0FBb0IsQ0FBQyxNQUFNO2FBQzFELENBQUM7S0FFVyx3Q0FBUyxHQUFHLElBQUkseUJBQWE7U0FDekMsR0FBQyxpQ0FBaUIsQ0FBQyxTQUFTLElBQUcsaUNBQWlCLENBQUMsU0FBUztTQUMxRCxHQUFDLGlDQUFpQixDQUFDLE9BQU8sSUFBRyxpQ0FBaUIsQ0FBQyxPQUFPO2FBQ3RELENBQUM7S0FFVyx5Q0FBVSxHQUFHLElBQUkseUJBQWE7U0FDMUMsR0FBQyxrQ0FBa0IsQ0FBQyxVQUFVLElBQUcsa0NBQWtCLENBQUMsVUFBVTtTQUM5RCxHQUFDLGtDQUFrQixDQUFDLFFBQVEsSUFBRyxrQ0FBa0IsQ0FBQyxRQUFRO2FBQzFELENBQUM7S0FFVyxtREFBb0IsR0FBRyxJQUFJLHlCQUFhO1NBQ3BELEdBQUMsNENBQTRCLENBQUMsSUFBSSxJQUFHLDRDQUE0QixDQUFDLElBQUk7U0FDdEUsR0FBQyw0Q0FBNEIsQ0FBQyxHQUFHLElBQUcsNENBQTRCLENBQUMsR0FBRztTQUNwRSxHQUFDLDRDQUE0QixDQUFDLEtBQUssSUFBRyw0Q0FBNEIsQ0FBQyxLQUFLO1NBQ3hFLEdBQUMsNENBQTRCLENBQUMsTUFBTSxJQUFHLDRDQUE0QixDQUFDLE1BQU07U0FDMUUsR0FBQyw0Q0FBNEIsQ0FBQyxHQUFHLElBQUcsNENBQTRCLENBQUMsR0FBRztTQUNwRSxHQUFDLDRDQUE0QixDQUFDLEdBQUcsSUFBRyw0Q0FBNEIsQ0FBQyxHQUFHO1NBQ3BFLEdBQUMsNENBQTRCLENBQUMsSUFBSSxJQUFHLDRDQUE0QixDQUFDLElBQUk7U0FDdEUsR0FBQyw0Q0FBNEIsQ0FBQyxLQUFLLElBQUcsNENBQTRCLENBQUMsS0FBSztTQUN4RSxHQUFDLDRDQUE0QixDQUFDLFFBQVEsSUFBRyw0Q0FBNEIsQ0FBQyxRQUFRO1NBQzlFLEdBQUMsNENBQTRCLENBQUMsR0FBRyxJQUFHLDRDQUE0QixDQUFDLEdBQUc7U0FDcEUsR0FBQyw0Q0FBNEIsQ0FBQyxHQUFHLElBQUcsNENBQTRCLENBQUMsR0FBRztTQUNwRSxHQUFDLDRDQUE0QixDQUFDLE1BQU0sSUFBRyw0Q0FBNEIsQ0FBQyxNQUFNO1NBQzFFLEdBQUMsNENBQTRCLENBQUMsR0FBRyxJQUFHLDRDQUE0QixDQUFDLEdBQUc7U0FDcEUsR0FBQyw0Q0FBNEIsQ0FBQyxNQUFNLElBQUcsNENBQTRCLENBQUMsTUFBTTtTQUMxRSxHQUFDLDRDQUE0QixDQUFDLFNBQVMsSUFBRyw0Q0FBNEIsQ0FBQyxTQUFTO1NBQ2hGLEdBQUMsNENBQTRCLENBQUMsSUFBSSxJQUFHLDRDQUE0QixDQUFDLElBQUk7U0FDdEUsR0FBQyw0Q0FBNEIsQ0FBQyxHQUFHLElBQUcsNENBQTRCLENBQUMsR0FBRztTQUNwRSxHQUFDLDRDQUE0QixDQUFDLE1BQU0sSUFBRyw0Q0FBNEIsQ0FBQyxNQUFNO1NBQzFFLEdBQUMsNENBQTRCLENBQUMsTUFBTSxJQUFHLDRDQUE0QixDQUFDLE1BQU07U0FDMUUsR0FBQyw0Q0FBNEIsQ0FBQyxNQUFNLElBQUcsNENBQTRCLENBQUMsTUFBTTtTQUMxRSxHQUFDLDRDQUE0QixDQUFDLFFBQVEsSUFBRyw0Q0FBNEIsQ0FBQyxRQUFRO1NBQzlFLEdBQUMsNENBQTRCLENBQUMsS0FBSyxJQUFHLDRDQUE0QixDQUFDLEtBQUs7U0FDeEUsR0FBQyw0Q0FBNEIsQ0FBQyxNQUFNLElBQUcsNENBQTRCLENBQUMsTUFBTTtTQUMxRSxHQUFDLDRDQUE0QixDQUFDLEdBQUcsSUFBRyw0Q0FBNEIsQ0FBQyxHQUFHO1NBQ3BFLEdBQUMsNENBQTRCLENBQUMsUUFBUSxJQUFHLDRDQUE0QixDQUFDLFFBQVE7U0FDOUUsR0FBQyw0Q0FBNEIsQ0FBQyxTQUFTLElBQUcsNENBQTRCLENBQUMsU0FBUztTQUNoRixHQUFDLDRDQUE0QixDQUFDLFdBQVcsSUFBRyw0Q0FBNEIsQ0FBQyxXQUFXO1NBQ3BGLEdBQUMsNENBQTRCLENBQUMsVUFBVSxJQUFHLDRDQUE0QixDQUFDLFVBQVU7U0FDbEYsR0FBQyw0Q0FBNEIsQ0FBQyxRQUFRLElBQUcsNENBQTRCLENBQUMsUUFBUTtTQUM5RSxHQUFDLDRDQUE0QixDQUFDLFdBQVcsSUFBRyw0Q0FBNEIsQ0FBQyxXQUFXO1NBQ3BGLEdBQUMsNENBQTRCLENBQUMsU0FBUyxJQUFHLDRDQUE0QixDQUFDLFNBQVM7U0FDaEYsR0FBQyw0Q0FBNEIsQ0FBQyxTQUFTLElBQUcsNENBQTRCLENBQUMsU0FBUztTQUNoRixHQUFDLDRDQUE0QixDQUFDLElBQUksSUFBRyw0Q0FBNEIsQ0FBQyxJQUFJO1NBQ3RFLEdBQUMsNENBQTRCLENBQUMsR0FBRyxJQUFHLDRDQUE0QixDQUFDLEdBQUc7U0FDcEUsR0FBQyw0Q0FBNEIsQ0FBQyxJQUFJLElBQUcsNENBQTRCLENBQUMsSUFBSTtTQUN0RSxHQUFDLDRDQUE0QixDQUFDLElBQUksSUFBRyw0Q0FBNEIsQ0FBQyxJQUFJO1NBQ3RFLEdBQUMsNENBQTRCLENBQUMsT0FBTyxJQUFHLDRDQUE0QixDQUFDLE9BQU87U0FDNUUsR0FBQyw0Q0FBNEIsQ0FBQyxJQUFJLElBQUcsNENBQTRCLENBQUMsSUFBSTthQUN0RSxDQUFDO0tBRVcsNENBQWEsR0FBRyxJQUFJLHlCQUFhO1NBQzdDLEdBQUMscUNBQXFCLENBQUMsU0FBUyxJQUFHLHFDQUFxQixDQUFDLFNBQVM7U0FDbEUsR0FBQyxxQ0FBcUIsQ0FBQyxPQUFPLElBQUcscUNBQXFCLENBQUMsT0FBTztTQUM5RCxHQUFDLHFDQUFxQixDQUFDLE9BQU8sSUFBRyxxQ0FBcUIsQ0FBQyxPQUFPO2FBQzlELENBQUM7S0FFVyx3Q0FBUyxHQUFHLElBQUkseUJBQWE7U0FDekMsR0FBQyxpQ0FBaUIsQ0FBQyxTQUFTLElBQUcsaUNBQWlCLENBQUMsU0FBUztTQUMxRCxHQUFDLGlDQUFpQixDQUFDLEtBQUssSUFBRyxpQ0FBaUIsQ0FBQyxLQUFLO1NBQ2xELEdBQUMsaUNBQWlCLENBQUMsU0FBUyxJQUFHLGlDQUFpQixDQUFDLFNBQVM7YUFDMUQsQ0FBQztLQUVXLGtEQUFtQixHQUFHLElBQUkseUJBQWE7U0FDbkQsR0FBQywyQ0FBMkIsQ0FBQyxLQUFLLElBQUcsMkNBQTJCLENBQUMsS0FBSztTQUN0RSxHQUFDLDJDQUEyQixDQUFDLEtBQUssSUFBRywyQ0FBMkIsQ0FBQyxLQUFLO1NBQ3RFLEdBQUMsMkNBQTJCLENBQUMsS0FBSyxJQUFHLDJDQUEyQixDQUFDLEtBQUs7U0FDdEUsR0FBQywyQ0FBMkIsQ0FBQyxNQUFNLElBQUcsMkNBQTJCLENBQUMsTUFBTTtTQUN4RSxHQUFDLDJDQUEyQixDQUFDLFVBQVUsSUFBRywyQ0FBMkIsQ0FBQyxVQUFVO1NBQ2hGLEdBQUMsMkNBQTJCLENBQUMsZ0JBQWdCLElBQUcsMkNBQTJCLENBQUMsZ0JBQWdCO1NBQzVGLEdBQUMsMkNBQTJCLENBQUMsV0FBVyxJQUFHLDJDQUEyQixDQUFDLFdBQVc7U0FDbEYsR0FBQywyQ0FBMkIsQ0FBQyxJQUFJLElBQUcsMkNBQTJCLENBQUMsSUFBSTtTQUNwRSxHQUFDLDJDQUEyQixDQUFDLEtBQUssSUFBRywyQ0FBMkIsQ0FBQyxLQUFLO1NBQ3RFLEdBQUMsMkNBQTJCLENBQUMsT0FBTyxJQUFHLDJDQUEyQixDQUFDLE9BQU87U0FDMUUsR0FBQywyQ0FBMkIsQ0FBQyxTQUFTLElBQUcsMkNBQTJCLENBQUMsU0FBUzthQUM5RSxDQUFDO0tBRVcsdUNBQVEsR0FBRyxJQUFJLHlCQUFhO1NBQ3hDLEdBQUMsZ0NBQWdCLENBQUMsSUFBSSxJQUFHLGdDQUFnQixDQUFDLElBQUk7U0FDOUMsR0FBQyxnQ0FBZ0IsQ0FBQyxJQUFJLElBQUcsZ0NBQWdCLENBQUMsSUFBSTtTQUM5QyxHQUFDLGdDQUFnQixDQUFDLFFBQVEsSUFBRyxnQ0FBZ0IsQ0FBQyxRQUFRO1NBQ3RELEdBQUMsZ0NBQWdCLENBQUMsS0FBSyxJQUFHLGdDQUFnQixDQUFDLEtBQUs7U0FDaEQsR0FBQyxnQ0FBZ0IsQ0FBQyxHQUFHLElBQUcsZ0NBQWdCLENBQUMsR0FBRztTQUM1QyxHQUFDLGdDQUFnQixDQUFDLE1BQU0sSUFBRyxnQ0FBZ0IsQ0FBQyxNQUFNO2FBQ2xELENBQUM7S0FFVywrQ0FBZ0IsR0FBRyxJQUFJLHlCQUFhO1NBQ2hELEdBQUMsd0NBQXdCLENBQUMsR0FBRyxJQUFHLHdDQUF3QixDQUFDLEdBQUc7U0FDNUQsR0FBQyx3Q0FBd0IsQ0FBQyxHQUFHLElBQUcsd0NBQXdCLENBQUMsR0FBRztTQUM1RCxHQUFDLHdDQUF3QixDQUFDLE1BQU0sSUFBRyx3Q0FBd0IsQ0FBQyxNQUFNO1NBQ2xFLEdBQUMsd0NBQXdCLENBQUMsT0FBTyxJQUFHLHdDQUF3QixDQUFDLE9BQU87YUFDcEUsQ0FBQztLQUVXLDhDQUFlLEdBQUcsSUFBSSx5QkFBYTtTQUMvQyxHQUFDLDZDQUE2QixDQUFDLEdBQUcsSUFBRywwQ0FBMEIsQ0FBQyxHQUFHO1NBQ25FLEdBQUMsNkNBQTZCLENBQUMsSUFBSSxJQUFHLDBDQUEwQixDQUFDLElBQUk7U0FDckUsR0FBQyw2Q0FBNkIsQ0FBQyxLQUFLLElBQUcsMENBQTBCLENBQUMsS0FBSzthQUN2RSxDQUFDO0tBRVcsNkNBQWMsR0FBRyxJQUFJLHlCQUFhO1NBQzlDLEdBQUMsc0NBQXNCLENBQUMsS0FBSyxJQUFHLGtDQUFrQixDQUFDLEtBQUs7U0FDeEQsR0FBQyxzQ0FBc0IsQ0FBQyxRQUFRLElBQUcsa0NBQWtCLENBQUMsUUFBUTtTQUM5RCxHQUFDLHNDQUFzQixDQUFDLE1BQU0sSUFBRyxrQ0FBa0IsQ0FBQyxNQUFNO1NBQzFELEdBQUMsc0NBQXNCLENBQUMsS0FBSyxJQUFHLGtDQUFrQixDQUFDLEtBQUs7U0FDeEQsR0FBQyxzQ0FBc0IsQ0FBQyxJQUFJLElBQUcsa0NBQWtCLENBQUMsSUFBSTtTQUN0RCxHQUFDLHNDQUFzQixDQUFDLEtBQUssSUFBRyxrQ0FBa0IsQ0FBQyxLQUFLO1NBQ3hELEdBQUMsc0NBQXNCLENBQUMsT0FBTyxJQUFHLGtDQUFrQixDQUFDLE9BQU87U0FDNUQsR0FBQyxzQ0FBc0IsQ0FBQyxPQUFPLElBQUcsa0NBQWtCLENBQUMsT0FBTzthQUM1RCxDQUFDO0tBRVcsNENBQWEsR0FBRyxJQUFJLHlCQUFhO1NBQzdDLEdBQUMscUNBQXFCLENBQUMsT0FBTyxJQUFHLHFDQUFxQixDQUFDLE9BQU87U0FDOUQsR0FBQyxxQ0FBcUIsQ0FBQyxJQUFJLElBQUcscUNBQXFCLENBQUMsSUFBSTtTQUN4RCxHQUFDLHFDQUFxQixDQUFDLEtBQUssSUFBRyxxQ0FBcUIsQ0FBQyxLQUFLO1NBQzFELEdBQUMscUNBQXFCLENBQUMsSUFBSSxJQUFHLHFDQUFxQixDQUFDLElBQUk7U0FDeEQsR0FBQyxxQ0FBcUIsQ0FBQyxLQUFLLElBQUcscUNBQXFCLENBQUMsS0FBSztTQUMxRCxHQUFDLHFDQUFxQixDQUFDLE1BQU0sSUFBRyxxQ0FBcUIsQ0FBQyxNQUFNO2FBQzVELENBQUM7S0FFVyx5Q0FBVSxHQUFHLElBQUkseUJBQWE7U0FDMUMsR0FBQyxrQ0FBa0IsQ0FBQyxXQUFXLElBQUcsa0NBQWtCLENBQUMsV0FBVztTQUNoRSxHQUFDLGtDQUFrQixDQUFDLEtBQUssSUFBSSxrQ0FBa0IsQ0FBQyxLQUFLO1NBQ3JELEdBQUMsa0NBQWtCLENBQUMsWUFBWSxJQUFHLGtDQUFrQixDQUFDLFlBQVk7U0FDbEUsR0FBQyxrQ0FBa0IsQ0FBQyxZQUFZLElBQUcsa0NBQWtCLENBQUMsWUFBWTthQUNsRSxDQUFDO0tBQ0wscUNBQUM7RUFBQTtBQW5JWSx5RUFBOEI7O0FBb0kzQyw0QkFBMkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUN2SzNCO0tBSUUsZ0JBQW1CLGFBQXFCLEVBQUUsU0FBaUIsRUFBRSxVQUErQjtTQUMxRixJQUFJLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQztTQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztTQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztLQUNoQyxDQUFDO0tBRUQsc0JBQVcsaUNBQWE7Y0FBeEI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUM3QixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLDZCQUFTO2NBQXBCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDekIsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyw4QkFBVTtjQUFyQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQzFCLENBQUM7OztRQUFBO0tBRU0sOEJBQWEsR0FBcEI7U0FDRSxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7S0FDNUMsQ0FBQztLQUNILGFBQUM7QUFBRCxFQUFDO0FBekJZLHlCQUFNO0FBMkJuQjtLQUF1QyxxQ0FBTTtLQUMzQywyQkFDRSxhQUFxQixFQUNyQixTQUFpQixFQUNqQixVQUErQixFQUN2QixjQUFvQyxFQUNwQyxjQUF1QjtTQUxqQyxZQU1JLGtCQUFNLGFBQWEsRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLFNBQzlDO1NBSFMsb0JBQWMsR0FBZCxjQUFjLENBQXNCO1NBQ3BDLG9CQUFjLEdBQWQsY0FBYyxDQUFTOztLQUVqQyxDQUFDO0tBRUQsc0JBQVcsNENBQWE7Y0FBeEI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUM3QixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLDRDQUFhO2NBQXhCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDN0IsQ0FBQzs7O1FBQUE7S0FFTSxxREFBeUIsR0FBaEM7U0FDRSxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7S0FDNUMsQ0FBQztLQUNILHdCQUFDO0FBQUQsRUFBQyxDQXJCc0MsTUFBTSxHQXFCNUM7QUFyQlksK0NBQWlCO0FBdUI5QjtLQUFpQywrQkFBTTtLQUNyQyxxQkFDRSxhQUFxQixFQUNyQixTQUFpQixFQUNqQixVQUErQixFQUN2QixJQUF3QixFQUN4QixJQUF3QixFQUN4QixrQkFBMkI7U0FOckMsWUFPSSxrQkFBTSxhQUFhLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxTQUM5QztTQUpTLFVBQUksR0FBSixJQUFJLENBQW9CO1NBQ3hCLFVBQUksR0FBSixJQUFJLENBQW9CO1NBQ3hCLHdCQUFrQixHQUFsQixrQkFBa0IsQ0FBUzs7S0FFckMsQ0FBQztLQUVELHNCQUFXLGlDQUFRO2NBQW5CO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDbkIsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyxpQ0FBUTtjQUFuQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ25CLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsMENBQWlCO2NBQTVCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztTQUNqQyxDQUFDOzs7UUFBQTtLQUVPLCtDQUF5QixHQUFqQztTQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztLQUM1QyxDQUFDO0tBQ0gsa0JBQUM7QUFBRCxFQUFDLENBMUJnQyxNQUFNLEdBMEJ0QztBQTFCWSxtQ0FBVztBQTRCeEI7S0FBd0Msc0NBQU07S0FDNUMsNEJBQ0UsYUFBcUIsRUFDckIsU0FBaUIsRUFDakIsVUFBK0IsRUFDdkIsV0FBK0IsRUFDL0IsV0FBZ0MsRUFDaEMsVUFBa0MsRUFDbEMsT0FBZTtTQVB6QixZQVFJLGtCQUFNLGFBQWEsRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLFNBQzlDO1NBTFMsaUJBQVcsR0FBWCxXQUFXLENBQW9CO1NBQy9CLGlCQUFXLEdBQVgsV0FBVyxDQUFxQjtTQUNoQyxnQkFBVSxHQUFWLFVBQVUsQ0FBd0I7U0FDbEMsYUFBTyxHQUFQLE9BQU8sQ0FBUTs7S0FFekIsQ0FBQztLQUVELHNCQUFXLDBDQUFVO2NBQXJCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7U0FDMUIsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVywwQ0FBVTtjQUFyQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQzFCLENBQUM7OztRQUFBO0tBRUQsc0JBQVcseUNBQVM7Y0FBcEI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUN6QixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLHNDQUFNO2NBQWpCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7U0FDdEIsQ0FBQzs7O1FBQUE7S0FDSCx5QkFBQztBQUFELEVBQUMsQ0EzQnVDLE1BQU0sR0EyQjdDO0FBM0JZLGlEQUFrQjs7Ozs7Ozs7O0FDaEYvQix3Q0FBMkQ7QUFDM0QsdURBVXdDO0FBRXhDLCtDQUFvRjtBQUNwRixnREFBZ0U7QUFHaEU7S0FHRSw0QkFBbUIsVUFBaUM7U0FDbEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7S0FDaEMsQ0FBQztLQUVELHNCQUFXLDJDQUFXO2NBQXRCO2FBQ0UsTUFBTSxrQ0FBc0I7U0FDOUIsQ0FBQzs7O1FBQUE7S0FFTSxtREFBc0IsR0FBN0IsVUFDRSxRQUFrQixFQUNsQixPQUFvQixFQUNwQixhQUFzQixFQUN0QixlQUF3QixFQUN4QixpQkFBMEIsRUFDMUIsT0FBZTtTQU5qQixpQkFvQkc7U0FiQywrQkFBK0I7U0FDL0IsSUFBTSxJQUFJLEdBQUcsT0FBTyxLQUFLLDRCQUFXLENBQUMsT0FBTyxHQUFHLDhCQUFNLENBQUMsa0JBQWtCLEdBQUcsOEJBQU0sQ0FBQyxpQkFBaUIsQ0FBQztTQUNwRyxJQUFNLFVBQVUsR0FBc0IsRUFBRSxDQUFDO1NBQ3pDLFVBQVUsQ0FBQyxtQ0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLFFBQVEsQ0FBQztTQUM1QyxVQUFVLENBQUMsbUNBQVcsQ0FBQyxhQUFhLENBQUMsR0FBRyxhQUFhLENBQUM7U0FDdEQsVUFBVSxDQUFDLG1DQUFXLENBQUMsZUFBZSxDQUFDLEdBQUcsZUFBZSxDQUFDO1NBQzFELFVBQVUsQ0FBQyxtQ0FBVyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsaUJBQWlCLENBQUM7U0FDOUQsVUFBVSxDQUFDLG1DQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsT0FBTyxDQUFDO1NBRTFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFZLGtCQUFRO2FBQ3hFLElBQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxNQUE2QixDQUFDO2FBQzVELE1BQU0sQ0FBQyxLQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDN0UsQ0FBQyxDQUFDLENBQUM7S0FDTCxDQUFDO0tBRUksa0RBQXFCLEdBQTVCLFVBQTZCLFFBQWtCO1NBQS9DLGlCQVFDO1NBUEMsSUFBTSxVQUFVLGFBQXdCLEdBQUMsbUNBQVcsQ0FBQyxRQUFRLElBQUcsUUFBUSxLQUFFLENBQUM7U0FDM0UsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLDhCQUFNLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUEyQixrQkFBUTthQUMxRyxJQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsTUFBNEIsQ0FBQzthQUMzRCxNQUFNLENBQUM7aUJBQ0wsSUFBSSxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQUssSUFBSSxZQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFyQyxDQUFxQyxDQUFDO2NBQzVFLENBQUM7U0FDSixDQUFDLENBQUMsQ0FBQzs7S0FDTCxDQUFDO0tBRU0scURBQXdCLEdBQS9CLFVBQWdDLFFBQWtCO1NBQWxELGlCQVFDO1NBUEMsSUFBTSxVQUFVLGFBQXdCLEdBQUMsbUNBQVcsQ0FBQyxRQUFRLElBQUcsUUFBUSxLQUFFLENBQUM7U0FDM0UsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLDhCQUFNLENBQUMsbUJBQW1CLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUEyQixrQkFBUTthQUM3RyxJQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsTUFBK0IsQ0FBQzthQUM5RCxNQUFNLENBQUM7aUJBQ0wsSUFBSSxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQUssSUFBSSxZQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFyQyxDQUFxQyxDQUFDO2NBQzVFLENBQUM7U0FDSixDQUFDLENBQUMsQ0FBQzs7S0FDTCxDQUFDO0tBRVMsZ0RBQW1CLEdBQTdCLFVBQThCLFlBQXVDLEVBQUUsU0FBa0I7U0FDdkYsSUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBQyxJQUFJLFdBQUksc0JBQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUNmLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFDdkMsQ0FBQyxDQUFDLFlBQVksRUFDZCxDQUFDLENBQUMsS0FBSyxDQUFDLEVBSGxCLENBR2tCLENBQUMsQ0FBQztTQUNsRSxzR0FBc0c7U0FDdEcsSUFBSSxLQUFLLENBQUM7U0FDVixFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUN2QixLQUFLLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsV0FBQyxJQUFJLFdBQUksd0JBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUNGLENBQUMsQ0FBQyxLQUFLLEVBQ1AsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUYzQixDQUUyQixDQUFDLENBQUM7U0FDbkUsQ0FBQztTQUNELElBQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGFBQUc7YUFDMUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsY0FBSTtpQkFDakIsTUFBTSxDQUFDLElBQUkseUJBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUN4RCxDQUFDLENBQUMsQ0FBQztTQUNMLENBQUMsQ0FBQyxDQUFDO1NBRUgsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNWLE1BQU0sQ0FBQyxJQUFJLHlCQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUN2RSxDQUFDO1NBQ0QsTUFBTSxDQUFDLElBQUkseUJBQVMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7S0FDaEUsQ0FBQztLQUNILHlCQUFDO0FBQUQsRUFBQztBQTVFWSxpREFBa0I7Ozs7Ozs7OztBQ1ovQjtLQUNFLHNCQUNVLFNBQWdELEVBQ2hELFdBQStDO1NBRC9DLGNBQVMsR0FBVCxTQUFTLENBQXVDO1NBQ2hELGdCQUFXLEdBQVgsV0FBVyxDQUFvQztTQUNyRCxlQUFlO0tBQ25CLENBQUM7S0FFTSxxQ0FBYyxHQUFyQixVQUFzQixpQkFBd0I7U0FDNUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDdEMsQ0FBQztLQUNILENBQUM7S0FDSCxtQkFBQztBQUFELEVBQUM7QUFFRDtLQUdFLGlDQUEyQixVQUFpQztTQUFqQyxlQUFVLEdBQVYsVUFBVSxDQUF1QjtTQUMxRCxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztTQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7S0FDOUUsQ0FBQztLQUVELHNCQUFXLGdEQUFXO2NBQXRCO2FBQ0UsTUFBTSwyQ0FBMkI7U0FDbkMsQ0FBQzs7O1FBQUE7S0FFTSxpREFBZSxHQUF0QixVQUF1QixFQUFrQixFQUFFLFFBQW1DLEVBQUUsT0FBK0I7U0FBL0csaUJBTUM7U0FMQyxJQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksS0FBSyxFQUFnQixDQUFDO1NBQ2pFLElBQU0sWUFBWSxHQUFHLElBQUksWUFBWSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUN6RCxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzVCLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDO1NBQzlCLE1BQU0sQ0FBQyxjQUFNLFlBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFDLEVBQXpDLENBQXlDLENBQUM7S0FDekQsQ0FBQztLQUVPLGdFQUE4QixHQUF0QyxVQUF1QyxFQUFrQjtTQUN2RCxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7S0FDM0MsQ0FBQztLQUVPLGdEQUFjLEdBQXRCLFVBQXVCLFlBQTBCO1NBQy9DLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdEUsTUFBTSxDQUFDO1NBQ1QsQ0FBQztTQUVELDRFQUE0RTtTQUM1RSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBQyxJQUFJLFFBQUMsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFuQyxDQUFtQyxDQUFDLENBQUM7S0FDaEcsQ0FBQztLQUVPLG9EQUFrQixHQUExQixVQUEyQixFQUFrQixFQUFFLFlBQTBCO1NBQ3ZFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUM3QyxNQUFNLENBQUM7U0FDVCxDQUFDO1NBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxhQUFHLElBQUksVUFBRyxLQUFLLFlBQVksRUFBcEIsQ0FBb0IsQ0FBQyxDQUFDO0tBQzlFLENBQUM7S0FDSCw4QkFBQztBQUFELEVBQUM7QUF4Q1ksMkRBQXVCOzs7Ozs7Ozs7QUNsQnBDLHVEQVF3QztBQUV4QywrQ0FBNkQ7QUFDN0QsMkNBQTRDO0FBSTVDO0tBQ0UsK0JBQTJCLFVBQWlDO1NBQWpDLGVBQVUsR0FBVixVQUFVLENBQXVCO0tBQzVELENBQUM7S0FFRCxzQkFBVyw4Q0FBVztjQUF0QjthQUNFLE1BQU0sdUNBQXlCO1NBQ2pDLENBQUM7OztRQUFBO0tBRU0sMERBQTBCLEdBQWpDLFVBQWtDLFNBQW9CLEVBQUUsS0FBcUI7U0FDM0UsSUFBTSxVQUFVO2FBQ2QsR0FBQyxtQ0FBVyxDQUFDLFNBQVMsSUFBRyxTQUFTO2dCQUNuQyxDQUFDO1NBRUYsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLDhCQUFNLENBQUMscUJBQXFCLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFRO2FBQ3BGLHlCQUF5QjthQUV6QixJQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBOEIsQ0FBQzthQUN2RCxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyx1QkFBYTtpQkFDN0IsSUFBTSxJQUFJLEdBQUcsSUFBSSw2QkFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2lCQUM5QyxNQUFNLENBQUMsSUFBSSxxQkFBUyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQzthQUNwQyxDQUFDLENBQUMsQ0FBQztTQUNMLENBQUMsQ0FBQyxDQUFDOztLQUNMLENBQUM7S0FFTSx5REFBeUIsR0FBaEMsVUFBaUMsU0FBaUIsRUFBRSxRQUFnQjtTQUNsRSxJQUFNLFVBQVU7YUFDZCxHQUFDLG1DQUFXLENBQUMsa0JBQWtCLElBQUcsU0FBUzthQUMzQyxHQUFDLG1DQUFXLENBQUMsY0FBYyxJQUFHLFFBQVE7Z0JBQ3ZDLENBQUM7U0FFRixNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsOEJBQU0sQ0FBQyxvQkFBb0IsRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQVE7YUFDbkYsSUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQXVCLENBQUM7YUFDaEQsTUFBTSxDQUFDLE1BQU0sQ0FBQztTQUNoQixDQUFDLENBQUMsQ0FBQzs7S0FDTCxDQUFDO0tBRU0sd0RBQXdCLEdBQS9CLFVBQWdDLElBQVksRUFBRSxLQUFxQjtTQUNqRSxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7S0FDekQsQ0FBQztLQUVNLG1FQUFtQyxHQUExQyxVQUEyQyxTQUFpQixFQUFFLEtBQXFCO1NBQ2pGLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztLQUM5RCxDQUFDO0tBRU8sa0RBQWtCLEdBQTFCLFVBQ0UsS0FBcUIsRUFDckIsSUFBd0IsRUFDeEIsU0FBNkI7U0FDN0IsSUFBTSxVQUFVLEdBQXNCLEVBQUUsQ0FBQztTQUN6QyxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQzthQUN2QixVQUFVLENBQUMsbUNBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBQztTQUNsRCxDQUFDO1NBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDO2FBQ25DLFVBQVUsQ0FBQyxtQ0FBVyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsU0FBUyxDQUFDO1NBQ3pELENBQUM7U0FBQyxJQUFJLENBQUMsQ0FBQzthQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztTQUMzRCxDQUFDO1NBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLDhCQUFNLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBUTthQUM1RSxJQUFNLHVCQUF1QixHQUFHLFVBQUMsTUFBYTtpQkFDNUMsTUFBTSxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUM7YUFDL0IsQ0FBQyxDQUFDO2FBRUYsZ0VBQWdFO2FBQ2hFLEVBQUUsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQzdDLElBQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUF1QixDQUFDO2lCQUNoRCxJQUFNLElBQUksR0FBRyxJQUFJLDZCQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7aUJBQ3ZDLE1BQU0sQ0FBQyxJQUFJLHFCQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ3BDLENBQUM7YUFBQyxJQUFJLENBQUMsQ0FBQztpQkFDTixNQUFNLENBQUMsU0FBUyxDQUFDO2FBQ25CLENBQUM7U0FDSCxDQUFDLENBQUMsQ0FBQztLQUNMLENBQUM7S0FDSCw0QkFBQztBQUFELEVBQUM7QUF4RVksdURBQXFCOzs7Ozs7Ozs7QUNoQmxDLHdDQUEyRDtBQUMzRCx1REFBK0U7QUFDL0UsMkNBQTJDO0FBRTNDLGdFQUFnRztBQUNoRyx1REFBd0U7QUFDeEUsK0NBQW9EO0FBR3BELGlEQUErRTtBQUUvRSx3REFBa0U7QUFFbEU7S0FLRSx1QkFBbUIsYUFBNEI7U0FDN0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0tBQ3ZDLENBQUM7S0FFRCxzQkFBVywrQkFBSTtjQUFmO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO1NBQ2xDLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsdUNBQVk7Y0FBdkI7YUFDRSxNQUFNLENBQUMsSUFBSSx5QkFBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUNoSCxDQUFDOzs7UUFBQTtLQUVELHNCQUFXLG1DQUFRO2NBQW5CO2FBQ0UsTUFBTSxDQUFDLCtEQUE4QixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN2RixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLDBDQUFlO2NBQTFCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztTQUMvQixDQUFDOzs7UUFBQTtLQUVNLHdDQUFnQixHQUF2QixVQUF3QixRQUEwQztTQUFsRSxpQkFPQztTQU5DLElBQUksWUFBWSxHQUFHLGlCQUFLLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDMUQsSUFBTSxpQkFBaUIsR0FBRyxvQ0FBa0IsQ0FBQyxRQUFRLENBQUMsVUFBVSx1Q0FBNEMsQ0FBQztTQUM3RyxNQUFNLENBQUMsaUJBQWlCLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBYTthQUN4RyxLQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDckMsTUFBTSxDQUFDLEtBQUksQ0FBQyxZQUFZLENBQUM7U0FDM0IsQ0FBQyxDQUFDLENBQUM7S0FDTCxDQUFDO0tBRUQ7Ozs7Ozs7UUFPRztLQUNJLHdDQUFnQixHQUF2QixVQUF3QixLQUFxQjtTQUE3QyxpQkF1QkM7U0F0QkMsSUFBTSxPQUFPLEdBQUcsSUFBSSxLQUFLLEVBQXNCLENBQUM7U0FDaEQsSUFBSSxtQkFBd0MsQ0FBQztTQUU3QyxJQUFJLENBQUM7YUFDSCxtQkFBbUIsR0FBRyxvQ0FBa0IsQ0FBQyxRQUFRLENBQUMsVUFBVSwyQ0FBZ0QsQ0FBQztTQUMvRyxDQUFDO1NBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNYLHdEQUF3RDthQUN4RCxNQUFNLENBQUMsT0FBTyxDQUFDO1NBQ2pCLENBQUM7U0FFRCw0RUFBNEU7U0FDNUUsSUFBTSxjQUFjLEdBQUcsSUFBSSwrQ0FBc0IsQ0FBd0IsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDckgsbUJBQW1CLENBQUMsZUFBZSxDQUFDLHNDQUFjLENBQUMsZ0JBQWdCLEVBQUUsVUFBQyxLQUFLO2FBQ3pFLElBQU0sU0FBUyxHQUFHLEtBQWUsQ0FBQzthQUNsQyxNQUFNLENBQUMsU0FBUyxLQUFLLEtBQUksQ0FBQyxnQkFBZ0IsQ0FBQztTQUM3QyxDQUFDLEVBQUUsVUFBQyxTQUFpQjthQUNuQixjQUFjLENBQUMsWUFBWSxDQUFDLGNBQU0sV0FBSSw2Q0FBcUIsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQTNDLENBQTJDLENBQUMsQ0FBQztTQUNqRixDQUFDLENBQUMsQ0FBQztTQUVILE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7U0FFN0IsTUFBTSxDQUFDLE9BQU8sQ0FBQztLQUNqQixDQUFDO0tBRU8sd0NBQWdCLEdBQXhCLFVBQXlCLGFBQTRCO1NBQ25ELElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1NBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDO1NBRWhELElBQU0sSUFBSSxHQUFHLCtEQUE4QixDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDdkcsSUFBSSxVQUF3QyxDQUFDO1NBQzdDLElBQUksUUFBK0IsQ0FBQztTQUNwQyxJQUFJLFFBQStCLENBQUM7U0FDcEMsSUFBSSxRQUE0QixDQUFDO1NBQ2pDLElBQUksY0FBK0MsQ0FBQztTQUVwRCxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDOUMsSUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUM7YUFDbkQsVUFBVSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsYUFBRyxJQUFJLFdBQUkseUJBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBNUMsQ0FBNEMsQ0FBQyxDQUFDO1NBQy9FLENBQUM7U0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQ3RELFFBQVEsR0FBRyxhQUFhLENBQUMsUUFBUSxJQUFJLElBQUkseUJBQVMsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQ3hILFFBQVEsR0FBRyxhQUFhLENBQUMsUUFBUSxJQUFJLElBQUkseUJBQVMsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQ3hILFFBQVEsR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDO2FBQ2xDLGNBQWMsR0FBRyxhQUFhLENBQUMsY0FBYztpQkFDNUIsK0RBQThCLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDdkcsQ0FBQztTQUVELElBQUksQ0FBQyxnQkFBZ0IsR0FBRzthQUN0QixJQUFJLEVBQUUsSUFBSTthQUNWLGVBQWUsRUFBRSxVQUFVO2FBQzNCLFFBQVEsRUFBRSxRQUFRO2FBQ2xCLFFBQVEsRUFBRSxRQUFRO2FBQ2xCLFFBQVEsRUFBRSxRQUFRO2FBQ2xCLGNBQWMsRUFBRSxjQUFjO1VBQy9CLENBQUM7S0FDSixDQUFDO0tBQ0gsb0JBQUM7QUFBRCxFQUFDO0FBbEdZLHVDQUFhOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDYjFCLHdDQUEyRDtBQUczRCxpREFBK0U7QUFDL0UsbURBQXdEO0FBRXhEO0tBQTJDLHlDQUFpQjtLQUMxRCwrQkFBMkIsZ0JBQXdCLEVBQUUsS0FBcUI7U0FBMUUsWUFDRSxrQkFBTSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLFNBQ3pEO1NBRjBCLHNCQUFnQixHQUFoQixnQkFBZ0IsQ0FBUTs7S0FFbkQsQ0FBQztLQUVNLGlEQUFpQixHQUF4QjtTQUNFLHdFQUF3RTtTQUN4RSxJQUFNLE9BQU8sR0FBRyxvQ0FBa0IsQ0FBQyxRQUFRLENBQUMsVUFBVSx1Q0FBNEMsQ0FBQztTQUNuRyxNQUFNLENBQUMsT0FBTyxDQUFDLG1DQUFtQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFTO2FBQ2xHLEVBQUUsQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDO2lCQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7YUFDOUMsQ0FBQzthQUVELE1BQU0sQ0FBQyxTQUFTLENBQUM7U0FDbkIsQ0FBQyxDQUFDLENBQUM7S0FDTCxDQUFDO0tBQ0gsNEJBQUM7QUFBRCxFQUFDLENBaEIwQyxxQ0FBaUIsR0FnQjNEO0FBaEJZLHVEQUFxQjs7Ozs7Ozs7O0FDMkNsQztLQUdFO1NBQ0UsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7S0FDdEIsQ0FBQztLQUVNLDZDQUFlLEdBQXRCLFVBQXVCLE9BQW1CO1NBQ3hDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLE9BQU8sQ0FBQztLQUNoRCxDQUFDO0tBRU0sd0NBQVUsR0FBakIsVUFBd0MsV0FBbUI7U0FDekQsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBYyxXQUFXLG1CQUFnQixDQUFDLENBQUM7U0FDN0QsQ0FBQztTQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBTSxDQUFDO0tBQzFDLENBQUM7S0FDSCwwQkFBQztBQUFELEVBQUM7QUFFRDs7O0lBR0c7QUFDSDtLQXlCRSw0Q0FBNEM7S0FDNUM7S0FBdUIsQ0FBQztLQXRCeEIsc0JBQWtCLDhCQUFRO1NBSDFCOztZQUVHO2NBQ0g7YUFDRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUM7aUJBQ3hDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxJQUFJLG1CQUFtQixFQUFFLENBQUMsQ0FBQzthQUM1RCxDQUFDO2FBRUQsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxDQUFDO2lCQUN4QyxNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7YUFDdkQsQ0FBQzthQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsMkJBQTJCLENBQUM7U0FDNUMsQ0FBQzs7O1FBQUE7S0FFRDs7OztRQUlHO0tBQ1csOEJBQVcsR0FBekIsVUFBMEIsZUFBaUM7U0FDekQsTUFBTSxDQUFDLDJCQUEyQixHQUFHLGVBQWUsQ0FBQztLQUN2RCxDQUFDO0tBSUgseUJBQUM7QUFBRCxFQUFDO0FBM0JZLGlEQUFrQjs7Ozs7Ozs7O0FDekUvQix3Q0FBMkQ7QUFDM0QsdURBUXdDO0FBQ3hDLGlEQU1zQztBQUl0QztLQUdFLDhCQUFtQixVQUFpQztTQUNsRCxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztLQUNoQyxDQUFDO0tBRUQsc0JBQVcsNkNBQVc7Y0FBdEI7YUFDRSxNQUFNLHFDQUF3QjtTQUNoQyxDQUFDOzs7UUFBQTtLQUVEOzs7O1FBSUc7S0FDSSxzREFBdUIsR0FBOUIsVUFBK0IsUUFBa0I7U0FDL0MsSUFBTSxVQUFVLGFBQXVCLEdBQUMsbUNBQVcsQ0FBQyxRQUFRLElBQUcsUUFBUSxLQUFDLENBQUM7U0FDekUsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLDhCQUFNLENBQUMsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFPLGtCQUFRO2FBQ3hGLE1BQU0sQ0FBRSxDQUFDLHdEQUF3RDtTQUNuRSxDQUFDLENBQUMsQ0FBQzs7S0FDTCxDQUFDO0tBRUQ7Ozs7OztRQU1HO0tBQ0ksc0RBQXVCLEdBQTlCLFVBQStCLFFBQWtCLEVBQ2xCLGtCQUFxRCxFQUNyRCxtQkFBaUQ7U0FDOUUsRUFBRSxDQUFDLENBQUMsa0JBQWtCLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDcEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO1NBQ3JFLENBQUM7U0FFRCxJQUFNLGFBQWEsR0FBVyxJQUFJLENBQUMsMkJBQTJCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUNwRixJQUFJLHFCQUFxQixHQUEwQixJQUFJLENBQUMseUJBQXlCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN6RyxJQUFJLHVCQUF1QixHQUE2QixJQUFJLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLEVBQUUscUJBQXFCLENBQUMsQ0FBQztTQUU1SCxJQUFNLFVBQVU7YUFDZCxHQUFDLG1DQUFXLENBQUMsUUFBUSxJQUFHLFFBQVE7YUFDaEMsR0FBQyxtQ0FBVyxDQUFDLG1CQUFtQixJQUFHLGFBQWE7Z0JBQ2pELENBQUM7U0FFRixNQUFNLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7YUFDOUIsS0FBSyxxQkFBcUIsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2lCQUM1QyxVQUFVLENBQUMsbUNBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLHVCQUF1QixDQUFDLFlBQVksQ0FBQztpQkFDdEYsS0FBSyxDQUFDO2FBQ1IsQ0FBQzthQUNELEtBQUsscUJBQXFCLENBQUMsU0FBUyxFQUFFLENBQUM7aUJBQ3JDLFVBQVUsQ0FBQyxtQ0FBVyxDQUFDLHlCQUF5QixDQUFDLEdBQUcsdUJBQXVCLENBQUMsYUFBYSxDQUFDO2lCQUMxRixLQUFLLENBQUM7YUFDUixDQUFDO2FBQ0QsS0FBSyxxQkFBcUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztpQkFDekMsVUFBVSxDQUFDLG1DQUFXLENBQUMscUJBQXFCLENBQUMsR0FBRyx1QkFBdUIsQ0FBQyxXQUFXLENBQUM7aUJBQ3BGLEtBQUssQ0FBQzthQUNSLENBQUM7YUFDRDtpQkFDRSxLQUFLLENBQUM7U0FDVixDQUFDO1NBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLDhCQUFNLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBTyxrQkFBUTthQUNuRix3REFBd0Q7YUFDeEQsTUFBTSxDQUFDO2FBQ1AsK0ZBQStGO1NBQ2pHLENBQUMsQ0FBQyxDQUFDOztLQUNMLENBQUM7S0FFQzs7Ozs7O01BTUM7S0FDSSxtREFBb0IsR0FBM0IsVUFBNEIsUUFBa0IsRUFDbEIsS0FBK0IsRUFDL0IsbUJBQWlEO1NBQzNFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7U0FDNUQsQ0FBQztTQUVELElBQU0sYUFBYSxHQUFXLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3BGLElBQUksdUJBQXVCLEdBQTZCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUV0RixJQUFNLFVBQVU7YUFDZCxHQUFDLG1DQUFXLENBQUMsUUFBUSxJQUFHLFFBQVE7YUFDaEMsR0FBQyxtQ0FBVyxDQUFDLG1CQUFtQixJQUFHLGFBQWE7YUFDaEQsR0FBQyxtQ0FBVyxDQUFDLFNBQVMsSUFBRyx1QkFBdUIsQ0FBQyxTQUFTO2dCQUMzRCxDQUFDO1NBQ0YsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLDhCQUFNLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBTyxrQkFBUTthQUNuRix3REFBd0Q7YUFDeEQsTUFBTSxDQUFDO2FBQ1AsK0ZBQStGO1NBQ2pHLENBQUMsQ0FBQyxDQUFDOztLQUNMLENBQUM7S0FFRDs7O1FBR0c7S0FDSyxnREFBaUIsR0FBekIsVUFBMEIsS0FBK0I7U0FDdkQsSUFBSSxHQUFHLEdBQWtCLEVBQUUsQ0FBQztTQUM1QixJQUFJLHVCQUF1QixHQUE2QixJQUFJLDBDQUF3QixFQUFFLENBQUM7U0FDdkYsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7YUFDdEMsSUFBSSxPQUFPLEdBQXdCLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7YUFDcEQsRUFBRSxDQUFDLENBQUMsT0FBTyxLQUFLLFNBQVMsSUFBSSxPQUFPLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDN0MsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLHdCQUF3QjthQUN6RCxDQUFDO2FBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO2FBQy9DLENBQUM7U0FDSCxDQUFDO1NBQ0QsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3JCLElBQUksbUJBQW1CLEdBQXdCLElBQUkscUNBQW1CLEVBQUUsQ0FBQzthQUN6RSxtQkFBbUIsQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDO2FBQzdDLG1CQUFtQixDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUM7YUFDcEMsdUJBQXVCLENBQUMsU0FBUyxHQUFHLG1CQUFtQixDQUFDO1NBQzFELENBQUM7U0FDRCxNQUFNLENBQUMsdUJBQXVCLENBQUM7S0FDakMsQ0FBQztLQUNEOzs7Ozs7Ozs7Ozs7O1FBYUc7S0FDSyxrREFBbUIsR0FBM0IsVUFBNEIsa0JBQXFELEVBQ3JELGFBQW9DO1NBQzlELElBQUksdUJBQXVCLEdBQTZCLElBQUksMENBQXdCLEVBQUUsQ0FBQztTQUN2RixJQUFJLG9CQUFvQixHQUFZLEtBQUssQ0FBQztTQUUxQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2FBQ25ELElBQU0sRUFBRSxHQUFHLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2pDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDbEUsSUFBSSxRQUFRLEdBQUcsSUFBSSxNQUFNLENBQUMscUJBQXFCLEVBQUUsR0FBRyxDQUFDLENBQUM7aUJBQ3RELElBQUksV0FBVyxHQUF3QixFQUFFLENBQUMsS0FBNEIsQ0FBQztpQkFDdkUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUNoQyxFQUFFLENBQUMsQ0FBQyxhQUFhLEtBQUsscUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO3lCQUM3RCxJQUFJLFNBQVMsR0FBNEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQzt5QkFDdEgsdUJBQXVCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztxQkFDdkQsQ0FBQztxQkFBQyxJQUFJLENBQUMsQ0FBQzt5QkFDTixvQkFBb0IsR0FBRyxJQUFJLENBQUM7eUJBQzVCLEtBQUssQ0FBQztxQkFDUixDQUFDO2lCQUNILENBQUM7aUJBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUF3QixXQUFZLENBQUMsR0FBRyxLQUFLLFNBQVM7d0JBQzlCLFdBQVksQ0FBQyxHQUFHLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztxQkFDakUsRUFBRSxDQUFDLENBQUMsYUFBYSxLQUFLLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7eUJBQ3RELElBQUksVUFBVSxHQUF3QixJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQzt5QkFDM0YsdUJBQXVCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztxQkFDekQsQ0FBQztxQkFBQyxJQUFJLENBQUMsQ0FBQzt5QkFDTixvQkFBb0IsR0FBRyxJQUFJLENBQUM7eUJBQzVCLEtBQUssQ0FBQztxQkFDUixDQUFDO2lCQUNILENBQUM7aUJBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ04sRUFBRSxDQUFDLENBQUMsYUFBYSxLQUFLLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7eUJBQzFELElBQUksUUFBUSxHQUFzRCxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO3lCQUMvRyx1QkFBdUIsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3FCQUNyRCxDQUFDO3FCQUFDLElBQUksQ0FBQyxDQUFDO3lCQUNOLG9CQUFvQixHQUFHLElBQUksQ0FBQzt5QkFDNUIsS0FBSyxDQUFDO3FCQUNSLENBQUM7aUJBQ0gsQ0FBQzthQUNILENBQUM7U0FDSCxDQUFDO1NBRUQsRUFBRSxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO2FBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWtELENBQUMsQ0FBQztTQUN0RSxDQUFDO1NBQ0QsTUFBTSxDQUFDLHVCQUF1QixDQUFDO0tBQ2pDLENBQUM7S0FFRDs7O1FBR0c7S0FDSyx3REFBeUIsR0FBakMsVUFBa0MsaUJBQTZDO1NBQzdFLElBQUksYUFBb0MsQ0FBQztTQUN6QyxxRkFBcUY7U0FDckYsSUFBSSxJQUFJLEdBQStCLGlCQUFpQixDQUFDO1NBRXpELElBQUksUUFBUSxHQUFHLElBQUksTUFBTSxDQUFDLHFCQUFxQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ3RELElBQUksV0FBVyxHQUF3QixJQUFJLENBQUMsS0FBNEIsQ0FBQztTQUV6RSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDeEUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNsQyxhQUFhLEdBQUcscUJBQXFCLENBQUMsZ0JBQWdCLENBQUM7YUFDekQsQ0FBQzthQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBd0IsV0FBWSxDQUFDLEdBQUcsS0FBSyxTQUFTO29CQUM1QixXQUFZLENBQUMsR0FBRyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7aUJBQ25FLGFBQWEsR0FBRyxxQkFBcUIsQ0FBQyxTQUFTLENBQUM7YUFDbEQsQ0FBQzthQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNOLGFBQWEsR0FBRyxxQkFBcUIsQ0FBQyxhQUFhLENBQUM7YUFDdEQsQ0FBQztTQUNILENBQUM7U0FBQyxJQUFJLENBQUMsQ0FBQzthQUNOLE1BQU0sSUFBSSxLQUFLLENBQUUsb0NBQW9DLENBQUMsQ0FBQztTQUN6RCxDQUFDO1NBQ0QsTUFBTSxDQUFDLGFBQWEsQ0FBQztLQUN2QixDQUFDO0tBRUQ7Ozs7OztRQU1HO0tBQ0ssOENBQWUsR0FBdkIsVUFBd0IsU0FBaUIsRUFBRSxLQUFhO1NBQ3RELElBQUksbUJBQW1CLEdBQXdCLElBQUkscUNBQW1CLEVBQUUsQ0FBQztTQUN6RSxJQUFJLFVBQVUsR0FBa0IsRUFBRSxDQUFDO1NBRW5DLEVBQUUsQ0FBQyxDQUFDLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQzNCLElBQUksUUFBUSxHQUFrQixLQUFLLENBQUM7YUFDcEMsR0FBRyxDQUFDLENBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7aUJBQzFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7YUFDMUMsQ0FBQztTQUNILENBQUM7U0FBQyxJQUFJLENBQUMsQ0FBQzthQUNOLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDcEMsQ0FBQztTQUVELG1CQUFtQixDQUFDLHFCQUFxQixHQUFHLFNBQVMsQ0FBQztTQUN0RCxtQkFBbUIsQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDO1NBQzlDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQztLQUM3QixDQUFDO0tBRUQ7Ozs7Ozs7O1FBUUc7S0FDSyxtREFBb0IsR0FBNUIsVUFBNkIsU0FBaUIsRUFBRSxLQUEwQjtTQUN4RSxJQUFJLG1CQUFtQixHQUF3QixJQUFJLHFDQUFtQixFQUFFLENBQUM7U0FDekUsbUJBQW1CLENBQUMscUJBQXFCLEdBQUcsU0FBUyxDQUFDO1NBQ3RELEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQzthQUNsRCxtQkFBbUIsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUN0RCxDQUFDO1NBQ0QsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO2FBQ2xELG1CQUFtQixDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3RELENBQUM7U0FDRCxtQkFBbUIsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUM3RSxNQUFNLENBQUMsbUJBQW1CLENBQUM7S0FDN0IsQ0FBQztLQUVEOzs7O1FBSUc7S0FDSywwREFBMkIsR0FBbkMsVUFBb0MsbUJBQWlEO1NBQ25GLEVBQUUsQ0FBQyxDQUFDLG1CQUFtQixLQUFLLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ2pFLE1BQU0sQ0FBQywyQ0FBMkIsQ0FBQyxPQUFPLENBQUM7U0FDN0MsQ0FBQztTQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxtQkFBbUIsS0FBSyxRQUFRLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUNwRSxNQUFNLENBQUMsMkNBQTJCLENBQUMsR0FBRyxDQUFDO1NBQ3pDLENBQUM7U0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsbUJBQW1CLEtBQUssUUFBUSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7YUFDdkUsTUFBTSxDQUFDLDJDQUEyQixDQUFDLE1BQU0sQ0FBQztTQUM1QyxDQUFDO1NBQ0QsTUFBTSxDQUFDLDJDQUEyQixDQUFDLE9BQU8sQ0FBQztLQUM3QyxDQUFDO0tBRUQ7Ozs7UUFJRztLQUNLLHFEQUFzQixHQUE5QixVQUErQixVQUFpRDtTQUM5RSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2FBQ2YsRUFBRSxDQUFDLENBQUMsVUFBVSxLQUFLLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2lCQUN4RCxNQUFNLENBQUMsa0RBQTBCLENBQUMsV0FBVyxDQUFDO2FBQ2hELENBQUM7YUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxLQUFLLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO2lCQUNsRSxNQUFNLENBQUMsa0RBQTBCLENBQUMsY0FBYyxDQUFDO2FBQ25ELENBQUM7YUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxLQUFLLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO2lCQUM5RCxNQUFNLENBQUMsa0RBQTBCLENBQUMsVUFBVSxDQUFDO2FBQy9DLENBQUM7U0FDSCxDQUFDO1NBRUQsTUFBTSxDQUFDLGtEQUEwQixDQUFDLFVBQVUsQ0FBQztLQUMvQyxDQUFDO0tBRUgsMkJBQUM7QUFBRCxFQUFDO0FBalNZLHFEQUFvQjtBQW1TakM7O0lBRUc7QUFDSCxLQUFLLHFCQUtKO0FBTEQsWUFBSyxxQkFBcUI7S0FDeEIseUZBQW9CO0tBQ3BCLDJFQUFhO0tBQ2IsbUZBQWlCO0tBQ2pCLDZFQUFjO0FBQ2hCLEVBQUMsRUFMSSxxQkFBcUIsS0FBckIscUJBQXFCLFFBS3pCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDL1REOztJQUVHO0FBQ0g7S0FBQTtLQUVBLENBQUM7S0FBRCxxQkFBQztBQUFELEVBQUM7QUFGWSx5Q0FBYztBQUkzQjs7SUFFRztBQUNIO0tBQXlDLHVDQUFjO0tBQXZEO1NBQUEscUVBRUM7U0FEQyxrQkFBWSxHQUFrQixFQUFFLENBQUM7O0tBQ25DLENBQUM7S0FBRCwwQkFBQztBQUFELEVBQUMsQ0FGd0MsY0FBYyxHQUV0RDtBQUZZLG1EQUFtQjtBQUloQzs7SUFFRztBQUNIO0tBQWdELDhDQUFtQjtLQUFuRTs7S0FDQSxDQUFDO0tBQUQsaUNBQUM7QUFBRCxFQUFDLENBRCtDLG1CQUFtQixHQUNsRTtBQURZLGlFQUEwQjtBQUd2Qzs7SUFFRztBQUNIO0tBQXlDLHVDQUFjO0tBQXZEOztLQUlBLENBQUM7S0FBRCwwQkFBQztBQUFELEVBQUMsQ0FKd0MsY0FBYyxHQUl0RDtBQUpZLG1EQUFtQjtBQU1oQzs7SUFFRztBQUNIO0tBQTZDLDJDQUFtQjtLQUFoRTs7S0FDQSxDQUFDO0tBQUQsOEJBQUM7QUFBRCxFQUFDLENBRDRDLG1CQUFtQixHQUMvRDtBQURZLDJEQUF1QjtBQUVwQzs7SUFFRztBQUNIO0tBQUE7U0FFRSxjQUFTLEdBQWtCLEVBQUUsQ0FBQztLQUNoQyxDQUFDO0tBQUQsMEJBQUM7QUFBRCxFQUFDO0FBSFksbURBQW1CO0FBS2hDOztJQUVHO0FBQ0g7S0FBQTtTQUNFLGlCQUFZLEdBQXNDLEVBQUUsQ0FBQztTQUNyRCxnQkFBVyxHQUFtQyxFQUFFLENBQUM7U0FDakQsa0JBQWEsR0FBK0IsRUFBRSxDQUFDO0tBRWpELENBQUM7S0FBRCwrQkFBQztBQUFELEVBQUM7QUFMWSw2REFBd0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUMxQ3JDLHVDQUFnQztBQUVoQztLQUErQiw2QkFBSztLQUNsQyxtQkFBMkIsY0FBNkI7U0FBeEQsWUFDRSxrQkFBTSxjQUFjLENBQUMsU0FFdEI7U0FIMEIsb0JBQWMsR0FBZCxjQUFjLENBQWU7U0FFdEQsY0FBYyxDQUFDLDhCQUE4QixDQUFDLEtBQUksQ0FBQyxDQUFDOztLQUN0RCxDQUFDO0tBRUQsc0JBQVcsaUNBQVU7Y0FBckI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7U0FDeEMsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyw4QkFBTztjQUFsQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQztTQUNyQyxDQUFDOzs7UUFBQTtLQUNILGdCQUFDO0FBQUQsRUFBQyxDQWI4QixhQUFLLEdBYW5DO0FBYlksK0JBQVM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNIdEIsMkNBQTJEO0FBSTNEO0tBQTJCLHlCQUFvQjtLQUM3QyxlQUEyQixVQUFxQjtTQUFoRCxZQUNFLGlCQUFPLFNBQ1I7U0FGMEIsZ0JBQVUsR0FBVixVQUFVLENBQVc7O0tBRWhELENBQUM7S0FFRCxzQkFBVyx1QkFBSTtjQUFmO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1NBQzlCLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsNEJBQVM7Y0FBcEI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7U0FDbkMsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyx1QkFBSTtjQUFmO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1NBQzlCLENBQUM7OztRQUFBO0tBRU0sa0NBQWtCLEdBQXpCLFVBQTBCLGFBQXFCO1NBQzdDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztLQUNqRSxDQUFDO0tBRU0sa0NBQWtCLEdBQXpCO1NBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDbEQsQ0FBQztLQUNILFlBQUM7QUFBRCxFQUFDLENBeEIwQixpQ0FBb0IsR0F3QjlDO0FBeEJZLHVCQUFLOzs7Ozs7Ozs7QUNKbEI7Ozs7SUFJRztBQUNIO0tBQ0UsMEJBQTJCLFVBQThCO1NBQTlCLGVBQVUsR0FBVixVQUFVLENBQW9CO0tBQUksQ0FBQztLQUU5RCxzQkFBVyx1Q0FBUztjQUFwQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQ3pCLENBQUM7OztRQUFBO0tBQ0gsdUJBQUM7QUFBRCxFQUFDO0FBTlksNkNBQWdCOzs7Ozs7Ozs7QUNKN0IsMkNBQXFGO0FBRXJGOzs7O0lBSUc7QUFDSDtLQVNFLHFCQUFtQixnQkFBa0M7U0FDbkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUM7U0FDL0MsSUFBSSxDQUFDLFFBQVEsR0FBRywyQ0FBWSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDakYsSUFBSSxDQUFDLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUM7U0FDaEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUM7U0FDNUMsSUFBSSxDQUFDLEtBQUssR0FBRywyQ0FBWSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDeEUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDLGVBQWUsQ0FBQztTQUN6RCxJQUFJLENBQUMsZUFBZSxHQUFHLGdCQUFnQixDQUFDLGNBQWMsQ0FBQztLQUN6RCxDQUFDO0tBRUQsc0JBQVcsbUNBQVU7Y0FBckI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUMxQixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLGdDQUFPO2NBQWxCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDdkIsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyxpQ0FBUTtjQUFuQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQ3hCLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsK0JBQU07Y0FBakI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztTQUN0QixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLDZCQUFJO2NBQWY7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNwQixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLHdDQUFlO2NBQTFCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztTQUMvQixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLHVDQUFjO2NBQXpCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7U0FDOUIsQ0FBQzs7O1FBQUE7S0FDSCxrQkFBQztBQUFELEVBQUM7QUE5Q1ksbUNBQVc7Ozs7Ozs7OztBQ0x4Qjs7SUFFRztBQUNIO0tBQ0Usa0JBQTJCLFlBQTBCO1NBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO0tBQUksQ0FBQztLQUVuRCx3QkFBSyxHQUFaLFVBQWEsR0FBVztTQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUMvQixDQUFDO0tBRU0sc0JBQUcsR0FBVixVQUFXLEdBQVc7U0FDcEIsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ3BDLENBQUM7S0FFTSx5QkFBTSxHQUFiO1NBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7S0FDcEMsQ0FBQztLQUVELHNCQUFXLGdDQUFVO2NBQXJCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDO1NBQ3RDLENBQUM7OztRQUFBO0tBRU0sNEJBQVMsR0FBaEI7U0FDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQztLQUN2QyxDQUFDO0tBRU0sc0JBQUcsR0FBVixVQUFXLEdBQVcsRUFBRSxLQUFhO1NBQ25DLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztLQUNwQyxDQUFDO0tBQ0gsZUFBQztBQUFELEVBQUM7QUExQlksNkJBQVE7Ozs7Ozs7OztBQ1ByQiwyQ0FBeUQ7QUFFekQsMkRBQTZFO0FBQzdFLHFEQUFrRTtBQUVsRSxtQ0FBeUMsVUFBaUM7S0FDeEUsK0JBQWtCLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLHFEQUF5QixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7S0FDdkYsK0JBQWtCLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLHlDQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDbkYsRUFBQztBQUhELDZEQUdDOzs7Ozs7Ozs7QUNURCxzREFBbUc7QUFLbkc7S0FDRSxtQ0FBMkIsVUFBaUM7U0FBakMsZUFBVSxHQUFWLFVBQVUsQ0FBdUI7S0FBSSxDQUFDO0tBRWpFLHNCQUFXLGtEQUFXO2NBQXRCO2FBQ0UsTUFBTSxxREFBeUM7U0FDakQsQ0FBQzs7O1FBQUE7S0FFTSxpRUFBNkIsR0FBcEM7U0FDRSxnR0FBZ0c7U0FDaEcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLDhCQUFNLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBcUIsa0JBQVE7YUFDMUYsK0JBQStCO2FBRS9CLElBQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUE0QixDQUFDO2FBQ3JELE1BQU0sQ0FBQyxNQUFNLENBQUM7U0FDaEIsQ0FBQyxDQUFDLENBQUM7S0FDTCxDQUFDO0tBQ0gsZ0NBQUM7QUFBRCxFQUFDO0FBaEJZLCtEQUF5Qjs7Ozs7Ozs7O0FDTHRDLHNEQU13QztBQUt4QztLQUNFLDZCQUEyQixVQUFpQztTQUFqQyxlQUFVLEdBQVYsVUFBVSxDQUF1QjtLQUFJLENBQUM7S0FFakUsc0JBQVcsNENBQVc7Y0FBdEI7YUFDRSxNQUFNLHlDQUFtQztTQUMzQyxDQUFDOzs7UUFBQTtLQUVNLCtDQUFpQixHQUF4QixVQUF5QixRQUE0QjtTQUNuRCxJQUFNLFVBQVUsYUFBdUIsR0FBQyxtQ0FBVyxDQUFDLGNBQWMsSUFBRyxRQUFRLEtBQUMsQ0FBQztTQUUvRSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsOEJBQU0sQ0FBQyxpQkFBaUIsRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQXFCLGVBQUs7YUFDakcsSUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQTJCLENBQUM7YUFFakQsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztpQkFDdEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO2FBQ3JELENBQUM7YUFFRCxNQUFNLEVBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ2hDLENBQUMsQ0FBQyxDQUFDOztLQUNMLENBQUM7S0FDSCwwQkFBQztBQUFELEVBQUM7QUFwQlksbURBQW1COzs7Ozs7Ozs7QUNQaEM7O0lBRUc7QUFDSDtLQWdCRSw4REFBOEQ7S0FDOUQsdUJBQW9CLGFBQXFCO1NBQ3ZDLElBQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQUMsSUFBSSxlQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFmLENBQWUsQ0FBQyxDQUFDO1NBQ2pFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixHQUFHLGFBQWEsQ0FBQyxDQUFDO1NBQzlELENBQUM7U0FFRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN2QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN2QixDQUFDO0tBbEJELHNCQUFrQix5QkFBUTtTQUgxQjs7WUFFRztjQUNIO2FBQ0UsTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7U0FDakMsQ0FBQzs7O1FBQUE7S0FrQkQsc0JBQVcsZ0NBQUs7Y0FBaEI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUNyQixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLGdDQUFLO2NBQWhCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDckIsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyw4QkFBRztjQUFkO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDbkIsQ0FBQzs7O1FBQUE7S0FwQ0QsMEdBQTBHO0tBQzNGLHVCQUFTLEdBQWtCLElBQUksYUFBYSxDQUFDLFNBQXdCLENBQUMsQ0FBQztLQW9DeEYsb0JBQUM7RUFBQTtBQXZDWSx1Q0FBYTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ1AxQix3Q0FBMkQ7QUFDM0Qsc0RBQThHO0FBQzlHLDJDQUFrRjtBQUVsRixpREFBcUQ7QUFDckQsMkNBQXlDO0FBQ3pDLDJDQUF3QztBQUN4QywrQ0FBZ0Q7QUFDaEQsK0NBQWdEO0FBRWhEO0tBQW1DLGlDQUFTO0tBSTFDLHVCQUEyQixLQUF5QixFQUFVLFVBQXFCO1NBQW5GLFlBQ0Usa0JBQU0sSUFBSSw2QkFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxpQkFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUN6RztTQUYwQixXQUFLLEdBQUwsS0FBSyxDQUFvQjtTQUFVLGdCQUFVLEdBQVYsVUFBVSxDQUFXOztLQUVuRixDQUFDO0tBRUQsc0JBQVcscUNBQVU7Y0FBckI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztTQUMxQixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLGtDQUFPO2NBQWxCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDdkIsQ0FBQzs7O1FBQUE7S0FFTSxzREFBOEIsR0FBckMsVUFBc0MsU0FBNkI7U0FDakUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLEtBQUssRUFBYSxDQUFDO1NBQzFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxLQUFLLEVBQTRCLENBQUM7U0FFdEQsOERBQThEO1NBQzlELEdBQUcsQ0FBQyxDQUFlLFVBQWdCLEVBQWhCLFNBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFoQixjQUFnQixFQUFoQixJQUFnQjthQUE5QixJQUFNLElBQUk7YUFDYixJQUFJLFNBQVMsR0FBMEIsU0FBUyxDQUFDO2FBRWpELElBQU0sUUFBUSxHQUFHLElBQUksaUJBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUVuRCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLDJDQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7aUJBQ3BELElBQU0sU0FBUyxHQUFHLElBQUksNkJBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2lCQUN2RixJQUFNLEtBQUssR0FBYTtxQkFDdEIsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJO3FCQUNwQixTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJO3FCQUMxQixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVO3FCQUN0QyxlQUFlLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlO3FCQUNoRCxZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZO2tCQUMzQyxDQUFDO2lCQUVGLElBQU0sYUFBYSxHQUFHLElBQUksNkJBQWEsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2lCQUNyRSxTQUFTLEdBQUcsSUFBSSxxQkFBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO2lCQUN6QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUNuQyxDQUFDO2FBRUQsSUFBTSxTQUFTLEdBQUcsSUFBSSxrQkFBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBRTVDLElBQU0sZUFBZSxHQUFHLElBQUksaUNBQWUsQ0FDekMsU0FBUyxFQUNULDJDQUE4QixDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQ3pFLFNBQVMsRUFDVCxRQUFRLEVBQ1IsU0FBUyxDQUNWLENBQUM7YUFFRixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztVQUNyQztLQUNILENBQUM7S0FDSCxvQkFBQztBQUFELEVBQUMsQ0F0RGtDLHFCQUFTLEdBc0QzQztBQXREWSx1Q0FBYTs7Ozs7Ozs7QWxDVjFCOzs7O0lBSUc7Ozs7O0FBTUgsbUNBQXdCOzs7Ozs7Ozs7QW1DUnhCOzs7SUFHRztBQUNIO0tBQ0UseUJBQ1UsVUFBOEIsRUFDOUIsS0FBbUMsRUFDbkMsU0FBeUIsRUFDekIsS0FBb0IsRUFDcEIsVUFBMEM7U0FKMUMsZUFBVSxHQUFWLFVBQVUsQ0FBb0I7U0FDOUIsVUFBSyxHQUFMLEtBQUssQ0FBOEI7U0FDbkMsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7U0FDekIsVUFBSyxHQUFMLEtBQUssQ0FBZTtTQUNwQixlQUFVLEdBQVYsVUFBVSxDQUFnQztLQUNoRCxDQUFDO0tBRUwsc0JBQVcsc0NBQVM7Y0FBcEI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUN6QixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLGlDQUFJO2NBQWY7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNwQixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLHFDQUFRO2NBQW5CO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7U0FDeEIsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyxpQ0FBSTtjQUFmO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDcEIsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyxzQ0FBUztjQUFwQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1NBQ3pCLENBQUM7OztRQUFBO0tBQ0gsc0JBQUM7QUFBRCxFQUFDO0FBNUJZLDJDQUFlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FDSjVCLHVDQUFnQztBQUloQztLQUErQiw2QkFBSztLQUNsQyxtQkFBMkIsY0FBNkI7U0FBeEQsWUFDRSxrQkFBTSxjQUFjLENBQUMsU0FJdEI7U0FMMEIsb0JBQWMsR0FBZCxjQUFjLENBQWU7U0FHdEQsOEZBQThGO1NBQzlGLEtBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsS0FBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQUMsSUFBSSxZQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUF2QixDQUF1QixDQUFDLENBQUM7O0tBQ25GLENBQUM7S0FFRCxzQkFBVyxzQ0FBZTtjQUExQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQztTQUM3QyxDQUFDOzs7UUFBQTtLQUVNLG9DQUFnQixHQUF2QixVQUNFLFNBQWlCLEVBQUUsTUFBcUIsRUFBRSxVQUFxQyxFQUFFLE9BQStCO1NBQzlHLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0tBQ3hGLENBQUM7S0FFTSx5Q0FBcUIsR0FBNUIsVUFBNkIsU0FBaUIsRUFBRSxhQUEwQztTQUN4RixNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLENBQUM7S0FDN0UsQ0FBQztLQUVNLG9DQUFnQixHQUF2QixVQUF3QixTQUFpQjtTQUN2QyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUN6RCxDQUFDO0tBRU0sMkNBQXVCLEdBQTlCO1NBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0tBQ25ELENBQUM7S0FFTSx1Q0FBbUIsR0FBMUI7U0FDRSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0tBQ25ELENBQUM7S0FFTSxxQ0FBaUIsR0FBeEI7U0FDRSxNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7S0FDbkQsQ0FBQztLQUVNLG1DQUFlLEdBQXRCO1NBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxFQUFFLENBQUM7S0FDL0MsQ0FBQztLQUVNLHlDQUFxQixHQUE1QjtTQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLHFCQUFxQixFQUFFLENBQUM7S0FDckQsQ0FBQztLQUVNLDRDQUF3QixHQUEvQjtTQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLHdCQUF3QixFQUFFLENBQUM7S0FDeEQsQ0FBQztLQUVNLHVDQUFtQixHQUExQixVQUEyQixPQUF1QztTQUNoRSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUMxRCxDQUFDO0tBRU0sMENBQXNCLEdBQTdCLFVBQThCLE9BQTBDO1NBQ3RFLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQzdELENBQUM7S0FFTSwyQ0FBdUIsR0FBOUI7U0FDRSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0tBQ3ZELENBQUM7S0FFTSx3Q0FBb0IsR0FBM0IsVUFBNEIsU0FBbUMsRUFBRSxVQUF3QztTQUN2RyxNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7S0FDbkQsQ0FBQztLQUVNLDJDQUF1QixHQUE5QixVQUErQixVQUE2QyxFQUM3QyxtQkFBaUQ7U0FDOUUsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsdUJBQXVCLENBQUMsVUFBVSxFQUFFLG1CQUFtQixDQUFDLENBQUM7S0FDdEYsQ0FBQztLQUVNLHdDQUFvQixHQUEzQixVQUE0QixVQUFvQyxFQUNwQyxtQkFBaUQ7U0FDM0UsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsVUFBVSxFQUFFLG1CQUFtQixDQUFDLENBQUM7S0FDbkYsQ0FBQztLQUNILGdCQUFDO0FBQUQsRUFBQyxDQTFFOEIsYUFBSyxHQTBFbkM7QUExRVksK0JBQVM7Ozs7Ozs7OztBQ0h0QiwyQ0FBMEY7QUFJMUY7S0FDRSxtQkFBMkIsY0FBNkI7U0FBN0IsbUJBQWMsR0FBZCxjQUFjLENBQWU7S0FDeEQsQ0FBQztLQUVELHNCQUFXLDJCQUFJO2NBQWY7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7U0FDbEMsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyxnQ0FBUztjQUFwQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztTQUN2QyxDQUFDOzs7UUFBQTtLQUVELHNCQUFXLGdDQUFTO2NBQXBCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO1NBQ3ZDLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsMkJBQUk7Y0FBZjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztTQUN2QyxDQUFDOzs7UUFBQTtLQUVNLHNDQUFrQixHQUF6QixVQUEwQixhQUFxQixFQUFFLEtBQXFCO1NBQ3BFLElBQU0sT0FBTyxHQUFHLCtCQUFrQixDQUFDLFFBQVEsQ0FBQyxVQUFVLHVDQUE0QyxDQUFDO1NBQ25HLE1BQU0sQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQ2hFLENBQUM7S0FFTSxzQ0FBa0IsR0FBekIsVUFBMEIsS0FBcUI7U0FDN0MsSUFBTSxPQUFPLEdBQUcsK0JBQWtCLENBQUMsUUFBUSxDQUFDLFVBQVUsdUNBQTRDLENBQUM7U0FDbkcsTUFBTSxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0tBQ25FLENBQUM7S0FDSCxnQkFBQztBQUFELEVBQUM7QUE3QlksK0JBQVM7Ozs7Ozs7OztBQ1B0Qix1REFBaUU7QUFHakU7S0FDRSx1QkFDVSxLQUFhLEVBQ2IsVUFBcUIsRUFDckIsVUFBZ0I7U0FGaEIsVUFBSyxHQUFMLEtBQUssQ0FBUTtTQUNiLGVBQVUsR0FBVixVQUFVLENBQVc7U0FDckIsZUFBVSxHQUFWLFVBQVUsQ0FBTTtLQUN0QixDQUFDO0tBRUwsc0JBQVcsK0JBQUk7Y0FBZjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ3BCLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsb0NBQVM7Y0FBcEI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztTQUN6QixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLG9DQUFTO2NBQXBCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDekIsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyxvQ0FBUztjQUFwQjthQUNFLE1BQU0sQ0FBQztpQkFDTCxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUk7aUJBQ3BCLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxLQUFLLGlDQUFTLENBQUMsU0FBUztpQkFDbkQsaUJBQWlCO2NBQ2xCLENBQUM7U0FDSixDQUFDOzs7UUFBQTtLQUNILG9CQUFDO0FBQUQsRUFBQztBQTFCWSx1Q0FBYTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0gxQix3Q0FBMkQ7QUFDM0Qsc0RBTXdDO0FBRXhDLDJDQWE2QjtBQUU3Qiw0Q0FBMkM7QUFHM0MsZ0RBQWtEO0FBQ2xELDJDQUF3QztBQUd4QyxLQUFNLGlCQUFpQixHQUFHLFVBQVMsQ0FBVyxFQUFFLENBQVc7S0FDekQsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQ1gsQ0FBQyxDQUFDLFNBQVMsS0FBSyxDQUFDLENBQUMsU0FBUztTQUMzQixDQUFDLENBQUMsU0FBUyxLQUFLLENBQUMsQ0FBQyxTQUFTO1NBQzNCLENBQUMsQ0FBQyxVQUFVLEtBQUssQ0FBQyxDQUFDLFVBQVU7U0FDN0IsQ0FBQyxDQUFDLFlBQVksS0FBSyxDQUFDLENBQUMsWUFBWTtTQUNqQyxDQUFDLENBQUMsZUFBZSxLQUFLLENBQUMsQ0FBQyxlQUFlLENBQUM7QUFDNUMsRUFBQyxDQUFDO0FBRUY7S0FBbUMsaUNBQVM7S0FDMUMsdUJBQW1CLGFBQTRCLEVBQ3BCLFNBQW1CLEVBQ25CLGdCQUFvQztTQUYvRCxZQUdFLGtCQUFNLGFBQWEsQ0FBQyxTQUNyQjtTQUgwQixlQUFTLEdBQVQsU0FBUyxDQUFVO1NBQ25CLHNCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7O0tBRS9ELENBQUM7S0FFRCxzQkFBVywwQ0FBZTtjQUExQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7U0FDL0IsQ0FBQzs7O1FBQUE7S0FFRDs7Ozs7OztRQU9HO0tBQ0ksd0NBQWdCLEdBQXZCLFVBQXdCLFNBQW9CO1NBQTVDLGlCQWtDQztTQWpDQyxJQUFNLE9BQU8sR0FBRyxJQUFJLEtBQUssRUFBc0IsQ0FBQztTQUNoRCxJQUFJLG1CQUF3QyxDQUFDO1NBRTdDLElBQUksQ0FBQzthQUNILG1CQUFtQixHQUFHLCtCQUFrQixDQUFDLFFBQVEsQ0FBQyxVQUFVLDJDQUFnRCxDQUFDO1NBQy9HLENBQUM7U0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ1gsd0RBQXdEO2FBQ3hELE1BQU0sQ0FBQyxPQUFPLENBQUM7U0FDakIsQ0FBQztTQUVELDRFQUE0RTtTQUM1RSxJQUFNLFVBQVUsR0FBRyxJQUFJLG1DQUFzQixDQUFxQixRQUFRLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztTQUNsSCxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsc0NBQWMsQ0FBQyxvQkFBb0IsRUFBRSxVQUFDLEtBQUs7YUFDN0UsSUFBTSxRQUFRLEdBQUcsS0FBaUIsQ0FBQzthQUNuQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLEtBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNwRCxDQUFDLEVBQUUsVUFBQyxHQUFhO2FBQ2YsVUFBVSxDQUFDLFlBQVksQ0FBQyxjQUFNLFdBQUksK0JBQWtCLENBQUMsU0FBUyxDQUFDLEVBQWpDLENBQWlDLENBQUMsQ0FBQztTQUNuRSxDQUFDLENBQUMsQ0FBQztTQUVILElBQU0sV0FBVyxHQUFHLElBQUksbUNBQXNCLENBQXFCLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUM1RyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsc0NBQWMsQ0FBQyxhQUFhLEVBQUUsVUFBQyxLQUFLO2FBQ3RFLElBQU0sbUJBQW1CLEdBQUcsS0FBb0IsQ0FBQzthQUNqRCxNQUFNLENBQUMsS0FBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEtBQUssbUJBQW1CLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztTQUM1RSxDQUFDLEVBQUUsVUFBQyxLQUFrQjthQUNwQixXQUFXLENBQUMsWUFBWSxDQUFDLGNBQU0sV0FBSSwrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFsRCxDQUFrRCxDQUFDLENBQUM7U0FDckYsQ0FBQyxDQUFDLENBQUM7U0FFSCxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FFMUIsMkJBQTJCO1NBRTNCLE1BQU0sQ0FBQyxPQUFPLENBQUM7S0FDakIsQ0FBQztLQUVELHNCQUFXLG1DQUFRO2NBQW5CO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7U0FDeEIsQ0FBQzs7O1FBQUE7S0FFTSx3Q0FBZ0IsR0FBdkIsVUFDRSxTQUFpQixFQUFFLE1BQXFCLEVBQUUsVUFBcUMsRUFBRSxPQUErQjtTQUM5RyxJQUFNLE9BQU8sR0FBRywrQkFBa0IsQ0FBQyxRQUFRLENBQUMsVUFBVSwrQkFBb0MsQ0FBQztTQUMzRixNQUFNLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7S0FDekYsQ0FBQztLQUVJLDZDQUFxQixHQUE1QixVQUE2QixTQUFpQixFQUFFLGFBQTBDO1NBQ3hGLElBQU0sT0FBTyxHQUFHLCtCQUFrQixDQUFDLFFBQVEsQ0FBQyxVQUFVLCtCQUFvQyxDQUFDO1NBQzNGLE1BQU0sQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsYUFBYSxDQUFDLENBQUM7S0FDaEYsQ0FBQztLQUVNLHdDQUFnQixHQUF2QixVQUF3QixTQUFpQjtTQUN2QyxJQUFNLE9BQU8sR0FBRywrQkFBa0IsQ0FBQyxRQUFRLENBQUMsVUFBVSwrQkFBb0MsQ0FBQztTQUMzRixNQUFNLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7S0FDNUQsQ0FBQztLQUVNLDJDQUFtQixHQUExQjtTQUFBLGlCQXNCQztTQXJCQyxJQUFNLE9BQU8sR0FBRywrQkFBa0IsQ0FBQyxRQUFRLENBQUMsVUFBVSwrQ0FBbUQsQ0FBQztTQUUxRyxNQUFNLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUMsSUFBSSxDQUE2QixnQkFBTTthQUMxRSxJQUFNLFVBQVUsR0FBZSxNQUFvQixDQUFDO2FBQ3BELElBQU0sdUJBQXVCLEdBQTRCLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFFdEcsSUFBSSxXQUFXLEdBQStCLEVBQUUsQ0FBQzthQUVqRCwyRkFBMkY7YUFDM0YsSUFBSSxTQUFTLEdBQVcsdUJBQXVCLENBQUMsaUJBQWlCLENBQUM7YUFDbEUsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBRTFGLDhEQUE4RDthQUM5RCxHQUFHLENBQUMsQ0FBb0IsVUFBZ0QsRUFBaEQsNEJBQXVCLENBQUMsd0JBQXdCLEVBQWhELGNBQWdELEVBQWhELElBQWdEO2lCQUFuRSxJQUFJLFdBQVc7aUJBQ2xCLEVBQUUsQ0FBQyxDQUFDLFdBQVcsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDO3FCQUM5QixXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ2hHLENBQUM7Y0FDRjthQUVELE1BQU0sQ0FBQyxXQUFXLENBQUM7U0FDckIsQ0FBQyxDQUFDLENBQUM7S0FDTCxDQUFDO0tBRU0sdUNBQWUsR0FBdEI7U0FDRSxJQUFNLE9BQU8sR0FBRywrQkFBa0IsQ0FBQyxRQUFRLENBQUMsVUFBVSwrQkFBb0MsQ0FBQztTQUMzRixNQUFNLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7S0FDaEQsQ0FBQztLQUVNLDZDQUFxQixHQUE1QjtTQUNFLElBQU0sT0FBTyxHQUFHLCtCQUFrQixDQUFDLFFBQVEsQ0FBQyxVQUFVLGtDQUFzQyxDQUFDO1NBQzdGLE1BQU0sQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBQ3RELENBQUM7S0FFTSxnREFBd0IsR0FBL0I7U0FDRSxJQUFNLE9BQU8sR0FBRywrQkFBa0IsQ0FBQyxRQUFRLENBQUMsVUFBVSxrQ0FBc0MsQ0FBQztTQUM3RixNQUFNLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUN6RCxDQUFDO0tBRU0sMkNBQW1CLEdBQTFCLFVBQTJCLE9BQXVDO1NBQ2hFLElBQU0sT0FBTyxHQUFHLCtCQUFrQixDQUFDLFFBQVEsQ0FBQyxVQUFVLGtDQUFzQyxDQUFDO1NBQzdGLE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1NBRXhCLE1BQU0sQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQ25DLElBQUksQ0FBQyxRQUFRLEVBQUUsd0JBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0tBQ25HLENBQUM7S0FFSSw4Q0FBc0IsR0FBN0IsVUFBOEIsT0FBMEM7U0FDdEUsSUFBTSxPQUFPLEdBQUcsK0JBQWtCLENBQUMsUUFBUSxDQUFDLFVBQVUsa0NBQXNDLENBQUM7U0FDN0YsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7U0FDeEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FDbkMsSUFBSSxDQUFDLFFBQVEsRUFDYix3QkFBVyxDQUFDLFVBQVUsRUFDdEIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQ3ZCLENBQUMsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUN6QixDQUFDLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUMzQixPQUFPLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDO0tBQzFCLENBQUM7S0FFTSwrQ0FBdUIsR0FBOUI7U0FDRSxJQUFNLE9BQU8sR0FBRywrQkFBa0IsQ0FBQyxRQUFRLENBQUMsVUFBVSxxQ0FBMEMsQ0FBQztTQUNqRyxNQUFNLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztLQUN4RCxDQUFDO0tBRU0sK0NBQXVCLEdBQTlCLFVBQStCLFVBQTZDLEVBQzdDLG1CQUFpRDtTQUM5RSxJQUFNLE9BQU8sR0FBRywrQkFBa0IsQ0FBQyxRQUFRLENBQUMsVUFBVSxxQ0FBMEMsQ0FBQztTQUNqRyxNQUFNLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixDQUFDLENBQUM7S0FDekYsQ0FBQztLQUVNLDRDQUFvQixHQUEzQixVQUE0QixVQUFvQyxFQUNwQyxtQkFBaUQ7U0FDM0UsSUFBTSxPQUFPLEdBQUcsK0JBQWtCLENBQUMsUUFBUSxDQUFDLFVBQVUscUNBQTBDLENBQUM7U0FDakcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0tBQ3RGLENBQUM7S0FFTyw0Q0FBb0IsR0FBNUIsVUFBNkIsRUFBVSxFQUFFLGNBQThCO1NBQ3JFLElBQU0sY0FBYyxHQUFHLElBQUksK0JBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUMxRCxJQUFNLFVBQVUsR0FBRyxJQUFJLHVCQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDbEQsTUFBTSxDQUFDLFVBQVUsQ0FBQztLQUNwQixDQUFDO0tBQ0gsb0JBQUM7QUFBRCxFQUFDLENBNUprQyxxQkFBUyxHQTRKM0M7QUE1SlksdUNBQWE7Ozs7Ozs7OztBQ3BDMUI7S0FDRSxvQkFBMkIsZUFBK0I7U0FBL0Isb0JBQWUsR0FBZixlQUFlLENBQWdCO0tBQUksQ0FBQztLQUUvRCxzQkFBVyw0QkFBSTtjQUFmO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO1NBQ25DLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsMEJBQUU7Y0FBYjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztTQUNqQyxDQUFDOzs7UUFBQTtLQUVELHNCQUFXLDhCQUFNO2NBQWpCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDO1NBQ3JDLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsMkNBQW1CO2NBQTlCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUM7U0FDbEQsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyx5Q0FBaUI7Y0FBNUI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQztTQUNoRCxDQUFDOzs7UUFBQTtLQUVELHNCQUFXLGlDQUFTO2NBQXBCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDO1NBQ3hDLENBQUM7OztRQUFBO0tBRU0saUNBQVksR0FBbkI7U0FDRSxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztLQUM3QyxDQUFDO0tBRU0sc0NBQWlCLEdBQXhCLFVBQXlCLE9BQWtEO1NBRXpFLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixFQUFFLENBQUM7S0FDbEQsQ0FBQztLQUNILGlCQUFDO0FBQUQsRUFBQztBQW5DWSxpQ0FBVTs7Ozs7Ozs7O0FDRnZCLDJDQUEwRjtBQUUxRiwyQ0FBd0M7QUFFeEMsdUNBQWlDO0FBRWpDO0tBR0Usd0JBQTJCLGVBQTRDO1NBQXZFLGlCQUtFO1NBTHlCLG9CQUFlLEdBQWYsZUFBZSxDQUE2QjtTQUNyRSxJQUFJLENBQUMsT0FBTyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLG9CQUFVO2FBQ2xELElBQU0sU0FBUyxHQUFHLElBQUkscUJBQVMsQ0FBQyxVQUFVLEVBQUUsS0FBSSxDQUFDLENBQUM7YUFDbEQsTUFBTSxDQUFDLElBQUksYUFBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzlCLENBQUMsQ0FBQyxDQUFDO0tBQ0osQ0FBQztLQUVGLHNCQUFXLGdDQUFJO2NBQWY7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUM7U0FDbkMsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyw4QkFBRTtjQUFiO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1NBQ2pDLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsNkNBQWlCO2NBQTVCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUM7U0FDaEQsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyxrQ0FBTTtjQUFqQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQ3RCLENBQUM7OztRQUFBO0tBRUQsc0JBQVcscUNBQVM7Y0FBcEI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUM7U0FDeEMsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVywrQ0FBbUI7Y0FBOUI7YUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7U0FDN0UsQ0FBQzs7O1FBQUE7S0FFTSxxQ0FBWSxHQUFuQjtTQUNFLElBQU0saUJBQWlCLEdBQUcsK0JBQWtCLENBQUMsUUFBUSxDQUFDLFVBQVUsK0NBQy9CLENBQUM7U0FFbEMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0tBQ2pFLENBQUM7S0FFTSwwQ0FBaUIsR0FBeEIsVUFBeUIsT0FBa0Q7U0FFekUsTUFBTSxJQUFJLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO0tBQzNFLENBQUM7S0FDSCxxQkFBQztBQUFELEVBQUM7QUE3Q1kseUNBQWM7Ozs7Ozs7OztBQ04zQiwyQ0FBcUU7QUFFckU7S0FDRSxtQkFBMkIsVUFBa0MsRUFDbEMsaUJBQXNDO1NBRHRDLGVBQVUsR0FBVixVQUFVLENBQXdCO1NBQ2xDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBcUI7S0FBSyxDQUFDO0tBRXZFLHNCQUFXLDJCQUFJO2NBQWY7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7U0FDOUIsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyx5QkFBRTtjQUFiO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1NBQzVCLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsa0NBQVc7Y0FBdEI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7U0FDckMsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyxrQ0FBVztjQUF0QjthQUNFLE1BQU0sQ0FBQywyQ0FBOEIsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUNsRyxDQUFDOzs7UUFBQTtLQUVELHNCQUFXLGlDQUFVO2NBQXJCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztTQUNoQyxDQUFDOzs7UUFBQTtLQUVELHNCQUFXLDJCQUFJO2NBQWY7YUFDRSxNQUFNLENBQUMsMkNBQThCLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3BGLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsK0JBQVE7Y0FBbkI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7U0FDbEMsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyxrQ0FBVztjQUF0QjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQztTQUNyQyxDQUFDOzs7UUFBQTtLQUVELHNCQUFXLHdDQUFpQjtjQUE1QjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDO1NBQzNDLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsc0NBQWU7Y0FBMUI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUM7U0FDekMsQ0FBQzs7O1FBQUE7S0FFTSwyQ0FBdUIsR0FBOUI7U0FDRSxNQUFNLElBQUksS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUM7S0FDL0UsQ0FBQztLQUNILGdCQUFDO0FBQUQsRUFBQztBQS9DWSwrQkFBUzs7Ozs7Ozs7O0FDQXRCO0tBQ0UsZUFBMkIsVUFBcUI7U0FBckIsZUFBVSxHQUFWLFVBQVUsQ0FBVztLQUFJLENBQUM7S0FFckQsc0JBQVcsdUJBQUk7Y0FBZjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztTQUM5QixDQUFDOzs7UUFBQTtLQUVELHNCQUFXLHFCQUFFO2NBQWI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7U0FDNUIsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyw4QkFBVztjQUF0QjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQztTQUNyQyxDQUFDOzs7UUFBQTtLQUVELHNCQUFXLDhCQUFXO2NBQXRCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO1NBQ3JDLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsNkJBQVU7Y0FBckI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7U0FDcEMsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyx1QkFBSTtjQUFmO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1NBQzlCLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsMkJBQVE7Y0FBbkI7YUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7U0FDbEMsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyw4QkFBVztjQUF0QjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQztTQUNyQyxDQUFDOzs7UUFBQTtLQUVELHNCQUFXLG9DQUFpQjtjQUE1QjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDO1NBQzNDLENBQUM7OztRQUFBO0tBRUQsc0JBQVcsNkJBQVU7Y0FBckI7YUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7U0FDM0QsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyxrQ0FBZTtjQUExQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQztTQUN6QyxDQUFDOzs7UUFBQTtLQUVNLHVDQUF1QixHQUE5QjtTQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QixFQUFFLENBQUM7S0FDbkQsQ0FBQztLQUNILFlBQUM7QUFBRCxFQUFDO0FBbERZLHVCQUFLOzs7Ozs7Ozs7QUNIbEIsMkNBQXlEO0FBQ3pELDJDQUEyQztBQUszQztLQVFFLHNCQUFtQixZQUErQjtTQUpsRCx1RUFBdUU7U0FDdkUsb0ZBQW9GO1NBQzVFLG9CQUFlLEdBQVksS0FBSyxDQUFDO1NBR3ZDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztLQUN4QyxDQUFDO0tBRU0sNEJBQUssR0FBWixVQUFhLEdBQVc7U0FDdEIsaUJBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBRTlCLHNEQUFzRDtTQUN0RCxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQy9CLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO2FBRWpDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2xDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1NBQzFCLENBQUM7S0FDSCxDQUFDO0tBRU0sMEJBQUcsR0FBVixVQUFXLEdBQVc7U0FDcEIsaUJBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDcEMsQ0FBQztLQUVNLDZCQUFNLEdBQWI7U0FDRSx5Q0FBeUM7U0FDekMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0tBQ2xELENBQUM7S0FFRCxzQkFBVyxvQ0FBVTtjQUFyQjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQzFCLENBQUM7OztRQUFBO0tBRU0sZ0NBQVMsR0FBaEI7U0FBQSxpQkFvQkM7U0FuQkMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7U0FFakMscURBQXFEO1NBQ3JELEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7YUFDdEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQXFCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ3BFLENBQUM7U0FFRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztTQUU1QixtREFBbUQ7U0FDbkQsSUFBTSxlQUFlLEdBQUcsK0JBQWtCLENBQUMsUUFBUSxDQUFDLFVBQVUseUNBQzFCLENBQUM7U0FFckMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLENBQXFCLHFCQUFXO2FBQ2xHLEtBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO2FBQzdCLEtBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO2FBQ3pCLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSSxDQUFDLGdCQUFnQixFQUFFLFdBQVcsQ0FBQyxDQUFDO2FBQ2xELE1BQU0sQ0FBQyxXQUFXLENBQUM7U0FDckIsQ0FBQyxDQUFDLENBQUM7S0FDTCxDQUFDO0tBRU0sMEJBQUcsR0FBVixVQUFXLEdBQVcsRUFBRSxLQUFhO1NBQ25DLGlCQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLG9DQUFvQztTQUNuRSxpQkFBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxpQ0FBaUM7U0FDckUsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7U0FFakMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztTQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztLQUMxQixDQUFDO0tBRU8seUNBQWtCLEdBQTFCLFVBQTJCLFlBQStCO1NBQ3hELGlCQUFLLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxjQUFjLENBQUMsQ0FBQztTQUNoRCxpQkFBSyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLDZCQUE2QixDQUFDLENBQUM7U0FFOUUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxjQUFjLENBQUM7U0FFcEQsNEJBQTRCO1NBQzVCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0tBQzNCLENBQUM7S0FFRDs7O1FBR0c7S0FDSyxnREFBeUIsR0FBakM7U0FDRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQzthQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7U0FDbEYsQ0FBQztLQUNILENBQUM7S0FDSCxtQkFBQztBQUFELEVBQUM7QUF4RlkscUNBQVk7Ozs7Ozs7O0FqQ1B6Qjs7OztJQUlHOztBQUVILCtDQUFnRDtBQUF2QyxzREFBYTtBQUN0Qix1Q0FBZ0M7QUFBdkIsOEJBQUs7Ozs7Ozs7OztBa0NIZDs7SUFFRztBQUNIO0tBQ0UsZUFBMkIsU0FBb0I7U0FBcEIsY0FBUyxHQUFULFNBQVMsQ0FBVztTQUM3QyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztLQUM3QixDQUFDO0tBRUQsc0JBQVcsbUNBQWdCO2NBQTNCO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUM7U0FDekMsQ0FBQzs7O1FBQUE7S0FFRCxzQkFBVyw4QkFBVztjQUF0QjthQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQztTQUNwQyxDQUFDOzs7UUFBQTtLQUVELHNCQUFXLDJCQUFRO2NBQW5CO2FBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO1NBQ2pDLENBQUM7OztRQUFBO0tBRUQsc0JBQVcscUJBQUU7Y0FBYjthQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztTQUNsRCxDQUFDOzs7UUFBQTtLQUVNLCtCQUFlLEdBQXRCO1NBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLENBQUM7S0FDMUMsQ0FBQztLQUNILFlBQUM7QUFBRCxFQUFDO0FBeEJZLHVCQUFLIiwiZmlsZSI6IkB0YWJsZWF1L2FkZGluLWFwaS4wLjQuMC5qcyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcInRhYmxlYXVcIl0gPSBmYWN0b3J5KCk7XG5cdGVsc2Vcblx0XHRyb290W1widGFibGVhdVwiXSA9IGZhY3RvcnkoKTtcbn0pKHRoaXMsIGZ1bmN0aW9uKCkge1xucmV0dXJuIFxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIHdlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvblxuICoqLyIsIiBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbiBcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0ge307XG5cbiBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4gXHRmdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cbiBcdFx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG4gXHRcdGlmKGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdKVxuIFx0XHRcdHJldHVybiBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXS5leHBvcnRzO1xuXG4gXHRcdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG4gXHRcdHZhciBtb2R1bGUgPSBpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSA9IHtcbiBcdFx0XHRleHBvcnRzOiB7fSxcbiBcdFx0XHRpZDogbW9kdWxlSWQsXG4gXHRcdFx0bG9hZGVkOiBmYWxzZVxuIFx0XHR9O1xuXG4gXHRcdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuIFx0XHRtb2R1bGVzW21vZHVsZUlkXS5jYWxsKG1vZHVsZS5leHBvcnRzLCBtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4gXHRcdG1vZHVsZS5sb2FkZWQgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIi9kaXN0L1wiO1xuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKDApO1xuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogd2VicGFjay9ib290c3RyYXAgNDBmNTEyNDQ3YzY5YjBhODY3NjRcbiAqKi8iLCIvKipcclxuICogVGhpcyBpcyB5b3VyIG1haW4uIFRoaXMgaXMgd2hlcmUgeW91IHJlLWV4cG9ydCBldmVyeXRoaW5nIHlvdSB3YW50IHRvIGJlIHB1YmxpY2x5IGF2YWlsYWJsZS5cclxuICpcclxuICogVGhlIGJ1aWxkIGVuZm9yY2VzIHRoYXQgdGhlIGZpbGUgaGFzIHRoZSBzYW1lIG5hbWUgYXMgdGhlIGdsb2JhbCB2YXJpYWJsZSB0aGF0IGlzIGV4cG9ydGVkLlxyXG4gKi9cclxuXHJcbi8vIER1ZSB0byB0aGUgd2F5IHdlIGNvbmZpZ3VyZWQgd2VicGFjaywgd2Ugc2hvdWxkIGJlIGV4cG9ydGluZyB0aGluZ3Mgd2hpY2ggd2lsbCBiZSB1bmRlclxyXG4vLyBhIGdsb2JhbCB2YXJpYWJsZSBjYWxsZWQgXCJ0YWJsZWF1XCIuIEV4cG9ydCBldmVyeXRoaW5nIHdlIHdhbnQgdG8gYmUgdmlzaWJsZSB1bmRlciB0YWJsZWF1XHJcbi8vIGZyb20gdGhpcyBmaWxlLlxyXG5cclxuaW1wb3J0IHsgQWRkSW5JbXBsIH0gZnJvbSAnLi9JbnRlcm5hbC9BZGRJbkltcGwnO1xyXG5pbXBvcnQgeyBBZGRJbiB9IGZyb20gJy4vTmFtZXNwYWNlcy9BZGRJbic7XHJcblxyXG5jb25zdCBhZGRJbkltcGwgPSBuZXcgQWRkSW5JbXBsKCk7XHJcbmV4cG9ydCBjb25zdCBhZGRJbiA9IG5ldyBBZGRJbihhZGRJbkltcGwpO1xyXG5cclxuLy8gRXhwb3J0IEVudW1zXHJcbi8vIFRoZXNlIHNob3cgdXAgdW5kZXIgdGhlIHRhYmxlYXUgb2JqZWN0LiBJLmUuIHRhYmxlYXUuQWRkSW5Db250ZXh0LlNlcnZlclxyXG5leHBvcnQge1xyXG4gIEFkZEluQ29udGV4dCxcclxuICBBZGRJbk1vZGUsXHJcbiAgQW5hbHl0aWNzT2JqZWN0VHlwZSxcclxuICBDb2x1bW5UeXBlLFxyXG4gIERhc2hib2FyZE9iamVjdFR5cGUsXHJcbiAgRGF0YVR5cGUsXHJcbiAgRGF0ZVJhbmdlVHlwZSxcclxuICBEaWFsb2dFdmVudFR5cGUsXHJcbiAgRW5jb2RpbmdUeXBlLFxyXG4gIEVycm9yQ29kZXMsXHJcbiAgRmllbGRBZ2dyZWdhdGlvblR5cGUsXHJcbiAgRmllbGRSb2xlVHlwZSxcclxuICBGaWx0ZXJUeXBlLFxyXG4gIEZpbHRlclVwZGF0ZVR5cGUsXHJcbiAgRmlsdGVyTnVsbE9wdGlvbixcclxuICBNYXJrVHlwZSxcclxuICBQYXJhbWV0ZXJWYWx1ZVR5cGUsXHJcbiAgUGVyaW9kVHlwZSxcclxuICBRdWlja1RhYmxlQ2FsY1R5cGUsXHJcbiAgU2VsZWN0aW9uVXBkYXRlVHlwZSxcclxuICBTaGVldFR5cGUsXHJcbiAgU29ydERpcmVjdGlvbixcclxuICBUYWJsZWF1RXZlbnRUeXBlLFxyXG4gIFRyZW5kTGluZU1vZGVsVHlwZVxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIC4uL3NyYy9BZGRJbkFwaS50c1xuICoqLyIsImltcG9ydCB7XHJcbiAgQWRkSW5EYXNoYm9hcmRJbmZvLFxyXG4gIEFkZEluU2V0dGluZ3NJbmZvLFxyXG4gIEludGVybmFsQXBpRGlzcGF0Y2hlcixcclxuICBJbnRlcm5hbEFwaURpc3BhdGNoZXJIb2xkZXIsXHJcbiAgU2hlZXRQYXRoLFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2VSZWdpc3RyeSwgcmVnaXN0ZXJBbGxTaGFyZWRTZXJ2aWNlcyB9IGZyb20gJ0B0YWJsZWF1L2FwaS1zaGFyZWQnO1xyXG5cclxuaW1wb3J0IHsgRGFzaGJvYXJkIH0gZnJvbSAnLi4vRGFzaGJvYXJkJztcclxuaW1wb3J0IHsgRGFzaGJvYXJkQ29udGVudCB9IGZyb20gJy4uL05hbWVzcGFjZXMvRGFzaGJvYXJkQ29udGVudCc7XHJcbmltcG9ydCB7IEVudmlyb25tZW50IH0gZnJvbSAnLi4vTmFtZXNwYWNlcy9FbnZpcm9ubWVudCc7XHJcbmltcG9ydCB7IFNldHRpbmdzIH0gZnJvbSAnLi4vTmFtZXNwYWNlcy9TZXR0aW5ncyc7XHJcbmltcG9ydCB7IEFkZEluU2VydmljZU5hbWVzIH0gZnJvbSAnLi4vU2VydmljZXMvQWRkSW5TZXJ2aWNlTmFtZXMnO1xyXG5pbXBvcnQgeyBJbml0aWFsaXphdGlvblNlcnZpY2UgfSBmcm9tICcuLi9TZXJ2aWNlcy9Jbml0aWFsaXphdGlvblNlcnZpY2UnO1xyXG5pbXBvcnQgeyByZWdpc3RlckFsbEFkZEluU2VydmljZXMgfSBmcm9tICcuLi9TZXJ2aWNlcy9SZWdpc3RlckFsbEFkZEluU2VydmljZXMnO1xyXG5pbXBvcnQgeyBWZXJzaW9uTnVtYmVyIH0gZnJvbSAnLi4vVmVyc2lvbk51bWJlcic7XHJcbmltcG9ydCB7IERhc2hib2FyZEltcGwgfSBmcm9tICcuL0Rhc2hib2FyZEltcGwnO1xyXG5pbXBvcnQgeyBTZXR0aW5nc0ltcGwgfSBmcm9tICcuL1NldHRpbmdzSW1wbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgQWRkSW5JbXBsIHtcclxuICBwcml2YXRlIF9pbml0aWFsaXphdGlvblByb21pc2U6IFByb21pc2U8dm9pZD47XHJcblxyXG4gIHB1YmxpYyBkYXNoYm9hcmRDb250ZW50OiBEYXNoYm9hcmRDb250ZW50O1xyXG4gIHB1YmxpYyBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQ7XHJcbiAgcHVibGljIHNldHRpbmdzOiBTZXR0aW5ncztcclxuXHJcbiAgcHVibGljIGluaXRpYWxpemVBc3luYygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICghdGhpcy5faW5pdGlhbGl6YXRpb25Qcm9taXNlKSB7XHJcbiAgICAgIHRoaXMuX2luaXRpYWxpemF0aW9uUHJvbWlzZSA9IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAvLyBGaXJzdCB0aGluZyB3ZSB3YW50IHRvIGRvIGlzIGNoZWNrIHRvIHNlZSBpZiB0aGVyZSBpcyBhIGRlc2t0b3AgZGlzcGF0Y2hlciBhbHJlYWR5IHJlZ2lzdGVyZWQgZm9yIHVzXHJcbiAgICAgICAgaWYgKEludGVybmFsQXBpRGlzcGF0Y2hlckhvbGRlci5oYXNEZXNrdG9wQXBpRGlzcGF0Y2hlclByb21pc2UoKSkge1xyXG4gICAgICAgICAgLy8gUnVubmluZyBpbiBkZXNrdG9wLCB1c2UgdGhpcyBwcm9taXNlXHJcbiAgICAgICAgICBjb25zdCBkZXNrdG9wRGlzcGF0Y2hlclByb21pc2UgPSBJbnRlcm5hbEFwaURpc3BhdGNoZXJIb2xkZXIuZ2V0RGVza3RvcERpc3BhdGNoZXJQcm9taXNlKCk7XHJcbiAgICAgICAgICBkZXNrdG9wRGlzcGF0Y2hlclByb21pc2UudGhlbih0aGlzLm9uRGlzcGF0Y2hlclJlY2VpdmVkLmJpbmQodGhpcykpLnRoZW4oKCkgPT4geyByZXNvbHZlKCk7IH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QoJ05vdCBydW5uaW5nIGluIGRlc2t0b3AuIFNlcnZlciBzdXBwb3J0IGNvbWluZyBzb29uIScpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX2luaXRpYWxpemF0aW9uUHJvbWlzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25EaXNwYXRjaGVyUmVjZWl2ZWQoZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBkaXNwYXRjaGVyLnNldFZlcnNpb25OdW1iZXIoVmVyc2lvbk51bWJlci5JbnN0YW5jZSk7XHJcblxyXG4gICAgLy8gQ2FsbCB0byByZWdpc3RlciBhbGwgdGhlIHNlcnZpY2VzIHdoaWNoIHdpbGwgdXNlIHRoZSBuZXdseSBpbml0aWFsaXplZCBkaXNwYXRjaGVyXHJcbiAgICByZWdpc3RlckFsbFNoYXJlZFNlcnZpY2VzKGRpc3BhdGNoZXIpO1xyXG4gICAgcmVnaXN0ZXJBbGxBZGRJblNlcnZpY2VzKGRpc3BhdGNoZXIpO1xyXG5cclxuICAgIC8vIEdldCB0aGUgaW5pdGlhbGl6YXRpb24gc2VydmljZSBhbmQgaW5pdGlhbGl6ZSB0aGlzIGFkZC1pblxyXG4gICAgY29uc3QgaW5pdGlhbGl6YXRpb25TZXJ2aWNlID0gQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2U8SW5pdGlhbGl6YXRpb25TZXJ2aWNlPihcclxuICAgICAgQWRkSW5TZXJ2aWNlTmFtZXMuSW5pdGlhbGl6YXRpb25TZXJ2aWNlKTtcclxuXHJcbiAgICByZXR1cm4gaW5pdGlhbGl6YXRpb25TZXJ2aWNlLmluaXRpYWxpemVEYXNoYm9hcmRBZGRJbkFzeW5jKCkudGhlbihyZXN1bHQgPT4ge1xyXG4gICAgICBpZiAoIXJlc3VsdC5hZGRJbkluc3RhbmNlLmxvY2F0b3IuZGFzaGJvYXJkUGF0aCkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignRGFzaGJvYXJkUGF0aCBpcyB1bmRlZmluZWQnKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5kYXNoYm9hcmRDb250ZW50ID0gdGhpcy5pbml0aWFsaXplRGFzaGJvYXJkQ29udGVudChyZXN1bHQuYWRkaW5EYXNoYm9hcmRJbmZvLCByZXN1bHQuYWRkSW5JbnN0YW5jZS5sb2NhdG9yLmRhc2hib2FyZFBhdGgpO1xyXG4gICAgICB0aGlzLmVudmlyb25tZW50ID0gbmV3IEVudmlyb25tZW50KHJlc3VsdC5hZGRJbkVudmlyb25tZW50KTtcclxuICAgICAgdGhpcy5zZXR0aW5ncyA9IHRoaXMuaW5pdGlhbGl6ZVNldHRpbmdzKHJlc3VsdC5hZGRJblNldHRpbmdzSW5mbyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdGlhbGl6ZURhc2hib2FyZENvbnRlbnQoaW5mbzogQWRkSW5EYXNoYm9hcmRJbmZvLCBzaGVldFBhdGg6IFNoZWV0UGF0aCk6IERhc2hib2FyZENvbnRlbnQge1xyXG4gICAgY29uc3QgZGFzaGJvYXJkSW1wbCA9IG5ldyBEYXNoYm9hcmRJbXBsKGluZm8sIHNoZWV0UGF0aCk7XHJcbiAgICBjb25zdCBkYXNoYm9hcmQgPSBuZXcgRGFzaGJvYXJkKGRhc2hib2FyZEltcGwpO1xyXG4gICAgcmV0dXJuIG5ldyBEYXNoYm9hcmRDb250ZW50KGRhc2hib2FyZCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRpYWxpemVTZXR0aW5ncyhzZXR0aW5nc0luZm86IEFkZEluU2V0dGluZ3NJbmZvKTogU2V0dGluZ3Mge1xyXG4gICAgY29uc3Qgc2V0dGluZ3NJbXBsID0gbmV3IFNldHRpbmdzSW1wbChzZXR0aW5nc0luZm8pO1xyXG4gICAgcmV0dXJuIG5ldyBTZXR0aW5ncyhzZXR0aW5nc0ltcGwpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiAuLi9zcmMvSW50ZXJuYWwvQWRkSW5JbXBsLnRzXG4gKiovIiwiLyoqXG4gKiBUaGlzIGlzIHlvdXIgbWFpbi4gVGhpcyBpcyB3aGVyZSB5b3UgcmUtZXhwb3J0IGV2ZXJ5dGhpbmcgeW91IHdhbnQgdG8gYmUgcHVibGljbHkgYXZhaWxhYmxlLlxuICpcbiAqIFRoZSBidWlsZCBlbmZvcmNlcyB0aGF0IHRoZSBmaWxlIGhhcyB0aGUgc2FtZSBuYW1lIGFzIHRoZSBnbG9iYWwgdmFyaWFibGUgdGhhdCBpcyBleHBvcnRlZC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZS9FbnVtcyc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZS9JbnRlcm5hbEFwaURpc3BhdGNoZXInO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2UvTW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlL05vdGlmaWNhdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2UvUGFyYW1ldGVycyc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZS9WZXJicyc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZS9WZXJzaW9uTnVtYmVyJztcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3Qvc3JjL0FwaUludGVybmFsQ29udHJhY3QudHNcbiAqKi8iLCJleHBvcnQgZW51bSBBZGRJbkNvbnRleHQge1xyXG4gIERlc2t0b3AgPSAnZGVza3RvcCcsXHJcbiAgU2VydmVyID0gJ3NlcnZlcicsXHJcbiAgVW5rbm93biA9ICd1bmtub3duJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBBZGRJbk1vZGUge1xyXG4gIEF1dGhvcmluZyA9ICdhdXRob3JpbmcnLFxyXG4gIFZpZXdpbmcgPSAndmlld2luZycsXHJcbiAgVW5rbm93biA9ICd1bmtub3duJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBDb2x1bW5UeXBlIHtcclxuICBEaXNjcmV0ZSA9ICdkaXNjcmV0ZScsXHJcbiAgQ29udGludW91cyA9ICdjb250aW51b3VzJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBEYXNoYm9hcmRPYmplY3RUeXBlIHtcclxuICBCbGFuayA9ICdibGFuaycsXHJcbiAgV29ya3NoZWV0ID0gJ3dvcmtzaGVldCcsXHJcbiAgUXVpY2tGaWx0ZXIgPSAncXVpY2stZmlsdGVyJyxcclxuICBQYXJhbWV0ZXJDb250cm9sID0gJ3BhcmFtZXRlci1jb250cm9sJyxcclxuICBQYWdlRmlsdGVyID0gJ3BhZ2UtZmlsdGVyJyxcclxuICBMZWdlbmQgPSAnbGVnZW5kJyxcclxuICBUaXRsZSA9ICd0aXRsZScsXHJcbiAgVGV4dCA9ICd0ZXh0JyxcclxuICBJbWFnZSA9ICdpbWFnZScsXHJcbiAgV2ViUGFnZSA9ICd3ZWItcGFnZScsXHJcbiAgQWRkSW4gPSAnYWRkaW4nXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIERhdGFUeXBlIHtcclxuICBTdHJpbmcgPSAnc3RyaW5nJyxcclxuICBJbnQgPSAnaW50JyxcclxuICBGbG9hdCA9ICdmbG9hdCcsXHJcbiAgQm9vbCA9ICdib29sJyxcclxuICBEYXRlID0gJ2RhdGUnLFxyXG4gIERhdGVUaW1lID0gJ2RhdGUtdGltZScsXHJcbiAgU3BhdGlhbCA9ICdzcGF0aWFsJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBFbmNvZGVkRGF0YVR5cGUge1xyXG4gIE51bWJlciA9ICdudW1iZXInLFxyXG4gIFN0cmluZyA9ICdzdHJpbmcnLFxyXG4gIERhdGUgPSAnZGF0ZScsXHJcbiAgQm9vbGVhbiA9ICdib29sZWFuJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBFcnJvckNvZGUge1xyXG4gIFNlcnZlckVycm9yID0gJ3NlcnZlci1lcnJvcicsXHJcbiAgSW52YWxpZEFnZ3JlZ2F0aW9uRmllbGROYW1lID0gJ2ludmFsaWQtYWdncmVnYXRpb24tZmllbGQtbmFtZScsXHJcbiAgSW52YWxpZEZpbHRlckZpZWxkTmFtZSA9ICdpbnZhbGlkLWZpbHRlci1maWVsZG5hbWUnLFxyXG4gIEludmFsaWRGaWx0ZXJGaWVsZFZhbHVlID0gJ2ludmFsaWQtZmlsdGVyLWZpZWxkLXZhbHVlJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBGaWVsZEFnZ3JlZ2F0aW9uVHlwZSB7XHJcbiAgU3VtID0gJ3N1bScsXHJcbiAgQXZnID0gJ2F2ZycsXHJcbiAgTWluID0gJ21pbicsXHJcbiAgTWF4ID0gJ21heCcsXHJcbiAgU3RkZXYgPSAnc3RkZXYnLFxyXG4gIFN0ZGV2cCA9ICdzdGRldnAnLFxyXG4gIFZhciA9ICd2YXInLFxyXG4gIFZhcnAgPSAndmFycCcsXHJcbiAgQ291bnQgPSAnY291bnQnLFxyXG4gIENvdW50ZCA9ICdjb3VudGQnLFxyXG4gIE1lZGlhbiA9ICdtZWRpYW4nLFxyXG4gIEF0dHIgPSAnYXR0cicsXHJcbiAgTm9uZSA9ICdub25lJyxcclxuICBZZWFyID0gJ3llYXInLFxyXG4gIFF0ciA9ICdxdHInLFxyXG4gIE1vbnRoID0gJ21vbnRoJyxcclxuICBEYXkgPSAnZGF5JyxcclxuICBIb3VyID0gJ2hvdXInLFxyXG4gIE1pbnV0ZSA9ICdtaW51dGUnLFxyXG4gIFNlY29uZCA9ICdzZWNvbmQnLFxyXG4gIFdlZWsgPSAnd2VlaycsXHJcbiAgV2Vla2RheSA9ICd3ZWVrZGF5JyxcclxuICBNb250aFllYXIgPSAnbW9udGgteWVhcicsXHJcbiAgTWR5ID0gJ21keScsXHJcbiAgRW5kID0gJ2VuZCcsXHJcbiAgVHJ1bmNZZWFyID0gJ3RydW5jLXllYXInLFxyXG4gIFRydW5jUXRyID0gJ3RydW5jLXF0cicsXHJcbiAgVHJ1bmNNb250aCA9ICd0cnVuYy1tb250aCcsXHJcbiAgVHJ1bmNXZWVrID0gJ3RydW5jLXdlZWsnLFxyXG4gIFRydW5jRGF5ID0gJ3RydW5jLWRheScsXHJcbiAgVHJ1bmNIb3VyID0gJ3RydW5jLWhvdXInLFxyXG4gIFRydW5jTWludXRlID0gJ3RydW5jLW1pbnV0ZScsXHJcbiAgVHJ1bmNTZWNvbmQgPSAndHJ1bmMtc2Vjb25kJyxcclxuICBRdWFydDEgPSAncXVhcnQxJyxcclxuICBRdWFydDMgPSAncXVhcnQzJyxcclxuICBTa2V3bmVzcyA9ICdza2V3bmVzcycsXHJcbiAgS3VydG9zaXMgPSAna3VydG9zaXMnLFxyXG4gIEluT3V0ID0gJ2luLW91dCcsXHJcbiAgVXNlciA9ICd1c2VyJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBGaWVsZFJvbGVUeXBlIHtcclxuICBEaW1lbnNpb24gPSAnZGltZW5zaW9uJyxcclxuICBNZWFzdXJlID0gJ21lYXN1cmUnLFxyXG4gIFVua25vd24gPSAndW5rbm93bidcclxufVxyXG5cclxuLyoqXHJcbiAqICBUaGUgZGlmZmVyZW50IHVwZGF0ZSB0eXBlcyBmb3IgYXBwbHlpbmcgZmlsdGVyLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gRmlsdGVyVXBkYXRlVHlwZSB7XHJcbiAgQWRkID0gJ2FkZCcsXHJcbiAgQWxsID0gJ2FsbCcsXHJcbiAgUmVwbGFjZSA9ICdyZXBsYWNlJyxcclxuICBSZW1vdmUgPSAncmVtb3ZlJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBTaGVldFR5cGUge1xyXG4gIERhc2hib2FyZCA9ICdkYXNoYm9hcmQnLFxyXG4gIFN0b3J5ID0gJ3N0b3J5JyxcclxuICBXb3Jrc2hlZXQgPSAnd29ya3NoZWV0JyxcclxuICBBZGRpbiA9ICdhZGRpbidcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRG9tYWluUmVzdHJpY3Rpb25UeXBlIHtcclxuICBBbGwgPSAnYWxsJyxcclxuICBMaXN0ID0gJ2xpc3QnLFxyXG4gIFJhbmdlID0gJ3JhbmdlJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBEYXRlU3RlcFBlcmlvZCB7XHJcbiAgWWVhcnMgPSAneWVhcnMnLFxyXG4gIFF1YXJ0ZXJzID0gJ3F1YXJ0ZXJzJyxcclxuICBNb250aHMgPSAnbW9udGhzJyxcclxuICBXZWVrcyA9ICd3ZWVrcycsXHJcbiAgRGF5cyA9ICdkYXlzJyxcclxuICBIb3VycyA9ICdob3VycycsXHJcbiAgTWludXRlcyA9ICdtaW51dGVzJyxcclxuICBTZWNvbmRzID0gJ3NlY29uZHMnXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGUgb3B0aW9uIGZvciBzcGVjaWZ5aW5nIHdoaWNoIHZhbHVlcyB0byBpbmNsdWRlIGZvciBmaWx0ZXJpbmcuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBGaWx0ZXJOdWxsT3B0aW9uIHtcclxuICBOdWxsVmFsdWVzID0gJ251bGx2YWx1ZXMnLFxyXG4gIE5vbk51bGxWYWx1ZXMgPSAnbm9ubnVsbHZhbHVlcycsXHJcbiAgQWxsVmFsdWVzID0gJ2FsbHZhbHVlcydcclxufVxyXG5cclxuLyoqXHJcbiAqIEludGVybmFsIGVudW0gZm9yIHNwZWNpZnlpbmcgdGhlIHNlbGVjdGlvbiB0eXBlIGZvciBzZWxlY3QgbWFya3MgYXBpLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gU2VsZWN0aW9uVXBkYXRlVHlwZSB7XHJcbiAgUmVwbGFjZSA9ICdzZWxlY3QtcmVwbGFjZScsXHJcbiAgQWRkID0gJ3NlbGVjdC1hZGQnLFxyXG4gIFJlbW92ZSA9ICdzZWxlY3QtcmVtb3ZlJ1xyXG59XHJcblxyXG4vKipcclxuICogSW50ZXJuYWwgZW51bSBmb3Igc3BlY2lmeWluZyB0aGUgaW5jbHVkZWQgdmFsdWVzIHR5cGUgZm9yIHJhbmdlIHNlbGVjdGlvbi5cclxuICovXHJcbmV4cG9ydCBlbnVtIFF1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzIHtcclxuICBJbmNsdWRlTnVsbCA9ICdpbmNsdWRlLW51bGwnLFxyXG4gIEluY2x1ZGVOb25OdWxsID0gJ2luY2x1ZGUtbm9uLW51bGwnLFxyXG4gIEluY2x1ZGVBbGwgPSAnaW5jbHVkZS1hbGwnXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUeXBlIG9mIG1hcmsgZm9yIGEgZ2l2ZW4gbWFya3MgY2FyZCBpbiBhIHZpei5cclxuICovXHJcbmV4cG9ydCBlbnVtIE1hcmtUeXBlIHtcclxuICAgIEJhciA9ICdiYXInLFxyXG4gICAgTGluZSA9ICdsaW5lJyxcclxuICAgIEFyZWEgPSAnYXJlYScsXHJcbiAgICBTcXVhcmUgPSAnc3F1YXJlJyxcclxuICAgIENpcmNsZSA9ICdjaXJjbGUnLFxyXG4gICAgU2hhcGUgPSAnc2hhcGUnLFxyXG4gICAgVGV4dCA9ICd0ZXh0JyxcclxuICAgIE1hcCA9ICdtYXAnLFxyXG4gICAgUGllID0gJ3BpZScsXHJcbiAgICBHYW50dEJhciA9ICdnYW50dC1iYXInLFxyXG4gICAgUG9seWdvbiA9ICdwb2x5Z29uJyxcclxufVxyXG5cclxuLyoqXHJcbiAqIEludGVybmFsIGVudW0gZm9yIHNwZWNpZnlpbmcgdGhlIHR5cGUgb2YgZmlsdGVyXHJcbiAqL1xyXG5leHBvcnQgZW51bSBGaWx0ZXJUeXBlIHtcclxuICBDYXRlZ29yaWNhbCA9ICdjYXRlZ29yaWNhbCcsXHJcbiAgUmFuZ2UgPSAncmFuZ2UnLFxyXG4gIFJlbGF0aXZlRGF0ZSA9ICdyZWxhdGl2ZURhdGUnLFxyXG4gIEhpZXJhcmNoaWNhbCA9ICdoaWVyYXJjaGljYWwnXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBJbnRlcm5hbCBlbnVtIGZvciBzcGVjaWZ5aW5nIHRoZSBEYXRlUmFuZ2VUeXBlIG9mIGEgcmVsYXRpdmUgZGF0ZSBmaWx0ZXJcclxuICovXHJcbmV4cG9ydCBlbnVtIERhdGVSYW5nZVR5cGUge1xyXG4gIC8qKlxyXG4gICAqIFJlZmVycyB0byB0aGUgbGFzdCBkYXksIHdlZWssIG1vbnRoLCBldGMuIG9mIHRoZSBkYXRlIHBlcmlvZC5cclxuICAgKi9cclxuICBMYXN0ID0gJ2xhc3QnLFxyXG4gIC8qKlxyXG4gICAqIFJlZmVycyB0byB0aGUgbGFzdCBOIGRheXMsIHdlZWtzLCBtb250aHMsIGV0Yy4gb2YgdGhlIGRhdGUgcGVyaW9kLlxyXG4gICAqL1xyXG4gIExhc3ROID0gJ2xhc3ROJyxcclxuICAvKipcclxuICAgKiBSZWZlcnMgdG8gdGhlIG5leHQgZGF5LCB3ZWVrLCBtb250aCwgZXRjLiBvZiB0aGUgZGF0ZSBwZXJpb2QuXHJcbiAgICovXHJcbiAgTmV4dCA9ICduZXh0JyxcclxuICAvKipcclxuICAgKiBSZWZlcnMgdG8gdGhlIG5leHQgTiBkYXlzLCB3ZWVrcywgbW9udGhzLCBldGMuIG9mIHRoZSBkYXRlIHBlcmlvZC5cclxuICAgKi9cclxuICBOZXh0TiA9ICduZXh0TicsXHJcbiAgLyoqXHJcbiAgICogUmVmZXJzIHRvIHRoZSBjdXJyZW50IGRheSwgd2VlaywgbW9udGgsIGV0Yy4gb2YgdGhlIGRhdGUgcGVyaW9kLlxyXG4gICAqL1xyXG4gIEN1cnJlbnQgPSAnY3VycmVudCcsXHJcbiAgLyoqXHJcbiAgICogUmVmZXJzIHRvIGV2ZXJ5dGhpbmcgdXAgdG8gYW5kIGluY2x1ZGluZyB0aGUgY3VycmVudCBkYXksIHdlZWssIG1vbnRoLCBldGMuIG9mIHRoZSBkYXRlIHBlcmlvZC5cclxuICAgKi9cclxuICBUb0RhdGUgPSAndG9EYXRlJ1xyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3Qvc3JjL2ludGVyZmFjZS9FbnVtcy50c1xuICoqLyIsImltcG9ydCB7IE1vZGVsIH0gZnJvbSAnLi9Nb2RlbHMnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uSWQgfSBmcm9tICcuL05vdGlmaWNhdGlvbnMnO1xuaW1wb3J0IHsgVmVyYklkIH0gZnJvbSAnLi9WZXJicyc7XG5pbXBvcnQgeyBWZXJzaW9uTnVtYmVyIH0gZnJvbSAnLi9WZXJzaW9uTnVtYmVyJztcblxuZXhwb3J0IHR5cGUgTm90aWZpY2F0aW9uSGFuZGxlciA9IChub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbikgPT4gdm9pZDtcblxuZXhwb3J0IGludGVyZmFjZSBFeGVjdXRlUGFyYW1ldGVycyB7XG4gIFtrZXk6IHN0cmluZ106IE1vZGVsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWN1dGVSZXNwb25zZSB7XG4gIHJlc3VsdDogTW9kZWw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uIHtcbiAgbm90aWZpY2F0aW9uSWQ6IE5vdGlmaWNhdGlvbklkO1xuICBkYXRhOiBNb2RlbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnRlcm5hbEFwaURpc3BhdGNoZXIge1xuICBzZXRWZXJzaW9uTnVtYmVyKHZlcnNpb25OdW1iZXI6IFZlcnNpb25OdW1iZXIpOiB2b2lkO1xuICBleGVjdXRlKHZlcmI6IFZlcmJJZCwgcGFyYW1ldGVyczogRXhlY3V0ZVBhcmFtZXRlcnMpOiBQcm9taXNlPEV4ZWN1dGVSZXNwb25zZT47XG4gIHJlZ2lzdGVyTm90aWZpY2F0aW9uSGFuZGxlcihoYW5kbGVyOiBOb3RpZmljYXRpb25IYW5kbGVyKTogdm9pZDtcbiAgdW5yZWdpc3Rlck5vdGlmaWNhdGlvbkhhbmRsZXIoaGFuZGxlcjogTm90aWZpY2F0aW9uSGFuZGxlcik6IHZvaWQ7XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIFdpbmRvdyB7IF9fdGFibGVhdURlc2t0b3BEaXNwYXRjaGVyOiBQcm9taXNlPEludGVybmFsQXBpRGlzcGF0Y2hlcj47IH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBJbnRlcm5hbEFwaURpc3BhdGNoZXJIb2xkZXIge1xuICBleHBvcnQgZnVuY3Rpb24gZ2V0RGVza3RvcERpc3BhdGNoZXJQcm9taXNlKCk6IFByb21pc2U8SW50ZXJuYWxBcGlEaXNwYXRjaGVyPiB7XG4gICAgcmV0dXJuIHdpbmRvdy5fX3RhYmxlYXVEZXNrdG9wRGlzcGF0Y2hlcjtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBoYXNEZXNrdG9wQXBpRGlzcGF0Y2hlclByb21pc2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhSW50ZXJuYWxBcGlEaXNwYXRjaGVySG9sZGVyLmdldERlc2t0b3BEaXNwYXRjaGVyUHJvbWlzZSgpO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIHNldERlc2t0b3BEaXNwYXRjaGVyUHJvbWlzZShkaXNwYXRjaGVyOiBQcm9taXNlPEludGVybmFsQXBpRGlzcGF0Y2hlcj4pOiB2b2lkIHtcbiAgICB3aW5kb3cuX190YWJsZWF1RGVza3RvcERpc3BhdGNoZXIgPSBkaXNwYXRjaGVyO1xuICB9XG59XG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvdHlwZXNjcmlwdC9qcy1hcGkvYXBpLWludGVybmFsLWNvbnRyYWN0L3NyYy9pbnRlcmZhY2UvSW50ZXJuYWxBcGlEaXNwYXRjaGVyLnRzXG4gKiovIiwiZXhwb3J0IGVudW0gTm90aWZpY2F0aW9uSWQge1xyXG4gIFNlbGVjdGVkTWFya3NDaGFuZ2VkID0gJ3NlbGVjdGVkLW1hcmtzLWNoYW5nZWQnLFxyXG4gIFBhcmFtZXRlckNoYW5nZWQgPSAncGFyYW1ldGVyLWNoYW5nZWQnLFxyXG4gIEZpbHRlckNoYW5nZWQgPSAnZmlsdGVyLWNoYW5nZWQnXHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L3R5cGVzY3JpcHQvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9zcmMvaW50ZXJmYWNlL05vdGlmaWNhdGlvbnMudHNcbiAqKi8iLCJleHBvcnQgZW51bSBQYXJhbWV0ZXJJZCB7XHJcbiAgQWRkSW5Mb2NhdG9yID0gJ2FkZC1pbi1sb2NhdG9yJyxcclxuICBBZGRJbkJvb3RzdHJhcEluZm8gPSAnYWRkLWluLWJvb3RzdHJhcC1pbmZvJyxcclxuICBBZGRJblNldHRpbmdzSW5mbyA9ICdhZGQtaW4tc2V0dGluZ3MtaW5mbycsXHJcbiAgVmlzdWFsSWQgPSAndmlzdWFsLWlkJyxcclxuICBTaGVldFBhdGggPSAnc2hlZXQtcGF0aCcsXHJcbiAgSWdub3JlQWxpYXNlcyA9ICdpZ25vcmUtYWxpYXNlcycsXHJcbiAgSWdub3JlU2VsZWN0aW9uID0gJ2lnbm9yZS1zZWxlY3Rpb24nLFxyXG4gIEluY2x1ZGVBbGxDb2x1bW5zID0gJ2luY2x1ZGUtYWxsLWNvbHVtbnMnLFxyXG4gIE1heFJvd3MgPSAnbWF4LXJvd3MnLFxyXG4gIFVuZGVybHlpbmdEYXRhVGFibGUgPSAndW5kZXJseWluZy1kYXRhLXRhYmxlJyxcclxuICBVbmRlcmx5aW5nU3VtbWFyeURhdGFUYWJsZSA9ICd1bmRlcmx5aW5nLXN1bW1hcnktZGF0YS10YWJsZScsXHJcbiAgU2V0dGluZ3NWYWx1ZXMgPSAnc2V0dGluZ3MtdmFsdWVzJyxcclxuICBTZWxlY3RlZERhdGEgPSAnc2VsZWN0ZWQtZGF0YScsXHJcbiAgSGlnaGxpZ2h0ZWREYXRhID0gJ2hpZ2hsaWdodGVkLWRhdGEnLFxyXG5cclxuICAgLy8gRmlsdGVyIFBhcmFtc1xyXG4gIEZpZWxkTmFtZSA9ICdmaWVsZC1uYW1lJyxcclxuICBGaWx0ZXJWYWx1ZXMgPSAnZmlsdGVyLXZhbHVlcycsXHJcbiAgRmlsdGVyVXBkYXRlVHlwZSA9ICdmaWx0ZXItdXBkYXRlLXR5cGUnLFxyXG4gIElzRXhjbHVkZU1vZGUgPSAnaXMtZXhjbHVkZScsXHJcbiAgRmlsdGVyUmFuZ2VNaW4gPSAnZmlsdGVyLXJhbmdlLW1pbicsXHJcbiAgRmlsdGVyUmFuZ2VNYXggPSAnZmlsdGVyLXJhbmdlLW1heCcsXHJcbiAgRmlsdGVyUmFuZ2VOdWxsT3B0aW9uID0gJ2ZpbHRlci1yYW5nZS1udWxsLW9wdGlvbicsXHJcbiAgV29ya3NoZWV0RmlsdGVycyA9ICd3b3Jrc2hlZXQtZmlsdGVycycsXHJcblxyXG4gIFdvcmtzaGVldE5hbWUgPSAnd29ya3NoZWV0LW5hbWUnLFxyXG4gIERhc2hib2FyZE5hbWUgPSAnZGFzaGJvYXJkJyxcclxuXHJcbiAgUGFyYW1ldGVySW5mbyA9ICdwYXJhbWV0ZXItaW5mbycsXHJcbiAgUGFyYW1ldGVySW5mb3MgPSAncGFyYW1ldGVyLWluZm9zJyxcclxuICBQYXJhbWV0ZXJDYXB0aW9uID0gJ3BhcmVtZXRlci1jYXB0aW9uJyxcclxuICBQYXJhbWV0ZXJGaWVsZE5hbWUgPSAncGFyYW1ldGVyLWZpZWxkLW5hbWUnLFxyXG4gIFBhcmFtZXRlclZhbHVlID0gJ3BhcmFtZXRlci12YWx1ZScsXHJcbiAgU2VsZWN0aW9uID0gJ3NlbGVjdGlvbicsXHJcbiAgU2VsZWN0aW9uVXBkYXRlVHlwZSA9ICdzZWxlY3Rpb25VcGRhdGVUeXBlJyxcclxuICBIaWVyVmFsU2VsZWN0aW9uTW9kZWxzID0gJ2hpZXJhcmNoaWNhbFZhbHVlU2VsZWN0aW9uTW9kZWxzJyxcclxuICBRdWFudFJhbmdlU2VsZWN0aW9uTW9kZWxzID0gJ3F1YW50YXRpdmVSYW5nZVNlbGVjdGlvbk1vZGVscycsXHJcbiAgRGltVmFsU2VsZWN0aW9uTW9kZWxzID0gJ2RpbWVuc2lvblZhbHVlU2VsZWN0aW9uTW9kZWxzJyxcclxuXHJcbiAgRGF0YVNvdXJjZUlkID0gJ2RhdGEtc291cmNlLWlkJyxcclxuICBEYXRhU2NoZW1hID0gJ2RhdGEtc2NoZW1hJyxcclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvdHlwZXNjcmlwdC9qcy1hcGkvYXBpLWludGVybmFsLWNvbnRyYWN0L3NyYy9pbnRlcmZhY2UvUGFyYW1ldGVycy50c1xuICoqLyIsIi8vIERlY2xhcmUgdGhpcyBrZXkgdHlwZSBhbmQgZXhwb3J0IHRoZSBOb3RpZmljYXRpb25JZCB0byBtYWtlIHRoaXMgYmVoYXZlIGxpa2UgYSBzdHJpbmcgZW51bVxyXG5leHBvcnQgZW51bSBWZXJiSWQge1xyXG4gIEFwcGx5Q2F0ZWdvcmljYWxGaWx0ZXIgPSAnY2F0ZWdvcmljYWwtZmlsdGVyJyxcclxuICBBcHBseVJhbmdlRmlsdGVyID0gJ3JhbmdlLWZpbHRlcicsXHJcbiAgQ2xlYXJGaWx0ZXIgPSAnY2xlYXItZmlsdGVyJyxcclxuICBJbml0aWFsaXplQWRkSW4gPSAnaW5pdGlhbGl6ZS1hZGQtaW4nLFxyXG4gIEdldERhdGFTdW1tYXJ5RGF0YSA9ICdnZXQtc3VtbWFyeS1kYXRhJyxcclxuICBHZXRVbmRlcmx5aW5nRGF0YSA9ICdnZXQtdW5kZXJseWluZy1kYXRhJyxcclxuICBTYXZlQWRkSW5TZXR0aW5ncyA9ICdzYXZlLWFkZC1pbi1zZXR0aW5ncycsXHJcbiAgR2V0U2VsZWN0ZWRNYXJrcyA9ICdnZXQtc2VsZWN0ZWQtbWFya3MnLFxyXG4gIEdldEhpZ2hsaWdodGVkTWFya3MgPSAnZ2V0LWhpZ2hsaWdodGVkLW1hcmtzJyxcclxuICBHZXRQYXJhbWV0ZXJzRm9yU2hlZXQgPSAnZ2V0LXBhcmFtZXRlcnMtZm9yLXNoZWV0JyxcclxuICBGaW5kUGFyYW1ldGVyID0gJ2ZpbmQtcGFyYW1ldGVyJyxcclxuICBDaGFuZ2VQYXJhbWV0ZXJWYWx1ZSA9ICdjaGFuZ2UtcGFyYW1ldGVyLXZhbHVlJyxcclxuICBDbGVhclNlbGVjdGVkTWFya3MgPSAnY2xlYXItc2VsZWN0ZWQtbWFya3MnLFxyXG4gIFNlbGVjdEJ5VmFsdWUgPSAnc2VsZWN0LWJ5LXZhbHVlJyxcclxuICBHZXREYXRhU291cmNlcyA9ICdnZXQtZGF0YS1zb3VyY2VzJyxcclxuICBSZWZyZXNoRGF0YVNvdXJjZSA9ICdyZWZyZXNoLWRhdGEtc291cmNlJyxcclxuICBHZXRGaWx0ZXJzID0gJ2dldC1maWx0ZXJzJ1xyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3Qvc3JjL2ludGVyZmFjZS9WZXJicy50c1xuICoqLyIsIi8qKlxyXG4gKiBUaGlzIGlzIHlvdXIgbWFpbi4gVGhpcyBpcyB3aGVyZSB5b3UgcmUtZXhwb3J0IGV2ZXJ5dGhpbmcgeW91IHdhbnQgdG8gYmUgcHVibGljbHkgYXZhaWxhYmxlLlxyXG4gKlxyXG4gKiBUaGUgYnVpbGQgZW5mb3JjZXMgdGhhdCB0aGUgZmlsZSBoYXMgdGhlIHNhbWUgbmFtZSBhcyB0aGUgZ2xvYmFsIHZhcmlhYmxlIHRoYXQgaXMgZXhwb3J0ZWQuXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9FdmVudExpc3RlbmVyTWFuYWdlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vUGFyYW1ldGVyJztcclxuZXhwb3J0IHsgUG9pbnQgfSBmcm9tICcuL1BvaW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9TaW5nbGVFdmVudE1hbmFnZXInO1xyXG5leHBvcnQgeyBTaXplIH0gZnJvbSAnLi9TaXplJztcclxuZXhwb3J0ICogZnJvbSAnLi9Nb2RlbHMvR2V0RGF0YU1vZGVscyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vRXhjZXB0aW9ucy9UYWJsZWF1RXhjZXB0aW9ucyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vRXZlbnRzL0ZpbHRlckNoYW5nZWRFdmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vRXZlbnRzL01hcmtzU2VsZWN0ZWRFdmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vRXZlbnRzL1RhYmxlYXVFdmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vRXZlbnRzL1RhYmxlYXVTaGVldEV2ZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9FdmVudHMvVGFibGVhdVdvcmtzaGVldEV2ZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9JbnRlcm5hbC9TaW5nbGVFdmVudE1hbmFnZXJJbXBsJztcclxuZXhwb3J0ICogZnJvbSAnLi9TZXJ2aWNlcy9EYXRhU291cmNlU2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vU2VydmljZXMvR2V0RGF0YVNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL1NlcnZpY2VzL0ZpbHRlclNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL1NlcnZpY2VzL05vdGlmaWNhdGlvblNlcnZpY2UnO1xyXG5leHBvcnQgeyBQYXJhbWV0ZXJzU2VydmljZSB9IGZyb20gJy4vU2VydmljZXMvUGFyYW1ldGVyc1NlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL1NlcnZpY2VzL1JlZ2lzdGVyQWxsU2hhcmVkU2VydmljZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL1NlcnZpY2VzL1NlbGVjdGlvblNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL1NlcnZpY2VzL1NlcnZpY2VSZWdpc3RyeSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vRW51bU1hcHBpbmdzL0ludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncyc7XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9BcGlTaGFyZWQudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgU2luZ2xlRXZlbnRNYW5hZ2VyIH0gZnJvbSAnLi9TaW5nbGVFdmVudE1hbmFnZXInO1xyXG5cclxuLyoqXHJcbiAqIENsYXNzIGRlc2lnbmVkIHRvIHJlZ2lzdGVyIGFuZCB1bnJlZ2lzdGVyIGhhbmRsZXJzIGZyb20gYSB1c2VyLiBPbmx5IHRob3NlIGV2ZW50c1xyXG4gKiB3aGljaCBhcmUgYWRkZWQgdmlhIEFkZE5ld0V2ZW50VHlwZSB3aWxsIGJlIHN1cHBvcnRlZCBieSB0aGlzIGluc3RhbmNlXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRXZlbnRMaXN0ZW5lck1hbmFnZXIgaW1wbGVtZW50cyAgQ29udHJhY3QuRXZlbnRMaXN0ZW5lck1hbmFnZXIge1xyXG4gIHByaXZhdGUgX2V2ZW50TGlzdGVuZXJNYW5hZ2VyczogeyBbdGFibGVhdUV2ZW50VHlwZTogc3RyaW5nXTogU2luZ2xlRXZlbnRNYW5hZ2VyOyB9O1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLl9ldmVudExpc3RlbmVyTWFuYWdlcnMgPSB7fTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGRFdmVudExpc3RlbmVyKGV2ZW50VHlwZTogQ29udHJhY3QuVGFibGVhdUV2ZW50VHlwZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVyOiBDb250cmFjdC5UYWJsZWF1RXZlbnRIYW5kbGVyRm4pOiBDb250cmFjdC5UYWJsZWF1RXZlbnRVbnJlZ2lzdGVyRm4ge1xyXG4gICAgaWYgKCF0aGlzLl9ldmVudExpc3RlbmVyTWFuYWdlcnMuaGFzT3duUHJvcGVydHkoZXZlbnRUeXBlKSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGV2ZW50IHR5cGUgOiAke2V2ZW50VHlwZX1gKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5fZXZlbnRMaXN0ZW5lck1hbmFnZXJzW2V2ZW50VHlwZV0uYWRkRXZlbnRMaXN0ZW5lcihoYW5kbGVyKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50VHlwZTogQ29udHJhY3QuVGFibGVhdUV2ZW50VHlwZSwgaGFuZGxlcjogQ29udHJhY3QuVGFibGVhdUV2ZW50SGFuZGxlckZuKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuX2V2ZW50TGlzdGVuZXJNYW5hZ2Vycy5oYXNPd25Qcm9wZXJ0eShldmVudFR5cGUpKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgZXZlbnQgdHlwZSA6ICR7ZXZlbnRUeXBlfWApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLl9ldmVudExpc3RlbmVyTWFuYWdlcnNbZXZlbnRUeXBlXS5yZW1vdmVFdmVudExpc3RlbmVyKGhhbmRsZXIpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGFkZE5ld0V2ZW50VHlwZShldmVudE1hbmFnZXI6IFNpbmdsZUV2ZW50TWFuYWdlcik6IHZvaWQge1xyXG4gICAgdGhpcy5fZXZlbnRMaXN0ZW5lck1hbmFnZXJzW2V2ZW50TWFuYWdlci5ldmVudFR5cGVdID0gZXZlbnRNYW5hZ2VyO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvdHlwZXNjcmlwdC9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRXZlbnRMaXN0ZW5lck1hbmFnZXIudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgRXZlbnRMaXN0ZW5lck1hbmFnZXIgfSBmcm9tICcuL0V2ZW50TGlzdGVuZXJNYW5hZ2VyJztcclxuaW1wb3J0IHsgUGFyYW1ldGVySW1wbCB9IGZyb20gJy4vSW50ZXJuYWwvUGFyYW1ldGVySW1wbCc7XHJcblxyXG4vKipcclxuICogSW1wbGVtZW50YXRpb24gb2YgdGhlIFBhcmFtZXRlciBjb250cmFjdC4gQ2FsbHMgZG93biB0byB0aGUgaW1wbFxyXG4gKiBjbGFzcyBmb3IgYWxtb3N0IGFsbCBvZiB0aGUgd29yayBpdCBkb2VzLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFBhcmFtZXRlciBleHRlbmRzIEV2ZW50TGlzdGVuZXJNYW5hZ2VyIGltcGxlbWVudHMgQ29udHJhY3QuUGFyYW1ldGVyIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBwYXJhbWV0ZXJJbXBsOiBQYXJhbWV0ZXJJbXBsLCBzaGVldDogQ29udHJhY3QuU2hlZXQpIHtcclxuICAgIHN1cGVyKCk7XHJcblxyXG4gICAgLy8gSW5pdGlhbGl6ZSBvdXIgZXZlbnQgaGFuZGxpbmcgZm9yIHRoaXMgY2xhc3NcclxuICAgIHRoaXMucGFyYW1ldGVySW1wbC5pbml0aWFsaXplRXZlbnRzKHNoZWV0KS5mb3JFYWNoKGUgPT4gdGhpcy5hZGROZXdFdmVudFR5cGUoZSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBuYW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJJbXBsLm5hbWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGN1cnJlbnRWYWx1ZSgpOiBDb250cmFjdC5EYXRhVmFsdWUge1xyXG4gICAgcmV0dXJuIHRoaXMucGFyYW1ldGVySW1wbC5jdXJyZW50VmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGRhdGFUeXBlKCk6IENvbnRyYWN0LkRhdGFUeXBlIHtcclxuICAgIHJldHVybiB0aGlzLnBhcmFtZXRlckltcGwuZGF0YVR5cGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFsbG93YWJsZVZhbHVlcygpOiBDb250cmFjdC5QYXJhbWV0ZXJEb21haW5SZXN0cmljdGlvbiB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJJbXBsLmFsbG93YWJsZVZhbHVlcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VWYWx1ZUFzeW5jKG5ld1ZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgRGF0ZSk6IFByb21pc2U8Q29udHJhY3QuRGF0YVZhbHVlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJJbXBsLmNoYW5nZVZhbHVlQXN5bmMobmV3VmFsdWUpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvdHlwZXNjcmlwdC9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvUGFyYW1ldGVyLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmV4cG9ydCBjbGFzcyBQb2ludCBpbXBsZW1lbnRzIENvbnRyYWN0LlBvaW50IHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfeDogbnVtYmVyLCBwcml2YXRlIF95OiBudW1iZXIpIHsgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl94O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB5KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5feTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L3R5cGVzY3JpcHQvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1BvaW50LnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmV4cG9ydCBjbGFzcyBTaXplIGltcGxlbWVudHMgQ29udHJhY3QuU2l6ZSB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgX2hlaWdodDogbnVtYmVyLCBwcml2YXRlIF93aWR0aDogbnVtYmVyKSB7IH1cclxuXHJcbiAgcHVibGljIGdldCBoZWlnaHQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9oZWlnaHQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHdpZHRoKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fd2lkdGg7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TaXplLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmV4cG9ydCBjbGFzcyBEYXRhVGFibGUgaW1wbGVtZW50cyBDb250cmFjdC5EYXRhVGFibGUge1xyXG4gIHByaXZhdGUgX25hbWU6IHN0cmluZztcclxuXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZGF0YTogQXJyYXk8QXJyYXk8Q29udHJhY3QuRGF0YVZhbHVlPj4sXHJcbiAgICBwcml2YXRlIF9jb2x1bW5zOiBBcnJheTxDb250cmFjdC5Db2x1bW4+LFxyXG4gICAgcHJpdmF0ZSBfdG90YWxSb3dDb3VudDogbnVtYmVyLFxyXG4gICAgcHJpdmF0ZSBfaXNTdW1tYXJ5RGF0YTogYm9vbGVhbixcclxuICAgIHByaXZhdGUgX21hcmtzSW5mbz86IEFycmF5PE1hcmtJbmZvPikge1xyXG4gICAgICAgIC8vIFRPRE86IGdldCByaWQgb2YgdGhpcyBpbiByZWRlc2lnbi5cclxuICAgICAgICB0aGlzLl9uYW1lID0gX2lzU3VtbWFyeURhdGEgPyAnU3VtbWFyeSBEYXRhIFRhYmxlJyA6ICdVbmRlcmx5aW5nIERhdGEgVGFibGUnO1xyXG4gICAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9uYW1lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBkYXRhKCk6IEFycmF5PEFycmF5PENvbnRyYWN0LkRhdGFWYWx1ZT4+IHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjb2x1bW5zKCk6IEFycmF5PENvbnRyYWN0LkNvbHVtbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtbnM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG1hcmtzSW5mbygpOiBBcnJheTxDb250cmFjdC5NYXJrSW5mbz4gfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX21hcmtzSW5mbztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdG90YWxSb3dDb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RvdGFsUm93Q291bnQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzU3VtbWFyeURhdGEoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNTdW1tYXJ5RGF0YTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBNYXJrSW5mbyBpbXBsZW1lbnRzIENvbnRyYWN0Lk1hcmtJbmZvIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF90eXBlOiBDb250cmFjdC5NYXJrVHlwZSxcclxuICAgIHByaXZhdGUgX2NvbG9yOiBzdHJpbmcsXHJcbiAgICBwcml2YXRlIF90dXBsZUlkPzogTnVtYmVyXHJcbiAgKSB7fVxyXG5cclxuICBwdWJsaWMgZ2V0IHR5cGUoKTogQ29udHJhY3QuTWFya1R5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3R5cGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNvbG9yKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29sb3I7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHR1cGxlSWQoKTogTnVtYmVyIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl90dXBsZUlkO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbHVtbiBpbXBsZW1lbnRzIENvbnRyYWN0LkNvbHVtbiB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZmllbGROYW1lOiBzdHJpbmcsXHJcbiAgICBwcml2YXRlIF9kYXRhVHlwZTogQ29udHJhY3QuRGF0YVR5cGUsIC8vIFRPRE86IHRoaXMgc2hvdWRsIGJlIGFuIGVudW0gdHlwZVxyXG4gICAgcHJpdmF0ZSBfaXNSZWZlcmVuY2VkOiBib29sZWFuLFxyXG4gICAgcHJpdmF0ZSBfaW5kZXg6IG51bWJlcikge31cclxuXHJcbiAgcHVibGljIGdldCBmaWVsZE5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZE5hbWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGRhdGFUeXBlKCk6IENvbnRyYWN0LkRhdGFUeXBlIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhVHlwZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaXNSZWZlcmVuY2VkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzUmVmZXJlbmNlZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaW5kZXgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9pbmRleDtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEYXRhVmFsdWUgaW1wbGVtZW50cyBDb250cmFjdC5EYXRhVmFsdWUge1xyXG4gIC8qIHRzbGludDpkaXNhYmxlOm5vLWFueSAqL1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3ZhbHVlOiBhbnksXHJcbiAgICBwcml2YXRlIF9mb3JtYXR0ZWRWYWx1ZTogc3RyaW5nKSB7fVxyXG5cclxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGZvcm1hdHRlZFZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZm9ybWF0dGVkVmFsdWU7XHJcbiAgfVxyXG4gIC8qIHRzbGludDplbmFibGU6bm8tYW55ICovXHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L3R5cGVzY3JpcHQvanMtYXBpL2FwaS1zaGFyZWQvc3JjL01vZGVscy9HZXREYXRhTW9kZWxzLnRzXG4gKiovIiwiZXhwb3J0IGNsYXNzIFRhYmxlYXVFeGNlcHRpb25zIHtcbiAgLy8gVE9ETywgQXBpRXJyb3JDb2RlcyBuZWVkIHRvIGJlIGFkZGVkIHRvIGV4dGVybmFsIGludGVyZmFjZXMuXG59XG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvdHlwZXNjcmlwdC9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRXhjZXB0aW9ucy9UYWJsZWF1RXhjZXB0aW9ucy50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBUYWJsZWF1V29ya3NoZWV0RXZlbnQgfSBmcm9tICcuL1RhYmxlYXVXb3Jrc2hlZXRFdmVudCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRmlsdGVyQ2hhbmdlZEV2ZW50IGV4dGVuZHMgVGFibGVhdVdvcmtzaGVldEV2ZW50IGltcGxlbWVudHMgQ29udHJhY3QuRmlsdGVyQ2hhbmdlZEV2ZW50IHtcclxuICBwdWJsaWMgY29uc3RydWN0b3Iod29ya3NoZWV0OiBDb250cmFjdC5Xb3Jrc2hlZXQsIHByaXZhdGUgX2ZpZWxkTmFtZTogc3RyaW5nKSB7XHJcbiAgICBzdXBlcihDb250cmFjdC5UYWJsZWF1RXZlbnRUeXBlLkZpbHRlckNoYW5nZWQsIHdvcmtzaGVldCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGZpZWxkTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkTmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRGaWx0ZXJBc3luYygpOiBQcm9taXNlPENvbnRyYWN0LkZpbHRlcj4ge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdBUEkgY2FsbCBub3QgeWV0IGltcGxtZW1lbnRlZCcpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvdHlwZXNjcmlwdC9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRXZlbnRzL0ZpbHRlckNoYW5nZWRFdmVudC50c1xuICoqLyIsIi8qKlxyXG4gKiBUaGlzIGlzIHlvdXIgbWFpbi4gVGhpcyBpcyB3aGVyZSB5b3UgcmUtZXhwb3J0IGV2ZXJ5dGhpbmcgeW91IHdhbnQgdG8gYmUgcHVibGljbHkgYXZhaWxhYmxlLlxyXG4gKlxyXG4gKiBUaGUgYnVpbGQgZW5mb3JjZXMgdGhhdCB0aGUgZmlsZSBoYXMgdGhlIHNhbWUgbmFtZSBhcyB0aGUgZ2xvYmFsIHZhcmlhYmxlIHRoYXQgaXMgZXhwb3J0ZWQuXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9BbmFseXRpY3NJbnRlcmZhY2VzJztcclxuZXhwb3J0ICogZnJvbSAnLi9EYXRhU291cmNlSW50ZXJmYWNlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vRGF0YVRhYmxlSW50ZXJmYWNlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vRW5jb2RpbmdJbnRlcmZhY2VzJztcclxuZXhwb3J0ICogZnJvbSAnLi9FbnVtcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vRXZlbnRJbnRlcmZhY2VzJztcclxuZXhwb3J0ICogZnJvbSAnLi9GaWx0ZXJJbnRlcmZhY2VzJztcclxuZXhwb3J0ICogZnJvbSAnLi9TZWxlY3Rpb25JbnRlcmZhY2VzJztcclxuZXhwb3J0ICogZnJvbSAnLi9QYXJhbWV0ZXJJbnRlcmZhY2VzJztcclxuZXhwb3J0ICogZnJvbSAnLi9TZWxlY3Rpb25JbnRlcmZhY2VzJztcclxuZXhwb3J0ICogZnJvbSAnLi9TaGVldEludGVyZmFjZXMnO1xyXG5cclxuZXhwb3J0IHsgQWRkSW4gfSBmcm9tICcuL05hbWVzcGFjZXMvQWRkSW4nO1xyXG5leHBvcnQgeyBEYXNoYm9hcmRDb250ZW50IH0gZnJvbSAnLi9OYW1lc3BhY2VzL0Rhc2hib2FyZENvbnRlbnQnO1xyXG5leHBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4vTmFtZXNwYWNlcy9FbnZpcm9ubWVudCc7XHJcbmV4cG9ydCB7IFNldHRpbmdzIH0gZnJvbSAnLi9OYW1lc3BhY2VzL1NldHRpbmdzJztcclxuZXhwb3J0IHsgVUkgfSBmcm9tICcuL05hbWVzcGFjZXMvVUknO1xyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvdHlwZXNjcmlwdC9qcy1hcGkvYXBpLWV4dGVybmFsLWNvbnRyYWN0L3NyYy9BcGlFeHRlcm5hbENvbnRyYWN0LnRzXG4gKiovIiwiLy8gQWxsIGVudW0gdmFsdWVzIG1hZGUgYXZhaWxhYmxlIHRvIEFkZEluIGRldmVsb3BlcnMuXHJcbi8vIEVudW1zIHNob3VsZCBiZSBrZXB0IGluIGFscGhhYmV0aWNhbCBvcmRlci5cclxuXHJcbi8qKlxyXG4gKiBUaGUgY29udGV4dCBpbiB3aGljaCB0aGUgQWRkSW4gaXMgY3VycmVudGx5IHJ1bm5pbmcuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBBZGRJbkNvbnRleHQge1xyXG4gIERlc2t0b3AgPSAnZGVza3RvcCcsXHJcbiAgU2VydmVyID0gJ3NlcnZlcidcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoZSBtb2RlIGluIHdoaWNoIHRoZSBBZGRJbiBpcyBjdXJyZW50bHkgcnVubmluZy5cclxuICovXHJcbmV4cG9ydCBlbnVtIEFkZEluTW9kZSB7XHJcbiAgQXV0aG9yaW5nID0gJ2F1dGhvcmluZycsXHJcbiAgVmlld2luZyA9ICd2aWV3aW5nJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBBbmFseXRpY3NPYmplY3RUeXBlIHtcclxuICBDbHVzdGVyID0gJ2NsdXN0ZXInLFxyXG4gIEZvcmVjYXN0ID0gJ2ZvcmVjYXN0JyxcclxuICBUcmVuZExpbmUgPSAndHJlbmQtbGluZSdcclxufVxyXG5cclxuZXhwb3J0IGVudW0gQ29sdW1uVHlwZSB7XHJcbiAgRGlzY3JldGUgPSAnZGlzY3JldGUnLFxyXG4gIENvbnRpbnVvdXMgPSAnY29udGludW91cydcclxufVxyXG5cclxuLyoqXHJcbiAqIFdoYXQgdGhlIG9iamVjdCByZXByZXNlbnRzIGluIGEgZGFzaGJvYXJkLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gRGFzaGJvYXJkT2JqZWN0VHlwZSB7XHJcbiAgQmxhbmsgPSAnYmxhbmsnLFxyXG4gIFdvcmtzaGVldCA9ICd3b3Jrc2hlZXQnLFxyXG4gIFF1aWNrRmlsdGVyID0gJ3F1aWNrLWZpbHRlcicsXHJcbiAgUGFyYW1ldGVyQ29udHJvbCA9ICdwYXJhbWV0ZXItY29udHJvbCcsXHJcbiAgUGFnZUZpbHRlciA9ICdwYWdlLWZpbHRlcicsXHJcbiAgTGVnZW5kID0gJ2xlZ2VuZCcsXHJcbiAgVGl0bGUgPSAndGl0bGUnLFxyXG4gIFRleHQgPSAndGV4dCcsXHJcbiAgSW1hZ2UgPSAnaW1hZ2UnLFxyXG4gIFdlYlBhZ2UgPSAnd2ViLXBhZ2UnLFxyXG4gIEFkZEluID0gJ2FkZGluJ1xyXG59XHJcblxyXG4vKipcclxuICogVGhlIGRpZmZlcmVudCB0eXBlcyBvZiBkYXRhIGEgdmFsdWUgY2FuIGhhdmVcclxuICovXHJcbmV4cG9ydCBlbnVtIERhdGFUeXBlIHtcclxuICBTdHJpbmcgPSAnc3RyaW5nJyxcclxuICBJbnQgPSAnaW50JyxcclxuICBGbG9hdCA9ICdmbG9hdCcsXHJcbiAgQm9vbCA9ICdib29sJyxcclxuICBEYXRlID0gJ2RhdGUnLFxyXG4gIERhdGVUaW1lID0gJ2RhdGUtdGltZScsXHJcbiAgU3BhdGlhbCA9ICdzcGF0aWFsJ1xyXG59XHJcblxyXG4vKipcclxuICogVmFsaWQgZGF0ZSByYW5nZXMgZm9yIGEgcmVsYXRpdmUgZGF0ZSBmaWx0ZXIuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBEYXRlUmFuZ2VUeXBlIHtcclxuICBMYXN0ID0gJ2xhc3QnLFxyXG4gIExhc3ROID0gJ2xhc3QtbicsXHJcbiAgTmV4dCA9ICduZXh0JyxcclxuICBOZXh0TiA9ICduZXh0LW4nLFxyXG4gIEN1cnJlbnQgPSAnY3VycmVudCcsXHJcbiAgVG9EYXRlID0gJ3RvLWRhdGUnXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUeXBlcyBvZiBkaWFsb2cgZXZlbnQgZm9yIGV2ZW50IGxpc3RlbmluZyBiZXR3ZWVuIGEgcGFyZW50IEFkZEluIGFuZCBhIHBvcHVwIGRpYWxvZy5cclxuICovXHJcbmV4cG9ydCBlbnVtIERpYWxvZ0V2ZW50VHlwZSB7XHJcbiAgRGlhbG9nTWVzc2FnZSA9ICdkaWFsb2ctbWVzc2FnZScsXHJcbiAgRGlhbG9nRXZlbnQgPSAnZGlhbG9nLWV2ZW50J1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBFbmNvZGluZ1R5cGUge1xyXG4gIENvbHVtbiA9ICdjb2x1bW4nLFxyXG4gIFJvdyA9ICdyb3cnLFxyXG4gIFBhZ2UgPSAncGFnZScsXHJcbiAgRmlsdGVyID0gJ2ZpbHRlcicsXHJcbiAgTWFya3NUeXBlID0gJ21hcmtzLXR5cGUnLFxyXG4gIE1lYXN1cmVWYWx1ZXMgPSAnbWVhc3VyZS12YWx1ZXMnLFxyXG4gIENvbG9yID0gJ2NvbG9yJyxcclxuICBTaXplID0gJ3NpemUnLFxyXG4gIExhYmVsID0gJ2xhYmVsJyxcclxuICBEZXRhaWwgPSAnZGV0YWlsJyxcclxuICBUb29sdGlwID0gJ3Rvb2x0aXAnLFxyXG4gIFNoYXBlID0gJ3NoYXBlJyxcclxuICBQYXRoID0gJ3BhdGgnLFxyXG4gIEFuZ2xlID0gJ2FuZ2xlJ1xyXG59XHJcblxyXG4vKipcclxuICogQWxsIGVycm9yIGNvZGVzIHVzZWQgYnkgdGhlIEFkZEluIEFQSS5cclxuICovXHJcbmV4cG9ydCBlbnVtIEVycm9yQ29kZXMge1xyXG4gIC8qKlxyXG4gICAqIE9ubHkgb25lIGRpYWxvZyBjYW4gYmUgb3BlbmVkIGF0IHRpbWUgd2l0aCB0aGUgVUkgbmFtZXNwYWNlIGZ1bmN0aW9uYWxpdHkuXHJcbiAgICovXHJcbiAgRGlhbG9nQWxyZWFkeU9wZW4gPSAnZGlhbG9nLWFscmVhZHktb3BlbicsXHJcbiAgLyoqXHJcbiAgICogVGhlIG9wZW4gZGlhbG9nIHdhcyBjbG9zZWQgYnkgdGhlIHVzZXIuXHJcbiAgICovXHJcbiAgRGlhbG9nQ2xvc2VkQnlVc2VyID0gJ2RpYWxvZy1jbG9zZWQtYnktdXNlcicsXHJcbiAgLyoqXHJcbiAgICogQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgYXR0ZW1wdGluZyB0byBwZXJmb3JtIGEgZmlsdGVyIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICBGaWx0ZXJDYW5ub3RCZVBlcmZvcm1lZCA9ICdmaWx0ZXItY2Fubm90LWJlLXBlcmZvcm1lZCcsXHJcbiAgLyoqXHJcbiAgICogQW4gZXJyb3Igb2NjdXJyZWQgd2l0aGluIHRoZSBUYWJsZWF1IEFkZEluIEFQSS4gQ29udGFjdCBUYWJsZWF1IFN1cHBvcnQuXHJcbiAgICovXHJcbiAgSW50ZXJuYWxFcnJvciA9ICdpbnRlcm5hbC1lcnJvcicsXHJcbiAgLyoqXHJcbiAgICogQW4gaW52YWxpZCBhZ2dyZWdhdGlvbiB3YXMgc3BlY2lmaWVkIGZvciB0aGUgZmlsdGVyLCBzdWNoIGFzIHNldHRpbmcgYSByYW5nZSBmaWx0ZXIgdG8gXCJTVU0oU2FsZXMpXCIgaW5zdGVhZCBvZiBcIlNhbGVzXCIuXHJcbiAgICovXHJcbiAgSW52YWxpZEFnZ3JlZ2F0aW9uRmllbGROYW1lID0gJ2ludmFsaWQtYWdncmVnYXRpb24tZmllbGQtbmFtZScsXHJcbiAgLyoqXHJcbiAgICogQSBkaWFsb2cgbXVzdCBmaXJzdCBsYXVuY2ggdG8sIGFuZCBzZW5kIG1lc3NhZ2VzIGZyb20sIHRoZSBzYW1lIGRvbWFpbiBhcyB0aGUgcGFyZW50IEFkZEluLlxyXG4gICAqL1xyXG4gIEludmFsaWREb21haW5EaWFsb2cgPSAnaW52YWxpZC1kaWFsb2ctZG9tYWluJyxcclxuICAvKipcclxuICAgKiBBbiBpbnZhbGlkIGRhdGUgd2FzIHNwZWNpZmllZCBpbiBhIG1ldGhvZCB0aGF0IHJlcXVpcmVkIGEgZGF0ZSBwYXJhbWV0ZXIuXHJcbiAgICovXHJcbiAgSW52YWxpZERhdGVQYXJhbWV0ZXIgPSAnaW52YWxpZC1kYXRlLXBhcmFtZXRlcicsXHJcbiAgLyoqXHJcbiAgICogQSBmaWx0ZXIgb3BlcmF0aW9uIHdhcyBhdHRlbXB0ZWQgb24gYSBmaWVsZCB0aGF0IGRvZXMgbm90IGV4aXN0IGluIHRoZSBkYXRhIHNvdXJjZS5cclxuICAgKi9cclxuICBJbnZhbGlkRmlsdGVyRmllbGROYW1lID0gJ2ludmFsaWQtZmlsdGVyLWZpZWxkLW5hbWUnLFxyXG4gIC8qKlxyXG4gICAqIEEgZmlsdGVyIG9wZXJhdGlvbiB3YXMgYXR0ZW1wdGVkIHVzaW5nIGEgdmFsdWUgdGhhdCBpcyB0aGUgd3JvbmcgZGF0YSB0eXBlIG9yIGZvcm1hdC5cclxuICAgKi9cclxuICBJbnZhbGlkRmlsdGVyRmllbGRWYWx1ZSA9ICdpbnZhbGlkLWZpbHRlci1maWVsZC12YWx1ZScsXHJcbiAgLyoqXHJcbiAgICogQSBwYXJhbWV0ZXIgaXMgbm90IHRoZSBjb3JyZWN0IGRhdGEgdHlwZSBvciBmb3JtYXQuIFRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIgaXMgc3BlY2lmaWVkIGluIHRoZSBFcnJvci5tZXNzYWdlIGZpZWxkLlxyXG4gICAqL1xyXG4gIEludmFsaWRQYXJhbWV0ZXIgPSAnaW52YWxpZC1wYXJhbWV0ZXInLFxyXG4gIC8qKlxyXG4gICAqIEFuIGludmFsaWQgZGF0ZSB2YWx1ZSB3YXMgc3BlY2lmaWVkIGluIGEgU2hlZXQuc2VsZWN0TWFya3NBc3luYygpIGNhbGwgZm9yIGEgZGF0ZSBmaWVsZC5cclxuICAgKi9cclxuICBJbnZhbGlkU2VsZWN0aW9uRGF0ZSA9ICdpbnZhbGlkLXNlbGVjdGlvbi1kYXRlJyxcclxuICAvKipcclxuICAgKiBBIGZpZWxkIHdhcyBzcGVjaWZpZWQgaW4gYSBTaGVldC5zZWxlY3RNYXJrc0FzeW5jKCkgY2FsbCB0aGF0IGRvZXMgbm90IGV4aXN0IGluIHRoZSBkYXRhIHNvdXJjZS5cclxuICAgKi9cclxuICBJbnZhbGlkU2VsZWN0aW9uRmllbGROYW1lID0gJ2ludmFsaWQtc2VsZWN0aW9uLWZpZWxkLW5hbWUnLFxyXG4gIC8qKlxyXG4gICAqIEFuIGludmFsaWQgdmFsdWUgd2FzIHNwZWNpZmllZCBpbiBhIFNoZWV0LnNlbGVjdE1hcmtzQXN5bmMoKSBjYWxsLlxyXG4gICAqL1xyXG4gIEludmFsaWRTZWxlY3Rpb25WYWx1ZSA9ICdpbnZhbGlkLXNlbGVjdGlvbi12YWx1ZScsXHJcbiAgLyoqXHJcbiAgICogQSByZXF1aXJlZCBwYXJhbWV0ZXIgd2FzIG5vdCBzcGVjaWZpZWQsIG51bGwsIG9yIGFuIGVtcHR5IHN0cmluZy9hcnJheS5cclxuICAgKi9cclxuICBOdWxsT3JFbXB0eVBhcmFtZXRlciA9ICdudWxsLW9yLWVtcHR5LXBhcmFtZXRlcicsXHJcbiAgLyoqXHJcbiAgICogQW4gdW5rbm93biBldmVudCBuYW1lIHdhcyBzcGVjaWZpZWQgaW4gdGhlIGNhbGwgdG8gVml6LmFkZEV2ZW50TGlzdGVuZXJvciBWaXoucmVtb3ZlRXZlbnRMaXN0ZW5lci5cclxuICAgKi9cclxuICBVbnN1cHBvcnRlZEV2ZW50TmFtZSA9ICd1bnN1cHBvcnRlZC1ldmVudC1uYW1lJ1xyXG59XHJcblxyXG4vKipcclxuICogIFR5cGUgb2YgYWdncmVnYXRpb24gb24gYSBmaWVsZC5cclxuICovXHJcbmV4cG9ydCBlbnVtIEZpZWxkQWdncmVnYXRpb25UeXBlIHtcclxuICBTdW0gPSAnc3VtJyxcclxuICBBdmcgPSAnYXZnJyxcclxuICBNaW4gPSAnbWluJyxcclxuICBNYXggPSAnbWF4JyxcclxuICBTdGRldiA9ICdzdGRldicsXHJcbiAgU3RkZXZwID0gJ3N0ZGV2cCcsXHJcbiAgVmFyID0gJ3ZhcicsXHJcbiAgVmFycCA9ICd2YXJwJyxcclxuICBDb3VudCA9ICdjb3VudCcsXHJcbiAgQ291bnRkID0gJ2NvdW50ZCcsXHJcbiAgTWVkaWFuID0gJ21lZGlhbicsXHJcbiAgQXR0ciA9ICdhdHRyJyxcclxuICBOb25lID0gJ25vbmUnLFxyXG4gIFllYXIgPSAneWVhcicsXHJcbiAgUXRyID0gJ3F0cicsXHJcbiAgTW9udGggPSAnbW9udGgnLFxyXG4gIERheSA9ICdkYXknLFxyXG4gIEhvdXIgPSAnaG91cicsXHJcbiAgTWludXRlID0gJ21pbnV0ZScsXHJcbiAgU2Vjb25kID0gJ3NlY29uZCcsXHJcbiAgV2VlayA9ICd3ZWVrJyxcclxuICBXZWVrZGF5ID0gJ3dlZWtkYXknLFxyXG4gIE1vbnRoWWVhciA9ICdtb250aC15ZWFyJyxcclxuICBNZHkgPSAnbWR5JyxcclxuICBFbmQgPSAnZW5kJyxcclxuICBUcnVuY1llYXIgPSAndHJ1bmMteWVhcicsXHJcbiAgVHJ1bmNRdHIgPSAndHJ1bmMtcXRyJyxcclxuICBUcnVuY01vbnRoID0gJ3RydW5jLW1vbnRoJyxcclxuICBUcnVuY1dlZWsgPSAndHJ1bmMtd2VlaycsXHJcbiAgVHJ1bmNEYXkgPSAndHJ1bmMtZGF5JyxcclxuICBUcnVuY0hvdXIgPSAndHJ1bmMtaG91cicsXHJcbiAgVHJ1bmNNaW51dGUgPSAndHJ1bmMtbWludXRlJyxcclxuICBUcnVuY1NlY29uZCA9ICd0cnVuYy1zZWNvbmQnLFxyXG4gIFF1YXJ0MSA9ICdxdWFydDEnLFxyXG4gIFF1YXJ0MyA9ICdxdWFydDMnLFxyXG4gIFNrZXduZXNzID0gJ3NrZXduZXNzJyxcclxuICBLdXJ0b3NpcyA9ICdrdXJ0b3NpcycsXHJcbiAgSW5PdXQgPSAnaW4tb3V0JyxcclxuICBVc2VyID0gJ3VzZXInXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSb2xlIG9mIGEgZmllbGQuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBGaWVsZFJvbGVUeXBlIHtcclxuICBEaW1lbnNpb24gPSAnZGltZW5zaW9uJyxcclxuICBNZWFzdXJlID0gJ21lYXN1cmUnLFxyXG4gIFVua25vd24gPSAndW5rbm93bidcclxufVxyXG5cclxuLyoqXHJcbiAqIEFuIGVudW1lcmF0aW9uIG9mIHRoZSB2YWxpZCB0eXBlcyBvZiBmaWx0ZXJzIHRoYXQgY2FuIGJlIGFwcGxpZWQuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBGaWx0ZXJUeXBlIHtcclxuICBDYXRlZ29yaWNhbCA9ICdjYXRlZ29yaWNhbCcsXHJcbiAgUmFuZ2UgPSAncmFuZ2UnLFxyXG4gIEhpZXJhcmNoaWNhbCA9ICdoaWVyYXJjaGljYWwnLFxyXG4gIFJlbGF0aXZlRGF0ZSA9ICdyZWxhdGl2ZS1kYXRlJ1xyXG59XHJcblxyXG4vKipcclxuICogVGhlIGRpZmZlcmVudCB1cGRhdGUgdHlwZXMgZm9yIGFwcGx5aW5nIGZpbHRlclxyXG4gKi9cclxuZXhwb3J0IGVudW0gRmlsdGVyVXBkYXRlVHlwZSB7XHJcbiAgQWRkID0gJ2FkZCcsXHJcbiAgQWxsID0gJ2FsbCcsXHJcbiAgUmVwbGFjZSA9ICdyZXBsYWNlJyxcclxuICBSZW1vdmUgPSAncmVtb3ZlJ1xyXG59XHJcblxyXG4vKipcclxuICogVGhlIGRvbWFpbiB0eXBlIGZvciBhIGZpbHRlclxyXG4gKi9cclxuZXhwb3J0IGVudW0gRmlsdGVyRG9tYWluVHlwZSB7XHJcbiAgLyoqXHJcbiAgICogVGhlIGRvbWFpbiB2YWx1ZXMgdGhhdCBhcmUgcmVsZXZhbnQgdG8gdGhlIHNwZWNpZmllZCBmaWx0ZXJcclxuICAgKiBpLmUuIHRoZSBkb21haW4gaXMgcmVzdHJpY3RlZCBieSBhIHByZXZpb3VzIGZpbHRlclxyXG4gICAqL1xyXG4gIFJlbGV2YW50ID0gJ3JlbGV2YW50JyxcclxuICAvKipcclxuICAgKiBsaXN0IG9mIGFsbCBwb3NzaWJsZSBkb21haW4gdmFsdWVzIGZyb20gZGF0YWJhc2VcclxuICAgKi9cclxuICBEYXRhYmFzZSA9ICdkYXRhYmFzZSdcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoZSBvcHRpb24gZm9yIHNwZWNpZnlpbmcgd2hpY2ggdmFsdWVzIHRvIGluY2x1ZGUgZm9yIGZpbHRlcmluZ1xyXG4gKiBJbmRpY2F0ZXMgd2hhdCB0byBkbyB3aXRoIG51bGwgdmFsdWVzIGZvciBhIGdpdmVuIGZpbHRlciBvciBtYXJrIHNlbGVjdGlvbiBjYWxsLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gRmlsdGVyTnVsbE9wdGlvbiB7XHJcbiAgTnVsbFZhbHVlcyA9ICdudWxsLXZhbHVlcycsXHJcbiAgTm9uTnVsbFZhbHVlcyA9ICdub24tbnVsbC12YWx1ZXMnLFxyXG4gIEFsbFZhbHVlcyA9ICdhbGwtdmFsdWVzJ1xyXG59XHJcblxyXG4vKipcclxuICogVHlwZSBvZiBtYXJrIGZvciBhIGdpdmVuIG1hcmtzIGNhcmQgaW4gYSB2aXouXHJcbiAqL1xyXG5leHBvcnQgZW51bSBNYXJrVHlwZSB7XHJcbiAgQmFyID0gJ2JhcicsXHJcbiAgTGluZSA9ICdsaW5lJyxcclxuICBBcmVhID0gJ2FyZWEnLFxyXG4gIFNxdWFyZSA9ICdzcXVhcmUnLFxyXG4gIENpcmNsZSA9ICdjaXJjbGUnLFxyXG4gIFNoYXBlID0gJ3NoYXBlJyxcclxuICBUZXh0ID0gJ3RleHQnLFxyXG4gIE1hcCA9ICdtYXAnLFxyXG4gIFBpZSA9ICdwaWUnLFxyXG4gIEdhbnR0QmFyID0gJ2dhbnR0LWJhcicsXHJcbiAgUG9seWdvbiA9ICdwb2x5Z29uJ1xyXG59XHJcblxyXG4vKipcclxuICogQW4gZW51bWVyYXRpb24gZGVzY3JpYmluZyB0aGUgZGlmZmVyZW50IHR5cGVzIG9mIGFsbG93YWJsZSB2YWx1ZXMuXHJcbiAqIFRoaXMgaXMgdXNlZCBmb3IgcmVzdHJpY3RpbmcgdGhlIGRvbWFpbiBvZiBhIHBhcmFtZXRlclxyXG4gKi9cclxuZXhwb3J0IGVudW0gUGFyYW1ldGVyVmFsdWVUeXBlIHtcclxuICBBbGwgPSAnYWxsJyxcclxuICBMaXN0ID0gJ2xpc3QnLFxyXG4gIFJhbmdlID0gJ3JhbmdlJ1xyXG59XHJcblxyXG4vKipcclxuICogRGF0ZSBwZXJpb2QgdXNlZCBpbiBmaWx0ZXJzIGFuZCBpbiBwYXJhbWV0ZXJzLlxyXG4gKi9cclxuZXhwb3J0IGVudW0gUGVyaW9kVHlwZSB7XHJcbiAgWWVhcnMgPSAneWVhcnMnLFxyXG4gIFF1YXJ0ZXJzID0gJ3F1YXJ0ZXJzJyxcclxuICBNb250aHMgPSAnbW9udGhzJyxcclxuICBXZWVrcyA9ICd3ZWVrcycsXHJcbiAgRGF5cyA9ICdkYXlzJyxcclxuICBIb3VycyA9ICdob3VycycsXHJcbiAgTWludXRlcyA9ICdtaW51dGVzJyxcclxuICBTZWNvbmRzID0gJ3NlY29uZHMnXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFF1aWNrVGFibGVDYWxjVHlwZSB7XHJcbiAgUnVubmluZ1RvdGFsID0gJ3J1bm5pbmctdG90YWwnLFxyXG4gIERpZmZlcmVuY2UgPSAnZGlmZmVyZW5jZScsXHJcbiAgUGVyY2VudERpZmZlcmVuY2UgPSAncGVyY2VudC1kaWZmZXJlbmNlJyxcclxuICBQZXJjZW50T2ZUb3RhbCA9ICdwZXJjZW50LW9mLXRvdGFsJyxcclxuICBSYW5rID0gJ3JhbmsnLFxyXG4gIFBlcmNlbnRpbGUgPSAncGVyY2VudGlsZScsXHJcbiAgTW92aW5nQXZlcmFnZSA9ICdtb3ZpbmctYXZlcmFnZScsXHJcbiAgWVREVG90YWwgPSAneXRkLXRvdGFsJyxcclxuICBDb21wb3VuZEdyb3d0aFJhdGUgPSAnY29tcG91bmQtZ3Jvd3RoLXJhdGUnLFxyXG4gIFllYXJPdmVyWWVhckdyb3d0aCA9ICd5ZWFyLW92ZXIteWVhci1ncm93dGgnLFxyXG4gIFlUREdyb3d0aCA9ICd5dGQtZ3Jvd3RoJyxcclxuICBVbmRlZmluZWQgPSAndW5kZWZpbmVkJ1xyXG59XHJcblxyXG4vKipcclxuICogRW51bSBmb3Igc3BlY2lmeWluZyB0aGUgc2VsZWN0aW9uIHR5cGUgZm9yIHNlbGVjdCBtYXJrcyBhcGkuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBTZWxlY3Rpb25VcGRhdGVUeXBlIHtcclxuICBSZXBsYWNlID0gJ3NlbGVjdC1yZXBsYWNlJyxcclxuICBBZGQgPSAnc2VsZWN0LWFkZCcsXHJcbiAgUmVtb3ZlID0gJ3NlbGVjdC1yZW1vdmUnXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGUgdHlwZSBvZiBzaGVldCBhIFNoZWV0IG9iamVjdCByZXByZXNlbnRzXHJcbiAqL1xyXG5leHBvcnQgZW51bSBTaGVldFR5cGUge1xyXG4gIERhc2hib2FyZCA9ICdkYXNoYm9hcmQnLFxyXG4gIFN0b3J5ID0gJ3N0b3J5JyxcclxuICBXb3Jrc2hlZXQgPSAnd29ya3NoZWV0J1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBTb3J0RGlyZWN0aW9uIHtcclxuICBJbmNyZWFzaW5nID0gJ2luY3JlYXNpbmcnLFxyXG4gIERlY3JlYXNpbmcgPSAnZGVjcmVhc2luZydcclxufVxyXG5cclxuLyoqXHJcbiAqIFJlcHJlc2VudHMgYSBjZXJ0YWluIHR5cGUgb2YgZXZlbnQgd2hpY2ggY2FuIGJlIGxpc3RlbmVkIGZvclxyXG4gKi9cclxuZXhwb3J0IGVudW0gVGFibGVhdUV2ZW50VHlwZSB7XHJcbiAgLyoqIFJhaXNlZCB3aGVuIGFueSBmaWx0ZXIgaGFzIGNoYW5nZWQgc3RhdGUuKi9cclxuICBGaWx0ZXJDaGFuZ2VkID0gJ2ZpbHRlci1jaGFuZ2VkJyxcclxuXHJcbiAgLyoqIFRoZSBzZWxlY3RlZCBtYXJrcyBvbiBhIHZpc3VhbGl6YXRpb24gaGFzIGNoYW5nZWQgKi9cclxuICBNYXJrU2VsZWN0aW9uQ2hhbmdlZCA9ICdtYXJrLXNlbGVjdGlvbi1jaGFuZ2VkJyxcclxuXHJcbiAgLyoqIEEgcGFyYW1ldGVyIGhhcyBoYWQgaXRzIHZhbHVlIG1vZGlmaWVkICovXHJcbiAgUGFyYW1ldGVyQ2hhbmdlZCA9ICdwYXJhbWV0ZXItY2hhbmdlZCdcclxufVxyXG5cclxuZXhwb3J0IGVudW0gVHJlbmRMaW5lTW9kZWxUeXBlIHtcclxuICBMaW5lYXIgPSAnbGluZWFyJyxcclxuICBMb2dhcml0aG1pYyA9ICdsb2dhcml0aG1pYycsXHJcbiAgRXhwb25lbnRpYWwgPSAnZXhwb25lbnRpYWwnLFxyXG4gIFBvbHlub21pYWwgPSAncG9seW5vbWlhbCdcclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvdHlwZXNjcmlwdC9qcy1hcGkvYXBpLWV4dGVybmFsLWNvbnRyYWN0L3NyYy9FbnVtcy50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBUYWJsZWF1U2hlZXRFdmVudCB9IGZyb20gJy4vVGFibGVhdVNoZWV0RXZlbnQnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFRhYmxlYXVXb3Jrc2hlZXRFdmVudCBleHRlbmRzIFRhYmxlYXVTaGVldEV2ZW50IGltcGxlbWVudHMgQ29udHJhY3QuVGFibGVhdVdvcmtzaGVldEV2ZW50IHtcclxuICBwcml2YXRlIF93b3Jrc2hlZXQ6IENvbnRyYWN0LldvcmtzaGVldDtcclxuXHJcbiAgcHVibGljIGdldCB3b3Jrc2hlZXQoKTogQ29udHJhY3QuV29ya3NoZWV0IHtcclxuICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IodHlwZTogQ29udHJhY3QuVGFibGVhdUV2ZW50VHlwZSwgd29ya3NoZWV0OiBDb250cmFjdC5Xb3Jrc2hlZXQpIHtcclxuICAgIHN1cGVyKHR5cGUsIHdvcmtzaGVldCk7XHJcblxyXG4gICAgdGhpcy5fd29ya3NoZWV0ID0gd29ya3NoZWV0O1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvdHlwZXNjcmlwdC9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvRXZlbnRzL1RhYmxlYXVXb3Jrc2hlZXRFdmVudC50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBUYWJsZWF1RXZlbnQgfSBmcm9tICcuL1RhYmxlYXVFdmVudCc7XHJcblxyXG5leHBvcnQgY2xhc3MgVGFibGVhdVNoZWV0RXZlbnQgZXh0ZW5kcyBUYWJsZWF1RXZlbnQgaW1wbGVtZW50cyBDb250cmFjdC5UYWJsZWF1U2hlZXRFdmVudCB7XHJcbiAgcHJpdmF0ZSBfc2hlZXQ6IENvbnRyYWN0LlNoZWV0O1xyXG5cclxuICBwdWJsaWMgZ2V0IHNoZWV0KCk6IENvbnRyYWN0LlNoZWV0IHtcclxuICAgIHJldHVybiB0aGlzLl9zaGVldDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcih0eXBlOiBDb250cmFjdC5UYWJsZWF1RXZlbnRUeXBlLCBzaGVldDogQ29udHJhY3QuU2hlZXQpIHtcclxuICAgIHN1cGVyKHR5cGUpO1xyXG5cclxuICAgIHRoaXMuX3NoZWV0ID0gc2hlZXQ7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FdmVudHMvVGFibGVhdVNoZWV0RXZlbnQudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFRhYmxlYXVFdmVudCBpbXBsZW1lbnRzIENvbnRyYWN0LlRhYmxlYXVFdmVudCB7XHJcbiAgcHJpdmF0ZSBfdHlwZTogQ29udHJhY3QuVGFibGVhdUV2ZW50VHlwZTtcclxuXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHR5cGU6IENvbnRyYWN0LlRhYmxlYXVFdmVudFR5cGUpIHtcclxuICAgIHRoaXMuX3R5cGUgPSB0eXBlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB0eXBlKCk6IENvbnRyYWN0LlRhYmxlYXVFdmVudFR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3R5cGU7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FdmVudHMvVGFibGVhdUV2ZW50LnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IFRhYmxlYXVXb3Jrc2hlZXRFdmVudCB9IGZyb20gJy4vVGFibGVhdVdvcmtzaGVldEV2ZW50JztcclxuXHJcbmV4cG9ydCBjbGFzcyBNYXJrc1NlbGVjdGVkRXZlbnQgZXh0ZW5kcyBUYWJsZWF1V29ya3NoZWV0RXZlbnQgaW1wbGVtZW50cyBDb250cmFjdC5NYXJrc1NlbGVjdGVkRXZlbnQge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcih3b3Jrc2hlZXQ6IENvbnRyYWN0LldvcmtzaGVldCkge1xyXG4gICAgc3VwZXIoQ29udHJhY3QuVGFibGVhdUV2ZW50VHlwZS5NYXJrU2VsZWN0aW9uQ2hhbmdlZCwgd29ya3NoZWV0KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRNYXJrc0FzeW5jKCk6IFByb21pc2U8Q29udHJhY3QuTWFya3NDb2xsZWN0aW9uPiB7XHJcbiAgICByZXR1cm4gdGhpcy53b3Jrc2hlZXQuZ2V0U2VsZWN0ZWRNYXJrc0FzeW5jKCk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FdmVudHMvTWFya3NTZWxlY3RlZEV2ZW50LnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IFNpbmdsZUV2ZW50TWFuYWdlciB9IGZyb20gJy4uL1NpbmdsZUV2ZW50TWFuYWdlcic7XHJcblxyXG4vKipcclxuICogVGhpcyBjbGFzcyBpbXBsZW1lbnRzIHRoZSBTaW5nbGVFdmVudE1hbmFnZXIgaW50ZXJmYWNlIGZvciBhIHNpbmdsZSB0eXBlIG9mIFRhYmxlYXUgZXZlbnRcclxuICpcclxuICogQHRlbXBsYXRlIFRFdmVudFR5cGUgVGhlIFRhYmxlYXUgZXZlbnQgdHlwZSB0aGlzIGNsYXNzIHNwZWNpYWxpemVzXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgU2luZ2xlRXZlbnRNYW5hZ2VySW1wbDxURXZlbnRUeXBlIGV4dGVuZHMgQ29udHJhY3QuVGFibGVhdUV2ZW50PiBpbXBsZW1lbnRzIFNpbmdsZUV2ZW50TWFuYWdlciB7XHJcbiAgcHJpdmF0ZSBfZXZlbnRUeXBlOiBDb250cmFjdC5UYWJsZWF1RXZlbnRUeXBlO1xyXG4gIHByaXZhdGUgX2hhbmRsZXJzOiBBcnJheTwoZXZlbnRPYmo6IFRFdmVudFR5cGUpID0+IHZvaWQ+O1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IoZXZlbnRUeXBlOiBDb250cmFjdC5UYWJsZWF1RXZlbnRUeXBlKSB7XHJcbiAgICB0aGlzLl9ldmVudFR5cGUgPSBldmVudFR5cGU7XHJcbiAgICB0aGlzLl9oYW5kbGVycyA9IFtdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBldmVudFR5cGUoKTogQ29udHJhY3QuVGFibGVhdUV2ZW50VHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZXZlbnRUeXBlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZEV2ZW50TGlzdGVuZXIoaGFuZGxlcjogKGV2ZW50T2JqOiBURXZlbnRUeXBlKSA9PiB2b2lkKTogQ29udHJhY3QuVGFibGVhdUV2ZW50VW5yZWdpc3RlckZuIHtcclxuICAgIHRoaXMuX2hhbmRsZXJzLnB1c2goaGFuZGxlcik7XHJcbiAgICByZXR1cm4gKCkgPT4gdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGhhbmRsZXIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlbW92ZUV2ZW50TGlzdGVuZXIoaGFuZGxlcjogKGV2ZW50T2JqOiBURXZlbnRUeXBlKSA9PiB2b2lkKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBiZWZvcmVDb3VudCA9IHRoaXMuX2hhbmRsZXJzLmxlbmd0aDtcclxuICAgIHRoaXMuX2hhbmRsZXJzID0gdGhpcy5faGFuZGxlcnMuZmlsdGVyKGggPT4gaCAhPT0gaGFuZGxlcik7XHJcbiAgICByZXR1cm4gYmVmb3JlQ291bnQgPiB0aGlzLl9oYW5kbGVycy5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdHJpZ2dlckV2ZW50KGV2ZW50R2VuZXJhdG9yOiAoKSA9PiBURXZlbnRUeXBlKTogdm9pZCB7XHJcbiAgICBmb3IgKGNvbnN0IGhhbmRsZXIgb2YgdGhpcy5faGFuZGxlcnMpIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBjb25zdCBldmVudE1vZGVsID0gZXZlbnRHZW5lcmF0b3IoKTtcclxuICAgICAgICBoYW5kbGVyKGV2ZW50TW9kZWwpO1xyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgLy8gU2luY2UgdGhpcyBoYW5kbGVyIGNvdWxkIGJlIG91dHNpZGUgb3VyIGNvbnRyb2wsIGp1c3QgY2F0Y2ggYW55dGhpbmcgaXQgdGhyb3dzIGFuZCBjb250aW51ZSBvblxyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9JbnRlcm5hbC9TaW5nbGVFdmVudE1hbmFnZXJJbXBsLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgVmlzdWFsSWQgfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gJy4vU2VydmljZVJlZ2lzdHJ5JztcclxuXHJcbi8qKlxyXG4gKiBEZWZpbmVzIHdoaWNoIHR5cGUgb2YgZ2V0RGF0YSBjYWxsIHRvIG1ha2UuXHJcbiAqL1xyXG5leHBvcnQgZW51bSBHZXREYXRhVHlwZSB7XHJcbiAgU3VtbWFyeSA9ICdzdW1tYXJ5JyxcclxuICBVbmRlcmx5aW5nID0gJ3VuZGVybHlpbmcnXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTZXJ2aWNlIGZvciBpbXBsZW1lbnRpbmcgdGhlIGxvZ2ljIGZvciB2YXJpb3VzIGdldERhdGEgY2FsbHNcclxuICpcclxuICogQGludGVyZmFjZSBHZXREYXRhU2VydmljZVxyXG4gKiBAZXh0ZW5kcyB7QXBpU2VydmljZX1cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgR2V0RGF0YVNlcnZpY2UgZXh0ZW5kcyBBcGlTZXJ2aWNlIHtcclxuICAvKipcclxuICAgKiBHZXRzIHRoZSB1bmRlcmx5aW5nIGRhdGEgZm9yIGEgcGFydGljdWxhciB2aXN1YWxcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7VmlzdWFsSWR9IHZpc3VhbElkICBUaGUgdmlzdWFsIHRvIGdldCBkYXRhIGZvclxyXG4gICAqIEBwYXJhbSB7R2V0RGF0YVR5cGV9IGdldFR5cGUgIFRoZSB0eXBlIG9mIGdldERhdGEgY2FsbCB0byBtYWtlXHJcbiAgICogQHBhcmFtIHtib29sZWFufSBpZ25vcmVBbGlhc2VzICBXaGV0aGVyIG9yIG5vdCBhbGlhc2VzIHNob3VsZCBiZSBpZ25vcmVkXHJcbiAgICogQHBhcmFtIHtib29sZWFufSBpZ25vcmVTZWxlY3Rpb24gIFdoZXRoZXIgb3Igbm90IHNlbGVjdGlvbiBzaG91bGQgYmUgaWdub3JlZFxyXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gaW5jbHVkZUFsbENvbHVtbnMgIFNob3VsZCBhbGwgY29sdW1ucyBiZSBpbmNsdWRlZFxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBtYXhSb3dzICBNYXhpbXVtIG51bWJlciBvZiByb3dzIHRvIHJldHVyblxyXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPENvbnRyYWN0LkRhdGFUYWJsZT59ICBEYXRhIHRhYmxlIHdpdGggdGhlIHJlcXVlc3RlZCBkYXRhXHJcbiAgICovXHJcbiAgICBnZXRVbmRlcmx5aW5nRGF0YUFzeW5jKFxyXG4gICAgICB2aXN1YWxJZDogVmlzdWFsSWQsXHJcbiAgICAgIGdldFR5cGU6IEdldERhdGFUeXBlLFxyXG4gICAgICBpZ25vcmVBbGlhc2VzOiBib29sZWFuLFxyXG4gICAgICBpZ25vcmVTZWxlY3Rpb246IGJvb2xlYW4sXHJcbiAgICAgIGluY2x1ZGVBbGxDb2x1bW5zOiBib29sZWFuLFxyXG4gICAgICBtYXhSb3dzOiBudW1iZXIpOiBQcm9taXNlPENvbnRyYWN0LkRhdGFUYWJsZT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgbWFya3MgZm9yIGEgZ2l2ZW4gdmlzdWFsXHJcbiAgICAgKlxyXG4gICAgKiBAcGFyYW0ge1Zpc3VhbElkfSB2aXN1YWxJZCAgVGhlIHZpc3VhbCB0byBnZXQgZGF0YSBmb3JcclxuICAgICogQHJldHVybnMge1Byb21pc2U8QWN0aXZlTWFya3M+fSAgQ29sbGVjdGlvbiBvZiBkYXRhIHRhYmxlcyB3aXRoIHRoZSBhY3RpdmUgbWFya3NcclxuICAgICovXHJcbiAgICBnZXRTZWxlY3RlZE1hcmtzQXN5bmModmlzdWFsSWQ6IFZpc3VhbElkKTogUHJvbWlzZTxDb250cmFjdC5NYXJrc0NvbGxlY3Rpb24+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgY3VycmVudGx5IGhpZ2hsaWdodGVkIG1hcmtzIGZvciBhIGdpdmVuIHZpc3VhbFxyXG4gICAgICpcclxuICAgICogQHBhcmFtIHtWaXN1YWxJZH0gdmlzdWFsSWQgIFRoZSB2aXN1YWwgdG8gZ2V0IGRhdGEgZm9yXHJcbiAgICAqIEByZXR1cm5zIHtQcm9taXNlPEFjdGl2ZU1hcmtzPn0gIENvbGxlY3Rpb24gb2YgZGF0YSB0YWJsZXMgd2l0aCB0aGUgYWN0aXZlIG1hcmtzXHJcbiAgICAqL1xyXG4gICAgZ2V0SGlnaGxpZ2h0ZWRNYXJrc0FzeW5jKHZpc3VhbElkOiBWaXN1YWxJZCk6IFByb21pc2U8Q29udHJhY3QuTWFya3NDb2xsZWN0aW9uPjtcclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvdHlwZXNjcmlwdC9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvU2VydmljZXMvR2V0RGF0YVNlcnZpY2UudHNcbiAqKi8iLCJpbXBvcnQgeyBJbnRlcm5hbEFwaURpc3BhdGNoZXIgfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgRGF0YVNvdXJjZVNlcnZpY2VJbXBsIH0gZnJvbSAnLi9pbXBsL0RhdGFTb3VyY2VTZXJ2aWNlSW1wbCc7XHJcbmltcG9ydCB7IEZpbHRlclNlcnZpY2VJbXBsIH0gZnJvbSAnLi9pbXBsL0ZpbHRlclNlcnZpY2VJbXBsJztcclxuaW1wb3J0IHsgR2V0RGF0YVNlcnZpY2VJbXBsIH0gZnJvbSAnLi9pbXBsL0dldERhdGFTZXJ2aWNlSW1wbCc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2VJbXBsIH0gZnJvbSAnLi9pbXBsL05vdGlmaWNhdGlvblNlcnZpY2VJbXBsJztcclxuaW1wb3J0IHsgUGFyYW1ldGVyc1NlcnZpY2VJbXBsIH0gZnJvbSAnLi9pbXBsL1BhcmFtZXRlcnNTZXJ2aWNlSW1wbCc7XHJcbmltcG9ydCB7IFNlbGVjdGlvblNlcnZpY2VJbXBsIH0gZnJvbSAnLi9pbXBsL1NlbGVjdGlvblNlcnZpY2VJbXBsJztcclxuaW1wb3J0IHsgQXBpU2VydmljZVJlZ2lzdHJ5IH0gZnJvbSAnLi9TZXJ2aWNlUmVnaXN0cnknO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyQWxsU2hhcmVkU2VydmljZXMoZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyKTogdm9pZCB7XHJcbiAgQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLnJlZ2lzdGVyU2VydmljZShuZXcgRGF0YVNvdXJjZVNlcnZpY2VJbXBsKGRpc3BhdGNoZXIpKTtcclxuICBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UucmVnaXN0ZXJTZXJ2aWNlKG5ldyBHZXREYXRhU2VydmljZUltcGwoZGlzcGF0Y2hlcikpO1xyXG4gIEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5yZWdpc3RlclNlcnZpY2UobmV3IEZpbHRlclNlcnZpY2VJbXBsKGRpc3BhdGNoZXIpKTtcclxuICBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UucmVnaXN0ZXJTZXJ2aWNlKG5ldyBOb3RpZmljYXRpb25TZXJ2aWNlSW1wbChkaXNwYXRjaGVyKSk7XHJcbiAgQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLnJlZ2lzdGVyU2VydmljZShuZXcgUGFyYW1ldGVyc1NlcnZpY2VJbXBsKGRpc3BhdGNoZXIpKTtcclxuICBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UucmVnaXN0ZXJTZXJ2aWNlKG5ldyBTZWxlY3Rpb25TZXJ2aWNlSW1wbChkaXNwYXRjaGVyKSk7XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L3R5cGVzY3JpcHQvanMtYXBpL2FwaS1zaGFyZWQvc3JjL1NlcnZpY2VzL1JlZ2lzdGVyQWxsU2hhcmVkU2VydmljZXMudHNcbiAqKi8iLCJpbXBvcnQge1xyXG4gIERhdGFTY2hlbWEsXHJcbiAgRXhlY3V0ZVBhcmFtZXRlcnMsXHJcbiAgSW50ZXJuYWxBcGlEaXNwYXRjaGVyLFxyXG4gIFBhcmFtZXRlcklkLFxyXG4gIFZlcmJJZFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBEYXRhU291cmNlU2VydmljZSB9IGZyb20gJy4uL0RhdGFTb3VyY2VTZXJ2aWNlJztcclxuaW1wb3J0IHsgU2VydmljZU5hbWVzIH0gZnJvbSAnLi4vU2VydmljZVJlZ2lzdHJ5JztcclxuXHJcbmV4cG9ydCBjbGFzcyBEYXRhU291cmNlU2VydmljZUltcGwgaW1wbGVtZW50cyBEYXRhU291cmNlU2VydmljZSB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgX2Rpc3BhdGNoZXI6IEludGVybmFsQXBpRGlzcGF0Y2hlcikgeyB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2VydmljZU5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBTZXJ2aWNlTmFtZXMuRGF0YVNvdXJjZVNlcnZpY2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVmcmVzaEFzeW5jKGRhdGFTb3VyY2VJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCBwYXJhbWV0ZXJzOiBFeGVjdXRlUGFyYW1ldGVycyA9IHtbUGFyYW1ldGVySWQuRGF0YVNvdXJjZUlkXTogZGF0YVNvdXJjZUlkfTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5fZGlzcGF0Y2hlci5leGVjdXRlKFZlcmJJZC5SZWZyZXNoRGF0YVNvdXJjZSwgcGFyYW1ldGVycykudGhlbjx2b2lkPihyZXNwb25zZSA9PiB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldERhdGFTb3VyY2VzQXN5bmMoKTogUHJvbWlzZTxEYXRhU2NoZW1hPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGlzcGF0Y2hlci5leGVjdXRlKFZlcmJJZC5HZXREYXRhU291cmNlcywge30pLnRoZW48RGF0YVNjaGVtYT4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICBjb25zdCBkYXRhU2NoZW1hID0gcmVzcG9uc2UucmVzdWx0IGFzIERhdGFTY2hlbWE7XHJcbiAgICAgIHJldHVybiBkYXRhU2NoZW1hO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9pbXBsL0RhdGFTb3VyY2VTZXJ2aWNlSW1wbC50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCAqIGFzIEludGVybmFsQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHtcclxuICBDb21tYW5kRXJyb3IsXHJcbiAgRXhlY3V0ZVBhcmFtZXRlcnMsXHJcbiAgRmlsdGVyVHlwZSxcclxuICBJbnRlcm5hbEFwaURpc3BhdGNoZXIsXHJcbiAgUGFyYW1ldGVySWQsXHJcbiAgVmVyYklkLFxyXG4gIFZpc3VhbElkXHJcbn0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgUGFyYW0gfSBmcm9tICdAdGFibGVhdS9hcGktdXRpbHMnO1xyXG5cclxuaW1wb3J0IHsgRXh0ZXJuYWxUb0ludGVybmFsRW51bU1hcHBpbmdzIGFzIEV4dGVybmFsRW51bUNvbnZlcnRlciB9IGZyb20gJy4uLy4uL0VudW1NYXBwaW5ncy9FeHRlcm5hbFRvSW50ZXJuYWxFbnVtTWFwcGluZ3MnO1xyXG5pbXBvcnQgeyBJbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MgYXMgSW50ZXJuYWxFbnVtQ29udmVydGVyIH0gZnJvbSAnLi4vLi4vRW51bU1hcHBpbmdzL0ludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncyc7XHJcbmltcG9ydCB7IENhdGVnb3JpY2FsRmlsdGVyLCBSYW5nZUZpbHRlciwgUmVsYXRpdmVEYXRlRmlsdGVyIH0gZnJvbSAnLi4vLi4vTW9kZWxzL0ZpbHRlck1vZGVscyc7XHJcbmltcG9ydCB7IERhdGFWYWx1ZSB9IGZyb20gJy4uLy4uL01vZGVscy9HZXREYXRhTW9kZWxzJztcclxuXHJcbmltcG9ydCB7IEZpbHRlclNlcnZpY2UgfSBmcm9tICcuLi9GaWx0ZXJTZXJ2aWNlJztcclxuaW1wb3J0IHsgU2VydmljZU5hbWVzIH0gZnJvbSAnLi4vU2VydmljZVJlZ2lzdHJ5JztcclxuXHJcbmV4cG9ydCBjbGFzcyBGaWx0ZXJTZXJ2aWNlSW1wbCBpbXBsZW1lbnRzIEZpbHRlclNlcnZpY2Uge1xyXG4gIHByaXZhdGUgX2Rpc3BhdGNoZXI6IEludGVybmFsQXBpRGlzcGF0Y2hlcjtcclxuXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKGRpc3BhdGNoZXI6IEludGVybmFsQXBpRGlzcGF0Y2hlcikge1xyXG4gICAgdGhpcy5fZGlzcGF0Y2hlciA9IGRpc3BhdGNoZXI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHNlcnZpY2VOYW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gU2VydmljZU5hbWVzLkZpbHRlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhcHBseUZpbHRlckFzeW5jKFxyXG4gICAgdmlzdWFsSWQ6IFZpc3VhbElkLFxyXG4gICAgZmllbGROYW1lOiBzdHJpbmcsXHJcbiAgICB2YWx1ZXM6IEFycmF5PHN0cmluZz4sXHJcbiAgICB1cGRhdGVUeXBlOiBDb250cmFjdC5GaWx0ZXJVcGRhdGVUeXBlLFxyXG4gICAgZmlsdGVyT3B0aW9uczogQ29udHJhY3QuRmlsdGVyT3B0aW9ucyk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICAgIGlmICghUGFyYW0uaXNWYWxpZEVudW1WYWx1ZTxDb250cmFjdC5GaWx0ZXJVcGRhdGVUeXBlPih1cGRhdGVUeXBlLCBDb250cmFjdC5GaWx0ZXJVcGRhdGVUeXBlKSkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB2YWx1ZSBmb3IgcGFyYW1ldGVyIEZpbHRlclVwZGF0ZVR5cGUnKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCB2ZXJiID0gVmVyYklkLkFwcGx5Q2F0ZWdvcmljYWxGaWx0ZXI7XHJcbiAgICAgIGNvbnN0IHBhcmFtZXRlcnM6IEV4ZWN1dGVQYXJhbWV0ZXJzID0ge307XHJcbiAgICAgIHBhcmFtZXRlcnNbUGFyYW1ldGVySWQuVmlzdWFsSWRdID0gdmlzdWFsSWQ7XHJcbiAgICAgIHBhcmFtZXRlcnNbUGFyYW1ldGVySWQuRmllbGROYW1lXSA9IGZpZWxkTmFtZTtcclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5GaWx0ZXJWYWx1ZXNdID0gdmFsdWVzO1xyXG4gICAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLkZpbHRlclVwZGF0ZVR5cGVdID0gdXBkYXRlVHlwZTtcclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5Jc0V4Y2x1ZGVNb2RlXSA9XHJcbiAgICAgICAgKGZpbHRlck9wdGlvbnMgPT09IHVuZGVmaW5lZCB8fCBmaWx0ZXJPcHRpb25zLmlzRXhjbHVkZU1vZGUgPT09IHVuZGVmaW5lZCkgPyBmYWxzZSA6IGZpbHRlck9wdGlvbnMuaXNFeGNsdWRlTW9kZTtcclxuXHJcbiAgICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUodmVyYiwgcGFyYW1ldGVycykudGhlbjxzdHJpbmc+KHJlc3BvbnNlID0+IHtcclxuICAgICAgICBjb25zdCBlcnJvciA9IHJlc3BvbnNlLnJlc3VsdCBhcyBDb21tYW5kRXJyb3I7XHJcbiAgICAgICAgaWYgKCEoZXJyb3IuZXJyb3JDb2RlID09PSBudWxsIHx8IGVycm9yLmVycm9yQ29kZSA9PT0gdW5kZWZpbmVkKSkge1xyXG4gICAgICAgICAgLy8gVE9ETzogY29tZSBiYWNrIGFuZCBpbXBsZW1lbnQgZXJyb3IgaGFuZGxpbmcgbG9naWNcclxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRXJyb3IgQXBwbHlpbmcgRmlsdGVyOiAnICsgZXJyb3IuZXJyb3JDb2RlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZpZWxkTmFtZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gIHB1YmxpYyBhcHBseVJhbmdlRmlsdGVyQXN5bmModmlzdWFsSWQ6IFZpc3VhbElkLCBmaWVsZE5hbWU6IHN0cmluZywgZmlsdGVyT3B0aW9uczogQ29udHJhY3QuUmFuZ2VGaWx0ZXJPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIGlmICghZmlsdGVyT3B0aW9ucykge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgUGFyYW1ldGVyOiBSYW5nZUZpbHRlck9wdGlvbnMnKTtcclxuICAgIH1cclxuICAgIFBhcmFtLnZlcmlmeVJhbmdlUGFyYW1UeXBlKGZpbHRlck9wdGlvbnMubWluLCBmaWx0ZXJPcHRpb25zLm1heCk7XHJcblxyXG4gICAgY29uc3QgdmVyYiA9IFZlcmJJZC5BcHBseVJhbmdlRmlsdGVyO1xyXG4gICAgY29uc3QgcGFyYW1ldGVyczogRXhlY3V0ZVBhcmFtZXRlcnMgPSB7fTtcclxuXHJcbiAgICBpZiAoZmlsdGVyT3B0aW9ucy5taW4pIHtcclxuICAgICAgbGV0IG1pbjogc3RyaW5nIHwgbnVtYmVyO1xyXG4gICAgICBpZiAoZmlsdGVyT3B0aW9ucy5taW4gaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgbWluID0gUGFyYW0uc2VyaWFsaXplRGF0ZUZvclBsYXRmb3JtKGZpbHRlck9wdGlvbnMubWluKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBtaW4gPSBmaWx0ZXJPcHRpb25zLm1pbjtcclxuICAgICAgfVxyXG4gICAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLkZpbHRlclJhbmdlTWluXSA9IG1pbjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZmlsdGVyT3B0aW9ucy5tYXgpIHtcclxuICAgICAgbGV0IG1heDogc3RyaW5nIHwgbnVtYmVyO1xyXG4gICAgICBpZiAoZmlsdGVyT3B0aW9ucy5tYXggaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgICAgbWF4ID0gUGFyYW0uc2VyaWFsaXplRGF0ZUZvclBsYXRmb3JtKGZpbHRlck9wdGlvbnMubWF4KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBtYXggPSBmaWx0ZXJPcHRpb25zLm1heDtcclxuICAgICAgfVxyXG4gICAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLkZpbHRlclJhbmdlTWF4XSA9IG1heDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZmlsdGVyT3B0aW9ucy5udWxsT3B0aW9uKSB7XHJcbiAgICAgIGlmICghUGFyYW0uaXNWYWxpZEVudW1WYWx1ZTxDb250cmFjdC5GaWx0ZXJOdWxsT3B0aW9uPihmaWx0ZXJPcHRpb25zLm51bGxPcHRpb24sIENvbnRyYWN0LkZpbHRlck51bGxPcHRpb24pKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHZhbHVlIGZvciBwYXJhbWV0ZXIgTnVsbE9wdGlvbicpO1xyXG4gICAgICB9XHJcbiAgICAgIHBhcmFtZXRlcnNbUGFyYW1ldGVySWQuRmlsdGVyUmFuZ2VOdWxsT3B0aW9uXSA9IEV4dGVybmFsRW51bUNvbnZlcnRlci5udWxsT3B0aW9ucy5jb252ZXJ0KGZpbHRlck9wdGlvbnMubnVsbE9wdGlvbik7XHJcbiAgICB9XHJcbiAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLkZpZWxkTmFtZV0gPSBmaWVsZE5hbWU7XHJcbiAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLlZpc3VhbElkXSA9IHZpc3VhbElkO1xyXG5cclxuICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUodmVyYiwgcGFyYW1ldGVycykudGhlbjxzdHJpbmc+KHJlc3BvbnNlID0+IHtcclxuICAgICAgcmV0dXJuIGZpZWxkTmFtZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsZWFyRmlsdGVyQXN5bmModmlzdWFsSWQ6IFZpc3VhbElkLCBmaWVsZE5hbWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICBjb25zdCB2ZXJiID0gVmVyYklkLkNsZWFyRmlsdGVyO1xyXG4gICAgbGV0IHBhcmFtZXRlcnM6IEV4ZWN1dGVQYXJhbWV0ZXJzID0ge307XHJcbiAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLlZpc3VhbElkXSA9IHZpc3VhbElkO1xyXG4gICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5GaWVsZE5hbWVdID0gZmllbGROYW1lO1xyXG4gICAgcmV0dXJuIHRoaXMuX2Rpc3BhdGNoZXIuZXhlY3V0ZSh2ZXJiLCBwYXJhbWV0ZXJzKS50aGVuPHN0cmluZz4ocmVzcG9zbmUgPT4ge1xyXG4gICAgICByZXR1cm4gZmllbGROYW1lO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0RmlsdGVyc0FzeW5jKHZpc3VhbElkOiBWaXN1YWxJZCk6IFByb21pc2U8Q29udHJhY3QuRmlsdGVyW10+IHtcclxuICAgIGNvbnN0IHZlcmIgPSBWZXJiSWQuR2V0RmlsdGVycztcclxuICAgIGxldCBwYXJhbWV0ZXJzOiBFeGVjdXRlUGFyYW1ldGVycyA9IHt9O1xyXG4gICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5WaXN1YWxJZF0gPSB2aXN1YWxJZDtcclxuICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUodmVyYiwgcGFyYW1ldGVycykudGhlbjxDb250cmFjdC5GaWx0ZXJbXT4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICBsZXQgZmlsdGVycyA9IHJlc3BvbnNlLnJlc3VsdCBhcyBJbnRlcm5hbENvbnRyYWN0LkZpbHRlcltdO1xyXG4gICAgICByZXR1cm4gdGhpcy5jb252ZXJ0RG9tYWluRmlsdGVycyhmaWx0ZXJzKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gSGVscGVyIE1ldGhvZHNcclxuICBwcml2YXRlIGNvbnZlcnREb21haW5GaWx0ZXJzKGRvbWFpbkZpbHRlcnM6IEludGVybmFsQ29udHJhY3QuRmlsdGVyW10pOiBDb250cmFjdC5GaWx0ZXJbXSB7XHJcbiAgICBsZXQgZmlsdGVyczogQ29udHJhY3QuRmlsdGVyW10gPSBbXTtcclxuICAgIGRvbWFpbkZpbHRlcnMuZm9yRWFjaChkb21haW5GaWx0ZXIgPT4ge1xyXG4gICAgICBzd2l0Y2ggKGRvbWFpbkZpbHRlci5maWx0ZXJUeXBlKSB7XHJcbiAgICAgICAgY2FzZSBGaWx0ZXJUeXBlLkNhdGVnb3JpY2FsOiB7XHJcbiAgICAgICAgICBsZXQgZmlsdGVyID0gZG9tYWluRmlsdGVyIGFzIEludGVybmFsQ29udHJhY3QuQ2F0ZWdvcmljYWxGaWx0ZXI7XHJcbiAgICAgICAgICBpZiAoZmlsdGVyKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaCh0aGlzLmNvbnZlcnRDYXRlZ29yaWNhbEZpbHRlcihmaWx0ZXIpKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBDYXRlZ29yaWNhbCBGaWx0ZXInKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY2FzZSBGaWx0ZXJUeXBlLlJhbmdlOiB7XHJcbiAgICAgICAgICBsZXQgZmlsdGVyID0gZG9tYWluRmlsdGVyIGFzIEludGVybmFsQ29udHJhY3QuUmFuZ2VGaWx0ZXI7XHJcbiAgICAgICAgICBpZiAoZmlsdGVyKSB7XHJcbiAgICAgICAgICAgIGZpbHRlcnMucHVzaCh0aGlzLmNvbnZlcnRSYW5nZUZpbHRlcihmaWx0ZXIpKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBSYW5nZSBGaWx0ZXInKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY2FzZSBGaWx0ZXJUeXBlLlJlbGF0aXZlRGF0ZToge1xyXG4gICAgICAgICAgbGV0IGZpbHRlciA9IGRvbWFpbkZpbHRlciBhcyBJbnRlcm5hbENvbnRyYWN0LlJlbGF0aXZlRGF0ZUZpbHRlcjtcclxuICAgICAgICAgIGlmIChmaWx0ZXIpIHtcclxuICAgICAgICAgICAgZmlsdGVycy5wdXNoKHRoaXMuY29udmVydFJlbGF0aXZlRGF0ZUZpbHRlcihmaWx0ZXIpKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBSZWxhdGl2ZSBEYXRlIEZpbHRlcicpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkZWZhdWx0OiB7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGZpbHRlcnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnZlcnRDYXRlZ29yaWNhbEZpbHRlcihkb21haW5GaWx0ZXI6IEludGVybmFsQ29udHJhY3QuQ2F0ZWdvcmljYWxGaWx0ZXIpOiBDb250cmFjdC5DYXRlZ29yaWNhbEZpbHRlciB7XHJcbiAgICBsZXQgYXBwbGllZFZhbHVlczogQ29udHJhY3QuRGF0YVZhbHVlW10gPSBkb21haW5GaWx0ZXIudmFsdWVzLm1hcChkdiA9PiB7XHJcbiAgICAgIHJldHVybiBuZXcgRGF0YVZhbHVlKGR2LnZhbHVlLCBkdi5mb3JtYXR0ZWRWYWx1ZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gbmV3IENhdGVnb3JpY2FsRmlsdGVyKFxyXG4gICAgICBkb21haW5GaWx0ZXIudmlzdWFsSWQud29ya3NoZWV0LFxyXG4gICAgICBkb21haW5GaWx0ZXIuZmllbGRDYXB0aW9uLFxyXG4gICAgICBDb250cmFjdC5GaWx0ZXJUeXBlLkNhdGVnb3JpY2FsLFxyXG4gICAgICBhcHBsaWVkVmFsdWVzLFxyXG4gICAgICBkb21haW5GaWx0ZXIuaXNFeGNsdWRlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29udmVydFJhbmdlRmlsdGVyKGRvbWFpbkZpbHRlcjogSW50ZXJuYWxDb250cmFjdC5SYW5nZUZpbHRlcik6IENvbnRyYWN0LlJhbmdlRmlsdGVyIHtcclxuICAgIGxldCBtaW5WYWx1ZTogRGF0YVZhbHVlID0gbmV3IERhdGFWYWx1ZShkb21haW5GaWx0ZXIubWluLnZhbHVlLCBkb21haW5GaWx0ZXIubWluLmZvcm1hdHRlZFZhbHVlKTtcclxuICAgIGxldCBtYXhWYWx1ZTogRGF0YVZhbHVlID0gbmV3IERhdGFWYWx1ZShkb21haW5GaWx0ZXIubWF4LnZhbHVlLCBkb21haW5GaWx0ZXIubWF4LmZvcm1hdHRlZFZhbHVlKTtcclxuICAgIHJldHVybiBuZXcgUmFuZ2VGaWx0ZXIoXHJcbiAgICAgIGRvbWFpbkZpbHRlci52aXN1YWxJZC53b3Jrc2hlZXQsXHJcbiAgICAgIGRvbWFpbkZpbHRlci5maWVsZENhcHRpb24sXHJcbiAgICAgIENvbnRyYWN0LkZpbHRlclR5cGUuUmFuZ2UsXHJcbiAgICAgIG1pblZhbHVlLFxyXG4gICAgICBtYXhWYWx1ZSxcclxuICAgICAgZG9tYWluRmlsdGVyLmluY2x1ZGVOdWxsVmFsdWVzXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb252ZXJ0UmVsYXRpdmVEYXRlRmlsdGVyKGRvbWFpbkZpbHRlcjogSW50ZXJuYWxDb250cmFjdC5SZWxhdGl2ZURhdGVGaWx0ZXIpOiBDb250cmFjdC5SZWxhdGl2ZURhdGVGaWx0ZXIge1xyXG4gICAgbGV0IGFuY2hvckRhdGVWYWx1ZTogRGF0YVZhbHVlID0gbmV3IERhdGFWYWx1ZShkb21haW5GaWx0ZXIuYW5jaG9yRGF0ZS52YWx1ZSwgZG9tYWluRmlsdGVyLmFuY2hvckRhdGUuZm9ybWF0dGVkVmFsdWUpO1xyXG4gICAgcmV0dXJuIG5ldyBSZWxhdGl2ZURhdGVGaWx0ZXIgKFxyXG4gICAgICBkb21haW5GaWx0ZXIudmlzdWFsSWQud29ya3NoZWV0LFxyXG4gICAgICBkb21haW5GaWx0ZXIuZmllbGRDYXB0aW9uLFxyXG4gICAgICBDb250cmFjdC5GaWx0ZXJUeXBlLlJlbGF0aXZlRGF0ZSxcclxuICAgICAgYW5jaG9yRGF0ZVZhbHVlLFxyXG4gICAgICBJbnRlcm5hbEVudW1Db252ZXJ0ZXIuZGF0ZVN0ZXBQZXJpb2QuY29udmVydChkb21haW5GaWx0ZXIucGVyaW9kVHlwZSksXHJcbiAgICAgIEludGVybmFsRW51bUNvbnZlcnRlci5kYXRlUmFuZ2VUeXBlLmNvbnZlcnQoZG9tYWluRmlsdGVyLnJhbmdlVHlwZSksXHJcbiAgICAgIGRvbWFpbkZpbHRlci5yYW5nZU5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9pbXBsL0ZpbHRlclNlcnZpY2VJbXBsLnRzXG4gKiovIiwiLyoqXG4gKiBUaGlzIGlzIHlvdXIgbWFpbi4gVGhpcyBpcyB3aGVyZSB5b3UgcmUtZXhwb3J0IGV2ZXJ5dGhpbmcgeW91IHdhbnQgdG8gYmUgcHVibGljbHkgYXZhaWxhYmxlLlxuICpcbiAqIFRoZSBidWlsZCBlbmZvcmNlcyB0aGF0IHRoZSBmaWxlIGhhcyB0aGUgc2FtZSBuYW1lIGFzIHRoZSBnbG9iYWwgdmFyaWFibGUgdGhhdCBpcyBleHBvcnRlZC5cbiAqL1xuXG5leHBvcnQgeyBFbnVtQ29udmVydGVyIH0gZnJvbSAnLi9FbnVtQ29udmVydGVyJztcbmV4cG9ydCB7IFBhcmFtIH0gZnJvbSAnLi9QYXJhbSc7XG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvdHlwZXNjcmlwdC9qcy1hcGkvYXBpLXV0aWxzL3NyYy9BcGlVdGlscy50c1xuICoqLyIsIi8qKlxyXG4gKiBUaGlzIGNsYXNzIGNvbnZlcnRzIGZyb20gYSBzb3VyY2UgZW51bSB2YWx1ZSB0byBkZXN0aW5hdGlvbiBlbnVtXHJcbiAqIHZhbHVlIGdpdmVuIGEgbWFwcGluZyBmcm9tIHNvdXJjZSB0byBkZXN0aW5hdGlvbiB3aGVuIGNvbnN0cnVjdGVkLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEVudW1Db252ZXJ0ZXI8VFNvdXJjZVR5cGUgZXh0ZW5kcyBzdHJpbmcsIFREZXN0aW5hdGlvblR5cGU+IHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9tYXBwaW5nczogeyBbZW51bVZhbDogc3RyaW5nXTogVERlc3RpbmF0aW9uVHlwZTsgfSxcclxuICAgIHByaXZhdGUgX2RlZmF1bHRWYWw/OiBURGVzdGluYXRpb25UeXBlKSB7IH1cclxuXHJcbiAgcHVibGljIGNvbnZlcnQoZW51bVZhbDogVFNvdXJjZVR5cGUsIHRocm93SWZNaXNzaW5nPzogYm9vbGVhbik6IFREZXN0aW5hdGlvblR5cGUge1xyXG4gICAgaWYgKHRoaXMuX21hcHBpbmdzLmhhc093blByb3BlcnR5KGVudW1WYWwpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9tYXBwaW5nc1tlbnVtVmFsIGFzIHN0cmluZ107XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuX2RlZmF1bHRWYWwgIT09IHVuZGVmaW5lZCAmJiAhdGhyb3dJZk1pc3NpbmcpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2RlZmF1bHRWYWw7XHJcbiAgICB9XHJcblxyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdNYXBwaW5nIG5vdCBmb3VuZCBmb3IgJyArIGVudW1WYWwpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvdHlwZXNjcmlwdC9qcy1hcGkvYXBpLXV0aWxzL3NyYy9FbnVtQ29udmVydGVyLnRzXG4gKiovIiwiZXhwb3J0IGNsYXNzIFBhcmFtIHtcclxuICAvKipcclxuICAgKiBWZXJpZmllcyB0aGF0IGFuIGluY29taW5nIHBhcmFtZXRlciBpcyAndHJ1dGh5JyBhbmQgdGhyb3dzXHJcbiAgICogYW4gZXJyb3IgaWYgaXQncyBub3QuIFRoaXMgd2lsbCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgdmFsdWVcclxuICAgKiBpcyBudWxsLCB1bmRlZmluZWQsIE5hTiwgdGhlIGVtcHR5IHN0cmluZywgMCwgb3IgZmFsc2UuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gYXJndW1lbnRWYWx1ZSB2YWx1ZSB0byB2ZXJpZnlcclxuICAgKiBAcGFyYW0gYXJndW1lbnROYW1lIG5hbWUgb2YgYXJndW1lbnQgdG8gdmVyaWZ5XHJcbiAgICovXHJcbiAgLyp0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmUgKi9cclxuICBwdWJsaWMgc3RhdGljIHZlcmlmeVZhbHVlKGFyZ3VtZW50VmFsdWU6IGFueSwgYXJndW1lbnROYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICghYXJndW1lbnRWYWx1ZSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1ZhbHVlIGlzIGludmFsaWQgZm9yIGFyZ3VtZW50OiAnICsgYXJndW1lbnROYW1lKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFZlcmlmaWVzIHRoYXQgYSBzdHJpbmcgaXMgdmFsaWQuICBUaHJvd3MgYW4gZXJyb3IgaWYgdGhlIHN0cmluZyBpc1xyXG4gICAqIG51bGwsIHVuZGVmaW5lZCwgb3IgTmFOLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGFyZ3VtZW50VmFsdWUgdmFsdWUgdG8gdmVyaWZ5XHJcbiAgICogQHBhcmFtIGFyZ3VtZW50TmFtZSBuYW1lIG9mIGFyZ3VtZW50IHRvIHZlcmlmeVxyXG4gICAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgdmVyaWZ5U3RyaW5nKGFyZ3VtZW50VmFsdWU6IHN0cmluZywgYXJndW1lbnROYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmIChhcmd1bWVudFZhbHVlID09PSBudWxsIHx8IGFyZ3VtZW50VmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1N0cmluZyB2YWx1ZSBpcyBpbnZhbGlkIGZvciBhcmd1bWVudDogJyArIGFyZ3VtZW50TmFtZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWZXJpZmllcyB0aGUgdmFsdWUgaXMgcGFydCBvZiB0aGUgRW51bVxyXG4gICAqXHJcbiAgICogU3RyaW5nIGVudW1zIGFyZSB7c3RyaW5nIDogc3RyaW5nfSBkaWN0aW9uYXJpZXMgd2hpY2ggYXJlIG5vdCByZXZlcnNlIG1hcHBhYmxlXHJcbiAgICogVGhpcyBpcyBhbiB1Z2x5IHdvcmthcm91bmRcclxuICAgKiBAcGFyYW0gdmFsdWUgdmFsdWUgdG8gdmVyaWZ5XHJcbiAgICogQHBhcmFtIGVudW1UeXBlIGVudW0gdG8gdmVyaWZ5IGFnYWluc3RcclxuICAgKi9cclxuICAvKiB0c2xpbnQ6ZGlzYWJsZTpuby1hbnkgKi9cclxuICBwdWJsaWMgc3RhdGljIGlzVmFsaWRFbnVtVmFsdWU8RW51bVR5cGU+KHZhbHVlOiBFbnVtVHlwZSwgZW51bVR5cGU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGlzVmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIE9iamVjdC5rZXlzKGVudW1UeXBlKS5mb3JFYWNoKChlbnVtS2V5KSA9PiB7XHJcbiAgICAgIGlmIChlbnVtVHlwZVtlbnVtS2V5XSA9PT0gdmFsdWUudG9TdHJpbmcoKSkge1xyXG4gICAgICAgIGlzVmFsaWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBpc1ZhbGlkO1xyXG4gIH1cclxuICAvKiB0c2xpbnQ6ZW5hYmxlOm5vLWFueSAqL1xyXG5cclxuICAvKipcclxuICAgKiBzZXJpYWxpemVzIHRoZSBkYXRlIGludG8gdGhlIGZvcm1hdCB0aGF0IHRoZSBzZXJ2ZXIgZXhwZWN0cy5cclxuICAgKiBAcGFyYW0gZGF0ZSB0aGUgZGF0ZSB0byBzZXJpYWxpemVcclxuICAgKi9cclxuICBwdWJsaWMgc3RhdGljIHNlcmlhbGl6ZURhdGVGb3JQbGF0Zm9ybShkYXRlOiBEYXRlKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHllYXI6IG51bWJlciA9IGRhdGUuZ2V0VVRDRnVsbFllYXIoKTtcclxuICAgIGNvbnN0IG1vbnRoOiBudW1iZXIgPSBkYXRlLmdldFVUQ01vbnRoKCkgKyAxO1xyXG4gICAgY29uc3QgZGF5OiBudW1iZXIgPSBkYXRlLmdldFVUQ0RhdGUoKTtcclxuICAgIGNvbnN0IGhoOiBudW1iZXIgPSBkYXRlLmdldFVUQ0hvdXJzKCk7XHJcbiAgICBjb25zdCBtbTogbnVtYmVyID0gZGF0ZS5nZXRVVENNaW51dGVzKCk7XHJcbiAgICBjb25zdCBzZWM6IG51bWJlciA9IGRhdGUuZ2V0VVRDU2Vjb25kcygpO1xyXG4gICAgcmV0dXJuIHllYXIgKyAnLScgKyBtb250aCArICctJyArIGRheSArICcgJyArIGhoICsgJzonICsgbW0gKyAnOicgKyBzZWM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIHNlcmlhbGl6ZUJvb2xlYW5Gb3JQbGF0Zm9ybShib29sOiBib29sZWFuKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBib29sID8gJ3RydWUnIDogJ2ZhbHNlJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgc2VyaWFsaXplTnVtYmVyRm9yUGxhdGZvcm0obnVtOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIG51bS50b1N0cmluZygxMCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWZXJpZmllcyB0aGUgcGFyYW1zIG1pbiBhbmQgbWF4IGZvciBhcHBseWluZyByYW5nZSBmaWx0ZXJcclxuICAgKiBAcGFyYW0gbWluIHJhbmdlIG1pblxyXG4gICAqIEBwYXJhbSBtYXggcmFuZ2UgbWF4XHJcbiAgICovXHJcbiAgLyogdHNsaW50OmRpc2FibGU6bm8tYW55ICovXHJcbiAgcHVibGljIHN0YXRpYyB2ZXJpZnlSYW5nZVBhcmFtVHlwZShtaW46IGFueSwgbWF4OiBhbnkpOiB2b2lkIHtcclxuICAvKiB0c2xpbnQ6ZW5hYmxlOm5vLWFueSAqL1xyXG4gICAgaWYgKCFtaW4gJiYgIW1heCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgUGFyYW1ldGVyOiBBdCBsZWFzdCBvbmUgb2YgbWluIG9yIG1heCBpcyByZXF1aXJlZCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghUGFyYW0uaXNUeXBlTnVtYmVyKG1pbikgJiYgIVBhcmFtLmlzVHlwZURhdGUobWluKSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgUGFyYW1ldGVyIFR5cGU6IE9ubHkgRGF0ZSBhbmQgbnVtYmVyIGFyZSBhbGxvd2VkIGZvciBwYXJhbWV0ZXIgbWluJyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFQYXJhbS5pc1R5cGVOdW1iZXIobWF4KSAmJiAhUGFyYW0uaXNUeXBlRGF0ZShtYXgpKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBQYXJhbWV0ZXIgVHlwZTogT25seSBEYXRlIGFuZCBudW1iZXIgYXJlIGFsbG93ZWQgZm9yIHBhcmFtZXRlciBtYXgnKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodHlwZW9mKG1pbikgIT09IHR5cGVvZihtYXgpKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBQYXJhbWV0ZXIgVHlwZTogUGFyYW1ldGVycyBtaW4gYW5kIG1heCBzaG91bGQgYmUgb2YgdGhlIHNhbWUgdHlwZScpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmVyaWZpZXMgdGhlIGlucHV0IGlzIGEgbnVtYmVyXHJcbiAgICovXHJcbiAgLyogdHNsaW50OmRpc2FibGU6bm8tYW55ICovXHJcbiAgcHVibGljIHN0YXRpYyBpc1R5cGVOdW1iZXIoaW5wdXQ6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHR5cGVvZihpbnB1dCkgPT09ICdudW1iZXInIHx8IGlucHV0IGluc3RhbmNlb2YgTnVtYmVyO1xyXG4gIH1cclxuICAvKiB0c2xpbnQ6ZW5hYmxlOm5vLWFueSAqL1xyXG5cclxuICAvKipcclxuICAgKiBWZXJpZmllcyB0aGUgaW5wdXQgaXMgYSBEYXRlXHJcbiAgICovXHJcbiAgLyogdHNsaW50OmRpc2FibGU6bm8tYW55ICovXHJcbiAgcHVibGljIHN0YXRpYyBpc1R5cGVEYXRlKGlucHV0OiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiBpbnB1dCBpbnN0YW5jZW9mIERhdGU7XHJcbiAgfVxyXG4gIC8qIHRzbGludDplbmFibGU6bm8tYW55ICovXHJcblxyXG4gIC8qIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnkgKi9cclxuICBwdWJsaWMgc3RhdGljIGlzVHlwZVN0cmluZyhpbnB1dDogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHlwZW9mKGlucHV0KSA9PT0gJ3N0cmluZycgfHwgaW5wdXQgaW5zdGFuY2VvZiBTdHJpbmc7XHJcbiAgfVxyXG5cclxuICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55ICovXHJcbiAgcHVibGljIHN0YXRpYyBpc1R5cGVCb29sKGlucHV0OiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0eXBlb2YoaW5wdXQpID09PSAnYm9vbGVhbicgfHwgaW5wdXQgaW5zdGFuY2VvZiBCb29sZWFuO1xyXG4gIH1cclxuXHJcbiAgLyogdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueSAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgc2VyaWFsaXplUGFyYW10ZXJWYWx1ZSh2YWx1ZTogYW55KTogc3RyaW5nIHtcclxuICAgIGlmIChQYXJhbS5pc1R5cGVOdW1iZXIodmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiBQYXJhbS5zZXJpYWxpemVOdW1iZXJGb3JQbGF0Zm9ybSh2YWx1ZSBhcyBudW1iZXIpO1xyXG4gICAgfSBlbHNlIGlmIChQYXJhbS5pc1R5cGVEYXRlKHZhbHVlKSkge1xyXG4gICAgICByZXR1cm4gUGFyYW0uc2VyaWFsaXplRGF0ZUZvclBsYXRmb3JtKHZhbHVlIGFzIERhdGUpO1xyXG4gICAgfSBlbHNlIGlmIChQYXJhbS5pc1R5cGVCb29sKHZhbHVlKSkge1xyXG4gICAgICByZXR1cm4gUGFyYW0uc2VyaWFsaXplQm9vbGVhbkZvclBsYXRmb3JtKHZhbHVlIGFzIGJvb2xlYW4pO1xyXG4gICAgfSBlbHNlIGlmIChQYXJhbS5pc1R5cGVTdHJpbmcodmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignVmFsdWUgaXMgaW52YWxpZCBmb3IgYXJndW1lbnQ6IHZhbHVlJyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktdXRpbHMvc3JjL1BhcmFtLnRzXG4gKiovIiwiaW1wb3J0IHsgRmlsdGVyTnVsbE9wdGlvbiBhcyBFeHRlcm5hbE51bGxPcHRpb24gfSBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBGaWx0ZXJOdWxsT3B0aW9uIGFzIEludGVybmFsTnVsbE9wdGlvbiB9IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBFbnVtQ29udmVydGVyIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXV0aWxzJztcclxuXHJcbi8qIHRzbGludDpkaXNhYmxlOnR5cGVkZWYgLSBEaXNhYmxlIHRoaXMgdG8gbWFrZSBkZWNsYXJpbmcgdGhlc2UgY2xhc3NlcyBhIGJpdCBlYXNpZXIgKi9cclxuLyoqXHJcbiAqIE1hcHMgZW51bXMgdXNlZCBieSB0aGUgZXh0ZXJuYWwtYXBpLWNvbnRyYWN0IHRvIHRoZSBlbnVtcyB1c2VkXHJcbiAqIGluIHRoZSBpbnRlcm5hbC1hcGktY29udHJhY3QsIHdoaWNoIGRldmVsb3BlcnMgY29kZSBhZ2FpbnN0LlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEV4dGVybmFsVG9JbnRlcm5hbEVudW1NYXBwaW5ncyB7XHJcbiAgcHVibGljIHN0YXRpYyBudWxsT3B0aW9ucyA9IG5ldyBFbnVtQ29udmVydGVyPEV4dGVybmFsTnVsbE9wdGlvbiwgSW50ZXJuYWxOdWxsT3B0aW9uPih7XHJcbiAgICBbRXh0ZXJuYWxOdWxsT3B0aW9uLkFsbFZhbHVlc106IEludGVybmFsTnVsbE9wdGlvbi5BbGxWYWx1ZXMsXHJcbiAgICBbRXh0ZXJuYWxOdWxsT3B0aW9uLk5vbk51bGxWYWx1ZXNdOiBJbnRlcm5hbE51bGxPcHRpb24uTm9uTnVsbFZhbHVlcyxcclxuICAgIFtFeHRlcm5hbE51bGxPcHRpb24uTm9uTnVsbFZhbHVlc106IEludGVybmFsTnVsbE9wdGlvbi5OdWxsVmFsdWVzXHJcbiAgfSk7XHJcbn1cclxuLyogdHNsaW50OmVuYWJsZTp0eXBlZGVmICovXHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9FbnVtTWFwcGluZ3MvRXh0ZXJuYWxUb0ludGVybmFsRW51bU1hcHBpbmdzLnRzXG4gKiovIiwiaW1wb3J0IHtcclxuICBBZGRJbkNvbnRleHQgYXMgRXh0ZXJuYWxBZGRJbkNvbnRleHQsXHJcbiAgQWRkSW5Nb2RlIGFzIEV4dGVybmFsQWRkSW5Nb2RlLFxyXG4gIENvbHVtblR5cGUgYXMgRXh0ZXJuYWxDb2x1bW5UeXBlLFxyXG4gIERhc2hib2FyZE9iamVjdFR5cGUgYXMgRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLFxyXG4gIERhdGFUeXBlIGFzIEV4dGVybmFsRGF0YVR5cGUsXHJcbiAgRGF0ZVJhbmdlVHlwZSBhcyBFeHRlcm5hbERhdGVSYW5nZVR5cGUsXHJcbiAgRmllbGRBZ2dyZWdhdGlvblR5cGUgYXMgRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZSxcclxuICBGaWVsZFJvbGVUeXBlIGFzIEV4dGVybmFsRmllbGRSb2xlVHlwZSxcclxuICBGaWx0ZXJUeXBlIGFzIEV4dGVybmFsRmlsdGVyVHlwZSxcclxuICBGaWx0ZXJVcGRhdGVUeXBlIGFzIEV4dGVybmFsRmlsdGVyVXBkYXRlVHlwZSxcclxuICBQYXJhbWV0ZXJWYWx1ZVR5cGUgYXMgRXh0ZXJuYWxQYXJhbWV0ZXJWYWx1ZVR5cGUsXHJcbiAgUGVyaW9kVHlwZSBhcyBFeHRlcm5hbERhdGVQZXJpb2QsXHJcbiAgU2hlZXRUeXBlIGFzIEV4dGVybmFsU2hlZXRUeXBlLFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7XHJcbiAgQWRkSW5Db250ZXh0IGFzIEludGVybmFsQWRkSW5Db250ZXh0LFxyXG4gIEFkZEluTW9kZSBhcyBJbnRlcm5hbEFkZEluTW9kZSxcclxuICBDb2x1bW5UeXBlIGFzIEludGVybmFsQ29sdW1uVHlwZSxcclxuICBEYXNoYm9hcmRPYmplY3RUeXBlIGFzIEludGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZSxcclxuICBEYXRhVHlwZSBhcyBJbnRlcm5hbERhdGFUeXBlLFxyXG4gIERhdGVSYW5nZVR5cGUgYXMgSW50ZXJuYWxEYXRlUmFuZ2VUeXBlLFxyXG4gIERhdGVTdGVwUGVyaW9kIGFzIEludGVybmFsRGF0ZVN0ZXBQZXJpb2QsXHJcbiAgRG9tYWluUmVzdHJpY3Rpb25UeXBlIGFzIEludGVybmFsRG9tYWluUmVzdHJpY3Rpb25UeXBlLFxyXG4gIEZpZWxkQWdncmVnYXRpb25UeXBlIGFzIEludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUsXHJcbiAgRmllbGRSb2xlVHlwZSBhcyBJbnRlcm5hbEZpZWxkUm9sZVR5cGUsXHJcbiAgRmlsdGVyVHlwZSBhcyBJbnRlcm5hbEZpbHRlclR5cGUsXHJcbiAgRmlsdGVyVXBkYXRlVHlwZSBhcyBJbnRlcm5hbEZpbHRlclVwZGF0ZVR5cGUsXHJcbiAgU2hlZXRUeXBlIGFzIEludGVybmFsU2hlZXRUeXBlLFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IEVudW1Db252ZXJ0ZXIgfSBmcm9tICdAdGFibGVhdS9hcGktdXRpbHMnO1xyXG5cclxuLyogdHNsaW50OmRpc2FibGU6dHlwZWRlZiAtIERpc2FibGUgdGhpcyB0byBtYWtlIGRlY2xhcmluZyB0aGVzZSBjbGFzc2VzIGEgYml0IGVhc2llciAqL1xyXG4vKipcclxuICogTWFwcyBlbnVtcyB1c2VkIGJ5IHRoZSBpbnRlcm5hbC1hcGktY29udHJhY3QgdG8gdGhlIGVudW1zIHVzZWRcclxuICogaW4gdGhlIGV4dGVybmFsLWFwaS1jb250cmFjdCwgd2hpY2ggZGV2ZWxvcGVycyBjb2RlIGFnYWluc3QuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzIHtcclxuICBwdWJsaWMgc3RhdGljIGFkZEluQ29udGV4dCA9IG5ldyBFbnVtQ29udmVydGVyPEludGVybmFsQWRkSW5Db250ZXh0LCBFeHRlcm5hbEFkZEluQ29udGV4dD4oe1xyXG4gICAgW0ludGVybmFsQWRkSW5Db250ZXh0LkRlc2t0b3BdOiBFeHRlcm5hbEFkZEluQ29udGV4dC5EZXNrdG9wLFxyXG4gICAgW0ludGVybmFsQWRkSW5Db250ZXh0LlNlcnZlcl06IEV4dGVybmFsQWRkSW5Db250ZXh0LlNlcnZlclxyXG4gIH0pO1xyXG5cclxuICBwdWJsaWMgc3RhdGljIGFkZEluTW9kZSA9IG5ldyBFbnVtQ29udmVydGVyPEludGVybmFsQWRkSW5Nb2RlLCBFeHRlcm5hbEFkZEluTW9kZT4oe1xyXG4gICAgW0ludGVybmFsQWRkSW5Nb2RlLkF1dGhvcmluZ106IEV4dGVybmFsQWRkSW5Nb2RlLkF1dGhvcmluZyxcclxuICAgIFtJbnRlcm5hbEFkZEluTW9kZS5WaWV3aW5nXTogRXh0ZXJuYWxBZGRJbk1vZGUuVmlld2luZ1xyXG4gIH0pO1xyXG5cclxuICBwdWJsaWMgc3RhdGljIGNvbHVtblR5cGUgPSBuZXcgRW51bUNvbnZlcnRlcjxJbnRlcm5hbENvbHVtblR5cGUsIEV4dGVybmFsQ29sdW1uVHlwZT4oe1xyXG4gICAgW0ludGVybmFsQ29sdW1uVHlwZS5Db250aW51b3VzXTogRXh0ZXJuYWxDb2x1bW5UeXBlLkNvbnRpbnVvdXMsXHJcbiAgICBbSW50ZXJuYWxDb2x1bW5UeXBlLkRpc2NyZXRlXTogRXh0ZXJuYWxDb2x1bW5UeXBlLkRpc2NyZXRlXHJcbiAgfSk7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZmllbGRBZ2dyZWdhdGlvblR5cGUgPSBuZXcgRW51bUNvbnZlcnRlcjxJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLCBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlPih7XHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5BdHRyXTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5BdHRyLFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuQXZnXTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5BdmcsXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5Db3VudF06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuQ291bnQsXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5Db3VudGRdOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLkNvdW50ZCxcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLkRheV06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuRGF5LFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuRW5kXTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5FbmQsXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5Ib3VyXTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5Ib3VyLFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuSW5PdXRdOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLkluT3V0LFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuS3VydG9zaXNdOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLkt1cnRvc2lzLFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuTWF4XTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5NYXgsXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5NZHldOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLk1keSxcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLk1lZGlhbl06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuTWVkaWFuLFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuTWluXTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5NaW4sXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5NaW51dGVdOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLk1pbnV0ZSxcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLk1vbnRoWWVhcl06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuTW9udGhZZWFyLFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuTm9uZV06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuTm9uZSxcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlF0cl06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuUXRyLFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuUXVhcnQxXTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5RdWFydDEsXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5RdWFydDNdOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlF1YXJ0MyxcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlNlY29uZF06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuU2Vjb25kLFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuU2tld25lc3NdOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlNrZXduZXNzLFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuU3RkZXZdOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlN0ZGV2LFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuU3RkZXZwXTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5TdGRldnAsXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5TdW1dOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlN1bSxcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jRGF5XTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY0RheSxcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jSG91cl06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuVHJ1bmNIb3VyLFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuVHJ1bmNNaW51dGVdOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jTWludXRlLFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuVHJ1bmNNb250aF06IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuVHJ1bmNNb250aCxcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jUXRyXTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY1F0cixcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jU2Vjb25kXTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY1NlY29uZCxcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jV2Vla106IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuVHJ1bmNXZWVrLFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuVHJ1bmNZZWFyXTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY1llYXIsXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5Vc2VyXTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5Vc2VyLFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuVmFyXTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5WYXIsXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5WYXJwXTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5WYXJwLFxyXG4gICAgW0ludGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuV2Vla106IEV4dGVybmFsRmllbGRBZ2dyZWdhdGlvblR5cGUuV2VlayxcclxuICAgIFtJbnRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLldlZWtkYXldOiBFeHRlcm5hbEZpZWxkQWdncmVnYXRpb25UeXBlLldlZWtkYXksXHJcbiAgICBbSW50ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5ZZWFyXTogRXh0ZXJuYWxGaWVsZEFnZ3JlZ2F0aW9uVHlwZS5ZZWFyLFxyXG4gIH0pO1xyXG5cclxuICBwdWJsaWMgc3RhdGljIGZpZWxkUm9sZVR5cGUgPSBuZXcgRW51bUNvbnZlcnRlcjxJbnRlcm5hbEZpZWxkUm9sZVR5cGUsIEV4dGVybmFsRmllbGRSb2xlVHlwZT4oe1xyXG4gICAgW0ludGVybmFsRmllbGRSb2xlVHlwZS5EaW1lbnNpb25dOiBFeHRlcm5hbEZpZWxkUm9sZVR5cGUuRGltZW5zaW9uLFxyXG4gICAgW0ludGVybmFsRmllbGRSb2xlVHlwZS5NZWFzdXJlXTogRXh0ZXJuYWxGaWVsZFJvbGVUeXBlLk1lYXN1cmUsXHJcbiAgICBbSW50ZXJuYWxGaWVsZFJvbGVUeXBlLlVua25vd25dOiBFeHRlcm5hbEZpZWxkUm9sZVR5cGUuVW5rbm93bixcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBzaGVldFR5cGUgPSBuZXcgRW51bUNvbnZlcnRlcjxJbnRlcm5hbFNoZWV0VHlwZSwgRXh0ZXJuYWxTaGVldFR5cGU+KHtcclxuICAgIFtJbnRlcm5hbFNoZWV0VHlwZS5EYXNoYm9hcmRdOiBFeHRlcm5hbFNoZWV0VHlwZS5EYXNoYm9hcmQsXHJcbiAgICBbSW50ZXJuYWxTaGVldFR5cGUuU3RvcnldOiBFeHRlcm5hbFNoZWV0VHlwZS5TdG9yeSxcclxuICAgIFtJbnRlcm5hbFNoZWV0VHlwZS5Xb3Jrc2hlZXRdOiBFeHRlcm5hbFNoZWV0VHlwZS5Xb3Jrc2hlZXRcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBkYXNoYm9hcmRPYmplY3RUeXBlID0gbmV3IEVudW1Db252ZXJ0ZXI8SW50ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLCBFeHRlcm5hbERhc2hib2FyZE9iamVjdFR5cGU+KHtcclxuICAgIFtJbnRlcm5hbERhc2hib2FyZE9iamVjdFR5cGUuQWRkSW5dOiBFeHRlcm5hbERhc2hib2FyZE9iamVjdFR5cGUuQWRkSW4sXHJcbiAgICBbSW50ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLkJsYW5rXTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLkJsYW5rLFxyXG4gICAgW0ludGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5JbWFnZV06IEV4dGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5JbWFnZSxcclxuICAgIFtJbnRlcm5hbERhc2hib2FyZE9iamVjdFR5cGUuTGVnZW5kXTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLkxlZ2VuZCxcclxuICAgIFtJbnRlcm5hbERhc2hib2FyZE9iamVjdFR5cGUuUGFnZUZpbHRlcl06IEV4dGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5QYWdlRmlsdGVyLFxyXG4gICAgW0ludGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5QYXJhbWV0ZXJDb250cm9sXTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLlBhcmFtZXRlckNvbnRyb2wsXHJcbiAgICBbSW50ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLlF1aWNrRmlsdGVyXTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLlF1aWNrRmlsdGVyLFxyXG4gICAgW0ludGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5UZXh0XTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLlRleHQsXHJcbiAgICBbSW50ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLlRpdGxlXTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLlRpdGxlLFxyXG4gICAgW0ludGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5XZWJQYWdlXTogRXh0ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLldlYlBhZ2UsXHJcbiAgICBbSW50ZXJuYWxEYXNoYm9hcmRPYmplY3RUeXBlLldvcmtzaGVldF06IEV4dGVybmFsRGFzaGJvYXJkT2JqZWN0VHlwZS5Xb3Jrc2hlZXRcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBkYXRhVHlwZSA9IG5ldyBFbnVtQ29udmVydGVyPEludGVybmFsRGF0YVR5cGUsIEV4dGVybmFsRGF0YVR5cGU+KHtcclxuICAgIFtJbnRlcm5hbERhdGFUeXBlLkJvb2xdOiBFeHRlcm5hbERhdGFUeXBlLkJvb2wsXHJcbiAgICBbSW50ZXJuYWxEYXRhVHlwZS5EYXRlXTogRXh0ZXJuYWxEYXRhVHlwZS5EYXRlLFxyXG4gICAgW0ludGVybmFsRGF0YVR5cGUuRGF0ZVRpbWVdOiBFeHRlcm5hbERhdGFUeXBlLkRhdGVUaW1lLFxyXG4gICAgW0ludGVybmFsRGF0YVR5cGUuRmxvYXRdOiBFeHRlcm5hbERhdGFUeXBlLkZsb2F0LFxyXG4gICAgW0ludGVybmFsRGF0YVR5cGUuSW50XTogRXh0ZXJuYWxEYXRhVHlwZS5JbnQsXHJcbiAgICBbSW50ZXJuYWxEYXRhVHlwZS5TdHJpbmddOiBFeHRlcm5hbERhdGFUeXBlLlN0cmluZ1xyXG4gIH0pO1xyXG5cclxuICBwdWJsaWMgc3RhdGljIGZpbHRlclVwZGF0ZVR5cGUgPSBuZXcgRW51bUNvbnZlcnRlcjxJbnRlcm5hbEZpbHRlclVwZGF0ZVR5cGUsIEV4dGVybmFsRmlsdGVyVXBkYXRlVHlwZT4oe1xyXG4gICAgW0ludGVybmFsRmlsdGVyVXBkYXRlVHlwZS5BZGRdOiBFeHRlcm5hbEZpbHRlclVwZGF0ZVR5cGUuQWRkLFxyXG4gICAgW0ludGVybmFsRmlsdGVyVXBkYXRlVHlwZS5BbGxdOiBFeHRlcm5hbEZpbHRlclVwZGF0ZVR5cGUuQWxsLFxyXG4gICAgW0ludGVybmFsRmlsdGVyVXBkYXRlVHlwZS5SZW1vdmVdOiBFeHRlcm5hbEZpbHRlclVwZGF0ZVR5cGUuUmVtb3ZlLFxyXG4gICAgW0ludGVybmFsRmlsdGVyVXBkYXRlVHlwZS5SZXBsYWNlXTogRXh0ZXJuYWxGaWx0ZXJVcGRhdGVUeXBlLlJlcGxhY2VcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBhbGxvd2FibGVWYWx1ZXMgPSBuZXcgRW51bUNvbnZlcnRlcjxJbnRlcm5hbERvbWFpblJlc3RyaWN0aW9uVHlwZSwgRXh0ZXJuYWxQYXJhbWV0ZXJWYWx1ZVR5cGU+KHtcclxuICAgIFtJbnRlcm5hbERvbWFpblJlc3RyaWN0aW9uVHlwZS5BbGxdOiBFeHRlcm5hbFBhcmFtZXRlclZhbHVlVHlwZS5BbGwsXHJcbiAgICBbSW50ZXJuYWxEb21haW5SZXN0cmljdGlvblR5cGUuTGlzdF06IEV4dGVybmFsUGFyYW1ldGVyVmFsdWVUeXBlLkxpc3QsXHJcbiAgICBbSW50ZXJuYWxEb21haW5SZXN0cmljdGlvblR5cGUuUmFuZ2VdOiBFeHRlcm5hbFBhcmFtZXRlclZhbHVlVHlwZS5SYW5nZVxyXG4gIH0pO1xyXG5cclxuICBwdWJsaWMgc3RhdGljIGRhdGVTdGVwUGVyaW9kID0gbmV3IEVudW1Db252ZXJ0ZXI8SW50ZXJuYWxEYXRlU3RlcFBlcmlvZCwgRXh0ZXJuYWxEYXRlUGVyaW9kPih7XHJcbiAgICBbSW50ZXJuYWxEYXRlU3RlcFBlcmlvZC5ZZWFyc106IEV4dGVybmFsRGF0ZVBlcmlvZC5ZZWFycyxcclxuICAgIFtJbnRlcm5hbERhdGVTdGVwUGVyaW9kLlF1YXJ0ZXJzXTogRXh0ZXJuYWxEYXRlUGVyaW9kLlF1YXJ0ZXJzLFxyXG4gICAgW0ludGVybmFsRGF0ZVN0ZXBQZXJpb2QuTW9udGhzXTogRXh0ZXJuYWxEYXRlUGVyaW9kLk1vbnRocyxcclxuICAgIFtJbnRlcm5hbERhdGVTdGVwUGVyaW9kLldlZWtzXTogRXh0ZXJuYWxEYXRlUGVyaW9kLldlZWtzLFxyXG4gICAgW0ludGVybmFsRGF0ZVN0ZXBQZXJpb2QuRGF5c106IEV4dGVybmFsRGF0ZVBlcmlvZC5EYXlzLFxyXG4gICAgW0ludGVybmFsRGF0ZVN0ZXBQZXJpb2QuSG91cnNdOiBFeHRlcm5hbERhdGVQZXJpb2QuSG91cnMsXHJcbiAgICBbSW50ZXJuYWxEYXRlU3RlcFBlcmlvZC5NaW51dGVzXTogRXh0ZXJuYWxEYXRlUGVyaW9kLk1pbnV0ZXMsXHJcbiAgICBbSW50ZXJuYWxEYXRlU3RlcFBlcmlvZC5TZWNvbmRzXTogRXh0ZXJuYWxEYXRlUGVyaW9kLlNlY29uZHNcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBkYXRlUmFuZ2VUeXBlID0gbmV3IEVudW1Db252ZXJ0ZXI8SW50ZXJuYWxEYXRlUmFuZ2VUeXBlLCBFeHRlcm5hbERhdGVSYW5nZVR5cGU+KHtcclxuICAgIFtJbnRlcm5hbERhdGVSYW5nZVR5cGUuQ3VycmVudF06IEV4dGVybmFsRGF0ZVJhbmdlVHlwZS5DdXJyZW50LFxyXG4gICAgW0ludGVybmFsRGF0ZVJhbmdlVHlwZS5MYXN0XTogRXh0ZXJuYWxEYXRlUmFuZ2VUeXBlLkxhc3QsXHJcbiAgICBbSW50ZXJuYWxEYXRlUmFuZ2VUeXBlLkxhc3ROXTogRXh0ZXJuYWxEYXRlUmFuZ2VUeXBlLkxhc3ROLFxyXG4gICAgW0ludGVybmFsRGF0ZVJhbmdlVHlwZS5OZXh0XTogRXh0ZXJuYWxEYXRlUmFuZ2VUeXBlLk5leHQsXHJcbiAgICBbSW50ZXJuYWxEYXRlUmFuZ2VUeXBlLk5leHROXTogRXh0ZXJuYWxEYXRlUmFuZ2VUeXBlLk5leHROLFxyXG4gICAgW0ludGVybmFsRGF0ZVJhbmdlVHlwZS5Ub0RhdGVdOiBFeHRlcm5hbERhdGVSYW5nZVR5cGUuVG9EYXRlXHJcbiAgfSk7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZmlsdGVyVHlwZSA9IG5ldyBFbnVtQ29udmVydGVyPEludGVybmFsRmlsdGVyVHlwZSwgRXh0ZXJuYWxGaWx0ZXJUeXBlPih7XHJcbiAgICBbSW50ZXJuYWxGaWx0ZXJUeXBlLkNhdGVnb3JpY2FsXTogRXh0ZXJuYWxGaWx0ZXJUeXBlLkNhdGVnb3JpY2FsLFxyXG4gICAgW0ludGVybmFsRmlsdGVyVHlwZS5SYW5nZV0gOiBFeHRlcm5hbEZpbHRlclR5cGUuUmFuZ2UsXHJcbiAgICBbSW50ZXJuYWxGaWx0ZXJUeXBlLlJlbGF0aXZlRGF0ZV06IEV4dGVybmFsRmlsdGVyVHlwZS5SZWxhdGl2ZURhdGUsXHJcbiAgICBbSW50ZXJuYWxGaWx0ZXJUeXBlLkhpZXJhcmNoaWNhbF06IEV4dGVybmFsRmlsdGVyVHlwZS5IaWVyYXJjaGljYWxcclxuICB9KTtcclxufVxyXG4vKiB0c2xpbnQ6ZW5hYmxlOnR5cGVkZWYgKi9cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L3R5cGVzY3JpcHQvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0VudW1NYXBwaW5ncy9JbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEZpbHRlciBpbXBsZW1lbnRzIENvbnRyYWN0LkZpbHRlciB7XHJcbiAgcHJvdGVjdGVkIF93b3Jrc2hlZXROYW1lOiBzdHJpbmc7XHJcbiAgcHJvdGVjdGVkIF9maWVsZE5hbWU6IHN0cmluZztcclxuICBwcm90ZWN0ZWQgX2ZpbHRlclR5cGU6IENvbnRyYWN0LkZpbHRlclR5cGU7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHdvcmtzaGVldE5hbWU6IHN0cmluZywgZmllbGROYW1lOiBzdHJpbmcsIGZpbHRlclR5cGU6IENvbnRyYWN0LkZpbHRlclR5cGUpIHtcclxuICAgIHRoaXMuX3dvcmtzaGVldE5hbWUgPSB3b3Jrc2hlZXROYW1lO1xyXG4gICAgdGhpcy5fZmllbGROYW1lID0gZmllbGROYW1lO1xyXG4gICAgdGhpcy5fZmlsdGVyVHlwZSA9IGZpbHRlclR5cGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHdvcmtzaGVldE5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXROYW1lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBmaWVsZE5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZE5hbWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGZpbHRlclR5cGUoKTogQ29udHJhY3QuRmlsdGVyVHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyVHlwZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRGaWVsZEFzeW5jKCk6IFByb21pc2U8Q29udHJhY3QuRmllbGQ+IHtcclxuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZCcpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENhdGVnb3JpY2FsRmlsdGVyIGV4dGVuZHMgRmlsdGVyIGltcGxlbWVudHMgQ29udHJhY3QuQ2F0ZWdvcmljYWxGaWx0ZXIge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcclxuICAgIHdvcmtzaGVldE5hbWU6IHN0cmluZyxcclxuICAgIGZpZWxkTmFtZTogc3RyaW5nLFxyXG4gICAgZmlsdGVyVHlwZTogQ29udHJhY3QuRmlsdGVyVHlwZSxcclxuICAgIHByaXZhdGUgX2FwcGxpZWRWYWx1ZXM6IENvbnRyYWN0LkRhdGFWYWx1ZVtdLFxyXG4gICAgcHJpdmF0ZSBfaXNFeGNsdWRlTW9kZTogYm9vbGVhbikge1xyXG4gICAgICBzdXBlcih3b3Jrc2hlZXROYW1lLCBmaWVsZE5hbWUsIGZpbHRlclR5cGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBhcHBsaWVkVmFsdWVzKCk6IENvbnRyYWN0LkRhdGFWYWx1ZVtdIHtcclxuICAgIHJldHVybiB0aGlzLl9hcHBsaWVkVmFsdWVzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpc0V4Y2x1ZGVNb2RlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzRXhjbHVkZU1vZGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0Q2F0ZWdvcmljYWxEb21haW5Bc3luYygpOiBQcm9taXNlPENvbnRyYWN0LkNhdGVnb3JpY2FsRG9tYWluPiB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQnKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSYW5nZUZpbHRlciBleHRlbmRzIEZpbHRlciBpbXBsZW1lbnRzIENvbnRyYWN0LlJhbmdlRmlsdGVyIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IoXHJcbiAgICB3b3Jrc2hlZXROYW1lOiBzdHJpbmcsXHJcbiAgICBmaWVsZE5hbWU6IHN0cmluZyxcclxuICAgIGZpbHRlclR5cGU6IENvbnRyYWN0LkZpbHRlclR5cGUsXHJcbiAgICBwcml2YXRlIF9taW46IENvbnRyYWN0LkRhdGFWYWx1ZSxcclxuICAgIHByaXZhdGUgX21heDogQ29udHJhY3QuRGF0YVZhbHVlLFxyXG4gICAgcHJpdmF0ZSBfaW5jbHVkZU51bGxWYWx1ZXM6IGJvb2xlYW4pIHtcclxuICAgICAgc3VwZXIod29ya3NoZWV0TmFtZSwgZmllbGROYW1lLCBmaWx0ZXJUeXBlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbWluVmFsdWUoKTogQ29udHJhY3QuRGF0YVZhbHVlIHtcclxuICAgIHJldHVybiB0aGlzLl9taW47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG1heFZhbHVlKCk6IENvbnRyYWN0LkRhdGFWYWx1ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWF4O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpbmNsdWRlTnVsbFZhbHVlcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9pbmNsdWRlTnVsbFZhbHVlcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyAgZ2V0UmFuZ2VGaWx0ZXJEb21haW5Bc3luYygpOiBQcm9taXNlPENvbnRyYWN0LlJhbmdlRG9tYWluPiB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQnKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSZWxhdGl2ZURhdGVGaWx0ZXIgZXh0ZW5kcyBGaWx0ZXIgaW1wbGVtZW50cyBDb250cmFjdC5SZWxhdGl2ZURhdGVGaWx0ZXIge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcclxuICAgIHdvcmtzaGVldE5hbWU6IHN0cmluZyxcclxuICAgIGZpZWxkTmFtZTogc3RyaW5nLFxyXG4gICAgZmlsdGVyVHlwZTogQ29udHJhY3QuRmlsdGVyVHlwZSxcclxuICAgIHByaXZhdGUgX2FuY2hvckRhdGU6IENvbnRyYWN0LkRhdGFWYWx1ZSxcclxuICAgIHByaXZhdGUgX3BlcmlvZFR5cGU6IENvbnRyYWN0LlBlcmlvZFR5cGUsXHJcbiAgICBwcml2YXRlIF9yYW5nZVR5cGU6IENvbnRyYWN0LkRhdGVSYW5nZVR5cGUsXHJcbiAgICBwcml2YXRlIF9yYW5nZU46IG51bWJlcikge1xyXG4gICAgICBzdXBlcih3b3Jrc2hlZXROYW1lLCBmaWVsZE5hbWUsIGZpbHRlclR5cGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBhbmNob3JEYXRlKCk6IENvbnRyYWN0LkRhdGFWYWx1ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fYW5jaG9yRGF0ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgcGVyaW9kVHlwZSgpOiBDb250cmFjdC5QZXJpb2RUeXBlIHtcclxuICAgIHJldHVybiB0aGlzLl9wZXJpb2RUeXBlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCByYW5nZVR5cGUoKTogQ29udHJhY3QuRGF0ZVJhbmdlVHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2VUeXBlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCByYW5nZU4oKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9yYW5nZU47XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9Nb2RlbHMvRmlsdGVyTW9kZWxzLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHtcclxuICBEYXRhVGFibGUgYXMgRGF0YVRhYmxlSW50ZXJuYWxDb250cmFjdCxcclxuICBFeGVjdXRlUGFyYW1ldGVycyxcclxuICBIaWdobGlnaHRlZE1hcmtzVGFibGUsXHJcbiAgSW50ZXJuYWxBcGlEaXNwYXRjaGVyLFxyXG4gIFBhcmFtZXRlcklkLFxyXG4gIFNlbGVjdGVkTWFya3NUYWJsZSxcclxuICBVbmRlcmx5aW5nRGF0YVRhYmxlLFxyXG4gIFZlcmJJZCxcclxuICBWaXN1YWxJZCxcclxufSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgQ29sdW1uLCBEYXRhVGFibGUsIERhdGFWYWx1ZSwgTWFya0luZm8gfSBmcm9tICcuLi8uLi9Nb2RlbHMvR2V0RGF0YU1vZGVscyc7XHJcbmltcG9ydCB7IEdldERhdGFTZXJ2aWNlLCBHZXREYXRhVHlwZSB9IGZyb20gJy4uL0dldERhdGFTZXJ2aWNlJztcclxuaW1wb3J0IHsgU2VydmljZU5hbWVzIH0gZnJvbSAnLi4vU2VydmljZVJlZ2lzdHJ5JztcclxuXHJcbmV4cG9ydCBjbGFzcyBHZXREYXRhU2VydmljZUltcGwgaW1wbGVtZW50cyBHZXREYXRhU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBfZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IoZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyKSB7XHJcbiAgICB0aGlzLl9kaXNwYXRjaGVyID0gZGlzcGF0Y2hlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2VydmljZU5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBTZXJ2aWNlTmFtZXMuR2V0RGF0YTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRVbmRlcmx5aW5nRGF0YUFzeW5jKFxyXG4gICAgdmlzdWFsSWQ6IFZpc3VhbElkLFxyXG4gICAgZ2V0VHlwZTogR2V0RGF0YVR5cGUsXHJcbiAgICBpZ25vcmVBbGlhc2VzOiBib29sZWFuLFxyXG4gICAgaWdub3JlU2VsZWN0aW9uOiBib29sZWFuLFxyXG4gICAgaW5jbHVkZUFsbENvbHVtbnM6IGJvb2xlYW4sXHJcbiAgICBtYXhSb3dzOiBudW1iZXIpOiBQcm9taXNlPERhdGFUYWJsZT4ge1xyXG4gICAgICAvLyBDcmVhdGUgYWxsIG9mIG91ciBwYXJhbWV0ZXJzXHJcbiAgICAgIGNvbnN0IHZlcmIgPSBnZXRUeXBlID09PSBHZXREYXRhVHlwZS5TdW1tYXJ5ID8gVmVyYklkLkdldERhdGFTdW1tYXJ5RGF0YSA6IFZlcmJJZC5HZXRVbmRlcmx5aW5nRGF0YTtcclxuICAgICAgY29uc3QgcGFyYW1ldGVyczogRXhlY3V0ZVBhcmFtZXRlcnMgPSB7fTtcclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5WaXN1YWxJZF0gPSB2aXN1YWxJZDtcclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5JZ25vcmVBbGlhc2VzXSA9IGlnbm9yZUFsaWFzZXM7XHJcbiAgICAgIHBhcmFtZXRlcnNbUGFyYW1ldGVySWQuSWdub3JlU2VsZWN0aW9uXSA9IGlnbm9yZVNlbGVjdGlvbjtcclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5JbmNsdWRlQWxsQ29sdW1uc10gPSBpbmNsdWRlQWxsQ29sdW1ucztcclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5NYXhSb3dzXSA9IG1heFJvd3M7XHJcblxyXG4gICAgICByZXR1cm4gdGhpcy5fZGlzcGF0Y2hlci5leGVjdXRlKHZlcmIsIHBhcmFtZXRlcnMpLnRoZW48RGF0YVRhYmxlPihyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgY29uc3QgcmVzcG9uc2VEYXRhID0gcmVzcG9uc2UucmVzdWx0IGFzIFVuZGVybHlpbmdEYXRhVGFibGU7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc1Jlc3VsdHNUYWJsZShyZXNwb25zZURhdGEuZGF0YSwgcmVzcG9uc2VEYXRhLmlzU3VtbWFyeSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U2VsZWN0ZWRNYXJrc0FzeW5jKHZpc3VhbElkOiBWaXN1YWxJZCk6IFByb21pc2U8Q29udHJhY3QuTWFya3NDb2xsZWN0aW9uPiB7XHJcbiAgICBjb25zdCBwYXJhbWV0ZXJzOiBFeGVjdXRlUGFyYW1ldGVycyA9IHsgW1BhcmFtZXRlcklkLlZpc3VhbElkXTogdmlzdWFsSWQgfTtcclxuICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUoVmVyYklkLkdldFNlbGVjdGVkTWFya3MsIHBhcmFtZXRlcnMpLnRoZW48Q29udHJhY3QuTWFya3NDb2xsZWN0aW9uPihyZXNwb25zZSA9PiB7XHJcbiAgICAgIGNvbnN0IHJlc3BvbnNlRGF0YSA9IHJlc3BvbnNlLnJlc3VsdCBhcyBTZWxlY3RlZE1hcmtzVGFibGU7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgZGF0YTogcmVzcG9uc2VEYXRhLmRhdGEubWFwKHRhYmxlID0+IHRoaXMucHJvY2Vzc1Jlc3VsdHNUYWJsZSh0YWJsZSwgdHJ1ZSkpXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRIaWdobGlnaHRlZE1hcmtzQXN5bmModmlzdWFsSWQ6IFZpc3VhbElkKTogUHJvbWlzZTxDb250cmFjdC5NYXJrc0NvbGxlY3Rpb24+IHtcclxuICAgIGNvbnN0IHBhcmFtZXRlcnM6IEV4ZWN1dGVQYXJhbWV0ZXJzID0geyBbUGFyYW1ldGVySWQuVmlzdWFsSWRdOiB2aXN1YWxJZCB9O1xyXG4gICAgcmV0dXJuIHRoaXMuX2Rpc3BhdGNoZXIuZXhlY3V0ZShWZXJiSWQuR2V0SGlnaGxpZ2h0ZWRNYXJrcywgcGFyYW1ldGVycykudGhlbjxDb250cmFjdC5NYXJrc0NvbGxlY3Rpb24+KHJlc3BvbnNlID0+IHtcclxuICAgICAgY29uc3QgcmVzcG9uc2VEYXRhID0gcmVzcG9uc2UucmVzdWx0IGFzIEhpZ2hsaWdodGVkTWFya3NUYWJsZTtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBkYXRhOiByZXNwb25zZURhdGEuZGF0YS5tYXAodGFibGUgPT4gdGhpcy5wcm9jZXNzUmVzdWx0c1RhYmxlKHRhYmxlLCB0cnVlKSlcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHByb2Nlc3NSZXN1bHRzVGFibGUocmVzcG9uc2VEYXRhOiBEYXRhVGFibGVJbnRlcm5hbENvbnRyYWN0LCBpc1N1bW1hcnk6IGJvb2xlYW4pOiBEYXRhVGFibGUge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IHJlc3BvbnNlRGF0YS5oZWFkZXJzLm1hcChoID0+IG5ldyBDb2x1bW4oaC5maWVsZENhcHRpb24sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRyYWN0LkRhdGFUeXBlLlN0cmluZyAvKmguRGF0YVR5cGUqLyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaC5pc1JlZmVyZW5jZWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGguaW5kZXgpKTtcclxuICAgIC8vIFRPRE8gVGhpcyBzaG91bGQgYmUgY29udHJvbGxlZCBieSBhIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoaXMgYXBpIHdpbGwgcmVzcG9uZCBtYXJrcyBpbmZvIG9yIG5vdFxyXG4gICAgbGV0IG1hcmtzO1xyXG4gICAgaWYgKHJlc3BvbnNlRGF0YS5tYXJrcykge1xyXG4gICAgICBtYXJrcyA9IHJlc3BvbnNlRGF0YS5tYXJrcy5tYXAoaCA9PiBuZXcgTWFya0luZm8oaC50eXBlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGguY29sb3IsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaC50dXBsZUlkKSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCB0YWJsZSA9IHJlc3BvbnNlRGF0YS5kYXRhVGFibGUubWFwKHJvdyA9PiB7XHJcbiAgICAgIHJldHVybiByb3cubWFwKGNlbGwgPT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgRGF0YVZhbHVlKGNlbGwudmFsdWUsIGNlbGwuZm9ybWF0dGVkVmFsdWUpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChtYXJrcykge1xyXG4gICAgICByZXR1cm4gbmV3IERhdGFUYWJsZSh0YWJsZSwgaGVhZGVycywgdGFibGUubGVuZ3RoLCBpc1N1bW1hcnksIG1hcmtzKTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgRGF0YVRhYmxlKHRhYmxlLCBoZWFkZXJzLCB0YWJsZS5sZW5ndGgsIGlzU3VtbWFyeSk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9pbXBsL0dldERhdGFTZXJ2aWNlSW1wbC50c1xuICoqLyIsImltcG9ydCB7IEludGVybmFsQXBpRGlzcGF0Y2hlciwgTW9kZWwsIE5vdGlmaWNhdGlvbiwgTm90aWZpY2F0aW9uSWQgfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSwgVW5yZWdpc3RlckZuIH0gZnJvbSAnLi4vTm90aWZpY2F0aW9uU2VydmljZSc7XHJcbmltcG9ydCB7IFNlcnZpY2VOYW1lcyB9IGZyb20gJy4uL1NlcnZpY2VSZWdpc3RyeSc7XHJcblxyXG5jbGFzcyBSZWdpc3RyYXRpb24ge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2ZpbHRlckZuOiAobm90aWZpY2F0aW9uTW9kZWw6IE1vZGVsKSA9PiBib29sZWFuLFxyXG4gICAgcHJpdmF0ZSBfY2FsbGJhY2tGbjogKG5vdGlmaWNhdGlvbk1vZGVsOiBNb2RlbCkgPT4gdm9pZCkge1xyXG4gICAgICAvLyBOb3RoaW5nIEhlcmVcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbk5vdGlmaWNhdGlvbihub3RpZmljYXRpb25Nb2RlbDogTW9kZWwpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9maWx0ZXJGbihub3RpZmljYXRpb25Nb2RlbCkpIHtcclxuICAgICAgdGhpcy5fY2FsbGJhY2tGbihub3RpZmljYXRpb25Nb2RlbCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uU2VydmljZUltcGwgaW1wbGVtZW50cyBOb3RpZmljYXRpb25TZXJ2aWNlIHtcclxuICBwcml2YXRlIF9oYW5kbGVyczogeyBbbm90aWZpY2F0aW9uSWQ6IHN0cmluZ106IEFycmF5PFJlZ2lzdHJhdGlvbj4gfTtcclxuXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyKSB7XHJcbiAgICB0aGlzLl9oYW5kbGVycyA9IHt9O1xyXG4gICAgdGhpcy5kaXNwYXRjaGVyLnJlZ2lzdGVyTm90aWZpY2F0aW9uSGFuZGxlcih0aGlzLm9uTm90aWZpY2F0aW9uLmJpbmQodGhpcykpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzZXJ2aWNlTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIFNlcnZpY2VOYW1lcy5Ob3RpZmljYXRpb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJIYW5kbGVyKGlkOiBOb3RpZmljYXRpb25JZCwgZmlsdGVyRm46IChtb2RlbDogTW9kZWwpID0+IGJvb2xlYW4sIGhhbmRsZXI6IChtb2RlbDogTW9kZWwpID0+IHZvaWQpOiBVbnJlZ2lzdGVyRm4ge1xyXG4gICAgY29uc3QgaGFuZGxlcnMgPSB0aGlzLl9oYW5kbGVyc1tpZF0gfHwgbmV3IEFycmF5PFJlZ2lzdHJhdGlvbj4oKTtcclxuICAgIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IG5ldyBSZWdpc3RyYXRpb24oZmlsdGVyRm4sIGhhbmRsZXIpO1xyXG4gICAgaGFuZGxlcnMucHVzaChyZWdpc3RyYXRpb24pO1xyXG4gICAgdGhpcy5faGFuZGxlcnNbaWRdID0gaGFuZGxlcnM7XHJcbiAgICByZXR1cm4gKCkgPT4gdGhpcy5yZW1vdmVSZWdpc3RyYXRpb24oaWQsIHJlZ2lzdHJhdGlvbik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhc0hhbmRsZXJzRm9yTm90aWZpY2F0aW9uVHlwZShpZDogTm90aWZpY2F0aW9uSWQpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9oYW5kbGVycy5oYXNPd25Qcm9wZXJ0eShpZCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaGFzSGFuZGxlcnNGb3JOb3RpZmljYXRpb25UeXBlKG5vdGlmaWNhdGlvbi5ub3RpZmljYXRpb25JZCkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEdvIHRocm91Z2ggYW5kIGNoZWNrIGZvciBhbGwgdGhlIGhhbmRsZXJzIG9mIHRoaXMgcGFydGljdWxhciBub3RpZmljYXRpb25cclxuICAgIHRoaXMuX2hhbmRsZXJzW25vdGlmaWNhdGlvbi5ub3RpZmljYXRpb25JZF0uZm9yRWFjaChoID0+IGgub25Ob3RpZmljYXRpb24obm90aWZpY2F0aW9uLmRhdGEpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVtb3ZlUmVnaXN0cmF0aW9uKGlkOiBOb3RpZmljYXRpb25JZCwgcmVnaXN0cmF0aW9uOiBSZWdpc3RyYXRpb24pOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5oYXNIYW5kbGVyc0Zvck5vdGlmaWNhdGlvblR5cGUoaWQpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9oYW5kbGVyc1tpZF0gPSB0aGlzLl9oYW5kbGVyc1tpZF0uZmlsdGVyKHJlZyA9PiByZWcgIT09IHJlZ2lzdHJhdGlvbik7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9pbXBsL05vdGlmaWNhdGlvblNlcnZpY2VJbXBsLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHtcclxuICBFeGVjdXRlUGFyYW1ldGVycyxcclxuICBJbnRlcm5hbEFwaURpc3BhdGNoZXIsXHJcbiAgTW9kZWwsXHJcbiAgUGFyYW1ldGVySWQsXHJcbiAgUGFyYW1ldGVySW5mbyxcclxuICBTaGVldFBhdGgsXHJcbiAgVmVyYklkLFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBQYXJhbWV0ZXJJbXBsIH0gZnJvbSAnLi4vLi4vSW50ZXJuYWwvUGFyYW1ldGVySW1wbCc7XHJcbmltcG9ydCB7IFBhcmFtZXRlciB9IGZyb20gJy4uLy4uL1BhcmFtZXRlcic7XHJcbmltcG9ydCB7IFBhcmFtZXRlcnNTZXJ2aWNlIH0gZnJvbSAnLi4vUGFyYW1ldGVyc1NlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXJ2aWNlTmFtZXMgfSBmcm9tICcuLi9TZXJ2aWNlUmVnaXN0cnknO1xyXG5cclxuZXhwb3J0IGNsYXNzIFBhcmFtZXRlcnNTZXJ2aWNlSW1wbCBpbXBsZW1lbnRzIFBhcmFtZXRlcnNTZXJ2aWNlIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBkaXNwYXRjaGVyOiBJbnRlcm5hbEFwaURpc3BhdGNoZXIpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2VydmljZU5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBTZXJ2aWNlTmFtZXMuUGFyYW1ldGVycztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRQYXJhbWV0ZXJzRm9yU2hlZXRBc3luYyhzaGVldFBhdGg6IFNoZWV0UGF0aCwgc2hlZXQ6IENvbnRyYWN0LlNoZWV0KTogUHJvbWlzZTxBcnJheTxQYXJhbWV0ZXI+PiB7XHJcbiAgICBjb25zdCBwYXJhbWV0ZXJzID0ge1xyXG4gICAgICBbUGFyYW1ldGVySWQuU2hlZXRQYXRoXTogc2hlZXRQYXRoXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoZXIuZXhlY3V0ZShWZXJiSWQuR2V0UGFyYW1ldGVyc0ZvclNoZWV0LCBwYXJhbWV0ZXJzKS50aGVuKHJlc3BvbnNlID0+IHtcclxuICAgICAgLy8gVE9ETyAtIENoZWNrIGZvciBlcnJvclxyXG5cclxuICAgICAgY29uc3QgcmVzdWx0ID0gcmVzcG9uc2UucmVzdWx0IGFzIEFycmF5PFBhcmFtZXRlckluZm8+O1xyXG4gICAgICByZXR1cm4gcmVzdWx0Lm1hcChwYXJhbWV0ZXJJbmZvID0+IHtcclxuICAgICAgICBjb25zdCBpbXBsID0gbmV3IFBhcmFtZXRlckltcGwocGFyYW1ldGVySW5mbyk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQYXJhbWV0ZXIoaW1wbCwgc2hlZXQpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoYW5nZVBhcmFtZXRlclZhbHVlQXN5bmMoZmllbGROYW1lOiBzdHJpbmcsIG5ld1ZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPFBhcmFtZXRlckluZm8+IHtcclxuICAgIGNvbnN0IHBhcmFtZXRlcnMgPSB7XHJcbiAgICAgIFtQYXJhbWV0ZXJJZC5QYXJhbWV0ZXJGaWVsZE5hbWVdOiBmaWVsZE5hbWUsXHJcbiAgICAgIFtQYXJhbWV0ZXJJZC5QYXJhbWV0ZXJWYWx1ZV06IG5ld1ZhbHVlXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoZXIuZXhlY3V0ZShWZXJiSWQuQ2hhbmdlUGFyYW1ldGVyVmFsdWUsIHBhcmFtZXRlcnMpLnRoZW4ocmVzcG9uc2UgPT4ge1xyXG4gICAgICBjb25zdCByZXN1bHQgPSByZXNwb25zZS5yZXN1bHQgYXMgUGFyYW1ldGVySW5mbztcclxuICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZpbmRQYXJhbWV0ZXJCeU5hbWVBc3luYyhuYW1lOiBzdHJpbmcsIHNoZWV0OiBDb250cmFjdC5TaGVldCk6IFByb21pc2U8UGFyYW1ldGVyIHwgdW5kZWZpbmVkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5maW5kUGFyYW1ldGVyQXN5bmMoc2hlZXQsIG5hbWUsIHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZmluZFBhcmFtZXRlckJ5R2xvYmFsRmllbGROYW1lQXN5bmMoZmllbGROYW1lOiBzdHJpbmcsIHNoZWV0OiBDb250cmFjdC5TaGVldCk6IFByb21pc2U8UGFyYW1ldGVyIHwgdW5kZWZpbmVkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5maW5kUGFyYW1ldGVyQXN5bmMoc2hlZXQsIHVuZGVmaW5lZCwgZmllbGROYW1lKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmluZFBhcmFtZXRlckFzeW5jKFxyXG4gICAgc2hlZXQ6IENvbnRyYWN0LlNoZWV0LFxyXG4gICAgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxyXG4gICAgZmllbGROYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBQcm9taXNlPFBhcmFtZXRlciB8IHVuZGVmaW5lZD4ge1xyXG4gICAgY29uc3QgcGFyYW1ldGVyczogRXhlY3V0ZVBhcmFtZXRlcnMgPSB7fTtcclxuICAgIGlmIChuYW1lICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgcGFyYW1ldGVyc1tQYXJhbWV0ZXJJZC5QYXJhbWV0ZXJDYXB0aW9uXSA9IG5hbWU7XHJcbiAgICB9IGVsc2UgaWYgKGZpZWxkTmFtZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHBhcmFtZXRlcnNbUGFyYW1ldGVySWQuUGFyYW1ldGVyRmllbGROYW1lXSA9IGZpZWxkTmFtZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyByZXF1aXJlIGZpZWxkIG5hbWUgb3IgY2FwdGlvbicpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmRpc3BhdGNoZXIuZXhlY3V0ZShWZXJiSWQuRmluZFBhcmFtZXRlciwgcGFyYW1ldGVycykudGhlbihyZXNwb25zZSA9PiB7XHJcbiAgICAgIGNvbnN0IGluc3RhbmNlT2ZQYXJhbWV0ZXJJbmZvID0gKG9iamVjdDogTW9kZWwpOiBvYmplY3QgaXMgUGFyYW1ldGVySW5mbyA9PiB7XHJcbiAgICAgICAgcmV0dXJuICdmaWVsZE5hbWUnIGluIG9iamVjdDtcclxuICAgICAgfTtcclxuXHJcbiAgICAgIC8vIFdlIG5lZWQgdG8gY2hlY2sgdG8gc2VlIGlmIHdlIGdvdCBhIHZhbGlkIHJlc3BvbnNlIGJhY2sgYWdhaW5cclxuICAgICAgaWYgKGluc3RhbmNlT2ZQYXJhbWV0ZXJJbmZvKHJlc3BvbnNlLnJlc3VsdCkpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSByZXNwb25zZS5yZXN1bHQgYXMgUGFyYW1ldGVySW5mbztcclxuICAgICAgICBjb25zdCBpbXBsID0gbmV3IFBhcmFtZXRlckltcGwocmVzdWx0KTtcclxuICAgICAgICByZXR1cm4gbmV3IFBhcmFtZXRlcihpbXBsLCBzaGVldCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIEQ6L2Rldi90eXBlc2NyaXB0L2pzLWFwaS9hcGktc2hhcmVkL3NyYy9TZXJ2aWNlcy9pbXBsL1BhcmFtZXRlcnNTZXJ2aWNlSW1wbC50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbklkLCBQYXJhbWV0ZXJJbmZvIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgUGFyYW0gfSBmcm9tICdAdGFibGVhdS9hcGktdXRpbHMnO1xyXG5cclxuaW1wb3J0IHsgSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzIH0gZnJvbSAnLi4vRW51bU1hcHBpbmdzL0ludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncyc7XHJcbmltcG9ydCB7IFBhcmFtZXRlckNoYW5nZWRFdmVudCB9IGZyb20gJy4uL0V2ZW50cy9QYXJhbWV0ZXJDaGFuZ2VkRXZlbnQnO1xyXG5pbXBvcnQgeyBEYXRhVmFsdWUgfSBmcm9tICcuLi9Nb2RlbHMvR2V0RGF0YU1vZGVscyc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9TZXJ2aWNlcy9Ob3RpZmljYXRpb25TZXJ2aWNlJztcclxuaW1wb3J0IHsgUGFyYW1ldGVyc1NlcnZpY2UgfSBmcm9tICcuLi9TZXJ2aWNlcy9QYXJhbWV0ZXJzU2VydmljZSc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2VSZWdpc3RyeSwgU2VydmljZU5hbWVzIH0gZnJvbSAnLi4vU2VydmljZXMvU2VydmljZVJlZ2lzdHJ5JztcclxuaW1wb3J0IHsgU2luZ2xlRXZlbnRNYW5hZ2VyIH0gZnJvbSAnLi4vU2luZ2xlRXZlbnRNYW5hZ2VyJztcclxuaW1wb3J0IHsgU2luZ2xlRXZlbnRNYW5hZ2VySW1wbCB9IGZyb20gJy4vU2luZ2xlRXZlbnRNYW5hZ2VySW1wbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgUGFyYW1ldGVySW1wbCB7XHJcbiAgcHJpdmF0ZSBfYWxsb3dhYmxlVmFsdWVzOiBDb250cmFjdC5QYXJhbWV0ZXJEb21haW5SZXN0cmljdGlvbjtcclxuICBwcml2YXRlIF9nbG9iYWxGaWVsZE5hbWU6IHN0cmluZztcclxuICBwcml2YXRlIF9wYXJhbWV0ZXJJbmZvOiBQYXJhbWV0ZXJJbmZvO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IocGFyYW1ldGVySW5mbzogUGFyYW1ldGVySW5mbykge1xyXG4gICAgdGhpcy5zZXRQYXJhbWV0ZXJJbmZvKHBhcmFtZXRlckluZm8pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBuYW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGFyYW1ldGVySW5mby5uYW1lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjdXJyZW50VmFsdWUoKTogRGF0YVZhbHVlIHtcclxuICAgIHJldHVybiBuZXcgRGF0YVZhbHVlKHRoaXMuX3BhcmFtZXRlckluZm8uY3VycmVudFZhbHVlLnZhbHVlLCB0aGlzLl9wYXJhbWV0ZXJJbmZvLmN1cnJlbnRWYWx1ZS5mb3JtYXR0ZWRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGRhdGFUeXBlKCk6IENvbnRyYWN0LkRhdGFUeXBlIHtcclxuICAgIHJldHVybiBJbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MuZGF0YVR5cGUuY29udmVydCh0aGlzLl9wYXJhbWV0ZXJJbmZvLmRhdGFUeXBlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYWxsb3dhYmxlVmFsdWVzKCk6IENvbnRyYWN0LlBhcmFtZXRlckRvbWFpblJlc3RyaWN0aW9uIHtcclxuICAgIHJldHVybiB0aGlzLl9hbGxvd2FibGVWYWx1ZXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hhbmdlVmFsdWVBc3luYyhuZXdWYWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IERhdGUpOiBQcm9taXNlPERhdGFWYWx1ZT4ge1xyXG4gICAgbGV0IGNvZXJjZWRWYWx1ZSA9IFBhcmFtLnNlcmlhbGl6ZVBhcmFtdGVyVmFsdWUobmV3VmFsdWUpO1xyXG4gICAgY29uc3QgcGFyYW1ldGVyc1NlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxQYXJhbWV0ZXJzU2VydmljZT4oU2VydmljZU5hbWVzLlBhcmFtZXRlcnMpO1xyXG4gICAgcmV0dXJuIHBhcmFtZXRlcnNTZXJ2aWNlLmNoYW5nZVBhcmFtZXRlclZhbHVlQXN5bmModGhpcy5fZ2xvYmFsRmllbGROYW1lLCBjb2VyY2VkVmFsdWUpLnRoZW4ocGFyYW1ldGVySW5mbyA9PiB7XHJcbiAgICAgIHRoaXMuc2V0UGFyYW1ldGVySW5mbyhwYXJhbWV0ZXJJbmZvKTtcclxuICAgICAgcmV0dXJuIHRoaXMuY3VycmVudFZhbHVlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIZWxwZXIgbWV0aG9kIHdoaWNoIGdvZXMgdGhyb3VnaCBhbmQgcmVnaXN0ZXJzIGVhY2ggZXZlbnQgdHlwZSB0aGlzIGltcGwga25vd3MgYWJvdXRcclxuICAgKiB3aXRoIHRoZSBOb3RpZmljYXRpb25TZXJ2aWNlLiBJdCByZXR1cm5zIGFuIGFycmF5IG9mIFNpbmdsZUV2ZW50TWFuYWdlciBvYmplY3RzIHdoaWNoXHJcbiAgICogY2FuIHRoZW4gYmUgcGFzc2VkIHRvIGFuIEV2ZW50TGlzdGVuZXJNYW5hZ2VyIHRvIGhhbmRsZSB1c2VyIHJlZ2lzdHJhdGlvbiAvIHVucmVnaXN0cmF0aW9uLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHNoZWV0IFRoZSBzaGVldCBvYmplY3Qgd2hpY2ggd2lsbCBiZSBpbmNsdWRlZCB3aXRoIHRoZSBldmVudCBub3RpZmljYXRpb25zXHJcbiAgICogQHJldHVybnMge0FycmF5PFNpbmdsZUV2ZW50TWFuYWdlcj59IENvbGxlY3Rpb24gb2YgZXZlbnQgbWFuYWdlcnMgdG8gcGFzcyB0byBhbiBFdmVudExpc3RlbmVyTWFuYWdlclxyXG4gICAqL1xyXG4gIHB1YmxpYyBpbml0aWFsaXplRXZlbnRzKHNoZWV0OiBDb250cmFjdC5TaGVldCk6IEFycmF5PFNpbmdsZUV2ZW50TWFuYWdlcj4ge1xyXG4gICAgY29uc3QgcmVzdWx0cyA9IG5ldyBBcnJheTxTaW5nbGVFdmVudE1hbmFnZXI+KCk7XHJcbiAgICBsZXQgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBub3RpZmljYXRpb25TZXJ2aWNlID0gQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2U8Tm90aWZpY2F0aW9uU2VydmljZT4oU2VydmljZU5hbWVzLk5vdGlmaWNhdGlvbik7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIC8vIElmIHdlIGRvbid0IGhhdmUgdGhpcyBzZXJ2aWNlIHJlZ2lzdGVyZWQsIGp1c3QgcmV0dXJuXHJcbiAgICAgIHJldHVybiByZXN1bHRzO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEluaXRpYWxpemUgYWxsIG9mIHRoZSBldmVudCBtYW5hZ2VycyB3ZSdsbCBuZWVkIChvbmUgZm9yIGVhY2ggZXZlbnQgdHlwZSlcclxuICAgIGNvbnN0IHBhcmFtZXRlckV2ZW50ID0gbmV3IFNpbmdsZUV2ZW50TWFuYWdlckltcGw8UGFyYW1ldGVyQ2hhbmdlZEV2ZW50PihDb250cmFjdC5UYWJsZWF1RXZlbnRUeXBlLlBhcmFtZXRlckNoYW5nZWQpO1xyXG4gICAgbm90aWZpY2F0aW9uU2VydmljZS5yZWdpc3RlckhhbmRsZXIoTm90aWZpY2F0aW9uSWQuUGFyYW1ldGVyQ2hhbmdlZCwgKG1vZGVsKSA9PiB7XHJcbiAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IG1vZGVsIGFzIHN0cmluZztcclxuICAgICAgcmV0dXJuIGZpZWxkTmFtZSA9PT0gdGhpcy5fZ2xvYmFsRmllbGROYW1lO1xyXG4gICAgfSwgKGZpZWxkTmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHBhcmFtZXRlckV2ZW50LnRyaWdnZXJFdmVudCgoKSA9PiBuZXcgUGFyYW1ldGVyQ2hhbmdlZEV2ZW50KGZpZWxkTmFtZSwgc2hlZXQpKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJlc3VsdHMucHVzaChwYXJhbWV0ZXJFdmVudCk7XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdHM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFBhcmFtZXRlckluZm8ocGFyYW1ldGVySW5mbzogUGFyYW1ldGVySW5mbyk6IHZvaWQge1xyXG4gICAgdGhpcy5fcGFyYW1ldGVySW5mbyA9IHBhcmFtZXRlckluZm87XHJcbiAgICB0aGlzLl9nbG9iYWxGaWVsZE5hbWUgPSBwYXJhbWV0ZXJJbmZvLmZpZWxkTmFtZTtcclxuXHJcbiAgICBjb25zdCB0eXBlID0gSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmFsbG93YWJsZVZhbHVlcy5jb252ZXJ0KHBhcmFtZXRlckluZm8uYWxsb3dhYmxlVmFsdWVzVHlwZSk7XHJcbiAgICBsZXQgbGlzdFZhbHVlczogQXJyYXk8RGF0YVZhbHVlPiB8IHVuZGVmaW5lZDtcclxuICAgIGxldCBtaW5WYWx1ZTogRGF0YVZhbHVlIHwgdW5kZWZpbmVkO1xyXG4gICAgbGV0IG1heFZhbHVlOiBEYXRhVmFsdWUgfCB1bmRlZmluZWQ7XHJcbiAgICBsZXQgc3RlcFNpemU6IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICAgIGxldCBkYXRlU3RlcFBlcmlvZDogQ29udHJhY3QuUGVyaW9kVHlwZSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgICBpZiAodHlwZSA9PT0gQ29udHJhY3QuUGFyYW1ldGVyVmFsdWVUeXBlLkxpc3QpIHtcclxuICAgICAgY29uc3QgdmFsdWVzID0gcGFyYW1ldGVySW5mby5hbGxvd2FibGVWYWx1ZXMgfHwgW107XHJcbiAgICAgIGxpc3RWYWx1ZXMgPSB2YWx1ZXMubWFwKHZhbCA9PiBuZXcgRGF0YVZhbHVlKHZhbC52YWx1ZSwgdmFsLmZvcm1hdHRlZFZhbHVlKSk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09IENvbnRyYWN0LlBhcmFtZXRlclZhbHVlVHlwZS5SYW5nZSkge1xyXG4gICAgICBtaW5WYWx1ZSA9IHBhcmFtZXRlckluZm8ubWluVmFsdWUgJiYgbmV3IERhdGFWYWx1ZShwYXJhbWV0ZXJJbmZvLm1pblZhbHVlLnZhbHVlLCBwYXJhbWV0ZXJJbmZvLm1pblZhbHVlLmZvcm1hdHRlZFZhbHVlKTtcclxuICAgICAgbWF4VmFsdWUgPSBwYXJhbWV0ZXJJbmZvLm1heFZhbHVlICYmIG5ldyBEYXRhVmFsdWUocGFyYW1ldGVySW5mby5tYXhWYWx1ZS52YWx1ZSwgcGFyYW1ldGVySW5mby5tYXhWYWx1ZS5mb3JtYXR0ZWRWYWx1ZSk7XHJcbiAgICAgIHN0ZXBTaXplID0gcGFyYW1ldGVySW5mby5zdGVwU2l6ZTtcclxuICAgICAgZGF0ZVN0ZXBQZXJpb2QgPSBwYXJhbWV0ZXJJbmZvLmRhdGVTdGVwUGVyaW9kICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmRhdGVTdGVwUGVyaW9kLmNvbnZlcnQocGFyYW1ldGVySW5mby5kYXRlU3RlcFBlcmlvZCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fYWxsb3dhYmxlVmFsdWVzID0ge1xyXG4gICAgICB0eXBlOiB0eXBlLFxyXG4gICAgICBhbGxvd2FibGVWYWx1ZXM6IGxpc3RWYWx1ZXMsXHJcbiAgICAgIG1pblZhbHVlOiBtaW5WYWx1ZSxcclxuICAgICAgbWF4VmFsdWU6IG1heFZhbHVlLFxyXG4gICAgICBzdGVwU2l6ZTogc3RlcFNpemUsXHJcbiAgICAgIGRhdGVTdGVwUGVyaW9kOiBkYXRlU3RlcFBlcmlvZFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L3R5cGVzY3JpcHQvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0ludGVybmFsL1BhcmFtZXRlckltcGwudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuaW1wb3J0IHsgUGFyYW1ldGVyc1NlcnZpY2UgfSBmcm9tICcuLi9TZXJ2aWNlcy9QYXJhbWV0ZXJzU2VydmljZSc7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2VSZWdpc3RyeSwgU2VydmljZU5hbWVzIH0gZnJvbSAnLi4vU2VydmljZXMvU2VydmljZVJlZ2lzdHJ5JztcclxuaW1wb3J0IHsgVGFibGVhdVNoZWV0RXZlbnQgfSBmcm9tICcuL1RhYmxlYXVTaGVldEV2ZW50JztcclxuXHJcbmV4cG9ydCBjbGFzcyBQYXJhbWV0ZXJDaGFuZ2VkRXZlbnQgZXh0ZW5kcyBUYWJsZWF1U2hlZXRFdmVudCBpbXBsZW1lbnRzIENvbnRyYWN0LlBhcmFtZXRlckNoYW5nZWRFdmVudCB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgX2dsb2JhbEZpZWxkTmFtZTogc3RyaW5nLCBzaGVldDogQ29udHJhY3QuU2hlZXQpIHtcclxuICAgIHN1cGVyKENvbnRyYWN0LlRhYmxlYXVFdmVudFR5cGUuUGFyYW1ldGVyQ2hhbmdlZCwgc2hlZXQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFBhcmFtZXRlckFzeW5jKCk6IFByb21pc2U8Q29udHJhY3QuUGFyYW1ldGVyPiB7XHJcbiAgICAvLyBDYWxsIGRvd24gdG8gb3VyIHNlcnZpY2UgdG8gZ2V0IHRoZSBwYXJhbWV0ZXIgYmFjayB2aWEgaXRzIGZpZWxkIG5hbWVcclxuICAgIGNvbnN0IHNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxQYXJhbWV0ZXJzU2VydmljZT4oU2VydmljZU5hbWVzLlBhcmFtZXRlcnMpO1xyXG4gICAgcmV0dXJuIHNlcnZpY2UuZmluZFBhcmFtZXRlckJ5R2xvYmFsRmllbGROYW1lQXN5bmModGhpcy5fZ2xvYmFsRmllbGROYW1lLCB0aGlzLnNoZWV0KS50aGVuKHBhcmFtZXRlciA9PiB7XHJcbiAgICAgIGlmIChwYXJhbWV0ZXIgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIGZpbmQgcGFyYW1ldGVyJyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBwYXJhbWV0ZXI7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogRDovZGV2L3R5cGVzY3JpcHQvanMtYXBpL2FwaS1zaGFyZWQvc3JjL0V2ZW50cy9QYXJhbWV0ZXJDaGFuZ2VkRXZlbnQudHNcbiAqKi8iLCIvKipcclxuICogQmFzZSBpbnRlcmZhY2UgZm9yIGFuIGFwaSBzZXJ2aWNlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFwaVNlcnZpY2Uge1xyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIG5hbWUgZm9yIHRoaXMgc2VydmljZS5cclxuICAgKi9cclxuICByZWFkb25seSBzZXJ2aWNlTmFtZTogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogQ29sbGVjdGlvbiBvZiBzZXJ2aWNlIG5hbWUgd2hpY2ggd2lsbCBiZSByZWdpc3RlcmVkIGluIHRoZSBhcGktc2hhcmVkIHByb2plY3RcclxuICovXHJcbmV4cG9ydCBjb25zdCBlbnVtIFNlcnZpY2VOYW1lcyB7XHJcbiAgRGF0YVNvdXJjZVNlcnZpY2UgPSAnZGF0YS1zb3VyY2Utc2VydmljZScsXHJcbiAgR2V0RGF0YSA9ICdnZXQtZGF0YS1zZXJ2aWNlJyxcclxuICBGaWx0ZXIgPSAnZmlsdGVyLXNlcnZpY2UnLFxyXG4gIE5vdGlmaWNhdGlvbiA9ICdub3RpZmljYXRpb24tc2VydmljZScsXHJcbiAgUGFyYW1ldGVycyA9ICdwYXJhbWV0ZXJzLXNlcnZpY2UnLFxyXG4gIFNlbGVjdGlvbiA9ICdzZWxlY3Rpb24tc2VydmljZSdcclxufVxyXG5cclxuLyoqXHJcbiAqIERvIHNvbWUgZ2xvYmFibCBkZWNsYXJhdGlvbnMgc28gd2UgY2FuIGNyZWF0ZSBhIHNpbmdsZXRvbiBvbiB0aGUgd2luZG93IG9iamVjdFxyXG4gKi9cclxuZGVjbGFyZSBnbG9iYWwge1xyXG4gIGludGVyZmFjZSBXaW5kb3cgeyBfX3RhYmxlYXVBcGlTZXJ2aWNlUmVnaXN0cnk6IFNlcnZpY2VSZWdpc3RyeSB8IHVuZGVmaW5lZDsgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VSZWdpc3RyeSB7XHJcbiAgLyoqXHJcbiAgICogUmVnaXN0ZXJzIGEgbmV3IHNlcnZpY2UgaW50byB0aGUgc2VydmljZSByZWdpc3RyeS4gQW55IGV4aXN0aW5nIG9uZSB3aWxsXHJcbiAgICogYmUgb3ZlcndyaXR0ZW4uIHRoZSBzZXJ2aWNlIGlzIHJlZ2lzdGVyZWQgdW5kZXIgc2VydmljZS5zZXJ2aWNlTmFtZVxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtBcGlTZXJ2aWNlfSBzZXJ2aWNlIFRoZSBzZXJ2aXZlIHRvIHJlZ2lzdGVyXHJcbiAgICovXHJcbiAgcmVnaXN0ZXJTZXJ2aWNlKHNlcnZpY2U6IEFwaVNlcnZpY2UpOiB2b2lkO1xyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIGdpdmVuIHNlcnZpY2UgZnJvbSB0aGUgcmVnaXN0cnkuIElmIHRoZXJlIGlzIG5vdCBhXHJcbiAgICogc2VydmljZSByZWdpc3RlcmVkIHVuZGVyIHRoYXQgbmFtZSwgdGhyb3dzIGFuZCBlcnJvclxyXG4gICAqXHJcbiAgICogQHRlbXBsYXRlIFQgVGhlIHR5cGUgb2YgdGhlIHNlcnZpY2VcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VydmljZU5hbWUgVGhlIG5hbWUgb2YgdGhlIHNlcnZpY2UuXHJcbiAgICogQHJldHVybnMge1R9IFRoZSByZXF1ZXN0ZWQgc2VydmljZVxyXG4gICAqL1xyXG4gIGdldFNlcnZpY2U8VCBleHRlbmRzIEFwaVNlcnZpY2U+KHNlcnZpY2VOYW1lOiBzdHJpbmcpOiBUO1xyXG59XHJcblxyXG5jbGFzcyBTZXJ2aWNlUmVnaXN0cnlJbXBsIGltcGxlbWVudHMgU2VydmljZVJlZ2lzdHJ5IHtcclxuICBwcml2YXRlIF9zZXJ2aWNlczogeyBbc2VydmljZU5hbWU6IHN0cmluZ106IEFwaVNlcnZpY2U7IH07XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMuX3NlcnZpY2VzID0ge307XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJTZXJ2aWNlKHNlcnZpY2U6IEFwaVNlcnZpY2UpOiB2b2lkIHtcclxuICAgIHRoaXMuX3NlcnZpY2VzW3NlcnZpY2Uuc2VydmljZU5hbWVdID0gc2VydmljZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTZXJ2aWNlPFQgZXh0ZW5kcyBBcGlTZXJ2aWNlPihzZXJ2aWNlTmFtZTogc3RyaW5nKTogVCB7XHJcbiAgICBpZiAoIXRoaXMuX3NlcnZpY2VzLmhhc093blByb3BlcnR5KHNlcnZpY2VOYW1lKSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIFNlcnZpY2UgJHtzZXJ2aWNlTmFtZX0gaXMgcmVnaXN0ZXJlZGApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLl9zZXJ2aWNlc1tzZXJ2aWNlTmFtZV0gYXMgVDtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBzdGF0aWMgY2xhc3MgdXNlZCBmb3IgZ2V0dGluZyBhY2Nlc3MgdG8gdGhlIHNpbmdsZSBpbnN0YW5jZVxyXG4gKiBvZiB0aGUgQXBpU2VydmljZVJlZ2lzdHJ5XHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQXBpU2VydmljZVJlZ2lzdHJ5IHtcclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhlIFNlcnZpY2VSZWdpc3RyeVxyXG4gICAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IGluc3RhbmNlKCk6IFNlcnZpY2VSZWdpc3RyeSB7XHJcbiAgICBpZiAoIXdpbmRvdy5fX3RhYmxlYXVBcGlTZXJ2aWNlUmVnaXN0cnkpIHtcclxuICAgICAgQXBpU2VydmljZVJlZ2lzdHJ5LnNldEluc3RhbmNlKG5ldyBTZXJ2aWNlUmVnaXN0cnlJbXBsKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghd2luZG93Ll9fdGFibGVhdUFwaVNlcnZpY2VSZWdpc3RyeSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Fzc2lnbmluZyBzZXJ2aWNlIHJlZ2lzdHJ5IGZhaWxlZCcpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB3aW5kb3cuX190YWJsZWF1QXBpU2VydmljZVJlZ2lzdHJ5O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGVscGVyIG1ldGhvZCB0byBvdmVycmlkZSB0aGUgcmVnaXN0cnkgaW5zdGFuY2UuIENhbiBiZSB1c2VkIGJ5IHVuaXQgdGVzdHNcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7U2VydmljZVJlZ2lzdHJ5fSBzZXJ2aWNlUmVnaXN0cnkgVGhlIG5ldyByZWdpc3RyeVxyXG4gICAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgc2V0SW5zdGFuY2Uoc2VydmljZVJlZ2lzdHJ5PzogU2VydmljZVJlZ2lzdHJ5KTogdm9pZCB7XHJcbiAgICB3aW5kb3cuX190YWJsZWF1QXBpU2VydmljZVJlZ2lzdHJ5ID0gc2VydmljZVJlZ2lzdHJ5O1xyXG4gIH1cclxuXHJcbiAgLy8gUHJpdmF0ZSB0byBhdm9pZCBhbnlvbmUgY29uc3RydWN0aW5nIHRoaXNcclxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge31cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvdHlwZXNjcmlwdC9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvU2VydmljZXMvU2VydmljZVJlZ2lzdHJ5LnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHtcclxuICBFeGVjdXRlUGFyYW1ldGVycyxcclxuICBJbnRlcm5hbEFwaURpc3BhdGNoZXIsXHJcbiAgUGFyYW1ldGVySWQsXHJcbiAgUXVhbnRpdGF0aXZlSW5jbHVkZWRWYWx1ZXMsXHJcbiAgU2VsZWN0aW9uVXBkYXRlVHlwZSBhcyBTZWxlY3Rpb25VcGRhdGVUeXBlSW50ZXJuYWwsXHJcbiAgVmVyYklkLFxyXG4gIFZpc3VhbElkXHJcbn0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgRGltZW5zaW9uU2VsZWN0aW9uTW9kZWwsXHJcbiAgSGllcmFyY2hpY2FsU2VsZWN0aW9uTW9kZWwsXHJcbiAgUmFuZ2VTZWxlY3Rpb25Nb2RlbCxcclxuICBTZWxlY3Rpb25Nb2RlbHNDb250YWluZXIsXHJcbiAgVHVwbGVTZWxlY3Rpb25Nb2RlbCxcclxuICBWYWx1ZVNlbGVjdGlvbk1vZGVsXHJcbn0gZnJvbSAnLi4vLi4vTW9kZWxzL1NlbGVjdGlvbk1vZGVscyc7XHJcbmltcG9ydCB7IFNlbGVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi9TZWxlY3Rpb25TZXJ2aWNlJztcclxuaW1wb3J0IHsgU2VydmljZU5hbWVzIH0gZnJvbSAnLi4vU2VydmljZVJlZ2lzdHJ5JztcclxuXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3Rpb25TZXJ2aWNlSW1wbCBpbXBsZW1lbnRzIFNlbGVjdGlvblNlcnZpY2Uge1xyXG4gIHByaXZhdGUgX2Rpc3BhdGNoZXI6IEludGVybmFsQXBpRGlzcGF0Y2hlcjtcclxuXHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKGRpc3BhdGNoZXI6IEludGVybmFsQXBpRGlzcGF0Y2hlcikge1xyXG4gICAgdGhpcy5fZGlzcGF0Y2hlciA9IGRpc3BhdGNoZXI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHNlcnZpY2VOYW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gU2VydmljZU5hbWVzLlNlbGVjdGlvbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZCB0byBjbGVhciBhbGwgdGhlIHNlbGVjdGVkIG1hcmtzIGZvciB0aGUgZ2l2ZW4gd29ya3NoZWV0LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHZpc3VhbElkXHJcbiAgICovXHJcbiAgcHVibGljIGNsZWFyU2VsZWN0ZWRNYXJrc0FzeW5jKHZpc3VhbElkOiBWaXN1YWxJZCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgcGFyYW1ldGVyczogRXhlY3V0ZVBhcmFtZXRlcnMgPSB7W1BhcmFtZXRlcklkLlZpc3VhbElkXTogdmlzdWFsSWR9O1xyXG4gICAgcmV0dXJuIHRoaXMuX2Rpc3BhdGNoZXIuZXhlY3V0ZShWZXJiSWQuQ2xlYXJTZWxlY3RlZE1hcmtzLCBwYXJhbWV0ZXJzKS50aGVuPHZvaWQ+KHJlc3BvbnNlID0+IHtcclxuICAgICAgcmV0dXJuIDsgLy8gRXhwZWN0aW5nIGFuIGVtcHR5IG1vZGVsIGFuZCBoZW5jZSB0aGUgdm9pZCByZXNwb25zZS5cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0aG9kIHRvIHNlbGVjdCBtYXJrcyBmb3IgdGhlIGdpdmVuIHdvcmtzaGVldC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB2aXN1YWxJZFxyXG4gICAqIEBwYXJhbSBzZWxlY3Rpb25Dcml0ZXJpYVxyXG4gICAqIEBwYXJhbSBzZWxlY3Rpb25VcGRhdGVUeXBlXHJcbiAgICovXHJcbiAgcHVibGljIHNlbGVjdE1hcmtzQnlWYWx1ZUFzeW5jKHZpc3VhbElkOiBWaXN1YWxJZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uQ3JpdGVyaWFzOiBBcnJheTxDb250cmFjdC5TZWxlY3Rpb25Dcml0ZXJpYT4sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvblVwZGF0ZVR5cGU6IENvbnRyYWN0LlNlbGVjdGlvblVwZGF0ZVR5cGUpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmIChzZWxlY3Rpb25Dcml0ZXJpYXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBzZWxlY3Rpb24gY3JpdGVyaWEuIFNlbGVjdGlvbnMgbWlzc2luZy4nKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzZWxlY3Rpb25UeXBlOiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRlU2VsZWN0aW9uVXBkYXRlVHlwZShzZWxlY3Rpb25VcGRhdGVUeXBlKTtcclxuICAgIGxldCBzZWxlY3Rpb25Dcml0ZXJpYVR5cGU6IFNlbGVjdGlvbkNyaXRlcmlhVHlwZSA9IHRoaXMudmFsaWRhdGVTZWxlY3Rpb25Dcml0ZXJpYShzZWxlY3Rpb25Dcml0ZXJpYXNbMF0pO1xyXG4gICAgbGV0IHNlbGVjdGlvbk1vZGVsQ29udGFpbmVyOiBTZWxlY3Rpb25Nb2RlbHNDb250YWluZXIgPSB0aGlzLnBhcnNlU2VsZWN0aW9uTWFya3Moc2VsZWN0aW9uQ3JpdGVyaWFzLCBzZWxlY3Rpb25Dcml0ZXJpYVR5cGUpO1xyXG5cclxuICAgIGNvbnN0IHBhcmFtZXRlcnM6IEV4ZWN1dGVQYXJhbWV0ZXJzID0ge1xyXG4gICAgICBbUGFyYW1ldGVySWQuVmlzdWFsSWRdOiB2aXN1YWxJZCxcclxuICAgICAgW1BhcmFtZXRlcklkLlNlbGVjdGlvblVwZGF0ZVR5cGVdOiBzZWxlY3Rpb25UeXBlXHJcbiAgICB9O1xyXG5cclxuICAgIHN3aXRjaCAoc2VsZWN0aW9uQ3JpdGVyaWFUeXBlKSB7XHJcbiAgICAgIGNhc2UgU2VsZWN0aW9uQ3JpdGVyaWFUeXBlLkhpZXJhcmNoaWNhbFR5cGU6IHtcclxuICAgICAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLkhpZXJWYWxTZWxlY3Rpb25Nb2RlbHNdID0gc2VsZWN0aW9uTW9kZWxDb250YWluZXIuaGllck1vZGVsQXJyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgU2VsZWN0aW9uQ3JpdGVyaWFUeXBlLlJhbmdlVHlwZToge1xyXG4gICAgICAgIHBhcmFtZXRlcnNbUGFyYW1ldGVySWQuUXVhbnRSYW5nZVNlbGVjdGlvbk1vZGVsc10gPSBzZWxlY3Rpb25Nb2RlbENvbnRhaW5lci5xdWFudE1vZGVsQXJyO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgU2VsZWN0aW9uQ3JpdGVyaWFUeXBlLkRpbWVuc2lvblR5cGU6IHtcclxuICAgICAgICBwYXJhbWV0ZXJzW1BhcmFtZXRlcklkLkRpbVZhbFNlbGVjdGlvbk1vZGVsc10gPSBzZWxlY3Rpb25Nb2RlbENvbnRhaW5lci5kaW1Nb2RlbEFycjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX2Rpc3BhdGNoZXIuZXhlY3V0ZShWZXJiSWQuU2VsZWN0QnlWYWx1ZSwgcGFyYW1ldGVycykudGhlbjx2b2lkPihyZXNwb25zZSA9PiB7XHJcbiAgICAgIC8vIEV4cGVjdGluZyBhbiBlbXB0eSBtb2RlbCBhbmQgaGVuY2UgdGhlIHZvaWQgcmVzcG9uc2UuXHJcbiAgICAgIHJldHVybjtcclxuICAgICAgLy8gVE9ETyBJbnZlc3RpZ2F0ZSB0aGUgZXJyb3IgcmVzcG9uc2Ugd2l0aCBtdWx0aXBsZSBvdXRwdXQgcGFyYW1zIGFuZCB0aHJvdyBlcnJvciBhY2NvcmRpbmdseS5cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgICAvKipcclxuICAgKiBNZXRob2QgdG8gc2VsZWN0IG1hcmtzIGZvciB0aGUgZ2l2ZW4gd29ya3NoZWV0LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHZpc3VhbElkXHJcbiAgICogQHBhcmFtIE1hcmtJbmZvXHJcbiAgICogQHBhcmFtIHNlbGVjdGlvblVwZGF0ZVR5cGVcclxuICAgKi9cclxuICBwdWJsaWMgc2VsZWN0TWFya3NCeUlkQXN5bmModmlzdWFsSWQ6IFZpc3VhbElkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrczogQXJyYXk8Q29udHJhY3QuTWFya0luZm8+LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25VcGRhdGVUeXBlOiBDb250cmFjdC5TZWxlY3Rpb25VcGRhdGVUeXBlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAobWFya3MubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBzZWxlY3Rpb24uIE1hcmtzIGluZm8gbWlzc2luZy4nKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzZWxlY3Rpb25UeXBlOiBzdHJpbmcgPSB0aGlzLnZhbGlkYXRlU2VsZWN0aW9uVXBkYXRlVHlwZShzZWxlY3Rpb25VcGRhdGVUeXBlKTtcclxuICAgIGxldCBzZWxlY3Rpb25Nb2RlbENvbnRhaW5lcjogU2VsZWN0aW9uTW9kZWxzQ29udGFpbmVyID0gdGhpcy5wYXJzZVNlbGVjdGlvbklkcyhtYXJrcyk7XHJcblxyXG4gICAgY29uc3QgcGFyYW1ldGVyczogRXhlY3V0ZVBhcmFtZXRlcnMgPSB7XHJcbiAgICAgIFtQYXJhbWV0ZXJJZC5WaXN1YWxJZF06IHZpc3VhbElkLFxyXG4gICAgICBbUGFyYW1ldGVySWQuU2VsZWN0aW9uVXBkYXRlVHlwZV06IHNlbGVjdGlvblR5cGUsXHJcbiAgICAgIFtQYXJhbWV0ZXJJZC5TZWxlY3Rpb25dOiBzZWxlY3Rpb25Nb2RlbENvbnRhaW5lci5zZWxlY3Rpb25cclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5fZGlzcGF0Y2hlci5leGVjdXRlKFZlcmJJZC5TZWxlY3RCeVZhbHVlLCBwYXJhbWV0ZXJzKS50aGVuPHZvaWQ+KHJlc3BvbnNlID0+IHtcclxuICAgICAgLy8gRXhwZWN0aW5nIGFuIGVtcHR5IG1vZGVsIGFuZCBoZW5jZSB0aGUgdm9pZCByZXNwb25zZS5cclxuICAgICAgcmV0dXJuO1xyXG4gICAgICAvLyBUT0RPIEludmVzdGlnYXRlIHRoZSBlcnJvciByZXNwb25zZSB3aXRoIG11bHRpcGxlIG91dHB1dCBwYXJhbXMgYW5kIHRocm93IGVycm9yIGFjY29yZGluZ2x5LlxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRob2QgdG8gcHJlcGFyZSB0aGUgcHJlcyBtb2RlbHMgZm9yIHNlbGVjdGlvbiBieSBNYXJrc0luZm9cclxuICAgKiBAcGFyYW0gbWFya3NcclxuICAgKi9cclxuICBwcml2YXRlIHBhcnNlU2VsZWN0aW9uSWRzKG1hcmtzOiBBcnJheTxDb250cmFjdC5NYXJrSW5mbz4pOiBTZWxlY3Rpb25Nb2RlbHNDb250YWluZXIge1xyXG4gICAgbGV0IGlkczogQXJyYXk8c3RyaW5nPiA9IFtdO1xyXG4gICAgbGV0IHNlbGVjdGlvbk1vZGVsQ29udGFpbmVyOiBTZWxlY3Rpb25Nb2RlbHNDb250YWluZXIgPSBuZXcgU2VsZWN0aW9uTW9kZWxzQ29udGFpbmVyKCk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1hcmtzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCB0dXBsZUlkOiBOdW1iZXIgfCB1bmRlZmluZWQgID0gbWFya3NbaV0udHVwbGVJZDtcclxuICAgICAgaWYgKHR1cGxlSWQgIT09IHVuZGVmaW5lZCAmJiB0dXBsZUlkICE9PSBudWxsKSB7IC8vIElmIHR1cGxlIGlkIGlzIHByb3ZpZGVkIHVzZSB0aGF0IGluc3RlYWQgb2YgcGFpclxyXG4gICAgICAgICBpZHMucHVzaCh0dXBsZUlkLnRvU3RyaW5nKCkpOyAvLyBjb2xsZWN0IHRoZSB0dXBsZSBpZHNcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdHVwbGVJZCBwcm92aWRlZC4nKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGlkcy5sZW5ndGggIT09IDApIHsgLy8gdHVwbGUgaWRzIGJhc2VkIHNlbGVjdGlvblxyXG4gICAgICBsZXQgdHVwbGVTZWxlY3Rpb25Nb2RlbDogVHVwbGVTZWxlY3Rpb25Nb2RlbCA9IG5ldyBUdXBsZVNlbGVjdGlvbk1vZGVsKCk7XHJcbiAgICAgIHR1cGxlU2VsZWN0aW9uTW9kZWwuc2VsZWN0aW9uVHlwZSA9ICd0dXBsZXMnO1xyXG4gICAgICB0dXBsZVNlbGVjdGlvbk1vZGVsLm9iamVjdElkcyA9IGlkcztcclxuICAgICAgc2VsZWN0aW9uTW9kZWxDb250YWluZXIuc2VsZWN0aW9uID0gdHVwbGVTZWxlY3Rpb25Nb2RlbDtcclxuICAgIH1cclxuICAgIHJldHVybiBzZWxlY3Rpb25Nb2RlbENvbnRhaW5lcjtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogTWV0aG9kIHRvIHByZXBhcmUgdGhlIHByZXMgbW9kZWxzIGZvciBzZWxlY3Rpb24gYnkgdmFsdWVzLlxyXG4gICAqXHJcbiAgICogU3VwcG9ydHMgMyB0eXBlcyBmb3Igc2VsZWN0aW9uOlxyXG4gICAqIDEpIGhpZXJhcmNoaWNhbCB2YWx1ZSBiYXNlZCBzZWxlY3Rpb25cclxuICAgKiAyKSByYW5nZSB2YWx1ZSBiYXNlZCBzZWxlY3Rpb25cclxuICAgKiAzKSBEaW1lbnNpb24gdmFsdWUgYmFzZWQgc2VsZWN0aW9uXHJcbiAgICpcclxuICAgKiBAcGFyYW0gbWFya3NcclxuICAgKiBAcGFyYW0gaGllck1vZGVsQXJyXHJcbiAgICogQHBhcmFtIGRpbU1vZGVsQXJyXHJcbiAgICogQHBhcmFtIHF1YW50TW9kZWxBcnJcclxuICAgKiBAcGFyYW0gc2VsZWN0aW9uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBwYXJzZVNlbGVjdGlvbk1hcmtzKHNlbGVjdGlvbkNyaXRlcmlhczogQXJyYXk8Q29udHJhY3QuU2VsZWN0aW9uQ3JpdGVyaWE+LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25UeXBlOiBTZWxlY3Rpb25Dcml0ZXJpYVR5cGUpOiBTZWxlY3Rpb25Nb2RlbHNDb250YWluZXIge1xyXG4gICAgbGV0IHNlbGVjdGlvbk1vZGVsQ29udGFpbmVyOiBTZWxlY3Rpb25Nb2RlbHNDb250YWluZXIgPSBuZXcgU2VsZWN0aW9uTW9kZWxzQ29udGFpbmVyKCk7XHJcbiAgICBsZXQgbWl4ZWRTZWxlY3Rpb25zRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlbGVjdGlvbkNyaXRlcmlhcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBzdCA9IHNlbGVjdGlvbkNyaXRlcmlhc1tpXTtcclxuICAgICAgaWYgKHN0LmZpZWxkTmFtZSAmJiAoc3QudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBzdC52YWx1ZSAhPT0gbnVsbCkpIHtcclxuICAgICAgICBsZXQgY2F0UmVnZXggPSBuZXcgUmVnRXhwKCcoXFxbW0EtWmEtejAtOV0rXSkuKicsICdnJyk7XHJcbiAgICAgICAgbGV0IHJhbmdlT3B0aW9uOiBDb250cmFjdC5SYW5nZVZhbHVlID0gc3QudmFsdWUgYXMgQ29udHJhY3QuUmFuZ2VWYWx1ZTtcclxuICAgICAgICBpZiAoY2F0UmVnZXgudGVzdChzdC5maWVsZE5hbWUpKSB7IC8vIEhpZXJhcmNoaWNhbCB2YWx1ZSBzZWxlY3Rpb25cclxuICAgICAgICAgIGlmIChzZWxlY3Rpb25UeXBlID09PSBTZWxlY3Rpb25Dcml0ZXJpYVR5cGUuSGllcmFyY2hpY2FsVHlwZSkge1xyXG4gICAgICAgICAgICBsZXQgaGllck1vZGVsOiBIaWVyYXJjaGljYWxTZWxlY3Rpb25Nb2RlbCA9IDxIaWVyYXJjaGljYWxTZWxlY3Rpb25Nb2RlbD4gdGhpcy5hZGRUb1BhcmFtc0xpc3Qoc3QuZmllbGROYW1lLCBzdC52YWx1ZSk7XHJcbiAgICAgICAgICAgIHNlbGVjdGlvbk1vZGVsQ29udGFpbmVyLmhpZXJNb2RlbEFyci5wdXNoKGhpZXJNb2RlbCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBtaXhlZFNlbGVjdGlvbnNFcnJvciA9IHRydWU7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoKDxDb250cmFjdC5SYW5nZVZhbHVlPiByYW5nZU9wdGlvbikubWluICE9PSB1bmRlZmluZWRcclxuICAgICAgICAgICAgICAgICYmICg8Q29udHJhY3QuUmFuZ2VWYWx1ZT4gcmFuZ2VPcHRpb24pLm1heCAhPT0gdW5kZWZpbmVkKSB7IC8vIFJhbmdlIHZhbHVlIHNlbGVjdGlvblxyXG4gICAgICAgICAgaWYgKHNlbGVjdGlvblR5cGUgPT09IFNlbGVjdGlvbkNyaXRlcmlhVHlwZS5SYW5nZVR5cGUpIHtcclxuICAgICAgICAgICAgbGV0IHF1YW50TW9kZWw6IFJhbmdlU2VsZWN0aW9uTW9kZWwgPSB0aGlzLmFkZFRvUmFuZ2VQYXJhbXNMaXN0KHN0LmZpZWxkTmFtZSwgcmFuZ2VPcHRpb24pO1xyXG4gICAgICAgICAgICBzZWxlY3Rpb25Nb2RlbENvbnRhaW5lci5xdWFudE1vZGVsQXJyLnB1c2gocXVhbnRNb2RlbCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBtaXhlZFNlbGVjdGlvbnNFcnJvciA9IHRydWU7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7IC8vIERpbWVuc2lvbiB2YWx1ZSBzZWxlY3Rpb25cclxuICAgICAgICAgIGlmIChzZWxlY3Rpb25UeXBlID09PSBTZWxlY3Rpb25Dcml0ZXJpYVR5cGUuRGltZW5zaW9uVHlwZSkge1xyXG4gICAgICAgICAgICBsZXQgZGltTW9kZWw6IERpbWVuc2lvblNlbGVjdGlvbk1vZGVsID0gPERpbWVuc2lvblNlbGVjdGlvbk1vZGVsPiB0aGlzLmFkZFRvUGFyYW1zTGlzdChzdC5maWVsZE5hbWUsIHN0LnZhbHVlKTtcclxuICAgICAgICAgICAgc2VsZWN0aW9uTW9kZWxDb250YWluZXIuZGltTW9kZWxBcnIucHVzaChkaW1Nb2RlbCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBtaXhlZFNlbGVjdGlvbnNFcnJvciA9IHRydWU7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChtaXhlZFNlbGVjdGlvbnNFcnJvcikge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RpZmZlcmVudCB0eXBlcyBvZiBzZWxlY3Rpb24gY3JpdGVyaWFzIHByb3ZpZGVkLicpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHNlbGVjdGlvbk1vZGVsQ29udGFpbmVyO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gc2VsZWN0aW9uQ3JpdGVyaWFzIFZhbGlkYXRlIGFuZCBkZXRlcm1pbmUgdGhlIHNlbGVjdGlvbiBjcml0ZXJpYXMgdHlwZS5cclxuICAgKi9cclxuICBwcml2YXRlIHZhbGlkYXRlU2VsZWN0aW9uQ3JpdGVyaWEoc2VsZWN0aW9uQ3JpdGVyaWE6IENvbnRyYWN0LlNlbGVjdGlvbkNyaXRlcmlhKTogU2VsZWN0aW9uQ3JpdGVyaWFUeXBlIHtcclxuICAgIGxldCBzZWxlY3Rpb25UeXBlOiBTZWxlY3Rpb25Dcml0ZXJpYVR5cGU7XHJcbiAgICAvLyBEZXRlcm1pbmUgdGhlIHR5cGUgb2Ygc2VsZWN0aW9uLCB0aGlzIGNvbW1hbmQgaXMgYnkgbG9va2luZyBhdCB0aGUgZmlyc3Qgc2VsZWN0aW9uXHJcbiAgICBsZXQgY3JpdDogQ29udHJhY3QuU2VsZWN0aW9uQ3JpdGVyaWEgPSBzZWxlY3Rpb25Dcml0ZXJpYTtcclxuXHJcbiAgICBsZXQgY2F0UmVnZXggPSBuZXcgUmVnRXhwKCcoXFxbW0EtWmEtejAtOV0rXSkuKicsICdnJyk7XHJcbiAgICBsZXQgcmFuZ2VPcHRpb246IENvbnRyYWN0LlJhbmdlVmFsdWUgPSBjcml0LnZhbHVlIGFzIENvbnRyYWN0LlJhbmdlVmFsdWU7XHJcblxyXG4gICAgaWYgKGNyaXQuZmllbGROYW1lICYmIChjcml0LnZhbHVlICE9PSB1bmRlZmluZWQgJiYgY3JpdC52YWx1ZSAhPT0gbnVsbCkpIHtcclxuICAgICAgaWYgKGNhdFJlZ2V4LnRlc3QoY3JpdC5maWVsZE5hbWUpKSB7IC8vIEhpZXJhcmNoaWNhbCB2YWx1ZSBzZWxlY3Rpb25cclxuICAgICAgICBzZWxlY3Rpb25UeXBlID0gU2VsZWN0aW9uQ3JpdGVyaWFUeXBlLkhpZXJhcmNoaWNhbFR5cGU7XHJcbiAgICAgIH0gZWxzZSBpZiAoKDxDb250cmFjdC5SYW5nZVZhbHVlPiByYW5nZU9wdGlvbikubWluICE9PSB1bmRlZmluZWRcclxuICAgICAgICAgICAgICAgICYmICg8Q29udHJhY3QuUmFuZ2VWYWx1ZT4gcmFuZ2VPcHRpb24pLm1heCAhPT0gdW5kZWZpbmVkKSB7IC8vIFJhbmdlIHZhbHVlIHNlbGVjdGlvblxyXG4gICAgICAgIHNlbGVjdGlvblR5cGUgPSBTZWxlY3Rpb25Dcml0ZXJpYVR5cGUuUmFuZ2VUeXBlO1xyXG4gICAgICB9IGVsc2UgeyAvLyBEaW1lcnNpb24gdmFsdWUgc2VsZWN0aW9uXHJcbiAgICAgICAgc2VsZWN0aW9uVHlwZSA9IFNlbGVjdGlvbkNyaXRlcmlhVHlwZS5EaW1lbnNpb25UeXBlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IgKCdJbnZhbGlkIHNlbGVjdGlvbiBjcml0ZXJpYSBmb3JtYXQuJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc2VsZWN0aW9uVHlwZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZCB0byB0cmFuc2Zvcm0gdGhlIGtleSB2YWx1ZSBwYWlyIGludG8gdmFsdWUgYmFzZWQgcHJlcyBtb2RlbCBvYmplY3QuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gdmFsdWVTZWxlY3Rpb25Nb2RlbFxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWVcclxuICAgKiBAcGFyYW0gdmFsdWVcclxuICAgKi9cclxuICBwcml2YXRlIGFkZFRvUGFyYW1zTGlzdChmaWVsZE5hbWU6IHN0cmluZywgdmFsdWU6IG9iamVjdCk6IFZhbHVlU2VsZWN0aW9uTW9kZWwge1xyXG4gICAgbGV0IHZhbHVlU2VsZWN0aW9uTW9kZWw6IFZhbHVlU2VsZWN0aW9uTW9kZWwgPSBuZXcgVmFsdWVTZWxlY3Rpb25Nb2RlbCgpO1xyXG4gICAgbGV0IG1hcmtWYWx1ZXM6IEFycmF5PHN0cmluZz4gPSBbXTtcclxuXHJcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICBsZXQgdmFsdWVBcnI6IEFycmF5PHN0cmluZz4gPSB2YWx1ZTtcclxuICAgICAgZm9yICggbGV0IGkgPSAwOyBpIDwgdmFsdWVBcnIubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBtYXJrVmFsdWVzLnB1c2godmFsdWVBcnJbaV0udG9TdHJpbmcoKSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG1hcmtWYWx1ZXMucHVzaCh2YWx1ZS50b1N0cmluZygpKTtcclxuICAgIH1cclxuXHJcbiAgICB2YWx1ZVNlbGVjdGlvbk1vZGVsLnF1YWxpZmllZEZpZWxkQ2FwdGlvbiA9IGZpZWxkTmFtZTtcclxuICAgIHZhbHVlU2VsZWN0aW9uTW9kZWwuc2VsZWN0VmFsdWVzID0gbWFya1ZhbHVlcztcclxuICAgIHJldHVybiB2YWx1ZVNlbGVjdGlvbk1vZGVsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0aG9kIHRvIHRyYW5zZm9ybSB0aGUga2V5IHZhbHVlIHBhaXIgaW50byByYW5nZSBiYXNlZCBzZWxlY3Rpb24gcHJlcyBtb2RlbC5cclxuICAgKlxyXG4gICAqIFRPRE86IE5lZWQgdG8gaGFuZGxlIHRoZSBwYXJzaW5nIG9mIGRhdGUgdHlwZSB2YWx1ZXMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gdmFsdWVTZWxlY3Rpb25Nb2RlbFxyXG4gICAqIEBwYXJhbSBmaWVsZE5hbWVcclxuICAgKiBAcGFyYW0gdmFsdWVcclxuICAgKi9cclxuICBwcml2YXRlIGFkZFRvUmFuZ2VQYXJhbXNMaXN0KGZpZWxkTmFtZTogc3RyaW5nLCB2YWx1ZTogQ29udHJhY3QuUmFuZ2VWYWx1ZSk6IFJhbmdlU2VsZWN0aW9uTW9kZWwge1xyXG4gICAgbGV0IHJhbmdlU2VsZWN0aW9uTW9kZWw6IFJhbmdlU2VsZWN0aW9uTW9kZWwgPSBuZXcgUmFuZ2VTZWxlY3Rpb25Nb2RlbCgpO1xyXG4gICAgcmFuZ2VTZWxlY3Rpb25Nb2RlbC5xdWFsaWZpZWRGaWVsZENhcHRpb24gPSBmaWVsZE5hbWU7XHJcbiAgICBpZiAodmFsdWUubWF4ICE9PSB1bmRlZmluZWQgJiYgdmFsdWUubWF4ICE9PSBudWxsKSB7XHJcbiAgICAgIHJhbmdlU2VsZWN0aW9uTW9kZWwubWF4VmFsdWUgPSB2YWx1ZS5tYXgudG9TdHJpbmcoKTtcclxuICAgIH1cclxuICAgIGlmICh2YWx1ZS5taW4gIT09IHVuZGVmaW5lZCAmJiB2YWx1ZS5taW4gIT09IG51bGwpIHtcclxuICAgICAgcmFuZ2VTZWxlY3Rpb25Nb2RlbC5taW5WYWx1ZSA9IHZhbHVlLm1pbi50b1N0cmluZygpO1xyXG4gICAgfVxyXG4gICAgcmFuZ2VTZWxlY3Rpb25Nb2RlbC5pbmNsdWRlZCA9IHRoaXMudmFsaWRhdGVOdWxsT3B0aW9uVHlwZSh2YWx1ZS5udWxsT3B0aW9uKTtcclxuICAgIHJldHVybiByYW5nZVNlbGVjdGlvbk1vZGVsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0aG9kIHRvIHZhbGlkYXRlIHRoZSBzZWxlY3Rpb24gdXBkYXRlIHR5cGUuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gc2VsZWN0aW9uVXBkYXRlVHlwZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgdmFsaWRhdGVTZWxlY3Rpb25VcGRhdGVUeXBlKHNlbGVjdGlvblVwZGF0ZVR5cGU6IENvbnRyYWN0LlNlbGVjdGlvblVwZGF0ZVR5cGUpOiBzdHJpbmcge1xyXG4gICAgaWYgKHNlbGVjdGlvblVwZGF0ZVR5cGUgPT09IENvbnRyYWN0LlNlbGVjdGlvblVwZGF0ZVR5cGUuUmVwbGFjZSkge1xyXG4gICAgICByZXR1cm4gU2VsZWN0aW9uVXBkYXRlVHlwZUludGVybmFsLlJlcGxhY2U7XHJcbiAgICB9IGVsc2UgaWYgKHNlbGVjdGlvblVwZGF0ZVR5cGUgPT09IENvbnRyYWN0LlNlbGVjdGlvblVwZGF0ZVR5cGUuQWRkKSB7XHJcbiAgICAgIHJldHVybiBTZWxlY3Rpb25VcGRhdGVUeXBlSW50ZXJuYWwuQWRkO1xyXG4gICAgfSBlbHNlIGlmIChzZWxlY3Rpb25VcGRhdGVUeXBlID09PSBDb250cmFjdC5TZWxlY3Rpb25VcGRhdGVUeXBlLlJlbW92ZSkge1xyXG4gICAgICByZXR1cm4gU2VsZWN0aW9uVXBkYXRlVHlwZUludGVybmFsLlJlbW92ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBTZWxlY3Rpb25VcGRhdGVUeXBlSW50ZXJuYWwuUmVwbGFjZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldGhvZCB0byB2YWxpZGF0ZSB0aGUgaW5jbHVkZSB0eXBlIGZvciByYW5nZSBzZWxlY3Rpb24uXHJcbiAgICpcclxuICAgKiBAcGFyYW0gbnVsbE9wdGlvblxyXG4gICAqL1xyXG4gIHByaXZhdGUgdmFsaWRhdGVOdWxsT3B0aW9uVHlwZShudWxsT3B0aW9uOiBDb250cmFjdC5GaWx0ZXJOdWxsT3B0aW9uIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcclxuICAgIGlmIChudWxsT3B0aW9uKSB7XHJcbiAgICAgIGlmIChudWxsT3B0aW9uID09PSBDb250cmFjdC5GaWx0ZXJOdWxsT3B0aW9uLk51bGxWYWx1ZXMpIHtcclxuICAgICAgICByZXR1cm4gUXVhbnRpdGF0aXZlSW5jbHVkZWRWYWx1ZXMuSW5jbHVkZU51bGw7XHJcbiAgICAgIH0gZWxzZSBpZiAobnVsbE9wdGlvbiA9PT0gQ29udHJhY3QuRmlsdGVyTnVsbE9wdGlvbi5Ob25OdWxsVmFsdWVzKSB7XHJcbiAgICAgICAgcmV0dXJuIFF1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzLkluY2x1ZGVOb25OdWxsO1xyXG4gICAgICB9IGVsc2UgaWYgKG51bGxPcHRpb24gPT09IENvbnRyYWN0LkZpbHRlck51bGxPcHRpb24uQWxsVmFsdWVzKSB7XHJcbiAgICAgICAgcmV0dXJuIFF1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzLkluY2x1ZGVBbGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gUXVhbnRpdGF0aXZlSW5jbHVkZWRWYWx1ZXMuSW5jbHVkZUFsbDtcclxuICB9XHJcblxyXG59XHJcblxyXG4vKipcclxuICogRW51bSBmb3IgdGhlIGRpZmZlcmVudCBzZWxlY3Rpb24gY3JpdGVyaWEgdHlwZXMuXHJcbiAqL1xyXG5lbnVtIFNlbGVjdGlvbkNyaXRlcmlhVHlwZSB7XHJcbiAgSGllcmFyY2hpY2FsVHlwZSA9IDEsXHJcbiAgUmFuZ2VUeXBlID0gMixcclxuICBEaW1lbnNpb25UeXBlID0gMyxcclxuICBUdXBsZXNUeXBlID0gNCxcclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvdHlwZXNjcmlwdC9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvU2VydmljZXMvaW1wbC9TZWxlY3Rpb25TZXJ2aWNlSW1wbC50c1xuICoqLyIsIi8qKlxyXG4gKiBTZWxlY3Rpb24gTW9kZWwuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgU2VsZWN0aW9uTW9kZWwge1xyXG4gIHF1YWxpZmllZEZpZWxkQ2FwdGlvbjogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogVmFsdWUgYmFzZWQgc2VsZWN0aW9uIG1vZGVsLiBNZWFudCBmb3IgaGllcmFyY2hpY2FsLCByYW5nZSBhbmQgY2F0ZWdvcmljYWwgc2VsZWN0aW9ucy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBWYWx1ZVNlbGVjdGlvbk1vZGVsIGV4dGVuZHMgU2VsZWN0aW9uTW9kZWwge1xyXG4gIHNlbGVjdFZhbHVlczogQXJyYXk8c3RyaW5nPiA9IFtdO1xyXG59XHJcblxyXG4vKipcclxuICogSGllcmFyY2hpY2FsIHZhbHVlIHNlbGVjdGlvbiBtb2RlbFxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEhpZXJhcmNoaWNhbFNlbGVjdGlvbk1vZGVsIGV4dGVuZHMgVmFsdWVTZWxlY3Rpb25Nb2RlbCB7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSYW5nZSBiYXNlZCB2YWx1ZSBzZWxlY3Rpb24gbW9kZWxcclxuICovXHJcbmV4cG9ydCBjbGFzcyBSYW5nZVNlbGVjdGlvbk1vZGVsIGV4dGVuZHMgU2VsZWN0aW9uTW9kZWwge1xyXG4gIG1pblZhbHVlOiBzdHJpbmc7XHJcbiAgbWF4VmFsdWU6IHN0cmluZztcclxuICBpbmNsdWRlZDogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogRGltZW5zaW9uIHZhbHVlIHNlbGVjdGlvbiBtb2RlbFxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIERpbWVuc2lvblNlbGVjdGlvbk1vZGVsIGV4dGVuZHMgVmFsdWVTZWxlY3Rpb25Nb2RlbCB7XHJcbn1cclxuLyoqXHJcbiAqIFR1cGxlIGJhc2VkIHNlbGVjdGlvbiBtb2RlbFxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFR1cGxlU2VsZWN0aW9uTW9kZWwge1xyXG4gIHNlbGVjdGlvblR5cGU6IHN0cmluZztcclxuICBvYmplY3RJZHM6IEFycmF5PHN0cmluZz4gPSBbXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbnRhaW5lciBjbGFzcyB0byBwb3B1bGF0ZSBhbGwgdGhlIHNlbGVjdGlvbiBtb2RlbHMgd2hlbiBwYXJzaW5nIGlucHV0XHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgU2VsZWN0aW9uTW9kZWxzQ29udGFpbmVyIHtcclxuICBoaWVyTW9kZWxBcnI6IEFycmF5PEhpZXJhcmNoaWNhbFNlbGVjdGlvbk1vZGVsPiA9IFtdO1xyXG4gIGRpbU1vZGVsQXJyOiBBcnJheTxEaW1lbnNpb25TZWxlY3Rpb25Nb2RlbD4gPSBbXTtcclxuICBxdWFudE1vZGVsQXJyOiBBcnJheTxSYW5nZVNlbGVjdGlvbk1vZGVsPiA9IFtdO1xyXG4gIHNlbGVjdGlvbjogVHVwbGVTZWxlY3Rpb25Nb2RlbDtcclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiBEOi9kZXYvdHlwZXNjcmlwdC9qcy1hcGkvYXBpLXNoYXJlZC9zcmMvTW9kZWxzL1NlbGVjdGlvbk1vZGVscy50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBEYXNoYm9hcmRJbXBsIH0gZnJvbSAnLi9JbnRlcm5hbC9EYXNoYm9hcmRJbXBsJztcclxuaW1wb3J0IHsgU2hlZXQgfSBmcm9tICcuL1NoZWV0JztcclxuXHJcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmQgZXh0ZW5kcyBTaGVldCBpbXBsZW1lbnRzIENvbnRyYWN0LkRhc2hib2FyZCB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgX2Rhc2hib2FyZEltcGw6IERhc2hib2FyZEltcGwpIHtcclxuICAgIHN1cGVyKF9kYXNoYm9hcmRJbXBsKTtcclxuICAgIF9kYXNoYm9hcmRJbXBsLmluaXRpYWxpemVXaXRoUHVibGljSW50ZXJmYWNlcyh0aGlzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgd29ya3NoZWV0cygpOiBBcnJheTxDb250cmFjdC5Xb3Jrc2hlZXQ+IHtcclxuICAgIHJldHVybiB0aGlzLl9kYXNoYm9hcmRJbXBsLndvcmtzaGVldHM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG9iamVjdHMoKTogQXJyYXk8Q29udHJhY3QuRGFzaGJvYXJkT2JqZWN0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGFzaGJvYXJkSW1wbC5vYmplY3RzO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiAuLi9zcmMvRGFzaGJvYXJkLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IEV2ZW50TGlzdGVuZXJNYW5hZ2VyIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXNoYXJlZCc7XHJcblxyXG5pbXBvcnQgeyBTaGVldEltcGwgfSBmcm9tICcuL0ludGVybmFsL1NoZWV0SW1wbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgU2hlZXQgZXh0ZW5kcyBFdmVudExpc3RlbmVyTWFuYWdlciBpbXBsZW1lbnRzIENvbnRyYWN0LlNoZWV0IHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfc2hlZXRJbXBsOiBTaGVldEltcGwpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9zaGVldEltcGwubmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2hlZXRUeXBlKCk6IENvbnRyYWN0LlNoZWV0VHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2hlZXRJbXBsLnNoZWV0VHlwZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2l6ZSgpOiBDb250cmFjdC5TaXplIHtcclxuICAgIHJldHVybiB0aGlzLl9zaGVldEltcGwuc2l6ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmaW5kUGFyYW1ldGVyQXN5bmMocGFyYW1ldGVyTmFtZTogc3RyaW5nKTogUHJvbWlzZTxDb250cmFjdC5QYXJhbWV0ZXIgfCB1bmRlZmluZWQ+IHtcclxuICAgIHJldHVybiB0aGlzLl9zaGVldEltcGwuZmluZFBhcmFtZXRlckFzeW5jKHBhcmFtZXRlck5hbWUsIHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFBhcmFtZXRlcnNBc3luYygpOiBQcm9taXNlPEFycmF5PENvbnRyYWN0LlBhcmFtZXRlcj4+IHtcclxuICAgIHJldHVybiB0aGlzLl9zaGVldEltcGwuZ2V0UGFyYW1ldGVyc0FzeW5jKHRoaXMpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiAuLi9zcmMvU2hlZXQudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5cclxuLyoqXHJcbiAqIEltcGxlbWVudGF0aW9uIG9mIHRoZSBleHRlcm5hbCBEYXNoYm9hcmRDb250ZW50IG5hbWVzcGFjZS5cclxuICogVGhpcyBkb2VzIG5vdCBmb2xsb3cgdGhlIEltcGwgcGF0dGVybiBhcyBEYXNoYm9hcmRDb250ZW50IGlzXHJcbiAqIGN1cnJlbnRseSBqdXN0IGEgKHNpbmdsZSkgcHJvcGVydHkgYmFnLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIERhc2hib2FyZENvbnRlbnQgaW1wbGVtZW50cyBDb250cmFjdC5EYXNoYm9hcmRDb250ZW50IHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfZGFzaGJvYXJkOiBDb250cmFjdC5EYXNoYm9hcmQpIHsgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGRhc2hib2FyZCgpOiBDb250cmFjdC5EYXNoYm9hcmQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Rhc2hib2FyZDtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogLi4vc3JjL05hbWVzcGFjZXMvRGFzaGJvYXJkQ29udGVudC50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBBZGRJbkVudmlyb25tZW50IH0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzIGFzIEVudW1NYXBwaW5ncyB9IGZyb20gJ0B0YWJsZWF1L2FwaS1zaGFyZWQnO1xyXG5cclxuLyoqXHJcbiAqIEltcGxlbWVudGF0aW9uIG9mIHRoZSBleHRlcm5hbCBlbnZpcm9ubWVudCBuYW1lc3BhY2UuXHJcbiAqIEVudmlyb25tZW50IGRvZXMgbm90IGZvbGxvdyB0aGUgSW1wbCBwYXR0ZXJuIGFzIGl0IGlzXHJcbiAqIGp1c3QgYSBwcm9wZXJ0eSBiYWcuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRW52aXJvbm1lbnQgaW1wbGVtZW50cyBDb250cmFjdC5FbnZpcm9ubWVudCB7XHJcbiAgcHJpdmF0ZSBfYXBpVmVyc2lvbjogc3RyaW5nO1xyXG4gIHByaXZhdGUgX2NvbnRleHQ6IENvbnRyYWN0LkFkZEluQ29udGV4dDtcclxuICBwcml2YXRlIF9sYW5ndWFnZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgX2xvY2FsZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgX21vZGU6IENvbnRyYWN0LkFkZEluTW9kZTtcclxuICBwcml2YXRlIF9vcGVyYXRpbmdTeXN0ZW06IHN0cmluZztcclxuICBwcml2YXRlIF90YWJsZWF1VmVyc2lvbjogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IoYWRkSW5FbnZpcm9ubWVudDogQWRkSW5FbnZpcm9ubWVudCkge1xyXG4gICAgdGhpcy5fYXBpVmVyc2lvbiA9IGFkZEluRW52aXJvbm1lbnQuYXBpVmVyc2lvbjtcclxuICAgIHRoaXMuX2NvbnRleHQgPSBFbnVtTWFwcGluZ3MuYWRkSW5Db250ZXh0LmNvbnZlcnQoYWRkSW5FbnZpcm9ubWVudC5hZGRJbkNvbnRleHQpO1xyXG4gICAgdGhpcy5fbGFuZ3VhZ2UgPSBhZGRJbkVudmlyb25tZW50LmFkZEluTGFuZ3VhZ2U7XHJcbiAgICB0aGlzLl9sb2NhbGUgPSBhZGRJbkVudmlyb25tZW50LmFkZEluTG9jYWxlO1xyXG4gICAgdGhpcy5fbW9kZSA9IEVudW1NYXBwaW5ncy5hZGRJbk1vZGUuY29udmVydChhZGRJbkVudmlyb25tZW50LmFkZEluTW9kZSk7XHJcbiAgICB0aGlzLl9vcGVyYXRpbmdTeXN0ZW0gPSBhZGRJbkVudmlyb25tZW50Lm9wZXJhdGluZ1N5c3RlbTtcclxuICAgIHRoaXMuX3RhYmxlYXVWZXJzaW9uID0gYWRkSW5FbnZpcm9ubWVudC50YWJsZWF1VmVyc2lvbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYXBpVmVyc2lvbigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FwaVZlcnNpb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNvbnRleHQoKTogQ29udHJhY3QuQWRkSW5Db250ZXh0IHtcclxuICAgIHJldHVybiB0aGlzLl9jb250ZXh0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBsYW5ndWFnZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xhbmd1YWdlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBsb2NhbGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9sb2NhbGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG1vZGUoKTogQ29udHJhY3QuQWRkSW5Nb2RlIHtcclxuICAgIHJldHVybiB0aGlzLl9tb2RlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBvcGVyYXRpbmdTeXN0ZW0oKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9vcGVyYXRpbmdTeXN0ZW07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHRhYmxlYXVWZXJzaW9uKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGFibGVhdVZlcnNpb247XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIC4uL3NyYy9OYW1lc3BhY2VzL0Vudmlyb25tZW50LnRzXG4gKiovIiwiaW1wb3J0IHsgU2V0dGluZ3MgYXMgU2V0dGluZ3NDb250cmFjdCB9IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBTZXR0aW5nc0ltcGwgfSBmcm9tICcuLi9JbnRlcm5hbC9TZXR0aW5nc0ltcGwnO1xyXG5pbXBvcnQgeyBTZXR0aW5nc0NvbGxlY3Rpb24gfSBmcm9tICcuLi9TZXJ2aWNlcy9TZXR0aW5nc1NlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIEltcGxlbWVudGF0aW9uIG9mIHRoZSBleHRlcm5hbCBzZXR0aW5ncyBuYW1lc3BhY2UuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgU2V0dGluZ3MgaW1wbGVtZW50cyBTZXR0aW5nc0NvbnRyYWN0IHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBzZXR0aW5nc0ltcGw6IFNldHRpbmdzSW1wbCkgeyB9XHJcblxyXG4gIHB1YmxpYyBlcmFzZShrZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXR0aW5nc0ltcGwuZXJhc2Uoa2V5KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQoa2V5OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3NJbXBsLmdldChrZXkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEFsbCgpOiBTZXR0aW5nc0NvbGxlY3Rpb24ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3NJbXBsLmdldEFsbCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpc01vZGlmaWVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ3NJbXBsLmlzTW9kaWZpZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2F2ZUFzeW5jKCk6IFByb21pc2U8U2V0dGluZ3NDb2xsZWN0aW9uPiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXR0aW5nc0ltcGwuc2F2ZUFzeW5jKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0KGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldHRpbmdzSW1wbC5zZXQoa2V5LCB2YWx1ZSk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIC4uL3NyYy9OYW1lc3BhY2VzL1NldHRpbmdzLnRzXG4gKiovIiwiaW1wb3J0IHsgSW50ZXJuYWxBcGlEaXNwYXRjaGVyIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcbmltcG9ydCB7IEFwaVNlcnZpY2VSZWdpc3RyeSB9IGZyb20gJ0B0YWJsZWF1L2FwaS1zaGFyZWQnO1xuXG5pbXBvcnQgeyBJbml0aWFsaXphdGlvblNlcnZpY2VJbXBsIH0gZnJvbSAnLi9JbXBsL0luaXRpYWxpemF0aW9uU2VydmljZUltcGwnO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlSW1wbCB9IGZyb20gICcuL0ltcGwvU2V0dGluZ3NTZXJ2aWNlSW1wbCc7XG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckFsbEFkZEluU2VydmljZXMoZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyKTogdm9pZCB7XG4gIEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5yZWdpc3RlclNlcnZpY2UobmV3IEluaXRpYWxpemF0aW9uU2VydmljZUltcGwoZGlzcGF0Y2hlcikpO1xuICBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UucmVnaXN0ZXJTZXJ2aWNlKG5ldyBTZXR0aW5nc1NlcnZpY2VJbXBsKGRpc3BhdGNoZXIpKTtcbn1cblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIC4uL3NyYy9TZXJ2aWNlcy9SZWdpc3RlckFsbEFkZEluU2VydmljZXMudHNcbiAqKi8iLCJpbXBvcnQgeyBBZGRJbkJvb3RzdHJhcEluZm8sIEludGVybmFsQXBpRGlzcGF0Y2hlciwgVmVyYklkIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcblxuaW1wb3J0IHsgQWRkSW5TZXJ2aWNlTmFtZXMgfSBmcm9tICcuLi9BZGRJblNlcnZpY2VOYW1lcyc7XG5pbXBvcnQgeyBJbml0aWFsaXphdGlvblNlcnZpY2UgfSBmcm9tICcuLi9Jbml0aWFsaXphdGlvblNlcnZpY2UnO1xuXG5leHBvcnQgY2xhc3MgSW5pdGlhbGl6YXRpb25TZXJ2aWNlSW1wbCBpbXBsZW1lbnRzIEluaXRpYWxpemF0aW9uU2VydmljZSB7XG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIGRpc3BhdGNoZXI6IEludGVybmFsQXBpRGlzcGF0Y2hlcikgeyB9XG5cbiAgcHVibGljIGdldCBzZXJ2aWNlTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBBZGRJblNlcnZpY2VOYW1lcy5Jbml0aWFsaXphdGlvblNlcnZpY2U7XG4gIH1cblxuICBwdWJsaWMgaW5pdGlhbGl6ZURhc2hib2FyZEFkZEluQXN5bmMoKTogUHJvbWlzZTxBZGRJbkJvb3RzdHJhcEluZm8+IHtcbiAgICAvLyBXZSBkb24ndCBuZWVkIGFueSBwYXJhbWV0ZXJzIGZvciB0aGlzIGNhbGwgYmVjYXVzZSB0aGV5IGFyZSBhZGRlZCBpbiBmb3IgdXMgYnkgdGhlIGRpc3BhdGNoZXJcbiAgICByZXR1cm4gdGhpcy5kaXNwYXRjaGVyLmV4ZWN1dGUoVmVyYklkLkluaXRpYWxpemVBZGRJbiwge30pLnRoZW48QWRkSW5Cb290c3RyYXBJbmZvPihyZXNwb25zZSA9PiB7XG4gICAgICAvLyBUT0RPIC0gVmFsaWRhdGUgcmV0dXJuIHZhbHVlXG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHJlc3BvbnNlLnJlc3VsdCBhcyBBZGRJbkJvb3RzdHJhcEluZm87XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pO1xuICB9XG59XG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiAuLi9zcmMvU2VydmljZXMvSW1wbC9Jbml0aWFsaXphdGlvblNlcnZpY2VJbXBsLnRzXG4gKiovIiwiaW1wb3J0IHtcclxuICBBZGRJblNldHRpbmdzSW5mbyxcclxuICBFeGVjdXRlUGFyYW1ldGVycyxcclxuICBJbnRlcm5hbEFwaURpc3BhdGNoZXIsXHJcbiAgUGFyYW1ldGVySWQsXHJcbiAgVmVyYklkXHJcbn0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IEFkZEluU2VydmljZU5hbWVzIH0gZnJvbSAnLi4vQWRkSW5TZXJ2aWNlTmFtZXMnO1xyXG5pbXBvcnQgeyBTZXR0aW5nc0NvbGxlY3Rpb24sIFNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uL1NldHRpbmdzU2VydmljZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgU2V0dGluZ3NTZXJ2aWNlSW1wbCBpbXBsZW1lbnRzIFNldHRpbmdzU2VydmljZSB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlzcGF0Y2hlcjogSW50ZXJuYWxBcGlEaXNwYXRjaGVyKSB7IH1cclxuXHJcbiAgcHVibGljIGdldCBzZXJ2aWNlTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIEFkZEluU2VydmljZU5hbWVzLlNldHRpbmdzU2VydmljZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzYXZlU2V0dGluZ3NBc3luYyhzZXR0aW5nczogU2V0dGluZ3NDb2xsZWN0aW9uKTogUHJvbWlzZTxTZXR0aW5nc0NvbGxlY3Rpb24+IHtcclxuICAgIGNvbnN0IHBhcmFtZXRlcnM6IEV4ZWN1dGVQYXJhbWV0ZXJzID0ge1tQYXJhbWV0ZXJJZC5TZXR0aW5nc1ZhbHVlc106IHNldHRpbmdzfTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5kaXNwYXRjaGVyLmV4ZWN1dGUoVmVyYklkLlNhdmVBZGRJblNldHRpbmdzLCBwYXJhbWV0ZXJzKS50aGVuPFNldHRpbmdzQ29sbGVjdGlvbj4odmFsdWUgPT4ge1xyXG4gICAgICBjb25zdCByZXN1bHQgPSB2YWx1ZS5yZXN1bHQgYXMgQWRkSW5TZXR0aW5nc0luZm87XHJcblxyXG4gICAgICBpZiAoIXJlc3VsdCB8fCAhcmVzdWx0LnNldHRpbmdzVmFsdWVzKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcm5hbCBlcnJvciBzYXZpbmcgc2V0dGluZ3MuJyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybihyZXN1bHQuc2V0dGluZ3NWYWx1ZXMpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIC4uL3NyYy9TZXJ2aWNlcy9JbXBsL1NldHRpbmdzU2VydmljZUltcGwudHNcbiAqKi8iLCJpbXBvcnQgeyBWZXJzaW9uTnVtYmVyIGFzIFZlcnNpb25OdW1iZXJDb250cmFjdCB9IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5kZWNsYXJlIHZhciBBRERJTl9BUElfVkVSU0lPTl9OVU1CRVI6IHN0cmluZztcclxuXHJcbi8qKlxyXG4gKiBSZXByZXNlbnRzIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgdGhlIGFkZGluIGxpYnJhcnlcclxuICovXHJcbmV4cG9ydCBjbGFzcyBWZXJzaW9uTnVtYmVyIGltcGxlbWVudHMgVmVyc2lvbk51bWJlckNvbnRyYWN0IHtcclxuXHJcbiAgLy8gVXNpbmcgc29tZSB3ZWJwYWNrIHRyaWNrcywgd2UgY2FuIGluamVjdCB0aGlzIHZlcnNpb24gaW50byBvdXIgY29kZSAoa2luZGEgbGlrZSBjKysgcHJlcHJvY2Vzc29yIHN0dWZmKVxyXG4gIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogVmVyc2lvbk51bWJlciA9IG5ldyBWZXJzaW9uTnVtYmVyKEFERElOX0FQSV9WRVJTSU9OX05VTUJFUik7XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIHNpbmdsZXRvbiBpbnN0YW5jZSBvZiB0aGUgdmVyc2lvbiBudW1iZXIuXHJcbiAgICovXHJcbiAgcHVibGljIHN0YXRpYyBnZXQgSW5zdGFuY2UoKTogVmVyc2lvbk51bWJlciB7XHJcbiAgICByZXR1cm4gVmVyc2lvbk51bWJlci5faW5zdGFuY2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9tYWpvcjogbnVtYmVyO1xyXG4gIHByaXZhdGUgX21pbm9yOiBudW1iZXI7XHJcbiAgcHJpdmF0ZSBfZml4OiBudW1iZXI7XHJcblxyXG4gIC8vIHByaXZhdGUgY29uc3RydWN0b3Igc28gZXZlcnlvbmUgdXNlcyB0aGUgc2luZ2xldG9uIGluc3RhbmNlXHJcbiAgcHJpdmF0ZSBjb25zdHJ1Y3Rvcih2ZXJzaW9uU3RyaW5nOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHBhcnRzID0gdmVyc2lvblN0cmluZy5zcGxpdCgnLicpLm1hcChwID0+IHBhcnNlSW50KHAsIDEwKSk7XHJcbiAgICBpZiAocGFydHMubGVuZ3RoICE9PSAzKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB2ZXJzaW9uIG51bWJlcjogJyArIHZlcnNpb25TdHJpbmcpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX21ham9yID0gcGFydHNbMF07XHJcbiAgICB0aGlzLl9taW5vciA9IHBhcnRzWzFdO1xyXG4gICAgdGhpcy5fZml4ID0gcGFydHNbMl07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG1ham9yKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWFqb3I7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG1pbm9yKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fbWlub3I7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGZpeCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpeDtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogLi4vc3JjL1ZlcnNpb25OdW1iZXIudHNcbiAqKi8iLCJpbXBvcnQgKiBhcyBDb250cmFjdCBmcm9tICdAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBBZGRJbkRhc2hib2FyZEluZm8sIERhc2hib2FyZE9iamVjdFR5cGUsIFNoZWV0UGF0aCwgVmlzdWFsSWQgfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBJbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MsIFBvaW50LCBTaXplIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXNoYXJlZCc7XHJcblxyXG5pbXBvcnQgeyBEYXNoYm9hcmRPYmplY3QgfSBmcm9tICcuLi9EYXNoYm9hcmRPYmplY3QnO1xyXG5pbXBvcnQgeyBXb3Jrc2hlZXQgfSBmcm9tICcuLi9Xb3Jrc2hlZXQnO1xyXG5pbXBvcnQgeyBTaGVldEltcGwgfSBmcm9tICcuL1NoZWV0SW1wbCc7XHJcbmltcG9ydCB7IFNoZWV0SW5mb0ltcGwgfSBmcm9tICcuL1NoZWV0SW5mb0ltcGwnO1xyXG5pbXBvcnQgeyBXb3Jrc2hlZXRJbXBsIH0gZnJvbSAnLi9Xb3Jrc2hlZXRJbXBsJztcclxuXHJcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRJbXBsIGV4dGVuZHMgU2hlZXRJbXBsIHtcclxuICBwcml2YXRlIF93b3Jrc2hlZXRzOiBBcnJheTxDb250cmFjdC5Xb3Jrc2hlZXQ+O1xyXG4gIHByaXZhdGUgX29iamVjdHM6IEFycmF5PENvbnRyYWN0LkRhc2hib2FyZE9iamVjdD47XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIF9pbmZvOiBBZGRJbkRhc2hib2FyZEluZm8sIHByaXZhdGUgX3NoZWV0UGF0aDogU2hlZXRQYXRoKSB7XHJcbiAgICBzdXBlcihuZXcgU2hlZXRJbmZvSW1wbChfaW5mby5uYW1lLCBDb250cmFjdC5TaGVldFR5cGUuRGFzaGJvYXJkLCBuZXcgU2l6ZShfaW5mby5zaXplLmgsIF9pbmZvLnNpemUudykpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgd29ya3NoZWV0cygpOiBBcnJheTxDb250cmFjdC5Xb3Jrc2hlZXQ+IHtcclxuICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXRzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBvYmplY3RzKCk6IEFycmF5PENvbnRyYWN0LkRhc2hib2FyZE9iamVjdD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX29iamVjdHM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaW5pdGlhbGl6ZVdpdGhQdWJsaWNJbnRlcmZhY2VzKGRhc2hib2FyZDogQ29udHJhY3QuRGFzaGJvYXJkKTogdm9pZCB7XHJcbiAgICB0aGlzLl93b3Jrc2hlZXRzID0gbmV3IEFycmF5PFdvcmtzaGVldD4oKTtcclxuICAgIHRoaXMuX29iamVjdHMgPSBuZXcgQXJyYXk8Q29udHJhY3QuRGFzaGJvYXJkT2JqZWN0PigpO1xyXG5cclxuICAgIC8vIFByb2Nlc3MgYWxsIHRoZSB6b25lcyB3aGljaCBhcmUgY29udGFpbmVkIGluIHRoaXMgZGFzaGJvYXJkXHJcbiAgICBmb3IgKGNvbnN0IHpvbmUgb2YgdGhpcy5faW5mby56b25lcykge1xyXG4gICAgICBsZXQgd29ya3NoZWV0OiBXb3Jrc2hlZXQgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgICBjb25zdCB6b25lU2l6ZSA9IG5ldyBTaXplKHpvbmUuaGVpZ2h0LCB6b25lLndpZHRoKTtcclxuXHJcbiAgICAgIGlmICh6b25lLnpvbmVUeXBlID09PSBEYXNoYm9hcmRPYmplY3RUeXBlLldvcmtzaGVldCkge1xyXG4gICAgICAgIGNvbnN0IHNoZWV0SW5mbyA9IG5ldyBTaGVldEluZm9JbXBsKHpvbmUubmFtZSwgQ29udHJhY3QuU2hlZXRUeXBlLldvcmtzaGVldCwgem9uZVNpemUpO1xyXG4gICAgICAgIGNvbnN0IHZpeklkOiBWaXN1YWxJZCA9IHtcclxuICAgICAgICAgIHdvcmtzaGVldDogem9uZS5uYW1lLFxyXG4gICAgICAgICAgZGFzaGJvYXJkOiB0aGlzLl9pbmZvLm5hbWUsXHJcbiAgICAgICAgICBzdG9yeWJvYXJkOiB0aGlzLl9zaGVldFBhdGguc3Rvcnlib2FyZCxcclxuICAgICAgICAgIGZsaXBib2FyZFpvbmVJRDogdGhpcy5fc2hlZXRQYXRoLmZsaXBib2FyZFpvbmVJRCxcclxuICAgICAgICAgIHN0b3J5UG9pbnRJRDogdGhpcy5fc2hlZXRQYXRoLnN0b3J5UG9pbnRJRFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGNvbnN0IHdvcmtzaGVldEltcGwgPSBuZXcgV29ya3NoZWV0SW1wbChzaGVldEluZm8sIHZpeklkLCBkYXNoYm9hcmQpO1xyXG4gICAgICAgIHdvcmtzaGVldCA9IG5ldyBXb3Jrc2hlZXQod29ya3NoZWV0SW1wbCk7XHJcbiAgICAgICAgdGhpcy5fd29ya3NoZWV0cy5wdXNoKHdvcmtzaGVldCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IHpvbmVQb2ludCA9IG5ldyBQb2ludCh6b25lLngsIHpvbmUueSk7XHJcblxyXG4gICAgICBjb25zdCBkYXNoYm9hcmRPYmplY3QgPSBuZXcgRGFzaGJvYXJkT2JqZWN0KFxyXG4gICAgICAgIGRhc2hib2FyZCxcclxuICAgICAgICBJbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MuZGFzaGJvYXJkT2JqZWN0VHlwZS5jb252ZXJ0KHpvbmUuem9uZVR5cGUpLFxyXG4gICAgICAgIHpvbmVQb2ludCxcclxuICAgICAgICB6b25lU2l6ZSxcclxuICAgICAgICB3b3Jrc2hlZXRcclxuICAgICAgKTtcclxuXHJcbiAgICAgIHRoaXMuX29iamVjdHMucHVzaChkYXNoYm9hcmRPYmplY3QpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiAuLi9zcmMvSW50ZXJuYWwvRGFzaGJvYXJkSW1wbC50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG4vKipcclxuICogSW1wbGVtZW50YXRpb24gb2YgdGhlIGRhc2hib2FyZCBvYmplY3RzIC0gdGhlIHpvbmVzIGluIGEgZGFzaGJvYXJkLlxyXG4gKiBUaGlzIGRvZXMgbm90IGZvbGxvdyB0aGUgSW1wbCBwYXR0ZXJuIGFzIGl0IGlzIGp1c3QgYSBwcm9wZXJ0eSBiYWcuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRGFzaGJvYXJkT2JqZWN0IGltcGxlbWVudHMgQ29udHJhY3QuRGFzaGJvYXJkT2JqZWN0IHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9kYXNoYm9hcmQ6IENvbnRyYWN0LkRhc2hib2FyZCxcclxuICAgIHByaXZhdGUgX3R5cGU6IENvbnRyYWN0LkRhc2hib2FyZE9iamVjdFR5cGUsXHJcbiAgICBwcml2YXRlIF9wb3NpdGlvbjogQ29udHJhY3QuUG9pbnQsXHJcbiAgICBwcml2YXRlIF9zaXplOiBDb250cmFjdC5TaXplLFxyXG4gICAgcHJpdmF0ZSBfd29ya3NoZWV0OiBDb250cmFjdC5Xb3Jrc2hlZXQgfCB1bmRlZmluZWRcclxuICApIHsgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGRhc2hib2FyZCgpOiBDb250cmFjdC5EYXNoYm9hcmQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Rhc2hib2FyZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdHlwZSgpOiBDb250cmFjdC5EYXNoYm9hcmRPYmplY3RUeXBlIHtcclxuICAgIHJldHVybiB0aGlzLl90eXBlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBwb3NpdGlvbigpOiBDb250cmFjdC5Qb2ludCB7XHJcbiAgICByZXR1cm4gdGhpcy5fcG9zaXRpb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHNpemUoKTogQ29udHJhY3QuU2l6ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2l6ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgd29ya3NoZWV0KCk6IENvbnRyYWN0LldvcmtzaGVldCB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fd29ya3NoZWV0O1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiAuLi9zcmMvRGFzaGJvYXJkT2JqZWN0LnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IFNoZWV0IH0gZnJvbSAnLi9TaGVldCc7XHJcblxyXG5pbXBvcnQgeyBXb3Jrc2hlZXRJbXBsIH0gZnJvbSAnLi9JbnRlcm5hbC9Xb3Jrc2hlZXRJbXBsJztcclxuXHJcbmV4cG9ydCBjbGFzcyBXb3Jrc2hlZXQgZXh0ZW5kcyBTaGVldCBpbXBsZW1lbnRzIENvbnRyYWN0LldvcmtzaGVldCB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgX3dvcmtzaGVldEltcGw6IFdvcmtzaGVldEltcGwpIHtcclxuICAgIHN1cGVyKF93b3Jrc2hlZXRJbXBsKTtcclxuXHJcbiAgICAvLyBDYWxsIHRvIGluaXRpYWxpemUgZXZlbnRzIGFuZCB0aGVuIGNhbGwgZG93biB0byB0aGUgZXZlbnQgbGlzdGVuZXIgbWFuYWdlciB0byBoYW5kbGUgdGhpbmdzXHJcbiAgICB0aGlzLl93b3Jrc2hlZXRJbXBsLmluaXRpYWxpemVFdmVudHModGhpcykuZm9yRWFjaChlID0+IHRoaXMuYWRkTmV3RXZlbnRUeXBlKGUpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgcGFyZW50RGFzaGJvYXJkKCk6IENvbnRyYWN0LkRhc2hib2FyZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fd29ya3NoZWV0SW1wbC5wYXJlbnREYXNoYm9hcmQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXBwbHlGaWx0ZXJBc3luYyhcclxuICAgIGZpZWxkTmFtZTogc3RyaW5nLCB2YWx1ZXM6IEFycmF5PHN0cmluZz4sIHVwZGF0ZVR5cGU6IENvbnRyYWN0LkZpbHRlclVwZGF0ZVR5cGUsIG9wdGlvbnM6IENvbnRyYWN0LkZpbHRlck9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5fd29ya3NoZWV0SW1wbC5hcHBseUZpbHRlckFzeW5jKGZpZWxkTmFtZSwgdmFsdWVzLCB1cGRhdGVUeXBlLCBvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhcHBseVJhbmdlRmlsdGVyQXN5bmMoZmllbGROYW1lOiBzdHJpbmcsIGZpbHRlck9wdGlvbnM6IENvbnRyYWN0LlJhbmdlRmlsdGVyT3B0aW9ucyk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fd29ya3NoZWV0SW1wbC5hcHBseVJhbmdlRmlsdGVyQXN5bmMoZmllbGROYW1lLCBmaWx0ZXJPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhckZpbHRlckFzeW5jKGZpZWxkTmFtZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXRJbXBsLmNsZWFyRmlsdGVyQXN5bmMoZmllbGROYW1lKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRBbmFseXRpY09iamVjdHNBc3luYygpOiBQcm9taXNlPEFycmF5PENvbnRyYWN0LkFuYWx5dGljc09iamVjdD4+IHtcclxuICAgIHRocm93IG5ldyBFcnJvcignQVBJIGNhbGwgbm90IHlldCBpbXBsZW1lbnRlZC4nKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXREYXRhU291cmNlc0FzeW5jKCk6IFByb21pc2U8QXJyYXk8Q29udHJhY3QuRGF0YVNvdXJjZT4+IHtcclxuICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXRJbXBsLmdldERhdGFTb3VyY2VzQXN5bmMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRFbmNvZGluZ3NBc3luYygpOiBQcm9taXNlPEFycmF5PENvbnRyYWN0LkVuY29kaW5nPj4ge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdBUEkgY2FsbCBub3QgeWV0IGltcGxlbWVudGVkLicpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEZpbHRlcnNBc3luYygpOiBQcm9taXNlPENvbnRyYWN0LkZpbHRlcltdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fd29ya3NoZWV0SW1wbC5nZXRGaWx0ZXJzQXN5bmMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRTZWxlY3RlZE1hcmtzQXN5bmMoKTogUHJvbWlzZTxDb250cmFjdC5NYXJrc0NvbGxlY3Rpb24+IHtcclxuICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXRJbXBsLmdldFNlbGVjdGVkTWFya3NBc3luYygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEhpZ2hsaWdodGVkTWFya3NBc3luYygpOiBQcm9taXNlPENvbnRyYWN0Lk1hcmtzQ29sbGVjdGlvbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldEltcGwuZ2V0SGlnaGxpZ2h0ZWRNYXJrc0FzeW5jKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U3VtbWFyeURhdGFBc3luYyhvcHRpb25zOiBDb250cmFjdC5HZXRTdW1tYXJ5RGF0YU9wdGlvbnMpOiBQcm9taXNlPENvbnRyYWN0LkRhdGFUYWJsZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldEltcGwuZ2V0U3VtbWFyeURhdGFBc3luYyhvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRVbmRlcmx5aW5nRGF0YUFzeW5jKG9wdGlvbnM6IENvbnRyYWN0LkdldFVuZGVybHlpbmdEYXRhT3B0aW9ucyk6IFByb21pc2U8Q29udHJhY3QuRGF0YVRhYmxlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fd29ya3NoZWV0SW1wbC5nZXRVbmRlcmx5aW5nRGF0YUFzeW5jKG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsZWFyU2VsZWN0ZWRNYXJrc0FzeW5jKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldEltcGwuY2xlYXJTZWxlY3RlZE1hcmtzQXN5bmMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RNYXJrc0J5SURBc3luYyhtYXJrc0luZm86IEFycmF5PENvbnRyYWN0Lk1hcmtJbmZvPiwgdXBkYXRlVHlwZTogQ29udHJhY3QuU2VsZWN0aW9uVXBkYXRlVHlwZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdBUEkgY2FsbCBub3QgeWV0IGltcGxlbWVudGVkLicpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdE1hcmtzQnlWYWx1ZUFzeW5jKHNlbGVjdGlvbnM6IEFycmF5PENvbnRyYWN0LlNlbGVjdGlvbkNyaXRlcmlhPixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uVXBkYXRlVHlwZTogQ29udHJhY3QuU2VsZWN0aW9uVXBkYXRlVHlwZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldEltcGwuc2VsZWN0TWFya3NCeVZhbHVlQXN5bmMoc2VsZWN0aW9ucywgc2VsZWN0aW9uVXBkYXRlVHlwZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZWN0TWFya3NCeUlkQXN5bmMoc2VsZWN0aW9uczogQXJyYXk8Q29udHJhY3QuTWFya0luZm8+LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25VcGRhdGVUeXBlOiBDb250cmFjdC5TZWxlY3Rpb25VcGRhdGVUeXBlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fd29ya3NoZWV0SW1wbC5zZWxlY3RNYXJrc0J5SWRBc3luYyhzZWxlY3Rpb25zLCBzZWxlY3Rpb25VcGRhdGVUeXBlKTtcclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogLi4vc3JjL1dvcmtzaGVldC50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBTaGVldFBhdGggfSBmcm9tICdAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3QnO1xyXG5pbXBvcnQgeyBBcGlTZXJ2aWNlUmVnaXN0cnksIFBhcmFtZXRlcnNTZXJ2aWNlLCBTZXJ2aWNlTmFtZXMgfSBmcm9tICdAdGFibGVhdS9hcGktc2hhcmVkJztcclxuXHJcbmltcG9ydCB7IFNoZWV0SW5mb0ltcGwgfSBmcm9tICcuL1NoZWV0SW5mb0ltcGwnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFNoZWV0SW1wbCB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgX3NoZWV0SW5mb0ltcGw6IFNoZWV0SW5mb0ltcGwpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NoZWV0SW5mb0ltcGwubmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2hlZXRUeXBlKCk6IENvbnRyYWN0LlNoZWV0VHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2hlZXRJbmZvSW1wbC5zaGVldFR5cGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHNoZWV0UGF0aCgpOiBTaGVldFBhdGgge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NoZWV0SW5mb0ltcGwuc2hlZXRQYXRoO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzaXplKCk6IENvbnRyYWN0LlNpemUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NoZWV0SW5mb0ltcGwuc2hlZXRTaXplO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZpbmRQYXJhbWV0ZXJBc3luYyhwYXJhbWV0ZXJOYW1lOiBzdHJpbmcsIHNoZWV0OiBDb250cmFjdC5TaGVldCk6IFByb21pc2U8Q29udHJhY3QuUGFyYW1ldGVyIHwgdW5kZWZpbmVkPiB7XHJcbiAgICBjb25zdCBzZXJ2aWNlID0gQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2U8UGFyYW1ldGVyc1NlcnZpY2U+KFNlcnZpY2VOYW1lcy5QYXJhbWV0ZXJzKTtcclxuICAgIHJldHVybiBzZXJ2aWNlLmZpbmRQYXJhbWV0ZXJCeU5hbWVBc3luYyhwYXJhbWV0ZXJOYW1lLCBzaGVldCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0UGFyYW1ldGVyc0FzeW5jKHNoZWV0OiBDb250cmFjdC5TaGVldCk6IFByb21pc2U8QXJyYXk8Q29udHJhY3QuUGFyYW1ldGVyPj4ge1xyXG4gICAgY29uc3Qgc2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPFBhcmFtZXRlcnNTZXJ2aWNlPihTZXJ2aWNlTmFtZXMuUGFyYW1ldGVycyk7XHJcbiAgICByZXR1cm4gc2VydmljZS5nZXRQYXJhbWV0ZXJzRm9yU2hlZXRBc3luYyh0aGlzLnNoZWV0UGF0aCwgc2hlZXQpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiAuLi9zcmMvSW50ZXJuYWwvU2hlZXRJbXBsLnRzXG4gKiovIiwiaW1wb3J0IHsgU2hlZXRUeXBlLCBTaXplIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgU2hlZXRQYXRoIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmV4cG9ydCBjbGFzcyBTaGVldEluZm9JbXBsIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9uYW1lOiBzdHJpbmcsXHJcbiAgICBwcml2YXRlIF9zaGVldFR5cGU6IFNoZWV0VHlwZSxcclxuICAgIHByaXZhdGUgX3NoZWV0U2l6ZTogU2l6ZVxyXG4gICkgeyB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX25hbWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHNoZWV0U2l6ZSgpOiBTaXplIHtcclxuICAgIHJldHVybiB0aGlzLl9zaGVldFNpemU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHNoZWV0VHlwZSgpOiBTaGVldFR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NoZWV0VHlwZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2hlZXRQYXRoKCk6IFNoZWV0UGF0aCB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBzaGVldE5hbWU6IHRoaXMubmFtZSxcclxuICAgICAgaXNEYXNoYm9hcmQ6IHRoaXMuc2hlZXRUeXBlID09PSBTaGVldFR5cGUuRGFzaGJvYXJkXHJcbiAgICAgIC8vIFRPRE8gLSBTdG9yaWVzXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiAuLi9zcmMvSW50ZXJuYWwvU2hlZXRJbmZvSW1wbC50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCB7XHJcbiAgRGF0YVNjaGVtYSxcclxuICBEYXRhU291cmNlIGFzIERhdGFTb3VyY2VJbmZvLFxyXG4gIEZpbHRlckV2ZW50LCBOb3RpZmljYXRpb25JZCxcclxuICBWaXN1YWxJZCxcclxuICBXb3Jrc2hlZXREYXRhU291cmNlSW5mb1xyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQge1xyXG4gIEFwaVNlcnZpY2VSZWdpc3RyeSxcclxuICBEYXRhU291cmNlU2VydmljZSxcclxuICBGaWx0ZXJDaGFuZ2VkRXZlbnQsXHJcbiAgRmlsdGVyU2VydmljZSxcclxuICBHZXREYXRhU2VydmljZSxcclxuICBHZXREYXRhVHlwZSxcclxuICBNYXJrc1NlbGVjdGVkRXZlbnQsXHJcbiAgTm90aWZpY2F0aW9uU2VydmljZSxcclxuICBTZWxlY3Rpb25TZXJ2aWNlLFxyXG4gIFNlcnZpY2VOYW1lcyxcclxuICBTaW5nbGVFdmVudE1hbmFnZXIsXHJcbiAgU2luZ2xlRXZlbnRNYW5hZ2VySW1wbFxyXG59IGZyb20gJ0B0YWJsZWF1L2FwaS1zaGFyZWQnO1xyXG5cclxuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJy4uL0RhdGFTb3VyY2UnO1xyXG5pbXBvcnQgeyBXb3Jrc2hlZXQgfSBmcm9tICcuLi9Xb3Jrc2hlZXQnO1xyXG5cclxuaW1wb3J0IHsgRGF0YVNvdXJjZUltcGwgfSBmcm9tICcuL0RhdGFTb3VyY2VJbXBsJztcclxuaW1wb3J0IHsgU2hlZXRJbXBsIH0gZnJvbSAnLi9TaGVldEltcGwnO1xyXG5pbXBvcnQgeyBTaGVldEluZm9JbXBsIH0gZnJvbSAnLi9TaGVldEluZm9JbXBsJztcclxuXHJcbmNvbnN0IHZpc3VhbElkc0FyZUVxdWFsID0gZnVuY3Rpb24oYTogVmlzdWFsSWQsIGI6IFZpc3VhbElkKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIGEgJiYgYiAmJlxyXG4gICAgYS53b3Jrc2hlZXQgPT09IGIud29ya3NoZWV0ICYmXHJcbiAgICBhLmRhc2hib2FyZCA9PT0gYi5kYXNoYm9hcmQgJiZcclxuICAgIGEuc3Rvcnlib2FyZCA9PT0gYi5zdG9yeWJvYXJkICYmXHJcbiAgICBhLnN0b3J5UG9pbnRJRCA9PT0gYi5zdG9yeVBvaW50SUQgJiZcclxuICAgIGEuZmxpcGJvYXJkWm9uZUlEID09PSBiLmZsaXBib2FyZFpvbmVJRDtcclxufTtcclxuXHJcbmV4cG9ydCBjbGFzcyBXb3Jrc2hlZXRJbXBsIGV4dGVuZHMgU2hlZXRJbXBsIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3Ioc2hlZXRJbmZvSW1wbDogU2hlZXRJbmZvSW1wbCxcclxuICAgICAgICAgICAgICAgICAgICAgcHJpdmF0ZSBfdmlzdWFsSWQ6IFZpc3VhbElkLFxyXG4gICAgICAgICAgICAgICAgICAgICBwcml2YXRlIF9wYXJlbnREYXNoYm9hcmQ6IENvbnRyYWN0LkRhc2hib2FyZCkge1xyXG4gICAgc3VwZXIoc2hlZXRJbmZvSW1wbCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHBhcmVudERhc2hib2FyZCgpOiBDb250cmFjdC5EYXNoYm9hcmQge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BhcmVudERhc2hib2FyZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhlbHBlciBtZXRob2Qgd2hpY2ggZ29lcyB0aHJvdWdoIGFuZCByZWdpc3RlcnMgZWFjaCBldmVudCB0eXBlIHRoaXMgaW1wbCBrbm93cyBhYm91dFxyXG4gICAqIHdpdGggdGhlIE5vdGlmaWNhdGlvblNlcnZpY2UuIEl0IHJldHVybnMgYW4gYXJyYXkgb2YgU2luZ2xlRXZlbnRNYW5hZ2VyIG9iamVjdHMgd2hpY2hcclxuICAgKiBjYW4gdGhlbiBiZSBwYXNzZWQgdG8gYW4gRXZlbnRMaXN0ZW5lck1hbmFnZXIgdG8gaGFuZGxlIHVzZXIgcmVnaXN0cmF0aW9uIC8gdW5yZWdpc3RyYXRpb24uXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge1dvcmtzaGVldH0gd29ya3NoZWV0IFRoZSB3b3Jrc2hlZXQgb2JqZWN0IHdoaWNoIHdpbGwgYmUgaW5jbHVkZWQgd2l0aCB0aGUgZXZlbnQgbm90aWZpY2F0aW9uc1xyXG4gICAqIEByZXR1cm5zIHtBcnJheTxTaW5nbGVFdmVudE1hbmFnZXI+fSBDb2xsZWN0aW9uIG9mIGV2ZW50IG1hbmFnZXJzIHRvIHBhc3MgdG8gYW4gRXZlbnRMaXN0ZW5lck1hbmFnZXJcclxuICAgKi9cclxuICBwdWJsaWMgaW5pdGlhbGl6ZUV2ZW50cyh3b3Jrc2hlZXQ6IFdvcmtzaGVldCk6IEFycmF5PFNpbmdsZUV2ZW50TWFuYWdlcj4ge1xyXG4gICAgY29uc3QgcmVzdWx0cyA9IG5ldyBBcnJheTxTaW5nbGVFdmVudE1hbmFnZXI+KCk7XHJcbiAgICBsZXQgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBub3RpZmljYXRpb25TZXJ2aWNlID0gQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2U8Tm90aWZpY2F0aW9uU2VydmljZT4oU2VydmljZU5hbWVzLk5vdGlmaWNhdGlvbik7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIC8vIElmIHdlIGRvbid0IGhhdmUgdGhpcyBzZXJ2aWNlIHJlZ2lzdGVyZWQsIGp1c3QgcmV0dXJuXHJcbiAgICAgIHJldHVybiByZXN1bHRzO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEluaXRpYWxpemUgYWxsIG9mIHRoZSBldmVudCBtYW5hZ2VycyB3ZSdsbCBuZWVkIChvbmUgZm9yIGVhY2ggZXZlbnQgdHlwZSlcclxuICAgIGNvbnN0IG1hcmtzRXZlbnQgPSBuZXcgU2luZ2xlRXZlbnRNYW5hZ2VySW1wbDxNYXJrc1NlbGVjdGVkRXZlbnQ+KENvbnRyYWN0LlRhYmxlYXVFdmVudFR5cGUuTWFya1NlbGVjdGlvbkNoYW5nZWQpO1xyXG4gICAgbm90aWZpY2F0aW9uU2VydmljZS5yZWdpc3RlckhhbmRsZXIoTm90aWZpY2F0aW9uSWQuU2VsZWN0ZWRNYXJrc0NoYW5nZWQsIChtb2RlbCkgPT4ge1xyXG4gICAgICBjb25zdCB2aXN1YWxJZCA9IG1vZGVsIGFzIFZpc3VhbElkO1xyXG4gICAgICByZXR1cm4gdmlzdWFsSWRzQXJlRXF1YWwodmlzdWFsSWQsIHRoaXMudmlzdWFsSWQpO1xyXG4gICAgfSwgKHZpejogVmlzdWFsSWQpID0+IHtcclxuICAgICAgbWFya3NFdmVudC50cmlnZ2VyRXZlbnQoKCkgPT4gbmV3IE1hcmtzU2VsZWN0ZWRFdmVudCh3b3Jrc2hlZXQpKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGZpbHRlckV2ZW50ID0gbmV3IFNpbmdsZUV2ZW50TWFuYWdlckltcGw8RmlsdGVyQ2hhbmdlZEV2ZW50PihDb250cmFjdC5UYWJsZWF1RXZlbnRUeXBlLkZpbHRlckNoYW5nZWQpO1xyXG4gICAgbm90aWZpY2F0aW9uU2VydmljZS5yZWdpc3RlckhhbmRsZXIoTm90aWZpY2F0aW9uSWQuRmlsdGVyQ2hhbmdlZCwgKG1vZGVsKSA9PiB7XHJcbiAgICAgIGNvbnN0IGZpbHRlckV2ZW50UmVzcG9uc2UgPSBtb2RlbCBhcyBGaWx0ZXJFdmVudDtcclxuICAgICAgcmV0dXJuIHRoaXMudmlzdWFsSWQud29ya3NoZWV0ID09PSBmaWx0ZXJFdmVudFJlc3BvbnNlLnZpc3VhbElkLndvcmtzaGVldDtcclxuICAgIH0sIChldmVudDogRmlsdGVyRXZlbnQpID0+IHtcclxuICAgICAgZmlsdGVyRXZlbnQudHJpZ2dlckV2ZW50KCgpID0+IG5ldyBGaWx0ZXJDaGFuZ2VkRXZlbnQod29ya3NoZWV0LCBldmVudC5maWVsZE5hbWUpKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJlc3VsdHMucHVzaChtYXJrc0V2ZW50KTtcclxuICAgIHJlc3VsdHMucHVzaChmaWx0ZXJFdmVudCk7XHJcblxyXG4gICAgLy8gVE9ETyAtIG90aGVyIGV2ZW50IHR5cGVzXHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdHM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHZpc3VhbElkKCk6IFZpc3VhbElkIHtcclxuICAgIHJldHVybiB0aGlzLl92aXN1YWxJZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhcHBseUZpbHRlckFzeW5jKFxyXG4gICAgZmllbGROYW1lOiBzdHJpbmcsIHZhbHVlczogQXJyYXk8c3RyaW5nPiwgdXBkYXRlVHlwZTogQ29udHJhY3QuRmlsdGVyVXBkYXRlVHlwZSwgb3B0aW9uczogQ29udHJhY3QuRmlsdGVyT3B0aW9ucyk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICAgIGNvbnN0IHNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxGaWx0ZXJTZXJ2aWNlPihTZXJ2aWNlTmFtZXMuRmlsdGVyKTtcclxuICAgICAgcmV0dXJuIHNlcnZpY2UuYXBwbHlGaWx0ZXJBc3luYyh0aGlzLnZpc3VhbElkLCBmaWVsZE5hbWUsIHZhbHVlcywgdXBkYXRlVHlwZSwgb3B0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gIHB1YmxpYyBhcHBseVJhbmdlRmlsdGVyQXN5bmMoZmllbGROYW1lOiBzdHJpbmcsIGZpbHRlck9wdGlvbnM6IENvbnRyYWN0LlJhbmdlRmlsdGVyT3B0aW9ucyk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICBjb25zdCBzZXJ2aWNlID0gQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2U8RmlsdGVyU2VydmljZT4oU2VydmljZU5hbWVzLkZpbHRlcik7XHJcbiAgICByZXR1cm4gc2VydmljZS5hcHBseVJhbmdlRmlsdGVyQXN5bmModGhpcy52aXN1YWxJZCwgZmllbGROYW1lLCBmaWx0ZXJPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhckZpbHRlckFzeW5jKGZpZWxkTmFtZTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIGNvbnN0IHNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxGaWx0ZXJTZXJ2aWNlPihTZXJ2aWNlTmFtZXMuRmlsdGVyKTtcclxuICAgIHJldHVybiBzZXJ2aWNlLmNsZWFyRmlsdGVyQXN5bmModGhpcy52aXN1YWxJZCwgZmllbGROYW1lKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXREYXRhU291cmNlc0FzeW5jKCk6IFByb21pc2U8QXJyYXk8Q29udHJhY3QuRGF0YVNvdXJjZT4+IHtcclxuICAgIGNvbnN0IHNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxEYXRhU291cmNlU2VydmljZT4oU2VydmljZU5hbWVzLkRhdGFTb3VyY2VTZXJ2aWNlKTtcclxuXHJcbiAgICByZXR1cm4gc2VydmljZS5nZXREYXRhU291cmNlc0FzeW5jKCkudGhlbjxBcnJheTxDb250cmFjdC5EYXRhU291cmNlPj4ocmVzdWx0ID0+IHtcclxuICAgICAgY29uc3QgZGF0YVNjaGVtYTogRGF0YVNjaGVtYSA9IHJlc3VsdCBhcyBEYXRhU2NoZW1hO1xyXG4gICAgICBjb25zdCB3b3Jrc2hlZXREYXRhU291cmNlSW5mbzogV29ya3NoZWV0RGF0YVNvdXJjZUluZm8gPSBkYXRhU2NoZW1hLndvcmtzaGVldERhdGFTY2hlbWFNYXBbdGhpcy5uYW1lXTtcclxuXHJcbiAgICAgIGxldCBkYXRhU291cmNlczogQXJyYXk8Q29udHJhY3QuRGF0YVNvdXJjZT4gPSBbXTtcclxuXHJcbiAgICAgIC8vIEZpcnN0LCBhZGQgdGhlIHByaW1hcnkgZGF0YXNvdXJjZS4gIEJ5IGNvbnZlbnRpb24sIGl0IGNvbWVzIGZpcnN0IGluIHRoZSByZXR1cm5lZCBhcnJheS5cclxuICAgICAgbGV0IHByaW1hcnlJZDogc3RyaW5nID0gd29ya3NoZWV0RGF0YVNvdXJjZUluZm8ucHJpbWFyeURhdGFTb3VyY2U7XHJcbiAgICAgIGRhdGFTb3VyY2VzLnB1c2godGhpcy5jcmVhdGVEYXRhU291cmNlQnlJZChwcmltYXJ5SWQsIGRhdGFTY2hlbWEuZGF0YVNvdXJjZXNbcHJpbWFyeUlkXSkpO1xyXG5cclxuICAgICAgLy8gVGhlbiwgbG9vcCB0aHJvdWdoIGFueSBzZWNvbmRhcnkgZGF0YSBzb3VyY2VzIGFuZCBhZGQgdGhlbS5cclxuICAgICAgZm9yIChsZXQgc2Vjb25kYXJ5SWQgb2Ygd29ya3NoZWV0RGF0YVNvdXJjZUluZm8ucmVmZXJlbmNlZERhdGFTb3VyY2VMaXN0KSB7XHJcbiAgICAgICAgaWYgKHNlY29uZGFyeUlkICE9PSBwcmltYXJ5SWQpIHtcclxuICAgICAgICAgIGRhdGFTb3VyY2VzLnB1c2godGhpcy5jcmVhdGVEYXRhU291cmNlQnlJZChzZWNvbmRhcnlJZCwgZGF0YVNjaGVtYS5kYXRhU291cmNlc1tzZWNvbmRhcnlJZF0pKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBkYXRhU291cmNlcztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEZpbHRlcnNBc3luYygpOiBQcm9taXNlPENvbnRyYWN0LkZpbHRlcltdPiB7XHJcbiAgICBjb25zdCBzZXJ2aWNlID0gQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2U8RmlsdGVyU2VydmljZT4oU2VydmljZU5hbWVzLkZpbHRlcik7XHJcbiAgICByZXR1cm4gc2VydmljZS5nZXRGaWx0ZXJzQXN5bmModGhpcy52aXN1YWxJZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U2VsZWN0ZWRNYXJrc0FzeW5jKCk6IFByb21pc2U8Q29udHJhY3QuTWFya3NDb2xsZWN0aW9uPiB7XHJcbiAgICBjb25zdCBzZXJ2aWNlID0gQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2U8R2V0RGF0YVNlcnZpY2U+KFNlcnZpY2VOYW1lcy5HZXREYXRhKTtcclxuICAgIHJldHVybiBzZXJ2aWNlLmdldFNlbGVjdGVkTWFya3NBc3luYyh0aGlzLnZpc3VhbElkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRIaWdobGlnaHRlZE1hcmtzQXN5bmMoKTogUHJvbWlzZTxDb250cmFjdC5NYXJrc0NvbGxlY3Rpb24+IHtcclxuICAgIGNvbnN0IHNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxHZXREYXRhU2VydmljZT4oU2VydmljZU5hbWVzLkdldERhdGEpO1xyXG4gICAgcmV0dXJuIHNlcnZpY2UuZ2V0SGlnaGxpZ2h0ZWRNYXJrc0FzeW5jKHRoaXMudmlzdWFsSWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFN1bW1hcnlEYXRhQXN5bmMob3B0aW9uczogQ29udHJhY3QuR2V0U3VtbWFyeURhdGFPcHRpb25zKTogUHJvbWlzZTxDb250cmFjdC5EYXRhVGFibGU+IHtcclxuICAgIGNvbnN0IHNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxHZXREYXRhU2VydmljZT4oU2VydmljZU5hbWVzLkdldERhdGEpO1xyXG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XHJcblxyXG4gICAgcmV0dXJuIHNlcnZpY2UuZ2V0VW5kZXJseWluZ0RhdGFBc3luYyhcclxuICAgICAgdGhpcy52aXN1YWxJZCwgR2V0RGF0YVR5cGUuU3VtbWFyeSwgISFvcHRpb25zLmlnbm9yZUFsaWFzZXMsICEhb3B0aW9ucy5pZ25vcmVTZWxlY3Rpb24sIHRydWUsIDApO1xyXG4gICAgfVxyXG5cclxuICBwdWJsaWMgZ2V0VW5kZXJseWluZ0RhdGFBc3luYyhvcHRpb25zOiBDb250cmFjdC5HZXRVbmRlcmx5aW5nRGF0YU9wdGlvbnMpOiBQcm9taXNlPENvbnRyYWN0LkRhdGFUYWJsZT4ge1xyXG4gICAgY29uc3Qgc2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPEdldERhdGFTZXJ2aWNlPihTZXJ2aWNlTmFtZXMuR2V0RGF0YSk7XHJcbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcclxuICAgIHJldHVybiBzZXJ2aWNlLmdldFVuZGVybHlpbmdEYXRhQXN5bmMoXHJcbiAgICAgIHRoaXMudmlzdWFsSWQsXHJcbiAgICAgIEdldERhdGFUeXBlLlVuZGVybHlpbmcsXHJcbiAgICAgICEhb3B0aW9ucy5pZ25vcmVBbGlhc2VzLFxyXG4gICAgICAhIW9wdGlvbnMuaWdub3JlU2VsZWN0aW9uLFxyXG4gICAgICAhIW9wdGlvbnMuaW5jbHVkZUFsbENvbHVtbnMsXHJcbiAgICAgIG9wdGlvbnMubWF4Um93cyB8fCAwKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGVhclNlbGVjdGVkTWFya3NBc3luYygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHNlcnZpY2UgPSBBcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZTxTZWxlY3Rpb25TZXJ2aWNlPihTZXJ2aWNlTmFtZXMuU2VsZWN0aW9uKTtcclxuICAgIHJldHVybiBzZXJ2aWNlLmNsZWFyU2VsZWN0ZWRNYXJrc0FzeW5jKHRoaXMudmlzdWFsSWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdE1hcmtzQnlWYWx1ZUFzeW5jKHNlbGVjdGlvbnM6IEFycmF5PENvbnRyYWN0LlNlbGVjdGlvbkNyaXRlcmlhPixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uVXBkYXRlVHlwZTogQ29udHJhY3QuU2VsZWN0aW9uVXBkYXRlVHlwZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3Qgc2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPFNlbGVjdGlvblNlcnZpY2U+KFNlcnZpY2VOYW1lcy5TZWxlY3Rpb24pO1xyXG4gICAgcmV0dXJuIHNlcnZpY2Uuc2VsZWN0TWFya3NCeVZhbHVlQXN5bmModGhpcy52aXN1YWxJZCwgc2VsZWN0aW9ucywgc2VsZWN0aW9uVXBkYXRlVHlwZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZWN0TWFya3NCeUlkQXN5bmMoc2VsZWN0aW9uczogQXJyYXk8Q29udHJhY3QuTWFya0luZm8+LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25VcGRhdGVUeXBlOiBDb250cmFjdC5TZWxlY3Rpb25VcGRhdGVUeXBlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCBzZXJ2aWNlID0gQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2U8U2VsZWN0aW9uU2VydmljZT4oU2VydmljZU5hbWVzLlNlbGVjdGlvbik7XHJcbiAgICByZXR1cm4gc2VydmljZS5zZWxlY3RNYXJrc0J5SWRBc3luYyh0aGlzLnZpc3VhbElkLCBzZWxlY3Rpb25zLCBzZWxlY3Rpb25VcGRhdGVUeXBlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlRGF0YVNvdXJjZUJ5SWQoaWQ6IHN0cmluZywgZGF0YVNvdXJjZUluZm86IERhdGFTb3VyY2VJbmZvKTogQ29udHJhY3QuRGF0YVNvdXJjZSB7XHJcbiAgICBjb25zdCBkYXRhU291cmNlSW1wbCA9IG5ldyBEYXRhU291cmNlSW1wbChkYXRhU291cmNlSW5mbyk7XHJcbiAgICBjb25zdCBkYXRhU291cmNlID0gbmV3IERhdGFTb3VyY2UoZGF0YVNvdXJjZUltcGwpO1xyXG4gICAgcmV0dXJuIGRhdGFTb3VyY2U7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIC4uL3NyYy9JbnRlcm5hbC9Xb3Jrc2hlZXRJbXBsLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IERhdGFTb3VyY2VJbXBsIH0gZnJvbSAnLi9JbnRlcm5hbC9EYXRhU291cmNlSW1wbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRGF0YVNvdXJjZSBpbXBsZW1lbnRzIENvbnRyYWN0LkRhdGFTb3VyY2Uge1xyXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIF9kYXRhU291cmNlSW1wbDogRGF0YVNvdXJjZUltcGwpIHsgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlSW1wbC5uYW1lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2VJbXBsLmlkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBmaWVsZHMoKTogQ29udHJhY3QuRmllbGRbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZUltcGwuZmllbGRzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjb25uZWN0aW9uU3VtbWFyaWVzKCk6IENvbnRyYWN0LkNvbm5lY3Rpb25TdW1tYXJ5W10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2VJbXBsLmNvbm5lY3Rpb25TdW1tYXJpZXM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGV4dHJhY3RVcGRhdGVUaW1lKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZUltcGwuZXh0cmFjdFVwZGF0ZVRpbWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzRXh0cmFjdCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlSW1wbC5pc0V4dHJhY3Q7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVmcmVzaEFzeW5jKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2VJbXBsLnJlZnJlc2hBc3luYygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFVuZGVybHlpbmdEYXRhKG9wdGlvbnM/OiBDb250cmFjdC5EYXRhU291cmNlVW5kZXJseWluZ0RhdGFPcHRpb25zKTpcclxuICAgIFByb21pc2U8Q29udHJhY3QuUGFnZWREYXRhPENvbnRyYWN0LkRhdGFUYWJsZT4+IHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlSW1wbC5nZXRVbmRlcmx5aW5nRGF0YSgpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiAuLi9zcmMvRGF0YVNvdXJjZS50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCAqIGFzIEludGVybmFsQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgQXBpU2VydmljZVJlZ2lzdHJ5LCBEYXRhU291cmNlU2VydmljZSwgU2VydmljZU5hbWVzIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXNoYXJlZCc7XHJcblxyXG5pbXBvcnQgeyBGaWVsZEltcGwgfSBmcm9tICcuL0ZpZWxkSW1wbCc7XHJcblxyXG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4uL0ZpZWxkJztcclxuXHJcbmV4cG9ydCBjbGFzcyBEYXRhU291cmNlSW1wbCB7XHJcbiAgcHJpdmF0ZSBfZmllbGRzOiBGaWVsZFtdO1xyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfZGF0YVNvdXJjZUluZm86IEludGVybmFsQ29udHJhY3QuRGF0YVNvdXJjZSkge1xyXG4gICAgdGhpcy5fZmllbGRzID0gX2RhdGFTb3VyY2VJbmZvLmZpZWxkcy5tYXAoZmllbGRNb2RlbCA9PiB7XHJcbiAgICAgIGNvbnN0IGZpZWxkSW1wbCA9IG5ldyBGaWVsZEltcGwoZmllbGRNb2RlbCwgdGhpcyk7XHJcbiAgICAgIHJldHVybiBuZXcgRmllbGQoZmllbGRJbXBsKTtcclxuICAgIH0pO1xyXG4gICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2VJbmZvLm5hbWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZUluZm8uaWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGV4dHJhY3RVcGRhdGVUaW1lKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZUluZm8uZXh0cmFjdFVwZGF0ZVRpbWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGZpZWxkcygpOiBDb250cmFjdC5GaWVsZFtdIHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZHM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzRXh0cmFjdCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlSW5mby5pc0V4dHJhY3Q7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNvbm5lY3Rpb25TdW1tYXJpZXMoKTogQ29udHJhY3QuQ29ubmVjdGlvblN1bW1hcnlbXSB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0RhdGFTb3VyY2UgY29ubmVjdGlvblN1bW1hcmllcyBBUEkgbm90IHlldCBpbXBsZW1lbnRlZC4nKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWZyZXNoQXN5bmMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCBkYXRhU291cmNlU2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPERhdGFTb3VyY2VTZXJ2aWNlPihcclxuICAgICAgU2VydmljZU5hbWVzLkRhdGFTb3VyY2VTZXJ2aWNlKTtcclxuXHJcbiAgICByZXR1cm4gZGF0YVNvdXJjZVNlcnZpY2UucmVmcmVzaEFzeW5jKHRoaXMuX2RhdGFTb3VyY2VJbmZvLmlkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRVbmRlcmx5aW5nRGF0YShvcHRpb25zPzogQ29udHJhY3QuRGF0YVNvdXJjZVVuZGVybHlpbmdEYXRhT3B0aW9ucyk6XHJcbiAgICBQcm9taXNlPENvbnRyYWN0LlBhZ2VkRGF0YTxDb250cmFjdC5EYXRhVGFibGU+PiB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0RhdGFTb3VyY2UgZ2V0VW5kZXJseWluZ0RhdGEgQVBJIG5vdCB5ZXQgaW1wbGVtZW50ZWQuJyk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIC4uL3NyYy9JbnRlcm5hbC9EYXRhU291cmNlSW1wbC50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcbmltcG9ydCAqIGFzIEludGVybmFsQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXNoYXJlZCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRmllbGRJbXBsIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfZmllbGRJbmZvOiBJbnRlcm5hbENvbnRyYWN0LkZpZWxkLFxyXG4gICAgICAgICAgICAgICAgICAgICBwcml2YXRlIF9wYXJlbnREYXRhU291cmNlOiBDb250cmFjdC5EYXRhU291cmNlKSB7ICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW5mby5uYW1lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW5mby5pZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZGVzY3JpcHRpb24oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZEluZm8uZGVzY3JpcHRpb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFnZ3JlZ2F0aW9uKCk6IENvbnRyYWN0LkZpZWxkQWdncmVnYXRpb25UeXBlIHtcclxuICAgIHJldHVybiBJbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MuZmllbGRBZ2dyZWdhdGlvblR5cGUuY29udmVydCh0aGlzLl9maWVsZEluZm8uYWdncmVnYXRpb24pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBkYXRhU291cmNlKCk6IENvbnRyYWN0LkRhdGFTb3VyY2Uge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BhcmVudERhdGFTb3VyY2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHJvbGUoKTogQ29udHJhY3QuRmllbGRSb2xlVHlwZSB7XHJcbiAgICByZXR1cm4gSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmZpZWxkUm9sZVR5cGUuY29udmVydCh0aGlzLl9maWVsZEluZm8ucm9sZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzSGlkZGVuKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW5mby5pc0hpZGRlbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaXNHZW5lcmF0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmllbGRJbmZvLmlzR2VuZXJhdGVkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpc0NhbGN1bGF0ZWRGaWVsZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZEluZm8uaXNDYWxjdWxhdGVkRmllbGQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzQ29tYmluZWRGaWVsZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZEluZm8uaXNDb21iaW5lZEZpZWxkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldENhbGN1bGF0ZWRGaWVsZEFzeW5jKCk6IFByb21pc2U8Q29udHJhY3QuQ2FsY3VsYXRlZEZpZWxkIHwgdW5kZWZpbmVkPiB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZpZWxkIGdldENhbGN1bGF0ZWRGaWVsZEFzeW5jIG1ldGhvZCBub3QgeWV0IGltcGxlbWVudGVkLicpO1xyXG4gIH1cclxufVxyXG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiAuLi9zcmMvSW50ZXJuYWwvRmllbGRJbXBsLnRzXG4gKiovIiwiaW1wb3J0ICogYXMgQ29udHJhY3QgZnJvbSAnQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0JztcclxuXHJcbmltcG9ydCB7IEZpZWxkSW1wbCB9IGZyb20gJy4vSW50ZXJuYWwvRmllbGRJbXBsJztcclxuXHJcbmV4cG9ydCBjbGFzcyBGaWVsZCBpbXBsZW1lbnRzIENvbnRyYWN0LkZpZWxkIHtcclxuICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSBfZmllbGRJbXBsOiBGaWVsZEltcGwpIHsgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZEltcGwubmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZEltcGwuaWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGRlc2NyaXB0aW9uKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmllbGRJbXBsLmRlc2NyaXB0aW9uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBhZ2dyZWdhdGlvbigpOiBDb250cmFjdC5GaWVsZEFnZ3JlZ2F0aW9uVHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmllbGRJbXBsLmFnZ3JlZ2F0aW9uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBkYXRhU291cmNlKCk6IENvbnRyYWN0LkRhdGFTb3VyY2Uge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW1wbC5kYXRhU291cmNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCByb2xlKCk6IENvbnRyYWN0LkZpZWxkUm9sZVR5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW1wbC5yb2xlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpc0hpZGRlbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZEltcGwuaXNIaWRkZW47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzR2VuZXJhdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW1wbC5pc0dlbmVyYXRlZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaXNDYWxjdWxhdGVkRmllbGQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmllbGRJbXBsLmlzQ2FsY3VsYXRlZEZpZWxkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjb2x1bW5UeXBlKCk6IENvbnRyYWN0LkNvbHVtblR5cGUge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdGaWVsZC5jb2x1bW5UeXBlIG5vdCB5ZXQgaW1wbGVtZXRuZWQuJyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzQ29tYmluZWRGaWVsZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9maWVsZEltcGwuaXNDb21iaW5lZEZpZWxkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldENhbGN1bGF0ZWRGaWVsZEFzeW5jKCk6IFByb21pc2U8Q29udHJhY3QuQ2FsY3VsYXRlZEZpZWxkIHwgdW5kZWZpbmVkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmllbGRJbXBsLmdldENhbGN1bGF0ZWRGaWVsZEFzeW5jKCk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIC4uL3NyYy9GaWVsZC50c1xuICoqLyIsImltcG9ydCB7IEFkZEluU2V0dGluZ3NJbmZvIH0gZnJvbSAnQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0JztcclxuaW1wb3J0IHsgQXBpU2VydmljZVJlZ2lzdHJ5IH0gZnJvbSAnQHRhYmxlYXUvYXBpLXNoYXJlZCc7XHJcbmltcG9ydCB7IFBhcmFtIH0gZnJvbSAnQHRhYmxlYXUvYXBpLXV0aWxzJztcclxuXHJcbmltcG9ydCB7IEFkZEluU2VydmljZU5hbWVzIH0gZnJvbSAnLi4vU2VydmljZXMvQWRkSW5TZXJ2aWNlTmFtZXMnO1xyXG5pbXBvcnQgeyBTZXR0aW5nc0NvbGxlY3Rpb24sIFNldHRpbmdzU2VydmljZSB9IGZyb20gJy4uL1NlcnZpY2VzL1NldHRpbmdzU2VydmljZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgU2V0dGluZ3NJbXBsIHtcclxuICBwcml2YXRlIF9pc01vZGlmaWVkOiBib29sZWFuO1xyXG4gIHByaXZhdGUgX2N1cnJlbnRTZXR0aW5nczogU2V0dGluZ3NDb2xsZWN0aW9uO1xyXG5cclxuICAvLyBTaW5jZSBwcm9taXNlcyBjYW4ndCBiZSBpbnRyb3NwZWN0ZWQgZm9yIHN0YXRlLCBrZWVwIGEgdmFyaWFibGUgdGhhdFxyXG4gIC8vIGluZGljYXRlcyBhIHNhdmUgaXMgaW4gcHJvZ3Jlc3MsIHNvIHRoYXQgc2V0L2VyYXNlIGNhbid0IGJlIGNhbGxlZCBkdXJpbmcgYSBzYXZlLlxyXG4gIHByaXZhdGUgX3NhdmVJblByb2dyZXNzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihzZXR0aW5nc0luZm86IEFkZEluU2V0dGluZ3NJbmZvKSB7XHJcbiAgICB0aGlzLmluaXRpYWxpemVTZXR0aW5ncyhzZXR0aW5nc0luZm8pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGVyYXNlKGtleTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBQYXJhbS52ZXJpZnlWYWx1ZShrZXksICdrZXknKTtcclxuXHJcbiAgICAvLyBPbmx5IG1ha2UgYSBtb2RpZmljYXRpb24gaWYgd2UgaGF2ZSB0aGUga2V5IGFscmVhZHlcclxuICAgIGlmICh0aGlzLl9jdXJyZW50U2V0dGluZ3Nba2V5XSkge1xyXG4gICAgICB0aGlzLnZlcmlmeVNldHRpbmdzQXJlVW5sb2NrZWQoKTtcclxuXHJcbiAgICAgIGRlbGV0ZSB0aGlzLl9jdXJyZW50U2V0dGluZ3Nba2V5XTtcclxuICAgICAgdGhpcy5faXNNb2RpZmllZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0KGtleTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIFBhcmFtLnZlcmlmeVZhbHVlKGtleSwgJ2tleScpO1xyXG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRTZXR0aW5nc1trZXldO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEFsbCgpOiBTZXR0aW5nc0NvbGxlY3Rpb24ge1xyXG4gICAgLy8gUmV0dXJucyBhIG11dGFibGUgY29weSBvZiB0aGUgc2V0dGluZ3NcclxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLl9jdXJyZW50U2V0dGluZ3MpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpc01vZGlmaWVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzTW9kaWZpZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2F2ZUFzeW5jKCk6IFByb21pc2U8U2V0dGluZ3NDb2xsZWN0aW9uPiB7XHJcbiAgICB0aGlzLnZlcmlmeVNldHRpbmdzQXJlVW5sb2NrZWQoKTtcclxuXHJcbiAgICAvLyBKdXN0IHJlc29sdmUgaW1tZWRpYXRlbHkgaWYgc2V0dGluZ3MgYXJlIHVuY2hhbmdlZFxyXG4gICAgaWYgKCF0aGlzLl9pc01vZGlmaWVkKSB7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmU8U2V0dGluZ3NDb2xsZWN0aW9uPih0aGlzLl9jdXJyZW50U2V0dGluZ3MpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3NhdmVJblByb2dyZXNzID0gdHJ1ZTtcclxuXHJcbiAgICAvLyBVc2UgdGhlIHNldHRpbmdzIHNlcnZpY2UgdG8gc2F2ZSBzZXR0aW5ncyB0byB0d2JcclxuICAgIGNvbnN0IHNldHRpbmdzU2VydmljZSA9IEFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlPFNldHRpbmdzU2VydmljZT4oXHJcbiAgICAgIEFkZEluU2VydmljZU5hbWVzLlNldHRpbmdzU2VydmljZSk7XHJcblxyXG4gICAgcmV0dXJuIHNldHRpbmdzU2VydmljZS5zYXZlU2V0dGluZ3NBc3luYyh0aGlzLl9jdXJyZW50U2V0dGluZ3MpLnRoZW48U2V0dGluZ3NDb2xsZWN0aW9uPihuZXdTZXR0aW5ncyA9PiB7XHJcbiAgICAgIHRoaXMuX3NhdmVJblByb2dyZXNzID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuX2lzTW9kaWZpZWQgPSBmYWxzZTtcclxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl9jdXJyZW50U2V0dGluZ3MsIG5ld1NldHRpbmdzKTtcclxuICAgICAgcmV0dXJuIG5ld1NldHRpbmdzO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0KGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBQYXJhbS52ZXJpZnlWYWx1ZShrZXksICdrZXknKTsgLy8gS2V5IHNob3VsZG4ndCBiZSBhbiBlbXB0eSBzdHJpbmcuXHJcbiAgICBQYXJhbS52ZXJpZnlTdHJpbmcodmFsdWUsICd2YWx1ZScpOyAvLyBFbXB0eSBzdHJpbmcgdmFsdWUgaXMgYWxsb3dlZC5cclxuICAgIHRoaXMudmVyaWZ5U2V0dGluZ3NBcmVVbmxvY2tlZCgpO1xyXG5cclxuICAgIHRoaXMuX2N1cnJlbnRTZXR0aW5nc1trZXldID0gdmFsdWU7XHJcbiAgICB0aGlzLl9pc01vZGlmaWVkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVNldHRpbmdzKHNldHRpbmdzSW5mbzogQWRkSW5TZXR0aW5nc0luZm8pOiB2b2lkIHtcclxuICAgIFBhcmFtLnZlcmlmeVZhbHVlKHNldHRpbmdzSW5mbywgJ3NldHRpbmdzSW5mbycpO1xyXG4gICAgUGFyYW0udmVyaWZ5VmFsdWUoc2V0dGluZ3NJbmZvLnNldHRpbmdzVmFsdWVzLCAnc2V0dGluZ3NJbmZvLlNldHRpbmdzVmFsdWVzJyk7XHJcblxyXG4gICAgdGhpcy5fY3VycmVudFNldHRpbmdzID0gc2V0dGluZ3NJbmZvLnNldHRpbmdzVmFsdWVzO1xyXG5cclxuICAgIC8vIFJlc2V0IHRoZSBpc01vZGlmaWVkIGZsYWdcclxuICAgIHRoaXMuX2lzTW9kaWZpZWQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoaXMgaGVscGVyIHNob3VsZCBiZSBjYWxsZWQgYmVmb3JlIGFueSBsb2NhbCB1cGRhdGUgdG8gdGhpcy5jdXJyZW50U2V0dGluZ3MuXHJcbiAgICogQ2hlY2tzIGlmIGEgY3VycmVudCBzYXZlIGNhbGwgaXMgc3RpbGwgaW4gcHJvZ3Jlc3MgYW5kIHRocm93cyBhbiBlcnJvciBpZiBzby5cclxuICAgKi9cclxuICBwcml2YXRlIHZlcmlmeVNldHRpbmdzQXJlVW5sb2NrZWQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fc2F2ZUluUHJvZ3Jlc3MpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBc3luYyBTYXZlIGlzIGluIHByb2dyZXNzLCB1cGRhdGluZyBzZXR0aW5ncyBpcyBub3QgYWxsb3dlZC4nKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogLi4vc3JjL0ludGVybmFsL1NldHRpbmdzSW1wbC50c1xuICoqLyIsImltcG9ydCAqIGFzIENvbnRyYWN0IGZyb20gJ0B0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdCc7XHJcblxyXG5pbXBvcnQgeyBBZGRJbkltcGwgfSBmcm9tICcuLi9JbnRlcm5hbC9BZGRJbkltcGwnO1xyXG5cclxuLyoqXHJcbiAqIEltcGxlbWVudGF0aW9uIG9mIHRoZSBleHRlcm5hbCBBZGRJbiBuYW1lc3BhY2UuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQWRkSW4gaW1wbGVtZW50cyBDb250cmFjdC5BZGRJbiB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgYWRkSW5JbXBsOiBBZGRJbkltcGwpIHtcclxuICAgIHRoaXMuYWRkSW5JbXBsID0gYWRkSW5JbXBsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBkYXNoYm9hcmRDb250ZW50KCk6IENvbnRyYWN0LkRhc2hib2FyZENvbnRlbnQge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkSW5JbXBsLmRhc2hib2FyZENvbnRlbnQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGVudmlyb25tZW50KCk6IENvbnRyYWN0LkVudmlyb25tZW50IHtcclxuICAgIHJldHVybiB0aGlzLmFkZEluSW1wbC5lbnZpcm9ubWVudDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2V0dGluZ3MoKTogQ29udHJhY3QuU2V0dGluZ3Mge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkSW5JbXBsLnNldHRpbmdzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB1aSgpOiBDb250cmFjdC5VSSB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0FQSSBjYWxsIG5vdCB5ZXQgaW1wbGVtZW50ZWQnKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbml0aWFsaXplQXN5bmMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRJbkltcGwuaW5pdGlhbGl6ZUFzeW5jKCk7XHJcbiAgfVxyXG59XHJcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIC4uL3NyYy9OYW1lc3BhY2VzL0FkZEluLnRzXG4gKiovIl0sInNvdXJjZVJvb3QiOiIifQ== diff --git a/Examples/HelloFrelard/tableau-addin-0.5.0.js b/Examples/HelloFrelard/tableau-addin-0.5.0.js deleted file mode 100644 index a227f696..00000000 --- a/Examples/HelloFrelard/tableau-addin-0.5.0.js +++ /dev/null @@ -1,23670 +0,0 @@ -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); - else if(typeof define === 'function' && define.amd) - define([], factory); - else if(typeof exports === 'object') - exports["Main"] = factory(); - else - root["Main"] = factory(); -})(this, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = "/dist/"; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var FrelardDesktopBootstrap_1 = __webpack_require__(1); - // This Main function will be executed when this module is loaded. Attempt to do our - // bootstrapping with qt and log any errors we encounter - FrelardDesktopBootstrap_1.doBootstrap().catch(function (e) { - console.error('Desktop bootstrapping failed: ' + e); - }); - //# sourceMappingURL=Main.js.map - -/***/ }, -/* 1 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_core_1 = __webpack_require__(2); - var api_internal_contract_1 = __webpack_require__(4); - var AddInApiPresLayerImpl_1 = __webpack_require__(30); - var DesktopApiDispatcher_1 = __webpack_require__(31); - var QtWebChannelImpl_1 = __webpack_require__(32); - /** - * Wrapper for all the bootstrapping logic. This code attempts to initialize the qt pres-layer - * as well as the desktop dispatcher. It then assigns it to the global desktop dispatcher to - * be picked up by the add-in external Api - */ - function doBootstrap() { - // First we need to initialize the webchannel pres-layer - var dispatcherPromise = QtWebChannelImpl_1.initializeWebChannelPresLayer().then(function (preslayer) { - var presLayerApi = new AddInApiPresLayerImpl_1.AddInApiPresLayerImpl(preslayer); - if (!presLayerApi.AddInInstanceInfo.addInLocatorPresModel) { - throw new Error('AddInInstanceInfo undefined'); - } - // Initialize the apiEventHandler and the desktopDispatcher with it - var apiEventHandler = new api_core_1.ApiEventHandler(presLayerApi, presLayerApi.AddInInstanceInfo.addInLocatorPresModel); - var desktopDispatcher = new DesktopApiDispatcher_1.DesktopApiDispatcher(apiEventHandler); - return desktopDispatcher; - }); - // Assign the desktop dispatcher for the other project to find it - api_internal_contract_1.InternalApiDispatcherHolder.setDesktopDispatcherPromise(dispatcherPromise); - return dispatcherPromise; - } - exports.doBootstrap = doBootstrap; - //# sourceMappingURL=FrelardDesktopBootstrap.js.map - -/***/ }, -/* 2 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export(__webpack_require__(3)); - var Events_1 = __webpack_require__(16); - exports.NotificationId = Events_1.NotificationId; - //# sourceMappingURL=ApiCore.js.map - -/***/ }, -/* 3 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(4); - var Params_1 = __webpack_require__(10); - var CommandMappingRegistryFactory_1 = __webpack_require__(11); - var EventMappingRegistryFactory_1 = __webpack_require__(15); - var ParameterMappingRegistryFactory_1 = __webpack_require__(23); - /** - * Main class for the api-core project. This class is responsible for executing comamnd and marshalling notifcations - * between the internal Api and the pres-layer Api. After construction, SetVersionNumber must be called in order to - * use this class - * - * @export - * @class ApiEventHandler - */ - var ApiEventHandler = (function () { - /** - * Creates an instance of ApiEventHandler. - * @param {PresentationLayer} presLayer - An implementation of the pres-layer Api to use - * @param {AddInLocatorPresModel} addInLocatorPresModel - locator for the add-in which is being referenced - * @memberof ApiEventHandler - */ - function ApiEventHandler(presLayer, addInLocatorPresModel) { - this._presLayer = presLayer; - this._presLayerAddInLocator = addInLocatorPresModel; - } - /** - * Sets the internal Api version number which the external library is expecting to use. This must be called before - * anything else in order to properly set up the translation layers. - * - * @param {VersionNumber} versionNumber - * @memberof ApiEventHandler - */ - ApiEventHandler.prototype.setVersionNumber = function (versionNumber) { - this._versionNumber = versionNumber; - // Initialize all our registries - this._commandRegistry = CommandMappingRegistryFactory_1.CommandMappingRegistryFactory.createCommandMappingRegistry(versionNumber); - this._apiToPresLayerRegistry = ParameterMappingRegistryFactory_1.ParameterMappingRegistryFactory.createApiToPresLayerParamRegistry(versionNumber); - this._presLayerToApiRegistry = ParameterMappingRegistryFactory_1.ParameterMappingRegistryFactory.createPresLayerToApiParamRegistry(versionNumber); - this._eventRegistry = EventMappingRegistryFactory_1.EventMappingRegistryFactory.createEventMappingRegistry(versionNumber); - // Convert our addInLocator to the Api version - this._apiAddInLocator = this._presLayerToApiRegistry - .get(Params_1.ParameterId.AddInLocator, api_internal_contract_1.ParameterId.AddInLocator)(this._presLayerAddInLocator); - for (var _i = 0, _a = Object.keys(this._eventRegistry); _i < _a.length; _i++) { - var plEventId = _a[_i]; - // Register for all notifications we know about and bind the event type to the callback - this._presLayer.registerNotificationHandler(plEventId, this.onPresLayerNotification.bind(this, plEventId)); - } - }; - /** - * Sets an event handler function to be notified when Api events come in. Only a single registration is supported. - * - * @param {NotificationHandler} eventHandler - * @memberof ApiEventHandler - */ - ApiEventHandler.prototype.setEventHandler = function (eventHandler) { - this._eventHandler = eventHandler; - // TODO - Register for pres layer events - }; - /** - * Executes the requested Api command by converting the parameters, running the command against the pres-layer, - * then processing the result back into a format the Api can understand - * - * @param {VerbId} verb - * @param {ExecuteParameters} parameters - * @returns {Promise} - * @memberof ApiEventHandler - */ - ApiEventHandler.prototype.execute = function (verb, parameters) { - var _this = this; - this.assertInitialized(); - var command = this._commandRegistry.getCommand(verb); - parameters = parameters || {}; - // Augment the command with the locator if it's needed - if (command.needsAddInLocator) { - parameters[api_internal_contract_1.ParameterId.AddInLocator] = this._apiAddInLocator; - } - var commandsParams = command.createParams(parameters, this._apiToPresLayerRegistry); - return this._presLayer.invokeCommand(command.namespace, command.commandId, commandsParams) - .then(function (commandResult) { - var convertedResult = command.ProcessResult(commandResult, _this._presLayerToApiRegistry); - return { - result: convertedResult - }; - }); - }; - /** - * Helper method to check that things are initialized as expected. Throws if initialization not complete - * - * @private - * @memberof ApiEventHandler - */ - ApiEventHandler.prototype.assertInitialized = function () { - if (!this._versionNumber) { - throw new Error('VersionNumber not yet configured. Cannot take any actions'); - } - }; - /** - * Called when a new event notification comes in from the presentation layer - * - * @param eventId The pres layer event id - * @param presModel The pres model that is included with the event - */ - ApiEventHandler.prototype.onPresLayerNotification = function (eventId, presModel) { - // First look up this eventId in our registry and convert to presModel - var eventMapping = this._eventRegistry[eventId]; - var apiModel = eventMapping.converter(presModel); - if (this._eventHandler) { - this._eventHandler(eventMapping.apiId, apiModel); - } - }; - return ApiEventHandler; - }()); - exports.ApiEventHandler = ApiEventHandler; - //# sourceMappingURL=ApiEventHandler.js.map - -/***/ }, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export(__webpack_require__(5)); - __export(__webpack_require__(6)); - __export(__webpack_require__(7)); - __export(__webpack_require__(8)); - __export(__webpack_require__(9)); - //# sourceMappingURL=ApiInternalContract.js.map - -/***/ }, -/* 5 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var AddInContext; - (function (AddInContext) { - AddInContext["Desktop"] = "desktop"; - AddInContext["Server"] = "server"; - AddInContext["Unknown"] = "unknown"; - })(AddInContext = exports.AddInContext || (exports.AddInContext = {})); - var AddInMode; - (function (AddInMode) { - AddInMode["Authoring"] = "authoring"; - AddInMode["Viewing"] = "viewing"; - AddInMode["Unknown"] = "unknown"; - })(AddInMode = exports.AddInMode || (exports.AddInMode = {})); - var ColumnType; - (function (ColumnType) { - ColumnType["Discrete"] = "discrete"; - ColumnType["Continuous"] = "continuous"; - })(ColumnType = exports.ColumnType || (exports.ColumnType = {})); - var DashboardObjectType; - (function (DashboardObjectType) { - DashboardObjectType["Blank"] = "blank"; - DashboardObjectType["Worksheet"] = "worksheet"; - DashboardObjectType["QuickFilter"] = "quick-filter"; - DashboardObjectType["ParameterControl"] = "parameter-control"; - DashboardObjectType["PageFilter"] = "page-filter"; - DashboardObjectType["Legend"] = "legend"; - DashboardObjectType["Title"] = "title"; - DashboardObjectType["Text"] = "text"; - DashboardObjectType["Image"] = "image"; - DashboardObjectType["WebPage"] = "web-page"; - DashboardObjectType["AddIn"] = "addin"; - })(DashboardObjectType = exports.DashboardObjectType || (exports.DashboardObjectType = {})); - var DataType; - (function (DataType) { - DataType["String"] = "string"; - DataType["Int"] = "int"; - DataType["Float"] = "float"; - DataType["Bool"] = "bool"; - DataType["Date"] = "date"; - DataType["DateTime"] = "date-time"; - DataType["Spatial"] = "spatial"; - })(DataType = exports.DataType || (exports.DataType = {})); - var EncodedDataType; - (function (EncodedDataType) { - EncodedDataType["Number"] = "number"; - EncodedDataType["String"] = "string"; - EncodedDataType["Date"] = "date"; - EncodedDataType["Boolean"] = "boolean"; - })(EncodedDataType = exports.EncodedDataType || (exports.EncodedDataType = {})); - var ErrorCode; - (function (ErrorCode) { - ErrorCode["ServerError"] = "server-error"; - ErrorCode["InvalidAggregationFieldName"] = "invalid-aggregation-field-name"; - ErrorCode["InvalidFilterFieldName"] = "invalid-filter-fieldname"; - ErrorCode["InvalidFilterFieldValue"] = "invalid-filter-field-value"; - })(ErrorCode = exports.ErrorCode || (exports.ErrorCode = {})); - var FieldAggregationType; - (function (FieldAggregationType) { - FieldAggregationType["Sum"] = "sum"; - FieldAggregationType["Avg"] = "avg"; - FieldAggregationType["Min"] = "min"; - FieldAggregationType["Max"] = "max"; - FieldAggregationType["Stdev"] = "stdev"; - FieldAggregationType["Stdevp"] = "stdevp"; - FieldAggregationType["Var"] = "var"; - FieldAggregationType["Varp"] = "varp"; - FieldAggregationType["Count"] = "count"; - FieldAggregationType["Countd"] = "countd"; - FieldAggregationType["Median"] = "median"; - FieldAggregationType["Attr"] = "attr"; - FieldAggregationType["None"] = "none"; - FieldAggregationType["Year"] = "year"; - FieldAggregationType["Qtr"] = "qtr"; - FieldAggregationType["Month"] = "month"; - FieldAggregationType["Day"] = "day"; - FieldAggregationType["Hour"] = "hour"; - FieldAggregationType["Minute"] = "minute"; - FieldAggregationType["Second"] = "second"; - FieldAggregationType["Week"] = "week"; - FieldAggregationType["Weekday"] = "weekday"; - FieldAggregationType["MonthYear"] = "month-year"; - FieldAggregationType["Mdy"] = "mdy"; - FieldAggregationType["End"] = "end"; - FieldAggregationType["TruncYear"] = "trunc-year"; - FieldAggregationType["TruncQtr"] = "trunc-qtr"; - FieldAggregationType["TruncMonth"] = "trunc-month"; - FieldAggregationType["TruncWeek"] = "trunc-week"; - FieldAggregationType["TruncDay"] = "trunc-day"; - FieldAggregationType["TruncHour"] = "trunc-hour"; - FieldAggregationType["TruncMinute"] = "trunc-minute"; - FieldAggregationType["TruncSecond"] = "trunc-second"; - FieldAggregationType["Quart1"] = "quart1"; - FieldAggregationType["Quart3"] = "quart3"; - FieldAggregationType["Skewness"] = "skewness"; - FieldAggregationType["Kurtosis"] = "kurtosis"; - FieldAggregationType["InOut"] = "in-out"; - FieldAggregationType["User"] = "user"; - })(FieldAggregationType = exports.FieldAggregationType || (exports.FieldAggregationType = {})); - var FieldRoleType; - (function (FieldRoleType) { - FieldRoleType["Dimension"] = "dimension"; - FieldRoleType["Measure"] = "measure"; - FieldRoleType["Unknown"] = "unknown"; - })(FieldRoleType = exports.FieldRoleType || (exports.FieldRoleType = {})); - /** - * The different update types for applying filter. - */ - var FilterUpdateType; - (function (FilterUpdateType) { - FilterUpdateType["Add"] = "add"; - FilterUpdateType["All"] = "all"; - FilterUpdateType["Replace"] = "replace"; - FilterUpdateType["Remove"] = "remove"; - })(FilterUpdateType = exports.FilterUpdateType || (exports.FilterUpdateType = {})); - var SheetType; - (function (SheetType) { - SheetType["Dashboard"] = "dashboard"; - SheetType["Story"] = "story"; - SheetType["Worksheet"] = "worksheet"; - SheetType["Addin"] = "addin"; - })(SheetType = exports.SheetType || (exports.SheetType = {})); - var DomainRestrictionType; - (function (DomainRestrictionType) { - DomainRestrictionType["All"] = "all"; - DomainRestrictionType["List"] = "list"; - DomainRestrictionType["Range"] = "range"; - })(DomainRestrictionType = exports.DomainRestrictionType || (exports.DomainRestrictionType = {})); - var DateStepPeriod; - (function (DateStepPeriod) { - DateStepPeriod["Years"] = "years"; - DateStepPeriod["Quarters"] = "quarters"; - DateStepPeriod["Months"] = "months"; - DateStepPeriod["Weeks"] = "weeks"; - DateStepPeriod["Days"] = "days"; - DateStepPeriod["Hours"] = "hours"; - DateStepPeriod["Minutes"] = "minutes"; - DateStepPeriod["Seconds"] = "seconds"; - })(DateStepPeriod = exports.DateStepPeriod || (exports.DateStepPeriod = {})); - /** - * The option for specifying which values to include for filtering. - */ - var FilterNullOption; - (function (FilterNullOption) { - FilterNullOption["NullValues"] = "nullvalues"; - FilterNullOption["NonNullValues"] = "nonnullvalues"; - FilterNullOption["AllValues"] = "allvalues"; - })(FilterNullOption = exports.FilterNullOption || (exports.FilterNullOption = {})); - /** - * The type of filter domain - */ - var FilterDomainType; - (function (FilterDomainType) { - FilterDomainType["Relevant"] = "relevant"; - FilterDomainType["Database"] = "database"; - })(FilterDomainType = exports.FilterDomainType || (exports.FilterDomainType = {})); - /** - * Internal enum for specifying the selection type for select marks api. - */ - var SelectionUpdateType; - (function (SelectionUpdateType) { - SelectionUpdateType["Replace"] = "select-replace"; - SelectionUpdateType["Add"] = "select-add"; - SelectionUpdateType["Remove"] = "select-remove"; - })(SelectionUpdateType = exports.SelectionUpdateType || (exports.SelectionUpdateType = {})); - /** - * Internal enum for specifying the included values type for range selection. - */ - var QuantitativeIncludedValues; - (function (QuantitativeIncludedValues) { - QuantitativeIncludedValues["IncludeNull"] = "include-null"; - QuantitativeIncludedValues["IncludeNonNull"] = "include-non-null"; - QuantitativeIncludedValues["IncludeAll"] = "include-all"; - })(QuantitativeIncludedValues = exports.QuantitativeIncludedValues || (exports.QuantitativeIncludedValues = {})); - /** - * Type of mark for a given marks card in a viz. - */ - var MarkType; - (function (MarkType) { - MarkType["Bar"] = "bar"; - MarkType["Line"] = "line"; - MarkType["Area"] = "area"; - MarkType["Square"] = "square"; - MarkType["Circle"] = "circle"; - MarkType["Shape"] = "shape"; - MarkType["Text"] = "text"; - MarkType["Map"] = "map"; - MarkType["Pie"] = "pie"; - MarkType["GanttBar"] = "gantt-bar"; - MarkType["Polygon"] = "polygon"; - })(MarkType = exports.MarkType || (exports.MarkType = {})); - /** - * Internal enum for specifying the type of filter - */ - var FilterType; - (function (FilterType) { - FilterType["Categorical"] = "categorical"; - FilterType["Range"] = "range"; - FilterType["RelativeDate"] = "relativeDate"; - FilterType["Hierarchical"] = "hierarchical"; - })(FilterType = exports.FilterType || (exports.FilterType = {})); - /** - * Internal enum for specifying the DateRangeType of a relative date filter - */ - var DateRangeType; - (function (DateRangeType) { - /** - * Refers to the last day, week, month, etc. of the date period. - */ - DateRangeType["Last"] = "last"; - /** - * Refers to the last N days, weeks, months, etc. of the date period. - */ - DateRangeType["LastN"] = "lastN"; - /** - * Refers to the next day, week, month, etc. of the date period. - */ - DateRangeType["Next"] = "next"; - /** - * Refers to the next N days, weeks, months, etc. of the date period. - */ - DateRangeType["NextN"] = "nextN"; - /** - * Refers to the current day, week, month, etc. of the date period. - */ - DateRangeType["Current"] = "current"; - /** - * Refers to everything up to and including the current day, week, month, etc. of the date period. - */ - DateRangeType["ToDate"] = "toDate"; - })(DateRangeType = exports.DateRangeType || (exports.DateRangeType = {})); - //# sourceMappingURL=Enums.js.map - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var InternalApiDispatcherHolder; - (function (InternalApiDispatcherHolder) { - function getDesktopDispatcherPromise() { - return window.__tableauDesktopDispatcher; - } - InternalApiDispatcherHolder.getDesktopDispatcherPromise = getDesktopDispatcherPromise; - function hasDesktopApiDispatcherPromise() { - return !!InternalApiDispatcherHolder.getDesktopDispatcherPromise(); - } - InternalApiDispatcherHolder.hasDesktopApiDispatcherPromise = hasDesktopApiDispatcherPromise; - function setDesktopDispatcherPromise(dispatcher) { - window.__tableauDesktopDispatcher = dispatcher; - } - InternalApiDispatcherHolder.setDesktopDispatcherPromise = setDesktopDispatcherPromise; - })(InternalApiDispatcherHolder = exports.InternalApiDispatcherHolder || (exports.InternalApiDispatcherHolder = {})); - //# sourceMappingURL=InternalApiDispatcher.js.map - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var NotificationId; - (function (NotificationId) { - NotificationId["SelectedMarksChanged"] = "selected-marks-changed"; - NotificationId["ParameterChanged"] = "parameter-changed"; - NotificationId["FilterChanged"] = "filter-changed"; - })(NotificationId = exports.NotificationId || (exports.NotificationId = {})); - //# sourceMappingURL=Notifications.js.map - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var ParameterId; - (function (ParameterId) { - ParameterId["AddInLocator"] = "add-in-locator"; - ParameterId["AddInBootstrapInfo"] = "add-in-bootstrap-info"; - ParameterId["AddInSettingsInfo"] = "add-in-settings-info"; - ParameterId["VisualId"] = "visual-id"; - ParameterId["SheetPath"] = "sheet-path"; - ParameterId["IgnoreAliases"] = "ignore-aliases"; - ParameterId["IgnoreSelection"] = "ignore-selection"; - ParameterId["IncludeAllColumns"] = "include-all-columns"; - ParameterId["MaxRows"] = "max-rows"; - ParameterId["UnderlyingDataTable"] = "underlying-data-table"; - ParameterId["UnderlyingSummaryDataTable"] = "underlying-summary-data-table"; - ParameterId["DataSourceDataTable"] = "data-source-data-table"; - ParameterId["SettingsValues"] = "settings-values"; - ParameterId["SelectedData"] = "selected-data"; - ParameterId["HighlightedData"] = "highlighted-data"; - // Filter Params - ParameterId["FieldName"] = "field-name"; - ParameterId["FilterValues"] = "filter-values"; - ParameterId["FilterUpdateType"] = "filter-update-type"; - ParameterId["IsExcludeMode"] = "is-exclude"; - ParameterId["FilterRangeMin"] = "filter-range-min"; - ParameterId["FilterRangeMax"] = "filter-range-max"; - ParameterId["FilterRangeNullOption"] = "filter-range-null-option"; - ParameterId["WorksheetFilters"] = "worksheet-filters"; - ParameterId["FieldId"] = "field-id"; - ParameterId["DomainType"] = "domain-type"; - ParameterId["CategoricalDomain"] = "categorical-domain"; - ParameterId["QuantitativeDomain"] = "quantitative-dmain"; - ParameterId["WorksheetName"] = "worksheet-name"; - ParameterId["DashboardName"] = "dashboard"; - ParameterId["ParameterInfo"] = "parameter-info"; - ParameterId["ParameterInfos"] = "parameter-infos"; - ParameterId["ParameterCaption"] = "paremeter-caption"; - ParameterId["ParameterFieldName"] = "parameter-field-name"; - ParameterId["ParameterValue"] = "parameter-value"; - ParameterId["Selection"] = "selection"; - ParameterId["SelectionUpdateType"] = "selectionUpdateType"; - ParameterId["HierValSelectionModels"] = "hierarchicalValueSelectionModels"; - ParameterId["QuantRangeSelectionModels"] = "quantativeRangeSelectionModels"; - ParameterId["DimValSelectionModels"] = "dimensionValueSelectionModels"; - ParameterId["DataSourceId"] = "data-source-id"; - ParameterId["DataSchema"] = "data-schema"; - ParameterId["DataSourceName"] = "data-source-name"; - ParameterId["ColumnsToInclude"] = "columns-to-include"; - })(ParameterId = exports.ParameterId || (exports.ParameterId = {})); - //# sourceMappingURL=Parameters.js.map - -/***/ }, -/* 9 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - // Declare this key type and export the NotificationId to make this behave like a string enum - var VerbId; - (function (VerbId) { - VerbId["ApplyCategoricalFilter"] = "categorical-filter"; - VerbId["ApplyRangeFilter"] = "range-filter"; - VerbId["ClearFilter"] = "clear-filter"; - VerbId["InitializeAddIn"] = "initialize-add-in"; - VerbId["GetDataSummaryData"] = "get-summary-data"; - VerbId["GetUnderlyingData"] = "get-underlying-data"; - VerbId["GetDataSourceData"] = "get-datasource-data"; - VerbId["SaveAddInSettings"] = "save-add-in-settings"; - VerbId["GetSelectedMarks"] = "get-selected-marks"; - VerbId["GetHighlightedMarks"] = "get-highlighted-marks"; - VerbId["GetParametersForSheet"] = "get-parameters-for-sheet"; - VerbId["FindParameter"] = "find-parameter"; - VerbId["ChangeParameterValue"] = "change-parameter-value"; - VerbId["ClearSelectedMarks"] = "clear-selected-marks"; - VerbId["SelectByValue"] = "select-by-value"; - VerbId["GetDataSources"] = "get-data-sources"; - VerbId["RefreshDataSource"] = "refresh-data-source"; - VerbId["GetFilters"] = "get-filters"; - VerbId["GetCategoricalDomain"] = "get-categorical-domain"; - VerbId["GetRangeDomain"] = "get-range-domain"; - })(VerbId = exports.VerbId || (exports.VerbId = {})); - //# sourceMappingURL=Verbs.js.map - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - "use strict"; - // ----------------------------------------------------------------------------- - // - // This file is the copyrighted property of Tableau Software and is protected - // by registered patents and other applicable U.S. and international laws and - // regulations. - // - // Unlicensed use of the contents of this file is prohibited. Please refer to - // the NOTICES.txt file for further details. - // - // ----------------------------------------------------------------------------- - // WARNING: Computer generated file. Do not hand modify. - // DEPENDS ON: ['../typescript/js-api/api-core/node_modules/@tableau/preslayer-codegen-typescript/templates/params-ts.template', u'../typescript/js-api/api-core/temp-pres-layer/all-params.data'] - Object.defineProperty(exports, "__esModule", { value: true }); - var ParameterId; - (function (ParameterId) { - // DPI_IntegerRLE, having type int[] - ParameterId["IntegerRLE"] = "intRle"; - // DPI_UnsignedIntegerRLE, having type uint[] - ParameterId["UnsignedIntegerRLE"] = "uintRle"; - // DPI_FloatRLE, having type float[] - ParameterId["FloatRLE"] = "floatRle"; - // DPI_ParameterID, having type string - ParameterId["ParameterID"] = "paramType"; - // DPI_AllowCustomDatabase, having type bool - ParameterId["AllowCustomDatabase"] = "allowCustomDatabase"; - // DPI_AllowCustomSchema, having type bool - ParameterId["AllowCustomSchema"] = "allowCustomSchema"; - // DPI_AllowCustomSQL, having type bool - ParameterId["AllowCustomSQL"] = "allowCustomSql"; - // DPI_AllowCustomSQLWithoutSchema, having type bool - ParameterId["AllowCustomSQLWithoutSchema"] = "allowCustomSqlWithoutSchema"; - // DPI_AllowPreviewData, having type bool - ParameterId["AllowPreviewData"] = "allowPreviewData"; - // DPI_AllowStoredProc, having type bool - ParameterId["AllowStoredProc"] = "allowStoredProcedure"; - // DPI_AllowUnion, having type bool - ParameterId["AllowUnion"] = "allowUnion"; - // DPI_AreVariablesVisible, having type bool - ParameterId["AreVariablesVisible"] = "areVariablesVisible"; - // DPI_AttrLegacyConnection, having type bool - ParameterId["AttrLegacyConnection"] = "widgetAttrLegacy"; - // DPI_AttrReadUncommitted, having type bool - ParameterId["AttrReadUncommitted"] = "widgetAttrReadUncommittedData"; - // DPI_AttrRequireSSL, having type bool - ParameterId["AttrRequireSSL"] = "widgetAttrRequireSsl"; - // DPI_AttrRequireEncryption, having type bool - ParameterId["AttrRequireEncryption"] = "widgetAttrRequireEncryption"; - // DPI_Bool, having type bool - ParameterId["Bool"] = "bool"; - // DPI_CanPartition, having type bool - ParameterId["CanPartition"] = "canPartition"; - // DPI_CanRecommendDataSources, having type bool - ParameterId["CanRecommendDataSources"] = "canRecommendDatasources"; - // DPI_CanRecommendTables, having type bool - ParameterId["CanRecommendTables"] = "canRecommendTables"; - // DPI_CheckPermissions, having type bool - ParameterId["CheckPermissions"] = "checkPermissions"; - // DPI_DatabaseNameOptional, having type bool - ParameterId["DatabaseNameOptional"] = "databaseNameOptional"; - // DPI_DatabaseWHOptional, having type bool - ParameterId["DatabaseWHOptional"] = "databaseWarehouseOptional"; - // DPI_DoValidation, having type bool - ParameterId["DoValidation"] = "doValidation"; - // DPI_DoneLoadingAllSheets, having type bool - ParameterId["DoneLoadingAllSheets"] = "googleSheetDoneLoading"; - // DPI_GABasicItemsEnabled, having type bool - ParameterId["GABasicItemsEnabled"] = "gaBasicItemsEnabled"; - // DPI_GADimensionMeasuresEnabled, having type bool - ParameterId["GADimensionMeasuresEnabled"] = "gaDimensionsMeasuresEnabled"; - // DPI_GAFiltersEnabled, having type bool - ParameterId["GAFiltersEnabled"] = "gaFiltersEnabled"; - // DPI_HasDatabase, having type bool - ParameterId["HasDatabase"] = "hasDatabase"; - // DPI_HasDataLoss, having type bool - ParameterId["HasDataLoss"] = "hasDataLoss"; - // DPI_HasFastMetadata, having type bool - ParameterId["HasFastMetadata"] = "hasFastMetadata"; - // DPI_HasNewlyDiscoveredSchema, having type bool - ParameterId["HasNewlyDiscoveredSchema"] = "hasNewlyDiscoveredSchema"; - // DPI_HasPermissions, having type bool - ParameterId["HasPermissions"] = "hasPermissions"; - // DPI_HasSchema, having type bool - ParameterId["HasSchema"] = "hasSchema"; - // DPI_HasSchemaCount, having type bool - ParameterId["HasSchemaCount"] = "hasSchemaCount"; - // DPI_HasTables, having type bool - ParameterId["HasTables"] = "hasTables"; - // DPI_HasUncommittedChanges, having type bool - ParameterId["HasUncommittedChanges"] = "hasUncommittedChanges"; - // DPI_HasWarehouse, having type bool - ParameterId["HasWarehouse"] = "hasWarehouse"; - // DPI_HasWarning, having type bool - ParameterId["HasWarning"] = "hasWarning"; - // DPI_IsCalculated, having type bool - ParameterId["IsCalculated"] = "isCalculated"; - // DPI_IsConnectedToDataSource, having type bool - ParameterId["IsConnectedToDataSource"] = "isConnectedDatasource"; - // DPI_IsDisabledDataConnection, having type bool - ParameterId["IsDisabledDataConnection"] = "isDisabledDataConnection"; - // DPI_IsEditable, having type bool - ParameterId["IsEditable"] = "isEditable"; - // DPI_IsEnabled, having type bool - ParameterId["IsEnabled"] = "isEnabled"; - // DPI_IsFinishedConnecting, having type bool - ParameterId["IsFinishedConnecting"] = "isFinishedConnecting"; - // DPI_IsHidden, having type bool - ParameterId["IsHidden"] = "isHidden"; - // DPI_IsMultiTable, having type bool - ParameterId["IsMultiTable"] = "isMultiTable"; - // DPI_IsNewCustomSQL, having type bool - ParameterId["IsNewCustomSQL"] = "isNewCustomSql"; - // DPI_IsNewDataSource, having type bool - ParameterId["IsNewDataSource"] = "isNewDataSrc"; - // DPI_IsPublishedFederated, having type bool - ParameterId["IsPublishedFederated"] = "isPublishedFederated"; - // DPI_IsSampled, having type bool - ParameterId["IsSampled"] = "isSampled"; - // DPI_IsSchemaMemberNewlyDiscovered, having type bool - ParameterId["IsSchemaMemberNewlyDiscovered"] = "isSchemaMemberNewlyDiscovered"; - // DPI_IsSlowFast, having type bool - ParameterId["IsSlowFast"] = "isSlowfast"; - // DPI_IsSupported, having type bool - ParameterId["IsSupported"] = "isSupported"; - // DPI_IsTableSelectionVisible, having type bool - ParameterId["IsTableSelectionVisible"] = "isTableSelectionVisible"; - // DPI_IsTableauServerDatasource, having type bool - ParameterId["IsTableauServerDatasource"] = "isTableauServerDatasource"; - // DPI_IsTableauServerDatasourceConnectable, having type bool - ParameterId["IsTableauServerDatasourceConnectable"] = "isTableauServerDatasourceConnectable"; - // DPI_IsTableauServerDatasourceDownloadable, having type bool - ParameterId["IsTableauServerDatasourceDownloadable"] = "isTableauServerDatasourceDownloadable"; - // DPI_IsVisible, having type bool - ParameterId["IsVisible"] = "isVisible"; - // DPI_NeedFlatten, having type bool - ParameterId["NeedFlatten"] = "needFlatten"; - // DPI_SSLRequiresCertificate, having type bool - ParameterId["SSLRequiresCertificate"] = "sslRequiresCertificate"; - // DPI_SchemaOptional, having type bool - ParameterId["SchemaOptional"] = "schemaOptional"; - // DPI_ServiceNameOptional, having type bool - ParameterId["ServiceNameOptional"] = "serviceNameOptional"; - // DPI_ShouldWarnForCrossSchemaJoins, having type bool - ParameterId["ShouldWarnForCrossSchemaJoins"] = "shouldWarnCrossSchemaJoins"; - // DPI_ShowBrowseButton, having type bool - ParameterId["ShowBrowseButton"] = "showBrowseButton"; - // DPI_ShowConnectionPrompt, having type bool - ParameterId["ShowConnectionPrompt"] = "showConnectionPrompt"; - // DPI_ShowDBBrowseButton, having type bool - ParameterId["ShowDBBrowseButton"] = "showDbBrowseButton"; - // DPI_ShowDBNamePrompt, having type bool - ParameterId["ShowDBNamePrompt"] = "showDbPrompt"; - // DPI_ShowDBWHNamePrompt, having type bool - ParameterId["ShowDBWHNamePrompt"] = "showDbwhPrompt"; - // DPI_ShowImportSSLCertLabel, having type bool - ParameterId["ShowImportSSLCertLabel"] = "showImportSslcertLabel"; - // DPI_ShowPortPrompt, having type bool - ParameterId["ShowPortPrompt"] = "showPortPrompt"; - // DPI_ShowSSLCheckbox, having type bool - ParameterId["ShowSSLCheckbox"] = "showSslCheckbox"; - // DPI_ShowEncryptionCheckbox, having type bool - ParameterId["ShowEncryptionCheckbox"] = "showEncryptionCheckbox"; - // DPI_ShowServerNamePrompt, having type bool - ParameterId["ShowServerNamePrompt"] = "showServerPrompt"; - // DPI_ShowServiceNamePrompt, having type bool - ParameterId["ShowServiceNamePrompt"] = "showServicePrompt"; - // DPI_ShowUncommittedDataCheckbox, having type bool - ParameterId["ShowUncommittedDataCheckbox"] = "showUncommittedDataCheckbox"; - // DPI_SupportsGenericAuth, having type bool - ParameterId["SupportsGenericAuth"] = "supportsGenericAuth"; - // DPI_TableauServerFetchAscending, having type bool - ParameterId["TableauServerFetchAscending"] = "tableauServerFetchAscending"; - // DPI_UsesRadioButton, having type bool - ParameterId["UsesRadioButton"] = "usesRadioButton"; - // DPI_BigQueryLegacySQLCheckStatus, having type bool - ParameterId["BigQueryLegacySQLCheckStatus"] = "datasourceBigqueryLegacySqlCheckStatus"; - // DPI_HasBigQueryLegacySQLCheck, having type bool - ParameterId["HasBigQueryLegacySQLCheck"] = "datasourceBigqueryLegacySqlCheck"; - // DPI_AutoFetchLimit, having type int - ParameterId["AutoFetchLimit"] = "autoFetchLimit"; - // DPI_ConnectionType, having type int - ParameterId["ConnectionType"] = "connectionType"; - // DPI_IconId, having type int - ParameterId["IconId"] = "iconId"; - // DPI_SelectedCatalogIndex, having type int - ParameterId["SelectedCatalogIndex"] = "selectedCatalogIndex"; - // DPI_SelectedCubeIndex, having type int - ParameterId["SelectedCubeIndex"] = "selectedCubeIndex"; - // DPI_SelectedGAAccountIndex, having type int - ParameterId["SelectedGAAccountIndex"] = "selectedGaAccountIndex"; - // DPI_SelectedGAMeasureSetIndex, having type int - ParameterId["SelectedGAMeasureSetIndex"] = "selectedGaMeasureSetIndex"; - // DPI_SelectedGAPropertyIndex, having type int - ParameterId["SelectedGAPropertyIndex"] = "selectedGaPropertyIndex"; - // DPI_SelectedGASegmentIndex, having type int - ParameterId["SelectedGASegmentIndex"] = "selectedGaSegmentIndex"; - // DPI_SelectedGAViewIndex, having type int - ParameterId["SelectedGAViewIndex"] = "selectedGaViewIndex"; - // DPI_SelectedGoogleSheetIndex, having type int - ParameterId["SelectedGoogleSheetIndex"] = "selectedGoogleSheetIndex"; - // DPI_SelectedOptionIndex, having type int - ParameterId["SelectedOptionIndex"] = "selectedOptionIndex"; - // DPI_SlowMetadataCount, having type int - ParameterId["SlowMetadataCount"] = "slowMetadataCount"; - // DPI_TableauServerFetchSortBy, having type int - ParameterId["TableauServerFetchSortBy"] = "tableauServerFetchSort"; - // DPI_ActualParameterOrdinal, having type uint - ParameterId["ActualParameterOrdinal"] = "actualParameterOrdinal"; - // DPI_ActualParameterType, having type uint - ParameterId["ActualParameterType"] = "actualParameterType"; - // DPI_CharSetID, having type uint - ParameterId["CharSetID"] = "charsetId"; - // DPI_DataSourceOrdinal, having type uint - ParameterId["DataSourceOrdinal"] = "datasourceOrdinal"; - // DPI_FilterCount, having type uint - ParameterId["FilterCount"] = "filterCount"; - // DPI_VariablesCount, having type uint - ParameterId["VariablesCount"] = "variablesCount"; - // DPI_ActualParameterDisplayName, having type string - ParameterId["ActualParameterDisplayName"] = "actualParameterDisplayName"; - // DPI_ActualParameterName, having type string - ParameterId["ActualParameterName"] = "actualParameterName"; - // DPI_ActualParameterValue, having type string - ParameterId["ActualParameterValue"] = "actualParameterValue"; - // DPI_AttrAPIVersion, having type string - ParameterId["AttrAPIVersion"] = "attrApiVersion"; - // DPI_AttrAuthType, having type string - ParameterId["AttrAuthType"] = "widgetAttrAuthtype"; - // DPI_AttrConnectionData, having type string - ParameterId["AttrConnectionData"] = "attrConnectionData"; - // DPI_AttrConnectionName, having type string - ParameterId["AttrConnectionName"] = "attrConnectionName"; - // DPI_AttrConnectionType, having type string - ParameterId["AttrConnectionType"] = "widgetAttrConnectiontype"; - // DPI_AttrConnectionURL, having type string - ParameterId["AttrConnectionURL"] = "attrConnectionUrl"; - // DPI_AttrCubeSpecificationId, having type string - ParameterId["AttrCubeSpecificationId"] = "widgetAttrCubeSpecificationId"; - // DPI_AttrCubeSpecificationValue, having type string - ParameterId["AttrCubeSpecificationValue"] = "widgetAttrCubeSpecificationValue"; - // DPI_AttrDSN, having type string - ParameterId["AttrDSN"] = "widgetAttrDsn"; - // DPI_AttrDatabase, having type string - ParameterId["AttrDatabase"] = "widgetAttrDb"; - // DPI_AttrDatabaseWarehouse, having type string - ParameterId["AttrDatabaseWarehouse"] = "widgetAttrDbwh"; - // DPI_AttrDriver, having type string - ParameterId["AttrDriver"] = "widgetAttrDriver"; - // DPI_AttrFilename, having type string - ParameterId["AttrFilename"] = "widgetAttrFilename"; - // DPI_AttrHTTPPath, having type string - ParameterId["AttrHTTPPath"] = "widgetAttrHttpPath"; - // DPI_AttrIncrementalRefreshKey, having type string - ParameterId["AttrIncrementalRefreshKey"] = "attrIncrementalRefreshKey"; - // DPI_AttrKerberosHost, having type string - ParameterId["AttrKerberosHost"] = "widgetAttrKerberosHost"; - // DPI_AttrKerberosRealm, having type string - ParameterId["AttrKerberosRealm"] = "widgetAttrKerberosRealm"; - // DPI_AttrKerberosService, having type string - ParameterId["AttrKerberosService"] = "widgetAttrKerberosService"; - // DPI_AttrLastRecordToken, having type string - ParameterId["AttrLastRecordToken"] = "attrLastRecordToken"; - // DPI_AttrMDWPath, having type string - ParameterId["AttrMDWPath"] = "widgetAttrMdwPath"; - // DPI_AttrMDWUsername, having type string - ParameterId["AttrMDWUsername"] = "widgetAttrMdwUsername"; - // DPI_AttrODBCPrompt, having type string - ParameterId["AttrODBCPrompt"] = "widgetAttrOdbcPrompt"; - // DPI_AttrODBCStringExtras, having type string - ParameterId["AttrODBCStringExtras"] = "widgetAttrOdbcStringExtras"; - // DPI_AttrPort, having type string - ParameterId["AttrPort"] = "widgetAttrPort"; - // DPI_AttrSAPClient, having type string - ParameterId["AttrSAPClient"] = "widgetAttrSapClient"; - // DPI_AttrSAPLanguage, having type string - ParameterId["AttrSAPLanguage"] = "widgetAttrSapLanguage"; - // DPI_AttrEdition, having type string - ParameterId["AttrEdition"] = "widgetAttrSslEdition"; - // DPI_AttrSSODomain, having type string - ParameterId["AttrSSODomain"] = "widgetAttrSsoDomain"; - // DPI_AttrSSLCert, having type string - ParameterId["AttrSSLCert"] = "widgetAttrSslCert"; - // DPI_AttrScriptVersion, having type string - ParameterId["AttrScriptVersion"] = "attrScriptVersion"; - // DPI_AttrServer, having type string - ParameterId["AttrServer"] = "widgetAttrServer"; - // DPI_AttrService, having type string - ParameterId["AttrService"] = "widgetAttrService"; - // DPI_AttrUsername, having type string - ParameterId["AttrUsername"] = "widgetAttrUser"; - // DPI_AuthenticationPrompt, having type string - ParameterId["AuthenticationPrompt"] = "authenticationPrompt"; - // DPI_ButtonClickAction, having type string - ParameterId["ButtonClickAction"] = "buttonClickAction"; - // DPI_ButtonCaption, having type string - ParameterId["ButtonCaption"] = "buttonCaption"; - // DPI_Caption, having type string - ParameterId["Caption"] = "caption"; - // DPI_CatalogListPrompt, having type string - ParameterId["CatalogListPrompt"] = "catalogListPrompt"; - // DPI_CatalogName, having type string - ParameterId["CatalogName"] = "catalogName"; - // DPI_CatalogSearchTerm, having type string - ParameterId["CatalogSearchTerm"] = "catalogSearchTerm"; - // DPI_Category, having type string - ParameterId["Category"] = "itemCategory"; - // DPI_ClassName, having type string - ParameterId["ClassName"] = "classNameForCleaning"; - // DPI_CloudFileClassName, having type string - ParameterId["CloudFileClassName"] = "cloudFileClassName"; - // DPI_CloudFileStorageProvider, having type string - ParameterId["CloudFileStorageProvider"] = "cloudFileStorageProvider"; - // DPI_ConfigName, having type string - ParameterId["ConfigName"] = "connectionConfigName"; - // DPI_ConnectionCaption, having type string - ParameterId["ConnectionCaption"] = "connectionCaption"; - // DPI_ConnectionDescriptionLabel, having type string - ParameterId["ConnectionDescriptionLabel"] = "connectionDescriptionLabel"; - // DPI_ConnectionClass, having type string - ParameterId["ConnectionClass"] = "connectionClassName"; - // DPI_ConnectionName, having type string - ParameterId["ConnectionName"] = "connectionName"; - // DPI_ConnectionOptionName, having type string - ParameterId["ConnectionOptionName"] = "connectionOptionName"; - // DPI_ConnectionSpecificationTitle, having type string - ParameterId["ConnectionSpecificationTitle"] = "connectionSpecificationTitle"; - // DPI_ConnectionTypeLabel, having type string - ParameterId["ConnectionTypeLabel"] = "connectionTypeLabel"; - // DPI_CubeDescription, having type string - ParameterId["CubeDescription"] = "cubeDescription"; - // DPI_CubeLastUpdated, having type string - ParameterId["CubeLastUpdated"] = "cubeLastUpdated"; - // DPI_CubeListPrompt, having type string - ParameterId["CubeListPrompt"] = "cubeListPrompt"; - // DPI_CubeName, having type string - ParameterId["CubeName"] = "cubeName"; - // DPI_CubeSearchTerm, having type string - ParameterId["CubeSearchTerm"] = "cubeSearchTerm"; - // DPI_CurrentText, having type string - ParameterId["CurrentText"] = "currentText"; - // DPI_CustomSplitStringSeparator, having type string - ParameterId["CustomSplitStringSeparator"] = "customSplitStringSeparator"; - // DPI_DatasourceId, having type string - ParameterId["DatasourceId"] = "datasourceId"; - // DPI_DBNamePrompt, having type string - ParameterId["DBNamePrompt"] = "dbNamePrompt"; - // DPI_DBWHNamePrompt, having type string - ParameterId["DBWHNamePrompt"] = "dbWarehouseNamePrompt"; - // DPI_DSClass, having type string - ParameterId["DSClass"] = "dsClass"; - // DPI_DatabaseName, having type string - ParameterId["DatabaseName"] = "datasourceDatabaseName"; - // DPI_DatabaseNote, having type string - ParameterId["DatabaseNote"] = "databaseNote"; - // DPI_DragLabel, having type string - ParameterId["DragLabel"] = "dragLabel"; - // DPI_EffectiveDateRange, having type string - ParameterId["EffectiveDateRange"] = "effectiveDateRange"; - // DPI_GoogleSheetCreatedTime, having type string - ParameterId["GoogleSheetCreatedTime"] = "googleSheetCreatedTime"; - // DPI_GoogleSheetId, having type string - ParameterId["GoogleSheetId"] = "googleSheetId"; - // DPI_GoogleSheetLastModifiedTime, having type string - ParameterId["GoogleSheetLastModifiedTime"] = "googleSheetLastModifiedTime"; - // DPI_GoogleSheetLastModifyingUser, having type string - ParameterId["GoogleSheetLastModifyingUser"] = "googleSheetLastModifyingUser"; - // DPI_GoogleSheetLastViewedByUserTime, having type string - ParameterId["GoogleSheetLastViewedByUserTime"] = "googleSheetLastViewedByUserTime"; - // DPI_GoogleSheetMimeType, having type string - ParameterId["GoogleSheetMimeType"] = "googleSheetMimeType"; - // DPI_GoogleSheetName, having type string - ParameterId["GoogleSheetName"] = "googleSheetName"; - // DPI_GoogleSheetOwner, having type string - ParameterId["GoogleSheetOwner"] = "googleSheetOwner"; - // DPI_GoogleSheetThumbnailLink, having type string - ParameterId["GoogleSheetThumbnailLink"] = "googleSheetThumbnailLink"; - // DPI_GoogleSheetThumbnailId, having type string - ParameterId["GoogleSheetThumbnailId"] = "googleSheetThumbnailId"; - // DPI_GoogleSheetThumbnailLocalPath, having type string - ParameterId["GoogleSheetThumbnailLocalPath"] = "googleSheetThumbnailLocalPath"; - // DPI_GoogleSheetWebViewLink, having type string - ParameterId["GoogleSheetWebViewLink"] = "googleSheetWebViewLink"; - // DPI_GoogleSheetsListErrorMessage, having type string - ParameterId["GoogleSheetsListErrorMessage"] = "googleSheetsListErrorMessage"; - // DPI_InitialSQL, having type string - ParameterId["InitialSQL"] = "initialSql"; - // DPI_ISODate, having type string - ParameterId["ISODate"] = "isoDate"; - // DPI_ISOEndDate, having type string - ParameterId["ISOEndDate"] = "isoEndDate"; - // DPI_ISOStartDate, having type string - ParameterId["ISOStartDate"] = "isoStartDate"; - // DPI_IsolationLevel, having type string - ParameterId["IsolationLevel"] = "datasourceIsolationLevel"; - // DPI_ItemDescription, having type string - ParameterId["ItemDescription"] = "itemDescription"; - // DPI_ItemId, having type string - ParameterId["ItemId"] = "itemId"; - // DPI_KerberosHost, having type string - ParameterId["KerberosHost"] = "datasourceKerberosHost"; - // DPI_KerberosRealm, having type string - ParameterId["KerberosRealm"] = "datasourceKerberosRealm"; - // DPI_KerberosService, having type string - ParameterId["KerberosService"] = "datasourceKerberosService"; - // DPI_Name, having type string - ParameterId["Name"] = "name"; - // DPI_OptionId, having type string - ParameterId["OptionId"] = "optionId"; - // DPI_PartitioningButtonLabel, having type string - ParameterId["PartitioningButtonLabel"] = "partitioningButtonLabel"; - // DPI_PartitioningButtonTooltip, having type string - ParameterId["PartitioningButtonTooltip"] = "partitioningButtonTooltip"; - // DPI_PartitioningText, having type string - ParameterId["PartitioningText"] = "queryPartitioningText"; - // DPI_PdfStartPage, having type string - ParameterId["PdfStartPage"] = "pdfStartPage"; - // DPI_PdfEndPage, having type string - ParameterId["PdfEndPage"] = "pdfEndPage"; - // DPI_PortPrompt, having type string - ParameterId["PortPrompt"] = "portPrompt"; - // DPI_PromptText, having type string - ParameterId["PromptText"] = "promptText"; - // DPI_QueryBanding, having type string - ParameterId["QueryBanding"] = "queryBanding"; - // DPI_QueryText, having type string - ParameterId["QueryText"] = "queryText"; - // DPI_RecommendationUUID, having type string - ParameterId["RecommendationUUID"] = "recommendationUuid"; - // DPI_SQLQuery, having type string - ParameterId["SQLQuery"] = "sqlQuery"; - // DPI_SchemaComboFallbackText, having type string - ParameterId["SchemaComboFallbackText"] = "schemaComboFallbackText"; - // DPI_SchemaLabel, having type string - ParameterId["SchemaLabel"] = "schemaLabel"; - // DPI_SchemaMemberGlobalName, having type string - ParameterId["SchemaMemberGlobalName"] = "schemaMemberGlobalName"; - // DPI_SchemaName, having type string - ParameterId["SchemaName"] = "datasourceSchemaName"; - // DPI_ScriptText, having type string - ParameterId["ScriptText"] = "scriptText"; - // DPI_SecondaryWhiteList, having type string - ParameterId["SecondaryWhiteList"] = "secondaryWhiteList"; - // DPI_Server, having type string - ParameterId["Server"] = "datasourceServer"; - // DPI_ServerNamePrompt, having type string - ParameterId["ServerNamePrompt"] = "serverNamePrompt"; - // DPI_Service, having type string - ParameterId["Service"] = "datasourceService"; - // DPI_ServiceNamePrompt, having type string - ParameterId["ServiceNamePrompt"] = "servicePrompt"; - // DPI_SheetFormatting, having type string - ParameterId["SheetFormatting"] = "sheetFormatting"; - // DPI_SlowMetadataSearchTerm, having type string - ParameterId["SlowMetadataSearchTerm"] = "slowMetadataSearchTerm"; - // DPI_StandardConnectionName, having type string - ParameterId["StandardConnectionName"] = "datasourceStandardConnectionName"; - // DPI_StandardConnectionPlaceholderText, having type string - ParameterId["StandardConnectionPlaceholderText"] = "standardConnectionPlaceholderText"; - // DPI_StoredProcedureParameterTitle, having type string - ParameterId["StoredProcedureParameterTitle"] = "storedProcedureParameterTitle"; - // DPI_TableAlias, having type string - ParameterId["TableAlias"] = "tableAlias"; - // DPI_RightTableAlias, having type string - ParameterId["RightTableAlias"] = "rightTableAlias"; - // DPI_TableCaption, having type string - ParameterId["TableCaption"] = "tableCaption"; - // DPI_TableCollectionName, having type string - ParameterId["TableCollectionName"] = "tableCollectionName"; - // DPI_TablePlaceholderText, having type string - ParameterId["TablePlaceholderText"] = "tablePlaceholderText"; - // DPI_TableRanking, having type string - ParameterId["TableRanking"] = "tableRanking"; - // DPI_TableSortKey, having type string - ParameterId["TableSortKey"] = "tableSortkey"; - // DPI_TableTooltip, having type string - ParameterId["TableTooltip"] = "tableTooltip"; - // DPI_TableToReplace, having type string - ParameterId["TableToReplace"] = "tableToReplace"; - // DPI_TableWarningMessage, having type string - ParameterId["TableWarningMessage"] = "tableWarningMessage"; - // DPI_TableauServerDatasourceDescription, having type string - ParameterId["TableauServerDatasourceDescription"] = "tableauServerDatasourceDescription"; - // DPI_TableauServerDatasourceLastExtract, having type string - ParameterId["TableauServerDatasourceLastExtract"] = "tableauServerDatasourceLastExtract"; - // DPI_TableauServerDatasourceModified, having type string - ParameterId["TableauServerDatasourceModified"] = "tableauServerDatasourceModified"; - // DPI_TableauServerDatasourceOwner, having type string - ParameterId["TableauServerDatasourceOwner"] = "tableauServerDatasourceOwner"; - // DPI_TableauServerDatasourcePath, having type string - ParameterId["TableauServerDatasourcePath"] = "tableauServerDatasourcePath"; - // DPI_TableauServerFetchSearchQuery, having type string - ParameterId["TableauServerFetchSearchQuery"] = "tableauServerFetchSearchQuery"; - // DPI_TableauServerName, having type string - ParameterId["TableauServerName"] = "tableauServerName"; - // DPI_TableauServerProjectName, having type string - ParameterId["TableauServerProjectName"] = "tableauServerProjectName"; - // DPI_TableauServerUsername, having type string - ParameterId["TableauServerUsername"] = "tableauServerUsername"; - // DPI_TransportType, having type string - ParameterId["TransportType"] = "transportType"; - // DPI_WarehouseName, having type string - ParameterId["WarehouseName"] = "datasourceWarehouseName"; - // DPI_WorkgroupWorkbookName, having type string - ParameterId["WorkgroupWorkbookName"] = "workgroupWorkbookName"; - // DPI_AnalyticsItemTooltip, having type string - ParameterId["AnalyticsItemTooltip"] = "analyticsItemTooltip"; - // DPI_Description, having type string - ParameterId["Description"] = "description"; - // DPI_DSClassCaption, having type string - ParameterId["DSClassCaption"] = "dsClassCaption"; - // DPI_Formula, having type string - ParameterId["Formula"] = "formula"; - // DPI_MessageText, having type string - ParameterId["MessageText"] = "messageText"; - // DPI_Datasource, having type string - ParameterId["Datasource"] = "datasource"; - // DPI_DatasourceSource, having type string - ParameterId["DatasourceSource"] = "datasourceSource"; - // DPI_DatasourceTarget, having type string - ParameterId["DatasourceTarget"] = "datasourceTarget"; - // DPI_FirstDatasource, having type string - ParameterId["FirstDatasource"] = "firstDatasource"; - // DPI_NewDatasource, having type string - ParameterId["NewDatasource"] = "newDatasource"; - // DPI_ParametersDatasource, having type string - ParameterId["ParametersDatasource"] = "parametersDatasource"; - // DPI_PrimaryDatasource, having type string - ParameterId["PrimaryDatasource"] = "primaryDatasource"; - // DPI_ConnectionDatabases, having type string[] - ParameterId["ConnectionDatabases"] = "connectionDatabases"; - // DPI_ConnectionSchemas, having type string[] - ParameterId["ConnectionSchemas"] = "connectionSchemas"; - // DPI_ConnectionWarehouses, having type string[] - ParameterId["ConnectionWarehouses"] = "connectionWarehouses"; - // DPI_DSClasses, having type string[] - ParameterId["DSClasses"] = "dsClasses"; - // DPI_PossibleChoices, having type string[] - ParameterId["PossibleChoices"] = "possibleChoices"; - // DPI_StandardConnections, having type string[] - ParameterId["StandardConnections"] = "standardConnections"; - // DPI_Strings, having type string[] - ParameterId["Strings"] = "strings"; - // DPI_TableauServerProjectNames, having type string[] - ParameterId["TableauServerProjectNames"] = "tableauServerProjectNames"; - // DPI_TableCaptions, having type string[] - ParameterId["TableCaptions"] = "tableCaptions"; - // DPI_DataValues, having type object[] - ParameterId["DataValues"] = "dataValues"; - // DPI_QueryBandErrors, having type object[] - ParameterId["QueryBandErrors"] = "queryBandErrors"; - // DPI_QueryBandParameters, having type object[] - ParameterId["QueryBandParameters"] = "queryBandParameters"; - // DPI_InitialSQLParameters, having type object[] - ParameterId["InitialSQLParameters"] = "initialSqlParameters"; - // DPI_ConnectionAttributes, having type Dictionary(of string) - ParameterId["ConnectionAttributes"] = "connectionAttrs"; - // DPI_ConnectionProps, having type Dictionary(of string) - ParameterId["ConnectionProps"] = "connectionProps"; - // DPI_DisplayNameMap, having type Dictionary(of string) - ParameterId["DisplayNameMap"] = "displayNameMap"; - // DPI_LookupTable, having type Dictionary(of string) - ParameterId["LookupTable"] = "lookupTable"; - // DPI_OAuthAttrs, having type Dictionary(of string) - ParameterId["OAuthAttrs"] = "oauthAttrs"; - // DPI_StringMap, having type Dictionary(of string) - ParameterId["StringMap"] = "stringMap"; - // DPI_TableRankingMap, having type Dictionary(of string) - ParameterId["TableRankingMap"] = "tableRankingMap"; - // DPI_WDCAttributes, having type Dictionary(of string) - ParameterId["WDCAttributes"] = "wdcAttrs"; - // DPI_ConnectorAttributes, having type Dictionary(of string) - ParameterId["ConnectorAttributes"] = "connectorAttrs"; - // DPI_TableRelevanceParams, having type Dictionary(of string) - ParameterId["TableRelevanceParams"] = "tableRelevanceParams"; - // DPI_ActualParameterParameter, having type string - ParameterId["ActualParameterParameter"] = "actualParameterParameter"; - // DPI_DataColumnName, having type string - ParameterId["DataColumnName"] = "dataColumnName"; - // DPI_LHSDataColumnName, having type string - ParameterId["LHSDataColumnName"] = "lhsDataColumnName"; - // DPI_RHSDataColumnName, having type string - ParameterId["RHSDataColumnName"] = "rhsDataColumnName"; - // DPI_FullCubeName, having type string - ParameterId["FullCubeName"] = "fullCubeName"; - // DPI_FullVariableName, having type string - ParameterId["FullVariableName"] = "fullVariableName"; - // DPI_SemanticRole, having type string - ParameterId["SemanticRole"] = "semanticRole"; - // DPI_StoredProcedureName, having type string - ParameterId["StoredProcedureName"] = "storedProcName"; - // DPI_TableName, having type string - ParameterId["TableName"] = "tableName"; - // DPI_AddedTableNames, having type string[] - ParameterId["AddedTableNames"] = "addedTableNames"; - // DPI_CoalesceGroupFields, having type string[] - ParameterId["CoalesceGroupFields"] = "coalesceGroupFields"; - // DPI_FieldNames, having type string[] - ParameterId["FieldNames"] = "fieldNames"; - // DPI_JoinFieldAliases, having type string[] - ParameterId["JoinFieldAliases"] = "joinField_aliases"; - // DPI_JoinInfoFields, having type string[] - ParameterId["JoinInfoFields"] = "joinInfoFields"; - // DPI_PivotGroupFields, having type string[] - ParameterId["PivotGroupFields"] = "pivotGroupFields"; - // DPI_RemovedTableNames, having type string[] - ParameterId["RemovedTableNames"] = "removedTableNames"; - // DPI_StoredProcedures, having type string[] - ParameterId["StoredProcedures"] = "storedProcedures"; - // DPI_TableNames, having type string[] - ParameterId["TableNames"] = "tableNames"; - // DPI_ColumnName, having type string - ParameterId["ColumnName"] = "columnName"; - // DPI_FieldName, having type string - ParameterId["FieldName"] = "fn"; - // DPI_GoogleSheetThumbnailImage, having type string - ParameterId["GoogleSheetThumbnailImage"] = "googleSheetThumbnailImage"; - // DPI_AttrMDWPassword, having type string - ParameterId["AttrMDWPassword"] = "widgetAttrMdwPassword"; - // DPI_AttrPassword, having type string - ParameterId["AttrPassword"] = "widgetAttrPassword"; - // DPI_DatasourcePassword, having type string - ParameterId["DatasourcePassword"] = "datasourcePassword"; - // DPI_FederatedKeychain, having type string - ParameterId["FederatedKeychain"] = "federatedKeychain"; - // DPI_DataParameterID, having type string - ParameterId["DataParameterID"] = "dataParamType"; - // DPI_ConnectServerWidgetType, having type ConnectServerWidgetType - ParameterId["ConnectServerWidgetType"] = "connectServerWidgetType"; - // DPI_AuthenticationMode, having type Mode - ParameterId["AuthenticationMode"] = "authMode"; - // DPI_ReconnectAuthMode, having type ReconnectMode - ParameterId["ReconnectAuthMode"] = "reconnectAuthMode"; - // DPI_CurrentAuthOption, having type AuthOption - ParameterId["CurrentAuthOption"] = "currAuthOption"; - // DPI_AuthOptionList, having type AuthOption[] - ParameterId["AuthOptionList"] = "authOptions"; - // DPI_ConnectionSpecificationType, having type ConnectionSpecificationType - ParameterId["ConnectionSpecificationType"] = "connectionSpecificationType"; - // DPI_DataType, having type DataType - ParameterId["DataType"] = "dataType"; - // DPI_LHSDataType, having type DataType - ParameterId["LHSDataType"] = "lhsDataType"; - // DPI_RHSDataType, having type DataType - ParameterId["RHSDataType"] = "rhsDataType"; - // DPI_DefaultFieldRole, having type FieldRole - ParameterId["DefaultFieldRole"] = "defaultFieldRole"; - // DPI_FieldRole, having type FieldRole - ParameterId["FieldRole"] = "fieldRole"; - // DPI_DefaultFieldType, having type FieldType - ParameterId["DefaultFieldType"] = "defaultFieldType"; - // DPI_FieldType, having type FieldType - ParameterId["FieldType"] = "fieldType"; - // DPI_FieldTypeList, having type FieldType[] - ParameterId["FieldTypeList"] = "fieldTypeList"; - // DPI_FieldTypeListDetail, having type FieldType[] - ParameterId["FieldTypeListDetail"] = "fieldTypeListDetail"; - // DPI_AggType, having type AggType - ParameterId["AggType"] = "aggregation"; - // DPI_DefaultAggType, having type AggType - ParameterId["DefaultAggType"] = "defaultAggregation"; - // DPI_ForecastAgg, having type AggType - ParameterId["ForecastAgg"] = "forecastSummarizeTo"; - // DPI_ForecastAutoAgg, having type AggType - ParameterId["ForecastAutoAgg"] = "forecastAutoSummarizeTo"; - // DPI_ForecastAutoRangeUnits, having type AggType - ParameterId["ForecastAutoRangeUnits"] = "forecastAutoRangeUnits"; - // DPI_ForecastEndOfRangeUnits, having type AggType - ParameterId["ForecastEndOfRangeUnits"] = "forecastEndOfRangeUnits"; - // DPI_ForecastNextRangeUnits, having type AggType - ParameterId["ForecastNextRangeUnits"] = "forecastNextRangeUnits"; - // DPI_SourceAgg, having type AggType - ParameterId["SourceAgg"] = "sourceAggregation"; - // DPI_TargetAgg, having type AggType - ParameterId["TargetAgg"] = "targetAggregation"; - // DPI_AggregateByAggTypes, having type AggType[] - ParameterId["AggregateByAggTypes"] = "aggregateByAggTypes"; - // DPI_AggregationValues, having type AggType[] - ParameterId["AggregationValues"] = "aggregationValues"; - // DPI_SortAggValues, having type AggType[] - ParameterId["SortAggValues"] = "sortAggValues"; - // DPI_ColumnClass, having type ColumnClass - ParameterId["ColumnClass"] = "columnClass"; - // DPI_ConnectionWidgetType, having type ConnectionWidgetType - ParameterId["ConnectionWidgetType"] = "connectionWidgetType"; - // DPI_TablePillIcon, having type TablePillIcon - ParameterId["TablePillIcon"] = "tablePillIconType"; - // DPI_EnumeratedEntityType, having type EntityType - ParameterId["EnumeratedEntityType"] = "enumeratedEntityType"; - // DPI_PickEntitySearchType, having type PickEntitySearchType - ParameterId["PickEntitySearchType"] = "entitySearchType"; - // DPI_ExpressionOp, having type Op - ParameterId["ExpressionOp"] = "expressionOp"; - // DPI_ExpressionOperatorCaption, having type ExpressionOperatorCaptionPresModel - ParameterId["ExpressionOperatorCaption"] = "expressionOperatorCaption"; - // DPI_RelationalExperessionOps, having type ExpressionOperatorCaptionPresModel[] - ParameterId["RelationalExperessionOps"] = "relationalExpressionOps"; - // DPI_HierarchyExpressionOps, having type ExpressionOperatorCaptionPresModel[] - ParameterId["HierarchyExpressionOps"] = "hierarchyExpressionOps"; - // DPI_DefaultSortDirection, having type SortDirection - ParameterId["DefaultSortDirection"] = "defSortOrder"; - // DPI_SortDirection, having type SortDirection - ParameterId["SortDirection"] = "sortOrder"; - // DPI_SortDirectionValues, having type SortDirection[] - ParameterId["SortDirectionValues"] = "sortDirectionValues"; - // DPI_CubeMetadataCategory, having type CubeMetadataCategory - ParameterId["CubeMetadataCategory"] = "cubeMetadataCategory"; - // DPI_CubeMetadataCategories, having type CubeMetadataCategory[] - ParameterId["CubeMetadataCategories"] = "cubeMetadataCategories"; - // DPI_GoogleBasicInfoType, having type GoogleBasicInfoType - ParameterId["GoogleBasicInfoType"] = "googleBasicInfoType"; - // DPI_GoogleAnalyticsDateRangeOptionType, having type DateRange - ParameterId["GoogleAnalyticsDateRangeOptionType"] = "googleAnalyticsDateRangeOptionType"; - // DPI_TableCalcType, having type TableCalcType - ParameterId["TableCalcType"] = "tableCalcType"; - // DPI_TableCalcTypeValues, having type TableCalcType[] - ParameterId["TableCalcTypeValues"] = "tableCalcTypeValues"; - // DPI_RelativeAddress, having type RelativeAddress - ParameterId["RelativeAddress"] = "relativeAddress"; - // DPI_RelativeValues, having type RelativeAddress[] - ParameterId["RelativeValues"] = "relativeValues"; - // DPI_OrderingType, having type OrderingType - ParameterId["OrderingType"] = "orderingType"; - // DPI_OrderingTypeValues, having type OrderingType[] - ParameterId["OrderingTypeValues"] = "orderingTypeValues"; - // DPI_CategoricalBinItemType, having type CategoricalBinItemType - ParameterId["CategoricalBinItemType"] = "categoricalBinItemType"; - // DPI_AuthenticationInfos, having type AuthenticationSettingsPresModel - ParameterId["AuthenticationInfos"] = "authInfo"; - // DPI_ConnectionWidgetParams, having type ConnectionParamsPresModel - ParameterId["ConnectionWidgetParams"] = "widgetConnectionParams"; - // DPI_ConnectionSettings, having type ConnectionSettingsPresModel - ParameterId["ConnectionSettings"] = "connectionSettings"; - // DPI_ReconnectAuthenticationSettings, having type AuthenticationSettingsPresModel - ParameterId["ReconnectAuthenticationSettings"] = "reconnectAuthSettings"; - // DPI_CubeConnectionSpecificationOption, having type CubeConnectionSpecificationOptionPresModel - ParameterId["CubeConnectionSpecificationOption"] = "cubeConnectionSpecificationOption"; - // DPI_CubeConnectionSpecificationOptions, having type CubeConnectionSpecificationOptionPresModel[] - ParameterId["CubeConnectionSpecificationOptions"] = "cubeConnectionSpecificationOptions"; - // DPI_CubeConnectionSpecification, having type CubeConnectionSpecificationPresModel - ParameterId["CubeConnectionSpecification"] = "cubeConnectionSpecification"; - // DPI_ConnectionSettingsOption, having type ConnectionSettingsOptionPresModel - ParameterId["ConnectionSettingsOption"] = "connectionSettingsOption"; - // DPI_ConnectionSettingsOptions, having type ConnectionSettingsOptionPresModel[] - ParameterId["ConnectionSettingsOptions"] = "connectionSettingsOptions"; - // DPI_StringCollation, having type StringCollationPresModel - ParameterId["StringCollation"] = "stringCollation"; - // DPI_DatabaseEnumeration, having type DatabaseEnumerationPresModel - ParameterId["DatabaseEnumeration"] = "databaseEnumeration"; - // DPI_SchemaEnumeration, having type SchemaEnumerationPresModel - ParameterId["SchemaEnumeration"] = "schemaEnumeration"; - // DPI_StandardConnectionEnumeration, having type StandardConnectionEnumerationPresModel - ParameterId["StandardConnectionEnumeration"] = "standardConnectionEnumeration"; - // DPI_StoredProcedureEnumeration, having type StoredProcedureEnumerationPresModel - ParameterId["StoredProcedureEnumeration"] = "storedProcedureEnumeration"; - // DPI_TableEnumeration, having type TableEnumerationPresModel - ParameterId["TableEnumeration"] = "tableEnumeration"; - // DPI_WarehouseEnumeration, having type WarehouseEnumerationPresModel - ParameterId["WarehouseEnumeration"] = "warehouseEnumeration"; - // DPI_SlowMetadataSchemaList, having type SlowMetadataSchemaListPresModel - ParameterId["SlowMetadataSchemaList"] = "slowMetadataSchemaList"; - // DPI_SlowMetadataTableList, having type SlowMetadataTableListPresModel - ParameterId["SlowMetadataTableList"] = "slowMetadataTableList"; - // DPI_CubeCatalog, having type CubeCatalogPresModel - ParameterId["CubeCatalog"] = "cubeCatalog"; - // DPI_CubeCatalogs, having type CubeCatalogPresModel[] - ParameterId["CubeCatalogs"] = "cubeCatalogs"; - // DPI_CubeCatalogEnumeration, having type CubeCatalogEnumerationPresModel - ParameterId["CubeCatalogEnumeration"] = "cubeCatalogEnumeration"; - // DPI_Cube, having type CubePresModel - ParameterId["Cube"] = "cube"; - // DPI_Cubes, having type CubePresModel[] - ParameterId["Cubes"] = "cubes"; - // DPI_CubeEnumeration, having type CubeEnumerationPresModel - ParameterId["CubeEnumeration"] = "cubeEnumeration"; - // DPI_GoogleAnalyticsBasicItem, having type GoogleAnalyticsBasicItemPresModel - ParameterId["GoogleAnalyticsBasicItem"] = "googleAnalyticsBasicItem"; - // DPI_GAMeasureSets, having type GoogleAnalyticsBasicItemPresModel[] - ParameterId["GAMeasureSets"] = "gaMeasureSets"; - // DPI_GoogleAnalyticsViews, having type GoogleAnalyticsBasicItemPresModel[] - ParameterId["GoogleAnalyticsViews"] = "googleAnalyticsViews"; - // DPI_GoogleAnalyticsProperties, having type GoogleAnalyticsBasicItemPresModel[] - ParameterId["GoogleAnalyticsProperties"] = "googleAnalyticsProperties"; - // DPI_GoogleBasicInfoItems, having type GoogleAnalyticsBasicItemPresModel[] - ParameterId["GoogleBasicInfoItems"] = "googleAnalyticsAccounts"; - // DPI_GoogleAnalyticsComplexItem, having type GoogleAnalyticsComplexItemPresModel - ParameterId["GoogleAnalyticsComplexItem"] = "googleAnalyticsComplexItem"; - // DPI_GoogleAnalyticsPossibleDimensions, having type GoogleAnalyticsComplexItemPresModel[] - ParameterId["GoogleAnalyticsPossibleDimensions"] = "googleAnalyticsPossibleDimensions"; - // DPI_GoogleAnalyticsPossibleMeasures, having type GoogleAnalyticsComplexItemPresModel[] - ParameterId["GoogleAnalyticsPossibleMeasures"] = "googleAnalyticsPossibleMeasures"; - // DPI_GoogleAnalyticsPossibleSegments, having type GoogleAnalyticsComplexItemPresModel[] - ParameterId["GoogleAnalyticsPossibleSegments"] = "googleAnalyticsPossibleSegments"; - // DPI_GoogleAnalyticsSelectedDimensions, having type GoogleAnalyticsComplexItemPresModel[] - ParameterId["GoogleAnalyticsSelectedDimensions"] = "googleAnalyticsSelectedDimensions"; - // DPI_GoogleAnalyticsSelectedMeasures, having type GoogleAnalyticsComplexItemPresModel[] - ParameterId["GoogleAnalyticsSelectedMeasures"] = "googleAnalyticsSelectedMeasures"; - // DPI_GoogleAnalyticsDateRangeOption, having type GoogleAnalyticsDateRangeOptionPresModel - ParameterId["GoogleAnalyticsDateRangeOption"] = "googleAnalyticsDateRangeOption"; - // DPI_GoogleAnalyticsDateRangeOptions, having type GoogleAnalyticsDateRangeOptionPresModel[] - ParameterId["GoogleAnalyticsDateRangeOptions"] = "googleAnalyticsDateRangeOptions"; - // DPI_GoogleAnalyticsEndDate, having type GoogleAnalyticsDatePresModel - ParameterId["GoogleAnalyticsEndDate"] = "googleAnalyticsEndDate"; - // DPI_GoogleAnalyticsStartDate, having type GoogleAnalyticsDatePresModel - ParameterId["GoogleAnalyticsStartDate"] = "googleAnalyticsStartDate"; - // DPI_GoogleAnalyticsDateRange, having type GoogleAnalyticsDateRangePresModel - ParameterId["GoogleAnalyticsDateRange"] = "googleAnalyticsDateRange"; - // DPI_GoogleAnalyticsQueryPartitioning, having type GoogleAnalyticsQueryPartitioningPresModel - ParameterId["GoogleAnalyticsQueryPartitioning"] = "googleAnalyticsQueryPartitioning"; - // DPI_GAConnectionDescription, having type GoogleAnalyticsConnectionDescriptionPresModel - ParameterId["GAConnectionDescription"] = "gaConnectionDescription"; - // DPI_GoogleSheetItem, having type GoogleSheetItemPresModel - ParameterId["GoogleSheetItem"] = "googleSheetItem"; - // DPI_GoogleSheetItems, having type GoogleSheetItemPresModel[] - ParameterId["GoogleSheetItems"] = "googleSheetItems"; - // DPI_GoogleSheetsListPresModel, having type GoogleSheetsListPresModel - ParameterId["GoogleSheetsListPresModel"] = "googleSheetsList"; - // DPI_GoogleSheetPanePresModel, having type GoogleSheetPanePresModel - ParameterId["GoogleSheetPanePresModel"] = "googleSheetPane"; - // DPI_TableauServerConnectionDescription, having type TableauServerConnectionDescriptionPresModel - ParameterId["TableauServerConnectionDescription"] = "tableauServerConnectionDescription"; - // DPI_InitialSQLPresModel, having type InitialSQLPresModel - ParameterId["InitialSQLPresModel"] = "initialSqlPresModel"; - // DPI_QueryBandingPresModel, having type QueryBandingPresModel - ParameterId["QueryBandingPresModel"] = "queryBandingPresModel"; - // DPI_SlowMetadata, having type SlowMetadataPresModel - ParameterId["SlowMetadata"] = "slowMetadata"; - // DPI_SlowMetadataSchemaSearchPresModel, having type SlowMetadataSearchPresModel - ParameterId["SlowMetadataSchemaSearchPresModel"] = "slowMetadataSchemaSearch"; - // DPI_SlowMetadataTableSearchPresModel, having type SlowMetadataSearchPresModel - ParameterId["SlowMetadataTableSearchPresModel"] = "slowMetadataTableSearch"; - // DPI_TableauServerProjectsPresModel, having type TableauServerProjectsPresModel - ParameterId["TableauServerProjectsPresModel"] = "tableauServerProjectsPresmodel"; - // DPI_TableauServerDataSourcePresModel, having type TableauServerDataSourcePresModel - ParameterId["TableauServerDataSourcePresModel"] = "tableauServerDataSourcePresmodel"; - // DPI_TableauServerDataSourcePresModels, having type TableauServerDataSourcePresModel[] - ParameterId["TableauServerDataSourcePresModels"] = "tableauServerDataSourcePresmodels"; - // DPI_TableauServerDataSourcesPresModel, having type TableauServerDataSourcesPresModel - ParameterId["TableauServerDataSourcesPresModel"] = "tableauServerDataSourcesPresmodel"; - // DPI_TableauServerDataPresModel, having type TableauServerDataPresModel - ParameterId["TableauServerDataPresModel"] = "tableauServerDataPresmodel"; - // DPI_StoredProcedureParameterPresModel, having type StoredProcedureParameterPresModel - ParameterId["StoredProcedureParameterPresModel"] = "storedProcedureParameter"; - // DPI_StoredProcedureParametersPresModel, having type StoredProcedureParameterPresModel[] - ParameterId["StoredProcedureParametersPresModel"] = "storedProcedureParameters"; - // DPI_CustomSQLInfo, having type CustomSQLInfoPresModel - ParameterId["CustomSQLInfo"] = "customSqlInfo"; - // DPI_ConnectionTableInfo, having type ConnectionTableInfoPresModel - ParameterId["ConnectionTableInfo"] = "connectionTableInfo"; - // DPI_TableInfos, having type ConnectionTableInfoPresModel[] - ParameterId["TableInfos"] = "tableInfos"; - // DPI_ConnectionDescription, having type ConnectionDescriptionPresModel - ParameterId["ConnectionDescription"] = "connectionDescription"; - // DPI_DataSourceParserValidationMode, having type DataSourceParserValidationMode - ParameterId["DataSourceParserValidationMode"] = "dataSourceParserValidationMode"; - // DPI_OAuthCredentialTypeInfo, having type OAuthCredentialTypeInfoPresModel - ParameterId["OAuthCredentialTypeInfo"] = "oauthCredentialTypeInfo"; - // DPI_OAuthCredentialTypeInfos, having type OAuthCredentialTypeInfoPresModel[] - ParameterId["OAuthCredentialTypeInfos"] = "oauthCredentialTypeInfos"; - // DPI_OAuthSettings, having type OAuthSettingsPresModel - ParameterId["OAuthSettings"] = "oauthSettings"; - // DPI_CredentialTypePropertiesFlag, having type CredentialTypePropertiesFlag - ParameterId["CredentialTypePropertiesFlag"] = "credentialTypePropertiesFlag"; - // DPI_CredentialTypePropertiesFlags, having type CredentialTypePropertiesFlag[] - ParameterId["CredentialTypePropertiesFlags"] = "credentialTypePropertiesFlags"; - // DPI_ConnectionTypeEnum, having type ConnectionTypeEnum - ParameterId["ConnectionTypeEnum"] = "connectionTypeEnum"; - // DPI_ConnectorType, having type ConnectorType - ParameterId["ConnectorType"] = "connectorType"; - // DPI_PdfPagePicker, having type PdfPagePickerPresModel - ParameterId["PdfPagePicker"] = "pdfPagePicker"; - // DPI_ActivateNew, having type bool - ParameterId["ActivateNew"] = "activateNew"; - // DPI_AddActions, having type bool - ParameterId["AddActions"] = "addActions"; - // DPI_AddAsFloating, having type bool - ParameterId["AddAsFloating"] = "addAsFloating"; - // DPI_AddColorDictionary, having type bool - ParameterId["AddColorDictionary"] = "addColorDictionary"; - // DPI_AddDroplines, having type bool - ParameterId["AddDroplines"] = "addDroplines"; - // DPI_AddHeaders, having type bool - ParameterId["AddHeaders"] = "addHeaders"; - // DPI_AddHighlighting, having type bool - ParameterId["AddHighlighting"] = "addHighlighting"; - // DPI_AddImageDictionary, having type bool - ParameterId["AddImageDictionary"] = "addImageDictionary"; - // DPI_AddMarkLabels, having type bool - ParameterId["AddMarkLabels"] = "addMarkLabels"; - // DPI_AddPages, having type bool - ParameterId["AddPages"] = "addPages"; - // DPI_AddSelection, having type bool - ParameterId["AddSelection"] = "addSelection"; - // DPI_AddToFolder, having type bool - ParameterId["AddToFolder"] = "addToFolder"; - // DPI_AddVizData, having type bool - ParameterId["AddVizData"] = "addVizData"; - // DPI_AlertConditionMet, having type bool - ParameterId["AlertConditionMet"] = "alertConditionMet"; - // DPI_AllFields, having type bool - ParameterId["AllFields"] = "allFields"; - // DPI_AllOnEmpty, having type bool - ParameterId["AllOnEmpty"] = "allOnEmpty"; - // DPI_AllPages, having type bool - ParameterId["AllPages"] = "includeAllPages"; - // DPI_AllowPreviewSizeChange, having type bool - ParameterId["AllowPreviewSizeChange"] = "allowPreviewSizeChange"; - // DPI_AllSelectedIsEffectivelyRangeTypeAll, having type bool - ParameterId["AllSelectedIsEffectivelyRangeTypeAll"] = "allSelectedIsEffectivelyRangeTypeAll"; - // DPI_AllStoryPoints, having type bool - ParameterId["AllStoryPoints"] = "allStorypoints"; - // DPI_AllowAllRange, having type bool - ParameterId["AllowAllRange"] = "allowAllRange"; - // DPI_AllowCreatingNewParameters, having type bool - ParameterId["AllowCreatingNewParameters"] = "allowCreatingNewParameters"; - // DPI_AllowDuplicateFieldDropOnFilterShelf, having type bool - ParameterId["AllowDuplicateFieldDropOnFilterShelf"] = "allowDuplicateFieldDropOnFilterShelf"; - // DPI_AllowFilterPreset, having type bool - ParameterId["AllowFilterPreset"] = "allowFilterPreset"; - // DPI_AllowHoverActions, having type bool - ParameterId["AllowHoverActions"] = "allowHoverActions"; - // DPI_AllowHyphenation, having type bool - ParameterId["AllowHyphenation"] = "allowHyphenation"; - // DPI_AllowJoinOnCalc, having type bool - ParameterId["AllowJoinOnCalc"] = "allowJoinOnCalc"; - // DPI_AllowManualRange, having type bool - ParameterId["AllowManualRange"] = "allowManualRange"; - // DPI_AllowMapping, having type bool - ParameterId["AllowMapping"] = "allowMapping"; - // DPI_AllowMultiSelect, having type bool - ParameterId["AllowMultiSelect"] = "allowMultiSelect"; - // DPI_AllowNull, having type bool - ParameterId["AllowNull"] = "allowNull"; - // DPI_AllowPanZoom, having type bool - ParameterId["AllowPanZoom"] = "allowPanZoom"; - // DPI_AllowPatternBased, having type bool - ParameterId["AllowPatternBased"] = "allowPatternBasedUnion"; - // DPI_AllowPromptText, having type bool - ParameterId["AllowPromptText"] = "allowPromptText"; - // DPI_AllowSaveDataSource, having type bool - ParameterId["AllowSaveDataSource"] = "allowSaveDataSource"; - // DPI_AllowWholeDate, having type bool - ParameterId["AllowWholeDate"] = "allowWholeDate"; - // DPI_AllowWork, having type bool - ParameterId["AllowWork"] = "allowWork"; - // DPI_AllowWrap, having type bool - ParameterId["AllowWrap"] = "allowWrap"; - // DPI_AppIs32Bit, having type bool - ParameterId["AppIs32Bit"] = "appIs32Bit"; - // DPI_AppIs64Bit, having type bool - ParameterId["AppIs64Bit"] = "appIs64Bit"; - // DPI_AppIsBeta, having type bool - ParameterId["AppIsBeta"] = "appIsBeta"; - // DPI_AppIsOEM, having type bool - ParameterId["AppIsOEM"] = "appIsOem"; - // DPI_AppendTde, having type bool - ParameterId["AppendTde"] = "appendTde"; - // DPI_ApplyColors, having type bool - ParameterId["ApplyColors"] = "applyColors"; - // DPI_ApplyNewSelection, having type bool - ParameterId["ApplyNewSelection"] = "applyNewSelection"; - // DPI_AreConfidenceBandsValid, having type bool - ParameterId["AreConfidenceBandsValid"] = "areConfidenceBandsValid"; - // DPI_AreDataSourceFiltersVisible, having type bool - ParameterId["AreDataSourceFiltersVisible"] = "areDataSourceFiltersVisible"; - // DPI_AreExtractFiltersEnabled, having type bool - ParameterId["AreExtractFiltersEnabled"] = "areExtractFiltersEnabled"; - // DPI_AreTotalsUsed, having type bool - ParameterId["AreTotalsUsed"] = "areTotalsUsed"; - // DPI_AtTheLevelFieldIsInvalid, having type bool - ParameterId["AtTheLevelFieldIsInvalid"] = "atTheLevelFieldIsInvalid"; - // DPI_AutoURL, having type bool - ParameterId["AutoURL"] = "autoUrl"; - // DPI_AutoUpdate, having type bool - ParameterId["AutoUpdate"] = "autoUpdate"; - // DPI_BackingSheetIsDashboard, having type bool - ParameterId["BackingSheetIsDashboard"] = "isBackingSheetDashboard"; - // DPI_BeginDataSourcePresModelUpdate, having type bool - ParameterId["BeginDataSourcePresModelUpdate"] = "beginDataSourcePresModelUpdate"; - // DPI_AggregateDrillUp, having type bool - ParameterId["AggregateDrillUp"] = "boolAggregateDrillUp"; - // DPI_BoxplotMarkExclusion, having type bool - ParameterId["BoxplotMarkExclusion"] = "boxplotMarkExclusion"; - // DPI_BreakPageOnPane, having type bool - ParameterId["BreakPageOnPane"] = "breakPageOnPane"; - // DPI_BrushLegends, having type bool - ParameterId["BrushLegends"] = "brushLegends"; - // DPI_CachePresModels, having type bool - ParameterId["CachePresModels"] = "cachePresModels"; - // DPI_CanAddConnections, having type bool - ParameterId["CanAddConnections"] = "canAddConnections"; - // DPI_SortPillCanBeDragged, having type bool - ParameterId["SortPillCanBeDragged"] = "sortPillCanBeDragged"; - // DPI_CanAddTable, having type bool - ParameterId["CanAddTable"] = "canAddTable"; - // DPI_CanAnalyzeData, having type bool - ParameterId["CanAnalyzeData"] = "canAnalyzeData"; - // DPI_CanChangeDataType, having type bool - ParameterId["CanChangeDataType"] = "canChangeDataType"; - // DPI_CanChangeSemanticRole, having type bool - ParameterId["CanChangeSemanticRole"] = "canChangeSemanticRole"; - // DPI_CanDerive, having type bool - ParameterId["CanDerive"] = "canDerive"; - // DPI_CanDrop, having type bool - ParameterId["CanDrop"] = "canDrop"; - // DPI_CanEdit, having type bool - ParameterId["CanEdit"] = "canEdit"; - // DPI_CanEditLegendColor, having type bool - ParameterId["CanEditLegendColor"] = "canEditLegendColor"; - // DPI_CanEnableCenter, having type bool - ParameterId["CanEnableCenter"] = "canEnableCenter"; - // DPI_CanShowAdvancedSettings, having type bool - ParameterId["CanShowAdvancedSettings"] = "canShowAdvancedSettings"; - // DPI_CanEnableFilterStateButton, having type bool - ParameterId["CanEnableFilterStateButton"] = "canEnableFilterStateButton"; - // DPI_CanFloat, having type bool - ParameterId["CanFloat"] = "canFloat"; - // DPI_CanHaveTitle, having type bool - ParameterId["CanHaveTitle"] = "canHaveTitle"; - // DPI_CanIgnoreUpdate, having type bool - ParameterId["CanIgnoreUpdate"] = "canIgnoreUpdate"; - // DPI_CanNavigateBack, having type bool - ParameterId["CanNavigateBack"] = "canNavigateBack"; - // DPI_CanNavigateForward, having type bool - ParameterId["CanNavigateForward"] = "canNavigateForward"; - // DPI_CanScrollX, having type bool - ParameterId["CanScrollX"] = "canScrollX"; - // DPI_CanScrollY, having type bool - ParameterId["CanScrollY"] = "canScrollY"; - // DPI_CanSetDomain, having type bool - ParameterId["CanSetDomain"] = "canSetDomain"; - // DPI_CanSetMapUnit, having type bool - ParameterId["CanSetMapUnit"] = "canSetMapUnit"; - // DPI_CanShowApplyButton, having type bool - ParameterId["CanShowApplyButton"] = "canShowApplyButton"; - // DPI_CanShowFilterStateButton, having type bool - ParameterId["CanShowFilterStateButton"] = "canShowFilterStateButton"; - // DPI_CanShowMoreFewerButton, having type bool - ParameterId["CanShowMoreFewerButton"] = "canShowMoreFewerButton"; - // DPI_CanShowSyncClientOptions, having type bool - ParameterId["CanShowSyncClientOptions"] = "canShowSyncClientOptions"; - // DPI_CanSort, having type bool - ParameterId["CanSort"] = "canSort"; - // DPI_CanSortOrdinally, having type bool - ParameterId["CanSortOrdinally"] = "canSortOrdinal"; - // DPI_CanToggleAutomaticDrill, having type bool - ParameterId["CanToggleAutomaticDrill"] = "canToggleAutomaticDrill"; - // DPI_CanToggleGeographicSearch, having type bool - ParameterId["CanToggleGeographicSearch"] = "canToggleGeographicSearch"; - // DPI_CanToggleMapScale, having type bool - ParameterId["CanToggleMapScale"] = "canToggleMapScale"; - // DPI_CanUseFullColorRange, having type bool - ParameterId["CanUseFullColorRange"] = "canUseFullColorRange"; - // DPI_CanAddToDrillPath, having type bool - ParameterId["CanAddToDrillPath"] = "canAddToDrillPath"; - // DPI_CenterHorizontally, having type bool - ParameterId["CenterHorizontally"] = "centerHorizontally"; - // DPI_CenterVertically, having type bool - ParameterId["CenterVertically"] = "centerVertically"; - // DPI_ChangeAllFields, having type bool - ParameterId["ChangeAllFields"] = "changeAllFields"; - // DPI_Changed, having type bool - ParameterId["Changed"] = "changed"; - // DPI_ClearBrushing, having type bool - ParameterId["ClearBrushing"] = "clearBrushing"; - // DPI_ClearSort, having type bool - ParameterId["ClearSort"] = "clearSort"; - // DPI_ClearView, having type bool - ParameterId["ClearView"] = "clearView"; - // DPI_Collapsed, having type bool - ParameterId["Collapsed"] = "collapsed"; - // DPI_ConsolidateInCommit, having type bool - ParameterId["ConsolidateInCommit"] = "consolidateInCommit"; - // DPI_ClusterEnableScaledCheckbox, having type bool - ParameterId["ClusterEnableScaledCheckbox"] = "clusterEnableScaledCheckbox"; - // DPI_CommitPillFinished, having type bool - ParameterId["CommitPillFinished"] = "commitPillFinished"; - // DPI_CompressArrays, having type bool - ParameterId["CompressArrays"] = "compressArrays"; - // DPI_ComputeCompoundedRate, having type bool - ParameterId["ComputeCompoundedRate"] = "computeCompoundedRate"; - // DPI_ConfidenceIntervalAllowed, having type bool - ParameterId["ConfidenceIntervalAllowed"] = "confidenceIntervalAllowed"; - // DPI_ConfigIsDesktopStandard, having type bool - ParameterId["ConfigIsDesktopStandard"] = "configIsDesktopStandard"; - // DPI_ConfigIsInteractor, having type bool - ParameterId["ConfigIsInteractor"] = "configIsInteractor"; - // DPI_ConfigIsPublic, having type bool - ParameterId["ConfigIsPublic"] = "configIsPublic"; - // DPI_ConfigIsReader, having type bool - ParameterId["ConfigIsReader"] = "configIsReader"; - // DPI_ContainsQuant, having type bool - ParameterId["ContainsQuant"] = "containsQuant"; - // DPI_ContainsValidDatasources, having type bool - ParameterId["ContainsValidDatasources"] = "containsValidDatasources"; - // DPI_ControllerMissing, having type bool - ParameterId["ControllerMissing"] = "controllerMissing"; - // DPI_CreateExtractForPublish, having type bool - ParameterId["CreateExtractForPublish"] = "createExtractForPublish"; - // DPI_CrossTab, having type bool - ParameterId["CrossTab"] = "crossTab"; - // DPI_CullLabels, having type bool - ParameterId["CullLabels"] = "cullLabels"; - // DPI_CurrentCustViewIdFlag, having type bool - ParameterId["CurrentCustViewIdFlag"] = "isCurrentCustViewIdValid"; - // DPI_DashboardEnableSnap, having type bool - ParameterId["DashboardEnableSnap"] = "dashboardEnableSnap"; - // DPI_DashboardShowGrid, having type bool - ParameterId["DashboardShowGrid"] = "dashboardShowGrid"; - // DPI_DataGridSortOrder, having type bool - ParameterId["DataGridSortOrder"] = "datagridSortOrder"; - // DPI_DeleteExtract, having type bool - ParameterId["DeleteExtract"] = "deleteExtract"; - // DPI_DeleteOnlySpecifiedSelection, having type bool - ParameterId["DeleteOnlySpecifiedSelection"] = "deleteOnlySpecifiedSelection"; - // DPI_DeleteOrphans, having type bool - ParameterId["DeleteOrphans"] = "deleteOrphans"; - // DPI_DisabledDataConnectionClassNames, having type bool - ParameterId["DisabledDataConnectionClassNames"] = "disabledDataConnectionClassNames"; - // DPI_DisablePresModelHandler, having type bool - ParameterId["DisablePresModelHandler"] = "disablePresModelHandler"; - // DPI_DisplayDate, having type bool - ParameterId["DisplayDate"] = "displayDate"; - // DPI_DisplayTime, having type bool - ParameterId["DisplayTime"] = "displayTime"; - // DPI_DoDropUIAction, having type bool - ParameterId["DoDropUIAction"] = "doDropUiAction"; - // DPI_DoMerge, having type bool - ParameterId["DoMerge"] = "doMerge"; - // DPI_DoPreDropUIAction, having type bool - ParameterId["DoPreDropUIAction"] = "doPreDropUiAction"; - // DPI_DoQuery, having type bool - ParameterId["DoQuery"] = "doQuery"; - // DPI_DragHorz, having type bool - ParameterId["DragHorz"] = "dragHorz"; - // DPI_DrillDown, having type bool - ParameterId["DrillDown"] = "drillDown"; - // DPI_DropToXAxis, having type bool - ParameterId["DropToXAxis"] = "dropToXAxis"; - // DPI_DropToYAxis, having type bool - ParameterId["DropToYAxis"] = "dropToYAxis"; - // DPI_DropUnnamedFields, having type bool - ParameterId["DropUnnamedFields"] = "dropUnnamedFields"; - // DPI_EditExisting, having type bool - ParameterId["EditExisting"] = "editExisting"; - // DPI_EditingConnection, having type bool - ParameterId["EditingConnection"] = "editingConnection"; - // DPI_EmbedCredentials, having type bool - ParameterId["EmbedCredentials"] = "embedCredentials"; - // DPI_EmbedOAuthCredential, having type bool - ParameterId["EmbedOAuthCredential"] = "embedOauthCredentials"; - // DPI_EmptyHighlightFogAll, having type bool - ParameterId["EmptyHighlightFogAll"] = "emptyHighlightFogAll"; - // DPI_EnableAlphabeticSort, having type bool - ParameterId["EnableAlphabeticSort"] = "enableAlphabeticSort"; - // DPI_EnableAutomaticDrill, having type bool - ParameterId["EnableAutomaticDrill"] = "enableAutomaticDrill"; - // DPI_EnableConfidenceBands, having type bool - ParameterId["EnableConfidenceBands"] = "enableConfidenceBands"; - // DPI_EnableDataOrderSort, having type bool - ParameterId["EnableDataOrderSort"] = "enableDataOrderSort"; - // DPI_EnableFieldSort, having type bool - ParameterId["EnableFieldSort"] = "enableFieldSort"; - // DPI_EnableInstantAnalytics, having type bool - ParameterId["EnableInstantAnalytics"] = "enableInstantAnalytics"; - // DPI_EnableLines, having type bool - ParameterId["EnableLines"] = "enableLines"; - // DPI_EnableManualSort, having type bool - ParameterId["EnableManualSort"] = "enableManualSort"; - // DPI_EnableMarks, having type bool - ParameterId["EnableMarks"] = "enableMarks"; - // DPI_EnableMultipleSelection, having type bool - ParameterId["EnableMultipleSelection"] = "enableMultipleSelection"; - // DPI_EnablePrefetching, having type bool - ParameterId["EnablePrefetching"] = "enablePrefetching"; - // DPI_EnableTableCalcDensification, having type bool - ParameterId["EnableTableCalcDensification"] = "enableTableCalcDensification"; - // DPI_EnableTooltips, having type bool - ParameterId["EnableTooltips"] = "enableTooltips"; - // DPI_EndDataSourcePresModelUpdate, having type bool - ParameterId["EndDataSourcePresModelUpdate"] = "endDataSourcePresModelUpdate"; - // DPI_EstimateNulls, having type bool - ParameterId["EstimateNulls"] = "estimateNulls"; - // DPI_Exclude, having type bool - ParameterId["Exclude"] = "exclude"; - // DPI_ExcludeColor, having type bool - ParameterId["ExcludeColor"] = "excludeColor"; - // DPI_ExcludeCubeDenorm, having type bool - ParameterId["ExcludeCubeDenorm"] = "excludeCubeDenorm"; - // DPI_ExcludeInterceptEnabled, having type bool - ParameterId["ExcludeInterceptEnabled"] = "excludeInterceptEnabled"; - // DPI_ExcludeLocalFunctions, having type bool - ParameterId["ExcludeLocalFunctions"] = "excludeLocalFunctions"; - // DPI_ExportDashboardImageFromSheet, having type bool - ParameterId["ExportDashboardImageFromSheet"] = "exportImageSheetAsDashboard"; - // DPI_ExtSvcConfigIsAuthEnabled, having type bool - ParameterId["ExtSvcConfigIsAuthEnabled"] = "extSvcConfigIsAuthEnabled"; - // DPI_ExtractFullRefresh, having type bool - ParameterId["ExtractFullRefresh"] = "extractFullRefresh"; - // DPI_ExtractNeedsRefresh, having type bool - ParameterId["ExtractNeedsRefresh"] = "extractNeedsRefresh"; - // DPI_ExtractPending, having type bool - ParameterId["ExtractPending"] = "extractPending"; - // DPI_ExtractSelected, having type bool - ParameterId["ExtractSelected"] = "extractSelected"; - // DPI_FederatableOnly, having type bool - ParameterId["FederatableOnly"] = "federatableOnly"; - // DPI_FieldSortOrder, having type bool - ParameterId["FieldSortOrder"] = "fieldSortOrder"; - // DPI_FieldSupportsContains, having type bool - ParameterId["FieldSupportsContains"] = "fieldSupportsContains"; - // DPI_FieldSupportsEndsWith, having type bool - ParameterId["FieldSupportsEndsWith"] = "fieldSupportsEndsWith"; - // DPI_FieldSupportsStartsWith, having type bool - ParameterId["FieldSupportsStartsWith"] = "fieldSupportsStartsWith"; - // DPI_FillAbove, having type bool - ParameterId["FillAbove"] = "fillAbove"; - // DPI_FillBelow, having type bool - ParameterId["FillBelow"] = "fillBelow"; - // DPI_FillWithZeroes, having type bool - ParameterId["FillWithZeroes"] = "fillZeroes"; - // DPI_FilterIsNamed, having type bool - ParameterId["FilterIsNamed"] = "filterIsNamed"; - // DPI_Focus, having type bool - ParameterId["Focus"] = "focus"; - // DPI_ForInternalUse, having type bool - ParameterId["ForInternalUse"] = "internalUse"; - // DPI_ForceBrowserRendering, having type bool - ParameterId["ForceBrowserRendering"] = "forceBrowserRendering"; - // DPI_ForceCache, having type bool - ParameterId["ForceCache"] = "forceCache"; - // DPI_ForceColorFromApp, having type bool - ParameterId["ForceColorFromApp"] = "forceColorFromApp"; - // DPI_ForceConnectionAttempt, having type bool - ParameterId["ForceConnectionAttempt"] = "forceConnectionAttempt"; - // DPI_ForceConsolidateInCommit, having type bool - ParameterId["ForceConsolidateInCommit"] = "forceConsolidateInCommit"; - // DPI_ForceExtractRefresh, having type bool - ParameterId["ForceExtractRefresh"] = "extractForceRefresh"; - // DPI_ForceInterceptZero, having type bool - ParameterId["ForceInterceptZero"] = "forceInterceptZero"; - // DPI_ForceOldConnectExperience, having type bool - ParameterId["ForceOldConnectExperience"] = "forceOldConnectExperience"; - // DPI_ForceToggleHighlightStateOn, having type bool - ParameterId["ForceToggleHighlightStateOn"] = "forceHighlightOn"; - // DPI_ForceWholeDate, having type bool - ParameterId["ForceWholeDate"] = "forceWholeDate"; - // DPI_ForecastSelected, having type bool - ParameterId["ForecastSelected"] = "forecastSelected"; - // DPI_ForecastUseAutoAgg, having type bool - ParameterId["ForecastUseAutoAgg"] = "forecastUseAutoSummarize"; - // DPI_ForJoin, having type bool - ParameterId["ForJoin"] = "forJoin"; - // DPI_FormatDataValueLocally, having type bool - ParameterId["FormatDataValueLocally"] = "formatDataValueLocally"; - // DPI_FormatIfColumn, having type bool - ParameterId["FormatIfColumn"] = "formatIfColumn"; - // DPI_FormatIfParameter, having type bool - ParameterId["FormatIfParameter"] = "formatIfParameter"; - // DPI_GeographicSearchIsDataLoaded, having type bool - ParameterId["GeographicSearchIsDataLoaded"] = "geographicSearchDataLoaded"; - // DPI_GeographicSearchLoadDataAsync, having type bool - ParameterId["GeographicSearchLoadDataAsync"] = "geographicSearchLoadDataAsync"; - // DPI_GroupByAll, having type bool - ParameterId["GroupByAll"] = "groupByAll"; - // DPI_HasAlias, having type bool - ParameterId["HasAlias"] = "hasAlias"; - // DPI_HasAllMember, having type bool - ParameterId["HasAllMember"] = "hasAllMember"; - // DPI_HasApply, having type bool - ParameterId["HasApply"] = "hasApply"; - // DPI_HasBackgroundImage, having type bool - ParameterId["HasBackgroundImage"] = "hasBackgroundImage"; - // DPI_HasBeenDismissed, having type bool - ParameterId["HasBeenDismissed"] = "hasBeenDismissed"; - // DPI_HasCaption, having type bool - ParameterId["HasCaption"] = "hasCaption"; - // DPI_HasCondition, having type bool - ParameterId["HasCondition"] = "hasCondition"; - // DPI_HasConnectPermissions, having type bool - ParameterId["HasConnectPermissions"] = "hasConnectPermissions"; - // DPI_HasDashboard, having type bool - ParameterId["HasDashboard"] = "hasDashboard"; - // DPI_HasDownloadPermissions, having type bool - ParameterId["HasDownloadPermissions"] = "hasDownloadPermissions"; - // DPI_HasDrill, having type bool - ParameterId["HasDrill"] = "hasDrill"; - // DPI_HasExclude, having type bool - ParameterId["HasExclude"] = "hasExclude"; - // DPI_HasFill, having type bool - ParameterId["HasFill"] = "hasFill"; - // DPI_HasLabels, having type bool - ParameterId["HasLabels"] = "hasLabels"; - // DPI_HasLimit, having type bool - ParameterId["HasLimit"] = "hasLimit"; - // DPI_HasLine, having type bool - ParameterId["HasLine"] = "hasLine"; - // DPI_HasModifiedAxes, having type bool - ParameterId["HasModifiedAxes"] = "hasModifiedAxes"; - // DPI_HasNonRootCalculations, having type bool - ParameterId["HasNonRootCalculations"] = "hasNonRootCalculations"; - // DPI_HasPattern, having type bool - ParameterId["HasPattern"] = "hasPattern"; - // DPI_HasPublishGuidanceResults, having type bool - ParameterId["HasPublishGuidanceResults"] = "hasPublishGuidanceResults"; - // DPI_HasSelection, having type bool - ParameterId["HasSelection"] = "hasSelection"; - // DPI_HasServerCredentials, having type bool - ParameterId["HasServerCredentials"] = "hasServerCredentials"; - // DPI_HasSpace, having type bool - ParameterId["HasSpace"] = "hasSpace"; - // DPI_HasStoredProcedure, having type bool - ParameterId["HasStoredProcedure"] = "hasStoredProcedure"; - // DPI_HasStringCalculatedMeasures, having type bool - ParameterId["HasStringCalculatedMeasures"] = "hasStringCalculatedMeasures"; - // DPI_HasTableCalcData, having type bool - ParameterId["HasTableCalcData"] = "hasTableCalcData"; - // DPI_HasTitle, having type bool - ParameterId["HasTitle"] = "hasTitle"; - // DPI_HasUserSpecificContent, having type bool - ParameterId["HasUserSpecificContent"] = "hasUserSpecificContent"; - // DPI_HasUnjoinedTable, having type bool - ParameterId["HasUnjoinedTable"] = "hasUnjoinedTable"; - // DPI_HasVarArgs, having type bool - ParameterId["HasVarArgs"] = "hasVarArgs"; - // DPI_HasVisitedWDCPage, having type bool - ParameterId["HasVisitedWDCPage"] = "hasVisitedWdcPage"; - // DPI_IgnoreAliases, having type bool - ParameterId["IgnoreAliases"] = "ignoreAliases"; - // DPI_IgnoreDomain, having type bool - ParameterId["IgnoreDomain"] = "ignoreDomain"; - // DPI_IgnoreSelection, having type bool - ParameterId["IgnoreSelection"] = "ignoreSelection"; - // DPI_IncludeAllColumns, having type bool - ParameterId["IncludeAllColumns"] = "includeAllColumns"; - // DPI_IncludeContext, having type bool - ParameterId["IncludeContext"] = "includeContext"; - // DPI_IncludeDashboardPresModels, having type bool - ParameterId["IncludeDashboardPresModels"] = "includeDashboardPresModels"; - // DPI_IncludeItemSet, having type bool - ParameterId["IncludeItemSet"] = "includeItemSet"; - // DPI_IncludeLocalFiles, having type bool - ParameterId["IncludeLocalFiles"] = "includeLocalFiles"; - // DPI_IncludeOtherSelected, having type bool - ParameterId["IncludeOtherSelected"] = "includeOtherSelected"; - // DPI_IncludeNulls, having type bool - ParameterId["IncludeNulls"] = "includeNulls"; - // DPI_IncludeParent, having type bool - ParameterId["IncludeParent"] = "includeParent"; - // DPI_IncludeSelections, having type bool - ParameterId["IncludeSelections"] = "includeSelections"; - // DPI_IncludeSiblings, having type bool - ParameterId["IncludeSiblings"] = "includeSiblings"; - // DPI_IncludeStories, having type bool - ParameterId["IncludeStories"] = "includeStories"; - // DPI_IncludeSubfolders, having type bool - ParameterId["IncludeSubfolders"] = "includeSubfolders"; - // DPI_IncludeVolatileProps, having type bool - ParameterId["IncludeVolatileProps"] = "includeVolatileProps"; - // DPI_IncludesTag, having type bool - ParameterId["IncludesTag"] = "includesTag"; - // DPI_InsertAfter, having type bool - ParameterId["InsertAfter"] = "insertAfter"; - // DPI_InsertAtEnd, having type bool - ParameterId["InsertAtEnd"] = "insertAtEnd"; - // DPI_InstantAnalyticsAllowed, having type bool - ParameterId["InstantAnalyticsAllowed"] = "instantAnalyticsAllowed"; - // DPI_IntegerCoordinates, having type bool - ParameterId["IntegerCoordinates"] = "intCoords"; - // DPI_InvalidatedLayout, having type bool - ParameterId["InvalidatedLayout"] = "invalidatedLayout"; - // DPI_IsActive, having type bool - ParameterId["IsActive"] = "isActive"; - // DPI_IsAddToFilter, having type bool - ParameterId["IsAddToFilter"] = "isAddToFilterButtonChecked"; - // DPI_IsAllButtonVisible, having type bool - ParameterId["IsAllButtonVisible"] = "isAllButtonVisible"; - // DPI_IsAllowedInCalcs, having type bool - ParameterId["IsAllowedInCalcs"] = "isAllowedInCalcs"; - // DPI_IsAppMapSource, having type bool - ParameterId["IsAppMapSource"] = "isAppMapSource"; - // DPI_IsArchive, having type bool - ParameterId["IsArchive"] = "isArchive"; - // DPI_IsAuthoringMode, having type bool - ParameterId["IsAuthoringMode"] = "isAuthoringMode"; - // DPI_IsAuto, having type bool - ParameterId["IsAuto"] = "isAuto"; - // DPI_IsAutoClear, having type bool - ParameterId["IsAutoClear"] = "isAutoClear"; - // DPI_IsAutoColumn, having type bool - ParameterId["IsAutoColumn"] = "isAutoColumn"; - // DPI_IsAutoHidden, having type bool - ParameterId["IsAutoHidden"] = "isAutoHidden"; - // DPI_IsAutoSelect, having type bool - ParameterId["IsAutoSelect"] = "isAutoSelect"; - // DPI_IsBold, having type bool - ParameterId["IsBold"] = "isBold"; - // DPI_IsBorderVisible, having type bool - ParameterId["IsBorderVisible"] = "isBorderVisible"; - // DPI_IsBoxplot, having type bool - ParameterId["IsBoxplot"] = "isBoxplot"; - // DPI_IsCapable, having type bool - ParameterId["IsCapable"] = "isCapable"; - // DPI_IsCaptured, having type bool - ParameterId["IsCaptured"] = "isCaptured"; - // DPI_IsCentered, having type bool - ParameterId["IsCentered"] = "isCentered"; - // DPI_IsChecked, having type bool - ParameterId["IsChecked"] = "isChecked"; - // DPI_IsColorDiverging, having type bool - ParameterId["IsColorDiverging"] = "isColorDiverging"; - // DPI_IsColorStepped, having type bool - ParameterId["IsColorStepped"] = "isColorStepped"; - // DPI_IsCombinedField, having type bool - ParameterId["IsCombinedField"] = "isCombinedField"; - // DPI_IsConnected, having type bool - ParameterId["IsConnected"] = "isConnected"; - // DPI_IsContextMenuAllowed, having type bool - ParameterId["IsContextMenuAllowed"] = "isContextMenuAllowed"; - // DPI_IsContinuous, having type bool - ParameterId["IsContinuous"] = "isContinuous"; - // DPI_IsCopy, having type bool - ParameterId["IsCopy"] = "isCopy"; - // DPI_IsCustomPalette, having type bool - ParameterId["IsCustomPalette"] = "isCustomPalette"; - // DPI_IsCustomSQL, having type bool - ParameterId["IsCustomSQL"] = "isCustomSql"; - // DPI_IsCustomValueEnabled, having type bool - ParameterId["IsCustomValueEnabled"] = "isCustomValueEnabled"; - // DPI_IsDataAlertConditionMet, having type bool - ParameterId["IsDataAlertConditionMet"] = "isDataAlertConditionMet"; - // DPI_IsDataAlertDialogVisible, having type bool - ParameterId["IsDataAlertDialogVisible"] = "isDataAlertDialogVisible"; - // DPI_IsDataBin, having type bool - ParameterId["IsDataBin"] = "isDataBin"; - // DPI_IsDataGridVisible, having type bool - ParameterId["IsDataGridVisible"] = "isDataGridVisible"; - // DPI_IsDatabase, having type bool - ParameterId["IsDatabase"] = "isDatabase"; - // DPI_IsDatabaseFilterInclusive, having type bool - ParameterId["IsDatabaseFilterInclusive"] = "isDbFilterInclusive"; - // DPI_IsWebDataTabViewSupported, having type bool - ParameterId["IsWebDataTabViewSupported"] = "isWebDataTabViewSupported"; - // DPI_IsPublishedDatasourceReplacement, having type bool - ParameterId["IsPublishedDatasourceReplacement"] = "isPublishedDatasourceReplacement"; - // DPI_IsDeadDrop, having type bool - ParameterId["IsDeadDrop"] = "isDeadDrop"; - // DPI_IsDefault, having type bool - ParameterId["IsDefault"] = "isDefault"; - // DPI_IsDeleteCalcConfirm, having type bool - ParameterId["IsDeleteCalcConfirm"] = "isDeleteCalcConfirmed"; - // DPI_IsDimension, having type bool - ParameterId["IsDimension"] = "isDimension"; - // DPI_IsDivider, having type bool - ParameterId["IsDivider"] = "isDivider"; - // DPI_IsDropdownEnabled, having type bool - ParameterId["IsDropdownEnabled"] = "isDropdownEnabled"; - // DPI_IsEditing, having type bool - ParameterId["IsEditing"] = "isEditing"; - // DPI_IsEmbedded, having type bool - ParameterId["IsEmbedded"] = "isEmbedded"; - // DPI_IsEmpty, having type bool - ParameterId["IsEmpty"] = "isEmpty"; - // DPI_IsAddInEnabled, having type bool - ParameterId["IsAddInEnabled"] = "isAddInEnabled"; - // DPI_IsInDrillPath, having type bool - ParameterId["IsInDrillPath"] = "isInDrillPath"; - // DPI_AddInJSDebuggingEnabled, having type bool - ParameterId["AddInJSDebuggingEnabled"] = "addInJsDebugginEnabled"; - // DPI_AddInPauseBeforeLoading, having type bool - ParameterId["AddInPauseBeforeLoading"] = "addInPauseBeforeLoading"; - // DPI_IsDSHierarchical, having type bool - ParameterId["IsDSHierarchical"] = "isDsHierarchical"; - // DPI_IsEndPtMoveable, having type bool - ParameterId["IsEndPtMoveable"] = "isEndpointMovable"; - // DPI_IsExclude, having type bool - ParameterId["IsExclude"] = "isExcludeButtonChecked"; - // DPI_IsExistingConnection, having type bool - ParameterId["IsExistingConnection"] = "isExistingConnection"; - // DPI_IsExistingObject, having type bool - ParameterId["IsExistingObject"] = "isExistingObject"; - // DPI_IsExtract, having type bool - ParameterId["IsExtract"] = "isExtract"; - // DPI_IsExtractOnlyConnection, having type bool - ParameterId["IsExtractOnlyConnection"] = "isExtractOnlyConnection"; - // DPI_IsExtractSelectionVisible, having type bool - ParameterId["IsExtractSelectionVisible"] = "isExtractSelectionVisible"; - // DPI_IsFederatable, having type bool - ParameterId["IsFederatable"] = "isFederatable"; - // DPI_IsField, having type bool - ParameterId["IsField"] = "isField"; - // DPI_IsFieldParameter, having type bool - ParameterId["IsFieldParameter"] = "isFieldParameter"; - // DPI_IsFilterActionField, having type bool - ParameterId["IsFilterActionField"] = "isFilterActionField"; - // DPI_IsFirstClassConnector, having type bool - ParameterId["IsFirstClassConnector"] = "isFirstClassConnector"; - // DPI_IsFloating, having type bool - ParameterId["IsFloating"] = "isFloating"; - // DPI_IsFolded, having type bool - ParameterId["IsFolded"] = "isFolded"; - // DPI_IsForInput, having type bool - ParameterId["IsForInput"] = "isForInput"; - // DPI_IsForecastEnabled, having type bool - ParameterId["IsForecastEnabled"] = "isForecastEnabled"; - // DPI_IsForceDirty, having type bool - ParameterId["IsForceDirty"] = "isForceDirty"; - // DPI_IsFullScan, having type bool - ParameterId["IsFullScan"] = "isFullScan"; - // DPI_IsFullStyling, having type bool - ParameterId["IsFullStyling"] = "isFullStyling"; - // DPI_IsGenerated, having type bool - ParameterId["IsGenerated"] = "isGenerated"; - // DPI_IsGlobalNames, having type bool - ParameterId["IsGlobalNames"] = "isGlobalNames"; - // DPI_IsGrayed, having type bool - ParameterId["IsGrayed"] = "isGrayed"; - // DPI_IsGrayscale, having type bool - ParameterId["IsGrayscale"] = "isGrayscale"; - // DPI_IsGroup, having type bool - ParameterId["IsGroup"] = "isGroup"; - // DPI_IsHideableField, having type bool - ParameterId["IsHideableField"] = "isHideableField"; - // DPI_IsHierarchy, having type bool - ParameterId["IsHierarchy"] = "isHierarchy"; - // DPI_IsHierarchySingleSelect, having type bool - ParameterId["IsHierarchySingleSelect"] = "isHierarchySingleSelect"; - // DPI_IsHighlightAllowed, having type bool - ParameterId["IsHighlightAllowed"] = "isHighlightAllowed"; - // DPI_IsHighlightEnabled, having type bool - ParameterId["IsHighlightEnabled"] = "isHighlightEnabled"; - // DPI_IsHighlightField, having type bool - ParameterId["IsHighlightField"] = "isHighlightField"; - // DPI_IsHorizontal, having type bool - ParameterId["IsHorizontal"] = "isHorizontal"; - // DPI_IsImageEnabled, having type bool - ParameterId["IsImageEnabled"] = "isImageEnabled"; - // DPI_IsInDefault, having type bool - ParameterId["IsInDefault"] = "isInDefault"; - // DPI_IsInPrimaryDataSource, having type bool - ParameterId["IsInPrimaryDataSource"] = "isInPrimaryDataSource"; - // DPI_IsInner, having type bool - ParameterId["IsInner"] = "isInner"; - // DPI_IsInitial, having type bool - ParameterId["IsInitial"] = "isInitial"; - // DPI_IsInstance, having type bool - ParameterId["IsInstance"] = "isInstance"; - // DPI_IsInvalid, having type bool - ParameterId["IsInvalid"] = "isInvalid"; - // DPI_IsInvalidCalcOnDG, having type bool - ParameterId["IsInvalidCalcOnDG"] = "isInvalidDgCalc"; - // DPI_IsItalics, having type bool - ParameterId["IsItalics"] = "isItalics"; - // DPI_IsJoinAreaVisible, having type bool - ParameterId["IsJoinAreaVisible"] = "isJoinAreaVisible"; - // DPI_IsLabels, having type bool - ParameterId["IsLabels"] = "isLabels"; - // DPI_IsLayered, having type bool - ParameterId["IsLayered"] = "isLayered"; - // DPI_IsLeft, having type bool - ParameterId["IsLeft"] = "isLeft"; - // DPI_IsLegacy, having type bool - ParameterId["IsLegacy"] = "isLegacy"; - // DPI_IsLevel, having type bool - ParameterId["IsLevel"] = "isLevel"; - // DPI_IsLevelOrLevelIdentity, having type bool - ParameterId["IsLevelOrLevelIdentity"] = "isLevelOrLevelIdentity"; - // DPI_IsLicensed, having type bool - ParameterId["IsLicensed"] = "isLicensed"; - // DPI_IsLink, having type bool - ParameterId["IsLink"] = "isLink"; - // DPI_IsMap, having type bool - ParameterId["IsMap"] = "isMap"; - // DPI_IsMeasure, having type bool - ParameterId["IsMeasure"] = "isMeasure"; - // DPI_IsMerge, having type bool - ParameterId["IsMerge"] = "isMerge"; - // DPI_IsMessageSourceRemote, having type bool - ParameterId["IsMessageSourceRemote"] = "isMessageSourceRemote"; - // DPI_IsMissingFromExtract, having type bool - ParameterId["IsMissingFromExtract"] = "isMissingFromExtract"; - // DPI_IsMobile, having type bool - ParameterId["IsMobile"] = "isMobile"; - // DPI_IsModified, having type bool - ParameterId["IsModified"] = "isModified"; - // DPI_IsNew, having type bool - ParameterId["IsNew"] = "isNew"; - // DPI_IsNewCloudFileDataSource, having type bool - ParameterId["IsNewCloudFileDataSource"] = "isNewCloudFileDataSource"; - // DPI_IsNewZone, having type bool - ParameterId["IsNewZone"] = "isNewZone"; - // DPI_IsNone, having type bool - ParameterId["IsNone"] = "isNone"; - // DPI_IsOfflineMode, having type bool - ParameterId["IsOfflineMode"] = "isOfflineMode"; - // DPI_IsPreAqlBin, having type bool - ParameterId["IsPreAqlBin"] = "isPreAqlBin"; - // DPI_IsOMeasuresAndRelational, having type bool - ParameterId["IsOMeasuresAndRelational"] = "isOmeasuresAndRelational"; - // DPI_IsOpaque, having type bool - ParameterId["IsOpaque"] = "isOpaque"; - // DPI_IsOrphaned, having type bool - ParameterId["IsOrphaned"] = "isOrphaned"; - // DPI_IsOverlay, having type bool - ParameterId["IsOverlay"] = "isOverlay"; - // DPI_IsOverride, having type bool - ParameterId["IsOverride"] = "isOverride"; - // DPI_IsPageLoading, having type bool - ParameterId["IsPageLoading"] = "isPageLoading"; - // DPI_IsParameterSelected, having type bool - ParameterId["IsParameterSelected"] = "isParameterSelected"; - // DPI_IsParameterSelectedOnFrom, having type bool - ParameterId["IsParameterSelectedOnFrom"] = "isParameterSelectedOnFrom"; - // DPI_IsParameterSelectedOnTo, having type bool - ParameterId["IsParameterSelectedOnTo"] = "isParameterSelectedOnTo"; - // DPI_IsPatternBased, having type bool - ParameterId["IsPatternBased"] = "isPatternBased"; - // DPI_IsPinned, having type bool - ParameterId["IsPinned"] = "isPinned"; - // DPI_IsPresentationMode, having type bool - ParameterId["IsPresentationMode"] = "isPresentationModeDoc"; - // DPI_IsPublishAllowed, having type bool - ParameterId["IsPublishAllowed"] = "isPublishAllowed"; - // DPI_IsMustDowngradeToPublish, having type bool - ParameterId["IsMustDowngradeToPublish"] = "isDowngradeToPublishRequired"; - // DPI_IsPublished, having type bool - ParameterId["IsPublished"] = "isPublished"; - // DPI_IsQuickTableCalc, having type bool - ParameterId["IsQuickTableCalc"] = "isQuickTableCalc"; - // DPI_IsRadioOn, having type bool - ParameterId["IsRadioOn"] = "isRadioOn"; - // DPI_IsReconnect, having type bool - ParameterId["IsReconnect"] = "isReconnect"; - // DPI_IsRecursive, having type bool - ParameterId["IsRecursive"] = "isRecursive"; - // DPI_IsReferenced, having type bool - ParameterId["IsReferenced"] = "isReferenced"; - // DPI_IsRemovalAllowed, having type bool - ParameterId["IsRemovalAllowed"] = "isRowRemovalAllowed"; - // DPI_IsRenderCapable, having type bool - ParameterId["IsRenderCapable"] = "isRenderCapable"; - // DPI_IsRequired, having type bool - ParameterId["IsRequired"] = "isRequired"; - // DPI_IsReversed, having type bool - ParameterId["IsReversed"] = "isReversed"; - // DPI_IsRightDrag, having type bool - ParameterId["IsRightDrag"] = "isRightDrag"; - // DPI_IsRowLabels, having type bool - ParameterId["IsRowLabels"] = "isRowLabels"; - // DPI_IsPercentage, having type bool - ParameterId["IsPercentage"] = "isPercentage"; - // DPI_IsSalesforceInConnection, having type bool - ParameterId["IsSalesforceInConnection"] = "isSalesforceInConnection"; - // DPI_IsScaled, having type bool - ParameterId["IsScaled"] = "isScaled"; - // DPI_IsSelected, having type bool - ParameterId["IsSelected"] = "isSelected"; - // DPI_IsSelectedItem, having type bool - ParameterId["IsSelectedItem"] = "isSelectedItem"; - // DPI_IsSelectionDisabled, having type bool - ParameterId["IsSelectionDisabled"] = "isSelectionDisabled"; - // DPI_IsShiftDrag, having type bool - ParameterId["IsShiftDrag"] = "isShiftDrag"; - // DPI_IsSingleLabel, having type bool - ParameterId["IsSingleLabel"] = "isSingleLabel"; - // DPI_IsSingleSelect, having type bool - ParameterId["IsSingleSelect"] = "isSingleSelect"; - // DPI_IsSingleSelectMode, having type bool - ParameterId["IsSingleSelectMode"] = "isSingleSelectMode"; - // DPI_IsSingleSelection, having type bool - ParameterId["IsSingleSelection"] = "isSingleSelection"; - // DPI_IsSorted, having type bool - ParameterId["IsSorted"] = "isSorted"; - // DPI_IsSortPill, having type bool - ParameterId["IsSortPill"] = "isSortPill"; - // DPI_IsSpecial, having type bool - ParameterId["IsSpecial"] = "isSpecial"; - // DPI_IsSplashScreen, having type bool - ParameterId["IsSplashScreen"] = "isSplashScreen"; - // DPI_IsStoryEmpty, having type bool - ParameterId["IsStoryEmpty"] = "isStoryEmpty"; - // DPI_IsStrikeThrough, having type bool - ParameterId["IsStrikeThrough"] = "isStrikeThrough"; - // DPI_IsTableCalc, having type bool - ParameterId["IsTableCalc"] = "isTableCalc"; - // DPI_IsTableCleaningSubtable, having type bool - ParameterId["IsTableCleaningSubtable"] = "isTableCleaningSubtable"; - // DPI_IsTableFilterInclusive, having type bool - ParameterId["IsTableFilterInclusive"] = "isTableFilterInclusive"; - // DPI_IsTableRanked, having type bool - ParameterId["IsTableRanked"] = "isTableRanked"; - // DPI_IsTemporary, having type bool - ParameterId["IsTemporary"] = "isTemporary"; - // DPI_IsTitleVisible, having type bool - ParameterId["IsTitleVisible"] = "isTitleVisible"; - // DPI_IsTopLevel, having type bool - ParameterId["IsTopLevel"] = "isTopLevel"; - // DPI_IsTwoValued, having type bool - ParameterId["IsTwoValued"] = "isTwoValued"; - // DPI_IsTypeInFinished, having type bool - ParameterId["IsTypeInFinished"] = "isTypeinFinished"; - // DPI_IsTypeInPill, having type bool - ParameterId["IsTypeInPill"] = "isTypeInPill"; - // DPI_IsURLActionField, having type bool - ParameterId["IsURLActionField"] = "isUrlActionField"; - // DPI_IsUnderlined, having type bool - ParameterId["IsUnderlined"] = "isUnderlined"; - // DPI_IsUnion, having type bool - ParameterId["IsUnion"] = "isUnion"; - // DPI_IsUnionReplacement, having type bool - ParameterId["IsUnionReplacement"] = "isUnionReplacement"; - // DPI_IsUnnamedCalc, having type bool - ParameterId["IsUnnamedCalc"] = "isUnnamed"; - // DPI_IsUserDefinedAttribute, having type bool - ParameterId["IsUserDefinedAttribute"] = "isUserDefinedAttribute"; - // DPI_IsUserEditable, having type bool - ParameterId["IsUserEditable"] = "isUserEditable"; - // DPI_IsUserPrompted, having type bool - ParameterId["IsUserPrompted"] = "isUserPrompted"; - // DPI_IsUserResponded, having type bool - ParameterId["IsUserResponded"] = "isUserResponded"; - // DPI_IsValid, having type bool - ParameterId["IsValid"] = "isValid"; - // DPI_IsValidWDCPage, having type bool - ParameterId["IsValidWDCPage"] = "isValidWdcPage"; - // DPI_IsVaryingAttributeDimension, having type bool - ParameterId["IsVaryingAttributeDimension"] = "isVaryingAttributeDimension"; - // DPI_IsVertical, having type bool - ParameterId["IsVertical"] = "isVertical"; - // DPI_IsViewModified, having type bool - ParameterId["IsViewModified"] = "isViewModified"; - // DPI_IsVisuallyCategorical, having type bool - ParameterId["IsVisuallyCategorical"] = "isVisuallyCat"; - // DPI_IsVizInTooltip, having type bool - ParameterId["IsVizInTooltip"] = "isVizInTooltip"; - // DPI_IsWeb, having type bool - ParameterId["IsWeb"] = "isWeb"; - // DPI_IsWhite, having type bool - ParameterId["IsWhite"] = "isWhite"; - // DPI_IsWorldNew, having type bool - ParameterId["IsWorldNew"] = "isWorldNew"; - // DPI_IsXAxis, having type bool - ParameterId["IsXAxis"] = "isXAxis"; - // DPI_KeepAspectRatio, having type bool - ParameterId["KeepAspectRatio"] = "keepAspectRatio"; - // DPI_LabelLineEndFirst, having type bool - ParameterId["LabelLineEndFirst"] = "labelLineEndFirst"; - // DPI_LabelLineEndLast, having type bool - ParameterId["LabelLineEndLast"] = "labelLineEndLast"; - // DPI_LabelMarkMax, having type bool - ParameterId["LabelMarkMax"] = "labelMarkMax"; - // DPI_LabelMarkMin, having type bool - ParameterId["LabelMarkMin"] = "labelMarkMin"; - // DPI_LockAspectRatio, having type bool - ParameterId["LockAspectRatio"] = "lockAspectRatio"; - // DPI_LoopPlayback, having type bool - ParameterId["LoopPlayback"] = "loopPlayback"; - // DPI_LossyImages, having type bool - ParameterId["LossyImages"] = "lossyImages"; - // DPI_MakeGlobal, having type bool - ParameterId["MakeGlobal"] = "isMakeGlobal"; - // DPI_ManualSortOnly, having type bool - ParameterId["ManualSortOnly"] = "manualSortOnly"; - // DPI_MapBoxDefaultStyleSelected, having type bool - ParameterId["MapBoxDefaultStyleSelected"] = "mapboxDefaultStyleSelected"; - // DPI_MapBoxURLParseSuccessful, having type bool - ParameterId["MapBoxURLParseSuccessful"] = "mapboxUrlParseSuccessful"; - // DPI_MapClientRequestsMapTiles, having type bool - ParameterId["MapClientRequestsMapTiles"] = "clientRequestsMapTiles"; - // DPI_MapHasValidLayer, having type bool - ParameterId["MapHasValidLayer"] = "mapHasValidLayer"; - // DPI_MapShowAttribution, having type bool - ParameterId["MapShowAttribution"] = "showAttribution"; - // DPI_MarkLabelsVisibilityChanged, having type bool - ParameterId["MarkLabelsVisibilityChanged"] = "markLabelsVisibilityChanged"; - // DPI_MembersLoaded, having type bool - ParameterId["MembersLoaded"] = "membersLoaded"; - // DPI_MinimizeNames, having type bool - ParameterId["MinimizeNames"] = "useMinNames"; - // DPI_MoveRefereceLineUp, having type bool - ParameterId["MoveRefereceLineUp"] = "moveReferenceLineUp"; - // DPI_MultiDataSources, having type bool - ParameterId["MultiDataSources"] = "multiDataSources"; - // DPI_NavArrowsVisible, having type bool - ParameterId["NavArrowsVisible"] = "navArrowsVisible"; - // DPI_OEMHasSplashScreen, having type bool - ParameterId["OEMHasSplashScreen"] = "oemHasSplashScreen"; - // DPI_OneWayBrushing, having type bool - ParameterId["OneWayBrushing"] = "oneWayBrushing"; - // DPI_OnlyAggregations, having type bool - ParameterId["OnlyAggregations"] = "onlyAggregations"; - // DPI_OverrideAllowed, having type bool - ParameterId["OverrideAllowed"] = "overrideAllowed"; - // DPI_OverrideStackDumper, having type bool - ParameterId["OverrideStackDumper"] = "overrideStackDumper"; - // DPI_PageAutoColorLines, having type bool - ParameterId["PageAutoColorLines"] = "autoColorLines"; - // DPI_PageAutoColorMarks, having type bool - ParameterId["PageAutoColorMarks"] = "autoColorMarks"; - // DPI_PageHistoryFade, having type bool - ParameterId["PageHistoryFade"] = "historyFade"; - // DPI_PercentageBands, having type bool - ParameterId["PercentageBands"] = "percentageBands"; - // DPI_PercentilesAllowed, having type bool - ParameterId["PercentilesAllowed"] = "percentilesAllowed"; - // DPI_PublishWithRemoteQueryAgent, having type bool - ParameterId["PublishWithRemoteQueryAgent"] = "publishWithRemoteQueryAgent"; - // DPI_PreviousSheet, having type bool - ParameterId["PreviousSheet"] = "previousSheet"; - // DPI_PromptDeleteSheetsWithVizInTooltip, having type bool - ParameterId["PromptDeleteSheetsWithVizInTooltip"] = "promptDeleteSheetsWithVizInTooltip"; - // DPI_QuantilesAllowed, having type bool - ParameterId["QuantilesAllowed"] = "quantilesAllowed"; - // DPI_RadialDistanceHitTest, having type bool - ParameterId["RadialDistanceHitTest"] = "radialDistanceHitTest"; - // DPI_RefLineSelected, having type bool - ParameterId["RefLineSelected"] = "refLineSelected"; - // DPI_RemovedSheets, having type bool - ParameterId["RemovedSheets"] = "removedSheets"; - // DPI_RenderImagesAsUrls, having type bool - ParameterId["RenderImagesAsUrls"] = "imagesAsUrls"; - // DPI_RenderOnTop, having type bool - ParameterId["RenderOnTop"] = "renderOnTop"; - // DPI_RepeatHeadersLegends, having type bool - ParameterId["RepeatHeadersLegends"] = "repeatHeadersLegends"; - // DPI_ReplaceActiveConfig, having type bool - ParameterId["ReplaceActiveConfig"] = "replaceActiveConfig"; - // DPI_ReplaceDatasourceAfterPublish, having type bool - ParameterId["ReplaceDatasourceAfterPublish"] = "replaceDatasourceAfterPublish"; - // DPI_ReplaceDatasourceFailed, having type bool - ParameterId["ReplaceDatasourceFailed"] = "replaceDatasourceFailed"; - // DPI_ReplaceTde, having type bool - ParameterId["ReplaceTde"] = "replaceTde"; - // DPI_RequireSelection, having type bool - ParameterId["RequireSelection"] = "requireSelection"; - // DPI_RequiresDBVariables, having type bool - ParameterId["RequiresDBVariables"] = "requiresDbVariables"; - // DPI_RequiresFieldList, having type bool - ParameterId["RequiresFieldList"] = "requiresFieldList"; - // DPI_RestartEveryFieldIsInvalid, having type bool - ParameterId["RestartEveryFieldIsInvalid"] = "restartEveryFieldIsInvalid"; - // DPI_RightJustify, having type bool - ParameterId["RightJustify"] = "rightJustify"; - // DPI_SaveEnabled, having type bool - ParameterId["SaveEnabled"] = "saveEnabled"; - // DPI_SavePasswordAllowed, having type bool - ParameterId["SavePasswordAllowed"] = "savePasswordAllowed"; - // DPI_ScopeIsolation, having type bool - ParameterId["ScopeIsolation"] = "scopeIsolation"; - // DPI_SelectionRequired, having type bool - ParameterId["SelectionRequired"] = "selectionRequired"; - // DPI_SendNotifications, having type bool - ParameterId["SendNotifications"] = "sendNotifications"; - // DPI_SetActive, having type bool - ParameterId["SetActive"] = "setActive"; - // DPI_SetDefaultSort, having type bool - ParameterId["SetDefaultSort"] = "setDefault"; - // DPI_SheetIsDashboard, having type bool - ParameterId["SheetIsDashboard"] = "isDashboard"; - // DPI_SheetIsStoryboard, having type bool - ParameterId["SheetIsStoryboard"] = "isStory"; - // DPI_ShouldAlwaysDisplayAlias, having type bool - ParameterId["ShouldAlwaysDisplayAlias"] = "shouldAlwaysDisplayAlias"; - // DPI_ShouldAutoCapture, having type bool - ParameterId["ShouldAutoCapture"] = "shouldAutoCapture"; - // DPI_ShouldAutoRevert, having type bool - ParameterId["ShouldAutoRevert"] = "shouldAutoRevert"; - // DPI_ShouldChangeUIMode, having type bool - ParameterId["ShouldChangeUIMode"] = "shouldChangeUiMode"; - // DPI_ShouldDisplay, having type bool - ParameterId["ShouldDisplay"] = "shouldDisplay"; - // DPI_ShouldDrill, having type bool - ParameterId["ShouldDrill"] = "shouldDrill"; - // DPI_ShouldForceConnectionAttempt, having type bool - ParameterId["ShouldForceConnectionAttempt"] = "shouldForceConnectionAttempt"; - // DPI_ShouldRefreshDS, having type bool - ParameterId["ShouldRefreshDS"] = "shouldRefreshDs"; - // DPI_ShouldScaleMarksInAxisUnits, having type bool - ParameterId["ShouldScaleMarksInAxisUnits"] = "shouldScaleMarksInAxisUnits"; - // DPI_ShouldSeedCredentials, having type bool - ParameterId["ShouldSeedCredentials"] = "shouldSeedCredentials"; - // DPI_ShouldShowDataSourceConnectionError, having type bool - ParameterId["ShouldShowDataSourceConnectionError"] = "shouldShowDataSourceConnectionError"; - // DPI_ShouldShowDistance, having type bool - ParameterId["ShouldShowDistance"] = "shouldShowDistance"; - // DPI_ShouldShowHiddenField, having type bool - ParameterId["ShouldShowHiddenField"] = "shouldShowHiddenField"; - // DPI_ShouldShowMapScale, having type bool - ParameterId["ShouldShowMapScale"] = "shouldShowMapScale"; - // DPI_ShouldURLEscape, having type bool - ParameterId["ShouldURLEscape"] = "shouldUrlEscape"; - // DPI_ShouldUpdateDomainInfo, having type bool - ParameterId["ShouldUpdateDomainInfo"] = "shouldUpdateDomInfo"; - // DPI_ShowAddToFilter, having type bool - ParameterId["ShowAddToFilter"] = "showAddToFilterButton"; - // DPI_ShowAliases, having type bool - ParameterId["ShowAliases"] = "showAliases"; - // DPI_ShowAllPages, having type bool - ParameterId["ShowAllPages"] = "showAllPages"; - // DPI_ShowApply, having type bool - ParameterId["ShowApply"] = "showApplyButton"; - // DPI_ShowApplyAndCancelButtons, having type bool - ParameterId["ShowApplyAndCancelButtons"] = "showApplyAndCancelButtons"; - // DPI_ShowAuthenticationOptions, having type bool - ParameterId["ShowAuthenticationOptions"] = "showAuthenticationOptions"; - // DPI_ShowAuthenticationSetting, having type bool - ParameterId["ShowAuthenticationSetting"] = "showAuthenticationSetting"; - // DPI_ShowAuto, having type bool - ParameterId["ShowAuto"] = "showAuto"; - // DPI_ShowBold, having type bool - ParameterId["ShowBold"] = "showBoldOption"; - // DPI_ShowButtons, having type bool - ParameterId["ShowButtons"] = "showButtons"; - // DPI_ShowCaption, having type bool - ParameterId["ShowCaption"] = "showCaption"; - // DPI_ShowColorLegend, having type bool - ParameterId["ShowColorLegend"] = "showColorLegend"; - // DPI_ShowDataGridInlineRename, having type bool - ParameterId["ShowDataGridInlineRename"] = "showDataGridInlineRename"; - // DPI_ShowDetailMessages, having type bool - ParameterId["ShowDetailMessages"] = "showDetailMessages"; - // DPI_ShowDate, having type bool - ParameterId["ShowDate"] = "showDate"; - // DPI_ShowDragLabel, having type bool - ParameterId["ShowDragLabel"] = "showDragLabel"; - // DPI_ShowDropMeasures, having type bool - ParameterId["ShowDropMeasures"] = "showDropMeasures"; - // DPI_ShowEmbedAll, having type bool - ParameterId["ShowEmbedAll"] = "showEmbedAll"; - // DPI_ShowEntireImage, having type bool - ParameterId["ShowEntireImage"] = "showEntireImage"; - // DPI_ShowExclude, having type bool - ParameterId["ShowExclude"] = "showExcludeButton"; - // DPI_ShowFloatingZoomToolbar, having type bool - ParameterId["ShowFloatingZoomToolbar"] = "showFloatingZoomToolbar"; - // DPI_ShowFormatter, having type bool - ParameterId["ShowFormatter"] = "showFormatter"; - // DPI_ShowFullSchedules, having type bool - ParameterId["ShowFullSchedules"] = "showFullSchedules"; - // DPI_ShowGeographicSearch, having type bool - ParameterId["ShowGeographicSearch"] = "showGeographicSearch"; - // DPI_ShowHiddenFields, having type bool - ParameterId["ShowHiddenFields"] = "showHiddenFields"; - // DPI_ShowHistoryControls, having type bool - ParameterId["ShowHistoryControls"] = "showHistoryControls"; - // DPI_ShowIncludeLocalFiles, having type bool - ParameterId["ShowIncludeLocalFiles"] = "showIncludeLocalFiles"; - // DPI_ShowIncludeOtherOption, having type bool - ParameterId["ShowIncludeOtherOption"] = "showIncludeOtherOption"; - // DPI_ShowIncludeSelections, having type bool - ParameterId["ShowIncludeSelections"] = "showIncludeSelections"; - // DPI_ShowIncrSchedules, having type bool - ParameterId["ShowIncrSchedules"] = "showIncrSchedules"; - // DPI_ShowInnerMostLevel, having type bool - ParameterId["ShowInnerMostLevel"] = "showInnermostLevel"; - // DPI_ShowItalics, having type bool - ParameterId["ShowItalics"] = "showItalicsOption"; - // DPI_ShowLegend, having type bool - ParameterId["ShowLegend"] = "showLegend"; - // DPI_ShowLockedPermissionsIcon, having type bool - ParameterId["ShowLockedPermissionsIcon"] = "showLockedPermissionsIcon"; - // DPI_ShowManageDatasources, having type bool - ParameterId["ShowManageDatasources"] = "showManageDatasources"; - // DPI_ShowMapLegend, having type bool - ParameterId["ShowMapLegend"] = "showMapLegend"; - // DPI_ShowMapScale, having type bool - ParameterId["ShowMapScale"] = "showMapScale"; - // DPI_ShowMappedFilterCols, having type bool - ParameterId["ShowMappedFilterCols"] = "showMappedFilterColumns"; - // DPI_ShowName, having type bool - ParameterId["ShowName"] = "showName"; - // DPI_ShowNone, having type bool - ParameterId["ShowNone"] = "showNone"; - // DPI_ShowPagePlayback, having type bool - ParameterId["ShowPagePlayback"] = "showPagePlayback"; - // DPI_ShowPageReadout, having type bool - ParameterId["ShowPageReadout"] = "showPageReadout"; - // DPI_ShowPageSlider, having type bool - ParameterId["ShowPageSlider"] = "showPageSlider"; - // DPI_ShowParent, having type bool - ParameterId["ShowParent"] = "showParent"; - // DPI_ShowPercentages, having type bool - ParameterId["ShowPercentages"] = "showPercentages"; - // DPI_ShowPredictionIntervals, having type bool - ParameterId["ShowPredictionIntervals"] = "showPredictionIntervals"; - // DPI_ShowPublishedDatasources, having type bool - ParameterId["ShowPublishedDatasources"] = "showPublishedDatasources"; - // DPI_ShowRelDatePicker, having type bool - ParameterId["ShowRelDatePicker"] = "showRelDatePicker"; - // DPI_ShowReplaceDatasource, having type bool - ParameterId["ShowReplaceDatasource"] = "showReplaceDatasource"; - // DPI_ShowSeparator, having type bool - ParameterId["ShowSeparator"] = "showSeparator"; - // DPI_ShowShapeLegend, having type bool - ParameterId["ShowShapeLegend"] = "showShapeLegend"; - // DPI_ShowSizeLegend, having type bool - ParameterId["ShowSizeLegend"] = "showSizeLegend"; - // DPI_ShowShelf, having type bool - ParameterId["ShowShelf"] = "showShelf"; - // DPI_ShowStructure, having type bool - ParameterId["ShowStructure"] = "showStructure"; - // DPI_ShowSyncClientOptions, having type bool - ParameterId["ShowSyncClientOptions"] = "showSyncClientOptions"; - // DPI_ShowTabsAllowed, having type bool - ParameterId["ShowTabsAllowed"] = "showTabsAllowed"; - // DPI_ShowTime, having type bool - ParameterId["ShowTime"] = "showTime"; - // DPI_ShowTitle, having type bool - ParameterId["ShowTitle"] = "showTitle"; - // DPI_ShowTransSlider, having type bool - ParameterId["ShowTransSlider"] = "showTransparencySlider"; - // DPI_ShowUnderline, having type bool - ParameterId["ShowUnderline"] = "showUnderlineOption"; - // DPI_ShowUserThumbnailOptions, having type bool - ParameterId["ShowUserThumbnailOptions"] = "showUserThumbnailOptions"; - // DPI_ShowView, having type bool - ParameterId["ShowView"] = "showView"; - // DPI_ShowViews, having type bool - ParameterId["ShowViews"] = "showViews"; - // DPI_ShowingPageLoadError, having type bool - ParameterId["ShowingPageLoadError"] = "showingPageLoadError"; - // DPI_SupressAliases, having type bool - ParameterId["SupressAliases"] = "suspressAliases"; - // DPI_SupressThousandsSeparator, having type bool - ParameterId["SupressThousandsSeparator"] = "supressThousandsSeparator"; - // DPI_SingleSelectOnly, having type bool - ParameterId["SingleSelectOnly"] = "singleSelectOnly"; - // DPI_SkipIfActive, having type bool - ParameterId["SkipIfActive"] = "skipIfActive"; - // DPI_SkipRefresh, having type bool - ParameterId["SkipRefresh"] = "skipRefresh"; - // DPI_SkipValidation, having type bool - ParameterId["SkipValidation"] = "skipValidation"; - // DPI_Skipped, having type bool - ParameterId["Skipped"] = "skipped"; - // DPI_SortFieldIsInvalid, having type bool - ParameterId["SortFieldIsInvalid"] = "sortFieldIsInvalid"; - // DPI_SortModeIsAuto, having type bool - ParameterId["SortModeIsAuto"] = "sortModeIsAuto"; - // DPI_SplitOnEdgeSnap, having type bool - ParameterId["SplitOnEdgeSnap"] = "splitOnEdgeSnap"; - // DPI_StandardDeviationAllowed, having type bool - ParameterId["StandardDeviationAllowed"] = "standardDeviationAllowed"; - // DPI_State, having type bool - ParameterId["State"] = "state"; - // DPI_StoredProcDisabled, having type bool - ParameterId["StoredProcDisabled"] = "storedProcDisabled"; - // DPI_StoredProcsDropable, having type bool - ParameterId["StoredProcsDropable"] = "storedProcsDropable"; - // DPI_StoryIsEmpty, having type bool - ParameterId["StoryIsEmpty"] = "storyIsEmpty"; - // DPI_StoryPointIsEmpty, having type bool - ParameterId["StoryPointIsEmpty"] = "storyPointIsEmpty"; - // DPI_SuccessfulSave, having type bool - ParameterId["SuccessfulSave"] = "successfulSave"; - // DPI_SupportXAxis, having type bool - ParameterId["SupportXAxis"] = "supportXAxis"; - // DPI_SupportYAxis, having type bool - ParameterId["SupportYAxis"] = "supportYAxis"; - // DPI_SupportsCenterAlignment, having type bool - ParameterId["SupportsCenterAlignment"] = "supportsCenterAlignment"; - // DPI_SupportsDBFilters, having type bool - ParameterId["SupportsDBFilters"] = "supportsDatabaseFilters"; - // DPI_SupportsMultipleValues, having type bool - ParameterId["SupportsMultipleValues"] = "supportsMultipleValues"; - // DPI_SupportsRightAlignment, having type bool - ParameterId["SupportsRightAlignment"] = "supportsRightAlignment"; - // DPI_SupportsTableFilters, having type bool - ParameterId["SupportsTableFilters"] = "supportsTableFilters"; - // DPI_Symmetric, having type bool - ParameterId["Symmetric"] = "symmetric"; - // DPI_SyncAutomaticDrill, having type bool - ParameterId["SyncAutomaticDrill"] = "syncAutomaticDrill"; - // DPI_TabsAllowed, having type bool - ParameterId["TabsAllowed"] = "tabsAllowed"; - // DPI_TextDropdownState, having type bool - ParameterId["TextDropdownState"] = "toggleState"; - // DPI_TitleInline, having type bool - ParameterId["TitleInline"] = "titleInline"; - // DPI_ToggleHighlightStateChanged, having type bool - ParameterId["ToggleHighlightStateChanged"] = "toggleHighlight"; - // DPI_Transformed80Format, having type bool - ParameterId["Transformed80Format"] = "oldFormat"; - // DPI_TrendLineSelected, having type bool - ParameterId["TrendLineSelected"] = "trendLineSelected"; - // DPI_TruncDate, having type bool - ParameterId["TruncDate"] = "truncDate"; - // DPI_TupleSelected, having type bool - ParameterId["TupleSelected"] = "tupleSelected"; - // DPI_UIAutomationDidPageLoad, having type bool - ParameterId["UIAutomationDidPageLoad"] = "uiAutomationDidPageLoad"; - // DPI_UIAutomationIsChecked, having type bool - ParameterId["UIAutomationIsChecked"] = "uiAutomationIsChecked"; - // DPI_UIAutomationIsEnabled, having type bool - ParameterId["UIAutomationIsEnabled"] = "uiAutomationIsEnabled"; - // DPI_UIAutomationIsEventProcessed, having type bool - ParameterId["UIAutomationIsEventProcessed"] = "uiAutomationIsEventProcessed"; - // DPI_UIAutomationIsFocused, having type bool - ParameterId["UIAutomationIsFocused"] = "uiAutomationIsFocused"; - // DPI_UIAutomationIsFound, having type bool - ParameterId["UIAutomationIsFound"] = "uiAutomationIsFound"; - // DPI_UIAutomationIsReadonly, having type bool - ParameterId["UIAutomationIsReadonly"] = "uiAutomationIsReadonly"; - // DPI_UIAutomationIsSelected, having type bool - ParameterId["UIAutomationIsSelected"] = "uiAutomationIsSelected"; - // DPI_UpdateAllPanes, having type bool - ParameterId["UpdateAllPanes"] = "updateAllPanes"; - // DPI_UpdateDSCaptionOnly, having type bool - ParameterId["UpdateDSCaptionOnly"] = "updateDsCaptionOnly"; - // DPI_UpdateModelFromParams, having type bool - ParameterId["UpdateModelFromParams"] = "updateModelFromParams"; - // DPI_UpdateShelves, having type bool - ParameterId["UpdateShelves"] = "updateShelves"; - // DPI_UpdatesUseContext, having type bool - ParameterId["UpdatesUseContext"] = "updatesUseContext"; - // DPI_UpgradeDocumentVersion, having type bool - ParameterId["UpgradeDocumentVersion"] = "upgradeDocumentVersion"; - // DPI_UseAliases, having type bool - ParameterId["UseAliases"] = "useAliases"; - // DPI_UseBlankForNull, having type bool - ParameterId["UseBlankForNull"] = "useBlankForNull"; - // DPI_UseCalculationEditor, having type bool - ParameterId["UseCalculationEditor"] = "useCalculationEditor"; - // DPI_UseCenterValue, having type bool - ParameterId["UseCenterValue"] = "useCenterValue"; - // DPI_UseColor, having type bool - ParameterId["UseColor"] = "useColor"; - // DPI_UseCustomMarkSize, having type bool - ParameterId["UseCustomMarkSize"] = "useCustomMarkSize"; - // DPI_UseDarkIcons, having type bool - ParameterId["UseDarkIcons"] = "useDarkIcons"; - // DPI_UseDataStoreMinfiedNames, having type bool - ParameterId["UseDataStoreMinfiedNames"] = "useDatastoreMinNames"; - // DPI_UseInitialDomainType, having type bool - ParameterId["UseInitialDomainType"] = "useInitialDomainType"; - // DPI_UseEndValue, having type bool - ParameterId["UseEndValue"] = "useEndValue"; - // DPI_UseForOverlayHitTest, having type bool - ParameterId["UseForOverlayHitTest"] = "useForOverlayHitTest"; - // DPI_UseFullColorRange, having type bool - ParameterId["UseFullColorRange"] = "useFullColorRange"; - // DPI_UseFullDomain, having type bool - ParameterId["UseFullDomain"] = "useFullDomain"; - // DPI_UseInlineImages, having type bool - ParameterId["UseInlineImages"] = "useInlineImages"; - // DPI_UseMeasures, having type bool - ParameterId["UseMeasures"] = "useMeasures"; - // DPI_UseNewQuickFilters, having type bool - ParameterId["UseNewQuickFilters"] = "useNewQuickFilters"; - // DPI_UseNotificationReturn, having type bool - ParameterId["UseNotificationReturn"] = "useNotificationReturn"; - // DPI_UseParameters, having type bool - ParameterId["UseParameters"] = "useParameters"; - // DPI_UseSelector, having type bool - ParameterId["UseSelector"] = "useSelector"; - // DPI_UseSignificantDigits, having type bool - ParameterId["UseSignificantDigits"] = "useSignificantDigits"; - // DPI_UseSpecialStrings, having type bool - ParameterId["UseSpecialStrings"] = "useSpecialStrings"; - // DPI_UseStartValue, having type bool - ParameterId["UseStartValue"] = "useStartValue"; - // DPI_UseTabs, having type bool - ParameterId["UseTabs"] = "useTabs"; - // DPI_UseTabletAsDefaultPreview, having type bool - ParameterId["UseTabletAsDefaultPreview"] = "useTabletAsDefaultPreview"; - // DPI_UseTargetPt, having type bool - ParameterId["UseTargetPt"] = "useTargetPoint"; - // DPI_UseUSLocale, having type bool - ParameterId["UseUSLocale"] = "useUsLocale"; - // DPI_UseYAxis, having type bool - ParameterId["UseYAxis"] = "useYAxis"; - // DPI_Valid, having type bool - ParameterId["Valid"] = "valid"; - // DPI_VizDataV82, having type bool - ParameterId["VizDataV82"] = "vizData82"; - // DPI_WMSConnectionSuccessful, having type bool - ParameterId["WMSConnectionSuccessful"] = "wmsConnectionSuccessful"; - // DPI_WMSShouldUseTiles, having type bool - ParameterId["WMSShouldUseTiles"] = "wmsShouldUseTiles"; - // DPI_WantDomain, having type bool - ParameterId["WantDomain"] = "wantDomain"; - // DPI_WorkbookModified, having type bool - ParameterId["WorkbookModified"] = "workbookModified"; - // DPI_ZoomIn, having type bool - ParameterId["ZoomIn"] = "zoomIn"; - // DPI_ShowMarkLabels, having type bool - ParameterId["ShowMarkLabels"] = "showMarkLabels"; - // DPI_HasDuplicates, having type bool - ParameterId["HasDuplicates"] = "hasDuplicates"; - // DPI_HasUserDefinedIncrement, having type bool - ParameterId["HasUserDefinedIncrement"] = "hasUserDefinedIncrement"; - // DPI_HasUserDefinedMax, having type bool - ParameterId["HasUserDefinedMax"] = "hasUserDefinedMax"; - // DPI_HasUserDefinedMin, having type bool - ParameterId["HasUserDefinedMin"] = "hasUserDefinedMin"; - // DPI_IsDuplicate, having type bool - ParameterId["IsDuplicate"] = "isDuplicate"; - // DPI_IsEditingValue, having type bool - ParameterId["IsEditingValue"] = "isEditingValue"; - // DPI_ShouldRestrictDataType, having type bool - ParameterId["ShouldRestrictDataType"] = "restrictDataType"; - // DPI_EnableIncludeZero, having type bool - ParameterId["EnableIncludeZero"] = "enableIncludeZero"; - // DPI_EnableSyncDualAxes, having type bool - ParameterId["EnableSyncDualAxes"] = "enableSynchronizeDualAxes"; - // DPI_EnableShowTimes, having type bool - ParameterId["EnableShowTimes"] = "enableShowTimes"; - // DPI_EnableTickMarksTab, having type bool - ParameterId["EnableTickMarksTab"] = "enableTickMarksTab"; - // DPI_IsTemporal, having type bool - ParameterId["IsTemporal"] = "isTemporal"; - // DPI_ShouldIncludeZero, having type bool - ParameterId["ShouldIncludeZero"] = "shouldIncludeZero"; - // DPI_ShouldReverseAxis, having type bool - ParameterId["ShouldReverseAxis"] = "shouldReverseAxis"; - // DPI_ShouldShowTimes, having type bool - ParameterId["ShouldShowTimes"] = "shouldShowTimes"; - // DPI_UseAutomaticAxisSubtitle, having type bool - ParameterId["UseAutomaticAxisSubtitle"] = "useAutomaticSubtitle"; - // DPI_UseAutomaticAxisTitle, having type bool - ParameterId["UseAutomaticAxisTitle"] = "useAutomaticTitle"; - // DPI_AllSelected, having type bool - ParameterId["AllSelected"] = "allSelected"; - // DPI_AutoCommit, having type bool - ParameterId["AutoCommit"] = "autoCommit"; - // DPI_CacheOnly, having type bool - ParameterId["CacheOnly"] = "cacheOnly"; - // DPI_IncludeData, having type bool - ParameterId["IncludeData"] = "includeData"; - // DPI_IsPatternExclusive, having type bool - ParameterId["IsPatternExclusive"] = "isPatternExclusive"; - // DPI_IsSearchable, having type bool - ParameterId["IsSearchable"] = "isSearchable"; - // DPI_IsSelectionExclusive, having type bool - ParameterId["IsSelectionExclusive"] = "isSelectionExclusive"; - // DPI_ResetNewFilter, having type bool - ParameterId["ResetNewFilter"] = "resetNewFilter"; - // DPI_UseAllWhenManualEmpty, having type bool - ParameterId["UseAllWhenManualEmpty"] = "useAllWhenManualEmpty"; - // DPI_UseAllWhenPatternEmpty, having type bool - ParameterId["UseAllWhenPatternEmpty"] = "useAllWhenPatternEmpty"; - // DPI_GroupByDrillDown, having type bool - ParameterId["GroupByDrillDown"] = "groupByDrillDown"; - // DPI_GroupByTable, having type bool - ParameterId["GroupByTable"] = "groupByTable"; - // DPI_IncludeGroups, having type bool - ParameterId["IncludeGroups"] = "includeGroups"; - // DPI_IncludePendingState, having type bool - ParameterId["IncludePendingState"] = "includePendingState"; - // DPI_IncludeFieldMenus, having type bool - ParameterId["IncludeFieldMenus"] = "includeFieldMenus"; - // DPI_IncludeFormattedValues, having type bool - ParameterId["IncludeFormattedValues"] = "includeFormattedValues"; - // DPI_IncludeColumnInstances, having type bool - ParameterId["IncludeColumnInstances"] = "includeColumnInstances"; - // DPI_IncludeAdHocCalcs, having type bool - ParameterId["IncludeAdHocCalcs"] = "includeAdhocCalcs"; - // DPI_IncludeHiddenInvalidFields, having type bool - ParameterId["IncludeHiddenInvalidFields"] = "includeHiddenInvalidFields"; - // DPI_IncludeNonExtractedColumns, having type bool - ParameterId["IncludeNonExtractedColumns"] = "includeNonExtractedColumns"; - // DPI_IncludeCalculatedFieldFormulas, having type bool - ParameterId["IncludeCalculatedFieldFormulas"] = "includeCalculatedFieldFormulas"; - // DPI_SetDataPreviewCustomFieldOrder, having type bool - ParameterId["SetDataPreviewCustomFieldOrder"] = "setDataPreviewCustomFieldOrder"; - // DPI_CustomSplitAllowSplitFromRight, having type bool - ParameterId["CustomSplitAllowSplitFromRight"] = "customSplitAllowSplitFromRight"; - // DPI_IsChanged, having type bool - ParameterId["IsChanged"] = "isChanged"; - // DPI_ShowFontColorPicker, having type bool - ParameterId["ShowFontColorPicker"] = "showFontColorPicker"; - // DPI_ShowFontFamilyPicker, having type bool - ParameterId["ShowFontFamilyPicker"] = "showFontFamilyPicker"; - // DPI_ShowFontSizePicker, having type bool - ParameterId["ShowFontSizePicker"] = "showFontSizePicker"; - // DPI_ShowFontStyleButtons, having type bool - ParameterId["ShowFontStyleButtons"] = "showFontStyleButtons"; - // DPI_ShowLineForAll, having type bool - ParameterId["ShowLineForAll"] = "showLineForAll"; - // DPI_ShowLineForColumn, having type bool - ParameterId["ShowLineForColumn"] = "showLineForColumn"; - // DPI_ShowLineForRow, having type bool - ParameterId["ShowLineForRow"] = "showLineForRow"; - // DPI_ShowLinePatternPicker, having type bool - ParameterId["ShowLinePatternPicker"] = "showLinePatternPicker"; - // DPI_ShowLineTransparency, having type bool - ParameterId["ShowLineTransparency"] = "showLineTransparency"; - // DPI_ShowLineWidthPicker, having type bool - ParameterId["ShowLineWidthPicker"] = "showLineWidthPicker"; - // DPI_CanBeAuto, having type bool - ParameterId["CanBeAuto"] = "canBeAuto"; - // DPI_CanBeNone, having type bool - ParameterId["CanBeNone"] = "canBeNone"; - // DPI_CanMatchMarkColor, having type bool - ParameterId["CanMatchMarkColor"] = "canMatchMarkColor"; - // DPI_HasOpacity, having type bool - ParameterId["HasOpacity"] = "hasOpacity"; - // DPI_IncludeAllHidden, having type bool - ParameterId["IncludeAllHidden"] = "includeAllHidden"; - // DPI_IncludeCurrent, having type bool - ParameterId["IncludeCurrent"] = "includeCurrent"; - // DPI_IsIncluded, having type bool - ParameterId["IsIncluded"] = "isIncluded"; - // DPI_IsRelative, having type bool - ParameterId["IsRelative"] = "isRelative"; - // DPI_IsSecondaryAllowed, having type bool - ParameterId["IsSecondaryAllowed"] = "isSecondaryAllowed"; - // DPI_NullIfIncomplete, having type bool - ParameterId["NullIfIncomplete"] = "nullIfIncomplete"; - // DPI_IsCalcAssistanceEnabled, having type bool - ParameterId["IsCalcAssistanceEnabled"] = "isCalcAssistanceEnabled"; - // DPI_UseSecondaryCalc, having type bool - ParameterId["UseSecondaryCalc"] = "useSecondaryCalc"; - // DPI_CanLoad, having type bool - ParameterId["CanLoad"] = "canLoad"; - // DPI_DescriptionOnly, having type bool - ParameterId["DescriptionOnly"] = "descriptionOnly"; - // DPI_AreAliasesSupported, having type bool - ParameterId["AreAliasesSupported"] = "areAliasesSupported"; - // DPI_AreRefColumnsSupported, having type bool - ParameterId["AreRefColumnsSupported"] = "areRefColumnsSupported"; - // DPI_IsAggregated, having type bool - ParameterId["IsAggregated"] = "isAggregated"; - // DPI_IsExportSupported, having type bool - ParameterId["IsExportSupported"] = "isExportSupported"; - // DPI_IsMeasureNames, having type bool - ParameterId["IsMeasureNames"] = "isMeasureNames"; - // DPI_IsSummarySupported, having type bool - ParameterId["IsSummarySupported"] = "isSummarySupported"; - // DPI_IsTopNSupported, having type bool - ParameterId["IsTopNSupported"] = "isTopNSupported"; - // DPI_IsUnderlyingSupported, having type bool - ParameterId["IsUnderlyingSupported"] = "isUnderlyingSupported"; - // DPI_OnlyExportSummary, having type bool - ParameterId["OnlyExportSummary"] = "onlyExportSummary"; - // DPI_ShowAllFields, having type bool - ParameterId["ShowAllFields"] = "showAllFields"; - // DPI_UseTablePtrs, having type bool - ParameterId["UseTablePtrs"] = "useTablePtrs"; - // DPI_OnlyFetchSummary, having type bool - ParameterId["OnlyFetchSummary"] = "onlyFetchSummary"; - // DPI_IsDeviceLayoutCustomized, having type bool - ParameterId["IsDeviceLayoutCustomized"] = "isDeviceLayoutCustomized"; - // DPI_IsDeviceSizeCustomized, having type bool - ParameterId["IsDeviceSizeCustomized"] = "isDeviceSizeCustomized"; - // DPI_IsDeviceSupportedByMobileApp, having type bool - ParameterId["IsDeviceSupportedByMobileApp"] = "isDeviceSupportedByMobileApp"; - // DPI_IsPortrait, having type bool - ParameterId["IsPortrait"] = "isPortrait"; - // DPI_IsPortraitByDefault, having type bool - ParameterId["IsPortraitByDefault"] = "isPortraitByDefault"; - // DPI_IsUserCustomFormat, having type bool - ParameterId["IsUserCustomFormat"] = "isUserCustomFormat"; - // DPI_ShouldDisplayRebuildExtractMessage, having type bool - ParameterId["ShouldDisplayRebuildExtractMessage"] = "shouldDisplayRebuildExtractMessage"; - // DPI_SupportsCustomStartOfWeek, having type bool - ParameterId["SupportsCustomStartOfWeek"] = "supportsCustomStartOfWeek"; - // DPI_NeedsConnectPrompt, having type bool - ParameterId["NeedsConnectPrompt"] = "needsConnectPrompt"; - // DPI_NeedsCloseDataSourceErrorPrompt, having type bool - ParameterId["NeedsCloseDataSourceErrorPrompt"] = "needsCloseDsErrorPrompt"; - // DPI_ClearCurrentSelection, having type bool - ParameterId["ClearCurrentSelection"] = "clearCurrentSelection"; - // DPI_HasContains, having type bool - ParameterId["HasContains"] = "hasContains"; - // DPI_HasEndsWith, having type bool - ParameterId["HasEndsWith"] = "hasEndsWith"; - // DPI_HasReplaceSelection, having type bool - ParameterId["HasReplaceSelection"] = "hasReplaceSelection"; - // DPI_HasStartsWith, having type bool - ParameterId["HasStartsWith"] = "hasStartsWith"; - // DPI_IsLeafSelectionOnly, having type bool - ParameterId["IsLeafSelectionOnly"] = "isLeafSelectionOnly"; - // DPI_ReplaceSelection, having type bool - ParameterId["ReplaceSelection"] = "replaceSelection"; - // DPI_IsColorPaletteCustomized, having type bool - ParameterId["IsColorPaletteCustomized"] = "isColorPaletteCustomized"; - // DPI_ReversePaletteOrder, having type bool - ParameterId["ReversePaletteOrder"] = "reversePaletteOrder"; - // DPI_TriedToConnect, having type bool - ParameterId["TriedToConnect"] = "triedToConnect"; - // DPI_ScaleMarksInAxisUnits, having type bool - ParameterId["ScaleMarksInAxisUnits"] = "scaleMarksInAxisUnits"; - // DPI_ShowMarkSizingOptions, having type bool - ParameterId["ShowMarkSizingOptions"] = "showMarkSizingOptions"; - // DPI_UseSizeFieldCaption, having type bool - ParameterId["UseSizeFieldCaption"] = "useSizeFieldCaption"; - // DPI_IsLicensedAndRegistered, having type bool - ParameterId["IsLicensedAndRegistered"] = "isLicensedAndRegistered"; - // DPI_SetNewDatasourceActive, having type bool - ParameterId["SetNewDatasourceActive"] = "setNewDatasourceActive"; - // DPI_AllowCustomLabel, having type bool - ParameterId["AllowCustomLabel"] = "allowCustomLabel"; - // DPI_IsMostRecentModeValid, having type bool - ParameterId["IsMostRecentModeValid"] = "isMostRecentModeValid"; - // DPI_MustShowLabels, having type bool - ParameterId["MustShowLabels"] = "mustShowLabels"; - // DPI_ShowRunningOrderLabels, having type bool - ParameterId["ShowRunningOrderLabels"] = "showRunningOrderLabels"; - // DPI_IsDroppedFile, having type bool - ParameterId["IsDroppedFile"] = "isDroppedFile"; - // DPI_IsInitialized, having type bool - ParameterId["IsInitialized"] = "isInitialized"; - // DPI_IncludeDashboard, having type bool - ParameterId["IncludeDashboard"] = "includeDashboard"; - // DPI_ChildrenCanResize, having type bool - ParameterId["ChildrenCanResize"] = "childrenCanResize"; - // DPI_BoolMap, having type Dictionary(of bool) - ParameterId["BoolMap"] = "boolMap"; - // DPI_CheckedMenuItems, having type bool[] - ParameterId["CheckedMenuItems"] = "checkedMenuItems"; - // DPI_IncludedSheetValues, having type bool[] - ParameterId["IncludedSheetValues"] = "includedSheetValues"; - // DPI_SortOrderVector, having type bool[] - ParameterId["SortOrderVector"] = "sortOrderVector"; - // DPI_ActionName, having type string - ParameterId["ActionName"] = "actionName"; - // DPI_ActionSourceText, having type string - ParameterId["ActionSourceText"] = "actionSourceText"; - // DPI_ActionTypeAsString, having type string - ParameterId["ActionTypeAsString"] = "actionTypeAsString"; - // DPI_ActiveTab, having type string - ParameterId["ActiveTab"] = "active_tab"; - // DPI_AddInFeatureName, having type string - ParameterId["AddInFeatureName"] = "addInFeatureName"; - // DPI_AddInId, having type string - ParameterId["AddInId"] = "addInId"; - // DPI_AddInstanceId, having type string - ParameterId["AddInstanceId"] = "addInInstanceId"; - // DPI_AddInName, having type string - ParameterId["AddInName"] = "addInName"; - // DPI_AddInLocale, having type string - ParameterId["AddInLocale"] = "addInLocale"; - // DPI_AddInLanguage, having type string - ParameterId["AddInLanguage"] = "addInLanguage"; - // DPI_APIVersion, having type string - ParameterId["APIVersion"] = "apiVersion"; - // DPI_Alias, having type string - ParameterId["Alias"] = "alias"; - // DPI_AnchorDate, having type string - ParameterId["AnchorDate"] = "anchorDate"; - // DPI_AnnotationRes, having type string - ParameterId["AnnotationRes"] = "annotationRes"; - // DPI_ReadId, having type string - ParameterId["ReadId"] = "readId"; - // DPI_AnnotationText, having type string - ParameterId["AnnotationText"] = "annotationText"; - // DPI_ArchiveDirectory, having type string - ParameterId["ArchiveDirectory"] = "archiveDirectory"; - // DPI_ArchiveFullPath, having type string - ParameterId["ArchiveFullPath"] = "archiveFullPath"; - // DPI_AtTheLevelInvalidFieldCaption, having type string - ParameterId["AtTheLevelInvalidFieldCaption"] = "atTheLevelInvalidFieldCaption"; - // DPI_AutoCompleteSubstring, having type string - ParameterId["AutoCompleteSubstring"] = "acSubstring"; - // DPI_AutosaveFileId, having type string - ParameterId["AutosaveFileId"] = "autosaveFileId"; - // DPI_AutosaveTimerInterval, having type string - ParameterId["AutosaveTimerInterval"] = "autosaveTimerInterval"; - // DPI_BaseColumnCaption, having type string - ParameterId["BaseColumnCaption"] = "baseColumnCaption"; - // DPI_ClearButtonText, having type string - ParameterId["ClearButtonText"] = "clearButtonText"; - // DPI_ColorPaletteId, having type string - ParameterId["ColorPaletteId"] = "colorPaletteId"; - // DPI_ColorPaletteName, having type string - ParameterId["ColorPaletteName"] = "colorPaletteName"; - // DPI_ColorSwatch, having type string - ParameterId["ColorSwatch"] = "colorSwatch"; - // DPI_CommandName, having type string - ParameterId["CommandName"] = "commandName"; - // DPI_ConfidenceLevelValue, having type string - ParameterId["ConfidenceLevelValue"] = "confidenceLevelValue"; - // DPI_CountDistinctStr, having type string - ParameterId["CountDistinctStr"] = "countDistinctStr"; - // DPI_CrossTabFilepath, having type string - ParameterId["CrossTabFilepath"] = "crossTabFilepath"; - // DPI_CSSMargin, having type string - ParameterId["CSSMargin"] = "cssMargin"; - // DPI_CSSWhitespace, having type string - ParameterId["CSSWhitespace"] = "cssWhitespace"; - // DPI_DBPassword, having type string - ParameterId["DBPassword"] = "dbPassword"; - // DPI_DBUsername, having type string - ParameterId["DBUsername"] = "dbUsername"; - // DPI_DataAlertConditionText, having type string - ParameterId["DataAlertConditionText"] = "dataAlertConditionText"; - // DPI_DataAlertMeasureText, having type string - ParameterId["DataAlertMeasureText"] = "dataAlertMeasureText"; - // DPI_DataAlertSpecSerializedText, having type string - ParameterId["DataAlertSpecSerializedText"] = "dataAlertSpecSerializedText"; - // DPI_DataAlertDefaultSubject, having type string - ParameterId["DataAlertDefaultSubject"] = "dataAlertDefaultSubject"; - // DPI_DataAlertThresholdText, having type string - ParameterId["DataAlertThresholdText"] = "dataAlertThresholdText"; - // DPI_DataGridSortColumnName, having type string - ParameterId["DataGridSortColumnName"] = "datagridSortColumnName"; - // DPI_DataServerConnectionError, having type string - ParameterId["DataServerConnectionError"] = "dataServerConnectionError"; - // DPI_DatabaseFilter, having type string - ParameterId["DatabaseFilter"] = "databaseFilter"; - // DPI_DatabaseFilterPrompt, having type string - ParameterId["DatabaseFilterPrompt"] = "databaseFilterPrompt"; - // DPI_DatasourceRanking, having type string - ParameterId["DatasourceRanking"] = "datasourceRanking"; - // DPI_DatasourceUrl, having type string - ParameterId["DatasourceUrl"] = "datasourceUrl"; - // DPI_DatasourceUsername, having type string - ParameterId["DatasourceUsername"] = "datasourceUsername"; - // DPI_DateFormat, having type string - ParameterId["DateFormat"] = "dateFormat"; - // DPI_DatePart, having type string - ParameterId["DatePart"] = "datePart"; - // DPI_DatePartAbbrev, having type string - ParameterId["DatePartAbbrev"] = "datePartAbbrev"; - // DPI_DefaultHierarchyName, having type string - ParameterId["DefaultHierarchyName"] = "defaultHierarchyName"; - // DPI_DefaultMenuItemKey, having type string - ParameterId["DefaultMenuItemKey"] = "defaultMenuItemKey"; - // DPI_Delimiter, having type string - ParameterId["Delimiter"] = "delimiter"; - // DPI_DeviceName, having type string - ParameterId["DeviceName"] = "deviceName"; - // DPI_DeviceType, having type string - ParameterId["DeviceType"] = "deviceType"; - // DPI_DisplayPath, having type string - ParameterId["DisplayPath"] = "displayPath"; - // DPI_DistributionValueString, having type string - ParameterId["DistributionValueString"] = "distributionValueString"; - // DPI_DrillPathName, having type string - ParameterId["DrillPathName"] = "drillPathName"; - // DPI_EmbeddedTitle, having type string - ParameterId["EmbeddedTitle"] = "embeddedTitle"; - // DPI_EnterValueText, having type string - ParameterId["EnterValueText"] = "enterValueText"; - // DPI_EscapeString, having type string - ParameterId["EscapeString"] = "escapeString"; - // DPI_ExtSvcConfigHost, having type string - ParameterId["ExtSvcConfigHost"] = "extSvcConfigHost"; - // DPI_ExtSvcConfigPassword, having type string - ParameterId["ExtSvcConfigPassword"] = "extSvcConfigPassword"; - // DPI_ExtSvcConfigPort, having type string - ParameterId["ExtSvcConfigPort"] = "extSvcConfigPort"; - // DPI_ExtSvcConfigConnectTimeout, having type string - ParameterId["ExtSvcConfigConnectTimeout"] = "extSvcConnectTimeout"; - // DPI_ExtSvcConfigPrevHost, having type string - ParameterId["ExtSvcConfigPrevHost"] = "extSvcConfigPrevHost"; - // DPI_ExtSvcConfigUsername, having type string - ParameterId["ExtSvcConfigUsername"] = "extSvcConfigUsername"; - // DPI_ExtractUpdateTime, having type string - ParameterId["ExtractUpdateTime"] = "extractUpdateTime"; - // DPI_FieldFolderName, having type string - ParameterId["FieldFolderName"] = "fieldFolderName"; - // DPI_FieldNameString, having type string - ParameterId["FieldNameString"] = "fieldName"; - // DPI_FilterSearchDomain, having type string - ParameterId["FilterSearchDomain"] = "filterSearchDomain"; - // DPI_FilterSpec, having type string - ParameterId["FilterSpec"] = "filterSpec"; - // DPI_FirstValue, having type string - ParameterId["FirstValue"] = "firstValue"; - // DPI_FolderName, having type string - ParameterId["FolderName"] = "folderName"; - // DPI_FontName, having type string - ParameterId["FontName"] = "fontName"; - // DPI_FormatString, having type string - ParameterId["FormatString"] = "formatString"; - // DPI_FormattedDisplayString, having type string - ParameterId["FormattedDisplayString"] = "formattedDisplayString"; - // DPI_FormattedIncrementValue, having type string - ParameterId["FormattedIncrementValue"] = "formattedIncrement"; - // DPI_FormattedMaxValue, having type string - ParameterId["FormattedMaxValue"] = "formattedMax"; - // DPI_FormattedMinValue, having type string - ParameterId["FormattedMinValue"] = "formattedMin"; - // DPI_FormattedValue, having type string - ParameterId["FormattedValue"] = "formattedValue"; - // DPI_FormattedCenterValue, having type string - ParameterId["FormattedCenterValue"] = "formattedCenter"; - // DPI_FormattedEndValue, having type string - ParameterId["FormattedEndValue"] = "formattedEnd"; - // DPI_FormattedStartValue, having type string - ParameterId["FormattedStartValue"] = "formattedStart"; - // DPI_PairedFormattedValue, having type string - ParameterId["PairedFormattedValue"] = "pairedFormattedValue"; - // DPI_FrameAttributes, having type string - ParameterId["FrameAttributes"] = "frameAttr"; - // DPI_GUID, having type string - ParameterId["GUID"] = "guid"; - // DPI_GeographicSearchCandidateDisplayName, having type string - ParameterId["GeographicSearchCandidateDisplayName"] = "geographicSearchCandidateDisplayName"; - // DPI_GeographicSearchCandidateParentName, having type string - ParameterId["GeographicSearchCandidateParentName"] = "geographicSearchCandidateParentName"; - // DPI_GeographicSearchCandidateType, having type string - ParameterId["GeographicSearchCandidateType"] = "geographicSearchCandidateType"; - // DPI_GeographicSearchLocale, having type string - ParameterId["GeographicSearchLocale"] = "geographicSearchLocale"; - // DPI_GeographicSearchQueryString, having type string - ParameterId["GeographicSearchQueryString"] = "geographicSearchSearchString"; - // DPI_GeographicSearchUILocale, having type string - ParameterId["GeographicSearchUILocale"] = "geographicSearchUilocale"; - // DPI_IconRes, having type string - ParameterId["IconRes"] = "iconRes"; - // DPI_ImageHash, having type string - ParameterId["ImageHash"] = "imageHash"; - // DPI_ImageName, having type string - ParameterId["ImageName"] = "imageName"; - // DPI_ImageRes, having type string - ParameterId["ImageRes"] = "imageRes"; - // DPI_IncludesSiblingsPrompt, having type string - ParameterId["IncludesSiblingsPrompt"] = "includesSiblingsPrompt"; - // DPI_IncludesSubfoldersPrompt, having type string - ParameterId["IncludesSubfoldersPrompt"] = "includesSubfoldersPrompt"; - // DPI_IncrementalScheduleIDs, having type string - ParameterId["IncrementalScheduleIDs"] = "incrementalScheduleIds"; - // DPI_InvariantKeyword, having type string - ParameterId["InvariantKeyword"] = "invariantKeyword"; - // DPI_JoinOperator, having type string - ParameterId["JoinOperator"] = "joinOperator"; - // DPI_JoinExpression, having type string - ParameterId["JoinExpression"] = "joinExpression"; - // DPI_Key, having type string - ParameterId["Key"] = "keyId"; - // DPI_Label, having type string - ParameterId["Label"] = "label"; - // DPI_PairedLabel, having type string - ParameterId["PairedLabel"] = "pairedLabel"; - // DPI_LayoutID, having type string - ParameterId["LayoutID"] = "layoutId"; - // DPI_LeftJoinExpression, having type string - ParameterId["LeftJoinExpression"] = "leftJoinExpression"; - // DPI_LimitCountExpression, having type string - ParameterId["LimitCountExpression"] = "limitCountExpression"; - // DPI_LinkTarget, having type string - ParameterId["LinkTarget"] = "linkTarget"; - // DPI_Locale, having type string - ParameterId["Locale"] = "locale"; - // DPI_LocalizedKeyword, having type string - ParameterId["LocalizedKeyword"] = "localizedKeyword"; - // DPI_MapBoxGLStyleId, having type string - ParameterId["MapBoxGLStyleId"] = "mapboxGlStyleId"; - // DPI_MapBoxStyleUrl, having type string - ParameterId["MapBoxStyleUrl"] = "mapboxStyleUrl"; - // DPI_MapBoxUsername, having type string - ParameterId["MapBoxUsername"] = "mapboxUsername"; - // DPI_MapScaleReadoutString, having type string - ParameterId["MapScaleReadoutString"] = "mapScaleReadoutString"; - // DPI_MapScaleTooltipString, having type string - ParameterId["MapScaleTooltipString"] = "mapScaleTooltipString"; - // DPI_MapSourceName, having type string - ParameterId["MapSourceName"] = "mapSourceName"; - // DPI_MaxLabel, having type string - ParameterId["MaxLabel"] = "maxLabel"; - // DPI_MinLabel, having type string - ParameterId["MinLabel"] = "minLabel"; - // DPI_ModelDescriptionParagraph, having type string - ParameterId["ModelDescriptionParagraph"] = "modelDescriptionParagraph"; - // DPI_NameTemplate, having type string - ParameterId["NameTemplate"] = "nameTemplate"; - // DPI_NewDrillPath, having type string - ParameterId["NewDrillPath"] = "newDrillPath"; - // DPI_NewFieldFolderName, having type string - ParameterId["NewFieldFolderName"] = "newFieldFolderName"; - // DPI_NewTableAlias, having type string - ParameterId["NewTableAlias"] = "newTableAlias"; - // DPI_NonFormattedValue, having type string - ParameterId["NonFormattedValue"] = "unformattedValue"; - // DPI_OAuthUserName, having type string - ParameterId["OAuthUserName"] = "oauthUsername"; - // DPI_ObjectName, having type string - ParameterId["ObjectName"] = "objectName"; - // DPI_ObjectOverrideMessage, having type string - ParameterId["ObjectOverrideMessage"] = "objectOverrideMessage"; - // DPI_OldTableAlias, having type string - ParameterId["OldTableAlias"] = "oldTableAlias"; - // DPI_OperatingSystem, having type string - ParameterId["OperatingSystem"] = "operatingSystem"; - // DPI_OriginalFilePath, having type string - ParameterId["OriginalFilePath"] = "originalFilePath"; - // DPI_OriginalFileVersion, having type string - ParameterId["OriginalFileVersion"] = "originalFileVersion"; - // DPI_PaneDescriptorKey, having type string - ParameterId["PaneDescriptorKey"] = "paneDescrKey"; - // DPI_ParentName, having type string - ParameterId["ParentName"] = "parentName"; - // DPI_ParentTable, having type string - ParameterId["ParentTable"] = "parentTable"; - // DPI_PatternFilterString, having type string - ParameterId["PatternFilterString"] = "patternFilterString"; - // DPI_PendingCalcName, having type string - ParameterId["PendingCalcName"] = "pendingCalcName"; - // DPI_PercentilesString, having type string - ParameterId["PercentilesString"] = "percentilesString"; - // DPI_ProjectName, having type string - ParameterId["ProjectName"] = "projectName"; - // DPI_PropertyName, having type string - ParameterId["PropertyName"] = "propertyName"; - // DPI_QuickFilterTitleCaption, having type string - ParameterId["QuickFilterTitleCaption"] = "quickFilterTitleCaption"; - // DPI_RangeDiffStr, having type string - ParameterId["RangeDiffStr"] = "diffValue"; - // DPI_RangeMaxStr, having type string - ParameterId["RangeMaxStr"] = "maxValue"; - // DPI_RangeMinStr, having type string - ParameterId["RangeMinStr"] = "minValue"; - // DPI_RecoveredFilePath, having type string - ParameterId["RecoveredFilePath"] = "recoveredFilePath"; - // DPI_ReferenceLineSpecificationId, having type string - ParameterId["ReferenceLineSpecificationId"] = "referenceLineId"; - // DPI_ReplaceFieldPrompt, having type string - ParameterId["ReplaceFieldPrompt"] = "replaceFieldPrompt"; - // DPI_RightJoinExpression, having type string - ParameterId["RightJoinExpression"] = "rightJoinExpression"; - // DPI_RootPath, having type string - ParameterId["RootPath"] = "rootPath"; - // DPI_RuntimeFinalDatastore, having type string - ParameterId["RuntimeFinalDatastore"] = "runtimeFinalDatastore"; - // DPI_RuntimeInitialDatastore, having type string - ParameterId["RuntimeInitialDatastore"] = "runtimeInitialDatastore"; - // DPI_RuntimeVTL, having type string - ParameterId["RuntimeVTL"] = "runtimeVtl"; - // DPI_SampleDataString, having type string - ParameterId["SampleDataString"] = "sampleData"; - // DPI_ScheduleIDs, having type string - ParameterId["ScheduleIDs"] = "scheduleIds"; - // DPI_SchemaFieldIconResource, having type string - ParameterId["SchemaFieldIconResource"] = "fieldIconRes"; - // DPI_ScreenName, having type string - ParameterId["ScreenName"] = "screenName"; - // DPI_ScriptCommand, having type string - ParameterId["ScriptCommand"] = "command"; - // DPI_SecondValue, having type string - ParameterId["SecondValue"] = "secondValue"; - // DPI_SelectedValue, having type string - ParameterId["SelectedValue"] = "selectedValue"; - // DPI_ShapeName, having type string - ParameterId["ShapeName"] = "shapeName"; - // DPI_SheetId, having type string - ParameterId["SheetId"] = "sheetId"; - // DPI_ShowDataTable, having type string - ParameterId["ShowDataTable"] = "showDataTable"; - // DPI_SimpleCommand, having type string - ParameterId["SimpleCommand"] = "simpleCommand"; - // DPI_SortModeCaption, having type string - ParameterId["SortModeCaption"] = "sortModeCaption"; - // DPI_SourceName, having type string - ParameterId["SourceName"] = "sourceName"; - // DPI_SourceText, having type string - ParameterId["SourceText"] = "sourceText"; - // DPI_SpecialValueText, having type string - ParameterId["SpecialValueText"] = "specialValueText"; - // DPI_StaticImage, having type string - ParameterId["StaticImage"] = "staticImage"; - // DPI_StoryPointBase, having type string - ParameterId["StoryPointBase"] = "storyPointBase"; - // DPI_StoryPointCaption, having type string - ParameterId["StoryPointCaption"] = "storyPointCaption"; - // DPI_Storyboard, having type string - ParameterId["Storyboard"] = "storyboard"; - // DPI_StyledLabel, having type string - ParameterId["StyledLabel"] = "styledLabel"; - // DPI_SummaryCaption, having type string - ParameterId["SummaryCaption"] = "summaryCaption"; - // DPI_SummaryField, having type string - ParameterId["SummaryField"] = "summaryField"; - // DPI_TableauVersion, having type string - ParameterId["TableauVersion"] = "tableauVersion"; - // DPI_TableFilter, having type string - ParameterId["TableFilter"] = "tableFilter"; - // DPI_TableFilterPrompt, having type string - ParameterId["TableFilterPrompt"] = "tableFilterPrompt"; - // DPI_TagsLabel, having type string - ParameterId["TagsLabel"] = "tagsLabel"; - // DPI_Target, having type string - ParameterId["Target"] = "target"; - // DPI_ThumbnailGroup, having type string - ParameterId["ThumbnailGroup"] = "thumbnailGroup"; - // DPI_ThumbnailUser, having type string - ParameterId["ThumbnailUser"] = "thumbnailUser"; - // DPI_TimeFormat, having type string - ParameterId["TimeFormat"] = "timeFormat"; - // DPI_TrendLineErrorString, having type string - ParameterId["TrendLineErrorString"] = "trendLineErrorString"; - // DPI_TrendLineModelFormula, having type string - ParameterId["TrendLineModelFormula"] = "trendLineModelFormula"; - // DPI_URLString, having type string - ParameterId["URLString"] = "urlString"; - // DPI_URLTest, having type string - ParameterId["URLTest"] = "urlTest"; - // DPI_ValidationMessage, having type string - ParameterId["ValidationMessage"] = "validationMessage"; - // DPI_ValueStr, having type string - ParameterId["ValueStr"] = "valueString"; - // DPI_VerifiedNonFormattedValue, having type string - ParameterId["VerifiedNonFormattedValue"] = "verifiedUnformattedValue"; - // DPI_WorkbookFullPath, having type string - ParameterId["WorkbookFullPath"] = "workbookFullPath"; - // DPI_WindowTitle, having type string - ParameterId["WindowTitle"] = "windowTitle"; - // DPI_ZoneName, having type string - ParameterId["ZoneName"] = "zoneName"; - // DPI_ZoneParam, having type string - ParameterId["ZoneParam"] = "zoneParam"; - // DPI_DataAlertErrorText, having type string - ParameterId["DataAlertErrorText"] = "dataAlertErrorText"; - // DPI_ExtractTempDirectory, having type string - ParameterId["ExtractTempDirectory"] = "extractTempDir"; - // DPI_DSSubClass, having type string - ParameterId["DSSubClass"] = "dsSubClass"; - // DPI_DbgCommandLine, having type string - ParameterId["DbgCommandLine"] = "debugCommandLine"; - // DPI_DbgLogPath, having type string - ParameterId["DbgLogPath"] = "debugLogPath"; - // DPI_DbgOSVersion, having type string - ParameterId["DbgOSVersion"] = "debugOsVersion"; - // DPI_DbgUserName, having type string - ParameterId["DbgUserName"] = "debugUsername"; - // DPI_ErrorMsg, having type string - ParameterId["ErrorMsg"] = "errorMessage"; - // DPI_ErrorStackTrace, having type string - ParameterId["ErrorStackTrace"] = "errorStackTrace"; - // DPI_ErrorStr, having type string - ParameterId["ErrorStr"] = "errorString"; - // DPI_EventMessage, having type string - ParameterId["EventMessage"] = "eventMessage"; - // DPI_EventTimestamp, having type string - ParameterId["EventTimestamp"] = "eventTimestamp"; - // DPI_ExtractDeltaPath, having type string - ParameterId["ExtractDeltaPath"] = "extractDeltaPath"; - // DPI_ExtractPath, having type string - ParameterId["ExtractPath"] = "extractPath"; - // DPI_ExtractSuggestedPath, having type string - ParameterId["ExtractSuggestedPath"] = "suggestedExtractPath"; - // DPI_ExtractTaskSummary, having type string - ParameterId["ExtractTaskSummary"] = "extractTaskSummary"; - // DPI_FactorsString, having type string - ParameterId["FactorsString"] = "factorsStr"; - // DPI_FormattedFamilyName, having type string - ParameterId["FormattedFamilyName"] = "formattedFamilyName"; - // DPI_FunctionSignature, having type string - ParameterId["FunctionSignature"] = "funcSig"; - // DPI_FunctionTooltip, having type string - ParameterId["FunctionTooltip"] = "funcTooltip"; - // DPI_HelpContents, having type string - ParameterId["HelpContents"] = "helpContents"; - // DPI_MapAttributionText, having type string - ParameterId["MapAttributionText"] = "mapAttributionText"; - // DPI_MapAttributionTextSize, having type string - ParameterId["MapAttributionTextSize"] = "mapAttributionTextSize"; - // DPI_MapAttributionUrl, having type string - ParameterId["MapAttributionUrl"] = "mapAttributionUrl"; - // DPI_MapBoxErrorMessage, having type string - ParameterId["MapBoxErrorMessage"] = "mapboxErrorMessage"; - // DPI_MapBoxOldStyleName, having type string - ParameterId["MapBoxOldStyleName"] = "mapboxOldStyleName"; - // DPI_MapBoxSelectedStyle, having type string - ParameterId["MapBoxSelectedStyle"] = "mapboxSelectedStyle"; - // DPI_MapBoxStyleName, having type string - ParameterId["MapBoxStyleName"] = "mapboxStyleName"; - // DPI_MapLayerRequest, having type string - ParameterId["MapLayerRequest"] = "mapLayerRequest"; - // DPI_MapServerKey, having type string - ParameterId["MapServerKey"] = "mapServerKey"; - // DPI_MapTileServer, having type string - ParameterId["MapTileServer"] = "mapTileServer"; - // DPI_MapTileUrl, having type string - ParameterId["MapTileUrl"] = "mapTileUrl"; - // DPI_PercentagesString, having type string - ParameterId["PercentagesString"] = "percentagesStr"; - // DPI_PublishErrorMessage, having type string - ParameterId["PublishErrorMessage"] = "publishErrorMessage"; - // DPI_TdePath, having type string - ParameterId["TdePath"] = "tdePath"; - // DPI_UIAutomationComponentName, having type string - ParameterId["UIAutomationComponentName"] = "uiAutomationComponentName"; - // DPI_UIAutomationEndTime, having type string - ParameterId["UIAutomationEndTime"] = "uiAutomationEndTime"; - // DPI_UIAutomationName, having type string - ParameterId["UIAutomationName"] = "uiAutomationName"; - // DPI_UIAutomationStartTime, having type string - ParameterId["UIAutomationStartTime"] = "uiAutomationStartTime"; - // DPI_UIAutomationValue, having type string - ParameterId["UIAutomationValue"] = "uiAutomationValue"; - // DPI_WMSConnectionName, having type string - ParameterId["WMSConnectionName"] = "wmsConnectionName"; - // DPI_WMSOldConnectionName, having type string - ParameterId["WMSOldConnectionName"] = "wmsOldConnectionName"; - // DPI_WMSServerUrl, having type string - ParameterId["WMSServerUrl"] = "wmsServerUrl"; - // DPI_AboutBuildVersion, having type string - ParameterId["AboutBuildVersion"] = "aboutBuildVersion"; - // DPI_ActionFields, having type string - ParameterId["ActionFields"] = "actionFields"; - // DPI_AddVariableLabel, having type string - ParameterId["AddVariableLabel"] = "addVariableLabel"; - // DPI_AddVariableTooltip, having type string - ParameterId["AddVariableTooltip"] = "addVariableTooltip"; - // DPI_AllowedDataSourcesByName, having type string - ParameterId["AllowedDataSourcesByName"] = "allowedDataSourcesByName"; - // DPI_AppAboutVersion, having type string - ParameterId["AppAboutVersion"] = "appAboutVersion"; - // DPI_AppBuildBranchName, having type string - ParameterId["AppBuildBranchName"] = "appBuildBranchName"; - // DPI_AppBuildVersion, having type string - ParameterId["AppBuildVersion"] = "appBuildVersion"; - // DPI_AppExternalVersion, having type string - ParameterId["AppExternalVersion"] = "appExternalVersion"; - // DPI_AppName, having type string - ParameterId["AppName"] = "appName"; - // DPI_AppProductVersion, having type string - ParameterId["AppProductVersion"] = "appProductVersion"; - // DPI_OriginalVersion, having type string - ParameterId["OriginalVersion"] = "originalVersion"; - // DPI_AtTheLevelSpecialCaption, having type string - ParameterId["AtTheLevelSpecialCaption"] = "atTheLevelSpecialCaption"; - // DPI_AutoCompleteCalc, having type string - ParameterId["AutoCompleteCalc"] = "acCalc"; - // DPI_CSVPath, having type string - ParameterId["CSVPath"] = "csvPath"; - // DPI_CommandNamespace, having type string - ParameterId["CommandNamespace"] = "commandNamespace"; - // DPI_Condition, having type string - ParameterId["Condition"] = "condition"; - // DPI_ConditionSummary, having type string - ParameterId["ConditionSummary"] = "conditionSummary"; - // DPI_ConfirmationMsg, having type string - ParameterId["ConfirmationMsg"] = "confirmationMsg"; - // DPI_DashboardTypeText, having type string - ParameterId["DashboardTypeText"] = "dashboardType"; - // DPI_DataserverPublicAddress, having type string - ParameterId["DataserverPublicAddress"] = "dataserverPublicAddress"; - // DPI_DatasourceFileName, having type string - ParameterId["DatasourceFileName"] = "datasourceFileName"; - // DPI_DecimalMark, having type string - ParameterId["DecimalMark"] = "decimalMark"; - // DPI_DeleteVariableTooltip, having type string - ParameterId["DeleteVariableTooltip"] = "deleteVariableTooltip"; - // DPI_DialogTitle, having type string - ParameterId["DialogTitle"] = "dialogTitle"; - // DPI_DisplayValue, having type string - ParameterId["DisplayValue"] = "displayValue"; - // DPI_TooltipValue, having type string - ParameterId["TooltipValue"] = "tooltipValue"; - // DPI_DstPath, having type string - ParameterId["DstPath"] = "dstPath"; - // DPI_EditWidgetHeader, having type string - ParameterId["EditWidgetHeader"] = "editWidgetHeader"; - // DPI_EditWidgetInstruction, having type string - ParameterId["EditWidgetInstruction"] = "editWidgetInstruction"; - // DPI_EndSelectionCaption, having type string - ParameterId["EndSelectionCaption"] = "endSelectionCaption"; - // DPI_ErrorDialogTitle, having type string - ParameterId["ErrorDialogTitle"] = "errorDialogTitle"; - // DPI_ErrorHelpLink, having type string - ParameterId["ErrorHelpLink"] = "errorHelpLink"; - // DPI_ErrorShortMessage, having type string - ParameterId["ErrorShortMessage"] = "errorShortMessage"; - // DPI_FilterSearchQuery, having type string - ParameterId["FilterSearchQuery"] = "filterSearchQuery"; - // DPI_FromLabel, having type string - ParameterId["FromLabel"] = "fromLabel"; - // DPI_FunctionHelp, having type string - ParameterId["FunctionHelp"] = "functionHelp"; - // DPI_Instructions, having type string - ParameterId["Instructions"] = "instructions"; - // DPI_LargeUnitDisplay, having type string - ParameterId["LargeUnitDisplay"] = "largeUnitDisplay"; - // DPI_Limit, having type string - ParameterId["Limit"] = "limit"; - // DPI_ListViewNameLabel, having type string - ParameterId["ListViewNameLabel"] = "listViewNameLabel"; - // DPI_ListViewValueLabel, having type string - ParameterId["ListViewValueLabel"] = "listViewValueLabel"; - // DPI_MapScaleReadoutUnit, having type string - ParameterId["MapScaleReadoutUnit"] = "mapScaleReadoutUnit"; - // DPI_MeasureDimension, having type string - ParameterId["MeasureDimension"] = "measuresDimension"; - // DPI_MimeType, having type string - ParameterId["MimeType"] = "mimeType"; - // DPI_MinimizedName, having type string - ParameterId["MinimizedName"] = "minName"; - // DPI_NotificationMsg, having type string - ParameterId["NotificationMsg"] = "notificationMsg"; - // DPI_OperationName, having type string - ParameterId["OperationName"] = "operationName"; - // DPI_PageTitle, having type string - ParameterId["PageTitle"] = "pageTitle"; - // DPI_PatternSummary, having type string - ParameterId["PatternSummary"] = "patternSummary"; - // DPI_ReferenceLineId, having type string - ParameterId["ReferenceLineId"] = "refLineId"; - // DPI_ReferenceLinePairedId, having type string - ParameterId["ReferenceLinePairedId"] = "refLinePairedId"; - // DPI_ReplaceText, having type string - ParameterId["ReplaceText"] = "replaceText"; - // DPI_RequiredVariableMessage, having type string - ParameterId["RequiredVariableMessage"] = "requiredVariableMessage"; - // DPI_RestartEverySpecialCaption, having type string - ParameterId["RestartEverySpecialCaption"] = "restartEverySpecialCaption"; - // DPI_Root, having type string - ParameterId["Root"] = "root"; - // DPI_SelectionSummary, having type string - ParameterId["SelectionSummary"] = "selectionSummary"; - // DPI_SessionAttributeKey, having type string - ParameterId["SessionAttributeKey"] = "sessionAttributeKey"; - // DPI_SessionAttributeValue, having type string - ParameterId["SessionAttributeValue"] = "sessionAttributeValue"; - // DPI_SheetAttributeKey, having type string - ParameterId["SheetAttributeKey"] = "baseSheetAttributeKey"; - // DPI_SheetAttributeValue, having type string - ParameterId["SheetAttributeValue"] = "baseSheetAttributeValue"; - // DPI_SmallUnitDisplay, having type string - ParameterId["SmallUnitDisplay"] = "smallUnitDisplay"; - // DPI_SourceCaption, having type string - ParameterId["SourceCaption"] = "sourceCaption"; - // DPI_SrcPath, having type string - ParameterId["SrcPath"] = "srcPath"; - // DPI_StartSelectionCaption, having type string - ParameterId["StartSelectionCaption"] = "startSelectionCaption"; - // DPI_Subtitle, having type string - ParameterId["Subtitle"] = "subtitle"; - // DPI_TableauServerSiteName, having type string - ParameterId["TableauServerSiteName"] = "tableauServerSiteName"; - // DPI_TargetCaption, having type string - ParameterId["TargetCaption"] = "targetCaption"; - // DPI_ThumbnailPath, having type string - ParameterId["ThumbnailPath"] = "thumbnailPath"; - // DPI_ToLabel, having type string - ParameterId["ToLabel"] = "toLabel"; - // DPI_URLAddress, having type string - ParameterId["URLAddress"] = "urlAddress"; - // DPI_ValuesTableHeader, having type string - ParameterId["ValuesTableHeader"] = "valuesTableHeader"; - // DPI_ValuesTableHeader2, having type string - ParameterId["ValuesTableHeader2"] = "valuesTableHeader2"; - // DPI_VariableDescription, having type string - ParameterId["VariableDescription"] = "variableDescription"; - // DPI_VariableDisplayName, having type string - ParameterId["VariableDisplayName"] = "variableDisplayName"; - // DPI_VariableGUID, having type string - ParameterId["VariableGUID"] = "variableGuid"; - // DPI_VerboseName, having type string - ParameterId["VerboseName"] = "verboseName"; - // DPI_ViewId, having type string - ParameterId["ViewId"] = "viewId"; - // DPI_Warning1, having type string - ParameterId["Warning1"] = "warning1"; - // DPI_Warning2, having type string - ParameterId["Warning2"] = "warning2"; - // DPI_RefreshToken, having type string - ParameterId["RefreshToken"] = "refresh_token"; - // DPI_TokenType, having type string - ParameterId["TokenType"] = "token_type"; - // DPI_XSRFToken, having type string - ParameterId["XSRFToken"] = "xsrf_token"; - // DPI_AxisSubtitle, having type string - ParameterId["AxisSubtitle"] = "axisSubtitle"; - // DPI_AxisTitle, having type string - ParameterId["AxisTitle"] = "axisTitle"; - // DPI_TickMarkOriginDataValue, having type string - ParameterId["TickMarkOriginDataValue"] = "tickMarkOriginDataValue"; - // DPI_TickMarkOriginDataValueNoTime, having type string - ParameterId["TickMarkOriginDataValueNoTime"] = "tickMarkOriginDataValueNoTime"; - // DPI_TickMarkSpacingDataValue, having type string - ParameterId["TickMarkSpacingDataValue"] = "tickMarkSpacingDataValue"; - // DPI_ExtractActionLocalized, having type string - ParameterId["ExtractActionLocalized"] = "extractActionLocalized"; - // DPI_ExtractSource, having type string - ParameterId["ExtractSource"] = "extractSource"; - // DPI_FileContents, having type string - ParameterId["FileContents"] = "fileContents"; - // DPI_SaveImagePath, having type string - ParameterId["SaveImagePath"] = "saveImagePath"; - // DPI_WidgetUID, having type string - ParameterId["WidgetUID"] = "widgetUniqueId"; - // DPI_DatePropertiesDisplayText, having type string - ParameterId["DatePropertiesDisplayText"] = "datePropertiesDisplayText"; - // DPI_DatePropertiesHelperText, having type string - ParameterId["DatePropertiesHelperText"] = "datePropertiesHelperText"; - // DPI_EventName, having type string - ParameterId["EventName"] = "eventName"; - // DPI_ExceptionType, having type string - ParameterId["ExceptionType"] = "exceptionType"; - // DPI_SearchPlaceholder, having type string - ParameterId["SearchPlaceholder"] = "searchPlaceholder"; - // DPI_TargetVersion, having type string - ParameterId["TargetVersion"] = "targetVersion"; - // DPI_DataValueDisplayString, having type string - ParameterId["DataValueDisplayString"] = "dataValueDisplayString"; - // DPI_DomainString, having type string - ParameterId["DomainString"] = "domainString"; - // DPI_RawDataValueString, having type string - ParameterId["RawDataValueString"] = "rawDataValueString"; - // DPI_RichTextDialogTitle, having type string - ParameterId["RichTextDialogTitle"] = "richTextDialogTitle"; - // DPI_RichTextContent, having type string - ParameterId["RichTextContent"] = "richTextContent"; - // DPI_MarkSizeAsString, having type string - ParameterId["MarkSizeAsString"] = "markSizeAsString"; - // DPI_UnitsLabel, having type string - ParameterId["UnitsLabel"] = "unitsLabel"; - // DPI_EmailAddress, having type string - ParameterId["EmailAddress"] = "emailAddress"; - // DPI_FirstName, having type string - ParameterId["FirstName"] = "firstName"; - // DPI_LastName, having type string - ParameterId["LastName"] = "lastName"; - // DPI_SummaryCardAvg, having type string - ParameterId["SummaryCardAvg"] = "summaryCardAvg"; - // DPI_SummaryCardCaption, having type string - ParameterId["SummaryCardCaption"] = "summaryCardCaption"; - // DPI_SummaryCardCount, having type string - ParameterId["SummaryCardCount"] = "summaryCardCount"; - // DPI_SummaryCardKurtosis, having type string - ParameterId["SummaryCardKurtosis"] = "summaryCardKurtosis"; - // DPI_SummaryCardMax, having type string - ParameterId["SummaryCardMax"] = "summaryCardMax"; - // DPI_SummaryCardMedian, having type string - ParameterId["SummaryCardMedian"] = "summaryCardMedian"; - // DPI_SummaryCardMin, having type string - ParameterId["SummaryCardMin"] = "summaryCardMin"; - // DPI_SummaryCardQuart1, having type string - ParameterId["SummaryCardQuart1"] = "summaryCardQuart1"; - // DPI_SummaryCardQuart3, having type string - ParameterId["SummaryCardQuart3"] = "summaryCardQuart3"; - // DPI_SummaryCardSkewness, having type string - ParameterId["SummaryCardSkewness"] = "summaryCardSkewness"; - // DPI_SummaryCardStdev, having type string - ParameterId["SummaryCardStdev"] = "summaryCardStdev"; - // DPI_SummaryCardSum, having type string - ParameterId["SummaryCardSum"] = "summaryCardSum"; - // DPI_ValueClassAttr, having type string - ParameterId["ValueClassAttr"] = "valueClassAttr"; - // DPI_TrendLineDialogTitle, having type string - ParameterId["TrendLineDialogTitle"] = "trendLineDialogTitle"; - // DPI_LinearFitTypeLabel, having type string - ParameterId["LinearFitTypeLabel"] = "linearFitTypeLabel"; - // DPI_LogFitTypeLabel, having type string - ParameterId["LogFitTypeLabel"] = "logFitTypeLabel"; - // DPI_ExpFitTypeLabel, having type string - ParameterId["ExpFitTypeLabel"] = "expFitTypeLabel"; - // DPI_PowerFitTypeLabel, having type string - ParameterId["PowerFitTypeLabel"] = "powerFitTypeLabel"; - // DPI_PolynomialFitTypeLabel, having type string - ParameterId["PolynomialFitTypeLabel"] = "polynomialFitTypeLabel"; - // DPI_ExcludeColorLabel, having type string - ParameterId["ExcludeColorLabel"] = "excludeColorLabel"; - // DPI_EnableConfidenceBandsLabel, having type string - ParameterId["EnableConfidenceBandsLabel"] = "enableConfidenceBandsLabel"; - // DPI_ForceInterceptZeroLabel, having type string - ParameterId["ForceInterceptZeroLabel"] = "forceInterceptZero label"; - // DPI_EnableInstantAnalyticsLabel, having type string - ParameterId["EnableInstantAnalyticsLabel"] = "enableInstantAnalyticsLabel"; - // DPI_EnableTooltipsLabel, having type string - ParameterId["EnableTooltipsLabel"] = "enableTooltipLabel"; - // DPI_AuthenticationSummary, having type string - ParameterId["AuthenticationSummary"] = "authenticationSummary"; - // DPI_BtnCancelText, having type string - ParameterId["BtnCancelText"] = "btnCancelText"; - // DPI_BtnOkText, having type string - ParameterId["BtnOkText"] = "btnOkText"; - // DPI_ButtonText, having type string - ParameterId["ButtonText"] = "buttonText"; - // DPI_CalculationCaption, having type string - ParameterId["CalculationCaption"] = "calculationCaption"; - // DPI_CalculationDependencies, having type string - ParameterId["CalculationDependencies"] = "calculationDependencies"; - // DPI_CalculationFormula, having type string - ParameterId["CalculationFormula"] = "calculationFormula"; - // DPI_CheckPublishMessage, having type string - ParameterId["CheckPublishMessage"] = "checkPublishSummary"; - // DPI_ClusterModelText, having type string - ParameterId["ClusterModelText"] = "clusterModelText"; - // DPI_ClusterSummaryScaledText, having type string - ParameterId["ClusterSummaryScaledText"] = "clusterSummaryScaledText"; - // DPI_ClusterSummaryText, having type string - ParameterId["ClusterSummaryText"] = "clusterSummaryText"; - // DPI_ColumnCaption, having type string - ParameterId["ColumnCaption"] = "columnCaption"; - // DPI_DatasourceCaption, having type string - ParameterId["DatasourceCaption"] = "datasourceCaption"; - // DPI_DefaultCaption, having type string - ParameterId["DefaultCaption"] = "defaultCaption"; - // DPI_DisplayString, having type string - ParameterId["DisplayString"] = "displayText"; - // DPI_DragDescription, having type string - ParameterId["DragDescription"] = "dragDescription"; - // DPI_ExceptionMessage, having type string - ParameterId["ExceptionMessage"] = "exceptionMessage"; - // DPI_Explanation, having type string - ParameterId["Explanation"] = "explanation"; - // DPI_FieldCaption, having type string - ParameterId["FieldCaption"] = "fieldCaption"; - // DPI_FieldSummary, having type string - ParameterId["FieldSummary"] = "fieldSummary"; - // DPI_FieldSummaryLabel, having type string - ParameterId["FieldSummaryLabel"] = "fieldSummaryLabel"; - // DPI_FilterDescription, having type string - ParameterId["FilterDescription"] = "filterDescription"; - // DPI_FilterName, having type string - ParameterId["FilterName"] = "filterName"; - // DPI_ForecastModelText, having type string - ParameterId["ForecastModelText"] = "forecastModelText"; - // DPI_ForecastSummaryPctText, having type string - ParameterId["ForecastSummaryPctText"] = "forecastSummaryPctText"; - // DPI_ForecastSummaryText, having type string - ParameterId["ForecastSummaryText"] = "forecastSummaryText"; - // DPI_HasActiveExtractText, having type string - ParameterId["HasActiveExtractText"] = "hasActiveExtractText"; - // DPI_HtmlColor, having type string - ParameterId["HtmlColor"] = "htmlColor"; - // DPI_IncludeLocalFilesCheckedWarning, having type string - ParameterId["IncludeLocalFilesCheckedWarning"] = "includeLocalFilesCheckedWarning"; - // DPI_IncludeLocalFilesWarning, having type string - ParameterId["IncludeLocalFilesWarning"] = "includeLocalFilesWarning"; - // DPI_InvalidFieldCaption, having type string - ParameterId["InvalidFieldCaption"] = "invalidFieldCaption"; - // DPI_LimitSummary, having type string - ParameterId["LimitSummary"] = "limitSummary"; - // DPI_LoadedExistingObjectWarning, having type string - ParameterId["LoadedExistingObjectWarning"] = "loadedExistingObjectWarning"; - // DPI_ManageDatasourcesSummary, having type string - ParameterId["ManageDatasourcesSummary"] = "manageDatasourcesSummary"; - // DPI_ModalDialog, having type string - ParameterId["ModalDialog"] = "modalDialog"; - // DPI_NewDatasourceCaption, having type string - ParameterId["NewDatasourceCaption"] = "newDatasourceCaption"; - // DPI_PermissionsButtonLabel, having type string - ParameterId["PermissionsButtonLabel"] = "permissionsButtonLabel"; - // DPI_PermissionsEditorRoleId, having type string - ParameterId["PermissionsEditorRoleId"] = "permissionsEditorRoleId"; - // DPI_PermissionsLabel, having type string - ParameterId["PermissionsLabel"] = "permissionsLabel"; - // DPI_PerspectiveCaption, having type string - ParameterId["PerspectiveCaption"] = "perspectiveCaption"; - // DPI_PublishButtonLabel, having type string - ParameterId["PublishButtonLabel"] = "publishButtonLabel"; - // DPI_PublishChoiceLabel, having type string - ParameterId["PublishChoiceLabel"] = "publishChoiceLabel"; - // DPI_PublishObjectViewsSummary, having type string - ParameterId["PublishObjectViewsSummary"] = "publishObjectViewsSummary"; - // DPI_QualifiedFieldCaption, having type string - ParameterId["QualifiedFieldCaption"] = "qualifiedFieldCaption"; - // DPI_RelationshipTooltipText, having type string - ParameterId["RelationshipTooltipText"] = "relationshipTooltipText"; - // DPI_ResetObjectAttributesWarning, having type string - ParameterId["ResetObjectAttributesWarning"] = "resetObjectAttributesWarning"; - // DPI_RowCountCaption, having type string - ParameterId["RowCountCaption"] = "rowCountCaption"; - // DPI_ServerCaption, having type string - ParameterId["ServerCaption"] = "serverCaption"; - // DPI_SizeModeName, having type string - ParameterId["SizeModeName"] = "sizeModeName"; - // DPI_SummaryText, having type string - ParameterId["SummaryText"] = "summaryText"; - // DPI_SyncClientUseExtractLabel, having type string - ParameterId["SyncClientUseExtractLabel"] = "syncClientUseExtractLabel"; - // DPI_Text, having type string - ParameterId["Text"] = "text"; - // DPI_TextDropdownControlLabel, having type string - ParameterId["TextDropdownControlLabel"] = "controlLabel"; - // DPI_ThumbnailUserName, having type string - ParameterId["ThumbnailUserName"] = "thumbnailUserName"; - // DPI_TitleString, having type string - ParameterId["TitleString"] = "titleString"; - // DPI_TooltipText, having type string - ParameterId["TooltipText"] = "tooltipText"; - // DPI_UpdatedCalcCaption, having type string - ParameterId["UpdatedCalcCaption"] = "updatedCalculationCaption"; - // DPI_UpdatedCalcFormula, having type string - ParameterId["UpdatedCalcFormula"] = "updatedCalculationFormula"; - // DPI_UserCaption, having type string - ParameterId["UserCaption"] = "userCaption"; - // DPI_WarningTooltipText, having type string - ParameterId["WarningTooltipText"] = "warningTooltipText"; - // DPI_DatasourceFile, having type string - ParameterId["DatasourceFile"] = "datasourceFile"; - // DPI_File, having type string - ParameterId["File"] = "file"; - // DPI_FileNameBase, having type string - ParameterId["FileNameBase"] = "filenameBase"; - // DPI_NewFile, having type string - ParameterId["NewFile"] = "newFile"; - // DPI_OriginalFile, having type string - ParameterId["OriginalFile"] = "originalFile"; - // DPI_OutputFile, having type string - ParameterId["OutputFile"] = "outputFile"; - // DPI_SampleFileName, having type string - ParameterId["SampleFileName"] = "sampleFilename"; - // DPI_WorkbookFile, having type string - ParameterId["WorkbookFile"] = "workbookFile"; - // DPI_ImageKey, having type string - ParameterId["ImageKey"] = "imageKey"; - // DPI_OverlayImageKey, having type string - ParameterId["OverlayImageKey"] = "overlayImageKey"; - // DPI_TempFileKey, having type string - ParameterId["TempFileKey"] = "tempfileKey"; - // DPI_CapturedSheet, having type string - ParameterId["CapturedSheet"] = "capturedSheet"; - // DPI_CurrentSheet, having type string - ParameterId["CurrentSheet"] = "currentSheet"; - // DPI_Dashboard, having type string - ParameterId["Dashboard"] = "dashboard"; - // DPI_EnsureSheet, having type string - ParameterId["EnsureSheet"] = "ensureSheetName"; - // DPI_NewSheet, having type string - ParameterId["NewSheet"] = "newSheet"; - // DPI_Sheet, having type string - ParameterId["Sheet"] = "sheet"; - // DPI_SheetName, having type string - ParameterId["SheetName"] = "sheetName"; - // DPI_SourceDashboard, having type string - ParameterId["SourceDashboard"] = "sourceDashboard"; - // DPI_SourceSheet, having type string - ParameterId["SourceSheet"] = "sourceSheet"; - // DPI_TargetSheet, having type string - ParameterId["TargetSheet"] = "targetSheet"; - // DPI_WorkbookName, having type string - ParameterId["WorkbookName"] = "workbookName"; - // DPI_Worksheet, having type string - ParameterId["Worksheet"] = "worksheet"; - // DPI_BaseViewThumbLink, having type string - ParameterId["BaseViewThumbLink"] = "baseViewThumbLink"; - // DPI_BlogLink, having type string - ParameterId["BlogLink"] = "blogLink"; - // DPI_CacheUrl, having type string - ParameterId["CacheUrl"] = "cacheUrl"; - // DPI_DownloadLink, having type string - ParameterId["DownloadLink"] = "downloadLink"; - // DPI_RepositoryUrl, having type string - ParameterId["RepositoryUrl"] = "repositoryUrl"; - // DPI_ShareLink, having type string - ParameterId["ShareLink"] = "shareLink"; - // DPI_URL, having type string - ParameterId["URL"] = "url"; - // DPI_ClusterModelHtml, having type string - ParameterId["ClusterModelHtml"] = "clusterModelHtml"; - // DPI_ClusterSummaryHtml, having type string - ParameterId["ClusterSummaryHtml"] = "clusterSummaryHtml"; - // DPI_ClusterSummaryScaledHtml, having type string - ParameterId["ClusterSummaryScaledHtml"] = "clusterSummaryScaledHtml"; - // DPI_FieldDescription, having type string - ParameterId["FieldDescription"] = "fieldDescription"; - // DPI_ForecastModelHtml, having type string - ParameterId["ForecastModelHtml"] = "forecastModelHtml"; - // DPI_ForecastSummaryHtml, having type string - ParameterId["ForecastSummaryHtml"] = "forecastSummaryHtml"; - // DPI_ForecastSummaryPctHtml, having type string - ParameterId["ForecastSummaryPctHtml"] = "forecastSummaryPctHtml"; - // DPI_Html, having type string - ParameterId["Html"] = "html"; - // DPI_HtmlSelection, having type string - ParameterId["HtmlSelection"] = "htmlSelection"; - // DPI_HtmlTooltip, having type string - ParameterId["HtmlTooltip"] = "htmlTooltip"; - // DPI_HtmlTooltipModified, having type string - ParameterId["HtmlTooltipModified"] = "htmlTooltipModified"; - // DPI_TitleHtml, having type string - ParameterId["TitleHtml"] = "titleHtml"; - // DPI_CacheUrlInfoJson, having type string - ParameterId["CacheUrlInfoJson"] = "cacheUrlInfoJson"; - // DPI_FilterSearchJson, having type string - ParameterId["FilterSearchJson"] = "filterSearchJson"; - // DPI_FilterSearchWithIndexJson, having type string - ParameterId["FilterSearchWithIndexJson"] = "filterSearchWithIndexJson"; - // DPI_FilterShowChildrenJson, having type string - ParameterId["FilterShowChildrenJson"] = "filterShowChildrenJson"; - // DPI_FiltersJson, having type string - ParameterId["FiltersJson"] = "filtersJson"; - // DPI_FrameJson, having type string - ParameterId["FrameJson"] = "frameJson"; - // DPI_GeometryJson, having type string - ParameterId["GeometryJson"] = "geometryJson"; - // DPI_GetFilterItemsJson, having type string - ParameterId["GetFilterItemsJson"] = "getFilterItemsJson"; - // DPI_KeepOnlyResponseJson, having type string - ParameterId["KeepOnlyResponseJson"] = "keepOnlyResponseJson"; - // DPI_MenuCommandsJson, having type string - ParameterId["MenuCommandsJson"] = "menuCommandsJson"; - // DPI_ModifiedSheetsJson, having type string - ParameterId["ModifiedSheetsJson"] = "modifiedSheetsJson"; - // DPI_ParameterCtrlJson, having type string - ParameterId["ParameterCtrlJson"] = "parameterCtrlJson"; - // DPI_ViewJson, having type string - ParameterId["ViewJson"] = "viewJson"; - // DPI_CustomizedViewXML, having type string - ParameterId["CustomizedViewXML"] = "customizedViewXml"; - // DPI_DatasourceDeltaXML, having type string - ParameterId["DatasourceDeltaXML"] = "datasourceDeltaXml"; - // DPI_DatasourceXML, having type string - ParameterId["DatasourceXML"] = "datasourceXml"; - // DPI_KeychainXML, having type string - ParameterId["KeychainXML"] = "keychainXml"; - // DPI_PermissionsModelXML, having type string - ParameterId["PermissionsModelXML"] = "permissionsModelXml"; - // DPI_SharedViewsXML, having type string - ParameterId["SharedViewsXML"] = "sharedViewsXml"; - // DPI_TargetURL, having type string - ParameterId["TargetURL"] = "targetUrl"; - // DPI_Anchor, having type string - ParameterId["Anchor"] = "anchor"; - // DPI_CenterValue, having type string - ParameterId["CenterValue"] = "centerValue"; - // DPI_ComputedBinSize, having type string - ParameterId["ComputedBinSize"] = "computedBinSize"; - // DPI_ConstantValue, having type string - ParameterId["ConstantValue"] = "constantValue"; - // DPI_PairedConstantValue, having type string - ParameterId["PairedConstantValue"] = "pairedConstantValue"; - // DPI_CountDistinct, having type string - ParameterId["CountDistinct"] = "countDistinct"; - // DPI_DataMax, having type string - ParameterId["DataMax"] = "dataMax"; - // DPI_DataMin, having type string - ParameterId["DataMin"] = "dataMin"; - // DPI_DataValueString, having type string - ParameterId["DataValueString"] = "dataValueStr"; - // DPI_EndValue, having type string - ParameterId["EndValue"] = "endValue"; - // DPI_RangeMax, having type string - ParameterId["RangeMax"] = "rangeMax"; - // DPI_RangeMin, having type string - ParameterId["RangeMin"] = "rangeMin"; - // DPI_RangeStepSize, having type string - ParameterId["RangeStepSize"] = "rangeStepSize"; - // DPI_StartValue, having type string - ParameterId["StartValue"] = "startValue"; - // DPI_TargetValue, having type string - ParameterId["TargetValue"] = "targetValue"; - // DPI_ValueInc, having type string - ParameterId["ValueInc"] = "valueInc"; - // DPI_ValueMax, having type string - ParameterId["ValueMax"] = "valueMax"; - // DPI_ValueMin, having type string - ParameterId["ValueMin"] = "valueMin"; - // DPI_QuantilesValue, having type string - ParameterId["QuantilesValue"] = "quantilesValue"; - // DPI_UserInputBinSize, having type string - ParameterId["UserInputBinSize"] = "userBinSize"; - // DPI_AddedDataSources, having type string[] - ParameterId["AddedDataSources"] = "addedDataSourceNames"; - // DPI_AddressingCaptions, having type string[] - ParameterId["AddressingCaptions"] = "addressingCaptions"; - // DPI_AggregationCaptions, having type string[] - ParameterId["AggregationCaptions"] = "aggregationCaptions"; - // DPI_AtTheLevelCaptions, having type string[] - ParameterId["AtTheLevelCaptions"] = "atTheLevelCaptions"; - // DPI_AuthenticationSettingLabels, having type string[] - ParameterId["AuthenticationSettingLabels"] = "authenticationSettingLabels"; - // DPI_AutosaveFileIdsVector, having type string[] - ParameterId["AutosaveFileIdsVector"] = "autosaveFileIdsVector"; - // DPI_ChangedTuples, having type string[] - ParameterId["ChangedTuples"] = "changedTuples"; - // DPI_CharsetsAvailable, having type string[] - ParameterId["CharsetsAvailable"] = "charsetsAvailable"; - // DPI_CharsetDisplayNames, having type string[] - ParameterId["CharsetDisplayNames"] = "charsetDisplayNames"; - // DPI_ColorFactors, having type string[] - ParameterId["ColorFactors"] = "colorFactors"; - // DPI_ColumnFullNames, having type string[] - ParameterId["ColumnFullNames"] = "columnFullNames"; - // DPI_ConnectionNames, having type string[] - ParameterId["ConnectionNames"] = "connectionNames"; - // DPI_ConnectionCaptions, having type string[] - ParameterId["ConnectionCaptions"] = "connectionCaptions"; - // DPI_ConnectionBigQueryLegacySQLCheckBox, having type string[] - ParameterId["ConnectionBigQueryLegacySQLCheckBox"] = "connectionBigqueryLegacySqlCheckbox"; - // DPI_CustomFieldOrder, having type string[] - ParameterId["CustomFieldOrder"] = "customFieldOrder"; - // DPI_DataSourceClasses, having type string[] - ParameterId["DataSourceClasses"] = "dataSourceClasses"; - // DPI_DataSourceNames, having type string[] - ParameterId["DataSourceNames"] = "dataSourceNames"; - // DPI_DataSourceNames2, having type string[] - ParameterId["DataSourceNames2"] = "dataSourceNames2"; - // DPI_DataSourcesWithEmptyRelation, having type string[] - ParameterId["DataSourcesWithEmptyRelation"] = "dataSourcesWithEmptyRelation"; - // DPI_DateFormats, having type string[] - ParameterId["DateFormats"] = "dateFormats"; - // DPI_DayNames, having type string[] - ParameterId["DayNames"] = "dayNames"; - // DPI_DrillPathVector, having type string[] - ParameterId["DrillPathVector"] = "drillpathVector"; - // DPI_ErrorDetails, having type string[] - ParameterId["ErrorDetails"] = "errorDetails"; - // DPI_ExceptionMessageParams, having type string[] - ParameterId["ExceptionMessageParams"] = "exceptionMessageParams"; - // DPI_ExcludedSheets, having type string[] - ParameterId["ExcludedSheets"] = "excludeSheets"; - // DPI_FieldDisplayNames, having type string[] - ParameterId["FieldDisplayNames"] = "fieldDisplayNames"; - // DPI_FieldFolderVector, having type string[] - ParameterId["FieldFolderVector"] = "fieldFolderVector"; - // DPI_FileIds, having type string[] - ParameterId["FileIds"] = "fileIds"; - // DPI_FilePaths, having type string[] - ParameterId["FilePaths"] = "filePaths"; - // DPI_FileNames, having type string[] - ParameterId["FileNames"] = "fileNames"; - // DPI_FilterAdd, having type string[] - ParameterId["FilterAdd"] = "filterAdd"; - // DPI_FilterAliases, having type string[] - ParameterId["FilterAliases"] = "filterValues"; - // DPI_FilterRemove, having type string[] - ParameterId["FilterRemove"] = "filterRemove"; - // DPI_FixedCaptions, having type string[] - ParameterId["FixedCaptions"] = "fixedCaptions"; - // DPI_FontFamilies, having type string[] - ParameterId["FontFamilies"] = "fontFamilies"; - // DPI_FormatStrings, having type string[] - ParameterId["FormatStrings"] = "formatStrings"; - // DPI_FormattedValues, having type string[] - ParameterId["FormattedValues"] = "formattedValues"; - // DPI_FoundTuples, having type string[] - ParameterId["FoundTuples"] = "foundTuples"; - // DPI_FullSchedulesLabels, having type string[] - ParameterId["FullSchedulesLabels"] = "fullSchedulesLabels"; - // DPI_ImageResourceList, having type string[] - ParameterId["ImageResourceList"] = "imageResources"; - // DPI_IncludeList, having type string[] - ParameterId["IncludeList"] = "includeList"; - // DPI_IncrSchedulesLabels, having type string[] - ParameterId["IncrSchedulesLabels"] = "incrSchedulesLabels"; - // DPI_InvalidDates, having type string[] - ParameterId["InvalidDates"] = "invalidDates"; - // DPI_InvalidValues, having type string[] - ParameterId["InvalidValues"] = "invalidValues"; - // DPI_ItemValues, having type string[] - ParameterId["ItemValues"] = "itemValues"; - // DPI_JoinEditableProps, having type string[] - ParameterId["JoinEditableProps"] = "joinEditableProps"; - // DPI_JoinFieldCaptions, having type string[] - ParameterId["JoinFieldCaptions"] = "joinFieldCaptions"; - // DPI_LocaleOptions, having type string[] - ParameterId["LocaleOptions"] = "localeOptions"; - // DPI_LocaleDisplayNames, having type string[] - ParameterId["LocaleDisplayNames"] = "localeDisplayNames"; - // DPI_MapBoxStyleMaps, having type string[] - ParameterId["MapBoxStyleMaps"] = "mapboxStyleMaps"; - // DPI_MapConnectionErrorDetails, having type string[] - ParameterId["MapConnectionErrorDetails"] = "mapConnectionErrorDetails"; - // DPI_SheetNames, having type string[] - ParameterId["SheetNames"] = "sheetNames"; - // DPI_MapSourceNames, having type string[] - ParameterId["MapSourceNames"] = "mapSourceNames"; - // DPI_MarkGeometries, having type string[] - ParameterId["MarkGeometries"] = "markGeometries"; - // DPI_MenuItems, having type string[] - ParameterId["MenuItems"] = "menuItems"; - // DPI_Modes, having type string[] - ParameterId["Modes"] = "modes"; - // DPI_MonthNames, having type string[] - ParameterId["MonthNames"] = "monthNames"; - // DPI_NumberFormats, having type string[] - ParameterId["NumberFormats"] = "numberFormats"; - // DPI_ObjectTextIDs, having type string[] - ParameterId["ObjectTextIDs"] = "objectTextIds"; - // DPI_OldExtracts, having type string[] - ParameterId["OldExtracts"] = "oldExtracts"; - // DPI_OrderingTypeCaptions, having type string[] - ParameterId["OrderingTypeCaptions"] = "orderingTypeCaptions"; - // DPI_PageNames, having type string[] - ParameterId["PageNames"] = "pageNames"; - // DPI_PaneDescriptorKeys, having type string[] - ParameterId["PaneDescriptorKeys"] = "paneDescriptorKeys"; - // DPI_ParamCaptions, having type string[] - ParameterId["ParamCaptions"] = "paramCaptions"; - // DPI_PrecannedDataValues, having type string[] - ParameterId["PrecannedDataValues"] = "precannedDataValues"; - // DPI_PublishChoiceLabels, having type string[] - ParameterId["PublishChoiceLabels"] = "publishChoiceLabels"; - // DPI_RankTypeCaptions, having type string[] - ParameterId["RankTypeCaptions"] = "rankTypeCaptions"; - // DPI_RecentTags, having type string[] - ParameterId["RecentTags"] = "recentTags"; - // DPI_RelativeCaptions, having type string[] - ParameterId["RelativeCaptions"] = "relativeCaptions"; - // DPI_RemovedDataSources, having type string[] - ParameterId["RemovedDataSources"] = "removedDataSourceNames"; - // DPI_RepresentativeTuple, having type string[] - ParameterId["RepresentativeTuple"] = "representativeTuple"; - // DPI_RestartEveryCaptions, having type string[] - ParameterId["RestartEveryCaptions"] = "restartEveryCaptions"; - // DPI_SchemaMemberGlobalNames, having type string[] - ParameterId["SchemaMemberGlobalNames"] = "schemaMemberGlobalNames"; - // DPI_SelectValuesList, having type string[] - ParameterId["SelectValuesList"] = "selectValues"; - // DPI_SelectionValueList, having type string[] - ParameterId["SelectionValueList"] = "selectionValueList"; - // DPI_SortAggCaptions, having type string[] - ParameterId["SortAggCaptions"] = "sortAggCaptions"; - // DPI_SortDirectionCaptions, having type string[] - ParameterId["SortDirectionCaptions"] = "sortDirectionCaptions"; - // DPI_SortFieldCaptions, having type string[] - ParameterId["SortFieldCaptions"] = "sortFieldCaptions"; - // DPI_SortFieldNameVector, having type string[] - ParameterId["SortFieldNameVector"] = "sortFieldnameVector"; - // DPI_SupportedJoinOperators, having type string[] - ParameterId["SupportedJoinOperators"] = "supportedJoinOperators"; - // DPI_TableCalcTypeCaptions, having type string[] - ParameterId["TableCalcTypeCaptions"] = "tableCalcTypeCaptions"; - // DPI_Tags, having type string[] - ParameterId["Tags"] = "tags"; - // DPI_TermVec, having type string[] - ParameterId["TermVec"] = "termVector"; - // DPI_UIAutomationList, having type string[] - ParameterId["UIAutomationList"] = "uiAutomationList"; - // DPI_ReferenceLineValidCustomLabelTags, having type string[] - ParameterId["ReferenceLineValidCustomLabelTags"] = "validReferenceLineCustomLabelTags"; - // DPI_LocalizedKeywords, having type string[] - ParameterId["LocalizedKeywords"] = "localizedKeywords"; - // DPI_AvailableCalendars, having type string[] - ParameterId["AvailableCalendars"] = "availableCalendars"; - // DPI_SheetsToBeDeletedOrHidden, having type string[] - ParameterId["SheetsToBeDeletedOrHidden"] = "sheetsToBeDeletedOrHidden"; - // DPI_AddSheets, having type string[] - ParameterId["AddSheets"] = "addSheets"; - // DPI_NamesOfSubsheets, having type string[] - ParameterId["NamesOfSubsheets"] = "namesOfSubsheets"; - // DPI_RemoveSheets, having type string[] - ParameterId["RemoveSheets"] = "removeSheets"; - // DPI_ScrollOffsetSheets, having type string[] - ParameterId["ScrollOffsetSheets"] = "scrollOffsetSheets"; - // DPI_Sheets, having type string[] - ParameterId["Sheets"] = "sheets"; - // DPI_SourceWorksheets, having type string[] - ParameterId["SourceWorksheets"] = "sourceWorksheets"; - // DPI_TargetExcludes, having type string[] - ParameterId["TargetExcludes"] = "targetExclude"; - // DPI_TargetWorksheets, having type string[] - ParameterId["TargetWorksheets"] = "targetWorksheets"; - // DPI_TileURLs, having type string[] - ParameterId["TileURLs"] = "tileUrls"; - // DPI_Details, having type string[] - ParameterId["Details"] = "details"; - // DPI_FieldCaptions, having type string[] - ParameterId["FieldCaptions"] = "fieldCaptions"; - // DPI_HighlightCaptions, having type string[] - ParameterId["HighlightCaptions"] = "highlightCaptions"; - // DPI_LevelCaptions, having type string[] - ParameterId["LevelCaptions"] = "levelCaptions"; - // DPI_LevelLeafValues, having type string[] - ParameterId["LevelLeafValues"] = "levelLeafValues"; - // DPI_SubstitutionVariables, having type string[] - ParameterId["SubstitutionVariables"] = "substitutionVariables"; - // DPI_SubstitutionVariableValues, having type string[] - ParameterId["SubstitutionVariableValues"] = "substitutionVariableValues"; - // DPI_HtmlTooltips, having type string[] - ParameterId["HtmlTooltips"] = "htmlTooltips"; - // DPI_InvalidFields, having type string[] - ParameterId["InvalidFields"] = "invalidFields"; - // DPI_NamesOfColumns, having type string[] - ParameterId["NamesOfColumns"] = "namesOfColumns"; - // DPI_NamesOfFields, having type string[] - ParameterId["NamesOfFields"] = "namesOfFields"; - // DPI_ReferencedDatasources, having type string[] - ParameterId["ReferencedDatasources"] = "referencedDataSourceList"; - // DPI_CSSAttrs, having type Dictionary(of string) - ParameterId["CSSAttrs"] = "cssAttrs"; - // DPI_DataSourceMap, having type Dictionary(of string) - ParameterId["DataSourceMap"] = "dataSourceMap"; - // DPI_EventParameters, having type Dictionary(of string) - ParameterId["EventParameters"] = "eventParameters"; - // DPI_ExceptionAttrs, having type Dictionary(of string) - ParameterId["ExceptionAttrs"] = "exceptionAttrs"; - // DPI_InvalidSheetMessage, having type Dictionary(of string) - ParameterId["InvalidSheetMessage"] = "invalidSheetMessages"; - // DPI_MapBoxDefaultStyle, having type Dictionary(of string) - ParameterId["MapBoxDefaultStyle"] = "mapboxDefaultStyles"; - // DPI_PaneFormattings, having type Dictionary(of string) - ParameterId["PaneFormattings"] = "paneFormattings"; - // DPI_SourceNameWithCaption, having type Dictionary(of string) - ParameterId["SourceNameWithCaption"] = "sourceNameWithCaption"; - // DPI_ConnectionColorMap, having type Dictionary(of string) - ParameterId["ConnectionColorMap"] = "connectionColorMap"; - // DPI_TargetNameWithCaption, having type Dictionary(of string) - ParameterId["TargetNameWithCaption"] = "targetNameWithCaption"; - // DPI_ViewIds, having type Dictionary(of string) - ParameterId["ViewIds"] = "viewIds"; - // DPI_AddInSettings, having type Dictionary(of string) - ParameterId["AddInSettings"] = "addInSettings"; - // DPI_DatasourceIcons, having type Dictionary(of string) - ParameterId["DatasourceIcons"] = "datasourceIcons"; - // DPI_FormattedText, having type string - ParameterId["FormattedText"] = "formattedText"; - // DPI_IconTooltip, having type string - ParameterId["IconTooltip"] = "iconTooltip"; - // DPI_Title, having type string - ParameterId["Title"] = "title"; - // DPI_Tooltip, having type string - ParameterId["Tooltip"] = "tooltip"; - // DPI_ZoneText, having type string - ParameterId["ZoneText"] = "zoneText"; - // DPI_AlignmentFlags, having type int - ParameterId["AlignmentFlags"] = "alignmentFlags"; - // DPI_AlphaLevel, having type int - ParameterId["AlphaLevel"] = "alphaLevel"; - // DPI_AnovaDF, having type int - ParameterId["AnovaDF"] = "anovaDf"; - // DPI_AtTheLevelIndex, having type int - ParameterId["AtTheLevelIndex"] = "atTheLevelIndex"; - // DPI_AutomaticDrillIdxInVector, having type int - ParameterId["AutomaticDrillIdxInVector"] = "automaticDrillIdxVector"; - // DPI_AutoSize, having type int - ParameterId["AutoSize"] = "automaticSize"; - // DPI_BaseCoord, having type int - ParameterId["BaseCoord"] = "baseCoord"; - // DPI_CalcEditorCursorPosPostDrop, having type int - ParameterId["CalcEditorCursorPosPostDrop"] = "calcEditorCursorPosPostDrop"; - // DPI_CalcEditorDropPos, having type int - ParameterId["CalcEditorDropPos"] = "calcEditorDropPos"; - // DPI_CalcEditorTextSelectionEndPos, having type int - ParameterId["CalcEditorTextSelectionEndPos"] = "calcEditorTextSelectionEndPos"; - // DPI_CalcEditorTextSelectionStartPos, having type int - ParameterId["CalcEditorTextSelectionStartPos"] = "calcEditorTextSelectionStartPos"; - // DPI_CategoricalBinId, having type int - ParameterId["CategoricalBinId"] = "categoricalBinId"; - // DPI_CategoricalFindControllerId, having type int - ParameterId["CategoricalFindControllerId"] = "categoricalFindControllerId"; - // DPI_ClauseToModifyIndex, having type int - ParameterId["ClauseToModifyIndex"] = "clauseToModifyIndex"; - // DPI_ClientRenderPixelLimit, having type int - ParameterId["ClientRenderPixelLimit"] = "clientRenderPixelLimit"; - // DPI_ColCount, having type int - ParameterId["ColCount"] = "colCount"; - // DPI_ColWidth, having type int - ParameterId["ColWidth"] = "colWidth"; - // DPI_ColumnLevels, having type int - ParameterId["ColumnLevels"] = "columnLevels"; - // DPI_ColumnNumber, having type int - ParameterId["ColumnNumber"] = "columnNumber"; - // DPI_ColumnWidth, having type int - ParameterId["ColumnWidth"] = "columnWidth"; - // DPI_ContentHeight, having type int - ParameterId["ContentHeight"] = "contentH"; - // DPI_ContentWidth, having type int - ParameterId["ContentWidth"] = "contentW"; - // DPI_ContentX, having type int - ParameterId["ContentX"] = "contentX"; - // DPI_ContentY, having type int - ParameterId["ContentY"] = "contentY"; - // DPI_Coordinate, having type int - ParameterId["Coordinate"] = "coord"; - // DPI_CurDateAgg, having type int - ParameterId["CurDateAgg"] = "curDateAgg"; - // DPI_CurrentCustViewId, having type int - ParameterId["CurrentCustViewId"] = "currentCustomViewId"; - // DPI_CustomSplitCharacterCountSeparator, having type int - ParameterId["CustomSplitCharacterCountSeparator"] = "customSplitCharacterCountSeparator"; - // DPI_CustomSplitDesiredSplitCount, having type int - ParameterId["CustomSplitDesiredSplitCount"] = "customSplitDesiredSplitCount"; - // DPI_DashboardGridSize, having type int - ParameterId["DashboardGridSize"] = "dashboardGridSize"; - // DPI_DataIndex, having type int - ParameterId["DataIndex"] = "dataIndex"; - // DPI_DecimalPlaces, having type int - ParameterId["DecimalPlaces"] = "decimalPlaces"; - // DPI_DeltaTime, having type int - ParameterId["DeltaTime"] = "deltaTime"; - // DPI_DestPix, having type int - ParameterId["DestPix"] = "destPix"; - // DPI_DeviceIndex, having type int - ParameterId["DeviceIndex"] = "deviceIndex"; - // DPI_Duration, having type int - ParameterId["Duration"] = "duration"; - // DPI_EndPtX, having type int - ParameterId["EndPtX"] = "endX"; - // DPI_EndPtY, having type int - ParameterId["EndPtY"] = "endY"; - // DPI_ErrorLen, having type int - ParameterId["ErrorLen"] = "lengthOfCalcOfError"; - // DPI_ErrorPos, having type int - ParameterId["ErrorPos"] = "startPositionForError"; - // DPI_ExceptionErrorMessageId, having type int - ParameterId["ExceptionErrorMessageId"] = "exceptionErrorMessageId"; - // DPI_ExtentsH, having type int - ParameterId["ExtentsH"] = "extentsHeight"; - // DPI_ExtentsW, having type int - ParameterId["ExtentsW"] = "extentsWidth"; - // DPI_ExtentsX, having type int - ParameterId["ExtentsX"] = "extentsX"; - // DPI_ExtentsY, having type int - ParameterId["ExtentsY"] = "extentsY"; - // DPI_FieldIndex, having type int - ParameterId["FieldIndex"] = "fieldIndex"; - // DPI_FieldNameId, having type int - ParameterId["FieldNameId"] = "fieldNameId"; - // DPI_FirstDayOfWeek, having type int - ParameterId["FirstDayOfWeek"] = "firstDayOfWeek"; - // DPI_FirstValueIndex, having type int - ParameterId["FirstValueIndex"] = "firstValueIndex"; - // DPI_FixedSizePresetIndex, having type int - ParameterId["FixedSizePresetIndex"] = "fixedSizePresetIndex"; - // DPI_FocusItemIndex, having type int - ParameterId["FocusItemIndex"] = "focusItemIndex"; - // DPI_FontSize, having type int - ParameterId["FontSize"] = "fontSize"; - // DPI_ForecastIntRangeEnd, having type int - ParameterId["ForecastIntRangeEnd"] = "forecastIntRangeEnd"; - // DPI_ForecastIntRangeStart, having type int - ParameterId["ForecastIntRangeStart"] = "forecastIntRangeStart"; - // DPI_FunctionHelpIndex, having type int - ParameterId["FunctionHelpIndex"] = "functionHelpIndex"; - // DPI_GeographicSearchMaxResults, having type int - ParameterId["GeographicSearchMaxResults"] = "geographicSearchMaxResults"; - // DPI_Height, having type int - ParameterId["Height"] = "h"; - // DPI_HierarchyLevel, having type int - ParameterId["HierarchyLevel"] = "hierarchyLevel"; - // DPI_HierarchyLevelLoaded, having type int - ParameterId["HierarchyLevelLoaded"] = "hierarchyLevelLoaded"; - // DPI_HierarchyLevelMinimum, having type int - ParameterId["HierarchyLevelMinimum"] = "hierarchyLevelMinimum"; - // DPI_HierarchyLoadLimit, having type int - ParameterId["HierarchyLoadLimit"] = "hierarchyLoadLimit"; - // DPI_HierarchySelectControllerId, having type int - ParameterId["HierarchySelectControllerId"] = "hierarchySelectControllerId"; - // DPI_HorzTextCell, having type int - ParameterId["HorzTextCell"] = "horzTextCell"; - // DPI_ImageIndex, having type int - ParameterId["ImageIndex"] = "imageIndex"; - // DPI_ImageSizeLimit, having type int - ParameterId["ImageSizeLimit"] = "imageSizeLimit"; - // DPI_TransparentLineMarksLimit, having type int - ParameterId["TransparentLineMarksLimit"] = "transparentLineMarksLimit"; - // DPI_Indent, having type int - ParameterId["Indent"] = "indent"; - // DPI_Index, having type int - ParameterId["Index"] = "idx"; - // DPI_IndexFrom, having type int - ParameterId["IndexFrom"] = "indexFrom"; - // DPI_IndexOffset, having type int - ParameterId["IndexOffset"] = "indexOffset"; - // DPI_IndexTo, having type int - ParameterId["IndexTo"] = "indexTo"; - // DPI_InlineConnectionRenameRow, having type int - ParameterId["InlineConnectionRenameRow"] = "inlineConnectionRenameRow"; - // DPI_InsertPos, having type int - ParameterId["InsertPos"] = "insertPos"; - // DPI_IsHasDataSupported, having type int - ParameterId["IsHasDataSupported"] = "isHasDataSupported"; - // DPI_LeftMargin, having type int - ParameterId["LeftMargin"] = "leftMargin"; - // DPI_LeftRightBorderWidth, having type int - ParameterId["LeftRightBorderWidth"] = "leftRightBorderWidth"; - // DPI_LowerBound, having type int - ParameterId["LowerBound"] = "lowerBound"; - // DPI_MapRequestPixels, having type int - ParameterId["MapRequestPixels"] = "mapRequestPixels"; - // DPI_MapScaleFontSizePixels, having type int - ParameterId["MapScaleFontSizePixels"] = "mapScaleFontSizePixels"; - // DPI_MapScaleReadoutNumber, having type int - ParameterId["MapScaleReadoutNumber"] = "mapScaleReadoutNumber"; - // DPI_MapScaleWidth, having type int - ParameterId["MapScaleWidth"] = "mapScaleWidth"; - // DPI_MapTileSize, having type int - ParameterId["MapTileSize"] = "mapTileSize"; - // DPI_Margin, having type int - ParameterId["Margin"] = "margin"; - // DPI_MarginBottom, having type int - ParameterId["MarginBottom"] = "marginBottom"; - // DPI_MarginLeft, having type int - ParameterId["MarginLeft"] = "marginLeft"; - // DPI_MarginRight, having type int - ParameterId["MarginRight"] = "marginRight"; - // DPI_MarginTop, having type int - ParameterId["MarginTop"] = "marginTop"; - // DPI_MaxCell, having type int - ParameterId["MaxCell"] = "maxCell"; - // DPI_MaxItemSpan, having type int - ParameterId["MaxItemSpan"] = "maxItemSpan"; - // DPI_MaxPolynomialDegree, having type int - ParameterId["MaxPolynomialDegree"] = "maxDegree"; - // DPI_MaxPosition, having type int - ParameterId["MaxPosition"] = "maxPosition"; - // DPI_MaxSize, having type int - ParameterId["MaxSize"] = "maxSize"; - // DPI_MinCell, having type int - ParameterId["MinCell"] = "minCell"; - // DPI_MinPolynomialDegree, having type int - ParameterId["MinPolynomialDegree"] = "minDegree"; - // DPI_MinPosition, having type int - ParameterId["MinPosition"] = "minPosition"; - // DPI_MinSize, having type int - ParameterId["MinSize"] = "minSize"; - // DPI_ModelDF, having type int - ParameterId["ModelDF"] = "modelDf"; - // DPI_NewIndex, having type int - ParameterId["NewIndex"] = "newIndex"; - // DPI_NumDataSourcesUsingServer, having type int - ParameterId["NumDataSourcesUsingServer"] = "numDataSourcesUsingServer"; - // DPI_NumFilteredObs, having type int - ParameterId["NumFilteredObs"] = "filteredObservations"; - // DPI_NumModeledObs, having type int - ParameterId["NumModeledObs"] = "modeledObservations"; - // DPI_NumNotClustered, having type int - ParameterId["NumNotClustered"] = "numNotClustered"; - // DPI_NumNumericFields, having type int - ParameterId["NumNumericFields"] = "numNumericFields"; - // DPI_NumOutliers, having type int - ParameterId["NumOutliers"] = "numOutliers"; - // DPI_NumRows, having type int - ParameterId["NumRows"] = "numRows"; - // DPI_NumSelected, having type int - ParameterId["NumSelected"] = "numSelected"; - // DPI_OffsetX, having type int - ParameterId["OffsetX"] = "offsetX"; - // DPI_OffsetY, having type int - ParameterId["OffsetY"] = "offsetY"; - // DPI_Padding, having type int - ParameterId["Padding"] = "padding"; - // DPI_PaddingBottom, having type int - ParameterId["PaddingBottom"] = "paddingBottom"; - // DPI_PaddingLeft, having type int - ParameterId["PaddingLeft"] = "paddingLeft"; - // DPI_PaddingRight, having type int - ParameterId["PaddingRight"] = "paddingRight"; - // DPI_PaddingTop, having type int - ParameterId["PaddingTop"] = "paddingTop"; - // DPI_PageLoadPercentage, having type int - ParameterId["PageLoadPercentage"] = "pageLoadPercentage"; - // DPI_PaletteIndex, having type int - ParameterId["PaletteIndex"] = "paletteIndex"; - // DPI_PaneSpecificationId, having type int - ParameterId["PaneSpecificationId"] = "paneSpec"; - // DPI_ParameterCtrlIncrementsPerTick, having type int - ParameterId["ParameterCtrlIncrementsPerTick"] = "parameterControlIncrementMultiplier"; - // DPI_PolynomialDegree, having type int - ParameterId["PolynomialDegree"] = "degree"; - // DPI_Port, having type int - ParameterId["Port"] = "datasourcePort"; - // DPI_Position, having type int - ParameterId["Position"] = "position"; - // DPI_ParentProjectId, having type int - ParameterId["ParentProjectId"] = "parentProjectId"; - // DPI_PublishResultStringId, having type int - ParameterId["PublishResultStringId"] = "publishResultStringId"; - // DPI_Radius, having type int - ParameterId["Radius"] = "radius"; - // DPI_ReadoutOffset, having type int - ParameterId["ReadoutOffset"] = "readoutOffset"; - // DPI_ReferenceIndex, having type int - ParameterId["ReferenceIndex"] = "referenceIndex"; - // DPI_RegionHeight, having type int - ParameterId["RegionHeight"] = "regionHeight"; - // DPI_RegionWidth, having type int - ParameterId["RegionWidth"] = "regionWidth"; - // DPI_RemovedDatasourceCount, having type int - ParameterId["RemovedDatasourceCount"] = "removedDatasourceCount"; - // DPI_RemovedSheetCount, having type int - ParameterId["RemovedSheetCount"] = "removedSheetCount"; - // DPI_ResidualDF, having type int - ParameterId["ResidualDF"] = "residualDf"; - // DPI_ResizeColumn, having type int - ParameterId["ResizeColumn"] = "resizeColumn"; - // DPI_RestartEveryIndex, having type int - ParameterId["RestartEveryIndex"] = "restartEveryIndex"; - // DPI_RightMargin, having type int - ParameterId["RightMargin"] = "rightMargin"; - // DPI_RowCount, having type int - ParameterId["RowCount"] = "rowCount"; - // DPI_RowHeight, having type int - ParameterId["RowHeight"] = "rowHeight"; - // DPI_RowInnerLevels, having type int - ParameterId["RowInnerLevels"] = "rowInnerLevels"; - // DPI_RowLevels, having type int - ParameterId["RowLevels"] = "rowLevels"; - // DPI_RowNumber, having type int - ParameterId["RowNumber"] = "rowNumber"; - // DPI_RowWidth, having type int - ParameterId["RowWidth"] = "rowWidth"; - // DPI_SecondValueIndex, having type int - ParameterId["SecondValueIndex"] = "secondValueIndex"; - // DPI_SecondsAgo, having type int - ParameterId["SecondsAgo"] = "secondsAgo"; - // DPI_SelectionEnd, having type int - ParameterId["SelectionEnd"] = "selectionEnd"; - // DPI_SelectionStart, having type int - ParameterId["SelectionStart"] = "selectionStart"; - // DPI_ShapePaletteID, having type int - ParameterId["ShapePaletteID"] = "shapePaletteId"; - // DPI_SheetIndex, having type int - ParameterId["SheetIndex"] = "sheetIndex"; - // DPI_ShelfPositionIndex, having type int - ParameterId["ShelfPositionIndex"] = "shelfPosIndex"; - // DPI_Size, having type int - ParameterId["Size"] = "size"; - // DPI_SizeDifference, having type int - ParameterId["SizeDifference"] = "sizeDelta"; - // DPI_SnapDistance, having type int - ParameterId["SnapDistance"] = "snapDistance"; - // DPI_SnapLocation, having type int - ParameterId["SnapLocation"] = "snapLocation"; - // DPI_SolveOrder, having type int - ParameterId["SolveOrder"] = "solveOrder"; - // DPI_SpaceBetweenPoints, having type int - ParameterId["SpaceBetweenPoints"] = "spaceBetweenPoints"; - // DPI_StepSize, having type int - ParameterId["StepSize"] = "stepSize"; - // DPI_Steps, having type int - ParameterId["Steps"] = "steps"; - // DPI_StoryPointIndex, having type int - ParameterId["StoryPointIndex"] = "currentStorypointIndex"; - // DPI_StyleLen, having type int - ParameterId["StyleLen"] = "tokenLengthForStyle"; - // DPI_StylePos, having type int - ParameterId["StylePos"] = "tokenPositionForStyle"; - // DPI_SwatchAreaWidth, having type int - ParameterId["SwatchAreaWidth"] = "swatchWidth"; - // DPI_TargetBinId, having type int - ParameterId["TargetBinId"] = "targetBinId"; - // DPI_TargetPtX, having type int - ParameterId["TargetPtX"] = "targetX"; - // DPI_TargetPtY, having type int - ParameterId["TargetPtY"] = "targetY"; - // DPI_TileFactor, having type int - ParameterId["TileFactor"] = "tileFactor"; - // DPI_TitleHeight, having type int - ParameterId["TitleHeight"] = "titleHeight"; - // DPI_TitleWidth, having type int - ParameterId["TitleWidth"] = "titleWidth"; - // DPI_TopBottomBorderWidth, having type int - ParameterId["TopBottomBorderWidth"] = "topBottomBorderWidth"; - // DPI_UIAutomationLineSize, having type int - ParameterId["UIAutomationLineSize"] = "uiAutomationLineSize"; - // DPI_UIAutomationPageSize, having type int - ParameterId["UIAutomationPageSize"] = "uiAutomationPageSize"; - // DPI_UID, having type int - ParameterId["UID"] = "uid"; - // DPI_UpperBound, having type int - ParameterId["UpperBound"] = "upperBound"; - // DPI_VertTextCell, having type int - ParameterId["VertTextCell"] = "vertTextCell"; - // DPI_Width, having type int - ParameterId["Width"] = "w"; - // DPI_X, having type int - ParameterId["X"] = "x"; - // DPI_Y, having type int - ParameterId["Y"] = "y"; - // DPI_ZOrder, having type int - ParameterId["ZOrder"] = "zOrder"; - // DPI_ZoneIconIndex, having type int - ParameterId["ZoneIconIndex"] = "zoneIconIndex"; - // DPI_AliasIndices, having type int[] - ParameterId["AliasIndices"] = "aliasIndices"; - // DPI_AnovaDFVec, having type int[] - ParameterId["AnovaDFVec"] = "anovaDfVector"; - // DPI_ColumnIndices, having type int[] - ParameterId["ColumnIndices"] = "columnIndices"; - // DPI_DrillFieldIndices, having type int[] - ParameterId["DrillFieldIndices"] = "drillFieldIndices"; - // DPI_FilterMaxIndices, having type int[] - ParameterId["FilterMaxIndices"] = "filterMaxIndices"; - // DPI_FilterMinIndices, having type int[] - ParameterId["FilterMinIndices"] = "filterMinIndices"; - // DPI_FilterValuesIndices, having type int[] - ParameterId["FilterValuesIndices"] = "filterValueIndices"; - // DPI_FormatStringIndices, having type int[] - ParameterId["FormatStringIndices"] = "formatstrIndices"; - // DPI_FormattedValIndices, having type int[] - ParameterId["FormattedValIndices"] = "formatValIdxs"; - // DPI_PaletteIndices, having type int[] - ParameterId["PaletteIndices"] = "palettesIndices"; - // DPI_PaneIndices, having type int[] - ParameterId["PaneIndices"] = "paneIndices"; - // DPI_Points, having type int[] - ParameterId["Points"] = "points"; - // DPI_QuickFilterSettings, having type int[] - ParameterId["QuickFilterSettings"] = "quickFilterSettings"; - // DPI_SelectedIndices, having type int[] - ParameterId["SelectedIndices"] = "selectedIndices"; - // DPI_ShelfPositionIndices, having type int[] - ParameterId["ShelfPositionIndices"] = "shelfPosIndices"; - // DPI_TileBox, having type int[] - ParameterId["TileBox"] = "tileBox"; - // DPI_TrailOverride, having type int[] - ParameterId["TrailOverride"] = "trailOverride"; - // DPI_UIDs, having type int[] - ParameterId["UIDs"] = "uids"; - // DPI_ValueIndices, having type int[] - ParameterId["ValueIndices"] = "valueIndices"; - // DPI_XCellOffsets, having type int[] - ParameterId["XCellOffsets"] = "xCellOffsets"; - // DPI_XPixelOffsets, having type int[] - ParameterId["XPixelOffsets"] = "xPixelOffsets"; - // DPI_YCellOffsets, having type int[] - ParameterId["YCellOffsets"] = "yCellOffsets"; - // DPI_YPixelOffsets, having type int[] - ParameterId["YPixelOffsets"] = "yPixelOffsets"; - // DPI_IntMap, having type Dictionary(of int) - ParameterId["IntMap"] = "intMap"; - // DPI_SelectedAuthSettingIndices, having type Dictionary(of int) - ParameterId["SelectedAuthSettingIndices"] = "selectedAuthSettingIndices"; - // DPI_ActiveStoryPointID, having type uint - ParameterId["ActiveStoryPointID"] = "activeStoryPointId"; - // DPI_ActiveZoneID, having type uint - ParameterId["ActiveZoneID"] = "activeZoneId"; - // DPI_ActualSize, having type uint - ParameterId["ActualSize"] = "actualSize"; - // DPI_AddInDebugPort, having type uint - ParameterId["AddInDebugPort"] = "addInDebugPort"; - // DPI_AggregationIndex, having type uint - ParameterId["AggregationIndex"] = "aggregationIndex"; - // DPI_AnnotationID, having type uint - ParameterId["AnnotationID"] = "annotationId"; - // DPI_AssignedAliasCount, having type uint - ParameterId["AssignedAliasCount"] = "assignedAliasCount"; - // DPI_CapabilityId, having type uint - ParameterId["CapabilityId"] = "capabilityId"; - // DPI_CaretIndex, having type uint - ParameterId["CaretIndex"] = "caretIndex"; - // DPI_CellID, having type uint - ParameterId["CellID"] = "cellId"; - // DPI_ColumnIndex, having type uint - ParameterId["ColumnIndex"] = "columnIndex"; - // DPI_CommandID, having type uint - ParameterId["CommandID"] = "id"; - // DPI_CommandIndex, having type uint - ParameterId["CommandIndex"] = "index"; - // DPI_ControllerId, having type uint - ParameterId["ControllerId"] = "controllerId"; - // DPI_Count, having type uint - ParameterId["Count"] = "count"; - // DPI_URowCount, having type uint - ParameterId["URowCount"] = "uRowCount"; - // DPI_UColumnCount, having type uint - ParameterId["UColumnCount"] = "uColumnCount"; - // DPI_CurrentPage, having type uint - ParameterId["CurrentPage"] = "currentPage"; - // DPI_DatePeriodsCount, having type uint - ParameterId["DatePeriodsCount"] = "datePeriodsCount"; - // DPI_Decimals, having type uint - ParameterId["Decimals"] = "decimals"; - // DPI_DefaultHeight, having type uint - ParameterId["DefaultHeight"] = "defaultHeight"; - // DPI_DefaultItem, having type uint - ParameterId["DefaultItem"] = "defaultItem"; - // DPI_DefaultWidth, having type uint - ParameterId["DefaultWidth"] = "defaultWidth"; - // DPI_Depth, having type uint - ParameterId["Depth"] = "depth"; - // DPI_DetailID, having type uint - ParameterId["DetailID"] = "detailId"; - // DPI_DrillLevel, having type uint - ParameterId["DrillLevel"] = "drillLevel"; - // DPI_DuplicateIndex, having type uint - ParameterId["DuplicateIndex"] = "duplicateIndex"; - // DPI_EndIndex, having type uint - ParameterId["EndIndex"] = "endIndex"; - // DPI_FieldIconIdx, having type uint - ParameterId["FieldIconIdx"] = "fieldIconIdx"; - // DPI_FilterLevel, having type uint - ParameterId["FilterLevel"] = "filterLevel"; - // DPI_FilterTileSize, having type uint - ParameterId["FilterTileSize"] = "filterTileSize"; - // DPI_FiscalYearStart, having type uint - ParameterId["FiscalYearStart"] = "fiscalYearStart"; - // DPI_FitPagesAcross, having type uint - ParameterId["FitPagesAcross"] = "pageFitHorizontal"; - // DPI_FitPagesDown, having type uint - ParameterId["FitPagesDown"] = "pageFitVertical"; - // DPI_FixedIndex, having type uint - ParameterId["FixedIndex"] = "fixedIndex"; - // DPI_FlipboardZoneID, having type uint - ParameterId["FlipboardZoneID"] = "flipboardZoneId"; - // DPI_ForecastAutoRangeSize, having type uint - ParameterId["ForecastAutoRangeSize"] = "forecastAutoRangeSize"; - // DPI_ForecastEndOfRange, having type uint - ParameterId["ForecastEndOfRange"] = "forecastEndOfRange"; - // DPI_ForecastIgnoreLast, having type uint - ParameterId["ForecastIgnoreLast"] = "forecastIgnoreLast"; - // DPI_ForecastNextRangeSize, having type uint - ParameterId["ForecastNextRangeSize"] = "forecastNextRangeSize"; - // DPI_GroupFlags, having type uint - ParameterId["GroupFlags"] = "groupFlag"; - // DPI_HierarchyLevels, having type uint - ParameterId["HierarchyLevels"] = "hierarchyLevels"; - // DPI_HierarchyMemberId, having type uint - ParameterId["HierarchyMemberId"] = "hierarchyMemberId"; - // DPI_HitTestFlags, having type uint - ParameterId["HitTestFlags"] = "hitTestFlags"; - // DPI_ImageHeight, having type uint - ParameterId["ImageHeight"] = "imageHeight"; - // DPI_ImageWidth, having type uint - ParameterId["ImageWidth"] = "imageWidth"; - // DPI_ItemIndex, having type uint - ParameterId["ItemIndex"] = "itemIndex"; - // DPI_ItemIndex1, having type uint - ParameterId["ItemIndex1"] = "itemIndex1"; - // DPI_LineHeight, having type uint - ParameterId["LineHeight"] = "lineHeight"; - // DPI_MapIntermediateLevels, having type uint - ParameterId["MapIntermediateLevels"] = "mapIntermediateLevels"; - // DPI_MapWorldRepeats, having type uint - ParameterId["MapWorldRepeats"] = "mapWorldRepeats"; - // DPI_MaxAlpha, having type uint - ParameterId["MaxAlpha"] = "maxAlpha"; - // DPI_MaxHeight, having type uint - ParameterId["MaxHeight"] = "maxHeight"; - // DPI_MaxNumberWebListItems, having type uint - ParameterId["MaxNumberWebListItems"] = "maxNumberWebListItems"; - // DPI_MaxPrevOrNextValues, having type uint - ParameterId["MaxPrevOrNextValues"] = "maxPrevOrNextValues"; - // DPI_MaxRows, having type uint - ParameterId["MaxRows"] = "maxRows"; - // DPI_MaxTransparency, having type uint - ParameterId["MaxTransparency"] = "colorMaxTransparencyValue"; - // DPI_MaxWidth, having type uint - ParameterId["MaxWidth"] = "maxWidth"; - // DPI_MinColumns, having type uint - ParameterId["MinColumns"] = "minColumns"; - // DPI_MinHeight, having type uint - ParameterId["MinHeight"] = "minHeight"; - // DPI_MinPrevOrNextValues, having type uint - ParameterId["MinPrevOrNextValues"] = "minPrevOrNextValues"; - // DPI_MinTransparency, having type uint - ParameterId["MinTransparency"] = "colorMinTransparencyValue"; - // DPI_MinWidth, having type uint - ParameterId["MinWidth"] = "minWidth"; - // DPI_NestedCalcsIndex, having type uint - ParameterId["NestedCalcsIndex"] = "nestedCalcsIndex"; - // DPI_NextValues, having type uint - ParameterId["NextValues"] = "nextValues"; - // DPI_NodeLevel, having type uint - ParameterId["NodeLevel"] = "nodeLevel"; - // DPI_NumHighlighted, having type uint - ParameterId["NumHighlighted"] = "numHighlighted"; - // DPI_NumberOfNextValues, having type uint - ParameterId["NumberOfNextValues"] = "numberOfNextValues"; - // DPI_NumberOfPrevValues, having type uint - ParameterId["NumberOfPrevValues"] = "numberOfPrevValues"; - // DPI_ObjectID, having type uint - ParameterId["ObjectID"] = "objectId"; - // DPI_OrderingTypeIndex, having type uint - ParameterId["OrderingTypeIndex"] = "orderingTypeIndex"; - // DPI_PageCount, having type uint - ParameterId["PageCount"] = "pageCount"; - // DPI_PageFadeEnd, having type uint - ParameterId["PageFadeEnd"] = "fadeEnd"; - // DPI_PageFadeStart, having type uint - ParameterId["PageFadeStart"] = "fadeStart"; - // DPI_PageIndex, having type uint - ParameterId["PageIndex"] = "pageIndex"; - // DPI_PageNumber, having type uint - ParameterId["PageNumber"] = "pageNumber"; - // DPI_PageScalePercent, having type uint - ParameterId["PageScalePercent"] = "pageScalePercent"; - // DPI_PageTrailLength, having type uint - ParameterId["PageTrailLength"] = "historyLength"; - // DPI_PaletteFlagsVal, having type uint - ParameterId["PaletteFlagsVal"] = "paletteFlagsVal"; - // DPI_PaneIndex, having type uint - ParameterId["PaneIndex"] = "paneIndex"; - // DPI_ParamCtrlDisplayFlags, having type uint - ParameterId["ParamCtrlDisplayFlags"] = "paramDisplayFlags"; - // DPI_ParentZoneID, having type uint - ParameterId["ParentZoneID"] = "parentZoneId"; - // DPI_PercentileParam, having type uint - ParameterId["PercentileParam"] = "percentileParam"; - // DPI_PrevValues, having type uint - ParameterId["PrevValues"] = "prevValues"; - // DPI_QRGBColor, having type uint - ParameterId["QRGBColor"] = "qrgbColor"; - // DPI_RangeN, having type uint - ParameterId["RangeN"] = "rangeN"; - // DPI_RankTypeIndex, having type uint - ParameterId["RankTypeIndex"] = "rankTypeIndex"; - // DPI_RenderComplexity, having type uint - ParameterId["RenderComplexity"] = "renderComplexityLimit"; - // DPI_RowIndex, having type uint - ParameterId["RowIndex"] = "rowIndex"; - // DPI_SelectedAuthSettingIndex, having type uint - ParameterId["SelectedAuthSettingIndex"] = "selectedAuthSettingIndex"; - // DPI_SelectedFullScheduleIndex, having type uint - ParameterId["SelectedFullScheduleIndex"] = "selectedFullScheduleIndex"; - // DPI_SelectedIncrScheduleIndex, having type uint - ParameterId["SelectedIncrScheduleIndex"] = "selectedIncrScheduleIndex"; - // DPI_SelectedPublishChoiceIndex, having type uint - ParameterId["SelectedPublishChoiceIndex"] = "selectedPublishChoiceIndex"; - // DPI_SelectedMemberCount, having type uint - ParameterId["SelectedMemberCount"] = "selectedMemberCount"; - // DPI_ShapeID, having type uint - ParameterId["ShapeID"] = "shapeId"; - // DPI_SheetUseCount, having type uint - ParameterId["SheetUseCount"] = "useCount"; - // DPI_ShelfItemID, having type uint - ParameterId["ShelfItemID"] = "shelfItemId"; - // DPI_SigFigs, having type uint - ParameterId["SigFigs"] = "sigFigs"; - // DPI_SortAggIndex, having type uint - ParameterId["SortAggIndex"] = "sortAggIndvValues"; - // DPI_SortColumnIndex, having type uint - ParameterId["SortColumnIndex"] = "sortColumnIndex"; - // DPI_SortDirectionIndex, having type uint - ParameterId["SortDirectionIndex"] = "sortDirectionIndex"; - // DPI_SortFieldIndex, having type uint - ParameterId["SortFieldIndex"] = "sortFieldIndex"; - // DPI_StartIndex, having type uint - ParameterId["StartIndex"] = "startIndex"; - // DPI_StartOfWeek, having type uint - ParameterId["StartOfWeek"] = "startOfWeek"; - // DPI_StoryPointID, having type uint - ParameterId["StoryPointID"] = "storyPointId"; - // DPI_TableCalcTypeIndex, having type uint - ParameterId["TableCalcTypeIndex"] = "tableCalcTypeIndex"; - // DPI_TableCalcTypesUsed, having type uint - ParameterId["TableCalcTypesUsed"] = "tableCalcTypesUsed"; - // DPI_TemplateIndex, having type uint - ParameterId["TemplateIndex"] = "templateIndex"; - // DPI_TileCount, having type uint - ParameterId["TileCount"] = "tileCount"; - // DPI_TimeoutSeconds, having type uint - ParameterId["TimeoutSeconds"] = "timeoutSeconds"; - // DPI_TopN, having type uint - ParameterId["TopN"] = "topN"; - // DPI_TotalNumberOfItemsInSet, having type uint - ParameterId["TotalNumberOfItemsInSet"] = "totalNumberOfItemsInSet"; - // DPI_TotalMemberCount, having type uint - ParameterId["TotalMemberCount"] = "totalMemberCount"; - // DPI_Transparency, having type uint - ParameterId["Transparency"] = "colorTransparencyValue"; - // DPI_TupleID, having type uint - ParameterId["TupleID"] = "tupleId"; - // DPI_UIndex, having type uint - ParameterId["UIndex"] = "uindex"; - // DPI_UndoPosition, having type uint - ParameterId["UndoPosition"] = "undoPosition"; - // DPI_UnsignedWidth, having type uint - ParameterId["UnsignedWidth"] = "uw"; - // DPI_UnsignedWidthBottom, having type uint - ParameterId["UnsignedWidthBottom"] = "uwb"; - // DPI_UnsignedWidthLeft, having type uint - ParameterId["UnsignedWidthLeft"] = "uwl"; - // DPI_UnsignedWidthRight, having type uint - ParameterId["UnsignedWidthRight"] = "uwr"; - // DPI_UnsignedWidthTop, having type uint - ParameterId["UnsignedWidthTop"] = "uwt"; - // DPI_ValueIndex, having type uint - ParameterId["ValueIndex"] = "valueIndex"; - // DPI_ValueInt, having type uint - ParameterId["ValueInt"] = "valueInt"; - // DPI_WorldOffset, having type uint - ParameterId["WorldOffset"] = "worldOffset"; - // DPI_XDuplicateIndex, having type uint - ParameterId["XDuplicateIndex"] = "xDuplicateIndex"; - // DPI_XIndex, having type uint - ParameterId["XIndex"] = "xIndex"; - // DPI_YDuplicateIndex, having type uint - ParameterId["YDuplicateIndex"] = "yDuplicateIndex"; - // DPI_YIndex, having type uint - ParameterId["YIndex"] = "yIndex"; - // DPI_ZoneID, having type uint - ParameterId["ZoneID"] = "zoneId"; - // DPI_ZoneZOrder, having type uint - ParameterId["ZoneZOrder"] = "zoneZOrder"; - // DPI_ComponentID, having type uint - ParameterId["ComponentID"] = "componentId"; - // DPI_NonThreadPoolUseCount, having type uint - ParameterId["NonThreadPoolUseCount"] = "nonThreadPoolUseCount"; - // DPI_AddressingIndices, having type uint[] - ParameterId["AddressingIndices"] = "addressingIndices"; - // DPI_AddressingInvalidIndices, having type uint[] - ParameterId["AddressingInvalidIndices"] = "addressingInvalidIndices"; - // DPI_ChildZoneIds, having type uint[] - ParameterId["ChildZoneIds"] = "childZoneIds"; - // DPI_ColorList, having type uint[] - ParameterId["ColorList"] = "colorList"; - // DPI_DuplicateIndices, having type uint[] - ParameterId["DuplicateIndices"] = "duplicateIndices"; - // DPI_FilterAddIndices, having type uint[] - ParameterId["FilterAddIndices"] = "filterAddIndices"; - // DPI_FilterIndices, having type uint[] - ParameterId["FilterIndices"] = "filterIndices"; - // DPI_FilterLevelAdd, having type uint[] - ParameterId["FilterLevelAdd"] = "filterLevelAdd"; - // DPI_FilterLevelRemove, having type uint[] - ParameterId["FilterLevelRemove"] = "filterLevelRemove"; - // DPI_FilterLevels, having type uint[] - ParameterId["FilterLevels"] = "filterLevels"; - // DPI_FilterRemoveIndices, having type uint[] - ParameterId["FilterRemoveIndices"] = "filterRemoveIndices"; - // DPI_FixedValues, having type uint[] - ParameterId["FixedValues"] = "fixedValues"; - // DPI_HierarchyMemberIdList, having type uint[] - ParameterId["HierarchyMemberIdList"] = "hierarchyMemberIdList"; - // DPI_InvalidIndices, having type uint[] - ParameterId["InvalidIndices"] = "invalidIndices"; - // DPI_ItemIndices, having type uint[] - ParameterId["ItemIndices"] = "itemIndices"; - // DPI_LineTupleIDs, having type uint[] - ParameterId["LineTupleIDs"] = "lineTupleIds"; - // DPI_ObjectIDs, having type uint[] - ParameterId["ObjectIDs"] = "objectIds"; - // DPI_PageIndices, having type uint[] - ParameterId["PageIndices"] = "pageIndices"; - // DPI_QRGB, having type uint[] - ParameterId["QRGB"] = "qrgbList"; - // DPI_QRGBColors, having type uint[] - ParameterId["QRGBColors"] = "qrgbColors"; - // DPI_RefLineID, having type uint[] - ParameterId["RefLineID"] = "reflineId"; - // DPI_ShapeIDs, having type uint[] - ParameterId["ShapeIDs"] = "shapeIds"; - // DPI_ShelfSelection, having type uint[] - ParameterId["ShelfSelection"] = "shelfSelection"; - // DPI_StoryPointIDs, having type uint[] - ParameterId["StoryPointIDs"] = "storyPointIds"; - // DPI_TupleIDs, having type uint[] - ParameterId["TupleIDs"] = "tupleIds"; - // DPI_Widths, having type uint[] - ParameterId["Widths"] = "widths"; - // DPI_UintMap, having type Dictionary(of uint32_t) - ParameterId["UintMap"] = "uintMap"; - // DPI_Alpha, having type float - ParameterId["Alpha"] = "alpha"; - // DPI_Angle, having type float - ParameterId["Angle"] = "angle"; - // DPI_BreakPointValue, having type float - ParameterId["BreakPointValue"] = "breakPointValue"; - // DPI_DevicePixelRatio, having type float - ParameterId["DevicePixelRatio"] = "devicePixelRatio"; - // DPI_Distance, having type float - ParameterId["Distance"] = "distance"; - // DPI_FloatX, having type float - ParameterId["FloatX"] = "floatX"; - // DPI_FloatY, having type float - ParameterId["FloatY"] = "floatY"; - // DPI_FogDesaturation, having type float - ParameterId["FogDesaturation"] = "fogDesaturation"; - // DPI_MarkScale, having type float - ParameterId["MarkScale"] = "markScale"; - // DPI_MarkSizeInPixelUnits, having type float - ParameterId["MarkSizeInPixelUnits"] = "markSizeInPixelUnits"; - // DPI_PointSize, having type float - ParameterId["PointSize"] = "pointSize"; - // DPI_StrokeWidth, having type float - ParameterId["StrokeWidth"] = "strokeWidth"; - // DPI_TextRegionOrientation, having type float - ParameterId["TextRegionOrientation"] = "orientation"; - // DPI_TransformAngle, having type float - ParameterId["TransformAngle"] = "transformAngle"; - // DPI_ZoomLevel, having type float - ParameterId["ZoomLevel"] = "zoomLevel"; - // DPI_OldZoomLevel, having type float - ParameterId["OldZoomLevel"] = "oldZoomLevel"; - // DPI_NewZoomLevel, having type float - ParameterId["NewZoomLevel"] = "newZoomLevel"; - // DPI_AspectRatio, having type float - ParameterId["AspectRatio"] = "aspectRatio"; - // DPI_BottomPrintMargin, having type float - ParameterId["BottomPrintMargin"] = "bottomPrintMargin"; - // DPI_EarthRadius, having type float - ParameterId["EarthRadius"] = "earthRadius"; - // DPI_FloatHeight, having type float - ParameterId["FloatHeight"] = "floatHeight"; - // DPI_FloatLeft, having type float - ParameterId["FloatLeft"] = "floatLeft"; - // DPI_FloatRadius, having type float - ParameterId["FloatRadius"] = "floatRadius"; - // DPI_FloatTop, having type float - ParameterId["FloatTop"] = "floatTop"; - // DPI_FloatWidth, having type float - ParameterId["FloatWidth"] = "floatWidth"; - // DPI_LeftPrintMargin, having type float - ParameterId["LeftPrintMargin"] = "leftPrintMargin"; - // DPI_MapCenterLatitude, having type float - ParameterId["MapCenterLatitude"] = "mapCenterLatitude"; - // DPI_MapCenterLongitude, having type float - ParameterId["MapCenterLongitude"] = "mapCenterLongitude"; - // DPI_MapDisplayScale, having type float - ParameterId["MapDisplayScale"] = "mapDisplayScale"; - // DPI_MapMaxStretch, having type float - ParameterId["MapMaxStretch"] = "mapMaxStretch"; - // DPI_MapMaxZoom, having type float - ParameterId["MapMaxZoom"] = "mapMaxZoom"; - // DPI_MapMinShrink, having type float - ParameterId["MapMinShrink"] = "mapMinShrink"; - // DPI_MapMinZoom, having type float - ParameterId["MapMinZoom"] = "mapMinZoom"; - // DPI_MapRequestZoom, having type float - ParameterId["MapRequestZoom"] = "mapRequestZoom"; - // DPI_MapWashout, having type float - ParameterId["MapWashout"] = "mapWashout"; - // DPI_MaxLatitude, having type float - ParameterId["MaxLatitude"] = "maxLatitude"; - // DPI_MaxLongitude, having type float - ParameterId["MaxLongitude"] = "maxLongitude"; - // DPI_MinLatitude, having type float - ParameterId["MinLatitude"] = "minLatitude"; - // DPI_MinLongitude, having type float - ParameterId["MinLongitude"] = "minLongitude"; - // DPI_RightPrintMargin, having type float - ParameterId["RightPrintMargin"] = "rightPrintMargin"; - // DPI_TopPrintMargin, having type float - ParameterId["TopPrintMargin"] = "topPrintMargin"; - // DPI_UIAutomationMaximum, having type float - ParameterId["UIAutomationMaximum"] = "uiAutomationMaximum"; - // DPI_UIAutomationMinimum, having type float - ParameterId["UIAutomationMinimum"] = "uiAutomationMinimum"; - // DPI_UIAutomationOffset, having type float - ParameterId["UIAutomationOffset"] = "uiAutomationOffset"; - // DPI_UnitDivisor, having type float - ParameterId["UnitDivisor"] = "unitDivisor"; - // DPI_UnitTransition, having type float - ParameterId["UnitTransition"] = "unitTransition"; - // DPI_AutomaticDrillIdx, having type float[] - ParameterId["AutomaticDrillIdx"] = "automaticDrillIdx"; - // DPI_DestinationBox, having type float[] - ParameterId["DestinationBox"] = "destBox"; - // DPI_LowerEnd, having type float[] - ParameterId["LowerEnd"] = "lowerEnd"; - // DPI_OppositeAxis, having type float[] - ParameterId["OppositeAxis"] = "oppositeAxis"; - // DPI_PointsF, having type float[] - ParameterId["PointsF"] = "pointsF"; - // DPI_SourceBox, having type float[] - ParameterId["SourceBox"] = "sourceBox"; - // DPI_TransformOffset, having type float[] - ParameterId["TransformOffset"] = "transformOffset"; - // DPI_TransformScale, having type float[] - ParameterId["TransformScale"] = "transformScale"; - // DPI_UpperEnd, having type float[] - ParameterId["UpperEnd"] = "upperEnd"; - // DPI_FloatMap, having type Dictionary(of float) - ParameterId["FloatMap"] = "floatMap"; - // DPI_BGSS, having type double - ParameterId["BGSS"] = "betweenGroupSumOfSquares"; - // DPI_ConfidenceLevel, having type double - ParameterId["ConfidenceLevel"] = "confidenceLevel"; - // DPI_ConfidencePercentage, having type double - ParameterId["ConfidencePercentage"] = "confidencePercentage"; - // DPI_DoubleLeft, having type double - ParameterId["DoubleLeft"] = "doubleLeft"; - // DPI_DoubleTop, having type double - ParameterId["DoubleTop"] = "doubleTop"; - // DPI_DoubleValue, having type double - ParameterId["DoubleValue"] = "doubleValue"; - // DPI_DoubleX, having type double - ParameterId["DoubleX"] = "doubleX"; - // DPI_DoubleY, having type double - ParameterId["DoubleY"] = "doubleY"; - // DPI_FStatistic, having type double - ParameterId["FStatistic"] = "fStatistic"; - // DPI_FilterRangeMax, having type double - ParameterId["FilterRangeMax"] = "filterRangeMax"; - // DPI_FilterRangeMin, having type double - ParameterId["FilterRangeMin"] = "filterRangeMin"; - // DPI_GeographicSearchCandidateScore, having type double - ParameterId["GeographicSearchCandidateScore"] = "geographicSearchCandidateScore"; - // DPI_HeightD, having type double - ParameterId["HeightD"] = "height"; - // DPI_InflectionFraction, having type double - ParameterId["InflectionFraction"] = "inflectionFraction"; - // DPI_InflectionValue, having type double - ParameterId["InflectionValue"] = "inflectionValue"; - // DPI_MSE, having type double - ParameterId["MSE"] = "meanSquaredError"; - // DPI_MSM, having type double - ParameterId["MSM"] = "meanSquaredModel"; - // DPI_MapScaleMarginOfError, having type double - ParameterId["MapScaleMarginOfError"] = "mapScaleMarginOfError"; - // DPI_MarkSize, having type double - ParameterId["MarkSize"] = "markSize"; - // DPI_MaxMarkSize, having type double - ParameterId["MaxMarkSize"] = "maxMarkSize"; - // DPI_MinMarkSize, having type double - ParameterId["MinMarkSize"] = "minMarkSize"; - // DPI_NotchPosition, having type double - ParameterId["NotchPosition"] = "notchPosition"; - // DPI_NotchValue, having type double - ParameterId["NotchValue"] = "notchValue"; - // DPI_PValue, having type double - ParameterId["PValue"] = "pValue"; - // DPI_PercentDimensions, having type double - ParameterId["PercentDimensions"] = "percentDimensions"; - // DPI_PercentGroups, having type double - ParameterId["PercentGroups"] = "percentGroups"; - // DPI_PercentMeasures, having type double - ParameterId["PercentMeasures"] = "percentMeasures"; - // DPI_RSquared, having type double - ParameterId["RSquared"] = "rSquared"; - // DPI_SSE, having type double - ParameterId["SSE"] = "sumSquaredError"; - // DPI_SSM, having type double - ParameterId["SSM"] = "sumSquaredModel"; - // DPI_StandardError, having type double - ParameterId["StandardError"] = "standardError"; - // DPI_TSS, having type double - ParameterId["TSS"] = "totalSumOfSquares"; - // DPI_WGSS, having type double - ParameterId["WGSS"] = "withinGroupSumOfSquares"; - // DPI_WidthD, having type double - ParameterId["WidthD"] = "width"; - // DPI_ZoomFactor, having type double - ParameterId["ZoomFactor"] = "zoomFactor"; - // DPI_CoefficientPValueVec, having type double[] - ParameterId["CoefficientPValueVec"] = "coefficientPValueVector"; - // DPI_CoefficientStdErrVec, having type double[] - ParameterId["CoefficientStdErrVec"] = "coefficientStdErrorVector"; - // DPI_CoefficientTValueVec, having type double[] - ParameterId["CoefficientTValueVec"] = "coefficientTValueVector"; - // DPI_CoefficientVec, having type double[] - ParameterId["CoefficientVec"] = "coefficientVector"; - // DPI_FStatisticVec, having type double[] - ParameterId["FStatisticVec"] = "trendLineFStatisticVector"; - // DPI_Factors, having type double[] - ParameterId["Factors"] = "factors"; - // DPI_MSEVec, having type double[] - ParameterId["MSEVec"] = "meanSquaredErrorVector"; - // DPI_Means, having type double[] - ParameterId["Means"] = "means"; - // DPI_PValueVec, having type double[] - ParameterId["PValueVec"] = "pValueVector"; - // DPI_Percentages, having type double[] - ParameterId["Percentages"] = "percentages"; - // DPI_Percentiles, having type double[] - ParameterId["Percentiles"] = "percentiles"; - // DPI_SSEVec, having type double[] - ParameterId["SSEVec"] = "sumSquaredErrorVector"; - // DPI_StDevs, having type double[] - ParameterId["StDevs"] = "stdev"; - // DPI_UnscaledMeans, having type double[] - ParameterId["UnscaledMeans"] = "unscaledMeans"; - // DPI_DeltaTimeMs, having type long - ParameterId["DeltaTimeMs"] = "deltaTimeMs"; - // DPI_ExtractHistoryRowCount, having type long - ParameterId["ExtractHistoryRowCount"] = "extractRowCount"; - // DPI_ExtractHistoryRowsRemoved, having type long - ParameterId["ExtractHistoryRowsRemoved"] = "extractRowsRemoved"; - // DPI_ExtractsSize, having type long - ParameterId["ExtractsSize"] = "extractsSize"; - // DPI_OldExtractSize, having type long - ParameterId["OldExtractSize"] = "oldExtractSize"; - // DPI_RowsInserted, having type long - ParameterId["RowsInserted"] = "rowsInserted"; - // DPI_SampleSize, having type long - ParameterId["SampleSize"] = "sampleSize"; - // DPI_SampleSpace, having type long - ParameterId["SampleSpace"] = "sampleSpace"; - // DPI_ThreadPoolUseCount, having type long - ParameterId["ThreadPoolUseCount"] = "threadPoolUseCount"; - // DPI_ActionId, having type string - ParameterId["ActionId"] = "actionId"; - // DPI_AxisColumn, having type string - ParameterId["AxisColumn"] = "axisColumn"; - // DPI_BaseColumnName, having type string - ParameterId["BaseColumnName"] = "baseColumnName"; - // DPI_BreakPointFieldName, having type string - ParameterId["BreakPointFieldName"] = "breakPointFieldName"; - // DPI_PairedFieldName, having type string - ParameterId["PairedFieldName"] = "pairedFn"; - // DPI_FieldNameAllowEmpty, having type string - ParameterId["FieldNameAllowEmpty"] = "fieldNameAllowEmpty"; - // DPI_FieldNameDisAgg, having type string - ParameterId["FieldNameDisAgg"] = "fnDisagg"; - // DPI_FieldNameLocal, having type string - ParameterId["FieldNameLocal"] = "fieldNameLocal"; - // DPI_FieldNamePrev, having type string - ParameterId["FieldNamePrev"] = "fnPrev"; - // DPI_FieldNameSource, having type string - ParameterId["FieldNameSource"] = "fnSource"; - // DPI_FieldNameTarget, having type string - ParameterId["FieldNameTarget"] = "fnTarget"; - // DPI_FieldNameX, having type string - ParameterId["FieldNameX"] = "fnX"; - // DPI_FieldNameY, having type string - ParameterId["FieldNameY"] = "fnY"; - // DPI_FieldToSort, having type string - ParameterId["FieldToSort"] = "fieldToSort"; - // DPI_GlobalFieldName, having type string - ParameterId["GlobalFieldName"] = "globalFieldName"; - // DPI_HierarchyName, having type string - ParameterId["HierarchyName"] = "hierarchyName"; - // DPI_InvalidAggFieldName, having type string - ParameterId["InvalidAggFieldName"] = "invalidAggFieldName"; - // DPI_InvalidFieldName, having type string - ParameterId["InvalidFieldName"] = "invalidFieldName"; - // DPI_LimitParameterName, having type string - ParameterId["LimitParameterName"] = "limitParameterName"; - // DPI_LocalBaseColumnName, having type string - ParameterId["LocalBaseColumnName"] = "localBaseColumnName"; - // DPI_MeasureName, having type string - ParameterId["MeasureName"] = "measureName"; - // DPI_NestedCalcField, having type string - ParameterId["NestedCalcField"] = "nestedCalcFn"; - // DPI_ParameterName, having type string - ParameterId["ParameterName"] = "parameterName"; - // DPI_ReferenceParam, having type string - ParameterId["ReferenceParam"] = "referenceParam"; - // DPI_ReplacementFieldName, having type string - ParameterId["ReplacementFieldName"] = "replacementFieldName"; - // DPI_RHSTableAlias, having type string - ParameterId["RHSTableAlias"] = "rhsTableAlias"; - // DPI_SortMeasureName, having type string - ParameterId["SortMeasureName"] = "sortMeasureName"; - // DPI_UniqueName, having type string - ParameterId["UniqueName"] = "uniqueName"; - // DPI_ValueColumn, having type string - ParameterId["ValueColumn"] = "valueColumn"; - // DPI_PairedValueColumn, having type string - ParameterId["PairedValueColumn"] = "pairedValueColumn"; - // DPI_ActionIds, having type string[] - ParameterId["ActionIds"] = "actionIds"; - // DPI_AddressingValues, having type string[] - ParameterId["AddressingValues"] = "addressingValues"; - // DPI_AllColumns, having type string[] - ParameterId["AllColumns"] = "allColumns"; - // DPI_AtTheLevelValues, having type string[] - ParameterId["AtTheLevelValues"] = "atTheLevelValues"; - // DPI_AutomaticDrillFieldName, having type string[] - ParameterId["AutomaticDrillFieldName"] = "automaticDrillFieldName"; - // DPI_BlendingFieldCandidates, having type string[] - ParameterId["BlendingFieldCandidates"] = "blendingFieldCandidates"; - // DPI_Columns, having type string[] - ParameterId["Columns"] = "columns"; - // DPI_CurrentBlendingFields, having type string[] - ParameterId["CurrentBlendingFields"] = "currentBlendingFields"; - // DPI_DimensionsToSort, having type string[] - ParameterId["DimensionsToSort"] = "dimensionsToSort"; - // DPI_DrillFieldVector, having type string[] - ParameterId["DrillFieldVector"] = "drillFieldVector"; - // DPI_EncodingFieldVector, having type string[] - ParameterId["EncodingFieldVector"] = "encodingFieldVector"; - // DPI_FieldVector, having type string[] - ParameterId["FieldVector"] = "fieldVector"; - // DPI_FilterFields, having type string[] - ParameterId["FilterFields"] = "filterFields"; - // DPI_LODFieldVector, having type string[] - ParameterId["LODFieldVector"] = "lodFieldVector"; - // DPI_LegendColumns, having type string[] - ParameterId["LegendColumns"] = "legendColumns"; - // DPI_LegendNames, having type string[] - ParameterId["LegendNames"] = "legendNames"; - // DPI_NodeColumns, having type string[] - ParameterId["NodeColumns"] = "nodeColumns"; - // DPI_PageFields, having type string[] - ParameterId["PageFields"] = "pageFields"; - // DPI_ParamValues, having type string[] - ParameterId["ParamValues"] = "paramValues"; - // DPI_RefLineFields, having type string[] - ParameterId["RefLineFields"] = "reflineFields"; - // DPI_ReferencedColumns, having type string[] - ParameterId["ReferencedColumns"] = "referencedColumns"; - // DPI_RelatedFieldNames, having type string[] - ParameterId["RelatedFieldNames"] = "relatedFieldNames"; - // DPI_RemoveActionResults, having type string[] - ParameterId["RemoveActionResults"] = "removeActionResults"; - // DPI_ResponseVector, having type string[] - ParameterId["ResponseVector"] = "responseVector"; - // DPI_RestartEveryValues, having type string[] - ParameterId["RestartEveryValues"] = "restartEveryValues"; - // DPI_ResultFields, having type string[] - ParameterId["ResultFields"] = "resultFields"; - // DPI_SortFieldValues, having type string[] - ParameterId["SortFieldValues"] = "sortFieldValues"; - // DPI_XFields, having type string[] - ParameterId["XFields"] = "xFields"; - // DPI_YFields, having type string[] - ParameterId["YFields"] = "yFields"; - // DPI_ConnectionFullName, having type string - ParameterId["ConnectionFullName"] = "connectionFullName"; - // DPI_ConnectionFullNames, having type string[] - ParameterId["ConnectionFullNames"] = "connectionFullNames"; - // DPI_BoundDataValue, having type object - ParameterId["BoundDataValue"] = "boundDataValue"; - // DPI_DataValue, having type object - ParameterId["DataValue"] = "dataValue"; - // DPI_DataValueIncrement, having type object - ParameterId["DataValueIncrement"] = "dataValueIncrement"; - // DPI_DataValueLowerX, having type object - ParameterId["DataValueLowerX"] = "dataValueLowerX"; - // DPI_DataValueLowerY, having type object - ParameterId["DataValueLowerY"] = "dataValueLowerY"; - // DPI_DataValueUpperX, having type object - ParameterId["DataValueUpperX"] = "dataValueUpperX"; - // DPI_DataValueUpperY, having type object - ParameterId["DataValueUpperY"] = "dataValueUpperY"; - // DPI_DefaultDataValue, having type object - ParameterId["DefaultDataValue"] = "defaultDataValue"; - // DPI_MaxDataValue, having type object - ParameterId["MaxDataValue"] = "maxDataValue"; - // DPI_MinDataValue, having type object - ParameterId["MinDataValue"] = "minDataValue"; - // DPI_ValidatedDataValue, having type object - ParameterId["ValidatedDataValue"] = "validatedDataValue"; - // DPI_BinSize, having type object - ParameterId["BinSize"] = "binSize"; - // DPI_LimitCount, having type object - ParameterId["LimitCount"] = "limitCount"; - // DPI_DataValueList, having type object[] - ParameterId["DataValueList"] = "dataValueList"; - // DPI_FieldCaptionPair, having type FieldCaptionPairPresModel - ParameterId["FieldCaptionPair"] = "fieldCaptionPair"; - // DPI_FieldCaptionPairs, having type FieldCaptionPairPresModel[] - ParameterId["FieldCaptionPairs"] = "fieldCaptionPairs"; - // DPI_ParameterCaptionPairs, having type FieldCaptionPairPresModel[] - ParameterId["ParameterCaptionPairs"] = "parameterCaptionPairs"; - // DPI_VaryingAttributeDimensions, having type FieldCaptionPairPresModel[] - ParameterId["VaryingAttributeDimensions"] = "varyingAttributeDimensions"; - // DPI_FieldCaptionPairState, having type FieldCaptionPairStatePresModel - ParameterId["FieldCaptionPairState"] = "fieldCaptionPairState"; - // DPI_FieldCaptionPairStates, having type FieldCaptionPairStatePresModel[] - ParameterId["FieldCaptionPairStates"] = "fieldCaptionPairStates"; - // DPI_DatasourceCaptionPair, having type DatasourceCaptionPairPresModel - ParameterId["DatasourceCaptionPair"] = "datasourceCaptionPair"; - // DPI_DatasourceCaptionPairs, having type DatasourceCaptionPairPresModel[] - ParameterId["DatasourceCaptionPairs"] = "datasourceCaptionPairs"; - // DPI_SheetNameInfoPair, having type SheetNameInfoPairPresModel - ParameterId["SheetNameInfoPair"] = "sheetNameInfoPair"; - // DPI_SheetNameInfoPairs, having type SheetNameInfoPairPresModel[] - ParameterId["SheetNameInfoPairs"] = "sheetNameInfoPairs"; - // DPI_BGActiveColor, having type string - ParameterId["BGActiveColor"] = "bgActiveColor"; - // DPI_BGColor, having type string - ParameterId["BGColor"] = "bgColor"; - // DPI_BGRestColor, having type string - ParameterId["BGRestColor"] = "bgRestColor"; - // DPI_BorderColor, having type string - ParameterId["BorderColor"] = "borderColor"; - // DPI_BorderColorBottom, having type string - ParameterId["BorderColorBottom"] = "borderColorBottom"; - // DPI_BorderColorLeft, having type string - ParameterId["BorderColorLeft"] = "borderColorLeft"; - // DPI_BorderColorRight, having type string - ParameterId["BorderColorRight"] = "borderColorRight"; - // DPI_BorderColorTop, having type string - ParameterId["BorderColorTop"] = "borderColorTop"; - // DPI_Color, having type string - ParameterId["Color"] = "color"; - // DPI_Color1, having type string - ParameterId["Color1"] = "color1"; - // DPI_Color2, having type string - ParameterId["Color2"] = "color2"; - // DPI_DefaultColor, having type string - ParameterId["DefaultColor"] = "defaultColor"; - // DPI_DistanceFontColor, having type string - ParameterId["DistanceFontColor"] = "distanceFontColor"; - // DPI_FillColor, having type string - ParameterId["FillColor"] = "fillColor"; - // DPI_FogColor, having type string - ParameterId["FogColor"] = "fogColor"; - // DPI_HeaderColor, having type string - ParameterId["HeaderColor"] = "headerColor"; - // DPI_HighlightBGColor, having type string - ParameterId["HighlightBGColor"] = "highlightBgColor"; - // DPI_HighlightTextColor, having type string - ParameterId["HighlightTextColor"] = "highlightTextColor"; - // DPI_HoverColor, having type string - ParameterId["HoverColor"] = "hoverColor"; - // DPI_MapAttributionFill, having type string - ParameterId["MapAttributionFill"] = "mapAttributionFill"; - // DPI_MapAttributionTextColor, having type string - ParameterId["MapAttributionTextColor"] = "mapAttributionTextColor"; - // DPI_MapPaneBackgroundFill, having type string - ParameterId["MapPaneBackgroundFill"] = "mapPaneBackgroundFill"; - // DPI_MapScaleBorderColor, having type string - ParameterId["MapScaleBorderColor"] = "mapScaleBorderColor"; - // DPI_MapScaleColor, having type string - ParameterId["MapScaleColor"] = "mapScaleColor"; - // DPI_MapWaitTileFill, having type string - ParameterId["MapWaitTileFill"] = "mapWaitTileFill"; - // DPI_MarkColor, having type string - ParameterId["MarkColor"] = "markColor"; - // DPI_NavArrowDisabledColor, having type string - ParameterId["NavArrowDisabledColor"] = "navArrowDisabledColor"; - // DPI_NavArrowHoverColor, having type string - ParameterId["NavArrowHoverColor"] = "navArrowHoverColor"; - // DPI_NavArrowIdleColor, having type string - ParameterId["NavArrowIdleColor"] = "navArrowIdleColor"; - // DPI_NavArrowPressedColor, having type string - ParameterId["NavArrowPressedColor"] = "navArrowPressedColor"; - // DPI_PaneColor, having type string - ParameterId["PaneColor"] = "paneColor"; - // DPI_PressColor, having type string - ParameterId["PressColor"] = "pressColor"; - // DPI_ResizeBorderColor, having type string - ParameterId["ResizeBorderColor"] = "resizeBorderColor"; - // DPI_SelectBGColor, having type string - ParameterId["SelectBGColor"] = "selectBgColor"; - // DPI_SelectionTextColor, having type string - ParameterId["SelectionTextColor"] = "selectionTextColor"; - // DPI_SwatchBackgroundColor, having type string - ParameterId["SwatchBackgroundColor"] = "swatchBgColor"; - // DPI_SwatchBorderColor, having type string - ParameterId["SwatchBorderColor"] = "swatchBorderColor"; - // DPI_TabColor, having type string - ParameterId["TabColor"] = "tabColor"; - // DPI_Colors, having type string[] - ParameterId["Colors"] = "colors"; - // DPI_ColorMap, having type Dictionary(of string) - ParameterId["ColorMap"] = "colorMap"; - // DPI_Pixmap, having type string - ParameterId["Pixmap"] = "pixmap"; - // DPI_Image, having type string - ParameterId["Image"] = "image"; - // DPI_OverlayImage, having type string - ParameterId["OverlayImage"] = "overlayImage"; - // DPI_IconImage, having type string - ParameterId["IconImage"] = "iconImage"; - // DPI_ImageList, having type string[] - ParameterId["ImageList"] = "imageList"; - // DPI_ImageMap, having type Dictionary(of string) - ParameterId["ImageMap"] = "imageMap"; - // DPI_UUID, having type object - ParameterId["UUID"] = "uuid"; - // DPI_Nanoseconds, having type object - ParameterId["Nanoseconds"] = "nanoseconds"; - // DPI_Microseconds, having type object - ParameterId["Microseconds"] = "microseconds"; - // DPI_Milliseconds, having type object - ParameterId["Milliseconds"] = "milliseconds"; - // DPI_TimeoutS, having type object - ParameterId["TimeoutS"] = "timeoutS"; - // DPI_Minutes, having type object - ParameterId["Minutes"] = "minutes"; - // DPI_Hours, having type object - ParameterId["Hours"] = "hours"; - // DPI_CardType, having type CardType - ParameterId["CardType"] = "cardType"; - // DPI_DocParameterID, having type string - ParameterId["DocParameterID"] = "type"; - // DPI_ArgumentParam, having type string - ParameterId["ArgumentParam"] = "argumentParam"; - // DPI_ArgumentParams, having type string[] - ParameterId["ArgumentParams"] = "argumentParams"; - // DPI_ActionType, having type ActionType - ParameterId["ActionType"] = "actionType"; - // DPI_AnnotateEnum, having type AnnotateEnum - ParameterId["AnnotateEnum"] = "annotateEnum"; - // DPI_JoinType, having type SQLJoinType - ParameterId["JoinType"] = "joinType"; - // DPI_SupportedJoinTypes, having type SQLJoinType[] - ParameterId["SupportedJoinTypes"] = "supportedJoinTypes"; - // DPI_Rounding, having type Rounding - ParameterId["Rounding"] = "roundingEnum"; - // DPI_BodyType, having type BodyType - ParameterId["BodyType"] = "bodyType"; - // DPI_LineEnd, having type LineEnd - ParameterId["LineEnd"] = "lineEndEnum"; - // DPI_LineEndSize, having type LineEndSize - ParameterId["LineEndSize"] = "lineEndSizeEnum"; - // DPI_BrushSpecialFields, having type BrushSpecialFields - ParameterId["BrushSpecialFields"] = "specialFields"; - // DPI_CellSizeChange, having type CellSizeChange - ParameterId["CellSizeChange"] = "cellSizeChange"; - // DPI_CellType, having type CellType - ParameterId["CellType"] = "cellType"; - // DPI_ConnectionAttemptResult, having type ConnectionAttemptResult - ParameterId["ConnectionAttemptResult"] = "connectionAttemptResult"; - // DPI_ConnectionErrorStage, having type ConnectionErrorStage - ParameterId["ConnectionErrorStage"] = "connectionErrorStage"; - // DPI_ConnectionErrorType, having type ConnectionErrorType - ParameterId["ConnectionErrorType"] = "connectionErrorType"; - // DPI_DataServerConnectionResult, having type DataServerConnectionResult - ParameterId["DataServerConnectionResult"] = "dsConnectionResult"; - // DPI_DropWhen, having type DropWhen - ParameterId["DropWhen"] = "dropWhen"; - // DPI_DropType, having type DropFieldResult - ParameterId["DropType"] = "dropType"; - // DPI_EncodingType, having type EncodingType - ParameterId["EncodingType"] = "encodingType"; - // DPI_DropdownEncodingType, having type EncodingType - ParameterId["DropdownEncodingType"] = "dropdownEncodingType"; - // DPI_EncodingTypes, having type EncodingType[] - ParameterId["EncodingTypes"] = "encodingTypes"; - // DPI_FieldOrderType, having type FieldOrderType - ParameterId["FieldOrderType"] = "fieldOrderType"; - // DPI_FilterIconType, having type FilterIconType - ParameterId["FilterIconType"] = "filterIconType"; - // DPI_FilterIconTypes, having type FilterIconType[] - ParameterId["FilterIconTypes"] = "filterIconTypes"; - // DPI_FloatingToolbarVis, having type FloatingToolbarVisibility - ParameterId["FloatingToolbarVis"] = "toolbarVisibility"; - // DPI_FolderRole, having type FolderRole - ParameterId["FolderRole"] = "folderRole"; - // DPI_LegendType, having type Enum - ParameterId["LegendType"] = "legendType"; - // DPI_ForecastModelType, having type ForecastModelType - ParameterId["ForecastModelType"] = "forecastModelType"; - // DPI_ForecastTrendType, having type ForecastComponentType - ParameterId["ForecastTrendType"] = "forecastTrendType"; - // DPI_ForecastSeasonType, having type ForecastComponentType - ParameterId["ForecastSeasonType"] = "forecastSeasonType"; - // DPI_ForecastRangeType, having type ForecastRangeType - ParameterId["ForecastRangeType"] = "forecastRangeType"; - // DPI_ForecastStatus, having type ForecastStatus - ParameterId["ForecastStatus"] = "forecastStatus"; - // DPI_SheetForecastStatus, having type ForecastStatus - ParameterId["SheetForecastStatus"] = "sheetForecastStatus"; - // DPI_PDForecastStatusList, having type ForecastStatus[] - ParameterId["PDForecastStatusList"] = "paneDescriptorForecastStatusList"; - // DPI_ForecastColumnType, having type ForecastColumnType - ParameterId["ForecastColumnType"] = "forecastColumnType"; - // DPI_DataScaling, having type DataScaling - ParameterId["DataScaling"] = "dataScaling"; - // DPI_GetFilterItemsJsonResponse, having type GetJsonResponseEnum - ParameterId["GetFilterItemsJsonResponse"] = "getFilterItemsJsonResponse"; - // DPI_FilterSearchJsonResponse, having type GetJsonResponseEnum - ParameterId["FilterSearchJsonResponse"] = "filterSearchJsonResponse"; - // DPI_FilterSearchWithIndexJsonResponse, having type GetJsonResponseEnum - ParameterId["FilterSearchWithIndexJsonResponse"] = "filterSearchWithIndexJsonResponse"; - // DPI_FilterShowChildrenJsonResponse, having type GetJsonResponseEnum - ParameterId["FilterShowChildrenJsonResponse"] = "filterShowChildrenJsonResponse"; - // DPI_HAlignment, having type LabelHAlignment - ParameterId["HAlignment"] = "horizontalLabelAlignment"; - // DPI_JoinValidationError, having type JoinValidationError - ParameterId["JoinValidationError"] = "joinValidationError"; - // DPI_NameConflictResolution, having type NameConflictResolution - ParameterId["NameConflictResolution"] = "nameConflictResolution"; - // DPI_LabelDir, having type TextOrient - ParameterId["LabelDir"] = "labelDirection"; - // DPI_LabelAlign, having type TextAlign - ParameterId["LabelAlign"] = "labelAlignment"; - // DPI_LabelWrap, having type TextWrapMode - ParameterId["LabelWrap"] = "labelWrap"; - // DPI_WrapMode, having type TextWrapMode - ParameterId["WrapMode"] = "wrapMode"; - // DPI_MarkEnum, having type MarkEnum - ParameterId["MarkEnum"] = "markEnum"; - // DPI_PercentMode, having type PercentMode - ParameterId["PercentMode"] = "percentageMode"; - // DPI_ReferenceOptionsSet, having type ReferenceOptionsSet - ParameterId["ReferenceOptionsSet"] = "referenceOptionsSet"; - // DPI_ReferenceOptionsSets, having type ReferenceOptionsSet[] - ParameterId["ReferenceOptionsSets"] = "referenceOptionsSets"; - // DPI_RankType, having type RankType - ParameterId["RankType"] = "rankType"; - // DPI_RankTypeValues, having type RankType[] - ParameterId["RankTypeValues"] = "rankTypeValues"; - // DPI_SpecialValuesMode, having type SpecialValuesMode - ParameterId["SpecialValuesMode"] = "specialValuesMode"; - // DPI_VAlignment, having type LabelVAlignment - ParameterId["VAlignment"] = "verticalLabelAlignment"; - // DPI_ColorMode, having type ColorMode - ParameterId["ColorMode"] = "colorMode"; - // DPI_MarkLabelsMode, having type MarkLabelsMode - ParameterId["MarkLabelsMode"] = "markLabelsMode"; - // DPI_MarkLabelsScope, having type MarkLabelsScope - ParameterId["MarkLabelsScope"] = "markLabelsScope"; - // DPI_MarkLabelsVisibility, having type MarkLabelsVisibility - ParameterId["MarkLabelsVisibility"] = "markLabelsVisibility"; - // DPI_PrimitiveType, having type PrimitiveType - ParameterId["PrimitiveType"] = "primitiveType"; - // DPI_ActualPrimitiveType, having type PrimitiveType - ParameterId["ActualPrimitiveType"] = "actualPrimitiveType"; - // DPI_PrimitiveTypes, having type PrimitiveType[] - ParameterId["PrimitiveTypes"] = "primitiveTypes"; - // DPI_ShapeType, having type ShapeType - ParameterId["ShapeType"] = "shapeType"; - // DPI_SortType, having type SortType - ParameterId["SortType"] = "sortBy"; - // DPI_SortEnd, having type SortEnd - ParameterId["SortEnd"] = "sortEnd"; - // DPI_StackingMode, having type StackingMode - ParameterId["StackingMode"] = "stackingMode"; - // DPI_StyleTheme, having type StyleTheme - ParameterId["StyleTheme"] = "styleTheme"; - // DPI_TrendLineFitType, having type TrendLineFitType - ParameterId["TrendLineFitType"] = "fitType"; - // DPI_UpdateScope, having type UpdateScope - ParameterId["UpdateScope"] = "updateScope"; - // DPI_ParameterCtrlDisplayMode, having type DisplayMode - ParameterId["ParameterCtrlDisplayMode"] = "paramDisplayMode"; - // DPI_ParameterCtrlDisplayFlag, having type ParameterCtrlDisplayFlag - ParameterId["ParameterCtrlDisplayFlag"] = "paramDisplayFlag"; - // DPI_Included, having type QuantitativeIncludedValues - ParameterId["Included"] = "included"; - // DPI_CommandsType, having type CommandsType - ParameterId["CommandsType"] = "commandsType"; - // DPI_ParameterDomainType, having type DomainType - ParameterId["ParameterDomainType"] = "parameterDomainType"; - // DPI_FilterDomainType, having type DomainType - ParameterId["FilterDomainType"] = "filterDomainType"; - // DPI_FilterDomains, having type DomainType[] - ParameterId["FilterDomains"] = "filterDomains"; - // DPI_CategoricalFilterType, having type CategoricalFilterType - ParameterId["CategoricalFilterType"] = "categoricalFilterType"; - // DPI_DatePeriodType, having type DatePeriodType - ParameterId["DatePeriodType"] = "datePeriodType"; - // DPI_FilterPatternType, having type PatternType - ParameterId["FilterPatternType"] = "filterPatternType"; - // DPI_FilterConditionType, having type ConditionType - ParameterId["FilterConditionType"] = "filterConditionType"; - // DPI_FiltersPresetType, having type PresetType - ParameterId["FiltersPresetType"] = "filtersPresetType"; - // DPI_FiltersRangeType, having type RangeType - ParameterId["FiltersRangeType"] = "filtersRangeType"; - // DPI_DateRangeType, having type RelativeDateRangeType - ParameterId["DateRangeType"] = "dateRangeType"; - // DPI_PageFlag, having type PageNavFlags - ParameterId["PageFlag"] = "pageFlag"; - // DPI_MarksToTrail, having type MarksToTrail - ParameterId["MarksToTrail"] = "marksToTrail"; - // DPI_TrailType, having type TrailType - ParameterId["TrailType"] = "trailType"; - // DPI_ChangePageDirection, having type ChangePageType - ParameterId["ChangePageDirection"] = "changeTo"; - // DPI_AnimationControl, having type PageAnimationControl - ParameterId["AnimationControl"] = "animationControl"; - // DPI_LinePattern, having type LinePattern - ParameterId["LinePattern"] = "linePattern"; - // DPI_LineCap, having type LineCap - ParameterId["LineCap"] = "lineCap"; - // DPI_LineJoin, having type LineJoin - ParameterId["LineJoin"] = "lineJoin"; - // DPI_LineAlignment, having type LineAlignment - ParameterId["LineAlignment"] = "lineAlignment"; - // DPI_FillMode, having type FillMode - ParameterId["FillMode"] = "fillMode"; - // DPI_CursorShape, having type CursorShape - ParameterId["CursorShape"] = "cursorShape"; - // DPI_ShowMeCommandType, having type ShowMeCommandType - ParameterId["ShowMeCommandType"] = "showMeCommandType"; - // DPI_ShelfIconType, having type ShelfIconType - ParameterId["ShelfIconType"] = "shelfIconType"; - // DPI_ShelfIconTypes, having type ShelfIconType[] - ParameterId["ShelfIconTypes"] = "shelfIconTypes"; - // DPI_ItemDrawStyle, having type ItemDrawStyle - ParameterId["ItemDrawStyle"] = "itemDrawStyle"; - // DPI_ScaleMode, having type ScaleMode - ParameterId["ScaleMode"] = "pageScaleMode"; - // DPI_PageOrientationOption, having type PageOrientation - ParameterId["PageOrientationOption"] = "pageOrientationOption"; - // DPI_PageSizeOption, having type PageSizeOption - ParameterId["PageSizeOption"] = "pageSizeOption"; - // DPI_SortRegionType, having type SortRegionType - ParameterId["SortRegionType"] = "sortRegion"; - // DPI_LegendItemLayout, having type LegendItemLayout - ParameterId["LegendItemLayout"] = "legendLayout"; - // DPI_LegendItemOrder, having type LegendItemOrder - ParameterId["LegendItemOrder"] = "legendOrder"; - // DPI_VizImageRegion, having type VizImageRegion - ParameterId["VizImageRegion"] = "r"; - // DPI_LegacyMenuName, having type LegacyMenuName - ParameterId["LegacyMenuName"] = "legacyMenuName"; - // DPI_LegacyMenuState, having type LegacyMenuState - ParameterId["LegacyMenuState"] = "legacyMenuState"; - // DPI_LegacyMenuStateList, having type LegacyMenuState[] - ParameterId["LegacyMenuStateList"] = "legacyMenuStates"; - // DPI_DimensionType, having type DimensionType - ParameterId["DimensionType"] = "dimensionType"; - // DPI_LayoutType, having type LayoutType - ParameterId["LayoutType"] = "layoutType"; - // DPI_ShelfType, having type ShelfType - ParameterId["ShelfType"] = "shelfType"; - // DPI_LastSelectionShelf, having type ShelfType - ParameterId["LastSelectionShelf"] = "lastShelf"; - // DPI_SchemaViewerDataSourceType, having type SchemaViewerDataSourceType - ParameterId["SchemaViewerDataSourceType"] = "schemaDatasourceType"; - // DPI_SchemaItemType, having type SchemaItemType - ParameterId["SchemaItemType"] = "schemaItemType"; - // DPI_HSMSelectionMode, having type SelectionMode - ParameterId["HSMSelectionMode"] = "hsmSelectionMode"; - // DPI_HSMDefaultMemberType, having type DefaultMemberType - ParameterId["HSMDefaultMemberType"] = "hsmDefaultMemberType"; - // DPI_HSMNotificationType, having type NotificationType - ParameterId["HSMNotificationType"] = "hsmNotificationType"; - // DPI_HSMSelectionRequestType, having type SelectionRequestType - ParameterId["HSMSelectionRequestType"] = "hsmSelectionRequestType"; - // DPI_HSMMemberSelectRequestType, having type MemberSelectRequestType - ParameterId["HSMMemberSelectRequestType"] = "hsmMemberSelectRequestType"; - // DPI_PivotStrategy, having type FieldPivotStrategy - ParameterId["PivotStrategy"] = "pivotStrategy"; - // DPI_AliasType, having type AliasType - ParameterId["AliasType"] = "aliasType"; - // DPI_DSODimensionSortOrder, having type DataSourceOrder - ParameterId["DSODimensionSortOrder"] = "dsoDimensionSortOrder"; - // DPI_DSOMeasureSortOrder, having type DataSourceOrder - ParameterId["DSOMeasureSortOrder"] = "dsoMeasureSortOrder"; - // DPI_DSOSortOrder, having type DataSourceOrder - ParameterId["DSOSortOrder"] = "dsoSortOrder"; - // DPI_VTAggType, having type VTAggType - ParameterId["VTAggType"] = "vtAggregation"; - // DPI_FieldTypeIconSet, having type FieldTypeIconSet - ParameterId["FieldTypeIconSet"] = "fieldIconSet"; - // DPI_VisualPart, having type VisualPart - ParameterId["VisualPart"] = "visualPart"; - // DPI_DefaultMapToolEnum, having type MapToolSelection - ParameterId["DefaultMapToolEnum"] = "defaultMapToolEnum"; - // DPI_DefaultMapUnitEnum, having type MapUnitSelectionEnum - ParameterId["DefaultMapUnitEnum"] = "defaultMapUnitEnum"; - // DPI_SceneModelDetail, having type Detail - ParameterId["SceneModelDetail"] = "sceneModelDetailEnum"; - // DPI_SceneModelHitType, having type HitType - ParameterId["SceneModelHitType"] = "sceneModelHitType"; - // DPI_HitTestStyle, having type HitTestStyle - ParameterId["HitTestStyle"] = "hitTestStyle"; - // DPI_MarkState, having type MarkState - ParameterId["MarkState"] = "markState"; - // DPI_SheetType, having type SheetType - ParameterId["SheetType"] = "sheetType"; - // DPI_DragSource, having type DragDropType - ParameterId["DragSource"] = "dragSource"; - // DPI_DropTarget, having type DragDropType - ParameterId["DropTarget"] = "dropTarget"; - // DPI_ShelfDropAction, having type ShelfDropAction - ParameterId["ShelfDropAction"] = "shelfDropAction"; - // DPI_ShelfDropContext, having type ShelfDropContext - ParameterId["ShelfDropContext"] = "shelfDropContext"; - // DPI_FilterSelectionTracking, having type SelectionTracking - ParameterId["FilterSelectionTracking"] = "filterSelectionTracking"; - // DPI_FilterUpdateType, having type FilterUpdateType - ParameterId["FilterUpdateType"] = "filterUpdateType"; - // DPI_FilterUpdateQualifierType, having type FilterUpdateQualifierType - ParameterId["FilterUpdateQualifierType"] = "filterUpdateQualifierType"; - // DPI_ParameterError, having type ParameterError - ParameterId["ParameterError"] = "parameterError"; - // DPI_SelectionType, having type SelectionType - ParameterId["SelectionType"] = "selectionType"; - // DPI_SelectionUpdateType, having type SelectionUpdateType - ParameterId["SelectionUpdateType"] = "selectionUpdateType"; - // DPI_SelectOptions, having type SelectOptions - ParameterId["SelectOptions"] = "selectOptions"; - // DPI_WhitespaceSelectionBehavior, having type WhitespaceSelectionBehavior - ParameterId["WhitespaceSelectionBehavior"] = "whitespaceSelectionBehavior"; - // DPI_AxisOrientation, having type Orientation - ParameterId["AxisOrientation"] = "axisOrientation"; - // DPI_DecimalMode, having type DecimalMode - ParameterId["DecimalMode"] = "decimalMode"; - // DPI_ActivationMethod, having type ActivationMethod - ParameterId["ActivationMethod"] = "activation"; - // DPI_SourceType, having type SourceType - ParameterId["SourceType"] = "sourceType"; - // DPI_OnClear, having type OnClear - ParameterId["OnClear"] = "onClear"; - // DPI_MergeOrSplit, having type MergeOrSplit - ParameterId["MergeOrSplit"] = "mergeOrSplit"; - // DPI_FilterMode, having type FilterMode - ParameterId["FilterMode"] = "filterMode"; - // DPI_FilterType, having type FilterType - ParameterId["FilterType"] = "filterType"; - // DPI_ZoneType, having type ZoneType - ParameterId["ZoneType"] = "zoneType"; - // DPI_ZoneLayoutType, having type ZoneLayoutType - ParameterId["ZoneLayoutType"] = "zoneLayoutType"; - // DPI_QuickTableCalcType, having type QuickTableCalcCommandType - ParameterId["QuickTableCalcType"] = "quickTableCalcType"; - // DPI_TableCalcCommandType, having type TableCalcCommandType - ParameterId["TableCalcCommandType"] = "tableCalcCommandType"; - // DPI_TableCalcAddressType, having type TableCalcAddressCommandType - ParameterId["TableCalcAddressType"] = "tableCalcAddressType"; - // DPI_MarkLayoutPrimitive, having type Primitive - ParameterId["MarkLayoutPrimitive"] = "markLayoutPrimitive"; - // DPI_MarkLayoutVizType, having type VizType - ParameterId["MarkLayoutVizType"] = "markLayoutVizType"; - // DPI_MarkAlignment, having type MarkAlignment - ParameterId["MarkAlignment"] = "markAlignment"; - // DPI_ModifyZoneZOrderType, having type ModifyZoneZOrderCommandType - ParameterId["ModifyZoneZOrderType"] = "modifyZoneZOrderType"; - // DPI_TextRegionHAlign, having type TextRegionHAlign - ParameterId["TextRegionHAlign"] = "halign"; - // DPI_TextRegionVAlign, having type TextRegionVAlign - ParameterId["TextRegionVAlign"] = "valign"; - // DPI_PathElement, having type PathElement - ParameterId["PathElement"] = "pathElement"; - // DPI_PathElements, having type PathElement[] - ParameterId["PathElements"] = "pathElements"; - // DPI_RenderMode, having type RenderMode - ParameterId["RenderMode"] = "renderMode"; - // DPI_FontStyle, having type TableauFontStyle - ParameterId["FontStyle"] = "fontStyle"; - // DPI_FontWeight, having type FontWeight - ParameterId["FontWeight"] = "fontWeight"; - // DPI_TextDecoration, having type TextDecoration - ParameterId["TextDecoration"] = "textDecoration"; - // DPI_BorderStyle, having type BorderStyle - ParameterId["BorderStyle"] = "borderStyle"; - // DPI_BorderStyleTop, having type BorderStyle - ParameterId["BorderStyleTop"] = "borderStyleTop"; - // DPI_BorderStyleRight, having type BorderStyle - ParameterId["BorderStyleRight"] = "borderStyleRight"; - // DPI_BorderStyleBottom, having type BorderStyle - ParameterId["BorderStyleBottom"] = "borderStyleBottom"; - // DPI_BorderStyleLeft, having type BorderStyle - ParameterId["BorderStyleLeft"] = "borderStyleLeft"; - // DPI_FloatingToolbarVisibility, having type FloatingToolbarVisibility - ParameterId["FloatingToolbarVisibility"] = "floatingToolbarVisibility"; - // DPI_GeoSearchVisibility, having type GeoSearchVisibility - ParameterId["GeoSearchVisibility"] = "geographicSearchVisibility"; - // DPI_MapScaleVisibility, having type MapScaleVisibility - ParameterId["MapScaleVisibility"] = "mapScaleVisibility"; - // DPI_VizNavigationSetting, having type VizNavigationSetting - ParameterId["VizNavigationSetting"] = "vizNavigationSetting"; - // DPI_AutoDrillVisibility, having type AutoDrillVisibility - ParameterId["AutoDrillVisibility"] = "autoDrillVisibility"; - // DPI_ClientUIMetricType, having type ClientUIMetricType - ParameterId["ClientUIMetricType"] = "clientUiMetricType"; - // DPI_SheetScrollDirection, having type SheetScrollDirection - ParameterId["SheetScrollDirection"] = "sheetScrollDirection"; - // DPI_SizeMode, having type SizeMode - ParameterId["SizeMode"] = "sizeMode"; - // DPI_PerspectiveAggregate, having type PerspectiveAggregate - ParameterId["PerspectiveAggregate"] = "perspectiveAggregation"; - // DPI_StyleAttribute, having type StyleAttribute - ParameterId["StyleAttribute"] = "styleAttribute"; - // DPI_StyleAttributes, having type StyleAttribute[] - ParameterId["StyleAttributes"] = "styleAttributes"; - // DPI_StyleElement, having type StyleElement - ParameterId["StyleElement"] = "styleElement"; - // DPI_StyleDataClass, having type StyleDataClass - ParameterId["StyleDataClass"] = "styleClass"; - // DPI_StyleFieldScope, having type StyleFieldScope - ParameterId["StyleFieldScope"] = "styleScope"; - // DPI_FormatControlType, having type FormatControlType - ParameterId["FormatControlType"] = "formatType"; - // DPI_LineInterpolationMode, having type LineInterpolationMode - ParameterId["LineInterpolationMode"] = "lineInterpolationMode"; - // DPI_LineMarkerPosition, having type LineMarkerPosition - ParameterId["LineMarkerPosition"] = "lineMarkerPosition"; - // DPI_MarkersMode, having type MarkMarkersMode - ParameterId["MarkersMode"] = "markersMode"; - // DPI_AppConfigEnum, having type AppConfigEnum - ParameterId["AppConfigEnum"] = "appConfigEnum"; - // DPI_ColorPaletteType, having type ColorPaletteType - ParameterId["ColorPaletteType"] = "colorPaletteType"; - // DPI_ExtractType, having type ExtractType - ParameterId["ExtractType"] = "extractType"; - // DPI_ActivityDisposition, having type ActivityDisposition - ParameterId["ActivityDisposition"] = "activityDisposition"; - // DPI_ActivityResult, having type ActivityResult - ParameterId["ActivityResult"] = "activityResult"; - // DPI_TooltipMode, having type TooltipMode - ParameterId["TooltipMode"] = "tooltipMode"; - // DPI_RuntimeOutput, having type RuntimeOutput - ParameterId["RuntimeOutput"] = "runtimeOutput"; - // DPI_AnalyticsObjectType, having type AnalyticsObjectType - ParameterId["AnalyticsObjectType"] = "analyticsObjectType"; - // DPI_UIAutomationStatus, having type UIAutomationCommandStatus - ParameterId["UIAutomationStatus"] = "uiAutomationStatus"; - // DPI_TableViewDataType, having type TableViewDataType - ParameterId["TableViewDataType"] = "tableViewerDataType"; - // DPI_UnitsFormat, having type UnitsFormatEnum - ParameterId["UnitsFormat"] = "unitsFormat"; - // DPI_FilterLimitType, having type LimitType - ParameterId["FilterLimitType"] = "filterLimitType"; - // DPI_DistributionSelectedType, having type DistributionType - ParameterId["DistributionSelectedType"] = "distributionSelectedType"; - // DPI_DistributionType, having type DistributionType - ParameterId["DistributionType"] = "distributionType"; - // DPI_TranslatedDistributionType, having type TranslatedDistributionTypePresModel - ParameterId["TranslatedDistributionType"] = "translatedDistributionType"; - // DPI_TranslatedDistributionTypes, having type TranslatedDistributionTypePresModel[] - ParameterId["TranslatedDistributionTypes"] = "translatedDistributionTypes"; - // DPI_RefLineFormulaGroup, having type FormulaGroup - ParameterId["RefLineFormulaGroup"] = "reflineFormulaGroup"; - // DPI_ReferenceLineScopeType, having type ScopeType - ParameterId["ReferenceLineScopeType"] = "referenceLineScopeType"; - // DPI_StDevType, having type StDevType - ParameterId["StDevType"] = "stdevType"; - // DPI_ShowBounds, having type ShowBounds - ParameterId["ShowBounds"] = "showBounds"; - // DPI_BoxplotWhiskerType, having type BoxplotWhiskerType - ParameterId["BoxplotWhiskerType"] = "boxplotWhiskerType"; - // DPI_ReferenceLineLabelType, having type LabelType - ParameterId["ReferenceLineLabelType"] = "referenceLineLabelType"; - // DPI_PairedReferenceLineLabelType, having type LabelType - ParameterId["PairedReferenceLineLabelType"] = "pairedReferenceLineLabelType"; - // DPI_ConfidenceIntervalSelectedState, having type ConfidenceIntervalState - ParameterId["ConfidenceIntervalSelectedState"] = "confidenceIntervalSelectedState"; - // DPI_ConfidenceIntervalState, having type ConfidenceIntervalState - ParameterId["ConfidenceIntervalState"] = "confidenceIntervalState"; - // DPI_TranslatedLabelType, having type TranslatedLabelTypePresModel - ParameterId["TranslatedLabelType"] = "translatedLabelType"; - // DPI_ReferenceLineValidLabelTypes, having type TranslatedLabelTypePresModel[] - ParameterId["ReferenceLineValidLabelTypes"] = "validReferenceLineLabelTypes"; - // DPI_ReferenceLineFormulaType, having type FormulaType - ParameterId["ReferenceLineFormulaType"] = "referenceLineFormulaType"; - // DPI_PairedReferenceLineFormulaType, having type FormulaType - ParameterId["PairedReferenceLineFormulaType"] = "pairedReferenceLineFormulaType"; - // DPI_TranslatedFormulaType, having type TranslatedFormulaTypePresModel - ParameterId["TranslatedFormulaType"] = "translatedFormulaType"; - // DPI_ReferenceLineValidFormulaTypes, having type TranslatedFormulaTypePresModel[] - ParameterId["ReferenceLineValidFormulaTypes"] = "validReferenceLineFormulaTypes"; - // DPI_ReferenceLineValidPairedFormulaTypes, having type TranslatedFormulaTypePresModel[] - ParameterId["ReferenceLineValidPairedFormulaTypes"] = "validReferenceLinePairedFormulaTypes"; - // DPI_TranslatedConfidenceIntervalState, having type TranslatedConfidenceIntervalStatePresModel - ParameterId["TranslatedConfidenceIntervalState"] = "translatedConfidenceIntervalState"; - // DPI_TranslatedConfidenceIntervalStates, having type TranslatedConfidenceIntervalStatePresModel[] - ParameterId["TranslatedConfidenceIntervalStates"] = "translatedConfidenceIntervalStates"; - // DPI_TranslatedStDevType, having type TranslatedStDevTypePresModel - ParameterId["TranslatedStDevType"] = "translatedStdevType"; - // DPI_TranslatedStDevTypes, having type TranslatedStDevTypePresModel[] - ParameterId["TranslatedStDevTypes"] = "translatedStdevTypes"; - // DPI_ReferenceLineLODCalcType, having type LODCalcType - ParameterId["ReferenceLineLODCalcType"] = "referenceLineLodCalcType"; - // DPI_ValueDomainType, having type ValueDomainType - ParameterId["ValueDomainType"] = "valueDomainType"; - // DPI_ValueDomainTypes, having type ValueDomainType[] - ParameterId["ValueDomainTypes"] = "valueDomainTypes"; - // DPI_OperationType, having type OperationType - ParameterId["OperationType"] = "operationType"; - // DPI_OperationTypes, having type OperationType[] - ParameterId["OperationTypes"] = "operationTypes"; - // DPI_ConnectionTypeCategory, having type ConnectionTypeCategory - ParameterId["ConnectionTypeCategory"] = "connectionTypeCategory"; - // DPI_ConnectionTypeGroup, having type ConnectionTypeGroup - ParameterId["ConnectionTypeGroup"] = "connectionTypeGroup"; - // DPI_CommandRedirectType, having type CommandRedirectType - ParameterId["CommandRedirectType"] = "commandRedirectType"; - // DPI_CustomSplitMode, having type SplitMode - ParameterId["CustomSplitMode"] = "customSplitMode"; - // DPI_CustomSplitSeparatorType, having type SeparatorType - ParameterId["CustomSplitSeparatorType"] = "customSplitSeparatorType"; - // DPI_LevelSelectionState, having type LevelSelectionState - ParameterId["LevelSelectionState"] = "levelSelectionState"; - // DPI_LevelSelectionStates, having type LevelSelectionState[] - ParameterId["LevelSelectionStates"] = "levelSelectionStates"; - // DPI_SourceDestIcon, having type SourceDestIcon - ParameterId["SourceDestIcon"] = "sourceDestIcon"; - // DPI_LegendLayout, having type LegendLayout - ParameterId["LegendLayout"] = "pageLegendLayout"; - // DPI_ImagesEditResultCode, having type ImagesEditResultCode - ParameterId["ImagesEditResultCode"] = "imagesEditResultCode"; - // DPI_CalculationContext, having type CalculationContext - ParameterId["CalculationContext"] = "calculationContext"; - // DPI_WorkgroupPublishErrorType, having type WorkgroupPublishErrorType - ParameterId["WorkgroupPublishErrorType"] = "workgroupPublishErrorType"; - // DPI_IsParameter, having type TriBool - ParameterId["IsParameter"] = "isParameter"; - // DPI_AddressingState, having type WidgetState - ParameterId["AddressingState"] = "addressingState"; - // DPI_AllPagesState, having type WidgetState - ParameterId["AllPagesState"] = "allPagesState"; - // DPI_AtTheLevelState, having type WidgetState - ParameterId["AtTheLevelState"] = "atTheLevelState"; - // DPI_ComputeCompoundedRateState, having type WidgetState - ParameterId["ComputeCompoundedRateState"] = "computeCompoundedRateState"; - // DPI_CustomNullIfIncompleteState, having type WidgetState - ParameterId["CustomNullIfIncompleteState"] = "customNullIfIncompleteState"; - // DPI_NestedCalcsState, having type WidgetState - ParameterId["NestedCalcsState"] = "nestedCalcsState"; - // DPI_RankTypeState, having type WidgetState - ParameterId["RankTypeState"] = "rankTypeState"; - // DPI_ReferenceOptionsState, having type WidgetState - ParameterId["ReferenceOptionsState"] = "referenceOptionsState"; - // DPI_RestartEveryState, having type WidgetState - ParameterId["RestartEveryState"] = "restartEveryState"; - // DPI_SortAggState, having type WidgetState - ParameterId["SortAggState"] = "sortAggState"; - // DPI_SortState, having type WidgetState - ParameterId["SortState"] = "sortState"; - // DPI_TableCalcTypeState, having type WidgetState - ParameterId["TableCalcTypeState"] = "tableCalcTypeState"; - // DPI_TableCalcAssistanceWidgetState, having type WidgetState - ParameterId["TableCalcAssistanceWidgetState"] = "tableCalcAssistanceWidgetState"; - // DPI_CalcNestingLevel, having type CalcNestingLevel - ParameterId["CalcNestingLevel"] = "calcNestingLevel"; - // DPI_DataProviderType, having type DataProviderType - ParameterId["DataProviderType"] = "dataProviderType"; - // DPI_HeuristicCommandReinterpretation, having type HeuristicCommandReinterpretation - ParameterId["HeuristicCommandReinterpretation"] = "heuristicCommandReinterpretation"; - // DPI_ExtractRefreshStatus, having type ExtractRefreshStatus - ParameterId["ExtractRefreshStatus"] = "extractRefreshStatus"; - // DPI_RichTextEditorWidgetKey, having type RichTextEditorWidgetKey - ParameterId["RichTextEditorWidgetKey"] = "richTextEditorWidgetKey"; - // DPI_RichTextWidgetKeys, having type RichTextEditorWidgetKey[] - ParameterId["RichTextWidgetKeys"] = "richTextWidgetKeys"; - // DPI_TypeOfFormatItem, having type TypeOfFormatItem - ParameterId["TypeOfFormatItem"] = "typeOfFormatItem"; - // DPI_TypeOfFormatContainer, having type TypeOfFormatContainer - ParameterId["TypeOfFormatContainer"] = "typeOfFormatContainer"; - // DPI_TypeOfFormatControl, having type TypeOfFormatControl - ParameterId["TypeOfFormatControl"] = "typeOfFormatControl"; - // DPI_FormatWidgetKey, having type FormatWidgetKey - ParameterId["FormatWidgetKey"] = "formatWidgetKey"; - // DPI_ColorSwatchType, having type ColorSwatchType - ParameterId["ColorSwatchType"] = "formatColorSwatchType"; - // DPI_PickerType, having type PickerType - ParameterId["PickerType"] = "pickerType"; - // DPI_ExtractHistoryRefreshType, having type RefreshType - ParameterId["ExtractHistoryRefreshType"] = "extractHistoryRefreshTypeEnum"; - // DPI_AxisFoldState, having type AxisFoldState - ParameterId["AxisFoldState"] = "axisFoldState"; - // DPI_TickMarkSpacingUnits, having type TickSpacingUnits - ParameterId["TickMarkSpacingUnits"] = "tickSpacingUnits"; - // DPI_TickMarkState, having type TickMarkState - ParameterId["TickMarkState"] = "tickMarkState"; - // DPI_AxisRangeType, having type AxisRangeType - ParameterId["AxisRangeType"] = "axisRangeType"; - // DPI_ScaleType, having type ScaleType - ParameterId["ScaleType"] = "scaleType"; - // DPI_DashboardDeviceLayout, having type DashboardDeviceLayout - ParameterId["DashboardDeviceLayout"] = "dashboardDeviceLayout"; - // DPI_ActivateDeviceLayout, having type DashboardDeviceLayout - ParameterId["ActivateDeviceLayout"] = "activateDeviceLayout"; - // DPI_DashboardDeviceLayouts, having type DashboardDeviceLayout[] - ParameterId["DashboardDeviceLayouts"] = "dashboardDeviceLayouts"; - // DPI_DeviceSource, having type DeviceSource - ParameterId["DeviceSource"] = "deviceSource"; - // DPI_DashboardSizingDimension, having type DashboardSizingDimension - ParameterId["DashboardSizingDimension"] = "dashboardSizingDimension"; - // DPI_GridOverlayMode, having type GridOverlayMode - ParameterId["GridOverlayMode"] = "gridOverlayMode"; - // DPI_DashboardSizingMode, having type DashboardSizingMode - ParameterId["DashboardSizingMode"] = "dashboardSizingMode"; - // DPI_FlipboardNavType, having type FlipboardNavType - ParameterId["FlipboardNavType"] = "flipboardNavType"; - // DPI_FieldPickerDialogUseCase, having type FieldPickerDialogUseCase - ParameterId["FieldPickerDialogUseCase"] = "fieldPickerDialogUseCase"; - // DPI_StartOfWeekEnum, having type SOWValue - ParameterId["StartOfWeekEnum"] = "startOfWeekEnum"; - // DPI_StartOfFiscalYear, having type FYSValues - ParameterId["StartOfFiscalYear"] = "startOfFiscalYear"; - // DPI_TotalsInclusionValue, having type TotalsInclusion - ParameterId["TotalsInclusionValue"] = "totalsInclusionValue"; - // DPI_FormatCode, having type FormatCode - ParameterId["FormatCode"] = "formatCode"; - // DPI_FindType, having type FindType - ParameterId["FindType"] = "findType"; - // DPI_PerspectiveType, having type PerspectiveType - ParameterId["PerspectiveType"] = "perspectiveType"; - // DPI_GeometryType, having type GeometryType - ParameterId["GeometryType"] = "geometryType"; - // DPI_PaneLabelComposition, having type PaneLabelComposition - ParameterId["PaneLabelComposition"] = "paneLabelComposition"; - // DPI_WarningType, having type WarningType - ParameterId["WarningType"] = "warningType"; - // DPI_UIMode, having type WorkbookUIMode - ParameterId["UIMode"] = "uiMode"; - // DPI_MenuItemId, having type TopLevelMenuItem - ParameterId["MenuItemId"] = "menuItemId"; - // DPI_CommandReturn, having type object - ParameterId["CommandReturn"] = "commandReturn"; - // DPI_LegacyPresModel, having type object - ParameterId["LegacyPresModel"] = "legacyPresModel"; - // DPI_PresentationModel, having type object - ParameterId["PresentationModel"] = "presModelHolder"; - // DPI_Event, having type object - ParameterId["Event"] = "eventContainer"; - // DPI_LineStyle, having type Array - ParameterId["LineStyle"] = "lineStyle"; - // DPI_StrokeStyle, having type Array - ParameterId["StrokeStyle"] = "strokeStyle"; - // DPI_Schema, having type Array - ParameterId["Schema"] = "schema"; - // DPI_StartTuple, having type Array - ParameterId["StartTuple"] = "startTuple"; - // DPI_EndTuple, having type Array - ParameterId["EndTuple"] = "endTuple"; - // DPI_Tuple, having type Array - ParameterId["Tuple"] = "tuple"; - // DPI_Tuples, having type Array[] - ParameterId["Tuples"] = "tuples"; - // DPI_CustomDomainTuples, having type Array[] - ParameterId["CustomDomainTuples"] = "customDomainTuples"; - // DPI_UpdatedTuples, having type Array[] - ParameterId["UpdatedTuples"] = "updatedTuples"; - // DPI_Table, having type Array - ParameterId["Table"] = "table"; - // DPI_AliasedValue, having type Array - ParameterId["AliasedValue"] = "valueAlias"; - // DPI_FirstAliasedValue, having type Array - ParameterId["FirstAliasedValue"] = "firstAlisedValue"; - // DPI_MaximumRange, having type Array - ParameterId["MaximumRange"] = "maximumRangeValue"; - // DPI_MinimumRange, having type Array - ParameterId["MinimumRange"] = "minimumRangeValue"; - // DPI_SecondAliasedValue, having type Array - ParameterId["SecondAliasedValue"] = "secondAlisedValue"; - // DPI_AliasedSelectionList, having type Array[] - ParameterId["AliasedSelectionList"] = "aliasedSelectionList"; - // DPI_AliasedValues, having type Array[] - ParameterId["AliasedValues"] = "valuesAliases"; - // DPI_VerboseAliasedRangeMax, having type Array - ParameterId["VerboseAliasedRangeMax"] = "verboseAliasedRangeMax"; - // DPI_VerboseAliasedValue, having type Array - ParameterId["VerboseAliasedValue"] = "verboseAliasedValue"; - // DPI_MultiBucket, having type MultiBucket - ParameterId["MultiBucket"] = "xValues"; - // DPI_PageName, having type PageName - ParameterId["PageName"] = "pageName"; - // DPI_Selector, having type object - ParameterId["Selector"] = "selector"; - // DPI_PaneId, having type object - ParameterId["PaneId"] = "paneId"; - // DPI_PaneIds, having type PaneId[] - ParameterId["PaneIds"] = "paneIds"; - // DPI_ImageRegionInfo, having type object - ParameterId["ImageRegionInfo"] = "vizRegionRect"; - // DPI_ImageRegionInfoList, having type object[] - ParameterId["ImageRegionInfoList"] = "vizRegionRectList"; - // DPI_VisualID, having type VisualID - ParameterId["VisualID"] = "visualId"; - // DPI_VisualIDPM, having type VisualIDPresModel - ParameterId["VisualIDPM"] = "visualIdPresModel"; - // DPI_InvalidSheets, having type VisualIDPresModel[] - ParameterId["InvalidSheets"] = "invalidSheets"; - // DPI_VisualIDPMs, having type VisualIDPresModel[] - ParameterId["VisualIDPMs"] = "visualIds"; - // DPI_SheetPathPM, having type SheetPathPresModel - ParameterId["SheetPathPM"] = "sheetPath"; - // DPI_CapturedSheetPM, having type SheetPathPresModel - ParameterId["CapturedSheetPM"] = "capturedSheetPm"; - // DPI_CurrentSheetPM, having type SheetPathPresModel - ParameterId["CurrentSheetPM"] = "currentSheetPm"; - // DPI_DashboardPM, having type SheetPathPresModel - ParameterId["DashboardPM"] = "dashboardPm"; - // DPI_NewSheetPM, having type SheetPathPresModel - ParameterId["NewSheetPM"] = "newSheetPm"; - // DPI_SheetNamePM, having type SheetPathPresModel - ParameterId["SheetNamePM"] = "sheetNamePm"; - // DPI_SheetPM, having type SheetPathPresModel - ParameterId["SheetPM"] = "sheetPm"; - // DPI_SourceDashboardPM, having type SheetPathPresModel - ParameterId["SourceDashboardPM"] = "sourceDashboardPm"; - // DPI_SourceSheetPM, having type SheetPathPresModel - ParameterId["SourceSheetPM"] = "sourceSheetPm"; - // DPI_TargetSheetPM, having type SheetPathPresModel - ParameterId["TargetSheetPM"] = "targetSheetPm"; - // DPI_WorksheetPM, having type SheetPathPresModel - ParameterId["WorksheetPM"] = "worksheetPm"; - // DPI_ModifiedSheets, having type SheetPathPresModel[] - ParameterId["ModifiedSheets"] = "modifiedSheets"; - // DPI_DataColumn, having type DataColumnPresModel - ParameterId["DataColumn"] = "dataColumn"; - // DPI_DataColumns, having type DataColumnPresModel[] - ParameterId["DataColumns"] = "dataColumns"; - // DPI_Addresses, having type DataColumnPresModel[] - ParameterId["Addresses"] = "addresses"; - // DPI_EncodingColumns, having type Dictionary(of DataColumnPresModel) - ParameterId["EncodingColumns"] = "encodingColumns"; - // DPI_TextRunColumns, having type Dictionary(of DataColumnPresModel) - ParameterId["TextRunColumns"] = "textRunColumns"; - // DPI_TextStyleColumns, having type Dictionary(of DataColumnPresModel) - ParameterId["TextStyleColumns"] = "textStyleColumns"; - // DPI_NamedDataColumn, having type NamedDataColumnPresModel - ParameterId["NamedDataColumn"] = "namedDataColumn"; - // DPI_NamedDataColumns, having type NamedDataColumnPresModel[] - ParameterId["NamedDataColumns"] = "namedDataColumns"; - // DPI_DataTable, having type DataTablePresModel - ParameterId["DataTable"] = "dataTable"; - // DPI_ActionSpecification, having type None - ParameterId["ActionSpecification"] = "actionSpec"; - // DPI_Column, having type Column - ParameterId["Column"] = "columnContext"; - // DPI_SetFunction, having type SetFunction - ParameterId["SetFunction"] = "setFunction"; - // DPI_SetFunctions, having type SetFunctions - ParameterId["SetFunctions"] = "setFunctions"; - // DPI_VisualProfileShowMe, having type VisualProfileShowMe - ParameterId["VisualProfileShowMe"] = "vpsm"; - // DPI_DataSourcePtr, having type DataSource - ParameterId["DataSourcePtr"] = "datasourcePtr"; - // DPI_WorkgroupConnection, having type WorkgroupConnection - ParameterId["WorkgroupConnection"] = "workgroupConnection"; - // DPI_Authenticator, having type AuthenticatorRawPtr - ParameterId["Authenticator"] = "authenticator"; - // DPI_UpgradeAttr, having type UpgradeAttr - ParameterId["UpgradeAttr"] = "upgradeAttr"; - // DPI_ExtractAttr, having type ExtractAttr - ParameterId["ExtractAttr"] = "extractAttr"; - // DPI_RefreshAttr, having type RefreshAttr - ParameterId["RefreshAttr"] = "refreshAttr"; - // DPI_ContextSpecification, having type ContextSpecification - ParameterId["ContextSpecification"] = "contextSpecification"; - // DPI_SchemaViewerSelector, having type SchemaViewerSelectorPtr - ParameterId["SchemaViewerSelector"] = "schemaViewerSelector"; - // DPI_Buckets, having type Buckets - ParameterId["Buckets"] = "buckets"; - // DPI_LegendItems, having type MultiBuckets - ParameterId["LegendItems"] = "legendItems"; - // DPI_LegendItem, having type MultiBucket - ParameterId["LegendItem"] = "legendItem"; - // DPI_SourceItem, having type MultiBucket - ParameterId["SourceItem"] = "sourceItem"; - // DPI_DestItem, having type MultiBucket - ParameterId["DestItem"] = "destItem"; - // DPI_IQuickSortState, having type IQuickSortState - ParameterId["IQuickSortState"] = "quickSortState"; - // DPI_AppBuildDate, having type DateTime - ParameterId["AppBuildDate"] = "appBuildDate"; - // DPI_ForecastDateRangeEnd, having type DateTime - ParameterId["ForecastDateRangeEnd"] = "forecastDateRangeEnd"; - // DPI_ForecastDateRangeStart, having type DateTime - ParameterId["ForecastDateRangeStart"] = "forecastDateRangeStart"; - // DPI_LastModified, having type DateTime - ParameterId["LastModified"] = "lastModified"; - // DPI_SearchDomainPtr, having type MultiDomain - ParameterId["SearchDomainPtr"] = "searchDomainPtr"; - // DPI_ResultsDomainPtr, having type MultiDomain - ParameterId["ResultsDomainPtr"] = "resultsDomainPtr"; - // DPI_Actions, having type object - ParameterId["Actions"] = "actions"; - // DPI_SRCommands, having type object - ParameterId["SRCommands"] = "selectionRelaxationCommands"; - // DPI_Commands, having type object - ParameterId["Commands"] = "commands"; - // DPI_DataTypeCommands, having type object - ParameterId["DataTypeCommands"] = "datatypeCommands"; - // DPI_MultiSelectCommands, having type object - ParameterId["MultiSelectCommands"] = "multiselectCommands"; - // DPI_NonVizCommands, having type object - ParameterId["NonVizCommands"] = "nonVizCommands"; - // DPI_QuickFilterCommands, having type object - ParameterId["QuickFilterCommands"] = "quickFilterCommands"; - // DPI_ShowMeCommands, having type object - ParameterId["ShowMeCommands"] = "showMeCommands"; - // DPI_SortIndicatorMenu, having type object - ParameterId["SortIndicatorMenu"] = "sortIndicatorMenu"; - // DPI_StandardCommands, having type object - ParameterId["StandardCommands"] = "standardCommands"; - // DPI_VizCommands, having type object - ParameterId["VizCommands"] = "vizCommands"; - // DPI_ZoneChromeCommands, having type object - ParameterId["ZoneChromeCommands"] = "zoneChromeCommands"; - // DPI_CommandItem, having type CommandsItem - ParameterId["CommandItem"] = "commandItem"; - // DPI_CommandItems, having type CommandsItem[] - ParameterId["CommandItems"] = "commandItems"; - // DPI_Command, having type SimpleCommandsPresModel - ParameterId["Command"] = "simpleCommandModel"; - // DPI_AddCommand, having type SimpleCommandsPresModel - ParameterId["AddCommand"] = "addSimpleCommandModel"; - // DPI_RemoveCommand, having type SimpleCommandsPresModel - ParameterId["RemoveCommand"] = "removeSimpleCommandModel"; - // DPI_AcceptCommand, having type SimpleCommandsPresModel - ParameterId["AcceptCommand"] = "acceptSimpleCommandModel"; - // DPI_DeclineCommand, having type SimpleCommandsPresModel - ParameterId["DeclineCommand"] = "declineSimpleCommandModel"; - // DPI_DropCommand, having type SimpleCommandsPresModel - ParameterId["DropCommand"] = "dropCommandModel"; - // DPI_EditCaptionCommand, having type SimpleCommandsPresModel - ParameterId["EditCaptionCommand"] = "editCaptionCommandModel"; - // DPI_FontCommand, having type SimpleCommandsPresModel - ParameterId["FontCommand"] = "fontCommandModel"; - // DPI_LineStyleCommand, having type SimpleCommandsPresModel - ParameterId["LineStyleCommand"] = "lineStyleCommandModel"; - // DPI_FormatCommand, having type SimpleCommandsPresModel - ParameterId["FormatCommand"] = "formatCommandModel"; - // DPI_DestructorCommand, having type SimpleCommandsPresModel - ParameterId["DestructorCommand"] = "destructorCommand"; - // DPI_ClearFormatCommand, having type SimpleCommandsPresModel - ParameterId["ClearFormatCommand"] = "clearFormatCommandModel"; - // DPI_RichTextCommand, having type SimpleCommandsPresModel - ParameterId["RichTextCommand"] = "richTextCommandModel"; - // DPI_SortIndicatorCommand, having type SimpleCommandsPresModel - ParameterId["SortIndicatorCommand"] = "sortIndicatorCommand"; - // DPI_CommandList, having type SimpleCommandsPresModel[] - ParameterId["CommandList"] = "commandList"; - // DPI_ParameterCtrl, having type ParameterCtrlPresModel - ParameterId["ParameterCtrl"] = "parameterControl"; - // DPI_ParameterCtrls, having type ParameterCtrlPresModel[] - ParameterId["ParameterCtrls"] = "parameterControls"; - // DPI_PageModel, having type PagePresModel - ParameterId["PageModel"] = "pageModel"; - // DPI_PageTrailOptions, having type PageTrailOptionsPresModel - ParameterId["PageTrailOptions"] = "pageTrailOptions"; - // DPI_Field, having type FieldPresModel - ParameterId["Field"] = "field"; - // DPI_FieldList, having type FieldPresModel[] - ParameterId["FieldList"] = "fieldList"; - // DPI_FieldColumn, having type FieldColumnPresModel - ParameterId["FieldColumn"] = "column"; - // DPI_FieldColumnList, having type FieldColumnPresModel[] - ParameterId["FieldColumnList"] = "columnList"; - // DPI_Parameter, having type ParameterPresModel - ParameterId["Parameter"] = "parameter"; - // DPI_Dimension, having type DimensionPresModel - ParameterId["Dimension"] = "dimension"; - // DPI_AttributeDimensionList, having type DimensionPresModel[] - ParameterId["AttributeDimensionList"] = "attributeDimensionList"; - // DPI_RelationalTable, having type RelationalTablePresModel - ParameterId["RelationalTable"] = "relationalTable"; - // DPI_DrillPath, having type DrillPathPresModel - ParameterId["DrillPath"] = "drillPath"; - // DPI_FieldFolder, having type FieldFolderPresModel - ParameterId["FieldFolder"] = "fieldFolder"; - // DPI_Group, having type GroupPresModel - ParameterId["Group"] = "group"; - // DPI_Hierarchy, having type HierarchyPresModel - ParameterId["Hierarchy"] = "hierarchy"; - // DPI_HierarchyList, having type HierarchyPresModel[] - ParameterId["HierarchyList"] = "hierarchyList"; - // DPI_HierarchyMemberSelectedState, having type HierarchySelect_MemberSelectedStatePresModel - ParameterId["HierarchyMemberSelectedState"] = "hierarchyMemberSelectedState"; - // DPI_HierarchySelectionChanges, having type HierarchySelect_MemberSelectedStatePresModel[] - ParameterId["HierarchySelectionChanges"] = "hierarchySelectionChanges"; - // DPI_DisplayFolder, having type DisplayFolderPresModel - ParameterId["DisplayFolder"] = "displayFolder"; - // DPI_DisplayFolderList, having type DisplayFolderPresModel[] - ParameterId["DisplayFolderList"] = "displayFolderList"; - // DPI_DataSourceLayout, having type DataSourceLayoutPresModel - ParameterId["DataSourceLayout"] = "dataSourceLayout"; - // DPI_BaseDataSource, having type BaseDataSourcePresModel - ParameterId["BaseDataSource"] = "baseDataSource"; - // DPI_BaseDataSources, having type Dictionary(of BaseDataSourcePresModel) - ParameterId["BaseDataSources"] = "baseDataSources"; - // DPI_DataSource, having type DataSourcePresModel - ParameterId["DataSource"] = "dataSource"; - // DPI_DataSources, having type Dictionary(of DataSourcePresModel) - ParameterId["DataSources"] = "dataSources"; - // DPI_SchemaViewerDataSource, having type SchemaViewerDataSourcePresModel - ParameterId["SchemaViewerDataSource"] = "schemaViewerDataSource"; - // DPI_SchemaViewerDataSources, having type Dictionary(of SchemaViewerDataSourcePresModel) - ParameterId["SchemaViewerDataSources"] = "schemaViewerDataSources"; - // DPI_BaseDataSchema, having type BaseDataSchemaPresModel - ParameterId["BaseDataSchema"] = "baseDataSchema"; - // DPI_DataSchema, having type DataSchemaPresModel - ParameterId["DataSchema"] = "dataSchema"; - // DPI_SchemaViewerDataSchema, having type SchemaViewerDataSchemaPresModel - ParameterId["SchemaViewerDataSchema"] = "schemaViewerDataSchema"; - // DPI_SheetListItem, having type SheetListItemPresModel - ParameterId["SheetListItem"] = "sheetListItem"; - // DPI_SheetListItems, having type SheetListItemPresModel[] - ParameterId["SheetListItems"] = "sheetListItems"; - // DPI_SheetList, having type SheetListPresModel - ParameterId["SheetList"] = "sheetList"; - // DPI_SizeModeOption, having type SizeModeOptionPresModel - ParameterId["SizeModeOption"] = "sizeModeOption"; - // DPI_SizeModeOptions, having type SizeModeOptionPresModel[] - ParameterId["SizeModeOptions"] = "sizeModeOptions"; - // DPI_DashboardSizeControl, having type DashboardSizeControlPresModel - ParameterId["DashboardSizeControl"] = "dashboardSizeControl"; - // DPI_DeviceLayoutInfoItem, having type DeviceLayoutInfoItemPresModel - ParameterId["DeviceLayoutInfoItem"] = "deviceLayoutInfoItem"; - // DPI_DeviceLayoutInfoItems, having type DeviceLayoutInfoItemPresModel[] - ParameterId["DeviceLayoutInfoItems"] = "deviceLayoutInfoItems"; - // DPI_DeviceLayoutInfoList, having type DeviceLayoutInfoListPresModel - ParameterId["DeviceLayoutInfoList"] = "deviceLayoutInfoList"; - // DPI_SpecializedDeviceLayoutItem, having type SpecializedDeviceLayoutItemPresModel - ParameterId["SpecializedDeviceLayoutItem"] = "specializedDeviceLayoutItem"; - // DPI_SpecializedDeviceLayoutItems, having type SpecializedDeviceLayoutItemPresModel[] - ParameterId["SpecializedDeviceLayoutItems"] = "specializedDeviceLayoutItems"; - // DPI_SpecializedDeviceLayoutList, having type SpecializedDeviceLayoutListPresModel - ParameterId["SpecializedDeviceLayoutList"] = "specializedDeviceLayoutList"; - // DPI_SizeItem, having type SizeItemPresModel - ParameterId["SizeItem"] = "sizeItem"; - // DPI_SizeItems, having type SizeItemPresModel[] - ParameterId["SizeItems"] = "sizeItems"; - // DPI_DeviceSizesList, having type SizeItemListPresModel - ParameterId["DeviceSizesList"] = "deviceSizesList"; - // DPI_PresetSizesList, having type SizeItemListPresModel - ParameterId["PresetSizesList"] = "presetSizesList"; - // DPI_SizeItemList, having type SizeItemListPresModel - ParameterId["SizeItemList"] = "sizeItemList"; - // DPI_SubstitutionKeyword, having type SubstitutionKeywordPresModel - ParameterId["SubstitutionKeyword"] = "substitutionKeyword"; - // DPI_SubstitutionKeywords, having type SubstitutionKeywordPresModel[] - ParameterId["SubstitutionKeywords"] = "substitutionKeywords"; - // DPI_SubstitutionKeywordSubList, having type SubstitutionKeywordSubListPresModel - ParameterId["SubstitutionKeywordSubList"] = "substitutionKeywordsSublist"; - // DPI_SubstitutionKeywordSubLists, having type SubstitutionKeywordSubListPresModel[] - ParameterId["SubstitutionKeywordSubLists"] = "substitutionKeywordSublists"; - // DPI_SubstitutionKeywordList, having type SubstitutionKeywordListPresModel - ParameterId["SubstitutionKeywordList"] = "substitutionKeywordsList"; - // DPI_DeviceZoneListItem, having type DeviceZoneListItemPresModel - ParameterId["DeviceZoneListItem"] = "deviceZoneListItem"; - // DPI_DeviceZoneListItems, having type DeviceZoneListItemPresModel[] - ParameterId["DeviceZoneListItems"] = "deviceZoneListItems"; - // DPI_DeviceZoneList, having type DeviceZoneListPresModel - ParameterId["DeviceZoneList"] = "deviceZoneList"; - // DPI_ZoneSnapLineListItem, having type ZoneSnapLineListItemPresModel - ParameterId["ZoneSnapLineListItem"] = "snapLineListItem"; - // DPI_OuterHorizontalSnapLines, having type ZoneSnapLineListItemPresModel[] - ParameterId["OuterHorizontalSnapLines"] = "outerHorizontalSnapLines"; - // DPI_OuterVerticalSnapLines, having type ZoneSnapLineListItemPresModel[] - ParameterId["OuterVerticalSnapLines"] = "outerVerticalSnapLines"; - // DPI_InnerHorizontalSnapLines, having type ZoneSnapLineListItemPresModel[] - ParameterId["InnerHorizontalSnapLines"] = "innerHorizontalSnapLines"; - // DPI_InnerVerticalSnapLines, having type ZoneSnapLineListItemPresModel[] - ParameterId["InnerVerticalSnapLines"] = "innerVerticalSnapLines"; - // DPI_ZoneSnapLineList, having type ZoneSnapLineListPresModel - ParameterId["ZoneSnapLineList"] = "snapLineList"; - // DPI_DashboardZoneHierarchy, having type DashboardZoneHierarchyPresModel - ParameterId["DashboardZoneHierarchy"] = "dashboardZoneHierarchy"; - // DPI_DeviceZoneVisibilityListItem, having type DeviceZoneVisibilityListItemPresModel - ParameterId["DeviceZoneVisibilityListItem"] = "deviceZoneVisibilityListItem"; - // DPI_DeviceZoneVisibilityListItems, having type DeviceZoneVisibilityListItemPresModel[] - ParameterId["DeviceZoneVisibilityListItems"] = "deviceZoneVisibilityListItems"; - // DPI_DeviceZoneVisibilityList, having type DeviceZoneVisibilityListPresModel - ParameterId["DeviceZoneVisibilityList"] = "deviceZoneVisibilityList"; - // DPI_WorksheetDataSchema, having type WorksheetDataSchemaPresModel - ParameterId["WorksheetDataSchema"] = "worksheetDataSchema"; - // DPI_WorksheetDataSchemaMap, having type Dictionary(of WorksheetDataSchemaPresModel) - ParameterId["WorksheetDataSchemaMap"] = "worksheetDataSchemaMap"; - // DPI_Shelf, having type ShelfPresModel - ParameterId["Shelf"] = "shelf"; - // DPI_ShelfDetail, having type ShelfPresModel - ParameterId["ShelfDetail"] = "shelfDetail"; - // DPI_ShelfList, having type ShelfPresModel[] - ParameterId["ShelfList"] = "shelfList"; - // DPI_ShelfItem, having type ShelfItemPresModel - ParameterId["ShelfItem"] = "shelfItem"; - // DPI_ShelfItems, having type ShelfItemPresModel[] - ParameterId["ShelfItems"] = "shelfItems"; - // DPI_Shelves, having type ShelvesPresModel - ParameterId["Shelves"] = "shelves"; - // DPI_FieldEncoding, having type FieldEncodingPresModel - ParameterId["FieldEncoding"] = "fieldEncoding"; - // DPI_FieldEncodings, having type FieldEncodingPresModel[] - ParameterId["FieldEncodings"] = "fieldEncodings"; - // DPI_UberTip, having type UberTipPresModel - ParameterId["UberTip"] = "uberTip"; - // DPI_AnalyticsObjectDragInfo, having type AnalyticsObjectDragInfoPresModel - ParameterId["AnalyticsObjectDragInfo"] = "analyticsObjectDragInfo"; - // DPI_TrendLine, having type TrendLinePresModel - ParameterId["TrendLine"] = "trendLine"; - // DPI_TrendLineDialog, having type TrendLineDialogPresModel - ParameterId["TrendLineDialog"] = "trendLineDialog"; - // DPI_TrendLineDescribePresModel, having type TrendLineDescribePresModel - ParameterId["TrendLineDescribePresModel"] = "trendLineDescribePresModel"; - // DPI_TrendLineAOVModelPresModel, having type TrendLineAOVModelPresModel - ParameterId["TrendLineAOVModelPresModel"] = "trendLineAovModelPresModel"; - // DPI_TrendLineAOVModelsPresModel, having type TrendLineAOVModelPresModel[] - ParameterId["TrendLineAOVModelsPresModel"] = "trendModelDescriptionVector"; - // DPI_TrendLineLineCoefficientPresModel, having type TrendLineLineCoefficientPresModel - ParameterId["TrendLineLineCoefficientPresModel"] = "trendLineLineCoefficient"; - // DPI_TrendLineLineCoefficientsPresModel, having type TrendLineLineCoefficientPresModel[] - ParameterId["TrendLineLineCoefficientsPresModel"] = "trendLineLineCoefficientsPresModel"; - // DPI_TrendLineLinesPresModel, having type TrendLineLinesPresModel - ParameterId["TrendLineLinesPresModel"] = "trendLineLinesPresModel"; - // DPI_TrendLineAOVPresModel, having type TrendLineAOVPresModel - ParameterId["TrendLineAOVPresModel"] = "trendLineAnovaPresModel"; - // DPI_ReferenceLine, having type ReferenceLinePresModel - ParameterId["ReferenceLine"] = "referenceLine"; - // DPI_ReferenceLines, having type ReferenceLinePresModel[] - ParameterId["ReferenceLines"] = "referenceLines"; - // DPI_PercentileEditDataValue, having type EditDataValuePresModel - ParameterId["PercentileEditDataValue"] = "percentileEditDataValue"; - // DPI_LimitEditDataValue, having type EditDataValuePresModel - ParameterId["LimitEditDataValue"] = "limitEditDataValue"; - // DPI_ConfidenceLevelCombo, having type EditValueWidgetPresModel - ParameterId["ConfidenceLevelCombo"] = "confidenceLevelCombo"; - // DPI_DistributionQuantilesCombo, having type EditValueWidgetPresModel - ParameterId["DistributionQuantilesCombo"] = "distributionQuantilesLevelCombo"; - // DPI_PercentilesCombo, having type EditValueWidgetPresModel - ParameterId["PercentilesCombo"] = "distributionPercentilesLevelCombo"; - // DPI_NumericBinSizeCombo, having type EditValueWidgetPresModel - ParameterId["NumericBinSizeCombo"] = "numericBinSizeCombo"; - // DPI_FieldPickerField, having type FieldPickerFieldPresModel - ParameterId["FieldPickerField"] = "fieldPickerField"; - // DPI_FieldPickerFields, having type FieldPickerFieldPresModel[] - ParameterId["FieldPickerFields"] = "fieldPickerFields"; - // DPI_FieldPickerCombo, having type FieldPickerComboPresModel - ParameterId["FieldPickerCombo"] = "fieldPickerCombo"; - // DPI_PairedFieldPickerCombo, having type FieldPickerComboPresModel - ParameterId["PairedFieldPickerCombo"] = "pairedFieldPickerCombo"; - // DPI_ReferenceLineEditorPresModel, having type ReferenceLineEditorPresModel - ParameterId["ReferenceLineEditorPresModel"] = "referenceLineEditor"; - // DPI_CloseDataSourceErrorDialogPresModel, having type CloseDataSourceErrorDialogPresModel - ParameterId["CloseDataSourceErrorDialogPresModel"] = "closeDsErrorDialog"; - // DPI_EditReferenceLine, having type EditReferenceLinePresModel - ParameterId["EditReferenceLine"] = "editReferenceLine"; - // DPI_EditReferenceBand, having type EditReferenceBandPresModel - ParameterId["EditReferenceBand"] = "editReferenceBand"; - // DPI_EditDistribution, having type EditDistributionPresModel - ParameterId["EditDistribution"] = "editDistribution"; - // DPI_DistributionPercentages, having type DistributionPercentagesPresModel - ParameterId["DistributionPercentages"] = "distributionPercentages"; - // DPI_DistributionPercentiles, having type DistributionPercentilesPresModel - ParameterId["DistributionPercentiles"] = "distributionPercentiles"; - // DPI_DistributionQuantiles, having type DistributionQuantilesPresModel - ParameterId["DistributionQuantiles"] = "distributionQuantiles"; - // DPI_DistributionStandardDeviation, having type DistributionStandardDeviationPresModel - ParameterId["DistributionStandardDeviation"] = "distributionStddev"; - // DPI_SortIndicators, having type SortIndicatorsPresModel - ParameterId["SortIndicators"] = "sortIndicators"; - // DPI_SortIndicatorRegion, having type SortIndicatorRegionPresModel - ParameterId["SortIndicatorRegion"] = "sortIndicatorRegion"; - // DPI_SortIndicatorRegions, having type SortIndicatorRegionPresModel[] - ParameterId["SortIndicatorRegions"] = "sortIndicatorRegions"; - // DPI_SortIndicatorItem, having type SortIndicatorItemPresModel - ParameterId["SortIndicatorItem"] = "sortIndicatorItem"; - // DPI_SortIndicatorItems, having type SortIndicatorItemPresModel[] - ParameterId["SortIndicatorItems"] = "sortIndicatorItems"; - // DPI_BuilderConfig, having type BuilderConfigPresModel - ParameterId["BuilderConfig"] = "builderConfig"; - // DPI_SheetLayoutInfo, having type SheetLayoutInfoPresModel - ParameterId["SheetLayoutInfo"] = "sheetLayoutInfo"; - // DPI_AreaRect, having type RectanglePresModel - ParameterId["AreaRect"] = "areaRect"; - // DPI_Border, having type RectanglePresModel - ParameterId["Border"] = "borderRect"; - // DPI_BoundsRect, having type RectanglePresModel - ParameterId["BoundsRect"] = "boundsRect"; - // DPI_ButtonRect, having type RectanglePresModel - ParameterId["ButtonRect"] = "buttonRect"; - // DPI_DragRect, having type RectanglePresModel - ParameterId["DragRect"] = "dragRect"; - // DPI_FocusRect, having type RectanglePresModel - ParameterId["FocusRect"] = "focusRect"; - // DPI_ImageTileRect, having type RectanglePresModel - ParameterId["ImageTileRect"] = "tileRect"; - // DPI_ItemRect, having type RectanglePresModel - ParameterId["ItemRect"] = "itemRect"; - // DPI_LabelRect, having type RectanglePresModel - ParameterId["LabelRect"] = "labelRect"; - // DPI_MarkRect, having type RectanglePresModel - ParameterId["MarkRect"] = "markRect"; - // DPI_MarkTooltipRect, having type RectanglePresModel - ParameterId["MarkTooltipRect"] = "markTooltipRect"; - // DPI_MenuButtonRect, having type RectanglePresModel - ParameterId["MenuButtonRect"] = "menuButtonRect"; - // DPI_OutRegionRect, having type RectanglePresModel - ParameterId["OutRegionRect"] = "outRegionRect"; - // DPI_PaneRect, having type RectanglePresModel - ParameterId["PaneRect"] = "paneRect"; - // DPI_PixelExtents, having type RectanglePresModel - ParameterId["PixelExtents"] = "pixelExtents"; - // DPI_RectMaxLabel, having type RectanglePresModel - ParameterId["RectMaxLabel"] = "rectMaxLabel"; - // DPI_RectMinLabel, having type RectanglePresModel - ParameterId["RectMinLabel"] = "rectMinLabel"; - // DPI_RectRamp, having type RectanglePresModel - ParameterId["RectRamp"] = "rectRamp"; - // DPI_RectTitle, having type RectanglePresModel - ParameterId["RectTitle"] = "rectTitle"; - // DPI_RegionRect, having type RectanglePresModel - ParameterId["RegionRect"] = "regionRect"; - // DPI_SelectionRect, having type RectanglePresModel - ParameterId["SelectionRect"] = "selectionRect"; - // DPI_UnusedRect, having type RectanglePresModel - ParameterId["UnusedRect"] = "unusedRect"; - // DPI_ZoneEdgeRect, having type RectanglePresModel - ParameterId["ZoneEdgeRect"] = "zoneEdge"; - // DPI_ZoneEdgeRectPix, having type RectanglePresModel - ParameterId["ZoneEdgeRectPix"] = "zoneEdgePix"; - // DPI_ZoneEdgeRectPp, having type RectanglePresModel - ParameterId["ZoneEdgeRectPp"] = "zoneEdgePp"; - // DPI_UIAutomationLinkRect, having type RectanglePresModel - ParameterId["UIAutomationLinkRect"] = "linkRect"; - // DPI_Borders, having type RectanglePresModel[] - ParameterId["Borders"] = "borderRects"; - // DPI_UIAutomationLinkRects, having type RectanglePresModel[] - ParameterId["UIAutomationLinkRects"] = "linkRects"; - // DPI_DomainExtents, having type DoubleRectanglePresModel - ParameterId["DomainExtents"] = "domainExtents"; - // DPI_MapDomainExtents, having type DoubleRectanglePresModel - ParameterId["MapDomainExtents"] = "mapDomainExtents"; - // DPI_MapLatLongRect, having type MapRectPresModel - ParameterId["MapLatLongRect"] = "mapLatLongRect"; - // DPI_Center, having type PointPresModel - ParameterId["Center"] = "center"; - // DPI_CenterMarkLineBegin, having type PointPresModel - ParameterId["CenterMarkLineBegin"] = "centerMarkLineBegin"; - // DPI_CenterMarkLineEnd, having type PointPresModel - ParameterId["CenterMarkLineEnd"] = "centerMarkLineEnd"; - // DPI_DropLocation, having type PointPresModel - ParameterId["DropLocation"] = "dropLocation"; - // DPI_EndPt, having type PointPresModel - ParameterId["EndPt"] = "endPoint"; - // DPI_GrabLocation, having type PointPresModel - ParameterId["GrabLocation"] = "grabLocation"; - // DPI_GridOrigin, having type PointPresModel - ParameterId["GridOrigin"] = "gridOrigin"; - // DPI_LassoSelectionPoint, having type PointPresModel - ParameterId["LassoSelectionPoint"] = "lassoSelectionPoint"; - // DPI_MenuLocation, having type PointPresModel - ParameterId["MenuLocation"] = "menuLocation"; - // DPI_MoveOffset, having type PointPresModel - ParameterId["MoveOffset"] = "moveOffset"; - // DPI_OverlayAnchor, having type PointPresModel - ParameterId["OverlayAnchor"] = "overlayAnchor"; - // DPI_PanAmount, having type PointPresModel - ParameterId["PanAmount"] = "panAmount"; - // DPI_PanLocation, having type PointPresModel - ParameterId["PanLocation"] = "panLocation"; - // DPI_PaneResolverLocation, having type PointPresModel - ParameterId["PaneResolverLocation"] = "paneResolverLocation"; - // DPI_PixelExtentsOffset, having type PointPresModel - ParameterId["PixelExtentsOffset"] = "extentsOffset"; - // DPI_Point1, having type PointPresModel - ParameterId["Point1"] = "pt1"; - // DPI_Point2, having type PointPresModel - ParameterId["Point2"] = "pt2"; - // DPI_Point3, having type PointPresModel - ParameterId["Point3"] = "pt3"; - // DPI_RegionPoint, having type PointPresModel - ParameterId["RegionPoint"] = "regionPoint"; - // DPI_ScrollOffset, having type PointPresModel - ParameterId["ScrollOffset"] = "scrollOffset"; - // DPI_SelectAtPoint, having type PointPresModel - ParameterId["SelectAtPoint"] = "selectAtPoint"; - // DPI_SelectOffset, having type PointPresModel - ParameterId["SelectOffset"] = "selectOffset"; - // DPI_TargetPt, having type PointPresModel - ParameterId["TargetPt"] = "targetPoint"; - // DPI_TextOrigin, having type PointPresModel - ParameterId["TextOrigin"] = "textOrigin"; - // DPI_TooltipAnchorPoint, having type PointPresModel - ParameterId["TooltipAnchorPoint"] = "tooltipAnchorPoint"; - // DPI_TooltipOffset, having type PointPresModel - ParameterId["TooltipOffset"] = "tooltipOffset"; - // DPI_VizLocation, having type PointPresModel - ParameterId["VizLocation"] = "vizLocation"; - // DPI_ZoomAnchorPoint, having type PointPresModel - ParameterId["ZoomAnchorPoint"] = "zoomAnchorPoint"; - // DPI_MenuAnchorPoint, having type PointPresModel - ParameterId["MenuAnchorPoint"] = "menuAnchorPoint"; - // DPI_OverlayAnchors, having type PointPresModel[] - ParameterId["OverlayAnchors"] = "overlayAnchors"; - // DPI_LassoSelection, having type PointPresModel[] - ParameterId["LassoSelection"] = "lassoSelection"; - // DPI_ScrollOffsetPoints, having type PointPresModel[] - ParameterId["ScrollOffsetPoints"] = "scrollOffsetPoints"; - // DPI_RadialSelection, having type CirclePresModel - ParameterId["RadialSelection"] = "radialSelection"; - // DPI_DomainOrigin, having type FloatPointPresModel - ParameterId["DomainOrigin"] = "domainOrigin"; - // DPI_FloatCenter, having type FloatPointPresModel - ParameterId["FloatCenter"] = "floatCenter"; - // DPI_FloatPoint, having type FloatPointPresModel - ParameterId["FloatPoint"] = "floatPoint"; - // DPI_ClientAvailableSpace, having type SizePresModel - ParameterId["ClientAvailableSpace"] = "clientAvailableSpace"; - // DPI_DashboardPortSize, having type SizePresModel - ParameterId["DashboardPortSize"] = "dashboardPort"; - // DPI_LegendSize, having type SizePresModel - ParameterId["LegendSize"] = "legendSize"; - // DPI_StoryPortSize, having type SizePresModel - ParameterId["StoryPortSize"] = "storyPort"; - // DPI_SwatchAreaSize, having type SizePresModel - ParameterId["SwatchAreaSize"] = "areaSize"; - // DPI_SwatchImageSize, having type SizePresModel - ParameterId["SwatchImageSize"] = "imageSize"; - // DPI_ViewportSize, having type SizePresModel - ParameterId["ViewportSize"] = "viewportSize"; - // DPI_WorksheetPortSize, having type SizePresModel - ParameterId["WorksheetPortSize"] = "worksheetPort"; - // DPI_ResizeEntity, having type ResizeEntityPresModel - ParameterId["ResizeEntity"] = "resizeEntity"; - // DPI_RowResizers, having type ResizeEntityPresModel[] - ParameterId["RowResizers"] = "rowResizers"; - // DPI_ColResizers, having type ResizeEntityPresModel[] - ParameterId["ColResizers"] = "colResizers"; - // DPI_ResizeInfoPresModel, having type ResizeInfoPresModel - ParameterId["ResizeInfoPresModel"] = "resizeInfo"; - // DPI_ServerSheet, having type ServerSheetPresModel - ParameterId["ServerSheet"] = "serverSheet"; - // DPI_ServerSheets, having type ServerSheetPresModel[] - ParameterId["ServerSheets"] = "serverSheets"; - // DPI_SheetInfo, having type SheetInfoPresModel - ParameterId["SheetInfo"] = "sheetInfo"; - // DPI_SheetsInfo, having type SheetInfoPresModel[] - ParameterId["SheetsInfo"] = "sheetsInfo"; - // DPI_ServerWorkbook, having type ServerWorkbookPresModel - ParameterId["ServerWorkbook"] = "serverWorkbook"; - // DPI_PDFExportOptionsPresModel, having type PDFExportOptionsPresModel - ParameterId["PDFExportOptionsPresModel"] = "pdfExport"; - // DPI_ExportFileResultPresModel, having type ExportFileResultPresModel - ParameterId["ExportFileResultPresModel"] = "pdfResult"; - // DPI_PDFSheet, having type PDFSheetPresModel - ParameterId["PDFSheet"] = "pdfSheet"; - // DPI_SheetOptions, having type PDFSheetPresModel[] - ParameterId["SheetOptions"] = "sheetOptions"; - // DPI_ExportLayoutOptions, having type ExportLayoutOptionsPresModel - ParameterId["ExportLayoutOptions"] = "exportLayoutOptions"; - // DPI_DataAlertConditionOperationType, having type DataAlertConditionOperationType - ParameterId["DataAlertConditionOperationType"] = "dataAlertConditionOp"; - // DPI_DataAlertDialogPresModel, having type DataAlertDialogPresModel - ParameterId["DataAlertDialogPresModel"] = "dataAlertDialogPresModel"; - // DPI_DataAlertMeasure, having type DataAlertMeasurePresModel - ParameterId["DataAlertMeasure"] = "dataAlertMeasure"; - // DPI_DataAlertMeasures, having type DataAlertMeasurePresModel[] - ParameterId["DataAlertMeasures"] = "dataAlertMeasures"; - // DPI_DataAlertConstantCondition, having type DataAlertConstantConditionPresModel - ParameterId["DataAlertConstantCondition"] = "dataAlertConstantCondition"; - // DPI_DataAlertDialogMode, having type DataAlertDialogMode - ParameterId["DataAlertDialogMode"] = "dataAlertDialogMode"; - // DPI_LightweightMapOptions, having type LightweightMapOptionsPresModel - ParameterId["LightweightMapOptions"] = "lightweightMapOptions"; - // DPI_DataHighlighter, having type DataHighlighterPresModel - ParameterId["DataHighlighter"] = "dataHighlighter"; - // DPI_DataHighlighterItemSet, having type DataHighlighterItemSetPresModel - ParameterId["DataHighlighterItemSet"] = "dataHighlighterItemSet"; - // DPI_DataHighlighterItem, having type DataHighlighterItemPresModel - ParameterId["DataHighlighterItem"] = "dataHighlighterItem"; - // DPI_DataHighlighterItems, having type DataHighlighterItemPresModel[] - ParameterId["DataHighlighterItems"] = "dataHighlighterItems"; - // DPI_CategoricalLegendLayout, having type CategoricalLegendLayoutPresModel - ParameterId["CategoricalLegendLayout"] = "catLegendLayout"; - // DPI_CategoricalLegend, having type CategoricalLegendPresModel - ParameterId["CategoricalLegend"] = "categoricalLegend"; - // DPI_CategoricalLegends, having type CategoricalLegendPresModel[] - ParameterId["CategoricalLegends"] = "categoricalLegends"; - // DPI_CategoricalColorLegend, having type CategoricalColorLegendPresModel - ParameterId["CategoricalColorLegend"] = "colorLegend"; - // DPI_ColorLegendItem, having type CategoricalColorLegendItemPresModel - ParameterId["ColorLegendItem"] = "colorLegendItem"; - // DPI_ColorLegendItems, having type CategoricalColorLegendItemPresModel[] - ParameterId["ColorLegendItems"] = "colorLegendItems"; - // DPI_CategoricalShapeLegend, having type CategoricalShapeLegendPresModel - ParameterId["CategoricalShapeLegend"] = "categoricalShapeLegend"; - // DPI_ShapeLegendItem, having type CategoricalShapeLegendItemPresModel - ParameterId["ShapeLegendItem"] = "shapeLegendItem"; - // DPI_ShapeLegendItems, having type CategoricalShapeLegendItemPresModel[] - ParameterId["ShapeLegendItems"] = "shapeLegendItems"; - // DPI_CategoricalHighlightLegend, having type CategoricalHighlightLegendPresModel - ParameterId["CategoricalHighlightLegend"] = "categoricalHighlightLegend"; - // DPI_HighlightLegendItem, having type CategoricalLegendItemPresModel - ParameterId["HighlightLegendItem"] = "highlightLegendItem"; - // DPI_HighlightLegendItems, having type CategoricalLegendItemPresModel[] - ParameterId["HighlightLegendItems"] = "highlightLegendItems"; - // DPI_CategoricalSizeLegend, having type CategoricalSizeLegendPresModel - ParameterId["CategoricalSizeLegend"] = "categoricalSizeLegend"; - // DPI_SizeLegendItem, having type CategoricalSizeLegendItemPresModel - ParameterId["SizeLegendItem"] = "sizeLegendItem"; - // DPI_SizeLegendItems, having type CategoricalSizeLegendItemPresModel[] - ParameterId["SizeLegendItems"] = "sizeLegendItems"; - // DPI_CategoricalMapLegend, having type CategoricalMapLegendPresModel - ParameterId["CategoricalMapLegend"] = "categoricalMapLegend"; - // DPI_QuantitativeColorLegend, having type QuantitativeColorLegendPresModel - ParameterId["QuantitativeColorLegend"] = "quantitativeColorLegend"; - // DPI_QuantitativeColorLegends, having type QuantitativeColorLegendPresModel[] - ParameterId["QuantitativeColorLegends"] = "quantitativeColorLegends"; - // DPI_QuantitativeLegendLayout, having type QuantitativeLegendLayoutPresModel - ParameterId["QuantitativeLegendLayout"] = "quantitativeLegendLayout"; - // DPI_ServerRenderedLegend, having type ServerRenderedLegendPresModel - ParameterId["ServerRenderedLegend"] = "serverRenderedLegend"; - // DPI_CategoricalFilter, having type CategoricalFilterPresModel - ParameterId["CategoricalFilter"] = "categoricalFilter"; - // DPI_CategoricalFilterRelational, having type CategoricalFilterRelationalPresModel - ParameterId["CategoricalFilterRelational"] = "categoricalFilterRelational"; - // DPI_CategoricalFilterMemberDomainPage, having type CategoricalFilterMemberDomainPagePresModel - ParameterId["CategoricalFilterMemberDomainPage"] = "categoricalFilterMemberDomainPage"; - // DPI_CategoricalFilterCacheInfo, having type CategoricalFilterCacheInfoPresModel - ParameterId["CategoricalFilterCacheInfo"] = "categoricalFilterCacheInfo"; - // DPI_CategoricalFilterPatternDisplay, having type CategoricalFilterPatternDisplayPresModel - ParameterId["CategoricalFilterPatternDisplay"] = "categoricalFilterPatternDisplay"; - // DPI_CategoricalFilterPatternUpdate, having type CategoricalFilterPatternUpdatePresModel - ParameterId["CategoricalFilterPatternUpdate"] = "categoricalFilterPatternUpdate"; - // DPI_CategoricalFilterConditionDisplay, having type CategoricalFilterConditionDisplayPresModel - ParameterId["CategoricalFilterConditionDisplay"] = "categoricalFilterConditionDisplay"; - // DPI_CategoricalFilterConditionUpdate, having type CategoricalFilterConditionUpdatePresModel - ParameterId["CategoricalFilterConditionUpdate"] = "categoricalFilterConditionUpdate"; - // DPI_CategoricalFilterLimitDisplay, having type CategoricalFilterLimitDisplayPresModel - ParameterId["CategoricalFilterLimitDisplay"] = "categoricalFilterLimitDisplay"; - // DPI_CategoricalFilterLimitUpdate, having type CategoricalFilterLimitUpdatePresModel - ParameterId["CategoricalFilterLimitUpdate"] = "categoricalFilterLimitUpdate"; - // DPI_CategoricalFilterNew, having type CategoricalFilter_NewPresModel - ParameterId["CategoricalFilterNew"] = "categoricalFilterNew"; - // DPI_CategoricalFilterHierarchy, having type CategoricalFilterHierarchyPresModel - ParameterId["CategoricalFilterHierarchy"] = "categoricalFilterHirerarchy"; - // DPI_CategoricalFilterUpdate, having type CategoricalFilterUpdatePresModel - ParameterId["CategoricalFilterUpdate"] = "categoricalFilterUpdate"; - // DPI_CategoricalFilterRelationalState, having type CategoricalFilterRelationalStatePresModel - ParameterId["CategoricalFilterRelationalState"] = "categoricalRelationalState"; - // DPI_CategoricalFilterRelationalUpdatedState, having type CategoricalFilterRelationalStatePresModel - ParameterId["CategoricalFilterRelationalUpdatedState"] = "categoricalRelationalUpdatedState"; - // DPI_CategoricalFilterRelationalDomainInfo, having type CategoricalFilterRelationalDomainInfoPresModel - ParameterId["CategoricalFilterRelationalDomainInfo"] = "categoricalFilterRelationalDomainInfo"; - // DPI_CategoricalFilterRelationalDisplay, having type CategoricalFilterRelationalDisplayPresModel - ParameterId["CategoricalFilterRelationalDisplay"] = "categoricalFilterRelationalDisplay"; - // DPI_ExpressionToken, having type ExpressionTokenPresModel - ParameterId["ExpressionToken"] = "expressionToken"; - // DPI_ExpressionTokens, having type ExpressionTokenPresModel[] - ParameterId["ExpressionTokens"] = "expressionTokens"; - // DPI_FormulaValidation, having type FormulaValidationPresModel - ParameterId["FormulaValidation"] = "formulaValidation"; - // DPI_CaptionedFilterValue, having type FilterValuePresModel - ParameterId["CaptionedFilterValue"] = "captionedFilterValue"; - // DPI_CaptionedRangeMin, having type FilterValuePresModel - ParameterId["CaptionedRangeMin"] = "captionedRangeMin"; - // DPI_CaptionedRangeMax, having type FilterValuePresModel - ParameterId["CaptionedRangeMax"] = "captionedRangeMax"; - // DPI_CaptionedAnchorDate, having type FilterValuePresModel - ParameterId["CaptionedAnchorDate"] = "captionedAnchorDate"; - // DPI_CaptionedFilterValueList, having type FilterValuePresModel[] - ParameterId["CaptionedFilterValueList"] = "captionedFilterValueList"; - // DPI_CategoricalFilterInfo, having type CategoricalFilterInfoPresModel - ParameterId["CategoricalFilterInfo"] = "categoricalFilterInfo"; - // DPI_QuantitativeFilterInfo, having type QuantitativeFilterInfoPresModel - ParameterId["QuantitativeFilterInfo"] = "quantitativeFilterInfo"; - // DPI_RelativeDateFilterInfo, having type RelativeDateFilterInfoPresModel - ParameterId["RelativeDateFilterInfo"] = "relativeDateFilterInfo"; - // DPI_FilterInfo, having type FilterInfoPresModel - ParameterId["FilterInfo"] = "filterInfo"; - // DPI_FiltersInfo, having type FilterInforPresModel[] - ParameterId["FiltersInfo"] = "filtersInfo"; - // DPI_CategoricalDomain, having type CategoricalDomainPresModel - ParameterId["CategoricalDomain"] = "categoricalDomain"; - // DPI_QuantitativeDomain, having type QuantitativeDomainPresModel - ParameterId["QuantitativeDomain"] = "quantitativeDomain"; - // DPI_ValidationResults, having type ValidationResultsPresModel - ParameterId["ValidationResults"] = "validationResults"; - // DPI_DomainMember, having type DomainMemberPresModel - ParameterId["DomainMember"] = "domainMember"; - // DPI_DomainMembers, having type DomainMemberPresModel[] - ParameterId["DomainMembers"] = "domainMembers"; - // DPI_QuickFilterDisplay, having type QuickFilterDisplayPresModel - ParameterId["QuickFilterDisplay"] = "quickFilterDisplay"; - // DPI_QuickFilter, having type QuickFilterPresModel - ParameterId["QuickFilter"] = "quickFilter"; - // DPI_QuantitativeQuickFilter, having type QuantitativeQuickFilterPresModel - ParameterId["QuantitativeQuickFilter"] = "quantitativeQuickFilter"; - // DPI_RelativeDateQuickFilter, having type RelativeDateQuickFilterPresModel - ParameterId["RelativeDateQuickFilter"] = "relativeDateQuickFilter"; - // DPI_CategoricalQuickFilter, having type CategoricalQuickFilterPresModel - ParameterId["CategoricalQuickFilter"] = "categoricalQuickFilter"; - // DPI_HierarchicalQuickFilter, having type HierarchicalQuickFilterPresModel - ParameterId["HierarchicalQuickFilter"] = "hierarchicalQuickFilter"; - // DPI_DomainTable, having type DomainTablePresModel - ParameterId["DomainTable"] = "domainTable"; - // DPI_DomainTables, having type DomainTablePresModel[] - ParameterId["DomainTables"] = "domainTables"; - // DPI_DomainTuples, having type Tuples - ParameterId["DomainTuples"] = "domainTuples"; - // DPI_SearchTuples, having type Tuples - ParameterId["SearchTuples"] = "searchTuples"; - // DPI_SelectedTuples, having type TupleHash - ParameterId["SelectedTuples"] = "selectedTuples"; - // DPI_PendingTuples, having type TupleHash - ParameterId["PendingTuples"] = "pendingTuples"; - // DPI_Domain, having type MultiDomain - ParameterId["Domain"] = "domain"; - // DPI_DateOption, having type DateBinDialogOptionPresModel - ParameterId["DateOption"] = "dateOption"; - // DPI_DateOptions, having type DateBinDialogOptionPresModel[] - ParameterId["DateOptions"] = "dateOptions"; - // DPI_FilterRangeAdd, having type FilterRangePresModel - ParameterId["FilterRangeAdd"] = "filterRangeAdd"; - // DPI_FilterRangeRemove, having type FilterRangePresModel - ParameterId["FilterRangeRemove"] = "filterRangeRemove"; - // DPI_FilterOptions, having type FilterOptionsPresModel - ParameterId["FilterOptions"] = "filterOptions"; - // DPI_Layer, having type LayerPresModel - ParameterId["Layer"] = "layer"; - // DPI_Layers, having type LayerPresModel[] - ParameterId["Layers"] = "layers"; - // DPI_MarksCardPresModel, having type MarksCardPresModel - ParameterId["MarksCardPresModel"] = "marksCardPresModel"; - // DPI_UIItem, having type UIItemPresModel - ParameterId["UIItem"] = "uiItem"; - // DPI_EncodingUIItem, having type EncodingUIItemPresModel - ParameterId["EncodingUIItem"] = "encodingUiItem"; - // DPI_EncodingUIItems, having type EncodingUIItemPresModel[] - ParameterId["EncodingUIItems"] = "encodingUiItems"; - // DPI_PrimTypeUIItem, having type PrimitiveTypeUIItemPresModel - ParameterId["PrimTypeUIItem"] = "primitiveTypeUiItem"; - // DPI_PrimTypeUIItems, having type PrimitiveTypeUIItemPresModel[] - ParameterId["PrimTypeUIItems"] = "primitiveTypeUiItems"; - // DPI_PrimitiveTypeUIItemOptions, having type PrimitiveTypeUIItemOptionsPresModel - ParameterId["PrimitiveTypeUIItemOptions"] = "primitiveTypeUiItemOptions"; - // DPI_LineUIItemOptions, having type LineUIItemOptionsPresModel - ParameterId["LineUIItemOptions"] = "lineUiItemOptions"; - // DPI_LineInterpolationModeUIItem, having type LineInterpolationModeUIItemPresModel - ParameterId["LineInterpolationModeUIItem"] = "lineInterpolationModeUiItem"; - // DPI_LineInterpolationModeUIItemSet, having type LineInterpolationModeUIItemPresModel[] - ParameterId["LineInterpolationModeUIItemSet"] = "lineInterpolationModeUiItemSet"; - // DPI_LineMarkerPositionUIItem, having type LineMarkerPositionUIItemPresModel - ParameterId["LineMarkerPositionUIItem"] = "lineMarkerPositionUiItem"; - // DPI_LineMarkerPositionUIItemSet, having type LineMarkerPositionUIItemPresModel[] - ParameterId["LineMarkerPositionUIItemSet"] = "lineMarkerPositionUiItemSet"; - // DPI_MarksCardDropdownItem, having type MarksCardDropdownItemPresModel - ParameterId["MarksCardDropdownItem"] = "marksCardDropdownItem"; - // DPI_TooltipDropdownItem, having type TooltipDropdownItemPresModel - ParameterId["TooltipDropdownItem"] = "tooltipDropdownItem"; - // DPI_TextDropdownItem, having type TextDropdownItemPresModel - ParameterId["TextDropdownItem"] = "textDropdownItem"; - // DPI_ColorDropdownItem, having type ColorDropdownItemPresModel - ParameterId["ColorDropdownItem"] = "colorDropdownItem"; - // DPI_SizeSliderPresModel, having type SizeSliderPresModel - ParameterId["SizeSliderPresModel"] = "sizeSliderPresModel"; - // DPI_InflectionPoint, having type InflectionPointPresModel - ParameterId["InflectionPoint"] = "inflectionPoint"; - // DPI_InflectionPoints, having type InflectionPointPresModel[] - ParameterId["InflectionPoints"] = "inflectionPoints"; - // DPI_Notch, having type NotchPresModel - ParameterId["Notch"] = "notch"; - // DPI_Notches, having type NotchPresModel[] - ParameterId["Notches"] = "notches"; - // DPI_MarkSizeOptionsPresModel, having type MarkSizeOptionsPresModel - ParameterId["MarkSizeOptionsPresModel"] = "markSizeOptionsPresModel"; - // DPI_ModifyMarksInSet, having type AddOrRemoveMarks - ParameterId["ModifyMarksInSet"] = "addOrRemoveMarks"; - // DPI_MarkLabelsSpecification, having type MarkLabelsSpecificationPresModel - ParameterId["MarkLabelsSpecification"] = "markLabelsSpecification"; - // DPI_ColorPalette, having type ColorPalettePresModel - ParameterId["ColorPalette"] = "colorPalette"; - // DPI_SelectedColorPalette, having type ColorPalettePresModel - ParameterId["SelectedColorPalette"] = "selectedColorPalette"; - // DPI_ColorPalettes, having type ColorPalettePresModel[] - ParameterId["ColorPalettes"] = "colorPalettes"; - // DPI_ColorPaletteGroup, having type ColorPaletteGroupPresModel - ParameterId["ColorPaletteGroup"] = "colorPaletteGroup"; - // DPI_CatColorPaletteGroups, having type ColorPaletteGroupPresModel[] - ParameterId["CatColorPaletteGroups"] = "catColorPaletteGroups"; - // DPI_QColorPaletteGroups, having type ColorPaletteGroupPresModel[] - ParameterId["QColorPaletteGroups"] = "qColorPaletteGroups"; - // DPI_ColorPaletteCollection, having type ColorPaletteCollectionPresModel - ParameterId["ColorPaletteCollection"] = "colorPaletteCollection"; - // DPI_QuantitativeColor, having type QuantitativeColorPresModel - ParameterId["QuantitativeColor"] = "quantitativeColor"; - // DPI_CategoricalColor, having type CategoricalColorPresModel - ParameterId["CategoricalColor"] = "categoricalColor"; - // DPI_ItemColorPair, having type ItemColorPairPresModel - ParameterId["ItemColorPair"] = "itemColorPair"; - // DPI_ItemColorPairs, having type ItemColorPairPresModel[] - ParameterId["ItemColorPairs"] = "itemColorPairs"; - // DPI_VQLCommandResponse, having type VQLCommandResponsePresModel - ParameterId["VQLCommandResponse"] = "vqlCmdResponse"; - // DPI_LayoutStatus, having type LayoutStatusPresModel - ParameterId["LayoutStatus"] = "layoutStatus"; - // DPI_VizState, having type VizStatePresModel - ParameterId["VizState"] = "vizState"; - // DPI_VizStateList, having type VizStatePresModel[] - ParameterId["VizStateList"] = "vizStateList"; - // DPI_CommandResult, having type CommandResultPresModel - ParameterId["CommandResult"] = "cmdResult"; - // DPI_CommandResultList, having type CommandResultPresModel[] - ParameterId["CommandResultList"] = "cmdResultList"; - // DPI_URLAction, having type URLActionPresModel - ParameterId["URLAction"] = "urlAction"; - // DPI_URLActionList, having type URLActionPresModel[] - ParameterId["URLActionList"] = "urlActionList"; - // DPI_LegacyMenu, having type LegacyMenuPresModel - ParameterId["LegacyMenu"] = "legacyMenu"; - // DPI_LegacyMenus, having type LegacyMenuPresModel[] - ParameterId["LegacyMenus"] = "legacyMenus"; - // DPI_ConnectionAttemptInfo, having type ConnectionAttemptInfoPresModel - ParameterId["ConnectionAttemptInfo"] = "connectionAttemptInfo"; - // DPI_DataSourceConnectionAttemptInfo, having type DataSourceConnectionAttemptInfoPresModel - ParameterId["DataSourceConnectionAttemptInfo"] = "dataSourceConnectionAttemptInfo"; - // DPI_DataSourceConnectionAttemptInfos, having type DataSourceConnectionAttemptInfoPresModel[] - ParameterId["DataSourceConnectionAttemptInfos"] = "dataSourceConnectionAttemptInfos"; - // DPI_CommandValidationPresModel, having type CommandValidationPresModel - ParameterId["CommandValidationPresModel"] = "commandValidationPresModel"; - // DPI_WarningMessage, having type WarningMessagePresModel - ParameterId["WarningMessage"] = "warningMessagePresModel"; - // DPI_ApplicationPresModel, having type ApplicationPresModel - ParameterId["ApplicationPresModel"] = "applicationPresModel"; - // DPI_ToolbarPresModel, having type ToolbarPresModel - ParameterId["ToolbarPresModel"] = "toolbarPresModel"; - // DPI_WorkbookPresModel, having type WorkbookPresModel - ParameterId["WorkbookPresModel"] = "workbookPresModel"; - // DPI_ServerFonts, having type ServerFontsPresModel - ParameterId["ServerFonts"] = "serverFonts"; - // DPI_PublishDataSourceMetadataPresModel, having type PublishDataSourceMetadataPresModel - ParameterId["PublishDataSourceMetadataPresModel"] = "publishDataSourceMetadataPresModel"; - // DPI_DashboardPresModel, having type DashboardPresModel - ParameterId["DashboardPresModel"] = "dashboardPresModel"; - // DPI_DashboardSizePresModel, having type DashboardSizePresModel - ParameterId["DashboardSizePresModel"] = "dashboardSizePresModel"; - // DPI_DashboardSizeWithValidationPresModel, having type DashboardSizeWithValidationPresModel - ParameterId["DashboardSizeWithValidationPresModel"] = "dashboardSizeWithValidationPresModel"; - // DPI_DashboardInfoPresModel, having type DashboardInfoPresModel - ParameterId["DashboardInfoPresModel"] = "dashboardInfoPresModel"; - // DPI_VisualPresModel, having type VisualPresModel - ParameterId["VisualPresModel"] = "visual"; - // DPI_VisualPresModels, having type VisualPresModel[] - ParameterId["VisualPresModels"] = "visuals"; - // DPI_DropLinesPresModel, having type DropLinesPresModel - ParameterId["DropLinesPresModel"] = "dropLinesPresModel"; - // DPI_DropFieldPresModel, having type DropFieldPresModel - ParameterId["DropFieldPresModel"] = "dropFieldPresModel"; - // DPI_DropFieldResultPresModel, having type DropFieldResultPresModel - ParameterId["DropFieldResultPresModel"] = "dropFieldResultPresModel"; - // DPI_CurrentAxisRange, having type DataValueRangePresModel - ParameterId["CurrentAxisRange"] = "currentAxisRange"; - // DPI_CurrentAxisRangeNoTime, having type DataValueRangePresModel - ParameterId["CurrentAxisRangeNoTime"] = "currentAxisRangeNoTime"; - // DPI_DefaultAxisRange, having type DataValueRangePresModel - ParameterId["DefaultAxisRange"] = "defaultAxisRange"; - // DPI_NewAxisRange, having type DataValueRangePresModel - ParameterId["NewAxisRange"] = "newAxisRange"; - // DPI_AxisOptions, having type AxisOptionsPresModel - ParameterId["AxisOptions"] = "axis"; - // DPI_AxisMajorTicks, having type TickMarkInfoPresModel - ParameterId["AxisMajorTicks"] = "axisMajorTicks"; - // DPI_AxisMinorTicks, having type TickMarkInfoPresModel - ParameterId["AxisMinorTicks"] = "axisMinorTicks"; - // DPI_EditAxisDialog, having type EditAxisDialogPresModel - ParameterId["EditAxisDialog"] = "editAxisDialog"; - // DPI_MarkLabels, having type ScenePresModel - ParameterId["MarkLabels"] = "markLabels"; - // DPI_Scene, having type ScenePresModel - ParameterId["Scene"] = "scene"; - // DPI_MapServer, having type MapServerPresModel - ParameterId["MapServer"] = "mapServer"; - // DPI_VisualList, having type VisualListPresModel - ParameterId["VisualList"] = "visualList"; - // DPI_DrawFirst, having type VisualListPresModel[] - ParameterId["DrawFirst"] = "drawFirst"; - // DPI_DrawLast, having type VisualListPresModel[] - ParameterId["DrawLast"] = "drawLast"; - // DPI_DrawPane, having type VisualListPresModel[] - ParameterId["DrawPane"] = "drawPane"; - // DPI_UserPaneInfo, having type UserPaneInfoPresModel - ParameterId["UserPaneInfo"] = "userPaneInfo"; - // DPI_AnalyticsPane, having type AnalyticsPanePresModel - ParameterId["AnalyticsPane"] = "analyticsPane"; - // DPI_AnalyticsObjectItem, having type AnalyticsObjectItemPresModel - ParameterId["AnalyticsObjectItem"] = "analyticsObjectItem"; - // DPI_AnalyticsObjectItems, having type AnalyticsObjectItemPresModel[] - ParameterId["AnalyticsObjectItems"] = "analyticsObjectItems"; - // DPI_AnalyticsObjectGroup, having type AnalyticsObjectGroupPresModel - ParameterId["AnalyticsObjectGroup"] = "analyticsObjectGroup"; - // DPI_AnalyticsObjectGroups, having type AnalyticsObjectGroupPresModel[] - ParameterId["AnalyticsObjectGroups"] = "analyticsObjectGroups"; - // DPI_DropZoneItem, having type DropZoneItemPresModel - ParameterId["DropZoneItem"] = "dropZoneItem"; - // DPI_DropZoneItems, having type DropZoneItemPresModel[] - ParameterId["DropZoneItems"] = "dropZoneItems"; - // DPI_DropTargetInfo, having type DropTargetInfoPresModel - ParameterId["DropTargetInfo"] = "dropTargetInfo"; - // DPI_Pane, having type PanePresModel - ParameterId["Pane"] = "pane"; - // DPI_Panes, having type PanePresModel[] - ParameterId["Panes"] = "panes"; - // DPI_RadialSelectionDistanceInfo, having type RadialSelectionDistanceInfoPresModel - ParameterId["RadialSelectionDistanceInfo"] = "radialSelectionDistanceInfo"; - // DPI_MapScaleInfo, having type MapScaleInfoPresModel - ParameterId["MapScaleInfo"] = "mapScaleInfo"; - // DPI_RenderNode, having type RenderNodePresModel - ParameterId["RenderNode"] = "renderNode"; - // DPI_RenderNodes, having type RenderNodePresModel[] - ParameterId["RenderNodes"] = "renderNodes"; - // DPI_PredictionBand, having type PredictionBandPresModel - ParameterId["PredictionBand"] = "predictionBand"; - // DPI_PredictionWhisker, having type PredictionWhiskerPresModel - ParameterId["PredictionWhisker"] = "predictionWhisker"; - // DPI_DrawGroup, having type DrawPointsPresModel - ParameterId["DrawGroup"] = "drawGroup"; - // DPI_ClipReset, having type DrawItemPresModel - ParameterId["ClipReset"] = "clipReset"; - // DPI_DrawItem, having type DrawItemPresModel - ParameterId["DrawItem"] = "drawItem"; - // DPI_TransformPop, having type DrawItemPresModel - ParameterId["TransformPop"] = "transformPop"; - // DPI_TransformPush, having type DrawItemPresModel - ParameterId["TransformPush"] = "transformPush"; - // DPI_DrawItems, having type DrawItemPresModel[] - ParameterId["DrawItems"] = "drawItems"; - // DPI_ClipRect, having type DrawPointsPresModel - ParameterId["ClipRect"] = "clipRect"; - // DPI_DrawEllipse, having type DrawPointsPresModel - ParameterId["DrawEllipse"] = "drawEllipse"; - // DPI_DrawFillEllipse, having type DrawPointsPresModel - ParameterId["DrawFillEllipse"] = "drawFillEllipse"; - // DPI_DrawFillPolygon, having type DrawPointsPresModel - ParameterId["DrawFillPolygon"] = "drawFillPolygon"; - // DPI_DrawFillRect, having type DrawPointsPresModel - ParameterId["DrawFillRect"] = "drawFillRect"; - // DPI_DrawPolygon, having type DrawPointsPresModel - ParameterId["DrawPolygon"] = "drawPolygon"; - // DPI_DrawPolyline, having type DrawPointsPresModel - ParameterId["DrawPolyline"] = "drawPolyline"; - // DPI_DrawRect, having type DrawPointsPresModel - ParameterId["DrawRect"] = "drawRect"; - // DPI_DrawFillPath, having type DrawPathPresModel - ParameterId["DrawFillPath"] = "drawFillPath"; - // DPI_DrawPath, having type DrawPathPresModel - ParameterId["DrawPath"] = "drawPath"; - // DPI_DrawText, having type DrawTextPresModel - ParameterId["DrawText"] = "drawText"; - // DPI_DrawImage, having type DrawImagePresModel - ParameterId["DrawImage"] = "drawImage"; - // DPI_ImageTileInfo, having type ImageTileInfoPresModel - ParameterId["ImageTileInfo"] = "tileInfo"; - // DPI_ImageTileInfos, having type ImageTileInfoPresModel[] - ParameterId["ImageTileInfos"] = "tileInfos"; - // DPI_DrawImageTiles, having type DrawImageTilesPresModel - ParameterId["DrawImageTiles"] = "drawImageTiles"; - // DPI_DrawPen, having type DrawPenPresModel - ParameterId["DrawPen"] = "drawPen"; - // DPI_DrawSolidBrush, having type DrawSolidBrushPresModel - ParameterId["DrawSolidBrush"] = "drawSolidBrush"; - // DPI_DrawTextProperties, having type DrawTextPropertiesPresModel - ParameterId["DrawTextProperties"] = "drawTextProps"; - // DPI_DrawGradientBrush, having type DrawGradientBrushPresModel - ParameterId["DrawGradientBrush"] = "drawGradientBrush"; - // DPI_DrawTransform, having type DrawTransformPresModel - ParameterId["DrawTransform"] = "transform"; - // DPI_DrawAntialias, having type DrawAntialiasPresModel - ParameterId["DrawAntialias"] = "drawAntialias"; - // DPI_ImageDictionary, having type ImageDictionaryPresModel - ParameterId["ImageDictionary"] = "imageDictionary"; - // DPI_ColorDictionary, having type ColorDictionaryPresModel - ParameterId["ColorDictionary"] = "colorDictionary"; - // DPI_MarkShape, having type MarkShapePresModel - ParameterId["MarkShape"] = "markShape"; - // DPI_MarkShapeList, having type MarkShapePresModel[] - ParameterId["MarkShapeList"] = "markShapeList"; - // DPI_PaneDescriptor, having type PaneDescriptorPresModel - ParameterId["PaneDescriptor"] = "paneDescriptor"; - // DPI_PDMarks, having type PDMarksPresModel - ParameterId["PDMarks"] = "pdMarks"; - // DPI_PDMarksMap, having type Dictionary(of PDMarksPresModel) - ParameterId["PDMarksMap"] = "pdMarksMap"; - // DPI_LabelTextTable, having type LabelTextTable - ParameterId["LabelTextTable"] = "labelTextTable"; - // DPI_TextTableHelper, having type TextTableHelper - ParameterId["TextTableHelper"] = "textTableHelper"; - // DPI_GeometryTable, having type GeometryTable - ParameterId["GeometryTable"] = "geometryTable"; - // DPI_PaneMarks, having type PaneMarksPresModel - ParameterId["PaneMarks"] = "paneMarks"; - // DPI_PaneMarksList, having type PaneMarksPresModel[] - ParameterId["PaneMarksList"] = "paneMarksList"; - // DPI_BrushingSelection, having type SelectionPresModel - ParameterId["BrushingSelection"] = "brushing"; - // DPI_Selection, having type SelectionPresModel - ParameterId["Selection"] = "selection"; - // DPI_BrushingSelectionList, having type SelectionPresModel[] - ParameterId["BrushingSelectionList"] = "brushingSelectionList"; - // DPI_SelectionList, having type SelectionPresModel[] - ParameterId["SelectionList"] = "selectionList"; - // DPI_ShelfSelectionModel, having type ShelfSelectionPresModel - ParameterId["ShelfSelectionModel"] = "shelfSelectionModel"; - // DPI_ShelfSelectionModels, having type ShelfSelectionPresModel[] - ParameterId["ShelfSelectionModels"] = "shelfSelectionModels"; - // DPI_ShelfSelectionsModel, having type ShelfSelectionsPresModel - ParameterId["ShelfSelectionsModel"] = "shelfSelectionsModel"; - // DPI_DimValSelectionModel, having type DimensionValueSelectionPresModel - ParameterId["DimValSelectionModel"] = "dimensionValueSelectionModel"; - // DPI_DimValSelectionModels, having type DimensionValueSelectionPresModel[] - ParameterId["DimValSelectionModels"] = "dimensionValueSelectionModels"; - // DPI_HierValSelectionModel, having type HierarchicalValueSelectionPresModel - ParameterId["HierValSelectionModel"] = "hierarchicalValueSelectionModel"; - // DPI_HierValSelectionModels, having type HierarchicalValueSelectionPresModel[] - ParameterId["HierValSelectionModels"] = "hierarchicalValueSelectionModels"; - // DPI_QuantRangeSelectionModel, having type QuantativeRangeSelectionPresModel - ParameterId["QuantRangeSelectionModel"] = "quantativeRangeSelectionModel"; - // DPI_QuantRangeSelectionModels, having type QuantativeRangeSelectionPresModel[] - ParameterId["QuantRangeSelectionModels"] = "quantativeRangeSelectionModels"; - // DPI_QuantValueSelectionModel, having type QuantativeValueSelectionPresModel - ParameterId["QuantValueSelectionModel"] = "quantativeValueSelectionModel"; - // DPI_QuantValueSelectionModels, having type QuantativeValueSelectionPresModel[] - ParameterId["QuantValueSelectionModels"] = "quantativeValueSelectionModels"; - // DPI_LegendSelectionInfo, having type LegendSelectionInfoPresModel - ParameterId["LegendSelectionInfo"] = "legendSelectionInfo"; - // DPI_NodeReference, having type NodeReferencePresModel - ParameterId["NodeReference"] = "nodeReference"; - // DPI_PageReference, having type PageReferencePresModel - ParameterId["PageReference"] = "pageReference"; - // DPI_OrientedNodeReference, having type OrientedNodeReferencePresModel - ParameterId["OrientedNodeReference"] = "orientedNodeReference"; - // DPI_OrientedNodeReferences, having type OrientedNodeReferencePresModel[] - ParameterId["OrientedNodeReferences"] = "orientedNodeReferences"; - // DPI_SelectionData, having type SelectionDataPresModel - ParameterId["SelectionData"] = "selectionData"; - // DPI_HighlightedData, having type HighlightedDataPresModel - ParameterId["HighlightedData"] = "highlightedData"; - // DPI_Node, having type NodePresModel - ParameterId["Node"] = "node"; - // DPI_Nodes, having type NodePresModel[] - ParameterId["Nodes"] = "nodes"; - // DPI_SelectedNodes, having type NodePresModel[] - ParameterId["SelectedNodes"] = "selectedNodes"; - // DPI_UserAction, having type ActionPresModel - ParameterId["UserAction"] = "userAction"; - // DPI_UserActions, having type ActionPresModel[] - ParameterId["UserActions"] = "userActions"; - // DPI_LinkSpec, having type LinkSpecPresModel - ParameterId["LinkSpec"] = "linkSpec"; - // DPI_ActionSpecificationModel, having type ActionSpecificationPresModel - ParameterId["ActionSpecificationModel"] = "actionSpecification"; - // DPI_LinkSpecification, having type LinkSpecificationPresModel - ParameterId["LinkSpecification"] = "linkSpecification"; - // DPI_ScriptDescription, having type ScriptDescriptionPresModel - ParameterId["ScriptDescription"] = "scriptDescription"; - // DPI_ActionSource, having type ActionSourcePresModel - ParameterId["ActionSource"] = "actionSource"; - // DPI_FieldExprItem, having type FieldExprItemPresModel - ParameterId["FieldExprItem"] = "fieldExpressionItem"; - // DPI_FieldExprVector, having type FieldExprItemPresModel[] - ParameterId["FieldExprVector"] = "fieldExpressionVector"; - // DPI_ActionComboItem, having type ActionComboItemPresModel - ParameterId["ActionComboItem"] = "actionComboItem"; - // DPI_ActionComboVector, having type ActionComboItemPresModel[] - ParameterId["ActionComboVector"] = "actionComboVector"; - // DPI_ActionSourceCombo, having type ActionSourceComboPresModel - ParameterId["ActionSourceCombo"] = "actionSourceCombo"; - // DPI_ActionDestCombo, having type ActionComboPresModel - ParameterId["ActionDestCombo"] = "actionDestCombo"; - // DPI_ActionFieldList, having type ActionFieldListPresModel - ParameterId["ActionFieldList"] = "actionFieldList"; - // DPI_EditBrushAction, having type EditBrushActionPresModel - ParameterId["EditBrushAction"] = "editBrushAction"; - // DPI_UpdateActionSource, having type UpdateActionSourcePresModel - ParameterId["UpdateActionSource"] = "updateActionSource"; - // DPI_UpdateBrushAction, having type UpdateBrushActionPresModel - ParameterId["UpdateBrushAction"] = "updateBrushAction"; - // DPI_ActionWarnings, having type ActionWarningsPresModel - ParameterId["ActionWarnings"] = "actionWarnings"; - // DPI_EditHyperlinkAction, having type EditHyperlinkActionPresModel - ParameterId["EditHyperlinkAction"] = "editHyperlinkAction"; - // DPI_UpdateHyperlinkAction, having type UpdateHyperlinkActionPresModel - ParameterId["UpdateHyperlinkAction"] = "updateHyperlinkAction"; - // DPI_EditSheetLinkAction, having type EditSheetLinkActionPresModel - ParameterId["EditSheetLinkAction"] = "editSheetlinkAction"; - // DPI_UpdateSheetLinkAction, having type UpdateSheetLinkActionPresModel - ParameterId["UpdateSheetLinkAction"] = "updateSheetlinkAction"; - // DPI_ActionItem, having type ActionItemPresModel - ParameterId["ActionItem"] = "actionItem"; - // DPI_ActionItemList, having type ActionItemPresModel[] - ParameterId["ActionItemList"] = "actionItemList"; - // DPI_DataSegment, having type DataSegmentPresModel - ParameterId["DataSegment"] = "dataSegment"; - // DPI_DataSegments, having type Dictionary(of DataSegmentPresModel) - ParameterId["DataSegments"] = "dataSegments"; - // DPI_DataDictionary, having type DataDictionaryPresModel - ParameterId["DataDictionary"] = "dataDictionary"; - // DPI_VizData, having type VizDataPresModel - ParameterId["VizData"] = "vizData"; - // DPI_VizColumn, having type VizColumnPresModel - ParameterId["VizColumn"] = "vizColumn"; - // DPI_VizColumns, having type VizColumnPresModel[] - ParameterId["VizColumns"] = "vizColumns"; - // DPI_VizDataColumn, having type VizDataColumnPresModel - ParameterId["VizDataColumn"] = "vizDataColumn"; - // DPI_VizDataColumns, having type VizDataColumnPresModel[] - ParameterId["VizDataColumns"] = "vizDataColumns"; - // DPI_VizPaneColumn, having type VizPaneColumnPresModel - ParameterId["VizPaneColumn"] = "vizPaneColumn"; - // DPI_VizPaneColumns, having type VizPaneColumnPresModel[] - ParameterId["VizPaneColumns"] = "vizPaneColumns"; - // DPI_PaneColumns, having type PaneColumnsPresModel - ParameterId["PaneColumns"] = "paneColumns"; - // DPI_PaneColumnsList, having type PaneColumnsPresModel[] - ParameterId["PaneColumnsList"] = "paneColumnsList"; - // DPI_PaneColumnsData, having type PaneColumnsDataPresModel - ParameterId["PaneColumnsData"] = "paneColumnsData"; - // DPI_FilterContext, having type FilterContextPresModel - ParameterId["FilterContext"] = "filterContext"; - // DPI_UberTipPaneData, having type UberTipPaneDataPresModel - ParameterId["UberTipPaneData"] = "ubertipPaneData"; - // DPI_UberTipPaneDatas, having type UberTipPaneDataPresModel[] - ParameterId["UberTipPaneDatas"] = "ubertipPaneDatas"; - // DPI_UberTipData, having type UberTipDataPresModel - ParameterId["UberTipData"] = "ubertipData"; - // DPI_RefLineTip, having type RefLineTipPresModel - ParameterId["RefLineTip"] = "refLineTip"; - // DPI_RefLineTips, having type RefLineTipPresModel[] - ParameterId["RefLineTips"] = "refLineTips"; - // DPI_NumericBin, having type NumericBinPresModel - ParameterId["NumericBin"] = "numericBin"; - // DPI_NumericBinDialog, having type NumericBinDialogPresModel - ParameterId["NumericBinDialog"] = "numericBinDialog"; - // DPI_DomainRange, having type DomainRangePresModel - ParameterId["DomainRange"] = "domainRange"; - // DPI_BinSizeInfo, having type BinSizeInfoPresModel - ParameterId["BinSizeInfo"] = "binSizeInfo"; - // DPI_DetailedErrorDialog, having type DetailedErrorPresModel - ParameterId["DetailedErrorDialog"] = "detailedErrorDialog"; - // DPI_DragSourcePosition, having type ShelfDropPositionPresModel - ParameterId["DragSourcePosition"] = "shelfDragSourcePosition"; - // DPI_DropTargetPosition, having type ShelfDropPositionPresModel - ParameterId["DropTargetPosition"] = "shelfDropTargetPosition"; - // DPI_ShelfDropPosition, having type ShelfDropPositionPresModel - ParameterId["ShelfDropPosition"] = "shelfDropPosition"; - // DPI_ShelfDropPositions, having type ShelfDropPositionPresModel[] - ParameterId["ShelfDropPositions"] = "shelfDropPositions"; - // DPI_ShelfDropModel, having type ShelfDropPresModel - ParameterId["ShelfDropModel"] = "shelfDropModel"; - // DPI_ShelfDropModels, having type ShelfDropPresModel[] - ParameterId["ShelfDropModels"] = "shelfDropModels"; - // DPI_Drag, having type DragPresModel - ParameterId["Drag"] = "drag"; - // DPI_SceneElement, having type SceneElementPresModel - ParameterId["SceneElement"] = "sceneElement"; - // DPI_SceneElements, having type SceneElementPresModel[] - ParameterId["SceneElements"] = "sceneElements"; - // DPI_QuickFilterType, having type QuickFilterType - ParameterId["QuickFilterType"] = "quickFilterType"; - // DPI_CatMode, having type QuickFilterCategoricalMode - ParameterId["CatMode"] = "categoricalMode"; - // DPI_CatCtrl, having type QuickFilterCategoricalCtrl - ParameterId["CatCtrl"] = "categoricalControl"; - // DPI_QuantMode, having type QuickFilterQuantitativeMode - ParameterId["QuantMode"] = "quantitativeMode"; - // DPI_QuantCtrl, having type QuickFilterQuantitativeCtrl - ParameterId["QuantCtrl"] = "quantitativeControl"; - // DPI_ZoneCommon, having type ZoneCommonPresModel - ParameterId["ZoneCommon"] = "zoneCommon"; - // DPI_ZoneCommonListItems, having type ZoneCommonPresModel[] - ParameterId["ZoneCommonListItems"] = "zoneCommonListItems"; - // DPI_Zone, having type ZonePresModel - ParameterId["Zone"] = "zone"; - // DPI_Zones, having type Dictionary(of ZonePresModel) - ParameterId["Zones"] = "zones"; - // DPI_ImageZone, having type ImageZonePresModel - ParameterId["ImageZone"] = "imageZone"; - // DPI_WebZone, having type WebZonePresModel - ParameterId["WebZone"] = "webZone"; - // DPI_ButtonZonePresModel, having type ButtonZonePresModel - ParameterId["ButtonZonePresModel"] = "buttonZone"; - // DPI_ZoneEdgeMoveType, having type ZoneEdgeMove - ParameterId["ZoneEdgeMoveType"] = "zoneEdgeMoveType"; - // DPI_ZoneSide, having type SideType - ParameterId["ZoneSide"] = "zoneSide"; - // DPI_SnapPoint, having type SnapPointPresModel - ParameterId["SnapPoint"] = "snapPoint"; - // DPI_SnapPoints, having type SnapPointPresModel[] - ParameterId["SnapPoints"] = "snapPoints"; - // DPI_TargetPreviewPair, having type DragDropTargetPreviewPairPresModel - ParameterId["TargetPreviewPair"] = "targetPreviewPair"; - // DPI_TargetPreviewPairs, having type DragDropTargetPreviewPairPresModel[] - ParameterId["TargetPreviewPairs"] = "targetPreviewPairs"; - // DPI_ContainerGuide, having type DragDropContainerGuidePresModel - ParameterId["ContainerGuide"] = "containerGuide"; - // DPI_ContainerGuides, having type DragDropContainerGuidePresModel[] - ParameterId["ContainerGuides"] = "containerGuides"; - // DPI_ZoneBorder, having type DragDropZoneBorderPresModel - ParameterId["ZoneBorder"] = "zoneBorder"; - // DPI_ZoneBorders, having type DragDropZoneBorderPresModel[] - ParameterId["ZoneBorders"] = "zoneBorders"; - // DPI_DashboardDragDrop, having type DashboardDragDropPresModel - ParameterId["DashboardDragDrop"] = "zoneDragDrop"; - // DPI_DragZoneResize, having type DragZoneResizePresModel - ParameterId["DragZoneResize"] = "zoneResize"; - // DPI_DashboardText, having type TextRegionPresModel - ParameterId["DashboardText"] = "dashboardText"; - // DPI_DashboardTitle, having type TextRegionPresModel - ParameterId["DashboardTitle"] = "dashboardTitle"; - // DPI_QuickFilterTitle, having type TextRegionPresModel - ParameterId["QuickFilterTitle"] = "quickFilterTitle"; - // DPI_VisualCaption, having type TextRegionPresModel - ParameterId["VisualCaption"] = "visualCaption"; - // DPI_VisualTitle, having type TextRegionPresModel - ParameterId["VisualTitle"] = "visualTitle"; - // DPI_ZoneTitleRegion, having type TextRegionPresModel - ParameterId["ZoneTitleRegion"] = "zoneTitle"; - // DPI_ForecastOptions, having type ForecastPresModel - ParameterId["ForecastOptions"] = "forecastOptions"; - // DPI_ForecastDescription, having type ForecastDescribePresModel - ParameterId["ForecastDescription"] = "forecastDescription"; - // DPI_WorkgroupPublishObject, having type WorkgroupPublishObjectPresModel - ParameterId["WorkgroupPublishObject"] = "publishDataSource"; - // DPI_PublishPermissionsSummary, having type PublishPermissionsSummaryPresModel - ParameterId["PublishPermissionsSummary"] = "publishPermissionsSummary"; - // DPI_CheckNameResults, having type CheckNameResultsPresModel - ParameterId["CheckNameResults"] = "checkNameResults"; - // DPI_ValidatePublishViewsResult, having type ValidatePublishViewsResultPresModel - ParameterId["ValidatePublishViewsResult"] = "validatePublishViewsResult"; - // DPI_PublishAuthenticationSettings, having type PublishAuthenticationSettingsPresModel - ParameterId["PublishAuthenticationSettings"] = "publishAuthenticationSettings"; - // DPI_ManageDatasources, having type ManageDatasourcesPresModel - ParameterId["ManageDatasources"] = "manageDatasources"; - // DPI_CredentialsAuthSettings, having type CredentialsAuthSettingsPresModel - ParameterId["CredentialsAuthSettings"] = "credentialsAuthSettings"; - // DPI_ConnectionCredentialsAuthSettings, having type ConnectionCredentialsAuthSettingsPresModel - ParameterId["ConnectionCredentialsAuthSettings"] = "connectionCredentialsAuthSettings"; - // DPI_ConnectionCredentialsAuthSettingsList, having type ConnectionCredentialsAuthSettingsPresModel[] - ParameterId["ConnectionCredentialsAuthSettingsList"] = "connectionCredentialsAuthSettingsList"; - // DPI_PublishDatasourceFromWorkbookInfo, having type PublishDatasourceFromWorkbookInfoPresModel - ParameterId["PublishDatasourceFromWorkbookInfo"] = "publishDatasourceFromWorkbookInfo"; - // DPI_PublishDatasourcesFromWorkbookInfo, having type PublishDatasourceFromWorkbookInfoPresModel[] - ParameterId["PublishDatasourcesFromWorkbookInfo"] = "publishDatasourcesFromWorkbookInfo"; - // DPI_PublishSheet, having type PublishSheetPresModel - ParameterId["PublishSheet"] = "publishSheet"; - // DPI_PublishSheets, having type PublishSheetPresModel[] - ParameterId["PublishSheets"] = "publishSheets"; - // DPI_PublishObjectViews, having type PublishObjectViewsPresModel - ParameterId["PublishObjectViews"] = "publishObjectViews"; - // DPI_PublishObjectPublishSheetResults, having type PublishObjectPublishSheetResultsPresModel - ParameterId["PublishObjectPublishSheetResults"] = "publishObjectPublishSheetResults"; - // DPI_RefreshExtractSchedulingSettings, having type RefreshExtractSchedulingSettingsPresModel - ParameterId["RefreshExtractSchedulingSettings"] = "refreshExtractSchedulingSettings"; - // DPI_SetRefreshExtractScheduleResult, having type SetRefreshExtractScheduleResultPresModel - ParameterId["SetRefreshExtractScheduleResult"] = "setRefreshExtractScheduleResult"; - // DPI_CheckPublishObjectNameWarningsResults, having type CheckPublishObjectNameWarningsResultsPresModel - ParameterId["CheckPublishObjectNameWarningsResults"] = "checkPublishObjectNameWarningsResults"; - // DPI_PublishDatasourceOnWorkbookPublishResults, having type PublishDatasourceOnWorkbookPublishResultsPresModel - ParameterId["PublishDatasourceOnWorkbookPublishResults"] = "publishDatasourceOnWorkbookPublishResult"; - // DPI_PublishDataSourceResult, having type PublishDataSourceResultPresModel - ParameterId["PublishDataSourceResult"] = "publishDataSourceResult"; - // DPI_PublishWarningMessage, having type PublishWarningMessagePresModel - ParameterId["PublishWarningMessage"] = "publishWarningMessage"; - // DPI_MustDowngradeToPublishWarningMessagePresModel, having type PublishWarningMessagePresModel - ParameterId["MustDowngradeToPublishWarningMessagePresModel"] = "mustDowngradeToPublishWarningMessagePresModel"; - // DPI_PublishSelectedAttributes, having type PublishSelectedAttributesPresModel - ParameterId["PublishSelectedAttributes"] = "publishSelectedAttributes"; - // DPI_AutosaveFile, having type AutosaveFilePresModel - ParameterId["AutosaveFile"] = "autosaveFile"; - // DPI_AutosaveFiles, having type AutosaveFilePresModel[] - ParameterId["AutosaveFiles"] = "autosaveFiles"; - // DPI_FunctionGroup, having type FunctionGroup - ParameterId["FunctionGroup"] = "funcGrp"; - // DPI_FunctionGroups, having type FunctionGroup[] - ParameterId["FunctionGroups"] = "funcGrps"; - // DPI_FunctionArgType, having type FunctionArgType - ParameterId["FunctionArgType"] = "funcArgType"; - // DPI_FunctionArgTypes, having type FunctionArgType[] - ParameterId["FunctionArgTypes"] = "funcArgTypes"; - // DPI_CalculationStyle, having type CalcStyle - ParameterId["CalculationStyle"] = "calculationStyle"; - // DPI_Calculation, having type CalculationPresModel - ParameterId["Calculation"] = "calculation"; - // DPI_TypeInPill, having type CalculationPresModel - ParameterId["TypeInPill"] = "typeInPill"; - // DPI_CalcErrorInfo, having type CalcErrorInfoPresModel - ParameterId["CalcErrorInfo"] = "errorInfo"; - // DPI_CalcErrorInfos, having type CalcErrorInfoPresModel[] - ParameterId["CalcErrorInfos"] = "errorInfoList"; - // DPI_CalcualtionValidation, having type CalculationValidationPresModel - ParameterId["CalcualtionValidation"] = "calculationValidation"; - // DPI_ExpressionFunction, having type ExpressionFunctionPresModel - ParameterId["ExpressionFunction"] = "expressionFunc"; - // DPI_ExpressionFunctions, having type ExpressionFunctionPresModel[] - ParameterId["ExpressionFunctions"] = "expressionFuncList"; - // DPI_ExpressionFunctionsPM, having type ExpressionFunctionsPresModel - ParameterId["ExpressionFunctionsPM"] = "expressionFuncPm"; - // DPI_StyleToken, having type StyleTokenPresModel - ParameterId["StyleToken"] = "styleToken"; - // DPI_StyleTokens, having type StyleTokenPresModel[] - ParameterId["StyleTokens"] = "styleTokenList"; - // DPI_CalcEditorTextSelection, having type CalcEditorTextSelectionPresModel - ParameterId["CalcEditorTextSelection"] = "calcEditorTextSelection"; - // DPI_AutoCompleteItemType, having type AutoCompleteItemType - ParameterId["AutoCompleteItemType"] = "autocompleteType"; - // DPI_AutoCompleteItem, having type AutoCompleteItemPresModel - ParameterId["AutoCompleteItem"] = "autocompleteItem"; - // DPI_AutoCompleteItems, having type AutoCompleteItemPresModel[] - ParameterId["AutoCompleteItems"] = "autocompleteItemList"; - // DPI_CalculationAutoCompleteContextMenu, having type CalculationAutoCompleteContextMenuPresModel - ParameterId["CalculationAutoCompleteContextMenu"] = "calculationAutocompleteContextMenu"; - // DPI_CalcApplyResult, having type CalcApplyResult - ParameterId["CalcApplyResult"] = "calculationApplyResult"; - // DPI_RampBorderStyledBox, having type StyledBoxPresModel - ParameterId["RampBorderStyledBox"] = "rampBorderStyledBox"; - // DPI_StyledBox, having type StyledBoxPresModel - ParameterId["StyledBox"] = "styledBox"; - // DPI_GlobalStyledBox, having type StyledBoxPresModel - ParameterId["GlobalStyledBox"] = "globalStyledBox"; - // DPI_StyleContext, having type StyleContextPresModel - ParameterId["StyleContext"] = "styleContext"; - // DPI_CurrentTextStyle, having type TextStylePresModel - ParameterId["CurrentTextStyle"] = "currentTextStyle"; - // DPI_LabelTextStyle, having type TextStylePresModel - ParameterId["LabelTextStyle"] = "labelTextStyle"; - // DPI_OriginalTextStyle, having type TextStylePresModel - ParameterId["OriginalTextStyle"] = "originalTextStyle"; - // DPI_SelectedTextStyleModel, having type TextStylePresModel - ParameterId["SelectedTextStyleModel"] = "selectedTextStyleModel"; - // DPI_SwatchTextStyleModel, having type TextStylePresModel - ParameterId["SwatchTextStyleModel"] = "swatchTextStyle"; - // DPI_TextStyleModel, having type TextStylePresModel - ParameterId["TextStyleModel"] = "textStyle"; - // DPI_TitleStyleModel, having type TextStylePresModel - ParameterId["TitleStyleModel"] = "titleStyleModel"; - // DPI_PropertyBag, having type PropertyBagPresModel - ParameterId["PropertyBag"] = "propBagWrapper"; - // DPI_PresModelMap, having type Dictionary(of PropertyBagPresModel) - ParameterId["PresModelMap"] = "presModelMap"; - // DPI_PresentationLayerNotifications, having type PresModelMapPresModel - ParameterId["PresentationLayerNotifications"] = "presentationLayerNotifications"; - // DPI_SecondaryInfo, having type PresModelMapPresModel - ParameterId["SecondaryInfo"] = "secondaryInfo"; - // DPI_ClientDashboardUIMetric, having type ClientDashboardUIMetricPresModel - ParameterId["ClientDashboardUIMetric"] = "clientDashboardUiMetric"; - // DPI_ClientDashboardUIMetrics, having type ClientDashboardUIMetricPresModel[] - ParameterId["ClientDashboardUIMetrics"] = "clientDashboardUiMetrics"; - // DPI_ClientDashboardUIMetricContainer, having type ClientDashboardUIMetricContainerPresModel - ParameterId["ClientDashboardUIMetricContainer"] = "clientDashboardUiMetricContainer"; - // DPI_ExtSvcConfig, having type ExtSvcConfigPresModel - ParameterId["ExtSvcConfig"] = "extSvcConfig"; - // DPI_StoryboardSheetItem, having type StoryboardSheetItemPresModel - ParameterId["StoryboardSheetItem"] = "storyboardSheetItem"; - // DPI_StoryboardSheetItems, having type StoryboardSheetItemPresModel[] - ParameterId["StoryboardSheetItems"] = "storyboardSheetItems"; - // DPI_StoryboardSheetList, having type StoryboardSheetListPresModel - ParameterId["StoryboardSheetList"] = "storyboardSheetList"; - // DPI_FitToStoryBoardOptionItem, having type FitToStoryBoardOptionItemPresModel - ParameterId["FitToStoryBoardOptionItem"] = "fitToStoryboardOptionItem"; - // DPI_FitToStoryBoardOptionItems, having type FitToStoryBoardOptionItemPresModel[] - ParameterId["FitToStoryBoardOptionItems"] = "fitToStoryboardOptionItems"; - // DPI_FitToStoryBoardOptionList, having type FitToStoryBoardOptionListPresModel - ParameterId["FitToStoryBoardOptionList"] = "fitToStoryboardOptionList"; - // DPI_StoryPointNavItem, having type StoryPointNavItemPresModel - ParameterId["StoryPointNavItem"] = "storypointNavItem"; - // DPI_StoryPointNavItems, having type StoryPointNavItemPresModel[] - ParameterId["StoryPointNavItems"] = "storypointNavItems"; - // DPI_FlipboardNav, having type FlipboardNavPresModel - ParameterId["FlipboardNav"] = "flipboardNav"; - // DPI_ScrollBarStyle, having type ScrollBarStylePresModel - ParameterId["ScrollBarStyle"] = "scrollBarStyle"; - // DPI_DashboardZoneLayoutPane, having type DashboardZoneLayoutPanePresModel - ParameterId["DashboardZoneLayoutPane"] = "dashboardZoneLayoutPane"; - // DPI_SelectedStoryPointStyle, having type StoryPointCaptionStylePresModel - ParameterId["SelectedStoryPointStyle"] = "selectedStoryPointStyle"; - // DPI_UnselectedStoryPointStyle, having type StoryPointCaptionStylePresModel - ParameterId["UnselectedStoryPointStyle"] = "unselectedStoryPointStyle"; - // DPI_FlipboardNavStyle, having type FlipboardNavStylePresModel - ParameterId["FlipboardNavStyle"] = "flipboardNavStyle"; - // DPI_StoryPoint, having type StoryPointPresModel - ParameterId["StoryPoint"] = "storyPoint"; - // DPI_StoryPoints, having type Dictionary(of StoryPointPresModel) - ParameterId["StoryPoints"] = "storyPoints"; - // DPI_Flipboard, having type FlipboardPresModel - ParameterId["Flipboard"] = "flipboard"; - // DPI_StoryPair, having type StoryPairPresModel - ParameterId["StoryPair"] = "storyPair"; - // DPI_StoryPairs, having type StoryPairPresModel[] - ParameterId["StoryPairs"] = "storyPairs"; - // DPI_StoryboardPM, having type StoryboardPresModel - ParameterId["StoryboardPM"] = "storyboardPm"; - // DPI_HiDpiIconDictionary, having type ImageCollectionPresModel - ParameterId["HiDpiIconDictionary"] = "hiDpiIconDictionary"; - // DPI_IconDictionary, having type ImageCollectionPresModel - ParameterId["IconDictionary"] = "iconDictionary"; - // DPI_IconResourceDictionary, having type ImageResourceCollectionPresModel - ParameterId["IconResourceDictionary"] = "iconResDictionary"; - // DPI_DataPreviewWindowMessage, having type DataPreviewWindowMessagePresModel - ParameterId["DataPreviewWindowMessage"] = "dataPreviewWindowMessage"; - // DPI_DataSourceData, having type DataSourceDataPresModel - ParameterId["DataSourceData"] = "dataSrcData"; - // DPI_DataSourceSort, having type DataSourceSortPresModel - ParameterId["DataSourceSort"] = "dataSrcSort"; - // DPI_ColumnInfo, having type DSColumnInfoPresModel - ParameterId["ColumnInfo"] = "columnInfo"; - // DPI_ColumnInfos, having type DSColumnInfoPresModel[] - ParameterId["ColumnInfos"] = "columnInfos"; - // DPI_DataFormatter, having type DVFormatter - ParameterId["DataFormatter"] = "dataFormatter"; - // DPI_JoinDescription, having type JoinDescriptionPresModel - ParameterId["JoinDescription"] = "joinDescription"; - // DPI_JoinDescriptions, having type Dictionary(of JoinDescriptionPresModel) - ParameterId["JoinDescriptions"] = "joinDescriptions"; - // DPI_FileTableInfo, having type FileTableInfoPresModel - ParameterId["FileTableInfo"] = "fileTableInfo"; - // DPI_FieldMapping, having type FieldMappingPresModel - ParameterId["FieldMapping"] = "fieldMapping"; - // DPI_FieldMappingData, having type FieldMappingDataPresModel - ParameterId["FieldMappingData"] = "fieldMappingData"; - // DPI_FieldMappingDataVector, having type FieldMappingDataPresModel[] - ParameterId["FieldMappingDataVector"] = "fieldMappingDataVector"; - // DPI_FrameFinder, having type FrameFinderPresModel - ParameterId["FrameFinder"] = "frameFinder"; - // DPI_SheetLinkFieldMapping, having type SheetLinkFieldMappingPresModel - ParameterId["SheetLinkFieldMapping"] = "sheetLinkFieldMapping"; - // DPI_UnionInfo, having type UnionInfoPresModel - ParameterId["UnionInfo"] = "unionInfo"; - // DPI_UnionTableInfo, having type UnionTableInfoPresMode - ParameterId["UnionTableInfo"] = "unionTableInfo"; - // DPI_UnionTableInfos, having type UnionTableInfoPresModel[] - ParameterId["UnionTableInfos"] = "unionTableInfos"; - // DPI_ConnectionPBUnionInfo, having type PBUnionInfoPresModel - ParameterId["ConnectionPBUnionInfo"] = "connectionPbunionInfo"; - // DPI_ConnectionPBUnionInfos, having type PBUnionInfoPresModel[] - ParameterId["ConnectionPBUnionInfos"] = "connectionPbunionInfos"; - // DPI_JoinClause, having type JoinClausePresModel - ParameterId["JoinClause"] = "joinClause"; - // DPI_JoinClauses, having type JoinClausePresModel[] - ParameterId["JoinClauses"] = "joinClauses"; - // DPI_JoinValidationResult, having type JoinValidationResultPresModel - ParameterId["JoinValidationResult"] = "joinValidationResult"; - // DPI_JoinTableInfo, having type JoinTableInfoPresModel - ParameterId["JoinTableInfo"] = "joinTableInfo"; - // DPI_ParameterInfo, having type JoinTableInfoPresModel - ParameterId["ParameterInfo"] = "parameterInfo"; - // DPI_JoinTableInfos, having type JoinTableInfoPresModel[] - ParameterId["JoinTableInfos"] = "joinTableInfos"; - // DPI_JoinOnCalcInfo, having type JoinOnCalcInfoPresModel - ParameterId["JoinOnCalcInfo"] = "joinOnCalcInfo"; - // DPI_ConnectionSummary, having type ConnectionSummaryPresModel - ParameterId["ConnectionSummary"] = "connectionSummary"; - // DPI_ConnectionSummaries, having type ConnectionSummaryPresModel[] - ParameterId["ConnectionSummaries"] = "connectionSummaries"; - // DPI_TopLevelConnectionDescription, having type TopLevelConnectionDescriptionPresModel - ParameterId["TopLevelConnectionDescription"] = "topLevelConnectionDescription"; - // DPI_DataConnectionTableViewMessages, having type DataConnectionTableViewMessagesPresModel - ParameterId["DataConnectionTableViewMessages"] = "dataConnectionTableViewMessages"; - // DPI_TextTransformScript, having type TextTransformScriptPresModel - ParameterId["TextTransformScript"] = "textTransformScript"; - // DPI_CalendarDateOptions, having type CalendarDateOptionsPresModel - ParameterId["CalendarDateOptions"] = "calendarDateOptions"; - // DPI_GoToWorksheetTooltipPresModel, having type GoToWorksheetTooltipPresModel - ParameterId["GoToWorksheetTooltipPresModel"] = "goToWorksheetTooltipPresModel"; - // DPI_TableCleaningPresModel, having type TableCleaningPresModel - ParameterId["TableCleaningPresModel"] = "tableCleaningPresModel"; - // DPI_PivotPresModel, having type PivotPresModel - ParameterId["PivotPresModel"] = "pivotPresModel"; - // DPI_PivotTreeItemPresModel, having type PivotTreeItemPresModel - ParameterId["PivotTreeItemPresModel"] = "pivotTreeItemPresModel"; - // DPI_PivotTreeItems, having type PivotTreeItemPresModel[] - ParameterId["PivotTreeItems"] = "pivotTreeItemsPresModel"; - // DPI_PivotDisplay, having type PivotDisplayPresModel - ParameterId["PivotDisplay"] = "pivotDisplay"; - // DPI_PivotTag, having type NameColumnsPairPresModel - ParameterId["PivotTag"] = "pivotTag"; - // DPI_PivotGroups, having type NameColumnsPairPresModel[] - ParameterId["PivotGroups"] = "pivotGroups"; - // DPI_DataSourceDropdown, having type DataSourceDropdownPresModel - ParameterId["DataSourceDropdown"] = "dataSourceDropdown"; - // DPI_ConnectionDropdown, having type ConnectionDropdownPresModel - ParameterId["ConnectionDropdown"] = "connectionDropdown"; - // DPI_ActivityEvent, having type ActivityEventPresModel - ParameterId["ActivityEvent"] = "activityEvent"; - // DPI_UIAutomation, having type UIAutomationPresModel - ParameterId["UIAutomation"] = "uiAutomation"; - // DPI_UIAutomationIndex, having type UIAutomationIndexPresModel - ParameterId["UIAutomationIndex"] = "uiAutomationIndex"; - // DPI_UIAutomationIndexList, having type UIAutomationIndexPresModel[] - ParameterId["UIAutomationIndexList"] = "uiAutomationIndexList"; - // DPI_UIAutomationComponentInfo, having type UIAutomationComponentInfoPresModel - ParameterId["UIAutomationComponentInfo"] = "uiAutomationComponentInfo"; - // DPI_UIAutomationComponentInfoList, having type UIAutomationComponentInfoPresModel[] - ParameterId["UIAutomationComponentInfoList"] = "uiAutomationComponentInfoList"; - // DPI_Geometry, having type GeometryPresModel - ParameterId["Geometry"] = "geometry"; - // DPI_MultiPoint, having type MultiPointPresModel - ParameterId["MultiPoint"] = "multiPoint"; - // DPI_MultiLine, having type MultiLinePresModel - ParameterId["MultiLine"] = "multiLine"; - // DPI_MultiPolygon, having type MultiPolygonPresModel - ParameterId["MultiPolygon"] = "multiPolygon"; - // DPI_Polygon, having type PolygonPresModel - ParameterId["Polygon"] = "polygon"; - // DPI_PolygonList, having type PolygonPresModel[] - ParameterId["PolygonList"] = "polygonList"; - // DPI_Line, having type LinePresModel - ParameterId["Line"] = "line"; - // DPI_LineList, having type LinePresModel[] - ParameterId["LineList"] = "lineList"; - // DPI_TabbedAuthentication, having type TabbedAuthenticationPresModel - ParameterId["TabbedAuthentication"] = "tabbedAuthentication"; - // DPI_TabbedAuthenticationTabInfo, having type TabbedAuthenticationTabInfoPresModel - ParameterId["TabbedAuthenticationTabInfo"] = "tabbedAuthenticationTabInfo"; - // DPI_TabbedAuthenticationTabInfos, having type TabbedAuthenticationTabInfoPresModel[] - ParameterId["TabbedAuthenticationTabInfos"] = "tabbedAuthenticationTabInfos"; - // DPI_GeographicSearchCandidate, having type GeographicSearchCandidatePresModel - ParameterId["GeographicSearchCandidate"] = "geographicSearchCandidate"; - // DPI_GeographicSearchCandidateList, having type GeographicSearchCandidatePresModel[] - ParameterId["GeographicSearchCandidateList"] = "geographicSearchCandidateList"; - // DPI_GeographicSearchResults, having type GeographicSearchPresModel - ParameterId["GeographicSearchResults"] = "geographicSearchResults"; - // DPI_ParamInfo, having type ParameterInfoPresModel - ParameterId["ParamInfo"] = "paramInfo"; - // DPI_ParamInfos, having type ParameterInfoPresModel[] - ParameterId["ParamInfos"] = "paramInfos"; - // DPI_ParamNamespaceInfo, having type ParameterNamespaceInfoInfoPresModel - ParameterId["ParamNamespaceInfo"] = "paramNamespaceInfo"; - // DPI_ParamNamespaceInfos, having type ParameterNamespaceInfoPresModel[] - ParameterId["ParamNamespaceInfos"] = "paramNamespaceInfos"; - // DPI_ParamRegistryInfo, having type ParameterRegistryInfoPresModel - ParameterId["ParamRegistryInfo"] = "paramRegistryInfo"; - // DPI_DataSourceProperties, having type DataSourcePropertiesPresModel - ParameterId["DataSourceProperties"] = "connectionProperties"; - // DPI_ConnectionTypePresModel, having type ConnectionTypePresModel - ParameterId["ConnectionTypePresModel"] = "connectionTypePresModel"; - // DPI_ConnectionTypes, having type ConnectionTypePresModel[] - ParameterId["ConnectionTypes"] = "connectionTypes"; - // DPI_ConnectionTypeGroupPresModel, having type ConnectionTypeGroupPresModel - ParameterId["ConnectionTypeGroupPresModel"] = "connectionTypeGroupPresModel"; - // DPI_SavedDataSourcePresModel, having type SavedDataSourcePresModel - ParameterId["SavedDataSourcePresModel"] = "savedDatasourcePresModel"; - // DPI_SavedDataSources, having type SavedDataSourcePresModel[] - ParameterId["SavedDataSources"] = "savedDatasources"; - // DPI_SavedDataSourcesPresModel, having type SavedDataSourcesPresModel - ParameterId["SavedDataSourcesPresModel"] = "savedDatasourcesPresModel"; - // DPI_OpenPaneItemPresModel, having type OpenPaneItemPresModel - ParameterId["OpenPaneItemPresModel"] = "openPaneItemPresModel"; - // DPI_OpenPaneItems, having type OpenPaneItemPresModel[] - ParameterId["OpenPaneItems"] = "openPaneItems"; - // DPI_OpenPaneItemsPresModel, having type OpenPaneItemsPresModel - ParameterId["OpenPaneItemsPresModel"] = "openPaneItemsPresModel"; - // DPI_VariableValue, having type VariableValuePresModel - ParameterId["VariableValue"] = "variableValue"; - // DPI_VariableValues, having type VariableValuePresModel[] - ParameterId["VariableValues"] = "variableValues"; - // DPI_ServerVariableValue, having type ServerVariableValuePresModel - ParameterId["ServerVariableValue"] = "serverVariableValue"; - // DPI_EditableVariableValue, having type EditableVariableValuePresModel - ParameterId["EditableVariableValue"] = "editableVariableValue"; - // DPI_ServerVariableMetadata, having type ServerVariableMetadataPresModel - ParameterId["ServerVariableMetadata"] = "serverVariableMetadata"; - // DPI_PromptVariable, having type PromptVariablePresModel - ParameterId["PromptVariable"] = "promptVariable"; - // DPI_PromptVariables, having type PromptVariablePresModel[] - ParameterId["PromptVariables"] = "promptVariables"; - // DPI_VariablePromptDialog, having type VariablePromptDialogPresModel - ParameterId["VariablePromptDialog"] = "variablePromptDialog"; - // DPI_VariableValueOperation, having type VariableValueOperationPresModel - ParameterId["VariableValueOperation"] = "variableValueOperation"; - // DPI_VariableValueOperations, having type VariableValueOperationPresModel[] - ParameterId["VariableValueOperations"] = "variableValueOperations"; - // DPI_TableOptionsPresModel, having type TableOptionsPresModel - ParameterId["TableOptionsPresModel"] = "tableOptionsPresModel"; - // DPI_ClientInfoPresModel, having type ClientInfoPresModel - ParameterId["ClientInfoPresModel"] = "clientInfoPresModel"; - // DPI_TableauFileInfoPresModel, having type TableauFileInfoPresModel - ParameterId["TableauFileInfoPresModel"] = "tableauFileInfoPresModel"; - // DPI_DebuggingInfoPresModel, having type DebuggingInfoPresModel - ParameterId["DebuggingInfoPresModel"] = "debuggingInfoPresModel"; - // DPI_RunningThreadInfoPresModel, having type RunningThreadInfoPresModel - ParameterId["RunningThreadInfoPresModel"] = "runningThreadInfoPresModel"; - // DPI_AboutDialogInfoPresModel, having type AboutDialogInfoPresModel - ParameterId["AboutDialogInfoPresModel"] = "aboutDialogInfoPresModel"; - // DPI_HybridUIShowcasePresModel, having type HybridUIShowcasePresModel - ParameterId["HybridUIShowcasePresModel"] = "hybridUiShowcasePresModel"; - // DPI_MenuConfiguration, having type MenuConfigurationPresModel - ParameterId["MenuConfiguration"] = "menuConfiguration"; - // DPI_MenuItem, having type MenuItemPresModel - ParameterId["MenuItem"] = "menuItem"; - // DPI_MenuItemModels, having type MenuItemPresModel[] - ParameterId["MenuItemModels"] = "menuItemModels"; - // DPI_DefaultTextFormat, having type DefaultTextFormatPresModel - ParameterId["DefaultTextFormat"] = "defaultTextFormat"; - // DPI_MapBoxServerInfoPresModel, having type MapBoxServerInfoPresModel - ParameterId["MapBoxServerInfoPresModel"] = "mapboxServerInfoPresModel"; - // DPI_WMSServerInfoPresModel, having type WMSServerInfoPresModel - ParameterId["WMSServerInfoPresModel"] = "wmsServerInfoPresModel"; - // DPI_MapSourceConflictPresModel, having type MapSourceConflictPresModel - ParameterId["MapSourceConflictPresModel"] = "mapSourceConflictPresModel"; - // DPI_EnumeratedSetDialogPresModel, having type EnumeratedSetDialogPresModel - ParameterId["EnumeratedSetDialogPresModel"] = "enumeratedSetDialogPresModel"; - // DPI_EditAliasesDialog, having type EditAliasesDialogPresModel - ParameterId["EditAliasesDialog"] = "editAliasesDialogPresModel"; - // DPI_AliasesPresModel, having type AliasesPresModel - ParameterId["AliasesPresModel"] = "aliasesPresModel"; - // DPI_ClearAliasesPresModel, having type AliasesPresModel - ParameterId["ClearAliasesPresModel"] = "clearAliasesPresModel"; - // DPI_NewAliasesPresModel, having type NewAliasesPresModel - ParameterId["NewAliasesPresModel"] = "newAliasesPresModel"; - // DPI_AliasPresModel, having type AliasPresModel - ParameterId["AliasPresModel"] = "aliasPresModel"; - // DPI_AliasItem, having type AliasItemPresModel - ParameterId["AliasItem"] = "aliasItem"; - // DPI_DuplicateAliasItem, having type AliasItemPresModel - ParameterId["DuplicateAliasItem"] = "duplicateAliasItem"; - // DPI_AliasList, having type AliasItemPresModel[] - ParameterId["AliasList"] = "aliasList"; - // DPI_AliasResultItem, having type AliasResultItemPresModel - ParameterId["AliasResultItem"] = "aliasResultItem"; - // DPI_AliasResultList, having type AliasResultItemPresModel[] - ParameterId["AliasResultList"] = "aliasResultList"; - // DPI_AliasResults, having type AliasResultsPresModel - ParameterId["AliasResults"] = "aliasResults"; - // DPI_EditSetDialogPresModel, having type EditSetDialogPresModel - ParameterId["EditSetDialogPresModel"] = "editSetDialogPresModel"; - // DPI_ConfirmationPresModel, having type ConfirmationPresModel - ParameterId["ConfirmationPresModel"] = "confirmationPresModel"; - // DPI_NotificationPresModel, having type NotificationPresModel - ParameterId["NotificationPresModel"] = "notificationPresModel"; - // DPI_RetargetDataSourceDialogPresModel, having type RetargetDataSourceDialogPresModel - ParameterId["RetargetDataSourceDialogPresModel"] = "retargetDatasourceDialogPresModel"; - // DPI_SharedFilterPresModel, having type SharedFilterPresModel - ParameterId["SharedFilterPresModel"] = "sharedFilterPresModel"; - // DPI_SharedFilterWorksheetInfo, having type SharedFilterWorksheetInfoPresModel - ParameterId["SharedFilterWorksheetInfo"] = "sharedFilterWorksheetInfo"; - // DPI_SharedFilterWorksheetInfoList, having type SharedFilterWorksheetInfoPresModel[] - ParameterId["SharedFilterWorksheetInfoList"] = "sharedFilterWorksheetInfoList"; - // DPI_FieldPickerTreePresModel, having type FieldPickerTreePresModel - ParameterId["FieldPickerTreePresModel"] = "fieldPickerTreePresModel"; - // DPI_FieldPickerTreePresModelSource, having type FieldPickerTreePresModel - ParameterId["FieldPickerTreePresModelSource"] = "fieldPickerTreePresModelSource"; - // DPI_FieldPickerTreePresModelTarget, having type FieldPickerTreePresModel - ParameterId["FieldPickerTreePresModelTarget"] = "fieldPickerTreePresModelTarget"; - // DPI_ErrorInfo, having type ErrorInfoPresModel - ParameterId["ErrorInfo"] = "errorInfoPresModel"; - // DPI_CustomSplitPresModel, having type CustomSplitPresModel - ParameterId["CustomSplitPresModel"] = "customSplitPresModel"; - // DPI_PageSetup, having type PageSetupPresModel - ParameterId["PageSetup"] = "pageSetup"; - // DPI_ServerConnectStatus, having type ServerConnectionStatus - ParameterId["ServerConnectStatus"] = "serverConnectionStatus"; - // DPI_GetFilterItemsResponse, having type GetFilterItemsResponsePresModel - ParameterId["GetFilterItemsResponse"] = "getFilterItemsResponse"; - // DPI_FilterSearchResponse, having type FilterSearchResponsePresModel - ParameterId["FilterSearchResponse"] = "filterSearchResponse"; - // DPI_FilterSearchWithIndexResponse, having type FilterSearchWithIndexResponsePresModel - ParameterId["FilterSearchWithIndexResponse"] = "filterSearchWithIndexResponse"; - // DPI_FilterShowChildrenResponse, having type FilterShowChildrenResponsePresModel - ParameterId["FilterShowChildrenResponse"] = "filterShowChildrenResponse"; - // DPI_EditDataServerConnection, having type EditDataServerConnectionPresModel - ParameterId["EditDataServerConnection"] = "editDataServerConnection"; - // DPI_ImagesEdit, having type ImagesEditPresModel - ParameterId["ImagesEdit"] = "imagesEdit"; - // DPI_BackgroundImage, having type BackgroundImagePresModel - ParameterId["BackgroundImage"] = "backgroundImage"; - // DPI_BackgroundImages, having type BackgroundImagePresModel[] - ParameterId["BackgroundImages"] = "backgroundImages"; - // DPI_Predicate, having type PredicatePresModel - ParameterId["Predicate"] = "predicate"; - // DPI_Predicates, having type PredicatePresModel[] - ParameterId["Predicates"] = "predicates"; - // DPI_ImagesEditResult, having type ImagesEditResultPresModel - ParameterId["ImagesEditResult"] = "imagesEditResult"; - // DPI_SortDialogPresModel, having type SortDialogPresModel - ParameterId["SortDialogPresModel"] = "sortDialogPresModel"; - // DPI_CompoundTableCalc, having type CompoundTableCalculationPresModel - ParameterId["CompoundTableCalc"] = "compoundTableCalculationPresModel"; - // DPI_TableCalc, having type TableCalculationPresModel - ParameterId["TableCalc"] = "tableCalculationPresModel"; - // DPI_TableCalcs, having type TableCalculationPresModel[] - ParameterId["TableCalcs"] = "tableCalculationPresModels"; - // DPI_TableCalcIdentifier, having type TableCalcIdentifierPresModel - ParameterId["TableCalcIdentifier"] = "tableCalcIdentifier"; - // DPI_NestedTableCalcInfo, having type NestedTableCalcInfoPresModel - ParameterId["NestedTableCalcInfo"] = "nestedTableCalcInfo"; - // DPI_NestedTableCalcInfos, having type NestedTableCalcInfoPresModel[] - ParameterId["NestedTableCalcInfos"] = "nestedTableCalcInfos"; - // DPI_Ordering, having type TableCalcOrderingPresModel - ParameterId["Ordering"] = "tableCalcOrderingPresModel"; - // DPI_Cumulative, having type CumulativeTableCalcPresModel - ParameterId["Cumulative"] = "cumulativeTableCalcPresModel"; - // DPI_ReferenceOptions, having type TableCalcReferenceOptionsPresModel - ParameterId["ReferenceOptions"] = "tableCalcReferenceOptionsPresModel"; - // DPI_Difference, having type DifferenceTableCalcPresModel - ParameterId["Difference"] = "differenceTableCalcPresModel"; - // DPI_Window, having type WindowTableCalcPresModel - ParameterId["Window"] = "windowTableCalcPresModel"; - // DPI_PercentTotal, having type PercentTotalTableCalcPresModel - ParameterId["PercentTotal"] = "percentTotalTableCalcPresModel"; - // DPI_Rank, having type RankTableCalcPresModel - ParameterId["Rank"] = "rankTableCalcPresModel"; - // DPI_Custom, having type CustomTableCalcPresModel - ParameterId["Custom"] = "customTableCalcPresModel"; - // DPI_WebDataUrl, having type WebDataUrlPresModel - ParameterId["WebDataUrl"] = "webDataUrl"; - // DPI_VisitedWebDataConnectors, having type WebDataUrlPresModel[] - ParameterId["VisitedWebDataConnectors"] = "visitedWebDataConnectors"; - // DPI_WebDataSessionUrls, having type WebDataUrlPresModel[] - ParameterId["WebDataSessionUrls"] = "webDataSessionUrls"; - // DPI_WebDataUrls, having type WebDataUrlPresModel[] - ParameterId["WebDataUrls"] = "webDataUrls"; - // DPI_FieldPicker, having type FieldPickerPresModel - ParameterId["FieldPicker"] = "fieldPicker"; - // DPI_DescribeField, having type DescribeFieldPresModel - ParameterId["DescribeField"] = "describeField"; - // DPI_ShowDataPresModel, having type ShowDataPresModel - ParameterId["ShowDataPresModel"] = "showDataPresModel"; - // DPI_DataTablePresModel, having type ShowDataTablePresModel - ParameterId["DataTablePresModel"] = "dataTablePresModel"; - // DPI_DataTablePresModels, having type ShowDataTablePresModel[] - ParameterId["DataTablePresModels"] = "dataTablePresModels"; - // DPI_SummaryTablePresModels, having type ShowDataTablePresModel[] - ParameterId["SummaryTablePresModels"] = "summaryTablePresModels"; - // DPI_RefreshAllExtractsPresModel, having type RefreshAllExtractsPresModel - ParameterId["RefreshAllExtractsPresModel"] = "refeshAllExtractsPresModel"; - // DPI_RefreshExtractDataSourcePresModel, having type RefreshExtractDataSourcePresModel - ParameterId["RefreshExtractDataSourcePresModel"] = "refreshExtractDatasourcePresModel"; - // DPI_RefreshExtractDataSourceList, having type RefreshExtractDataSourcePresModel[] - ParameterId["RefreshExtractDataSourceList"] = "refreshExtractDatasourceList"; - // DPI_ExtractHistoryPresModel, having type ExtractHistoryPresModel - ParameterId["ExtractHistoryPresModel"] = "extractHistoryPresModel"; - // DPI_ExtractHistoryItemPresModel, having type ExtractHistoryItemPresModel - ParameterId["ExtractHistoryItemPresModel"] = "extractHistoryItem"; - // DPI_ExtractHistoryList, having type ExtractHistoryItemPresModel[] - ParameterId["ExtractHistoryList"] = "extractHistoryList"; - // DPI_DataProviderPresModel, having type DataProviderPresModel - ParameterId["DataProviderPresModel"] = "dataProviderPresModel"; - // DPI_FormatItem, having type FormatItemPresModel - ParameterId["FormatItem"] = "formatItem"; - // DPI_FormatItemList, having type FormatItemPresModel[] - ParameterId["FormatItemList"] = "formatItemList"; - // DPI_FormatContainer, having type FormatContainerPresModel - ParameterId["FormatContainer"] = "formatContainer"; - // DPI_FormatPane, having type FormatPanePresModel - ParameterId["FormatPane"] = "formatPane"; - // DPI_FormatSection, having type FormatSectionPresModel - ParameterId["FormatSection"] = "formatSection"; - // DPI_CollapsibleSection, having type CollapsibleSectionPresModel - ParameterId["CollapsibleSection"] = "collapsibleSection"; - // DPI_CompositeContainer, having type CompositeContainerPresModel - ParameterId["CompositeContainer"] = "compositeContainer"; - // DPI_UnitContainer, having type UnitContainerPresModel - ParameterId["UnitContainer"] = "unitContainer"; - // DPI_TabGroup, having type TabGroupPresModel - ParameterId["TabGroup"] = "tabGroup"; - // DPI_Tab, having type TabPresModel - ParameterId["Tab"] = "tab"; - // DPI_FormatControl, having type FormatControlPresModel - ParameterId["FormatControl"] = "formatControl"; - // DPI_TextControl, having type TextControlPresModel - ParameterId["TextControl"] = "textControl"; - // DPI_NumericControl, having type NumericControlPresModel - ParameterId["NumericControl"] = "numericControl"; - // DPI_ColorControl, having type ColorControlPresModel - ParameterId["ColorControl"] = "colorControl"; - // DPI_ToggleControl, having type ToggleControlPresModel - ParameterId["ToggleControl"] = "toggleControl"; - // DPI_SelectorControl, having type SelectorControlPresModel - ParameterId["SelectorControl"] = "enumStringStyle"; - // DPI_StatsAnalyticSpec, having type StatsAnalyticSpecPresModel - ParameterId["StatsAnalyticSpec"] = "statsAnalyticSpec"; - // DPI_ClusterSpec, having type ClusterSpecPresModel - ParameterId["ClusterSpec"] = "clusteringSpec"; - // DPI_ClusterResults, having type ClusterResultsPresModel - ParameterId["ClusterResults"] = "clusterResults"; - // DPI_ClusterUnit, having type ClusterUnitPresModel - ParameterId["ClusterUnit"] = "cluster"; - // DPI_ClusterUnits, having type ClusterUnitPresModel[] - ParameterId["ClusterUnits"] = "clusterUnitPresModels"; - // DPI_ClusterFieldANOVA, having type ClusterFieldANOVAPresModel - ParameterId["ClusterFieldANOVA"] = "clusterFieldAnova"; - // DPI_ClusterFieldANOVATable, having type ClusterFieldANOVAPresModel[] - ParameterId["ClusterFieldANOVATable"] = "clusterFieldAnovaTablePresModel"; - // DPI_ClusterEdit, having type ClusterEditPresModel - ParameterId["ClusterEdit"] = "clusterEditPresModel"; - // DPI_ClusterDescription, having type ClusterDescribePresModel - ParameterId["ClusterDescription"] = "clusterDescription"; - // DPI_OutlierResults, having type OutlierResultsPresModel - ParameterId["OutlierResults"] = "outlierResults"; - // DPI_ConnectToDataServerSourceResult, having type ConnectToDataServerSourceResultPresModel - ParameterId["ConnectToDataServerSourceResult"] = "connectToDataServerSourceResult"; - // DPI_DataServerConnectionReturnStatus, having type ConnectToDataServerSourceResultPresModel - ParameterId["DataServerConnectionReturnStatus"] = "dataServerConnectionReturnStatus"; - // DPI_WebQuantitativeColorDialog, having type WebQuantitativeColorDialogPresModel - ParameterId["WebQuantitativeColorDialog"] = "quantitativeColorDialog"; - // DPI_WebCategoricalColorDialog, having type WebCategoricalColorDialogPresModel - ParameterId["WebCategoricalColorDialog"] = "categoricalColorDialog"; - // DPI_WebSaveDatasourceDialog, having type WebSaveDatasourceDialogPresModel - ParameterId["WebSaveDatasourceDialog"] = "saveDatasourceDialog"; - // DPI_BorderStyleSpec, having type StyleSpecPresModel - ParameterId["BorderStyleSpec"] = "borderStyleSpec"; - // DPI_HaloStyleSpec, having type StyleSpecPresModel - ParameterId["HaloStyleSpec"] = "haloStyleSpec"; - // DPI_MarksColorUberEffects, having type MarksColorUberEffectsPresModel - ParameterId["MarksColorUberEffects"] = "marksColorUberEffects"; - // DPI_CategoricalColorEncoding, having type CategoricalColorEncodingPresModel - ParameterId["CategoricalColorEncoding"] = "categoricalColorEncoding"; - // DPI_CategoricalShapeEncoding, having type CategoricalShapeEncodingPresModel - ParameterId["CategoricalShapeEncoding"] = "categoricalShapeEncoding"; - // DPI_ShapePalettePresModel, having type ShapePalettePresModel - ParameterId["ShapePalettePresModel"] = "shapePalettePresModel"; - // DPI_ShapePalettePresModels, having type ShapePalettePresModel[] - ParameterId["ShapePalettePresModels"] = "shapePalettePresModels"; - // DPI_DataSourceDateProperties, having type DataSourceDatePropertiesPresModel - ParameterId["DataSourceDateProperties"] = "datasourceDateProperties"; - // DPI_DatePropertiesDateFormat, having type DatePropertiesDateFormatPresModel - ParameterId["DatePropertiesDateFormat"] = "datePropertiesDateFormat"; - // DPI_DatePropertiesDateFormats, having type DatePropertiesDateFormatPresModel[] - ParameterId["DatePropertiesDateFormats"] = "datePropertiesDateFormats"; - // DPI_HierarchySelect, having type HierarchySelectModel - ParameterId["HierarchySelect"] = "hierarchySelect"; - // DPI_HierarchySelectMember, having type HierarchySelectMemberPresModel - ParameterId["HierarchySelectMember"] = "hierarchySelectMember"; - // DPI_HierarchySelectMemberList, having type HierarchySelectMemberPresModel[] - ParameterId["HierarchySelectMemberList"] = "hierarchySelectMemberList"; - // DPI_HierarchySetDefaultMember, having type HierarchySetDefaultMemberPresModel - ParameterId["HierarchySetDefaultMember"] = "hierarchySetDefaultMember"; - // DPI_SemiStructSchema, having type SemiStructSchemaPresModel - ParameterId["SemiStructSchema"] = "semiStructSchema"; - // DPI_SemiStructSchemaMember, having type SemiStructSchemaMemberPresModel - ParameterId["SemiStructSchemaMember"] = "semiStructSchemaMember"; - // DPI_SemiStructSchemaMemberList, having type SemiStructSchemaMemberPresModel[] - ParameterId["SemiStructSchemaMemberList"] = "semiStructSchemaMemberList"; - // DPI_ParameterEditInfo, having type ParameterEditInfoPresModel - ParameterId["ParameterEditInfo"] = "parameterEditInfo"; - // DPI_ProductParameterInfo, having type ProductParameterInfoPresModel - ParameterId["ProductParameterInfo"] = "productParameterInfo"; - // DPI_CaptionedDatasourceField, having type CaptionedDatasourceInfoPresModel - ParameterId["CaptionedDatasourceField"] = "captionedDatasourceField"; - // DPI_CaptionedDatasourceFields, having type CaptionedDatasourceInfoPresModel[] - ParameterId["CaptionedDatasourceFields"] = "captionedDatasourceFields"; - // DPI_EditedParameterRangeDomain, having type ParameterRangeDomainPresModel - ParameterId["EditedParameterRangeDomain"] = "editedParameterRangeDomain"; - // DPI_ParameterRangeDomain, having type ParameterRangeDomainPresModel - ParameterId["ParameterRangeDomain"] = "parameterRangeDomain"; - // DPI_ParameterListDomain, having type ParameterListDomainPresModel - ParameterId["ParameterListDomain"] = "parameterListDomain"; - // DPI_ParameterListDomainMember, having type ParameterListDomainMemberPresModel - ParameterId["ParameterListDomainMember"] = "parameterListDomainMember"; - // DPI_ParameterListDomainMembers, having type ParameterListDomainMemberPresModel[] - ParameterId["ParameterListDomainMembers"] = "parameterListDomainMembers"; - // DPI_IndexedDomainMember, having type IndexedDomainMemberPresModel - ParameterId["IndexedDomainMember"] = "indexedDomainMember"; - // DPI_IndexedDomainMembers, having type IndexedDomainMemberPresModel[] - ParameterId["IndexedDomainMembers"] = "indexedDomainMembers"; - // DPI_NewIndexedDomainMembers, having type IndexedDomainMemberPresModel[] - ParameterId["NewIndexedDomainMembers"] = "newIndexedDomainMembers"; - // DPI_ParameterListDomainDiff, having type parameter-list-domain-diff - ParameterId["ParameterListDomainDiff"] = "parameterListDomainDiff"; - // DPI_IndexRange, having type IndexRangePresModel - ParameterId["IndexRange"] = "indexRange"; - // DPI_IndexRanges, having type IndexRangePresModel[] - ParameterId["IndexRanges"] = "indexRanges"; - // DPI_CategoricalFind, having type CategoricalFindPresModel - ParameterId["CategoricalFind"] = "categoricalFind"; - // DPI_CaptionedDataValue, having type CaptionedDataValuePresModel - ParameterId["CaptionedDataValue"] = "captionedDataValue"; - // DPI_SelectedValueCaption, having type CaptionedDataValuePresModel - ParameterId["SelectedValueCaption"] = "selectedValueCaption"; - // DPI_DataValueCaptionList, having type CaptionedDataValuePresModel[] - ParameterId["DataValueCaptionList"] = "dataValueCatpionList"; - // DPI_RangeDataValue, having type RangeDataValuePresModel - ParameterId["RangeDataValue"] = "rangeDataValue"; - // DPI_ParameterRangeDataValue, having type RangeDataValuePresModel - ParameterId["ParameterRangeDataValue"] = "parameterRangeDataValue"; - // DPI_DataValueRangeCaptions, having type DataValueRangeCaptionsPresModel - ParameterId["DataValueRangeCaptions"] = "dataValueRangeCaptions"; - // DPI_IndependentDimension, having type IndependentDimensionPresModel - ParameterId["IndependentDimension"] = "independentDimension"; - // DPI_IndependentDimensions, having type IndependentDimensionPresModel[] - ParameterId["IndependentDimensions"] = "independentDimensions"; - // DPI_AttributePerspective, having type PerspectivePresModel - ParameterId["AttributePerspective"] = "attributePerspective"; - // DPI_CubePerspective, having type PerspectivePresModel - ParameterId["CubePerspective"] = "cubePerspective"; - // DPI_AttributePerspectives, having type PerspectivePresModel[] - ParameterId["AttributePerspectives"] = "attributePerspectives"; - // DPI_CalculatedMembersForEditingPresModel, having type EditCalculatedMembersPresModel - ParameterId["CalculatedMembersForEditingPresModel"] = "calculatedMembersForEditingPresmodel"; - // DPI_CalculatedMember, having type CalculatedMemberPresModel - ParameterId["CalculatedMember"] = "calculatedMember"; - // DPI_NewCalculatedMember, having type CalculatedMemberPresModel - ParameterId["NewCalculatedMember"] = "newCalculatedMember"; - // DPI_UpdatedCalculatedMember, having type CalculatedMemberPresModel - ParameterId["UpdatedCalculatedMember"] = "updatedCalculatedMember"; - // DPI_CalculatedMembersList, having type CalculatedMemberPresModel[] - ParameterId["CalculatedMembersList"] = "calculatedMembersList"; - // DPI_CalculatedMemberHierarchyItem, having type CalculatedMemberHierarchyItemPresModel - ParameterId["CalculatedMemberHierarchyItem"] = "calculatedMemberHierarchyItem"; - // DPI_CalculatedMemberHierarchyList, having type CalculatedMemberHierarchyItemPresModel[] - ParameterId["CalculatedMemberHierarchyList"] = "calculatedMemberHierarchyList"; - // DPI_SummaryCardPresModel, having type SummaryCardPresModel - ParameterId["SummaryCardPresModel"] = "summaryCard"; - // DPI_MeasureSummary, having type MeasureSummaryPresModel - ParameterId["MeasureSummary"] = "measureSummary"; - // DPI_MeasureSummaryList, having type MeasureSummaryPresModel[] - ParameterId["MeasureSummaryList"] = "measureSummaryList"; - // DPI_AnnotationPresModel, having type AnnotationPresModel - ParameterId["AnnotationPresModel"] = "annotation"; - // DPI_AnnotationList, having type AnnotationPresModel[] - ParameterId["AnnotationList"] = "annotationList"; - // DPI_AnnotationShapeStyle, having type AnnotationShapeStylePresModel - ParameterId["AnnotationShapeStyle"] = "annotationShapeStyle"; - // DPI_Telemetry, having type TelemetryPresModel - ParameterId["Telemetry"] = "telemetry"; - // DPI_DataSourceTelemetry, having type DataSourceTelemetryPresModel - ParameterId["DataSourceTelemetry"] = "dataSourceTelemetry"; - // DPI_DataSourceTelemetryList, having type DataSourceTelemetryPresModel[] - ParameterId["DataSourceTelemetryList"] = "dataSourceTelemetryList"; - // DPI_VisualSpecificationTelemetry, having type VisualSpecificationTelemetryPresModel - ParameterId["VisualSpecificationTelemetry"] = "visualSpecificationTelemetry"; - // DPI_VisualSpecificationTelemetryList, having type VisualSpecificationTelemetryPresModel[] - ParameterId["VisualSpecificationTelemetryList"] = "visualSpecificationTelemetryList"; - // DPI_UnderlyingDataTable, having type UnderlyingDataTablePresModel - ParameterId["UnderlyingDataTable"] = "underlyingDataTable"; - // DPI_UnderlyingDataTables, having type UnderlyingDataTablePresModel[] - ParameterId["UnderlyingDataTables"] = "underlyingDataTables"; - // DPI_UnderlyingDataTableColumn, having type UnderlyingDataTableColumnPresModel - ParameterId["UnderlyingDataTableColumn"] = "underlyingDataTableColumn"; - // DPI_UnderlyingDataTableColumns, having type UnderlyingDataTableColumnPresModel[] - ParameterId["UnderlyingDataTableColumns"] = "underlyingDataTableColumns"; - // DPI_PageCacheID, having type PageCacheIDPresModel - ParameterId["PageCacheID"] = "pageCacheId"; - // DPI_RelationalPageCacheID, having type PageCacheIDPresModel - ParameterId["RelationalPageCacheID"] = "relationalPageCacheId"; - // DPI_SearchResultsCacheID, having type PageCacheIDPresModel - ParameterId["SearchResultsCacheID"] = "searchResultsCacheId"; - // DPI_PageInfo, having type PageInfoPresModel - ParameterId["PageInfo"] = "pageInfo"; - // DPI_RowColPair, having type RowColPairPresModel - ParameterId["RowColPair"] = "rowColPair"; - // DPI_TopLeftRowCol, having type RowColPairPresModel - ParameterId["TopLeftRowCol"] = "topLeftRowCol"; - // DPI_BotRightRowCol, having type RowColPairPresModel - ParameterId["BotRightRowCol"] = "botRightRowCol"; - // DPI_RowColPairs, having type RowColPairPresModel[] - ParameterId["RowColPairs"] = "rowColPairs"; - // DPI_TableViewCacheInfo, having type TableViewCachePresModel - ParameterId["TableViewCacheInfo"] = "tableViewCacheInfo"; - // DPI_TableViewInfo, having type tableViewInfoPresModel - ParameterId["TableViewInfo"] = "tableViewInfo"; - // DPI_TableViewColumnInfo, having type TableViewColumnInfoPresModel - ParameterId["TableViewColumnInfo"] = "tableViewColumnInfo"; - // DPI_TableViewColumns, having type TableViewColumnInfoPresModel[] - ParameterId["TableViewColumns"] = "tableViewColumns"; - // DPI_TableViewPageItem, having type TableViewPageItemPresModel - ParameterId["TableViewPageItem"] = "tableViewPageItem"; - // DPI_TableViewPageColumns, having type TableViewPageItemPresModel[] - ParameterId["TableViewPageColumns"] = "tableViewPageColumns"; - // DPI_TableViewPageRow, having type TableViewPageRowPresModel - ParameterId["TableViewPageRow"] = "tableViewPageRow"; - // DPI_TableViewPageRows, having type TableViewPageRowPresModel[] - ParameterId["TableViewPageRows"] = "tableViewPageRows"; - // DPI_TableViewPage, having type TableViewPagePresModel - ParameterId["TableViewPage"] = "tableViewPage"; - // DPI_CategoricalValuePicker, having type CategoricalValuePickerPresModel - ParameterId["CategoricalValuePicker"] = "categoricalValuePicker"; - // DPI_AnnotationShapeBorderStyle, having type LineStylePresModel - ParameterId["AnnotationShapeBorderStyle"] = "annotationShapeBorderStyle"; - // DPI_AnotationShapeStrokeStyle, having type LineStylePresModel - ParameterId["AnotationShapeStrokeStyle"] = "annotationShapeStrokeStyle"; - // DPI_CategoricalBinEditorPresModel, having type CategoricalBinEditorPresModel - ParameterId["CategoricalBinEditorPresModel"] = "categoricalBinEditor"; - // DPI_CategoricalBinItem, having type CategoricalBinItemPresModel - ParameterId["CategoricalBinItem"] = "categoricalBinItemPresModel"; - // DPI_CategoricalBinItems, having type CategoricalBinItemPresModel[] - ParameterId["CategoricalBinItems"] = "categoricalBinItemPresModels"; - // DPI_MeasurePickerFieldInfo, having type MeasurePickerFieldInfoPresModel - ParameterId["MeasurePickerFieldInfo"] = "measurePickerFieldInfo"; - // DPI_MeasurePickerFields, having type MeasurePickerFieldInfoPresModel[] - ParameterId["MeasurePickerFields"] = "measurePickerFields"; - // DPI_MeasureAggregationInfo, having type MeasureAggregationInfoPresModel - ParameterId["MeasureAggregationInfo"] = "measureAggregationInfo"; - // DPI_MeasureAggregations, having type MeasureAggregationInfoPresModel[] - ParameterId["MeasureAggregations"] = "measureAggregations"; - // DPI_TuplePair, having type TuplePairPresModel - ParameterId["TuplePair"] = "tuplePair"; - // DPI_DimensionBound, having type DimensionBoundPresModel - ParameterId["DimensionBound"] = "dimensionBound"; - // DPI_PerspectiveBounds, having type DimensionBoundPresModel[] - ParameterId["PerspectiveBounds"] = "perspectiveBounds"; - // DPI_FilterPerspectiveInfoPresModel, having type FilterPerspectiveInfoPresModel - ParameterId["FilterPerspectiveInfoPresModel"] = "filterPerspectiveInfo"; - // DPI_TableRelevance, having type TableRelevancePresModel - ParameterId["TableRelevance"] = "tableRelevance"; - // DPI_AddInRegistrationPresModel, having type AddInRegistrationPresModel - ParameterId["AddInRegistrationPresModel"] = "addInRegistrationPresModel"; - // DPI_AddInRegistrationPresModelList, having type AddInRegistrationPresModel[] - ParameterId["AddInRegistrationPresModelList"] = "addInRegistrationPresModelList"; - // DPI_AddInDashboardAuthoringWidget, having type AddInDashboardWidgetPresModel - ParameterId["AddInDashboardAuthoringWidget"] = "addInDashboardAuthoringWidgetPresModel"; - // DPI_AddInInstance, having type AddInInstancePresModel - ParameterId["AddInInstance"] = "addInInstancePresModel"; - // DPI_AddInLocator, having type AddInLocatorPresModel - ParameterId["AddInLocator"] = "addInLocatorPresModel"; - // DPI_AddInContext, having type AddInContext - ParameterId["AddInContext"] = "addInContext"; - // DPI_AddInMode, having type AddInMode - ParameterId["AddInMode"] = "addInMode"; - // DPI_SetAxisRangeResult, having type SetAxisRangeResult - ParameterId["SetAxisRangeResult"] = "setAxisRangeResult"; - // DPI_SetTickOriginResult, having type SetTickOriginResult - ParameterId["SetTickOriginResult"] = "setTickOriginResult"; - // DPI_SetTickSpacingResult, having type SetTickSpacingResult - ParameterId["SetTickSpacingResult"] = "setTickSpacingResult"; - // DPI_AxisExtentStartType, having type AxisExtentType - ParameterId["AxisExtentStartType"] = "axisExtentStartType"; - // DPI_AxisExtentEndType, having type AxisExtentType - ParameterId["AxisExtentEndType"] = "axisExtentEndType"; - // DPI_AxisExtentsType, having type AxisExtentType - ParameterId["AxisExtentsType"] = "axisExtentsType"; - // DPI_AddInEnvironment, having type AddInEnvironmentPresModel - ParameterId["AddInEnvironment"] = "addInEnvironmentPresModel"; - // DPI_AddInDashboardInfo, having type AddInDashboardInfoPresModel - ParameterId["AddInDashboardInfo"] = "addInDashboardInfoPresModel"; - // DPI_AddInSettingsInfo, having type AddInSettingsInfoPresModel - ParameterId["AddInSettingsInfo"] = "addInSettingsInfo"; - // DPI_AddInBootstrapInfo, having type AddInBootstrapInfoPresModel - ParameterId["AddInBootstrapInfo"] = "addInBootstrapInfo"; - // DPI_AddInDebugSettings, having type AddInDebugSettingsPresModel - ParameterId["AddInDebugSettings"] = "addInDebugSettings"; - // DPI_RichText, having type RichTextPresModel - ParameterId["RichText"] = "richText"; - // DPI_RichTextKeywordSubList, having type RichTextKeywordSubListPresModel - ParameterId["RichTextKeywordSubList"] = "richTextKeywordsSublist"; - // DPI_RichTextKeywordSubLists, having type RichTextKeywordSubListPresModel[] - ParameterId["RichTextKeywordSubLists"] = "richTextKeywordSublists"; - // DPI_RichTextKeywordList, having type RichTextKeywordListPresModel - ParameterId["RichTextKeywordList"] = "richTextKeywordsList"; - // DPI_RichTextBlockStyle, having type RichTextBlockStylePresModel - ParameterId["RichTextBlockStyle"] = "richTextBlockStyle"; - // DPI_RichTextContentStyle, having type RichTextContentStylePresModel - ParameterId["RichTextContentStyle"] = "richTextContentStyle"; - })(ParameterId = exports.ParameterId || (exports.ParameterId = {})); - //# sourceMappingURL=Params.js.map - -/***/ }, -/* 11 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(4); - var CommandIds_1 = __webpack_require__(12); - var Params_1 = __webpack_require__(10); - var CommandMappingRegistry_1 = __webpack_require__(13); - var CommandRegistration_1 = __webpack_require__(14); - var CommandMappingRegistryFactory = (function () { - function CommandMappingRegistryFactory() { - } - /** - * Creates and populates a new CommandMappingRegistry for the specific version number requested - * - * @static - * @param {VersionNumber} versionNumber - * @returns {CommandMappingRegistry} - * @memberof CommandMappingRegistryFactory - */ - CommandMappingRegistryFactory.createCommandMappingRegistry = function (versionNumber) { - var result = new CommandMappingRegistry_1.CommandMappingRegistry(); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.InitializeAddIn, CommandIds_1.DocCommands.InitializeAddInInstance, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.AddInLocator, Params_1.ParameterId.AddInLocator)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.AddInBootstrapInfo, Params_1.ParameterId.AddInBootstrapInfo))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetUnderlyingData, CommandIds_1.DocCommands.GetUnderlyingData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreAliases, Params_1.ParameterId.IgnoreAliases), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreSelection, Params_1.ParameterId.IgnoreSelection), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IncludeAllColumns, Params_1.ParameterId.IncludeAllColumns), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.MaxRows, Params_1.ParameterId.MaxRows), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.UnderlyingDataTable, Params_1.ParameterId.UnderlyingDataTable))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetDataSummaryData, CommandIds_1.DocCommands.GetSummaryData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreAliases, Params_1.ParameterId.IgnoreAliases), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreSelection, Params_1.ParameterId.IgnoreSelection), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.UnderlyingSummaryDataTable, Params_1.ParameterId.UnderlyingDataTable))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetDataSourceData, CommandIds_1.DocCommands.GetDataSourceData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DataSourceId, Params_1.ParameterId.Datasource), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IgnoreAliases, Params_1.ParameterId.IgnoreAliases), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.MaxRows, Params_1.ParameterId.MaxRows), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ColumnsToInclude, Params_1.ParameterId.FieldDisplayNames)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DataSourceDataTable, Params_1.ParameterId.UnderlyingDataTable))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ApplyCategoricalFilter, CommandIds_1.DocCommands.CategoricalFilter, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.QualifiedFieldCaption), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterValues, Params_1.ParameterId.FilterAliases), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterUpdateType, Params_1.ParameterId.FilterUpdateType), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.IsExcludeMode, Params_1.ParameterId.Exclude, true), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Worksheet), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Dashboard)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.FieldCaption))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ApplyRangeFilter, CommandIds_1.DocCommands.RangeFilter, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.QualifiedFieldCaption), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterRangeMin, Params_1.ParameterId.RangeMin, true), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterRangeMax, Params_1.ParameterId.RangeMax, true), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FilterRangeNullOption, Params_1.ParameterId.Included, true), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Worksheet), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Dashboard)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.FieldCaption))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ClearFilter, CommandIds_1.DocCommands.ClearExistingFilter, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.QualifiedFieldCaption), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Worksheet), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.Dashboard)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldName, Params_1.ParameterId.FieldCaption))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetSelectedMarks, CommandIds_1.DocCommands.GetSelectionData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.SelectedData, Params_1.ParameterId.SelectionData))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetHighlightedMarks, CommandIds_1.DocCommands.GetHighlightedData, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.HighlightedData, Params_1.ParameterId.HighlightedData))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.SaveAddInSettings, CommandIds_1.DocCommands.SaveAddInSettings, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.AddInLocator, Params_1.ParameterId.AddInLocator), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.SettingsValues, Params_1.ParameterId.AddInSettings)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.AddInSettingsInfo, Params_1.ParameterId.AddInSettingsInfo))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetParametersForSheet, CommandIds_1.DocCommands.GetParameterModels, [], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterInfos, Params_1.ParameterId.ParameterCtrls))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.FindParameter, CommandIds_1.DocCommands.FindParameterModel, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterCaption, Params_1.ParameterId.FieldCaption, true), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterFieldName, Params_1.ParameterId.FieldNameString, true)], - // We might not get a response if the parameter isn't found - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterInfo, Params_1.ParameterId.ParameterCtrl, true))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ChangeParameterValue, CommandIds_1.DocCommands.SetParameterValue, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterFieldName, Params_1.ParameterId.GlobalFieldName), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterValue, Params_1.ParameterId.ValueStr)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.ParameterInfo, Params_1.ParameterId.ParameterCtrl))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.ClearSelectedMarks, CommandIds_1.DocCommands.ClearSelectedMarks, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)])); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.SelectByValue, CommandIds_1.DocCommands.SelectByValue, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.Selection, Params_1.ParameterId.Selection, true), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.SelectionUpdateType, Params_1.ParameterId.SelectionUpdateType), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.HierValSelectionModels, Params_1.ParameterId.HierValSelectionModels, true), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DimValSelectionModels, Params_1.ParameterId.DimValSelectionModels, true), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.QuantRangeSelectionModels, Params_1.ParameterId.QuantRangeSelectionModels, true)])); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetDataSources, CommandIds_1.DocCommands.GetSchema, [], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DataSchema, Params_1.ParameterId.DataSchema))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.RefreshDataSource, CommandIds_1.UICommands.RefreshDataSourceUI, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DataSourceId, Params_1.ParameterId.Datasource)], undefined, CommandRegistration_1.CommandNamespace.TabUI)); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetFilters, CommandIds_1.DocCommands.GetWorksheetFilters, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.WorksheetFilters, Params_1.ParameterId.FiltersInfo))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetCategoricalDomain, CommandIds_1.DocCommands.GetCategoricalDomain, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldId, Params_1.ParameterId.FieldName), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DomainType, Params_1.ParameterId.FilterDomainType)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.CategoricalDomain, Params_1.ParameterId.CategoricalDomain))); - result.addCommand(new CommandRegistration_1.CommandRegistration(api_internal_contract_1.VerbId.GetRangeDomain, CommandIds_1.DocCommands.GetQuantitativeDomain, [new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.VisualId, Params_1.ParameterId.VisualIDPM), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.FieldId, Params_1.ParameterId.FieldName), - new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.DomainType, Params_1.ParameterId.FilterDomainType)], new CommandRegistration_1.CommandParameter(api_internal_contract_1.ParameterId.QuantitativeDomain, Params_1.ParameterId.QuantitativeDomain))); - return result; - }; - return CommandMappingRegistryFactory; - }()); - exports.CommandMappingRegistryFactory = CommandMappingRegistryFactory; - //# sourceMappingURL=CommandMappingRegistryFactory.js.map - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - "use strict"; - /* tslint:disable */ - // ----------------------------------------------------------------------------- - // - // This file is the copyrighted property of Tableau Software and is protected - // by registered patents and other applicable U.S. and international laws and - // regulations. - // - // Unlicensed use of the contents of this file is prohibited. Please refer to - // the NOTICES.txt file for further details. - // - // ----------------------------------------------------------------------------- - // WARNING: Computer generated file. Do not hand modify. - // DEPENDS ON: ['../typescript/js-api/api-core/node_modules/@tableau/preslayer-codegen-typescript/templates/commands-enum-ts.template', u'../typescript/js-api/api-core/temp-pres-layer/all-cmd-wrappers.data'] - Object.defineProperty(exports, "__esModule", { value: true }); - var DocCommands; - (function (DocCommands) { - // Saves the settings for the specified add-in id - DocCommands["SaveAddInSettings"] = "save-add-in-settings"; - // Gets the pres model for an add-in instance. - DocCommands["GetAddInInstancePresModel"] = "get-add-in-instance-pres-model"; - // Gets the pres model for the dashboard authoring widget for add-ins. - DocCommands["GetAddInDashboardAuthoringWidgetPresModel"] = "get-add-in-dashboard-authoring-widget-pres-model"; - // Gets the necessary information for an add-in to initialize itself. - DocCommands["InitializeAddInInstance"] = "initialize-add-in-instance"; - // Enables or disable javascript debugging of an add-in. - DocCommands["SetAddInJsDebuggingEnabled"] = "set-add-in-js-debugging-enabled"; - // Whether or not we should pause before loading. If missing, toggle the value - DocCommands["SetPauseBeforeLoadingAddIn"] = "set-pause-before-loading-add-in"; - // Reloads the Add-In widget and web page. - DocCommands["ReloadAddIn"] = "reload-add-in"; - // Retrieves the context menu for a dashboard add-in. - DocCommands["GetAddInZoneContextMenu"] = "get-add-in-zone-context-menu"; - // Gets the pres model which indicates what the debug settings for add-ins is. - DocCommands["GetAddInDebugSettingsPresModel"] = "get-add-in-debug-settings-pres-model"; - // Primary use is for building context menus - DocCommands["IsSelectionAnEditableParameter"] = "is-selection-an-editable-parameter"; - // Check if selection can be used as base for creating a new parameter. Primary use is for building context menus - DocCommands["GetCreateParameterState"] = "get-create-parameter-state"; - // Uses EditParameter to get and return info about the presmodel without maintaining the controller - DocCommands["GetParameterEditInfo"] = "get-parameter-edit-info"; - // Initialize the controller and its stored parameter then return a populated presmodel - DocCommands["CreateParameter"] = "create-parameter"; - // Same underlying logic as CreateParameter but edits rather than creating a new parameter - DocCommands["EditParameter_New"] = "edit-parameter-new"; - // Add a member of a parameter domain. Changes are applied to intermediate state and saved on commit - DocCommands["AddParameterMember"] = "add-parameter-member"; - // Edit a member of a parameter domain. Changes are applied to intermediate state and saved on commit - DocCommands["EditParameterMember"] = "edit-parameter-member"; - // Delete a series of ranges of members from the parameter list. - DocCommands["DeleteParameterMembers"] = "delete-parameter-members"; - // Copy a series of ranges of members of a parameter list - DocCommands["CopyParameterMembers"] = "copy-parameter-members"; - // Move a series of ranges of members of a parameter list - DocCommands["MoveParameterMembers"] = "move-parameter-members"; - // Change domain of a parameter. Changes are applied to intermediate state and saved on commit - DocCommands["EditParameterDomainType"] = "edit-parameter-domain-type"; - // Change datatype of a parameter. Changes are applied to intermediate state and saved on commit - DocCommands["EditParameterDataType"] = "edit-parameter-data-type"; - // Change display format of a parameter. Changes are applied to intermediate state and saved on commit - DocCommands["EditParameterFormat"] = "edit-parameter-format"; - // Validate changes to a parameter's range domain and apply to intermediate state. Changes are saved on commit - DocCommands["EditParameterRange"] = "edit-parameter-range"; - // Edit the value of a non-list domain parameter - DocCommands["EditParameterValue"] = "edit-parameter-value"; - // Edit the value of a list domain parameter - DocCommands["EditParameterValueIndex"] = "edit-parameter-value-index"; - // Update the parameter caption and description - used to keep backend in sync. No verification/return is requried. - DocCommands["EditParameterDisplayInfo"] = "edit-parameter-display-info"; - // Update the domain of the parameter using a field (column or parameter) as a base - DocCommands["UpdateParameterFromField"] = "update-parameter-from-field"; - // Update the list domain of a parameter from a plain text representation of values - DocCommands["ParseParameterListDomain"] = "parse-parameter-list-domain"; - // Clears the parameter's domain of all members - DocCommands["ClearParameterListDomain"] = "clear-parameter-list-domain"; - // Creates or edits parameter from intermediate state. Takes a few properties that are cached in dialog and applies them pre-commit. - DocCommands["CommitParameterEdits"] = "commit-parameter-edits"; - // Gets the model for a particular parameter or returns an empty response if one is not found. - DocCommands["FindParameterModel"] = "find-parameter-model"; - // Gets the pres model for the show data dialog - DocCommands["GetShowDataPresModel"] = "get-show-data-pres-model"; - // Export underlying data from the ShowDataDialog to a CSV file - DocCommands["ShowDataExportToCSV"] = "show-data-export-to-csv"; - // Gets the summary data for a worksheet - DocCommands["GetSummaryData"] = "get-summary-data"; - // Gets the underlying data for a worksheet - DocCommands["GetUnderlyingData"] = "get-underlying-data"; - // Gets the underlying data for a specific data source. - DocCommands["GetDataSourceData"] = "get-data-source-data"; - // Select all marks that have the tuple's value for the given field . - DocCommands["SelectByTupleValue"] = "select-by-tuple-value"; - // Clear all the selected marks for the given worksheet - DocCommands["ClearSelectedMarks"] = "clear-selected-marks"; - // Creates or updates and existing filter based on the provided updates. - DocCommands["ApplyCategoricalFilterUpdates"] = "apply-categorical-filter-updates"; - // Search filter domain for text and return any matching tuples. - DocCommands["CategoricalFilterSearch"] = "categorical-filter-search"; - // Clear all members from the table of the identified cache. - DocCommands["CategoricalFilterClearRelationalCache"] = "categorical-filter-clear-relational-cache"; - // Create tuples for an existing filter from supplied text. - DocCommands["GetCategoricalFilterTuplesFromText"] = "get-categorical-filter-tuples-from-text"; - // Returns a presmodel backing a categorical filter, initializing a data cache for fast lookup of the filter's member domain. - DocCommands["GetCategoricalFilter"] = "get-categorical-filter"; - // Retrieves a page of data to display in the filter's list domain - DocCommands["GetCategoricalFilterDomainPage"] = "get-categorical-filter-domain-page"; - // Reset filter to committed state - DocCommands["ResetCategoricalFilterDeferred"] = "reset-categorical-filter-deferred"; - // Use uncommitted state to reset the filter's controller - DocCommands["RecreateCategoricalFilterController"] = "recreate-categorical-filter-controller"; - // Validates a Categroical Filter name. - DocCommands["ValidateCategoricalFilterName"] = "validate-categorical-filter-name"; - // Gets a summary of the filter pattern. - DocCommands["GetCategoricalFilterPatternSummary"] = "get-categorical-filter-pattern-summary"; - // Gets a summery of the filter condition. - DocCommands["GetCategoricalFilterConditionSummary"] = "get-categorical-filter-condition-summary"; - // Load the current minimum and maximum data value range for the condition field. - DocCommands["LoadCategoricalFilterConditionFieldValueRange"] = "load-categorical-filter-condition-field-value-range"; - // Validates a Categorical Filter's condition formula and re-writes it. - DocCommands["ValidateCategoricalFilterConditionFormula"] = "validate-categorical-filter-condition-formula"; - // Gets a summery of the filter limit. - DocCommands["GetCategoricalFilterLimitSummary"] = "get-categorical-filter-limit-summary"; - // Validates a Categorical Filter's limit count. - DocCommands["ValidateCategoricalFilterLimitCount"] = "validate-categorical-filter-limit-count"; - // Validates a Categorical Filter's limit formula, and re-writes the formula. - DocCommands["ValidateCategoricalFilterLimitFormula"] = "validate-categorical-filter-limit-formula"; - // Validates a Categorical Filter's limit. - DocCommands["ValidateCategoricalFilterLimit"] = "validate-categorical-filter-limit"; - // Inform cache when a user changes the range - DocCommands["CategoricalFilterSetRangeTypeDeferred"] = "categorical-filter-set-range-type-deferred"; - // Inform cache when a user changes whether the selection is exclusive - DocCommands["CategoricalFilterSetSelectionExclusiveDeferred"] = "categorical-filter-set-selection-exclusive-deferred"; - // Inform cache when a user changes whether an empty selection should be considered a selection of 'All' in a Manual selection mode - DocCommands["CategoricalFilterSetUseAllWhenManualIsEmptyDeferred"] = "categorical-filter-set-use-all-when-manual-is-empty-deferred"; - // Inform cache when a user alters the preset type - DocCommands["CategoricalFilterSetPresetTypeDeferred"] = "categorical-filter-set-preset-type-deferred"; - // Inform cache the user has selected one or more members - DocCommands["CategoricalFilterSelectRelationalMembersDeferred"] = "categorical-filter-select-relational-members-deferred"; - // Inform cache the user has deselected one or more members - DocCommands["CategoricalFilterDeselectRelationalMembersDeferred"] = "categorical-filter-deselect-relational-members-deferred"; - // Inform cache when a user selects everything in the domain - DocCommands["CategoricalFilterSelectAllRelationalMembersDeferred"] = "categorical-filter-select-all-relational-members-deferred"; - // Inform cache when a user deselects everything in the domain - DocCommands["CategoricalFilterDeselectAllRelationalMembersDeferred"] = "categorical-filter-deselect-all-relational-members-deferred"; - // Inform cache the user wants to see a different domain (e.g. relevant values only) - DocCommands["CategoricalFilterSetDomainTypeDeferred"] = "categorical-filter-set-domain-type-deferred"; - // Set whether filters apply to totals as well as non-totals table calcs - DocCommands["FilterApplyToTotalTableCalcs"] = "filter-apply-to-total-table-calcs"; - // Gets the list of filters used in a worksheet - DocCommands["GetWorksheetFilters"] = "get-worksheet-filters"; - // Gets the domain for a categorical Filter - DocCommands["GetCategoricalDomain"] = "get-categorical-domain"; - // Gets the domain for a quantitative Filter - DocCommands["GetQuantitativeDomain"] = "get-quantitative-domain"; - // - DocCommands["GetHighlightedData"] = "get-highlighted-data"; - // - DocCommands["GetSelectionData"] = "get-selection"; - // - DocCommands["Select"] = "select"; - // - DocCommands["SelectAll"] = "select-all"; - // - DocCommands["SelectByValue"] = "select-by-value"; - // - DocCommands["SelectNoneIncludingMaster"] = "select-none-including-master"; - // - DocCommands["AddManualItemsToFilter"] = "add-manual-items-to-filter"; - // - DocCommands["CategoricalFilter"] = "categorical-filter"; - // - DocCommands["CategoricalFilterByIndex"] = "categorical-filter-by-index"; - // - DocCommands["ChangeSharedFilter"] = "change-shared-filter"; - // - DocCommands["ClearContextFilters"] = "clear-context-filters"; - // - DocCommands["ClearExistingFilter"] = "clear-existing-filter"; - // - DocCommands["DefaultFilter"] = "default-filter"; - // - DocCommands["FilterGeo"] = "filter-geo"; - // - DocCommands["FilterNeg"] = "filter-neg"; - // - DocCommands["FilterNulls"] = "filter-nulls"; - // - DocCommands["FilterTargets"] = "filter-targets"; - // - DocCommands["GetSharedFilterPresModel"] = "get-shared-filter-pres-model"; - // - DocCommands["HierarchicalFilter"] = "hierarchical-filter"; - // - DocCommands["KeepOnlyOrExclude"] = "keep-only-or-exclude"; - // - DocCommands["RangeFilter"] = "range-filter"; - // - DocCommands["RelDateFilter"] = "relative-date-filter"; - // - DocCommands["ResetFilter"] = "reset-filter"; - // - DocCommands["ShowGeoAtDefault"] = "show-geo-at-default"; - // - DocCommands["ShowSVAtDefault"] = "show-sv-at-default"; - // - DocCommands["ToggleLockQuickFilters"] = "toggle-lock-quick-filters"; - // - DocCommands["AddDataConnection"] = "add-data-connection"; - // - DocCommands["AddDrillPath"] = "add-drill-path"; - // - DocCommands["AddCredentialsFromKeychain"] = "add-credentials-from-keychain"; - // - DocCommands["AddCredentialsFromKeychainFile"] = "add-credentials-from-keychain-file"; - // - DocCommands["AddFieldFolder"] = "add-field-folder"; - // - DocCommands["AddSubtotals"] = "add-subtotals"; - // - DocCommands["AddToDrillPath"] = "add-to-drill-path"; - // - DocCommands["AddToFieldFolder"] = "add-to-field-folder"; - // - DocCommands["AggregateMeasuresFlag"] = "aggregate-measures"; - // - DocCommands["ApplyCalculation"] = "apply-calculation"; - // - DocCommands["ApplyPageSetupOptions"] = "apply-page-setup-options"; - // - DocCommands["ApplyTableOptions"] = "apply-table-options"; - // - DocCommands["ApplyTypeInPill"] = "apply-type-in-pill"; - // - DocCommands["Assert"] = "assert"; - // - DocCommands["AttemptConnectDataSourcesOnSheet"] = "attempt-connect-datasources-on-sheet"; - // - DocCommands["AttemptConnectWorkbook"] = "attempt-connect-workbook"; - // - DocCommands["AttemptDataSourcesConnection"] = "attempt-datasources-connection"; - // - DocCommands["AutoUpdates"] = "auto-update"; - // - DocCommands["Brush"] = "highlight"; - // - DocCommands["BrushSpecial"] = "highlight-special"; - // - DocCommands["BuildDataSchemaDataSourceContextMenu"] = "build-data-schema-data-source-context-menu"; - // - DocCommands["BuildDataSchemaContextMenu"] = "build-data-schema-context-menu"; - // - DocCommands["BuildDataSchemaFieldContextMenu"] = "build-data-schema-field-context-menu"; - // - DocCommands["BuildDataSchemaDrillPathContextMenu"] = "build-data-schema-drill-path-context-menu"; - // - DocCommands["BuildFileTableInfoPresModel"] = "build-file-table-info-pres-model"; - // - DocCommands["BuildSheetTabContextMenu"] = "build-sheet-tab-context-menu"; - // - DocCommands["CancelDataSourcePresModel"] = "cancel-datasource-pres-model"; - // - DocCommands["CatBinMergeSplitLabel"] = "categorical-bin-merge-split"; - // - DocCommands["CategoricalQuickFilterEdit"] = "categorical-quick-filter-edit"; - // - DocCommands["CategoricalQuickFilterExcludeValues"] = "categorical-quick-filter-exclude-values"; - // - DocCommands["CategoricalQuickFilterIncludeAllWhenEmpty"] = "categorical-quick-filter-include-all-when-empty"; - // - DocCommands["CategoricalQuickFilterMode"] = "categorical-quick-filter-mode"; - // - DocCommands["CategoricalQuickFilterPattern"] = "categorical-quick-filter-pattern"; - // - DocCommands["ChangeAggregation"] = "change-aggregation"; - // - DocCommands["ChangeAlphaLevel"] = "change-alpha-level"; - // - DocCommands["ChangeBorder"] = "change-border"; - // - DocCommands["ChangeFieldType"] = "change-field-type"; - // - DocCommands["ChangeForecastColumnType"] = "change-forecast-column-type"; - // - DocCommands["ChangeHalo"] = "change-halo"; - // - DocCommands["ChangeMarkers"] = "change-markers"; - // - DocCommands["ChangeSize"] = "change-size"; - // - DocCommands["ChangeSheetTabColor"] = "change-sheet-tab-color"; - // - DocCommands["ClearAllAxisRanges"] = "clear-axis-ranges"; - // - DocCommands["ClearCalcModel"] = "clear-calculation-model"; - // - DocCommands["ClearFilters"] = "clear-filters"; - // - DocCommands["ClearFormatting"] = "clear-formatting"; - // - DocCommands["ClearFuture"] = "clear-future"; - // - DocCommands["ClearLayout"] = "clear-layout"; - // - DocCommands["ClearQuickFilter"] = "clear-quick-filter"; - // - DocCommands["ClearSorts"] = "clear-sorts"; - // - DocCommands["CloseConnection"] = "close-connection"; - // - DocCommands["CloseDataSource"] = "close-data-source"; - // - DocCommands["ConnectionAddGoogleAnalyticsDimension"] = "connection-add-google-analytics-dimension"; - // - DocCommands["ConnectionAddGoogleAnalyticsMeasure"] = "connection-add-google-analytics-measure"; - // - DocCommands["ConnectionAddNewTable"] = "connection-add-new-table"; - // - DocCommands["ConnectionAddCoalesce"] = "connection-add-coalesce"; - // - DocCommands["ConnectionAddPivot"] = "connection-add-pivot"; - // - DocCommands["ConnectionConvertToUnionAndEdit"] = "connection-convert-to-union-and-edit"; - // - DocCommands["ConnectionConvertToUnion"] = "connection-convert-to-union"; - // - DocCommands["ConnectionEditUnion"] = "connection-edit-union"; - // - DocCommands["ConnectionAddOrEditBatchUnion"] = "connection-add-or-edit-batch-union"; - // - DocCommands["ConnectionChangeTableProperty"] = "connection-change-table-property"; - // - DocCommands["ConnectionCountEntity"] = "connection-count-entity"; - // - DocCommands["ConnectionDataServerFetchMoreDatasources"] = "connection-dataserver-fetch-more-datasources"; - // - DocCommands["ConnectionDataServerProjectSelect"] = "connection-dataserver-change-selected-project"; - // - DocCommands["ConnectionDataServerUpdateFetchParameters"] = "connection-dataserver-update-fetch-parameters"; - // - DocCommands["ConnectionDataServerFlushCache"] = "connection-dataserver-flush-cache"; - // - DocCommands["ConnectionDeleteAllTables"] = "connection-delete-all-tables"; - // - DocCommands["ConnectionDeleteTable"] = "connection-delete-table"; - // - DocCommands["ConnectionEditCaption"] = "connection-edit-caption"; - // - DocCommands["ConnectionEditGoogleAnalyticsAccount"] = "connection-edit-google-analytics-account"; - // - DocCommands["ConnectionEditGoogleAnalyticsDateRange"] = "connection-edit-google-analytics-date-range"; - // - DocCommands["ConnectionEditGoogleAnalyticsMeasureGroup"] = "connection-edit-google-analytics-measure-group"; - // - DocCommands["ConnectionToggleGAQueryPartitioning"] = "connection-toggle-ga-query-partitioning"; - // - DocCommands["ConnectionEditGoogleAnalyticsProperty"] = "connection-edit-google-analytics-property"; - // - DocCommands["ConnectionEditGoogleAnalyticsView"] = "connection-edit-google-analytics-view"; - // - DocCommands["ConnectionEditGoogleAnalyticsSegment"] = "connection-edit-google-analytics-segment"; - // - DocCommands["ConnectionEditJoinClauses"] = "connection-edit-join-clauses"; - // - DocCommands["ConnectionEditJoinType"] = "connection-edit-join-type"; - // - DocCommands["ConnectionEditSQLText"] = "connection-edit-sql-text"; - // - DocCommands["ConnectionFetchEntity"] = "connection-fetch-entity"; - // - DocCommands["ConnectionSetForceExtractRefresh"] = "connection-set-force-extract-refresh"; - // - DocCommands["ConnectionPrepareDataSourceForEdit"] = "connection-prepare-datasource-for-edit"; - // - DocCommands["ConnectionClearRefreshAttributes"] = "connection-clear-refresh-attributes"; - // - DocCommands["ConnectionRemoveGoogleAnalyticsDimension"] = "connection-remove-google-analytics-dimension"; - // - DocCommands["ConnectionRemoveGoogleAnalyticsMeasure"] = "connection-remove-google-analytics-measure"; - // - DocCommands["ConnectionRemoveCoalesce"] = "connection-remove-coalesce"; - // - DocCommands["ConnectionRemovePivot"] = "connection-remove-pivot"; - // - DocCommands["ConnectionAddDateParseFormats"] = "connection-add-date-parse-formats"; - // - DocCommands["ConnectionRenameTable"] = "connection-rename-table"; - // - DocCommands["ConnectionReplaceRelationWithSQLText"] = "connection-replace-relation-with-sql-text"; - // - DocCommands["ConnectionReplaceTable"] = "connection-replace-table"; - // - DocCommands["ConnectionResetTableAlias"] = "connection-reset-table-alias"; - // - DocCommands["ConnectionSelectCatalog"] = "connection-select-catalog"; - // - DocCommands["ConnectionSelectCube"] = "connection-select-cube"; - // - DocCommands["ConnectionSelectDatabase"] = "connection-select-database"; - // - DocCommands["ConnectionSelectSchema"] = "connection-select-schema"; - // - DocCommands["ConnectionSelectStoredProcedure"] = "connection-select-stored-procedure"; - // - DocCommands["ConnectionSelectWarehouse"] = "connection-select-warehouse"; - // - DocCommands["ConnectionSelectBigQueryLegacySQLCheckBox"] = "connection-select-bigquery-legacy-check"; - // - DocCommands["ConnectionToggleHasHeaderRow"] = "connection-toggle-has-header-row"; - // - DocCommands["ConnectionToggleTableCleaning"] = "connection-toggle-table-cleaning"; - // - DocCommands["ConnectionToggleUseExtract"] = "connection-toggle-use-extract"; - // - DocCommands["ConnectionViewTableCleaningResults"] = "connection-view-table-cleaning-results"; - // - DocCommands["ConnectToDataServerSource"] = "connect-data-server-datasource"; - // - DocCommands["ConsiderZerosEmptyFlag"] = "consider-zeros-empty"; - // - DocCommands["ConvertUnnamedFields"] = "convert-unnamed-fields"; - // - DocCommands["Crash"] = "crash"; - // - DocCommands["CreateAggregateRole"] = "create-aggregate-role"; - // - DocCommands["CreateConnection"] = "create-connection"; - // - DocCommands["CreateDefaultQuickFilter"] = "create-default-quick-filter"; - // - DocCommands["CreateTypeInPill"] = "create-type-in-pill"; - // - DocCommands["CustomDataGridFieldOrder"] = "custom-datagrid-field-order"; - // - DocCommands["CustomDateAggregation"] = "custom-date-aggregation"; - // - DocCommands["CustomSplitField"] = "custom-split-field"; - // - DocCommands["DebugAssertion"] = "debug-assertion"; - // - DocCommands["DecrementParameterValue"] = "decr-parameter-value"; - // - DocCommands["DeleteFields"] = "delete-calculation-fields-command"; - // - DocCommands["DeleteSheet"] = "delete-sheet"; - // - DocCommands["DescribeDrillPath"] = "describe-drill-path"; - // - DocCommands["DescribeSortFilter"] = "describe-sort-filter"; - // - DocCommands["DismissNullWart"] = "dismiss-null-wart"; - // - DocCommands["DomainQuickFilter"] = "domain-quick-filter"; - // - DocCommands["DoubleFreeCrash"] = "double-free"; - // - DocCommands["DropNowhere"] = "drop-nowhere"; - // - DocCommands["DropOnSchemaViewer"] = "drop-on-schema-viewer"; - // - DocCommands["DropOnShelf"] = "drop-on-shelf"; - // - DocCommands["DropOnCalcEditor"] = "drop-on-calc-editor"; - // - DocCommands["DropOnShowMe"] = "drop-on-showme"; - // - DocCommands["DropPrepare"] = "drop-prepare"; - // - DocCommands["DualAxis"] = "dual-axis"; - // - DocCommands["DuplicateSheet"] = "duplicate-sheet"; - // - DocCommands["EditCopyCalc"] = "edit-copy-calc"; - // - DocCommands["EditDropLines"] = "edit-drop-lines"; - // - DocCommands["EditEnumeratedGroup"] = "edit-enumerated-group"; - // - DocCommands["EditNestedGroup"] = "edit-nested-group"; - // - DocCommands["EditPill"] = "edit-pill"; - // - DocCommands["EditPrimitiveType"] = "edit-primitive-type"; - // - DocCommands["EnableAllBrushing"] = "enable-all-highlights"; - // - DocCommands["EnableQuickFilter"] = "enable-quick-filter"; - // - DocCommands["EnableSheetBrushing"] = "enable-sheet-highlights"; - // - DocCommands["EnableThemedBrushing"] = "enable-themed-highlights"; - // - DocCommands["EnumerateVariables"] = "enumerate-variables"; - // - DocCommands["EnumerateVariableSelectionValues"] = "enumerate-variable-selection-values"; - // - DocCommands["EstablishConnection"] = "establish-connection"; - // - DocCommands["EstablishMatchingConnections"] = "establish-matching-connections"; - // - DocCommands["ExportDataToText"] = "export-data-to-text"; - // - DocCommands["ExtSvcConfig"] = "ext-svc-config"; - // - DocCommands["ExtSvcConfigConnect"] = "ext-svc-config-connect"; - // - DocCommands["Extract"] = "extract"; - // - DocCommands["SetDataGridCurrentTable"] = "set-data-grid-current-table"; - // - DocCommands["FetchTableRelevance"] = "fetch-table-relevance"; - // - DocCommands["FetchCachedTableRelevance"] = "fetch-cached-table-relevance"; - // - DocCommands["FlipLabels"] = "flip-labels"; - // - DocCommands["FloatingToolbar"] = "zoom-controls"; - // - DocCommands["FloatingToolbarToggle"] = "zoom-controls-toggle"; - // - DocCommands["ForecastConfig"] = "forecast-config"; - // - DocCommands["ForecastToggle"] = "forecast-toggle"; - // - DocCommands["FormatWorkbook"] = "format-workbook"; - // - DocCommands["GeographicSearchQuery"] = "geographic-search-query"; - // - DocCommands["GeographicSearchLoadData"] = "geographic-search-load-data"; - // - DocCommands["GeographicSearchIsDataDoneLoading"] = "geographic-search-data-done-loading"; - // - DocCommands["GeographicSearchToggleVisibility"] = "geographic-search-toggle-visibility"; - // - DocCommands["GetEditConnectionPresModel"] = "get-edit-connection-pres-model"; - // - DocCommands["GetEditEnumeratedGroupPresModel"] = "get-edit-enumerated-group-pres-model"; - // - DocCommands["GetEditNestedGroupPresModel"] = "get-edit-nested-group-pres-model"; - // - DocCommands["GetFrameFinderPresModel"] = "get-frame-finder-pres-model"; - // - DocCommands["GetGoogleSheetsListPresModel"] = "get-google-sheets-list-pres-model"; - // - DocCommands["GetGoogleSheetPanePresModel"] = "get-google-sheet-pane-pres-model"; - // - DocCommands["GetInitialSQLPresModel"] = "get-initial-sql-pres-model"; - // - DocCommands["GetQueryBandingPresModel"] = "get-query-banding-pres-model"; - // - DocCommands["GetTabbedAuthenticationPresModel"] = "get-tabbed-authentication-pres-model"; - // - DocCommands["GetActiveSheet"] = "get-active-sheet"; - // - DocCommands["GetAlphaLevel"] = "get-alpha-level"; - // - DocCommands["GetAppConfig"] = "get-app-config"; - // - DocCommands["GetDisabledSecondaryDSFields"] = "get-disabled-secondaryds-fields"; - // - DocCommands["GetBlendingFields"] = "get-blending-fields"; - // - DocCommands["GetCalculationPresModel"] = "get-calculation-pres-model"; - // - DocCommands["GetCategoricalColor"] = "get-categorical-color"; - // - DocCommands["GetClientInfo"] = "get-client-info"; - // - DocCommands["GetCommands"] = "get-commands"; - // - DocCommands["GetConnectionDescriptionPresModel"] = "get-connection-description-pres-model"; - // - DocCommands["GetDSDropdownPresModel"] = "get-ds-dropdown-pres-model"; - // - DocCommands["GetDataPreviewWindowMessagePresModel"] = "get-data-preview-window-pres-model"; - // - DocCommands["GetDataSourcePresModel"] = "get-datasource-pres-model"; - // - DocCommands["GetDataSourceSortPresModel"] = "get-datasource-sort-pres-model"; - // - DocCommands["GetDataSourcePropertiesPresModel"] = "get-datasource-properties-pres-model"; - // - DocCommands["GetConnectionSettingsPresModel"] = "get-connection-settings-pres-model"; - // - DocCommands["GetDashboard"] = "get-dashboard"; - // - DocCommands["GetDataPreview"] = "get-data-preview"; - // - DocCommands["GetDatabaseEnumerationPresModel"] = "get-database-enumeration-pres-model"; - // - DocCommands["GetDefaultColor"] = "get-default-color"; - // - DocCommands["GetDefaultShape"] = "get-default-shape"; - // - DocCommands["GetDragPresModelForText"] = "get-drag-pres-model-for-text"; - // - DocCommands["GetDropTargetPresModel"] = "get-drop-target-pres-model"; - // - DocCommands["GetEditDataServerConnectionPresModel"] = "get-edit-data-server-connection-pres-model"; - // - DocCommands["GetEditDropLinesModel"] = "get-edit-drop-lines-model"; - // - DocCommands["GetEncodingState"] = "get-encoding-state"; - // - DocCommands["GetEncodingTypeMenuModel"] = "get-encoding-type-menu"; - // - DocCommands["GetExtSvcConfig"] = "get-ext-svc-config"; - // - DocCommands["GetForecastPresModel"] = "get-forecast-pres-model"; - // - DocCommands["GetJoinDescriptionPresModel"] = "get-join-description-pres-model"; - // - DocCommands["GetQuickFilter"] = "get-quick-filter"; - // - DocCommands["GetQuickFilters"] = "get-quick-filters"; - // - DocCommands["GetReferenceLinePresModel"] = "get-reference-line-pres-model"; - // - DocCommands["GetParameters"] = "get-parameters"; - // - DocCommands["GetParameterModels"] = "get-parameter-models"; - // - DocCommands["GetParametersRegistryInfo"] = "get-params-registry-info"; - // - DocCommands["GetPivotPresModel"] = "get-pivot-pres-model"; - // - DocCommands["GetScene"] = "get-scene"; - // - DocCommands["GetSchemaEnumerationPresModel"] = "get-schema-enumeration-pres-model"; - // - DocCommands["GetSheetsInfo"] = "get-sheets-info"; - // - DocCommands["GetShowMe"] = "get-show-me"; - // - DocCommands["GetStandardConnectionEnumerationPresModel"] = "get-standard-connection-enumeration-pres-model"; - // - DocCommands["GetStoredProcedureEnumerationPresModel"] = "get-stored-procedure-enumeration-pres-model"; - // - DocCommands["GetStoredProcedureParametersPresModel"] = "get-stored-procedure-parameters-pres-model"; - // - DocCommands["GetTableEnumerationPresModel"] = "get-table-enumeration-pres-model"; - // - DocCommands["GetTableCleaningPresModel"] = "get-table-cleaning-pres-model"; - // - DocCommands["GetTargetFieldList"] = "get-target-field-list"; - // - DocCommands["GetTopLevelConnectionDescriptionPresModel"] = "get-top-level-connection-description-pres-model"; - // - DocCommands["GetTypeInPillPresModel"] = "get-type-in-pill-pres-model"; - // - DocCommands["GetUberTipPresModel"] = "get-ubertip-pres-model"; - // - DocCommands["GetUnionInfoPresModel"] = "get-union-info-pres-model"; - // - DocCommands["GetVisual"] = "get-visual"; - // - DocCommands["GetVizData"] = "get-viz-data"; - // - DocCommands["GetWarehouseEnumerationPresModel"] = "get-warehouse-enumeration-pres-model"; - // - DocCommands["GetWorkbook"] = "get-workbook"; - // - DocCommands["GetWorldUpdate"] = "get-world-update"; - // - DocCommands["GoToSheet"] = "goto-sheet"; - // - DocCommands["HeapCorruptionCrash"] = "corrupt-heap"; - // - DocCommands["HideColumnFieldLabel"] = "hide-column-field-label"; - // - DocCommands["HideEmptyColsFlag"] = "hide-empty-cols"; - // - DocCommands["HideEmptyRowsFlag"] = "hide-empty-rows"; - // - DocCommands["HideLabel"] = "hide-label"; - // - DocCommands["HideRowFieldLabel"] = "hide-row-field-label"; - // - DocCommands["HierarchicalQuickFilterUpdateSetFunction"] = "hierarchical-quick-filter-update-set-function"; - // - DocCommands["IncludeInTooltip"] = "include-in-tooltip"; - // - DocCommands["IncludeOtherCategoricalBin"] = "include-other-cat-bin"; - // - DocCommands["IncrementExtract"] = "increment-extract"; - // - DocCommands["IncrementParameterValue"] = "incr-parameter-value"; - // - DocCommands["CreateCalc"] = "create-calc"; - // - DocCommands["EditCalc"] = "edit-calc"; - // - DocCommands["InvokeHyperlink"] = "invoke-hyperlink"; - // - DocCommands["KeepOnlyOrExcludeSelection"] = "keep-only-or-exclude-selection"; - // - DocCommands["LabelDrill"] = "label-drill"; - // - DocCommands["LabelDrillCtx"] = "label-drill-ctx"; - // - DocCommands["LevelDrill"] = "level-drill"; - // - DocCommands["LoadUrl"] = "load-url"; - // - DocCommands["ListPublishedDataSources"] = "list-published-datasources"; - // - DocCommands["MarkLabel"] = "mark-label"; - // - DocCommands["MarkTrail"] = "mark-trail"; - // - DocCommands["MemoryDumpObjectCounts"] = "memory-dump-object-counts"; - // - DocCommands["MemoryLeak"] = "memory-leak"; - // - DocCommands["Merge"] = "merge-or-split"; - // - DocCommands["MigrateDataSource"] = "migrate-data-source"; - // - DocCommands["ModifyMarksInSet"] = "add-or-remove-marks"; - // - DocCommands["MoveAreaAnnotationText"] = "move-area-annotation-text"; - // - DocCommands["MoveColumnTotals"] = "move-column-totals"; - // - DocCommands["MoveMark"] = "move-mark"; - // - DocCommands["MovePointAnnotation"] = "move-point-annotation"; - // - DocCommands["MovePointAnnotationTarget"] = "move-point-annotation-target"; - // - DocCommands["MoveReferenceLine"] = "move-reference-line"; - // - DocCommands["MoveRowTotals"] = "move-row-totals"; - // - DocCommands["NavigateToSheet"] = "navigate-to-sheet"; - // - DocCommands["PostCalcJoinClauseResult"] = "post-calc-join-clause-result"; - // - DocCommands["NewDocDashboard"] = "new-dashboard"; - // - DocCommands["NewDocWorksheet"] = "new-worksheet"; - // - DocCommands["NonRangedRemoveReferenceLine"] = "non-ranged-remove-reference-line"; - // - DocCommands["OptimizeExtract"] = "optimize-extract"; - // - DocCommands["OptOutActions"] = "opt-out-actions"; - // - DocCommands["PageHistorySettings"] = "page-history-settings"; - // - DocCommands["PageToggleTrails"] = "page-toggle-trails"; - // - DocCommands["ParseUIName"] = "parse-ui-name"; - // - DocCommands["Percentages"] = "percentages"; - // - DocCommands["Perspectives"] = "perspectives"; - // - DocCommands["PositionPointAnnotation"] = "position-point-annotation"; - // - DocCommands["ProtocolPoolLog"] = "protocol-pool-log"; - // - DocCommands["PublishDataSource"] = "publish-datasource"; - // - DocCommands["PublishDataSourceFromData"] = "publish-data-source-from-data"; - // - DocCommands["PublishDataSourceFromWorkbookData"] = "publish-data-source-from-workbook-data"; - // - DocCommands["QuantitativeQuickFilterEdit"] = "quantitative-quick-filter-edit"; - // - DocCommands["QuantitativeModeQuickFilter"] = "quantitative-mode-quick-filter"; - // - DocCommands["QueryMigrateDataSources"] = "query-migrate-data-sources"; - // - DocCommands["QuickSort"] = "quick-sort"; - // - DocCommands["RangedByIndexMerge"] = "ranged-by-index-merge"; - // - DocCommands["RangedByValueMerge"] = "ranged-by-value-merge"; - // - DocCommands["Record"] = "record"; - // - DocCommands["Redo"] = "redo"; - // - DocCommands["RefreshExtract"] = "refresh-extract"; - // - DocCommands["RefreshFromSource"] = "refresh-from-source"; - // - DocCommands["RelativeDateQuickFilterEdit"] = "relative-date-quick-filter-edit"; - // - DocCommands["RemoveAllReferenceLines"] = "remove-all-reference-lines"; - // - DocCommands["RemoveDrillPath"] = "remove-drill-path"; - // - DocCommands["RemoveExtract"] = "remove-extract"; - // - DocCommands["RemoveFieldFolder"] = "remove-field-folder"; - // - DocCommands["RemoveFieldLabel"] = "remove-field-label"; - // - DocCommands["RemoveFields"] = "remove-fields"; - // - DocCommands["RemoveFieldsFromShelf"] = "remove-fields-from-shelf"; - // - DocCommands["RemoveFromDrillPath"] = "remove-from-drill-path"; - // - DocCommands["RemoveFromFieldFolder"] = "remove-from-field-folder"; - // - DocCommands["RemoveReferenceLine"] = "remove-reference-line"; - // - DocCommands["RemoveSubtotals"] = "remove-subtotals"; - // - DocCommands["RenameDataSource"] = "rename-data-source"; - // - DocCommands["RenameDrillPath"] = "rename-drill-path"; - // - DocCommands["RenameFieldFolder"] = "rename-field-folder"; - // - DocCommands["RenameSheet"] = "rename-sheet"; - // - DocCommands["ReorderLabels"] = "reorder-labels"; - // - DocCommands["ReportBug"] = "report-bug"; - // - DocCommands["RequestDataSourcePresModel"] = "request-datasource-pres-model"; - // - DocCommands["ResetParameterCtrlTitle"] = "reset-parameter-ctrl-title"; - // - DocCommands["ResetTooltip"] = "reset-tooltip"; - // - DocCommands["ResizeAreaAnnotationText"] = "resize-area-annotation-text"; - // - DocCommands["ResizeAxis"] = "resize-axis"; - // - DocCommands["ResizeCell"] = "resize-cell"; - // - DocCommands["ResizeHeader"] = "resize-header"; - // - DocCommands["ResizePointAnnotation"] = "resize-point-annotation"; - // - DocCommands["Revert"] = "revert"; - // - DocCommands["RotateFieldLabel"] = "rotate-field-label"; - // - DocCommands["RotateLabel"] = "rotate-label"; - // - DocCommands["SplitFieldLabel"] = "split-field-label"; - // - DocCommands["RunAction"] = "run-action"; - // - DocCommands["RunScript"] = "run-script"; - // - DocCommands["RunUpdates"] = "run-update"; - // - DocCommands["SaveModel"] = "save-model"; - // - DocCommands["SavePublishedDStoFile"] = "save-published-ds-to-file"; - // - DocCommands["SelectDataSource"] = "select-data-source"; - // - DocCommands["SelectFieldsInShelf"] = "select-fields-in-shelf"; - // - DocCommands["SendDataConnectionTableViewMessage"] = "send-data-connection-tableview-message"; - // - DocCommands["SetActiveDataSourceName"] = "set-active-data-source-name"; - // - DocCommands["SetActiveConnectionName"] = "set-active-connection-name"; - // - DocCommands["SetActiveDataSource"] = "set-active-datasource"; - // - DocCommands["SetBasePalette"] = "set-base-palette"; - // - DocCommands["SetCategoricalColor"] = "set-categorical-color"; - // - DocCommands["SetDataCacheDelta"] = "set-data-cache-delta"; - // - DocCommands["SetDataPreviewAutoUpdate"] = "set-data-preview-auto-update"; - // - DocCommands["SetDataPreviewCustomFieldOrder"] = "set-data-preview-custom-field-order"; - // - DocCommands["SetDefaultColor"] = "set-default-color"; - // - DocCommands["SetDefaultShape"] = "set-default-shape"; - // - DocCommands["SetFilterContext"] = "set-filter-context"; - // - DocCommands["SetFilterShared"] = "set-filter-shared"; - // - DocCommands["SetInitialSQL"] = "set-initial-sql"; - // - DocCommands["SetItemColor"] = "set-item-color"; - // - DocCommands["SetItemColorResetCustomization"] = "set-item-color-reset-customization"; - // - DocCommands["SetItemEncodingType"] = "set-item-encoding-type"; - // - DocCommands["SetMarkSize"] = "set-mark-size"; - // - DocCommands["SetPageNavFlag"] = "set-page-flag"; - // - DocCommands["SetParameterCtrlDisplayFlags"] = "set-parameter-ctrl-display-flags"; - // - DocCommands["SetParameterCtrlDisplayMode"] = "set-parameter-ctrl-display-mode"; - // - DocCommands["SetParameterCtrlTitle"] = "set-parameter-ctrl-title"; - // - DocCommands["SetParameterValue"] = "set-parameter-value"; - // - DocCommands["SetPrimitive"] = "set-primitive"; - // - DocCommands["SetQueryBanding"] = "set-query-banding"; - // - DocCommands["SetQuickFilterIncludedValues"] = "set-quick-filter-included"; - // - DocCommands["SetReferenceLineFormula"] = "set-reference-line-formula"; - // - DocCommands["SetReferenceLineConstantValue"] = "set-reference-line-constant-value"; - // - DocCommands["SetSheetFormatting"] = "set-sheet-formatting"; - // - DocCommands["SetSheetSize"] = "set-sheet-size"; - // - DocCommands["SetTotalsType"] = "set-totals-type"; - // - DocCommands["SetWorkbookLocale"] = "set-workbook-locale"; - // - DocCommands["ShowCatCtrlQuickFilter"] = "show-cat-ctrl-quick-filter"; - // - DocCommands["ShowColFieldNamesFlag"] = "show-col-field-names"; - // - DocCommands["ShowColTotalsFlag"] = "show-col-totals"; - // - DocCommands["ShowColumnFieldLabel"] = "show-column-field-label"; - // - DocCommands["ShowEmptyColsFlag"] = "show-empty-cols"; - // - DocCommands["ShowEmptyRowsFlag"] = "show-empty-rows"; - // - DocCommands["ShowForecastEditor"] = "show-forecast-editor"; - // - DocCommands["ShowFullRange"] = "show-full-range"; - // - DocCommands["ShowHeader"] = "show-header"; - // - DocCommands["ShowHiddenData"] = "show-hidden-data"; - // - DocCommands["ShowMe"] = "show-me"; - // - DocCommands["ShowQuantCtrlQuickFilter"] = "show-quant-ctrl-quick-filter"; - // - DocCommands["ShowQuickFilterDoc"] = "show-quickfilter-doc"; - // - DocCommands["ShowReferenceLineEditor"] = "show-reference-line-editor"; - // - DocCommands["ShowReferenceLineConstantValueEditor"] = "show-reference-line-constant-value-editor"; - // - DocCommands["ShowReferenceLineFormatter"] = "show-reference-line-formatter"; - // - DocCommands["ShowRowFieldLabel"] = "show-row-field-label"; - // - DocCommands["ShowRowFieldNamesFlag"] = "show-row-field-names"; - // - DocCommands["ShowRowTotalsFlag"] = "show-row-totals"; - // - DocCommands["SimpleCommandList"] = "simple-command-list"; - // - DocCommands["Sleep"] = "sleep"; - // - DocCommands["SleepBackgroundThread"] = "sleep-background-thread"; - // - DocCommands["SortDataGridByColumn"] = "sort-datagrid-by-column"; - // - DocCommands["SortDataGridFields"] = "sort-datagrid-fields"; - // - DocCommands["SpecialValues"] = "special-values"; - // - DocCommands["SplitField"] = "split-field"; - // - DocCommands["StackMarks"] = "stack-marks"; - // - DocCommands["StackOverflowCrash"] = "stack-overflow"; - // - DocCommands["SubtotalAggregation"] = "subtotal-aggregation"; - // - DocCommands["Subtotals"] = "subtotals"; - // - DocCommands["SwapFields"] = "swap-fields"; - // - DocCommands["SwapRowsAndColumns"] = "swap-rows-and-columns"; - // - DocCommands["TableauException"] = "tableau-exception"; - // - DocCommands["ToggleDropLines"] = "toggle-drop-lines"; - // - DocCommands["ToggleFieldBlending"] = "toggle-field-blending"; - // - DocCommands["ToggleMarkLabels"] = "toggle-mark-labels"; - // - DocCommands["TogglePageTitle"] = "toggle-page-title"; - // - DocCommands["ToggleParameterCtrlDisplayFlag"] = "toggle-parameter-ctrl-display-flag"; - // - DocCommands["ToggleParameterCtrlTitle"] = "toggle-parameter-ctrl-title"; - // - DocCommands["ToggleQuickFilterTitle"] = "toggle-quick-filter-title"; - // - DocCommands["ToggleVizNavigationSetting"] = "toggle-viz-navigation-setting"; - // - DocCommands["Undo"] = "undo"; - // - DocCommands["UnhideData"] = "unhide-data"; - // - DocCommands["UnhideLabel"] = "unhide-label"; - // - DocCommands["UpdateAreaAnnotation"] = "update-area-annotation"; - // - DocCommands["UpdateCalcScopeIsolation"] = "update-scope-isolation-for-calculation"; - // - DocCommands["UpdateDataServerConnectionInfo"] = "update-data-server-connection-info"; - // - DocCommands["UpdatePointAnnotationPullback"] = "update-point-annotation-pullback"; - // - DocCommands["UpdateTableCalcInfo"] = "update-table-calc-infomation"; - // - DocCommands["UpgradeExtract"] = "upgrade-extract"; - // - DocCommands["UseExtract"] = "use-extract"; - // - DocCommands["ValidateDrillPathName"] = "validate-drill-path-name"; - // - DocCommands["ValidateFormula"] = "validate-formula"; - // - DocCommands["ValidateInitialSQL"] = "validate-initial-sql"; - // - DocCommands["ValidateQueryBanding"] = "validate-query-banding"; - // - DocCommands["ValidateTypeInPill"] = "validate-type-in-pill"; - // - DocCommands["ViewParameterCtrls"] = "view-param-ctrls"; - // - DocCommands["ViewQuickFilters"] = "view-quick-filters"; - // - DocCommands["GetSchema"] = "get-schema"; - // - DocCommands["GetSchemaViewerDataSchema"] = "get-schema-viewer-data-schema"; - // - DocCommands["ConvertToDimension"] = "convert-to-dimension"; - // - DocCommands["ConvertToMeasure"] = "convert-to-measure"; - // - DocCommands["ConvertToContinuous"] = "convert-to-continuous"; - // - DocCommands["ConvertToDiscrete"] = "convert-to-discrete"; - // - DocCommands["RenameField"] = "rename-field"; - // - DocCommands["HideField"] = "hide-field"; - // - DocCommands["UnhideField"] = "unhide-field"; - // - DocCommands["HideUnusedFields"] = "hide-unused-fields"; - // - DocCommands["DuplicateFields"] = "duplicate-fields"; - // - DocCommands["CleanValues"] = "clean-values"; - // - DocCommands["ParseDate"] = "parse-date"; - // - DocCommands["MakeDate"] = "make-date"; - // - DocCommands["SetQualifyNames"] = "set-qualify-names"; - // - DocCommands["CreateMeasureFromColumn"] = "create-measure-from-column"; - // - DocCommands["RemoveFromSchemaDrillPath"] = "remove-from-schema-drill-path"; - // - DocCommands["AddToSchemaDrillPath"] = "add-to-schema-drill-path"; - // - DocCommands["RemoveSchemaDrillPath"] = "remove-schema-drill-path"; - // - DocCommands["ShowHiddenFields"] = "show-hidden-fields"; - // - DocCommands["ShowAliases"] = "show-aliases"; - // - DocCommands["SetRowDisplayCount"] = "set-row-display-count"; - // - DocCommands["ShowStructure"] = "show-structure"; - // - DocCommands["GroupByTable"] = "group-by-table"; - // - DocCommands["ChangeDataType"] = "change-data-type"; - // - DocCommands["ChangePivotStrategy"] = "change-pivot-strategy"; - // - DocCommands["ChangeDisplayAlias"] = "change-display-alias"; - // - DocCommands["SetIncludeSharedMembers"] = "set-include-shared-members"; - // - DocCommands["SetUtilityDimension"] = "set-utility-dimension"; - // - DocCommands["SetDefaultHierarchy"] = "set-default-hierarchy"; - // - DocCommands["DataSourceSortOrder"] = "data-source-sort-order"; - // - DocCommands["ClearUtilityDimension"] = "clear-utility-dimension"; - // - DocCommands["ClearDefaultSort"] = "clear-default-sort"; - // - DocCommands["SetDefaultAggregation"] = "set-default-aggregation"; - // - DocCommands["SetDefaultVTAggregation"] = "set-default-vtaggregation"; - // - DocCommands["ChangeFiscalYear"] = "change-fiscal-year"; - // - DocCommands["ChangeSemanticRole"] = "change-semantic-role"; - // - DocCommands["AddToSheet"] = "add-to-sheet"; - // - DocCommands["DropSchemaSelOnShelf"] = "drop-schema-sel-on-shelf"; - // - DocCommands["AddToSchemaFieldFolder"] = "add-to-schema-field-folder"; - // - DocCommands["RemoveFromSchemaFieldFolder"] = "remove-from-schema-field-folder"; - // - DocCommands["RemoveSchemaFieldFolder"] = "remove-schema-field-folder"; - // - DocCommands["DefaultTextFormat"] = "default-text-format"; - // - DocCommands["EditSchemaCaption"] = "edit-schema-caption"; - // - DocCommands["ResetSchemaCaption"] = "reset-schema-caption"; - // - DocCommands["CreateOutlierSet"] = "create-outlier-set"; - })(DocCommands = exports.DocCommands || (exports.DocCommands = {})); - var UICommands; - (function (UICommands) { - // - UICommands["About"] = "about"; - // - UICommands["AddDataServerDataSourceUI"] = "add-data-server-datasource-ui"; - // - UICommands["SwitchToDocumentAndAddDataServerDataSourceUI"] = "switch-to-document-and-add-data-server-ds-ui"; - // - UICommands["AddDrillPathUI"] = "add-drillpath-ui"; - // - UICommands["AddFieldFolderUI"] = "add-field-folder-ui"; - // - UICommands["AddFileToExtractUI"] = "add-file-to-extract-ui"; - // - UICommands["AddDataSourceToExtractUI"] = "add-data-source-to-extract-ui"; - // - UICommands["AddQCToSheetUI"] = "add-qc-to-sheet-ui"; - // - UICommands["AddReferenceLineUI"] = "add-reference-line-ui"; - // - UICommands["AddSchemaFieldFolderUI"] = "add-to-schema-field-folder-ui"; - // - UICommands["AddTableauServerDSConnectionUI"] = "add-tableau-server-ds-connection-ui"; - // - UICommands["AddToSchemaDrillPathUI"] = "add-to-schema-drillpath-ui"; - // - UICommands["AddToSheetUI"] = "add-to-sheet-ui"; - // - UICommands["AnnotateUI"] = "annotate-ui"; - // - UICommands["AppendDataSourceToRemoteExtractUI"] = "append-data-source-to-remote-extract-ui"; - // - UICommands["AttemptConnectDataSourcesOnSheetUI"] = "attempt-connect-datasources-on-sheet-ui"; - // - UICommands["AttemptDataSourceConnectionUI"] = "attempt-datasource-connect-ui"; - // - UICommands["AutoHideSheet"] = "auto-hide-sheet"; - // - UICommands["AutomationClickMRUItem"] = "click-mru-item"; - // - UICommands["CalculatedMembersUI"] = "calculated-members-ui"; - // - UICommands["ChangeAggregationUI"] = "change-aggregation-ui"; - // - UICommands["ChangeDataServerLogonUI"] = "change-data-server-logon-ui"; - // - UICommands["ChangeEssbaseAliasFile"] = "change-essbase-alias-file"; - // - UICommands["ChangeFieldTypeUI"] = "change-field-type-ui"; - // - UICommands["ChangeTabColorSheet"] = "change-tab-color-sheet"; - // - UICommands["CheckForProductUpdates"] = "check-for-product-updates"; - // - UICommands["ClearDashboardUI"] = "clear-dashboard-ui"; - // - UICommands["ClearSheetUI"] = "clear-sheet-ui"; - // - UICommands["ClearStoryUI"] = "clear-story-ui"; - // - UICommands["ClearVizUI"] = "clear-viz-ui"; - // - UICommands["CloseCalculationUI"] = "close-calculation-ui"; - // - UICommands["CloseDataSourceUI"] = "close-datasource-ui"; - // - UICommands["CloseWorkbook"] = "close-workbook"; - // - UICommands["ColorLegendEditUI"] = "color-legend-edit-ui"; - // - UICommands["CommitPillEditUI"] = "commit-pill-edit-ui"; - // - UICommands["ConnectDataSourceUI"] = "connect-datasource-ui"; - // - UICommands["ConnectRepromptUI"] = "connect-reprompt-ui"; - // - UICommands["ConnectVariablePromptUI"] = "connect-variable-prompt-ui"; - // - UICommands["ConnectVariablePromptMatchingUI"] = "connect-variable-prompt-matching-ui"; - // - UICommands["ConnectionAddNewCustomSQLUI"] = "connection-add-new-custom-sql-ui"; - // - UICommands["ConnectionAddNewTableUI"] = "connection-add-new-table-ui"; - // - UICommands["ConnectionDataGridCopyUI"] = "connection-data-grid-copy-ui"; - // - UICommands["ConnectionEditCustomSQLUI"] = "connection-custom-sql-ui"; - // - UICommands["ConnectionEditExtractUI"] = "connection-extract-ui"; - // - UICommands["ConnectionEditDBVariablesUI"] = "connection-edit-db-variables-ui"; - // - UICommands["ConnectionEditConnectionUI"] = "connection-edit-connection-ui"; - // - UICommands["ConnectionFinalizeDataSourceUI"] = "connection-finalize-datasource-ui"; - // - UICommands["ConnectionFinalizeExtractStatesUI"] = "connection-finalize-extract-states-ui"; - // - UICommands["ConnectionGetTypeGroupPresModelUI"] = "connection-get-type-group-pres-model-ui"; - // - UICommands["ConnectionGetSavedDataSourcesPresModelUI"] = "connection-get-saved-ds-pres-model-ui"; - // - UICommands["ConnectionPartitioningFailureUI"] = "connection-partitioning-failure-ui"; - // - UICommands["ConnectionReplaceTableUI"] = "connection-replace-table-ui"; - // - UICommands["ConnectionSearchCatalogUI"] = "connection-search-catalog-ui"; - // - UICommands["ConnectionSearchCubeUI"] = "connection-search-cube-ui"; - // - UICommands["ConnectionSelectCatalogUI"] = "connection-select-catalog-ui"; - // - UICommands["ConnectionSelectCubeUI"] = "connection-select-cube-ui"; - // - UICommands["ConnectionSelectDatabaseUI"] = "connection-select-database-ui"; - // - UICommands["ConnectionSelectStandardConnectionUI"] = "connection-select-standard-connection-ui"; - // - UICommands["ConnectionSelectStoredProcedureUI"] = "connection-select-stored-procedure-ui"; - // - UICommands["ConnectionShowEditTableDialogUI"] = "connection-show-edit-table-ui"; - // - UICommands["ConnectionShowPivotDialogUI"] = "conneciton-show-pivot-dialog-ui"; - // - UICommands["ConnectionSortCatalogUI"] = "connection-sort-catalog-ui"; - // - UICommands["ConnectionSortCubeUI"] = "connection-sort-cube-ui"; - // - UICommands["ConnectionValidateCustomSQLUI"] = "connection-validate-custom-sql-ui"; - // - UICommands["ConnectToCloudFile"] = "connect-to-cloud-file"; - // - UICommands["ConnectToDataServerSourceUI"] = "connect-data-server-datasource-ui"; - // - UICommands["ConnectionConvertToSQLUI"] = "connection-convert-to-sql-ui"; - // - UICommands["ConnectionRenameConnectionUI"] = "connection-rename-connection-ui"; - // - UICommands["ExportUnderlyingDataToCSVUI"] = "export-to-csv-with-progress-ui"; - // - UICommands["ConnectODBCUI"] = "connect-odbc-ui"; - // - UICommands["CopyCrosstab"] = "copy-crosstab"; - // - UICommands["CopyData"] = "copy-data"; - // - UICommands["CopyDrillPathFieldsUI"] = "copy-drill-path-fields-ui"; - // - UICommands["CopyFieldsDefnUI"] = "copy-fields-defn-ui"; - // - UICommands["CopyImage"] = "copy-image"; - // - UICommands["CopyImageDashboard"] = "copy-image-dashboard"; - // - UICommands["CopyImageWorksheet"] = "copy-image-worksheet"; - // - UICommands["CopyImageStory"] = "copy-image-story"; - // - UICommands["CopyWorksheetFormatting"] = "copy-formatting"; - // - UICommands["CreateCalculatedSetUI"] = "create-calculated-set-ui"; - // - UICommands["CreateCalculationUI"] = "create-calculation-ui"; - // - UICommands["CreateCombinedFieldUI"] = "create-combined-field-ui"; - // - UICommands["CreateConnectionUI"] = "create-connection-ui"; - // - UICommands["CreateDateBinUI"] = "create-Date-bin-ui"; - // - UICommands["CreateGroupSelectionUI"] = "create-group-selection-ui"; - // - UICommands["CreateGroupUI"] = "create-group-ui"; - // - UICommands["CreateIdentitySet"] = "create-user-filter"; - // - UICommands["CreateLeafConnectionUI"] = "create-leaf-connection-ui"; - // - UICommands["CreateNumericBinsUI"] = "create-numeric-bins-ui"; - // - UICommands["CreateSetUI"] = "create-set-ui"; - // - UICommands["CustomDateAggregationUI"] = "custom-date-aggregation-ui"; - // - UICommands["CutDrillPathFieldsUI"] = "cut-drill-path-fields-ui"; - // - UICommands["CutFieldsDefnUI"] = "cut-fields-defn-ui"; - // - UICommands["DeactivateDashboard"] = "deactivate-dashboard"; - // - UICommands["DeleteCookies"] = "delete-cookies"; - // - UICommands["DeleteFieldsUI"] = "delete-fields-ui"; - // - UICommands["DeleteSheetUI"] = "delete-sheet-ui"; - // - UICommands["DescribeAdhocClusterUI"] = "describe-adhoc-cluster-ui"; - // - UICommands["DescribeDrillPathUI"] = "describe-drillpath-ui"; - // - UICommands["DescribeFieldUI"] = "describe-field-ui"; - // - UICommands["DescribeForecastUI"] = "describe-forecast-ui"; - // - UICommands["DescribeSchemaDrillPathUI"] = "describe-schema-drillpath-ui"; - // - UICommands["DescribeTrendLine"] = "describe-trend-line"; - // - UICommands["DescribeTrendModel"] = "describe-trend-model"; - // - UICommands["OpenDiscoverPaneLinks"] = "open-discover-pane-links"; - // - UICommands["DismissGoToWorksheetTooltipUI"] = "dismiss-go-to-worksheet-tooltip-ui"; - // - UICommands["DownloadCopyDataSource"] = "download-copy-data-source"; - // - UICommands["DrilldownUI"] = "drilldown-ui"; - // - UICommands["DropSchemaSelOnShelfUI"] = "drop-schema-sel-on-shelf-ui"; - // - UICommands["DropUI"] = "drop-ui"; - // - UICommands["DuplicateDataSourceUI"] = "duplicate-datasource-ui"; - // - UICommands["DuplicateSheetAsCrosstab"] = "duplicate-sheet-as-crosstab"; - // - UICommands["DuplicateSheetOrCrosstabUI"] = "duplicate-sheet-or-crosstab-ui"; - // - UICommands["DuplicateSheetUI"] = "duplicate-sheet-ui"; - // - UICommands["EditAliasesUI"] = "edit-aliases-ui"; - // - UICommands["EditAnnotation"] = "edit-annotation"; - // - UICommands["EditAxisUI"] = "edit-axis-ui"; - // - UICommands["EditCalculatedSetUI"] = "edit-calculated-set-ui"; - // - UICommands["EditCalculationUI"] = "edit-calculation-ui"; - // - UICommands["EditCaptionUI"] = "edit-caption"; - // - UICommands["EditCombinedFieldUI"] = "edit-combined-field"; - // - UICommands["EditCopyFieldUI"] = "edit-copy-field-ui"; - // - UICommands["EditDataSourceUI"] = "edit-datasource-ui"; - // - UICommands["EditDataSourceFieldAliases"] = "edit-datasource-field-aliases"; - // - UICommands["EditDataSourceFiltersUI"] = "edit-datasource-filters-ui"; - // - UICommands["EditDataSourceSitePathsUI"] = "edit-datasource-site-paths-ui"; - // - UICommands["EditDateBinUI"] = "edit-date-bin-ui"; - // - UICommands["EditDefaultSortUI"] = "edit-default-sort-ui"; - // - UICommands["EditDropLinesUI"] = "edit-drop-lines-ui"; - // - UICommands["EditDropFieldUI"] = "edit-drop-field-ui"; - // - UICommands["EditDataSourceRelationshipsUI"] = "edit-datasource-relationships-ui"; - // - UICommands["EditEnumeratedSetUI"] = "edit-enumerated-set"; - // - UICommands["EditFilterQuickFilter"] = "edit-filter-quick-filter"; - // - UICommands["EditFilterUI"] = "edit-filter-ui"; - // - UICommands["EditForecastUI"] = "edit-forecast-ui"; - // - UICommands["EditGroupUI"] = "edit-group-ui"; - // - UICommands["EditGroupValue"] = "edit-group-value"; - // - UICommands["EditGroupValueLabel"] = "edit-group-value-label"; - // - UICommands["EditLegendGroupValueUI"] = "edit-group-value-legend"; - // - UICommands["EditImageUI"] = "edit-image-ui"; - // - UICommands["EditLegendMemberAliasUI"] = "edit-legend-member-alias-ui"; - // - UICommands["EditLegendTitleUI"] = "edit-legend-title-ui"; - // - UICommands["EditMarkColorUI"] = "edit-mark-color-ui"; - // - UICommands["EditMarkShapeUI"] = "edit-mark-shape-ui"; - // - UICommands["EditMemberAlias"] = "edit-member-alias"; - // - UICommands["EditMemberAliasLabel"] = "edit-member-alias-label"; - // - UICommands["EditPageTitleUI"] = "edit-page-title-ui"; - // - UICommands["EditParameterCtrlTitle"] = "edit-param-control-title"; - // - UICommands["EditPdfPageSelectionUI"] = "edit-pdf-page-selection-ui"; - // - UICommands["EditPrimaryAliasesUI"] = "edit-primary-aliases-ui"; - // - UICommands["EditReferenceLine"] = "edit-reference-line"; - // - UICommands["EditSchemaCalculationUI"] = "edit-schema-calculation-ui"; - // - UICommands["EditSchemaCalculationRangeUI"] = "edit-schema-calculation-range-ui"; - // - UICommands["EditSchemaCaptionUI"] = "edit-schema-caption-ui"; - // - UICommands["EditSchemaFieldAliasUI"] = "edit-schema-field-alias-ui"; - // - UICommands["ResetSchemaCaptionUI"] = "reset-schema-field-alias-ui"; - // - UICommands["ResetMultipleSchemaCaptionsUI"] = "reset-multiple-schema-field-alias-ui"; - // - UICommands["EditSchemaNumericBinsUI"] = "edit-schema-numeric-bins-ui"; - // - UICommands["EditSetUI"] = "edit-set-ui"; - // - UICommands["EditTitleQuickFilter"] = "edit-title-quick-filter"; - // - UICommands["EditTitleUI"] = "edit-title"; - // - UICommands["EditTooltipUI"] = "edit-tooltip"; - // - UICommands["EditTrendLinesUI"] = "edit-trend-lines-ui"; - // - UICommands["EditUserDescriptionUI"] = "edit-user-description-ui"; - // - UICommands["EditWMSMapTileServer"] = "edit-wms-map-tile-server"; - // - UICommands["EditZoneParam"] = "edit-zone-param"; - // - UICommands["EditZoneUrl"] = "edit-zone-url"; - // - UICommands["EstablishConnectionUI"] = "establish-connection-ui"; - // - UICommands["EstablishTableauServerConnectionUI"] = "establish-tableau-server-connection-ui"; - // - UICommands["ExecuteUIAutomationButton"] = "execute-ui-button-action"; - // - UICommands["ExecuteUIAutomationComboBox"] = "execute-ui-combo-box-action"; - // - UICommands["ExecuteUIAutomationGenericWidget"] = "execute-ui-generic-widget-action"; - // - UICommands["ExecuteUIAutomationLabel"] = "execute-ui-label-action"; - // - UICommands["ExecuteUIAutomationMenu"] = "execute-ui-menu-action"; - // - UICommands["ExecuteUIAutomationItemView"] = "execute-ui-item-view-action"; - // - UICommands["ExecuteUIAutomationTextBox"] = "execute-ui-text-box-action"; - // - UICommands["ExecuteUIAutomationToggleButton"] = "execute-ui-toggle-button-action"; - // - UICommands["ExecuteUIAutomationSlider"] = "execute-ui-slider-action"; - // - UICommands["ExecuteUIAutomationWindow"] = "execute-ui-window-action"; - // - UICommands["ExecuteUIAutomationWebView"] = "execute-ui-web-view-action"; - // - UICommands["ExecuteUIAutomationTab"] = "execute-ui-tab-action"; - // - UICommands["ExecuteUIAutomationTextBrowser"] = "execute-ui-text-browser-action"; - // - UICommands["ExitApplication"] = "exit-application"; - // - UICommands["ExportData"] = "export-data"; - // - UICommands["ExportDataSourceUI"] = "export-datasource-ui"; - // - UICommands["ExportPackagedWorkbook"] = "export-packaged"; - // - UICommands["ExportWorkbookSheetsUI"] = "export-workbook-sheets-ui"; - // - UICommands["ExtSvcConfigUI"] = "ext-svc-config-ui"; - // - UICommands["ExtractHistory"] = "extract-history"; - // - UICommands["ExtractPropertiesUI"] = "extract-properties-ui"; - // - UICommands["ExtractUI"] = "extract-ui"; - // - UICommands["FilterFieldLabelUI"] = "filter-field-label-ui"; - // - UICommands["FormatAnnotation"] = "format-annotation"; - // - UICommands["FormatAxisUI"] = "format-axis-ui"; - // - UICommands["FormatCaptionTitleUI"] = "format-caption-title"; - // - UICommands["FormatField"] = "format-pane"; - // - UICommands["FormatFieldLabelUI"] = "format-field-label-ui"; - // - UICommands["FormatLabel"] = "format-label"; - // - UICommands["FormatLegendsUI"] = "format-legends-ui"; - // - UICommands["FormatReferenceLine"] = "format-reference-line"; - // - UICommands["FormatUI"] = "format-ui"; - // - UICommands["FullScreen"] = "fullscreen"; - // - UICommands["GetDashboardSidePaneMode"] = "get-dashboard-sidepane-mode"; - // - UICommands["GetDebuggingInfo"] = "get-debugging-info"; - // - UICommands["GetIconPathForEncodingType"] = "get-icon-path-for-encoding-type"; - // - UICommands["GetIconPathForPrimitiveType"] = "get-icon-path-for-primitive-type"; - // - UICommands["GetTableOptionsPresModel"] = "get-table-options-pres-model"; - // - UICommands["GetWindowNameUI"] = "get-window-name"; - // - UICommands["GetWorksheetSidePaneMode"] = "get-worksheet-sidepane-mode"; - // - UICommands["GetHiddenSheets"] = "get-hidden-sheets"; - // - UICommands["GetOpenPaneMRUs"] = "get-open-pane-mrus"; - // - UICommands["GetOpenPaneSampleWorkbooks"] = "get-open-pane-sample-workbooks"; - // - UICommands["GetRetargetDataSourcePresModelUI"] = "get-retarget-datasource-pres-model-ui"; - // - UICommands["GetSchemaViewerPresModel"] = "get-schema-viewer-pres-model"; - // - UICommands["GetSelectedSheets"] = "get-selected-sheets"; - // - UICommands["GetSheetSorterThumbnail"] = "get-sheet-sorter-thumbnail"; - // - UICommands["GetSheetTabUIThumbnail"] = "get-sheet-tab-ui-thumbnail"; - // - UICommands["GetSheetTabUIText"] = "get-sheet-tab-ui-text"; - // - UICommands["GetVisibleTreeItems"] = "get-visible-tree-items"; - // - UICommands["GotoSheetRange"] = "goto"; - // - UICommands["GotoURL"] = "goto-url"; - // - UICommands["HideCaptionUI"] = "hide-caption"; - // - UICommands["HideFilmstripUI"] = "hide-filmstrip-ui"; - // - UICommands["HideTitleUI"] = "hide-title"; - // - UICommands["HideZoneUI"] = "hide-zone-ui"; - // - UICommands["HideAllSheetsUI"] = "hide-all-sheets-ui"; - // - UICommands["UnhideAllSheetsUI"] = "unhide-all-sheets-ui"; - // - UICommands["ImportLocalDataUI"] = "import-local-data-ui"; - // - UICommands["ImportMapSource"] = "import-map-source"; - // - UICommands["ImportMapSourceUI"] = "import-map-source-ui"; - // - UICommands["ImportWorkbookUI"] = "import-workbook-ui"; - // - UICommands["LoadDefaultFormattingUI"] = "load-formatting-ui"; - // - UICommands["LocateFieldUI"] = "locate-field-ui"; - // - UICommands["LogMemoryUsage"] = "log-memory-usage"; - // - UICommands["ManageLicensing"] = "manage-licensing"; - // - UICommands["ManageMapbox"] = "manage-mapbox"; - // - UICommands["ManagePublicWorkbooks"] = "manage-public"; - // - UICommands["ManageMapServices"] = "manage-map-services"; - // - UICommands["MapLayersUI"] = "map-layers-ui"; - // - UICommands["ManageWMS"] = "manage-wms"; - // - UICommands["UpgradeDataSourcesUI"] = "upgrade-datasources-ui"; - // - UICommands["UpgradeDataSourceUI"] = "upgrade-datasource-ui"; - // - UICommands["MoveRepository"] = "move-repository"; - // - UICommands["NewSchemaDrillPathUI"] = "new-schema-drill-path-ui"; - // - UICommands["NewUIDashboard"] = "new-dashboard-ui"; - // - UICommands["NewUIWorksheet"] = "new-worksheet-ui"; - // - UICommands["NewUIStoryboard"] = "new-storyboard-ui"; - // - UICommands["NewWorkbook"] = "new-workbook"; - // - UICommands["NextSheet"] = "next-sheet"; - // - UICommands["NonRangedEditReferenceLine"] = "non-ranged-edit-reference-line"; - // - UICommands["OpenBookmark"] = "open-bookmark"; - // - UICommands["OpenFromWorkgroup"] = "open-workbook-from-workgroup"; - // - UICommands["OpenMapSource"] = "open-map-source"; - // - UICommands["OpenMapSourceUI"] = "open-map-source-ui"; - // - UICommands["OpenSampleWorkbook"] = "open-sample-workbook"; - // - UICommands["OpenWorkbook"] = "open-workbook"; - // - UICommands["OpenRecentWorkbook"] = "open-recent-workbook"; - // - UICommands["OpenOtherFiles"] = "open-other-files"; - // - UICommands["OptimizeExtractUI"] = "optimize-extract-ui"; - // - UICommands["PageSetup"] = "page-setup"; - // - UICommands["Paste"] = "paste"; - // - UICommands["PasteFieldsDefnUI"] = "paste-fields-defn-ui"; - // - UICommands["PasteWorksheetFormatting"] = "paste-formatting"; - // - UICommands["PDFExport"] = "export-pdf"; - // - UICommands["PerspectivesUI"] = "perspectives-ui"; - // - UICommands["PresentationMode"] = "presentation-mode"; - // - UICommands["Print"] = "print"; - // - UICommands["PromptScript"] = "prompt-command"; - // - UICommands["PropertiesDataSourceUI"] = "properties-datasource-ui"; - // - UICommands["PublishDatasourceToWorkgroup"] = "publish-datasource-to-workgroup"; - // - UICommands["PublishDatasourceToWorkgroupFromData"] = "publish-datasource-to-workgroup-from-data"; - // - UICommands["PublishDatasourceToWorkgroupRange"] = "publish-datasource-to-workgroup-range"; - // - UICommands["PublishWorkbookToWorkgroup"] = "publish-workbook-to-workgroup"; - // - UICommands["PublishDatasourceToWorkgroupFromWorkbookData"] = "publish-datasource-to-workgroup-from-workbook-data"; - // - UICommands["PromptForDataSourceFileUI"] = "prompt-for-datasource-file-ui"; - // - UICommands["PromptUnknownWDCUrlUI"] = "prompt-unknown-wdc-url-ui"; - // - UICommands["QueryDataSourceUI"] = "query-datasource-ui"; - // - UICommands["QuickFilterFieldLabelUI"] = "quick-filter-field-label-ui"; - // - UICommands["QuickTableCalcUI"] = "quick-table-calc-ui"; - // - UICommands["ReconnectMapSourceUI"] = "reconnect-map-source-ui"; - // - UICommands["RecordPerformance"] = "record-perf"; - // - UICommands["RefreshAllExtractsUI"] = "refresh-all-extracts-ui"; - // - UICommands["RefreshAllThumbnailsUI"] = "refresh-all-thumbnails"; - // - UICommands["RefreshAutoExtractUI"] = "refresh-auto-extract-ui"; - // - UICommands["RefreshDataSourceUI"] = "refresh-datasource-ui"; - // - UICommands["RefreshExtractUI"] = "refresh-extract-ui"; - // - UICommands["RefreshFromSourceUI"] = "refresh-from-source-ui"; - // - UICommands["RefreshLocalDataUI"] = "refresh-local-data-ui"; - // - UICommands["RefreshThumbnailUI"] = "refresh-thumbnail"; - // - UICommands["ReleaseMemory"] = "release-memory"; - // - UICommands["RemoveAnnotation"] = "remove-annotation"; - // - UICommands["RemoveExtractUI"] = "remove-extract-ui"; - // - UICommands["RemoveMRUItem"] = "remove-mru"; - // - UICommands["RemoveSavedDataSourceUI"] = "remove-saved-datasource"; - // - UICommands["RemoveSheetFromDashboardUI"] = "remove-sheet-from-dashboard-ui"; - // - UICommands["RemoveTableUI"] = "remove-table-ui"; - // - UICommands["RenameDataSourceUI"] = "rename-datasource-ui"; - // - UICommands["RenameSchemaFieldFolderUI"] = "rename-field-folder-ui"; - // - UICommands["RenameSchemaDrillPathUI"] = "rename-schema-drillpath-ui"; - // - UICommands["RenameSheetUI"] = "rename-sheet-ui"; - // - UICommands["ReorderSheetsUI"] = "reorder-sheets-ui"; - // - UICommands["ReplaceDataSourceWithDataServerDataSourceUI"] = "replace-datasource-with-data-server-datasource-ui"; - // - UICommands["ReplaceFieldUI"] = "replace-field-ui"; - // - UICommands["ResetCaptionUI"] = "reset-caption-ui"; - // - UICommands["ResetCards"] = "reset-cards"; - // - UICommands["ResetLocalDataUI"] = "remove-local-data-ui"; - // - UICommands["ResetMessages"] = "reset-messages"; - // - UICommands["StartOnlineSyncClient"] = "start-online-sync-client"; - // - UICommands["ResetTitleUI"] = "reset-title-ui"; - // - UICommands["ResetToDefaultsMapCard"] = "reset-map-to-defaults"; - // - UICommands["ResetWorkbook"] = "revert-workbook-ui"; - // - UICommands["RetargetDataSource"] = "retarget-datasource"; - // - UICommands["RetargetDataSourceUI"] = "retarget-datasource-ui"; - // - UICommands["SaveAsWorkbook"] = "save-as-workbook"; - // - UICommands["SaveBookmark"] = "save-bookmark"; - // - UICommands["SaveDebuggingWorkbook"] = "save-debugging-workbook"; - // - UICommands["SaveDefaultFormattingUI"] = "save-formatting-ui"; - // - UICommands["SaveWorkbook"] = "save-workbook"; - // - UICommands["SchemaDefaultMemberUI"] = "schema-default-member-ui"; - // - UICommands["ScrollSheet"] = "scroll-sheet"; - // - UICommands["SetAccountsDimension"] = "set-accounts-dimension"; - // - UICommands["SetActiveConnectionUI"] = "set-active-connection-ui"; - // - UICommands["SetAnalyticsDropTargetVisibility"] = "set-analytics-drop-target-visibility"; - // - UICommands["SetDashboardSidePaneMode"] = "set-dashboard-sidepane-mode"; - // - UICommands["SetDefaultDateFormatUI"] = "set-default-date-format-ui"; - // - UICommands["SetDefaultLocationUI"] = "set-default-location-ui"; - // - UICommands["SetDefaultMapSourceUI"] = "set-default-mapsource-ui"; - // - UICommands["SetDefaultTextFormatUI"] = "set-default-text-format-ui"; - // - UICommands["SetDefaultUtilityMember"] = "set-default-utility-member"; - // - UICommands["SetFreeFormDashboardUI"] = "set-free-form-dashboard-ui"; - // - UICommands["SetFilterSharedUI"] = "set-filter-shared-ui"; - // - UICommands["SetKey"] = "set-key"; - // - UICommands["SetProductAutoUpdate"] = "set-auto-update"; - // - UICommands["SetQueryFailure"] = "set-query-failure"; - // - UICommands["SetRendering"] = "set-rendering"; - // - UICommands["SetRuntimeImmediateMode"] = "set-runtime-immediate-mode"; - // - UICommands["SetUILanguage"] = "set-ui-language"; - // - UICommands["SetWorkbookLocaleUI"] = "set-workbook-locale-ui"; - // - UICommands["SetWorksheetSidePaneMode"] = "set-worksheet-sidepane-mode"; - // - UICommands["SetZoneFixedSizeUI"] = "set-zone-fixed-size-ui"; - // - UICommands["SetsInOutUI"] = "show-in-out-sets"; - // - UICommands["ShapeLegendEditUI"] = "shape-legend-edit-ui"; - // - UICommands["ShowCloudFileOAuthPromptAndSelectionUI"] = "show-cloudfile-oauth-prompt-and-selection-ui"; - // - UICommands["ShowConnectionAuthUI"] = "show-connection-auth-ui"; - // - UICommands["ShowConnectionAuthAndEstablishConnectionUI"] = "show-connection-auth-and-establish-connection-ui"; - // - UICommands["ShowConnectTab"] = "show-connect-tab"; - // - UICommands["ShowCustomSplitDialogUI"] = "show-custom-split-dialog-ui"; - // - UICommands["ShowDocument"] = "document"; - // - UICommands["ShowFeatureFlagDialog"] = "show-feature-flag-dialog"; - // - UICommands["ShowFieldFormatUI"] = "show-field-format-ui"; - // - UICommands["ShowFieldInSchemaUI"] = "show-field-in-schema"; - // - UICommands["ShowFilmstripUI"] = "show-filmstrip-ui"; - // - UICommands["ShowGoogleSheetsSelectionUI"] = "show-google-sheets-selection-ui"; - // - UICommands["ShowHelp"] = "show-help"; - // - UICommands["ShowHideDashboardSheetUI"] = "show-hide-dashboard-sheet-ui"; - // - UICommands["ShowHideStoryboardSheetUI"] = "show-hide-storyboard-sheet-ui"; - // - UICommands["ShowGraphicsAPI"] = "show-graphics-api-command"; - // - UICommands["ShowMapOptionsDialog"] = "show-map-options-dialog"; - // - UICommands["ShowMeasuresUI"] = "show-measures-ui"; - // - UICommands["ShowMeCycleUI"] = "show-me-cycle-ui"; - // - UICommands["ShowMeHideUI"] = "show-me-hide-ui"; - // - UICommands["ShowMembersUI"] = "show-members-ui"; - // - UICommands["ShowMeToggleUI"] = "show-me-toggle-ui"; - // - UICommands["ShowOAuthPromptUI"] = "show-oauth-prompt-ui"; - // - UICommands["ShowParameterControl"] = "show-parameter-control"; - // - UICommands["ShowPublicStatusDialog"] = "show-public-status-dialog"; - // - UICommands["ShowPublicQuotaExceededDialog"] = "show-public-quota-exceeded-dialog"; - // - UICommands["ShowPublishDatasourceToWorkgroupDialog"] = "show-publish-datasource-to-workgroup-dialog"; - // - UICommands["ShowQueryBandingAndInitialSQLDialogUI"] = "show-query-banding-and-initial-sql-dialog-ui"; - // - UICommands["ShowQuickFilter"] = "show-quickfilter"; - // - UICommands["ShowQuickFilterUI"] = "show-quickfilter-ui"; - // - UICommands["ShowRuntimeIndicator"] = "show-runtime-indicator"; - // - UICommands["ShowSheetSorter"] = "sheet-sorter"; - // - UICommands["ShowTableOptionsDialog"] = "show-table-options-dialog"; - // - UICommands["ShowWebDataConnectorUI"] = "show-web-data-connector-ui"; - // - UICommands["ShowWidgetSandboxUI"] = "show-widget-sandbox-ui"; - // - UICommands["SizeLegendEditUI"] = "size-legend-edit-ui"; - // - UICommands["SleepUI"] = "sleep-ui"; - // - UICommands["SortAscendingFieldLabelUI"] = "sort-ascending-field-label-ui"; - // - UICommands["SortDescendingFieldLabelUI"] = "sort-descending-field-label-ui"; - // - UICommands["SortFieldLabelUI"] = "sort-field-label-ui"; - // - UICommands["SortUI"] = "sort-ui"; - // - UICommands["SplitFieldUI"] = "split-field-ui"; - // - UICommands["StackMarksUI"] = "stack-marks-ui"; - // - UICommands["StartFileConnectionUI"] = "start-file-connection-ui"; - // - UICommands["StartPillEditUI"] = "start-pill-edit-ui"; - // - UICommands["SwitchToConnectTab"] = "switch-to-connect-tab"; - // - UICommands["SwitchToDocument"] = "switch-to-document"; - // - UICommands["SwitchToSheetSorter"] = "switch-to-sheet-sorter"; - // - UICommands["TableCalcAddressUI"] = "table-calc-address-ui"; - // - UICommands["TableCalcIgnoreUI"] = "table-calc-ignore-ui"; - // - UICommands["TableCalcOrderingUI"] = "table-calc-ordering-ui"; - // - UICommands["TableCalcUI"] = "table-calc-ui"; - // - UICommands["ToggleConnectPaneUI"] = "toggle-connect-pane"; - // - UICommands["ToggleFilmstripUI"] = "toggle-filmstrip-ui"; - // - UICommands["ToggleINDJoinSemanticsUI"] = "toggle-ind-join-semantics-ui"; - // - UICommands["TogglePinMRUItem"] = "toggle-pin-mru"; - // - UICommands["ToggleReferentialIntegrityUI"] = "toggle-referential-integrity-ui"; - // - UICommands["ToggleStartPageUI"] = "toggle-start-page"; - // - UICommands["TrackMemory"] = "track-memory"; - // - UICommands["TrendLinesFlagUI"] = "trend-lines-ui"; - // - UICommands["UpdateDefaultsMapCard"] = "update-map-defaults"; - // - UICommands["UpgradeExtractsUI"] = "upgrade-extracts-ui"; - // - UICommands["UpgradeExtractUI"] = "upgrade-extract-ui"; - // - UICommands["UseExtractUI"] = "use-extract-ui"; - // - UICommands["UseMemory"] = "use-memory"; - // - UICommands["UtilityDimensionUI"] = "utility-dimension-ui"; - // - UICommands["ValidateExtractCredentialsUI"] = "validate-extract-credentials-ui"; - // - UICommands["ViewCard"] = "view-card"; - // - UICommands["ViewTitleCard"] = "view-title-card"; - // - UICommands["ViewSummaryCard"] = "view-summary-card"; - // - UICommands["ViewCaptionCard"] = "view-caption-card"; - // - UICommands["ViewColumnsShelf"] = "view-columns-shelf"; - // - UICommands["ViewRowsShelf"] = "view-rows-shelf"; - // - UICommands["ViewPagesShelf"] = "view-pages-shelf"; - // - UICommands["ViewFiltersShelf"] = "view-filters-shelf"; - // - UICommands["ViewMeasuresShelf"] = "view-measures-shelf"; - // - UICommands["ViewMarksShelf"] = "view-marks-shelf"; - // - UICommands["ViewCurrentPageCard"] = "view-current-page-card"; - // - UICommands["ViewData"] = "view-data"; - // - UICommands["ViewSQLDataUI"] = "view-sql-data-ui"; - // - UICommands["ViewDataSourceData"] = "view-datasource-data"; - // - UICommands["ViewLegend"] = "view-legend"; - // - UICommands["ViewSidePane"] = "view-side-pane"; - // - UICommands["ViewStatusBar"] = "view-statusbar"; - // - UICommands["ViewSummaryDetail"] = "view-summary-detail"; - // - UICommands["ViewTableData"] = "view-table-data"; - // - UICommands["ViewToolBar"] = "view-toolbar"; - // - UICommands["WebViewEnableJavascript"] = "webview-enable-javascript"; - // - UICommands["WebViewEnablePlugins"] = "webview-enable-plugins"; - // - UICommands["WebViewBlockPopups"] = "webview-block-popups"; - // - UICommands["WebViewEnableURLHoverActions"] = "webview-enable-url-hover-actions"; - // - UICommands["WorkgroupChangeDataserver"] = "workgroup-change-dataserver"; - // - UICommands["WorkgroupChangeServer"] = "workgroup-change-server"; - // - UICommands["WorkgroupChangeUser"] = "workgroup-change-user"; - // - UICommands["WorkgroupRemoveLastServer"] = "workgroup-remove-last-server"; - })(UICommands = exports.UICommands || (exports.UICommands = {})); - (function (DocCommands) { - // Gets the axis options . - DocCommands["GetAxisOptions"] = "get-axis-options"; - // Reset the axis options . - DocCommands["ResetAxisOptions"] = "reset-axis-options"; - // Show axis edit dialog - DocCommands["ShowEditAxisDialog"] = "show-edit-axis-dialog"; - // Sets the axis direction - DocCommands["SetAxisReversed"] = "set-axis-reversed"; - // Sets the axis scale type - DocCommands["SetAxisScaleType"] = "set-axis-scale-type"; - // Sets the main title of a quantitative axis - DocCommands["SetAxisTitle"] = "set-axis-title"; - // Sets the subtitle of a quantitative axis - DocCommands["SetAxisSubtitle"] = "set-axis-subtitle"; - // Sets whether we should use the automatic subtitle for a quantitative axis - DocCommands["SetAxisUseAutomaticSubtitle"] = "set-axis-use-automatic-subtitle"; - // Sets the axis range type of a quantitative axis - DocCommands["SetAxisExtentStartType"] = "set-axis-extent-start-type"; - // Sets the axis range type of a quantitative axis - DocCommands["SetAxisExtentEndType"] = "set-axis-extent-end-type"; - // Sets the axis range type of a quantitative axis - DocCommands["SetBothAxisExtentsType"] = "set-both-axis-extents-type"; - // Sets whether or not to force-include zero on a quantitative axis - DocCommands["SetAxisIncludeZero"] = "set-axis-include-zero"; - // Sets new min/max range endings for axis - DocCommands["SetAxisRangeEnd"] = "set-axis-range-end"; - // Sets new min/max range endings for axis - DocCommands["SetAxisRangeStart"] = "set-axis-range-start"; - // Synchronize dual axes on a folded quantitative axis - DocCommands["SetAxisFoldState"] = "set-axis-fold-state"; - // Set the major tick mark state - DocCommands["SetMajorTickMarkState"] = "set-major-tick-mark-state"; - // Set the minor tick mark state - DocCommands["SetMinorTickMarkState"] = "set-minor-tick-mark-state"; - // Set the major tick mark origin - DocCommands["SetMajorTickMarkOrigin"] = "set-major-tick-mark-origin"; - // Set the minor tick mark origin - DocCommands["SetMinorTickMarkOrigin"] = "set-minor-tick-mark-origin"; - // Set the major tick mark spacing - DocCommands["SetMajorTickMarkSpacing"] = "set-major-tick-mark-spacing"; - // Set the minor tick mark spacing - DocCommands["SetMinorTickMarkSpacing"] = "set-minor-tick-mark-spacing"; - // Set the major tick mark units - DocCommands["SetMajorTickMarkUnits"] = "set-major-tick-mark-units"; - // Set the minor tick mark units - DocCommands["SetMinorTickMarkUnits"] = "set-minor-tick-mark-units"; - // - DocCommands["BoundingBoxPan"] = "bounding-box-pan"; - // - DocCommands["OnToggleAxisRanges"] = "on-toggle-axis-ranges"; - // - DocCommands["PanePan"] = "pane-pan"; - // - DocCommands["PaneZoom"] = "pane-zoom"; - // - DocCommands["PaneZoomFactor"] = "pane-zoom-factor"; - // - DocCommands["PaneZoomPan"] = "pane-zoom-pan"; - // - DocCommands["ReorderFoldedAxes"] = "reorder-folded-axes"; - // - DocCommands["ResetAxisRange"] = "reset-axis-range"; - // - DocCommands["SelectAxisTuples"] = "select-axis-tuples"; - // - DocCommands["SwapReferenceLineFields"] = "swap-reference-line-fields"; - // - DocCommands["SynchronizeAxis"] = "synchronize-axis"; - // - DocCommands["ToggleDualAxis"] = "toggle-dual-axis"; - // - DocCommands["ZoomLevel"] = "zoom-level"; - })(DocCommands = exports.DocCommands || (exports.DocCommands = {})); - //# sourceMappingURL=CommandIds.js.map - -/***/ }, -/* 13 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Registry which contains mappings from an Api VerbId to a pres-layer command. - * This includes the parameters and return values of the command as well - * - * @export - * @class CommandMappingRegistry - */ - var CommandMappingRegistry = (function () { - /** - * Creates an instance of CommandMappingRegistry. - * @memberof CommandMappingRegistry - */ - function CommandMappingRegistry() { - this._commands = {}; - } - /** - * Adds a new command to the registry - * - * @param {CommandRegistration} command - * @memberof CommandMappingRegistry - */ - CommandMappingRegistry.prototype.addCommand = function (command) { - this._commands[command.apiVerbId] = command; - }; - /** - * Whether or not this registry contains a definition for this ApiVerbId - * - * @param {ApiVerbId} apiVerbId - * @returns {boolean} - * @memberof CommandMappingRegistry - */ - CommandMappingRegistry.prototype.hasCommand = function (apiVerbId) { - if (!this._commands.hasOwnProperty(apiVerbId)) { - return false; - } - if (!this._commands[apiVerbId]) { - return false; - } - return true; - }; - /** - * Gets the command registration for this command id or throws if it doesn't exist - * - * @param {ApiVerbId} apiVerbId - * @returns {CommandRegistration} - * @memberof CommandMappingRegistry - */ - CommandMappingRegistry.prototype.getCommand = function (apiVerbId) { - if (!this.hasCommand(apiVerbId)) { - throw new Error('Unknown ApiVerb: ' + apiVerbId); - } - return this._commands[apiVerbId]; - }; - return CommandMappingRegistry; - }()); - exports.CommandMappingRegistry = CommandMappingRegistry; - //# sourceMappingURL=CommandMappingRegistry.js.map - -/***/ }, -/* 14 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(4); - /** - * This is an enum used only internally by the api-core project. - * This enum represents the difference namespaces available for commands. - */ - var CommandNamespace; - (function (CommandNamespace) { - CommandNamespace["TabDoc"] = "tabdoc"; - CommandNamespace["TabUI"] = "tabui"; - })(CommandNamespace = exports.CommandNamespace || (exports.CommandNamespace = {})); - /** - * Represents an input or output paramter for a command. - * - * @export - * @class CommandParameter - */ - var CommandParameter = (function () { - /** - * Creates an instance of CommandParameter. - * @param {ApiParameterId} apiId - * @param {PresLayerParameterId} presLayerId - * @param {boolean} [isOptional] - * @memberof CommandParameter - */ - function CommandParameter(_apiId, _presLayerId, _isOptional) { - this._apiId = _apiId; - this._presLayerId = _presLayerId; - this._isOptional = _isOptional; - } - Object.defineProperty(CommandParameter.prototype, "apiId", { - /** - * The Id of the Api Parameter - * - * @readonly - * @type {ApiParameterId} - * @memberof CommandParameter - */ - get: function () { - return this._apiId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CommandParameter.prototype, "presLayerId", { - /** - * The Id of the Pres Layer Parameter - * - * @readonly - * @type {PresLayerParameterId} - * @memberof CommandParameter - */ - get: function () { - return this._presLayerId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CommandParameter.prototype, "isOptional", { - /** - * Whether or not this is an optional parameter - * - * @readonly - * @type {boolean} - * @memberof CommandParameter - */ - get: function () { - return !!this._isOptional; - }, - enumerable: true, - configurable: true - }); - return CommandParameter; - }()); - exports.CommandParameter = CommandParameter; - /** - * Represents a the complete mapping of an ApiCommand to its corresponding pres-layer command - * and the conversion of the output value as well - * - * @export - * @class CommandRegistration - */ - var CommandRegistration = (function () { - function CommandRegistration(_apiVerbId, _commandId, _inputParameters, _outputParameter, _namespace) { - this._apiVerbId = _apiVerbId; - this._commandId = _commandId; - this._inputParameters = _inputParameters; - this._outputParameter = _outputParameter; - this._namespace = _namespace; - } - Object.defineProperty(CommandRegistration.prototype, "apiVerbId", { - get: function () { - return this._apiVerbId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CommandRegistration.prototype, "commandId", { - get: function () { - return this._commandId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CommandRegistration.prototype, "inputs", { - get: function () { - return this._inputParameters || new Array(); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CommandRegistration.prototype, "output", { - get: function () { - return this._outputParameter; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CommandRegistration.prototype, "namespace", { - get: function () { - return this._namespace || CommandNamespace.TabDoc; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CommandRegistration.prototype, "needsAddInLocator", { - /** - * Whether or not this command requires an add-in locator to be injected into it - * - * @readonly - * @type {boolean} - * @memberof CommandRegistration - */ - get: function () { - for (var _i = 0, _a = this.inputs; _i < _a.length; _i++) { - var input = _a[_i]; - if (input.apiId === api_internal_contract_1.ParameterId.AddInLocator) { - return true; - } - } - return false; - }, - enumerable: true, - configurable: true - }); - /** - * Creates a dictionary of pres-layer parameters from the input dictionary - * of api parameters. - * - * @param {ExecuteParameters} parameters - The parameters to convert - * @param {ApiToPresLayerMappingRegistry} apiToPresLayer - mapping to determine the conversion - * @returns {{ [paramId: string]: object; }} - parameters to send to the pres-layer - * @memberof CommandRegistration - */ - CommandRegistration.prototype.createParams = function (parameters, apiToPresLayer) { - var result = {}; - for (var _i = 0, _a = this.inputs; _i < _a.length; _i++) { - var inputParam = _a[_i]; - // First make sure the parameter is there or that it's optional - if (!parameters.hasOwnProperty(inputParam.apiId)) { - if (inputParam.isOptional) { - continue; - } - else { - throw new Error('Missing parameter for command: ' + inputParam.apiId); - } - } - // Find the conversion function for this parameter - var conversionFn = apiToPresLayer.get(inputParam.apiId, inputParam.presLayerId); - // Convert the pres model and insert it into our results object - result[inputParam.presLayerId] = conversionFn(parameters[inputParam.apiId]); - } - return result; - }; - /** - * Processes the result received back after executing a pres-layer command - * - * @param {{ [docParamId: string]: object; }} resultParameters - * @param {PresLayerToApiMappingRegistry} presLayerToApi - * @returns {Model} - * @memberof CommandRegistration - */ - CommandRegistration.prototype.ProcessResult = function (resultParameters, presLayerToApi) { - // TODO: Add error handling - if (this.output === undefined) { - var noOutputModel = {}; - return noOutputModel; - } - if (!resultParameters || !resultParameters.hasOwnProperty(this.output.presLayerId)) { - // if the output result is marked as optional, we don't consider this an error situation and just return an empty model - if (this.output.isOptional) { - return {}; - } - throw new Error('Missing expected result parameter: ' + this.output.presLayerId); - } - var conversionFn = presLayerToApi.get(this.output.presLayerId, this.output.apiId); - return conversionFn(resultParameters[this.output.presLayerId]); - }; - return CommandRegistration; - }()); - exports.CommandRegistration = CommandRegistration; - //# sourceMappingURL=CommandRegistration.js.map - -/***/ }, -/* 15 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(4); - var Events_1 = __webpack_require__(16); - var PresLayerToApiConverter_1 = __webpack_require__(17); - /** - * Simple wrapper which holds a mapping to go from a pres-layer event to an API event - */ - var EventMappingRegistration = (function () { - function EventMappingRegistration(_presLayerId, _apiId, _converter) { - this._presLayerId = _presLayerId; - this._apiId = _apiId; - this._converter = _converter; - } - Object.defineProperty(EventMappingRegistration.prototype, "presLayerId", { - get: function () { - return this._presLayerId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventMappingRegistration.prototype, "apiId", { - get: function () { - return this._apiId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(EventMappingRegistration.prototype, "converter", { - get: function () { - return this._converter; - }, - enumerable: true, - configurable: true - }); - return EventMappingRegistration; - }()); - exports.EventMappingRegistration = EventMappingRegistration; - var EventMappingRegistryFactory = (function () { - function EventMappingRegistryFactory() { - } - /** - * Creates and populates a new EventMappingRegistry for the specific version number requested - * - * @param {VersionNumber} versionNumber - * @returns {EventMappingRegistry} - */ - EventMappingRegistryFactory.createEventMappingRegistry = function (versionNumber) { - var registry = {}; - registry[Events_1.NotificationId.SelectionChanged] = new EventMappingRegistration(Events_1.NotificationId.SelectionChanged, api_internal_contract_1.NotificationId.SelectedMarksChanged, PresLayerToApiConverter_1.PresLayerToApiConverter.convertVisualId); - registry[Events_1.NotificationId.ParameterChanged] = new EventMappingRegistration(Events_1.NotificationId.ParameterChanged, api_internal_contract_1.NotificationId.ParameterChanged, PresLayerToApiConverter_1.PresLayerToApiConverter.convertFieldCaptionPair); - registry[Events_1.NotificationId.FilterChanged] = new EventMappingRegistration(Events_1.NotificationId.FilterChanged, api_internal_contract_1.NotificationId.FilterChanged, PresLayerToApiConverter_1.PresLayerToApiConverter.convertFilterEvent); - return registry; - }; - return EventMappingRegistryFactory; - }()); - exports.EventMappingRegistryFactory = EventMappingRegistryFactory; - //# sourceMappingURL=EventMappingRegistryFactory.js.map - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - "use strict"; - /* tslint:disable */ - // ----------------------------------------------------------------------------- - // - // This file is the copyrighted property of Tableau Software and is protected - // by registered patents and other applicable U.S. and international laws and - // regulations. - // - // Unlicensed use of the contents of this file is prohibited. Please refer to - // the NOTICES.txt file for further details. - // - // ----------------------------------------------------------------------------- - // WARNING: Computer generated file. Do not hand modify. - // DEPENDS ON: ['../typescript/js-api/api-core/node_modules/@tableau/preslayer-codegen-typescript/templates/events-ts.template', u'../typescript/js-api/api-core/temp-pres-layer/all-events.data'] - Object.defineProperty(exports, "__esModule", { value: true }); - // Events you can register to receive presentation models - var NotificationId; - (function (NotificationId) { - // Triggered when aliases are to be edited. Used to launch a dialog. - NotificationId["EditAliasesDialogNotification"] = "edit-aliases-dialog-notification-event"; - // for the calculation dialog - NotificationId["CalculationDialog"] = "calculation-dialog-event"; - // update for an adhoc calc in a type in pill - NotificationId["TypeInPill"] = "type-in-pill-event"; - // results of a validation command - NotificationId["CommandValidation"] = "command-validation-event"; - // event for the groups dialog - NotificationId["UpdateCategoricalBinEditDialog"] = "update-categorical-bin-edit-dialog-event"; - // for the categorical color dialog - NotificationId["CategoricalColor"] = "categorical-color-event"; - // update the web categorical color dialog - NotificationId["WebCategoricalColorDialog"] = "web-categorical-color-dialog-event"; - // user invoked action which requires a Data Alert Dialog - NotificationId["DataAlertDialog"] = "data-alert-dialog-event"; - // event to select field(s) in the data schema - NotificationId["DataSchemaSelection"] = "data-schema-selection-event"; - // event for when the data source being edited is updated - NotificationId["UpdateDataPreparation"] = "update-data-preparation-event"; - // event for when the data source data is updated - NotificationId["UpdateDataSourceData"] = "update-data-source-data-event"; - // event for when a client should request new data source or data source data pres models - NotificationId["DataSourceUpdateNeeded"] = "data-source-update-needed-event"; - // event for getting the pres model to update file join table properties - NotificationId["TextFileProperties"] = "text-file-properties-event"; - // event for the detailed error dialog - NotificationId["UpdateDetailedErrorDialog"] = "update-detailed-error-dialog-event"; - // notify changes to the state of a filter's relational model - NotificationId["FilterRelationalStateChanged"] = "filter-relational-state-changed-event"; - // notify changes to the size/selection count of a relational domain - NotificationId["FilterRelationalDomainChanged"] = "filter-relational-domain-changed-event"; - // notify when filter cache was requested but not found - NotificationId["FilterCacheNotFound"] = "filter-cache-not-found-event"; - // Hierarchy Select model observable notification. - NotificationId["HierarchyNotification"] = "hierarchy-notification-event"; - // Hierarchy selection change notifications. - NotificationId["HierarchySelection"] = "hierarchy-selection-event"; - // event for the map options dialog - NotificationId["MapOptionsDialog"] = "map-options-dialog-event"; - // notify the Page UI(hide/show states, layout) needs to be updated - NotificationId["UpdatePageUINotification"] = "update-page-uinotification-event"; - // notify to the SceneView has been drawn. - NotificationId["SceneViewDrawnNotification"] = "scene-view-drawn-notification-event"; - // The AnimationControlChange event fires when the user clicks an animation playback button: forward, stop, slow, fast, etc. - NotificationId["AnimationControlChange"] = "animation-control-change-event"; - // notify the sheet has been renamed - NotificationId["RenameSheetNotification"] = "rename-sheet-notification-event"; - // update the web quantitative color dialog - NotificationId["WebQuantitativeColorDialog"] = "web-quantitative-color-dialog-event"; - // update the axis edit dialog - NotificationId["UpdateEditAxisDialog"] = "update-edit-axis-dialog-event"; - // event for the reference line dialog, which is only valid during web authoring - NotificationId["UpdateRefLineDialog"] = "update-ref-line-dialog-event"; - // event to trigger other reference line dialogs to close - NotificationId["RefLineDialogOpening"] = "ref-line-dialog-opening-event"; - // event for the close data source error dialog, which is only valid during web authoring - NotificationId["CloseDataSourceErrorDialog"] = "close-data-source-error-dialog-event"; - // update the web Save Datasource dialog - NotificationId["WebSaveDatasourceDialog"] = "web-save-datasource-dialog-event"; - // warning resulting from WarningMsg - NotificationId["WarningMessage"] = "warning-message-event"; - // event for the table calc dialog, on web, this is only valid during web authoring - NotificationId["TableCalcDialog"] = "table-calc-dialog-event"; - // user invoked action which requires Table Calc Dialog - NotificationId["TableCalcActivateDialog"] = "table-calc-activate-dialog-event"; - // event for the trend line dialog - NotificationId["UpdateTrendLineEditDialog"] = "update-trend-line-edit-dialog-event"; - // The table page cache has been refreshed; pages must be reloaded from the cache. - NotificationId["PageCacheRefresh"] = "page-cache-refresh-event"; - // The table page cache has expired and all resources have been released. - NotificationId["PageCacheExpired"] = "page-cache-expired-event"; - // All pages, identified by row/col, in the provided list have expired and should be reloaded. - NotificationId["PageCachePagesExpired"] = "page-cache-pages-expired-event"; - // All pages betweem the range (inclusive) in the provided list have expired and should be reloaded. - NotificationId["PageCachePageRangeExpired"] = "page-cache-page-range-expired-event"; - // Update for the rich text editor dialog - NotificationId["RichTextEditorDialog"] = "rich-text-editor-dialog-event"; - // Triggered when the user wants to reload an add-in instance. - NotificationId["ReloadAddIn"] = "reload-add-in-event"; - // Triggered when the selected marks have changed. - NotificationId["SelectionChanged"] = "selection-changed-event"; - // Triggered when the value of a parameter has changed. Emits the name and caption of the parameter - NotificationId["ParameterChanged"] = "parameter-changed-event"; - // Triggered when the filters have changed. - NotificationId["FilterChanged"] = "filter-changed-event"; - // notification to launch the hybrid UI showcase - NotificationId["LaunchHybridUIShowcase"] = "launch-hybrid-uishowcase-event"; - // notification of new echoed text for HybridUI showcase demo - NotificationId["HybridUIShowcaseEcho"] = "hybrid-uishowcase-echo-event"; - // event for the bin dialog - NotificationId["UpdateNumericBinEditDialog"] = "update-numeric-bin-edit-dialog-event"; - // a test event with a pres model - NotificationId["TestEventWithModel"] = "test-event-with-model-event"; - // a test event without a pres model - NotificationId["TestEventWithoutModel"] = "test-event-without-model-event"; - })(NotificationId = exports.NotificationId || (exports.NotificationId = {})); - //# sourceMappingURL=Events.js.map - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Api = __webpack_require__(4); - var api_utils_1 = __webpack_require__(18); - var EnumMappings_1 = __webpack_require__(21); - /** - * Class containing helper methods for converting from PresLayerPresModels to their ApiPresModels equivalents - * - * @export - * @class PresLayerToApiConverter - */ - var PresLayerToApiConverter = (function () { - function PresLayerToApiConverter() { - } - PresLayerToApiConverter.convertSheetPath = function (plSheetPath) { - var result = { - sheetName: plSheetPath.sheetName, - isDashboard: plSheetPath.isDashboard, - storyboard: plSheetPath.storyboard, - flipboardZoneID: plSheetPath.flipboardZoneId, - storyPointID: plSheetPath.storyPointId, - }; - return result; - }; - PresLayerToApiConverter.convertVisualId = function (plVisualId) { - var result = { - worksheet: plVisualId.worksheet, - dashboard: plVisualId.dashboard, - storyboard: plVisualId.storyboard, - flipboardZoneID: plVisualId.flipboardZoneId, - storyPointID: plVisualId.storyPointId, - }; - return result; - }; - PresLayerToApiConverter.convertAddInLocator = function (plAddInLocator) { - var dashboardPath = undefined; - if (plAddInLocator.sheetPath) { - dashboardPath = PresLayerToApiConverter.convertSheetPath(plAddInLocator.sheetPath); - } - var result = { - instanceId: plAddInLocator.addInInstanceId, - dashboardPath: dashboardPath - }; - return result; - }; - PresLayerToApiConverter.convertDashboardInZones = function (plDashboard) { - var result = new Array(); - for (var _i = 0, _a = Object.keys(plDashboard.zones); _i < _a.length; _i++) { - var zoneKey = _a[_i]; - var zone = plDashboard.zones[zoneKey]; - var apiZone = { - name: zone.zoneCommon.name, - zoneId: zone.zoneId, - zoneType: EnumMappings_1.PresLayerToApiEnumMappings.zoneType.convert(zone.zoneCommon.zoneType), - height: zone.zoneCommon.h, - width: zone.zoneCommon.w, - x: zone.zoneCommon.x, - y: zone.zoneCommon.y - }; - result.push(apiZone); - } - return result; - }; - PresLayerToApiConverter.convertDashboardInfo = function (plDashboardInfo) { - var result = { - zones: PresLayerToApiConverter.convertDashboardInZones(plDashboardInfo.dashboardPresModel), - name: plDashboardInfo.dashboardPresModel.sheetPath.sheetName, - addInZoneId: plDashboardInfo.zoneId, - size: plDashboardInfo.dashboardPresModel.viewportSize - }; - return result; - }; - PresLayerToApiConverter.convertAddInInstance = function (plAddInInstance) { - var result = { - url: plAddInInstance.addInRegistrationPresModel.url, - locator: PresLayerToApiConverter.convertAddInLocator(plAddInInstance.addInLocatorPresModel) - }; - return result; - }; - PresLayerToApiConverter.convertAddInEnivrionment = function (plAddInEnvironment) { - var result = { - addInContext: EnumMappings_1.PresLayerToApiEnumMappings.addInContext.convert(plAddInEnvironment.addInContext), - addInMode: EnumMappings_1.PresLayerToApiEnumMappings.addInMode.convert(plAddInEnvironment.addInMode), - addInLocale: plAddInEnvironment.addInLocale, - addInLanguage: plAddInEnvironment.addInLanguage, - tableauVersion: plAddInEnvironment.tableauVersion, - operatingSystem: plAddInEnvironment.operatingSystem, - apiVersion: plAddInEnvironment.apiVersion - }; - return result; - }; - PresLayerToApiConverter.convertAddInSettingsInfo = function (plAddInSettings) { - var result = { - // addInSettings is undefined during bootstrap initialization - settingsValues: plAddInSettings.addInSettings || {} - }; - return result; - }; - PresLayerToApiConverter.convertAddInBootstrapInfo = function (plBootstrapInfo) { - var result = { - addinDashboardInfo: PresLayerToApiConverter.convertDashboardInfo(plBootstrapInfo.addInDashboardInfoPresModel), - addInEnvironment: PresLayerToApiConverter.convertAddInEnivrionment(plBootstrapInfo.addInEnvironmentPresModel), - addInInstance: PresLayerToApiConverter.convertAddInInstance(plBootstrapInfo.addInInstancePresModel), - addInSettingsInfo: PresLayerToApiConverter.convertAddInSettingsInfo(plBootstrapInfo.addInSettingsInfo) - }; - return result; - }; - PresLayerToApiConverter.convertFieldCaptionPair = function (plFieldCaptionPair) { - return plFieldCaptionPair.fn; - }; - PresLayerToApiConverter.convertFilterEvent = function (plFilterEvent) { - var result = { - visualId: PresLayerToApiConverter.convertVisualId(plFilterEvent.visualIdPresModel), - fieldName: plFilterEvent.fieldCaption - }; - return result; - }; - PresLayerToApiConverter.convertDataSchema = function (dataSchema) { - var apiDataSources = {}; - api_utils_1.Param.verifyValue(dataSchema, 'dataSchema'); - api_utils_1.Param.verifyValue(dataSchema.dataSources, 'dataSchema.dataSources'); - // Convert each pres layer datasource in the schema to an Api datasource - Object.keys(dataSchema.dataSources).forEach(function (key) { - // Skip the default Parameters datasource we receive from the platform. - if (dataSchema.dataSources[key].datasource !== PresLayerToApiConverter.PARAMETERS_DB_NAME) { - apiDataSources[key] = PresLayerToApiConverter.convertDataSource(dataSchema.dataSources[key]); - } - }); - var schemaMap = PresLayerToApiConverter.convertWorksheetDataSchemaMap(dataSchema.worksheetDataSchemaMap); - var result = { - dataSources: apiDataSources, - worksheetDataSchemaMap: schemaMap, - }; - return result; - }; - PresLayerToApiConverter.convertDataSource = function (dataSource) { - var extractUpdateTime = (dataSource.extractUpdateTime === '') ? undefined : dataSource.extractUpdateTime; - var dataSourceFields = new Array(); - api_utils_1.Param.verifyValue(dataSource, 'dataSource'); - api_utils_1.Param.verifyValue(dataSource.fieldList, 'dataSchema.fieldList'); - dataSource.fieldList.forEach(function (plField) { - // If the datasource contains hierarchies or folders, the base field will contain - // a list of the fields grouped beneath it, we are interested in those. - // Tableau does not support nested folders or hierarchies, so this does not need to be recursive. - var hierarchyModel = plField; - if (hierarchyModel.columnList) { - hierarchyModel.columnList.forEach(function (field) { return dataSourceFields.push(PresLayerToApiConverter.convertField(field)); }); - } - else { - // This is a bit brittle for now, but this value is not exposed via the platform FieldType Enum. - if (plField.type !== 'field-folder') { - dataSourceFields.push(PresLayerToApiConverter.convertField(plField)); - } - } - }); - var result = { - name: dataSource.datasourceCaption, - id: dataSource.datasource, - isExtract: (extractUpdateTime !== undefined), - extractUpdateTime: extractUpdateTime, - fields: dataSourceFields - }; - return result; - }; - PresLayerToApiConverter.convertWorksheetDataSchemaMap = function (schemaMap) { - var result = {}; - Object.keys(schemaMap).forEach(function (key) { - // We need to remove any references to the "Parameters" datasource. This is treated as a separate - // datasource by the platform, but the Extensions API accesses Parameters directly. - var cleanReferencedDataSourceList = schemaMap[key].referencedDataSourceList.filter(function (dsName) { - return dsName !== PresLayerToApiConverter.PARAMETERS_DB_NAME; - }); - var worksheetDataSourceInfo = { - primaryDataSource: schemaMap[key].primaryDatasource, - referencedDataSourceList: cleanReferencedDataSourceList - }; - result[key] = worksheetDataSourceInfo; - }); - return result; - }; - PresLayerToApiConverter.convertField = function (plField) { - var fieldColumn = plField; - var groupColumn = plField; - var aggregation = Api.FieldAggregationType.None; - var role = Api.FieldRoleType.Unknown; - var isCalculated = false; - // We expect that every FieldPresModel we get back from the command that returns FieldPresModels - // is actually an instance of the derived FieldColumnPresModel. - if (fieldColumn.aggregation && fieldColumn.fieldRole) { - aggregation = EnumMappings_1.PresLayerToApiEnumMappings.fieldAggregationType.convert(fieldColumn.aggregation); - role = EnumMappings_1.PresLayerToApiEnumMappings.fieldRoleType.convert(fieldColumn.fieldRole); - isCalculated = fieldColumn.isCalculated || false; - } - else { - throw new Error('Unexpected Internal Error: field pres model is missing expected properties.'); - } - var result = { - name: plField.description, - id: plField.name, - description: plField.userCaption, - aggregation: aggregation, - isHidden: !!(plField.isHidden), - isGenerated: plField.isGenerated, - isCalculatedField: isCalculated, - role: role, - isCombinedField: !!(groupColumn.isCombinedField) - }; - return result; - }; - PresLayerToApiConverter.PARAMETERS_DB_NAME = 'Parameters'; - return PresLayerToApiConverter; - }()); - exports.PresLayerToApiConverter = PresLayerToApiConverter; - //# sourceMappingURL=PresLayerToApiConverter.js.map - -/***/ }, -/* 18 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - Object.defineProperty(exports, "__esModule", { value: true }); - var EnumConverter_1 = __webpack_require__(19); - exports.EnumConverter = EnumConverter_1.EnumConverter; - var Param_1 = __webpack_require__(20); - exports.Param = Param_1.Param; - //# sourceMappingURL=ApiUtils.js.map - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * This class converts from a source enum value to destination enum - * value given a mapping from source to destination when constructed. - */ - var EnumConverter = (function () { - function EnumConverter(_mappings, _defaultVal) { - this._mappings = _mappings; - this._defaultVal = _defaultVal; - } - EnumConverter.prototype.convert = function (enumVal, throwIfMissing) { - if (this._mappings.hasOwnProperty(enumVal)) { - return this._mappings[enumVal]; - } - if (this._defaultVal !== undefined && !throwIfMissing) { - return this._defaultVal; - } - throw new Error('Mapping not found for ' + enumVal); - }; - return EnumConverter; - }()); - exports.EnumConverter = EnumConverter; - //# sourceMappingURL=EnumConverter.js.map - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Param = (function () { - function Param() { - } - /** - * Verifies that an incoming parameter is 'truthy' and throws - * an error if it's not. This will throw an error if the value - * is null, undefined, NaN, the empty string, 0, or false. - * - * @param argumentValue value to verify - * @param argumentName name of argument to verify - */ - /*tslint:disable-next-line */ - Param.verifyValue = function (argumentValue, argumentName) { - if (!argumentValue) { - throw new Error('Value is invalid for argument: ' + argumentName); - } - }; - /** - * Verifies that a string is valid. Throws an error if the string is - * null, undefined, or NaN. - * - * @param argumentValue value to verify - * @param argumentName name of argument to verify - */ - Param.verifyString = function (argumentValue, argumentName) { - if (argumentValue === null || argumentValue === undefined) { - throw new Error('String value is invalid for argument: ' + argumentName); - } - }; - /** - * Verifies the value is part of the Enum - * - * String enums are {string : string} dictionaries which are not reverse mappable - * This is an ugly workaround - * @param value value to verify - * @param enumType enum to verify against - */ - /* tslint:disable:no-any */ - Param.isValidEnumValue = function (value, enumType) { - var isValid = false; - Object.keys(enumType).forEach(function (enumKey) { - if (enumType[enumKey] === value.toString()) { - isValid = true; - } - }); - return isValid; - }; - /* tslint:enable:no-any */ - /** - * serializes the date into the format that the server expects. - * @param date the date to serialize - */ - Param.serializeDateForPlatform = function (date) { - var year = date.getUTCFullYear(); - var month = date.getUTCMonth() + 1; - var day = date.getUTCDate(); - var hh = date.getUTCHours(); - var mm = date.getUTCMinutes(); - var sec = date.getUTCSeconds(); - return year + '-' + month + '-' + day + ' ' + hh + ':' + mm + ':' + sec; - }; - Param.serializeBooleanForPlatform = function (bool) { - return bool ? 'true' : 'false'; - }; - Param.serializeNumberForPlatform = function (num) { - return num.toString(10); - }; - /** - * Verifies the params min and max for applying range filter - * @param min range min - * @param max range max - */ - /* tslint:disable:no-any */ - Param.verifyRangeParamType = function (min, max) { - /* tslint:enable:no-any */ - if (!min && !max) { - throw new Error('Missing Parameter: At least one of min or max is required'); - } - if (!Param.isTypeNumber(min) && !Param.isTypeDate(min)) { - throw new Error('Invalid Parameter Type: Only Date and number are allowed for parameter min'); - } - if (!Param.isTypeNumber(max) && !Param.isTypeDate(max)) { - throw new Error('Invalid Parameter Type: Only Date and number are allowed for parameter max'); - } - if (typeof (min) !== typeof (max)) { - throw new Error('Invalid Parameter Type: Parameters min and max should be of the same type'); - } - }; - /** - * Verifies the input is a number - */ - /* tslint:disable:no-any */ - Param.isTypeNumber = function (input) { - return typeof (input) === 'number' || input instanceof Number; - }; - /* tslint:enable:no-any */ - /** - * Verifies the input is a Date - */ - /* tslint:disable:no-any */ - Param.isTypeDate = function (input) { - return input instanceof Date; - }; - /* tslint:enable:no-any */ - /* tslint:disable-next-line:no-any */ - Param.isTypeString = function (input) { - return typeof (input) === 'string' || input instanceof String; - }; - /* tslint:disable-next-line:no-any */ - Param.isTypeBool = function (input) { - return typeof (input) === 'boolean' || input instanceof Boolean; - }; - /* tslint:disable-next-line:no-any */ - Param.serializeParamterValue = function (value) { - if (Param.isTypeNumber(value)) { - return Param.serializeNumberForPlatform(value); - } - else if (Param.isTypeDate(value)) { - return Param.serializeDateForPlatform(value); - } - else if (Param.isTypeBool(value)) { - return Param.serializeBooleanForPlatform(value); - } - else if (Param.isTypeString(value)) { - return value; - } - else { - throw new Error('Value is invalid for argument: value'); - } - }; - return Param; - }()); - exports.Param = Param; - //# sourceMappingURL=Param.js.map - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(4); - var api_utils_1 = __webpack_require__(18); - var Enums = __webpack_require__(22); - /* tslint:disable:typedef - Disable this to make declaring these classes a bit easier */ - var PresLayerToApiEnumMappings = (function () { - function PresLayerToApiEnumMappings() { - } - PresLayerToApiEnumMappings.zoneType = new api_utils_1.EnumConverter((_a = {}, - _a[Enums.ZoneType.ZT_Invalid] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_Viz] = api_internal_contract_1.DashboardObjectType.Worksheet, - _a[Enums.ZoneType.ZT_ColorLegend] = api_internal_contract_1.DashboardObjectType.Legend, - _a[Enums.ZoneType.ZT_ShapeLegend] = api_internal_contract_1.DashboardObjectType.Legend, - _a[Enums.ZoneType.ZT_SizeLegend] = api_internal_contract_1.DashboardObjectType.Legend, - _a[Enums.ZoneType.ZT_MapLegend] = api_internal_contract_1.DashboardObjectType.Legend, - _a[Enums.ZoneType.ZT_QuickFilter] = api_internal_contract_1.DashboardObjectType.QuickFilter, - _a[Enums.ZoneType.ZT_Highlighter] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_CurrPage] = api_internal_contract_1.DashboardObjectType.PageFilter, - _a[Enums.ZoneType.ZT_Empty] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_Title] = api_internal_contract_1.DashboardObjectType.Title, - _a[Enums.ZoneType.ZT_Text] = api_internal_contract_1.DashboardObjectType.Text, - _a[Enums.ZoneType.ZT_Bitmap] = api_internal_contract_1.DashboardObjectType.Image, - _a[Enums.ZoneType.ZT_Web] = api_internal_contract_1.DashboardObjectType.WebPage, - _a[Enums.ZoneType.ZT_AddIn] = api_internal_contract_1.DashboardObjectType.AddIn, - _a[Enums.ZoneType.ZT_ParamCtrl] = api_internal_contract_1.DashboardObjectType.ParameterControl, - _a[Enums.ZoneType.ZT_FlipboardNav] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_Flipboard] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_LayoutBasic] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_LayoutFlow] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_LayoutFreeForm] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_End] = api_internal_contract_1.DashboardObjectType.Blank, - _a[Enums.ZoneType.ZT_Button] = api_internal_contract_1.DashboardObjectType.Blank, - _a), api_internal_contract_1.DashboardObjectType.Blank); - PresLayerToApiEnumMappings.addInContext = new api_utils_1.EnumConverter((_b = {}, - _b[Enums.AddInContext.Unknown] = api_internal_contract_1.AddInContext.Unknown, - _b[Enums.AddInContext.Desktop] = api_internal_contract_1.AddInContext.Desktop, - _b[Enums.AddInContext.Server] = api_internal_contract_1.AddInContext.Server, - _b)); - PresLayerToApiEnumMappings.addInMode = new api_utils_1.EnumConverter((_c = {}, - _c[Enums.AddInMode.Unknown] = api_internal_contract_1.AddInMode.Unknown, - _c[Enums.AddInMode.Authoring] = api_internal_contract_1.AddInMode.Authoring, - _c[Enums.AddInMode.Viewing] = api_internal_contract_1.AddInMode.Viewing, - _c)); - PresLayerToApiEnumMappings.dataType = new api_utils_1.EnumConverter((_d = {}, - _d[Enums.DataType.DT_BOOLEAN] = api_internal_contract_1.DataType.Bool, - _d[Enums.DataType.DT_DATE] = api_internal_contract_1.DataType.Date, - _d[Enums.DataType.DT_DATETIME] = api_internal_contract_1.DataType.DateTime, - _d[Enums.DataType.DT_INTEGER] = api_internal_contract_1.DataType.Int, - _d[Enums.DataType.DT_REAL] = api_internal_contract_1.DataType.Float, - _d[Enums.DataType.DT_STRING] = api_internal_contract_1.DataType.String, - _d[Enums.DataType.DT_SPATIAL] = api_internal_contract_1.DataType.Spatial, - _d)); - PresLayerToApiEnumMappings.fieldAggregationType = new api_utils_1.EnumConverter((_e = {}, - _e[Enums.AggType.AGG_ATTR] = api_internal_contract_1.FieldAggregationType.Attr, - _e[Enums.AggType.AGG_AVG] = api_internal_contract_1.FieldAggregationType.Avg, - _e[Enums.AggType.AGG_COUNT] = api_internal_contract_1.FieldAggregationType.Count, - _e[Enums.AggType.AGG_COUNTD] = api_internal_contract_1.FieldAggregationType.Countd, - _e[Enums.AggType.AGG_DAY] = api_internal_contract_1.FieldAggregationType.Day, - _e[Enums.AggType.AGG_END] = api_internal_contract_1.FieldAggregationType.End, - _e[Enums.AggType.AGG_HOUR] = api_internal_contract_1.FieldAggregationType.Hour, - _e[Enums.AggType.AGG_INOUT] = api_internal_contract_1.FieldAggregationType.InOut, - _e[Enums.AggType.AGG_KURTOSIS] = api_internal_contract_1.FieldAggregationType.Kurtosis, - _e[Enums.AggType.AGG_MAX] = api_internal_contract_1.FieldAggregationType.Max, - _e[Enums.AggType.AGG_MDY] = api_internal_contract_1.FieldAggregationType.Mdy, - _e[Enums.AggType.AGG_MEDIAN] = api_internal_contract_1.FieldAggregationType.Median, - _e[Enums.AggType.AGG_MIN] = api_internal_contract_1.FieldAggregationType.Min, - _e[Enums.AggType.AGG_MINUTE] = api_internal_contract_1.FieldAggregationType.Minute, - _e[Enums.AggType.AGG_MONTHYEAR] = api_internal_contract_1.FieldAggregationType.MonthYear, - _e[Enums.AggType.AGG_NONE] = api_internal_contract_1.FieldAggregationType.None, - _e[Enums.AggType.AGG_QTR] = api_internal_contract_1.FieldAggregationType.Qtr, - _e[Enums.AggType.AGG_QUART1] = api_internal_contract_1.FieldAggregationType.Quart1, - _e[Enums.AggType.AGG_QUART3] = api_internal_contract_1.FieldAggregationType.Quart3, - _e[Enums.AggType.AGG_SECOND] = api_internal_contract_1.FieldAggregationType.Second, - _e[Enums.AggType.AGG_SKEWNESS] = api_internal_contract_1.FieldAggregationType.Skewness, - _e[Enums.AggType.AGG_STDEV] = api_internal_contract_1.FieldAggregationType.Stdev, - _e[Enums.AggType.AGG_STDEVP] = api_internal_contract_1.FieldAggregationType.Stdevp, - _e[Enums.AggType.AGG_SUM] = api_internal_contract_1.FieldAggregationType.Sum, - _e[Enums.AggType.TRUNC_DAY] = api_internal_contract_1.FieldAggregationType.TruncDay, - _e[Enums.AggType.TRUNC_HOUR] = api_internal_contract_1.FieldAggregationType.TruncHour, - _e[Enums.AggType.TRUNC_MINUTE] = api_internal_contract_1.FieldAggregationType.TruncMinute, - _e[Enums.AggType.TRUNC_MONTH] = api_internal_contract_1.FieldAggregationType.TruncMonth, - _e[Enums.AggType.TRUNC_QTR] = api_internal_contract_1.FieldAggregationType.TruncQtr, - _e[Enums.AggType.TRUNC_SECOND] = api_internal_contract_1.FieldAggregationType.TruncSecond, - _e[Enums.AggType.TRUNC_WEEK] = api_internal_contract_1.FieldAggregationType.TruncWeek, - _e[Enums.AggType.TRUNC_YEAR] = api_internal_contract_1.FieldAggregationType.TruncYear, - _e[Enums.AggType.AGG_USER] = api_internal_contract_1.FieldAggregationType.User, - _e[Enums.AggType.AGG_VAR] = api_internal_contract_1.FieldAggregationType.Var, - _e[Enums.AggType.AGG_VARP] = api_internal_contract_1.FieldAggregationType.Varp, - _e[Enums.AggType.AGG_WEEK] = api_internal_contract_1.FieldAggregationType.Week, - _e[Enums.AggType.AGG_WEEKDAY] = api_internal_contract_1.FieldAggregationType.Weekday, - _e[Enums.AggType.AGG_YEAR] = api_internal_contract_1.FieldAggregationType.Year, - _e)); - PresLayerToApiEnumMappings.fieldRoleType = new api_utils_1.EnumConverter((_f = {}, - _f[Enums.FieldRole.ROLE_DIMENSION] = api_internal_contract_1.FieldRoleType.Dimension, - _f[Enums.FieldRole.ROLE_MEASURE] = api_internal_contract_1.FieldRoleType.Measure, - _f)); - PresLayerToApiEnumMappings.parameterTypesDomainType = new api_utils_1.EnumConverter((_g = {}, - _g[Enums.ParameterTypesDomainType.Domain_Any] = api_internal_contract_1.DomainRestrictionType.All, - _g[Enums.ParameterTypesDomainType.Domain_List] = api_internal_contract_1.DomainRestrictionType.List, - _g[Enums.ParameterTypesDomainType.Domain_Range] = api_internal_contract_1.DomainRestrictionType.Range, - _g)); - PresLayerToApiEnumMappings.dateStepPeriod = new api_utils_1.EnumConverter((_h = {}, - _h[Enums.DatePeriodType.PeriodYear] = api_internal_contract_1.DateStepPeriod.Years, - _h[Enums.DatePeriodType.PeriodQuarter] = api_internal_contract_1.DateStepPeriod.Quarters, - _h[Enums.DatePeriodType.PeriodMonth] = api_internal_contract_1.DateStepPeriod.Months, - _h[Enums.DatePeriodType.PeriodWeek] = api_internal_contract_1.DateStepPeriod.Weeks, - _h[Enums.DatePeriodType.PeriodDay] = api_internal_contract_1.DateStepPeriod.Days, - _h[Enums.DatePeriodType.PeriodHour] = api_internal_contract_1.DateStepPeriod.Hours, - _h[Enums.DatePeriodType.PeriodMinute] = api_internal_contract_1.DateStepPeriod.Minutes, - _h[Enums.DatePeriodType.PeriodSecond] = api_internal_contract_1.DateStepPeriod.Seconds, - _h)); - PresLayerToApiEnumMappings.dateRangeType = new api_utils_1.EnumConverter((_j = {}, - _j[Enums.FiltersRelativeDateRangeType.RangeCurrent] = api_internal_contract_1.DateRangeType.Current, - _j[Enums.FiltersRelativeDateRangeType.RangeCurrentToDate] = api_internal_contract_1.DateRangeType.ToDate, - _j[Enums.FiltersRelativeDateRangeType.RangeLast1] = api_internal_contract_1.DateRangeType.Last, - _j[Enums.FiltersRelativeDateRangeType.RangeLastN] = api_internal_contract_1.DateRangeType.LastN, - _j[Enums.FiltersRelativeDateRangeType.RangeNext1] = api_internal_contract_1.DateRangeType.Next, - _j[Enums.FiltersRelativeDateRangeType.RangeNextN] = api_internal_contract_1.DateRangeType.NextN, - _j)); - PresLayerToApiEnumMappings.filterDomainType = new api_utils_1.EnumConverter((_k = {}, - _k[Enums.FiltersDomainType.Relevant] = api_internal_contract_1.FilterDomainType.Relevant, - _k[Enums.FiltersDomainType.Database] = api_internal_contract_1.FilterDomainType.Database, - _k)); - return PresLayerToApiEnumMappings; - }()); - exports.PresLayerToApiEnumMappings = PresLayerToApiEnumMappings; - var ApiToPresLayerEnumMappings = (function () { - function ApiToPresLayerEnumMappings() { - } - ApiToPresLayerEnumMappings.filterUpdateType = new api_utils_1.EnumConverter((_a = {}, - _a[api_internal_contract_1.FilterUpdateType.Add] = Enums.FilterUpdateType.ADD, - _a[api_internal_contract_1.FilterUpdateType.All] = Enums.FilterUpdateType.ALL, - _a[api_internal_contract_1.FilterUpdateType.Replace] = Enums.FilterUpdateType.REPLACE, - _a[api_internal_contract_1.FilterUpdateType.Remove] = Enums.FilterUpdateType.REMOVE, - _a)); - ApiToPresLayerEnumMappings.nullOption = new api_utils_1.EnumConverter((_b = {}, - _b[api_internal_contract_1.FilterNullOption.AllValues] = Enums.FiltersQuantitativeIncludedValues.All, - _b[api_internal_contract_1.FilterNullOption.NonNullValues] = Enums.FiltersQuantitativeIncludedValues.NonNull, - _b[api_internal_contract_1.FilterNullOption.NullValues] = Enums.FiltersQuantitativeIncludedValues.Null, - _b)); - ApiToPresLayerEnumMappings.filterDomainType = new api_utils_1.EnumConverter((_c = {}, - _c[api_internal_contract_1.FilterDomainType.Relevant] = Enums.FiltersDomainType.Relevant, - _c[api_internal_contract_1.FilterDomainType.Database] = Enums.FiltersDomainType.Database, - _c)); - return ApiToPresLayerEnumMappings; - }()); - exports.ApiToPresLayerEnumMappings = ApiToPresLayerEnumMappings; - var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _a, _b, _c; - /* tslint:enable:typedef */ - //# sourceMappingURL=EnumMappings.js.map - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - "use strict"; - /* tslint:disable */ - // ----------------------------------------------------------------------------- - // - // This file is the copyrighted property of Tableau Software and is protected - // by registered patents and other applicable U.S. and international laws and - // regulations. - // - // Unlicensed use of the contents of this file is prohibited. Please refer to - // the NOTICES.txt file for further details. - // - // ----------------------------------------------------------------------------- - // WARNING: Computer generated file. Do not hand modify. - // DEPENDS ON: ['../typescript/js-api/api-core/node_modules/@tableau/preslayer-codegen-typescript/templates/enum-ts.template', u'../typescript/js-api/api-core/temp-pres-layer/all-enums.data'] - Object.defineProperty(exports, "__esModule", { value: true }); - // - var DataScaling; - (function (DataScaling) { - // - DataScaling["SCALING_NONE"] = "none"; - // - DataScaling["SCALING_STANDARDIZED"] = "standardized"; - // - DataScaling["SCALING_NORMALIZED"] = "normalized"; - })(DataScaling = exports.DataScaling || (exports.DataScaling = {})); - // - var ForecastModelType; - (function (ForecastModelType) { - // - ForecastModelType["ForecastModelTypeAutoSeason"] = "auto-season"; - // - ForecastModelType["ForecastModelTypeAuto"] = "auto"; - // - ForecastModelType["ForecastModelTypeCustom"] = "custom"; - })(ForecastModelType = exports.ForecastModelType || (exports.ForecastModelType = {})); - // - var ForecastRangeType; - (function (ForecastRangeType) { - // - ForecastRangeType["ForecastRangeTypeAuto"] = "auto"; - // - ForecastRangeType["ForecastRangeTypeNext"] = "next"; - // - ForecastRangeType["ForecastRangeTypeEndOf"] = "end-of"; - })(ForecastRangeType = exports.ForecastRangeType || (exports.ForecastRangeType = {})); - // - var ForecastStatus; - (function (ForecastStatus) { - // - ForecastStatus["FS_VALID"] = "fs-valid"; - // - ForecastStatus["FS_INVALID_DATETIME"] = "fs-invalid-datetime"; - // - ForecastStatus["FS_INVALID_RESPONSE"] = "fs-invalid-response"; - // - ForecastStatus["FS_NEED_MORE_DATA"] = "fs-need-more-data"; - // - ForecastStatus["FS_TIME_SERIES_TOO_SHORT"] = "fs-time-series-too-short"; - // - ForecastStatus["FS_TIME_SERIES_IRREGULAR"] = "fs-time-series-irregular"; - // - ForecastStatus["FS_NULL_DATETIME"] = "fs-null-datetime"; - // - ForecastStatus["FS_NULL_RESPONSE"] = "fs-null-response"; - // - ForecastStatus["FS_METADATA_INVALID"] = "fs-metadata-invalid"; - // - ForecastStatus["FS_NO_RESPONSE"] = "fs-no-response"; - // - ForecastStatus["FS_EXCESS_DATA"] = "fs-excess-data"; - // - ForecastStatus["FS_EXCESS_PARTITIONS"] = "fs-excess-partitions"; - // - ForecastStatus["FS_DIMENSION_INVALID"] = "fs-dimension-invalid"; - // - ForecastStatus["FS_TABLECALC_INVALID"] = "fs-tablecalc-invalid"; - // - ForecastStatus["FS_TIME_SERIES_TOO_IRREGULAR"] = "fs-time-series-too-irregular"; - // - ForecastStatus["FS_AGGREGATE_FILTER"] = "fs-aggregate-filter"; - // - ForecastStatus["FS_DISAGGREGATE_RESPONSE"] = "fs-disaggregate-response"; - // - ForecastStatus["FS_PERCENTAGE_INVALID"] = "fs-percentage-invalid"; - // - ForecastStatus["FS_TOTAL_INVALID"] = "fs-total-invalid"; - // - ForecastStatus["FS_EXCESS_DATETIME"] = "fs-excess-datetime"; - // - ForecastStatus["FS_DATE_AGG_INCOMPATIBLE"] = "fs-date-agg-incompatible"; - // - ForecastStatus["FS_TIME_SERIES_NOT_POSITIVE"] = "fs-time-series-not-positive"; - // - ForecastStatus["FS_REQUESTED_MODEL_INVALID"] = "fs-requested-model-invalid"; - // - ForecastStatus["FS_TOO_SHORT_FOR_SEASON"] = "fs-too-short-for-season"; - // - ForecastStatus["FS_REQUESTED_MODEL_UNSTABLE"] = "fs-requested-model-unstable"; - // - ForecastStatus["FS_UNDEFINED"] = "fs-undefined"; - })(ForecastStatus = exports.ForecastStatus || (exports.ForecastStatus = {})); - // - var StyleAttribute; - (function (StyleAttribute) { - // - StyleAttribute["saAlternateText"] = "saAlternateText"; - // - StyleAttribute["saAltMarkColor"] = "saAltMarkColor"; - // - StyleAttribute["saAspect"] = "saAspect"; - // - StyleAttribute["saAutoSubtitle"] = "saAutoSubtitle"; - // - StyleAttribute["saBackgroundColor"] = "saBackgroundColor"; - // - StyleAttribute["saBackgroundTransparency"] = "saBackgroundTransparency"; - // - StyleAttribute["saBandSize"] = "saBandSize"; - // - StyleAttribute["saBandColor"] = "saBandColor"; - // - StyleAttribute["saBandLevel"] = "saBandLevel"; - // - StyleAttribute["saBodyType"] = "saBodyType"; - // - StyleAttribute["saBorderColor"] = "saBorderColor"; - // - StyleAttribute["saBorderColorTop"] = "saBorderColorTop"; - // - StyleAttribute["saBorderColorRight"] = "saBorderColorRight"; - // - StyleAttribute["saBorderColorBottom"] = "saBorderColorBottom"; - // - StyleAttribute["saBorderColorLeft"] = "saBorderColorLeft"; - // - StyleAttribute["saBorderStyle"] = "saBorderStyle"; - // - StyleAttribute["saBorderStyleTop"] = "saBorderStyleTop"; - // - StyleAttribute["saBorderStyleRight"] = "saBorderStyleRight"; - // - StyleAttribute["saBorderStyleBottom"] = "saBorderStyleBottom"; - // - StyleAttribute["saBorderStyleLeft"] = "saBorderStyleLeft"; - // - StyleAttribute["saBorderWidth"] = "saBorderWidth"; - // - StyleAttribute["saBorderWidthTop"] = "saBorderWidthTop"; - // - StyleAttribute["saBorderWidthRight"] = "saBorderWidthRight"; - // - StyleAttribute["saBorderWidthBottom"] = "saBorderWidthBottom"; - // - StyleAttribute["saBorderWidthLeft"] = "saBorderWidthLeft"; - // - StyleAttribute["saBoxplotStyle"] = "saBoxplotStyle"; - // - StyleAttribute["saBreakOnSpecial"] = "saBreakOnSpecial"; - // - StyleAttribute["saCell"] = "saCell"; - // - StyleAttribute["saCellW"] = "saCellW"; - // - StyleAttribute["saCellH"] = "saCellH"; - // - StyleAttribute["saCellQ"] = "saCellQ"; - // - StyleAttribute["saCellQMark"] = "saCellQMark"; - // - StyleAttribute["saColor"] = "saColor"; - // - StyleAttribute["saColorMode"] = "saColorMode"; - // - StyleAttribute["saColLevels"] = "saColLevels"; - // - StyleAttribute["saColVertLevels"] = "saColVertLevels"; - // - StyleAttribute["saColHorizHeight"] = "saColHorizHeight"; - // - StyleAttribute["saColVertHeight"] = "saColVertHeight"; - // Deprecated - StyleAttribute["saColHeight"] = "saColHeight"; - // - StyleAttribute["saColWidth"] = "saColWidth"; - // - StyleAttribute["saContent"] = "saContent"; - // - StyleAttribute["saDisplayFieldLabels"] = "saDisplayFieldLabels"; - // - StyleAttribute["saDisplayHeader"] = "saDisplayHeader"; - // - StyleAttribute["saDisplayAlternateText"] = "saDisplayAlternateText"; - // - StyleAttribute["saDivLevel"] = "saDivLevel"; - // - StyleAttribute["saEnabled"] = "saEnabled"; - // - StyleAttribute["saFillAboveColor"] = "saFillAboveColor"; - // - StyleAttribute["saFillBelowColor"] = "saFillBelowColor"; - // - StyleAttribute["saFillColor"] = "saFillColor"; - // - StyleAttribute["saFogBGColor"] = "saFogBGColor"; - // - StyleAttribute["saFogDesaturationWithoutSelection"] = "saFogDesaturationWithoutSelection"; - // - StyleAttribute["saFogDesaturationWithSelection"] = "saFogDesaturationWithSelection"; - // - StyleAttribute["saFont"] = "saFont"; - // - StyleAttribute["saFontFamily"] = "saFontFamily"; - // - StyleAttribute["saFontSize"] = "saFontSize"; - // - StyleAttribute["saFontStyle"] = "saFontStyle"; - // - StyleAttribute["saFontWeight"] = "saFontWeight"; - // - StyleAttribute["saGeographicAreaType"] = "saGeographicAreaType"; - // - StyleAttribute["saHAlign"] = "saHAlign"; - // - StyleAttribute["saHaloColor"] = "saHaloColor"; - // - StyleAttribute["saHaloColorSelected"] = "saHaloColorSelected"; - // - StyleAttribute["saHasFill"] = "saHasFill"; - // - StyleAttribute["saHasHalo"] = "saHasHalo"; - // Deprecated - StyleAttribute["saHasLabel"] = "saHasLabel"; - // - StyleAttribute["saHasStroke"] = "saHasStroke"; - // - StyleAttribute["saHeight"] = "saHeight"; - // - StyleAttribute["saHeightHeader"] = "saHeightHeader"; - // - StyleAttribute["saHighlightLegend"] = "saHighlightLegend"; - // - StyleAttribute["saHnaxis"] = "saHnaxis"; - // - StyleAttribute["saHnlabel"] = "saHnlabel"; - // - StyleAttribute["saInTooltip"] = "saInTooltip"; - // - StyleAttribute["saLineEnd"] = "saLineEnd"; - // - StyleAttribute["saLineEndSize"] = "saLineEndSize"; - // - StyleAttribute["saLineInterpolation"] = "saLineInterpolation"; - // - StyleAttribute["saLineMarkerPosition"] = "saLineMarkerPosition"; - // - StyleAttribute["saLinePattern"] = "saLinePattern"; - // - StyleAttribute["saLinePatternOnly"] = "saLinePatternOnly"; - // - StyleAttribute["saLineVisibility"] = "saLineVisibility"; - // - StyleAttribute["saMap"] = "saMap"; - // - StyleAttribute["saMapStyle"] = "saMapStyle"; - // - StyleAttribute["saMargin"] = "saMargin"; - // - StyleAttribute["saMarginTop"] = "saMarginTop"; - // - StyleAttribute["saMarginRight"] = "saMarginRight"; - // - StyleAttribute["saMarginBottom"] = "saMarginBottom"; - // - StyleAttribute["saMarginLeft"] = "saMarginLeft"; - // - StyleAttribute["saMarkColor"] = "saMarkColor"; - // - StyleAttribute["saMarkTransparency"] = "saMarkTransparency"; - // - StyleAttribute["saMarkLabelsShow"] = "saMarkLabelsShow"; - // - StyleAttribute["saRunningOrderLabelsShow"] = "saRunningOrderLabelsShow"; - // - StyleAttribute["saMarkLabelsMode"] = "saMarkLabelsMode"; - // - StyleAttribute["saMarkLabelsCull"] = "saMarkLabelsCull"; - // - StyleAttribute["saMarkLabelsLineEndFirst"] = "saMarkLabelsLineEndFirst"; - // - StyleAttribute["saMarkLabelsLineEndLast"] = "saMarkLabelsLineEndLast"; - // - StyleAttribute["saMarkLabelsRangeMin"] = "saMarkLabelsRangeMin"; - // - StyleAttribute["saMarkLabelsRangeMax"] = "saMarkLabelsRangeMax"; - // - StyleAttribute["saMarkLabelsRangeScope"] = "saMarkLabelsRangeScope"; - // - StyleAttribute["saMarkLabelsRangeField"] = "saMarkLabelsRangeField"; - // - StyleAttribute["saMarkMarkersMode"] = "saMarkMarkersMode"; - // - StyleAttribute["saMaxHeight"] = "saMaxHeight"; - // - StyleAttribute["saMaxFontSize"] = "saMaxFontSize"; - // - StyleAttribute["saMaxStrokeWidth"] = "saMaxStrokeWidth"; - // - StyleAttribute["saMaxWidth"] = "saMaxWidth"; - // - StyleAttribute["saMidStrokeWidth"] = "saMidStrokeWidth"; - // - StyleAttribute["saMinHeight"] = "saMinHeight"; - // - StyleAttribute["saMinFontSize"] = "saMinFontSize"; - // - StyleAttribute["saMinLength"] = "saMinLength"; - // - StyleAttribute["saMinMapSize"] = "saMinMapSize"; - // - StyleAttribute["saMinSize"] = "saMinSize"; - // - StyleAttribute["saMinStrokeWidth"] = "saMinStrokeWidth"; - // - StyleAttribute["saMinWidth"] = "saMinWidth"; - // - StyleAttribute["saNonhighlightColor"] = "saNonhighlightColor"; - // - StyleAttribute["saOmitOnSpecial"] = "saOmitOnSpecial"; - // - StyleAttribute["saOpacity"] = "saOpacity"; - // - StyleAttribute["saOrientation"] = "saOrientation"; - // - StyleAttribute["saPadding"] = "saPadding"; - // - StyleAttribute["saPaddingTop"] = "saPaddingTop"; - // - StyleAttribute["saPaddingRight"] = "saPaddingRight"; - // - StyleAttribute["saPaddingBottom"] = "saPaddingBottom"; - // - StyleAttribute["saPaddingLeft"] = "saPaddingLeft"; - // - StyleAttribute["saPalette"] = "saPalette"; - // - StyleAttribute["saRenderFoldReversed"] = "saRenderFoldReversed"; - // - StyleAttribute["saReversePalette"] = "saReversePalette"; - // - StyleAttribute["saRounding"] = "saRounding"; - // - StyleAttribute["saRowHorizLevels"] = "saRowHorizLevels"; - // - StyleAttribute["saRowHorizWidth"] = "saRowHorizWidth"; - // - StyleAttribute["saRowLevels"] = "saRowLevels"; - // - StyleAttribute["saRowVertWidth"] = "saRowVertWidth"; - // - StyleAttribute["saSeparator"] = "saSeparator"; - // - StyleAttribute["saShape"] = "saShape"; - // Deprecated - StyleAttribute["saShowLabels"] = "saShowLabels"; - // - StyleAttribute["saSize"] = "saSize"; - // - StyleAttribute["saSizeBar"] = "saSizeBar"; - // - StyleAttribute["saSmartAutoAlignment"] = "saSmartAutoAlignment"; - // - StyleAttribute["saSpace"] = "saSpace"; - // - StyleAttribute["saStrokeColor"] = "saStrokeColor"; - // - StyleAttribute["saStrokeSize"] = "saStrokeSize"; - // - StyleAttribute["saSubtitle"] = "saSubtitle"; - // - StyleAttribute["saTextAlign"] = "saTextAlign"; - // - StyleAttribute["saTextAlignDefault"] = "saTextAlignDefault"; - // - StyleAttribute["saTextDecoration"] = "saTextDecoration"; - // - StyleAttribute["saTextIndent"] = "saTextIndent"; - // - StyleAttribute["saTextOrientation"] = "saTextOrientation"; - // - StyleAttribute["saTextFormat"] = "saTextFormat"; - // - StyleAttribute["saTickColor"] = "saTickColor"; - // - StyleAttribute["saTickLength"] = "saTickLength"; - // Deprecated - StyleAttribute["saTickSpacing"] = "saTickSpacing"; - // - StyleAttribute["saTitle"] = "saTitle"; - // - StyleAttribute["saTotalLabel"] = "saTotalLabel"; - // - StyleAttribute["saVAlign"] = "saVAlign"; - // - StyleAttribute["saVerticalAlign"] = "saVerticalAlign"; - // - StyleAttribute["saVerticalAlignDefault"] = "saVerticalAlignDefault"; - // - StyleAttribute["saVnaxis"] = "saVnaxis"; - // - StyleAttribute["saVnlabel"] = "saVnlabel"; - // - StyleAttribute["saWarnOnSpecial"] = "saWarnOnSpecial"; - // - StyleAttribute["saWashout"] = "saWashout"; - // - StyleAttribute["saWhiskerEnd"] = "saWhiskerEnd"; - // - StyleAttribute["saWhiskerStrokeColor"] = "saWhiskerStrokeColor"; - // - StyleAttribute["saWhiskerStrokeSize"] = "saWhiskerStrokeSize"; - // - StyleAttribute["saWidth"] = "saWidth"; - // - StyleAttribute["saWidthHeader"] = "saWidthHeader"; - // - StyleAttribute["saWrap"] = "saWrap"; - // - StyleAttribute["saZoom"] = "saZoom"; - // Special attributes used for matching - StyleAttribute["saNone"] = "saNone"; - // Special attributes used for matching - StyleAttribute["saAny"] = "saAny"; - })(StyleAttribute = exports.StyleAttribute || (exports.StyleAttribute = {})); - // lowest bit of enum value denotes two-tone styles; newly added styles should follow this pattern. - var BoxplotStyle; - (function (BoxplotStyle) { - // mask for checking if a style is two-tone - BoxplotStyle["BoxplotStyleTwoTone"] = "two-tone"; - // - BoxplotStyle["BoxplotStyleModern"] = "modern"; - // - BoxplotStyle["BoxplotStyleGlass"] = "glass"; - // - BoxplotStyle["BoxplotStyleClassic"] = "classic"; - // - BoxplotStyle["BoxplotStyleClassicTwoTone"] = "classic-two-tone"; - })(BoxplotStyle = exports.BoxplotStyle || (exports.BoxplotStyle = {})); - // used for boxplots and prediction band whiskers - var WhiskerEnd; - (function (WhiskerEnd) { - // - WhiskerEnd["WhiskerEndNone"] = "none"; - // - WhiskerEnd["WhiskerEndSmall"] = "small"; - // - WhiskerEnd["WhiskerEndLarge"] = "large"; - })(WhiskerEnd = exports.WhiskerEnd || (exports.WhiskerEnd = {})); - // - var StyleElement; - (function (StyleElement) { - // - StyleElement["elementAxis"] = "elementAxis"; - // - StyleElement["elementCell"] = "elementCell"; - // - StyleElement["elementDatalabel"] = "elementDatalabel"; - // - StyleElement["elementDropspot"] = "elementDropspot"; - // - StyleElement["elementHeader"] = "elementHeader"; - // - StyleElement["elementFieldLabel"] = "elementFieldLabel"; - // - StyleElement["elementFieldLabelDecoration"] = "elementFieldLabelDecoration"; - // - StyleElement["elementFieldLabelSpanner"] = "elementFieldLabelSpanner"; - // - StyleElement["elementLabel"] = "elementLabel"; - // - StyleElement["elementMark"] = "elementMark"; - // - StyleElement["elementPane"] = "elementPane"; - // - StyleElement["elementTable"] = "elementTable"; - // - StyleElement["elementWorksheet"] = "elementWorksheet"; - // - StyleElement["elementBasesheet"] = "elementBasesheet"; - // - StyleElement["elementDashboard"] = "elementDashboard"; - // - StyleElement["elementStoryboard"] = "elementStoryboard"; - // - StyleElement["elementCaption"] = "elementCaption"; - // - StyleElement["elementDropline"] = "elementDropline"; - // - StyleElement["elementRefline"] = "elementRefline"; - // - StyleElement["elementRefBand"] = "elementRefBand"; - // - StyleElement["elementRefBoxplot"] = "elementRefBoxplot"; - // - StyleElement["elementGridline"] = "elementGridline"; - // - StyleElement["elementZeroline"] = "elementZeroline"; - // - StyleElement["elementTrendline"] = "elementTrendline"; - // - StyleElement["elementTableDiv"] = "elementTableDiv"; - // - StyleElement["elementHeaderDiv"] = "elementHeaderDiv"; - // - StyleElement["elementMappedImage"] = "elementMappedImage"; - // - StyleElement["elementAction"] = "elementAction"; - // - StyleElement["elementTitle"] = "elementTitle"; - // - StyleElement["elementLegend"] = "elementLegend"; - // - StyleElement["elementLegendTitle"] = "elementLegendTitle"; - // - StyleElement["elementLegendTitleText"] = "elementLegendTitleText"; - // - StyleElement["elementAxisTitle"] = "elementAxisTitle"; - // - StyleElement["elementAnnotation"] = "elementAnnotation"; - // - StyleElement["elementDashTitle"] = "elementDashTitle"; - // - StyleElement["elementDashSubtitle"] = "elementDashSubtitle"; - // - StyleElement["elementDashText"] = "elementDashText"; - // - StyleElement["elementDashZone"] = "elementDashZone"; - // - StyleElement["elementDashContainer"] = "elementDashContainer"; - // - StyleElement["elementScrollbar"] = "elementScrollbar"; - // Static on/off map layers - StyleElement["elementMapLayer"] = "elementMapLayer"; - // Contains washout - StyleElement["elementMap"] = "elementMap"; - // Initially for UrbanMapping/Claritas data - StyleElement["elementMapDataLayer"] = "elementMapDataLayer"; - // - StyleElement["elementQuickFilter"] = "elementQuickFilter"; - // - StyleElement["elementQuickFilterTitle"] = "elementQuickFilterTitle"; - // - StyleElement["elementParameterCtrl"] = "elementParameterCtrl"; - // - StyleElement["elementParameterCtrlTitle"] = "elementParameterCtrlTitle"; - // - StyleElement["elementPageCardTitle"] = "elementPageCardTitle"; - // - StyleElement["elementStoryDescription"] = "elementStoryDescription"; - // - StyleElement["elementStoryPointCaption"] = "elementStoryPointCaption"; - // - StyleElement["elementStoryTitle"] = "elementStoryTitle"; - // - StyleElement["elementTooltip"] = "elementTooltip"; - // - StyleElement["elementAll"] = "elementAll"; - // - StyleElement["elementPageCardBody"] = "elementPageCardBody"; - // - StyleElement["elementDataHighlighter"] = "elementDataHighlighter"; - // - StyleElement["elementDataHighlighterTitle"] = "elementDataHighlighterTitle"; - // Special elements used for matching and organization - StyleElement["elementNone"] = "elementNone"; - // Special elements used for matching and organization - StyleElement["elementAny"] = "elementAny"; - // Special elements used for matching and organization - StyleElement["elementRoot"] = "elementRoot"; - })(StyleElement = exports.StyleElement || (exports.StyleElement = {})); - // Do not mess with these values. They are sometimes used as array indexes/bounds - var StyleDataClass; - (function (StyleDataClass) { - // - StyleDataClass["dcNormal"] = "dcNormal"; - // - StyleDataClass["dcTotal"] = "dcTotal"; - // - StyleDataClass["dcSubtotal"] = "dcSubtotal"; - // - StyleDataClass["dcCOUNT"] = "dcCOUNT"; - })(StyleDataClass = exports.StyleDataClass || (exports.StyleDataClass = {})); - // - var StyleFieldScope; - (function (StyleFieldScope) { - // - StyleFieldScope["fsNone"] = "fsNone"; - // - StyleFieldScope["fsRows"] = "fsRows"; - // - StyleFieldScope["fsCols"] = "fsCols"; - })(StyleFieldScope = exports.StyleFieldScope || (exports.StyleFieldScope = {})); - // - var StyleSwatch; - (function (StyleSwatch) { - // - StyleSwatch["ssUnspecified"] = "ssUnspecified"; - // - StyleSwatch["ssLight"] = "ssLight"; - // - StyleSwatch["ssDark"] = "ssDark"; - })(StyleSwatch = exports.StyleSwatch || (exports.StyleSwatch = {})); - // - var TableauFontStyle; - (function (TableauFontStyle) { - // - TableauFontStyle["NormalStyle"] = "font-style-normal"; - // - TableauFontStyle["Italic"] = "font-style-italic"; - })(TableauFontStyle = exports.TableauFontStyle || (exports.TableauFontStyle = {})); - // Unsupported for Betsy - var TextDecoration; - (function (TextDecoration) { - // - TextDecoration["NoDecoration"] = "text-decoration-none"; - // - TextDecoration["Underline"] = "text-decoration-underline"; - // not yet supported - TextDecoration["Overline"] = "text-decoration-overline"; - // - TextDecoration["Strikethrough"] = "text-decoration-strikethrough"; - })(TextDecoration = exports.TextDecoration || (exports.TextDecoration = {})); - // - var FontWeight; - (function (FontWeight) { - // - FontWeight["NormalWeight"] = "font-weight-normal"; - // - FontWeight["Bold"] = "font-weight-bold"; - })(FontWeight = exports.FontWeight || (exports.FontWeight = {})); - // - var TextOrient; - (function (TextOrient) { - // - TextOrient["TO_Auto"] = "text-orient-auto"; - // - TextOrient["TO_Horz"] = "text-orient-horizontal"; - // - TextOrient["TO_VertUp"] = "text-orient-vertical-up"; - // - TextOrient["TO_VertDown"] = "text-orient-vertical-down"; - })(TextOrient = exports.TextOrient || (exports.TextOrient = {})); - // - var TextAlign; - (function (TextAlign) { - // - TextAlign["TA_Start"] = "text-align-start"; - // - TextAlign["TA_Center"] = "text-align-center"; - // - TextAlign["TA_End"] = "text-align-end"; - })(TextAlign = exports.TextAlign || (exports.TextAlign = {})); - // - var TextWrapMode; - (function (TextWrapMode) { - // - TextWrapMode["TextWrapOff"] = "text-wrap-off"; - // - TextWrapMode["TextWrapTruncate"] = "text-wrap-truncate"; - // - TextWrapMode["TextWrapOn"] = "text-wrap-on"; - // - TextWrapMode["TextWrapAuto"] = "text-wrap-auto"; - })(TextWrapMode = exports.TextWrapMode || (exports.TextWrapMode = {})); - // - var TextWholeLineMode; - (function (TextWholeLineMode) { - // - TextWholeLineMode["TextWholeLineOff"] = "text-whole-line-off"; - // - TextWholeLineMode["TextWholeLineOn"] = "text-whole-line-on"; - // - TextWholeLineMode["TextWholeLineAuto"] = "text-whole-line-auto"; - })(TextWholeLineMode = exports.TextWholeLineMode || (exports.TextWholeLineMode = {})); - // - var TextBreakMode; - (function (TextBreakMode) { - // - TextBreakMode["TextBreakWhitespaceOnly"] = "text-break-ws-only"; - // - TextBreakMode["TextBreakAuto"] = "text-break-auto"; - })(TextBreakMode = exports.TextBreakMode || (exports.TextBreakMode = {})); - // type of aggregation - var AggType; - (function (AggType) { - // - AggType["AGG_SUM"] = "sum"; - // - AggType["AGG_AVG"] = "average"; - // - AggType["AGG_MIN"] = "min"; - // - AggType["AGG_MAX"] = "max"; - // - AggType["AGG_STDEV"] = "std-dev"; - // - AggType["AGG_STDEVP"] = "std-dev-p"; - // - AggType["AGG_VAR"] = "var"; - // - AggType["AGG_VARP"] = "var-p"; - // - AggType["AGG_COUNT"] = "count"; - // - AggType["AGG_COUNTD"] = "count-d"; - // - AggType["AGG_MEDIAN"] = "median"; - // - AggType["AGG_ATTR"] = "attr"; - // - AggType["AGG_NONE"] = "none"; - // - AggType["AGG_PERCENTILE"] = "percentile"; - // - AggType["AGG_YEAR"] = "year"; - // - AggType["AGG_QTR"] = "qtr"; - // - AggType["AGG_MONTH"] = "month"; - // - AggType["AGG_DAY"] = "day"; - // - AggType["AGG_HOUR"] = "hour"; - // - AggType["AGG_MINUTE"] = "minute"; - // - AggType["AGG_SECOND"] = "second"; - // - AggType["AGG_WEEK"] = "week"; - // - AggType["AGG_WEEKDAY"] = "weekday"; - // - AggType["AGG_MONTHYEAR"] = "month-year"; - // - AggType["AGG_MDY"] = "mdy"; - // - AggType["AGG_END"] = "end"; - // - AggType["TRUNC_YEAR"] = "trunc-year"; - // - AggType["TRUNC_QTR"] = "trunc-qtr"; - // - AggType["TRUNC_MONTH"] = "trunc-month"; - // - AggType["TRUNC_WEEK"] = "trunc-week"; - // - AggType["TRUNC_DAY"] = "trunc-day"; - // - AggType["TRUNC_HOUR"] = "trunc-hour"; - // - AggType["TRUNC_MINUTE"] = "trunc-minute"; - // - AggType["TRUNC_SECOND"] = "trunc-second"; - // - AggType["AGG_QUART1"] = "quart1"; - // - AggType["AGG_QUART3"] = "quart3"; - // - AggType["AGG_SKEWNESS"] = "skewness"; - // - AggType["AGG_KURTOSIS"] = "kurtosis"; - // - AggType["AGG_INOUT"] = "in-out"; - // - AggType["AGG_SUM_XSQR"] = "sum-xsqr"; - // - AggType["AGG_USER"] = "user"; - // - AggType["AGG_COLLECT"] = "collect"; - // - AggType["AGG_COVAR"] = "covar"; - // - AggType["AGG_COVARP"] = "covarp"; - // - AggType["AGG_CORR"] = "corr"; - })(AggType = exports.AggType || (exports.AggType = {})); - // DataValueFormatter::DataTypeEncodings has hardcoded values corresponding to following enum members. So any changes here should be done there too - var DataType; - (function (DataType) { - // - DataType["DT_INTEGER"] = "integer"; - // - DataType["DT_REAL"] = "real"; - // - DataType["DT_STRING"] = "cstring"; - // - DataType["DT_DATETIME"] = "datetime"; - // - DataType["DT_BOOLEAN"] = "boolean"; - // - DataType["DT_DATE"] = "date"; - // - DataType["DT_TUPLE"] = "tuple"; - // - DataType["DT_SPATIAL"] = "spatial"; - // - DataType["DT_UNKNOWN"] = "unknown"; - // - DataType["DT_BINARY"] = "binary"; - // - DataType["DT_TIME"] = "time"; - })(DataType = exports.DataType || (exports.DataType = {})); - // - var SortDirection; - (function (SortDirection) { - // ascending - SortDirection["ST_ASC"] = "asc"; - // descending - SortDirection["ST_DESC"] = "desc"; - })(SortDirection = exports.SortDirection || (exports.SortDirection = {})); - // - var SortType; - (function (SortType) { - // Use the defined ordering - SortType["ST_NATURAL"] = "data-source-order"; - // Alphabetic/numeric ordering of data - SortType["ST_ALPHABETIC"] = "alpha"; - // Specify a secondary field - SortType["ST_COMPUTED"] = "field"; - // Manually defined ordering - SortType["ST_MANUAL"] = "manual"; - })(SortType = exports.SortType || (exports.SortType = {})); - // - var SortEnd; - (function (SortEnd) { - // - SortEnd["ST_TOP"] = "top"; - // - SortEnd["ST_BOTTOM"] = "bottom"; - })(SortEnd = exports.SortEnd || (exports.SortEnd = {})); - // - var ForecastColumnType; - (function (ForecastColumnType) { - // - ForecastColumnType["FORECAST_NONE"] = "none"; - // - ForecastColumnType["FORECAST_VALUE"] = "value"; - // - ForecastColumnType["FORECAST_INDICATOR"] = "indicator"; - // - ForecastColumnType["FORECAST_PRECISION"] = "precision"; - // - ForecastColumnType["FORECAST_QUALITY"] = "quality"; - // - ForecastColumnType["FORECAST_FIT_TREND"] = "fit_trend"; - // - ForecastColumnType["FORECAST_PRECISION_PERCENT"] = "precision_percent"; - // - ForecastColumnType["FORECAST_PREDICTION_INTERVAL_UPPER"] = "prediction_upper"; - // - ForecastColumnType["FORECAST_PREDICTION_INTERVAL_LOWER"] = "prediction_lower"; - })(ForecastColumnType = exports.ForecastColumnType || (exports.ForecastColumnType = {})); - // - var MarkMarkersMode; - (function (MarkMarkersMode) { - // - MarkMarkersMode["MMM_Auto"] = "mmm-auto"; - // - MarkMarkersMode["MMM_All"] = "mmm_all"; - // - MarkMarkersMode["MMM_None"] = "mmm_none"; - // - MarkMarkersMode["MMM_Default"] = "mmm_default"; - })(MarkMarkersMode = exports.MarkMarkersMode || (exports.MarkMarkersMode = {})); - // - var PercentMode; - (function (PercentMode) { - // - PercentMode["PERCENT_CELL_IN_PANE"] = "cell-in-pane"; - // - PercentMode["PERCENT_ROW_IN_PANE"] = "row-in-pane"; - // - PercentMode["PERCENT_COLUMN_IN_PANE"] = "column-in-pane"; - // - PercentMode["PERCENT_PANE"] = "pane"; - // - PercentMode["PERCENT_ROW"] = "row"; - // - PercentMode["PERCENT_COLUMN"] = "column"; - // - PercentMode["PERCENT_TABLE"] = "table"; - })(PercentMode = exports.PercentMode || (exports.PercentMode = {})); - // - var SpecialValuesMode; - (function (SpecialValuesMode) { - // - SpecialValuesMode["SPECIAL_VALUES_HIDE_AND_WARN"] = "hide-and-warn"; - // - SpecialValuesMode["SPECIAL_VALUES_HIDE"] = "hide"; - // - SpecialValuesMode["SPECIAL_VALUES_HIDE_BREAK_LINES"] = "hide-break-lines"; - // - SpecialValuesMode["SPECIAL_VALUES_SHOW"] = "show"; - })(SpecialValuesMode = exports.SpecialValuesMode || (exports.SpecialValuesMode = {})); - // - var LayoutType; - (function (LayoutType) { - // - LayoutType["LAYOUT_CARTESIAN"] = "cartesian"; - // - LayoutType["LAYOUT_DEFAULT"] = "default"; - })(LayoutType = exports.LayoutType || (exports.LayoutType = {})); - // - var ShelfType; - (function (ShelfType) { - // - ShelfType["ST_NONE"] = "none-shelf"; - // - ShelfType["ST_COLUMNS_SHELF"] = "columns-shelf"; - // - ShelfType["ST_ROWS_SHELF"] = "rows-shelf"; - // - ShelfType["ST_PAGES_SHELF"] = "pages-shelf"; - // - ShelfType["ST_FILTER_SHELF"] = "filter-shelf"; - // - ShelfType["ST_IMAGE_SHELF"] = "image-shelf"; - // - ShelfType["ST_MEASURES_SHELF"] = "measures-shelf"; - // - ShelfType["ST_SHOWME_SHELF"] = "show-me-shelf"; - // - ShelfType["ST_ENCODING_SHELF"] = "encoding-shelf"; - // - ShelfType["ST_CLUSTER_SHELF"] = "cluster-shelf"; - // - ShelfType["ST_GEOMETRY_SHELF"] = "geometry-shelf"; - // - ShelfType["ST_END"] = "end-shelf"; - // - ShelfType["ST_FINAL"] = "final-shelf"; - })(ShelfType = exports.ShelfType || (exports.ShelfType = {})); - // - var RestrictType; - (function (RestrictType) { - // - RestrictType["RT_INTERSECT"] = "rt-intersection"; - // - RestrictType["RT_UNION"] = "rt-union"; - })(RestrictType = exports.RestrictType || (exports.RestrictType = {})); - // - var TooltipMode; - (function (TooltipMode) { - // - TooltipMode["TM_NONE"] = "none"; - // - TooltipMode["TM_STICKY"] = "sticky"; - // - TooltipMode["TM_SMOOTH"] = "smooth"; - })(TooltipMode = exports.TooltipMode || (exports.TooltipMode = {})); - // - var ColumnGroups; - (function (ColumnGroups) { - // 0x01 - ColumnGroups["COLS_IN_OUTPUT"] = "cols-in-output"; - // 0x02 - ColumnGroups["COLS_IN_FILTER_SHELF"] = "cols-in-filter-shelf"; - // 0x04 - ColumnGroups["COLS_REF_BY_FILTERS"] = "cols-ref-by-filters"; - // 0x08 - ColumnGroups["COLS_REF_BY_OMEASURES"] = "cols-ref-by-omeasures"; - // 0x10 - ColumnGroups["COLS_REF_BY_JOIN_LOD"] = "cols-ref-by-join-lod"; - // 0x20 - ColumnGroups["COLS_HIDDEN"] = "cols-hidden"; - // 0x40 - ColumnGroups["COLS_REF_BY_SORTS"] = "cols-ref-by-sorts"; - // - ColumnGroups["COLS_REF_BY_FILTERS_OR_SORTS"] = "cols-ref-by-filters-or-sorts"; - // - ColumnGroups["COLS_ON_SHELVES"] = "cols-on-shelves"; - // - ColumnGroups["COLS_ALL"] = "cols-all"; - })(ColumnGroups = exports.ColumnGroups || (exports.ColumnGroups = {})); - // - var ButtonsOption; - (function (ButtonsOption) { - // - ButtonsOption["BO_HIDE"] = "buttons-hide"; - })(ButtonsOption = exports.ButtonsOption || (exports.ButtonsOption = {})); - // - var SelectionRelaxationOption; - (function (SelectionRelaxationOption) { - // - SelectionRelaxationOption["SRO_ALLOW"] = "selection-relaxation-allow"; - // - SelectionRelaxationOption["SRO_DISALLOW"] = "selection-relaxation-disallow"; - })(SelectionRelaxationOption = exports.SelectionRelaxationOption || (exports.SelectionRelaxationOption = {})); - // - var EncodingType; - (function (EncodingType) { - // a text encoding - EncodingType["ET_TEXT"] = "text-encoding"; - // a color encoding - EncodingType["ET_COLOR"] = "color-encoding"; - // a size encoding - EncodingType["ET_SIZE"] = "size-encoding"; - // a shape encoding - EncodingType["ET_SHAPE"] = "shape-encoding"; - // an image encoding - EncodingType["ET_IMAGE"] = "image-encoding"; - // a sort (path) encoding (currently only for line or polygon charts) - EncodingType["ET_SORT"] = "sort-encoding"; - // a wedge size (angle) encoding (currently only for pie charts) - EncodingType["ET_WEDGESIZE"] = "wedge-size-encoding"; - // a geometry encoding - EncodingType["ET_GEOMETRY"] = "geometry-encoding"; - // a level of detail encoding - EncodingType["ET_LOD"] = "level-of-detail-encoding"; - // encoding used for the data highlighter/legend mechanism - EncodingType["ET_HIGHLIGHT"] = "highlight-encoding"; - // a tooltip encoding - EncodingType["ET_TOOLTIP"] = "tooltip-encoding"; - // a temporary label placed above marks for the table calc dialog - EncodingType["ET_RUNNINGORDER"] = "runningorder-encoding"; - // the number of encodings, this is invalid input for an encoding presentation model - EncodingType["NUM_ENCODINGS"] = "num-encodings"; - // an invalid encoding - EncodingType["ET_INVALID"] = "invalid-encoding"; - })(EncodingType = exports.EncodingType || (exports.EncodingType = {})); - // Enumeration of valid horizontal alignments. - var LabelHAlignment; - (function (LabelHAlignment) { - // - LabelHAlignment["LHA_Left"] = "h-align-left"; - // - LabelHAlignment["LHA_Center"] = "h-align-center"; - // - LabelHAlignment["LHA_Right"] = "h-align-right"; - // - LabelHAlignment["LHA_Automatic"] = "h-align-auto"; - })(LabelHAlignment = exports.LabelHAlignment || (exports.LabelHAlignment = {})); - // Enumeration of valid vertical alignments. - var LabelVAlignment; - (function (LabelVAlignment) { - // - LabelVAlignment["LVA_Bottom"] = "v-align-bottom"; - // - LabelVAlignment["LVA_Center"] = "v-align-center"; - // - LabelVAlignment["LVA_Top"] = "v-align-top"; - // - LabelVAlignment["LVA_Automatic"] = "v-align-auto"; - })(LabelVAlignment = exports.LabelVAlignment || (exports.LabelVAlignment = {})); - // Enumeration of valid label positions. - var LabelPosition; - (function (LabelPosition) { - // Position each text run relative to the center of the original bbox. Use the original bbox as the height and width of the text mark. Used for non-stacked OO text marks. - LabelPosition["CenterInOriginalBbox"] = "label-position-center-in-original-box"; - // Position each text run relative to the bottom left corner of the measured bbox. Use the measured bbox as the width and height of the label. Used for labels - LabelPosition["OriginAtLowerLeft"] = "label-position-origin-at-lower-left"; - // Position each text run relative to the center of the measured bbox. Use the measured bbox as the width and height of the text mark. Used for most text marks. - LabelPosition["OriginAtCenter"] = "label-position-origin-at-center"; - })(LabelPosition = exports.LabelPosition || (exports.LabelPosition = {})); - // Enumeration of ways to use color. Values can be or'ed together to make a mask for allowed options - var ColorMode; - (function (ColorMode) { - // Color user specified - ColorMode["CLRM_User"] = "clrm-user"; - // Color selected automatically - ColorMode["CLRM_Auto"] = "clrm-auto"; - // Color matches mark color - ColorMode["CLRM_Match"] = "clrm-match"; - // No color (transparent or not drawn) - ColorMode["CLRM_None"] = "clrm-none"; - })(ColorMode = exports.ColorMode || (exports.ColorMode = {})); - // - var MarkLabelsMode; - (function (MarkLabelsMode) { - // - MarkLabelsMode["MLM_All"] = "mlm-all"; - // - MarkLabelsMode["MLM_Selection"] = "mlm-selection"; - // - MarkLabelsMode["MLM_Highlight"] = "mlm-highlight"; - // - MarkLabelsMode["MLM_LineEnds"] = "mlm-line-ends"; - // min/max setting - MarkLabelsMode["MLM_Range"] = "mlm-range"; - // most recent (only relevant when date field is in play) - MarkLabelsMode["MLM_MostRecent"] = "mlm-most-recent"; - // ...this is " virtual " (runtime only, not saved, not shown as a user setting - MarkLabelsMode["MLM_MultipleValues"] = "mlm-multiple-values"; - // - MarkLabelsMode["MLM_Default"] = "mlm-default"; - })(MarkLabelsMode = exports.MarkLabelsMode || (exports.MarkLabelsMode = {})); - // - var MarkLabelsScope; - (function (MarkLabelsScope) { - // - MarkLabelsScope["MLS_Table"] = "mls-table"; - // - MarkLabelsScope["MLS_Pane"] = "mls-pane"; - // - MarkLabelsScope["MLS_Cell"] = "mls-cell"; - // - MarkLabelsScope["MLS_MultiMark"] = "mls-multimark"; - // ...this is " virtual " (runtime only, not saved, not shown as a user setting) - MarkLabelsScope["MLS_MultipleValues"] = "mls-multiple-values"; - // - MarkLabelsScope["MLS_Default"] = "mls-default"; - })(MarkLabelsScope = exports.MarkLabelsScope || (exports.MarkLabelsScope = {})); - // - var MarkLabelsVisibility; - (function (MarkLabelsVisibility) { - // - MarkLabelsVisibility["MLV_Hidden"] = "mlv-hidden"; - // - MarkLabelsVisibility["MLV_Visible"] = "mlv-visible"; - // - MarkLabelsVisibility["MLV_UseCurrent"] = "mlv-use-current"; - })(MarkLabelsVisibility = exports.MarkLabelsVisibility || (exports.MarkLabelsVisibility = {})); - // - var StackingMode; - (function (StackingMode) { - // - StackingMode["StackingOff"] = "off"; - // - StackingMode["StackingOn"] = "on"; - // - StackingMode["StackingAuto"] = "auto"; - })(StackingMode = exports.StackingMode || (exports.StackingMode = {})); - // - var MarkAlignment; - (function (MarkAlignment) { - // - MarkAlignment["MarkAlignmentLeft"] = "mark-alignment-left"; - // - MarkAlignment["MarkAlignmentRight"] = "mark-alignment-right"; - // - MarkAlignment["MarkAlignmentCenter"] = "mark-alignment-center"; - })(MarkAlignment = exports.MarkAlignment || (exports.MarkAlignment = {})); - // - var PaneLabelComposition; - (function (PaneLabelComposition) { - // - PaneLabelComposition["PLC_None"] = "pane-label-composition-none"; - // - PaneLabelComposition["PLC_Mixed"] = "pane-label-composition-mixed"; - // - PaneLabelComposition["PLC_All"] = "pane-label-composition-all"; - })(PaneLabelComposition = exports.PaneLabelComposition || (exports.PaneLabelComposition = {})); - // The user-specified mark type on the Marks Card - var PrimitiveType; - (function (PrimitiveType) { - // - PrimitiveType["PT_AUTOMATIC"] = "automatic"; - // - PrimitiveType["PT_TEXT"] = "text"; - // - PrimitiveType["PT_IMAGE"] = "image"; - // - PrimitiveType["PT_SHAPE"] = "shape"; - // - PrimitiveType["PT_RECTANGLE"] = "rectangle"; - // - PrimitiveType["PT_BAR"] = "bar"; - // - PrimitiveType["PT_GANTT"] = "gantt"; - // - PrimitiveType["PT_SQUARE"] = "square"; - // - PrimitiveType["PT_CIRCLE"] = "circle"; - // - PrimitiveType["PT_POLYLINE"] = "polyline"; - // line chart - PrimitiveType["PT_LINE"] = "line"; - // - PrimitiveType["PT_POLYGON"] = "polygon"; - // area chart - PrimitiveType["PT_AREA"] = "area"; - // - PrimitiveType["PT_PIE"] = "pie"; - // - PrimitiveType["PT_MULTIPOLYGON"] = "multipolygon"; - // Not an actual primitive type. This is just used to flag the UI that multiple types are in play. - PrimitiveType["PT_MULTIPLE"] = "multiple"; - // used for looping over all values - PrimitiveType["NUM_PRIMITIVES"] = "count"; - // used to flag an unset or invalid state - PrimitiveType["PT_INVALID"] = "invalid"; - })(PrimitiveType = exports.PrimitiveType || (exports.PrimitiveType = {})); - // Defines the way a given primitive behaves on a viz - for instance, a PT_CIRCLE is treated as a point, while a PT_POLYGON would be treated as an area. - var MarkType; - (function (MarkType) { - // - MarkType["MT_POINT"] = "point"; - // - MarkType["MT_LINE"] = "line"; - // - MarkType["MT_AREA"] = "area"; - // - MarkType["MT_INVALID"] = "invalid"; - })(MarkType = exports.MarkType || (exports.MarkType = {})); - // PaneAxis is used to describe which axis of a pane is the independent axis. - var PaneAxis; - (function (PaneAxis) { - // The independent axis is inferred from other properties of the pane. - PaneAxis["AXIS_AUTO"] = "auto"; - // - PaneAxis["AXIS_X"] = "x"; - // - PaneAxis["AXIS_Y"] = "y"; - })(PaneAxis = exports.PaneAxis || (exports.PaneAxis = {})); - // - var Rounding; - (function (Rounding) { - // - Rounding["Rounding_None"] = "none"; - // - Rounding["Rounding_Small"] = "small"; - // - Rounding["Rounding_Medium"] = "medium"; - // - Rounding["Rounding_Large"] = "large"; - })(Rounding = exports.Rounding || (exports.Rounding = {})); - // - var LineEnd; - (function (LineEnd) { - // - LineEnd["LineEnd_None"] = "none"; - // - LineEnd["LineEnd_Arrow"] = "arrow"; - // - LineEnd["LineEnd_OpenArrow"] = "open-arrow"; - // - LineEnd["LineEnd_Dot"] = "dot"; - })(LineEnd = exports.LineEnd || (exports.LineEnd = {})); - // - var LineEndSize; - (function (LineEndSize) { - // - LineEndSize["LineEndSize_Smallest"] = "smallest"; - // - LineEndSize["LineEndSize_Smaller"] = "smaller"; - // - LineEndSize["LineEndSize_Small"] = "small"; - // - LineEndSize["LineEndSize_Medium"] = "medium"; - // - LineEndSize["LineEndSize_Large"] = "large"; - // - LineEndSize["LineEndSize_Larger"] = "larger"; - // - LineEndSize["LineEndSize_Largest"] = "largest"; - })(LineEndSize = exports.LineEndSize || (exports.LineEndSize = {})); - // - var BodyType; - (function (BodyType) { - // - BodyType["BodyType_None"] = "none"; - // - BodyType["BodyType_Box"] = "box"; - // - BodyType["BodyType_Edge"] = "edge"; - })(BodyType = exports.BodyType || (exports.BodyType = {})); - // - var StyleTheme; - (function (StyleTheme) { - // - StyleTheme["themeClassic"] = "classic"; - // - StyleTheme["themeModern"] = "modern"; - // - StyleTheme["themeClean"] = "clean"; - // - StyleTheme["themeSmooth"] = "smooth"; - // - StyleTheme["themeCustom"] = "custom"; - })(StyleTheme = exports.StyleTheme || (exports.StyleTheme = {})); - // - var AxisFoldState; - (function (AxisFoldState) { - // - AxisFoldState["afNone"] = "none"; - // - AxisFoldState["afFolded"] = "folded"; - // - AxisFoldState["afSynchronized"] = "synchronized"; - })(AxisFoldState = exports.AxisFoldState || (exports.AxisFoldState = {})); - // - var LinePattern; - (function (LinePattern) { - // - LinePattern["LinePatternNone"] = "none"; - // - LinePattern["LinePatternSolid"] = "solid"; - // - LinePattern["LinePatternDashed"] = "dashed"; - // - LinePattern["LinePatternDotted"] = "dotted"; - })(LinePattern = exports.LinePattern || (exports.LinePattern = {})); - // - var LineVisibility; - (function (LineVisibility) { - // - LineVisibility["LineVisibilityAuto"] = "automatic"; - // - LineVisibility["LineVisibilityOn"] = "on"; - // - LineVisibility["LineVisibilityOff"] = "off"; - })(LineVisibility = exports.LineVisibility || (exports.LineVisibility = {})); - // - var StylesLinePattern; - (function (StylesLinePattern) { - // - StylesLinePattern["StylesLinePatternSolid"] = "solid"; - // - StylesLinePattern["StylesLinePatternDashed"] = "dashed"; - // - StylesLinePattern["StylesLinePatternDotted"] = "dotted"; - })(StylesLinePattern = exports.StylesLinePattern || (exports.StylesLinePattern = {})); - // - var LineCap; - (function (LineCap) { - // - LineCap["LineCapFlat"] = "flat"; - // - LineCap["LineCapSquare"] = "square"; - // - LineCap["LineCapRound"] = "round"; - // - LineCap["LineCapTriangle"] = "triangle"; - })(LineCap = exports.LineCap || (exports.LineCap = {})); - // - var LineJoin; - (function (LineJoin) { - // - LineJoin["BevelJoin"] = "bevel"; - // - LineJoin["MiterJoin"] = "miter"; - // - LineJoin["RoundJoin"] = "round"; - })(LineJoin = exports.LineJoin || (exports.LineJoin = {})); - // - var LineAlignment; - (function (LineAlignment) { - // - LineAlignment["AlignmentCenter"] = "center"; - // - LineAlignment["AlignmentInset"] = "inset"; - })(LineAlignment = exports.LineAlignment || (exports.LineAlignment = {})); - // - var FillMode; - (function (FillMode) { - // - FillMode["FillEvenOdd"] = "even-odd"; - // - FillMode["FillWinding"] = "winding"; - })(FillMode = exports.FillMode || (exports.FillMode = {})); - // - var BorderStyle; - (function (BorderStyle) { - // none - BorderStyle["BorderStyleNone"] = "bs-none"; - // hidden - BorderStyle["BorderStyleHidden"] = "bs-hidden"; - // dotted - BorderStyle["BorderStyleDotted"] = "bs-dotted"; - // dashed - BorderStyle["BorderStyleDashed"] = "bs-dashed"; - // solid - BorderStyle["BorderStyleSolid"] = "bs-solid"; - // double - BorderStyle["BorderStyleDouble"] = "bs-double"; - // groove - BorderStyle["BorderStyleGroove"] = "bs-groove"; - // ridge - BorderStyle["BorderStyleRidge"] = "bs-ridge"; - // inset - BorderStyle["BorderStyleInset"] = "bs-inset"; - // outset - BorderStyle["BorderStyleOutset"] = "bs-outset"; - // invalid - BorderStyle["BorderStyleInvalid"] = "bs-invalid"; - })(BorderStyle = exports.BorderStyle || (exports.BorderStyle = {})); - // - var ColorPaletteType; - (function (ColorPaletteType) { - // - ColorPaletteType["ColorPaletteRegular"] = "color-palette-regular"; - // - ColorPaletteType["ColorPaletteOrderedDiverging"] = "palette-ordered-diverging"; - // - ColorPaletteType["ColorPaletteOrderedLinear"] = "palette-ordered-linear"; - })(ColorPaletteType = exports.ColorPaletteType || (exports.ColorPaletteType = {})); - // - var PaletteFlags; - (function (PaletteFlags) { - // - PaletteFlags["PaletteFlagNone"] = "palette-flag-none"; - // - PaletteFlags["PaletteFlagCustom"] = "palette-flag-custom"; - // - PaletteFlags["PaletteFlagNotQuantitative"] = "palette-flag-not-quantitative"; - // - PaletteFlags["PaletteFlagNotCategorical"] = "palette-flag-not-categorical"; - // - PaletteFlags["PaletteFlagNotReferenceBand"] = "palette-flag-not-reference-band"; - // - PaletteFlags["PaletteFlagNotBoxplot"] = "palette-flag-not-boxplot"; - // - PaletteFlags["PaletteFlagNotFilledMapLight"] = "palette-flag-not-filled-map-light"; - // - PaletteFlags["PaletteFlagNotFilledMapDark"] = "palette-flag-not-filled-map-dark"; - // - PaletteFlags["PaletteFlagLegacy"] = "palette-flag-legacy"; - })(PaletteFlags = exports.PaletteFlags || (exports.PaletteFlags = {})); - // - var DefaultPaletteType; - (function (DefaultPaletteType) { - // - DefaultPaletteType["SmallNominal"] = "palette-default-small-nominal"; - // - DefaultPaletteType["LargeNominal"] = "palette-default-large-nominal"; - // - DefaultPaletteType["Ordinal"] = "palette-default-ordinal"; - // - DefaultPaletteType["QuantitativePositive"] = "palette-default-quant-pos"; - // - DefaultPaletteType["QuantitativeNegative"] = "palette-default-quant-neg"; - // - DefaultPaletteType["QuantitativeDiverging"] = "palette-default-quant-div"; - // - DefaultPaletteType["QuantitativePositiveLight"] = "palette-default-quant-pos-light"; - // - DefaultPaletteType["QuantitativeNegativeLight"] = "palette-default-quant-neg-light"; - // - DefaultPaletteType["QuantitativeDivergingLight"] = "palette-default-quant-div-light"; - // - DefaultPaletteType["QuantitativePositiveArea"] = "palette-default-quant-pos-area"; - // - DefaultPaletteType["QuantitativeNegativeArea"] = "palette-default-quant-neg-area"; - // - DefaultPaletteType["QuantitativeDivergingArea"] = "palette-default-quant-div-area"; - })(DefaultPaletteType = exports.DefaultPaletteType || (exports.DefaultPaletteType = {})); - // - var ShowBounds; - (function (ShowBounds) { - // - ShowBounds["Both"] = "show-both"; - // - ShowBounds["Upper"] = "show-upper"; - // - ShowBounds["Lower"] = "show-lower"; - })(ShowBounds = exports.ShowBounds || (exports.ShowBounds = {})); - // Sample vs. population standard deviation - var StDevType; - (function (StDevType) { - // - StDevType["Sample"] = "stdev-sample"; - // - StDevType["Population"] = "stdev-population"; - })(StDevType = exports.StDevType || (exports.StDevType = {})); - // - var ReferenceLineFormulaGroup; - (function (ReferenceLineFormulaGroup) { - // - ReferenceLineFormulaGroup["None"] = "none"; - // - ReferenceLineFormulaGroup["Line"] = "line"; - // - ReferenceLineFormulaGroup["Band"] = "band"; - // - ReferenceLineFormulaGroup["Distribution"] = "distribution"; - // - ReferenceLineFormulaGroup["Boxplot"] = "boxplot"; - })(ReferenceLineFormulaGroup = exports.ReferenceLineFormulaGroup || (exports.ReferenceLineFormulaGroup = {})); - // - var ReferenceLineScopeType; - (function (ReferenceLineScopeType) { - // - ReferenceLineScopeType["PerCell"] = "per-cell"; - // - ReferenceLineScopeType["PerPane"] = "per-pane"; - // - ReferenceLineScopeType["PerTable"] = "per-table"; - })(ReferenceLineScopeType = exports.ReferenceLineScopeType || (exports.ReferenceLineScopeType = {})); - // how should the line be labeled - var ReferenceLineLabelType; - (function (ReferenceLineLabelType) { - // no label - ReferenceLineLabelType["None"] = "none"; - // an automatically generated label - ReferenceLineLabelType["Automatic"] = "automatic"; - // - ReferenceLineLabelType["Value"] = "value"; - // - ReferenceLineLabelType["Computation"] = "computation"; - // a user defined label - ReferenceLineLabelType["Custom"] = "custom"; - })(ReferenceLineLabelType = exports.ReferenceLineLabelType || (exports.ReferenceLineLabelType = {})); - // how should the line be computed - var ReferenceLineFormulaType; - (function (ReferenceLineFormulaType) { - // a user specified constant value - ReferenceLineFormulaType["Constant"] = "constant"; - // - ReferenceLineFormulaType["Total"] = "total"; - // total of all values at the given scope <- is this correct? looks like comment from FormulaTotal - ReferenceLineFormulaType["Sum"] = "sum"; - // minimum value in the scope - ReferenceLineFormulaType["Min"] = "min"; - // maximum value in the scope - ReferenceLineFormulaType["Max"] = "max"; - // average value in the scope - ReferenceLineFormulaType["Average"] = "average"; - // median value in the scope - ReferenceLineFormulaType["Median"] = "median"; - // the n quantiles values in the scope - ReferenceLineFormulaType["Quantiles"] = "quantiles"; - // a given percentile in the scope - ReferenceLineFormulaType["Percentile"] = "percentile"; - // mean +- standard deviation - ReferenceLineFormulaType["StandardDeviation"] = "standard-deviation"; - // a given confidence interval around the mean - ReferenceLineFormulaType["ConfidenceInterval"] = "confidence-interval"; - // - ReferenceLineFormulaType["MedianConfidenceInterval"] = "median-confidence-interval"; - })(ReferenceLineFormulaType = exports.ReferenceLineFormulaType || (exports.ReferenceLineFormulaType = {})); - // Line or confidence interval or both - var ReferenceLineConfidenceIntervalState; - (function (ReferenceLineConfidenceIntervalState) { - // display line only - ReferenceLineConfidenceIntervalState["LineOnly"] = "line-only"; - // display the line and a confidence interval - ReferenceLineConfidenceIntervalState["LineAndConfidenceInterval"] = "line-and-interval"; - // display confidence interval only - ReferenceLineConfidenceIntervalState["ConfidenceIntervalOnly"] = "interval-only"; - })(ReferenceLineConfidenceIntervalState = exports.ReferenceLineConfidenceIntervalState || (exports.ReferenceLineConfidenceIntervalState = {})); - // type of distribution. i.e. Percentage, Percentile, Quantile, and Standard Deviation - var ReferenceLineDistributionType; - (function (ReferenceLineDistributionType) { - // distribution type percentage - ReferenceLineDistributionType["Percentages"] = "percentages"; - // distribution type percentile - ReferenceLineDistributionType["Percentiles"] = "percentiles"; - // distribution type quantile - ReferenceLineDistributionType["Quantiles"] = "quantiles"; - // distribution type standard deviation - ReferenceLineDistributionType["StandardDeviation"] = "standard-deviation"; - })(ReferenceLineDistributionType = exports.ReferenceLineDistributionType || (exports.ReferenceLineDistributionType = {})); - // the kind of LOD calc to use for a given reference line - var ReferenceLineLODCalcType; - (function (ReferenceLineLODCalcType) { - // Create a formula using a FIXED-like level-of-detail calculation, to which sheet filters apply, that will go onto a specific sheet - ReferenceLineLODCalcType["MeasureFormula"] = "measure-formula"; - // Create a boolean formula that can be used as a filter - ReferenceLineLODCalcType["BooleanFilter"] = "boolean-filter"; - })(ReferenceLineLODCalcType = exports.ReferenceLineLODCalcType || (exports.ReferenceLineLODCalcType = {})); - // - var BoxplotWhiskerType; - (function (BoxplotWhiskerType) { - // - BoxplotWhiskerType["Standard"] = "standard"; - // - BoxplotWhiskerType["Minmax"] = "minmax"; - })(BoxplotWhiskerType = exports.BoxplotWhiskerType || (exports.BoxplotWhiskerType = {})); - // categories of connection types displayed by the connection UI - var ConnectionTypeCategory; - (function (ConnectionTypeCategory) { - // standard database - ConnectionTypeCategory["CTC_Database"] = "database"; - // 'More Items ...' meta item - ConnectionTypeCategory["CTC_More"] = "more"; - // Other file types - ConnectionTypeCategory["CTC_Other"] = "other"; - // invalid connection category - ConnectionTypeCategory["CTC_Invalid"] = "invalid"; - })(ConnectionTypeCategory = exports.ConnectionTypeCategory || (exports.ConnectionTypeCategory = {})); - // a logical grouping of connection types displayed by the connection UI - var ConnectionTypeGroup; - (function (ConnectionTypeGroup) { - // in a file - ConnectionTypeGroup["CTG_File"] = "file"; - // on a server - ConnectionTypeGroup["CTG_Server"] = "server"; - // on a recent server - ConnectionTypeGroup["CTG_MruServer"] = "mru-server"; - // invalid group - ConnectionTypeGroup["CTG_Invalid"] = "invalid"; - })(ConnectionTypeGroup = exports.ConnectionTypeGroup || (exports.ConnectionTypeGroup = {})); - // The type of metadata a column contains - var CubeMetadataCategory; - (function (CubeMetadataCategory) { - // cube's name - CubeMetadataCategory["CMC_Name"] = "name"; - // cube's description - CubeMetadataCategory["CMC_Description"] = "description"; - // cube's last updated timestamp - CubeMetadataCategory["CMC_LastUpdated"] = "last-updated"; - // invalid - CubeMetadataCategory["CMC_Invalid"] = "invalid"; - })(CubeMetadataCategory = exports.CubeMetadataCategory || (exports.CubeMetadataCategory = {})); - // The type of widget to display to the user when they are specifying connection info - var ConnectionWidgetType; - (function (ConnectionWidgetType) { - // show the join area - ConnectionWidgetType["CWT_JoinArea"] = "join-area"; - // show the cube selection ui - ConnectionWidgetType["CWT_CubeSelection"] = "cube-selection"; - // show the google analytics ui - ConnectionWidgetType["CWT_GoogleAnalytics"] = "google-analytics"; - // show the tableau server ui - ConnectionWidgetType["CWT_TableauServer"] = "tableau-server"; - // do not show any connection widget - ConnectionWidgetType["CWT_NoWidget"] = "no-widget"; - // invalid - ConnectionWidgetType["CWT_Invalid"] = "invalid"; - })(ConnectionWidgetType = exports.ConnectionWidgetType || (exports.ConnectionWidgetType = {})); - // The type of google analytics basic info - var GoogleBasicInfoType; - (function (GoogleBasicInfoType) { - // google analytics account - GoogleBasicInfoType["GA_Account"] = "ga-account"; - // google analytics property - GoogleBasicInfoType["GA_Property"] = "ga-property"; - // google analytics view - GoogleBasicInfoType["GA_View"] = "ga-view"; - // invalid - GoogleBasicInfoType["GA_Invalid"] = "invalid"; - })(GoogleBasicInfoType = exports.GoogleBasicInfoType || (exports.GoogleBasicInfoType = {})); - // The way in which a piece of connection information is specified - var ConnectionSpecificationType; - (function (ConnectionSpecificationType) { - // Uses a combo box - ConnectionSpecificationType["CST_ComboBox"] = "combo-box"; - // Uses a line edit - ConnectionSpecificationType["CST_LineEdit"] = "line-edit"; - // Uses a line edit with a browse button next to it - ConnectionSpecificationType["CST_LineEditBrowse"] = "line-edit-browse"; - // invalid - ConnectionSpecificationType["CST_Invalid"] = "invalid"; - })(ConnectionSpecificationType = exports.ConnectionSpecificationType || (exports.ConnectionSpecificationType = {})); - // GA Date Range - var DateRange; - (function (DateRange) { - // - DateRange["DateRangeFirst"] = "date-range-first"; - // - DateRange["DateRangeLast30Days"] = "date-range-last30"; - // - DateRange["DateRangeToday"] = "date-range-today"; - // - DateRange["DateRangeYesterday"] = "date-range-yesterday"; - // - DateRange["DateRangeLastWeek"] = "date-range-last-week"; - // - DateRange["DateRangeLastMonth"] = "date-range-last-month"; - // - DateRange["DateRangeLastYear"] = "date-range-last-year"; - // - DateRange["DateRangeThisWeekToYesterday"] = "date-range-this-week-to-yesterday"; - // - DateRange["DateRangeThisMonthToYesterday"] = "date-range-this-month-to-yesterday"; - // - DateRange["DateRangeThisYearToYesterday"] = "date-range-this-year-to-yesterday"; - // - DateRange["DateRangeLastWeekToYesterday"] = "date-range-last-week-to-yesterday"; - // - DateRange["DateRangeLastMonthToYesterday"] = "date-range-last-month-to-yesterday"; - // - DateRange["DateRangeLastYearToYesterday"] = "date-range-last-year-to-yesterday"; - // - DateRange["DateRangeFixedRange"] = "date-range-fixed-range"; - // - DateRange["DateRangeFixedStart"] = "date-range-fixed-start"; - // - DateRange["DateRangeCount"] = "date-range-count"; - })(DateRange = exports.DateRange || (exports.DateRange = {})); - // Specifies the type of widget to show in ConnectServerWidget - var ConnectServerWidgetType; - (function (ConnectServerWidgetType) { - // invalid - ConnectServerWidgetType["CSWT_Invalid"] = "invalid"; - // microsoft access - ConnectServerWidgetType["CSWT_Access"] = "access"; - // generic odbc - ConnectServerWidgetType["CSWT_ODBC"] = "odbc"; - // cubes - ConnectServerWidgetType["CSWT_Cube"] = "cube"; - // relational data sources - ConnectServerWidgetType["CSWT_Relational"] = "relational"; - })(ConnectServerWidgetType = exports.ConnectServerWidgetType || (exports.ConnectServerWidgetType = {})); - // - var AuthenticationEnumsMode; - (function (AuthenticationEnumsMode) { - // no authentication widget - AuthenticationEnumsMode["AuthModeNone"] = "auth-mode-none"; - // username and password - AuthenticationEnumsMode["AuthModeBasic"] = "auth-mode-basic"; - // username and password can be blank - AuthenticationEnumsMode["AuthModeBasicNoValidateFields"] = "auth-mode-basic-no-validate-fields"; - // only username - AuthenticationEnumsMode["AuthModeBasicUserNameOnly"] = "auth-mode-basic-username-only"; - // aws access key and secret ID - AuthenticationEnumsMode["AuthModeBasicAWS"] = "auth-mode-basic-aws"; - // username, password, and a list of AuthOptions with radio buttons - AuthenticationEnumsMode["AuthModeRadio"] = "auth-mode-radio"; - // Like AuthModeRadio, but enable username/password even for integrated auth - AuthenticationEnumsMode["AuthModeRadioUnindented"] = "auth-mode-radio-unindented"; - // username, password, and a list of AuthOptions with a combobox - AuthenticationEnumsMode["AuthModeComboBox"] = "auth-mode-combobox"; - // Like AuthModeCombobox, but with option not requiring username/password - AuthenticationEnumsMode["AuthModeComboBoxIntegrated"] = "auth-mode-combobox-integrated"; - // driver, authentication, username, realm, etc - AuthenticationEnumsMode["AuthModeHive"] = "auth-mode-hive"; - // none, azure marketplace account, explicit - AuthenticationEnumsMode["AuthModeOData"] = "auth-mode-odata"; - // edition, authentication, sso domain, etc - AuthenticationEnumsMode["AuthModeSharePoint"] = "auth-mode-sharepoint"; - // username, password, client, & language - AuthenticationEnumsMode["AuthModeSAPBW"] = "auth-mode-sapbw"; - // Ability to switch between two different auth modes each in their own modal dialogs (basic and oauth) - AuthenticationEnumsMode["AuthModeSwitchModal"] = "auth-mode-switch-modal"; - })(AuthenticationEnumsMode = exports.AuthenticationEnumsMode || (exports.AuthenticationEnumsMode = {})); - // - var AuthenticationEnumsReconnectMode; - (function (AuthenticationEnumsReconnectMode) { - // Auth not needed for reconnect - AuthenticationEnumsReconnectMode["ReconnectModeNone"] = "reconnect-mode-none"; - // Username and password - AuthenticationEnumsReconnectMode["ReconnectModeBasic"] = "reconnect-mode-basic"; - // Access file - AuthenticationEnumsReconnectMode["ReconnectModeAccess"] = "reconnect-mode-access"; - // Microsoft Azure Data Market (OData) - AuthenticationEnumsReconnectMode["ReconnectModeDataMarket"] = "reconnect-mode-data-market"; - // Google OAuth - AuthenticationEnumsReconnectMode["ReconnectModeGoogleOAuth"] = "reconnect-mode-google-oauth"; - // SalesforceOAuth, with the option of username/password auth - AuthenticationEnumsReconnectMode["ReconnectModeSalesforceOAuth"] = "reconnect-mode-salesforce-oauth"; - // Web data connector - AuthenticationEnumsReconnectMode["ReconnectModeWebData"] = "reconnect-mode-web-data"; - })(AuthenticationEnumsReconnectMode = exports.AuthenticationEnumsReconnectMode || (exports.AuthenticationEnumsReconnectMode = {})); - // - var AuthenticationEnumsAuthOption; - (function (AuthenticationEnumsAuthOption) { - // FIRST - AuthenticationEnumsAuthOption["AuthExplicit"] = "auth-option-explicit"; - // - AuthenticationEnumsAuthOption["AuthExplicitUnindented"] = "auth-option-explicit-unindented"; - // - AuthenticationEnumsAuthOption["AuthUseWindows"] = "auth-option-use-windows"; - // - AuthenticationEnumsAuthOption["AuthUseWindowsPreferred"] = "auth-option-windows-preferred"; - // - AuthenticationEnumsAuthOption["AuthTeradata"] = "auth-option-teradata"; - // - AuthenticationEnumsAuthOption["AuthLDAP"] = "auth-option-ldap"; - // - AuthenticationEnumsAuthOption["AuthVirtualNode"] = "auth-option-virtual-node"; - // - AuthenticationEnumsAuthOption["AuthODataAccount"] = "auth-option-odata"; - // - AuthenticationEnumsAuthOption["AuthNone"] = "auth-option-none"; - // - AuthenticationEnumsAuthOption["AuthKerberos"] = "auth-option-kerberos"; - // Introduced for Kerberos with fallback, recognizing that the db may or may not be on Windows - AuthenticationEnumsAuthOption["AuthIntegrated"] = "auth-option-integrated"; - // - AuthenticationEnumsAuthOption["AuthUsername"] = "auth-option-username"; - // - AuthenticationEnumsAuthOption["AuthUsernameAndPassword"] = "auth-option-username-and-password"; - // - AuthenticationEnumsAuthOption["AuthSSL"] = "auth-option-ssl"; - // - AuthenticationEnumsAuthOption["AuthHDIEmulator"] = "auth-hdi-emulator"; - // - AuthenticationEnumsAuthOption["AuthHDIService"] = "auth-hdi-service"; - // - AuthenticationEnumsAuthOption["AuthHTTP"] = "auth-http"; - // - AuthenticationEnumsAuthOption["AuthHTTPS"] = "auth-https"; - // - AuthenticationEnumsAuthOption["AuthAccessNoSecurity"] = "auth-option-access-no"; - // - AuthenticationEnumsAuthOption["AuthAccessYesSecurity"] = "auth-option-access-yes"; - // - AuthenticationEnumsAuthOption["AuthOAuth"] = "auth-oauth"; - // - AuthenticationEnumsAuthOption["AuthForms"] = "auth-forms"; - // - AuthenticationEnumsAuthOption["AuthThirdPartySSO"] = "auth-third-party-SSO"; - // LAST - AuthenticationEnumsAuthOption["AuthInvalid"] = "auth-option-invalid"; - })(AuthenticationEnumsAuthOption = exports.AuthenticationEnumsAuthOption || (exports.AuthenticationEnumsAuthOption = {})); - // data source validation modes - var DataSourceParserValidationMode; - (function (DataSourceParserValidationMode) { - // - DataSourceParserValidationMode["WorkbookLoadValidation"] = "workbook-load-validation"; - // - DataSourceParserValidationMode["AutoValidation"] = "auto-validation"; - // - DataSourceParserValidationMode["ForceValidation"] = "force-validation"; - // - DataSourceParserValidationMode["PreventValidation"] = "prevent-validation"; - // - DataSourceParserValidationMode["PreventValidationAndThrow"] = "prevent-validation-and-throw"; - })(DataSourceParserValidationMode = exports.DataSourceParserValidationMode || (exports.DataSourceParserValidationMode = {})); - // Enum for DataGrid/MetadataGrid fields reordering - var FieldOrderType; - (function (FieldOrderType) { - // - FieldOrderType["DATASOURCE_ORDER"] = "datasource-order"; - // - FieldOrderType["ALPHA_PER_TABLE"] = "alpha-per-table"; - // - FieldOrderType["ALPHABETICAL_ORDER"] = "alphabetical-order"; - // - FieldOrderType["CUSTOM_ORDER"] = "custom-order"; - })(FieldOrderType = exports.FieldOrderType || (exports.FieldOrderType = {})); - // - var LineInterpolationMode; - (function (LineInterpolationMode) { - // - LineInterpolationMode["LIM_Linear"] = "lim-linear"; - // - LineInterpolationMode["LIM_Step"] = "lim-step"; - // - LineInterpolationMode["LIM_Jump"] = "lim-jump"; - })(LineInterpolationMode = exports.LineInterpolationMode || (exports.LineInterpolationMode = {})); - // - var LineMarkerPosition; - (function (LineMarkerPosition) { - // - LineMarkerPosition["LMP_Left"] = "lmp-left"; - // - LineMarkerPosition["LMP_Center"] = "lmp-center"; - // - LineMarkerPosition["LMP_Right"] = "lmp-right"; - })(LineMarkerPosition = exports.LineMarkerPosition || (exports.LineMarkerPosition = {})); - // Enumeration for the type of join connecting two tables - var SQLJoinType; - (function (SQLJoinType) { - // - SQLJoinType["SQL_InnerJoin"] = "sql-inner-join"; - // - SQLJoinType["SQL_LeftJoin"] = "sql-left-join"; - // - SQLJoinType["SQL_RightJoin"] = "sql-right-join"; - // - SQLJoinType["SQL_FullJoin"] = "sql-full-join"; - // - SQLJoinType["SQL_CrossJoin"] = "sql-cross-join"; - })(SQLJoinType = exports.SQLJoinType || (exports.SQLJoinType = {})); - // - var FolderRole; - (function (FolderRole) { - // - FolderRole["FOLDER_DIMENSIONS"] = "dimensions"; - // - FolderRole["FOLDER_MEASURES"] = "measure"; - // - FolderRole["FOLDER_GROUPS"] = "groups"; - // - FolderRole["FOLDER_PARAMETERS"] = "parameters"; - })(FolderRole = exports.FolderRole || (exports.FolderRole = {})); - // - var FieldTypeIconSet; - (function (FieldTypeIconSet) { - // - FieldTypeIconSet["FT_SET_ALL"] = "all"; - // - FieldTypeIconSet["FT_SET_CUBE_MEASURES"] = "cube-measures"; - // - FieldTypeIconSet["FT_SET_CUBE_DIMENSIONS"] = "cube-dimensions"; - })(FieldTypeIconSet = exports.FieldTypeIconSet || (exports.FieldTypeIconSet = {})); - // - var FieldPivotStrategy; - (function (FieldPivotStrategy) { - // - FieldPivotStrategy["PIVOT_ON_KEY"] = "pivot-on-key"; - // - FieldPivotStrategy["PIVOT_ON_ALIAS"] = "pivot-on-alias"; - })(FieldPivotStrategy = exports.FieldPivotStrategy || (exports.FieldPivotStrategy = {})); - // - var AliasType; - (function (AliasType) { - // - AliasType["ALIAS_NOTSET"] = "alias-not-set"; - // - AliasType["ALIAS_BEGIN"] = "alias-begin"; - // - AliasType["ALIAS_KEY"] = "alias-key"; - // - AliasType["ALIAS_KEY_NAME"] = "alias-key-name"; - // - AliasType["ALIAS_KEY_MEDNAME"] = "alias-key-medname"; - // - AliasType["ALIAS_KEY_LONGNAME"] = "alias-key-longname"; - // - AliasType["ALIAS_NAME"] = "alias-name"; - // - AliasType["ALIAS_NAME_KEY"] = "alias-name-key"; - // - AliasType["ALIAS_MEDNAME"] = "alias-medname"; - // - AliasType["ALIAS_MEDNAME_KEY"] = "alias-medname-key"; - // - AliasType["ALIAS_LONGNAME"] = "alias-longname"; - // - AliasType["ALIAS_LONGNAME_KEY"] = "alias-longname-key"; - // - AliasType["ALIAS_END"] = "alias-end"; - })(AliasType = exports.AliasType || (exports.AliasType = {})); - // - var AliasTypes; - (function (AliasTypes) { - // - AliasTypes["MASK_ALIAS_KEY"] = "mask-alias-key"; - // - AliasTypes["MASK_ALIAS_NAME"] = "mask-alias-name"; - // - AliasTypes["MASK_ALIAS_MEDNAME"] = "mask-alias-medname"; - // - AliasTypes["MASK_ALIAS_LONGNAME"] = "mask-alias-longname"; - })(AliasTypes = exports.AliasTypes || (exports.AliasTypes = {})); - // - var FieldRole; - (function (FieldRole) { - // - FieldRole["ROLE_DIMENSION"] = "dimension"; - // - FieldRole["ROLE_MEASURE"] = "measure"; - // - FieldRole["ROLE_UNKNOWN"] = "unknown"; - })(FieldRole = exports.FieldRole || (exports.FieldRole = {})); - // - var FieldType; - (function (FieldType) { - // - FieldType["TYPE_QUANTITATIVE"] = "quantitative"; - // - FieldType["TYPE_ORDINAL"] = "ordinal"; - // - FieldType["TYPE_NOMINAL"] = "nominal"; - // - FieldType["TYPE_UNKNOWN"] = "unknown"; - })(FieldType = exports.FieldType || (exports.FieldType = {})); - // - var DataSourceOrder; - (function (DataSourceOrder) { - // - DataSourceOrder["DSO_ALPHABETIC"] = "dso-alphabetic"; - // - DataSourceOrder["DSO_ORDINAL"] = "dso-ordinal"; - })(DataSourceOrder = exports.DataSourceOrder || (exports.DataSourceOrder = {})); - // Where the column comes from - var ColumnClass; - (function (ColumnClass) { - // A metadata column (O or Q Measures) - ColumnClass["COL_METADATA"] = "col-metadata"; - // A physical column on the database - ColumnClass["COL_DATABASE"] = "col-database"; - // A numberic bin (a special kind of calculated column) - ColumnClass["COL_NUMERICBIN"] = "col-numericbin"; - // A Categorical bin (group) - ColumnClass["COL_CATEGORICALBIN"] = "col-categoricalbin"; - // A column instance - ColumnClass["COL_INSTANCE"] = "col-instance"; - // A (raw) mdx calculated column - ColumnClass["COL_MDXCALC"] = "col-mdxcalc"; - // A user-defined calculated column, Tableau expression syntax - ColumnClass["COL_USERCALC"] = "col-usercalc"; - // A column that would have been COL_DATABASE, but the underlying database column does not exist - ColumnClass["COL_DANGLING"] = "col-dangling"; - // A column that contains local supplied data (e.g. Latitude) - ColumnClass["COL_LOCALDATA"] = "col-localdata"; - // A column that contains a visual model attribute (e.g. PaneIndex, Color, ...) - ColumnClass["COL_VISUALDATA"] = "col-visualdata"; - // A column that's a Group (a " Set " in UI terminology) - ColumnClass["COL_GROUP"] = "col-group"; - })(ColumnClass = exports.ColumnClass || (exports.ColumnClass = {})); - // - var VTAggType; - (function (VTAggType) { - // - VTAggType["VTAGG_SUM"] = "sum"; - // - VTAggType["VTAGG_AVG"] = "avg"; - // - VTAggType["VTAGG_MIN"] = "min"; - // - VTAggType["VTAGG_MAX"] = "max"; - // - VTAggType["VTAGG_SERVER"] = "server"; - // - VTAggType["VTAGG_NONE"] = "none"; - // - VTAggType["VTAGG_DEFAULT"] = "default"; - })(VTAggType = exports.VTAggType || (exports.VTAggType = {})); - // - var EntityType; - (function (EntityType) { - // - EntityType["NoEnumerationEntity"] = "no-enumeration-entity"; - // - EntityType["DatabaseEntity"] = "database-entity"; - // - EntityType["SchemaEntity"] = "schema-entity"; - // - EntityType["TableEntity"] = "table-entity"; - })(EntityType = exports.EntityType || (exports.EntityType = {})); - // - var PickEntitySearchType; - (function (PickEntitySearchType) { - // - PickEntitySearchType["PickEntitySearchType_StartsWith"] = "starts-with"; - // - PickEntitySearchType["PickEntitySearchType_Contains"] = "contains"; - // - PickEntitySearchType["PickEntitySearchType_ExactMatch"] = "exact-match"; - // - PickEntitySearchType["PickEntitySearchType_DEFAULT"] = "default"; - })(PickEntitySearchType = exports.PickEntitySearchType || (exports.PickEntitySearchType = {})); - // Parsing methods and structures. - var ExpressionOp; - (function (ExpressionOp) { - // - ExpressionOp["LogicalOr"] = "op-logical-or"; - // - ExpressionOp["LogicalAnd"] = "op-logical-and"; - // - ExpressionOp["LogicalNot"] = "op-logical-not"; - // - ExpressionOp["BitwiseXOr"] = "op-bitwise-xor"; - // - ExpressionOp["BitwiseOr"] = "op-bitwise-or"; - // - ExpressionOp["Equals"] = "op-equals"; - // - ExpressionOp["Greater"] = "op-greater"; - // - ExpressionOp["Less"] = "op-less"; - // - ExpressionOp["GEqual"] = "op-gequal"; - // - ExpressionOp["LEqual"] = "op-lequal"; - // - ExpressionOp["NEqual"] = "op-nequal"; - // - ExpressionOp["Plus"] = "op-plus"; - // - ExpressionOp["Minus"] = "op-minus"; - // - ExpressionOp["BitwiseAnd"] = "op-bitwise-and"; - // - ExpressionOp["Multiply"] = "op-multiply"; - // - ExpressionOp["Divide"] = "op-divide"; - // - ExpressionOp["Modulo"] = "op-modulo"; - // - ExpressionOp["Power"] = "op-power"; - // - ExpressionOp["Positive"] = "op-positive"; - // - ExpressionOp["Negative"] = "op-negative"; - // - ExpressionOp["BitwiseNot"] = "op-bitwise-not"; - // - ExpressionOp["Column"] = "op-column"; - // - ExpressionOp["String"] = "op-string"; - // - ExpressionOp["Number"] = "op-number"; - // - ExpressionOp["Date"] = "op-date"; - // - ExpressionOp["Boolean"] = "op-boolean"; - // - ExpressionOp["Funcall"] = "op-funcall"; - // - ExpressionOp["LParen"] = "op-lparen"; - // - ExpressionOp["RParen"] = "op-rparen"; - // - ExpressionOp["Comma"] = "op-comma"; - // - ExpressionOp["Ident"] = "op-ident"; - // - ExpressionOp["Null"] = "op-null"; - // - ExpressionOp["If"] = "op-if"; - // - ExpressionOp["Elseif"] = "op-elseif"; - // - ExpressionOp["Case"] = "op-case"; - // - ExpressionOp["When"] = "op-when"; - // - ExpressionOp["Then"] = "op-then"; - // - ExpressionOp["Else"] = "op-else"; - // - ExpressionOp["EndExpr"] = "op-endexpr"; - // - ExpressionOp["Whitespace"] = "op-whitespace"; - // - ExpressionOp["Comment"] = "op-comment"; - // - ExpressionOp["LBrace"] = "op-lbrace"; - // - ExpressionOp["RBrace"] = "op-rbrace"; - // - ExpressionOp["Colon"] = "op-colon"; - // - ExpressionOp["Bar"] = "op-bar"; - // - ExpressionOp["Txtype"] = "op-txtype"; - // - ExpressionOp["End"] = "op-end"; - // - ExpressionOp["RBrackets"] = "op-rbrackets"; - // used to represent invalid tokens - ExpressionOp["Invalid"] = "op-invalid"; - })(ExpressionOp = exports.ExpressionOp || (exports.ExpressionOp = {})); - // tri-state bool - var TriBool; - (function (TriBool) { - // - TriBool["TB_Invalid"] = "tribool-invalid"; - // - TriBool["TB_False"] = "tribool-false"; - // - TriBool["TB_True"] = "tribool-true"; - })(TriBool = exports.TriBool || (exports.TriBool = {})); - // table calc reference options set - var ReferenceOptionsSet; - (function (ReferenceOptionsSet) { - // - ReferenceOptionsSet["ROS_Relative"] = "reference-options-set-relative"; - // - ReferenceOptionsSet["ROS_Fixed"] = "reference-options-set-fixed"; - // - ReferenceOptionsSet["ROS_Parameter"] = "reference-options-set-parameter"; - // - ReferenceOptionsSet["ROS_None"] = "reference-options-set-none"; - })(ReferenceOptionsSet = exports.ReferenceOptionsSet || (exports.ReferenceOptionsSet = {})); - // widget state - var WidgetState; - (function (WidgetState) { - // - WidgetState["Hidden"] = "widget-state-hidden"; - // - WidgetState["Disabled"] = "widget-state-disabled"; - // - WidgetState["Enabled"] = "widget-state-enabled"; - })(WidgetState = exports.WidgetState || (exports.WidgetState = {})); - // rank type - var RankType; - (function (RankType) { - // - RankType["Competition"] = "rank-type-competition"; - // - RankType["ModifiedCompetition"] = "rank-type-modified-competition"; - // - RankType["Dense"] = "rank-type-dense"; - // - RankType["Unique"] = "rank-type-unique"; - })(RankType = exports.RankType || (exports.RankType = {})); - // - var TableCalcCommandType; - (function (TableCalcCommandType) { - // - TableCalcCommandType["TableCalcCommandClear"] = "clear"; - })(TableCalcCommandType = exports.TableCalcCommandType || (exports.TableCalcCommandType = {})); - // - var CalcNestingLevel; - (function (CalcNestingLevel) { - // - CalcNestingLevel["Primary"] = "primary"; - // used only for type != TC_CUSTOM - CalcNestingLevel["Secondary"] = "secondary"; - // used only for type == TC_CUSTOM - CalcNestingLevel["Nested"] = "nested"; - })(CalcNestingLevel = exports.CalcNestingLevel || (exports.CalcNestingLevel = {})); - // - var DecimalMode; - (function (DecimalMode) { - // - DecimalMode["DecimalModeAutomatic"] = "automatic"; - // - DecimalMode["DecimalModeManual"] = "manual"; - })(DecimalMode = exports.DecimalMode || (exports.DecimalMode = {})); - // - var TableCalcOrderingType; - (function (TableCalcOrderingType) { - // Advanced... - TableCalcOrderingType["OTField"] = "field"; - // Table (Across) - TableCalcOrderingType["OTRows"] = "rows"; - // Table (Down) - TableCalcOrderingType["OTColumns"] = "columns"; - // Table (Across then Down) - TableCalcOrderingType["OTTable"] = "table"; - // Table (Down then Across) - TableCalcOrderingType["OTTableColumnPrecedence"] = "table-column-precedence"; - // Pane Across - TableCalcOrderingType["OTRowInPane"] = "row-in-pane"; - // Pane (Down) - TableCalcOrderingType["OTColumnInPane"] = "column-in-pane"; - // Pane (Across then Down) - TableCalcOrderingType["OTPane"] = "pane"; - // Pane (Down then Across) - TableCalcOrderingType["OTPaneColumnPrecedence"] = "pane-column-precedence"; - // Cell - TableCalcOrderingType["OTCellInPane"] = "cell-in-pane"; - })(TableCalcOrderingType = exports.TableCalcOrderingType || (exports.TableCalcOrderingType = {})); - // - var TableCalcSortMode; - (function (TableCalcSortMode) { - // - TableCalcSortMode["SM_Automatic"] = "sort-mode-automatic"; - // - TableCalcSortMode["SM_Custom"] = "sort-mode-custom"; - })(TableCalcSortMode = exports.TableCalcSortMode || (exports.TableCalcSortMode = {})); - // - var TableCalcTableCalcType; - (function (TableCalcTableCalcType) { - // none (used to initialize variables) - TableCalcTableCalcType["TC_NONE"] = "none"; - // Running Total - TableCalcTableCalcType["TC_CUMULATIVE"] = "cumulative"; - // Moving Calculation - TableCalcTableCalcType["TC_WINDOW"] = "window"; - // Difference From - TableCalcTableCalcType["TC_DIFF"] = "diff"; - // Percent Difference From - TableCalcTableCalcType["TC_PCTDIFF"] = "pct-diff"; - // Percent From - TableCalcTableCalcType["TC_PCTVALUE"] = "pct-value"; - // Percent Of Total - TableCalcTableCalcType["TC_PCTTOTAL"] = "pct-total"; - // Rank - TableCalcTableCalcType["TC_RANK"] = "rank"; - // Percentile - TableCalcTableCalcType["TC_PCTRANK"] = "pct-rank"; - // Custom - TableCalcTableCalcType["TC_CUSTOM"] = "custom"; - })(TableCalcTableCalcType = exports.TableCalcTableCalcType || (exports.TableCalcTableCalcType = {})); - // - var QuickTableCalcCommandType; - (function (QuickTableCalcCommandType) { - // - QuickTableCalcCommandType["QuickTableCalcCommandRunTotal"] = "run-total"; - // - QuickTableCalcCommandType["QuickTableCalcCommandDifference"] = "difference"; - // - QuickTableCalcCommandType["QuickTableCalcCommandPctDiff"] = "pct-diff"; - // - QuickTableCalcCommandType["QuickTableCalcCommandPctTotal"] = "pct-total"; - // - QuickTableCalcCommandType["QuickTableCalcCommandRank"] = "rank"; - // - QuickTableCalcCommandType["QuickTableCalcCommandPctRank"] = "pct-rank"; - // - QuickTableCalcCommandType["QuickTableCalcCommandMovingAvg"] = "moving-avg"; - // - QuickTableCalcCommandType["QuickTableCalcCommandYtd"] = "ytd"; - // - QuickTableCalcCommandType["QuickTableCalcCommandCgr"] = "cgr"; - // - QuickTableCalcCommandType["QuickTableCalcCommandYOverY"] = "y-over-y"; - // - QuickTableCalcCommandType["QuickTableCalcCommandYtdGrowth"] = "ytd-growth"; - // - QuickTableCalcCommandType["QuickTableCalcCommandCustom"] = "custom"; - })(QuickTableCalcCommandType = exports.QuickTableCalcCommandType || (exports.QuickTableCalcCommandType = {})); - // - var TableCalcAddressCommandType; - (function (TableCalcAddressCommandType) { - // - TableCalcAddressCommandType["TableCalcAddressCommandRel"] = "rel"; - // - TableCalcAddressCommandType["TableCalcAddressCommandAbs"] = "abs"; - // - TableCalcAddressCommandType["TableCalcAddressCommandParam"] = "param"; - // - TableCalcAddressCommandType["TableCalcAddressCommandMore"] = "more"; - })(TableCalcAddressCommandType = exports.TableCalcAddressCommandType || (exports.TableCalcAddressCommandType = {})); - // relative addressing - var TableCalcRelativeAddress; - (function (TableCalcRelativeAddress) { - // - TableCalcRelativeAddress["RelAddrFirst"] = "relative-address-first"; - // - TableCalcRelativeAddress["RelAddrPrevious"] = "relative-address-previous"; - // - TableCalcRelativeAddress["RelAddrNext"] = "relative-address-next"; - // - TableCalcRelativeAddress["RelAddrLast"] = "relative-address-last"; - })(TableCalcRelativeAddress = exports.TableCalcRelativeAddress || (exports.TableCalcRelativeAddress = {})); - // - var CategoricalBinItemType; - (function (CategoricalBinItemType) { - // - CategoricalBinItemType["Unbinned"] = "unbinned"; - // - CategoricalBinItemType["BinMember"] = "categorical-bin-member"; - // - CategoricalBinItemType["Bin"] = "categorical-bin"; - })(CategoricalBinItemType = exports.CategoricalBinItemType || (exports.CategoricalBinItemType = {})); - // The class properties - var CredentialTypePropertiesFlag; - (function (CredentialTypePropertiesFlag) { - // - CredentialTypePropertiesFlag["None"] = "none"; - // - CredentialTypePropertiesFlag["GenericAuthClass"] = "generic-auth-class"; - // - CredentialTypePropertiesFlag["ProviderClass"] = "provider-class"; - // - CredentialTypePropertiesFlag["DataConnectionClass"] = "data-connection-class"; - })(CredentialTypePropertiesFlag = exports.CredentialTypePropertiesFlag || (exports.CredentialTypePropertiesFlag = {})); - // The connector type - var ConnectorType; - (function (ConnectorType) { - // - ConnectorType["Invalid"] = "invalid"; - // - ConnectorType["WebDataConnector"] = "web-data-connector"; - // - ConnectorType["CloudFileConnector"] = "cloud-file-connector"; - // - ConnectorType["LegacyConnector"] = "legacy-connector"; - })(ConnectorType = exports.ConnectorType || (exports.ConnectorType = {})); - // - var TablePillIcon; - (function (TablePillIcon) { - // - TablePillIcon["ListItem"] = "list-item"; - // - TablePillIcon["Sheet"] = "sheet"; - // - TablePillIcon["FoundTable"] = "found-table"; - // - TablePillIcon["NamedRange"] = "named-range"; - // - TablePillIcon["StoredProcedure"] = "stored-procedure"; - })(TablePillIcon = exports.TablePillIcon || (exports.TablePillIcon = {})); - // - var JoinValidationError; - (function (JoinValidationError) { - // - JoinValidationError["JVE_NoError"] = "no-error"; - // - JoinValidationError["JVE_EmptyClause"] = "empty-clause"; - // - JoinValidationError["JVE_TypeMismatch"] = "type-mismatch"; - // - JoinValidationError["JVE_InvalidField"] = "invalid-field"; - // - JoinValidationError["JVE_BadClause"] = "bad-clause"; - // - JoinValidationError["JVE_BadInputRelation"] = "bad-input-relation"; - // - JoinValidationError["JVE_RepeatedFieldReferences"] = "repeated-field-references"; - // - JoinValidationError["JVE_UnsupportedJoinType"] = "unsupported-join-type"; - // - JoinValidationError["JVE_InvalidCalculation"] = "invalid-calculation"; - // - JoinValidationError["JVE_NonSpatialType"] = "non-spatial-type"; - // - JoinValidationError["JVE_NonSpatialComparison"] = "non-spatial-comp"; - // - JoinValidationError["JVE_Unknown"] = "unknown"; - })(JoinValidationError = exports.JoinValidationError || (exports.JoinValidationError = {})); - // - var ConnectionTypeEnum; - (function (ConnectionTypeEnum) { - // -d-s is used to force the enum generator to generate DS with capital letters in .cs just like the .cpp - ConnectionTypeEnum["InvalidDS"] = "invalid-d-s"; - // - ConnectionTypeEnum["FileDS"] = "file-d-s"; - // - ConnectionTypeEnum["ServerDS"] = "server-d-s"; - // - ConnectionTypeEnum["InternetDS"] = "internet-d-s"; - // - ConnectionTypeEnum["TableauServerDS"] = "tableau-server-d-s"; - })(ConnectionTypeEnum = exports.ConnectionTypeEnum || (exports.ConnectionTypeEnum = {})); - // - var ConnectionErrorStage; - (function (ConnectionErrorStage) { - // - ConnectionErrorStage["Unknown"] = "unknown"; - // - ConnectionErrorStage["CreateProtocolFailed"] = "create-protocol-failed"; - // - ConnectionErrorStage["LoadMetadataFailed"] = "load-metadata-failed"; - })(ConnectionErrorStage = exports.ConnectionErrorStage || (exports.ConnectionErrorStage = {})); - // - var SetTickOriginResult; - (function (SetTickOriginResult) { - // - SetTickOriginResult["Success"] = "set-tick-origin-success-result"; - // - SetTickOriginResult["ParseFailure"] = "set-tick-origin-parse-failure-result"; - // - SetTickOriginResult["ValueFailure"] = "set-tick-origin-value-failure-result"; - })(SetTickOriginResult = exports.SetTickOriginResult || (exports.SetTickOriginResult = {})); - // - var SetTickSpacingResult; - (function (SetTickSpacingResult) { - // - SetTickSpacingResult["Success"] = "set-tick-spacing-success-result"; - // - SetTickSpacingResult["ParseFailure"] = "set-tick-spacing-parse-failure-result"; - // - SetTickSpacingResult["ValueFailure"] = "set-tick-spacing-value-failure-result"; - })(SetTickSpacingResult = exports.SetTickSpacingResult || (exports.SetTickSpacingResult = {})); - // The result of setting one end of an axis range - var SetAxisRangeResult; - (function (SetAxisRangeResult) { - // - SetAxisRangeResult["Success"] = "set-axis-range-success-result"; - // - SetAxisRangeResult["Failure"] = "set-axis-range-failure-result"; - })(SetAxisRangeResult = exports.SetAxisRangeResult || (exports.SetAxisRangeResult = {})); - // The type of an axis' extent - var AxisExtentType; - (function (AxisExtentType) { - // - AxisExtentType["Automatic"] = "axis-extent-automatic"; - // - AxisExtentType["Uniform"] = "axis-extent-uniform"; - // - AxisExtentType["Independent"] = "axis-extent-independent"; - // - AxisExtentType["Fixed"] = "axis-extent-fixed"; - })(AxisExtentType = exports.AxisExtentType || (exports.AxisExtentType = {})); - // Enumeration of units tick spacing can take - var TickSpacingUnits; - (function (TickSpacingUnits) { - // - TickSpacingUnits["NoUnits"] = "no-units"; - // - TickSpacingUnits["Years"] = "years"; - // - TickSpacingUnits["Quarters"] = "quarters"; - // - TickSpacingUnits["Months"] = "months"; - // - TickSpacingUnits["Weeks"] = "weeks"; - // - TickSpacingUnits["Days"] = "days"; - // - TickSpacingUnits["Hours"] = "hours"; - // - TickSpacingUnits["Minutes"] = "minutes"; - // - TickSpacingUnits["Seconds"] = "seconds"; - })(TickSpacingUnits = exports.TickSpacingUnits || (exports.TickSpacingUnits = {})); - // Enumeration of whether totals are included in or excluded from the color encoding - var TotalsInclusion; - (function (TotalsInclusion) { - // Totals included in color encoding - TotalsInclusion["IncludeTotals"] = "include-totals"; - // Totals excluded from color encoding - TotalsInclusion["ExcludeTotals"] = "exclude-totals"; - })(TotalsInclusion = exports.TotalsInclusion || (exports.TotalsInclusion = {})); - // How tick marks are being calculated - var TickMarkState; - (function (TickMarkState) { - // - TickMarkState["TicksAutomatic"] = "ticks-automatic"; - // - TickMarkState["TicksManual"] = "ticks-manual"; - // - TickMarkState["TicksNone"] = "ticks-None"; - })(TickMarkState = exports.TickMarkState || (exports.TickMarkState = {})); - // Setting for type of axis range - var AxisRangeType; - (function (AxisRangeType) { - // - AxisRangeType["AutomaticRange"] = "automatic-range"; - // - AxisRangeType["UniformRange"] = "uniform-range"; - // - AxisRangeType["IndependentRange"] = "independent-range"; - // - AxisRangeType["FixedRange"] = "fixed-range"; - // - AxisRangeType["FixedMin"] = "fixed-min"; - // - AxisRangeType["FixedMax"] = "fixed-max"; - // - AxisRangeType["FixedMinUniformMax"] = "fixed-min-uniform-max"; - // - AxisRangeType["FixedMinIndependentMax"] = "fixed-min-independent-max"; - // - AxisRangeType["FixedMaxUniformMin"] = "fixed-max-uniform-min"; - // - AxisRangeType["FixedMaxIndependentMin"] = "fixed-max-independent-min"; - // - AxisRangeType["FixedRangeOrdinal"] = "fixed-range-ordinal"; - })(AxisRangeType = exports.AxisRangeType || (exports.AxisRangeType = {})); - // represents type of widget on the toolbar of rich text editor - var RichTextEditorWidgetKey; - (function (RichTextEditorWidgetKey) { - // - RichTextEditorWidgetKey["None"] = "none"; - // - RichTextEditorWidgetKey["FontSize"] = "fontsize"; - // - RichTextEditorWidgetKey["FontName"] = "fontname"; - // - RichTextEditorWidgetKey["FontColor"] = "color"; - // - RichTextEditorWidgetKey["Bold"] = "bold"; - // - RichTextEditorWidgetKey["Italic"] = "italic"; - // - RichTextEditorWidgetKey["Underline"] = "underline"; - // - RichTextEditorWidgetKey["AlignLeft"] = "justifyleft"; - // - RichTextEditorWidgetKey["AlignCenter"] = "justifycenter"; - // - RichTextEditorWidgetKey["AlignRight"] = "justifyright"; - // - RichTextEditorWidgetKey["ClearFormatting"] = "clearformatting"; - // - RichTextEditorWidgetKey["TableauKeywords"] = "tableaukeywords"; - })(RichTextEditorWidgetKey = exports.RichTextEditorWidgetKey || (exports.RichTextEditorWidgetKey = {})); - // - var CellSizeChange; - (function (CellSizeChange) { - // - CellSizeChange["CSC_Taller"] = "taller"; - // - CellSizeChange["CSC_Shorter"] = "shorter"; - // - CellSizeChange["CSC_Wider"] = "wider"; - // - CellSizeChange["CSC_Narrower"] = "narrower"; - // - CellSizeChange["CSC_Bigger"] = "bigger"; - // - CellSizeChange["CSC_Smaller"] = "smaller"; - })(CellSizeChange = exports.CellSizeChange || (exports.CellSizeChange = {})); - // - var CellTypeEnum; - (function (CellTypeEnum) { - // - CellTypeEnum["CLT_Square"] = "square"; - // - CellTypeEnum["CLT_Text"] = "text"; - })(CellTypeEnum = exports.CellTypeEnum || (exports.CellTypeEnum = {})); - // represents type of formatting pres model - var TypeOfFormatItem; - (function (TypeOfFormatItem) { - // - TypeOfFormatItem["FT_FormatItem"] = "formatItem"; - // - TypeOfFormatItem["FT_FormatContainer"] = "formatContainer"; - // - TypeOfFormatItem["FT_FormatControl"] = "formatControl"; - })(TypeOfFormatItem = exports.TypeOfFormatItem || (exports.TypeOfFormatItem = {})); - // represents type of formatting container - var TypeOfFormatContainer; - (function (TypeOfFormatContainer) { - // - TypeOfFormatContainer["FT_FormatPane"] = "formatPane"; - // - TypeOfFormatContainer["FT_FormatSection"] = "formatSection"; - // - TypeOfFormatContainer["FT_CollapsibleSection"] = "collapsibleSection"; - // - TypeOfFormatContainer["FT_CompositeContainer"] = "compositeContainer"; - // - TypeOfFormatContainer["FT_UnitContainer"] = "unitContainer"; - // - TypeOfFormatContainer["FT_Tab"] = "tab"; - // - TypeOfFormatContainer["FT_TabGroup"] = "tabGroup"; - })(TypeOfFormatContainer = exports.TypeOfFormatContainer || (exports.TypeOfFormatContainer = {})); - // represents type of formatting control - var TypeOfFormatControl; - (function (TypeOfFormatControl) { - // - TypeOfFormatControl["FT_None"] = "none"; - // - TypeOfFormatControl["FT_NumericControl"] = "numeric-control"; - // - TypeOfFormatControl["FT_TextControl"] = "text-control"; - // - TypeOfFormatControl["FT_ColorControl"] = "color-control"; - // - TypeOfFormatControl["FT_SelectorControl"] = "selector-control"; - // - TypeOfFormatControl["FT_ToggleControl"] = "toggle-control"; - })(TypeOfFormatControl = exports.TypeOfFormatControl || (exports.TypeOfFormatControl = {})); - // represents type of formatting widget - var FormatWidgetKey; - (function (FormatWidgetKey) { - // - FormatWidgetKey["FWK_None"] = "none"; - // - FormatWidgetKey["FWK_FontFamily"] = "fontFamily"; - // - FormatWidgetKey["FWK_FontSize"] = "fontSize"; - // - FormatWidgetKey["FWK_ColorSwatch"] = "colorSwatch"; - // - FormatWidgetKey["FWK_Bold"] = "bold"; - // - FormatWidgetKey["FWK_Italics"] = "italics"; - // - FormatWidgetKey["FWK_Underline"] = "underline"; - // - FormatWidgetKey["FWK_LineVisibility"] = "lineVisibility"; - // - FormatWidgetKey["FWK_LinePattern"] = "linePattern"; - // - FormatWidgetKey["FWK_LineSize"] = "lineSize"; - // - FormatWidgetKey["FWK_NumberType"] = "numericType"; - // - FormatWidgetKey["FWK_DecimalPlaces"] = "decimalPlaces"; - // - FormatWidgetKey["FWK_ThousandsSeparator"] = "thousandsSeparator"; - // - FormatWidgetKey["FWK_NumericUnits"] = "numericUnits"; - })(FormatWidgetKey = exports.FormatWidgetKey || (exports.FormatWidgetKey = {})); - // represents identifier for each node in format pane - var FormatNodeIdentifier; - (function (FormatNodeIdentifier) { - // - FormatNodeIdentifier["Format_None_Key"] = "none"; - // - FormatNodeIdentifier["Format_Workbook_Key"] = "workbook"; - // - FormatNodeIdentifier["Format_Font_Key"] = "font"; - // - FormatNodeIdentifier["Format_Color_Key"] = "color"; - // - FormatNodeIdentifier["Format_Lines_Key"] = "lines"; - // - FormatNodeIdentifier["Format_FontAll_Key"] = "font-all"; - // - FormatNodeIdentifier["Format_FontAllControls_Key"] = "font-all-controls"; - // - FormatNodeIdentifier["Format_FontMore_Key"] = "font-more"; - // - FormatNodeIdentifier["Format_FontWorksheetTitles_Key"] = "worksheet-titles"; - // - FormatNodeIdentifier["Format_FontToolTip_Key"] = "font-tooltip"; - // - FormatNodeIdentifier["Format_FontWorksheet_Key"] = "font-worksheet"; - // - FormatNodeIdentifier["Format_FontDashTitles_Key"] = "dash-titles"; - // - FormatNodeIdentifier["Format_FontStoryTitles_Key"] = "story-titles"; - // - FormatNodeIdentifier["Format_FontTitlesControls_Key"] = "titles-controls"; - // - FormatNodeIdentifier["Format_FontTooltipControls_Key"] = "tooltip-controls"; - // - FormatNodeIdentifier["Format_FontWorksheetControls_Key"] = "worksheet-controls"; - // - FormatNodeIdentifier["Format_LineMore_Key"] = "line-more"; - // - FormatNodeIdentifier["Format_LineGrid_Key"] = "line-grid"; - // - FormatNodeIdentifier["Format_LineGridTabs_Key"] = "line-grid-tabs"; - // - FormatNodeIdentifier["Format_LineZero_Key"] = "line-zero"; - // - FormatNodeIdentifier["Format_LineZeroTabs_Key"] = "line-zero-tabs"; - // - FormatNodeIdentifier["Format_LineAxisTick_Key"] = "line-axis-tick"; - // - FormatNodeIdentifier["Format_LineAxisTickTabs_Key"] = "line-axis-tick-tabs"; - // - FormatNodeIdentifier["Format_LineAxisRuler_Key"] = "line-axis-ruler"; - // - FormatNodeIdentifier["Format_LineAxisRulerTabs_Key"] = "line-axis-ruler-tabs"; - // - FormatNodeIdentifier["Format_LineHeaderDivider_Key"] = "line-header-divider"; - // - FormatNodeIdentifier["Format_LineHeaderDividerTabs_Key"] = "line-header-divider-tabs"; - // - FormatNodeIdentifier["Format_LinePaneDivider_Key"] = "line-paneDivider"; - // - FormatNodeIdentifier["Format_LinePaneDividerTabs_Key"] = "line-paneDivider-tabs"; - // - FormatNodeIdentifier["Format_LineGridAll_Key"] = "line-grid-all"; - // - FormatNodeIdentifier["Format_LineGridRow_Key"] = "line-grid-row"; - // - FormatNodeIdentifier["Format_LineGridColumn_Key"] = "line-grid-column"; - // - FormatNodeIdentifier["Format_LineZeroAll_Key"] = "line-zero-all"; - // - FormatNodeIdentifier["Format_LineZeroRow_Key"] = "line-zero-row"; - // - FormatNodeIdentifier["Format_LineZeroColumn_Key"] = "line-zero-column"; - // - FormatNodeIdentifier["Format_LineAxisTickAll_Key"] = "line-axis-tick-all"; - // - FormatNodeIdentifier["Format_LineAxisTickRow_Key"] = "line-axis-tick-row"; - // - FormatNodeIdentifier["Format_LineAxisTickColumn_Key"] = "line-axis-tick-column"; - // - FormatNodeIdentifier["Format_LineAxisRulerAll_Key"] = "line-axis-ruler-all"; - // - FormatNodeIdentifier["Format_LineAxisRulerRow_Key"] = "line-axis-ruler-row"; - // - FormatNodeIdentifier["Format_LineAxisRulerColumn_Key"] = "line-axis-ruler-column"; - // - FormatNodeIdentifier["Format_LineReference_Key"] = "line-reference"; - // - FormatNodeIdentifier["Format_LineDrop_Key"] = "line-drop"; - // - FormatNodeIdentifier["Format_LineTrend_Key"] = "line-trend"; - // - FormatNodeIdentifier["Format_LineVisibility_Key"] = "line-visibility"; - // - FormatNodeIdentifier["Format_LinePattern_Key"] = "line-pattern"; - // - FormatNodeIdentifier["Format_LineWidth_Key"] = "line-width"; - // - FormatNodeIdentifier["Format_LineColor_Key"] = "line-color"; - // - FormatNodeIdentifier["Format_TickColor_Key"] = "tick-color"; - // - FormatNodeIdentifier["Format_BorderPattern_Key"] = "border-pattern"; - // - FormatNodeIdentifier["Format_BorderColor_Key"] = "border-color"; - // - FormatNodeIdentifier["Format_DividerColor_Key"] = "divider-color"; - // - FormatNodeIdentifier["Format_FontFamily_Key"] = "font-family-key"; - // - FormatNodeIdentifier["Format_FontSize_Key"] = "font-size-key"; - // - FormatNodeIdentifier["Format_Bold_Key"] = "bold-key"; - // - FormatNodeIdentifier["Format_Italics_Key"] = "italics-key"; - // - FormatNodeIdentifier["Format_Underline_Key"] = "underline-key"; - // - FormatNodeIdentifier["Format_FontColor_Key"] = "font-color-key"; - // - FormatNodeIdentifier["Format_Number_Container_Key"] = "number-container"; - // - FormatNodeIdentifier["Format_Number_Type_Key"] = "number-container-type"; - // - FormatNodeIdentifier["Format_Number_Units_Key"] = "number-container-units"; - // - FormatNodeIdentifier["Format_Number_Decimal_Key"] = "number-container-decimal"; - // - FormatNodeIdentifier["Format_Number_Thousands_Separator_Key"] = "number-container-thousands-separator"; - // - FormatNodeIdentifier["Format_FontPickerMinimal_Key"] = "font-picker-minimal"; - // - FormatNodeIdentifier["Format_FontPickerDefault_Key"] = "font-picker-default"; - // - FormatNodeIdentifier["Format_LinePickerDefault_Key"] = "line-picker-default"; - // - FormatNodeIdentifier["Format_LinePickerNoVis_Key"] = "line-picker-no-visibility"; - // - FormatNodeIdentifier["Format_LineAxisTickPicker_Key"] = "line-axis-tick-picker"; - })(FormatNodeIdentifier = exports.FormatNodeIdentifier || (exports.FormatNodeIdentifier = {})); - // Format prepended to format strings to specify type - var FormatCode; - (function (FormatCode) { - // - FormatCode["AutoFormat"] = "auto-format"; - // - FormatCode["SystemLongDate"] = "system-long-date"; - // - FormatCode["SystemShortDate"] = "system-short-date"; - // - FormatCode["SystemNumber"] = "system-number"; - // - FormatCode["SystemCurrency"] = "system-currency"; - // - FormatCode["SystemTime"] = "system-time"; - // - FormatCode["Custom"] = "custom"; - // - FormatCode["CustomICU"] = "custom-icu"; - // - FormatCode["CustomNumber"] = "custom-number"; - // - FormatCode["CustomCurrency"] = "custom-currency"; - // - FormatCode["CustomScientific"] = "custom-scientific"; - // - FormatCode["CustomPercentage"] = "custom-percentage"; - })(FormatCode = exports.FormatCode || (exports.FormatCode = {})); - // Units specified in a format string - var UnitsFormatEnum; - (function (UnitsFormatEnum) { - // - UnitsFormatEnum["UnitsFmtNone"] = "units-none"; - // - UnitsFormatEnum["UnitsFmtThousands"] = "units-thousands"; - // - UnitsFormatEnum["UnitsFmtMillions"] = "units-millions"; - // - UnitsFormatEnum["UnitsFmtBillionsEnglish"] = "units-billions-english"; - // - UnitsFormatEnum["UnitsFmtBillionsStandard"] = "units-billions-standard"; - })(UnitsFormatEnum = exports.UnitsFormatEnum || (exports.UnitsFormatEnum = {})); - // represents the color swatch that will be used in the ColorControlPresModel - var ColorSwatchType; - (function (ColorSwatchType) { - // - ColorSwatchType["CST_Dark"] = "dark-swatch"; - // - ColorSwatchType["CST_Light"] = "light-swatch"; - })(ColorSwatchType = exports.ColorSwatchType || (exports.ColorSwatchType = {})); - // represents the type of a style picker, affecting the preview rendering and, possibly, the layout - var PickerType; - (function (PickerType) { - // - PickerType["PT_None"] = "none"; - // - PickerType["PT_Font"] = "font"; - // - PickerType["PT_Line"] = "line"; - // - PickerType["PT_Number"] = "number"; - })(PickerType = exports.PickerType || (exports.PickerType = {})); - // - var UpdateScope; - (function (UpdateScope) { - // - UpdateScope["US_Worksheet"] = "worksheet"; - // - UpdateScope["US_Dashboard"] = "dashboard"; - // - UpdateScope["US_QuickFilters"] = "quick-filters"; - // - UpdateScope["US_Story"] = "story"; - })(UpdateScope = exports.UpdateScope || (exports.UpdateScope = {})); - // - var ParameterCtrlTypesDisplayMode; - (function (ParameterCtrlTypesDisplayMode) { - // - ParameterCtrlTypesDisplayMode["MODE_TYPE_IN"] = "type_in"; - // - ParameterCtrlTypesDisplayMode["MODE_COMPACT_LIST"] = "compact"; - // - ParameterCtrlTypesDisplayMode["MODE_LIST"] = "list"; - // - ParameterCtrlTypesDisplayMode["MODE_SLIDER"] = "slider"; - // - ParameterCtrlTypesDisplayMode["MODE_DATETIME"] = "datetime"; - })(ParameterCtrlTypesDisplayMode = exports.ParameterCtrlTypesDisplayMode || (exports.ParameterCtrlTypesDisplayMode = {})); - // flags for display options - var ParameterCtrlTypesDisplayFlag; - (function (ParameterCtrlTypesDisplayFlag) { - // - ParameterCtrlTypesDisplayFlag["DISPLAY_CUSTOM_TITLE"] = "custom_title"; - // - ParameterCtrlTypesDisplayFlag["DISPLAY_HIDE_SLIDER_SLIDER"] = "hide_slider_slider"; - // - ParameterCtrlTypesDisplayFlag["DISPLAY_HIDE_SLIDER_READOUT"] = "hide_slider_readout"; - // - ParameterCtrlTypesDisplayFlag["DISPLAY_HIDE_SLIDER_BUTTONS"] = "hide_slider_buttons"; - })(ParameterCtrlTypesDisplayFlag = exports.ParameterCtrlTypesDisplayFlag || (exports.ParameterCtrlTypesDisplayFlag = {})); - // The follow supports 1024 custom palettes, each with 4m shapes. Encoding is palette << PaletteShift | shape. - var ShapeEncodeConstants; - (function (ShapeEncodeConstants) { - // Shift value for palette - ShapeEncodeConstants["EncodePaletteShift"] = "paletteShift"; - // Mask for getting palette from encoded value. (Then shift down) - ShapeEncodeConstants["EncodePaletteMask"] = "paletteMask"; - // Mask for getting shape from encoded value - ShapeEncodeConstants["EncodeShapeMask"] = "shapeMask"; - })(ShapeEncodeConstants = exports.ShapeEncodeConstants || (exports.ShapeEncodeConstants = {})); - // - var ShapeType; - (function (ShapeType) { - // - ShapeType["ShapeCircle"] = "circle"; - // - ShapeType["ShapeSquare"] = "square"; - // - ShapeType["ShapePlus"] = "plus"; - // - ShapeType["ShapeTimes"] = "times"; - // - ShapeType["ShapeAsterisk"] = "asterisk"; - // - ShapeType["ShapeDiamond"] = "diamond"; - // - ShapeType["ShapeTriangle"] = "triangle"; - // - ShapeType["ShapeDownTriangle"] = "down-triangle"; - // - ShapeType["ShapeLeftTriangle"] = "left-triangle"; - // - ShapeType["ShapeRightTriangle"] = "right-triangle"; - // - ShapeType["MaxAllShapes"] = "invalid"; - })(ShapeType = exports.ShapeType || (exports.ShapeType = {})); - // - var ShapePalette; - (function (ShapePalette) { - // built-in palette - ShapePalette["ShapePaletteFilled"] = "filled"; - // custom palettes - ShapePalette["ShapePaletteCustom1"] = "custom1"; - // - ShapePalette["ShapePaletteCustom2"] = "custom2"; - // - ShapePalette["ShapePaletteCustom3"] = "custom3"; - // - ShapePalette["ShapePaletteCustom4"] = "custom4"; - // - ShapePalette["ShapePaletteCustom5"] = "custom5"; - // - ShapePalette["ShapePaletteCustom6"] = "custom6"; - // - ShapePalette["ShapePaletteCustom7"] = "custom7"; - // - ShapePalette["ShapePaletteCustom8"] = "custom8"; - // - ShapePalette["ShapePaletteCustom9"] = "custom9"; - // - ShapePalette["ShapePaletteCustom10"] = "custom10"; - // - ShapePalette["ShapePaletteCustom11"] = "custom11"; - // and so on... - ShapePalette["ShapePaletteCustom12"] = "custom12"; - // - ShapePalette["ShapePaletteHidden"] = "hidden"; - })(ShapePalette = exports.ShapePalette || (exports.ShapePalette = {})); - // ShapeType and palette mapped into a single value. This enum depends on ShapeType and the implementation of ShapeManager::IntEncode. - var ShapeID; - (function (ShapeID) { - // - ShapeID["ShapeIDCircle"] = "shapeIDCircle"; - // - ShapeID["ShapeIDSquare"] = "shapeIDSquare"; - // - ShapeID["ShapeIDPlus"] = "shapeIDPlus"; - // - ShapeID["ShapeIDTimes"] = "shapeIDTimes"; - // - ShapeID["ShapeIDAsterisk"] = "shapeIDAsterisk"; - // - ShapeID["ShapeIDDiamond"] = "shapeIDDiamond"; - // - ShapeID["ShapeIDTriangle"] = "shapeIDTriangle"; - // - ShapeID["ShapeIDDownTriangle"] = "shapeIDDownTriangle"; - // - ShapeID["ShapeIDLeftTriangle"] = "shapeIDLeftTriangle"; - // - ShapeID["ShapeIDRightTriangle"] = "shapeIDRightTriangle"; - // - ShapeID["ShapeIDFilledCircle"] = "shapeIDFilledCircle"; - // - ShapeID["ShapeIDFilledSquare"] = "shapeIDFilledSquare"; - // - ShapeID["ShapeIDFilledPlus"] = "shapeIDFilledPlus"; - // - ShapeID["ShapeIDFilledTimes"] = "shapeIDFilledTimes"; - // - ShapeID["ShapeIDFilledStar"] = "shapeIDFilledStar"; - // - ShapeID["ShapeIDFilledDiamond"] = "shapeIDFilledDiamond"; - // - ShapeID["ShapeIDFilledTriangle"] = "shapeIDFilledTriangle"; - // - ShapeID["ShapeIDFilledDownTriangle"] = "shapeIDFilledDownTriangle"; - // - ShapeID["ShapeIDFilledLeftTriangle"] = "shapeIDFilledLeftTriangle"; - // - ShapeID["ShapeIDFilledRightTriangle"] = "shapeIDFilledRightTriangle"; - // 0+(ShapePaletteHidden< -1; - }); - // Create a mapping of which index in the data dictionary our columns are in - var columnIndices = columns.map(function (vizDataColumn) { - // The columnIndex is in the same position as the paneIndex - var paneIndex = vizDataColumn.paneIndices.indexOf(i); - var columnIndex = vizDataColumn.columnIndices[paneIndex]; - return columnIndex; - }); - // Get the data for the pane we are processing - var vizPane = vizData.paneColumnsData.paneColumnsList[i]; - if (vizPane.vizPaneColumns.length !== columns.length) { - throw new Error('Malformed data table'); - } - var headers = new Array(); - var rows = new Array(); - // Column 0 will be the tuple id column. We can use this as a counter for how many rows we have - var tupleIds = vizPane.vizPaneColumns[0].tupleIds; - var marks = new Array(); - for (var tupleIndex = 0; tupleIndex < tupleIds.length; tupleIndex++) { - // TODO Need to revaluate the place of this logic. If it turns out that we need a separate command - // call to get the marks info, then this logic should not be here but instead in a layer above somewhere - var mark = { - type: api_internal_contract_1.MarkType.Bar, - color: 'red', - tupleId: tupleIds[tupleIndex], - }; - marks.push(mark); - // We will have 1 less value in this row since there's the tupleId column - var cells = new Array(vizPane.vizPaneColumns.length - 1); - for (var j = 1 /* skip the first which is tuple ids */; j < vizPane.vizPaneColumns.length; j++) { - // Next, we need to figure out which column we are reading data for - var column = columns[columnIndices[j]]; - var vizPaneColumnData = vizPane.vizPaneColumns[j]; - // Define the header when we are processing the first row - if (tupleIndex === 0) { - var header = { - dataType: EnumMappings_1.PresLayerToApiEnumMappings.dataType.convert(column.dataType), - fieldName: column.fn, - isReferenced: true, - index: j - 1, - fieldCaption: column.fieldCaption - }; - headers.push(header); - } - var value = UnderlyingDataConverter_1.UnderlyingDataConverter.lookupValueFromDictionary(dataDictionary, column.dataType, vizPaneColumnData.valueIndices[tupleIndex]); - var aliasValue = UnderlyingDataConverter_1.UnderlyingDataConverter.lookupValueFromDictionary(dataDictionary, column.dataType, vizPaneColumnData.aliasIndices[tupleIndex]) || ''; - var formattedValue = aliasValue; // TODO - Figure out how to use the formatStrings - var dataCell = { - value: value, - formattedValue: formattedValue, - aliasedValue: aliasValue - }; - // Add our cell to this row - cells[j - 1] = dataCell; - } - rows.push(cells); - } - var dataTable = { - dataTable: rows, - headers: headers, - marks: marks - }; - result.push(dataTable); - }; - // The data model for the VizDataPresModel is a little strange, so this parsing takes some time to figure out. - // There can be multiple panes of data, so we must go through them one at a time to create data tables - for (var i = 0; i < vizData.paneColumnsData.paneColumnsList.length; i++) { - _loop_1(i); - } - return result; - }; - return ActiveMarksDataConverter; - }()); - exports.ActiveMarksDataConverter = ActiveMarksDataConverter; - //# sourceMappingURL=ActiveMarksDataConverter.js.map - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Enums = __webpack_require__(22); - var EnumMappings_1 = __webpack_require__(21); - /** - * Contains static helper methods for converting from an underlying data pres model into the api representation. - * Most of the code is a direct port from ApiUnderlyingDataHandler.cs - * https://opengrok/source/xref/teams_near/workgroup/vqlweb/scriptsharp/src/UI/Api/ApiUnderlyingDataHandler.cs - */ - var UnderlyingDataConverter = (function () { - function UnderlyingDataConverter() { - } - UnderlyingDataConverter.lookupValueFromDictionary = function (dataDictionary, dt, index) { - if (index < 0) { - // per cl 280396 / bugzid 81197 negative data value index means that it is special - dt = Enums.DataType.DT_STRING; - index = -index - 1; - } - var result = null; - var rawValue = UnderlyingDataConverter.getRawValue(dataDictionary, dt, index); - if (rawValue !== null) { - result = rawValue.toString(); - } - return result; - }; - /* tslint:disable-next-line:no-any */ - UnderlyingDataConverter.getRawValue = function (dataDictionary, dt, index) { - if (!dataDictionary.dataSegments) { - return null; - } - for (var _i = 0, _a = Object.keys(dataDictionary.dataSegments); _i < _a.length; _i++) { - var key = _a[_i]; - var dataSegment = dataDictionary.dataSegments[key]; - for (var _b = 0, _c = dataSegment.dataColumns; _b < _c.length; _b++) { - var dataColumn = _c[_b]; - if (!dataColumn || dataColumn.dataType !== dt) { - continue; - } - if (index < dataColumn.dataValues.length) { - return dataColumn.dataValues[index]; - } - index -= dataColumn.dataValues.length; - break; - } - } - return null; - }; - UnderlyingDataConverter.buildDataTable = function (dataDictionary, columns) { - var result = { - dataTable: UnderlyingDataConverter.buildTable(dataDictionary, columns), - headers: columns.map(function (c, i) { return UnderlyingDataConverter.buildColumnModel(c, i); }) - }; - return result; - }; - UnderlyingDataConverter.buildUnderlyingDataTable = function (isSummary, underlyingDataTable) { - var result = { - data: UnderlyingDataConverter.buildDataTable(underlyingDataTable.dataDictionary, underlyingDataTable.underlyingDataTableColumns), - isSummary: isSummary - }; - return result; - }; - UnderlyingDataConverter.buildActiveMarksTable = function (dataDictionary, vizData) { - throw new Error(); - }; - UnderlyingDataConverter.buildColumnModel = function (column, index) { - return { - dataType: EnumMappings_1.PresLayerToApiEnumMappings.dataType.convert(column.dataType), - fieldName: column.fn, - fieldCaption: column.fieldCaption, - isReferenced: !!column.isReferenced, - index: index - }; - }; - UnderlyingDataConverter.buildTable = function (dataDictionary, columns) { - if (columns.length === 0) { - return new Array(); - } - var rowCount = columns[0].formatValIdxs.length; - var columnCount = columns.length; - var result = new Array(rowCount); - // Initialize all of our rows - for (var rowIndex = 0; rowIndex < rowCount; rowIndex++) { - result[rowIndex] = new Array(columnCount); - } - // Go through column-by-column and convert the values - for (var columnIndex = 0; columnIndex < columnCount; columnIndex++) { - var column = columns[columnIndex]; - for (var rowIndex = 0; rowIndex < rowCount; rowIndex++) { - var formattedValue = UnderlyingDataConverter.lookupValueFromDictionary(dataDictionary, Enums.DataType.DT_STRING, column.formatValIdxs[rowIndex]); - if (formattedValue === null) { - throw new Error('formattedValue was null'); - } - var value = { - value: UnderlyingDataConverter.lookupValueFromDictionary(dataDictionary, column.dataType, column.valueIndices[rowIndex]), - formattedValue: formattedValue, - aliasedValue: formattedValue - }; - result[rowIndex][columnIndex] = value; - } - } - return result; - }; - return UnderlyingDataConverter; - }()); - exports.UnderlyingDataConverter = UnderlyingDataConverter; - //# sourceMappingURL=UnderlyingDataConverter.js.map - -/***/ }, -/* 26 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var EnumMappings_1 = __webpack_require__(21); - /** - * Class containing helper methods for converting from ApiPresModels to their PresLayer equivalents - * - * @export - * @class ApiToPresLayerConverter - */ - var ApiToPresLayerConverter = (function () { - function ApiToPresLayerConverter() { - } - ApiToPresLayerConverter.convertSheetPath = function (apiSheetPath) { - if (!apiSheetPath) { - throw new Error('sheetPath not defined'); - } - var result = { - sheetName: apiSheetPath.sheetName, - isDashboard: apiSheetPath.isDashboard, - storyboard: apiSheetPath.storyboard || '', - flipboardZoneId: apiSheetPath.flipboardZoneID || 0, - storyPointId: apiSheetPath.storyPointID || 0, - }; - return result; - }; - ApiToPresLayerConverter.convertAddInLocator = function (apiAddInLocator) { - var result = { - addInInstanceId: apiAddInLocator.instanceId, - sheetPath: ApiToPresLayerConverter.convertSheetPath(apiAddInLocator.dashboardPath) - }; - return result; - }; - ApiToPresLayerConverter.convertVisualId = function (apiVisualid) { - var result = { - worksheet: apiVisualid.worksheet, - dashboard: apiVisualid.dashboard, - storyboard: apiVisualid.storyboard, - storyPointId: apiVisualid.storyPointID, - flipboardZoneId: apiVisualid.flipboardZoneID - }; - return result; - }; - ApiToPresLayerConverter.convertVisualIdToWorksheet = function (apiVisualId) { - return apiVisualId.worksheet; - }; - ApiToPresLayerConverter.convertVisualIdToDashboard = function (apiVisualId) { - return apiVisualId.dashboard || ''; - }; - ApiToPresLayerConverter.convertFilterValues = function (filterValues) { - if (filterValues.length === 0) { - // platform code expects an empty string for clearing filter values - return ['']; - } - return filterValues; - }; - ApiToPresLayerConverter.convertFilterType = function (filterUpdateType) { - return EnumMappings_1.ApiToPresLayerEnumMappings.filterUpdateType.convert(filterUpdateType); - }; - ApiToPresLayerConverter.ConvertNullOption = function (nullOption) { - return EnumMappings_1.ApiToPresLayerEnumMappings.nullOption.convert(nullOption); - }; - ApiToPresLayerConverter.ConvertFilterDomainType = function (filterDomainType) { - return EnumMappings_1.ApiToPresLayerEnumMappings.filterDomainType.convert(filterDomainType); - }; - return ApiToPresLayerConverter; - }()); - exports.ApiToPresLayerConverter = ApiToPresLayerConverter; - //# sourceMappingURL=ApiToPresLayerConverter.js.map - -/***/ }, -/* 27 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(4); - var Enums_1 = __webpack_require__(22); - var EnumMappings_1 = __webpack_require__(21); - var PresLayerToApiConverter_1 = __webpack_require__(17); - var FiltersConverter = (function () { - function FiltersConverter() { - } - FiltersConverter.convertFiltersPresModel = function (filterPms) { - var filters = []; - filterPms.forEach(function (filterPm) { - switch (filterPm.filterType) { - case Enums_1.FilterType.FLTR_Categorical: { - filters.push(FiltersConverter.convertCategoricalFilterPresModel(filterPm)); - break; - } - case Enums_1.FilterType.FLTR_Quantitative: { - filters.push(FiltersConverter.convertQuantitativeFilterPresModel(filterPm)); - break; - } - case Enums_1.FilterType.FLTR_RelativeDate: { - filters.push(FiltersConverter.convertRelativeDateFilterPresModel(filterPm)); - break; - } - default: - return; - } - }); - return filters; - }; - FiltersConverter.convertCategoricalFilterPresModel = function (filterPm) { - var selectedValues = filterPm.categoricalFilterInfo.captionedFilterValueList.map(function (filterValue) { - return FiltersConverter.convertFilterValuePresModel(filterValue); - }); - var filter = { - values: selectedValues, - isExclude: filterPm.categoricalFilterInfo.exclude, - filterType: api_internal_contract_1.FilterType.Categorical, - fieldCaption: filterPm.fieldCaption, - fieldName: filterPm.fn, - visualId: PresLayerToApiConverter_1.PresLayerToApiConverter.convertVisualId(filterPm.visualIdPresModel) - }; - return filter; - }; - FiltersConverter.convertQuantitativeFilterPresModel = function (filterPm) { - var minValue = FiltersConverter.convertFilterValuePresModel(filterPm.quantitativeFilterInfo.captionedRangeMin); - var maxValue = FiltersConverter.convertFilterValuePresModel(filterPm.quantitativeFilterInfo.captionedRangeMax); - var filter = { - filterType: api_internal_contract_1.FilterType.Range, - fieldCaption: filterPm.fieldCaption, - fieldName: filterPm.fn, - visualId: PresLayerToApiConverter_1.PresLayerToApiConverter.convertVisualId(filterPm.visualIdPresModel), - min: minValue, - max: maxValue, - includeNullValues: FiltersConverter.convertIncludedNullValues(filterPm.quantitativeFilterInfo.included) - }; - return filter; - }; - FiltersConverter.convertRelativeDateFilterPresModel = function (filterPm) { - var anchorDateValue = FiltersConverter.convertFilterValuePresModel(filterPm.relativeDateFilterInfo.captionedAnchorDate); - var filter = { - filterType: api_internal_contract_1.FilterType.RelativeDate, - fieldCaption: filterPm.fieldCaption, - fieldName: filterPm.fn, - visualId: PresLayerToApiConverter_1.PresLayerToApiConverter.convertVisualId(filterPm.visualIdPresModel), - anchorDate: anchorDateValue, - periodType: EnumMappings_1.PresLayerToApiEnumMappings.dateStepPeriod.convert(filterPm.relativeDateFilterInfo.datePeriodType), - rangeType: EnumMappings_1.PresLayerToApiEnumMappings.dateRangeType.convert(filterPm.relativeDateFilterInfo.dateRangeType), - rangeN: filterPm.relativeDateFilterInfo.rangeN - }; - return filter; - }; - FiltersConverter.convertCategoricalDomain = function (domainPm) { - var domainValues = domainPm.captionedFilterValueList.map(function (filterValue) { - return FiltersConverter.convertFilterValuePresModel(filterValue); - }); - return { values: domainValues }; - }; - FiltersConverter.convertQuantitativeDomain = function (domainPm) { - var minValue = FiltersConverter.convertFilterValuePresModel(domainPm.captionedRangeMin); - var maxValue = FiltersConverter.convertFilterValuePresModel(domainPm.captionedRangeMax); - return { - max: maxValue, - min: minValue - }; - }; - FiltersConverter.convertFilterValuePresModel = function (dvPM) { - /*tslint:disable-next-line:no-any */ - var value; - switch (dvPM.dataType) { - case Enums_1.DataType.DT_BOOLEAN: { - value = Boolean(dvPM.dataValueStr); - break; - } - case Enums_1.DataType.DT_DATE: { - value = new Date(dvPM.dataValueStr); - break; - } - case Enums_1.DataType.DT_DATETIME: { - value = new Date(dvPM.dataValueStr); - break; - } - case Enums_1.DataType.DT_INTEGER: { - value = Number.parseInt(dvPM.dataValueStr); - break; - } - case Enums_1.DataType.DT_REAL: { - value = Number.parseFloat(dvPM.dataValueStr); - break; - } - // default to string - default: { - value = dvPM.dataValueStr; - break; - } - } - return { - value: value, - // TODO: no easy way of getting back aliased value from platform, will need to investigate further - aliasedValue: '', - formattedValue: dvPM.dataValueDisplayString - }; - }; - FiltersConverter.convertIncludedNullValues = function (includeNull) { - return (includeNull === Enums_1.FiltersQuantitativeIncludedValues.InRangeOrNull || - includeNull === Enums_1.FiltersQuantitativeIncludedValues.All || - includeNull === Enums_1.FiltersQuantitativeIncludedValues.Null); - }; - return FiltersConverter; - }()); - exports.FiltersConverter = FiltersConverter; - //# sourceMappingURL=FiltersConverter.js.map - -/***/ }, -/* 28 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Simple registry class which creates a mapping based on two keys. - * - * @export - * @class MappingRegistry - * @template TInputEnumType - * @template TOutputEnumType - * @template TMappingStorageType - */ - var MappingRegistry = (function () { - function MappingRegistry() { - this._registry = {}; - } - MappingRegistry.prototype.has = function (inputType, outputType) { - var key = this.makeKey(inputType, outputType); - if (!this._registry.hasOwnProperty(key)) { - return false; - } - if (!this._registry[key]) { - return false; - } - return true; - }; - MappingRegistry.prototype.get = function (inputType, outputType) { - if (!this.has(inputType, outputType)) { - throw new Error('Missing requested mapping: ' + inputType + ' to ' + outputType); - } - var key = this.makeKey(inputType, outputType); - return this._registry[key]; - }; - MappingRegistry.prototype.addRegistration = function (inputType, outputType, storageItem) { - var key = this.makeKey(inputType, outputType); - // Add this item - this._registry[key] = storageItem; - }; - /** - * Combines the two keys into a unique string - * - * @private - * @param {TInputEnumType} inputType - * @param {TOutputEnumType} outputType - * @returns {string} - * @memberof MappingRegistry - */ - MappingRegistry.prototype.makeKey = function (inputType, outputType) { - var keyObj = { input: inputType, output: outputType }; - return JSON.stringify(keyObj); - }; - return MappingRegistry; - }()); - exports.MappingRegistry = MappingRegistry; - //# sourceMappingURL=MappingRegistry.js.map - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(4); - var EnumMappings_1 = __webpack_require__(21); - /** - * Contains logic for converting Parameter models into their equivalent Api versions - */ - var ParametersDataConverter = (function () { - function ParametersDataConverter() { - } - ParametersDataConverter.convertParameterList = function (parameters) { - return parameters.map(ParametersDataConverter.convertParameter); - }; - // Converts a single parameter. - // Rough port of https://opengrok/source/xref/dev_nessie/workgroup/vqlweb/scriptsharp/src/UI/Api/ApiParameterHandler.cs#95 - ParametersDataConverter.convertParameter = function (param) { - var currentValue = ParametersDataConverter.convertAliasedDataValue(param.valueAlias, param.formattedValue); - var allowableValuesType = EnumMappings_1.PresLayerToApiEnumMappings.parameterTypesDomainType.convert(param.parameterDomainType); - var result = { - name: param.fieldCaption, - fieldName: param.parameterName, - dataType: EnumMappings_1.PresLayerToApiEnumMappings.dataType.convert(param.dataType), - currentValue: currentValue, - allowableValuesType: allowableValuesType - }; - if (allowableValuesType === api_internal_contract_1.DomainRestrictionType.List) { - var allowableValues = new Array(); - for (var i = 0; i < param.valuesAliases.length; i++) { - var adv = param.valuesAliases[i]; - var formattedValue = param.formattedValues[i]; - allowableValues.push(ParametersDataConverter.convertAliasedDataValue(adv, formattedValue)); - } - result.allowableValues = allowableValues; - } - else if (allowableValuesType === api_internal_contract_1.DomainRestrictionType.Range) { - result.minValue = ParametersDataConverter.makeDataValue(param.valueMin, param.formattedMin); - result.maxValue = ParametersDataConverter.makeDataValue(param.valueMax, param.formattedMax); - result.stepSize = ParametersDataConverter.convertNumber(result.dataType, param.valueInc); - result.dateStepPeriod = EnumMappings_1.PresLayerToApiEnumMappings.dateStepPeriod.convert(param.datePeriodType, false); - } - else { - // Nothing to do in the case that all values are allowed - } - return result; - }; - ParametersDataConverter.convertNumber = function (dataType, value) { - if (value) { - if (dataType === api_internal_contract_1.DataType.Int || dataType === api_internal_contract_1.DataType.Date || dataType === api_internal_contract_1.DataType.DateTime) { - return parseInt(value, 10); - } - else if (dataType === api_internal_contract_1.DataType.Float) { - return parseFloat(value); - } - } - return undefined; - }; - /*tslint:disable-next-line:no-any */ - ParametersDataConverter.makeDataValue = function (value, formattedValue, alias) { - var result = { - value: value, - formattedValue: formattedValue, - aliasedValue: alias || formattedValue - }; - return result; - }; - /*tslint:disable-next-line:no-any */ - ParametersDataConverter.convertAliasedDataValue = function (adv, formattedValue) { - // AliasedDataValues are serialized in kind of a strange way from the platform code. They are output - // as an array of 2 values. The first is the actual value, the second is the alias. See AliasedDataValueSerializer::ToSerializer - if (!adv || !(adv instanceof Array)) { - throw new Error('Invalid aliased data value'); - } - var value = adv[0]; - var alias = adv.length < 2 ? undefined : adv[1]; - return ParametersDataConverter.makeDataValue(value, formattedValue, alias); - }; - return ParametersDataConverter; - }()); - exports.ParametersDataConverter = ParametersDataConverter; - //# sourceMappingURL=ParametersDataConverter.js.map - -/***/ }, -/* 30 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Implemenation of the PresentationLayer contract with a bit of extra information - * added to work with add-ins. Most work is delegated down to the interopObject which - * communicates directly with the c++ layer via QWebChannel - * - * @class AddInApiPresLayerImpl - * @implements {contract.PresentationLayer} - */ - var AddInApiPresLayerImpl = (function () { - function AddInApiPresLayerImpl(_interopObject) { - var _this = this; - this._interopObject = _interopObject; - this._notificationHandlers = {}; - if (_interopObject && _interopObject.OnNotification) { - _interopObject.OnNotification.connect(function (notification) { - _this.dispatchNotification(notification); - }); - } - } - Object.defineProperty(AddInApiPresLayerImpl.prototype, "AddInInstanceInfo", { - /** - * Gets the instance info for this particular add-in from the c++ code - * - * @readonly - * @type {AddInInstancePresModel} - * @memberof AddInApiPresLayerImpl - */ - get: function () { - return this._interopObject.addInInstanceInfo; - }, - enumerable: true, - configurable: true - }); - /** - * Invokes a command using the pres-layer interop - * - * @template T - The expected return type - * @param {string} commandNamespace - * @param {string} commandName - * @param {object} params - * @returns {Promise} - * @memberof AddInApiPresLayerImpl - */ - AddInApiPresLayerImpl.prototype.invokeCommand = function (commandNamespace, commandName, params) { - var _this = this; - return new Promise(function (resolve, reject) { - try { - commandNamespace = commandNamespace || 'tabdoc'; - _this._interopObject.ExecuteCommand(commandNamespace, commandName, params, function (response) { - if (!response.Success) { - var msg = 'ExecuteCommand failed, with result:' + JSON.stringify(response.Result); - reject(new Error(msg)); - } - else { - resolve(response.Result); - } - }); - } - catch (err) { - reject(err); - } - }); - }; - // This implementation will registration a single instance of a notification handler with the Native C++ object, - // and implement multi-dispatch to the web objects from h.ere - AddInApiPresLayerImpl.prototype.registerNotificationHandler = function (eventId, handler) { - var _this = this; - if (eventId in this._notificationHandlers) { - this._notificationHandlers[eventId].push(handler); - } - else { - this._notificationHandlers[eventId] = [handler]; - try { - this._interopObject.RegisterNotificationHandler(eventId); - } - catch (err) { - // console.log('RegisterNotificationHandler failed: ' + err); - } - } - return function () { return _this.removeNotificationHandler(eventId, handler); }; - }; - AddInApiPresLayerImpl.prototype.removeNotificationHandler = function (eventId, handler) { - var handlerList = this._notificationHandlers[eventId]; - if (!handlerList) { - return; - } - var foundIndex = handlerList.indexOf(handler); - if (foundIndex >= 0) { - handlerList.splice(foundIndex, 1); - } - if (handlerList.length === 0) { - delete this._notificationHandlers[eventId]; - } - }; - AddInApiPresLayerImpl.prototype.dispatchNotification = function (notification) { - // console.log('received notification: ' + JSON.stringify(notification)); - var eventId = notification.eventId; - var presModel = notification.presModel; - if (eventId in this._notificationHandlers) { - var handlers = this._notificationHandlers[eventId]; - for (var i = handlers.length - 1; i >= 0; i--) { - handlers[i](presModel); - } - } - }; - return AddInApiPresLayerImpl; - }()); - exports.AddInApiPresLayerImpl = AddInApiPresLayerImpl; - //# sourceMappingURL=AddInApiPresLayerImpl.js.map - -/***/ }, -/* 31 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Implementation of the InternalApiDispatcher for desktop. Since this will run in the same - * frame as the ApiEventHandler, this class mostly just marshalls down to that implementation - * - * @export - * @class DesktopApiDispatcher - * @implements {InternalApiDispatcher} - */ - var DesktopApiDispatcher = (function () { - function DesktopApiDispatcher(_apiEventHandler) { - var _this = this; - this._apiEventHandler = _apiEventHandler; - this._notificationHandlers = []; - this._apiEventHandler.setEventHandler(function (notificationId, model) { - _this._notificationHandlers.forEach(function (handler) { return handler({ - notificationId: notificationId, - data: model - }); }); - }); - } - DesktopApiDispatcher.prototype.setVersionNumber = function (versionNumber) { - this._apiEventHandler.setVersionNumber(versionNumber); - }; - DesktopApiDispatcher.prototype.execute = function (verb, parameters) { - // Just pass this right through to the ApiEventHandler - return this._apiEventHandler.execute(verb, parameters); - }; - DesktopApiDispatcher.prototype.registerNotificationHandler = function (handler) { - this._notificationHandlers.push(handler); - }; - DesktopApiDispatcher.prototype.unregisterNotificationHandler = function (handler) { - this._notificationHandlers = this._notificationHandlers.filter(function (h) { return h !== handler; }); - }; - return DesktopApiDispatcher; - }()); - exports.DesktopApiDispatcher = DesktopApiDispatcher; - //# sourceMappingURL=DesktopApiDispatcher.js.map - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - __webpack_require__(33); - var qwebchannel_1 = __webpack_require__(34); - /** - * Initializes the QWebChannel contract and returns the pres layer interop object - * - * @returns {Promise} - */ - function initializeWebChannelPresLayer() { - return new Promise(function (resolve, reject) { - try { - // tslint:disable-next-line - new qwebchannel_1.QWebChannel(qt.webChannelTransport, function (channel) { - // tslint:disable-next-line - var addInPresLayer = channel.objects['addInPresLayer']; - resolve(addInPresLayer); - }); - } - catch (e) { - reject(e); - } - }); - } - exports.initializeWebChannelPresLayer = initializeWebChannelPresLayer; - //# sourceMappingURL=QtWebChannelImpl.js.map - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - //# sourceMappingURL=QtTypes.js.map - -/***/ }, -/* 34 */ -/***/ function(module, exports, __webpack_require__) { - - /**************************************************************************** - ** - ** Copyright (C) 2015 The Qt Company Ltd. - ** Copyright (C) 2014 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Milian Wolff - ** Contact: http://www.qt.io/licensing/ - ** - ** This file is part of the QtWebChannel module of the Qt Toolkit. - ** - ** $QT_BEGIN_LICENSE:LGPL21$ - ** Commercial License Usage - ** Licensees holding valid commercial Qt licenses may use this file in - ** accordance with the commercial license agreement provided with the - ** Software or, alternatively, in accordance with the terms contained in - ** a written agreement between you and The Qt Company. For licensing terms - ** and conditions see http://www.qt.io/terms-conditions. For further - ** information use the contact form at http://www.qt.io/contact-us. - ** - ** GNU Lesser General Public License Usage - ** Alternatively, this file may be used under the terms of the GNU Lesser - ** General Public License version 2.1 or version 3 as published by the Free - ** Software Foundation and appearing in the file LICENSE.LGPLv21 and - ** LICENSE.LGPLv3 included in the packaging of this file. Please review the - ** following information to ensure the GNU Lesser General Public License - ** requirements will be met: https://www.gnu.org/licenses/lgpl.html and - ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. - ** - ** As a special exception, The Qt Company gives you certain additional - ** rights. These rights are described in The Qt Company LGPL Exception - ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. - ** - ** $QT_END_LICENSE$ - ** - ****************************************************************************/ - - "use strict"; - - var QWebChannelMessageTypes = { - signal: 1, - propertyUpdate: 2, - init: 3, - idle: 4, - debug: 5, - invokeMethod: 6, - connectToSignal: 7, - disconnectFromSignal: 8, - setProperty: 9, - response: 10, - }; - - var QWebChannel = function(transport, initCallback) - { - if (typeof transport !== "object" || typeof transport.send !== "function") { - console.error("The QWebChannel expects a transport object with a send function and onmessage callback property." + - " Given is: transport: " + typeof(transport) + ", transport.send: " + typeof(transport.send)); - return; - } - - var channel = this; - this.transport = transport; - - this.send = function(data) - { - if (typeof(data) !== "string") { - data = JSON.stringify(data); - } - channel.transport.send(data); - } - - this.transport.onmessage = function(message) - { - var data = message.data; - if (typeof data === "string") { - data = JSON.parse(data); - } - switch (data.type) { - case QWebChannelMessageTypes.signal: - channel.handleSignal(data); - break; - case QWebChannelMessageTypes.response: - channel.handleResponse(data); - break; - case QWebChannelMessageTypes.propertyUpdate: - channel.handlePropertyUpdate(data); - break; - default: - console.error("invalid message received:", message.data); - break; - } - } - - this.execCallbacks = {}; - this.execId = 0; - this.exec = function(data, callback) - { - if (!callback) { - // if no callback is given, send directly - channel.send(data); - return; - } - if (channel.execId === Number.MAX_VALUE) { - // wrap - channel.execId = Number.MIN_VALUE; - } - if (data.hasOwnProperty("id")) { - console.error("Cannot exec message with property id: " + JSON.stringify(data)); - return; - } - data.id = channel.execId++; - channel.execCallbacks[data.id] = callback; - channel.send(data); - }; - - this.objects = {}; - - this.handleSignal = function(message) - { - var object = channel.objects[message.object]; - if (object) { - object.signalEmitted(message.signal, message.args); - } else { - console.warn("Unhandled signal: " + message.object + "::" + message.signal); - } - } - - this.handleResponse = function(message) - { - if (!message.hasOwnProperty("id")) { - console.error("Invalid response message received: ", JSON.stringify(message)); - return; - } - channel.execCallbacks[message.id](message.data); - delete channel.execCallbacks[message.id]; - } - - this.handlePropertyUpdate = function(message) - { - for (var i in message.data) { - var data = message.data[i]; - var object = channel.objects[data.object]; - if (object) { - object.propertyUpdate(data.signals, data.properties); - } else { - console.warn("Unhandled property update: " + data.object + "::" + data.signal); - } - } - channel.exec({type: QWebChannelMessageTypes.idle}); - } - - this.debug = function(message) - { - channel.send({type: QWebChannelMessageTypes.debug, data: message}); - }; - - channel.exec({type: QWebChannelMessageTypes.init}, function(data) { - for (var objectName in data) { - var object = new QObject(objectName, data[objectName], channel); - } - // now unwrap properties, which might reference other registered objects - for (var objectName in channel.objects) { - channel.objects[objectName].unwrapProperties(); - } - if (initCallback) { - initCallback(channel); - } - channel.exec({type: QWebChannelMessageTypes.idle}); - }); - }; - - function QObject(name, data, webChannel) - { - this.__id__ = name; - webChannel.objects[name] = this; - - // List of callbacks that get invoked upon signal emission - this.__objectSignals__ = {}; - - // Cache of all properties, updated when a notify signal is emitted - this.__propertyCache__ = {}; - - var object = this; - - // ---------------------------------------------------------------------- - - this.unwrapQObject = function(response) - { - if (response instanceof Array) { - // support list of objects - var ret = new Array(response.length); - for (var i = 0; i < response.length; ++i) { - ret[i] = object.unwrapQObject(response[i]); - } - return ret; - } - if (!response - || !response["__QObject*__"] - || response["id"] === undefined) { - return response; - } - - var objectId = response.id; - if (webChannel.objects[objectId]) - return webChannel.objects[objectId]; - - if (!response.data) { - console.error("Cannot unwrap unknown QObject " + objectId + " without data."); - return; - } - - var qObject = new QObject( objectId, response.data, webChannel ); - qObject.destroyed.connect(function() { - if (webChannel.objects[objectId] === qObject) { - delete webChannel.objects[objectId]; - // reset the now deleted QObject to an empty {} object - // just assigning {} though would not have the desired effect, but the - // below also ensures all external references will see the empty map - // NOTE: this detour is necessary to workaround QTBUG-40021 - var propertyNames = []; - for (var propertyName in qObject) { - propertyNames.push(propertyName); - } - for (var idx in propertyNames) { - delete qObject[propertyNames[idx]]; - } - } - }); - // here we are already initialized, and thus must directly unwrap the properties - qObject.unwrapProperties(); - return qObject; - } - - this.unwrapProperties = function() - { - for (var propertyIdx in object.__propertyCache__) { - object.__propertyCache__[propertyIdx] = object.unwrapQObject(object.__propertyCache__[propertyIdx]); - } - } - - function addSignal(signalData, isPropertyNotifySignal) - { - var signalName = signalData[0]; - var signalIndex = signalData[1]; - object[signalName] = { - connect: function(callback) { - if (typeof(callback) !== "function") { - console.error("Bad callback given to connect to signal " + signalName); - return; - } - - object.__objectSignals__[signalIndex] = object.__objectSignals__[signalIndex] || []; - object.__objectSignals__[signalIndex].push(callback); - - if (!isPropertyNotifySignal && signalName !== "destroyed") { - // only required for "pure" signals, handled separately for properties in propertyUpdate - // also note that we always get notified about the destroyed signal - webChannel.exec({ - type: QWebChannelMessageTypes.connectToSignal, - object: object.__id__, - signal: signalIndex - }); - } - }, - disconnect: function(callback) { - if (typeof(callback) !== "function") { - console.error("Bad callback given to disconnect from signal " + signalName); - return; - } - object.__objectSignals__[signalIndex] = object.__objectSignals__[signalIndex] || []; - var idx = object.__objectSignals__[signalIndex].indexOf(callback); - if (idx === -1) { - console.error("Cannot find connection of signal " + signalName + " to " + callback.name); - return; - } - object.__objectSignals__[signalIndex].splice(idx, 1); - if (!isPropertyNotifySignal && object.__objectSignals__[signalIndex].length === 0) { - // only required for "pure" signals, handled separately for properties in propertyUpdate - webChannel.exec({ - type: QWebChannelMessageTypes.disconnectFromSignal, - object: object.__id__, - signal: signalIndex - }); - } - } - }; - } - - /** - * Invokes all callbacks for the given signalname. Also works for property notify callbacks. - */ - function invokeSignalCallbacks(signalName, signalArgs) - { - var connections = object.__objectSignals__[signalName]; - if (connections) { - connections.forEach(function(callback) { - callback.apply(callback, signalArgs); - }); - } - } - - this.propertyUpdate = function(signals, propertyMap) - { - // update property cache - for (var propertyIndex in propertyMap) { - var propertyValue = propertyMap[propertyIndex]; - object.__propertyCache__[propertyIndex] = propertyValue; - } - - for (var signalName in signals) { - // Invoke all callbacks, as signalEmitted() does not. This ensures the - // property cache is updated before the callbacks are invoked. - invokeSignalCallbacks(signalName, signals[signalName]); - } - } - - this.signalEmitted = function(signalName, signalArgs) - { - invokeSignalCallbacks(signalName, signalArgs); - } - - function addMethod(methodData) - { - var methodName = methodData[0]; - var methodIdx = methodData[1]; - object[methodName] = function() { - var args = []; - var callback; - for (var i = 0; i < arguments.length; ++i) { - if (typeof arguments[i] === "function") - callback = arguments[i]; - else - args.push(arguments[i]); - } - - webChannel.exec({ - "type": QWebChannelMessageTypes.invokeMethod, - "object": object.__id__, - "method": methodIdx, - "args": args - }, function(response) { - if (response !== undefined) { - var result = object.unwrapQObject(response); - if (callback) { - (callback)(result); - } - } - }); - }; - } - - function bindGetterSetter(propertyInfo) - { - var propertyIndex = propertyInfo[0]; - var propertyName = propertyInfo[1]; - var notifySignalData = propertyInfo[2]; - // initialize property cache with current value - // NOTE: if this is an object, it is not directly unwrapped as it might - // reference other QObject that we do not know yet - object.__propertyCache__[propertyIndex] = propertyInfo[3]; - - if (notifySignalData) { - if (notifySignalData[0] === 1) { - // signal name is optimized away, reconstruct the actual name - notifySignalData[0] = propertyName + "Changed"; - } - addSignal(notifySignalData, true); - } - - Object.defineProperty(object, propertyName, { - get: function () { - var propertyValue = object.__propertyCache__[propertyIndex]; - if (propertyValue === undefined) { - // This shouldn't happen - console.warn("Undefined value in property cache for property \"" + propertyName + "\" in object " + object.__id__); - } - - return propertyValue; - }, - set: function(value) { - if (value === undefined) { - console.warn("Property setter for " + propertyName + " called with undefined value!"); - return; - } - object.__propertyCache__[propertyIndex] = value; - webChannel.exec({ - "type": QWebChannelMessageTypes.setProperty, - "object": object.__id__, - "property": propertyIndex, - "value": value - }); - } - }); - - } - - // ---------------------------------------------------------------------- - - data.methods.forEach(addMethod); - - data.properties.forEach(bindGetterSetter); - - data.signals.forEach(function(signal) { addSignal(signal, false); }); - - for (var name in data.enums) { - object[name] = data.enums[name]; - } - } - - //required for use with nodejs - if (true) { - module.exports = { - QWebChannel: QWebChannel - }; - } - - -/***/ } -/******/ ]) -}); -; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlbGFyZC1kZXNrdG9wLWJvb3RzdHJhcC5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy93ZWJwYWNrL3VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24iLCJ3ZWJwYWNrOi8vL3dlYnBhY2svYm9vdHN0cmFwIDUzMDdiNDdlZGQzYjZhZDg4ZDEyIiwid2VicGFjazovLy8uLi9saWIvTWFpbi5qcyIsIndlYnBhY2s6Ly8vLi4vbGliL0ZyZWxhcmREZXNrdG9wQm9vdHN0cmFwLmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1jb3JlL2xpYi9zcmMvQXBpQ29yZS5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktY29yZS9saWIvc3JjL0FwaUV2ZW50SGFuZGxlci5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3QvbGliL0FwaUludGVybmFsQ29udHJhY3QuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWludGVybmFsLWNvbnRyYWN0L2xpYi9pbnRlcmZhY2UvRW51bXMuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWludGVybmFsLWNvbnRyYWN0L2xpYi9pbnRlcmZhY2UvSW50ZXJuYWxBcGlEaXNwYXRjaGVyLmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9saWIvaW50ZXJmYWNlL05vdGlmaWNhdGlvbnMuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWludGVybmFsLWNvbnRyYWN0L2xpYi9pbnRlcmZhY2UvUGFyYW1ldGVycy5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3QvbGliL2ludGVyZmFjZS9WZXJicy5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktY29yZS9saWIvZ2VuLXNyYy9wcmVzbGF5ZXIvUGFyYW1zLmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1jb3JlL2xpYi9zcmMvbWFwcGluZ3MvQ29tbWFuZE1hcHBpbmdSZWdpc3RyeUZhY3RvcnkuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWNvcmUvbGliL2dlbi1zcmMvcHJlc2xheWVyL0NvbW1hbmRJZHMuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWNvcmUvbGliL3NyYy9tYXBwaW5ncy9Db21tYW5kTWFwcGluZ1JlZ2lzdHJ5LmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1jb3JlL2xpYi9zcmMvbWFwcGluZ3MvQ29tbWFuZFJlZ2lzdHJhdGlvbi5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktY29yZS9saWIvc3JjL21hcHBpbmdzL0V2ZW50TWFwcGluZ1JlZ2lzdHJ5RmFjdG9yeS5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktY29yZS9saWIvZ2VuLXNyYy9wcmVzbGF5ZXIvRXZlbnRzLmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1jb3JlL2xpYi9zcmMvbWFwcGluZ3MvUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXV0aWxzL2xpYi9BcGlVdGlscy5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktdXRpbHMvbGliL0VudW1Db252ZXJ0ZXIuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXV0aWxzL2xpYi9QYXJhbS5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktY29yZS9saWIvc3JjL21hcHBpbmdzL0VudW1NYXBwaW5ncy5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktY29yZS9saWIvZ2VuLXNyYy9wcmVzbGF5ZXIvRW51bXMuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWNvcmUvbGliL3NyYy9tYXBwaW5ncy9QYXJhbWV0ZXJNYXBwaW5nUmVnaXN0cnlGYWN0b3J5LmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1jb3JlL2xpYi9zcmMvbWFwcGluZ3MvQWN0aXZlTWFya3NEYXRhQ29udmVydGVyLmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1jb3JlL2xpYi9zcmMvbWFwcGluZ3MvVW5kZXJseWluZ0RhdGFDb252ZXJ0ZXIuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWNvcmUvbGliL3NyYy9tYXBwaW5ncy9BcGlUb1ByZXNMYXllckNvbnZlcnRlci5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktY29yZS9saWIvc3JjL21hcHBpbmdzL0ZpbHRlcnNDb252ZXJ0ZXIuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWNvcmUvbGliL3NyYy9tYXBwaW5ncy9NYXBwaW5nUmVnaXN0cnkuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWNvcmUvbGliL3NyYy9tYXBwaW5ncy9QYXJhbWV0ZXJzRGF0YUNvbnZlcnRlci5qcyIsIndlYnBhY2s6Ly8vLi4vbGliL0FkZEluQXBpUHJlc0xheWVySW1wbC5qcyIsIndlYnBhY2s6Ly8vLi4vbGliL0Rlc2t0b3BBcGlEaXNwYXRjaGVyLmpzIiwid2VicGFjazovLy8uLi9saWIvUXRXZWJDaGFubmVsSW1wbC5qcyIsIndlYnBhY2s6Ly8vLi4vbGliL3R5cGVzL1F0VHlwZXMuanMiLCJ3ZWJwYWNrOi8vLy4uL34vcXdlYmNoYW5uZWwvcXdlYmNoYW5uZWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uIHdlYnBhY2tVbml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uKHJvb3QsIGZhY3RvcnkpIHtcblx0aWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnICYmIHR5cGVvZiBtb2R1bGUgPT09ICdvYmplY3QnKVxuXHRcdG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkpO1xuXHRlbHNlIGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0Jylcblx0XHRleHBvcnRzW1wiTWFpblwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJNYWluXCJdID0gZmFjdG9yeSgpO1xufSkodGhpcywgZnVuY3Rpb24oKSB7XG5yZXR1cm4gXG5cblxuLyoqIFdFQlBBQ0sgRk9PVEVSICoqXG4gKiogd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uXG4gKiovIiwiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pXG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG5cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGV4cG9ydHM6IHt9LFxuIFx0XHRcdGlkOiBtb2R1bGVJZCxcbiBcdFx0XHRsb2FkZWQ6IGZhbHNlXG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmxvYWRlZCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiL2Rpc3QvXCI7XG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oMCk7XG5cblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiB3ZWJwYWNrL2Jvb3RzdHJhcCA1MzA3YjQ3ZWRkM2I2YWQ4OGQxMlxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIEZyZWxhcmREZXNrdG9wQm9vdHN0cmFwXzEgPSByZXF1aXJlKFwiLi9GcmVsYXJkRGVza3RvcEJvb3RzdHJhcFwiKTtcbi8vIFRoaXMgTWFpbiBmdW5jdGlvbiB3aWxsIGJlIGV4ZWN1dGVkIHdoZW4gdGhpcyBtb2R1bGUgaXMgbG9hZGVkLiBBdHRlbXB0IHRvIGRvIG91clxuLy8gYm9vdHN0cmFwcGluZyB3aXRoIHF0IGFuZCBsb2cgYW55IGVycm9ycyB3ZSBlbmNvdW50ZXJcbkZyZWxhcmREZXNrdG9wQm9vdHN0cmFwXzEuZG9Cb290c3RyYXAoKS5jYXRjaChmdW5jdGlvbiAoZSkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ0Rlc2t0b3AgYm9vdHN0cmFwcGluZyBmYWlsZWQ6ICcgKyBlKTtcbn0pO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9TWFpbi5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4uL2xpYi9NYWluLmpzXG4gKiogbW9kdWxlIGlkID0gMFxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgYXBpX2NvcmVfMSA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktY29yZVwiKTtcbnZhciBhcGlfaW50ZXJuYWxfY29udHJhY3RfMSA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3RcIik7XG52YXIgQWRkSW5BcGlQcmVzTGF5ZXJJbXBsXzEgPSByZXF1aXJlKFwiLi9BZGRJbkFwaVByZXNMYXllckltcGxcIik7XG52YXIgRGVza3RvcEFwaURpc3BhdGNoZXJfMSA9IHJlcXVpcmUoXCIuL0Rlc2t0b3BBcGlEaXNwYXRjaGVyXCIpO1xudmFyIFF0V2ViQ2hhbm5lbEltcGxfMSA9IHJlcXVpcmUoXCIuL1F0V2ViQ2hhbm5lbEltcGxcIik7XG4vKipcbiAqIFdyYXBwZXIgZm9yIGFsbCB0aGUgYm9vdHN0cmFwcGluZyBsb2dpYy4gVGhpcyBjb2RlIGF0dGVtcHRzIHRvIGluaXRpYWxpemUgdGhlIHF0IHByZXMtbGF5ZXJcbiAqIGFzIHdlbGwgYXMgdGhlIGRlc2t0b3AgZGlzcGF0Y2hlci4gSXQgdGhlbiBhc3NpZ25zIGl0IHRvIHRoZSBnbG9iYWwgZGVza3RvcCBkaXNwYXRjaGVyIHRvXG4gKiBiZSBwaWNrZWQgdXAgYnkgdGhlIGFkZC1pbiBleHRlcm5hbCBBcGlcbiAqL1xuZnVuY3Rpb24gZG9Cb290c3RyYXAoKSB7XG4gICAgLy8gRmlyc3Qgd2UgbmVlZCB0byBpbml0aWFsaXplIHRoZSB3ZWJjaGFubmVsIHByZXMtbGF5ZXJcbiAgICB2YXIgZGlzcGF0Y2hlclByb21pc2UgPSBRdFdlYkNoYW5uZWxJbXBsXzEuaW5pdGlhbGl6ZVdlYkNoYW5uZWxQcmVzTGF5ZXIoKS50aGVuKGZ1bmN0aW9uIChwcmVzbGF5ZXIpIHtcbiAgICAgICAgdmFyIHByZXNMYXllckFwaSA9IG5ldyBBZGRJbkFwaVByZXNMYXllckltcGxfMS5BZGRJbkFwaVByZXNMYXllckltcGwocHJlc2xheWVyKTtcbiAgICAgICAgaWYgKCFwcmVzTGF5ZXJBcGkuQWRkSW5JbnN0YW5jZUluZm8uYWRkSW5Mb2NhdG9yUHJlc01vZGVsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FkZEluSW5zdGFuY2VJbmZvIHVuZGVmaW5lZCcpO1xuICAgICAgICB9XG4gICAgICAgIC8vIEluaXRpYWxpemUgdGhlIGFwaUV2ZW50SGFuZGxlciBhbmQgdGhlIGRlc2t0b3BEaXNwYXRjaGVyIHdpdGggaXRcbiAgICAgICAgdmFyIGFwaUV2ZW50SGFuZGxlciA9IG5ldyBhcGlfY29yZV8xLkFwaUV2ZW50SGFuZGxlcihwcmVzTGF5ZXJBcGksIHByZXNMYXllckFwaS5BZGRJbkluc3RhbmNlSW5mby5hZGRJbkxvY2F0b3JQcmVzTW9kZWwpO1xuICAgICAgICB2YXIgZGVza3RvcERpc3BhdGNoZXIgPSBuZXcgRGVza3RvcEFwaURpc3BhdGNoZXJfMS5EZXNrdG9wQXBpRGlzcGF0Y2hlcihhcGlFdmVudEhhbmRsZXIpO1xuICAgICAgICByZXR1cm4gZGVza3RvcERpc3BhdGNoZXI7XG4gICAgfSk7XG4gICAgLy8gQXNzaWduIHRoZSBkZXNrdG9wIGRpc3BhdGNoZXIgZm9yIHRoZSBvdGhlciBwcm9qZWN0IHRvIGZpbmQgaXRcbiAgICBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5JbnRlcm5hbEFwaURpc3BhdGNoZXJIb2xkZXIuc2V0RGVza3RvcERpc3BhdGNoZXJQcm9taXNlKGRpc3BhdGNoZXJQcm9taXNlKTtcbiAgICByZXR1cm4gZGlzcGF0Y2hlclByb21pc2U7XG59XG5leHBvcnRzLmRvQm9vdHN0cmFwID0gZG9Cb290c3RyYXA7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1GcmVsYXJkRGVza3RvcEJvb3RzdHJhcC5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4uL2xpYi9GcmVsYXJkRGVza3RvcEJvb3RzdHJhcC5qc1xuICoqIG1vZHVsZSBpZCA9IDFcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuLyoqXG4gKiBUaGlzIGlzIHlvdXIgbWFpbi4gVGhpcyBpcyB3aGVyZSB5b3UgcmUtZXhwb3J0IGV2ZXJ5dGhpbmcgeW91IHdhbnQgdG8gYmUgcHVibGljbHkgYXZhaWxhYmxlLlxuICpcbiAqIFRoZSBidWlsZCBlbmZvcmNlcyB0aGF0IHRoZSBmaWxlIGhhcyB0aGUgc2FtZSBuYW1lIGFzIHRoZSBnbG9iYWwgdmFyaWFibGUgdGhhdCBpcyBleHBvcnRlZC5cbiAqL1xuZnVuY3Rpb24gX19leHBvcnQobSkge1xuICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKCFleHBvcnRzLmhhc093blByb3BlcnR5KHApKSBleHBvcnRzW3BdID0gbVtwXTtcbn1cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbl9fZXhwb3J0KHJlcXVpcmUoXCIuL0FwaUV2ZW50SGFuZGxlclwiKSk7XG52YXIgRXZlbnRzXzEgPSByZXF1aXJlKFwiLi4vZ2VuLXNyYy9wcmVzbGF5ZXIvRXZlbnRzXCIpO1xuZXhwb3J0cy5Ob3RpZmljYXRpb25JZCA9IEV2ZW50c18xLk5vdGlmaWNhdGlvbklkO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9QXBpQ29yZS5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWNvcmUvbGliL3NyYy9BcGlDb3JlLmpzXG4gKiogbW9kdWxlIGlkID0gMlxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgYXBpX2ludGVybmFsX2NvbnRyYWN0XzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0XCIpO1xudmFyIFBhcmFtc18xID0gcmVxdWlyZShcIi4uL2dlbi1zcmMvcHJlc2xheWVyL1BhcmFtc1wiKTtcbnZhciBDb21tYW5kTWFwcGluZ1JlZ2lzdHJ5RmFjdG9yeV8xID0gcmVxdWlyZShcIi4vbWFwcGluZ3MvQ29tbWFuZE1hcHBpbmdSZWdpc3RyeUZhY3RvcnlcIik7XG52YXIgRXZlbnRNYXBwaW5nUmVnaXN0cnlGYWN0b3J5XzEgPSByZXF1aXJlKFwiLi9tYXBwaW5ncy9FdmVudE1hcHBpbmdSZWdpc3RyeUZhY3RvcnlcIik7XG52YXIgUGFyYW1ldGVyTWFwcGluZ1JlZ2lzdHJ5RmFjdG9yeV8xID0gcmVxdWlyZShcIi4vbWFwcGluZ3MvUGFyYW1ldGVyTWFwcGluZ1JlZ2lzdHJ5RmFjdG9yeVwiKTtcbi8qKlxuICogTWFpbiBjbGFzcyBmb3IgdGhlIGFwaS1jb3JlIHByb2plY3QuIFRoaXMgY2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIGV4ZWN1dGluZyBjb21hbW5kIGFuZCBtYXJzaGFsbGluZyBub3RpZmNhdGlvbnNcbiAqIGJldHdlZW4gdGhlIGludGVybmFsIEFwaSBhbmQgdGhlIHByZXMtbGF5ZXIgQXBpLiBBZnRlciBjb25zdHJ1Y3Rpb24sIFNldFZlcnNpb25OdW1iZXIgbXVzdCBiZSBjYWxsZWQgaW4gb3JkZXIgdG9cbiAqIHVzZSB0aGlzIGNsYXNzXG4gKlxuICogQGV4cG9ydFxuICogQGNsYXNzIEFwaUV2ZW50SGFuZGxlclxuICovXG52YXIgQXBpRXZlbnRIYW5kbGVyID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIEFwaUV2ZW50SGFuZGxlci5cbiAgICAgKiBAcGFyYW0ge1ByZXNlbnRhdGlvbkxheWVyfSBwcmVzTGF5ZXIgLSBBbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgcHJlcy1sYXllciBBcGkgdG8gdXNlXG4gICAgICogQHBhcmFtIHtBZGRJbkxvY2F0b3JQcmVzTW9kZWx9IGFkZEluTG9jYXRvclByZXNNb2RlbCAtIGxvY2F0b3IgZm9yIHRoZSBhZGQtaW4gd2hpY2ggaXMgYmVpbmcgcmVmZXJlbmNlZFxuICAgICAqIEBtZW1iZXJvZiBBcGlFdmVudEhhbmRsZXJcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBBcGlFdmVudEhhbmRsZXIocHJlc0xheWVyLCBhZGRJbkxvY2F0b3JQcmVzTW9kZWwpIHtcbiAgICAgICAgdGhpcy5fcHJlc0xheWVyID0gcHJlc0xheWVyO1xuICAgICAgICB0aGlzLl9wcmVzTGF5ZXJBZGRJbkxvY2F0b3IgPSBhZGRJbkxvY2F0b3JQcmVzTW9kZWw7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGludGVybmFsIEFwaSB2ZXJzaW9uIG51bWJlciB3aGljaCB0aGUgZXh0ZXJuYWwgbGlicmFyeSBpcyBleHBlY3RpbmcgdG8gdXNlLiBUaGlzIG11c3QgYmUgY2FsbGVkIGJlZm9yZVxuICAgICAqIGFueXRoaW5nIGVsc2UgaW4gb3JkZXIgdG8gcHJvcGVybHkgc2V0IHVwIHRoZSB0cmFuc2xhdGlvbiBsYXllcnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1ZlcnNpb25OdW1iZXJ9IHZlcnNpb25OdW1iZXJcbiAgICAgKiBAbWVtYmVyb2YgQXBpRXZlbnRIYW5kbGVyXG4gICAgICovXG4gICAgQXBpRXZlbnRIYW5kbGVyLnByb3RvdHlwZS5zZXRWZXJzaW9uTnVtYmVyID0gZnVuY3Rpb24gKHZlcnNpb25OdW1iZXIpIHtcbiAgICAgICAgdGhpcy5fdmVyc2lvbk51bWJlciA9IHZlcnNpb25OdW1iZXI7XG4gICAgICAgIC8vIEluaXRpYWxpemUgYWxsIG91ciByZWdpc3RyaWVzXG4gICAgICAgIHRoaXMuX2NvbW1hbmRSZWdpc3RyeSA9IENvbW1hbmRNYXBwaW5nUmVnaXN0cnlGYWN0b3J5XzEuQ29tbWFuZE1hcHBpbmdSZWdpc3RyeUZhY3RvcnkuY3JlYXRlQ29tbWFuZE1hcHBpbmdSZWdpc3RyeSh2ZXJzaW9uTnVtYmVyKTtcbiAgICAgICAgdGhpcy5fYXBpVG9QcmVzTGF5ZXJSZWdpc3RyeSA9IFBhcmFtZXRlck1hcHBpbmdSZWdpc3RyeUZhY3RvcnlfMS5QYXJhbWV0ZXJNYXBwaW5nUmVnaXN0cnlGYWN0b3J5LmNyZWF0ZUFwaVRvUHJlc0xheWVyUGFyYW1SZWdpc3RyeSh2ZXJzaW9uTnVtYmVyKTtcbiAgICAgICAgdGhpcy5fcHJlc0xheWVyVG9BcGlSZWdpc3RyeSA9IFBhcmFtZXRlck1hcHBpbmdSZWdpc3RyeUZhY3RvcnlfMS5QYXJhbWV0ZXJNYXBwaW5nUmVnaXN0cnlGYWN0b3J5LmNyZWF0ZVByZXNMYXllclRvQXBpUGFyYW1SZWdpc3RyeSh2ZXJzaW9uTnVtYmVyKTtcbiAgICAgICAgdGhpcy5fZXZlbnRSZWdpc3RyeSA9IEV2ZW50TWFwcGluZ1JlZ2lzdHJ5RmFjdG9yeV8xLkV2ZW50TWFwcGluZ1JlZ2lzdHJ5RmFjdG9yeS5jcmVhdGVFdmVudE1hcHBpbmdSZWdpc3RyeSh2ZXJzaW9uTnVtYmVyKTtcbiAgICAgICAgLy8gQ29udmVydCBvdXIgYWRkSW5Mb2NhdG9yIHRvIHRoZSBBcGkgdmVyc2lvblxuICAgICAgICB0aGlzLl9hcGlBZGRJbkxvY2F0b3IgPSB0aGlzLl9wcmVzTGF5ZXJUb0FwaVJlZ2lzdHJ5XG4gICAgICAgICAgICAuZ2V0KFBhcmFtc18xLlBhcmFtZXRlcklkLkFkZEluTG9jYXRvciwgYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuQWRkSW5Mb2NhdG9yKSh0aGlzLl9wcmVzTGF5ZXJBZGRJbkxvY2F0b3IpO1xuICAgICAgICBmb3IgKHZhciBfaSA9IDAsIF9hID0gT2JqZWN0LmtleXModGhpcy5fZXZlbnRSZWdpc3RyeSk7IF9pIDwgX2EubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICB2YXIgcGxFdmVudElkID0gX2FbX2ldO1xuICAgICAgICAgICAgLy8gUmVnaXN0ZXIgZm9yIGFsbCBub3RpZmljYXRpb25zIHdlIGtub3cgYWJvdXQgYW5kIGJpbmQgdGhlIGV2ZW50IHR5cGUgdG8gdGhlIGNhbGxiYWNrXG4gICAgICAgICAgICB0aGlzLl9wcmVzTGF5ZXIucmVnaXN0ZXJOb3RpZmljYXRpb25IYW5kbGVyKHBsRXZlbnRJZCwgdGhpcy5vblByZXNMYXllck5vdGlmaWNhdGlvbi5iaW5kKHRoaXMsIHBsRXZlbnRJZCkpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBTZXRzIGFuIGV2ZW50IGhhbmRsZXIgZnVuY3Rpb24gdG8gYmUgbm90aWZpZWQgd2hlbiBBcGkgZXZlbnRzIGNvbWUgaW4uIE9ubHkgYSBzaW5nbGUgcmVnaXN0cmF0aW9uIGlzIHN1cHBvcnRlZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Tm90aWZpY2F0aW9uSGFuZGxlcn0gZXZlbnRIYW5kbGVyXG4gICAgICogQG1lbWJlcm9mIEFwaUV2ZW50SGFuZGxlclxuICAgICAqL1xuICAgIEFwaUV2ZW50SGFuZGxlci5wcm90b3R5cGUuc2V0RXZlbnRIYW5kbGVyID0gZnVuY3Rpb24gKGV2ZW50SGFuZGxlcikge1xuICAgICAgICB0aGlzLl9ldmVudEhhbmRsZXIgPSBldmVudEhhbmRsZXI7XG4gICAgICAgIC8vIFRPRE8gLSBSZWdpc3RlciBmb3IgcHJlcyBsYXllciBldmVudHNcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEV4ZWN1dGVzIHRoZSByZXF1ZXN0ZWQgQXBpIGNvbW1hbmQgYnkgY29udmVydGluZyB0aGUgcGFyYW1ldGVycywgcnVubmluZyB0aGUgY29tbWFuZCBhZ2FpbnN0IHRoZSBwcmVzLWxheWVyLFxuICAgICAqIHRoZW4gcHJvY2Vzc2luZyB0aGUgcmVzdWx0IGJhY2sgaW50byBhIGZvcm1hdCB0aGUgQXBpIGNhbiB1bmRlcnN0YW5kXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1ZlcmJJZH0gdmVyYlxuICAgICAqIEBwYXJhbSB7RXhlY3V0ZVBhcmFtZXRlcnN9IHBhcmFtZXRlcnNcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxFeGVjdXRlUmVzcG9uc2U+fVxuICAgICAqIEBtZW1iZXJvZiBBcGlFdmVudEhhbmRsZXJcbiAgICAgKi9cbiAgICBBcGlFdmVudEhhbmRsZXIucHJvdG90eXBlLmV4ZWN1dGUgPSBmdW5jdGlvbiAodmVyYiwgcGFyYW1ldGVycykge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB0aGlzLmFzc2VydEluaXRpYWxpemVkKCk7XG4gICAgICAgIHZhciBjb21tYW5kID0gdGhpcy5fY29tbWFuZFJlZ2lzdHJ5LmdldENvbW1hbmQodmVyYik7XG4gICAgICAgIHBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzIHx8IHt9O1xuICAgICAgICAvLyBBdWdtZW50IHRoZSBjb21tYW5kIHdpdGggdGhlIGxvY2F0b3IgaWYgaXQncyBuZWVkZWRcbiAgICAgICAgaWYgKGNvbW1hbmQubmVlZHNBZGRJbkxvY2F0b3IpIHtcbiAgICAgICAgICAgIHBhcmFtZXRlcnNbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuQWRkSW5Mb2NhdG9yXSA9IHRoaXMuX2FwaUFkZEluTG9jYXRvcjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY29tbWFuZHNQYXJhbXMgPSBjb21tYW5kLmNyZWF0ZVBhcmFtcyhwYXJhbWV0ZXJzLCB0aGlzLl9hcGlUb1ByZXNMYXllclJlZ2lzdHJ5KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ByZXNMYXllci5pbnZva2VDb21tYW5kKGNvbW1hbmQubmFtZXNwYWNlLCBjb21tYW5kLmNvbW1hbmRJZCwgY29tbWFuZHNQYXJhbXMpXG4gICAgICAgICAgICAudGhlbihmdW5jdGlvbiAoY29tbWFuZFJlc3VsdCkge1xuICAgICAgICAgICAgdmFyIGNvbnZlcnRlZFJlc3VsdCA9IGNvbW1hbmQuUHJvY2Vzc1Jlc3VsdChjb21tYW5kUmVzdWx0LCBfdGhpcy5fcHJlc0xheWVyVG9BcGlSZWdpc3RyeSk7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlc3VsdDogY29udmVydGVkUmVzdWx0XG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIEhlbHBlciBtZXRob2QgdG8gY2hlY2sgdGhhdCB0aGluZ3MgYXJlIGluaXRpYWxpemVkIGFzIGV4cGVjdGVkLiBUaHJvd3MgaWYgaW5pdGlhbGl6YXRpb24gbm90IGNvbXBsZXRlXG4gICAgICpcbiAgICAgKiBAcHJpdmF0ZVxuICAgICAqIEBtZW1iZXJvZiBBcGlFdmVudEhhbmRsZXJcbiAgICAgKi9cbiAgICBBcGlFdmVudEhhbmRsZXIucHJvdG90eXBlLmFzc2VydEluaXRpYWxpemVkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoIXRoaXMuX3ZlcnNpb25OdW1iZXIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVmVyc2lvbk51bWJlciBub3QgeWV0IGNvbmZpZ3VyZWQuIENhbm5vdCB0YWtlIGFueSBhY3Rpb25zJyk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIC8qKlxuICAgICAqIENhbGxlZCB3aGVuIGEgbmV3IGV2ZW50IG5vdGlmaWNhdGlvbiBjb21lcyBpbiBmcm9tIHRoZSBwcmVzZW50YXRpb24gbGF5ZXJcbiAgICAgKlxuICAgICAqIEBwYXJhbSBldmVudElkIFRoZSBwcmVzIGxheWVyIGV2ZW50IGlkXG4gICAgICogQHBhcmFtIHByZXNNb2RlbCBUaGUgcHJlcyBtb2RlbCB0aGF0IGlzIGluY2x1ZGVkIHdpdGggdGhlIGV2ZW50XG4gICAgICovXG4gICAgQXBpRXZlbnRIYW5kbGVyLnByb3RvdHlwZS5vblByZXNMYXllck5vdGlmaWNhdGlvbiA9IGZ1bmN0aW9uIChldmVudElkLCBwcmVzTW9kZWwpIHtcbiAgICAgICAgLy8gRmlyc3QgbG9vayB1cCB0aGlzIGV2ZW50SWQgaW4gb3VyIHJlZ2lzdHJ5IGFuZCBjb252ZXJ0IHRvIHByZXNNb2RlbFxuICAgICAgICB2YXIgZXZlbnRNYXBwaW5nID0gdGhpcy5fZXZlbnRSZWdpc3RyeVtldmVudElkXTtcbiAgICAgICAgdmFyIGFwaU1vZGVsID0gZXZlbnRNYXBwaW5nLmNvbnZlcnRlcihwcmVzTW9kZWwpO1xuICAgICAgICBpZiAodGhpcy5fZXZlbnRIYW5kbGVyKSB7XG4gICAgICAgICAgICB0aGlzLl9ldmVudEhhbmRsZXIoZXZlbnRNYXBwaW5nLmFwaUlkLCBhcGlNb2RlbCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiBBcGlFdmVudEhhbmRsZXI7XG59KCkpO1xuZXhwb3J0cy5BcGlFdmVudEhhbmRsZXIgPSBBcGlFdmVudEhhbmRsZXI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1BcGlFdmVudEhhbmRsZXIuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1jb3JlL2xpYi9zcmMvQXBpRXZlbnRIYW5kbGVyLmpzXG4gKiogbW9kdWxlIGlkID0gM1xuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG4vKipcbiAqIFRoaXMgaXMgeW91ciBtYWluLiBUaGlzIGlzIHdoZXJlIHlvdSByZS1leHBvcnQgZXZlcnl0aGluZyB5b3Ugd2FudCB0byBiZSBwdWJsaWNseSBhdmFpbGFibGUuXG4gKlxuICogVGhlIGJ1aWxkIGVuZm9yY2VzIHRoYXQgdGhlIGZpbGUgaGFzIHRoZSBzYW1lIG5hbWUgYXMgdGhlIGdsb2JhbCB2YXJpYWJsZSB0aGF0IGlzIGV4cG9ydGVkLlxuICovXG5mdW5jdGlvbiBfX2V4cG9ydChtKSB7XG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAoIWV4cG9ydHMuaGFzT3duUHJvcGVydHkocCkpIGV4cG9ydHNbcF0gPSBtW3BdO1xufVxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuX19leHBvcnQocmVxdWlyZShcIi4vaW50ZXJmYWNlL0VudW1zXCIpKTtcbl9fZXhwb3J0KHJlcXVpcmUoXCIuL2ludGVyZmFjZS9JbnRlcm5hbEFwaURpc3BhdGNoZXJcIikpO1xuX19leHBvcnQocmVxdWlyZShcIi4vaW50ZXJmYWNlL05vdGlmaWNhdGlvbnNcIikpO1xuX19leHBvcnQocmVxdWlyZShcIi4vaW50ZXJmYWNlL1BhcmFtZXRlcnNcIikpO1xuX19leHBvcnQocmVxdWlyZShcIi4vaW50ZXJmYWNlL1ZlcmJzXCIpKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUFwaUludGVybmFsQ29udHJhY3QuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9saWIvQXBpSW50ZXJuYWxDb250cmFjdC5qc1xuICoqIG1vZHVsZSBpZCA9IDRcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIEFkZEluQ29udGV4dDtcbihmdW5jdGlvbiAoQWRkSW5Db250ZXh0KSB7XG4gICAgQWRkSW5Db250ZXh0W1wiRGVza3RvcFwiXSA9IFwiZGVza3RvcFwiO1xuICAgIEFkZEluQ29udGV4dFtcIlNlcnZlclwiXSA9IFwic2VydmVyXCI7XG4gICAgQWRkSW5Db250ZXh0W1wiVW5rbm93blwiXSA9IFwidW5rbm93blwiO1xufSkoQWRkSW5Db250ZXh0ID0gZXhwb3J0cy5BZGRJbkNvbnRleHQgfHwgKGV4cG9ydHMuQWRkSW5Db250ZXh0ID0ge30pKTtcbnZhciBBZGRJbk1vZGU7XG4oZnVuY3Rpb24gKEFkZEluTW9kZSkge1xuICAgIEFkZEluTW9kZVtcIkF1dGhvcmluZ1wiXSA9IFwiYXV0aG9yaW5nXCI7XG4gICAgQWRkSW5Nb2RlW1wiVmlld2luZ1wiXSA9IFwidmlld2luZ1wiO1xuICAgIEFkZEluTW9kZVtcIlVua25vd25cIl0gPSBcInVua25vd25cIjtcbn0pKEFkZEluTW9kZSA9IGV4cG9ydHMuQWRkSW5Nb2RlIHx8IChleHBvcnRzLkFkZEluTW9kZSA9IHt9KSk7XG52YXIgQ29sdW1uVHlwZTtcbihmdW5jdGlvbiAoQ29sdW1uVHlwZSkge1xuICAgIENvbHVtblR5cGVbXCJEaXNjcmV0ZVwiXSA9IFwiZGlzY3JldGVcIjtcbiAgICBDb2x1bW5UeXBlW1wiQ29udGludW91c1wiXSA9IFwiY29udGludW91c1wiO1xufSkoQ29sdW1uVHlwZSA9IGV4cG9ydHMuQ29sdW1uVHlwZSB8fCAoZXhwb3J0cy5Db2x1bW5UeXBlID0ge30pKTtcbnZhciBEYXNoYm9hcmRPYmplY3RUeXBlO1xuKGZ1bmN0aW9uIChEYXNoYm9hcmRPYmplY3RUeXBlKSB7XG4gICAgRGFzaGJvYXJkT2JqZWN0VHlwZVtcIkJsYW5rXCJdID0gXCJibGFua1wiO1xuICAgIERhc2hib2FyZE9iamVjdFR5cGVbXCJXb3Jrc2hlZXRcIl0gPSBcIndvcmtzaGVldFwiO1xuICAgIERhc2hib2FyZE9iamVjdFR5cGVbXCJRdWlja0ZpbHRlclwiXSA9IFwicXVpY2stZmlsdGVyXCI7XG4gICAgRGFzaGJvYXJkT2JqZWN0VHlwZVtcIlBhcmFtZXRlckNvbnRyb2xcIl0gPSBcInBhcmFtZXRlci1jb250cm9sXCI7XG4gICAgRGFzaGJvYXJkT2JqZWN0VHlwZVtcIlBhZ2VGaWx0ZXJcIl0gPSBcInBhZ2UtZmlsdGVyXCI7XG4gICAgRGFzaGJvYXJkT2JqZWN0VHlwZVtcIkxlZ2VuZFwiXSA9IFwibGVnZW5kXCI7XG4gICAgRGFzaGJvYXJkT2JqZWN0VHlwZVtcIlRpdGxlXCJdID0gXCJ0aXRsZVwiO1xuICAgIERhc2hib2FyZE9iamVjdFR5cGVbXCJUZXh0XCJdID0gXCJ0ZXh0XCI7XG4gICAgRGFzaGJvYXJkT2JqZWN0VHlwZVtcIkltYWdlXCJdID0gXCJpbWFnZVwiO1xuICAgIERhc2hib2FyZE9iamVjdFR5cGVbXCJXZWJQYWdlXCJdID0gXCJ3ZWItcGFnZVwiO1xuICAgIERhc2hib2FyZE9iamVjdFR5cGVbXCJBZGRJblwiXSA9IFwiYWRkaW5cIjtcbn0pKERhc2hib2FyZE9iamVjdFR5cGUgPSBleHBvcnRzLkRhc2hib2FyZE9iamVjdFR5cGUgfHwgKGV4cG9ydHMuRGFzaGJvYXJkT2JqZWN0VHlwZSA9IHt9KSk7XG52YXIgRGF0YVR5cGU7XG4oZnVuY3Rpb24gKERhdGFUeXBlKSB7XG4gICAgRGF0YVR5cGVbXCJTdHJpbmdcIl0gPSBcInN0cmluZ1wiO1xuICAgIERhdGFUeXBlW1wiSW50XCJdID0gXCJpbnRcIjtcbiAgICBEYXRhVHlwZVtcIkZsb2F0XCJdID0gXCJmbG9hdFwiO1xuICAgIERhdGFUeXBlW1wiQm9vbFwiXSA9IFwiYm9vbFwiO1xuICAgIERhdGFUeXBlW1wiRGF0ZVwiXSA9IFwiZGF0ZVwiO1xuICAgIERhdGFUeXBlW1wiRGF0ZVRpbWVcIl0gPSBcImRhdGUtdGltZVwiO1xuICAgIERhdGFUeXBlW1wiU3BhdGlhbFwiXSA9IFwic3BhdGlhbFwiO1xufSkoRGF0YVR5cGUgPSBleHBvcnRzLkRhdGFUeXBlIHx8IChleHBvcnRzLkRhdGFUeXBlID0ge30pKTtcbnZhciBFbmNvZGVkRGF0YVR5cGU7XG4oZnVuY3Rpb24gKEVuY29kZWREYXRhVHlwZSkge1xuICAgIEVuY29kZWREYXRhVHlwZVtcIk51bWJlclwiXSA9IFwibnVtYmVyXCI7XG4gICAgRW5jb2RlZERhdGFUeXBlW1wiU3RyaW5nXCJdID0gXCJzdHJpbmdcIjtcbiAgICBFbmNvZGVkRGF0YVR5cGVbXCJEYXRlXCJdID0gXCJkYXRlXCI7XG4gICAgRW5jb2RlZERhdGFUeXBlW1wiQm9vbGVhblwiXSA9IFwiYm9vbGVhblwiO1xufSkoRW5jb2RlZERhdGFUeXBlID0gZXhwb3J0cy5FbmNvZGVkRGF0YVR5cGUgfHwgKGV4cG9ydHMuRW5jb2RlZERhdGFUeXBlID0ge30pKTtcbnZhciBFcnJvckNvZGU7XG4oZnVuY3Rpb24gKEVycm9yQ29kZSkge1xuICAgIEVycm9yQ29kZVtcIlNlcnZlckVycm9yXCJdID0gXCJzZXJ2ZXItZXJyb3JcIjtcbiAgICBFcnJvckNvZGVbXCJJbnZhbGlkQWdncmVnYXRpb25GaWVsZE5hbWVcIl0gPSBcImludmFsaWQtYWdncmVnYXRpb24tZmllbGQtbmFtZVwiO1xuICAgIEVycm9yQ29kZVtcIkludmFsaWRGaWx0ZXJGaWVsZE5hbWVcIl0gPSBcImludmFsaWQtZmlsdGVyLWZpZWxkbmFtZVwiO1xuICAgIEVycm9yQ29kZVtcIkludmFsaWRGaWx0ZXJGaWVsZFZhbHVlXCJdID0gXCJpbnZhbGlkLWZpbHRlci1maWVsZC12YWx1ZVwiO1xufSkoRXJyb3JDb2RlID0gZXhwb3J0cy5FcnJvckNvZGUgfHwgKGV4cG9ydHMuRXJyb3JDb2RlID0ge30pKTtcbnZhciBGaWVsZEFnZ3JlZ2F0aW9uVHlwZTtcbihmdW5jdGlvbiAoRmllbGRBZ2dyZWdhdGlvblR5cGUpIHtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlN1bVwiXSA9IFwic3VtXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJBdmdcIl0gPSBcImF2Z1wiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiTWluXCJdID0gXCJtaW5cIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIk1heFwiXSA9IFwibWF4XCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJTdGRldlwiXSA9IFwic3RkZXZcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlN0ZGV2cFwiXSA9IFwic3RkZXZwXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJWYXJcIl0gPSBcInZhclwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiVmFycFwiXSA9IFwidmFycFwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiQ291bnRcIl0gPSBcImNvdW50XCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJDb3VudGRcIl0gPSBcImNvdW50ZFwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiTWVkaWFuXCJdID0gXCJtZWRpYW5cIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIkF0dHJcIl0gPSBcImF0dHJcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIk5vbmVcIl0gPSBcIm5vbmVcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlllYXJcIl0gPSBcInllYXJcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlF0clwiXSA9IFwicXRyXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJNb250aFwiXSA9IFwibW9udGhcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIkRheVwiXSA9IFwiZGF5XCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJIb3VyXCJdID0gXCJob3VyXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJNaW51dGVcIl0gPSBcIm1pbnV0ZVwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiU2Vjb25kXCJdID0gXCJzZWNvbmRcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIldlZWtcIl0gPSBcIndlZWtcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIldlZWtkYXlcIl0gPSBcIndlZWtkYXlcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIk1vbnRoWWVhclwiXSA9IFwibW9udGgteWVhclwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiTWR5XCJdID0gXCJtZHlcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIkVuZFwiXSA9IFwiZW5kXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJUcnVuY1llYXJcIl0gPSBcInRydW5jLXllYXJcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlRydW5jUXRyXCJdID0gXCJ0cnVuYy1xdHJcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlRydW5jTW9udGhcIl0gPSBcInRydW5jLW1vbnRoXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJUcnVuY1dlZWtcIl0gPSBcInRydW5jLXdlZWtcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlRydW5jRGF5XCJdID0gXCJ0cnVuYy1kYXlcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlRydW5jSG91clwiXSA9IFwidHJ1bmMtaG91clwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiVHJ1bmNNaW51dGVcIl0gPSBcInRydW5jLW1pbnV0ZVwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiVHJ1bmNTZWNvbmRcIl0gPSBcInRydW5jLXNlY29uZFwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiUXVhcnQxXCJdID0gXCJxdWFydDFcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlF1YXJ0M1wiXSA9IFwicXVhcnQzXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJTa2V3bmVzc1wiXSA9IFwic2tld25lc3NcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIkt1cnRvc2lzXCJdID0gXCJrdXJ0b3Npc1wiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiSW5PdXRcIl0gPSBcImluLW91dFwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiVXNlclwiXSA9IFwidXNlclwiO1xufSkoRmllbGRBZ2dyZWdhdGlvblR5cGUgPSBleHBvcnRzLkZpZWxkQWdncmVnYXRpb25UeXBlIHx8IChleHBvcnRzLkZpZWxkQWdncmVnYXRpb25UeXBlID0ge30pKTtcbnZhciBGaWVsZFJvbGVUeXBlO1xuKGZ1bmN0aW9uIChGaWVsZFJvbGVUeXBlKSB7XG4gICAgRmllbGRSb2xlVHlwZVtcIkRpbWVuc2lvblwiXSA9IFwiZGltZW5zaW9uXCI7XG4gICAgRmllbGRSb2xlVHlwZVtcIk1lYXN1cmVcIl0gPSBcIm1lYXN1cmVcIjtcbiAgICBGaWVsZFJvbGVUeXBlW1wiVW5rbm93blwiXSA9IFwidW5rbm93blwiO1xufSkoRmllbGRSb2xlVHlwZSA9IGV4cG9ydHMuRmllbGRSb2xlVHlwZSB8fCAoZXhwb3J0cy5GaWVsZFJvbGVUeXBlID0ge30pKTtcbi8qKlxuICogIFRoZSBkaWZmZXJlbnQgdXBkYXRlIHR5cGVzIGZvciBhcHBseWluZyBmaWx0ZXIuXG4gKi9cbnZhciBGaWx0ZXJVcGRhdGVUeXBlO1xuKGZ1bmN0aW9uIChGaWx0ZXJVcGRhdGVUeXBlKSB7XG4gICAgRmlsdGVyVXBkYXRlVHlwZVtcIkFkZFwiXSA9IFwiYWRkXCI7XG4gICAgRmlsdGVyVXBkYXRlVHlwZVtcIkFsbFwiXSA9IFwiYWxsXCI7XG4gICAgRmlsdGVyVXBkYXRlVHlwZVtcIlJlcGxhY2VcIl0gPSBcInJlcGxhY2VcIjtcbiAgICBGaWx0ZXJVcGRhdGVUeXBlW1wiUmVtb3ZlXCJdID0gXCJyZW1vdmVcIjtcbn0pKEZpbHRlclVwZGF0ZVR5cGUgPSBleHBvcnRzLkZpbHRlclVwZGF0ZVR5cGUgfHwgKGV4cG9ydHMuRmlsdGVyVXBkYXRlVHlwZSA9IHt9KSk7XG52YXIgU2hlZXRUeXBlO1xuKGZ1bmN0aW9uIChTaGVldFR5cGUpIHtcbiAgICBTaGVldFR5cGVbXCJEYXNoYm9hcmRcIl0gPSBcImRhc2hib2FyZFwiO1xuICAgIFNoZWV0VHlwZVtcIlN0b3J5XCJdID0gXCJzdG9yeVwiO1xuICAgIFNoZWV0VHlwZVtcIldvcmtzaGVldFwiXSA9IFwid29ya3NoZWV0XCI7XG4gICAgU2hlZXRUeXBlW1wiQWRkaW5cIl0gPSBcImFkZGluXCI7XG59KShTaGVldFR5cGUgPSBleHBvcnRzLlNoZWV0VHlwZSB8fCAoZXhwb3J0cy5TaGVldFR5cGUgPSB7fSkpO1xudmFyIERvbWFpblJlc3RyaWN0aW9uVHlwZTtcbihmdW5jdGlvbiAoRG9tYWluUmVzdHJpY3Rpb25UeXBlKSB7XG4gICAgRG9tYWluUmVzdHJpY3Rpb25UeXBlW1wiQWxsXCJdID0gXCJhbGxcIjtcbiAgICBEb21haW5SZXN0cmljdGlvblR5cGVbXCJMaXN0XCJdID0gXCJsaXN0XCI7XG4gICAgRG9tYWluUmVzdHJpY3Rpb25UeXBlW1wiUmFuZ2VcIl0gPSBcInJhbmdlXCI7XG59KShEb21haW5SZXN0cmljdGlvblR5cGUgPSBleHBvcnRzLkRvbWFpblJlc3RyaWN0aW9uVHlwZSB8fCAoZXhwb3J0cy5Eb21haW5SZXN0cmljdGlvblR5cGUgPSB7fSkpO1xudmFyIERhdGVTdGVwUGVyaW9kO1xuKGZ1bmN0aW9uIChEYXRlU3RlcFBlcmlvZCkge1xuICAgIERhdGVTdGVwUGVyaW9kW1wiWWVhcnNcIl0gPSBcInllYXJzXCI7XG4gICAgRGF0ZVN0ZXBQZXJpb2RbXCJRdWFydGVyc1wiXSA9IFwicXVhcnRlcnNcIjtcbiAgICBEYXRlU3RlcFBlcmlvZFtcIk1vbnRoc1wiXSA9IFwibW9udGhzXCI7XG4gICAgRGF0ZVN0ZXBQZXJpb2RbXCJXZWVrc1wiXSA9IFwid2Vla3NcIjtcbiAgICBEYXRlU3RlcFBlcmlvZFtcIkRheXNcIl0gPSBcImRheXNcIjtcbiAgICBEYXRlU3RlcFBlcmlvZFtcIkhvdXJzXCJdID0gXCJob3Vyc1wiO1xuICAgIERhdGVTdGVwUGVyaW9kW1wiTWludXRlc1wiXSA9IFwibWludXRlc1wiO1xuICAgIERhdGVTdGVwUGVyaW9kW1wiU2Vjb25kc1wiXSA9IFwic2Vjb25kc1wiO1xufSkoRGF0ZVN0ZXBQZXJpb2QgPSBleHBvcnRzLkRhdGVTdGVwUGVyaW9kIHx8IChleHBvcnRzLkRhdGVTdGVwUGVyaW9kID0ge30pKTtcbi8qKlxuICogVGhlIG9wdGlvbiBmb3Igc3BlY2lmeWluZyB3aGljaCB2YWx1ZXMgdG8gaW5jbHVkZSBmb3IgZmlsdGVyaW5nLlxuICovXG52YXIgRmlsdGVyTnVsbE9wdGlvbjtcbihmdW5jdGlvbiAoRmlsdGVyTnVsbE9wdGlvbikge1xuICAgIEZpbHRlck51bGxPcHRpb25bXCJOdWxsVmFsdWVzXCJdID0gXCJudWxsdmFsdWVzXCI7XG4gICAgRmlsdGVyTnVsbE9wdGlvbltcIk5vbk51bGxWYWx1ZXNcIl0gPSBcIm5vbm51bGx2YWx1ZXNcIjtcbiAgICBGaWx0ZXJOdWxsT3B0aW9uW1wiQWxsVmFsdWVzXCJdID0gXCJhbGx2YWx1ZXNcIjtcbn0pKEZpbHRlck51bGxPcHRpb24gPSBleHBvcnRzLkZpbHRlck51bGxPcHRpb24gfHwgKGV4cG9ydHMuRmlsdGVyTnVsbE9wdGlvbiA9IHt9KSk7XG4vKipcbiAqIFRoZSB0eXBlIG9mIGZpbHRlciBkb21haW5cbiAqL1xudmFyIEZpbHRlckRvbWFpblR5cGU7XG4oZnVuY3Rpb24gKEZpbHRlckRvbWFpblR5cGUpIHtcbiAgICBGaWx0ZXJEb21haW5UeXBlW1wiUmVsZXZhbnRcIl0gPSBcInJlbGV2YW50XCI7XG4gICAgRmlsdGVyRG9tYWluVHlwZVtcIkRhdGFiYXNlXCJdID0gXCJkYXRhYmFzZVwiO1xufSkoRmlsdGVyRG9tYWluVHlwZSA9IGV4cG9ydHMuRmlsdGVyRG9tYWluVHlwZSB8fCAoZXhwb3J0cy5GaWx0ZXJEb21haW5UeXBlID0ge30pKTtcbi8qKlxuICogSW50ZXJuYWwgZW51bSBmb3Igc3BlY2lmeWluZyB0aGUgc2VsZWN0aW9uIHR5cGUgZm9yIHNlbGVjdCBtYXJrcyBhcGkuXG4gKi9cbnZhciBTZWxlY3Rpb25VcGRhdGVUeXBlO1xuKGZ1bmN0aW9uIChTZWxlY3Rpb25VcGRhdGVUeXBlKSB7XG4gICAgU2VsZWN0aW9uVXBkYXRlVHlwZVtcIlJlcGxhY2VcIl0gPSBcInNlbGVjdC1yZXBsYWNlXCI7XG4gICAgU2VsZWN0aW9uVXBkYXRlVHlwZVtcIkFkZFwiXSA9IFwic2VsZWN0LWFkZFwiO1xuICAgIFNlbGVjdGlvblVwZGF0ZVR5cGVbXCJSZW1vdmVcIl0gPSBcInNlbGVjdC1yZW1vdmVcIjtcbn0pKFNlbGVjdGlvblVwZGF0ZVR5cGUgPSBleHBvcnRzLlNlbGVjdGlvblVwZGF0ZVR5cGUgfHwgKGV4cG9ydHMuU2VsZWN0aW9uVXBkYXRlVHlwZSA9IHt9KSk7XG4vKipcbiAqIEludGVybmFsIGVudW0gZm9yIHNwZWNpZnlpbmcgdGhlIGluY2x1ZGVkIHZhbHVlcyB0eXBlIGZvciByYW5nZSBzZWxlY3Rpb24uXG4gKi9cbnZhciBRdWFudGl0YXRpdmVJbmNsdWRlZFZhbHVlcztcbihmdW5jdGlvbiAoUXVhbnRpdGF0aXZlSW5jbHVkZWRWYWx1ZXMpIHtcbiAgICBRdWFudGl0YXRpdmVJbmNsdWRlZFZhbHVlc1tcIkluY2x1ZGVOdWxsXCJdID0gXCJpbmNsdWRlLW51bGxcIjtcbiAgICBRdWFudGl0YXRpdmVJbmNsdWRlZFZhbHVlc1tcIkluY2x1ZGVOb25OdWxsXCJdID0gXCJpbmNsdWRlLW5vbi1udWxsXCI7XG4gICAgUXVhbnRpdGF0aXZlSW5jbHVkZWRWYWx1ZXNbXCJJbmNsdWRlQWxsXCJdID0gXCJpbmNsdWRlLWFsbFwiO1xufSkoUXVhbnRpdGF0aXZlSW5jbHVkZWRWYWx1ZXMgPSBleHBvcnRzLlF1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzIHx8IChleHBvcnRzLlF1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzID0ge30pKTtcbi8qKlxuICogVHlwZSBvZiBtYXJrIGZvciBhIGdpdmVuIG1hcmtzIGNhcmQgaW4gYSB2aXouXG4gKi9cbnZhciBNYXJrVHlwZTtcbihmdW5jdGlvbiAoTWFya1R5cGUpIHtcbiAgICBNYXJrVHlwZVtcIkJhclwiXSA9IFwiYmFyXCI7XG4gICAgTWFya1R5cGVbXCJMaW5lXCJdID0gXCJsaW5lXCI7XG4gICAgTWFya1R5cGVbXCJBcmVhXCJdID0gXCJhcmVhXCI7XG4gICAgTWFya1R5cGVbXCJTcXVhcmVcIl0gPSBcInNxdWFyZVwiO1xuICAgIE1hcmtUeXBlW1wiQ2lyY2xlXCJdID0gXCJjaXJjbGVcIjtcbiAgICBNYXJrVHlwZVtcIlNoYXBlXCJdID0gXCJzaGFwZVwiO1xuICAgIE1hcmtUeXBlW1wiVGV4dFwiXSA9IFwidGV4dFwiO1xuICAgIE1hcmtUeXBlW1wiTWFwXCJdID0gXCJtYXBcIjtcbiAgICBNYXJrVHlwZVtcIlBpZVwiXSA9IFwicGllXCI7XG4gICAgTWFya1R5cGVbXCJHYW50dEJhclwiXSA9IFwiZ2FudHQtYmFyXCI7XG4gICAgTWFya1R5cGVbXCJQb2x5Z29uXCJdID0gXCJwb2x5Z29uXCI7XG59KShNYXJrVHlwZSA9IGV4cG9ydHMuTWFya1R5cGUgfHwgKGV4cG9ydHMuTWFya1R5cGUgPSB7fSkpO1xuLyoqXG4gKiBJbnRlcm5hbCBlbnVtIGZvciBzcGVjaWZ5aW5nIHRoZSB0eXBlIG9mIGZpbHRlclxuICovXG52YXIgRmlsdGVyVHlwZTtcbihmdW5jdGlvbiAoRmlsdGVyVHlwZSkge1xuICAgIEZpbHRlclR5cGVbXCJDYXRlZ29yaWNhbFwiXSA9IFwiY2F0ZWdvcmljYWxcIjtcbiAgICBGaWx0ZXJUeXBlW1wiUmFuZ2VcIl0gPSBcInJhbmdlXCI7XG4gICAgRmlsdGVyVHlwZVtcIlJlbGF0aXZlRGF0ZVwiXSA9IFwicmVsYXRpdmVEYXRlXCI7XG4gICAgRmlsdGVyVHlwZVtcIkhpZXJhcmNoaWNhbFwiXSA9IFwiaGllcmFyY2hpY2FsXCI7XG59KShGaWx0ZXJUeXBlID0gZXhwb3J0cy5GaWx0ZXJUeXBlIHx8IChleHBvcnRzLkZpbHRlclR5cGUgPSB7fSkpO1xuLyoqXG4gKiBJbnRlcm5hbCBlbnVtIGZvciBzcGVjaWZ5aW5nIHRoZSBEYXRlUmFuZ2VUeXBlIG9mIGEgcmVsYXRpdmUgZGF0ZSBmaWx0ZXJcbiAqL1xudmFyIERhdGVSYW5nZVR5cGU7XG4oZnVuY3Rpb24gKERhdGVSYW5nZVR5cGUpIHtcbiAgICAvKipcbiAgICAgKiBSZWZlcnMgdG8gdGhlIGxhc3QgZGF5LCB3ZWVrLCBtb250aCwgZXRjLiBvZiB0aGUgZGF0ZSBwZXJpb2QuXG4gICAgICovXG4gICAgRGF0ZVJhbmdlVHlwZVtcIkxhc3RcIl0gPSBcImxhc3RcIjtcbiAgICAvKipcbiAgICAgKiBSZWZlcnMgdG8gdGhlIGxhc3QgTiBkYXlzLCB3ZWVrcywgbW9udGhzLCBldGMuIG9mIHRoZSBkYXRlIHBlcmlvZC5cbiAgICAgKi9cbiAgICBEYXRlUmFuZ2VUeXBlW1wiTGFzdE5cIl0gPSBcImxhc3ROXCI7XG4gICAgLyoqXG4gICAgICogUmVmZXJzIHRvIHRoZSBuZXh0IGRheSwgd2VlaywgbW9udGgsIGV0Yy4gb2YgdGhlIGRhdGUgcGVyaW9kLlxuICAgICAqL1xuICAgIERhdGVSYW5nZVR5cGVbXCJOZXh0XCJdID0gXCJuZXh0XCI7XG4gICAgLyoqXG4gICAgICogUmVmZXJzIHRvIHRoZSBuZXh0IE4gZGF5cywgd2Vla3MsIG1vbnRocywgZXRjLiBvZiB0aGUgZGF0ZSBwZXJpb2QuXG4gICAgICovXG4gICAgRGF0ZVJhbmdlVHlwZVtcIk5leHROXCJdID0gXCJuZXh0TlwiO1xuICAgIC8qKlxuICAgICAqIFJlZmVycyB0byB0aGUgY3VycmVudCBkYXksIHdlZWssIG1vbnRoLCBldGMuIG9mIHRoZSBkYXRlIHBlcmlvZC5cbiAgICAgKi9cbiAgICBEYXRlUmFuZ2VUeXBlW1wiQ3VycmVudFwiXSA9IFwiY3VycmVudFwiO1xuICAgIC8qKlxuICAgICAqIFJlZmVycyB0byBldmVyeXRoaW5nIHVwIHRvIGFuZCBpbmNsdWRpbmcgdGhlIGN1cnJlbnQgZGF5LCB3ZWVrLCBtb250aCwgZXRjLiBvZiB0aGUgZGF0ZSBwZXJpb2QuXG4gICAgICovXG4gICAgRGF0ZVJhbmdlVHlwZVtcIlRvRGF0ZVwiXSA9IFwidG9EYXRlXCI7XG59KShEYXRlUmFuZ2VUeXBlID0gZXhwb3J0cy5EYXRlUmFuZ2VUeXBlIHx8IChleHBvcnRzLkRhdGVSYW5nZVR5cGUgPSB7fSkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RW51bXMuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9saWIvaW50ZXJmYWNlL0VudW1zLmpzXG4gKiogbW9kdWxlIGlkID0gNVxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgSW50ZXJuYWxBcGlEaXNwYXRjaGVySG9sZGVyO1xuKGZ1bmN0aW9uIChJbnRlcm5hbEFwaURpc3BhdGNoZXJIb2xkZXIpIHtcbiAgICBmdW5jdGlvbiBnZXREZXNrdG9wRGlzcGF0Y2hlclByb21pc2UoKSB7XG4gICAgICAgIHJldHVybiB3aW5kb3cuX190YWJsZWF1RGVza3RvcERpc3BhdGNoZXI7XG4gICAgfVxuICAgIEludGVybmFsQXBpRGlzcGF0Y2hlckhvbGRlci5nZXREZXNrdG9wRGlzcGF0Y2hlclByb21pc2UgPSBnZXREZXNrdG9wRGlzcGF0Y2hlclByb21pc2U7XG4gICAgZnVuY3Rpb24gaGFzRGVza3RvcEFwaURpc3BhdGNoZXJQcm9taXNlKCkge1xuICAgICAgICByZXR1cm4gISFJbnRlcm5hbEFwaURpc3BhdGNoZXJIb2xkZXIuZ2V0RGVza3RvcERpc3BhdGNoZXJQcm9taXNlKCk7XG4gICAgfVxuICAgIEludGVybmFsQXBpRGlzcGF0Y2hlckhvbGRlci5oYXNEZXNrdG9wQXBpRGlzcGF0Y2hlclByb21pc2UgPSBoYXNEZXNrdG9wQXBpRGlzcGF0Y2hlclByb21pc2U7XG4gICAgZnVuY3Rpb24gc2V0RGVza3RvcERpc3BhdGNoZXJQcm9taXNlKGRpc3BhdGNoZXIpIHtcbiAgICAgICAgd2luZG93Ll9fdGFibGVhdURlc2t0b3BEaXNwYXRjaGVyID0gZGlzcGF0Y2hlcjtcbiAgICB9XG4gICAgSW50ZXJuYWxBcGlEaXNwYXRjaGVySG9sZGVyLnNldERlc2t0b3BEaXNwYXRjaGVyUHJvbWlzZSA9IHNldERlc2t0b3BEaXNwYXRjaGVyUHJvbWlzZTtcbn0pKEludGVybmFsQXBpRGlzcGF0Y2hlckhvbGRlciA9IGV4cG9ydHMuSW50ZXJuYWxBcGlEaXNwYXRjaGVySG9sZGVyIHx8IChleHBvcnRzLkludGVybmFsQXBpRGlzcGF0Y2hlckhvbGRlciA9IHt9KSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1JbnRlcm5hbEFwaURpc3BhdGNoZXIuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9saWIvaW50ZXJmYWNlL0ludGVybmFsQXBpRGlzcGF0Y2hlci5qc1xuICoqIG1vZHVsZSBpZCA9IDZcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIE5vdGlmaWNhdGlvbklkO1xuKGZ1bmN0aW9uIChOb3RpZmljYXRpb25JZCkge1xuICAgIE5vdGlmaWNhdGlvbklkW1wiU2VsZWN0ZWRNYXJrc0NoYW5nZWRcIl0gPSBcInNlbGVjdGVkLW1hcmtzLWNoYW5nZWRcIjtcbiAgICBOb3RpZmljYXRpb25JZFtcIlBhcmFtZXRlckNoYW5nZWRcIl0gPSBcInBhcmFtZXRlci1jaGFuZ2VkXCI7XG4gICAgTm90aWZpY2F0aW9uSWRbXCJGaWx0ZXJDaGFuZ2VkXCJdID0gXCJmaWx0ZXItY2hhbmdlZFwiO1xufSkoTm90aWZpY2F0aW9uSWQgPSBleHBvcnRzLk5vdGlmaWNhdGlvbklkIHx8IChleHBvcnRzLk5vdGlmaWNhdGlvbklkID0ge30pKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU5vdGlmaWNhdGlvbnMuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9saWIvaW50ZXJmYWNlL05vdGlmaWNhdGlvbnMuanNcbiAqKiBtb2R1bGUgaWQgPSA3XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBQYXJhbWV0ZXJJZDtcbihmdW5jdGlvbiAoUGFyYW1ldGVySWQpIHtcbiAgICBQYXJhbWV0ZXJJZFtcIkFkZEluTG9jYXRvclwiXSA9IFwiYWRkLWluLWxvY2F0b3JcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIkFkZEluQm9vdHN0cmFwSW5mb1wiXSA9IFwiYWRkLWluLWJvb3RzdHJhcC1pbmZvXCI7XG4gICAgUGFyYW1ldGVySWRbXCJBZGRJblNldHRpbmdzSW5mb1wiXSA9IFwiYWRkLWluLXNldHRpbmdzLWluZm9cIjtcbiAgICBQYXJhbWV0ZXJJZFtcIlZpc3VhbElkXCJdID0gXCJ2aXN1YWwtaWRcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIlNoZWV0UGF0aFwiXSA9IFwic2hlZXQtcGF0aFwiO1xuICAgIFBhcmFtZXRlcklkW1wiSWdub3JlQWxpYXNlc1wiXSA9IFwiaWdub3JlLWFsaWFzZXNcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIklnbm9yZVNlbGVjdGlvblwiXSA9IFwiaWdub3JlLXNlbGVjdGlvblwiO1xuICAgIFBhcmFtZXRlcklkW1wiSW5jbHVkZUFsbENvbHVtbnNcIl0gPSBcImluY2x1ZGUtYWxsLWNvbHVtbnNcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIk1heFJvd3NcIl0gPSBcIm1heC1yb3dzXCI7XG4gICAgUGFyYW1ldGVySWRbXCJVbmRlcmx5aW5nRGF0YVRhYmxlXCJdID0gXCJ1bmRlcmx5aW5nLWRhdGEtdGFibGVcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIlVuZGVybHlpbmdTdW1tYXJ5RGF0YVRhYmxlXCJdID0gXCJ1bmRlcmx5aW5nLXN1bW1hcnktZGF0YS10YWJsZVwiO1xuICAgIFBhcmFtZXRlcklkW1wiRGF0YVNvdXJjZURhdGFUYWJsZVwiXSA9IFwiZGF0YS1zb3VyY2UtZGF0YS10YWJsZVwiO1xuICAgIFBhcmFtZXRlcklkW1wiU2V0dGluZ3NWYWx1ZXNcIl0gPSBcInNldHRpbmdzLXZhbHVlc1wiO1xuICAgIFBhcmFtZXRlcklkW1wiU2VsZWN0ZWREYXRhXCJdID0gXCJzZWxlY3RlZC1kYXRhXCI7XG4gICAgUGFyYW1ldGVySWRbXCJIaWdobGlnaHRlZERhdGFcIl0gPSBcImhpZ2hsaWdodGVkLWRhdGFcIjtcbiAgICAvLyBGaWx0ZXIgUGFyYW1zXG4gICAgUGFyYW1ldGVySWRbXCJGaWVsZE5hbWVcIl0gPSBcImZpZWxkLW5hbWVcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIkZpbHRlclZhbHVlc1wiXSA9IFwiZmlsdGVyLXZhbHVlc1wiO1xuICAgIFBhcmFtZXRlcklkW1wiRmlsdGVyVXBkYXRlVHlwZVwiXSA9IFwiZmlsdGVyLXVwZGF0ZS10eXBlXCI7XG4gICAgUGFyYW1ldGVySWRbXCJJc0V4Y2x1ZGVNb2RlXCJdID0gXCJpcy1leGNsdWRlXCI7XG4gICAgUGFyYW1ldGVySWRbXCJGaWx0ZXJSYW5nZU1pblwiXSA9IFwiZmlsdGVyLXJhbmdlLW1pblwiO1xuICAgIFBhcmFtZXRlcklkW1wiRmlsdGVyUmFuZ2VNYXhcIl0gPSBcImZpbHRlci1yYW5nZS1tYXhcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIkZpbHRlclJhbmdlTnVsbE9wdGlvblwiXSA9IFwiZmlsdGVyLXJhbmdlLW51bGwtb3B0aW9uXCI7XG4gICAgUGFyYW1ldGVySWRbXCJXb3Jrc2hlZXRGaWx0ZXJzXCJdID0gXCJ3b3Jrc2hlZXQtZmlsdGVyc1wiO1xuICAgIFBhcmFtZXRlcklkW1wiRmllbGRJZFwiXSA9IFwiZmllbGQtaWRcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIkRvbWFpblR5cGVcIl0gPSBcImRvbWFpbi10eXBlXCI7XG4gICAgUGFyYW1ldGVySWRbXCJDYXRlZ29yaWNhbERvbWFpblwiXSA9IFwiY2F0ZWdvcmljYWwtZG9tYWluXCI7XG4gICAgUGFyYW1ldGVySWRbXCJRdWFudGl0YXRpdmVEb21haW5cIl0gPSBcInF1YW50aXRhdGl2ZS1kbWFpblwiO1xuICAgIFBhcmFtZXRlcklkW1wiV29ya3NoZWV0TmFtZVwiXSA9IFwid29ya3NoZWV0LW5hbWVcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIkRhc2hib2FyZE5hbWVcIl0gPSBcImRhc2hib2FyZFwiO1xuICAgIFBhcmFtZXRlcklkW1wiUGFyYW1ldGVySW5mb1wiXSA9IFwicGFyYW1ldGVyLWluZm9cIjtcbiAgICBQYXJhbWV0ZXJJZFtcIlBhcmFtZXRlckluZm9zXCJdID0gXCJwYXJhbWV0ZXItaW5mb3NcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIlBhcmFtZXRlckNhcHRpb25cIl0gPSBcInBhcmVtZXRlci1jYXB0aW9uXCI7XG4gICAgUGFyYW1ldGVySWRbXCJQYXJhbWV0ZXJGaWVsZE5hbWVcIl0gPSBcInBhcmFtZXRlci1maWVsZC1uYW1lXCI7XG4gICAgUGFyYW1ldGVySWRbXCJQYXJhbWV0ZXJWYWx1ZVwiXSA9IFwicGFyYW1ldGVyLXZhbHVlXCI7XG4gICAgUGFyYW1ldGVySWRbXCJTZWxlY3Rpb25cIl0gPSBcInNlbGVjdGlvblwiO1xuICAgIFBhcmFtZXRlcklkW1wiU2VsZWN0aW9uVXBkYXRlVHlwZVwiXSA9IFwic2VsZWN0aW9uVXBkYXRlVHlwZVwiO1xuICAgIFBhcmFtZXRlcklkW1wiSGllclZhbFNlbGVjdGlvbk1vZGVsc1wiXSA9IFwiaGllcmFyY2hpY2FsVmFsdWVTZWxlY3Rpb25Nb2RlbHNcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIlF1YW50UmFuZ2VTZWxlY3Rpb25Nb2RlbHNcIl0gPSBcInF1YW50YXRpdmVSYW5nZVNlbGVjdGlvbk1vZGVsc1wiO1xuICAgIFBhcmFtZXRlcklkW1wiRGltVmFsU2VsZWN0aW9uTW9kZWxzXCJdID0gXCJkaW1lbnNpb25WYWx1ZVNlbGVjdGlvbk1vZGVsc1wiO1xuICAgIFBhcmFtZXRlcklkW1wiRGF0YVNvdXJjZUlkXCJdID0gXCJkYXRhLXNvdXJjZS1pZFwiO1xuICAgIFBhcmFtZXRlcklkW1wiRGF0YVNjaGVtYVwiXSA9IFwiZGF0YS1zY2hlbWFcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFTb3VyY2VOYW1lXCJdID0gXCJkYXRhLXNvdXJjZS1uYW1lXCI7XG4gICAgUGFyYW1ldGVySWRbXCJDb2x1bW5zVG9JbmNsdWRlXCJdID0gXCJjb2x1bW5zLXRvLWluY2x1ZGVcIjtcbn0pKFBhcmFtZXRlcklkID0gZXhwb3J0cy5QYXJhbWV0ZXJJZCB8fCAoZXhwb3J0cy5QYXJhbWV0ZXJJZCA9IHt9KSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1QYXJhbWV0ZXJzLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogRDovZGV2L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3QvbGliL2ludGVyZmFjZS9QYXJhbWV0ZXJzLmpzXG4gKiogbW9kdWxlIGlkID0gOFxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4vLyBEZWNsYXJlIHRoaXMga2V5IHR5cGUgYW5kIGV4cG9ydCB0aGUgTm90aWZpY2F0aW9uSWQgdG8gbWFrZSB0aGlzIGJlaGF2ZSBsaWtlIGEgc3RyaW5nIGVudW1cbnZhciBWZXJiSWQ7XG4oZnVuY3Rpb24gKFZlcmJJZCkge1xuICAgIFZlcmJJZFtcIkFwcGx5Q2F0ZWdvcmljYWxGaWx0ZXJcIl0gPSBcImNhdGVnb3JpY2FsLWZpbHRlclwiO1xuICAgIFZlcmJJZFtcIkFwcGx5UmFuZ2VGaWx0ZXJcIl0gPSBcInJhbmdlLWZpbHRlclwiO1xuICAgIFZlcmJJZFtcIkNsZWFyRmlsdGVyXCJdID0gXCJjbGVhci1maWx0ZXJcIjtcbiAgICBWZXJiSWRbXCJJbml0aWFsaXplQWRkSW5cIl0gPSBcImluaXRpYWxpemUtYWRkLWluXCI7XG4gICAgVmVyYklkW1wiR2V0RGF0YVN1bW1hcnlEYXRhXCJdID0gXCJnZXQtc3VtbWFyeS1kYXRhXCI7XG4gICAgVmVyYklkW1wiR2V0VW5kZXJseWluZ0RhdGFcIl0gPSBcImdldC11bmRlcmx5aW5nLWRhdGFcIjtcbiAgICBWZXJiSWRbXCJHZXREYXRhU291cmNlRGF0YVwiXSA9IFwiZ2V0LWRhdGFzb3VyY2UtZGF0YVwiO1xuICAgIFZlcmJJZFtcIlNhdmVBZGRJblNldHRpbmdzXCJdID0gXCJzYXZlLWFkZC1pbi1zZXR0aW5nc1wiO1xuICAgIFZlcmJJZFtcIkdldFNlbGVjdGVkTWFya3NcIl0gPSBcImdldC1zZWxlY3RlZC1tYXJrc1wiO1xuICAgIFZlcmJJZFtcIkdldEhpZ2hsaWdodGVkTWFya3NcIl0gPSBcImdldC1oaWdobGlnaHRlZC1tYXJrc1wiO1xuICAgIFZlcmJJZFtcIkdldFBhcmFtZXRlcnNGb3JTaGVldFwiXSA9IFwiZ2V0LXBhcmFtZXRlcnMtZm9yLXNoZWV0XCI7XG4gICAgVmVyYklkW1wiRmluZFBhcmFtZXRlclwiXSA9IFwiZmluZC1wYXJhbWV0ZXJcIjtcbiAgICBWZXJiSWRbXCJDaGFuZ2VQYXJhbWV0ZXJWYWx1ZVwiXSA9IFwiY2hhbmdlLXBhcmFtZXRlci12YWx1ZVwiO1xuICAgIFZlcmJJZFtcIkNsZWFyU2VsZWN0ZWRNYXJrc1wiXSA9IFwiY2xlYXItc2VsZWN0ZWQtbWFya3NcIjtcbiAgICBWZXJiSWRbXCJTZWxlY3RCeVZhbHVlXCJdID0gXCJzZWxlY3QtYnktdmFsdWVcIjtcbiAgICBWZXJiSWRbXCJHZXREYXRhU291cmNlc1wiXSA9IFwiZ2V0LWRhdGEtc291cmNlc1wiO1xuICAgIFZlcmJJZFtcIlJlZnJlc2hEYXRhU291cmNlXCJdID0gXCJyZWZyZXNoLWRhdGEtc291cmNlXCI7XG4gICAgVmVyYklkW1wiR2V0RmlsdGVyc1wiXSA9IFwiZ2V0LWZpbHRlcnNcIjtcbiAgICBWZXJiSWRbXCJHZXRDYXRlZ29yaWNhbERvbWFpblwiXSA9IFwiZ2V0LWNhdGVnb3JpY2FsLWRvbWFpblwiO1xuICAgIFZlcmJJZFtcIkdldFJhbmdlRG9tYWluXCJdID0gXCJnZXQtcmFuZ2UtZG9tYWluXCI7XG59KShWZXJiSWQgPSBleHBvcnRzLlZlcmJJZCB8fCAoZXhwb3J0cy5WZXJiSWQgPSB7fSkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VmVyYnMuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9saWIvaW50ZXJmYWNlL1ZlcmJzLmpzXG4gKiogbW9kdWxlIGlkID0gOVxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy9cbi8vIFRoaXMgZmlsZSBpcyB0aGUgY29weXJpZ2h0ZWQgcHJvcGVydHkgb2YgVGFibGVhdSBTb2Z0d2FyZSBhbmQgaXMgcHJvdGVjdGVkXG4vLyBieSByZWdpc3RlcmVkIHBhdGVudHMgYW5kIG90aGVyIGFwcGxpY2FibGUgVS5TLiBhbmQgaW50ZXJuYXRpb25hbCBsYXdzIGFuZFxuLy8gcmVndWxhdGlvbnMuXG4vL1xuLy8gVW5saWNlbnNlZCB1c2Ugb2YgdGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSBpcyBwcm9oaWJpdGVkLiBQbGVhc2UgcmVmZXIgdG9cbi8vIHRoZSBOT1RJQ0VTLnR4dCBmaWxlIGZvciBmdXJ0aGVyIGRldGFpbHMuXG4vL1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFdBUk5JTkc6IENvbXB1dGVyIGdlbmVyYXRlZCBmaWxlLiAgRG8gbm90IGhhbmQgbW9kaWZ5LlxuLy8gREVQRU5EUyBPTjogWycuLi90eXBlc2NyaXB0L2pzLWFwaS9hcGktY29yZS9ub2RlX21vZHVsZXMvQHRhYmxlYXUvcHJlc2xheWVyLWNvZGVnZW4tdHlwZXNjcmlwdC90ZW1wbGF0ZXMvcGFyYW1zLXRzLnRlbXBsYXRlJywgdScuLi90eXBlc2NyaXB0L2pzLWFwaS9hcGktY29yZS90ZW1wLXByZXMtbGF5ZXIvYWxsLXBhcmFtcy5kYXRhJ11cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBQYXJhbWV0ZXJJZDtcbihmdW5jdGlvbiAoUGFyYW1ldGVySWQpIHtcbiAgICAvLyBEUElfSW50ZWdlclJMRSwgaGF2aW5nIHR5cGUgaW50W11cbiAgICBQYXJhbWV0ZXJJZFtcIkludGVnZXJSTEVcIl0gPSBcImludFJsZVwiO1xuICAgIC8vIERQSV9VbnNpZ25lZEludGVnZXJSTEUsIGhhdmluZyB0eXBlIHVpbnRbXVxuICAgIFBhcmFtZXRlcklkW1wiVW5zaWduZWRJbnRlZ2VyUkxFXCJdID0gXCJ1aW50UmxlXCI7XG4gICAgLy8gRFBJX0Zsb2F0UkxFLCBoYXZpbmcgdHlwZSBmbG9hdFtdXG4gICAgUGFyYW1ldGVySWRbXCJGbG9hdFJMRVwiXSA9IFwiZmxvYXRSbGVcIjtcbiAgICAvLyBEUElfUGFyYW1ldGVySUQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiUGFyYW1ldGVySURcIl0gPSBcInBhcmFtVHlwZVwiO1xuICAgIC8vIERQSV9BbGxvd0N1c3RvbURhdGFiYXNlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJBbGxvd0N1c3RvbURhdGFiYXNlXCJdID0gXCJhbGxvd0N1c3RvbURhdGFiYXNlXCI7XG4gICAgLy8gRFBJX0FsbG93Q3VzdG9tU2NoZW1hLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJBbGxvd0N1c3RvbVNjaGVtYVwiXSA9IFwiYWxsb3dDdXN0b21TY2hlbWFcIjtcbiAgICAvLyBEUElfQWxsb3dDdXN0b21TUUwsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkFsbG93Q3VzdG9tU1FMXCJdID0gXCJhbGxvd0N1c3RvbVNxbFwiO1xuICAgIC8vIERQSV9BbGxvd0N1c3RvbVNRTFdpdGhvdXRTY2hlbWEsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkFsbG93Q3VzdG9tU1FMV2l0aG91dFNjaGVtYVwiXSA9IFwiYWxsb3dDdXN0b21TcWxXaXRob3V0U2NoZW1hXCI7XG4gICAgLy8gRFBJX0FsbG93UHJldmlld0RhdGEsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkFsbG93UHJldmlld0RhdGFcIl0gPSBcImFsbG93UHJldmlld0RhdGFcIjtcbiAgICAvLyBEUElfQWxsb3dTdG9yZWRQcm9jLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJBbGxvd1N0b3JlZFByb2NcIl0gPSBcImFsbG93U3RvcmVkUHJvY2VkdXJlXCI7XG4gICAgLy8gRFBJX0FsbG93VW5pb24sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkFsbG93VW5pb25cIl0gPSBcImFsbG93VW5pb25cIjtcbiAgICAvLyBEUElfQXJlVmFyaWFibGVzVmlzaWJsZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQXJlVmFyaWFibGVzVmlzaWJsZVwiXSA9IFwiYXJlVmFyaWFibGVzVmlzaWJsZVwiO1xuICAgIC8vIERQSV9BdHRyTGVnYWN5Q29ubmVjdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQXR0ckxlZ2FjeUNvbm5lY3Rpb25cIl0gPSBcIndpZGdldEF0dHJMZWdhY3lcIjtcbiAgICAvLyBEUElfQXR0clJlYWRVbmNvbW1pdHRlZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQXR0clJlYWRVbmNvbW1pdHRlZFwiXSA9IFwid2lkZ2V0QXR0clJlYWRVbmNvbW1pdHRlZERhdGFcIjtcbiAgICAvLyBEUElfQXR0clJlcXVpcmVTU0wsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkF0dHJSZXF1aXJlU1NMXCJdID0gXCJ3aWRnZXRBdHRyUmVxdWlyZVNzbFwiO1xuICAgIC8vIERQSV9BdHRyUmVxdWlyZUVuY3J5cHRpb24sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkF0dHJSZXF1aXJlRW5jcnlwdGlvblwiXSA9IFwid2lkZ2V0QXR0clJlcXVpcmVFbmNyeXB0aW9uXCI7XG4gICAgLy8gRFBJX0Jvb2wsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkJvb2xcIl0gPSBcImJvb2xcIjtcbiAgICAvLyBEUElfQ2FuUGFydGl0aW9uLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJDYW5QYXJ0aXRpb25cIl0gPSBcImNhblBhcnRpdGlvblwiO1xuICAgIC8vIERQSV9DYW5SZWNvbW1lbmREYXRhU291cmNlcywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQ2FuUmVjb21tZW5kRGF0YVNvdXJjZXNcIl0gPSBcImNhblJlY29tbWVuZERhdGFzb3VyY2VzXCI7XG4gICAgLy8gRFBJX0NhblJlY29tbWVuZFRhYmxlcywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQ2FuUmVjb21tZW5kVGFibGVzXCJdID0gXCJjYW5SZWNvbW1lbmRUYWJsZXNcIjtcbiAgICAvLyBEUElfQ2hlY2tQZXJtaXNzaW9ucywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQ2hlY2tQZXJtaXNzaW9uc1wiXSA9IFwiY2hlY2tQZXJtaXNzaW9uc1wiO1xuICAgIC8vIERQSV9EYXRhYmFzZU5hbWVPcHRpb25hbCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRGF0YWJhc2VOYW1lT3B0aW9uYWxcIl0gPSBcImRhdGFiYXNlTmFtZU9wdGlvbmFsXCI7XG4gICAgLy8gRFBJX0RhdGFiYXNlV0hPcHRpb25hbCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRGF0YWJhc2VXSE9wdGlvbmFsXCJdID0gXCJkYXRhYmFzZVdhcmVob3VzZU9wdGlvbmFsXCI7XG4gICAgLy8gRFBJX0RvVmFsaWRhdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRG9WYWxpZGF0aW9uXCJdID0gXCJkb1ZhbGlkYXRpb25cIjtcbiAgICAvLyBEUElfRG9uZUxvYWRpbmdBbGxTaGVldHMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkRvbmVMb2FkaW5nQWxsU2hlZXRzXCJdID0gXCJnb29nbGVTaGVldERvbmVMb2FkaW5nXCI7XG4gICAgLy8gRFBJX0dBQmFzaWNJdGVtc0VuYWJsZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkdBQmFzaWNJdGVtc0VuYWJsZWRcIl0gPSBcImdhQmFzaWNJdGVtc0VuYWJsZWRcIjtcbiAgICAvLyBEUElfR0FEaW1lbnNpb25NZWFzdXJlc0VuYWJsZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkdBRGltZW5zaW9uTWVhc3VyZXNFbmFibGVkXCJdID0gXCJnYURpbWVuc2lvbnNNZWFzdXJlc0VuYWJsZWRcIjtcbiAgICAvLyBEUElfR0FGaWx0ZXJzRW5hYmxlZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiR0FGaWx0ZXJzRW5hYmxlZFwiXSA9IFwiZ2FGaWx0ZXJzRW5hYmxlZFwiO1xuICAgIC8vIERQSV9IYXNEYXRhYmFzZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSGFzRGF0YWJhc2VcIl0gPSBcImhhc0RhdGFiYXNlXCI7XG4gICAgLy8gRFBJX0hhc0RhdGFMb3NzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJIYXNEYXRhTG9zc1wiXSA9IFwiaGFzRGF0YUxvc3NcIjtcbiAgICAvLyBEUElfSGFzRmFzdE1ldGFkYXRhLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJIYXNGYXN0TWV0YWRhdGFcIl0gPSBcImhhc0Zhc3RNZXRhZGF0YVwiO1xuICAgIC8vIERQSV9IYXNOZXdseURpc2NvdmVyZWRTY2hlbWEsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkhhc05ld2x5RGlzY292ZXJlZFNjaGVtYVwiXSA9IFwiaGFzTmV3bHlEaXNjb3ZlcmVkU2NoZW1hXCI7XG4gICAgLy8gRFBJX0hhc1Blcm1pc3Npb25zLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJIYXNQZXJtaXNzaW9uc1wiXSA9IFwiaGFzUGVybWlzc2lvbnNcIjtcbiAgICAvLyBEUElfSGFzU2NoZW1hLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJIYXNTY2hlbWFcIl0gPSBcImhhc1NjaGVtYVwiO1xuICAgIC8vIERQSV9IYXNTY2hlbWFDb3VudCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSGFzU2NoZW1hQ291bnRcIl0gPSBcImhhc1NjaGVtYUNvdW50XCI7XG4gICAgLy8gRFBJX0hhc1RhYmxlcywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSGFzVGFibGVzXCJdID0gXCJoYXNUYWJsZXNcIjtcbiAgICAvLyBEUElfSGFzVW5jb21taXR0ZWRDaGFuZ2VzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJIYXNVbmNvbW1pdHRlZENoYW5nZXNcIl0gPSBcImhhc1VuY29tbWl0dGVkQ2hhbmdlc1wiO1xuICAgIC8vIERQSV9IYXNXYXJlaG91c2UsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkhhc1dhcmVob3VzZVwiXSA9IFwiaGFzV2FyZWhvdXNlXCI7XG4gICAgLy8gRFBJX0hhc1dhcm5pbmcsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkhhc1dhcm5pbmdcIl0gPSBcImhhc1dhcm5pbmdcIjtcbiAgICAvLyBEUElfSXNDYWxjdWxhdGVkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0NhbGN1bGF0ZWRcIl0gPSBcImlzQ2FsY3VsYXRlZFwiO1xuICAgIC8vIERQSV9Jc0Nvbm5lY3RlZFRvRGF0YVNvdXJjZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNDb25uZWN0ZWRUb0RhdGFTb3VyY2VcIl0gPSBcImlzQ29ubmVjdGVkRGF0YXNvdXJjZVwiO1xuICAgIC8vIERQSV9Jc0Rpc2FibGVkRGF0YUNvbm5lY3Rpb24sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzRGlzYWJsZWREYXRhQ29ubmVjdGlvblwiXSA9IFwiaXNEaXNhYmxlZERhdGFDb25uZWN0aW9uXCI7XG4gICAgLy8gRFBJX0lzRWRpdGFibGUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzRWRpdGFibGVcIl0gPSBcImlzRWRpdGFibGVcIjtcbiAgICAvLyBEUElfSXNFbmFibGVkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0VuYWJsZWRcIl0gPSBcImlzRW5hYmxlZFwiO1xuICAgIC8vIERQSV9Jc0ZpbmlzaGVkQ29ubmVjdGluZywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNGaW5pc2hlZENvbm5lY3RpbmdcIl0gPSBcImlzRmluaXNoZWRDb25uZWN0aW5nXCI7XG4gICAgLy8gRFBJX0lzSGlkZGVuLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0hpZGRlblwiXSA9IFwiaXNIaWRkZW5cIjtcbiAgICAvLyBEUElfSXNNdWx0aVRhYmxlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc011bHRpVGFibGVcIl0gPSBcImlzTXVsdGlUYWJsZVwiO1xuICAgIC8vIERQSV9Jc05ld0N1c3RvbVNRTCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNOZXdDdXN0b21TUUxcIl0gPSBcImlzTmV3Q3VzdG9tU3FsXCI7XG4gICAgLy8gRFBJX0lzTmV3RGF0YVNvdXJjZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNOZXdEYXRhU291cmNlXCJdID0gXCJpc05ld0RhdGFTcmNcIjtcbiAgICAvLyBEUElfSXNQdWJsaXNoZWRGZWRlcmF0ZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzUHVibGlzaGVkRmVkZXJhdGVkXCJdID0gXCJpc1B1Ymxpc2hlZEZlZGVyYXRlZFwiO1xuICAgIC8vIERQSV9Jc1NhbXBsZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzU2FtcGxlZFwiXSA9IFwiaXNTYW1wbGVkXCI7XG4gICAgLy8gRFBJX0lzU2NoZW1hTWVtYmVyTmV3bHlEaXNjb3ZlcmVkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1NjaGVtYU1lbWJlck5ld2x5RGlzY292ZXJlZFwiXSA9IFwiaXNTY2hlbWFNZW1iZXJOZXdseURpc2NvdmVyZWRcIjtcbiAgICAvLyBEUElfSXNTbG93RmFzdCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNTbG93RmFzdFwiXSA9IFwiaXNTbG93ZmFzdFwiO1xuICAgIC8vIERQSV9Jc1N1cHBvcnRlZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNTdXBwb3J0ZWRcIl0gPSBcImlzU3VwcG9ydGVkXCI7XG4gICAgLy8gRFBJX0lzVGFibGVTZWxlY3Rpb25WaXNpYmxlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1RhYmxlU2VsZWN0aW9uVmlzaWJsZVwiXSA9IFwiaXNUYWJsZVNlbGVjdGlvblZpc2libGVcIjtcbiAgICAvLyBEUElfSXNUYWJsZWF1U2VydmVyRGF0YXNvdXJjZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNUYWJsZWF1U2VydmVyRGF0YXNvdXJjZVwiXSA9IFwiaXNUYWJsZWF1U2VydmVyRGF0YXNvdXJjZVwiO1xuICAgIC8vIERQSV9Jc1RhYmxlYXVTZXJ2ZXJEYXRhc291cmNlQ29ubmVjdGFibGUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzVGFibGVhdVNlcnZlckRhdGFzb3VyY2VDb25uZWN0YWJsZVwiXSA9IFwiaXNUYWJsZWF1U2VydmVyRGF0YXNvdXJjZUNvbm5lY3RhYmxlXCI7XG4gICAgLy8gRFBJX0lzVGFibGVhdVNlcnZlckRhdGFzb3VyY2VEb3dubG9hZGFibGUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzVGFibGVhdVNlcnZlckRhdGFzb3VyY2VEb3dubG9hZGFibGVcIl0gPSBcImlzVGFibGVhdVNlcnZlckRhdGFzb3VyY2VEb3dubG9hZGFibGVcIjtcbiAgICAvLyBEUElfSXNWaXNpYmxlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1Zpc2libGVcIl0gPSBcImlzVmlzaWJsZVwiO1xuICAgIC8vIERQSV9OZWVkRmxhdHRlbiwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiTmVlZEZsYXR0ZW5cIl0gPSBcIm5lZWRGbGF0dGVuXCI7XG4gICAgLy8gRFBJX1NTTFJlcXVpcmVzQ2VydGlmaWNhdGUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNTTFJlcXVpcmVzQ2VydGlmaWNhdGVcIl0gPSBcInNzbFJlcXVpcmVzQ2VydGlmaWNhdGVcIjtcbiAgICAvLyBEUElfU2NoZW1hT3B0aW9uYWwsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNjaGVtYU9wdGlvbmFsXCJdID0gXCJzY2hlbWFPcHRpb25hbFwiO1xuICAgIC8vIERQSV9TZXJ2aWNlTmFtZU9wdGlvbmFsLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTZXJ2aWNlTmFtZU9wdGlvbmFsXCJdID0gXCJzZXJ2aWNlTmFtZU9wdGlvbmFsXCI7XG4gICAgLy8gRFBJX1Nob3VsZFdhcm5Gb3JDcm9zc1NjaGVtYUpvaW5zLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG91bGRXYXJuRm9yQ3Jvc3NTY2hlbWFKb2luc1wiXSA9IFwic2hvdWxkV2FybkNyb3NzU2NoZW1hSm9pbnNcIjtcbiAgICAvLyBEUElfU2hvd0Jyb3dzZUJ1dHRvbiwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd0Jyb3dzZUJ1dHRvblwiXSA9IFwic2hvd0Jyb3dzZUJ1dHRvblwiO1xuICAgIC8vIERQSV9TaG93Q29ubmVjdGlvblByb21wdCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd0Nvbm5lY3Rpb25Qcm9tcHRcIl0gPSBcInNob3dDb25uZWN0aW9uUHJvbXB0XCI7XG4gICAgLy8gRFBJX1Nob3dEQkJyb3dzZUJ1dHRvbiwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd0RCQnJvd3NlQnV0dG9uXCJdID0gXCJzaG93RGJCcm93c2VCdXR0b25cIjtcbiAgICAvLyBEUElfU2hvd0RCTmFtZVByb21wdCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd0RCTmFtZVByb21wdFwiXSA9IFwic2hvd0RiUHJvbXB0XCI7XG4gICAgLy8gRFBJX1Nob3dEQldITmFtZVByb21wdCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd0RCV0hOYW1lUHJvbXB0XCJdID0gXCJzaG93RGJ3aFByb21wdFwiO1xuICAgIC8vIERQSV9TaG93SW1wb3J0U1NMQ2VydExhYmVsLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG93SW1wb3J0U1NMQ2VydExhYmVsXCJdID0gXCJzaG93SW1wb3J0U3NsY2VydExhYmVsXCI7XG4gICAgLy8gRFBJX1Nob3dQb3J0UHJvbXB0LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG93UG9ydFByb21wdFwiXSA9IFwic2hvd1BvcnRQcm9tcHRcIjtcbiAgICAvLyBEUElfU2hvd1NTTENoZWNrYm94LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG93U1NMQ2hlY2tib3hcIl0gPSBcInNob3dTc2xDaGVja2JveFwiO1xuICAgIC8vIERQSV9TaG93RW5jcnlwdGlvbkNoZWNrYm94LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG93RW5jcnlwdGlvbkNoZWNrYm94XCJdID0gXCJzaG93RW5jcnlwdGlvbkNoZWNrYm94XCI7XG4gICAgLy8gRFBJX1Nob3dTZXJ2ZXJOYW1lUHJvbXB0LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG93U2VydmVyTmFtZVByb21wdFwiXSA9IFwic2hvd1NlcnZlclByb21wdFwiO1xuICAgIC8vIERQSV9TaG93U2VydmljZU5hbWVQcm9tcHQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3dTZXJ2aWNlTmFtZVByb21wdFwiXSA9IFwic2hvd1NlcnZpY2VQcm9tcHRcIjtcbiAgICAvLyBEUElfU2hvd1VuY29tbWl0dGVkRGF0YUNoZWNrYm94LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG93VW5jb21taXR0ZWREYXRhQ2hlY2tib3hcIl0gPSBcInNob3dVbmNvbW1pdHRlZERhdGFDaGVja2JveFwiO1xuICAgIC8vIERQSV9TdXBwb3J0c0dlbmVyaWNBdXRoLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTdXBwb3J0c0dlbmVyaWNBdXRoXCJdID0gXCJzdXBwb3J0c0dlbmVyaWNBdXRoXCI7XG4gICAgLy8gRFBJX1RhYmxlYXVTZXJ2ZXJGZXRjaEFzY2VuZGluZywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiVGFibGVhdVNlcnZlckZldGNoQXNjZW5kaW5nXCJdID0gXCJ0YWJsZWF1U2VydmVyRmV0Y2hBc2NlbmRpbmdcIjtcbiAgICAvLyBEUElfVXNlc1JhZGlvQnV0dG9uLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJVc2VzUmFkaW9CdXR0b25cIl0gPSBcInVzZXNSYWRpb0J1dHRvblwiO1xuICAgIC8vIERQSV9CaWdRdWVyeUxlZ2FjeVNRTENoZWNrU3RhdHVzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJCaWdRdWVyeUxlZ2FjeVNRTENoZWNrU3RhdHVzXCJdID0gXCJkYXRhc291cmNlQmlncXVlcnlMZWdhY3lTcWxDaGVja1N0YXR1c1wiO1xuICAgIC8vIERQSV9IYXNCaWdRdWVyeUxlZ2FjeVNRTENoZWNrLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJIYXNCaWdRdWVyeUxlZ2FjeVNRTENoZWNrXCJdID0gXCJkYXRhc291cmNlQmlncXVlcnlMZWdhY3lTcWxDaGVja1wiO1xuICAgIC8vIERQSV9BdXRvRmV0Y2hMaW1pdCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJBdXRvRmV0Y2hMaW1pdFwiXSA9IFwiYXV0b0ZldGNoTGltaXRcIjtcbiAgICAvLyBEUElfQ29ubmVjdGlvblR5cGUsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiQ29ubmVjdGlvblR5cGVcIl0gPSBcImNvbm5lY3Rpb25UeXBlXCI7XG4gICAgLy8gRFBJX0ljb25JZCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJJY29uSWRcIl0gPSBcImljb25JZFwiO1xuICAgIC8vIERQSV9TZWxlY3RlZENhdGFsb2dJbmRleCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJTZWxlY3RlZENhdGFsb2dJbmRleFwiXSA9IFwic2VsZWN0ZWRDYXRhbG9nSW5kZXhcIjtcbiAgICAvLyBEUElfU2VsZWN0ZWRDdWJlSW5kZXgsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiU2VsZWN0ZWRDdWJlSW5kZXhcIl0gPSBcInNlbGVjdGVkQ3ViZUluZGV4XCI7XG4gICAgLy8gRFBJX1NlbGVjdGVkR0FBY2NvdW50SW5kZXgsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiU2VsZWN0ZWRHQUFjY291bnRJbmRleFwiXSA9IFwic2VsZWN0ZWRHYUFjY291bnRJbmRleFwiO1xuICAgIC8vIERQSV9TZWxlY3RlZEdBTWVhc3VyZVNldEluZGV4LCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlNlbGVjdGVkR0FNZWFzdXJlU2V0SW5kZXhcIl0gPSBcInNlbGVjdGVkR2FNZWFzdXJlU2V0SW5kZXhcIjtcbiAgICAvLyBEUElfU2VsZWN0ZWRHQVByb3BlcnR5SW5kZXgsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiU2VsZWN0ZWRHQVByb3BlcnR5SW5kZXhcIl0gPSBcInNlbGVjdGVkR2FQcm9wZXJ0eUluZGV4XCI7XG4gICAgLy8gRFBJX1NlbGVjdGVkR0FTZWdtZW50SW5kZXgsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiU2VsZWN0ZWRHQVNlZ21lbnRJbmRleFwiXSA9IFwic2VsZWN0ZWRHYVNlZ21lbnRJbmRleFwiO1xuICAgIC8vIERQSV9TZWxlY3RlZEdBVmlld0luZGV4LCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlNlbGVjdGVkR0FWaWV3SW5kZXhcIl0gPSBcInNlbGVjdGVkR2FWaWV3SW5kZXhcIjtcbiAgICAvLyBEUElfU2VsZWN0ZWRHb29nbGVTaGVldEluZGV4LCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlNlbGVjdGVkR29vZ2xlU2hlZXRJbmRleFwiXSA9IFwic2VsZWN0ZWRHb29nbGVTaGVldEluZGV4XCI7XG4gICAgLy8gRFBJX1NlbGVjdGVkT3B0aW9uSW5kZXgsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiU2VsZWN0ZWRPcHRpb25JbmRleFwiXSA9IFwic2VsZWN0ZWRPcHRpb25JbmRleFwiO1xuICAgIC8vIERQSV9TbG93TWV0YWRhdGFDb3VudCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJTbG93TWV0YWRhdGFDb3VudFwiXSA9IFwic2xvd01ldGFkYXRhQ291bnRcIjtcbiAgICAvLyBEUElfVGFibGVhdVNlcnZlckZldGNoU29ydEJ5LCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlRhYmxlYXVTZXJ2ZXJGZXRjaFNvcnRCeVwiXSA9IFwidGFibGVhdVNlcnZlckZldGNoU29ydFwiO1xuICAgIC8vIERQSV9BY3R1YWxQYXJhbWV0ZXJPcmRpbmFsLCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJBY3R1YWxQYXJhbWV0ZXJPcmRpbmFsXCJdID0gXCJhY3R1YWxQYXJhbWV0ZXJPcmRpbmFsXCI7XG4gICAgLy8gRFBJX0FjdHVhbFBhcmFtZXRlclR5cGUsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkFjdHVhbFBhcmFtZXRlclR5cGVcIl0gPSBcImFjdHVhbFBhcmFtZXRlclR5cGVcIjtcbiAgICAvLyBEUElfQ2hhclNldElELCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJDaGFyU2V0SURcIl0gPSBcImNoYXJzZXRJZFwiO1xuICAgIC8vIERQSV9EYXRhU291cmNlT3JkaW5hbCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiRGF0YVNvdXJjZU9yZGluYWxcIl0gPSBcImRhdGFzb3VyY2VPcmRpbmFsXCI7XG4gICAgLy8gRFBJX0ZpbHRlckNvdW50LCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJGaWx0ZXJDb3VudFwiXSA9IFwiZmlsdGVyQ291bnRcIjtcbiAgICAvLyBEUElfVmFyaWFibGVzQ291bnQsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlZhcmlhYmxlc0NvdW50XCJdID0gXCJ2YXJpYWJsZXNDb3VudFwiO1xuICAgIC8vIERQSV9BY3R1YWxQYXJhbWV0ZXJEaXNwbGF5TmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJBY3R1YWxQYXJhbWV0ZXJEaXNwbGF5TmFtZVwiXSA9IFwiYWN0dWFsUGFyYW1ldGVyRGlzcGxheU5hbWVcIjtcbiAgICAvLyBEUElfQWN0dWFsUGFyYW1ldGVyTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJBY3R1YWxQYXJhbWV0ZXJOYW1lXCJdID0gXCJhY3R1YWxQYXJhbWV0ZXJOYW1lXCI7XG4gICAgLy8gRFBJX0FjdHVhbFBhcmFtZXRlclZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkFjdHVhbFBhcmFtZXRlclZhbHVlXCJdID0gXCJhY3R1YWxQYXJhbWV0ZXJWYWx1ZVwiO1xuICAgIC8vIERQSV9BdHRyQVBJVmVyc2lvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJBdHRyQVBJVmVyc2lvblwiXSA9IFwiYXR0ckFwaVZlcnNpb25cIjtcbiAgICAvLyBEUElfQXR0ckF1dGhUeXBlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkF0dHJBdXRoVHlwZVwiXSA9IFwid2lkZ2V0QXR0ckF1dGh0eXBlXCI7XG4gICAgLy8gRFBJX0F0dHJDb25uZWN0aW9uRGF0YSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJBdHRyQ29ubmVjdGlvbkRhdGFcIl0gPSBcImF0dHJDb25uZWN0aW9uRGF0YVwiO1xuICAgIC8vIERQSV9BdHRyQ29ubmVjdGlvbk5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQXR0ckNvbm5lY3Rpb25OYW1lXCJdID0gXCJhdHRyQ29ubmVjdGlvbk5hbWVcIjtcbiAgICAvLyBEUElfQXR0ckNvbm5lY3Rpb25UeXBlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkF0dHJDb25uZWN0aW9uVHlwZVwiXSA9IFwid2lkZ2V0QXR0ckNvbm5lY3Rpb250eXBlXCI7XG4gICAgLy8gRFBJX0F0dHJDb25uZWN0aW9uVVJMLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkF0dHJDb25uZWN0aW9uVVJMXCJdID0gXCJhdHRyQ29ubmVjdGlvblVybFwiO1xuICAgIC8vIERQSV9BdHRyQ3ViZVNwZWNpZmljYXRpb25JZCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJBdHRyQ3ViZVNwZWNpZmljYXRpb25JZFwiXSA9IFwid2lkZ2V0QXR0ckN1YmVTcGVjaWZpY2F0aW9uSWRcIjtcbiAgICAvLyBEUElfQXR0ckN1YmVTcGVjaWZpY2F0aW9uVmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQXR0ckN1YmVTcGVjaWZpY2F0aW9uVmFsdWVcIl0gPSBcIndpZGdldEF0dHJDdWJlU3BlY2lmaWNhdGlvblZhbHVlXCI7XG4gICAgLy8gRFBJX0F0dHJEU04sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQXR0ckRTTlwiXSA9IFwid2lkZ2V0QXR0ckRzblwiO1xuICAgIC8vIERQSV9BdHRyRGF0YWJhc2UsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQXR0ckRhdGFiYXNlXCJdID0gXCJ3aWRnZXRBdHRyRGJcIjtcbiAgICAvLyBEUElfQXR0ckRhdGFiYXNlV2FyZWhvdXNlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkF0dHJEYXRhYmFzZVdhcmVob3VzZVwiXSA9IFwid2lkZ2V0QXR0ckRid2hcIjtcbiAgICAvLyBEUElfQXR0ckRyaXZlciwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJBdHRyRHJpdmVyXCJdID0gXCJ3aWRnZXRBdHRyRHJpdmVyXCI7XG4gICAgLy8gRFBJX0F0dHJGaWxlbmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJBdHRyRmlsZW5hbWVcIl0gPSBcIndpZGdldEF0dHJGaWxlbmFtZVwiO1xuICAgIC8vIERQSV9BdHRySFRUUFBhdGgsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQXR0ckhUVFBQYXRoXCJdID0gXCJ3aWRnZXRBdHRySHR0cFBhdGhcIjtcbiAgICAvLyBEUElfQXR0ckluY3JlbWVudGFsUmVmcmVzaEtleSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJBdHRySW5jcmVtZW50YWxSZWZyZXNoS2V5XCJdID0gXCJhdHRySW5jcmVtZW50YWxSZWZyZXNoS2V5XCI7XG4gICAgLy8gRFBJX0F0dHJLZXJiZXJvc0hvc3QsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQXR0cktlcmJlcm9zSG9zdFwiXSA9IFwid2lkZ2V0QXR0cktlcmJlcm9zSG9zdFwiO1xuICAgIC8vIERQSV9BdHRyS2VyYmVyb3NSZWFsbSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJBdHRyS2VyYmVyb3NSZWFsbVwiXSA9IFwid2lkZ2V0QXR0cktlcmJlcm9zUmVhbG1cIjtcbiAgICAvLyBEUElfQXR0cktlcmJlcm9zU2VydmljZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJBdHRyS2VyYmVyb3NTZXJ2aWNlXCJdID0gXCJ3aWRnZXRBdHRyS2VyYmVyb3NTZXJ2aWNlXCI7XG4gICAgLy8gRFBJX0F0dHJMYXN0UmVjb3JkVG9rZW4sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQXR0ckxhc3RSZWNvcmRUb2tlblwiXSA9IFwiYXR0ckxhc3RSZWNvcmRUb2tlblwiO1xuICAgIC8vIERQSV9BdHRyTURXUGF0aCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJBdHRyTURXUGF0aFwiXSA9IFwid2lkZ2V0QXR0ck1kd1BhdGhcIjtcbiAgICAvLyBEUElfQXR0ck1EV1VzZXJuYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkF0dHJNRFdVc2VybmFtZVwiXSA9IFwid2lkZ2V0QXR0ck1kd1VzZXJuYW1lXCI7XG4gICAgLy8gRFBJX0F0dHJPREJDUHJvbXB0LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkF0dHJPREJDUHJvbXB0XCJdID0gXCJ3aWRnZXRBdHRyT2RiY1Byb21wdFwiO1xuICAgIC8vIERQSV9BdHRyT0RCQ1N0cmluZ0V4dHJhcywgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJBdHRyT0RCQ1N0cmluZ0V4dHJhc1wiXSA9IFwid2lkZ2V0QXR0ck9kYmNTdHJpbmdFeHRyYXNcIjtcbiAgICAvLyBEUElfQXR0clBvcnQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQXR0clBvcnRcIl0gPSBcIndpZGdldEF0dHJQb3J0XCI7XG4gICAgLy8gRFBJX0F0dHJTQVBDbGllbnQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQXR0clNBUENsaWVudFwiXSA9IFwid2lkZ2V0QXR0clNhcENsaWVudFwiO1xuICAgIC8vIERQSV9BdHRyU0FQTGFuZ3VhZ2UsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQXR0clNBUExhbmd1YWdlXCJdID0gXCJ3aWRnZXRBdHRyU2FwTGFuZ3VhZ2VcIjtcbiAgICAvLyBEUElfQXR0ckVkaXRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQXR0ckVkaXRpb25cIl0gPSBcIndpZGdldEF0dHJTc2xFZGl0aW9uXCI7XG4gICAgLy8gRFBJX0F0dHJTU09Eb21haW4sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQXR0clNTT0RvbWFpblwiXSA9IFwid2lkZ2V0QXR0clNzb0RvbWFpblwiO1xuICAgIC8vIERQSV9BdHRyU1NMQ2VydCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJBdHRyU1NMQ2VydFwiXSA9IFwid2lkZ2V0QXR0clNzbENlcnRcIjtcbiAgICAvLyBEUElfQXR0clNjcmlwdFZlcnNpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQXR0clNjcmlwdFZlcnNpb25cIl0gPSBcImF0dHJTY3JpcHRWZXJzaW9uXCI7XG4gICAgLy8gRFBJX0F0dHJTZXJ2ZXIsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQXR0clNlcnZlclwiXSA9IFwid2lkZ2V0QXR0clNlcnZlclwiO1xuICAgIC8vIERQSV9BdHRyU2VydmljZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJBdHRyU2VydmljZVwiXSA9IFwid2lkZ2V0QXR0clNlcnZpY2VcIjtcbiAgICAvLyBEUElfQXR0clVzZXJuYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkF0dHJVc2VybmFtZVwiXSA9IFwid2lkZ2V0QXR0clVzZXJcIjtcbiAgICAvLyBEUElfQXV0aGVudGljYXRpb25Qcm9tcHQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQXV0aGVudGljYXRpb25Qcm9tcHRcIl0gPSBcImF1dGhlbnRpY2F0aW9uUHJvbXB0XCI7XG4gICAgLy8gRFBJX0J1dHRvbkNsaWNrQWN0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkJ1dHRvbkNsaWNrQWN0aW9uXCJdID0gXCJidXR0b25DbGlja0FjdGlvblwiO1xuICAgIC8vIERQSV9CdXR0b25DYXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkJ1dHRvbkNhcHRpb25cIl0gPSBcImJ1dHRvbkNhcHRpb25cIjtcbiAgICAvLyBEUElfQ2FwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJDYXB0aW9uXCJdID0gXCJjYXB0aW9uXCI7XG4gICAgLy8gRFBJX0NhdGFsb2dMaXN0UHJvbXB0LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkNhdGFsb2dMaXN0UHJvbXB0XCJdID0gXCJjYXRhbG9nTGlzdFByb21wdFwiO1xuICAgIC8vIERQSV9DYXRhbG9nTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJDYXRhbG9nTmFtZVwiXSA9IFwiY2F0YWxvZ05hbWVcIjtcbiAgICAvLyBEUElfQ2F0YWxvZ1NlYXJjaFRlcm0sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQ2F0YWxvZ1NlYXJjaFRlcm1cIl0gPSBcImNhdGFsb2dTZWFyY2hUZXJtXCI7XG4gICAgLy8gRFBJX0NhdGVnb3J5LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkNhdGVnb3J5XCJdID0gXCJpdGVtQ2F0ZWdvcnlcIjtcbiAgICAvLyBEUElfQ2xhc3NOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkNsYXNzTmFtZVwiXSA9IFwiY2xhc3NOYW1lRm9yQ2xlYW5pbmdcIjtcbiAgICAvLyBEUElfQ2xvdWRGaWxlQ2xhc3NOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkNsb3VkRmlsZUNsYXNzTmFtZVwiXSA9IFwiY2xvdWRGaWxlQ2xhc3NOYW1lXCI7XG4gICAgLy8gRFBJX0Nsb3VkRmlsZVN0b3JhZ2VQcm92aWRlciwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJDbG91ZEZpbGVTdG9yYWdlUHJvdmlkZXJcIl0gPSBcImNsb3VkRmlsZVN0b3JhZ2VQcm92aWRlclwiO1xuICAgIC8vIERQSV9Db25maWdOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbmZpZ05hbWVcIl0gPSBcImNvbm5lY3Rpb25Db25maWdOYW1lXCI7XG4gICAgLy8gRFBJX0Nvbm5lY3Rpb25DYXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbm5lY3Rpb25DYXB0aW9uXCJdID0gXCJjb25uZWN0aW9uQ2FwdGlvblwiO1xuICAgIC8vIERQSV9Db25uZWN0aW9uRGVzY3JpcHRpb25MYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJDb25uZWN0aW9uRGVzY3JpcHRpb25MYWJlbFwiXSA9IFwiY29ubmVjdGlvbkRlc2NyaXB0aW9uTGFiZWxcIjtcbiAgICAvLyBEUElfQ29ubmVjdGlvbkNsYXNzLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbm5lY3Rpb25DbGFzc1wiXSA9IFwiY29ubmVjdGlvbkNsYXNzTmFtZVwiO1xuICAgIC8vIERQSV9Db25uZWN0aW9uTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJDb25uZWN0aW9uTmFtZVwiXSA9IFwiY29ubmVjdGlvbk5hbWVcIjtcbiAgICAvLyBEUElfQ29ubmVjdGlvbk9wdGlvbk5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQ29ubmVjdGlvbk9wdGlvbk5hbWVcIl0gPSBcImNvbm5lY3Rpb25PcHRpb25OYW1lXCI7XG4gICAgLy8gRFBJX0Nvbm5lY3Rpb25TcGVjaWZpY2F0aW9uVGl0bGUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQ29ubmVjdGlvblNwZWNpZmljYXRpb25UaXRsZVwiXSA9IFwiY29ubmVjdGlvblNwZWNpZmljYXRpb25UaXRsZVwiO1xuICAgIC8vIERQSV9Db25uZWN0aW9uVHlwZUxhYmVsLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbm5lY3Rpb25UeXBlTGFiZWxcIl0gPSBcImNvbm5lY3Rpb25UeXBlTGFiZWxcIjtcbiAgICAvLyBEUElfQ3ViZURlc2NyaXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkN1YmVEZXNjcmlwdGlvblwiXSA9IFwiY3ViZURlc2NyaXB0aW9uXCI7XG4gICAgLy8gRFBJX0N1YmVMYXN0VXBkYXRlZCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJDdWJlTGFzdFVwZGF0ZWRcIl0gPSBcImN1YmVMYXN0VXBkYXRlZFwiO1xuICAgIC8vIERQSV9DdWJlTGlzdFByb21wdCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJDdWJlTGlzdFByb21wdFwiXSA9IFwiY3ViZUxpc3RQcm9tcHRcIjtcbiAgICAvLyBEUElfQ3ViZU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQ3ViZU5hbWVcIl0gPSBcImN1YmVOYW1lXCI7XG4gICAgLy8gRFBJX0N1YmVTZWFyY2hUZXJtLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkN1YmVTZWFyY2hUZXJtXCJdID0gXCJjdWJlU2VhcmNoVGVybVwiO1xuICAgIC8vIERQSV9DdXJyZW50VGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJDdXJyZW50VGV4dFwiXSA9IFwiY3VycmVudFRleHRcIjtcbiAgICAvLyBEUElfQ3VzdG9tU3BsaXRTdHJpbmdTZXBhcmF0b3IsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQ3VzdG9tU3BsaXRTdHJpbmdTZXBhcmF0b3JcIl0gPSBcImN1c3RvbVNwbGl0U3RyaW5nU2VwYXJhdG9yXCI7XG4gICAgLy8gRFBJX0RhdGFzb3VyY2VJZCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJEYXRhc291cmNlSWRcIl0gPSBcImRhdGFzb3VyY2VJZFwiO1xuICAgIC8vIERQSV9EQk5hbWVQcm9tcHQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiREJOYW1lUHJvbXB0XCJdID0gXCJkYk5hbWVQcm9tcHRcIjtcbiAgICAvLyBEUElfREJXSE5hbWVQcm9tcHQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiREJXSE5hbWVQcm9tcHRcIl0gPSBcImRiV2FyZWhvdXNlTmFtZVByb21wdFwiO1xuICAgIC8vIERQSV9EU0NsYXNzLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkRTQ2xhc3NcIl0gPSBcImRzQ2xhc3NcIjtcbiAgICAvLyBEUElfRGF0YWJhc2VOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFiYXNlTmFtZVwiXSA9IFwiZGF0YXNvdXJjZURhdGFiYXNlTmFtZVwiO1xuICAgIC8vIERQSV9EYXRhYmFzZU5vdGUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRGF0YWJhc2VOb3RlXCJdID0gXCJkYXRhYmFzZU5vdGVcIjtcbiAgICAvLyBEUElfRHJhZ0xhYmVsLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkRyYWdMYWJlbFwiXSA9IFwiZHJhZ0xhYmVsXCI7XG4gICAgLy8gRFBJX0VmZmVjdGl2ZURhdGVSYW5nZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJFZmZlY3RpdmVEYXRlUmFuZ2VcIl0gPSBcImVmZmVjdGl2ZURhdGVSYW5nZVwiO1xuICAgIC8vIERQSV9Hb29nbGVTaGVldENyZWF0ZWRUaW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkdvb2dsZVNoZWV0Q3JlYXRlZFRpbWVcIl0gPSBcImdvb2dsZVNoZWV0Q3JlYXRlZFRpbWVcIjtcbiAgICAvLyBEUElfR29vZ2xlU2hlZXRJZCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJHb29nbGVTaGVldElkXCJdID0gXCJnb29nbGVTaGVldElkXCI7XG4gICAgLy8gRFBJX0dvb2dsZVNoZWV0TGFzdE1vZGlmaWVkVGltZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJHb29nbGVTaGVldExhc3RNb2RpZmllZFRpbWVcIl0gPSBcImdvb2dsZVNoZWV0TGFzdE1vZGlmaWVkVGltZVwiO1xuICAgIC8vIERQSV9Hb29nbGVTaGVldExhc3RNb2RpZnlpbmdVc2VyLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkdvb2dsZVNoZWV0TGFzdE1vZGlmeWluZ1VzZXJcIl0gPSBcImdvb2dsZVNoZWV0TGFzdE1vZGlmeWluZ1VzZXJcIjtcbiAgICAvLyBEUElfR29vZ2xlU2hlZXRMYXN0Vmlld2VkQnlVc2VyVGltZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJHb29nbGVTaGVldExhc3RWaWV3ZWRCeVVzZXJUaW1lXCJdID0gXCJnb29nbGVTaGVldExhc3RWaWV3ZWRCeVVzZXJUaW1lXCI7XG4gICAgLy8gRFBJX0dvb2dsZVNoZWV0TWltZVR5cGUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiR29vZ2xlU2hlZXRNaW1lVHlwZVwiXSA9IFwiZ29vZ2xlU2hlZXRNaW1lVHlwZVwiO1xuICAgIC8vIERQSV9Hb29nbGVTaGVldE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiR29vZ2xlU2hlZXROYW1lXCJdID0gXCJnb29nbGVTaGVldE5hbWVcIjtcbiAgICAvLyBEUElfR29vZ2xlU2hlZXRPd25lciwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJHb29nbGVTaGVldE93bmVyXCJdID0gXCJnb29nbGVTaGVldE93bmVyXCI7XG4gICAgLy8gRFBJX0dvb2dsZVNoZWV0VGh1bWJuYWlsTGluaywgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJHb29nbGVTaGVldFRodW1ibmFpbExpbmtcIl0gPSBcImdvb2dsZVNoZWV0VGh1bWJuYWlsTGlua1wiO1xuICAgIC8vIERQSV9Hb29nbGVTaGVldFRodW1ibmFpbElkLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkdvb2dsZVNoZWV0VGh1bWJuYWlsSWRcIl0gPSBcImdvb2dsZVNoZWV0VGh1bWJuYWlsSWRcIjtcbiAgICAvLyBEUElfR29vZ2xlU2hlZXRUaHVtYm5haWxMb2NhbFBhdGgsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiR29vZ2xlU2hlZXRUaHVtYm5haWxMb2NhbFBhdGhcIl0gPSBcImdvb2dsZVNoZWV0VGh1bWJuYWlsTG9jYWxQYXRoXCI7XG4gICAgLy8gRFBJX0dvb2dsZVNoZWV0V2ViVmlld0xpbmssIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiR29vZ2xlU2hlZXRXZWJWaWV3TGlua1wiXSA9IFwiZ29vZ2xlU2hlZXRXZWJWaWV3TGlua1wiO1xuICAgIC8vIERQSV9Hb29nbGVTaGVldHNMaXN0RXJyb3JNZXNzYWdlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkdvb2dsZVNoZWV0c0xpc3RFcnJvck1lc3NhZ2VcIl0gPSBcImdvb2dsZVNoZWV0c0xpc3RFcnJvck1lc3NhZ2VcIjtcbiAgICAvLyBEUElfSW5pdGlhbFNRTCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJJbml0aWFsU1FMXCJdID0gXCJpbml0aWFsU3FsXCI7XG4gICAgLy8gRFBJX0lTT0RhdGUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiSVNPRGF0ZVwiXSA9IFwiaXNvRGF0ZVwiO1xuICAgIC8vIERQSV9JU09FbmREYXRlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIklTT0VuZERhdGVcIl0gPSBcImlzb0VuZERhdGVcIjtcbiAgICAvLyBEUElfSVNPU3RhcnREYXRlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIklTT1N0YXJ0RGF0ZVwiXSA9IFwiaXNvU3RhcnREYXRlXCI7XG4gICAgLy8gRFBJX0lzb2xhdGlvbkxldmVsLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIklzb2xhdGlvbkxldmVsXCJdID0gXCJkYXRhc291cmNlSXNvbGF0aW9uTGV2ZWxcIjtcbiAgICAvLyBEUElfSXRlbURlc2NyaXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkl0ZW1EZXNjcmlwdGlvblwiXSA9IFwiaXRlbURlc2NyaXB0aW9uXCI7XG4gICAgLy8gRFBJX0l0ZW1JZCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJJdGVtSWRcIl0gPSBcIml0ZW1JZFwiO1xuICAgIC8vIERQSV9LZXJiZXJvc0hvc3QsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiS2VyYmVyb3NIb3N0XCJdID0gXCJkYXRhc291cmNlS2VyYmVyb3NIb3N0XCI7XG4gICAgLy8gRFBJX0tlcmJlcm9zUmVhbG0sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiS2VyYmVyb3NSZWFsbVwiXSA9IFwiZGF0YXNvdXJjZUtlcmJlcm9zUmVhbG1cIjtcbiAgICAvLyBEUElfS2VyYmVyb3NTZXJ2aWNlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIktlcmJlcm9zU2VydmljZVwiXSA9IFwiZGF0YXNvdXJjZUtlcmJlcm9zU2VydmljZVwiO1xuICAgIC8vIERQSV9OYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIk5hbWVcIl0gPSBcIm5hbWVcIjtcbiAgICAvLyBEUElfT3B0aW9uSWQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiT3B0aW9uSWRcIl0gPSBcIm9wdGlvbklkXCI7XG4gICAgLy8gRFBJX1BhcnRpdGlvbmluZ0J1dHRvbkxhYmVsLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlBhcnRpdGlvbmluZ0J1dHRvbkxhYmVsXCJdID0gXCJwYXJ0aXRpb25pbmdCdXR0b25MYWJlbFwiO1xuICAgIC8vIERQSV9QYXJ0aXRpb25pbmdCdXR0b25Ub29sdGlwLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlBhcnRpdGlvbmluZ0J1dHRvblRvb2x0aXBcIl0gPSBcInBhcnRpdGlvbmluZ0J1dHRvblRvb2x0aXBcIjtcbiAgICAvLyBEUElfUGFydGl0aW9uaW5nVGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJQYXJ0aXRpb25pbmdUZXh0XCJdID0gXCJxdWVyeVBhcnRpdGlvbmluZ1RleHRcIjtcbiAgICAvLyBEUElfUGRmU3RhcnRQYWdlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlBkZlN0YXJ0UGFnZVwiXSA9IFwicGRmU3RhcnRQYWdlXCI7XG4gICAgLy8gRFBJX1BkZkVuZFBhZ2UsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiUGRmRW5kUGFnZVwiXSA9IFwicGRmRW5kUGFnZVwiO1xuICAgIC8vIERQSV9Qb3J0UHJvbXB0LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlBvcnRQcm9tcHRcIl0gPSBcInBvcnRQcm9tcHRcIjtcbiAgICAvLyBEUElfUHJvbXB0VGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJQcm9tcHRUZXh0XCJdID0gXCJwcm9tcHRUZXh0XCI7XG4gICAgLy8gRFBJX1F1ZXJ5QmFuZGluZywgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJRdWVyeUJhbmRpbmdcIl0gPSBcInF1ZXJ5QmFuZGluZ1wiO1xuICAgIC8vIERQSV9RdWVyeVRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiUXVlcnlUZXh0XCJdID0gXCJxdWVyeVRleHRcIjtcbiAgICAvLyBEUElfUmVjb21tZW5kYXRpb25VVUlELCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlJlY29tbWVuZGF0aW9uVVVJRFwiXSA9IFwicmVjb21tZW5kYXRpb25VdWlkXCI7XG4gICAgLy8gRFBJX1NRTFF1ZXJ5LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlNRTFF1ZXJ5XCJdID0gXCJzcWxRdWVyeVwiO1xuICAgIC8vIERQSV9TY2hlbWFDb21ib0ZhbGxiYWNrVGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJTY2hlbWFDb21ib0ZhbGxiYWNrVGV4dFwiXSA9IFwic2NoZW1hQ29tYm9GYWxsYmFja1RleHRcIjtcbiAgICAvLyBEUElfU2NoZW1hTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiU2NoZW1hTGFiZWxcIl0gPSBcInNjaGVtYUxhYmVsXCI7XG4gICAgLy8gRFBJX1NjaGVtYU1lbWJlckdsb2JhbE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiU2NoZW1hTWVtYmVyR2xvYmFsTmFtZVwiXSA9IFwic2NoZW1hTWVtYmVyR2xvYmFsTmFtZVwiO1xuICAgIC8vIERQSV9TY2hlbWFOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlNjaGVtYU5hbWVcIl0gPSBcImRhdGFzb3VyY2VTY2hlbWFOYW1lXCI7XG4gICAgLy8gRFBJX1NjcmlwdFRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiU2NyaXB0VGV4dFwiXSA9IFwic2NyaXB0VGV4dFwiO1xuICAgIC8vIERQSV9TZWNvbmRhcnlXaGl0ZUxpc3QsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiU2Vjb25kYXJ5V2hpdGVMaXN0XCJdID0gXCJzZWNvbmRhcnlXaGl0ZUxpc3RcIjtcbiAgICAvLyBEUElfU2VydmVyLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlNlcnZlclwiXSA9IFwiZGF0YXNvdXJjZVNlcnZlclwiO1xuICAgIC8vIERQSV9TZXJ2ZXJOYW1lUHJvbXB0LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlNlcnZlck5hbWVQcm9tcHRcIl0gPSBcInNlcnZlck5hbWVQcm9tcHRcIjtcbiAgICAvLyBEUElfU2VydmljZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJTZXJ2aWNlXCJdID0gXCJkYXRhc291cmNlU2VydmljZVwiO1xuICAgIC8vIERQSV9TZXJ2aWNlTmFtZVByb21wdCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJTZXJ2aWNlTmFtZVByb21wdFwiXSA9IFwic2VydmljZVByb21wdFwiO1xuICAgIC8vIERQSV9TaGVldEZvcm1hdHRpbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiU2hlZXRGb3JtYXR0aW5nXCJdID0gXCJzaGVldEZvcm1hdHRpbmdcIjtcbiAgICAvLyBEUElfU2xvd01ldGFkYXRhU2VhcmNoVGVybSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJTbG93TWV0YWRhdGFTZWFyY2hUZXJtXCJdID0gXCJzbG93TWV0YWRhdGFTZWFyY2hUZXJtXCI7XG4gICAgLy8gRFBJX1N0YW5kYXJkQ29ubmVjdGlvbk5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiU3RhbmRhcmRDb25uZWN0aW9uTmFtZVwiXSA9IFwiZGF0YXNvdXJjZVN0YW5kYXJkQ29ubmVjdGlvbk5hbWVcIjtcbiAgICAvLyBEUElfU3RhbmRhcmRDb25uZWN0aW9uUGxhY2Vob2xkZXJUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlN0YW5kYXJkQ29ubmVjdGlvblBsYWNlaG9sZGVyVGV4dFwiXSA9IFwic3RhbmRhcmRDb25uZWN0aW9uUGxhY2Vob2xkZXJUZXh0XCI7XG4gICAgLy8gRFBJX1N0b3JlZFByb2NlZHVyZVBhcmFtZXRlclRpdGxlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlN0b3JlZFByb2NlZHVyZVBhcmFtZXRlclRpdGxlXCJdID0gXCJzdG9yZWRQcm9jZWR1cmVQYXJhbWV0ZXJUaXRsZVwiO1xuICAgIC8vIERQSV9UYWJsZUFsaWFzLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlRhYmxlQWxpYXNcIl0gPSBcInRhYmxlQWxpYXNcIjtcbiAgICAvLyBEUElfUmlnaHRUYWJsZUFsaWFzLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlJpZ2h0VGFibGVBbGlhc1wiXSA9IFwicmlnaHRUYWJsZUFsaWFzXCI7XG4gICAgLy8gRFBJX1RhYmxlQ2FwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJUYWJsZUNhcHRpb25cIl0gPSBcInRhYmxlQ2FwdGlvblwiO1xuICAgIC8vIERQSV9UYWJsZUNvbGxlY3Rpb25OYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlRhYmxlQ29sbGVjdGlvbk5hbWVcIl0gPSBcInRhYmxlQ29sbGVjdGlvbk5hbWVcIjtcbiAgICAvLyBEUElfVGFibGVQbGFjZWhvbGRlclRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiVGFibGVQbGFjZWhvbGRlclRleHRcIl0gPSBcInRhYmxlUGxhY2Vob2xkZXJUZXh0XCI7XG4gICAgLy8gRFBJX1RhYmxlUmFua2luZywgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJUYWJsZVJhbmtpbmdcIl0gPSBcInRhYmxlUmFua2luZ1wiO1xuICAgIC8vIERQSV9UYWJsZVNvcnRLZXksIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiVGFibGVTb3J0S2V5XCJdID0gXCJ0YWJsZVNvcnRrZXlcIjtcbiAgICAvLyBEUElfVGFibGVUb29sdGlwLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlRhYmxlVG9vbHRpcFwiXSA9IFwidGFibGVUb29sdGlwXCI7XG4gICAgLy8gRFBJX1RhYmxlVG9SZXBsYWNlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlRhYmxlVG9SZXBsYWNlXCJdID0gXCJ0YWJsZVRvUmVwbGFjZVwiO1xuICAgIC8vIERQSV9UYWJsZVdhcm5pbmdNZXNzYWdlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlRhYmxlV2FybmluZ01lc3NhZ2VcIl0gPSBcInRhYmxlV2FybmluZ01lc3NhZ2VcIjtcbiAgICAvLyBEUElfVGFibGVhdVNlcnZlckRhdGFzb3VyY2VEZXNjcmlwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJUYWJsZWF1U2VydmVyRGF0YXNvdXJjZURlc2NyaXB0aW9uXCJdID0gXCJ0YWJsZWF1U2VydmVyRGF0YXNvdXJjZURlc2NyaXB0aW9uXCI7XG4gICAgLy8gRFBJX1RhYmxlYXVTZXJ2ZXJEYXRhc291cmNlTGFzdEV4dHJhY3QsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiVGFibGVhdVNlcnZlckRhdGFzb3VyY2VMYXN0RXh0cmFjdFwiXSA9IFwidGFibGVhdVNlcnZlckRhdGFzb3VyY2VMYXN0RXh0cmFjdFwiO1xuICAgIC8vIERQSV9UYWJsZWF1U2VydmVyRGF0YXNvdXJjZU1vZGlmaWVkLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlRhYmxlYXVTZXJ2ZXJEYXRhc291cmNlTW9kaWZpZWRcIl0gPSBcInRhYmxlYXVTZXJ2ZXJEYXRhc291cmNlTW9kaWZpZWRcIjtcbiAgICAvLyBEUElfVGFibGVhdVNlcnZlckRhdGFzb3VyY2VPd25lciwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJUYWJsZWF1U2VydmVyRGF0YXNvdXJjZU93bmVyXCJdID0gXCJ0YWJsZWF1U2VydmVyRGF0YXNvdXJjZU93bmVyXCI7XG4gICAgLy8gRFBJX1RhYmxlYXVTZXJ2ZXJEYXRhc291cmNlUGF0aCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJUYWJsZWF1U2VydmVyRGF0YXNvdXJjZVBhdGhcIl0gPSBcInRhYmxlYXVTZXJ2ZXJEYXRhc291cmNlUGF0aFwiO1xuICAgIC8vIERQSV9UYWJsZWF1U2VydmVyRmV0Y2hTZWFyY2hRdWVyeSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJUYWJsZWF1U2VydmVyRmV0Y2hTZWFyY2hRdWVyeVwiXSA9IFwidGFibGVhdVNlcnZlckZldGNoU2VhcmNoUXVlcnlcIjtcbiAgICAvLyBEUElfVGFibGVhdVNlcnZlck5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiVGFibGVhdVNlcnZlck5hbWVcIl0gPSBcInRhYmxlYXVTZXJ2ZXJOYW1lXCI7XG4gICAgLy8gRFBJX1RhYmxlYXVTZXJ2ZXJQcm9qZWN0TmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJUYWJsZWF1U2VydmVyUHJvamVjdE5hbWVcIl0gPSBcInRhYmxlYXVTZXJ2ZXJQcm9qZWN0TmFtZVwiO1xuICAgIC8vIERQSV9UYWJsZWF1U2VydmVyVXNlcm5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiVGFibGVhdVNlcnZlclVzZXJuYW1lXCJdID0gXCJ0YWJsZWF1U2VydmVyVXNlcm5hbWVcIjtcbiAgICAvLyBEUElfVHJhbnNwb3J0VHlwZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJUcmFuc3BvcnRUeXBlXCJdID0gXCJ0cmFuc3BvcnRUeXBlXCI7XG4gICAgLy8gRFBJX1dhcmVob3VzZU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiV2FyZWhvdXNlTmFtZVwiXSA9IFwiZGF0YXNvdXJjZVdhcmVob3VzZU5hbWVcIjtcbiAgICAvLyBEUElfV29ya2dyb3VwV29ya2Jvb2tOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIldvcmtncm91cFdvcmtib29rTmFtZVwiXSA9IFwid29ya2dyb3VwV29ya2Jvb2tOYW1lXCI7XG4gICAgLy8gRFBJX0FuYWx5dGljc0l0ZW1Ub29sdGlwLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkFuYWx5dGljc0l0ZW1Ub29sdGlwXCJdID0gXCJhbmFseXRpY3NJdGVtVG9vbHRpcFwiO1xuICAgIC8vIERQSV9EZXNjcmlwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJEZXNjcmlwdGlvblwiXSA9IFwiZGVzY3JpcHRpb25cIjtcbiAgICAvLyBEUElfRFNDbGFzc0NhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRFNDbGFzc0NhcHRpb25cIl0gPSBcImRzQ2xhc3NDYXB0aW9uXCI7XG4gICAgLy8gRFBJX0Zvcm11bGEsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRm9ybXVsYVwiXSA9IFwiZm9ybXVsYVwiO1xuICAgIC8vIERQSV9NZXNzYWdlVGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJNZXNzYWdlVGV4dFwiXSA9IFwibWVzc2FnZVRleHRcIjtcbiAgICAvLyBEUElfRGF0YXNvdXJjZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJEYXRhc291cmNlXCJdID0gXCJkYXRhc291cmNlXCI7XG4gICAgLy8gRFBJX0RhdGFzb3VyY2VTb3VyY2UsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRGF0YXNvdXJjZVNvdXJjZVwiXSA9IFwiZGF0YXNvdXJjZVNvdXJjZVwiO1xuICAgIC8vIERQSV9EYXRhc291cmNlVGFyZ2V0LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFzb3VyY2VUYXJnZXRcIl0gPSBcImRhdGFzb3VyY2VUYXJnZXRcIjtcbiAgICAvLyBEUElfRmlyc3REYXRhc291cmNlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkZpcnN0RGF0YXNvdXJjZVwiXSA9IFwiZmlyc3REYXRhc291cmNlXCI7XG4gICAgLy8gRFBJX05ld0RhdGFzb3VyY2UsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiTmV3RGF0YXNvdXJjZVwiXSA9IFwibmV3RGF0YXNvdXJjZVwiO1xuICAgIC8vIERQSV9QYXJhbWV0ZXJzRGF0YXNvdXJjZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJQYXJhbWV0ZXJzRGF0YXNvdXJjZVwiXSA9IFwicGFyYW1ldGVyc0RhdGFzb3VyY2VcIjtcbiAgICAvLyBEUElfUHJpbWFyeURhdGFzb3VyY2UsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiUHJpbWFyeURhdGFzb3VyY2VcIl0gPSBcInByaW1hcnlEYXRhc291cmNlXCI7XG4gICAgLy8gRFBJX0Nvbm5lY3Rpb25EYXRhYmFzZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJDb25uZWN0aW9uRGF0YWJhc2VzXCJdID0gXCJjb25uZWN0aW9uRGF0YWJhc2VzXCI7XG4gICAgLy8gRFBJX0Nvbm5lY3Rpb25TY2hlbWFzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiQ29ubmVjdGlvblNjaGVtYXNcIl0gPSBcImNvbm5lY3Rpb25TY2hlbWFzXCI7XG4gICAgLy8gRFBJX0Nvbm5lY3Rpb25XYXJlaG91c2VzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiQ29ubmVjdGlvbldhcmVob3VzZXNcIl0gPSBcImNvbm5lY3Rpb25XYXJlaG91c2VzXCI7XG4gICAgLy8gRFBJX0RTQ2xhc3NlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkRTQ2xhc3Nlc1wiXSA9IFwiZHNDbGFzc2VzXCI7XG4gICAgLy8gRFBJX1Bvc3NpYmxlQ2hvaWNlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIlBvc3NpYmxlQ2hvaWNlc1wiXSA9IFwicG9zc2libGVDaG9pY2VzXCI7XG4gICAgLy8gRFBJX1N0YW5kYXJkQ29ubmVjdGlvbnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJTdGFuZGFyZENvbm5lY3Rpb25zXCJdID0gXCJzdGFuZGFyZENvbm5lY3Rpb25zXCI7XG4gICAgLy8gRFBJX1N0cmluZ3MsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJTdHJpbmdzXCJdID0gXCJzdHJpbmdzXCI7XG4gICAgLy8gRFBJX1RhYmxlYXVTZXJ2ZXJQcm9qZWN0TmFtZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJUYWJsZWF1U2VydmVyUHJvamVjdE5hbWVzXCJdID0gXCJ0YWJsZWF1U2VydmVyUHJvamVjdE5hbWVzXCI7XG4gICAgLy8gRFBJX1RhYmxlQ2FwdGlvbnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJUYWJsZUNhcHRpb25zXCJdID0gXCJ0YWJsZUNhcHRpb25zXCI7XG4gICAgLy8gRFBJX0RhdGFWYWx1ZXMsIGhhdmluZyB0eXBlIG9iamVjdFtdXG4gICAgUGFyYW1ldGVySWRbXCJEYXRhVmFsdWVzXCJdID0gXCJkYXRhVmFsdWVzXCI7XG4gICAgLy8gRFBJX1F1ZXJ5QmFuZEVycm9ycywgaGF2aW5nIHR5cGUgb2JqZWN0W11cbiAgICBQYXJhbWV0ZXJJZFtcIlF1ZXJ5QmFuZEVycm9yc1wiXSA9IFwicXVlcnlCYW5kRXJyb3JzXCI7XG4gICAgLy8gRFBJX1F1ZXJ5QmFuZFBhcmFtZXRlcnMsIGhhdmluZyB0eXBlIG9iamVjdFtdXG4gICAgUGFyYW1ldGVySWRbXCJRdWVyeUJhbmRQYXJhbWV0ZXJzXCJdID0gXCJxdWVyeUJhbmRQYXJhbWV0ZXJzXCI7XG4gICAgLy8gRFBJX0luaXRpYWxTUUxQYXJhbWV0ZXJzLCBoYXZpbmcgdHlwZSBvYmplY3RbXVxuICAgIFBhcmFtZXRlcklkW1wiSW5pdGlhbFNRTFBhcmFtZXRlcnNcIl0gPSBcImluaXRpYWxTcWxQYXJhbWV0ZXJzXCI7XG4gICAgLy8gRFBJX0Nvbm5lY3Rpb25BdHRyaWJ1dGVzLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbm5lY3Rpb25BdHRyaWJ1dGVzXCJdID0gXCJjb25uZWN0aW9uQXR0cnNcIjtcbiAgICAvLyBEUElfQ29ubmVjdGlvblByb3BzLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbm5lY3Rpb25Qcm9wc1wiXSA9IFwiY29ubmVjdGlvblByb3BzXCI7XG4gICAgLy8gRFBJX0Rpc3BsYXlOYW1lTWFwLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcbiAgICBQYXJhbWV0ZXJJZFtcIkRpc3BsYXlOYW1lTWFwXCJdID0gXCJkaXNwbGF5TmFtZU1hcFwiO1xuICAgIC8vIERQSV9Mb29rdXBUYWJsZSwgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBzdHJpbmcpXG4gICAgUGFyYW1ldGVySWRbXCJMb29rdXBUYWJsZVwiXSA9IFwibG9va3VwVGFibGVcIjtcbiAgICAvLyBEUElfT0F1dGhBdHRycywgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBzdHJpbmcpXG4gICAgUGFyYW1ldGVySWRbXCJPQXV0aEF0dHJzXCJdID0gXCJvYXV0aEF0dHJzXCI7XG4gICAgLy8gRFBJX1N0cmluZ01hcCwgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBzdHJpbmcpXG4gICAgUGFyYW1ldGVySWRbXCJTdHJpbmdNYXBcIl0gPSBcInN0cmluZ01hcFwiO1xuICAgIC8vIERQSV9UYWJsZVJhbmtpbmdNYXAsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2Ygc3RyaW5nKVxuICAgIFBhcmFtZXRlcklkW1wiVGFibGVSYW5raW5nTWFwXCJdID0gXCJ0YWJsZVJhbmtpbmdNYXBcIjtcbiAgICAvLyBEUElfV0RDQXR0cmlidXRlcywgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBzdHJpbmcpXG4gICAgUGFyYW1ldGVySWRbXCJXRENBdHRyaWJ1dGVzXCJdID0gXCJ3ZGNBdHRyc1wiO1xuICAgIC8vIERQSV9Db25uZWN0b3JBdHRyaWJ1dGVzLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbm5lY3RvckF0dHJpYnV0ZXNcIl0gPSBcImNvbm5lY3RvckF0dHJzXCI7XG4gICAgLy8gRFBJX1RhYmxlUmVsZXZhbmNlUGFyYW1zLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcbiAgICBQYXJhbWV0ZXJJZFtcIlRhYmxlUmVsZXZhbmNlUGFyYW1zXCJdID0gXCJ0YWJsZVJlbGV2YW5jZVBhcmFtc1wiO1xuICAgIC8vIERQSV9BY3R1YWxQYXJhbWV0ZXJQYXJhbWV0ZXIsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQWN0dWFsUGFyYW1ldGVyUGFyYW1ldGVyXCJdID0gXCJhY3R1YWxQYXJhbWV0ZXJQYXJhbWV0ZXJcIjtcbiAgICAvLyBEUElfRGF0YUNvbHVtbk5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRGF0YUNvbHVtbk5hbWVcIl0gPSBcImRhdGFDb2x1bW5OYW1lXCI7XG4gICAgLy8gRFBJX0xIU0RhdGFDb2x1bW5OYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkxIU0RhdGFDb2x1bW5OYW1lXCJdID0gXCJsaHNEYXRhQ29sdW1uTmFtZVwiO1xuICAgIC8vIERQSV9SSFNEYXRhQ29sdW1uTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJSSFNEYXRhQ29sdW1uTmFtZVwiXSA9IFwicmhzRGF0YUNvbHVtbk5hbWVcIjtcbiAgICAvLyBEUElfRnVsbEN1YmVOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkZ1bGxDdWJlTmFtZVwiXSA9IFwiZnVsbEN1YmVOYW1lXCI7XG4gICAgLy8gRFBJX0Z1bGxWYXJpYWJsZU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRnVsbFZhcmlhYmxlTmFtZVwiXSA9IFwiZnVsbFZhcmlhYmxlTmFtZVwiO1xuICAgIC8vIERQSV9TZW1hbnRpY1JvbGUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiU2VtYW50aWNSb2xlXCJdID0gXCJzZW1hbnRpY1JvbGVcIjtcbiAgICAvLyBEUElfU3RvcmVkUHJvY2VkdXJlTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJTdG9yZWRQcm9jZWR1cmVOYW1lXCJdID0gXCJzdG9yZWRQcm9jTmFtZVwiO1xuICAgIC8vIERQSV9UYWJsZU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiVGFibGVOYW1lXCJdID0gXCJ0YWJsZU5hbWVcIjtcbiAgICAvLyBEUElfQWRkZWRUYWJsZU5hbWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiQWRkZWRUYWJsZU5hbWVzXCJdID0gXCJhZGRlZFRhYmxlTmFtZXNcIjtcbiAgICAvLyBEUElfQ29hbGVzY2VHcm91cEZpZWxkcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkNvYWxlc2NlR3JvdXBGaWVsZHNcIl0gPSBcImNvYWxlc2NlR3JvdXBGaWVsZHNcIjtcbiAgICAvLyBEUElfRmllbGROYW1lcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkZpZWxkTmFtZXNcIl0gPSBcImZpZWxkTmFtZXNcIjtcbiAgICAvLyBEUElfSm9pbkZpZWxkQWxpYXNlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkpvaW5GaWVsZEFsaWFzZXNcIl0gPSBcImpvaW5GaWVsZF9hbGlhc2VzXCI7XG4gICAgLy8gRFBJX0pvaW5JbmZvRmllbGRzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiSm9pbkluZm9GaWVsZHNcIl0gPSBcImpvaW5JbmZvRmllbGRzXCI7XG4gICAgLy8gRFBJX1Bpdm90R3JvdXBGaWVsZHMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJQaXZvdEdyb3VwRmllbGRzXCJdID0gXCJwaXZvdEdyb3VwRmllbGRzXCI7XG4gICAgLy8gRFBJX1JlbW92ZWRUYWJsZU5hbWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiUmVtb3ZlZFRhYmxlTmFtZXNcIl0gPSBcInJlbW92ZWRUYWJsZU5hbWVzXCI7XG4gICAgLy8gRFBJX1N0b3JlZFByb2NlZHVyZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJTdG9yZWRQcm9jZWR1cmVzXCJdID0gXCJzdG9yZWRQcm9jZWR1cmVzXCI7XG4gICAgLy8gRFBJX1RhYmxlTmFtZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJUYWJsZU5hbWVzXCJdID0gXCJ0YWJsZU5hbWVzXCI7XG4gICAgLy8gRFBJX0NvbHVtbk5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQ29sdW1uTmFtZVwiXSA9IFwiY29sdW1uTmFtZVwiO1xuICAgIC8vIERQSV9GaWVsZE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRmllbGROYW1lXCJdID0gXCJmblwiO1xuICAgIC8vIERQSV9Hb29nbGVTaGVldFRodW1ibmFpbEltYWdlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkdvb2dsZVNoZWV0VGh1bWJuYWlsSW1hZ2VcIl0gPSBcImdvb2dsZVNoZWV0VGh1bWJuYWlsSW1hZ2VcIjtcbiAgICAvLyBEUElfQXR0ck1EV1Bhc3N3b3JkLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkF0dHJNRFdQYXNzd29yZFwiXSA9IFwid2lkZ2V0QXR0ck1kd1Bhc3N3b3JkXCI7XG4gICAgLy8gRFBJX0F0dHJQYXNzd29yZCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJBdHRyUGFzc3dvcmRcIl0gPSBcIndpZGdldEF0dHJQYXNzd29yZFwiO1xuICAgIC8vIERQSV9EYXRhc291cmNlUGFzc3dvcmQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRGF0YXNvdXJjZVBhc3N3b3JkXCJdID0gXCJkYXRhc291cmNlUGFzc3dvcmRcIjtcbiAgICAvLyBEUElfRmVkZXJhdGVkS2V5Y2hhaW4sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRmVkZXJhdGVkS2V5Y2hhaW5cIl0gPSBcImZlZGVyYXRlZEtleWNoYWluXCI7XG4gICAgLy8gRFBJX0RhdGFQYXJhbWV0ZXJJRCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJEYXRhUGFyYW1ldGVySURcIl0gPSBcImRhdGFQYXJhbVR5cGVcIjtcbiAgICAvLyBEUElfQ29ubmVjdFNlcnZlcldpZGdldFR5cGUsIGhhdmluZyB0eXBlIENvbm5lY3RTZXJ2ZXJXaWRnZXRUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJDb25uZWN0U2VydmVyV2lkZ2V0VHlwZVwiXSA9IFwiY29ubmVjdFNlcnZlcldpZGdldFR5cGVcIjtcbiAgICAvLyBEUElfQXV0aGVudGljYXRpb25Nb2RlLCBoYXZpbmcgdHlwZSBNb2RlXG4gICAgUGFyYW1ldGVySWRbXCJBdXRoZW50aWNhdGlvbk1vZGVcIl0gPSBcImF1dGhNb2RlXCI7XG4gICAgLy8gRFBJX1JlY29ubmVjdEF1dGhNb2RlLCBoYXZpbmcgdHlwZSBSZWNvbm5lY3RNb2RlXG4gICAgUGFyYW1ldGVySWRbXCJSZWNvbm5lY3RBdXRoTW9kZVwiXSA9IFwicmVjb25uZWN0QXV0aE1vZGVcIjtcbiAgICAvLyBEUElfQ3VycmVudEF1dGhPcHRpb24sIGhhdmluZyB0eXBlIEF1dGhPcHRpb25cbiAgICBQYXJhbWV0ZXJJZFtcIkN1cnJlbnRBdXRoT3B0aW9uXCJdID0gXCJjdXJyQXV0aE9wdGlvblwiO1xuICAgIC8vIERQSV9BdXRoT3B0aW9uTGlzdCwgaGF2aW5nIHR5cGUgQXV0aE9wdGlvbltdXG4gICAgUGFyYW1ldGVySWRbXCJBdXRoT3B0aW9uTGlzdFwiXSA9IFwiYXV0aE9wdGlvbnNcIjtcbiAgICAvLyBEUElfQ29ubmVjdGlvblNwZWNpZmljYXRpb25UeXBlLCBoYXZpbmcgdHlwZSBDb25uZWN0aW9uU3BlY2lmaWNhdGlvblR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbm5lY3Rpb25TcGVjaWZpY2F0aW9uVHlwZVwiXSA9IFwiY29ubmVjdGlvblNwZWNpZmljYXRpb25UeXBlXCI7XG4gICAgLy8gRFBJX0RhdGFUeXBlLCBoYXZpbmcgdHlwZSBEYXRhVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiRGF0YVR5cGVcIl0gPSBcImRhdGFUeXBlXCI7XG4gICAgLy8gRFBJX0xIU0RhdGFUeXBlLCBoYXZpbmcgdHlwZSBEYXRhVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiTEhTRGF0YVR5cGVcIl0gPSBcImxoc0RhdGFUeXBlXCI7XG4gICAgLy8gRFBJX1JIU0RhdGFUeXBlLCBoYXZpbmcgdHlwZSBEYXRhVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiUkhTRGF0YVR5cGVcIl0gPSBcInJoc0RhdGFUeXBlXCI7XG4gICAgLy8gRFBJX0RlZmF1bHRGaWVsZFJvbGUsIGhhdmluZyB0eXBlIEZpZWxkUm9sZVxuICAgIFBhcmFtZXRlcklkW1wiRGVmYXVsdEZpZWxkUm9sZVwiXSA9IFwiZGVmYXVsdEZpZWxkUm9sZVwiO1xuICAgIC8vIERQSV9GaWVsZFJvbGUsIGhhdmluZyB0eXBlIEZpZWxkUm9sZVxuICAgIFBhcmFtZXRlcklkW1wiRmllbGRSb2xlXCJdID0gXCJmaWVsZFJvbGVcIjtcbiAgICAvLyBEUElfRGVmYXVsdEZpZWxkVHlwZSwgaGF2aW5nIHR5cGUgRmllbGRUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJEZWZhdWx0RmllbGRUeXBlXCJdID0gXCJkZWZhdWx0RmllbGRUeXBlXCI7XG4gICAgLy8gRFBJX0ZpZWxkVHlwZSwgaGF2aW5nIHR5cGUgRmllbGRUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJGaWVsZFR5cGVcIl0gPSBcImZpZWxkVHlwZVwiO1xuICAgIC8vIERQSV9GaWVsZFR5cGVMaXN0LCBoYXZpbmcgdHlwZSBGaWVsZFR5cGVbXVxuICAgIFBhcmFtZXRlcklkW1wiRmllbGRUeXBlTGlzdFwiXSA9IFwiZmllbGRUeXBlTGlzdFwiO1xuICAgIC8vIERQSV9GaWVsZFR5cGVMaXN0RGV0YWlsLCBoYXZpbmcgdHlwZSBGaWVsZFR5cGVbXVxuICAgIFBhcmFtZXRlcklkW1wiRmllbGRUeXBlTGlzdERldGFpbFwiXSA9IFwiZmllbGRUeXBlTGlzdERldGFpbFwiO1xuICAgIC8vIERQSV9BZ2dUeXBlLCBoYXZpbmcgdHlwZSBBZ2dUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJBZ2dUeXBlXCJdID0gXCJhZ2dyZWdhdGlvblwiO1xuICAgIC8vIERQSV9EZWZhdWx0QWdnVHlwZSwgaGF2aW5nIHR5cGUgQWdnVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiRGVmYXVsdEFnZ1R5cGVcIl0gPSBcImRlZmF1bHRBZ2dyZWdhdGlvblwiO1xuICAgIC8vIERQSV9Gb3JlY2FzdEFnZywgaGF2aW5nIHR5cGUgQWdnVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiRm9yZWNhc3RBZ2dcIl0gPSBcImZvcmVjYXN0U3VtbWFyaXplVG9cIjtcbiAgICAvLyBEUElfRm9yZWNhc3RBdXRvQWdnLCBoYXZpbmcgdHlwZSBBZ2dUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJGb3JlY2FzdEF1dG9BZ2dcIl0gPSBcImZvcmVjYXN0QXV0b1N1bW1hcml6ZVRvXCI7XG4gICAgLy8gRFBJX0ZvcmVjYXN0QXV0b1JhbmdlVW5pdHMsIGhhdmluZyB0eXBlIEFnZ1R5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIkZvcmVjYXN0QXV0b1JhbmdlVW5pdHNcIl0gPSBcImZvcmVjYXN0QXV0b1JhbmdlVW5pdHNcIjtcbiAgICAvLyBEUElfRm9yZWNhc3RFbmRPZlJhbmdlVW5pdHMsIGhhdmluZyB0eXBlIEFnZ1R5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIkZvcmVjYXN0RW5kT2ZSYW5nZVVuaXRzXCJdID0gXCJmb3JlY2FzdEVuZE9mUmFuZ2VVbml0c1wiO1xuICAgIC8vIERQSV9Gb3JlY2FzdE5leHRSYW5nZVVuaXRzLCBoYXZpbmcgdHlwZSBBZ2dUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJGb3JlY2FzdE5leHRSYW5nZVVuaXRzXCJdID0gXCJmb3JlY2FzdE5leHRSYW5nZVVuaXRzXCI7XG4gICAgLy8gRFBJX1NvdXJjZUFnZywgaGF2aW5nIHR5cGUgQWdnVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiU291cmNlQWdnXCJdID0gXCJzb3VyY2VBZ2dyZWdhdGlvblwiO1xuICAgIC8vIERQSV9UYXJnZXRBZ2csIGhhdmluZyB0eXBlIEFnZ1R5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIlRhcmdldEFnZ1wiXSA9IFwidGFyZ2V0QWdncmVnYXRpb25cIjtcbiAgICAvLyBEUElfQWdncmVnYXRlQnlBZ2dUeXBlcywgaGF2aW5nIHR5cGUgQWdnVHlwZVtdXG4gICAgUGFyYW1ldGVySWRbXCJBZ2dyZWdhdGVCeUFnZ1R5cGVzXCJdID0gXCJhZ2dyZWdhdGVCeUFnZ1R5cGVzXCI7XG4gICAgLy8gRFBJX0FnZ3JlZ2F0aW9uVmFsdWVzLCBoYXZpbmcgdHlwZSBBZ2dUeXBlW11cbiAgICBQYXJhbWV0ZXJJZFtcIkFnZ3JlZ2F0aW9uVmFsdWVzXCJdID0gXCJhZ2dyZWdhdGlvblZhbHVlc1wiO1xuICAgIC8vIERQSV9Tb3J0QWdnVmFsdWVzLCBoYXZpbmcgdHlwZSBBZ2dUeXBlW11cbiAgICBQYXJhbWV0ZXJJZFtcIlNvcnRBZ2dWYWx1ZXNcIl0gPSBcInNvcnRBZ2dWYWx1ZXNcIjtcbiAgICAvLyBEUElfQ29sdW1uQ2xhc3MsIGhhdmluZyB0eXBlIENvbHVtbkNsYXNzXG4gICAgUGFyYW1ldGVySWRbXCJDb2x1bW5DbGFzc1wiXSA9IFwiY29sdW1uQ2xhc3NcIjtcbiAgICAvLyBEUElfQ29ubmVjdGlvbldpZGdldFR5cGUsIGhhdmluZyB0eXBlIENvbm5lY3Rpb25XaWRnZXRUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJDb25uZWN0aW9uV2lkZ2V0VHlwZVwiXSA9IFwiY29ubmVjdGlvbldpZGdldFR5cGVcIjtcbiAgICAvLyBEUElfVGFibGVQaWxsSWNvbiwgaGF2aW5nIHR5cGUgVGFibGVQaWxsSWNvblxuICAgIFBhcmFtZXRlcklkW1wiVGFibGVQaWxsSWNvblwiXSA9IFwidGFibGVQaWxsSWNvblR5cGVcIjtcbiAgICAvLyBEUElfRW51bWVyYXRlZEVudGl0eVR5cGUsIGhhdmluZyB0eXBlIEVudGl0eVR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIkVudW1lcmF0ZWRFbnRpdHlUeXBlXCJdID0gXCJlbnVtZXJhdGVkRW50aXR5VHlwZVwiO1xuICAgIC8vIERQSV9QaWNrRW50aXR5U2VhcmNoVHlwZSwgaGF2aW5nIHR5cGUgUGlja0VudGl0eVNlYXJjaFR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIlBpY2tFbnRpdHlTZWFyY2hUeXBlXCJdID0gXCJlbnRpdHlTZWFyY2hUeXBlXCI7XG4gICAgLy8gRFBJX0V4cHJlc3Npb25PcCwgaGF2aW5nIHR5cGUgT3BcbiAgICBQYXJhbWV0ZXJJZFtcIkV4cHJlc3Npb25PcFwiXSA9IFwiZXhwcmVzc2lvbk9wXCI7XG4gICAgLy8gRFBJX0V4cHJlc3Npb25PcGVyYXRvckNhcHRpb24sIGhhdmluZyB0eXBlIEV4cHJlc3Npb25PcGVyYXRvckNhcHRpb25QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkV4cHJlc3Npb25PcGVyYXRvckNhcHRpb25cIl0gPSBcImV4cHJlc3Npb25PcGVyYXRvckNhcHRpb25cIjtcbiAgICAvLyBEUElfUmVsYXRpb25hbEV4cGVyZXNzaW9uT3BzLCBoYXZpbmcgdHlwZSBFeHByZXNzaW9uT3BlcmF0b3JDYXB0aW9uUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlJlbGF0aW9uYWxFeHBlcmVzc2lvbk9wc1wiXSA9IFwicmVsYXRpb25hbEV4cHJlc3Npb25PcHNcIjtcbiAgICAvLyBEUElfSGllcmFyY2h5RXhwcmVzc2lvbk9wcywgaGF2aW5nIHR5cGUgRXhwcmVzc2lvbk9wZXJhdG9yQ2FwdGlvblByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJIaWVyYXJjaHlFeHByZXNzaW9uT3BzXCJdID0gXCJoaWVyYXJjaHlFeHByZXNzaW9uT3BzXCI7XG4gICAgLy8gRFBJX0RlZmF1bHRTb3J0RGlyZWN0aW9uLCBoYXZpbmcgdHlwZSBTb3J0RGlyZWN0aW9uXG4gICAgUGFyYW1ldGVySWRbXCJEZWZhdWx0U29ydERpcmVjdGlvblwiXSA9IFwiZGVmU29ydE9yZGVyXCI7XG4gICAgLy8gRFBJX1NvcnREaXJlY3Rpb24sIGhhdmluZyB0eXBlIFNvcnREaXJlY3Rpb25cbiAgICBQYXJhbWV0ZXJJZFtcIlNvcnREaXJlY3Rpb25cIl0gPSBcInNvcnRPcmRlclwiO1xuICAgIC8vIERQSV9Tb3J0RGlyZWN0aW9uVmFsdWVzLCBoYXZpbmcgdHlwZSBTb3J0RGlyZWN0aW9uW11cbiAgICBQYXJhbWV0ZXJJZFtcIlNvcnREaXJlY3Rpb25WYWx1ZXNcIl0gPSBcInNvcnREaXJlY3Rpb25WYWx1ZXNcIjtcbiAgICAvLyBEUElfQ3ViZU1ldGFkYXRhQ2F0ZWdvcnksIGhhdmluZyB0eXBlIEN1YmVNZXRhZGF0YUNhdGVnb3J5XG4gICAgUGFyYW1ldGVySWRbXCJDdWJlTWV0YWRhdGFDYXRlZ29yeVwiXSA9IFwiY3ViZU1ldGFkYXRhQ2F0ZWdvcnlcIjtcbiAgICAvLyBEUElfQ3ViZU1ldGFkYXRhQ2F0ZWdvcmllcywgaGF2aW5nIHR5cGUgQ3ViZU1ldGFkYXRhQ2F0ZWdvcnlbXVxuICAgIFBhcmFtZXRlcklkW1wiQ3ViZU1ldGFkYXRhQ2F0ZWdvcmllc1wiXSA9IFwiY3ViZU1ldGFkYXRhQ2F0ZWdvcmllc1wiO1xuICAgIC8vIERQSV9Hb29nbGVCYXNpY0luZm9UeXBlLCBoYXZpbmcgdHlwZSBHb29nbGVCYXNpY0luZm9UeXBlXG4gICAgUGFyYW1ldGVySWRbXCJHb29nbGVCYXNpY0luZm9UeXBlXCJdID0gXCJnb29nbGVCYXNpY0luZm9UeXBlXCI7XG4gICAgLy8gRFBJX0dvb2dsZUFuYWx5dGljc0RhdGVSYW5nZU9wdGlvblR5cGUsIGhhdmluZyB0eXBlIERhdGVSYW5nZVxuICAgIFBhcmFtZXRlcklkW1wiR29vZ2xlQW5hbHl0aWNzRGF0ZVJhbmdlT3B0aW9uVHlwZVwiXSA9IFwiZ29vZ2xlQW5hbHl0aWNzRGF0ZVJhbmdlT3B0aW9uVHlwZVwiO1xuICAgIC8vIERQSV9UYWJsZUNhbGNUeXBlLCBoYXZpbmcgdHlwZSBUYWJsZUNhbGNUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJUYWJsZUNhbGNUeXBlXCJdID0gXCJ0YWJsZUNhbGNUeXBlXCI7XG4gICAgLy8gRFBJX1RhYmxlQ2FsY1R5cGVWYWx1ZXMsIGhhdmluZyB0eXBlIFRhYmxlQ2FsY1R5cGVbXVxuICAgIFBhcmFtZXRlcklkW1wiVGFibGVDYWxjVHlwZVZhbHVlc1wiXSA9IFwidGFibGVDYWxjVHlwZVZhbHVlc1wiO1xuICAgIC8vIERQSV9SZWxhdGl2ZUFkZHJlc3MsIGhhdmluZyB0eXBlIFJlbGF0aXZlQWRkcmVzc1xuICAgIFBhcmFtZXRlcklkW1wiUmVsYXRpdmVBZGRyZXNzXCJdID0gXCJyZWxhdGl2ZUFkZHJlc3NcIjtcbiAgICAvLyBEUElfUmVsYXRpdmVWYWx1ZXMsIGhhdmluZyB0eXBlIFJlbGF0aXZlQWRkcmVzc1tdXG4gICAgUGFyYW1ldGVySWRbXCJSZWxhdGl2ZVZhbHVlc1wiXSA9IFwicmVsYXRpdmVWYWx1ZXNcIjtcbiAgICAvLyBEUElfT3JkZXJpbmdUeXBlLCBoYXZpbmcgdHlwZSBPcmRlcmluZ1R5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIk9yZGVyaW5nVHlwZVwiXSA9IFwib3JkZXJpbmdUeXBlXCI7XG4gICAgLy8gRFBJX09yZGVyaW5nVHlwZVZhbHVlcywgaGF2aW5nIHR5cGUgT3JkZXJpbmdUeXBlW11cbiAgICBQYXJhbWV0ZXJJZFtcIk9yZGVyaW5nVHlwZVZhbHVlc1wiXSA9IFwib3JkZXJpbmdUeXBlVmFsdWVzXCI7XG4gICAgLy8gRFBJX0NhdGVnb3JpY2FsQmluSXRlbVR5cGUsIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsQmluSXRlbVR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIkNhdGVnb3JpY2FsQmluSXRlbVR5cGVcIl0gPSBcImNhdGVnb3JpY2FsQmluSXRlbVR5cGVcIjtcbiAgICAvLyBEUElfQXV0aGVudGljYXRpb25JbmZvcywgaGF2aW5nIHR5cGUgQXV0aGVudGljYXRpb25TZXR0aW5nc1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQXV0aGVudGljYXRpb25JbmZvc1wiXSA9IFwiYXV0aEluZm9cIjtcbiAgICAvLyBEUElfQ29ubmVjdGlvbldpZGdldFBhcmFtcywgaGF2aW5nIHR5cGUgQ29ubmVjdGlvblBhcmFtc1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ29ubmVjdGlvbldpZGdldFBhcmFtc1wiXSA9IFwid2lkZ2V0Q29ubmVjdGlvblBhcmFtc1wiO1xuICAgIC8vIERQSV9Db25uZWN0aW9uU2V0dGluZ3MsIGhhdmluZyB0eXBlIENvbm5lY3Rpb25TZXR0aW5nc1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ29ubmVjdGlvblNldHRpbmdzXCJdID0gXCJjb25uZWN0aW9uU2V0dGluZ3NcIjtcbiAgICAvLyBEUElfUmVjb25uZWN0QXV0aGVudGljYXRpb25TZXR0aW5ncywgaGF2aW5nIHR5cGUgQXV0aGVudGljYXRpb25TZXR0aW5nc1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUmVjb25uZWN0QXV0aGVudGljYXRpb25TZXR0aW5nc1wiXSA9IFwicmVjb25uZWN0QXV0aFNldHRpbmdzXCI7XG4gICAgLy8gRFBJX0N1YmVDb25uZWN0aW9uU3BlY2lmaWNhdGlvbk9wdGlvbiwgaGF2aW5nIHR5cGUgQ3ViZUNvbm5lY3Rpb25TcGVjaWZpY2F0aW9uT3B0aW9uUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDdWJlQ29ubmVjdGlvblNwZWNpZmljYXRpb25PcHRpb25cIl0gPSBcImN1YmVDb25uZWN0aW9uU3BlY2lmaWNhdGlvbk9wdGlvblwiO1xuICAgIC8vIERQSV9DdWJlQ29ubmVjdGlvblNwZWNpZmljYXRpb25PcHRpb25zLCBoYXZpbmcgdHlwZSBDdWJlQ29ubmVjdGlvblNwZWNpZmljYXRpb25PcHRpb25QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiQ3ViZUNvbm5lY3Rpb25TcGVjaWZpY2F0aW9uT3B0aW9uc1wiXSA9IFwiY3ViZUNvbm5lY3Rpb25TcGVjaWZpY2F0aW9uT3B0aW9uc1wiO1xuICAgIC8vIERQSV9DdWJlQ29ubmVjdGlvblNwZWNpZmljYXRpb24sIGhhdmluZyB0eXBlIEN1YmVDb25uZWN0aW9uU3BlY2lmaWNhdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ3ViZUNvbm5lY3Rpb25TcGVjaWZpY2F0aW9uXCJdID0gXCJjdWJlQ29ubmVjdGlvblNwZWNpZmljYXRpb25cIjtcbiAgICAvLyBEUElfQ29ubmVjdGlvblNldHRpbmdzT3B0aW9uLCBoYXZpbmcgdHlwZSBDb25uZWN0aW9uU2V0dGluZ3NPcHRpb25QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbm5lY3Rpb25TZXR0aW5nc09wdGlvblwiXSA9IFwiY29ubmVjdGlvblNldHRpbmdzT3B0aW9uXCI7XG4gICAgLy8gRFBJX0Nvbm5lY3Rpb25TZXR0aW5nc09wdGlvbnMsIGhhdmluZyB0eXBlIENvbm5lY3Rpb25TZXR0aW5nc09wdGlvblByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJDb25uZWN0aW9uU2V0dGluZ3NPcHRpb25zXCJdID0gXCJjb25uZWN0aW9uU2V0dGluZ3NPcHRpb25zXCI7XG4gICAgLy8gRFBJX1N0cmluZ0NvbGxhdGlvbiwgaGF2aW5nIHR5cGUgU3RyaW5nQ29sbGF0aW9uUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTdHJpbmdDb2xsYXRpb25cIl0gPSBcInN0cmluZ0NvbGxhdGlvblwiO1xuICAgIC8vIERQSV9EYXRhYmFzZUVudW1lcmF0aW9uLCBoYXZpbmcgdHlwZSBEYXRhYmFzZUVudW1lcmF0aW9uUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEYXRhYmFzZUVudW1lcmF0aW9uXCJdID0gXCJkYXRhYmFzZUVudW1lcmF0aW9uXCI7XG4gICAgLy8gRFBJX1NjaGVtYUVudW1lcmF0aW9uLCBoYXZpbmcgdHlwZSBTY2hlbWFFbnVtZXJhdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU2NoZW1hRW51bWVyYXRpb25cIl0gPSBcInNjaGVtYUVudW1lcmF0aW9uXCI7XG4gICAgLy8gRFBJX1N0YW5kYXJkQ29ubmVjdGlvbkVudW1lcmF0aW9uLCBoYXZpbmcgdHlwZSBTdGFuZGFyZENvbm5lY3Rpb25FbnVtZXJhdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU3RhbmRhcmRDb25uZWN0aW9uRW51bWVyYXRpb25cIl0gPSBcInN0YW5kYXJkQ29ubmVjdGlvbkVudW1lcmF0aW9uXCI7XG4gICAgLy8gRFBJX1N0b3JlZFByb2NlZHVyZUVudW1lcmF0aW9uLCBoYXZpbmcgdHlwZSBTdG9yZWRQcm9jZWR1cmVFbnVtZXJhdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU3RvcmVkUHJvY2VkdXJlRW51bWVyYXRpb25cIl0gPSBcInN0b3JlZFByb2NlZHVyZUVudW1lcmF0aW9uXCI7XG4gICAgLy8gRFBJX1RhYmxlRW51bWVyYXRpb24sIGhhdmluZyB0eXBlIFRhYmxlRW51bWVyYXRpb25QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlRhYmxlRW51bWVyYXRpb25cIl0gPSBcInRhYmxlRW51bWVyYXRpb25cIjtcbiAgICAvLyBEUElfV2FyZWhvdXNlRW51bWVyYXRpb24sIGhhdmluZyB0eXBlIFdhcmVob3VzZUVudW1lcmF0aW9uUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJXYXJlaG91c2VFbnVtZXJhdGlvblwiXSA9IFwid2FyZWhvdXNlRW51bWVyYXRpb25cIjtcbiAgICAvLyBEUElfU2xvd01ldGFkYXRhU2NoZW1hTGlzdCwgaGF2aW5nIHR5cGUgU2xvd01ldGFkYXRhU2NoZW1hTGlzdFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU2xvd01ldGFkYXRhU2NoZW1hTGlzdFwiXSA9IFwic2xvd01ldGFkYXRhU2NoZW1hTGlzdFwiO1xuICAgIC8vIERQSV9TbG93TWV0YWRhdGFUYWJsZUxpc3QsIGhhdmluZyB0eXBlIFNsb3dNZXRhZGF0YVRhYmxlTGlzdFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU2xvd01ldGFkYXRhVGFibGVMaXN0XCJdID0gXCJzbG93TWV0YWRhdGFUYWJsZUxpc3RcIjtcbiAgICAvLyBEUElfQ3ViZUNhdGFsb2csIGhhdmluZyB0eXBlIEN1YmVDYXRhbG9nUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDdWJlQ2F0YWxvZ1wiXSA9IFwiY3ViZUNhdGFsb2dcIjtcbiAgICAvLyBEUElfQ3ViZUNhdGFsb2dzLCBoYXZpbmcgdHlwZSBDdWJlQ2F0YWxvZ1ByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJDdWJlQ2F0YWxvZ3NcIl0gPSBcImN1YmVDYXRhbG9nc1wiO1xuICAgIC8vIERQSV9DdWJlQ2F0YWxvZ0VudW1lcmF0aW9uLCBoYXZpbmcgdHlwZSBDdWJlQ2F0YWxvZ0VudW1lcmF0aW9uUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDdWJlQ2F0YWxvZ0VudW1lcmF0aW9uXCJdID0gXCJjdWJlQ2F0YWxvZ0VudW1lcmF0aW9uXCI7XG4gICAgLy8gRFBJX0N1YmUsIGhhdmluZyB0eXBlIEN1YmVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkN1YmVcIl0gPSBcImN1YmVcIjtcbiAgICAvLyBEUElfQ3ViZXMsIGhhdmluZyB0eXBlIEN1YmVQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiQ3ViZXNcIl0gPSBcImN1YmVzXCI7XG4gICAgLy8gRFBJX0N1YmVFbnVtZXJhdGlvbiwgaGF2aW5nIHR5cGUgQ3ViZUVudW1lcmF0aW9uUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDdWJlRW51bWVyYXRpb25cIl0gPSBcImN1YmVFbnVtZXJhdGlvblwiO1xuICAgIC8vIERQSV9Hb29nbGVBbmFseXRpY3NCYXNpY0l0ZW0sIGhhdmluZyB0eXBlIEdvb2dsZUFuYWx5dGljc0Jhc2ljSXRlbVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiR29vZ2xlQW5hbHl0aWNzQmFzaWNJdGVtXCJdID0gXCJnb29nbGVBbmFseXRpY3NCYXNpY0l0ZW1cIjtcbiAgICAvLyBEUElfR0FNZWFzdXJlU2V0cywgaGF2aW5nIHR5cGUgR29vZ2xlQW5hbHl0aWNzQmFzaWNJdGVtUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkdBTWVhc3VyZVNldHNcIl0gPSBcImdhTWVhc3VyZVNldHNcIjtcbiAgICAvLyBEUElfR29vZ2xlQW5hbHl0aWNzVmlld3MsIGhhdmluZyB0eXBlIEdvb2dsZUFuYWx5dGljc0Jhc2ljSXRlbVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJHb29nbGVBbmFseXRpY3NWaWV3c1wiXSA9IFwiZ29vZ2xlQW5hbHl0aWNzVmlld3NcIjtcbiAgICAvLyBEUElfR29vZ2xlQW5hbHl0aWNzUHJvcGVydGllcywgaGF2aW5nIHR5cGUgR29vZ2xlQW5hbHl0aWNzQmFzaWNJdGVtUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkdvb2dsZUFuYWx5dGljc1Byb3BlcnRpZXNcIl0gPSBcImdvb2dsZUFuYWx5dGljc1Byb3BlcnRpZXNcIjtcbiAgICAvLyBEUElfR29vZ2xlQmFzaWNJbmZvSXRlbXMsIGhhdmluZyB0eXBlIEdvb2dsZUFuYWx5dGljc0Jhc2ljSXRlbVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJHb29nbGVCYXNpY0luZm9JdGVtc1wiXSA9IFwiZ29vZ2xlQW5hbHl0aWNzQWNjb3VudHNcIjtcbiAgICAvLyBEUElfR29vZ2xlQW5hbHl0aWNzQ29tcGxleEl0ZW0sIGhhdmluZyB0eXBlIEdvb2dsZUFuYWx5dGljc0NvbXBsZXhJdGVtUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJHb29nbGVBbmFseXRpY3NDb21wbGV4SXRlbVwiXSA9IFwiZ29vZ2xlQW5hbHl0aWNzQ29tcGxleEl0ZW1cIjtcbiAgICAvLyBEUElfR29vZ2xlQW5hbHl0aWNzUG9zc2libGVEaW1lbnNpb25zLCBoYXZpbmcgdHlwZSBHb29nbGVBbmFseXRpY3NDb21wbGV4SXRlbVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJHb29nbGVBbmFseXRpY3NQb3NzaWJsZURpbWVuc2lvbnNcIl0gPSBcImdvb2dsZUFuYWx5dGljc1Bvc3NpYmxlRGltZW5zaW9uc1wiO1xuICAgIC8vIERQSV9Hb29nbGVBbmFseXRpY3NQb3NzaWJsZU1lYXN1cmVzLCBoYXZpbmcgdHlwZSBHb29nbGVBbmFseXRpY3NDb21wbGV4SXRlbVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJHb29nbGVBbmFseXRpY3NQb3NzaWJsZU1lYXN1cmVzXCJdID0gXCJnb29nbGVBbmFseXRpY3NQb3NzaWJsZU1lYXN1cmVzXCI7XG4gICAgLy8gRFBJX0dvb2dsZUFuYWx5dGljc1Bvc3NpYmxlU2VnbWVudHMsIGhhdmluZyB0eXBlIEdvb2dsZUFuYWx5dGljc0NvbXBsZXhJdGVtUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkdvb2dsZUFuYWx5dGljc1Bvc3NpYmxlU2VnbWVudHNcIl0gPSBcImdvb2dsZUFuYWx5dGljc1Bvc3NpYmxlU2VnbWVudHNcIjtcbiAgICAvLyBEUElfR29vZ2xlQW5hbHl0aWNzU2VsZWN0ZWREaW1lbnNpb25zLCBoYXZpbmcgdHlwZSBHb29nbGVBbmFseXRpY3NDb21wbGV4SXRlbVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJHb29nbGVBbmFseXRpY3NTZWxlY3RlZERpbWVuc2lvbnNcIl0gPSBcImdvb2dsZUFuYWx5dGljc1NlbGVjdGVkRGltZW5zaW9uc1wiO1xuICAgIC8vIERQSV9Hb29nbGVBbmFseXRpY3NTZWxlY3RlZE1lYXN1cmVzLCBoYXZpbmcgdHlwZSBHb29nbGVBbmFseXRpY3NDb21wbGV4SXRlbVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJHb29nbGVBbmFseXRpY3NTZWxlY3RlZE1lYXN1cmVzXCJdID0gXCJnb29nbGVBbmFseXRpY3NTZWxlY3RlZE1lYXN1cmVzXCI7XG4gICAgLy8gRFBJX0dvb2dsZUFuYWx5dGljc0RhdGVSYW5nZU9wdGlvbiwgaGF2aW5nIHR5cGUgR29vZ2xlQW5hbHl0aWNzRGF0ZVJhbmdlT3B0aW9uUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJHb29nbGVBbmFseXRpY3NEYXRlUmFuZ2VPcHRpb25cIl0gPSBcImdvb2dsZUFuYWx5dGljc0RhdGVSYW5nZU9wdGlvblwiO1xuICAgIC8vIERQSV9Hb29nbGVBbmFseXRpY3NEYXRlUmFuZ2VPcHRpb25zLCBoYXZpbmcgdHlwZSBHb29nbGVBbmFseXRpY3NEYXRlUmFuZ2VPcHRpb25QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiR29vZ2xlQW5hbHl0aWNzRGF0ZVJhbmdlT3B0aW9uc1wiXSA9IFwiZ29vZ2xlQW5hbHl0aWNzRGF0ZVJhbmdlT3B0aW9uc1wiO1xuICAgIC8vIERQSV9Hb29nbGVBbmFseXRpY3NFbmREYXRlLCBoYXZpbmcgdHlwZSBHb29nbGVBbmFseXRpY3NEYXRlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJHb29nbGVBbmFseXRpY3NFbmREYXRlXCJdID0gXCJnb29nbGVBbmFseXRpY3NFbmREYXRlXCI7XG4gICAgLy8gRFBJX0dvb2dsZUFuYWx5dGljc1N0YXJ0RGF0ZSwgaGF2aW5nIHR5cGUgR29vZ2xlQW5hbHl0aWNzRGF0ZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiR29vZ2xlQW5hbHl0aWNzU3RhcnREYXRlXCJdID0gXCJnb29nbGVBbmFseXRpY3NTdGFydERhdGVcIjtcbiAgICAvLyBEUElfR29vZ2xlQW5hbHl0aWNzRGF0ZVJhbmdlLCBoYXZpbmcgdHlwZSBHb29nbGVBbmFseXRpY3NEYXRlUmFuZ2VQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkdvb2dsZUFuYWx5dGljc0RhdGVSYW5nZVwiXSA9IFwiZ29vZ2xlQW5hbHl0aWNzRGF0ZVJhbmdlXCI7XG4gICAgLy8gRFBJX0dvb2dsZUFuYWx5dGljc1F1ZXJ5UGFydGl0aW9uaW5nLCBoYXZpbmcgdHlwZSBHb29nbGVBbmFseXRpY3NRdWVyeVBhcnRpdGlvbmluZ1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiR29vZ2xlQW5hbHl0aWNzUXVlcnlQYXJ0aXRpb25pbmdcIl0gPSBcImdvb2dsZUFuYWx5dGljc1F1ZXJ5UGFydGl0aW9uaW5nXCI7XG4gICAgLy8gRFBJX0dBQ29ubmVjdGlvbkRlc2NyaXB0aW9uLCBoYXZpbmcgdHlwZSBHb29nbGVBbmFseXRpY3NDb25uZWN0aW9uRGVzY3JpcHRpb25QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkdBQ29ubmVjdGlvbkRlc2NyaXB0aW9uXCJdID0gXCJnYUNvbm5lY3Rpb25EZXNjcmlwdGlvblwiO1xuICAgIC8vIERQSV9Hb29nbGVTaGVldEl0ZW0sIGhhdmluZyB0eXBlIEdvb2dsZVNoZWV0SXRlbVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiR29vZ2xlU2hlZXRJdGVtXCJdID0gXCJnb29nbGVTaGVldEl0ZW1cIjtcbiAgICAvLyBEUElfR29vZ2xlU2hlZXRJdGVtcywgaGF2aW5nIHR5cGUgR29vZ2xlU2hlZXRJdGVtUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkdvb2dsZVNoZWV0SXRlbXNcIl0gPSBcImdvb2dsZVNoZWV0SXRlbXNcIjtcbiAgICAvLyBEUElfR29vZ2xlU2hlZXRzTGlzdFByZXNNb2RlbCwgaGF2aW5nIHR5cGUgR29vZ2xlU2hlZXRzTGlzdFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiR29vZ2xlU2hlZXRzTGlzdFByZXNNb2RlbFwiXSA9IFwiZ29vZ2xlU2hlZXRzTGlzdFwiO1xuICAgIC8vIERQSV9Hb29nbGVTaGVldFBhbmVQcmVzTW9kZWwsIGhhdmluZyB0eXBlIEdvb2dsZVNoZWV0UGFuZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiR29vZ2xlU2hlZXRQYW5lUHJlc01vZGVsXCJdID0gXCJnb29nbGVTaGVldFBhbmVcIjtcbiAgICAvLyBEUElfVGFibGVhdVNlcnZlckNvbm5lY3Rpb25EZXNjcmlwdGlvbiwgaGF2aW5nIHR5cGUgVGFibGVhdVNlcnZlckNvbm5lY3Rpb25EZXNjcmlwdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVGFibGVhdVNlcnZlckNvbm5lY3Rpb25EZXNjcmlwdGlvblwiXSA9IFwidGFibGVhdVNlcnZlckNvbm5lY3Rpb25EZXNjcmlwdGlvblwiO1xuICAgIC8vIERQSV9Jbml0aWFsU1FMUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBJbml0aWFsU1FMUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJJbml0aWFsU1FMUHJlc01vZGVsXCJdID0gXCJpbml0aWFsU3FsUHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX1F1ZXJ5QmFuZGluZ1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgUXVlcnlCYW5kaW5nUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJRdWVyeUJhbmRpbmdQcmVzTW9kZWxcIl0gPSBcInF1ZXJ5QmFuZGluZ1ByZXNNb2RlbFwiO1xuICAgIC8vIERQSV9TbG93TWV0YWRhdGEsIGhhdmluZyB0eXBlIFNsb3dNZXRhZGF0YVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU2xvd01ldGFkYXRhXCJdID0gXCJzbG93TWV0YWRhdGFcIjtcbiAgICAvLyBEUElfU2xvd01ldGFkYXRhU2NoZW1hU2VhcmNoUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBTbG93TWV0YWRhdGFTZWFyY2hQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlNsb3dNZXRhZGF0YVNjaGVtYVNlYXJjaFByZXNNb2RlbFwiXSA9IFwic2xvd01ldGFkYXRhU2NoZW1hU2VhcmNoXCI7XG4gICAgLy8gRFBJX1Nsb3dNZXRhZGF0YVRhYmxlU2VhcmNoUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBTbG93TWV0YWRhdGFTZWFyY2hQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlNsb3dNZXRhZGF0YVRhYmxlU2VhcmNoUHJlc01vZGVsXCJdID0gXCJzbG93TWV0YWRhdGFUYWJsZVNlYXJjaFwiO1xuICAgIC8vIERQSV9UYWJsZWF1U2VydmVyUHJvamVjdHNQcmVzTW9kZWwsIGhhdmluZyB0eXBlIFRhYmxlYXVTZXJ2ZXJQcm9qZWN0c1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVGFibGVhdVNlcnZlclByb2plY3RzUHJlc01vZGVsXCJdID0gXCJ0YWJsZWF1U2VydmVyUHJvamVjdHNQcmVzbW9kZWxcIjtcbiAgICAvLyBEUElfVGFibGVhdVNlcnZlckRhdGFTb3VyY2VQcmVzTW9kZWwsIGhhdmluZyB0eXBlIFRhYmxlYXVTZXJ2ZXJEYXRhU291cmNlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJUYWJsZWF1U2VydmVyRGF0YVNvdXJjZVByZXNNb2RlbFwiXSA9IFwidGFibGVhdVNlcnZlckRhdGFTb3VyY2VQcmVzbW9kZWxcIjtcbiAgICAvLyBEUElfVGFibGVhdVNlcnZlckRhdGFTb3VyY2VQcmVzTW9kZWxzLCBoYXZpbmcgdHlwZSBUYWJsZWF1U2VydmVyRGF0YVNvdXJjZVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJUYWJsZWF1U2VydmVyRGF0YVNvdXJjZVByZXNNb2RlbHNcIl0gPSBcInRhYmxlYXVTZXJ2ZXJEYXRhU291cmNlUHJlc21vZGVsc1wiO1xuICAgIC8vIERQSV9UYWJsZWF1U2VydmVyRGF0YVNvdXJjZXNQcmVzTW9kZWwsIGhhdmluZyB0eXBlIFRhYmxlYXVTZXJ2ZXJEYXRhU291cmNlc1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVGFibGVhdVNlcnZlckRhdGFTb3VyY2VzUHJlc01vZGVsXCJdID0gXCJ0YWJsZWF1U2VydmVyRGF0YVNvdXJjZXNQcmVzbW9kZWxcIjtcbiAgICAvLyBEUElfVGFibGVhdVNlcnZlckRhdGFQcmVzTW9kZWwsIGhhdmluZyB0eXBlIFRhYmxlYXVTZXJ2ZXJEYXRhUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJUYWJsZWF1U2VydmVyRGF0YVByZXNNb2RlbFwiXSA9IFwidGFibGVhdVNlcnZlckRhdGFQcmVzbW9kZWxcIjtcbiAgICAvLyBEUElfU3RvcmVkUHJvY2VkdXJlUGFyYW1ldGVyUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBTdG9yZWRQcm9jZWR1cmVQYXJhbWV0ZXJQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlN0b3JlZFByb2NlZHVyZVBhcmFtZXRlclByZXNNb2RlbFwiXSA9IFwic3RvcmVkUHJvY2VkdXJlUGFyYW1ldGVyXCI7XG4gICAgLy8gRFBJX1N0b3JlZFByb2NlZHVyZVBhcmFtZXRlcnNQcmVzTW9kZWwsIGhhdmluZyB0eXBlIFN0b3JlZFByb2NlZHVyZVBhcmFtZXRlclByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJTdG9yZWRQcm9jZWR1cmVQYXJhbWV0ZXJzUHJlc01vZGVsXCJdID0gXCJzdG9yZWRQcm9jZWR1cmVQYXJhbWV0ZXJzXCI7XG4gICAgLy8gRFBJX0N1c3RvbVNRTEluZm8sIGhhdmluZyB0eXBlIEN1c3RvbVNRTEluZm9QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkN1c3RvbVNRTEluZm9cIl0gPSBcImN1c3RvbVNxbEluZm9cIjtcbiAgICAvLyBEUElfQ29ubmVjdGlvblRhYmxlSW5mbywgaGF2aW5nIHR5cGUgQ29ubmVjdGlvblRhYmxlSW5mb1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ29ubmVjdGlvblRhYmxlSW5mb1wiXSA9IFwiY29ubmVjdGlvblRhYmxlSW5mb1wiO1xuICAgIC8vIERQSV9UYWJsZUluZm9zLCBoYXZpbmcgdHlwZSBDb25uZWN0aW9uVGFibGVJbmZvUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlRhYmxlSW5mb3NcIl0gPSBcInRhYmxlSW5mb3NcIjtcbiAgICAvLyBEUElfQ29ubmVjdGlvbkRlc2NyaXB0aW9uLCBoYXZpbmcgdHlwZSBDb25uZWN0aW9uRGVzY3JpcHRpb25QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbm5lY3Rpb25EZXNjcmlwdGlvblwiXSA9IFwiY29ubmVjdGlvbkRlc2NyaXB0aW9uXCI7XG4gICAgLy8gRFBJX0RhdGFTb3VyY2VQYXJzZXJWYWxpZGF0aW9uTW9kZSwgaGF2aW5nIHR5cGUgRGF0YVNvdXJjZVBhcnNlclZhbGlkYXRpb25Nb2RlXG4gICAgUGFyYW1ldGVySWRbXCJEYXRhU291cmNlUGFyc2VyVmFsaWRhdGlvbk1vZGVcIl0gPSBcImRhdGFTb3VyY2VQYXJzZXJWYWxpZGF0aW9uTW9kZVwiO1xuICAgIC8vIERQSV9PQXV0aENyZWRlbnRpYWxUeXBlSW5mbywgaGF2aW5nIHR5cGUgT0F1dGhDcmVkZW50aWFsVHlwZUluZm9QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIk9BdXRoQ3JlZGVudGlhbFR5cGVJbmZvXCJdID0gXCJvYXV0aENyZWRlbnRpYWxUeXBlSW5mb1wiO1xuICAgIC8vIERQSV9PQXV0aENyZWRlbnRpYWxUeXBlSW5mb3MsIGhhdmluZyB0eXBlIE9BdXRoQ3JlZGVudGlhbFR5cGVJbmZvUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIk9BdXRoQ3JlZGVudGlhbFR5cGVJbmZvc1wiXSA9IFwib2F1dGhDcmVkZW50aWFsVHlwZUluZm9zXCI7XG4gICAgLy8gRFBJX09BdXRoU2V0dGluZ3MsIGhhdmluZyB0eXBlIE9BdXRoU2V0dGluZ3NQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIk9BdXRoU2V0dGluZ3NcIl0gPSBcIm9hdXRoU2V0dGluZ3NcIjtcbiAgICAvLyBEUElfQ3JlZGVudGlhbFR5cGVQcm9wZXJ0aWVzRmxhZywgaGF2aW5nIHR5cGUgQ3JlZGVudGlhbFR5cGVQcm9wZXJ0aWVzRmxhZ1xuICAgIFBhcmFtZXRlcklkW1wiQ3JlZGVudGlhbFR5cGVQcm9wZXJ0aWVzRmxhZ1wiXSA9IFwiY3JlZGVudGlhbFR5cGVQcm9wZXJ0aWVzRmxhZ1wiO1xuICAgIC8vIERQSV9DcmVkZW50aWFsVHlwZVByb3BlcnRpZXNGbGFncywgaGF2aW5nIHR5cGUgQ3JlZGVudGlhbFR5cGVQcm9wZXJ0aWVzRmxhZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJDcmVkZW50aWFsVHlwZVByb3BlcnRpZXNGbGFnc1wiXSA9IFwiY3JlZGVudGlhbFR5cGVQcm9wZXJ0aWVzRmxhZ3NcIjtcbiAgICAvLyBEUElfQ29ubmVjdGlvblR5cGVFbnVtLCBoYXZpbmcgdHlwZSBDb25uZWN0aW9uVHlwZUVudW1cbiAgICBQYXJhbWV0ZXJJZFtcIkNvbm5lY3Rpb25UeXBlRW51bVwiXSA9IFwiY29ubmVjdGlvblR5cGVFbnVtXCI7XG4gICAgLy8gRFBJX0Nvbm5lY3RvclR5cGUsIGhhdmluZyB0eXBlIENvbm5lY3RvclR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbm5lY3RvclR5cGVcIl0gPSBcImNvbm5lY3RvclR5cGVcIjtcbiAgICAvLyBEUElfUGRmUGFnZVBpY2tlciwgaGF2aW5nIHR5cGUgUGRmUGFnZVBpY2tlclByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUGRmUGFnZVBpY2tlclwiXSA9IFwicGRmUGFnZVBpY2tlclwiO1xuICAgIC8vIERQSV9BY3RpdmF0ZU5ldywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQWN0aXZhdGVOZXdcIl0gPSBcImFjdGl2YXRlTmV3XCI7XG4gICAgLy8gRFBJX0FkZEFjdGlvbnMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkFkZEFjdGlvbnNcIl0gPSBcImFkZEFjdGlvbnNcIjtcbiAgICAvLyBEUElfQWRkQXNGbG9hdGluZywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQWRkQXNGbG9hdGluZ1wiXSA9IFwiYWRkQXNGbG9hdGluZ1wiO1xuICAgIC8vIERQSV9BZGRDb2xvckRpY3Rpb25hcnksIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkFkZENvbG9yRGljdGlvbmFyeVwiXSA9IFwiYWRkQ29sb3JEaWN0aW9uYXJ5XCI7XG4gICAgLy8gRFBJX0FkZERyb3BsaW5lcywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQWRkRHJvcGxpbmVzXCJdID0gXCJhZGREcm9wbGluZXNcIjtcbiAgICAvLyBEUElfQWRkSGVhZGVycywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQWRkSGVhZGVyc1wiXSA9IFwiYWRkSGVhZGVyc1wiO1xuICAgIC8vIERQSV9BZGRIaWdobGlnaHRpbmcsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkFkZEhpZ2hsaWdodGluZ1wiXSA9IFwiYWRkSGlnaGxpZ2h0aW5nXCI7XG4gICAgLy8gRFBJX0FkZEltYWdlRGljdGlvbmFyeSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQWRkSW1hZ2VEaWN0aW9uYXJ5XCJdID0gXCJhZGRJbWFnZURpY3Rpb25hcnlcIjtcbiAgICAvLyBEUElfQWRkTWFya0xhYmVscywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQWRkTWFya0xhYmVsc1wiXSA9IFwiYWRkTWFya0xhYmVsc1wiO1xuICAgIC8vIERQSV9BZGRQYWdlcywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQWRkUGFnZXNcIl0gPSBcImFkZFBhZ2VzXCI7XG4gICAgLy8gRFBJX0FkZFNlbGVjdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQWRkU2VsZWN0aW9uXCJdID0gXCJhZGRTZWxlY3Rpb25cIjtcbiAgICAvLyBEUElfQWRkVG9Gb2xkZXIsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkFkZFRvRm9sZGVyXCJdID0gXCJhZGRUb0ZvbGRlclwiO1xuICAgIC8vIERQSV9BZGRWaXpEYXRhLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJBZGRWaXpEYXRhXCJdID0gXCJhZGRWaXpEYXRhXCI7XG4gICAgLy8gRFBJX0FsZXJ0Q29uZGl0aW9uTWV0LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJBbGVydENvbmRpdGlvbk1ldFwiXSA9IFwiYWxlcnRDb25kaXRpb25NZXRcIjtcbiAgICAvLyBEUElfQWxsRmllbGRzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJBbGxGaWVsZHNcIl0gPSBcImFsbEZpZWxkc1wiO1xuICAgIC8vIERQSV9BbGxPbkVtcHR5LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJBbGxPbkVtcHR5XCJdID0gXCJhbGxPbkVtcHR5XCI7XG4gICAgLy8gRFBJX0FsbFBhZ2VzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJBbGxQYWdlc1wiXSA9IFwiaW5jbHVkZUFsbFBhZ2VzXCI7XG4gICAgLy8gRFBJX0FsbG93UHJldmlld1NpemVDaGFuZ2UsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkFsbG93UHJldmlld1NpemVDaGFuZ2VcIl0gPSBcImFsbG93UHJldmlld1NpemVDaGFuZ2VcIjtcbiAgICAvLyBEUElfQWxsU2VsZWN0ZWRJc0VmZmVjdGl2ZWx5UmFuZ2VUeXBlQWxsLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJBbGxTZWxlY3RlZElzRWZmZWN0aXZlbHlSYW5nZVR5cGVBbGxcIl0gPSBcImFsbFNlbGVjdGVkSXNFZmZlY3RpdmVseVJhbmdlVHlwZUFsbFwiO1xuICAgIC8vIERQSV9BbGxTdG9yeVBvaW50cywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQWxsU3RvcnlQb2ludHNcIl0gPSBcImFsbFN0b3J5cG9pbnRzXCI7XG4gICAgLy8gRFBJX0FsbG93QWxsUmFuZ2UsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkFsbG93QWxsUmFuZ2VcIl0gPSBcImFsbG93QWxsUmFuZ2VcIjtcbiAgICAvLyBEUElfQWxsb3dDcmVhdGluZ05ld1BhcmFtZXRlcnMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkFsbG93Q3JlYXRpbmdOZXdQYXJhbWV0ZXJzXCJdID0gXCJhbGxvd0NyZWF0aW5nTmV3UGFyYW1ldGVyc1wiO1xuICAgIC8vIERQSV9BbGxvd0R1cGxpY2F0ZUZpZWxkRHJvcE9uRmlsdGVyU2hlbGYsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkFsbG93RHVwbGljYXRlRmllbGREcm9wT25GaWx0ZXJTaGVsZlwiXSA9IFwiYWxsb3dEdXBsaWNhdGVGaWVsZERyb3BPbkZpbHRlclNoZWxmXCI7XG4gICAgLy8gRFBJX0FsbG93RmlsdGVyUHJlc2V0LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJBbGxvd0ZpbHRlclByZXNldFwiXSA9IFwiYWxsb3dGaWx0ZXJQcmVzZXRcIjtcbiAgICAvLyBEUElfQWxsb3dIb3ZlckFjdGlvbnMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkFsbG93SG92ZXJBY3Rpb25zXCJdID0gXCJhbGxvd0hvdmVyQWN0aW9uc1wiO1xuICAgIC8vIERQSV9BbGxvd0h5cGhlbmF0aW9uLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJBbGxvd0h5cGhlbmF0aW9uXCJdID0gXCJhbGxvd0h5cGhlbmF0aW9uXCI7XG4gICAgLy8gRFBJX0FsbG93Sm9pbk9uQ2FsYywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQWxsb3dKb2luT25DYWxjXCJdID0gXCJhbGxvd0pvaW5PbkNhbGNcIjtcbiAgICAvLyBEUElfQWxsb3dNYW51YWxSYW5nZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQWxsb3dNYW51YWxSYW5nZVwiXSA9IFwiYWxsb3dNYW51YWxSYW5nZVwiO1xuICAgIC8vIERQSV9BbGxvd01hcHBpbmcsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkFsbG93TWFwcGluZ1wiXSA9IFwiYWxsb3dNYXBwaW5nXCI7XG4gICAgLy8gRFBJX0FsbG93TXVsdGlTZWxlY3QsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkFsbG93TXVsdGlTZWxlY3RcIl0gPSBcImFsbG93TXVsdGlTZWxlY3RcIjtcbiAgICAvLyBEUElfQWxsb3dOdWxsLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJBbGxvd051bGxcIl0gPSBcImFsbG93TnVsbFwiO1xuICAgIC8vIERQSV9BbGxvd1Bhblpvb20sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkFsbG93UGFuWm9vbVwiXSA9IFwiYWxsb3dQYW5ab29tXCI7XG4gICAgLy8gRFBJX0FsbG93UGF0dGVybkJhc2VkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJBbGxvd1BhdHRlcm5CYXNlZFwiXSA9IFwiYWxsb3dQYXR0ZXJuQmFzZWRVbmlvblwiO1xuICAgIC8vIERQSV9BbGxvd1Byb21wdFRleHQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkFsbG93UHJvbXB0VGV4dFwiXSA9IFwiYWxsb3dQcm9tcHRUZXh0XCI7XG4gICAgLy8gRFBJX0FsbG93U2F2ZURhdGFTb3VyY2UsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkFsbG93U2F2ZURhdGFTb3VyY2VcIl0gPSBcImFsbG93U2F2ZURhdGFTb3VyY2VcIjtcbiAgICAvLyBEUElfQWxsb3dXaG9sZURhdGUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkFsbG93V2hvbGVEYXRlXCJdID0gXCJhbGxvd1dob2xlRGF0ZVwiO1xuICAgIC8vIERQSV9BbGxvd1dvcmssIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkFsbG93V29ya1wiXSA9IFwiYWxsb3dXb3JrXCI7XG4gICAgLy8gRFBJX0FsbG93V3JhcCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQWxsb3dXcmFwXCJdID0gXCJhbGxvd1dyYXBcIjtcbiAgICAvLyBEUElfQXBwSXMzMkJpdCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQXBwSXMzMkJpdFwiXSA9IFwiYXBwSXMzMkJpdFwiO1xuICAgIC8vIERQSV9BcHBJczY0Qml0LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJBcHBJczY0Qml0XCJdID0gXCJhcHBJczY0Qml0XCI7XG4gICAgLy8gRFBJX0FwcElzQmV0YSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQXBwSXNCZXRhXCJdID0gXCJhcHBJc0JldGFcIjtcbiAgICAvLyBEUElfQXBwSXNPRU0sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkFwcElzT0VNXCJdID0gXCJhcHBJc09lbVwiO1xuICAgIC8vIERQSV9BcHBlbmRUZGUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkFwcGVuZFRkZVwiXSA9IFwiYXBwZW5kVGRlXCI7XG4gICAgLy8gRFBJX0FwcGx5Q29sb3JzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJBcHBseUNvbG9yc1wiXSA9IFwiYXBwbHlDb2xvcnNcIjtcbiAgICAvLyBEUElfQXBwbHlOZXdTZWxlY3Rpb24sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkFwcGx5TmV3U2VsZWN0aW9uXCJdID0gXCJhcHBseU5ld1NlbGVjdGlvblwiO1xuICAgIC8vIERQSV9BcmVDb25maWRlbmNlQmFuZHNWYWxpZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQXJlQ29uZmlkZW5jZUJhbmRzVmFsaWRcIl0gPSBcImFyZUNvbmZpZGVuY2VCYW5kc1ZhbGlkXCI7XG4gICAgLy8gRFBJX0FyZURhdGFTb3VyY2VGaWx0ZXJzVmlzaWJsZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQXJlRGF0YVNvdXJjZUZpbHRlcnNWaXNpYmxlXCJdID0gXCJhcmVEYXRhU291cmNlRmlsdGVyc1Zpc2libGVcIjtcbiAgICAvLyBEUElfQXJlRXh0cmFjdEZpbHRlcnNFbmFibGVkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJBcmVFeHRyYWN0RmlsdGVyc0VuYWJsZWRcIl0gPSBcImFyZUV4dHJhY3RGaWx0ZXJzRW5hYmxlZFwiO1xuICAgIC8vIERQSV9BcmVUb3RhbHNVc2VkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJBcmVUb3RhbHNVc2VkXCJdID0gXCJhcmVUb3RhbHNVc2VkXCI7XG4gICAgLy8gRFBJX0F0VGhlTGV2ZWxGaWVsZElzSW52YWxpZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQXRUaGVMZXZlbEZpZWxkSXNJbnZhbGlkXCJdID0gXCJhdFRoZUxldmVsRmllbGRJc0ludmFsaWRcIjtcbiAgICAvLyBEUElfQXV0b1VSTCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQXV0b1VSTFwiXSA9IFwiYXV0b1VybFwiO1xuICAgIC8vIERQSV9BdXRvVXBkYXRlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJBdXRvVXBkYXRlXCJdID0gXCJhdXRvVXBkYXRlXCI7XG4gICAgLy8gRFBJX0JhY2tpbmdTaGVldElzRGFzaGJvYXJkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJCYWNraW5nU2hlZXRJc0Rhc2hib2FyZFwiXSA9IFwiaXNCYWNraW5nU2hlZXREYXNoYm9hcmRcIjtcbiAgICAvLyBEUElfQmVnaW5EYXRhU291cmNlUHJlc01vZGVsVXBkYXRlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJCZWdpbkRhdGFTb3VyY2VQcmVzTW9kZWxVcGRhdGVcIl0gPSBcImJlZ2luRGF0YVNvdXJjZVByZXNNb2RlbFVwZGF0ZVwiO1xuICAgIC8vIERQSV9BZ2dyZWdhdGVEcmlsbFVwLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJBZ2dyZWdhdGVEcmlsbFVwXCJdID0gXCJib29sQWdncmVnYXRlRHJpbGxVcFwiO1xuICAgIC8vIERQSV9Cb3hwbG90TWFya0V4Y2x1c2lvbiwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQm94cGxvdE1hcmtFeGNsdXNpb25cIl0gPSBcImJveHBsb3RNYXJrRXhjbHVzaW9uXCI7XG4gICAgLy8gRFBJX0JyZWFrUGFnZU9uUGFuZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQnJlYWtQYWdlT25QYW5lXCJdID0gXCJicmVha1BhZ2VPblBhbmVcIjtcbiAgICAvLyBEUElfQnJ1c2hMZWdlbmRzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJCcnVzaExlZ2VuZHNcIl0gPSBcImJydXNoTGVnZW5kc1wiO1xuICAgIC8vIERQSV9DYWNoZVByZXNNb2RlbHMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkNhY2hlUHJlc01vZGVsc1wiXSA9IFwiY2FjaGVQcmVzTW9kZWxzXCI7XG4gICAgLy8gRFBJX0NhbkFkZENvbm5lY3Rpb25zLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJDYW5BZGRDb25uZWN0aW9uc1wiXSA9IFwiY2FuQWRkQ29ubmVjdGlvbnNcIjtcbiAgICAvLyBEUElfU29ydFBpbGxDYW5CZURyYWdnZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNvcnRQaWxsQ2FuQmVEcmFnZ2VkXCJdID0gXCJzb3J0UGlsbENhbkJlRHJhZ2dlZFwiO1xuICAgIC8vIERQSV9DYW5BZGRUYWJsZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQ2FuQWRkVGFibGVcIl0gPSBcImNhbkFkZFRhYmxlXCI7XG4gICAgLy8gRFBJX0NhbkFuYWx5emVEYXRhLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJDYW5BbmFseXplRGF0YVwiXSA9IFwiY2FuQW5hbHl6ZURhdGFcIjtcbiAgICAvLyBEUElfQ2FuQ2hhbmdlRGF0YVR5cGUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkNhbkNoYW5nZURhdGFUeXBlXCJdID0gXCJjYW5DaGFuZ2VEYXRhVHlwZVwiO1xuICAgIC8vIERQSV9DYW5DaGFuZ2VTZW1hbnRpY1JvbGUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkNhbkNoYW5nZVNlbWFudGljUm9sZVwiXSA9IFwiY2FuQ2hhbmdlU2VtYW50aWNSb2xlXCI7XG4gICAgLy8gRFBJX0NhbkRlcml2ZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQ2FuRGVyaXZlXCJdID0gXCJjYW5EZXJpdmVcIjtcbiAgICAvLyBEUElfQ2FuRHJvcCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQ2FuRHJvcFwiXSA9IFwiY2FuRHJvcFwiO1xuICAgIC8vIERQSV9DYW5FZGl0LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJDYW5FZGl0XCJdID0gXCJjYW5FZGl0XCI7XG4gICAgLy8gRFBJX0NhbkVkaXRMZWdlbmRDb2xvciwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQ2FuRWRpdExlZ2VuZENvbG9yXCJdID0gXCJjYW5FZGl0TGVnZW5kQ29sb3JcIjtcbiAgICAvLyBEUElfQ2FuRW5hYmxlQ2VudGVyLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJDYW5FbmFibGVDZW50ZXJcIl0gPSBcImNhbkVuYWJsZUNlbnRlclwiO1xuICAgIC8vIERQSV9DYW5TaG93QWR2YW5jZWRTZXR0aW5ncywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQ2FuU2hvd0FkdmFuY2VkU2V0dGluZ3NcIl0gPSBcImNhblNob3dBZHZhbmNlZFNldHRpbmdzXCI7XG4gICAgLy8gRFBJX0NhbkVuYWJsZUZpbHRlclN0YXRlQnV0dG9uLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJDYW5FbmFibGVGaWx0ZXJTdGF0ZUJ1dHRvblwiXSA9IFwiY2FuRW5hYmxlRmlsdGVyU3RhdGVCdXR0b25cIjtcbiAgICAvLyBEUElfQ2FuRmxvYXQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkNhbkZsb2F0XCJdID0gXCJjYW5GbG9hdFwiO1xuICAgIC8vIERQSV9DYW5IYXZlVGl0bGUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkNhbkhhdmVUaXRsZVwiXSA9IFwiY2FuSGF2ZVRpdGxlXCI7XG4gICAgLy8gRFBJX0Nhbklnbm9yZVVwZGF0ZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQ2FuSWdub3JlVXBkYXRlXCJdID0gXCJjYW5JZ25vcmVVcGRhdGVcIjtcbiAgICAvLyBEUElfQ2FuTmF2aWdhdGVCYWNrLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJDYW5OYXZpZ2F0ZUJhY2tcIl0gPSBcImNhbk5hdmlnYXRlQmFja1wiO1xuICAgIC8vIERQSV9DYW5OYXZpZ2F0ZUZvcndhcmQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkNhbk5hdmlnYXRlRm9yd2FyZFwiXSA9IFwiY2FuTmF2aWdhdGVGb3J3YXJkXCI7XG4gICAgLy8gRFBJX0NhblNjcm9sbFgsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkNhblNjcm9sbFhcIl0gPSBcImNhblNjcm9sbFhcIjtcbiAgICAvLyBEUElfQ2FuU2Nyb2xsWSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQ2FuU2Nyb2xsWVwiXSA9IFwiY2FuU2Nyb2xsWVwiO1xuICAgIC8vIERQSV9DYW5TZXREb21haW4sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkNhblNldERvbWFpblwiXSA9IFwiY2FuU2V0RG9tYWluXCI7XG4gICAgLy8gRFBJX0NhblNldE1hcFVuaXQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkNhblNldE1hcFVuaXRcIl0gPSBcImNhblNldE1hcFVuaXRcIjtcbiAgICAvLyBEUElfQ2FuU2hvd0FwcGx5QnV0dG9uLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJDYW5TaG93QXBwbHlCdXR0b25cIl0gPSBcImNhblNob3dBcHBseUJ1dHRvblwiO1xuICAgIC8vIERQSV9DYW5TaG93RmlsdGVyU3RhdGVCdXR0b24sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkNhblNob3dGaWx0ZXJTdGF0ZUJ1dHRvblwiXSA9IFwiY2FuU2hvd0ZpbHRlclN0YXRlQnV0dG9uXCI7XG4gICAgLy8gRFBJX0NhblNob3dNb3JlRmV3ZXJCdXR0b24sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkNhblNob3dNb3JlRmV3ZXJCdXR0b25cIl0gPSBcImNhblNob3dNb3JlRmV3ZXJCdXR0b25cIjtcbiAgICAvLyBEUElfQ2FuU2hvd1N5bmNDbGllbnRPcHRpb25zLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJDYW5TaG93U3luY0NsaWVudE9wdGlvbnNcIl0gPSBcImNhblNob3dTeW5jQ2xpZW50T3B0aW9uc1wiO1xuICAgIC8vIERQSV9DYW5Tb3J0LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJDYW5Tb3J0XCJdID0gXCJjYW5Tb3J0XCI7XG4gICAgLy8gRFBJX0NhblNvcnRPcmRpbmFsbHksIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkNhblNvcnRPcmRpbmFsbHlcIl0gPSBcImNhblNvcnRPcmRpbmFsXCI7XG4gICAgLy8gRFBJX0NhblRvZ2dsZUF1dG9tYXRpY0RyaWxsLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJDYW5Ub2dnbGVBdXRvbWF0aWNEcmlsbFwiXSA9IFwiY2FuVG9nZ2xlQXV0b21hdGljRHJpbGxcIjtcbiAgICAvLyBEUElfQ2FuVG9nZ2xlR2VvZ3JhcGhpY1NlYXJjaCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQ2FuVG9nZ2xlR2VvZ3JhcGhpY1NlYXJjaFwiXSA9IFwiY2FuVG9nZ2xlR2VvZ3JhcGhpY1NlYXJjaFwiO1xuICAgIC8vIERQSV9DYW5Ub2dnbGVNYXBTY2FsZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQ2FuVG9nZ2xlTWFwU2NhbGVcIl0gPSBcImNhblRvZ2dsZU1hcFNjYWxlXCI7XG4gICAgLy8gRFBJX0NhblVzZUZ1bGxDb2xvclJhbmdlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJDYW5Vc2VGdWxsQ29sb3JSYW5nZVwiXSA9IFwiY2FuVXNlRnVsbENvbG9yUmFuZ2VcIjtcbiAgICAvLyBEUElfQ2FuQWRkVG9EcmlsbFBhdGgsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkNhbkFkZFRvRHJpbGxQYXRoXCJdID0gXCJjYW5BZGRUb0RyaWxsUGF0aFwiO1xuICAgIC8vIERQSV9DZW50ZXJIb3Jpem9udGFsbHksIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkNlbnRlckhvcml6b250YWxseVwiXSA9IFwiY2VudGVySG9yaXpvbnRhbGx5XCI7XG4gICAgLy8gRFBJX0NlbnRlclZlcnRpY2FsbHksIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkNlbnRlclZlcnRpY2FsbHlcIl0gPSBcImNlbnRlclZlcnRpY2FsbHlcIjtcbiAgICAvLyBEUElfQ2hhbmdlQWxsRmllbGRzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJDaGFuZ2VBbGxGaWVsZHNcIl0gPSBcImNoYW5nZUFsbEZpZWxkc1wiO1xuICAgIC8vIERQSV9DaGFuZ2VkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJDaGFuZ2VkXCJdID0gXCJjaGFuZ2VkXCI7XG4gICAgLy8gRFBJX0NsZWFyQnJ1c2hpbmcsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkNsZWFyQnJ1c2hpbmdcIl0gPSBcImNsZWFyQnJ1c2hpbmdcIjtcbiAgICAvLyBEUElfQ2xlYXJTb3J0LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJDbGVhclNvcnRcIl0gPSBcImNsZWFyU29ydFwiO1xuICAgIC8vIERQSV9DbGVhclZpZXcsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkNsZWFyVmlld1wiXSA9IFwiY2xlYXJWaWV3XCI7XG4gICAgLy8gRFBJX0NvbGxhcHNlZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQ29sbGFwc2VkXCJdID0gXCJjb2xsYXBzZWRcIjtcbiAgICAvLyBEUElfQ29uc29saWRhdGVJbkNvbW1pdCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQ29uc29saWRhdGVJbkNvbW1pdFwiXSA9IFwiY29uc29saWRhdGVJbkNvbW1pdFwiO1xuICAgIC8vIERQSV9DbHVzdGVyRW5hYmxlU2NhbGVkQ2hlY2tib3gsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkNsdXN0ZXJFbmFibGVTY2FsZWRDaGVja2JveFwiXSA9IFwiY2x1c3RlckVuYWJsZVNjYWxlZENoZWNrYm94XCI7XG4gICAgLy8gRFBJX0NvbW1pdFBpbGxGaW5pc2hlZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQ29tbWl0UGlsbEZpbmlzaGVkXCJdID0gXCJjb21taXRQaWxsRmluaXNoZWRcIjtcbiAgICAvLyBEUElfQ29tcHJlc3NBcnJheXMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbXByZXNzQXJyYXlzXCJdID0gXCJjb21wcmVzc0FycmF5c1wiO1xuICAgIC8vIERQSV9Db21wdXRlQ29tcG91bmRlZFJhdGUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbXB1dGVDb21wb3VuZGVkUmF0ZVwiXSA9IFwiY29tcHV0ZUNvbXBvdW5kZWRSYXRlXCI7XG4gICAgLy8gRFBJX0NvbmZpZGVuY2VJbnRlcnZhbEFsbG93ZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbmZpZGVuY2VJbnRlcnZhbEFsbG93ZWRcIl0gPSBcImNvbmZpZGVuY2VJbnRlcnZhbEFsbG93ZWRcIjtcbiAgICAvLyBEUElfQ29uZmlnSXNEZXNrdG9wU3RhbmRhcmQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbmZpZ0lzRGVza3RvcFN0YW5kYXJkXCJdID0gXCJjb25maWdJc0Rlc2t0b3BTdGFuZGFyZFwiO1xuICAgIC8vIERQSV9Db25maWdJc0ludGVyYWN0b3IsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbmZpZ0lzSW50ZXJhY3RvclwiXSA9IFwiY29uZmlnSXNJbnRlcmFjdG9yXCI7XG4gICAgLy8gRFBJX0NvbmZpZ0lzUHVibGljLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJDb25maWdJc1B1YmxpY1wiXSA9IFwiY29uZmlnSXNQdWJsaWNcIjtcbiAgICAvLyBEUElfQ29uZmlnSXNSZWFkZXIsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbmZpZ0lzUmVhZGVyXCJdID0gXCJjb25maWdJc1JlYWRlclwiO1xuICAgIC8vIERQSV9Db250YWluc1F1YW50LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJDb250YWluc1F1YW50XCJdID0gXCJjb250YWluc1F1YW50XCI7XG4gICAgLy8gRFBJX0NvbnRhaW5zVmFsaWREYXRhc291cmNlcywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQ29udGFpbnNWYWxpZERhdGFzb3VyY2VzXCJdID0gXCJjb250YWluc1ZhbGlkRGF0YXNvdXJjZXNcIjtcbiAgICAvLyBEUElfQ29udHJvbGxlck1pc3NpbmcsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbnRyb2xsZXJNaXNzaW5nXCJdID0gXCJjb250cm9sbGVyTWlzc2luZ1wiO1xuICAgIC8vIERQSV9DcmVhdGVFeHRyYWN0Rm9yUHVibGlzaCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQ3JlYXRlRXh0cmFjdEZvclB1Ymxpc2hcIl0gPSBcImNyZWF0ZUV4dHJhY3RGb3JQdWJsaXNoXCI7XG4gICAgLy8gRFBJX0Nyb3NzVGFiLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJDcm9zc1RhYlwiXSA9IFwiY3Jvc3NUYWJcIjtcbiAgICAvLyBEUElfQ3VsbExhYmVscywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQ3VsbExhYmVsc1wiXSA9IFwiY3VsbExhYmVsc1wiO1xuICAgIC8vIERQSV9DdXJyZW50Q3VzdFZpZXdJZEZsYWcsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkN1cnJlbnRDdXN0Vmlld0lkRmxhZ1wiXSA9IFwiaXNDdXJyZW50Q3VzdFZpZXdJZFZhbGlkXCI7XG4gICAgLy8gRFBJX0Rhc2hib2FyZEVuYWJsZVNuYXAsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkRhc2hib2FyZEVuYWJsZVNuYXBcIl0gPSBcImRhc2hib2FyZEVuYWJsZVNuYXBcIjtcbiAgICAvLyBEUElfRGFzaGJvYXJkU2hvd0dyaWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkRhc2hib2FyZFNob3dHcmlkXCJdID0gXCJkYXNoYm9hcmRTaG93R3JpZFwiO1xuICAgIC8vIERQSV9EYXRhR3JpZFNvcnRPcmRlciwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRGF0YUdyaWRTb3J0T3JkZXJcIl0gPSBcImRhdGFncmlkU29ydE9yZGVyXCI7XG4gICAgLy8gRFBJX0RlbGV0ZUV4dHJhY3QsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkRlbGV0ZUV4dHJhY3RcIl0gPSBcImRlbGV0ZUV4dHJhY3RcIjtcbiAgICAvLyBEUElfRGVsZXRlT25seVNwZWNpZmllZFNlbGVjdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRGVsZXRlT25seVNwZWNpZmllZFNlbGVjdGlvblwiXSA9IFwiZGVsZXRlT25seVNwZWNpZmllZFNlbGVjdGlvblwiO1xuICAgIC8vIERQSV9EZWxldGVPcnBoYW5zLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJEZWxldGVPcnBoYW5zXCJdID0gXCJkZWxldGVPcnBoYW5zXCI7XG4gICAgLy8gRFBJX0Rpc2FibGVkRGF0YUNvbm5lY3Rpb25DbGFzc05hbWVzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJEaXNhYmxlZERhdGFDb25uZWN0aW9uQ2xhc3NOYW1lc1wiXSA9IFwiZGlzYWJsZWREYXRhQ29ubmVjdGlvbkNsYXNzTmFtZXNcIjtcbiAgICAvLyBEUElfRGlzYWJsZVByZXNNb2RlbEhhbmRsZXIsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkRpc2FibGVQcmVzTW9kZWxIYW5kbGVyXCJdID0gXCJkaXNhYmxlUHJlc01vZGVsSGFuZGxlclwiO1xuICAgIC8vIERQSV9EaXNwbGF5RGF0ZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRGlzcGxheURhdGVcIl0gPSBcImRpc3BsYXlEYXRlXCI7XG4gICAgLy8gRFBJX0Rpc3BsYXlUaW1lLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJEaXNwbGF5VGltZVwiXSA9IFwiZGlzcGxheVRpbWVcIjtcbiAgICAvLyBEUElfRG9Ecm9wVUlBY3Rpb24sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkRvRHJvcFVJQWN0aW9uXCJdID0gXCJkb0Ryb3BVaUFjdGlvblwiO1xuICAgIC8vIERQSV9Eb01lcmdlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJEb01lcmdlXCJdID0gXCJkb01lcmdlXCI7XG4gICAgLy8gRFBJX0RvUHJlRHJvcFVJQWN0aW9uLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJEb1ByZURyb3BVSUFjdGlvblwiXSA9IFwiZG9QcmVEcm9wVWlBY3Rpb25cIjtcbiAgICAvLyBEUElfRG9RdWVyeSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRG9RdWVyeVwiXSA9IFwiZG9RdWVyeVwiO1xuICAgIC8vIERQSV9EcmFnSG9yeiwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRHJhZ0hvcnpcIl0gPSBcImRyYWdIb3J6XCI7XG4gICAgLy8gRFBJX0RyaWxsRG93biwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRHJpbGxEb3duXCJdID0gXCJkcmlsbERvd25cIjtcbiAgICAvLyBEUElfRHJvcFRvWEF4aXMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkRyb3BUb1hBeGlzXCJdID0gXCJkcm9wVG9YQXhpc1wiO1xuICAgIC8vIERQSV9Ecm9wVG9ZQXhpcywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRHJvcFRvWUF4aXNcIl0gPSBcImRyb3BUb1lBeGlzXCI7XG4gICAgLy8gRFBJX0Ryb3BVbm5hbWVkRmllbGRzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJEcm9wVW5uYW1lZEZpZWxkc1wiXSA9IFwiZHJvcFVubmFtZWRGaWVsZHNcIjtcbiAgICAvLyBEUElfRWRpdEV4aXN0aW5nLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJFZGl0RXhpc3RpbmdcIl0gPSBcImVkaXRFeGlzdGluZ1wiO1xuICAgIC8vIERQSV9FZGl0aW5nQ29ubmVjdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRWRpdGluZ0Nvbm5lY3Rpb25cIl0gPSBcImVkaXRpbmdDb25uZWN0aW9uXCI7XG4gICAgLy8gRFBJX0VtYmVkQ3JlZGVudGlhbHMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkVtYmVkQ3JlZGVudGlhbHNcIl0gPSBcImVtYmVkQ3JlZGVudGlhbHNcIjtcbiAgICAvLyBEUElfRW1iZWRPQXV0aENyZWRlbnRpYWwsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkVtYmVkT0F1dGhDcmVkZW50aWFsXCJdID0gXCJlbWJlZE9hdXRoQ3JlZGVudGlhbHNcIjtcbiAgICAvLyBEUElfRW1wdHlIaWdobGlnaHRGb2dBbGwsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkVtcHR5SGlnaGxpZ2h0Rm9nQWxsXCJdID0gXCJlbXB0eUhpZ2hsaWdodEZvZ0FsbFwiO1xuICAgIC8vIERQSV9FbmFibGVBbHBoYWJldGljU29ydCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRW5hYmxlQWxwaGFiZXRpY1NvcnRcIl0gPSBcImVuYWJsZUFscGhhYmV0aWNTb3J0XCI7XG4gICAgLy8gRFBJX0VuYWJsZUF1dG9tYXRpY0RyaWxsLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJFbmFibGVBdXRvbWF0aWNEcmlsbFwiXSA9IFwiZW5hYmxlQXV0b21hdGljRHJpbGxcIjtcbiAgICAvLyBEUElfRW5hYmxlQ29uZmlkZW5jZUJhbmRzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJFbmFibGVDb25maWRlbmNlQmFuZHNcIl0gPSBcImVuYWJsZUNvbmZpZGVuY2VCYW5kc1wiO1xuICAgIC8vIERQSV9FbmFibGVEYXRhT3JkZXJTb3J0LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJFbmFibGVEYXRhT3JkZXJTb3J0XCJdID0gXCJlbmFibGVEYXRhT3JkZXJTb3J0XCI7XG4gICAgLy8gRFBJX0VuYWJsZUZpZWxkU29ydCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRW5hYmxlRmllbGRTb3J0XCJdID0gXCJlbmFibGVGaWVsZFNvcnRcIjtcbiAgICAvLyBEUElfRW5hYmxlSW5zdGFudEFuYWx5dGljcywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRW5hYmxlSW5zdGFudEFuYWx5dGljc1wiXSA9IFwiZW5hYmxlSW5zdGFudEFuYWx5dGljc1wiO1xuICAgIC8vIERQSV9FbmFibGVMaW5lcywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRW5hYmxlTGluZXNcIl0gPSBcImVuYWJsZUxpbmVzXCI7XG4gICAgLy8gRFBJX0VuYWJsZU1hbnVhbFNvcnQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkVuYWJsZU1hbnVhbFNvcnRcIl0gPSBcImVuYWJsZU1hbnVhbFNvcnRcIjtcbiAgICAvLyBEUElfRW5hYmxlTWFya3MsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkVuYWJsZU1hcmtzXCJdID0gXCJlbmFibGVNYXJrc1wiO1xuICAgIC8vIERQSV9FbmFibGVNdWx0aXBsZVNlbGVjdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRW5hYmxlTXVsdGlwbGVTZWxlY3Rpb25cIl0gPSBcImVuYWJsZU11bHRpcGxlU2VsZWN0aW9uXCI7XG4gICAgLy8gRFBJX0VuYWJsZVByZWZldGNoaW5nLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJFbmFibGVQcmVmZXRjaGluZ1wiXSA9IFwiZW5hYmxlUHJlZmV0Y2hpbmdcIjtcbiAgICAvLyBEUElfRW5hYmxlVGFibGVDYWxjRGVuc2lmaWNhdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRW5hYmxlVGFibGVDYWxjRGVuc2lmaWNhdGlvblwiXSA9IFwiZW5hYmxlVGFibGVDYWxjRGVuc2lmaWNhdGlvblwiO1xuICAgIC8vIERQSV9FbmFibGVUb29sdGlwcywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRW5hYmxlVG9vbHRpcHNcIl0gPSBcImVuYWJsZVRvb2x0aXBzXCI7XG4gICAgLy8gRFBJX0VuZERhdGFTb3VyY2VQcmVzTW9kZWxVcGRhdGUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkVuZERhdGFTb3VyY2VQcmVzTW9kZWxVcGRhdGVcIl0gPSBcImVuZERhdGFTb3VyY2VQcmVzTW9kZWxVcGRhdGVcIjtcbiAgICAvLyBEUElfRXN0aW1hdGVOdWxscywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRXN0aW1hdGVOdWxsc1wiXSA9IFwiZXN0aW1hdGVOdWxsc1wiO1xuICAgIC8vIERQSV9FeGNsdWRlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJFeGNsdWRlXCJdID0gXCJleGNsdWRlXCI7XG4gICAgLy8gRFBJX0V4Y2x1ZGVDb2xvciwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRXhjbHVkZUNvbG9yXCJdID0gXCJleGNsdWRlQ29sb3JcIjtcbiAgICAvLyBEUElfRXhjbHVkZUN1YmVEZW5vcm0sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkV4Y2x1ZGVDdWJlRGVub3JtXCJdID0gXCJleGNsdWRlQ3ViZURlbm9ybVwiO1xuICAgIC8vIERQSV9FeGNsdWRlSW50ZXJjZXB0RW5hYmxlZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRXhjbHVkZUludGVyY2VwdEVuYWJsZWRcIl0gPSBcImV4Y2x1ZGVJbnRlcmNlcHRFbmFibGVkXCI7XG4gICAgLy8gRFBJX0V4Y2x1ZGVMb2NhbEZ1bmN0aW9ucywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRXhjbHVkZUxvY2FsRnVuY3Rpb25zXCJdID0gXCJleGNsdWRlTG9jYWxGdW5jdGlvbnNcIjtcbiAgICAvLyBEUElfRXhwb3J0RGFzaGJvYXJkSW1hZ2VGcm9tU2hlZXQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkV4cG9ydERhc2hib2FyZEltYWdlRnJvbVNoZWV0XCJdID0gXCJleHBvcnRJbWFnZVNoZWV0QXNEYXNoYm9hcmRcIjtcbiAgICAvLyBEUElfRXh0U3ZjQ29uZmlnSXNBdXRoRW5hYmxlZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRXh0U3ZjQ29uZmlnSXNBdXRoRW5hYmxlZFwiXSA9IFwiZXh0U3ZjQ29uZmlnSXNBdXRoRW5hYmxlZFwiO1xuICAgIC8vIERQSV9FeHRyYWN0RnVsbFJlZnJlc2gsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkV4dHJhY3RGdWxsUmVmcmVzaFwiXSA9IFwiZXh0cmFjdEZ1bGxSZWZyZXNoXCI7XG4gICAgLy8gRFBJX0V4dHJhY3ROZWVkc1JlZnJlc2gsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkV4dHJhY3ROZWVkc1JlZnJlc2hcIl0gPSBcImV4dHJhY3ROZWVkc1JlZnJlc2hcIjtcbiAgICAvLyBEUElfRXh0cmFjdFBlbmRpbmcsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkV4dHJhY3RQZW5kaW5nXCJdID0gXCJleHRyYWN0UGVuZGluZ1wiO1xuICAgIC8vIERQSV9FeHRyYWN0U2VsZWN0ZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkV4dHJhY3RTZWxlY3RlZFwiXSA9IFwiZXh0cmFjdFNlbGVjdGVkXCI7XG4gICAgLy8gRFBJX0ZlZGVyYXRhYmxlT25seSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRmVkZXJhdGFibGVPbmx5XCJdID0gXCJmZWRlcmF0YWJsZU9ubHlcIjtcbiAgICAvLyBEUElfRmllbGRTb3J0T3JkZXIsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkZpZWxkU29ydE9yZGVyXCJdID0gXCJmaWVsZFNvcnRPcmRlclwiO1xuICAgIC8vIERQSV9GaWVsZFN1cHBvcnRzQ29udGFpbnMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkZpZWxkU3VwcG9ydHNDb250YWluc1wiXSA9IFwiZmllbGRTdXBwb3J0c0NvbnRhaW5zXCI7XG4gICAgLy8gRFBJX0ZpZWxkU3VwcG9ydHNFbmRzV2l0aCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRmllbGRTdXBwb3J0c0VuZHNXaXRoXCJdID0gXCJmaWVsZFN1cHBvcnRzRW5kc1dpdGhcIjtcbiAgICAvLyBEUElfRmllbGRTdXBwb3J0c1N0YXJ0c1dpdGgsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkZpZWxkU3VwcG9ydHNTdGFydHNXaXRoXCJdID0gXCJmaWVsZFN1cHBvcnRzU3RhcnRzV2l0aFwiO1xuICAgIC8vIERQSV9GaWxsQWJvdmUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkZpbGxBYm92ZVwiXSA9IFwiZmlsbEFib3ZlXCI7XG4gICAgLy8gRFBJX0ZpbGxCZWxvdywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRmlsbEJlbG93XCJdID0gXCJmaWxsQmVsb3dcIjtcbiAgICAvLyBEUElfRmlsbFdpdGhaZXJvZXMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkZpbGxXaXRoWmVyb2VzXCJdID0gXCJmaWxsWmVyb2VzXCI7XG4gICAgLy8gRFBJX0ZpbHRlcklzTmFtZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkZpbHRlcklzTmFtZWRcIl0gPSBcImZpbHRlcklzTmFtZWRcIjtcbiAgICAvLyBEUElfRm9jdXMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkZvY3VzXCJdID0gXCJmb2N1c1wiO1xuICAgIC8vIERQSV9Gb3JJbnRlcm5hbFVzZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRm9ySW50ZXJuYWxVc2VcIl0gPSBcImludGVybmFsVXNlXCI7XG4gICAgLy8gRFBJX0ZvcmNlQnJvd3NlclJlbmRlcmluZywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRm9yY2VCcm93c2VyUmVuZGVyaW5nXCJdID0gXCJmb3JjZUJyb3dzZXJSZW5kZXJpbmdcIjtcbiAgICAvLyBEUElfRm9yY2VDYWNoZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRm9yY2VDYWNoZVwiXSA9IFwiZm9yY2VDYWNoZVwiO1xuICAgIC8vIERQSV9Gb3JjZUNvbG9yRnJvbUFwcCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRm9yY2VDb2xvckZyb21BcHBcIl0gPSBcImZvcmNlQ29sb3JGcm9tQXBwXCI7XG4gICAgLy8gRFBJX0ZvcmNlQ29ubmVjdGlvbkF0dGVtcHQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkZvcmNlQ29ubmVjdGlvbkF0dGVtcHRcIl0gPSBcImZvcmNlQ29ubmVjdGlvbkF0dGVtcHRcIjtcbiAgICAvLyBEUElfRm9yY2VDb25zb2xpZGF0ZUluQ29tbWl0LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJGb3JjZUNvbnNvbGlkYXRlSW5Db21taXRcIl0gPSBcImZvcmNlQ29uc29saWRhdGVJbkNvbW1pdFwiO1xuICAgIC8vIERQSV9Gb3JjZUV4dHJhY3RSZWZyZXNoLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJGb3JjZUV4dHJhY3RSZWZyZXNoXCJdID0gXCJleHRyYWN0Rm9yY2VSZWZyZXNoXCI7XG4gICAgLy8gRFBJX0ZvcmNlSW50ZXJjZXB0WmVybywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRm9yY2VJbnRlcmNlcHRaZXJvXCJdID0gXCJmb3JjZUludGVyY2VwdFplcm9cIjtcbiAgICAvLyBEUElfRm9yY2VPbGRDb25uZWN0RXhwZXJpZW5jZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRm9yY2VPbGRDb25uZWN0RXhwZXJpZW5jZVwiXSA9IFwiZm9yY2VPbGRDb25uZWN0RXhwZXJpZW5jZVwiO1xuICAgIC8vIERQSV9Gb3JjZVRvZ2dsZUhpZ2hsaWdodFN0YXRlT24sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkZvcmNlVG9nZ2xlSGlnaGxpZ2h0U3RhdGVPblwiXSA9IFwiZm9yY2VIaWdobGlnaHRPblwiO1xuICAgIC8vIERQSV9Gb3JjZVdob2xlRGF0ZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRm9yY2VXaG9sZURhdGVcIl0gPSBcImZvcmNlV2hvbGVEYXRlXCI7XG4gICAgLy8gRFBJX0ZvcmVjYXN0U2VsZWN0ZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkZvcmVjYXN0U2VsZWN0ZWRcIl0gPSBcImZvcmVjYXN0U2VsZWN0ZWRcIjtcbiAgICAvLyBEUElfRm9yZWNhc3RVc2VBdXRvQWdnLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJGb3JlY2FzdFVzZUF1dG9BZ2dcIl0gPSBcImZvcmVjYXN0VXNlQXV0b1N1bW1hcml6ZVwiO1xuICAgIC8vIERQSV9Gb3JKb2luLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJGb3JKb2luXCJdID0gXCJmb3JKb2luXCI7XG4gICAgLy8gRFBJX0Zvcm1hdERhdGFWYWx1ZUxvY2FsbHksIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkZvcm1hdERhdGFWYWx1ZUxvY2FsbHlcIl0gPSBcImZvcm1hdERhdGFWYWx1ZUxvY2FsbHlcIjtcbiAgICAvLyBEUElfRm9ybWF0SWZDb2x1bW4sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkZvcm1hdElmQ29sdW1uXCJdID0gXCJmb3JtYXRJZkNvbHVtblwiO1xuICAgIC8vIERQSV9Gb3JtYXRJZlBhcmFtZXRlciwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRm9ybWF0SWZQYXJhbWV0ZXJcIl0gPSBcImZvcm1hdElmUGFyYW1ldGVyXCI7XG4gICAgLy8gRFBJX0dlb2dyYXBoaWNTZWFyY2hJc0RhdGFMb2FkZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkdlb2dyYXBoaWNTZWFyY2hJc0RhdGFMb2FkZWRcIl0gPSBcImdlb2dyYXBoaWNTZWFyY2hEYXRhTG9hZGVkXCI7XG4gICAgLy8gRFBJX0dlb2dyYXBoaWNTZWFyY2hMb2FkRGF0YUFzeW5jLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJHZW9ncmFwaGljU2VhcmNoTG9hZERhdGFBc3luY1wiXSA9IFwiZ2VvZ3JhcGhpY1NlYXJjaExvYWREYXRhQXN5bmNcIjtcbiAgICAvLyBEUElfR3JvdXBCeUFsbCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiR3JvdXBCeUFsbFwiXSA9IFwiZ3JvdXBCeUFsbFwiO1xuICAgIC8vIERQSV9IYXNBbGlhcywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSGFzQWxpYXNcIl0gPSBcImhhc0FsaWFzXCI7XG4gICAgLy8gRFBJX0hhc0FsbE1lbWJlciwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSGFzQWxsTWVtYmVyXCJdID0gXCJoYXNBbGxNZW1iZXJcIjtcbiAgICAvLyBEUElfSGFzQXBwbHksIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkhhc0FwcGx5XCJdID0gXCJoYXNBcHBseVwiO1xuICAgIC8vIERQSV9IYXNCYWNrZ3JvdW5kSW1hZ2UsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkhhc0JhY2tncm91bmRJbWFnZVwiXSA9IFwiaGFzQmFja2dyb3VuZEltYWdlXCI7XG4gICAgLy8gRFBJX0hhc0JlZW5EaXNtaXNzZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkhhc0JlZW5EaXNtaXNzZWRcIl0gPSBcImhhc0JlZW5EaXNtaXNzZWRcIjtcbiAgICAvLyBEUElfSGFzQ2FwdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSGFzQ2FwdGlvblwiXSA9IFwiaGFzQ2FwdGlvblwiO1xuICAgIC8vIERQSV9IYXNDb25kaXRpb24sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkhhc0NvbmRpdGlvblwiXSA9IFwiaGFzQ29uZGl0aW9uXCI7XG4gICAgLy8gRFBJX0hhc0Nvbm5lY3RQZXJtaXNzaW9ucywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSGFzQ29ubmVjdFBlcm1pc3Npb25zXCJdID0gXCJoYXNDb25uZWN0UGVybWlzc2lvbnNcIjtcbiAgICAvLyBEUElfSGFzRGFzaGJvYXJkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJIYXNEYXNoYm9hcmRcIl0gPSBcImhhc0Rhc2hib2FyZFwiO1xuICAgIC8vIERQSV9IYXNEb3dubG9hZFBlcm1pc3Npb25zLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJIYXNEb3dubG9hZFBlcm1pc3Npb25zXCJdID0gXCJoYXNEb3dubG9hZFBlcm1pc3Npb25zXCI7XG4gICAgLy8gRFBJX0hhc0RyaWxsLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJIYXNEcmlsbFwiXSA9IFwiaGFzRHJpbGxcIjtcbiAgICAvLyBEUElfSGFzRXhjbHVkZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSGFzRXhjbHVkZVwiXSA9IFwiaGFzRXhjbHVkZVwiO1xuICAgIC8vIERQSV9IYXNGaWxsLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJIYXNGaWxsXCJdID0gXCJoYXNGaWxsXCI7XG4gICAgLy8gRFBJX0hhc0xhYmVscywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSGFzTGFiZWxzXCJdID0gXCJoYXNMYWJlbHNcIjtcbiAgICAvLyBEUElfSGFzTGltaXQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkhhc0xpbWl0XCJdID0gXCJoYXNMaW1pdFwiO1xuICAgIC8vIERQSV9IYXNMaW5lLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJIYXNMaW5lXCJdID0gXCJoYXNMaW5lXCI7XG4gICAgLy8gRFBJX0hhc01vZGlmaWVkQXhlcywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSGFzTW9kaWZpZWRBeGVzXCJdID0gXCJoYXNNb2RpZmllZEF4ZXNcIjtcbiAgICAvLyBEUElfSGFzTm9uUm9vdENhbGN1bGF0aW9ucywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSGFzTm9uUm9vdENhbGN1bGF0aW9uc1wiXSA9IFwiaGFzTm9uUm9vdENhbGN1bGF0aW9uc1wiO1xuICAgIC8vIERQSV9IYXNQYXR0ZXJuLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJIYXNQYXR0ZXJuXCJdID0gXCJoYXNQYXR0ZXJuXCI7XG4gICAgLy8gRFBJX0hhc1B1Ymxpc2hHdWlkYW5jZVJlc3VsdHMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkhhc1B1Ymxpc2hHdWlkYW5jZVJlc3VsdHNcIl0gPSBcImhhc1B1Ymxpc2hHdWlkYW5jZVJlc3VsdHNcIjtcbiAgICAvLyBEUElfSGFzU2VsZWN0aW9uLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJIYXNTZWxlY3Rpb25cIl0gPSBcImhhc1NlbGVjdGlvblwiO1xuICAgIC8vIERQSV9IYXNTZXJ2ZXJDcmVkZW50aWFscywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSGFzU2VydmVyQ3JlZGVudGlhbHNcIl0gPSBcImhhc1NlcnZlckNyZWRlbnRpYWxzXCI7XG4gICAgLy8gRFBJX0hhc1NwYWNlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJIYXNTcGFjZVwiXSA9IFwiaGFzU3BhY2VcIjtcbiAgICAvLyBEUElfSGFzU3RvcmVkUHJvY2VkdXJlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJIYXNTdG9yZWRQcm9jZWR1cmVcIl0gPSBcImhhc1N0b3JlZFByb2NlZHVyZVwiO1xuICAgIC8vIERQSV9IYXNTdHJpbmdDYWxjdWxhdGVkTWVhc3VyZXMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkhhc1N0cmluZ0NhbGN1bGF0ZWRNZWFzdXJlc1wiXSA9IFwiaGFzU3RyaW5nQ2FsY3VsYXRlZE1lYXN1cmVzXCI7XG4gICAgLy8gRFBJX0hhc1RhYmxlQ2FsY0RhdGEsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkhhc1RhYmxlQ2FsY0RhdGFcIl0gPSBcImhhc1RhYmxlQ2FsY0RhdGFcIjtcbiAgICAvLyBEUElfSGFzVGl0bGUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkhhc1RpdGxlXCJdID0gXCJoYXNUaXRsZVwiO1xuICAgIC8vIERQSV9IYXNVc2VyU3BlY2lmaWNDb250ZW50LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJIYXNVc2VyU3BlY2lmaWNDb250ZW50XCJdID0gXCJoYXNVc2VyU3BlY2lmaWNDb250ZW50XCI7XG4gICAgLy8gRFBJX0hhc1Vuam9pbmVkVGFibGUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkhhc1Vuam9pbmVkVGFibGVcIl0gPSBcImhhc1Vuam9pbmVkVGFibGVcIjtcbiAgICAvLyBEUElfSGFzVmFyQXJncywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSGFzVmFyQXJnc1wiXSA9IFwiaGFzVmFyQXJnc1wiO1xuICAgIC8vIERQSV9IYXNWaXNpdGVkV0RDUGFnZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSGFzVmlzaXRlZFdEQ1BhZ2VcIl0gPSBcImhhc1Zpc2l0ZWRXZGNQYWdlXCI7XG4gICAgLy8gRFBJX0lnbm9yZUFsaWFzZXMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklnbm9yZUFsaWFzZXNcIl0gPSBcImlnbm9yZUFsaWFzZXNcIjtcbiAgICAvLyBEUElfSWdub3JlRG9tYWluLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJZ25vcmVEb21haW5cIl0gPSBcImlnbm9yZURvbWFpblwiO1xuICAgIC8vIERQSV9JZ25vcmVTZWxlY3Rpb24sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklnbm9yZVNlbGVjdGlvblwiXSA9IFwiaWdub3JlU2VsZWN0aW9uXCI7XG4gICAgLy8gRFBJX0luY2x1ZGVBbGxDb2x1bW5zLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJbmNsdWRlQWxsQ29sdW1uc1wiXSA9IFwiaW5jbHVkZUFsbENvbHVtbnNcIjtcbiAgICAvLyBEUElfSW5jbHVkZUNvbnRleHQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkluY2x1ZGVDb250ZXh0XCJdID0gXCJpbmNsdWRlQ29udGV4dFwiO1xuICAgIC8vIERQSV9JbmNsdWRlRGFzaGJvYXJkUHJlc01vZGVscywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSW5jbHVkZURhc2hib2FyZFByZXNNb2RlbHNcIl0gPSBcImluY2x1ZGVEYXNoYm9hcmRQcmVzTW9kZWxzXCI7XG4gICAgLy8gRFBJX0luY2x1ZGVJdGVtU2V0LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJbmNsdWRlSXRlbVNldFwiXSA9IFwiaW5jbHVkZUl0ZW1TZXRcIjtcbiAgICAvLyBEUElfSW5jbHVkZUxvY2FsRmlsZXMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkluY2x1ZGVMb2NhbEZpbGVzXCJdID0gXCJpbmNsdWRlTG9jYWxGaWxlc1wiO1xuICAgIC8vIERQSV9JbmNsdWRlT3RoZXJTZWxlY3RlZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSW5jbHVkZU90aGVyU2VsZWN0ZWRcIl0gPSBcImluY2x1ZGVPdGhlclNlbGVjdGVkXCI7XG4gICAgLy8gRFBJX0luY2x1ZGVOdWxscywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSW5jbHVkZU51bGxzXCJdID0gXCJpbmNsdWRlTnVsbHNcIjtcbiAgICAvLyBEUElfSW5jbHVkZVBhcmVudCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSW5jbHVkZVBhcmVudFwiXSA9IFwiaW5jbHVkZVBhcmVudFwiO1xuICAgIC8vIERQSV9JbmNsdWRlU2VsZWN0aW9ucywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSW5jbHVkZVNlbGVjdGlvbnNcIl0gPSBcImluY2x1ZGVTZWxlY3Rpb25zXCI7XG4gICAgLy8gRFBJX0luY2x1ZGVTaWJsaW5ncywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSW5jbHVkZVNpYmxpbmdzXCJdID0gXCJpbmNsdWRlU2libGluZ3NcIjtcbiAgICAvLyBEUElfSW5jbHVkZVN0b3JpZXMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkluY2x1ZGVTdG9yaWVzXCJdID0gXCJpbmNsdWRlU3Rvcmllc1wiO1xuICAgIC8vIERQSV9JbmNsdWRlU3ViZm9sZGVycywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSW5jbHVkZVN1YmZvbGRlcnNcIl0gPSBcImluY2x1ZGVTdWJmb2xkZXJzXCI7XG4gICAgLy8gRFBJX0luY2x1ZGVWb2xhdGlsZVByb3BzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJbmNsdWRlVm9sYXRpbGVQcm9wc1wiXSA9IFwiaW5jbHVkZVZvbGF0aWxlUHJvcHNcIjtcbiAgICAvLyBEUElfSW5jbHVkZXNUYWcsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkluY2x1ZGVzVGFnXCJdID0gXCJpbmNsdWRlc1RhZ1wiO1xuICAgIC8vIERQSV9JbnNlcnRBZnRlciwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSW5zZXJ0QWZ0ZXJcIl0gPSBcImluc2VydEFmdGVyXCI7XG4gICAgLy8gRFBJX0luc2VydEF0RW5kLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJbnNlcnRBdEVuZFwiXSA9IFwiaW5zZXJ0QXRFbmRcIjtcbiAgICAvLyBEUElfSW5zdGFudEFuYWx5dGljc0FsbG93ZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkluc3RhbnRBbmFseXRpY3NBbGxvd2VkXCJdID0gXCJpbnN0YW50QW5hbHl0aWNzQWxsb3dlZFwiO1xuICAgIC8vIERQSV9JbnRlZ2VyQ29vcmRpbmF0ZXMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkludGVnZXJDb29yZGluYXRlc1wiXSA9IFwiaW50Q29vcmRzXCI7XG4gICAgLy8gRFBJX0ludmFsaWRhdGVkTGF5b3V0LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJbnZhbGlkYXRlZExheW91dFwiXSA9IFwiaW52YWxpZGF0ZWRMYXlvdXRcIjtcbiAgICAvLyBEUElfSXNBY3RpdmUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzQWN0aXZlXCJdID0gXCJpc0FjdGl2ZVwiO1xuICAgIC8vIERQSV9Jc0FkZFRvRmlsdGVyLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0FkZFRvRmlsdGVyXCJdID0gXCJpc0FkZFRvRmlsdGVyQnV0dG9uQ2hlY2tlZFwiO1xuICAgIC8vIERQSV9Jc0FsbEJ1dHRvblZpc2libGUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzQWxsQnV0dG9uVmlzaWJsZVwiXSA9IFwiaXNBbGxCdXR0b25WaXNpYmxlXCI7XG4gICAgLy8gRFBJX0lzQWxsb3dlZEluQ2FsY3MsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzQWxsb3dlZEluQ2FsY3NcIl0gPSBcImlzQWxsb3dlZEluQ2FsY3NcIjtcbiAgICAvLyBEUElfSXNBcHBNYXBTb3VyY2UsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzQXBwTWFwU291cmNlXCJdID0gXCJpc0FwcE1hcFNvdXJjZVwiO1xuICAgIC8vIERQSV9Jc0FyY2hpdmUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzQXJjaGl2ZVwiXSA9IFwiaXNBcmNoaXZlXCI7XG4gICAgLy8gRFBJX0lzQXV0aG9yaW5nTW9kZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNBdXRob3JpbmdNb2RlXCJdID0gXCJpc0F1dGhvcmluZ01vZGVcIjtcbiAgICAvLyBEUElfSXNBdXRvLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0F1dG9cIl0gPSBcImlzQXV0b1wiO1xuICAgIC8vIERQSV9Jc0F1dG9DbGVhciwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNBdXRvQ2xlYXJcIl0gPSBcImlzQXV0b0NsZWFyXCI7XG4gICAgLy8gRFBJX0lzQXV0b0NvbHVtbiwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNBdXRvQ29sdW1uXCJdID0gXCJpc0F1dG9Db2x1bW5cIjtcbiAgICAvLyBEUElfSXNBdXRvSGlkZGVuLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0F1dG9IaWRkZW5cIl0gPSBcImlzQXV0b0hpZGRlblwiO1xuICAgIC8vIERQSV9Jc0F1dG9TZWxlY3QsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzQXV0b1NlbGVjdFwiXSA9IFwiaXNBdXRvU2VsZWN0XCI7XG4gICAgLy8gRFBJX0lzQm9sZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNCb2xkXCJdID0gXCJpc0JvbGRcIjtcbiAgICAvLyBEUElfSXNCb3JkZXJWaXNpYmxlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0JvcmRlclZpc2libGVcIl0gPSBcImlzQm9yZGVyVmlzaWJsZVwiO1xuICAgIC8vIERQSV9Jc0JveHBsb3QsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzQm94cGxvdFwiXSA9IFwiaXNCb3hwbG90XCI7XG4gICAgLy8gRFBJX0lzQ2FwYWJsZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNDYXBhYmxlXCJdID0gXCJpc0NhcGFibGVcIjtcbiAgICAvLyBEUElfSXNDYXB0dXJlZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNDYXB0dXJlZFwiXSA9IFwiaXNDYXB0dXJlZFwiO1xuICAgIC8vIERQSV9Jc0NlbnRlcmVkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0NlbnRlcmVkXCJdID0gXCJpc0NlbnRlcmVkXCI7XG4gICAgLy8gRFBJX0lzQ2hlY2tlZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNDaGVja2VkXCJdID0gXCJpc0NoZWNrZWRcIjtcbiAgICAvLyBEUElfSXNDb2xvckRpdmVyZ2luZywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNDb2xvckRpdmVyZ2luZ1wiXSA9IFwiaXNDb2xvckRpdmVyZ2luZ1wiO1xuICAgIC8vIERQSV9Jc0NvbG9yU3RlcHBlZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNDb2xvclN0ZXBwZWRcIl0gPSBcImlzQ29sb3JTdGVwcGVkXCI7XG4gICAgLy8gRFBJX0lzQ29tYmluZWRGaWVsZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNDb21iaW5lZEZpZWxkXCJdID0gXCJpc0NvbWJpbmVkRmllbGRcIjtcbiAgICAvLyBEUElfSXNDb25uZWN0ZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzQ29ubmVjdGVkXCJdID0gXCJpc0Nvbm5lY3RlZFwiO1xuICAgIC8vIERQSV9Jc0NvbnRleHRNZW51QWxsb3dlZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNDb250ZXh0TWVudUFsbG93ZWRcIl0gPSBcImlzQ29udGV4dE1lbnVBbGxvd2VkXCI7XG4gICAgLy8gRFBJX0lzQ29udGludW91cywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNDb250aW51b3VzXCJdID0gXCJpc0NvbnRpbnVvdXNcIjtcbiAgICAvLyBEUElfSXNDb3B5LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0NvcHlcIl0gPSBcImlzQ29weVwiO1xuICAgIC8vIERQSV9Jc0N1c3RvbVBhbGV0dGUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzQ3VzdG9tUGFsZXR0ZVwiXSA9IFwiaXNDdXN0b21QYWxldHRlXCI7XG4gICAgLy8gRFBJX0lzQ3VzdG9tU1FMLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0N1c3RvbVNRTFwiXSA9IFwiaXNDdXN0b21TcWxcIjtcbiAgICAvLyBEUElfSXNDdXN0b21WYWx1ZUVuYWJsZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzQ3VzdG9tVmFsdWVFbmFibGVkXCJdID0gXCJpc0N1c3RvbVZhbHVlRW5hYmxlZFwiO1xuICAgIC8vIERQSV9Jc0RhdGFBbGVydENvbmRpdGlvbk1ldCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNEYXRhQWxlcnRDb25kaXRpb25NZXRcIl0gPSBcImlzRGF0YUFsZXJ0Q29uZGl0aW9uTWV0XCI7XG4gICAgLy8gRFBJX0lzRGF0YUFsZXJ0RGlhbG9nVmlzaWJsZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNEYXRhQWxlcnREaWFsb2dWaXNpYmxlXCJdID0gXCJpc0RhdGFBbGVydERpYWxvZ1Zpc2libGVcIjtcbiAgICAvLyBEUElfSXNEYXRhQmluLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0RhdGFCaW5cIl0gPSBcImlzRGF0YUJpblwiO1xuICAgIC8vIERQSV9Jc0RhdGFHcmlkVmlzaWJsZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNEYXRhR3JpZFZpc2libGVcIl0gPSBcImlzRGF0YUdyaWRWaXNpYmxlXCI7XG4gICAgLy8gRFBJX0lzRGF0YWJhc2UsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzRGF0YWJhc2VcIl0gPSBcImlzRGF0YWJhc2VcIjtcbiAgICAvLyBEUElfSXNEYXRhYmFzZUZpbHRlckluY2x1c2l2ZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNEYXRhYmFzZUZpbHRlckluY2x1c2l2ZVwiXSA9IFwiaXNEYkZpbHRlckluY2x1c2l2ZVwiO1xuICAgIC8vIERQSV9Jc1dlYkRhdGFUYWJWaWV3U3VwcG9ydGVkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1dlYkRhdGFUYWJWaWV3U3VwcG9ydGVkXCJdID0gXCJpc1dlYkRhdGFUYWJWaWV3U3VwcG9ydGVkXCI7XG4gICAgLy8gRFBJX0lzUHVibGlzaGVkRGF0YXNvdXJjZVJlcGxhY2VtZW50LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1B1Ymxpc2hlZERhdGFzb3VyY2VSZXBsYWNlbWVudFwiXSA9IFwiaXNQdWJsaXNoZWREYXRhc291cmNlUmVwbGFjZW1lbnRcIjtcbiAgICAvLyBEUElfSXNEZWFkRHJvcCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNEZWFkRHJvcFwiXSA9IFwiaXNEZWFkRHJvcFwiO1xuICAgIC8vIERQSV9Jc0RlZmF1bHQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzRGVmYXVsdFwiXSA9IFwiaXNEZWZhdWx0XCI7XG4gICAgLy8gRFBJX0lzRGVsZXRlQ2FsY0NvbmZpcm0sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzRGVsZXRlQ2FsY0NvbmZpcm1cIl0gPSBcImlzRGVsZXRlQ2FsY0NvbmZpcm1lZFwiO1xuICAgIC8vIERQSV9Jc0RpbWVuc2lvbiwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNEaW1lbnNpb25cIl0gPSBcImlzRGltZW5zaW9uXCI7XG4gICAgLy8gRFBJX0lzRGl2aWRlciwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNEaXZpZGVyXCJdID0gXCJpc0RpdmlkZXJcIjtcbiAgICAvLyBEUElfSXNEcm9wZG93bkVuYWJsZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzRHJvcGRvd25FbmFibGVkXCJdID0gXCJpc0Ryb3Bkb3duRW5hYmxlZFwiO1xuICAgIC8vIERQSV9Jc0VkaXRpbmcsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzRWRpdGluZ1wiXSA9IFwiaXNFZGl0aW5nXCI7XG4gICAgLy8gRFBJX0lzRW1iZWRkZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzRW1iZWRkZWRcIl0gPSBcImlzRW1iZWRkZWRcIjtcbiAgICAvLyBEUElfSXNFbXB0eSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNFbXB0eVwiXSA9IFwiaXNFbXB0eVwiO1xuICAgIC8vIERQSV9Jc0FkZEluRW5hYmxlZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNBZGRJbkVuYWJsZWRcIl0gPSBcImlzQWRkSW5FbmFibGVkXCI7XG4gICAgLy8gRFBJX0lzSW5EcmlsbFBhdGgsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzSW5EcmlsbFBhdGhcIl0gPSBcImlzSW5EcmlsbFBhdGhcIjtcbiAgICAvLyBEUElfQWRkSW5KU0RlYnVnZ2luZ0VuYWJsZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkFkZEluSlNEZWJ1Z2dpbmdFbmFibGVkXCJdID0gXCJhZGRJbkpzRGVidWdnaW5FbmFibGVkXCI7XG4gICAgLy8gRFBJX0FkZEluUGF1c2VCZWZvcmVMb2FkaW5nLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJBZGRJblBhdXNlQmVmb3JlTG9hZGluZ1wiXSA9IFwiYWRkSW5QYXVzZUJlZm9yZUxvYWRpbmdcIjtcbiAgICAvLyBEUElfSXNEU0hpZXJhcmNoaWNhbCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNEU0hpZXJhcmNoaWNhbFwiXSA9IFwiaXNEc0hpZXJhcmNoaWNhbFwiO1xuICAgIC8vIERQSV9Jc0VuZFB0TW92ZWFibGUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzRW5kUHRNb3ZlYWJsZVwiXSA9IFwiaXNFbmRwb2ludE1vdmFibGVcIjtcbiAgICAvLyBEUElfSXNFeGNsdWRlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0V4Y2x1ZGVcIl0gPSBcImlzRXhjbHVkZUJ1dHRvbkNoZWNrZWRcIjtcbiAgICAvLyBEUElfSXNFeGlzdGluZ0Nvbm5lY3Rpb24sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzRXhpc3RpbmdDb25uZWN0aW9uXCJdID0gXCJpc0V4aXN0aW5nQ29ubmVjdGlvblwiO1xuICAgIC8vIERQSV9Jc0V4aXN0aW5nT2JqZWN0LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0V4aXN0aW5nT2JqZWN0XCJdID0gXCJpc0V4aXN0aW5nT2JqZWN0XCI7XG4gICAgLy8gRFBJX0lzRXh0cmFjdCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNFeHRyYWN0XCJdID0gXCJpc0V4dHJhY3RcIjtcbiAgICAvLyBEUElfSXNFeHRyYWN0T25seUNvbm5lY3Rpb24sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzRXh0cmFjdE9ubHlDb25uZWN0aW9uXCJdID0gXCJpc0V4dHJhY3RPbmx5Q29ubmVjdGlvblwiO1xuICAgIC8vIERQSV9Jc0V4dHJhY3RTZWxlY3Rpb25WaXNpYmxlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0V4dHJhY3RTZWxlY3Rpb25WaXNpYmxlXCJdID0gXCJpc0V4dHJhY3RTZWxlY3Rpb25WaXNpYmxlXCI7XG4gICAgLy8gRFBJX0lzRmVkZXJhdGFibGUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzRmVkZXJhdGFibGVcIl0gPSBcImlzRmVkZXJhdGFibGVcIjtcbiAgICAvLyBEUElfSXNGaWVsZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNGaWVsZFwiXSA9IFwiaXNGaWVsZFwiO1xuICAgIC8vIERQSV9Jc0ZpZWxkUGFyYW1ldGVyLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0ZpZWxkUGFyYW1ldGVyXCJdID0gXCJpc0ZpZWxkUGFyYW1ldGVyXCI7XG4gICAgLy8gRFBJX0lzRmlsdGVyQWN0aW9uRmllbGQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzRmlsdGVyQWN0aW9uRmllbGRcIl0gPSBcImlzRmlsdGVyQWN0aW9uRmllbGRcIjtcbiAgICAvLyBEUElfSXNGaXJzdENsYXNzQ29ubmVjdG9yLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0ZpcnN0Q2xhc3NDb25uZWN0b3JcIl0gPSBcImlzRmlyc3RDbGFzc0Nvbm5lY3RvclwiO1xuICAgIC8vIERQSV9Jc0Zsb2F0aW5nLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0Zsb2F0aW5nXCJdID0gXCJpc0Zsb2F0aW5nXCI7XG4gICAgLy8gRFBJX0lzRm9sZGVkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0ZvbGRlZFwiXSA9IFwiaXNGb2xkZWRcIjtcbiAgICAvLyBEUElfSXNGb3JJbnB1dCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNGb3JJbnB1dFwiXSA9IFwiaXNGb3JJbnB1dFwiO1xuICAgIC8vIERQSV9Jc0ZvcmVjYXN0RW5hYmxlZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNGb3JlY2FzdEVuYWJsZWRcIl0gPSBcImlzRm9yZWNhc3RFbmFibGVkXCI7XG4gICAgLy8gRFBJX0lzRm9yY2VEaXJ0eSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNGb3JjZURpcnR5XCJdID0gXCJpc0ZvcmNlRGlydHlcIjtcbiAgICAvLyBEUElfSXNGdWxsU2NhbiwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNGdWxsU2NhblwiXSA9IFwiaXNGdWxsU2NhblwiO1xuICAgIC8vIERQSV9Jc0Z1bGxTdHlsaW5nLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0Z1bGxTdHlsaW5nXCJdID0gXCJpc0Z1bGxTdHlsaW5nXCI7XG4gICAgLy8gRFBJX0lzR2VuZXJhdGVkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0dlbmVyYXRlZFwiXSA9IFwiaXNHZW5lcmF0ZWRcIjtcbiAgICAvLyBEUElfSXNHbG9iYWxOYW1lcywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNHbG9iYWxOYW1lc1wiXSA9IFwiaXNHbG9iYWxOYW1lc1wiO1xuICAgIC8vIERQSV9Jc0dyYXllZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNHcmF5ZWRcIl0gPSBcImlzR3JheWVkXCI7XG4gICAgLy8gRFBJX0lzR3JheXNjYWxlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0dyYXlzY2FsZVwiXSA9IFwiaXNHcmF5c2NhbGVcIjtcbiAgICAvLyBEUElfSXNHcm91cCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNHcm91cFwiXSA9IFwiaXNHcm91cFwiO1xuICAgIC8vIERQSV9Jc0hpZGVhYmxlRmllbGQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzSGlkZWFibGVGaWVsZFwiXSA9IFwiaXNIaWRlYWJsZUZpZWxkXCI7XG4gICAgLy8gRFBJX0lzSGllcmFyY2h5LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0hpZXJhcmNoeVwiXSA9IFwiaXNIaWVyYXJjaHlcIjtcbiAgICAvLyBEUElfSXNIaWVyYXJjaHlTaW5nbGVTZWxlY3QsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzSGllcmFyY2h5U2luZ2xlU2VsZWN0XCJdID0gXCJpc0hpZXJhcmNoeVNpbmdsZVNlbGVjdFwiO1xuICAgIC8vIERQSV9Jc0hpZ2hsaWdodEFsbG93ZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzSGlnaGxpZ2h0QWxsb3dlZFwiXSA9IFwiaXNIaWdobGlnaHRBbGxvd2VkXCI7XG4gICAgLy8gRFBJX0lzSGlnaGxpZ2h0RW5hYmxlZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNIaWdobGlnaHRFbmFibGVkXCJdID0gXCJpc0hpZ2hsaWdodEVuYWJsZWRcIjtcbiAgICAvLyBEUElfSXNIaWdobGlnaHRGaWVsZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNIaWdobGlnaHRGaWVsZFwiXSA9IFwiaXNIaWdobGlnaHRGaWVsZFwiO1xuICAgIC8vIERQSV9Jc0hvcml6b250YWwsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzSG9yaXpvbnRhbFwiXSA9IFwiaXNIb3Jpem9udGFsXCI7XG4gICAgLy8gRFBJX0lzSW1hZ2VFbmFibGVkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0ltYWdlRW5hYmxlZFwiXSA9IFwiaXNJbWFnZUVuYWJsZWRcIjtcbiAgICAvLyBEUElfSXNJbkRlZmF1bHQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzSW5EZWZhdWx0XCJdID0gXCJpc0luRGVmYXVsdFwiO1xuICAgIC8vIERQSV9Jc0luUHJpbWFyeURhdGFTb3VyY2UsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzSW5QcmltYXJ5RGF0YVNvdXJjZVwiXSA9IFwiaXNJblByaW1hcnlEYXRhU291cmNlXCI7XG4gICAgLy8gRFBJX0lzSW5uZXIsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzSW5uZXJcIl0gPSBcImlzSW5uZXJcIjtcbiAgICAvLyBEUElfSXNJbml0aWFsLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0luaXRpYWxcIl0gPSBcImlzSW5pdGlhbFwiO1xuICAgIC8vIERQSV9Jc0luc3RhbmNlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0luc3RhbmNlXCJdID0gXCJpc0luc3RhbmNlXCI7XG4gICAgLy8gRFBJX0lzSW52YWxpZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNJbnZhbGlkXCJdID0gXCJpc0ludmFsaWRcIjtcbiAgICAvLyBEUElfSXNJbnZhbGlkQ2FsY09uREcsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzSW52YWxpZENhbGNPbkRHXCJdID0gXCJpc0ludmFsaWREZ0NhbGNcIjtcbiAgICAvLyBEUElfSXNJdGFsaWNzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0l0YWxpY3NcIl0gPSBcImlzSXRhbGljc1wiO1xuICAgIC8vIERQSV9Jc0pvaW5BcmVhVmlzaWJsZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNKb2luQXJlYVZpc2libGVcIl0gPSBcImlzSm9pbkFyZWFWaXNpYmxlXCI7XG4gICAgLy8gRFBJX0lzTGFiZWxzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0xhYmVsc1wiXSA9IFwiaXNMYWJlbHNcIjtcbiAgICAvLyBEUElfSXNMYXllcmVkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0xheWVyZWRcIl0gPSBcImlzTGF5ZXJlZFwiO1xuICAgIC8vIERQSV9Jc0xlZnQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzTGVmdFwiXSA9IFwiaXNMZWZ0XCI7XG4gICAgLy8gRFBJX0lzTGVnYWN5LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0xlZ2FjeVwiXSA9IFwiaXNMZWdhY3lcIjtcbiAgICAvLyBEUElfSXNMZXZlbCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNMZXZlbFwiXSA9IFwiaXNMZXZlbFwiO1xuICAgIC8vIERQSV9Jc0xldmVsT3JMZXZlbElkZW50aXR5LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0xldmVsT3JMZXZlbElkZW50aXR5XCJdID0gXCJpc0xldmVsT3JMZXZlbElkZW50aXR5XCI7XG4gICAgLy8gRFBJX0lzTGljZW5zZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzTGljZW5zZWRcIl0gPSBcImlzTGljZW5zZWRcIjtcbiAgICAvLyBEUElfSXNMaW5rLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0xpbmtcIl0gPSBcImlzTGlua1wiO1xuICAgIC8vIERQSV9Jc01hcCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNNYXBcIl0gPSBcImlzTWFwXCI7XG4gICAgLy8gRFBJX0lzTWVhc3VyZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNNZWFzdXJlXCJdID0gXCJpc01lYXN1cmVcIjtcbiAgICAvLyBEUElfSXNNZXJnZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNNZXJnZVwiXSA9IFwiaXNNZXJnZVwiO1xuICAgIC8vIERQSV9Jc01lc3NhZ2VTb3VyY2VSZW1vdGUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzTWVzc2FnZVNvdXJjZVJlbW90ZVwiXSA9IFwiaXNNZXNzYWdlU291cmNlUmVtb3RlXCI7XG4gICAgLy8gRFBJX0lzTWlzc2luZ0Zyb21FeHRyYWN0LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc01pc3NpbmdGcm9tRXh0cmFjdFwiXSA9IFwiaXNNaXNzaW5nRnJvbUV4dHJhY3RcIjtcbiAgICAvLyBEUElfSXNNb2JpbGUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzTW9iaWxlXCJdID0gXCJpc01vYmlsZVwiO1xuICAgIC8vIERQSV9Jc01vZGlmaWVkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc01vZGlmaWVkXCJdID0gXCJpc01vZGlmaWVkXCI7XG4gICAgLy8gRFBJX0lzTmV3LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc05ld1wiXSA9IFwiaXNOZXdcIjtcbiAgICAvLyBEUElfSXNOZXdDbG91ZEZpbGVEYXRhU291cmNlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc05ld0Nsb3VkRmlsZURhdGFTb3VyY2VcIl0gPSBcImlzTmV3Q2xvdWRGaWxlRGF0YVNvdXJjZVwiO1xuICAgIC8vIERQSV9Jc05ld1pvbmUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzTmV3Wm9uZVwiXSA9IFwiaXNOZXdab25lXCI7XG4gICAgLy8gRFBJX0lzTm9uZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNOb25lXCJdID0gXCJpc05vbmVcIjtcbiAgICAvLyBEUElfSXNPZmZsaW5lTW9kZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNPZmZsaW5lTW9kZVwiXSA9IFwiaXNPZmZsaW5lTW9kZVwiO1xuICAgIC8vIERQSV9Jc1ByZUFxbEJpbiwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNQcmVBcWxCaW5cIl0gPSBcImlzUHJlQXFsQmluXCI7XG4gICAgLy8gRFBJX0lzT01lYXN1cmVzQW5kUmVsYXRpb25hbCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNPTWVhc3VyZXNBbmRSZWxhdGlvbmFsXCJdID0gXCJpc09tZWFzdXJlc0FuZFJlbGF0aW9uYWxcIjtcbiAgICAvLyBEUElfSXNPcGFxdWUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzT3BhcXVlXCJdID0gXCJpc09wYXF1ZVwiO1xuICAgIC8vIERQSV9Jc09ycGhhbmVkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc09ycGhhbmVkXCJdID0gXCJpc09ycGhhbmVkXCI7XG4gICAgLy8gRFBJX0lzT3ZlcmxheSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNPdmVybGF5XCJdID0gXCJpc092ZXJsYXlcIjtcbiAgICAvLyBEUElfSXNPdmVycmlkZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNPdmVycmlkZVwiXSA9IFwiaXNPdmVycmlkZVwiO1xuICAgIC8vIERQSV9Jc1BhZ2VMb2FkaW5nLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1BhZ2VMb2FkaW5nXCJdID0gXCJpc1BhZ2VMb2FkaW5nXCI7XG4gICAgLy8gRFBJX0lzUGFyYW1ldGVyU2VsZWN0ZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzUGFyYW1ldGVyU2VsZWN0ZWRcIl0gPSBcImlzUGFyYW1ldGVyU2VsZWN0ZWRcIjtcbiAgICAvLyBEUElfSXNQYXJhbWV0ZXJTZWxlY3RlZE9uRnJvbSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNQYXJhbWV0ZXJTZWxlY3RlZE9uRnJvbVwiXSA9IFwiaXNQYXJhbWV0ZXJTZWxlY3RlZE9uRnJvbVwiO1xuICAgIC8vIERQSV9Jc1BhcmFtZXRlclNlbGVjdGVkT25UbywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNQYXJhbWV0ZXJTZWxlY3RlZE9uVG9cIl0gPSBcImlzUGFyYW1ldGVyU2VsZWN0ZWRPblRvXCI7XG4gICAgLy8gRFBJX0lzUGF0dGVybkJhc2VkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1BhdHRlcm5CYXNlZFwiXSA9IFwiaXNQYXR0ZXJuQmFzZWRcIjtcbiAgICAvLyBEUElfSXNQaW5uZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzUGlubmVkXCJdID0gXCJpc1Bpbm5lZFwiO1xuICAgIC8vIERQSV9Jc1ByZXNlbnRhdGlvbk1vZGUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzUHJlc2VudGF0aW9uTW9kZVwiXSA9IFwiaXNQcmVzZW50YXRpb25Nb2RlRG9jXCI7XG4gICAgLy8gRFBJX0lzUHVibGlzaEFsbG93ZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzUHVibGlzaEFsbG93ZWRcIl0gPSBcImlzUHVibGlzaEFsbG93ZWRcIjtcbiAgICAvLyBEUElfSXNNdXN0RG93bmdyYWRlVG9QdWJsaXNoLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc011c3REb3duZ3JhZGVUb1B1Ymxpc2hcIl0gPSBcImlzRG93bmdyYWRlVG9QdWJsaXNoUmVxdWlyZWRcIjtcbiAgICAvLyBEUElfSXNQdWJsaXNoZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzUHVibGlzaGVkXCJdID0gXCJpc1B1Ymxpc2hlZFwiO1xuICAgIC8vIERQSV9Jc1F1aWNrVGFibGVDYWxjLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1F1aWNrVGFibGVDYWxjXCJdID0gXCJpc1F1aWNrVGFibGVDYWxjXCI7XG4gICAgLy8gRFBJX0lzUmFkaW9PbiwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNSYWRpb09uXCJdID0gXCJpc1JhZGlvT25cIjtcbiAgICAvLyBEUElfSXNSZWNvbm5lY3QsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzUmVjb25uZWN0XCJdID0gXCJpc1JlY29ubmVjdFwiO1xuICAgIC8vIERQSV9Jc1JlY3Vyc2l2ZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNSZWN1cnNpdmVcIl0gPSBcImlzUmVjdXJzaXZlXCI7XG4gICAgLy8gRFBJX0lzUmVmZXJlbmNlZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNSZWZlcmVuY2VkXCJdID0gXCJpc1JlZmVyZW5jZWRcIjtcbiAgICAvLyBEUElfSXNSZW1vdmFsQWxsb3dlZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNSZW1vdmFsQWxsb3dlZFwiXSA9IFwiaXNSb3dSZW1vdmFsQWxsb3dlZFwiO1xuICAgIC8vIERQSV9Jc1JlbmRlckNhcGFibGUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzUmVuZGVyQ2FwYWJsZVwiXSA9IFwiaXNSZW5kZXJDYXBhYmxlXCI7XG4gICAgLy8gRFBJX0lzUmVxdWlyZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzUmVxdWlyZWRcIl0gPSBcImlzUmVxdWlyZWRcIjtcbiAgICAvLyBEUElfSXNSZXZlcnNlZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNSZXZlcnNlZFwiXSA9IFwiaXNSZXZlcnNlZFwiO1xuICAgIC8vIERQSV9Jc1JpZ2h0RHJhZywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNSaWdodERyYWdcIl0gPSBcImlzUmlnaHREcmFnXCI7XG4gICAgLy8gRFBJX0lzUm93TGFiZWxzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1Jvd0xhYmVsc1wiXSA9IFwiaXNSb3dMYWJlbHNcIjtcbiAgICAvLyBEUElfSXNQZXJjZW50YWdlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1BlcmNlbnRhZ2VcIl0gPSBcImlzUGVyY2VudGFnZVwiO1xuICAgIC8vIERQSV9Jc1NhbGVzZm9yY2VJbkNvbm5lY3Rpb24sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzU2FsZXNmb3JjZUluQ29ubmVjdGlvblwiXSA9IFwiaXNTYWxlc2ZvcmNlSW5Db25uZWN0aW9uXCI7XG4gICAgLy8gRFBJX0lzU2NhbGVkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1NjYWxlZFwiXSA9IFwiaXNTY2FsZWRcIjtcbiAgICAvLyBEUElfSXNTZWxlY3RlZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNTZWxlY3RlZFwiXSA9IFwiaXNTZWxlY3RlZFwiO1xuICAgIC8vIERQSV9Jc1NlbGVjdGVkSXRlbSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNTZWxlY3RlZEl0ZW1cIl0gPSBcImlzU2VsZWN0ZWRJdGVtXCI7XG4gICAgLy8gRFBJX0lzU2VsZWN0aW9uRGlzYWJsZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzU2VsZWN0aW9uRGlzYWJsZWRcIl0gPSBcImlzU2VsZWN0aW9uRGlzYWJsZWRcIjtcbiAgICAvLyBEUElfSXNTaGlmdERyYWcsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzU2hpZnREcmFnXCJdID0gXCJpc1NoaWZ0RHJhZ1wiO1xuICAgIC8vIERQSV9Jc1NpbmdsZUxhYmVsLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1NpbmdsZUxhYmVsXCJdID0gXCJpc1NpbmdsZUxhYmVsXCI7XG4gICAgLy8gRFBJX0lzU2luZ2xlU2VsZWN0LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1NpbmdsZVNlbGVjdFwiXSA9IFwiaXNTaW5nbGVTZWxlY3RcIjtcbiAgICAvLyBEUElfSXNTaW5nbGVTZWxlY3RNb2RlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1NpbmdsZVNlbGVjdE1vZGVcIl0gPSBcImlzU2luZ2xlU2VsZWN0TW9kZVwiO1xuICAgIC8vIERQSV9Jc1NpbmdsZVNlbGVjdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNTaW5nbGVTZWxlY3Rpb25cIl0gPSBcImlzU2luZ2xlU2VsZWN0aW9uXCI7XG4gICAgLy8gRFBJX0lzU29ydGVkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1NvcnRlZFwiXSA9IFwiaXNTb3J0ZWRcIjtcbiAgICAvLyBEUElfSXNTb3J0UGlsbCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNTb3J0UGlsbFwiXSA9IFwiaXNTb3J0UGlsbFwiO1xuICAgIC8vIERQSV9Jc1NwZWNpYWwsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzU3BlY2lhbFwiXSA9IFwiaXNTcGVjaWFsXCI7XG4gICAgLy8gRFBJX0lzU3BsYXNoU2NyZWVuLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1NwbGFzaFNjcmVlblwiXSA9IFwiaXNTcGxhc2hTY3JlZW5cIjtcbiAgICAvLyBEUElfSXNTdG9yeUVtcHR5LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1N0b3J5RW1wdHlcIl0gPSBcImlzU3RvcnlFbXB0eVwiO1xuICAgIC8vIERQSV9Jc1N0cmlrZVRocm91Z2gsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzU3RyaWtlVGhyb3VnaFwiXSA9IFwiaXNTdHJpa2VUaHJvdWdoXCI7XG4gICAgLy8gRFBJX0lzVGFibGVDYWxjLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1RhYmxlQ2FsY1wiXSA9IFwiaXNUYWJsZUNhbGNcIjtcbiAgICAvLyBEUElfSXNUYWJsZUNsZWFuaW5nU3VidGFibGUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzVGFibGVDbGVhbmluZ1N1YnRhYmxlXCJdID0gXCJpc1RhYmxlQ2xlYW5pbmdTdWJ0YWJsZVwiO1xuICAgIC8vIERQSV9Jc1RhYmxlRmlsdGVySW5jbHVzaXZlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1RhYmxlRmlsdGVySW5jbHVzaXZlXCJdID0gXCJpc1RhYmxlRmlsdGVySW5jbHVzaXZlXCI7XG4gICAgLy8gRFBJX0lzVGFibGVSYW5rZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzVGFibGVSYW5rZWRcIl0gPSBcImlzVGFibGVSYW5rZWRcIjtcbiAgICAvLyBEUElfSXNUZW1wb3JhcnksIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzVGVtcG9yYXJ5XCJdID0gXCJpc1RlbXBvcmFyeVwiO1xuICAgIC8vIERQSV9Jc1RpdGxlVmlzaWJsZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNUaXRsZVZpc2libGVcIl0gPSBcImlzVGl0bGVWaXNpYmxlXCI7XG4gICAgLy8gRFBJX0lzVG9wTGV2ZWwsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzVG9wTGV2ZWxcIl0gPSBcImlzVG9wTGV2ZWxcIjtcbiAgICAvLyBEUElfSXNUd29WYWx1ZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzVHdvVmFsdWVkXCJdID0gXCJpc1R3b1ZhbHVlZFwiO1xuICAgIC8vIERQSV9Jc1R5cGVJbkZpbmlzaGVkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1R5cGVJbkZpbmlzaGVkXCJdID0gXCJpc1R5cGVpbkZpbmlzaGVkXCI7XG4gICAgLy8gRFBJX0lzVHlwZUluUGlsbCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNUeXBlSW5QaWxsXCJdID0gXCJpc1R5cGVJblBpbGxcIjtcbiAgICAvLyBEUElfSXNVUkxBY3Rpb25GaWVsZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNVUkxBY3Rpb25GaWVsZFwiXSA9IFwiaXNVcmxBY3Rpb25GaWVsZFwiO1xuICAgIC8vIERQSV9Jc1VuZGVybGluZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzVW5kZXJsaW5lZFwiXSA9IFwiaXNVbmRlcmxpbmVkXCI7XG4gICAgLy8gRFBJX0lzVW5pb24sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzVW5pb25cIl0gPSBcImlzVW5pb25cIjtcbiAgICAvLyBEUElfSXNVbmlvblJlcGxhY2VtZW50LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1VuaW9uUmVwbGFjZW1lbnRcIl0gPSBcImlzVW5pb25SZXBsYWNlbWVudFwiO1xuICAgIC8vIERQSV9Jc1VubmFtZWRDYWxjLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1VubmFtZWRDYWxjXCJdID0gXCJpc1VubmFtZWRcIjtcbiAgICAvLyBEUElfSXNVc2VyRGVmaW5lZEF0dHJpYnV0ZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNVc2VyRGVmaW5lZEF0dHJpYnV0ZVwiXSA9IFwiaXNVc2VyRGVmaW5lZEF0dHJpYnV0ZVwiO1xuICAgIC8vIERQSV9Jc1VzZXJFZGl0YWJsZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNVc2VyRWRpdGFibGVcIl0gPSBcImlzVXNlckVkaXRhYmxlXCI7XG4gICAgLy8gRFBJX0lzVXNlclByb21wdGVkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1VzZXJQcm9tcHRlZFwiXSA9IFwiaXNVc2VyUHJvbXB0ZWRcIjtcbiAgICAvLyBEUElfSXNVc2VyUmVzcG9uZGVkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1VzZXJSZXNwb25kZWRcIl0gPSBcImlzVXNlclJlc3BvbmRlZFwiO1xuICAgIC8vIERQSV9Jc1ZhbGlkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1ZhbGlkXCJdID0gXCJpc1ZhbGlkXCI7XG4gICAgLy8gRFBJX0lzVmFsaWRXRENQYWdlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1ZhbGlkV0RDUGFnZVwiXSA9IFwiaXNWYWxpZFdkY1BhZ2VcIjtcbiAgICAvLyBEUElfSXNWYXJ5aW5nQXR0cmlidXRlRGltZW5zaW9uLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1ZhcnlpbmdBdHRyaWJ1dGVEaW1lbnNpb25cIl0gPSBcImlzVmFyeWluZ0F0dHJpYnV0ZURpbWVuc2lvblwiO1xuICAgIC8vIERQSV9Jc1ZlcnRpY2FsLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1ZlcnRpY2FsXCJdID0gXCJpc1ZlcnRpY2FsXCI7XG4gICAgLy8gRFBJX0lzVmlld01vZGlmaWVkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1ZpZXdNb2RpZmllZFwiXSA9IFwiaXNWaWV3TW9kaWZpZWRcIjtcbiAgICAvLyBEUElfSXNWaXN1YWxseUNhdGVnb3JpY2FsLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1Zpc3VhbGx5Q2F0ZWdvcmljYWxcIl0gPSBcImlzVmlzdWFsbHlDYXRcIjtcbiAgICAvLyBEUElfSXNWaXpJblRvb2x0aXAsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzVml6SW5Ub29sdGlwXCJdID0gXCJpc1ZpekluVG9vbHRpcFwiO1xuICAgIC8vIERQSV9Jc1dlYiwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNXZWJcIl0gPSBcImlzV2ViXCI7XG4gICAgLy8gRFBJX0lzV2hpdGUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzV2hpdGVcIl0gPSBcImlzV2hpdGVcIjtcbiAgICAvLyBEUElfSXNXb3JsZE5ldywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNXb3JsZE5ld1wiXSA9IFwiaXNXb3JsZE5ld1wiO1xuICAgIC8vIERQSV9Jc1hBeGlzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1hBeGlzXCJdID0gXCJpc1hBeGlzXCI7XG4gICAgLy8gRFBJX0tlZXBBc3BlY3RSYXRpbywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiS2VlcEFzcGVjdFJhdGlvXCJdID0gXCJrZWVwQXNwZWN0UmF0aW9cIjtcbiAgICAvLyBEUElfTGFiZWxMaW5lRW5kRmlyc3QsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkxhYmVsTGluZUVuZEZpcnN0XCJdID0gXCJsYWJlbExpbmVFbmRGaXJzdFwiO1xuICAgIC8vIERQSV9MYWJlbExpbmVFbmRMYXN0LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJMYWJlbExpbmVFbmRMYXN0XCJdID0gXCJsYWJlbExpbmVFbmRMYXN0XCI7XG4gICAgLy8gRFBJX0xhYmVsTWFya01heCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiTGFiZWxNYXJrTWF4XCJdID0gXCJsYWJlbE1hcmtNYXhcIjtcbiAgICAvLyBEUElfTGFiZWxNYXJrTWluLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJMYWJlbE1hcmtNaW5cIl0gPSBcImxhYmVsTWFya01pblwiO1xuICAgIC8vIERQSV9Mb2NrQXNwZWN0UmF0aW8sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkxvY2tBc3BlY3RSYXRpb1wiXSA9IFwibG9ja0FzcGVjdFJhdGlvXCI7XG4gICAgLy8gRFBJX0xvb3BQbGF5YmFjaywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiTG9vcFBsYXliYWNrXCJdID0gXCJsb29wUGxheWJhY2tcIjtcbiAgICAvLyBEUElfTG9zc3lJbWFnZXMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkxvc3N5SW1hZ2VzXCJdID0gXCJsb3NzeUltYWdlc1wiO1xuICAgIC8vIERQSV9NYWtlR2xvYmFsLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJNYWtlR2xvYmFsXCJdID0gXCJpc01ha2VHbG9iYWxcIjtcbiAgICAvLyBEUElfTWFudWFsU29ydE9ubHksIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIk1hbnVhbFNvcnRPbmx5XCJdID0gXCJtYW51YWxTb3J0T25seVwiO1xuICAgIC8vIERQSV9NYXBCb3hEZWZhdWx0U3R5bGVTZWxlY3RlZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiTWFwQm94RGVmYXVsdFN0eWxlU2VsZWN0ZWRcIl0gPSBcIm1hcGJveERlZmF1bHRTdHlsZVNlbGVjdGVkXCI7XG4gICAgLy8gRFBJX01hcEJveFVSTFBhcnNlU3VjY2Vzc2Z1bCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiTWFwQm94VVJMUGFyc2VTdWNjZXNzZnVsXCJdID0gXCJtYXBib3hVcmxQYXJzZVN1Y2Nlc3NmdWxcIjtcbiAgICAvLyBEUElfTWFwQ2xpZW50UmVxdWVzdHNNYXBUaWxlcywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiTWFwQ2xpZW50UmVxdWVzdHNNYXBUaWxlc1wiXSA9IFwiY2xpZW50UmVxdWVzdHNNYXBUaWxlc1wiO1xuICAgIC8vIERQSV9NYXBIYXNWYWxpZExheWVyLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJNYXBIYXNWYWxpZExheWVyXCJdID0gXCJtYXBIYXNWYWxpZExheWVyXCI7XG4gICAgLy8gRFBJX01hcFNob3dBdHRyaWJ1dGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiTWFwU2hvd0F0dHJpYnV0aW9uXCJdID0gXCJzaG93QXR0cmlidXRpb25cIjtcbiAgICAvLyBEUElfTWFya0xhYmVsc1Zpc2liaWxpdHlDaGFuZ2VkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJNYXJrTGFiZWxzVmlzaWJpbGl0eUNoYW5nZWRcIl0gPSBcIm1hcmtMYWJlbHNWaXNpYmlsaXR5Q2hhbmdlZFwiO1xuICAgIC8vIERQSV9NZW1iZXJzTG9hZGVkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJNZW1iZXJzTG9hZGVkXCJdID0gXCJtZW1iZXJzTG9hZGVkXCI7XG4gICAgLy8gRFBJX01pbmltaXplTmFtZXMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIk1pbmltaXplTmFtZXNcIl0gPSBcInVzZU1pbk5hbWVzXCI7XG4gICAgLy8gRFBJX01vdmVSZWZlcmVjZUxpbmVVcCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiTW92ZVJlZmVyZWNlTGluZVVwXCJdID0gXCJtb3ZlUmVmZXJlbmNlTGluZVVwXCI7XG4gICAgLy8gRFBJX011bHRpRGF0YVNvdXJjZXMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIk11bHRpRGF0YVNvdXJjZXNcIl0gPSBcIm11bHRpRGF0YVNvdXJjZXNcIjtcbiAgICAvLyBEUElfTmF2QXJyb3dzVmlzaWJsZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiTmF2QXJyb3dzVmlzaWJsZVwiXSA9IFwibmF2QXJyb3dzVmlzaWJsZVwiO1xuICAgIC8vIERQSV9PRU1IYXNTcGxhc2hTY3JlZW4sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIk9FTUhhc1NwbGFzaFNjcmVlblwiXSA9IFwib2VtSGFzU3BsYXNoU2NyZWVuXCI7XG4gICAgLy8gRFBJX09uZVdheUJydXNoaW5nLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJPbmVXYXlCcnVzaGluZ1wiXSA9IFwib25lV2F5QnJ1c2hpbmdcIjtcbiAgICAvLyBEUElfT25seUFnZ3JlZ2F0aW9ucywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiT25seUFnZ3JlZ2F0aW9uc1wiXSA9IFwib25seUFnZ3JlZ2F0aW9uc1wiO1xuICAgIC8vIERQSV9PdmVycmlkZUFsbG93ZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIk92ZXJyaWRlQWxsb3dlZFwiXSA9IFwib3ZlcnJpZGVBbGxvd2VkXCI7XG4gICAgLy8gRFBJX092ZXJyaWRlU3RhY2tEdW1wZXIsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIk92ZXJyaWRlU3RhY2tEdW1wZXJcIl0gPSBcIm92ZXJyaWRlU3RhY2tEdW1wZXJcIjtcbiAgICAvLyBEUElfUGFnZUF1dG9Db2xvckxpbmVzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJQYWdlQXV0b0NvbG9yTGluZXNcIl0gPSBcImF1dG9Db2xvckxpbmVzXCI7XG4gICAgLy8gRFBJX1BhZ2VBdXRvQ29sb3JNYXJrcywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiUGFnZUF1dG9Db2xvck1hcmtzXCJdID0gXCJhdXRvQ29sb3JNYXJrc1wiO1xuICAgIC8vIERQSV9QYWdlSGlzdG9yeUZhZGUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlBhZ2VIaXN0b3J5RmFkZVwiXSA9IFwiaGlzdG9yeUZhZGVcIjtcbiAgICAvLyBEUElfUGVyY2VudGFnZUJhbmRzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJQZXJjZW50YWdlQmFuZHNcIl0gPSBcInBlcmNlbnRhZ2VCYW5kc1wiO1xuICAgIC8vIERQSV9QZXJjZW50aWxlc0FsbG93ZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlBlcmNlbnRpbGVzQWxsb3dlZFwiXSA9IFwicGVyY2VudGlsZXNBbGxvd2VkXCI7XG4gICAgLy8gRFBJX1B1Ymxpc2hXaXRoUmVtb3RlUXVlcnlBZ2VudCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiUHVibGlzaFdpdGhSZW1vdGVRdWVyeUFnZW50XCJdID0gXCJwdWJsaXNoV2l0aFJlbW90ZVF1ZXJ5QWdlbnRcIjtcbiAgICAvLyBEUElfUHJldmlvdXNTaGVldCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiUHJldmlvdXNTaGVldFwiXSA9IFwicHJldmlvdXNTaGVldFwiO1xuICAgIC8vIERQSV9Qcm9tcHREZWxldGVTaGVldHNXaXRoVml6SW5Ub29sdGlwLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJQcm9tcHREZWxldGVTaGVldHNXaXRoVml6SW5Ub29sdGlwXCJdID0gXCJwcm9tcHREZWxldGVTaGVldHNXaXRoVml6SW5Ub29sdGlwXCI7XG4gICAgLy8gRFBJX1F1YW50aWxlc0FsbG93ZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlF1YW50aWxlc0FsbG93ZWRcIl0gPSBcInF1YW50aWxlc0FsbG93ZWRcIjtcbiAgICAvLyBEUElfUmFkaWFsRGlzdGFuY2VIaXRUZXN0LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJSYWRpYWxEaXN0YW5jZUhpdFRlc3RcIl0gPSBcInJhZGlhbERpc3RhbmNlSGl0VGVzdFwiO1xuICAgIC8vIERQSV9SZWZMaW5lU2VsZWN0ZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlJlZkxpbmVTZWxlY3RlZFwiXSA9IFwicmVmTGluZVNlbGVjdGVkXCI7XG4gICAgLy8gRFBJX1JlbW92ZWRTaGVldHMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlJlbW92ZWRTaGVldHNcIl0gPSBcInJlbW92ZWRTaGVldHNcIjtcbiAgICAvLyBEUElfUmVuZGVySW1hZ2VzQXNVcmxzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJSZW5kZXJJbWFnZXNBc1VybHNcIl0gPSBcImltYWdlc0FzVXJsc1wiO1xuICAgIC8vIERQSV9SZW5kZXJPblRvcCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiUmVuZGVyT25Ub3BcIl0gPSBcInJlbmRlck9uVG9wXCI7XG4gICAgLy8gRFBJX1JlcGVhdEhlYWRlcnNMZWdlbmRzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJSZXBlYXRIZWFkZXJzTGVnZW5kc1wiXSA9IFwicmVwZWF0SGVhZGVyc0xlZ2VuZHNcIjtcbiAgICAvLyBEUElfUmVwbGFjZUFjdGl2ZUNvbmZpZywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiUmVwbGFjZUFjdGl2ZUNvbmZpZ1wiXSA9IFwicmVwbGFjZUFjdGl2ZUNvbmZpZ1wiO1xuICAgIC8vIERQSV9SZXBsYWNlRGF0YXNvdXJjZUFmdGVyUHVibGlzaCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiUmVwbGFjZURhdGFzb3VyY2VBZnRlclB1Ymxpc2hcIl0gPSBcInJlcGxhY2VEYXRhc291cmNlQWZ0ZXJQdWJsaXNoXCI7XG4gICAgLy8gRFBJX1JlcGxhY2VEYXRhc291cmNlRmFpbGVkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJSZXBsYWNlRGF0YXNvdXJjZUZhaWxlZFwiXSA9IFwicmVwbGFjZURhdGFzb3VyY2VGYWlsZWRcIjtcbiAgICAvLyBEUElfUmVwbGFjZVRkZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiUmVwbGFjZVRkZVwiXSA9IFwicmVwbGFjZVRkZVwiO1xuICAgIC8vIERQSV9SZXF1aXJlU2VsZWN0aW9uLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJSZXF1aXJlU2VsZWN0aW9uXCJdID0gXCJyZXF1aXJlU2VsZWN0aW9uXCI7XG4gICAgLy8gRFBJX1JlcXVpcmVzREJWYXJpYWJsZXMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlJlcXVpcmVzREJWYXJpYWJsZXNcIl0gPSBcInJlcXVpcmVzRGJWYXJpYWJsZXNcIjtcbiAgICAvLyBEUElfUmVxdWlyZXNGaWVsZExpc3QsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlJlcXVpcmVzRmllbGRMaXN0XCJdID0gXCJyZXF1aXJlc0ZpZWxkTGlzdFwiO1xuICAgIC8vIERQSV9SZXN0YXJ0RXZlcnlGaWVsZElzSW52YWxpZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiUmVzdGFydEV2ZXJ5RmllbGRJc0ludmFsaWRcIl0gPSBcInJlc3RhcnRFdmVyeUZpZWxkSXNJbnZhbGlkXCI7XG4gICAgLy8gRFBJX1JpZ2h0SnVzdGlmeSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiUmlnaHRKdXN0aWZ5XCJdID0gXCJyaWdodEp1c3RpZnlcIjtcbiAgICAvLyBEUElfU2F2ZUVuYWJsZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNhdmVFbmFibGVkXCJdID0gXCJzYXZlRW5hYmxlZFwiO1xuICAgIC8vIERQSV9TYXZlUGFzc3dvcmRBbGxvd2VkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTYXZlUGFzc3dvcmRBbGxvd2VkXCJdID0gXCJzYXZlUGFzc3dvcmRBbGxvd2VkXCI7XG4gICAgLy8gRFBJX1Njb3BlSXNvbGF0aW9uLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTY29wZUlzb2xhdGlvblwiXSA9IFwic2NvcGVJc29sYXRpb25cIjtcbiAgICAvLyBEUElfU2VsZWN0aW9uUmVxdWlyZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNlbGVjdGlvblJlcXVpcmVkXCJdID0gXCJzZWxlY3Rpb25SZXF1aXJlZFwiO1xuICAgIC8vIERQSV9TZW5kTm90aWZpY2F0aW9ucywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2VuZE5vdGlmaWNhdGlvbnNcIl0gPSBcInNlbmROb3RpZmljYXRpb25zXCI7XG4gICAgLy8gRFBJX1NldEFjdGl2ZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2V0QWN0aXZlXCJdID0gXCJzZXRBY3RpdmVcIjtcbiAgICAvLyBEUElfU2V0RGVmYXVsdFNvcnQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNldERlZmF1bHRTb3J0XCJdID0gXCJzZXREZWZhdWx0XCI7XG4gICAgLy8gRFBJX1NoZWV0SXNEYXNoYm9hcmQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNoZWV0SXNEYXNoYm9hcmRcIl0gPSBcImlzRGFzaGJvYXJkXCI7XG4gICAgLy8gRFBJX1NoZWV0SXNTdG9yeWJvYXJkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaGVldElzU3Rvcnlib2FyZFwiXSA9IFwiaXNTdG9yeVwiO1xuICAgIC8vIERQSV9TaG91bGRBbHdheXNEaXNwbGF5QWxpYXMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3VsZEFsd2F5c0Rpc3BsYXlBbGlhc1wiXSA9IFwic2hvdWxkQWx3YXlzRGlzcGxheUFsaWFzXCI7XG4gICAgLy8gRFBJX1Nob3VsZEF1dG9DYXB0dXJlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG91bGRBdXRvQ2FwdHVyZVwiXSA9IFwic2hvdWxkQXV0b0NhcHR1cmVcIjtcbiAgICAvLyBEUElfU2hvdWxkQXV0b1JldmVydCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvdWxkQXV0b1JldmVydFwiXSA9IFwic2hvdWxkQXV0b1JldmVydFwiO1xuICAgIC8vIERQSV9TaG91bGRDaGFuZ2VVSU1vZGUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3VsZENoYW5nZVVJTW9kZVwiXSA9IFwic2hvdWxkQ2hhbmdlVWlNb2RlXCI7XG4gICAgLy8gRFBJX1Nob3VsZERpc3BsYXksIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3VsZERpc3BsYXlcIl0gPSBcInNob3VsZERpc3BsYXlcIjtcbiAgICAvLyBEUElfU2hvdWxkRHJpbGwsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3VsZERyaWxsXCJdID0gXCJzaG91bGREcmlsbFwiO1xuICAgIC8vIERQSV9TaG91bGRGb3JjZUNvbm5lY3Rpb25BdHRlbXB0LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG91bGRGb3JjZUNvbm5lY3Rpb25BdHRlbXB0XCJdID0gXCJzaG91bGRGb3JjZUNvbm5lY3Rpb25BdHRlbXB0XCI7XG4gICAgLy8gRFBJX1Nob3VsZFJlZnJlc2hEUywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvdWxkUmVmcmVzaERTXCJdID0gXCJzaG91bGRSZWZyZXNoRHNcIjtcbiAgICAvLyBEUElfU2hvdWxkU2NhbGVNYXJrc0luQXhpc1VuaXRzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG91bGRTY2FsZU1hcmtzSW5BeGlzVW5pdHNcIl0gPSBcInNob3VsZFNjYWxlTWFya3NJbkF4aXNVbml0c1wiO1xuICAgIC8vIERQSV9TaG91bGRTZWVkQ3JlZGVudGlhbHMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3VsZFNlZWRDcmVkZW50aWFsc1wiXSA9IFwic2hvdWxkU2VlZENyZWRlbnRpYWxzXCI7XG4gICAgLy8gRFBJX1Nob3VsZFNob3dEYXRhU291cmNlQ29ubmVjdGlvbkVycm9yLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG91bGRTaG93RGF0YVNvdXJjZUNvbm5lY3Rpb25FcnJvclwiXSA9IFwic2hvdWxkU2hvd0RhdGFTb3VyY2VDb25uZWN0aW9uRXJyb3JcIjtcbiAgICAvLyBEUElfU2hvdWxkU2hvd0Rpc3RhbmNlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG91bGRTaG93RGlzdGFuY2VcIl0gPSBcInNob3VsZFNob3dEaXN0YW5jZVwiO1xuICAgIC8vIERQSV9TaG91bGRTaG93SGlkZGVuRmllbGQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3VsZFNob3dIaWRkZW5GaWVsZFwiXSA9IFwic2hvdWxkU2hvd0hpZGRlbkZpZWxkXCI7XG4gICAgLy8gRFBJX1Nob3VsZFNob3dNYXBTY2FsZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvdWxkU2hvd01hcFNjYWxlXCJdID0gXCJzaG91bGRTaG93TWFwU2NhbGVcIjtcbiAgICAvLyBEUElfU2hvdWxkVVJMRXNjYXBlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG91bGRVUkxFc2NhcGVcIl0gPSBcInNob3VsZFVybEVzY2FwZVwiO1xuICAgIC8vIERQSV9TaG91bGRVcGRhdGVEb21haW5JbmZvLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG91bGRVcGRhdGVEb21haW5JbmZvXCJdID0gXCJzaG91bGRVcGRhdGVEb21JbmZvXCI7XG4gICAgLy8gRFBJX1Nob3dBZGRUb0ZpbHRlciwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd0FkZFRvRmlsdGVyXCJdID0gXCJzaG93QWRkVG9GaWx0ZXJCdXR0b25cIjtcbiAgICAvLyBEUElfU2hvd0FsaWFzZXMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3dBbGlhc2VzXCJdID0gXCJzaG93QWxpYXNlc1wiO1xuICAgIC8vIERQSV9TaG93QWxsUGFnZXMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3dBbGxQYWdlc1wiXSA9IFwic2hvd0FsbFBhZ2VzXCI7XG4gICAgLy8gRFBJX1Nob3dBcHBseSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd0FwcGx5XCJdID0gXCJzaG93QXBwbHlCdXR0b25cIjtcbiAgICAvLyBEUElfU2hvd0FwcGx5QW5kQ2FuY2VsQnV0dG9ucywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd0FwcGx5QW5kQ2FuY2VsQnV0dG9uc1wiXSA9IFwic2hvd0FwcGx5QW5kQ2FuY2VsQnV0dG9uc1wiO1xuICAgIC8vIERQSV9TaG93QXV0aGVudGljYXRpb25PcHRpb25zLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG93QXV0aGVudGljYXRpb25PcHRpb25zXCJdID0gXCJzaG93QXV0aGVudGljYXRpb25PcHRpb25zXCI7XG4gICAgLy8gRFBJX1Nob3dBdXRoZW50aWNhdGlvblNldHRpbmcsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3dBdXRoZW50aWNhdGlvblNldHRpbmdcIl0gPSBcInNob3dBdXRoZW50aWNhdGlvblNldHRpbmdcIjtcbiAgICAvLyBEUElfU2hvd0F1dG8sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3dBdXRvXCJdID0gXCJzaG93QXV0b1wiO1xuICAgIC8vIERQSV9TaG93Qm9sZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd0JvbGRcIl0gPSBcInNob3dCb2xkT3B0aW9uXCI7XG4gICAgLy8gRFBJX1Nob3dCdXR0b25zLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG93QnV0dG9uc1wiXSA9IFwic2hvd0J1dHRvbnNcIjtcbiAgICAvLyBEUElfU2hvd0NhcHRpb24sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3dDYXB0aW9uXCJdID0gXCJzaG93Q2FwdGlvblwiO1xuICAgIC8vIERQSV9TaG93Q29sb3JMZWdlbmQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3dDb2xvckxlZ2VuZFwiXSA9IFwic2hvd0NvbG9yTGVnZW5kXCI7XG4gICAgLy8gRFBJX1Nob3dEYXRhR3JpZElubGluZVJlbmFtZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd0RhdGFHcmlkSW5saW5lUmVuYW1lXCJdID0gXCJzaG93RGF0YUdyaWRJbmxpbmVSZW5hbWVcIjtcbiAgICAvLyBEUElfU2hvd0RldGFpbE1lc3NhZ2VzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG93RGV0YWlsTWVzc2FnZXNcIl0gPSBcInNob3dEZXRhaWxNZXNzYWdlc1wiO1xuICAgIC8vIERQSV9TaG93RGF0ZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd0RhdGVcIl0gPSBcInNob3dEYXRlXCI7XG4gICAgLy8gRFBJX1Nob3dEcmFnTGFiZWwsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3dEcmFnTGFiZWxcIl0gPSBcInNob3dEcmFnTGFiZWxcIjtcbiAgICAvLyBEUElfU2hvd0Ryb3BNZWFzdXJlcywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd0Ryb3BNZWFzdXJlc1wiXSA9IFwic2hvd0Ryb3BNZWFzdXJlc1wiO1xuICAgIC8vIERQSV9TaG93RW1iZWRBbGwsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3dFbWJlZEFsbFwiXSA9IFwic2hvd0VtYmVkQWxsXCI7XG4gICAgLy8gRFBJX1Nob3dFbnRpcmVJbWFnZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd0VudGlyZUltYWdlXCJdID0gXCJzaG93RW50aXJlSW1hZ2VcIjtcbiAgICAvLyBEUElfU2hvd0V4Y2x1ZGUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3dFeGNsdWRlXCJdID0gXCJzaG93RXhjbHVkZUJ1dHRvblwiO1xuICAgIC8vIERQSV9TaG93RmxvYXRpbmdab29tVG9vbGJhciwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd0Zsb2F0aW5nWm9vbVRvb2xiYXJcIl0gPSBcInNob3dGbG9hdGluZ1pvb21Ub29sYmFyXCI7XG4gICAgLy8gRFBJX1Nob3dGb3JtYXR0ZXIsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3dGb3JtYXR0ZXJcIl0gPSBcInNob3dGb3JtYXR0ZXJcIjtcbiAgICAvLyBEUElfU2hvd0Z1bGxTY2hlZHVsZXMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3dGdWxsU2NoZWR1bGVzXCJdID0gXCJzaG93RnVsbFNjaGVkdWxlc1wiO1xuICAgIC8vIERQSV9TaG93R2VvZ3JhcGhpY1NlYXJjaCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd0dlb2dyYXBoaWNTZWFyY2hcIl0gPSBcInNob3dHZW9ncmFwaGljU2VhcmNoXCI7XG4gICAgLy8gRFBJX1Nob3dIaWRkZW5GaWVsZHMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3dIaWRkZW5GaWVsZHNcIl0gPSBcInNob3dIaWRkZW5GaWVsZHNcIjtcbiAgICAvLyBEUElfU2hvd0hpc3RvcnlDb250cm9scywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd0hpc3RvcnlDb250cm9sc1wiXSA9IFwic2hvd0hpc3RvcnlDb250cm9sc1wiO1xuICAgIC8vIERQSV9TaG93SW5jbHVkZUxvY2FsRmlsZXMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3dJbmNsdWRlTG9jYWxGaWxlc1wiXSA9IFwic2hvd0luY2x1ZGVMb2NhbEZpbGVzXCI7XG4gICAgLy8gRFBJX1Nob3dJbmNsdWRlT3RoZXJPcHRpb24sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3dJbmNsdWRlT3RoZXJPcHRpb25cIl0gPSBcInNob3dJbmNsdWRlT3RoZXJPcHRpb25cIjtcbiAgICAvLyBEUElfU2hvd0luY2x1ZGVTZWxlY3Rpb25zLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG93SW5jbHVkZVNlbGVjdGlvbnNcIl0gPSBcInNob3dJbmNsdWRlU2VsZWN0aW9uc1wiO1xuICAgIC8vIERQSV9TaG93SW5jclNjaGVkdWxlcywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd0luY3JTY2hlZHVsZXNcIl0gPSBcInNob3dJbmNyU2NoZWR1bGVzXCI7XG4gICAgLy8gRFBJX1Nob3dJbm5lck1vc3RMZXZlbCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd0lubmVyTW9zdExldmVsXCJdID0gXCJzaG93SW5uZXJtb3N0TGV2ZWxcIjtcbiAgICAvLyBEUElfU2hvd0l0YWxpY3MsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3dJdGFsaWNzXCJdID0gXCJzaG93SXRhbGljc09wdGlvblwiO1xuICAgIC8vIERQSV9TaG93TGVnZW5kLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG93TGVnZW5kXCJdID0gXCJzaG93TGVnZW5kXCI7XG4gICAgLy8gRFBJX1Nob3dMb2NrZWRQZXJtaXNzaW9uc0ljb24sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3dMb2NrZWRQZXJtaXNzaW9uc0ljb25cIl0gPSBcInNob3dMb2NrZWRQZXJtaXNzaW9uc0ljb25cIjtcbiAgICAvLyBEUElfU2hvd01hbmFnZURhdGFzb3VyY2VzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG93TWFuYWdlRGF0YXNvdXJjZXNcIl0gPSBcInNob3dNYW5hZ2VEYXRhc291cmNlc1wiO1xuICAgIC8vIERQSV9TaG93TWFwTGVnZW5kLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG93TWFwTGVnZW5kXCJdID0gXCJzaG93TWFwTGVnZW5kXCI7XG4gICAgLy8gRFBJX1Nob3dNYXBTY2FsZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd01hcFNjYWxlXCJdID0gXCJzaG93TWFwU2NhbGVcIjtcbiAgICAvLyBEUElfU2hvd01hcHBlZEZpbHRlckNvbHMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3dNYXBwZWRGaWx0ZXJDb2xzXCJdID0gXCJzaG93TWFwcGVkRmlsdGVyQ29sdW1uc1wiO1xuICAgIC8vIERQSV9TaG93TmFtZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd05hbWVcIl0gPSBcInNob3dOYW1lXCI7XG4gICAgLy8gRFBJX1Nob3dOb25lLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG93Tm9uZVwiXSA9IFwic2hvd05vbmVcIjtcbiAgICAvLyBEUElfU2hvd1BhZ2VQbGF5YmFjaywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd1BhZ2VQbGF5YmFja1wiXSA9IFwic2hvd1BhZ2VQbGF5YmFja1wiO1xuICAgIC8vIERQSV9TaG93UGFnZVJlYWRvdXQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3dQYWdlUmVhZG91dFwiXSA9IFwic2hvd1BhZ2VSZWFkb3V0XCI7XG4gICAgLy8gRFBJX1Nob3dQYWdlU2xpZGVyLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG93UGFnZVNsaWRlclwiXSA9IFwic2hvd1BhZ2VTbGlkZXJcIjtcbiAgICAvLyBEUElfU2hvd1BhcmVudCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd1BhcmVudFwiXSA9IFwic2hvd1BhcmVudFwiO1xuICAgIC8vIERQSV9TaG93UGVyY2VudGFnZXMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3dQZXJjZW50YWdlc1wiXSA9IFwic2hvd1BlcmNlbnRhZ2VzXCI7XG4gICAgLy8gRFBJX1Nob3dQcmVkaWN0aW9uSW50ZXJ2YWxzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG93UHJlZGljdGlvbkludGVydmFsc1wiXSA9IFwic2hvd1ByZWRpY3Rpb25JbnRlcnZhbHNcIjtcbiAgICAvLyBEUElfU2hvd1B1Ymxpc2hlZERhdGFzb3VyY2VzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG93UHVibGlzaGVkRGF0YXNvdXJjZXNcIl0gPSBcInNob3dQdWJsaXNoZWREYXRhc291cmNlc1wiO1xuICAgIC8vIERQSV9TaG93UmVsRGF0ZVBpY2tlciwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd1JlbERhdGVQaWNrZXJcIl0gPSBcInNob3dSZWxEYXRlUGlja2VyXCI7XG4gICAgLy8gRFBJX1Nob3dSZXBsYWNlRGF0YXNvdXJjZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd1JlcGxhY2VEYXRhc291cmNlXCJdID0gXCJzaG93UmVwbGFjZURhdGFzb3VyY2VcIjtcbiAgICAvLyBEUElfU2hvd1NlcGFyYXRvciwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd1NlcGFyYXRvclwiXSA9IFwic2hvd1NlcGFyYXRvclwiO1xuICAgIC8vIERQSV9TaG93U2hhcGVMZWdlbmQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3dTaGFwZUxlZ2VuZFwiXSA9IFwic2hvd1NoYXBlTGVnZW5kXCI7XG4gICAgLy8gRFBJX1Nob3dTaXplTGVnZW5kLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG93U2l6ZUxlZ2VuZFwiXSA9IFwic2hvd1NpemVMZWdlbmRcIjtcbiAgICAvLyBEUElfU2hvd1NoZWxmLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG93U2hlbGZcIl0gPSBcInNob3dTaGVsZlwiO1xuICAgIC8vIERQSV9TaG93U3RydWN0dXJlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG93U3RydWN0dXJlXCJdID0gXCJzaG93U3RydWN0dXJlXCI7XG4gICAgLy8gRFBJX1Nob3dTeW5jQ2xpZW50T3B0aW9ucywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd1N5bmNDbGllbnRPcHRpb25zXCJdID0gXCJzaG93U3luY0NsaWVudE9wdGlvbnNcIjtcbiAgICAvLyBEUElfU2hvd1RhYnNBbGxvd2VkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG93VGFic0FsbG93ZWRcIl0gPSBcInNob3dUYWJzQWxsb3dlZFwiO1xuICAgIC8vIERQSV9TaG93VGltZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd1RpbWVcIl0gPSBcInNob3dUaW1lXCI7XG4gICAgLy8gRFBJX1Nob3dUaXRsZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd1RpdGxlXCJdID0gXCJzaG93VGl0bGVcIjtcbiAgICAvLyBEUElfU2hvd1RyYW5zU2xpZGVyLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG93VHJhbnNTbGlkZXJcIl0gPSBcInNob3dUcmFuc3BhcmVuY3lTbGlkZXJcIjtcbiAgICAvLyBEUElfU2hvd1VuZGVybGluZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd1VuZGVybGluZVwiXSA9IFwic2hvd1VuZGVybGluZU9wdGlvblwiO1xuICAgIC8vIERQSV9TaG93VXNlclRodW1ibmFpbE9wdGlvbnMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3dVc2VyVGh1bWJuYWlsT3B0aW9uc1wiXSA9IFwic2hvd1VzZXJUaHVtYm5haWxPcHRpb25zXCI7XG4gICAgLy8gRFBJX1Nob3dWaWV3LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG93Vmlld1wiXSA9IFwic2hvd1ZpZXdcIjtcbiAgICAvLyBEUElfU2hvd1ZpZXdzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG93Vmlld3NcIl0gPSBcInNob3dWaWV3c1wiO1xuICAgIC8vIERQSV9TaG93aW5nUGFnZUxvYWRFcnJvciwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd2luZ1BhZ2VMb2FkRXJyb3JcIl0gPSBcInNob3dpbmdQYWdlTG9hZEVycm9yXCI7XG4gICAgLy8gRFBJX1N1cHJlc3NBbGlhc2VzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTdXByZXNzQWxpYXNlc1wiXSA9IFwic3VzcHJlc3NBbGlhc2VzXCI7XG4gICAgLy8gRFBJX1N1cHJlc3NUaG91c2FuZHNTZXBhcmF0b3IsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlN1cHJlc3NUaG91c2FuZHNTZXBhcmF0b3JcIl0gPSBcInN1cHJlc3NUaG91c2FuZHNTZXBhcmF0b3JcIjtcbiAgICAvLyBEUElfU2luZ2xlU2VsZWN0T25seSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2luZ2xlU2VsZWN0T25seVwiXSA9IFwic2luZ2xlU2VsZWN0T25seVwiO1xuICAgIC8vIERQSV9Ta2lwSWZBY3RpdmUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNraXBJZkFjdGl2ZVwiXSA9IFwic2tpcElmQWN0aXZlXCI7XG4gICAgLy8gRFBJX1NraXBSZWZyZXNoLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTa2lwUmVmcmVzaFwiXSA9IFwic2tpcFJlZnJlc2hcIjtcbiAgICAvLyBEUElfU2tpcFZhbGlkYXRpb24sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNraXBWYWxpZGF0aW9uXCJdID0gXCJza2lwVmFsaWRhdGlvblwiO1xuICAgIC8vIERQSV9Ta2lwcGVkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTa2lwcGVkXCJdID0gXCJza2lwcGVkXCI7XG4gICAgLy8gRFBJX1NvcnRGaWVsZElzSW52YWxpZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU29ydEZpZWxkSXNJbnZhbGlkXCJdID0gXCJzb3J0RmllbGRJc0ludmFsaWRcIjtcbiAgICAvLyBEUElfU29ydE1vZGVJc0F1dG8sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNvcnRNb2RlSXNBdXRvXCJdID0gXCJzb3J0TW9kZUlzQXV0b1wiO1xuICAgIC8vIERQSV9TcGxpdE9uRWRnZVNuYXAsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNwbGl0T25FZGdlU25hcFwiXSA9IFwic3BsaXRPbkVkZ2VTbmFwXCI7XG4gICAgLy8gRFBJX1N0YW5kYXJkRGV2aWF0aW9uQWxsb3dlZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU3RhbmRhcmREZXZpYXRpb25BbGxvd2VkXCJdID0gXCJzdGFuZGFyZERldmlhdGlvbkFsbG93ZWRcIjtcbiAgICAvLyBEUElfU3RhdGUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlN0YXRlXCJdID0gXCJzdGF0ZVwiO1xuICAgIC8vIERQSV9TdG9yZWRQcm9jRGlzYWJsZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlN0b3JlZFByb2NEaXNhYmxlZFwiXSA9IFwic3RvcmVkUHJvY0Rpc2FibGVkXCI7XG4gICAgLy8gRFBJX1N0b3JlZFByb2NzRHJvcGFibGUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlN0b3JlZFByb2NzRHJvcGFibGVcIl0gPSBcInN0b3JlZFByb2NzRHJvcGFibGVcIjtcbiAgICAvLyBEUElfU3RvcnlJc0VtcHR5LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTdG9yeUlzRW1wdHlcIl0gPSBcInN0b3J5SXNFbXB0eVwiO1xuICAgIC8vIERQSV9TdG9yeVBvaW50SXNFbXB0eSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU3RvcnlQb2ludElzRW1wdHlcIl0gPSBcInN0b3J5UG9pbnRJc0VtcHR5XCI7XG4gICAgLy8gRFBJX1N1Y2Nlc3NmdWxTYXZlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTdWNjZXNzZnVsU2F2ZVwiXSA9IFwic3VjY2Vzc2Z1bFNhdmVcIjtcbiAgICAvLyBEUElfU3VwcG9ydFhBeGlzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTdXBwb3J0WEF4aXNcIl0gPSBcInN1cHBvcnRYQXhpc1wiO1xuICAgIC8vIERQSV9TdXBwb3J0WUF4aXMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlN1cHBvcnRZQXhpc1wiXSA9IFwic3VwcG9ydFlBeGlzXCI7XG4gICAgLy8gRFBJX1N1cHBvcnRzQ2VudGVyQWxpZ25tZW50LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTdXBwb3J0c0NlbnRlckFsaWdubWVudFwiXSA9IFwic3VwcG9ydHNDZW50ZXJBbGlnbm1lbnRcIjtcbiAgICAvLyBEUElfU3VwcG9ydHNEQkZpbHRlcnMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlN1cHBvcnRzREJGaWx0ZXJzXCJdID0gXCJzdXBwb3J0c0RhdGFiYXNlRmlsdGVyc1wiO1xuICAgIC8vIERQSV9TdXBwb3J0c011bHRpcGxlVmFsdWVzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTdXBwb3J0c011bHRpcGxlVmFsdWVzXCJdID0gXCJzdXBwb3J0c011bHRpcGxlVmFsdWVzXCI7XG4gICAgLy8gRFBJX1N1cHBvcnRzUmlnaHRBbGlnbm1lbnQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlN1cHBvcnRzUmlnaHRBbGlnbm1lbnRcIl0gPSBcInN1cHBvcnRzUmlnaHRBbGlnbm1lbnRcIjtcbiAgICAvLyBEUElfU3VwcG9ydHNUYWJsZUZpbHRlcnMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlN1cHBvcnRzVGFibGVGaWx0ZXJzXCJdID0gXCJzdXBwb3J0c1RhYmxlRmlsdGVyc1wiO1xuICAgIC8vIERQSV9TeW1tZXRyaWMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlN5bW1ldHJpY1wiXSA9IFwic3ltbWV0cmljXCI7XG4gICAgLy8gRFBJX1N5bmNBdXRvbWF0aWNEcmlsbCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU3luY0F1dG9tYXRpY0RyaWxsXCJdID0gXCJzeW5jQXV0b21hdGljRHJpbGxcIjtcbiAgICAvLyBEUElfVGFic0FsbG93ZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlRhYnNBbGxvd2VkXCJdID0gXCJ0YWJzQWxsb3dlZFwiO1xuICAgIC8vIERQSV9UZXh0RHJvcGRvd25TdGF0ZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiVGV4dERyb3Bkb3duU3RhdGVcIl0gPSBcInRvZ2dsZVN0YXRlXCI7XG4gICAgLy8gRFBJX1RpdGxlSW5saW5lLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJUaXRsZUlubGluZVwiXSA9IFwidGl0bGVJbmxpbmVcIjtcbiAgICAvLyBEUElfVG9nZ2xlSGlnaGxpZ2h0U3RhdGVDaGFuZ2VkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJUb2dnbGVIaWdobGlnaHRTdGF0ZUNoYW5nZWRcIl0gPSBcInRvZ2dsZUhpZ2hsaWdodFwiO1xuICAgIC8vIERQSV9UcmFuc2Zvcm1lZDgwRm9ybWF0LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJUcmFuc2Zvcm1lZDgwRm9ybWF0XCJdID0gXCJvbGRGb3JtYXRcIjtcbiAgICAvLyBEUElfVHJlbmRMaW5lU2VsZWN0ZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlRyZW5kTGluZVNlbGVjdGVkXCJdID0gXCJ0cmVuZExpbmVTZWxlY3RlZFwiO1xuICAgIC8vIERQSV9UcnVuY0RhdGUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlRydW5jRGF0ZVwiXSA9IFwidHJ1bmNEYXRlXCI7XG4gICAgLy8gRFBJX1R1cGxlU2VsZWN0ZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlR1cGxlU2VsZWN0ZWRcIl0gPSBcInR1cGxlU2VsZWN0ZWRcIjtcbiAgICAvLyBEUElfVUlBdXRvbWF0aW9uRGlkUGFnZUxvYWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlVJQXV0b21hdGlvbkRpZFBhZ2VMb2FkXCJdID0gXCJ1aUF1dG9tYXRpb25EaWRQYWdlTG9hZFwiO1xuICAgIC8vIERQSV9VSUF1dG9tYXRpb25Jc0NoZWNrZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlVJQXV0b21hdGlvbklzQ2hlY2tlZFwiXSA9IFwidWlBdXRvbWF0aW9uSXNDaGVja2VkXCI7XG4gICAgLy8gRFBJX1VJQXV0b21hdGlvbklzRW5hYmxlZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiVUlBdXRvbWF0aW9uSXNFbmFibGVkXCJdID0gXCJ1aUF1dG9tYXRpb25Jc0VuYWJsZWRcIjtcbiAgICAvLyBEUElfVUlBdXRvbWF0aW9uSXNFdmVudFByb2Nlc3NlZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiVUlBdXRvbWF0aW9uSXNFdmVudFByb2Nlc3NlZFwiXSA9IFwidWlBdXRvbWF0aW9uSXNFdmVudFByb2Nlc3NlZFwiO1xuICAgIC8vIERQSV9VSUF1dG9tYXRpb25Jc0ZvY3VzZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlVJQXV0b21hdGlvbklzRm9jdXNlZFwiXSA9IFwidWlBdXRvbWF0aW9uSXNGb2N1c2VkXCI7XG4gICAgLy8gRFBJX1VJQXV0b21hdGlvbklzRm91bmQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlVJQXV0b21hdGlvbklzRm91bmRcIl0gPSBcInVpQXV0b21hdGlvbklzRm91bmRcIjtcbiAgICAvLyBEUElfVUlBdXRvbWF0aW9uSXNSZWFkb25seSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiVUlBdXRvbWF0aW9uSXNSZWFkb25seVwiXSA9IFwidWlBdXRvbWF0aW9uSXNSZWFkb25seVwiO1xuICAgIC8vIERQSV9VSUF1dG9tYXRpb25Jc1NlbGVjdGVkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJVSUF1dG9tYXRpb25Jc1NlbGVjdGVkXCJdID0gXCJ1aUF1dG9tYXRpb25Jc1NlbGVjdGVkXCI7XG4gICAgLy8gRFBJX1VwZGF0ZUFsbFBhbmVzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJVcGRhdGVBbGxQYW5lc1wiXSA9IFwidXBkYXRlQWxsUGFuZXNcIjtcbiAgICAvLyBEUElfVXBkYXRlRFNDYXB0aW9uT25seSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiVXBkYXRlRFNDYXB0aW9uT25seVwiXSA9IFwidXBkYXRlRHNDYXB0aW9uT25seVwiO1xuICAgIC8vIERQSV9VcGRhdGVNb2RlbEZyb21QYXJhbXMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlVwZGF0ZU1vZGVsRnJvbVBhcmFtc1wiXSA9IFwidXBkYXRlTW9kZWxGcm9tUGFyYW1zXCI7XG4gICAgLy8gRFBJX1VwZGF0ZVNoZWx2ZXMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlVwZGF0ZVNoZWx2ZXNcIl0gPSBcInVwZGF0ZVNoZWx2ZXNcIjtcbiAgICAvLyBEUElfVXBkYXRlc1VzZUNvbnRleHQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlVwZGF0ZXNVc2VDb250ZXh0XCJdID0gXCJ1cGRhdGVzVXNlQ29udGV4dFwiO1xuICAgIC8vIERQSV9VcGdyYWRlRG9jdW1lbnRWZXJzaW9uLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJVcGdyYWRlRG9jdW1lbnRWZXJzaW9uXCJdID0gXCJ1cGdyYWRlRG9jdW1lbnRWZXJzaW9uXCI7XG4gICAgLy8gRFBJX1VzZUFsaWFzZXMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlVzZUFsaWFzZXNcIl0gPSBcInVzZUFsaWFzZXNcIjtcbiAgICAvLyBEUElfVXNlQmxhbmtGb3JOdWxsLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJVc2VCbGFua0Zvck51bGxcIl0gPSBcInVzZUJsYW5rRm9yTnVsbFwiO1xuICAgIC8vIERQSV9Vc2VDYWxjdWxhdGlvbkVkaXRvciwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiVXNlQ2FsY3VsYXRpb25FZGl0b3JcIl0gPSBcInVzZUNhbGN1bGF0aW9uRWRpdG9yXCI7XG4gICAgLy8gRFBJX1VzZUNlbnRlclZhbHVlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJVc2VDZW50ZXJWYWx1ZVwiXSA9IFwidXNlQ2VudGVyVmFsdWVcIjtcbiAgICAvLyBEUElfVXNlQ29sb3IsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlVzZUNvbG9yXCJdID0gXCJ1c2VDb2xvclwiO1xuICAgIC8vIERQSV9Vc2VDdXN0b21NYXJrU2l6ZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiVXNlQ3VzdG9tTWFya1NpemVcIl0gPSBcInVzZUN1c3RvbU1hcmtTaXplXCI7XG4gICAgLy8gRFBJX1VzZURhcmtJY29ucywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiVXNlRGFya0ljb25zXCJdID0gXCJ1c2VEYXJrSWNvbnNcIjtcbiAgICAvLyBEUElfVXNlRGF0YVN0b3JlTWluZmllZE5hbWVzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJVc2VEYXRhU3RvcmVNaW5maWVkTmFtZXNcIl0gPSBcInVzZURhdGFzdG9yZU1pbk5hbWVzXCI7XG4gICAgLy8gRFBJX1VzZUluaXRpYWxEb21haW5UeXBlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJVc2VJbml0aWFsRG9tYWluVHlwZVwiXSA9IFwidXNlSW5pdGlhbERvbWFpblR5cGVcIjtcbiAgICAvLyBEUElfVXNlRW5kVmFsdWUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlVzZUVuZFZhbHVlXCJdID0gXCJ1c2VFbmRWYWx1ZVwiO1xuICAgIC8vIERQSV9Vc2VGb3JPdmVybGF5SGl0VGVzdCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiVXNlRm9yT3ZlcmxheUhpdFRlc3RcIl0gPSBcInVzZUZvck92ZXJsYXlIaXRUZXN0XCI7XG4gICAgLy8gRFBJX1VzZUZ1bGxDb2xvclJhbmdlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJVc2VGdWxsQ29sb3JSYW5nZVwiXSA9IFwidXNlRnVsbENvbG9yUmFuZ2VcIjtcbiAgICAvLyBEUElfVXNlRnVsbERvbWFpbiwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiVXNlRnVsbERvbWFpblwiXSA9IFwidXNlRnVsbERvbWFpblwiO1xuICAgIC8vIERQSV9Vc2VJbmxpbmVJbWFnZXMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlVzZUlubGluZUltYWdlc1wiXSA9IFwidXNlSW5saW5lSW1hZ2VzXCI7XG4gICAgLy8gRFBJX1VzZU1lYXN1cmVzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJVc2VNZWFzdXJlc1wiXSA9IFwidXNlTWVhc3VyZXNcIjtcbiAgICAvLyBEUElfVXNlTmV3UXVpY2tGaWx0ZXJzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJVc2VOZXdRdWlja0ZpbHRlcnNcIl0gPSBcInVzZU5ld1F1aWNrRmlsdGVyc1wiO1xuICAgIC8vIERQSV9Vc2VOb3RpZmljYXRpb25SZXR1cm4sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlVzZU5vdGlmaWNhdGlvblJldHVyblwiXSA9IFwidXNlTm90aWZpY2F0aW9uUmV0dXJuXCI7XG4gICAgLy8gRFBJX1VzZVBhcmFtZXRlcnMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlVzZVBhcmFtZXRlcnNcIl0gPSBcInVzZVBhcmFtZXRlcnNcIjtcbiAgICAvLyBEUElfVXNlU2VsZWN0b3IsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlVzZVNlbGVjdG9yXCJdID0gXCJ1c2VTZWxlY3RvclwiO1xuICAgIC8vIERQSV9Vc2VTaWduaWZpY2FudERpZ2l0cywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiVXNlU2lnbmlmaWNhbnREaWdpdHNcIl0gPSBcInVzZVNpZ25pZmljYW50RGlnaXRzXCI7XG4gICAgLy8gRFBJX1VzZVNwZWNpYWxTdHJpbmdzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJVc2VTcGVjaWFsU3RyaW5nc1wiXSA9IFwidXNlU3BlY2lhbFN0cmluZ3NcIjtcbiAgICAvLyBEUElfVXNlU3RhcnRWYWx1ZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiVXNlU3RhcnRWYWx1ZVwiXSA9IFwidXNlU3RhcnRWYWx1ZVwiO1xuICAgIC8vIERQSV9Vc2VUYWJzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJVc2VUYWJzXCJdID0gXCJ1c2VUYWJzXCI7XG4gICAgLy8gRFBJX1VzZVRhYmxldEFzRGVmYXVsdFByZXZpZXcsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlVzZVRhYmxldEFzRGVmYXVsdFByZXZpZXdcIl0gPSBcInVzZVRhYmxldEFzRGVmYXVsdFByZXZpZXdcIjtcbiAgICAvLyBEUElfVXNlVGFyZ2V0UHQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlVzZVRhcmdldFB0XCJdID0gXCJ1c2VUYXJnZXRQb2ludFwiO1xuICAgIC8vIERQSV9Vc2VVU0xvY2FsZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiVXNlVVNMb2NhbGVcIl0gPSBcInVzZVVzTG9jYWxlXCI7XG4gICAgLy8gRFBJX1VzZVlBeGlzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJVc2VZQXhpc1wiXSA9IFwidXNlWUF4aXNcIjtcbiAgICAvLyBEUElfVmFsaWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlZhbGlkXCJdID0gXCJ2YWxpZFwiO1xuICAgIC8vIERQSV9WaXpEYXRhVjgyLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJWaXpEYXRhVjgyXCJdID0gXCJ2aXpEYXRhODJcIjtcbiAgICAvLyBEUElfV01TQ29ubmVjdGlvblN1Y2Nlc3NmdWwsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIldNU0Nvbm5lY3Rpb25TdWNjZXNzZnVsXCJdID0gXCJ3bXNDb25uZWN0aW9uU3VjY2Vzc2Z1bFwiO1xuICAgIC8vIERQSV9XTVNTaG91bGRVc2VUaWxlcywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiV01TU2hvdWxkVXNlVGlsZXNcIl0gPSBcIndtc1Nob3VsZFVzZVRpbGVzXCI7XG4gICAgLy8gRFBJX1dhbnREb21haW4sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIldhbnREb21haW5cIl0gPSBcIndhbnREb21haW5cIjtcbiAgICAvLyBEUElfV29ya2Jvb2tNb2RpZmllZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiV29ya2Jvb2tNb2RpZmllZFwiXSA9IFwid29ya2Jvb2tNb2RpZmllZFwiO1xuICAgIC8vIERQSV9ab29tSW4sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlpvb21JblwiXSA9IFwiem9vbUluXCI7XG4gICAgLy8gRFBJX1Nob3dNYXJrTGFiZWxzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG93TWFya0xhYmVsc1wiXSA9IFwic2hvd01hcmtMYWJlbHNcIjtcbiAgICAvLyBEUElfSGFzRHVwbGljYXRlcywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSGFzRHVwbGljYXRlc1wiXSA9IFwiaGFzRHVwbGljYXRlc1wiO1xuICAgIC8vIERQSV9IYXNVc2VyRGVmaW5lZEluY3JlbWVudCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSGFzVXNlckRlZmluZWRJbmNyZW1lbnRcIl0gPSBcImhhc1VzZXJEZWZpbmVkSW5jcmVtZW50XCI7XG4gICAgLy8gRFBJX0hhc1VzZXJEZWZpbmVkTWF4LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJIYXNVc2VyRGVmaW5lZE1heFwiXSA9IFwiaGFzVXNlckRlZmluZWRNYXhcIjtcbiAgICAvLyBEUElfSGFzVXNlckRlZmluZWRNaW4sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkhhc1VzZXJEZWZpbmVkTWluXCJdID0gXCJoYXNVc2VyRGVmaW5lZE1pblwiO1xuICAgIC8vIERQSV9Jc0R1cGxpY2F0ZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNEdXBsaWNhdGVcIl0gPSBcImlzRHVwbGljYXRlXCI7XG4gICAgLy8gRFBJX0lzRWRpdGluZ1ZhbHVlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0VkaXRpbmdWYWx1ZVwiXSA9IFwiaXNFZGl0aW5nVmFsdWVcIjtcbiAgICAvLyBEUElfU2hvdWxkUmVzdHJpY3REYXRhVHlwZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvdWxkUmVzdHJpY3REYXRhVHlwZVwiXSA9IFwicmVzdHJpY3REYXRhVHlwZVwiO1xuICAgIC8vIERQSV9FbmFibGVJbmNsdWRlWmVybywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRW5hYmxlSW5jbHVkZVplcm9cIl0gPSBcImVuYWJsZUluY2x1ZGVaZXJvXCI7XG4gICAgLy8gRFBJX0VuYWJsZVN5bmNEdWFsQXhlcywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRW5hYmxlU3luY0R1YWxBeGVzXCJdID0gXCJlbmFibGVTeW5jaHJvbml6ZUR1YWxBeGVzXCI7XG4gICAgLy8gRFBJX0VuYWJsZVNob3dUaW1lcywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRW5hYmxlU2hvd1RpbWVzXCJdID0gXCJlbmFibGVTaG93VGltZXNcIjtcbiAgICAvLyBEUElfRW5hYmxlVGlja01hcmtzVGFiLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJFbmFibGVUaWNrTWFya3NUYWJcIl0gPSBcImVuYWJsZVRpY2tNYXJrc1RhYlwiO1xuICAgIC8vIERQSV9Jc1RlbXBvcmFsLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1RlbXBvcmFsXCJdID0gXCJpc1RlbXBvcmFsXCI7XG4gICAgLy8gRFBJX1Nob3VsZEluY2x1ZGVaZXJvLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG91bGRJbmNsdWRlWmVyb1wiXSA9IFwic2hvdWxkSW5jbHVkZVplcm9cIjtcbiAgICAvLyBEUElfU2hvdWxkUmV2ZXJzZUF4aXMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3VsZFJldmVyc2VBeGlzXCJdID0gXCJzaG91bGRSZXZlcnNlQXhpc1wiO1xuICAgIC8vIERQSV9TaG91bGRTaG93VGltZXMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3VsZFNob3dUaW1lc1wiXSA9IFwic2hvdWxkU2hvd1RpbWVzXCI7XG4gICAgLy8gRFBJX1VzZUF1dG9tYXRpY0F4aXNTdWJ0aXRsZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiVXNlQXV0b21hdGljQXhpc1N1YnRpdGxlXCJdID0gXCJ1c2VBdXRvbWF0aWNTdWJ0aXRsZVwiO1xuICAgIC8vIERQSV9Vc2VBdXRvbWF0aWNBeGlzVGl0bGUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlVzZUF1dG9tYXRpY0F4aXNUaXRsZVwiXSA9IFwidXNlQXV0b21hdGljVGl0bGVcIjtcbiAgICAvLyBEUElfQWxsU2VsZWN0ZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkFsbFNlbGVjdGVkXCJdID0gXCJhbGxTZWxlY3RlZFwiO1xuICAgIC8vIERQSV9BdXRvQ29tbWl0LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJBdXRvQ29tbWl0XCJdID0gXCJhdXRvQ29tbWl0XCI7XG4gICAgLy8gRFBJX0NhY2hlT25seSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQ2FjaGVPbmx5XCJdID0gXCJjYWNoZU9ubHlcIjtcbiAgICAvLyBEUElfSW5jbHVkZURhdGEsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkluY2x1ZGVEYXRhXCJdID0gXCJpbmNsdWRlRGF0YVwiO1xuICAgIC8vIERQSV9Jc1BhdHRlcm5FeGNsdXNpdmUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzUGF0dGVybkV4Y2x1c2l2ZVwiXSA9IFwiaXNQYXR0ZXJuRXhjbHVzaXZlXCI7XG4gICAgLy8gRFBJX0lzU2VhcmNoYWJsZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNTZWFyY2hhYmxlXCJdID0gXCJpc1NlYXJjaGFibGVcIjtcbiAgICAvLyBEUElfSXNTZWxlY3Rpb25FeGNsdXNpdmUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzU2VsZWN0aW9uRXhjbHVzaXZlXCJdID0gXCJpc1NlbGVjdGlvbkV4Y2x1c2l2ZVwiO1xuICAgIC8vIERQSV9SZXNldE5ld0ZpbHRlciwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiUmVzZXROZXdGaWx0ZXJcIl0gPSBcInJlc2V0TmV3RmlsdGVyXCI7XG4gICAgLy8gRFBJX1VzZUFsbFdoZW5NYW51YWxFbXB0eSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiVXNlQWxsV2hlbk1hbnVhbEVtcHR5XCJdID0gXCJ1c2VBbGxXaGVuTWFudWFsRW1wdHlcIjtcbiAgICAvLyBEUElfVXNlQWxsV2hlblBhdHRlcm5FbXB0eSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiVXNlQWxsV2hlblBhdHRlcm5FbXB0eVwiXSA9IFwidXNlQWxsV2hlblBhdHRlcm5FbXB0eVwiO1xuICAgIC8vIERQSV9Hcm91cEJ5RHJpbGxEb3duLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJHcm91cEJ5RHJpbGxEb3duXCJdID0gXCJncm91cEJ5RHJpbGxEb3duXCI7XG4gICAgLy8gRFBJX0dyb3VwQnlUYWJsZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiR3JvdXBCeVRhYmxlXCJdID0gXCJncm91cEJ5VGFibGVcIjtcbiAgICAvLyBEUElfSW5jbHVkZUdyb3VwcywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSW5jbHVkZUdyb3Vwc1wiXSA9IFwiaW5jbHVkZUdyb3Vwc1wiO1xuICAgIC8vIERQSV9JbmNsdWRlUGVuZGluZ1N0YXRlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJbmNsdWRlUGVuZGluZ1N0YXRlXCJdID0gXCJpbmNsdWRlUGVuZGluZ1N0YXRlXCI7XG4gICAgLy8gRFBJX0luY2x1ZGVGaWVsZE1lbnVzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJbmNsdWRlRmllbGRNZW51c1wiXSA9IFwiaW5jbHVkZUZpZWxkTWVudXNcIjtcbiAgICAvLyBEUElfSW5jbHVkZUZvcm1hdHRlZFZhbHVlcywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSW5jbHVkZUZvcm1hdHRlZFZhbHVlc1wiXSA9IFwiaW5jbHVkZUZvcm1hdHRlZFZhbHVlc1wiO1xuICAgIC8vIERQSV9JbmNsdWRlQ29sdW1uSW5zdGFuY2VzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJbmNsdWRlQ29sdW1uSW5zdGFuY2VzXCJdID0gXCJpbmNsdWRlQ29sdW1uSW5zdGFuY2VzXCI7XG4gICAgLy8gRFBJX0luY2x1ZGVBZEhvY0NhbGNzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJbmNsdWRlQWRIb2NDYWxjc1wiXSA9IFwiaW5jbHVkZUFkaG9jQ2FsY3NcIjtcbiAgICAvLyBEUElfSW5jbHVkZUhpZGRlbkludmFsaWRGaWVsZHMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkluY2x1ZGVIaWRkZW5JbnZhbGlkRmllbGRzXCJdID0gXCJpbmNsdWRlSGlkZGVuSW52YWxpZEZpZWxkc1wiO1xuICAgIC8vIERQSV9JbmNsdWRlTm9uRXh0cmFjdGVkQ29sdW1ucywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSW5jbHVkZU5vbkV4dHJhY3RlZENvbHVtbnNcIl0gPSBcImluY2x1ZGVOb25FeHRyYWN0ZWRDb2x1bW5zXCI7XG4gICAgLy8gRFBJX0luY2x1ZGVDYWxjdWxhdGVkRmllbGRGb3JtdWxhcywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSW5jbHVkZUNhbGN1bGF0ZWRGaWVsZEZvcm11bGFzXCJdID0gXCJpbmNsdWRlQ2FsY3VsYXRlZEZpZWxkRm9ybXVsYXNcIjtcbiAgICAvLyBEUElfU2V0RGF0YVByZXZpZXdDdXN0b21GaWVsZE9yZGVyLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTZXREYXRhUHJldmlld0N1c3RvbUZpZWxkT3JkZXJcIl0gPSBcInNldERhdGFQcmV2aWV3Q3VzdG9tRmllbGRPcmRlclwiO1xuICAgIC8vIERQSV9DdXN0b21TcGxpdEFsbG93U3BsaXRGcm9tUmlnaHQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkN1c3RvbVNwbGl0QWxsb3dTcGxpdEZyb21SaWdodFwiXSA9IFwiY3VzdG9tU3BsaXRBbGxvd1NwbGl0RnJvbVJpZ2h0XCI7XG4gICAgLy8gRFBJX0lzQ2hhbmdlZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNDaGFuZ2VkXCJdID0gXCJpc0NoYW5nZWRcIjtcbiAgICAvLyBEUElfU2hvd0ZvbnRDb2xvclBpY2tlciwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd0ZvbnRDb2xvclBpY2tlclwiXSA9IFwic2hvd0ZvbnRDb2xvclBpY2tlclwiO1xuICAgIC8vIERQSV9TaG93Rm9udEZhbWlseVBpY2tlciwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd0ZvbnRGYW1pbHlQaWNrZXJcIl0gPSBcInNob3dGb250RmFtaWx5UGlja2VyXCI7XG4gICAgLy8gRFBJX1Nob3dGb250U2l6ZVBpY2tlciwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd0ZvbnRTaXplUGlja2VyXCJdID0gXCJzaG93Rm9udFNpemVQaWNrZXJcIjtcbiAgICAvLyBEUElfU2hvd0ZvbnRTdHlsZUJ1dHRvbnMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3dGb250U3R5bGVCdXR0b25zXCJdID0gXCJzaG93Rm9udFN0eWxlQnV0dG9uc1wiO1xuICAgIC8vIERQSV9TaG93TGluZUZvckFsbCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd0xpbmVGb3JBbGxcIl0gPSBcInNob3dMaW5lRm9yQWxsXCI7XG4gICAgLy8gRFBJX1Nob3dMaW5lRm9yQ29sdW1uLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG93TGluZUZvckNvbHVtblwiXSA9IFwic2hvd0xpbmVGb3JDb2x1bW5cIjtcbiAgICAvLyBEUElfU2hvd0xpbmVGb3JSb3csIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3dMaW5lRm9yUm93XCJdID0gXCJzaG93TGluZUZvclJvd1wiO1xuICAgIC8vIERQSV9TaG93TGluZVBhdHRlcm5QaWNrZXIsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3dMaW5lUGF0dGVyblBpY2tlclwiXSA9IFwic2hvd0xpbmVQYXR0ZXJuUGlja2VyXCI7XG4gICAgLy8gRFBJX1Nob3dMaW5lVHJhbnNwYXJlbmN5LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTaG93TGluZVRyYW5zcGFyZW5jeVwiXSA9IFwic2hvd0xpbmVUcmFuc3BhcmVuY3lcIjtcbiAgICAvLyBEUElfU2hvd0xpbmVXaWR0aFBpY2tlciwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd0xpbmVXaWR0aFBpY2tlclwiXSA9IFwic2hvd0xpbmVXaWR0aFBpY2tlclwiO1xuICAgIC8vIERQSV9DYW5CZUF1dG8sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkNhbkJlQXV0b1wiXSA9IFwiY2FuQmVBdXRvXCI7XG4gICAgLy8gRFBJX0NhbkJlTm9uZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQ2FuQmVOb25lXCJdID0gXCJjYW5CZU5vbmVcIjtcbiAgICAvLyBEUElfQ2FuTWF0Y2hNYXJrQ29sb3IsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkNhbk1hdGNoTWFya0NvbG9yXCJdID0gXCJjYW5NYXRjaE1hcmtDb2xvclwiO1xuICAgIC8vIERQSV9IYXNPcGFjaXR5LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJIYXNPcGFjaXR5XCJdID0gXCJoYXNPcGFjaXR5XCI7XG4gICAgLy8gRFBJX0luY2x1ZGVBbGxIaWRkZW4sIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkluY2x1ZGVBbGxIaWRkZW5cIl0gPSBcImluY2x1ZGVBbGxIaWRkZW5cIjtcbiAgICAvLyBEUElfSW5jbHVkZUN1cnJlbnQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIkluY2x1ZGVDdXJyZW50XCJdID0gXCJpbmNsdWRlQ3VycmVudFwiO1xuICAgIC8vIERQSV9Jc0luY2x1ZGVkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0luY2x1ZGVkXCJdID0gXCJpc0luY2x1ZGVkXCI7XG4gICAgLy8gRFBJX0lzUmVsYXRpdmUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzUmVsYXRpdmVcIl0gPSBcImlzUmVsYXRpdmVcIjtcbiAgICAvLyBEUElfSXNTZWNvbmRhcnlBbGxvd2VkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1NlY29uZGFyeUFsbG93ZWRcIl0gPSBcImlzU2Vjb25kYXJ5QWxsb3dlZFwiO1xuICAgIC8vIERQSV9OdWxsSWZJbmNvbXBsZXRlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJOdWxsSWZJbmNvbXBsZXRlXCJdID0gXCJudWxsSWZJbmNvbXBsZXRlXCI7XG4gICAgLy8gRFBJX0lzQ2FsY0Fzc2lzdGFuY2VFbmFibGVkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0NhbGNBc3Npc3RhbmNlRW5hYmxlZFwiXSA9IFwiaXNDYWxjQXNzaXN0YW5jZUVuYWJsZWRcIjtcbiAgICAvLyBEUElfVXNlU2Vjb25kYXJ5Q2FsYywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiVXNlU2Vjb25kYXJ5Q2FsY1wiXSA9IFwidXNlU2Vjb25kYXJ5Q2FsY1wiO1xuICAgIC8vIERQSV9DYW5Mb2FkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJDYW5Mb2FkXCJdID0gXCJjYW5Mb2FkXCI7XG4gICAgLy8gRFBJX0Rlc2NyaXB0aW9uT25seSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiRGVzY3JpcHRpb25Pbmx5XCJdID0gXCJkZXNjcmlwdGlvbk9ubHlcIjtcbiAgICAvLyBEUElfQXJlQWxpYXNlc1N1cHBvcnRlZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQXJlQWxpYXNlc1N1cHBvcnRlZFwiXSA9IFwiYXJlQWxpYXNlc1N1cHBvcnRlZFwiO1xuICAgIC8vIERQSV9BcmVSZWZDb2x1bW5zU3VwcG9ydGVkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJBcmVSZWZDb2x1bW5zU3VwcG9ydGVkXCJdID0gXCJhcmVSZWZDb2x1bW5zU3VwcG9ydGVkXCI7XG4gICAgLy8gRFBJX0lzQWdncmVnYXRlZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNBZ2dyZWdhdGVkXCJdID0gXCJpc0FnZ3JlZ2F0ZWRcIjtcbiAgICAvLyBEUElfSXNFeHBvcnRTdXBwb3J0ZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzRXhwb3J0U3VwcG9ydGVkXCJdID0gXCJpc0V4cG9ydFN1cHBvcnRlZFwiO1xuICAgIC8vIERQSV9Jc01lYXN1cmVOYW1lcywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNNZWFzdXJlTmFtZXNcIl0gPSBcImlzTWVhc3VyZU5hbWVzXCI7XG4gICAgLy8gRFBJX0lzU3VtbWFyeVN1cHBvcnRlZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNTdW1tYXJ5U3VwcG9ydGVkXCJdID0gXCJpc1N1bW1hcnlTdXBwb3J0ZWRcIjtcbiAgICAvLyBEUElfSXNUb3BOU3VwcG9ydGVkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1RvcE5TdXBwb3J0ZWRcIl0gPSBcImlzVG9wTlN1cHBvcnRlZFwiO1xuICAgIC8vIERQSV9Jc1VuZGVybHlpbmdTdXBwb3J0ZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzVW5kZXJseWluZ1N1cHBvcnRlZFwiXSA9IFwiaXNVbmRlcmx5aW5nU3VwcG9ydGVkXCI7XG4gICAgLy8gRFBJX09ubHlFeHBvcnRTdW1tYXJ5LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJPbmx5RXhwb3J0U3VtbWFyeVwiXSA9IFwib25seUV4cG9ydFN1bW1hcnlcIjtcbiAgICAvLyBEUElfU2hvd0FsbEZpZWxkcywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd0FsbEZpZWxkc1wiXSA9IFwic2hvd0FsbEZpZWxkc1wiO1xuICAgIC8vIERQSV9Vc2VUYWJsZVB0cnMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlVzZVRhYmxlUHRyc1wiXSA9IFwidXNlVGFibGVQdHJzXCI7XG4gICAgLy8gRFBJX09ubHlGZXRjaFN1bW1hcnksIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIk9ubHlGZXRjaFN1bW1hcnlcIl0gPSBcIm9ubHlGZXRjaFN1bW1hcnlcIjtcbiAgICAvLyBEUElfSXNEZXZpY2VMYXlvdXRDdXN0b21pemVkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0RldmljZUxheW91dEN1c3RvbWl6ZWRcIl0gPSBcImlzRGV2aWNlTGF5b3V0Q3VzdG9taXplZFwiO1xuICAgIC8vIERQSV9Jc0RldmljZVNpemVDdXN0b21pemVkLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0RldmljZVNpemVDdXN0b21pemVkXCJdID0gXCJpc0RldmljZVNpemVDdXN0b21pemVkXCI7XG4gICAgLy8gRFBJX0lzRGV2aWNlU3VwcG9ydGVkQnlNb2JpbGVBcHAsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzRGV2aWNlU3VwcG9ydGVkQnlNb2JpbGVBcHBcIl0gPSBcImlzRGV2aWNlU3VwcG9ydGVkQnlNb2JpbGVBcHBcIjtcbiAgICAvLyBEUElfSXNQb3J0cmFpdCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNQb3J0cmFpdFwiXSA9IFwiaXNQb3J0cmFpdFwiO1xuICAgIC8vIERQSV9Jc1BvcnRyYWl0QnlEZWZhdWx0LCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc1BvcnRyYWl0QnlEZWZhdWx0XCJdID0gXCJpc1BvcnRyYWl0QnlEZWZhdWx0XCI7XG4gICAgLy8gRFBJX0lzVXNlckN1c3RvbUZvcm1hdCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNVc2VyQ3VzdG9tRm9ybWF0XCJdID0gXCJpc1VzZXJDdXN0b21Gb3JtYXRcIjtcbiAgICAvLyBEUElfU2hvdWxkRGlzcGxheVJlYnVpbGRFeHRyYWN0TWVzc2FnZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvdWxkRGlzcGxheVJlYnVpbGRFeHRyYWN0TWVzc2FnZVwiXSA9IFwic2hvdWxkRGlzcGxheVJlYnVpbGRFeHRyYWN0TWVzc2FnZVwiO1xuICAgIC8vIERQSV9TdXBwb3J0c0N1c3RvbVN0YXJ0T2ZXZWVrLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJTdXBwb3J0c0N1c3RvbVN0YXJ0T2ZXZWVrXCJdID0gXCJzdXBwb3J0c0N1c3RvbVN0YXJ0T2ZXZWVrXCI7XG4gICAgLy8gRFBJX05lZWRzQ29ubmVjdFByb21wdCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiTmVlZHNDb25uZWN0UHJvbXB0XCJdID0gXCJuZWVkc0Nvbm5lY3RQcm9tcHRcIjtcbiAgICAvLyBEUElfTmVlZHNDbG9zZURhdGFTb3VyY2VFcnJvclByb21wdCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiTmVlZHNDbG9zZURhdGFTb3VyY2VFcnJvclByb21wdFwiXSA9IFwibmVlZHNDbG9zZURzRXJyb3JQcm9tcHRcIjtcbiAgICAvLyBEUElfQ2xlYXJDdXJyZW50U2VsZWN0aW9uLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJDbGVhckN1cnJlbnRTZWxlY3Rpb25cIl0gPSBcImNsZWFyQ3VycmVudFNlbGVjdGlvblwiO1xuICAgIC8vIERQSV9IYXNDb250YWlucywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSGFzQ29udGFpbnNcIl0gPSBcImhhc0NvbnRhaW5zXCI7XG4gICAgLy8gRFBJX0hhc0VuZHNXaXRoLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJIYXNFbmRzV2l0aFwiXSA9IFwiaGFzRW5kc1dpdGhcIjtcbiAgICAvLyBEUElfSGFzUmVwbGFjZVNlbGVjdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSGFzUmVwbGFjZVNlbGVjdGlvblwiXSA9IFwiaGFzUmVwbGFjZVNlbGVjdGlvblwiO1xuICAgIC8vIERQSV9IYXNTdGFydHNXaXRoLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJIYXNTdGFydHNXaXRoXCJdID0gXCJoYXNTdGFydHNXaXRoXCI7XG4gICAgLy8gRFBJX0lzTGVhZlNlbGVjdGlvbk9ubHksIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzTGVhZlNlbGVjdGlvbk9ubHlcIl0gPSBcImlzTGVhZlNlbGVjdGlvbk9ubHlcIjtcbiAgICAvLyBEUElfUmVwbGFjZVNlbGVjdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiUmVwbGFjZVNlbGVjdGlvblwiXSA9IFwicmVwbGFjZVNlbGVjdGlvblwiO1xuICAgIC8vIERQSV9Jc0NvbG9yUGFsZXR0ZUN1c3RvbWl6ZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzQ29sb3JQYWxldHRlQ3VzdG9taXplZFwiXSA9IFwiaXNDb2xvclBhbGV0dGVDdXN0b21pemVkXCI7XG4gICAgLy8gRFBJX1JldmVyc2VQYWxldHRlT3JkZXIsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlJldmVyc2VQYWxldHRlT3JkZXJcIl0gPSBcInJldmVyc2VQYWxldHRlT3JkZXJcIjtcbiAgICAvLyBEUElfVHJpZWRUb0Nvbm5lY3QsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlRyaWVkVG9Db25uZWN0XCJdID0gXCJ0cmllZFRvQ29ubmVjdFwiO1xuICAgIC8vIERQSV9TY2FsZU1hcmtzSW5BeGlzVW5pdHMsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNjYWxlTWFya3NJbkF4aXNVbml0c1wiXSA9IFwic2NhbGVNYXJrc0luQXhpc1VuaXRzXCI7XG4gICAgLy8gRFBJX1Nob3dNYXJrU2l6aW5nT3B0aW9ucywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd01hcmtTaXppbmdPcHRpb25zXCJdID0gXCJzaG93TWFya1NpemluZ09wdGlvbnNcIjtcbiAgICAvLyBEUElfVXNlU2l6ZUZpZWxkQ2FwdGlvbiwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiVXNlU2l6ZUZpZWxkQ2FwdGlvblwiXSA9IFwidXNlU2l6ZUZpZWxkQ2FwdGlvblwiO1xuICAgIC8vIERQSV9Jc0xpY2Vuc2VkQW5kUmVnaXN0ZXJlZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNMaWNlbnNlZEFuZFJlZ2lzdGVyZWRcIl0gPSBcImlzTGljZW5zZWRBbmRSZWdpc3RlcmVkXCI7XG4gICAgLy8gRFBJX1NldE5ld0RhdGFzb3VyY2VBY3RpdmUsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlNldE5ld0RhdGFzb3VyY2VBY3RpdmVcIl0gPSBcInNldE5ld0RhdGFzb3VyY2VBY3RpdmVcIjtcbiAgICAvLyBEUElfQWxsb3dDdXN0b21MYWJlbCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQWxsb3dDdXN0b21MYWJlbFwiXSA9IFwiYWxsb3dDdXN0b21MYWJlbFwiO1xuICAgIC8vIERQSV9Jc01vc3RSZWNlbnRNb2RlVmFsaWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzTW9zdFJlY2VudE1vZGVWYWxpZFwiXSA9IFwiaXNNb3N0UmVjZW50TW9kZVZhbGlkXCI7XG4gICAgLy8gRFBJX011c3RTaG93TGFiZWxzLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJNdXN0U2hvd0xhYmVsc1wiXSA9IFwibXVzdFNob3dMYWJlbHNcIjtcbiAgICAvLyBEUElfU2hvd1J1bm5pbmdPcmRlckxhYmVscywgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd1J1bm5pbmdPcmRlckxhYmVsc1wiXSA9IFwic2hvd1J1bm5pbmdPcmRlckxhYmVsc1wiO1xuICAgIC8vIERQSV9Jc0Ryb3BwZWRGaWxlLCBoYXZpbmcgdHlwZSBib29sXG4gICAgUGFyYW1ldGVySWRbXCJJc0Ryb3BwZWRGaWxlXCJdID0gXCJpc0Ryb3BwZWRGaWxlXCI7XG4gICAgLy8gRFBJX0lzSW5pdGlhbGl6ZWQsIGhhdmluZyB0eXBlIGJvb2xcbiAgICBQYXJhbWV0ZXJJZFtcIklzSW5pdGlhbGl6ZWRcIl0gPSBcImlzSW5pdGlhbGl6ZWRcIjtcbiAgICAvLyBEUElfSW5jbHVkZURhc2hib2FyZCwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSW5jbHVkZURhc2hib2FyZFwiXSA9IFwiaW5jbHVkZURhc2hib2FyZFwiO1xuICAgIC8vIERQSV9DaGlsZHJlbkNhblJlc2l6ZSwgaGF2aW5nIHR5cGUgYm9vbFxuICAgIFBhcmFtZXRlcklkW1wiQ2hpbGRyZW5DYW5SZXNpemVcIl0gPSBcImNoaWxkcmVuQ2FuUmVzaXplXCI7XG4gICAgLy8gRFBJX0Jvb2xNYXAsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2YgYm9vbClcbiAgICBQYXJhbWV0ZXJJZFtcIkJvb2xNYXBcIl0gPSBcImJvb2xNYXBcIjtcbiAgICAvLyBEUElfQ2hlY2tlZE1lbnVJdGVtcywgaGF2aW5nIHR5cGUgYm9vbFtdXG4gICAgUGFyYW1ldGVySWRbXCJDaGVja2VkTWVudUl0ZW1zXCJdID0gXCJjaGVja2VkTWVudUl0ZW1zXCI7XG4gICAgLy8gRFBJX0luY2x1ZGVkU2hlZXRWYWx1ZXMsIGhhdmluZyB0eXBlIGJvb2xbXVxuICAgIFBhcmFtZXRlcklkW1wiSW5jbHVkZWRTaGVldFZhbHVlc1wiXSA9IFwiaW5jbHVkZWRTaGVldFZhbHVlc1wiO1xuICAgIC8vIERQSV9Tb3J0T3JkZXJWZWN0b3IsIGhhdmluZyB0eXBlIGJvb2xbXVxuICAgIFBhcmFtZXRlcklkW1wiU29ydE9yZGVyVmVjdG9yXCJdID0gXCJzb3J0T3JkZXJWZWN0b3JcIjtcbiAgICAvLyBEUElfQWN0aW9uTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJBY3Rpb25OYW1lXCJdID0gXCJhY3Rpb25OYW1lXCI7XG4gICAgLy8gRFBJX0FjdGlvblNvdXJjZVRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQWN0aW9uU291cmNlVGV4dFwiXSA9IFwiYWN0aW9uU291cmNlVGV4dFwiO1xuICAgIC8vIERQSV9BY3Rpb25UeXBlQXNTdHJpbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQWN0aW9uVHlwZUFzU3RyaW5nXCJdID0gXCJhY3Rpb25UeXBlQXNTdHJpbmdcIjtcbiAgICAvLyBEUElfQWN0aXZlVGFiLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkFjdGl2ZVRhYlwiXSA9IFwiYWN0aXZlX3RhYlwiO1xuICAgIC8vIERQSV9BZGRJbkZlYXR1cmVOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkFkZEluRmVhdHVyZU5hbWVcIl0gPSBcImFkZEluRmVhdHVyZU5hbWVcIjtcbiAgICAvLyBEUElfQWRkSW5JZCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJBZGRJbklkXCJdID0gXCJhZGRJbklkXCI7XG4gICAgLy8gRFBJX0FkZEluc3RhbmNlSWQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQWRkSW5zdGFuY2VJZFwiXSA9IFwiYWRkSW5JbnN0YW5jZUlkXCI7XG4gICAgLy8gRFBJX0FkZEluTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJBZGRJbk5hbWVcIl0gPSBcImFkZEluTmFtZVwiO1xuICAgIC8vIERQSV9BZGRJbkxvY2FsZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJBZGRJbkxvY2FsZVwiXSA9IFwiYWRkSW5Mb2NhbGVcIjtcbiAgICAvLyBEUElfQWRkSW5MYW5ndWFnZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJBZGRJbkxhbmd1YWdlXCJdID0gXCJhZGRJbkxhbmd1YWdlXCI7XG4gICAgLy8gRFBJX0FQSVZlcnNpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQVBJVmVyc2lvblwiXSA9IFwiYXBpVmVyc2lvblwiO1xuICAgIC8vIERQSV9BbGlhcywgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJBbGlhc1wiXSA9IFwiYWxpYXNcIjtcbiAgICAvLyBEUElfQW5jaG9yRGF0ZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJBbmNob3JEYXRlXCJdID0gXCJhbmNob3JEYXRlXCI7XG4gICAgLy8gRFBJX0Fubm90YXRpb25SZXMsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQW5ub3RhdGlvblJlc1wiXSA9IFwiYW5ub3RhdGlvblJlc1wiO1xuICAgIC8vIERQSV9SZWFkSWQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiUmVhZElkXCJdID0gXCJyZWFkSWRcIjtcbiAgICAvLyBEUElfQW5ub3RhdGlvblRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQW5ub3RhdGlvblRleHRcIl0gPSBcImFubm90YXRpb25UZXh0XCI7XG4gICAgLy8gRFBJX0FyY2hpdmVEaXJlY3RvcnksIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQXJjaGl2ZURpcmVjdG9yeVwiXSA9IFwiYXJjaGl2ZURpcmVjdG9yeVwiO1xuICAgIC8vIERQSV9BcmNoaXZlRnVsbFBhdGgsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQXJjaGl2ZUZ1bGxQYXRoXCJdID0gXCJhcmNoaXZlRnVsbFBhdGhcIjtcbiAgICAvLyBEUElfQXRUaGVMZXZlbEludmFsaWRGaWVsZENhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQXRUaGVMZXZlbEludmFsaWRGaWVsZENhcHRpb25cIl0gPSBcImF0VGhlTGV2ZWxJbnZhbGlkRmllbGRDYXB0aW9uXCI7XG4gICAgLy8gRFBJX0F1dG9Db21wbGV0ZVN1YnN0cmluZywgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJBdXRvQ29tcGxldGVTdWJzdHJpbmdcIl0gPSBcImFjU3Vic3RyaW5nXCI7XG4gICAgLy8gRFBJX0F1dG9zYXZlRmlsZUlkLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkF1dG9zYXZlRmlsZUlkXCJdID0gXCJhdXRvc2F2ZUZpbGVJZFwiO1xuICAgIC8vIERQSV9BdXRvc2F2ZVRpbWVySW50ZXJ2YWwsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQXV0b3NhdmVUaW1lckludGVydmFsXCJdID0gXCJhdXRvc2F2ZVRpbWVySW50ZXJ2YWxcIjtcbiAgICAvLyBEUElfQmFzZUNvbHVtbkNhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQmFzZUNvbHVtbkNhcHRpb25cIl0gPSBcImJhc2VDb2x1bW5DYXB0aW9uXCI7XG4gICAgLy8gRFBJX0NsZWFyQnV0dG9uVGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJDbGVhckJ1dHRvblRleHRcIl0gPSBcImNsZWFyQnV0dG9uVGV4dFwiO1xuICAgIC8vIERQSV9Db2xvclBhbGV0dGVJZCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJDb2xvclBhbGV0dGVJZFwiXSA9IFwiY29sb3JQYWxldHRlSWRcIjtcbiAgICAvLyBEUElfQ29sb3JQYWxldHRlTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJDb2xvclBhbGV0dGVOYW1lXCJdID0gXCJjb2xvclBhbGV0dGVOYW1lXCI7XG4gICAgLy8gRFBJX0NvbG9yU3dhdGNoLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbG9yU3dhdGNoXCJdID0gXCJjb2xvclN3YXRjaFwiO1xuICAgIC8vIERQSV9Db21tYW5kTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJDb21tYW5kTmFtZVwiXSA9IFwiY29tbWFuZE5hbWVcIjtcbiAgICAvLyBEUElfQ29uZmlkZW5jZUxldmVsVmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQ29uZmlkZW5jZUxldmVsVmFsdWVcIl0gPSBcImNvbmZpZGVuY2VMZXZlbFZhbHVlXCI7XG4gICAgLy8gRFBJX0NvdW50RGlzdGluY3RTdHIsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQ291bnREaXN0aW5jdFN0clwiXSA9IFwiY291bnREaXN0aW5jdFN0clwiO1xuICAgIC8vIERQSV9Dcm9zc1RhYkZpbGVwYXRoLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkNyb3NzVGFiRmlsZXBhdGhcIl0gPSBcImNyb3NzVGFiRmlsZXBhdGhcIjtcbiAgICAvLyBEUElfQ1NTTWFyZ2luLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkNTU01hcmdpblwiXSA9IFwiY3NzTWFyZ2luXCI7XG4gICAgLy8gRFBJX0NTU1doaXRlc3BhY2UsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQ1NTV2hpdGVzcGFjZVwiXSA9IFwiY3NzV2hpdGVzcGFjZVwiO1xuICAgIC8vIERQSV9EQlBhc3N3b3JkLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkRCUGFzc3dvcmRcIl0gPSBcImRiUGFzc3dvcmRcIjtcbiAgICAvLyBEUElfREJVc2VybmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJEQlVzZXJuYW1lXCJdID0gXCJkYlVzZXJuYW1lXCI7XG4gICAgLy8gRFBJX0RhdGFBbGVydENvbmRpdGlvblRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRGF0YUFsZXJ0Q29uZGl0aW9uVGV4dFwiXSA9IFwiZGF0YUFsZXJ0Q29uZGl0aW9uVGV4dFwiO1xuICAgIC8vIERQSV9EYXRhQWxlcnRNZWFzdXJlVGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJEYXRhQWxlcnRNZWFzdXJlVGV4dFwiXSA9IFwiZGF0YUFsZXJ0TWVhc3VyZVRleHRcIjtcbiAgICAvLyBEUElfRGF0YUFsZXJ0U3BlY1NlcmlhbGl6ZWRUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFBbGVydFNwZWNTZXJpYWxpemVkVGV4dFwiXSA9IFwiZGF0YUFsZXJ0U3BlY1NlcmlhbGl6ZWRUZXh0XCI7XG4gICAgLy8gRFBJX0RhdGFBbGVydERlZmF1bHRTdWJqZWN0LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFBbGVydERlZmF1bHRTdWJqZWN0XCJdID0gXCJkYXRhQWxlcnREZWZhdWx0U3ViamVjdFwiO1xuICAgIC8vIERQSV9EYXRhQWxlcnRUaHJlc2hvbGRUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFBbGVydFRocmVzaG9sZFRleHRcIl0gPSBcImRhdGFBbGVydFRocmVzaG9sZFRleHRcIjtcbiAgICAvLyBEUElfRGF0YUdyaWRTb3J0Q29sdW1uTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJEYXRhR3JpZFNvcnRDb2x1bW5OYW1lXCJdID0gXCJkYXRhZ3JpZFNvcnRDb2x1bW5OYW1lXCI7XG4gICAgLy8gRFBJX0RhdGFTZXJ2ZXJDb25uZWN0aW9uRXJyb3IsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRGF0YVNlcnZlckNvbm5lY3Rpb25FcnJvclwiXSA9IFwiZGF0YVNlcnZlckNvbm5lY3Rpb25FcnJvclwiO1xuICAgIC8vIERQSV9EYXRhYmFzZUZpbHRlciwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJEYXRhYmFzZUZpbHRlclwiXSA9IFwiZGF0YWJhc2VGaWx0ZXJcIjtcbiAgICAvLyBEUElfRGF0YWJhc2VGaWx0ZXJQcm9tcHQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRGF0YWJhc2VGaWx0ZXJQcm9tcHRcIl0gPSBcImRhdGFiYXNlRmlsdGVyUHJvbXB0XCI7XG4gICAgLy8gRFBJX0RhdGFzb3VyY2VSYW5raW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFzb3VyY2VSYW5raW5nXCJdID0gXCJkYXRhc291cmNlUmFua2luZ1wiO1xuICAgIC8vIERQSV9EYXRhc291cmNlVXJsLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFzb3VyY2VVcmxcIl0gPSBcImRhdGFzb3VyY2VVcmxcIjtcbiAgICAvLyBEUElfRGF0YXNvdXJjZVVzZXJuYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFzb3VyY2VVc2VybmFtZVwiXSA9IFwiZGF0YXNvdXJjZVVzZXJuYW1lXCI7XG4gICAgLy8gRFBJX0RhdGVGb3JtYXQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRGF0ZUZvcm1hdFwiXSA9IFwiZGF0ZUZvcm1hdFwiO1xuICAgIC8vIERQSV9EYXRlUGFydCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJEYXRlUGFydFwiXSA9IFwiZGF0ZVBhcnRcIjtcbiAgICAvLyBEUElfRGF0ZVBhcnRBYmJyZXYsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRGF0ZVBhcnRBYmJyZXZcIl0gPSBcImRhdGVQYXJ0QWJicmV2XCI7XG4gICAgLy8gRFBJX0RlZmF1bHRIaWVyYXJjaHlOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkRlZmF1bHRIaWVyYXJjaHlOYW1lXCJdID0gXCJkZWZhdWx0SGllcmFyY2h5TmFtZVwiO1xuICAgIC8vIERQSV9EZWZhdWx0TWVudUl0ZW1LZXksIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRGVmYXVsdE1lbnVJdGVtS2V5XCJdID0gXCJkZWZhdWx0TWVudUl0ZW1LZXlcIjtcbiAgICAvLyBEUElfRGVsaW1pdGVyLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkRlbGltaXRlclwiXSA9IFwiZGVsaW1pdGVyXCI7XG4gICAgLy8gRFBJX0RldmljZU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRGV2aWNlTmFtZVwiXSA9IFwiZGV2aWNlTmFtZVwiO1xuICAgIC8vIERQSV9EZXZpY2VUeXBlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkRldmljZVR5cGVcIl0gPSBcImRldmljZVR5cGVcIjtcbiAgICAvLyBEUElfRGlzcGxheVBhdGgsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRGlzcGxheVBhdGhcIl0gPSBcImRpc3BsYXlQYXRoXCI7XG4gICAgLy8gRFBJX0Rpc3RyaWJ1dGlvblZhbHVlU3RyaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkRpc3RyaWJ1dGlvblZhbHVlU3RyaW5nXCJdID0gXCJkaXN0cmlidXRpb25WYWx1ZVN0cmluZ1wiO1xuICAgIC8vIERQSV9EcmlsbFBhdGhOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkRyaWxsUGF0aE5hbWVcIl0gPSBcImRyaWxsUGF0aE5hbWVcIjtcbiAgICAvLyBEUElfRW1iZWRkZWRUaXRsZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJFbWJlZGRlZFRpdGxlXCJdID0gXCJlbWJlZGRlZFRpdGxlXCI7XG4gICAgLy8gRFBJX0VudGVyVmFsdWVUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkVudGVyVmFsdWVUZXh0XCJdID0gXCJlbnRlclZhbHVlVGV4dFwiO1xuICAgIC8vIERQSV9Fc2NhcGVTdHJpbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRXNjYXBlU3RyaW5nXCJdID0gXCJlc2NhcGVTdHJpbmdcIjtcbiAgICAvLyBEUElfRXh0U3ZjQ29uZmlnSG9zdCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJFeHRTdmNDb25maWdIb3N0XCJdID0gXCJleHRTdmNDb25maWdIb3N0XCI7XG4gICAgLy8gRFBJX0V4dFN2Y0NvbmZpZ1Bhc3N3b3JkLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkV4dFN2Y0NvbmZpZ1Bhc3N3b3JkXCJdID0gXCJleHRTdmNDb25maWdQYXNzd29yZFwiO1xuICAgIC8vIERQSV9FeHRTdmNDb25maWdQb3J0LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkV4dFN2Y0NvbmZpZ1BvcnRcIl0gPSBcImV4dFN2Y0NvbmZpZ1BvcnRcIjtcbiAgICAvLyBEUElfRXh0U3ZjQ29uZmlnQ29ubmVjdFRpbWVvdXQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRXh0U3ZjQ29uZmlnQ29ubmVjdFRpbWVvdXRcIl0gPSBcImV4dFN2Y0Nvbm5lY3RUaW1lb3V0XCI7XG4gICAgLy8gRFBJX0V4dFN2Y0NvbmZpZ1ByZXZIb3N0LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkV4dFN2Y0NvbmZpZ1ByZXZIb3N0XCJdID0gXCJleHRTdmNDb25maWdQcmV2SG9zdFwiO1xuICAgIC8vIERQSV9FeHRTdmNDb25maWdVc2VybmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJFeHRTdmNDb25maWdVc2VybmFtZVwiXSA9IFwiZXh0U3ZjQ29uZmlnVXNlcm5hbWVcIjtcbiAgICAvLyBEUElfRXh0cmFjdFVwZGF0ZVRpbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRXh0cmFjdFVwZGF0ZVRpbWVcIl0gPSBcImV4dHJhY3RVcGRhdGVUaW1lXCI7XG4gICAgLy8gRFBJX0ZpZWxkRm9sZGVyTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJGaWVsZEZvbGRlck5hbWVcIl0gPSBcImZpZWxkRm9sZGVyTmFtZVwiO1xuICAgIC8vIERQSV9GaWVsZE5hbWVTdHJpbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRmllbGROYW1lU3RyaW5nXCJdID0gXCJmaWVsZE5hbWVcIjtcbiAgICAvLyBEUElfRmlsdGVyU2VhcmNoRG9tYWluLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkZpbHRlclNlYXJjaERvbWFpblwiXSA9IFwiZmlsdGVyU2VhcmNoRG9tYWluXCI7XG4gICAgLy8gRFBJX0ZpbHRlclNwZWMsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRmlsdGVyU3BlY1wiXSA9IFwiZmlsdGVyU3BlY1wiO1xuICAgIC8vIERQSV9GaXJzdFZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkZpcnN0VmFsdWVcIl0gPSBcImZpcnN0VmFsdWVcIjtcbiAgICAvLyBEUElfRm9sZGVyTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJGb2xkZXJOYW1lXCJdID0gXCJmb2xkZXJOYW1lXCI7XG4gICAgLy8gRFBJX0ZvbnROYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkZvbnROYW1lXCJdID0gXCJmb250TmFtZVwiO1xuICAgIC8vIERQSV9Gb3JtYXRTdHJpbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRm9ybWF0U3RyaW5nXCJdID0gXCJmb3JtYXRTdHJpbmdcIjtcbiAgICAvLyBEUElfRm9ybWF0dGVkRGlzcGxheVN0cmluZywgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJGb3JtYXR0ZWREaXNwbGF5U3RyaW5nXCJdID0gXCJmb3JtYXR0ZWREaXNwbGF5U3RyaW5nXCI7XG4gICAgLy8gRFBJX0Zvcm1hdHRlZEluY3JlbWVudFZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkZvcm1hdHRlZEluY3JlbWVudFZhbHVlXCJdID0gXCJmb3JtYXR0ZWRJbmNyZW1lbnRcIjtcbiAgICAvLyBEUElfRm9ybWF0dGVkTWF4VmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRm9ybWF0dGVkTWF4VmFsdWVcIl0gPSBcImZvcm1hdHRlZE1heFwiO1xuICAgIC8vIERQSV9Gb3JtYXR0ZWRNaW5WYWx1ZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJGb3JtYXR0ZWRNaW5WYWx1ZVwiXSA9IFwiZm9ybWF0dGVkTWluXCI7XG4gICAgLy8gRFBJX0Zvcm1hdHRlZFZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkZvcm1hdHRlZFZhbHVlXCJdID0gXCJmb3JtYXR0ZWRWYWx1ZVwiO1xuICAgIC8vIERQSV9Gb3JtYXR0ZWRDZW50ZXJWYWx1ZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJGb3JtYXR0ZWRDZW50ZXJWYWx1ZVwiXSA9IFwiZm9ybWF0dGVkQ2VudGVyXCI7XG4gICAgLy8gRFBJX0Zvcm1hdHRlZEVuZFZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkZvcm1hdHRlZEVuZFZhbHVlXCJdID0gXCJmb3JtYXR0ZWRFbmRcIjtcbiAgICAvLyBEUElfRm9ybWF0dGVkU3RhcnRWYWx1ZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJGb3JtYXR0ZWRTdGFydFZhbHVlXCJdID0gXCJmb3JtYXR0ZWRTdGFydFwiO1xuICAgIC8vIERQSV9QYWlyZWRGb3JtYXR0ZWRWYWx1ZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJQYWlyZWRGb3JtYXR0ZWRWYWx1ZVwiXSA9IFwicGFpcmVkRm9ybWF0dGVkVmFsdWVcIjtcbiAgICAvLyBEUElfRnJhbWVBdHRyaWJ1dGVzLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkZyYW1lQXR0cmlidXRlc1wiXSA9IFwiZnJhbWVBdHRyXCI7XG4gICAgLy8gRFBJX0dVSUQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiR1VJRFwiXSA9IFwiZ3VpZFwiO1xuICAgIC8vIERQSV9HZW9ncmFwaGljU2VhcmNoQ2FuZGlkYXRlRGlzcGxheU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiR2VvZ3JhcGhpY1NlYXJjaENhbmRpZGF0ZURpc3BsYXlOYW1lXCJdID0gXCJnZW9ncmFwaGljU2VhcmNoQ2FuZGlkYXRlRGlzcGxheU5hbWVcIjtcbiAgICAvLyBEUElfR2VvZ3JhcGhpY1NlYXJjaENhbmRpZGF0ZVBhcmVudE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiR2VvZ3JhcGhpY1NlYXJjaENhbmRpZGF0ZVBhcmVudE5hbWVcIl0gPSBcImdlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGVQYXJlbnROYW1lXCI7XG4gICAgLy8gRFBJX0dlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGVUeXBlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkdlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGVUeXBlXCJdID0gXCJnZW9ncmFwaGljU2VhcmNoQ2FuZGlkYXRlVHlwZVwiO1xuICAgIC8vIERQSV9HZW9ncmFwaGljU2VhcmNoTG9jYWxlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkdlb2dyYXBoaWNTZWFyY2hMb2NhbGVcIl0gPSBcImdlb2dyYXBoaWNTZWFyY2hMb2NhbGVcIjtcbiAgICAvLyBEUElfR2VvZ3JhcGhpY1NlYXJjaFF1ZXJ5U3RyaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkdlb2dyYXBoaWNTZWFyY2hRdWVyeVN0cmluZ1wiXSA9IFwiZ2VvZ3JhcGhpY1NlYXJjaFNlYXJjaFN0cmluZ1wiO1xuICAgIC8vIERQSV9HZW9ncmFwaGljU2VhcmNoVUlMb2NhbGUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiR2VvZ3JhcGhpY1NlYXJjaFVJTG9jYWxlXCJdID0gXCJnZW9ncmFwaGljU2VhcmNoVWlsb2NhbGVcIjtcbiAgICAvLyBEUElfSWNvblJlcywgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJJY29uUmVzXCJdID0gXCJpY29uUmVzXCI7XG4gICAgLy8gRFBJX0ltYWdlSGFzaCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJJbWFnZUhhc2hcIl0gPSBcImltYWdlSGFzaFwiO1xuICAgIC8vIERQSV9JbWFnZU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiSW1hZ2VOYW1lXCJdID0gXCJpbWFnZU5hbWVcIjtcbiAgICAvLyBEUElfSW1hZ2VSZXMsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiSW1hZ2VSZXNcIl0gPSBcImltYWdlUmVzXCI7XG4gICAgLy8gRFBJX0luY2x1ZGVzU2libGluZ3NQcm9tcHQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiSW5jbHVkZXNTaWJsaW5nc1Byb21wdFwiXSA9IFwiaW5jbHVkZXNTaWJsaW5nc1Byb21wdFwiO1xuICAgIC8vIERQSV9JbmNsdWRlc1N1YmZvbGRlcnNQcm9tcHQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiSW5jbHVkZXNTdWJmb2xkZXJzUHJvbXB0XCJdID0gXCJpbmNsdWRlc1N1YmZvbGRlcnNQcm9tcHRcIjtcbiAgICAvLyBEUElfSW5jcmVtZW50YWxTY2hlZHVsZUlEcywgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJJbmNyZW1lbnRhbFNjaGVkdWxlSURzXCJdID0gXCJpbmNyZW1lbnRhbFNjaGVkdWxlSWRzXCI7XG4gICAgLy8gRFBJX0ludmFyaWFudEtleXdvcmQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiSW52YXJpYW50S2V5d29yZFwiXSA9IFwiaW52YXJpYW50S2V5d29yZFwiO1xuICAgIC8vIERQSV9Kb2luT3BlcmF0b3IsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiSm9pbk9wZXJhdG9yXCJdID0gXCJqb2luT3BlcmF0b3JcIjtcbiAgICAvLyBEUElfSm9pbkV4cHJlc3Npb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiSm9pbkV4cHJlc3Npb25cIl0gPSBcImpvaW5FeHByZXNzaW9uXCI7XG4gICAgLy8gRFBJX0tleSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJLZXlcIl0gPSBcImtleUlkXCI7XG4gICAgLy8gRFBJX0xhYmVsLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkxhYmVsXCJdID0gXCJsYWJlbFwiO1xuICAgIC8vIERQSV9QYWlyZWRMYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJQYWlyZWRMYWJlbFwiXSA9IFwicGFpcmVkTGFiZWxcIjtcbiAgICAvLyBEUElfTGF5b3V0SUQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiTGF5b3V0SURcIl0gPSBcImxheW91dElkXCI7XG4gICAgLy8gRFBJX0xlZnRKb2luRXhwcmVzc2lvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJMZWZ0Sm9pbkV4cHJlc3Npb25cIl0gPSBcImxlZnRKb2luRXhwcmVzc2lvblwiO1xuICAgIC8vIERQSV9MaW1pdENvdW50RXhwcmVzc2lvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJMaW1pdENvdW50RXhwcmVzc2lvblwiXSA9IFwibGltaXRDb3VudEV4cHJlc3Npb25cIjtcbiAgICAvLyBEUElfTGlua1RhcmdldCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJMaW5rVGFyZ2V0XCJdID0gXCJsaW5rVGFyZ2V0XCI7XG4gICAgLy8gRFBJX0xvY2FsZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJMb2NhbGVcIl0gPSBcImxvY2FsZVwiO1xuICAgIC8vIERQSV9Mb2NhbGl6ZWRLZXl3b3JkLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkxvY2FsaXplZEtleXdvcmRcIl0gPSBcImxvY2FsaXplZEtleXdvcmRcIjtcbiAgICAvLyBEUElfTWFwQm94R0xTdHlsZUlkLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIk1hcEJveEdMU3R5bGVJZFwiXSA9IFwibWFwYm94R2xTdHlsZUlkXCI7XG4gICAgLy8gRFBJX01hcEJveFN0eWxlVXJsLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIk1hcEJveFN0eWxlVXJsXCJdID0gXCJtYXBib3hTdHlsZVVybFwiO1xuICAgIC8vIERQSV9NYXBCb3hVc2VybmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJNYXBCb3hVc2VybmFtZVwiXSA9IFwibWFwYm94VXNlcm5hbWVcIjtcbiAgICAvLyBEUElfTWFwU2NhbGVSZWFkb3V0U3RyaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIk1hcFNjYWxlUmVhZG91dFN0cmluZ1wiXSA9IFwibWFwU2NhbGVSZWFkb3V0U3RyaW5nXCI7XG4gICAgLy8gRFBJX01hcFNjYWxlVG9vbHRpcFN0cmluZywgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJNYXBTY2FsZVRvb2x0aXBTdHJpbmdcIl0gPSBcIm1hcFNjYWxlVG9vbHRpcFN0cmluZ1wiO1xuICAgIC8vIERQSV9NYXBTb3VyY2VOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIk1hcFNvdXJjZU5hbWVcIl0gPSBcIm1hcFNvdXJjZU5hbWVcIjtcbiAgICAvLyBEUElfTWF4TGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiTWF4TGFiZWxcIl0gPSBcIm1heExhYmVsXCI7XG4gICAgLy8gRFBJX01pbkxhYmVsLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIk1pbkxhYmVsXCJdID0gXCJtaW5MYWJlbFwiO1xuICAgIC8vIERQSV9Nb2RlbERlc2NyaXB0aW9uUGFyYWdyYXBoLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIk1vZGVsRGVzY3JpcHRpb25QYXJhZ3JhcGhcIl0gPSBcIm1vZGVsRGVzY3JpcHRpb25QYXJhZ3JhcGhcIjtcbiAgICAvLyBEUElfTmFtZVRlbXBsYXRlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIk5hbWVUZW1wbGF0ZVwiXSA9IFwibmFtZVRlbXBsYXRlXCI7XG4gICAgLy8gRFBJX05ld0RyaWxsUGF0aCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJOZXdEcmlsbFBhdGhcIl0gPSBcIm5ld0RyaWxsUGF0aFwiO1xuICAgIC8vIERQSV9OZXdGaWVsZEZvbGRlck5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiTmV3RmllbGRGb2xkZXJOYW1lXCJdID0gXCJuZXdGaWVsZEZvbGRlck5hbWVcIjtcbiAgICAvLyBEUElfTmV3VGFibGVBbGlhcywgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJOZXdUYWJsZUFsaWFzXCJdID0gXCJuZXdUYWJsZUFsaWFzXCI7XG4gICAgLy8gRFBJX05vbkZvcm1hdHRlZFZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIk5vbkZvcm1hdHRlZFZhbHVlXCJdID0gXCJ1bmZvcm1hdHRlZFZhbHVlXCI7XG4gICAgLy8gRFBJX09BdXRoVXNlck5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiT0F1dGhVc2VyTmFtZVwiXSA9IFwib2F1dGhVc2VybmFtZVwiO1xuICAgIC8vIERQSV9PYmplY3ROYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIk9iamVjdE5hbWVcIl0gPSBcIm9iamVjdE5hbWVcIjtcbiAgICAvLyBEUElfT2JqZWN0T3ZlcnJpZGVNZXNzYWdlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIk9iamVjdE92ZXJyaWRlTWVzc2FnZVwiXSA9IFwib2JqZWN0T3ZlcnJpZGVNZXNzYWdlXCI7XG4gICAgLy8gRFBJX09sZFRhYmxlQWxpYXMsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiT2xkVGFibGVBbGlhc1wiXSA9IFwib2xkVGFibGVBbGlhc1wiO1xuICAgIC8vIERQSV9PcGVyYXRpbmdTeXN0ZW0sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiT3BlcmF0aW5nU3lzdGVtXCJdID0gXCJvcGVyYXRpbmdTeXN0ZW1cIjtcbiAgICAvLyBEUElfT3JpZ2luYWxGaWxlUGF0aCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJPcmlnaW5hbEZpbGVQYXRoXCJdID0gXCJvcmlnaW5hbEZpbGVQYXRoXCI7XG4gICAgLy8gRFBJX09yaWdpbmFsRmlsZVZlcnNpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiT3JpZ2luYWxGaWxlVmVyc2lvblwiXSA9IFwib3JpZ2luYWxGaWxlVmVyc2lvblwiO1xuICAgIC8vIERQSV9QYW5lRGVzY3JpcHRvcktleSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJQYW5lRGVzY3JpcHRvcktleVwiXSA9IFwicGFuZURlc2NyS2V5XCI7XG4gICAgLy8gRFBJX1BhcmVudE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiUGFyZW50TmFtZVwiXSA9IFwicGFyZW50TmFtZVwiO1xuICAgIC8vIERQSV9QYXJlbnRUYWJsZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJQYXJlbnRUYWJsZVwiXSA9IFwicGFyZW50VGFibGVcIjtcbiAgICAvLyBEUElfUGF0dGVybkZpbHRlclN0cmluZywgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJQYXR0ZXJuRmlsdGVyU3RyaW5nXCJdID0gXCJwYXR0ZXJuRmlsdGVyU3RyaW5nXCI7XG4gICAgLy8gRFBJX1BlbmRpbmdDYWxjTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJQZW5kaW5nQ2FsY05hbWVcIl0gPSBcInBlbmRpbmdDYWxjTmFtZVwiO1xuICAgIC8vIERQSV9QZXJjZW50aWxlc1N0cmluZywgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJQZXJjZW50aWxlc1N0cmluZ1wiXSA9IFwicGVyY2VudGlsZXNTdHJpbmdcIjtcbiAgICAvLyBEUElfUHJvamVjdE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiUHJvamVjdE5hbWVcIl0gPSBcInByb2plY3ROYW1lXCI7XG4gICAgLy8gRFBJX1Byb3BlcnR5TmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJQcm9wZXJ0eU5hbWVcIl0gPSBcInByb3BlcnR5TmFtZVwiO1xuICAgIC8vIERQSV9RdWlja0ZpbHRlclRpdGxlQ2FwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJRdWlja0ZpbHRlclRpdGxlQ2FwdGlvblwiXSA9IFwicXVpY2tGaWx0ZXJUaXRsZUNhcHRpb25cIjtcbiAgICAvLyBEUElfUmFuZ2VEaWZmU3RyLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlJhbmdlRGlmZlN0clwiXSA9IFwiZGlmZlZhbHVlXCI7XG4gICAgLy8gRFBJX1JhbmdlTWF4U3RyLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlJhbmdlTWF4U3RyXCJdID0gXCJtYXhWYWx1ZVwiO1xuICAgIC8vIERQSV9SYW5nZU1pblN0ciwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJSYW5nZU1pblN0clwiXSA9IFwibWluVmFsdWVcIjtcbiAgICAvLyBEUElfUmVjb3ZlcmVkRmlsZVBhdGgsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiUmVjb3ZlcmVkRmlsZVBhdGhcIl0gPSBcInJlY292ZXJlZEZpbGVQYXRoXCI7XG4gICAgLy8gRFBJX1JlZmVyZW5jZUxpbmVTcGVjaWZpY2F0aW9uSWQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiUmVmZXJlbmNlTGluZVNwZWNpZmljYXRpb25JZFwiXSA9IFwicmVmZXJlbmNlTGluZUlkXCI7XG4gICAgLy8gRFBJX1JlcGxhY2VGaWVsZFByb21wdCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJSZXBsYWNlRmllbGRQcm9tcHRcIl0gPSBcInJlcGxhY2VGaWVsZFByb21wdFwiO1xuICAgIC8vIERQSV9SaWdodEpvaW5FeHByZXNzaW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlJpZ2h0Sm9pbkV4cHJlc3Npb25cIl0gPSBcInJpZ2h0Sm9pbkV4cHJlc3Npb25cIjtcbiAgICAvLyBEUElfUm9vdFBhdGgsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiUm9vdFBhdGhcIl0gPSBcInJvb3RQYXRoXCI7XG4gICAgLy8gRFBJX1J1bnRpbWVGaW5hbERhdGFzdG9yZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJSdW50aW1lRmluYWxEYXRhc3RvcmVcIl0gPSBcInJ1bnRpbWVGaW5hbERhdGFzdG9yZVwiO1xuICAgIC8vIERQSV9SdW50aW1lSW5pdGlhbERhdGFzdG9yZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJSdW50aW1lSW5pdGlhbERhdGFzdG9yZVwiXSA9IFwicnVudGltZUluaXRpYWxEYXRhc3RvcmVcIjtcbiAgICAvLyBEUElfUnVudGltZVZUTCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJSdW50aW1lVlRMXCJdID0gXCJydW50aW1lVnRsXCI7XG4gICAgLy8gRFBJX1NhbXBsZURhdGFTdHJpbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiU2FtcGxlRGF0YVN0cmluZ1wiXSA9IFwic2FtcGxlRGF0YVwiO1xuICAgIC8vIERQSV9TY2hlZHVsZUlEcywgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJTY2hlZHVsZUlEc1wiXSA9IFwic2NoZWR1bGVJZHNcIjtcbiAgICAvLyBEUElfU2NoZW1hRmllbGRJY29uUmVzb3VyY2UsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiU2NoZW1hRmllbGRJY29uUmVzb3VyY2VcIl0gPSBcImZpZWxkSWNvblJlc1wiO1xuICAgIC8vIERQSV9TY3JlZW5OYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlNjcmVlbk5hbWVcIl0gPSBcInNjcmVlbk5hbWVcIjtcbiAgICAvLyBEUElfU2NyaXB0Q29tbWFuZCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJTY3JpcHRDb21tYW5kXCJdID0gXCJjb21tYW5kXCI7XG4gICAgLy8gRFBJX1NlY29uZFZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlNlY29uZFZhbHVlXCJdID0gXCJzZWNvbmRWYWx1ZVwiO1xuICAgIC8vIERQSV9TZWxlY3RlZFZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlNlbGVjdGVkVmFsdWVcIl0gPSBcInNlbGVjdGVkVmFsdWVcIjtcbiAgICAvLyBEUElfU2hhcGVOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlNoYXBlTmFtZVwiXSA9IFwic2hhcGVOYW1lXCI7XG4gICAgLy8gRFBJX1NoZWV0SWQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiU2hlZXRJZFwiXSA9IFwic2hlZXRJZFwiO1xuICAgIC8vIERQSV9TaG93RGF0YVRhYmxlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3dEYXRhVGFibGVcIl0gPSBcInNob3dEYXRhVGFibGVcIjtcbiAgICAvLyBEUElfU2ltcGxlQ29tbWFuZCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJTaW1wbGVDb21tYW5kXCJdID0gXCJzaW1wbGVDb21tYW5kXCI7XG4gICAgLy8gRFBJX1NvcnRNb2RlQ2FwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJTb3J0TW9kZUNhcHRpb25cIl0gPSBcInNvcnRNb2RlQ2FwdGlvblwiO1xuICAgIC8vIERQSV9Tb3VyY2VOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlNvdXJjZU5hbWVcIl0gPSBcInNvdXJjZU5hbWVcIjtcbiAgICAvLyBEUElfU291cmNlVGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJTb3VyY2VUZXh0XCJdID0gXCJzb3VyY2VUZXh0XCI7XG4gICAgLy8gRFBJX1NwZWNpYWxWYWx1ZVRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiU3BlY2lhbFZhbHVlVGV4dFwiXSA9IFwic3BlY2lhbFZhbHVlVGV4dFwiO1xuICAgIC8vIERQSV9TdGF0aWNJbWFnZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJTdGF0aWNJbWFnZVwiXSA9IFwic3RhdGljSW1hZ2VcIjtcbiAgICAvLyBEUElfU3RvcnlQb2ludEJhc2UsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiU3RvcnlQb2ludEJhc2VcIl0gPSBcInN0b3J5UG9pbnRCYXNlXCI7XG4gICAgLy8gRFBJX1N0b3J5UG9pbnRDYXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlN0b3J5UG9pbnRDYXB0aW9uXCJdID0gXCJzdG9yeVBvaW50Q2FwdGlvblwiO1xuICAgIC8vIERQSV9TdG9yeWJvYXJkLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlN0b3J5Ym9hcmRcIl0gPSBcInN0b3J5Ym9hcmRcIjtcbiAgICAvLyBEUElfU3R5bGVkTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiU3R5bGVkTGFiZWxcIl0gPSBcInN0eWxlZExhYmVsXCI7XG4gICAgLy8gRFBJX1N1bW1hcnlDYXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlN1bW1hcnlDYXB0aW9uXCJdID0gXCJzdW1tYXJ5Q2FwdGlvblwiO1xuICAgIC8vIERQSV9TdW1tYXJ5RmllbGQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiU3VtbWFyeUZpZWxkXCJdID0gXCJzdW1tYXJ5RmllbGRcIjtcbiAgICAvLyBEUElfVGFibGVhdVZlcnNpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiVGFibGVhdVZlcnNpb25cIl0gPSBcInRhYmxlYXVWZXJzaW9uXCI7XG4gICAgLy8gRFBJX1RhYmxlRmlsdGVyLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlRhYmxlRmlsdGVyXCJdID0gXCJ0YWJsZUZpbHRlclwiO1xuICAgIC8vIERQSV9UYWJsZUZpbHRlclByb21wdCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJUYWJsZUZpbHRlclByb21wdFwiXSA9IFwidGFibGVGaWx0ZXJQcm9tcHRcIjtcbiAgICAvLyBEUElfVGFnc0xhYmVsLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlRhZ3NMYWJlbFwiXSA9IFwidGFnc0xhYmVsXCI7XG4gICAgLy8gRFBJX1RhcmdldCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJUYXJnZXRcIl0gPSBcInRhcmdldFwiO1xuICAgIC8vIERQSV9UaHVtYm5haWxHcm91cCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJUaHVtYm5haWxHcm91cFwiXSA9IFwidGh1bWJuYWlsR3JvdXBcIjtcbiAgICAvLyBEUElfVGh1bWJuYWlsVXNlciwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJUaHVtYm5haWxVc2VyXCJdID0gXCJ0aHVtYm5haWxVc2VyXCI7XG4gICAgLy8gRFBJX1RpbWVGb3JtYXQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiVGltZUZvcm1hdFwiXSA9IFwidGltZUZvcm1hdFwiO1xuICAgIC8vIERQSV9UcmVuZExpbmVFcnJvclN0cmluZywgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJUcmVuZExpbmVFcnJvclN0cmluZ1wiXSA9IFwidHJlbmRMaW5lRXJyb3JTdHJpbmdcIjtcbiAgICAvLyBEUElfVHJlbmRMaW5lTW9kZWxGb3JtdWxhLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlRyZW5kTGluZU1vZGVsRm9ybXVsYVwiXSA9IFwidHJlbmRMaW5lTW9kZWxGb3JtdWxhXCI7XG4gICAgLy8gRFBJX1VSTFN0cmluZywgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJVUkxTdHJpbmdcIl0gPSBcInVybFN0cmluZ1wiO1xuICAgIC8vIERQSV9VUkxUZXN0LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlVSTFRlc3RcIl0gPSBcInVybFRlc3RcIjtcbiAgICAvLyBEUElfVmFsaWRhdGlvbk1lc3NhZ2UsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiVmFsaWRhdGlvbk1lc3NhZ2VcIl0gPSBcInZhbGlkYXRpb25NZXNzYWdlXCI7XG4gICAgLy8gRFBJX1ZhbHVlU3RyLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlZhbHVlU3RyXCJdID0gXCJ2YWx1ZVN0cmluZ1wiO1xuICAgIC8vIERQSV9WZXJpZmllZE5vbkZvcm1hdHRlZFZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlZlcmlmaWVkTm9uRm9ybWF0dGVkVmFsdWVcIl0gPSBcInZlcmlmaWVkVW5mb3JtYXR0ZWRWYWx1ZVwiO1xuICAgIC8vIERQSV9Xb3JrYm9va0Z1bGxQYXRoLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIldvcmtib29rRnVsbFBhdGhcIl0gPSBcIndvcmtib29rRnVsbFBhdGhcIjtcbiAgICAvLyBEUElfV2luZG93VGl0bGUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiV2luZG93VGl0bGVcIl0gPSBcIndpbmRvd1RpdGxlXCI7XG4gICAgLy8gRFBJX1pvbmVOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlpvbmVOYW1lXCJdID0gXCJ6b25lTmFtZVwiO1xuICAgIC8vIERQSV9ab25lUGFyYW0sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiWm9uZVBhcmFtXCJdID0gXCJ6b25lUGFyYW1cIjtcbiAgICAvLyBEUElfRGF0YUFsZXJ0RXJyb3JUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFBbGVydEVycm9yVGV4dFwiXSA9IFwiZGF0YUFsZXJ0RXJyb3JUZXh0XCI7XG4gICAgLy8gRFBJX0V4dHJhY3RUZW1wRGlyZWN0b3J5LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkV4dHJhY3RUZW1wRGlyZWN0b3J5XCJdID0gXCJleHRyYWN0VGVtcERpclwiO1xuICAgIC8vIERQSV9EU1N1YkNsYXNzLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkRTU3ViQ2xhc3NcIl0gPSBcImRzU3ViQ2xhc3NcIjtcbiAgICAvLyBEUElfRGJnQ29tbWFuZExpbmUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRGJnQ29tbWFuZExpbmVcIl0gPSBcImRlYnVnQ29tbWFuZExpbmVcIjtcbiAgICAvLyBEUElfRGJnTG9nUGF0aCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJEYmdMb2dQYXRoXCJdID0gXCJkZWJ1Z0xvZ1BhdGhcIjtcbiAgICAvLyBEUElfRGJnT1NWZXJzaW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkRiZ09TVmVyc2lvblwiXSA9IFwiZGVidWdPc1ZlcnNpb25cIjtcbiAgICAvLyBEUElfRGJnVXNlck5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRGJnVXNlck5hbWVcIl0gPSBcImRlYnVnVXNlcm5hbWVcIjtcbiAgICAvLyBEUElfRXJyb3JNc2csIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRXJyb3JNc2dcIl0gPSBcImVycm9yTWVzc2FnZVwiO1xuICAgIC8vIERQSV9FcnJvclN0YWNrVHJhY2UsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRXJyb3JTdGFja1RyYWNlXCJdID0gXCJlcnJvclN0YWNrVHJhY2VcIjtcbiAgICAvLyBEUElfRXJyb3JTdHIsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRXJyb3JTdHJcIl0gPSBcImVycm9yU3RyaW5nXCI7XG4gICAgLy8gRFBJX0V2ZW50TWVzc2FnZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJFdmVudE1lc3NhZ2VcIl0gPSBcImV2ZW50TWVzc2FnZVwiO1xuICAgIC8vIERQSV9FdmVudFRpbWVzdGFtcCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJFdmVudFRpbWVzdGFtcFwiXSA9IFwiZXZlbnRUaW1lc3RhbXBcIjtcbiAgICAvLyBEUElfRXh0cmFjdERlbHRhUGF0aCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJFeHRyYWN0RGVsdGFQYXRoXCJdID0gXCJleHRyYWN0RGVsdGFQYXRoXCI7XG4gICAgLy8gRFBJX0V4dHJhY3RQYXRoLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkV4dHJhY3RQYXRoXCJdID0gXCJleHRyYWN0UGF0aFwiO1xuICAgIC8vIERQSV9FeHRyYWN0U3VnZ2VzdGVkUGF0aCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJFeHRyYWN0U3VnZ2VzdGVkUGF0aFwiXSA9IFwic3VnZ2VzdGVkRXh0cmFjdFBhdGhcIjtcbiAgICAvLyBEUElfRXh0cmFjdFRhc2tTdW1tYXJ5LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkV4dHJhY3RUYXNrU3VtbWFyeVwiXSA9IFwiZXh0cmFjdFRhc2tTdW1tYXJ5XCI7XG4gICAgLy8gRFBJX0ZhY3RvcnNTdHJpbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRmFjdG9yc1N0cmluZ1wiXSA9IFwiZmFjdG9yc1N0clwiO1xuICAgIC8vIERQSV9Gb3JtYXR0ZWRGYW1pbHlOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkZvcm1hdHRlZEZhbWlseU5hbWVcIl0gPSBcImZvcm1hdHRlZEZhbWlseU5hbWVcIjtcbiAgICAvLyBEUElfRnVuY3Rpb25TaWduYXR1cmUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRnVuY3Rpb25TaWduYXR1cmVcIl0gPSBcImZ1bmNTaWdcIjtcbiAgICAvLyBEUElfRnVuY3Rpb25Ub29sdGlwLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkZ1bmN0aW9uVG9vbHRpcFwiXSA9IFwiZnVuY1Rvb2x0aXBcIjtcbiAgICAvLyBEUElfSGVscENvbnRlbnRzLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkhlbHBDb250ZW50c1wiXSA9IFwiaGVscENvbnRlbnRzXCI7XG4gICAgLy8gRFBJX01hcEF0dHJpYnV0aW9uVGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJNYXBBdHRyaWJ1dGlvblRleHRcIl0gPSBcIm1hcEF0dHJpYnV0aW9uVGV4dFwiO1xuICAgIC8vIERQSV9NYXBBdHRyaWJ1dGlvblRleHRTaXplLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIk1hcEF0dHJpYnV0aW9uVGV4dFNpemVcIl0gPSBcIm1hcEF0dHJpYnV0aW9uVGV4dFNpemVcIjtcbiAgICAvLyBEUElfTWFwQXR0cmlidXRpb25VcmwsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiTWFwQXR0cmlidXRpb25VcmxcIl0gPSBcIm1hcEF0dHJpYnV0aW9uVXJsXCI7XG4gICAgLy8gRFBJX01hcEJveEVycm9yTWVzc2FnZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJNYXBCb3hFcnJvck1lc3NhZ2VcIl0gPSBcIm1hcGJveEVycm9yTWVzc2FnZVwiO1xuICAgIC8vIERQSV9NYXBCb3hPbGRTdHlsZU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiTWFwQm94T2xkU3R5bGVOYW1lXCJdID0gXCJtYXBib3hPbGRTdHlsZU5hbWVcIjtcbiAgICAvLyBEUElfTWFwQm94U2VsZWN0ZWRTdHlsZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJNYXBCb3hTZWxlY3RlZFN0eWxlXCJdID0gXCJtYXBib3hTZWxlY3RlZFN0eWxlXCI7XG4gICAgLy8gRFBJX01hcEJveFN0eWxlTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJNYXBCb3hTdHlsZU5hbWVcIl0gPSBcIm1hcGJveFN0eWxlTmFtZVwiO1xuICAgIC8vIERQSV9NYXBMYXllclJlcXVlc3QsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiTWFwTGF5ZXJSZXF1ZXN0XCJdID0gXCJtYXBMYXllclJlcXVlc3RcIjtcbiAgICAvLyBEUElfTWFwU2VydmVyS2V5LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIk1hcFNlcnZlcktleVwiXSA9IFwibWFwU2VydmVyS2V5XCI7XG4gICAgLy8gRFBJX01hcFRpbGVTZXJ2ZXIsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiTWFwVGlsZVNlcnZlclwiXSA9IFwibWFwVGlsZVNlcnZlclwiO1xuICAgIC8vIERQSV9NYXBUaWxlVXJsLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIk1hcFRpbGVVcmxcIl0gPSBcIm1hcFRpbGVVcmxcIjtcbiAgICAvLyBEUElfUGVyY2VudGFnZXNTdHJpbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiUGVyY2VudGFnZXNTdHJpbmdcIl0gPSBcInBlcmNlbnRhZ2VzU3RyXCI7XG4gICAgLy8gRFBJX1B1Ymxpc2hFcnJvck1lc3NhZ2UsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiUHVibGlzaEVycm9yTWVzc2FnZVwiXSA9IFwicHVibGlzaEVycm9yTWVzc2FnZVwiO1xuICAgIC8vIERQSV9UZGVQYXRoLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlRkZVBhdGhcIl0gPSBcInRkZVBhdGhcIjtcbiAgICAvLyBEUElfVUlBdXRvbWF0aW9uQ29tcG9uZW50TmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJVSUF1dG9tYXRpb25Db21wb25lbnROYW1lXCJdID0gXCJ1aUF1dG9tYXRpb25Db21wb25lbnROYW1lXCI7XG4gICAgLy8gRFBJX1VJQXV0b21hdGlvbkVuZFRpbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiVUlBdXRvbWF0aW9uRW5kVGltZVwiXSA9IFwidWlBdXRvbWF0aW9uRW5kVGltZVwiO1xuICAgIC8vIERQSV9VSUF1dG9tYXRpb25OYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlVJQXV0b21hdGlvbk5hbWVcIl0gPSBcInVpQXV0b21hdGlvbk5hbWVcIjtcbiAgICAvLyBEUElfVUlBdXRvbWF0aW9uU3RhcnRUaW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlVJQXV0b21hdGlvblN0YXJ0VGltZVwiXSA9IFwidWlBdXRvbWF0aW9uU3RhcnRUaW1lXCI7XG4gICAgLy8gRFBJX1VJQXV0b21hdGlvblZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlVJQXV0b21hdGlvblZhbHVlXCJdID0gXCJ1aUF1dG9tYXRpb25WYWx1ZVwiO1xuICAgIC8vIERQSV9XTVNDb25uZWN0aW9uTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJXTVNDb25uZWN0aW9uTmFtZVwiXSA9IFwid21zQ29ubmVjdGlvbk5hbWVcIjtcbiAgICAvLyBEUElfV01TT2xkQ29ubmVjdGlvbk5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiV01TT2xkQ29ubmVjdGlvbk5hbWVcIl0gPSBcIndtc09sZENvbm5lY3Rpb25OYW1lXCI7XG4gICAgLy8gRFBJX1dNU1NlcnZlclVybCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJXTVNTZXJ2ZXJVcmxcIl0gPSBcIndtc1NlcnZlclVybFwiO1xuICAgIC8vIERQSV9BYm91dEJ1aWxkVmVyc2lvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJBYm91dEJ1aWxkVmVyc2lvblwiXSA9IFwiYWJvdXRCdWlsZFZlcnNpb25cIjtcbiAgICAvLyBEUElfQWN0aW9uRmllbGRzLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkFjdGlvbkZpZWxkc1wiXSA9IFwiYWN0aW9uRmllbGRzXCI7XG4gICAgLy8gRFBJX0FkZFZhcmlhYmxlTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQWRkVmFyaWFibGVMYWJlbFwiXSA9IFwiYWRkVmFyaWFibGVMYWJlbFwiO1xuICAgIC8vIERQSV9BZGRWYXJpYWJsZVRvb2x0aXAsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQWRkVmFyaWFibGVUb29sdGlwXCJdID0gXCJhZGRWYXJpYWJsZVRvb2x0aXBcIjtcbiAgICAvLyBEUElfQWxsb3dlZERhdGFTb3VyY2VzQnlOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkFsbG93ZWREYXRhU291cmNlc0J5TmFtZVwiXSA9IFwiYWxsb3dlZERhdGFTb3VyY2VzQnlOYW1lXCI7XG4gICAgLy8gRFBJX0FwcEFib3V0VmVyc2lvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJBcHBBYm91dFZlcnNpb25cIl0gPSBcImFwcEFib3V0VmVyc2lvblwiO1xuICAgIC8vIERQSV9BcHBCdWlsZEJyYW5jaE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQXBwQnVpbGRCcmFuY2hOYW1lXCJdID0gXCJhcHBCdWlsZEJyYW5jaE5hbWVcIjtcbiAgICAvLyBEUElfQXBwQnVpbGRWZXJzaW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkFwcEJ1aWxkVmVyc2lvblwiXSA9IFwiYXBwQnVpbGRWZXJzaW9uXCI7XG4gICAgLy8gRFBJX0FwcEV4dGVybmFsVmVyc2lvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJBcHBFeHRlcm5hbFZlcnNpb25cIl0gPSBcImFwcEV4dGVybmFsVmVyc2lvblwiO1xuICAgIC8vIERQSV9BcHBOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkFwcE5hbWVcIl0gPSBcImFwcE5hbWVcIjtcbiAgICAvLyBEUElfQXBwUHJvZHVjdFZlcnNpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQXBwUHJvZHVjdFZlcnNpb25cIl0gPSBcImFwcFByb2R1Y3RWZXJzaW9uXCI7XG4gICAgLy8gRFBJX09yaWdpbmFsVmVyc2lvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJPcmlnaW5hbFZlcnNpb25cIl0gPSBcIm9yaWdpbmFsVmVyc2lvblwiO1xuICAgIC8vIERQSV9BdFRoZUxldmVsU3BlY2lhbENhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQXRUaGVMZXZlbFNwZWNpYWxDYXB0aW9uXCJdID0gXCJhdFRoZUxldmVsU3BlY2lhbENhcHRpb25cIjtcbiAgICAvLyBEUElfQXV0b0NvbXBsZXRlQ2FsYywgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJBdXRvQ29tcGxldGVDYWxjXCJdID0gXCJhY0NhbGNcIjtcbiAgICAvLyBEUElfQ1NWUGF0aCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJDU1ZQYXRoXCJdID0gXCJjc3ZQYXRoXCI7XG4gICAgLy8gRFBJX0NvbW1hbmROYW1lc3BhY2UsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQ29tbWFuZE5hbWVzcGFjZVwiXSA9IFwiY29tbWFuZE5hbWVzcGFjZVwiO1xuICAgIC8vIERQSV9Db25kaXRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQ29uZGl0aW9uXCJdID0gXCJjb25kaXRpb25cIjtcbiAgICAvLyBEUElfQ29uZGl0aW9uU3VtbWFyeSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJDb25kaXRpb25TdW1tYXJ5XCJdID0gXCJjb25kaXRpb25TdW1tYXJ5XCI7XG4gICAgLy8gRFBJX0NvbmZpcm1hdGlvbk1zZywgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJDb25maXJtYXRpb25Nc2dcIl0gPSBcImNvbmZpcm1hdGlvbk1zZ1wiO1xuICAgIC8vIERQSV9EYXNoYm9hcmRUeXBlVGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJEYXNoYm9hcmRUeXBlVGV4dFwiXSA9IFwiZGFzaGJvYXJkVHlwZVwiO1xuICAgIC8vIERQSV9EYXRhc2VydmVyUHVibGljQWRkcmVzcywgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJEYXRhc2VydmVyUHVibGljQWRkcmVzc1wiXSA9IFwiZGF0YXNlcnZlclB1YmxpY0FkZHJlc3NcIjtcbiAgICAvLyBEUElfRGF0YXNvdXJjZUZpbGVOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFzb3VyY2VGaWxlTmFtZVwiXSA9IFwiZGF0YXNvdXJjZUZpbGVOYW1lXCI7XG4gICAgLy8gRFBJX0RlY2ltYWxNYXJrLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkRlY2ltYWxNYXJrXCJdID0gXCJkZWNpbWFsTWFya1wiO1xuICAgIC8vIERQSV9EZWxldGVWYXJpYWJsZVRvb2x0aXAsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRGVsZXRlVmFyaWFibGVUb29sdGlwXCJdID0gXCJkZWxldGVWYXJpYWJsZVRvb2x0aXBcIjtcbiAgICAvLyBEUElfRGlhbG9nVGl0bGUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRGlhbG9nVGl0bGVcIl0gPSBcImRpYWxvZ1RpdGxlXCI7XG4gICAgLy8gRFBJX0Rpc3BsYXlWYWx1ZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJEaXNwbGF5VmFsdWVcIl0gPSBcImRpc3BsYXlWYWx1ZVwiO1xuICAgIC8vIERQSV9Ub29sdGlwVmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiVG9vbHRpcFZhbHVlXCJdID0gXCJ0b29sdGlwVmFsdWVcIjtcbiAgICAvLyBEUElfRHN0UGF0aCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJEc3RQYXRoXCJdID0gXCJkc3RQYXRoXCI7XG4gICAgLy8gRFBJX0VkaXRXaWRnZXRIZWFkZXIsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRWRpdFdpZGdldEhlYWRlclwiXSA9IFwiZWRpdFdpZGdldEhlYWRlclwiO1xuICAgIC8vIERQSV9FZGl0V2lkZ2V0SW5zdHJ1Y3Rpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRWRpdFdpZGdldEluc3RydWN0aW9uXCJdID0gXCJlZGl0V2lkZ2V0SW5zdHJ1Y3Rpb25cIjtcbiAgICAvLyBEUElfRW5kU2VsZWN0aW9uQ2FwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJFbmRTZWxlY3Rpb25DYXB0aW9uXCJdID0gXCJlbmRTZWxlY3Rpb25DYXB0aW9uXCI7XG4gICAgLy8gRFBJX0Vycm9yRGlhbG9nVGl0bGUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRXJyb3JEaWFsb2dUaXRsZVwiXSA9IFwiZXJyb3JEaWFsb2dUaXRsZVwiO1xuICAgIC8vIERQSV9FcnJvckhlbHBMaW5rLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkVycm9ySGVscExpbmtcIl0gPSBcImVycm9ySGVscExpbmtcIjtcbiAgICAvLyBEUElfRXJyb3JTaG9ydE1lc3NhZ2UsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRXJyb3JTaG9ydE1lc3NhZ2VcIl0gPSBcImVycm9yU2hvcnRNZXNzYWdlXCI7XG4gICAgLy8gRFBJX0ZpbHRlclNlYXJjaFF1ZXJ5LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkZpbHRlclNlYXJjaFF1ZXJ5XCJdID0gXCJmaWx0ZXJTZWFyY2hRdWVyeVwiO1xuICAgIC8vIERQSV9Gcm9tTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRnJvbUxhYmVsXCJdID0gXCJmcm9tTGFiZWxcIjtcbiAgICAvLyBEUElfRnVuY3Rpb25IZWxwLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkZ1bmN0aW9uSGVscFwiXSA9IFwiZnVuY3Rpb25IZWxwXCI7XG4gICAgLy8gRFBJX0luc3RydWN0aW9ucywgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJJbnN0cnVjdGlvbnNcIl0gPSBcImluc3RydWN0aW9uc1wiO1xuICAgIC8vIERQSV9MYXJnZVVuaXREaXNwbGF5LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkxhcmdlVW5pdERpc3BsYXlcIl0gPSBcImxhcmdlVW5pdERpc3BsYXlcIjtcbiAgICAvLyBEUElfTGltaXQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiTGltaXRcIl0gPSBcImxpbWl0XCI7XG4gICAgLy8gRFBJX0xpc3RWaWV3TmFtZUxhYmVsLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkxpc3RWaWV3TmFtZUxhYmVsXCJdID0gXCJsaXN0Vmlld05hbWVMYWJlbFwiO1xuICAgIC8vIERQSV9MaXN0Vmlld1ZhbHVlTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiTGlzdFZpZXdWYWx1ZUxhYmVsXCJdID0gXCJsaXN0Vmlld1ZhbHVlTGFiZWxcIjtcbiAgICAvLyBEUElfTWFwU2NhbGVSZWFkb3V0VW5pdCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJNYXBTY2FsZVJlYWRvdXRVbml0XCJdID0gXCJtYXBTY2FsZVJlYWRvdXRVbml0XCI7XG4gICAgLy8gRFBJX01lYXN1cmVEaW1lbnNpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiTWVhc3VyZURpbWVuc2lvblwiXSA9IFwibWVhc3VyZXNEaW1lbnNpb25cIjtcbiAgICAvLyBEUElfTWltZVR5cGUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiTWltZVR5cGVcIl0gPSBcIm1pbWVUeXBlXCI7XG4gICAgLy8gRFBJX01pbmltaXplZE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiTWluaW1pemVkTmFtZVwiXSA9IFwibWluTmFtZVwiO1xuICAgIC8vIERQSV9Ob3RpZmljYXRpb25Nc2csIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiTm90aWZpY2F0aW9uTXNnXCJdID0gXCJub3RpZmljYXRpb25Nc2dcIjtcbiAgICAvLyBEUElfT3BlcmF0aW9uTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJPcGVyYXRpb25OYW1lXCJdID0gXCJvcGVyYXRpb25OYW1lXCI7XG4gICAgLy8gRFBJX1BhZ2VUaXRsZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJQYWdlVGl0bGVcIl0gPSBcInBhZ2VUaXRsZVwiO1xuICAgIC8vIERQSV9QYXR0ZXJuU3VtbWFyeSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJQYXR0ZXJuU3VtbWFyeVwiXSA9IFwicGF0dGVyblN1bW1hcnlcIjtcbiAgICAvLyBEUElfUmVmZXJlbmNlTGluZUlkLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlJlZmVyZW5jZUxpbmVJZFwiXSA9IFwicmVmTGluZUlkXCI7XG4gICAgLy8gRFBJX1JlZmVyZW5jZUxpbmVQYWlyZWRJZCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJSZWZlcmVuY2VMaW5lUGFpcmVkSWRcIl0gPSBcInJlZkxpbmVQYWlyZWRJZFwiO1xuICAgIC8vIERQSV9SZXBsYWNlVGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJSZXBsYWNlVGV4dFwiXSA9IFwicmVwbGFjZVRleHRcIjtcbiAgICAvLyBEUElfUmVxdWlyZWRWYXJpYWJsZU1lc3NhZ2UsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiUmVxdWlyZWRWYXJpYWJsZU1lc3NhZ2VcIl0gPSBcInJlcXVpcmVkVmFyaWFibGVNZXNzYWdlXCI7XG4gICAgLy8gRFBJX1Jlc3RhcnRFdmVyeVNwZWNpYWxDYXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlJlc3RhcnRFdmVyeVNwZWNpYWxDYXB0aW9uXCJdID0gXCJyZXN0YXJ0RXZlcnlTcGVjaWFsQ2FwdGlvblwiO1xuICAgIC8vIERQSV9Sb290LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlJvb3RcIl0gPSBcInJvb3RcIjtcbiAgICAvLyBEUElfU2VsZWN0aW9uU3VtbWFyeSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJTZWxlY3Rpb25TdW1tYXJ5XCJdID0gXCJzZWxlY3Rpb25TdW1tYXJ5XCI7XG4gICAgLy8gRFBJX1Nlc3Npb25BdHRyaWJ1dGVLZXksIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiU2Vzc2lvbkF0dHJpYnV0ZUtleVwiXSA9IFwic2Vzc2lvbkF0dHJpYnV0ZUtleVwiO1xuICAgIC8vIERQSV9TZXNzaW9uQXR0cmlidXRlVmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiU2Vzc2lvbkF0dHJpYnV0ZVZhbHVlXCJdID0gXCJzZXNzaW9uQXR0cmlidXRlVmFsdWVcIjtcbiAgICAvLyBEUElfU2hlZXRBdHRyaWJ1dGVLZXksIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiU2hlZXRBdHRyaWJ1dGVLZXlcIl0gPSBcImJhc2VTaGVldEF0dHJpYnV0ZUtleVwiO1xuICAgIC8vIERQSV9TaGVldEF0dHJpYnV0ZVZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlNoZWV0QXR0cmlidXRlVmFsdWVcIl0gPSBcImJhc2VTaGVldEF0dHJpYnV0ZVZhbHVlXCI7XG4gICAgLy8gRFBJX1NtYWxsVW5pdERpc3BsYXksIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiU21hbGxVbml0RGlzcGxheVwiXSA9IFwic21hbGxVbml0RGlzcGxheVwiO1xuICAgIC8vIERQSV9Tb3VyY2VDYXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlNvdXJjZUNhcHRpb25cIl0gPSBcInNvdXJjZUNhcHRpb25cIjtcbiAgICAvLyBEUElfU3JjUGF0aCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJTcmNQYXRoXCJdID0gXCJzcmNQYXRoXCI7XG4gICAgLy8gRFBJX1N0YXJ0U2VsZWN0aW9uQ2FwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJTdGFydFNlbGVjdGlvbkNhcHRpb25cIl0gPSBcInN0YXJ0U2VsZWN0aW9uQ2FwdGlvblwiO1xuICAgIC8vIERQSV9TdWJ0aXRsZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJTdWJ0aXRsZVwiXSA9IFwic3VidGl0bGVcIjtcbiAgICAvLyBEUElfVGFibGVhdVNlcnZlclNpdGVOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlRhYmxlYXVTZXJ2ZXJTaXRlTmFtZVwiXSA9IFwidGFibGVhdVNlcnZlclNpdGVOYW1lXCI7XG4gICAgLy8gRFBJX1RhcmdldENhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiVGFyZ2V0Q2FwdGlvblwiXSA9IFwidGFyZ2V0Q2FwdGlvblwiO1xuICAgIC8vIERQSV9UaHVtYm5haWxQYXRoLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlRodW1ibmFpbFBhdGhcIl0gPSBcInRodW1ibmFpbFBhdGhcIjtcbiAgICAvLyBEUElfVG9MYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJUb0xhYmVsXCJdID0gXCJ0b0xhYmVsXCI7XG4gICAgLy8gRFBJX1VSTEFkZHJlc3MsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiVVJMQWRkcmVzc1wiXSA9IFwidXJsQWRkcmVzc1wiO1xuICAgIC8vIERQSV9WYWx1ZXNUYWJsZUhlYWRlciwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJWYWx1ZXNUYWJsZUhlYWRlclwiXSA9IFwidmFsdWVzVGFibGVIZWFkZXJcIjtcbiAgICAvLyBEUElfVmFsdWVzVGFibGVIZWFkZXIyLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlZhbHVlc1RhYmxlSGVhZGVyMlwiXSA9IFwidmFsdWVzVGFibGVIZWFkZXIyXCI7XG4gICAgLy8gRFBJX1ZhcmlhYmxlRGVzY3JpcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiVmFyaWFibGVEZXNjcmlwdGlvblwiXSA9IFwidmFyaWFibGVEZXNjcmlwdGlvblwiO1xuICAgIC8vIERQSV9WYXJpYWJsZURpc3BsYXlOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlZhcmlhYmxlRGlzcGxheU5hbWVcIl0gPSBcInZhcmlhYmxlRGlzcGxheU5hbWVcIjtcbiAgICAvLyBEUElfVmFyaWFibGVHVUlELCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlZhcmlhYmxlR1VJRFwiXSA9IFwidmFyaWFibGVHdWlkXCI7XG4gICAgLy8gRFBJX1ZlcmJvc2VOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlZlcmJvc2VOYW1lXCJdID0gXCJ2ZXJib3NlTmFtZVwiO1xuICAgIC8vIERQSV9WaWV3SWQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiVmlld0lkXCJdID0gXCJ2aWV3SWRcIjtcbiAgICAvLyBEUElfV2FybmluZzEsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiV2FybmluZzFcIl0gPSBcIndhcm5pbmcxXCI7XG4gICAgLy8gRFBJX1dhcm5pbmcyLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIldhcm5pbmcyXCJdID0gXCJ3YXJuaW5nMlwiO1xuICAgIC8vIERQSV9SZWZyZXNoVG9rZW4sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiUmVmcmVzaFRva2VuXCJdID0gXCJyZWZyZXNoX3Rva2VuXCI7XG4gICAgLy8gRFBJX1Rva2VuVHlwZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJUb2tlblR5cGVcIl0gPSBcInRva2VuX3R5cGVcIjtcbiAgICAvLyBEUElfWFNSRlRva2VuLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlhTUkZUb2tlblwiXSA9IFwieHNyZl90b2tlblwiO1xuICAgIC8vIERQSV9BeGlzU3VidGl0bGUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQXhpc1N1YnRpdGxlXCJdID0gXCJheGlzU3VidGl0bGVcIjtcbiAgICAvLyBEUElfQXhpc1RpdGxlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkF4aXNUaXRsZVwiXSA9IFwiYXhpc1RpdGxlXCI7XG4gICAgLy8gRFBJX1RpY2tNYXJrT3JpZ2luRGF0YVZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlRpY2tNYXJrT3JpZ2luRGF0YVZhbHVlXCJdID0gXCJ0aWNrTWFya09yaWdpbkRhdGFWYWx1ZVwiO1xuICAgIC8vIERQSV9UaWNrTWFya09yaWdpbkRhdGFWYWx1ZU5vVGltZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJUaWNrTWFya09yaWdpbkRhdGFWYWx1ZU5vVGltZVwiXSA9IFwidGlja01hcmtPcmlnaW5EYXRhVmFsdWVOb1RpbWVcIjtcbiAgICAvLyBEUElfVGlja01hcmtTcGFjaW5nRGF0YVZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlRpY2tNYXJrU3BhY2luZ0RhdGFWYWx1ZVwiXSA9IFwidGlja01hcmtTcGFjaW5nRGF0YVZhbHVlXCI7XG4gICAgLy8gRFBJX0V4dHJhY3RBY3Rpb25Mb2NhbGl6ZWQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRXh0cmFjdEFjdGlvbkxvY2FsaXplZFwiXSA9IFwiZXh0cmFjdEFjdGlvbkxvY2FsaXplZFwiO1xuICAgIC8vIERQSV9FeHRyYWN0U291cmNlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkV4dHJhY3RTb3VyY2VcIl0gPSBcImV4dHJhY3RTb3VyY2VcIjtcbiAgICAvLyBEUElfRmlsZUNvbnRlbnRzLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkZpbGVDb250ZW50c1wiXSA9IFwiZmlsZUNvbnRlbnRzXCI7XG4gICAgLy8gRFBJX1NhdmVJbWFnZVBhdGgsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiU2F2ZUltYWdlUGF0aFwiXSA9IFwic2F2ZUltYWdlUGF0aFwiO1xuICAgIC8vIERQSV9XaWRnZXRVSUQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiV2lkZ2V0VUlEXCJdID0gXCJ3aWRnZXRVbmlxdWVJZFwiO1xuICAgIC8vIERQSV9EYXRlUHJvcGVydGllc0Rpc3BsYXlUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGVQcm9wZXJ0aWVzRGlzcGxheVRleHRcIl0gPSBcImRhdGVQcm9wZXJ0aWVzRGlzcGxheVRleHRcIjtcbiAgICAvLyBEUElfRGF0ZVByb3BlcnRpZXNIZWxwZXJUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGVQcm9wZXJ0aWVzSGVscGVyVGV4dFwiXSA9IFwiZGF0ZVByb3BlcnRpZXNIZWxwZXJUZXh0XCI7XG4gICAgLy8gRFBJX0V2ZW50TmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJFdmVudE5hbWVcIl0gPSBcImV2ZW50TmFtZVwiO1xuICAgIC8vIERQSV9FeGNlcHRpb25UeXBlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkV4Y2VwdGlvblR5cGVcIl0gPSBcImV4Y2VwdGlvblR5cGVcIjtcbiAgICAvLyBEUElfU2VhcmNoUGxhY2Vob2xkZXIsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiU2VhcmNoUGxhY2Vob2xkZXJcIl0gPSBcInNlYXJjaFBsYWNlaG9sZGVyXCI7XG4gICAgLy8gRFBJX1RhcmdldFZlcnNpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiVGFyZ2V0VmVyc2lvblwiXSA9IFwidGFyZ2V0VmVyc2lvblwiO1xuICAgIC8vIERQSV9EYXRhVmFsdWVEaXNwbGF5U3RyaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFWYWx1ZURpc3BsYXlTdHJpbmdcIl0gPSBcImRhdGFWYWx1ZURpc3BsYXlTdHJpbmdcIjtcbiAgICAvLyBEUElfRG9tYWluU3RyaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkRvbWFpblN0cmluZ1wiXSA9IFwiZG9tYWluU3RyaW5nXCI7XG4gICAgLy8gRFBJX1Jhd0RhdGFWYWx1ZVN0cmluZywgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJSYXdEYXRhVmFsdWVTdHJpbmdcIl0gPSBcInJhd0RhdGFWYWx1ZVN0cmluZ1wiO1xuICAgIC8vIERQSV9SaWNoVGV4dERpYWxvZ1RpdGxlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlJpY2hUZXh0RGlhbG9nVGl0bGVcIl0gPSBcInJpY2hUZXh0RGlhbG9nVGl0bGVcIjtcbiAgICAvLyBEUElfUmljaFRleHRDb250ZW50LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlJpY2hUZXh0Q29udGVudFwiXSA9IFwicmljaFRleHRDb250ZW50XCI7XG4gICAgLy8gRFBJX01hcmtTaXplQXNTdHJpbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiTWFya1NpemVBc1N0cmluZ1wiXSA9IFwibWFya1NpemVBc1N0cmluZ1wiO1xuICAgIC8vIERQSV9Vbml0c0xhYmVsLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlVuaXRzTGFiZWxcIl0gPSBcInVuaXRzTGFiZWxcIjtcbiAgICAvLyBEUElfRW1haWxBZGRyZXNzLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkVtYWlsQWRkcmVzc1wiXSA9IFwiZW1haWxBZGRyZXNzXCI7XG4gICAgLy8gRFBJX0ZpcnN0TmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJGaXJzdE5hbWVcIl0gPSBcImZpcnN0TmFtZVwiO1xuICAgIC8vIERQSV9MYXN0TmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJMYXN0TmFtZVwiXSA9IFwibGFzdE5hbWVcIjtcbiAgICAvLyBEUElfU3VtbWFyeUNhcmRBdmcsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiU3VtbWFyeUNhcmRBdmdcIl0gPSBcInN1bW1hcnlDYXJkQXZnXCI7XG4gICAgLy8gRFBJX1N1bW1hcnlDYXJkQ2FwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJTdW1tYXJ5Q2FyZENhcHRpb25cIl0gPSBcInN1bW1hcnlDYXJkQ2FwdGlvblwiO1xuICAgIC8vIERQSV9TdW1tYXJ5Q2FyZENvdW50LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlN1bW1hcnlDYXJkQ291bnRcIl0gPSBcInN1bW1hcnlDYXJkQ291bnRcIjtcbiAgICAvLyBEUElfU3VtbWFyeUNhcmRLdXJ0b3NpcywgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJTdW1tYXJ5Q2FyZEt1cnRvc2lzXCJdID0gXCJzdW1tYXJ5Q2FyZEt1cnRvc2lzXCI7XG4gICAgLy8gRFBJX1N1bW1hcnlDYXJkTWF4LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlN1bW1hcnlDYXJkTWF4XCJdID0gXCJzdW1tYXJ5Q2FyZE1heFwiO1xuICAgIC8vIERQSV9TdW1tYXJ5Q2FyZE1lZGlhbiwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJTdW1tYXJ5Q2FyZE1lZGlhblwiXSA9IFwic3VtbWFyeUNhcmRNZWRpYW5cIjtcbiAgICAvLyBEUElfU3VtbWFyeUNhcmRNaW4sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiU3VtbWFyeUNhcmRNaW5cIl0gPSBcInN1bW1hcnlDYXJkTWluXCI7XG4gICAgLy8gRFBJX1N1bW1hcnlDYXJkUXVhcnQxLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlN1bW1hcnlDYXJkUXVhcnQxXCJdID0gXCJzdW1tYXJ5Q2FyZFF1YXJ0MVwiO1xuICAgIC8vIERQSV9TdW1tYXJ5Q2FyZFF1YXJ0MywgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJTdW1tYXJ5Q2FyZFF1YXJ0M1wiXSA9IFwic3VtbWFyeUNhcmRRdWFydDNcIjtcbiAgICAvLyBEUElfU3VtbWFyeUNhcmRTa2V3bmVzcywgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJTdW1tYXJ5Q2FyZFNrZXduZXNzXCJdID0gXCJzdW1tYXJ5Q2FyZFNrZXduZXNzXCI7XG4gICAgLy8gRFBJX1N1bW1hcnlDYXJkU3RkZXYsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiU3VtbWFyeUNhcmRTdGRldlwiXSA9IFwic3VtbWFyeUNhcmRTdGRldlwiO1xuICAgIC8vIERQSV9TdW1tYXJ5Q2FyZFN1bSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJTdW1tYXJ5Q2FyZFN1bVwiXSA9IFwic3VtbWFyeUNhcmRTdW1cIjtcbiAgICAvLyBEUElfVmFsdWVDbGFzc0F0dHIsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiVmFsdWVDbGFzc0F0dHJcIl0gPSBcInZhbHVlQ2xhc3NBdHRyXCI7XG4gICAgLy8gRFBJX1RyZW5kTGluZURpYWxvZ1RpdGxlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlRyZW5kTGluZURpYWxvZ1RpdGxlXCJdID0gXCJ0cmVuZExpbmVEaWFsb2dUaXRsZVwiO1xuICAgIC8vIERQSV9MaW5lYXJGaXRUeXBlTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiTGluZWFyRml0VHlwZUxhYmVsXCJdID0gXCJsaW5lYXJGaXRUeXBlTGFiZWxcIjtcbiAgICAvLyBEUElfTG9nRml0VHlwZUxhYmVsLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkxvZ0ZpdFR5cGVMYWJlbFwiXSA9IFwibG9nRml0VHlwZUxhYmVsXCI7XG4gICAgLy8gRFBJX0V4cEZpdFR5cGVMYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJFeHBGaXRUeXBlTGFiZWxcIl0gPSBcImV4cEZpdFR5cGVMYWJlbFwiO1xuICAgIC8vIERQSV9Qb3dlckZpdFR5cGVMYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJQb3dlckZpdFR5cGVMYWJlbFwiXSA9IFwicG93ZXJGaXRUeXBlTGFiZWxcIjtcbiAgICAvLyBEUElfUG9seW5vbWlhbEZpdFR5cGVMYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJQb2x5bm9taWFsRml0VHlwZUxhYmVsXCJdID0gXCJwb2x5bm9taWFsRml0VHlwZUxhYmVsXCI7XG4gICAgLy8gRFBJX0V4Y2x1ZGVDb2xvckxhYmVsLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkV4Y2x1ZGVDb2xvckxhYmVsXCJdID0gXCJleGNsdWRlQ29sb3JMYWJlbFwiO1xuICAgIC8vIERQSV9FbmFibGVDb25maWRlbmNlQmFuZHNMYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJFbmFibGVDb25maWRlbmNlQmFuZHNMYWJlbFwiXSA9IFwiZW5hYmxlQ29uZmlkZW5jZUJhbmRzTGFiZWxcIjtcbiAgICAvLyBEUElfRm9yY2VJbnRlcmNlcHRaZXJvTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRm9yY2VJbnRlcmNlcHRaZXJvTGFiZWxcIl0gPSBcImZvcmNlSW50ZXJjZXB0WmVybyBsYWJlbFwiO1xuICAgIC8vIERQSV9FbmFibGVJbnN0YW50QW5hbHl0aWNzTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRW5hYmxlSW5zdGFudEFuYWx5dGljc0xhYmVsXCJdID0gXCJlbmFibGVJbnN0YW50QW5hbHl0aWNzTGFiZWxcIjtcbiAgICAvLyBEUElfRW5hYmxlVG9vbHRpcHNMYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJFbmFibGVUb29sdGlwc0xhYmVsXCJdID0gXCJlbmFibGVUb29sdGlwTGFiZWxcIjtcbiAgICAvLyBEUElfQXV0aGVudGljYXRpb25TdW1tYXJ5LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkF1dGhlbnRpY2F0aW9uU3VtbWFyeVwiXSA9IFwiYXV0aGVudGljYXRpb25TdW1tYXJ5XCI7XG4gICAgLy8gRFBJX0J0bkNhbmNlbFRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQnRuQ2FuY2VsVGV4dFwiXSA9IFwiYnRuQ2FuY2VsVGV4dFwiO1xuICAgIC8vIERQSV9CdG5Pa1RleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQnRuT2tUZXh0XCJdID0gXCJidG5Pa1RleHRcIjtcbiAgICAvLyBEUElfQnV0dG9uVGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJCdXR0b25UZXh0XCJdID0gXCJidXR0b25UZXh0XCI7XG4gICAgLy8gRFBJX0NhbGN1bGF0aW9uQ2FwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJDYWxjdWxhdGlvbkNhcHRpb25cIl0gPSBcImNhbGN1bGF0aW9uQ2FwdGlvblwiO1xuICAgIC8vIERQSV9DYWxjdWxhdGlvbkRlcGVuZGVuY2llcywgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJDYWxjdWxhdGlvbkRlcGVuZGVuY2llc1wiXSA9IFwiY2FsY3VsYXRpb25EZXBlbmRlbmNpZXNcIjtcbiAgICAvLyBEUElfQ2FsY3VsYXRpb25Gb3JtdWxhLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkNhbGN1bGF0aW9uRm9ybXVsYVwiXSA9IFwiY2FsY3VsYXRpb25Gb3JtdWxhXCI7XG4gICAgLy8gRFBJX0NoZWNrUHVibGlzaE1lc3NhZ2UsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQ2hlY2tQdWJsaXNoTWVzc2FnZVwiXSA9IFwiY2hlY2tQdWJsaXNoU3VtbWFyeVwiO1xuICAgIC8vIERQSV9DbHVzdGVyTW9kZWxUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkNsdXN0ZXJNb2RlbFRleHRcIl0gPSBcImNsdXN0ZXJNb2RlbFRleHRcIjtcbiAgICAvLyBEUElfQ2x1c3RlclN1bW1hcnlTY2FsZWRUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkNsdXN0ZXJTdW1tYXJ5U2NhbGVkVGV4dFwiXSA9IFwiY2x1c3RlclN1bW1hcnlTY2FsZWRUZXh0XCI7XG4gICAgLy8gRFBJX0NsdXN0ZXJTdW1tYXJ5VGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJDbHVzdGVyU3VtbWFyeVRleHRcIl0gPSBcImNsdXN0ZXJTdW1tYXJ5VGV4dFwiO1xuICAgIC8vIERQSV9Db2x1bW5DYXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbHVtbkNhcHRpb25cIl0gPSBcImNvbHVtbkNhcHRpb25cIjtcbiAgICAvLyBEUElfRGF0YXNvdXJjZUNhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRGF0YXNvdXJjZUNhcHRpb25cIl0gPSBcImRhdGFzb3VyY2VDYXB0aW9uXCI7XG4gICAgLy8gRFBJX0RlZmF1bHRDYXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkRlZmF1bHRDYXB0aW9uXCJdID0gXCJkZWZhdWx0Q2FwdGlvblwiO1xuICAgIC8vIERQSV9EaXNwbGF5U3RyaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkRpc3BsYXlTdHJpbmdcIl0gPSBcImRpc3BsYXlUZXh0XCI7XG4gICAgLy8gRFBJX0RyYWdEZXNjcmlwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJEcmFnRGVzY3JpcHRpb25cIl0gPSBcImRyYWdEZXNjcmlwdGlvblwiO1xuICAgIC8vIERQSV9FeGNlcHRpb25NZXNzYWdlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkV4Y2VwdGlvbk1lc3NhZ2VcIl0gPSBcImV4Y2VwdGlvbk1lc3NhZ2VcIjtcbiAgICAvLyBEUElfRXhwbGFuYXRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRXhwbGFuYXRpb25cIl0gPSBcImV4cGxhbmF0aW9uXCI7XG4gICAgLy8gRFBJX0ZpZWxkQ2FwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJGaWVsZENhcHRpb25cIl0gPSBcImZpZWxkQ2FwdGlvblwiO1xuICAgIC8vIERQSV9GaWVsZFN1bW1hcnksIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRmllbGRTdW1tYXJ5XCJdID0gXCJmaWVsZFN1bW1hcnlcIjtcbiAgICAvLyBEUElfRmllbGRTdW1tYXJ5TGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRmllbGRTdW1tYXJ5TGFiZWxcIl0gPSBcImZpZWxkU3VtbWFyeUxhYmVsXCI7XG4gICAgLy8gRFBJX0ZpbHRlckRlc2NyaXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkZpbHRlckRlc2NyaXB0aW9uXCJdID0gXCJmaWx0ZXJEZXNjcmlwdGlvblwiO1xuICAgIC8vIERQSV9GaWx0ZXJOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkZpbHRlck5hbWVcIl0gPSBcImZpbHRlck5hbWVcIjtcbiAgICAvLyBEUElfRm9yZWNhc3RNb2RlbFRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRm9yZWNhc3RNb2RlbFRleHRcIl0gPSBcImZvcmVjYXN0TW9kZWxUZXh0XCI7XG4gICAgLy8gRFBJX0ZvcmVjYXN0U3VtbWFyeVBjdFRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRm9yZWNhc3RTdW1tYXJ5UGN0VGV4dFwiXSA9IFwiZm9yZWNhc3RTdW1tYXJ5UGN0VGV4dFwiO1xuICAgIC8vIERQSV9Gb3JlY2FzdFN1bW1hcnlUZXh0LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkZvcmVjYXN0U3VtbWFyeVRleHRcIl0gPSBcImZvcmVjYXN0U3VtbWFyeVRleHRcIjtcbiAgICAvLyBEUElfSGFzQWN0aXZlRXh0cmFjdFRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiSGFzQWN0aXZlRXh0cmFjdFRleHRcIl0gPSBcImhhc0FjdGl2ZUV4dHJhY3RUZXh0XCI7XG4gICAgLy8gRFBJX0h0bWxDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJIdG1sQ29sb3JcIl0gPSBcImh0bWxDb2xvclwiO1xuICAgIC8vIERQSV9JbmNsdWRlTG9jYWxGaWxlc0NoZWNrZWRXYXJuaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkluY2x1ZGVMb2NhbEZpbGVzQ2hlY2tlZFdhcm5pbmdcIl0gPSBcImluY2x1ZGVMb2NhbEZpbGVzQ2hlY2tlZFdhcm5pbmdcIjtcbiAgICAvLyBEUElfSW5jbHVkZUxvY2FsRmlsZXNXYXJuaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkluY2x1ZGVMb2NhbEZpbGVzV2FybmluZ1wiXSA9IFwiaW5jbHVkZUxvY2FsRmlsZXNXYXJuaW5nXCI7XG4gICAgLy8gRFBJX0ludmFsaWRGaWVsZENhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiSW52YWxpZEZpZWxkQ2FwdGlvblwiXSA9IFwiaW52YWxpZEZpZWxkQ2FwdGlvblwiO1xuICAgIC8vIERQSV9MaW1pdFN1bW1hcnksIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiTGltaXRTdW1tYXJ5XCJdID0gXCJsaW1pdFN1bW1hcnlcIjtcbiAgICAvLyBEUElfTG9hZGVkRXhpc3RpbmdPYmplY3RXYXJuaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkxvYWRlZEV4aXN0aW5nT2JqZWN0V2FybmluZ1wiXSA9IFwibG9hZGVkRXhpc3RpbmdPYmplY3RXYXJuaW5nXCI7XG4gICAgLy8gRFBJX01hbmFnZURhdGFzb3VyY2VzU3VtbWFyeSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJNYW5hZ2VEYXRhc291cmNlc1N1bW1hcnlcIl0gPSBcIm1hbmFnZURhdGFzb3VyY2VzU3VtbWFyeVwiO1xuICAgIC8vIERQSV9Nb2RhbERpYWxvZywgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJNb2RhbERpYWxvZ1wiXSA9IFwibW9kYWxEaWFsb2dcIjtcbiAgICAvLyBEUElfTmV3RGF0YXNvdXJjZUNhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiTmV3RGF0YXNvdXJjZUNhcHRpb25cIl0gPSBcIm5ld0RhdGFzb3VyY2VDYXB0aW9uXCI7XG4gICAgLy8gRFBJX1Blcm1pc3Npb25zQnV0dG9uTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiUGVybWlzc2lvbnNCdXR0b25MYWJlbFwiXSA9IFwicGVybWlzc2lvbnNCdXR0b25MYWJlbFwiO1xuICAgIC8vIERQSV9QZXJtaXNzaW9uc0VkaXRvclJvbGVJZCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJQZXJtaXNzaW9uc0VkaXRvclJvbGVJZFwiXSA9IFwicGVybWlzc2lvbnNFZGl0b3JSb2xlSWRcIjtcbiAgICAvLyBEUElfUGVybWlzc2lvbnNMYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJQZXJtaXNzaW9uc0xhYmVsXCJdID0gXCJwZXJtaXNzaW9uc0xhYmVsXCI7XG4gICAgLy8gRFBJX1BlcnNwZWN0aXZlQ2FwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJQZXJzcGVjdGl2ZUNhcHRpb25cIl0gPSBcInBlcnNwZWN0aXZlQ2FwdGlvblwiO1xuICAgIC8vIERQSV9QdWJsaXNoQnV0dG9uTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiUHVibGlzaEJ1dHRvbkxhYmVsXCJdID0gXCJwdWJsaXNoQnV0dG9uTGFiZWxcIjtcbiAgICAvLyBEUElfUHVibGlzaENob2ljZUxhYmVsLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlB1Ymxpc2hDaG9pY2VMYWJlbFwiXSA9IFwicHVibGlzaENob2ljZUxhYmVsXCI7XG4gICAgLy8gRFBJX1B1Ymxpc2hPYmplY3RWaWV3c1N1bW1hcnksIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiUHVibGlzaE9iamVjdFZpZXdzU3VtbWFyeVwiXSA9IFwicHVibGlzaE9iamVjdFZpZXdzU3VtbWFyeVwiO1xuICAgIC8vIERQSV9RdWFsaWZpZWRGaWVsZENhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiUXVhbGlmaWVkRmllbGRDYXB0aW9uXCJdID0gXCJxdWFsaWZpZWRGaWVsZENhcHRpb25cIjtcbiAgICAvLyBEUElfUmVsYXRpb25zaGlwVG9vbHRpcFRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiUmVsYXRpb25zaGlwVG9vbHRpcFRleHRcIl0gPSBcInJlbGF0aW9uc2hpcFRvb2x0aXBUZXh0XCI7XG4gICAgLy8gRFBJX1Jlc2V0T2JqZWN0QXR0cmlidXRlc1dhcm5pbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiUmVzZXRPYmplY3RBdHRyaWJ1dGVzV2FybmluZ1wiXSA9IFwicmVzZXRPYmplY3RBdHRyaWJ1dGVzV2FybmluZ1wiO1xuICAgIC8vIERQSV9Sb3dDb3VudENhcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiUm93Q291bnRDYXB0aW9uXCJdID0gXCJyb3dDb3VudENhcHRpb25cIjtcbiAgICAvLyBEUElfU2VydmVyQ2FwdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJTZXJ2ZXJDYXB0aW9uXCJdID0gXCJzZXJ2ZXJDYXB0aW9uXCI7XG4gICAgLy8gRFBJX1NpemVNb2RlTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJTaXplTW9kZU5hbWVcIl0gPSBcInNpemVNb2RlTmFtZVwiO1xuICAgIC8vIERQSV9TdW1tYXJ5VGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJTdW1tYXJ5VGV4dFwiXSA9IFwic3VtbWFyeVRleHRcIjtcbiAgICAvLyBEUElfU3luY0NsaWVudFVzZUV4dHJhY3RMYWJlbCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJTeW5jQ2xpZW50VXNlRXh0cmFjdExhYmVsXCJdID0gXCJzeW5jQ2xpZW50VXNlRXh0cmFjdExhYmVsXCI7XG4gICAgLy8gRFBJX1RleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiVGV4dFwiXSA9IFwidGV4dFwiO1xuICAgIC8vIERQSV9UZXh0RHJvcGRvd25Db250cm9sTGFiZWwsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiVGV4dERyb3Bkb3duQ29udHJvbExhYmVsXCJdID0gXCJjb250cm9sTGFiZWxcIjtcbiAgICAvLyBEUElfVGh1bWJuYWlsVXNlck5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiVGh1bWJuYWlsVXNlck5hbWVcIl0gPSBcInRodW1ibmFpbFVzZXJOYW1lXCI7XG4gICAgLy8gRFBJX1RpdGxlU3RyaW5nLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlRpdGxlU3RyaW5nXCJdID0gXCJ0aXRsZVN0cmluZ1wiO1xuICAgIC8vIERQSV9Ub29sdGlwVGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJUb29sdGlwVGV4dFwiXSA9IFwidG9vbHRpcFRleHRcIjtcbiAgICAvLyBEUElfVXBkYXRlZENhbGNDYXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlVwZGF0ZWRDYWxjQ2FwdGlvblwiXSA9IFwidXBkYXRlZENhbGN1bGF0aW9uQ2FwdGlvblwiO1xuICAgIC8vIERQSV9VcGRhdGVkQ2FsY0Zvcm11bGEsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiVXBkYXRlZENhbGNGb3JtdWxhXCJdID0gXCJ1cGRhdGVkQ2FsY3VsYXRpb25Gb3JtdWxhXCI7XG4gICAgLy8gRFBJX1VzZXJDYXB0aW9uLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlVzZXJDYXB0aW9uXCJdID0gXCJ1c2VyQ2FwdGlvblwiO1xuICAgIC8vIERQSV9XYXJuaW5nVG9vbHRpcFRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiV2FybmluZ1Rvb2x0aXBUZXh0XCJdID0gXCJ3YXJuaW5nVG9vbHRpcFRleHRcIjtcbiAgICAvLyBEUElfRGF0YXNvdXJjZUZpbGUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRGF0YXNvdXJjZUZpbGVcIl0gPSBcImRhdGFzb3VyY2VGaWxlXCI7XG4gICAgLy8gRFBJX0ZpbGUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRmlsZVwiXSA9IFwiZmlsZVwiO1xuICAgIC8vIERQSV9GaWxlTmFtZUJhc2UsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRmlsZU5hbWVCYXNlXCJdID0gXCJmaWxlbmFtZUJhc2VcIjtcbiAgICAvLyBEUElfTmV3RmlsZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJOZXdGaWxlXCJdID0gXCJuZXdGaWxlXCI7XG4gICAgLy8gRFBJX09yaWdpbmFsRmlsZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJPcmlnaW5hbEZpbGVcIl0gPSBcIm9yaWdpbmFsRmlsZVwiO1xuICAgIC8vIERQSV9PdXRwdXRGaWxlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIk91dHB1dEZpbGVcIl0gPSBcIm91dHB1dEZpbGVcIjtcbiAgICAvLyBEUElfU2FtcGxlRmlsZU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiU2FtcGxlRmlsZU5hbWVcIl0gPSBcInNhbXBsZUZpbGVuYW1lXCI7XG4gICAgLy8gRFBJX1dvcmtib29rRmlsZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJXb3JrYm9va0ZpbGVcIl0gPSBcIndvcmtib29rRmlsZVwiO1xuICAgIC8vIERQSV9JbWFnZUtleSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJJbWFnZUtleVwiXSA9IFwiaW1hZ2VLZXlcIjtcbiAgICAvLyBEUElfT3ZlcmxheUltYWdlS2V5LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIk92ZXJsYXlJbWFnZUtleVwiXSA9IFwib3ZlcmxheUltYWdlS2V5XCI7XG4gICAgLy8gRFBJX1RlbXBGaWxlS2V5LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlRlbXBGaWxlS2V5XCJdID0gXCJ0ZW1wZmlsZUtleVwiO1xuICAgIC8vIERQSV9DYXB0dXJlZFNoZWV0LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkNhcHR1cmVkU2hlZXRcIl0gPSBcImNhcHR1cmVkU2hlZXRcIjtcbiAgICAvLyBEUElfQ3VycmVudFNoZWV0LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkN1cnJlbnRTaGVldFwiXSA9IFwiY3VycmVudFNoZWV0XCI7XG4gICAgLy8gRFBJX0Rhc2hib2FyZCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJEYXNoYm9hcmRcIl0gPSBcImRhc2hib2FyZFwiO1xuICAgIC8vIERQSV9FbnN1cmVTaGVldCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJFbnN1cmVTaGVldFwiXSA9IFwiZW5zdXJlU2hlZXROYW1lXCI7XG4gICAgLy8gRFBJX05ld1NoZWV0LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIk5ld1NoZWV0XCJdID0gXCJuZXdTaGVldFwiO1xuICAgIC8vIERQSV9TaGVldCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJTaGVldFwiXSA9IFwic2hlZXRcIjtcbiAgICAvLyBEUElfU2hlZXROYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlNoZWV0TmFtZVwiXSA9IFwic2hlZXROYW1lXCI7XG4gICAgLy8gRFBJX1NvdXJjZURhc2hib2FyZCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJTb3VyY2VEYXNoYm9hcmRcIl0gPSBcInNvdXJjZURhc2hib2FyZFwiO1xuICAgIC8vIERQSV9Tb3VyY2VTaGVldCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJTb3VyY2VTaGVldFwiXSA9IFwic291cmNlU2hlZXRcIjtcbiAgICAvLyBEUElfVGFyZ2V0U2hlZXQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiVGFyZ2V0U2hlZXRcIl0gPSBcInRhcmdldFNoZWV0XCI7XG4gICAgLy8gRFBJX1dvcmtib29rTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJXb3JrYm9va05hbWVcIl0gPSBcIndvcmtib29rTmFtZVwiO1xuICAgIC8vIERQSV9Xb3Jrc2hlZXQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiV29ya3NoZWV0XCJdID0gXCJ3b3Jrc2hlZXRcIjtcbiAgICAvLyBEUElfQmFzZVZpZXdUaHVtYkxpbmssIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQmFzZVZpZXdUaHVtYkxpbmtcIl0gPSBcImJhc2VWaWV3VGh1bWJMaW5rXCI7XG4gICAgLy8gRFBJX0Jsb2dMaW5rLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkJsb2dMaW5rXCJdID0gXCJibG9nTGlua1wiO1xuICAgIC8vIERQSV9DYWNoZVVybCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJDYWNoZVVybFwiXSA9IFwiY2FjaGVVcmxcIjtcbiAgICAvLyBEUElfRG93bmxvYWRMaW5rLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkRvd25sb2FkTGlua1wiXSA9IFwiZG93bmxvYWRMaW5rXCI7XG4gICAgLy8gRFBJX1JlcG9zaXRvcnlVcmwsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiUmVwb3NpdG9yeVVybFwiXSA9IFwicmVwb3NpdG9yeVVybFwiO1xuICAgIC8vIERQSV9TaGFyZUxpbmssIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiU2hhcmVMaW5rXCJdID0gXCJzaGFyZUxpbmtcIjtcbiAgICAvLyBEUElfVVJMLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlVSTFwiXSA9IFwidXJsXCI7XG4gICAgLy8gRFBJX0NsdXN0ZXJNb2RlbEh0bWwsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQ2x1c3Rlck1vZGVsSHRtbFwiXSA9IFwiY2x1c3Rlck1vZGVsSHRtbFwiO1xuICAgIC8vIERQSV9DbHVzdGVyU3VtbWFyeUh0bWwsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQ2x1c3RlclN1bW1hcnlIdG1sXCJdID0gXCJjbHVzdGVyU3VtbWFyeUh0bWxcIjtcbiAgICAvLyBEUElfQ2x1c3RlclN1bW1hcnlTY2FsZWRIdG1sLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkNsdXN0ZXJTdW1tYXJ5U2NhbGVkSHRtbFwiXSA9IFwiY2x1c3RlclN1bW1hcnlTY2FsZWRIdG1sXCI7XG4gICAgLy8gRFBJX0ZpZWxkRGVzY3JpcHRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRmllbGREZXNjcmlwdGlvblwiXSA9IFwiZmllbGREZXNjcmlwdGlvblwiO1xuICAgIC8vIERQSV9Gb3JlY2FzdE1vZGVsSHRtbCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJGb3JlY2FzdE1vZGVsSHRtbFwiXSA9IFwiZm9yZWNhc3RNb2RlbEh0bWxcIjtcbiAgICAvLyBEUElfRm9yZWNhc3RTdW1tYXJ5SHRtbCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJGb3JlY2FzdFN1bW1hcnlIdG1sXCJdID0gXCJmb3JlY2FzdFN1bW1hcnlIdG1sXCI7XG4gICAgLy8gRFBJX0ZvcmVjYXN0U3VtbWFyeVBjdEh0bWwsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRm9yZWNhc3RTdW1tYXJ5UGN0SHRtbFwiXSA9IFwiZm9yZWNhc3RTdW1tYXJ5UGN0SHRtbFwiO1xuICAgIC8vIERQSV9IdG1sLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkh0bWxcIl0gPSBcImh0bWxcIjtcbiAgICAvLyBEUElfSHRtbFNlbGVjdGlvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJIdG1sU2VsZWN0aW9uXCJdID0gXCJodG1sU2VsZWN0aW9uXCI7XG4gICAgLy8gRFBJX0h0bWxUb29sdGlwLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkh0bWxUb29sdGlwXCJdID0gXCJodG1sVG9vbHRpcFwiO1xuICAgIC8vIERQSV9IdG1sVG9vbHRpcE1vZGlmaWVkLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkh0bWxUb29sdGlwTW9kaWZpZWRcIl0gPSBcImh0bWxUb29sdGlwTW9kaWZpZWRcIjtcbiAgICAvLyBEUElfVGl0bGVIdG1sLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlRpdGxlSHRtbFwiXSA9IFwidGl0bGVIdG1sXCI7XG4gICAgLy8gRFBJX0NhY2hlVXJsSW5mb0pzb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQ2FjaGVVcmxJbmZvSnNvblwiXSA9IFwiY2FjaGVVcmxJbmZvSnNvblwiO1xuICAgIC8vIERQSV9GaWx0ZXJTZWFyY2hKc29uLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkZpbHRlclNlYXJjaEpzb25cIl0gPSBcImZpbHRlclNlYXJjaEpzb25cIjtcbiAgICAvLyBEUElfRmlsdGVyU2VhcmNoV2l0aEluZGV4SnNvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJGaWx0ZXJTZWFyY2hXaXRoSW5kZXhKc29uXCJdID0gXCJmaWx0ZXJTZWFyY2hXaXRoSW5kZXhKc29uXCI7XG4gICAgLy8gRFBJX0ZpbHRlclNob3dDaGlsZHJlbkpzb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRmlsdGVyU2hvd0NoaWxkcmVuSnNvblwiXSA9IFwiZmlsdGVyU2hvd0NoaWxkcmVuSnNvblwiO1xuICAgIC8vIERQSV9GaWx0ZXJzSnNvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJGaWx0ZXJzSnNvblwiXSA9IFwiZmlsdGVyc0pzb25cIjtcbiAgICAvLyBEUElfRnJhbWVKc29uLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkZyYW1lSnNvblwiXSA9IFwiZnJhbWVKc29uXCI7XG4gICAgLy8gRFBJX0dlb21ldHJ5SnNvbiwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJHZW9tZXRyeUpzb25cIl0gPSBcImdlb21ldHJ5SnNvblwiO1xuICAgIC8vIERQSV9HZXRGaWx0ZXJJdGVtc0pzb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiR2V0RmlsdGVySXRlbXNKc29uXCJdID0gXCJnZXRGaWx0ZXJJdGVtc0pzb25cIjtcbiAgICAvLyBEUElfS2VlcE9ubHlSZXNwb25zZUpzb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiS2VlcE9ubHlSZXNwb25zZUpzb25cIl0gPSBcImtlZXBPbmx5UmVzcG9uc2VKc29uXCI7XG4gICAgLy8gRFBJX01lbnVDb21tYW5kc0pzb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiTWVudUNvbW1hbmRzSnNvblwiXSA9IFwibWVudUNvbW1hbmRzSnNvblwiO1xuICAgIC8vIERQSV9Nb2RpZmllZFNoZWV0c0pzb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiTW9kaWZpZWRTaGVldHNKc29uXCJdID0gXCJtb2RpZmllZFNoZWV0c0pzb25cIjtcbiAgICAvLyBEUElfUGFyYW1ldGVyQ3RybEpzb24sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiUGFyYW1ldGVyQ3RybEpzb25cIl0gPSBcInBhcmFtZXRlckN0cmxKc29uXCI7XG4gICAgLy8gRFBJX1ZpZXdKc29uLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlZpZXdKc29uXCJdID0gXCJ2aWV3SnNvblwiO1xuICAgIC8vIERQSV9DdXN0b21pemVkVmlld1hNTCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJDdXN0b21pemVkVmlld1hNTFwiXSA9IFwiY3VzdG9taXplZFZpZXdYbWxcIjtcbiAgICAvLyBEUElfRGF0YXNvdXJjZURlbHRhWE1MLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFzb3VyY2VEZWx0YVhNTFwiXSA9IFwiZGF0YXNvdXJjZURlbHRhWG1sXCI7XG4gICAgLy8gRFBJX0RhdGFzb3VyY2VYTUwsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRGF0YXNvdXJjZVhNTFwiXSA9IFwiZGF0YXNvdXJjZVhtbFwiO1xuICAgIC8vIERQSV9LZXljaGFpblhNTCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJLZXljaGFpblhNTFwiXSA9IFwia2V5Y2hhaW5YbWxcIjtcbiAgICAvLyBEUElfUGVybWlzc2lvbnNNb2RlbFhNTCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJQZXJtaXNzaW9uc01vZGVsWE1MXCJdID0gXCJwZXJtaXNzaW9uc01vZGVsWG1sXCI7XG4gICAgLy8gRFBJX1NoYXJlZFZpZXdzWE1MLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlNoYXJlZFZpZXdzWE1MXCJdID0gXCJzaGFyZWRWaWV3c1htbFwiO1xuICAgIC8vIERQSV9UYXJnZXRVUkwsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiVGFyZ2V0VVJMXCJdID0gXCJ0YXJnZXRVcmxcIjtcbiAgICAvLyBEUElfQW5jaG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkFuY2hvclwiXSA9IFwiYW5jaG9yXCI7XG4gICAgLy8gRFBJX0NlbnRlclZhbHVlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkNlbnRlclZhbHVlXCJdID0gXCJjZW50ZXJWYWx1ZVwiO1xuICAgIC8vIERQSV9Db21wdXRlZEJpblNpemUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQ29tcHV0ZWRCaW5TaXplXCJdID0gXCJjb21wdXRlZEJpblNpemVcIjtcbiAgICAvLyBEUElfQ29uc3RhbnRWYWx1ZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJDb25zdGFudFZhbHVlXCJdID0gXCJjb25zdGFudFZhbHVlXCI7XG4gICAgLy8gRFBJX1BhaXJlZENvbnN0YW50VmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiUGFpcmVkQ29uc3RhbnRWYWx1ZVwiXSA9IFwicGFpcmVkQ29uc3RhbnRWYWx1ZVwiO1xuICAgIC8vIERQSV9Db3VudERpc3RpbmN0LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkNvdW50RGlzdGluY3RcIl0gPSBcImNvdW50RGlzdGluY3RcIjtcbiAgICAvLyBEUElfRGF0YU1heCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJEYXRhTWF4XCJdID0gXCJkYXRhTWF4XCI7XG4gICAgLy8gRFBJX0RhdGFNaW4sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRGF0YU1pblwiXSA9IFwiZGF0YU1pblwiO1xuICAgIC8vIERQSV9EYXRhVmFsdWVTdHJpbmcsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRGF0YVZhbHVlU3RyaW5nXCJdID0gXCJkYXRhVmFsdWVTdHJcIjtcbiAgICAvLyBEUElfRW5kVmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRW5kVmFsdWVcIl0gPSBcImVuZFZhbHVlXCI7XG4gICAgLy8gRFBJX1JhbmdlTWF4LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlJhbmdlTWF4XCJdID0gXCJyYW5nZU1heFwiO1xuICAgIC8vIERQSV9SYW5nZU1pbiwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJSYW5nZU1pblwiXSA9IFwicmFuZ2VNaW5cIjtcbiAgICAvLyBEUElfUmFuZ2VTdGVwU2l6ZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJSYW5nZVN0ZXBTaXplXCJdID0gXCJyYW5nZVN0ZXBTaXplXCI7XG4gICAgLy8gRFBJX1N0YXJ0VmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiU3RhcnRWYWx1ZVwiXSA9IFwic3RhcnRWYWx1ZVwiO1xuICAgIC8vIERQSV9UYXJnZXRWYWx1ZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJUYXJnZXRWYWx1ZVwiXSA9IFwidGFyZ2V0VmFsdWVcIjtcbiAgICAvLyBEUElfVmFsdWVJbmMsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiVmFsdWVJbmNcIl0gPSBcInZhbHVlSW5jXCI7XG4gICAgLy8gRFBJX1ZhbHVlTWF4LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlZhbHVlTWF4XCJdID0gXCJ2YWx1ZU1heFwiO1xuICAgIC8vIERQSV9WYWx1ZU1pbiwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJWYWx1ZU1pblwiXSA9IFwidmFsdWVNaW5cIjtcbiAgICAvLyBEUElfUXVhbnRpbGVzVmFsdWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiUXVhbnRpbGVzVmFsdWVcIl0gPSBcInF1YW50aWxlc1ZhbHVlXCI7XG4gICAgLy8gRFBJX1VzZXJJbnB1dEJpblNpemUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiVXNlcklucHV0QmluU2l6ZVwiXSA9IFwidXNlckJpblNpemVcIjtcbiAgICAvLyBEUElfQWRkZWREYXRhU291cmNlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkFkZGVkRGF0YVNvdXJjZXNcIl0gPSBcImFkZGVkRGF0YVNvdXJjZU5hbWVzXCI7XG4gICAgLy8gRFBJX0FkZHJlc3NpbmdDYXB0aW9ucywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkFkZHJlc3NpbmdDYXB0aW9uc1wiXSA9IFwiYWRkcmVzc2luZ0NhcHRpb25zXCI7XG4gICAgLy8gRFBJX0FnZ3JlZ2F0aW9uQ2FwdGlvbnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJBZ2dyZWdhdGlvbkNhcHRpb25zXCJdID0gXCJhZ2dyZWdhdGlvbkNhcHRpb25zXCI7XG4gICAgLy8gRFBJX0F0VGhlTGV2ZWxDYXB0aW9ucywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkF0VGhlTGV2ZWxDYXB0aW9uc1wiXSA9IFwiYXRUaGVMZXZlbENhcHRpb25zXCI7XG4gICAgLy8gRFBJX0F1dGhlbnRpY2F0aW9uU2V0dGluZ0xhYmVscywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkF1dGhlbnRpY2F0aW9uU2V0dGluZ0xhYmVsc1wiXSA9IFwiYXV0aGVudGljYXRpb25TZXR0aW5nTGFiZWxzXCI7XG4gICAgLy8gRFBJX0F1dG9zYXZlRmlsZUlkc1ZlY3RvciwgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkF1dG9zYXZlRmlsZUlkc1ZlY3RvclwiXSA9IFwiYXV0b3NhdmVGaWxlSWRzVmVjdG9yXCI7XG4gICAgLy8gRFBJX0NoYW5nZWRUdXBsZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJDaGFuZ2VkVHVwbGVzXCJdID0gXCJjaGFuZ2VkVHVwbGVzXCI7XG4gICAgLy8gRFBJX0NoYXJzZXRzQXZhaWxhYmxlLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiQ2hhcnNldHNBdmFpbGFibGVcIl0gPSBcImNoYXJzZXRzQXZhaWxhYmxlXCI7XG4gICAgLy8gRFBJX0NoYXJzZXREaXNwbGF5TmFtZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJDaGFyc2V0RGlzcGxheU5hbWVzXCJdID0gXCJjaGFyc2V0RGlzcGxheU5hbWVzXCI7XG4gICAgLy8gRFBJX0NvbG9yRmFjdG9ycywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkNvbG9yRmFjdG9yc1wiXSA9IFwiY29sb3JGYWN0b3JzXCI7XG4gICAgLy8gRFBJX0NvbHVtbkZ1bGxOYW1lcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkNvbHVtbkZ1bGxOYW1lc1wiXSA9IFwiY29sdW1uRnVsbE5hbWVzXCI7XG4gICAgLy8gRFBJX0Nvbm5lY3Rpb25OYW1lcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkNvbm5lY3Rpb25OYW1lc1wiXSA9IFwiY29ubmVjdGlvbk5hbWVzXCI7XG4gICAgLy8gRFBJX0Nvbm5lY3Rpb25DYXB0aW9ucywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkNvbm5lY3Rpb25DYXB0aW9uc1wiXSA9IFwiY29ubmVjdGlvbkNhcHRpb25zXCI7XG4gICAgLy8gRFBJX0Nvbm5lY3Rpb25CaWdRdWVyeUxlZ2FjeVNRTENoZWNrQm94LCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiQ29ubmVjdGlvbkJpZ1F1ZXJ5TGVnYWN5U1FMQ2hlY2tCb3hcIl0gPSBcImNvbm5lY3Rpb25CaWdxdWVyeUxlZ2FjeVNxbENoZWNrYm94XCI7XG4gICAgLy8gRFBJX0N1c3RvbUZpZWxkT3JkZXIsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJDdXN0b21GaWVsZE9yZGVyXCJdID0gXCJjdXN0b21GaWVsZE9yZGVyXCI7XG4gICAgLy8gRFBJX0RhdGFTb3VyY2VDbGFzc2VzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiRGF0YVNvdXJjZUNsYXNzZXNcIl0gPSBcImRhdGFTb3VyY2VDbGFzc2VzXCI7XG4gICAgLy8gRFBJX0RhdGFTb3VyY2VOYW1lcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFTb3VyY2VOYW1lc1wiXSA9IFwiZGF0YVNvdXJjZU5hbWVzXCI7XG4gICAgLy8gRFBJX0RhdGFTb3VyY2VOYW1lczIsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJEYXRhU291cmNlTmFtZXMyXCJdID0gXCJkYXRhU291cmNlTmFtZXMyXCI7XG4gICAgLy8gRFBJX0RhdGFTb3VyY2VzV2l0aEVtcHR5UmVsYXRpb24sIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJEYXRhU291cmNlc1dpdGhFbXB0eVJlbGF0aW9uXCJdID0gXCJkYXRhU291cmNlc1dpdGhFbXB0eVJlbGF0aW9uXCI7XG4gICAgLy8gRFBJX0RhdGVGb3JtYXRzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiRGF0ZUZvcm1hdHNcIl0gPSBcImRhdGVGb3JtYXRzXCI7XG4gICAgLy8gRFBJX0RheU5hbWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiRGF5TmFtZXNcIl0gPSBcImRheU5hbWVzXCI7XG4gICAgLy8gRFBJX0RyaWxsUGF0aFZlY3RvciwgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkRyaWxsUGF0aFZlY3RvclwiXSA9IFwiZHJpbGxwYXRoVmVjdG9yXCI7XG4gICAgLy8gRFBJX0Vycm9yRGV0YWlscywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkVycm9yRGV0YWlsc1wiXSA9IFwiZXJyb3JEZXRhaWxzXCI7XG4gICAgLy8gRFBJX0V4Y2VwdGlvbk1lc3NhZ2VQYXJhbXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJFeGNlcHRpb25NZXNzYWdlUGFyYW1zXCJdID0gXCJleGNlcHRpb25NZXNzYWdlUGFyYW1zXCI7XG4gICAgLy8gRFBJX0V4Y2x1ZGVkU2hlZXRzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiRXhjbHVkZWRTaGVldHNcIl0gPSBcImV4Y2x1ZGVTaGVldHNcIjtcbiAgICAvLyBEUElfRmllbGREaXNwbGF5TmFtZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJGaWVsZERpc3BsYXlOYW1lc1wiXSA9IFwiZmllbGREaXNwbGF5TmFtZXNcIjtcbiAgICAvLyBEUElfRmllbGRGb2xkZXJWZWN0b3IsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJGaWVsZEZvbGRlclZlY3RvclwiXSA9IFwiZmllbGRGb2xkZXJWZWN0b3JcIjtcbiAgICAvLyBEUElfRmlsZUlkcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkZpbGVJZHNcIl0gPSBcImZpbGVJZHNcIjtcbiAgICAvLyBEUElfRmlsZVBhdGhzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiRmlsZVBhdGhzXCJdID0gXCJmaWxlUGF0aHNcIjtcbiAgICAvLyBEUElfRmlsZU5hbWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiRmlsZU5hbWVzXCJdID0gXCJmaWxlTmFtZXNcIjtcbiAgICAvLyBEUElfRmlsdGVyQWRkLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiRmlsdGVyQWRkXCJdID0gXCJmaWx0ZXJBZGRcIjtcbiAgICAvLyBEUElfRmlsdGVyQWxpYXNlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkZpbHRlckFsaWFzZXNcIl0gPSBcImZpbHRlclZhbHVlc1wiO1xuICAgIC8vIERQSV9GaWx0ZXJSZW1vdmUsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJGaWx0ZXJSZW1vdmVcIl0gPSBcImZpbHRlclJlbW92ZVwiO1xuICAgIC8vIERQSV9GaXhlZENhcHRpb25zLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiRml4ZWRDYXB0aW9uc1wiXSA9IFwiZml4ZWRDYXB0aW9uc1wiO1xuICAgIC8vIERQSV9Gb250RmFtaWxpZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJGb250RmFtaWxpZXNcIl0gPSBcImZvbnRGYW1pbGllc1wiO1xuICAgIC8vIERQSV9Gb3JtYXRTdHJpbmdzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiRm9ybWF0U3RyaW5nc1wiXSA9IFwiZm9ybWF0U3RyaW5nc1wiO1xuICAgIC8vIERQSV9Gb3JtYXR0ZWRWYWx1ZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJGb3JtYXR0ZWRWYWx1ZXNcIl0gPSBcImZvcm1hdHRlZFZhbHVlc1wiO1xuICAgIC8vIERQSV9Gb3VuZFR1cGxlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkZvdW5kVHVwbGVzXCJdID0gXCJmb3VuZFR1cGxlc1wiO1xuICAgIC8vIERQSV9GdWxsU2NoZWR1bGVzTGFiZWxzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiRnVsbFNjaGVkdWxlc0xhYmVsc1wiXSA9IFwiZnVsbFNjaGVkdWxlc0xhYmVsc1wiO1xuICAgIC8vIERQSV9JbWFnZVJlc291cmNlTGlzdCwgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkltYWdlUmVzb3VyY2VMaXN0XCJdID0gXCJpbWFnZVJlc291cmNlc1wiO1xuICAgIC8vIERQSV9JbmNsdWRlTGlzdCwgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkluY2x1ZGVMaXN0XCJdID0gXCJpbmNsdWRlTGlzdFwiO1xuICAgIC8vIERQSV9JbmNyU2NoZWR1bGVzTGFiZWxzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiSW5jclNjaGVkdWxlc0xhYmVsc1wiXSA9IFwiaW5jclNjaGVkdWxlc0xhYmVsc1wiO1xuICAgIC8vIERQSV9JbnZhbGlkRGF0ZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJJbnZhbGlkRGF0ZXNcIl0gPSBcImludmFsaWREYXRlc1wiO1xuICAgIC8vIERQSV9JbnZhbGlkVmFsdWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiSW52YWxpZFZhbHVlc1wiXSA9IFwiaW52YWxpZFZhbHVlc1wiO1xuICAgIC8vIERQSV9JdGVtVmFsdWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiSXRlbVZhbHVlc1wiXSA9IFwiaXRlbVZhbHVlc1wiO1xuICAgIC8vIERQSV9Kb2luRWRpdGFibGVQcm9wcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkpvaW5FZGl0YWJsZVByb3BzXCJdID0gXCJqb2luRWRpdGFibGVQcm9wc1wiO1xuICAgIC8vIERQSV9Kb2luRmllbGRDYXB0aW9ucywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkpvaW5GaWVsZENhcHRpb25zXCJdID0gXCJqb2luRmllbGRDYXB0aW9uc1wiO1xuICAgIC8vIERQSV9Mb2NhbGVPcHRpb25zLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiTG9jYWxlT3B0aW9uc1wiXSA9IFwibG9jYWxlT3B0aW9uc1wiO1xuICAgIC8vIERQSV9Mb2NhbGVEaXNwbGF5TmFtZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJMb2NhbGVEaXNwbGF5TmFtZXNcIl0gPSBcImxvY2FsZURpc3BsYXlOYW1lc1wiO1xuICAgIC8vIERQSV9NYXBCb3hTdHlsZU1hcHMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJNYXBCb3hTdHlsZU1hcHNcIl0gPSBcIm1hcGJveFN0eWxlTWFwc1wiO1xuICAgIC8vIERQSV9NYXBDb25uZWN0aW9uRXJyb3JEZXRhaWxzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiTWFwQ29ubmVjdGlvbkVycm9yRGV0YWlsc1wiXSA9IFwibWFwQ29ubmVjdGlvbkVycm9yRGV0YWlsc1wiO1xuICAgIC8vIERQSV9TaGVldE5hbWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiU2hlZXROYW1lc1wiXSA9IFwic2hlZXROYW1lc1wiO1xuICAgIC8vIERQSV9NYXBTb3VyY2VOYW1lcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIk1hcFNvdXJjZU5hbWVzXCJdID0gXCJtYXBTb3VyY2VOYW1lc1wiO1xuICAgIC8vIERQSV9NYXJrR2VvbWV0cmllcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIk1hcmtHZW9tZXRyaWVzXCJdID0gXCJtYXJrR2VvbWV0cmllc1wiO1xuICAgIC8vIERQSV9NZW51SXRlbXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJNZW51SXRlbXNcIl0gPSBcIm1lbnVJdGVtc1wiO1xuICAgIC8vIERQSV9Nb2RlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIk1vZGVzXCJdID0gXCJtb2Rlc1wiO1xuICAgIC8vIERQSV9Nb250aE5hbWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiTW9udGhOYW1lc1wiXSA9IFwibW9udGhOYW1lc1wiO1xuICAgIC8vIERQSV9OdW1iZXJGb3JtYXRzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiTnVtYmVyRm9ybWF0c1wiXSA9IFwibnVtYmVyRm9ybWF0c1wiO1xuICAgIC8vIERQSV9PYmplY3RUZXh0SURzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiT2JqZWN0VGV4dElEc1wiXSA9IFwib2JqZWN0VGV4dElkc1wiO1xuICAgIC8vIERQSV9PbGRFeHRyYWN0cywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIk9sZEV4dHJhY3RzXCJdID0gXCJvbGRFeHRyYWN0c1wiO1xuICAgIC8vIERQSV9PcmRlcmluZ1R5cGVDYXB0aW9ucywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIk9yZGVyaW5nVHlwZUNhcHRpb25zXCJdID0gXCJvcmRlcmluZ1R5cGVDYXB0aW9uc1wiO1xuICAgIC8vIERQSV9QYWdlTmFtZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJQYWdlTmFtZXNcIl0gPSBcInBhZ2VOYW1lc1wiO1xuICAgIC8vIERQSV9QYW5lRGVzY3JpcHRvcktleXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJQYW5lRGVzY3JpcHRvcktleXNcIl0gPSBcInBhbmVEZXNjcmlwdG9yS2V5c1wiO1xuICAgIC8vIERQSV9QYXJhbUNhcHRpb25zLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiUGFyYW1DYXB0aW9uc1wiXSA9IFwicGFyYW1DYXB0aW9uc1wiO1xuICAgIC8vIERQSV9QcmVjYW5uZWREYXRhVmFsdWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiUHJlY2FubmVkRGF0YVZhbHVlc1wiXSA9IFwicHJlY2FubmVkRGF0YVZhbHVlc1wiO1xuICAgIC8vIERQSV9QdWJsaXNoQ2hvaWNlTGFiZWxzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiUHVibGlzaENob2ljZUxhYmVsc1wiXSA9IFwicHVibGlzaENob2ljZUxhYmVsc1wiO1xuICAgIC8vIERQSV9SYW5rVHlwZUNhcHRpb25zLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiUmFua1R5cGVDYXB0aW9uc1wiXSA9IFwicmFua1R5cGVDYXB0aW9uc1wiO1xuICAgIC8vIERQSV9SZWNlbnRUYWdzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiUmVjZW50VGFnc1wiXSA9IFwicmVjZW50VGFnc1wiO1xuICAgIC8vIERQSV9SZWxhdGl2ZUNhcHRpb25zLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiUmVsYXRpdmVDYXB0aW9uc1wiXSA9IFwicmVsYXRpdmVDYXB0aW9uc1wiO1xuICAgIC8vIERQSV9SZW1vdmVkRGF0YVNvdXJjZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJSZW1vdmVkRGF0YVNvdXJjZXNcIl0gPSBcInJlbW92ZWREYXRhU291cmNlTmFtZXNcIjtcbiAgICAvLyBEUElfUmVwcmVzZW50YXRpdmVUdXBsZSwgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIlJlcHJlc2VudGF0aXZlVHVwbGVcIl0gPSBcInJlcHJlc2VudGF0aXZlVHVwbGVcIjtcbiAgICAvLyBEUElfUmVzdGFydEV2ZXJ5Q2FwdGlvbnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJSZXN0YXJ0RXZlcnlDYXB0aW9uc1wiXSA9IFwicmVzdGFydEV2ZXJ5Q2FwdGlvbnNcIjtcbiAgICAvLyBEUElfU2NoZW1hTWVtYmVyR2xvYmFsTmFtZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJTY2hlbWFNZW1iZXJHbG9iYWxOYW1lc1wiXSA9IFwic2NoZW1hTWVtYmVyR2xvYmFsTmFtZXNcIjtcbiAgICAvLyBEUElfU2VsZWN0VmFsdWVzTGlzdCwgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIlNlbGVjdFZhbHVlc0xpc3RcIl0gPSBcInNlbGVjdFZhbHVlc1wiO1xuICAgIC8vIERQSV9TZWxlY3Rpb25WYWx1ZUxpc3QsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJTZWxlY3Rpb25WYWx1ZUxpc3RcIl0gPSBcInNlbGVjdGlvblZhbHVlTGlzdFwiO1xuICAgIC8vIERQSV9Tb3J0QWdnQ2FwdGlvbnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJTb3J0QWdnQ2FwdGlvbnNcIl0gPSBcInNvcnRBZ2dDYXB0aW9uc1wiO1xuICAgIC8vIERQSV9Tb3J0RGlyZWN0aW9uQ2FwdGlvbnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJTb3J0RGlyZWN0aW9uQ2FwdGlvbnNcIl0gPSBcInNvcnREaXJlY3Rpb25DYXB0aW9uc1wiO1xuICAgIC8vIERQSV9Tb3J0RmllbGRDYXB0aW9ucywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIlNvcnRGaWVsZENhcHRpb25zXCJdID0gXCJzb3J0RmllbGRDYXB0aW9uc1wiO1xuICAgIC8vIERQSV9Tb3J0RmllbGROYW1lVmVjdG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiU29ydEZpZWxkTmFtZVZlY3RvclwiXSA9IFwic29ydEZpZWxkbmFtZVZlY3RvclwiO1xuICAgIC8vIERQSV9TdXBwb3J0ZWRKb2luT3BlcmF0b3JzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiU3VwcG9ydGVkSm9pbk9wZXJhdG9yc1wiXSA9IFwic3VwcG9ydGVkSm9pbk9wZXJhdG9yc1wiO1xuICAgIC8vIERQSV9UYWJsZUNhbGNUeXBlQ2FwdGlvbnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJUYWJsZUNhbGNUeXBlQ2FwdGlvbnNcIl0gPSBcInRhYmxlQ2FsY1R5cGVDYXB0aW9uc1wiO1xuICAgIC8vIERQSV9UYWdzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiVGFnc1wiXSA9IFwidGFnc1wiO1xuICAgIC8vIERQSV9UZXJtVmVjLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiVGVybVZlY1wiXSA9IFwidGVybVZlY3RvclwiO1xuICAgIC8vIERQSV9VSUF1dG9tYXRpb25MaXN0LCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiVUlBdXRvbWF0aW9uTGlzdFwiXSA9IFwidWlBdXRvbWF0aW9uTGlzdFwiO1xuICAgIC8vIERQSV9SZWZlcmVuY2VMaW5lVmFsaWRDdXN0b21MYWJlbFRhZ3MsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJSZWZlcmVuY2VMaW5lVmFsaWRDdXN0b21MYWJlbFRhZ3NcIl0gPSBcInZhbGlkUmVmZXJlbmNlTGluZUN1c3RvbUxhYmVsVGFnc1wiO1xuICAgIC8vIERQSV9Mb2NhbGl6ZWRLZXl3b3JkcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkxvY2FsaXplZEtleXdvcmRzXCJdID0gXCJsb2NhbGl6ZWRLZXl3b3Jkc1wiO1xuICAgIC8vIERQSV9BdmFpbGFibGVDYWxlbmRhcnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJBdmFpbGFibGVDYWxlbmRhcnNcIl0gPSBcImF2YWlsYWJsZUNhbGVuZGFyc1wiO1xuICAgIC8vIERQSV9TaGVldHNUb0JlRGVsZXRlZE9ySGlkZGVuLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiU2hlZXRzVG9CZURlbGV0ZWRPckhpZGRlblwiXSA9IFwic2hlZXRzVG9CZURlbGV0ZWRPckhpZGRlblwiO1xuICAgIC8vIERQSV9BZGRTaGVldHMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJBZGRTaGVldHNcIl0gPSBcImFkZFNoZWV0c1wiO1xuICAgIC8vIERQSV9OYW1lc09mU3Vic2hlZXRzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiTmFtZXNPZlN1YnNoZWV0c1wiXSA9IFwibmFtZXNPZlN1YnNoZWV0c1wiO1xuICAgIC8vIERQSV9SZW1vdmVTaGVldHMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJSZW1vdmVTaGVldHNcIl0gPSBcInJlbW92ZVNoZWV0c1wiO1xuICAgIC8vIERQSV9TY3JvbGxPZmZzZXRTaGVldHMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJTY3JvbGxPZmZzZXRTaGVldHNcIl0gPSBcInNjcm9sbE9mZnNldFNoZWV0c1wiO1xuICAgIC8vIERQSV9TaGVldHMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJTaGVldHNcIl0gPSBcInNoZWV0c1wiO1xuICAgIC8vIERQSV9Tb3VyY2VXb3Jrc2hlZXRzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiU291cmNlV29ya3NoZWV0c1wiXSA9IFwic291cmNlV29ya3NoZWV0c1wiO1xuICAgIC8vIERQSV9UYXJnZXRFeGNsdWRlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIlRhcmdldEV4Y2x1ZGVzXCJdID0gXCJ0YXJnZXRFeGNsdWRlXCI7XG4gICAgLy8gRFBJX1RhcmdldFdvcmtzaGVldHMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJUYXJnZXRXb3Jrc2hlZXRzXCJdID0gXCJ0YXJnZXRXb3Jrc2hlZXRzXCI7XG4gICAgLy8gRFBJX1RpbGVVUkxzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiVGlsZVVSTHNcIl0gPSBcInRpbGVVcmxzXCI7XG4gICAgLy8gRFBJX0RldGFpbHMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJEZXRhaWxzXCJdID0gXCJkZXRhaWxzXCI7XG4gICAgLy8gRFBJX0ZpZWxkQ2FwdGlvbnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJGaWVsZENhcHRpb25zXCJdID0gXCJmaWVsZENhcHRpb25zXCI7XG4gICAgLy8gRFBJX0hpZ2hsaWdodENhcHRpb25zLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiSGlnaGxpZ2h0Q2FwdGlvbnNcIl0gPSBcImhpZ2hsaWdodENhcHRpb25zXCI7XG4gICAgLy8gRFBJX0xldmVsQ2FwdGlvbnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJMZXZlbENhcHRpb25zXCJdID0gXCJsZXZlbENhcHRpb25zXCI7XG4gICAgLy8gRFBJX0xldmVsTGVhZlZhbHVlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkxldmVsTGVhZlZhbHVlc1wiXSA9IFwibGV2ZWxMZWFmVmFsdWVzXCI7XG4gICAgLy8gRFBJX1N1YnN0aXR1dGlvblZhcmlhYmxlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIlN1YnN0aXR1dGlvblZhcmlhYmxlc1wiXSA9IFwic3Vic3RpdHV0aW9uVmFyaWFibGVzXCI7XG4gICAgLy8gRFBJX1N1YnN0aXR1dGlvblZhcmlhYmxlVmFsdWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiU3Vic3RpdHV0aW9uVmFyaWFibGVWYWx1ZXNcIl0gPSBcInN1YnN0aXR1dGlvblZhcmlhYmxlVmFsdWVzXCI7XG4gICAgLy8gRFBJX0h0bWxUb29sdGlwcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkh0bWxUb29sdGlwc1wiXSA9IFwiaHRtbFRvb2x0aXBzXCI7XG4gICAgLy8gRFBJX0ludmFsaWRGaWVsZHMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJJbnZhbGlkRmllbGRzXCJdID0gXCJpbnZhbGlkRmllbGRzXCI7XG4gICAgLy8gRFBJX05hbWVzT2ZDb2x1bW5zLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiTmFtZXNPZkNvbHVtbnNcIl0gPSBcIm5hbWVzT2ZDb2x1bW5zXCI7XG4gICAgLy8gRFBJX05hbWVzT2ZGaWVsZHMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJOYW1lc09mRmllbGRzXCJdID0gXCJuYW1lc09mRmllbGRzXCI7XG4gICAgLy8gRFBJX1JlZmVyZW5jZWREYXRhc291cmNlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIlJlZmVyZW5jZWREYXRhc291cmNlc1wiXSA9IFwicmVmZXJlbmNlZERhdGFTb3VyY2VMaXN0XCI7XG4gICAgLy8gRFBJX0NTU0F0dHJzLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcbiAgICBQYXJhbWV0ZXJJZFtcIkNTU0F0dHJzXCJdID0gXCJjc3NBdHRyc1wiO1xuICAgIC8vIERQSV9EYXRhU291cmNlTWFwLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFTb3VyY2VNYXBcIl0gPSBcImRhdGFTb3VyY2VNYXBcIjtcbiAgICAvLyBEUElfRXZlbnRQYXJhbWV0ZXJzLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcbiAgICBQYXJhbWV0ZXJJZFtcIkV2ZW50UGFyYW1ldGVyc1wiXSA9IFwiZXZlbnRQYXJhbWV0ZXJzXCI7XG4gICAgLy8gRFBJX0V4Y2VwdGlvbkF0dHJzLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcbiAgICBQYXJhbWV0ZXJJZFtcIkV4Y2VwdGlvbkF0dHJzXCJdID0gXCJleGNlcHRpb25BdHRyc1wiO1xuICAgIC8vIERQSV9JbnZhbGlkU2hlZXRNZXNzYWdlLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcbiAgICBQYXJhbWV0ZXJJZFtcIkludmFsaWRTaGVldE1lc3NhZ2VcIl0gPSBcImludmFsaWRTaGVldE1lc3NhZ2VzXCI7XG4gICAgLy8gRFBJX01hcEJveERlZmF1bHRTdHlsZSwgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBzdHJpbmcpXG4gICAgUGFyYW1ldGVySWRbXCJNYXBCb3hEZWZhdWx0U3R5bGVcIl0gPSBcIm1hcGJveERlZmF1bHRTdHlsZXNcIjtcbiAgICAvLyBEUElfUGFuZUZvcm1hdHRpbmdzLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcbiAgICBQYXJhbWV0ZXJJZFtcIlBhbmVGb3JtYXR0aW5nc1wiXSA9IFwicGFuZUZvcm1hdHRpbmdzXCI7XG4gICAgLy8gRFBJX1NvdXJjZU5hbWVXaXRoQ2FwdGlvbiwgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBzdHJpbmcpXG4gICAgUGFyYW1ldGVySWRbXCJTb3VyY2VOYW1lV2l0aENhcHRpb25cIl0gPSBcInNvdXJjZU5hbWVXaXRoQ2FwdGlvblwiO1xuICAgIC8vIERQSV9Db25uZWN0aW9uQ29sb3JNYXAsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2Ygc3RyaW5nKVxuICAgIFBhcmFtZXRlcklkW1wiQ29ubmVjdGlvbkNvbG9yTWFwXCJdID0gXCJjb25uZWN0aW9uQ29sb3JNYXBcIjtcbiAgICAvLyBEUElfVGFyZ2V0TmFtZVdpdGhDYXB0aW9uLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcbiAgICBQYXJhbWV0ZXJJZFtcIlRhcmdldE5hbWVXaXRoQ2FwdGlvblwiXSA9IFwidGFyZ2V0TmFtZVdpdGhDYXB0aW9uXCI7XG4gICAgLy8gRFBJX1ZpZXdJZHMsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2Ygc3RyaW5nKVxuICAgIFBhcmFtZXRlcklkW1wiVmlld0lkc1wiXSA9IFwidmlld0lkc1wiO1xuICAgIC8vIERQSV9BZGRJblNldHRpbmdzLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcbiAgICBQYXJhbWV0ZXJJZFtcIkFkZEluU2V0dGluZ3NcIl0gPSBcImFkZEluU2V0dGluZ3NcIjtcbiAgICAvLyBEUElfRGF0YXNvdXJjZUljb25zLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFzb3VyY2VJY29uc1wiXSA9IFwiZGF0YXNvdXJjZUljb25zXCI7XG4gICAgLy8gRFBJX0Zvcm1hdHRlZFRleHQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRm9ybWF0dGVkVGV4dFwiXSA9IFwiZm9ybWF0dGVkVGV4dFwiO1xuICAgIC8vIERQSV9JY29uVG9vbHRpcCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJJY29uVG9vbHRpcFwiXSA9IFwiaWNvblRvb2x0aXBcIjtcbiAgICAvLyBEUElfVGl0bGUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiVGl0bGVcIl0gPSBcInRpdGxlXCI7XG4gICAgLy8gRFBJX1Rvb2x0aXAsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiVG9vbHRpcFwiXSA9IFwidG9vbHRpcFwiO1xuICAgIC8vIERQSV9ab25lVGV4dCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJab25lVGV4dFwiXSA9IFwiem9uZVRleHRcIjtcbiAgICAvLyBEUElfQWxpZ25tZW50RmxhZ3MsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiQWxpZ25tZW50RmxhZ3NcIl0gPSBcImFsaWdubWVudEZsYWdzXCI7XG4gICAgLy8gRFBJX0FscGhhTGV2ZWwsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiQWxwaGFMZXZlbFwiXSA9IFwiYWxwaGFMZXZlbFwiO1xuICAgIC8vIERQSV9Bbm92YURGLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkFub3ZhREZcIl0gPSBcImFub3ZhRGZcIjtcbiAgICAvLyBEUElfQXRUaGVMZXZlbEluZGV4LCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkF0VGhlTGV2ZWxJbmRleFwiXSA9IFwiYXRUaGVMZXZlbEluZGV4XCI7XG4gICAgLy8gRFBJX0F1dG9tYXRpY0RyaWxsSWR4SW5WZWN0b3IsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiQXV0b21hdGljRHJpbGxJZHhJblZlY3RvclwiXSA9IFwiYXV0b21hdGljRHJpbGxJZHhWZWN0b3JcIjtcbiAgICAvLyBEUElfQXV0b1NpemUsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiQXV0b1NpemVcIl0gPSBcImF1dG9tYXRpY1NpemVcIjtcbiAgICAvLyBEUElfQmFzZUNvb3JkLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkJhc2VDb29yZFwiXSA9IFwiYmFzZUNvb3JkXCI7XG4gICAgLy8gRFBJX0NhbGNFZGl0b3JDdXJzb3JQb3NQb3N0RHJvcCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJDYWxjRWRpdG9yQ3Vyc29yUG9zUG9zdERyb3BcIl0gPSBcImNhbGNFZGl0b3JDdXJzb3JQb3NQb3N0RHJvcFwiO1xuICAgIC8vIERQSV9DYWxjRWRpdG9yRHJvcFBvcywgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJDYWxjRWRpdG9yRHJvcFBvc1wiXSA9IFwiY2FsY0VkaXRvckRyb3BQb3NcIjtcbiAgICAvLyBEUElfQ2FsY0VkaXRvclRleHRTZWxlY3Rpb25FbmRQb3MsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiQ2FsY0VkaXRvclRleHRTZWxlY3Rpb25FbmRQb3NcIl0gPSBcImNhbGNFZGl0b3JUZXh0U2VsZWN0aW9uRW5kUG9zXCI7XG4gICAgLy8gRFBJX0NhbGNFZGl0b3JUZXh0U2VsZWN0aW9uU3RhcnRQb3MsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiQ2FsY0VkaXRvclRleHRTZWxlY3Rpb25TdGFydFBvc1wiXSA9IFwiY2FsY0VkaXRvclRleHRTZWxlY3Rpb25TdGFydFBvc1wiO1xuICAgIC8vIERQSV9DYXRlZ29yaWNhbEJpbklkLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkNhdGVnb3JpY2FsQmluSWRcIl0gPSBcImNhdGVnb3JpY2FsQmluSWRcIjtcbiAgICAvLyBEUElfQ2F0ZWdvcmljYWxGaW5kQ29udHJvbGxlcklkLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkNhdGVnb3JpY2FsRmluZENvbnRyb2xsZXJJZFwiXSA9IFwiY2F0ZWdvcmljYWxGaW5kQ29udHJvbGxlcklkXCI7XG4gICAgLy8gRFBJX0NsYXVzZVRvTW9kaWZ5SW5kZXgsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiQ2xhdXNlVG9Nb2RpZnlJbmRleFwiXSA9IFwiY2xhdXNlVG9Nb2RpZnlJbmRleFwiO1xuICAgIC8vIERQSV9DbGllbnRSZW5kZXJQaXhlbExpbWl0LCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkNsaWVudFJlbmRlclBpeGVsTGltaXRcIl0gPSBcImNsaWVudFJlbmRlclBpeGVsTGltaXRcIjtcbiAgICAvLyBEUElfQ29sQ291bnQsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiQ29sQ291bnRcIl0gPSBcImNvbENvdW50XCI7XG4gICAgLy8gRFBJX0NvbFdpZHRoLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbFdpZHRoXCJdID0gXCJjb2xXaWR0aFwiO1xuICAgIC8vIERQSV9Db2x1bW5MZXZlbHMsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiQ29sdW1uTGV2ZWxzXCJdID0gXCJjb2x1bW5MZXZlbHNcIjtcbiAgICAvLyBEUElfQ29sdW1uTnVtYmVyLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbHVtbk51bWJlclwiXSA9IFwiY29sdW1uTnVtYmVyXCI7XG4gICAgLy8gRFBJX0NvbHVtbldpZHRoLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbHVtbldpZHRoXCJdID0gXCJjb2x1bW5XaWR0aFwiO1xuICAgIC8vIERQSV9Db250ZW50SGVpZ2h0LCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbnRlbnRIZWlnaHRcIl0gPSBcImNvbnRlbnRIXCI7XG4gICAgLy8gRFBJX0NvbnRlbnRXaWR0aCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJDb250ZW50V2lkdGhcIl0gPSBcImNvbnRlbnRXXCI7XG4gICAgLy8gRFBJX0NvbnRlbnRYLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbnRlbnRYXCJdID0gXCJjb250ZW50WFwiO1xuICAgIC8vIERQSV9Db250ZW50WSwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJDb250ZW50WVwiXSA9IFwiY29udGVudFlcIjtcbiAgICAvLyBEUElfQ29vcmRpbmF0ZSwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJDb29yZGluYXRlXCJdID0gXCJjb29yZFwiO1xuICAgIC8vIERQSV9DdXJEYXRlQWdnLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkN1ckRhdGVBZ2dcIl0gPSBcImN1ckRhdGVBZ2dcIjtcbiAgICAvLyBEUElfQ3VycmVudEN1c3RWaWV3SWQsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiQ3VycmVudEN1c3RWaWV3SWRcIl0gPSBcImN1cnJlbnRDdXN0b21WaWV3SWRcIjtcbiAgICAvLyBEUElfQ3VzdG9tU3BsaXRDaGFyYWN0ZXJDb3VudFNlcGFyYXRvciwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJDdXN0b21TcGxpdENoYXJhY3RlckNvdW50U2VwYXJhdG9yXCJdID0gXCJjdXN0b21TcGxpdENoYXJhY3RlckNvdW50U2VwYXJhdG9yXCI7XG4gICAgLy8gRFBJX0N1c3RvbVNwbGl0RGVzaXJlZFNwbGl0Q291bnQsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiQ3VzdG9tU3BsaXREZXNpcmVkU3BsaXRDb3VudFwiXSA9IFwiY3VzdG9tU3BsaXREZXNpcmVkU3BsaXRDb3VudFwiO1xuICAgIC8vIERQSV9EYXNoYm9hcmRHcmlkU2l6ZSwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJEYXNoYm9hcmRHcmlkU2l6ZVwiXSA9IFwiZGFzaGJvYXJkR3JpZFNpemVcIjtcbiAgICAvLyBEUElfRGF0YUluZGV4LCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFJbmRleFwiXSA9IFwiZGF0YUluZGV4XCI7XG4gICAgLy8gRFBJX0RlY2ltYWxQbGFjZXMsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiRGVjaW1hbFBsYWNlc1wiXSA9IFwiZGVjaW1hbFBsYWNlc1wiO1xuICAgIC8vIERQSV9EZWx0YVRpbWUsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiRGVsdGFUaW1lXCJdID0gXCJkZWx0YVRpbWVcIjtcbiAgICAvLyBEUElfRGVzdFBpeCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJEZXN0UGl4XCJdID0gXCJkZXN0UGl4XCI7XG4gICAgLy8gRFBJX0RldmljZUluZGV4LCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkRldmljZUluZGV4XCJdID0gXCJkZXZpY2VJbmRleFwiO1xuICAgIC8vIERQSV9EdXJhdGlvbiwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJEdXJhdGlvblwiXSA9IFwiZHVyYXRpb25cIjtcbiAgICAvLyBEUElfRW5kUHRYLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkVuZFB0WFwiXSA9IFwiZW5kWFwiO1xuICAgIC8vIERQSV9FbmRQdFksIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiRW5kUHRZXCJdID0gXCJlbmRZXCI7XG4gICAgLy8gRFBJX0Vycm9yTGVuLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkVycm9yTGVuXCJdID0gXCJsZW5ndGhPZkNhbGNPZkVycm9yXCI7XG4gICAgLy8gRFBJX0Vycm9yUG9zLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkVycm9yUG9zXCJdID0gXCJzdGFydFBvc2l0aW9uRm9yRXJyb3JcIjtcbiAgICAvLyBEUElfRXhjZXB0aW9uRXJyb3JNZXNzYWdlSWQsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiRXhjZXB0aW9uRXJyb3JNZXNzYWdlSWRcIl0gPSBcImV4Y2VwdGlvbkVycm9yTWVzc2FnZUlkXCI7XG4gICAgLy8gRFBJX0V4dGVudHNILCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkV4dGVudHNIXCJdID0gXCJleHRlbnRzSGVpZ2h0XCI7XG4gICAgLy8gRFBJX0V4dGVudHNXLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkV4dGVudHNXXCJdID0gXCJleHRlbnRzV2lkdGhcIjtcbiAgICAvLyBEUElfRXh0ZW50c1gsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiRXh0ZW50c1hcIl0gPSBcImV4dGVudHNYXCI7XG4gICAgLy8gRFBJX0V4dGVudHNZLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkV4dGVudHNZXCJdID0gXCJleHRlbnRzWVwiO1xuICAgIC8vIERQSV9GaWVsZEluZGV4LCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkZpZWxkSW5kZXhcIl0gPSBcImZpZWxkSW5kZXhcIjtcbiAgICAvLyBEUElfRmllbGROYW1lSWQsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiRmllbGROYW1lSWRcIl0gPSBcImZpZWxkTmFtZUlkXCI7XG4gICAgLy8gRFBJX0ZpcnN0RGF5T2ZXZWVrLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkZpcnN0RGF5T2ZXZWVrXCJdID0gXCJmaXJzdERheU9mV2Vla1wiO1xuICAgIC8vIERQSV9GaXJzdFZhbHVlSW5kZXgsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiRmlyc3RWYWx1ZUluZGV4XCJdID0gXCJmaXJzdFZhbHVlSW5kZXhcIjtcbiAgICAvLyBEUElfRml4ZWRTaXplUHJlc2V0SW5kZXgsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiRml4ZWRTaXplUHJlc2V0SW5kZXhcIl0gPSBcImZpeGVkU2l6ZVByZXNldEluZGV4XCI7XG4gICAgLy8gRFBJX0ZvY3VzSXRlbUluZGV4LCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkZvY3VzSXRlbUluZGV4XCJdID0gXCJmb2N1c0l0ZW1JbmRleFwiO1xuICAgIC8vIERQSV9Gb250U2l6ZSwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJGb250U2l6ZVwiXSA9IFwiZm9udFNpemVcIjtcbiAgICAvLyBEUElfRm9yZWNhc3RJbnRSYW5nZUVuZCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJGb3JlY2FzdEludFJhbmdlRW5kXCJdID0gXCJmb3JlY2FzdEludFJhbmdlRW5kXCI7XG4gICAgLy8gRFBJX0ZvcmVjYXN0SW50UmFuZ2VTdGFydCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJGb3JlY2FzdEludFJhbmdlU3RhcnRcIl0gPSBcImZvcmVjYXN0SW50UmFuZ2VTdGFydFwiO1xuICAgIC8vIERQSV9GdW5jdGlvbkhlbHBJbmRleCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJGdW5jdGlvbkhlbHBJbmRleFwiXSA9IFwiZnVuY3Rpb25IZWxwSW5kZXhcIjtcbiAgICAvLyBEUElfR2VvZ3JhcGhpY1NlYXJjaE1heFJlc3VsdHMsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiR2VvZ3JhcGhpY1NlYXJjaE1heFJlc3VsdHNcIl0gPSBcImdlb2dyYXBoaWNTZWFyY2hNYXhSZXN1bHRzXCI7XG4gICAgLy8gRFBJX0hlaWdodCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJIZWlnaHRcIl0gPSBcImhcIjtcbiAgICAvLyBEUElfSGllcmFyY2h5TGV2ZWwsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiSGllcmFyY2h5TGV2ZWxcIl0gPSBcImhpZXJhcmNoeUxldmVsXCI7XG4gICAgLy8gRFBJX0hpZXJhcmNoeUxldmVsTG9hZGVkLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkhpZXJhcmNoeUxldmVsTG9hZGVkXCJdID0gXCJoaWVyYXJjaHlMZXZlbExvYWRlZFwiO1xuICAgIC8vIERQSV9IaWVyYXJjaHlMZXZlbE1pbmltdW0sIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiSGllcmFyY2h5TGV2ZWxNaW5pbXVtXCJdID0gXCJoaWVyYXJjaHlMZXZlbE1pbmltdW1cIjtcbiAgICAvLyBEUElfSGllcmFyY2h5TG9hZExpbWl0LCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkhpZXJhcmNoeUxvYWRMaW1pdFwiXSA9IFwiaGllcmFyY2h5TG9hZExpbWl0XCI7XG4gICAgLy8gRFBJX0hpZXJhcmNoeVNlbGVjdENvbnRyb2xsZXJJZCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJIaWVyYXJjaHlTZWxlY3RDb250cm9sbGVySWRcIl0gPSBcImhpZXJhcmNoeVNlbGVjdENvbnRyb2xsZXJJZFwiO1xuICAgIC8vIERQSV9Ib3J6VGV4dENlbGwsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiSG9yelRleHRDZWxsXCJdID0gXCJob3J6VGV4dENlbGxcIjtcbiAgICAvLyBEUElfSW1hZ2VJbmRleCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJJbWFnZUluZGV4XCJdID0gXCJpbWFnZUluZGV4XCI7XG4gICAgLy8gRFBJX0ltYWdlU2l6ZUxpbWl0LCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkltYWdlU2l6ZUxpbWl0XCJdID0gXCJpbWFnZVNpemVMaW1pdFwiO1xuICAgIC8vIERQSV9UcmFuc3BhcmVudExpbmVNYXJrc0xpbWl0LCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlRyYW5zcGFyZW50TGluZU1hcmtzTGltaXRcIl0gPSBcInRyYW5zcGFyZW50TGluZU1hcmtzTGltaXRcIjtcbiAgICAvLyBEUElfSW5kZW50LCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkluZGVudFwiXSA9IFwiaW5kZW50XCI7XG4gICAgLy8gRFBJX0luZGV4LCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkluZGV4XCJdID0gXCJpZHhcIjtcbiAgICAvLyBEUElfSW5kZXhGcm9tLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkluZGV4RnJvbVwiXSA9IFwiaW5kZXhGcm9tXCI7XG4gICAgLy8gRFBJX0luZGV4T2Zmc2V0LCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkluZGV4T2Zmc2V0XCJdID0gXCJpbmRleE9mZnNldFwiO1xuICAgIC8vIERQSV9JbmRleFRvLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkluZGV4VG9cIl0gPSBcImluZGV4VG9cIjtcbiAgICAvLyBEUElfSW5saW5lQ29ubmVjdGlvblJlbmFtZVJvdywgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJJbmxpbmVDb25uZWN0aW9uUmVuYW1lUm93XCJdID0gXCJpbmxpbmVDb25uZWN0aW9uUmVuYW1lUm93XCI7XG4gICAgLy8gRFBJX0luc2VydFBvcywgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJJbnNlcnRQb3NcIl0gPSBcImluc2VydFBvc1wiO1xuICAgIC8vIERQSV9Jc0hhc0RhdGFTdXBwb3J0ZWQsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiSXNIYXNEYXRhU3VwcG9ydGVkXCJdID0gXCJpc0hhc0RhdGFTdXBwb3J0ZWRcIjtcbiAgICAvLyBEUElfTGVmdE1hcmdpbiwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJMZWZ0TWFyZ2luXCJdID0gXCJsZWZ0TWFyZ2luXCI7XG4gICAgLy8gRFBJX0xlZnRSaWdodEJvcmRlcldpZHRoLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkxlZnRSaWdodEJvcmRlcldpZHRoXCJdID0gXCJsZWZ0UmlnaHRCb3JkZXJXaWR0aFwiO1xuICAgIC8vIERQSV9Mb3dlckJvdW5kLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkxvd2VyQm91bmRcIl0gPSBcImxvd2VyQm91bmRcIjtcbiAgICAvLyBEUElfTWFwUmVxdWVzdFBpeGVscywgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJNYXBSZXF1ZXN0UGl4ZWxzXCJdID0gXCJtYXBSZXF1ZXN0UGl4ZWxzXCI7XG4gICAgLy8gRFBJX01hcFNjYWxlRm9udFNpemVQaXhlbHMsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiTWFwU2NhbGVGb250U2l6ZVBpeGVsc1wiXSA9IFwibWFwU2NhbGVGb250U2l6ZVBpeGVsc1wiO1xuICAgIC8vIERQSV9NYXBTY2FsZVJlYWRvdXROdW1iZXIsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiTWFwU2NhbGVSZWFkb3V0TnVtYmVyXCJdID0gXCJtYXBTY2FsZVJlYWRvdXROdW1iZXJcIjtcbiAgICAvLyBEUElfTWFwU2NhbGVXaWR0aCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJNYXBTY2FsZVdpZHRoXCJdID0gXCJtYXBTY2FsZVdpZHRoXCI7XG4gICAgLy8gRFBJX01hcFRpbGVTaXplLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIk1hcFRpbGVTaXplXCJdID0gXCJtYXBUaWxlU2l6ZVwiO1xuICAgIC8vIERQSV9NYXJnaW4sIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiTWFyZ2luXCJdID0gXCJtYXJnaW5cIjtcbiAgICAvLyBEUElfTWFyZ2luQm90dG9tLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIk1hcmdpbkJvdHRvbVwiXSA9IFwibWFyZ2luQm90dG9tXCI7XG4gICAgLy8gRFBJX01hcmdpbkxlZnQsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiTWFyZ2luTGVmdFwiXSA9IFwibWFyZ2luTGVmdFwiO1xuICAgIC8vIERQSV9NYXJnaW5SaWdodCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJNYXJnaW5SaWdodFwiXSA9IFwibWFyZ2luUmlnaHRcIjtcbiAgICAvLyBEUElfTWFyZ2luVG9wLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIk1hcmdpblRvcFwiXSA9IFwibWFyZ2luVG9wXCI7XG4gICAgLy8gRFBJX01heENlbGwsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiTWF4Q2VsbFwiXSA9IFwibWF4Q2VsbFwiO1xuICAgIC8vIERQSV9NYXhJdGVtU3BhbiwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJNYXhJdGVtU3BhblwiXSA9IFwibWF4SXRlbVNwYW5cIjtcbiAgICAvLyBEUElfTWF4UG9seW5vbWlhbERlZ3JlZSwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJNYXhQb2x5bm9taWFsRGVncmVlXCJdID0gXCJtYXhEZWdyZWVcIjtcbiAgICAvLyBEUElfTWF4UG9zaXRpb24sIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiTWF4UG9zaXRpb25cIl0gPSBcIm1heFBvc2l0aW9uXCI7XG4gICAgLy8gRFBJX01heFNpemUsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiTWF4U2l6ZVwiXSA9IFwibWF4U2l6ZVwiO1xuICAgIC8vIERQSV9NaW5DZWxsLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIk1pbkNlbGxcIl0gPSBcIm1pbkNlbGxcIjtcbiAgICAvLyBEUElfTWluUG9seW5vbWlhbERlZ3JlZSwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJNaW5Qb2x5bm9taWFsRGVncmVlXCJdID0gXCJtaW5EZWdyZWVcIjtcbiAgICAvLyBEUElfTWluUG9zaXRpb24sIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiTWluUG9zaXRpb25cIl0gPSBcIm1pblBvc2l0aW9uXCI7XG4gICAgLy8gRFBJX01pblNpemUsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiTWluU2l6ZVwiXSA9IFwibWluU2l6ZVwiO1xuICAgIC8vIERQSV9Nb2RlbERGLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIk1vZGVsREZcIl0gPSBcIm1vZGVsRGZcIjtcbiAgICAvLyBEUElfTmV3SW5kZXgsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiTmV3SW5kZXhcIl0gPSBcIm5ld0luZGV4XCI7XG4gICAgLy8gRFBJX051bURhdGFTb3VyY2VzVXNpbmdTZXJ2ZXIsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiTnVtRGF0YVNvdXJjZXNVc2luZ1NlcnZlclwiXSA9IFwibnVtRGF0YVNvdXJjZXNVc2luZ1NlcnZlclwiO1xuICAgIC8vIERQSV9OdW1GaWx0ZXJlZE9icywgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJOdW1GaWx0ZXJlZE9ic1wiXSA9IFwiZmlsdGVyZWRPYnNlcnZhdGlvbnNcIjtcbiAgICAvLyBEUElfTnVtTW9kZWxlZE9icywgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJOdW1Nb2RlbGVkT2JzXCJdID0gXCJtb2RlbGVkT2JzZXJ2YXRpb25zXCI7XG4gICAgLy8gRFBJX051bU5vdENsdXN0ZXJlZCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJOdW1Ob3RDbHVzdGVyZWRcIl0gPSBcIm51bU5vdENsdXN0ZXJlZFwiO1xuICAgIC8vIERQSV9OdW1OdW1lcmljRmllbGRzLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIk51bU51bWVyaWNGaWVsZHNcIl0gPSBcIm51bU51bWVyaWNGaWVsZHNcIjtcbiAgICAvLyBEUElfTnVtT3V0bGllcnMsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiTnVtT3V0bGllcnNcIl0gPSBcIm51bU91dGxpZXJzXCI7XG4gICAgLy8gRFBJX051bVJvd3MsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiTnVtUm93c1wiXSA9IFwibnVtUm93c1wiO1xuICAgIC8vIERQSV9OdW1TZWxlY3RlZCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJOdW1TZWxlY3RlZFwiXSA9IFwibnVtU2VsZWN0ZWRcIjtcbiAgICAvLyBEUElfT2Zmc2V0WCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJPZmZzZXRYXCJdID0gXCJvZmZzZXRYXCI7XG4gICAgLy8gRFBJX09mZnNldFksIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiT2Zmc2V0WVwiXSA9IFwib2Zmc2V0WVwiO1xuICAgIC8vIERQSV9QYWRkaW5nLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlBhZGRpbmdcIl0gPSBcInBhZGRpbmdcIjtcbiAgICAvLyBEUElfUGFkZGluZ0JvdHRvbSwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJQYWRkaW5nQm90dG9tXCJdID0gXCJwYWRkaW5nQm90dG9tXCI7XG4gICAgLy8gRFBJX1BhZGRpbmdMZWZ0LCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlBhZGRpbmdMZWZ0XCJdID0gXCJwYWRkaW5nTGVmdFwiO1xuICAgIC8vIERQSV9QYWRkaW5nUmlnaHQsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiUGFkZGluZ1JpZ2h0XCJdID0gXCJwYWRkaW5nUmlnaHRcIjtcbiAgICAvLyBEUElfUGFkZGluZ1RvcCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJQYWRkaW5nVG9wXCJdID0gXCJwYWRkaW5nVG9wXCI7XG4gICAgLy8gRFBJX1BhZ2VMb2FkUGVyY2VudGFnZSwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJQYWdlTG9hZFBlcmNlbnRhZ2VcIl0gPSBcInBhZ2VMb2FkUGVyY2VudGFnZVwiO1xuICAgIC8vIERQSV9QYWxldHRlSW5kZXgsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiUGFsZXR0ZUluZGV4XCJdID0gXCJwYWxldHRlSW5kZXhcIjtcbiAgICAvLyBEUElfUGFuZVNwZWNpZmljYXRpb25JZCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJQYW5lU3BlY2lmaWNhdGlvbklkXCJdID0gXCJwYW5lU3BlY1wiO1xuICAgIC8vIERQSV9QYXJhbWV0ZXJDdHJsSW5jcmVtZW50c1BlclRpY2ssIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiUGFyYW1ldGVyQ3RybEluY3JlbWVudHNQZXJUaWNrXCJdID0gXCJwYXJhbWV0ZXJDb250cm9sSW5jcmVtZW50TXVsdGlwbGllclwiO1xuICAgIC8vIERQSV9Qb2x5bm9taWFsRGVncmVlLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlBvbHlub21pYWxEZWdyZWVcIl0gPSBcImRlZ3JlZVwiO1xuICAgIC8vIERQSV9Qb3J0LCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlBvcnRcIl0gPSBcImRhdGFzb3VyY2VQb3J0XCI7XG4gICAgLy8gRFBJX1Bvc2l0aW9uLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlBvc2l0aW9uXCJdID0gXCJwb3NpdGlvblwiO1xuICAgIC8vIERQSV9QYXJlbnRQcm9qZWN0SWQsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiUGFyZW50UHJvamVjdElkXCJdID0gXCJwYXJlbnRQcm9qZWN0SWRcIjtcbiAgICAvLyBEUElfUHVibGlzaFJlc3VsdFN0cmluZ0lkLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlB1Ymxpc2hSZXN1bHRTdHJpbmdJZFwiXSA9IFwicHVibGlzaFJlc3VsdFN0cmluZ0lkXCI7XG4gICAgLy8gRFBJX1JhZGl1cywgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJSYWRpdXNcIl0gPSBcInJhZGl1c1wiO1xuICAgIC8vIERQSV9SZWFkb3V0T2Zmc2V0LCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlJlYWRvdXRPZmZzZXRcIl0gPSBcInJlYWRvdXRPZmZzZXRcIjtcbiAgICAvLyBEUElfUmVmZXJlbmNlSW5kZXgsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiUmVmZXJlbmNlSW5kZXhcIl0gPSBcInJlZmVyZW5jZUluZGV4XCI7XG4gICAgLy8gRFBJX1JlZ2lvbkhlaWdodCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJSZWdpb25IZWlnaHRcIl0gPSBcInJlZ2lvbkhlaWdodFwiO1xuICAgIC8vIERQSV9SZWdpb25XaWR0aCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJSZWdpb25XaWR0aFwiXSA9IFwicmVnaW9uV2lkdGhcIjtcbiAgICAvLyBEUElfUmVtb3ZlZERhdGFzb3VyY2VDb3VudCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJSZW1vdmVkRGF0YXNvdXJjZUNvdW50XCJdID0gXCJyZW1vdmVkRGF0YXNvdXJjZUNvdW50XCI7XG4gICAgLy8gRFBJX1JlbW92ZWRTaGVldENvdW50LCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlJlbW92ZWRTaGVldENvdW50XCJdID0gXCJyZW1vdmVkU2hlZXRDb3VudFwiO1xuICAgIC8vIERQSV9SZXNpZHVhbERGLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlJlc2lkdWFsREZcIl0gPSBcInJlc2lkdWFsRGZcIjtcbiAgICAvLyBEUElfUmVzaXplQ29sdW1uLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlJlc2l6ZUNvbHVtblwiXSA9IFwicmVzaXplQ29sdW1uXCI7XG4gICAgLy8gRFBJX1Jlc3RhcnRFdmVyeUluZGV4LCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlJlc3RhcnRFdmVyeUluZGV4XCJdID0gXCJyZXN0YXJ0RXZlcnlJbmRleFwiO1xuICAgIC8vIERQSV9SaWdodE1hcmdpbiwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJSaWdodE1hcmdpblwiXSA9IFwicmlnaHRNYXJnaW5cIjtcbiAgICAvLyBEUElfUm93Q291bnQsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiUm93Q291bnRcIl0gPSBcInJvd0NvdW50XCI7XG4gICAgLy8gRFBJX1Jvd0hlaWdodCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJSb3dIZWlnaHRcIl0gPSBcInJvd0hlaWdodFwiO1xuICAgIC8vIERQSV9Sb3dJbm5lckxldmVscywgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJSb3dJbm5lckxldmVsc1wiXSA9IFwicm93SW5uZXJMZXZlbHNcIjtcbiAgICAvLyBEUElfUm93TGV2ZWxzLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlJvd0xldmVsc1wiXSA9IFwicm93TGV2ZWxzXCI7XG4gICAgLy8gRFBJX1Jvd051bWJlciwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJSb3dOdW1iZXJcIl0gPSBcInJvd051bWJlclwiO1xuICAgIC8vIERQSV9Sb3dXaWR0aCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJSb3dXaWR0aFwiXSA9IFwicm93V2lkdGhcIjtcbiAgICAvLyBEUElfU2Vjb25kVmFsdWVJbmRleCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJTZWNvbmRWYWx1ZUluZGV4XCJdID0gXCJzZWNvbmRWYWx1ZUluZGV4XCI7XG4gICAgLy8gRFBJX1NlY29uZHNBZ28sIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiU2Vjb25kc0Fnb1wiXSA9IFwic2Vjb25kc0Fnb1wiO1xuICAgIC8vIERQSV9TZWxlY3Rpb25FbmQsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiU2VsZWN0aW9uRW5kXCJdID0gXCJzZWxlY3Rpb25FbmRcIjtcbiAgICAvLyBEUElfU2VsZWN0aW9uU3RhcnQsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiU2VsZWN0aW9uU3RhcnRcIl0gPSBcInNlbGVjdGlvblN0YXJ0XCI7XG4gICAgLy8gRFBJX1NoYXBlUGFsZXR0ZUlELCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlNoYXBlUGFsZXR0ZUlEXCJdID0gXCJzaGFwZVBhbGV0dGVJZFwiO1xuICAgIC8vIERQSV9TaGVldEluZGV4LCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlNoZWV0SW5kZXhcIl0gPSBcInNoZWV0SW5kZXhcIjtcbiAgICAvLyBEUElfU2hlbGZQb3NpdGlvbkluZGV4LCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlNoZWxmUG9zaXRpb25JbmRleFwiXSA9IFwic2hlbGZQb3NJbmRleFwiO1xuICAgIC8vIERQSV9TaXplLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlNpemVcIl0gPSBcInNpemVcIjtcbiAgICAvLyBEUElfU2l6ZURpZmZlcmVuY2UsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiU2l6ZURpZmZlcmVuY2VcIl0gPSBcInNpemVEZWx0YVwiO1xuICAgIC8vIERQSV9TbmFwRGlzdGFuY2UsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiU25hcERpc3RhbmNlXCJdID0gXCJzbmFwRGlzdGFuY2VcIjtcbiAgICAvLyBEUElfU25hcExvY2F0aW9uLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlNuYXBMb2NhdGlvblwiXSA9IFwic25hcExvY2F0aW9uXCI7XG4gICAgLy8gRFBJX1NvbHZlT3JkZXIsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiU29sdmVPcmRlclwiXSA9IFwic29sdmVPcmRlclwiO1xuICAgIC8vIERQSV9TcGFjZUJldHdlZW5Qb2ludHMsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiU3BhY2VCZXR3ZWVuUG9pbnRzXCJdID0gXCJzcGFjZUJldHdlZW5Qb2ludHNcIjtcbiAgICAvLyBEUElfU3RlcFNpemUsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiU3RlcFNpemVcIl0gPSBcInN0ZXBTaXplXCI7XG4gICAgLy8gRFBJX1N0ZXBzLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlN0ZXBzXCJdID0gXCJzdGVwc1wiO1xuICAgIC8vIERQSV9TdG9yeVBvaW50SW5kZXgsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiU3RvcnlQb2ludEluZGV4XCJdID0gXCJjdXJyZW50U3Rvcnlwb2ludEluZGV4XCI7XG4gICAgLy8gRFBJX1N0eWxlTGVuLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlN0eWxlTGVuXCJdID0gXCJ0b2tlbkxlbmd0aEZvclN0eWxlXCI7XG4gICAgLy8gRFBJX1N0eWxlUG9zLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlN0eWxlUG9zXCJdID0gXCJ0b2tlblBvc2l0aW9uRm9yU3R5bGVcIjtcbiAgICAvLyBEUElfU3dhdGNoQXJlYVdpZHRoLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlN3YXRjaEFyZWFXaWR0aFwiXSA9IFwic3dhdGNoV2lkdGhcIjtcbiAgICAvLyBEUElfVGFyZ2V0QmluSWQsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiVGFyZ2V0QmluSWRcIl0gPSBcInRhcmdldEJpbklkXCI7XG4gICAgLy8gRFBJX1RhcmdldFB0WCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJUYXJnZXRQdFhcIl0gPSBcInRhcmdldFhcIjtcbiAgICAvLyBEUElfVGFyZ2V0UHRZLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlRhcmdldFB0WVwiXSA9IFwidGFyZ2V0WVwiO1xuICAgIC8vIERQSV9UaWxlRmFjdG9yLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlRpbGVGYWN0b3JcIl0gPSBcInRpbGVGYWN0b3JcIjtcbiAgICAvLyBEUElfVGl0bGVIZWlnaHQsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiVGl0bGVIZWlnaHRcIl0gPSBcInRpdGxlSGVpZ2h0XCI7XG4gICAgLy8gRFBJX1RpdGxlV2lkdGgsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiVGl0bGVXaWR0aFwiXSA9IFwidGl0bGVXaWR0aFwiO1xuICAgIC8vIERQSV9Ub3BCb3R0b21Cb3JkZXJXaWR0aCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJUb3BCb3R0b21Cb3JkZXJXaWR0aFwiXSA9IFwidG9wQm90dG9tQm9yZGVyV2lkdGhcIjtcbiAgICAvLyBEUElfVUlBdXRvbWF0aW9uTGluZVNpemUsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiVUlBdXRvbWF0aW9uTGluZVNpemVcIl0gPSBcInVpQXV0b21hdGlvbkxpbmVTaXplXCI7XG4gICAgLy8gRFBJX1VJQXV0b21hdGlvblBhZ2VTaXplLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlVJQXV0b21hdGlvblBhZ2VTaXplXCJdID0gXCJ1aUF1dG9tYXRpb25QYWdlU2l6ZVwiO1xuICAgIC8vIERQSV9VSUQsIGhhdmluZyB0eXBlIGludFxuICAgIFBhcmFtZXRlcklkW1wiVUlEXCJdID0gXCJ1aWRcIjtcbiAgICAvLyBEUElfVXBwZXJCb3VuZCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJVcHBlckJvdW5kXCJdID0gXCJ1cHBlckJvdW5kXCI7XG4gICAgLy8gRFBJX1ZlcnRUZXh0Q2VsbCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJWZXJ0VGV4dENlbGxcIl0gPSBcInZlcnRUZXh0Q2VsbFwiO1xuICAgIC8vIERQSV9XaWR0aCwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJXaWR0aFwiXSA9IFwid1wiO1xuICAgIC8vIERQSV9YLCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlhcIl0gPSBcInhcIjtcbiAgICAvLyBEUElfWSwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJZXCJdID0gXCJ5XCI7XG4gICAgLy8gRFBJX1pPcmRlciwgaGF2aW5nIHR5cGUgaW50XG4gICAgUGFyYW1ldGVySWRbXCJaT3JkZXJcIl0gPSBcInpPcmRlclwiO1xuICAgIC8vIERQSV9ab25lSWNvbkluZGV4LCBoYXZpbmcgdHlwZSBpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlpvbmVJY29uSW5kZXhcIl0gPSBcInpvbmVJY29uSW5kZXhcIjtcbiAgICAvLyBEUElfQWxpYXNJbmRpY2VzLCBoYXZpbmcgdHlwZSBpbnRbXVxuICAgIFBhcmFtZXRlcklkW1wiQWxpYXNJbmRpY2VzXCJdID0gXCJhbGlhc0luZGljZXNcIjtcbiAgICAvLyBEUElfQW5vdmFERlZlYywgaGF2aW5nIHR5cGUgaW50W11cbiAgICBQYXJhbWV0ZXJJZFtcIkFub3ZhREZWZWNcIl0gPSBcImFub3ZhRGZWZWN0b3JcIjtcbiAgICAvLyBEUElfQ29sdW1uSW5kaWNlcywgaGF2aW5nIHR5cGUgaW50W11cbiAgICBQYXJhbWV0ZXJJZFtcIkNvbHVtbkluZGljZXNcIl0gPSBcImNvbHVtbkluZGljZXNcIjtcbiAgICAvLyBEUElfRHJpbGxGaWVsZEluZGljZXMsIGhhdmluZyB0eXBlIGludFtdXG4gICAgUGFyYW1ldGVySWRbXCJEcmlsbEZpZWxkSW5kaWNlc1wiXSA9IFwiZHJpbGxGaWVsZEluZGljZXNcIjtcbiAgICAvLyBEUElfRmlsdGVyTWF4SW5kaWNlcywgaGF2aW5nIHR5cGUgaW50W11cbiAgICBQYXJhbWV0ZXJJZFtcIkZpbHRlck1heEluZGljZXNcIl0gPSBcImZpbHRlck1heEluZGljZXNcIjtcbiAgICAvLyBEUElfRmlsdGVyTWluSW5kaWNlcywgaGF2aW5nIHR5cGUgaW50W11cbiAgICBQYXJhbWV0ZXJJZFtcIkZpbHRlck1pbkluZGljZXNcIl0gPSBcImZpbHRlck1pbkluZGljZXNcIjtcbiAgICAvLyBEUElfRmlsdGVyVmFsdWVzSW5kaWNlcywgaGF2aW5nIHR5cGUgaW50W11cbiAgICBQYXJhbWV0ZXJJZFtcIkZpbHRlclZhbHVlc0luZGljZXNcIl0gPSBcImZpbHRlclZhbHVlSW5kaWNlc1wiO1xuICAgIC8vIERQSV9Gb3JtYXRTdHJpbmdJbmRpY2VzLCBoYXZpbmcgdHlwZSBpbnRbXVxuICAgIFBhcmFtZXRlcklkW1wiRm9ybWF0U3RyaW5nSW5kaWNlc1wiXSA9IFwiZm9ybWF0c3RySW5kaWNlc1wiO1xuICAgIC8vIERQSV9Gb3JtYXR0ZWRWYWxJbmRpY2VzLCBoYXZpbmcgdHlwZSBpbnRbXVxuICAgIFBhcmFtZXRlcklkW1wiRm9ybWF0dGVkVmFsSW5kaWNlc1wiXSA9IFwiZm9ybWF0VmFsSWR4c1wiO1xuICAgIC8vIERQSV9QYWxldHRlSW5kaWNlcywgaGF2aW5nIHR5cGUgaW50W11cbiAgICBQYXJhbWV0ZXJJZFtcIlBhbGV0dGVJbmRpY2VzXCJdID0gXCJwYWxldHRlc0luZGljZXNcIjtcbiAgICAvLyBEUElfUGFuZUluZGljZXMsIGhhdmluZyB0eXBlIGludFtdXG4gICAgUGFyYW1ldGVySWRbXCJQYW5lSW5kaWNlc1wiXSA9IFwicGFuZUluZGljZXNcIjtcbiAgICAvLyBEUElfUG9pbnRzLCBoYXZpbmcgdHlwZSBpbnRbXVxuICAgIFBhcmFtZXRlcklkW1wiUG9pbnRzXCJdID0gXCJwb2ludHNcIjtcbiAgICAvLyBEUElfUXVpY2tGaWx0ZXJTZXR0aW5ncywgaGF2aW5nIHR5cGUgaW50W11cbiAgICBQYXJhbWV0ZXJJZFtcIlF1aWNrRmlsdGVyU2V0dGluZ3NcIl0gPSBcInF1aWNrRmlsdGVyU2V0dGluZ3NcIjtcbiAgICAvLyBEUElfU2VsZWN0ZWRJbmRpY2VzLCBoYXZpbmcgdHlwZSBpbnRbXVxuICAgIFBhcmFtZXRlcklkW1wiU2VsZWN0ZWRJbmRpY2VzXCJdID0gXCJzZWxlY3RlZEluZGljZXNcIjtcbiAgICAvLyBEUElfU2hlbGZQb3NpdGlvbkluZGljZXMsIGhhdmluZyB0eXBlIGludFtdXG4gICAgUGFyYW1ldGVySWRbXCJTaGVsZlBvc2l0aW9uSW5kaWNlc1wiXSA9IFwic2hlbGZQb3NJbmRpY2VzXCI7XG4gICAgLy8gRFBJX1RpbGVCb3gsIGhhdmluZyB0eXBlIGludFtdXG4gICAgUGFyYW1ldGVySWRbXCJUaWxlQm94XCJdID0gXCJ0aWxlQm94XCI7XG4gICAgLy8gRFBJX1RyYWlsT3ZlcnJpZGUsIGhhdmluZyB0eXBlIGludFtdXG4gICAgUGFyYW1ldGVySWRbXCJUcmFpbE92ZXJyaWRlXCJdID0gXCJ0cmFpbE92ZXJyaWRlXCI7XG4gICAgLy8gRFBJX1VJRHMsIGhhdmluZyB0eXBlIGludFtdXG4gICAgUGFyYW1ldGVySWRbXCJVSURzXCJdID0gXCJ1aWRzXCI7XG4gICAgLy8gRFBJX1ZhbHVlSW5kaWNlcywgaGF2aW5nIHR5cGUgaW50W11cbiAgICBQYXJhbWV0ZXJJZFtcIlZhbHVlSW5kaWNlc1wiXSA9IFwidmFsdWVJbmRpY2VzXCI7XG4gICAgLy8gRFBJX1hDZWxsT2Zmc2V0cywgaGF2aW5nIHR5cGUgaW50W11cbiAgICBQYXJhbWV0ZXJJZFtcIlhDZWxsT2Zmc2V0c1wiXSA9IFwieENlbGxPZmZzZXRzXCI7XG4gICAgLy8gRFBJX1hQaXhlbE9mZnNldHMsIGhhdmluZyB0eXBlIGludFtdXG4gICAgUGFyYW1ldGVySWRbXCJYUGl4ZWxPZmZzZXRzXCJdID0gXCJ4UGl4ZWxPZmZzZXRzXCI7XG4gICAgLy8gRFBJX1lDZWxsT2Zmc2V0cywgaGF2aW5nIHR5cGUgaW50W11cbiAgICBQYXJhbWV0ZXJJZFtcIllDZWxsT2Zmc2V0c1wiXSA9IFwieUNlbGxPZmZzZXRzXCI7XG4gICAgLy8gRFBJX1lQaXhlbE9mZnNldHMsIGhhdmluZyB0eXBlIGludFtdXG4gICAgUGFyYW1ldGVySWRbXCJZUGl4ZWxPZmZzZXRzXCJdID0gXCJ5UGl4ZWxPZmZzZXRzXCI7XG4gICAgLy8gRFBJX0ludE1hcCwgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBpbnQpXG4gICAgUGFyYW1ldGVySWRbXCJJbnRNYXBcIl0gPSBcImludE1hcFwiO1xuICAgIC8vIERQSV9TZWxlY3RlZEF1dGhTZXR0aW5nSW5kaWNlcywgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBpbnQpXG4gICAgUGFyYW1ldGVySWRbXCJTZWxlY3RlZEF1dGhTZXR0aW5nSW5kaWNlc1wiXSA9IFwic2VsZWN0ZWRBdXRoU2V0dGluZ0luZGljZXNcIjtcbiAgICAvLyBEUElfQWN0aXZlU3RvcnlQb2ludElELCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJBY3RpdmVTdG9yeVBvaW50SURcIl0gPSBcImFjdGl2ZVN0b3J5UG9pbnRJZFwiO1xuICAgIC8vIERQSV9BY3RpdmVab25lSUQsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkFjdGl2ZVpvbmVJRFwiXSA9IFwiYWN0aXZlWm9uZUlkXCI7XG4gICAgLy8gRFBJX0FjdHVhbFNpemUsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkFjdHVhbFNpemVcIl0gPSBcImFjdHVhbFNpemVcIjtcbiAgICAvLyBEUElfQWRkSW5EZWJ1Z1BvcnQsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkFkZEluRGVidWdQb3J0XCJdID0gXCJhZGRJbkRlYnVnUG9ydFwiO1xuICAgIC8vIERQSV9BZ2dyZWdhdGlvbkluZGV4LCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJBZ2dyZWdhdGlvbkluZGV4XCJdID0gXCJhZ2dyZWdhdGlvbkluZGV4XCI7XG4gICAgLy8gRFBJX0Fubm90YXRpb25JRCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiQW5ub3RhdGlvbklEXCJdID0gXCJhbm5vdGF0aW9uSWRcIjtcbiAgICAvLyBEUElfQXNzaWduZWRBbGlhc0NvdW50LCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJBc3NpZ25lZEFsaWFzQ291bnRcIl0gPSBcImFzc2lnbmVkQWxpYXNDb3VudFwiO1xuICAgIC8vIERQSV9DYXBhYmlsaXR5SWQsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkNhcGFiaWxpdHlJZFwiXSA9IFwiY2FwYWJpbGl0eUlkXCI7XG4gICAgLy8gRFBJX0NhcmV0SW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkNhcmV0SW5kZXhcIl0gPSBcImNhcmV0SW5kZXhcIjtcbiAgICAvLyBEUElfQ2VsbElELCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJDZWxsSURcIl0gPSBcImNlbGxJZFwiO1xuICAgIC8vIERQSV9Db2x1bW5JbmRleCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiQ29sdW1uSW5kZXhcIl0gPSBcImNvbHVtbkluZGV4XCI7XG4gICAgLy8gRFBJX0NvbW1hbmRJRCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiQ29tbWFuZElEXCJdID0gXCJpZFwiO1xuICAgIC8vIERQSV9Db21tYW5kSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbW1hbmRJbmRleFwiXSA9IFwiaW5kZXhcIjtcbiAgICAvLyBEUElfQ29udHJvbGxlcklkLCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJDb250cm9sbGVySWRcIl0gPSBcImNvbnRyb2xsZXJJZFwiO1xuICAgIC8vIERQSV9Db3VudCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiQ291bnRcIl0gPSBcImNvdW50XCI7XG4gICAgLy8gRFBJX1VSb3dDb3VudCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiVVJvd0NvdW50XCJdID0gXCJ1Um93Q291bnRcIjtcbiAgICAvLyBEUElfVUNvbHVtbkNvdW50LCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJVQ29sdW1uQ291bnRcIl0gPSBcInVDb2x1bW5Db3VudFwiO1xuICAgIC8vIERQSV9DdXJyZW50UGFnZSwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiQ3VycmVudFBhZ2VcIl0gPSBcImN1cnJlbnRQYWdlXCI7XG4gICAgLy8gRFBJX0RhdGVQZXJpb2RzQ291bnQsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGVQZXJpb2RzQ291bnRcIl0gPSBcImRhdGVQZXJpb2RzQ291bnRcIjtcbiAgICAvLyBEUElfRGVjaW1hbHMsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkRlY2ltYWxzXCJdID0gXCJkZWNpbWFsc1wiO1xuICAgIC8vIERQSV9EZWZhdWx0SGVpZ2h0LCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJEZWZhdWx0SGVpZ2h0XCJdID0gXCJkZWZhdWx0SGVpZ2h0XCI7XG4gICAgLy8gRFBJX0RlZmF1bHRJdGVtLCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJEZWZhdWx0SXRlbVwiXSA9IFwiZGVmYXVsdEl0ZW1cIjtcbiAgICAvLyBEUElfRGVmYXVsdFdpZHRoLCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJEZWZhdWx0V2lkdGhcIl0gPSBcImRlZmF1bHRXaWR0aFwiO1xuICAgIC8vIERQSV9EZXB0aCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiRGVwdGhcIl0gPSBcImRlcHRoXCI7XG4gICAgLy8gRFBJX0RldGFpbElELCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJEZXRhaWxJRFwiXSA9IFwiZGV0YWlsSWRcIjtcbiAgICAvLyBEUElfRHJpbGxMZXZlbCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiRHJpbGxMZXZlbFwiXSA9IFwiZHJpbGxMZXZlbFwiO1xuICAgIC8vIERQSV9EdXBsaWNhdGVJbmRleCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiRHVwbGljYXRlSW5kZXhcIl0gPSBcImR1cGxpY2F0ZUluZGV4XCI7XG4gICAgLy8gRFBJX0VuZEluZGV4LCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJFbmRJbmRleFwiXSA9IFwiZW5kSW5kZXhcIjtcbiAgICAvLyBEUElfRmllbGRJY29uSWR4LCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJGaWVsZEljb25JZHhcIl0gPSBcImZpZWxkSWNvbklkeFwiO1xuICAgIC8vIERQSV9GaWx0ZXJMZXZlbCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiRmlsdGVyTGV2ZWxcIl0gPSBcImZpbHRlckxldmVsXCI7XG4gICAgLy8gRFBJX0ZpbHRlclRpbGVTaXplLCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJGaWx0ZXJUaWxlU2l6ZVwiXSA9IFwiZmlsdGVyVGlsZVNpemVcIjtcbiAgICAvLyBEUElfRmlzY2FsWWVhclN0YXJ0LCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJGaXNjYWxZZWFyU3RhcnRcIl0gPSBcImZpc2NhbFllYXJTdGFydFwiO1xuICAgIC8vIERQSV9GaXRQYWdlc0Fjcm9zcywgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiRml0UGFnZXNBY3Jvc3NcIl0gPSBcInBhZ2VGaXRIb3Jpem9udGFsXCI7XG4gICAgLy8gRFBJX0ZpdFBhZ2VzRG93biwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiRml0UGFnZXNEb3duXCJdID0gXCJwYWdlRml0VmVydGljYWxcIjtcbiAgICAvLyBEUElfRml4ZWRJbmRleCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiRml4ZWRJbmRleFwiXSA9IFwiZml4ZWRJbmRleFwiO1xuICAgIC8vIERQSV9GbGlwYm9hcmRab25lSUQsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkZsaXBib2FyZFpvbmVJRFwiXSA9IFwiZmxpcGJvYXJkWm9uZUlkXCI7XG4gICAgLy8gRFBJX0ZvcmVjYXN0QXV0b1JhbmdlU2l6ZSwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiRm9yZWNhc3RBdXRvUmFuZ2VTaXplXCJdID0gXCJmb3JlY2FzdEF1dG9SYW5nZVNpemVcIjtcbiAgICAvLyBEUElfRm9yZWNhc3RFbmRPZlJhbmdlLCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJGb3JlY2FzdEVuZE9mUmFuZ2VcIl0gPSBcImZvcmVjYXN0RW5kT2ZSYW5nZVwiO1xuICAgIC8vIERQSV9Gb3JlY2FzdElnbm9yZUxhc3QsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkZvcmVjYXN0SWdub3JlTGFzdFwiXSA9IFwiZm9yZWNhc3RJZ25vcmVMYXN0XCI7XG4gICAgLy8gRFBJX0ZvcmVjYXN0TmV4dFJhbmdlU2l6ZSwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiRm9yZWNhc3ROZXh0UmFuZ2VTaXplXCJdID0gXCJmb3JlY2FzdE5leHRSYW5nZVNpemVcIjtcbiAgICAvLyBEUElfR3JvdXBGbGFncywgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiR3JvdXBGbGFnc1wiXSA9IFwiZ3JvdXBGbGFnXCI7XG4gICAgLy8gRFBJX0hpZXJhcmNoeUxldmVscywgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiSGllcmFyY2h5TGV2ZWxzXCJdID0gXCJoaWVyYXJjaHlMZXZlbHNcIjtcbiAgICAvLyBEUElfSGllcmFyY2h5TWVtYmVySWQsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkhpZXJhcmNoeU1lbWJlcklkXCJdID0gXCJoaWVyYXJjaHlNZW1iZXJJZFwiO1xuICAgIC8vIERQSV9IaXRUZXN0RmxhZ3MsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkhpdFRlc3RGbGFnc1wiXSA9IFwiaGl0VGVzdEZsYWdzXCI7XG4gICAgLy8gRFBJX0ltYWdlSGVpZ2h0LCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJJbWFnZUhlaWdodFwiXSA9IFwiaW1hZ2VIZWlnaHRcIjtcbiAgICAvLyBEUElfSW1hZ2VXaWR0aCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiSW1hZ2VXaWR0aFwiXSA9IFwiaW1hZ2VXaWR0aFwiO1xuICAgIC8vIERQSV9JdGVtSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkl0ZW1JbmRleFwiXSA9IFwiaXRlbUluZGV4XCI7XG4gICAgLy8gRFBJX0l0ZW1JbmRleDEsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIkl0ZW1JbmRleDFcIl0gPSBcIml0ZW1JbmRleDFcIjtcbiAgICAvLyBEUElfTGluZUhlaWdodCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiTGluZUhlaWdodFwiXSA9IFwibGluZUhlaWdodFwiO1xuICAgIC8vIERQSV9NYXBJbnRlcm1lZGlhdGVMZXZlbHMsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIk1hcEludGVybWVkaWF0ZUxldmVsc1wiXSA9IFwibWFwSW50ZXJtZWRpYXRlTGV2ZWxzXCI7XG4gICAgLy8gRFBJX01hcFdvcmxkUmVwZWF0cywgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiTWFwV29ybGRSZXBlYXRzXCJdID0gXCJtYXBXb3JsZFJlcGVhdHNcIjtcbiAgICAvLyBEUElfTWF4QWxwaGEsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIk1heEFscGhhXCJdID0gXCJtYXhBbHBoYVwiO1xuICAgIC8vIERQSV9NYXhIZWlnaHQsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIk1heEhlaWdodFwiXSA9IFwibWF4SGVpZ2h0XCI7XG4gICAgLy8gRFBJX01heE51bWJlcldlYkxpc3RJdGVtcywgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiTWF4TnVtYmVyV2ViTGlzdEl0ZW1zXCJdID0gXCJtYXhOdW1iZXJXZWJMaXN0SXRlbXNcIjtcbiAgICAvLyBEUElfTWF4UHJldk9yTmV4dFZhbHVlcywgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiTWF4UHJldk9yTmV4dFZhbHVlc1wiXSA9IFwibWF4UHJldk9yTmV4dFZhbHVlc1wiO1xuICAgIC8vIERQSV9NYXhSb3dzLCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJNYXhSb3dzXCJdID0gXCJtYXhSb3dzXCI7XG4gICAgLy8gRFBJX01heFRyYW5zcGFyZW5jeSwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiTWF4VHJhbnNwYXJlbmN5XCJdID0gXCJjb2xvck1heFRyYW5zcGFyZW5jeVZhbHVlXCI7XG4gICAgLy8gRFBJX01heFdpZHRoLCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJNYXhXaWR0aFwiXSA9IFwibWF4V2lkdGhcIjtcbiAgICAvLyBEUElfTWluQ29sdW1ucywgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiTWluQ29sdW1uc1wiXSA9IFwibWluQ29sdW1uc1wiO1xuICAgIC8vIERQSV9NaW5IZWlnaHQsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIk1pbkhlaWdodFwiXSA9IFwibWluSGVpZ2h0XCI7XG4gICAgLy8gRFBJX01pblByZXZPck5leHRWYWx1ZXMsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIk1pblByZXZPck5leHRWYWx1ZXNcIl0gPSBcIm1pblByZXZPck5leHRWYWx1ZXNcIjtcbiAgICAvLyBEUElfTWluVHJhbnNwYXJlbmN5LCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJNaW5UcmFuc3BhcmVuY3lcIl0gPSBcImNvbG9yTWluVHJhbnNwYXJlbmN5VmFsdWVcIjtcbiAgICAvLyBEUElfTWluV2lkdGgsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIk1pbldpZHRoXCJdID0gXCJtaW5XaWR0aFwiO1xuICAgIC8vIERQSV9OZXN0ZWRDYWxjc0luZGV4LCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJOZXN0ZWRDYWxjc0luZGV4XCJdID0gXCJuZXN0ZWRDYWxjc0luZGV4XCI7XG4gICAgLy8gRFBJX05leHRWYWx1ZXMsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIk5leHRWYWx1ZXNcIl0gPSBcIm5leHRWYWx1ZXNcIjtcbiAgICAvLyBEUElfTm9kZUxldmVsLCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJOb2RlTGV2ZWxcIl0gPSBcIm5vZGVMZXZlbFwiO1xuICAgIC8vIERQSV9OdW1IaWdobGlnaHRlZCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiTnVtSGlnaGxpZ2h0ZWRcIl0gPSBcIm51bUhpZ2hsaWdodGVkXCI7XG4gICAgLy8gRFBJX051bWJlck9mTmV4dFZhbHVlcywgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiTnVtYmVyT2ZOZXh0VmFsdWVzXCJdID0gXCJudW1iZXJPZk5leHRWYWx1ZXNcIjtcbiAgICAvLyBEUElfTnVtYmVyT2ZQcmV2VmFsdWVzLCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJOdW1iZXJPZlByZXZWYWx1ZXNcIl0gPSBcIm51bWJlck9mUHJldlZhbHVlc1wiO1xuICAgIC8vIERQSV9PYmplY3RJRCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiT2JqZWN0SURcIl0gPSBcIm9iamVjdElkXCI7XG4gICAgLy8gRFBJX09yZGVyaW5nVHlwZUluZGV4LCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJPcmRlcmluZ1R5cGVJbmRleFwiXSA9IFwib3JkZXJpbmdUeXBlSW5kZXhcIjtcbiAgICAvLyBEUElfUGFnZUNvdW50LCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJQYWdlQ291bnRcIl0gPSBcInBhZ2VDb3VudFwiO1xuICAgIC8vIERQSV9QYWdlRmFkZUVuZCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiUGFnZUZhZGVFbmRcIl0gPSBcImZhZGVFbmRcIjtcbiAgICAvLyBEUElfUGFnZUZhZGVTdGFydCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiUGFnZUZhZGVTdGFydFwiXSA9IFwiZmFkZVN0YXJ0XCI7XG4gICAgLy8gRFBJX1BhZ2VJbmRleCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiUGFnZUluZGV4XCJdID0gXCJwYWdlSW5kZXhcIjtcbiAgICAvLyBEUElfUGFnZU51bWJlciwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiUGFnZU51bWJlclwiXSA9IFwicGFnZU51bWJlclwiO1xuICAgIC8vIERQSV9QYWdlU2NhbGVQZXJjZW50LCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJQYWdlU2NhbGVQZXJjZW50XCJdID0gXCJwYWdlU2NhbGVQZXJjZW50XCI7XG4gICAgLy8gRFBJX1BhZ2VUcmFpbExlbmd0aCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiUGFnZVRyYWlsTGVuZ3RoXCJdID0gXCJoaXN0b3J5TGVuZ3RoXCI7XG4gICAgLy8gRFBJX1BhbGV0dGVGbGFnc1ZhbCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiUGFsZXR0ZUZsYWdzVmFsXCJdID0gXCJwYWxldHRlRmxhZ3NWYWxcIjtcbiAgICAvLyBEUElfUGFuZUluZGV4LCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJQYW5lSW5kZXhcIl0gPSBcInBhbmVJbmRleFwiO1xuICAgIC8vIERQSV9QYXJhbUN0cmxEaXNwbGF5RmxhZ3MsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlBhcmFtQ3RybERpc3BsYXlGbGFnc1wiXSA9IFwicGFyYW1EaXNwbGF5RmxhZ3NcIjtcbiAgICAvLyBEUElfUGFyZW50Wm9uZUlELCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJQYXJlbnRab25lSURcIl0gPSBcInBhcmVudFpvbmVJZFwiO1xuICAgIC8vIERQSV9QZXJjZW50aWxlUGFyYW0sIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlBlcmNlbnRpbGVQYXJhbVwiXSA9IFwicGVyY2VudGlsZVBhcmFtXCI7XG4gICAgLy8gRFBJX1ByZXZWYWx1ZXMsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlByZXZWYWx1ZXNcIl0gPSBcInByZXZWYWx1ZXNcIjtcbiAgICAvLyBEUElfUVJHQkNvbG9yLCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJRUkdCQ29sb3JcIl0gPSBcInFyZ2JDb2xvclwiO1xuICAgIC8vIERQSV9SYW5nZU4sIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlJhbmdlTlwiXSA9IFwicmFuZ2VOXCI7XG4gICAgLy8gRFBJX1JhbmtUeXBlSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlJhbmtUeXBlSW5kZXhcIl0gPSBcInJhbmtUeXBlSW5kZXhcIjtcbiAgICAvLyBEUElfUmVuZGVyQ29tcGxleGl0eSwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiUmVuZGVyQ29tcGxleGl0eVwiXSA9IFwicmVuZGVyQ29tcGxleGl0eUxpbWl0XCI7XG4gICAgLy8gRFBJX1Jvd0luZGV4LCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJSb3dJbmRleFwiXSA9IFwicm93SW5kZXhcIjtcbiAgICAvLyBEUElfU2VsZWN0ZWRBdXRoU2V0dGluZ0luZGV4LCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJTZWxlY3RlZEF1dGhTZXR0aW5nSW5kZXhcIl0gPSBcInNlbGVjdGVkQXV0aFNldHRpbmdJbmRleFwiO1xuICAgIC8vIERQSV9TZWxlY3RlZEZ1bGxTY2hlZHVsZUluZGV4LCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJTZWxlY3RlZEZ1bGxTY2hlZHVsZUluZGV4XCJdID0gXCJzZWxlY3RlZEZ1bGxTY2hlZHVsZUluZGV4XCI7XG4gICAgLy8gRFBJX1NlbGVjdGVkSW5jclNjaGVkdWxlSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlNlbGVjdGVkSW5jclNjaGVkdWxlSW5kZXhcIl0gPSBcInNlbGVjdGVkSW5jclNjaGVkdWxlSW5kZXhcIjtcbiAgICAvLyBEUElfU2VsZWN0ZWRQdWJsaXNoQ2hvaWNlSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlNlbGVjdGVkUHVibGlzaENob2ljZUluZGV4XCJdID0gXCJzZWxlY3RlZFB1Ymxpc2hDaG9pY2VJbmRleFwiO1xuICAgIC8vIERQSV9TZWxlY3RlZE1lbWJlckNvdW50LCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJTZWxlY3RlZE1lbWJlckNvdW50XCJdID0gXCJzZWxlY3RlZE1lbWJlckNvdW50XCI7XG4gICAgLy8gRFBJX1NoYXBlSUQsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlNoYXBlSURcIl0gPSBcInNoYXBlSWRcIjtcbiAgICAvLyBEUElfU2hlZXRVc2VDb3VudCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiU2hlZXRVc2VDb3VudFwiXSA9IFwidXNlQ291bnRcIjtcbiAgICAvLyBEUElfU2hlbGZJdGVtSUQsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlNoZWxmSXRlbUlEXCJdID0gXCJzaGVsZkl0ZW1JZFwiO1xuICAgIC8vIERQSV9TaWdGaWdzLCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJTaWdGaWdzXCJdID0gXCJzaWdGaWdzXCI7XG4gICAgLy8gRFBJX1NvcnRBZ2dJbmRleCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiU29ydEFnZ0luZGV4XCJdID0gXCJzb3J0QWdnSW5kdlZhbHVlc1wiO1xuICAgIC8vIERQSV9Tb3J0Q29sdW1uSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlNvcnRDb2x1bW5JbmRleFwiXSA9IFwic29ydENvbHVtbkluZGV4XCI7XG4gICAgLy8gRFBJX1NvcnREaXJlY3Rpb25JbmRleCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiU29ydERpcmVjdGlvbkluZGV4XCJdID0gXCJzb3J0RGlyZWN0aW9uSW5kZXhcIjtcbiAgICAvLyBEUElfU29ydEZpZWxkSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlNvcnRGaWVsZEluZGV4XCJdID0gXCJzb3J0RmllbGRJbmRleFwiO1xuICAgIC8vIERQSV9TdGFydEluZGV4LCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJTdGFydEluZGV4XCJdID0gXCJzdGFydEluZGV4XCI7XG4gICAgLy8gRFBJX1N0YXJ0T2ZXZWVrLCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJTdGFydE9mV2Vla1wiXSA9IFwic3RhcnRPZldlZWtcIjtcbiAgICAvLyBEUElfU3RvcnlQb2ludElELCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJTdG9yeVBvaW50SURcIl0gPSBcInN0b3J5UG9pbnRJZFwiO1xuICAgIC8vIERQSV9UYWJsZUNhbGNUeXBlSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlRhYmxlQ2FsY1R5cGVJbmRleFwiXSA9IFwidGFibGVDYWxjVHlwZUluZGV4XCI7XG4gICAgLy8gRFBJX1RhYmxlQ2FsY1R5cGVzVXNlZCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiVGFibGVDYWxjVHlwZXNVc2VkXCJdID0gXCJ0YWJsZUNhbGNUeXBlc1VzZWRcIjtcbiAgICAvLyBEUElfVGVtcGxhdGVJbmRleCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiVGVtcGxhdGVJbmRleFwiXSA9IFwidGVtcGxhdGVJbmRleFwiO1xuICAgIC8vIERQSV9UaWxlQ291bnQsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlRpbGVDb3VudFwiXSA9IFwidGlsZUNvdW50XCI7XG4gICAgLy8gRFBJX1RpbWVvdXRTZWNvbmRzLCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJUaW1lb3V0U2Vjb25kc1wiXSA9IFwidGltZW91dFNlY29uZHNcIjtcbiAgICAvLyBEUElfVG9wTiwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiVG9wTlwiXSA9IFwidG9wTlwiO1xuICAgIC8vIERQSV9Ub3RhbE51bWJlck9mSXRlbXNJblNldCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiVG90YWxOdW1iZXJPZkl0ZW1zSW5TZXRcIl0gPSBcInRvdGFsTnVtYmVyT2ZJdGVtc0luU2V0XCI7XG4gICAgLy8gRFBJX1RvdGFsTWVtYmVyQ291bnQsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlRvdGFsTWVtYmVyQ291bnRcIl0gPSBcInRvdGFsTWVtYmVyQ291bnRcIjtcbiAgICAvLyBEUElfVHJhbnNwYXJlbmN5LCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJUcmFuc3BhcmVuY3lcIl0gPSBcImNvbG9yVHJhbnNwYXJlbmN5VmFsdWVcIjtcbiAgICAvLyBEUElfVHVwbGVJRCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiVHVwbGVJRFwiXSA9IFwidHVwbGVJZFwiO1xuICAgIC8vIERQSV9VSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlVJbmRleFwiXSA9IFwidWluZGV4XCI7XG4gICAgLy8gRFBJX1VuZG9Qb3NpdGlvbiwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiVW5kb1Bvc2l0aW9uXCJdID0gXCJ1bmRvUG9zaXRpb25cIjtcbiAgICAvLyBEUElfVW5zaWduZWRXaWR0aCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiVW5zaWduZWRXaWR0aFwiXSA9IFwidXdcIjtcbiAgICAvLyBEUElfVW5zaWduZWRXaWR0aEJvdHRvbSwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiVW5zaWduZWRXaWR0aEJvdHRvbVwiXSA9IFwidXdiXCI7XG4gICAgLy8gRFBJX1Vuc2lnbmVkV2lkdGhMZWZ0LCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJVbnNpZ25lZFdpZHRoTGVmdFwiXSA9IFwidXdsXCI7XG4gICAgLy8gRFBJX1Vuc2lnbmVkV2lkdGhSaWdodCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiVW5zaWduZWRXaWR0aFJpZ2h0XCJdID0gXCJ1d3JcIjtcbiAgICAvLyBEUElfVW5zaWduZWRXaWR0aFRvcCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiVW5zaWduZWRXaWR0aFRvcFwiXSA9IFwidXd0XCI7XG4gICAgLy8gRFBJX1ZhbHVlSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlZhbHVlSW5kZXhcIl0gPSBcInZhbHVlSW5kZXhcIjtcbiAgICAvLyBEUElfVmFsdWVJbnQsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlZhbHVlSW50XCJdID0gXCJ2YWx1ZUludFwiO1xuICAgIC8vIERQSV9Xb3JsZE9mZnNldCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiV29ybGRPZmZzZXRcIl0gPSBcIndvcmxkT2Zmc2V0XCI7XG4gICAgLy8gRFBJX1hEdXBsaWNhdGVJbmRleCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiWER1cGxpY2F0ZUluZGV4XCJdID0gXCJ4RHVwbGljYXRlSW5kZXhcIjtcbiAgICAvLyBEUElfWEluZGV4LCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJYSW5kZXhcIl0gPSBcInhJbmRleFwiO1xuICAgIC8vIERQSV9ZRHVwbGljYXRlSW5kZXgsIGhhdmluZyB0eXBlIHVpbnRcbiAgICBQYXJhbWV0ZXJJZFtcIllEdXBsaWNhdGVJbmRleFwiXSA9IFwieUR1cGxpY2F0ZUluZGV4XCI7XG4gICAgLy8gRFBJX1lJbmRleCwgaGF2aW5nIHR5cGUgdWludFxuICAgIFBhcmFtZXRlcklkW1wiWUluZGV4XCJdID0gXCJ5SW5kZXhcIjtcbiAgICAvLyBEUElfWm9uZUlELCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJab25lSURcIl0gPSBcInpvbmVJZFwiO1xuICAgIC8vIERQSV9ab25lWk9yZGVyLCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJab25lWk9yZGVyXCJdID0gXCJ6b25lWk9yZGVyXCI7XG4gICAgLy8gRFBJX0NvbXBvbmVudElELCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJDb21wb25lbnRJRFwiXSA9IFwiY29tcG9uZW50SWRcIjtcbiAgICAvLyBEUElfTm9uVGhyZWFkUG9vbFVzZUNvdW50LCBoYXZpbmcgdHlwZSB1aW50XG4gICAgUGFyYW1ldGVySWRbXCJOb25UaHJlYWRQb29sVXNlQ291bnRcIl0gPSBcIm5vblRocmVhZFBvb2xVc2VDb3VudFwiO1xuICAgIC8vIERQSV9BZGRyZXNzaW5nSW5kaWNlcywgaGF2aW5nIHR5cGUgdWludFtdXG4gICAgUGFyYW1ldGVySWRbXCJBZGRyZXNzaW5nSW5kaWNlc1wiXSA9IFwiYWRkcmVzc2luZ0luZGljZXNcIjtcbiAgICAvLyBEUElfQWRkcmVzc2luZ0ludmFsaWRJbmRpY2VzLCBoYXZpbmcgdHlwZSB1aW50W11cbiAgICBQYXJhbWV0ZXJJZFtcIkFkZHJlc3NpbmdJbnZhbGlkSW5kaWNlc1wiXSA9IFwiYWRkcmVzc2luZ0ludmFsaWRJbmRpY2VzXCI7XG4gICAgLy8gRFBJX0NoaWxkWm9uZUlkcywgaGF2aW5nIHR5cGUgdWludFtdXG4gICAgUGFyYW1ldGVySWRbXCJDaGlsZFpvbmVJZHNcIl0gPSBcImNoaWxkWm9uZUlkc1wiO1xuICAgIC8vIERQSV9Db2xvckxpc3QsIGhhdmluZyB0eXBlIHVpbnRbXVxuICAgIFBhcmFtZXRlcklkW1wiQ29sb3JMaXN0XCJdID0gXCJjb2xvckxpc3RcIjtcbiAgICAvLyBEUElfRHVwbGljYXRlSW5kaWNlcywgaGF2aW5nIHR5cGUgdWludFtdXG4gICAgUGFyYW1ldGVySWRbXCJEdXBsaWNhdGVJbmRpY2VzXCJdID0gXCJkdXBsaWNhdGVJbmRpY2VzXCI7XG4gICAgLy8gRFBJX0ZpbHRlckFkZEluZGljZXMsIGhhdmluZyB0eXBlIHVpbnRbXVxuICAgIFBhcmFtZXRlcklkW1wiRmlsdGVyQWRkSW5kaWNlc1wiXSA9IFwiZmlsdGVyQWRkSW5kaWNlc1wiO1xuICAgIC8vIERQSV9GaWx0ZXJJbmRpY2VzLCBoYXZpbmcgdHlwZSB1aW50W11cbiAgICBQYXJhbWV0ZXJJZFtcIkZpbHRlckluZGljZXNcIl0gPSBcImZpbHRlckluZGljZXNcIjtcbiAgICAvLyBEUElfRmlsdGVyTGV2ZWxBZGQsIGhhdmluZyB0eXBlIHVpbnRbXVxuICAgIFBhcmFtZXRlcklkW1wiRmlsdGVyTGV2ZWxBZGRcIl0gPSBcImZpbHRlckxldmVsQWRkXCI7XG4gICAgLy8gRFBJX0ZpbHRlckxldmVsUmVtb3ZlLCBoYXZpbmcgdHlwZSB1aW50W11cbiAgICBQYXJhbWV0ZXJJZFtcIkZpbHRlckxldmVsUmVtb3ZlXCJdID0gXCJmaWx0ZXJMZXZlbFJlbW92ZVwiO1xuICAgIC8vIERQSV9GaWx0ZXJMZXZlbHMsIGhhdmluZyB0eXBlIHVpbnRbXVxuICAgIFBhcmFtZXRlcklkW1wiRmlsdGVyTGV2ZWxzXCJdID0gXCJmaWx0ZXJMZXZlbHNcIjtcbiAgICAvLyBEUElfRmlsdGVyUmVtb3ZlSW5kaWNlcywgaGF2aW5nIHR5cGUgdWludFtdXG4gICAgUGFyYW1ldGVySWRbXCJGaWx0ZXJSZW1vdmVJbmRpY2VzXCJdID0gXCJmaWx0ZXJSZW1vdmVJbmRpY2VzXCI7XG4gICAgLy8gRFBJX0ZpeGVkVmFsdWVzLCBoYXZpbmcgdHlwZSB1aW50W11cbiAgICBQYXJhbWV0ZXJJZFtcIkZpeGVkVmFsdWVzXCJdID0gXCJmaXhlZFZhbHVlc1wiO1xuICAgIC8vIERQSV9IaWVyYXJjaHlNZW1iZXJJZExpc3QsIGhhdmluZyB0eXBlIHVpbnRbXVxuICAgIFBhcmFtZXRlcklkW1wiSGllcmFyY2h5TWVtYmVySWRMaXN0XCJdID0gXCJoaWVyYXJjaHlNZW1iZXJJZExpc3RcIjtcbiAgICAvLyBEUElfSW52YWxpZEluZGljZXMsIGhhdmluZyB0eXBlIHVpbnRbXVxuICAgIFBhcmFtZXRlcklkW1wiSW52YWxpZEluZGljZXNcIl0gPSBcImludmFsaWRJbmRpY2VzXCI7XG4gICAgLy8gRFBJX0l0ZW1JbmRpY2VzLCBoYXZpbmcgdHlwZSB1aW50W11cbiAgICBQYXJhbWV0ZXJJZFtcIkl0ZW1JbmRpY2VzXCJdID0gXCJpdGVtSW5kaWNlc1wiO1xuICAgIC8vIERQSV9MaW5lVHVwbGVJRHMsIGhhdmluZyB0eXBlIHVpbnRbXVxuICAgIFBhcmFtZXRlcklkW1wiTGluZVR1cGxlSURzXCJdID0gXCJsaW5lVHVwbGVJZHNcIjtcbiAgICAvLyBEUElfT2JqZWN0SURzLCBoYXZpbmcgdHlwZSB1aW50W11cbiAgICBQYXJhbWV0ZXJJZFtcIk9iamVjdElEc1wiXSA9IFwib2JqZWN0SWRzXCI7XG4gICAgLy8gRFBJX1BhZ2VJbmRpY2VzLCBoYXZpbmcgdHlwZSB1aW50W11cbiAgICBQYXJhbWV0ZXJJZFtcIlBhZ2VJbmRpY2VzXCJdID0gXCJwYWdlSW5kaWNlc1wiO1xuICAgIC8vIERQSV9RUkdCLCBoYXZpbmcgdHlwZSB1aW50W11cbiAgICBQYXJhbWV0ZXJJZFtcIlFSR0JcIl0gPSBcInFyZ2JMaXN0XCI7XG4gICAgLy8gRFBJX1FSR0JDb2xvcnMsIGhhdmluZyB0eXBlIHVpbnRbXVxuICAgIFBhcmFtZXRlcklkW1wiUVJHQkNvbG9yc1wiXSA9IFwicXJnYkNvbG9yc1wiO1xuICAgIC8vIERQSV9SZWZMaW5lSUQsIGhhdmluZyB0eXBlIHVpbnRbXVxuICAgIFBhcmFtZXRlcklkW1wiUmVmTGluZUlEXCJdID0gXCJyZWZsaW5lSWRcIjtcbiAgICAvLyBEUElfU2hhcGVJRHMsIGhhdmluZyB0eXBlIHVpbnRbXVxuICAgIFBhcmFtZXRlcklkW1wiU2hhcGVJRHNcIl0gPSBcInNoYXBlSWRzXCI7XG4gICAgLy8gRFBJX1NoZWxmU2VsZWN0aW9uLCBoYXZpbmcgdHlwZSB1aW50W11cbiAgICBQYXJhbWV0ZXJJZFtcIlNoZWxmU2VsZWN0aW9uXCJdID0gXCJzaGVsZlNlbGVjdGlvblwiO1xuICAgIC8vIERQSV9TdG9yeVBvaW50SURzLCBoYXZpbmcgdHlwZSB1aW50W11cbiAgICBQYXJhbWV0ZXJJZFtcIlN0b3J5UG9pbnRJRHNcIl0gPSBcInN0b3J5UG9pbnRJZHNcIjtcbiAgICAvLyBEUElfVHVwbGVJRHMsIGhhdmluZyB0eXBlIHVpbnRbXVxuICAgIFBhcmFtZXRlcklkW1wiVHVwbGVJRHNcIl0gPSBcInR1cGxlSWRzXCI7XG4gICAgLy8gRFBJX1dpZHRocywgaGF2aW5nIHR5cGUgdWludFtdXG4gICAgUGFyYW1ldGVySWRbXCJXaWR0aHNcIl0gPSBcIndpZHRoc1wiO1xuICAgIC8vIERQSV9VaW50TWFwLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHVpbnQzMl90KVxuICAgIFBhcmFtZXRlcklkW1wiVWludE1hcFwiXSA9IFwidWludE1hcFwiO1xuICAgIC8vIERQSV9BbHBoYSwgaGF2aW5nIHR5cGUgZmxvYXRcbiAgICBQYXJhbWV0ZXJJZFtcIkFscGhhXCJdID0gXCJhbHBoYVwiO1xuICAgIC8vIERQSV9BbmdsZSwgaGF2aW5nIHR5cGUgZmxvYXRcbiAgICBQYXJhbWV0ZXJJZFtcIkFuZ2xlXCJdID0gXCJhbmdsZVwiO1xuICAgIC8vIERQSV9CcmVha1BvaW50VmFsdWUsIGhhdmluZyB0eXBlIGZsb2F0XG4gICAgUGFyYW1ldGVySWRbXCJCcmVha1BvaW50VmFsdWVcIl0gPSBcImJyZWFrUG9pbnRWYWx1ZVwiO1xuICAgIC8vIERQSV9EZXZpY2VQaXhlbFJhdGlvLCBoYXZpbmcgdHlwZSBmbG9hdFxuICAgIFBhcmFtZXRlcklkW1wiRGV2aWNlUGl4ZWxSYXRpb1wiXSA9IFwiZGV2aWNlUGl4ZWxSYXRpb1wiO1xuICAgIC8vIERQSV9EaXN0YW5jZSwgaGF2aW5nIHR5cGUgZmxvYXRcbiAgICBQYXJhbWV0ZXJJZFtcIkRpc3RhbmNlXCJdID0gXCJkaXN0YW5jZVwiO1xuICAgIC8vIERQSV9GbG9hdFgsIGhhdmluZyB0eXBlIGZsb2F0XG4gICAgUGFyYW1ldGVySWRbXCJGbG9hdFhcIl0gPSBcImZsb2F0WFwiO1xuICAgIC8vIERQSV9GbG9hdFksIGhhdmluZyB0eXBlIGZsb2F0XG4gICAgUGFyYW1ldGVySWRbXCJGbG9hdFlcIl0gPSBcImZsb2F0WVwiO1xuICAgIC8vIERQSV9Gb2dEZXNhdHVyYXRpb24sIGhhdmluZyB0eXBlIGZsb2F0XG4gICAgUGFyYW1ldGVySWRbXCJGb2dEZXNhdHVyYXRpb25cIl0gPSBcImZvZ0Rlc2F0dXJhdGlvblwiO1xuICAgIC8vIERQSV9NYXJrU2NhbGUsIGhhdmluZyB0eXBlIGZsb2F0XG4gICAgUGFyYW1ldGVySWRbXCJNYXJrU2NhbGVcIl0gPSBcIm1hcmtTY2FsZVwiO1xuICAgIC8vIERQSV9NYXJrU2l6ZUluUGl4ZWxVbml0cywgaGF2aW5nIHR5cGUgZmxvYXRcbiAgICBQYXJhbWV0ZXJJZFtcIk1hcmtTaXplSW5QaXhlbFVuaXRzXCJdID0gXCJtYXJrU2l6ZUluUGl4ZWxVbml0c1wiO1xuICAgIC8vIERQSV9Qb2ludFNpemUsIGhhdmluZyB0eXBlIGZsb2F0XG4gICAgUGFyYW1ldGVySWRbXCJQb2ludFNpemVcIl0gPSBcInBvaW50U2l6ZVwiO1xuICAgIC8vIERQSV9TdHJva2VXaWR0aCwgaGF2aW5nIHR5cGUgZmxvYXRcbiAgICBQYXJhbWV0ZXJJZFtcIlN0cm9rZVdpZHRoXCJdID0gXCJzdHJva2VXaWR0aFwiO1xuICAgIC8vIERQSV9UZXh0UmVnaW9uT3JpZW50YXRpb24sIGhhdmluZyB0eXBlIGZsb2F0XG4gICAgUGFyYW1ldGVySWRbXCJUZXh0UmVnaW9uT3JpZW50YXRpb25cIl0gPSBcIm9yaWVudGF0aW9uXCI7XG4gICAgLy8gRFBJX1RyYW5zZm9ybUFuZ2xlLCBoYXZpbmcgdHlwZSBmbG9hdFxuICAgIFBhcmFtZXRlcklkW1wiVHJhbnNmb3JtQW5nbGVcIl0gPSBcInRyYW5zZm9ybUFuZ2xlXCI7XG4gICAgLy8gRFBJX1pvb21MZXZlbCwgaGF2aW5nIHR5cGUgZmxvYXRcbiAgICBQYXJhbWV0ZXJJZFtcIlpvb21MZXZlbFwiXSA9IFwiem9vbUxldmVsXCI7XG4gICAgLy8gRFBJX09sZFpvb21MZXZlbCwgaGF2aW5nIHR5cGUgZmxvYXRcbiAgICBQYXJhbWV0ZXJJZFtcIk9sZFpvb21MZXZlbFwiXSA9IFwib2xkWm9vbUxldmVsXCI7XG4gICAgLy8gRFBJX05ld1pvb21MZXZlbCwgaGF2aW5nIHR5cGUgZmxvYXRcbiAgICBQYXJhbWV0ZXJJZFtcIk5ld1pvb21MZXZlbFwiXSA9IFwibmV3Wm9vbUxldmVsXCI7XG4gICAgLy8gRFBJX0FzcGVjdFJhdGlvLCBoYXZpbmcgdHlwZSBmbG9hdFxuICAgIFBhcmFtZXRlcklkW1wiQXNwZWN0UmF0aW9cIl0gPSBcImFzcGVjdFJhdGlvXCI7XG4gICAgLy8gRFBJX0JvdHRvbVByaW50TWFyZ2luLCBoYXZpbmcgdHlwZSBmbG9hdFxuICAgIFBhcmFtZXRlcklkW1wiQm90dG9tUHJpbnRNYXJnaW5cIl0gPSBcImJvdHRvbVByaW50TWFyZ2luXCI7XG4gICAgLy8gRFBJX0VhcnRoUmFkaXVzLCBoYXZpbmcgdHlwZSBmbG9hdFxuICAgIFBhcmFtZXRlcklkW1wiRWFydGhSYWRpdXNcIl0gPSBcImVhcnRoUmFkaXVzXCI7XG4gICAgLy8gRFBJX0Zsb2F0SGVpZ2h0LCBoYXZpbmcgdHlwZSBmbG9hdFxuICAgIFBhcmFtZXRlcklkW1wiRmxvYXRIZWlnaHRcIl0gPSBcImZsb2F0SGVpZ2h0XCI7XG4gICAgLy8gRFBJX0Zsb2F0TGVmdCwgaGF2aW5nIHR5cGUgZmxvYXRcbiAgICBQYXJhbWV0ZXJJZFtcIkZsb2F0TGVmdFwiXSA9IFwiZmxvYXRMZWZ0XCI7XG4gICAgLy8gRFBJX0Zsb2F0UmFkaXVzLCBoYXZpbmcgdHlwZSBmbG9hdFxuICAgIFBhcmFtZXRlcklkW1wiRmxvYXRSYWRpdXNcIl0gPSBcImZsb2F0UmFkaXVzXCI7XG4gICAgLy8gRFBJX0Zsb2F0VG9wLCBoYXZpbmcgdHlwZSBmbG9hdFxuICAgIFBhcmFtZXRlcklkW1wiRmxvYXRUb3BcIl0gPSBcImZsb2F0VG9wXCI7XG4gICAgLy8gRFBJX0Zsb2F0V2lkdGgsIGhhdmluZyB0eXBlIGZsb2F0XG4gICAgUGFyYW1ldGVySWRbXCJGbG9hdFdpZHRoXCJdID0gXCJmbG9hdFdpZHRoXCI7XG4gICAgLy8gRFBJX0xlZnRQcmludE1hcmdpbiwgaGF2aW5nIHR5cGUgZmxvYXRcbiAgICBQYXJhbWV0ZXJJZFtcIkxlZnRQcmludE1hcmdpblwiXSA9IFwibGVmdFByaW50TWFyZ2luXCI7XG4gICAgLy8gRFBJX01hcENlbnRlckxhdGl0dWRlLCBoYXZpbmcgdHlwZSBmbG9hdFxuICAgIFBhcmFtZXRlcklkW1wiTWFwQ2VudGVyTGF0aXR1ZGVcIl0gPSBcIm1hcENlbnRlckxhdGl0dWRlXCI7XG4gICAgLy8gRFBJX01hcENlbnRlckxvbmdpdHVkZSwgaGF2aW5nIHR5cGUgZmxvYXRcbiAgICBQYXJhbWV0ZXJJZFtcIk1hcENlbnRlckxvbmdpdHVkZVwiXSA9IFwibWFwQ2VudGVyTG9uZ2l0dWRlXCI7XG4gICAgLy8gRFBJX01hcERpc3BsYXlTY2FsZSwgaGF2aW5nIHR5cGUgZmxvYXRcbiAgICBQYXJhbWV0ZXJJZFtcIk1hcERpc3BsYXlTY2FsZVwiXSA9IFwibWFwRGlzcGxheVNjYWxlXCI7XG4gICAgLy8gRFBJX01hcE1heFN0cmV0Y2gsIGhhdmluZyB0eXBlIGZsb2F0XG4gICAgUGFyYW1ldGVySWRbXCJNYXBNYXhTdHJldGNoXCJdID0gXCJtYXBNYXhTdHJldGNoXCI7XG4gICAgLy8gRFBJX01hcE1heFpvb20sIGhhdmluZyB0eXBlIGZsb2F0XG4gICAgUGFyYW1ldGVySWRbXCJNYXBNYXhab29tXCJdID0gXCJtYXBNYXhab29tXCI7XG4gICAgLy8gRFBJX01hcE1pblNocmluaywgaGF2aW5nIHR5cGUgZmxvYXRcbiAgICBQYXJhbWV0ZXJJZFtcIk1hcE1pblNocmlua1wiXSA9IFwibWFwTWluU2hyaW5rXCI7XG4gICAgLy8gRFBJX01hcE1pblpvb20sIGhhdmluZyB0eXBlIGZsb2F0XG4gICAgUGFyYW1ldGVySWRbXCJNYXBNaW5ab29tXCJdID0gXCJtYXBNaW5ab29tXCI7XG4gICAgLy8gRFBJX01hcFJlcXVlc3Rab29tLCBoYXZpbmcgdHlwZSBmbG9hdFxuICAgIFBhcmFtZXRlcklkW1wiTWFwUmVxdWVzdFpvb21cIl0gPSBcIm1hcFJlcXVlc3Rab29tXCI7XG4gICAgLy8gRFBJX01hcFdhc2hvdXQsIGhhdmluZyB0eXBlIGZsb2F0XG4gICAgUGFyYW1ldGVySWRbXCJNYXBXYXNob3V0XCJdID0gXCJtYXBXYXNob3V0XCI7XG4gICAgLy8gRFBJX01heExhdGl0dWRlLCBoYXZpbmcgdHlwZSBmbG9hdFxuICAgIFBhcmFtZXRlcklkW1wiTWF4TGF0aXR1ZGVcIl0gPSBcIm1heExhdGl0dWRlXCI7XG4gICAgLy8gRFBJX01heExvbmdpdHVkZSwgaGF2aW5nIHR5cGUgZmxvYXRcbiAgICBQYXJhbWV0ZXJJZFtcIk1heExvbmdpdHVkZVwiXSA9IFwibWF4TG9uZ2l0dWRlXCI7XG4gICAgLy8gRFBJX01pbkxhdGl0dWRlLCBoYXZpbmcgdHlwZSBmbG9hdFxuICAgIFBhcmFtZXRlcklkW1wiTWluTGF0aXR1ZGVcIl0gPSBcIm1pbkxhdGl0dWRlXCI7XG4gICAgLy8gRFBJX01pbkxvbmdpdHVkZSwgaGF2aW5nIHR5cGUgZmxvYXRcbiAgICBQYXJhbWV0ZXJJZFtcIk1pbkxvbmdpdHVkZVwiXSA9IFwibWluTG9uZ2l0dWRlXCI7XG4gICAgLy8gRFBJX1JpZ2h0UHJpbnRNYXJnaW4sIGhhdmluZyB0eXBlIGZsb2F0XG4gICAgUGFyYW1ldGVySWRbXCJSaWdodFByaW50TWFyZ2luXCJdID0gXCJyaWdodFByaW50TWFyZ2luXCI7XG4gICAgLy8gRFBJX1RvcFByaW50TWFyZ2luLCBoYXZpbmcgdHlwZSBmbG9hdFxuICAgIFBhcmFtZXRlcklkW1wiVG9wUHJpbnRNYXJnaW5cIl0gPSBcInRvcFByaW50TWFyZ2luXCI7XG4gICAgLy8gRFBJX1VJQXV0b21hdGlvbk1heGltdW0sIGhhdmluZyB0eXBlIGZsb2F0XG4gICAgUGFyYW1ldGVySWRbXCJVSUF1dG9tYXRpb25NYXhpbXVtXCJdID0gXCJ1aUF1dG9tYXRpb25NYXhpbXVtXCI7XG4gICAgLy8gRFBJX1VJQXV0b21hdGlvbk1pbmltdW0sIGhhdmluZyB0eXBlIGZsb2F0XG4gICAgUGFyYW1ldGVySWRbXCJVSUF1dG9tYXRpb25NaW5pbXVtXCJdID0gXCJ1aUF1dG9tYXRpb25NaW5pbXVtXCI7XG4gICAgLy8gRFBJX1VJQXV0b21hdGlvbk9mZnNldCwgaGF2aW5nIHR5cGUgZmxvYXRcbiAgICBQYXJhbWV0ZXJJZFtcIlVJQXV0b21hdGlvbk9mZnNldFwiXSA9IFwidWlBdXRvbWF0aW9uT2Zmc2V0XCI7XG4gICAgLy8gRFBJX1VuaXREaXZpc29yLCBoYXZpbmcgdHlwZSBmbG9hdFxuICAgIFBhcmFtZXRlcklkW1wiVW5pdERpdmlzb3JcIl0gPSBcInVuaXREaXZpc29yXCI7XG4gICAgLy8gRFBJX1VuaXRUcmFuc2l0aW9uLCBoYXZpbmcgdHlwZSBmbG9hdFxuICAgIFBhcmFtZXRlcklkW1wiVW5pdFRyYW5zaXRpb25cIl0gPSBcInVuaXRUcmFuc2l0aW9uXCI7XG4gICAgLy8gRFBJX0F1dG9tYXRpY0RyaWxsSWR4LCBoYXZpbmcgdHlwZSBmbG9hdFtdXG4gICAgUGFyYW1ldGVySWRbXCJBdXRvbWF0aWNEcmlsbElkeFwiXSA9IFwiYXV0b21hdGljRHJpbGxJZHhcIjtcbiAgICAvLyBEUElfRGVzdGluYXRpb25Cb3gsIGhhdmluZyB0eXBlIGZsb2F0W11cbiAgICBQYXJhbWV0ZXJJZFtcIkRlc3RpbmF0aW9uQm94XCJdID0gXCJkZXN0Qm94XCI7XG4gICAgLy8gRFBJX0xvd2VyRW5kLCBoYXZpbmcgdHlwZSBmbG9hdFtdXG4gICAgUGFyYW1ldGVySWRbXCJMb3dlckVuZFwiXSA9IFwibG93ZXJFbmRcIjtcbiAgICAvLyBEUElfT3Bwb3NpdGVBeGlzLCBoYXZpbmcgdHlwZSBmbG9hdFtdXG4gICAgUGFyYW1ldGVySWRbXCJPcHBvc2l0ZUF4aXNcIl0gPSBcIm9wcG9zaXRlQXhpc1wiO1xuICAgIC8vIERQSV9Qb2ludHNGLCBoYXZpbmcgdHlwZSBmbG9hdFtdXG4gICAgUGFyYW1ldGVySWRbXCJQb2ludHNGXCJdID0gXCJwb2ludHNGXCI7XG4gICAgLy8gRFBJX1NvdXJjZUJveCwgaGF2aW5nIHR5cGUgZmxvYXRbXVxuICAgIFBhcmFtZXRlcklkW1wiU291cmNlQm94XCJdID0gXCJzb3VyY2VCb3hcIjtcbiAgICAvLyBEUElfVHJhbnNmb3JtT2Zmc2V0LCBoYXZpbmcgdHlwZSBmbG9hdFtdXG4gICAgUGFyYW1ldGVySWRbXCJUcmFuc2Zvcm1PZmZzZXRcIl0gPSBcInRyYW5zZm9ybU9mZnNldFwiO1xuICAgIC8vIERQSV9UcmFuc2Zvcm1TY2FsZSwgaGF2aW5nIHR5cGUgZmxvYXRbXVxuICAgIFBhcmFtZXRlcklkW1wiVHJhbnNmb3JtU2NhbGVcIl0gPSBcInRyYW5zZm9ybVNjYWxlXCI7XG4gICAgLy8gRFBJX1VwcGVyRW5kLCBoYXZpbmcgdHlwZSBmbG9hdFtdXG4gICAgUGFyYW1ldGVySWRbXCJVcHBlckVuZFwiXSA9IFwidXBwZXJFbmRcIjtcbiAgICAvLyBEUElfRmxvYXRNYXAsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2YgZmxvYXQpXG4gICAgUGFyYW1ldGVySWRbXCJGbG9hdE1hcFwiXSA9IFwiZmxvYXRNYXBcIjtcbiAgICAvLyBEUElfQkdTUywgaGF2aW5nIHR5cGUgZG91YmxlXG4gICAgUGFyYW1ldGVySWRbXCJCR1NTXCJdID0gXCJiZXR3ZWVuR3JvdXBTdW1PZlNxdWFyZXNcIjtcbiAgICAvLyBEUElfQ29uZmlkZW5jZUxldmVsLCBoYXZpbmcgdHlwZSBkb3VibGVcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbmZpZGVuY2VMZXZlbFwiXSA9IFwiY29uZmlkZW5jZUxldmVsXCI7XG4gICAgLy8gRFBJX0NvbmZpZGVuY2VQZXJjZW50YWdlLCBoYXZpbmcgdHlwZSBkb3VibGVcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbmZpZGVuY2VQZXJjZW50YWdlXCJdID0gXCJjb25maWRlbmNlUGVyY2VudGFnZVwiO1xuICAgIC8vIERQSV9Eb3VibGVMZWZ0LCBoYXZpbmcgdHlwZSBkb3VibGVcbiAgICBQYXJhbWV0ZXJJZFtcIkRvdWJsZUxlZnRcIl0gPSBcImRvdWJsZUxlZnRcIjtcbiAgICAvLyBEUElfRG91YmxlVG9wLCBoYXZpbmcgdHlwZSBkb3VibGVcbiAgICBQYXJhbWV0ZXJJZFtcIkRvdWJsZVRvcFwiXSA9IFwiZG91YmxlVG9wXCI7XG4gICAgLy8gRFBJX0RvdWJsZVZhbHVlLCBoYXZpbmcgdHlwZSBkb3VibGVcbiAgICBQYXJhbWV0ZXJJZFtcIkRvdWJsZVZhbHVlXCJdID0gXCJkb3VibGVWYWx1ZVwiO1xuICAgIC8vIERQSV9Eb3VibGVYLCBoYXZpbmcgdHlwZSBkb3VibGVcbiAgICBQYXJhbWV0ZXJJZFtcIkRvdWJsZVhcIl0gPSBcImRvdWJsZVhcIjtcbiAgICAvLyBEUElfRG91YmxlWSwgaGF2aW5nIHR5cGUgZG91YmxlXG4gICAgUGFyYW1ldGVySWRbXCJEb3VibGVZXCJdID0gXCJkb3VibGVZXCI7XG4gICAgLy8gRFBJX0ZTdGF0aXN0aWMsIGhhdmluZyB0eXBlIGRvdWJsZVxuICAgIFBhcmFtZXRlcklkW1wiRlN0YXRpc3RpY1wiXSA9IFwiZlN0YXRpc3RpY1wiO1xuICAgIC8vIERQSV9GaWx0ZXJSYW5nZU1heCwgaGF2aW5nIHR5cGUgZG91YmxlXG4gICAgUGFyYW1ldGVySWRbXCJGaWx0ZXJSYW5nZU1heFwiXSA9IFwiZmlsdGVyUmFuZ2VNYXhcIjtcbiAgICAvLyBEUElfRmlsdGVyUmFuZ2VNaW4sIGhhdmluZyB0eXBlIGRvdWJsZVxuICAgIFBhcmFtZXRlcklkW1wiRmlsdGVyUmFuZ2VNaW5cIl0gPSBcImZpbHRlclJhbmdlTWluXCI7XG4gICAgLy8gRFBJX0dlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGVTY29yZSwgaGF2aW5nIHR5cGUgZG91YmxlXG4gICAgUGFyYW1ldGVySWRbXCJHZW9ncmFwaGljU2VhcmNoQ2FuZGlkYXRlU2NvcmVcIl0gPSBcImdlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGVTY29yZVwiO1xuICAgIC8vIERQSV9IZWlnaHRELCBoYXZpbmcgdHlwZSBkb3VibGVcbiAgICBQYXJhbWV0ZXJJZFtcIkhlaWdodERcIl0gPSBcImhlaWdodFwiO1xuICAgIC8vIERQSV9JbmZsZWN0aW9uRnJhY3Rpb24sIGhhdmluZyB0eXBlIGRvdWJsZVxuICAgIFBhcmFtZXRlcklkW1wiSW5mbGVjdGlvbkZyYWN0aW9uXCJdID0gXCJpbmZsZWN0aW9uRnJhY3Rpb25cIjtcbiAgICAvLyBEUElfSW5mbGVjdGlvblZhbHVlLCBoYXZpbmcgdHlwZSBkb3VibGVcbiAgICBQYXJhbWV0ZXJJZFtcIkluZmxlY3Rpb25WYWx1ZVwiXSA9IFwiaW5mbGVjdGlvblZhbHVlXCI7XG4gICAgLy8gRFBJX01TRSwgaGF2aW5nIHR5cGUgZG91YmxlXG4gICAgUGFyYW1ldGVySWRbXCJNU0VcIl0gPSBcIm1lYW5TcXVhcmVkRXJyb3JcIjtcbiAgICAvLyBEUElfTVNNLCBoYXZpbmcgdHlwZSBkb3VibGVcbiAgICBQYXJhbWV0ZXJJZFtcIk1TTVwiXSA9IFwibWVhblNxdWFyZWRNb2RlbFwiO1xuICAgIC8vIERQSV9NYXBTY2FsZU1hcmdpbk9mRXJyb3IsIGhhdmluZyB0eXBlIGRvdWJsZVxuICAgIFBhcmFtZXRlcklkW1wiTWFwU2NhbGVNYXJnaW5PZkVycm9yXCJdID0gXCJtYXBTY2FsZU1hcmdpbk9mRXJyb3JcIjtcbiAgICAvLyBEUElfTWFya1NpemUsIGhhdmluZyB0eXBlIGRvdWJsZVxuICAgIFBhcmFtZXRlcklkW1wiTWFya1NpemVcIl0gPSBcIm1hcmtTaXplXCI7XG4gICAgLy8gRFBJX01heE1hcmtTaXplLCBoYXZpbmcgdHlwZSBkb3VibGVcbiAgICBQYXJhbWV0ZXJJZFtcIk1heE1hcmtTaXplXCJdID0gXCJtYXhNYXJrU2l6ZVwiO1xuICAgIC8vIERQSV9NaW5NYXJrU2l6ZSwgaGF2aW5nIHR5cGUgZG91YmxlXG4gICAgUGFyYW1ldGVySWRbXCJNaW5NYXJrU2l6ZVwiXSA9IFwibWluTWFya1NpemVcIjtcbiAgICAvLyBEUElfTm90Y2hQb3NpdGlvbiwgaGF2aW5nIHR5cGUgZG91YmxlXG4gICAgUGFyYW1ldGVySWRbXCJOb3RjaFBvc2l0aW9uXCJdID0gXCJub3RjaFBvc2l0aW9uXCI7XG4gICAgLy8gRFBJX05vdGNoVmFsdWUsIGhhdmluZyB0eXBlIGRvdWJsZVxuICAgIFBhcmFtZXRlcklkW1wiTm90Y2hWYWx1ZVwiXSA9IFwibm90Y2hWYWx1ZVwiO1xuICAgIC8vIERQSV9QVmFsdWUsIGhhdmluZyB0eXBlIGRvdWJsZVxuICAgIFBhcmFtZXRlcklkW1wiUFZhbHVlXCJdID0gXCJwVmFsdWVcIjtcbiAgICAvLyBEUElfUGVyY2VudERpbWVuc2lvbnMsIGhhdmluZyB0eXBlIGRvdWJsZVxuICAgIFBhcmFtZXRlcklkW1wiUGVyY2VudERpbWVuc2lvbnNcIl0gPSBcInBlcmNlbnREaW1lbnNpb25zXCI7XG4gICAgLy8gRFBJX1BlcmNlbnRHcm91cHMsIGhhdmluZyB0eXBlIGRvdWJsZVxuICAgIFBhcmFtZXRlcklkW1wiUGVyY2VudEdyb3Vwc1wiXSA9IFwicGVyY2VudEdyb3Vwc1wiO1xuICAgIC8vIERQSV9QZXJjZW50TWVhc3VyZXMsIGhhdmluZyB0eXBlIGRvdWJsZVxuICAgIFBhcmFtZXRlcklkW1wiUGVyY2VudE1lYXN1cmVzXCJdID0gXCJwZXJjZW50TWVhc3VyZXNcIjtcbiAgICAvLyBEUElfUlNxdWFyZWQsIGhhdmluZyB0eXBlIGRvdWJsZVxuICAgIFBhcmFtZXRlcklkW1wiUlNxdWFyZWRcIl0gPSBcInJTcXVhcmVkXCI7XG4gICAgLy8gRFBJX1NTRSwgaGF2aW5nIHR5cGUgZG91YmxlXG4gICAgUGFyYW1ldGVySWRbXCJTU0VcIl0gPSBcInN1bVNxdWFyZWRFcnJvclwiO1xuICAgIC8vIERQSV9TU00sIGhhdmluZyB0eXBlIGRvdWJsZVxuICAgIFBhcmFtZXRlcklkW1wiU1NNXCJdID0gXCJzdW1TcXVhcmVkTW9kZWxcIjtcbiAgICAvLyBEUElfU3RhbmRhcmRFcnJvciwgaGF2aW5nIHR5cGUgZG91YmxlXG4gICAgUGFyYW1ldGVySWRbXCJTdGFuZGFyZEVycm9yXCJdID0gXCJzdGFuZGFyZEVycm9yXCI7XG4gICAgLy8gRFBJX1RTUywgaGF2aW5nIHR5cGUgZG91YmxlXG4gICAgUGFyYW1ldGVySWRbXCJUU1NcIl0gPSBcInRvdGFsU3VtT2ZTcXVhcmVzXCI7XG4gICAgLy8gRFBJX1dHU1MsIGhhdmluZyB0eXBlIGRvdWJsZVxuICAgIFBhcmFtZXRlcklkW1wiV0dTU1wiXSA9IFwid2l0aGluR3JvdXBTdW1PZlNxdWFyZXNcIjtcbiAgICAvLyBEUElfV2lkdGhELCBoYXZpbmcgdHlwZSBkb3VibGVcbiAgICBQYXJhbWV0ZXJJZFtcIldpZHRoRFwiXSA9IFwid2lkdGhcIjtcbiAgICAvLyBEUElfWm9vbUZhY3RvciwgaGF2aW5nIHR5cGUgZG91YmxlXG4gICAgUGFyYW1ldGVySWRbXCJab29tRmFjdG9yXCJdID0gXCJ6b29tRmFjdG9yXCI7XG4gICAgLy8gRFBJX0NvZWZmaWNpZW50UFZhbHVlVmVjLCBoYXZpbmcgdHlwZSBkb3VibGVbXVxuICAgIFBhcmFtZXRlcklkW1wiQ29lZmZpY2llbnRQVmFsdWVWZWNcIl0gPSBcImNvZWZmaWNpZW50UFZhbHVlVmVjdG9yXCI7XG4gICAgLy8gRFBJX0NvZWZmaWNpZW50U3RkRXJyVmVjLCBoYXZpbmcgdHlwZSBkb3VibGVbXVxuICAgIFBhcmFtZXRlcklkW1wiQ29lZmZpY2llbnRTdGRFcnJWZWNcIl0gPSBcImNvZWZmaWNpZW50U3RkRXJyb3JWZWN0b3JcIjtcbiAgICAvLyBEUElfQ29lZmZpY2llbnRUVmFsdWVWZWMsIGhhdmluZyB0eXBlIGRvdWJsZVtdXG4gICAgUGFyYW1ldGVySWRbXCJDb2VmZmljaWVudFRWYWx1ZVZlY1wiXSA9IFwiY29lZmZpY2llbnRUVmFsdWVWZWN0b3JcIjtcbiAgICAvLyBEUElfQ29lZmZpY2llbnRWZWMsIGhhdmluZyB0eXBlIGRvdWJsZVtdXG4gICAgUGFyYW1ldGVySWRbXCJDb2VmZmljaWVudFZlY1wiXSA9IFwiY29lZmZpY2llbnRWZWN0b3JcIjtcbiAgICAvLyBEUElfRlN0YXRpc3RpY1ZlYywgaGF2aW5nIHR5cGUgZG91YmxlW11cbiAgICBQYXJhbWV0ZXJJZFtcIkZTdGF0aXN0aWNWZWNcIl0gPSBcInRyZW5kTGluZUZTdGF0aXN0aWNWZWN0b3JcIjtcbiAgICAvLyBEUElfRmFjdG9ycywgaGF2aW5nIHR5cGUgZG91YmxlW11cbiAgICBQYXJhbWV0ZXJJZFtcIkZhY3RvcnNcIl0gPSBcImZhY3RvcnNcIjtcbiAgICAvLyBEUElfTVNFVmVjLCBoYXZpbmcgdHlwZSBkb3VibGVbXVxuICAgIFBhcmFtZXRlcklkW1wiTVNFVmVjXCJdID0gXCJtZWFuU3F1YXJlZEVycm9yVmVjdG9yXCI7XG4gICAgLy8gRFBJX01lYW5zLCBoYXZpbmcgdHlwZSBkb3VibGVbXVxuICAgIFBhcmFtZXRlcklkW1wiTWVhbnNcIl0gPSBcIm1lYW5zXCI7XG4gICAgLy8gRFBJX1BWYWx1ZVZlYywgaGF2aW5nIHR5cGUgZG91YmxlW11cbiAgICBQYXJhbWV0ZXJJZFtcIlBWYWx1ZVZlY1wiXSA9IFwicFZhbHVlVmVjdG9yXCI7XG4gICAgLy8gRFBJX1BlcmNlbnRhZ2VzLCBoYXZpbmcgdHlwZSBkb3VibGVbXVxuICAgIFBhcmFtZXRlcklkW1wiUGVyY2VudGFnZXNcIl0gPSBcInBlcmNlbnRhZ2VzXCI7XG4gICAgLy8gRFBJX1BlcmNlbnRpbGVzLCBoYXZpbmcgdHlwZSBkb3VibGVbXVxuICAgIFBhcmFtZXRlcklkW1wiUGVyY2VudGlsZXNcIl0gPSBcInBlcmNlbnRpbGVzXCI7XG4gICAgLy8gRFBJX1NTRVZlYywgaGF2aW5nIHR5cGUgZG91YmxlW11cbiAgICBQYXJhbWV0ZXJJZFtcIlNTRVZlY1wiXSA9IFwic3VtU3F1YXJlZEVycm9yVmVjdG9yXCI7XG4gICAgLy8gRFBJX1N0RGV2cywgaGF2aW5nIHR5cGUgZG91YmxlW11cbiAgICBQYXJhbWV0ZXJJZFtcIlN0RGV2c1wiXSA9IFwic3RkZXZcIjtcbiAgICAvLyBEUElfVW5zY2FsZWRNZWFucywgaGF2aW5nIHR5cGUgZG91YmxlW11cbiAgICBQYXJhbWV0ZXJJZFtcIlVuc2NhbGVkTWVhbnNcIl0gPSBcInVuc2NhbGVkTWVhbnNcIjtcbiAgICAvLyBEUElfRGVsdGFUaW1lTXMsIGhhdmluZyB0eXBlIGxvbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkRlbHRhVGltZU1zXCJdID0gXCJkZWx0YVRpbWVNc1wiO1xuICAgIC8vIERQSV9FeHRyYWN0SGlzdG9yeVJvd0NvdW50LCBoYXZpbmcgdHlwZSBsb25nXG4gICAgUGFyYW1ldGVySWRbXCJFeHRyYWN0SGlzdG9yeVJvd0NvdW50XCJdID0gXCJleHRyYWN0Um93Q291bnRcIjtcbiAgICAvLyBEUElfRXh0cmFjdEhpc3RvcnlSb3dzUmVtb3ZlZCwgaGF2aW5nIHR5cGUgbG9uZ1xuICAgIFBhcmFtZXRlcklkW1wiRXh0cmFjdEhpc3RvcnlSb3dzUmVtb3ZlZFwiXSA9IFwiZXh0cmFjdFJvd3NSZW1vdmVkXCI7XG4gICAgLy8gRFBJX0V4dHJhY3RzU2l6ZSwgaGF2aW5nIHR5cGUgbG9uZ1xuICAgIFBhcmFtZXRlcklkW1wiRXh0cmFjdHNTaXplXCJdID0gXCJleHRyYWN0c1NpemVcIjtcbiAgICAvLyBEUElfT2xkRXh0cmFjdFNpemUsIGhhdmluZyB0eXBlIGxvbmdcbiAgICBQYXJhbWV0ZXJJZFtcIk9sZEV4dHJhY3RTaXplXCJdID0gXCJvbGRFeHRyYWN0U2l6ZVwiO1xuICAgIC8vIERQSV9Sb3dzSW5zZXJ0ZWQsIGhhdmluZyB0eXBlIGxvbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlJvd3NJbnNlcnRlZFwiXSA9IFwicm93c0luc2VydGVkXCI7XG4gICAgLy8gRFBJX1NhbXBsZVNpemUsIGhhdmluZyB0eXBlIGxvbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlNhbXBsZVNpemVcIl0gPSBcInNhbXBsZVNpemVcIjtcbiAgICAvLyBEUElfU2FtcGxlU3BhY2UsIGhhdmluZyB0eXBlIGxvbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlNhbXBsZVNwYWNlXCJdID0gXCJzYW1wbGVTcGFjZVwiO1xuICAgIC8vIERQSV9UaHJlYWRQb29sVXNlQ291bnQsIGhhdmluZyB0eXBlIGxvbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlRocmVhZFBvb2xVc2VDb3VudFwiXSA9IFwidGhyZWFkUG9vbFVzZUNvdW50XCI7XG4gICAgLy8gRFBJX0FjdGlvbklkLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkFjdGlvbklkXCJdID0gXCJhY3Rpb25JZFwiO1xuICAgIC8vIERQSV9BeGlzQ29sdW1uLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkF4aXNDb2x1bW5cIl0gPSBcImF4aXNDb2x1bW5cIjtcbiAgICAvLyBEUElfQmFzZUNvbHVtbk5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQmFzZUNvbHVtbk5hbWVcIl0gPSBcImJhc2VDb2x1bW5OYW1lXCI7XG4gICAgLy8gRFBJX0JyZWFrUG9pbnRGaWVsZE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQnJlYWtQb2ludEZpZWxkTmFtZVwiXSA9IFwiYnJlYWtQb2ludEZpZWxkTmFtZVwiO1xuICAgIC8vIERQSV9QYWlyZWRGaWVsZE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiUGFpcmVkRmllbGROYW1lXCJdID0gXCJwYWlyZWRGblwiO1xuICAgIC8vIERQSV9GaWVsZE5hbWVBbGxvd0VtcHR5LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkZpZWxkTmFtZUFsbG93RW1wdHlcIl0gPSBcImZpZWxkTmFtZUFsbG93RW1wdHlcIjtcbiAgICAvLyBEUElfRmllbGROYW1lRGlzQWdnLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkZpZWxkTmFtZURpc0FnZ1wiXSA9IFwiZm5EaXNhZ2dcIjtcbiAgICAvLyBEUElfRmllbGROYW1lTG9jYWwsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRmllbGROYW1lTG9jYWxcIl0gPSBcImZpZWxkTmFtZUxvY2FsXCI7XG4gICAgLy8gRFBJX0ZpZWxkTmFtZVByZXYsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRmllbGROYW1lUHJldlwiXSA9IFwiZm5QcmV2XCI7XG4gICAgLy8gRFBJX0ZpZWxkTmFtZVNvdXJjZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJGaWVsZE5hbWVTb3VyY2VcIl0gPSBcImZuU291cmNlXCI7XG4gICAgLy8gRFBJX0ZpZWxkTmFtZVRhcmdldCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJGaWVsZE5hbWVUYXJnZXRcIl0gPSBcImZuVGFyZ2V0XCI7XG4gICAgLy8gRFBJX0ZpZWxkTmFtZVgsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRmllbGROYW1lWFwiXSA9IFwiZm5YXCI7XG4gICAgLy8gRFBJX0ZpZWxkTmFtZVksIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRmllbGROYW1lWVwiXSA9IFwiZm5ZXCI7XG4gICAgLy8gRFBJX0ZpZWxkVG9Tb3J0LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkZpZWxkVG9Tb3J0XCJdID0gXCJmaWVsZFRvU29ydFwiO1xuICAgIC8vIERQSV9HbG9iYWxGaWVsZE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiR2xvYmFsRmllbGROYW1lXCJdID0gXCJnbG9iYWxGaWVsZE5hbWVcIjtcbiAgICAvLyBEUElfSGllcmFyY2h5TmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJIaWVyYXJjaHlOYW1lXCJdID0gXCJoaWVyYXJjaHlOYW1lXCI7XG4gICAgLy8gRFBJX0ludmFsaWRBZ2dGaWVsZE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiSW52YWxpZEFnZ0ZpZWxkTmFtZVwiXSA9IFwiaW52YWxpZEFnZ0ZpZWxkTmFtZVwiO1xuICAgIC8vIERQSV9JbnZhbGlkRmllbGROYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkludmFsaWRGaWVsZE5hbWVcIl0gPSBcImludmFsaWRGaWVsZE5hbWVcIjtcbiAgICAvLyBEUElfTGltaXRQYXJhbWV0ZXJOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkxpbWl0UGFyYW1ldGVyTmFtZVwiXSA9IFwibGltaXRQYXJhbWV0ZXJOYW1lXCI7XG4gICAgLy8gRFBJX0xvY2FsQmFzZUNvbHVtbk5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiTG9jYWxCYXNlQ29sdW1uTmFtZVwiXSA9IFwibG9jYWxCYXNlQ29sdW1uTmFtZVwiO1xuICAgIC8vIERQSV9NZWFzdXJlTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJNZWFzdXJlTmFtZVwiXSA9IFwibWVhc3VyZU5hbWVcIjtcbiAgICAvLyBEUElfTmVzdGVkQ2FsY0ZpZWxkLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIk5lc3RlZENhbGNGaWVsZFwiXSA9IFwibmVzdGVkQ2FsY0ZuXCI7XG4gICAgLy8gRFBJX1BhcmFtZXRlck5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiUGFyYW1ldGVyTmFtZVwiXSA9IFwicGFyYW1ldGVyTmFtZVwiO1xuICAgIC8vIERQSV9SZWZlcmVuY2VQYXJhbSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJSZWZlcmVuY2VQYXJhbVwiXSA9IFwicmVmZXJlbmNlUGFyYW1cIjtcbiAgICAvLyBEUElfUmVwbGFjZW1lbnRGaWVsZE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiUmVwbGFjZW1lbnRGaWVsZE5hbWVcIl0gPSBcInJlcGxhY2VtZW50RmllbGROYW1lXCI7XG4gICAgLy8gRFBJX1JIU1RhYmxlQWxpYXMsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiUkhTVGFibGVBbGlhc1wiXSA9IFwicmhzVGFibGVBbGlhc1wiO1xuICAgIC8vIERQSV9Tb3J0TWVhc3VyZU5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiU29ydE1lYXN1cmVOYW1lXCJdID0gXCJzb3J0TWVhc3VyZU5hbWVcIjtcbiAgICAvLyBEUElfVW5pcXVlTmFtZSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJVbmlxdWVOYW1lXCJdID0gXCJ1bmlxdWVOYW1lXCI7XG4gICAgLy8gRFBJX1ZhbHVlQ29sdW1uLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlZhbHVlQ29sdW1uXCJdID0gXCJ2YWx1ZUNvbHVtblwiO1xuICAgIC8vIERQSV9QYWlyZWRWYWx1ZUNvbHVtbiwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJQYWlyZWRWYWx1ZUNvbHVtblwiXSA9IFwicGFpcmVkVmFsdWVDb2x1bW5cIjtcbiAgICAvLyBEUElfQWN0aW9uSWRzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiQWN0aW9uSWRzXCJdID0gXCJhY3Rpb25JZHNcIjtcbiAgICAvLyBEUElfQWRkcmVzc2luZ1ZhbHVlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkFkZHJlc3NpbmdWYWx1ZXNcIl0gPSBcImFkZHJlc3NpbmdWYWx1ZXNcIjtcbiAgICAvLyBEUElfQWxsQ29sdW1ucywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkFsbENvbHVtbnNcIl0gPSBcImFsbENvbHVtbnNcIjtcbiAgICAvLyBEUElfQXRUaGVMZXZlbFZhbHVlcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkF0VGhlTGV2ZWxWYWx1ZXNcIl0gPSBcImF0VGhlTGV2ZWxWYWx1ZXNcIjtcbiAgICAvLyBEUElfQXV0b21hdGljRHJpbGxGaWVsZE5hbWUsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJBdXRvbWF0aWNEcmlsbEZpZWxkTmFtZVwiXSA9IFwiYXV0b21hdGljRHJpbGxGaWVsZE5hbWVcIjtcbiAgICAvLyBEUElfQmxlbmRpbmdGaWVsZENhbmRpZGF0ZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJCbGVuZGluZ0ZpZWxkQ2FuZGlkYXRlc1wiXSA9IFwiYmxlbmRpbmdGaWVsZENhbmRpZGF0ZXNcIjtcbiAgICAvLyBEUElfQ29sdW1ucywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkNvbHVtbnNcIl0gPSBcImNvbHVtbnNcIjtcbiAgICAvLyBEUElfQ3VycmVudEJsZW5kaW5nRmllbGRzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiQ3VycmVudEJsZW5kaW5nRmllbGRzXCJdID0gXCJjdXJyZW50QmxlbmRpbmdGaWVsZHNcIjtcbiAgICAvLyBEUElfRGltZW5zaW9uc1RvU29ydCwgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkRpbWVuc2lvbnNUb1NvcnRcIl0gPSBcImRpbWVuc2lvbnNUb1NvcnRcIjtcbiAgICAvLyBEUElfRHJpbGxGaWVsZFZlY3RvciwgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkRyaWxsRmllbGRWZWN0b3JcIl0gPSBcImRyaWxsRmllbGRWZWN0b3JcIjtcbiAgICAvLyBEUElfRW5jb2RpbmdGaWVsZFZlY3RvciwgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkVuY29kaW5nRmllbGRWZWN0b3JcIl0gPSBcImVuY29kaW5nRmllbGRWZWN0b3JcIjtcbiAgICAvLyBEUElfRmllbGRWZWN0b3IsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJGaWVsZFZlY3RvclwiXSA9IFwiZmllbGRWZWN0b3JcIjtcbiAgICAvLyBEUElfRmlsdGVyRmllbGRzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiRmlsdGVyRmllbGRzXCJdID0gXCJmaWx0ZXJGaWVsZHNcIjtcbiAgICAvLyBEUElfTE9ERmllbGRWZWN0b3IsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJMT0RGaWVsZFZlY3RvclwiXSA9IFwibG9kRmllbGRWZWN0b3JcIjtcbiAgICAvLyBEUElfTGVnZW5kQ29sdW1ucywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkxlZ2VuZENvbHVtbnNcIl0gPSBcImxlZ2VuZENvbHVtbnNcIjtcbiAgICAvLyBEUElfTGVnZW5kTmFtZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJMZWdlbmROYW1lc1wiXSA9IFwibGVnZW5kTmFtZXNcIjtcbiAgICAvLyBEUElfTm9kZUNvbHVtbnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJOb2RlQ29sdW1uc1wiXSA9IFwibm9kZUNvbHVtbnNcIjtcbiAgICAvLyBEUElfUGFnZUZpZWxkcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIlBhZ2VGaWVsZHNcIl0gPSBcInBhZ2VGaWVsZHNcIjtcbiAgICAvLyBEUElfUGFyYW1WYWx1ZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJQYXJhbVZhbHVlc1wiXSA9IFwicGFyYW1WYWx1ZXNcIjtcbiAgICAvLyBEUElfUmVmTGluZUZpZWxkcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIlJlZkxpbmVGaWVsZHNcIl0gPSBcInJlZmxpbmVGaWVsZHNcIjtcbiAgICAvLyBEUElfUmVmZXJlbmNlZENvbHVtbnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJSZWZlcmVuY2VkQ29sdW1uc1wiXSA9IFwicmVmZXJlbmNlZENvbHVtbnNcIjtcbiAgICAvLyBEUElfUmVsYXRlZEZpZWxkTmFtZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJSZWxhdGVkRmllbGROYW1lc1wiXSA9IFwicmVsYXRlZEZpZWxkTmFtZXNcIjtcbiAgICAvLyBEUElfUmVtb3ZlQWN0aW9uUmVzdWx0cywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIlJlbW92ZUFjdGlvblJlc3VsdHNcIl0gPSBcInJlbW92ZUFjdGlvblJlc3VsdHNcIjtcbiAgICAvLyBEUElfUmVzcG9uc2VWZWN0b3IsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJSZXNwb25zZVZlY3RvclwiXSA9IFwicmVzcG9uc2VWZWN0b3JcIjtcbiAgICAvLyBEUElfUmVzdGFydEV2ZXJ5VmFsdWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiUmVzdGFydEV2ZXJ5VmFsdWVzXCJdID0gXCJyZXN0YXJ0RXZlcnlWYWx1ZXNcIjtcbiAgICAvLyBEUElfUmVzdWx0RmllbGRzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiUmVzdWx0RmllbGRzXCJdID0gXCJyZXN1bHRGaWVsZHNcIjtcbiAgICAvLyBEUElfU29ydEZpZWxkVmFsdWVzLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiU29ydEZpZWxkVmFsdWVzXCJdID0gXCJzb3J0RmllbGRWYWx1ZXNcIjtcbiAgICAvLyBEUElfWEZpZWxkcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIlhGaWVsZHNcIl0gPSBcInhGaWVsZHNcIjtcbiAgICAvLyBEUElfWUZpZWxkcywgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIllGaWVsZHNcIl0gPSBcInlGaWVsZHNcIjtcbiAgICAvLyBEUElfQ29ubmVjdGlvbkZ1bGxOYW1lLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbm5lY3Rpb25GdWxsTmFtZVwiXSA9IFwiY29ubmVjdGlvbkZ1bGxOYW1lXCI7XG4gICAgLy8gRFBJX0Nvbm5lY3Rpb25GdWxsTmFtZXMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJDb25uZWN0aW9uRnVsbE5hbWVzXCJdID0gXCJjb25uZWN0aW9uRnVsbE5hbWVzXCI7XG4gICAgLy8gRFBJX0JvdW5kRGF0YVZhbHVlLCBoYXZpbmcgdHlwZSBvYmplY3RcbiAgICBQYXJhbWV0ZXJJZFtcIkJvdW5kRGF0YVZhbHVlXCJdID0gXCJib3VuZERhdGFWYWx1ZVwiO1xuICAgIC8vIERQSV9EYXRhVmFsdWUsIGhhdmluZyB0eXBlIG9iamVjdFxuICAgIFBhcmFtZXRlcklkW1wiRGF0YVZhbHVlXCJdID0gXCJkYXRhVmFsdWVcIjtcbiAgICAvLyBEUElfRGF0YVZhbHVlSW5jcmVtZW50LCBoYXZpbmcgdHlwZSBvYmplY3RcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFWYWx1ZUluY3JlbWVudFwiXSA9IFwiZGF0YVZhbHVlSW5jcmVtZW50XCI7XG4gICAgLy8gRFBJX0RhdGFWYWx1ZUxvd2VyWCwgaGF2aW5nIHR5cGUgb2JqZWN0XG4gICAgUGFyYW1ldGVySWRbXCJEYXRhVmFsdWVMb3dlclhcIl0gPSBcImRhdGFWYWx1ZUxvd2VyWFwiO1xuICAgIC8vIERQSV9EYXRhVmFsdWVMb3dlclksIGhhdmluZyB0eXBlIG9iamVjdFxuICAgIFBhcmFtZXRlcklkW1wiRGF0YVZhbHVlTG93ZXJZXCJdID0gXCJkYXRhVmFsdWVMb3dlcllcIjtcbiAgICAvLyBEUElfRGF0YVZhbHVlVXBwZXJYLCBoYXZpbmcgdHlwZSBvYmplY3RcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFWYWx1ZVVwcGVyWFwiXSA9IFwiZGF0YVZhbHVlVXBwZXJYXCI7XG4gICAgLy8gRFBJX0RhdGFWYWx1ZVVwcGVyWSwgaGF2aW5nIHR5cGUgb2JqZWN0XG4gICAgUGFyYW1ldGVySWRbXCJEYXRhVmFsdWVVcHBlcllcIl0gPSBcImRhdGFWYWx1ZVVwcGVyWVwiO1xuICAgIC8vIERQSV9EZWZhdWx0RGF0YVZhbHVlLCBoYXZpbmcgdHlwZSBvYmplY3RcbiAgICBQYXJhbWV0ZXJJZFtcIkRlZmF1bHREYXRhVmFsdWVcIl0gPSBcImRlZmF1bHREYXRhVmFsdWVcIjtcbiAgICAvLyBEUElfTWF4RGF0YVZhbHVlLCBoYXZpbmcgdHlwZSBvYmplY3RcbiAgICBQYXJhbWV0ZXJJZFtcIk1heERhdGFWYWx1ZVwiXSA9IFwibWF4RGF0YVZhbHVlXCI7XG4gICAgLy8gRFBJX01pbkRhdGFWYWx1ZSwgaGF2aW5nIHR5cGUgb2JqZWN0XG4gICAgUGFyYW1ldGVySWRbXCJNaW5EYXRhVmFsdWVcIl0gPSBcIm1pbkRhdGFWYWx1ZVwiO1xuICAgIC8vIERQSV9WYWxpZGF0ZWREYXRhVmFsdWUsIGhhdmluZyB0eXBlIG9iamVjdFxuICAgIFBhcmFtZXRlcklkW1wiVmFsaWRhdGVkRGF0YVZhbHVlXCJdID0gXCJ2YWxpZGF0ZWREYXRhVmFsdWVcIjtcbiAgICAvLyBEUElfQmluU2l6ZSwgaGF2aW5nIHR5cGUgb2JqZWN0XG4gICAgUGFyYW1ldGVySWRbXCJCaW5TaXplXCJdID0gXCJiaW5TaXplXCI7XG4gICAgLy8gRFBJX0xpbWl0Q291bnQsIGhhdmluZyB0eXBlIG9iamVjdFxuICAgIFBhcmFtZXRlcklkW1wiTGltaXRDb3VudFwiXSA9IFwibGltaXRDb3VudFwiO1xuICAgIC8vIERQSV9EYXRhVmFsdWVMaXN0LCBoYXZpbmcgdHlwZSBvYmplY3RbXVxuICAgIFBhcmFtZXRlcklkW1wiRGF0YVZhbHVlTGlzdFwiXSA9IFwiZGF0YVZhbHVlTGlzdFwiO1xuICAgIC8vIERQSV9GaWVsZENhcHRpb25QYWlyLCBoYXZpbmcgdHlwZSBGaWVsZENhcHRpb25QYWlyUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJGaWVsZENhcHRpb25QYWlyXCJdID0gXCJmaWVsZENhcHRpb25QYWlyXCI7XG4gICAgLy8gRFBJX0ZpZWxkQ2FwdGlvblBhaXJzLCBoYXZpbmcgdHlwZSBGaWVsZENhcHRpb25QYWlyUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkZpZWxkQ2FwdGlvblBhaXJzXCJdID0gXCJmaWVsZENhcHRpb25QYWlyc1wiO1xuICAgIC8vIERQSV9QYXJhbWV0ZXJDYXB0aW9uUGFpcnMsIGhhdmluZyB0eXBlIEZpZWxkQ2FwdGlvblBhaXJQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiUGFyYW1ldGVyQ2FwdGlvblBhaXJzXCJdID0gXCJwYXJhbWV0ZXJDYXB0aW9uUGFpcnNcIjtcbiAgICAvLyBEUElfVmFyeWluZ0F0dHJpYnV0ZURpbWVuc2lvbnMsIGhhdmluZyB0eXBlIEZpZWxkQ2FwdGlvblBhaXJQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiVmFyeWluZ0F0dHJpYnV0ZURpbWVuc2lvbnNcIl0gPSBcInZhcnlpbmdBdHRyaWJ1dGVEaW1lbnNpb25zXCI7XG4gICAgLy8gRFBJX0ZpZWxkQ2FwdGlvblBhaXJTdGF0ZSwgaGF2aW5nIHR5cGUgRmllbGRDYXB0aW9uUGFpclN0YXRlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJGaWVsZENhcHRpb25QYWlyU3RhdGVcIl0gPSBcImZpZWxkQ2FwdGlvblBhaXJTdGF0ZVwiO1xuICAgIC8vIERQSV9GaWVsZENhcHRpb25QYWlyU3RhdGVzLCBoYXZpbmcgdHlwZSBGaWVsZENhcHRpb25QYWlyU3RhdGVQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiRmllbGRDYXB0aW9uUGFpclN0YXRlc1wiXSA9IFwiZmllbGRDYXB0aW9uUGFpclN0YXRlc1wiO1xuICAgIC8vIERQSV9EYXRhc291cmNlQ2FwdGlvblBhaXIsIGhhdmluZyB0eXBlIERhdGFzb3VyY2VDYXB0aW9uUGFpclByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRGF0YXNvdXJjZUNhcHRpb25QYWlyXCJdID0gXCJkYXRhc291cmNlQ2FwdGlvblBhaXJcIjtcbiAgICAvLyBEUElfRGF0YXNvdXJjZUNhcHRpb25QYWlycywgaGF2aW5nIHR5cGUgRGF0YXNvdXJjZUNhcHRpb25QYWlyUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFzb3VyY2VDYXB0aW9uUGFpcnNcIl0gPSBcImRhdGFzb3VyY2VDYXB0aW9uUGFpcnNcIjtcbiAgICAvLyBEUElfU2hlZXROYW1lSW5mb1BhaXIsIGhhdmluZyB0eXBlIFNoZWV0TmFtZUluZm9QYWlyUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTaGVldE5hbWVJbmZvUGFpclwiXSA9IFwic2hlZXROYW1lSW5mb1BhaXJcIjtcbiAgICAvLyBEUElfU2hlZXROYW1lSW5mb1BhaXJzLCBoYXZpbmcgdHlwZSBTaGVldE5hbWVJbmZvUGFpclByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJTaGVldE5hbWVJbmZvUGFpcnNcIl0gPSBcInNoZWV0TmFtZUluZm9QYWlyc1wiO1xuICAgIC8vIERQSV9CR0FjdGl2ZUNvbG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkJHQWN0aXZlQ29sb3JcIl0gPSBcImJnQWN0aXZlQ29sb3JcIjtcbiAgICAvLyBEUElfQkdDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJCR0NvbG9yXCJdID0gXCJiZ0NvbG9yXCI7XG4gICAgLy8gRFBJX0JHUmVzdENvbG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkJHUmVzdENvbG9yXCJdID0gXCJiZ1Jlc3RDb2xvclwiO1xuICAgIC8vIERQSV9Cb3JkZXJDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJCb3JkZXJDb2xvclwiXSA9IFwiYm9yZGVyQ29sb3JcIjtcbiAgICAvLyBEUElfQm9yZGVyQ29sb3JCb3R0b20sIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQm9yZGVyQ29sb3JCb3R0b21cIl0gPSBcImJvcmRlckNvbG9yQm90dG9tXCI7XG4gICAgLy8gRFBJX0JvcmRlckNvbG9yTGVmdCwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJCb3JkZXJDb2xvckxlZnRcIl0gPSBcImJvcmRlckNvbG9yTGVmdFwiO1xuICAgIC8vIERQSV9Cb3JkZXJDb2xvclJpZ2h0LCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkJvcmRlckNvbG9yUmlnaHRcIl0gPSBcImJvcmRlckNvbG9yUmlnaHRcIjtcbiAgICAvLyBEUElfQm9yZGVyQ29sb3JUb3AsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQm9yZGVyQ29sb3JUb3BcIl0gPSBcImJvcmRlckNvbG9yVG9wXCI7XG4gICAgLy8gRFBJX0NvbG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbG9yXCJdID0gXCJjb2xvclwiO1xuICAgIC8vIERQSV9Db2xvcjEsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiQ29sb3IxXCJdID0gXCJjb2xvcjFcIjtcbiAgICAvLyBEUElfQ29sb3IyLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbG9yMlwiXSA9IFwiY29sb3IyXCI7XG4gICAgLy8gRFBJX0RlZmF1bHRDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJEZWZhdWx0Q29sb3JcIl0gPSBcImRlZmF1bHRDb2xvclwiO1xuICAgIC8vIERQSV9EaXN0YW5jZUZvbnRDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJEaXN0YW5jZUZvbnRDb2xvclwiXSA9IFwiZGlzdGFuY2VGb250Q29sb3JcIjtcbiAgICAvLyBEUElfRmlsbENvbG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkZpbGxDb2xvclwiXSA9IFwiZmlsbENvbG9yXCI7XG4gICAgLy8gRFBJX0ZvZ0NvbG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkZvZ0NvbG9yXCJdID0gXCJmb2dDb2xvclwiO1xuICAgIC8vIERQSV9IZWFkZXJDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJIZWFkZXJDb2xvclwiXSA9IFwiaGVhZGVyQ29sb3JcIjtcbiAgICAvLyBEUElfSGlnaGxpZ2h0QkdDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJIaWdobGlnaHRCR0NvbG9yXCJdID0gXCJoaWdobGlnaHRCZ0NvbG9yXCI7XG4gICAgLy8gRFBJX0hpZ2hsaWdodFRleHRDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJIaWdobGlnaHRUZXh0Q29sb3JcIl0gPSBcImhpZ2hsaWdodFRleHRDb2xvclwiO1xuICAgIC8vIERQSV9Ib3ZlckNvbG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkhvdmVyQ29sb3JcIl0gPSBcImhvdmVyQ29sb3JcIjtcbiAgICAvLyBEUElfTWFwQXR0cmlidXRpb25GaWxsLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIk1hcEF0dHJpYnV0aW9uRmlsbFwiXSA9IFwibWFwQXR0cmlidXRpb25GaWxsXCI7XG4gICAgLy8gRFBJX01hcEF0dHJpYnV0aW9uVGV4dENvbG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIk1hcEF0dHJpYnV0aW9uVGV4dENvbG9yXCJdID0gXCJtYXBBdHRyaWJ1dGlvblRleHRDb2xvclwiO1xuICAgIC8vIERQSV9NYXBQYW5lQmFja2dyb3VuZEZpbGwsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiTWFwUGFuZUJhY2tncm91bmRGaWxsXCJdID0gXCJtYXBQYW5lQmFja2dyb3VuZEZpbGxcIjtcbiAgICAvLyBEUElfTWFwU2NhbGVCb3JkZXJDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJNYXBTY2FsZUJvcmRlckNvbG9yXCJdID0gXCJtYXBTY2FsZUJvcmRlckNvbG9yXCI7XG4gICAgLy8gRFBJX01hcFNjYWxlQ29sb3IsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiTWFwU2NhbGVDb2xvclwiXSA9IFwibWFwU2NhbGVDb2xvclwiO1xuICAgIC8vIERQSV9NYXBXYWl0VGlsZUZpbGwsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiTWFwV2FpdFRpbGVGaWxsXCJdID0gXCJtYXBXYWl0VGlsZUZpbGxcIjtcbiAgICAvLyBEUElfTWFya0NvbG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIk1hcmtDb2xvclwiXSA9IFwibWFya0NvbG9yXCI7XG4gICAgLy8gRFBJX05hdkFycm93RGlzYWJsZWRDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJOYXZBcnJvd0Rpc2FibGVkQ29sb3JcIl0gPSBcIm5hdkFycm93RGlzYWJsZWRDb2xvclwiO1xuICAgIC8vIERQSV9OYXZBcnJvd0hvdmVyQ29sb3IsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiTmF2QXJyb3dIb3ZlckNvbG9yXCJdID0gXCJuYXZBcnJvd0hvdmVyQ29sb3JcIjtcbiAgICAvLyBEUElfTmF2QXJyb3dJZGxlQ29sb3IsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiTmF2QXJyb3dJZGxlQ29sb3JcIl0gPSBcIm5hdkFycm93SWRsZUNvbG9yXCI7XG4gICAgLy8gRFBJX05hdkFycm93UHJlc3NlZENvbG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIk5hdkFycm93UHJlc3NlZENvbG9yXCJdID0gXCJuYXZBcnJvd1ByZXNzZWRDb2xvclwiO1xuICAgIC8vIERQSV9QYW5lQ29sb3IsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiUGFuZUNvbG9yXCJdID0gXCJwYW5lQ29sb3JcIjtcbiAgICAvLyBEUElfUHJlc3NDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJQcmVzc0NvbG9yXCJdID0gXCJwcmVzc0NvbG9yXCI7XG4gICAgLy8gRFBJX1Jlc2l6ZUJvcmRlckNvbG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlJlc2l6ZUJvcmRlckNvbG9yXCJdID0gXCJyZXNpemVCb3JkZXJDb2xvclwiO1xuICAgIC8vIERQSV9TZWxlY3RCR0NvbG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlNlbGVjdEJHQ29sb3JcIl0gPSBcInNlbGVjdEJnQ29sb3JcIjtcbiAgICAvLyBEUElfU2VsZWN0aW9uVGV4dENvbG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlNlbGVjdGlvblRleHRDb2xvclwiXSA9IFwic2VsZWN0aW9uVGV4dENvbG9yXCI7XG4gICAgLy8gRFBJX1N3YXRjaEJhY2tncm91bmRDb2xvciwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJTd2F0Y2hCYWNrZ3JvdW5kQ29sb3JcIl0gPSBcInN3YXRjaEJnQ29sb3JcIjtcbiAgICAvLyBEUElfU3dhdGNoQm9yZGVyQ29sb3IsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiU3dhdGNoQm9yZGVyQ29sb3JcIl0gPSBcInN3YXRjaEJvcmRlckNvbG9yXCI7XG4gICAgLy8gRFBJX1RhYkNvbG9yLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlRhYkNvbG9yXCJdID0gXCJ0YWJDb2xvclwiO1xuICAgIC8vIERQSV9Db2xvcnMsIGhhdmluZyB0eXBlIHN0cmluZ1tdXG4gICAgUGFyYW1ldGVySWRbXCJDb2xvcnNcIl0gPSBcImNvbG9yc1wiO1xuICAgIC8vIERQSV9Db2xvck1hcCwgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBzdHJpbmcpXG4gICAgUGFyYW1ldGVySWRbXCJDb2xvck1hcFwiXSA9IFwiY29sb3JNYXBcIjtcbiAgICAvLyBEUElfUGl4bWFwLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIlBpeG1hcFwiXSA9IFwicGl4bWFwXCI7XG4gICAgLy8gRFBJX0ltYWdlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkltYWdlXCJdID0gXCJpbWFnZVwiO1xuICAgIC8vIERQSV9PdmVybGF5SW1hZ2UsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiT3ZlcmxheUltYWdlXCJdID0gXCJvdmVybGF5SW1hZ2VcIjtcbiAgICAvLyBEUElfSWNvbkltYWdlLCBoYXZpbmcgdHlwZSBzdHJpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkljb25JbWFnZVwiXSA9IFwiaWNvbkltYWdlXCI7XG4gICAgLy8gRFBJX0ltYWdlTGlzdCwgaGF2aW5nIHR5cGUgc3RyaW5nW11cbiAgICBQYXJhbWV0ZXJJZFtcIkltYWdlTGlzdFwiXSA9IFwiaW1hZ2VMaXN0XCI7XG4gICAgLy8gRFBJX0ltYWdlTWFwLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIHN0cmluZylcbiAgICBQYXJhbWV0ZXJJZFtcIkltYWdlTWFwXCJdID0gXCJpbWFnZU1hcFwiO1xuICAgIC8vIERQSV9VVUlELCBoYXZpbmcgdHlwZSBvYmplY3RcbiAgICBQYXJhbWV0ZXJJZFtcIlVVSURcIl0gPSBcInV1aWRcIjtcbiAgICAvLyBEUElfTmFub3NlY29uZHMsIGhhdmluZyB0eXBlIG9iamVjdFxuICAgIFBhcmFtZXRlcklkW1wiTmFub3NlY29uZHNcIl0gPSBcIm5hbm9zZWNvbmRzXCI7XG4gICAgLy8gRFBJX01pY3Jvc2Vjb25kcywgaGF2aW5nIHR5cGUgb2JqZWN0XG4gICAgUGFyYW1ldGVySWRbXCJNaWNyb3NlY29uZHNcIl0gPSBcIm1pY3Jvc2Vjb25kc1wiO1xuICAgIC8vIERQSV9NaWxsaXNlY29uZHMsIGhhdmluZyB0eXBlIG9iamVjdFxuICAgIFBhcmFtZXRlcklkW1wiTWlsbGlzZWNvbmRzXCJdID0gXCJtaWxsaXNlY29uZHNcIjtcbiAgICAvLyBEUElfVGltZW91dFMsIGhhdmluZyB0eXBlIG9iamVjdFxuICAgIFBhcmFtZXRlcklkW1wiVGltZW91dFNcIl0gPSBcInRpbWVvdXRTXCI7XG4gICAgLy8gRFBJX01pbnV0ZXMsIGhhdmluZyB0eXBlIG9iamVjdFxuICAgIFBhcmFtZXRlcklkW1wiTWludXRlc1wiXSA9IFwibWludXRlc1wiO1xuICAgIC8vIERQSV9Ib3VycywgaGF2aW5nIHR5cGUgb2JqZWN0XG4gICAgUGFyYW1ldGVySWRbXCJIb3Vyc1wiXSA9IFwiaG91cnNcIjtcbiAgICAvLyBEUElfQ2FyZFR5cGUsIGhhdmluZyB0eXBlIENhcmRUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJDYXJkVHlwZVwiXSA9IFwiY2FyZFR5cGVcIjtcbiAgICAvLyBEUElfRG9jUGFyYW1ldGVySUQsIGhhdmluZyB0eXBlIHN0cmluZ1xuICAgIFBhcmFtZXRlcklkW1wiRG9jUGFyYW1ldGVySURcIl0gPSBcInR5cGVcIjtcbiAgICAvLyBEUElfQXJndW1lbnRQYXJhbSwgaGF2aW5nIHR5cGUgc3RyaW5nXG4gICAgUGFyYW1ldGVySWRbXCJBcmd1bWVudFBhcmFtXCJdID0gXCJhcmd1bWVudFBhcmFtXCI7XG4gICAgLy8gRFBJX0FyZ3VtZW50UGFyYW1zLCBoYXZpbmcgdHlwZSBzdHJpbmdbXVxuICAgIFBhcmFtZXRlcklkW1wiQXJndW1lbnRQYXJhbXNcIl0gPSBcImFyZ3VtZW50UGFyYW1zXCI7XG4gICAgLy8gRFBJX0FjdGlvblR5cGUsIGhhdmluZyB0eXBlIEFjdGlvblR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIkFjdGlvblR5cGVcIl0gPSBcImFjdGlvblR5cGVcIjtcbiAgICAvLyBEUElfQW5ub3RhdGVFbnVtLCBoYXZpbmcgdHlwZSBBbm5vdGF0ZUVudW1cbiAgICBQYXJhbWV0ZXJJZFtcIkFubm90YXRlRW51bVwiXSA9IFwiYW5ub3RhdGVFbnVtXCI7XG4gICAgLy8gRFBJX0pvaW5UeXBlLCBoYXZpbmcgdHlwZSBTUUxKb2luVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiSm9pblR5cGVcIl0gPSBcImpvaW5UeXBlXCI7XG4gICAgLy8gRFBJX1N1cHBvcnRlZEpvaW5UeXBlcywgaGF2aW5nIHR5cGUgU1FMSm9pblR5cGVbXVxuICAgIFBhcmFtZXRlcklkW1wiU3VwcG9ydGVkSm9pblR5cGVzXCJdID0gXCJzdXBwb3J0ZWRKb2luVHlwZXNcIjtcbiAgICAvLyBEUElfUm91bmRpbmcsIGhhdmluZyB0eXBlIFJvdW5kaW5nXG4gICAgUGFyYW1ldGVySWRbXCJSb3VuZGluZ1wiXSA9IFwicm91bmRpbmdFbnVtXCI7XG4gICAgLy8gRFBJX0JvZHlUeXBlLCBoYXZpbmcgdHlwZSBCb2R5VHlwZVxuICAgIFBhcmFtZXRlcklkW1wiQm9keVR5cGVcIl0gPSBcImJvZHlUeXBlXCI7XG4gICAgLy8gRFBJX0xpbmVFbmQsIGhhdmluZyB0eXBlIExpbmVFbmRcbiAgICBQYXJhbWV0ZXJJZFtcIkxpbmVFbmRcIl0gPSBcImxpbmVFbmRFbnVtXCI7XG4gICAgLy8gRFBJX0xpbmVFbmRTaXplLCBoYXZpbmcgdHlwZSBMaW5lRW5kU2l6ZVxuICAgIFBhcmFtZXRlcklkW1wiTGluZUVuZFNpemVcIl0gPSBcImxpbmVFbmRTaXplRW51bVwiO1xuICAgIC8vIERQSV9CcnVzaFNwZWNpYWxGaWVsZHMsIGhhdmluZyB0eXBlIEJydXNoU3BlY2lhbEZpZWxkc1xuICAgIFBhcmFtZXRlcklkW1wiQnJ1c2hTcGVjaWFsRmllbGRzXCJdID0gXCJzcGVjaWFsRmllbGRzXCI7XG4gICAgLy8gRFBJX0NlbGxTaXplQ2hhbmdlLCBoYXZpbmcgdHlwZSBDZWxsU2l6ZUNoYW5nZVxuICAgIFBhcmFtZXRlcklkW1wiQ2VsbFNpemVDaGFuZ2VcIl0gPSBcImNlbGxTaXplQ2hhbmdlXCI7XG4gICAgLy8gRFBJX0NlbGxUeXBlLCBoYXZpbmcgdHlwZSBDZWxsVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiQ2VsbFR5cGVcIl0gPSBcImNlbGxUeXBlXCI7XG4gICAgLy8gRFBJX0Nvbm5lY3Rpb25BdHRlbXB0UmVzdWx0LCBoYXZpbmcgdHlwZSBDb25uZWN0aW9uQXR0ZW1wdFJlc3VsdFxuICAgIFBhcmFtZXRlcklkW1wiQ29ubmVjdGlvbkF0dGVtcHRSZXN1bHRcIl0gPSBcImNvbm5lY3Rpb25BdHRlbXB0UmVzdWx0XCI7XG4gICAgLy8gRFBJX0Nvbm5lY3Rpb25FcnJvclN0YWdlLCBoYXZpbmcgdHlwZSBDb25uZWN0aW9uRXJyb3JTdGFnZVxuICAgIFBhcmFtZXRlcklkW1wiQ29ubmVjdGlvbkVycm9yU3RhZ2VcIl0gPSBcImNvbm5lY3Rpb25FcnJvclN0YWdlXCI7XG4gICAgLy8gRFBJX0Nvbm5lY3Rpb25FcnJvclR5cGUsIGhhdmluZyB0eXBlIENvbm5lY3Rpb25FcnJvclR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbm5lY3Rpb25FcnJvclR5cGVcIl0gPSBcImNvbm5lY3Rpb25FcnJvclR5cGVcIjtcbiAgICAvLyBEUElfRGF0YVNlcnZlckNvbm5lY3Rpb25SZXN1bHQsIGhhdmluZyB0eXBlIERhdGFTZXJ2ZXJDb25uZWN0aW9uUmVzdWx0XG4gICAgUGFyYW1ldGVySWRbXCJEYXRhU2VydmVyQ29ubmVjdGlvblJlc3VsdFwiXSA9IFwiZHNDb25uZWN0aW9uUmVzdWx0XCI7XG4gICAgLy8gRFBJX0Ryb3BXaGVuLCBoYXZpbmcgdHlwZSBEcm9wV2hlblxuICAgIFBhcmFtZXRlcklkW1wiRHJvcFdoZW5cIl0gPSBcImRyb3BXaGVuXCI7XG4gICAgLy8gRFBJX0Ryb3BUeXBlLCBoYXZpbmcgdHlwZSBEcm9wRmllbGRSZXN1bHRcbiAgICBQYXJhbWV0ZXJJZFtcIkRyb3BUeXBlXCJdID0gXCJkcm9wVHlwZVwiO1xuICAgIC8vIERQSV9FbmNvZGluZ1R5cGUsIGhhdmluZyB0eXBlIEVuY29kaW5nVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiRW5jb2RpbmdUeXBlXCJdID0gXCJlbmNvZGluZ1R5cGVcIjtcbiAgICAvLyBEUElfRHJvcGRvd25FbmNvZGluZ1R5cGUsIGhhdmluZyB0eXBlIEVuY29kaW5nVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiRHJvcGRvd25FbmNvZGluZ1R5cGVcIl0gPSBcImRyb3Bkb3duRW5jb2RpbmdUeXBlXCI7XG4gICAgLy8gRFBJX0VuY29kaW5nVHlwZXMsIGhhdmluZyB0eXBlIEVuY29kaW5nVHlwZVtdXG4gICAgUGFyYW1ldGVySWRbXCJFbmNvZGluZ1R5cGVzXCJdID0gXCJlbmNvZGluZ1R5cGVzXCI7XG4gICAgLy8gRFBJX0ZpZWxkT3JkZXJUeXBlLCBoYXZpbmcgdHlwZSBGaWVsZE9yZGVyVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiRmllbGRPcmRlclR5cGVcIl0gPSBcImZpZWxkT3JkZXJUeXBlXCI7XG4gICAgLy8gRFBJX0ZpbHRlckljb25UeXBlLCBoYXZpbmcgdHlwZSBGaWx0ZXJJY29uVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiRmlsdGVySWNvblR5cGVcIl0gPSBcImZpbHRlckljb25UeXBlXCI7XG4gICAgLy8gRFBJX0ZpbHRlckljb25UeXBlcywgaGF2aW5nIHR5cGUgRmlsdGVySWNvblR5cGVbXVxuICAgIFBhcmFtZXRlcklkW1wiRmlsdGVySWNvblR5cGVzXCJdID0gXCJmaWx0ZXJJY29uVHlwZXNcIjtcbiAgICAvLyBEUElfRmxvYXRpbmdUb29sYmFyVmlzLCBoYXZpbmcgdHlwZSBGbG9hdGluZ1Rvb2xiYXJWaXNpYmlsaXR5XG4gICAgUGFyYW1ldGVySWRbXCJGbG9hdGluZ1Rvb2xiYXJWaXNcIl0gPSBcInRvb2xiYXJWaXNpYmlsaXR5XCI7XG4gICAgLy8gRFBJX0ZvbGRlclJvbGUsIGhhdmluZyB0eXBlIEZvbGRlclJvbGVcbiAgICBQYXJhbWV0ZXJJZFtcIkZvbGRlclJvbGVcIl0gPSBcImZvbGRlclJvbGVcIjtcbiAgICAvLyBEUElfTGVnZW5kVHlwZSwgaGF2aW5nIHR5cGUgRW51bVxuICAgIFBhcmFtZXRlcklkW1wiTGVnZW5kVHlwZVwiXSA9IFwibGVnZW5kVHlwZVwiO1xuICAgIC8vIERQSV9Gb3JlY2FzdE1vZGVsVHlwZSwgaGF2aW5nIHR5cGUgRm9yZWNhc3RNb2RlbFR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIkZvcmVjYXN0TW9kZWxUeXBlXCJdID0gXCJmb3JlY2FzdE1vZGVsVHlwZVwiO1xuICAgIC8vIERQSV9Gb3JlY2FzdFRyZW5kVHlwZSwgaGF2aW5nIHR5cGUgRm9yZWNhc3RDb21wb25lbnRUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJGb3JlY2FzdFRyZW5kVHlwZVwiXSA9IFwiZm9yZWNhc3RUcmVuZFR5cGVcIjtcbiAgICAvLyBEUElfRm9yZWNhc3RTZWFzb25UeXBlLCBoYXZpbmcgdHlwZSBGb3JlY2FzdENvbXBvbmVudFR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIkZvcmVjYXN0U2Vhc29uVHlwZVwiXSA9IFwiZm9yZWNhc3RTZWFzb25UeXBlXCI7XG4gICAgLy8gRFBJX0ZvcmVjYXN0UmFuZ2VUeXBlLCBoYXZpbmcgdHlwZSBGb3JlY2FzdFJhbmdlVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiRm9yZWNhc3RSYW5nZVR5cGVcIl0gPSBcImZvcmVjYXN0UmFuZ2VUeXBlXCI7XG4gICAgLy8gRFBJX0ZvcmVjYXN0U3RhdHVzLCBoYXZpbmcgdHlwZSBGb3JlY2FzdFN0YXR1c1xuICAgIFBhcmFtZXRlcklkW1wiRm9yZWNhc3RTdGF0dXNcIl0gPSBcImZvcmVjYXN0U3RhdHVzXCI7XG4gICAgLy8gRFBJX1NoZWV0Rm9yZWNhc3RTdGF0dXMsIGhhdmluZyB0eXBlIEZvcmVjYXN0U3RhdHVzXG4gICAgUGFyYW1ldGVySWRbXCJTaGVldEZvcmVjYXN0U3RhdHVzXCJdID0gXCJzaGVldEZvcmVjYXN0U3RhdHVzXCI7XG4gICAgLy8gRFBJX1BERm9yZWNhc3RTdGF0dXNMaXN0LCBoYXZpbmcgdHlwZSBGb3JlY2FzdFN0YXR1c1tdXG4gICAgUGFyYW1ldGVySWRbXCJQREZvcmVjYXN0U3RhdHVzTGlzdFwiXSA9IFwicGFuZURlc2NyaXB0b3JGb3JlY2FzdFN0YXR1c0xpc3RcIjtcbiAgICAvLyBEUElfRm9yZWNhc3RDb2x1bW5UeXBlLCBoYXZpbmcgdHlwZSBGb3JlY2FzdENvbHVtblR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIkZvcmVjYXN0Q29sdW1uVHlwZVwiXSA9IFwiZm9yZWNhc3RDb2x1bW5UeXBlXCI7XG4gICAgLy8gRFBJX0RhdGFTY2FsaW5nLCBoYXZpbmcgdHlwZSBEYXRhU2NhbGluZ1xuICAgIFBhcmFtZXRlcklkW1wiRGF0YVNjYWxpbmdcIl0gPSBcImRhdGFTY2FsaW5nXCI7XG4gICAgLy8gRFBJX0dldEZpbHRlckl0ZW1zSnNvblJlc3BvbnNlLCBoYXZpbmcgdHlwZSBHZXRKc29uUmVzcG9uc2VFbnVtXG4gICAgUGFyYW1ldGVySWRbXCJHZXRGaWx0ZXJJdGVtc0pzb25SZXNwb25zZVwiXSA9IFwiZ2V0RmlsdGVySXRlbXNKc29uUmVzcG9uc2VcIjtcbiAgICAvLyBEUElfRmlsdGVyU2VhcmNoSnNvblJlc3BvbnNlLCBoYXZpbmcgdHlwZSBHZXRKc29uUmVzcG9uc2VFbnVtXG4gICAgUGFyYW1ldGVySWRbXCJGaWx0ZXJTZWFyY2hKc29uUmVzcG9uc2VcIl0gPSBcImZpbHRlclNlYXJjaEpzb25SZXNwb25zZVwiO1xuICAgIC8vIERQSV9GaWx0ZXJTZWFyY2hXaXRoSW5kZXhKc29uUmVzcG9uc2UsIGhhdmluZyB0eXBlIEdldEpzb25SZXNwb25zZUVudW1cbiAgICBQYXJhbWV0ZXJJZFtcIkZpbHRlclNlYXJjaFdpdGhJbmRleEpzb25SZXNwb25zZVwiXSA9IFwiZmlsdGVyU2VhcmNoV2l0aEluZGV4SnNvblJlc3BvbnNlXCI7XG4gICAgLy8gRFBJX0ZpbHRlclNob3dDaGlsZHJlbkpzb25SZXNwb25zZSwgaGF2aW5nIHR5cGUgR2V0SnNvblJlc3BvbnNlRW51bVxuICAgIFBhcmFtZXRlcklkW1wiRmlsdGVyU2hvd0NoaWxkcmVuSnNvblJlc3BvbnNlXCJdID0gXCJmaWx0ZXJTaG93Q2hpbGRyZW5Kc29uUmVzcG9uc2VcIjtcbiAgICAvLyBEUElfSEFsaWdubWVudCwgaGF2aW5nIHR5cGUgTGFiZWxIQWxpZ25tZW50XG4gICAgUGFyYW1ldGVySWRbXCJIQWxpZ25tZW50XCJdID0gXCJob3Jpem9udGFsTGFiZWxBbGlnbm1lbnRcIjtcbiAgICAvLyBEUElfSm9pblZhbGlkYXRpb25FcnJvciwgaGF2aW5nIHR5cGUgSm9pblZhbGlkYXRpb25FcnJvclxuICAgIFBhcmFtZXRlcklkW1wiSm9pblZhbGlkYXRpb25FcnJvclwiXSA9IFwiam9pblZhbGlkYXRpb25FcnJvclwiO1xuICAgIC8vIERQSV9OYW1lQ29uZmxpY3RSZXNvbHV0aW9uLCBoYXZpbmcgdHlwZSBOYW1lQ29uZmxpY3RSZXNvbHV0aW9uXG4gICAgUGFyYW1ldGVySWRbXCJOYW1lQ29uZmxpY3RSZXNvbHV0aW9uXCJdID0gXCJuYW1lQ29uZmxpY3RSZXNvbHV0aW9uXCI7XG4gICAgLy8gRFBJX0xhYmVsRGlyLCBoYXZpbmcgdHlwZSBUZXh0T3JpZW50XG4gICAgUGFyYW1ldGVySWRbXCJMYWJlbERpclwiXSA9IFwibGFiZWxEaXJlY3Rpb25cIjtcbiAgICAvLyBEUElfTGFiZWxBbGlnbiwgaGF2aW5nIHR5cGUgVGV4dEFsaWduXG4gICAgUGFyYW1ldGVySWRbXCJMYWJlbEFsaWduXCJdID0gXCJsYWJlbEFsaWdubWVudFwiO1xuICAgIC8vIERQSV9MYWJlbFdyYXAsIGhhdmluZyB0eXBlIFRleHRXcmFwTW9kZVxuICAgIFBhcmFtZXRlcklkW1wiTGFiZWxXcmFwXCJdID0gXCJsYWJlbFdyYXBcIjtcbiAgICAvLyBEUElfV3JhcE1vZGUsIGhhdmluZyB0eXBlIFRleHRXcmFwTW9kZVxuICAgIFBhcmFtZXRlcklkW1wiV3JhcE1vZGVcIl0gPSBcIndyYXBNb2RlXCI7XG4gICAgLy8gRFBJX01hcmtFbnVtLCBoYXZpbmcgdHlwZSBNYXJrRW51bVxuICAgIFBhcmFtZXRlcklkW1wiTWFya0VudW1cIl0gPSBcIm1hcmtFbnVtXCI7XG4gICAgLy8gRFBJX1BlcmNlbnRNb2RlLCBoYXZpbmcgdHlwZSBQZXJjZW50TW9kZVxuICAgIFBhcmFtZXRlcklkW1wiUGVyY2VudE1vZGVcIl0gPSBcInBlcmNlbnRhZ2VNb2RlXCI7XG4gICAgLy8gRFBJX1JlZmVyZW5jZU9wdGlvbnNTZXQsIGhhdmluZyB0eXBlIFJlZmVyZW5jZU9wdGlvbnNTZXRcbiAgICBQYXJhbWV0ZXJJZFtcIlJlZmVyZW5jZU9wdGlvbnNTZXRcIl0gPSBcInJlZmVyZW5jZU9wdGlvbnNTZXRcIjtcbiAgICAvLyBEUElfUmVmZXJlbmNlT3B0aW9uc1NldHMsIGhhdmluZyB0eXBlIFJlZmVyZW5jZU9wdGlvbnNTZXRbXVxuICAgIFBhcmFtZXRlcklkW1wiUmVmZXJlbmNlT3B0aW9uc1NldHNcIl0gPSBcInJlZmVyZW5jZU9wdGlvbnNTZXRzXCI7XG4gICAgLy8gRFBJX1JhbmtUeXBlLCBoYXZpbmcgdHlwZSBSYW5rVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiUmFua1R5cGVcIl0gPSBcInJhbmtUeXBlXCI7XG4gICAgLy8gRFBJX1JhbmtUeXBlVmFsdWVzLCBoYXZpbmcgdHlwZSBSYW5rVHlwZVtdXG4gICAgUGFyYW1ldGVySWRbXCJSYW5rVHlwZVZhbHVlc1wiXSA9IFwicmFua1R5cGVWYWx1ZXNcIjtcbiAgICAvLyBEUElfU3BlY2lhbFZhbHVlc01vZGUsIGhhdmluZyB0eXBlIFNwZWNpYWxWYWx1ZXNNb2RlXG4gICAgUGFyYW1ldGVySWRbXCJTcGVjaWFsVmFsdWVzTW9kZVwiXSA9IFwic3BlY2lhbFZhbHVlc01vZGVcIjtcbiAgICAvLyBEUElfVkFsaWdubWVudCwgaGF2aW5nIHR5cGUgTGFiZWxWQWxpZ25tZW50XG4gICAgUGFyYW1ldGVySWRbXCJWQWxpZ25tZW50XCJdID0gXCJ2ZXJ0aWNhbExhYmVsQWxpZ25tZW50XCI7XG4gICAgLy8gRFBJX0NvbG9yTW9kZSwgaGF2aW5nIHR5cGUgQ29sb3JNb2RlXG4gICAgUGFyYW1ldGVySWRbXCJDb2xvck1vZGVcIl0gPSBcImNvbG9yTW9kZVwiO1xuICAgIC8vIERQSV9NYXJrTGFiZWxzTW9kZSwgaGF2aW5nIHR5cGUgTWFya0xhYmVsc01vZGVcbiAgICBQYXJhbWV0ZXJJZFtcIk1hcmtMYWJlbHNNb2RlXCJdID0gXCJtYXJrTGFiZWxzTW9kZVwiO1xuICAgIC8vIERQSV9NYXJrTGFiZWxzU2NvcGUsIGhhdmluZyB0eXBlIE1hcmtMYWJlbHNTY29wZVxuICAgIFBhcmFtZXRlcklkW1wiTWFya0xhYmVsc1Njb3BlXCJdID0gXCJtYXJrTGFiZWxzU2NvcGVcIjtcbiAgICAvLyBEUElfTWFya0xhYmVsc1Zpc2liaWxpdHksIGhhdmluZyB0eXBlIE1hcmtMYWJlbHNWaXNpYmlsaXR5XG4gICAgUGFyYW1ldGVySWRbXCJNYXJrTGFiZWxzVmlzaWJpbGl0eVwiXSA9IFwibWFya0xhYmVsc1Zpc2liaWxpdHlcIjtcbiAgICAvLyBEUElfUHJpbWl0aXZlVHlwZSwgaGF2aW5nIHR5cGUgUHJpbWl0aXZlVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiUHJpbWl0aXZlVHlwZVwiXSA9IFwicHJpbWl0aXZlVHlwZVwiO1xuICAgIC8vIERQSV9BY3R1YWxQcmltaXRpdmVUeXBlLCBoYXZpbmcgdHlwZSBQcmltaXRpdmVUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJBY3R1YWxQcmltaXRpdmVUeXBlXCJdID0gXCJhY3R1YWxQcmltaXRpdmVUeXBlXCI7XG4gICAgLy8gRFBJX1ByaW1pdGl2ZVR5cGVzLCBoYXZpbmcgdHlwZSBQcmltaXRpdmVUeXBlW11cbiAgICBQYXJhbWV0ZXJJZFtcIlByaW1pdGl2ZVR5cGVzXCJdID0gXCJwcmltaXRpdmVUeXBlc1wiO1xuICAgIC8vIERQSV9TaGFwZVR5cGUsIGhhdmluZyB0eXBlIFNoYXBlVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiU2hhcGVUeXBlXCJdID0gXCJzaGFwZVR5cGVcIjtcbiAgICAvLyBEUElfU29ydFR5cGUsIGhhdmluZyB0eXBlIFNvcnRUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJTb3J0VHlwZVwiXSA9IFwic29ydEJ5XCI7XG4gICAgLy8gRFBJX1NvcnRFbmQsIGhhdmluZyB0eXBlIFNvcnRFbmRcbiAgICBQYXJhbWV0ZXJJZFtcIlNvcnRFbmRcIl0gPSBcInNvcnRFbmRcIjtcbiAgICAvLyBEUElfU3RhY2tpbmdNb2RlLCBoYXZpbmcgdHlwZSBTdGFja2luZ01vZGVcbiAgICBQYXJhbWV0ZXJJZFtcIlN0YWNraW5nTW9kZVwiXSA9IFwic3RhY2tpbmdNb2RlXCI7XG4gICAgLy8gRFBJX1N0eWxlVGhlbWUsIGhhdmluZyB0eXBlIFN0eWxlVGhlbWVcbiAgICBQYXJhbWV0ZXJJZFtcIlN0eWxlVGhlbWVcIl0gPSBcInN0eWxlVGhlbWVcIjtcbiAgICAvLyBEUElfVHJlbmRMaW5lRml0VHlwZSwgaGF2aW5nIHR5cGUgVHJlbmRMaW5lRml0VHlwZVxuICAgIFBhcmFtZXRlcklkW1wiVHJlbmRMaW5lRml0VHlwZVwiXSA9IFwiZml0VHlwZVwiO1xuICAgIC8vIERQSV9VcGRhdGVTY29wZSwgaGF2aW5nIHR5cGUgVXBkYXRlU2NvcGVcbiAgICBQYXJhbWV0ZXJJZFtcIlVwZGF0ZVNjb3BlXCJdID0gXCJ1cGRhdGVTY29wZVwiO1xuICAgIC8vIERQSV9QYXJhbWV0ZXJDdHJsRGlzcGxheU1vZGUsIGhhdmluZyB0eXBlIERpc3BsYXlNb2RlXG4gICAgUGFyYW1ldGVySWRbXCJQYXJhbWV0ZXJDdHJsRGlzcGxheU1vZGVcIl0gPSBcInBhcmFtRGlzcGxheU1vZGVcIjtcbiAgICAvLyBEUElfUGFyYW1ldGVyQ3RybERpc3BsYXlGbGFnLCBoYXZpbmcgdHlwZSBQYXJhbWV0ZXJDdHJsRGlzcGxheUZsYWdcbiAgICBQYXJhbWV0ZXJJZFtcIlBhcmFtZXRlckN0cmxEaXNwbGF5RmxhZ1wiXSA9IFwicGFyYW1EaXNwbGF5RmxhZ1wiO1xuICAgIC8vIERQSV9JbmNsdWRlZCwgaGF2aW5nIHR5cGUgUXVhbnRpdGF0aXZlSW5jbHVkZWRWYWx1ZXNcbiAgICBQYXJhbWV0ZXJJZFtcIkluY2x1ZGVkXCJdID0gXCJpbmNsdWRlZFwiO1xuICAgIC8vIERQSV9Db21tYW5kc1R5cGUsIGhhdmluZyB0eXBlIENvbW1hbmRzVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiQ29tbWFuZHNUeXBlXCJdID0gXCJjb21tYW5kc1R5cGVcIjtcbiAgICAvLyBEUElfUGFyYW1ldGVyRG9tYWluVHlwZSwgaGF2aW5nIHR5cGUgRG9tYWluVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiUGFyYW1ldGVyRG9tYWluVHlwZVwiXSA9IFwicGFyYW1ldGVyRG9tYWluVHlwZVwiO1xuICAgIC8vIERQSV9GaWx0ZXJEb21haW5UeXBlLCBoYXZpbmcgdHlwZSBEb21haW5UeXBlXG4gICAgUGFyYW1ldGVySWRbXCJGaWx0ZXJEb21haW5UeXBlXCJdID0gXCJmaWx0ZXJEb21haW5UeXBlXCI7XG4gICAgLy8gRFBJX0ZpbHRlckRvbWFpbnMsIGhhdmluZyB0eXBlIERvbWFpblR5cGVbXVxuICAgIFBhcmFtZXRlcklkW1wiRmlsdGVyRG9tYWluc1wiXSA9IFwiZmlsdGVyRG9tYWluc1wiO1xuICAgIC8vIERQSV9DYXRlZ29yaWNhbEZpbHRlclR5cGUsIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsRmlsdGVyVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiQ2F0ZWdvcmljYWxGaWx0ZXJUeXBlXCJdID0gXCJjYXRlZ29yaWNhbEZpbHRlclR5cGVcIjtcbiAgICAvLyBEUElfRGF0ZVBlcmlvZFR5cGUsIGhhdmluZyB0eXBlIERhdGVQZXJpb2RUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJEYXRlUGVyaW9kVHlwZVwiXSA9IFwiZGF0ZVBlcmlvZFR5cGVcIjtcbiAgICAvLyBEUElfRmlsdGVyUGF0dGVyblR5cGUsIGhhdmluZyB0eXBlIFBhdHRlcm5UeXBlXG4gICAgUGFyYW1ldGVySWRbXCJGaWx0ZXJQYXR0ZXJuVHlwZVwiXSA9IFwiZmlsdGVyUGF0dGVyblR5cGVcIjtcbiAgICAvLyBEUElfRmlsdGVyQ29uZGl0aW9uVHlwZSwgaGF2aW5nIHR5cGUgQ29uZGl0aW9uVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiRmlsdGVyQ29uZGl0aW9uVHlwZVwiXSA9IFwiZmlsdGVyQ29uZGl0aW9uVHlwZVwiO1xuICAgIC8vIERQSV9GaWx0ZXJzUHJlc2V0VHlwZSwgaGF2aW5nIHR5cGUgUHJlc2V0VHlwZVxuICAgIFBhcmFtZXRlcklkW1wiRmlsdGVyc1ByZXNldFR5cGVcIl0gPSBcImZpbHRlcnNQcmVzZXRUeXBlXCI7XG4gICAgLy8gRFBJX0ZpbHRlcnNSYW5nZVR5cGUsIGhhdmluZyB0eXBlIFJhbmdlVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiRmlsdGVyc1JhbmdlVHlwZVwiXSA9IFwiZmlsdGVyc1JhbmdlVHlwZVwiO1xuICAgIC8vIERQSV9EYXRlUmFuZ2VUeXBlLCBoYXZpbmcgdHlwZSBSZWxhdGl2ZURhdGVSYW5nZVR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGVSYW5nZVR5cGVcIl0gPSBcImRhdGVSYW5nZVR5cGVcIjtcbiAgICAvLyBEUElfUGFnZUZsYWcsIGhhdmluZyB0eXBlIFBhZ2VOYXZGbGFnc1xuICAgIFBhcmFtZXRlcklkW1wiUGFnZUZsYWdcIl0gPSBcInBhZ2VGbGFnXCI7XG4gICAgLy8gRFBJX01hcmtzVG9UcmFpbCwgaGF2aW5nIHR5cGUgTWFya3NUb1RyYWlsXG4gICAgUGFyYW1ldGVySWRbXCJNYXJrc1RvVHJhaWxcIl0gPSBcIm1hcmtzVG9UcmFpbFwiO1xuICAgIC8vIERQSV9UcmFpbFR5cGUsIGhhdmluZyB0eXBlIFRyYWlsVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiVHJhaWxUeXBlXCJdID0gXCJ0cmFpbFR5cGVcIjtcbiAgICAvLyBEUElfQ2hhbmdlUGFnZURpcmVjdGlvbiwgaGF2aW5nIHR5cGUgQ2hhbmdlUGFnZVR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIkNoYW5nZVBhZ2VEaXJlY3Rpb25cIl0gPSBcImNoYW5nZVRvXCI7XG4gICAgLy8gRFBJX0FuaW1hdGlvbkNvbnRyb2wsIGhhdmluZyB0eXBlIFBhZ2VBbmltYXRpb25Db250cm9sXG4gICAgUGFyYW1ldGVySWRbXCJBbmltYXRpb25Db250cm9sXCJdID0gXCJhbmltYXRpb25Db250cm9sXCI7XG4gICAgLy8gRFBJX0xpbmVQYXR0ZXJuLCBoYXZpbmcgdHlwZSBMaW5lUGF0dGVyblxuICAgIFBhcmFtZXRlcklkW1wiTGluZVBhdHRlcm5cIl0gPSBcImxpbmVQYXR0ZXJuXCI7XG4gICAgLy8gRFBJX0xpbmVDYXAsIGhhdmluZyB0eXBlIExpbmVDYXBcbiAgICBQYXJhbWV0ZXJJZFtcIkxpbmVDYXBcIl0gPSBcImxpbmVDYXBcIjtcbiAgICAvLyBEUElfTGluZUpvaW4sIGhhdmluZyB0eXBlIExpbmVKb2luXG4gICAgUGFyYW1ldGVySWRbXCJMaW5lSm9pblwiXSA9IFwibGluZUpvaW5cIjtcbiAgICAvLyBEUElfTGluZUFsaWdubWVudCwgaGF2aW5nIHR5cGUgTGluZUFsaWdubWVudFxuICAgIFBhcmFtZXRlcklkW1wiTGluZUFsaWdubWVudFwiXSA9IFwibGluZUFsaWdubWVudFwiO1xuICAgIC8vIERQSV9GaWxsTW9kZSwgaGF2aW5nIHR5cGUgRmlsbE1vZGVcbiAgICBQYXJhbWV0ZXJJZFtcIkZpbGxNb2RlXCJdID0gXCJmaWxsTW9kZVwiO1xuICAgIC8vIERQSV9DdXJzb3JTaGFwZSwgaGF2aW5nIHR5cGUgQ3Vyc29yU2hhcGVcbiAgICBQYXJhbWV0ZXJJZFtcIkN1cnNvclNoYXBlXCJdID0gXCJjdXJzb3JTaGFwZVwiO1xuICAgIC8vIERQSV9TaG93TWVDb21tYW5kVHlwZSwgaGF2aW5nIHR5cGUgU2hvd01lQ29tbWFuZFR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3dNZUNvbW1hbmRUeXBlXCJdID0gXCJzaG93TWVDb21tYW5kVHlwZVwiO1xuICAgIC8vIERQSV9TaGVsZkljb25UeXBlLCBoYXZpbmcgdHlwZSBTaGVsZkljb25UeXBlXG4gICAgUGFyYW1ldGVySWRbXCJTaGVsZkljb25UeXBlXCJdID0gXCJzaGVsZkljb25UeXBlXCI7XG4gICAgLy8gRFBJX1NoZWxmSWNvblR5cGVzLCBoYXZpbmcgdHlwZSBTaGVsZkljb25UeXBlW11cbiAgICBQYXJhbWV0ZXJJZFtcIlNoZWxmSWNvblR5cGVzXCJdID0gXCJzaGVsZkljb25UeXBlc1wiO1xuICAgIC8vIERQSV9JdGVtRHJhd1N0eWxlLCBoYXZpbmcgdHlwZSBJdGVtRHJhd1N0eWxlXG4gICAgUGFyYW1ldGVySWRbXCJJdGVtRHJhd1N0eWxlXCJdID0gXCJpdGVtRHJhd1N0eWxlXCI7XG4gICAgLy8gRFBJX1NjYWxlTW9kZSwgaGF2aW5nIHR5cGUgU2NhbGVNb2RlXG4gICAgUGFyYW1ldGVySWRbXCJTY2FsZU1vZGVcIl0gPSBcInBhZ2VTY2FsZU1vZGVcIjtcbiAgICAvLyBEUElfUGFnZU9yaWVudGF0aW9uT3B0aW9uLCBoYXZpbmcgdHlwZSBQYWdlT3JpZW50YXRpb25cbiAgICBQYXJhbWV0ZXJJZFtcIlBhZ2VPcmllbnRhdGlvbk9wdGlvblwiXSA9IFwicGFnZU9yaWVudGF0aW9uT3B0aW9uXCI7XG4gICAgLy8gRFBJX1BhZ2VTaXplT3B0aW9uLCBoYXZpbmcgdHlwZSBQYWdlU2l6ZU9wdGlvblxuICAgIFBhcmFtZXRlcklkW1wiUGFnZVNpemVPcHRpb25cIl0gPSBcInBhZ2VTaXplT3B0aW9uXCI7XG4gICAgLy8gRFBJX1NvcnRSZWdpb25UeXBlLCBoYXZpbmcgdHlwZSBTb3J0UmVnaW9uVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiU29ydFJlZ2lvblR5cGVcIl0gPSBcInNvcnRSZWdpb25cIjtcbiAgICAvLyBEUElfTGVnZW5kSXRlbUxheW91dCwgaGF2aW5nIHR5cGUgTGVnZW5kSXRlbUxheW91dFxuICAgIFBhcmFtZXRlcklkW1wiTGVnZW5kSXRlbUxheW91dFwiXSA9IFwibGVnZW5kTGF5b3V0XCI7XG4gICAgLy8gRFBJX0xlZ2VuZEl0ZW1PcmRlciwgaGF2aW5nIHR5cGUgTGVnZW5kSXRlbU9yZGVyXG4gICAgUGFyYW1ldGVySWRbXCJMZWdlbmRJdGVtT3JkZXJcIl0gPSBcImxlZ2VuZE9yZGVyXCI7XG4gICAgLy8gRFBJX1ZpekltYWdlUmVnaW9uLCBoYXZpbmcgdHlwZSBWaXpJbWFnZVJlZ2lvblxuICAgIFBhcmFtZXRlcklkW1wiVml6SW1hZ2VSZWdpb25cIl0gPSBcInJcIjtcbiAgICAvLyBEUElfTGVnYWN5TWVudU5hbWUsIGhhdmluZyB0eXBlIExlZ2FjeU1lbnVOYW1lXG4gICAgUGFyYW1ldGVySWRbXCJMZWdhY3lNZW51TmFtZVwiXSA9IFwibGVnYWN5TWVudU5hbWVcIjtcbiAgICAvLyBEUElfTGVnYWN5TWVudVN0YXRlLCBoYXZpbmcgdHlwZSBMZWdhY3lNZW51U3RhdGVcbiAgICBQYXJhbWV0ZXJJZFtcIkxlZ2FjeU1lbnVTdGF0ZVwiXSA9IFwibGVnYWN5TWVudVN0YXRlXCI7XG4gICAgLy8gRFBJX0xlZ2FjeU1lbnVTdGF0ZUxpc3QsIGhhdmluZyB0eXBlIExlZ2FjeU1lbnVTdGF0ZVtdXG4gICAgUGFyYW1ldGVySWRbXCJMZWdhY3lNZW51U3RhdGVMaXN0XCJdID0gXCJsZWdhY3lNZW51U3RhdGVzXCI7XG4gICAgLy8gRFBJX0RpbWVuc2lvblR5cGUsIGhhdmluZyB0eXBlIERpbWVuc2lvblR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIkRpbWVuc2lvblR5cGVcIl0gPSBcImRpbWVuc2lvblR5cGVcIjtcbiAgICAvLyBEUElfTGF5b3V0VHlwZSwgaGF2aW5nIHR5cGUgTGF5b3V0VHlwZVxuICAgIFBhcmFtZXRlcklkW1wiTGF5b3V0VHlwZVwiXSA9IFwibGF5b3V0VHlwZVwiO1xuICAgIC8vIERQSV9TaGVsZlR5cGUsIGhhdmluZyB0eXBlIFNoZWxmVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiU2hlbGZUeXBlXCJdID0gXCJzaGVsZlR5cGVcIjtcbiAgICAvLyBEUElfTGFzdFNlbGVjdGlvblNoZWxmLCBoYXZpbmcgdHlwZSBTaGVsZlR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIkxhc3RTZWxlY3Rpb25TaGVsZlwiXSA9IFwibGFzdFNoZWxmXCI7XG4gICAgLy8gRFBJX1NjaGVtYVZpZXdlckRhdGFTb3VyY2VUeXBlLCBoYXZpbmcgdHlwZSBTY2hlbWFWaWV3ZXJEYXRhU291cmNlVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiU2NoZW1hVmlld2VyRGF0YVNvdXJjZVR5cGVcIl0gPSBcInNjaGVtYURhdGFzb3VyY2VUeXBlXCI7XG4gICAgLy8gRFBJX1NjaGVtYUl0ZW1UeXBlLCBoYXZpbmcgdHlwZSBTY2hlbWFJdGVtVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiU2NoZW1hSXRlbVR5cGVcIl0gPSBcInNjaGVtYUl0ZW1UeXBlXCI7XG4gICAgLy8gRFBJX0hTTVNlbGVjdGlvbk1vZGUsIGhhdmluZyB0eXBlIFNlbGVjdGlvbk1vZGVcbiAgICBQYXJhbWV0ZXJJZFtcIkhTTVNlbGVjdGlvbk1vZGVcIl0gPSBcImhzbVNlbGVjdGlvbk1vZGVcIjtcbiAgICAvLyBEUElfSFNNRGVmYXVsdE1lbWJlclR5cGUsIGhhdmluZyB0eXBlIERlZmF1bHRNZW1iZXJUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJIU01EZWZhdWx0TWVtYmVyVHlwZVwiXSA9IFwiaHNtRGVmYXVsdE1lbWJlclR5cGVcIjtcbiAgICAvLyBEUElfSFNNTm90aWZpY2F0aW9uVHlwZSwgaGF2aW5nIHR5cGUgTm90aWZpY2F0aW9uVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiSFNNTm90aWZpY2F0aW9uVHlwZVwiXSA9IFwiaHNtTm90aWZpY2F0aW9uVHlwZVwiO1xuICAgIC8vIERQSV9IU01TZWxlY3Rpb25SZXF1ZXN0VHlwZSwgaGF2aW5nIHR5cGUgU2VsZWN0aW9uUmVxdWVzdFR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIkhTTVNlbGVjdGlvblJlcXVlc3RUeXBlXCJdID0gXCJoc21TZWxlY3Rpb25SZXF1ZXN0VHlwZVwiO1xuICAgIC8vIERQSV9IU01NZW1iZXJTZWxlY3RSZXF1ZXN0VHlwZSwgaGF2aW5nIHR5cGUgTWVtYmVyU2VsZWN0UmVxdWVzdFR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIkhTTU1lbWJlclNlbGVjdFJlcXVlc3RUeXBlXCJdID0gXCJoc21NZW1iZXJTZWxlY3RSZXF1ZXN0VHlwZVwiO1xuICAgIC8vIERQSV9QaXZvdFN0cmF0ZWd5LCBoYXZpbmcgdHlwZSBGaWVsZFBpdm90U3RyYXRlZ3lcbiAgICBQYXJhbWV0ZXJJZFtcIlBpdm90U3RyYXRlZ3lcIl0gPSBcInBpdm90U3RyYXRlZ3lcIjtcbiAgICAvLyBEUElfQWxpYXNUeXBlLCBoYXZpbmcgdHlwZSBBbGlhc1R5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIkFsaWFzVHlwZVwiXSA9IFwiYWxpYXNUeXBlXCI7XG4gICAgLy8gRFBJX0RTT0RpbWVuc2lvblNvcnRPcmRlciwgaGF2aW5nIHR5cGUgRGF0YVNvdXJjZU9yZGVyXG4gICAgUGFyYW1ldGVySWRbXCJEU09EaW1lbnNpb25Tb3J0T3JkZXJcIl0gPSBcImRzb0RpbWVuc2lvblNvcnRPcmRlclwiO1xuICAgIC8vIERQSV9EU09NZWFzdXJlU29ydE9yZGVyLCBoYXZpbmcgdHlwZSBEYXRhU291cmNlT3JkZXJcbiAgICBQYXJhbWV0ZXJJZFtcIkRTT01lYXN1cmVTb3J0T3JkZXJcIl0gPSBcImRzb01lYXN1cmVTb3J0T3JkZXJcIjtcbiAgICAvLyBEUElfRFNPU29ydE9yZGVyLCBoYXZpbmcgdHlwZSBEYXRhU291cmNlT3JkZXJcbiAgICBQYXJhbWV0ZXJJZFtcIkRTT1NvcnRPcmRlclwiXSA9IFwiZHNvU29ydE9yZGVyXCI7XG4gICAgLy8gRFBJX1ZUQWdnVHlwZSwgaGF2aW5nIHR5cGUgVlRBZ2dUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJWVEFnZ1R5cGVcIl0gPSBcInZ0QWdncmVnYXRpb25cIjtcbiAgICAvLyBEUElfRmllbGRUeXBlSWNvblNldCwgaGF2aW5nIHR5cGUgRmllbGRUeXBlSWNvblNldFxuICAgIFBhcmFtZXRlcklkW1wiRmllbGRUeXBlSWNvblNldFwiXSA9IFwiZmllbGRJY29uU2V0XCI7XG4gICAgLy8gRFBJX1Zpc3VhbFBhcnQsIGhhdmluZyB0eXBlIFZpc3VhbFBhcnRcbiAgICBQYXJhbWV0ZXJJZFtcIlZpc3VhbFBhcnRcIl0gPSBcInZpc3VhbFBhcnRcIjtcbiAgICAvLyBEUElfRGVmYXVsdE1hcFRvb2xFbnVtLCBoYXZpbmcgdHlwZSBNYXBUb29sU2VsZWN0aW9uXG4gICAgUGFyYW1ldGVySWRbXCJEZWZhdWx0TWFwVG9vbEVudW1cIl0gPSBcImRlZmF1bHRNYXBUb29sRW51bVwiO1xuICAgIC8vIERQSV9EZWZhdWx0TWFwVW5pdEVudW0sIGhhdmluZyB0eXBlIE1hcFVuaXRTZWxlY3Rpb25FbnVtXG4gICAgUGFyYW1ldGVySWRbXCJEZWZhdWx0TWFwVW5pdEVudW1cIl0gPSBcImRlZmF1bHRNYXBVbml0RW51bVwiO1xuICAgIC8vIERQSV9TY2VuZU1vZGVsRGV0YWlsLCBoYXZpbmcgdHlwZSBEZXRhaWxcbiAgICBQYXJhbWV0ZXJJZFtcIlNjZW5lTW9kZWxEZXRhaWxcIl0gPSBcInNjZW5lTW9kZWxEZXRhaWxFbnVtXCI7XG4gICAgLy8gRFBJX1NjZW5lTW9kZWxIaXRUeXBlLCBoYXZpbmcgdHlwZSBIaXRUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJTY2VuZU1vZGVsSGl0VHlwZVwiXSA9IFwic2NlbmVNb2RlbEhpdFR5cGVcIjtcbiAgICAvLyBEUElfSGl0VGVzdFN0eWxlLCBoYXZpbmcgdHlwZSBIaXRUZXN0U3R5bGVcbiAgICBQYXJhbWV0ZXJJZFtcIkhpdFRlc3RTdHlsZVwiXSA9IFwiaGl0VGVzdFN0eWxlXCI7XG4gICAgLy8gRFBJX01hcmtTdGF0ZSwgaGF2aW5nIHR5cGUgTWFya1N0YXRlXG4gICAgUGFyYW1ldGVySWRbXCJNYXJrU3RhdGVcIl0gPSBcIm1hcmtTdGF0ZVwiO1xuICAgIC8vIERQSV9TaGVldFR5cGUsIGhhdmluZyB0eXBlIFNoZWV0VHlwZVxuICAgIFBhcmFtZXRlcklkW1wiU2hlZXRUeXBlXCJdID0gXCJzaGVldFR5cGVcIjtcbiAgICAvLyBEUElfRHJhZ1NvdXJjZSwgaGF2aW5nIHR5cGUgRHJhZ0Ryb3BUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJEcmFnU291cmNlXCJdID0gXCJkcmFnU291cmNlXCI7XG4gICAgLy8gRFBJX0Ryb3BUYXJnZXQsIGhhdmluZyB0eXBlIERyYWdEcm9wVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiRHJvcFRhcmdldFwiXSA9IFwiZHJvcFRhcmdldFwiO1xuICAgIC8vIERQSV9TaGVsZkRyb3BBY3Rpb24sIGhhdmluZyB0eXBlIFNoZWxmRHJvcEFjdGlvblxuICAgIFBhcmFtZXRlcklkW1wiU2hlbGZEcm9wQWN0aW9uXCJdID0gXCJzaGVsZkRyb3BBY3Rpb25cIjtcbiAgICAvLyBEUElfU2hlbGZEcm9wQ29udGV4dCwgaGF2aW5nIHR5cGUgU2hlbGZEcm9wQ29udGV4dFxuICAgIFBhcmFtZXRlcklkW1wiU2hlbGZEcm9wQ29udGV4dFwiXSA9IFwic2hlbGZEcm9wQ29udGV4dFwiO1xuICAgIC8vIERQSV9GaWx0ZXJTZWxlY3Rpb25UcmFja2luZywgaGF2aW5nIHR5cGUgU2VsZWN0aW9uVHJhY2tpbmdcbiAgICBQYXJhbWV0ZXJJZFtcIkZpbHRlclNlbGVjdGlvblRyYWNraW5nXCJdID0gXCJmaWx0ZXJTZWxlY3Rpb25UcmFja2luZ1wiO1xuICAgIC8vIERQSV9GaWx0ZXJVcGRhdGVUeXBlLCBoYXZpbmcgdHlwZSBGaWx0ZXJVcGRhdGVUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJGaWx0ZXJVcGRhdGVUeXBlXCJdID0gXCJmaWx0ZXJVcGRhdGVUeXBlXCI7XG4gICAgLy8gRFBJX0ZpbHRlclVwZGF0ZVF1YWxpZmllclR5cGUsIGhhdmluZyB0eXBlIEZpbHRlclVwZGF0ZVF1YWxpZmllclR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIkZpbHRlclVwZGF0ZVF1YWxpZmllclR5cGVcIl0gPSBcImZpbHRlclVwZGF0ZVF1YWxpZmllclR5cGVcIjtcbiAgICAvLyBEUElfUGFyYW1ldGVyRXJyb3IsIGhhdmluZyB0eXBlIFBhcmFtZXRlckVycm9yXG4gICAgUGFyYW1ldGVySWRbXCJQYXJhbWV0ZXJFcnJvclwiXSA9IFwicGFyYW1ldGVyRXJyb3JcIjtcbiAgICAvLyBEUElfU2VsZWN0aW9uVHlwZSwgaGF2aW5nIHR5cGUgU2VsZWN0aW9uVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiU2VsZWN0aW9uVHlwZVwiXSA9IFwic2VsZWN0aW9uVHlwZVwiO1xuICAgIC8vIERQSV9TZWxlY3Rpb25VcGRhdGVUeXBlLCBoYXZpbmcgdHlwZSBTZWxlY3Rpb25VcGRhdGVUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJTZWxlY3Rpb25VcGRhdGVUeXBlXCJdID0gXCJzZWxlY3Rpb25VcGRhdGVUeXBlXCI7XG4gICAgLy8gRFBJX1NlbGVjdE9wdGlvbnMsIGhhdmluZyB0eXBlIFNlbGVjdE9wdGlvbnNcbiAgICBQYXJhbWV0ZXJJZFtcIlNlbGVjdE9wdGlvbnNcIl0gPSBcInNlbGVjdE9wdGlvbnNcIjtcbiAgICAvLyBEUElfV2hpdGVzcGFjZVNlbGVjdGlvbkJlaGF2aW9yLCBoYXZpbmcgdHlwZSBXaGl0ZXNwYWNlU2VsZWN0aW9uQmVoYXZpb3JcbiAgICBQYXJhbWV0ZXJJZFtcIldoaXRlc3BhY2VTZWxlY3Rpb25CZWhhdmlvclwiXSA9IFwid2hpdGVzcGFjZVNlbGVjdGlvbkJlaGF2aW9yXCI7XG4gICAgLy8gRFBJX0F4aXNPcmllbnRhdGlvbiwgaGF2aW5nIHR5cGUgT3JpZW50YXRpb25cbiAgICBQYXJhbWV0ZXJJZFtcIkF4aXNPcmllbnRhdGlvblwiXSA9IFwiYXhpc09yaWVudGF0aW9uXCI7XG4gICAgLy8gRFBJX0RlY2ltYWxNb2RlLCBoYXZpbmcgdHlwZSBEZWNpbWFsTW9kZVxuICAgIFBhcmFtZXRlcklkW1wiRGVjaW1hbE1vZGVcIl0gPSBcImRlY2ltYWxNb2RlXCI7XG4gICAgLy8gRFBJX0FjdGl2YXRpb25NZXRob2QsIGhhdmluZyB0eXBlIEFjdGl2YXRpb25NZXRob2RcbiAgICBQYXJhbWV0ZXJJZFtcIkFjdGl2YXRpb25NZXRob2RcIl0gPSBcImFjdGl2YXRpb25cIjtcbiAgICAvLyBEUElfU291cmNlVHlwZSwgaGF2aW5nIHR5cGUgU291cmNlVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiU291cmNlVHlwZVwiXSA9IFwic291cmNlVHlwZVwiO1xuICAgIC8vIERQSV9PbkNsZWFyLCBoYXZpbmcgdHlwZSBPbkNsZWFyXG4gICAgUGFyYW1ldGVySWRbXCJPbkNsZWFyXCJdID0gXCJvbkNsZWFyXCI7XG4gICAgLy8gRFBJX01lcmdlT3JTcGxpdCwgaGF2aW5nIHR5cGUgTWVyZ2VPclNwbGl0XG4gICAgUGFyYW1ldGVySWRbXCJNZXJnZU9yU3BsaXRcIl0gPSBcIm1lcmdlT3JTcGxpdFwiO1xuICAgIC8vIERQSV9GaWx0ZXJNb2RlLCBoYXZpbmcgdHlwZSBGaWx0ZXJNb2RlXG4gICAgUGFyYW1ldGVySWRbXCJGaWx0ZXJNb2RlXCJdID0gXCJmaWx0ZXJNb2RlXCI7XG4gICAgLy8gRFBJX0ZpbHRlclR5cGUsIGhhdmluZyB0eXBlIEZpbHRlclR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIkZpbHRlclR5cGVcIl0gPSBcImZpbHRlclR5cGVcIjtcbiAgICAvLyBEUElfWm9uZVR5cGUsIGhhdmluZyB0eXBlIFpvbmVUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJab25lVHlwZVwiXSA9IFwiem9uZVR5cGVcIjtcbiAgICAvLyBEUElfWm9uZUxheW91dFR5cGUsIGhhdmluZyB0eXBlIFpvbmVMYXlvdXRUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJab25lTGF5b3V0VHlwZVwiXSA9IFwiem9uZUxheW91dFR5cGVcIjtcbiAgICAvLyBEUElfUXVpY2tUYWJsZUNhbGNUeXBlLCBoYXZpbmcgdHlwZSBRdWlja1RhYmxlQ2FsY0NvbW1hbmRUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJRdWlja1RhYmxlQ2FsY1R5cGVcIl0gPSBcInF1aWNrVGFibGVDYWxjVHlwZVwiO1xuICAgIC8vIERQSV9UYWJsZUNhbGNDb21tYW5kVHlwZSwgaGF2aW5nIHR5cGUgVGFibGVDYWxjQ29tbWFuZFR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIlRhYmxlQ2FsY0NvbW1hbmRUeXBlXCJdID0gXCJ0YWJsZUNhbGNDb21tYW5kVHlwZVwiO1xuICAgIC8vIERQSV9UYWJsZUNhbGNBZGRyZXNzVHlwZSwgaGF2aW5nIHR5cGUgVGFibGVDYWxjQWRkcmVzc0NvbW1hbmRUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJUYWJsZUNhbGNBZGRyZXNzVHlwZVwiXSA9IFwidGFibGVDYWxjQWRkcmVzc1R5cGVcIjtcbiAgICAvLyBEUElfTWFya0xheW91dFByaW1pdGl2ZSwgaGF2aW5nIHR5cGUgUHJpbWl0aXZlXG4gICAgUGFyYW1ldGVySWRbXCJNYXJrTGF5b3V0UHJpbWl0aXZlXCJdID0gXCJtYXJrTGF5b3V0UHJpbWl0aXZlXCI7XG4gICAgLy8gRFBJX01hcmtMYXlvdXRWaXpUeXBlLCBoYXZpbmcgdHlwZSBWaXpUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJNYXJrTGF5b3V0Vml6VHlwZVwiXSA9IFwibWFya0xheW91dFZpelR5cGVcIjtcbiAgICAvLyBEUElfTWFya0FsaWdubWVudCwgaGF2aW5nIHR5cGUgTWFya0FsaWdubWVudFxuICAgIFBhcmFtZXRlcklkW1wiTWFya0FsaWdubWVudFwiXSA9IFwibWFya0FsaWdubWVudFwiO1xuICAgIC8vIERQSV9Nb2RpZnlab25lWk9yZGVyVHlwZSwgaGF2aW5nIHR5cGUgTW9kaWZ5Wm9uZVpPcmRlckNvbW1hbmRUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJNb2RpZnlab25lWk9yZGVyVHlwZVwiXSA9IFwibW9kaWZ5Wm9uZVpPcmRlclR5cGVcIjtcbiAgICAvLyBEUElfVGV4dFJlZ2lvbkhBbGlnbiwgaGF2aW5nIHR5cGUgVGV4dFJlZ2lvbkhBbGlnblxuICAgIFBhcmFtZXRlcklkW1wiVGV4dFJlZ2lvbkhBbGlnblwiXSA9IFwiaGFsaWduXCI7XG4gICAgLy8gRFBJX1RleHRSZWdpb25WQWxpZ24sIGhhdmluZyB0eXBlIFRleHRSZWdpb25WQWxpZ25cbiAgICBQYXJhbWV0ZXJJZFtcIlRleHRSZWdpb25WQWxpZ25cIl0gPSBcInZhbGlnblwiO1xuICAgIC8vIERQSV9QYXRoRWxlbWVudCwgaGF2aW5nIHR5cGUgUGF0aEVsZW1lbnRcbiAgICBQYXJhbWV0ZXJJZFtcIlBhdGhFbGVtZW50XCJdID0gXCJwYXRoRWxlbWVudFwiO1xuICAgIC8vIERQSV9QYXRoRWxlbWVudHMsIGhhdmluZyB0eXBlIFBhdGhFbGVtZW50W11cbiAgICBQYXJhbWV0ZXJJZFtcIlBhdGhFbGVtZW50c1wiXSA9IFwicGF0aEVsZW1lbnRzXCI7XG4gICAgLy8gRFBJX1JlbmRlck1vZGUsIGhhdmluZyB0eXBlIFJlbmRlck1vZGVcbiAgICBQYXJhbWV0ZXJJZFtcIlJlbmRlck1vZGVcIl0gPSBcInJlbmRlck1vZGVcIjtcbiAgICAvLyBEUElfRm9udFN0eWxlLCBoYXZpbmcgdHlwZSBUYWJsZWF1Rm9udFN0eWxlXG4gICAgUGFyYW1ldGVySWRbXCJGb250U3R5bGVcIl0gPSBcImZvbnRTdHlsZVwiO1xuICAgIC8vIERQSV9Gb250V2VpZ2h0LCBoYXZpbmcgdHlwZSBGb250V2VpZ2h0XG4gICAgUGFyYW1ldGVySWRbXCJGb250V2VpZ2h0XCJdID0gXCJmb250V2VpZ2h0XCI7XG4gICAgLy8gRFBJX1RleHREZWNvcmF0aW9uLCBoYXZpbmcgdHlwZSBUZXh0RGVjb3JhdGlvblxuICAgIFBhcmFtZXRlcklkW1wiVGV4dERlY29yYXRpb25cIl0gPSBcInRleHREZWNvcmF0aW9uXCI7XG4gICAgLy8gRFBJX0JvcmRlclN0eWxlLCBoYXZpbmcgdHlwZSBCb3JkZXJTdHlsZVxuICAgIFBhcmFtZXRlcklkW1wiQm9yZGVyU3R5bGVcIl0gPSBcImJvcmRlclN0eWxlXCI7XG4gICAgLy8gRFBJX0JvcmRlclN0eWxlVG9wLCBoYXZpbmcgdHlwZSBCb3JkZXJTdHlsZVxuICAgIFBhcmFtZXRlcklkW1wiQm9yZGVyU3R5bGVUb3BcIl0gPSBcImJvcmRlclN0eWxlVG9wXCI7XG4gICAgLy8gRFBJX0JvcmRlclN0eWxlUmlnaHQsIGhhdmluZyB0eXBlIEJvcmRlclN0eWxlXG4gICAgUGFyYW1ldGVySWRbXCJCb3JkZXJTdHlsZVJpZ2h0XCJdID0gXCJib3JkZXJTdHlsZVJpZ2h0XCI7XG4gICAgLy8gRFBJX0JvcmRlclN0eWxlQm90dG9tLCBoYXZpbmcgdHlwZSBCb3JkZXJTdHlsZVxuICAgIFBhcmFtZXRlcklkW1wiQm9yZGVyU3R5bGVCb3R0b21cIl0gPSBcImJvcmRlclN0eWxlQm90dG9tXCI7XG4gICAgLy8gRFBJX0JvcmRlclN0eWxlTGVmdCwgaGF2aW5nIHR5cGUgQm9yZGVyU3R5bGVcbiAgICBQYXJhbWV0ZXJJZFtcIkJvcmRlclN0eWxlTGVmdFwiXSA9IFwiYm9yZGVyU3R5bGVMZWZ0XCI7XG4gICAgLy8gRFBJX0Zsb2F0aW5nVG9vbGJhclZpc2liaWxpdHksIGhhdmluZyB0eXBlIEZsb2F0aW5nVG9vbGJhclZpc2liaWxpdHlcbiAgICBQYXJhbWV0ZXJJZFtcIkZsb2F0aW5nVG9vbGJhclZpc2liaWxpdHlcIl0gPSBcImZsb2F0aW5nVG9vbGJhclZpc2liaWxpdHlcIjtcbiAgICAvLyBEUElfR2VvU2VhcmNoVmlzaWJpbGl0eSwgaGF2aW5nIHR5cGUgR2VvU2VhcmNoVmlzaWJpbGl0eVxuICAgIFBhcmFtZXRlcklkW1wiR2VvU2VhcmNoVmlzaWJpbGl0eVwiXSA9IFwiZ2VvZ3JhcGhpY1NlYXJjaFZpc2liaWxpdHlcIjtcbiAgICAvLyBEUElfTWFwU2NhbGVWaXNpYmlsaXR5LCBoYXZpbmcgdHlwZSBNYXBTY2FsZVZpc2liaWxpdHlcbiAgICBQYXJhbWV0ZXJJZFtcIk1hcFNjYWxlVmlzaWJpbGl0eVwiXSA9IFwibWFwU2NhbGVWaXNpYmlsaXR5XCI7XG4gICAgLy8gRFBJX1Zpek5hdmlnYXRpb25TZXR0aW5nLCBoYXZpbmcgdHlwZSBWaXpOYXZpZ2F0aW9uU2V0dGluZ1xuICAgIFBhcmFtZXRlcklkW1wiVml6TmF2aWdhdGlvblNldHRpbmdcIl0gPSBcInZpek5hdmlnYXRpb25TZXR0aW5nXCI7XG4gICAgLy8gRFBJX0F1dG9EcmlsbFZpc2liaWxpdHksIGhhdmluZyB0eXBlIEF1dG9EcmlsbFZpc2liaWxpdHlcbiAgICBQYXJhbWV0ZXJJZFtcIkF1dG9EcmlsbFZpc2liaWxpdHlcIl0gPSBcImF1dG9EcmlsbFZpc2liaWxpdHlcIjtcbiAgICAvLyBEUElfQ2xpZW50VUlNZXRyaWNUeXBlLCBoYXZpbmcgdHlwZSBDbGllbnRVSU1ldHJpY1R5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIkNsaWVudFVJTWV0cmljVHlwZVwiXSA9IFwiY2xpZW50VWlNZXRyaWNUeXBlXCI7XG4gICAgLy8gRFBJX1NoZWV0U2Nyb2xsRGlyZWN0aW9uLCBoYXZpbmcgdHlwZSBTaGVldFNjcm9sbERpcmVjdGlvblxuICAgIFBhcmFtZXRlcklkW1wiU2hlZXRTY3JvbGxEaXJlY3Rpb25cIl0gPSBcInNoZWV0U2Nyb2xsRGlyZWN0aW9uXCI7XG4gICAgLy8gRFBJX1NpemVNb2RlLCBoYXZpbmcgdHlwZSBTaXplTW9kZVxuICAgIFBhcmFtZXRlcklkW1wiU2l6ZU1vZGVcIl0gPSBcInNpemVNb2RlXCI7XG4gICAgLy8gRFBJX1BlcnNwZWN0aXZlQWdncmVnYXRlLCBoYXZpbmcgdHlwZSBQZXJzcGVjdGl2ZUFnZ3JlZ2F0ZVxuICAgIFBhcmFtZXRlcklkW1wiUGVyc3BlY3RpdmVBZ2dyZWdhdGVcIl0gPSBcInBlcnNwZWN0aXZlQWdncmVnYXRpb25cIjtcbiAgICAvLyBEUElfU3R5bGVBdHRyaWJ1dGUsIGhhdmluZyB0eXBlIFN0eWxlQXR0cmlidXRlXG4gICAgUGFyYW1ldGVySWRbXCJTdHlsZUF0dHJpYnV0ZVwiXSA9IFwic3R5bGVBdHRyaWJ1dGVcIjtcbiAgICAvLyBEUElfU3R5bGVBdHRyaWJ1dGVzLCBoYXZpbmcgdHlwZSBTdHlsZUF0dHJpYnV0ZVtdXG4gICAgUGFyYW1ldGVySWRbXCJTdHlsZUF0dHJpYnV0ZXNcIl0gPSBcInN0eWxlQXR0cmlidXRlc1wiO1xuICAgIC8vIERQSV9TdHlsZUVsZW1lbnQsIGhhdmluZyB0eXBlIFN0eWxlRWxlbWVudFxuICAgIFBhcmFtZXRlcklkW1wiU3R5bGVFbGVtZW50XCJdID0gXCJzdHlsZUVsZW1lbnRcIjtcbiAgICAvLyBEUElfU3R5bGVEYXRhQ2xhc3MsIGhhdmluZyB0eXBlIFN0eWxlRGF0YUNsYXNzXG4gICAgUGFyYW1ldGVySWRbXCJTdHlsZURhdGFDbGFzc1wiXSA9IFwic3R5bGVDbGFzc1wiO1xuICAgIC8vIERQSV9TdHlsZUZpZWxkU2NvcGUsIGhhdmluZyB0eXBlIFN0eWxlRmllbGRTY29wZVxuICAgIFBhcmFtZXRlcklkW1wiU3R5bGVGaWVsZFNjb3BlXCJdID0gXCJzdHlsZVNjb3BlXCI7XG4gICAgLy8gRFBJX0Zvcm1hdENvbnRyb2xUeXBlLCBoYXZpbmcgdHlwZSBGb3JtYXRDb250cm9sVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiRm9ybWF0Q29udHJvbFR5cGVcIl0gPSBcImZvcm1hdFR5cGVcIjtcbiAgICAvLyBEUElfTGluZUludGVycG9sYXRpb25Nb2RlLCBoYXZpbmcgdHlwZSBMaW5lSW50ZXJwb2xhdGlvbk1vZGVcbiAgICBQYXJhbWV0ZXJJZFtcIkxpbmVJbnRlcnBvbGF0aW9uTW9kZVwiXSA9IFwibGluZUludGVycG9sYXRpb25Nb2RlXCI7XG4gICAgLy8gRFBJX0xpbmVNYXJrZXJQb3NpdGlvbiwgaGF2aW5nIHR5cGUgTGluZU1hcmtlclBvc2l0aW9uXG4gICAgUGFyYW1ldGVySWRbXCJMaW5lTWFya2VyUG9zaXRpb25cIl0gPSBcImxpbmVNYXJrZXJQb3NpdGlvblwiO1xuICAgIC8vIERQSV9NYXJrZXJzTW9kZSwgaGF2aW5nIHR5cGUgTWFya01hcmtlcnNNb2RlXG4gICAgUGFyYW1ldGVySWRbXCJNYXJrZXJzTW9kZVwiXSA9IFwibWFya2Vyc01vZGVcIjtcbiAgICAvLyBEUElfQXBwQ29uZmlnRW51bSwgaGF2aW5nIHR5cGUgQXBwQ29uZmlnRW51bVxuICAgIFBhcmFtZXRlcklkW1wiQXBwQ29uZmlnRW51bVwiXSA9IFwiYXBwQ29uZmlnRW51bVwiO1xuICAgIC8vIERQSV9Db2xvclBhbGV0dGVUeXBlLCBoYXZpbmcgdHlwZSBDb2xvclBhbGV0dGVUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJDb2xvclBhbGV0dGVUeXBlXCJdID0gXCJjb2xvclBhbGV0dGVUeXBlXCI7XG4gICAgLy8gRFBJX0V4dHJhY3RUeXBlLCBoYXZpbmcgdHlwZSBFeHRyYWN0VHlwZVxuICAgIFBhcmFtZXRlcklkW1wiRXh0cmFjdFR5cGVcIl0gPSBcImV4dHJhY3RUeXBlXCI7XG4gICAgLy8gRFBJX0FjdGl2aXR5RGlzcG9zaXRpb24sIGhhdmluZyB0eXBlIEFjdGl2aXR5RGlzcG9zaXRpb25cbiAgICBQYXJhbWV0ZXJJZFtcIkFjdGl2aXR5RGlzcG9zaXRpb25cIl0gPSBcImFjdGl2aXR5RGlzcG9zaXRpb25cIjtcbiAgICAvLyBEUElfQWN0aXZpdHlSZXN1bHQsIGhhdmluZyB0eXBlIEFjdGl2aXR5UmVzdWx0XG4gICAgUGFyYW1ldGVySWRbXCJBY3Rpdml0eVJlc3VsdFwiXSA9IFwiYWN0aXZpdHlSZXN1bHRcIjtcbiAgICAvLyBEUElfVG9vbHRpcE1vZGUsIGhhdmluZyB0eXBlIFRvb2x0aXBNb2RlXG4gICAgUGFyYW1ldGVySWRbXCJUb29sdGlwTW9kZVwiXSA9IFwidG9vbHRpcE1vZGVcIjtcbiAgICAvLyBEUElfUnVudGltZU91dHB1dCwgaGF2aW5nIHR5cGUgUnVudGltZU91dHB1dFxuICAgIFBhcmFtZXRlcklkW1wiUnVudGltZU91dHB1dFwiXSA9IFwicnVudGltZU91dHB1dFwiO1xuICAgIC8vIERQSV9BbmFseXRpY3NPYmplY3RUeXBlLCBoYXZpbmcgdHlwZSBBbmFseXRpY3NPYmplY3RUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJBbmFseXRpY3NPYmplY3RUeXBlXCJdID0gXCJhbmFseXRpY3NPYmplY3RUeXBlXCI7XG4gICAgLy8gRFBJX1VJQXV0b21hdGlvblN0YXR1cywgaGF2aW5nIHR5cGUgVUlBdXRvbWF0aW9uQ29tbWFuZFN0YXR1c1xuICAgIFBhcmFtZXRlcklkW1wiVUlBdXRvbWF0aW9uU3RhdHVzXCJdID0gXCJ1aUF1dG9tYXRpb25TdGF0dXNcIjtcbiAgICAvLyBEUElfVGFibGVWaWV3RGF0YVR5cGUsIGhhdmluZyB0eXBlIFRhYmxlVmlld0RhdGFUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJUYWJsZVZpZXdEYXRhVHlwZVwiXSA9IFwidGFibGVWaWV3ZXJEYXRhVHlwZVwiO1xuICAgIC8vIERQSV9Vbml0c0Zvcm1hdCwgaGF2aW5nIHR5cGUgVW5pdHNGb3JtYXRFbnVtXG4gICAgUGFyYW1ldGVySWRbXCJVbml0c0Zvcm1hdFwiXSA9IFwidW5pdHNGb3JtYXRcIjtcbiAgICAvLyBEUElfRmlsdGVyTGltaXRUeXBlLCBoYXZpbmcgdHlwZSBMaW1pdFR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIkZpbHRlckxpbWl0VHlwZVwiXSA9IFwiZmlsdGVyTGltaXRUeXBlXCI7XG4gICAgLy8gRFBJX0Rpc3RyaWJ1dGlvblNlbGVjdGVkVHlwZSwgaGF2aW5nIHR5cGUgRGlzdHJpYnV0aW9uVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiRGlzdHJpYnV0aW9uU2VsZWN0ZWRUeXBlXCJdID0gXCJkaXN0cmlidXRpb25TZWxlY3RlZFR5cGVcIjtcbiAgICAvLyBEUElfRGlzdHJpYnV0aW9uVHlwZSwgaGF2aW5nIHR5cGUgRGlzdHJpYnV0aW9uVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiRGlzdHJpYnV0aW9uVHlwZVwiXSA9IFwiZGlzdHJpYnV0aW9uVHlwZVwiO1xuICAgIC8vIERQSV9UcmFuc2xhdGVkRGlzdHJpYnV0aW9uVHlwZSwgaGF2aW5nIHR5cGUgVHJhbnNsYXRlZERpc3RyaWJ1dGlvblR5cGVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlRyYW5zbGF0ZWREaXN0cmlidXRpb25UeXBlXCJdID0gXCJ0cmFuc2xhdGVkRGlzdHJpYnV0aW9uVHlwZVwiO1xuICAgIC8vIERQSV9UcmFuc2xhdGVkRGlzdHJpYnV0aW9uVHlwZXMsIGhhdmluZyB0eXBlIFRyYW5zbGF0ZWREaXN0cmlidXRpb25UeXBlUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlRyYW5zbGF0ZWREaXN0cmlidXRpb25UeXBlc1wiXSA9IFwidHJhbnNsYXRlZERpc3RyaWJ1dGlvblR5cGVzXCI7XG4gICAgLy8gRFBJX1JlZkxpbmVGb3JtdWxhR3JvdXAsIGhhdmluZyB0eXBlIEZvcm11bGFHcm91cFxuICAgIFBhcmFtZXRlcklkW1wiUmVmTGluZUZvcm11bGFHcm91cFwiXSA9IFwicmVmbGluZUZvcm11bGFHcm91cFwiO1xuICAgIC8vIERQSV9SZWZlcmVuY2VMaW5lU2NvcGVUeXBlLCBoYXZpbmcgdHlwZSBTY29wZVR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIlJlZmVyZW5jZUxpbmVTY29wZVR5cGVcIl0gPSBcInJlZmVyZW5jZUxpbmVTY29wZVR5cGVcIjtcbiAgICAvLyBEUElfU3REZXZUeXBlLCBoYXZpbmcgdHlwZSBTdERldlR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIlN0RGV2VHlwZVwiXSA9IFwic3RkZXZUeXBlXCI7XG4gICAgLy8gRFBJX1Nob3dCb3VuZHMsIGhhdmluZyB0eXBlIFNob3dCb3VuZHNcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3dCb3VuZHNcIl0gPSBcInNob3dCb3VuZHNcIjtcbiAgICAvLyBEUElfQm94cGxvdFdoaXNrZXJUeXBlLCBoYXZpbmcgdHlwZSBCb3hwbG90V2hpc2tlclR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIkJveHBsb3RXaGlza2VyVHlwZVwiXSA9IFwiYm94cGxvdFdoaXNrZXJUeXBlXCI7XG4gICAgLy8gRFBJX1JlZmVyZW5jZUxpbmVMYWJlbFR5cGUsIGhhdmluZyB0eXBlIExhYmVsVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiUmVmZXJlbmNlTGluZUxhYmVsVHlwZVwiXSA9IFwicmVmZXJlbmNlTGluZUxhYmVsVHlwZVwiO1xuICAgIC8vIERQSV9QYWlyZWRSZWZlcmVuY2VMaW5lTGFiZWxUeXBlLCBoYXZpbmcgdHlwZSBMYWJlbFR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIlBhaXJlZFJlZmVyZW5jZUxpbmVMYWJlbFR5cGVcIl0gPSBcInBhaXJlZFJlZmVyZW5jZUxpbmVMYWJlbFR5cGVcIjtcbiAgICAvLyBEUElfQ29uZmlkZW5jZUludGVydmFsU2VsZWN0ZWRTdGF0ZSwgaGF2aW5nIHR5cGUgQ29uZmlkZW5jZUludGVydmFsU3RhdGVcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbmZpZGVuY2VJbnRlcnZhbFNlbGVjdGVkU3RhdGVcIl0gPSBcImNvbmZpZGVuY2VJbnRlcnZhbFNlbGVjdGVkU3RhdGVcIjtcbiAgICAvLyBEUElfQ29uZmlkZW5jZUludGVydmFsU3RhdGUsIGhhdmluZyB0eXBlIENvbmZpZGVuY2VJbnRlcnZhbFN0YXRlXG4gICAgUGFyYW1ldGVySWRbXCJDb25maWRlbmNlSW50ZXJ2YWxTdGF0ZVwiXSA9IFwiY29uZmlkZW5jZUludGVydmFsU3RhdGVcIjtcbiAgICAvLyBEUElfVHJhbnNsYXRlZExhYmVsVHlwZSwgaGF2aW5nIHR5cGUgVHJhbnNsYXRlZExhYmVsVHlwZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVHJhbnNsYXRlZExhYmVsVHlwZVwiXSA9IFwidHJhbnNsYXRlZExhYmVsVHlwZVwiO1xuICAgIC8vIERQSV9SZWZlcmVuY2VMaW5lVmFsaWRMYWJlbFR5cGVzLCBoYXZpbmcgdHlwZSBUcmFuc2xhdGVkTGFiZWxUeXBlUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlJlZmVyZW5jZUxpbmVWYWxpZExhYmVsVHlwZXNcIl0gPSBcInZhbGlkUmVmZXJlbmNlTGluZUxhYmVsVHlwZXNcIjtcbiAgICAvLyBEUElfUmVmZXJlbmNlTGluZUZvcm11bGFUeXBlLCBoYXZpbmcgdHlwZSBGb3JtdWxhVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiUmVmZXJlbmNlTGluZUZvcm11bGFUeXBlXCJdID0gXCJyZWZlcmVuY2VMaW5lRm9ybXVsYVR5cGVcIjtcbiAgICAvLyBEUElfUGFpcmVkUmVmZXJlbmNlTGluZUZvcm11bGFUeXBlLCBoYXZpbmcgdHlwZSBGb3JtdWxhVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiUGFpcmVkUmVmZXJlbmNlTGluZUZvcm11bGFUeXBlXCJdID0gXCJwYWlyZWRSZWZlcmVuY2VMaW5lRm9ybXVsYVR5cGVcIjtcbiAgICAvLyBEUElfVHJhbnNsYXRlZEZvcm11bGFUeXBlLCBoYXZpbmcgdHlwZSBUcmFuc2xhdGVkRm9ybXVsYVR5cGVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlRyYW5zbGF0ZWRGb3JtdWxhVHlwZVwiXSA9IFwidHJhbnNsYXRlZEZvcm11bGFUeXBlXCI7XG4gICAgLy8gRFBJX1JlZmVyZW5jZUxpbmVWYWxpZEZvcm11bGFUeXBlcywgaGF2aW5nIHR5cGUgVHJhbnNsYXRlZEZvcm11bGFUeXBlUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlJlZmVyZW5jZUxpbmVWYWxpZEZvcm11bGFUeXBlc1wiXSA9IFwidmFsaWRSZWZlcmVuY2VMaW5lRm9ybXVsYVR5cGVzXCI7XG4gICAgLy8gRFBJX1JlZmVyZW5jZUxpbmVWYWxpZFBhaXJlZEZvcm11bGFUeXBlcywgaGF2aW5nIHR5cGUgVHJhbnNsYXRlZEZvcm11bGFUeXBlUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlJlZmVyZW5jZUxpbmVWYWxpZFBhaXJlZEZvcm11bGFUeXBlc1wiXSA9IFwidmFsaWRSZWZlcmVuY2VMaW5lUGFpcmVkRm9ybXVsYVR5cGVzXCI7XG4gICAgLy8gRFBJX1RyYW5zbGF0ZWRDb25maWRlbmNlSW50ZXJ2YWxTdGF0ZSwgaGF2aW5nIHR5cGUgVHJhbnNsYXRlZENvbmZpZGVuY2VJbnRlcnZhbFN0YXRlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJUcmFuc2xhdGVkQ29uZmlkZW5jZUludGVydmFsU3RhdGVcIl0gPSBcInRyYW5zbGF0ZWRDb25maWRlbmNlSW50ZXJ2YWxTdGF0ZVwiO1xuICAgIC8vIERQSV9UcmFuc2xhdGVkQ29uZmlkZW5jZUludGVydmFsU3RhdGVzLCBoYXZpbmcgdHlwZSBUcmFuc2xhdGVkQ29uZmlkZW5jZUludGVydmFsU3RhdGVQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiVHJhbnNsYXRlZENvbmZpZGVuY2VJbnRlcnZhbFN0YXRlc1wiXSA9IFwidHJhbnNsYXRlZENvbmZpZGVuY2VJbnRlcnZhbFN0YXRlc1wiO1xuICAgIC8vIERQSV9UcmFuc2xhdGVkU3REZXZUeXBlLCBoYXZpbmcgdHlwZSBUcmFuc2xhdGVkU3REZXZUeXBlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJUcmFuc2xhdGVkU3REZXZUeXBlXCJdID0gXCJ0cmFuc2xhdGVkU3RkZXZUeXBlXCI7XG4gICAgLy8gRFBJX1RyYW5zbGF0ZWRTdERldlR5cGVzLCBoYXZpbmcgdHlwZSBUcmFuc2xhdGVkU3REZXZUeXBlUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlRyYW5zbGF0ZWRTdERldlR5cGVzXCJdID0gXCJ0cmFuc2xhdGVkU3RkZXZUeXBlc1wiO1xuICAgIC8vIERQSV9SZWZlcmVuY2VMaW5lTE9EQ2FsY1R5cGUsIGhhdmluZyB0eXBlIExPRENhbGNUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJSZWZlcmVuY2VMaW5lTE9EQ2FsY1R5cGVcIl0gPSBcInJlZmVyZW5jZUxpbmVMb2RDYWxjVHlwZVwiO1xuICAgIC8vIERQSV9WYWx1ZURvbWFpblR5cGUsIGhhdmluZyB0eXBlIFZhbHVlRG9tYWluVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiVmFsdWVEb21haW5UeXBlXCJdID0gXCJ2YWx1ZURvbWFpblR5cGVcIjtcbiAgICAvLyBEUElfVmFsdWVEb21haW5UeXBlcywgaGF2aW5nIHR5cGUgVmFsdWVEb21haW5UeXBlW11cbiAgICBQYXJhbWV0ZXJJZFtcIlZhbHVlRG9tYWluVHlwZXNcIl0gPSBcInZhbHVlRG9tYWluVHlwZXNcIjtcbiAgICAvLyBEUElfT3BlcmF0aW9uVHlwZSwgaGF2aW5nIHR5cGUgT3BlcmF0aW9uVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiT3BlcmF0aW9uVHlwZVwiXSA9IFwib3BlcmF0aW9uVHlwZVwiO1xuICAgIC8vIERQSV9PcGVyYXRpb25UeXBlcywgaGF2aW5nIHR5cGUgT3BlcmF0aW9uVHlwZVtdXG4gICAgUGFyYW1ldGVySWRbXCJPcGVyYXRpb25UeXBlc1wiXSA9IFwib3BlcmF0aW9uVHlwZXNcIjtcbiAgICAvLyBEUElfQ29ubmVjdGlvblR5cGVDYXRlZ29yeSwgaGF2aW5nIHR5cGUgQ29ubmVjdGlvblR5cGVDYXRlZ29yeVxuICAgIFBhcmFtZXRlcklkW1wiQ29ubmVjdGlvblR5cGVDYXRlZ29yeVwiXSA9IFwiY29ubmVjdGlvblR5cGVDYXRlZ29yeVwiO1xuICAgIC8vIERQSV9Db25uZWN0aW9uVHlwZUdyb3VwLCBoYXZpbmcgdHlwZSBDb25uZWN0aW9uVHlwZUdyb3VwXG4gICAgUGFyYW1ldGVySWRbXCJDb25uZWN0aW9uVHlwZUdyb3VwXCJdID0gXCJjb25uZWN0aW9uVHlwZUdyb3VwXCI7XG4gICAgLy8gRFBJX0NvbW1hbmRSZWRpcmVjdFR5cGUsIGhhdmluZyB0eXBlIENvbW1hbmRSZWRpcmVjdFR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbW1hbmRSZWRpcmVjdFR5cGVcIl0gPSBcImNvbW1hbmRSZWRpcmVjdFR5cGVcIjtcbiAgICAvLyBEUElfQ3VzdG9tU3BsaXRNb2RlLCBoYXZpbmcgdHlwZSBTcGxpdE1vZGVcbiAgICBQYXJhbWV0ZXJJZFtcIkN1c3RvbVNwbGl0TW9kZVwiXSA9IFwiY3VzdG9tU3BsaXRNb2RlXCI7XG4gICAgLy8gRFBJX0N1c3RvbVNwbGl0U2VwYXJhdG9yVHlwZSwgaGF2aW5nIHR5cGUgU2VwYXJhdG9yVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiQ3VzdG9tU3BsaXRTZXBhcmF0b3JUeXBlXCJdID0gXCJjdXN0b21TcGxpdFNlcGFyYXRvclR5cGVcIjtcbiAgICAvLyBEUElfTGV2ZWxTZWxlY3Rpb25TdGF0ZSwgaGF2aW5nIHR5cGUgTGV2ZWxTZWxlY3Rpb25TdGF0ZVxuICAgIFBhcmFtZXRlcklkW1wiTGV2ZWxTZWxlY3Rpb25TdGF0ZVwiXSA9IFwibGV2ZWxTZWxlY3Rpb25TdGF0ZVwiO1xuICAgIC8vIERQSV9MZXZlbFNlbGVjdGlvblN0YXRlcywgaGF2aW5nIHR5cGUgTGV2ZWxTZWxlY3Rpb25TdGF0ZVtdXG4gICAgUGFyYW1ldGVySWRbXCJMZXZlbFNlbGVjdGlvblN0YXRlc1wiXSA9IFwibGV2ZWxTZWxlY3Rpb25TdGF0ZXNcIjtcbiAgICAvLyBEUElfU291cmNlRGVzdEljb24sIGhhdmluZyB0eXBlIFNvdXJjZURlc3RJY29uXG4gICAgUGFyYW1ldGVySWRbXCJTb3VyY2VEZXN0SWNvblwiXSA9IFwic291cmNlRGVzdEljb25cIjtcbiAgICAvLyBEUElfTGVnZW5kTGF5b3V0LCBoYXZpbmcgdHlwZSBMZWdlbmRMYXlvdXRcbiAgICBQYXJhbWV0ZXJJZFtcIkxlZ2VuZExheW91dFwiXSA9IFwicGFnZUxlZ2VuZExheW91dFwiO1xuICAgIC8vIERQSV9JbWFnZXNFZGl0UmVzdWx0Q29kZSwgaGF2aW5nIHR5cGUgSW1hZ2VzRWRpdFJlc3VsdENvZGVcbiAgICBQYXJhbWV0ZXJJZFtcIkltYWdlc0VkaXRSZXN1bHRDb2RlXCJdID0gXCJpbWFnZXNFZGl0UmVzdWx0Q29kZVwiO1xuICAgIC8vIERQSV9DYWxjdWxhdGlvbkNvbnRleHQsIGhhdmluZyB0eXBlIENhbGN1bGF0aW9uQ29udGV4dFxuICAgIFBhcmFtZXRlcklkW1wiQ2FsY3VsYXRpb25Db250ZXh0XCJdID0gXCJjYWxjdWxhdGlvbkNvbnRleHRcIjtcbiAgICAvLyBEUElfV29ya2dyb3VwUHVibGlzaEVycm9yVHlwZSwgaGF2aW5nIHR5cGUgV29ya2dyb3VwUHVibGlzaEVycm9yVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiV29ya2dyb3VwUHVibGlzaEVycm9yVHlwZVwiXSA9IFwid29ya2dyb3VwUHVibGlzaEVycm9yVHlwZVwiO1xuICAgIC8vIERQSV9Jc1BhcmFtZXRlciwgaGF2aW5nIHR5cGUgVHJpQm9vbFxuICAgIFBhcmFtZXRlcklkW1wiSXNQYXJhbWV0ZXJcIl0gPSBcImlzUGFyYW1ldGVyXCI7XG4gICAgLy8gRFBJX0FkZHJlc3NpbmdTdGF0ZSwgaGF2aW5nIHR5cGUgV2lkZ2V0U3RhdGVcbiAgICBQYXJhbWV0ZXJJZFtcIkFkZHJlc3NpbmdTdGF0ZVwiXSA9IFwiYWRkcmVzc2luZ1N0YXRlXCI7XG4gICAgLy8gRFBJX0FsbFBhZ2VzU3RhdGUsIGhhdmluZyB0eXBlIFdpZGdldFN0YXRlXG4gICAgUGFyYW1ldGVySWRbXCJBbGxQYWdlc1N0YXRlXCJdID0gXCJhbGxQYWdlc1N0YXRlXCI7XG4gICAgLy8gRFBJX0F0VGhlTGV2ZWxTdGF0ZSwgaGF2aW5nIHR5cGUgV2lkZ2V0U3RhdGVcbiAgICBQYXJhbWV0ZXJJZFtcIkF0VGhlTGV2ZWxTdGF0ZVwiXSA9IFwiYXRUaGVMZXZlbFN0YXRlXCI7XG4gICAgLy8gRFBJX0NvbXB1dGVDb21wb3VuZGVkUmF0ZVN0YXRlLCBoYXZpbmcgdHlwZSBXaWRnZXRTdGF0ZVxuICAgIFBhcmFtZXRlcklkW1wiQ29tcHV0ZUNvbXBvdW5kZWRSYXRlU3RhdGVcIl0gPSBcImNvbXB1dGVDb21wb3VuZGVkUmF0ZVN0YXRlXCI7XG4gICAgLy8gRFBJX0N1c3RvbU51bGxJZkluY29tcGxldGVTdGF0ZSwgaGF2aW5nIHR5cGUgV2lkZ2V0U3RhdGVcbiAgICBQYXJhbWV0ZXJJZFtcIkN1c3RvbU51bGxJZkluY29tcGxldGVTdGF0ZVwiXSA9IFwiY3VzdG9tTnVsbElmSW5jb21wbGV0ZVN0YXRlXCI7XG4gICAgLy8gRFBJX05lc3RlZENhbGNzU3RhdGUsIGhhdmluZyB0eXBlIFdpZGdldFN0YXRlXG4gICAgUGFyYW1ldGVySWRbXCJOZXN0ZWRDYWxjc1N0YXRlXCJdID0gXCJuZXN0ZWRDYWxjc1N0YXRlXCI7XG4gICAgLy8gRFBJX1JhbmtUeXBlU3RhdGUsIGhhdmluZyB0eXBlIFdpZGdldFN0YXRlXG4gICAgUGFyYW1ldGVySWRbXCJSYW5rVHlwZVN0YXRlXCJdID0gXCJyYW5rVHlwZVN0YXRlXCI7XG4gICAgLy8gRFBJX1JlZmVyZW5jZU9wdGlvbnNTdGF0ZSwgaGF2aW5nIHR5cGUgV2lkZ2V0U3RhdGVcbiAgICBQYXJhbWV0ZXJJZFtcIlJlZmVyZW5jZU9wdGlvbnNTdGF0ZVwiXSA9IFwicmVmZXJlbmNlT3B0aW9uc1N0YXRlXCI7XG4gICAgLy8gRFBJX1Jlc3RhcnRFdmVyeVN0YXRlLCBoYXZpbmcgdHlwZSBXaWRnZXRTdGF0ZVxuICAgIFBhcmFtZXRlcklkW1wiUmVzdGFydEV2ZXJ5U3RhdGVcIl0gPSBcInJlc3RhcnRFdmVyeVN0YXRlXCI7XG4gICAgLy8gRFBJX1NvcnRBZ2dTdGF0ZSwgaGF2aW5nIHR5cGUgV2lkZ2V0U3RhdGVcbiAgICBQYXJhbWV0ZXJJZFtcIlNvcnRBZ2dTdGF0ZVwiXSA9IFwic29ydEFnZ1N0YXRlXCI7XG4gICAgLy8gRFBJX1NvcnRTdGF0ZSwgaGF2aW5nIHR5cGUgV2lkZ2V0U3RhdGVcbiAgICBQYXJhbWV0ZXJJZFtcIlNvcnRTdGF0ZVwiXSA9IFwic29ydFN0YXRlXCI7XG4gICAgLy8gRFBJX1RhYmxlQ2FsY1R5cGVTdGF0ZSwgaGF2aW5nIHR5cGUgV2lkZ2V0U3RhdGVcbiAgICBQYXJhbWV0ZXJJZFtcIlRhYmxlQ2FsY1R5cGVTdGF0ZVwiXSA9IFwidGFibGVDYWxjVHlwZVN0YXRlXCI7XG4gICAgLy8gRFBJX1RhYmxlQ2FsY0Fzc2lzdGFuY2VXaWRnZXRTdGF0ZSwgaGF2aW5nIHR5cGUgV2lkZ2V0U3RhdGVcbiAgICBQYXJhbWV0ZXJJZFtcIlRhYmxlQ2FsY0Fzc2lzdGFuY2VXaWRnZXRTdGF0ZVwiXSA9IFwidGFibGVDYWxjQXNzaXN0YW5jZVdpZGdldFN0YXRlXCI7XG4gICAgLy8gRFBJX0NhbGNOZXN0aW5nTGV2ZWwsIGhhdmluZyB0eXBlIENhbGNOZXN0aW5nTGV2ZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNhbGNOZXN0aW5nTGV2ZWxcIl0gPSBcImNhbGNOZXN0aW5nTGV2ZWxcIjtcbiAgICAvLyBEUElfRGF0YVByb3ZpZGVyVHlwZSwgaGF2aW5nIHR5cGUgRGF0YVByb3ZpZGVyVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiRGF0YVByb3ZpZGVyVHlwZVwiXSA9IFwiZGF0YVByb3ZpZGVyVHlwZVwiO1xuICAgIC8vIERQSV9IZXVyaXN0aWNDb21tYW5kUmVpbnRlcnByZXRhdGlvbiwgaGF2aW5nIHR5cGUgSGV1cmlzdGljQ29tbWFuZFJlaW50ZXJwcmV0YXRpb25cbiAgICBQYXJhbWV0ZXJJZFtcIkhldXJpc3RpY0NvbW1hbmRSZWludGVycHJldGF0aW9uXCJdID0gXCJoZXVyaXN0aWNDb21tYW5kUmVpbnRlcnByZXRhdGlvblwiO1xuICAgIC8vIERQSV9FeHRyYWN0UmVmcmVzaFN0YXR1cywgaGF2aW5nIHR5cGUgRXh0cmFjdFJlZnJlc2hTdGF0dXNcbiAgICBQYXJhbWV0ZXJJZFtcIkV4dHJhY3RSZWZyZXNoU3RhdHVzXCJdID0gXCJleHRyYWN0UmVmcmVzaFN0YXR1c1wiO1xuICAgIC8vIERQSV9SaWNoVGV4dEVkaXRvcldpZGdldEtleSwgaGF2aW5nIHR5cGUgUmljaFRleHRFZGl0b3JXaWRnZXRLZXlcbiAgICBQYXJhbWV0ZXJJZFtcIlJpY2hUZXh0RWRpdG9yV2lkZ2V0S2V5XCJdID0gXCJyaWNoVGV4dEVkaXRvcldpZGdldEtleVwiO1xuICAgIC8vIERQSV9SaWNoVGV4dFdpZGdldEtleXMsIGhhdmluZyB0eXBlIFJpY2hUZXh0RWRpdG9yV2lkZ2V0S2V5W11cbiAgICBQYXJhbWV0ZXJJZFtcIlJpY2hUZXh0V2lkZ2V0S2V5c1wiXSA9IFwicmljaFRleHRXaWRnZXRLZXlzXCI7XG4gICAgLy8gRFBJX1R5cGVPZkZvcm1hdEl0ZW0sIGhhdmluZyB0eXBlIFR5cGVPZkZvcm1hdEl0ZW1cbiAgICBQYXJhbWV0ZXJJZFtcIlR5cGVPZkZvcm1hdEl0ZW1cIl0gPSBcInR5cGVPZkZvcm1hdEl0ZW1cIjtcbiAgICAvLyBEUElfVHlwZU9mRm9ybWF0Q29udGFpbmVyLCBoYXZpbmcgdHlwZSBUeXBlT2ZGb3JtYXRDb250YWluZXJcbiAgICBQYXJhbWV0ZXJJZFtcIlR5cGVPZkZvcm1hdENvbnRhaW5lclwiXSA9IFwidHlwZU9mRm9ybWF0Q29udGFpbmVyXCI7XG4gICAgLy8gRFBJX1R5cGVPZkZvcm1hdENvbnRyb2wsIGhhdmluZyB0eXBlIFR5cGVPZkZvcm1hdENvbnRyb2xcbiAgICBQYXJhbWV0ZXJJZFtcIlR5cGVPZkZvcm1hdENvbnRyb2xcIl0gPSBcInR5cGVPZkZvcm1hdENvbnRyb2xcIjtcbiAgICAvLyBEUElfRm9ybWF0V2lkZ2V0S2V5LCBoYXZpbmcgdHlwZSBGb3JtYXRXaWRnZXRLZXlcbiAgICBQYXJhbWV0ZXJJZFtcIkZvcm1hdFdpZGdldEtleVwiXSA9IFwiZm9ybWF0V2lkZ2V0S2V5XCI7XG4gICAgLy8gRFBJX0NvbG9yU3dhdGNoVHlwZSwgaGF2aW5nIHR5cGUgQ29sb3JTd2F0Y2hUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJDb2xvclN3YXRjaFR5cGVcIl0gPSBcImZvcm1hdENvbG9yU3dhdGNoVHlwZVwiO1xuICAgIC8vIERQSV9QaWNrZXJUeXBlLCBoYXZpbmcgdHlwZSBQaWNrZXJUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJQaWNrZXJUeXBlXCJdID0gXCJwaWNrZXJUeXBlXCI7XG4gICAgLy8gRFBJX0V4dHJhY3RIaXN0b3J5UmVmcmVzaFR5cGUsIGhhdmluZyB0eXBlIFJlZnJlc2hUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJFeHRyYWN0SGlzdG9yeVJlZnJlc2hUeXBlXCJdID0gXCJleHRyYWN0SGlzdG9yeVJlZnJlc2hUeXBlRW51bVwiO1xuICAgIC8vIERQSV9BeGlzRm9sZFN0YXRlLCBoYXZpbmcgdHlwZSBBeGlzRm9sZFN0YXRlXG4gICAgUGFyYW1ldGVySWRbXCJBeGlzRm9sZFN0YXRlXCJdID0gXCJheGlzRm9sZFN0YXRlXCI7XG4gICAgLy8gRFBJX1RpY2tNYXJrU3BhY2luZ1VuaXRzLCBoYXZpbmcgdHlwZSBUaWNrU3BhY2luZ1VuaXRzXG4gICAgUGFyYW1ldGVySWRbXCJUaWNrTWFya1NwYWNpbmdVbml0c1wiXSA9IFwidGlja1NwYWNpbmdVbml0c1wiO1xuICAgIC8vIERQSV9UaWNrTWFya1N0YXRlLCBoYXZpbmcgdHlwZSBUaWNrTWFya1N0YXRlXG4gICAgUGFyYW1ldGVySWRbXCJUaWNrTWFya1N0YXRlXCJdID0gXCJ0aWNrTWFya1N0YXRlXCI7XG4gICAgLy8gRFBJX0F4aXNSYW5nZVR5cGUsIGhhdmluZyB0eXBlIEF4aXNSYW5nZVR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIkF4aXNSYW5nZVR5cGVcIl0gPSBcImF4aXNSYW5nZVR5cGVcIjtcbiAgICAvLyBEUElfU2NhbGVUeXBlLCBoYXZpbmcgdHlwZSBTY2FsZVR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIlNjYWxlVHlwZVwiXSA9IFwic2NhbGVUeXBlXCI7XG4gICAgLy8gRFBJX0Rhc2hib2FyZERldmljZUxheW91dCwgaGF2aW5nIHR5cGUgRGFzaGJvYXJkRGV2aWNlTGF5b3V0XG4gICAgUGFyYW1ldGVySWRbXCJEYXNoYm9hcmREZXZpY2VMYXlvdXRcIl0gPSBcImRhc2hib2FyZERldmljZUxheW91dFwiO1xuICAgIC8vIERQSV9BY3RpdmF0ZURldmljZUxheW91dCwgaGF2aW5nIHR5cGUgRGFzaGJvYXJkRGV2aWNlTGF5b3V0XG4gICAgUGFyYW1ldGVySWRbXCJBY3RpdmF0ZURldmljZUxheW91dFwiXSA9IFwiYWN0aXZhdGVEZXZpY2VMYXlvdXRcIjtcbiAgICAvLyBEUElfRGFzaGJvYXJkRGV2aWNlTGF5b3V0cywgaGF2aW5nIHR5cGUgRGFzaGJvYXJkRGV2aWNlTGF5b3V0W11cbiAgICBQYXJhbWV0ZXJJZFtcIkRhc2hib2FyZERldmljZUxheW91dHNcIl0gPSBcImRhc2hib2FyZERldmljZUxheW91dHNcIjtcbiAgICAvLyBEUElfRGV2aWNlU291cmNlLCBoYXZpbmcgdHlwZSBEZXZpY2VTb3VyY2VcbiAgICBQYXJhbWV0ZXJJZFtcIkRldmljZVNvdXJjZVwiXSA9IFwiZGV2aWNlU291cmNlXCI7XG4gICAgLy8gRFBJX0Rhc2hib2FyZFNpemluZ0RpbWVuc2lvbiwgaGF2aW5nIHR5cGUgRGFzaGJvYXJkU2l6aW5nRGltZW5zaW9uXG4gICAgUGFyYW1ldGVySWRbXCJEYXNoYm9hcmRTaXppbmdEaW1lbnNpb25cIl0gPSBcImRhc2hib2FyZFNpemluZ0RpbWVuc2lvblwiO1xuICAgIC8vIERQSV9HcmlkT3ZlcmxheU1vZGUsIGhhdmluZyB0eXBlIEdyaWRPdmVybGF5TW9kZVxuICAgIFBhcmFtZXRlcklkW1wiR3JpZE92ZXJsYXlNb2RlXCJdID0gXCJncmlkT3ZlcmxheU1vZGVcIjtcbiAgICAvLyBEUElfRGFzaGJvYXJkU2l6aW5nTW9kZSwgaGF2aW5nIHR5cGUgRGFzaGJvYXJkU2l6aW5nTW9kZVxuICAgIFBhcmFtZXRlcklkW1wiRGFzaGJvYXJkU2l6aW5nTW9kZVwiXSA9IFwiZGFzaGJvYXJkU2l6aW5nTW9kZVwiO1xuICAgIC8vIERQSV9GbGlwYm9hcmROYXZUeXBlLCBoYXZpbmcgdHlwZSBGbGlwYm9hcmROYXZUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJGbGlwYm9hcmROYXZUeXBlXCJdID0gXCJmbGlwYm9hcmROYXZUeXBlXCI7XG4gICAgLy8gRFBJX0ZpZWxkUGlja2VyRGlhbG9nVXNlQ2FzZSwgaGF2aW5nIHR5cGUgRmllbGRQaWNrZXJEaWFsb2dVc2VDYXNlXG4gICAgUGFyYW1ldGVySWRbXCJGaWVsZFBpY2tlckRpYWxvZ1VzZUNhc2VcIl0gPSBcImZpZWxkUGlja2VyRGlhbG9nVXNlQ2FzZVwiO1xuICAgIC8vIERQSV9TdGFydE9mV2Vla0VudW0sIGhhdmluZyB0eXBlIFNPV1ZhbHVlXG4gICAgUGFyYW1ldGVySWRbXCJTdGFydE9mV2Vla0VudW1cIl0gPSBcInN0YXJ0T2ZXZWVrRW51bVwiO1xuICAgIC8vIERQSV9TdGFydE9mRmlzY2FsWWVhciwgaGF2aW5nIHR5cGUgRllTVmFsdWVzXG4gICAgUGFyYW1ldGVySWRbXCJTdGFydE9mRmlzY2FsWWVhclwiXSA9IFwic3RhcnRPZkZpc2NhbFllYXJcIjtcbiAgICAvLyBEUElfVG90YWxzSW5jbHVzaW9uVmFsdWUsIGhhdmluZyB0eXBlIFRvdGFsc0luY2x1c2lvblxuICAgIFBhcmFtZXRlcklkW1wiVG90YWxzSW5jbHVzaW9uVmFsdWVcIl0gPSBcInRvdGFsc0luY2x1c2lvblZhbHVlXCI7XG4gICAgLy8gRFBJX0Zvcm1hdENvZGUsIGhhdmluZyB0eXBlIEZvcm1hdENvZGVcbiAgICBQYXJhbWV0ZXJJZFtcIkZvcm1hdENvZGVcIl0gPSBcImZvcm1hdENvZGVcIjtcbiAgICAvLyBEUElfRmluZFR5cGUsIGhhdmluZyB0eXBlIEZpbmRUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJGaW5kVHlwZVwiXSA9IFwiZmluZFR5cGVcIjtcbiAgICAvLyBEUElfUGVyc3BlY3RpdmVUeXBlLCBoYXZpbmcgdHlwZSBQZXJzcGVjdGl2ZVR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIlBlcnNwZWN0aXZlVHlwZVwiXSA9IFwicGVyc3BlY3RpdmVUeXBlXCI7XG4gICAgLy8gRFBJX0dlb21ldHJ5VHlwZSwgaGF2aW5nIHR5cGUgR2VvbWV0cnlUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJHZW9tZXRyeVR5cGVcIl0gPSBcImdlb21ldHJ5VHlwZVwiO1xuICAgIC8vIERQSV9QYW5lTGFiZWxDb21wb3NpdGlvbiwgaGF2aW5nIHR5cGUgUGFuZUxhYmVsQ29tcG9zaXRpb25cbiAgICBQYXJhbWV0ZXJJZFtcIlBhbmVMYWJlbENvbXBvc2l0aW9uXCJdID0gXCJwYW5lTGFiZWxDb21wb3NpdGlvblwiO1xuICAgIC8vIERQSV9XYXJuaW5nVHlwZSwgaGF2aW5nIHR5cGUgV2FybmluZ1R5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIldhcm5pbmdUeXBlXCJdID0gXCJ3YXJuaW5nVHlwZVwiO1xuICAgIC8vIERQSV9VSU1vZGUsIGhhdmluZyB0eXBlIFdvcmtib29rVUlNb2RlXG4gICAgUGFyYW1ldGVySWRbXCJVSU1vZGVcIl0gPSBcInVpTW9kZVwiO1xuICAgIC8vIERQSV9NZW51SXRlbUlkLCBoYXZpbmcgdHlwZSBUb3BMZXZlbE1lbnVJdGVtXG4gICAgUGFyYW1ldGVySWRbXCJNZW51SXRlbUlkXCJdID0gXCJtZW51SXRlbUlkXCI7XG4gICAgLy8gRFBJX0NvbW1hbmRSZXR1cm4sIGhhdmluZyB0eXBlIG9iamVjdFxuICAgIFBhcmFtZXRlcklkW1wiQ29tbWFuZFJldHVyblwiXSA9IFwiY29tbWFuZFJldHVyblwiO1xuICAgIC8vIERQSV9MZWdhY3lQcmVzTW9kZWwsIGhhdmluZyB0eXBlIG9iamVjdFxuICAgIFBhcmFtZXRlcklkW1wiTGVnYWN5UHJlc01vZGVsXCJdID0gXCJsZWdhY3lQcmVzTW9kZWxcIjtcbiAgICAvLyBEUElfUHJlc2VudGF0aW9uTW9kZWwsIGhhdmluZyB0eXBlIG9iamVjdFxuICAgIFBhcmFtZXRlcklkW1wiUHJlc2VudGF0aW9uTW9kZWxcIl0gPSBcInByZXNNb2RlbEhvbGRlclwiO1xuICAgIC8vIERQSV9FdmVudCwgaGF2aW5nIHR5cGUgb2JqZWN0XG4gICAgUGFyYW1ldGVySWRbXCJFdmVudFwiXSA9IFwiZXZlbnRDb250YWluZXJcIjtcbiAgICAvLyBEUElfTGluZVN0eWxlLCBoYXZpbmcgdHlwZSBBcnJheVxuICAgIFBhcmFtZXRlcklkW1wiTGluZVN0eWxlXCJdID0gXCJsaW5lU3R5bGVcIjtcbiAgICAvLyBEUElfU3Ryb2tlU3R5bGUsIGhhdmluZyB0eXBlIEFycmF5XG4gICAgUGFyYW1ldGVySWRbXCJTdHJva2VTdHlsZVwiXSA9IFwic3Ryb2tlU3R5bGVcIjtcbiAgICAvLyBEUElfU2NoZW1hLCBoYXZpbmcgdHlwZSBBcnJheVxuICAgIFBhcmFtZXRlcklkW1wiU2NoZW1hXCJdID0gXCJzY2hlbWFcIjtcbiAgICAvLyBEUElfU3RhcnRUdXBsZSwgaGF2aW5nIHR5cGUgQXJyYXlcbiAgICBQYXJhbWV0ZXJJZFtcIlN0YXJ0VHVwbGVcIl0gPSBcInN0YXJ0VHVwbGVcIjtcbiAgICAvLyBEUElfRW5kVHVwbGUsIGhhdmluZyB0eXBlIEFycmF5XG4gICAgUGFyYW1ldGVySWRbXCJFbmRUdXBsZVwiXSA9IFwiZW5kVHVwbGVcIjtcbiAgICAvLyBEUElfVHVwbGUsIGhhdmluZyB0eXBlIEFycmF5XG4gICAgUGFyYW1ldGVySWRbXCJUdXBsZVwiXSA9IFwidHVwbGVcIjtcbiAgICAvLyBEUElfVHVwbGVzLCBoYXZpbmcgdHlwZSBBcnJheVtdXG4gICAgUGFyYW1ldGVySWRbXCJUdXBsZXNcIl0gPSBcInR1cGxlc1wiO1xuICAgIC8vIERQSV9DdXN0b21Eb21haW5UdXBsZXMsIGhhdmluZyB0eXBlIEFycmF5W11cbiAgICBQYXJhbWV0ZXJJZFtcIkN1c3RvbURvbWFpblR1cGxlc1wiXSA9IFwiY3VzdG9tRG9tYWluVHVwbGVzXCI7XG4gICAgLy8gRFBJX1VwZGF0ZWRUdXBsZXMsIGhhdmluZyB0eXBlIEFycmF5W11cbiAgICBQYXJhbWV0ZXJJZFtcIlVwZGF0ZWRUdXBsZXNcIl0gPSBcInVwZGF0ZWRUdXBsZXNcIjtcbiAgICAvLyBEUElfVGFibGUsIGhhdmluZyB0eXBlIEFycmF5XG4gICAgUGFyYW1ldGVySWRbXCJUYWJsZVwiXSA9IFwidGFibGVcIjtcbiAgICAvLyBEUElfQWxpYXNlZFZhbHVlLCBoYXZpbmcgdHlwZSBBcnJheVxuICAgIFBhcmFtZXRlcklkW1wiQWxpYXNlZFZhbHVlXCJdID0gXCJ2YWx1ZUFsaWFzXCI7XG4gICAgLy8gRFBJX0ZpcnN0QWxpYXNlZFZhbHVlLCBoYXZpbmcgdHlwZSBBcnJheVxuICAgIFBhcmFtZXRlcklkW1wiRmlyc3RBbGlhc2VkVmFsdWVcIl0gPSBcImZpcnN0QWxpc2VkVmFsdWVcIjtcbiAgICAvLyBEUElfTWF4aW11bVJhbmdlLCBoYXZpbmcgdHlwZSBBcnJheVxuICAgIFBhcmFtZXRlcklkW1wiTWF4aW11bVJhbmdlXCJdID0gXCJtYXhpbXVtUmFuZ2VWYWx1ZVwiO1xuICAgIC8vIERQSV9NaW5pbXVtUmFuZ2UsIGhhdmluZyB0eXBlIEFycmF5XG4gICAgUGFyYW1ldGVySWRbXCJNaW5pbXVtUmFuZ2VcIl0gPSBcIm1pbmltdW1SYW5nZVZhbHVlXCI7XG4gICAgLy8gRFBJX1NlY29uZEFsaWFzZWRWYWx1ZSwgaGF2aW5nIHR5cGUgQXJyYXlcbiAgICBQYXJhbWV0ZXJJZFtcIlNlY29uZEFsaWFzZWRWYWx1ZVwiXSA9IFwic2Vjb25kQWxpc2VkVmFsdWVcIjtcbiAgICAvLyBEUElfQWxpYXNlZFNlbGVjdGlvbkxpc3QsIGhhdmluZyB0eXBlIEFycmF5W11cbiAgICBQYXJhbWV0ZXJJZFtcIkFsaWFzZWRTZWxlY3Rpb25MaXN0XCJdID0gXCJhbGlhc2VkU2VsZWN0aW9uTGlzdFwiO1xuICAgIC8vIERQSV9BbGlhc2VkVmFsdWVzLCBoYXZpbmcgdHlwZSBBcnJheVtdXG4gICAgUGFyYW1ldGVySWRbXCJBbGlhc2VkVmFsdWVzXCJdID0gXCJ2YWx1ZXNBbGlhc2VzXCI7XG4gICAgLy8gRFBJX1ZlcmJvc2VBbGlhc2VkUmFuZ2VNYXgsIGhhdmluZyB0eXBlIEFycmF5XG4gICAgUGFyYW1ldGVySWRbXCJWZXJib3NlQWxpYXNlZFJhbmdlTWF4XCJdID0gXCJ2ZXJib3NlQWxpYXNlZFJhbmdlTWF4XCI7XG4gICAgLy8gRFBJX1ZlcmJvc2VBbGlhc2VkVmFsdWUsIGhhdmluZyB0eXBlIEFycmF5XG4gICAgUGFyYW1ldGVySWRbXCJWZXJib3NlQWxpYXNlZFZhbHVlXCJdID0gXCJ2ZXJib3NlQWxpYXNlZFZhbHVlXCI7XG4gICAgLy8gRFBJX011bHRpQnVja2V0LCBoYXZpbmcgdHlwZSBNdWx0aUJ1Y2tldFxuICAgIFBhcmFtZXRlcklkW1wiTXVsdGlCdWNrZXRcIl0gPSBcInhWYWx1ZXNcIjtcbiAgICAvLyBEUElfUGFnZU5hbWUsIGhhdmluZyB0eXBlIFBhZ2VOYW1lXG4gICAgUGFyYW1ldGVySWRbXCJQYWdlTmFtZVwiXSA9IFwicGFnZU5hbWVcIjtcbiAgICAvLyBEUElfU2VsZWN0b3IsIGhhdmluZyB0eXBlIG9iamVjdFxuICAgIFBhcmFtZXRlcklkW1wiU2VsZWN0b3JcIl0gPSBcInNlbGVjdG9yXCI7XG4gICAgLy8gRFBJX1BhbmVJZCwgaGF2aW5nIHR5cGUgb2JqZWN0XG4gICAgUGFyYW1ldGVySWRbXCJQYW5lSWRcIl0gPSBcInBhbmVJZFwiO1xuICAgIC8vIERQSV9QYW5lSWRzLCBoYXZpbmcgdHlwZSBQYW5lSWRbXVxuICAgIFBhcmFtZXRlcklkW1wiUGFuZUlkc1wiXSA9IFwicGFuZUlkc1wiO1xuICAgIC8vIERQSV9JbWFnZVJlZ2lvbkluZm8sIGhhdmluZyB0eXBlIG9iamVjdFxuICAgIFBhcmFtZXRlcklkW1wiSW1hZ2VSZWdpb25JbmZvXCJdID0gXCJ2aXpSZWdpb25SZWN0XCI7XG4gICAgLy8gRFBJX0ltYWdlUmVnaW9uSW5mb0xpc3QsIGhhdmluZyB0eXBlIG9iamVjdFtdXG4gICAgUGFyYW1ldGVySWRbXCJJbWFnZVJlZ2lvbkluZm9MaXN0XCJdID0gXCJ2aXpSZWdpb25SZWN0TGlzdFwiO1xuICAgIC8vIERQSV9WaXN1YWxJRCwgaGF2aW5nIHR5cGUgVmlzdWFsSURcbiAgICBQYXJhbWV0ZXJJZFtcIlZpc3VhbElEXCJdID0gXCJ2aXN1YWxJZFwiO1xuICAgIC8vIERQSV9WaXN1YWxJRFBNLCBoYXZpbmcgdHlwZSBWaXN1YWxJRFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVmlzdWFsSURQTVwiXSA9IFwidmlzdWFsSWRQcmVzTW9kZWxcIjtcbiAgICAvLyBEUElfSW52YWxpZFNoZWV0cywgaGF2aW5nIHR5cGUgVmlzdWFsSURQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiSW52YWxpZFNoZWV0c1wiXSA9IFwiaW52YWxpZFNoZWV0c1wiO1xuICAgIC8vIERQSV9WaXN1YWxJRFBNcywgaGF2aW5nIHR5cGUgVmlzdWFsSURQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiVmlzdWFsSURQTXNcIl0gPSBcInZpc3VhbElkc1wiO1xuICAgIC8vIERQSV9TaGVldFBhdGhQTSwgaGF2aW5nIHR5cGUgU2hlZXRQYXRoUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTaGVldFBhdGhQTVwiXSA9IFwic2hlZXRQYXRoXCI7XG4gICAgLy8gRFBJX0NhcHR1cmVkU2hlZXRQTSwgaGF2aW5nIHR5cGUgU2hlZXRQYXRoUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDYXB0dXJlZFNoZWV0UE1cIl0gPSBcImNhcHR1cmVkU2hlZXRQbVwiO1xuICAgIC8vIERQSV9DdXJyZW50U2hlZXRQTSwgaGF2aW5nIHR5cGUgU2hlZXRQYXRoUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDdXJyZW50U2hlZXRQTVwiXSA9IFwiY3VycmVudFNoZWV0UG1cIjtcbiAgICAvLyBEUElfRGFzaGJvYXJkUE0sIGhhdmluZyB0eXBlIFNoZWV0UGF0aFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRGFzaGJvYXJkUE1cIl0gPSBcImRhc2hib2FyZFBtXCI7XG4gICAgLy8gRFBJX05ld1NoZWV0UE0sIGhhdmluZyB0eXBlIFNoZWV0UGF0aFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiTmV3U2hlZXRQTVwiXSA9IFwibmV3U2hlZXRQbVwiO1xuICAgIC8vIERQSV9TaGVldE5hbWVQTSwgaGF2aW5nIHR5cGUgU2hlZXRQYXRoUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTaGVldE5hbWVQTVwiXSA9IFwic2hlZXROYW1lUG1cIjtcbiAgICAvLyBEUElfU2hlZXRQTSwgaGF2aW5nIHR5cGUgU2hlZXRQYXRoUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTaGVldFBNXCJdID0gXCJzaGVldFBtXCI7XG4gICAgLy8gRFBJX1NvdXJjZURhc2hib2FyZFBNLCBoYXZpbmcgdHlwZSBTaGVldFBhdGhQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlNvdXJjZURhc2hib2FyZFBNXCJdID0gXCJzb3VyY2VEYXNoYm9hcmRQbVwiO1xuICAgIC8vIERQSV9Tb3VyY2VTaGVldFBNLCBoYXZpbmcgdHlwZSBTaGVldFBhdGhQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlNvdXJjZVNoZWV0UE1cIl0gPSBcInNvdXJjZVNoZWV0UG1cIjtcbiAgICAvLyBEUElfVGFyZ2V0U2hlZXRQTSwgaGF2aW5nIHR5cGUgU2hlZXRQYXRoUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJUYXJnZXRTaGVldFBNXCJdID0gXCJ0YXJnZXRTaGVldFBtXCI7XG4gICAgLy8gRFBJX1dvcmtzaGVldFBNLCBoYXZpbmcgdHlwZSBTaGVldFBhdGhQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIldvcmtzaGVldFBNXCJdID0gXCJ3b3Jrc2hlZXRQbVwiO1xuICAgIC8vIERQSV9Nb2RpZmllZFNoZWV0cywgaGF2aW5nIHR5cGUgU2hlZXRQYXRoUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIk1vZGlmaWVkU2hlZXRzXCJdID0gXCJtb2RpZmllZFNoZWV0c1wiO1xuICAgIC8vIERQSV9EYXRhQ29sdW1uLCBoYXZpbmcgdHlwZSBEYXRhQ29sdW1uUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEYXRhQ29sdW1uXCJdID0gXCJkYXRhQ29sdW1uXCI7XG4gICAgLy8gRFBJX0RhdGFDb2x1bW5zLCBoYXZpbmcgdHlwZSBEYXRhQ29sdW1uUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFDb2x1bW5zXCJdID0gXCJkYXRhQ29sdW1uc1wiO1xuICAgIC8vIERQSV9BZGRyZXNzZXMsIGhhdmluZyB0eXBlIERhdGFDb2x1bW5QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiQWRkcmVzc2VzXCJdID0gXCJhZGRyZXNzZXNcIjtcbiAgICAvLyBEUElfRW5jb2RpbmdDb2x1bW5zLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIERhdGFDb2x1bW5QcmVzTW9kZWwpXG4gICAgUGFyYW1ldGVySWRbXCJFbmNvZGluZ0NvbHVtbnNcIl0gPSBcImVuY29kaW5nQ29sdW1uc1wiO1xuICAgIC8vIERQSV9UZXh0UnVuQ29sdW1ucywgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBEYXRhQ29sdW1uUHJlc01vZGVsKVxuICAgIFBhcmFtZXRlcklkW1wiVGV4dFJ1bkNvbHVtbnNcIl0gPSBcInRleHRSdW5Db2x1bW5zXCI7XG4gICAgLy8gRFBJX1RleHRTdHlsZUNvbHVtbnMsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2YgRGF0YUNvbHVtblByZXNNb2RlbClcbiAgICBQYXJhbWV0ZXJJZFtcIlRleHRTdHlsZUNvbHVtbnNcIl0gPSBcInRleHRTdHlsZUNvbHVtbnNcIjtcbiAgICAvLyBEUElfTmFtZWREYXRhQ29sdW1uLCBoYXZpbmcgdHlwZSBOYW1lZERhdGFDb2x1bW5QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIk5hbWVkRGF0YUNvbHVtblwiXSA9IFwibmFtZWREYXRhQ29sdW1uXCI7XG4gICAgLy8gRFBJX05hbWVkRGF0YUNvbHVtbnMsIGhhdmluZyB0eXBlIE5hbWVkRGF0YUNvbHVtblByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJOYW1lZERhdGFDb2x1bW5zXCJdID0gXCJuYW1lZERhdGFDb2x1bW5zXCI7XG4gICAgLy8gRFBJX0RhdGFUYWJsZSwgaGF2aW5nIHR5cGUgRGF0YVRhYmxlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEYXRhVGFibGVcIl0gPSBcImRhdGFUYWJsZVwiO1xuICAgIC8vIERQSV9BY3Rpb25TcGVjaWZpY2F0aW9uLCBoYXZpbmcgdHlwZSBOb25lXG4gICAgUGFyYW1ldGVySWRbXCJBY3Rpb25TcGVjaWZpY2F0aW9uXCJdID0gXCJhY3Rpb25TcGVjXCI7XG4gICAgLy8gRFBJX0NvbHVtbiwgaGF2aW5nIHR5cGUgQ29sdW1uXG4gICAgUGFyYW1ldGVySWRbXCJDb2x1bW5cIl0gPSBcImNvbHVtbkNvbnRleHRcIjtcbiAgICAvLyBEUElfU2V0RnVuY3Rpb24sIGhhdmluZyB0eXBlIFNldEZ1bmN0aW9uXG4gICAgUGFyYW1ldGVySWRbXCJTZXRGdW5jdGlvblwiXSA9IFwic2V0RnVuY3Rpb25cIjtcbiAgICAvLyBEUElfU2V0RnVuY3Rpb25zLCBoYXZpbmcgdHlwZSBTZXRGdW5jdGlvbnNcbiAgICBQYXJhbWV0ZXJJZFtcIlNldEZ1bmN0aW9uc1wiXSA9IFwic2V0RnVuY3Rpb25zXCI7XG4gICAgLy8gRFBJX1Zpc3VhbFByb2ZpbGVTaG93TWUsIGhhdmluZyB0eXBlIFZpc3VhbFByb2ZpbGVTaG93TWVcbiAgICBQYXJhbWV0ZXJJZFtcIlZpc3VhbFByb2ZpbGVTaG93TWVcIl0gPSBcInZwc21cIjtcbiAgICAvLyBEUElfRGF0YVNvdXJjZVB0ciwgaGF2aW5nIHR5cGUgRGF0YVNvdXJjZVxuICAgIFBhcmFtZXRlcklkW1wiRGF0YVNvdXJjZVB0clwiXSA9IFwiZGF0YXNvdXJjZVB0clwiO1xuICAgIC8vIERQSV9Xb3JrZ3JvdXBDb25uZWN0aW9uLCBoYXZpbmcgdHlwZSBXb3JrZ3JvdXBDb25uZWN0aW9uXG4gICAgUGFyYW1ldGVySWRbXCJXb3JrZ3JvdXBDb25uZWN0aW9uXCJdID0gXCJ3b3JrZ3JvdXBDb25uZWN0aW9uXCI7XG4gICAgLy8gRFBJX0F1dGhlbnRpY2F0b3IsIGhhdmluZyB0eXBlIEF1dGhlbnRpY2F0b3JSYXdQdHJcbiAgICBQYXJhbWV0ZXJJZFtcIkF1dGhlbnRpY2F0b3JcIl0gPSBcImF1dGhlbnRpY2F0b3JcIjtcbiAgICAvLyBEUElfVXBncmFkZUF0dHIsIGhhdmluZyB0eXBlIFVwZ3JhZGVBdHRyXG4gICAgUGFyYW1ldGVySWRbXCJVcGdyYWRlQXR0clwiXSA9IFwidXBncmFkZUF0dHJcIjtcbiAgICAvLyBEUElfRXh0cmFjdEF0dHIsIGhhdmluZyB0eXBlIEV4dHJhY3RBdHRyXG4gICAgUGFyYW1ldGVySWRbXCJFeHRyYWN0QXR0clwiXSA9IFwiZXh0cmFjdEF0dHJcIjtcbiAgICAvLyBEUElfUmVmcmVzaEF0dHIsIGhhdmluZyB0eXBlIFJlZnJlc2hBdHRyXG4gICAgUGFyYW1ldGVySWRbXCJSZWZyZXNoQXR0clwiXSA9IFwicmVmcmVzaEF0dHJcIjtcbiAgICAvLyBEUElfQ29udGV4dFNwZWNpZmljYXRpb24sIGhhdmluZyB0eXBlIENvbnRleHRTcGVjaWZpY2F0aW9uXG4gICAgUGFyYW1ldGVySWRbXCJDb250ZXh0U3BlY2lmaWNhdGlvblwiXSA9IFwiY29udGV4dFNwZWNpZmljYXRpb25cIjtcbiAgICAvLyBEUElfU2NoZW1hVmlld2VyU2VsZWN0b3IsIGhhdmluZyB0eXBlIFNjaGVtYVZpZXdlclNlbGVjdG9yUHRyXG4gICAgUGFyYW1ldGVySWRbXCJTY2hlbWFWaWV3ZXJTZWxlY3RvclwiXSA9IFwic2NoZW1hVmlld2VyU2VsZWN0b3JcIjtcbiAgICAvLyBEUElfQnVja2V0cywgaGF2aW5nIHR5cGUgQnVja2V0c1xuICAgIFBhcmFtZXRlcklkW1wiQnVja2V0c1wiXSA9IFwiYnVja2V0c1wiO1xuICAgIC8vIERQSV9MZWdlbmRJdGVtcywgaGF2aW5nIHR5cGUgTXVsdGlCdWNrZXRzXG4gICAgUGFyYW1ldGVySWRbXCJMZWdlbmRJdGVtc1wiXSA9IFwibGVnZW5kSXRlbXNcIjtcbiAgICAvLyBEUElfTGVnZW5kSXRlbSwgaGF2aW5nIHR5cGUgTXVsdGlCdWNrZXRcbiAgICBQYXJhbWV0ZXJJZFtcIkxlZ2VuZEl0ZW1cIl0gPSBcImxlZ2VuZEl0ZW1cIjtcbiAgICAvLyBEUElfU291cmNlSXRlbSwgaGF2aW5nIHR5cGUgTXVsdGlCdWNrZXRcbiAgICBQYXJhbWV0ZXJJZFtcIlNvdXJjZUl0ZW1cIl0gPSBcInNvdXJjZUl0ZW1cIjtcbiAgICAvLyBEUElfRGVzdEl0ZW0sIGhhdmluZyB0eXBlIE11bHRpQnVja2V0XG4gICAgUGFyYW1ldGVySWRbXCJEZXN0SXRlbVwiXSA9IFwiZGVzdEl0ZW1cIjtcbiAgICAvLyBEUElfSVF1aWNrU29ydFN0YXRlLCBoYXZpbmcgdHlwZSBJUXVpY2tTb3J0U3RhdGVcbiAgICBQYXJhbWV0ZXJJZFtcIklRdWlja1NvcnRTdGF0ZVwiXSA9IFwicXVpY2tTb3J0U3RhdGVcIjtcbiAgICAvLyBEUElfQXBwQnVpbGREYXRlLCBoYXZpbmcgdHlwZSBEYXRlVGltZVxuICAgIFBhcmFtZXRlcklkW1wiQXBwQnVpbGREYXRlXCJdID0gXCJhcHBCdWlsZERhdGVcIjtcbiAgICAvLyBEUElfRm9yZWNhc3REYXRlUmFuZ2VFbmQsIGhhdmluZyB0eXBlIERhdGVUaW1lXG4gICAgUGFyYW1ldGVySWRbXCJGb3JlY2FzdERhdGVSYW5nZUVuZFwiXSA9IFwiZm9yZWNhc3REYXRlUmFuZ2VFbmRcIjtcbiAgICAvLyBEUElfRm9yZWNhc3REYXRlUmFuZ2VTdGFydCwgaGF2aW5nIHR5cGUgRGF0ZVRpbWVcbiAgICBQYXJhbWV0ZXJJZFtcIkZvcmVjYXN0RGF0ZVJhbmdlU3RhcnRcIl0gPSBcImZvcmVjYXN0RGF0ZVJhbmdlU3RhcnRcIjtcbiAgICAvLyBEUElfTGFzdE1vZGlmaWVkLCBoYXZpbmcgdHlwZSBEYXRlVGltZVxuICAgIFBhcmFtZXRlcklkW1wiTGFzdE1vZGlmaWVkXCJdID0gXCJsYXN0TW9kaWZpZWRcIjtcbiAgICAvLyBEUElfU2VhcmNoRG9tYWluUHRyLCBoYXZpbmcgdHlwZSBNdWx0aURvbWFpblxuICAgIFBhcmFtZXRlcklkW1wiU2VhcmNoRG9tYWluUHRyXCJdID0gXCJzZWFyY2hEb21haW5QdHJcIjtcbiAgICAvLyBEUElfUmVzdWx0c0RvbWFpblB0ciwgaGF2aW5nIHR5cGUgTXVsdGlEb21haW5cbiAgICBQYXJhbWV0ZXJJZFtcIlJlc3VsdHNEb21haW5QdHJcIl0gPSBcInJlc3VsdHNEb21haW5QdHJcIjtcbiAgICAvLyBEUElfQWN0aW9ucywgaGF2aW5nIHR5cGUgb2JqZWN0XG4gICAgUGFyYW1ldGVySWRbXCJBY3Rpb25zXCJdID0gXCJhY3Rpb25zXCI7XG4gICAgLy8gRFBJX1NSQ29tbWFuZHMsIGhhdmluZyB0eXBlIG9iamVjdFxuICAgIFBhcmFtZXRlcklkW1wiU1JDb21tYW5kc1wiXSA9IFwic2VsZWN0aW9uUmVsYXhhdGlvbkNvbW1hbmRzXCI7XG4gICAgLy8gRFBJX0NvbW1hbmRzLCBoYXZpbmcgdHlwZSBvYmplY3RcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbW1hbmRzXCJdID0gXCJjb21tYW5kc1wiO1xuICAgIC8vIERQSV9EYXRhVHlwZUNvbW1hbmRzLCBoYXZpbmcgdHlwZSBvYmplY3RcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFUeXBlQ29tbWFuZHNcIl0gPSBcImRhdGF0eXBlQ29tbWFuZHNcIjtcbiAgICAvLyBEUElfTXVsdGlTZWxlY3RDb21tYW5kcywgaGF2aW5nIHR5cGUgb2JqZWN0XG4gICAgUGFyYW1ldGVySWRbXCJNdWx0aVNlbGVjdENvbW1hbmRzXCJdID0gXCJtdWx0aXNlbGVjdENvbW1hbmRzXCI7XG4gICAgLy8gRFBJX05vblZpekNvbW1hbmRzLCBoYXZpbmcgdHlwZSBvYmplY3RcbiAgICBQYXJhbWV0ZXJJZFtcIk5vblZpekNvbW1hbmRzXCJdID0gXCJub25WaXpDb21tYW5kc1wiO1xuICAgIC8vIERQSV9RdWlja0ZpbHRlckNvbW1hbmRzLCBoYXZpbmcgdHlwZSBvYmplY3RcbiAgICBQYXJhbWV0ZXJJZFtcIlF1aWNrRmlsdGVyQ29tbWFuZHNcIl0gPSBcInF1aWNrRmlsdGVyQ29tbWFuZHNcIjtcbiAgICAvLyBEUElfU2hvd01lQ29tbWFuZHMsIGhhdmluZyB0eXBlIG9iamVjdFxuICAgIFBhcmFtZXRlcklkW1wiU2hvd01lQ29tbWFuZHNcIl0gPSBcInNob3dNZUNvbW1hbmRzXCI7XG4gICAgLy8gRFBJX1NvcnRJbmRpY2F0b3JNZW51LCBoYXZpbmcgdHlwZSBvYmplY3RcbiAgICBQYXJhbWV0ZXJJZFtcIlNvcnRJbmRpY2F0b3JNZW51XCJdID0gXCJzb3J0SW5kaWNhdG9yTWVudVwiO1xuICAgIC8vIERQSV9TdGFuZGFyZENvbW1hbmRzLCBoYXZpbmcgdHlwZSBvYmplY3RcbiAgICBQYXJhbWV0ZXJJZFtcIlN0YW5kYXJkQ29tbWFuZHNcIl0gPSBcInN0YW5kYXJkQ29tbWFuZHNcIjtcbiAgICAvLyBEUElfVml6Q29tbWFuZHMsIGhhdmluZyB0eXBlIG9iamVjdFxuICAgIFBhcmFtZXRlcklkW1wiVml6Q29tbWFuZHNcIl0gPSBcInZpekNvbW1hbmRzXCI7XG4gICAgLy8gRFBJX1pvbmVDaHJvbWVDb21tYW5kcywgaGF2aW5nIHR5cGUgb2JqZWN0XG4gICAgUGFyYW1ldGVySWRbXCJab25lQ2hyb21lQ29tbWFuZHNcIl0gPSBcInpvbmVDaHJvbWVDb21tYW5kc1wiO1xuICAgIC8vIERQSV9Db21tYW5kSXRlbSwgaGF2aW5nIHR5cGUgQ29tbWFuZHNJdGVtXG4gICAgUGFyYW1ldGVySWRbXCJDb21tYW5kSXRlbVwiXSA9IFwiY29tbWFuZEl0ZW1cIjtcbiAgICAvLyBEUElfQ29tbWFuZEl0ZW1zLCBoYXZpbmcgdHlwZSBDb21tYW5kc0l0ZW1bXVxuICAgIFBhcmFtZXRlcklkW1wiQ29tbWFuZEl0ZW1zXCJdID0gXCJjb21tYW5kSXRlbXNcIjtcbiAgICAvLyBEUElfQ29tbWFuZCwgaGF2aW5nIHR5cGUgU2ltcGxlQ29tbWFuZHNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbW1hbmRcIl0gPSBcInNpbXBsZUNvbW1hbmRNb2RlbFwiO1xuICAgIC8vIERQSV9BZGRDb21tYW5kLCBoYXZpbmcgdHlwZSBTaW1wbGVDb21tYW5kc1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQWRkQ29tbWFuZFwiXSA9IFwiYWRkU2ltcGxlQ29tbWFuZE1vZGVsXCI7XG4gICAgLy8gRFBJX1JlbW92ZUNvbW1hbmQsIGhhdmluZyB0eXBlIFNpbXBsZUNvbW1hbmRzUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJSZW1vdmVDb21tYW5kXCJdID0gXCJyZW1vdmVTaW1wbGVDb21tYW5kTW9kZWxcIjtcbiAgICAvLyBEUElfQWNjZXB0Q29tbWFuZCwgaGF2aW5nIHR5cGUgU2ltcGxlQ29tbWFuZHNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkFjY2VwdENvbW1hbmRcIl0gPSBcImFjY2VwdFNpbXBsZUNvbW1hbmRNb2RlbFwiO1xuICAgIC8vIERQSV9EZWNsaW5lQ29tbWFuZCwgaGF2aW5nIHR5cGUgU2ltcGxlQ29tbWFuZHNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRlY2xpbmVDb21tYW5kXCJdID0gXCJkZWNsaW5lU2ltcGxlQ29tbWFuZE1vZGVsXCI7XG4gICAgLy8gRFBJX0Ryb3BDb21tYW5kLCBoYXZpbmcgdHlwZSBTaW1wbGVDb21tYW5kc1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRHJvcENvbW1hbmRcIl0gPSBcImRyb3BDb21tYW5kTW9kZWxcIjtcbiAgICAvLyBEUElfRWRpdENhcHRpb25Db21tYW5kLCBoYXZpbmcgdHlwZSBTaW1wbGVDb21tYW5kc1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRWRpdENhcHRpb25Db21tYW5kXCJdID0gXCJlZGl0Q2FwdGlvbkNvbW1hbmRNb2RlbFwiO1xuICAgIC8vIERQSV9Gb250Q29tbWFuZCwgaGF2aW5nIHR5cGUgU2ltcGxlQ29tbWFuZHNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkZvbnRDb21tYW5kXCJdID0gXCJmb250Q29tbWFuZE1vZGVsXCI7XG4gICAgLy8gRFBJX0xpbmVTdHlsZUNvbW1hbmQsIGhhdmluZyB0eXBlIFNpbXBsZUNvbW1hbmRzUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJMaW5lU3R5bGVDb21tYW5kXCJdID0gXCJsaW5lU3R5bGVDb21tYW5kTW9kZWxcIjtcbiAgICAvLyBEUElfRm9ybWF0Q29tbWFuZCwgaGF2aW5nIHR5cGUgU2ltcGxlQ29tbWFuZHNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkZvcm1hdENvbW1hbmRcIl0gPSBcImZvcm1hdENvbW1hbmRNb2RlbFwiO1xuICAgIC8vIERQSV9EZXN0cnVjdG9yQ29tbWFuZCwgaGF2aW5nIHR5cGUgU2ltcGxlQ29tbWFuZHNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRlc3RydWN0b3JDb21tYW5kXCJdID0gXCJkZXN0cnVjdG9yQ29tbWFuZFwiO1xuICAgIC8vIERQSV9DbGVhckZvcm1hdENvbW1hbmQsIGhhdmluZyB0eXBlIFNpbXBsZUNvbW1hbmRzUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDbGVhckZvcm1hdENvbW1hbmRcIl0gPSBcImNsZWFyRm9ybWF0Q29tbWFuZE1vZGVsXCI7XG4gICAgLy8gRFBJX1JpY2hUZXh0Q29tbWFuZCwgaGF2aW5nIHR5cGUgU2ltcGxlQ29tbWFuZHNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlJpY2hUZXh0Q29tbWFuZFwiXSA9IFwicmljaFRleHRDb21tYW5kTW9kZWxcIjtcbiAgICAvLyBEUElfU29ydEluZGljYXRvckNvbW1hbmQsIGhhdmluZyB0eXBlIFNpbXBsZUNvbW1hbmRzUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTb3J0SW5kaWNhdG9yQ29tbWFuZFwiXSA9IFwic29ydEluZGljYXRvckNvbW1hbmRcIjtcbiAgICAvLyBEUElfQ29tbWFuZExpc3QsIGhhdmluZyB0eXBlIFNpbXBsZUNvbW1hbmRzUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkNvbW1hbmRMaXN0XCJdID0gXCJjb21tYW5kTGlzdFwiO1xuICAgIC8vIERQSV9QYXJhbWV0ZXJDdHJsLCBoYXZpbmcgdHlwZSBQYXJhbWV0ZXJDdHJsUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJQYXJhbWV0ZXJDdHJsXCJdID0gXCJwYXJhbWV0ZXJDb250cm9sXCI7XG4gICAgLy8gRFBJX1BhcmFtZXRlckN0cmxzLCBoYXZpbmcgdHlwZSBQYXJhbWV0ZXJDdHJsUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlBhcmFtZXRlckN0cmxzXCJdID0gXCJwYXJhbWV0ZXJDb250cm9sc1wiO1xuICAgIC8vIERQSV9QYWdlTW9kZWwsIGhhdmluZyB0eXBlIFBhZ2VQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlBhZ2VNb2RlbFwiXSA9IFwicGFnZU1vZGVsXCI7XG4gICAgLy8gRFBJX1BhZ2VUcmFpbE9wdGlvbnMsIGhhdmluZyB0eXBlIFBhZ2VUcmFpbE9wdGlvbnNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlBhZ2VUcmFpbE9wdGlvbnNcIl0gPSBcInBhZ2VUcmFpbE9wdGlvbnNcIjtcbiAgICAvLyBEUElfRmllbGQsIGhhdmluZyB0eXBlIEZpZWxkUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJGaWVsZFwiXSA9IFwiZmllbGRcIjtcbiAgICAvLyBEUElfRmllbGRMaXN0LCBoYXZpbmcgdHlwZSBGaWVsZFByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJGaWVsZExpc3RcIl0gPSBcImZpZWxkTGlzdFwiO1xuICAgIC8vIERQSV9GaWVsZENvbHVtbiwgaGF2aW5nIHR5cGUgRmllbGRDb2x1bW5QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkZpZWxkQ29sdW1uXCJdID0gXCJjb2x1bW5cIjtcbiAgICAvLyBEUElfRmllbGRDb2x1bW5MaXN0LCBoYXZpbmcgdHlwZSBGaWVsZENvbHVtblByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJGaWVsZENvbHVtbkxpc3RcIl0gPSBcImNvbHVtbkxpc3RcIjtcbiAgICAvLyBEUElfUGFyYW1ldGVyLCBoYXZpbmcgdHlwZSBQYXJhbWV0ZXJQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlBhcmFtZXRlclwiXSA9IFwicGFyYW1ldGVyXCI7XG4gICAgLy8gRFBJX0RpbWVuc2lvbiwgaGF2aW5nIHR5cGUgRGltZW5zaW9uUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEaW1lbnNpb25cIl0gPSBcImRpbWVuc2lvblwiO1xuICAgIC8vIERQSV9BdHRyaWJ1dGVEaW1lbnNpb25MaXN0LCBoYXZpbmcgdHlwZSBEaW1lbnNpb25QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiQXR0cmlidXRlRGltZW5zaW9uTGlzdFwiXSA9IFwiYXR0cmlidXRlRGltZW5zaW9uTGlzdFwiO1xuICAgIC8vIERQSV9SZWxhdGlvbmFsVGFibGUsIGhhdmluZyB0eXBlIFJlbGF0aW9uYWxUYWJsZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUmVsYXRpb25hbFRhYmxlXCJdID0gXCJyZWxhdGlvbmFsVGFibGVcIjtcbiAgICAvLyBEUElfRHJpbGxQYXRoLCBoYXZpbmcgdHlwZSBEcmlsbFBhdGhQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRyaWxsUGF0aFwiXSA9IFwiZHJpbGxQYXRoXCI7XG4gICAgLy8gRFBJX0ZpZWxkRm9sZGVyLCBoYXZpbmcgdHlwZSBGaWVsZEZvbGRlclByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRmllbGRGb2xkZXJcIl0gPSBcImZpZWxkRm9sZGVyXCI7XG4gICAgLy8gRFBJX0dyb3VwLCBoYXZpbmcgdHlwZSBHcm91cFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiR3JvdXBcIl0gPSBcImdyb3VwXCI7XG4gICAgLy8gRFBJX0hpZXJhcmNoeSwgaGF2aW5nIHR5cGUgSGllcmFyY2h5UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJIaWVyYXJjaHlcIl0gPSBcImhpZXJhcmNoeVwiO1xuICAgIC8vIERQSV9IaWVyYXJjaHlMaXN0LCBoYXZpbmcgdHlwZSBIaWVyYXJjaHlQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiSGllcmFyY2h5TGlzdFwiXSA9IFwiaGllcmFyY2h5TGlzdFwiO1xuICAgIC8vIERQSV9IaWVyYXJjaHlNZW1iZXJTZWxlY3RlZFN0YXRlLCBoYXZpbmcgdHlwZSBIaWVyYXJjaHlTZWxlY3RfTWVtYmVyU2VsZWN0ZWRTdGF0ZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiSGllcmFyY2h5TWVtYmVyU2VsZWN0ZWRTdGF0ZVwiXSA9IFwiaGllcmFyY2h5TWVtYmVyU2VsZWN0ZWRTdGF0ZVwiO1xuICAgIC8vIERQSV9IaWVyYXJjaHlTZWxlY3Rpb25DaGFuZ2VzLCBoYXZpbmcgdHlwZSBIaWVyYXJjaHlTZWxlY3RfTWVtYmVyU2VsZWN0ZWRTdGF0ZVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJIaWVyYXJjaHlTZWxlY3Rpb25DaGFuZ2VzXCJdID0gXCJoaWVyYXJjaHlTZWxlY3Rpb25DaGFuZ2VzXCI7XG4gICAgLy8gRFBJX0Rpc3BsYXlGb2xkZXIsIGhhdmluZyB0eXBlIERpc3BsYXlGb2xkZXJQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRpc3BsYXlGb2xkZXJcIl0gPSBcImRpc3BsYXlGb2xkZXJcIjtcbiAgICAvLyBEUElfRGlzcGxheUZvbGRlckxpc3QsIGhhdmluZyB0eXBlIERpc3BsYXlGb2xkZXJQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiRGlzcGxheUZvbGRlckxpc3RcIl0gPSBcImRpc3BsYXlGb2xkZXJMaXN0XCI7XG4gICAgLy8gRFBJX0RhdGFTb3VyY2VMYXlvdXQsIGhhdmluZyB0eXBlIERhdGFTb3VyY2VMYXlvdXRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFTb3VyY2VMYXlvdXRcIl0gPSBcImRhdGFTb3VyY2VMYXlvdXRcIjtcbiAgICAvLyBEUElfQmFzZURhdGFTb3VyY2UsIGhhdmluZyB0eXBlIEJhc2VEYXRhU291cmNlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJCYXNlRGF0YVNvdXJjZVwiXSA9IFwiYmFzZURhdGFTb3VyY2VcIjtcbiAgICAvLyBEUElfQmFzZURhdGFTb3VyY2VzLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIEJhc2VEYXRhU291cmNlUHJlc01vZGVsKVxuICAgIFBhcmFtZXRlcklkW1wiQmFzZURhdGFTb3VyY2VzXCJdID0gXCJiYXNlRGF0YVNvdXJjZXNcIjtcbiAgICAvLyBEUElfRGF0YVNvdXJjZSwgaGF2aW5nIHR5cGUgRGF0YVNvdXJjZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRGF0YVNvdXJjZVwiXSA9IFwiZGF0YVNvdXJjZVwiO1xuICAgIC8vIERQSV9EYXRhU291cmNlcywgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBEYXRhU291cmNlUHJlc01vZGVsKVxuICAgIFBhcmFtZXRlcklkW1wiRGF0YVNvdXJjZXNcIl0gPSBcImRhdGFTb3VyY2VzXCI7XG4gICAgLy8gRFBJX1NjaGVtYVZpZXdlckRhdGFTb3VyY2UsIGhhdmluZyB0eXBlIFNjaGVtYVZpZXdlckRhdGFTb3VyY2VQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlNjaGVtYVZpZXdlckRhdGFTb3VyY2VcIl0gPSBcInNjaGVtYVZpZXdlckRhdGFTb3VyY2VcIjtcbiAgICAvLyBEUElfU2NoZW1hVmlld2VyRGF0YVNvdXJjZXMsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2YgU2NoZW1hVmlld2VyRGF0YVNvdXJjZVByZXNNb2RlbClcbiAgICBQYXJhbWV0ZXJJZFtcIlNjaGVtYVZpZXdlckRhdGFTb3VyY2VzXCJdID0gXCJzY2hlbWFWaWV3ZXJEYXRhU291cmNlc1wiO1xuICAgIC8vIERQSV9CYXNlRGF0YVNjaGVtYSwgaGF2aW5nIHR5cGUgQmFzZURhdGFTY2hlbWFQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkJhc2VEYXRhU2NoZW1hXCJdID0gXCJiYXNlRGF0YVNjaGVtYVwiO1xuICAgIC8vIERQSV9EYXRhU2NoZW1hLCBoYXZpbmcgdHlwZSBEYXRhU2NoZW1hUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEYXRhU2NoZW1hXCJdID0gXCJkYXRhU2NoZW1hXCI7XG4gICAgLy8gRFBJX1NjaGVtYVZpZXdlckRhdGFTY2hlbWEsIGhhdmluZyB0eXBlIFNjaGVtYVZpZXdlckRhdGFTY2hlbWFQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlNjaGVtYVZpZXdlckRhdGFTY2hlbWFcIl0gPSBcInNjaGVtYVZpZXdlckRhdGFTY2hlbWFcIjtcbiAgICAvLyBEUElfU2hlZXRMaXN0SXRlbSwgaGF2aW5nIHR5cGUgU2hlZXRMaXN0SXRlbVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU2hlZXRMaXN0SXRlbVwiXSA9IFwic2hlZXRMaXN0SXRlbVwiO1xuICAgIC8vIERQSV9TaGVldExpc3RJdGVtcywgaGF2aW5nIHR5cGUgU2hlZXRMaXN0SXRlbVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJTaGVldExpc3RJdGVtc1wiXSA9IFwic2hlZXRMaXN0SXRlbXNcIjtcbiAgICAvLyBEUElfU2hlZXRMaXN0LCBoYXZpbmcgdHlwZSBTaGVldExpc3RQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlNoZWV0TGlzdFwiXSA9IFwic2hlZXRMaXN0XCI7XG4gICAgLy8gRFBJX1NpemVNb2RlT3B0aW9uLCBoYXZpbmcgdHlwZSBTaXplTW9kZU9wdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU2l6ZU1vZGVPcHRpb25cIl0gPSBcInNpemVNb2RlT3B0aW9uXCI7XG4gICAgLy8gRFBJX1NpemVNb2RlT3B0aW9ucywgaGF2aW5nIHR5cGUgU2l6ZU1vZGVPcHRpb25QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiU2l6ZU1vZGVPcHRpb25zXCJdID0gXCJzaXplTW9kZU9wdGlvbnNcIjtcbiAgICAvLyBEUElfRGFzaGJvYXJkU2l6ZUNvbnRyb2wsIGhhdmluZyB0eXBlIERhc2hib2FyZFNpemVDb250cm9sUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEYXNoYm9hcmRTaXplQ29udHJvbFwiXSA9IFwiZGFzaGJvYXJkU2l6ZUNvbnRyb2xcIjtcbiAgICAvLyBEUElfRGV2aWNlTGF5b3V0SW5mb0l0ZW0sIGhhdmluZyB0eXBlIERldmljZUxheW91dEluZm9JdGVtUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEZXZpY2VMYXlvdXRJbmZvSXRlbVwiXSA9IFwiZGV2aWNlTGF5b3V0SW5mb0l0ZW1cIjtcbiAgICAvLyBEUElfRGV2aWNlTGF5b3V0SW5mb0l0ZW1zLCBoYXZpbmcgdHlwZSBEZXZpY2VMYXlvdXRJbmZvSXRlbVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJEZXZpY2VMYXlvdXRJbmZvSXRlbXNcIl0gPSBcImRldmljZUxheW91dEluZm9JdGVtc1wiO1xuICAgIC8vIERQSV9EZXZpY2VMYXlvdXRJbmZvTGlzdCwgaGF2aW5nIHR5cGUgRGV2aWNlTGF5b3V0SW5mb0xpc3RQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRldmljZUxheW91dEluZm9MaXN0XCJdID0gXCJkZXZpY2VMYXlvdXRJbmZvTGlzdFwiO1xuICAgIC8vIERQSV9TcGVjaWFsaXplZERldmljZUxheW91dEl0ZW0sIGhhdmluZyB0eXBlIFNwZWNpYWxpemVkRGV2aWNlTGF5b3V0SXRlbVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU3BlY2lhbGl6ZWREZXZpY2VMYXlvdXRJdGVtXCJdID0gXCJzcGVjaWFsaXplZERldmljZUxheW91dEl0ZW1cIjtcbiAgICAvLyBEUElfU3BlY2lhbGl6ZWREZXZpY2VMYXlvdXRJdGVtcywgaGF2aW5nIHR5cGUgU3BlY2lhbGl6ZWREZXZpY2VMYXlvdXRJdGVtUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlNwZWNpYWxpemVkRGV2aWNlTGF5b3V0SXRlbXNcIl0gPSBcInNwZWNpYWxpemVkRGV2aWNlTGF5b3V0SXRlbXNcIjtcbiAgICAvLyBEUElfU3BlY2lhbGl6ZWREZXZpY2VMYXlvdXRMaXN0LCBoYXZpbmcgdHlwZSBTcGVjaWFsaXplZERldmljZUxheW91dExpc3RQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlNwZWNpYWxpemVkRGV2aWNlTGF5b3V0TGlzdFwiXSA9IFwic3BlY2lhbGl6ZWREZXZpY2VMYXlvdXRMaXN0XCI7XG4gICAgLy8gRFBJX1NpemVJdGVtLCBoYXZpbmcgdHlwZSBTaXplSXRlbVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU2l6ZUl0ZW1cIl0gPSBcInNpemVJdGVtXCI7XG4gICAgLy8gRFBJX1NpemVJdGVtcywgaGF2aW5nIHR5cGUgU2l6ZUl0ZW1QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiU2l6ZUl0ZW1zXCJdID0gXCJzaXplSXRlbXNcIjtcbiAgICAvLyBEUElfRGV2aWNlU2l6ZXNMaXN0LCBoYXZpbmcgdHlwZSBTaXplSXRlbUxpc3RQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRldmljZVNpemVzTGlzdFwiXSA9IFwiZGV2aWNlU2l6ZXNMaXN0XCI7XG4gICAgLy8gRFBJX1ByZXNldFNpemVzTGlzdCwgaGF2aW5nIHR5cGUgU2l6ZUl0ZW1MaXN0UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJQcmVzZXRTaXplc0xpc3RcIl0gPSBcInByZXNldFNpemVzTGlzdFwiO1xuICAgIC8vIERQSV9TaXplSXRlbUxpc3QsIGhhdmluZyB0eXBlIFNpemVJdGVtTGlzdFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU2l6ZUl0ZW1MaXN0XCJdID0gXCJzaXplSXRlbUxpc3RcIjtcbiAgICAvLyBEUElfU3Vic3RpdHV0aW9uS2V5d29yZCwgaGF2aW5nIHR5cGUgU3Vic3RpdHV0aW9uS2V5d29yZFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU3Vic3RpdHV0aW9uS2V5d29yZFwiXSA9IFwic3Vic3RpdHV0aW9uS2V5d29yZFwiO1xuICAgIC8vIERQSV9TdWJzdGl0dXRpb25LZXl3b3JkcywgaGF2aW5nIHR5cGUgU3Vic3RpdHV0aW9uS2V5d29yZFByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJTdWJzdGl0dXRpb25LZXl3b3Jkc1wiXSA9IFwic3Vic3RpdHV0aW9uS2V5d29yZHNcIjtcbiAgICAvLyBEUElfU3Vic3RpdHV0aW9uS2V5d29yZFN1Ykxpc3QsIGhhdmluZyB0eXBlIFN1YnN0aXR1dGlvbktleXdvcmRTdWJMaXN0UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTdWJzdGl0dXRpb25LZXl3b3JkU3ViTGlzdFwiXSA9IFwic3Vic3RpdHV0aW9uS2V5d29yZHNTdWJsaXN0XCI7XG4gICAgLy8gRFBJX1N1YnN0aXR1dGlvbktleXdvcmRTdWJMaXN0cywgaGF2aW5nIHR5cGUgU3Vic3RpdHV0aW9uS2V5d29yZFN1Ykxpc3RQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiU3Vic3RpdHV0aW9uS2V5d29yZFN1Ykxpc3RzXCJdID0gXCJzdWJzdGl0dXRpb25LZXl3b3JkU3VibGlzdHNcIjtcbiAgICAvLyBEUElfU3Vic3RpdHV0aW9uS2V5d29yZExpc3QsIGhhdmluZyB0eXBlIFN1YnN0aXR1dGlvbktleXdvcmRMaXN0UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTdWJzdGl0dXRpb25LZXl3b3JkTGlzdFwiXSA9IFwic3Vic3RpdHV0aW9uS2V5d29yZHNMaXN0XCI7XG4gICAgLy8gRFBJX0RldmljZVpvbmVMaXN0SXRlbSwgaGF2aW5nIHR5cGUgRGV2aWNlWm9uZUxpc3RJdGVtUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEZXZpY2Vab25lTGlzdEl0ZW1cIl0gPSBcImRldmljZVpvbmVMaXN0SXRlbVwiO1xuICAgIC8vIERQSV9EZXZpY2Vab25lTGlzdEl0ZW1zLCBoYXZpbmcgdHlwZSBEZXZpY2Vab25lTGlzdEl0ZW1QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiRGV2aWNlWm9uZUxpc3RJdGVtc1wiXSA9IFwiZGV2aWNlWm9uZUxpc3RJdGVtc1wiO1xuICAgIC8vIERQSV9EZXZpY2Vab25lTGlzdCwgaGF2aW5nIHR5cGUgRGV2aWNlWm9uZUxpc3RQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRldmljZVpvbmVMaXN0XCJdID0gXCJkZXZpY2Vab25lTGlzdFwiO1xuICAgIC8vIERQSV9ab25lU25hcExpbmVMaXN0SXRlbSwgaGF2aW5nIHR5cGUgWm9uZVNuYXBMaW5lTGlzdEl0ZW1QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlpvbmVTbmFwTGluZUxpc3RJdGVtXCJdID0gXCJzbmFwTGluZUxpc3RJdGVtXCI7XG4gICAgLy8gRFBJX091dGVySG9yaXpvbnRhbFNuYXBMaW5lcywgaGF2aW5nIHR5cGUgWm9uZVNuYXBMaW5lTGlzdEl0ZW1QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiT3V0ZXJIb3Jpem9udGFsU25hcExpbmVzXCJdID0gXCJvdXRlckhvcml6b250YWxTbmFwTGluZXNcIjtcbiAgICAvLyBEUElfT3V0ZXJWZXJ0aWNhbFNuYXBMaW5lcywgaGF2aW5nIHR5cGUgWm9uZVNuYXBMaW5lTGlzdEl0ZW1QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiT3V0ZXJWZXJ0aWNhbFNuYXBMaW5lc1wiXSA9IFwib3V0ZXJWZXJ0aWNhbFNuYXBMaW5lc1wiO1xuICAgIC8vIERQSV9Jbm5lckhvcml6b250YWxTbmFwTGluZXMsIGhhdmluZyB0eXBlIFpvbmVTbmFwTGluZUxpc3RJdGVtUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIklubmVySG9yaXpvbnRhbFNuYXBMaW5lc1wiXSA9IFwiaW5uZXJIb3Jpem9udGFsU25hcExpbmVzXCI7XG4gICAgLy8gRFBJX0lubmVyVmVydGljYWxTbmFwTGluZXMsIGhhdmluZyB0eXBlIFpvbmVTbmFwTGluZUxpc3RJdGVtUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIklubmVyVmVydGljYWxTbmFwTGluZXNcIl0gPSBcImlubmVyVmVydGljYWxTbmFwTGluZXNcIjtcbiAgICAvLyBEUElfWm9uZVNuYXBMaW5lTGlzdCwgaGF2aW5nIHR5cGUgWm9uZVNuYXBMaW5lTGlzdFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiWm9uZVNuYXBMaW5lTGlzdFwiXSA9IFwic25hcExpbmVMaXN0XCI7XG4gICAgLy8gRFBJX0Rhc2hib2FyZFpvbmVIaWVyYXJjaHksIGhhdmluZyB0eXBlIERhc2hib2FyZFpvbmVIaWVyYXJjaHlQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRhc2hib2FyZFpvbmVIaWVyYXJjaHlcIl0gPSBcImRhc2hib2FyZFpvbmVIaWVyYXJjaHlcIjtcbiAgICAvLyBEUElfRGV2aWNlWm9uZVZpc2liaWxpdHlMaXN0SXRlbSwgaGF2aW5nIHR5cGUgRGV2aWNlWm9uZVZpc2liaWxpdHlMaXN0SXRlbVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRGV2aWNlWm9uZVZpc2liaWxpdHlMaXN0SXRlbVwiXSA9IFwiZGV2aWNlWm9uZVZpc2liaWxpdHlMaXN0SXRlbVwiO1xuICAgIC8vIERQSV9EZXZpY2Vab25lVmlzaWJpbGl0eUxpc3RJdGVtcywgaGF2aW5nIHR5cGUgRGV2aWNlWm9uZVZpc2liaWxpdHlMaXN0SXRlbVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJEZXZpY2Vab25lVmlzaWJpbGl0eUxpc3RJdGVtc1wiXSA9IFwiZGV2aWNlWm9uZVZpc2liaWxpdHlMaXN0SXRlbXNcIjtcbiAgICAvLyBEUElfRGV2aWNlWm9uZVZpc2liaWxpdHlMaXN0LCBoYXZpbmcgdHlwZSBEZXZpY2Vab25lVmlzaWJpbGl0eUxpc3RQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRldmljZVpvbmVWaXNpYmlsaXR5TGlzdFwiXSA9IFwiZGV2aWNlWm9uZVZpc2liaWxpdHlMaXN0XCI7XG4gICAgLy8gRFBJX1dvcmtzaGVldERhdGFTY2hlbWEsIGhhdmluZyB0eXBlIFdvcmtzaGVldERhdGFTY2hlbWFQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIldvcmtzaGVldERhdGFTY2hlbWFcIl0gPSBcIndvcmtzaGVldERhdGFTY2hlbWFcIjtcbiAgICAvLyBEUElfV29ya3NoZWV0RGF0YVNjaGVtYU1hcCwgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBXb3Jrc2hlZXREYXRhU2NoZW1hUHJlc01vZGVsKVxuICAgIFBhcmFtZXRlcklkW1wiV29ya3NoZWV0RGF0YVNjaGVtYU1hcFwiXSA9IFwid29ya3NoZWV0RGF0YVNjaGVtYU1hcFwiO1xuICAgIC8vIERQSV9TaGVsZiwgaGF2aW5nIHR5cGUgU2hlbGZQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlNoZWxmXCJdID0gXCJzaGVsZlwiO1xuICAgIC8vIERQSV9TaGVsZkRldGFpbCwgaGF2aW5nIHR5cGUgU2hlbGZQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlNoZWxmRGV0YWlsXCJdID0gXCJzaGVsZkRldGFpbFwiO1xuICAgIC8vIERQSV9TaGVsZkxpc3QsIGhhdmluZyB0eXBlIFNoZWxmUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlNoZWxmTGlzdFwiXSA9IFwic2hlbGZMaXN0XCI7XG4gICAgLy8gRFBJX1NoZWxmSXRlbSwgaGF2aW5nIHR5cGUgU2hlbGZJdGVtUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTaGVsZkl0ZW1cIl0gPSBcInNoZWxmSXRlbVwiO1xuICAgIC8vIERQSV9TaGVsZkl0ZW1zLCBoYXZpbmcgdHlwZSBTaGVsZkl0ZW1QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiU2hlbGZJdGVtc1wiXSA9IFwic2hlbGZJdGVtc1wiO1xuICAgIC8vIERQSV9TaGVsdmVzLCBoYXZpbmcgdHlwZSBTaGVsdmVzUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTaGVsdmVzXCJdID0gXCJzaGVsdmVzXCI7XG4gICAgLy8gRFBJX0ZpZWxkRW5jb2RpbmcsIGhhdmluZyB0eXBlIEZpZWxkRW5jb2RpbmdQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkZpZWxkRW5jb2RpbmdcIl0gPSBcImZpZWxkRW5jb2RpbmdcIjtcbiAgICAvLyBEUElfRmllbGRFbmNvZGluZ3MsIGhhdmluZyB0eXBlIEZpZWxkRW5jb2RpbmdQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiRmllbGRFbmNvZGluZ3NcIl0gPSBcImZpZWxkRW5jb2RpbmdzXCI7XG4gICAgLy8gRFBJX1ViZXJUaXAsIGhhdmluZyB0eXBlIFViZXJUaXBQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlViZXJUaXBcIl0gPSBcInViZXJUaXBcIjtcbiAgICAvLyBEUElfQW5hbHl0aWNzT2JqZWN0RHJhZ0luZm8sIGhhdmluZyB0eXBlIEFuYWx5dGljc09iamVjdERyYWdJbmZvUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJBbmFseXRpY3NPYmplY3REcmFnSW5mb1wiXSA9IFwiYW5hbHl0aWNzT2JqZWN0RHJhZ0luZm9cIjtcbiAgICAvLyBEUElfVHJlbmRMaW5lLCBoYXZpbmcgdHlwZSBUcmVuZExpbmVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlRyZW5kTGluZVwiXSA9IFwidHJlbmRMaW5lXCI7XG4gICAgLy8gRFBJX1RyZW5kTGluZURpYWxvZywgaGF2aW5nIHR5cGUgVHJlbmRMaW5lRGlhbG9nUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJUcmVuZExpbmVEaWFsb2dcIl0gPSBcInRyZW5kTGluZURpYWxvZ1wiO1xuICAgIC8vIERQSV9UcmVuZExpbmVEZXNjcmliZVByZXNNb2RlbCwgaGF2aW5nIHR5cGUgVHJlbmRMaW5lRGVzY3JpYmVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlRyZW5kTGluZURlc2NyaWJlUHJlc01vZGVsXCJdID0gXCJ0cmVuZExpbmVEZXNjcmliZVByZXNNb2RlbFwiO1xuICAgIC8vIERQSV9UcmVuZExpbmVBT1ZNb2RlbFByZXNNb2RlbCwgaGF2aW5nIHR5cGUgVHJlbmRMaW5lQU9WTW9kZWxQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlRyZW5kTGluZUFPVk1vZGVsUHJlc01vZGVsXCJdID0gXCJ0cmVuZExpbmVBb3ZNb2RlbFByZXNNb2RlbFwiO1xuICAgIC8vIERQSV9UcmVuZExpbmVBT1ZNb2RlbHNQcmVzTW9kZWwsIGhhdmluZyB0eXBlIFRyZW5kTGluZUFPVk1vZGVsUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlRyZW5kTGluZUFPVk1vZGVsc1ByZXNNb2RlbFwiXSA9IFwidHJlbmRNb2RlbERlc2NyaXB0aW9uVmVjdG9yXCI7XG4gICAgLy8gRFBJX1RyZW5kTGluZUxpbmVDb2VmZmljaWVudFByZXNNb2RlbCwgaGF2aW5nIHR5cGUgVHJlbmRMaW5lTGluZUNvZWZmaWNpZW50UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJUcmVuZExpbmVMaW5lQ29lZmZpY2llbnRQcmVzTW9kZWxcIl0gPSBcInRyZW5kTGluZUxpbmVDb2VmZmljaWVudFwiO1xuICAgIC8vIERQSV9UcmVuZExpbmVMaW5lQ29lZmZpY2llbnRzUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBUcmVuZExpbmVMaW5lQ29lZmZpY2llbnRQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiVHJlbmRMaW5lTGluZUNvZWZmaWNpZW50c1ByZXNNb2RlbFwiXSA9IFwidHJlbmRMaW5lTGluZUNvZWZmaWNpZW50c1ByZXNNb2RlbFwiO1xuICAgIC8vIERQSV9UcmVuZExpbmVMaW5lc1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgVHJlbmRMaW5lTGluZXNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlRyZW5kTGluZUxpbmVzUHJlc01vZGVsXCJdID0gXCJ0cmVuZExpbmVMaW5lc1ByZXNNb2RlbFwiO1xuICAgIC8vIERQSV9UcmVuZExpbmVBT1ZQcmVzTW9kZWwsIGhhdmluZyB0eXBlIFRyZW5kTGluZUFPVlByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVHJlbmRMaW5lQU9WUHJlc01vZGVsXCJdID0gXCJ0cmVuZExpbmVBbm92YVByZXNNb2RlbFwiO1xuICAgIC8vIERQSV9SZWZlcmVuY2VMaW5lLCBoYXZpbmcgdHlwZSBSZWZlcmVuY2VMaW5lUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJSZWZlcmVuY2VMaW5lXCJdID0gXCJyZWZlcmVuY2VMaW5lXCI7XG4gICAgLy8gRFBJX1JlZmVyZW5jZUxpbmVzLCBoYXZpbmcgdHlwZSBSZWZlcmVuY2VMaW5lUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlJlZmVyZW5jZUxpbmVzXCJdID0gXCJyZWZlcmVuY2VMaW5lc1wiO1xuICAgIC8vIERQSV9QZXJjZW50aWxlRWRpdERhdGFWYWx1ZSwgaGF2aW5nIHR5cGUgRWRpdERhdGFWYWx1ZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUGVyY2VudGlsZUVkaXREYXRhVmFsdWVcIl0gPSBcInBlcmNlbnRpbGVFZGl0RGF0YVZhbHVlXCI7XG4gICAgLy8gRFBJX0xpbWl0RWRpdERhdGFWYWx1ZSwgaGF2aW5nIHR5cGUgRWRpdERhdGFWYWx1ZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiTGltaXRFZGl0RGF0YVZhbHVlXCJdID0gXCJsaW1pdEVkaXREYXRhVmFsdWVcIjtcbiAgICAvLyBEUElfQ29uZmlkZW5jZUxldmVsQ29tYm8sIGhhdmluZyB0eXBlIEVkaXRWYWx1ZVdpZGdldFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ29uZmlkZW5jZUxldmVsQ29tYm9cIl0gPSBcImNvbmZpZGVuY2VMZXZlbENvbWJvXCI7XG4gICAgLy8gRFBJX0Rpc3RyaWJ1dGlvblF1YW50aWxlc0NvbWJvLCBoYXZpbmcgdHlwZSBFZGl0VmFsdWVXaWRnZXRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRpc3RyaWJ1dGlvblF1YW50aWxlc0NvbWJvXCJdID0gXCJkaXN0cmlidXRpb25RdWFudGlsZXNMZXZlbENvbWJvXCI7XG4gICAgLy8gRFBJX1BlcmNlbnRpbGVzQ29tYm8sIGhhdmluZyB0eXBlIEVkaXRWYWx1ZVdpZGdldFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUGVyY2VudGlsZXNDb21ib1wiXSA9IFwiZGlzdHJpYnV0aW9uUGVyY2VudGlsZXNMZXZlbENvbWJvXCI7XG4gICAgLy8gRFBJX051bWVyaWNCaW5TaXplQ29tYm8sIGhhdmluZyB0eXBlIEVkaXRWYWx1ZVdpZGdldFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiTnVtZXJpY0JpblNpemVDb21ib1wiXSA9IFwibnVtZXJpY0JpblNpemVDb21ib1wiO1xuICAgIC8vIERQSV9GaWVsZFBpY2tlckZpZWxkLCBoYXZpbmcgdHlwZSBGaWVsZFBpY2tlckZpZWxkUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJGaWVsZFBpY2tlckZpZWxkXCJdID0gXCJmaWVsZFBpY2tlckZpZWxkXCI7XG4gICAgLy8gRFBJX0ZpZWxkUGlja2VyRmllbGRzLCBoYXZpbmcgdHlwZSBGaWVsZFBpY2tlckZpZWxkUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkZpZWxkUGlja2VyRmllbGRzXCJdID0gXCJmaWVsZFBpY2tlckZpZWxkc1wiO1xuICAgIC8vIERQSV9GaWVsZFBpY2tlckNvbWJvLCBoYXZpbmcgdHlwZSBGaWVsZFBpY2tlckNvbWJvUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJGaWVsZFBpY2tlckNvbWJvXCJdID0gXCJmaWVsZFBpY2tlckNvbWJvXCI7XG4gICAgLy8gRFBJX1BhaXJlZEZpZWxkUGlja2VyQ29tYm8sIGhhdmluZyB0eXBlIEZpZWxkUGlja2VyQ29tYm9QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlBhaXJlZEZpZWxkUGlja2VyQ29tYm9cIl0gPSBcInBhaXJlZEZpZWxkUGlja2VyQ29tYm9cIjtcbiAgICAvLyBEUElfUmVmZXJlbmNlTGluZUVkaXRvclByZXNNb2RlbCwgaGF2aW5nIHR5cGUgUmVmZXJlbmNlTGluZUVkaXRvclByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUmVmZXJlbmNlTGluZUVkaXRvclByZXNNb2RlbFwiXSA9IFwicmVmZXJlbmNlTGluZUVkaXRvclwiO1xuICAgIC8vIERQSV9DbG9zZURhdGFTb3VyY2VFcnJvckRpYWxvZ1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgQ2xvc2VEYXRhU291cmNlRXJyb3JEaWFsb2dQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNsb3NlRGF0YVNvdXJjZUVycm9yRGlhbG9nUHJlc01vZGVsXCJdID0gXCJjbG9zZURzRXJyb3JEaWFsb2dcIjtcbiAgICAvLyBEUElfRWRpdFJlZmVyZW5jZUxpbmUsIGhhdmluZyB0eXBlIEVkaXRSZWZlcmVuY2VMaW5lUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJFZGl0UmVmZXJlbmNlTGluZVwiXSA9IFwiZWRpdFJlZmVyZW5jZUxpbmVcIjtcbiAgICAvLyBEUElfRWRpdFJlZmVyZW5jZUJhbmQsIGhhdmluZyB0eXBlIEVkaXRSZWZlcmVuY2VCYW5kUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJFZGl0UmVmZXJlbmNlQmFuZFwiXSA9IFwiZWRpdFJlZmVyZW5jZUJhbmRcIjtcbiAgICAvLyBEUElfRWRpdERpc3RyaWJ1dGlvbiwgaGF2aW5nIHR5cGUgRWRpdERpc3RyaWJ1dGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRWRpdERpc3RyaWJ1dGlvblwiXSA9IFwiZWRpdERpc3RyaWJ1dGlvblwiO1xuICAgIC8vIERQSV9EaXN0cmlidXRpb25QZXJjZW50YWdlcywgaGF2aW5nIHR5cGUgRGlzdHJpYnV0aW9uUGVyY2VudGFnZXNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRpc3RyaWJ1dGlvblBlcmNlbnRhZ2VzXCJdID0gXCJkaXN0cmlidXRpb25QZXJjZW50YWdlc1wiO1xuICAgIC8vIERQSV9EaXN0cmlidXRpb25QZXJjZW50aWxlcywgaGF2aW5nIHR5cGUgRGlzdHJpYnV0aW9uUGVyY2VudGlsZXNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRpc3RyaWJ1dGlvblBlcmNlbnRpbGVzXCJdID0gXCJkaXN0cmlidXRpb25QZXJjZW50aWxlc1wiO1xuICAgIC8vIERQSV9EaXN0cmlidXRpb25RdWFudGlsZXMsIGhhdmluZyB0eXBlIERpc3RyaWJ1dGlvblF1YW50aWxlc1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRGlzdHJpYnV0aW9uUXVhbnRpbGVzXCJdID0gXCJkaXN0cmlidXRpb25RdWFudGlsZXNcIjtcbiAgICAvLyBEUElfRGlzdHJpYnV0aW9uU3RhbmRhcmREZXZpYXRpb24sIGhhdmluZyB0eXBlIERpc3RyaWJ1dGlvblN0YW5kYXJkRGV2aWF0aW9uUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEaXN0cmlidXRpb25TdGFuZGFyZERldmlhdGlvblwiXSA9IFwiZGlzdHJpYnV0aW9uU3RkZGV2XCI7XG4gICAgLy8gRFBJX1NvcnRJbmRpY2F0b3JzLCBoYXZpbmcgdHlwZSBTb3J0SW5kaWNhdG9yc1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU29ydEluZGljYXRvcnNcIl0gPSBcInNvcnRJbmRpY2F0b3JzXCI7XG4gICAgLy8gRFBJX1NvcnRJbmRpY2F0b3JSZWdpb24sIGhhdmluZyB0eXBlIFNvcnRJbmRpY2F0b3JSZWdpb25QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlNvcnRJbmRpY2F0b3JSZWdpb25cIl0gPSBcInNvcnRJbmRpY2F0b3JSZWdpb25cIjtcbiAgICAvLyBEUElfU29ydEluZGljYXRvclJlZ2lvbnMsIGhhdmluZyB0eXBlIFNvcnRJbmRpY2F0b3JSZWdpb25QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiU29ydEluZGljYXRvclJlZ2lvbnNcIl0gPSBcInNvcnRJbmRpY2F0b3JSZWdpb25zXCI7XG4gICAgLy8gRFBJX1NvcnRJbmRpY2F0b3JJdGVtLCBoYXZpbmcgdHlwZSBTb3J0SW5kaWNhdG9ySXRlbVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU29ydEluZGljYXRvckl0ZW1cIl0gPSBcInNvcnRJbmRpY2F0b3JJdGVtXCI7XG4gICAgLy8gRFBJX1NvcnRJbmRpY2F0b3JJdGVtcywgaGF2aW5nIHR5cGUgU29ydEluZGljYXRvckl0ZW1QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiU29ydEluZGljYXRvckl0ZW1zXCJdID0gXCJzb3J0SW5kaWNhdG9ySXRlbXNcIjtcbiAgICAvLyBEUElfQnVpbGRlckNvbmZpZywgaGF2aW5nIHR5cGUgQnVpbGRlckNvbmZpZ1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQnVpbGRlckNvbmZpZ1wiXSA9IFwiYnVpbGRlckNvbmZpZ1wiO1xuICAgIC8vIERQSV9TaGVldExheW91dEluZm8sIGhhdmluZyB0eXBlIFNoZWV0TGF5b3V0SW5mb1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU2hlZXRMYXlvdXRJbmZvXCJdID0gXCJzaGVldExheW91dEluZm9cIjtcbiAgICAvLyBEUElfQXJlYVJlY3QsIGhhdmluZyB0eXBlIFJlY3RhbmdsZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQXJlYVJlY3RcIl0gPSBcImFyZWFSZWN0XCI7XG4gICAgLy8gRFBJX0JvcmRlciwgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJCb3JkZXJcIl0gPSBcImJvcmRlclJlY3RcIjtcbiAgICAvLyBEUElfQm91bmRzUmVjdCwgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJCb3VuZHNSZWN0XCJdID0gXCJib3VuZHNSZWN0XCI7XG4gICAgLy8gRFBJX0J1dHRvblJlY3QsIGhhdmluZyB0eXBlIFJlY3RhbmdsZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQnV0dG9uUmVjdFwiXSA9IFwiYnV0dG9uUmVjdFwiO1xuICAgIC8vIERQSV9EcmFnUmVjdCwgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEcmFnUmVjdFwiXSA9IFwiZHJhZ1JlY3RcIjtcbiAgICAvLyBEUElfRm9jdXNSZWN0LCBoYXZpbmcgdHlwZSBSZWN0YW5nbGVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkZvY3VzUmVjdFwiXSA9IFwiZm9jdXNSZWN0XCI7XG4gICAgLy8gRFBJX0ltYWdlVGlsZVJlY3QsIGhhdmluZyB0eXBlIFJlY3RhbmdsZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiSW1hZ2VUaWxlUmVjdFwiXSA9IFwidGlsZVJlY3RcIjtcbiAgICAvLyBEUElfSXRlbVJlY3QsIGhhdmluZyB0eXBlIFJlY3RhbmdsZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiSXRlbVJlY3RcIl0gPSBcIml0ZW1SZWN0XCI7XG4gICAgLy8gRFBJX0xhYmVsUmVjdCwgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJMYWJlbFJlY3RcIl0gPSBcImxhYmVsUmVjdFwiO1xuICAgIC8vIERQSV9NYXJrUmVjdCwgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJNYXJrUmVjdFwiXSA9IFwibWFya1JlY3RcIjtcbiAgICAvLyBEUElfTWFya1Rvb2x0aXBSZWN0LCBoYXZpbmcgdHlwZSBSZWN0YW5nbGVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIk1hcmtUb29sdGlwUmVjdFwiXSA9IFwibWFya1Rvb2x0aXBSZWN0XCI7XG4gICAgLy8gRFBJX01lbnVCdXR0b25SZWN0LCBoYXZpbmcgdHlwZSBSZWN0YW5nbGVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIk1lbnVCdXR0b25SZWN0XCJdID0gXCJtZW51QnV0dG9uUmVjdFwiO1xuICAgIC8vIERQSV9PdXRSZWdpb25SZWN0LCBoYXZpbmcgdHlwZSBSZWN0YW5nbGVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIk91dFJlZ2lvblJlY3RcIl0gPSBcIm91dFJlZ2lvblJlY3RcIjtcbiAgICAvLyBEUElfUGFuZVJlY3QsIGhhdmluZyB0eXBlIFJlY3RhbmdsZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUGFuZVJlY3RcIl0gPSBcInBhbmVSZWN0XCI7XG4gICAgLy8gRFBJX1BpeGVsRXh0ZW50cywgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJQaXhlbEV4dGVudHNcIl0gPSBcInBpeGVsRXh0ZW50c1wiO1xuICAgIC8vIERQSV9SZWN0TWF4TGFiZWwsIGhhdmluZyB0eXBlIFJlY3RhbmdsZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUmVjdE1heExhYmVsXCJdID0gXCJyZWN0TWF4TGFiZWxcIjtcbiAgICAvLyBEUElfUmVjdE1pbkxhYmVsLCBoYXZpbmcgdHlwZSBSZWN0YW5nbGVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlJlY3RNaW5MYWJlbFwiXSA9IFwicmVjdE1pbkxhYmVsXCI7XG4gICAgLy8gRFBJX1JlY3RSYW1wLCBoYXZpbmcgdHlwZSBSZWN0YW5nbGVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlJlY3RSYW1wXCJdID0gXCJyZWN0UmFtcFwiO1xuICAgIC8vIERQSV9SZWN0VGl0bGUsIGhhdmluZyB0eXBlIFJlY3RhbmdsZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUmVjdFRpdGxlXCJdID0gXCJyZWN0VGl0bGVcIjtcbiAgICAvLyBEUElfUmVnaW9uUmVjdCwgaGF2aW5nIHR5cGUgUmVjdGFuZ2xlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJSZWdpb25SZWN0XCJdID0gXCJyZWdpb25SZWN0XCI7XG4gICAgLy8gRFBJX1NlbGVjdGlvblJlY3QsIGhhdmluZyB0eXBlIFJlY3RhbmdsZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU2VsZWN0aW9uUmVjdFwiXSA9IFwic2VsZWN0aW9uUmVjdFwiO1xuICAgIC8vIERQSV9VbnVzZWRSZWN0LCBoYXZpbmcgdHlwZSBSZWN0YW5nbGVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlVudXNlZFJlY3RcIl0gPSBcInVudXNlZFJlY3RcIjtcbiAgICAvLyBEUElfWm9uZUVkZ2VSZWN0LCBoYXZpbmcgdHlwZSBSZWN0YW5nbGVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlpvbmVFZGdlUmVjdFwiXSA9IFwiem9uZUVkZ2VcIjtcbiAgICAvLyBEUElfWm9uZUVkZ2VSZWN0UGl4LCBoYXZpbmcgdHlwZSBSZWN0YW5nbGVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlpvbmVFZGdlUmVjdFBpeFwiXSA9IFwiem9uZUVkZ2VQaXhcIjtcbiAgICAvLyBEUElfWm9uZUVkZ2VSZWN0UHAsIGhhdmluZyB0eXBlIFJlY3RhbmdsZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiWm9uZUVkZ2VSZWN0UHBcIl0gPSBcInpvbmVFZGdlUHBcIjtcbiAgICAvLyBEUElfVUlBdXRvbWF0aW9uTGlua1JlY3QsIGhhdmluZyB0eXBlIFJlY3RhbmdsZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVUlBdXRvbWF0aW9uTGlua1JlY3RcIl0gPSBcImxpbmtSZWN0XCI7XG4gICAgLy8gRFBJX0JvcmRlcnMsIGhhdmluZyB0eXBlIFJlY3RhbmdsZVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJCb3JkZXJzXCJdID0gXCJib3JkZXJSZWN0c1wiO1xuICAgIC8vIERQSV9VSUF1dG9tYXRpb25MaW5rUmVjdHMsIGhhdmluZyB0eXBlIFJlY3RhbmdsZVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJVSUF1dG9tYXRpb25MaW5rUmVjdHNcIl0gPSBcImxpbmtSZWN0c1wiO1xuICAgIC8vIERQSV9Eb21haW5FeHRlbnRzLCBoYXZpbmcgdHlwZSBEb3VibGVSZWN0YW5nbGVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRvbWFpbkV4dGVudHNcIl0gPSBcImRvbWFpbkV4dGVudHNcIjtcbiAgICAvLyBEUElfTWFwRG9tYWluRXh0ZW50cywgaGF2aW5nIHR5cGUgRG91YmxlUmVjdGFuZ2xlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJNYXBEb21haW5FeHRlbnRzXCJdID0gXCJtYXBEb21haW5FeHRlbnRzXCI7XG4gICAgLy8gRFBJX01hcExhdExvbmdSZWN0LCBoYXZpbmcgdHlwZSBNYXBSZWN0UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJNYXBMYXRMb25nUmVjdFwiXSA9IFwibWFwTGF0TG9uZ1JlY3RcIjtcbiAgICAvLyBEUElfQ2VudGVyLCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ2VudGVyXCJdID0gXCJjZW50ZXJcIjtcbiAgICAvLyBEUElfQ2VudGVyTWFya0xpbmVCZWdpbiwgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNlbnRlck1hcmtMaW5lQmVnaW5cIl0gPSBcImNlbnRlck1hcmtMaW5lQmVnaW5cIjtcbiAgICAvLyBEUElfQ2VudGVyTWFya0xpbmVFbmQsIGhhdmluZyB0eXBlIFBvaW50UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDZW50ZXJNYXJrTGluZUVuZFwiXSA9IFwiY2VudGVyTWFya0xpbmVFbmRcIjtcbiAgICAvLyBEUElfRHJvcExvY2F0aW9uLCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRHJvcExvY2F0aW9uXCJdID0gXCJkcm9wTG9jYXRpb25cIjtcbiAgICAvLyBEUElfRW5kUHQsIGhhdmluZyB0eXBlIFBvaW50UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJFbmRQdFwiXSA9IFwiZW5kUG9pbnRcIjtcbiAgICAvLyBEUElfR3JhYkxvY2F0aW9uLCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiR3JhYkxvY2F0aW9uXCJdID0gXCJncmFiTG9jYXRpb25cIjtcbiAgICAvLyBEUElfR3JpZE9yaWdpbiwgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkdyaWRPcmlnaW5cIl0gPSBcImdyaWRPcmlnaW5cIjtcbiAgICAvLyBEUElfTGFzc29TZWxlY3Rpb25Qb2ludCwgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkxhc3NvU2VsZWN0aW9uUG9pbnRcIl0gPSBcImxhc3NvU2VsZWN0aW9uUG9pbnRcIjtcbiAgICAvLyBEUElfTWVudUxvY2F0aW9uLCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiTWVudUxvY2F0aW9uXCJdID0gXCJtZW51TG9jYXRpb25cIjtcbiAgICAvLyBEUElfTW92ZU9mZnNldCwgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIk1vdmVPZmZzZXRcIl0gPSBcIm1vdmVPZmZzZXRcIjtcbiAgICAvLyBEUElfT3ZlcmxheUFuY2hvciwgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIk92ZXJsYXlBbmNob3JcIl0gPSBcIm92ZXJsYXlBbmNob3JcIjtcbiAgICAvLyBEUElfUGFuQW1vdW50LCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUGFuQW1vdW50XCJdID0gXCJwYW5BbW91bnRcIjtcbiAgICAvLyBEUElfUGFuTG9jYXRpb24sIGhhdmluZyB0eXBlIFBvaW50UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJQYW5Mb2NhdGlvblwiXSA9IFwicGFuTG9jYXRpb25cIjtcbiAgICAvLyBEUElfUGFuZVJlc29sdmVyTG9jYXRpb24sIGhhdmluZyB0eXBlIFBvaW50UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJQYW5lUmVzb2x2ZXJMb2NhdGlvblwiXSA9IFwicGFuZVJlc29sdmVyTG9jYXRpb25cIjtcbiAgICAvLyBEUElfUGl4ZWxFeHRlbnRzT2Zmc2V0LCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUGl4ZWxFeHRlbnRzT2Zmc2V0XCJdID0gXCJleHRlbnRzT2Zmc2V0XCI7XG4gICAgLy8gRFBJX1BvaW50MSwgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlBvaW50MVwiXSA9IFwicHQxXCI7XG4gICAgLy8gRFBJX1BvaW50MiwgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlBvaW50MlwiXSA9IFwicHQyXCI7XG4gICAgLy8gRFBJX1BvaW50MywgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlBvaW50M1wiXSA9IFwicHQzXCI7XG4gICAgLy8gRFBJX1JlZ2lvblBvaW50LCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUmVnaW9uUG9pbnRcIl0gPSBcInJlZ2lvblBvaW50XCI7XG4gICAgLy8gRFBJX1Njcm9sbE9mZnNldCwgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlNjcm9sbE9mZnNldFwiXSA9IFwic2Nyb2xsT2Zmc2V0XCI7XG4gICAgLy8gRFBJX1NlbGVjdEF0UG9pbnQsIGhhdmluZyB0eXBlIFBvaW50UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTZWxlY3RBdFBvaW50XCJdID0gXCJzZWxlY3RBdFBvaW50XCI7XG4gICAgLy8gRFBJX1NlbGVjdE9mZnNldCwgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlNlbGVjdE9mZnNldFwiXSA9IFwic2VsZWN0T2Zmc2V0XCI7XG4gICAgLy8gRFBJX1RhcmdldFB0LCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVGFyZ2V0UHRcIl0gPSBcInRhcmdldFBvaW50XCI7XG4gICAgLy8gRFBJX1RleHRPcmlnaW4sIGhhdmluZyB0eXBlIFBvaW50UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJUZXh0T3JpZ2luXCJdID0gXCJ0ZXh0T3JpZ2luXCI7XG4gICAgLy8gRFBJX1Rvb2x0aXBBbmNob3JQb2ludCwgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlRvb2x0aXBBbmNob3JQb2ludFwiXSA9IFwidG9vbHRpcEFuY2hvclBvaW50XCI7XG4gICAgLy8gRFBJX1Rvb2x0aXBPZmZzZXQsIGhhdmluZyB0eXBlIFBvaW50UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJUb29sdGlwT2Zmc2V0XCJdID0gXCJ0b29sdGlwT2Zmc2V0XCI7XG4gICAgLy8gRFBJX1ZpekxvY2F0aW9uLCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVml6TG9jYXRpb25cIl0gPSBcInZpekxvY2F0aW9uXCI7XG4gICAgLy8gRFBJX1pvb21BbmNob3JQb2ludCwgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlpvb21BbmNob3JQb2ludFwiXSA9IFwiem9vbUFuY2hvclBvaW50XCI7XG4gICAgLy8gRFBJX01lbnVBbmNob3JQb2ludCwgaGF2aW5nIHR5cGUgUG9pbnRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIk1lbnVBbmNob3JQb2ludFwiXSA9IFwibWVudUFuY2hvclBvaW50XCI7XG4gICAgLy8gRFBJX092ZXJsYXlBbmNob3JzLCBoYXZpbmcgdHlwZSBQb2ludFByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJPdmVybGF5QW5jaG9yc1wiXSA9IFwib3ZlcmxheUFuY2hvcnNcIjtcbiAgICAvLyBEUElfTGFzc29TZWxlY3Rpb24sIGhhdmluZyB0eXBlIFBvaW50UHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkxhc3NvU2VsZWN0aW9uXCJdID0gXCJsYXNzb1NlbGVjdGlvblwiO1xuICAgIC8vIERQSV9TY3JvbGxPZmZzZXRQb2ludHMsIGhhdmluZyB0eXBlIFBvaW50UHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlNjcm9sbE9mZnNldFBvaW50c1wiXSA9IFwic2Nyb2xsT2Zmc2V0UG9pbnRzXCI7XG4gICAgLy8gRFBJX1JhZGlhbFNlbGVjdGlvbiwgaGF2aW5nIHR5cGUgQ2lyY2xlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJSYWRpYWxTZWxlY3Rpb25cIl0gPSBcInJhZGlhbFNlbGVjdGlvblwiO1xuICAgIC8vIERQSV9Eb21haW5PcmlnaW4sIGhhdmluZyB0eXBlIEZsb2F0UG9pbnRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRvbWFpbk9yaWdpblwiXSA9IFwiZG9tYWluT3JpZ2luXCI7XG4gICAgLy8gRFBJX0Zsb2F0Q2VudGVyLCBoYXZpbmcgdHlwZSBGbG9hdFBvaW50UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJGbG9hdENlbnRlclwiXSA9IFwiZmxvYXRDZW50ZXJcIjtcbiAgICAvLyBEUElfRmxvYXRQb2ludCwgaGF2aW5nIHR5cGUgRmxvYXRQb2ludFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRmxvYXRQb2ludFwiXSA9IFwiZmxvYXRQb2ludFwiO1xuICAgIC8vIERQSV9DbGllbnRBdmFpbGFibGVTcGFjZSwgaGF2aW5nIHR5cGUgU2l6ZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ2xpZW50QXZhaWxhYmxlU3BhY2VcIl0gPSBcImNsaWVudEF2YWlsYWJsZVNwYWNlXCI7XG4gICAgLy8gRFBJX0Rhc2hib2FyZFBvcnRTaXplLCBoYXZpbmcgdHlwZSBTaXplUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEYXNoYm9hcmRQb3J0U2l6ZVwiXSA9IFwiZGFzaGJvYXJkUG9ydFwiO1xuICAgIC8vIERQSV9MZWdlbmRTaXplLCBoYXZpbmcgdHlwZSBTaXplUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJMZWdlbmRTaXplXCJdID0gXCJsZWdlbmRTaXplXCI7XG4gICAgLy8gRFBJX1N0b3J5UG9ydFNpemUsIGhhdmluZyB0eXBlIFNpemVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlN0b3J5UG9ydFNpemVcIl0gPSBcInN0b3J5UG9ydFwiO1xuICAgIC8vIERQSV9Td2F0Y2hBcmVhU2l6ZSwgaGF2aW5nIHR5cGUgU2l6ZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU3dhdGNoQXJlYVNpemVcIl0gPSBcImFyZWFTaXplXCI7XG4gICAgLy8gRFBJX1N3YXRjaEltYWdlU2l6ZSwgaGF2aW5nIHR5cGUgU2l6ZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU3dhdGNoSW1hZ2VTaXplXCJdID0gXCJpbWFnZVNpemVcIjtcbiAgICAvLyBEUElfVmlld3BvcnRTaXplLCBoYXZpbmcgdHlwZSBTaXplUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJWaWV3cG9ydFNpemVcIl0gPSBcInZpZXdwb3J0U2l6ZVwiO1xuICAgIC8vIERQSV9Xb3Jrc2hlZXRQb3J0U2l6ZSwgaGF2aW5nIHR5cGUgU2l6ZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiV29ya3NoZWV0UG9ydFNpemVcIl0gPSBcIndvcmtzaGVldFBvcnRcIjtcbiAgICAvLyBEUElfUmVzaXplRW50aXR5LCBoYXZpbmcgdHlwZSBSZXNpemVFbnRpdHlQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlJlc2l6ZUVudGl0eVwiXSA9IFwicmVzaXplRW50aXR5XCI7XG4gICAgLy8gRFBJX1Jvd1Jlc2l6ZXJzLCBoYXZpbmcgdHlwZSBSZXNpemVFbnRpdHlQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiUm93UmVzaXplcnNcIl0gPSBcInJvd1Jlc2l6ZXJzXCI7XG4gICAgLy8gRFBJX0NvbFJlc2l6ZXJzLCBoYXZpbmcgdHlwZSBSZXNpemVFbnRpdHlQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiQ29sUmVzaXplcnNcIl0gPSBcImNvbFJlc2l6ZXJzXCI7XG4gICAgLy8gRFBJX1Jlc2l6ZUluZm9QcmVzTW9kZWwsIGhhdmluZyB0eXBlIFJlc2l6ZUluZm9QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlJlc2l6ZUluZm9QcmVzTW9kZWxcIl0gPSBcInJlc2l6ZUluZm9cIjtcbiAgICAvLyBEUElfU2VydmVyU2hlZXQsIGhhdmluZyB0eXBlIFNlcnZlclNoZWV0UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTZXJ2ZXJTaGVldFwiXSA9IFwic2VydmVyU2hlZXRcIjtcbiAgICAvLyBEUElfU2VydmVyU2hlZXRzLCBoYXZpbmcgdHlwZSBTZXJ2ZXJTaGVldFByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJTZXJ2ZXJTaGVldHNcIl0gPSBcInNlcnZlclNoZWV0c1wiO1xuICAgIC8vIERQSV9TaGVldEluZm8sIGhhdmluZyB0eXBlIFNoZWV0SW5mb1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU2hlZXRJbmZvXCJdID0gXCJzaGVldEluZm9cIjtcbiAgICAvLyBEUElfU2hlZXRzSW5mbywgaGF2aW5nIHR5cGUgU2hlZXRJbmZvUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlNoZWV0c0luZm9cIl0gPSBcInNoZWV0c0luZm9cIjtcbiAgICAvLyBEUElfU2VydmVyV29ya2Jvb2ssIGhhdmluZyB0eXBlIFNlcnZlcldvcmtib29rUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTZXJ2ZXJXb3JrYm9va1wiXSA9IFwic2VydmVyV29ya2Jvb2tcIjtcbiAgICAvLyBEUElfUERGRXhwb3J0T3B0aW9uc1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgUERGRXhwb3J0T3B0aW9uc1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUERGRXhwb3J0T3B0aW9uc1ByZXNNb2RlbFwiXSA9IFwicGRmRXhwb3J0XCI7XG4gICAgLy8gRFBJX0V4cG9ydEZpbGVSZXN1bHRQcmVzTW9kZWwsIGhhdmluZyB0eXBlIEV4cG9ydEZpbGVSZXN1bHRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkV4cG9ydEZpbGVSZXN1bHRQcmVzTW9kZWxcIl0gPSBcInBkZlJlc3VsdFwiO1xuICAgIC8vIERQSV9QREZTaGVldCwgaGF2aW5nIHR5cGUgUERGU2hlZXRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlBERlNoZWV0XCJdID0gXCJwZGZTaGVldFwiO1xuICAgIC8vIERQSV9TaGVldE9wdGlvbnMsIGhhdmluZyB0eXBlIFBERlNoZWV0UHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlNoZWV0T3B0aW9uc1wiXSA9IFwic2hlZXRPcHRpb25zXCI7XG4gICAgLy8gRFBJX0V4cG9ydExheW91dE9wdGlvbnMsIGhhdmluZyB0eXBlIEV4cG9ydExheW91dE9wdGlvbnNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkV4cG9ydExheW91dE9wdGlvbnNcIl0gPSBcImV4cG9ydExheW91dE9wdGlvbnNcIjtcbiAgICAvLyBEUElfRGF0YUFsZXJ0Q29uZGl0aW9uT3BlcmF0aW9uVHlwZSwgaGF2aW5nIHR5cGUgRGF0YUFsZXJ0Q29uZGl0aW9uT3BlcmF0aW9uVHlwZVxuICAgIFBhcmFtZXRlcklkW1wiRGF0YUFsZXJ0Q29uZGl0aW9uT3BlcmF0aW9uVHlwZVwiXSA9IFwiZGF0YUFsZXJ0Q29uZGl0aW9uT3BcIjtcbiAgICAvLyBEUElfRGF0YUFsZXJ0RGlhbG9nUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBEYXRhQWxlcnREaWFsb2dQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFBbGVydERpYWxvZ1ByZXNNb2RlbFwiXSA9IFwiZGF0YUFsZXJ0RGlhbG9nUHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX0RhdGFBbGVydE1lYXN1cmUsIGhhdmluZyB0eXBlIERhdGFBbGVydE1lYXN1cmVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFBbGVydE1lYXN1cmVcIl0gPSBcImRhdGFBbGVydE1lYXN1cmVcIjtcbiAgICAvLyBEUElfRGF0YUFsZXJ0TWVhc3VyZXMsIGhhdmluZyB0eXBlIERhdGFBbGVydE1lYXN1cmVQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiRGF0YUFsZXJ0TWVhc3VyZXNcIl0gPSBcImRhdGFBbGVydE1lYXN1cmVzXCI7XG4gICAgLy8gRFBJX0RhdGFBbGVydENvbnN0YW50Q29uZGl0aW9uLCBoYXZpbmcgdHlwZSBEYXRhQWxlcnRDb25zdGFudENvbmRpdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRGF0YUFsZXJ0Q29uc3RhbnRDb25kaXRpb25cIl0gPSBcImRhdGFBbGVydENvbnN0YW50Q29uZGl0aW9uXCI7XG4gICAgLy8gRFBJX0RhdGFBbGVydERpYWxvZ01vZGUsIGhhdmluZyB0eXBlIERhdGFBbGVydERpYWxvZ01vZGVcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFBbGVydERpYWxvZ01vZGVcIl0gPSBcImRhdGFBbGVydERpYWxvZ01vZGVcIjtcbiAgICAvLyBEUElfTGlnaHR3ZWlnaHRNYXBPcHRpb25zLCBoYXZpbmcgdHlwZSBMaWdodHdlaWdodE1hcE9wdGlvbnNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkxpZ2h0d2VpZ2h0TWFwT3B0aW9uc1wiXSA9IFwibGlnaHR3ZWlnaHRNYXBPcHRpb25zXCI7XG4gICAgLy8gRFBJX0RhdGFIaWdobGlnaHRlciwgaGF2aW5nIHR5cGUgRGF0YUhpZ2hsaWdodGVyUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEYXRhSGlnaGxpZ2h0ZXJcIl0gPSBcImRhdGFIaWdobGlnaHRlclwiO1xuICAgIC8vIERQSV9EYXRhSGlnaGxpZ2h0ZXJJdGVtU2V0LCBoYXZpbmcgdHlwZSBEYXRhSGlnaGxpZ2h0ZXJJdGVtU2V0UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEYXRhSGlnaGxpZ2h0ZXJJdGVtU2V0XCJdID0gXCJkYXRhSGlnaGxpZ2h0ZXJJdGVtU2V0XCI7XG4gICAgLy8gRFBJX0RhdGFIaWdobGlnaHRlckl0ZW0sIGhhdmluZyB0eXBlIERhdGFIaWdobGlnaHRlckl0ZW1QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFIaWdobGlnaHRlckl0ZW1cIl0gPSBcImRhdGFIaWdobGlnaHRlckl0ZW1cIjtcbiAgICAvLyBEUElfRGF0YUhpZ2hsaWdodGVySXRlbXMsIGhhdmluZyB0eXBlIERhdGFIaWdobGlnaHRlckl0ZW1QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiRGF0YUhpZ2hsaWdodGVySXRlbXNcIl0gPSBcImRhdGFIaWdobGlnaHRlckl0ZW1zXCI7XG4gICAgLy8gRFBJX0NhdGVnb3JpY2FsTGVnZW5kTGF5b3V0LCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbExlZ2VuZExheW91dFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ2F0ZWdvcmljYWxMZWdlbmRMYXlvdXRcIl0gPSBcImNhdExlZ2VuZExheW91dFwiO1xuICAgIC8vIERQSV9DYXRlZ29yaWNhbExlZ2VuZCwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxMZWdlbmRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNhdGVnb3JpY2FsTGVnZW5kXCJdID0gXCJjYXRlZ29yaWNhbExlZ2VuZFwiO1xuICAgIC8vIERQSV9DYXRlZ29yaWNhbExlZ2VuZHMsIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsTGVnZW5kUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkNhdGVnb3JpY2FsTGVnZW5kc1wiXSA9IFwiY2F0ZWdvcmljYWxMZWdlbmRzXCI7XG4gICAgLy8gRFBJX0NhdGVnb3JpY2FsQ29sb3JMZWdlbmQsIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsQ29sb3JMZWdlbmRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNhdGVnb3JpY2FsQ29sb3JMZWdlbmRcIl0gPSBcImNvbG9yTGVnZW5kXCI7XG4gICAgLy8gRFBJX0NvbG9yTGVnZW5kSXRlbSwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxDb2xvckxlZ2VuZEl0ZW1QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbG9yTGVnZW5kSXRlbVwiXSA9IFwiY29sb3JMZWdlbmRJdGVtXCI7XG4gICAgLy8gRFBJX0NvbG9yTGVnZW5kSXRlbXMsIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsQ29sb3JMZWdlbmRJdGVtUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkNvbG9yTGVnZW5kSXRlbXNcIl0gPSBcImNvbG9yTGVnZW5kSXRlbXNcIjtcbiAgICAvLyBEUElfQ2F0ZWdvcmljYWxTaGFwZUxlZ2VuZCwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxTaGFwZUxlZ2VuZFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ2F0ZWdvcmljYWxTaGFwZUxlZ2VuZFwiXSA9IFwiY2F0ZWdvcmljYWxTaGFwZUxlZ2VuZFwiO1xuICAgIC8vIERQSV9TaGFwZUxlZ2VuZEl0ZW0sIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsU2hhcGVMZWdlbmRJdGVtUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTaGFwZUxlZ2VuZEl0ZW1cIl0gPSBcInNoYXBlTGVnZW5kSXRlbVwiO1xuICAgIC8vIERQSV9TaGFwZUxlZ2VuZEl0ZW1zLCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbFNoYXBlTGVnZW5kSXRlbVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJTaGFwZUxlZ2VuZEl0ZW1zXCJdID0gXCJzaGFwZUxlZ2VuZEl0ZW1zXCI7XG4gICAgLy8gRFBJX0NhdGVnb3JpY2FsSGlnaGxpZ2h0TGVnZW5kLCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbEhpZ2hsaWdodExlZ2VuZFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ2F0ZWdvcmljYWxIaWdobGlnaHRMZWdlbmRcIl0gPSBcImNhdGVnb3JpY2FsSGlnaGxpZ2h0TGVnZW5kXCI7XG4gICAgLy8gRFBJX0hpZ2hsaWdodExlZ2VuZEl0ZW0sIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsTGVnZW5kSXRlbVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiSGlnaGxpZ2h0TGVnZW5kSXRlbVwiXSA9IFwiaGlnaGxpZ2h0TGVnZW5kSXRlbVwiO1xuICAgIC8vIERQSV9IaWdobGlnaHRMZWdlbmRJdGVtcywgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxMZWdlbmRJdGVtUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkhpZ2hsaWdodExlZ2VuZEl0ZW1zXCJdID0gXCJoaWdobGlnaHRMZWdlbmRJdGVtc1wiO1xuICAgIC8vIERQSV9DYXRlZ29yaWNhbFNpemVMZWdlbmQsIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsU2l6ZUxlZ2VuZFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ2F0ZWdvcmljYWxTaXplTGVnZW5kXCJdID0gXCJjYXRlZ29yaWNhbFNpemVMZWdlbmRcIjtcbiAgICAvLyBEUElfU2l6ZUxlZ2VuZEl0ZW0sIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsU2l6ZUxlZ2VuZEl0ZW1QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlNpemVMZWdlbmRJdGVtXCJdID0gXCJzaXplTGVnZW5kSXRlbVwiO1xuICAgIC8vIERQSV9TaXplTGVnZW5kSXRlbXMsIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsU2l6ZUxlZ2VuZEl0ZW1QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiU2l6ZUxlZ2VuZEl0ZW1zXCJdID0gXCJzaXplTGVnZW5kSXRlbXNcIjtcbiAgICAvLyBEUElfQ2F0ZWdvcmljYWxNYXBMZWdlbmQsIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsTWFwTGVnZW5kUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDYXRlZ29yaWNhbE1hcExlZ2VuZFwiXSA9IFwiY2F0ZWdvcmljYWxNYXBMZWdlbmRcIjtcbiAgICAvLyBEUElfUXVhbnRpdGF0aXZlQ29sb3JMZWdlbmQsIGhhdmluZyB0eXBlIFF1YW50aXRhdGl2ZUNvbG9yTGVnZW5kUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJRdWFudGl0YXRpdmVDb2xvckxlZ2VuZFwiXSA9IFwicXVhbnRpdGF0aXZlQ29sb3JMZWdlbmRcIjtcbiAgICAvLyBEUElfUXVhbnRpdGF0aXZlQ29sb3JMZWdlbmRzLCBoYXZpbmcgdHlwZSBRdWFudGl0YXRpdmVDb2xvckxlZ2VuZFByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJRdWFudGl0YXRpdmVDb2xvckxlZ2VuZHNcIl0gPSBcInF1YW50aXRhdGl2ZUNvbG9yTGVnZW5kc1wiO1xuICAgIC8vIERQSV9RdWFudGl0YXRpdmVMZWdlbmRMYXlvdXQsIGhhdmluZyB0eXBlIFF1YW50aXRhdGl2ZUxlZ2VuZExheW91dFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUXVhbnRpdGF0aXZlTGVnZW5kTGF5b3V0XCJdID0gXCJxdWFudGl0YXRpdmVMZWdlbmRMYXlvdXRcIjtcbiAgICAvLyBEUElfU2VydmVyUmVuZGVyZWRMZWdlbmQsIGhhdmluZyB0eXBlIFNlcnZlclJlbmRlcmVkTGVnZW5kUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTZXJ2ZXJSZW5kZXJlZExlZ2VuZFwiXSA9IFwic2VydmVyUmVuZGVyZWRMZWdlbmRcIjtcbiAgICAvLyBEUElfQ2F0ZWdvcmljYWxGaWx0ZXIsIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsRmlsdGVyUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDYXRlZ29yaWNhbEZpbHRlclwiXSA9IFwiY2F0ZWdvcmljYWxGaWx0ZXJcIjtcbiAgICAvLyBEUElfQ2F0ZWdvcmljYWxGaWx0ZXJSZWxhdGlvbmFsLCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbEZpbHRlclJlbGF0aW9uYWxQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNhdGVnb3JpY2FsRmlsdGVyUmVsYXRpb25hbFwiXSA9IFwiY2F0ZWdvcmljYWxGaWx0ZXJSZWxhdGlvbmFsXCI7XG4gICAgLy8gRFBJX0NhdGVnb3JpY2FsRmlsdGVyTWVtYmVyRG9tYWluUGFnZSwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxGaWx0ZXJNZW1iZXJEb21haW5QYWdlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDYXRlZ29yaWNhbEZpbHRlck1lbWJlckRvbWFpblBhZ2VcIl0gPSBcImNhdGVnb3JpY2FsRmlsdGVyTWVtYmVyRG9tYWluUGFnZVwiO1xuICAgIC8vIERQSV9DYXRlZ29yaWNhbEZpbHRlckNhY2hlSW5mbywgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxGaWx0ZXJDYWNoZUluZm9QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNhdGVnb3JpY2FsRmlsdGVyQ2FjaGVJbmZvXCJdID0gXCJjYXRlZ29yaWNhbEZpbHRlckNhY2hlSW5mb1wiO1xuICAgIC8vIERQSV9DYXRlZ29yaWNhbEZpbHRlclBhdHRlcm5EaXNwbGF5LCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbEZpbHRlclBhdHRlcm5EaXNwbGF5UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDYXRlZ29yaWNhbEZpbHRlclBhdHRlcm5EaXNwbGF5XCJdID0gXCJjYXRlZ29yaWNhbEZpbHRlclBhdHRlcm5EaXNwbGF5XCI7XG4gICAgLy8gRFBJX0NhdGVnb3JpY2FsRmlsdGVyUGF0dGVyblVwZGF0ZSwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxGaWx0ZXJQYXR0ZXJuVXBkYXRlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDYXRlZ29yaWNhbEZpbHRlclBhdHRlcm5VcGRhdGVcIl0gPSBcImNhdGVnb3JpY2FsRmlsdGVyUGF0dGVyblVwZGF0ZVwiO1xuICAgIC8vIERQSV9DYXRlZ29yaWNhbEZpbHRlckNvbmRpdGlvbkRpc3BsYXksIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsRmlsdGVyQ29uZGl0aW9uRGlzcGxheVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ2F0ZWdvcmljYWxGaWx0ZXJDb25kaXRpb25EaXNwbGF5XCJdID0gXCJjYXRlZ29yaWNhbEZpbHRlckNvbmRpdGlvbkRpc3BsYXlcIjtcbiAgICAvLyBEUElfQ2F0ZWdvcmljYWxGaWx0ZXJDb25kaXRpb25VcGRhdGUsIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsRmlsdGVyQ29uZGl0aW9uVXBkYXRlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDYXRlZ29yaWNhbEZpbHRlckNvbmRpdGlvblVwZGF0ZVwiXSA9IFwiY2F0ZWdvcmljYWxGaWx0ZXJDb25kaXRpb25VcGRhdGVcIjtcbiAgICAvLyBEUElfQ2F0ZWdvcmljYWxGaWx0ZXJMaW1pdERpc3BsYXksIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsRmlsdGVyTGltaXREaXNwbGF5UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDYXRlZ29yaWNhbEZpbHRlckxpbWl0RGlzcGxheVwiXSA9IFwiY2F0ZWdvcmljYWxGaWx0ZXJMaW1pdERpc3BsYXlcIjtcbiAgICAvLyBEUElfQ2F0ZWdvcmljYWxGaWx0ZXJMaW1pdFVwZGF0ZSwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxGaWx0ZXJMaW1pdFVwZGF0ZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ2F0ZWdvcmljYWxGaWx0ZXJMaW1pdFVwZGF0ZVwiXSA9IFwiY2F0ZWdvcmljYWxGaWx0ZXJMaW1pdFVwZGF0ZVwiO1xuICAgIC8vIERQSV9DYXRlZ29yaWNhbEZpbHRlck5ldywgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxGaWx0ZXJfTmV3UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDYXRlZ29yaWNhbEZpbHRlck5ld1wiXSA9IFwiY2F0ZWdvcmljYWxGaWx0ZXJOZXdcIjtcbiAgICAvLyBEUElfQ2F0ZWdvcmljYWxGaWx0ZXJIaWVyYXJjaHksIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsRmlsdGVySGllcmFyY2h5UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDYXRlZ29yaWNhbEZpbHRlckhpZXJhcmNoeVwiXSA9IFwiY2F0ZWdvcmljYWxGaWx0ZXJIaXJlcmFyY2h5XCI7XG4gICAgLy8gRFBJX0NhdGVnb3JpY2FsRmlsdGVyVXBkYXRlLCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbEZpbHRlclVwZGF0ZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ2F0ZWdvcmljYWxGaWx0ZXJVcGRhdGVcIl0gPSBcImNhdGVnb3JpY2FsRmlsdGVyVXBkYXRlXCI7XG4gICAgLy8gRFBJX0NhdGVnb3JpY2FsRmlsdGVyUmVsYXRpb25hbFN0YXRlLCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbEZpbHRlclJlbGF0aW9uYWxTdGF0ZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ2F0ZWdvcmljYWxGaWx0ZXJSZWxhdGlvbmFsU3RhdGVcIl0gPSBcImNhdGVnb3JpY2FsUmVsYXRpb25hbFN0YXRlXCI7XG4gICAgLy8gRFBJX0NhdGVnb3JpY2FsRmlsdGVyUmVsYXRpb25hbFVwZGF0ZWRTdGF0ZSwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxGaWx0ZXJSZWxhdGlvbmFsU3RhdGVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNhdGVnb3JpY2FsRmlsdGVyUmVsYXRpb25hbFVwZGF0ZWRTdGF0ZVwiXSA9IFwiY2F0ZWdvcmljYWxSZWxhdGlvbmFsVXBkYXRlZFN0YXRlXCI7XG4gICAgLy8gRFBJX0NhdGVnb3JpY2FsRmlsdGVyUmVsYXRpb25hbERvbWFpbkluZm8sIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsRmlsdGVyUmVsYXRpb25hbERvbWFpbkluZm9QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNhdGVnb3JpY2FsRmlsdGVyUmVsYXRpb25hbERvbWFpbkluZm9cIl0gPSBcImNhdGVnb3JpY2FsRmlsdGVyUmVsYXRpb25hbERvbWFpbkluZm9cIjtcbiAgICAvLyBEUElfQ2F0ZWdvcmljYWxGaWx0ZXJSZWxhdGlvbmFsRGlzcGxheSwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxGaWx0ZXJSZWxhdGlvbmFsRGlzcGxheVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ2F0ZWdvcmljYWxGaWx0ZXJSZWxhdGlvbmFsRGlzcGxheVwiXSA9IFwiY2F0ZWdvcmljYWxGaWx0ZXJSZWxhdGlvbmFsRGlzcGxheVwiO1xuICAgIC8vIERQSV9FeHByZXNzaW9uVG9rZW4sIGhhdmluZyB0eXBlIEV4cHJlc3Npb25Ub2tlblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRXhwcmVzc2lvblRva2VuXCJdID0gXCJleHByZXNzaW9uVG9rZW5cIjtcbiAgICAvLyBEUElfRXhwcmVzc2lvblRva2VucywgaGF2aW5nIHR5cGUgRXhwcmVzc2lvblRva2VuUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkV4cHJlc3Npb25Ub2tlbnNcIl0gPSBcImV4cHJlc3Npb25Ub2tlbnNcIjtcbiAgICAvLyBEUElfRm9ybXVsYVZhbGlkYXRpb24sIGhhdmluZyB0eXBlIEZvcm11bGFWYWxpZGF0aW9uUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJGb3JtdWxhVmFsaWRhdGlvblwiXSA9IFwiZm9ybXVsYVZhbGlkYXRpb25cIjtcbiAgICAvLyBEUElfQ2FwdGlvbmVkRmlsdGVyVmFsdWUsIGhhdmluZyB0eXBlIEZpbHRlclZhbHVlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDYXB0aW9uZWRGaWx0ZXJWYWx1ZVwiXSA9IFwiY2FwdGlvbmVkRmlsdGVyVmFsdWVcIjtcbiAgICAvLyBEUElfQ2FwdGlvbmVkUmFuZ2VNaW4sIGhhdmluZyB0eXBlIEZpbHRlclZhbHVlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDYXB0aW9uZWRSYW5nZU1pblwiXSA9IFwiY2FwdGlvbmVkUmFuZ2VNaW5cIjtcbiAgICAvLyBEUElfQ2FwdGlvbmVkUmFuZ2VNYXgsIGhhdmluZyB0eXBlIEZpbHRlclZhbHVlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDYXB0aW9uZWRSYW5nZU1heFwiXSA9IFwiY2FwdGlvbmVkUmFuZ2VNYXhcIjtcbiAgICAvLyBEUElfQ2FwdGlvbmVkQW5jaG9yRGF0ZSwgaGF2aW5nIHR5cGUgRmlsdGVyVmFsdWVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNhcHRpb25lZEFuY2hvckRhdGVcIl0gPSBcImNhcHRpb25lZEFuY2hvckRhdGVcIjtcbiAgICAvLyBEUElfQ2FwdGlvbmVkRmlsdGVyVmFsdWVMaXN0LCBoYXZpbmcgdHlwZSBGaWx0ZXJWYWx1ZVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJDYXB0aW9uZWRGaWx0ZXJWYWx1ZUxpc3RcIl0gPSBcImNhcHRpb25lZEZpbHRlclZhbHVlTGlzdFwiO1xuICAgIC8vIERQSV9DYXRlZ29yaWNhbEZpbHRlckluZm8sIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsRmlsdGVySW5mb1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ2F0ZWdvcmljYWxGaWx0ZXJJbmZvXCJdID0gXCJjYXRlZ29yaWNhbEZpbHRlckluZm9cIjtcbiAgICAvLyBEUElfUXVhbnRpdGF0aXZlRmlsdGVySW5mbywgaGF2aW5nIHR5cGUgUXVhbnRpdGF0aXZlRmlsdGVySW5mb1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUXVhbnRpdGF0aXZlRmlsdGVySW5mb1wiXSA9IFwicXVhbnRpdGF0aXZlRmlsdGVySW5mb1wiO1xuICAgIC8vIERQSV9SZWxhdGl2ZURhdGVGaWx0ZXJJbmZvLCBoYXZpbmcgdHlwZSBSZWxhdGl2ZURhdGVGaWx0ZXJJbmZvUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJSZWxhdGl2ZURhdGVGaWx0ZXJJbmZvXCJdID0gXCJyZWxhdGl2ZURhdGVGaWx0ZXJJbmZvXCI7XG4gICAgLy8gRFBJX0ZpbHRlckluZm8sIGhhdmluZyB0eXBlIEZpbHRlckluZm9QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkZpbHRlckluZm9cIl0gPSBcImZpbHRlckluZm9cIjtcbiAgICAvLyBEUElfRmlsdGVyc0luZm8sIGhhdmluZyB0eXBlIEZpbHRlckluZm9yUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkZpbHRlcnNJbmZvXCJdID0gXCJmaWx0ZXJzSW5mb1wiO1xuICAgIC8vIERQSV9DYXRlZ29yaWNhbERvbWFpbiwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxEb21haW5QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNhdGVnb3JpY2FsRG9tYWluXCJdID0gXCJjYXRlZ29yaWNhbERvbWFpblwiO1xuICAgIC8vIERQSV9RdWFudGl0YXRpdmVEb21haW4sIGhhdmluZyB0eXBlIFF1YW50aXRhdGl2ZURvbWFpblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUXVhbnRpdGF0aXZlRG9tYWluXCJdID0gXCJxdWFudGl0YXRpdmVEb21haW5cIjtcbiAgICAvLyBEUElfVmFsaWRhdGlvblJlc3VsdHMsIGhhdmluZyB0eXBlIFZhbGlkYXRpb25SZXN1bHRzUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJWYWxpZGF0aW9uUmVzdWx0c1wiXSA9IFwidmFsaWRhdGlvblJlc3VsdHNcIjtcbiAgICAvLyBEUElfRG9tYWluTWVtYmVyLCBoYXZpbmcgdHlwZSBEb21haW5NZW1iZXJQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRvbWFpbk1lbWJlclwiXSA9IFwiZG9tYWluTWVtYmVyXCI7XG4gICAgLy8gRFBJX0RvbWFpbk1lbWJlcnMsIGhhdmluZyB0eXBlIERvbWFpbk1lbWJlclByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJEb21haW5NZW1iZXJzXCJdID0gXCJkb21haW5NZW1iZXJzXCI7XG4gICAgLy8gRFBJX1F1aWNrRmlsdGVyRGlzcGxheSwgaGF2aW5nIHR5cGUgUXVpY2tGaWx0ZXJEaXNwbGF5UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJRdWlja0ZpbHRlckRpc3BsYXlcIl0gPSBcInF1aWNrRmlsdGVyRGlzcGxheVwiO1xuICAgIC8vIERQSV9RdWlja0ZpbHRlciwgaGF2aW5nIHR5cGUgUXVpY2tGaWx0ZXJQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlF1aWNrRmlsdGVyXCJdID0gXCJxdWlja0ZpbHRlclwiO1xuICAgIC8vIERQSV9RdWFudGl0YXRpdmVRdWlja0ZpbHRlciwgaGF2aW5nIHR5cGUgUXVhbnRpdGF0aXZlUXVpY2tGaWx0ZXJQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlF1YW50aXRhdGl2ZVF1aWNrRmlsdGVyXCJdID0gXCJxdWFudGl0YXRpdmVRdWlja0ZpbHRlclwiO1xuICAgIC8vIERQSV9SZWxhdGl2ZURhdGVRdWlja0ZpbHRlciwgaGF2aW5nIHR5cGUgUmVsYXRpdmVEYXRlUXVpY2tGaWx0ZXJQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlJlbGF0aXZlRGF0ZVF1aWNrRmlsdGVyXCJdID0gXCJyZWxhdGl2ZURhdGVRdWlja0ZpbHRlclwiO1xuICAgIC8vIERQSV9DYXRlZ29yaWNhbFF1aWNrRmlsdGVyLCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbFF1aWNrRmlsdGVyUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDYXRlZ29yaWNhbFF1aWNrRmlsdGVyXCJdID0gXCJjYXRlZ29yaWNhbFF1aWNrRmlsdGVyXCI7XG4gICAgLy8gRFBJX0hpZXJhcmNoaWNhbFF1aWNrRmlsdGVyLCBoYXZpbmcgdHlwZSBIaWVyYXJjaGljYWxRdWlja0ZpbHRlclByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiSGllcmFyY2hpY2FsUXVpY2tGaWx0ZXJcIl0gPSBcImhpZXJhcmNoaWNhbFF1aWNrRmlsdGVyXCI7XG4gICAgLy8gRFBJX0RvbWFpblRhYmxlLCBoYXZpbmcgdHlwZSBEb21haW5UYWJsZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRG9tYWluVGFibGVcIl0gPSBcImRvbWFpblRhYmxlXCI7XG4gICAgLy8gRFBJX0RvbWFpblRhYmxlcywgaGF2aW5nIHR5cGUgRG9tYWluVGFibGVQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiRG9tYWluVGFibGVzXCJdID0gXCJkb21haW5UYWJsZXNcIjtcbiAgICAvLyBEUElfRG9tYWluVHVwbGVzLCBoYXZpbmcgdHlwZSBUdXBsZXNcbiAgICBQYXJhbWV0ZXJJZFtcIkRvbWFpblR1cGxlc1wiXSA9IFwiZG9tYWluVHVwbGVzXCI7XG4gICAgLy8gRFBJX1NlYXJjaFR1cGxlcywgaGF2aW5nIHR5cGUgVHVwbGVzXG4gICAgUGFyYW1ldGVySWRbXCJTZWFyY2hUdXBsZXNcIl0gPSBcInNlYXJjaFR1cGxlc1wiO1xuICAgIC8vIERQSV9TZWxlY3RlZFR1cGxlcywgaGF2aW5nIHR5cGUgVHVwbGVIYXNoXG4gICAgUGFyYW1ldGVySWRbXCJTZWxlY3RlZFR1cGxlc1wiXSA9IFwic2VsZWN0ZWRUdXBsZXNcIjtcbiAgICAvLyBEUElfUGVuZGluZ1R1cGxlcywgaGF2aW5nIHR5cGUgVHVwbGVIYXNoXG4gICAgUGFyYW1ldGVySWRbXCJQZW5kaW5nVHVwbGVzXCJdID0gXCJwZW5kaW5nVHVwbGVzXCI7XG4gICAgLy8gRFBJX0RvbWFpbiwgaGF2aW5nIHR5cGUgTXVsdGlEb21haW5cbiAgICBQYXJhbWV0ZXJJZFtcIkRvbWFpblwiXSA9IFwiZG9tYWluXCI7XG4gICAgLy8gRFBJX0RhdGVPcHRpb24sIGhhdmluZyB0eXBlIERhdGVCaW5EaWFsb2dPcHRpb25QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGVPcHRpb25cIl0gPSBcImRhdGVPcHRpb25cIjtcbiAgICAvLyBEUElfRGF0ZU9wdGlvbnMsIGhhdmluZyB0eXBlIERhdGVCaW5EaWFsb2dPcHRpb25QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiRGF0ZU9wdGlvbnNcIl0gPSBcImRhdGVPcHRpb25zXCI7XG4gICAgLy8gRFBJX0ZpbHRlclJhbmdlQWRkLCBoYXZpbmcgdHlwZSBGaWx0ZXJSYW5nZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRmlsdGVyUmFuZ2VBZGRcIl0gPSBcImZpbHRlclJhbmdlQWRkXCI7XG4gICAgLy8gRFBJX0ZpbHRlclJhbmdlUmVtb3ZlLCBoYXZpbmcgdHlwZSBGaWx0ZXJSYW5nZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRmlsdGVyUmFuZ2VSZW1vdmVcIl0gPSBcImZpbHRlclJhbmdlUmVtb3ZlXCI7XG4gICAgLy8gRFBJX0ZpbHRlck9wdGlvbnMsIGhhdmluZyB0eXBlIEZpbHRlck9wdGlvbnNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkZpbHRlck9wdGlvbnNcIl0gPSBcImZpbHRlck9wdGlvbnNcIjtcbiAgICAvLyBEUElfTGF5ZXIsIGhhdmluZyB0eXBlIExheWVyUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJMYXllclwiXSA9IFwibGF5ZXJcIjtcbiAgICAvLyBEUElfTGF5ZXJzLCBoYXZpbmcgdHlwZSBMYXllclByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJMYXllcnNcIl0gPSBcImxheWVyc1wiO1xuICAgIC8vIERQSV9NYXJrc0NhcmRQcmVzTW9kZWwsIGhhdmluZyB0eXBlIE1hcmtzQ2FyZFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiTWFya3NDYXJkUHJlc01vZGVsXCJdID0gXCJtYXJrc0NhcmRQcmVzTW9kZWxcIjtcbiAgICAvLyBEUElfVUlJdGVtLCBoYXZpbmcgdHlwZSBVSUl0ZW1QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlVJSXRlbVwiXSA9IFwidWlJdGVtXCI7XG4gICAgLy8gRFBJX0VuY29kaW5nVUlJdGVtLCBoYXZpbmcgdHlwZSBFbmNvZGluZ1VJSXRlbVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRW5jb2RpbmdVSUl0ZW1cIl0gPSBcImVuY29kaW5nVWlJdGVtXCI7XG4gICAgLy8gRFBJX0VuY29kaW5nVUlJdGVtcywgaGF2aW5nIHR5cGUgRW5jb2RpbmdVSUl0ZW1QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiRW5jb2RpbmdVSUl0ZW1zXCJdID0gXCJlbmNvZGluZ1VpSXRlbXNcIjtcbiAgICAvLyBEUElfUHJpbVR5cGVVSUl0ZW0sIGhhdmluZyB0eXBlIFByaW1pdGl2ZVR5cGVVSUl0ZW1QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlByaW1UeXBlVUlJdGVtXCJdID0gXCJwcmltaXRpdmVUeXBlVWlJdGVtXCI7XG4gICAgLy8gRFBJX1ByaW1UeXBlVUlJdGVtcywgaGF2aW5nIHR5cGUgUHJpbWl0aXZlVHlwZVVJSXRlbVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJQcmltVHlwZVVJSXRlbXNcIl0gPSBcInByaW1pdGl2ZVR5cGVVaUl0ZW1zXCI7XG4gICAgLy8gRFBJX1ByaW1pdGl2ZVR5cGVVSUl0ZW1PcHRpb25zLCBoYXZpbmcgdHlwZSBQcmltaXRpdmVUeXBlVUlJdGVtT3B0aW9uc1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUHJpbWl0aXZlVHlwZVVJSXRlbU9wdGlvbnNcIl0gPSBcInByaW1pdGl2ZVR5cGVVaUl0ZW1PcHRpb25zXCI7XG4gICAgLy8gRFBJX0xpbmVVSUl0ZW1PcHRpb25zLCBoYXZpbmcgdHlwZSBMaW5lVUlJdGVtT3B0aW9uc1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiTGluZVVJSXRlbU9wdGlvbnNcIl0gPSBcImxpbmVVaUl0ZW1PcHRpb25zXCI7XG4gICAgLy8gRFBJX0xpbmVJbnRlcnBvbGF0aW9uTW9kZVVJSXRlbSwgaGF2aW5nIHR5cGUgTGluZUludGVycG9sYXRpb25Nb2RlVUlJdGVtUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJMaW5lSW50ZXJwb2xhdGlvbk1vZGVVSUl0ZW1cIl0gPSBcImxpbmVJbnRlcnBvbGF0aW9uTW9kZVVpSXRlbVwiO1xuICAgIC8vIERQSV9MaW5lSW50ZXJwb2xhdGlvbk1vZGVVSUl0ZW1TZXQsIGhhdmluZyB0eXBlIExpbmVJbnRlcnBvbGF0aW9uTW9kZVVJSXRlbVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJMaW5lSW50ZXJwb2xhdGlvbk1vZGVVSUl0ZW1TZXRcIl0gPSBcImxpbmVJbnRlcnBvbGF0aW9uTW9kZVVpSXRlbVNldFwiO1xuICAgIC8vIERQSV9MaW5lTWFya2VyUG9zaXRpb25VSUl0ZW0sIGhhdmluZyB0eXBlIExpbmVNYXJrZXJQb3NpdGlvblVJSXRlbVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiTGluZU1hcmtlclBvc2l0aW9uVUlJdGVtXCJdID0gXCJsaW5lTWFya2VyUG9zaXRpb25VaUl0ZW1cIjtcbiAgICAvLyBEUElfTGluZU1hcmtlclBvc2l0aW9uVUlJdGVtU2V0LCBoYXZpbmcgdHlwZSBMaW5lTWFya2VyUG9zaXRpb25VSUl0ZW1QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiTGluZU1hcmtlclBvc2l0aW9uVUlJdGVtU2V0XCJdID0gXCJsaW5lTWFya2VyUG9zaXRpb25VaUl0ZW1TZXRcIjtcbiAgICAvLyBEUElfTWFya3NDYXJkRHJvcGRvd25JdGVtLCBoYXZpbmcgdHlwZSBNYXJrc0NhcmREcm9wZG93bkl0ZW1QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIk1hcmtzQ2FyZERyb3Bkb3duSXRlbVwiXSA9IFwibWFya3NDYXJkRHJvcGRvd25JdGVtXCI7XG4gICAgLy8gRFBJX1Rvb2x0aXBEcm9wZG93bkl0ZW0sIGhhdmluZyB0eXBlIFRvb2x0aXBEcm9wZG93bkl0ZW1QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlRvb2x0aXBEcm9wZG93bkl0ZW1cIl0gPSBcInRvb2x0aXBEcm9wZG93bkl0ZW1cIjtcbiAgICAvLyBEUElfVGV4dERyb3Bkb3duSXRlbSwgaGF2aW5nIHR5cGUgVGV4dERyb3Bkb3duSXRlbVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVGV4dERyb3Bkb3duSXRlbVwiXSA9IFwidGV4dERyb3Bkb3duSXRlbVwiO1xuICAgIC8vIERQSV9Db2xvckRyb3Bkb3duSXRlbSwgaGF2aW5nIHR5cGUgQ29sb3JEcm9wZG93bkl0ZW1QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbG9yRHJvcGRvd25JdGVtXCJdID0gXCJjb2xvckRyb3Bkb3duSXRlbVwiO1xuICAgIC8vIERQSV9TaXplU2xpZGVyUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBTaXplU2xpZGVyUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTaXplU2xpZGVyUHJlc01vZGVsXCJdID0gXCJzaXplU2xpZGVyUHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX0luZmxlY3Rpb25Qb2ludCwgaGF2aW5nIHR5cGUgSW5mbGVjdGlvblBvaW50UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJJbmZsZWN0aW9uUG9pbnRcIl0gPSBcImluZmxlY3Rpb25Qb2ludFwiO1xuICAgIC8vIERQSV9JbmZsZWN0aW9uUG9pbnRzLCBoYXZpbmcgdHlwZSBJbmZsZWN0aW9uUG9pbnRQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiSW5mbGVjdGlvblBvaW50c1wiXSA9IFwiaW5mbGVjdGlvblBvaW50c1wiO1xuICAgIC8vIERQSV9Ob3RjaCwgaGF2aW5nIHR5cGUgTm90Y2hQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIk5vdGNoXCJdID0gXCJub3RjaFwiO1xuICAgIC8vIERQSV9Ob3RjaGVzLCBoYXZpbmcgdHlwZSBOb3RjaFByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJOb3RjaGVzXCJdID0gXCJub3RjaGVzXCI7XG4gICAgLy8gRFBJX01hcmtTaXplT3B0aW9uc1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgTWFya1NpemVPcHRpb25zUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJNYXJrU2l6ZU9wdGlvbnNQcmVzTW9kZWxcIl0gPSBcIm1hcmtTaXplT3B0aW9uc1ByZXNNb2RlbFwiO1xuICAgIC8vIERQSV9Nb2RpZnlNYXJrc0luU2V0LCBoYXZpbmcgdHlwZSBBZGRPclJlbW92ZU1hcmtzXG4gICAgUGFyYW1ldGVySWRbXCJNb2RpZnlNYXJrc0luU2V0XCJdID0gXCJhZGRPclJlbW92ZU1hcmtzXCI7XG4gICAgLy8gRFBJX01hcmtMYWJlbHNTcGVjaWZpY2F0aW9uLCBoYXZpbmcgdHlwZSBNYXJrTGFiZWxzU3BlY2lmaWNhdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiTWFya0xhYmVsc1NwZWNpZmljYXRpb25cIl0gPSBcIm1hcmtMYWJlbHNTcGVjaWZpY2F0aW9uXCI7XG4gICAgLy8gRFBJX0NvbG9yUGFsZXR0ZSwgaGF2aW5nIHR5cGUgQ29sb3JQYWxldHRlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDb2xvclBhbGV0dGVcIl0gPSBcImNvbG9yUGFsZXR0ZVwiO1xuICAgIC8vIERQSV9TZWxlY3RlZENvbG9yUGFsZXR0ZSwgaGF2aW5nIHR5cGUgQ29sb3JQYWxldHRlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTZWxlY3RlZENvbG9yUGFsZXR0ZVwiXSA9IFwic2VsZWN0ZWRDb2xvclBhbGV0dGVcIjtcbiAgICAvLyBEUElfQ29sb3JQYWxldHRlcywgaGF2aW5nIHR5cGUgQ29sb3JQYWxldHRlUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkNvbG9yUGFsZXR0ZXNcIl0gPSBcImNvbG9yUGFsZXR0ZXNcIjtcbiAgICAvLyBEUElfQ29sb3JQYWxldHRlR3JvdXAsIGhhdmluZyB0eXBlIENvbG9yUGFsZXR0ZUdyb3VwUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDb2xvclBhbGV0dGVHcm91cFwiXSA9IFwiY29sb3JQYWxldHRlR3JvdXBcIjtcbiAgICAvLyBEUElfQ2F0Q29sb3JQYWxldHRlR3JvdXBzLCBoYXZpbmcgdHlwZSBDb2xvclBhbGV0dGVHcm91cFByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJDYXRDb2xvclBhbGV0dGVHcm91cHNcIl0gPSBcImNhdENvbG9yUGFsZXR0ZUdyb3Vwc1wiO1xuICAgIC8vIERQSV9RQ29sb3JQYWxldHRlR3JvdXBzLCBoYXZpbmcgdHlwZSBDb2xvclBhbGV0dGVHcm91cFByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJRQ29sb3JQYWxldHRlR3JvdXBzXCJdID0gXCJxQ29sb3JQYWxldHRlR3JvdXBzXCI7XG4gICAgLy8gRFBJX0NvbG9yUGFsZXR0ZUNvbGxlY3Rpb24sIGhhdmluZyB0eXBlIENvbG9yUGFsZXR0ZUNvbGxlY3Rpb25QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbG9yUGFsZXR0ZUNvbGxlY3Rpb25cIl0gPSBcImNvbG9yUGFsZXR0ZUNvbGxlY3Rpb25cIjtcbiAgICAvLyBEUElfUXVhbnRpdGF0aXZlQ29sb3IsIGhhdmluZyB0eXBlIFF1YW50aXRhdGl2ZUNvbG9yUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJRdWFudGl0YXRpdmVDb2xvclwiXSA9IFwicXVhbnRpdGF0aXZlQ29sb3JcIjtcbiAgICAvLyBEUElfQ2F0ZWdvcmljYWxDb2xvciwgaGF2aW5nIHR5cGUgQ2F0ZWdvcmljYWxDb2xvclByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ2F0ZWdvcmljYWxDb2xvclwiXSA9IFwiY2F0ZWdvcmljYWxDb2xvclwiO1xuICAgIC8vIERQSV9JdGVtQ29sb3JQYWlyLCBoYXZpbmcgdHlwZSBJdGVtQ29sb3JQYWlyUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJJdGVtQ29sb3JQYWlyXCJdID0gXCJpdGVtQ29sb3JQYWlyXCI7XG4gICAgLy8gRFBJX0l0ZW1Db2xvclBhaXJzLCBoYXZpbmcgdHlwZSBJdGVtQ29sb3JQYWlyUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkl0ZW1Db2xvclBhaXJzXCJdID0gXCJpdGVtQ29sb3JQYWlyc1wiO1xuICAgIC8vIERQSV9WUUxDb21tYW5kUmVzcG9uc2UsIGhhdmluZyB0eXBlIFZRTENvbW1hbmRSZXNwb25zZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVlFMQ29tbWFuZFJlc3BvbnNlXCJdID0gXCJ2cWxDbWRSZXNwb25zZVwiO1xuICAgIC8vIERQSV9MYXlvdXRTdGF0dXMsIGhhdmluZyB0eXBlIExheW91dFN0YXR1c1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiTGF5b3V0U3RhdHVzXCJdID0gXCJsYXlvdXRTdGF0dXNcIjtcbiAgICAvLyBEUElfVml6U3RhdGUsIGhhdmluZyB0eXBlIFZpelN0YXRlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJWaXpTdGF0ZVwiXSA9IFwidml6U3RhdGVcIjtcbiAgICAvLyBEUElfVml6U3RhdGVMaXN0LCBoYXZpbmcgdHlwZSBWaXpTdGF0ZVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJWaXpTdGF0ZUxpc3RcIl0gPSBcInZpelN0YXRlTGlzdFwiO1xuICAgIC8vIERQSV9Db21tYW5kUmVzdWx0LCBoYXZpbmcgdHlwZSBDb21tYW5kUmVzdWx0UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDb21tYW5kUmVzdWx0XCJdID0gXCJjbWRSZXN1bHRcIjtcbiAgICAvLyBEUElfQ29tbWFuZFJlc3VsdExpc3QsIGhhdmluZyB0eXBlIENvbW1hbmRSZXN1bHRQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiQ29tbWFuZFJlc3VsdExpc3RcIl0gPSBcImNtZFJlc3VsdExpc3RcIjtcbiAgICAvLyBEUElfVVJMQWN0aW9uLCBoYXZpbmcgdHlwZSBVUkxBY3Rpb25QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlVSTEFjdGlvblwiXSA9IFwidXJsQWN0aW9uXCI7XG4gICAgLy8gRFBJX1VSTEFjdGlvbkxpc3QsIGhhdmluZyB0eXBlIFVSTEFjdGlvblByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJVUkxBY3Rpb25MaXN0XCJdID0gXCJ1cmxBY3Rpb25MaXN0XCI7XG4gICAgLy8gRFBJX0xlZ2FjeU1lbnUsIGhhdmluZyB0eXBlIExlZ2FjeU1lbnVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkxlZ2FjeU1lbnVcIl0gPSBcImxlZ2FjeU1lbnVcIjtcbiAgICAvLyBEUElfTGVnYWN5TWVudXMsIGhhdmluZyB0eXBlIExlZ2FjeU1lbnVQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiTGVnYWN5TWVudXNcIl0gPSBcImxlZ2FjeU1lbnVzXCI7XG4gICAgLy8gRFBJX0Nvbm5lY3Rpb25BdHRlbXB0SW5mbywgaGF2aW5nIHR5cGUgQ29ubmVjdGlvbkF0dGVtcHRJbmZvUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDb25uZWN0aW9uQXR0ZW1wdEluZm9cIl0gPSBcImNvbm5lY3Rpb25BdHRlbXB0SW5mb1wiO1xuICAgIC8vIERQSV9EYXRhU291cmNlQ29ubmVjdGlvbkF0dGVtcHRJbmZvLCBoYXZpbmcgdHlwZSBEYXRhU291cmNlQ29ubmVjdGlvbkF0dGVtcHRJbmZvUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEYXRhU291cmNlQ29ubmVjdGlvbkF0dGVtcHRJbmZvXCJdID0gXCJkYXRhU291cmNlQ29ubmVjdGlvbkF0dGVtcHRJbmZvXCI7XG4gICAgLy8gRFBJX0RhdGFTb3VyY2VDb25uZWN0aW9uQXR0ZW1wdEluZm9zLCBoYXZpbmcgdHlwZSBEYXRhU291cmNlQ29ubmVjdGlvbkF0dGVtcHRJbmZvUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFTb3VyY2VDb25uZWN0aW9uQXR0ZW1wdEluZm9zXCJdID0gXCJkYXRhU291cmNlQ29ubmVjdGlvbkF0dGVtcHRJbmZvc1wiO1xuICAgIC8vIERQSV9Db21tYW5kVmFsaWRhdGlvblByZXNNb2RlbCwgaGF2aW5nIHR5cGUgQ29tbWFuZFZhbGlkYXRpb25QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbW1hbmRWYWxpZGF0aW9uUHJlc01vZGVsXCJdID0gXCJjb21tYW5kVmFsaWRhdGlvblByZXNNb2RlbFwiO1xuICAgIC8vIERQSV9XYXJuaW5nTWVzc2FnZSwgaGF2aW5nIHR5cGUgV2FybmluZ01lc3NhZ2VQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIldhcm5pbmdNZXNzYWdlXCJdID0gXCJ3YXJuaW5nTWVzc2FnZVByZXNNb2RlbFwiO1xuICAgIC8vIERQSV9BcHBsaWNhdGlvblByZXNNb2RlbCwgaGF2aW5nIHR5cGUgQXBwbGljYXRpb25QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkFwcGxpY2F0aW9uUHJlc01vZGVsXCJdID0gXCJhcHBsaWNhdGlvblByZXNNb2RlbFwiO1xuICAgIC8vIERQSV9Ub29sYmFyUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBUb29sYmFyUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJUb29sYmFyUHJlc01vZGVsXCJdID0gXCJ0b29sYmFyUHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX1dvcmtib29rUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBXb3JrYm9va1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiV29ya2Jvb2tQcmVzTW9kZWxcIl0gPSBcIndvcmtib29rUHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX1NlcnZlckZvbnRzLCBoYXZpbmcgdHlwZSBTZXJ2ZXJGb250c1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU2VydmVyRm9udHNcIl0gPSBcInNlcnZlckZvbnRzXCI7XG4gICAgLy8gRFBJX1B1Ymxpc2hEYXRhU291cmNlTWV0YWRhdGFQcmVzTW9kZWwsIGhhdmluZyB0eXBlIFB1Ymxpc2hEYXRhU291cmNlTWV0YWRhdGFQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlB1Ymxpc2hEYXRhU291cmNlTWV0YWRhdGFQcmVzTW9kZWxcIl0gPSBcInB1Ymxpc2hEYXRhU291cmNlTWV0YWRhdGFQcmVzTW9kZWxcIjtcbiAgICAvLyBEUElfRGFzaGJvYXJkUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBEYXNoYm9hcmRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRhc2hib2FyZFByZXNNb2RlbFwiXSA9IFwiZGFzaGJvYXJkUHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX0Rhc2hib2FyZFNpemVQcmVzTW9kZWwsIGhhdmluZyB0eXBlIERhc2hib2FyZFNpemVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRhc2hib2FyZFNpemVQcmVzTW9kZWxcIl0gPSBcImRhc2hib2FyZFNpemVQcmVzTW9kZWxcIjtcbiAgICAvLyBEUElfRGFzaGJvYXJkU2l6ZVdpdGhWYWxpZGF0aW9uUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBEYXNoYm9hcmRTaXplV2l0aFZhbGlkYXRpb25QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRhc2hib2FyZFNpemVXaXRoVmFsaWRhdGlvblByZXNNb2RlbFwiXSA9IFwiZGFzaGJvYXJkU2l6ZVdpdGhWYWxpZGF0aW9uUHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX0Rhc2hib2FyZEluZm9QcmVzTW9kZWwsIGhhdmluZyB0eXBlIERhc2hib2FyZEluZm9QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRhc2hib2FyZEluZm9QcmVzTW9kZWxcIl0gPSBcImRhc2hib2FyZEluZm9QcmVzTW9kZWxcIjtcbiAgICAvLyBEUElfVmlzdWFsUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBWaXN1YWxQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlZpc3VhbFByZXNNb2RlbFwiXSA9IFwidmlzdWFsXCI7XG4gICAgLy8gRFBJX1Zpc3VhbFByZXNNb2RlbHMsIGhhdmluZyB0eXBlIFZpc3VhbFByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJWaXN1YWxQcmVzTW9kZWxzXCJdID0gXCJ2aXN1YWxzXCI7XG4gICAgLy8gRFBJX0Ryb3BMaW5lc1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgRHJvcExpbmVzUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEcm9wTGluZXNQcmVzTW9kZWxcIl0gPSBcImRyb3BMaW5lc1ByZXNNb2RlbFwiO1xuICAgIC8vIERQSV9Ecm9wRmllbGRQcmVzTW9kZWwsIGhhdmluZyB0eXBlIERyb3BGaWVsZFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRHJvcEZpZWxkUHJlc01vZGVsXCJdID0gXCJkcm9wRmllbGRQcmVzTW9kZWxcIjtcbiAgICAvLyBEUElfRHJvcEZpZWxkUmVzdWx0UHJlc01vZGVsLCBoYXZpbmcgdHlwZSBEcm9wRmllbGRSZXN1bHRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRyb3BGaWVsZFJlc3VsdFByZXNNb2RlbFwiXSA9IFwiZHJvcEZpZWxkUmVzdWx0UHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX0N1cnJlbnRBeGlzUmFuZ2UsIGhhdmluZyB0eXBlIERhdGFWYWx1ZVJhbmdlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDdXJyZW50QXhpc1JhbmdlXCJdID0gXCJjdXJyZW50QXhpc1JhbmdlXCI7XG4gICAgLy8gRFBJX0N1cnJlbnRBeGlzUmFuZ2VOb1RpbWUsIGhhdmluZyB0eXBlIERhdGFWYWx1ZVJhbmdlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDdXJyZW50QXhpc1JhbmdlTm9UaW1lXCJdID0gXCJjdXJyZW50QXhpc1JhbmdlTm9UaW1lXCI7XG4gICAgLy8gRFBJX0RlZmF1bHRBeGlzUmFuZ2UsIGhhdmluZyB0eXBlIERhdGFWYWx1ZVJhbmdlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEZWZhdWx0QXhpc1JhbmdlXCJdID0gXCJkZWZhdWx0QXhpc1JhbmdlXCI7XG4gICAgLy8gRFBJX05ld0F4aXNSYW5nZSwgaGF2aW5nIHR5cGUgRGF0YVZhbHVlUmFuZ2VQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIk5ld0F4aXNSYW5nZVwiXSA9IFwibmV3QXhpc1JhbmdlXCI7XG4gICAgLy8gRFBJX0F4aXNPcHRpb25zLCBoYXZpbmcgdHlwZSBBeGlzT3B0aW9uc1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQXhpc09wdGlvbnNcIl0gPSBcImF4aXNcIjtcbiAgICAvLyBEUElfQXhpc01ham9yVGlja3MsIGhhdmluZyB0eXBlIFRpY2tNYXJrSW5mb1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQXhpc01ham9yVGlja3NcIl0gPSBcImF4aXNNYWpvclRpY2tzXCI7XG4gICAgLy8gRFBJX0F4aXNNaW5vclRpY2tzLCBoYXZpbmcgdHlwZSBUaWNrTWFya0luZm9QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkF4aXNNaW5vclRpY2tzXCJdID0gXCJheGlzTWlub3JUaWNrc1wiO1xuICAgIC8vIERQSV9FZGl0QXhpc0RpYWxvZywgaGF2aW5nIHR5cGUgRWRpdEF4aXNEaWFsb2dQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkVkaXRBeGlzRGlhbG9nXCJdID0gXCJlZGl0QXhpc0RpYWxvZ1wiO1xuICAgIC8vIERQSV9NYXJrTGFiZWxzLCBoYXZpbmcgdHlwZSBTY2VuZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiTWFya0xhYmVsc1wiXSA9IFwibWFya0xhYmVsc1wiO1xuICAgIC8vIERQSV9TY2VuZSwgaGF2aW5nIHR5cGUgU2NlbmVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlNjZW5lXCJdID0gXCJzY2VuZVwiO1xuICAgIC8vIERQSV9NYXBTZXJ2ZXIsIGhhdmluZyB0eXBlIE1hcFNlcnZlclByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiTWFwU2VydmVyXCJdID0gXCJtYXBTZXJ2ZXJcIjtcbiAgICAvLyBEUElfVmlzdWFsTGlzdCwgaGF2aW5nIHR5cGUgVmlzdWFsTGlzdFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVmlzdWFsTGlzdFwiXSA9IFwidmlzdWFsTGlzdFwiO1xuICAgIC8vIERQSV9EcmF3Rmlyc3QsIGhhdmluZyB0eXBlIFZpc3VhbExpc3RQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiRHJhd0ZpcnN0XCJdID0gXCJkcmF3Rmlyc3RcIjtcbiAgICAvLyBEUElfRHJhd0xhc3QsIGhhdmluZyB0eXBlIFZpc3VhbExpc3RQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiRHJhd0xhc3RcIl0gPSBcImRyYXdMYXN0XCI7XG4gICAgLy8gRFBJX0RyYXdQYW5lLCBoYXZpbmcgdHlwZSBWaXN1YWxMaXN0UHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkRyYXdQYW5lXCJdID0gXCJkcmF3UGFuZVwiO1xuICAgIC8vIERQSV9Vc2VyUGFuZUluZm8sIGhhdmluZyB0eXBlIFVzZXJQYW5lSW5mb1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVXNlclBhbmVJbmZvXCJdID0gXCJ1c2VyUGFuZUluZm9cIjtcbiAgICAvLyBEUElfQW5hbHl0aWNzUGFuZSwgaGF2aW5nIHR5cGUgQW5hbHl0aWNzUGFuZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQW5hbHl0aWNzUGFuZVwiXSA9IFwiYW5hbHl0aWNzUGFuZVwiO1xuICAgIC8vIERQSV9BbmFseXRpY3NPYmplY3RJdGVtLCBoYXZpbmcgdHlwZSBBbmFseXRpY3NPYmplY3RJdGVtUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJBbmFseXRpY3NPYmplY3RJdGVtXCJdID0gXCJhbmFseXRpY3NPYmplY3RJdGVtXCI7XG4gICAgLy8gRFBJX0FuYWx5dGljc09iamVjdEl0ZW1zLCBoYXZpbmcgdHlwZSBBbmFseXRpY3NPYmplY3RJdGVtUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkFuYWx5dGljc09iamVjdEl0ZW1zXCJdID0gXCJhbmFseXRpY3NPYmplY3RJdGVtc1wiO1xuICAgIC8vIERQSV9BbmFseXRpY3NPYmplY3RHcm91cCwgaGF2aW5nIHR5cGUgQW5hbHl0aWNzT2JqZWN0R3JvdXBQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkFuYWx5dGljc09iamVjdEdyb3VwXCJdID0gXCJhbmFseXRpY3NPYmplY3RHcm91cFwiO1xuICAgIC8vIERQSV9BbmFseXRpY3NPYmplY3RHcm91cHMsIGhhdmluZyB0eXBlIEFuYWx5dGljc09iamVjdEdyb3VwUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkFuYWx5dGljc09iamVjdEdyb3Vwc1wiXSA9IFwiYW5hbHl0aWNzT2JqZWN0R3JvdXBzXCI7XG4gICAgLy8gRFBJX0Ryb3Bab25lSXRlbSwgaGF2aW5nIHR5cGUgRHJvcFpvbmVJdGVtUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEcm9wWm9uZUl0ZW1cIl0gPSBcImRyb3Bab25lSXRlbVwiO1xuICAgIC8vIERQSV9Ecm9wWm9uZUl0ZW1zLCBoYXZpbmcgdHlwZSBEcm9wWm9uZUl0ZW1QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiRHJvcFpvbmVJdGVtc1wiXSA9IFwiZHJvcFpvbmVJdGVtc1wiO1xuICAgIC8vIERQSV9Ecm9wVGFyZ2V0SW5mbywgaGF2aW5nIHR5cGUgRHJvcFRhcmdldEluZm9QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRyb3BUYXJnZXRJbmZvXCJdID0gXCJkcm9wVGFyZ2V0SW5mb1wiO1xuICAgIC8vIERQSV9QYW5lLCBoYXZpbmcgdHlwZSBQYW5lUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJQYW5lXCJdID0gXCJwYW5lXCI7XG4gICAgLy8gRFBJX1BhbmVzLCBoYXZpbmcgdHlwZSBQYW5lUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlBhbmVzXCJdID0gXCJwYW5lc1wiO1xuICAgIC8vIERQSV9SYWRpYWxTZWxlY3Rpb25EaXN0YW5jZUluZm8sIGhhdmluZyB0eXBlIFJhZGlhbFNlbGVjdGlvbkRpc3RhbmNlSW5mb1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUmFkaWFsU2VsZWN0aW9uRGlzdGFuY2VJbmZvXCJdID0gXCJyYWRpYWxTZWxlY3Rpb25EaXN0YW5jZUluZm9cIjtcbiAgICAvLyBEUElfTWFwU2NhbGVJbmZvLCBoYXZpbmcgdHlwZSBNYXBTY2FsZUluZm9QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIk1hcFNjYWxlSW5mb1wiXSA9IFwibWFwU2NhbGVJbmZvXCI7XG4gICAgLy8gRFBJX1JlbmRlck5vZGUsIGhhdmluZyB0eXBlIFJlbmRlck5vZGVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlJlbmRlck5vZGVcIl0gPSBcInJlbmRlck5vZGVcIjtcbiAgICAvLyBEUElfUmVuZGVyTm9kZXMsIGhhdmluZyB0eXBlIFJlbmRlck5vZGVQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiUmVuZGVyTm9kZXNcIl0gPSBcInJlbmRlck5vZGVzXCI7XG4gICAgLy8gRFBJX1ByZWRpY3Rpb25CYW5kLCBoYXZpbmcgdHlwZSBQcmVkaWN0aW9uQmFuZFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUHJlZGljdGlvbkJhbmRcIl0gPSBcInByZWRpY3Rpb25CYW5kXCI7XG4gICAgLy8gRFBJX1ByZWRpY3Rpb25XaGlza2VyLCBoYXZpbmcgdHlwZSBQcmVkaWN0aW9uV2hpc2tlclByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUHJlZGljdGlvbldoaXNrZXJcIl0gPSBcInByZWRpY3Rpb25XaGlza2VyXCI7XG4gICAgLy8gRFBJX0RyYXdHcm91cCwgaGF2aW5nIHR5cGUgRHJhd1BvaW50c1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRHJhd0dyb3VwXCJdID0gXCJkcmF3R3JvdXBcIjtcbiAgICAvLyBEUElfQ2xpcFJlc2V0LCBoYXZpbmcgdHlwZSBEcmF3SXRlbVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ2xpcFJlc2V0XCJdID0gXCJjbGlwUmVzZXRcIjtcbiAgICAvLyBEUElfRHJhd0l0ZW0sIGhhdmluZyB0eXBlIERyYXdJdGVtUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEcmF3SXRlbVwiXSA9IFwiZHJhd0l0ZW1cIjtcbiAgICAvLyBEUElfVHJhbnNmb3JtUG9wLCBoYXZpbmcgdHlwZSBEcmF3SXRlbVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVHJhbnNmb3JtUG9wXCJdID0gXCJ0cmFuc2Zvcm1Qb3BcIjtcbiAgICAvLyBEUElfVHJhbnNmb3JtUHVzaCwgaGF2aW5nIHR5cGUgRHJhd0l0ZW1QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlRyYW5zZm9ybVB1c2hcIl0gPSBcInRyYW5zZm9ybVB1c2hcIjtcbiAgICAvLyBEUElfRHJhd0l0ZW1zLCBoYXZpbmcgdHlwZSBEcmF3SXRlbVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJEcmF3SXRlbXNcIl0gPSBcImRyYXdJdGVtc1wiO1xuICAgIC8vIERQSV9DbGlwUmVjdCwgaGF2aW5nIHR5cGUgRHJhd1BvaW50c1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ2xpcFJlY3RcIl0gPSBcImNsaXBSZWN0XCI7XG4gICAgLy8gRFBJX0RyYXdFbGxpcHNlLCBoYXZpbmcgdHlwZSBEcmF3UG9pbnRzUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEcmF3RWxsaXBzZVwiXSA9IFwiZHJhd0VsbGlwc2VcIjtcbiAgICAvLyBEUElfRHJhd0ZpbGxFbGxpcHNlLCBoYXZpbmcgdHlwZSBEcmF3UG9pbnRzUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEcmF3RmlsbEVsbGlwc2VcIl0gPSBcImRyYXdGaWxsRWxsaXBzZVwiO1xuICAgIC8vIERQSV9EcmF3RmlsbFBvbHlnb24sIGhhdmluZyB0eXBlIERyYXdQb2ludHNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRyYXdGaWxsUG9seWdvblwiXSA9IFwiZHJhd0ZpbGxQb2x5Z29uXCI7XG4gICAgLy8gRFBJX0RyYXdGaWxsUmVjdCwgaGF2aW5nIHR5cGUgRHJhd1BvaW50c1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRHJhd0ZpbGxSZWN0XCJdID0gXCJkcmF3RmlsbFJlY3RcIjtcbiAgICAvLyBEUElfRHJhd1BvbHlnb24sIGhhdmluZyB0eXBlIERyYXdQb2ludHNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRyYXdQb2x5Z29uXCJdID0gXCJkcmF3UG9seWdvblwiO1xuICAgIC8vIERQSV9EcmF3UG9seWxpbmUsIGhhdmluZyB0eXBlIERyYXdQb2ludHNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRyYXdQb2x5bGluZVwiXSA9IFwiZHJhd1BvbHlsaW5lXCI7XG4gICAgLy8gRFBJX0RyYXdSZWN0LCBoYXZpbmcgdHlwZSBEcmF3UG9pbnRzUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEcmF3UmVjdFwiXSA9IFwiZHJhd1JlY3RcIjtcbiAgICAvLyBEUElfRHJhd0ZpbGxQYXRoLCBoYXZpbmcgdHlwZSBEcmF3UGF0aFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRHJhd0ZpbGxQYXRoXCJdID0gXCJkcmF3RmlsbFBhdGhcIjtcbiAgICAvLyBEUElfRHJhd1BhdGgsIGhhdmluZyB0eXBlIERyYXdQYXRoUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEcmF3UGF0aFwiXSA9IFwiZHJhd1BhdGhcIjtcbiAgICAvLyBEUElfRHJhd1RleHQsIGhhdmluZyB0eXBlIERyYXdUZXh0UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEcmF3VGV4dFwiXSA9IFwiZHJhd1RleHRcIjtcbiAgICAvLyBEUElfRHJhd0ltYWdlLCBoYXZpbmcgdHlwZSBEcmF3SW1hZ2VQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRyYXdJbWFnZVwiXSA9IFwiZHJhd0ltYWdlXCI7XG4gICAgLy8gRFBJX0ltYWdlVGlsZUluZm8sIGhhdmluZyB0eXBlIEltYWdlVGlsZUluZm9QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkltYWdlVGlsZUluZm9cIl0gPSBcInRpbGVJbmZvXCI7XG4gICAgLy8gRFBJX0ltYWdlVGlsZUluZm9zLCBoYXZpbmcgdHlwZSBJbWFnZVRpbGVJbmZvUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkltYWdlVGlsZUluZm9zXCJdID0gXCJ0aWxlSW5mb3NcIjtcbiAgICAvLyBEUElfRHJhd0ltYWdlVGlsZXMsIGhhdmluZyB0eXBlIERyYXdJbWFnZVRpbGVzUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEcmF3SW1hZ2VUaWxlc1wiXSA9IFwiZHJhd0ltYWdlVGlsZXNcIjtcbiAgICAvLyBEUElfRHJhd1BlbiwgaGF2aW5nIHR5cGUgRHJhd1BlblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRHJhd1BlblwiXSA9IFwiZHJhd1BlblwiO1xuICAgIC8vIERQSV9EcmF3U29saWRCcnVzaCwgaGF2aW5nIHR5cGUgRHJhd1NvbGlkQnJ1c2hQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRyYXdTb2xpZEJydXNoXCJdID0gXCJkcmF3U29saWRCcnVzaFwiO1xuICAgIC8vIERQSV9EcmF3VGV4dFByb3BlcnRpZXMsIGhhdmluZyB0eXBlIERyYXdUZXh0UHJvcGVydGllc1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRHJhd1RleHRQcm9wZXJ0aWVzXCJdID0gXCJkcmF3VGV4dFByb3BzXCI7XG4gICAgLy8gRFBJX0RyYXdHcmFkaWVudEJydXNoLCBoYXZpbmcgdHlwZSBEcmF3R3JhZGllbnRCcnVzaFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRHJhd0dyYWRpZW50QnJ1c2hcIl0gPSBcImRyYXdHcmFkaWVudEJydXNoXCI7XG4gICAgLy8gRFBJX0RyYXdUcmFuc2Zvcm0sIGhhdmluZyB0eXBlIERyYXdUcmFuc2Zvcm1QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRyYXdUcmFuc2Zvcm1cIl0gPSBcInRyYW5zZm9ybVwiO1xuICAgIC8vIERQSV9EcmF3QW50aWFsaWFzLCBoYXZpbmcgdHlwZSBEcmF3QW50aWFsaWFzUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEcmF3QW50aWFsaWFzXCJdID0gXCJkcmF3QW50aWFsaWFzXCI7XG4gICAgLy8gRFBJX0ltYWdlRGljdGlvbmFyeSwgaGF2aW5nIHR5cGUgSW1hZ2VEaWN0aW9uYXJ5UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJJbWFnZURpY3Rpb25hcnlcIl0gPSBcImltYWdlRGljdGlvbmFyeVwiO1xuICAgIC8vIERQSV9Db2xvckRpY3Rpb25hcnksIGhhdmluZyB0eXBlIENvbG9yRGljdGlvbmFyeVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ29sb3JEaWN0aW9uYXJ5XCJdID0gXCJjb2xvckRpY3Rpb25hcnlcIjtcbiAgICAvLyBEUElfTWFya1NoYXBlLCBoYXZpbmcgdHlwZSBNYXJrU2hhcGVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIk1hcmtTaGFwZVwiXSA9IFwibWFya1NoYXBlXCI7XG4gICAgLy8gRFBJX01hcmtTaGFwZUxpc3QsIGhhdmluZyB0eXBlIE1hcmtTaGFwZVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJNYXJrU2hhcGVMaXN0XCJdID0gXCJtYXJrU2hhcGVMaXN0XCI7XG4gICAgLy8gRFBJX1BhbmVEZXNjcmlwdG9yLCBoYXZpbmcgdHlwZSBQYW5lRGVzY3JpcHRvclByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUGFuZURlc2NyaXB0b3JcIl0gPSBcInBhbmVEZXNjcmlwdG9yXCI7XG4gICAgLy8gRFBJX1BETWFya3MsIGhhdmluZyB0eXBlIFBETWFya3NQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlBETWFya3NcIl0gPSBcInBkTWFya3NcIjtcbiAgICAvLyBEUElfUERNYXJrc01hcCwgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBQRE1hcmtzUHJlc01vZGVsKVxuICAgIFBhcmFtZXRlcklkW1wiUERNYXJrc01hcFwiXSA9IFwicGRNYXJrc01hcFwiO1xuICAgIC8vIERQSV9MYWJlbFRleHRUYWJsZSwgaGF2aW5nIHR5cGUgTGFiZWxUZXh0VGFibGVcbiAgICBQYXJhbWV0ZXJJZFtcIkxhYmVsVGV4dFRhYmxlXCJdID0gXCJsYWJlbFRleHRUYWJsZVwiO1xuICAgIC8vIERQSV9UZXh0VGFibGVIZWxwZXIsIGhhdmluZyB0eXBlIFRleHRUYWJsZUhlbHBlclxuICAgIFBhcmFtZXRlcklkW1wiVGV4dFRhYmxlSGVscGVyXCJdID0gXCJ0ZXh0VGFibGVIZWxwZXJcIjtcbiAgICAvLyBEUElfR2VvbWV0cnlUYWJsZSwgaGF2aW5nIHR5cGUgR2VvbWV0cnlUYWJsZVxuICAgIFBhcmFtZXRlcklkW1wiR2VvbWV0cnlUYWJsZVwiXSA9IFwiZ2VvbWV0cnlUYWJsZVwiO1xuICAgIC8vIERQSV9QYW5lTWFya3MsIGhhdmluZyB0eXBlIFBhbmVNYXJrc1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUGFuZU1hcmtzXCJdID0gXCJwYW5lTWFya3NcIjtcbiAgICAvLyBEUElfUGFuZU1hcmtzTGlzdCwgaGF2aW5nIHR5cGUgUGFuZU1hcmtzUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlBhbmVNYXJrc0xpc3RcIl0gPSBcInBhbmVNYXJrc0xpc3RcIjtcbiAgICAvLyBEUElfQnJ1c2hpbmdTZWxlY3Rpb24sIGhhdmluZyB0eXBlIFNlbGVjdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQnJ1c2hpbmdTZWxlY3Rpb25cIl0gPSBcImJydXNoaW5nXCI7XG4gICAgLy8gRFBJX1NlbGVjdGlvbiwgaGF2aW5nIHR5cGUgU2VsZWN0aW9uUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTZWxlY3Rpb25cIl0gPSBcInNlbGVjdGlvblwiO1xuICAgIC8vIERQSV9CcnVzaGluZ1NlbGVjdGlvbkxpc3QsIGhhdmluZyB0eXBlIFNlbGVjdGlvblByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJCcnVzaGluZ1NlbGVjdGlvbkxpc3RcIl0gPSBcImJydXNoaW5nU2VsZWN0aW9uTGlzdFwiO1xuICAgIC8vIERQSV9TZWxlY3Rpb25MaXN0LCBoYXZpbmcgdHlwZSBTZWxlY3Rpb25QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiU2VsZWN0aW9uTGlzdFwiXSA9IFwic2VsZWN0aW9uTGlzdFwiO1xuICAgIC8vIERQSV9TaGVsZlNlbGVjdGlvbk1vZGVsLCBoYXZpbmcgdHlwZSBTaGVsZlNlbGVjdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU2hlbGZTZWxlY3Rpb25Nb2RlbFwiXSA9IFwic2hlbGZTZWxlY3Rpb25Nb2RlbFwiO1xuICAgIC8vIERQSV9TaGVsZlNlbGVjdGlvbk1vZGVscywgaGF2aW5nIHR5cGUgU2hlbGZTZWxlY3Rpb25QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiU2hlbGZTZWxlY3Rpb25Nb2RlbHNcIl0gPSBcInNoZWxmU2VsZWN0aW9uTW9kZWxzXCI7XG4gICAgLy8gRFBJX1NoZWxmU2VsZWN0aW9uc01vZGVsLCBoYXZpbmcgdHlwZSBTaGVsZlNlbGVjdGlvbnNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlNoZWxmU2VsZWN0aW9uc01vZGVsXCJdID0gXCJzaGVsZlNlbGVjdGlvbnNNb2RlbFwiO1xuICAgIC8vIERQSV9EaW1WYWxTZWxlY3Rpb25Nb2RlbCwgaGF2aW5nIHR5cGUgRGltZW5zaW9uVmFsdWVTZWxlY3Rpb25QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRpbVZhbFNlbGVjdGlvbk1vZGVsXCJdID0gXCJkaW1lbnNpb25WYWx1ZVNlbGVjdGlvbk1vZGVsXCI7XG4gICAgLy8gRFBJX0RpbVZhbFNlbGVjdGlvbk1vZGVscywgaGF2aW5nIHR5cGUgRGltZW5zaW9uVmFsdWVTZWxlY3Rpb25QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiRGltVmFsU2VsZWN0aW9uTW9kZWxzXCJdID0gXCJkaW1lbnNpb25WYWx1ZVNlbGVjdGlvbk1vZGVsc1wiO1xuICAgIC8vIERQSV9IaWVyVmFsU2VsZWN0aW9uTW9kZWwsIGhhdmluZyB0eXBlIEhpZXJhcmNoaWNhbFZhbHVlU2VsZWN0aW9uUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJIaWVyVmFsU2VsZWN0aW9uTW9kZWxcIl0gPSBcImhpZXJhcmNoaWNhbFZhbHVlU2VsZWN0aW9uTW9kZWxcIjtcbiAgICAvLyBEUElfSGllclZhbFNlbGVjdGlvbk1vZGVscywgaGF2aW5nIHR5cGUgSGllcmFyY2hpY2FsVmFsdWVTZWxlY3Rpb25QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiSGllclZhbFNlbGVjdGlvbk1vZGVsc1wiXSA9IFwiaGllcmFyY2hpY2FsVmFsdWVTZWxlY3Rpb25Nb2RlbHNcIjtcbiAgICAvLyBEUElfUXVhbnRSYW5nZVNlbGVjdGlvbk1vZGVsLCBoYXZpbmcgdHlwZSBRdWFudGF0aXZlUmFuZ2VTZWxlY3Rpb25QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlF1YW50UmFuZ2VTZWxlY3Rpb25Nb2RlbFwiXSA9IFwicXVhbnRhdGl2ZVJhbmdlU2VsZWN0aW9uTW9kZWxcIjtcbiAgICAvLyBEUElfUXVhbnRSYW5nZVNlbGVjdGlvbk1vZGVscywgaGF2aW5nIHR5cGUgUXVhbnRhdGl2ZVJhbmdlU2VsZWN0aW9uUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlF1YW50UmFuZ2VTZWxlY3Rpb25Nb2RlbHNcIl0gPSBcInF1YW50YXRpdmVSYW5nZVNlbGVjdGlvbk1vZGVsc1wiO1xuICAgIC8vIERQSV9RdWFudFZhbHVlU2VsZWN0aW9uTW9kZWwsIGhhdmluZyB0eXBlIFF1YW50YXRpdmVWYWx1ZVNlbGVjdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUXVhbnRWYWx1ZVNlbGVjdGlvbk1vZGVsXCJdID0gXCJxdWFudGF0aXZlVmFsdWVTZWxlY3Rpb25Nb2RlbFwiO1xuICAgIC8vIERQSV9RdWFudFZhbHVlU2VsZWN0aW9uTW9kZWxzLCBoYXZpbmcgdHlwZSBRdWFudGF0aXZlVmFsdWVTZWxlY3Rpb25QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiUXVhbnRWYWx1ZVNlbGVjdGlvbk1vZGVsc1wiXSA9IFwicXVhbnRhdGl2ZVZhbHVlU2VsZWN0aW9uTW9kZWxzXCI7XG4gICAgLy8gRFBJX0xlZ2VuZFNlbGVjdGlvbkluZm8sIGhhdmluZyB0eXBlIExlZ2VuZFNlbGVjdGlvbkluZm9QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkxlZ2VuZFNlbGVjdGlvbkluZm9cIl0gPSBcImxlZ2VuZFNlbGVjdGlvbkluZm9cIjtcbiAgICAvLyBEUElfTm9kZVJlZmVyZW5jZSwgaGF2aW5nIHR5cGUgTm9kZVJlZmVyZW5jZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiTm9kZVJlZmVyZW5jZVwiXSA9IFwibm9kZVJlZmVyZW5jZVwiO1xuICAgIC8vIERQSV9QYWdlUmVmZXJlbmNlLCBoYXZpbmcgdHlwZSBQYWdlUmVmZXJlbmNlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJQYWdlUmVmZXJlbmNlXCJdID0gXCJwYWdlUmVmZXJlbmNlXCI7XG4gICAgLy8gRFBJX09yaWVudGVkTm9kZVJlZmVyZW5jZSwgaGF2aW5nIHR5cGUgT3JpZW50ZWROb2RlUmVmZXJlbmNlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJPcmllbnRlZE5vZGVSZWZlcmVuY2VcIl0gPSBcIm9yaWVudGVkTm9kZVJlZmVyZW5jZVwiO1xuICAgIC8vIERQSV9PcmllbnRlZE5vZGVSZWZlcmVuY2VzLCBoYXZpbmcgdHlwZSBPcmllbnRlZE5vZGVSZWZlcmVuY2VQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiT3JpZW50ZWROb2RlUmVmZXJlbmNlc1wiXSA9IFwib3JpZW50ZWROb2RlUmVmZXJlbmNlc1wiO1xuICAgIC8vIERQSV9TZWxlY3Rpb25EYXRhLCBoYXZpbmcgdHlwZSBTZWxlY3Rpb25EYXRhUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTZWxlY3Rpb25EYXRhXCJdID0gXCJzZWxlY3Rpb25EYXRhXCI7XG4gICAgLy8gRFBJX0hpZ2hsaWdodGVkRGF0YSwgaGF2aW5nIHR5cGUgSGlnaGxpZ2h0ZWREYXRhUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJIaWdobGlnaHRlZERhdGFcIl0gPSBcImhpZ2hsaWdodGVkRGF0YVwiO1xuICAgIC8vIERQSV9Ob2RlLCBoYXZpbmcgdHlwZSBOb2RlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJOb2RlXCJdID0gXCJub2RlXCI7XG4gICAgLy8gRFBJX05vZGVzLCBoYXZpbmcgdHlwZSBOb2RlUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIk5vZGVzXCJdID0gXCJub2Rlc1wiO1xuICAgIC8vIERQSV9TZWxlY3RlZE5vZGVzLCBoYXZpbmcgdHlwZSBOb2RlUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlNlbGVjdGVkTm9kZXNcIl0gPSBcInNlbGVjdGVkTm9kZXNcIjtcbiAgICAvLyBEUElfVXNlckFjdGlvbiwgaGF2aW5nIHR5cGUgQWN0aW9uUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJVc2VyQWN0aW9uXCJdID0gXCJ1c2VyQWN0aW9uXCI7XG4gICAgLy8gRFBJX1VzZXJBY3Rpb25zLCBoYXZpbmcgdHlwZSBBY3Rpb25QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiVXNlckFjdGlvbnNcIl0gPSBcInVzZXJBY3Rpb25zXCI7XG4gICAgLy8gRFBJX0xpbmtTcGVjLCBoYXZpbmcgdHlwZSBMaW5rU3BlY1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiTGlua1NwZWNcIl0gPSBcImxpbmtTcGVjXCI7XG4gICAgLy8gRFBJX0FjdGlvblNwZWNpZmljYXRpb25Nb2RlbCwgaGF2aW5nIHR5cGUgQWN0aW9uU3BlY2lmaWNhdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQWN0aW9uU3BlY2lmaWNhdGlvbk1vZGVsXCJdID0gXCJhY3Rpb25TcGVjaWZpY2F0aW9uXCI7XG4gICAgLy8gRFBJX0xpbmtTcGVjaWZpY2F0aW9uLCBoYXZpbmcgdHlwZSBMaW5rU3BlY2lmaWNhdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiTGlua1NwZWNpZmljYXRpb25cIl0gPSBcImxpbmtTcGVjaWZpY2F0aW9uXCI7XG4gICAgLy8gRFBJX1NjcmlwdERlc2NyaXB0aW9uLCBoYXZpbmcgdHlwZSBTY3JpcHREZXNjcmlwdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU2NyaXB0RGVzY3JpcHRpb25cIl0gPSBcInNjcmlwdERlc2NyaXB0aW9uXCI7XG4gICAgLy8gRFBJX0FjdGlvblNvdXJjZSwgaGF2aW5nIHR5cGUgQWN0aW9uU291cmNlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJBY3Rpb25Tb3VyY2VcIl0gPSBcImFjdGlvblNvdXJjZVwiO1xuICAgIC8vIERQSV9GaWVsZEV4cHJJdGVtLCBoYXZpbmcgdHlwZSBGaWVsZEV4cHJJdGVtUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJGaWVsZEV4cHJJdGVtXCJdID0gXCJmaWVsZEV4cHJlc3Npb25JdGVtXCI7XG4gICAgLy8gRFBJX0ZpZWxkRXhwclZlY3RvciwgaGF2aW5nIHR5cGUgRmllbGRFeHBySXRlbVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJGaWVsZEV4cHJWZWN0b3JcIl0gPSBcImZpZWxkRXhwcmVzc2lvblZlY3RvclwiO1xuICAgIC8vIERQSV9BY3Rpb25Db21ib0l0ZW0sIGhhdmluZyB0eXBlIEFjdGlvbkNvbWJvSXRlbVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQWN0aW9uQ29tYm9JdGVtXCJdID0gXCJhY3Rpb25Db21ib0l0ZW1cIjtcbiAgICAvLyBEUElfQWN0aW9uQ29tYm9WZWN0b3IsIGhhdmluZyB0eXBlIEFjdGlvbkNvbWJvSXRlbVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJBY3Rpb25Db21ib1ZlY3RvclwiXSA9IFwiYWN0aW9uQ29tYm9WZWN0b3JcIjtcbiAgICAvLyBEUElfQWN0aW9uU291cmNlQ29tYm8sIGhhdmluZyB0eXBlIEFjdGlvblNvdXJjZUNvbWJvUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJBY3Rpb25Tb3VyY2VDb21ib1wiXSA9IFwiYWN0aW9uU291cmNlQ29tYm9cIjtcbiAgICAvLyBEUElfQWN0aW9uRGVzdENvbWJvLCBoYXZpbmcgdHlwZSBBY3Rpb25Db21ib1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQWN0aW9uRGVzdENvbWJvXCJdID0gXCJhY3Rpb25EZXN0Q29tYm9cIjtcbiAgICAvLyBEUElfQWN0aW9uRmllbGRMaXN0LCBoYXZpbmcgdHlwZSBBY3Rpb25GaWVsZExpc3RQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkFjdGlvbkZpZWxkTGlzdFwiXSA9IFwiYWN0aW9uRmllbGRMaXN0XCI7XG4gICAgLy8gRFBJX0VkaXRCcnVzaEFjdGlvbiwgaGF2aW5nIHR5cGUgRWRpdEJydXNoQWN0aW9uUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJFZGl0QnJ1c2hBY3Rpb25cIl0gPSBcImVkaXRCcnVzaEFjdGlvblwiO1xuICAgIC8vIERQSV9VcGRhdGVBY3Rpb25Tb3VyY2UsIGhhdmluZyB0eXBlIFVwZGF0ZUFjdGlvblNvdXJjZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVXBkYXRlQWN0aW9uU291cmNlXCJdID0gXCJ1cGRhdGVBY3Rpb25Tb3VyY2VcIjtcbiAgICAvLyBEUElfVXBkYXRlQnJ1c2hBY3Rpb24sIGhhdmluZyB0eXBlIFVwZGF0ZUJydXNoQWN0aW9uUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJVcGRhdGVCcnVzaEFjdGlvblwiXSA9IFwidXBkYXRlQnJ1c2hBY3Rpb25cIjtcbiAgICAvLyBEUElfQWN0aW9uV2FybmluZ3MsIGhhdmluZyB0eXBlIEFjdGlvbldhcm5pbmdzUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJBY3Rpb25XYXJuaW5nc1wiXSA9IFwiYWN0aW9uV2FybmluZ3NcIjtcbiAgICAvLyBEUElfRWRpdEh5cGVybGlua0FjdGlvbiwgaGF2aW5nIHR5cGUgRWRpdEh5cGVybGlua0FjdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRWRpdEh5cGVybGlua0FjdGlvblwiXSA9IFwiZWRpdEh5cGVybGlua0FjdGlvblwiO1xuICAgIC8vIERQSV9VcGRhdGVIeXBlcmxpbmtBY3Rpb24sIGhhdmluZyB0eXBlIFVwZGF0ZUh5cGVybGlua0FjdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVXBkYXRlSHlwZXJsaW5rQWN0aW9uXCJdID0gXCJ1cGRhdGVIeXBlcmxpbmtBY3Rpb25cIjtcbiAgICAvLyBEUElfRWRpdFNoZWV0TGlua0FjdGlvbiwgaGF2aW5nIHR5cGUgRWRpdFNoZWV0TGlua0FjdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRWRpdFNoZWV0TGlua0FjdGlvblwiXSA9IFwiZWRpdFNoZWV0bGlua0FjdGlvblwiO1xuICAgIC8vIERQSV9VcGRhdGVTaGVldExpbmtBY3Rpb24sIGhhdmluZyB0eXBlIFVwZGF0ZVNoZWV0TGlua0FjdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVXBkYXRlU2hlZXRMaW5rQWN0aW9uXCJdID0gXCJ1cGRhdGVTaGVldGxpbmtBY3Rpb25cIjtcbiAgICAvLyBEUElfQWN0aW9uSXRlbSwgaGF2aW5nIHR5cGUgQWN0aW9uSXRlbVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQWN0aW9uSXRlbVwiXSA9IFwiYWN0aW9uSXRlbVwiO1xuICAgIC8vIERQSV9BY3Rpb25JdGVtTGlzdCwgaGF2aW5nIHR5cGUgQWN0aW9uSXRlbVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJBY3Rpb25JdGVtTGlzdFwiXSA9IFwiYWN0aW9uSXRlbUxpc3RcIjtcbiAgICAvLyBEUElfRGF0YVNlZ21lbnQsIGhhdmluZyB0eXBlIERhdGFTZWdtZW50UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEYXRhU2VnbWVudFwiXSA9IFwiZGF0YVNlZ21lbnRcIjtcbiAgICAvLyBEUElfRGF0YVNlZ21lbnRzLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIERhdGFTZWdtZW50UHJlc01vZGVsKVxuICAgIFBhcmFtZXRlcklkW1wiRGF0YVNlZ21lbnRzXCJdID0gXCJkYXRhU2VnbWVudHNcIjtcbiAgICAvLyBEUElfRGF0YURpY3Rpb25hcnksIGhhdmluZyB0eXBlIERhdGFEaWN0aW9uYXJ5UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEYXRhRGljdGlvbmFyeVwiXSA9IFwiZGF0YURpY3Rpb25hcnlcIjtcbiAgICAvLyBEUElfVml6RGF0YSwgaGF2aW5nIHR5cGUgVml6RGF0YVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVml6RGF0YVwiXSA9IFwidml6RGF0YVwiO1xuICAgIC8vIERQSV9WaXpDb2x1bW4sIGhhdmluZyB0eXBlIFZpekNvbHVtblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVml6Q29sdW1uXCJdID0gXCJ2aXpDb2x1bW5cIjtcbiAgICAvLyBEUElfVml6Q29sdW1ucywgaGF2aW5nIHR5cGUgVml6Q29sdW1uUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlZpekNvbHVtbnNcIl0gPSBcInZpekNvbHVtbnNcIjtcbiAgICAvLyBEUElfVml6RGF0YUNvbHVtbiwgaGF2aW5nIHR5cGUgVml6RGF0YUNvbHVtblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVml6RGF0YUNvbHVtblwiXSA9IFwidml6RGF0YUNvbHVtblwiO1xuICAgIC8vIERQSV9WaXpEYXRhQ29sdW1ucywgaGF2aW5nIHR5cGUgVml6RGF0YUNvbHVtblByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJWaXpEYXRhQ29sdW1uc1wiXSA9IFwidml6RGF0YUNvbHVtbnNcIjtcbiAgICAvLyBEUElfVml6UGFuZUNvbHVtbiwgaGF2aW5nIHR5cGUgVml6UGFuZUNvbHVtblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVml6UGFuZUNvbHVtblwiXSA9IFwidml6UGFuZUNvbHVtblwiO1xuICAgIC8vIERQSV9WaXpQYW5lQ29sdW1ucywgaGF2aW5nIHR5cGUgVml6UGFuZUNvbHVtblByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJWaXpQYW5lQ29sdW1uc1wiXSA9IFwidml6UGFuZUNvbHVtbnNcIjtcbiAgICAvLyBEUElfUGFuZUNvbHVtbnMsIGhhdmluZyB0eXBlIFBhbmVDb2x1bW5zUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJQYW5lQ29sdW1uc1wiXSA9IFwicGFuZUNvbHVtbnNcIjtcbiAgICAvLyBEUElfUGFuZUNvbHVtbnNMaXN0LCBoYXZpbmcgdHlwZSBQYW5lQ29sdW1uc1ByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJQYW5lQ29sdW1uc0xpc3RcIl0gPSBcInBhbmVDb2x1bW5zTGlzdFwiO1xuICAgIC8vIERQSV9QYW5lQ29sdW1uc0RhdGEsIGhhdmluZyB0eXBlIFBhbmVDb2x1bW5zRGF0YVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUGFuZUNvbHVtbnNEYXRhXCJdID0gXCJwYW5lQ29sdW1uc0RhdGFcIjtcbiAgICAvLyBEUElfRmlsdGVyQ29udGV4dCwgaGF2aW5nIHR5cGUgRmlsdGVyQ29udGV4dFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRmlsdGVyQ29udGV4dFwiXSA9IFwiZmlsdGVyQ29udGV4dFwiO1xuICAgIC8vIERQSV9VYmVyVGlwUGFuZURhdGEsIGhhdmluZyB0eXBlIFViZXJUaXBQYW5lRGF0YVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVWJlclRpcFBhbmVEYXRhXCJdID0gXCJ1YmVydGlwUGFuZURhdGFcIjtcbiAgICAvLyBEUElfVWJlclRpcFBhbmVEYXRhcywgaGF2aW5nIHR5cGUgVWJlclRpcFBhbmVEYXRhUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlViZXJUaXBQYW5lRGF0YXNcIl0gPSBcInViZXJ0aXBQYW5lRGF0YXNcIjtcbiAgICAvLyBEUElfVWJlclRpcERhdGEsIGhhdmluZyB0eXBlIFViZXJUaXBEYXRhUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJVYmVyVGlwRGF0YVwiXSA9IFwidWJlcnRpcERhdGFcIjtcbiAgICAvLyBEUElfUmVmTGluZVRpcCwgaGF2aW5nIHR5cGUgUmVmTGluZVRpcFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUmVmTGluZVRpcFwiXSA9IFwicmVmTGluZVRpcFwiO1xuICAgIC8vIERQSV9SZWZMaW5lVGlwcywgaGF2aW5nIHR5cGUgUmVmTGluZVRpcFByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJSZWZMaW5lVGlwc1wiXSA9IFwicmVmTGluZVRpcHNcIjtcbiAgICAvLyBEUElfTnVtZXJpY0JpbiwgaGF2aW5nIHR5cGUgTnVtZXJpY0JpblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiTnVtZXJpY0JpblwiXSA9IFwibnVtZXJpY0JpblwiO1xuICAgIC8vIERQSV9OdW1lcmljQmluRGlhbG9nLCBoYXZpbmcgdHlwZSBOdW1lcmljQmluRGlhbG9nUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJOdW1lcmljQmluRGlhbG9nXCJdID0gXCJudW1lcmljQmluRGlhbG9nXCI7XG4gICAgLy8gRFBJX0RvbWFpblJhbmdlLCBoYXZpbmcgdHlwZSBEb21haW5SYW5nZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRG9tYWluUmFuZ2VcIl0gPSBcImRvbWFpblJhbmdlXCI7XG4gICAgLy8gRFBJX0JpblNpemVJbmZvLCBoYXZpbmcgdHlwZSBCaW5TaXplSW5mb1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQmluU2l6ZUluZm9cIl0gPSBcImJpblNpemVJbmZvXCI7XG4gICAgLy8gRFBJX0RldGFpbGVkRXJyb3JEaWFsb2csIGhhdmluZyB0eXBlIERldGFpbGVkRXJyb3JQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRldGFpbGVkRXJyb3JEaWFsb2dcIl0gPSBcImRldGFpbGVkRXJyb3JEaWFsb2dcIjtcbiAgICAvLyBEUElfRHJhZ1NvdXJjZVBvc2l0aW9uLCBoYXZpbmcgdHlwZSBTaGVsZkRyb3BQb3NpdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRHJhZ1NvdXJjZVBvc2l0aW9uXCJdID0gXCJzaGVsZkRyYWdTb3VyY2VQb3NpdGlvblwiO1xuICAgIC8vIERQSV9Ecm9wVGFyZ2V0UG9zaXRpb24sIGhhdmluZyB0eXBlIFNoZWxmRHJvcFBvc2l0aW9uUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEcm9wVGFyZ2V0UG9zaXRpb25cIl0gPSBcInNoZWxmRHJvcFRhcmdldFBvc2l0aW9uXCI7XG4gICAgLy8gRFBJX1NoZWxmRHJvcFBvc2l0aW9uLCBoYXZpbmcgdHlwZSBTaGVsZkRyb3BQb3NpdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU2hlbGZEcm9wUG9zaXRpb25cIl0gPSBcInNoZWxmRHJvcFBvc2l0aW9uXCI7XG4gICAgLy8gRFBJX1NoZWxmRHJvcFBvc2l0aW9ucywgaGF2aW5nIHR5cGUgU2hlbGZEcm9wUG9zaXRpb25QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiU2hlbGZEcm9wUG9zaXRpb25zXCJdID0gXCJzaGVsZkRyb3BQb3NpdGlvbnNcIjtcbiAgICAvLyBEUElfU2hlbGZEcm9wTW9kZWwsIGhhdmluZyB0eXBlIFNoZWxmRHJvcFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU2hlbGZEcm9wTW9kZWxcIl0gPSBcInNoZWxmRHJvcE1vZGVsXCI7XG4gICAgLy8gRFBJX1NoZWxmRHJvcE1vZGVscywgaGF2aW5nIHR5cGUgU2hlbGZEcm9wUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlNoZWxmRHJvcE1vZGVsc1wiXSA9IFwic2hlbGZEcm9wTW9kZWxzXCI7XG4gICAgLy8gRFBJX0RyYWcsIGhhdmluZyB0eXBlIERyYWdQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRyYWdcIl0gPSBcImRyYWdcIjtcbiAgICAvLyBEUElfU2NlbmVFbGVtZW50LCBoYXZpbmcgdHlwZSBTY2VuZUVsZW1lbnRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlNjZW5lRWxlbWVudFwiXSA9IFwic2NlbmVFbGVtZW50XCI7XG4gICAgLy8gRFBJX1NjZW5lRWxlbWVudHMsIGhhdmluZyB0eXBlIFNjZW5lRWxlbWVudFByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJTY2VuZUVsZW1lbnRzXCJdID0gXCJzY2VuZUVsZW1lbnRzXCI7XG4gICAgLy8gRFBJX1F1aWNrRmlsdGVyVHlwZSwgaGF2aW5nIHR5cGUgUXVpY2tGaWx0ZXJUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJRdWlja0ZpbHRlclR5cGVcIl0gPSBcInF1aWNrRmlsdGVyVHlwZVwiO1xuICAgIC8vIERQSV9DYXRNb2RlLCBoYXZpbmcgdHlwZSBRdWlja0ZpbHRlckNhdGVnb3JpY2FsTW9kZVxuICAgIFBhcmFtZXRlcklkW1wiQ2F0TW9kZVwiXSA9IFwiY2F0ZWdvcmljYWxNb2RlXCI7XG4gICAgLy8gRFBJX0NhdEN0cmwsIGhhdmluZyB0eXBlIFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxDdHJsXG4gICAgUGFyYW1ldGVySWRbXCJDYXRDdHJsXCJdID0gXCJjYXRlZ29yaWNhbENvbnRyb2xcIjtcbiAgICAvLyBEUElfUXVhbnRNb2RlLCBoYXZpbmcgdHlwZSBRdWlja0ZpbHRlclF1YW50aXRhdGl2ZU1vZGVcbiAgICBQYXJhbWV0ZXJJZFtcIlF1YW50TW9kZVwiXSA9IFwicXVhbnRpdGF0aXZlTW9kZVwiO1xuICAgIC8vIERQSV9RdWFudEN0cmwsIGhhdmluZyB0eXBlIFF1aWNrRmlsdGVyUXVhbnRpdGF0aXZlQ3RybFxuICAgIFBhcmFtZXRlcklkW1wiUXVhbnRDdHJsXCJdID0gXCJxdWFudGl0YXRpdmVDb250cm9sXCI7XG4gICAgLy8gRFBJX1pvbmVDb21tb24sIGhhdmluZyB0eXBlIFpvbmVDb21tb25QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlpvbmVDb21tb25cIl0gPSBcInpvbmVDb21tb25cIjtcbiAgICAvLyBEUElfWm9uZUNvbW1vbkxpc3RJdGVtcywgaGF2aW5nIHR5cGUgWm9uZUNvbW1vblByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJab25lQ29tbW9uTGlzdEl0ZW1zXCJdID0gXCJ6b25lQ29tbW9uTGlzdEl0ZW1zXCI7XG4gICAgLy8gRFBJX1pvbmUsIGhhdmluZyB0eXBlIFpvbmVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlpvbmVcIl0gPSBcInpvbmVcIjtcbiAgICAvLyBEUElfWm9uZXMsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2YgWm9uZVByZXNNb2RlbClcbiAgICBQYXJhbWV0ZXJJZFtcIlpvbmVzXCJdID0gXCJ6b25lc1wiO1xuICAgIC8vIERQSV9JbWFnZVpvbmUsIGhhdmluZyB0eXBlIEltYWdlWm9uZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiSW1hZ2Vab25lXCJdID0gXCJpbWFnZVpvbmVcIjtcbiAgICAvLyBEUElfV2ViWm9uZSwgaGF2aW5nIHR5cGUgV2ViWm9uZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiV2ViWm9uZVwiXSA9IFwid2ViWm9uZVwiO1xuICAgIC8vIERQSV9CdXR0b25ab25lUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBCdXR0b25ab25lUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJCdXR0b25ab25lUHJlc01vZGVsXCJdID0gXCJidXR0b25ab25lXCI7XG4gICAgLy8gRFBJX1pvbmVFZGdlTW92ZVR5cGUsIGhhdmluZyB0eXBlIFpvbmVFZGdlTW92ZVxuICAgIFBhcmFtZXRlcklkW1wiWm9uZUVkZ2VNb3ZlVHlwZVwiXSA9IFwiem9uZUVkZ2VNb3ZlVHlwZVwiO1xuICAgIC8vIERQSV9ab25lU2lkZSwgaGF2aW5nIHR5cGUgU2lkZVR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIlpvbmVTaWRlXCJdID0gXCJ6b25lU2lkZVwiO1xuICAgIC8vIERQSV9TbmFwUG9pbnQsIGhhdmluZyB0eXBlIFNuYXBQb2ludFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU25hcFBvaW50XCJdID0gXCJzbmFwUG9pbnRcIjtcbiAgICAvLyBEUElfU25hcFBvaW50cywgaGF2aW5nIHR5cGUgU25hcFBvaW50UHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlNuYXBQb2ludHNcIl0gPSBcInNuYXBQb2ludHNcIjtcbiAgICAvLyBEUElfVGFyZ2V0UHJldmlld1BhaXIsIGhhdmluZyB0eXBlIERyYWdEcm9wVGFyZ2V0UHJldmlld1BhaXJQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlRhcmdldFByZXZpZXdQYWlyXCJdID0gXCJ0YXJnZXRQcmV2aWV3UGFpclwiO1xuICAgIC8vIERQSV9UYXJnZXRQcmV2aWV3UGFpcnMsIGhhdmluZyB0eXBlIERyYWdEcm9wVGFyZ2V0UHJldmlld1BhaXJQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiVGFyZ2V0UHJldmlld1BhaXJzXCJdID0gXCJ0YXJnZXRQcmV2aWV3UGFpcnNcIjtcbiAgICAvLyBEUElfQ29udGFpbmVyR3VpZGUsIGhhdmluZyB0eXBlIERyYWdEcm9wQ29udGFpbmVyR3VpZGVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbnRhaW5lckd1aWRlXCJdID0gXCJjb250YWluZXJHdWlkZVwiO1xuICAgIC8vIERQSV9Db250YWluZXJHdWlkZXMsIGhhdmluZyB0eXBlIERyYWdEcm9wQ29udGFpbmVyR3VpZGVQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiQ29udGFpbmVyR3VpZGVzXCJdID0gXCJjb250YWluZXJHdWlkZXNcIjtcbiAgICAvLyBEUElfWm9uZUJvcmRlciwgaGF2aW5nIHR5cGUgRHJhZ0Ryb3Bab25lQm9yZGVyUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJab25lQm9yZGVyXCJdID0gXCJ6b25lQm9yZGVyXCI7XG4gICAgLy8gRFBJX1pvbmVCb3JkZXJzLCBoYXZpbmcgdHlwZSBEcmFnRHJvcFpvbmVCb3JkZXJQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiWm9uZUJvcmRlcnNcIl0gPSBcInpvbmVCb3JkZXJzXCI7XG4gICAgLy8gRFBJX0Rhc2hib2FyZERyYWdEcm9wLCBoYXZpbmcgdHlwZSBEYXNoYm9hcmREcmFnRHJvcFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRGFzaGJvYXJkRHJhZ0Ryb3BcIl0gPSBcInpvbmVEcmFnRHJvcFwiO1xuICAgIC8vIERQSV9EcmFnWm9uZVJlc2l6ZSwgaGF2aW5nIHR5cGUgRHJhZ1pvbmVSZXNpemVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRyYWdab25lUmVzaXplXCJdID0gXCJ6b25lUmVzaXplXCI7XG4gICAgLy8gRFBJX0Rhc2hib2FyZFRleHQsIGhhdmluZyB0eXBlIFRleHRSZWdpb25QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRhc2hib2FyZFRleHRcIl0gPSBcImRhc2hib2FyZFRleHRcIjtcbiAgICAvLyBEUElfRGFzaGJvYXJkVGl0bGUsIGhhdmluZyB0eXBlIFRleHRSZWdpb25QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRhc2hib2FyZFRpdGxlXCJdID0gXCJkYXNoYm9hcmRUaXRsZVwiO1xuICAgIC8vIERQSV9RdWlja0ZpbHRlclRpdGxlLCBoYXZpbmcgdHlwZSBUZXh0UmVnaW9uUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJRdWlja0ZpbHRlclRpdGxlXCJdID0gXCJxdWlja0ZpbHRlclRpdGxlXCI7XG4gICAgLy8gRFBJX1Zpc3VhbENhcHRpb24sIGhhdmluZyB0eXBlIFRleHRSZWdpb25QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlZpc3VhbENhcHRpb25cIl0gPSBcInZpc3VhbENhcHRpb25cIjtcbiAgICAvLyBEUElfVmlzdWFsVGl0bGUsIGhhdmluZyB0eXBlIFRleHRSZWdpb25QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlZpc3VhbFRpdGxlXCJdID0gXCJ2aXN1YWxUaXRsZVwiO1xuICAgIC8vIERQSV9ab25lVGl0bGVSZWdpb24sIGhhdmluZyB0eXBlIFRleHRSZWdpb25QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlpvbmVUaXRsZVJlZ2lvblwiXSA9IFwiem9uZVRpdGxlXCI7XG4gICAgLy8gRFBJX0ZvcmVjYXN0T3B0aW9ucywgaGF2aW5nIHR5cGUgRm9yZWNhc3RQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkZvcmVjYXN0T3B0aW9uc1wiXSA9IFwiZm9yZWNhc3RPcHRpb25zXCI7XG4gICAgLy8gRFBJX0ZvcmVjYXN0RGVzY3JpcHRpb24sIGhhdmluZyB0eXBlIEZvcmVjYXN0RGVzY3JpYmVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkZvcmVjYXN0RGVzY3JpcHRpb25cIl0gPSBcImZvcmVjYXN0RGVzY3JpcHRpb25cIjtcbiAgICAvLyBEUElfV29ya2dyb3VwUHVibGlzaE9iamVjdCwgaGF2aW5nIHR5cGUgV29ya2dyb3VwUHVibGlzaE9iamVjdFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiV29ya2dyb3VwUHVibGlzaE9iamVjdFwiXSA9IFwicHVibGlzaERhdGFTb3VyY2VcIjtcbiAgICAvLyBEUElfUHVibGlzaFBlcm1pc3Npb25zU3VtbWFyeSwgaGF2aW5nIHR5cGUgUHVibGlzaFBlcm1pc3Npb25zU3VtbWFyeVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUHVibGlzaFBlcm1pc3Npb25zU3VtbWFyeVwiXSA9IFwicHVibGlzaFBlcm1pc3Npb25zU3VtbWFyeVwiO1xuICAgIC8vIERQSV9DaGVja05hbWVSZXN1bHRzLCBoYXZpbmcgdHlwZSBDaGVja05hbWVSZXN1bHRzUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDaGVja05hbWVSZXN1bHRzXCJdID0gXCJjaGVja05hbWVSZXN1bHRzXCI7XG4gICAgLy8gRFBJX1ZhbGlkYXRlUHVibGlzaFZpZXdzUmVzdWx0LCBoYXZpbmcgdHlwZSBWYWxpZGF0ZVB1Ymxpc2hWaWV3c1Jlc3VsdFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVmFsaWRhdGVQdWJsaXNoVmlld3NSZXN1bHRcIl0gPSBcInZhbGlkYXRlUHVibGlzaFZpZXdzUmVzdWx0XCI7XG4gICAgLy8gRFBJX1B1Ymxpc2hBdXRoZW50aWNhdGlvblNldHRpbmdzLCBoYXZpbmcgdHlwZSBQdWJsaXNoQXV0aGVudGljYXRpb25TZXR0aW5nc1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUHVibGlzaEF1dGhlbnRpY2F0aW9uU2V0dGluZ3NcIl0gPSBcInB1Ymxpc2hBdXRoZW50aWNhdGlvblNldHRpbmdzXCI7XG4gICAgLy8gRFBJX01hbmFnZURhdGFzb3VyY2VzLCBoYXZpbmcgdHlwZSBNYW5hZ2VEYXRhc291cmNlc1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiTWFuYWdlRGF0YXNvdXJjZXNcIl0gPSBcIm1hbmFnZURhdGFzb3VyY2VzXCI7XG4gICAgLy8gRFBJX0NyZWRlbnRpYWxzQXV0aFNldHRpbmdzLCBoYXZpbmcgdHlwZSBDcmVkZW50aWFsc0F1dGhTZXR0aW5nc1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ3JlZGVudGlhbHNBdXRoU2V0dGluZ3NcIl0gPSBcImNyZWRlbnRpYWxzQXV0aFNldHRpbmdzXCI7XG4gICAgLy8gRFBJX0Nvbm5lY3Rpb25DcmVkZW50aWFsc0F1dGhTZXR0aW5ncywgaGF2aW5nIHR5cGUgQ29ubmVjdGlvbkNyZWRlbnRpYWxzQXV0aFNldHRpbmdzUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDb25uZWN0aW9uQ3JlZGVudGlhbHNBdXRoU2V0dGluZ3NcIl0gPSBcImNvbm5lY3Rpb25DcmVkZW50aWFsc0F1dGhTZXR0aW5nc1wiO1xuICAgIC8vIERQSV9Db25uZWN0aW9uQ3JlZGVudGlhbHNBdXRoU2V0dGluZ3NMaXN0LCBoYXZpbmcgdHlwZSBDb25uZWN0aW9uQ3JlZGVudGlhbHNBdXRoU2V0dGluZ3NQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiQ29ubmVjdGlvbkNyZWRlbnRpYWxzQXV0aFNldHRpbmdzTGlzdFwiXSA9IFwiY29ubmVjdGlvbkNyZWRlbnRpYWxzQXV0aFNldHRpbmdzTGlzdFwiO1xuICAgIC8vIERQSV9QdWJsaXNoRGF0YXNvdXJjZUZyb21Xb3JrYm9va0luZm8sIGhhdmluZyB0eXBlIFB1Ymxpc2hEYXRhc291cmNlRnJvbVdvcmtib29rSW5mb1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUHVibGlzaERhdGFzb3VyY2VGcm9tV29ya2Jvb2tJbmZvXCJdID0gXCJwdWJsaXNoRGF0YXNvdXJjZUZyb21Xb3JrYm9va0luZm9cIjtcbiAgICAvLyBEUElfUHVibGlzaERhdGFzb3VyY2VzRnJvbVdvcmtib29rSW5mbywgaGF2aW5nIHR5cGUgUHVibGlzaERhdGFzb3VyY2VGcm9tV29ya2Jvb2tJbmZvUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlB1Ymxpc2hEYXRhc291cmNlc0Zyb21Xb3JrYm9va0luZm9cIl0gPSBcInB1Ymxpc2hEYXRhc291cmNlc0Zyb21Xb3JrYm9va0luZm9cIjtcbiAgICAvLyBEUElfUHVibGlzaFNoZWV0LCBoYXZpbmcgdHlwZSBQdWJsaXNoU2hlZXRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlB1Ymxpc2hTaGVldFwiXSA9IFwicHVibGlzaFNoZWV0XCI7XG4gICAgLy8gRFBJX1B1Ymxpc2hTaGVldHMsIGhhdmluZyB0eXBlIFB1Ymxpc2hTaGVldFByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJQdWJsaXNoU2hlZXRzXCJdID0gXCJwdWJsaXNoU2hlZXRzXCI7XG4gICAgLy8gRFBJX1B1Ymxpc2hPYmplY3RWaWV3cywgaGF2aW5nIHR5cGUgUHVibGlzaE9iamVjdFZpZXdzUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJQdWJsaXNoT2JqZWN0Vmlld3NcIl0gPSBcInB1Ymxpc2hPYmplY3RWaWV3c1wiO1xuICAgIC8vIERQSV9QdWJsaXNoT2JqZWN0UHVibGlzaFNoZWV0UmVzdWx0cywgaGF2aW5nIHR5cGUgUHVibGlzaE9iamVjdFB1Ymxpc2hTaGVldFJlc3VsdHNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlB1Ymxpc2hPYmplY3RQdWJsaXNoU2hlZXRSZXN1bHRzXCJdID0gXCJwdWJsaXNoT2JqZWN0UHVibGlzaFNoZWV0UmVzdWx0c1wiO1xuICAgIC8vIERQSV9SZWZyZXNoRXh0cmFjdFNjaGVkdWxpbmdTZXR0aW5ncywgaGF2aW5nIHR5cGUgUmVmcmVzaEV4dHJhY3RTY2hlZHVsaW5nU2V0dGluZ3NQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlJlZnJlc2hFeHRyYWN0U2NoZWR1bGluZ1NldHRpbmdzXCJdID0gXCJyZWZyZXNoRXh0cmFjdFNjaGVkdWxpbmdTZXR0aW5nc1wiO1xuICAgIC8vIERQSV9TZXRSZWZyZXNoRXh0cmFjdFNjaGVkdWxlUmVzdWx0LCBoYXZpbmcgdHlwZSBTZXRSZWZyZXNoRXh0cmFjdFNjaGVkdWxlUmVzdWx0UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTZXRSZWZyZXNoRXh0cmFjdFNjaGVkdWxlUmVzdWx0XCJdID0gXCJzZXRSZWZyZXNoRXh0cmFjdFNjaGVkdWxlUmVzdWx0XCI7XG4gICAgLy8gRFBJX0NoZWNrUHVibGlzaE9iamVjdE5hbWVXYXJuaW5nc1Jlc3VsdHMsIGhhdmluZyB0eXBlIENoZWNrUHVibGlzaE9iamVjdE5hbWVXYXJuaW5nc1Jlc3VsdHNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNoZWNrUHVibGlzaE9iamVjdE5hbWVXYXJuaW5nc1Jlc3VsdHNcIl0gPSBcImNoZWNrUHVibGlzaE9iamVjdE5hbWVXYXJuaW5nc1Jlc3VsdHNcIjtcbiAgICAvLyBEUElfUHVibGlzaERhdGFzb3VyY2VPbldvcmtib29rUHVibGlzaFJlc3VsdHMsIGhhdmluZyB0eXBlIFB1Ymxpc2hEYXRhc291cmNlT25Xb3JrYm9va1B1Ymxpc2hSZXN1bHRzUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJQdWJsaXNoRGF0YXNvdXJjZU9uV29ya2Jvb2tQdWJsaXNoUmVzdWx0c1wiXSA9IFwicHVibGlzaERhdGFzb3VyY2VPbldvcmtib29rUHVibGlzaFJlc3VsdFwiO1xuICAgIC8vIERQSV9QdWJsaXNoRGF0YVNvdXJjZVJlc3VsdCwgaGF2aW5nIHR5cGUgUHVibGlzaERhdGFTb3VyY2VSZXN1bHRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlB1Ymxpc2hEYXRhU291cmNlUmVzdWx0XCJdID0gXCJwdWJsaXNoRGF0YVNvdXJjZVJlc3VsdFwiO1xuICAgIC8vIERQSV9QdWJsaXNoV2FybmluZ01lc3NhZ2UsIGhhdmluZyB0eXBlIFB1Ymxpc2hXYXJuaW5nTWVzc2FnZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUHVibGlzaFdhcm5pbmdNZXNzYWdlXCJdID0gXCJwdWJsaXNoV2FybmluZ01lc3NhZ2VcIjtcbiAgICAvLyBEUElfTXVzdERvd25ncmFkZVRvUHVibGlzaFdhcm5pbmdNZXNzYWdlUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBQdWJsaXNoV2FybmluZ01lc3NhZ2VQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIk11c3REb3duZ3JhZGVUb1B1Ymxpc2hXYXJuaW5nTWVzc2FnZVByZXNNb2RlbFwiXSA9IFwibXVzdERvd25ncmFkZVRvUHVibGlzaFdhcm5pbmdNZXNzYWdlUHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX1B1Ymxpc2hTZWxlY3RlZEF0dHJpYnV0ZXMsIGhhdmluZyB0eXBlIFB1Ymxpc2hTZWxlY3RlZEF0dHJpYnV0ZXNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlB1Ymxpc2hTZWxlY3RlZEF0dHJpYnV0ZXNcIl0gPSBcInB1Ymxpc2hTZWxlY3RlZEF0dHJpYnV0ZXNcIjtcbiAgICAvLyBEUElfQXV0b3NhdmVGaWxlLCBoYXZpbmcgdHlwZSBBdXRvc2F2ZUZpbGVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkF1dG9zYXZlRmlsZVwiXSA9IFwiYXV0b3NhdmVGaWxlXCI7XG4gICAgLy8gRFBJX0F1dG9zYXZlRmlsZXMsIGhhdmluZyB0eXBlIEF1dG9zYXZlRmlsZVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJBdXRvc2F2ZUZpbGVzXCJdID0gXCJhdXRvc2F2ZUZpbGVzXCI7XG4gICAgLy8gRFBJX0Z1bmN0aW9uR3JvdXAsIGhhdmluZyB0eXBlIEZ1bmN0aW9uR3JvdXBcbiAgICBQYXJhbWV0ZXJJZFtcIkZ1bmN0aW9uR3JvdXBcIl0gPSBcImZ1bmNHcnBcIjtcbiAgICAvLyBEUElfRnVuY3Rpb25Hcm91cHMsIGhhdmluZyB0eXBlIEZ1bmN0aW9uR3JvdXBbXVxuICAgIFBhcmFtZXRlcklkW1wiRnVuY3Rpb25Hcm91cHNcIl0gPSBcImZ1bmNHcnBzXCI7XG4gICAgLy8gRFBJX0Z1bmN0aW9uQXJnVHlwZSwgaGF2aW5nIHR5cGUgRnVuY3Rpb25BcmdUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJGdW5jdGlvbkFyZ1R5cGVcIl0gPSBcImZ1bmNBcmdUeXBlXCI7XG4gICAgLy8gRFBJX0Z1bmN0aW9uQXJnVHlwZXMsIGhhdmluZyB0eXBlIEZ1bmN0aW9uQXJnVHlwZVtdXG4gICAgUGFyYW1ldGVySWRbXCJGdW5jdGlvbkFyZ1R5cGVzXCJdID0gXCJmdW5jQXJnVHlwZXNcIjtcbiAgICAvLyBEUElfQ2FsY3VsYXRpb25TdHlsZSwgaGF2aW5nIHR5cGUgQ2FsY1N0eWxlXG4gICAgUGFyYW1ldGVySWRbXCJDYWxjdWxhdGlvblN0eWxlXCJdID0gXCJjYWxjdWxhdGlvblN0eWxlXCI7XG4gICAgLy8gRFBJX0NhbGN1bGF0aW9uLCBoYXZpbmcgdHlwZSBDYWxjdWxhdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ2FsY3VsYXRpb25cIl0gPSBcImNhbGN1bGF0aW9uXCI7XG4gICAgLy8gRFBJX1R5cGVJblBpbGwsIGhhdmluZyB0eXBlIENhbGN1bGF0aW9uUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJUeXBlSW5QaWxsXCJdID0gXCJ0eXBlSW5QaWxsXCI7XG4gICAgLy8gRFBJX0NhbGNFcnJvckluZm8sIGhhdmluZyB0eXBlIENhbGNFcnJvckluZm9QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNhbGNFcnJvckluZm9cIl0gPSBcImVycm9ySW5mb1wiO1xuICAgIC8vIERQSV9DYWxjRXJyb3JJbmZvcywgaGF2aW5nIHR5cGUgQ2FsY0Vycm9ySW5mb1ByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJDYWxjRXJyb3JJbmZvc1wiXSA9IFwiZXJyb3JJbmZvTGlzdFwiO1xuICAgIC8vIERQSV9DYWxjdWFsdGlvblZhbGlkYXRpb24sIGhhdmluZyB0eXBlIENhbGN1bGF0aW9uVmFsaWRhdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ2FsY3VhbHRpb25WYWxpZGF0aW9uXCJdID0gXCJjYWxjdWxhdGlvblZhbGlkYXRpb25cIjtcbiAgICAvLyBEUElfRXhwcmVzc2lvbkZ1bmN0aW9uLCBoYXZpbmcgdHlwZSBFeHByZXNzaW9uRnVuY3Rpb25QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkV4cHJlc3Npb25GdW5jdGlvblwiXSA9IFwiZXhwcmVzc2lvbkZ1bmNcIjtcbiAgICAvLyBEUElfRXhwcmVzc2lvbkZ1bmN0aW9ucywgaGF2aW5nIHR5cGUgRXhwcmVzc2lvbkZ1bmN0aW9uUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkV4cHJlc3Npb25GdW5jdGlvbnNcIl0gPSBcImV4cHJlc3Npb25GdW5jTGlzdFwiO1xuICAgIC8vIERQSV9FeHByZXNzaW9uRnVuY3Rpb25zUE0sIGhhdmluZyB0eXBlIEV4cHJlc3Npb25GdW5jdGlvbnNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkV4cHJlc3Npb25GdW5jdGlvbnNQTVwiXSA9IFwiZXhwcmVzc2lvbkZ1bmNQbVwiO1xuICAgIC8vIERQSV9TdHlsZVRva2VuLCBoYXZpbmcgdHlwZSBTdHlsZVRva2VuUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTdHlsZVRva2VuXCJdID0gXCJzdHlsZVRva2VuXCI7XG4gICAgLy8gRFBJX1N0eWxlVG9rZW5zLCBoYXZpbmcgdHlwZSBTdHlsZVRva2VuUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlN0eWxlVG9rZW5zXCJdID0gXCJzdHlsZVRva2VuTGlzdFwiO1xuICAgIC8vIERQSV9DYWxjRWRpdG9yVGV4dFNlbGVjdGlvbiwgaGF2aW5nIHR5cGUgQ2FsY0VkaXRvclRleHRTZWxlY3Rpb25QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNhbGNFZGl0b3JUZXh0U2VsZWN0aW9uXCJdID0gXCJjYWxjRWRpdG9yVGV4dFNlbGVjdGlvblwiO1xuICAgIC8vIERQSV9BdXRvQ29tcGxldGVJdGVtVHlwZSwgaGF2aW5nIHR5cGUgQXV0b0NvbXBsZXRlSXRlbVR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIkF1dG9Db21wbGV0ZUl0ZW1UeXBlXCJdID0gXCJhdXRvY29tcGxldGVUeXBlXCI7XG4gICAgLy8gRFBJX0F1dG9Db21wbGV0ZUl0ZW0sIGhhdmluZyB0eXBlIEF1dG9Db21wbGV0ZUl0ZW1QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkF1dG9Db21wbGV0ZUl0ZW1cIl0gPSBcImF1dG9jb21wbGV0ZUl0ZW1cIjtcbiAgICAvLyBEUElfQXV0b0NvbXBsZXRlSXRlbXMsIGhhdmluZyB0eXBlIEF1dG9Db21wbGV0ZUl0ZW1QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiQXV0b0NvbXBsZXRlSXRlbXNcIl0gPSBcImF1dG9jb21wbGV0ZUl0ZW1MaXN0XCI7XG4gICAgLy8gRFBJX0NhbGN1bGF0aW9uQXV0b0NvbXBsZXRlQ29udGV4dE1lbnUsIGhhdmluZyB0eXBlIENhbGN1bGF0aW9uQXV0b0NvbXBsZXRlQ29udGV4dE1lbnVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNhbGN1bGF0aW9uQXV0b0NvbXBsZXRlQ29udGV4dE1lbnVcIl0gPSBcImNhbGN1bGF0aW9uQXV0b2NvbXBsZXRlQ29udGV4dE1lbnVcIjtcbiAgICAvLyBEUElfQ2FsY0FwcGx5UmVzdWx0LCBoYXZpbmcgdHlwZSBDYWxjQXBwbHlSZXN1bHRcbiAgICBQYXJhbWV0ZXJJZFtcIkNhbGNBcHBseVJlc3VsdFwiXSA9IFwiY2FsY3VsYXRpb25BcHBseVJlc3VsdFwiO1xuICAgIC8vIERQSV9SYW1wQm9yZGVyU3R5bGVkQm94LCBoYXZpbmcgdHlwZSBTdHlsZWRCb3hQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlJhbXBCb3JkZXJTdHlsZWRCb3hcIl0gPSBcInJhbXBCb3JkZXJTdHlsZWRCb3hcIjtcbiAgICAvLyBEUElfU3R5bGVkQm94LCBoYXZpbmcgdHlwZSBTdHlsZWRCb3hQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlN0eWxlZEJveFwiXSA9IFwic3R5bGVkQm94XCI7XG4gICAgLy8gRFBJX0dsb2JhbFN0eWxlZEJveCwgaGF2aW5nIHR5cGUgU3R5bGVkQm94UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJHbG9iYWxTdHlsZWRCb3hcIl0gPSBcImdsb2JhbFN0eWxlZEJveFwiO1xuICAgIC8vIERQSV9TdHlsZUNvbnRleHQsIGhhdmluZyB0eXBlIFN0eWxlQ29udGV4dFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU3R5bGVDb250ZXh0XCJdID0gXCJzdHlsZUNvbnRleHRcIjtcbiAgICAvLyBEUElfQ3VycmVudFRleHRTdHlsZSwgaGF2aW5nIHR5cGUgVGV4dFN0eWxlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDdXJyZW50VGV4dFN0eWxlXCJdID0gXCJjdXJyZW50VGV4dFN0eWxlXCI7XG4gICAgLy8gRFBJX0xhYmVsVGV4dFN0eWxlLCBoYXZpbmcgdHlwZSBUZXh0U3R5bGVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkxhYmVsVGV4dFN0eWxlXCJdID0gXCJsYWJlbFRleHRTdHlsZVwiO1xuICAgIC8vIERQSV9PcmlnaW5hbFRleHRTdHlsZSwgaGF2aW5nIHR5cGUgVGV4dFN0eWxlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJPcmlnaW5hbFRleHRTdHlsZVwiXSA9IFwib3JpZ2luYWxUZXh0U3R5bGVcIjtcbiAgICAvLyBEUElfU2VsZWN0ZWRUZXh0U3R5bGVNb2RlbCwgaGF2aW5nIHR5cGUgVGV4dFN0eWxlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTZWxlY3RlZFRleHRTdHlsZU1vZGVsXCJdID0gXCJzZWxlY3RlZFRleHRTdHlsZU1vZGVsXCI7XG4gICAgLy8gRFBJX1N3YXRjaFRleHRTdHlsZU1vZGVsLCBoYXZpbmcgdHlwZSBUZXh0U3R5bGVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlN3YXRjaFRleHRTdHlsZU1vZGVsXCJdID0gXCJzd2F0Y2hUZXh0U3R5bGVcIjtcbiAgICAvLyBEUElfVGV4dFN0eWxlTW9kZWwsIGhhdmluZyB0eXBlIFRleHRTdHlsZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVGV4dFN0eWxlTW9kZWxcIl0gPSBcInRleHRTdHlsZVwiO1xuICAgIC8vIERQSV9UaXRsZVN0eWxlTW9kZWwsIGhhdmluZyB0eXBlIFRleHRTdHlsZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVGl0bGVTdHlsZU1vZGVsXCJdID0gXCJ0aXRsZVN0eWxlTW9kZWxcIjtcbiAgICAvLyBEUElfUHJvcGVydHlCYWcsIGhhdmluZyB0eXBlIFByb3BlcnR5QmFnUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJQcm9wZXJ0eUJhZ1wiXSA9IFwicHJvcEJhZ1dyYXBwZXJcIjtcbiAgICAvLyBEUElfUHJlc01vZGVsTWFwLCBoYXZpbmcgdHlwZSBEaWN0aW9uYXJ5KG9mIFByb3BlcnR5QmFnUHJlc01vZGVsKVxuICAgIFBhcmFtZXRlcklkW1wiUHJlc01vZGVsTWFwXCJdID0gXCJwcmVzTW9kZWxNYXBcIjtcbiAgICAvLyBEUElfUHJlc2VudGF0aW9uTGF5ZXJOb3RpZmljYXRpb25zLCBoYXZpbmcgdHlwZSBQcmVzTW9kZWxNYXBQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlByZXNlbnRhdGlvbkxheWVyTm90aWZpY2F0aW9uc1wiXSA9IFwicHJlc2VudGF0aW9uTGF5ZXJOb3RpZmljYXRpb25zXCI7XG4gICAgLy8gRFBJX1NlY29uZGFyeUluZm8sIGhhdmluZyB0eXBlIFByZXNNb2RlbE1hcFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU2Vjb25kYXJ5SW5mb1wiXSA9IFwic2Vjb25kYXJ5SW5mb1wiO1xuICAgIC8vIERQSV9DbGllbnREYXNoYm9hcmRVSU1ldHJpYywgaGF2aW5nIHR5cGUgQ2xpZW50RGFzaGJvYXJkVUlNZXRyaWNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNsaWVudERhc2hib2FyZFVJTWV0cmljXCJdID0gXCJjbGllbnREYXNoYm9hcmRVaU1ldHJpY1wiO1xuICAgIC8vIERQSV9DbGllbnREYXNoYm9hcmRVSU1ldHJpY3MsIGhhdmluZyB0eXBlIENsaWVudERhc2hib2FyZFVJTWV0cmljUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkNsaWVudERhc2hib2FyZFVJTWV0cmljc1wiXSA9IFwiY2xpZW50RGFzaGJvYXJkVWlNZXRyaWNzXCI7XG4gICAgLy8gRFBJX0NsaWVudERhc2hib2FyZFVJTWV0cmljQ29udGFpbmVyLCBoYXZpbmcgdHlwZSBDbGllbnREYXNoYm9hcmRVSU1ldHJpY0NvbnRhaW5lclByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ2xpZW50RGFzaGJvYXJkVUlNZXRyaWNDb250YWluZXJcIl0gPSBcImNsaWVudERhc2hib2FyZFVpTWV0cmljQ29udGFpbmVyXCI7XG4gICAgLy8gRFBJX0V4dFN2Y0NvbmZpZywgaGF2aW5nIHR5cGUgRXh0U3ZjQ29uZmlnUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJFeHRTdmNDb25maWdcIl0gPSBcImV4dFN2Y0NvbmZpZ1wiO1xuICAgIC8vIERQSV9TdG9yeWJvYXJkU2hlZXRJdGVtLCBoYXZpbmcgdHlwZSBTdG9yeWJvYXJkU2hlZXRJdGVtUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTdG9yeWJvYXJkU2hlZXRJdGVtXCJdID0gXCJzdG9yeWJvYXJkU2hlZXRJdGVtXCI7XG4gICAgLy8gRFBJX1N0b3J5Ym9hcmRTaGVldEl0ZW1zLCBoYXZpbmcgdHlwZSBTdG9yeWJvYXJkU2hlZXRJdGVtUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlN0b3J5Ym9hcmRTaGVldEl0ZW1zXCJdID0gXCJzdG9yeWJvYXJkU2hlZXRJdGVtc1wiO1xuICAgIC8vIERQSV9TdG9yeWJvYXJkU2hlZXRMaXN0LCBoYXZpbmcgdHlwZSBTdG9yeWJvYXJkU2hlZXRMaXN0UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTdG9yeWJvYXJkU2hlZXRMaXN0XCJdID0gXCJzdG9yeWJvYXJkU2hlZXRMaXN0XCI7XG4gICAgLy8gRFBJX0ZpdFRvU3RvcnlCb2FyZE9wdGlvbkl0ZW0sIGhhdmluZyB0eXBlIEZpdFRvU3RvcnlCb2FyZE9wdGlvbkl0ZW1QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkZpdFRvU3RvcnlCb2FyZE9wdGlvbkl0ZW1cIl0gPSBcImZpdFRvU3Rvcnlib2FyZE9wdGlvbkl0ZW1cIjtcbiAgICAvLyBEUElfRml0VG9TdG9yeUJvYXJkT3B0aW9uSXRlbXMsIGhhdmluZyB0eXBlIEZpdFRvU3RvcnlCb2FyZE9wdGlvbkl0ZW1QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiRml0VG9TdG9yeUJvYXJkT3B0aW9uSXRlbXNcIl0gPSBcImZpdFRvU3Rvcnlib2FyZE9wdGlvbkl0ZW1zXCI7XG4gICAgLy8gRFBJX0ZpdFRvU3RvcnlCb2FyZE9wdGlvbkxpc3QsIGhhdmluZyB0eXBlIEZpdFRvU3RvcnlCb2FyZE9wdGlvbkxpc3RQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkZpdFRvU3RvcnlCb2FyZE9wdGlvbkxpc3RcIl0gPSBcImZpdFRvU3Rvcnlib2FyZE9wdGlvbkxpc3RcIjtcbiAgICAvLyBEUElfU3RvcnlQb2ludE5hdkl0ZW0sIGhhdmluZyB0eXBlIFN0b3J5UG9pbnROYXZJdGVtUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTdG9yeVBvaW50TmF2SXRlbVwiXSA9IFwic3Rvcnlwb2ludE5hdkl0ZW1cIjtcbiAgICAvLyBEUElfU3RvcnlQb2ludE5hdkl0ZW1zLCBoYXZpbmcgdHlwZSBTdG9yeVBvaW50TmF2SXRlbVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJTdG9yeVBvaW50TmF2SXRlbXNcIl0gPSBcInN0b3J5cG9pbnROYXZJdGVtc1wiO1xuICAgIC8vIERQSV9GbGlwYm9hcmROYXYsIGhhdmluZyB0eXBlIEZsaXBib2FyZE5hdlByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRmxpcGJvYXJkTmF2XCJdID0gXCJmbGlwYm9hcmROYXZcIjtcbiAgICAvLyBEUElfU2Nyb2xsQmFyU3R5bGUsIGhhdmluZyB0eXBlIFNjcm9sbEJhclN0eWxlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTY3JvbGxCYXJTdHlsZVwiXSA9IFwic2Nyb2xsQmFyU3R5bGVcIjtcbiAgICAvLyBEUElfRGFzaGJvYXJkWm9uZUxheW91dFBhbmUsIGhhdmluZyB0eXBlIERhc2hib2FyZFpvbmVMYXlvdXRQYW5lUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEYXNoYm9hcmRab25lTGF5b3V0UGFuZVwiXSA9IFwiZGFzaGJvYXJkWm9uZUxheW91dFBhbmVcIjtcbiAgICAvLyBEUElfU2VsZWN0ZWRTdG9yeVBvaW50U3R5bGUsIGhhdmluZyB0eXBlIFN0b3J5UG9pbnRDYXB0aW9uU3R5bGVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlNlbGVjdGVkU3RvcnlQb2ludFN0eWxlXCJdID0gXCJzZWxlY3RlZFN0b3J5UG9pbnRTdHlsZVwiO1xuICAgIC8vIERQSV9VbnNlbGVjdGVkU3RvcnlQb2ludFN0eWxlLCBoYXZpbmcgdHlwZSBTdG9yeVBvaW50Q2FwdGlvblN0eWxlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJVbnNlbGVjdGVkU3RvcnlQb2ludFN0eWxlXCJdID0gXCJ1bnNlbGVjdGVkU3RvcnlQb2ludFN0eWxlXCI7XG4gICAgLy8gRFBJX0ZsaXBib2FyZE5hdlN0eWxlLCBoYXZpbmcgdHlwZSBGbGlwYm9hcmROYXZTdHlsZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRmxpcGJvYXJkTmF2U3R5bGVcIl0gPSBcImZsaXBib2FyZE5hdlN0eWxlXCI7XG4gICAgLy8gRFBJX1N0b3J5UG9pbnQsIGhhdmluZyB0eXBlIFN0b3J5UG9pbnRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlN0b3J5UG9pbnRcIl0gPSBcInN0b3J5UG9pbnRcIjtcbiAgICAvLyBEUElfU3RvcnlQb2ludHMsIGhhdmluZyB0eXBlIERpY3Rpb25hcnkob2YgU3RvcnlQb2ludFByZXNNb2RlbClcbiAgICBQYXJhbWV0ZXJJZFtcIlN0b3J5UG9pbnRzXCJdID0gXCJzdG9yeVBvaW50c1wiO1xuICAgIC8vIERQSV9GbGlwYm9hcmQsIGhhdmluZyB0eXBlIEZsaXBib2FyZFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRmxpcGJvYXJkXCJdID0gXCJmbGlwYm9hcmRcIjtcbiAgICAvLyBEUElfU3RvcnlQYWlyLCBoYXZpbmcgdHlwZSBTdG9yeVBhaXJQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlN0b3J5UGFpclwiXSA9IFwic3RvcnlQYWlyXCI7XG4gICAgLy8gRFBJX1N0b3J5UGFpcnMsIGhhdmluZyB0eXBlIFN0b3J5UGFpclByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJTdG9yeVBhaXJzXCJdID0gXCJzdG9yeVBhaXJzXCI7XG4gICAgLy8gRFBJX1N0b3J5Ym9hcmRQTSwgaGF2aW5nIHR5cGUgU3Rvcnlib2FyZFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU3Rvcnlib2FyZFBNXCJdID0gXCJzdG9yeWJvYXJkUG1cIjtcbiAgICAvLyBEUElfSGlEcGlJY29uRGljdGlvbmFyeSwgaGF2aW5nIHR5cGUgSW1hZ2VDb2xsZWN0aW9uUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJIaURwaUljb25EaWN0aW9uYXJ5XCJdID0gXCJoaURwaUljb25EaWN0aW9uYXJ5XCI7XG4gICAgLy8gRFBJX0ljb25EaWN0aW9uYXJ5LCBoYXZpbmcgdHlwZSBJbWFnZUNvbGxlY3Rpb25QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkljb25EaWN0aW9uYXJ5XCJdID0gXCJpY29uRGljdGlvbmFyeVwiO1xuICAgIC8vIERQSV9JY29uUmVzb3VyY2VEaWN0aW9uYXJ5LCBoYXZpbmcgdHlwZSBJbWFnZVJlc291cmNlQ29sbGVjdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiSWNvblJlc291cmNlRGljdGlvbmFyeVwiXSA9IFwiaWNvblJlc0RpY3Rpb25hcnlcIjtcbiAgICAvLyBEUElfRGF0YVByZXZpZXdXaW5kb3dNZXNzYWdlLCBoYXZpbmcgdHlwZSBEYXRhUHJldmlld1dpbmRvd01lc3NhZ2VQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFQcmV2aWV3V2luZG93TWVzc2FnZVwiXSA9IFwiZGF0YVByZXZpZXdXaW5kb3dNZXNzYWdlXCI7XG4gICAgLy8gRFBJX0RhdGFTb3VyY2VEYXRhLCBoYXZpbmcgdHlwZSBEYXRhU291cmNlRGF0YVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRGF0YVNvdXJjZURhdGFcIl0gPSBcImRhdGFTcmNEYXRhXCI7XG4gICAgLy8gRFBJX0RhdGFTb3VyY2VTb3J0LCBoYXZpbmcgdHlwZSBEYXRhU291cmNlU29ydFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRGF0YVNvdXJjZVNvcnRcIl0gPSBcImRhdGFTcmNTb3J0XCI7XG4gICAgLy8gRFBJX0NvbHVtbkluZm8sIGhhdmluZyB0eXBlIERTQ29sdW1uSW5mb1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ29sdW1uSW5mb1wiXSA9IFwiY29sdW1uSW5mb1wiO1xuICAgIC8vIERQSV9Db2x1bW5JbmZvcywgaGF2aW5nIHR5cGUgRFNDb2x1bW5JbmZvUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkNvbHVtbkluZm9zXCJdID0gXCJjb2x1bW5JbmZvc1wiO1xuICAgIC8vIERQSV9EYXRhRm9ybWF0dGVyLCBoYXZpbmcgdHlwZSBEVkZvcm1hdHRlclxuICAgIFBhcmFtZXRlcklkW1wiRGF0YUZvcm1hdHRlclwiXSA9IFwiZGF0YUZvcm1hdHRlclwiO1xuICAgIC8vIERQSV9Kb2luRGVzY3JpcHRpb24sIGhhdmluZyB0eXBlIEpvaW5EZXNjcmlwdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiSm9pbkRlc2NyaXB0aW9uXCJdID0gXCJqb2luRGVzY3JpcHRpb25cIjtcbiAgICAvLyBEUElfSm9pbkRlc2NyaXB0aW9ucywgaGF2aW5nIHR5cGUgRGljdGlvbmFyeShvZiBKb2luRGVzY3JpcHRpb25QcmVzTW9kZWwpXG4gICAgUGFyYW1ldGVySWRbXCJKb2luRGVzY3JpcHRpb25zXCJdID0gXCJqb2luRGVzY3JpcHRpb25zXCI7XG4gICAgLy8gRFBJX0ZpbGVUYWJsZUluZm8sIGhhdmluZyB0eXBlIEZpbGVUYWJsZUluZm9QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkZpbGVUYWJsZUluZm9cIl0gPSBcImZpbGVUYWJsZUluZm9cIjtcbiAgICAvLyBEUElfRmllbGRNYXBwaW5nLCBoYXZpbmcgdHlwZSBGaWVsZE1hcHBpbmdQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkZpZWxkTWFwcGluZ1wiXSA9IFwiZmllbGRNYXBwaW5nXCI7XG4gICAgLy8gRFBJX0ZpZWxkTWFwcGluZ0RhdGEsIGhhdmluZyB0eXBlIEZpZWxkTWFwcGluZ0RhdGFQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkZpZWxkTWFwcGluZ0RhdGFcIl0gPSBcImZpZWxkTWFwcGluZ0RhdGFcIjtcbiAgICAvLyBEUElfRmllbGRNYXBwaW5nRGF0YVZlY3RvciwgaGF2aW5nIHR5cGUgRmllbGRNYXBwaW5nRGF0YVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJGaWVsZE1hcHBpbmdEYXRhVmVjdG9yXCJdID0gXCJmaWVsZE1hcHBpbmdEYXRhVmVjdG9yXCI7XG4gICAgLy8gRFBJX0ZyYW1lRmluZGVyLCBoYXZpbmcgdHlwZSBGcmFtZUZpbmRlclByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRnJhbWVGaW5kZXJcIl0gPSBcImZyYW1lRmluZGVyXCI7XG4gICAgLy8gRFBJX1NoZWV0TGlua0ZpZWxkTWFwcGluZywgaGF2aW5nIHR5cGUgU2hlZXRMaW5rRmllbGRNYXBwaW5nUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTaGVldExpbmtGaWVsZE1hcHBpbmdcIl0gPSBcInNoZWV0TGlua0ZpZWxkTWFwcGluZ1wiO1xuICAgIC8vIERQSV9VbmlvbkluZm8sIGhhdmluZyB0eXBlIFVuaW9uSW5mb1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVW5pb25JbmZvXCJdID0gXCJ1bmlvbkluZm9cIjtcbiAgICAvLyBEUElfVW5pb25UYWJsZUluZm8sIGhhdmluZyB0eXBlIFVuaW9uVGFibGVJbmZvUHJlc01vZGVcbiAgICBQYXJhbWV0ZXJJZFtcIlVuaW9uVGFibGVJbmZvXCJdID0gXCJ1bmlvblRhYmxlSW5mb1wiO1xuICAgIC8vIERQSV9VbmlvblRhYmxlSW5mb3MsIGhhdmluZyB0eXBlIFVuaW9uVGFibGVJbmZvUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlVuaW9uVGFibGVJbmZvc1wiXSA9IFwidW5pb25UYWJsZUluZm9zXCI7XG4gICAgLy8gRFBJX0Nvbm5lY3Rpb25QQlVuaW9uSW5mbywgaGF2aW5nIHR5cGUgUEJVbmlvbkluZm9QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbm5lY3Rpb25QQlVuaW9uSW5mb1wiXSA9IFwiY29ubmVjdGlvblBidW5pb25JbmZvXCI7XG4gICAgLy8gRFBJX0Nvbm5lY3Rpb25QQlVuaW9uSW5mb3MsIGhhdmluZyB0eXBlIFBCVW5pb25JbmZvUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkNvbm5lY3Rpb25QQlVuaW9uSW5mb3NcIl0gPSBcImNvbm5lY3Rpb25QYnVuaW9uSW5mb3NcIjtcbiAgICAvLyBEUElfSm9pbkNsYXVzZSwgaGF2aW5nIHR5cGUgSm9pbkNsYXVzZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiSm9pbkNsYXVzZVwiXSA9IFwiam9pbkNsYXVzZVwiO1xuICAgIC8vIERQSV9Kb2luQ2xhdXNlcywgaGF2aW5nIHR5cGUgSm9pbkNsYXVzZVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJKb2luQ2xhdXNlc1wiXSA9IFwiam9pbkNsYXVzZXNcIjtcbiAgICAvLyBEUElfSm9pblZhbGlkYXRpb25SZXN1bHQsIGhhdmluZyB0eXBlIEpvaW5WYWxpZGF0aW9uUmVzdWx0UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJKb2luVmFsaWRhdGlvblJlc3VsdFwiXSA9IFwiam9pblZhbGlkYXRpb25SZXN1bHRcIjtcbiAgICAvLyBEUElfSm9pblRhYmxlSW5mbywgaGF2aW5nIHR5cGUgSm9pblRhYmxlSW5mb1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiSm9pblRhYmxlSW5mb1wiXSA9IFwiam9pblRhYmxlSW5mb1wiO1xuICAgIC8vIERQSV9QYXJhbWV0ZXJJbmZvLCBoYXZpbmcgdHlwZSBKb2luVGFibGVJbmZvUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJQYXJhbWV0ZXJJbmZvXCJdID0gXCJwYXJhbWV0ZXJJbmZvXCI7XG4gICAgLy8gRFBJX0pvaW5UYWJsZUluZm9zLCBoYXZpbmcgdHlwZSBKb2luVGFibGVJbmZvUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkpvaW5UYWJsZUluZm9zXCJdID0gXCJqb2luVGFibGVJbmZvc1wiO1xuICAgIC8vIERQSV9Kb2luT25DYWxjSW5mbywgaGF2aW5nIHR5cGUgSm9pbk9uQ2FsY0luZm9QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkpvaW5PbkNhbGNJbmZvXCJdID0gXCJqb2luT25DYWxjSW5mb1wiO1xuICAgIC8vIERQSV9Db25uZWN0aW9uU3VtbWFyeSwgaGF2aW5nIHR5cGUgQ29ubmVjdGlvblN1bW1hcnlQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbm5lY3Rpb25TdW1tYXJ5XCJdID0gXCJjb25uZWN0aW9uU3VtbWFyeVwiO1xuICAgIC8vIERQSV9Db25uZWN0aW9uU3VtbWFyaWVzLCBoYXZpbmcgdHlwZSBDb25uZWN0aW9uU3VtbWFyeVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJDb25uZWN0aW9uU3VtbWFyaWVzXCJdID0gXCJjb25uZWN0aW9uU3VtbWFyaWVzXCI7XG4gICAgLy8gRFBJX1RvcExldmVsQ29ubmVjdGlvbkRlc2NyaXB0aW9uLCBoYXZpbmcgdHlwZSBUb3BMZXZlbENvbm5lY3Rpb25EZXNjcmlwdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVG9wTGV2ZWxDb25uZWN0aW9uRGVzY3JpcHRpb25cIl0gPSBcInRvcExldmVsQ29ubmVjdGlvbkRlc2NyaXB0aW9uXCI7XG4gICAgLy8gRFBJX0RhdGFDb25uZWN0aW9uVGFibGVWaWV3TWVzc2FnZXMsIGhhdmluZyB0eXBlIERhdGFDb25uZWN0aW9uVGFibGVWaWV3TWVzc2FnZXNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFDb25uZWN0aW9uVGFibGVWaWV3TWVzc2FnZXNcIl0gPSBcImRhdGFDb25uZWN0aW9uVGFibGVWaWV3TWVzc2FnZXNcIjtcbiAgICAvLyBEUElfVGV4dFRyYW5zZm9ybVNjcmlwdCwgaGF2aW5nIHR5cGUgVGV4dFRyYW5zZm9ybVNjcmlwdFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVGV4dFRyYW5zZm9ybVNjcmlwdFwiXSA9IFwidGV4dFRyYW5zZm9ybVNjcmlwdFwiO1xuICAgIC8vIERQSV9DYWxlbmRhckRhdGVPcHRpb25zLCBoYXZpbmcgdHlwZSBDYWxlbmRhckRhdGVPcHRpb25zUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDYWxlbmRhckRhdGVPcHRpb25zXCJdID0gXCJjYWxlbmRhckRhdGVPcHRpb25zXCI7XG4gICAgLy8gRFBJX0dvVG9Xb3Jrc2hlZXRUb29sdGlwUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBHb1RvV29ya3NoZWV0VG9vbHRpcFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiR29Ub1dvcmtzaGVldFRvb2x0aXBQcmVzTW9kZWxcIl0gPSBcImdvVG9Xb3Jrc2hlZXRUb29sdGlwUHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX1RhYmxlQ2xlYW5pbmdQcmVzTW9kZWwsIGhhdmluZyB0eXBlIFRhYmxlQ2xlYW5pbmdQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlRhYmxlQ2xlYW5pbmdQcmVzTW9kZWxcIl0gPSBcInRhYmxlQ2xlYW5pbmdQcmVzTW9kZWxcIjtcbiAgICAvLyBEUElfUGl2b3RQcmVzTW9kZWwsIGhhdmluZyB0eXBlIFBpdm90UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJQaXZvdFByZXNNb2RlbFwiXSA9IFwicGl2b3RQcmVzTW9kZWxcIjtcbiAgICAvLyBEUElfUGl2b3RUcmVlSXRlbVByZXNNb2RlbCwgaGF2aW5nIHR5cGUgUGl2b3RUcmVlSXRlbVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUGl2b3RUcmVlSXRlbVByZXNNb2RlbFwiXSA9IFwicGl2b3RUcmVlSXRlbVByZXNNb2RlbFwiO1xuICAgIC8vIERQSV9QaXZvdFRyZWVJdGVtcywgaGF2aW5nIHR5cGUgUGl2b3RUcmVlSXRlbVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJQaXZvdFRyZWVJdGVtc1wiXSA9IFwicGl2b3RUcmVlSXRlbXNQcmVzTW9kZWxcIjtcbiAgICAvLyBEUElfUGl2b3REaXNwbGF5LCBoYXZpbmcgdHlwZSBQaXZvdERpc3BsYXlQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlBpdm90RGlzcGxheVwiXSA9IFwicGl2b3REaXNwbGF5XCI7XG4gICAgLy8gRFBJX1Bpdm90VGFnLCBoYXZpbmcgdHlwZSBOYW1lQ29sdW1uc1BhaXJQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlBpdm90VGFnXCJdID0gXCJwaXZvdFRhZ1wiO1xuICAgIC8vIERQSV9QaXZvdEdyb3VwcywgaGF2aW5nIHR5cGUgTmFtZUNvbHVtbnNQYWlyUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlBpdm90R3JvdXBzXCJdID0gXCJwaXZvdEdyb3Vwc1wiO1xuICAgIC8vIERQSV9EYXRhU291cmNlRHJvcGRvd24sIGhhdmluZyB0eXBlIERhdGFTb3VyY2VEcm9wZG93blByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRGF0YVNvdXJjZURyb3Bkb3duXCJdID0gXCJkYXRhU291cmNlRHJvcGRvd25cIjtcbiAgICAvLyBEUElfQ29ubmVjdGlvbkRyb3Bkb3duLCBoYXZpbmcgdHlwZSBDb25uZWN0aW9uRHJvcGRvd25QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbm5lY3Rpb25Ecm9wZG93blwiXSA9IFwiY29ubmVjdGlvbkRyb3Bkb3duXCI7XG4gICAgLy8gRFBJX0FjdGl2aXR5RXZlbnQsIGhhdmluZyB0eXBlIEFjdGl2aXR5RXZlbnRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkFjdGl2aXR5RXZlbnRcIl0gPSBcImFjdGl2aXR5RXZlbnRcIjtcbiAgICAvLyBEUElfVUlBdXRvbWF0aW9uLCBoYXZpbmcgdHlwZSBVSUF1dG9tYXRpb25QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlVJQXV0b21hdGlvblwiXSA9IFwidWlBdXRvbWF0aW9uXCI7XG4gICAgLy8gRFBJX1VJQXV0b21hdGlvbkluZGV4LCBoYXZpbmcgdHlwZSBVSUF1dG9tYXRpb25JbmRleFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVUlBdXRvbWF0aW9uSW5kZXhcIl0gPSBcInVpQXV0b21hdGlvbkluZGV4XCI7XG4gICAgLy8gRFBJX1VJQXV0b21hdGlvbkluZGV4TGlzdCwgaGF2aW5nIHR5cGUgVUlBdXRvbWF0aW9uSW5kZXhQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiVUlBdXRvbWF0aW9uSW5kZXhMaXN0XCJdID0gXCJ1aUF1dG9tYXRpb25JbmRleExpc3RcIjtcbiAgICAvLyBEUElfVUlBdXRvbWF0aW9uQ29tcG9uZW50SW5mbywgaGF2aW5nIHR5cGUgVUlBdXRvbWF0aW9uQ29tcG9uZW50SW5mb1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVUlBdXRvbWF0aW9uQ29tcG9uZW50SW5mb1wiXSA9IFwidWlBdXRvbWF0aW9uQ29tcG9uZW50SW5mb1wiO1xuICAgIC8vIERQSV9VSUF1dG9tYXRpb25Db21wb25lbnRJbmZvTGlzdCwgaGF2aW5nIHR5cGUgVUlBdXRvbWF0aW9uQ29tcG9uZW50SW5mb1ByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJVSUF1dG9tYXRpb25Db21wb25lbnRJbmZvTGlzdFwiXSA9IFwidWlBdXRvbWF0aW9uQ29tcG9uZW50SW5mb0xpc3RcIjtcbiAgICAvLyBEUElfR2VvbWV0cnksIGhhdmluZyB0eXBlIEdlb21ldHJ5UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJHZW9tZXRyeVwiXSA9IFwiZ2VvbWV0cnlcIjtcbiAgICAvLyBEUElfTXVsdGlQb2ludCwgaGF2aW5nIHR5cGUgTXVsdGlQb2ludFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiTXVsdGlQb2ludFwiXSA9IFwibXVsdGlQb2ludFwiO1xuICAgIC8vIERQSV9NdWx0aUxpbmUsIGhhdmluZyB0eXBlIE11bHRpTGluZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiTXVsdGlMaW5lXCJdID0gXCJtdWx0aUxpbmVcIjtcbiAgICAvLyBEUElfTXVsdGlQb2x5Z29uLCBoYXZpbmcgdHlwZSBNdWx0aVBvbHlnb25QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIk11bHRpUG9seWdvblwiXSA9IFwibXVsdGlQb2x5Z29uXCI7XG4gICAgLy8gRFBJX1BvbHlnb24sIGhhdmluZyB0eXBlIFBvbHlnb25QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlBvbHlnb25cIl0gPSBcInBvbHlnb25cIjtcbiAgICAvLyBEUElfUG9seWdvbkxpc3QsIGhhdmluZyB0eXBlIFBvbHlnb25QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiUG9seWdvbkxpc3RcIl0gPSBcInBvbHlnb25MaXN0XCI7XG4gICAgLy8gRFBJX0xpbmUsIGhhdmluZyB0eXBlIExpbmVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkxpbmVcIl0gPSBcImxpbmVcIjtcbiAgICAvLyBEUElfTGluZUxpc3QsIGhhdmluZyB0eXBlIExpbmVQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiTGluZUxpc3RcIl0gPSBcImxpbmVMaXN0XCI7XG4gICAgLy8gRFBJX1RhYmJlZEF1dGhlbnRpY2F0aW9uLCBoYXZpbmcgdHlwZSBUYWJiZWRBdXRoZW50aWNhdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVGFiYmVkQXV0aGVudGljYXRpb25cIl0gPSBcInRhYmJlZEF1dGhlbnRpY2F0aW9uXCI7XG4gICAgLy8gRFBJX1RhYmJlZEF1dGhlbnRpY2F0aW9uVGFiSW5mbywgaGF2aW5nIHR5cGUgVGFiYmVkQXV0aGVudGljYXRpb25UYWJJbmZvUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJUYWJiZWRBdXRoZW50aWNhdGlvblRhYkluZm9cIl0gPSBcInRhYmJlZEF1dGhlbnRpY2F0aW9uVGFiSW5mb1wiO1xuICAgIC8vIERQSV9UYWJiZWRBdXRoZW50aWNhdGlvblRhYkluZm9zLCBoYXZpbmcgdHlwZSBUYWJiZWRBdXRoZW50aWNhdGlvblRhYkluZm9QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiVGFiYmVkQXV0aGVudGljYXRpb25UYWJJbmZvc1wiXSA9IFwidGFiYmVkQXV0aGVudGljYXRpb25UYWJJbmZvc1wiO1xuICAgIC8vIERQSV9HZW9ncmFwaGljU2VhcmNoQ2FuZGlkYXRlLCBoYXZpbmcgdHlwZSBHZW9ncmFwaGljU2VhcmNoQ2FuZGlkYXRlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJHZW9ncmFwaGljU2VhcmNoQ2FuZGlkYXRlXCJdID0gXCJnZW9ncmFwaGljU2VhcmNoQ2FuZGlkYXRlXCI7XG4gICAgLy8gRFBJX0dlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGVMaXN0LCBoYXZpbmcgdHlwZSBHZW9ncmFwaGljU2VhcmNoQ2FuZGlkYXRlUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkdlb2dyYXBoaWNTZWFyY2hDYW5kaWRhdGVMaXN0XCJdID0gXCJnZW9ncmFwaGljU2VhcmNoQ2FuZGlkYXRlTGlzdFwiO1xuICAgIC8vIERQSV9HZW9ncmFwaGljU2VhcmNoUmVzdWx0cywgaGF2aW5nIHR5cGUgR2VvZ3JhcGhpY1NlYXJjaFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiR2VvZ3JhcGhpY1NlYXJjaFJlc3VsdHNcIl0gPSBcImdlb2dyYXBoaWNTZWFyY2hSZXN1bHRzXCI7XG4gICAgLy8gRFBJX1BhcmFtSW5mbywgaGF2aW5nIHR5cGUgUGFyYW1ldGVySW5mb1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUGFyYW1JbmZvXCJdID0gXCJwYXJhbUluZm9cIjtcbiAgICAvLyBEUElfUGFyYW1JbmZvcywgaGF2aW5nIHR5cGUgUGFyYW1ldGVySW5mb1ByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJQYXJhbUluZm9zXCJdID0gXCJwYXJhbUluZm9zXCI7XG4gICAgLy8gRFBJX1BhcmFtTmFtZXNwYWNlSW5mbywgaGF2aW5nIHR5cGUgUGFyYW1ldGVyTmFtZXNwYWNlSW5mb0luZm9QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlBhcmFtTmFtZXNwYWNlSW5mb1wiXSA9IFwicGFyYW1OYW1lc3BhY2VJbmZvXCI7XG4gICAgLy8gRFBJX1BhcmFtTmFtZXNwYWNlSW5mb3MsIGhhdmluZyB0eXBlIFBhcmFtZXRlck5hbWVzcGFjZUluZm9QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiUGFyYW1OYW1lc3BhY2VJbmZvc1wiXSA9IFwicGFyYW1OYW1lc3BhY2VJbmZvc1wiO1xuICAgIC8vIERQSV9QYXJhbVJlZ2lzdHJ5SW5mbywgaGF2aW5nIHR5cGUgUGFyYW1ldGVyUmVnaXN0cnlJbmZvUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJQYXJhbVJlZ2lzdHJ5SW5mb1wiXSA9IFwicGFyYW1SZWdpc3RyeUluZm9cIjtcbiAgICAvLyBEUElfRGF0YVNvdXJjZVByb3BlcnRpZXMsIGhhdmluZyB0eXBlIERhdGFTb3VyY2VQcm9wZXJ0aWVzUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEYXRhU291cmNlUHJvcGVydGllc1wiXSA9IFwiY29ubmVjdGlvblByb3BlcnRpZXNcIjtcbiAgICAvLyBEUElfQ29ubmVjdGlvblR5cGVQcmVzTW9kZWwsIGhhdmluZyB0eXBlIENvbm5lY3Rpb25UeXBlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDb25uZWN0aW9uVHlwZVByZXNNb2RlbFwiXSA9IFwiY29ubmVjdGlvblR5cGVQcmVzTW9kZWxcIjtcbiAgICAvLyBEUElfQ29ubmVjdGlvblR5cGVzLCBoYXZpbmcgdHlwZSBDb25uZWN0aW9uVHlwZVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJDb25uZWN0aW9uVHlwZXNcIl0gPSBcImNvbm5lY3Rpb25UeXBlc1wiO1xuICAgIC8vIERQSV9Db25uZWN0aW9uVHlwZUdyb3VwUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBDb25uZWN0aW9uVHlwZUdyb3VwUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDb25uZWN0aW9uVHlwZUdyb3VwUHJlc01vZGVsXCJdID0gXCJjb25uZWN0aW9uVHlwZUdyb3VwUHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX1NhdmVkRGF0YVNvdXJjZVByZXNNb2RlbCwgaGF2aW5nIHR5cGUgU2F2ZWREYXRhU291cmNlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTYXZlZERhdGFTb3VyY2VQcmVzTW9kZWxcIl0gPSBcInNhdmVkRGF0YXNvdXJjZVByZXNNb2RlbFwiO1xuICAgIC8vIERQSV9TYXZlZERhdGFTb3VyY2VzLCBoYXZpbmcgdHlwZSBTYXZlZERhdGFTb3VyY2VQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiU2F2ZWREYXRhU291cmNlc1wiXSA9IFwic2F2ZWREYXRhc291cmNlc1wiO1xuICAgIC8vIERQSV9TYXZlZERhdGFTb3VyY2VzUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBTYXZlZERhdGFTb3VyY2VzUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTYXZlZERhdGFTb3VyY2VzUHJlc01vZGVsXCJdID0gXCJzYXZlZERhdGFzb3VyY2VzUHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX09wZW5QYW5lSXRlbVByZXNNb2RlbCwgaGF2aW5nIHR5cGUgT3BlblBhbmVJdGVtUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJPcGVuUGFuZUl0ZW1QcmVzTW9kZWxcIl0gPSBcIm9wZW5QYW5lSXRlbVByZXNNb2RlbFwiO1xuICAgIC8vIERQSV9PcGVuUGFuZUl0ZW1zLCBoYXZpbmcgdHlwZSBPcGVuUGFuZUl0ZW1QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiT3BlblBhbmVJdGVtc1wiXSA9IFwib3BlblBhbmVJdGVtc1wiO1xuICAgIC8vIERQSV9PcGVuUGFuZUl0ZW1zUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBPcGVuUGFuZUl0ZW1zUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJPcGVuUGFuZUl0ZW1zUHJlc01vZGVsXCJdID0gXCJvcGVuUGFuZUl0ZW1zUHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX1ZhcmlhYmxlVmFsdWUsIGhhdmluZyB0eXBlIFZhcmlhYmxlVmFsdWVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlZhcmlhYmxlVmFsdWVcIl0gPSBcInZhcmlhYmxlVmFsdWVcIjtcbiAgICAvLyBEUElfVmFyaWFibGVWYWx1ZXMsIGhhdmluZyB0eXBlIFZhcmlhYmxlVmFsdWVQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiVmFyaWFibGVWYWx1ZXNcIl0gPSBcInZhcmlhYmxlVmFsdWVzXCI7XG4gICAgLy8gRFBJX1NlcnZlclZhcmlhYmxlVmFsdWUsIGhhdmluZyB0eXBlIFNlcnZlclZhcmlhYmxlVmFsdWVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlNlcnZlclZhcmlhYmxlVmFsdWVcIl0gPSBcInNlcnZlclZhcmlhYmxlVmFsdWVcIjtcbiAgICAvLyBEUElfRWRpdGFibGVWYXJpYWJsZVZhbHVlLCBoYXZpbmcgdHlwZSBFZGl0YWJsZVZhcmlhYmxlVmFsdWVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkVkaXRhYmxlVmFyaWFibGVWYWx1ZVwiXSA9IFwiZWRpdGFibGVWYXJpYWJsZVZhbHVlXCI7XG4gICAgLy8gRFBJX1NlcnZlclZhcmlhYmxlTWV0YWRhdGEsIGhhdmluZyB0eXBlIFNlcnZlclZhcmlhYmxlTWV0YWRhdGFQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlNlcnZlclZhcmlhYmxlTWV0YWRhdGFcIl0gPSBcInNlcnZlclZhcmlhYmxlTWV0YWRhdGFcIjtcbiAgICAvLyBEUElfUHJvbXB0VmFyaWFibGUsIGhhdmluZyB0eXBlIFByb21wdFZhcmlhYmxlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJQcm9tcHRWYXJpYWJsZVwiXSA9IFwicHJvbXB0VmFyaWFibGVcIjtcbiAgICAvLyBEUElfUHJvbXB0VmFyaWFibGVzLCBoYXZpbmcgdHlwZSBQcm9tcHRWYXJpYWJsZVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJQcm9tcHRWYXJpYWJsZXNcIl0gPSBcInByb21wdFZhcmlhYmxlc1wiO1xuICAgIC8vIERQSV9WYXJpYWJsZVByb21wdERpYWxvZywgaGF2aW5nIHR5cGUgVmFyaWFibGVQcm9tcHREaWFsb2dQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlZhcmlhYmxlUHJvbXB0RGlhbG9nXCJdID0gXCJ2YXJpYWJsZVByb21wdERpYWxvZ1wiO1xuICAgIC8vIERQSV9WYXJpYWJsZVZhbHVlT3BlcmF0aW9uLCBoYXZpbmcgdHlwZSBWYXJpYWJsZVZhbHVlT3BlcmF0aW9uUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJWYXJpYWJsZVZhbHVlT3BlcmF0aW9uXCJdID0gXCJ2YXJpYWJsZVZhbHVlT3BlcmF0aW9uXCI7XG4gICAgLy8gRFBJX1ZhcmlhYmxlVmFsdWVPcGVyYXRpb25zLCBoYXZpbmcgdHlwZSBWYXJpYWJsZVZhbHVlT3BlcmF0aW9uUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlZhcmlhYmxlVmFsdWVPcGVyYXRpb25zXCJdID0gXCJ2YXJpYWJsZVZhbHVlT3BlcmF0aW9uc1wiO1xuICAgIC8vIERQSV9UYWJsZU9wdGlvbnNQcmVzTW9kZWwsIGhhdmluZyB0eXBlIFRhYmxlT3B0aW9uc1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVGFibGVPcHRpb25zUHJlc01vZGVsXCJdID0gXCJ0YWJsZU9wdGlvbnNQcmVzTW9kZWxcIjtcbiAgICAvLyBEUElfQ2xpZW50SW5mb1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgQ2xpZW50SW5mb1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ2xpZW50SW5mb1ByZXNNb2RlbFwiXSA9IFwiY2xpZW50SW5mb1ByZXNNb2RlbFwiO1xuICAgIC8vIERQSV9UYWJsZWF1RmlsZUluZm9QcmVzTW9kZWwsIGhhdmluZyB0eXBlIFRhYmxlYXVGaWxlSW5mb1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVGFibGVhdUZpbGVJbmZvUHJlc01vZGVsXCJdID0gXCJ0YWJsZWF1RmlsZUluZm9QcmVzTW9kZWxcIjtcbiAgICAvLyBEUElfRGVidWdnaW5nSW5mb1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgRGVidWdnaW5nSW5mb1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRGVidWdnaW5nSW5mb1ByZXNNb2RlbFwiXSA9IFwiZGVidWdnaW5nSW5mb1ByZXNNb2RlbFwiO1xuICAgIC8vIERQSV9SdW5uaW5nVGhyZWFkSW5mb1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgUnVubmluZ1RocmVhZEluZm9QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlJ1bm5pbmdUaHJlYWRJbmZvUHJlc01vZGVsXCJdID0gXCJydW5uaW5nVGhyZWFkSW5mb1ByZXNNb2RlbFwiO1xuICAgIC8vIERQSV9BYm91dERpYWxvZ0luZm9QcmVzTW9kZWwsIGhhdmluZyB0eXBlIEFib3V0RGlhbG9nSW5mb1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQWJvdXREaWFsb2dJbmZvUHJlc01vZGVsXCJdID0gXCJhYm91dERpYWxvZ0luZm9QcmVzTW9kZWxcIjtcbiAgICAvLyBEUElfSHlicmlkVUlTaG93Y2FzZVByZXNNb2RlbCwgaGF2aW5nIHR5cGUgSHlicmlkVUlTaG93Y2FzZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiSHlicmlkVUlTaG93Y2FzZVByZXNNb2RlbFwiXSA9IFwiaHlicmlkVWlTaG93Y2FzZVByZXNNb2RlbFwiO1xuICAgIC8vIERQSV9NZW51Q29uZmlndXJhdGlvbiwgaGF2aW5nIHR5cGUgTWVudUNvbmZpZ3VyYXRpb25QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIk1lbnVDb25maWd1cmF0aW9uXCJdID0gXCJtZW51Q29uZmlndXJhdGlvblwiO1xuICAgIC8vIERQSV9NZW51SXRlbSwgaGF2aW5nIHR5cGUgTWVudUl0ZW1QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIk1lbnVJdGVtXCJdID0gXCJtZW51SXRlbVwiO1xuICAgIC8vIERQSV9NZW51SXRlbU1vZGVscywgaGF2aW5nIHR5cGUgTWVudUl0ZW1QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiTWVudUl0ZW1Nb2RlbHNcIl0gPSBcIm1lbnVJdGVtTW9kZWxzXCI7XG4gICAgLy8gRFBJX0RlZmF1bHRUZXh0Rm9ybWF0LCBoYXZpbmcgdHlwZSBEZWZhdWx0VGV4dEZvcm1hdFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRGVmYXVsdFRleHRGb3JtYXRcIl0gPSBcImRlZmF1bHRUZXh0Rm9ybWF0XCI7XG4gICAgLy8gRFBJX01hcEJveFNlcnZlckluZm9QcmVzTW9kZWwsIGhhdmluZyB0eXBlIE1hcEJveFNlcnZlckluZm9QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIk1hcEJveFNlcnZlckluZm9QcmVzTW9kZWxcIl0gPSBcIm1hcGJveFNlcnZlckluZm9QcmVzTW9kZWxcIjtcbiAgICAvLyBEUElfV01TU2VydmVySW5mb1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgV01TU2VydmVySW5mb1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiV01TU2VydmVySW5mb1ByZXNNb2RlbFwiXSA9IFwid21zU2VydmVySW5mb1ByZXNNb2RlbFwiO1xuICAgIC8vIERQSV9NYXBTb3VyY2VDb25mbGljdFByZXNNb2RlbCwgaGF2aW5nIHR5cGUgTWFwU291cmNlQ29uZmxpY3RQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIk1hcFNvdXJjZUNvbmZsaWN0UHJlc01vZGVsXCJdID0gXCJtYXBTb3VyY2VDb25mbGljdFByZXNNb2RlbFwiO1xuICAgIC8vIERQSV9FbnVtZXJhdGVkU2V0RGlhbG9nUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBFbnVtZXJhdGVkU2V0RGlhbG9nUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJFbnVtZXJhdGVkU2V0RGlhbG9nUHJlc01vZGVsXCJdID0gXCJlbnVtZXJhdGVkU2V0RGlhbG9nUHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX0VkaXRBbGlhc2VzRGlhbG9nLCBoYXZpbmcgdHlwZSBFZGl0QWxpYXNlc0RpYWxvZ1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRWRpdEFsaWFzZXNEaWFsb2dcIl0gPSBcImVkaXRBbGlhc2VzRGlhbG9nUHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX0FsaWFzZXNQcmVzTW9kZWwsIGhhdmluZyB0eXBlIEFsaWFzZXNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkFsaWFzZXNQcmVzTW9kZWxcIl0gPSBcImFsaWFzZXNQcmVzTW9kZWxcIjtcbiAgICAvLyBEUElfQ2xlYXJBbGlhc2VzUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBBbGlhc2VzUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDbGVhckFsaWFzZXNQcmVzTW9kZWxcIl0gPSBcImNsZWFyQWxpYXNlc1ByZXNNb2RlbFwiO1xuICAgIC8vIERQSV9OZXdBbGlhc2VzUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBOZXdBbGlhc2VzUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJOZXdBbGlhc2VzUHJlc01vZGVsXCJdID0gXCJuZXdBbGlhc2VzUHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX0FsaWFzUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBBbGlhc1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQWxpYXNQcmVzTW9kZWxcIl0gPSBcImFsaWFzUHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX0FsaWFzSXRlbSwgaGF2aW5nIHR5cGUgQWxpYXNJdGVtUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJBbGlhc0l0ZW1cIl0gPSBcImFsaWFzSXRlbVwiO1xuICAgIC8vIERQSV9EdXBsaWNhdGVBbGlhc0l0ZW0sIGhhdmluZyB0eXBlIEFsaWFzSXRlbVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRHVwbGljYXRlQWxpYXNJdGVtXCJdID0gXCJkdXBsaWNhdGVBbGlhc0l0ZW1cIjtcbiAgICAvLyBEUElfQWxpYXNMaXN0LCBoYXZpbmcgdHlwZSBBbGlhc0l0ZW1QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiQWxpYXNMaXN0XCJdID0gXCJhbGlhc0xpc3RcIjtcbiAgICAvLyBEUElfQWxpYXNSZXN1bHRJdGVtLCBoYXZpbmcgdHlwZSBBbGlhc1Jlc3VsdEl0ZW1QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkFsaWFzUmVzdWx0SXRlbVwiXSA9IFwiYWxpYXNSZXN1bHRJdGVtXCI7XG4gICAgLy8gRFBJX0FsaWFzUmVzdWx0TGlzdCwgaGF2aW5nIHR5cGUgQWxpYXNSZXN1bHRJdGVtUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkFsaWFzUmVzdWx0TGlzdFwiXSA9IFwiYWxpYXNSZXN1bHRMaXN0XCI7XG4gICAgLy8gRFBJX0FsaWFzUmVzdWx0cywgaGF2aW5nIHR5cGUgQWxpYXNSZXN1bHRzUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJBbGlhc1Jlc3VsdHNcIl0gPSBcImFsaWFzUmVzdWx0c1wiO1xuICAgIC8vIERQSV9FZGl0U2V0RGlhbG9nUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBFZGl0U2V0RGlhbG9nUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJFZGl0U2V0RGlhbG9nUHJlc01vZGVsXCJdID0gXCJlZGl0U2V0RGlhbG9nUHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX0NvbmZpcm1hdGlvblByZXNNb2RlbCwgaGF2aW5nIHR5cGUgQ29uZmlybWF0aW9uUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDb25maXJtYXRpb25QcmVzTW9kZWxcIl0gPSBcImNvbmZpcm1hdGlvblByZXNNb2RlbFwiO1xuICAgIC8vIERQSV9Ob3RpZmljYXRpb25QcmVzTW9kZWwsIGhhdmluZyB0eXBlIE5vdGlmaWNhdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiTm90aWZpY2F0aW9uUHJlc01vZGVsXCJdID0gXCJub3RpZmljYXRpb25QcmVzTW9kZWxcIjtcbiAgICAvLyBEUElfUmV0YXJnZXREYXRhU291cmNlRGlhbG9nUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBSZXRhcmdldERhdGFTb3VyY2VEaWFsb2dQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlJldGFyZ2V0RGF0YVNvdXJjZURpYWxvZ1ByZXNNb2RlbFwiXSA9IFwicmV0YXJnZXREYXRhc291cmNlRGlhbG9nUHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX1NoYXJlZEZpbHRlclByZXNNb2RlbCwgaGF2aW5nIHR5cGUgU2hhcmVkRmlsdGVyUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTaGFyZWRGaWx0ZXJQcmVzTW9kZWxcIl0gPSBcInNoYXJlZEZpbHRlclByZXNNb2RlbFwiO1xuICAgIC8vIERQSV9TaGFyZWRGaWx0ZXJXb3Jrc2hlZXRJbmZvLCBoYXZpbmcgdHlwZSBTaGFyZWRGaWx0ZXJXb3Jrc2hlZXRJbmZvUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTaGFyZWRGaWx0ZXJXb3Jrc2hlZXRJbmZvXCJdID0gXCJzaGFyZWRGaWx0ZXJXb3Jrc2hlZXRJbmZvXCI7XG4gICAgLy8gRFBJX1NoYXJlZEZpbHRlcldvcmtzaGVldEluZm9MaXN0LCBoYXZpbmcgdHlwZSBTaGFyZWRGaWx0ZXJXb3Jrc2hlZXRJbmZvUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlNoYXJlZEZpbHRlcldvcmtzaGVldEluZm9MaXN0XCJdID0gXCJzaGFyZWRGaWx0ZXJXb3Jrc2hlZXRJbmZvTGlzdFwiO1xuICAgIC8vIERQSV9GaWVsZFBpY2tlclRyZWVQcmVzTW9kZWwsIGhhdmluZyB0eXBlIEZpZWxkUGlja2VyVHJlZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRmllbGRQaWNrZXJUcmVlUHJlc01vZGVsXCJdID0gXCJmaWVsZFBpY2tlclRyZWVQcmVzTW9kZWxcIjtcbiAgICAvLyBEUElfRmllbGRQaWNrZXJUcmVlUHJlc01vZGVsU291cmNlLCBoYXZpbmcgdHlwZSBGaWVsZFBpY2tlclRyZWVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkZpZWxkUGlja2VyVHJlZVByZXNNb2RlbFNvdXJjZVwiXSA9IFwiZmllbGRQaWNrZXJUcmVlUHJlc01vZGVsU291cmNlXCI7XG4gICAgLy8gRFBJX0ZpZWxkUGlja2VyVHJlZVByZXNNb2RlbFRhcmdldCwgaGF2aW5nIHR5cGUgRmllbGRQaWNrZXJUcmVlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJGaWVsZFBpY2tlclRyZWVQcmVzTW9kZWxUYXJnZXRcIl0gPSBcImZpZWxkUGlja2VyVHJlZVByZXNNb2RlbFRhcmdldFwiO1xuICAgIC8vIERQSV9FcnJvckluZm8sIGhhdmluZyB0eXBlIEVycm9ySW5mb1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRXJyb3JJbmZvXCJdID0gXCJlcnJvckluZm9QcmVzTW9kZWxcIjtcbiAgICAvLyBEUElfQ3VzdG9tU3BsaXRQcmVzTW9kZWwsIGhhdmluZyB0eXBlIEN1c3RvbVNwbGl0UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDdXN0b21TcGxpdFByZXNNb2RlbFwiXSA9IFwiY3VzdG9tU3BsaXRQcmVzTW9kZWxcIjtcbiAgICAvLyBEUElfUGFnZVNldHVwLCBoYXZpbmcgdHlwZSBQYWdlU2V0dXBQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlBhZ2VTZXR1cFwiXSA9IFwicGFnZVNldHVwXCI7XG4gICAgLy8gRFBJX1NlcnZlckNvbm5lY3RTdGF0dXMsIGhhdmluZyB0eXBlIFNlcnZlckNvbm5lY3Rpb25TdGF0dXNcbiAgICBQYXJhbWV0ZXJJZFtcIlNlcnZlckNvbm5lY3RTdGF0dXNcIl0gPSBcInNlcnZlckNvbm5lY3Rpb25TdGF0dXNcIjtcbiAgICAvLyBEUElfR2V0RmlsdGVySXRlbXNSZXNwb25zZSwgaGF2aW5nIHR5cGUgR2V0RmlsdGVySXRlbXNSZXNwb25zZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiR2V0RmlsdGVySXRlbXNSZXNwb25zZVwiXSA9IFwiZ2V0RmlsdGVySXRlbXNSZXNwb25zZVwiO1xuICAgIC8vIERQSV9GaWx0ZXJTZWFyY2hSZXNwb25zZSwgaGF2aW5nIHR5cGUgRmlsdGVyU2VhcmNoUmVzcG9uc2VQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkZpbHRlclNlYXJjaFJlc3BvbnNlXCJdID0gXCJmaWx0ZXJTZWFyY2hSZXNwb25zZVwiO1xuICAgIC8vIERQSV9GaWx0ZXJTZWFyY2hXaXRoSW5kZXhSZXNwb25zZSwgaGF2aW5nIHR5cGUgRmlsdGVyU2VhcmNoV2l0aEluZGV4UmVzcG9uc2VQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkZpbHRlclNlYXJjaFdpdGhJbmRleFJlc3BvbnNlXCJdID0gXCJmaWx0ZXJTZWFyY2hXaXRoSW5kZXhSZXNwb25zZVwiO1xuICAgIC8vIERQSV9GaWx0ZXJTaG93Q2hpbGRyZW5SZXNwb25zZSwgaGF2aW5nIHR5cGUgRmlsdGVyU2hvd0NoaWxkcmVuUmVzcG9uc2VQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkZpbHRlclNob3dDaGlsZHJlblJlc3BvbnNlXCJdID0gXCJmaWx0ZXJTaG93Q2hpbGRyZW5SZXNwb25zZVwiO1xuICAgIC8vIERQSV9FZGl0RGF0YVNlcnZlckNvbm5lY3Rpb24sIGhhdmluZyB0eXBlIEVkaXREYXRhU2VydmVyQ29ubmVjdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRWRpdERhdGFTZXJ2ZXJDb25uZWN0aW9uXCJdID0gXCJlZGl0RGF0YVNlcnZlckNvbm5lY3Rpb25cIjtcbiAgICAvLyBEUElfSW1hZ2VzRWRpdCwgaGF2aW5nIHR5cGUgSW1hZ2VzRWRpdFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiSW1hZ2VzRWRpdFwiXSA9IFwiaW1hZ2VzRWRpdFwiO1xuICAgIC8vIERQSV9CYWNrZ3JvdW5kSW1hZ2UsIGhhdmluZyB0eXBlIEJhY2tncm91bmRJbWFnZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQmFja2dyb3VuZEltYWdlXCJdID0gXCJiYWNrZ3JvdW5kSW1hZ2VcIjtcbiAgICAvLyBEUElfQmFja2dyb3VuZEltYWdlcywgaGF2aW5nIHR5cGUgQmFja2dyb3VuZEltYWdlUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkJhY2tncm91bmRJbWFnZXNcIl0gPSBcImJhY2tncm91bmRJbWFnZXNcIjtcbiAgICAvLyBEUElfUHJlZGljYXRlLCBoYXZpbmcgdHlwZSBQcmVkaWNhdGVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlByZWRpY2F0ZVwiXSA9IFwicHJlZGljYXRlXCI7XG4gICAgLy8gRFBJX1ByZWRpY2F0ZXMsIGhhdmluZyB0eXBlIFByZWRpY2F0ZVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJQcmVkaWNhdGVzXCJdID0gXCJwcmVkaWNhdGVzXCI7XG4gICAgLy8gRFBJX0ltYWdlc0VkaXRSZXN1bHQsIGhhdmluZyB0eXBlIEltYWdlc0VkaXRSZXN1bHRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkltYWdlc0VkaXRSZXN1bHRcIl0gPSBcImltYWdlc0VkaXRSZXN1bHRcIjtcbiAgICAvLyBEUElfU29ydERpYWxvZ1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgU29ydERpYWxvZ1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU29ydERpYWxvZ1ByZXNNb2RlbFwiXSA9IFwic29ydERpYWxvZ1ByZXNNb2RlbFwiO1xuICAgIC8vIERQSV9Db21wb3VuZFRhYmxlQ2FsYywgaGF2aW5nIHR5cGUgQ29tcG91bmRUYWJsZUNhbGN1bGF0aW9uUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDb21wb3VuZFRhYmxlQ2FsY1wiXSA9IFwiY29tcG91bmRUYWJsZUNhbGN1bGF0aW9uUHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX1RhYmxlQ2FsYywgaGF2aW5nIHR5cGUgVGFibGVDYWxjdWxhdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVGFibGVDYWxjXCJdID0gXCJ0YWJsZUNhbGN1bGF0aW9uUHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX1RhYmxlQ2FsY3MsIGhhdmluZyB0eXBlIFRhYmxlQ2FsY3VsYXRpb25QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiVGFibGVDYWxjc1wiXSA9IFwidGFibGVDYWxjdWxhdGlvblByZXNNb2RlbHNcIjtcbiAgICAvLyBEUElfVGFibGVDYWxjSWRlbnRpZmllciwgaGF2aW5nIHR5cGUgVGFibGVDYWxjSWRlbnRpZmllclByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVGFibGVDYWxjSWRlbnRpZmllclwiXSA9IFwidGFibGVDYWxjSWRlbnRpZmllclwiO1xuICAgIC8vIERQSV9OZXN0ZWRUYWJsZUNhbGNJbmZvLCBoYXZpbmcgdHlwZSBOZXN0ZWRUYWJsZUNhbGNJbmZvUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJOZXN0ZWRUYWJsZUNhbGNJbmZvXCJdID0gXCJuZXN0ZWRUYWJsZUNhbGNJbmZvXCI7XG4gICAgLy8gRFBJX05lc3RlZFRhYmxlQ2FsY0luZm9zLCBoYXZpbmcgdHlwZSBOZXN0ZWRUYWJsZUNhbGNJbmZvUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIk5lc3RlZFRhYmxlQ2FsY0luZm9zXCJdID0gXCJuZXN0ZWRUYWJsZUNhbGNJbmZvc1wiO1xuICAgIC8vIERQSV9PcmRlcmluZywgaGF2aW5nIHR5cGUgVGFibGVDYWxjT3JkZXJpbmdQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIk9yZGVyaW5nXCJdID0gXCJ0YWJsZUNhbGNPcmRlcmluZ1ByZXNNb2RlbFwiO1xuICAgIC8vIERQSV9DdW11bGF0aXZlLCBoYXZpbmcgdHlwZSBDdW11bGF0aXZlVGFibGVDYWxjUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDdW11bGF0aXZlXCJdID0gXCJjdW11bGF0aXZlVGFibGVDYWxjUHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX1JlZmVyZW5jZU9wdGlvbnMsIGhhdmluZyB0eXBlIFRhYmxlQ2FsY1JlZmVyZW5jZU9wdGlvbnNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlJlZmVyZW5jZU9wdGlvbnNcIl0gPSBcInRhYmxlQ2FsY1JlZmVyZW5jZU9wdGlvbnNQcmVzTW9kZWxcIjtcbiAgICAvLyBEUElfRGlmZmVyZW5jZSwgaGF2aW5nIHR5cGUgRGlmZmVyZW5jZVRhYmxlQ2FsY1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRGlmZmVyZW5jZVwiXSA9IFwiZGlmZmVyZW5jZVRhYmxlQ2FsY1ByZXNNb2RlbFwiO1xuICAgIC8vIERQSV9XaW5kb3csIGhhdmluZyB0eXBlIFdpbmRvd1RhYmxlQ2FsY1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiV2luZG93XCJdID0gXCJ3aW5kb3dUYWJsZUNhbGNQcmVzTW9kZWxcIjtcbiAgICAvLyBEUElfUGVyY2VudFRvdGFsLCBoYXZpbmcgdHlwZSBQZXJjZW50VG90YWxUYWJsZUNhbGNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlBlcmNlbnRUb3RhbFwiXSA9IFwicGVyY2VudFRvdGFsVGFibGVDYWxjUHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX1JhbmssIGhhdmluZyB0eXBlIFJhbmtUYWJsZUNhbGNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlJhbmtcIl0gPSBcInJhbmtUYWJsZUNhbGNQcmVzTW9kZWxcIjtcbiAgICAvLyBEUElfQ3VzdG9tLCBoYXZpbmcgdHlwZSBDdXN0b21UYWJsZUNhbGNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkN1c3RvbVwiXSA9IFwiY3VzdG9tVGFibGVDYWxjUHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX1dlYkRhdGFVcmwsIGhhdmluZyB0eXBlIFdlYkRhdGFVcmxQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIldlYkRhdGFVcmxcIl0gPSBcIndlYkRhdGFVcmxcIjtcbiAgICAvLyBEUElfVmlzaXRlZFdlYkRhdGFDb25uZWN0b3JzLCBoYXZpbmcgdHlwZSBXZWJEYXRhVXJsUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlZpc2l0ZWRXZWJEYXRhQ29ubmVjdG9yc1wiXSA9IFwidmlzaXRlZFdlYkRhdGFDb25uZWN0b3JzXCI7XG4gICAgLy8gRFBJX1dlYkRhdGFTZXNzaW9uVXJscywgaGF2aW5nIHR5cGUgV2ViRGF0YVVybFByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJXZWJEYXRhU2Vzc2lvblVybHNcIl0gPSBcIndlYkRhdGFTZXNzaW9uVXJsc1wiO1xuICAgIC8vIERQSV9XZWJEYXRhVXJscywgaGF2aW5nIHR5cGUgV2ViRGF0YVVybFByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJXZWJEYXRhVXJsc1wiXSA9IFwid2ViRGF0YVVybHNcIjtcbiAgICAvLyBEUElfRmllbGRQaWNrZXIsIGhhdmluZyB0eXBlIEZpZWxkUGlja2VyUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJGaWVsZFBpY2tlclwiXSA9IFwiZmllbGRQaWNrZXJcIjtcbiAgICAvLyBEUElfRGVzY3JpYmVGaWVsZCwgaGF2aW5nIHR5cGUgRGVzY3JpYmVGaWVsZFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRGVzY3JpYmVGaWVsZFwiXSA9IFwiZGVzY3JpYmVGaWVsZFwiO1xuICAgIC8vIERQSV9TaG93RGF0YVByZXNNb2RlbCwgaGF2aW5nIHR5cGUgU2hvd0RhdGFQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlNob3dEYXRhUHJlc01vZGVsXCJdID0gXCJzaG93RGF0YVByZXNNb2RlbFwiO1xuICAgIC8vIERQSV9EYXRhVGFibGVQcmVzTW9kZWwsIGhhdmluZyB0eXBlIFNob3dEYXRhVGFibGVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFUYWJsZVByZXNNb2RlbFwiXSA9IFwiZGF0YVRhYmxlUHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX0RhdGFUYWJsZVByZXNNb2RlbHMsIGhhdmluZyB0eXBlIFNob3dEYXRhVGFibGVQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiRGF0YVRhYmxlUHJlc01vZGVsc1wiXSA9IFwiZGF0YVRhYmxlUHJlc01vZGVsc1wiO1xuICAgIC8vIERQSV9TdW1tYXJ5VGFibGVQcmVzTW9kZWxzLCBoYXZpbmcgdHlwZSBTaG93RGF0YVRhYmxlUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlN1bW1hcnlUYWJsZVByZXNNb2RlbHNcIl0gPSBcInN1bW1hcnlUYWJsZVByZXNNb2RlbHNcIjtcbiAgICAvLyBEUElfUmVmcmVzaEFsbEV4dHJhY3RzUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBSZWZyZXNoQWxsRXh0cmFjdHNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlJlZnJlc2hBbGxFeHRyYWN0c1ByZXNNb2RlbFwiXSA9IFwicmVmZXNoQWxsRXh0cmFjdHNQcmVzTW9kZWxcIjtcbiAgICAvLyBEUElfUmVmcmVzaEV4dHJhY3REYXRhU291cmNlUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBSZWZyZXNoRXh0cmFjdERhdGFTb3VyY2VQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlJlZnJlc2hFeHRyYWN0RGF0YVNvdXJjZVByZXNNb2RlbFwiXSA9IFwicmVmcmVzaEV4dHJhY3REYXRhc291cmNlUHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX1JlZnJlc2hFeHRyYWN0RGF0YVNvdXJjZUxpc3QsIGhhdmluZyB0eXBlIFJlZnJlc2hFeHRyYWN0RGF0YVNvdXJjZVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJSZWZyZXNoRXh0cmFjdERhdGFTb3VyY2VMaXN0XCJdID0gXCJyZWZyZXNoRXh0cmFjdERhdGFzb3VyY2VMaXN0XCI7XG4gICAgLy8gRFBJX0V4dHJhY3RIaXN0b3J5UHJlc01vZGVsLCBoYXZpbmcgdHlwZSBFeHRyYWN0SGlzdG9yeVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRXh0cmFjdEhpc3RvcnlQcmVzTW9kZWxcIl0gPSBcImV4dHJhY3RIaXN0b3J5UHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX0V4dHJhY3RIaXN0b3J5SXRlbVByZXNNb2RlbCwgaGF2aW5nIHR5cGUgRXh0cmFjdEhpc3RvcnlJdGVtUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJFeHRyYWN0SGlzdG9yeUl0ZW1QcmVzTW9kZWxcIl0gPSBcImV4dHJhY3RIaXN0b3J5SXRlbVwiO1xuICAgIC8vIERQSV9FeHRyYWN0SGlzdG9yeUxpc3QsIGhhdmluZyB0eXBlIEV4dHJhY3RIaXN0b3J5SXRlbVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJFeHRyYWN0SGlzdG9yeUxpc3RcIl0gPSBcImV4dHJhY3RIaXN0b3J5TGlzdFwiO1xuICAgIC8vIERQSV9EYXRhUHJvdmlkZXJQcmVzTW9kZWwsIGhhdmluZyB0eXBlIERhdGFQcm92aWRlclByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRGF0YVByb3ZpZGVyUHJlc01vZGVsXCJdID0gXCJkYXRhUHJvdmlkZXJQcmVzTW9kZWxcIjtcbiAgICAvLyBEUElfRm9ybWF0SXRlbSwgaGF2aW5nIHR5cGUgRm9ybWF0SXRlbVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRm9ybWF0SXRlbVwiXSA9IFwiZm9ybWF0SXRlbVwiO1xuICAgIC8vIERQSV9Gb3JtYXRJdGVtTGlzdCwgaGF2aW5nIHR5cGUgRm9ybWF0SXRlbVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJGb3JtYXRJdGVtTGlzdFwiXSA9IFwiZm9ybWF0SXRlbUxpc3RcIjtcbiAgICAvLyBEUElfRm9ybWF0Q29udGFpbmVyLCBoYXZpbmcgdHlwZSBGb3JtYXRDb250YWluZXJQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkZvcm1hdENvbnRhaW5lclwiXSA9IFwiZm9ybWF0Q29udGFpbmVyXCI7XG4gICAgLy8gRFBJX0Zvcm1hdFBhbmUsIGhhdmluZyB0eXBlIEZvcm1hdFBhbmVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkZvcm1hdFBhbmVcIl0gPSBcImZvcm1hdFBhbmVcIjtcbiAgICAvLyBEUElfRm9ybWF0U2VjdGlvbiwgaGF2aW5nIHR5cGUgRm9ybWF0U2VjdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRm9ybWF0U2VjdGlvblwiXSA9IFwiZm9ybWF0U2VjdGlvblwiO1xuICAgIC8vIERQSV9Db2xsYXBzaWJsZVNlY3Rpb24sIGhhdmluZyB0eXBlIENvbGxhcHNpYmxlU2VjdGlvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ29sbGFwc2libGVTZWN0aW9uXCJdID0gXCJjb2xsYXBzaWJsZVNlY3Rpb25cIjtcbiAgICAvLyBEUElfQ29tcG9zaXRlQ29udGFpbmVyLCBoYXZpbmcgdHlwZSBDb21wb3NpdGVDb250YWluZXJQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbXBvc2l0ZUNvbnRhaW5lclwiXSA9IFwiY29tcG9zaXRlQ29udGFpbmVyXCI7XG4gICAgLy8gRFBJX1VuaXRDb250YWluZXIsIGhhdmluZyB0eXBlIFVuaXRDb250YWluZXJQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlVuaXRDb250YWluZXJcIl0gPSBcInVuaXRDb250YWluZXJcIjtcbiAgICAvLyBEUElfVGFiR3JvdXAsIGhhdmluZyB0eXBlIFRhYkdyb3VwUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJUYWJHcm91cFwiXSA9IFwidGFiR3JvdXBcIjtcbiAgICAvLyBEUElfVGFiLCBoYXZpbmcgdHlwZSBUYWJQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlRhYlwiXSA9IFwidGFiXCI7XG4gICAgLy8gRFBJX0Zvcm1hdENvbnRyb2wsIGhhdmluZyB0eXBlIEZvcm1hdENvbnRyb2xQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkZvcm1hdENvbnRyb2xcIl0gPSBcImZvcm1hdENvbnRyb2xcIjtcbiAgICAvLyBEUElfVGV4dENvbnRyb2wsIGhhdmluZyB0eXBlIFRleHRDb250cm9sUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJUZXh0Q29udHJvbFwiXSA9IFwidGV4dENvbnRyb2xcIjtcbiAgICAvLyBEUElfTnVtZXJpY0NvbnRyb2wsIGhhdmluZyB0eXBlIE51bWVyaWNDb250cm9sUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJOdW1lcmljQ29udHJvbFwiXSA9IFwibnVtZXJpY0NvbnRyb2xcIjtcbiAgICAvLyBEUElfQ29sb3JDb250cm9sLCBoYXZpbmcgdHlwZSBDb2xvckNvbnRyb2xQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNvbG9yQ29udHJvbFwiXSA9IFwiY29sb3JDb250cm9sXCI7XG4gICAgLy8gRFBJX1RvZ2dsZUNvbnRyb2wsIGhhdmluZyB0eXBlIFRvZ2dsZUNvbnRyb2xQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlRvZ2dsZUNvbnRyb2xcIl0gPSBcInRvZ2dsZUNvbnRyb2xcIjtcbiAgICAvLyBEUElfU2VsZWN0b3JDb250cm9sLCBoYXZpbmcgdHlwZSBTZWxlY3RvckNvbnRyb2xQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlNlbGVjdG9yQ29udHJvbFwiXSA9IFwiZW51bVN0cmluZ1N0eWxlXCI7XG4gICAgLy8gRFBJX1N0YXRzQW5hbHl0aWNTcGVjLCBoYXZpbmcgdHlwZSBTdGF0c0FuYWx5dGljU3BlY1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU3RhdHNBbmFseXRpY1NwZWNcIl0gPSBcInN0YXRzQW5hbHl0aWNTcGVjXCI7XG4gICAgLy8gRFBJX0NsdXN0ZXJTcGVjLCBoYXZpbmcgdHlwZSBDbHVzdGVyU3BlY1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ2x1c3RlclNwZWNcIl0gPSBcImNsdXN0ZXJpbmdTcGVjXCI7XG4gICAgLy8gRFBJX0NsdXN0ZXJSZXN1bHRzLCBoYXZpbmcgdHlwZSBDbHVzdGVyUmVzdWx0c1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ2x1c3RlclJlc3VsdHNcIl0gPSBcImNsdXN0ZXJSZXN1bHRzXCI7XG4gICAgLy8gRFBJX0NsdXN0ZXJVbml0LCBoYXZpbmcgdHlwZSBDbHVzdGVyVW5pdFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ2x1c3RlclVuaXRcIl0gPSBcImNsdXN0ZXJcIjtcbiAgICAvLyBEUElfQ2x1c3RlclVuaXRzLCBoYXZpbmcgdHlwZSBDbHVzdGVyVW5pdFByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJDbHVzdGVyVW5pdHNcIl0gPSBcImNsdXN0ZXJVbml0UHJlc01vZGVsc1wiO1xuICAgIC8vIERQSV9DbHVzdGVyRmllbGRBTk9WQSwgaGF2aW5nIHR5cGUgQ2x1c3RlckZpZWxkQU5PVkFQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNsdXN0ZXJGaWVsZEFOT1ZBXCJdID0gXCJjbHVzdGVyRmllbGRBbm92YVwiO1xuICAgIC8vIERQSV9DbHVzdGVyRmllbGRBTk9WQVRhYmxlLCBoYXZpbmcgdHlwZSBDbHVzdGVyRmllbGRBTk9WQVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJDbHVzdGVyRmllbGRBTk9WQVRhYmxlXCJdID0gXCJjbHVzdGVyRmllbGRBbm92YVRhYmxlUHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX0NsdXN0ZXJFZGl0LCBoYXZpbmcgdHlwZSBDbHVzdGVyRWRpdFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ2x1c3RlckVkaXRcIl0gPSBcImNsdXN0ZXJFZGl0UHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX0NsdXN0ZXJEZXNjcmlwdGlvbiwgaGF2aW5nIHR5cGUgQ2x1c3RlckRlc2NyaWJlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDbHVzdGVyRGVzY3JpcHRpb25cIl0gPSBcImNsdXN0ZXJEZXNjcmlwdGlvblwiO1xuICAgIC8vIERQSV9PdXRsaWVyUmVzdWx0cywgaGF2aW5nIHR5cGUgT3V0bGllclJlc3VsdHNQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIk91dGxpZXJSZXN1bHRzXCJdID0gXCJvdXRsaWVyUmVzdWx0c1wiO1xuICAgIC8vIERQSV9Db25uZWN0VG9EYXRhU2VydmVyU291cmNlUmVzdWx0LCBoYXZpbmcgdHlwZSBDb25uZWN0VG9EYXRhU2VydmVyU291cmNlUmVzdWx0UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDb25uZWN0VG9EYXRhU2VydmVyU291cmNlUmVzdWx0XCJdID0gXCJjb25uZWN0VG9EYXRhU2VydmVyU291cmNlUmVzdWx0XCI7XG4gICAgLy8gRFBJX0RhdGFTZXJ2ZXJDb25uZWN0aW9uUmV0dXJuU3RhdHVzLCBoYXZpbmcgdHlwZSBDb25uZWN0VG9EYXRhU2VydmVyU291cmNlUmVzdWx0UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEYXRhU2VydmVyQ29ubmVjdGlvblJldHVyblN0YXR1c1wiXSA9IFwiZGF0YVNlcnZlckNvbm5lY3Rpb25SZXR1cm5TdGF0dXNcIjtcbiAgICAvLyBEUElfV2ViUXVhbnRpdGF0aXZlQ29sb3JEaWFsb2csIGhhdmluZyB0eXBlIFdlYlF1YW50aXRhdGl2ZUNvbG9yRGlhbG9nUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJXZWJRdWFudGl0YXRpdmVDb2xvckRpYWxvZ1wiXSA9IFwicXVhbnRpdGF0aXZlQ29sb3JEaWFsb2dcIjtcbiAgICAvLyBEUElfV2ViQ2F0ZWdvcmljYWxDb2xvckRpYWxvZywgaGF2aW5nIHR5cGUgV2ViQ2F0ZWdvcmljYWxDb2xvckRpYWxvZ1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiV2ViQ2F0ZWdvcmljYWxDb2xvckRpYWxvZ1wiXSA9IFwiY2F0ZWdvcmljYWxDb2xvckRpYWxvZ1wiO1xuICAgIC8vIERQSV9XZWJTYXZlRGF0YXNvdXJjZURpYWxvZywgaGF2aW5nIHR5cGUgV2ViU2F2ZURhdGFzb3VyY2VEaWFsb2dQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIldlYlNhdmVEYXRhc291cmNlRGlhbG9nXCJdID0gXCJzYXZlRGF0YXNvdXJjZURpYWxvZ1wiO1xuICAgIC8vIERQSV9Cb3JkZXJTdHlsZVNwZWMsIGhhdmluZyB0eXBlIFN0eWxlU3BlY1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQm9yZGVyU3R5bGVTcGVjXCJdID0gXCJib3JkZXJTdHlsZVNwZWNcIjtcbiAgICAvLyBEUElfSGFsb1N0eWxlU3BlYywgaGF2aW5nIHR5cGUgU3R5bGVTcGVjUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJIYWxvU3R5bGVTcGVjXCJdID0gXCJoYWxvU3R5bGVTcGVjXCI7XG4gICAgLy8gRFBJX01hcmtzQ29sb3JVYmVyRWZmZWN0cywgaGF2aW5nIHR5cGUgTWFya3NDb2xvclViZXJFZmZlY3RzUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJNYXJrc0NvbG9yVWJlckVmZmVjdHNcIl0gPSBcIm1hcmtzQ29sb3JVYmVyRWZmZWN0c1wiO1xuICAgIC8vIERQSV9DYXRlZ29yaWNhbENvbG9yRW5jb2RpbmcsIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsQ29sb3JFbmNvZGluZ1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ2F0ZWdvcmljYWxDb2xvckVuY29kaW5nXCJdID0gXCJjYXRlZ29yaWNhbENvbG9yRW5jb2RpbmdcIjtcbiAgICAvLyBEUElfQ2F0ZWdvcmljYWxTaGFwZUVuY29kaW5nLCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbFNoYXBlRW5jb2RpbmdQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNhdGVnb3JpY2FsU2hhcGVFbmNvZGluZ1wiXSA9IFwiY2F0ZWdvcmljYWxTaGFwZUVuY29kaW5nXCI7XG4gICAgLy8gRFBJX1NoYXBlUGFsZXR0ZVByZXNNb2RlbCwgaGF2aW5nIHR5cGUgU2hhcGVQYWxldHRlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTaGFwZVBhbGV0dGVQcmVzTW9kZWxcIl0gPSBcInNoYXBlUGFsZXR0ZVByZXNNb2RlbFwiO1xuICAgIC8vIERQSV9TaGFwZVBhbGV0dGVQcmVzTW9kZWxzLCBoYXZpbmcgdHlwZSBTaGFwZVBhbGV0dGVQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiU2hhcGVQYWxldHRlUHJlc01vZGVsc1wiXSA9IFwic2hhcGVQYWxldHRlUHJlc01vZGVsc1wiO1xuICAgIC8vIERQSV9EYXRhU291cmNlRGF0ZVByb3BlcnRpZXMsIGhhdmluZyB0eXBlIERhdGFTb3VyY2VEYXRlUHJvcGVydGllc1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRGF0YVNvdXJjZURhdGVQcm9wZXJ0aWVzXCJdID0gXCJkYXRhc291cmNlRGF0ZVByb3BlcnRpZXNcIjtcbiAgICAvLyBEUElfRGF0ZVByb3BlcnRpZXNEYXRlRm9ybWF0LCBoYXZpbmcgdHlwZSBEYXRlUHJvcGVydGllc0RhdGVGb3JtYXRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGVQcm9wZXJ0aWVzRGF0ZUZvcm1hdFwiXSA9IFwiZGF0ZVByb3BlcnRpZXNEYXRlRm9ybWF0XCI7XG4gICAgLy8gRFBJX0RhdGVQcm9wZXJ0aWVzRGF0ZUZvcm1hdHMsIGhhdmluZyB0eXBlIERhdGVQcm9wZXJ0aWVzRGF0ZUZvcm1hdFByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJEYXRlUHJvcGVydGllc0RhdGVGb3JtYXRzXCJdID0gXCJkYXRlUHJvcGVydGllc0RhdGVGb3JtYXRzXCI7XG4gICAgLy8gRFBJX0hpZXJhcmNoeVNlbGVjdCwgaGF2aW5nIHR5cGUgSGllcmFyY2h5U2VsZWN0TW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkhpZXJhcmNoeVNlbGVjdFwiXSA9IFwiaGllcmFyY2h5U2VsZWN0XCI7XG4gICAgLy8gRFBJX0hpZXJhcmNoeVNlbGVjdE1lbWJlciwgaGF2aW5nIHR5cGUgSGllcmFyY2h5U2VsZWN0TWVtYmVyUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJIaWVyYXJjaHlTZWxlY3RNZW1iZXJcIl0gPSBcImhpZXJhcmNoeVNlbGVjdE1lbWJlclwiO1xuICAgIC8vIERQSV9IaWVyYXJjaHlTZWxlY3RNZW1iZXJMaXN0LCBoYXZpbmcgdHlwZSBIaWVyYXJjaHlTZWxlY3RNZW1iZXJQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiSGllcmFyY2h5U2VsZWN0TWVtYmVyTGlzdFwiXSA9IFwiaGllcmFyY2h5U2VsZWN0TWVtYmVyTGlzdFwiO1xuICAgIC8vIERQSV9IaWVyYXJjaHlTZXREZWZhdWx0TWVtYmVyLCBoYXZpbmcgdHlwZSBIaWVyYXJjaHlTZXREZWZhdWx0TWVtYmVyUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJIaWVyYXJjaHlTZXREZWZhdWx0TWVtYmVyXCJdID0gXCJoaWVyYXJjaHlTZXREZWZhdWx0TWVtYmVyXCI7XG4gICAgLy8gRFBJX1NlbWlTdHJ1Y3RTY2hlbWEsIGhhdmluZyB0eXBlIFNlbWlTdHJ1Y3RTY2hlbWFQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlNlbWlTdHJ1Y3RTY2hlbWFcIl0gPSBcInNlbWlTdHJ1Y3RTY2hlbWFcIjtcbiAgICAvLyBEUElfU2VtaVN0cnVjdFNjaGVtYU1lbWJlciwgaGF2aW5nIHR5cGUgU2VtaVN0cnVjdFNjaGVtYU1lbWJlclByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiU2VtaVN0cnVjdFNjaGVtYU1lbWJlclwiXSA9IFwic2VtaVN0cnVjdFNjaGVtYU1lbWJlclwiO1xuICAgIC8vIERQSV9TZW1pU3RydWN0U2NoZW1hTWVtYmVyTGlzdCwgaGF2aW5nIHR5cGUgU2VtaVN0cnVjdFNjaGVtYU1lbWJlclByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJTZW1pU3RydWN0U2NoZW1hTWVtYmVyTGlzdFwiXSA9IFwic2VtaVN0cnVjdFNjaGVtYU1lbWJlckxpc3RcIjtcbiAgICAvLyBEUElfUGFyYW1ldGVyRWRpdEluZm8sIGhhdmluZyB0eXBlIFBhcmFtZXRlckVkaXRJbmZvUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJQYXJhbWV0ZXJFZGl0SW5mb1wiXSA9IFwicGFyYW1ldGVyRWRpdEluZm9cIjtcbiAgICAvLyBEUElfUHJvZHVjdFBhcmFtZXRlckluZm8sIGhhdmluZyB0eXBlIFByb2R1Y3RQYXJhbWV0ZXJJbmZvUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJQcm9kdWN0UGFyYW1ldGVySW5mb1wiXSA9IFwicHJvZHVjdFBhcmFtZXRlckluZm9cIjtcbiAgICAvLyBEUElfQ2FwdGlvbmVkRGF0YXNvdXJjZUZpZWxkLCBoYXZpbmcgdHlwZSBDYXB0aW9uZWREYXRhc291cmNlSW5mb1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ2FwdGlvbmVkRGF0YXNvdXJjZUZpZWxkXCJdID0gXCJjYXB0aW9uZWREYXRhc291cmNlRmllbGRcIjtcbiAgICAvLyBEUElfQ2FwdGlvbmVkRGF0YXNvdXJjZUZpZWxkcywgaGF2aW5nIHR5cGUgQ2FwdGlvbmVkRGF0YXNvdXJjZUluZm9QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiQ2FwdGlvbmVkRGF0YXNvdXJjZUZpZWxkc1wiXSA9IFwiY2FwdGlvbmVkRGF0YXNvdXJjZUZpZWxkc1wiO1xuICAgIC8vIERQSV9FZGl0ZWRQYXJhbWV0ZXJSYW5nZURvbWFpbiwgaGF2aW5nIHR5cGUgUGFyYW1ldGVyUmFuZ2VEb21haW5QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkVkaXRlZFBhcmFtZXRlclJhbmdlRG9tYWluXCJdID0gXCJlZGl0ZWRQYXJhbWV0ZXJSYW5nZURvbWFpblwiO1xuICAgIC8vIERQSV9QYXJhbWV0ZXJSYW5nZURvbWFpbiwgaGF2aW5nIHR5cGUgUGFyYW1ldGVyUmFuZ2VEb21haW5QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlBhcmFtZXRlclJhbmdlRG9tYWluXCJdID0gXCJwYXJhbWV0ZXJSYW5nZURvbWFpblwiO1xuICAgIC8vIERQSV9QYXJhbWV0ZXJMaXN0RG9tYWluLCBoYXZpbmcgdHlwZSBQYXJhbWV0ZXJMaXN0RG9tYWluUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJQYXJhbWV0ZXJMaXN0RG9tYWluXCJdID0gXCJwYXJhbWV0ZXJMaXN0RG9tYWluXCI7XG4gICAgLy8gRFBJX1BhcmFtZXRlckxpc3REb21haW5NZW1iZXIsIGhhdmluZyB0eXBlIFBhcmFtZXRlckxpc3REb21haW5NZW1iZXJQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlBhcmFtZXRlckxpc3REb21haW5NZW1iZXJcIl0gPSBcInBhcmFtZXRlckxpc3REb21haW5NZW1iZXJcIjtcbiAgICAvLyBEUElfUGFyYW1ldGVyTGlzdERvbWFpbk1lbWJlcnMsIGhhdmluZyB0eXBlIFBhcmFtZXRlckxpc3REb21haW5NZW1iZXJQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiUGFyYW1ldGVyTGlzdERvbWFpbk1lbWJlcnNcIl0gPSBcInBhcmFtZXRlckxpc3REb21haW5NZW1iZXJzXCI7XG4gICAgLy8gRFBJX0luZGV4ZWREb21haW5NZW1iZXIsIGhhdmluZyB0eXBlIEluZGV4ZWREb21haW5NZW1iZXJQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkluZGV4ZWREb21haW5NZW1iZXJcIl0gPSBcImluZGV4ZWREb21haW5NZW1iZXJcIjtcbiAgICAvLyBEUElfSW5kZXhlZERvbWFpbk1lbWJlcnMsIGhhdmluZyB0eXBlIEluZGV4ZWREb21haW5NZW1iZXJQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiSW5kZXhlZERvbWFpbk1lbWJlcnNcIl0gPSBcImluZGV4ZWREb21haW5NZW1iZXJzXCI7XG4gICAgLy8gRFBJX05ld0luZGV4ZWREb21haW5NZW1iZXJzLCBoYXZpbmcgdHlwZSBJbmRleGVkRG9tYWluTWVtYmVyUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIk5ld0luZGV4ZWREb21haW5NZW1iZXJzXCJdID0gXCJuZXdJbmRleGVkRG9tYWluTWVtYmVyc1wiO1xuICAgIC8vIERQSV9QYXJhbWV0ZXJMaXN0RG9tYWluRGlmZiwgaGF2aW5nIHR5cGUgcGFyYW1ldGVyLWxpc3QtZG9tYWluLWRpZmZcbiAgICBQYXJhbWV0ZXJJZFtcIlBhcmFtZXRlckxpc3REb21haW5EaWZmXCJdID0gXCJwYXJhbWV0ZXJMaXN0RG9tYWluRGlmZlwiO1xuICAgIC8vIERQSV9JbmRleFJhbmdlLCBoYXZpbmcgdHlwZSBJbmRleFJhbmdlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJJbmRleFJhbmdlXCJdID0gXCJpbmRleFJhbmdlXCI7XG4gICAgLy8gRFBJX0luZGV4UmFuZ2VzLCBoYXZpbmcgdHlwZSBJbmRleFJhbmdlUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkluZGV4UmFuZ2VzXCJdID0gXCJpbmRleFJhbmdlc1wiO1xuICAgIC8vIERQSV9DYXRlZ29yaWNhbEZpbmQsIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsRmluZFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ2F0ZWdvcmljYWxGaW5kXCJdID0gXCJjYXRlZ29yaWNhbEZpbmRcIjtcbiAgICAvLyBEUElfQ2FwdGlvbmVkRGF0YVZhbHVlLCBoYXZpbmcgdHlwZSBDYXB0aW9uZWREYXRhVmFsdWVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNhcHRpb25lZERhdGFWYWx1ZVwiXSA9IFwiY2FwdGlvbmVkRGF0YVZhbHVlXCI7XG4gICAgLy8gRFBJX1NlbGVjdGVkVmFsdWVDYXB0aW9uLCBoYXZpbmcgdHlwZSBDYXB0aW9uZWREYXRhVmFsdWVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlNlbGVjdGVkVmFsdWVDYXB0aW9uXCJdID0gXCJzZWxlY3RlZFZhbHVlQ2FwdGlvblwiO1xuICAgIC8vIERQSV9EYXRhVmFsdWVDYXB0aW9uTGlzdCwgaGF2aW5nIHR5cGUgQ2FwdGlvbmVkRGF0YVZhbHVlUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFWYWx1ZUNhcHRpb25MaXN0XCJdID0gXCJkYXRhVmFsdWVDYXRwaW9uTGlzdFwiO1xuICAgIC8vIERQSV9SYW5nZURhdGFWYWx1ZSwgaGF2aW5nIHR5cGUgUmFuZ2VEYXRhVmFsdWVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlJhbmdlRGF0YVZhbHVlXCJdID0gXCJyYW5nZURhdGFWYWx1ZVwiO1xuICAgIC8vIERQSV9QYXJhbWV0ZXJSYW5nZURhdGFWYWx1ZSwgaGF2aW5nIHR5cGUgUmFuZ2VEYXRhVmFsdWVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlBhcmFtZXRlclJhbmdlRGF0YVZhbHVlXCJdID0gXCJwYXJhbWV0ZXJSYW5nZURhdGFWYWx1ZVwiO1xuICAgIC8vIERQSV9EYXRhVmFsdWVSYW5nZUNhcHRpb25zLCBoYXZpbmcgdHlwZSBEYXRhVmFsdWVSYW5nZUNhcHRpb25zUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJEYXRhVmFsdWVSYW5nZUNhcHRpb25zXCJdID0gXCJkYXRhVmFsdWVSYW5nZUNhcHRpb25zXCI7XG4gICAgLy8gRFBJX0luZGVwZW5kZW50RGltZW5zaW9uLCBoYXZpbmcgdHlwZSBJbmRlcGVuZGVudERpbWVuc2lvblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiSW5kZXBlbmRlbnREaW1lbnNpb25cIl0gPSBcImluZGVwZW5kZW50RGltZW5zaW9uXCI7XG4gICAgLy8gRFBJX0luZGVwZW5kZW50RGltZW5zaW9ucywgaGF2aW5nIHR5cGUgSW5kZXBlbmRlbnREaW1lbnNpb25QcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiSW5kZXBlbmRlbnREaW1lbnNpb25zXCJdID0gXCJpbmRlcGVuZGVudERpbWVuc2lvbnNcIjtcbiAgICAvLyBEUElfQXR0cmlidXRlUGVyc3BlY3RpdmUsIGhhdmluZyB0eXBlIFBlcnNwZWN0aXZlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJBdHRyaWJ1dGVQZXJzcGVjdGl2ZVwiXSA9IFwiYXR0cmlidXRlUGVyc3BlY3RpdmVcIjtcbiAgICAvLyBEUElfQ3ViZVBlcnNwZWN0aXZlLCBoYXZpbmcgdHlwZSBQZXJzcGVjdGl2ZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ3ViZVBlcnNwZWN0aXZlXCJdID0gXCJjdWJlUGVyc3BlY3RpdmVcIjtcbiAgICAvLyBEUElfQXR0cmlidXRlUGVyc3BlY3RpdmVzLCBoYXZpbmcgdHlwZSBQZXJzcGVjdGl2ZVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJBdHRyaWJ1dGVQZXJzcGVjdGl2ZXNcIl0gPSBcImF0dHJpYnV0ZVBlcnNwZWN0aXZlc1wiO1xuICAgIC8vIERQSV9DYWxjdWxhdGVkTWVtYmVyc0ZvckVkaXRpbmdQcmVzTW9kZWwsIGhhdmluZyB0eXBlIEVkaXRDYWxjdWxhdGVkTWVtYmVyc1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ2FsY3VsYXRlZE1lbWJlcnNGb3JFZGl0aW5nUHJlc01vZGVsXCJdID0gXCJjYWxjdWxhdGVkTWVtYmVyc0ZvckVkaXRpbmdQcmVzbW9kZWxcIjtcbiAgICAvLyBEUElfQ2FsY3VsYXRlZE1lbWJlciwgaGF2aW5nIHR5cGUgQ2FsY3VsYXRlZE1lbWJlclByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ2FsY3VsYXRlZE1lbWJlclwiXSA9IFwiY2FsY3VsYXRlZE1lbWJlclwiO1xuICAgIC8vIERQSV9OZXdDYWxjdWxhdGVkTWVtYmVyLCBoYXZpbmcgdHlwZSBDYWxjdWxhdGVkTWVtYmVyUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJOZXdDYWxjdWxhdGVkTWVtYmVyXCJdID0gXCJuZXdDYWxjdWxhdGVkTWVtYmVyXCI7XG4gICAgLy8gRFBJX1VwZGF0ZWRDYWxjdWxhdGVkTWVtYmVyLCBoYXZpbmcgdHlwZSBDYWxjdWxhdGVkTWVtYmVyUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJVcGRhdGVkQ2FsY3VsYXRlZE1lbWJlclwiXSA9IFwidXBkYXRlZENhbGN1bGF0ZWRNZW1iZXJcIjtcbiAgICAvLyBEUElfQ2FsY3VsYXRlZE1lbWJlcnNMaXN0LCBoYXZpbmcgdHlwZSBDYWxjdWxhdGVkTWVtYmVyUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkNhbGN1bGF0ZWRNZW1iZXJzTGlzdFwiXSA9IFwiY2FsY3VsYXRlZE1lbWJlcnNMaXN0XCI7XG4gICAgLy8gRFBJX0NhbGN1bGF0ZWRNZW1iZXJIaWVyYXJjaHlJdGVtLCBoYXZpbmcgdHlwZSBDYWxjdWxhdGVkTWVtYmVySGllcmFyY2h5SXRlbVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQ2FsY3VsYXRlZE1lbWJlckhpZXJhcmNoeUl0ZW1cIl0gPSBcImNhbGN1bGF0ZWRNZW1iZXJIaWVyYXJjaHlJdGVtXCI7XG4gICAgLy8gRFBJX0NhbGN1bGF0ZWRNZW1iZXJIaWVyYXJjaHlMaXN0LCBoYXZpbmcgdHlwZSBDYWxjdWxhdGVkTWVtYmVySGllcmFyY2h5SXRlbVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJDYWxjdWxhdGVkTWVtYmVySGllcmFyY2h5TGlzdFwiXSA9IFwiY2FsY3VsYXRlZE1lbWJlckhpZXJhcmNoeUxpc3RcIjtcbiAgICAvLyBEUElfU3VtbWFyeUNhcmRQcmVzTW9kZWwsIGhhdmluZyB0eXBlIFN1bW1hcnlDYXJkUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTdW1tYXJ5Q2FyZFByZXNNb2RlbFwiXSA9IFwic3VtbWFyeUNhcmRcIjtcbiAgICAvLyBEUElfTWVhc3VyZVN1bW1hcnksIGhhdmluZyB0eXBlIE1lYXN1cmVTdW1tYXJ5UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJNZWFzdXJlU3VtbWFyeVwiXSA9IFwibWVhc3VyZVN1bW1hcnlcIjtcbiAgICAvLyBEUElfTWVhc3VyZVN1bW1hcnlMaXN0LCBoYXZpbmcgdHlwZSBNZWFzdXJlU3VtbWFyeVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJNZWFzdXJlU3VtbWFyeUxpc3RcIl0gPSBcIm1lYXN1cmVTdW1tYXJ5TGlzdFwiO1xuICAgIC8vIERQSV9Bbm5vdGF0aW9uUHJlc01vZGVsLCBoYXZpbmcgdHlwZSBBbm5vdGF0aW9uUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJBbm5vdGF0aW9uUHJlc01vZGVsXCJdID0gXCJhbm5vdGF0aW9uXCI7XG4gICAgLy8gRFBJX0Fubm90YXRpb25MaXN0LCBoYXZpbmcgdHlwZSBBbm5vdGF0aW9uUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkFubm90YXRpb25MaXN0XCJdID0gXCJhbm5vdGF0aW9uTGlzdFwiO1xuICAgIC8vIERQSV9Bbm5vdGF0aW9uU2hhcGVTdHlsZSwgaGF2aW5nIHR5cGUgQW5ub3RhdGlvblNoYXBlU3R5bGVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkFubm90YXRpb25TaGFwZVN0eWxlXCJdID0gXCJhbm5vdGF0aW9uU2hhcGVTdHlsZVwiO1xuICAgIC8vIERQSV9UZWxlbWV0cnksIGhhdmluZyB0eXBlIFRlbGVtZXRyeVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVGVsZW1ldHJ5XCJdID0gXCJ0ZWxlbWV0cnlcIjtcbiAgICAvLyBEUElfRGF0YVNvdXJjZVRlbGVtZXRyeSwgaGF2aW5nIHR5cGUgRGF0YVNvdXJjZVRlbGVtZXRyeVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiRGF0YVNvdXJjZVRlbGVtZXRyeVwiXSA9IFwiZGF0YVNvdXJjZVRlbGVtZXRyeVwiO1xuICAgIC8vIERQSV9EYXRhU291cmNlVGVsZW1ldHJ5TGlzdCwgaGF2aW5nIHR5cGUgRGF0YVNvdXJjZVRlbGVtZXRyeVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJEYXRhU291cmNlVGVsZW1ldHJ5TGlzdFwiXSA9IFwiZGF0YVNvdXJjZVRlbGVtZXRyeUxpc3RcIjtcbiAgICAvLyBEUElfVmlzdWFsU3BlY2lmaWNhdGlvblRlbGVtZXRyeSwgaGF2aW5nIHR5cGUgVmlzdWFsU3BlY2lmaWNhdGlvblRlbGVtZXRyeVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVmlzdWFsU3BlY2lmaWNhdGlvblRlbGVtZXRyeVwiXSA9IFwidmlzdWFsU3BlY2lmaWNhdGlvblRlbGVtZXRyeVwiO1xuICAgIC8vIERQSV9WaXN1YWxTcGVjaWZpY2F0aW9uVGVsZW1ldHJ5TGlzdCwgaGF2aW5nIHR5cGUgVmlzdWFsU3BlY2lmaWNhdGlvblRlbGVtZXRyeVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJWaXN1YWxTcGVjaWZpY2F0aW9uVGVsZW1ldHJ5TGlzdFwiXSA9IFwidmlzdWFsU3BlY2lmaWNhdGlvblRlbGVtZXRyeUxpc3RcIjtcbiAgICAvLyBEUElfVW5kZXJseWluZ0RhdGFUYWJsZSwgaGF2aW5nIHR5cGUgVW5kZXJseWluZ0RhdGFUYWJsZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVW5kZXJseWluZ0RhdGFUYWJsZVwiXSA9IFwidW5kZXJseWluZ0RhdGFUYWJsZVwiO1xuICAgIC8vIERQSV9VbmRlcmx5aW5nRGF0YVRhYmxlcywgaGF2aW5nIHR5cGUgVW5kZXJseWluZ0RhdGFUYWJsZVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJVbmRlcmx5aW5nRGF0YVRhYmxlc1wiXSA9IFwidW5kZXJseWluZ0RhdGFUYWJsZXNcIjtcbiAgICAvLyBEUElfVW5kZXJseWluZ0RhdGFUYWJsZUNvbHVtbiwgaGF2aW5nIHR5cGUgVW5kZXJseWluZ0RhdGFUYWJsZUNvbHVtblByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVW5kZXJseWluZ0RhdGFUYWJsZUNvbHVtblwiXSA9IFwidW5kZXJseWluZ0RhdGFUYWJsZUNvbHVtblwiO1xuICAgIC8vIERQSV9VbmRlcmx5aW5nRGF0YVRhYmxlQ29sdW1ucywgaGF2aW5nIHR5cGUgVW5kZXJseWluZ0RhdGFUYWJsZUNvbHVtblByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJVbmRlcmx5aW5nRGF0YVRhYmxlQ29sdW1uc1wiXSA9IFwidW5kZXJseWluZ0RhdGFUYWJsZUNvbHVtbnNcIjtcbiAgICAvLyBEUElfUGFnZUNhY2hlSUQsIGhhdmluZyB0eXBlIFBhZ2VDYWNoZUlEUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJQYWdlQ2FjaGVJRFwiXSA9IFwicGFnZUNhY2hlSWRcIjtcbiAgICAvLyBEUElfUmVsYXRpb25hbFBhZ2VDYWNoZUlELCBoYXZpbmcgdHlwZSBQYWdlQ2FjaGVJRFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUmVsYXRpb25hbFBhZ2VDYWNoZUlEXCJdID0gXCJyZWxhdGlvbmFsUGFnZUNhY2hlSWRcIjtcbiAgICAvLyBEUElfU2VhcmNoUmVzdWx0c0NhY2hlSUQsIGhhdmluZyB0eXBlIFBhZ2VDYWNoZUlEUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJTZWFyY2hSZXN1bHRzQ2FjaGVJRFwiXSA9IFwic2VhcmNoUmVzdWx0c0NhY2hlSWRcIjtcbiAgICAvLyBEUElfUGFnZUluZm8sIGhhdmluZyB0eXBlIFBhZ2VJbmZvUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJQYWdlSW5mb1wiXSA9IFwicGFnZUluZm9cIjtcbiAgICAvLyBEUElfUm93Q29sUGFpciwgaGF2aW5nIHR5cGUgUm93Q29sUGFpclByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUm93Q29sUGFpclwiXSA9IFwicm93Q29sUGFpclwiO1xuICAgIC8vIERQSV9Ub3BMZWZ0Um93Q29sLCBoYXZpbmcgdHlwZSBSb3dDb2xQYWlyUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJUb3BMZWZ0Um93Q29sXCJdID0gXCJ0b3BMZWZ0Um93Q29sXCI7XG4gICAgLy8gRFBJX0JvdFJpZ2h0Um93Q29sLCBoYXZpbmcgdHlwZSBSb3dDb2xQYWlyUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJCb3RSaWdodFJvd0NvbFwiXSA9IFwiYm90UmlnaHRSb3dDb2xcIjtcbiAgICAvLyBEUElfUm93Q29sUGFpcnMsIGhhdmluZyB0eXBlIFJvd0NvbFBhaXJQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiUm93Q29sUGFpcnNcIl0gPSBcInJvd0NvbFBhaXJzXCI7XG4gICAgLy8gRFBJX1RhYmxlVmlld0NhY2hlSW5mbywgaGF2aW5nIHR5cGUgVGFibGVWaWV3Q2FjaGVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlRhYmxlVmlld0NhY2hlSW5mb1wiXSA9IFwidGFibGVWaWV3Q2FjaGVJbmZvXCI7XG4gICAgLy8gRFBJX1RhYmxlVmlld0luZm8sIGhhdmluZyB0eXBlIHRhYmxlVmlld0luZm9QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlRhYmxlVmlld0luZm9cIl0gPSBcInRhYmxlVmlld0luZm9cIjtcbiAgICAvLyBEUElfVGFibGVWaWV3Q29sdW1uSW5mbywgaGF2aW5nIHR5cGUgVGFibGVWaWV3Q29sdW1uSW5mb1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiVGFibGVWaWV3Q29sdW1uSW5mb1wiXSA9IFwidGFibGVWaWV3Q29sdW1uSW5mb1wiO1xuICAgIC8vIERQSV9UYWJsZVZpZXdDb2x1bW5zLCBoYXZpbmcgdHlwZSBUYWJsZVZpZXdDb2x1bW5JbmZvUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlRhYmxlVmlld0NvbHVtbnNcIl0gPSBcInRhYmxlVmlld0NvbHVtbnNcIjtcbiAgICAvLyBEUElfVGFibGVWaWV3UGFnZUl0ZW0sIGhhdmluZyB0eXBlIFRhYmxlVmlld1BhZ2VJdGVtUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJUYWJsZVZpZXdQYWdlSXRlbVwiXSA9IFwidGFibGVWaWV3UGFnZUl0ZW1cIjtcbiAgICAvLyBEUElfVGFibGVWaWV3UGFnZUNvbHVtbnMsIGhhdmluZyB0eXBlIFRhYmxlVmlld1BhZ2VJdGVtUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlRhYmxlVmlld1BhZ2VDb2x1bW5zXCJdID0gXCJ0YWJsZVZpZXdQYWdlQ29sdW1uc1wiO1xuICAgIC8vIERQSV9UYWJsZVZpZXdQYWdlUm93LCBoYXZpbmcgdHlwZSBUYWJsZVZpZXdQYWdlUm93UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJUYWJsZVZpZXdQYWdlUm93XCJdID0gXCJ0YWJsZVZpZXdQYWdlUm93XCI7XG4gICAgLy8gRFBJX1RhYmxlVmlld1BhZ2VSb3dzLCBoYXZpbmcgdHlwZSBUYWJsZVZpZXdQYWdlUm93UHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIlRhYmxlVmlld1BhZ2VSb3dzXCJdID0gXCJ0YWJsZVZpZXdQYWdlUm93c1wiO1xuICAgIC8vIERQSV9UYWJsZVZpZXdQYWdlLCBoYXZpbmcgdHlwZSBUYWJsZVZpZXdQYWdlUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJUYWJsZVZpZXdQYWdlXCJdID0gXCJ0YWJsZVZpZXdQYWdlXCI7XG4gICAgLy8gRFBJX0NhdGVnb3JpY2FsVmFsdWVQaWNrZXIsIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsVmFsdWVQaWNrZXJQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNhdGVnb3JpY2FsVmFsdWVQaWNrZXJcIl0gPSBcImNhdGVnb3JpY2FsVmFsdWVQaWNrZXJcIjtcbiAgICAvLyBEUElfQW5ub3RhdGlvblNoYXBlQm9yZGVyU3R5bGUsIGhhdmluZyB0eXBlIExpbmVTdHlsZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQW5ub3RhdGlvblNoYXBlQm9yZGVyU3R5bGVcIl0gPSBcImFubm90YXRpb25TaGFwZUJvcmRlclN0eWxlXCI7XG4gICAgLy8gRFBJX0Fub3RhdGlvblNoYXBlU3Ryb2tlU3R5bGUsIGhhdmluZyB0eXBlIExpbmVTdHlsZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQW5vdGF0aW9uU2hhcGVTdHJva2VTdHlsZVwiXSA9IFwiYW5ub3RhdGlvblNoYXBlU3Ryb2tlU3R5bGVcIjtcbiAgICAvLyBEUElfQ2F0ZWdvcmljYWxCaW5FZGl0b3JQcmVzTW9kZWwsIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsQmluRWRpdG9yUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJDYXRlZ29yaWNhbEJpbkVkaXRvclByZXNNb2RlbFwiXSA9IFwiY2F0ZWdvcmljYWxCaW5FZGl0b3JcIjtcbiAgICAvLyBEUElfQ2F0ZWdvcmljYWxCaW5JdGVtLCBoYXZpbmcgdHlwZSBDYXRlZ29yaWNhbEJpbkl0ZW1QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkNhdGVnb3JpY2FsQmluSXRlbVwiXSA9IFwiY2F0ZWdvcmljYWxCaW5JdGVtUHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX0NhdGVnb3JpY2FsQmluSXRlbXMsIGhhdmluZyB0eXBlIENhdGVnb3JpY2FsQmluSXRlbVByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJDYXRlZ29yaWNhbEJpbkl0ZW1zXCJdID0gXCJjYXRlZ29yaWNhbEJpbkl0ZW1QcmVzTW9kZWxzXCI7XG4gICAgLy8gRFBJX01lYXN1cmVQaWNrZXJGaWVsZEluZm8sIGhhdmluZyB0eXBlIE1lYXN1cmVQaWNrZXJGaWVsZEluZm9QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIk1lYXN1cmVQaWNrZXJGaWVsZEluZm9cIl0gPSBcIm1lYXN1cmVQaWNrZXJGaWVsZEluZm9cIjtcbiAgICAvLyBEUElfTWVhc3VyZVBpY2tlckZpZWxkcywgaGF2aW5nIHR5cGUgTWVhc3VyZVBpY2tlckZpZWxkSW5mb1ByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJNZWFzdXJlUGlja2VyRmllbGRzXCJdID0gXCJtZWFzdXJlUGlja2VyRmllbGRzXCI7XG4gICAgLy8gRFBJX01lYXN1cmVBZ2dyZWdhdGlvbkluZm8sIGhhdmluZyB0eXBlIE1lYXN1cmVBZ2dyZWdhdGlvbkluZm9QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIk1lYXN1cmVBZ2dyZWdhdGlvbkluZm9cIl0gPSBcIm1lYXN1cmVBZ2dyZWdhdGlvbkluZm9cIjtcbiAgICAvLyBEUElfTWVhc3VyZUFnZ3JlZ2F0aW9ucywgaGF2aW5nIHR5cGUgTWVhc3VyZUFnZ3JlZ2F0aW9uSW5mb1ByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJNZWFzdXJlQWdncmVnYXRpb25zXCJdID0gXCJtZWFzdXJlQWdncmVnYXRpb25zXCI7XG4gICAgLy8gRFBJX1R1cGxlUGFpciwgaGF2aW5nIHR5cGUgVHVwbGVQYWlyUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJUdXBsZVBhaXJcIl0gPSBcInR1cGxlUGFpclwiO1xuICAgIC8vIERQSV9EaW1lbnNpb25Cb3VuZCwgaGF2aW5nIHR5cGUgRGltZW5zaW9uQm91bmRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkRpbWVuc2lvbkJvdW5kXCJdID0gXCJkaW1lbnNpb25Cb3VuZFwiO1xuICAgIC8vIERQSV9QZXJzcGVjdGl2ZUJvdW5kcywgaGF2aW5nIHR5cGUgRGltZW5zaW9uQm91bmRQcmVzTW9kZWxbXVxuICAgIFBhcmFtZXRlcklkW1wiUGVyc3BlY3RpdmVCb3VuZHNcIl0gPSBcInBlcnNwZWN0aXZlQm91bmRzXCI7XG4gICAgLy8gRFBJX0ZpbHRlclBlcnNwZWN0aXZlSW5mb1ByZXNNb2RlbCwgaGF2aW5nIHR5cGUgRmlsdGVyUGVyc3BlY3RpdmVJbmZvUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJGaWx0ZXJQZXJzcGVjdGl2ZUluZm9QcmVzTW9kZWxcIl0gPSBcImZpbHRlclBlcnNwZWN0aXZlSW5mb1wiO1xuICAgIC8vIERQSV9UYWJsZVJlbGV2YW5jZSwgaGF2aW5nIHR5cGUgVGFibGVSZWxldmFuY2VQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlRhYmxlUmVsZXZhbmNlXCJdID0gXCJ0YWJsZVJlbGV2YW5jZVwiO1xuICAgIC8vIERQSV9BZGRJblJlZ2lzdHJhdGlvblByZXNNb2RlbCwgaGF2aW5nIHR5cGUgQWRkSW5SZWdpc3RyYXRpb25QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkFkZEluUmVnaXN0cmF0aW9uUHJlc01vZGVsXCJdID0gXCJhZGRJblJlZ2lzdHJhdGlvblByZXNNb2RlbFwiO1xuICAgIC8vIERQSV9BZGRJblJlZ2lzdHJhdGlvblByZXNNb2RlbExpc3QsIGhhdmluZyB0eXBlIEFkZEluUmVnaXN0cmF0aW9uUHJlc01vZGVsW11cbiAgICBQYXJhbWV0ZXJJZFtcIkFkZEluUmVnaXN0cmF0aW9uUHJlc01vZGVsTGlzdFwiXSA9IFwiYWRkSW5SZWdpc3RyYXRpb25QcmVzTW9kZWxMaXN0XCI7XG4gICAgLy8gRFBJX0FkZEluRGFzaGJvYXJkQXV0aG9yaW5nV2lkZ2V0LCBoYXZpbmcgdHlwZSBBZGRJbkRhc2hib2FyZFdpZGdldFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQWRkSW5EYXNoYm9hcmRBdXRob3JpbmdXaWRnZXRcIl0gPSBcImFkZEluRGFzaGJvYXJkQXV0aG9yaW5nV2lkZ2V0UHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX0FkZEluSW5zdGFuY2UsIGhhdmluZyB0eXBlIEFkZEluSW5zdGFuY2VQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkFkZEluSW5zdGFuY2VcIl0gPSBcImFkZEluSW5zdGFuY2VQcmVzTW9kZWxcIjtcbiAgICAvLyBEUElfQWRkSW5Mb2NhdG9yLCBoYXZpbmcgdHlwZSBBZGRJbkxvY2F0b3JQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkFkZEluTG9jYXRvclwiXSA9IFwiYWRkSW5Mb2NhdG9yUHJlc01vZGVsXCI7XG4gICAgLy8gRFBJX0FkZEluQ29udGV4dCwgaGF2aW5nIHR5cGUgQWRkSW5Db250ZXh0XG4gICAgUGFyYW1ldGVySWRbXCJBZGRJbkNvbnRleHRcIl0gPSBcImFkZEluQ29udGV4dFwiO1xuICAgIC8vIERQSV9BZGRJbk1vZGUsIGhhdmluZyB0eXBlIEFkZEluTW9kZVxuICAgIFBhcmFtZXRlcklkW1wiQWRkSW5Nb2RlXCJdID0gXCJhZGRJbk1vZGVcIjtcbiAgICAvLyBEUElfU2V0QXhpc1JhbmdlUmVzdWx0LCBoYXZpbmcgdHlwZSBTZXRBeGlzUmFuZ2VSZXN1bHRcbiAgICBQYXJhbWV0ZXJJZFtcIlNldEF4aXNSYW5nZVJlc3VsdFwiXSA9IFwic2V0QXhpc1JhbmdlUmVzdWx0XCI7XG4gICAgLy8gRFBJX1NldFRpY2tPcmlnaW5SZXN1bHQsIGhhdmluZyB0eXBlIFNldFRpY2tPcmlnaW5SZXN1bHRcbiAgICBQYXJhbWV0ZXJJZFtcIlNldFRpY2tPcmlnaW5SZXN1bHRcIl0gPSBcInNldFRpY2tPcmlnaW5SZXN1bHRcIjtcbiAgICAvLyBEUElfU2V0VGlja1NwYWNpbmdSZXN1bHQsIGhhdmluZyB0eXBlIFNldFRpY2tTcGFjaW5nUmVzdWx0XG4gICAgUGFyYW1ldGVySWRbXCJTZXRUaWNrU3BhY2luZ1Jlc3VsdFwiXSA9IFwic2V0VGlja1NwYWNpbmdSZXN1bHRcIjtcbiAgICAvLyBEUElfQXhpc0V4dGVudFN0YXJ0VHlwZSwgaGF2aW5nIHR5cGUgQXhpc0V4dGVudFR5cGVcbiAgICBQYXJhbWV0ZXJJZFtcIkF4aXNFeHRlbnRTdGFydFR5cGVcIl0gPSBcImF4aXNFeHRlbnRTdGFydFR5cGVcIjtcbiAgICAvLyBEUElfQXhpc0V4dGVudEVuZFR5cGUsIGhhdmluZyB0eXBlIEF4aXNFeHRlbnRUeXBlXG4gICAgUGFyYW1ldGVySWRbXCJBeGlzRXh0ZW50RW5kVHlwZVwiXSA9IFwiYXhpc0V4dGVudEVuZFR5cGVcIjtcbiAgICAvLyBEUElfQXhpc0V4dGVudHNUeXBlLCBoYXZpbmcgdHlwZSBBeGlzRXh0ZW50VHlwZVxuICAgIFBhcmFtZXRlcklkW1wiQXhpc0V4dGVudHNUeXBlXCJdID0gXCJheGlzRXh0ZW50c1R5cGVcIjtcbiAgICAvLyBEUElfQWRkSW5FbnZpcm9ubWVudCwgaGF2aW5nIHR5cGUgQWRkSW5FbnZpcm9ubWVudFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQWRkSW5FbnZpcm9ubWVudFwiXSA9IFwiYWRkSW5FbnZpcm9ubWVudFByZXNNb2RlbFwiO1xuICAgIC8vIERQSV9BZGRJbkRhc2hib2FyZEluZm8sIGhhdmluZyB0eXBlIEFkZEluRGFzaGJvYXJkSW5mb1ByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiQWRkSW5EYXNoYm9hcmRJbmZvXCJdID0gXCJhZGRJbkRhc2hib2FyZEluZm9QcmVzTW9kZWxcIjtcbiAgICAvLyBEUElfQWRkSW5TZXR0aW5nc0luZm8sIGhhdmluZyB0eXBlIEFkZEluU2V0dGluZ3NJbmZvUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJBZGRJblNldHRpbmdzSW5mb1wiXSA9IFwiYWRkSW5TZXR0aW5nc0luZm9cIjtcbiAgICAvLyBEUElfQWRkSW5Cb290c3RyYXBJbmZvLCBoYXZpbmcgdHlwZSBBZGRJbkJvb3RzdHJhcEluZm9QcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIkFkZEluQm9vdHN0cmFwSW5mb1wiXSA9IFwiYWRkSW5Cb290c3RyYXBJbmZvXCI7XG4gICAgLy8gRFBJX0FkZEluRGVidWdTZXR0aW5ncywgaGF2aW5nIHR5cGUgQWRkSW5EZWJ1Z1NldHRpbmdzUHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJBZGRJbkRlYnVnU2V0dGluZ3NcIl0gPSBcImFkZEluRGVidWdTZXR0aW5nc1wiO1xuICAgIC8vIERQSV9SaWNoVGV4dCwgaGF2aW5nIHR5cGUgUmljaFRleHRQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlJpY2hUZXh0XCJdID0gXCJyaWNoVGV4dFwiO1xuICAgIC8vIERQSV9SaWNoVGV4dEtleXdvcmRTdWJMaXN0LCBoYXZpbmcgdHlwZSBSaWNoVGV4dEtleXdvcmRTdWJMaXN0UHJlc01vZGVsXG4gICAgUGFyYW1ldGVySWRbXCJSaWNoVGV4dEtleXdvcmRTdWJMaXN0XCJdID0gXCJyaWNoVGV4dEtleXdvcmRzU3VibGlzdFwiO1xuICAgIC8vIERQSV9SaWNoVGV4dEtleXdvcmRTdWJMaXN0cywgaGF2aW5nIHR5cGUgUmljaFRleHRLZXl3b3JkU3ViTGlzdFByZXNNb2RlbFtdXG4gICAgUGFyYW1ldGVySWRbXCJSaWNoVGV4dEtleXdvcmRTdWJMaXN0c1wiXSA9IFwicmljaFRleHRLZXl3b3JkU3VibGlzdHNcIjtcbiAgICAvLyBEUElfUmljaFRleHRLZXl3b3JkTGlzdCwgaGF2aW5nIHR5cGUgUmljaFRleHRLZXl3b3JkTGlzdFByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUmljaFRleHRLZXl3b3JkTGlzdFwiXSA9IFwicmljaFRleHRLZXl3b3Jkc0xpc3RcIjtcbiAgICAvLyBEUElfUmljaFRleHRCbG9ja1N0eWxlLCBoYXZpbmcgdHlwZSBSaWNoVGV4dEJsb2NrU3R5bGVQcmVzTW9kZWxcbiAgICBQYXJhbWV0ZXJJZFtcIlJpY2hUZXh0QmxvY2tTdHlsZVwiXSA9IFwicmljaFRleHRCbG9ja1N0eWxlXCI7XG4gICAgLy8gRFBJX1JpY2hUZXh0Q29udGVudFN0eWxlLCBoYXZpbmcgdHlwZSBSaWNoVGV4dENvbnRlbnRTdHlsZVByZXNNb2RlbFxuICAgIFBhcmFtZXRlcklkW1wiUmljaFRleHRDb250ZW50U3R5bGVcIl0gPSBcInJpY2hUZXh0Q29udGVudFN0eWxlXCI7XG59KShQYXJhbWV0ZXJJZCA9IGV4cG9ydHMuUGFyYW1ldGVySWQgfHwgKGV4cG9ydHMuUGFyYW1ldGVySWQgPSB7fSkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9UGFyYW1zLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogRDovZGV2L2pzLWFwaS9hcGktY29yZS9saWIvZ2VuLXNyYy9wcmVzbGF5ZXIvUGFyYW1zLmpzXG4gKiogbW9kdWxlIGlkID0gMTBcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIGFwaV9pbnRlcm5hbF9jb250cmFjdF8xID0gcmVxdWlyZShcIkB0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdFwiKTtcbnZhciBDb21tYW5kSWRzXzEgPSByZXF1aXJlKFwiLi4vLi4vZ2VuLXNyYy9wcmVzbGF5ZXIvQ29tbWFuZElkc1wiKTtcbnZhciBQYXJhbXNfMSA9IHJlcXVpcmUoXCIuLi8uLi9nZW4tc3JjL3ByZXNsYXllci9QYXJhbXNcIik7XG52YXIgQ29tbWFuZE1hcHBpbmdSZWdpc3RyeV8xID0gcmVxdWlyZShcIi4vQ29tbWFuZE1hcHBpbmdSZWdpc3RyeVwiKTtcbnZhciBDb21tYW5kUmVnaXN0cmF0aW9uXzEgPSByZXF1aXJlKFwiLi9Db21tYW5kUmVnaXN0cmF0aW9uXCIpO1xudmFyIENvbW1hbmRNYXBwaW5nUmVnaXN0cnlGYWN0b3J5ID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBDb21tYW5kTWFwcGluZ1JlZ2lzdHJ5RmFjdG9yeSgpIHtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhbmQgcG9wdWxhdGVzIGEgbmV3IENvbW1hbmRNYXBwaW5nUmVnaXN0cnkgZm9yIHRoZSBzcGVjaWZpYyB2ZXJzaW9uIG51bWJlciByZXF1ZXN0ZWRcbiAgICAgKlxuICAgICAqIEBzdGF0aWNcbiAgICAgKiBAcGFyYW0ge1ZlcnNpb25OdW1iZXJ9IHZlcnNpb25OdW1iZXJcbiAgICAgKiBAcmV0dXJucyB7Q29tbWFuZE1hcHBpbmdSZWdpc3RyeX1cbiAgICAgKiBAbWVtYmVyb2YgQ29tbWFuZE1hcHBpbmdSZWdpc3RyeUZhY3RvcnlcbiAgICAgKi9cbiAgICBDb21tYW5kTWFwcGluZ1JlZ2lzdHJ5RmFjdG9yeS5jcmVhdGVDb21tYW5kTWFwcGluZ1JlZ2lzdHJ5ID0gZnVuY3Rpb24gKHZlcnNpb25OdW1iZXIpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBDb21tYW5kTWFwcGluZ1JlZ2lzdHJ5XzEuQ29tbWFuZE1hcHBpbmdSZWdpc3RyeSgpO1xuICAgICAgICByZXN1bHQuYWRkQ29tbWFuZChuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbl8xLkNvbW1hbmRSZWdpc3RyYXRpb24oYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuVmVyYklkLkluaXRpYWxpemVBZGRJbiwgQ29tbWFuZElkc18xLkRvY0NvbW1hbmRzLkluaXRpYWxpemVBZGRJbkluc3RhbmNlLCBbbmV3IENvbW1hbmRSZWdpc3RyYXRpb25fMS5Db21tYW5kUGFyYW1ldGVyKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLkFkZEluTG9jYXRvciwgUGFyYW1zXzEuUGFyYW1ldGVySWQuQWRkSW5Mb2NhdG9yKV0sIG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5BZGRJbkJvb3RzdHJhcEluZm8sIFBhcmFtc18xLlBhcmFtZXRlcklkLkFkZEluQm9vdHN0cmFwSW5mbykpKTtcbiAgICAgICAgcmVzdWx0LmFkZENvbW1hbmQobmV3IENvbW1hbmRSZWdpc3RyYXRpb25fMS5Db21tYW5kUmVnaXN0cmF0aW9uKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlZlcmJJZC5HZXRVbmRlcmx5aW5nRGF0YSwgQ29tbWFuZElkc18xLkRvY0NvbW1hbmRzLkdldFVuZGVybHlpbmdEYXRhLCBbbmV3IENvbW1hbmRSZWdpc3RyYXRpb25fMS5Db21tYW5kUGFyYW1ldGVyKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLklnbm9yZUFsaWFzZXMsIFBhcmFtc18xLlBhcmFtZXRlcklkLklnbm9yZUFsaWFzZXMpLFxuICAgICAgICAgICAgbmV3IENvbW1hbmRSZWdpc3RyYXRpb25fMS5Db21tYW5kUGFyYW1ldGVyKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLklnbm9yZVNlbGVjdGlvbiwgUGFyYW1zXzEuUGFyYW1ldGVySWQuSWdub3JlU2VsZWN0aW9uKSxcbiAgICAgICAgICAgIG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5JbmNsdWRlQWxsQ29sdW1ucywgUGFyYW1zXzEuUGFyYW1ldGVySWQuSW5jbHVkZUFsbENvbHVtbnMpLFxuICAgICAgICAgICAgbmV3IENvbW1hbmRSZWdpc3RyYXRpb25fMS5Db21tYW5kUGFyYW1ldGVyKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLk1heFJvd3MsIFBhcmFtc18xLlBhcmFtZXRlcklkLk1heFJvd3MpLFxuICAgICAgICAgICAgbmV3IENvbW1hbmRSZWdpc3RyYXRpb25fMS5Db21tYW5kUGFyYW1ldGVyKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLlZpc3VhbElkLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5WaXN1YWxJRFBNKV0sIG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5VbmRlcmx5aW5nRGF0YVRhYmxlLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5VbmRlcmx5aW5nRGF0YVRhYmxlKSkpO1xuICAgICAgICByZXN1bHQuYWRkQ29tbWFuZChuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbl8xLkNvbW1hbmRSZWdpc3RyYXRpb24oYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuVmVyYklkLkdldERhdGFTdW1tYXJ5RGF0YSwgQ29tbWFuZElkc18xLkRvY0NvbW1hbmRzLkdldFN1bW1hcnlEYXRhLCBbbmV3IENvbW1hbmRSZWdpc3RyYXRpb25fMS5Db21tYW5kUGFyYW1ldGVyKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLklnbm9yZUFsaWFzZXMsIFBhcmFtc18xLlBhcmFtZXRlcklkLklnbm9yZUFsaWFzZXMpLFxuICAgICAgICAgICAgbmV3IENvbW1hbmRSZWdpc3RyYXRpb25fMS5Db21tYW5kUGFyYW1ldGVyKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLklnbm9yZVNlbGVjdGlvbiwgUGFyYW1zXzEuUGFyYW1ldGVySWQuSWdub3JlU2VsZWN0aW9uKSxcbiAgICAgICAgICAgIG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5WaXN1YWxJZCwgUGFyYW1zXzEuUGFyYW1ldGVySWQuVmlzdWFsSURQTSldLCBuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbl8xLkNvbW1hbmRQYXJhbWV0ZXIoYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuVW5kZXJseWluZ1N1bW1hcnlEYXRhVGFibGUsIFBhcmFtc18xLlBhcmFtZXRlcklkLlVuZGVybHlpbmdEYXRhVGFibGUpKSk7XG4gICAgICAgIHJlc3VsdC5hZGRDb21tYW5kKG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFJlZ2lzdHJhdGlvbihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5WZXJiSWQuR2V0RGF0YVNvdXJjZURhdGEsIENvbW1hbmRJZHNfMS5Eb2NDb21tYW5kcy5HZXREYXRhU291cmNlRGF0YSwgW25ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5EYXRhU291cmNlSWQsIFBhcmFtc18xLlBhcmFtZXRlcklkLkRhdGFzb3VyY2UpLFxuICAgICAgICAgICAgbmV3IENvbW1hbmRSZWdpc3RyYXRpb25fMS5Db21tYW5kUGFyYW1ldGVyKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLklnbm9yZUFsaWFzZXMsIFBhcmFtc18xLlBhcmFtZXRlcklkLklnbm9yZUFsaWFzZXMpLFxuICAgICAgICAgICAgbmV3IENvbW1hbmRSZWdpc3RyYXRpb25fMS5Db21tYW5kUGFyYW1ldGVyKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLk1heFJvd3MsIFBhcmFtc18xLlBhcmFtZXRlcklkLk1heFJvd3MpLFxuICAgICAgICAgICAgbmV3IENvbW1hbmRSZWdpc3RyYXRpb25fMS5Db21tYW5kUGFyYW1ldGVyKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLkNvbHVtbnNUb0luY2x1ZGUsIFBhcmFtc18xLlBhcmFtZXRlcklkLkZpZWxkRGlzcGxheU5hbWVzKV0sIG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5EYXRhU291cmNlRGF0YVRhYmxlLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5VbmRlcmx5aW5nRGF0YVRhYmxlKSkpO1xuICAgICAgICByZXN1bHQuYWRkQ29tbWFuZChuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbl8xLkNvbW1hbmRSZWdpc3RyYXRpb24oYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuVmVyYklkLkFwcGx5Q2F0ZWdvcmljYWxGaWx0ZXIsIENvbW1hbmRJZHNfMS5Eb2NDb21tYW5kcy5DYXRlZ29yaWNhbEZpbHRlciwgW25ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5GaWVsZE5hbWUsIFBhcmFtc18xLlBhcmFtZXRlcklkLlF1YWxpZmllZEZpZWxkQ2FwdGlvbiksXG4gICAgICAgICAgICBuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbl8xLkNvbW1hbmRQYXJhbWV0ZXIoYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuRmlsdGVyVmFsdWVzLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5GaWx0ZXJBbGlhc2VzKSxcbiAgICAgICAgICAgIG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5GaWx0ZXJVcGRhdGVUeXBlLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5GaWx0ZXJVcGRhdGVUeXBlKSxcbiAgICAgICAgICAgIG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5Jc0V4Y2x1ZGVNb2RlLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5FeGNsdWRlLCB0cnVlKSxcbiAgICAgICAgICAgIG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5WaXN1YWxJZCwgUGFyYW1zXzEuUGFyYW1ldGVySWQuV29ya3NoZWV0KSxcbiAgICAgICAgICAgIG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5WaXN1YWxJZCwgUGFyYW1zXzEuUGFyYW1ldGVySWQuRGFzaGJvYXJkKV0sIG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5GaWVsZE5hbWUsIFBhcmFtc18xLlBhcmFtZXRlcklkLkZpZWxkQ2FwdGlvbikpKTtcbiAgICAgICAgcmVzdWx0LmFkZENvbW1hbmQobmV3IENvbW1hbmRSZWdpc3RyYXRpb25fMS5Db21tYW5kUmVnaXN0cmF0aW9uKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlZlcmJJZC5BcHBseVJhbmdlRmlsdGVyLCBDb21tYW5kSWRzXzEuRG9jQ29tbWFuZHMuUmFuZ2VGaWx0ZXIsIFtuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbl8xLkNvbW1hbmRQYXJhbWV0ZXIoYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuRmllbGROYW1lLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5RdWFsaWZpZWRGaWVsZENhcHRpb24pLFxuICAgICAgICAgICAgbmV3IENvbW1hbmRSZWdpc3RyYXRpb25fMS5Db21tYW5kUGFyYW1ldGVyKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLkZpbHRlclJhbmdlTWluLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5SYW5nZU1pbiwgdHJ1ZSksXG4gICAgICAgICAgICBuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbl8xLkNvbW1hbmRQYXJhbWV0ZXIoYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuRmlsdGVyUmFuZ2VNYXgsIFBhcmFtc18xLlBhcmFtZXRlcklkLlJhbmdlTWF4LCB0cnVlKSxcbiAgICAgICAgICAgIG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5GaWx0ZXJSYW5nZU51bGxPcHRpb24sIFBhcmFtc18xLlBhcmFtZXRlcklkLkluY2x1ZGVkLCB0cnVlKSxcbiAgICAgICAgICAgIG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5WaXN1YWxJZCwgUGFyYW1zXzEuUGFyYW1ldGVySWQuV29ya3NoZWV0KSxcbiAgICAgICAgICAgIG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5WaXN1YWxJZCwgUGFyYW1zXzEuUGFyYW1ldGVySWQuRGFzaGJvYXJkKV0sIG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5GaWVsZE5hbWUsIFBhcmFtc18xLlBhcmFtZXRlcklkLkZpZWxkQ2FwdGlvbikpKTtcbiAgICAgICAgcmVzdWx0LmFkZENvbW1hbmQobmV3IENvbW1hbmRSZWdpc3RyYXRpb25fMS5Db21tYW5kUmVnaXN0cmF0aW9uKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlZlcmJJZC5DbGVhckZpbHRlciwgQ29tbWFuZElkc18xLkRvY0NvbW1hbmRzLkNsZWFyRXhpc3RpbmdGaWx0ZXIsIFtuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbl8xLkNvbW1hbmRQYXJhbWV0ZXIoYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuRmllbGROYW1lLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5RdWFsaWZpZWRGaWVsZENhcHRpb24pLFxuICAgICAgICAgICAgbmV3IENvbW1hbmRSZWdpc3RyYXRpb25fMS5Db21tYW5kUGFyYW1ldGVyKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLlZpc3VhbElkLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5Xb3Jrc2hlZXQpLFxuICAgICAgICAgICAgbmV3IENvbW1hbmRSZWdpc3RyYXRpb25fMS5Db21tYW5kUGFyYW1ldGVyKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLlZpc3VhbElkLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5EYXNoYm9hcmQpXSwgbmV3IENvbW1hbmRSZWdpc3RyYXRpb25fMS5Db21tYW5kUGFyYW1ldGVyKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLkZpZWxkTmFtZSwgUGFyYW1zXzEuUGFyYW1ldGVySWQuRmllbGRDYXB0aW9uKSkpO1xuICAgICAgICByZXN1bHQuYWRkQ29tbWFuZChuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbl8xLkNvbW1hbmRSZWdpc3RyYXRpb24oYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuVmVyYklkLkdldFNlbGVjdGVkTWFya3MsIENvbW1hbmRJZHNfMS5Eb2NDb21tYW5kcy5HZXRTZWxlY3Rpb25EYXRhLCBbbmV3IENvbW1hbmRSZWdpc3RyYXRpb25fMS5Db21tYW5kUGFyYW1ldGVyKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLlZpc3VhbElkLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5WaXN1YWxJRFBNKV0sIG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5TZWxlY3RlZERhdGEsIFBhcmFtc18xLlBhcmFtZXRlcklkLlNlbGVjdGlvbkRhdGEpKSk7XG4gICAgICAgIHJlc3VsdC5hZGRDb21tYW5kKG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFJlZ2lzdHJhdGlvbihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5WZXJiSWQuR2V0SGlnaGxpZ2h0ZWRNYXJrcywgQ29tbWFuZElkc18xLkRvY0NvbW1hbmRzLkdldEhpZ2hsaWdodGVkRGF0YSwgW25ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5WaXN1YWxJZCwgUGFyYW1zXzEuUGFyYW1ldGVySWQuVmlzdWFsSURQTSldLCBuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbl8xLkNvbW1hbmRQYXJhbWV0ZXIoYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuSGlnaGxpZ2h0ZWREYXRhLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5IaWdobGlnaHRlZERhdGEpKSk7XG4gICAgICAgIHJlc3VsdC5hZGRDb21tYW5kKG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFJlZ2lzdHJhdGlvbihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5WZXJiSWQuU2F2ZUFkZEluU2V0dGluZ3MsIENvbW1hbmRJZHNfMS5Eb2NDb21tYW5kcy5TYXZlQWRkSW5TZXR0aW5ncywgW25ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5BZGRJbkxvY2F0b3IsIFBhcmFtc18xLlBhcmFtZXRlcklkLkFkZEluTG9jYXRvciksXG4gICAgICAgICAgICBuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbl8xLkNvbW1hbmRQYXJhbWV0ZXIoYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuU2V0dGluZ3NWYWx1ZXMsIFBhcmFtc18xLlBhcmFtZXRlcklkLkFkZEluU2V0dGluZ3MpXSwgbmV3IENvbW1hbmRSZWdpc3RyYXRpb25fMS5Db21tYW5kUGFyYW1ldGVyKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLkFkZEluU2V0dGluZ3NJbmZvLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5BZGRJblNldHRpbmdzSW5mbykpKTtcbiAgICAgICAgcmVzdWx0LmFkZENvbW1hbmQobmV3IENvbW1hbmRSZWdpc3RyYXRpb25fMS5Db21tYW5kUmVnaXN0cmF0aW9uKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlZlcmJJZC5HZXRQYXJhbWV0ZXJzRm9yU2hlZXQsIENvbW1hbmRJZHNfMS5Eb2NDb21tYW5kcy5HZXRQYXJhbWV0ZXJNb2RlbHMsIFtdLCBuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbl8xLkNvbW1hbmRQYXJhbWV0ZXIoYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuUGFyYW1ldGVySW5mb3MsIFBhcmFtc18xLlBhcmFtZXRlcklkLlBhcmFtZXRlckN0cmxzKSkpO1xuICAgICAgICByZXN1bHQuYWRkQ29tbWFuZChuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbl8xLkNvbW1hbmRSZWdpc3RyYXRpb24oYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuVmVyYklkLkZpbmRQYXJhbWV0ZXIsIENvbW1hbmRJZHNfMS5Eb2NDb21tYW5kcy5GaW5kUGFyYW1ldGVyTW9kZWwsIFtuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbl8xLkNvbW1hbmRQYXJhbWV0ZXIoYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuUGFyYW1ldGVyQ2FwdGlvbiwgUGFyYW1zXzEuUGFyYW1ldGVySWQuRmllbGRDYXB0aW9uLCB0cnVlKSxcbiAgICAgICAgICAgIG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5QYXJhbWV0ZXJGaWVsZE5hbWUsIFBhcmFtc18xLlBhcmFtZXRlcklkLkZpZWxkTmFtZVN0cmluZywgdHJ1ZSldLCBcbiAgICAgICAgLy8gV2UgbWlnaHQgbm90IGdldCBhIHJlc3BvbnNlIGlmIHRoZSBwYXJhbWV0ZXIgaXNuJ3QgZm91bmRcbiAgICAgICAgbmV3IENvbW1hbmRSZWdpc3RyYXRpb25fMS5Db21tYW5kUGFyYW1ldGVyKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLlBhcmFtZXRlckluZm8sIFBhcmFtc18xLlBhcmFtZXRlcklkLlBhcmFtZXRlckN0cmwsIHRydWUpKSk7XG4gICAgICAgIHJlc3VsdC5hZGRDb21tYW5kKG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFJlZ2lzdHJhdGlvbihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5WZXJiSWQuQ2hhbmdlUGFyYW1ldGVyVmFsdWUsIENvbW1hbmRJZHNfMS5Eb2NDb21tYW5kcy5TZXRQYXJhbWV0ZXJWYWx1ZSwgW25ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5QYXJhbWV0ZXJGaWVsZE5hbWUsIFBhcmFtc18xLlBhcmFtZXRlcklkLkdsb2JhbEZpZWxkTmFtZSksXG4gICAgICAgICAgICBuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbl8xLkNvbW1hbmRQYXJhbWV0ZXIoYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuUGFyYW1ldGVyVmFsdWUsIFBhcmFtc18xLlBhcmFtZXRlcklkLlZhbHVlU3RyKV0sIG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5QYXJhbWV0ZXJJbmZvLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5QYXJhbWV0ZXJDdHJsKSkpO1xuICAgICAgICByZXN1bHQuYWRkQ29tbWFuZChuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbl8xLkNvbW1hbmRSZWdpc3RyYXRpb24oYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuVmVyYklkLkNsZWFyU2VsZWN0ZWRNYXJrcywgQ29tbWFuZElkc18xLkRvY0NvbW1hbmRzLkNsZWFyU2VsZWN0ZWRNYXJrcywgW25ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5WaXN1YWxJZCwgUGFyYW1zXzEuUGFyYW1ldGVySWQuVmlzdWFsSURQTSldKSk7XG4gICAgICAgIHJlc3VsdC5hZGRDb21tYW5kKG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFJlZ2lzdHJhdGlvbihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5WZXJiSWQuU2VsZWN0QnlWYWx1ZSwgQ29tbWFuZElkc18xLkRvY0NvbW1hbmRzLlNlbGVjdEJ5VmFsdWUsIFtuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbl8xLkNvbW1hbmRQYXJhbWV0ZXIoYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuVmlzdWFsSWQsIFBhcmFtc18xLlBhcmFtZXRlcklkLlZpc3VhbElEUE0pLFxuICAgICAgICAgICAgbmV3IENvbW1hbmRSZWdpc3RyYXRpb25fMS5Db21tYW5kUGFyYW1ldGVyKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLlNlbGVjdGlvbiwgUGFyYW1zXzEuUGFyYW1ldGVySWQuU2VsZWN0aW9uLCB0cnVlKSxcbiAgICAgICAgICAgIG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5TZWxlY3Rpb25VcGRhdGVUeXBlLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5TZWxlY3Rpb25VcGRhdGVUeXBlKSxcbiAgICAgICAgICAgIG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5IaWVyVmFsU2VsZWN0aW9uTW9kZWxzLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5IaWVyVmFsU2VsZWN0aW9uTW9kZWxzLCB0cnVlKSxcbiAgICAgICAgICAgIG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5EaW1WYWxTZWxlY3Rpb25Nb2RlbHMsIFBhcmFtc18xLlBhcmFtZXRlcklkLkRpbVZhbFNlbGVjdGlvbk1vZGVscywgdHJ1ZSksXG4gICAgICAgICAgICBuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbl8xLkNvbW1hbmRQYXJhbWV0ZXIoYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuUXVhbnRSYW5nZVNlbGVjdGlvbk1vZGVscywgUGFyYW1zXzEuUGFyYW1ldGVySWQuUXVhbnRSYW5nZVNlbGVjdGlvbk1vZGVscywgdHJ1ZSldKSk7XG4gICAgICAgIHJlc3VsdC5hZGRDb21tYW5kKG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFJlZ2lzdHJhdGlvbihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5WZXJiSWQuR2V0RGF0YVNvdXJjZXMsIENvbW1hbmRJZHNfMS5Eb2NDb21tYW5kcy5HZXRTY2hlbWEsIFtdLCBuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbl8xLkNvbW1hbmRQYXJhbWV0ZXIoYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuRGF0YVNjaGVtYSwgUGFyYW1zXzEuUGFyYW1ldGVySWQuRGF0YVNjaGVtYSkpKTtcbiAgICAgICAgcmVzdWx0LmFkZENvbW1hbmQobmV3IENvbW1hbmRSZWdpc3RyYXRpb25fMS5Db21tYW5kUmVnaXN0cmF0aW9uKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlZlcmJJZC5SZWZyZXNoRGF0YVNvdXJjZSwgQ29tbWFuZElkc18xLlVJQ29tbWFuZHMuUmVmcmVzaERhdGFTb3VyY2VVSSwgW25ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5EYXRhU291cmNlSWQsIFBhcmFtc18xLlBhcmFtZXRlcklkLkRhdGFzb3VyY2UpXSwgdW5kZWZpbmVkLCBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZE5hbWVzcGFjZS5UYWJVSSkpO1xuICAgICAgICByZXN1bHQuYWRkQ29tbWFuZChuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbl8xLkNvbW1hbmRSZWdpc3RyYXRpb24oYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuVmVyYklkLkdldEZpbHRlcnMsIENvbW1hbmRJZHNfMS5Eb2NDb21tYW5kcy5HZXRXb3Jrc2hlZXRGaWx0ZXJzLCBbbmV3IENvbW1hbmRSZWdpc3RyYXRpb25fMS5Db21tYW5kUGFyYW1ldGVyKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLlZpc3VhbElkLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5WaXN1YWxJRFBNKV0sIG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5Xb3Jrc2hlZXRGaWx0ZXJzLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5GaWx0ZXJzSW5mbykpKTtcbiAgICAgICAgcmVzdWx0LmFkZENvbW1hbmQobmV3IENvbW1hbmRSZWdpc3RyYXRpb25fMS5Db21tYW5kUmVnaXN0cmF0aW9uKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlZlcmJJZC5HZXRDYXRlZ29yaWNhbERvbWFpbiwgQ29tbWFuZElkc18xLkRvY0NvbW1hbmRzLkdldENhdGVnb3JpY2FsRG9tYWluLCBbbmV3IENvbW1hbmRSZWdpc3RyYXRpb25fMS5Db21tYW5kUGFyYW1ldGVyKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLlZpc3VhbElkLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5WaXN1YWxJRFBNKSxcbiAgICAgICAgICAgIG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5GaWVsZElkLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5GaWVsZE5hbWUpLFxuICAgICAgICAgICAgbmV3IENvbW1hbmRSZWdpc3RyYXRpb25fMS5Db21tYW5kUGFyYW1ldGVyKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLkRvbWFpblR5cGUsIFBhcmFtc18xLlBhcmFtZXRlcklkLkZpbHRlckRvbWFpblR5cGUpXSwgbmV3IENvbW1hbmRSZWdpc3RyYXRpb25fMS5Db21tYW5kUGFyYW1ldGVyKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLkNhdGVnb3JpY2FsRG9tYWluLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5DYXRlZ29yaWNhbERvbWFpbikpKTtcbiAgICAgICAgcmVzdWx0LmFkZENvbW1hbmQobmV3IENvbW1hbmRSZWdpc3RyYXRpb25fMS5Db21tYW5kUmVnaXN0cmF0aW9uKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlZlcmJJZC5HZXRSYW5nZURvbWFpbiwgQ29tbWFuZElkc18xLkRvY0NvbW1hbmRzLkdldFF1YW50aXRhdGl2ZURvbWFpbiwgW25ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5WaXN1YWxJZCwgUGFyYW1zXzEuUGFyYW1ldGVySWQuVmlzdWFsSURQTSksXG4gICAgICAgICAgICBuZXcgQ29tbWFuZFJlZ2lzdHJhdGlvbl8xLkNvbW1hbmRQYXJhbWV0ZXIoYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuRmllbGRJZCwgUGFyYW1zXzEuUGFyYW1ldGVySWQuRmllbGROYW1lKSxcbiAgICAgICAgICAgIG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5Eb21haW5UeXBlLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5GaWx0ZXJEb21haW5UeXBlKV0sIG5ldyBDb21tYW5kUmVnaXN0cmF0aW9uXzEuQ29tbWFuZFBhcmFtZXRlcihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5RdWFudGl0YXRpdmVEb21haW4sIFBhcmFtc18xLlBhcmFtZXRlcklkLlF1YW50aXRhdGl2ZURvbWFpbikpKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICAgIHJldHVybiBDb21tYW5kTWFwcGluZ1JlZ2lzdHJ5RmFjdG9yeTtcbn0oKSk7XG5leHBvcnRzLkNvbW1hbmRNYXBwaW5nUmVnaXN0cnlGYWN0b3J5ID0gQ29tbWFuZE1hcHBpbmdSZWdpc3RyeUZhY3Rvcnk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Db21tYW5kTWFwcGluZ1JlZ2lzdHJ5RmFjdG9yeS5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWNvcmUvbGliL3NyYy9tYXBwaW5ncy9Db21tYW5kTWFwcGluZ1JlZ2lzdHJ5RmFjdG9yeS5qc1xuICoqIG1vZHVsZSBpZCA9IDExXG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbi8qIHRzbGludDpkaXNhYmxlICovXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy9cbi8vIFRoaXMgZmlsZSBpcyB0aGUgY29weXJpZ2h0ZWQgcHJvcGVydHkgb2YgVGFibGVhdSBTb2Z0d2FyZSBhbmQgaXMgcHJvdGVjdGVkXG4vLyBieSByZWdpc3RlcmVkIHBhdGVudHMgYW5kIG90aGVyIGFwcGxpY2FibGUgVS5TLiBhbmQgaW50ZXJuYXRpb25hbCBsYXdzIGFuZFxuLy8gcmVndWxhdGlvbnMuXG4vL1xuLy8gVW5saWNlbnNlZCB1c2Ugb2YgdGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSBpcyBwcm9oaWJpdGVkLiBQbGVhc2UgcmVmZXIgdG9cbi8vIHRoZSBOT1RJQ0VTLnR4dCBmaWxlIGZvciBmdXJ0aGVyIGRldGFpbHMuXG4vL1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFdBUk5JTkc6IENvbXB1dGVyIGdlbmVyYXRlZCBmaWxlLiAgRG8gbm90IGhhbmQgbW9kaWZ5LlxuLy8gREVQRU5EUyBPTjogWycuLi90eXBlc2NyaXB0L2pzLWFwaS9hcGktY29yZS9ub2RlX21vZHVsZXMvQHRhYmxlYXUvcHJlc2xheWVyLWNvZGVnZW4tdHlwZXNjcmlwdC90ZW1wbGF0ZXMvY29tbWFuZHMtZW51bS10cy50ZW1wbGF0ZScsIHUnLi4vdHlwZXNjcmlwdC9qcy1hcGkvYXBpLWNvcmUvdGVtcC1wcmVzLWxheWVyL2FsbC1jbWQtd3JhcHBlcnMuZGF0YSddXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgRG9jQ29tbWFuZHM7XG4oZnVuY3Rpb24gKERvY0NvbW1hbmRzKSB7XG4gICAgLy8gU2F2ZXMgdGhlIHNldHRpbmdzIGZvciB0aGUgc3BlY2lmaWVkIGFkZC1pbiBpZFxuICAgIERvY0NvbW1hbmRzW1wiU2F2ZUFkZEluU2V0dGluZ3NcIl0gPSBcInNhdmUtYWRkLWluLXNldHRpbmdzXCI7XG4gICAgLy8gR2V0cyB0aGUgcHJlcyBtb2RlbCBmb3IgYW4gYWRkLWluIGluc3RhbmNlLlxuICAgIERvY0NvbW1hbmRzW1wiR2V0QWRkSW5JbnN0YW5jZVByZXNNb2RlbFwiXSA9IFwiZ2V0LWFkZC1pbi1pbnN0YW5jZS1wcmVzLW1vZGVsXCI7XG4gICAgLy8gR2V0cyB0aGUgcHJlcyBtb2RlbCBmb3IgdGhlIGRhc2hib2FyZCBhdXRob3Jpbmcgd2lkZ2V0IGZvciBhZGQtaW5zLlxuICAgIERvY0NvbW1hbmRzW1wiR2V0QWRkSW5EYXNoYm9hcmRBdXRob3JpbmdXaWRnZXRQcmVzTW9kZWxcIl0gPSBcImdldC1hZGQtaW4tZGFzaGJvYXJkLWF1dGhvcmluZy13aWRnZXQtcHJlcy1tb2RlbFwiO1xuICAgIC8vIEdldHMgdGhlIG5lY2Vzc2FyeSBpbmZvcm1hdGlvbiBmb3IgYW4gYWRkLWluIHRvIGluaXRpYWxpemUgaXRzZWxmLlxuICAgIERvY0NvbW1hbmRzW1wiSW5pdGlhbGl6ZUFkZEluSW5zdGFuY2VcIl0gPSBcImluaXRpYWxpemUtYWRkLWluLWluc3RhbmNlXCI7XG4gICAgLy8gRW5hYmxlcyBvciBkaXNhYmxlIGphdmFzY3JpcHQgZGVidWdnaW5nIG9mIGFuIGFkZC1pbi5cbiAgICBEb2NDb21tYW5kc1tcIlNldEFkZEluSnNEZWJ1Z2dpbmdFbmFibGVkXCJdID0gXCJzZXQtYWRkLWluLWpzLWRlYnVnZ2luZy1lbmFibGVkXCI7XG4gICAgLy8gV2hldGhlciBvciBub3Qgd2Ugc2hvdWxkIHBhdXNlIGJlZm9yZSBsb2FkaW5nLiBJZiBtaXNzaW5nLCB0b2dnbGUgdGhlIHZhbHVlXG4gICAgRG9jQ29tbWFuZHNbXCJTZXRQYXVzZUJlZm9yZUxvYWRpbmdBZGRJblwiXSA9IFwic2V0LXBhdXNlLWJlZm9yZS1sb2FkaW5nLWFkZC1pblwiO1xuICAgIC8vIFJlbG9hZHMgdGhlIEFkZC1JbiB3aWRnZXQgYW5kIHdlYiBwYWdlLlxuICAgIERvY0NvbW1hbmRzW1wiUmVsb2FkQWRkSW5cIl0gPSBcInJlbG9hZC1hZGQtaW5cIjtcbiAgICAvLyBSZXRyaWV2ZXMgdGhlIGNvbnRleHQgbWVudSBmb3IgYSBkYXNoYm9hcmQgYWRkLWluLlxuICAgIERvY0NvbW1hbmRzW1wiR2V0QWRkSW5ab25lQ29udGV4dE1lbnVcIl0gPSBcImdldC1hZGQtaW4tem9uZS1jb250ZXh0LW1lbnVcIjtcbiAgICAvLyBHZXRzIHRoZSBwcmVzIG1vZGVsIHdoaWNoIGluZGljYXRlcyB3aGF0IHRoZSBkZWJ1ZyBzZXR0aW5ncyBmb3IgYWRkLWlucyBpcy5cbiAgICBEb2NDb21tYW5kc1tcIkdldEFkZEluRGVidWdTZXR0aW5nc1ByZXNNb2RlbFwiXSA9IFwiZ2V0LWFkZC1pbi1kZWJ1Zy1zZXR0aW5ncy1wcmVzLW1vZGVsXCI7XG4gICAgLy8gUHJpbWFyeSB1c2UgaXMgZm9yIGJ1aWxkaW5nIGNvbnRleHQgbWVudXNcbiAgICBEb2NDb21tYW5kc1tcIklzU2VsZWN0aW9uQW5FZGl0YWJsZVBhcmFtZXRlclwiXSA9IFwiaXMtc2VsZWN0aW9uLWFuLWVkaXRhYmxlLXBhcmFtZXRlclwiO1xuICAgIC8vIENoZWNrIGlmIHNlbGVjdGlvbiBjYW4gYmUgdXNlZCBhcyBiYXNlIGZvciBjcmVhdGluZyBhIG5ldyBwYXJhbWV0ZXIuIFByaW1hcnkgdXNlIGlzIGZvciBidWlsZGluZyBjb250ZXh0IG1lbnVzXG4gICAgRG9jQ29tbWFuZHNbXCJHZXRDcmVhdGVQYXJhbWV0ZXJTdGF0ZVwiXSA9IFwiZ2V0LWNyZWF0ZS1wYXJhbWV0ZXItc3RhdGVcIjtcbiAgICAvLyBVc2VzIEVkaXRQYXJhbWV0ZXIgdG8gZ2V0IGFuZCByZXR1cm4gaW5mbyBhYm91dCB0aGUgcHJlc21vZGVsIHdpdGhvdXQgbWFpbnRhaW5pbmcgdGhlIGNvbnRyb2xsZXJcbiAgICBEb2NDb21tYW5kc1tcIkdldFBhcmFtZXRlckVkaXRJbmZvXCJdID0gXCJnZXQtcGFyYW1ldGVyLWVkaXQtaW5mb1wiO1xuICAgIC8vIEluaXRpYWxpemUgdGhlIGNvbnRyb2xsZXIgYW5kIGl0cyBzdG9yZWQgcGFyYW1ldGVyIHRoZW4gcmV0dXJuIGEgcG9wdWxhdGVkIHByZXNtb2RlbFxuICAgIERvY0NvbW1hbmRzW1wiQ3JlYXRlUGFyYW1ldGVyXCJdID0gXCJjcmVhdGUtcGFyYW1ldGVyXCI7XG4gICAgLy8gU2FtZSB1bmRlcmx5aW5nIGxvZ2ljIGFzIENyZWF0ZVBhcmFtZXRlciBidXQgZWRpdHMgcmF0aGVyIHRoYW4gY3JlYXRpbmcgYSBuZXcgcGFyYW1ldGVyXG4gICAgRG9jQ29tbWFuZHNbXCJFZGl0UGFyYW1ldGVyX05ld1wiXSA9IFwiZWRpdC1wYXJhbWV0ZXItbmV3XCI7XG4gICAgLy8gQWRkIGEgbWVtYmVyIG9mIGEgcGFyYW1ldGVyIGRvbWFpbi4gQ2hhbmdlcyBhcmUgYXBwbGllZCB0byBpbnRlcm1lZGlhdGUgc3RhdGUgYW5kIHNhdmVkIG9uIGNvbW1pdFxuICAgIERvY0NvbW1hbmRzW1wiQWRkUGFyYW1ldGVyTWVtYmVyXCJdID0gXCJhZGQtcGFyYW1ldGVyLW1lbWJlclwiO1xuICAgIC8vIEVkaXQgYSBtZW1iZXIgb2YgYSBwYXJhbWV0ZXIgZG9tYWluLiBDaGFuZ2VzIGFyZSBhcHBsaWVkIHRvIGludGVybWVkaWF0ZSBzdGF0ZSBhbmQgc2F2ZWQgb24gY29tbWl0XG4gICAgRG9jQ29tbWFuZHNbXCJFZGl0UGFyYW1ldGVyTWVtYmVyXCJdID0gXCJlZGl0LXBhcmFtZXRlci1tZW1iZXJcIjtcbiAgICAvLyBEZWxldGUgYSBzZXJpZXMgb2YgcmFuZ2VzIG9mIG1lbWJlcnMgZnJvbSB0aGUgcGFyYW1ldGVyIGxpc3QuXG4gICAgRG9jQ29tbWFuZHNbXCJEZWxldGVQYXJhbWV0ZXJNZW1iZXJzXCJdID0gXCJkZWxldGUtcGFyYW1ldGVyLW1lbWJlcnNcIjtcbiAgICAvLyBDb3B5IGEgc2VyaWVzIG9mIHJhbmdlcyBvZiBtZW1iZXJzIG9mIGEgcGFyYW1ldGVyIGxpc3RcbiAgICBEb2NDb21tYW5kc1tcIkNvcHlQYXJhbWV0ZXJNZW1iZXJzXCJdID0gXCJjb3B5LXBhcmFtZXRlci1tZW1iZXJzXCI7XG4gICAgLy8gTW92ZSBhIHNlcmllcyBvZiByYW5nZXMgb2YgbWVtYmVycyBvZiBhIHBhcmFtZXRlciBsaXN0XG4gICAgRG9jQ29tbWFuZHNbXCJNb3ZlUGFyYW1ldGVyTWVtYmVyc1wiXSA9IFwibW92ZS1wYXJhbWV0ZXItbWVtYmVyc1wiO1xuICAgIC8vIENoYW5nZSBkb21haW4gb2YgYSBwYXJhbWV0ZXIuIENoYW5nZXMgYXJlIGFwcGxpZWQgdG8gaW50ZXJtZWRpYXRlIHN0YXRlIGFuZCBzYXZlZCBvbiBjb21taXRcbiAgICBEb2NDb21tYW5kc1tcIkVkaXRQYXJhbWV0ZXJEb21haW5UeXBlXCJdID0gXCJlZGl0LXBhcmFtZXRlci1kb21haW4tdHlwZVwiO1xuICAgIC8vIENoYW5nZSBkYXRhdHlwZSBvZiBhIHBhcmFtZXRlci4gQ2hhbmdlcyBhcmUgYXBwbGllZCB0byBpbnRlcm1lZGlhdGUgc3RhdGUgYW5kIHNhdmVkIG9uIGNvbW1pdFxuICAgIERvY0NvbW1hbmRzW1wiRWRpdFBhcmFtZXRlckRhdGFUeXBlXCJdID0gXCJlZGl0LXBhcmFtZXRlci1kYXRhLXR5cGVcIjtcbiAgICAvLyBDaGFuZ2UgZGlzcGxheSBmb3JtYXQgb2YgYSBwYXJhbWV0ZXIuIENoYW5nZXMgYXJlIGFwcGxpZWQgdG8gaW50ZXJtZWRpYXRlIHN0YXRlIGFuZCBzYXZlZCBvbiBjb21taXRcbiAgICBEb2NDb21tYW5kc1tcIkVkaXRQYXJhbWV0ZXJGb3JtYXRcIl0gPSBcImVkaXQtcGFyYW1ldGVyLWZvcm1hdFwiO1xuICAgIC8vIFZhbGlkYXRlIGNoYW5nZXMgdG8gYSBwYXJhbWV0ZXIncyByYW5nZSBkb21haW4gYW5kIGFwcGx5IHRvIGludGVybWVkaWF0ZSBzdGF0ZS4gQ2hhbmdlcyBhcmUgc2F2ZWQgb24gY29tbWl0XG4gICAgRG9jQ29tbWFuZHNbXCJFZGl0UGFyYW1ldGVyUmFuZ2VcIl0gPSBcImVkaXQtcGFyYW1ldGVyLXJhbmdlXCI7XG4gICAgLy8gRWRpdCB0aGUgdmFsdWUgb2YgYSBub24tbGlzdCBkb21haW4gcGFyYW1ldGVyXG4gICAgRG9jQ29tbWFuZHNbXCJFZGl0UGFyYW1ldGVyVmFsdWVcIl0gPSBcImVkaXQtcGFyYW1ldGVyLXZhbHVlXCI7XG4gICAgLy8gRWRpdCB0aGUgdmFsdWUgb2YgYSBsaXN0IGRvbWFpbiBwYXJhbWV0ZXJcbiAgICBEb2NDb21tYW5kc1tcIkVkaXRQYXJhbWV0ZXJWYWx1ZUluZGV4XCJdID0gXCJlZGl0LXBhcmFtZXRlci12YWx1ZS1pbmRleFwiO1xuICAgIC8vIFVwZGF0ZSB0aGUgcGFyYW1ldGVyIGNhcHRpb24gYW5kIGRlc2NyaXB0aW9uIC0gdXNlZCB0byBrZWVwIGJhY2tlbmQgaW4gc3luYy4gTm8gdmVyaWZpY2F0aW9uL3JldHVybiBpcyByZXF1cmllZC5cbiAgICBEb2NDb21tYW5kc1tcIkVkaXRQYXJhbWV0ZXJEaXNwbGF5SW5mb1wiXSA9IFwiZWRpdC1wYXJhbWV0ZXItZGlzcGxheS1pbmZvXCI7XG4gICAgLy8gVXBkYXRlIHRoZSBkb21haW4gb2YgdGhlIHBhcmFtZXRlciB1c2luZyBhIGZpZWxkIChjb2x1bW4gb3IgcGFyYW1ldGVyKSBhcyBhIGJhc2VcbiAgICBEb2NDb21tYW5kc1tcIlVwZGF0ZVBhcmFtZXRlckZyb21GaWVsZFwiXSA9IFwidXBkYXRlLXBhcmFtZXRlci1mcm9tLWZpZWxkXCI7XG4gICAgLy8gVXBkYXRlIHRoZSBsaXN0IGRvbWFpbiBvZiBhIHBhcmFtZXRlciBmcm9tIGEgcGxhaW4gdGV4dCByZXByZXNlbnRhdGlvbiBvZiB2YWx1ZXNcbiAgICBEb2NDb21tYW5kc1tcIlBhcnNlUGFyYW1ldGVyTGlzdERvbWFpblwiXSA9IFwicGFyc2UtcGFyYW1ldGVyLWxpc3QtZG9tYWluXCI7XG4gICAgLy8gQ2xlYXJzIHRoZSBwYXJhbWV0ZXIncyBkb21haW4gb2YgYWxsIG1lbWJlcnNcbiAgICBEb2NDb21tYW5kc1tcIkNsZWFyUGFyYW1ldGVyTGlzdERvbWFpblwiXSA9IFwiY2xlYXItcGFyYW1ldGVyLWxpc3QtZG9tYWluXCI7XG4gICAgLy8gQ3JlYXRlcyBvciBlZGl0cyBwYXJhbWV0ZXIgZnJvbSBpbnRlcm1lZGlhdGUgc3RhdGUuIFRha2VzIGEgZmV3IHByb3BlcnRpZXMgdGhhdCBhcmUgY2FjaGVkIGluIGRpYWxvZyBhbmQgYXBwbGllcyB0aGVtIHByZS1jb21taXQuXG4gICAgRG9jQ29tbWFuZHNbXCJDb21taXRQYXJhbWV0ZXJFZGl0c1wiXSA9IFwiY29tbWl0LXBhcmFtZXRlci1lZGl0c1wiO1xuICAgIC8vIEdldHMgdGhlIG1vZGVsIGZvciBhIHBhcnRpY3VsYXIgcGFyYW1ldGVyIG9yIHJldHVybnMgYW4gZW1wdHkgcmVzcG9uc2UgaWYgb25lIGlzIG5vdCBmb3VuZC5cbiAgICBEb2NDb21tYW5kc1tcIkZpbmRQYXJhbWV0ZXJNb2RlbFwiXSA9IFwiZmluZC1wYXJhbWV0ZXItbW9kZWxcIjtcbiAgICAvLyBHZXRzIHRoZSBwcmVzIG1vZGVsIGZvciB0aGUgc2hvdyBkYXRhIGRpYWxvZ1xuICAgIERvY0NvbW1hbmRzW1wiR2V0U2hvd0RhdGFQcmVzTW9kZWxcIl0gPSBcImdldC1zaG93LWRhdGEtcHJlcy1tb2RlbFwiO1xuICAgIC8vIEV4cG9ydCB1bmRlcmx5aW5nIGRhdGEgZnJvbSB0aGUgU2hvd0RhdGFEaWFsb2cgdG8gYSBDU1YgZmlsZVxuICAgIERvY0NvbW1hbmRzW1wiU2hvd0RhdGFFeHBvcnRUb0NTVlwiXSA9IFwic2hvdy1kYXRhLWV4cG9ydC10by1jc3ZcIjtcbiAgICAvLyBHZXRzIHRoZSBzdW1tYXJ5IGRhdGEgZm9yIGEgd29ya3NoZWV0XG4gICAgRG9jQ29tbWFuZHNbXCJHZXRTdW1tYXJ5RGF0YVwiXSA9IFwiZ2V0LXN1bW1hcnktZGF0YVwiO1xuICAgIC8vIEdldHMgdGhlIHVuZGVybHlpbmcgZGF0YSBmb3IgYSB3b3Jrc2hlZXRcbiAgICBEb2NDb21tYW5kc1tcIkdldFVuZGVybHlpbmdEYXRhXCJdID0gXCJnZXQtdW5kZXJseWluZy1kYXRhXCI7XG4gICAgLy8gR2V0cyB0aGUgdW5kZXJseWluZyBkYXRhIGZvciBhIHNwZWNpZmljIGRhdGEgc291cmNlLlxuICAgIERvY0NvbW1hbmRzW1wiR2V0RGF0YVNvdXJjZURhdGFcIl0gPSBcImdldC1kYXRhLXNvdXJjZS1kYXRhXCI7XG4gICAgLy8gU2VsZWN0IGFsbCBtYXJrcyB0aGF0IGhhdmUgdGhlIHR1cGxlJ3MgdmFsdWUgZm9yIHRoZSBnaXZlbiBmaWVsZCAuXG4gICAgRG9jQ29tbWFuZHNbXCJTZWxlY3RCeVR1cGxlVmFsdWVcIl0gPSBcInNlbGVjdC1ieS10dXBsZS12YWx1ZVwiO1xuICAgIC8vIENsZWFyIGFsbCB0aGUgc2VsZWN0ZWQgbWFya3MgZm9yIHRoZSBnaXZlbiB3b3Jrc2hlZXRcbiAgICBEb2NDb21tYW5kc1tcIkNsZWFyU2VsZWN0ZWRNYXJrc1wiXSA9IFwiY2xlYXItc2VsZWN0ZWQtbWFya3NcIjtcbiAgICAvLyBDcmVhdGVzIG9yIHVwZGF0ZXMgYW5kIGV4aXN0aW5nIGZpbHRlciBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgdXBkYXRlcy5cbiAgICBEb2NDb21tYW5kc1tcIkFwcGx5Q2F0ZWdvcmljYWxGaWx0ZXJVcGRhdGVzXCJdID0gXCJhcHBseS1jYXRlZ29yaWNhbC1maWx0ZXItdXBkYXRlc1wiO1xuICAgIC8vIFNlYXJjaCBmaWx0ZXIgZG9tYWluIGZvciB0ZXh0IGFuZCByZXR1cm4gYW55IG1hdGNoaW5nIHR1cGxlcy5cbiAgICBEb2NDb21tYW5kc1tcIkNhdGVnb3JpY2FsRmlsdGVyU2VhcmNoXCJdID0gXCJjYXRlZ29yaWNhbC1maWx0ZXItc2VhcmNoXCI7XG4gICAgLy8gQ2xlYXIgYWxsIG1lbWJlcnMgZnJvbSB0aGUgdGFibGUgb2YgdGhlIGlkZW50aWZpZWQgY2FjaGUuXG4gICAgRG9jQ29tbWFuZHNbXCJDYXRlZ29yaWNhbEZpbHRlckNsZWFyUmVsYXRpb25hbENhY2hlXCJdID0gXCJjYXRlZ29yaWNhbC1maWx0ZXItY2xlYXItcmVsYXRpb25hbC1jYWNoZVwiO1xuICAgIC8vIENyZWF0ZSB0dXBsZXMgZm9yIGFuIGV4aXN0aW5nIGZpbHRlciBmcm9tIHN1cHBsaWVkIHRleHQuXG4gICAgRG9jQ29tbWFuZHNbXCJHZXRDYXRlZ29yaWNhbEZpbHRlclR1cGxlc0Zyb21UZXh0XCJdID0gXCJnZXQtY2F0ZWdvcmljYWwtZmlsdGVyLXR1cGxlcy1mcm9tLXRleHRcIjtcbiAgICAvLyBSZXR1cm5zIGEgcHJlc21vZGVsIGJhY2tpbmcgYSBjYXRlZ29yaWNhbCBmaWx0ZXIsIGluaXRpYWxpemluZyBhIGRhdGEgY2FjaGUgZm9yIGZhc3QgbG9va3VwIG9mIHRoZSBmaWx0ZXIncyBtZW1iZXIgZG9tYWluLlxuICAgIERvY0NvbW1hbmRzW1wiR2V0Q2F0ZWdvcmljYWxGaWx0ZXJcIl0gPSBcImdldC1jYXRlZ29yaWNhbC1maWx0ZXJcIjtcbiAgICAvLyBSZXRyaWV2ZXMgYSBwYWdlIG9mIGRhdGEgdG8gZGlzcGxheSBpbiB0aGUgZmlsdGVyJ3MgbGlzdCBkb21haW5cbiAgICBEb2NDb21tYW5kc1tcIkdldENhdGVnb3JpY2FsRmlsdGVyRG9tYWluUGFnZVwiXSA9IFwiZ2V0LWNhdGVnb3JpY2FsLWZpbHRlci1kb21haW4tcGFnZVwiO1xuICAgIC8vIFJlc2V0IGZpbHRlciB0byBjb21taXR0ZWQgc3RhdGVcbiAgICBEb2NDb21tYW5kc1tcIlJlc2V0Q2F0ZWdvcmljYWxGaWx0ZXJEZWZlcnJlZFwiXSA9IFwicmVzZXQtY2F0ZWdvcmljYWwtZmlsdGVyLWRlZmVycmVkXCI7XG4gICAgLy8gVXNlIHVuY29tbWl0dGVkIHN0YXRlIHRvIHJlc2V0IHRoZSBmaWx0ZXIncyBjb250cm9sbGVyXG4gICAgRG9jQ29tbWFuZHNbXCJSZWNyZWF0ZUNhdGVnb3JpY2FsRmlsdGVyQ29udHJvbGxlclwiXSA9IFwicmVjcmVhdGUtY2F0ZWdvcmljYWwtZmlsdGVyLWNvbnRyb2xsZXJcIjtcbiAgICAvLyBWYWxpZGF0ZXMgYSBDYXRlZ3JvaWNhbCBGaWx0ZXIgbmFtZS5cbiAgICBEb2NDb21tYW5kc1tcIlZhbGlkYXRlQ2F0ZWdvcmljYWxGaWx0ZXJOYW1lXCJdID0gXCJ2YWxpZGF0ZS1jYXRlZ29yaWNhbC1maWx0ZXItbmFtZVwiO1xuICAgIC8vIEdldHMgYSBzdW1tYXJ5IG9mIHRoZSBmaWx0ZXIgcGF0dGVybi5cbiAgICBEb2NDb21tYW5kc1tcIkdldENhdGVnb3JpY2FsRmlsdGVyUGF0dGVyblN1bW1hcnlcIl0gPSBcImdldC1jYXRlZ29yaWNhbC1maWx0ZXItcGF0dGVybi1zdW1tYXJ5XCI7XG4gICAgLy8gR2V0cyBhIHN1bW1lcnkgb2YgdGhlIGZpbHRlciBjb25kaXRpb24uXG4gICAgRG9jQ29tbWFuZHNbXCJHZXRDYXRlZ29yaWNhbEZpbHRlckNvbmRpdGlvblN1bW1hcnlcIl0gPSBcImdldC1jYXRlZ29yaWNhbC1maWx0ZXItY29uZGl0aW9uLXN1bW1hcnlcIjtcbiAgICAvLyBMb2FkIHRoZSBjdXJyZW50IG1pbmltdW0gYW5kIG1heGltdW0gZGF0YSB2YWx1ZSByYW5nZSBmb3IgdGhlIGNvbmRpdGlvbiBmaWVsZC5cbiAgICBEb2NDb21tYW5kc1tcIkxvYWRDYXRlZ29yaWNhbEZpbHRlckNvbmRpdGlvbkZpZWxkVmFsdWVSYW5nZVwiXSA9IFwibG9hZC1jYXRlZ29yaWNhbC1maWx0ZXItY29uZGl0aW9uLWZpZWxkLXZhbHVlLXJhbmdlXCI7XG4gICAgLy8gVmFsaWRhdGVzIGEgQ2F0ZWdvcmljYWwgRmlsdGVyJ3MgY29uZGl0aW9uIGZvcm11bGEgYW5kIHJlLXdyaXRlcyBpdC5cbiAgICBEb2NDb21tYW5kc1tcIlZhbGlkYXRlQ2F0ZWdvcmljYWxGaWx0ZXJDb25kaXRpb25Gb3JtdWxhXCJdID0gXCJ2YWxpZGF0ZS1jYXRlZ29yaWNhbC1maWx0ZXItY29uZGl0aW9uLWZvcm11bGFcIjtcbiAgICAvLyBHZXRzIGEgc3VtbWVyeSBvZiB0aGUgZmlsdGVyIGxpbWl0LlxuICAgIERvY0NvbW1hbmRzW1wiR2V0Q2F0ZWdvcmljYWxGaWx0ZXJMaW1pdFN1bW1hcnlcIl0gPSBcImdldC1jYXRlZ29yaWNhbC1maWx0ZXItbGltaXQtc3VtbWFyeVwiO1xuICAgIC8vIFZhbGlkYXRlcyBhIENhdGVnb3JpY2FsIEZpbHRlcidzIGxpbWl0IGNvdW50LlxuICAgIERvY0NvbW1hbmRzW1wiVmFsaWRhdGVDYXRlZ29yaWNhbEZpbHRlckxpbWl0Q291bnRcIl0gPSBcInZhbGlkYXRlLWNhdGVnb3JpY2FsLWZpbHRlci1saW1pdC1jb3VudFwiO1xuICAgIC8vIFZhbGlkYXRlcyBhIENhdGVnb3JpY2FsIEZpbHRlcidzIGxpbWl0IGZvcm11bGEsIGFuZCByZS13cml0ZXMgdGhlIGZvcm11bGEuXG4gICAgRG9jQ29tbWFuZHNbXCJWYWxpZGF0ZUNhdGVnb3JpY2FsRmlsdGVyTGltaXRGb3JtdWxhXCJdID0gXCJ2YWxpZGF0ZS1jYXRlZ29yaWNhbC1maWx0ZXItbGltaXQtZm9ybXVsYVwiO1xuICAgIC8vIFZhbGlkYXRlcyBhIENhdGVnb3JpY2FsIEZpbHRlcidzIGxpbWl0LlxuICAgIERvY0NvbW1hbmRzW1wiVmFsaWRhdGVDYXRlZ29yaWNhbEZpbHRlckxpbWl0XCJdID0gXCJ2YWxpZGF0ZS1jYXRlZ29yaWNhbC1maWx0ZXItbGltaXRcIjtcbiAgICAvLyBJbmZvcm0gY2FjaGUgd2hlbiBhIHVzZXIgY2hhbmdlcyB0aGUgcmFuZ2VcbiAgICBEb2NDb21tYW5kc1tcIkNhdGVnb3JpY2FsRmlsdGVyU2V0UmFuZ2VUeXBlRGVmZXJyZWRcIl0gPSBcImNhdGVnb3JpY2FsLWZpbHRlci1zZXQtcmFuZ2UtdHlwZS1kZWZlcnJlZFwiO1xuICAgIC8vIEluZm9ybSBjYWNoZSB3aGVuIGEgdXNlciBjaGFuZ2VzIHdoZXRoZXIgdGhlIHNlbGVjdGlvbiBpcyBleGNsdXNpdmVcbiAgICBEb2NDb21tYW5kc1tcIkNhdGVnb3JpY2FsRmlsdGVyU2V0U2VsZWN0aW9uRXhjbHVzaXZlRGVmZXJyZWRcIl0gPSBcImNhdGVnb3JpY2FsLWZpbHRlci1zZXQtc2VsZWN0aW9uLWV4Y2x1c2l2ZS1kZWZlcnJlZFwiO1xuICAgIC8vIEluZm9ybSBjYWNoZSB3aGVuIGEgdXNlciBjaGFuZ2VzIHdoZXRoZXIgYW4gZW1wdHkgc2VsZWN0aW9uIHNob3VsZCBiZSBjb25zaWRlcmVkIGEgc2VsZWN0aW9uIG9mICdBbGwnIGluIGEgTWFudWFsIHNlbGVjdGlvbiBtb2RlXG4gICAgRG9jQ29tbWFuZHNbXCJDYXRlZ29yaWNhbEZpbHRlclNldFVzZUFsbFdoZW5NYW51YWxJc0VtcHR5RGVmZXJyZWRcIl0gPSBcImNhdGVnb3JpY2FsLWZpbHRlci1zZXQtdXNlLWFsbC13aGVuLW1hbnVhbC1pcy1lbXB0eS1kZWZlcnJlZFwiO1xuICAgIC8vIEluZm9ybSBjYWNoZSB3aGVuIGEgdXNlciBhbHRlcnMgdGhlIHByZXNldCB0eXBlXG4gICAgRG9jQ29tbWFuZHNbXCJDYXRlZ29yaWNhbEZpbHRlclNldFByZXNldFR5cGVEZWZlcnJlZFwiXSA9IFwiY2F0ZWdvcmljYWwtZmlsdGVyLXNldC1wcmVzZXQtdHlwZS1kZWZlcnJlZFwiO1xuICAgIC8vIEluZm9ybSBjYWNoZSB0aGUgdXNlciBoYXMgc2VsZWN0ZWQgb25lIG9yIG1vcmUgbWVtYmVyc1xuICAgIERvY0NvbW1hbmRzW1wiQ2F0ZWdvcmljYWxGaWx0ZXJTZWxlY3RSZWxhdGlvbmFsTWVtYmVyc0RlZmVycmVkXCJdID0gXCJjYXRlZ29yaWNhbC1maWx0ZXItc2VsZWN0LXJlbGF0aW9uYWwtbWVtYmVycy1kZWZlcnJlZFwiO1xuICAgIC8vIEluZm9ybSBjYWNoZSB0aGUgdXNlciBoYXMgZGVzZWxlY3RlZCBvbmUgb3IgbW9yZSBtZW1iZXJzXG4gICAgRG9jQ29tbWFuZHNbXCJDYXRlZ29yaWNhbEZpbHRlckRlc2VsZWN0UmVsYXRpb25hbE1lbWJlcnNEZWZlcnJlZFwiXSA9IFwiY2F0ZWdvcmljYWwtZmlsdGVyLWRlc2VsZWN0LXJlbGF0aW9uYWwtbWVtYmVycy1kZWZlcnJlZFwiO1xuICAgIC8vIEluZm9ybSBjYWNoZSB3aGVuIGEgdXNlciBzZWxlY3RzIGV2ZXJ5dGhpbmcgaW4gdGhlIGRvbWFpblxuICAgIERvY0NvbW1hbmRzW1wiQ2F0ZWdvcmljYWxGaWx0ZXJTZWxlY3RBbGxSZWxhdGlvbmFsTWVtYmVyc0RlZmVycmVkXCJdID0gXCJjYXRlZ29yaWNhbC1maWx0ZXItc2VsZWN0LWFsbC1yZWxhdGlvbmFsLW1lbWJlcnMtZGVmZXJyZWRcIjtcbiAgICAvLyBJbmZvcm0gY2FjaGUgd2hlbiBhIHVzZXIgZGVzZWxlY3RzIGV2ZXJ5dGhpbmcgaW4gdGhlIGRvbWFpblxuICAgIERvY0NvbW1hbmRzW1wiQ2F0ZWdvcmljYWxGaWx0ZXJEZXNlbGVjdEFsbFJlbGF0aW9uYWxNZW1iZXJzRGVmZXJyZWRcIl0gPSBcImNhdGVnb3JpY2FsLWZpbHRlci1kZXNlbGVjdC1hbGwtcmVsYXRpb25hbC1tZW1iZXJzLWRlZmVycmVkXCI7XG4gICAgLy8gSW5mb3JtIGNhY2hlIHRoZSB1c2VyIHdhbnRzIHRvIHNlZSBhIGRpZmZlcmVudCBkb21haW4gKGUuZy4gcmVsZXZhbnQgdmFsdWVzIG9ubHkpXG4gICAgRG9jQ29tbWFuZHNbXCJDYXRlZ29yaWNhbEZpbHRlclNldERvbWFpblR5cGVEZWZlcnJlZFwiXSA9IFwiY2F0ZWdvcmljYWwtZmlsdGVyLXNldC1kb21haW4tdHlwZS1kZWZlcnJlZFwiO1xuICAgIC8vIFNldCB3aGV0aGVyIGZpbHRlcnMgYXBwbHkgdG8gdG90YWxzIGFzIHdlbGwgYXMgbm9uLXRvdGFscyB0YWJsZSBjYWxjc1xuICAgIERvY0NvbW1hbmRzW1wiRmlsdGVyQXBwbHlUb1RvdGFsVGFibGVDYWxjc1wiXSA9IFwiZmlsdGVyLWFwcGx5LXRvLXRvdGFsLXRhYmxlLWNhbGNzXCI7XG4gICAgLy8gR2V0cyB0aGUgbGlzdCBvZiBmaWx0ZXJzIHVzZWQgaW4gYSB3b3Jrc2hlZXRcbiAgICBEb2NDb21tYW5kc1tcIkdldFdvcmtzaGVldEZpbHRlcnNcIl0gPSBcImdldC13b3Jrc2hlZXQtZmlsdGVyc1wiO1xuICAgIC8vIEdldHMgdGhlIGRvbWFpbiBmb3IgYSBjYXRlZ29yaWNhbCBGaWx0ZXJcbiAgICBEb2NDb21tYW5kc1tcIkdldENhdGVnb3JpY2FsRG9tYWluXCJdID0gXCJnZXQtY2F0ZWdvcmljYWwtZG9tYWluXCI7XG4gICAgLy8gR2V0cyB0aGUgZG9tYWluIGZvciBhIHF1YW50aXRhdGl2ZSBGaWx0ZXJcbiAgICBEb2NDb21tYW5kc1tcIkdldFF1YW50aXRhdGl2ZURvbWFpblwiXSA9IFwiZ2V0LXF1YW50aXRhdGl2ZS1kb21haW5cIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkdldEhpZ2hsaWdodGVkRGF0YVwiXSA9IFwiZ2V0LWhpZ2hsaWdodGVkLWRhdGFcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkdldFNlbGVjdGlvbkRhdGFcIl0gPSBcImdldC1zZWxlY3Rpb25cIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlNlbGVjdFwiXSA9IFwic2VsZWN0XCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJTZWxlY3RBbGxcIl0gPSBcInNlbGVjdC1hbGxcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlNlbGVjdEJ5VmFsdWVcIl0gPSBcInNlbGVjdC1ieS12YWx1ZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiU2VsZWN0Tm9uZUluY2x1ZGluZ01hc3RlclwiXSA9IFwic2VsZWN0LW5vbmUtaW5jbHVkaW5nLW1hc3RlclwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQWRkTWFudWFsSXRlbXNUb0ZpbHRlclwiXSA9IFwiYWRkLW1hbnVhbC1pdGVtcy10by1maWx0ZXJcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNhdGVnb3JpY2FsRmlsdGVyXCJdID0gXCJjYXRlZ29yaWNhbC1maWx0ZXJcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNhdGVnb3JpY2FsRmlsdGVyQnlJbmRleFwiXSA9IFwiY2F0ZWdvcmljYWwtZmlsdGVyLWJ5LWluZGV4XCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDaGFuZ2VTaGFyZWRGaWx0ZXJcIl0gPSBcImNoYW5nZS1zaGFyZWQtZmlsdGVyXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDbGVhckNvbnRleHRGaWx0ZXJzXCJdID0gXCJjbGVhci1jb250ZXh0LWZpbHRlcnNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNsZWFyRXhpc3RpbmdGaWx0ZXJcIl0gPSBcImNsZWFyLWV4aXN0aW5nLWZpbHRlclwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiRGVmYXVsdEZpbHRlclwiXSA9IFwiZGVmYXVsdC1maWx0ZXJcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkZpbHRlckdlb1wiXSA9IFwiZmlsdGVyLWdlb1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiRmlsdGVyTmVnXCJdID0gXCJmaWx0ZXItbmVnXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJGaWx0ZXJOdWxsc1wiXSA9IFwiZmlsdGVyLW51bGxzXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJGaWx0ZXJUYXJnZXRzXCJdID0gXCJmaWx0ZXItdGFyZ2V0c1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiR2V0U2hhcmVkRmlsdGVyUHJlc01vZGVsXCJdID0gXCJnZXQtc2hhcmVkLWZpbHRlci1wcmVzLW1vZGVsXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJIaWVyYXJjaGljYWxGaWx0ZXJcIl0gPSBcImhpZXJhcmNoaWNhbC1maWx0ZXJcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIktlZXBPbmx5T3JFeGNsdWRlXCJdID0gXCJrZWVwLW9ubHktb3ItZXhjbHVkZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiUmFuZ2VGaWx0ZXJcIl0gPSBcInJhbmdlLWZpbHRlclwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiUmVsRGF0ZUZpbHRlclwiXSA9IFwicmVsYXRpdmUtZGF0ZS1maWx0ZXJcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlJlc2V0RmlsdGVyXCJdID0gXCJyZXNldC1maWx0ZXJcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlNob3dHZW9BdERlZmF1bHRcIl0gPSBcInNob3ctZ2VvLWF0LWRlZmF1bHRcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlNob3dTVkF0RGVmYXVsdFwiXSA9IFwic2hvdy1zdi1hdC1kZWZhdWx0XCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJUb2dnbGVMb2NrUXVpY2tGaWx0ZXJzXCJdID0gXCJ0b2dnbGUtbG9jay1xdWljay1maWx0ZXJzXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJBZGREYXRhQ29ubmVjdGlvblwiXSA9IFwiYWRkLWRhdGEtY29ubmVjdGlvblwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQWRkRHJpbGxQYXRoXCJdID0gXCJhZGQtZHJpbGwtcGF0aFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQWRkQ3JlZGVudGlhbHNGcm9tS2V5Y2hhaW5cIl0gPSBcImFkZC1jcmVkZW50aWFscy1mcm9tLWtleWNoYWluXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJBZGRDcmVkZW50aWFsc0Zyb21LZXljaGFpbkZpbGVcIl0gPSBcImFkZC1jcmVkZW50aWFscy1mcm9tLWtleWNoYWluLWZpbGVcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkFkZEZpZWxkRm9sZGVyXCJdID0gXCJhZGQtZmllbGQtZm9sZGVyXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJBZGRTdWJ0b3RhbHNcIl0gPSBcImFkZC1zdWJ0b3RhbHNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkFkZFRvRHJpbGxQYXRoXCJdID0gXCJhZGQtdG8tZHJpbGwtcGF0aFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQWRkVG9GaWVsZEZvbGRlclwiXSA9IFwiYWRkLXRvLWZpZWxkLWZvbGRlclwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQWdncmVnYXRlTWVhc3VyZXNGbGFnXCJdID0gXCJhZ2dyZWdhdGUtbWVhc3VyZXNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkFwcGx5Q2FsY3VsYXRpb25cIl0gPSBcImFwcGx5LWNhbGN1bGF0aW9uXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJBcHBseVBhZ2VTZXR1cE9wdGlvbnNcIl0gPSBcImFwcGx5LXBhZ2Utc2V0dXAtb3B0aW9uc1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQXBwbHlUYWJsZU9wdGlvbnNcIl0gPSBcImFwcGx5LXRhYmxlLW9wdGlvbnNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkFwcGx5VHlwZUluUGlsbFwiXSA9IFwiYXBwbHktdHlwZS1pbi1waWxsXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJBc3NlcnRcIl0gPSBcImFzc2VydFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQXR0ZW1wdENvbm5lY3REYXRhU291cmNlc09uU2hlZXRcIl0gPSBcImF0dGVtcHQtY29ubmVjdC1kYXRhc291cmNlcy1vbi1zaGVldFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQXR0ZW1wdENvbm5lY3RXb3JrYm9va1wiXSA9IFwiYXR0ZW1wdC1jb25uZWN0LXdvcmtib29rXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJBdHRlbXB0RGF0YVNvdXJjZXNDb25uZWN0aW9uXCJdID0gXCJhdHRlbXB0LWRhdGFzb3VyY2VzLWNvbm5lY3Rpb25cIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkF1dG9VcGRhdGVzXCJdID0gXCJhdXRvLXVwZGF0ZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQnJ1c2hcIl0gPSBcImhpZ2hsaWdodFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQnJ1c2hTcGVjaWFsXCJdID0gXCJoaWdobGlnaHQtc3BlY2lhbFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQnVpbGREYXRhU2NoZW1hRGF0YVNvdXJjZUNvbnRleHRNZW51XCJdID0gXCJidWlsZC1kYXRhLXNjaGVtYS1kYXRhLXNvdXJjZS1jb250ZXh0LW1lbnVcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkJ1aWxkRGF0YVNjaGVtYUNvbnRleHRNZW51XCJdID0gXCJidWlsZC1kYXRhLXNjaGVtYS1jb250ZXh0LW1lbnVcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkJ1aWxkRGF0YVNjaGVtYUZpZWxkQ29udGV4dE1lbnVcIl0gPSBcImJ1aWxkLWRhdGEtc2NoZW1hLWZpZWxkLWNvbnRleHQtbWVudVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQnVpbGREYXRhU2NoZW1hRHJpbGxQYXRoQ29udGV4dE1lbnVcIl0gPSBcImJ1aWxkLWRhdGEtc2NoZW1hLWRyaWxsLXBhdGgtY29udGV4dC1tZW51XCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJCdWlsZEZpbGVUYWJsZUluZm9QcmVzTW9kZWxcIl0gPSBcImJ1aWxkLWZpbGUtdGFibGUtaW5mby1wcmVzLW1vZGVsXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJCdWlsZFNoZWV0VGFiQ29udGV4dE1lbnVcIl0gPSBcImJ1aWxkLXNoZWV0LXRhYi1jb250ZXh0LW1lbnVcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNhbmNlbERhdGFTb3VyY2VQcmVzTW9kZWxcIl0gPSBcImNhbmNlbC1kYXRhc291cmNlLXByZXMtbW9kZWxcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNhdEJpbk1lcmdlU3BsaXRMYWJlbFwiXSA9IFwiY2F0ZWdvcmljYWwtYmluLW1lcmdlLXNwbGl0XCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDYXRlZ29yaWNhbFF1aWNrRmlsdGVyRWRpdFwiXSA9IFwiY2F0ZWdvcmljYWwtcXVpY2stZmlsdGVyLWVkaXRcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNhdGVnb3JpY2FsUXVpY2tGaWx0ZXJFeGNsdWRlVmFsdWVzXCJdID0gXCJjYXRlZ29yaWNhbC1xdWljay1maWx0ZXItZXhjbHVkZS12YWx1ZXNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNhdGVnb3JpY2FsUXVpY2tGaWx0ZXJJbmNsdWRlQWxsV2hlbkVtcHR5XCJdID0gXCJjYXRlZ29yaWNhbC1xdWljay1maWx0ZXItaW5jbHVkZS1hbGwtd2hlbi1lbXB0eVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ2F0ZWdvcmljYWxRdWlja0ZpbHRlck1vZGVcIl0gPSBcImNhdGVnb3JpY2FsLXF1aWNrLWZpbHRlci1tb2RlXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDYXRlZ29yaWNhbFF1aWNrRmlsdGVyUGF0dGVyblwiXSA9IFwiY2F0ZWdvcmljYWwtcXVpY2stZmlsdGVyLXBhdHRlcm5cIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNoYW5nZUFnZ3JlZ2F0aW9uXCJdID0gXCJjaGFuZ2UtYWdncmVnYXRpb25cIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNoYW5nZUFscGhhTGV2ZWxcIl0gPSBcImNoYW5nZS1hbHBoYS1sZXZlbFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ2hhbmdlQm9yZGVyXCJdID0gXCJjaGFuZ2UtYm9yZGVyXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDaGFuZ2VGaWVsZFR5cGVcIl0gPSBcImNoYW5nZS1maWVsZC10eXBlXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDaGFuZ2VGb3JlY2FzdENvbHVtblR5cGVcIl0gPSBcImNoYW5nZS1mb3JlY2FzdC1jb2x1bW4tdHlwZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ2hhbmdlSGFsb1wiXSA9IFwiY2hhbmdlLWhhbG9cIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNoYW5nZU1hcmtlcnNcIl0gPSBcImNoYW5nZS1tYXJrZXJzXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDaGFuZ2VTaXplXCJdID0gXCJjaGFuZ2Utc2l6ZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ2hhbmdlU2hlZXRUYWJDb2xvclwiXSA9IFwiY2hhbmdlLXNoZWV0LXRhYi1jb2xvclwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ2xlYXJBbGxBeGlzUmFuZ2VzXCJdID0gXCJjbGVhci1heGlzLXJhbmdlc1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ2xlYXJDYWxjTW9kZWxcIl0gPSBcImNsZWFyLWNhbGN1bGF0aW9uLW1vZGVsXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDbGVhckZpbHRlcnNcIl0gPSBcImNsZWFyLWZpbHRlcnNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNsZWFyRm9ybWF0dGluZ1wiXSA9IFwiY2xlYXItZm9ybWF0dGluZ1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ2xlYXJGdXR1cmVcIl0gPSBcImNsZWFyLWZ1dHVyZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ2xlYXJMYXlvdXRcIl0gPSBcImNsZWFyLWxheW91dFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ2xlYXJRdWlja0ZpbHRlclwiXSA9IFwiY2xlYXItcXVpY2stZmlsdGVyXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDbGVhclNvcnRzXCJdID0gXCJjbGVhci1zb3J0c1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ2xvc2VDb25uZWN0aW9uXCJdID0gXCJjbG9zZS1jb25uZWN0aW9uXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDbG9zZURhdGFTb3VyY2VcIl0gPSBcImNsb3NlLWRhdGEtc291cmNlXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDb25uZWN0aW9uQWRkR29vZ2xlQW5hbHl0aWNzRGltZW5zaW9uXCJdID0gXCJjb25uZWN0aW9uLWFkZC1nb29nbGUtYW5hbHl0aWNzLWRpbWVuc2lvblwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ29ubmVjdGlvbkFkZEdvb2dsZUFuYWx5dGljc01lYXN1cmVcIl0gPSBcImNvbm5lY3Rpb24tYWRkLWdvb2dsZS1hbmFseXRpY3MtbWVhc3VyZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ29ubmVjdGlvbkFkZE5ld1RhYmxlXCJdID0gXCJjb25uZWN0aW9uLWFkZC1uZXctdGFibGVcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNvbm5lY3Rpb25BZGRDb2FsZXNjZVwiXSA9IFwiY29ubmVjdGlvbi1hZGQtY29hbGVzY2VcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNvbm5lY3Rpb25BZGRQaXZvdFwiXSA9IFwiY29ubmVjdGlvbi1hZGQtcGl2b3RcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNvbm5lY3Rpb25Db252ZXJ0VG9VbmlvbkFuZEVkaXRcIl0gPSBcImNvbm5lY3Rpb24tY29udmVydC10by11bmlvbi1hbmQtZWRpdFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ29ubmVjdGlvbkNvbnZlcnRUb1VuaW9uXCJdID0gXCJjb25uZWN0aW9uLWNvbnZlcnQtdG8tdW5pb25cIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNvbm5lY3Rpb25FZGl0VW5pb25cIl0gPSBcImNvbm5lY3Rpb24tZWRpdC11bmlvblwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ29ubmVjdGlvbkFkZE9yRWRpdEJhdGNoVW5pb25cIl0gPSBcImNvbm5lY3Rpb24tYWRkLW9yLWVkaXQtYmF0Y2gtdW5pb25cIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNvbm5lY3Rpb25DaGFuZ2VUYWJsZVByb3BlcnR5XCJdID0gXCJjb25uZWN0aW9uLWNoYW5nZS10YWJsZS1wcm9wZXJ0eVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ29ubmVjdGlvbkNvdW50RW50aXR5XCJdID0gXCJjb25uZWN0aW9uLWNvdW50LWVudGl0eVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ29ubmVjdGlvbkRhdGFTZXJ2ZXJGZXRjaE1vcmVEYXRhc291cmNlc1wiXSA9IFwiY29ubmVjdGlvbi1kYXRhc2VydmVyLWZldGNoLW1vcmUtZGF0YXNvdXJjZXNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNvbm5lY3Rpb25EYXRhU2VydmVyUHJvamVjdFNlbGVjdFwiXSA9IFwiY29ubmVjdGlvbi1kYXRhc2VydmVyLWNoYW5nZS1zZWxlY3RlZC1wcm9qZWN0XCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDb25uZWN0aW9uRGF0YVNlcnZlclVwZGF0ZUZldGNoUGFyYW1ldGVyc1wiXSA9IFwiY29ubmVjdGlvbi1kYXRhc2VydmVyLXVwZGF0ZS1mZXRjaC1wYXJhbWV0ZXJzXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDb25uZWN0aW9uRGF0YVNlcnZlckZsdXNoQ2FjaGVcIl0gPSBcImNvbm5lY3Rpb24tZGF0YXNlcnZlci1mbHVzaC1jYWNoZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ29ubmVjdGlvbkRlbGV0ZUFsbFRhYmxlc1wiXSA9IFwiY29ubmVjdGlvbi1kZWxldGUtYWxsLXRhYmxlc1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ29ubmVjdGlvbkRlbGV0ZVRhYmxlXCJdID0gXCJjb25uZWN0aW9uLWRlbGV0ZS10YWJsZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ29ubmVjdGlvbkVkaXRDYXB0aW9uXCJdID0gXCJjb25uZWN0aW9uLWVkaXQtY2FwdGlvblwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ29ubmVjdGlvbkVkaXRHb29nbGVBbmFseXRpY3NBY2NvdW50XCJdID0gXCJjb25uZWN0aW9uLWVkaXQtZ29vZ2xlLWFuYWx5dGljcy1hY2NvdW50XCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDb25uZWN0aW9uRWRpdEdvb2dsZUFuYWx5dGljc0RhdGVSYW5nZVwiXSA9IFwiY29ubmVjdGlvbi1lZGl0LWdvb2dsZS1hbmFseXRpY3MtZGF0ZS1yYW5nZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ29ubmVjdGlvbkVkaXRHb29nbGVBbmFseXRpY3NNZWFzdXJlR3JvdXBcIl0gPSBcImNvbm5lY3Rpb24tZWRpdC1nb29nbGUtYW5hbHl0aWNzLW1lYXN1cmUtZ3JvdXBcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNvbm5lY3Rpb25Ub2dnbGVHQVF1ZXJ5UGFydGl0aW9uaW5nXCJdID0gXCJjb25uZWN0aW9uLXRvZ2dsZS1nYS1xdWVyeS1wYXJ0aXRpb25pbmdcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNvbm5lY3Rpb25FZGl0R29vZ2xlQW5hbHl0aWNzUHJvcGVydHlcIl0gPSBcImNvbm5lY3Rpb24tZWRpdC1nb29nbGUtYW5hbHl0aWNzLXByb3BlcnR5XCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDb25uZWN0aW9uRWRpdEdvb2dsZUFuYWx5dGljc1ZpZXdcIl0gPSBcImNvbm5lY3Rpb24tZWRpdC1nb29nbGUtYW5hbHl0aWNzLXZpZXdcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNvbm5lY3Rpb25FZGl0R29vZ2xlQW5hbHl0aWNzU2VnbWVudFwiXSA9IFwiY29ubmVjdGlvbi1lZGl0LWdvb2dsZS1hbmFseXRpY3Mtc2VnbWVudFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ29ubmVjdGlvbkVkaXRKb2luQ2xhdXNlc1wiXSA9IFwiY29ubmVjdGlvbi1lZGl0LWpvaW4tY2xhdXNlc1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ29ubmVjdGlvbkVkaXRKb2luVHlwZVwiXSA9IFwiY29ubmVjdGlvbi1lZGl0LWpvaW4tdHlwZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ29ubmVjdGlvbkVkaXRTUUxUZXh0XCJdID0gXCJjb25uZWN0aW9uLWVkaXQtc3FsLXRleHRcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNvbm5lY3Rpb25GZXRjaEVudGl0eVwiXSA9IFwiY29ubmVjdGlvbi1mZXRjaC1lbnRpdHlcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNvbm5lY3Rpb25TZXRGb3JjZUV4dHJhY3RSZWZyZXNoXCJdID0gXCJjb25uZWN0aW9uLXNldC1mb3JjZS1leHRyYWN0LXJlZnJlc2hcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNvbm5lY3Rpb25QcmVwYXJlRGF0YVNvdXJjZUZvckVkaXRcIl0gPSBcImNvbm5lY3Rpb24tcHJlcGFyZS1kYXRhc291cmNlLWZvci1lZGl0XCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDb25uZWN0aW9uQ2xlYXJSZWZyZXNoQXR0cmlidXRlc1wiXSA9IFwiY29ubmVjdGlvbi1jbGVhci1yZWZyZXNoLWF0dHJpYnV0ZXNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNvbm5lY3Rpb25SZW1vdmVHb29nbGVBbmFseXRpY3NEaW1lbnNpb25cIl0gPSBcImNvbm5lY3Rpb24tcmVtb3ZlLWdvb2dsZS1hbmFseXRpY3MtZGltZW5zaW9uXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDb25uZWN0aW9uUmVtb3ZlR29vZ2xlQW5hbHl0aWNzTWVhc3VyZVwiXSA9IFwiY29ubmVjdGlvbi1yZW1vdmUtZ29vZ2xlLWFuYWx5dGljcy1tZWFzdXJlXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDb25uZWN0aW9uUmVtb3ZlQ29hbGVzY2VcIl0gPSBcImNvbm5lY3Rpb24tcmVtb3ZlLWNvYWxlc2NlXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDb25uZWN0aW9uUmVtb3ZlUGl2b3RcIl0gPSBcImNvbm5lY3Rpb24tcmVtb3ZlLXBpdm90XCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDb25uZWN0aW9uQWRkRGF0ZVBhcnNlRm9ybWF0c1wiXSA9IFwiY29ubmVjdGlvbi1hZGQtZGF0ZS1wYXJzZS1mb3JtYXRzXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDb25uZWN0aW9uUmVuYW1lVGFibGVcIl0gPSBcImNvbm5lY3Rpb24tcmVuYW1lLXRhYmxlXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDb25uZWN0aW9uUmVwbGFjZVJlbGF0aW9uV2l0aFNRTFRleHRcIl0gPSBcImNvbm5lY3Rpb24tcmVwbGFjZS1yZWxhdGlvbi13aXRoLXNxbC10ZXh0XCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDb25uZWN0aW9uUmVwbGFjZVRhYmxlXCJdID0gXCJjb25uZWN0aW9uLXJlcGxhY2UtdGFibGVcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNvbm5lY3Rpb25SZXNldFRhYmxlQWxpYXNcIl0gPSBcImNvbm5lY3Rpb24tcmVzZXQtdGFibGUtYWxpYXNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNvbm5lY3Rpb25TZWxlY3RDYXRhbG9nXCJdID0gXCJjb25uZWN0aW9uLXNlbGVjdC1jYXRhbG9nXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDb25uZWN0aW9uU2VsZWN0Q3ViZVwiXSA9IFwiY29ubmVjdGlvbi1zZWxlY3QtY3ViZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ29ubmVjdGlvblNlbGVjdERhdGFiYXNlXCJdID0gXCJjb25uZWN0aW9uLXNlbGVjdC1kYXRhYmFzZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ29ubmVjdGlvblNlbGVjdFNjaGVtYVwiXSA9IFwiY29ubmVjdGlvbi1zZWxlY3Qtc2NoZW1hXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDb25uZWN0aW9uU2VsZWN0U3RvcmVkUHJvY2VkdXJlXCJdID0gXCJjb25uZWN0aW9uLXNlbGVjdC1zdG9yZWQtcHJvY2VkdXJlXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDb25uZWN0aW9uU2VsZWN0V2FyZWhvdXNlXCJdID0gXCJjb25uZWN0aW9uLXNlbGVjdC13YXJlaG91c2VcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNvbm5lY3Rpb25TZWxlY3RCaWdRdWVyeUxlZ2FjeVNRTENoZWNrQm94XCJdID0gXCJjb25uZWN0aW9uLXNlbGVjdC1iaWdxdWVyeS1sZWdhY3ktY2hlY2tcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNvbm5lY3Rpb25Ub2dnbGVIYXNIZWFkZXJSb3dcIl0gPSBcImNvbm5lY3Rpb24tdG9nZ2xlLWhhcy1oZWFkZXItcm93XCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDb25uZWN0aW9uVG9nZ2xlVGFibGVDbGVhbmluZ1wiXSA9IFwiY29ubmVjdGlvbi10b2dnbGUtdGFibGUtY2xlYW5pbmdcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNvbm5lY3Rpb25Ub2dnbGVVc2VFeHRyYWN0XCJdID0gXCJjb25uZWN0aW9uLXRvZ2dsZS11c2UtZXh0cmFjdFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ29ubmVjdGlvblZpZXdUYWJsZUNsZWFuaW5nUmVzdWx0c1wiXSA9IFwiY29ubmVjdGlvbi12aWV3LXRhYmxlLWNsZWFuaW5nLXJlc3VsdHNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNvbm5lY3RUb0RhdGFTZXJ2ZXJTb3VyY2VcIl0gPSBcImNvbm5lY3QtZGF0YS1zZXJ2ZXItZGF0YXNvdXJjZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ29uc2lkZXJaZXJvc0VtcHR5RmxhZ1wiXSA9IFwiY29uc2lkZXItemVyb3MtZW1wdHlcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNvbnZlcnRVbm5hbWVkRmllbGRzXCJdID0gXCJjb252ZXJ0LXVubmFtZWQtZmllbGRzXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDcmFzaFwiXSA9IFwiY3Jhc2hcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNyZWF0ZUFnZ3JlZ2F0ZVJvbGVcIl0gPSBcImNyZWF0ZS1hZ2dyZWdhdGUtcm9sZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ3JlYXRlQ29ubmVjdGlvblwiXSA9IFwiY3JlYXRlLWNvbm5lY3Rpb25cIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNyZWF0ZURlZmF1bHRRdWlja0ZpbHRlclwiXSA9IFwiY3JlYXRlLWRlZmF1bHQtcXVpY2stZmlsdGVyXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDcmVhdGVUeXBlSW5QaWxsXCJdID0gXCJjcmVhdGUtdHlwZS1pbi1waWxsXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDdXN0b21EYXRhR3JpZEZpZWxkT3JkZXJcIl0gPSBcImN1c3RvbS1kYXRhZ3JpZC1maWVsZC1vcmRlclwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ3VzdG9tRGF0ZUFnZ3JlZ2F0aW9uXCJdID0gXCJjdXN0b20tZGF0ZS1hZ2dyZWdhdGlvblwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ3VzdG9tU3BsaXRGaWVsZFwiXSA9IFwiY3VzdG9tLXNwbGl0LWZpZWxkXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJEZWJ1Z0Fzc2VydGlvblwiXSA9IFwiZGVidWctYXNzZXJ0aW9uXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJEZWNyZW1lbnRQYXJhbWV0ZXJWYWx1ZVwiXSA9IFwiZGVjci1wYXJhbWV0ZXItdmFsdWVcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkRlbGV0ZUZpZWxkc1wiXSA9IFwiZGVsZXRlLWNhbGN1bGF0aW9uLWZpZWxkcy1jb21tYW5kXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJEZWxldGVTaGVldFwiXSA9IFwiZGVsZXRlLXNoZWV0XCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJEZXNjcmliZURyaWxsUGF0aFwiXSA9IFwiZGVzY3JpYmUtZHJpbGwtcGF0aFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiRGVzY3JpYmVTb3J0RmlsdGVyXCJdID0gXCJkZXNjcmliZS1zb3J0LWZpbHRlclwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiRGlzbWlzc051bGxXYXJ0XCJdID0gXCJkaXNtaXNzLW51bGwtd2FydFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiRG9tYWluUXVpY2tGaWx0ZXJcIl0gPSBcImRvbWFpbi1xdWljay1maWx0ZXJcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkRvdWJsZUZyZWVDcmFzaFwiXSA9IFwiZG91YmxlLWZyZWVcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkRyb3BOb3doZXJlXCJdID0gXCJkcm9wLW5vd2hlcmVcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkRyb3BPblNjaGVtYVZpZXdlclwiXSA9IFwiZHJvcC1vbi1zY2hlbWEtdmlld2VyXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJEcm9wT25TaGVsZlwiXSA9IFwiZHJvcC1vbi1zaGVsZlwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiRHJvcE9uQ2FsY0VkaXRvclwiXSA9IFwiZHJvcC1vbi1jYWxjLWVkaXRvclwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiRHJvcE9uU2hvd01lXCJdID0gXCJkcm9wLW9uLXNob3dtZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiRHJvcFByZXBhcmVcIl0gPSBcImRyb3AtcHJlcGFyZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiRHVhbEF4aXNcIl0gPSBcImR1YWwtYXhpc1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiRHVwbGljYXRlU2hlZXRcIl0gPSBcImR1cGxpY2F0ZS1zaGVldFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiRWRpdENvcHlDYWxjXCJdID0gXCJlZGl0LWNvcHktY2FsY1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiRWRpdERyb3BMaW5lc1wiXSA9IFwiZWRpdC1kcm9wLWxpbmVzXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJFZGl0RW51bWVyYXRlZEdyb3VwXCJdID0gXCJlZGl0LWVudW1lcmF0ZWQtZ3JvdXBcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkVkaXROZXN0ZWRHcm91cFwiXSA9IFwiZWRpdC1uZXN0ZWQtZ3JvdXBcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkVkaXRQaWxsXCJdID0gXCJlZGl0LXBpbGxcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkVkaXRQcmltaXRpdmVUeXBlXCJdID0gXCJlZGl0LXByaW1pdGl2ZS10eXBlXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJFbmFibGVBbGxCcnVzaGluZ1wiXSA9IFwiZW5hYmxlLWFsbC1oaWdobGlnaHRzXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJFbmFibGVRdWlja0ZpbHRlclwiXSA9IFwiZW5hYmxlLXF1aWNrLWZpbHRlclwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiRW5hYmxlU2hlZXRCcnVzaGluZ1wiXSA9IFwiZW5hYmxlLXNoZWV0LWhpZ2hsaWdodHNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkVuYWJsZVRoZW1lZEJydXNoaW5nXCJdID0gXCJlbmFibGUtdGhlbWVkLWhpZ2hsaWdodHNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkVudW1lcmF0ZVZhcmlhYmxlc1wiXSA9IFwiZW51bWVyYXRlLXZhcmlhYmxlc1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiRW51bWVyYXRlVmFyaWFibGVTZWxlY3Rpb25WYWx1ZXNcIl0gPSBcImVudW1lcmF0ZS12YXJpYWJsZS1zZWxlY3Rpb24tdmFsdWVzXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJFc3RhYmxpc2hDb25uZWN0aW9uXCJdID0gXCJlc3RhYmxpc2gtY29ubmVjdGlvblwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiRXN0YWJsaXNoTWF0Y2hpbmdDb25uZWN0aW9uc1wiXSA9IFwiZXN0YWJsaXNoLW1hdGNoaW5nLWNvbm5lY3Rpb25zXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJFeHBvcnREYXRhVG9UZXh0XCJdID0gXCJleHBvcnQtZGF0YS10by10ZXh0XCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJFeHRTdmNDb25maWdcIl0gPSBcImV4dC1zdmMtY29uZmlnXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJFeHRTdmNDb25maWdDb25uZWN0XCJdID0gXCJleHQtc3ZjLWNvbmZpZy1jb25uZWN0XCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJFeHRyYWN0XCJdID0gXCJleHRyYWN0XCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJTZXREYXRhR3JpZEN1cnJlbnRUYWJsZVwiXSA9IFwic2V0LWRhdGEtZ3JpZC1jdXJyZW50LXRhYmxlXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJGZXRjaFRhYmxlUmVsZXZhbmNlXCJdID0gXCJmZXRjaC10YWJsZS1yZWxldmFuY2VcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkZldGNoQ2FjaGVkVGFibGVSZWxldmFuY2VcIl0gPSBcImZldGNoLWNhY2hlZC10YWJsZS1yZWxldmFuY2VcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkZsaXBMYWJlbHNcIl0gPSBcImZsaXAtbGFiZWxzXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJGbG9hdGluZ1Rvb2xiYXJcIl0gPSBcInpvb20tY29udHJvbHNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkZsb2F0aW5nVG9vbGJhclRvZ2dsZVwiXSA9IFwiem9vbS1jb250cm9scy10b2dnbGVcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkZvcmVjYXN0Q29uZmlnXCJdID0gXCJmb3JlY2FzdC1jb25maWdcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkZvcmVjYXN0VG9nZ2xlXCJdID0gXCJmb3JlY2FzdC10b2dnbGVcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkZvcm1hdFdvcmtib29rXCJdID0gXCJmb3JtYXQtd29ya2Jvb2tcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkdlb2dyYXBoaWNTZWFyY2hRdWVyeVwiXSA9IFwiZ2VvZ3JhcGhpYy1zZWFyY2gtcXVlcnlcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkdlb2dyYXBoaWNTZWFyY2hMb2FkRGF0YVwiXSA9IFwiZ2VvZ3JhcGhpYy1zZWFyY2gtbG9hZC1kYXRhXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJHZW9ncmFwaGljU2VhcmNoSXNEYXRhRG9uZUxvYWRpbmdcIl0gPSBcImdlb2dyYXBoaWMtc2VhcmNoLWRhdGEtZG9uZS1sb2FkaW5nXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJHZW9ncmFwaGljU2VhcmNoVG9nZ2xlVmlzaWJpbGl0eVwiXSA9IFwiZ2VvZ3JhcGhpYy1zZWFyY2gtdG9nZ2xlLXZpc2liaWxpdHlcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkdldEVkaXRDb25uZWN0aW9uUHJlc01vZGVsXCJdID0gXCJnZXQtZWRpdC1jb25uZWN0aW9uLXByZXMtbW9kZWxcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkdldEVkaXRFbnVtZXJhdGVkR3JvdXBQcmVzTW9kZWxcIl0gPSBcImdldC1lZGl0LWVudW1lcmF0ZWQtZ3JvdXAtcHJlcy1tb2RlbFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiR2V0RWRpdE5lc3RlZEdyb3VwUHJlc01vZGVsXCJdID0gXCJnZXQtZWRpdC1uZXN0ZWQtZ3JvdXAtcHJlcy1tb2RlbFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiR2V0RnJhbWVGaW5kZXJQcmVzTW9kZWxcIl0gPSBcImdldC1mcmFtZS1maW5kZXItcHJlcy1tb2RlbFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiR2V0R29vZ2xlU2hlZXRzTGlzdFByZXNNb2RlbFwiXSA9IFwiZ2V0LWdvb2dsZS1zaGVldHMtbGlzdC1wcmVzLW1vZGVsXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJHZXRHb29nbGVTaGVldFBhbmVQcmVzTW9kZWxcIl0gPSBcImdldC1nb29nbGUtc2hlZXQtcGFuZS1wcmVzLW1vZGVsXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJHZXRJbml0aWFsU1FMUHJlc01vZGVsXCJdID0gXCJnZXQtaW5pdGlhbC1zcWwtcHJlcy1tb2RlbFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiR2V0UXVlcnlCYW5kaW5nUHJlc01vZGVsXCJdID0gXCJnZXQtcXVlcnktYmFuZGluZy1wcmVzLW1vZGVsXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJHZXRUYWJiZWRBdXRoZW50aWNhdGlvblByZXNNb2RlbFwiXSA9IFwiZ2V0LXRhYmJlZC1hdXRoZW50aWNhdGlvbi1wcmVzLW1vZGVsXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJHZXRBY3RpdmVTaGVldFwiXSA9IFwiZ2V0LWFjdGl2ZS1zaGVldFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiR2V0QWxwaGFMZXZlbFwiXSA9IFwiZ2V0LWFscGhhLWxldmVsXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJHZXRBcHBDb25maWdcIl0gPSBcImdldC1hcHAtY29uZmlnXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJHZXREaXNhYmxlZFNlY29uZGFyeURTRmllbGRzXCJdID0gXCJnZXQtZGlzYWJsZWQtc2Vjb25kYXJ5ZHMtZmllbGRzXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJHZXRCbGVuZGluZ0ZpZWxkc1wiXSA9IFwiZ2V0LWJsZW5kaW5nLWZpZWxkc1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiR2V0Q2FsY3VsYXRpb25QcmVzTW9kZWxcIl0gPSBcImdldC1jYWxjdWxhdGlvbi1wcmVzLW1vZGVsXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJHZXRDYXRlZ29yaWNhbENvbG9yXCJdID0gXCJnZXQtY2F0ZWdvcmljYWwtY29sb3JcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkdldENsaWVudEluZm9cIl0gPSBcImdldC1jbGllbnQtaW5mb1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiR2V0Q29tbWFuZHNcIl0gPSBcImdldC1jb21tYW5kc1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiR2V0Q29ubmVjdGlvbkRlc2NyaXB0aW9uUHJlc01vZGVsXCJdID0gXCJnZXQtY29ubmVjdGlvbi1kZXNjcmlwdGlvbi1wcmVzLW1vZGVsXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJHZXREU0Ryb3Bkb3duUHJlc01vZGVsXCJdID0gXCJnZXQtZHMtZHJvcGRvd24tcHJlcy1tb2RlbFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiR2V0RGF0YVByZXZpZXdXaW5kb3dNZXNzYWdlUHJlc01vZGVsXCJdID0gXCJnZXQtZGF0YS1wcmV2aWV3LXdpbmRvdy1wcmVzLW1vZGVsXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJHZXREYXRhU291cmNlUHJlc01vZGVsXCJdID0gXCJnZXQtZGF0YXNvdXJjZS1wcmVzLW1vZGVsXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJHZXREYXRhU291cmNlU29ydFByZXNNb2RlbFwiXSA9IFwiZ2V0LWRhdGFzb3VyY2Utc29ydC1wcmVzLW1vZGVsXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJHZXREYXRhU291cmNlUHJvcGVydGllc1ByZXNNb2RlbFwiXSA9IFwiZ2V0LWRhdGFzb3VyY2UtcHJvcGVydGllcy1wcmVzLW1vZGVsXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJHZXRDb25uZWN0aW9uU2V0dGluZ3NQcmVzTW9kZWxcIl0gPSBcImdldC1jb25uZWN0aW9uLXNldHRpbmdzLXByZXMtbW9kZWxcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkdldERhc2hib2FyZFwiXSA9IFwiZ2V0LWRhc2hib2FyZFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiR2V0RGF0YVByZXZpZXdcIl0gPSBcImdldC1kYXRhLXByZXZpZXdcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkdldERhdGFiYXNlRW51bWVyYXRpb25QcmVzTW9kZWxcIl0gPSBcImdldC1kYXRhYmFzZS1lbnVtZXJhdGlvbi1wcmVzLW1vZGVsXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJHZXREZWZhdWx0Q29sb3JcIl0gPSBcImdldC1kZWZhdWx0LWNvbG9yXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJHZXREZWZhdWx0U2hhcGVcIl0gPSBcImdldC1kZWZhdWx0LXNoYXBlXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJHZXREcmFnUHJlc01vZGVsRm9yVGV4dFwiXSA9IFwiZ2V0LWRyYWctcHJlcy1tb2RlbC1mb3ItdGV4dFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiR2V0RHJvcFRhcmdldFByZXNNb2RlbFwiXSA9IFwiZ2V0LWRyb3AtdGFyZ2V0LXByZXMtbW9kZWxcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkdldEVkaXREYXRhU2VydmVyQ29ubmVjdGlvblByZXNNb2RlbFwiXSA9IFwiZ2V0LWVkaXQtZGF0YS1zZXJ2ZXItY29ubmVjdGlvbi1wcmVzLW1vZGVsXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJHZXRFZGl0RHJvcExpbmVzTW9kZWxcIl0gPSBcImdldC1lZGl0LWRyb3AtbGluZXMtbW9kZWxcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkdldEVuY29kaW5nU3RhdGVcIl0gPSBcImdldC1lbmNvZGluZy1zdGF0ZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiR2V0RW5jb2RpbmdUeXBlTWVudU1vZGVsXCJdID0gXCJnZXQtZW5jb2RpbmctdHlwZS1tZW51XCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJHZXRFeHRTdmNDb25maWdcIl0gPSBcImdldC1leHQtc3ZjLWNvbmZpZ1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiR2V0Rm9yZWNhc3RQcmVzTW9kZWxcIl0gPSBcImdldC1mb3JlY2FzdC1wcmVzLW1vZGVsXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJHZXRKb2luRGVzY3JpcHRpb25QcmVzTW9kZWxcIl0gPSBcImdldC1qb2luLWRlc2NyaXB0aW9uLXByZXMtbW9kZWxcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkdldFF1aWNrRmlsdGVyXCJdID0gXCJnZXQtcXVpY2stZmlsdGVyXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJHZXRRdWlja0ZpbHRlcnNcIl0gPSBcImdldC1xdWljay1maWx0ZXJzXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJHZXRSZWZlcmVuY2VMaW5lUHJlc01vZGVsXCJdID0gXCJnZXQtcmVmZXJlbmNlLWxpbmUtcHJlcy1tb2RlbFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiR2V0UGFyYW1ldGVyc1wiXSA9IFwiZ2V0LXBhcmFtZXRlcnNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkdldFBhcmFtZXRlck1vZGVsc1wiXSA9IFwiZ2V0LXBhcmFtZXRlci1tb2RlbHNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkdldFBhcmFtZXRlcnNSZWdpc3RyeUluZm9cIl0gPSBcImdldC1wYXJhbXMtcmVnaXN0cnktaW5mb1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiR2V0UGl2b3RQcmVzTW9kZWxcIl0gPSBcImdldC1waXZvdC1wcmVzLW1vZGVsXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJHZXRTY2VuZVwiXSA9IFwiZ2V0LXNjZW5lXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJHZXRTY2hlbWFFbnVtZXJhdGlvblByZXNNb2RlbFwiXSA9IFwiZ2V0LXNjaGVtYS1lbnVtZXJhdGlvbi1wcmVzLW1vZGVsXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJHZXRTaGVldHNJbmZvXCJdID0gXCJnZXQtc2hlZXRzLWluZm9cIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkdldFNob3dNZVwiXSA9IFwiZ2V0LXNob3ctbWVcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkdldFN0YW5kYXJkQ29ubmVjdGlvbkVudW1lcmF0aW9uUHJlc01vZGVsXCJdID0gXCJnZXQtc3RhbmRhcmQtY29ubmVjdGlvbi1lbnVtZXJhdGlvbi1wcmVzLW1vZGVsXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJHZXRTdG9yZWRQcm9jZWR1cmVFbnVtZXJhdGlvblByZXNNb2RlbFwiXSA9IFwiZ2V0LXN0b3JlZC1wcm9jZWR1cmUtZW51bWVyYXRpb24tcHJlcy1tb2RlbFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiR2V0U3RvcmVkUHJvY2VkdXJlUGFyYW1ldGVyc1ByZXNNb2RlbFwiXSA9IFwiZ2V0LXN0b3JlZC1wcm9jZWR1cmUtcGFyYW1ldGVycy1wcmVzLW1vZGVsXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJHZXRUYWJsZUVudW1lcmF0aW9uUHJlc01vZGVsXCJdID0gXCJnZXQtdGFibGUtZW51bWVyYXRpb24tcHJlcy1tb2RlbFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiR2V0VGFibGVDbGVhbmluZ1ByZXNNb2RlbFwiXSA9IFwiZ2V0LXRhYmxlLWNsZWFuaW5nLXByZXMtbW9kZWxcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkdldFRhcmdldEZpZWxkTGlzdFwiXSA9IFwiZ2V0LXRhcmdldC1maWVsZC1saXN0XCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJHZXRUb3BMZXZlbENvbm5lY3Rpb25EZXNjcmlwdGlvblByZXNNb2RlbFwiXSA9IFwiZ2V0LXRvcC1sZXZlbC1jb25uZWN0aW9uLWRlc2NyaXB0aW9uLXByZXMtbW9kZWxcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkdldFR5cGVJblBpbGxQcmVzTW9kZWxcIl0gPSBcImdldC10eXBlLWluLXBpbGwtcHJlcy1tb2RlbFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiR2V0VWJlclRpcFByZXNNb2RlbFwiXSA9IFwiZ2V0LXViZXJ0aXAtcHJlcy1tb2RlbFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiR2V0VW5pb25JbmZvUHJlc01vZGVsXCJdID0gXCJnZXQtdW5pb24taW5mby1wcmVzLW1vZGVsXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJHZXRWaXN1YWxcIl0gPSBcImdldC12aXN1YWxcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkdldFZpekRhdGFcIl0gPSBcImdldC12aXotZGF0YVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiR2V0V2FyZWhvdXNlRW51bWVyYXRpb25QcmVzTW9kZWxcIl0gPSBcImdldC13YXJlaG91c2UtZW51bWVyYXRpb24tcHJlcy1tb2RlbFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiR2V0V29ya2Jvb2tcIl0gPSBcImdldC13b3JrYm9va1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiR2V0V29ybGRVcGRhdGVcIl0gPSBcImdldC13b3JsZC11cGRhdGVcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkdvVG9TaGVldFwiXSA9IFwiZ290by1zaGVldFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiSGVhcENvcnJ1cHRpb25DcmFzaFwiXSA9IFwiY29ycnVwdC1oZWFwXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJIaWRlQ29sdW1uRmllbGRMYWJlbFwiXSA9IFwiaGlkZS1jb2x1bW4tZmllbGQtbGFiZWxcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkhpZGVFbXB0eUNvbHNGbGFnXCJdID0gXCJoaWRlLWVtcHR5LWNvbHNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkhpZGVFbXB0eVJvd3NGbGFnXCJdID0gXCJoaWRlLWVtcHR5LXJvd3NcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkhpZGVMYWJlbFwiXSA9IFwiaGlkZS1sYWJlbFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiSGlkZVJvd0ZpZWxkTGFiZWxcIl0gPSBcImhpZGUtcm93LWZpZWxkLWxhYmVsXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJIaWVyYXJjaGljYWxRdWlja0ZpbHRlclVwZGF0ZVNldEZ1bmN0aW9uXCJdID0gXCJoaWVyYXJjaGljYWwtcXVpY2stZmlsdGVyLXVwZGF0ZS1zZXQtZnVuY3Rpb25cIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkluY2x1ZGVJblRvb2x0aXBcIl0gPSBcImluY2x1ZGUtaW4tdG9vbHRpcFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiSW5jbHVkZU90aGVyQ2F0ZWdvcmljYWxCaW5cIl0gPSBcImluY2x1ZGUtb3RoZXItY2F0LWJpblwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiSW5jcmVtZW50RXh0cmFjdFwiXSA9IFwiaW5jcmVtZW50LWV4dHJhY3RcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkluY3JlbWVudFBhcmFtZXRlclZhbHVlXCJdID0gXCJpbmNyLXBhcmFtZXRlci12YWx1ZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ3JlYXRlQ2FsY1wiXSA9IFwiY3JlYXRlLWNhbGNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkVkaXRDYWxjXCJdID0gXCJlZGl0LWNhbGNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkludm9rZUh5cGVybGlua1wiXSA9IFwiaW52b2tlLWh5cGVybGlua1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiS2VlcE9ubHlPckV4Y2x1ZGVTZWxlY3Rpb25cIl0gPSBcImtlZXAtb25seS1vci1leGNsdWRlLXNlbGVjdGlvblwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiTGFiZWxEcmlsbFwiXSA9IFwibGFiZWwtZHJpbGxcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkxhYmVsRHJpbGxDdHhcIl0gPSBcImxhYmVsLWRyaWxsLWN0eFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiTGV2ZWxEcmlsbFwiXSA9IFwibGV2ZWwtZHJpbGxcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkxvYWRVcmxcIl0gPSBcImxvYWQtdXJsXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJMaXN0UHVibGlzaGVkRGF0YVNvdXJjZXNcIl0gPSBcImxpc3QtcHVibGlzaGVkLWRhdGFzb3VyY2VzXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJNYXJrTGFiZWxcIl0gPSBcIm1hcmstbGFiZWxcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIk1hcmtUcmFpbFwiXSA9IFwibWFyay10cmFpbFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiTWVtb3J5RHVtcE9iamVjdENvdW50c1wiXSA9IFwibWVtb3J5LWR1bXAtb2JqZWN0LWNvdW50c1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiTWVtb3J5TGVha1wiXSA9IFwibWVtb3J5LWxlYWtcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIk1lcmdlXCJdID0gXCJtZXJnZS1vci1zcGxpdFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiTWlncmF0ZURhdGFTb3VyY2VcIl0gPSBcIm1pZ3JhdGUtZGF0YS1zb3VyY2VcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIk1vZGlmeU1hcmtzSW5TZXRcIl0gPSBcImFkZC1vci1yZW1vdmUtbWFya3NcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIk1vdmVBcmVhQW5ub3RhdGlvblRleHRcIl0gPSBcIm1vdmUtYXJlYS1hbm5vdGF0aW9uLXRleHRcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIk1vdmVDb2x1bW5Ub3RhbHNcIl0gPSBcIm1vdmUtY29sdW1uLXRvdGFsc1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiTW92ZU1hcmtcIl0gPSBcIm1vdmUtbWFya1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiTW92ZVBvaW50QW5ub3RhdGlvblwiXSA9IFwibW92ZS1wb2ludC1hbm5vdGF0aW9uXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJNb3ZlUG9pbnRBbm5vdGF0aW9uVGFyZ2V0XCJdID0gXCJtb3ZlLXBvaW50LWFubm90YXRpb24tdGFyZ2V0XCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJNb3ZlUmVmZXJlbmNlTGluZVwiXSA9IFwibW92ZS1yZWZlcmVuY2UtbGluZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiTW92ZVJvd1RvdGFsc1wiXSA9IFwibW92ZS1yb3ctdG90YWxzXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJOYXZpZ2F0ZVRvU2hlZXRcIl0gPSBcIm5hdmlnYXRlLXRvLXNoZWV0XCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJQb3N0Q2FsY0pvaW5DbGF1c2VSZXN1bHRcIl0gPSBcInBvc3QtY2FsYy1qb2luLWNsYXVzZS1yZXN1bHRcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIk5ld0RvY0Rhc2hib2FyZFwiXSA9IFwibmV3LWRhc2hib2FyZFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiTmV3RG9jV29ya3NoZWV0XCJdID0gXCJuZXctd29ya3NoZWV0XCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJOb25SYW5nZWRSZW1vdmVSZWZlcmVuY2VMaW5lXCJdID0gXCJub24tcmFuZ2VkLXJlbW92ZS1yZWZlcmVuY2UtbGluZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiT3B0aW1pemVFeHRyYWN0XCJdID0gXCJvcHRpbWl6ZS1leHRyYWN0XCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJPcHRPdXRBY3Rpb25zXCJdID0gXCJvcHQtb3V0LWFjdGlvbnNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlBhZ2VIaXN0b3J5U2V0dGluZ3NcIl0gPSBcInBhZ2UtaGlzdG9yeS1zZXR0aW5nc1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiUGFnZVRvZ2dsZVRyYWlsc1wiXSA9IFwicGFnZS10b2dnbGUtdHJhaWxzXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJQYXJzZVVJTmFtZVwiXSA9IFwicGFyc2UtdWktbmFtZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiUGVyY2VudGFnZXNcIl0gPSBcInBlcmNlbnRhZ2VzXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJQZXJzcGVjdGl2ZXNcIl0gPSBcInBlcnNwZWN0aXZlc1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiUG9zaXRpb25Qb2ludEFubm90YXRpb25cIl0gPSBcInBvc2l0aW9uLXBvaW50LWFubm90YXRpb25cIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlByb3RvY29sUG9vbExvZ1wiXSA9IFwicHJvdG9jb2wtcG9vbC1sb2dcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlB1Ymxpc2hEYXRhU291cmNlXCJdID0gXCJwdWJsaXNoLWRhdGFzb3VyY2VcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlB1Ymxpc2hEYXRhU291cmNlRnJvbURhdGFcIl0gPSBcInB1Ymxpc2gtZGF0YS1zb3VyY2UtZnJvbS1kYXRhXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJQdWJsaXNoRGF0YVNvdXJjZUZyb21Xb3JrYm9va0RhdGFcIl0gPSBcInB1Ymxpc2gtZGF0YS1zb3VyY2UtZnJvbS13b3JrYm9vay1kYXRhXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJRdWFudGl0YXRpdmVRdWlja0ZpbHRlckVkaXRcIl0gPSBcInF1YW50aXRhdGl2ZS1xdWljay1maWx0ZXItZWRpdFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiUXVhbnRpdGF0aXZlTW9kZVF1aWNrRmlsdGVyXCJdID0gXCJxdWFudGl0YXRpdmUtbW9kZS1xdWljay1maWx0ZXJcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlF1ZXJ5TWlncmF0ZURhdGFTb3VyY2VzXCJdID0gXCJxdWVyeS1taWdyYXRlLWRhdGEtc291cmNlc1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiUXVpY2tTb3J0XCJdID0gXCJxdWljay1zb3J0XCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJSYW5nZWRCeUluZGV4TWVyZ2VcIl0gPSBcInJhbmdlZC1ieS1pbmRleC1tZXJnZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiUmFuZ2VkQnlWYWx1ZU1lcmdlXCJdID0gXCJyYW5nZWQtYnktdmFsdWUtbWVyZ2VcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlJlY29yZFwiXSA9IFwicmVjb3JkXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJSZWRvXCJdID0gXCJyZWRvXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJSZWZyZXNoRXh0cmFjdFwiXSA9IFwicmVmcmVzaC1leHRyYWN0XCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJSZWZyZXNoRnJvbVNvdXJjZVwiXSA9IFwicmVmcmVzaC1mcm9tLXNvdXJjZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiUmVsYXRpdmVEYXRlUXVpY2tGaWx0ZXJFZGl0XCJdID0gXCJyZWxhdGl2ZS1kYXRlLXF1aWNrLWZpbHRlci1lZGl0XCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJSZW1vdmVBbGxSZWZlcmVuY2VMaW5lc1wiXSA9IFwicmVtb3ZlLWFsbC1yZWZlcmVuY2UtbGluZXNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlJlbW92ZURyaWxsUGF0aFwiXSA9IFwicmVtb3ZlLWRyaWxsLXBhdGhcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlJlbW92ZUV4dHJhY3RcIl0gPSBcInJlbW92ZS1leHRyYWN0XCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJSZW1vdmVGaWVsZEZvbGRlclwiXSA9IFwicmVtb3ZlLWZpZWxkLWZvbGRlclwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiUmVtb3ZlRmllbGRMYWJlbFwiXSA9IFwicmVtb3ZlLWZpZWxkLWxhYmVsXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJSZW1vdmVGaWVsZHNcIl0gPSBcInJlbW92ZS1maWVsZHNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlJlbW92ZUZpZWxkc0Zyb21TaGVsZlwiXSA9IFwicmVtb3ZlLWZpZWxkcy1mcm9tLXNoZWxmXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJSZW1vdmVGcm9tRHJpbGxQYXRoXCJdID0gXCJyZW1vdmUtZnJvbS1kcmlsbC1wYXRoXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJSZW1vdmVGcm9tRmllbGRGb2xkZXJcIl0gPSBcInJlbW92ZS1mcm9tLWZpZWxkLWZvbGRlclwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiUmVtb3ZlUmVmZXJlbmNlTGluZVwiXSA9IFwicmVtb3ZlLXJlZmVyZW5jZS1saW5lXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJSZW1vdmVTdWJ0b3RhbHNcIl0gPSBcInJlbW92ZS1zdWJ0b3RhbHNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlJlbmFtZURhdGFTb3VyY2VcIl0gPSBcInJlbmFtZS1kYXRhLXNvdXJjZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiUmVuYW1lRHJpbGxQYXRoXCJdID0gXCJyZW5hbWUtZHJpbGwtcGF0aFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiUmVuYW1lRmllbGRGb2xkZXJcIl0gPSBcInJlbmFtZS1maWVsZC1mb2xkZXJcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlJlbmFtZVNoZWV0XCJdID0gXCJyZW5hbWUtc2hlZXRcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlJlb3JkZXJMYWJlbHNcIl0gPSBcInJlb3JkZXItbGFiZWxzXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJSZXBvcnRCdWdcIl0gPSBcInJlcG9ydC1idWdcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlJlcXVlc3REYXRhU291cmNlUHJlc01vZGVsXCJdID0gXCJyZXF1ZXN0LWRhdGFzb3VyY2UtcHJlcy1tb2RlbFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiUmVzZXRQYXJhbWV0ZXJDdHJsVGl0bGVcIl0gPSBcInJlc2V0LXBhcmFtZXRlci1jdHJsLXRpdGxlXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJSZXNldFRvb2x0aXBcIl0gPSBcInJlc2V0LXRvb2x0aXBcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlJlc2l6ZUFyZWFBbm5vdGF0aW9uVGV4dFwiXSA9IFwicmVzaXplLWFyZWEtYW5ub3RhdGlvbi10ZXh0XCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJSZXNpemVBeGlzXCJdID0gXCJyZXNpemUtYXhpc1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiUmVzaXplQ2VsbFwiXSA9IFwicmVzaXplLWNlbGxcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlJlc2l6ZUhlYWRlclwiXSA9IFwicmVzaXplLWhlYWRlclwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiUmVzaXplUG9pbnRBbm5vdGF0aW9uXCJdID0gXCJyZXNpemUtcG9pbnQtYW5ub3RhdGlvblwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiUmV2ZXJ0XCJdID0gXCJyZXZlcnRcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlJvdGF0ZUZpZWxkTGFiZWxcIl0gPSBcInJvdGF0ZS1maWVsZC1sYWJlbFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiUm90YXRlTGFiZWxcIl0gPSBcInJvdGF0ZS1sYWJlbFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiU3BsaXRGaWVsZExhYmVsXCJdID0gXCJzcGxpdC1maWVsZC1sYWJlbFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiUnVuQWN0aW9uXCJdID0gXCJydW4tYWN0aW9uXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJSdW5TY3JpcHRcIl0gPSBcInJ1bi1zY3JpcHRcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlJ1blVwZGF0ZXNcIl0gPSBcInJ1bi11cGRhdGVcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlNhdmVNb2RlbFwiXSA9IFwic2F2ZS1tb2RlbFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiU2F2ZVB1Ymxpc2hlZERTdG9GaWxlXCJdID0gXCJzYXZlLXB1Ymxpc2hlZC1kcy10by1maWxlXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJTZWxlY3REYXRhU291cmNlXCJdID0gXCJzZWxlY3QtZGF0YS1zb3VyY2VcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlNlbGVjdEZpZWxkc0luU2hlbGZcIl0gPSBcInNlbGVjdC1maWVsZHMtaW4tc2hlbGZcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlNlbmREYXRhQ29ubmVjdGlvblRhYmxlVmlld01lc3NhZ2VcIl0gPSBcInNlbmQtZGF0YS1jb25uZWN0aW9uLXRhYmxldmlldy1tZXNzYWdlXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJTZXRBY3RpdmVEYXRhU291cmNlTmFtZVwiXSA9IFwic2V0LWFjdGl2ZS1kYXRhLXNvdXJjZS1uYW1lXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJTZXRBY3RpdmVDb25uZWN0aW9uTmFtZVwiXSA9IFwic2V0LWFjdGl2ZS1jb25uZWN0aW9uLW5hbWVcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlNldEFjdGl2ZURhdGFTb3VyY2VcIl0gPSBcInNldC1hY3RpdmUtZGF0YXNvdXJjZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiU2V0QmFzZVBhbGV0dGVcIl0gPSBcInNldC1iYXNlLXBhbGV0dGVcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlNldENhdGVnb3JpY2FsQ29sb3JcIl0gPSBcInNldC1jYXRlZ29yaWNhbC1jb2xvclwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiU2V0RGF0YUNhY2hlRGVsdGFcIl0gPSBcInNldC1kYXRhLWNhY2hlLWRlbHRhXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJTZXREYXRhUHJldmlld0F1dG9VcGRhdGVcIl0gPSBcInNldC1kYXRhLXByZXZpZXctYXV0by11cGRhdGVcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlNldERhdGFQcmV2aWV3Q3VzdG9tRmllbGRPcmRlclwiXSA9IFwic2V0LWRhdGEtcHJldmlldy1jdXN0b20tZmllbGQtb3JkZXJcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlNldERlZmF1bHRDb2xvclwiXSA9IFwic2V0LWRlZmF1bHQtY29sb3JcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlNldERlZmF1bHRTaGFwZVwiXSA9IFwic2V0LWRlZmF1bHQtc2hhcGVcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlNldEZpbHRlckNvbnRleHRcIl0gPSBcInNldC1maWx0ZXItY29udGV4dFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiU2V0RmlsdGVyU2hhcmVkXCJdID0gXCJzZXQtZmlsdGVyLXNoYXJlZFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiU2V0SW5pdGlhbFNRTFwiXSA9IFwic2V0LWluaXRpYWwtc3FsXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJTZXRJdGVtQ29sb3JcIl0gPSBcInNldC1pdGVtLWNvbG9yXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJTZXRJdGVtQ29sb3JSZXNldEN1c3RvbWl6YXRpb25cIl0gPSBcInNldC1pdGVtLWNvbG9yLXJlc2V0LWN1c3RvbWl6YXRpb25cIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlNldEl0ZW1FbmNvZGluZ1R5cGVcIl0gPSBcInNldC1pdGVtLWVuY29kaW5nLXR5cGVcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlNldE1hcmtTaXplXCJdID0gXCJzZXQtbWFyay1zaXplXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJTZXRQYWdlTmF2RmxhZ1wiXSA9IFwic2V0LXBhZ2UtZmxhZ1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiU2V0UGFyYW1ldGVyQ3RybERpc3BsYXlGbGFnc1wiXSA9IFwic2V0LXBhcmFtZXRlci1jdHJsLWRpc3BsYXktZmxhZ3NcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlNldFBhcmFtZXRlckN0cmxEaXNwbGF5TW9kZVwiXSA9IFwic2V0LXBhcmFtZXRlci1jdHJsLWRpc3BsYXktbW9kZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiU2V0UGFyYW1ldGVyQ3RybFRpdGxlXCJdID0gXCJzZXQtcGFyYW1ldGVyLWN0cmwtdGl0bGVcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlNldFBhcmFtZXRlclZhbHVlXCJdID0gXCJzZXQtcGFyYW1ldGVyLXZhbHVlXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJTZXRQcmltaXRpdmVcIl0gPSBcInNldC1wcmltaXRpdmVcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlNldFF1ZXJ5QmFuZGluZ1wiXSA9IFwic2V0LXF1ZXJ5LWJhbmRpbmdcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlNldFF1aWNrRmlsdGVySW5jbHVkZWRWYWx1ZXNcIl0gPSBcInNldC1xdWljay1maWx0ZXItaW5jbHVkZWRcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlNldFJlZmVyZW5jZUxpbmVGb3JtdWxhXCJdID0gXCJzZXQtcmVmZXJlbmNlLWxpbmUtZm9ybXVsYVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiU2V0UmVmZXJlbmNlTGluZUNvbnN0YW50VmFsdWVcIl0gPSBcInNldC1yZWZlcmVuY2UtbGluZS1jb25zdGFudC12YWx1ZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiU2V0U2hlZXRGb3JtYXR0aW5nXCJdID0gXCJzZXQtc2hlZXQtZm9ybWF0dGluZ1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiU2V0U2hlZXRTaXplXCJdID0gXCJzZXQtc2hlZXQtc2l6ZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiU2V0VG90YWxzVHlwZVwiXSA9IFwic2V0LXRvdGFscy10eXBlXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJTZXRXb3JrYm9va0xvY2FsZVwiXSA9IFwic2V0LXdvcmtib29rLWxvY2FsZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiU2hvd0NhdEN0cmxRdWlja0ZpbHRlclwiXSA9IFwic2hvdy1jYXQtY3RybC1xdWljay1maWx0ZXJcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlNob3dDb2xGaWVsZE5hbWVzRmxhZ1wiXSA9IFwic2hvdy1jb2wtZmllbGQtbmFtZXNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlNob3dDb2xUb3RhbHNGbGFnXCJdID0gXCJzaG93LWNvbC10b3RhbHNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlNob3dDb2x1bW5GaWVsZExhYmVsXCJdID0gXCJzaG93LWNvbHVtbi1maWVsZC1sYWJlbFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiU2hvd0VtcHR5Q29sc0ZsYWdcIl0gPSBcInNob3ctZW1wdHktY29sc1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiU2hvd0VtcHR5Um93c0ZsYWdcIl0gPSBcInNob3ctZW1wdHktcm93c1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiU2hvd0ZvcmVjYXN0RWRpdG9yXCJdID0gXCJzaG93LWZvcmVjYXN0LWVkaXRvclwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiU2hvd0Z1bGxSYW5nZVwiXSA9IFwic2hvdy1mdWxsLXJhbmdlXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJTaG93SGVhZGVyXCJdID0gXCJzaG93LWhlYWRlclwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiU2hvd0hpZGRlbkRhdGFcIl0gPSBcInNob3ctaGlkZGVuLWRhdGFcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlNob3dNZVwiXSA9IFwic2hvdy1tZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiU2hvd1F1YW50Q3RybFF1aWNrRmlsdGVyXCJdID0gXCJzaG93LXF1YW50LWN0cmwtcXVpY2stZmlsdGVyXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJTaG93UXVpY2tGaWx0ZXJEb2NcIl0gPSBcInNob3ctcXVpY2tmaWx0ZXItZG9jXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJTaG93UmVmZXJlbmNlTGluZUVkaXRvclwiXSA9IFwic2hvdy1yZWZlcmVuY2UtbGluZS1lZGl0b3JcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlNob3dSZWZlcmVuY2VMaW5lQ29uc3RhbnRWYWx1ZUVkaXRvclwiXSA9IFwic2hvdy1yZWZlcmVuY2UtbGluZS1jb25zdGFudC12YWx1ZS1lZGl0b3JcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlNob3dSZWZlcmVuY2VMaW5lRm9ybWF0dGVyXCJdID0gXCJzaG93LXJlZmVyZW5jZS1saW5lLWZvcm1hdHRlclwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiU2hvd1Jvd0ZpZWxkTGFiZWxcIl0gPSBcInNob3ctcm93LWZpZWxkLWxhYmVsXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJTaG93Um93RmllbGROYW1lc0ZsYWdcIl0gPSBcInNob3ctcm93LWZpZWxkLW5hbWVzXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJTaG93Um93VG90YWxzRmxhZ1wiXSA9IFwic2hvdy1yb3ctdG90YWxzXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJTaW1wbGVDb21tYW5kTGlzdFwiXSA9IFwic2ltcGxlLWNvbW1hbmQtbGlzdFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiU2xlZXBcIl0gPSBcInNsZWVwXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJTbGVlcEJhY2tncm91bmRUaHJlYWRcIl0gPSBcInNsZWVwLWJhY2tncm91bmQtdGhyZWFkXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJTb3J0RGF0YUdyaWRCeUNvbHVtblwiXSA9IFwic29ydC1kYXRhZ3JpZC1ieS1jb2x1bW5cIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlNvcnREYXRhR3JpZEZpZWxkc1wiXSA9IFwic29ydC1kYXRhZ3JpZC1maWVsZHNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlNwZWNpYWxWYWx1ZXNcIl0gPSBcInNwZWNpYWwtdmFsdWVzXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJTcGxpdEZpZWxkXCJdID0gXCJzcGxpdC1maWVsZFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiU3RhY2tNYXJrc1wiXSA9IFwic3RhY2stbWFya3NcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlN0YWNrT3ZlcmZsb3dDcmFzaFwiXSA9IFwic3RhY2stb3ZlcmZsb3dcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlN1YnRvdGFsQWdncmVnYXRpb25cIl0gPSBcInN1YnRvdGFsLWFnZ3JlZ2F0aW9uXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJTdWJ0b3RhbHNcIl0gPSBcInN1YnRvdGFsc1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiU3dhcEZpZWxkc1wiXSA9IFwic3dhcC1maWVsZHNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlN3YXBSb3dzQW5kQ29sdW1uc1wiXSA9IFwic3dhcC1yb3dzLWFuZC1jb2x1bW5zXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJUYWJsZWF1RXhjZXB0aW9uXCJdID0gXCJ0YWJsZWF1LWV4Y2VwdGlvblwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiVG9nZ2xlRHJvcExpbmVzXCJdID0gXCJ0b2dnbGUtZHJvcC1saW5lc1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiVG9nZ2xlRmllbGRCbGVuZGluZ1wiXSA9IFwidG9nZ2xlLWZpZWxkLWJsZW5kaW5nXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJUb2dnbGVNYXJrTGFiZWxzXCJdID0gXCJ0b2dnbGUtbWFyay1sYWJlbHNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlRvZ2dsZVBhZ2VUaXRsZVwiXSA9IFwidG9nZ2xlLXBhZ2UtdGl0bGVcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlRvZ2dsZVBhcmFtZXRlckN0cmxEaXNwbGF5RmxhZ1wiXSA9IFwidG9nZ2xlLXBhcmFtZXRlci1jdHJsLWRpc3BsYXktZmxhZ1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiVG9nZ2xlUGFyYW1ldGVyQ3RybFRpdGxlXCJdID0gXCJ0b2dnbGUtcGFyYW1ldGVyLWN0cmwtdGl0bGVcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlRvZ2dsZVF1aWNrRmlsdGVyVGl0bGVcIl0gPSBcInRvZ2dsZS1xdWljay1maWx0ZXItdGl0bGVcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlRvZ2dsZVZpek5hdmlnYXRpb25TZXR0aW5nXCJdID0gXCJ0b2dnbGUtdml6LW5hdmlnYXRpb24tc2V0dGluZ1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiVW5kb1wiXSA9IFwidW5kb1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiVW5oaWRlRGF0YVwiXSA9IFwidW5oaWRlLWRhdGFcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlVuaGlkZUxhYmVsXCJdID0gXCJ1bmhpZGUtbGFiZWxcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlVwZGF0ZUFyZWFBbm5vdGF0aW9uXCJdID0gXCJ1cGRhdGUtYXJlYS1hbm5vdGF0aW9uXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJVcGRhdGVDYWxjU2NvcGVJc29sYXRpb25cIl0gPSBcInVwZGF0ZS1zY29wZS1pc29sYXRpb24tZm9yLWNhbGN1bGF0aW9uXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJVcGRhdGVEYXRhU2VydmVyQ29ubmVjdGlvbkluZm9cIl0gPSBcInVwZGF0ZS1kYXRhLXNlcnZlci1jb25uZWN0aW9uLWluZm9cIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlVwZGF0ZVBvaW50QW5ub3RhdGlvblB1bGxiYWNrXCJdID0gXCJ1cGRhdGUtcG9pbnQtYW5ub3RhdGlvbi1wdWxsYmFja1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiVXBkYXRlVGFibGVDYWxjSW5mb1wiXSA9IFwidXBkYXRlLXRhYmxlLWNhbGMtaW5mb21hdGlvblwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiVXBncmFkZUV4dHJhY3RcIl0gPSBcInVwZ3JhZGUtZXh0cmFjdFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiVXNlRXh0cmFjdFwiXSA9IFwidXNlLWV4dHJhY3RcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlZhbGlkYXRlRHJpbGxQYXRoTmFtZVwiXSA9IFwidmFsaWRhdGUtZHJpbGwtcGF0aC1uYW1lXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJWYWxpZGF0ZUZvcm11bGFcIl0gPSBcInZhbGlkYXRlLWZvcm11bGFcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlZhbGlkYXRlSW5pdGlhbFNRTFwiXSA9IFwidmFsaWRhdGUtaW5pdGlhbC1zcWxcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlZhbGlkYXRlUXVlcnlCYW5kaW5nXCJdID0gXCJ2YWxpZGF0ZS1xdWVyeS1iYW5kaW5nXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJWYWxpZGF0ZVR5cGVJblBpbGxcIl0gPSBcInZhbGlkYXRlLXR5cGUtaW4tcGlsbFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiVmlld1BhcmFtZXRlckN0cmxzXCJdID0gXCJ2aWV3LXBhcmFtLWN0cmxzXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJWaWV3UXVpY2tGaWx0ZXJzXCJdID0gXCJ2aWV3LXF1aWNrLWZpbHRlcnNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkdldFNjaGVtYVwiXSA9IFwiZ2V0LXNjaGVtYVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiR2V0U2NoZW1hVmlld2VyRGF0YVNjaGVtYVwiXSA9IFwiZ2V0LXNjaGVtYS12aWV3ZXItZGF0YS1zY2hlbWFcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNvbnZlcnRUb0RpbWVuc2lvblwiXSA9IFwiY29udmVydC10by1kaW1lbnNpb25cIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNvbnZlcnRUb01lYXN1cmVcIl0gPSBcImNvbnZlcnQtdG8tbWVhc3VyZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ29udmVydFRvQ29udGludW91c1wiXSA9IFwiY29udmVydC10by1jb250aW51b3VzXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDb252ZXJ0VG9EaXNjcmV0ZVwiXSA9IFwiY29udmVydC10by1kaXNjcmV0ZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiUmVuYW1lRmllbGRcIl0gPSBcInJlbmFtZS1maWVsZFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiSGlkZUZpZWxkXCJdID0gXCJoaWRlLWZpZWxkXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJVbmhpZGVGaWVsZFwiXSA9IFwidW5oaWRlLWZpZWxkXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJIaWRlVW51c2VkRmllbGRzXCJdID0gXCJoaWRlLXVudXNlZC1maWVsZHNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkR1cGxpY2F0ZUZpZWxkc1wiXSA9IFwiZHVwbGljYXRlLWZpZWxkc1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ2xlYW5WYWx1ZXNcIl0gPSBcImNsZWFuLXZhbHVlc1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiUGFyc2VEYXRlXCJdID0gXCJwYXJzZS1kYXRlXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJNYWtlRGF0ZVwiXSA9IFwibWFrZS1kYXRlXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJTZXRRdWFsaWZ5TmFtZXNcIl0gPSBcInNldC1xdWFsaWZ5LW5hbWVzXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDcmVhdGVNZWFzdXJlRnJvbUNvbHVtblwiXSA9IFwiY3JlYXRlLW1lYXN1cmUtZnJvbS1jb2x1bW5cIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlJlbW92ZUZyb21TY2hlbWFEcmlsbFBhdGhcIl0gPSBcInJlbW92ZS1mcm9tLXNjaGVtYS1kcmlsbC1wYXRoXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJBZGRUb1NjaGVtYURyaWxsUGF0aFwiXSA9IFwiYWRkLXRvLXNjaGVtYS1kcmlsbC1wYXRoXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJSZW1vdmVTY2hlbWFEcmlsbFBhdGhcIl0gPSBcInJlbW92ZS1zY2hlbWEtZHJpbGwtcGF0aFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiU2hvd0hpZGRlbkZpZWxkc1wiXSA9IFwic2hvdy1oaWRkZW4tZmllbGRzXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJTaG93QWxpYXNlc1wiXSA9IFwic2hvdy1hbGlhc2VzXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJTZXRSb3dEaXNwbGF5Q291bnRcIl0gPSBcInNldC1yb3ctZGlzcGxheS1jb3VudFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiU2hvd1N0cnVjdHVyZVwiXSA9IFwic2hvdy1zdHJ1Y3R1cmVcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkdyb3VwQnlUYWJsZVwiXSA9IFwiZ3JvdXAtYnktdGFibGVcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNoYW5nZURhdGFUeXBlXCJdID0gXCJjaGFuZ2UtZGF0YS10eXBlXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJDaGFuZ2VQaXZvdFN0cmF0ZWd5XCJdID0gXCJjaGFuZ2UtcGl2b3Qtc3RyYXRlZ3lcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNoYW5nZURpc3BsYXlBbGlhc1wiXSA9IFwiY2hhbmdlLWRpc3BsYXktYWxpYXNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlNldEluY2x1ZGVTaGFyZWRNZW1iZXJzXCJdID0gXCJzZXQtaW5jbHVkZS1zaGFyZWQtbWVtYmVyc1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiU2V0VXRpbGl0eURpbWVuc2lvblwiXSA9IFwic2V0LXV0aWxpdHktZGltZW5zaW9uXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJTZXREZWZhdWx0SGllcmFyY2h5XCJdID0gXCJzZXQtZGVmYXVsdC1oaWVyYXJjaHlcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkRhdGFTb3VyY2VTb3J0T3JkZXJcIl0gPSBcImRhdGEtc291cmNlLXNvcnQtb3JkZXJcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNsZWFyVXRpbGl0eURpbWVuc2lvblwiXSA9IFwiY2xlYXItdXRpbGl0eS1kaW1lbnNpb25cIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNsZWFyRGVmYXVsdFNvcnRcIl0gPSBcImNsZWFyLWRlZmF1bHQtc29ydFwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiU2V0RGVmYXVsdEFnZ3JlZ2F0aW9uXCJdID0gXCJzZXQtZGVmYXVsdC1hZ2dyZWdhdGlvblwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiU2V0RGVmYXVsdFZUQWdncmVnYXRpb25cIl0gPSBcInNldC1kZWZhdWx0LXZ0YWdncmVnYXRpb25cIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkNoYW5nZUZpc2NhbFllYXJcIl0gPSBcImNoYW5nZS1maXNjYWwteWVhclwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ2hhbmdlU2VtYW50aWNSb2xlXCJdID0gXCJjaGFuZ2Utc2VtYW50aWMtcm9sZVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQWRkVG9TaGVldFwiXSA9IFwiYWRkLXRvLXNoZWV0XCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJEcm9wU2NoZW1hU2VsT25TaGVsZlwiXSA9IFwiZHJvcC1zY2hlbWEtc2VsLW9uLXNoZWxmXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJBZGRUb1NjaGVtYUZpZWxkRm9sZGVyXCJdID0gXCJhZGQtdG8tc2NoZW1hLWZpZWxkLWZvbGRlclwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiUmVtb3ZlRnJvbVNjaGVtYUZpZWxkRm9sZGVyXCJdID0gXCJyZW1vdmUtZnJvbS1zY2hlbWEtZmllbGQtZm9sZGVyXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJSZW1vdmVTY2hlbWFGaWVsZEZvbGRlclwiXSA9IFwicmVtb3ZlLXNjaGVtYS1maWVsZC1mb2xkZXJcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIkRlZmF1bHRUZXh0Rm9ybWF0XCJdID0gXCJkZWZhdWx0LXRleHQtZm9ybWF0XCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJFZGl0U2NoZW1hQ2FwdGlvblwiXSA9IFwiZWRpdC1zY2hlbWEtY2FwdGlvblwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiUmVzZXRTY2hlbWFDYXB0aW9uXCJdID0gXCJyZXNldC1zY2hlbWEtY2FwdGlvblwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQ3JlYXRlT3V0bGllclNldFwiXSA9IFwiY3JlYXRlLW91dGxpZXItc2V0XCI7XG59KShEb2NDb21tYW5kcyA9IGV4cG9ydHMuRG9jQ29tbWFuZHMgfHwgKGV4cG9ydHMuRG9jQ29tbWFuZHMgPSB7fSkpO1xudmFyIFVJQ29tbWFuZHM7XG4oZnVuY3Rpb24gKFVJQ29tbWFuZHMpIHtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiQWJvdXRcIl0gPSBcImFib3V0XCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkFkZERhdGFTZXJ2ZXJEYXRhU291cmNlVUlcIl0gPSBcImFkZC1kYXRhLXNlcnZlci1kYXRhc291cmNlLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlN3aXRjaFRvRG9jdW1lbnRBbmRBZGREYXRhU2VydmVyRGF0YVNvdXJjZVVJXCJdID0gXCJzd2l0Y2gtdG8tZG9jdW1lbnQtYW5kLWFkZC1kYXRhLXNlcnZlci1kcy11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJBZGREcmlsbFBhdGhVSVwiXSA9IFwiYWRkLWRyaWxscGF0aC11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJBZGRGaWVsZEZvbGRlclVJXCJdID0gXCJhZGQtZmllbGQtZm9sZGVyLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkFkZEZpbGVUb0V4dHJhY3RVSVwiXSA9IFwiYWRkLWZpbGUtdG8tZXh0cmFjdC11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJBZGREYXRhU291cmNlVG9FeHRyYWN0VUlcIl0gPSBcImFkZC1kYXRhLXNvdXJjZS10by1leHRyYWN0LXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkFkZFFDVG9TaGVldFVJXCJdID0gXCJhZGQtcWMtdG8tc2hlZXQtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiQWRkUmVmZXJlbmNlTGluZVVJXCJdID0gXCJhZGQtcmVmZXJlbmNlLWxpbmUtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiQWRkU2NoZW1hRmllbGRGb2xkZXJVSVwiXSA9IFwiYWRkLXRvLXNjaGVtYS1maWVsZC1mb2xkZXItdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiQWRkVGFibGVhdVNlcnZlckRTQ29ubmVjdGlvblVJXCJdID0gXCJhZGQtdGFibGVhdS1zZXJ2ZXItZHMtY29ubmVjdGlvbi11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJBZGRUb1NjaGVtYURyaWxsUGF0aFVJXCJdID0gXCJhZGQtdG8tc2NoZW1hLWRyaWxscGF0aC11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJBZGRUb1NoZWV0VUlcIl0gPSBcImFkZC10by1zaGVldC11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJBbm5vdGF0ZVVJXCJdID0gXCJhbm5vdGF0ZS11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJBcHBlbmREYXRhU291cmNlVG9SZW1vdGVFeHRyYWN0VUlcIl0gPSBcImFwcGVuZC1kYXRhLXNvdXJjZS10by1yZW1vdGUtZXh0cmFjdC11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJBdHRlbXB0Q29ubmVjdERhdGFTb3VyY2VzT25TaGVldFVJXCJdID0gXCJhdHRlbXB0LWNvbm5lY3QtZGF0YXNvdXJjZXMtb24tc2hlZXQtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiQXR0ZW1wdERhdGFTb3VyY2VDb25uZWN0aW9uVUlcIl0gPSBcImF0dGVtcHQtZGF0YXNvdXJjZS1jb25uZWN0LXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkF1dG9IaWRlU2hlZXRcIl0gPSBcImF1dG8taGlkZS1zaGVldFwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJBdXRvbWF0aW9uQ2xpY2tNUlVJdGVtXCJdID0gXCJjbGljay1tcnUtaXRlbVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJDYWxjdWxhdGVkTWVtYmVyc1VJXCJdID0gXCJjYWxjdWxhdGVkLW1lbWJlcnMtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiQ2hhbmdlQWdncmVnYXRpb25VSVwiXSA9IFwiY2hhbmdlLWFnZ3JlZ2F0aW9uLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkNoYW5nZURhdGFTZXJ2ZXJMb2dvblVJXCJdID0gXCJjaGFuZ2UtZGF0YS1zZXJ2ZXItbG9nb24tdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiQ2hhbmdlRXNzYmFzZUFsaWFzRmlsZVwiXSA9IFwiY2hhbmdlLWVzc2Jhc2UtYWxpYXMtZmlsZVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJDaGFuZ2VGaWVsZFR5cGVVSVwiXSA9IFwiY2hhbmdlLWZpZWxkLXR5cGUtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiQ2hhbmdlVGFiQ29sb3JTaGVldFwiXSA9IFwiY2hhbmdlLXRhYi1jb2xvci1zaGVldFwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJDaGVja0ZvclByb2R1Y3RVcGRhdGVzXCJdID0gXCJjaGVjay1mb3ItcHJvZHVjdC11cGRhdGVzXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkNsZWFyRGFzaGJvYXJkVUlcIl0gPSBcImNsZWFyLWRhc2hib2FyZC11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJDbGVhclNoZWV0VUlcIl0gPSBcImNsZWFyLXNoZWV0LXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkNsZWFyU3RvcnlVSVwiXSA9IFwiY2xlYXItc3RvcnktdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiQ2xlYXJWaXpVSVwiXSA9IFwiY2xlYXItdml6LXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkNsb3NlQ2FsY3VsYXRpb25VSVwiXSA9IFwiY2xvc2UtY2FsY3VsYXRpb24tdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiQ2xvc2VEYXRhU291cmNlVUlcIl0gPSBcImNsb3NlLWRhdGFzb3VyY2UtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiQ2xvc2VXb3JrYm9va1wiXSA9IFwiY2xvc2Utd29ya2Jvb2tcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiQ29sb3JMZWdlbmRFZGl0VUlcIl0gPSBcImNvbG9yLWxlZ2VuZC1lZGl0LXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkNvbW1pdFBpbGxFZGl0VUlcIl0gPSBcImNvbW1pdC1waWxsLWVkaXQtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiQ29ubmVjdERhdGFTb3VyY2VVSVwiXSA9IFwiY29ubmVjdC1kYXRhc291cmNlLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkNvbm5lY3RSZXByb21wdFVJXCJdID0gXCJjb25uZWN0LXJlcHJvbXB0LXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkNvbm5lY3RWYXJpYWJsZVByb21wdFVJXCJdID0gXCJjb25uZWN0LXZhcmlhYmxlLXByb21wdC11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJDb25uZWN0VmFyaWFibGVQcm9tcHRNYXRjaGluZ1VJXCJdID0gXCJjb25uZWN0LXZhcmlhYmxlLXByb21wdC1tYXRjaGluZy11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJDb25uZWN0aW9uQWRkTmV3Q3VzdG9tU1FMVUlcIl0gPSBcImNvbm5lY3Rpb24tYWRkLW5ldy1jdXN0b20tc3FsLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkNvbm5lY3Rpb25BZGROZXdUYWJsZVVJXCJdID0gXCJjb25uZWN0aW9uLWFkZC1uZXctdGFibGUtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiQ29ubmVjdGlvbkRhdGFHcmlkQ29weVVJXCJdID0gXCJjb25uZWN0aW9uLWRhdGEtZ3JpZC1jb3B5LXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkNvbm5lY3Rpb25FZGl0Q3VzdG9tU1FMVUlcIl0gPSBcImNvbm5lY3Rpb24tY3VzdG9tLXNxbC11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJDb25uZWN0aW9uRWRpdEV4dHJhY3RVSVwiXSA9IFwiY29ubmVjdGlvbi1leHRyYWN0LXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkNvbm5lY3Rpb25FZGl0REJWYXJpYWJsZXNVSVwiXSA9IFwiY29ubmVjdGlvbi1lZGl0LWRiLXZhcmlhYmxlcy11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJDb25uZWN0aW9uRWRpdENvbm5lY3Rpb25VSVwiXSA9IFwiY29ubmVjdGlvbi1lZGl0LWNvbm5lY3Rpb24tdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiQ29ubmVjdGlvbkZpbmFsaXplRGF0YVNvdXJjZVVJXCJdID0gXCJjb25uZWN0aW9uLWZpbmFsaXplLWRhdGFzb3VyY2UtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiQ29ubmVjdGlvbkZpbmFsaXplRXh0cmFjdFN0YXRlc1VJXCJdID0gXCJjb25uZWN0aW9uLWZpbmFsaXplLWV4dHJhY3Qtc3RhdGVzLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkNvbm5lY3Rpb25HZXRUeXBlR3JvdXBQcmVzTW9kZWxVSVwiXSA9IFwiY29ubmVjdGlvbi1nZXQtdHlwZS1ncm91cC1wcmVzLW1vZGVsLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkNvbm5lY3Rpb25HZXRTYXZlZERhdGFTb3VyY2VzUHJlc01vZGVsVUlcIl0gPSBcImNvbm5lY3Rpb24tZ2V0LXNhdmVkLWRzLXByZXMtbW9kZWwtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiQ29ubmVjdGlvblBhcnRpdGlvbmluZ0ZhaWx1cmVVSVwiXSA9IFwiY29ubmVjdGlvbi1wYXJ0aXRpb25pbmctZmFpbHVyZS11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJDb25uZWN0aW9uUmVwbGFjZVRhYmxlVUlcIl0gPSBcImNvbm5lY3Rpb24tcmVwbGFjZS10YWJsZS11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJDb25uZWN0aW9uU2VhcmNoQ2F0YWxvZ1VJXCJdID0gXCJjb25uZWN0aW9uLXNlYXJjaC1jYXRhbG9nLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkNvbm5lY3Rpb25TZWFyY2hDdWJlVUlcIl0gPSBcImNvbm5lY3Rpb24tc2VhcmNoLWN1YmUtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiQ29ubmVjdGlvblNlbGVjdENhdGFsb2dVSVwiXSA9IFwiY29ubmVjdGlvbi1zZWxlY3QtY2F0YWxvZy11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJDb25uZWN0aW9uU2VsZWN0Q3ViZVVJXCJdID0gXCJjb25uZWN0aW9uLXNlbGVjdC1jdWJlLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkNvbm5lY3Rpb25TZWxlY3REYXRhYmFzZVVJXCJdID0gXCJjb25uZWN0aW9uLXNlbGVjdC1kYXRhYmFzZS11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJDb25uZWN0aW9uU2VsZWN0U3RhbmRhcmRDb25uZWN0aW9uVUlcIl0gPSBcImNvbm5lY3Rpb24tc2VsZWN0LXN0YW5kYXJkLWNvbm5lY3Rpb24tdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiQ29ubmVjdGlvblNlbGVjdFN0b3JlZFByb2NlZHVyZVVJXCJdID0gXCJjb25uZWN0aW9uLXNlbGVjdC1zdG9yZWQtcHJvY2VkdXJlLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkNvbm5lY3Rpb25TaG93RWRpdFRhYmxlRGlhbG9nVUlcIl0gPSBcImNvbm5lY3Rpb24tc2hvdy1lZGl0LXRhYmxlLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkNvbm5lY3Rpb25TaG93UGl2b3REaWFsb2dVSVwiXSA9IFwiY29ubmVjaXRvbi1zaG93LXBpdm90LWRpYWxvZy11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJDb25uZWN0aW9uU29ydENhdGFsb2dVSVwiXSA9IFwiY29ubmVjdGlvbi1zb3J0LWNhdGFsb2ctdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiQ29ubmVjdGlvblNvcnRDdWJlVUlcIl0gPSBcImNvbm5lY3Rpb24tc29ydC1jdWJlLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkNvbm5lY3Rpb25WYWxpZGF0ZUN1c3RvbVNRTFVJXCJdID0gXCJjb25uZWN0aW9uLXZhbGlkYXRlLWN1c3RvbS1zcWwtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiQ29ubmVjdFRvQ2xvdWRGaWxlXCJdID0gXCJjb25uZWN0LXRvLWNsb3VkLWZpbGVcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiQ29ubmVjdFRvRGF0YVNlcnZlclNvdXJjZVVJXCJdID0gXCJjb25uZWN0LWRhdGEtc2VydmVyLWRhdGFzb3VyY2UtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiQ29ubmVjdGlvbkNvbnZlcnRUb1NRTFVJXCJdID0gXCJjb25uZWN0aW9uLWNvbnZlcnQtdG8tc3FsLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkNvbm5lY3Rpb25SZW5hbWVDb25uZWN0aW9uVUlcIl0gPSBcImNvbm5lY3Rpb24tcmVuYW1lLWNvbm5lY3Rpb24tdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiRXhwb3J0VW5kZXJseWluZ0RhdGFUb0NTVlVJXCJdID0gXCJleHBvcnQtdG8tY3N2LXdpdGgtcHJvZ3Jlc3MtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiQ29ubmVjdE9EQkNVSVwiXSA9IFwiY29ubmVjdC1vZGJjLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkNvcHlDcm9zc3RhYlwiXSA9IFwiY29weS1jcm9zc3RhYlwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJDb3B5RGF0YVwiXSA9IFwiY29weS1kYXRhXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkNvcHlEcmlsbFBhdGhGaWVsZHNVSVwiXSA9IFwiY29weS1kcmlsbC1wYXRoLWZpZWxkcy11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJDb3B5RmllbGRzRGVmblVJXCJdID0gXCJjb3B5LWZpZWxkcy1kZWZuLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkNvcHlJbWFnZVwiXSA9IFwiY29weS1pbWFnZVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJDb3B5SW1hZ2VEYXNoYm9hcmRcIl0gPSBcImNvcHktaW1hZ2UtZGFzaGJvYXJkXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkNvcHlJbWFnZVdvcmtzaGVldFwiXSA9IFwiY29weS1pbWFnZS13b3Jrc2hlZXRcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiQ29weUltYWdlU3RvcnlcIl0gPSBcImNvcHktaW1hZ2Utc3RvcnlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiQ29weVdvcmtzaGVldEZvcm1hdHRpbmdcIl0gPSBcImNvcHktZm9ybWF0dGluZ1wiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJDcmVhdGVDYWxjdWxhdGVkU2V0VUlcIl0gPSBcImNyZWF0ZS1jYWxjdWxhdGVkLXNldC11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJDcmVhdGVDYWxjdWxhdGlvblVJXCJdID0gXCJjcmVhdGUtY2FsY3VsYXRpb24tdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiQ3JlYXRlQ29tYmluZWRGaWVsZFVJXCJdID0gXCJjcmVhdGUtY29tYmluZWQtZmllbGQtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiQ3JlYXRlQ29ubmVjdGlvblVJXCJdID0gXCJjcmVhdGUtY29ubmVjdGlvbi11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJDcmVhdGVEYXRlQmluVUlcIl0gPSBcImNyZWF0ZS1EYXRlLWJpbi11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJDcmVhdGVHcm91cFNlbGVjdGlvblVJXCJdID0gXCJjcmVhdGUtZ3JvdXAtc2VsZWN0aW9uLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkNyZWF0ZUdyb3VwVUlcIl0gPSBcImNyZWF0ZS1ncm91cC11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJDcmVhdGVJZGVudGl0eVNldFwiXSA9IFwiY3JlYXRlLXVzZXItZmlsdGVyXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkNyZWF0ZUxlYWZDb25uZWN0aW9uVUlcIl0gPSBcImNyZWF0ZS1sZWFmLWNvbm5lY3Rpb24tdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiQ3JlYXRlTnVtZXJpY0JpbnNVSVwiXSA9IFwiY3JlYXRlLW51bWVyaWMtYmlucy11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJDcmVhdGVTZXRVSVwiXSA9IFwiY3JlYXRlLXNldC11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJDdXN0b21EYXRlQWdncmVnYXRpb25VSVwiXSA9IFwiY3VzdG9tLWRhdGUtYWdncmVnYXRpb24tdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiQ3V0RHJpbGxQYXRoRmllbGRzVUlcIl0gPSBcImN1dC1kcmlsbC1wYXRoLWZpZWxkcy11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJDdXRGaWVsZHNEZWZuVUlcIl0gPSBcImN1dC1maWVsZHMtZGVmbi11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJEZWFjdGl2YXRlRGFzaGJvYXJkXCJdID0gXCJkZWFjdGl2YXRlLWRhc2hib2FyZFwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJEZWxldGVDb29raWVzXCJdID0gXCJkZWxldGUtY29va2llc1wiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJEZWxldGVGaWVsZHNVSVwiXSA9IFwiZGVsZXRlLWZpZWxkcy11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJEZWxldGVTaGVldFVJXCJdID0gXCJkZWxldGUtc2hlZXQtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiRGVzY3JpYmVBZGhvY0NsdXN0ZXJVSVwiXSA9IFwiZGVzY3JpYmUtYWRob2MtY2x1c3Rlci11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJEZXNjcmliZURyaWxsUGF0aFVJXCJdID0gXCJkZXNjcmliZS1kcmlsbHBhdGgtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiRGVzY3JpYmVGaWVsZFVJXCJdID0gXCJkZXNjcmliZS1maWVsZC11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJEZXNjcmliZUZvcmVjYXN0VUlcIl0gPSBcImRlc2NyaWJlLWZvcmVjYXN0LXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkRlc2NyaWJlU2NoZW1hRHJpbGxQYXRoVUlcIl0gPSBcImRlc2NyaWJlLXNjaGVtYS1kcmlsbHBhdGgtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiRGVzY3JpYmVUcmVuZExpbmVcIl0gPSBcImRlc2NyaWJlLXRyZW5kLWxpbmVcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiRGVzY3JpYmVUcmVuZE1vZGVsXCJdID0gXCJkZXNjcmliZS10cmVuZC1tb2RlbFwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJPcGVuRGlzY292ZXJQYW5lTGlua3NcIl0gPSBcIm9wZW4tZGlzY292ZXItcGFuZS1saW5rc1wiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJEaXNtaXNzR29Ub1dvcmtzaGVldFRvb2x0aXBVSVwiXSA9IFwiZGlzbWlzcy1nby10by13b3Jrc2hlZXQtdG9vbHRpcC11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJEb3dubG9hZENvcHlEYXRhU291cmNlXCJdID0gXCJkb3dubG9hZC1jb3B5LWRhdGEtc291cmNlXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkRyaWxsZG93blVJXCJdID0gXCJkcmlsbGRvd24tdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiRHJvcFNjaGVtYVNlbE9uU2hlbGZVSVwiXSA9IFwiZHJvcC1zY2hlbWEtc2VsLW9uLXNoZWxmLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkRyb3BVSVwiXSA9IFwiZHJvcC11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJEdXBsaWNhdGVEYXRhU291cmNlVUlcIl0gPSBcImR1cGxpY2F0ZS1kYXRhc291cmNlLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkR1cGxpY2F0ZVNoZWV0QXNDcm9zc3RhYlwiXSA9IFwiZHVwbGljYXRlLXNoZWV0LWFzLWNyb3NzdGFiXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkR1cGxpY2F0ZVNoZWV0T3JDcm9zc3RhYlVJXCJdID0gXCJkdXBsaWNhdGUtc2hlZXQtb3ItY3Jvc3N0YWItdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiRHVwbGljYXRlU2hlZXRVSVwiXSA9IFwiZHVwbGljYXRlLXNoZWV0LXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkVkaXRBbGlhc2VzVUlcIl0gPSBcImVkaXQtYWxpYXNlcy11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJFZGl0QW5ub3RhdGlvblwiXSA9IFwiZWRpdC1hbm5vdGF0aW9uXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkVkaXRBeGlzVUlcIl0gPSBcImVkaXQtYXhpcy11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJFZGl0Q2FsY3VsYXRlZFNldFVJXCJdID0gXCJlZGl0LWNhbGN1bGF0ZWQtc2V0LXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkVkaXRDYWxjdWxhdGlvblVJXCJdID0gXCJlZGl0LWNhbGN1bGF0aW9uLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkVkaXRDYXB0aW9uVUlcIl0gPSBcImVkaXQtY2FwdGlvblwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJFZGl0Q29tYmluZWRGaWVsZFVJXCJdID0gXCJlZGl0LWNvbWJpbmVkLWZpZWxkXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkVkaXRDb3B5RmllbGRVSVwiXSA9IFwiZWRpdC1jb3B5LWZpZWxkLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkVkaXREYXRhU291cmNlVUlcIl0gPSBcImVkaXQtZGF0YXNvdXJjZS11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJFZGl0RGF0YVNvdXJjZUZpZWxkQWxpYXNlc1wiXSA9IFwiZWRpdC1kYXRhc291cmNlLWZpZWxkLWFsaWFzZXNcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiRWRpdERhdGFTb3VyY2VGaWx0ZXJzVUlcIl0gPSBcImVkaXQtZGF0YXNvdXJjZS1maWx0ZXJzLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkVkaXREYXRhU291cmNlU2l0ZVBhdGhzVUlcIl0gPSBcImVkaXQtZGF0YXNvdXJjZS1zaXRlLXBhdGhzLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkVkaXREYXRlQmluVUlcIl0gPSBcImVkaXQtZGF0ZS1iaW4tdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiRWRpdERlZmF1bHRTb3J0VUlcIl0gPSBcImVkaXQtZGVmYXVsdC1zb3J0LXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkVkaXREcm9wTGluZXNVSVwiXSA9IFwiZWRpdC1kcm9wLWxpbmVzLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkVkaXREcm9wRmllbGRVSVwiXSA9IFwiZWRpdC1kcm9wLWZpZWxkLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkVkaXREYXRhU291cmNlUmVsYXRpb25zaGlwc1VJXCJdID0gXCJlZGl0LWRhdGFzb3VyY2UtcmVsYXRpb25zaGlwcy11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJFZGl0RW51bWVyYXRlZFNldFVJXCJdID0gXCJlZGl0LWVudW1lcmF0ZWQtc2V0XCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkVkaXRGaWx0ZXJRdWlja0ZpbHRlclwiXSA9IFwiZWRpdC1maWx0ZXItcXVpY2stZmlsdGVyXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkVkaXRGaWx0ZXJVSVwiXSA9IFwiZWRpdC1maWx0ZXItdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiRWRpdEZvcmVjYXN0VUlcIl0gPSBcImVkaXQtZm9yZWNhc3QtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiRWRpdEdyb3VwVUlcIl0gPSBcImVkaXQtZ3JvdXAtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiRWRpdEdyb3VwVmFsdWVcIl0gPSBcImVkaXQtZ3JvdXAtdmFsdWVcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiRWRpdEdyb3VwVmFsdWVMYWJlbFwiXSA9IFwiZWRpdC1ncm91cC12YWx1ZS1sYWJlbFwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJFZGl0TGVnZW5kR3JvdXBWYWx1ZVVJXCJdID0gXCJlZGl0LWdyb3VwLXZhbHVlLWxlZ2VuZFwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJFZGl0SW1hZ2VVSVwiXSA9IFwiZWRpdC1pbWFnZS11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJFZGl0TGVnZW5kTWVtYmVyQWxpYXNVSVwiXSA9IFwiZWRpdC1sZWdlbmQtbWVtYmVyLWFsaWFzLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkVkaXRMZWdlbmRUaXRsZVVJXCJdID0gXCJlZGl0LWxlZ2VuZC10aXRsZS11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJFZGl0TWFya0NvbG9yVUlcIl0gPSBcImVkaXQtbWFyay1jb2xvci11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJFZGl0TWFya1NoYXBlVUlcIl0gPSBcImVkaXQtbWFyay1zaGFwZS11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJFZGl0TWVtYmVyQWxpYXNcIl0gPSBcImVkaXQtbWVtYmVyLWFsaWFzXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkVkaXRNZW1iZXJBbGlhc0xhYmVsXCJdID0gXCJlZGl0LW1lbWJlci1hbGlhcy1sYWJlbFwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJFZGl0UGFnZVRpdGxlVUlcIl0gPSBcImVkaXQtcGFnZS10aXRsZS11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJFZGl0UGFyYW1ldGVyQ3RybFRpdGxlXCJdID0gXCJlZGl0LXBhcmFtLWNvbnRyb2wtdGl0bGVcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiRWRpdFBkZlBhZ2VTZWxlY3Rpb25VSVwiXSA9IFwiZWRpdC1wZGYtcGFnZS1zZWxlY3Rpb24tdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiRWRpdFByaW1hcnlBbGlhc2VzVUlcIl0gPSBcImVkaXQtcHJpbWFyeS1hbGlhc2VzLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkVkaXRSZWZlcmVuY2VMaW5lXCJdID0gXCJlZGl0LXJlZmVyZW5jZS1saW5lXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkVkaXRTY2hlbWFDYWxjdWxhdGlvblVJXCJdID0gXCJlZGl0LXNjaGVtYS1jYWxjdWxhdGlvbi11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJFZGl0U2NoZW1hQ2FsY3VsYXRpb25SYW5nZVVJXCJdID0gXCJlZGl0LXNjaGVtYS1jYWxjdWxhdGlvbi1yYW5nZS11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJFZGl0U2NoZW1hQ2FwdGlvblVJXCJdID0gXCJlZGl0LXNjaGVtYS1jYXB0aW9uLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkVkaXRTY2hlbWFGaWVsZEFsaWFzVUlcIl0gPSBcImVkaXQtc2NoZW1hLWZpZWxkLWFsaWFzLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlJlc2V0U2NoZW1hQ2FwdGlvblVJXCJdID0gXCJyZXNldC1zY2hlbWEtZmllbGQtYWxpYXMtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiUmVzZXRNdWx0aXBsZVNjaGVtYUNhcHRpb25zVUlcIl0gPSBcInJlc2V0LW11bHRpcGxlLXNjaGVtYS1maWVsZC1hbGlhcy11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJFZGl0U2NoZW1hTnVtZXJpY0JpbnNVSVwiXSA9IFwiZWRpdC1zY2hlbWEtbnVtZXJpYy1iaW5zLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkVkaXRTZXRVSVwiXSA9IFwiZWRpdC1zZXQtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiRWRpdFRpdGxlUXVpY2tGaWx0ZXJcIl0gPSBcImVkaXQtdGl0bGUtcXVpY2stZmlsdGVyXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkVkaXRUaXRsZVVJXCJdID0gXCJlZGl0LXRpdGxlXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkVkaXRUb29sdGlwVUlcIl0gPSBcImVkaXQtdG9vbHRpcFwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJFZGl0VHJlbmRMaW5lc1VJXCJdID0gXCJlZGl0LXRyZW5kLWxpbmVzLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkVkaXRVc2VyRGVzY3JpcHRpb25VSVwiXSA9IFwiZWRpdC11c2VyLWRlc2NyaXB0aW9uLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkVkaXRXTVNNYXBUaWxlU2VydmVyXCJdID0gXCJlZGl0LXdtcy1tYXAtdGlsZS1zZXJ2ZXJcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiRWRpdFpvbmVQYXJhbVwiXSA9IFwiZWRpdC16b25lLXBhcmFtXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkVkaXRab25lVXJsXCJdID0gXCJlZGl0LXpvbmUtdXJsXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkVzdGFibGlzaENvbm5lY3Rpb25VSVwiXSA9IFwiZXN0YWJsaXNoLWNvbm5lY3Rpb24tdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiRXN0YWJsaXNoVGFibGVhdVNlcnZlckNvbm5lY3Rpb25VSVwiXSA9IFwiZXN0YWJsaXNoLXRhYmxlYXUtc2VydmVyLWNvbm5lY3Rpb24tdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiRXhlY3V0ZVVJQXV0b21hdGlvbkJ1dHRvblwiXSA9IFwiZXhlY3V0ZS11aS1idXR0b24tYWN0aW9uXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkV4ZWN1dGVVSUF1dG9tYXRpb25Db21ib0JveFwiXSA9IFwiZXhlY3V0ZS11aS1jb21iby1ib3gtYWN0aW9uXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkV4ZWN1dGVVSUF1dG9tYXRpb25HZW5lcmljV2lkZ2V0XCJdID0gXCJleGVjdXRlLXVpLWdlbmVyaWMtd2lkZ2V0LWFjdGlvblwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJFeGVjdXRlVUlBdXRvbWF0aW9uTGFiZWxcIl0gPSBcImV4ZWN1dGUtdWktbGFiZWwtYWN0aW9uXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkV4ZWN1dGVVSUF1dG9tYXRpb25NZW51XCJdID0gXCJleGVjdXRlLXVpLW1lbnUtYWN0aW9uXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkV4ZWN1dGVVSUF1dG9tYXRpb25JdGVtVmlld1wiXSA9IFwiZXhlY3V0ZS11aS1pdGVtLXZpZXctYWN0aW9uXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkV4ZWN1dGVVSUF1dG9tYXRpb25UZXh0Qm94XCJdID0gXCJleGVjdXRlLXVpLXRleHQtYm94LWFjdGlvblwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJFeGVjdXRlVUlBdXRvbWF0aW9uVG9nZ2xlQnV0dG9uXCJdID0gXCJleGVjdXRlLXVpLXRvZ2dsZS1idXR0b24tYWN0aW9uXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkV4ZWN1dGVVSUF1dG9tYXRpb25TbGlkZXJcIl0gPSBcImV4ZWN1dGUtdWktc2xpZGVyLWFjdGlvblwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJFeGVjdXRlVUlBdXRvbWF0aW9uV2luZG93XCJdID0gXCJleGVjdXRlLXVpLXdpbmRvdy1hY3Rpb25cIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiRXhlY3V0ZVVJQXV0b21hdGlvbldlYlZpZXdcIl0gPSBcImV4ZWN1dGUtdWktd2ViLXZpZXctYWN0aW9uXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkV4ZWN1dGVVSUF1dG9tYXRpb25UYWJcIl0gPSBcImV4ZWN1dGUtdWktdGFiLWFjdGlvblwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJFeGVjdXRlVUlBdXRvbWF0aW9uVGV4dEJyb3dzZXJcIl0gPSBcImV4ZWN1dGUtdWktdGV4dC1icm93c2VyLWFjdGlvblwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJFeGl0QXBwbGljYXRpb25cIl0gPSBcImV4aXQtYXBwbGljYXRpb25cIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiRXhwb3J0RGF0YVwiXSA9IFwiZXhwb3J0LWRhdGFcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiRXhwb3J0RGF0YVNvdXJjZVVJXCJdID0gXCJleHBvcnQtZGF0YXNvdXJjZS11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJFeHBvcnRQYWNrYWdlZFdvcmtib29rXCJdID0gXCJleHBvcnQtcGFja2FnZWRcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiRXhwb3J0V29ya2Jvb2tTaGVldHNVSVwiXSA9IFwiZXhwb3J0LXdvcmtib29rLXNoZWV0cy11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJFeHRTdmNDb25maWdVSVwiXSA9IFwiZXh0LXN2Yy1jb25maWctdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiRXh0cmFjdEhpc3RvcnlcIl0gPSBcImV4dHJhY3QtaGlzdG9yeVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJFeHRyYWN0UHJvcGVydGllc1VJXCJdID0gXCJleHRyYWN0LXByb3BlcnRpZXMtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiRXh0cmFjdFVJXCJdID0gXCJleHRyYWN0LXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkZpbHRlckZpZWxkTGFiZWxVSVwiXSA9IFwiZmlsdGVyLWZpZWxkLWxhYmVsLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkZvcm1hdEFubm90YXRpb25cIl0gPSBcImZvcm1hdC1hbm5vdGF0aW9uXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkZvcm1hdEF4aXNVSVwiXSA9IFwiZm9ybWF0LWF4aXMtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiRm9ybWF0Q2FwdGlvblRpdGxlVUlcIl0gPSBcImZvcm1hdC1jYXB0aW9uLXRpdGxlXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkZvcm1hdEZpZWxkXCJdID0gXCJmb3JtYXQtcGFuZVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJGb3JtYXRGaWVsZExhYmVsVUlcIl0gPSBcImZvcm1hdC1maWVsZC1sYWJlbC11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJGb3JtYXRMYWJlbFwiXSA9IFwiZm9ybWF0LWxhYmVsXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkZvcm1hdExlZ2VuZHNVSVwiXSA9IFwiZm9ybWF0LWxlZ2VuZHMtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiRm9ybWF0UmVmZXJlbmNlTGluZVwiXSA9IFwiZm9ybWF0LXJlZmVyZW5jZS1saW5lXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkZvcm1hdFVJXCJdID0gXCJmb3JtYXQtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiRnVsbFNjcmVlblwiXSA9IFwiZnVsbHNjcmVlblwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJHZXREYXNoYm9hcmRTaWRlUGFuZU1vZGVcIl0gPSBcImdldC1kYXNoYm9hcmQtc2lkZXBhbmUtbW9kZVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJHZXREZWJ1Z2dpbmdJbmZvXCJdID0gXCJnZXQtZGVidWdnaW5nLWluZm9cIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiR2V0SWNvblBhdGhGb3JFbmNvZGluZ1R5cGVcIl0gPSBcImdldC1pY29uLXBhdGgtZm9yLWVuY29kaW5nLXR5cGVcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiR2V0SWNvblBhdGhGb3JQcmltaXRpdmVUeXBlXCJdID0gXCJnZXQtaWNvbi1wYXRoLWZvci1wcmltaXRpdmUtdHlwZVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJHZXRUYWJsZU9wdGlvbnNQcmVzTW9kZWxcIl0gPSBcImdldC10YWJsZS1vcHRpb25zLXByZXMtbW9kZWxcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiR2V0V2luZG93TmFtZVVJXCJdID0gXCJnZXQtd2luZG93LW5hbWVcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiR2V0V29ya3NoZWV0U2lkZVBhbmVNb2RlXCJdID0gXCJnZXQtd29ya3NoZWV0LXNpZGVwYW5lLW1vZGVcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiR2V0SGlkZGVuU2hlZXRzXCJdID0gXCJnZXQtaGlkZGVuLXNoZWV0c1wiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJHZXRPcGVuUGFuZU1SVXNcIl0gPSBcImdldC1vcGVuLXBhbmUtbXJ1c1wiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJHZXRPcGVuUGFuZVNhbXBsZVdvcmtib29rc1wiXSA9IFwiZ2V0LW9wZW4tcGFuZS1zYW1wbGUtd29ya2Jvb2tzXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkdldFJldGFyZ2V0RGF0YVNvdXJjZVByZXNNb2RlbFVJXCJdID0gXCJnZXQtcmV0YXJnZXQtZGF0YXNvdXJjZS1wcmVzLW1vZGVsLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkdldFNjaGVtYVZpZXdlclByZXNNb2RlbFwiXSA9IFwiZ2V0LXNjaGVtYS12aWV3ZXItcHJlcy1tb2RlbFwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJHZXRTZWxlY3RlZFNoZWV0c1wiXSA9IFwiZ2V0LXNlbGVjdGVkLXNoZWV0c1wiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJHZXRTaGVldFNvcnRlclRodW1ibmFpbFwiXSA9IFwiZ2V0LXNoZWV0LXNvcnRlci10aHVtYm5haWxcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiR2V0U2hlZXRUYWJVSVRodW1ibmFpbFwiXSA9IFwiZ2V0LXNoZWV0LXRhYi11aS10aHVtYm5haWxcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiR2V0U2hlZXRUYWJVSVRleHRcIl0gPSBcImdldC1zaGVldC10YWItdWktdGV4dFwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJHZXRWaXNpYmxlVHJlZUl0ZW1zXCJdID0gXCJnZXQtdmlzaWJsZS10cmVlLWl0ZW1zXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkdvdG9TaGVldFJhbmdlXCJdID0gXCJnb3RvXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkdvdG9VUkxcIl0gPSBcImdvdG8tdXJsXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkhpZGVDYXB0aW9uVUlcIl0gPSBcImhpZGUtY2FwdGlvblwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJIaWRlRmlsbXN0cmlwVUlcIl0gPSBcImhpZGUtZmlsbXN0cmlwLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkhpZGVUaXRsZVVJXCJdID0gXCJoaWRlLXRpdGxlXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkhpZGVab25lVUlcIl0gPSBcImhpZGUtem9uZS11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJIaWRlQWxsU2hlZXRzVUlcIl0gPSBcImhpZGUtYWxsLXNoZWV0cy11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJVbmhpZGVBbGxTaGVldHNVSVwiXSA9IFwidW5oaWRlLWFsbC1zaGVldHMtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiSW1wb3J0TG9jYWxEYXRhVUlcIl0gPSBcImltcG9ydC1sb2NhbC1kYXRhLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkltcG9ydE1hcFNvdXJjZVwiXSA9IFwiaW1wb3J0LW1hcC1zb3VyY2VcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiSW1wb3J0TWFwU291cmNlVUlcIl0gPSBcImltcG9ydC1tYXAtc291cmNlLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkltcG9ydFdvcmtib29rVUlcIl0gPSBcImltcG9ydC13b3JrYm9vay11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJMb2FkRGVmYXVsdEZvcm1hdHRpbmdVSVwiXSA9IFwibG9hZC1mb3JtYXR0aW5nLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIkxvY2F0ZUZpZWxkVUlcIl0gPSBcImxvY2F0ZS1maWVsZC11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJMb2dNZW1vcnlVc2FnZVwiXSA9IFwibG9nLW1lbW9yeS11c2FnZVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJNYW5hZ2VMaWNlbnNpbmdcIl0gPSBcIm1hbmFnZS1saWNlbnNpbmdcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiTWFuYWdlTWFwYm94XCJdID0gXCJtYW5hZ2UtbWFwYm94XCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIk1hbmFnZVB1YmxpY1dvcmtib29rc1wiXSA9IFwibWFuYWdlLXB1YmxpY1wiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJNYW5hZ2VNYXBTZXJ2aWNlc1wiXSA9IFwibWFuYWdlLW1hcC1zZXJ2aWNlc1wiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJNYXBMYXllcnNVSVwiXSA9IFwibWFwLWxheWVycy11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJNYW5hZ2VXTVNcIl0gPSBcIm1hbmFnZS13bXNcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiVXBncmFkZURhdGFTb3VyY2VzVUlcIl0gPSBcInVwZ3JhZGUtZGF0YXNvdXJjZXMtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiVXBncmFkZURhdGFTb3VyY2VVSVwiXSA9IFwidXBncmFkZS1kYXRhc291cmNlLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIk1vdmVSZXBvc2l0b3J5XCJdID0gXCJtb3ZlLXJlcG9zaXRvcnlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiTmV3U2NoZW1hRHJpbGxQYXRoVUlcIl0gPSBcIm5ldy1zY2hlbWEtZHJpbGwtcGF0aC11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJOZXdVSURhc2hib2FyZFwiXSA9IFwibmV3LWRhc2hib2FyZC11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJOZXdVSVdvcmtzaGVldFwiXSA9IFwibmV3LXdvcmtzaGVldC11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJOZXdVSVN0b3J5Ym9hcmRcIl0gPSBcIm5ldy1zdG9yeWJvYXJkLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIk5ld1dvcmtib29rXCJdID0gXCJuZXctd29ya2Jvb2tcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiTmV4dFNoZWV0XCJdID0gXCJuZXh0LXNoZWV0XCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIk5vblJhbmdlZEVkaXRSZWZlcmVuY2VMaW5lXCJdID0gXCJub24tcmFuZ2VkLWVkaXQtcmVmZXJlbmNlLWxpbmVcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiT3BlbkJvb2ttYXJrXCJdID0gXCJvcGVuLWJvb2ttYXJrXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIk9wZW5Gcm9tV29ya2dyb3VwXCJdID0gXCJvcGVuLXdvcmtib29rLWZyb20td29ya2dyb3VwXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIk9wZW5NYXBTb3VyY2VcIl0gPSBcIm9wZW4tbWFwLXNvdXJjZVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJPcGVuTWFwU291cmNlVUlcIl0gPSBcIm9wZW4tbWFwLXNvdXJjZS11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJPcGVuU2FtcGxlV29ya2Jvb2tcIl0gPSBcIm9wZW4tc2FtcGxlLXdvcmtib29rXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIk9wZW5Xb3JrYm9va1wiXSA9IFwib3Blbi13b3JrYm9va1wiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJPcGVuUmVjZW50V29ya2Jvb2tcIl0gPSBcIm9wZW4tcmVjZW50LXdvcmtib29rXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIk9wZW5PdGhlckZpbGVzXCJdID0gXCJvcGVuLW90aGVyLWZpbGVzXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIk9wdGltaXplRXh0cmFjdFVJXCJdID0gXCJvcHRpbWl6ZS1leHRyYWN0LXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlBhZ2VTZXR1cFwiXSA9IFwicGFnZS1zZXR1cFwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJQYXN0ZVwiXSA9IFwicGFzdGVcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiUGFzdGVGaWVsZHNEZWZuVUlcIl0gPSBcInBhc3RlLWZpZWxkcy1kZWZuLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlBhc3RlV29ya3NoZWV0Rm9ybWF0dGluZ1wiXSA9IFwicGFzdGUtZm9ybWF0dGluZ1wiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJQREZFeHBvcnRcIl0gPSBcImV4cG9ydC1wZGZcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiUGVyc3BlY3RpdmVzVUlcIl0gPSBcInBlcnNwZWN0aXZlcy11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJQcmVzZW50YXRpb25Nb2RlXCJdID0gXCJwcmVzZW50YXRpb24tbW9kZVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJQcmludFwiXSA9IFwicHJpbnRcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiUHJvbXB0U2NyaXB0XCJdID0gXCJwcm9tcHQtY29tbWFuZFwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJQcm9wZXJ0aWVzRGF0YVNvdXJjZVVJXCJdID0gXCJwcm9wZXJ0aWVzLWRhdGFzb3VyY2UtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiUHVibGlzaERhdGFzb3VyY2VUb1dvcmtncm91cFwiXSA9IFwicHVibGlzaC1kYXRhc291cmNlLXRvLXdvcmtncm91cFwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJQdWJsaXNoRGF0YXNvdXJjZVRvV29ya2dyb3VwRnJvbURhdGFcIl0gPSBcInB1Ymxpc2gtZGF0YXNvdXJjZS10by13b3JrZ3JvdXAtZnJvbS1kYXRhXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlB1Ymxpc2hEYXRhc291cmNlVG9Xb3JrZ3JvdXBSYW5nZVwiXSA9IFwicHVibGlzaC1kYXRhc291cmNlLXRvLXdvcmtncm91cC1yYW5nZVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJQdWJsaXNoV29ya2Jvb2tUb1dvcmtncm91cFwiXSA9IFwicHVibGlzaC13b3JrYm9vay10by13b3JrZ3JvdXBcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiUHVibGlzaERhdGFzb3VyY2VUb1dvcmtncm91cEZyb21Xb3JrYm9va0RhdGFcIl0gPSBcInB1Ymxpc2gtZGF0YXNvdXJjZS10by13b3JrZ3JvdXAtZnJvbS13b3JrYm9vay1kYXRhXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlByb21wdEZvckRhdGFTb3VyY2VGaWxlVUlcIl0gPSBcInByb21wdC1mb3ItZGF0YXNvdXJjZS1maWxlLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlByb21wdFVua25vd25XRENVcmxVSVwiXSA9IFwicHJvbXB0LXVua25vd24td2RjLXVybC11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJRdWVyeURhdGFTb3VyY2VVSVwiXSA9IFwicXVlcnktZGF0YXNvdXJjZS11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJRdWlja0ZpbHRlckZpZWxkTGFiZWxVSVwiXSA9IFwicXVpY2stZmlsdGVyLWZpZWxkLWxhYmVsLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlF1aWNrVGFibGVDYWxjVUlcIl0gPSBcInF1aWNrLXRhYmxlLWNhbGMtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiUmVjb25uZWN0TWFwU291cmNlVUlcIl0gPSBcInJlY29ubmVjdC1tYXAtc291cmNlLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlJlY29yZFBlcmZvcm1hbmNlXCJdID0gXCJyZWNvcmQtcGVyZlwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJSZWZyZXNoQWxsRXh0cmFjdHNVSVwiXSA9IFwicmVmcmVzaC1hbGwtZXh0cmFjdHMtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiUmVmcmVzaEFsbFRodW1ibmFpbHNVSVwiXSA9IFwicmVmcmVzaC1hbGwtdGh1bWJuYWlsc1wiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJSZWZyZXNoQXV0b0V4dHJhY3RVSVwiXSA9IFwicmVmcmVzaC1hdXRvLWV4dHJhY3QtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiUmVmcmVzaERhdGFTb3VyY2VVSVwiXSA9IFwicmVmcmVzaC1kYXRhc291cmNlLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlJlZnJlc2hFeHRyYWN0VUlcIl0gPSBcInJlZnJlc2gtZXh0cmFjdC11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJSZWZyZXNoRnJvbVNvdXJjZVVJXCJdID0gXCJyZWZyZXNoLWZyb20tc291cmNlLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlJlZnJlc2hMb2NhbERhdGFVSVwiXSA9IFwicmVmcmVzaC1sb2NhbC1kYXRhLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlJlZnJlc2hUaHVtYm5haWxVSVwiXSA9IFwicmVmcmVzaC10aHVtYm5haWxcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiUmVsZWFzZU1lbW9yeVwiXSA9IFwicmVsZWFzZS1tZW1vcnlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiUmVtb3ZlQW5ub3RhdGlvblwiXSA9IFwicmVtb3ZlLWFubm90YXRpb25cIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiUmVtb3ZlRXh0cmFjdFVJXCJdID0gXCJyZW1vdmUtZXh0cmFjdC11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJSZW1vdmVNUlVJdGVtXCJdID0gXCJyZW1vdmUtbXJ1XCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlJlbW92ZVNhdmVkRGF0YVNvdXJjZVVJXCJdID0gXCJyZW1vdmUtc2F2ZWQtZGF0YXNvdXJjZVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJSZW1vdmVTaGVldEZyb21EYXNoYm9hcmRVSVwiXSA9IFwicmVtb3ZlLXNoZWV0LWZyb20tZGFzaGJvYXJkLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlJlbW92ZVRhYmxlVUlcIl0gPSBcInJlbW92ZS10YWJsZS11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJSZW5hbWVEYXRhU291cmNlVUlcIl0gPSBcInJlbmFtZS1kYXRhc291cmNlLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlJlbmFtZVNjaGVtYUZpZWxkRm9sZGVyVUlcIl0gPSBcInJlbmFtZS1maWVsZC1mb2xkZXItdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiUmVuYW1lU2NoZW1hRHJpbGxQYXRoVUlcIl0gPSBcInJlbmFtZS1zY2hlbWEtZHJpbGxwYXRoLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlJlbmFtZVNoZWV0VUlcIl0gPSBcInJlbmFtZS1zaGVldC11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJSZW9yZGVyU2hlZXRzVUlcIl0gPSBcInJlb3JkZXItc2hlZXRzLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlJlcGxhY2VEYXRhU291cmNlV2l0aERhdGFTZXJ2ZXJEYXRhU291cmNlVUlcIl0gPSBcInJlcGxhY2UtZGF0YXNvdXJjZS13aXRoLWRhdGEtc2VydmVyLWRhdGFzb3VyY2UtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiUmVwbGFjZUZpZWxkVUlcIl0gPSBcInJlcGxhY2UtZmllbGQtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiUmVzZXRDYXB0aW9uVUlcIl0gPSBcInJlc2V0LWNhcHRpb24tdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiUmVzZXRDYXJkc1wiXSA9IFwicmVzZXQtY2FyZHNcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiUmVzZXRMb2NhbERhdGFVSVwiXSA9IFwicmVtb3ZlLWxvY2FsLWRhdGEtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiUmVzZXRNZXNzYWdlc1wiXSA9IFwicmVzZXQtbWVzc2FnZXNcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiU3RhcnRPbmxpbmVTeW5jQ2xpZW50XCJdID0gXCJzdGFydC1vbmxpbmUtc3luYy1jbGllbnRcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiUmVzZXRUaXRsZVVJXCJdID0gXCJyZXNldC10aXRsZS11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJSZXNldFRvRGVmYXVsdHNNYXBDYXJkXCJdID0gXCJyZXNldC1tYXAtdG8tZGVmYXVsdHNcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiUmVzZXRXb3JrYm9va1wiXSA9IFwicmV2ZXJ0LXdvcmtib29rLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlJldGFyZ2V0RGF0YVNvdXJjZVwiXSA9IFwicmV0YXJnZXQtZGF0YXNvdXJjZVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJSZXRhcmdldERhdGFTb3VyY2VVSVwiXSA9IFwicmV0YXJnZXQtZGF0YXNvdXJjZS11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJTYXZlQXNXb3JrYm9va1wiXSA9IFwic2F2ZS1hcy13b3JrYm9va1wiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJTYXZlQm9va21hcmtcIl0gPSBcInNhdmUtYm9va21hcmtcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiU2F2ZURlYnVnZ2luZ1dvcmtib29rXCJdID0gXCJzYXZlLWRlYnVnZ2luZy13b3JrYm9va1wiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJTYXZlRGVmYXVsdEZvcm1hdHRpbmdVSVwiXSA9IFwic2F2ZS1mb3JtYXR0aW5nLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlNhdmVXb3JrYm9va1wiXSA9IFwic2F2ZS13b3JrYm9va1wiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJTY2hlbWFEZWZhdWx0TWVtYmVyVUlcIl0gPSBcInNjaGVtYS1kZWZhdWx0LW1lbWJlci11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJTY3JvbGxTaGVldFwiXSA9IFwic2Nyb2xsLXNoZWV0XCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlNldEFjY291bnRzRGltZW5zaW9uXCJdID0gXCJzZXQtYWNjb3VudHMtZGltZW5zaW9uXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlNldEFjdGl2ZUNvbm5lY3Rpb25VSVwiXSA9IFwic2V0LWFjdGl2ZS1jb25uZWN0aW9uLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlNldEFuYWx5dGljc0Ryb3BUYXJnZXRWaXNpYmlsaXR5XCJdID0gXCJzZXQtYW5hbHl0aWNzLWRyb3AtdGFyZ2V0LXZpc2liaWxpdHlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiU2V0RGFzaGJvYXJkU2lkZVBhbmVNb2RlXCJdID0gXCJzZXQtZGFzaGJvYXJkLXNpZGVwYW5lLW1vZGVcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiU2V0RGVmYXVsdERhdGVGb3JtYXRVSVwiXSA9IFwic2V0LWRlZmF1bHQtZGF0ZS1mb3JtYXQtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiU2V0RGVmYXVsdExvY2F0aW9uVUlcIl0gPSBcInNldC1kZWZhdWx0LWxvY2F0aW9uLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlNldERlZmF1bHRNYXBTb3VyY2VVSVwiXSA9IFwic2V0LWRlZmF1bHQtbWFwc291cmNlLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlNldERlZmF1bHRUZXh0Rm9ybWF0VUlcIl0gPSBcInNldC1kZWZhdWx0LXRleHQtZm9ybWF0LXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlNldERlZmF1bHRVdGlsaXR5TWVtYmVyXCJdID0gXCJzZXQtZGVmYXVsdC11dGlsaXR5LW1lbWJlclwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJTZXRGcmVlRm9ybURhc2hib2FyZFVJXCJdID0gXCJzZXQtZnJlZS1mb3JtLWRhc2hib2FyZC11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJTZXRGaWx0ZXJTaGFyZWRVSVwiXSA9IFwic2V0LWZpbHRlci1zaGFyZWQtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiU2V0S2V5XCJdID0gXCJzZXQta2V5XCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlNldFByb2R1Y3RBdXRvVXBkYXRlXCJdID0gXCJzZXQtYXV0by11cGRhdGVcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiU2V0UXVlcnlGYWlsdXJlXCJdID0gXCJzZXQtcXVlcnktZmFpbHVyZVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJTZXRSZW5kZXJpbmdcIl0gPSBcInNldC1yZW5kZXJpbmdcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiU2V0UnVudGltZUltbWVkaWF0ZU1vZGVcIl0gPSBcInNldC1ydW50aW1lLWltbWVkaWF0ZS1tb2RlXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlNldFVJTGFuZ3VhZ2VcIl0gPSBcInNldC11aS1sYW5ndWFnZVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJTZXRXb3JrYm9va0xvY2FsZVVJXCJdID0gXCJzZXQtd29ya2Jvb2stbG9jYWxlLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlNldFdvcmtzaGVldFNpZGVQYW5lTW9kZVwiXSA9IFwic2V0LXdvcmtzaGVldC1zaWRlcGFuZS1tb2RlXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlNldFpvbmVGaXhlZFNpemVVSVwiXSA9IFwic2V0LXpvbmUtZml4ZWQtc2l6ZS11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJTZXRzSW5PdXRVSVwiXSA9IFwic2hvdy1pbi1vdXQtc2V0c1wiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJTaGFwZUxlZ2VuZEVkaXRVSVwiXSA9IFwic2hhcGUtbGVnZW5kLWVkaXQtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiU2hvd0Nsb3VkRmlsZU9BdXRoUHJvbXB0QW5kU2VsZWN0aW9uVUlcIl0gPSBcInNob3ctY2xvdWRmaWxlLW9hdXRoLXByb21wdC1hbmQtc2VsZWN0aW9uLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlNob3dDb25uZWN0aW9uQXV0aFVJXCJdID0gXCJzaG93LWNvbm5lY3Rpb24tYXV0aC11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJTaG93Q29ubmVjdGlvbkF1dGhBbmRFc3RhYmxpc2hDb25uZWN0aW9uVUlcIl0gPSBcInNob3ctY29ubmVjdGlvbi1hdXRoLWFuZC1lc3RhYmxpc2gtY29ubmVjdGlvbi11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJTaG93Q29ubmVjdFRhYlwiXSA9IFwic2hvdy1jb25uZWN0LXRhYlwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJTaG93Q3VzdG9tU3BsaXREaWFsb2dVSVwiXSA9IFwic2hvdy1jdXN0b20tc3BsaXQtZGlhbG9nLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlNob3dEb2N1bWVudFwiXSA9IFwiZG9jdW1lbnRcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiU2hvd0ZlYXR1cmVGbGFnRGlhbG9nXCJdID0gXCJzaG93LWZlYXR1cmUtZmxhZy1kaWFsb2dcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiU2hvd0ZpZWxkRm9ybWF0VUlcIl0gPSBcInNob3ctZmllbGQtZm9ybWF0LXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlNob3dGaWVsZEluU2NoZW1hVUlcIl0gPSBcInNob3ctZmllbGQtaW4tc2NoZW1hXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlNob3dGaWxtc3RyaXBVSVwiXSA9IFwic2hvdy1maWxtc3RyaXAtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiU2hvd0dvb2dsZVNoZWV0c1NlbGVjdGlvblVJXCJdID0gXCJzaG93LWdvb2dsZS1zaGVldHMtc2VsZWN0aW9uLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlNob3dIZWxwXCJdID0gXCJzaG93LWhlbHBcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiU2hvd0hpZGVEYXNoYm9hcmRTaGVldFVJXCJdID0gXCJzaG93LWhpZGUtZGFzaGJvYXJkLXNoZWV0LXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlNob3dIaWRlU3Rvcnlib2FyZFNoZWV0VUlcIl0gPSBcInNob3ctaGlkZS1zdG9yeWJvYXJkLXNoZWV0LXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlNob3dHcmFwaGljc0FQSVwiXSA9IFwic2hvdy1ncmFwaGljcy1hcGktY29tbWFuZFwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJTaG93TWFwT3B0aW9uc0RpYWxvZ1wiXSA9IFwic2hvdy1tYXAtb3B0aW9ucy1kaWFsb2dcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiU2hvd01lYXN1cmVzVUlcIl0gPSBcInNob3ctbWVhc3VyZXMtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiU2hvd01lQ3ljbGVVSVwiXSA9IFwic2hvdy1tZS1jeWNsZS11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJTaG93TWVIaWRlVUlcIl0gPSBcInNob3ctbWUtaGlkZS11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJTaG93TWVtYmVyc1VJXCJdID0gXCJzaG93LW1lbWJlcnMtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiU2hvd01lVG9nZ2xlVUlcIl0gPSBcInNob3ctbWUtdG9nZ2xlLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlNob3dPQXV0aFByb21wdFVJXCJdID0gXCJzaG93LW9hdXRoLXByb21wdC11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJTaG93UGFyYW1ldGVyQ29udHJvbFwiXSA9IFwic2hvdy1wYXJhbWV0ZXItY29udHJvbFwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJTaG93UHVibGljU3RhdHVzRGlhbG9nXCJdID0gXCJzaG93LXB1YmxpYy1zdGF0dXMtZGlhbG9nXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlNob3dQdWJsaWNRdW90YUV4Y2VlZGVkRGlhbG9nXCJdID0gXCJzaG93LXB1YmxpYy1xdW90YS1leGNlZWRlZC1kaWFsb2dcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiU2hvd1B1Ymxpc2hEYXRhc291cmNlVG9Xb3JrZ3JvdXBEaWFsb2dcIl0gPSBcInNob3ctcHVibGlzaC1kYXRhc291cmNlLXRvLXdvcmtncm91cC1kaWFsb2dcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiU2hvd1F1ZXJ5QmFuZGluZ0FuZEluaXRpYWxTUUxEaWFsb2dVSVwiXSA9IFwic2hvdy1xdWVyeS1iYW5kaW5nLWFuZC1pbml0aWFsLXNxbC1kaWFsb2ctdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiU2hvd1F1aWNrRmlsdGVyXCJdID0gXCJzaG93LXF1aWNrZmlsdGVyXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlNob3dRdWlja0ZpbHRlclVJXCJdID0gXCJzaG93LXF1aWNrZmlsdGVyLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlNob3dSdW50aW1lSW5kaWNhdG9yXCJdID0gXCJzaG93LXJ1bnRpbWUtaW5kaWNhdG9yXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlNob3dTaGVldFNvcnRlclwiXSA9IFwic2hlZXQtc29ydGVyXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlNob3dUYWJsZU9wdGlvbnNEaWFsb2dcIl0gPSBcInNob3ctdGFibGUtb3B0aW9ucy1kaWFsb2dcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiU2hvd1dlYkRhdGFDb25uZWN0b3JVSVwiXSA9IFwic2hvdy13ZWItZGF0YS1jb25uZWN0b3ItdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiU2hvd1dpZGdldFNhbmRib3hVSVwiXSA9IFwic2hvdy13aWRnZXQtc2FuZGJveC11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJTaXplTGVnZW5kRWRpdFVJXCJdID0gXCJzaXplLWxlZ2VuZC1lZGl0LXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlNsZWVwVUlcIl0gPSBcInNsZWVwLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlNvcnRBc2NlbmRpbmdGaWVsZExhYmVsVUlcIl0gPSBcInNvcnQtYXNjZW5kaW5nLWZpZWxkLWxhYmVsLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlNvcnREZXNjZW5kaW5nRmllbGRMYWJlbFVJXCJdID0gXCJzb3J0LWRlc2NlbmRpbmctZmllbGQtbGFiZWwtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiU29ydEZpZWxkTGFiZWxVSVwiXSA9IFwic29ydC1maWVsZC1sYWJlbC11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJTb3J0VUlcIl0gPSBcInNvcnQtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiU3BsaXRGaWVsZFVJXCJdID0gXCJzcGxpdC1maWVsZC11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJTdGFja01hcmtzVUlcIl0gPSBcInN0YWNrLW1hcmtzLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlN0YXJ0RmlsZUNvbm5lY3Rpb25VSVwiXSA9IFwic3RhcnQtZmlsZS1jb25uZWN0aW9uLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlN0YXJ0UGlsbEVkaXRVSVwiXSA9IFwic3RhcnQtcGlsbC1lZGl0LXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlN3aXRjaFRvQ29ubmVjdFRhYlwiXSA9IFwic3dpdGNoLXRvLWNvbm5lY3QtdGFiXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlN3aXRjaFRvRG9jdW1lbnRcIl0gPSBcInN3aXRjaC10by1kb2N1bWVudFwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJTd2l0Y2hUb1NoZWV0U29ydGVyXCJdID0gXCJzd2l0Y2gtdG8tc2hlZXQtc29ydGVyXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlRhYmxlQ2FsY0FkZHJlc3NVSVwiXSA9IFwidGFibGUtY2FsYy1hZGRyZXNzLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlRhYmxlQ2FsY0lnbm9yZVVJXCJdID0gXCJ0YWJsZS1jYWxjLWlnbm9yZS11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJUYWJsZUNhbGNPcmRlcmluZ1VJXCJdID0gXCJ0YWJsZS1jYWxjLW9yZGVyaW5nLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlRhYmxlQ2FsY1VJXCJdID0gXCJ0YWJsZS1jYWxjLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlRvZ2dsZUNvbm5lY3RQYW5lVUlcIl0gPSBcInRvZ2dsZS1jb25uZWN0LXBhbmVcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiVG9nZ2xlRmlsbXN0cmlwVUlcIl0gPSBcInRvZ2dsZS1maWxtc3RyaXAtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiVG9nZ2xlSU5ESm9pblNlbWFudGljc1VJXCJdID0gXCJ0b2dnbGUtaW5kLWpvaW4tc2VtYW50aWNzLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlRvZ2dsZVBpbk1SVUl0ZW1cIl0gPSBcInRvZ2dsZS1waW4tbXJ1XCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlRvZ2dsZVJlZmVyZW50aWFsSW50ZWdyaXR5VUlcIl0gPSBcInRvZ2dsZS1yZWZlcmVudGlhbC1pbnRlZ3JpdHktdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiVG9nZ2xlU3RhcnRQYWdlVUlcIl0gPSBcInRvZ2dsZS1zdGFydC1wYWdlXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlRyYWNrTWVtb3J5XCJdID0gXCJ0cmFjay1tZW1vcnlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiVHJlbmRMaW5lc0ZsYWdVSVwiXSA9IFwidHJlbmQtbGluZXMtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiVXBkYXRlRGVmYXVsdHNNYXBDYXJkXCJdID0gXCJ1cGRhdGUtbWFwLWRlZmF1bHRzXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlVwZ3JhZGVFeHRyYWN0c1VJXCJdID0gXCJ1cGdyYWRlLWV4dHJhY3RzLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlVwZ3JhZGVFeHRyYWN0VUlcIl0gPSBcInVwZ3JhZGUtZXh0cmFjdC11aVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJVc2VFeHRyYWN0VUlcIl0gPSBcInVzZS1leHRyYWN0LXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlVzZU1lbW9yeVwiXSA9IFwidXNlLW1lbW9yeVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJVdGlsaXR5RGltZW5zaW9uVUlcIl0gPSBcInV0aWxpdHktZGltZW5zaW9uLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlZhbGlkYXRlRXh0cmFjdENyZWRlbnRpYWxzVUlcIl0gPSBcInZhbGlkYXRlLWV4dHJhY3QtY3JlZGVudGlhbHMtdWlcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiVmlld0NhcmRcIl0gPSBcInZpZXctY2FyZFwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJWaWV3VGl0bGVDYXJkXCJdID0gXCJ2aWV3LXRpdGxlLWNhcmRcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiVmlld1N1bW1hcnlDYXJkXCJdID0gXCJ2aWV3LXN1bW1hcnktY2FyZFwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJWaWV3Q2FwdGlvbkNhcmRcIl0gPSBcInZpZXctY2FwdGlvbi1jYXJkXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlZpZXdDb2x1bW5zU2hlbGZcIl0gPSBcInZpZXctY29sdW1ucy1zaGVsZlwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJWaWV3Um93c1NoZWxmXCJdID0gXCJ2aWV3LXJvd3Mtc2hlbGZcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiVmlld1BhZ2VzU2hlbGZcIl0gPSBcInZpZXctcGFnZXMtc2hlbGZcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiVmlld0ZpbHRlcnNTaGVsZlwiXSA9IFwidmlldy1maWx0ZXJzLXNoZWxmXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlZpZXdNZWFzdXJlc1NoZWxmXCJdID0gXCJ2aWV3LW1lYXN1cmVzLXNoZWxmXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlZpZXdNYXJrc1NoZWxmXCJdID0gXCJ2aWV3LW1hcmtzLXNoZWxmXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlZpZXdDdXJyZW50UGFnZUNhcmRcIl0gPSBcInZpZXctY3VycmVudC1wYWdlLWNhcmRcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiVmlld0RhdGFcIl0gPSBcInZpZXctZGF0YVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJWaWV3U1FMRGF0YVVJXCJdID0gXCJ2aWV3LXNxbC1kYXRhLXVpXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIlZpZXdEYXRhU291cmNlRGF0YVwiXSA9IFwidmlldy1kYXRhc291cmNlLWRhdGFcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiVmlld0xlZ2VuZFwiXSA9IFwidmlldy1sZWdlbmRcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiVmlld1NpZGVQYW5lXCJdID0gXCJ2aWV3LXNpZGUtcGFuZVwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJWaWV3U3RhdHVzQmFyXCJdID0gXCJ2aWV3LXN0YXR1c2JhclwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJWaWV3U3VtbWFyeURldGFpbFwiXSA9IFwidmlldy1zdW1tYXJ5LWRldGFpbFwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJWaWV3VGFibGVEYXRhXCJdID0gXCJ2aWV3LXRhYmxlLWRhdGFcIjtcbiAgICAvLyBcbiAgICBVSUNvbW1hbmRzW1wiVmlld1Rvb2xCYXJcIl0gPSBcInZpZXctdG9vbGJhclwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJXZWJWaWV3RW5hYmxlSmF2YXNjcmlwdFwiXSA9IFwid2Vidmlldy1lbmFibGUtamF2YXNjcmlwdFwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJXZWJWaWV3RW5hYmxlUGx1Z2luc1wiXSA9IFwid2Vidmlldy1lbmFibGUtcGx1Z2luc1wiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJXZWJWaWV3QmxvY2tQb3B1cHNcIl0gPSBcIndlYnZpZXctYmxvY2stcG9wdXBzXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIldlYlZpZXdFbmFibGVVUkxIb3ZlckFjdGlvbnNcIl0gPSBcIndlYnZpZXctZW5hYmxlLXVybC1ob3Zlci1hY3Rpb25zXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIldvcmtncm91cENoYW5nZURhdGFzZXJ2ZXJcIl0gPSBcIndvcmtncm91cC1jaGFuZ2UtZGF0YXNlcnZlclwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJXb3JrZ3JvdXBDaGFuZ2VTZXJ2ZXJcIl0gPSBcIndvcmtncm91cC1jaGFuZ2Utc2VydmVyXCI7XG4gICAgLy8gXG4gICAgVUlDb21tYW5kc1tcIldvcmtncm91cENoYW5nZVVzZXJcIl0gPSBcIndvcmtncm91cC1jaGFuZ2UtdXNlclwiO1xuICAgIC8vIFxuICAgIFVJQ29tbWFuZHNbXCJXb3JrZ3JvdXBSZW1vdmVMYXN0U2VydmVyXCJdID0gXCJ3b3JrZ3JvdXAtcmVtb3ZlLWxhc3Qtc2VydmVyXCI7XG59KShVSUNvbW1hbmRzID0gZXhwb3J0cy5VSUNvbW1hbmRzIHx8IChleHBvcnRzLlVJQ29tbWFuZHMgPSB7fSkpO1xuKGZ1bmN0aW9uIChEb2NDb21tYW5kcykge1xuICAgIC8vIEdldHMgdGhlIGF4aXMgb3B0aW9ucyAuXG4gICAgRG9jQ29tbWFuZHNbXCJHZXRBeGlzT3B0aW9uc1wiXSA9IFwiZ2V0LWF4aXMtb3B0aW9uc1wiO1xuICAgIC8vIFJlc2V0IHRoZSBheGlzIG9wdGlvbnMgLlxuICAgIERvY0NvbW1hbmRzW1wiUmVzZXRBeGlzT3B0aW9uc1wiXSA9IFwicmVzZXQtYXhpcy1vcHRpb25zXCI7XG4gICAgLy8gU2hvdyBheGlzIGVkaXQgZGlhbG9nXG4gICAgRG9jQ29tbWFuZHNbXCJTaG93RWRpdEF4aXNEaWFsb2dcIl0gPSBcInNob3ctZWRpdC1heGlzLWRpYWxvZ1wiO1xuICAgIC8vIFNldHMgdGhlIGF4aXMgZGlyZWN0aW9uXG4gICAgRG9jQ29tbWFuZHNbXCJTZXRBeGlzUmV2ZXJzZWRcIl0gPSBcInNldC1heGlzLXJldmVyc2VkXCI7XG4gICAgLy8gU2V0cyB0aGUgYXhpcyBzY2FsZSB0eXBlXG4gICAgRG9jQ29tbWFuZHNbXCJTZXRBeGlzU2NhbGVUeXBlXCJdID0gXCJzZXQtYXhpcy1zY2FsZS10eXBlXCI7XG4gICAgLy8gU2V0cyB0aGUgbWFpbiB0aXRsZSBvZiBhIHF1YW50aXRhdGl2ZSBheGlzXG4gICAgRG9jQ29tbWFuZHNbXCJTZXRBeGlzVGl0bGVcIl0gPSBcInNldC1heGlzLXRpdGxlXCI7XG4gICAgLy8gU2V0cyB0aGUgc3VidGl0bGUgb2YgYSBxdWFudGl0YXRpdmUgYXhpc1xuICAgIERvY0NvbW1hbmRzW1wiU2V0QXhpc1N1YnRpdGxlXCJdID0gXCJzZXQtYXhpcy1zdWJ0aXRsZVwiO1xuICAgIC8vIFNldHMgd2hldGhlciB3ZSBzaG91bGQgdXNlIHRoZSBhdXRvbWF0aWMgc3VidGl0bGUgZm9yIGEgcXVhbnRpdGF0aXZlIGF4aXNcbiAgICBEb2NDb21tYW5kc1tcIlNldEF4aXNVc2VBdXRvbWF0aWNTdWJ0aXRsZVwiXSA9IFwic2V0LWF4aXMtdXNlLWF1dG9tYXRpYy1zdWJ0aXRsZVwiO1xuICAgIC8vIFNldHMgdGhlIGF4aXMgcmFuZ2UgdHlwZSBvZiBhIHF1YW50aXRhdGl2ZSBheGlzXG4gICAgRG9jQ29tbWFuZHNbXCJTZXRBeGlzRXh0ZW50U3RhcnRUeXBlXCJdID0gXCJzZXQtYXhpcy1leHRlbnQtc3RhcnQtdHlwZVwiO1xuICAgIC8vIFNldHMgdGhlIGF4aXMgcmFuZ2UgdHlwZSBvZiBhIHF1YW50aXRhdGl2ZSBheGlzXG4gICAgRG9jQ29tbWFuZHNbXCJTZXRBeGlzRXh0ZW50RW5kVHlwZVwiXSA9IFwic2V0LWF4aXMtZXh0ZW50LWVuZC10eXBlXCI7XG4gICAgLy8gU2V0cyB0aGUgYXhpcyByYW5nZSB0eXBlIG9mIGEgcXVhbnRpdGF0aXZlIGF4aXNcbiAgICBEb2NDb21tYW5kc1tcIlNldEJvdGhBeGlzRXh0ZW50c1R5cGVcIl0gPSBcInNldC1ib3RoLWF4aXMtZXh0ZW50cy10eXBlXCI7XG4gICAgLy8gU2V0cyB3aGV0aGVyIG9yIG5vdCB0byBmb3JjZS1pbmNsdWRlIHplcm8gb24gYSBxdWFudGl0YXRpdmUgYXhpc1xuICAgIERvY0NvbW1hbmRzW1wiU2V0QXhpc0luY2x1ZGVaZXJvXCJdID0gXCJzZXQtYXhpcy1pbmNsdWRlLXplcm9cIjtcbiAgICAvLyBTZXRzIG5ldyBtaW4vbWF4IHJhbmdlIGVuZGluZ3MgZm9yIGF4aXNcbiAgICBEb2NDb21tYW5kc1tcIlNldEF4aXNSYW5nZUVuZFwiXSA9IFwic2V0LWF4aXMtcmFuZ2UtZW5kXCI7XG4gICAgLy8gU2V0cyBuZXcgbWluL21heCByYW5nZSBlbmRpbmdzIGZvciBheGlzXG4gICAgRG9jQ29tbWFuZHNbXCJTZXRBeGlzUmFuZ2VTdGFydFwiXSA9IFwic2V0LWF4aXMtcmFuZ2Utc3RhcnRcIjtcbiAgICAvLyBTeW5jaHJvbml6ZSBkdWFsIGF4ZXMgb24gYSBmb2xkZWQgcXVhbnRpdGF0aXZlIGF4aXNcbiAgICBEb2NDb21tYW5kc1tcIlNldEF4aXNGb2xkU3RhdGVcIl0gPSBcInNldC1heGlzLWZvbGQtc3RhdGVcIjtcbiAgICAvLyBTZXQgdGhlIG1ham9yIHRpY2sgbWFyayBzdGF0ZVxuICAgIERvY0NvbW1hbmRzW1wiU2V0TWFqb3JUaWNrTWFya1N0YXRlXCJdID0gXCJzZXQtbWFqb3ItdGljay1tYXJrLXN0YXRlXCI7XG4gICAgLy8gU2V0IHRoZSBtaW5vciB0aWNrIG1hcmsgc3RhdGVcbiAgICBEb2NDb21tYW5kc1tcIlNldE1pbm9yVGlja01hcmtTdGF0ZVwiXSA9IFwic2V0LW1pbm9yLXRpY2stbWFyay1zdGF0ZVwiO1xuICAgIC8vIFNldCB0aGUgbWFqb3IgdGljayBtYXJrIG9yaWdpblxuICAgIERvY0NvbW1hbmRzW1wiU2V0TWFqb3JUaWNrTWFya09yaWdpblwiXSA9IFwic2V0LW1ham9yLXRpY2stbWFyay1vcmlnaW5cIjtcbiAgICAvLyBTZXQgdGhlIG1pbm9yIHRpY2sgbWFyayBvcmlnaW5cbiAgICBEb2NDb21tYW5kc1tcIlNldE1pbm9yVGlja01hcmtPcmlnaW5cIl0gPSBcInNldC1taW5vci10aWNrLW1hcmstb3JpZ2luXCI7XG4gICAgLy8gU2V0IHRoZSBtYWpvciB0aWNrIG1hcmsgc3BhY2luZ1xuICAgIERvY0NvbW1hbmRzW1wiU2V0TWFqb3JUaWNrTWFya1NwYWNpbmdcIl0gPSBcInNldC1tYWpvci10aWNrLW1hcmstc3BhY2luZ1wiO1xuICAgIC8vIFNldCB0aGUgbWlub3IgdGljayBtYXJrIHNwYWNpbmdcbiAgICBEb2NDb21tYW5kc1tcIlNldE1pbm9yVGlja01hcmtTcGFjaW5nXCJdID0gXCJzZXQtbWlub3ItdGljay1tYXJrLXNwYWNpbmdcIjtcbiAgICAvLyBTZXQgdGhlIG1ham9yIHRpY2sgbWFyayB1bml0c1xuICAgIERvY0NvbW1hbmRzW1wiU2V0TWFqb3JUaWNrTWFya1VuaXRzXCJdID0gXCJzZXQtbWFqb3ItdGljay1tYXJrLXVuaXRzXCI7XG4gICAgLy8gU2V0IHRoZSBtaW5vciB0aWNrIG1hcmsgdW5pdHNcbiAgICBEb2NDb21tYW5kc1tcIlNldE1pbm9yVGlja01hcmtVbml0c1wiXSA9IFwic2V0LW1pbm9yLXRpY2stbWFyay11bml0c1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiQm91bmRpbmdCb3hQYW5cIl0gPSBcImJvdW5kaW5nLWJveC1wYW5cIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIk9uVG9nZ2xlQXhpc1Jhbmdlc1wiXSA9IFwib24tdG9nZ2xlLWF4aXMtcmFuZ2VzXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJQYW5lUGFuXCJdID0gXCJwYW5lLXBhblwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiUGFuZVpvb21cIl0gPSBcInBhbmUtem9vbVwiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiUGFuZVpvb21GYWN0b3JcIl0gPSBcInBhbmUtem9vbS1mYWN0b3JcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlBhbmVab29tUGFuXCJdID0gXCJwYW5lLXpvb20tcGFuXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJSZW9yZGVyRm9sZGVkQXhlc1wiXSA9IFwicmVvcmRlci1mb2xkZWQtYXhlc1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiUmVzZXRBeGlzUmFuZ2VcIl0gPSBcInJlc2V0LWF4aXMtcmFuZ2VcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlNlbGVjdEF4aXNUdXBsZXNcIl0gPSBcInNlbGVjdC1heGlzLXR1cGxlc1wiO1xuICAgIC8vIFxuICAgIERvY0NvbW1hbmRzW1wiU3dhcFJlZmVyZW5jZUxpbmVGaWVsZHNcIl0gPSBcInN3YXAtcmVmZXJlbmNlLWxpbmUtZmllbGRzXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJTeW5jaHJvbml6ZUF4aXNcIl0gPSBcInN5bmNocm9uaXplLWF4aXNcIjtcbiAgICAvLyBcbiAgICBEb2NDb21tYW5kc1tcIlRvZ2dsZUR1YWxBeGlzXCJdID0gXCJ0b2dnbGUtZHVhbC1heGlzXCI7XG4gICAgLy8gXG4gICAgRG9jQ29tbWFuZHNbXCJab29tTGV2ZWxcIl0gPSBcInpvb20tbGV2ZWxcIjtcbn0pKERvY0NvbW1hbmRzID0gZXhwb3J0cy5Eb2NDb21tYW5kcyB8fCAoZXhwb3J0cy5Eb2NDb21tYW5kcyA9IHt9KSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Db21tYW5kSWRzLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogRDovZGV2L2pzLWFwaS9hcGktY29yZS9saWIvZ2VuLXNyYy9wcmVzbGF5ZXIvQ29tbWFuZElkcy5qc1xuICoqIG1vZHVsZSBpZCA9IDEyXG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8qKlxuICogUmVnaXN0cnkgd2hpY2ggY29udGFpbnMgbWFwcGluZ3MgZnJvbSBhbiBBcGkgVmVyYklkIHRvIGEgcHJlcy1sYXllciBjb21tYW5kLlxuICogVGhpcyBpbmNsdWRlcyB0aGUgcGFyYW1ldGVycyBhbmQgcmV0dXJuIHZhbHVlcyBvZiB0aGUgY29tbWFuZCBhcyB3ZWxsXG4gKlxuICogQGV4cG9ydFxuICogQGNsYXNzIENvbW1hbmRNYXBwaW5nUmVnaXN0cnlcbiAqL1xudmFyIENvbW1hbmRNYXBwaW5nUmVnaXN0cnkgPSAoZnVuY3Rpb24gKCkge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgQ29tbWFuZE1hcHBpbmdSZWdpc3RyeS5cbiAgICAgKiBAbWVtYmVyb2YgQ29tbWFuZE1hcHBpbmdSZWdpc3RyeVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIENvbW1hbmRNYXBwaW5nUmVnaXN0cnkoKSB7XG4gICAgICAgIHRoaXMuX2NvbW1hbmRzID0ge307XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEFkZHMgYSBuZXcgY29tbWFuZCB0byB0aGUgcmVnaXN0cnlcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7Q29tbWFuZFJlZ2lzdHJhdGlvbn0gY29tbWFuZFxuICAgICAqIEBtZW1iZXJvZiBDb21tYW5kTWFwcGluZ1JlZ2lzdHJ5XG4gICAgICovXG4gICAgQ29tbWFuZE1hcHBpbmdSZWdpc3RyeS5wcm90b3R5cGUuYWRkQ29tbWFuZCA9IGZ1bmN0aW9uIChjb21tYW5kKSB7XG4gICAgICAgIHRoaXMuX2NvbW1hbmRzW2NvbW1hbmQuYXBpVmVyYklkXSA9IGNvbW1hbmQ7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG9yIG5vdCB0aGlzIHJlZ2lzdHJ5IGNvbnRhaW5zIGEgZGVmaW5pdGlvbiBmb3IgdGhpcyBBcGlWZXJiSWRcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7QXBpVmVyYklkfSBhcGlWZXJiSWRcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICAgKiBAbWVtYmVyb2YgQ29tbWFuZE1hcHBpbmdSZWdpc3RyeVxuICAgICAqL1xuICAgIENvbW1hbmRNYXBwaW5nUmVnaXN0cnkucHJvdG90eXBlLmhhc0NvbW1hbmQgPSBmdW5jdGlvbiAoYXBpVmVyYklkKSB7XG4gICAgICAgIGlmICghdGhpcy5fY29tbWFuZHMuaGFzT3duUHJvcGVydHkoYXBpVmVyYklkKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5fY29tbWFuZHNbYXBpVmVyYklkXSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgY29tbWFuZCByZWdpc3RyYXRpb24gZm9yIHRoaXMgY29tbWFuZCBpZCBvciB0aHJvd3MgaWYgaXQgZG9lc24ndCBleGlzdFxuICAgICAqXG4gICAgICogQHBhcmFtIHtBcGlWZXJiSWR9IGFwaVZlcmJJZFxuICAgICAqIEByZXR1cm5zIHtDb21tYW5kUmVnaXN0cmF0aW9ufVxuICAgICAqIEBtZW1iZXJvZiBDb21tYW5kTWFwcGluZ1JlZ2lzdHJ5XG4gICAgICovXG4gICAgQ29tbWFuZE1hcHBpbmdSZWdpc3RyeS5wcm90b3R5cGUuZ2V0Q29tbWFuZCA9IGZ1bmN0aW9uIChhcGlWZXJiSWQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmhhc0NvbW1hbmQoYXBpVmVyYklkKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIEFwaVZlcmI6ICcgKyBhcGlWZXJiSWQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9jb21tYW5kc1thcGlWZXJiSWRdO1xuICAgIH07XG4gICAgcmV0dXJuIENvbW1hbmRNYXBwaW5nUmVnaXN0cnk7XG59KCkpO1xuZXhwb3J0cy5Db21tYW5kTWFwcGluZ1JlZ2lzdHJ5ID0gQ29tbWFuZE1hcHBpbmdSZWdpc3RyeTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUNvbW1hbmRNYXBwaW5nUmVnaXN0cnkuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1jb3JlL2xpYi9zcmMvbWFwcGluZ3MvQ29tbWFuZE1hcHBpbmdSZWdpc3RyeS5qc1xuICoqIG1vZHVsZSBpZCA9IDEzXG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBhcGlfaW50ZXJuYWxfY29udHJhY3RfMSA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3RcIik7XG4vKipcbiAqIFRoaXMgaXMgYW4gZW51bSB1c2VkIG9ubHkgaW50ZXJuYWxseSBieSB0aGUgYXBpLWNvcmUgcHJvamVjdC5cbiAqIFRoaXMgZW51bSByZXByZXNlbnRzIHRoZSBkaWZmZXJlbmNlIG5hbWVzcGFjZXMgYXZhaWxhYmxlIGZvciBjb21tYW5kcy5cbiAqL1xudmFyIENvbW1hbmROYW1lc3BhY2U7XG4oZnVuY3Rpb24gKENvbW1hbmROYW1lc3BhY2UpIHtcbiAgICBDb21tYW5kTmFtZXNwYWNlW1wiVGFiRG9jXCJdID0gXCJ0YWJkb2NcIjtcbiAgICBDb21tYW5kTmFtZXNwYWNlW1wiVGFiVUlcIl0gPSBcInRhYnVpXCI7XG59KShDb21tYW5kTmFtZXNwYWNlID0gZXhwb3J0cy5Db21tYW5kTmFtZXNwYWNlIHx8IChleHBvcnRzLkNvbW1hbmROYW1lc3BhY2UgPSB7fSkpO1xuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGlucHV0IG9yIG91dHB1dCBwYXJhbXRlciBmb3IgYSBjb21tYW5kLlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBDb21tYW5kUGFyYW1ldGVyXG4gKi9cbnZhciBDb21tYW5kUGFyYW1ldGVyID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIENvbW1hbmRQYXJhbWV0ZXIuXG4gICAgICogQHBhcmFtIHtBcGlQYXJhbWV0ZXJJZH0gYXBpSWRcbiAgICAgKiBAcGFyYW0ge1ByZXNMYXllclBhcmFtZXRlcklkfSBwcmVzTGF5ZXJJZFxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gW2lzT3B0aW9uYWxdXG4gICAgICogQG1lbWJlcm9mIENvbW1hbmRQYXJhbWV0ZXJcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBDb21tYW5kUGFyYW1ldGVyKF9hcGlJZCwgX3ByZXNMYXllcklkLCBfaXNPcHRpb25hbCkge1xuICAgICAgICB0aGlzLl9hcGlJZCA9IF9hcGlJZDtcbiAgICAgICAgdGhpcy5fcHJlc0xheWVySWQgPSBfcHJlc0xheWVySWQ7XG4gICAgICAgIHRoaXMuX2lzT3B0aW9uYWwgPSBfaXNPcHRpb25hbDtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KENvbW1hbmRQYXJhbWV0ZXIucHJvdG90eXBlLCBcImFwaUlkXCIsIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBJZCBvZiB0aGUgQXBpIFBhcmFtZXRlclxuICAgICAgICAgKlxuICAgICAgICAgKiBAcmVhZG9ubHlcbiAgICAgICAgICogQHR5cGUge0FwaVBhcmFtZXRlcklkfVxuICAgICAgICAgKiBAbWVtYmVyb2YgQ29tbWFuZFBhcmFtZXRlclxuICAgICAgICAgKi9cbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fYXBpSWQ7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShDb21tYW5kUGFyYW1ldGVyLnByb3RvdHlwZSwgXCJwcmVzTGF5ZXJJZFwiLCB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBUaGUgSWQgb2YgdGhlIFByZXMgTGF5ZXIgUGFyYW1ldGVyXG4gICAgICAgICAqXG4gICAgICAgICAqIEByZWFkb25seVxuICAgICAgICAgKiBAdHlwZSB7UHJlc0xheWVyUGFyYW1ldGVySWR9XG4gICAgICAgICAqIEBtZW1iZXJvZiBDb21tYW5kUGFyYW1ldGVyXG4gICAgICAgICAqL1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9wcmVzTGF5ZXJJZDtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KENvbW1hbmRQYXJhbWV0ZXIucHJvdG90eXBlLCBcImlzT3B0aW9uYWxcIiwge1xuICAgICAgICAvKipcbiAgICAgICAgICogV2hldGhlciBvciBub3QgdGhpcyBpcyBhbiBvcHRpb25hbCBwYXJhbWV0ZXJcbiAgICAgICAgICpcbiAgICAgICAgICogQHJlYWRvbmx5XG4gICAgICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAgICAgKiBAbWVtYmVyb2YgQ29tbWFuZFBhcmFtZXRlclxuICAgICAgICAgKi9cbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gISF0aGlzLl9pc09wdGlvbmFsO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICByZXR1cm4gQ29tbWFuZFBhcmFtZXRlcjtcbn0oKSk7XG5leHBvcnRzLkNvbW1hbmRQYXJhbWV0ZXIgPSBDb21tYW5kUGFyYW1ldGVyO1xuLyoqXG4gKiBSZXByZXNlbnRzIGEgdGhlIGNvbXBsZXRlIG1hcHBpbmcgb2YgYW4gQXBpQ29tbWFuZCB0byBpdHMgY29ycmVzcG9uZGluZyBwcmVzLWxheWVyIGNvbW1hbmRcbiAqIGFuZCB0aGUgY29udmVyc2lvbiBvZiB0aGUgb3V0cHV0IHZhbHVlIGFzIHdlbGxcbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgQ29tbWFuZFJlZ2lzdHJhdGlvblxuICovXG52YXIgQ29tbWFuZFJlZ2lzdHJhdGlvbiA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gQ29tbWFuZFJlZ2lzdHJhdGlvbihfYXBpVmVyYklkLCBfY29tbWFuZElkLCBfaW5wdXRQYXJhbWV0ZXJzLCBfb3V0cHV0UGFyYW1ldGVyLCBfbmFtZXNwYWNlKSB7XG4gICAgICAgIHRoaXMuX2FwaVZlcmJJZCA9IF9hcGlWZXJiSWQ7XG4gICAgICAgIHRoaXMuX2NvbW1hbmRJZCA9IF9jb21tYW5kSWQ7XG4gICAgICAgIHRoaXMuX2lucHV0UGFyYW1ldGVycyA9IF9pbnB1dFBhcmFtZXRlcnM7XG4gICAgICAgIHRoaXMuX291dHB1dFBhcmFtZXRlciA9IF9vdXRwdXRQYXJhbWV0ZXI7XG4gICAgICAgIHRoaXMuX25hbWVzcGFjZSA9IF9uYW1lc3BhY2U7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShDb21tYW5kUmVnaXN0cmF0aW9uLnByb3RvdHlwZSwgXCJhcGlWZXJiSWRcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9hcGlWZXJiSWQ7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShDb21tYW5kUmVnaXN0cmF0aW9uLnByb3RvdHlwZSwgXCJjb21tYW5kSWRcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb21tYW5kSWQ7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShDb21tYW5kUmVnaXN0cmF0aW9uLnByb3RvdHlwZSwgXCJpbnB1dHNcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9pbnB1dFBhcmFtZXRlcnMgfHwgbmV3IEFycmF5KCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShDb21tYW5kUmVnaXN0cmF0aW9uLnByb3RvdHlwZSwgXCJvdXRwdXRcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9vdXRwdXRQYXJhbWV0ZXI7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShDb21tYW5kUmVnaXN0cmF0aW9uLnByb3RvdHlwZSwgXCJuYW1lc3BhY2VcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9uYW1lc3BhY2UgfHwgQ29tbWFuZE5hbWVzcGFjZS5UYWJEb2M7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShDb21tYW5kUmVnaXN0cmF0aW9uLnByb3RvdHlwZSwgXCJuZWVkc0FkZEluTG9jYXRvclwiLCB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBXaGV0aGVyIG9yIG5vdCB0aGlzIGNvbW1hbmQgcmVxdWlyZXMgYW4gYWRkLWluIGxvY2F0b3IgdG8gYmUgaW5qZWN0ZWQgaW50byBpdFxuICAgICAgICAgKlxuICAgICAgICAgKiBAcmVhZG9ubHlcbiAgICAgICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICAgICAqIEBtZW1iZXJvZiBDb21tYW5kUmVnaXN0cmF0aW9uXG4gICAgICAgICAqL1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGZvciAodmFyIF9pID0gMCwgX2EgPSB0aGlzLmlucHV0czsgX2kgPCBfYS5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgICAgICAgICB2YXIgaW5wdXQgPSBfYVtfaV07XG4gICAgICAgICAgICAgICAgaWYgKGlucHV0LmFwaUlkID09PSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5BZGRJbkxvY2F0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEgZGljdGlvbmFyeSBvZiBwcmVzLWxheWVyIHBhcmFtZXRlcnMgZnJvbSB0aGUgaW5wdXQgZGljdGlvbmFyeVxuICAgICAqIG9mIGFwaSBwYXJhbWV0ZXJzLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtFeGVjdXRlUGFyYW1ldGVyc30gcGFyYW1ldGVycyAtIFRoZSBwYXJhbWV0ZXJzIHRvIGNvbnZlcnRcbiAgICAgKiBAcGFyYW0ge0FwaVRvUHJlc0xheWVyTWFwcGluZ1JlZ2lzdHJ5fSBhcGlUb1ByZXNMYXllciAtIG1hcHBpbmcgdG8gZGV0ZXJtaW5lIHRoZSBjb252ZXJzaW9uXG4gICAgICogQHJldHVybnMge3sgW3BhcmFtSWQ6IHN0cmluZ106IG9iamVjdDsgfX0gLSBwYXJhbWV0ZXJzIHRvIHNlbmQgdG8gdGhlIHByZXMtbGF5ZXJcbiAgICAgKiBAbWVtYmVyb2YgQ29tbWFuZFJlZ2lzdHJhdGlvblxuICAgICAqL1xuICAgIENvbW1hbmRSZWdpc3RyYXRpb24ucHJvdG90eXBlLmNyZWF0ZVBhcmFtcyA9IGZ1bmN0aW9uIChwYXJhbWV0ZXJzLCBhcGlUb1ByZXNMYXllcikge1xuICAgICAgICB2YXIgcmVzdWx0ID0ge307XG4gICAgICAgIGZvciAodmFyIF9pID0gMCwgX2EgPSB0aGlzLmlucHV0czsgX2kgPCBfYS5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgICAgIHZhciBpbnB1dFBhcmFtID0gX2FbX2ldO1xuICAgICAgICAgICAgLy8gRmlyc3QgbWFrZSBzdXJlIHRoZSBwYXJhbWV0ZXIgaXMgdGhlcmUgb3IgdGhhdCBpdCdzIG9wdGlvbmFsXG4gICAgICAgICAgICBpZiAoIXBhcmFtZXRlcnMuaGFzT3duUHJvcGVydHkoaW5wdXRQYXJhbS5hcGlJZCkpIHtcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXRQYXJhbS5pc09wdGlvbmFsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHBhcmFtZXRlciBmb3IgY29tbWFuZDogJyArIGlucHV0UGFyYW0uYXBpSWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEZpbmQgdGhlIGNvbnZlcnNpb24gZnVuY3Rpb24gZm9yIHRoaXMgcGFyYW1ldGVyXG4gICAgICAgICAgICB2YXIgY29udmVyc2lvbkZuID0gYXBpVG9QcmVzTGF5ZXIuZ2V0KGlucHV0UGFyYW0uYXBpSWQsIGlucHV0UGFyYW0ucHJlc0xheWVySWQpO1xuICAgICAgICAgICAgLy8gQ29udmVydCB0aGUgcHJlcyBtb2RlbCBhbmQgaW5zZXJ0IGl0IGludG8gb3VyIHJlc3VsdHMgb2JqZWN0XG4gICAgICAgICAgICByZXN1bHRbaW5wdXRQYXJhbS5wcmVzTGF5ZXJJZF0gPSBjb252ZXJzaW9uRm4ocGFyYW1ldGVyc1tpbnB1dFBhcmFtLmFwaUlkXSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIFByb2Nlc3NlcyB0aGUgcmVzdWx0IHJlY2VpdmVkIGJhY2sgYWZ0ZXIgZXhlY3V0aW5nIGEgcHJlcy1sYXllciBjb21tYW5kXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3sgW2RvY1BhcmFtSWQ6IHN0cmluZ106IG9iamVjdDsgfX0gcmVzdWx0UGFyYW1ldGVyc1xuICAgICAqIEBwYXJhbSB7UHJlc0xheWVyVG9BcGlNYXBwaW5nUmVnaXN0cnl9IHByZXNMYXllclRvQXBpXG4gICAgICogQHJldHVybnMge01vZGVsfVxuICAgICAqIEBtZW1iZXJvZiBDb21tYW5kUmVnaXN0cmF0aW9uXG4gICAgICovXG4gICAgQ29tbWFuZFJlZ2lzdHJhdGlvbi5wcm90b3R5cGUuUHJvY2Vzc1Jlc3VsdCA9IGZ1bmN0aW9uIChyZXN1bHRQYXJhbWV0ZXJzLCBwcmVzTGF5ZXJUb0FwaSkge1xuICAgICAgICAvLyBUT0RPOiBBZGQgZXJyb3IgaGFuZGxpbmdcbiAgICAgICAgaWYgKHRoaXMub3V0cHV0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHZhciBub091dHB1dE1vZGVsID0ge307XG4gICAgICAgICAgICByZXR1cm4gbm9PdXRwdXRNb2RlbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXJlc3VsdFBhcmFtZXRlcnMgfHwgIXJlc3VsdFBhcmFtZXRlcnMuaGFzT3duUHJvcGVydHkodGhpcy5vdXRwdXQucHJlc0xheWVySWQpKSB7XG4gICAgICAgICAgICAvLyBpZiB0aGUgb3V0cHV0IHJlc3VsdCBpcyBtYXJrZWQgYXMgb3B0aW9uYWwsIHdlIGRvbid0IGNvbnNpZGVyIHRoaXMgYW4gZXJyb3Igc2l0dWF0aW9uIGFuZCBqdXN0IHJldHVybiBhbiBlbXB0eSBtb2RlbFxuICAgICAgICAgICAgaWYgKHRoaXMub3V0cHV0LmlzT3B0aW9uYWwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgZXhwZWN0ZWQgcmVzdWx0IHBhcmFtZXRlcjogJyArIHRoaXMub3V0cHV0LnByZXNMYXllcklkKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgY29udmVyc2lvbkZuID0gcHJlc0xheWVyVG9BcGkuZ2V0KHRoaXMub3V0cHV0LnByZXNMYXllcklkLCB0aGlzLm91dHB1dC5hcGlJZCk7XG4gICAgICAgIHJldHVybiBjb252ZXJzaW9uRm4ocmVzdWx0UGFyYW1ldGVyc1t0aGlzLm91dHB1dC5wcmVzTGF5ZXJJZF0pO1xuICAgIH07XG4gICAgcmV0dXJuIENvbW1hbmRSZWdpc3RyYXRpb247XG59KCkpO1xuZXhwb3J0cy5Db21tYW5kUmVnaXN0cmF0aW9uID0gQ29tbWFuZFJlZ2lzdHJhdGlvbjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUNvbW1hbmRSZWdpc3RyYXRpb24uanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1jb3JlL2xpYi9zcmMvbWFwcGluZ3MvQ29tbWFuZFJlZ2lzdHJhdGlvbi5qc1xuICoqIG1vZHVsZSBpZCA9IDE0XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBhcGlfaW50ZXJuYWxfY29udHJhY3RfMSA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3RcIik7XG52YXIgRXZlbnRzXzEgPSByZXF1aXJlKFwiLi4vLi4vZ2VuLXNyYy9wcmVzbGF5ZXIvRXZlbnRzXCIpO1xudmFyIFByZXNMYXllclRvQXBpQ29udmVydGVyXzEgPSByZXF1aXJlKFwiLi9QcmVzTGF5ZXJUb0FwaUNvbnZlcnRlclwiKTtcbi8qKlxuICogU2ltcGxlIHdyYXBwZXIgd2hpY2ggaG9sZHMgYSBtYXBwaW5nIHRvIGdvIGZyb20gYSBwcmVzLWxheWVyIGV2ZW50IHRvIGFuIEFQSSBldmVudFxuICovXG52YXIgRXZlbnRNYXBwaW5nUmVnaXN0cmF0aW9uID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBFdmVudE1hcHBpbmdSZWdpc3RyYXRpb24oX3ByZXNMYXllcklkLCBfYXBpSWQsIF9jb252ZXJ0ZXIpIHtcbiAgICAgICAgdGhpcy5fcHJlc0xheWVySWQgPSBfcHJlc0xheWVySWQ7XG4gICAgICAgIHRoaXMuX2FwaUlkID0gX2FwaUlkO1xuICAgICAgICB0aGlzLl9jb252ZXJ0ZXIgPSBfY29udmVydGVyO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRXZlbnRNYXBwaW5nUmVnaXN0cmF0aW9uLnByb3RvdHlwZSwgXCJwcmVzTGF5ZXJJZFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3ByZXNMYXllcklkO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRXZlbnRNYXBwaW5nUmVnaXN0cmF0aW9uLnByb3RvdHlwZSwgXCJhcGlJZFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FwaUlkO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRXZlbnRNYXBwaW5nUmVnaXN0cmF0aW9uLnByb3RvdHlwZSwgXCJjb252ZXJ0ZXJcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb252ZXJ0ZXI7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIHJldHVybiBFdmVudE1hcHBpbmdSZWdpc3RyYXRpb247XG59KCkpO1xuZXhwb3J0cy5FdmVudE1hcHBpbmdSZWdpc3RyYXRpb24gPSBFdmVudE1hcHBpbmdSZWdpc3RyYXRpb247XG52YXIgRXZlbnRNYXBwaW5nUmVnaXN0cnlGYWN0b3J5ID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBFdmVudE1hcHBpbmdSZWdpc3RyeUZhY3RvcnkoKSB7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYW5kIHBvcHVsYXRlcyBhIG5ldyBFdmVudE1hcHBpbmdSZWdpc3RyeSBmb3IgdGhlIHNwZWNpZmljIHZlcnNpb24gbnVtYmVyIHJlcXVlc3RlZFxuICAgICAqXG4gICAgICogQHBhcmFtIHtWZXJzaW9uTnVtYmVyfSB2ZXJzaW9uTnVtYmVyXG4gICAgICogQHJldHVybnMge0V2ZW50TWFwcGluZ1JlZ2lzdHJ5fVxuICAgICAqL1xuICAgIEV2ZW50TWFwcGluZ1JlZ2lzdHJ5RmFjdG9yeS5jcmVhdGVFdmVudE1hcHBpbmdSZWdpc3RyeSA9IGZ1bmN0aW9uICh2ZXJzaW9uTnVtYmVyKSB7XG4gICAgICAgIHZhciByZWdpc3RyeSA9IHt9O1xuICAgICAgICByZWdpc3RyeVtFdmVudHNfMS5Ob3RpZmljYXRpb25JZC5TZWxlY3Rpb25DaGFuZ2VkXSA9IG5ldyBFdmVudE1hcHBpbmdSZWdpc3RyYXRpb24oRXZlbnRzXzEuTm90aWZpY2F0aW9uSWQuU2VsZWN0aW9uQ2hhbmdlZCwgYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuTm90aWZpY2F0aW9uSWQuU2VsZWN0ZWRNYXJrc0NoYW5nZWQsIFByZXNMYXllclRvQXBpQ29udmVydGVyXzEuUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydFZpc3VhbElkKTtcbiAgICAgICAgcmVnaXN0cnlbRXZlbnRzXzEuTm90aWZpY2F0aW9uSWQuUGFyYW1ldGVyQ2hhbmdlZF0gPSBuZXcgRXZlbnRNYXBwaW5nUmVnaXN0cmF0aW9uKEV2ZW50c18xLk5vdGlmaWNhdGlvbklkLlBhcmFtZXRlckNoYW5nZWQsIGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLk5vdGlmaWNhdGlvbklkLlBhcmFtZXRlckNoYW5nZWQsIFByZXNMYXllclRvQXBpQ29udmVydGVyXzEuUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydEZpZWxkQ2FwdGlvblBhaXIpO1xuICAgICAgICByZWdpc3RyeVtFdmVudHNfMS5Ob3RpZmljYXRpb25JZC5GaWx0ZXJDaGFuZ2VkXSA9IG5ldyBFdmVudE1hcHBpbmdSZWdpc3RyYXRpb24oRXZlbnRzXzEuTm90aWZpY2F0aW9uSWQuRmlsdGVyQ2hhbmdlZCwgYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuTm90aWZpY2F0aW9uSWQuRmlsdGVyQ2hhbmdlZCwgUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXJfMS5QcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci5jb252ZXJ0RmlsdGVyRXZlbnQpO1xuICAgICAgICByZXR1cm4gcmVnaXN0cnk7XG4gICAgfTtcbiAgICByZXR1cm4gRXZlbnRNYXBwaW5nUmVnaXN0cnlGYWN0b3J5O1xufSgpKTtcbmV4cG9ydHMuRXZlbnRNYXBwaW5nUmVnaXN0cnlGYWN0b3J5ID0gRXZlbnRNYXBwaW5nUmVnaXN0cnlGYWN0b3J5O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RXZlbnRNYXBwaW5nUmVnaXN0cnlGYWN0b3J5LmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogRDovZGV2L2pzLWFwaS9hcGktY29yZS9saWIvc3JjL21hcHBpbmdzL0V2ZW50TWFwcGluZ1JlZ2lzdHJ5RmFjdG9yeS5qc1xuICoqIG1vZHVsZSBpZCA9IDE1XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbi8qIHRzbGludDpkaXNhYmxlICovXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy9cbi8vIFRoaXMgZmlsZSBpcyB0aGUgY29weXJpZ2h0ZWQgcHJvcGVydHkgb2YgVGFibGVhdSBTb2Z0d2FyZSBhbmQgaXMgcHJvdGVjdGVkXG4vLyBieSByZWdpc3RlcmVkIHBhdGVudHMgYW5kIG90aGVyIGFwcGxpY2FibGUgVS5TLiBhbmQgaW50ZXJuYXRpb25hbCBsYXdzIGFuZFxuLy8gcmVndWxhdGlvbnMuXG4vL1xuLy8gVW5saWNlbnNlZCB1c2Ugb2YgdGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSBpcyBwcm9oaWJpdGVkLiBQbGVhc2UgcmVmZXIgdG9cbi8vIHRoZSBOT1RJQ0VTLnR4dCBmaWxlIGZvciBmdXJ0aGVyIGRldGFpbHMuXG4vL1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFdBUk5JTkc6IENvbXB1dGVyIGdlbmVyYXRlZCBmaWxlLiAgRG8gbm90IGhhbmQgbW9kaWZ5LlxuLy8gREVQRU5EUyBPTjogWycuLi90eXBlc2NyaXB0L2pzLWFwaS9hcGktY29yZS9ub2RlX21vZHVsZXMvQHRhYmxlYXUvcHJlc2xheWVyLWNvZGVnZW4tdHlwZXNjcmlwdC90ZW1wbGF0ZXMvZXZlbnRzLXRzLnRlbXBsYXRlJywgdScuLi90eXBlc2NyaXB0L2pzLWFwaS9hcGktY29yZS90ZW1wLXByZXMtbGF5ZXIvYWxsLWV2ZW50cy5kYXRhJ11cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8vIEV2ZW50cyB5b3UgY2FuIHJlZ2lzdGVyIHRvIHJlY2VpdmUgcHJlc2VudGF0aW9uIG1vZGVsc1xudmFyIE5vdGlmaWNhdGlvbklkO1xuKGZ1bmN0aW9uIChOb3RpZmljYXRpb25JZCkge1xuICAgIC8vIFRyaWdnZXJlZCB3aGVuIGFsaWFzZXMgYXJlIHRvIGJlIGVkaXRlZC4gVXNlZCB0byBsYXVuY2ggYSBkaWFsb2cuXG4gICAgTm90aWZpY2F0aW9uSWRbXCJFZGl0QWxpYXNlc0RpYWxvZ05vdGlmaWNhdGlvblwiXSA9IFwiZWRpdC1hbGlhc2VzLWRpYWxvZy1ub3RpZmljYXRpb24tZXZlbnRcIjtcbiAgICAvLyBmb3IgdGhlIGNhbGN1bGF0aW9uIGRpYWxvZ1xuICAgIE5vdGlmaWNhdGlvbklkW1wiQ2FsY3VsYXRpb25EaWFsb2dcIl0gPSBcImNhbGN1bGF0aW9uLWRpYWxvZy1ldmVudFwiO1xuICAgIC8vIHVwZGF0ZSBmb3IgYW4gYWRob2MgY2FsYyBpbiBhIHR5cGUgaW4gcGlsbFxuICAgIE5vdGlmaWNhdGlvbklkW1wiVHlwZUluUGlsbFwiXSA9IFwidHlwZS1pbi1waWxsLWV2ZW50XCI7XG4gICAgLy8gcmVzdWx0cyBvZiBhIHZhbGlkYXRpb24gY29tbWFuZFxuICAgIE5vdGlmaWNhdGlvbklkW1wiQ29tbWFuZFZhbGlkYXRpb25cIl0gPSBcImNvbW1hbmQtdmFsaWRhdGlvbi1ldmVudFwiO1xuICAgIC8vIGV2ZW50IGZvciB0aGUgZ3JvdXBzIGRpYWxvZ1xuICAgIE5vdGlmaWNhdGlvbklkW1wiVXBkYXRlQ2F0ZWdvcmljYWxCaW5FZGl0RGlhbG9nXCJdID0gXCJ1cGRhdGUtY2F0ZWdvcmljYWwtYmluLWVkaXQtZGlhbG9nLWV2ZW50XCI7XG4gICAgLy8gZm9yIHRoZSBjYXRlZ29yaWNhbCBjb2xvciBkaWFsb2dcbiAgICBOb3RpZmljYXRpb25JZFtcIkNhdGVnb3JpY2FsQ29sb3JcIl0gPSBcImNhdGVnb3JpY2FsLWNvbG9yLWV2ZW50XCI7XG4gICAgLy8gdXBkYXRlIHRoZSB3ZWIgY2F0ZWdvcmljYWwgY29sb3IgZGlhbG9nXG4gICAgTm90aWZpY2F0aW9uSWRbXCJXZWJDYXRlZ29yaWNhbENvbG9yRGlhbG9nXCJdID0gXCJ3ZWItY2F0ZWdvcmljYWwtY29sb3ItZGlhbG9nLWV2ZW50XCI7XG4gICAgLy8gdXNlciBpbnZva2VkIGFjdGlvbiB3aGljaCByZXF1aXJlcyBhIERhdGEgQWxlcnQgRGlhbG9nXG4gICAgTm90aWZpY2F0aW9uSWRbXCJEYXRhQWxlcnREaWFsb2dcIl0gPSBcImRhdGEtYWxlcnQtZGlhbG9nLWV2ZW50XCI7XG4gICAgLy8gZXZlbnQgdG8gc2VsZWN0IGZpZWxkKHMpIGluIHRoZSBkYXRhIHNjaGVtYVxuICAgIE5vdGlmaWNhdGlvbklkW1wiRGF0YVNjaGVtYVNlbGVjdGlvblwiXSA9IFwiZGF0YS1zY2hlbWEtc2VsZWN0aW9uLWV2ZW50XCI7XG4gICAgLy8gZXZlbnQgZm9yIHdoZW4gdGhlIGRhdGEgc291cmNlIGJlaW5nIGVkaXRlZCBpcyB1cGRhdGVkXG4gICAgTm90aWZpY2F0aW9uSWRbXCJVcGRhdGVEYXRhUHJlcGFyYXRpb25cIl0gPSBcInVwZGF0ZS1kYXRhLXByZXBhcmF0aW9uLWV2ZW50XCI7XG4gICAgLy8gZXZlbnQgZm9yIHdoZW4gdGhlIGRhdGEgc291cmNlIGRhdGEgaXMgdXBkYXRlZFxuICAgIE5vdGlmaWNhdGlvbklkW1wiVXBkYXRlRGF0YVNvdXJjZURhdGFcIl0gPSBcInVwZGF0ZS1kYXRhLXNvdXJjZS1kYXRhLWV2ZW50XCI7XG4gICAgLy8gZXZlbnQgZm9yIHdoZW4gYSBjbGllbnQgc2hvdWxkIHJlcXVlc3QgbmV3IGRhdGEgc291cmNlIG9yIGRhdGEgc291cmNlIGRhdGEgcHJlcyBtb2RlbHNcbiAgICBOb3RpZmljYXRpb25JZFtcIkRhdGFTb3VyY2VVcGRhdGVOZWVkZWRcIl0gPSBcImRhdGEtc291cmNlLXVwZGF0ZS1uZWVkZWQtZXZlbnRcIjtcbiAgICAvLyBldmVudCBmb3IgZ2V0dGluZyB0aGUgcHJlcyBtb2RlbCB0byB1cGRhdGUgZmlsZSBqb2luIHRhYmxlIHByb3BlcnRpZXNcbiAgICBOb3RpZmljYXRpb25JZFtcIlRleHRGaWxlUHJvcGVydGllc1wiXSA9IFwidGV4dC1maWxlLXByb3BlcnRpZXMtZXZlbnRcIjtcbiAgICAvLyBldmVudCBmb3IgdGhlIGRldGFpbGVkIGVycm9yIGRpYWxvZ1xuICAgIE5vdGlmaWNhdGlvbklkW1wiVXBkYXRlRGV0YWlsZWRFcnJvckRpYWxvZ1wiXSA9IFwidXBkYXRlLWRldGFpbGVkLWVycm9yLWRpYWxvZy1ldmVudFwiO1xuICAgIC8vIG5vdGlmeSBjaGFuZ2VzIHRvIHRoZSBzdGF0ZSBvZiBhIGZpbHRlcidzIHJlbGF0aW9uYWwgbW9kZWxcbiAgICBOb3RpZmljYXRpb25JZFtcIkZpbHRlclJlbGF0aW9uYWxTdGF0ZUNoYW5nZWRcIl0gPSBcImZpbHRlci1yZWxhdGlvbmFsLXN0YXRlLWNoYW5nZWQtZXZlbnRcIjtcbiAgICAvLyBub3RpZnkgY2hhbmdlcyB0byB0aGUgc2l6ZS9zZWxlY3Rpb24gY291bnQgb2YgYSByZWxhdGlvbmFsIGRvbWFpblxuICAgIE5vdGlmaWNhdGlvbklkW1wiRmlsdGVyUmVsYXRpb25hbERvbWFpbkNoYW5nZWRcIl0gPSBcImZpbHRlci1yZWxhdGlvbmFsLWRvbWFpbi1jaGFuZ2VkLWV2ZW50XCI7XG4gICAgLy8gbm90aWZ5IHdoZW4gZmlsdGVyIGNhY2hlIHdhcyByZXF1ZXN0ZWQgYnV0IG5vdCBmb3VuZFxuICAgIE5vdGlmaWNhdGlvbklkW1wiRmlsdGVyQ2FjaGVOb3RGb3VuZFwiXSA9IFwiZmlsdGVyLWNhY2hlLW5vdC1mb3VuZC1ldmVudFwiO1xuICAgIC8vIEhpZXJhcmNoeSBTZWxlY3QgbW9kZWwgb2JzZXJ2YWJsZSBub3RpZmljYXRpb24uXG4gICAgTm90aWZpY2F0aW9uSWRbXCJIaWVyYXJjaHlOb3RpZmljYXRpb25cIl0gPSBcImhpZXJhcmNoeS1ub3RpZmljYXRpb24tZXZlbnRcIjtcbiAgICAvLyBIaWVyYXJjaHkgc2VsZWN0aW9uIGNoYW5nZSBub3RpZmljYXRpb25zLlxuICAgIE5vdGlmaWNhdGlvbklkW1wiSGllcmFyY2h5U2VsZWN0aW9uXCJdID0gXCJoaWVyYXJjaHktc2VsZWN0aW9uLWV2ZW50XCI7XG4gICAgLy8gZXZlbnQgZm9yIHRoZSBtYXAgb3B0aW9ucyBkaWFsb2dcbiAgICBOb3RpZmljYXRpb25JZFtcIk1hcE9wdGlvbnNEaWFsb2dcIl0gPSBcIm1hcC1vcHRpb25zLWRpYWxvZy1ldmVudFwiO1xuICAgIC8vIG5vdGlmeSB0aGUgUGFnZSBVSShoaWRlL3Nob3cgc3RhdGVzLCBsYXlvdXQpIG5lZWRzIHRvIGJlIHVwZGF0ZWRcbiAgICBOb3RpZmljYXRpb25JZFtcIlVwZGF0ZVBhZ2VVSU5vdGlmaWNhdGlvblwiXSA9IFwidXBkYXRlLXBhZ2UtdWlub3RpZmljYXRpb24tZXZlbnRcIjtcbiAgICAvLyBub3RpZnkgdG8gdGhlIFNjZW5lVmlldyBoYXMgYmVlbiBkcmF3bi5cbiAgICBOb3RpZmljYXRpb25JZFtcIlNjZW5lVmlld0RyYXduTm90aWZpY2F0aW9uXCJdID0gXCJzY2VuZS12aWV3LWRyYXduLW5vdGlmaWNhdGlvbi1ldmVudFwiO1xuICAgIC8vIFRoZSBBbmltYXRpb25Db250cm9sQ2hhbmdlIGV2ZW50IGZpcmVzIHdoZW4gdGhlIHVzZXIgY2xpY2tzIGFuIGFuaW1hdGlvbiBwbGF5YmFjayBidXR0b246IGZvcndhcmQsIHN0b3AsIHNsb3csIGZhc3QsIGV0Yy5cbiAgICBOb3RpZmljYXRpb25JZFtcIkFuaW1hdGlvbkNvbnRyb2xDaGFuZ2VcIl0gPSBcImFuaW1hdGlvbi1jb250cm9sLWNoYW5nZS1ldmVudFwiO1xuICAgIC8vIG5vdGlmeSB0aGUgc2hlZXQgaGFzIGJlZW4gcmVuYW1lZFxuICAgIE5vdGlmaWNhdGlvbklkW1wiUmVuYW1lU2hlZXROb3RpZmljYXRpb25cIl0gPSBcInJlbmFtZS1zaGVldC1ub3RpZmljYXRpb24tZXZlbnRcIjtcbiAgICAvLyB1cGRhdGUgdGhlIHdlYiBxdWFudGl0YXRpdmUgY29sb3IgZGlhbG9nXG4gICAgTm90aWZpY2F0aW9uSWRbXCJXZWJRdWFudGl0YXRpdmVDb2xvckRpYWxvZ1wiXSA9IFwid2ViLXF1YW50aXRhdGl2ZS1jb2xvci1kaWFsb2ctZXZlbnRcIjtcbiAgICAvLyB1cGRhdGUgdGhlIGF4aXMgZWRpdCBkaWFsb2dcbiAgICBOb3RpZmljYXRpb25JZFtcIlVwZGF0ZUVkaXRBeGlzRGlhbG9nXCJdID0gXCJ1cGRhdGUtZWRpdC1heGlzLWRpYWxvZy1ldmVudFwiO1xuICAgIC8vIGV2ZW50IGZvciB0aGUgcmVmZXJlbmNlIGxpbmUgZGlhbG9nLCB3aGljaCBpcyBvbmx5IHZhbGlkIGR1cmluZyB3ZWIgYXV0aG9yaW5nXG4gICAgTm90aWZpY2F0aW9uSWRbXCJVcGRhdGVSZWZMaW5lRGlhbG9nXCJdID0gXCJ1cGRhdGUtcmVmLWxpbmUtZGlhbG9nLWV2ZW50XCI7XG4gICAgLy8gZXZlbnQgdG8gdHJpZ2dlciBvdGhlciByZWZlcmVuY2UgbGluZSBkaWFsb2dzIHRvIGNsb3NlXG4gICAgTm90aWZpY2F0aW9uSWRbXCJSZWZMaW5lRGlhbG9nT3BlbmluZ1wiXSA9IFwicmVmLWxpbmUtZGlhbG9nLW9wZW5pbmctZXZlbnRcIjtcbiAgICAvLyBldmVudCBmb3IgdGhlIGNsb3NlIGRhdGEgc291cmNlIGVycm9yIGRpYWxvZywgd2hpY2ggaXMgb25seSB2YWxpZCBkdXJpbmcgd2ViIGF1dGhvcmluZ1xuICAgIE5vdGlmaWNhdGlvbklkW1wiQ2xvc2VEYXRhU291cmNlRXJyb3JEaWFsb2dcIl0gPSBcImNsb3NlLWRhdGEtc291cmNlLWVycm9yLWRpYWxvZy1ldmVudFwiO1xuICAgIC8vIHVwZGF0ZSB0aGUgd2ViIFNhdmUgRGF0YXNvdXJjZSBkaWFsb2dcbiAgICBOb3RpZmljYXRpb25JZFtcIldlYlNhdmVEYXRhc291cmNlRGlhbG9nXCJdID0gXCJ3ZWItc2F2ZS1kYXRhc291cmNlLWRpYWxvZy1ldmVudFwiO1xuICAgIC8vIHdhcm5pbmcgcmVzdWx0aW5nIGZyb20gV2FybmluZ01zZ1xuICAgIE5vdGlmaWNhdGlvbklkW1wiV2FybmluZ01lc3NhZ2VcIl0gPSBcIndhcm5pbmctbWVzc2FnZS1ldmVudFwiO1xuICAgIC8vIGV2ZW50IGZvciB0aGUgdGFibGUgY2FsYyBkaWFsb2csIG9uIHdlYiwgdGhpcyBpcyBvbmx5IHZhbGlkIGR1cmluZyB3ZWIgYXV0aG9yaW5nXG4gICAgTm90aWZpY2F0aW9uSWRbXCJUYWJsZUNhbGNEaWFsb2dcIl0gPSBcInRhYmxlLWNhbGMtZGlhbG9nLWV2ZW50XCI7XG4gICAgLy8gdXNlciBpbnZva2VkIGFjdGlvbiB3aGljaCByZXF1aXJlcyBUYWJsZSBDYWxjIERpYWxvZ1xuICAgIE5vdGlmaWNhdGlvbklkW1wiVGFibGVDYWxjQWN0aXZhdGVEaWFsb2dcIl0gPSBcInRhYmxlLWNhbGMtYWN0aXZhdGUtZGlhbG9nLWV2ZW50XCI7XG4gICAgLy8gZXZlbnQgZm9yIHRoZSB0cmVuZCBsaW5lIGRpYWxvZ1xuICAgIE5vdGlmaWNhdGlvbklkW1wiVXBkYXRlVHJlbmRMaW5lRWRpdERpYWxvZ1wiXSA9IFwidXBkYXRlLXRyZW5kLWxpbmUtZWRpdC1kaWFsb2ctZXZlbnRcIjtcbiAgICAvLyBUaGUgdGFibGUgcGFnZSBjYWNoZSBoYXMgYmVlbiByZWZyZXNoZWQ7IHBhZ2VzIG11c3QgYmUgcmVsb2FkZWQgZnJvbSB0aGUgY2FjaGUuXG4gICAgTm90aWZpY2F0aW9uSWRbXCJQYWdlQ2FjaGVSZWZyZXNoXCJdID0gXCJwYWdlLWNhY2hlLXJlZnJlc2gtZXZlbnRcIjtcbiAgICAvLyBUaGUgdGFibGUgcGFnZSBjYWNoZSBoYXMgZXhwaXJlZCBhbmQgYWxsIHJlc291cmNlcyBoYXZlIGJlZW4gcmVsZWFzZWQuXG4gICAgTm90aWZpY2F0aW9uSWRbXCJQYWdlQ2FjaGVFeHBpcmVkXCJdID0gXCJwYWdlLWNhY2hlLWV4cGlyZWQtZXZlbnRcIjtcbiAgICAvLyBBbGwgcGFnZXMsIGlkZW50aWZpZWQgYnkgcm93L2NvbCwgaW4gdGhlIHByb3ZpZGVkIGxpc3QgaGF2ZSBleHBpcmVkIGFuZCBzaG91bGQgYmUgcmVsb2FkZWQuXG4gICAgTm90aWZpY2F0aW9uSWRbXCJQYWdlQ2FjaGVQYWdlc0V4cGlyZWRcIl0gPSBcInBhZ2UtY2FjaGUtcGFnZXMtZXhwaXJlZC1ldmVudFwiO1xuICAgIC8vIEFsbCBwYWdlcyBiZXR3ZWVtIHRoZSByYW5nZSAoaW5jbHVzaXZlKSBpbiB0aGUgcHJvdmlkZWQgbGlzdCBoYXZlIGV4cGlyZWQgYW5kIHNob3VsZCBiZSByZWxvYWRlZC5cbiAgICBOb3RpZmljYXRpb25JZFtcIlBhZ2VDYWNoZVBhZ2VSYW5nZUV4cGlyZWRcIl0gPSBcInBhZ2UtY2FjaGUtcGFnZS1yYW5nZS1leHBpcmVkLWV2ZW50XCI7XG4gICAgLy8gVXBkYXRlIGZvciB0aGUgcmljaCB0ZXh0IGVkaXRvciBkaWFsb2dcbiAgICBOb3RpZmljYXRpb25JZFtcIlJpY2hUZXh0RWRpdG9yRGlhbG9nXCJdID0gXCJyaWNoLXRleHQtZWRpdG9yLWRpYWxvZy1ldmVudFwiO1xuICAgIC8vIFRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIHdhbnRzIHRvIHJlbG9hZCBhbiBhZGQtaW4gaW5zdGFuY2UuXG4gICAgTm90aWZpY2F0aW9uSWRbXCJSZWxvYWRBZGRJblwiXSA9IFwicmVsb2FkLWFkZC1pbi1ldmVudFwiO1xuICAgIC8vIFRyaWdnZXJlZCB3aGVuIHRoZSBzZWxlY3RlZCBtYXJrcyBoYXZlIGNoYW5nZWQuXG4gICAgTm90aWZpY2F0aW9uSWRbXCJTZWxlY3Rpb25DaGFuZ2VkXCJdID0gXCJzZWxlY3Rpb24tY2hhbmdlZC1ldmVudFwiO1xuICAgIC8vIFRyaWdnZXJlZCB3aGVuIHRoZSB2YWx1ZSBvZiBhIHBhcmFtZXRlciBoYXMgY2hhbmdlZC4gRW1pdHMgdGhlIG5hbWUgYW5kIGNhcHRpb24gb2YgdGhlIHBhcmFtZXRlclxuICAgIE5vdGlmaWNhdGlvbklkW1wiUGFyYW1ldGVyQ2hhbmdlZFwiXSA9IFwicGFyYW1ldGVyLWNoYW5nZWQtZXZlbnRcIjtcbiAgICAvLyBUcmlnZ2VyZWQgd2hlbiB0aGUgZmlsdGVycyBoYXZlIGNoYW5nZWQuXG4gICAgTm90aWZpY2F0aW9uSWRbXCJGaWx0ZXJDaGFuZ2VkXCJdID0gXCJmaWx0ZXItY2hhbmdlZC1ldmVudFwiO1xuICAgIC8vIG5vdGlmaWNhdGlvbiB0byBsYXVuY2ggdGhlIGh5YnJpZCBVSSBzaG93Y2FzZVxuICAgIE5vdGlmaWNhdGlvbklkW1wiTGF1bmNoSHlicmlkVUlTaG93Y2FzZVwiXSA9IFwibGF1bmNoLWh5YnJpZC11aXNob3djYXNlLWV2ZW50XCI7XG4gICAgLy8gbm90aWZpY2F0aW9uIG9mIG5ldyBlY2hvZWQgdGV4dCBmb3IgSHlicmlkVUkgc2hvd2Nhc2UgZGVtb1xuICAgIE5vdGlmaWNhdGlvbklkW1wiSHlicmlkVUlTaG93Y2FzZUVjaG9cIl0gPSBcImh5YnJpZC11aXNob3djYXNlLWVjaG8tZXZlbnRcIjtcbiAgICAvLyBldmVudCBmb3IgdGhlIGJpbiBkaWFsb2dcbiAgICBOb3RpZmljYXRpb25JZFtcIlVwZGF0ZU51bWVyaWNCaW5FZGl0RGlhbG9nXCJdID0gXCJ1cGRhdGUtbnVtZXJpYy1iaW4tZWRpdC1kaWFsb2ctZXZlbnRcIjtcbiAgICAvLyBhIHRlc3QgZXZlbnQgd2l0aCBhIHByZXMgbW9kZWxcbiAgICBOb3RpZmljYXRpb25JZFtcIlRlc3RFdmVudFdpdGhNb2RlbFwiXSA9IFwidGVzdC1ldmVudC13aXRoLW1vZGVsLWV2ZW50XCI7XG4gICAgLy8gYSB0ZXN0IGV2ZW50IHdpdGhvdXQgYSBwcmVzIG1vZGVsXG4gICAgTm90aWZpY2F0aW9uSWRbXCJUZXN0RXZlbnRXaXRob3V0TW9kZWxcIl0gPSBcInRlc3QtZXZlbnQtd2l0aG91dC1tb2RlbC1ldmVudFwiO1xufSkoTm90aWZpY2F0aW9uSWQgPSBleHBvcnRzLk5vdGlmaWNhdGlvbklkIHx8IChleHBvcnRzLk5vdGlmaWNhdGlvbklkID0ge30pKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUV2ZW50cy5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWNvcmUvbGliL2dlbi1zcmMvcHJlc2xheWVyL0V2ZW50cy5qc1xuICoqIG1vZHVsZSBpZCA9IDE2XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBBcGkgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0XCIpO1xudmFyIGFwaV91dGlsc18xID0gcmVxdWlyZShcIkB0YWJsZWF1L2FwaS11dGlsc1wiKTtcbnZhciBFbnVtTWFwcGluZ3NfMSA9IHJlcXVpcmUoXCIuL0VudW1NYXBwaW5nc1wiKTtcbi8qKlxuICogQ2xhc3MgY29udGFpbmluZyBoZWxwZXIgbWV0aG9kcyBmb3IgY29udmVydGluZyBmcm9tIFByZXNMYXllclByZXNNb2RlbHMgdG8gdGhlaXIgQXBpUHJlc01vZGVscyBlcXVpdmFsZW50c1xuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlclxuICovXG52YXIgUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFByZXNMYXllclRvQXBpQ29udmVydGVyKCkge1xuICAgIH1cbiAgICBQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci5jb252ZXJ0U2hlZXRQYXRoID0gZnVuY3Rpb24gKHBsU2hlZXRQYXRoKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSB7XG4gICAgICAgICAgICBzaGVldE5hbWU6IHBsU2hlZXRQYXRoLnNoZWV0TmFtZSxcbiAgICAgICAgICAgIGlzRGFzaGJvYXJkOiBwbFNoZWV0UGF0aC5pc0Rhc2hib2FyZCxcbiAgICAgICAgICAgIHN0b3J5Ym9hcmQ6IHBsU2hlZXRQYXRoLnN0b3J5Ym9hcmQsXG4gICAgICAgICAgICBmbGlwYm9hcmRab25lSUQ6IHBsU2hlZXRQYXRoLmZsaXBib2FyZFpvbmVJZCxcbiAgICAgICAgICAgIHN0b3J5UG9pbnRJRDogcGxTaGVldFBhdGguc3RvcnlQb2ludElkLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gICAgUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydFZpc3VhbElkID0gZnVuY3Rpb24gKHBsVmlzdWFsSWQpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHdvcmtzaGVldDogcGxWaXN1YWxJZC53b3Jrc2hlZXQsXG4gICAgICAgICAgICBkYXNoYm9hcmQ6IHBsVmlzdWFsSWQuZGFzaGJvYXJkLFxuICAgICAgICAgICAgc3Rvcnlib2FyZDogcGxWaXN1YWxJZC5zdG9yeWJvYXJkLFxuICAgICAgICAgICAgZmxpcGJvYXJkWm9uZUlEOiBwbFZpc3VhbElkLmZsaXBib2FyZFpvbmVJZCxcbiAgICAgICAgICAgIHN0b3J5UG9pbnRJRDogcGxWaXN1YWxJZC5zdG9yeVBvaW50SWQsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbiAgICBQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci5jb252ZXJ0QWRkSW5Mb2NhdG9yID0gZnVuY3Rpb24gKHBsQWRkSW5Mb2NhdG9yKSB7XG4gICAgICAgIHZhciBkYXNoYm9hcmRQYXRoID0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAocGxBZGRJbkxvY2F0b3Iuc2hlZXRQYXRoKSB7XG4gICAgICAgICAgICBkYXNoYm9hcmRQYXRoID0gUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydFNoZWV0UGF0aChwbEFkZEluTG9jYXRvci5zaGVldFBhdGgpO1xuICAgICAgICB9XG4gICAgICAgIHZhciByZXN1bHQgPSB7XG4gICAgICAgICAgICBpbnN0YW5jZUlkOiBwbEFkZEluTG9jYXRvci5hZGRJbkluc3RhbmNlSWQsXG4gICAgICAgICAgICBkYXNoYm9hcmRQYXRoOiBkYXNoYm9hcmRQYXRoXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbiAgICBQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci5jb252ZXJ0RGFzaGJvYXJkSW5ab25lcyA9IGZ1bmN0aW9uIChwbERhc2hib2FyZCkge1xuICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IEFycmF5KCk7XG4gICAgICAgIGZvciAodmFyIF9pID0gMCwgX2EgPSBPYmplY3Qua2V5cyhwbERhc2hib2FyZC56b25lcyk7IF9pIDwgX2EubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICB2YXIgem9uZUtleSA9IF9hW19pXTtcbiAgICAgICAgICAgIHZhciB6b25lID0gcGxEYXNoYm9hcmQuem9uZXNbem9uZUtleV07XG4gICAgICAgICAgICB2YXIgYXBpWm9uZSA9IHtcbiAgICAgICAgICAgICAgICBuYW1lOiB6b25lLnpvbmVDb21tb24ubmFtZSxcbiAgICAgICAgICAgICAgICB6b25lSWQ6IHpvbmUuem9uZUlkLFxuICAgICAgICAgICAgICAgIHpvbmVUeXBlOiBFbnVtTWFwcGluZ3NfMS5QcmVzTGF5ZXJUb0FwaUVudW1NYXBwaW5ncy56b25lVHlwZS5jb252ZXJ0KHpvbmUuem9uZUNvbW1vbi56b25lVHlwZSksXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiB6b25lLnpvbmVDb21tb24uaCxcbiAgICAgICAgICAgICAgICB3aWR0aDogem9uZS56b25lQ29tbW9uLncsXG4gICAgICAgICAgICAgICAgeDogem9uZS56b25lQ29tbW9uLngsXG4gICAgICAgICAgICAgICAgeTogem9uZS56b25lQ29tbW9uLnlcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXN1bHQucHVzaChhcGlab25lKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gICAgUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydERhc2hib2FyZEluZm8gPSBmdW5jdGlvbiAocGxEYXNoYm9hcmRJbmZvKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSB7XG4gICAgICAgICAgICB6b25lczogUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydERhc2hib2FyZEluWm9uZXMocGxEYXNoYm9hcmRJbmZvLmRhc2hib2FyZFByZXNNb2RlbCksXG4gICAgICAgICAgICBuYW1lOiBwbERhc2hib2FyZEluZm8uZGFzaGJvYXJkUHJlc01vZGVsLnNoZWV0UGF0aC5zaGVldE5hbWUsXG4gICAgICAgICAgICBhZGRJblpvbmVJZDogcGxEYXNoYm9hcmRJbmZvLnpvbmVJZCxcbiAgICAgICAgICAgIHNpemU6IHBsRGFzaGJvYXJkSW5mby5kYXNoYm9hcmRQcmVzTW9kZWwudmlld3BvcnRTaXplXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbiAgICBQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci5jb252ZXJ0QWRkSW5JbnN0YW5jZSA9IGZ1bmN0aW9uIChwbEFkZEluSW5zdGFuY2UpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHVybDogcGxBZGRJbkluc3RhbmNlLmFkZEluUmVnaXN0cmF0aW9uUHJlc01vZGVsLnVybCxcbiAgICAgICAgICAgIGxvY2F0b3I6IFByZXNMYXllclRvQXBpQ29udmVydGVyLmNvbnZlcnRBZGRJbkxvY2F0b3IocGxBZGRJbkluc3RhbmNlLmFkZEluTG9jYXRvclByZXNNb2RlbClcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICAgIFByZXNMYXllclRvQXBpQ29udmVydGVyLmNvbnZlcnRBZGRJbkVuaXZyaW9ubWVudCA9IGZ1bmN0aW9uIChwbEFkZEluRW52aXJvbm1lbnQpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIGFkZEluQ29udGV4dDogRW51bU1hcHBpbmdzXzEuUHJlc0xheWVyVG9BcGlFbnVtTWFwcGluZ3MuYWRkSW5Db250ZXh0LmNvbnZlcnQocGxBZGRJbkVudmlyb25tZW50LmFkZEluQ29udGV4dCksXG4gICAgICAgICAgICBhZGRJbk1vZGU6IEVudW1NYXBwaW5nc18xLlByZXNMYXllclRvQXBpRW51bU1hcHBpbmdzLmFkZEluTW9kZS5jb252ZXJ0KHBsQWRkSW5FbnZpcm9ubWVudC5hZGRJbk1vZGUpLFxuICAgICAgICAgICAgYWRkSW5Mb2NhbGU6IHBsQWRkSW5FbnZpcm9ubWVudC5hZGRJbkxvY2FsZSxcbiAgICAgICAgICAgIGFkZEluTGFuZ3VhZ2U6IHBsQWRkSW5FbnZpcm9ubWVudC5hZGRJbkxhbmd1YWdlLFxuICAgICAgICAgICAgdGFibGVhdVZlcnNpb246IHBsQWRkSW5FbnZpcm9ubWVudC50YWJsZWF1VmVyc2lvbixcbiAgICAgICAgICAgIG9wZXJhdGluZ1N5c3RlbTogcGxBZGRJbkVudmlyb25tZW50Lm9wZXJhdGluZ1N5c3RlbSxcbiAgICAgICAgICAgIGFwaVZlcnNpb246IHBsQWRkSW5FbnZpcm9ubWVudC5hcGlWZXJzaW9uXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbiAgICBQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci5jb252ZXJ0QWRkSW5TZXR0aW5nc0luZm8gPSBmdW5jdGlvbiAocGxBZGRJblNldHRpbmdzKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSB7XG4gICAgICAgICAgICAvLyBhZGRJblNldHRpbmdzIGlzIHVuZGVmaW5lZCBkdXJpbmcgYm9vdHN0cmFwIGluaXRpYWxpemF0aW9uXG4gICAgICAgICAgICBzZXR0aW5nc1ZhbHVlczogcGxBZGRJblNldHRpbmdzLmFkZEluU2V0dGluZ3MgfHwge31cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICAgIFByZXNMYXllclRvQXBpQ29udmVydGVyLmNvbnZlcnRBZGRJbkJvb3RzdHJhcEluZm8gPSBmdW5jdGlvbiAocGxCb290c3RyYXBJbmZvKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSB7XG4gICAgICAgICAgICBhZGRpbkRhc2hib2FyZEluZm86IFByZXNMYXllclRvQXBpQ29udmVydGVyLmNvbnZlcnREYXNoYm9hcmRJbmZvKHBsQm9vdHN0cmFwSW5mby5hZGRJbkRhc2hib2FyZEluZm9QcmVzTW9kZWwpLFxuICAgICAgICAgICAgYWRkSW5FbnZpcm9ubWVudDogUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydEFkZEluRW5pdnJpb25tZW50KHBsQm9vdHN0cmFwSW5mby5hZGRJbkVudmlyb25tZW50UHJlc01vZGVsKSxcbiAgICAgICAgICAgIGFkZEluSW5zdGFuY2U6IFByZXNMYXllclRvQXBpQ29udmVydGVyLmNvbnZlcnRBZGRJbkluc3RhbmNlKHBsQm9vdHN0cmFwSW5mby5hZGRJbkluc3RhbmNlUHJlc01vZGVsKSxcbiAgICAgICAgICAgIGFkZEluU2V0dGluZ3NJbmZvOiBQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci5jb252ZXJ0QWRkSW5TZXR0aW5nc0luZm8ocGxCb290c3RyYXBJbmZvLmFkZEluU2V0dGluZ3NJbmZvKVxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gICAgUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydEZpZWxkQ2FwdGlvblBhaXIgPSBmdW5jdGlvbiAocGxGaWVsZENhcHRpb25QYWlyKSB7XG4gICAgICAgIHJldHVybiBwbEZpZWxkQ2FwdGlvblBhaXIuZm47XG4gICAgfTtcbiAgICBQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci5jb252ZXJ0RmlsdGVyRXZlbnQgPSBmdW5jdGlvbiAocGxGaWx0ZXJFdmVudCkge1xuICAgICAgICB2YXIgcmVzdWx0ID0ge1xuICAgICAgICAgICAgdmlzdWFsSWQ6IFByZXNMYXllclRvQXBpQ29udmVydGVyLmNvbnZlcnRWaXN1YWxJZChwbEZpbHRlckV2ZW50LnZpc3VhbElkUHJlc01vZGVsKSxcbiAgICAgICAgICAgIGZpZWxkTmFtZTogcGxGaWx0ZXJFdmVudC5maWVsZENhcHRpb25cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICAgIFByZXNMYXllclRvQXBpQ29udmVydGVyLmNvbnZlcnREYXRhU2NoZW1hID0gZnVuY3Rpb24gKGRhdGFTY2hlbWEpIHtcbiAgICAgICAgdmFyIGFwaURhdGFTb3VyY2VzID0ge307XG4gICAgICAgIGFwaV91dGlsc18xLlBhcmFtLnZlcmlmeVZhbHVlKGRhdGFTY2hlbWEsICdkYXRhU2NoZW1hJyk7XG4gICAgICAgIGFwaV91dGlsc18xLlBhcmFtLnZlcmlmeVZhbHVlKGRhdGFTY2hlbWEuZGF0YVNvdXJjZXMsICdkYXRhU2NoZW1hLmRhdGFTb3VyY2VzJyk7XG4gICAgICAgIC8vIENvbnZlcnQgZWFjaCBwcmVzIGxheWVyIGRhdGFzb3VyY2UgaW4gdGhlIHNjaGVtYSB0byBhbiBBcGkgZGF0YXNvdXJjZVxuICAgICAgICBPYmplY3Qua2V5cyhkYXRhU2NoZW1hLmRhdGFTb3VyY2VzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICAgIC8vIFNraXAgdGhlIGRlZmF1bHQgUGFyYW1ldGVycyBkYXRhc291cmNlIHdlIHJlY2VpdmUgZnJvbSB0aGUgcGxhdGZvcm0uXG4gICAgICAgICAgICBpZiAoZGF0YVNjaGVtYS5kYXRhU291cmNlc1trZXldLmRhdGFzb3VyY2UgIT09IFByZXNMYXllclRvQXBpQ29udmVydGVyLlBBUkFNRVRFUlNfREJfTkFNRSkge1xuICAgICAgICAgICAgICAgIGFwaURhdGFTb3VyY2VzW2tleV0gPSBQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci5jb252ZXJ0RGF0YVNvdXJjZShkYXRhU2NoZW1hLmRhdGFTb3VyY2VzW2tleV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIHNjaGVtYU1hcCA9IFByZXNMYXllclRvQXBpQ29udmVydGVyLmNvbnZlcnRXb3Jrc2hlZXREYXRhU2NoZW1hTWFwKGRhdGFTY2hlbWEud29ya3NoZWV0RGF0YVNjaGVtYU1hcCk7XG4gICAgICAgIHZhciByZXN1bHQgPSB7XG4gICAgICAgICAgICBkYXRhU291cmNlczogYXBpRGF0YVNvdXJjZXMsXG4gICAgICAgICAgICB3b3Jrc2hlZXREYXRhU2NoZW1hTWFwOiBzY2hlbWFNYXAsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbiAgICBQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci5jb252ZXJ0RGF0YVNvdXJjZSA9IGZ1bmN0aW9uIChkYXRhU291cmNlKSB7XG4gICAgICAgIHZhciBleHRyYWN0VXBkYXRlVGltZSA9IChkYXRhU291cmNlLmV4dHJhY3RVcGRhdGVUaW1lID09PSAnJykgPyB1bmRlZmluZWQgOiBkYXRhU291cmNlLmV4dHJhY3RVcGRhdGVUaW1lO1xuICAgICAgICB2YXIgZGF0YVNvdXJjZUZpZWxkcyA9IG5ldyBBcnJheSgpO1xuICAgICAgICBhcGlfdXRpbHNfMS5QYXJhbS52ZXJpZnlWYWx1ZShkYXRhU291cmNlLCAnZGF0YVNvdXJjZScpO1xuICAgICAgICBhcGlfdXRpbHNfMS5QYXJhbS52ZXJpZnlWYWx1ZShkYXRhU291cmNlLmZpZWxkTGlzdCwgJ2RhdGFTY2hlbWEuZmllbGRMaXN0Jyk7XG4gICAgICAgIGRhdGFTb3VyY2UuZmllbGRMaXN0LmZvckVhY2goZnVuY3Rpb24gKHBsRmllbGQpIHtcbiAgICAgICAgICAgIC8vIElmIHRoZSBkYXRhc291cmNlIGNvbnRhaW5zIGhpZXJhcmNoaWVzIG9yIGZvbGRlcnMsIHRoZSBiYXNlIGZpZWxkIHdpbGwgY29udGFpblxuICAgICAgICAgICAgLy8gYSBsaXN0IG9mIHRoZSBmaWVsZHMgZ3JvdXBlZCBiZW5lYXRoIGl0LCB3ZSBhcmUgaW50ZXJlc3RlZCBpbiB0aG9zZS5cbiAgICAgICAgICAgIC8vIFRhYmxlYXUgZG9lcyBub3Qgc3VwcG9ydCBuZXN0ZWQgZm9sZGVycyBvciBoaWVyYXJjaGllcywgc28gdGhpcyBkb2VzIG5vdCBuZWVkIHRvIGJlIHJlY3Vyc2l2ZS5cbiAgICAgICAgICAgIHZhciBoaWVyYXJjaHlNb2RlbCA9IHBsRmllbGQ7XG4gICAgICAgICAgICBpZiAoaGllcmFyY2h5TW9kZWwuY29sdW1uTGlzdCkge1xuICAgICAgICAgICAgICAgIGhpZXJhcmNoeU1vZGVsLmNvbHVtbkxpc3QuZm9yRWFjaChmdW5jdGlvbiAoZmllbGQpIHsgcmV0dXJuIGRhdGFTb3VyY2VGaWVsZHMucHVzaChQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci5jb252ZXJ0RmllbGQoZmllbGQpKTsgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGEgYml0IGJyaXR0bGUgZm9yIG5vdywgYnV0IHRoaXMgdmFsdWUgaXMgbm90IGV4cG9zZWQgdmlhIHRoZSBwbGF0Zm9ybSBGaWVsZFR5cGUgRW51bS5cbiAgICAgICAgICAgICAgICBpZiAocGxGaWVsZC50eXBlICE9PSAnZmllbGQtZm9sZGVyJykge1xuICAgICAgICAgICAgICAgICAgICBkYXRhU291cmNlRmllbGRzLnB1c2goUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydEZpZWxkKHBsRmllbGQpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgcmVzdWx0ID0ge1xuICAgICAgICAgICAgbmFtZTogZGF0YVNvdXJjZS5kYXRhc291cmNlQ2FwdGlvbixcbiAgICAgICAgICAgIGlkOiBkYXRhU291cmNlLmRhdGFzb3VyY2UsXG4gICAgICAgICAgICBpc0V4dHJhY3Q6IChleHRyYWN0VXBkYXRlVGltZSAhPT0gdW5kZWZpbmVkKSxcbiAgICAgICAgICAgIGV4dHJhY3RVcGRhdGVUaW1lOiBleHRyYWN0VXBkYXRlVGltZSxcbiAgICAgICAgICAgIGZpZWxkczogZGF0YVNvdXJjZUZpZWxkc1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gICAgUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydFdvcmtzaGVldERhdGFTY2hlbWFNYXAgPSBmdW5jdGlvbiAoc2NoZW1hTWFwKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSB7fTtcbiAgICAgICAgT2JqZWN0LmtleXMoc2NoZW1hTWFwKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gcmVtb3ZlIGFueSByZWZlcmVuY2VzIHRvIHRoZSBcIlBhcmFtZXRlcnNcIiBkYXRhc291cmNlLiAgVGhpcyBpcyB0cmVhdGVkIGFzIGEgc2VwYXJhdGVcbiAgICAgICAgICAgIC8vIGRhdGFzb3VyY2UgYnkgdGhlIHBsYXRmb3JtLCBidXQgdGhlIEV4dGVuc2lvbnMgQVBJIGFjY2Vzc2VzIFBhcmFtZXRlcnMgZGlyZWN0bHkuXG4gICAgICAgICAgICB2YXIgY2xlYW5SZWZlcmVuY2VkRGF0YVNvdXJjZUxpc3QgPSBzY2hlbWFNYXBba2V5XS5yZWZlcmVuY2VkRGF0YVNvdXJjZUxpc3QuZmlsdGVyKGZ1bmN0aW9uIChkc05hbWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZHNOYW1lICE9PSBQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci5QQVJBTUVURVJTX0RCX05BTUU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHZhciB3b3Jrc2hlZXREYXRhU291cmNlSW5mbyA9IHtcbiAgICAgICAgICAgICAgICBwcmltYXJ5RGF0YVNvdXJjZTogc2NoZW1hTWFwW2tleV0ucHJpbWFyeURhdGFzb3VyY2UsXG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlZERhdGFTb3VyY2VMaXN0OiBjbGVhblJlZmVyZW5jZWREYXRhU291cmNlTGlzdFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJlc3VsdFtrZXldID0gd29ya3NoZWV0RGF0YVNvdXJjZUluZm87XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gICAgUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydEZpZWxkID0gZnVuY3Rpb24gKHBsRmllbGQpIHtcbiAgICAgICAgdmFyIGZpZWxkQ29sdW1uID0gcGxGaWVsZDtcbiAgICAgICAgdmFyIGdyb3VwQ29sdW1uID0gcGxGaWVsZDtcbiAgICAgICAgdmFyIGFnZ3JlZ2F0aW9uID0gQXBpLkZpZWxkQWdncmVnYXRpb25UeXBlLk5vbmU7XG4gICAgICAgIHZhciByb2xlID0gQXBpLkZpZWxkUm9sZVR5cGUuVW5rbm93bjtcbiAgICAgICAgdmFyIGlzQ2FsY3VsYXRlZCA9IGZhbHNlO1xuICAgICAgICAvLyBXZSBleHBlY3QgdGhhdCBldmVyeSBGaWVsZFByZXNNb2RlbCB3ZSBnZXQgYmFjayBmcm9tIHRoZSBjb21tYW5kIHRoYXQgcmV0dXJucyBGaWVsZFByZXNNb2RlbHNcbiAgICAgICAgLy8gaXMgYWN0dWFsbHkgYW4gaW5zdGFuY2Ugb2YgdGhlIGRlcml2ZWQgRmllbGRDb2x1bW5QcmVzTW9kZWwuXG4gICAgICAgIGlmIChmaWVsZENvbHVtbi5hZ2dyZWdhdGlvbiAmJiBmaWVsZENvbHVtbi5maWVsZFJvbGUpIHtcbiAgICAgICAgICAgIGFnZ3JlZ2F0aW9uID0gRW51bU1hcHBpbmdzXzEuUHJlc0xheWVyVG9BcGlFbnVtTWFwcGluZ3MuZmllbGRBZ2dyZWdhdGlvblR5cGUuY29udmVydChmaWVsZENvbHVtbi5hZ2dyZWdhdGlvbik7XG4gICAgICAgICAgICByb2xlID0gRW51bU1hcHBpbmdzXzEuUHJlc0xheWVyVG9BcGlFbnVtTWFwcGluZ3MuZmllbGRSb2xlVHlwZS5jb252ZXJ0KGZpZWxkQ29sdW1uLmZpZWxkUm9sZSk7XG4gICAgICAgICAgICBpc0NhbGN1bGF0ZWQgPSBmaWVsZENvbHVtbi5pc0NhbGN1bGF0ZWQgfHwgZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuZXhwZWN0ZWQgSW50ZXJuYWwgRXJyb3I6IGZpZWxkIHByZXMgbW9kZWwgaXMgbWlzc2luZyBleHBlY3RlZCBwcm9wZXJ0aWVzLicpO1xuICAgICAgICB9XG4gICAgICAgIHZhciByZXN1bHQgPSB7XG4gICAgICAgICAgICBuYW1lOiBwbEZpZWxkLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgaWQ6IHBsRmllbGQubmFtZSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBwbEZpZWxkLnVzZXJDYXB0aW9uLFxuICAgICAgICAgICAgYWdncmVnYXRpb246IGFnZ3JlZ2F0aW9uLFxuICAgICAgICAgICAgaXNIaWRkZW46ICEhKHBsRmllbGQuaXNIaWRkZW4pLFxuICAgICAgICAgICAgaXNHZW5lcmF0ZWQ6IHBsRmllbGQuaXNHZW5lcmF0ZWQsXG4gICAgICAgICAgICBpc0NhbGN1bGF0ZWRGaWVsZDogaXNDYWxjdWxhdGVkLFxuICAgICAgICAgICAgcm9sZTogcm9sZSxcbiAgICAgICAgICAgIGlzQ29tYmluZWRGaWVsZDogISEoZ3JvdXBDb2x1bW4uaXNDb21iaW5lZEZpZWxkKVxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gICAgUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuUEFSQU1FVEVSU19EQl9OQU1FID0gJ1BhcmFtZXRlcnMnO1xuICAgIHJldHVybiBQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlcjtcbn0oKSk7XG5leHBvcnRzLlByZXNMYXllclRvQXBpQ29udmVydGVyID0gUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1QcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWNvcmUvbGliL3NyYy9tYXBwaW5ncy9QcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci5qc1xuICoqIG1vZHVsZSBpZCA9IDE3XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbi8qKlxuICogVGhpcyBpcyB5b3VyIG1haW4uIFRoaXMgaXMgd2hlcmUgeW91IHJlLWV4cG9ydCBldmVyeXRoaW5nIHlvdSB3YW50IHRvIGJlIHB1YmxpY2x5IGF2YWlsYWJsZS5cbiAqXG4gKiBUaGUgYnVpbGQgZW5mb3JjZXMgdGhhdCB0aGUgZmlsZSBoYXMgdGhlIHNhbWUgbmFtZSBhcyB0aGUgZ2xvYmFsIHZhcmlhYmxlIHRoYXQgaXMgZXhwb3J0ZWQuXG4gKi9cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBFbnVtQ29udmVydGVyXzEgPSByZXF1aXJlKFwiLi9FbnVtQ29udmVydGVyXCIpO1xuZXhwb3J0cy5FbnVtQ29udmVydGVyID0gRW51bUNvbnZlcnRlcl8xLkVudW1Db252ZXJ0ZXI7XG52YXIgUGFyYW1fMSA9IHJlcXVpcmUoXCIuL1BhcmFtXCIpO1xuZXhwb3J0cy5QYXJhbSA9IFBhcmFtXzEuUGFyYW07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1BcGlVdGlscy5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXV0aWxzL2xpYi9BcGlVdGlscy5qc1xuICoqIG1vZHVsZSBpZCA9IDE4XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8qKlxuICogVGhpcyBjbGFzcyBjb252ZXJ0cyBmcm9tIGEgc291cmNlIGVudW0gdmFsdWUgdG8gZGVzdGluYXRpb24gZW51bVxuICogdmFsdWUgZ2l2ZW4gYSBtYXBwaW5nIGZyb20gc291cmNlIHRvIGRlc3RpbmF0aW9uIHdoZW4gY29uc3RydWN0ZWQuXG4gKi9cbnZhciBFbnVtQ29udmVydGVyID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBFbnVtQ29udmVydGVyKF9tYXBwaW5ncywgX2RlZmF1bHRWYWwpIHtcbiAgICAgICAgdGhpcy5fbWFwcGluZ3MgPSBfbWFwcGluZ3M7XG4gICAgICAgIHRoaXMuX2RlZmF1bHRWYWwgPSBfZGVmYXVsdFZhbDtcbiAgICB9XG4gICAgRW51bUNvbnZlcnRlci5wcm90b3R5cGUuY29udmVydCA9IGZ1bmN0aW9uIChlbnVtVmFsLCB0aHJvd0lmTWlzc2luZykge1xuICAgICAgICBpZiAodGhpcy5fbWFwcGluZ3MuaGFzT3duUHJvcGVydHkoZW51bVZhbCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9tYXBwaW5nc1tlbnVtVmFsXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fZGVmYXVsdFZhbCAhPT0gdW5kZWZpbmVkICYmICF0aHJvd0lmTWlzc2luZykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RlZmF1bHRWYWw7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNYXBwaW5nIG5vdCBmb3VuZCBmb3IgJyArIGVudW1WYWwpO1xuICAgIH07XG4gICAgcmV0dXJuIEVudW1Db252ZXJ0ZXI7XG59KCkpO1xuZXhwb3J0cy5FbnVtQ29udmVydGVyID0gRW51bUNvbnZlcnRlcjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUVudW1Db252ZXJ0ZXIuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS11dGlscy9saWIvRW51bUNvbnZlcnRlci5qc1xuICoqIG1vZHVsZSBpZCA9IDE5XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBQYXJhbSA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gUGFyYW0oKSB7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFZlcmlmaWVzIHRoYXQgYW4gaW5jb21pbmcgcGFyYW1ldGVyIGlzICd0cnV0aHknIGFuZCB0aHJvd3NcbiAgICAgKiBhbiBlcnJvciBpZiBpdCdzIG5vdC4gVGhpcyB3aWxsIHRocm93IGFuIGVycm9yIGlmIHRoZSB2YWx1ZVxuICAgICAqIGlzIG51bGwsIHVuZGVmaW5lZCwgTmFOLCB0aGUgZW1wdHkgc3RyaW5nLCAwLCBvciBmYWxzZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcmd1bWVudFZhbHVlIHZhbHVlIHRvIHZlcmlmeVxuICAgICAqIEBwYXJhbSBhcmd1bWVudE5hbWUgbmFtZSBvZiBhcmd1bWVudCB0byB2ZXJpZnlcbiAgICAgKi9cbiAgICAvKnRzbGludDpkaXNhYmxlLW5leHQtbGluZSAqL1xuICAgIFBhcmFtLnZlcmlmeVZhbHVlID0gZnVuY3Rpb24gKGFyZ3VtZW50VmFsdWUsIGFyZ3VtZW50TmFtZSkge1xuICAgICAgICBpZiAoIWFyZ3VtZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVmFsdWUgaXMgaW52YWxpZCBmb3IgYXJndW1lbnQ6ICcgKyBhcmd1bWVudE5hbWUpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBWZXJpZmllcyB0aGF0IGEgc3RyaW5nIGlzIHZhbGlkLiAgVGhyb3dzIGFuIGVycm9yIGlmIHRoZSBzdHJpbmcgaXNcbiAgICAgKiBudWxsLCB1bmRlZmluZWQsIG9yIE5hTi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcmd1bWVudFZhbHVlIHZhbHVlIHRvIHZlcmlmeVxuICAgICAqIEBwYXJhbSBhcmd1bWVudE5hbWUgbmFtZSBvZiBhcmd1bWVudCB0byB2ZXJpZnlcbiAgICAgKi9cbiAgICBQYXJhbS52ZXJpZnlTdHJpbmcgPSBmdW5jdGlvbiAoYXJndW1lbnRWYWx1ZSwgYXJndW1lbnROYW1lKSB7XG4gICAgICAgIGlmIChhcmd1bWVudFZhbHVlID09PSBudWxsIHx8IGFyZ3VtZW50VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTdHJpbmcgdmFsdWUgaXMgaW52YWxpZCBmb3IgYXJndW1lbnQ6ICcgKyBhcmd1bWVudE5hbWUpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBWZXJpZmllcyB0aGUgdmFsdWUgaXMgcGFydCBvZiB0aGUgRW51bVxuICAgICAqXG4gICAgICogU3RyaW5nIGVudW1zIGFyZSB7c3RyaW5nIDogc3RyaW5nfSBkaWN0aW9uYXJpZXMgd2hpY2ggYXJlIG5vdCByZXZlcnNlIG1hcHBhYmxlXG4gICAgICogVGhpcyBpcyBhbiB1Z2x5IHdvcmthcm91bmRcbiAgICAgKiBAcGFyYW0gdmFsdWUgdmFsdWUgdG8gdmVyaWZ5XG4gICAgICogQHBhcmFtIGVudW1UeXBlIGVudW0gdG8gdmVyaWZ5IGFnYWluc3RcbiAgICAgKi9cbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZTpuby1hbnkgKi9cbiAgICBQYXJhbS5pc1ZhbGlkRW51bVZhbHVlID0gZnVuY3Rpb24gKHZhbHVlLCBlbnVtVHlwZSkge1xuICAgICAgICB2YXIgaXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICBPYmplY3Qua2V5cyhlbnVtVHlwZSkuZm9yRWFjaChmdW5jdGlvbiAoZW51bUtleSkge1xuICAgICAgICAgICAgaWYgKGVudW1UeXBlW2VudW1LZXldID09PSB2YWx1ZS50b1N0cmluZygpKSB7XG4gICAgICAgICAgICAgICAgaXNWYWxpZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gaXNWYWxpZDtcbiAgICB9O1xuICAgIC8qIHRzbGludDplbmFibGU6bm8tYW55ICovXG4gICAgLyoqXG4gICAgICogc2VyaWFsaXplcyB0aGUgZGF0ZSBpbnRvIHRoZSBmb3JtYXQgdGhhdCB0aGUgc2VydmVyIGV4cGVjdHMuXG4gICAgICogQHBhcmFtIGRhdGUgdGhlIGRhdGUgdG8gc2VyaWFsaXplXG4gICAgICovXG4gICAgUGFyYW0uc2VyaWFsaXplRGF0ZUZvclBsYXRmb3JtID0gZnVuY3Rpb24gKGRhdGUpIHtcbiAgICAgICAgdmFyIHllYXIgPSBkYXRlLmdldFVUQ0Z1bGxZZWFyKCk7XG4gICAgICAgIHZhciBtb250aCA9IGRhdGUuZ2V0VVRDTW9udGgoKSArIDE7XG4gICAgICAgIHZhciBkYXkgPSBkYXRlLmdldFVUQ0RhdGUoKTtcbiAgICAgICAgdmFyIGhoID0gZGF0ZS5nZXRVVENIb3VycygpO1xuICAgICAgICB2YXIgbW0gPSBkYXRlLmdldFVUQ01pbnV0ZXMoKTtcbiAgICAgICAgdmFyIHNlYyA9IGRhdGUuZ2V0VVRDU2Vjb25kcygpO1xuICAgICAgICByZXR1cm4geWVhciArICctJyArIG1vbnRoICsgJy0nICsgZGF5ICsgJyAnICsgaGggKyAnOicgKyBtbSArICc6JyArIHNlYztcbiAgICB9O1xuICAgIFBhcmFtLnNlcmlhbGl6ZUJvb2xlYW5Gb3JQbGF0Zm9ybSA9IGZ1bmN0aW9uIChib29sKSB7XG4gICAgICAgIHJldHVybiBib29sID8gJ3RydWUnIDogJ2ZhbHNlJztcbiAgICB9O1xuICAgIFBhcmFtLnNlcmlhbGl6ZU51bWJlckZvclBsYXRmb3JtID0gZnVuY3Rpb24gKG51bSkge1xuICAgICAgICByZXR1cm4gbnVtLnRvU3RyaW5nKDEwKTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIFZlcmlmaWVzIHRoZSBwYXJhbXMgbWluIGFuZCBtYXggZm9yIGFwcGx5aW5nIHJhbmdlIGZpbHRlclxuICAgICAqIEBwYXJhbSBtaW4gcmFuZ2UgbWluXG4gICAgICogQHBhcmFtIG1heCByYW5nZSBtYXhcbiAgICAgKi9cbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZTpuby1hbnkgKi9cbiAgICBQYXJhbS52ZXJpZnlSYW5nZVBhcmFtVHlwZSA9IGZ1bmN0aW9uIChtaW4sIG1heCkge1xuICAgICAgICAvKiB0c2xpbnQ6ZW5hYmxlOm5vLWFueSAqL1xuICAgICAgICBpZiAoIW1pbiAmJiAhbWF4KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgUGFyYW1ldGVyOiBBdCBsZWFzdCBvbmUgb2YgbWluIG9yIG1heCBpcyByZXF1aXJlZCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghUGFyYW0uaXNUeXBlTnVtYmVyKG1pbikgJiYgIVBhcmFtLmlzVHlwZURhdGUobWluKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFBhcmFtZXRlciBUeXBlOiBPbmx5IERhdGUgYW5kIG51bWJlciBhcmUgYWxsb3dlZCBmb3IgcGFyYW1ldGVyIG1pbicpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghUGFyYW0uaXNUeXBlTnVtYmVyKG1heCkgJiYgIVBhcmFtLmlzVHlwZURhdGUobWF4KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFBhcmFtZXRlciBUeXBlOiBPbmx5IERhdGUgYW5kIG51bWJlciBhcmUgYWxsb3dlZCBmb3IgcGFyYW1ldGVyIG1heCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgKG1pbikgIT09IHR5cGVvZiAobWF4KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFBhcmFtZXRlciBUeXBlOiBQYXJhbWV0ZXJzIG1pbiBhbmQgbWF4IHNob3VsZCBiZSBvZiB0aGUgc2FtZSB0eXBlJyk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIC8qKlxuICAgICAqIFZlcmlmaWVzIHRoZSBpbnB1dCBpcyBhIG51bWJlclxuICAgICAqL1xuICAgIC8qIHRzbGludDpkaXNhYmxlOm5vLWFueSAqL1xuICAgIFBhcmFtLmlzVHlwZU51bWJlciA9IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIChpbnB1dCkgPT09ICdudW1iZXInIHx8IGlucHV0IGluc3RhbmNlb2YgTnVtYmVyO1xuICAgIH07XG4gICAgLyogdHNsaW50OmVuYWJsZTpuby1hbnkgKi9cbiAgICAvKipcbiAgICAgKiBWZXJpZmllcyB0aGUgaW5wdXQgaXMgYSBEYXRlXG4gICAgICovXG4gICAgLyogdHNsaW50OmRpc2FibGU6bm8tYW55ICovXG4gICAgUGFyYW0uaXNUeXBlRGF0ZSA9IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICByZXR1cm4gaW5wdXQgaW5zdGFuY2VvZiBEYXRlO1xuICAgIH07XG4gICAgLyogdHNsaW50OmVuYWJsZTpuby1hbnkgKi9cbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55ICovXG4gICAgUGFyYW0uaXNUeXBlU3RyaW5nID0gZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgKGlucHV0KSA9PT0gJ3N0cmluZycgfHwgaW5wdXQgaW5zdGFuY2VvZiBTdHJpbmc7XG4gICAgfTtcbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55ICovXG4gICAgUGFyYW0uaXNUeXBlQm9vbCA9IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIChpbnB1dCkgPT09ICdib29sZWFuJyB8fCBpbnB1dCBpbnN0YW5jZW9mIEJvb2xlYW47XG4gICAgfTtcbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55ICovXG4gICAgUGFyYW0uc2VyaWFsaXplUGFyYW10ZXJWYWx1ZSA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICBpZiAoUGFyYW0uaXNUeXBlTnVtYmVyKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIFBhcmFtLnNlcmlhbGl6ZU51bWJlckZvclBsYXRmb3JtKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChQYXJhbS5pc1R5cGVEYXRlKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIFBhcmFtLnNlcmlhbGl6ZURhdGVGb3JQbGF0Zm9ybSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoUGFyYW0uaXNUeXBlQm9vbCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBQYXJhbS5zZXJpYWxpemVCb29sZWFuRm9yUGxhdGZvcm0odmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKFBhcmFtLmlzVHlwZVN0cmluZyh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVmFsdWUgaXMgaW52YWxpZCBmb3IgYXJndW1lbnQ6IHZhbHVlJyk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiBQYXJhbTtcbn0oKSk7XG5leHBvcnRzLlBhcmFtID0gUGFyYW07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1QYXJhbS5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXV0aWxzL2xpYi9QYXJhbS5qc1xuICoqIG1vZHVsZSBpZCA9IDIwXG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBhcGlfaW50ZXJuYWxfY29udHJhY3RfMSA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3RcIik7XG52YXIgYXBpX3V0aWxzXzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLXV0aWxzXCIpO1xudmFyIEVudW1zID0gcmVxdWlyZShcIi4uLy4uL2dlbi1zcmMvcHJlc2xheWVyL0VudW1zXCIpO1xuLyogdHNsaW50OmRpc2FibGU6dHlwZWRlZiAtIERpc2FibGUgdGhpcyB0byBtYWtlIGRlY2xhcmluZyB0aGVzZSBjbGFzc2VzIGEgYml0IGVhc2llciAqL1xudmFyIFByZXNMYXllclRvQXBpRW51bU1hcHBpbmdzID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBQcmVzTGF5ZXJUb0FwaUVudW1NYXBwaW5ncygpIHtcbiAgICB9XG4gICAgUHJlc0xheWVyVG9BcGlFbnVtTWFwcGluZ3Muem9uZVR5cGUgPSBuZXcgYXBpX3V0aWxzXzEuRW51bUNvbnZlcnRlcigoX2EgPSB7fSxcbiAgICAgICAgX2FbRW51bXMuWm9uZVR5cGUuWlRfSW52YWxpZF0gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXNoYm9hcmRPYmplY3RUeXBlLkJsYW5rLFxuICAgICAgICBfYVtFbnVtcy5ab25lVHlwZS5aVF9WaXpdID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGFzaGJvYXJkT2JqZWN0VHlwZS5Xb3Jrc2hlZXQsXG4gICAgICAgIF9hW0VudW1zLlpvbmVUeXBlLlpUX0NvbG9yTGVnZW5kXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhc2hib2FyZE9iamVjdFR5cGUuTGVnZW5kLFxuICAgICAgICBfYVtFbnVtcy5ab25lVHlwZS5aVF9TaGFwZUxlZ2VuZF0gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXNoYm9hcmRPYmplY3RUeXBlLkxlZ2VuZCxcbiAgICAgICAgX2FbRW51bXMuWm9uZVR5cGUuWlRfU2l6ZUxlZ2VuZF0gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXNoYm9hcmRPYmplY3RUeXBlLkxlZ2VuZCxcbiAgICAgICAgX2FbRW51bXMuWm9uZVR5cGUuWlRfTWFwTGVnZW5kXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhc2hib2FyZE9iamVjdFR5cGUuTGVnZW5kLFxuICAgICAgICBfYVtFbnVtcy5ab25lVHlwZS5aVF9RdWlja0ZpbHRlcl0gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXNoYm9hcmRPYmplY3RUeXBlLlF1aWNrRmlsdGVyLFxuICAgICAgICBfYVtFbnVtcy5ab25lVHlwZS5aVF9IaWdobGlnaHRlcl0gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXNoYm9hcmRPYmplY3RUeXBlLkJsYW5rLFxuICAgICAgICBfYVtFbnVtcy5ab25lVHlwZS5aVF9DdXJyUGFnZV0gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXNoYm9hcmRPYmplY3RUeXBlLlBhZ2VGaWx0ZXIsXG4gICAgICAgIF9hW0VudW1zLlpvbmVUeXBlLlpUX0VtcHR5XSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhc2hib2FyZE9iamVjdFR5cGUuQmxhbmssXG4gICAgICAgIF9hW0VudW1zLlpvbmVUeXBlLlpUX1RpdGxlXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhc2hib2FyZE9iamVjdFR5cGUuVGl0bGUsXG4gICAgICAgIF9hW0VudW1zLlpvbmVUeXBlLlpUX1RleHRdID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGFzaGJvYXJkT2JqZWN0VHlwZS5UZXh0LFxuICAgICAgICBfYVtFbnVtcy5ab25lVHlwZS5aVF9CaXRtYXBdID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGFzaGJvYXJkT2JqZWN0VHlwZS5JbWFnZSxcbiAgICAgICAgX2FbRW51bXMuWm9uZVR5cGUuWlRfV2ViXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhc2hib2FyZE9iamVjdFR5cGUuV2ViUGFnZSxcbiAgICAgICAgX2FbRW51bXMuWm9uZVR5cGUuWlRfQWRkSW5dID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGFzaGJvYXJkT2JqZWN0VHlwZS5BZGRJbixcbiAgICAgICAgX2FbRW51bXMuWm9uZVR5cGUuWlRfUGFyYW1DdHJsXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhc2hib2FyZE9iamVjdFR5cGUuUGFyYW1ldGVyQ29udHJvbCxcbiAgICAgICAgX2FbRW51bXMuWm9uZVR5cGUuWlRfRmxpcGJvYXJkTmF2XSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhc2hib2FyZE9iamVjdFR5cGUuQmxhbmssXG4gICAgICAgIF9hW0VudW1zLlpvbmVUeXBlLlpUX0ZsaXBib2FyZF0gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXNoYm9hcmRPYmplY3RUeXBlLkJsYW5rLFxuICAgICAgICBfYVtFbnVtcy5ab25lVHlwZS5aVF9MYXlvdXRCYXNpY10gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXNoYm9hcmRPYmplY3RUeXBlLkJsYW5rLFxuICAgICAgICBfYVtFbnVtcy5ab25lVHlwZS5aVF9MYXlvdXRGbG93XSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhc2hib2FyZE9iamVjdFR5cGUuQmxhbmssXG4gICAgICAgIF9hW0VudW1zLlpvbmVUeXBlLlpUX0xheW91dEZyZWVGb3JtXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhc2hib2FyZE9iamVjdFR5cGUuQmxhbmssXG4gICAgICAgIF9hW0VudW1zLlpvbmVUeXBlLlpUX0VuZF0gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXNoYm9hcmRPYmplY3RUeXBlLkJsYW5rLFxuICAgICAgICBfYVtFbnVtcy5ab25lVHlwZS5aVF9CdXR0b25dID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGFzaGJvYXJkT2JqZWN0VHlwZS5CbGFuayxcbiAgICAgICAgX2EpLCBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXNoYm9hcmRPYmplY3RUeXBlLkJsYW5rKTtcbiAgICBQcmVzTGF5ZXJUb0FwaUVudW1NYXBwaW5ncy5hZGRJbkNvbnRleHQgPSBuZXcgYXBpX3V0aWxzXzEuRW51bUNvbnZlcnRlcigoX2IgPSB7fSxcbiAgICAgICAgX2JbRW51bXMuQWRkSW5Db250ZXh0LlVua25vd25dID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuQWRkSW5Db250ZXh0LlVua25vd24sXG4gICAgICAgIF9iW0VudW1zLkFkZEluQ29udGV4dC5EZXNrdG9wXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkFkZEluQ29udGV4dC5EZXNrdG9wLFxuICAgICAgICBfYltFbnVtcy5BZGRJbkNvbnRleHQuU2VydmVyXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkFkZEluQ29udGV4dC5TZXJ2ZXIsXG4gICAgICAgIF9iKSk7XG4gICAgUHJlc0xheWVyVG9BcGlFbnVtTWFwcGluZ3MuYWRkSW5Nb2RlID0gbmV3IGFwaV91dGlsc18xLkVudW1Db252ZXJ0ZXIoKF9jID0ge30sXG4gICAgICAgIF9jW0VudW1zLkFkZEluTW9kZS5Vbmtub3duXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkFkZEluTW9kZS5Vbmtub3duLFxuICAgICAgICBfY1tFbnVtcy5BZGRJbk1vZGUuQXV0aG9yaW5nXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkFkZEluTW9kZS5BdXRob3JpbmcsXG4gICAgICAgIF9jW0VudW1zLkFkZEluTW9kZS5WaWV3aW5nXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkFkZEluTW9kZS5WaWV3aW5nLFxuICAgICAgICBfYykpO1xuICAgIFByZXNMYXllclRvQXBpRW51bU1hcHBpbmdzLmRhdGFUeXBlID0gbmV3IGFwaV91dGlsc18xLkVudW1Db252ZXJ0ZXIoKF9kID0ge30sXG4gICAgICAgIF9kW0VudW1zLkRhdGFUeXBlLkRUX0JPT0xFQU5dID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGF0YVR5cGUuQm9vbCxcbiAgICAgICAgX2RbRW51bXMuRGF0YVR5cGUuRFRfREFURV0gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXRhVHlwZS5EYXRlLFxuICAgICAgICBfZFtFbnVtcy5EYXRhVHlwZS5EVF9EQVRFVElNRV0gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXRhVHlwZS5EYXRlVGltZSxcbiAgICAgICAgX2RbRW51bXMuRGF0YVR5cGUuRFRfSU5URUdFUl0gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXRhVHlwZS5JbnQsXG4gICAgICAgIF9kW0VudW1zLkRhdGFUeXBlLkRUX1JFQUxdID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGF0YVR5cGUuRmxvYXQsXG4gICAgICAgIF9kW0VudW1zLkRhdGFUeXBlLkRUX1NUUklOR10gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXRhVHlwZS5TdHJpbmcsXG4gICAgICAgIF9kW0VudW1zLkRhdGFUeXBlLkRUX1NQQVRJQUxdID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGF0YVR5cGUuU3BhdGlhbCxcbiAgICAgICAgX2QpKTtcbiAgICBQcmVzTGF5ZXJUb0FwaUVudW1NYXBwaW5ncy5maWVsZEFnZ3JlZ2F0aW9uVHlwZSA9IG5ldyBhcGlfdXRpbHNfMS5FbnVtQ29udmVydGVyKChfZSA9IHt9LFxuICAgICAgICBfZVtFbnVtcy5BZ2dUeXBlLkFHR19BVFRSXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLkF0dHIsXG4gICAgICAgIF9lW0VudW1zLkFnZ1R5cGUuQUdHX0FWR10gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5BdmcsXG4gICAgICAgIF9lW0VudW1zLkFnZ1R5cGUuQUdHX0NPVU5UXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLkNvdW50LFxuICAgICAgICBfZVtFbnVtcy5BZ2dUeXBlLkFHR19DT1VOVERdID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuQ291bnRkLFxuICAgICAgICBfZVtFbnVtcy5BZ2dUeXBlLkFHR19EQVldID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuRGF5LFxuICAgICAgICBfZVtFbnVtcy5BZ2dUeXBlLkFHR19FTkRdID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuRW5kLFxuICAgICAgICBfZVtFbnVtcy5BZ2dUeXBlLkFHR19IT1VSXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLkhvdXIsXG4gICAgICAgIF9lW0VudW1zLkFnZ1R5cGUuQUdHX0lOT1VUXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLkluT3V0LFxuICAgICAgICBfZVtFbnVtcy5BZ2dUeXBlLkFHR19LVVJUT1NJU10gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5LdXJ0b3NpcyxcbiAgICAgICAgX2VbRW51bXMuQWdnVHlwZS5BR0dfTUFYXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLk1heCxcbiAgICAgICAgX2VbRW51bXMuQWdnVHlwZS5BR0dfTURZXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLk1keSxcbiAgICAgICAgX2VbRW51bXMuQWdnVHlwZS5BR0dfTUVESUFOXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLk1lZGlhbixcbiAgICAgICAgX2VbRW51bXMuQWdnVHlwZS5BR0dfTUlOXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLk1pbixcbiAgICAgICAgX2VbRW51bXMuQWdnVHlwZS5BR0dfTUlOVVRFXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLk1pbnV0ZSxcbiAgICAgICAgX2VbRW51bXMuQWdnVHlwZS5BR0dfTU9OVEhZRUFSXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLk1vbnRoWWVhcixcbiAgICAgICAgX2VbRW51bXMuQWdnVHlwZS5BR0dfTk9ORV0gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5Ob25lLFxuICAgICAgICBfZVtFbnVtcy5BZ2dUeXBlLkFHR19RVFJdID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuUXRyLFxuICAgICAgICBfZVtFbnVtcy5BZ2dUeXBlLkFHR19RVUFSVDFdID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuUXVhcnQxLFxuICAgICAgICBfZVtFbnVtcy5BZ2dUeXBlLkFHR19RVUFSVDNdID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuUXVhcnQzLFxuICAgICAgICBfZVtFbnVtcy5BZ2dUeXBlLkFHR19TRUNPTkRdID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuU2Vjb25kLFxuICAgICAgICBfZVtFbnVtcy5BZ2dUeXBlLkFHR19TS0VXTkVTU10gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5Ta2V3bmVzcyxcbiAgICAgICAgX2VbRW51bXMuQWdnVHlwZS5BR0dfU1RERVZdID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuU3RkZXYsXG4gICAgICAgIF9lW0VudW1zLkFnZ1R5cGUuQUdHX1NUREVWUF0gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5TdGRldnAsXG4gICAgICAgIF9lW0VudW1zLkFnZ1R5cGUuQUdHX1NVTV0gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5TdW0sXG4gICAgICAgIF9lW0VudW1zLkFnZ1R5cGUuVFJVTkNfREFZXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jRGF5LFxuICAgICAgICBfZVtFbnVtcy5BZ2dUeXBlLlRSVU5DX0hPVVJdID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuVHJ1bmNIb3VyLFxuICAgICAgICBfZVtFbnVtcy5BZ2dUeXBlLlRSVU5DX01JTlVURV0gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY01pbnV0ZSxcbiAgICAgICAgX2VbRW51bXMuQWdnVHlwZS5UUlVOQ19NT05USF0gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY01vbnRoLFxuICAgICAgICBfZVtFbnVtcy5BZ2dUeXBlLlRSVU5DX1FUUl0gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY1F0cixcbiAgICAgICAgX2VbRW51bXMuQWdnVHlwZS5UUlVOQ19TRUNPTkRdID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuVHJ1bmNTZWNvbmQsXG4gICAgICAgIF9lW0VudW1zLkFnZ1R5cGUuVFJVTkNfV0VFS10gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY1dlZWssXG4gICAgICAgIF9lW0VudW1zLkFnZ1R5cGUuVFJVTkNfWUVBUl0gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY1llYXIsXG4gICAgICAgIF9lW0VudW1zLkFnZ1R5cGUuQUdHX1VTRVJdID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuVXNlcixcbiAgICAgICAgX2VbRW51bXMuQWdnVHlwZS5BR0dfVkFSXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlZhcixcbiAgICAgICAgX2VbRW51bXMuQWdnVHlwZS5BR0dfVkFSUF0gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5WYXJwLFxuICAgICAgICBfZVtFbnVtcy5BZ2dUeXBlLkFHR19XRUVLXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLldlZWssXG4gICAgICAgIF9lW0VudW1zLkFnZ1R5cGUuQUdHX1dFRUtEQVldID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuV2Vla2RheSxcbiAgICAgICAgX2VbRW51bXMuQWdnVHlwZS5BR0dfWUVBUl0gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5ZZWFyLFxuICAgICAgICBfZSkpO1xuICAgIFByZXNMYXllclRvQXBpRW51bU1hcHBpbmdzLmZpZWxkUm9sZVR5cGUgPSBuZXcgYXBpX3V0aWxzXzEuRW51bUNvbnZlcnRlcigoX2YgPSB7fSxcbiAgICAgICAgX2ZbRW51bXMuRmllbGRSb2xlLlJPTEVfRElNRU5TSU9OXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkUm9sZVR5cGUuRGltZW5zaW9uLFxuICAgICAgICBfZltFbnVtcy5GaWVsZFJvbGUuUk9MRV9NRUFTVVJFXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkUm9sZVR5cGUuTWVhc3VyZSxcbiAgICAgICAgX2YpKTtcbiAgICBQcmVzTGF5ZXJUb0FwaUVudW1NYXBwaW5ncy5wYXJhbWV0ZXJUeXBlc0RvbWFpblR5cGUgPSBuZXcgYXBpX3V0aWxzXzEuRW51bUNvbnZlcnRlcigoX2cgPSB7fSxcbiAgICAgICAgX2dbRW51bXMuUGFyYW1ldGVyVHlwZXNEb21haW5UeXBlLkRvbWFpbl9BbnldID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRG9tYWluUmVzdHJpY3Rpb25UeXBlLkFsbCxcbiAgICAgICAgX2dbRW51bXMuUGFyYW1ldGVyVHlwZXNEb21haW5UeXBlLkRvbWFpbl9MaXN0XSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRvbWFpblJlc3RyaWN0aW9uVHlwZS5MaXN0LFxuICAgICAgICBfZ1tFbnVtcy5QYXJhbWV0ZXJUeXBlc0RvbWFpblR5cGUuRG9tYWluX1JhbmdlXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRvbWFpblJlc3RyaWN0aW9uVHlwZS5SYW5nZSxcbiAgICAgICAgX2cpKTtcbiAgICBQcmVzTGF5ZXJUb0FwaUVudW1NYXBwaW5ncy5kYXRlU3RlcFBlcmlvZCA9IG5ldyBhcGlfdXRpbHNfMS5FbnVtQ29udmVydGVyKChfaCA9IHt9LFxuICAgICAgICBfaFtFbnVtcy5EYXRlUGVyaW9kVHlwZS5QZXJpb2RZZWFyXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhdGVTdGVwUGVyaW9kLlllYXJzLFxuICAgICAgICBfaFtFbnVtcy5EYXRlUGVyaW9kVHlwZS5QZXJpb2RRdWFydGVyXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhdGVTdGVwUGVyaW9kLlF1YXJ0ZXJzLFxuICAgICAgICBfaFtFbnVtcy5EYXRlUGVyaW9kVHlwZS5QZXJpb2RNb250aF0gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXRlU3RlcFBlcmlvZC5Nb250aHMsXG4gICAgICAgIF9oW0VudW1zLkRhdGVQZXJpb2RUeXBlLlBlcmlvZFdlZWtdID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGF0ZVN0ZXBQZXJpb2QuV2Vla3MsXG4gICAgICAgIF9oW0VudW1zLkRhdGVQZXJpb2RUeXBlLlBlcmlvZERheV0gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXRlU3RlcFBlcmlvZC5EYXlzLFxuICAgICAgICBfaFtFbnVtcy5EYXRlUGVyaW9kVHlwZS5QZXJpb2RIb3VyXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhdGVTdGVwUGVyaW9kLkhvdXJzLFxuICAgICAgICBfaFtFbnVtcy5EYXRlUGVyaW9kVHlwZS5QZXJpb2RNaW51dGVdID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGF0ZVN0ZXBQZXJpb2QuTWludXRlcyxcbiAgICAgICAgX2hbRW51bXMuRGF0ZVBlcmlvZFR5cGUuUGVyaW9kU2Vjb25kXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhdGVTdGVwUGVyaW9kLlNlY29uZHMsXG4gICAgICAgIF9oKSk7XG4gICAgUHJlc0xheWVyVG9BcGlFbnVtTWFwcGluZ3MuZGF0ZVJhbmdlVHlwZSA9IG5ldyBhcGlfdXRpbHNfMS5FbnVtQ29udmVydGVyKChfaiA9IHt9LFxuICAgICAgICBfaltFbnVtcy5GaWx0ZXJzUmVsYXRpdmVEYXRlUmFuZ2VUeXBlLlJhbmdlQ3VycmVudF0gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXRlUmFuZ2VUeXBlLkN1cnJlbnQsXG4gICAgICAgIF9qW0VudW1zLkZpbHRlcnNSZWxhdGl2ZURhdGVSYW5nZVR5cGUuUmFuZ2VDdXJyZW50VG9EYXRlXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhdGVSYW5nZVR5cGUuVG9EYXRlLFxuICAgICAgICBfaltFbnVtcy5GaWx0ZXJzUmVsYXRpdmVEYXRlUmFuZ2VUeXBlLlJhbmdlTGFzdDFdID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGF0ZVJhbmdlVHlwZS5MYXN0LFxuICAgICAgICBfaltFbnVtcy5GaWx0ZXJzUmVsYXRpdmVEYXRlUmFuZ2VUeXBlLlJhbmdlTGFzdE5dID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGF0ZVJhbmdlVHlwZS5MYXN0TixcbiAgICAgICAgX2pbRW51bXMuRmlsdGVyc1JlbGF0aXZlRGF0ZVJhbmdlVHlwZS5SYW5nZU5leHQxXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhdGVSYW5nZVR5cGUuTmV4dCxcbiAgICAgICAgX2pbRW51bXMuRmlsdGVyc1JlbGF0aXZlRGF0ZVJhbmdlVHlwZS5SYW5nZU5leHROXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhdGVSYW5nZVR5cGUuTmV4dE4sXG4gICAgICAgIF9qKSk7XG4gICAgUHJlc0xheWVyVG9BcGlFbnVtTWFwcGluZ3MuZmlsdGVyRG9tYWluVHlwZSA9IG5ldyBhcGlfdXRpbHNfMS5FbnVtQ29udmVydGVyKChfayA9IHt9LFxuICAgICAgICBfa1tFbnVtcy5GaWx0ZXJzRG9tYWluVHlwZS5SZWxldmFudF0gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWx0ZXJEb21haW5UeXBlLlJlbGV2YW50LFxuICAgICAgICBfa1tFbnVtcy5GaWx0ZXJzRG9tYWluVHlwZS5EYXRhYmFzZV0gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWx0ZXJEb21haW5UeXBlLkRhdGFiYXNlLFxuICAgICAgICBfaykpO1xuICAgIHJldHVybiBQcmVzTGF5ZXJUb0FwaUVudW1NYXBwaW5ncztcbn0oKSk7XG5leHBvcnRzLlByZXNMYXllclRvQXBpRW51bU1hcHBpbmdzID0gUHJlc0xheWVyVG9BcGlFbnVtTWFwcGluZ3M7XG52YXIgQXBpVG9QcmVzTGF5ZXJFbnVtTWFwcGluZ3MgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEFwaVRvUHJlc0xheWVyRW51bU1hcHBpbmdzKCkge1xuICAgIH1cbiAgICBBcGlUb1ByZXNMYXllckVudW1NYXBwaW5ncy5maWx0ZXJVcGRhdGVUeXBlID0gbmV3IGFwaV91dGlsc18xLkVudW1Db252ZXJ0ZXIoKF9hID0ge30sXG4gICAgICAgIF9hW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpbHRlclVwZGF0ZVR5cGUuQWRkXSA9IEVudW1zLkZpbHRlclVwZGF0ZVR5cGUuQURELFxuICAgICAgICBfYVthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWx0ZXJVcGRhdGVUeXBlLkFsbF0gPSBFbnVtcy5GaWx0ZXJVcGRhdGVUeXBlLkFMTCxcbiAgICAgICAgX2FbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmlsdGVyVXBkYXRlVHlwZS5SZXBsYWNlXSA9IEVudW1zLkZpbHRlclVwZGF0ZVR5cGUuUkVQTEFDRSxcbiAgICAgICAgX2FbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmlsdGVyVXBkYXRlVHlwZS5SZW1vdmVdID0gRW51bXMuRmlsdGVyVXBkYXRlVHlwZS5SRU1PVkUsXG4gICAgICAgIF9hKSk7XG4gICAgQXBpVG9QcmVzTGF5ZXJFbnVtTWFwcGluZ3MubnVsbE9wdGlvbiA9IG5ldyBhcGlfdXRpbHNfMS5FbnVtQ29udmVydGVyKChfYiA9IHt9LFxuICAgICAgICBfYlthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWx0ZXJOdWxsT3B0aW9uLkFsbFZhbHVlc10gPSBFbnVtcy5GaWx0ZXJzUXVhbnRpdGF0aXZlSW5jbHVkZWRWYWx1ZXMuQWxsLFxuICAgICAgICBfYlthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWx0ZXJOdWxsT3B0aW9uLk5vbk51bGxWYWx1ZXNdID0gRW51bXMuRmlsdGVyc1F1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzLk5vbk51bGwsXG4gICAgICAgIF9iW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpbHRlck51bGxPcHRpb24uTnVsbFZhbHVlc10gPSBFbnVtcy5GaWx0ZXJzUXVhbnRpdGF0aXZlSW5jbHVkZWRWYWx1ZXMuTnVsbCxcbiAgICAgICAgX2IpKTtcbiAgICBBcGlUb1ByZXNMYXllckVudW1NYXBwaW5ncy5maWx0ZXJEb21haW5UeXBlID0gbmV3IGFwaV91dGlsc18xLkVudW1Db252ZXJ0ZXIoKF9jID0ge30sXG4gICAgICAgIF9jW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpbHRlckRvbWFpblR5cGUuUmVsZXZhbnRdID0gRW51bXMuRmlsdGVyc0RvbWFpblR5cGUuUmVsZXZhbnQsXG4gICAgICAgIF9jW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpbHRlckRvbWFpblR5cGUuRGF0YWJhc2VdID0gRW51bXMuRmlsdGVyc0RvbWFpblR5cGUuRGF0YWJhc2UsXG4gICAgICAgIF9jKSk7XG4gICAgcmV0dXJuIEFwaVRvUHJlc0xheWVyRW51bU1hcHBpbmdzO1xufSgpKTtcbmV4cG9ydHMuQXBpVG9QcmVzTGF5ZXJFbnVtTWFwcGluZ3MgPSBBcGlUb1ByZXNMYXllckVudW1NYXBwaW5ncztcbnZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mLCBfZywgX2gsIF9qLCBfaywgX2EsIF9iLCBfYztcbi8qIHRzbGludDplbmFibGU6dHlwZWRlZiAqL1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RW51bU1hcHBpbmdzLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogRDovZGV2L2pzLWFwaS9hcGktY29yZS9saWIvc3JjL21hcHBpbmdzL0VudW1NYXBwaW5ncy5qc1xuICoqIG1vZHVsZSBpZCA9IDIxXG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbi8qIHRzbGludDpkaXNhYmxlICovXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy9cbi8vIFRoaXMgZmlsZSBpcyB0aGUgY29weXJpZ2h0ZWQgcHJvcGVydHkgb2YgVGFibGVhdSBTb2Z0d2FyZSBhbmQgaXMgcHJvdGVjdGVkXG4vLyBieSByZWdpc3RlcmVkIHBhdGVudHMgYW5kIG90aGVyIGFwcGxpY2FibGUgVS5TLiBhbmQgaW50ZXJuYXRpb25hbCBsYXdzIGFuZFxuLy8gcmVndWxhdGlvbnMuXG4vL1xuLy8gVW5saWNlbnNlZCB1c2Ugb2YgdGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSBpcyBwcm9oaWJpdGVkLiBQbGVhc2UgcmVmZXIgdG9cbi8vIHRoZSBOT1RJQ0VTLnR4dCBmaWxlIGZvciBmdXJ0aGVyIGRldGFpbHMuXG4vL1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFdBUk5JTkc6IENvbXB1dGVyIGdlbmVyYXRlZCBmaWxlLiAgRG8gbm90IGhhbmQgbW9kaWZ5LlxuLy8gREVQRU5EUyBPTjogWycuLi90eXBlc2NyaXB0L2pzLWFwaS9hcGktY29yZS9ub2RlX21vZHVsZXMvQHRhYmxlYXUvcHJlc2xheWVyLWNvZGVnZW4tdHlwZXNjcmlwdC90ZW1wbGF0ZXMvZW51bS10cy50ZW1wbGF0ZScsIHUnLi4vdHlwZXNjcmlwdC9qcy1hcGkvYXBpLWNvcmUvdGVtcC1wcmVzLWxheWVyL2FsbC1lbnVtcy5kYXRhJ11cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8vIFxudmFyIERhdGFTY2FsaW5nO1xuKGZ1bmN0aW9uIChEYXRhU2NhbGluZykge1xuICAgIC8vIFxuICAgIERhdGFTY2FsaW5nW1wiU0NBTElOR19OT05FXCJdID0gXCJub25lXCI7XG4gICAgLy8gXG4gICAgRGF0YVNjYWxpbmdbXCJTQ0FMSU5HX1NUQU5EQVJESVpFRFwiXSA9IFwic3RhbmRhcmRpemVkXCI7XG4gICAgLy8gXG4gICAgRGF0YVNjYWxpbmdbXCJTQ0FMSU5HX05PUk1BTElaRURcIl0gPSBcIm5vcm1hbGl6ZWRcIjtcbn0pKERhdGFTY2FsaW5nID0gZXhwb3J0cy5EYXRhU2NhbGluZyB8fCAoZXhwb3J0cy5EYXRhU2NhbGluZyA9IHt9KSk7XG4vLyBcbnZhciBGb3JlY2FzdE1vZGVsVHlwZTtcbihmdW5jdGlvbiAoRm9yZWNhc3RNb2RlbFR5cGUpIHtcbiAgICAvLyBcbiAgICBGb3JlY2FzdE1vZGVsVHlwZVtcIkZvcmVjYXN0TW9kZWxUeXBlQXV0b1NlYXNvblwiXSA9IFwiYXV0by1zZWFzb25cIjtcbiAgICAvLyBcbiAgICBGb3JlY2FzdE1vZGVsVHlwZVtcIkZvcmVjYXN0TW9kZWxUeXBlQXV0b1wiXSA9IFwiYXV0b1wiO1xuICAgIC8vIFxuICAgIEZvcmVjYXN0TW9kZWxUeXBlW1wiRm9yZWNhc3RNb2RlbFR5cGVDdXN0b21cIl0gPSBcImN1c3RvbVwiO1xufSkoRm9yZWNhc3RNb2RlbFR5cGUgPSBleHBvcnRzLkZvcmVjYXN0TW9kZWxUeXBlIHx8IChleHBvcnRzLkZvcmVjYXN0TW9kZWxUeXBlID0ge30pKTtcbi8vIFxudmFyIEZvcmVjYXN0UmFuZ2VUeXBlO1xuKGZ1bmN0aW9uIChGb3JlY2FzdFJhbmdlVHlwZSkge1xuICAgIC8vIFxuICAgIEZvcmVjYXN0UmFuZ2VUeXBlW1wiRm9yZWNhc3RSYW5nZVR5cGVBdXRvXCJdID0gXCJhdXRvXCI7XG4gICAgLy8gXG4gICAgRm9yZWNhc3RSYW5nZVR5cGVbXCJGb3JlY2FzdFJhbmdlVHlwZU5leHRcIl0gPSBcIm5leHRcIjtcbiAgICAvLyBcbiAgICBGb3JlY2FzdFJhbmdlVHlwZVtcIkZvcmVjYXN0UmFuZ2VUeXBlRW5kT2ZcIl0gPSBcImVuZC1vZlwiO1xufSkoRm9yZWNhc3RSYW5nZVR5cGUgPSBleHBvcnRzLkZvcmVjYXN0UmFuZ2VUeXBlIHx8IChleHBvcnRzLkZvcmVjYXN0UmFuZ2VUeXBlID0ge30pKTtcbi8vIFxudmFyIEZvcmVjYXN0U3RhdHVzO1xuKGZ1bmN0aW9uIChGb3JlY2FzdFN0YXR1cykge1xuICAgIC8vIFxuICAgIEZvcmVjYXN0U3RhdHVzW1wiRlNfVkFMSURcIl0gPSBcImZzLXZhbGlkXCI7XG4gICAgLy8gXG4gICAgRm9yZWNhc3RTdGF0dXNbXCJGU19JTlZBTElEX0RBVEVUSU1FXCJdID0gXCJmcy1pbnZhbGlkLWRhdGV0aW1lXCI7XG4gICAgLy8gXG4gICAgRm9yZWNhc3RTdGF0dXNbXCJGU19JTlZBTElEX1JFU1BPTlNFXCJdID0gXCJmcy1pbnZhbGlkLXJlc3BvbnNlXCI7XG4gICAgLy8gXG4gICAgRm9yZWNhc3RTdGF0dXNbXCJGU19ORUVEX01PUkVfREFUQVwiXSA9IFwiZnMtbmVlZC1tb3JlLWRhdGFcIjtcbiAgICAvLyBcbiAgICBGb3JlY2FzdFN0YXR1c1tcIkZTX1RJTUVfU0VSSUVTX1RPT19TSE9SVFwiXSA9IFwiZnMtdGltZS1zZXJpZXMtdG9vLXNob3J0XCI7XG4gICAgLy8gXG4gICAgRm9yZWNhc3RTdGF0dXNbXCJGU19USU1FX1NFUklFU19JUlJFR1VMQVJcIl0gPSBcImZzLXRpbWUtc2VyaWVzLWlycmVndWxhclwiO1xuICAgIC8vIFxuICAgIEZvcmVjYXN0U3RhdHVzW1wiRlNfTlVMTF9EQVRFVElNRVwiXSA9IFwiZnMtbnVsbC1kYXRldGltZVwiO1xuICAgIC8vIFxuICAgIEZvcmVjYXN0U3RhdHVzW1wiRlNfTlVMTF9SRVNQT05TRVwiXSA9IFwiZnMtbnVsbC1yZXNwb25zZVwiO1xuICAgIC8vIFxuICAgIEZvcmVjYXN0U3RhdHVzW1wiRlNfTUVUQURBVEFfSU5WQUxJRFwiXSA9IFwiZnMtbWV0YWRhdGEtaW52YWxpZFwiO1xuICAgIC8vIFxuICAgIEZvcmVjYXN0U3RhdHVzW1wiRlNfTk9fUkVTUE9OU0VcIl0gPSBcImZzLW5vLXJlc3BvbnNlXCI7XG4gICAgLy8gXG4gICAgRm9yZWNhc3RTdGF0dXNbXCJGU19FWENFU1NfREFUQVwiXSA9IFwiZnMtZXhjZXNzLWRhdGFcIjtcbiAgICAvLyBcbiAgICBGb3JlY2FzdFN0YXR1c1tcIkZTX0VYQ0VTU19QQVJUSVRJT05TXCJdID0gXCJmcy1leGNlc3MtcGFydGl0aW9uc1wiO1xuICAgIC8vIFxuICAgIEZvcmVjYXN0U3RhdHVzW1wiRlNfRElNRU5TSU9OX0lOVkFMSURcIl0gPSBcImZzLWRpbWVuc2lvbi1pbnZhbGlkXCI7XG4gICAgLy8gXG4gICAgRm9yZWNhc3RTdGF0dXNbXCJGU19UQUJMRUNBTENfSU5WQUxJRFwiXSA9IFwiZnMtdGFibGVjYWxjLWludmFsaWRcIjtcbiAgICAvLyBcbiAgICBGb3JlY2FzdFN0YXR1c1tcIkZTX1RJTUVfU0VSSUVTX1RPT19JUlJFR1VMQVJcIl0gPSBcImZzLXRpbWUtc2VyaWVzLXRvby1pcnJlZ3VsYXJcIjtcbiAgICAvLyBcbiAgICBGb3JlY2FzdFN0YXR1c1tcIkZTX0FHR1JFR0FURV9GSUxURVJcIl0gPSBcImZzLWFnZ3JlZ2F0ZS1maWx0ZXJcIjtcbiAgICAvLyBcbiAgICBGb3JlY2FzdFN0YXR1c1tcIkZTX0RJU0FHR1JFR0FURV9SRVNQT05TRVwiXSA9IFwiZnMtZGlzYWdncmVnYXRlLXJlc3BvbnNlXCI7XG4gICAgLy8gXG4gICAgRm9yZWNhc3RTdGF0dXNbXCJGU19QRVJDRU5UQUdFX0lOVkFMSURcIl0gPSBcImZzLXBlcmNlbnRhZ2UtaW52YWxpZFwiO1xuICAgIC8vIFxuICAgIEZvcmVjYXN0U3RhdHVzW1wiRlNfVE9UQUxfSU5WQUxJRFwiXSA9IFwiZnMtdG90YWwtaW52YWxpZFwiO1xuICAgIC8vIFxuICAgIEZvcmVjYXN0U3RhdHVzW1wiRlNfRVhDRVNTX0RBVEVUSU1FXCJdID0gXCJmcy1leGNlc3MtZGF0ZXRpbWVcIjtcbiAgICAvLyBcbiAgICBGb3JlY2FzdFN0YXR1c1tcIkZTX0RBVEVfQUdHX0lOQ09NUEFUSUJMRVwiXSA9IFwiZnMtZGF0ZS1hZ2ctaW5jb21wYXRpYmxlXCI7XG4gICAgLy8gXG4gICAgRm9yZWNhc3RTdGF0dXNbXCJGU19USU1FX1NFUklFU19OT1RfUE9TSVRJVkVcIl0gPSBcImZzLXRpbWUtc2VyaWVzLW5vdC1wb3NpdGl2ZVwiO1xuICAgIC8vIFxuICAgIEZvcmVjYXN0U3RhdHVzW1wiRlNfUkVRVUVTVEVEX01PREVMX0lOVkFMSURcIl0gPSBcImZzLXJlcXVlc3RlZC1tb2RlbC1pbnZhbGlkXCI7XG4gICAgLy8gXG4gICAgRm9yZWNhc3RTdGF0dXNbXCJGU19UT09fU0hPUlRfRk9SX1NFQVNPTlwiXSA9IFwiZnMtdG9vLXNob3J0LWZvci1zZWFzb25cIjtcbiAgICAvLyBcbiAgICBGb3JlY2FzdFN0YXR1c1tcIkZTX1JFUVVFU1RFRF9NT0RFTF9VTlNUQUJMRVwiXSA9IFwiZnMtcmVxdWVzdGVkLW1vZGVsLXVuc3RhYmxlXCI7XG4gICAgLy8gXG4gICAgRm9yZWNhc3RTdGF0dXNbXCJGU19VTkRFRklORURcIl0gPSBcImZzLXVuZGVmaW5lZFwiO1xufSkoRm9yZWNhc3RTdGF0dXMgPSBleHBvcnRzLkZvcmVjYXN0U3RhdHVzIHx8IChleHBvcnRzLkZvcmVjYXN0U3RhdHVzID0ge30pKTtcbi8vIFxudmFyIFN0eWxlQXR0cmlidXRlO1xuKGZ1bmN0aW9uIChTdHlsZUF0dHJpYnV0ZSkge1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FBbHRlcm5hdGVUZXh0XCJdID0gXCJzYUFsdGVybmF0ZVRleHRcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhQWx0TWFya0NvbG9yXCJdID0gXCJzYUFsdE1hcmtDb2xvclwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FBc3BlY3RcIl0gPSBcInNhQXNwZWN0XCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYUF1dG9TdWJ0aXRsZVwiXSA9IFwic2FBdXRvU3VidGl0bGVcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhQmFja2dyb3VuZENvbG9yXCJdID0gXCJzYUJhY2tncm91bmRDb2xvclwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FCYWNrZ3JvdW5kVHJhbnNwYXJlbmN5XCJdID0gXCJzYUJhY2tncm91bmRUcmFuc3BhcmVuY3lcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhQmFuZFNpemVcIl0gPSBcInNhQmFuZFNpemVcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhQmFuZENvbG9yXCJdID0gXCJzYUJhbmRDb2xvclwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FCYW5kTGV2ZWxcIl0gPSBcInNhQmFuZExldmVsXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYUJvZHlUeXBlXCJdID0gXCJzYUJvZHlUeXBlXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYUJvcmRlckNvbG9yXCJdID0gXCJzYUJvcmRlckNvbG9yXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYUJvcmRlckNvbG9yVG9wXCJdID0gXCJzYUJvcmRlckNvbG9yVG9wXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYUJvcmRlckNvbG9yUmlnaHRcIl0gPSBcInNhQm9yZGVyQ29sb3JSaWdodFwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FCb3JkZXJDb2xvckJvdHRvbVwiXSA9IFwic2FCb3JkZXJDb2xvckJvdHRvbVwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FCb3JkZXJDb2xvckxlZnRcIl0gPSBcInNhQm9yZGVyQ29sb3JMZWZ0XCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYUJvcmRlclN0eWxlXCJdID0gXCJzYUJvcmRlclN0eWxlXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYUJvcmRlclN0eWxlVG9wXCJdID0gXCJzYUJvcmRlclN0eWxlVG9wXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYUJvcmRlclN0eWxlUmlnaHRcIl0gPSBcInNhQm9yZGVyU3R5bGVSaWdodFwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FCb3JkZXJTdHlsZUJvdHRvbVwiXSA9IFwic2FCb3JkZXJTdHlsZUJvdHRvbVwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FCb3JkZXJTdHlsZUxlZnRcIl0gPSBcInNhQm9yZGVyU3R5bGVMZWZ0XCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYUJvcmRlcldpZHRoXCJdID0gXCJzYUJvcmRlcldpZHRoXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYUJvcmRlcldpZHRoVG9wXCJdID0gXCJzYUJvcmRlcldpZHRoVG9wXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYUJvcmRlcldpZHRoUmlnaHRcIl0gPSBcInNhQm9yZGVyV2lkdGhSaWdodFwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FCb3JkZXJXaWR0aEJvdHRvbVwiXSA9IFwic2FCb3JkZXJXaWR0aEJvdHRvbVwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FCb3JkZXJXaWR0aExlZnRcIl0gPSBcInNhQm9yZGVyV2lkdGhMZWZ0XCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYUJveHBsb3RTdHlsZVwiXSA9IFwic2FCb3hwbG90U3R5bGVcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhQnJlYWtPblNwZWNpYWxcIl0gPSBcInNhQnJlYWtPblNwZWNpYWxcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhQ2VsbFwiXSA9IFwic2FDZWxsXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYUNlbGxXXCJdID0gXCJzYUNlbGxXXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYUNlbGxIXCJdID0gXCJzYUNlbGxIXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYUNlbGxRXCJdID0gXCJzYUNlbGxRXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYUNlbGxRTWFya1wiXSA9IFwic2FDZWxsUU1hcmtcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhQ29sb3JcIl0gPSBcInNhQ29sb3JcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhQ29sb3JNb2RlXCJdID0gXCJzYUNvbG9yTW9kZVwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FDb2xMZXZlbHNcIl0gPSBcInNhQ29sTGV2ZWxzXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYUNvbFZlcnRMZXZlbHNcIl0gPSBcInNhQ29sVmVydExldmVsc1wiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FDb2xIb3JpekhlaWdodFwiXSA9IFwic2FDb2xIb3JpekhlaWdodFwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FDb2xWZXJ0SGVpZ2h0XCJdID0gXCJzYUNvbFZlcnRIZWlnaHRcIjtcbiAgICAvLyBEZXByZWNhdGVkXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYUNvbEhlaWdodFwiXSA9IFwic2FDb2xIZWlnaHRcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhQ29sV2lkdGhcIl0gPSBcInNhQ29sV2lkdGhcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhQ29udGVudFwiXSA9IFwic2FDb250ZW50XCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYURpc3BsYXlGaWVsZExhYmVsc1wiXSA9IFwic2FEaXNwbGF5RmllbGRMYWJlbHNcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhRGlzcGxheUhlYWRlclwiXSA9IFwic2FEaXNwbGF5SGVhZGVyXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYURpc3BsYXlBbHRlcm5hdGVUZXh0XCJdID0gXCJzYURpc3BsYXlBbHRlcm5hdGVUZXh0XCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYURpdkxldmVsXCJdID0gXCJzYURpdkxldmVsXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYUVuYWJsZWRcIl0gPSBcInNhRW5hYmxlZFwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FGaWxsQWJvdmVDb2xvclwiXSA9IFwic2FGaWxsQWJvdmVDb2xvclwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FGaWxsQmVsb3dDb2xvclwiXSA9IFwic2FGaWxsQmVsb3dDb2xvclwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FGaWxsQ29sb3JcIl0gPSBcInNhRmlsbENvbG9yXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYUZvZ0JHQ29sb3JcIl0gPSBcInNhRm9nQkdDb2xvclwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FGb2dEZXNhdHVyYXRpb25XaXRob3V0U2VsZWN0aW9uXCJdID0gXCJzYUZvZ0Rlc2F0dXJhdGlvbldpdGhvdXRTZWxlY3Rpb25cIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhRm9nRGVzYXR1cmF0aW9uV2l0aFNlbGVjdGlvblwiXSA9IFwic2FGb2dEZXNhdHVyYXRpb25XaXRoU2VsZWN0aW9uXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYUZvbnRcIl0gPSBcInNhRm9udFwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FGb250RmFtaWx5XCJdID0gXCJzYUZvbnRGYW1pbHlcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhRm9udFNpemVcIl0gPSBcInNhRm9udFNpemVcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhRm9udFN0eWxlXCJdID0gXCJzYUZvbnRTdHlsZVwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FGb250V2VpZ2h0XCJdID0gXCJzYUZvbnRXZWlnaHRcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhR2VvZ3JhcGhpY0FyZWFUeXBlXCJdID0gXCJzYUdlb2dyYXBoaWNBcmVhVHlwZVwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FIQWxpZ25cIl0gPSBcInNhSEFsaWduXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYUhhbG9Db2xvclwiXSA9IFwic2FIYWxvQ29sb3JcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhSGFsb0NvbG9yU2VsZWN0ZWRcIl0gPSBcInNhSGFsb0NvbG9yU2VsZWN0ZWRcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhSGFzRmlsbFwiXSA9IFwic2FIYXNGaWxsXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYUhhc0hhbG9cIl0gPSBcInNhSGFzSGFsb1wiO1xuICAgIC8vIERlcHJlY2F0ZWRcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhSGFzTGFiZWxcIl0gPSBcInNhSGFzTGFiZWxcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhSGFzU3Ryb2tlXCJdID0gXCJzYUhhc1N0cm9rZVwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FIZWlnaHRcIl0gPSBcInNhSGVpZ2h0XCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYUhlaWdodEhlYWRlclwiXSA9IFwic2FIZWlnaHRIZWFkZXJcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhSGlnaGxpZ2h0TGVnZW5kXCJdID0gXCJzYUhpZ2hsaWdodExlZ2VuZFwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FIbmF4aXNcIl0gPSBcInNhSG5heGlzXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYUhubGFiZWxcIl0gPSBcInNhSG5sYWJlbFwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FJblRvb2x0aXBcIl0gPSBcInNhSW5Ub29sdGlwXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYUxpbmVFbmRcIl0gPSBcInNhTGluZUVuZFwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FMaW5lRW5kU2l6ZVwiXSA9IFwic2FMaW5lRW5kU2l6ZVwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FMaW5lSW50ZXJwb2xhdGlvblwiXSA9IFwic2FMaW5lSW50ZXJwb2xhdGlvblwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FMaW5lTWFya2VyUG9zaXRpb25cIl0gPSBcInNhTGluZU1hcmtlclBvc2l0aW9uXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYUxpbmVQYXR0ZXJuXCJdID0gXCJzYUxpbmVQYXR0ZXJuXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYUxpbmVQYXR0ZXJuT25seVwiXSA9IFwic2FMaW5lUGF0dGVybk9ubHlcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhTGluZVZpc2liaWxpdHlcIl0gPSBcInNhTGluZVZpc2liaWxpdHlcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhTWFwXCJdID0gXCJzYU1hcFwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FNYXBTdHlsZVwiXSA9IFwic2FNYXBTdHlsZVwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FNYXJnaW5cIl0gPSBcInNhTWFyZ2luXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYU1hcmdpblRvcFwiXSA9IFwic2FNYXJnaW5Ub3BcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhTWFyZ2luUmlnaHRcIl0gPSBcInNhTWFyZ2luUmlnaHRcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhTWFyZ2luQm90dG9tXCJdID0gXCJzYU1hcmdpbkJvdHRvbVwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FNYXJnaW5MZWZ0XCJdID0gXCJzYU1hcmdpbkxlZnRcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhTWFya0NvbG9yXCJdID0gXCJzYU1hcmtDb2xvclwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FNYXJrVHJhbnNwYXJlbmN5XCJdID0gXCJzYU1hcmtUcmFuc3BhcmVuY3lcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhTWFya0xhYmVsc1Nob3dcIl0gPSBcInNhTWFya0xhYmVsc1Nob3dcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhUnVubmluZ09yZGVyTGFiZWxzU2hvd1wiXSA9IFwic2FSdW5uaW5nT3JkZXJMYWJlbHNTaG93XCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYU1hcmtMYWJlbHNNb2RlXCJdID0gXCJzYU1hcmtMYWJlbHNNb2RlXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYU1hcmtMYWJlbHNDdWxsXCJdID0gXCJzYU1hcmtMYWJlbHNDdWxsXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYU1hcmtMYWJlbHNMaW5lRW5kRmlyc3RcIl0gPSBcInNhTWFya0xhYmVsc0xpbmVFbmRGaXJzdFwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FNYXJrTGFiZWxzTGluZUVuZExhc3RcIl0gPSBcInNhTWFya0xhYmVsc0xpbmVFbmRMYXN0XCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYU1hcmtMYWJlbHNSYW5nZU1pblwiXSA9IFwic2FNYXJrTGFiZWxzUmFuZ2VNaW5cIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhTWFya0xhYmVsc1JhbmdlTWF4XCJdID0gXCJzYU1hcmtMYWJlbHNSYW5nZU1heFwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FNYXJrTGFiZWxzUmFuZ2VTY29wZVwiXSA9IFwic2FNYXJrTGFiZWxzUmFuZ2VTY29wZVwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FNYXJrTGFiZWxzUmFuZ2VGaWVsZFwiXSA9IFwic2FNYXJrTGFiZWxzUmFuZ2VGaWVsZFwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FNYXJrTWFya2Vyc01vZGVcIl0gPSBcInNhTWFya01hcmtlcnNNb2RlXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYU1heEhlaWdodFwiXSA9IFwic2FNYXhIZWlnaHRcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhTWF4Rm9udFNpemVcIl0gPSBcInNhTWF4Rm9udFNpemVcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhTWF4U3Ryb2tlV2lkdGhcIl0gPSBcInNhTWF4U3Ryb2tlV2lkdGhcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhTWF4V2lkdGhcIl0gPSBcInNhTWF4V2lkdGhcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhTWlkU3Ryb2tlV2lkdGhcIl0gPSBcInNhTWlkU3Ryb2tlV2lkdGhcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhTWluSGVpZ2h0XCJdID0gXCJzYU1pbkhlaWdodFwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FNaW5Gb250U2l6ZVwiXSA9IFwic2FNaW5Gb250U2l6ZVwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FNaW5MZW5ndGhcIl0gPSBcInNhTWluTGVuZ3RoXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYU1pbk1hcFNpemVcIl0gPSBcInNhTWluTWFwU2l6ZVwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FNaW5TaXplXCJdID0gXCJzYU1pblNpemVcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhTWluU3Ryb2tlV2lkdGhcIl0gPSBcInNhTWluU3Ryb2tlV2lkdGhcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhTWluV2lkdGhcIl0gPSBcInNhTWluV2lkdGhcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhTm9uaGlnaGxpZ2h0Q29sb3JcIl0gPSBcInNhTm9uaGlnaGxpZ2h0Q29sb3JcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhT21pdE9uU3BlY2lhbFwiXSA9IFwic2FPbWl0T25TcGVjaWFsXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYU9wYWNpdHlcIl0gPSBcInNhT3BhY2l0eVwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FPcmllbnRhdGlvblwiXSA9IFwic2FPcmllbnRhdGlvblwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FQYWRkaW5nXCJdID0gXCJzYVBhZGRpbmdcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhUGFkZGluZ1RvcFwiXSA9IFwic2FQYWRkaW5nVG9wXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYVBhZGRpbmdSaWdodFwiXSA9IFwic2FQYWRkaW5nUmlnaHRcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhUGFkZGluZ0JvdHRvbVwiXSA9IFwic2FQYWRkaW5nQm90dG9tXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYVBhZGRpbmdMZWZ0XCJdID0gXCJzYVBhZGRpbmdMZWZ0XCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYVBhbGV0dGVcIl0gPSBcInNhUGFsZXR0ZVwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FSZW5kZXJGb2xkUmV2ZXJzZWRcIl0gPSBcInNhUmVuZGVyRm9sZFJldmVyc2VkXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYVJldmVyc2VQYWxldHRlXCJdID0gXCJzYVJldmVyc2VQYWxldHRlXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYVJvdW5kaW5nXCJdID0gXCJzYVJvdW5kaW5nXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYVJvd0hvcml6TGV2ZWxzXCJdID0gXCJzYVJvd0hvcml6TGV2ZWxzXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYVJvd0hvcml6V2lkdGhcIl0gPSBcInNhUm93SG9yaXpXaWR0aFwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FSb3dMZXZlbHNcIl0gPSBcInNhUm93TGV2ZWxzXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYVJvd1ZlcnRXaWR0aFwiXSA9IFwic2FSb3dWZXJ0V2lkdGhcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhU2VwYXJhdG9yXCJdID0gXCJzYVNlcGFyYXRvclwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FTaGFwZVwiXSA9IFwic2FTaGFwZVwiO1xuICAgIC8vIERlcHJlY2F0ZWRcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhU2hvd0xhYmVsc1wiXSA9IFwic2FTaG93TGFiZWxzXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYVNpemVcIl0gPSBcInNhU2l6ZVwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FTaXplQmFyXCJdID0gXCJzYVNpemVCYXJcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhU21hcnRBdXRvQWxpZ25tZW50XCJdID0gXCJzYVNtYXJ0QXV0b0FsaWdubWVudFwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FTcGFjZVwiXSA9IFwic2FTcGFjZVwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FTdHJva2VDb2xvclwiXSA9IFwic2FTdHJva2VDb2xvclwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FTdHJva2VTaXplXCJdID0gXCJzYVN0cm9rZVNpemVcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhU3VidGl0bGVcIl0gPSBcInNhU3VidGl0bGVcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhVGV4dEFsaWduXCJdID0gXCJzYVRleHRBbGlnblwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FUZXh0QWxpZ25EZWZhdWx0XCJdID0gXCJzYVRleHRBbGlnbkRlZmF1bHRcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhVGV4dERlY29yYXRpb25cIl0gPSBcInNhVGV4dERlY29yYXRpb25cIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhVGV4dEluZGVudFwiXSA9IFwic2FUZXh0SW5kZW50XCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYVRleHRPcmllbnRhdGlvblwiXSA9IFwic2FUZXh0T3JpZW50YXRpb25cIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhVGV4dEZvcm1hdFwiXSA9IFwic2FUZXh0Rm9ybWF0XCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYVRpY2tDb2xvclwiXSA9IFwic2FUaWNrQ29sb3JcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhVGlja0xlbmd0aFwiXSA9IFwic2FUaWNrTGVuZ3RoXCI7XG4gICAgLy8gRGVwcmVjYXRlZFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FUaWNrU3BhY2luZ1wiXSA9IFwic2FUaWNrU3BhY2luZ1wiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FUaXRsZVwiXSA9IFwic2FUaXRsZVwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FUb3RhbExhYmVsXCJdID0gXCJzYVRvdGFsTGFiZWxcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhVkFsaWduXCJdID0gXCJzYVZBbGlnblwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FWZXJ0aWNhbEFsaWduXCJdID0gXCJzYVZlcnRpY2FsQWxpZ25cIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhVmVydGljYWxBbGlnbkRlZmF1bHRcIl0gPSBcInNhVmVydGljYWxBbGlnbkRlZmF1bHRcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhVm5heGlzXCJdID0gXCJzYVZuYXhpc1wiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FWbmxhYmVsXCJdID0gXCJzYVZubGFiZWxcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhV2Fybk9uU3BlY2lhbFwiXSA9IFwic2FXYXJuT25TcGVjaWFsXCI7XG4gICAgLy8gXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYVdhc2hvdXRcIl0gPSBcInNhV2FzaG91dFwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FXaGlza2VyRW5kXCJdID0gXCJzYVdoaXNrZXJFbmRcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhV2hpc2tlclN0cm9rZUNvbG9yXCJdID0gXCJzYVdoaXNrZXJTdHJva2VDb2xvclwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FXaGlza2VyU3Ryb2tlU2l6ZVwiXSA9IFwic2FXaGlza2VyU3Ryb2tlU2l6ZVwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FXaWR0aFwiXSA9IFwic2FXaWR0aFwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FXaWR0aEhlYWRlclwiXSA9IFwic2FXaWR0aEhlYWRlclwiO1xuICAgIC8vIFxuICAgIFN0eWxlQXR0cmlidXRlW1wic2FXcmFwXCJdID0gXCJzYVdyYXBcIjtcbiAgICAvLyBcbiAgICBTdHlsZUF0dHJpYnV0ZVtcInNhWm9vbVwiXSA9IFwic2Fab29tXCI7XG4gICAgLy8gU3BlY2lhbCBhdHRyaWJ1dGVzIHVzZWQgZm9yIG1hdGNoaW5nXG4gICAgU3R5bGVBdHRyaWJ1dGVbXCJzYU5vbmVcIl0gPSBcInNhTm9uZVwiO1xuICAgIC8vIFNwZWNpYWwgYXR0cmlidXRlcyB1c2VkIGZvciBtYXRjaGluZ1xuICAgIFN0eWxlQXR0cmlidXRlW1wic2FBbnlcIl0gPSBcInNhQW55XCI7XG59KShTdHlsZUF0dHJpYnV0ZSA9IGV4cG9ydHMuU3R5bGVBdHRyaWJ1dGUgfHwgKGV4cG9ydHMuU3R5bGVBdHRyaWJ1dGUgPSB7fSkpO1xuLy8gbG93ZXN0IGJpdCBvZiBlbnVtIHZhbHVlIGRlbm90ZXMgdHdvLXRvbmUgc3R5bGVzOyBuZXdseSBhZGRlZCBzdHlsZXMgc2hvdWxkIGZvbGxvdyB0aGlzIHBhdHRlcm4uXG52YXIgQm94cGxvdFN0eWxlO1xuKGZ1bmN0aW9uIChCb3hwbG90U3R5bGUpIHtcbiAgICAvLyBtYXNrIGZvciBjaGVja2luZyBpZiBhIHN0eWxlIGlzIHR3by10b25lXG4gICAgQm94cGxvdFN0eWxlW1wiQm94cGxvdFN0eWxlVHdvVG9uZVwiXSA9IFwidHdvLXRvbmVcIjtcbiAgICAvLyBcbiAgICBCb3hwbG90U3R5bGVbXCJCb3hwbG90U3R5bGVNb2Rlcm5cIl0gPSBcIm1vZGVyblwiO1xuICAgIC8vIFxuICAgIEJveHBsb3RTdHlsZVtcIkJveHBsb3RTdHlsZUdsYXNzXCJdID0gXCJnbGFzc1wiO1xuICAgIC8vIFxuICAgIEJveHBsb3RTdHlsZVtcIkJveHBsb3RTdHlsZUNsYXNzaWNcIl0gPSBcImNsYXNzaWNcIjtcbiAgICAvLyBcbiAgICBCb3hwbG90U3R5bGVbXCJCb3hwbG90U3R5bGVDbGFzc2ljVHdvVG9uZVwiXSA9IFwiY2xhc3NpYy10d28tdG9uZVwiO1xufSkoQm94cGxvdFN0eWxlID0gZXhwb3J0cy5Cb3hwbG90U3R5bGUgfHwgKGV4cG9ydHMuQm94cGxvdFN0eWxlID0ge30pKTtcbi8vIHVzZWQgZm9yIGJveHBsb3RzIGFuZCBwcmVkaWN0aW9uIGJhbmQgd2hpc2tlcnNcbnZhciBXaGlza2VyRW5kO1xuKGZ1bmN0aW9uIChXaGlza2VyRW5kKSB7XG4gICAgLy8gXG4gICAgV2hpc2tlckVuZFtcIldoaXNrZXJFbmROb25lXCJdID0gXCJub25lXCI7XG4gICAgLy8gXG4gICAgV2hpc2tlckVuZFtcIldoaXNrZXJFbmRTbWFsbFwiXSA9IFwic21hbGxcIjtcbiAgICAvLyBcbiAgICBXaGlza2VyRW5kW1wiV2hpc2tlckVuZExhcmdlXCJdID0gXCJsYXJnZVwiO1xufSkoV2hpc2tlckVuZCA9IGV4cG9ydHMuV2hpc2tlckVuZCB8fCAoZXhwb3J0cy5XaGlza2VyRW5kID0ge30pKTtcbi8vIFxudmFyIFN0eWxlRWxlbWVudDtcbihmdW5jdGlvbiAoU3R5bGVFbGVtZW50KSB7XG4gICAgLy8gXG4gICAgU3R5bGVFbGVtZW50W1wiZWxlbWVudEF4aXNcIl0gPSBcImVsZW1lbnRBeGlzXCI7XG4gICAgLy8gXG4gICAgU3R5bGVFbGVtZW50W1wiZWxlbWVudENlbGxcIl0gPSBcImVsZW1lbnRDZWxsXCI7XG4gICAgLy8gXG4gICAgU3R5bGVFbGVtZW50W1wiZWxlbWVudERhdGFsYWJlbFwiXSA9IFwiZWxlbWVudERhdGFsYWJlbFwiO1xuICAgIC8vIFxuICAgIFN0eWxlRWxlbWVudFtcImVsZW1lbnREcm9wc3BvdFwiXSA9IFwiZWxlbWVudERyb3BzcG90XCI7XG4gICAgLy8gXG4gICAgU3R5bGVFbGVtZW50W1wiZWxlbWVudEhlYWRlclwiXSA9IFwiZWxlbWVudEhlYWRlclwiO1xuICAgIC8vIFxuICAgIFN0eWxlRWxlbWVudFtcImVsZW1lbnRGaWVsZExhYmVsXCJdID0gXCJlbGVtZW50RmllbGRMYWJlbFwiO1xuICAgIC8vIFxuICAgIFN0eWxlRWxlbWVudFtcImVsZW1lbnRGaWVsZExhYmVsRGVjb3JhdGlvblwiXSA9IFwiZWxlbWVudEZpZWxkTGFiZWxEZWNvcmF0aW9uXCI7XG4gICAgLy8gXG4gICAgU3R5bGVFbGVtZW50W1wiZWxlbWVudEZpZWxkTGFiZWxTcGFubmVyXCJdID0gXCJlbGVtZW50RmllbGRMYWJlbFNwYW5uZXJcIjtcbiAgICAvLyBcbiAgICBTdHlsZUVsZW1lbnRbXCJlbGVtZW50TGFiZWxcIl0gPSBcImVsZW1lbnRMYWJlbFwiO1xuICAgIC8vIFxuICAgIFN0eWxlRWxlbWVudFtcImVsZW1lbnRNYXJrXCJdID0gXCJlbGVtZW50TWFya1wiO1xuICAgIC8vIFxuICAgIFN0eWxlRWxlbWVudFtcImVsZW1lbnRQYW5lXCJdID0gXCJlbGVtZW50UGFuZVwiO1xuICAgIC8vIFxuICAgIFN0eWxlRWxlbWVudFtcImVsZW1lbnRUYWJsZVwiXSA9IFwiZWxlbWVudFRhYmxlXCI7XG4gICAgLy8gXG4gICAgU3R5bGVFbGVtZW50W1wiZWxlbWVudFdvcmtzaGVldFwiXSA9IFwiZWxlbWVudFdvcmtzaGVldFwiO1xuICAgIC8vIFxuICAgIFN0eWxlRWxlbWVudFtcImVsZW1lbnRCYXNlc2hlZXRcIl0gPSBcImVsZW1lbnRCYXNlc2hlZXRcIjtcbiAgICAvLyBcbiAgICBTdHlsZUVsZW1lbnRbXCJlbGVtZW50RGFzaGJvYXJkXCJdID0gXCJlbGVtZW50RGFzaGJvYXJkXCI7XG4gICAgLy8gXG4gICAgU3R5bGVFbGVtZW50W1wiZWxlbWVudFN0b3J5Ym9hcmRcIl0gPSBcImVsZW1lbnRTdG9yeWJvYXJkXCI7XG4gICAgLy8gXG4gICAgU3R5bGVFbGVtZW50W1wiZWxlbWVudENhcHRpb25cIl0gPSBcImVsZW1lbnRDYXB0aW9uXCI7XG4gICAgLy8gXG4gICAgU3R5bGVFbGVtZW50W1wiZWxlbWVudERyb3BsaW5lXCJdID0gXCJlbGVtZW50RHJvcGxpbmVcIjtcbiAgICAvLyBcbiAgICBTdHlsZUVsZW1lbnRbXCJlbGVtZW50UmVmbGluZVwiXSA9IFwiZWxlbWVudFJlZmxpbmVcIjtcbiAgICAvLyBcbiAgICBTdHlsZUVsZW1lbnRbXCJlbGVtZW50UmVmQmFuZFwiXSA9IFwiZWxlbWVudFJlZkJhbmRcIjtcbiAgICAvLyBcbiAgICBTdHlsZUVsZW1lbnRbXCJlbGVtZW50UmVmQm94cGxvdFwiXSA9IFwiZWxlbWVudFJlZkJveHBsb3RcIjtcbiAgICAvLyBcbiAgICBTdHlsZUVsZW1lbnRbXCJlbGVtZW50R3JpZGxpbmVcIl0gPSBcImVsZW1lbnRHcmlkbGluZVwiO1xuICAgIC8vIFxuICAgIFN0eWxlRWxlbWVudFtcImVsZW1lbnRaZXJvbGluZVwiXSA9IFwiZWxlbWVudFplcm9saW5lXCI7XG4gICAgLy8gXG4gICAgU3R5bGVFbGVtZW50W1wiZWxlbWVudFRyZW5kbGluZVwiXSA9IFwiZWxlbWVudFRyZW5kbGluZVwiO1xuICAgIC8vIFxuICAgIFN0eWxlRWxlbWVudFtcImVsZW1lbnRUYWJsZURpdlwiXSA9IFwiZWxlbWVudFRhYmxlRGl2XCI7XG4gICAgLy8gXG4gICAgU3R5bGVFbGVtZW50W1wiZWxlbWVudEhlYWRlckRpdlwiXSA9IFwiZWxlbWVudEhlYWRlckRpdlwiO1xuICAgIC8vIFxuICAgIFN0eWxlRWxlbWVudFtcImVsZW1lbnRNYXBwZWRJbWFnZVwiXSA9IFwiZWxlbWVudE1hcHBlZEltYWdlXCI7XG4gICAgLy8gXG4gICAgU3R5bGVFbGVtZW50W1wiZWxlbWVudEFjdGlvblwiXSA9IFwiZWxlbWVudEFjdGlvblwiO1xuICAgIC8vIFxuICAgIFN0eWxlRWxlbWVudFtcImVsZW1lbnRUaXRsZVwiXSA9IFwiZWxlbWVudFRpdGxlXCI7XG4gICAgLy8gXG4gICAgU3R5bGVFbGVtZW50W1wiZWxlbWVudExlZ2VuZFwiXSA9IFwiZWxlbWVudExlZ2VuZFwiO1xuICAgIC8vIFxuICAgIFN0eWxlRWxlbWVudFtcImVsZW1lbnRMZWdlbmRUaXRsZVwiXSA9IFwiZWxlbWVudExlZ2VuZFRpdGxlXCI7XG4gICAgLy8gXG4gICAgU3R5bGVFbGVtZW50W1wiZWxlbWVudExlZ2VuZFRpdGxlVGV4dFwiXSA9IFwiZWxlbWVudExlZ2VuZFRpdGxlVGV4dFwiO1xuICAgIC8vIFxuICAgIFN0eWxlRWxlbWVudFtcImVsZW1lbnRBeGlzVGl0bGVcIl0gPSBcImVsZW1lbnRBeGlzVGl0bGVcIjtcbiAgICAvLyBcbiAgICBTdHlsZUVsZW1lbnRbXCJlbGVtZW50QW5ub3RhdGlvblwiXSA9IFwiZWxlbWVudEFubm90YXRpb25cIjtcbiAgICAvLyBcbiAgICBTdHlsZUVsZW1lbnRbXCJlbGVtZW50RGFzaFRpdGxlXCJdID0gXCJlbGVtZW50RGFzaFRpdGxlXCI7XG4gICAgLy8gXG4gICAgU3R5bGVFbGVtZW50W1wiZWxlbWVudERhc2hTdWJ0aXRsZVwiXSA9IFwiZWxlbWVudERhc2hTdWJ0aXRsZVwiO1xuICAgIC8vIFxuICAgIFN0eWxlRWxlbWVudFtcImVsZW1lbnREYXNoVGV4dFwiXSA9IFwiZWxlbWVudERhc2hUZXh0XCI7XG4gICAgLy8gXG4gICAgU3R5bGVFbGVtZW50W1wiZWxlbWVudERhc2hab25lXCJdID0gXCJlbGVtZW50RGFzaFpvbmVcIjtcbiAgICAvLyBcbiAgICBTdHlsZUVsZW1lbnRbXCJlbGVtZW50RGFzaENvbnRhaW5lclwiXSA9IFwiZWxlbWVudERhc2hDb250YWluZXJcIjtcbiAgICAvLyBcbiAgICBTdHlsZUVsZW1lbnRbXCJlbGVtZW50U2Nyb2xsYmFyXCJdID0gXCJlbGVtZW50U2Nyb2xsYmFyXCI7XG4gICAgLy8gU3RhdGljIG9uL29mZiBtYXAgbGF5ZXJzXG4gICAgU3R5bGVFbGVtZW50W1wiZWxlbWVudE1hcExheWVyXCJdID0gXCJlbGVtZW50TWFwTGF5ZXJcIjtcbiAgICAvLyBDb250YWlucyB3YXNob3V0XG4gICAgU3R5bGVFbGVtZW50W1wiZWxlbWVudE1hcFwiXSA9IFwiZWxlbWVudE1hcFwiO1xuICAgIC8vIEluaXRpYWxseSBmb3IgVXJiYW5NYXBwaW5nL0NsYXJpdGFzIGRhdGFcbiAgICBTdHlsZUVsZW1lbnRbXCJlbGVtZW50TWFwRGF0YUxheWVyXCJdID0gXCJlbGVtZW50TWFwRGF0YUxheWVyXCI7XG4gICAgLy8gXG4gICAgU3R5bGVFbGVtZW50W1wiZWxlbWVudFF1aWNrRmlsdGVyXCJdID0gXCJlbGVtZW50UXVpY2tGaWx0ZXJcIjtcbiAgICAvLyBcbiAgICBTdHlsZUVsZW1lbnRbXCJlbGVtZW50UXVpY2tGaWx0ZXJUaXRsZVwiXSA9IFwiZWxlbWVudFF1aWNrRmlsdGVyVGl0bGVcIjtcbiAgICAvLyBcbiAgICBTdHlsZUVsZW1lbnRbXCJlbGVtZW50UGFyYW1ldGVyQ3RybFwiXSA9IFwiZWxlbWVudFBhcmFtZXRlckN0cmxcIjtcbiAgICAvLyBcbiAgICBTdHlsZUVsZW1lbnRbXCJlbGVtZW50UGFyYW1ldGVyQ3RybFRpdGxlXCJdID0gXCJlbGVtZW50UGFyYW1ldGVyQ3RybFRpdGxlXCI7XG4gICAgLy8gXG4gICAgU3R5bGVFbGVtZW50W1wiZWxlbWVudFBhZ2VDYXJkVGl0bGVcIl0gPSBcImVsZW1lbnRQYWdlQ2FyZFRpdGxlXCI7XG4gICAgLy8gXG4gICAgU3R5bGVFbGVtZW50W1wiZWxlbWVudFN0b3J5RGVzY3JpcHRpb25cIl0gPSBcImVsZW1lbnRTdG9yeURlc2NyaXB0aW9uXCI7XG4gICAgLy8gXG4gICAgU3R5bGVFbGVtZW50W1wiZWxlbWVudFN0b3J5UG9pbnRDYXB0aW9uXCJdID0gXCJlbGVtZW50U3RvcnlQb2ludENhcHRpb25cIjtcbiAgICAvLyBcbiAgICBTdHlsZUVsZW1lbnRbXCJlbGVtZW50U3RvcnlUaXRsZVwiXSA9IFwiZWxlbWVudFN0b3J5VGl0bGVcIjtcbiAgICAvLyBcbiAgICBTdHlsZUVsZW1lbnRbXCJlbGVtZW50VG9vbHRpcFwiXSA9IFwiZWxlbWVudFRvb2x0aXBcIjtcbiAgICAvLyBcbiAgICBTdHlsZUVsZW1lbnRbXCJlbGVtZW50QWxsXCJdID0gXCJlbGVtZW50QWxsXCI7XG4gICAgLy8gXG4gICAgU3R5bGVFbGVtZW50W1wiZWxlbWVudFBhZ2VDYXJkQm9keVwiXSA9IFwiZWxlbWVudFBhZ2VDYXJkQm9keVwiO1xuICAgIC8vIFxuICAgIFN0eWxlRWxlbWVudFtcImVsZW1lbnREYXRhSGlnaGxpZ2h0ZXJcIl0gPSBcImVsZW1lbnREYXRhSGlnaGxpZ2h0ZXJcIjtcbiAgICAvLyBcbiAgICBTdHlsZUVsZW1lbnRbXCJlbGVtZW50RGF0YUhpZ2hsaWdodGVyVGl0bGVcIl0gPSBcImVsZW1lbnREYXRhSGlnaGxpZ2h0ZXJUaXRsZVwiO1xuICAgIC8vIFNwZWNpYWwgZWxlbWVudHMgdXNlZCBmb3IgbWF0Y2hpbmcgYW5kIG9yZ2FuaXphdGlvblxuICAgIFN0eWxlRWxlbWVudFtcImVsZW1lbnROb25lXCJdID0gXCJlbGVtZW50Tm9uZVwiO1xuICAgIC8vIFNwZWNpYWwgZWxlbWVudHMgdXNlZCBmb3IgbWF0Y2hpbmcgYW5kIG9yZ2FuaXphdGlvblxuICAgIFN0eWxlRWxlbWVudFtcImVsZW1lbnRBbnlcIl0gPSBcImVsZW1lbnRBbnlcIjtcbiAgICAvLyBTcGVjaWFsIGVsZW1lbnRzIHVzZWQgZm9yIG1hdGNoaW5nIGFuZCBvcmdhbml6YXRpb25cbiAgICBTdHlsZUVsZW1lbnRbXCJlbGVtZW50Um9vdFwiXSA9IFwiZWxlbWVudFJvb3RcIjtcbn0pKFN0eWxlRWxlbWVudCA9IGV4cG9ydHMuU3R5bGVFbGVtZW50IHx8IChleHBvcnRzLlN0eWxlRWxlbWVudCA9IHt9KSk7XG4vLyBEbyBub3QgbWVzcyB3aXRoIHRoZXNlIHZhbHVlcy4gVGhleSBhcmUgc29tZXRpbWVzIHVzZWQgYXMgYXJyYXkgaW5kZXhlcy9ib3VuZHNcbnZhciBTdHlsZURhdGFDbGFzcztcbihmdW5jdGlvbiAoU3R5bGVEYXRhQ2xhc3MpIHtcbiAgICAvLyBcbiAgICBTdHlsZURhdGFDbGFzc1tcImRjTm9ybWFsXCJdID0gXCJkY05vcm1hbFwiO1xuICAgIC8vIFxuICAgIFN0eWxlRGF0YUNsYXNzW1wiZGNUb3RhbFwiXSA9IFwiZGNUb3RhbFwiO1xuICAgIC8vIFxuICAgIFN0eWxlRGF0YUNsYXNzW1wiZGNTdWJ0b3RhbFwiXSA9IFwiZGNTdWJ0b3RhbFwiO1xuICAgIC8vIFxuICAgIFN0eWxlRGF0YUNsYXNzW1wiZGNDT1VOVFwiXSA9IFwiZGNDT1VOVFwiO1xufSkoU3R5bGVEYXRhQ2xhc3MgPSBleHBvcnRzLlN0eWxlRGF0YUNsYXNzIHx8IChleHBvcnRzLlN0eWxlRGF0YUNsYXNzID0ge30pKTtcbi8vIFxudmFyIFN0eWxlRmllbGRTY29wZTtcbihmdW5jdGlvbiAoU3R5bGVGaWVsZFNjb3BlKSB7XG4gICAgLy8gXG4gICAgU3R5bGVGaWVsZFNjb3BlW1wiZnNOb25lXCJdID0gXCJmc05vbmVcIjtcbiAgICAvLyBcbiAgICBTdHlsZUZpZWxkU2NvcGVbXCJmc1Jvd3NcIl0gPSBcImZzUm93c1wiO1xuICAgIC8vIFxuICAgIFN0eWxlRmllbGRTY29wZVtcImZzQ29sc1wiXSA9IFwiZnNDb2xzXCI7XG59KShTdHlsZUZpZWxkU2NvcGUgPSBleHBvcnRzLlN0eWxlRmllbGRTY29wZSB8fCAoZXhwb3J0cy5TdHlsZUZpZWxkU2NvcGUgPSB7fSkpO1xuLy8gXG52YXIgU3R5bGVTd2F0Y2g7XG4oZnVuY3Rpb24gKFN0eWxlU3dhdGNoKSB7XG4gICAgLy8gXG4gICAgU3R5bGVTd2F0Y2hbXCJzc1Vuc3BlY2lmaWVkXCJdID0gXCJzc1Vuc3BlY2lmaWVkXCI7XG4gICAgLy8gXG4gICAgU3R5bGVTd2F0Y2hbXCJzc0xpZ2h0XCJdID0gXCJzc0xpZ2h0XCI7XG4gICAgLy8gXG4gICAgU3R5bGVTd2F0Y2hbXCJzc0RhcmtcIl0gPSBcInNzRGFya1wiO1xufSkoU3R5bGVTd2F0Y2ggPSBleHBvcnRzLlN0eWxlU3dhdGNoIHx8IChleHBvcnRzLlN0eWxlU3dhdGNoID0ge30pKTtcbi8vIFxudmFyIFRhYmxlYXVGb250U3R5bGU7XG4oZnVuY3Rpb24gKFRhYmxlYXVGb250U3R5bGUpIHtcbiAgICAvLyBcbiAgICBUYWJsZWF1Rm9udFN0eWxlW1wiTm9ybWFsU3R5bGVcIl0gPSBcImZvbnQtc3R5bGUtbm9ybWFsXCI7XG4gICAgLy8gXG4gICAgVGFibGVhdUZvbnRTdHlsZVtcIkl0YWxpY1wiXSA9IFwiZm9udC1zdHlsZS1pdGFsaWNcIjtcbn0pKFRhYmxlYXVGb250U3R5bGUgPSBleHBvcnRzLlRhYmxlYXVGb250U3R5bGUgfHwgKGV4cG9ydHMuVGFibGVhdUZvbnRTdHlsZSA9IHt9KSk7XG4vLyBVbnN1cHBvcnRlZCBmb3IgQmV0c3lcbnZhciBUZXh0RGVjb3JhdGlvbjtcbihmdW5jdGlvbiAoVGV4dERlY29yYXRpb24pIHtcbiAgICAvLyBcbiAgICBUZXh0RGVjb3JhdGlvbltcIk5vRGVjb3JhdGlvblwiXSA9IFwidGV4dC1kZWNvcmF0aW9uLW5vbmVcIjtcbiAgICAvLyBcbiAgICBUZXh0RGVjb3JhdGlvbltcIlVuZGVybGluZVwiXSA9IFwidGV4dC1kZWNvcmF0aW9uLXVuZGVybGluZVwiO1xuICAgIC8vIG5vdCB5ZXQgc3VwcG9ydGVkXG4gICAgVGV4dERlY29yYXRpb25bXCJPdmVybGluZVwiXSA9IFwidGV4dC1kZWNvcmF0aW9uLW92ZXJsaW5lXCI7XG4gICAgLy8gXG4gICAgVGV4dERlY29yYXRpb25bXCJTdHJpa2V0aHJvdWdoXCJdID0gXCJ0ZXh0LWRlY29yYXRpb24tc3RyaWtldGhyb3VnaFwiO1xufSkoVGV4dERlY29yYXRpb24gPSBleHBvcnRzLlRleHREZWNvcmF0aW9uIHx8IChleHBvcnRzLlRleHREZWNvcmF0aW9uID0ge30pKTtcbi8vIFxudmFyIEZvbnRXZWlnaHQ7XG4oZnVuY3Rpb24gKEZvbnRXZWlnaHQpIHtcbiAgICAvLyBcbiAgICBGb250V2VpZ2h0W1wiTm9ybWFsV2VpZ2h0XCJdID0gXCJmb250LXdlaWdodC1ub3JtYWxcIjtcbiAgICAvLyBcbiAgICBGb250V2VpZ2h0W1wiQm9sZFwiXSA9IFwiZm9udC13ZWlnaHQtYm9sZFwiO1xufSkoRm9udFdlaWdodCA9IGV4cG9ydHMuRm9udFdlaWdodCB8fCAoZXhwb3J0cy5Gb250V2VpZ2h0ID0ge30pKTtcbi8vIFxudmFyIFRleHRPcmllbnQ7XG4oZnVuY3Rpb24gKFRleHRPcmllbnQpIHtcbiAgICAvLyBcbiAgICBUZXh0T3JpZW50W1wiVE9fQXV0b1wiXSA9IFwidGV4dC1vcmllbnQtYXV0b1wiO1xuICAgIC8vIFxuICAgIFRleHRPcmllbnRbXCJUT19Ib3J6XCJdID0gXCJ0ZXh0LW9yaWVudC1ob3Jpem9udGFsXCI7XG4gICAgLy8gXG4gICAgVGV4dE9yaWVudFtcIlRPX1ZlcnRVcFwiXSA9IFwidGV4dC1vcmllbnQtdmVydGljYWwtdXBcIjtcbiAgICAvLyBcbiAgICBUZXh0T3JpZW50W1wiVE9fVmVydERvd25cIl0gPSBcInRleHQtb3JpZW50LXZlcnRpY2FsLWRvd25cIjtcbn0pKFRleHRPcmllbnQgPSBleHBvcnRzLlRleHRPcmllbnQgfHwgKGV4cG9ydHMuVGV4dE9yaWVudCA9IHt9KSk7XG4vLyBcbnZhciBUZXh0QWxpZ247XG4oZnVuY3Rpb24gKFRleHRBbGlnbikge1xuICAgIC8vIFxuICAgIFRleHRBbGlnbltcIlRBX1N0YXJ0XCJdID0gXCJ0ZXh0LWFsaWduLXN0YXJ0XCI7XG4gICAgLy8gXG4gICAgVGV4dEFsaWduW1wiVEFfQ2VudGVyXCJdID0gXCJ0ZXh0LWFsaWduLWNlbnRlclwiO1xuICAgIC8vIFxuICAgIFRleHRBbGlnbltcIlRBX0VuZFwiXSA9IFwidGV4dC1hbGlnbi1lbmRcIjtcbn0pKFRleHRBbGlnbiA9IGV4cG9ydHMuVGV4dEFsaWduIHx8IChleHBvcnRzLlRleHRBbGlnbiA9IHt9KSk7XG4vLyBcbnZhciBUZXh0V3JhcE1vZGU7XG4oZnVuY3Rpb24gKFRleHRXcmFwTW9kZSkge1xuICAgIC8vIFxuICAgIFRleHRXcmFwTW9kZVtcIlRleHRXcmFwT2ZmXCJdID0gXCJ0ZXh0LXdyYXAtb2ZmXCI7XG4gICAgLy8gXG4gICAgVGV4dFdyYXBNb2RlW1wiVGV4dFdyYXBUcnVuY2F0ZVwiXSA9IFwidGV4dC13cmFwLXRydW5jYXRlXCI7XG4gICAgLy8gXG4gICAgVGV4dFdyYXBNb2RlW1wiVGV4dFdyYXBPblwiXSA9IFwidGV4dC13cmFwLW9uXCI7XG4gICAgLy8gXG4gICAgVGV4dFdyYXBNb2RlW1wiVGV4dFdyYXBBdXRvXCJdID0gXCJ0ZXh0LXdyYXAtYXV0b1wiO1xufSkoVGV4dFdyYXBNb2RlID0gZXhwb3J0cy5UZXh0V3JhcE1vZGUgfHwgKGV4cG9ydHMuVGV4dFdyYXBNb2RlID0ge30pKTtcbi8vIFxudmFyIFRleHRXaG9sZUxpbmVNb2RlO1xuKGZ1bmN0aW9uIChUZXh0V2hvbGVMaW5lTW9kZSkge1xuICAgIC8vIFxuICAgIFRleHRXaG9sZUxpbmVNb2RlW1wiVGV4dFdob2xlTGluZU9mZlwiXSA9IFwidGV4dC13aG9sZS1saW5lLW9mZlwiO1xuICAgIC8vIFxuICAgIFRleHRXaG9sZUxpbmVNb2RlW1wiVGV4dFdob2xlTGluZU9uXCJdID0gXCJ0ZXh0LXdob2xlLWxpbmUtb25cIjtcbiAgICAvLyBcbiAgICBUZXh0V2hvbGVMaW5lTW9kZVtcIlRleHRXaG9sZUxpbmVBdXRvXCJdID0gXCJ0ZXh0LXdob2xlLWxpbmUtYXV0b1wiO1xufSkoVGV4dFdob2xlTGluZU1vZGUgPSBleHBvcnRzLlRleHRXaG9sZUxpbmVNb2RlIHx8IChleHBvcnRzLlRleHRXaG9sZUxpbmVNb2RlID0ge30pKTtcbi8vIFxudmFyIFRleHRCcmVha01vZGU7XG4oZnVuY3Rpb24gKFRleHRCcmVha01vZGUpIHtcbiAgICAvLyBcbiAgICBUZXh0QnJlYWtNb2RlW1wiVGV4dEJyZWFrV2hpdGVzcGFjZU9ubHlcIl0gPSBcInRleHQtYnJlYWstd3Mtb25seVwiO1xuICAgIC8vIFxuICAgIFRleHRCcmVha01vZGVbXCJUZXh0QnJlYWtBdXRvXCJdID0gXCJ0ZXh0LWJyZWFrLWF1dG9cIjtcbn0pKFRleHRCcmVha01vZGUgPSBleHBvcnRzLlRleHRCcmVha01vZGUgfHwgKGV4cG9ydHMuVGV4dEJyZWFrTW9kZSA9IHt9KSk7XG4vLyB0eXBlIG9mIGFnZ3JlZ2F0aW9uXG52YXIgQWdnVHlwZTtcbihmdW5jdGlvbiAoQWdnVHlwZSkge1xuICAgIC8vIFxuICAgIEFnZ1R5cGVbXCJBR0dfU1VNXCJdID0gXCJzdW1cIjtcbiAgICAvLyBcbiAgICBBZ2dUeXBlW1wiQUdHX0FWR1wiXSA9IFwiYXZlcmFnZVwiO1xuICAgIC8vIFxuICAgIEFnZ1R5cGVbXCJBR0dfTUlOXCJdID0gXCJtaW5cIjtcbiAgICAvLyBcbiAgICBBZ2dUeXBlW1wiQUdHX01BWFwiXSA9IFwibWF4XCI7XG4gICAgLy8gXG4gICAgQWdnVHlwZVtcIkFHR19TVERFVlwiXSA9IFwic3RkLWRldlwiO1xuICAgIC8vIFxuICAgIEFnZ1R5cGVbXCJBR0dfU1RERVZQXCJdID0gXCJzdGQtZGV2LXBcIjtcbiAgICAvLyBcbiAgICBBZ2dUeXBlW1wiQUdHX1ZBUlwiXSA9IFwidmFyXCI7XG4gICAgLy8gXG4gICAgQWdnVHlwZVtcIkFHR19WQVJQXCJdID0gXCJ2YXItcFwiO1xuICAgIC8vIFxuICAgIEFnZ1R5cGVbXCJBR0dfQ09VTlRcIl0gPSBcImNvdW50XCI7XG4gICAgLy8gXG4gICAgQWdnVHlwZVtcIkFHR19DT1VOVERcIl0gPSBcImNvdW50LWRcIjtcbiAgICAvLyBcbiAgICBBZ2dUeXBlW1wiQUdHX01FRElBTlwiXSA9IFwibWVkaWFuXCI7XG4gICAgLy8gXG4gICAgQWdnVHlwZVtcIkFHR19BVFRSXCJdID0gXCJhdHRyXCI7XG4gICAgLy8gXG4gICAgQWdnVHlwZVtcIkFHR19OT05FXCJdID0gXCJub25lXCI7XG4gICAgLy8gXG4gICAgQWdnVHlwZVtcIkFHR19QRVJDRU5USUxFXCJdID0gXCJwZXJjZW50aWxlXCI7XG4gICAgLy8gXG4gICAgQWdnVHlwZVtcIkFHR19ZRUFSXCJdID0gXCJ5ZWFyXCI7XG4gICAgLy8gXG4gICAgQWdnVHlwZVtcIkFHR19RVFJcIl0gPSBcInF0clwiO1xuICAgIC8vIFxuICAgIEFnZ1R5cGVbXCJBR0dfTU9OVEhcIl0gPSBcIm1vbnRoXCI7XG4gICAgLy8gXG4gICAgQWdnVHlwZVtcIkFHR19EQVlcIl0gPSBcImRheVwiO1xuICAgIC8vIFxuICAgIEFnZ1R5cGVbXCJBR0dfSE9VUlwiXSA9IFwiaG91clwiO1xuICAgIC8vIFxuICAgIEFnZ1R5cGVbXCJBR0dfTUlOVVRFXCJdID0gXCJtaW51dGVcIjtcbiAgICAvLyBcbiAgICBBZ2dUeXBlW1wiQUdHX1NFQ09ORFwiXSA9IFwic2Vjb25kXCI7XG4gICAgLy8gXG4gICAgQWdnVHlwZVtcIkFHR19XRUVLXCJdID0gXCJ3ZWVrXCI7XG4gICAgLy8gXG4gICAgQWdnVHlwZVtcIkFHR19XRUVLREFZXCJdID0gXCJ3ZWVrZGF5XCI7XG4gICAgLy8gXG4gICAgQWdnVHlwZVtcIkFHR19NT05USFlFQVJcIl0gPSBcIm1vbnRoLXllYXJcIjtcbiAgICAvLyBcbiAgICBBZ2dUeXBlW1wiQUdHX01EWVwiXSA9IFwibWR5XCI7XG4gICAgLy8gXG4gICAgQWdnVHlwZVtcIkFHR19FTkRcIl0gPSBcImVuZFwiO1xuICAgIC8vIFxuICAgIEFnZ1R5cGVbXCJUUlVOQ19ZRUFSXCJdID0gXCJ0cnVuYy15ZWFyXCI7XG4gICAgLy8gXG4gICAgQWdnVHlwZVtcIlRSVU5DX1FUUlwiXSA9IFwidHJ1bmMtcXRyXCI7XG4gICAgLy8gXG4gICAgQWdnVHlwZVtcIlRSVU5DX01PTlRIXCJdID0gXCJ0cnVuYy1tb250aFwiO1xuICAgIC8vIFxuICAgIEFnZ1R5cGVbXCJUUlVOQ19XRUVLXCJdID0gXCJ0cnVuYy13ZWVrXCI7XG4gICAgLy8gXG4gICAgQWdnVHlwZVtcIlRSVU5DX0RBWVwiXSA9IFwidHJ1bmMtZGF5XCI7XG4gICAgLy8gXG4gICAgQWdnVHlwZVtcIlRSVU5DX0hPVVJcIl0gPSBcInRydW5jLWhvdXJcIjtcbiAgICAvLyBcbiAgICBBZ2dUeXBlW1wiVFJVTkNfTUlOVVRFXCJdID0gXCJ0cnVuYy1taW51dGVcIjtcbiAgICAvLyBcbiAgICBBZ2dUeXBlW1wiVFJVTkNfU0VDT05EXCJdID0gXCJ0cnVuYy1zZWNvbmRcIjtcbiAgICAvLyBcbiAgICBBZ2dUeXBlW1wiQUdHX1FVQVJUMVwiXSA9IFwicXVhcnQxXCI7XG4gICAgLy8gXG4gICAgQWdnVHlwZVtcIkFHR19RVUFSVDNcIl0gPSBcInF1YXJ0M1wiO1xuICAgIC8vIFxuICAgIEFnZ1R5cGVbXCJBR0dfU0tFV05FU1NcIl0gPSBcInNrZXduZXNzXCI7XG4gICAgLy8gXG4gICAgQWdnVHlwZVtcIkFHR19LVVJUT1NJU1wiXSA9IFwia3VydG9zaXNcIjtcbiAgICAvLyBcbiAgICBBZ2dUeXBlW1wiQUdHX0lOT1VUXCJdID0gXCJpbi1vdXRcIjtcbiAgICAvLyBcbiAgICBBZ2dUeXBlW1wiQUdHX1NVTV9YU1FSXCJdID0gXCJzdW0teHNxclwiO1xuICAgIC8vIFxuICAgIEFnZ1R5cGVbXCJBR0dfVVNFUlwiXSA9IFwidXNlclwiO1xuICAgIC8vIFxuICAgIEFnZ1R5cGVbXCJBR0dfQ09MTEVDVFwiXSA9IFwiY29sbGVjdFwiO1xuICAgIC8vIFxuICAgIEFnZ1R5cGVbXCJBR0dfQ09WQVJcIl0gPSBcImNvdmFyXCI7XG4gICAgLy8gXG4gICAgQWdnVHlwZVtcIkFHR19DT1ZBUlBcIl0gPSBcImNvdmFycFwiO1xuICAgIC8vIFxuICAgIEFnZ1R5cGVbXCJBR0dfQ09SUlwiXSA9IFwiY29yclwiO1xufSkoQWdnVHlwZSA9IGV4cG9ydHMuQWdnVHlwZSB8fCAoZXhwb3J0cy5BZ2dUeXBlID0ge30pKTtcbi8vIERhdGFWYWx1ZUZvcm1hdHRlcjo6RGF0YVR5cGVFbmNvZGluZ3MgaGFzIGhhcmRjb2RlZCB2YWx1ZXMgY29ycmVzcG9uZGluZyB0byBmb2xsb3dpbmcgZW51bSBtZW1iZXJzLiBTbyBhbnkgY2hhbmdlcyBoZXJlIHNob3VsZCBiZSBkb25lIHRoZXJlIHRvb1xudmFyIERhdGFUeXBlO1xuKGZ1bmN0aW9uIChEYXRhVHlwZSkge1xuICAgIC8vIFxuICAgIERhdGFUeXBlW1wiRFRfSU5URUdFUlwiXSA9IFwiaW50ZWdlclwiO1xuICAgIC8vIFxuICAgIERhdGFUeXBlW1wiRFRfUkVBTFwiXSA9IFwicmVhbFwiO1xuICAgIC8vIFxuICAgIERhdGFUeXBlW1wiRFRfU1RSSU5HXCJdID0gXCJjc3RyaW5nXCI7XG4gICAgLy8gXG4gICAgRGF0YVR5cGVbXCJEVF9EQVRFVElNRVwiXSA9IFwiZGF0ZXRpbWVcIjtcbiAgICAvLyBcbiAgICBEYXRhVHlwZVtcIkRUX0JPT0xFQU5cIl0gPSBcImJvb2xlYW5cIjtcbiAgICAvLyBcbiAgICBEYXRhVHlwZVtcIkRUX0RBVEVcIl0gPSBcImRhdGVcIjtcbiAgICAvLyBcbiAgICBEYXRhVHlwZVtcIkRUX1RVUExFXCJdID0gXCJ0dXBsZVwiO1xuICAgIC8vIFxuICAgIERhdGFUeXBlW1wiRFRfU1BBVElBTFwiXSA9IFwic3BhdGlhbFwiO1xuICAgIC8vIFxuICAgIERhdGFUeXBlW1wiRFRfVU5LTk9XTlwiXSA9IFwidW5rbm93blwiO1xuICAgIC8vIFxuICAgIERhdGFUeXBlW1wiRFRfQklOQVJZXCJdID0gXCJiaW5hcnlcIjtcbiAgICAvLyBcbiAgICBEYXRhVHlwZVtcIkRUX1RJTUVcIl0gPSBcInRpbWVcIjtcbn0pKERhdGFUeXBlID0gZXhwb3J0cy5EYXRhVHlwZSB8fCAoZXhwb3J0cy5EYXRhVHlwZSA9IHt9KSk7XG4vLyBcbnZhciBTb3J0RGlyZWN0aW9uO1xuKGZ1bmN0aW9uIChTb3J0RGlyZWN0aW9uKSB7XG4gICAgLy8gYXNjZW5kaW5nXG4gICAgU29ydERpcmVjdGlvbltcIlNUX0FTQ1wiXSA9IFwiYXNjXCI7XG4gICAgLy8gZGVzY2VuZGluZ1xuICAgIFNvcnREaXJlY3Rpb25bXCJTVF9ERVNDXCJdID0gXCJkZXNjXCI7XG59KShTb3J0RGlyZWN0aW9uID0gZXhwb3J0cy5Tb3J0RGlyZWN0aW9uIHx8IChleHBvcnRzLlNvcnREaXJlY3Rpb24gPSB7fSkpO1xuLy8gXG52YXIgU29ydFR5cGU7XG4oZnVuY3Rpb24gKFNvcnRUeXBlKSB7XG4gICAgLy8gVXNlIHRoZSBkZWZpbmVkIG9yZGVyaW5nXG4gICAgU29ydFR5cGVbXCJTVF9OQVRVUkFMXCJdID0gXCJkYXRhLXNvdXJjZS1vcmRlclwiO1xuICAgIC8vIEFscGhhYmV0aWMvbnVtZXJpYyBvcmRlcmluZyBvZiBkYXRhXG4gICAgU29ydFR5cGVbXCJTVF9BTFBIQUJFVElDXCJdID0gXCJhbHBoYVwiO1xuICAgIC8vIFNwZWNpZnkgYSBzZWNvbmRhcnkgZmllbGRcbiAgICBTb3J0VHlwZVtcIlNUX0NPTVBVVEVEXCJdID0gXCJmaWVsZFwiO1xuICAgIC8vIE1hbnVhbGx5IGRlZmluZWQgb3JkZXJpbmdcbiAgICBTb3J0VHlwZVtcIlNUX01BTlVBTFwiXSA9IFwibWFudWFsXCI7XG59KShTb3J0VHlwZSA9IGV4cG9ydHMuU29ydFR5cGUgfHwgKGV4cG9ydHMuU29ydFR5cGUgPSB7fSkpO1xuLy8gXG52YXIgU29ydEVuZDtcbihmdW5jdGlvbiAoU29ydEVuZCkge1xuICAgIC8vIFxuICAgIFNvcnRFbmRbXCJTVF9UT1BcIl0gPSBcInRvcFwiO1xuICAgIC8vIFxuICAgIFNvcnRFbmRbXCJTVF9CT1RUT01cIl0gPSBcImJvdHRvbVwiO1xufSkoU29ydEVuZCA9IGV4cG9ydHMuU29ydEVuZCB8fCAoZXhwb3J0cy5Tb3J0RW5kID0ge30pKTtcbi8vIFxudmFyIEZvcmVjYXN0Q29sdW1uVHlwZTtcbihmdW5jdGlvbiAoRm9yZWNhc3RDb2x1bW5UeXBlKSB7XG4gICAgLy8gXG4gICAgRm9yZWNhc3RDb2x1bW5UeXBlW1wiRk9SRUNBU1RfTk9ORVwiXSA9IFwibm9uZVwiO1xuICAgIC8vIFxuICAgIEZvcmVjYXN0Q29sdW1uVHlwZVtcIkZPUkVDQVNUX1ZBTFVFXCJdID0gXCJ2YWx1ZVwiO1xuICAgIC8vIFxuICAgIEZvcmVjYXN0Q29sdW1uVHlwZVtcIkZPUkVDQVNUX0lORElDQVRPUlwiXSA9IFwiaW5kaWNhdG9yXCI7XG4gICAgLy8gXG4gICAgRm9yZWNhc3RDb2x1bW5UeXBlW1wiRk9SRUNBU1RfUFJFQ0lTSU9OXCJdID0gXCJwcmVjaXNpb25cIjtcbiAgICAvLyBcbiAgICBGb3JlY2FzdENvbHVtblR5cGVbXCJGT1JFQ0FTVF9RVUFMSVRZXCJdID0gXCJxdWFsaXR5XCI7XG4gICAgLy8gXG4gICAgRm9yZWNhc3RDb2x1bW5UeXBlW1wiRk9SRUNBU1RfRklUX1RSRU5EXCJdID0gXCJmaXRfdHJlbmRcIjtcbiAgICAvLyBcbiAgICBGb3JlY2FzdENvbHVtblR5cGVbXCJGT1JFQ0FTVF9QUkVDSVNJT05fUEVSQ0VOVFwiXSA9IFwicHJlY2lzaW9uX3BlcmNlbnRcIjtcbiAgICAvLyBcbiAgICBGb3JlY2FzdENvbHVtblR5cGVbXCJGT1JFQ0FTVF9QUkVESUNUSU9OX0lOVEVSVkFMX1VQUEVSXCJdID0gXCJwcmVkaWN0aW9uX3VwcGVyXCI7XG4gICAgLy8gXG4gICAgRm9yZWNhc3RDb2x1bW5UeXBlW1wiRk9SRUNBU1RfUFJFRElDVElPTl9JTlRFUlZBTF9MT1dFUlwiXSA9IFwicHJlZGljdGlvbl9sb3dlclwiO1xufSkoRm9yZWNhc3RDb2x1bW5UeXBlID0gZXhwb3J0cy5Gb3JlY2FzdENvbHVtblR5cGUgfHwgKGV4cG9ydHMuRm9yZWNhc3RDb2x1bW5UeXBlID0ge30pKTtcbi8vIFxudmFyIE1hcmtNYXJrZXJzTW9kZTtcbihmdW5jdGlvbiAoTWFya01hcmtlcnNNb2RlKSB7XG4gICAgLy8gXG4gICAgTWFya01hcmtlcnNNb2RlW1wiTU1NX0F1dG9cIl0gPSBcIm1tbS1hdXRvXCI7XG4gICAgLy8gXG4gICAgTWFya01hcmtlcnNNb2RlW1wiTU1NX0FsbFwiXSA9IFwibW1tX2FsbFwiO1xuICAgIC8vIFxuICAgIE1hcmtNYXJrZXJzTW9kZVtcIk1NTV9Ob25lXCJdID0gXCJtbW1fbm9uZVwiO1xuICAgIC8vIFxuICAgIE1hcmtNYXJrZXJzTW9kZVtcIk1NTV9EZWZhdWx0XCJdID0gXCJtbW1fZGVmYXVsdFwiO1xufSkoTWFya01hcmtlcnNNb2RlID0gZXhwb3J0cy5NYXJrTWFya2Vyc01vZGUgfHwgKGV4cG9ydHMuTWFya01hcmtlcnNNb2RlID0ge30pKTtcbi8vIFxudmFyIFBlcmNlbnRNb2RlO1xuKGZ1bmN0aW9uIChQZXJjZW50TW9kZSkge1xuICAgIC8vIFxuICAgIFBlcmNlbnRNb2RlW1wiUEVSQ0VOVF9DRUxMX0lOX1BBTkVcIl0gPSBcImNlbGwtaW4tcGFuZVwiO1xuICAgIC8vIFxuICAgIFBlcmNlbnRNb2RlW1wiUEVSQ0VOVF9ST1dfSU5fUEFORVwiXSA9IFwicm93LWluLXBhbmVcIjtcbiAgICAvLyBcbiAgICBQZXJjZW50TW9kZVtcIlBFUkNFTlRfQ09MVU1OX0lOX1BBTkVcIl0gPSBcImNvbHVtbi1pbi1wYW5lXCI7XG4gICAgLy8gXG4gICAgUGVyY2VudE1vZGVbXCJQRVJDRU5UX1BBTkVcIl0gPSBcInBhbmVcIjtcbiAgICAvLyBcbiAgICBQZXJjZW50TW9kZVtcIlBFUkNFTlRfUk9XXCJdID0gXCJyb3dcIjtcbiAgICAvLyBcbiAgICBQZXJjZW50TW9kZVtcIlBFUkNFTlRfQ09MVU1OXCJdID0gXCJjb2x1bW5cIjtcbiAgICAvLyBcbiAgICBQZXJjZW50TW9kZVtcIlBFUkNFTlRfVEFCTEVcIl0gPSBcInRhYmxlXCI7XG59KShQZXJjZW50TW9kZSA9IGV4cG9ydHMuUGVyY2VudE1vZGUgfHwgKGV4cG9ydHMuUGVyY2VudE1vZGUgPSB7fSkpO1xuLy8gXG52YXIgU3BlY2lhbFZhbHVlc01vZGU7XG4oZnVuY3Rpb24gKFNwZWNpYWxWYWx1ZXNNb2RlKSB7XG4gICAgLy8gXG4gICAgU3BlY2lhbFZhbHVlc01vZGVbXCJTUEVDSUFMX1ZBTFVFU19ISURFX0FORF9XQVJOXCJdID0gXCJoaWRlLWFuZC13YXJuXCI7XG4gICAgLy8gXG4gICAgU3BlY2lhbFZhbHVlc01vZGVbXCJTUEVDSUFMX1ZBTFVFU19ISURFXCJdID0gXCJoaWRlXCI7XG4gICAgLy8gXG4gICAgU3BlY2lhbFZhbHVlc01vZGVbXCJTUEVDSUFMX1ZBTFVFU19ISURFX0JSRUFLX0xJTkVTXCJdID0gXCJoaWRlLWJyZWFrLWxpbmVzXCI7XG4gICAgLy8gXG4gICAgU3BlY2lhbFZhbHVlc01vZGVbXCJTUEVDSUFMX1ZBTFVFU19TSE9XXCJdID0gXCJzaG93XCI7XG59KShTcGVjaWFsVmFsdWVzTW9kZSA9IGV4cG9ydHMuU3BlY2lhbFZhbHVlc01vZGUgfHwgKGV4cG9ydHMuU3BlY2lhbFZhbHVlc01vZGUgPSB7fSkpO1xuLy8gXG52YXIgTGF5b3V0VHlwZTtcbihmdW5jdGlvbiAoTGF5b3V0VHlwZSkge1xuICAgIC8vIFxuICAgIExheW91dFR5cGVbXCJMQVlPVVRfQ0FSVEVTSUFOXCJdID0gXCJjYXJ0ZXNpYW5cIjtcbiAgICAvLyBcbiAgICBMYXlvdXRUeXBlW1wiTEFZT1VUX0RFRkFVTFRcIl0gPSBcImRlZmF1bHRcIjtcbn0pKExheW91dFR5cGUgPSBleHBvcnRzLkxheW91dFR5cGUgfHwgKGV4cG9ydHMuTGF5b3V0VHlwZSA9IHt9KSk7XG4vLyBcbnZhciBTaGVsZlR5cGU7XG4oZnVuY3Rpb24gKFNoZWxmVHlwZSkge1xuICAgIC8vIFxuICAgIFNoZWxmVHlwZVtcIlNUX05PTkVcIl0gPSBcIm5vbmUtc2hlbGZcIjtcbiAgICAvLyBcbiAgICBTaGVsZlR5cGVbXCJTVF9DT0xVTU5TX1NIRUxGXCJdID0gXCJjb2x1bW5zLXNoZWxmXCI7XG4gICAgLy8gXG4gICAgU2hlbGZUeXBlW1wiU1RfUk9XU19TSEVMRlwiXSA9IFwicm93cy1zaGVsZlwiO1xuICAgIC8vIFxuICAgIFNoZWxmVHlwZVtcIlNUX1BBR0VTX1NIRUxGXCJdID0gXCJwYWdlcy1zaGVsZlwiO1xuICAgIC8vIFxuICAgIFNoZWxmVHlwZVtcIlNUX0ZJTFRFUl9TSEVMRlwiXSA9IFwiZmlsdGVyLXNoZWxmXCI7XG4gICAgLy8gXG4gICAgU2hlbGZUeXBlW1wiU1RfSU1BR0VfU0hFTEZcIl0gPSBcImltYWdlLXNoZWxmXCI7XG4gICAgLy8gXG4gICAgU2hlbGZUeXBlW1wiU1RfTUVBU1VSRVNfU0hFTEZcIl0gPSBcIm1lYXN1cmVzLXNoZWxmXCI7XG4gICAgLy8gXG4gICAgU2hlbGZUeXBlW1wiU1RfU0hPV01FX1NIRUxGXCJdID0gXCJzaG93LW1lLXNoZWxmXCI7XG4gICAgLy8gXG4gICAgU2hlbGZUeXBlW1wiU1RfRU5DT0RJTkdfU0hFTEZcIl0gPSBcImVuY29kaW5nLXNoZWxmXCI7XG4gICAgLy8gXG4gICAgU2hlbGZUeXBlW1wiU1RfQ0xVU1RFUl9TSEVMRlwiXSA9IFwiY2x1c3Rlci1zaGVsZlwiO1xuICAgIC8vIFxuICAgIFNoZWxmVHlwZVtcIlNUX0dFT01FVFJZX1NIRUxGXCJdID0gXCJnZW9tZXRyeS1zaGVsZlwiO1xuICAgIC8vIFxuICAgIFNoZWxmVHlwZVtcIlNUX0VORFwiXSA9IFwiZW5kLXNoZWxmXCI7XG4gICAgLy8gXG4gICAgU2hlbGZUeXBlW1wiU1RfRklOQUxcIl0gPSBcImZpbmFsLXNoZWxmXCI7XG59KShTaGVsZlR5cGUgPSBleHBvcnRzLlNoZWxmVHlwZSB8fCAoZXhwb3J0cy5TaGVsZlR5cGUgPSB7fSkpO1xuLy8gXG52YXIgUmVzdHJpY3RUeXBlO1xuKGZ1bmN0aW9uIChSZXN0cmljdFR5cGUpIHtcbiAgICAvLyBcbiAgICBSZXN0cmljdFR5cGVbXCJSVF9JTlRFUlNFQ1RcIl0gPSBcInJ0LWludGVyc2VjdGlvblwiO1xuICAgIC8vIFxuICAgIFJlc3RyaWN0VHlwZVtcIlJUX1VOSU9OXCJdID0gXCJydC11bmlvblwiO1xufSkoUmVzdHJpY3RUeXBlID0gZXhwb3J0cy5SZXN0cmljdFR5cGUgfHwgKGV4cG9ydHMuUmVzdHJpY3RUeXBlID0ge30pKTtcbi8vIFxudmFyIFRvb2x0aXBNb2RlO1xuKGZ1bmN0aW9uIChUb29sdGlwTW9kZSkge1xuICAgIC8vIFxuICAgIFRvb2x0aXBNb2RlW1wiVE1fTk9ORVwiXSA9IFwibm9uZVwiO1xuICAgIC8vIFxuICAgIFRvb2x0aXBNb2RlW1wiVE1fU1RJQ0tZXCJdID0gXCJzdGlja3lcIjtcbiAgICAvLyBcbiAgICBUb29sdGlwTW9kZVtcIlRNX1NNT09USFwiXSA9IFwic21vb3RoXCI7XG59KShUb29sdGlwTW9kZSA9IGV4cG9ydHMuVG9vbHRpcE1vZGUgfHwgKGV4cG9ydHMuVG9vbHRpcE1vZGUgPSB7fSkpO1xuLy8gXG52YXIgQ29sdW1uR3JvdXBzO1xuKGZ1bmN0aW9uIChDb2x1bW5Hcm91cHMpIHtcbiAgICAvLyAweDAxXG4gICAgQ29sdW1uR3JvdXBzW1wiQ09MU19JTl9PVVRQVVRcIl0gPSBcImNvbHMtaW4tb3V0cHV0XCI7XG4gICAgLy8gMHgwMlxuICAgIENvbHVtbkdyb3Vwc1tcIkNPTFNfSU5fRklMVEVSX1NIRUxGXCJdID0gXCJjb2xzLWluLWZpbHRlci1zaGVsZlwiO1xuICAgIC8vIDB4MDRcbiAgICBDb2x1bW5Hcm91cHNbXCJDT0xTX1JFRl9CWV9GSUxURVJTXCJdID0gXCJjb2xzLXJlZi1ieS1maWx0ZXJzXCI7XG4gICAgLy8gMHgwOFxuICAgIENvbHVtbkdyb3Vwc1tcIkNPTFNfUkVGX0JZX09NRUFTVVJFU1wiXSA9IFwiY29scy1yZWYtYnktb21lYXN1cmVzXCI7XG4gICAgLy8gMHgxMFxuICAgIENvbHVtbkdyb3Vwc1tcIkNPTFNfUkVGX0JZX0pPSU5fTE9EXCJdID0gXCJjb2xzLXJlZi1ieS1qb2luLWxvZFwiO1xuICAgIC8vIDB4MjBcbiAgICBDb2x1bW5Hcm91cHNbXCJDT0xTX0hJRERFTlwiXSA9IFwiY29scy1oaWRkZW5cIjtcbiAgICAvLyAweDQwXG4gICAgQ29sdW1uR3JvdXBzW1wiQ09MU19SRUZfQllfU09SVFNcIl0gPSBcImNvbHMtcmVmLWJ5LXNvcnRzXCI7XG4gICAgLy8gXG4gICAgQ29sdW1uR3JvdXBzW1wiQ09MU19SRUZfQllfRklMVEVSU19PUl9TT1JUU1wiXSA9IFwiY29scy1yZWYtYnktZmlsdGVycy1vci1zb3J0c1wiO1xuICAgIC8vIFxuICAgIENvbHVtbkdyb3Vwc1tcIkNPTFNfT05fU0hFTFZFU1wiXSA9IFwiY29scy1vbi1zaGVsdmVzXCI7XG4gICAgLy8gXG4gICAgQ29sdW1uR3JvdXBzW1wiQ09MU19BTExcIl0gPSBcImNvbHMtYWxsXCI7XG59KShDb2x1bW5Hcm91cHMgPSBleHBvcnRzLkNvbHVtbkdyb3VwcyB8fCAoZXhwb3J0cy5Db2x1bW5Hcm91cHMgPSB7fSkpO1xuLy8gXG52YXIgQnV0dG9uc09wdGlvbjtcbihmdW5jdGlvbiAoQnV0dG9uc09wdGlvbikge1xuICAgIC8vIFxuICAgIEJ1dHRvbnNPcHRpb25bXCJCT19ISURFXCJdID0gXCJidXR0b25zLWhpZGVcIjtcbn0pKEJ1dHRvbnNPcHRpb24gPSBleHBvcnRzLkJ1dHRvbnNPcHRpb24gfHwgKGV4cG9ydHMuQnV0dG9uc09wdGlvbiA9IHt9KSk7XG4vLyBcbnZhciBTZWxlY3Rpb25SZWxheGF0aW9uT3B0aW9uO1xuKGZ1bmN0aW9uIChTZWxlY3Rpb25SZWxheGF0aW9uT3B0aW9uKSB7XG4gICAgLy8gXG4gICAgU2VsZWN0aW9uUmVsYXhhdGlvbk9wdGlvbltcIlNST19BTExPV1wiXSA9IFwic2VsZWN0aW9uLXJlbGF4YXRpb24tYWxsb3dcIjtcbiAgICAvLyBcbiAgICBTZWxlY3Rpb25SZWxheGF0aW9uT3B0aW9uW1wiU1JPX0RJU0FMTE9XXCJdID0gXCJzZWxlY3Rpb24tcmVsYXhhdGlvbi1kaXNhbGxvd1wiO1xufSkoU2VsZWN0aW9uUmVsYXhhdGlvbk9wdGlvbiA9IGV4cG9ydHMuU2VsZWN0aW9uUmVsYXhhdGlvbk9wdGlvbiB8fCAoZXhwb3J0cy5TZWxlY3Rpb25SZWxheGF0aW9uT3B0aW9uID0ge30pKTtcbi8vIFxudmFyIEVuY29kaW5nVHlwZTtcbihmdW5jdGlvbiAoRW5jb2RpbmdUeXBlKSB7XG4gICAgLy8gYSB0ZXh0IGVuY29kaW5nXG4gICAgRW5jb2RpbmdUeXBlW1wiRVRfVEVYVFwiXSA9IFwidGV4dC1lbmNvZGluZ1wiO1xuICAgIC8vIGEgY29sb3IgZW5jb2RpbmdcbiAgICBFbmNvZGluZ1R5cGVbXCJFVF9DT0xPUlwiXSA9IFwiY29sb3ItZW5jb2RpbmdcIjtcbiAgICAvLyBhIHNpemUgZW5jb2RpbmdcbiAgICBFbmNvZGluZ1R5cGVbXCJFVF9TSVpFXCJdID0gXCJzaXplLWVuY29kaW5nXCI7XG4gICAgLy8gYSBzaGFwZSBlbmNvZGluZ1xuICAgIEVuY29kaW5nVHlwZVtcIkVUX1NIQVBFXCJdID0gXCJzaGFwZS1lbmNvZGluZ1wiO1xuICAgIC8vIGFuIGltYWdlIGVuY29kaW5nXG4gICAgRW5jb2RpbmdUeXBlW1wiRVRfSU1BR0VcIl0gPSBcImltYWdlLWVuY29kaW5nXCI7XG4gICAgLy8gYSBzb3J0IChwYXRoKSBlbmNvZGluZyAoY3VycmVudGx5IG9ubHkgZm9yIGxpbmUgb3IgcG9seWdvbiBjaGFydHMpXG4gICAgRW5jb2RpbmdUeXBlW1wiRVRfU09SVFwiXSA9IFwic29ydC1lbmNvZGluZ1wiO1xuICAgIC8vIGEgd2VkZ2Ugc2l6ZSAoYW5nbGUpIGVuY29kaW5nIChjdXJyZW50bHkgb25seSBmb3IgcGllIGNoYXJ0cylcbiAgICBFbmNvZGluZ1R5cGVbXCJFVF9XRURHRVNJWkVcIl0gPSBcIndlZGdlLXNpemUtZW5jb2RpbmdcIjtcbiAgICAvLyBhIGdlb21ldHJ5IGVuY29kaW5nXG4gICAgRW5jb2RpbmdUeXBlW1wiRVRfR0VPTUVUUllcIl0gPSBcImdlb21ldHJ5LWVuY29kaW5nXCI7XG4gICAgLy8gYSBsZXZlbCBvZiBkZXRhaWwgZW5jb2RpbmdcbiAgICBFbmNvZGluZ1R5cGVbXCJFVF9MT0RcIl0gPSBcImxldmVsLW9mLWRldGFpbC1lbmNvZGluZ1wiO1xuICAgIC8vIGVuY29kaW5nIHVzZWQgZm9yIHRoZSBkYXRhIGhpZ2hsaWdodGVyL2xlZ2VuZCBtZWNoYW5pc21cbiAgICBFbmNvZGluZ1R5cGVbXCJFVF9ISUdITElHSFRcIl0gPSBcImhpZ2hsaWdodC1lbmNvZGluZ1wiO1xuICAgIC8vIGEgdG9vbHRpcCBlbmNvZGluZ1xuICAgIEVuY29kaW5nVHlwZVtcIkVUX1RPT0xUSVBcIl0gPSBcInRvb2x0aXAtZW5jb2RpbmdcIjtcbiAgICAvLyBhIHRlbXBvcmFyeSBsYWJlbCBwbGFjZWQgYWJvdmUgbWFya3MgZm9yIHRoZSB0YWJsZSBjYWxjIGRpYWxvZ1xuICAgIEVuY29kaW5nVHlwZVtcIkVUX1JVTk5JTkdPUkRFUlwiXSA9IFwicnVubmluZ29yZGVyLWVuY29kaW5nXCI7XG4gICAgLy8gdGhlIG51bWJlciBvZiBlbmNvZGluZ3MsIHRoaXMgaXMgaW52YWxpZCBpbnB1dCBmb3IgYW4gZW5jb2RpbmcgcHJlc2VudGF0aW9uIG1vZGVsXG4gICAgRW5jb2RpbmdUeXBlW1wiTlVNX0VOQ09ESU5HU1wiXSA9IFwibnVtLWVuY29kaW5nc1wiO1xuICAgIC8vIGFuIGludmFsaWQgZW5jb2RpbmdcbiAgICBFbmNvZGluZ1R5cGVbXCJFVF9JTlZBTElEXCJdID0gXCJpbnZhbGlkLWVuY29kaW5nXCI7XG59KShFbmNvZGluZ1R5cGUgPSBleHBvcnRzLkVuY29kaW5nVHlwZSB8fCAoZXhwb3J0cy5FbmNvZGluZ1R5cGUgPSB7fSkpO1xuLy8gRW51bWVyYXRpb24gb2YgdmFsaWQgaG9yaXpvbnRhbCBhbGlnbm1lbnRzLlxudmFyIExhYmVsSEFsaWdubWVudDtcbihmdW5jdGlvbiAoTGFiZWxIQWxpZ25tZW50KSB7XG4gICAgLy8gXG4gICAgTGFiZWxIQWxpZ25tZW50W1wiTEhBX0xlZnRcIl0gPSBcImgtYWxpZ24tbGVmdFwiO1xuICAgIC8vIFxuICAgIExhYmVsSEFsaWdubWVudFtcIkxIQV9DZW50ZXJcIl0gPSBcImgtYWxpZ24tY2VudGVyXCI7XG4gICAgLy8gXG4gICAgTGFiZWxIQWxpZ25tZW50W1wiTEhBX1JpZ2h0XCJdID0gXCJoLWFsaWduLXJpZ2h0XCI7XG4gICAgLy8gXG4gICAgTGFiZWxIQWxpZ25tZW50W1wiTEhBX0F1dG9tYXRpY1wiXSA9IFwiaC1hbGlnbi1hdXRvXCI7XG59KShMYWJlbEhBbGlnbm1lbnQgPSBleHBvcnRzLkxhYmVsSEFsaWdubWVudCB8fCAoZXhwb3J0cy5MYWJlbEhBbGlnbm1lbnQgPSB7fSkpO1xuLy8gRW51bWVyYXRpb24gb2YgdmFsaWQgdmVydGljYWwgYWxpZ25tZW50cy5cbnZhciBMYWJlbFZBbGlnbm1lbnQ7XG4oZnVuY3Rpb24gKExhYmVsVkFsaWdubWVudCkge1xuICAgIC8vIFxuICAgIExhYmVsVkFsaWdubWVudFtcIkxWQV9Cb3R0b21cIl0gPSBcInYtYWxpZ24tYm90dG9tXCI7XG4gICAgLy8gXG4gICAgTGFiZWxWQWxpZ25tZW50W1wiTFZBX0NlbnRlclwiXSA9IFwidi1hbGlnbi1jZW50ZXJcIjtcbiAgICAvLyBcbiAgICBMYWJlbFZBbGlnbm1lbnRbXCJMVkFfVG9wXCJdID0gXCJ2LWFsaWduLXRvcFwiO1xuICAgIC8vIFxuICAgIExhYmVsVkFsaWdubWVudFtcIkxWQV9BdXRvbWF0aWNcIl0gPSBcInYtYWxpZ24tYXV0b1wiO1xufSkoTGFiZWxWQWxpZ25tZW50ID0gZXhwb3J0cy5MYWJlbFZBbGlnbm1lbnQgfHwgKGV4cG9ydHMuTGFiZWxWQWxpZ25tZW50ID0ge30pKTtcbi8vIEVudW1lcmF0aW9uIG9mIHZhbGlkIGxhYmVsIHBvc2l0aW9ucy5cbnZhciBMYWJlbFBvc2l0aW9uO1xuKGZ1bmN0aW9uIChMYWJlbFBvc2l0aW9uKSB7XG4gICAgLy8gUG9zaXRpb24gZWFjaCB0ZXh0IHJ1biByZWxhdGl2ZSB0byB0aGUgY2VudGVyIG9mIHRoZSBvcmlnaW5hbCBiYm94LiAgVXNlIHRoZSBvcmlnaW5hbCBiYm94IGFzIHRoZSBoZWlnaHQgYW5kIHdpZHRoIG9mIHRoZSB0ZXh0IG1hcmsuICBVc2VkIGZvciBub24tc3RhY2tlZCBPTyB0ZXh0IG1hcmtzLlxuICAgIExhYmVsUG9zaXRpb25bXCJDZW50ZXJJbk9yaWdpbmFsQmJveFwiXSA9IFwibGFiZWwtcG9zaXRpb24tY2VudGVyLWluLW9yaWdpbmFsLWJveFwiO1xuICAgIC8vIFBvc2l0aW9uIGVhY2ggdGV4dCBydW4gcmVsYXRpdmUgdG8gdGhlIGJvdHRvbSBsZWZ0IGNvcm5lciBvZiB0aGUgbWVhc3VyZWQgYmJveC4gVXNlIHRoZSBtZWFzdXJlZCBiYm94IGFzIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSBsYWJlbC4gVXNlZCBmb3IgbGFiZWxzXG4gICAgTGFiZWxQb3NpdGlvbltcIk9yaWdpbkF0TG93ZXJMZWZ0XCJdID0gXCJsYWJlbC1wb3NpdGlvbi1vcmlnaW4tYXQtbG93ZXItbGVmdFwiO1xuICAgIC8vIFBvc2l0aW9uIGVhY2ggdGV4dCBydW4gcmVsYXRpdmUgdG8gdGhlIGNlbnRlciBvZiB0aGUgbWVhc3VyZWQgYmJveC4gVXNlIHRoZSBtZWFzdXJlZCBiYm94IGFzIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSB0ZXh0IG1hcmsuIFVzZWQgZm9yIG1vc3QgdGV4dCBtYXJrcy5cbiAgICBMYWJlbFBvc2l0aW9uW1wiT3JpZ2luQXRDZW50ZXJcIl0gPSBcImxhYmVsLXBvc2l0aW9uLW9yaWdpbi1hdC1jZW50ZXJcIjtcbn0pKExhYmVsUG9zaXRpb24gPSBleHBvcnRzLkxhYmVsUG9zaXRpb24gfHwgKGV4cG9ydHMuTGFiZWxQb3NpdGlvbiA9IHt9KSk7XG4vLyBFbnVtZXJhdGlvbiBvZiB3YXlzIHRvIHVzZSBjb2xvci4gIFZhbHVlcyBjYW4gYmUgb3InZWQgdG9nZXRoZXIgdG8gbWFrZSBhIG1hc2sgZm9yIGFsbG93ZWQgb3B0aW9uc1xudmFyIENvbG9yTW9kZTtcbihmdW5jdGlvbiAoQ29sb3JNb2RlKSB7XG4gICAgLy8gQ29sb3IgdXNlciBzcGVjaWZpZWRcbiAgICBDb2xvck1vZGVbXCJDTFJNX1VzZXJcIl0gPSBcImNscm0tdXNlclwiO1xuICAgIC8vIENvbG9yIHNlbGVjdGVkIGF1dG9tYXRpY2FsbHlcbiAgICBDb2xvck1vZGVbXCJDTFJNX0F1dG9cIl0gPSBcImNscm0tYXV0b1wiO1xuICAgIC8vIENvbG9yIG1hdGNoZXMgbWFyayBjb2xvclxuICAgIENvbG9yTW9kZVtcIkNMUk1fTWF0Y2hcIl0gPSBcImNscm0tbWF0Y2hcIjtcbiAgICAvLyBObyBjb2xvciAodHJhbnNwYXJlbnQgb3Igbm90IGRyYXduKVxuICAgIENvbG9yTW9kZVtcIkNMUk1fTm9uZVwiXSA9IFwiY2xybS1ub25lXCI7XG59KShDb2xvck1vZGUgPSBleHBvcnRzLkNvbG9yTW9kZSB8fCAoZXhwb3J0cy5Db2xvck1vZGUgPSB7fSkpO1xuLy8gXG52YXIgTWFya0xhYmVsc01vZGU7XG4oZnVuY3Rpb24gKE1hcmtMYWJlbHNNb2RlKSB7XG4gICAgLy8gXG4gICAgTWFya0xhYmVsc01vZGVbXCJNTE1fQWxsXCJdID0gXCJtbG0tYWxsXCI7XG4gICAgLy8gXG4gICAgTWFya0xhYmVsc01vZGVbXCJNTE1fU2VsZWN0aW9uXCJdID0gXCJtbG0tc2VsZWN0aW9uXCI7XG4gICAgLy8gXG4gICAgTWFya0xhYmVsc01vZGVbXCJNTE1fSGlnaGxpZ2h0XCJdID0gXCJtbG0taGlnaGxpZ2h0XCI7XG4gICAgLy8gXG4gICAgTWFya0xhYmVsc01vZGVbXCJNTE1fTGluZUVuZHNcIl0gPSBcIm1sbS1saW5lLWVuZHNcIjtcbiAgICAvLyBtaW4vbWF4IHNldHRpbmdcbiAgICBNYXJrTGFiZWxzTW9kZVtcIk1MTV9SYW5nZVwiXSA9IFwibWxtLXJhbmdlXCI7XG4gICAgLy8gbW9zdCByZWNlbnQgKG9ubHkgcmVsZXZhbnQgd2hlbiBkYXRlIGZpZWxkIGlzIGluIHBsYXkpXG4gICAgTWFya0xhYmVsc01vZGVbXCJNTE1fTW9zdFJlY2VudFwiXSA9IFwibWxtLW1vc3QtcmVjZW50XCI7XG4gICAgLy8gLi4udGhpcyBpcyBcIiB2aXJ0dWFsIFwiIChydW50aW1lIG9ubHksIG5vdCBzYXZlZCwgbm90IHNob3duIGFzIGEgdXNlciBzZXR0aW5nXG4gICAgTWFya0xhYmVsc01vZGVbXCJNTE1fTXVsdGlwbGVWYWx1ZXNcIl0gPSBcIm1sbS1tdWx0aXBsZS12YWx1ZXNcIjtcbiAgICAvLyBcbiAgICBNYXJrTGFiZWxzTW9kZVtcIk1MTV9EZWZhdWx0XCJdID0gXCJtbG0tZGVmYXVsdFwiO1xufSkoTWFya0xhYmVsc01vZGUgPSBleHBvcnRzLk1hcmtMYWJlbHNNb2RlIHx8IChleHBvcnRzLk1hcmtMYWJlbHNNb2RlID0ge30pKTtcbi8vIFxudmFyIE1hcmtMYWJlbHNTY29wZTtcbihmdW5jdGlvbiAoTWFya0xhYmVsc1Njb3BlKSB7XG4gICAgLy8gXG4gICAgTWFya0xhYmVsc1Njb3BlW1wiTUxTX1RhYmxlXCJdID0gXCJtbHMtdGFibGVcIjtcbiAgICAvLyBcbiAgICBNYXJrTGFiZWxzU2NvcGVbXCJNTFNfUGFuZVwiXSA9IFwibWxzLXBhbmVcIjtcbiAgICAvLyBcbiAgICBNYXJrTGFiZWxzU2NvcGVbXCJNTFNfQ2VsbFwiXSA9IFwibWxzLWNlbGxcIjtcbiAgICAvLyBcbiAgICBNYXJrTGFiZWxzU2NvcGVbXCJNTFNfTXVsdGlNYXJrXCJdID0gXCJtbHMtbXVsdGltYXJrXCI7XG4gICAgLy8gLi4udGhpcyBpcyBcIiB2aXJ0dWFsIFwiIChydW50aW1lIG9ubHksIG5vdCBzYXZlZCwgbm90IHNob3duIGFzIGEgdXNlciBzZXR0aW5nKVxuICAgIE1hcmtMYWJlbHNTY29wZVtcIk1MU19NdWx0aXBsZVZhbHVlc1wiXSA9IFwibWxzLW11bHRpcGxlLXZhbHVlc1wiO1xuICAgIC8vIFxuICAgIE1hcmtMYWJlbHNTY29wZVtcIk1MU19EZWZhdWx0XCJdID0gXCJtbHMtZGVmYXVsdFwiO1xufSkoTWFya0xhYmVsc1Njb3BlID0gZXhwb3J0cy5NYXJrTGFiZWxzU2NvcGUgfHwgKGV4cG9ydHMuTWFya0xhYmVsc1Njb3BlID0ge30pKTtcbi8vIFxudmFyIE1hcmtMYWJlbHNWaXNpYmlsaXR5O1xuKGZ1bmN0aW9uIChNYXJrTGFiZWxzVmlzaWJpbGl0eSkge1xuICAgIC8vIFxuICAgIE1hcmtMYWJlbHNWaXNpYmlsaXR5W1wiTUxWX0hpZGRlblwiXSA9IFwibWx2LWhpZGRlblwiO1xuICAgIC8vIFxuICAgIE1hcmtMYWJlbHNWaXNpYmlsaXR5W1wiTUxWX1Zpc2libGVcIl0gPSBcIm1sdi12aXNpYmxlXCI7XG4gICAgLy8gXG4gICAgTWFya0xhYmVsc1Zpc2liaWxpdHlbXCJNTFZfVXNlQ3VycmVudFwiXSA9IFwibWx2LXVzZS1jdXJyZW50XCI7XG59KShNYXJrTGFiZWxzVmlzaWJpbGl0eSA9IGV4cG9ydHMuTWFya0xhYmVsc1Zpc2liaWxpdHkgfHwgKGV4cG9ydHMuTWFya0xhYmVsc1Zpc2liaWxpdHkgPSB7fSkpO1xuLy8gXG52YXIgU3RhY2tpbmdNb2RlO1xuKGZ1bmN0aW9uIChTdGFja2luZ01vZGUpIHtcbiAgICAvLyBcbiAgICBTdGFja2luZ01vZGVbXCJTdGFja2luZ09mZlwiXSA9IFwib2ZmXCI7XG4gICAgLy8gXG4gICAgU3RhY2tpbmdNb2RlW1wiU3RhY2tpbmdPblwiXSA9IFwib25cIjtcbiAgICAvLyBcbiAgICBTdGFja2luZ01vZGVbXCJTdGFja2luZ0F1dG9cIl0gPSBcImF1dG9cIjtcbn0pKFN0YWNraW5nTW9kZSA9IGV4cG9ydHMuU3RhY2tpbmdNb2RlIHx8IChleHBvcnRzLlN0YWNraW5nTW9kZSA9IHt9KSk7XG4vLyBcbnZhciBNYXJrQWxpZ25tZW50O1xuKGZ1bmN0aW9uIChNYXJrQWxpZ25tZW50KSB7XG4gICAgLy8gXG4gICAgTWFya0FsaWdubWVudFtcIk1hcmtBbGlnbm1lbnRMZWZ0XCJdID0gXCJtYXJrLWFsaWdubWVudC1sZWZ0XCI7XG4gICAgLy8gXG4gICAgTWFya0FsaWdubWVudFtcIk1hcmtBbGlnbm1lbnRSaWdodFwiXSA9IFwibWFyay1hbGlnbm1lbnQtcmlnaHRcIjtcbiAgICAvLyBcbiAgICBNYXJrQWxpZ25tZW50W1wiTWFya0FsaWdubWVudENlbnRlclwiXSA9IFwibWFyay1hbGlnbm1lbnQtY2VudGVyXCI7XG59KShNYXJrQWxpZ25tZW50ID0gZXhwb3J0cy5NYXJrQWxpZ25tZW50IHx8IChleHBvcnRzLk1hcmtBbGlnbm1lbnQgPSB7fSkpO1xuLy8gXG52YXIgUGFuZUxhYmVsQ29tcG9zaXRpb247XG4oZnVuY3Rpb24gKFBhbmVMYWJlbENvbXBvc2l0aW9uKSB7XG4gICAgLy8gXG4gICAgUGFuZUxhYmVsQ29tcG9zaXRpb25bXCJQTENfTm9uZVwiXSA9IFwicGFuZS1sYWJlbC1jb21wb3NpdGlvbi1ub25lXCI7XG4gICAgLy8gXG4gICAgUGFuZUxhYmVsQ29tcG9zaXRpb25bXCJQTENfTWl4ZWRcIl0gPSBcInBhbmUtbGFiZWwtY29tcG9zaXRpb24tbWl4ZWRcIjtcbiAgICAvLyBcbiAgICBQYW5lTGFiZWxDb21wb3NpdGlvbltcIlBMQ19BbGxcIl0gPSBcInBhbmUtbGFiZWwtY29tcG9zaXRpb24tYWxsXCI7XG59KShQYW5lTGFiZWxDb21wb3NpdGlvbiA9IGV4cG9ydHMuUGFuZUxhYmVsQ29tcG9zaXRpb24gfHwgKGV4cG9ydHMuUGFuZUxhYmVsQ29tcG9zaXRpb24gPSB7fSkpO1xuLy8gVGhlIHVzZXItc3BlY2lmaWVkIG1hcmsgdHlwZSBvbiB0aGUgTWFya3MgQ2FyZFxudmFyIFByaW1pdGl2ZVR5cGU7XG4oZnVuY3Rpb24gKFByaW1pdGl2ZVR5cGUpIHtcbiAgICAvLyBcbiAgICBQcmltaXRpdmVUeXBlW1wiUFRfQVVUT01BVElDXCJdID0gXCJhdXRvbWF0aWNcIjtcbiAgICAvLyBcbiAgICBQcmltaXRpdmVUeXBlW1wiUFRfVEVYVFwiXSA9IFwidGV4dFwiO1xuICAgIC8vIFxuICAgIFByaW1pdGl2ZVR5cGVbXCJQVF9JTUFHRVwiXSA9IFwiaW1hZ2VcIjtcbiAgICAvLyBcbiAgICBQcmltaXRpdmVUeXBlW1wiUFRfU0hBUEVcIl0gPSBcInNoYXBlXCI7XG4gICAgLy8gXG4gICAgUHJpbWl0aXZlVHlwZVtcIlBUX1JFQ1RBTkdMRVwiXSA9IFwicmVjdGFuZ2xlXCI7XG4gICAgLy8gXG4gICAgUHJpbWl0aXZlVHlwZVtcIlBUX0JBUlwiXSA9IFwiYmFyXCI7XG4gICAgLy8gXG4gICAgUHJpbWl0aXZlVHlwZVtcIlBUX0dBTlRUXCJdID0gXCJnYW50dFwiO1xuICAgIC8vIFxuICAgIFByaW1pdGl2ZVR5cGVbXCJQVF9TUVVBUkVcIl0gPSBcInNxdWFyZVwiO1xuICAgIC8vIFxuICAgIFByaW1pdGl2ZVR5cGVbXCJQVF9DSVJDTEVcIl0gPSBcImNpcmNsZVwiO1xuICAgIC8vIFxuICAgIFByaW1pdGl2ZVR5cGVbXCJQVF9QT0xZTElORVwiXSA9IFwicG9seWxpbmVcIjtcbiAgICAvLyBsaW5lIGNoYXJ0XG4gICAgUHJpbWl0aXZlVHlwZVtcIlBUX0xJTkVcIl0gPSBcImxpbmVcIjtcbiAgICAvLyBcbiAgICBQcmltaXRpdmVUeXBlW1wiUFRfUE9MWUdPTlwiXSA9IFwicG9seWdvblwiO1xuICAgIC8vIGFyZWEgY2hhcnRcbiAgICBQcmltaXRpdmVUeXBlW1wiUFRfQVJFQVwiXSA9IFwiYXJlYVwiO1xuICAgIC8vIFxuICAgIFByaW1pdGl2ZVR5cGVbXCJQVF9QSUVcIl0gPSBcInBpZVwiO1xuICAgIC8vIFxuICAgIFByaW1pdGl2ZVR5cGVbXCJQVF9NVUxUSVBPTFlHT05cIl0gPSBcIm11bHRpcG9seWdvblwiO1xuICAgIC8vIE5vdCBhbiBhY3R1YWwgcHJpbWl0aXZlIHR5cGUuIFRoaXMgaXMganVzdCB1c2VkIHRvIGZsYWcgdGhlIFVJIHRoYXQgbXVsdGlwbGUgdHlwZXMgYXJlIGluIHBsYXkuXG4gICAgUHJpbWl0aXZlVHlwZVtcIlBUX01VTFRJUExFXCJdID0gXCJtdWx0aXBsZVwiO1xuICAgIC8vIHVzZWQgZm9yIGxvb3Bpbmcgb3ZlciBhbGwgdmFsdWVzXG4gICAgUHJpbWl0aXZlVHlwZVtcIk5VTV9QUklNSVRJVkVTXCJdID0gXCJjb3VudFwiO1xuICAgIC8vIHVzZWQgdG8gZmxhZyBhbiB1bnNldCBvciBpbnZhbGlkIHN0YXRlXG4gICAgUHJpbWl0aXZlVHlwZVtcIlBUX0lOVkFMSURcIl0gPSBcImludmFsaWRcIjtcbn0pKFByaW1pdGl2ZVR5cGUgPSBleHBvcnRzLlByaW1pdGl2ZVR5cGUgfHwgKGV4cG9ydHMuUHJpbWl0aXZlVHlwZSA9IHt9KSk7XG4vLyBEZWZpbmVzIHRoZSB3YXkgYSBnaXZlbiBwcmltaXRpdmUgYmVoYXZlcyBvbiBhIHZpeiAtIGZvciBpbnN0YW5jZSwgYSBQVF9DSVJDTEUgaXMgdHJlYXRlZCBhcyBhIHBvaW50LCB3aGlsZSBhIFBUX1BPTFlHT04gd291bGQgYmUgdHJlYXRlZCBhcyBhbiBhcmVhLlxudmFyIE1hcmtUeXBlO1xuKGZ1bmN0aW9uIChNYXJrVHlwZSkge1xuICAgIC8vIFxuICAgIE1hcmtUeXBlW1wiTVRfUE9JTlRcIl0gPSBcInBvaW50XCI7XG4gICAgLy8gXG4gICAgTWFya1R5cGVbXCJNVF9MSU5FXCJdID0gXCJsaW5lXCI7XG4gICAgLy8gXG4gICAgTWFya1R5cGVbXCJNVF9BUkVBXCJdID0gXCJhcmVhXCI7XG4gICAgLy8gXG4gICAgTWFya1R5cGVbXCJNVF9JTlZBTElEXCJdID0gXCJpbnZhbGlkXCI7XG59KShNYXJrVHlwZSA9IGV4cG9ydHMuTWFya1R5cGUgfHwgKGV4cG9ydHMuTWFya1R5cGUgPSB7fSkpO1xuLy8gUGFuZUF4aXMgaXMgdXNlZCB0byBkZXNjcmliZSB3aGljaCBheGlzIG9mIGEgcGFuZSBpcyB0aGUgaW5kZXBlbmRlbnQgYXhpcy5cbnZhciBQYW5lQXhpcztcbihmdW5jdGlvbiAoUGFuZUF4aXMpIHtcbiAgICAvLyBUaGUgaW5kZXBlbmRlbnQgYXhpcyBpcyBpbmZlcnJlZCBmcm9tIG90aGVyIHByb3BlcnRpZXMgb2YgdGhlIHBhbmUuXG4gICAgUGFuZUF4aXNbXCJBWElTX0FVVE9cIl0gPSBcImF1dG9cIjtcbiAgICAvLyBcbiAgICBQYW5lQXhpc1tcIkFYSVNfWFwiXSA9IFwieFwiO1xuICAgIC8vIFxuICAgIFBhbmVBeGlzW1wiQVhJU19ZXCJdID0gXCJ5XCI7XG59KShQYW5lQXhpcyA9IGV4cG9ydHMuUGFuZUF4aXMgfHwgKGV4cG9ydHMuUGFuZUF4aXMgPSB7fSkpO1xuLy8gXG52YXIgUm91bmRpbmc7XG4oZnVuY3Rpb24gKFJvdW5kaW5nKSB7XG4gICAgLy8gXG4gICAgUm91bmRpbmdbXCJSb3VuZGluZ19Ob25lXCJdID0gXCJub25lXCI7XG4gICAgLy8gXG4gICAgUm91bmRpbmdbXCJSb3VuZGluZ19TbWFsbFwiXSA9IFwic21hbGxcIjtcbiAgICAvLyBcbiAgICBSb3VuZGluZ1tcIlJvdW5kaW5nX01lZGl1bVwiXSA9IFwibWVkaXVtXCI7XG4gICAgLy8gXG4gICAgUm91bmRpbmdbXCJSb3VuZGluZ19MYXJnZVwiXSA9IFwibGFyZ2VcIjtcbn0pKFJvdW5kaW5nID0gZXhwb3J0cy5Sb3VuZGluZyB8fCAoZXhwb3J0cy5Sb3VuZGluZyA9IHt9KSk7XG4vLyBcbnZhciBMaW5lRW5kO1xuKGZ1bmN0aW9uIChMaW5lRW5kKSB7XG4gICAgLy8gXG4gICAgTGluZUVuZFtcIkxpbmVFbmRfTm9uZVwiXSA9IFwibm9uZVwiO1xuICAgIC8vIFxuICAgIExpbmVFbmRbXCJMaW5lRW5kX0Fycm93XCJdID0gXCJhcnJvd1wiO1xuICAgIC8vIFxuICAgIExpbmVFbmRbXCJMaW5lRW5kX09wZW5BcnJvd1wiXSA9IFwib3Blbi1hcnJvd1wiO1xuICAgIC8vIFxuICAgIExpbmVFbmRbXCJMaW5lRW5kX0RvdFwiXSA9IFwiZG90XCI7XG59KShMaW5lRW5kID0gZXhwb3J0cy5MaW5lRW5kIHx8IChleHBvcnRzLkxpbmVFbmQgPSB7fSkpO1xuLy8gXG52YXIgTGluZUVuZFNpemU7XG4oZnVuY3Rpb24gKExpbmVFbmRTaXplKSB7XG4gICAgLy8gXG4gICAgTGluZUVuZFNpemVbXCJMaW5lRW5kU2l6ZV9TbWFsbGVzdFwiXSA9IFwic21hbGxlc3RcIjtcbiAgICAvLyBcbiAgICBMaW5lRW5kU2l6ZVtcIkxpbmVFbmRTaXplX1NtYWxsZXJcIl0gPSBcInNtYWxsZXJcIjtcbiAgICAvLyBcbiAgICBMaW5lRW5kU2l6ZVtcIkxpbmVFbmRTaXplX1NtYWxsXCJdID0gXCJzbWFsbFwiO1xuICAgIC8vIFxuICAgIExpbmVFbmRTaXplW1wiTGluZUVuZFNpemVfTWVkaXVtXCJdID0gXCJtZWRpdW1cIjtcbiAgICAvLyBcbiAgICBMaW5lRW5kU2l6ZVtcIkxpbmVFbmRTaXplX0xhcmdlXCJdID0gXCJsYXJnZVwiO1xuICAgIC8vIFxuICAgIExpbmVFbmRTaXplW1wiTGluZUVuZFNpemVfTGFyZ2VyXCJdID0gXCJsYXJnZXJcIjtcbiAgICAvLyBcbiAgICBMaW5lRW5kU2l6ZVtcIkxpbmVFbmRTaXplX0xhcmdlc3RcIl0gPSBcImxhcmdlc3RcIjtcbn0pKExpbmVFbmRTaXplID0gZXhwb3J0cy5MaW5lRW5kU2l6ZSB8fCAoZXhwb3J0cy5MaW5lRW5kU2l6ZSA9IHt9KSk7XG4vLyBcbnZhciBCb2R5VHlwZTtcbihmdW5jdGlvbiAoQm9keVR5cGUpIHtcbiAgICAvLyBcbiAgICBCb2R5VHlwZVtcIkJvZHlUeXBlX05vbmVcIl0gPSBcIm5vbmVcIjtcbiAgICAvLyBcbiAgICBCb2R5VHlwZVtcIkJvZHlUeXBlX0JveFwiXSA9IFwiYm94XCI7XG4gICAgLy8gXG4gICAgQm9keVR5cGVbXCJCb2R5VHlwZV9FZGdlXCJdID0gXCJlZGdlXCI7XG59KShCb2R5VHlwZSA9IGV4cG9ydHMuQm9keVR5cGUgfHwgKGV4cG9ydHMuQm9keVR5cGUgPSB7fSkpO1xuLy8gXG52YXIgU3R5bGVUaGVtZTtcbihmdW5jdGlvbiAoU3R5bGVUaGVtZSkge1xuICAgIC8vIFxuICAgIFN0eWxlVGhlbWVbXCJ0aGVtZUNsYXNzaWNcIl0gPSBcImNsYXNzaWNcIjtcbiAgICAvLyBcbiAgICBTdHlsZVRoZW1lW1widGhlbWVNb2Rlcm5cIl0gPSBcIm1vZGVyblwiO1xuICAgIC8vIFxuICAgIFN0eWxlVGhlbWVbXCJ0aGVtZUNsZWFuXCJdID0gXCJjbGVhblwiO1xuICAgIC8vIFxuICAgIFN0eWxlVGhlbWVbXCJ0aGVtZVNtb290aFwiXSA9IFwic21vb3RoXCI7XG4gICAgLy8gXG4gICAgU3R5bGVUaGVtZVtcInRoZW1lQ3VzdG9tXCJdID0gXCJjdXN0b21cIjtcbn0pKFN0eWxlVGhlbWUgPSBleHBvcnRzLlN0eWxlVGhlbWUgfHwgKGV4cG9ydHMuU3R5bGVUaGVtZSA9IHt9KSk7XG4vLyBcbnZhciBBeGlzRm9sZFN0YXRlO1xuKGZ1bmN0aW9uIChBeGlzRm9sZFN0YXRlKSB7XG4gICAgLy8gXG4gICAgQXhpc0ZvbGRTdGF0ZVtcImFmTm9uZVwiXSA9IFwibm9uZVwiO1xuICAgIC8vIFxuICAgIEF4aXNGb2xkU3RhdGVbXCJhZkZvbGRlZFwiXSA9IFwiZm9sZGVkXCI7XG4gICAgLy8gXG4gICAgQXhpc0ZvbGRTdGF0ZVtcImFmU3luY2hyb25pemVkXCJdID0gXCJzeW5jaHJvbml6ZWRcIjtcbn0pKEF4aXNGb2xkU3RhdGUgPSBleHBvcnRzLkF4aXNGb2xkU3RhdGUgfHwgKGV4cG9ydHMuQXhpc0ZvbGRTdGF0ZSA9IHt9KSk7XG4vLyBcbnZhciBMaW5lUGF0dGVybjtcbihmdW5jdGlvbiAoTGluZVBhdHRlcm4pIHtcbiAgICAvLyBcbiAgICBMaW5lUGF0dGVybltcIkxpbmVQYXR0ZXJuTm9uZVwiXSA9IFwibm9uZVwiO1xuICAgIC8vIFxuICAgIExpbmVQYXR0ZXJuW1wiTGluZVBhdHRlcm5Tb2xpZFwiXSA9IFwic29saWRcIjtcbiAgICAvLyBcbiAgICBMaW5lUGF0dGVybltcIkxpbmVQYXR0ZXJuRGFzaGVkXCJdID0gXCJkYXNoZWRcIjtcbiAgICAvLyBcbiAgICBMaW5lUGF0dGVybltcIkxpbmVQYXR0ZXJuRG90dGVkXCJdID0gXCJkb3R0ZWRcIjtcbn0pKExpbmVQYXR0ZXJuID0gZXhwb3J0cy5MaW5lUGF0dGVybiB8fCAoZXhwb3J0cy5MaW5lUGF0dGVybiA9IHt9KSk7XG4vLyBcbnZhciBMaW5lVmlzaWJpbGl0eTtcbihmdW5jdGlvbiAoTGluZVZpc2liaWxpdHkpIHtcbiAgICAvLyBcbiAgICBMaW5lVmlzaWJpbGl0eVtcIkxpbmVWaXNpYmlsaXR5QXV0b1wiXSA9IFwiYXV0b21hdGljXCI7XG4gICAgLy8gXG4gICAgTGluZVZpc2liaWxpdHlbXCJMaW5lVmlzaWJpbGl0eU9uXCJdID0gXCJvblwiO1xuICAgIC8vIFxuICAgIExpbmVWaXNpYmlsaXR5W1wiTGluZVZpc2liaWxpdHlPZmZcIl0gPSBcIm9mZlwiO1xufSkoTGluZVZpc2liaWxpdHkgPSBleHBvcnRzLkxpbmVWaXNpYmlsaXR5IHx8IChleHBvcnRzLkxpbmVWaXNpYmlsaXR5ID0ge30pKTtcbi8vIFxudmFyIFN0eWxlc0xpbmVQYXR0ZXJuO1xuKGZ1bmN0aW9uIChTdHlsZXNMaW5lUGF0dGVybikge1xuICAgIC8vIFxuICAgIFN0eWxlc0xpbmVQYXR0ZXJuW1wiU3R5bGVzTGluZVBhdHRlcm5Tb2xpZFwiXSA9IFwic29saWRcIjtcbiAgICAvLyBcbiAgICBTdHlsZXNMaW5lUGF0dGVybltcIlN0eWxlc0xpbmVQYXR0ZXJuRGFzaGVkXCJdID0gXCJkYXNoZWRcIjtcbiAgICAvLyBcbiAgICBTdHlsZXNMaW5lUGF0dGVybltcIlN0eWxlc0xpbmVQYXR0ZXJuRG90dGVkXCJdID0gXCJkb3R0ZWRcIjtcbn0pKFN0eWxlc0xpbmVQYXR0ZXJuID0gZXhwb3J0cy5TdHlsZXNMaW5lUGF0dGVybiB8fCAoZXhwb3J0cy5TdHlsZXNMaW5lUGF0dGVybiA9IHt9KSk7XG4vLyBcbnZhciBMaW5lQ2FwO1xuKGZ1bmN0aW9uIChMaW5lQ2FwKSB7XG4gICAgLy8gXG4gICAgTGluZUNhcFtcIkxpbmVDYXBGbGF0XCJdID0gXCJmbGF0XCI7XG4gICAgLy8gXG4gICAgTGluZUNhcFtcIkxpbmVDYXBTcXVhcmVcIl0gPSBcInNxdWFyZVwiO1xuICAgIC8vIFxuICAgIExpbmVDYXBbXCJMaW5lQ2FwUm91bmRcIl0gPSBcInJvdW5kXCI7XG4gICAgLy8gXG4gICAgTGluZUNhcFtcIkxpbmVDYXBUcmlhbmdsZVwiXSA9IFwidHJpYW5nbGVcIjtcbn0pKExpbmVDYXAgPSBleHBvcnRzLkxpbmVDYXAgfHwgKGV4cG9ydHMuTGluZUNhcCA9IHt9KSk7XG4vLyBcbnZhciBMaW5lSm9pbjtcbihmdW5jdGlvbiAoTGluZUpvaW4pIHtcbiAgICAvLyBcbiAgICBMaW5lSm9pbltcIkJldmVsSm9pblwiXSA9IFwiYmV2ZWxcIjtcbiAgICAvLyBcbiAgICBMaW5lSm9pbltcIk1pdGVySm9pblwiXSA9IFwibWl0ZXJcIjtcbiAgICAvLyBcbiAgICBMaW5lSm9pbltcIlJvdW5kSm9pblwiXSA9IFwicm91bmRcIjtcbn0pKExpbmVKb2luID0gZXhwb3J0cy5MaW5lSm9pbiB8fCAoZXhwb3J0cy5MaW5lSm9pbiA9IHt9KSk7XG4vLyBcbnZhciBMaW5lQWxpZ25tZW50O1xuKGZ1bmN0aW9uIChMaW5lQWxpZ25tZW50KSB7XG4gICAgLy8gXG4gICAgTGluZUFsaWdubWVudFtcIkFsaWdubWVudENlbnRlclwiXSA9IFwiY2VudGVyXCI7XG4gICAgLy8gXG4gICAgTGluZUFsaWdubWVudFtcIkFsaWdubWVudEluc2V0XCJdID0gXCJpbnNldFwiO1xufSkoTGluZUFsaWdubWVudCA9IGV4cG9ydHMuTGluZUFsaWdubWVudCB8fCAoZXhwb3J0cy5MaW5lQWxpZ25tZW50ID0ge30pKTtcbi8vIFxudmFyIEZpbGxNb2RlO1xuKGZ1bmN0aW9uIChGaWxsTW9kZSkge1xuICAgIC8vIFxuICAgIEZpbGxNb2RlW1wiRmlsbEV2ZW5PZGRcIl0gPSBcImV2ZW4tb2RkXCI7XG4gICAgLy8gXG4gICAgRmlsbE1vZGVbXCJGaWxsV2luZGluZ1wiXSA9IFwid2luZGluZ1wiO1xufSkoRmlsbE1vZGUgPSBleHBvcnRzLkZpbGxNb2RlIHx8IChleHBvcnRzLkZpbGxNb2RlID0ge30pKTtcbi8vIFxudmFyIEJvcmRlclN0eWxlO1xuKGZ1bmN0aW9uIChCb3JkZXJTdHlsZSkge1xuICAgIC8vIG5vbmVcbiAgICBCb3JkZXJTdHlsZVtcIkJvcmRlclN0eWxlTm9uZVwiXSA9IFwiYnMtbm9uZVwiO1xuICAgIC8vIGhpZGRlblxuICAgIEJvcmRlclN0eWxlW1wiQm9yZGVyU3R5bGVIaWRkZW5cIl0gPSBcImJzLWhpZGRlblwiO1xuICAgIC8vIGRvdHRlZFxuICAgIEJvcmRlclN0eWxlW1wiQm9yZGVyU3R5bGVEb3R0ZWRcIl0gPSBcImJzLWRvdHRlZFwiO1xuICAgIC8vIGRhc2hlZFxuICAgIEJvcmRlclN0eWxlW1wiQm9yZGVyU3R5bGVEYXNoZWRcIl0gPSBcImJzLWRhc2hlZFwiO1xuICAgIC8vIHNvbGlkXG4gICAgQm9yZGVyU3R5bGVbXCJCb3JkZXJTdHlsZVNvbGlkXCJdID0gXCJicy1zb2xpZFwiO1xuICAgIC8vIGRvdWJsZVxuICAgIEJvcmRlclN0eWxlW1wiQm9yZGVyU3R5bGVEb3VibGVcIl0gPSBcImJzLWRvdWJsZVwiO1xuICAgIC8vIGdyb292ZVxuICAgIEJvcmRlclN0eWxlW1wiQm9yZGVyU3R5bGVHcm9vdmVcIl0gPSBcImJzLWdyb292ZVwiO1xuICAgIC8vIHJpZGdlXG4gICAgQm9yZGVyU3R5bGVbXCJCb3JkZXJTdHlsZVJpZGdlXCJdID0gXCJicy1yaWRnZVwiO1xuICAgIC8vIGluc2V0XG4gICAgQm9yZGVyU3R5bGVbXCJCb3JkZXJTdHlsZUluc2V0XCJdID0gXCJicy1pbnNldFwiO1xuICAgIC8vIG91dHNldFxuICAgIEJvcmRlclN0eWxlW1wiQm9yZGVyU3R5bGVPdXRzZXRcIl0gPSBcImJzLW91dHNldFwiO1xuICAgIC8vIGludmFsaWRcbiAgICBCb3JkZXJTdHlsZVtcIkJvcmRlclN0eWxlSW52YWxpZFwiXSA9IFwiYnMtaW52YWxpZFwiO1xufSkoQm9yZGVyU3R5bGUgPSBleHBvcnRzLkJvcmRlclN0eWxlIHx8IChleHBvcnRzLkJvcmRlclN0eWxlID0ge30pKTtcbi8vIFxudmFyIENvbG9yUGFsZXR0ZVR5cGU7XG4oZnVuY3Rpb24gKENvbG9yUGFsZXR0ZVR5cGUpIHtcbiAgICAvLyBcbiAgICBDb2xvclBhbGV0dGVUeXBlW1wiQ29sb3JQYWxldHRlUmVndWxhclwiXSA9IFwiY29sb3ItcGFsZXR0ZS1yZWd1bGFyXCI7XG4gICAgLy8gXG4gICAgQ29sb3JQYWxldHRlVHlwZVtcIkNvbG9yUGFsZXR0ZU9yZGVyZWREaXZlcmdpbmdcIl0gPSBcInBhbGV0dGUtb3JkZXJlZC1kaXZlcmdpbmdcIjtcbiAgICAvLyBcbiAgICBDb2xvclBhbGV0dGVUeXBlW1wiQ29sb3JQYWxldHRlT3JkZXJlZExpbmVhclwiXSA9IFwicGFsZXR0ZS1vcmRlcmVkLWxpbmVhclwiO1xufSkoQ29sb3JQYWxldHRlVHlwZSA9IGV4cG9ydHMuQ29sb3JQYWxldHRlVHlwZSB8fCAoZXhwb3J0cy5Db2xvclBhbGV0dGVUeXBlID0ge30pKTtcbi8vIFxudmFyIFBhbGV0dGVGbGFncztcbihmdW5jdGlvbiAoUGFsZXR0ZUZsYWdzKSB7XG4gICAgLy8gXG4gICAgUGFsZXR0ZUZsYWdzW1wiUGFsZXR0ZUZsYWdOb25lXCJdID0gXCJwYWxldHRlLWZsYWctbm9uZVwiO1xuICAgIC8vIFxuICAgIFBhbGV0dGVGbGFnc1tcIlBhbGV0dGVGbGFnQ3VzdG9tXCJdID0gXCJwYWxldHRlLWZsYWctY3VzdG9tXCI7XG4gICAgLy8gXG4gICAgUGFsZXR0ZUZsYWdzW1wiUGFsZXR0ZUZsYWdOb3RRdWFudGl0YXRpdmVcIl0gPSBcInBhbGV0dGUtZmxhZy1ub3QtcXVhbnRpdGF0aXZlXCI7XG4gICAgLy8gXG4gICAgUGFsZXR0ZUZsYWdzW1wiUGFsZXR0ZUZsYWdOb3RDYXRlZ29yaWNhbFwiXSA9IFwicGFsZXR0ZS1mbGFnLW5vdC1jYXRlZ29yaWNhbFwiO1xuICAgIC8vIFxuICAgIFBhbGV0dGVGbGFnc1tcIlBhbGV0dGVGbGFnTm90UmVmZXJlbmNlQmFuZFwiXSA9IFwicGFsZXR0ZS1mbGFnLW5vdC1yZWZlcmVuY2UtYmFuZFwiO1xuICAgIC8vIFxuICAgIFBhbGV0dGVGbGFnc1tcIlBhbGV0dGVGbGFnTm90Qm94cGxvdFwiXSA9IFwicGFsZXR0ZS1mbGFnLW5vdC1ib3hwbG90XCI7XG4gICAgLy8gXG4gICAgUGFsZXR0ZUZsYWdzW1wiUGFsZXR0ZUZsYWdOb3RGaWxsZWRNYXBMaWdodFwiXSA9IFwicGFsZXR0ZS1mbGFnLW5vdC1maWxsZWQtbWFwLWxpZ2h0XCI7XG4gICAgLy8gXG4gICAgUGFsZXR0ZUZsYWdzW1wiUGFsZXR0ZUZsYWdOb3RGaWxsZWRNYXBEYXJrXCJdID0gXCJwYWxldHRlLWZsYWctbm90LWZpbGxlZC1tYXAtZGFya1wiO1xuICAgIC8vIFxuICAgIFBhbGV0dGVGbGFnc1tcIlBhbGV0dGVGbGFnTGVnYWN5XCJdID0gXCJwYWxldHRlLWZsYWctbGVnYWN5XCI7XG59KShQYWxldHRlRmxhZ3MgPSBleHBvcnRzLlBhbGV0dGVGbGFncyB8fCAoZXhwb3J0cy5QYWxldHRlRmxhZ3MgPSB7fSkpO1xuLy8gXG52YXIgRGVmYXVsdFBhbGV0dGVUeXBlO1xuKGZ1bmN0aW9uIChEZWZhdWx0UGFsZXR0ZVR5cGUpIHtcbiAgICAvLyBcbiAgICBEZWZhdWx0UGFsZXR0ZVR5cGVbXCJTbWFsbE5vbWluYWxcIl0gPSBcInBhbGV0dGUtZGVmYXVsdC1zbWFsbC1ub21pbmFsXCI7XG4gICAgLy8gXG4gICAgRGVmYXVsdFBhbGV0dGVUeXBlW1wiTGFyZ2VOb21pbmFsXCJdID0gXCJwYWxldHRlLWRlZmF1bHQtbGFyZ2Utbm9taW5hbFwiO1xuICAgIC8vIFxuICAgIERlZmF1bHRQYWxldHRlVHlwZVtcIk9yZGluYWxcIl0gPSBcInBhbGV0dGUtZGVmYXVsdC1vcmRpbmFsXCI7XG4gICAgLy8gXG4gICAgRGVmYXVsdFBhbGV0dGVUeXBlW1wiUXVhbnRpdGF0aXZlUG9zaXRpdmVcIl0gPSBcInBhbGV0dGUtZGVmYXVsdC1xdWFudC1wb3NcIjtcbiAgICAvLyBcbiAgICBEZWZhdWx0UGFsZXR0ZVR5cGVbXCJRdWFudGl0YXRpdmVOZWdhdGl2ZVwiXSA9IFwicGFsZXR0ZS1kZWZhdWx0LXF1YW50LW5lZ1wiO1xuICAgIC8vIFxuICAgIERlZmF1bHRQYWxldHRlVHlwZVtcIlF1YW50aXRhdGl2ZURpdmVyZ2luZ1wiXSA9IFwicGFsZXR0ZS1kZWZhdWx0LXF1YW50LWRpdlwiO1xuICAgIC8vIFxuICAgIERlZmF1bHRQYWxldHRlVHlwZVtcIlF1YW50aXRhdGl2ZVBvc2l0aXZlTGlnaHRcIl0gPSBcInBhbGV0dGUtZGVmYXVsdC1xdWFudC1wb3MtbGlnaHRcIjtcbiAgICAvLyBcbiAgICBEZWZhdWx0UGFsZXR0ZVR5cGVbXCJRdWFudGl0YXRpdmVOZWdhdGl2ZUxpZ2h0XCJdID0gXCJwYWxldHRlLWRlZmF1bHQtcXVhbnQtbmVnLWxpZ2h0XCI7XG4gICAgLy8gXG4gICAgRGVmYXVsdFBhbGV0dGVUeXBlW1wiUXVhbnRpdGF0aXZlRGl2ZXJnaW5nTGlnaHRcIl0gPSBcInBhbGV0dGUtZGVmYXVsdC1xdWFudC1kaXYtbGlnaHRcIjtcbiAgICAvLyBcbiAgICBEZWZhdWx0UGFsZXR0ZVR5cGVbXCJRdWFudGl0YXRpdmVQb3NpdGl2ZUFyZWFcIl0gPSBcInBhbGV0dGUtZGVmYXVsdC1xdWFudC1wb3MtYXJlYVwiO1xuICAgIC8vIFxuICAgIERlZmF1bHRQYWxldHRlVHlwZVtcIlF1YW50aXRhdGl2ZU5lZ2F0aXZlQXJlYVwiXSA9IFwicGFsZXR0ZS1kZWZhdWx0LXF1YW50LW5lZy1hcmVhXCI7XG4gICAgLy8gXG4gICAgRGVmYXVsdFBhbGV0dGVUeXBlW1wiUXVhbnRpdGF0aXZlRGl2ZXJnaW5nQXJlYVwiXSA9IFwicGFsZXR0ZS1kZWZhdWx0LXF1YW50LWRpdi1hcmVhXCI7XG59KShEZWZhdWx0UGFsZXR0ZVR5cGUgPSBleHBvcnRzLkRlZmF1bHRQYWxldHRlVHlwZSB8fCAoZXhwb3J0cy5EZWZhdWx0UGFsZXR0ZVR5cGUgPSB7fSkpO1xuLy8gXG52YXIgU2hvd0JvdW5kcztcbihmdW5jdGlvbiAoU2hvd0JvdW5kcykge1xuICAgIC8vIFxuICAgIFNob3dCb3VuZHNbXCJCb3RoXCJdID0gXCJzaG93LWJvdGhcIjtcbiAgICAvLyBcbiAgICBTaG93Qm91bmRzW1wiVXBwZXJcIl0gPSBcInNob3ctdXBwZXJcIjtcbiAgICAvLyBcbiAgICBTaG93Qm91bmRzW1wiTG93ZXJcIl0gPSBcInNob3ctbG93ZXJcIjtcbn0pKFNob3dCb3VuZHMgPSBleHBvcnRzLlNob3dCb3VuZHMgfHwgKGV4cG9ydHMuU2hvd0JvdW5kcyA9IHt9KSk7XG4vLyBTYW1wbGUgdnMuIHBvcHVsYXRpb24gc3RhbmRhcmQgZGV2aWF0aW9uXG52YXIgU3REZXZUeXBlO1xuKGZ1bmN0aW9uIChTdERldlR5cGUpIHtcbiAgICAvLyBcbiAgICBTdERldlR5cGVbXCJTYW1wbGVcIl0gPSBcInN0ZGV2LXNhbXBsZVwiO1xuICAgIC8vIFxuICAgIFN0RGV2VHlwZVtcIlBvcHVsYXRpb25cIl0gPSBcInN0ZGV2LXBvcHVsYXRpb25cIjtcbn0pKFN0RGV2VHlwZSA9IGV4cG9ydHMuU3REZXZUeXBlIHx8IChleHBvcnRzLlN0RGV2VHlwZSA9IHt9KSk7XG4vLyBcbnZhciBSZWZlcmVuY2VMaW5lRm9ybXVsYUdyb3VwO1xuKGZ1bmN0aW9uIChSZWZlcmVuY2VMaW5lRm9ybXVsYUdyb3VwKSB7XG4gICAgLy8gXG4gICAgUmVmZXJlbmNlTGluZUZvcm11bGFHcm91cFtcIk5vbmVcIl0gPSBcIm5vbmVcIjtcbiAgICAvLyBcbiAgICBSZWZlcmVuY2VMaW5lRm9ybXVsYUdyb3VwW1wiTGluZVwiXSA9IFwibGluZVwiO1xuICAgIC8vIFxuICAgIFJlZmVyZW5jZUxpbmVGb3JtdWxhR3JvdXBbXCJCYW5kXCJdID0gXCJiYW5kXCI7XG4gICAgLy8gXG4gICAgUmVmZXJlbmNlTGluZUZvcm11bGFHcm91cFtcIkRpc3RyaWJ1dGlvblwiXSA9IFwiZGlzdHJpYnV0aW9uXCI7XG4gICAgLy8gXG4gICAgUmVmZXJlbmNlTGluZUZvcm11bGFHcm91cFtcIkJveHBsb3RcIl0gPSBcImJveHBsb3RcIjtcbn0pKFJlZmVyZW5jZUxpbmVGb3JtdWxhR3JvdXAgPSBleHBvcnRzLlJlZmVyZW5jZUxpbmVGb3JtdWxhR3JvdXAgfHwgKGV4cG9ydHMuUmVmZXJlbmNlTGluZUZvcm11bGFHcm91cCA9IHt9KSk7XG4vLyBcbnZhciBSZWZlcmVuY2VMaW5lU2NvcGVUeXBlO1xuKGZ1bmN0aW9uIChSZWZlcmVuY2VMaW5lU2NvcGVUeXBlKSB7XG4gICAgLy8gXG4gICAgUmVmZXJlbmNlTGluZVNjb3BlVHlwZVtcIlBlckNlbGxcIl0gPSBcInBlci1jZWxsXCI7XG4gICAgLy8gXG4gICAgUmVmZXJlbmNlTGluZVNjb3BlVHlwZVtcIlBlclBhbmVcIl0gPSBcInBlci1wYW5lXCI7XG4gICAgLy8gXG4gICAgUmVmZXJlbmNlTGluZVNjb3BlVHlwZVtcIlBlclRhYmxlXCJdID0gXCJwZXItdGFibGVcIjtcbn0pKFJlZmVyZW5jZUxpbmVTY29wZVR5cGUgPSBleHBvcnRzLlJlZmVyZW5jZUxpbmVTY29wZVR5cGUgfHwgKGV4cG9ydHMuUmVmZXJlbmNlTGluZVNjb3BlVHlwZSA9IHt9KSk7XG4vLyBob3cgc2hvdWxkIHRoZSBsaW5lIGJlIGxhYmVsZWRcbnZhciBSZWZlcmVuY2VMaW5lTGFiZWxUeXBlO1xuKGZ1bmN0aW9uIChSZWZlcmVuY2VMaW5lTGFiZWxUeXBlKSB7XG4gICAgLy8gbm8gbGFiZWxcbiAgICBSZWZlcmVuY2VMaW5lTGFiZWxUeXBlW1wiTm9uZVwiXSA9IFwibm9uZVwiO1xuICAgIC8vIGFuIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGxhYmVsXG4gICAgUmVmZXJlbmNlTGluZUxhYmVsVHlwZVtcIkF1dG9tYXRpY1wiXSA9IFwiYXV0b21hdGljXCI7XG4gICAgLy8gXG4gICAgUmVmZXJlbmNlTGluZUxhYmVsVHlwZVtcIlZhbHVlXCJdID0gXCJ2YWx1ZVwiO1xuICAgIC8vIFxuICAgIFJlZmVyZW5jZUxpbmVMYWJlbFR5cGVbXCJDb21wdXRhdGlvblwiXSA9IFwiY29tcHV0YXRpb25cIjtcbiAgICAvLyBhIHVzZXIgZGVmaW5lZCBsYWJlbFxuICAgIFJlZmVyZW5jZUxpbmVMYWJlbFR5cGVbXCJDdXN0b21cIl0gPSBcImN1c3RvbVwiO1xufSkoUmVmZXJlbmNlTGluZUxhYmVsVHlwZSA9IGV4cG9ydHMuUmVmZXJlbmNlTGluZUxhYmVsVHlwZSB8fCAoZXhwb3J0cy5SZWZlcmVuY2VMaW5lTGFiZWxUeXBlID0ge30pKTtcbi8vIGhvdyBzaG91bGQgdGhlIGxpbmUgYmUgY29tcHV0ZWRcbnZhciBSZWZlcmVuY2VMaW5lRm9ybXVsYVR5cGU7XG4oZnVuY3Rpb24gKFJlZmVyZW5jZUxpbmVGb3JtdWxhVHlwZSkge1xuICAgIC8vIGEgdXNlciBzcGVjaWZpZWQgY29uc3RhbnQgdmFsdWVcbiAgICBSZWZlcmVuY2VMaW5lRm9ybXVsYVR5cGVbXCJDb25zdGFudFwiXSA9IFwiY29uc3RhbnRcIjtcbiAgICAvLyBcbiAgICBSZWZlcmVuY2VMaW5lRm9ybXVsYVR5cGVbXCJUb3RhbFwiXSA9IFwidG90YWxcIjtcbiAgICAvLyB0b3RhbCBvZiBhbGwgdmFsdWVzIGF0IHRoZSBnaXZlbiBzY29wZSA8LSBpcyB0aGlzIGNvcnJlY3Q/IGxvb2tzIGxpa2UgY29tbWVudCBmcm9tIEZvcm11bGFUb3RhbFxuICAgIFJlZmVyZW5jZUxpbmVGb3JtdWxhVHlwZVtcIlN1bVwiXSA9IFwic3VtXCI7XG4gICAgLy8gbWluaW11bSB2YWx1ZSBpbiB0aGUgc2NvcGVcbiAgICBSZWZlcmVuY2VMaW5lRm9ybXVsYVR5cGVbXCJNaW5cIl0gPSBcIm1pblwiO1xuICAgIC8vIG1heGltdW0gdmFsdWUgaW4gdGhlIHNjb3BlXG4gICAgUmVmZXJlbmNlTGluZUZvcm11bGFUeXBlW1wiTWF4XCJdID0gXCJtYXhcIjtcbiAgICAvLyBhdmVyYWdlIHZhbHVlIGluIHRoZSBzY29wZVxuICAgIFJlZmVyZW5jZUxpbmVGb3JtdWxhVHlwZVtcIkF2ZXJhZ2VcIl0gPSBcImF2ZXJhZ2VcIjtcbiAgICAvLyBtZWRpYW4gdmFsdWUgaW4gdGhlIHNjb3BlXG4gICAgUmVmZXJlbmNlTGluZUZvcm11bGFUeXBlW1wiTWVkaWFuXCJdID0gXCJtZWRpYW5cIjtcbiAgICAvLyB0aGUgbiBxdWFudGlsZXMgdmFsdWVzIGluIHRoZSBzY29wZVxuICAgIFJlZmVyZW5jZUxpbmVGb3JtdWxhVHlwZVtcIlF1YW50aWxlc1wiXSA9IFwicXVhbnRpbGVzXCI7XG4gICAgLy8gYSBnaXZlbiBwZXJjZW50aWxlIGluIHRoZSBzY29wZVxuICAgIFJlZmVyZW5jZUxpbmVGb3JtdWxhVHlwZVtcIlBlcmNlbnRpbGVcIl0gPSBcInBlcmNlbnRpbGVcIjtcbiAgICAvLyBtZWFuICstIHN0YW5kYXJkIGRldmlhdGlvblxuICAgIFJlZmVyZW5jZUxpbmVGb3JtdWxhVHlwZVtcIlN0YW5kYXJkRGV2aWF0aW9uXCJdID0gXCJzdGFuZGFyZC1kZXZpYXRpb25cIjtcbiAgICAvLyBhIGdpdmVuIGNvbmZpZGVuY2UgaW50ZXJ2YWwgYXJvdW5kIHRoZSBtZWFuXG4gICAgUmVmZXJlbmNlTGluZUZvcm11bGFUeXBlW1wiQ29uZmlkZW5jZUludGVydmFsXCJdID0gXCJjb25maWRlbmNlLWludGVydmFsXCI7XG4gICAgLy8gXG4gICAgUmVmZXJlbmNlTGluZUZvcm11bGFUeXBlW1wiTWVkaWFuQ29uZmlkZW5jZUludGVydmFsXCJdID0gXCJtZWRpYW4tY29uZmlkZW5jZS1pbnRlcnZhbFwiO1xufSkoUmVmZXJlbmNlTGluZUZvcm11bGFUeXBlID0gZXhwb3J0cy5SZWZlcmVuY2VMaW5lRm9ybXVsYVR5cGUgfHwgKGV4cG9ydHMuUmVmZXJlbmNlTGluZUZvcm11bGFUeXBlID0ge30pKTtcbi8vIExpbmUgb3IgY29uZmlkZW5jZSBpbnRlcnZhbCBvciBib3RoXG52YXIgUmVmZXJlbmNlTGluZUNvbmZpZGVuY2VJbnRlcnZhbFN0YXRlO1xuKGZ1bmN0aW9uIChSZWZlcmVuY2VMaW5lQ29uZmlkZW5jZUludGVydmFsU3RhdGUpIHtcbiAgICAvLyBkaXNwbGF5IGxpbmUgb25seVxuICAgIFJlZmVyZW5jZUxpbmVDb25maWRlbmNlSW50ZXJ2YWxTdGF0ZVtcIkxpbmVPbmx5XCJdID0gXCJsaW5lLW9ubHlcIjtcbiAgICAvLyBkaXNwbGF5IHRoZSBsaW5lIGFuZCBhIGNvbmZpZGVuY2UgaW50ZXJ2YWxcbiAgICBSZWZlcmVuY2VMaW5lQ29uZmlkZW5jZUludGVydmFsU3RhdGVbXCJMaW5lQW5kQ29uZmlkZW5jZUludGVydmFsXCJdID0gXCJsaW5lLWFuZC1pbnRlcnZhbFwiO1xuICAgIC8vIGRpc3BsYXkgY29uZmlkZW5jZSBpbnRlcnZhbCBvbmx5XG4gICAgUmVmZXJlbmNlTGluZUNvbmZpZGVuY2VJbnRlcnZhbFN0YXRlW1wiQ29uZmlkZW5jZUludGVydmFsT25seVwiXSA9IFwiaW50ZXJ2YWwtb25seVwiO1xufSkoUmVmZXJlbmNlTGluZUNvbmZpZGVuY2VJbnRlcnZhbFN0YXRlID0gZXhwb3J0cy5SZWZlcmVuY2VMaW5lQ29uZmlkZW5jZUludGVydmFsU3RhdGUgfHwgKGV4cG9ydHMuUmVmZXJlbmNlTGluZUNvbmZpZGVuY2VJbnRlcnZhbFN0YXRlID0ge30pKTtcbi8vIHR5cGUgb2YgZGlzdHJpYnV0aW9uLiBpLmUuIFBlcmNlbnRhZ2UsIFBlcmNlbnRpbGUsIFF1YW50aWxlLCBhbmQgU3RhbmRhcmQgRGV2aWF0aW9uXG52YXIgUmVmZXJlbmNlTGluZURpc3RyaWJ1dGlvblR5cGU7XG4oZnVuY3Rpb24gKFJlZmVyZW5jZUxpbmVEaXN0cmlidXRpb25UeXBlKSB7XG4gICAgLy8gZGlzdHJpYnV0aW9uIHR5cGUgcGVyY2VudGFnZVxuICAgIFJlZmVyZW5jZUxpbmVEaXN0cmlidXRpb25UeXBlW1wiUGVyY2VudGFnZXNcIl0gPSBcInBlcmNlbnRhZ2VzXCI7XG4gICAgLy8gZGlzdHJpYnV0aW9uIHR5cGUgcGVyY2VudGlsZVxuICAgIFJlZmVyZW5jZUxpbmVEaXN0cmlidXRpb25UeXBlW1wiUGVyY2VudGlsZXNcIl0gPSBcInBlcmNlbnRpbGVzXCI7XG4gICAgLy8gZGlzdHJpYnV0aW9uIHR5cGUgcXVhbnRpbGVcbiAgICBSZWZlcmVuY2VMaW5lRGlzdHJpYnV0aW9uVHlwZVtcIlF1YW50aWxlc1wiXSA9IFwicXVhbnRpbGVzXCI7XG4gICAgLy8gZGlzdHJpYnV0aW9uIHR5cGUgc3RhbmRhcmQgZGV2aWF0aW9uXG4gICAgUmVmZXJlbmNlTGluZURpc3RyaWJ1dGlvblR5cGVbXCJTdGFuZGFyZERldmlhdGlvblwiXSA9IFwic3RhbmRhcmQtZGV2aWF0aW9uXCI7XG59KShSZWZlcmVuY2VMaW5lRGlzdHJpYnV0aW9uVHlwZSA9IGV4cG9ydHMuUmVmZXJlbmNlTGluZURpc3RyaWJ1dGlvblR5cGUgfHwgKGV4cG9ydHMuUmVmZXJlbmNlTGluZURpc3RyaWJ1dGlvblR5cGUgPSB7fSkpO1xuLy8gdGhlIGtpbmQgb2YgTE9EIGNhbGMgdG8gdXNlIGZvciBhIGdpdmVuIHJlZmVyZW5jZSBsaW5lXG52YXIgUmVmZXJlbmNlTGluZUxPRENhbGNUeXBlO1xuKGZ1bmN0aW9uIChSZWZlcmVuY2VMaW5lTE9EQ2FsY1R5cGUpIHtcbiAgICAvLyBDcmVhdGUgYSBmb3JtdWxhIHVzaW5nIGEgRklYRUQtbGlrZSBsZXZlbC1vZi1kZXRhaWwgY2FsY3VsYXRpb24sIHRvIHdoaWNoIHNoZWV0IGZpbHRlcnMgYXBwbHksIHRoYXQgd2lsbCBnbyBvbnRvIGEgc3BlY2lmaWMgc2hlZXRcbiAgICBSZWZlcmVuY2VMaW5lTE9EQ2FsY1R5cGVbXCJNZWFzdXJlRm9ybXVsYVwiXSA9IFwibWVhc3VyZS1mb3JtdWxhXCI7XG4gICAgLy8gQ3JlYXRlIGEgYm9vbGVhbiBmb3JtdWxhIHRoYXQgY2FuIGJlIHVzZWQgYXMgYSBmaWx0ZXJcbiAgICBSZWZlcmVuY2VMaW5lTE9EQ2FsY1R5cGVbXCJCb29sZWFuRmlsdGVyXCJdID0gXCJib29sZWFuLWZpbHRlclwiO1xufSkoUmVmZXJlbmNlTGluZUxPRENhbGNUeXBlID0gZXhwb3J0cy5SZWZlcmVuY2VMaW5lTE9EQ2FsY1R5cGUgfHwgKGV4cG9ydHMuUmVmZXJlbmNlTGluZUxPRENhbGNUeXBlID0ge30pKTtcbi8vIFxudmFyIEJveHBsb3RXaGlza2VyVHlwZTtcbihmdW5jdGlvbiAoQm94cGxvdFdoaXNrZXJUeXBlKSB7XG4gICAgLy8gXG4gICAgQm94cGxvdFdoaXNrZXJUeXBlW1wiU3RhbmRhcmRcIl0gPSBcInN0YW5kYXJkXCI7XG4gICAgLy8gXG4gICAgQm94cGxvdFdoaXNrZXJUeXBlW1wiTWlubWF4XCJdID0gXCJtaW5tYXhcIjtcbn0pKEJveHBsb3RXaGlza2VyVHlwZSA9IGV4cG9ydHMuQm94cGxvdFdoaXNrZXJUeXBlIHx8IChleHBvcnRzLkJveHBsb3RXaGlza2VyVHlwZSA9IHt9KSk7XG4vLyBjYXRlZ29yaWVzIG9mIGNvbm5lY3Rpb24gdHlwZXMgZGlzcGxheWVkIGJ5IHRoZSBjb25uZWN0aW9uIFVJXG52YXIgQ29ubmVjdGlvblR5cGVDYXRlZ29yeTtcbihmdW5jdGlvbiAoQ29ubmVjdGlvblR5cGVDYXRlZ29yeSkge1xuICAgIC8vIHN0YW5kYXJkIGRhdGFiYXNlXG4gICAgQ29ubmVjdGlvblR5cGVDYXRlZ29yeVtcIkNUQ19EYXRhYmFzZVwiXSA9IFwiZGF0YWJhc2VcIjtcbiAgICAvLyAnTW9yZSBJdGVtcyAuLi4nIG1ldGEgaXRlbVxuICAgIENvbm5lY3Rpb25UeXBlQ2F0ZWdvcnlbXCJDVENfTW9yZVwiXSA9IFwibW9yZVwiO1xuICAgIC8vIE90aGVyIGZpbGUgdHlwZXNcbiAgICBDb25uZWN0aW9uVHlwZUNhdGVnb3J5W1wiQ1RDX090aGVyXCJdID0gXCJvdGhlclwiO1xuICAgIC8vIGludmFsaWQgY29ubmVjdGlvbiBjYXRlZ29yeVxuICAgIENvbm5lY3Rpb25UeXBlQ2F0ZWdvcnlbXCJDVENfSW52YWxpZFwiXSA9IFwiaW52YWxpZFwiO1xufSkoQ29ubmVjdGlvblR5cGVDYXRlZ29yeSA9IGV4cG9ydHMuQ29ubmVjdGlvblR5cGVDYXRlZ29yeSB8fCAoZXhwb3J0cy5Db25uZWN0aW9uVHlwZUNhdGVnb3J5ID0ge30pKTtcbi8vIGEgbG9naWNhbCBncm91cGluZyBvZiBjb25uZWN0aW9uIHR5cGVzIGRpc3BsYXllZCBieSB0aGUgY29ubmVjdGlvbiBVSVxudmFyIENvbm5lY3Rpb25UeXBlR3JvdXA7XG4oZnVuY3Rpb24gKENvbm5lY3Rpb25UeXBlR3JvdXApIHtcbiAgICAvLyBpbiBhIGZpbGVcbiAgICBDb25uZWN0aW9uVHlwZUdyb3VwW1wiQ1RHX0ZpbGVcIl0gPSBcImZpbGVcIjtcbiAgICAvLyBvbiBhIHNlcnZlclxuICAgIENvbm5lY3Rpb25UeXBlR3JvdXBbXCJDVEdfU2VydmVyXCJdID0gXCJzZXJ2ZXJcIjtcbiAgICAvLyBvbiBhIHJlY2VudCBzZXJ2ZXJcbiAgICBDb25uZWN0aW9uVHlwZUdyb3VwW1wiQ1RHX01ydVNlcnZlclwiXSA9IFwibXJ1LXNlcnZlclwiO1xuICAgIC8vIGludmFsaWQgZ3JvdXBcbiAgICBDb25uZWN0aW9uVHlwZUdyb3VwW1wiQ1RHX0ludmFsaWRcIl0gPSBcImludmFsaWRcIjtcbn0pKENvbm5lY3Rpb25UeXBlR3JvdXAgPSBleHBvcnRzLkNvbm5lY3Rpb25UeXBlR3JvdXAgfHwgKGV4cG9ydHMuQ29ubmVjdGlvblR5cGVHcm91cCA9IHt9KSk7XG4vLyBUaGUgdHlwZSBvZiBtZXRhZGF0YSBhIGNvbHVtbiBjb250YWluc1xudmFyIEN1YmVNZXRhZGF0YUNhdGVnb3J5O1xuKGZ1bmN0aW9uIChDdWJlTWV0YWRhdGFDYXRlZ29yeSkge1xuICAgIC8vIGN1YmUncyBuYW1lXG4gICAgQ3ViZU1ldGFkYXRhQ2F0ZWdvcnlbXCJDTUNfTmFtZVwiXSA9IFwibmFtZVwiO1xuICAgIC8vIGN1YmUncyBkZXNjcmlwdGlvblxuICAgIEN1YmVNZXRhZGF0YUNhdGVnb3J5W1wiQ01DX0Rlc2NyaXB0aW9uXCJdID0gXCJkZXNjcmlwdGlvblwiO1xuICAgIC8vIGN1YmUncyBsYXN0IHVwZGF0ZWQgdGltZXN0YW1wXG4gICAgQ3ViZU1ldGFkYXRhQ2F0ZWdvcnlbXCJDTUNfTGFzdFVwZGF0ZWRcIl0gPSBcImxhc3QtdXBkYXRlZFwiO1xuICAgIC8vIGludmFsaWRcbiAgICBDdWJlTWV0YWRhdGFDYXRlZ29yeVtcIkNNQ19JbnZhbGlkXCJdID0gXCJpbnZhbGlkXCI7XG59KShDdWJlTWV0YWRhdGFDYXRlZ29yeSA9IGV4cG9ydHMuQ3ViZU1ldGFkYXRhQ2F0ZWdvcnkgfHwgKGV4cG9ydHMuQ3ViZU1ldGFkYXRhQ2F0ZWdvcnkgPSB7fSkpO1xuLy8gVGhlIHR5cGUgb2Ygd2lkZ2V0IHRvIGRpc3BsYXkgdG8gdGhlIHVzZXIgd2hlbiB0aGV5IGFyZSBzcGVjaWZ5aW5nIGNvbm5lY3Rpb24gaW5mb1xudmFyIENvbm5lY3Rpb25XaWRnZXRUeXBlO1xuKGZ1bmN0aW9uIChDb25uZWN0aW9uV2lkZ2V0VHlwZSkge1xuICAgIC8vIHNob3cgdGhlIGpvaW4gYXJlYVxuICAgIENvbm5lY3Rpb25XaWRnZXRUeXBlW1wiQ1dUX0pvaW5BcmVhXCJdID0gXCJqb2luLWFyZWFcIjtcbiAgICAvLyBzaG93IHRoZSBjdWJlIHNlbGVjdGlvbiB1aVxuICAgIENvbm5lY3Rpb25XaWRnZXRUeXBlW1wiQ1dUX0N1YmVTZWxlY3Rpb25cIl0gPSBcImN1YmUtc2VsZWN0aW9uXCI7XG4gICAgLy8gc2hvdyB0aGUgZ29vZ2xlIGFuYWx5dGljcyB1aVxuICAgIENvbm5lY3Rpb25XaWRnZXRUeXBlW1wiQ1dUX0dvb2dsZUFuYWx5dGljc1wiXSA9IFwiZ29vZ2xlLWFuYWx5dGljc1wiO1xuICAgIC8vIHNob3cgdGhlIHRhYmxlYXUgc2VydmVyIHVpXG4gICAgQ29ubmVjdGlvbldpZGdldFR5cGVbXCJDV1RfVGFibGVhdVNlcnZlclwiXSA9IFwidGFibGVhdS1zZXJ2ZXJcIjtcbiAgICAvLyBkbyBub3Qgc2hvdyBhbnkgY29ubmVjdGlvbiB3aWRnZXRcbiAgICBDb25uZWN0aW9uV2lkZ2V0VHlwZVtcIkNXVF9Ob1dpZGdldFwiXSA9IFwibm8td2lkZ2V0XCI7XG4gICAgLy8gaW52YWxpZFxuICAgIENvbm5lY3Rpb25XaWRnZXRUeXBlW1wiQ1dUX0ludmFsaWRcIl0gPSBcImludmFsaWRcIjtcbn0pKENvbm5lY3Rpb25XaWRnZXRUeXBlID0gZXhwb3J0cy5Db25uZWN0aW9uV2lkZ2V0VHlwZSB8fCAoZXhwb3J0cy5Db25uZWN0aW9uV2lkZ2V0VHlwZSA9IHt9KSk7XG4vLyBUaGUgdHlwZSBvZiBnb29nbGUgYW5hbHl0aWNzIGJhc2ljIGluZm9cbnZhciBHb29nbGVCYXNpY0luZm9UeXBlO1xuKGZ1bmN0aW9uIChHb29nbGVCYXNpY0luZm9UeXBlKSB7XG4gICAgLy8gZ29vZ2xlIGFuYWx5dGljcyBhY2NvdW50XG4gICAgR29vZ2xlQmFzaWNJbmZvVHlwZVtcIkdBX0FjY291bnRcIl0gPSBcImdhLWFjY291bnRcIjtcbiAgICAvLyBnb29nbGUgYW5hbHl0aWNzIHByb3BlcnR5XG4gICAgR29vZ2xlQmFzaWNJbmZvVHlwZVtcIkdBX1Byb3BlcnR5XCJdID0gXCJnYS1wcm9wZXJ0eVwiO1xuICAgIC8vIGdvb2dsZSBhbmFseXRpY3Mgdmlld1xuICAgIEdvb2dsZUJhc2ljSW5mb1R5cGVbXCJHQV9WaWV3XCJdID0gXCJnYS12aWV3XCI7XG4gICAgLy8gaW52YWxpZFxuICAgIEdvb2dsZUJhc2ljSW5mb1R5cGVbXCJHQV9JbnZhbGlkXCJdID0gXCJpbnZhbGlkXCI7XG59KShHb29nbGVCYXNpY0luZm9UeXBlID0gZXhwb3J0cy5Hb29nbGVCYXNpY0luZm9UeXBlIHx8IChleHBvcnRzLkdvb2dsZUJhc2ljSW5mb1R5cGUgPSB7fSkpO1xuLy8gVGhlIHdheSBpbiB3aGljaCBhIHBpZWNlIG9mIGNvbm5lY3Rpb24gaW5mb3JtYXRpb24gaXMgc3BlY2lmaWVkXG52YXIgQ29ubmVjdGlvblNwZWNpZmljYXRpb25UeXBlO1xuKGZ1bmN0aW9uIChDb25uZWN0aW9uU3BlY2lmaWNhdGlvblR5cGUpIHtcbiAgICAvLyBVc2VzIGEgY29tYm8gYm94XG4gICAgQ29ubmVjdGlvblNwZWNpZmljYXRpb25UeXBlW1wiQ1NUX0NvbWJvQm94XCJdID0gXCJjb21iby1ib3hcIjtcbiAgICAvLyBVc2VzIGEgbGluZSBlZGl0XG4gICAgQ29ubmVjdGlvblNwZWNpZmljYXRpb25UeXBlW1wiQ1NUX0xpbmVFZGl0XCJdID0gXCJsaW5lLWVkaXRcIjtcbiAgICAvLyBVc2VzIGEgbGluZSBlZGl0IHdpdGggYSBicm93c2UgYnV0dG9uIG5leHQgdG8gaXRcbiAgICBDb25uZWN0aW9uU3BlY2lmaWNhdGlvblR5cGVbXCJDU1RfTGluZUVkaXRCcm93c2VcIl0gPSBcImxpbmUtZWRpdC1icm93c2VcIjtcbiAgICAvLyBpbnZhbGlkXG4gICAgQ29ubmVjdGlvblNwZWNpZmljYXRpb25UeXBlW1wiQ1NUX0ludmFsaWRcIl0gPSBcImludmFsaWRcIjtcbn0pKENvbm5lY3Rpb25TcGVjaWZpY2F0aW9uVHlwZSA9IGV4cG9ydHMuQ29ubmVjdGlvblNwZWNpZmljYXRpb25UeXBlIHx8IChleHBvcnRzLkNvbm5lY3Rpb25TcGVjaWZpY2F0aW9uVHlwZSA9IHt9KSk7XG4vLyBHQSBEYXRlIFJhbmdlXG52YXIgRGF0ZVJhbmdlO1xuKGZ1bmN0aW9uIChEYXRlUmFuZ2UpIHtcbiAgICAvLyBcbiAgICBEYXRlUmFuZ2VbXCJEYXRlUmFuZ2VGaXJzdFwiXSA9IFwiZGF0ZS1yYW5nZS1maXJzdFwiO1xuICAgIC8vIFxuICAgIERhdGVSYW5nZVtcIkRhdGVSYW5nZUxhc3QzMERheXNcIl0gPSBcImRhdGUtcmFuZ2UtbGFzdDMwXCI7XG4gICAgLy8gXG4gICAgRGF0ZVJhbmdlW1wiRGF0ZVJhbmdlVG9kYXlcIl0gPSBcImRhdGUtcmFuZ2UtdG9kYXlcIjtcbiAgICAvLyBcbiAgICBEYXRlUmFuZ2VbXCJEYXRlUmFuZ2VZZXN0ZXJkYXlcIl0gPSBcImRhdGUtcmFuZ2UteWVzdGVyZGF5XCI7XG4gICAgLy8gXG4gICAgRGF0ZVJhbmdlW1wiRGF0ZVJhbmdlTGFzdFdlZWtcIl0gPSBcImRhdGUtcmFuZ2UtbGFzdC13ZWVrXCI7XG4gICAgLy8gXG4gICAgRGF0ZVJhbmdlW1wiRGF0ZVJhbmdlTGFzdE1vbnRoXCJdID0gXCJkYXRlLXJhbmdlLWxhc3QtbW9udGhcIjtcbiAgICAvLyBcbiAgICBEYXRlUmFuZ2VbXCJEYXRlUmFuZ2VMYXN0WWVhclwiXSA9IFwiZGF0ZS1yYW5nZS1sYXN0LXllYXJcIjtcbiAgICAvLyBcbiAgICBEYXRlUmFuZ2VbXCJEYXRlUmFuZ2VUaGlzV2Vla1RvWWVzdGVyZGF5XCJdID0gXCJkYXRlLXJhbmdlLXRoaXMtd2Vlay10by15ZXN0ZXJkYXlcIjtcbiAgICAvLyBcbiAgICBEYXRlUmFuZ2VbXCJEYXRlUmFuZ2VUaGlzTW9udGhUb1llc3RlcmRheVwiXSA9IFwiZGF0ZS1yYW5nZS10aGlzLW1vbnRoLXRvLXllc3RlcmRheVwiO1xuICAgIC8vIFxuICAgIERhdGVSYW5nZVtcIkRhdGVSYW5nZVRoaXNZZWFyVG9ZZXN0ZXJkYXlcIl0gPSBcImRhdGUtcmFuZ2UtdGhpcy15ZWFyLXRvLXllc3RlcmRheVwiO1xuICAgIC8vIFxuICAgIERhdGVSYW5nZVtcIkRhdGVSYW5nZUxhc3RXZWVrVG9ZZXN0ZXJkYXlcIl0gPSBcImRhdGUtcmFuZ2UtbGFzdC13ZWVrLXRvLXllc3RlcmRheVwiO1xuICAgIC8vIFxuICAgIERhdGVSYW5nZVtcIkRhdGVSYW5nZUxhc3RNb250aFRvWWVzdGVyZGF5XCJdID0gXCJkYXRlLXJhbmdlLWxhc3QtbW9udGgtdG8teWVzdGVyZGF5XCI7XG4gICAgLy8gXG4gICAgRGF0ZVJhbmdlW1wiRGF0ZVJhbmdlTGFzdFllYXJUb1llc3RlcmRheVwiXSA9IFwiZGF0ZS1yYW5nZS1sYXN0LXllYXItdG8teWVzdGVyZGF5XCI7XG4gICAgLy8gXG4gICAgRGF0ZVJhbmdlW1wiRGF0ZVJhbmdlRml4ZWRSYW5nZVwiXSA9IFwiZGF0ZS1yYW5nZS1maXhlZC1yYW5nZVwiO1xuICAgIC8vIFxuICAgIERhdGVSYW5nZVtcIkRhdGVSYW5nZUZpeGVkU3RhcnRcIl0gPSBcImRhdGUtcmFuZ2UtZml4ZWQtc3RhcnRcIjtcbiAgICAvLyBcbiAgICBEYXRlUmFuZ2VbXCJEYXRlUmFuZ2VDb3VudFwiXSA9IFwiZGF0ZS1yYW5nZS1jb3VudFwiO1xufSkoRGF0ZVJhbmdlID0gZXhwb3J0cy5EYXRlUmFuZ2UgfHwgKGV4cG9ydHMuRGF0ZVJhbmdlID0ge30pKTtcbi8vIFNwZWNpZmllcyB0aGUgdHlwZSBvZiB3aWRnZXQgdG8gc2hvdyBpbiBDb25uZWN0U2VydmVyV2lkZ2V0XG52YXIgQ29ubmVjdFNlcnZlcldpZGdldFR5cGU7XG4oZnVuY3Rpb24gKENvbm5lY3RTZXJ2ZXJXaWRnZXRUeXBlKSB7XG4gICAgLy8gaW52YWxpZFxuICAgIENvbm5lY3RTZXJ2ZXJXaWRnZXRUeXBlW1wiQ1NXVF9JbnZhbGlkXCJdID0gXCJpbnZhbGlkXCI7XG4gICAgLy8gbWljcm9zb2Z0IGFjY2Vzc1xuICAgIENvbm5lY3RTZXJ2ZXJXaWRnZXRUeXBlW1wiQ1NXVF9BY2Nlc3NcIl0gPSBcImFjY2Vzc1wiO1xuICAgIC8vIGdlbmVyaWMgb2RiY1xuICAgIENvbm5lY3RTZXJ2ZXJXaWRnZXRUeXBlW1wiQ1NXVF9PREJDXCJdID0gXCJvZGJjXCI7XG4gICAgLy8gY3ViZXNcbiAgICBDb25uZWN0U2VydmVyV2lkZ2V0VHlwZVtcIkNTV1RfQ3ViZVwiXSA9IFwiY3ViZVwiO1xuICAgIC8vIHJlbGF0aW9uYWwgZGF0YSBzb3VyY2VzXG4gICAgQ29ubmVjdFNlcnZlcldpZGdldFR5cGVbXCJDU1dUX1JlbGF0aW9uYWxcIl0gPSBcInJlbGF0aW9uYWxcIjtcbn0pKENvbm5lY3RTZXJ2ZXJXaWRnZXRUeXBlID0gZXhwb3J0cy5Db25uZWN0U2VydmVyV2lkZ2V0VHlwZSB8fCAoZXhwb3J0cy5Db25uZWN0U2VydmVyV2lkZ2V0VHlwZSA9IHt9KSk7XG4vLyBcbnZhciBBdXRoZW50aWNhdGlvbkVudW1zTW9kZTtcbihmdW5jdGlvbiAoQXV0aGVudGljYXRpb25FbnVtc01vZGUpIHtcbiAgICAvLyBubyBhdXRoZW50aWNhdGlvbiB3aWRnZXRcbiAgICBBdXRoZW50aWNhdGlvbkVudW1zTW9kZVtcIkF1dGhNb2RlTm9uZVwiXSA9IFwiYXV0aC1tb2RlLW5vbmVcIjtcbiAgICAvLyB1c2VybmFtZSBhbmQgcGFzc3dvcmRcbiAgICBBdXRoZW50aWNhdGlvbkVudW1zTW9kZVtcIkF1dGhNb2RlQmFzaWNcIl0gPSBcImF1dGgtbW9kZS1iYXNpY1wiO1xuICAgIC8vIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBjYW4gYmUgYmxhbmtcbiAgICBBdXRoZW50aWNhdGlvbkVudW1zTW9kZVtcIkF1dGhNb2RlQmFzaWNOb1ZhbGlkYXRlRmllbGRzXCJdID0gXCJhdXRoLW1vZGUtYmFzaWMtbm8tdmFsaWRhdGUtZmllbGRzXCI7XG4gICAgLy8gb25seSB1c2VybmFtZVxuICAgIEF1dGhlbnRpY2F0aW9uRW51bXNNb2RlW1wiQXV0aE1vZGVCYXNpY1VzZXJOYW1lT25seVwiXSA9IFwiYXV0aC1tb2RlLWJhc2ljLXVzZXJuYW1lLW9ubHlcIjtcbiAgICAvLyBhd3MgYWNjZXNzIGtleSBhbmQgc2VjcmV0IElEXG4gICAgQXV0aGVudGljYXRpb25FbnVtc01vZGVbXCJBdXRoTW9kZUJhc2ljQVdTXCJdID0gXCJhdXRoLW1vZGUtYmFzaWMtYXdzXCI7XG4gICAgLy8gdXNlcm5hbWUsIHBhc3N3b3JkLCBhbmQgYSBsaXN0IG9mIEF1dGhPcHRpb25zIHdpdGggcmFkaW8gYnV0dG9uc1xuICAgIEF1dGhlbnRpY2F0aW9uRW51bXNNb2RlW1wiQXV0aE1vZGVSYWRpb1wiXSA9IFwiYXV0aC1tb2RlLXJhZGlvXCI7XG4gICAgLy8gTGlrZSBBdXRoTW9kZVJhZGlvLCBidXQgZW5hYmxlIHVzZXJuYW1lL3Bhc3N3b3JkIGV2ZW4gZm9yIGludGVncmF0ZWQgYXV0aFxuICAgIEF1dGhlbnRpY2F0aW9uRW51bXNNb2RlW1wiQXV0aE1vZGVSYWRpb1VuaW5kZW50ZWRcIl0gPSBcImF1dGgtbW9kZS1yYWRpby11bmluZGVudGVkXCI7XG4gICAgLy8gdXNlcm5hbWUsIHBhc3N3b3JkLCBhbmQgYSBsaXN0IG9mIEF1dGhPcHRpb25zIHdpdGggYSBjb21ib2JveFxuICAgIEF1dGhlbnRpY2F0aW9uRW51bXNNb2RlW1wiQXV0aE1vZGVDb21ib0JveFwiXSA9IFwiYXV0aC1tb2RlLWNvbWJvYm94XCI7XG4gICAgLy8gTGlrZSBBdXRoTW9kZUNvbWJvYm94LCBidXQgd2l0aCBvcHRpb24gbm90IHJlcXVpcmluZyB1c2VybmFtZS9wYXNzd29yZFxuICAgIEF1dGhlbnRpY2F0aW9uRW51bXNNb2RlW1wiQXV0aE1vZGVDb21ib0JveEludGVncmF0ZWRcIl0gPSBcImF1dGgtbW9kZS1jb21ib2JveC1pbnRlZ3JhdGVkXCI7XG4gICAgLy8gZHJpdmVyLCBhdXRoZW50aWNhdGlvbiwgdXNlcm5hbWUsIHJlYWxtLCBldGNcbiAgICBBdXRoZW50aWNhdGlvbkVudW1zTW9kZVtcIkF1dGhNb2RlSGl2ZVwiXSA9IFwiYXV0aC1tb2RlLWhpdmVcIjtcbiAgICAvLyBub25lLCBhenVyZSBtYXJrZXRwbGFjZSBhY2NvdW50LCBleHBsaWNpdFxuICAgIEF1dGhlbnRpY2F0aW9uRW51bXNNb2RlW1wiQXV0aE1vZGVPRGF0YVwiXSA9IFwiYXV0aC1tb2RlLW9kYXRhXCI7XG4gICAgLy8gZWRpdGlvbiwgYXV0aGVudGljYXRpb24sIHNzbyBkb21haW4sIGV0Y1xuICAgIEF1dGhlbnRpY2F0aW9uRW51bXNNb2RlW1wiQXV0aE1vZGVTaGFyZVBvaW50XCJdID0gXCJhdXRoLW1vZGUtc2hhcmVwb2ludFwiO1xuICAgIC8vIHVzZXJuYW1lLCBwYXNzd29yZCwgY2xpZW50LCAmIGxhbmd1YWdlXG4gICAgQXV0aGVudGljYXRpb25FbnVtc01vZGVbXCJBdXRoTW9kZVNBUEJXXCJdID0gXCJhdXRoLW1vZGUtc2FwYndcIjtcbiAgICAvLyBBYmlsaXR5IHRvIHN3aXRjaCBiZXR3ZWVuIHR3byBkaWZmZXJlbnQgYXV0aCBtb2RlcyBlYWNoIGluIHRoZWlyIG93biBtb2RhbCBkaWFsb2dzIChiYXNpYyBhbmQgb2F1dGgpXG4gICAgQXV0aGVudGljYXRpb25FbnVtc01vZGVbXCJBdXRoTW9kZVN3aXRjaE1vZGFsXCJdID0gXCJhdXRoLW1vZGUtc3dpdGNoLW1vZGFsXCI7XG59KShBdXRoZW50aWNhdGlvbkVudW1zTW9kZSA9IGV4cG9ydHMuQXV0aGVudGljYXRpb25FbnVtc01vZGUgfHwgKGV4cG9ydHMuQXV0aGVudGljYXRpb25FbnVtc01vZGUgPSB7fSkpO1xuLy8gXG52YXIgQXV0aGVudGljYXRpb25FbnVtc1JlY29ubmVjdE1vZGU7XG4oZnVuY3Rpb24gKEF1dGhlbnRpY2F0aW9uRW51bXNSZWNvbm5lY3RNb2RlKSB7XG4gICAgLy8gQXV0aCBub3QgbmVlZGVkIGZvciByZWNvbm5lY3RcbiAgICBBdXRoZW50aWNhdGlvbkVudW1zUmVjb25uZWN0TW9kZVtcIlJlY29ubmVjdE1vZGVOb25lXCJdID0gXCJyZWNvbm5lY3QtbW9kZS1ub25lXCI7XG4gICAgLy8gVXNlcm5hbWUgYW5kIHBhc3N3b3JkXG4gICAgQXV0aGVudGljYXRpb25FbnVtc1JlY29ubmVjdE1vZGVbXCJSZWNvbm5lY3RNb2RlQmFzaWNcIl0gPSBcInJlY29ubmVjdC1tb2RlLWJhc2ljXCI7XG4gICAgLy8gQWNjZXNzIGZpbGVcbiAgICBBdXRoZW50aWNhdGlvbkVudW1zUmVjb25uZWN0TW9kZVtcIlJlY29ubmVjdE1vZGVBY2Nlc3NcIl0gPSBcInJlY29ubmVjdC1tb2RlLWFjY2Vzc1wiO1xuICAgIC8vIE1pY3Jvc29mdCBBenVyZSBEYXRhIE1hcmtldCAoT0RhdGEpXG4gICAgQXV0aGVudGljYXRpb25FbnVtc1JlY29ubmVjdE1vZGVbXCJSZWNvbm5lY3RNb2RlRGF0YU1hcmtldFwiXSA9IFwicmVjb25uZWN0LW1vZGUtZGF0YS1tYXJrZXRcIjtcbiAgICAvLyBHb29nbGUgT0F1dGhcbiAgICBBdXRoZW50aWNhdGlvbkVudW1zUmVjb25uZWN0TW9kZVtcIlJlY29ubmVjdE1vZGVHb29nbGVPQXV0aFwiXSA9IFwicmVjb25uZWN0LW1vZGUtZ29vZ2xlLW9hdXRoXCI7XG4gICAgLy8gU2FsZXNmb3JjZU9BdXRoLCB3aXRoIHRoZSBvcHRpb24gb2YgdXNlcm5hbWUvcGFzc3dvcmQgYXV0aFxuICAgIEF1dGhlbnRpY2F0aW9uRW51bXNSZWNvbm5lY3RNb2RlW1wiUmVjb25uZWN0TW9kZVNhbGVzZm9yY2VPQXV0aFwiXSA9IFwicmVjb25uZWN0LW1vZGUtc2FsZXNmb3JjZS1vYXV0aFwiO1xuICAgIC8vIFdlYiBkYXRhIGNvbm5lY3RvclxuICAgIEF1dGhlbnRpY2F0aW9uRW51bXNSZWNvbm5lY3RNb2RlW1wiUmVjb25uZWN0TW9kZVdlYkRhdGFcIl0gPSBcInJlY29ubmVjdC1tb2RlLXdlYi1kYXRhXCI7XG59KShBdXRoZW50aWNhdGlvbkVudW1zUmVjb25uZWN0TW9kZSA9IGV4cG9ydHMuQXV0aGVudGljYXRpb25FbnVtc1JlY29ubmVjdE1vZGUgfHwgKGV4cG9ydHMuQXV0aGVudGljYXRpb25FbnVtc1JlY29ubmVjdE1vZGUgPSB7fSkpO1xuLy8gXG52YXIgQXV0aGVudGljYXRpb25FbnVtc0F1dGhPcHRpb247XG4oZnVuY3Rpb24gKEF1dGhlbnRpY2F0aW9uRW51bXNBdXRoT3B0aW9uKSB7XG4gICAgLy8gRklSU1RcbiAgICBBdXRoZW50aWNhdGlvbkVudW1zQXV0aE9wdGlvbltcIkF1dGhFeHBsaWNpdFwiXSA9IFwiYXV0aC1vcHRpb24tZXhwbGljaXRcIjtcbiAgICAvLyBcbiAgICBBdXRoZW50aWNhdGlvbkVudW1zQXV0aE9wdGlvbltcIkF1dGhFeHBsaWNpdFVuaW5kZW50ZWRcIl0gPSBcImF1dGgtb3B0aW9uLWV4cGxpY2l0LXVuaW5kZW50ZWRcIjtcbiAgICAvLyBcbiAgICBBdXRoZW50aWNhdGlvbkVudW1zQXV0aE9wdGlvbltcIkF1dGhVc2VXaW5kb3dzXCJdID0gXCJhdXRoLW9wdGlvbi11c2Utd2luZG93c1wiO1xuICAgIC8vIFxuICAgIEF1dGhlbnRpY2F0aW9uRW51bXNBdXRoT3B0aW9uW1wiQXV0aFVzZVdpbmRvd3NQcmVmZXJyZWRcIl0gPSBcImF1dGgtb3B0aW9uLXdpbmRvd3MtcHJlZmVycmVkXCI7XG4gICAgLy8gXG4gICAgQXV0aGVudGljYXRpb25FbnVtc0F1dGhPcHRpb25bXCJBdXRoVGVyYWRhdGFcIl0gPSBcImF1dGgtb3B0aW9uLXRlcmFkYXRhXCI7XG4gICAgLy8gXG4gICAgQXV0aGVudGljYXRpb25FbnVtc0F1dGhPcHRpb25bXCJBdXRoTERBUFwiXSA9IFwiYXV0aC1vcHRpb24tbGRhcFwiO1xuICAgIC8vIFxuICAgIEF1dGhlbnRpY2F0aW9uRW51bXNBdXRoT3B0aW9uW1wiQXV0aFZpcnR1YWxOb2RlXCJdID0gXCJhdXRoLW9wdGlvbi12aXJ0dWFsLW5vZGVcIjtcbiAgICAvLyBcbiAgICBBdXRoZW50aWNhdGlvbkVudW1zQXV0aE9wdGlvbltcIkF1dGhPRGF0YUFjY291bnRcIl0gPSBcImF1dGgtb3B0aW9uLW9kYXRhXCI7XG4gICAgLy8gXG4gICAgQXV0aGVudGljYXRpb25FbnVtc0F1dGhPcHRpb25bXCJBdXRoTm9uZVwiXSA9IFwiYXV0aC1vcHRpb24tbm9uZVwiO1xuICAgIC8vIFxuICAgIEF1dGhlbnRpY2F0aW9uRW51bXNBdXRoT3B0aW9uW1wiQXV0aEtlcmJlcm9zXCJdID0gXCJhdXRoLW9wdGlvbi1rZXJiZXJvc1wiO1xuICAgIC8vIEludHJvZHVjZWQgZm9yIEtlcmJlcm9zIHdpdGggZmFsbGJhY2ssIHJlY29nbml6aW5nIHRoYXQgdGhlIGRiIG1heSBvciBtYXkgbm90IGJlIG9uIFdpbmRvd3NcbiAgICBBdXRoZW50aWNhdGlvbkVudW1zQXV0aE9wdGlvbltcIkF1dGhJbnRlZ3JhdGVkXCJdID0gXCJhdXRoLW9wdGlvbi1pbnRlZ3JhdGVkXCI7XG4gICAgLy8gXG4gICAgQXV0aGVudGljYXRpb25FbnVtc0F1dGhPcHRpb25bXCJBdXRoVXNlcm5hbWVcIl0gPSBcImF1dGgtb3B0aW9uLXVzZXJuYW1lXCI7XG4gICAgLy8gXG4gICAgQXV0aGVudGljYXRpb25FbnVtc0F1dGhPcHRpb25bXCJBdXRoVXNlcm5hbWVBbmRQYXNzd29yZFwiXSA9IFwiYXV0aC1vcHRpb24tdXNlcm5hbWUtYW5kLXBhc3N3b3JkXCI7XG4gICAgLy8gXG4gICAgQXV0aGVudGljYXRpb25FbnVtc0F1dGhPcHRpb25bXCJBdXRoU1NMXCJdID0gXCJhdXRoLW9wdGlvbi1zc2xcIjtcbiAgICAvLyBcbiAgICBBdXRoZW50aWNhdGlvbkVudW1zQXV0aE9wdGlvbltcIkF1dGhIRElFbXVsYXRvclwiXSA9IFwiYXV0aC1oZGktZW11bGF0b3JcIjtcbiAgICAvLyBcbiAgICBBdXRoZW50aWNhdGlvbkVudW1zQXV0aE9wdGlvbltcIkF1dGhIRElTZXJ2aWNlXCJdID0gXCJhdXRoLWhkaS1zZXJ2aWNlXCI7XG4gICAgLy8gXG4gICAgQXV0aGVudGljYXRpb25FbnVtc0F1dGhPcHRpb25bXCJBdXRoSFRUUFwiXSA9IFwiYXV0aC1odHRwXCI7XG4gICAgLy8gXG4gICAgQXV0aGVudGljYXRpb25FbnVtc0F1dGhPcHRpb25bXCJBdXRoSFRUUFNcIl0gPSBcImF1dGgtaHR0cHNcIjtcbiAgICAvLyBcbiAgICBBdXRoZW50aWNhdGlvbkVudW1zQXV0aE9wdGlvbltcIkF1dGhBY2Nlc3NOb1NlY3VyaXR5XCJdID0gXCJhdXRoLW9wdGlvbi1hY2Nlc3Mtbm9cIjtcbiAgICAvLyBcbiAgICBBdXRoZW50aWNhdGlvbkVudW1zQXV0aE9wdGlvbltcIkF1dGhBY2Nlc3NZZXNTZWN1cml0eVwiXSA9IFwiYXV0aC1vcHRpb24tYWNjZXNzLXllc1wiO1xuICAgIC8vIFxuICAgIEF1dGhlbnRpY2F0aW9uRW51bXNBdXRoT3B0aW9uW1wiQXV0aE9BdXRoXCJdID0gXCJhdXRoLW9hdXRoXCI7XG4gICAgLy8gXG4gICAgQXV0aGVudGljYXRpb25FbnVtc0F1dGhPcHRpb25bXCJBdXRoRm9ybXNcIl0gPSBcImF1dGgtZm9ybXNcIjtcbiAgICAvLyBcbiAgICBBdXRoZW50aWNhdGlvbkVudW1zQXV0aE9wdGlvbltcIkF1dGhUaGlyZFBhcnR5U1NPXCJdID0gXCJhdXRoLXRoaXJkLXBhcnR5LVNTT1wiO1xuICAgIC8vIExBU1RcbiAgICBBdXRoZW50aWNhdGlvbkVudW1zQXV0aE9wdGlvbltcIkF1dGhJbnZhbGlkXCJdID0gXCJhdXRoLW9wdGlvbi1pbnZhbGlkXCI7XG59KShBdXRoZW50aWNhdGlvbkVudW1zQXV0aE9wdGlvbiA9IGV4cG9ydHMuQXV0aGVudGljYXRpb25FbnVtc0F1dGhPcHRpb24gfHwgKGV4cG9ydHMuQXV0aGVudGljYXRpb25FbnVtc0F1dGhPcHRpb24gPSB7fSkpO1xuLy8gZGF0YSBzb3VyY2UgdmFsaWRhdGlvbiBtb2Rlc1xudmFyIERhdGFTb3VyY2VQYXJzZXJWYWxpZGF0aW9uTW9kZTtcbihmdW5jdGlvbiAoRGF0YVNvdXJjZVBhcnNlclZhbGlkYXRpb25Nb2RlKSB7XG4gICAgLy8gXG4gICAgRGF0YVNvdXJjZVBhcnNlclZhbGlkYXRpb25Nb2RlW1wiV29ya2Jvb2tMb2FkVmFsaWRhdGlvblwiXSA9IFwid29ya2Jvb2stbG9hZC12YWxpZGF0aW9uXCI7XG4gICAgLy8gXG4gICAgRGF0YVNvdXJjZVBhcnNlclZhbGlkYXRpb25Nb2RlW1wiQXV0b1ZhbGlkYXRpb25cIl0gPSBcImF1dG8tdmFsaWRhdGlvblwiO1xuICAgIC8vIFxuICAgIERhdGFTb3VyY2VQYXJzZXJWYWxpZGF0aW9uTW9kZVtcIkZvcmNlVmFsaWRhdGlvblwiXSA9IFwiZm9yY2UtdmFsaWRhdGlvblwiO1xuICAgIC8vIFxuICAgIERhdGFTb3VyY2VQYXJzZXJWYWxpZGF0aW9uTW9kZVtcIlByZXZlbnRWYWxpZGF0aW9uXCJdID0gXCJwcmV2ZW50LXZhbGlkYXRpb25cIjtcbiAgICAvLyBcbiAgICBEYXRhU291cmNlUGFyc2VyVmFsaWRhdGlvbk1vZGVbXCJQcmV2ZW50VmFsaWRhdGlvbkFuZFRocm93XCJdID0gXCJwcmV2ZW50LXZhbGlkYXRpb24tYW5kLXRocm93XCI7XG59KShEYXRhU291cmNlUGFyc2VyVmFsaWRhdGlvbk1vZGUgPSBleHBvcnRzLkRhdGFTb3VyY2VQYXJzZXJWYWxpZGF0aW9uTW9kZSB8fCAoZXhwb3J0cy5EYXRhU291cmNlUGFyc2VyVmFsaWRhdGlvbk1vZGUgPSB7fSkpO1xuLy8gRW51bSBmb3IgRGF0YUdyaWQvTWV0YWRhdGFHcmlkIGZpZWxkcyByZW9yZGVyaW5nXG52YXIgRmllbGRPcmRlclR5cGU7XG4oZnVuY3Rpb24gKEZpZWxkT3JkZXJUeXBlKSB7XG4gICAgLy8gXG4gICAgRmllbGRPcmRlclR5cGVbXCJEQVRBU09VUkNFX09SREVSXCJdID0gXCJkYXRhc291cmNlLW9yZGVyXCI7XG4gICAgLy8gXG4gICAgRmllbGRPcmRlclR5cGVbXCJBTFBIQV9QRVJfVEFCTEVcIl0gPSBcImFscGhhLXBlci10YWJsZVwiO1xuICAgIC8vIFxuICAgIEZpZWxkT3JkZXJUeXBlW1wiQUxQSEFCRVRJQ0FMX09SREVSXCJdID0gXCJhbHBoYWJldGljYWwtb3JkZXJcIjtcbiAgICAvLyBcbiAgICBGaWVsZE9yZGVyVHlwZVtcIkNVU1RPTV9PUkRFUlwiXSA9IFwiY3VzdG9tLW9yZGVyXCI7XG59KShGaWVsZE9yZGVyVHlwZSA9IGV4cG9ydHMuRmllbGRPcmRlclR5cGUgfHwgKGV4cG9ydHMuRmllbGRPcmRlclR5cGUgPSB7fSkpO1xuLy8gXG52YXIgTGluZUludGVycG9sYXRpb25Nb2RlO1xuKGZ1bmN0aW9uIChMaW5lSW50ZXJwb2xhdGlvbk1vZGUpIHtcbiAgICAvLyBcbiAgICBMaW5lSW50ZXJwb2xhdGlvbk1vZGVbXCJMSU1fTGluZWFyXCJdID0gXCJsaW0tbGluZWFyXCI7XG4gICAgLy8gXG4gICAgTGluZUludGVycG9sYXRpb25Nb2RlW1wiTElNX1N0ZXBcIl0gPSBcImxpbS1zdGVwXCI7XG4gICAgLy8gXG4gICAgTGluZUludGVycG9sYXRpb25Nb2RlW1wiTElNX0p1bXBcIl0gPSBcImxpbS1qdW1wXCI7XG59KShMaW5lSW50ZXJwb2xhdGlvbk1vZGUgPSBleHBvcnRzLkxpbmVJbnRlcnBvbGF0aW9uTW9kZSB8fCAoZXhwb3J0cy5MaW5lSW50ZXJwb2xhdGlvbk1vZGUgPSB7fSkpO1xuLy8gXG52YXIgTGluZU1hcmtlclBvc2l0aW9uO1xuKGZ1bmN0aW9uIChMaW5lTWFya2VyUG9zaXRpb24pIHtcbiAgICAvLyBcbiAgICBMaW5lTWFya2VyUG9zaXRpb25bXCJMTVBfTGVmdFwiXSA9IFwibG1wLWxlZnRcIjtcbiAgICAvLyBcbiAgICBMaW5lTWFya2VyUG9zaXRpb25bXCJMTVBfQ2VudGVyXCJdID0gXCJsbXAtY2VudGVyXCI7XG4gICAgLy8gXG4gICAgTGluZU1hcmtlclBvc2l0aW9uW1wiTE1QX1JpZ2h0XCJdID0gXCJsbXAtcmlnaHRcIjtcbn0pKExpbmVNYXJrZXJQb3NpdGlvbiA9IGV4cG9ydHMuTGluZU1hcmtlclBvc2l0aW9uIHx8IChleHBvcnRzLkxpbmVNYXJrZXJQb3NpdGlvbiA9IHt9KSk7XG4vLyBFbnVtZXJhdGlvbiBmb3IgdGhlIHR5cGUgb2Ygam9pbiBjb25uZWN0aW5nIHR3byB0YWJsZXNcbnZhciBTUUxKb2luVHlwZTtcbihmdW5jdGlvbiAoU1FMSm9pblR5cGUpIHtcbiAgICAvLyBcbiAgICBTUUxKb2luVHlwZVtcIlNRTF9Jbm5lckpvaW5cIl0gPSBcInNxbC1pbm5lci1qb2luXCI7XG4gICAgLy8gXG4gICAgU1FMSm9pblR5cGVbXCJTUUxfTGVmdEpvaW5cIl0gPSBcInNxbC1sZWZ0LWpvaW5cIjtcbiAgICAvLyBcbiAgICBTUUxKb2luVHlwZVtcIlNRTF9SaWdodEpvaW5cIl0gPSBcInNxbC1yaWdodC1qb2luXCI7XG4gICAgLy8gXG4gICAgU1FMSm9pblR5cGVbXCJTUUxfRnVsbEpvaW5cIl0gPSBcInNxbC1mdWxsLWpvaW5cIjtcbiAgICAvLyBcbiAgICBTUUxKb2luVHlwZVtcIlNRTF9Dcm9zc0pvaW5cIl0gPSBcInNxbC1jcm9zcy1qb2luXCI7XG59KShTUUxKb2luVHlwZSA9IGV4cG9ydHMuU1FMSm9pblR5cGUgfHwgKGV4cG9ydHMuU1FMSm9pblR5cGUgPSB7fSkpO1xuLy8gXG52YXIgRm9sZGVyUm9sZTtcbihmdW5jdGlvbiAoRm9sZGVyUm9sZSkge1xuICAgIC8vIFxuICAgIEZvbGRlclJvbGVbXCJGT0xERVJfRElNRU5TSU9OU1wiXSA9IFwiZGltZW5zaW9uc1wiO1xuICAgIC8vIFxuICAgIEZvbGRlclJvbGVbXCJGT0xERVJfTUVBU1VSRVNcIl0gPSBcIm1lYXN1cmVcIjtcbiAgICAvLyBcbiAgICBGb2xkZXJSb2xlW1wiRk9MREVSX0dST1VQU1wiXSA9IFwiZ3JvdXBzXCI7XG4gICAgLy8gXG4gICAgRm9sZGVyUm9sZVtcIkZPTERFUl9QQVJBTUVURVJTXCJdID0gXCJwYXJhbWV0ZXJzXCI7XG59KShGb2xkZXJSb2xlID0gZXhwb3J0cy5Gb2xkZXJSb2xlIHx8IChleHBvcnRzLkZvbGRlclJvbGUgPSB7fSkpO1xuLy8gXG52YXIgRmllbGRUeXBlSWNvblNldDtcbihmdW5jdGlvbiAoRmllbGRUeXBlSWNvblNldCkge1xuICAgIC8vIFxuICAgIEZpZWxkVHlwZUljb25TZXRbXCJGVF9TRVRfQUxMXCJdID0gXCJhbGxcIjtcbiAgICAvLyBcbiAgICBGaWVsZFR5cGVJY29uU2V0W1wiRlRfU0VUX0NVQkVfTUVBU1VSRVNcIl0gPSBcImN1YmUtbWVhc3VyZXNcIjtcbiAgICAvLyBcbiAgICBGaWVsZFR5cGVJY29uU2V0W1wiRlRfU0VUX0NVQkVfRElNRU5TSU9OU1wiXSA9IFwiY3ViZS1kaW1lbnNpb25zXCI7XG59KShGaWVsZFR5cGVJY29uU2V0ID0gZXhwb3J0cy5GaWVsZFR5cGVJY29uU2V0IHx8IChleHBvcnRzLkZpZWxkVHlwZUljb25TZXQgPSB7fSkpO1xuLy8gXG52YXIgRmllbGRQaXZvdFN0cmF0ZWd5O1xuKGZ1bmN0aW9uIChGaWVsZFBpdm90U3RyYXRlZ3kpIHtcbiAgICAvLyBcbiAgICBGaWVsZFBpdm90U3RyYXRlZ3lbXCJQSVZPVF9PTl9LRVlcIl0gPSBcInBpdm90LW9uLWtleVwiO1xuICAgIC8vIFxuICAgIEZpZWxkUGl2b3RTdHJhdGVneVtcIlBJVk9UX09OX0FMSUFTXCJdID0gXCJwaXZvdC1vbi1hbGlhc1wiO1xufSkoRmllbGRQaXZvdFN0cmF0ZWd5ID0gZXhwb3J0cy5GaWVsZFBpdm90U3RyYXRlZ3kgfHwgKGV4cG9ydHMuRmllbGRQaXZvdFN0cmF0ZWd5ID0ge30pKTtcbi8vIFxudmFyIEFsaWFzVHlwZTtcbihmdW5jdGlvbiAoQWxpYXNUeXBlKSB7XG4gICAgLy8gXG4gICAgQWxpYXNUeXBlW1wiQUxJQVNfTk9UU0VUXCJdID0gXCJhbGlhcy1ub3Qtc2V0XCI7XG4gICAgLy8gXG4gICAgQWxpYXNUeXBlW1wiQUxJQVNfQkVHSU5cIl0gPSBcImFsaWFzLWJlZ2luXCI7XG4gICAgLy8gXG4gICAgQWxpYXNUeXBlW1wiQUxJQVNfS0VZXCJdID0gXCJhbGlhcy1rZXlcIjtcbiAgICAvLyBcbiAgICBBbGlhc1R5cGVbXCJBTElBU19LRVlfTkFNRVwiXSA9IFwiYWxpYXMta2V5LW5hbWVcIjtcbiAgICAvLyBcbiAgICBBbGlhc1R5cGVbXCJBTElBU19LRVlfTUVETkFNRVwiXSA9IFwiYWxpYXMta2V5LW1lZG5hbWVcIjtcbiAgICAvLyBcbiAgICBBbGlhc1R5cGVbXCJBTElBU19LRVlfTE9OR05BTUVcIl0gPSBcImFsaWFzLWtleS1sb25nbmFtZVwiO1xuICAgIC8vIFxuICAgIEFsaWFzVHlwZVtcIkFMSUFTX05BTUVcIl0gPSBcImFsaWFzLW5hbWVcIjtcbiAgICAvLyBcbiAgICBBbGlhc1R5cGVbXCJBTElBU19OQU1FX0tFWVwiXSA9IFwiYWxpYXMtbmFtZS1rZXlcIjtcbiAgICAvLyBcbiAgICBBbGlhc1R5cGVbXCJBTElBU19NRUROQU1FXCJdID0gXCJhbGlhcy1tZWRuYW1lXCI7XG4gICAgLy8gXG4gICAgQWxpYXNUeXBlW1wiQUxJQVNfTUVETkFNRV9LRVlcIl0gPSBcImFsaWFzLW1lZG5hbWUta2V5XCI7XG4gICAgLy8gXG4gICAgQWxpYXNUeXBlW1wiQUxJQVNfTE9OR05BTUVcIl0gPSBcImFsaWFzLWxvbmduYW1lXCI7XG4gICAgLy8gXG4gICAgQWxpYXNUeXBlW1wiQUxJQVNfTE9OR05BTUVfS0VZXCJdID0gXCJhbGlhcy1sb25nbmFtZS1rZXlcIjtcbiAgICAvLyBcbiAgICBBbGlhc1R5cGVbXCJBTElBU19FTkRcIl0gPSBcImFsaWFzLWVuZFwiO1xufSkoQWxpYXNUeXBlID0gZXhwb3J0cy5BbGlhc1R5cGUgfHwgKGV4cG9ydHMuQWxpYXNUeXBlID0ge30pKTtcbi8vIFxudmFyIEFsaWFzVHlwZXM7XG4oZnVuY3Rpb24gKEFsaWFzVHlwZXMpIHtcbiAgICAvLyBcbiAgICBBbGlhc1R5cGVzW1wiTUFTS19BTElBU19LRVlcIl0gPSBcIm1hc2stYWxpYXMta2V5XCI7XG4gICAgLy8gXG4gICAgQWxpYXNUeXBlc1tcIk1BU0tfQUxJQVNfTkFNRVwiXSA9IFwibWFzay1hbGlhcy1uYW1lXCI7XG4gICAgLy8gXG4gICAgQWxpYXNUeXBlc1tcIk1BU0tfQUxJQVNfTUVETkFNRVwiXSA9IFwibWFzay1hbGlhcy1tZWRuYW1lXCI7XG4gICAgLy8gXG4gICAgQWxpYXNUeXBlc1tcIk1BU0tfQUxJQVNfTE9OR05BTUVcIl0gPSBcIm1hc2stYWxpYXMtbG9uZ25hbWVcIjtcbn0pKEFsaWFzVHlwZXMgPSBleHBvcnRzLkFsaWFzVHlwZXMgfHwgKGV4cG9ydHMuQWxpYXNUeXBlcyA9IHt9KSk7XG4vLyBcbnZhciBGaWVsZFJvbGU7XG4oZnVuY3Rpb24gKEZpZWxkUm9sZSkge1xuICAgIC8vIFxuICAgIEZpZWxkUm9sZVtcIlJPTEVfRElNRU5TSU9OXCJdID0gXCJkaW1lbnNpb25cIjtcbiAgICAvLyBcbiAgICBGaWVsZFJvbGVbXCJST0xFX01FQVNVUkVcIl0gPSBcIm1lYXN1cmVcIjtcbiAgICAvLyBcbiAgICBGaWVsZFJvbGVbXCJST0xFX1VOS05PV05cIl0gPSBcInVua25vd25cIjtcbn0pKEZpZWxkUm9sZSA9IGV4cG9ydHMuRmllbGRSb2xlIHx8IChleHBvcnRzLkZpZWxkUm9sZSA9IHt9KSk7XG4vLyBcbnZhciBGaWVsZFR5cGU7XG4oZnVuY3Rpb24gKEZpZWxkVHlwZSkge1xuICAgIC8vIFxuICAgIEZpZWxkVHlwZVtcIlRZUEVfUVVBTlRJVEFUSVZFXCJdID0gXCJxdWFudGl0YXRpdmVcIjtcbiAgICAvLyBcbiAgICBGaWVsZFR5cGVbXCJUWVBFX09SRElOQUxcIl0gPSBcIm9yZGluYWxcIjtcbiAgICAvLyBcbiAgICBGaWVsZFR5cGVbXCJUWVBFX05PTUlOQUxcIl0gPSBcIm5vbWluYWxcIjtcbiAgICAvLyBcbiAgICBGaWVsZFR5cGVbXCJUWVBFX1VOS05PV05cIl0gPSBcInVua25vd25cIjtcbn0pKEZpZWxkVHlwZSA9IGV4cG9ydHMuRmllbGRUeXBlIHx8IChleHBvcnRzLkZpZWxkVHlwZSA9IHt9KSk7XG4vLyBcbnZhciBEYXRhU291cmNlT3JkZXI7XG4oZnVuY3Rpb24gKERhdGFTb3VyY2VPcmRlcikge1xuICAgIC8vIFxuICAgIERhdGFTb3VyY2VPcmRlcltcIkRTT19BTFBIQUJFVElDXCJdID0gXCJkc28tYWxwaGFiZXRpY1wiO1xuICAgIC8vIFxuICAgIERhdGFTb3VyY2VPcmRlcltcIkRTT19PUkRJTkFMXCJdID0gXCJkc28tb3JkaW5hbFwiO1xufSkoRGF0YVNvdXJjZU9yZGVyID0gZXhwb3J0cy5EYXRhU291cmNlT3JkZXIgfHwgKGV4cG9ydHMuRGF0YVNvdXJjZU9yZGVyID0ge30pKTtcbi8vIFdoZXJlIHRoZSBjb2x1bW4gY29tZXMgZnJvbVxudmFyIENvbHVtbkNsYXNzO1xuKGZ1bmN0aW9uIChDb2x1bW5DbGFzcykge1xuICAgIC8vIEEgbWV0YWRhdGEgY29sdW1uIChPIG9yIFEgTWVhc3VyZXMpXG4gICAgQ29sdW1uQ2xhc3NbXCJDT0xfTUVUQURBVEFcIl0gPSBcImNvbC1tZXRhZGF0YVwiO1xuICAgIC8vIEEgcGh5c2ljYWwgY29sdW1uIG9uIHRoZSBkYXRhYmFzZVxuICAgIENvbHVtbkNsYXNzW1wiQ09MX0RBVEFCQVNFXCJdID0gXCJjb2wtZGF0YWJhc2VcIjtcbiAgICAvLyBBIG51bWJlcmljIGJpbiAoYSBzcGVjaWFsIGtpbmQgb2YgY2FsY3VsYXRlZCBjb2x1bW4pXG4gICAgQ29sdW1uQ2xhc3NbXCJDT0xfTlVNRVJJQ0JJTlwiXSA9IFwiY29sLW51bWVyaWNiaW5cIjtcbiAgICAvLyBBIENhdGVnb3JpY2FsIGJpbiAoZ3JvdXApXG4gICAgQ29sdW1uQ2xhc3NbXCJDT0xfQ0FURUdPUklDQUxCSU5cIl0gPSBcImNvbC1jYXRlZ29yaWNhbGJpblwiO1xuICAgIC8vIEEgY29sdW1uIGluc3RhbmNlXG4gICAgQ29sdW1uQ2xhc3NbXCJDT0xfSU5TVEFOQ0VcIl0gPSBcImNvbC1pbnN0YW5jZVwiO1xuICAgIC8vIEEgKHJhdykgbWR4IGNhbGN1bGF0ZWQgY29sdW1uXG4gICAgQ29sdW1uQ2xhc3NbXCJDT0xfTURYQ0FMQ1wiXSA9IFwiY29sLW1keGNhbGNcIjtcbiAgICAvLyBBIHVzZXItZGVmaW5lZCBjYWxjdWxhdGVkIGNvbHVtbiwgVGFibGVhdSBleHByZXNzaW9uIHN5bnRheFxuICAgIENvbHVtbkNsYXNzW1wiQ09MX1VTRVJDQUxDXCJdID0gXCJjb2wtdXNlcmNhbGNcIjtcbiAgICAvLyBBIGNvbHVtbiB0aGF0IHdvdWxkIGhhdmUgYmVlbiBDT0xfREFUQUJBU0UsIGJ1dCB0aGUgdW5kZXJseWluZyBkYXRhYmFzZSBjb2x1bW4gZG9lcyBub3QgZXhpc3RcbiAgICBDb2x1bW5DbGFzc1tcIkNPTF9EQU5HTElOR1wiXSA9IFwiY29sLWRhbmdsaW5nXCI7XG4gICAgLy8gQSBjb2x1bW4gdGhhdCBjb250YWlucyBsb2NhbCBzdXBwbGllZCBkYXRhIChlLmcuIExhdGl0dWRlKVxuICAgIENvbHVtbkNsYXNzW1wiQ09MX0xPQ0FMREFUQVwiXSA9IFwiY29sLWxvY2FsZGF0YVwiO1xuICAgIC8vIEEgY29sdW1uIHRoYXQgY29udGFpbnMgYSB2aXN1YWwgbW9kZWwgYXR0cmlidXRlIChlLmcuIFBhbmVJbmRleCwgQ29sb3IsIC4uLilcbiAgICBDb2x1bW5DbGFzc1tcIkNPTF9WSVNVQUxEQVRBXCJdID0gXCJjb2wtdmlzdWFsZGF0YVwiO1xuICAgIC8vIEEgY29sdW1uIHRoYXQncyBhIEdyb3VwIChhIFwiIFNldCBcIiBpbiBVSSB0ZXJtaW5vbG9neSlcbiAgICBDb2x1bW5DbGFzc1tcIkNPTF9HUk9VUFwiXSA9IFwiY29sLWdyb3VwXCI7XG59KShDb2x1bW5DbGFzcyA9IGV4cG9ydHMuQ29sdW1uQ2xhc3MgfHwgKGV4cG9ydHMuQ29sdW1uQ2xhc3MgPSB7fSkpO1xuLy8gXG52YXIgVlRBZ2dUeXBlO1xuKGZ1bmN0aW9uIChWVEFnZ1R5cGUpIHtcbiAgICAvLyBcbiAgICBWVEFnZ1R5cGVbXCJWVEFHR19TVU1cIl0gPSBcInN1bVwiO1xuICAgIC8vIFxuICAgIFZUQWdnVHlwZVtcIlZUQUdHX0FWR1wiXSA9IFwiYXZnXCI7XG4gICAgLy8gXG4gICAgVlRBZ2dUeXBlW1wiVlRBR0dfTUlOXCJdID0gXCJtaW5cIjtcbiAgICAvLyBcbiAgICBWVEFnZ1R5cGVbXCJWVEFHR19NQVhcIl0gPSBcIm1heFwiO1xuICAgIC8vIFxuICAgIFZUQWdnVHlwZVtcIlZUQUdHX1NFUlZFUlwiXSA9IFwic2VydmVyXCI7XG4gICAgLy8gXG4gICAgVlRBZ2dUeXBlW1wiVlRBR0dfTk9ORVwiXSA9IFwibm9uZVwiO1xuICAgIC8vIFxuICAgIFZUQWdnVHlwZVtcIlZUQUdHX0RFRkFVTFRcIl0gPSBcImRlZmF1bHRcIjtcbn0pKFZUQWdnVHlwZSA9IGV4cG9ydHMuVlRBZ2dUeXBlIHx8IChleHBvcnRzLlZUQWdnVHlwZSA9IHt9KSk7XG4vLyBcbnZhciBFbnRpdHlUeXBlO1xuKGZ1bmN0aW9uIChFbnRpdHlUeXBlKSB7XG4gICAgLy8gXG4gICAgRW50aXR5VHlwZVtcIk5vRW51bWVyYXRpb25FbnRpdHlcIl0gPSBcIm5vLWVudW1lcmF0aW9uLWVudGl0eVwiO1xuICAgIC8vIFxuICAgIEVudGl0eVR5cGVbXCJEYXRhYmFzZUVudGl0eVwiXSA9IFwiZGF0YWJhc2UtZW50aXR5XCI7XG4gICAgLy8gXG4gICAgRW50aXR5VHlwZVtcIlNjaGVtYUVudGl0eVwiXSA9IFwic2NoZW1hLWVudGl0eVwiO1xuICAgIC8vIFxuICAgIEVudGl0eVR5cGVbXCJUYWJsZUVudGl0eVwiXSA9IFwidGFibGUtZW50aXR5XCI7XG59KShFbnRpdHlUeXBlID0gZXhwb3J0cy5FbnRpdHlUeXBlIHx8IChleHBvcnRzLkVudGl0eVR5cGUgPSB7fSkpO1xuLy8gXG52YXIgUGlja0VudGl0eVNlYXJjaFR5cGU7XG4oZnVuY3Rpb24gKFBpY2tFbnRpdHlTZWFyY2hUeXBlKSB7XG4gICAgLy8gXG4gICAgUGlja0VudGl0eVNlYXJjaFR5cGVbXCJQaWNrRW50aXR5U2VhcmNoVHlwZV9TdGFydHNXaXRoXCJdID0gXCJzdGFydHMtd2l0aFwiO1xuICAgIC8vIFxuICAgIFBpY2tFbnRpdHlTZWFyY2hUeXBlW1wiUGlja0VudGl0eVNlYXJjaFR5cGVfQ29udGFpbnNcIl0gPSBcImNvbnRhaW5zXCI7XG4gICAgLy8gXG4gICAgUGlja0VudGl0eVNlYXJjaFR5cGVbXCJQaWNrRW50aXR5U2VhcmNoVHlwZV9FeGFjdE1hdGNoXCJdID0gXCJleGFjdC1tYXRjaFwiO1xuICAgIC8vIFxuICAgIFBpY2tFbnRpdHlTZWFyY2hUeXBlW1wiUGlja0VudGl0eVNlYXJjaFR5cGVfREVGQVVMVFwiXSA9IFwiZGVmYXVsdFwiO1xufSkoUGlja0VudGl0eVNlYXJjaFR5cGUgPSBleHBvcnRzLlBpY2tFbnRpdHlTZWFyY2hUeXBlIHx8IChleHBvcnRzLlBpY2tFbnRpdHlTZWFyY2hUeXBlID0ge30pKTtcbi8vIFBhcnNpbmcgbWV0aG9kcyBhbmQgc3RydWN0dXJlcy5cbnZhciBFeHByZXNzaW9uT3A7XG4oZnVuY3Rpb24gKEV4cHJlc3Npb25PcCkge1xuICAgIC8vIFxuICAgIEV4cHJlc3Npb25PcFtcIkxvZ2ljYWxPclwiXSA9IFwib3AtbG9naWNhbC1vclwiO1xuICAgIC8vIFxuICAgIEV4cHJlc3Npb25PcFtcIkxvZ2ljYWxBbmRcIl0gPSBcIm9wLWxvZ2ljYWwtYW5kXCI7XG4gICAgLy8gXG4gICAgRXhwcmVzc2lvbk9wW1wiTG9naWNhbE5vdFwiXSA9IFwib3AtbG9naWNhbC1ub3RcIjtcbiAgICAvLyBcbiAgICBFeHByZXNzaW9uT3BbXCJCaXR3aXNlWE9yXCJdID0gXCJvcC1iaXR3aXNlLXhvclwiO1xuICAgIC8vIFxuICAgIEV4cHJlc3Npb25PcFtcIkJpdHdpc2VPclwiXSA9IFwib3AtYml0d2lzZS1vclwiO1xuICAgIC8vIFxuICAgIEV4cHJlc3Npb25PcFtcIkVxdWFsc1wiXSA9IFwib3AtZXF1YWxzXCI7XG4gICAgLy8gXG4gICAgRXhwcmVzc2lvbk9wW1wiR3JlYXRlclwiXSA9IFwib3AtZ3JlYXRlclwiO1xuICAgIC8vIFxuICAgIEV4cHJlc3Npb25PcFtcIkxlc3NcIl0gPSBcIm9wLWxlc3NcIjtcbiAgICAvLyBcbiAgICBFeHByZXNzaW9uT3BbXCJHRXF1YWxcIl0gPSBcIm9wLWdlcXVhbFwiO1xuICAgIC8vIFxuICAgIEV4cHJlc3Npb25PcFtcIkxFcXVhbFwiXSA9IFwib3AtbGVxdWFsXCI7XG4gICAgLy8gXG4gICAgRXhwcmVzc2lvbk9wW1wiTkVxdWFsXCJdID0gXCJvcC1uZXF1YWxcIjtcbiAgICAvLyBcbiAgICBFeHByZXNzaW9uT3BbXCJQbHVzXCJdID0gXCJvcC1wbHVzXCI7XG4gICAgLy8gXG4gICAgRXhwcmVzc2lvbk9wW1wiTWludXNcIl0gPSBcIm9wLW1pbnVzXCI7XG4gICAgLy8gXG4gICAgRXhwcmVzc2lvbk9wW1wiQml0d2lzZUFuZFwiXSA9IFwib3AtYml0d2lzZS1hbmRcIjtcbiAgICAvLyBcbiAgICBFeHByZXNzaW9uT3BbXCJNdWx0aXBseVwiXSA9IFwib3AtbXVsdGlwbHlcIjtcbiAgICAvLyBcbiAgICBFeHByZXNzaW9uT3BbXCJEaXZpZGVcIl0gPSBcIm9wLWRpdmlkZVwiO1xuICAgIC8vIFxuICAgIEV4cHJlc3Npb25PcFtcIk1vZHVsb1wiXSA9IFwib3AtbW9kdWxvXCI7XG4gICAgLy8gXG4gICAgRXhwcmVzc2lvbk9wW1wiUG93ZXJcIl0gPSBcIm9wLXBvd2VyXCI7XG4gICAgLy8gXG4gICAgRXhwcmVzc2lvbk9wW1wiUG9zaXRpdmVcIl0gPSBcIm9wLXBvc2l0aXZlXCI7XG4gICAgLy8gXG4gICAgRXhwcmVzc2lvbk9wW1wiTmVnYXRpdmVcIl0gPSBcIm9wLW5lZ2F0aXZlXCI7XG4gICAgLy8gXG4gICAgRXhwcmVzc2lvbk9wW1wiQml0d2lzZU5vdFwiXSA9IFwib3AtYml0d2lzZS1ub3RcIjtcbiAgICAvLyBcbiAgICBFeHByZXNzaW9uT3BbXCJDb2x1bW5cIl0gPSBcIm9wLWNvbHVtblwiO1xuICAgIC8vIFxuICAgIEV4cHJlc3Npb25PcFtcIlN0cmluZ1wiXSA9IFwib3Atc3RyaW5nXCI7XG4gICAgLy8gXG4gICAgRXhwcmVzc2lvbk9wW1wiTnVtYmVyXCJdID0gXCJvcC1udW1iZXJcIjtcbiAgICAvLyBcbiAgICBFeHByZXNzaW9uT3BbXCJEYXRlXCJdID0gXCJvcC1kYXRlXCI7XG4gICAgLy8gXG4gICAgRXhwcmVzc2lvbk9wW1wiQm9vbGVhblwiXSA9IFwib3AtYm9vbGVhblwiO1xuICAgIC8vIFxuICAgIEV4cHJlc3Npb25PcFtcIkZ1bmNhbGxcIl0gPSBcIm9wLWZ1bmNhbGxcIjtcbiAgICAvLyBcbiAgICBFeHByZXNzaW9uT3BbXCJMUGFyZW5cIl0gPSBcIm9wLWxwYXJlblwiO1xuICAgIC8vIFxuICAgIEV4cHJlc3Npb25PcFtcIlJQYXJlblwiXSA9IFwib3AtcnBhcmVuXCI7XG4gICAgLy8gXG4gICAgRXhwcmVzc2lvbk9wW1wiQ29tbWFcIl0gPSBcIm9wLWNvbW1hXCI7XG4gICAgLy8gXG4gICAgRXhwcmVzc2lvbk9wW1wiSWRlbnRcIl0gPSBcIm9wLWlkZW50XCI7XG4gICAgLy8gXG4gICAgRXhwcmVzc2lvbk9wW1wiTnVsbFwiXSA9IFwib3AtbnVsbFwiO1xuICAgIC8vIFxuICAgIEV4cHJlc3Npb25PcFtcIklmXCJdID0gXCJvcC1pZlwiO1xuICAgIC8vIFxuICAgIEV4cHJlc3Npb25PcFtcIkVsc2VpZlwiXSA9IFwib3AtZWxzZWlmXCI7XG4gICAgLy8gXG4gICAgRXhwcmVzc2lvbk9wW1wiQ2FzZVwiXSA9IFwib3AtY2FzZVwiO1xuICAgIC8vIFxuICAgIEV4cHJlc3Npb25PcFtcIldoZW5cIl0gPSBcIm9wLXdoZW5cIjtcbiAgICAvLyBcbiAgICBFeHByZXNzaW9uT3BbXCJUaGVuXCJdID0gXCJvcC10aGVuXCI7XG4gICAgLy8gXG4gICAgRXhwcmVzc2lvbk9wW1wiRWxzZVwiXSA9IFwib3AtZWxzZVwiO1xuICAgIC8vIFxuICAgIEV4cHJlc3Npb25PcFtcIkVuZEV4cHJcIl0gPSBcIm9wLWVuZGV4cHJcIjtcbiAgICAvLyBcbiAgICBFeHByZXNzaW9uT3BbXCJXaGl0ZXNwYWNlXCJdID0gXCJvcC13aGl0ZXNwYWNlXCI7XG4gICAgLy8gXG4gICAgRXhwcmVzc2lvbk9wW1wiQ29tbWVudFwiXSA9IFwib3AtY29tbWVudFwiO1xuICAgIC8vIFxuICAgIEV4cHJlc3Npb25PcFtcIkxCcmFjZVwiXSA9IFwib3AtbGJyYWNlXCI7XG4gICAgLy8gXG4gICAgRXhwcmVzc2lvbk9wW1wiUkJyYWNlXCJdID0gXCJvcC1yYnJhY2VcIjtcbiAgICAvLyBcbiAgICBFeHByZXNzaW9uT3BbXCJDb2xvblwiXSA9IFwib3AtY29sb25cIjtcbiAgICAvLyBcbiAgICBFeHByZXNzaW9uT3BbXCJCYXJcIl0gPSBcIm9wLWJhclwiO1xuICAgIC8vIFxuICAgIEV4cHJlc3Npb25PcFtcIlR4dHlwZVwiXSA9IFwib3AtdHh0eXBlXCI7XG4gICAgLy8gXG4gICAgRXhwcmVzc2lvbk9wW1wiRW5kXCJdID0gXCJvcC1lbmRcIjtcbiAgICAvLyBcbiAgICBFeHByZXNzaW9uT3BbXCJSQnJhY2tldHNcIl0gPSBcIm9wLXJicmFja2V0c1wiO1xuICAgIC8vIHVzZWQgdG8gcmVwcmVzZW50IGludmFsaWQgdG9rZW5zXG4gICAgRXhwcmVzc2lvbk9wW1wiSW52YWxpZFwiXSA9IFwib3AtaW52YWxpZFwiO1xufSkoRXhwcmVzc2lvbk9wID0gZXhwb3J0cy5FeHByZXNzaW9uT3AgfHwgKGV4cG9ydHMuRXhwcmVzc2lvbk9wID0ge30pKTtcbi8vIHRyaS1zdGF0ZSBib29sXG52YXIgVHJpQm9vbDtcbihmdW5jdGlvbiAoVHJpQm9vbCkge1xuICAgIC8vIFxuICAgIFRyaUJvb2xbXCJUQl9JbnZhbGlkXCJdID0gXCJ0cmlib29sLWludmFsaWRcIjtcbiAgICAvLyBcbiAgICBUcmlCb29sW1wiVEJfRmFsc2VcIl0gPSBcInRyaWJvb2wtZmFsc2VcIjtcbiAgICAvLyBcbiAgICBUcmlCb29sW1wiVEJfVHJ1ZVwiXSA9IFwidHJpYm9vbC10cnVlXCI7XG59KShUcmlCb29sID0gZXhwb3J0cy5UcmlCb29sIHx8IChleHBvcnRzLlRyaUJvb2wgPSB7fSkpO1xuLy8gdGFibGUgY2FsYyByZWZlcmVuY2Ugb3B0aW9ucyBzZXRcbnZhciBSZWZlcmVuY2VPcHRpb25zU2V0O1xuKGZ1bmN0aW9uIChSZWZlcmVuY2VPcHRpb25zU2V0KSB7XG4gICAgLy8gXG4gICAgUmVmZXJlbmNlT3B0aW9uc1NldFtcIlJPU19SZWxhdGl2ZVwiXSA9IFwicmVmZXJlbmNlLW9wdGlvbnMtc2V0LXJlbGF0aXZlXCI7XG4gICAgLy8gXG4gICAgUmVmZXJlbmNlT3B0aW9uc1NldFtcIlJPU19GaXhlZFwiXSA9IFwicmVmZXJlbmNlLW9wdGlvbnMtc2V0LWZpeGVkXCI7XG4gICAgLy8gXG4gICAgUmVmZXJlbmNlT3B0aW9uc1NldFtcIlJPU19QYXJhbWV0ZXJcIl0gPSBcInJlZmVyZW5jZS1vcHRpb25zLXNldC1wYXJhbWV0ZXJcIjtcbiAgICAvLyBcbiAgICBSZWZlcmVuY2VPcHRpb25zU2V0W1wiUk9TX05vbmVcIl0gPSBcInJlZmVyZW5jZS1vcHRpb25zLXNldC1ub25lXCI7XG59KShSZWZlcmVuY2VPcHRpb25zU2V0ID0gZXhwb3J0cy5SZWZlcmVuY2VPcHRpb25zU2V0IHx8IChleHBvcnRzLlJlZmVyZW5jZU9wdGlvbnNTZXQgPSB7fSkpO1xuLy8gd2lkZ2V0IHN0YXRlXG52YXIgV2lkZ2V0U3RhdGU7XG4oZnVuY3Rpb24gKFdpZGdldFN0YXRlKSB7XG4gICAgLy8gXG4gICAgV2lkZ2V0U3RhdGVbXCJIaWRkZW5cIl0gPSBcIndpZGdldC1zdGF0ZS1oaWRkZW5cIjtcbiAgICAvLyBcbiAgICBXaWRnZXRTdGF0ZVtcIkRpc2FibGVkXCJdID0gXCJ3aWRnZXQtc3RhdGUtZGlzYWJsZWRcIjtcbiAgICAvLyBcbiAgICBXaWRnZXRTdGF0ZVtcIkVuYWJsZWRcIl0gPSBcIndpZGdldC1zdGF0ZS1lbmFibGVkXCI7XG59KShXaWRnZXRTdGF0ZSA9IGV4cG9ydHMuV2lkZ2V0U3RhdGUgfHwgKGV4cG9ydHMuV2lkZ2V0U3RhdGUgPSB7fSkpO1xuLy8gcmFuayB0eXBlXG52YXIgUmFua1R5cGU7XG4oZnVuY3Rpb24gKFJhbmtUeXBlKSB7XG4gICAgLy8gXG4gICAgUmFua1R5cGVbXCJDb21wZXRpdGlvblwiXSA9IFwicmFuay10eXBlLWNvbXBldGl0aW9uXCI7XG4gICAgLy8gXG4gICAgUmFua1R5cGVbXCJNb2RpZmllZENvbXBldGl0aW9uXCJdID0gXCJyYW5rLXR5cGUtbW9kaWZpZWQtY29tcGV0aXRpb25cIjtcbiAgICAvLyBcbiAgICBSYW5rVHlwZVtcIkRlbnNlXCJdID0gXCJyYW5rLXR5cGUtZGVuc2VcIjtcbiAgICAvLyBcbiAgICBSYW5rVHlwZVtcIlVuaXF1ZVwiXSA9IFwicmFuay10eXBlLXVuaXF1ZVwiO1xufSkoUmFua1R5cGUgPSBleHBvcnRzLlJhbmtUeXBlIHx8IChleHBvcnRzLlJhbmtUeXBlID0ge30pKTtcbi8vIFxudmFyIFRhYmxlQ2FsY0NvbW1hbmRUeXBlO1xuKGZ1bmN0aW9uIChUYWJsZUNhbGNDb21tYW5kVHlwZSkge1xuICAgIC8vIFxuICAgIFRhYmxlQ2FsY0NvbW1hbmRUeXBlW1wiVGFibGVDYWxjQ29tbWFuZENsZWFyXCJdID0gXCJjbGVhclwiO1xufSkoVGFibGVDYWxjQ29tbWFuZFR5cGUgPSBleHBvcnRzLlRhYmxlQ2FsY0NvbW1hbmRUeXBlIHx8IChleHBvcnRzLlRhYmxlQ2FsY0NvbW1hbmRUeXBlID0ge30pKTtcbi8vIFxudmFyIENhbGNOZXN0aW5nTGV2ZWw7XG4oZnVuY3Rpb24gKENhbGNOZXN0aW5nTGV2ZWwpIHtcbiAgICAvLyBcbiAgICBDYWxjTmVzdGluZ0xldmVsW1wiUHJpbWFyeVwiXSA9IFwicHJpbWFyeVwiO1xuICAgIC8vIHVzZWQgb25seSBmb3IgdHlwZSAhPSBUQ19DVVNUT01cbiAgICBDYWxjTmVzdGluZ0xldmVsW1wiU2Vjb25kYXJ5XCJdID0gXCJzZWNvbmRhcnlcIjtcbiAgICAvLyB1c2VkIG9ubHkgZm9yIHR5cGUgPT0gVENfQ1VTVE9NXG4gICAgQ2FsY05lc3RpbmdMZXZlbFtcIk5lc3RlZFwiXSA9IFwibmVzdGVkXCI7XG59KShDYWxjTmVzdGluZ0xldmVsID0gZXhwb3J0cy5DYWxjTmVzdGluZ0xldmVsIHx8IChleHBvcnRzLkNhbGNOZXN0aW5nTGV2ZWwgPSB7fSkpO1xuLy8gXG52YXIgRGVjaW1hbE1vZGU7XG4oZnVuY3Rpb24gKERlY2ltYWxNb2RlKSB7XG4gICAgLy8gXG4gICAgRGVjaW1hbE1vZGVbXCJEZWNpbWFsTW9kZUF1dG9tYXRpY1wiXSA9IFwiYXV0b21hdGljXCI7XG4gICAgLy8gXG4gICAgRGVjaW1hbE1vZGVbXCJEZWNpbWFsTW9kZU1hbnVhbFwiXSA9IFwibWFudWFsXCI7XG59KShEZWNpbWFsTW9kZSA9IGV4cG9ydHMuRGVjaW1hbE1vZGUgfHwgKGV4cG9ydHMuRGVjaW1hbE1vZGUgPSB7fSkpO1xuLy8gXG52YXIgVGFibGVDYWxjT3JkZXJpbmdUeXBlO1xuKGZ1bmN0aW9uIChUYWJsZUNhbGNPcmRlcmluZ1R5cGUpIHtcbiAgICAvLyBBZHZhbmNlZC4uLlxuICAgIFRhYmxlQ2FsY09yZGVyaW5nVHlwZVtcIk9URmllbGRcIl0gPSBcImZpZWxkXCI7XG4gICAgLy8gVGFibGUgKEFjcm9zcylcbiAgICBUYWJsZUNhbGNPcmRlcmluZ1R5cGVbXCJPVFJvd3NcIl0gPSBcInJvd3NcIjtcbiAgICAvLyBUYWJsZSAoRG93bilcbiAgICBUYWJsZUNhbGNPcmRlcmluZ1R5cGVbXCJPVENvbHVtbnNcIl0gPSBcImNvbHVtbnNcIjtcbiAgICAvLyBUYWJsZSAoQWNyb3NzIHRoZW4gRG93bilcbiAgICBUYWJsZUNhbGNPcmRlcmluZ1R5cGVbXCJPVFRhYmxlXCJdID0gXCJ0YWJsZVwiO1xuICAgIC8vIFRhYmxlIChEb3duIHRoZW4gQWNyb3NzKVxuICAgIFRhYmxlQ2FsY09yZGVyaW5nVHlwZVtcIk9UVGFibGVDb2x1bW5QcmVjZWRlbmNlXCJdID0gXCJ0YWJsZS1jb2x1bW4tcHJlY2VkZW5jZVwiO1xuICAgIC8vIFBhbmUgQWNyb3NzXG4gICAgVGFibGVDYWxjT3JkZXJpbmdUeXBlW1wiT1RSb3dJblBhbmVcIl0gPSBcInJvdy1pbi1wYW5lXCI7XG4gICAgLy8gUGFuZSAoRG93bilcbiAgICBUYWJsZUNhbGNPcmRlcmluZ1R5cGVbXCJPVENvbHVtbkluUGFuZVwiXSA9IFwiY29sdW1uLWluLXBhbmVcIjtcbiAgICAvLyBQYW5lIChBY3Jvc3MgdGhlbiBEb3duKVxuICAgIFRhYmxlQ2FsY09yZGVyaW5nVHlwZVtcIk9UUGFuZVwiXSA9IFwicGFuZVwiO1xuICAgIC8vIFBhbmUgKERvd24gdGhlbiBBY3Jvc3MpXG4gICAgVGFibGVDYWxjT3JkZXJpbmdUeXBlW1wiT1RQYW5lQ29sdW1uUHJlY2VkZW5jZVwiXSA9IFwicGFuZS1jb2x1bW4tcHJlY2VkZW5jZVwiO1xuICAgIC8vIENlbGxcbiAgICBUYWJsZUNhbGNPcmRlcmluZ1R5cGVbXCJPVENlbGxJblBhbmVcIl0gPSBcImNlbGwtaW4tcGFuZVwiO1xufSkoVGFibGVDYWxjT3JkZXJpbmdUeXBlID0gZXhwb3J0cy5UYWJsZUNhbGNPcmRlcmluZ1R5cGUgfHwgKGV4cG9ydHMuVGFibGVDYWxjT3JkZXJpbmdUeXBlID0ge30pKTtcbi8vIFxudmFyIFRhYmxlQ2FsY1NvcnRNb2RlO1xuKGZ1bmN0aW9uIChUYWJsZUNhbGNTb3J0TW9kZSkge1xuICAgIC8vIFxuICAgIFRhYmxlQ2FsY1NvcnRNb2RlW1wiU01fQXV0b21hdGljXCJdID0gXCJzb3J0LW1vZGUtYXV0b21hdGljXCI7XG4gICAgLy8gXG4gICAgVGFibGVDYWxjU29ydE1vZGVbXCJTTV9DdXN0b21cIl0gPSBcInNvcnQtbW9kZS1jdXN0b21cIjtcbn0pKFRhYmxlQ2FsY1NvcnRNb2RlID0gZXhwb3J0cy5UYWJsZUNhbGNTb3J0TW9kZSB8fCAoZXhwb3J0cy5UYWJsZUNhbGNTb3J0TW9kZSA9IHt9KSk7XG4vLyBcbnZhciBUYWJsZUNhbGNUYWJsZUNhbGNUeXBlO1xuKGZ1bmN0aW9uIChUYWJsZUNhbGNUYWJsZUNhbGNUeXBlKSB7XG4gICAgLy8gbm9uZSAodXNlZCB0byBpbml0aWFsaXplIHZhcmlhYmxlcylcbiAgICBUYWJsZUNhbGNUYWJsZUNhbGNUeXBlW1wiVENfTk9ORVwiXSA9IFwibm9uZVwiO1xuICAgIC8vIFJ1bm5pbmcgVG90YWxcbiAgICBUYWJsZUNhbGNUYWJsZUNhbGNUeXBlW1wiVENfQ1VNVUxBVElWRVwiXSA9IFwiY3VtdWxhdGl2ZVwiO1xuICAgIC8vIE1vdmluZyBDYWxjdWxhdGlvblxuICAgIFRhYmxlQ2FsY1RhYmxlQ2FsY1R5cGVbXCJUQ19XSU5ET1dcIl0gPSBcIndpbmRvd1wiO1xuICAgIC8vIERpZmZlcmVuY2UgRnJvbVxuICAgIFRhYmxlQ2FsY1RhYmxlQ2FsY1R5cGVbXCJUQ19ESUZGXCJdID0gXCJkaWZmXCI7XG4gICAgLy8gUGVyY2VudCBEaWZmZXJlbmNlIEZyb21cbiAgICBUYWJsZUNhbGNUYWJsZUNhbGNUeXBlW1wiVENfUENURElGRlwiXSA9IFwicGN0LWRpZmZcIjtcbiAgICAvLyBQZXJjZW50IEZyb21cbiAgICBUYWJsZUNhbGNUYWJsZUNhbGNUeXBlW1wiVENfUENUVkFMVUVcIl0gPSBcInBjdC12YWx1ZVwiO1xuICAgIC8vIFBlcmNlbnQgT2YgVG90YWxcbiAgICBUYWJsZUNhbGNUYWJsZUNhbGNUeXBlW1wiVENfUENUVE9UQUxcIl0gPSBcInBjdC10b3RhbFwiO1xuICAgIC8vIFJhbmtcbiAgICBUYWJsZUNhbGNUYWJsZUNhbGNUeXBlW1wiVENfUkFOS1wiXSA9IFwicmFua1wiO1xuICAgIC8vIFBlcmNlbnRpbGVcbiAgICBUYWJsZUNhbGNUYWJsZUNhbGNUeXBlW1wiVENfUENUUkFOS1wiXSA9IFwicGN0LXJhbmtcIjtcbiAgICAvLyBDdXN0b21cbiAgICBUYWJsZUNhbGNUYWJsZUNhbGNUeXBlW1wiVENfQ1VTVE9NXCJdID0gXCJjdXN0b21cIjtcbn0pKFRhYmxlQ2FsY1RhYmxlQ2FsY1R5cGUgPSBleHBvcnRzLlRhYmxlQ2FsY1RhYmxlQ2FsY1R5cGUgfHwgKGV4cG9ydHMuVGFibGVDYWxjVGFibGVDYWxjVHlwZSA9IHt9KSk7XG4vLyBcbnZhciBRdWlja1RhYmxlQ2FsY0NvbW1hbmRUeXBlO1xuKGZ1bmN0aW9uIChRdWlja1RhYmxlQ2FsY0NvbW1hbmRUeXBlKSB7XG4gICAgLy8gXG4gICAgUXVpY2tUYWJsZUNhbGNDb21tYW5kVHlwZVtcIlF1aWNrVGFibGVDYWxjQ29tbWFuZFJ1blRvdGFsXCJdID0gXCJydW4tdG90YWxcIjtcbiAgICAvLyBcbiAgICBRdWlja1RhYmxlQ2FsY0NvbW1hbmRUeXBlW1wiUXVpY2tUYWJsZUNhbGNDb21tYW5kRGlmZmVyZW5jZVwiXSA9IFwiZGlmZmVyZW5jZVwiO1xuICAgIC8vIFxuICAgIFF1aWNrVGFibGVDYWxjQ29tbWFuZFR5cGVbXCJRdWlja1RhYmxlQ2FsY0NvbW1hbmRQY3REaWZmXCJdID0gXCJwY3QtZGlmZlwiO1xuICAgIC8vIFxuICAgIFF1aWNrVGFibGVDYWxjQ29tbWFuZFR5cGVbXCJRdWlja1RhYmxlQ2FsY0NvbW1hbmRQY3RUb3RhbFwiXSA9IFwicGN0LXRvdGFsXCI7XG4gICAgLy8gXG4gICAgUXVpY2tUYWJsZUNhbGNDb21tYW5kVHlwZVtcIlF1aWNrVGFibGVDYWxjQ29tbWFuZFJhbmtcIl0gPSBcInJhbmtcIjtcbiAgICAvLyBcbiAgICBRdWlja1RhYmxlQ2FsY0NvbW1hbmRUeXBlW1wiUXVpY2tUYWJsZUNhbGNDb21tYW5kUGN0UmFua1wiXSA9IFwicGN0LXJhbmtcIjtcbiAgICAvLyBcbiAgICBRdWlja1RhYmxlQ2FsY0NvbW1hbmRUeXBlW1wiUXVpY2tUYWJsZUNhbGNDb21tYW5kTW92aW5nQXZnXCJdID0gXCJtb3ZpbmctYXZnXCI7XG4gICAgLy8gXG4gICAgUXVpY2tUYWJsZUNhbGNDb21tYW5kVHlwZVtcIlF1aWNrVGFibGVDYWxjQ29tbWFuZFl0ZFwiXSA9IFwieXRkXCI7XG4gICAgLy8gXG4gICAgUXVpY2tUYWJsZUNhbGNDb21tYW5kVHlwZVtcIlF1aWNrVGFibGVDYWxjQ29tbWFuZENnclwiXSA9IFwiY2dyXCI7XG4gICAgLy8gXG4gICAgUXVpY2tUYWJsZUNhbGNDb21tYW5kVHlwZVtcIlF1aWNrVGFibGVDYWxjQ29tbWFuZFlPdmVyWVwiXSA9IFwieS1vdmVyLXlcIjtcbiAgICAvLyBcbiAgICBRdWlja1RhYmxlQ2FsY0NvbW1hbmRUeXBlW1wiUXVpY2tUYWJsZUNhbGNDb21tYW5kWXRkR3Jvd3RoXCJdID0gXCJ5dGQtZ3Jvd3RoXCI7XG4gICAgLy8gXG4gICAgUXVpY2tUYWJsZUNhbGNDb21tYW5kVHlwZVtcIlF1aWNrVGFibGVDYWxjQ29tbWFuZEN1c3RvbVwiXSA9IFwiY3VzdG9tXCI7XG59KShRdWlja1RhYmxlQ2FsY0NvbW1hbmRUeXBlID0gZXhwb3J0cy5RdWlja1RhYmxlQ2FsY0NvbW1hbmRUeXBlIHx8IChleHBvcnRzLlF1aWNrVGFibGVDYWxjQ29tbWFuZFR5cGUgPSB7fSkpO1xuLy8gXG52YXIgVGFibGVDYWxjQWRkcmVzc0NvbW1hbmRUeXBlO1xuKGZ1bmN0aW9uIChUYWJsZUNhbGNBZGRyZXNzQ29tbWFuZFR5cGUpIHtcbiAgICAvLyBcbiAgICBUYWJsZUNhbGNBZGRyZXNzQ29tbWFuZFR5cGVbXCJUYWJsZUNhbGNBZGRyZXNzQ29tbWFuZFJlbFwiXSA9IFwicmVsXCI7XG4gICAgLy8gXG4gICAgVGFibGVDYWxjQWRkcmVzc0NvbW1hbmRUeXBlW1wiVGFibGVDYWxjQWRkcmVzc0NvbW1hbmRBYnNcIl0gPSBcImFic1wiO1xuICAgIC8vIFxuICAgIFRhYmxlQ2FsY0FkZHJlc3NDb21tYW5kVHlwZVtcIlRhYmxlQ2FsY0FkZHJlc3NDb21tYW5kUGFyYW1cIl0gPSBcInBhcmFtXCI7XG4gICAgLy8gXG4gICAgVGFibGVDYWxjQWRkcmVzc0NvbW1hbmRUeXBlW1wiVGFibGVDYWxjQWRkcmVzc0NvbW1hbmRNb3JlXCJdID0gXCJtb3JlXCI7XG59KShUYWJsZUNhbGNBZGRyZXNzQ29tbWFuZFR5cGUgPSBleHBvcnRzLlRhYmxlQ2FsY0FkZHJlc3NDb21tYW5kVHlwZSB8fCAoZXhwb3J0cy5UYWJsZUNhbGNBZGRyZXNzQ29tbWFuZFR5cGUgPSB7fSkpO1xuLy8gcmVsYXRpdmUgYWRkcmVzc2luZ1xudmFyIFRhYmxlQ2FsY1JlbGF0aXZlQWRkcmVzcztcbihmdW5jdGlvbiAoVGFibGVDYWxjUmVsYXRpdmVBZGRyZXNzKSB7XG4gICAgLy8gXG4gICAgVGFibGVDYWxjUmVsYXRpdmVBZGRyZXNzW1wiUmVsQWRkckZpcnN0XCJdID0gXCJyZWxhdGl2ZS1hZGRyZXNzLWZpcnN0XCI7XG4gICAgLy8gXG4gICAgVGFibGVDYWxjUmVsYXRpdmVBZGRyZXNzW1wiUmVsQWRkclByZXZpb3VzXCJdID0gXCJyZWxhdGl2ZS1hZGRyZXNzLXByZXZpb3VzXCI7XG4gICAgLy8gXG4gICAgVGFibGVDYWxjUmVsYXRpdmVBZGRyZXNzW1wiUmVsQWRkck5leHRcIl0gPSBcInJlbGF0aXZlLWFkZHJlc3MtbmV4dFwiO1xuICAgIC8vIFxuICAgIFRhYmxlQ2FsY1JlbGF0aXZlQWRkcmVzc1tcIlJlbEFkZHJMYXN0XCJdID0gXCJyZWxhdGl2ZS1hZGRyZXNzLWxhc3RcIjtcbn0pKFRhYmxlQ2FsY1JlbGF0aXZlQWRkcmVzcyA9IGV4cG9ydHMuVGFibGVDYWxjUmVsYXRpdmVBZGRyZXNzIHx8IChleHBvcnRzLlRhYmxlQ2FsY1JlbGF0aXZlQWRkcmVzcyA9IHt9KSk7XG4vLyBcbnZhciBDYXRlZ29yaWNhbEJpbkl0ZW1UeXBlO1xuKGZ1bmN0aW9uIChDYXRlZ29yaWNhbEJpbkl0ZW1UeXBlKSB7XG4gICAgLy8gXG4gICAgQ2F0ZWdvcmljYWxCaW5JdGVtVHlwZVtcIlVuYmlubmVkXCJdID0gXCJ1bmJpbm5lZFwiO1xuICAgIC8vIFxuICAgIENhdGVnb3JpY2FsQmluSXRlbVR5cGVbXCJCaW5NZW1iZXJcIl0gPSBcImNhdGVnb3JpY2FsLWJpbi1tZW1iZXJcIjtcbiAgICAvLyBcbiAgICBDYXRlZ29yaWNhbEJpbkl0ZW1UeXBlW1wiQmluXCJdID0gXCJjYXRlZ29yaWNhbC1iaW5cIjtcbn0pKENhdGVnb3JpY2FsQmluSXRlbVR5cGUgPSBleHBvcnRzLkNhdGVnb3JpY2FsQmluSXRlbVR5cGUgfHwgKGV4cG9ydHMuQ2F0ZWdvcmljYWxCaW5JdGVtVHlwZSA9IHt9KSk7XG4vLyBUaGUgY2xhc3MgcHJvcGVydGllc1xudmFyIENyZWRlbnRpYWxUeXBlUHJvcGVydGllc0ZsYWc7XG4oZnVuY3Rpb24gKENyZWRlbnRpYWxUeXBlUHJvcGVydGllc0ZsYWcpIHtcbiAgICAvLyBcbiAgICBDcmVkZW50aWFsVHlwZVByb3BlcnRpZXNGbGFnW1wiTm9uZVwiXSA9IFwibm9uZVwiO1xuICAgIC8vIFxuICAgIENyZWRlbnRpYWxUeXBlUHJvcGVydGllc0ZsYWdbXCJHZW5lcmljQXV0aENsYXNzXCJdID0gXCJnZW5lcmljLWF1dGgtY2xhc3NcIjtcbiAgICAvLyBcbiAgICBDcmVkZW50aWFsVHlwZVByb3BlcnRpZXNGbGFnW1wiUHJvdmlkZXJDbGFzc1wiXSA9IFwicHJvdmlkZXItY2xhc3NcIjtcbiAgICAvLyBcbiAgICBDcmVkZW50aWFsVHlwZVByb3BlcnRpZXNGbGFnW1wiRGF0YUNvbm5lY3Rpb25DbGFzc1wiXSA9IFwiZGF0YS1jb25uZWN0aW9uLWNsYXNzXCI7XG59KShDcmVkZW50aWFsVHlwZVByb3BlcnRpZXNGbGFnID0gZXhwb3J0cy5DcmVkZW50aWFsVHlwZVByb3BlcnRpZXNGbGFnIHx8IChleHBvcnRzLkNyZWRlbnRpYWxUeXBlUHJvcGVydGllc0ZsYWcgPSB7fSkpO1xuLy8gVGhlIGNvbm5lY3RvciB0eXBlXG52YXIgQ29ubmVjdG9yVHlwZTtcbihmdW5jdGlvbiAoQ29ubmVjdG9yVHlwZSkge1xuICAgIC8vIFxuICAgIENvbm5lY3RvclR5cGVbXCJJbnZhbGlkXCJdID0gXCJpbnZhbGlkXCI7XG4gICAgLy8gXG4gICAgQ29ubmVjdG9yVHlwZVtcIldlYkRhdGFDb25uZWN0b3JcIl0gPSBcIndlYi1kYXRhLWNvbm5lY3RvclwiO1xuICAgIC8vIFxuICAgIENvbm5lY3RvclR5cGVbXCJDbG91ZEZpbGVDb25uZWN0b3JcIl0gPSBcImNsb3VkLWZpbGUtY29ubmVjdG9yXCI7XG4gICAgLy8gXG4gICAgQ29ubmVjdG9yVHlwZVtcIkxlZ2FjeUNvbm5lY3RvclwiXSA9IFwibGVnYWN5LWNvbm5lY3RvclwiO1xufSkoQ29ubmVjdG9yVHlwZSA9IGV4cG9ydHMuQ29ubmVjdG9yVHlwZSB8fCAoZXhwb3J0cy5Db25uZWN0b3JUeXBlID0ge30pKTtcbi8vIFxudmFyIFRhYmxlUGlsbEljb247XG4oZnVuY3Rpb24gKFRhYmxlUGlsbEljb24pIHtcbiAgICAvLyBcbiAgICBUYWJsZVBpbGxJY29uW1wiTGlzdEl0ZW1cIl0gPSBcImxpc3QtaXRlbVwiO1xuICAgIC8vIFxuICAgIFRhYmxlUGlsbEljb25bXCJTaGVldFwiXSA9IFwic2hlZXRcIjtcbiAgICAvLyBcbiAgICBUYWJsZVBpbGxJY29uW1wiRm91bmRUYWJsZVwiXSA9IFwiZm91bmQtdGFibGVcIjtcbiAgICAvLyBcbiAgICBUYWJsZVBpbGxJY29uW1wiTmFtZWRSYW5nZVwiXSA9IFwibmFtZWQtcmFuZ2VcIjtcbiAgICAvLyBcbiAgICBUYWJsZVBpbGxJY29uW1wiU3RvcmVkUHJvY2VkdXJlXCJdID0gXCJzdG9yZWQtcHJvY2VkdXJlXCI7XG59KShUYWJsZVBpbGxJY29uID0gZXhwb3J0cy5UYWJsZVBpbGxJY29uIHx8IChleHBvcnRzLlRhYmxlUGlsbEljb24gPSB7fSkpO1xuLy8gXG52YXIgSm9pblZhbGlkYXRpb25FcnJvcjtcbihmdW5jdGlvbiAoSm9pblZhbGlkYXRpb25FcnJvcikge1xuICAgIC8vIFxuICAgIEpvaW5WYWxpZGF0aW9uRXJyb3JbXCJKVkVfTm9FcnJvclwiXSA9IFwibm8tZXJyb3JcIjtcbiAgICAvLyBcbiAgICBKb2luVmFsaWRhdGlvbkVycm9yW1wiSlZFX0VtcHR5Q2xhdXNlXCJdID0gXCJlbXB0eS1jbGF1c2VcIjtcbiAgICAvLyBcbiAgICBKb2luVmFsaWRhdGlvbkVycm9yW1wiSlZFX1R5cGVNaXNtYXRjaFwiXSA9IFwidHlwZS1taXNtYXRjaFwiO1xuICAgIC8vIFxuICAgIEpvaW5WYWxpZGF0aW9uRXJyb3JbXCJKVkVfSW52YWxpZEZpZWxkXCJdID0gXCJpbnZhbGlkLWZpZWxkXCI7XG4gICAgLy8gXG4gICAgSm9pblZhbGlkYXRpb25FcnJvcltcIkpWRV9CYWRDbGF1c2VcIl0gPSBcImJhZC1jbGF1c2VcIjtcbiAgICAvLyBcbiAgICBKb2luVmFsaWRhdGlvbkVycm9yW1wiSlZFX0JhZElucHV0UmVsYXRpb25cIl0gPSBcImJhZC1pbnB1dC1yZWxhdGlvblwiO1xuICAgIC8vIFxuICAgIEpvaW5WYWxpZGF0aW9uRXJyb3JbXCJKVkVfUmVwZWF0ZWRGaWVsZFJlZmVyZW5jZXNcIl0gPSBcInJlcGVhdGVkLWZpZWxkLXJlZmVyZW5jZXNcIjtcbiAgICAvLyBcbiAgICBKb2luVmFsaWRhdGlvbkVycm9yW1wiSlZFX1Vuc3VwcG9ydGVkSm9pblR5cGVcIl0gPSBcInVuc3VwcG9ydGVkLWpvaW4tdHlwZVwiO1xuICAgIC8vIFxuICAgIEpvaW5WYWxpZGF0aW9uRXJyb3JbXCJKVkVfSW52YWxpZENhbGN1bGF0aW9uXCJdID0gXCJpbnZhbGlkLWNhbGN1bGF0aW9uXCI7XG4gICAgLy8gXG4gICAgSm9pblZhbGlkYXRpb25FcnJvcltcIkpWRV9Ob25TcGF0aWFsVHlwZVwiXSA9IFwibm9uLXNwYXRpYWwtdHlwZVwiO1xuICAgIC8vIFxuICAgIEpvaW5WYWxpZGF0aW9uRXJyb3JbXCJKVkVfTm9uU3BhdGlhbENvbXBhcmlzb25cIl0gPSBcIm5vbi1zcGF0aWFsLWNvbXBcIjtcbiAgICAvLyBcbiAgICBKb2luVmFsaWRhdGlvbkVycm9yW1wiSlZFX1Vua25vd25cIl0gPSBcInVua25vd25cIjtcbn0pKEpvaW5WYWxpZGF0aW9uRXJyb3IgPSBleHBvcnRzLkpvaW5WYWxpZGF0aW9uRXJyb3IgfHwgKGV4cG9ydHMuSm9pblZhbGlkYXRpb25FcnJvciA9IHt9KSk7XG4vLyBcbnZhciBDb25uZWN0aW9uVHlwZUVudW07XG4oZnVuY3Rpb24gKENvbm5lY3Rpb25UeXBlRW51bSkge1xuICAgIC8vIC1kLXMgaXMgdXNlZCB0byBmb3JjZSB0aGUgZW51bSBnZW5lcmF0b3IgdG8gZ2VuZXJhdGUgRFMgd2l0aCBjYXBpdGFsIGxldHRlcnMgaW4gLmNzIGp1c3QgbGlrZSB0aGUgLmNwcFxuICAgIENvbm5lY3Rpb25UeXBlRW51bVtcIkludmFsaWREU1wiXSA9IFwiaW52YWxpZC1kLXNcIjtcbiAgICAvLyBcbiAgICBDb25uZWN0aW9uVHlwZUVudW1bXCJGaWxlRFNcIl0gPSBcImZpbGUtZC1zXCI7XG4gICAgLy8gXG4gICAgQ29ubmVjdGlvblR5cGVFbnVtW1wiU2VydmVyRFNcIl0gPSBcInNlcnZlci1kLXNcIjtcbiAgICAvLyBcbiAgICBDb25uZWN0aW9uVHlwZUVudW1bXCJJbnRlcm5ldERTXCJdID0gXCJpbnRlcm5ldC1kLXNcIjtcbiAgICAvLyBcbiAgICBDb25uZWN0aW9uVHlwZUVudW1bXCJUYWJsZWF1U2VydmVyRFNcIl0gPSBcInRhYmxlYXUtc2VydmVyLWQtc1wiO1xufSkoQ29ubmVjdGlvblR5cGVFbnVtID0gZXhwb3J0cy5Db25uZWN0aW9uVHlwZUVudW0gfHwgKGV4cG9ydHMuQ29ubmVjdGlvblR5cGVFbnVtID0ge30pKTtcbi8vIFxudmFyIENvbm5lY3Rpb25FcnJvclN0YWdlO1xuKGZ1bmN0aW9uIChDb25uZWN0aW9uRXJyb3JTdGFnZSkge1xuICAgIC8vIFxuICAgIENvbm5lY3Rpb25FcnJvclN0YWdlW1wiVW5rbm93blwiXSA9IFwidW5rbm93blwiO1xuICAgIC8vIFxuICAgIENvbm5lY3Rpb25FcnJvclN0YWdlW1wiQ3JlYXRlUHJvdG9jb2xGYWlsZWRcIl0gPSBcImNyZWF0ZS1wcm90b2NvbC1mYWlsZWRcIjtcbiAgICAvLyBcbiAgICBDb25uZWN0aW9uRXJyb3JTdGFnZVtcIkxvYWRNZXRhZGF0YUZhaWxlZFwiXSA9IFwibG9hZC1tZXRhZGF0YS1mYWlsZWRcIjtcbn0pKENvbm5lY3Rpb25FcnJvclN0YWdlID0gZXhwb3J0cy5Db25uZWN0aW9uRXJyb3JTdGFnZSB8fCAoZXhwb3J0cy5Db25uZWN0aW9uRXJyb3JTdGFnZSA9IHt9KSk7XG4vLyBcbnZhciBTZXRUaWNrT3JpZ2luUmVzdWx0O1xuKGZ1bmN0aW9uIChTZXRUaWNrT3JpZ2luUmVzdWx0KSB7XG4gICAgLy8gXG4gICAgU2V0VGlja09yaWdpblJlc3VsdFtcIlN1Y2Nlc3NcIl0gPSBcInNldC10aWNrLW9yaWdpbi1zdWNjZXNzLXJlc3VsdFwiO1xuICAgIC8vIFxuICAgIFNldFRpY2tPcmlnaW5SZXN1bHRbXCJQYXJzZUZhaWx1cmVcIl0gPSBcInNldC10aWNrLW9yaWdpbi1wYXJzZS1mYWlsdXJlLXJlc3VsdFwiO1xuICAgIC8vIFxuICAgIFNldFRpY2tPcmlnaW5SZXN1bHRbXCJWYWx1ZUZhaWx1cmVcIl0gPSBcInNldC10aWNrLW9yaWdpbi12YWx1ZS1mYWlsdXJlLXJlc3VsdFwiO1xufSkoU2V0VGlja09yaWdpblJlc3VsdCA9IGV4cG9ydHMuU2V0VGlja09yaWdpblJlc3VsdCB8fCAoZXhwb3J0cy5TZXRUaWNrT3JpZ2luUmVzdWx0ID0ge30pKTtcbi8vIFxudmFyIFNldFRpY2tTcGFjaW5nUmVzdWx0O1xuKGZ1bmN0aW9uIChTZXRUaWNrU3BhY2luZ1Jlc3VsdCkge1xuICAgIC8vIFxuICAgIFNldFRpY2tTcGFjaW5nUmVzdWx0W1wiU3VjY2Vzc1wiXSA9IFwic2V0LXRpY2stc3BhY2luZy1zdWNjZXNzLXJlc3VsdFwiO1xuICAgIC8vIFxuICAgIFNldFRpY2tTcGFjaW5nUmVzdWx0W1wiUGFyc2VGYWlsdXJlXCJdID0gXCJzZXQtdGljay1zcGFjaW5nLXBhcnNlLWZhaWx1cmUtcmVzdWx0XCI7XG4gICAgLy8gXG4gICAgU2V0VGlja1NwYWNpbmdSZXN1bHRbXCJWYWx1ZUZhaWx1cmVcIl0gPSBcInNldC10aWNrLXNwYWNpbmctdmFsdWUtZmFpbHVyZS1yZXN1bHRcIjtcbn0pKFNldFRpY2tTcGFjaW5nUmVzdWx0ID0gZXhwb3J0cy5TZXRUaWNrU3BhY2luZ1Jlc3VsdCB8fCAoZXhwb3J0cy5TZXRUaWNrU3BhY2luZ1Jlc3VsdCA9IHt9KSk7XG4vLyBUaGUgcmVzdWx0IG9mIHNldHRpbmcgb25lIGVuZCBvZiBhbiBheGlzIHJhbmdlXG52YXIgU2V0QXhpc1JhbmdlUmVzdWx0O1xuKGZ1bmN0aW9uIChTZXRBeGlzUmFuZ2VSZXN1bHQpIHtcbiAgICAvLyBcbiAgICBTZXRBeGlzUmFuZ2VSZXN1bHRbXCJTdWNjZXNzXCJdID0gXCJzZXQtYXhpcy1yYW5nZS1zdWNjZXNzLXJlc3VsdFwiO1xuICAgIC8vIFxuICAgIFNldEF4aXNSYW5nZVJlc3VsdFtcIkZhaWx1cmVcIl0gPSBcInNldC1heGlzLXJhbmdlLWZhaWx1cmUtcmVzdWx0XCI7XG59KShTZXRBeGlzUmFuZ2VSZXN1bHQgPSBleHBvcnRzLlNldEF4aXNSYW5nZVJlc3VsdCB8fCAoZXhwb3J0cy5TZXRBeGlzUmFuZ2VSZXN1bHQgPSB7fSkpO1xuLy8gVGhlIHR5cGUgb2YgYW4gYXhpcycgZXh0ZW50XG52YXIgQXhpc0V4dGVudFR5cGU7XG4oZnVuY3Rpb24gKEF4aXNFeHRlbnRUeXBlKSB7XG4gICAgLy8gXG4gICAgQXhpc0V4dGVudFR5cGVbXCJBdXRvbWF0aWNcIl0gPSBcImF4aXMtZXh0ZW50LWF1dG9tYXRpY1wiO1xuICAgIC8vIFxuICAgIEF4aXNFeHRlbnRUeXBlW1wiVW5pZm9ybVwiXSA9IFwiYXhpcy1leHRlbnQtdW5pZm9ybVwiO1xuICAgIC8vIFxuICAgIEF4aXNFeHRlbnRUeXBlW1wiSW5kZXBlbmRlbnRcIl0gPSBcImF4aXMtZXh0ZW50LWluZGVwZW5kZW50XCI7XG4gICAgLy8gXG4gICAgQXhpc0V4dGVudFR5cGVbXCJGaXhlZFwiXSA9IFwiYXhpcy1leHRlbnQtZml4ZWRcIjtcbn0pKEF4aXNFeHRlbnRUeXBlID0gZXhwb3J0cy5BeGlzRXh0ZW50VHlwZSB8fCAoZXhwb3J0cy5BeGlzRXh0ZW50VHlwZSA9IHt9KSk7XG4vLyBFbnVtZXJhdGlvbiBvZiB1bml0cyB0aWNrIHNwYWNpbmcgY2FuIHRha2VcbnZhciBUaWNrU3BhY2luZ1VuaXRzO1xuKGZ1bmN0aW9uIChUaWNrU3BhY2luZ1VuaXRzKSB7XG4gICAgLy8gXG4gICAgVGlja1NwYWNpbmdVbml0c1tcIk5vVW5pdHNcIl0gPSBcIm5vLXVuaXRzXCI7XG4gICAgLy8gXG4gICAgVGlja1NwYWNpbmdVbml0c1tcIlllYXJzXCJdID0gXCJ5ZWFyc1wiO1xuICAgIC8vIFxuICAgIFRpY2tTcGFjaW5nVW5pdHNbXCJRdWFydGVyc1wiXSA9IFwicXVhcnRlcnNcIjtcbiAgICAvLyBcbiAgICBUaWNrU3BhY2luZ1VuaXRzW1wiTW9udGhzXCJdID0gXCJtb250aHNcIjtcbiAgICAvLyBcbiAgICBUaWNrU3BhY2luZ1VuaXRzW1wiV2Vla3NcIl0gPSBcIndlZWtzXCI7XG4gICAgLy8gXG4gICAgVGlja1NwYWNpbmdVbml0c1tcIkRheXNcIl0gPSBcImRheXNcIjtcbiAgICAvLyBcbiAgICBUaWNrU3BhY2luZ1VuaXRzW1wiSG91cnNcIl0gPSBcImhvdXJzXCI7XG4gICAgLy8gXG4gICAgVGlja1NwYWNpbmdVbml0c1tcIk1pbnV0ZXNcIl0gPSBcIm1pbnV0ZXNcIjtcbiAgICAvLyBcbiAgICBUaWNrU3BhY2luZ1VuaXRzW1wiU2Vjb25kc1wiXSA9IFwic2Vjb25kc1wiO1xufSkoVGlja1NwYWNpbmdVbml0cyA9IGV4cG9ydHMuVGlja1NwYWNpbmdVbml0cyB8fCAoZXhwb3J0cy5UaWNrU3BhY2luZ1VuaXRzID0ge30pKTtcbi8vIEVudW1lcmF0aW9uIG9mIHdoZXRoZXIgdG90YWxzIGFyZSBpbmNsdWRlZCBpbiBvciBleGNsdWRlZCBmcm9tIHRoZSBjb2xvciBlbmNvZGluZ1xudmFyIFRvdGFsc0luY2x1c2lvbjtcbihmdW5jdGlvbiAoVG90YWxzSW5jbHVzaW9uKSB7XG4gICAgLy8gVG90YWxzIGluY2x1ZGVkIGluIGNvbG9yIGVuY29kaW5nXG4gICAgVG90YWxzSW5jbHVzaW9uW1wiSW5jbHVkZVRvdGFsc1wiXSA9IFwiaW5jbHVkZS10b3RhbHNcIjtcbiAgICAvLyBUb3RhbHMgZXhjbHVkZWQgZnJvbSBjb2xvciBlbmNvZGluZ1xuICAgIFRvdGFsc0luY2x1c2lvbltcIkV4Y2x1ZGVUb3RhbHNcIl0gPSBcImV4Y2x1ZGUtdG90YWxzXCI7XG59KShUb3RhbHNJbmNsdXNpb24gPSBleHBvcnRzLlRvdGFsc0luY2x1c2lvbiB8fCAoZXhwb3J0cy5Ub3RhbHNJbmNsdXNpb24gPSB7fSkpO1xuLy8gSG93IHRpY2sgbWFya3MgYXJlIGJlaW5nIGNhbGN1bGF0ZWRcbnZhciBUaWNrTWFya1N0YXRlO1xuKGZ1bmN0aW9uIChUaWNrTWFya1N0YXRlKSB7XG4gICAgLy8gXG4gICAgVGlja01hcmtTdGF0ZVtcIlRpY2tzQXV0b21hdGljXCJdID0gXCJ0aWNrcy1hdXRvbWF0aWNcIjtcbiAgICAvLyBcbiAgICBUaWNrTWFya1N0YXRlW1wiVGlja3NNYW51YWxcIl0gPSBcInRpY2tzLW1hbnVhbFwiO1xuICAgIC8vIFxuICAgIFRpY2tNYXJrU3RhdGVbXCJUaWNrc05vbmVcIl0gPSBcInRpY2tzLU5vbmVcIjtcbn0pKFRpY2tNYXJrU3RhdGUgPSBleHBvcnRzLlRpY2tNYXJrU3RhdGUgfHwgKGV4cG9ydHMuVGlja01hcmtTdGF0ZSA9IHt9KSk7XG4vLyBTZXR0aW5nIGZvciB0eXBlIG9mIGF4aXMgcmFuZ2VcbnZhciBBeGlzUmFuZ2VUeXBlO1xuKGZ1bmN0aW9uIChBeGlzUmFuZ2VUeXBlKSB7XG4gICAgLy8gXG4gICAgQXhpc1JhbmdlVHlwZVtcIkF1dG9tYXRpY1JhbmdlXCJdID0gXCJhdXRvbWF0aWMtcmFuZ2VcIjtcbiAgICAvLyBcbiAgICBBeGlzUmFuZ2VUeXBlW1wiVW5pZm9ybVJhbmdlXCJdID0gXCJ1bmlmb3JtLXJhbmdlXCI7XG4gICAgLy8gXG4gICAgQXhpc1JhbmdlVHlwZVtcIkluZGVwZW5kZW50UmFuZ2VcIl0gPSBcImluZGVwZW5kZW50LXJhbmdlXCI7XG4gICAgLy8gXG4gICAgQXhpc1JhbmdlVHlwZVtcIkZpeGVkUmFuZ2VcIl0gPSBcImZpeGVkLXJhbmdlXCI7XG4gICAgLy8gXG4gICAgQXhpc1JhbmdlVHlwZVtcIkZpeGVkTWluXCJdID0gXCJmaXhlZC1taW5cIjtcbiAgICAvLyBcbiAgICBBeGlzUmFuZ2VUeXBlW1wiRml4ZWRNYXhcIl0gPSBcImZpeGVkLW1heFwiO1xuICAgIC8vIFxuICAgIEF4aXNSYW5nZVR5cGVbXCJGaXhlZE1pblVuaWZvcm1NYXhcIl0gPSBcImZpeGVkLW1pbi11bmlmb3JtLW1heFwiO1xuICAgIC8vIFxuICAgIEF4aXNSYW5nZVR5cGVbXCJGaXhlZE1pbkluZGVwZW5kZW50TWF4XCJdID0gXCJmaXhlZC1taW4taW5kZXBlbmRlbnQtbWF4XCI7XG4gICAgLy8gXG4gICAgQXhpc1JhbmdlVHlwZVtcIkZpeGVkTWF4VW5pZm9ybU1pblwiXSA9IFwiZml4ZWQtbWF4LXVuaWZvcm0tbWluXCI7XG4gICAgLy8gXG4gICAgQXhpc1JhbmdlVHlwZVtcIkZpeGVkTWF4SW5kZXBlbmRlbnRNaW5cIl0gPSBcImZpeGVkLW1heC1pbmRlcGVuZGVudC1taW5cIjtcbiAgICAvLyBcbiAgICBBeGlzUmFuZ2VUeXBlW1wiRml4ZWRSYW5nZU9yZGluYWxcIl0gPSBcImZpeGVkLXJhbmdlLW9yZGluYWxcIjtcbn0pKEF4aXNSYW5nZVR5cGUgPSBleHBvcnRzLkF4aXNSYW5nZVR5cGUgfHwgKGV4cG9ydHMuQXhpc1JhbmdlVHlwZSA9IHt9KSk7XG4vLyByZXByZXNlbnRzIHR5cGUgb2Ygd2lkZ2V0IG9uIHRoZSB0b29sYmFyIG9mIHJpY2ggdGV4dCBlZGl0b3JcbnZhciBSaWNoVGV4dEVkaXRvcldpZGdldEtleTtcbihmdW5jdGlvbiAoUmljaFRleHRFZGl0b3JXaWRnZXRLZXkpIHtcbiAgICAvLyBcbiAgICBSaWNoVGV4dEVkaXRvcldpZGdldEtleVtcIk5vbmVcIl0gPSBcIm5vbmVcIjtcbiAgICAvLyBcbiAgICBSaWNoVGV4dEVkaXRvcldpZGdldEtleVtcIkZvbnRTaXplXCJdID0gXCJmb250c2l6ZVwiO1xuICAgIC8vIFxuICAgIFJpY2hUZXh0RWRpdG9yV2lkZ2V0S2V5W1wiRm9udE5hbWVcIl0gPSBcImZvbnRuYW1lXCI7XG4gICAgLy8gXG4gICAgUmljaFRleHRFZGl0b3JXaWRnZXRLZXlbXCJGb250Q29sb3JcIl0gPSBcImNvbG9yXCI7XG4gICAgLy8gXG4gICAgUmljaFRleHRFZGl0b3JXaWRnZXRLZXlbXCJCb2xkXCJdID0gXCJib2xkXCI7XG4gICAgLy8gXG4gICAgUmljaFRleHRFZGl0b3JXaWRnZXRLZXlbXCJJdGFsaWNcIl0gPSBcIml0YWxpY1wiO1xuICAgIC8vIFxuICAgIFJpY2hUZXh0RWRpdG9yV2lkZ2V0S2V5W1wiVW5kZXJsaW5lXCJdID0gXCJ1bmRlcmxpbmVcIjtcbiAgICAvLyBcbiAgICBSaWNoVGV4dEVkaXRvcldpZGdldEtleVtcIkFsaWduTGVmdFwiXSA9IFwianVzdGlmeWxlZnRcIjtcbiAgICAvLyBcbiAgICBSaWNoVGV4dEVkaXRvcldpZGdldEtleVtcIkFsaWduQ2VudGVyXCJdID0gXCJqdXN0aWZ5Y2VudGVyXCI7XG4gICAgLy8gXG4gICAgUmljaFRleHRFZGl0b3JXaWRnZXRLZXlbXCJBbGlnblJpZ2h0XCJdID0gXCJqdXN0aWZ5cmlnaHRcIjtcbiAgICAvLyBcbiAgICBSaWNoVGV4dEVkaXRvcldpZGdldEtleVtcIkNsZWFyRm9ybWF0dGluZ1wiXSA9IFwiY2xlYXJmb3JtYXR0aW5nXCI7XG4gICAgLy8gXG4gICAgUmljaFRleHRFZGl0b3JXaWRnZXRLZXlbXCJUYWJsZWF1S2V5d29yZHNcIl0gPSBcInRhYmxlYXVrZXl3b3Jkc1wiO1xufSkoUmljaFRleHRFZGl0b3JXaWRnZXRLZXkgPSBleHBvcnRzLlJpY2hUZXh0RWRpdG9yV2lkZ2V0S2V5IHx8IChleHBvcnRzLlJpY2hUZXh0RWRpdG9yV2lkZ2V0S2V5ID0ge30pKTtcbi8vIFxudmFyIENlbGxTaXplQ2hhbmdlO1xuKGZ1bmN0aW9uIChDZWxsU2l6ZUNoYW5nZSkge1xuICAgIC8vIFxuICAgIENlbGxTaXplQ2hhbmdlW1wiQ1NDX1RhbGxlclwiXSA9IFwidGFsbGVyXCI7XG4gICAgLy8gXG4gICAgQ2VsbFNpemVDaGFuZ2VbXCJDU0NfU2hvcnRlclwiXSA9IFwic2hvcnRlclwiO1xuICAgIC8vIFxuICAgIENlbGxTaXplQ2hhbmdlW1wiQ1NDX1dpZGVyXCJdID0gXCJ3aWRlclwiO1xuICAgIC8vIFxuICAgIENlbGxTaXplQ2hhbmdlW1wiQ1NDX05hcnJvd2VyXCJdID0gXCJuYXJyb3dlclwiO1xuICAgIC8vIFxuICAgIENlbGxTaXplQ2hhbmdlW1wiQ1NDX0JpZ2dlclwiXSA9IFwiYmlnZ2VyXCI7XG4gICAgLy8gXG4gICAgQ2VsbFNpemVDaGFuZ2VbXCJDU0NfU21hbGxlclwiXSA9IFwic21hbGxlclwiO1xufSkoQ2VsbFNpemVDaGFuZ2UgPSBleHBvcnRzLkNlbGxTaXplQ2hhbmdlIHx8IChleHBvcnRzLkNlbGxTaXplQ2hhbmdlID0ge30pKTtcbi8vIFxudmFyIENlbGxUeXBlRW51bTtcbihmdW5jdGlvbiAoQ2VsbFR5cGVFbnVtKSB7XG4gICAgLy8gXG4gICAgQ2VsbFR5cGVFbnVtW1wiQ0xUX1NxdWFyZVwiXSA9IFwic3F1YXJlXCI7XG4gICAgLy8gXG4gICAgQ2VsbFR5cGVFbnVtW1wiQ0xUX1RleHRcIl0gPSBcInRleHRcIjtcbn0pKENlbGxUeXBlRW51bSA9IGV4cG9ydHMuQ2VsbFR5cGVFbnVtIHx8IChleHBvcnRzLkNlbGxUeXBlRW51bSA9IHt9KSk7XG4vLyByZXByZXNlbnRzIHR5cGUgb2YgZm9ybWF0dGluZyBwcmVzIG1vZGVsXG52YXIgVHlwZU9mRm9ybWF0SXRlbTtcbihmdW5jdGlvbiAoVHlwZU9mRm9ybWF0SXRlbSkge1xuICAgIC8vIFxuICAgIFR5cGVPZkZvcm1hdEl0ZW1bXCJGVF9Gb3JtYXRJdGVtXCJdID0gXCJmb3JtYXRJdGVtXCI7XG4gICAgLy8gXG4gICAgVHlwZU9mRm9ybWF0SXRlbVtcIkZUX0Zvcm1hdENvbnRhaW5lclwiXSA9IFwiZm9ybWF0Q29udGFpbmVyXCI7XG4gICAgLy8gXG4gICAgVHlwZU9mRm9ybWF0SXRlbVtcIkZUX0Zvcm1hdENvbnRyb2xcIl0gPSBcImZvcm1hdENvbnRyb2xcIjtcbn0pKFR5cGVPZkZvcm1hdEl0ZW0gPSBleHBvcnRzLlR5cGVPZkZvcm1hdEl0ZW0gfHwgKGV4cG9ydHMuVHlwZU9mRm9ybWF0SXRlbSA9IHt9KSk7XG4vLyByZXByZXNlbnRzIHR5cGUgb2YgZm9ybWF0dGluZyBjb250YWluZXJcbnZhciBUeXBlT2ZGb3JtYXRDb250YWluZXI7XG4oZnVuY3Rpb24gKFR5cGVPZkZvcm1hdENvbnRhaW5lcikge1xuICAgIC8vIFxuICAgIFR5cGVPZkZvcm1hdENvbnRhaW5lcltcIkZUX0Zvcm1hdFBhbmVcIl0gPSBcImZvcm1hdFBhbmVcIjtcbiAgICAvLyBcbiAgICBUeXBlT2ZGb3JtYXRDb250YWluZXJbXCJGVF9Gb3JtYXRTZWN0aW9uXCJdID0gXCJmb3JtYXRTZWN0aW9uXCI7XG4gICAgLy8gXG4gICAgVHlwZU9mRm9ybWF0Q29udGFpbmVyW1wiRlRfQ29sbGFwc2libGVTZWN0aW9uXCJdID0gXCJjb2xsYXBzaWJsZVNlY3Rpb25cIjtcbiAgICAvLyBcbiAgICBUeXBlT2ZGb3JtYXRDb250YWluZXJbXCJGVF9Db21wb3NpdGVDb250YWluZXJcIl0gPSBcImNvbXBvc2l0ZUNvbnRhaW5lclwiO1xuICAgIC8vIFxuICAgIFR5cGVPZkZvcm1hdENvbnRhaW5lcltcIkZUX1VuaXRDb250YWluZXJcIl0gPSBcInVuaXRDb250YWluZXJcIjtcbiAgICAvLyBcbiAgICBUeXBlT2ZGb3JtYXRDb250YWluZXJbXCJGVF9UYWJcIl0gPSBcInRhYlwiO1xuICAgIC8vIFxuICAgIFR5cGVPZkZvcm1hdENvbnRhaW5lcltcIkZUX1RhYkdyb3VwXCJdID0gXCJ0YWJHcm91cFwiO1xufSkoVHlwZU9mRm9ybWF0Q29udGFpbmVyID0gZXhwb3J0cy5UeXBlT2ZGb3JtYXRDb250YWluZXIgfHwgKGV4cG9ydHMuVHlwZU9mRm9ybWF0Q29udGFpbmVyID0ge30pKTtcbi8vIHJlcHJlc2VudHMgdHlwZSBvZiBmb3JtYXR0aW5nIGNvbnRyb2xcbnZhciBUeXBlT2ZGb3JtYXRDb250cm9sO1xuKGZ1bmN0aW9uIChUeXBlT2ZGb3JtYXRDb250cm9sKSB7XG4gICAgLy8gXG4gICAgVHlwZU9mRm9ybWF0Q29udHJvbFtcIkZUX05vbmVcIl0gPSBcIm5vbmVcIjtcbiAgICAvLyBcbiAgICBUeXBlT2ZGb3JtYXRDb250cm9sW1wiRlRfTnVtZXJpY0NvbnRyb2xcIl0gPSBcIm51bWVyaWMtY29udHJvbFwiO1xuICAgIC8vIFxuICAgIFR5cGVPZkZvcm1hdENvbnRyb2xbXCJGVF9UZXh0Q29udHJvbFwiXSA9IFwidGV4dC1jb250cm9sXCI7XG4gICAgLy8gXG4gICAgVHlwZU9mRm9ybWF0Q29udHJvbFtcIkZUX0NvbG9yQ29udHJvbFwiXSA9IFwiY29sb3ItY29udHJvbFwiO1xuICAgIC8vIFxuICAgIFR5cGVPZkZvcm1hdENvbnRyb2xbXCJGVF9TZWxlY3RvckNvbnRyb2xcIl0gPSBcInNlbGVjdG9yLWNvbnRyb2xcIjtcbiAgICAvLyBcbiAgICBUeXBlT2ZGb3JtYXRDb250cm9sW1wiRlRfVG9nZ2xlQ29udHJvbFwiXSA9IFwidG9nZ2xlLWNvbnRyb2xcIjtcbn0pKFR5cGVPZkZvcm1hdENvbnRyb2wgPSBleHBvcnRzLlR5cGVPZkZvcm1hdENvbnRyb2wgfHwgKGV4cG9ydHMuVHlwZU9mRm9ybWF0Q29udHJvbCA9IHt9KSk7XG4vLyByZXByZXNlbnRzIHR5cGUgb2YgZm9ybWF0dGluZyB3aWRnZXRcbnZhciBGb3JtYXRXaWRnZXRLZXk7XG4oZnVuY3Rpb24gKEZvcm1hdFdpZGdldEtleSkge1xuICAgIC8vIFxuICAgIEZvcm1hdFdpZGdldEtleVtcIkZXS19Ob25lXCJdID0gXCJub25lXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0V2lkZ2V0S2V5W1wiRldLX0ZvbnRGYW1pbHlcIl0gPSBcImZvbnRGYW1pbHlcIjtcbiAgICAvLyBcbiAgICBGb3JtYXRXaWRnZXRLZXlbXCJGV0tfRm9udFNpemVcIl0gPSBcImZvbnRTaXplXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0V2lkZ2V0S2V5W1wiRldLX0NvbG9yU3dhdGNoXCJdID0gXCJjb2xvclN3YXRjaFwiO1xuICAgIC8vIFxuICAgIEZvcm1hdFdpZGdldEtleVtcIkZXS19Cb2xkXCJdID0gXCJib2xkXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0V2lkZ2V0S2V5W1wiRldLX0l0YWxpY3NcIl0gPSBcIml0YWxpY3NcIjtcbiAgICAvLyBcbiAgICBGb3JtYXRXaWRnZXRLZXlbXCJGV0tfVW5kZXJsaW5lXCJdID0gXCJ1bmRlcmxpbmVcIjtcbiAgICAvLyBcbiAgICBGb3JtYXRXaWRnZXRLZXlbXCJGV0tfTGluZVZpc2liaWxpdHlcIl0gPSBcImxpbmVWaXNpYmlsaXR5XCI7XG4gICAgLy8gXG4gICAgRm9ybWF0V2lkZ2V0S2V5W1wiRldLX0xpbmVQYXR0ZXJuXCJdID0gXCJsaW5lUGF0dGVyblwiO1xuICAgIC8vIFxuICAgIEZvcm1hdFdpZGdldEtleVtcIkZXS19MaW5lU2l6ZVwiXSA9IFwibGluZVNpemVcIjtcbiAgICAvLyBcbiAgICBGb3JtYXRXaWRnZXRLZXlbXCJGV0tfTnVtYmVyVHlwZVwiXSA9IFwibnVtZXJpY1R5cGVcIjtcbiAgICAvLyBcbiAgICBGb3JtYXRXaWRnZXRLZXlbXCJGV0tfRGVjaW1hbFBsYWNlc1wiXSA9IFwiZGVjaW1hbFBsYWNlc1wiO1xuICAgIC8vIFxuICAgIEZvcm1hdFdpZGdldEtleVtcIkZXS19UaG91c2FuZHNTZXBhcmF0b3JcIl0gPSBcInRob3VzYW5kc1NlcGFyYXRvclwiO1xuICAgIC8vIFxuICAgIEZvcm1hdFdpZGdldEtleVtcIkZXS19OdW1lcmljVW5pdHNcIl0gPSBcIm51bWVyaWNVbml0c1wiO1xufSkoRm9ybWF0V2lkZ2V0S2V5ID0gZXhwb3J0cy5Gb3JtYXRXaWRnZXRLZXkgfHwgKGV4cG9ydHMuRm9ybWF0V2lkZ2V0S2V5ID0ge30pKTtcbi8vIHJlcHJlc2VudHMgaWRlbnRpZmllciBmb3IgZWFjaCBub2RlIGluIGZvcm1hdCBwYW5lXG52YXIgRm9ybWF0Tm9kZUlkZW50aWZpZXI7XG4oZnVuY3Rpb24gKEZvcm1hdE5vZGVJZGVudGlmaWVyKSB7XG4gICAgLy8gXG4gICAgRm9ybWF0Tm9kZUlkZW50aWZpZXJbXCJGb3JtYXRfTm9uZV9LZXlcIl0gPSBcIm5vbmVcIjtcbiAgICAvLyBcbiAgICBGb3JtYXROb2RlSWRlbnRpZmllcltcIkZvcm1hdF9Xb3JrYm9va19LZXlcIl0gPSBcIndvcmtib29rXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Tm9kZUlkZW50aWZpZXJbXCJGb3JtYXRfRm9udF9LZXlcIl0gPSBcImZvbnRcIjtcbiAgICAvLyBcbiAgICBGb3JtYXROb2RlSWRlbnRpZmllcltcIkZvcm1hdF9Db2xvcl9LZXlcIl0gPSBcImNvbG9yXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Tm9kZUlkZW50aWZpZXJbXCJGb3JtYXRfTGluZXNfS2V5XCJdID0gXCJsaW5lc1wiO1xuICAgIC8vIFxuICAgIEZvcm1hdE5vZGVJZGVudGlmaWVyW1wiRm9ybWF0X0ZvbnRBbGxfS2V5XCJdID0gXCJmb250LWFsbFwiO1xuICAgIC8vIFxuICAgIEZvcm1hdE5vZGVJZGVudGlmaWVyW1wiRm9ybWF0X0ZvbnRBbGxDb250cm9sc19LZXlcIl0gPSBcImZvbnQtYWxsLWNvbnRyb2xzXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Tm9kZUlkZW50aWZpZXJbXCJGb3JtYXRfRm9udE1vcmVfS2V5XCJdID0gXCJmb250LW1vcmVcIjtcbiAgICAvLyBcbiAgICBGb3JtYXROb2RlSWRlbnRpZmllcltcIkZvcm1hdF9Gb250V29ya3NoZWV0VGl0bGVzX0tleVwiXSA9IFwid29ya3NoZWV0LXRpdGxlc1wiO1xuICAgIC8vIFxuICAgIEZvcm1hdE5vZGVJZGVudGlmaWVyW1wiRm9ybWF0X0ZvbnRUb29sVGlwX0tleVwiXSA9IFwiZm9udC10b29sdGlwXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Tm9kZUlkZW50aWZpZXJbXCJGb3JtYXRfRm9udFdvcmtzaGVldF9LZXlcIl0gPSBcImZvbnQtd29ya3NoZWV0XCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Tm9kZUlkZW50aWZpZXJbXCJGb3JtYXRfRm9udERhc2hUaXRsZXNfS2V5XCJdID0gXCJkYXNoLXRpdGxlc1wiO1xuICAgIC8vIFxuICAgIEZvcm1hdE5vZGVJZGVudGlmaWVyW1wiRm9ybWF0X0ZvbnRTdG9yeVRpdGxlc19LZXlcIl0gPSBcInN0b3J5LXRpdGxlc1wiO1xuICAgIC8vIFxuICAgIEZvcm1hdE5vZGVJZGVudGlmaWVyW1wiRm9ybWF0X0ZvbnRUaXRsZXNDb250cm9sc19LZXlcIl0gPSBcInRpdGxlcy1jb250cm9sc1wiO1xuICAgIC8vIFxuICAgIEZvcm1hdE5vZGVJZGVudGlmaWVyW1wiRm9ybWF0X0ZvbnRUb29sdGlwQ29udHJvbHNfS2V5XCJdID0gXCJ0b29sdGlwLWNvbnRyb2xzXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Tm9kZUlkZW50aWZpZXJbXCJGb3JtYXRfRm9udFdvcmtzaGVldENvbnRyb2xzX0tleVwiXSA9IFwid29ya3NoZWV0LWNvbnRyb2xzXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Tm9kZUlkZW50aWZpZXJbXCJGb3JtYXRfTGluZU1vcmVfS2V5XCJdID0gXCJsaW5lLW1vcmVcIjtcbiAgICAvLyBcbiAgICBGb3JtYXROb2RlSWRlbnRpZmllcltcIkZvcm1hdF9MaW5lR3JpZF9LZXlcIl0gPSBcImxpbmUtZ3JpZFwiO1xuICAgIC8vIFxuICAgIEZvcm1hdE5vZGVJZGVudGlmaWVyW1wiRm9ybWF0X0xpbmVHcmlkVGFic19LZXlcIl0gPSBcImxpbmUtZ3JpZC10YWJzXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Tm9kZUlkZW50aWZpZXJbXCJGb3JtYXRfTGluZVplcm9fS2V5XCJdID0gXCJsaW5lLXplcm9cIjtcbiAgICAvLyBcbiAgICBGb3JtYXROb2RlSWRlbnRpZmllcltcIkZvcm1hdF9MaW5lWmVyb1RhYnNfS2V5XCJdID0gXCJsaW5lLXplcm8tdGFic1wiO1xuICAgIC8vIFxuICAgIEZvcm1hdE5vZGVJZGVudGlmaWVyW1wiRm9ybWF0X0xpbmVBeGlzVGlja19LZXlcIl0gPSBcImxpbmUtYXhpcy10aWNrXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Tm9kZUlkZW50aWZpZXJbXCJGb3JtYXRfTGluZUF4aXNUaWNrVGFic19LZXlcIl0gPSBcImxpbmUtYXhpcy10aWNrLXRhYnNcIjtcbiAgICAvLyBcbiAgICBGb3JtYXROb2RlSWRlbnRpZmllcltcIkZvcm1hdF9MaW5lQXhpc1J1bGVyX0tleVwiXSA9IFwibGluZS1heGlzLXJ1bGVyXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Tm9kZUlkZW50aWZpZXJbXCJGb3JtYXRfTGluZUF4aXNSdWxlclRhYnNfS2V5XCJdID0gXCJsaW5lLWF4aXMtcnVsZXItdGFic1wiO1xuICAgIC8vIFxuICAgIEZvcm1hdE5vZGVJZGVudGlmaWVyW1wiRm9ybWF0X0xpbmVIZWFkZXJEaXZpZGVyX0tleVwiXSA9IFwibGluZS1oZWFkZXItZGl2aWRlclwiO1xuICAgIC8vIFxuICAgIEZvcm1hdE5vZGVJZGVudGlmaWVyW1wiRm9ybWF0X0xpbmVIZWFkZXJEaXZpZGVyVGFic19LZXlcIl0gPSBcImxpbmUtaGVhZGVyLWRpdmlkZXItdGFic1wiO1xuICAgIC8vIFxuICAgIEZvcm1hdE5vZGVJZGVudGlmaWVyW1wiRm9ybWF0X0xpbmVQYW5lRGl2aWRlcl9LZXlcIl0gPSBcImxpbmUtcGFuZURpdmlkZXJcIjtcbiAgICAvLyBcbiAgICBGb3JtYXROb2RlSWRlbnRpZmllcltcIkZvcm1hdF9MaW5lUGFuZURpdmlkZXJUYWJzX0tleVwiXSA9IFwibGluZS1wYW5lRGl2aWRlci10YWJzXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Tm9kZUlkZW50aWZpZXJbXCJGb3JtYXRfTGluZUdyaWRBbGxfS2V5XCJdID0gXCJsaW5lLWdyaWQtYWxsXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Tm9kZUlkZW50aWZpZXJbXCJGb3JtYXRfTGluZUdyaWRSb3dfS2V5XCJdID0gXCJsaW5lLWdyaWQtcm93XCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Tm9kZUlkZW50aWZpZXJbXCJGb3JtYXRfTGluZUdyaWRDb2x1bW5fS2V5XCJdID0gXCJsaW5lLWdyaWQtY29sdW1uXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Tm9kZUlkZW50aWZpZXJbXCJGb3JtYXRfTGluZVplcm9BbGxfS2V5XCJdID0gXCJsaW5lLXplcm8tYWxsXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Tm9kZUlkZW50aWZpZXJbXCJGb3JtYXRfTGluZVplcm9Sb3dfS2V5XCJdID0gXCJsaW5lLXplcm8tcm93XCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Tm9kZUlkZW50aWZpZXJbXCJGb3JtYXRfTGluZVplcm9Db2x1bW5fS2V5XCJdID0gXCJsaW5lLXplcm8tY29sdW1uXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Tm9kZUlkZW50aWZpZXJbXCJGb3JtYXRfTGluZUF4aXNUaWNrQWxsX0tleVwiXSA9IFwibGluZS1heGlzLXRpY2stYWxsXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Tm9kZUlkZW50aWZpZXJbXCJGb3JtYXRfTGluZUF4aXNUaWNrUm93X0tleVwiXSA9IFwibGluZS1heGlzLXRpY2stcm93XCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Tm9kZUlkZW50aWZpZXJbXCJGb3JtYXRfTGluZUF4aXNUaWNrQ29sdW1uX0tleVwiXSA9IFwibGluZS1heGlzLXRpY2stY29sdW1uXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Tm9kZUlkZW50aWZpZXJbXCJGb3JtYXRfTGluZUF4aXNSdWxlckFsbF9LZXlcIl0gPSBcImxpbmUtYXhpcy1ydWxlci1hbGxcIjtcbiAgICAvLyBcbiAgICBGb3JtYXROb2RlSWRlbnRpZmllcltcIkZvcm1hdF9MaW5lQXhpc1J1bGVyUm93X0tleVwiXSA9IFwibGluZS1heGlzLXJ1bGVyLXJvd1wiO1xuICAgIC8vIFxuICAgIEZvcm1hdE5vZGVJZGVudGlmaWVyW1wiRm9ybWF0X0xpbmVBeGlzUnVsZXJDb2x1bW5fS2V5XCJdID0gXCJsaW5lLWF4aXMtcnVsZXItY29sdW1uXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Tm9kZUlkZW50aWZpZXJbXCJGb3JtYXRfTGluZVJlZmVyZW5jZV9LZXlcIl0gPSBcImxpbmUtcmVmZXJlbmNlXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Tm9kZUlkZW50aWZpZXJbXCJGb3JtYXRfTGluZURyb3BfS2V5XCJdID0gXCJsaW5lLWRyb3BcIjtcbiAgICAvLyBcbiAgICBGb3JtYXROb2RlSWRlbnRpZmllcltcIkZvcm1hdF9MaW5lVHJlbmRfS2V5XCJdID0gXCJsaW5lLXRyZW5kXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Tm9kZUlkZW50aWZpZXJbXCJGb3JtYXRfTGluZVZpc2liaWxpdHlfS2V5XCJdID0gXCJsaW5lLXZpc2liaWxpdHlcIjtcbiAgICAvLyBcbiAgICBGb3JtYXROb2RlSWRlbnRpZmllcltcIkZvcm1hdF9MaW5lUGF0dGVybl9LZXlcIl0gPSBcImxpbmUtcGF0dGVyblwiO1xuICAgIC8vIFxuICAgIEZvcm1hdE5vZGVJZGVudGlmaWVyW1wiRm9ybWF0X0xpbmVXaWR0aF9LZXlcIl0gPSBcImxpbmUtd2lkdGhcIjtcbiAgICAvLyBcbiAgICBGb3JtYXROb2RlSWRlbnRpZmllcltcIkZvcm1hdF9MaW5lQ29sb3JfS2V5XCJdID0gXCJsaW5lLWNvbG9yXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Tm9kZUlkZW50aWZpZXJbXCJGb3JtYXRfVGlja0NvbG9yX0tleVwiXSA9IFwidGljay1jb2xvclwiO1xuICAgIC8vIFxuICAgIEZvcm1hdE5vZGVJZGVudGlmaWVyW1wiRm9ybWF0X0JvcmRlclBhdHRlcm5fS2V5XCJdID0gXCJib3JkZXItcGF0dGVyblwiO1xuICAgIC8vIFxuICAgIEZvcm1hdE5vZGVJZGVudGlmaWVyW1wiRm9ybWF0X0JvcmRlckNvbG9yX0tleVwiXSA9IFwiYm9yZGVyLWNvbG9yXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Tm9kZUlkZW50aWZpZXJbXCJGb3JtYXRfRGl2aWRlckNvbG9yX0tleVwiXSA9IFwiZGl2aWRlci1jb2xvclwiO1xuICAgIC8vIFxuICAgIEZvcm1hdE5vZGVJZGVudGlmaWVyW1wiRm9ybWF0X0ZvbnRGYW1pbHlfS2V5XCJdID0gXCJmb250LWZhbWlseS1rZXlcIjtcbiAgICAvLyBcbiAgICBGb3JtYXROb2RlSWRlbnRpZmllcltcIkZvcm1hdF9Gb250U2l6ZV9LZXlcIl0gPSBcImZvbnQtc2l6ZS1rZXlcIjtcbiAgICAvLyBcbiAgICBGb3JtYXROb2RlSWRlbnRpZmllcltcIkZvcm1hdF9Cb2xkX0tleVwiXSA9IFwiYm9sZC1rZXlcIjtcbiAgICAvLyBcbiAgICBGb3JtYXROb2RlSWRlbnRpZmllcltcIkZvcm1hdF9JdGFsaWNzX0tleVwiXSA9IFwiaXRhbGljcy1rZXlcIjtcbiAgICAvLyBcbiAgICBGb3JtYXROb2RlSWRlbnRpZmllcltcIkZvcm1hdF9VbmRlcmxpbmVfS2V5XCJdID0gXCJ1bmRlcmxpbmUta2V5XCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Tm9kZUlkZW50aWZpZXJbXCJGb3JtYXRfRm9udENvbG9yX0tleVwiXSA9IFwiZm9udC1jb2xvci1rZXlcIjtcbiAgICAvLyBcbiAgICBGb3JtYXROb2RlSWRlbnRpZmllcltcIkZvcm1hdF9OdW1iZXJfQ29udGFpbmVyX0tleVwiXSA9IFwibnVtYmVyLWNvbnRhaW5lclwiO1xuICAgIC8vIFxuICAgIEZvcm1hdE5vZGVJZGVudGlmaWVyW1wiRm9ybWF0X051bWJlcl9UeXBlX0tleVwiXSA9IFwibnVtYmVyLWNvbnRhaW5lci10eXBlXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Tm9kZUlkZW50aWZpZXJbXCJGb3JtYXRfTnVtYmVyX1VuaXRzX0tleVwiXSA9IFwibnVtYmVyLWNvbnRhaW5lci11bml0c1wiO1xuICAgIC8vIFxuICAgIEZvcm1hdE5vZGVJZGVudGlmaWVyW1wiRm9ybWF0X051bWJlcl9EZWNpbWFsX0tleVwiXSA9IFwibnVtYmVyLWNvbnRhaW5lci1kZWNpbWFsXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Tm9kZUlkZW50aWZpZXJbXCJGb3JtYXRfTnVtYmVyX1Rob3VzYW5kc19TZXBhcmF0b3JfS2V5XCJdID0gXCJudW1iZXItY29udGFpbmVyLXRob3VzYW5kcy1zZXBhcmF0b3JcIjtcbiAgICAvLyBcbiAgICBGb3JtYXROb2RlSWRlbnRpZmllcltcIkZvcm1hdF9Gb250UGlja2VyTWluaW1hbF9LZXlcIl0gPSBcImZvbnQtcGlja2VyLW1pbmltYWxcIjtcbiAgICAvLyBcbiAgICBGb3JtYXROb2RlSWRlbnRpZmllcltcIkZvcm1hdF9Gb250UGlja2VyRGVmYXVsdF9LZXlcIl0gPSBcImZvbnQtcGlja2VyLWRlZmF1bHRcIjtcbiAgICAvLyBcbiAgICBGb3JtYXROb2RlSWRlbnRpZmllcltcIkZvcm1hdF9MaW5lUGlja2VyRGVmYXVsdF9LZXlcIl0gPSBcImxpbmUtcGlja2VyLWRlZmF1bHRcIjtcbiAgICAvLyBcbiAgICBGb3JtYXROb2RlSWRlbnRpZmllcltcIkZvcm1hdF9MaW5lUGlja2VyTm9WaXNfS2V5XCJdID0gXCJsaW5lLXBpY2tlci1uby12aXNpYmlsaXR5XCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Tm9kZUlkZW50aWZpZXJbXCJGb3JtYXRfTGluZUF4aXNUaWNrUGlja2VyX0tleVwiXSA9IFwibGluZS1heGlzLXRpY2stcGlja2VyXCI7XG59KShGb3JtYXROb2RlSWRlbnRpZmllciA9IGV4cG9ydHMuRm9ybWF0Tm9kZUlkZW50aWZpZXIgfHwgKGV4cG9ydHMuRm9ybWF0Tm9kZUlkZW50aWZpZXIgPSB7fSkpO1xuLy8gRm9ybWF0IHByZXBlbmRlZCB0byBmb3JtYXQgc3RyaW5ncyB0byBzcGVjaWZ5IHR5cGVcbnZhciBGb3JtYXRDb2RlO1xuKGZ1bmN0aW9uIChGb3JtYXRDb2RlKSB7XG4gICAgLy8gXG4gICAgRm9ybWF0Q29kZVtcIkF1dG9Gb3JtYXRcIl0gPSBcImF1dG8tZm9ybWF0XCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Q29kZVtcIlN5c3RlbUxvbmdEYXRlXCJdID0gXCJzeXN0ZW0tbG9uZy1kYXRlXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Q29kZVtcIlN5c3RlbVNob3J0RGF0ZVwiXSA9IFwic3lzdGVtLXNob3J0LWRhdGVcIjtcbiAgICAvLyBcbiAgICBGb3JtYXRDb2RlW1wiU3lzdGVtTnVtYmVyXCJdID0gXCJzeXN0ZW0tbnVtYmVyXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Q29kZVtcIlN5c3RlbUN1cnJlbmN5XCJdID0gXCJzeXN0ZW0tY3VycmVuY3lcIjtcbiAgICAvLyBcbiAgICBGb3JtYXRDb2RlW1wiU3lzdGVtVGltZVwiXSA9IFwic3lzdGVtLXRpbWVcIjtcbiAgICAvLyBcbiAgICBGb3JtYXRDb2RlW1wiQ3VzdG9tXCJdID0gXCJjdXN0b21cIjtcbiAgICAvLyBcbiAgICBGb3JtYXRDb2RlW1wiQ3VzdG9tSUNVXCJdID0gXCJjdXN0b20taWN1XCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Q29kZVtcIkN1c3RvbU51bWJlclwiXSA9IFwiY3VzdG9tLW51bWJlclwiO1xuICAgIC8vIFxuICAgIEZvcm1hdENvZGVbXCJDdXN0b21DdXJyZW5jeVwiXSA9IFwiY3VzdG9tLWN1cnJlbmN5XCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Q29kZVtcIkN1c3RvbVNjaWVudGlmaWNcIl0gPSBcImN1c3RvbS1zY2llbnRpZmljXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Q29kZVtcIkN1c3RvbVBlcmNlbnRhZ2VcIl0gPSBcImN1c3RvbS1wZXJjZW50YWdlXCI7XG59KShGb3JtYXRDb2RlID0gZXhwb3J0cy5Gb3JtYXRDb2RlIHx8IChleHBvcnRzLkZvcm1hdENvZGUgPSB7fSkpO1xuLy8gVW5pdHMgc3BlY2lmaWVkIGluIGEgZm9ybWF0IHN0cmluZ1xudmFyIFVuaXRzRm9ybWF0RW51bTtcbihmdW5jdGlvbiAoVW5pdHNGb3JtYXRFbnVtKSB7XG4gICAgLy8gXG4gICAgVW5pdHNGb3JtYXRFbnVtW1wiVW5pdHNGbXROb25lXCJdID0gXCJ1bml0cy1ub25lXCI7XG4gICAgLy8gXG4gICAgVW5pdHNGb3JtYXRFbnVtW1wiVW5pdHNGbXRUaG91c2FuZHNcIl0gPSBcInVuaXRzLXRob3VzYW5kc1wiO1xuICAgIC8vIFxuICAgIFVuaXRzRm9ybWF0RW51bVtcIlVuaXRzRm10TWlsbGlvbnNcIl0gPSBcInVuaXRzLW1pbGxpb25zXCI7XG4gICAgLy8gXG4gICAgVW5pdHNGb3JtYXRFbnVtW1wiVW5pdHNGbXRCaWxsaW9uc0VuZ2xpc2hcIl0gPSBcInVuaXRzLWJpbGxpb25zLWVuZ2xpc2hcIjtcbiAgICAvLyBcbiAgICBVbml0c0Zvcm1hdEVudW1bXCJVbml0c0ZtdEJpbGxpb25zU3RhbmRhcmRcIl0gPSBcInVuaXRzLWJpbGxpb25zLXN0YW5kYXJkXCI7XG59KShVbml0c0Zvcm1hdEVudW0gPSBleHBvcnRzLlVuaXRzRm9ybWF0RW51bSB8fCAoZXhwb3J0cy5Vbml0c0Zvcm1hdEVudW0gPSB7fSkpO1xuLy8gcmVwcmVzZW50cyB0aGUgY29sb3Igc3dhdGNoIHRoYXQgd2lsbCBiZSB1c2VkIGluIHRoZSBDb2xvckNvbnRyb2xQcmVzTW9kZWxcbnZhciBDb2xvclN3YXRjaFR5cGU7XG4oZnVuY3Rpb24gKENvbG9yU3dhdGNoVHlwZSkge1xuICAgIC8vIFxuICAgIENvbG9yU3dhdGNoVHlwZVtcIkNTVF9EYXJrXCJdID0gXCJkYXJrLXN3YXRjaFwiO1xuICAgIC8vIFxuICAgIENvbG9yU3dhdGNoVHlwZVtcIkNTVF9MaWdodFwiXSA9IFwibGlnaHQtc3dhdGNoXCI7XG59KShDb2xvclN3YXRjaFR5cGUgPSBleHBvcnRzLkNvbG9yU3dhdGNoVHlwZSB8fCAoZXhwb3J0cy5Db2xvclN3YXRjaFR5cGUgPSB7fSkpO1xuLy8gcmVwcmVzZW50cyB0aGUgdHlwZSBvZiBhIHN0eWxlIHBpY2tlciwgYWZmZWN0aW5nIHRoZSBwcmV2aWV3IHJlbmRlcmluZyBhbmQsIHBvc3NpYmx5LCB0aGUgbGF5b3V0XG52YXIgUGlja2VyVHlwZTtcbihmdW5jdGlvbiAoUGlja2VyVHlwZSkge1xuICAgIC8vIFxuICAgIFBpY2tlclR5cGVbXCJQVF9Ob25lXCJdID0gXCJub25lXCI7XG4gICAgLy8gXG4gICAgUGlja2VyVHlwZVtcIlBUX0ZvbnRcIl0gPSBcImZvbnRcIjtcbiAgICAvLyBcbiAgICBQaWNrZXJUeXBlW1wiUFRfTGluZVwiXSA9IFwibGluZVwiO1xuICAgIC8vIFxuICAgIFBpY2tlclR5cGVbXCJQVF9OdW1iZXJcIl0gPSBcIm51bWJlclwiO1xufSkoUGlja2VyVHlwZSA9IGV4cG9ydHMuUGlja2VyVHlwZSB8fCAoZXhwb3J0cy5QaWNrZXJUeXBlID0ge30pKTtcbi8vIFxudmFyIFVwZGF0ZVNjb3BlO1xuKGZ1bmN0aW9uIChVcGRhdGVTY29wZSkge1xuICAgIC8vIFxuICAgIFVwZGF0ZVNjb3BlW1wiVVNfV29ya3NoZWV0XCJdID0gXCJ3b3Jrc2hlZXRcIjtcbiAgICAvLyBcbiAgICBVcGRhdGVTY29wZVtcIlVTX0Rhc2hib2FyZFwiXSA9IFwiZGFzaGJvYXJkXCI7XG4gICAgLy8gXG4gICAgVXBkYXRlU2NvcGVbXCJVU19RdWlja0ZpbHRlcnNcIl0gPSBcInF1aWNrLWZpbHRlcnNcIjtcbiAgICAvLyBcbiAgICBVcGRhdGVTY29wZVtcIlVTX1N0b3J5XCJdID0gXCJzdG9yeVwiO1xufSkoVXBkYXRlU2NvcGUgPSBleHBvcnRzLlVwZGF0ZVNjb3BlIHx8IChleHBvcnRzLlVwZGF0ZVNjb3BlID0ge30pKTtcbi8vIFxudmFyIFBhcmFtZXRlckN0cmxUeXBlc0Rpc3BsYXlNb2RlO1xuKGZ1bmN0aW9uIChQYXJhbWV0ZXJDdHJsVHlwZXNEaXNwbGF5TW9kZSkge1xuICAgIC8vIFxuICAgIFBhcmFtZXRlckN0cmxUeXBlc0Rpc3BsYXlNb2RlW1wiTU9ERV9UWVBFX0lOXCJdID0gXCJ0eXBlX2luXCI7XG4gICAgLy8gXG4gICAgUGFyYW1ldGVyQ3RybFR5cGVzRGlzcGxheU1vZGVbXCJNT0RFX0NPTVBBQ1RfTElTVFwiXSA9IFwiY29tcGFjdFwiO1xuICAgIC8vIFxuICAgIFBhcmFtZXRlckN0cmxUeXBlc0Rpc3BsYXlNb2RlW1wiTU9ERV9MSVNUXCJdID0gXCJsaXN0XCI7XG4gICAgLy8gXG4gICAgUGFyYW1ldGVyQ3RybFR5cGVzRGlzcGxheU1vZGVbXCJNT0RFX1NMSURFUlwiXSA9IFwic2xpZGVyXCI7XG4gICAgLy8gXG4gICAgUGFyYW1ldGVyQ3RybFR5cGVzRGlzcGxheU1vZGVbXCJNT0RFX0RBVEVUSU1FXCJdID0gXCJkYXRldGltZVwiO1xufSkoUGFyYW1ldGVyQ3RybFR5cGVzRGlzcGxheU1vZGUgPSBleHBvcnRzLlBhcmFtZXRlckN0cmxUeXBlc0Rpc3BsYXlNb2RlIHx8IChleHBvcnRzLlBhcmFtZXRlckN0cmxUeXBlc0Rpc3BsYXlNb2RlID0ge30pKTtcbi8vIGZsYWdzIGZvciBkaXNwbGF5IG9wdGlvbnNcbnZhciBQYXJhbWV0ZXJDdHJsVHlwZXNEaXNwbGF5RmxhZztcbihmdW5jdGlvbiAoUGFyYW1ldGVyQ3RybFR5cGVzRGlzcGxheUZsYWcpIHtcbiAgICAvLyBcbiAgICBQYXJhbWV0ZXJDdHJsVHlwZXNEaXNwbGF5RmxhZ1tcIkRJU1BMQVlfQ1VTVE9NX1RJVExFXCJdID0gXCJjdXN0b21fdGl0bGVcIjtcbiAgICAvLyBcbiAgICBQYXJhbWV0ZXJDdHJsVHlwZXNEaXNwbGF5RmxhZ1tcIkRJU1BMQVlfSElERV9TTElERVJfU0xJREVSXCJdID0gXCJoaWRlX3NsaWRlcl9zbGlkZXJcIjtcbiAgICAvLyBcbiAgICBQYXJhbWV0ZXJDdHJsVHlwZXNEaXNwbGF5RmxhZ1tcIkRJU1BMQVlfSElERV9TTElERVJfUkVBRE9VVFwiXSA9IFwiaGlkZV9zbGlkZXJfcmVhZG91dFwiO1xuICAgIC8vIFxuICAgIFBhcmFtZXRlckN0cmxUeXBlc0Rpc3BsYXlGbGFnW1wiRElTUExBWV9ISURFX1NMSURFUl9CVVRUT05TXCJdID0gXCJoaWRlX3NsaWRlcl9idXR0b25zXCI7XG59KShQYXJhbWV0ZXJDdHJsVHlwZXNEaXNwbGF5RmxhZyA9IGV4cG9ydHMuUGFyYW1ldGVyQ3RybFR5cGVzRGlzcGxheUZsYWcgfHwgKGV4cG9ydHMuUGFyYW1ldGVyQ3RybFR5cGVzRGlzcGxheUZsYWcgPSB7fSkpO1xuLy8gVGhlIGZvbGxvdyBzdXBwb3J0cyAxMDI0IGN1c3RvbSBwYWxldHRlcywgZWFjaCB3aXRoIDRtIHNoYXBlcy4gRW5jb2RpbmcgaXMgcGFsZXR0ZSAmbHQ7Jmx0OyBQYWxldHRlU2hpZnQgfCBzaGFwZS5cbnZhciBTaGFwZUVuY29kZUNvbnN0YW50cztcbihmdW5jdGlvbiAoU2hhcGVFbmNvZGVDb25zdGFudHMpIHtcbiAgICAvLyBTaGlmdCB2YWx1ZSBmb3IgcGFsZXR0ZVxuICAgIFNoYXBlRW5jb2RlQ29uc3RhbnRzW1wiRW5jb2RlUGFsZXR0ZVNoaWZ0XCJdID0gXCJwYWxldHRlU2hpZnRcIjtcbiAgICAvLyBNYXNrIGZvciBnZXR0aW5nIHBhbGV0dGUgZnJvbSBlbmNvZGVkIHZhbHVlLiAoVGhlbiBzaGlmdCBkb3duKVxuICAgIFNoYXBlRW5jb2RlQ29uc3RhbnRzW1wiRW5jb2RlUGFsZXR0ZU1hc2tcIl0gPSBcInBhbGV0dGVNYXNrXCI7XG4gICAgLy8gTWFzayBmb3IgZ2V0dGluZyBzaGFwZSBmcm9tIGVuY29kZWQgdmFsdWVcbiAgICBTaGFwZUVuY29kZUNvbnN0YW50c1tcIkVuY29kZVNoYXBlTWFza1wiXSA9IFwic2hhcGVNYXNrXCI7XG59KShTaGFwZUVuY29kZUNvbnN0YW50cyA9IGV4cG9ydHMuU2hhcGVFbmNvZGVDb25zdGFudHMgfHwgKGV4cG9ydHMuU2hhcGVFbmNvZGVDb25zdGFudHMgPSB7fSkpO1xuLy8gXG52YXIgU2hhcGVUeXBlO1xuKGZ1bmN0aW9uIChTaGFwZVR5cGUpIHtcbiAgICAvLyBcbiAgICBTaGFwZVR5cGVbXCJTaGFwZUNpcmNsZVwiXSA9IFwiY2lyY2xlXCI7XG4gICAgLy8gXG4gICAgU2hhcGVUeXBlW1wiU2hhcGVTcXVhcmVcIl0gPSBcInNxdWFyZVwiO1xuICAgIC8vIFxuICAgIFNoYXBlVHlwZVtcIlNoYXBlUGx1c1wiXSA9IFwicGx1c1wiO1xuICAgIC8vIFxuICAgIFNoYXBlVHlwZVtcIlNoYXBlVGltZXNcIl0gPSBcInRpbWVzXCI7XG4gICAgLy8gXG4gICAgU2hhcGVUeXBlW1wiU2hhcGVBc3Rlcmlza1wiXSA9IFwiYXN0ZXJpc2tcIjtcbiAgICAvLyBcbiAgICBTaGFwZVR5cGVbXCJTaGFwZURpYW1vbmRcIl0gPSBcImRpYW1vbmRcIjtcbiAgICAvLyBcbiAgICBTaGFwZVR5cGVbXCJTaGFwZVRyaWFuZ2xlXCJdID0gXCJ0cmlhbmdsZVwiO1xuICAgIC8vIFxuICAgIFNoYXBlVHlwZVtcIlNoYXBlRG93blRyaWFuZ2xlXCJdID0gXCJkb3duLXRyaWFuZ2xlXCI7XG4gICAgLy8gXG4gICAgU2hhcGVUeXBlW1wiU2hhcGVMZWZ0VHJpYW5nbGVcIl0gPSBcImxlZnQtdHJpYW5nbGVcIjtcbiAgICAvLyBcbiAgICBTaGFwZVR5cGVbXCJTaGFwZVJpZ2h0VHJpYW5nbGVcIl0gPSBcInJpZ2h0LXRyaWFuZ2xlXCI7XG4gICAgLy8gXG4gICAgU2hhcGVUeXBlW1wiTWF4QWxsU2hhcGVzXCJdID0gXCJpbnZhbGlkXCI7XG59KShTaGFwZVR5cGUgPSBleHBvcnRzLlNoYXBlVHlwZSB8fCAoZXhwb3J0cy5TaGFwZVR5cGUgPSB7fSkpO1xuLy8gXG52YXIgU2hhcGVQYWxldHRlO1xuKGZ1bmN0aW9uIChTaGFwZVBhbGV0dGUpIHtcbiAgICAvLyBidWlsdC1pbiBwYWxldHRlXG4gICAgU2hhcGVQYWxldHRlW1wiU2hhcGVQYWxldHRlRmlsbGVkXCJdID0gXCJmaWxsZWRcIjtcbiAgICAvLyBjdXN0b20gcGFsZXR0ZXNcbiAgICBTaGFwZVBhbGV0dGVbXCJTaGFwZVBhbGV0dGVDdXN0b20xXCJdID0gXCJjdXN0b20xXCI7XG4gICAgLy8gXG4gICAgU2hhcGVQYWxldHRlW1wiU2hhcGVQYWxldHRlQ3VzdG9tMlwiXSA9IFwiY3VzdG9tMlwiO1xuICAgIC8vIFxuICAgIFNoYXBlUGFsZXR0ZVtcIlNoYXBlUGFsZXR0ZUN1c3RvbTNcIl0gPSBcImN1c3RvbTNcIjtcbiAgICAvLyBcbiAgICBTaGFwZVBhbGV0dGVbXCJTaGFwZVBhbGV0dGVDdXN0b200XCJdID0gXCJjdXN0b200XCI7XG4gICAgLy8gXG4gICAgU2hhcGVQYWxldHRlW1wiU2hhcGVQYWxldHRlQ3VzdG9tNVwiXSA9IFwiY3VzdG9tNVwiO1xuICAgIC8vIFxuICAgIFNoYXBlUGFsZXR0ZVtcIlNoYXBlUGFsZXR0ZUN1c3RvbTZcIl0gPSBcImN1c3RvbTZcIjtcbiAgICAvLyBcbiAgICBTaGFwZVBhbGV0dGVbXCJTaGFwZVBhbGV0dGVDdXN0b203XCJdID0gXCJjdXN0b203XCI7XG4gICAgLy8gXG4gICAgU2hhcGVQYWxldHRlW1wiU2hhcGVQYWxldHRlQ3VzdG9tOFwiXSA9IFwiY3VzdG9tOFwiO1xuICAgIC8vIFxuICAgIFNoYXBlUGFsZXR0ZVtcIlNoYXBlUGFsZXR0ZUN1c3RvbTlcIl0gPSBcImN1c3RvbTlcIjtcbiAgICAvLyBcbiAgICBTaGFwZVBhbGV0dGVbXCJTaGFwZVBhbGV0dGVDdXN0b20xMFwiXSA9IFwiY3VzdG9tMTBcIjtcbiAgICAvLyBcbiAgICBTaGFwZVBhbGV0dGVbXCJTaGFwZVBhbGV0dGVDdXN0b20xMVwiXSA9IFwiY3VzdG9tMTFcIjtcbiAgICAvLyBhbmQgc28gb24uLi5cbiAgICBTaGFwZVBhbGV0dGVbXCJTaGFwZVBhbGV0dGVDdXN0b20xMlwiXSA9IFwiY3VzdG9tMTJcIjtcbiAgICAvLyBcbiAgICBTaGFwZVBhbGV0dGVbXCJTaGFwZVBhbGV0dGVIaWRkZW5cIl0gPSBcImhpZGRlblwiO1xufSkoU2hhcGVQYWxldHRlID0gZXhwb3J0cy5TaGFwZVBhbGV0dGUgfHwgKGV4cG9ydHMuU2hhcGVQYWxldHRlID0ge30pKTtcbi8vIFNoYXBlVHlwZSBhbmQgcGFsZXR0ZSBtYXBwZWQgaW50byBhIHNpbmdsZSB2YWx1ZS4gVGhpcyBlbnVtIGRlcGVuZHMgb24gU2hhcGVUeXBlIGFuZCB0aGUgaW1wbGVtZW50YXRpb24gb2YgU2hhcGVNYW5hZ2VyOjpJbnRFbmNvZGUuXG52YXIgU2hhcGVJRDtcbihmdW5jdGlvbiAoU2hhcGVJRCkge1xuICAgIC8vIFxuICAgIFNoYXBlSURbXCJTaGFwZUlEQ2lyY2xlXCJdID0gXCJzaGFwZUlEQ2lyY2xlXCI7XG4gICAgLy8gXG4gICAgU2hhcGVJRFtcIlNoYXBlSURTcXVhcmVcIl0gPSBcInNoYXBlSURTcXVhcmVcIjtcbiAgICAvLyBcbiAgICBTaGFwZUlEW1wiU2hhcGVJRFBsdXNcIl0gPSBcInNoYXBlSURQbHVzXCI7XG4gICAgLy8gXG4gICAgU2hhcGVJRFtcIlNoYXBlSURUaW1lc1wiXSA9IFwic2hhcGVJRFRpbWVzXCI7XG4gICAgLy8gXG4gICAgU2hhcGVJRFtcIlNoYXBlSURBc3Rlcmlza1wiXSA9IFwic2hhcGVJREFzdGVyaXNrXCI7XG4gICAgLy8gXG4gICAgU2hhcGVJRFtcIlNoYXBlSUREaWFtb25kXCJdID0gXCJzaGFwZUlERGlhbW9uZFwiO1xuICAgIC8vIFxuICAgIFNoYXBlSURbXCJTaGFwZUlEVHJpYW5nbGVcIl0gPSBcInNoYXBlSURUcmlhbmdsZVwiO1xuICAgIC8vIFxuICAgIFNoYXBlSURbXCJTaGFwZUlERG93blRyaWFuZ2xlXCJdID0gXCJzaGFwZUlERG93blRyaWFuZ2xlXCI7XG4gICAgLy8gXG4gICAgU2hhcGVJRFtcIlNoYXBlSURMZWZ0VHJpYW5nbGVcIl0gPSBcInNoYXBlSURMZWZ0VHJpYW5nbGVcIjtcbiAgICAvLyBcbiAgICBTaGFwZUlEW1wiU2hhcGVJRFJpZ2h0VHJpYW5nbGVcIl0gPSBcInNoYXBlSURSaWdodFRyaWFuZ2xlXCI7XG4gICAgLy8gXG4gICAgU2hhcGVJRFtcIlNoYXBlSURGaWxsZWRDaXJjbGVcIl0gPSBcInNoYXBlSURGaWxsZWRDaXJjbGVcIjtcbiAgICAvLyBcbiAgICBTaGFwZUlEW1wiU2hhcGVJREZpbGxlZFNxdWFyZVwiXSA9IFwic2hhcGVJREZpbGxlZFNxdWFyZVwiO1xuICAgIC8vIFxuICAgIFNoYXBlSURbXCJTaGFwZUlERmlsbGVkUGx1c1wiXSA9IFwic2hhcGVJREZpbGxlZFBsdXNcIjtcbiAgICAvLyBcbiAgICBTaGFwZUlEW1wiU2hhcGVJREZpbGxlZFRpbWVzXCJdID0gXCJzaGFwZUlERmlsbGVkVGltZXNcIjtcbiAgICAvLyBcbiAgICBTaGFwZUlEW1wiU2hhcGVJREZpbGxlZFN0YXJcIl0gPSBcInNoYXBlSURGaWxsZWRTdGFyXCI7XG4gICAgLy8gXG4gICAgU2hhcGVJRFtcIlNoYXBlSURGaWxsZWREaWFtb25kXCJdID0gXCJzaGFwZUlERmlsbGVkRGlhbW9uZFwiO1xuICAgIC8vIFxuICAgIFNoYXBlSURbXCJTaGFwZUlERmlsbGVkVHJpYW5nbGVcIl0gPSBcInNoYXBlSURGaWxsZWRUcmlhbmdsZVwiO1xuICAgIC8vIFxuICAgIFNoYXBlSURbXCJTaGFwZUlERmlsbGVkRG93blRyaWFuZ2xlXCJdID0gXCJzaGFwZUlERmlsbGVkRG93blRyaWFuZ2xlXCI7XG4gICAgLy8gXG4gICAgU2hhcGVJRFtcIlNoYXBlSURGaWxsZWRMZWZ0VHJpYW5nbGVcIl0gPSBcInNoYXBlSURGaWxsZWRMZWZ0VHJpYW5nbGVcIjtcbiAgICAvLyBcbiAgICBTaGFwZUlEW1wiU2hhcGVJREZpbGxlZFJpZ2h0VHJpYW5nbGVcIl0gPSBcInNoYXBlSURGaWxsZWRSaWdodFRyaWFuZ2xlXCI7XG4gICAgLy8gMCsoU2hhcGVQYWxldHRlSGlkZGVuPDxFbmNvZGVQYWxldHRlU2hpZnQpXG4gICAgU2hhcGVJRFtcIlNoYXBlSURVbnNjYWxlZEZpbGxlZENpcmNsZVwiXSA9IFwic2hhcGVJRFVuc2NhbGVkRmlsbGVkQ2lyY2xlXCI7XG59KShTaGFwZUlEID0gZXhwb3J0cy5TaGFwZUlEIHx8IChleHBvcnRzLlNoYXBlSUQgPSB7fSkpO1xuLy8gXG52YXIgTGVnZW5kVHlwZUVudW07XG4oZnVuY3Rpb24gKExlZ2VuZFR5cGVFbnVtKSB7XG4gICAgLy8gXG4gICAgTGVnZW5kVHlwZUVudW1bXCJDb2xvclwiXSA9IFwiY29sb3JcIjtcbiAgICAvLyBcbiAgICBMZWdlbmRUeXBlRW51bVtcIlNoYXBlXCJdID0gXCJzaGFwZVwiO1xuICAgIC8vIFxuICAgIExlZ2VuZFR5cGVFbnVtW1wiU2l6ZVwiXSA9IFwic2l6ZVwiO1xuICAgIC8vIFxuICAgIExlZ2VuZFR5cGVFbnVtW1wiSGlnaGxpZ2h0TGVnZW5kXCJdID0gXCJoaWdobGlnaHRcIjtcbiAgICAvLyBcbiAgICBMZWdlbmRUeXBlRW51bVtcIk1hcFwiXSA9IFwibWFwXCI7XG59KShMZWdlbmRUeXBlRW51bSA9IGV4cG9ydHMuTGVnZW5kVHlwZUVudW0gfHwgKGV4cG9ydHMuTGVnZW5kVHlwZUVudW0gPSB7fSkpO1xuLy8gXG52YXIgQnJ1c2hTcGVjaWFsRmllbGRzO1xuKGZ1bmN0aW9uIChCcnVzaFNwZWNpYWxGaWVsZHMpIHtcbiAgICAvLyBcbiAgICBCcnVzaFNwZWNpYWxGaWVsZHNbXCJCU0ZfSW52YWxpZFwiXSA9IFwiaW52YWxpZFwiO1xuICAgIC8vIFxuICAgIEJydXNoU3BlY2lhbEZpZWxkc1tcIkJTRl9BbGxGaWVsZHNcIl0gPSBcImFsbFwiO1xuICAgIC8vIFxuICAgIEJydXNoU3BlY2lhbEZpZWxkc1tcIkJTRl9EYXRlc0FuZFRpbWVzXCJdID0gXCJkYXRlLXRpbWVcIjtcbiAgICAvLyBcbiAgICBCcnVzaFNwZWNpYWxGaWVsZHNbXCJCU0ZfVHJhaWxzXCJdID0gXCJ0cmFpbHNcIjtcbiAgICAvLyBcbiAgICBCcnVzaFNwZWNpYWxGaWVsZHNbXCJCU0ZfRW50aXJlVGFibGVcIl0gPSBcInRhYmxlXCI7XG59KShCcnVzaFNwZWNpYWxGaWVsZHMgPSBleHBvcnRzLkJydXNoU3BlY2lhbEZpZWxkcyB8fCAoZXhwb3J0cy5CcnVzaFNwZWNpYWxGaWVsZHMgPSB7fSkpO1xuLy8gd2hhdCBraW5kIG9mIGN1cnZlIHdpbGwgYmUgZml0IHRvIHRoZSBkYXRhIGdpdmVuIHJlc3BvbnNlIHZhcmlhYmxlIFkgYW5kIGEgc2luZ2xlIHF1YW50aXRhdGl2ZSBmYWN0b3IgWFxudmFyIFRyZW5kTGluZUZpdFR5cGU7XG4oZnVuY3Rpb24gKFRyZW5kTGluZUZpdFR5cGUpIHtcbiAgICAvLyBlcXVhdGlvbiA9IFkgfiBYICsgMVxuICAgIFRyZW5kTGluZUZpdFR5cGVbXCJUcmVuZExpbmVGaXRUeXBlX19MaW5lYXJGaXRcIl0gPSBcImxpbmVhclwiO1xuICAgIC8vIGVxdWF0aW9uID0gWSB+IFheMiArIFggKyAxXG4gICAgVHJlbmRMaW5lRml0VHlwZVtcIlRyZW5kTGluZUZpdFR5cGVfX1BvbHlub21pYWxGaXRcIl0gPSBcInBvbHlub21pYWxcIjtcbiAgICAvLyBlcXVhdGlvbiA9IFkgfiBsb2coWClcbiAgICBUcmVuZExpbmVGaXRUeXBlW1wiVHJlbmRMaW5lRml0VHlwZV9fTG9nRml0XCJdID0gXCJsb2dcIjtcbiAgICAvLyBlcXVhdGlvbiA9IFkgfiBleHAoWClcbiAgICBUcmVuZExpbmVGaXRUeXBlW1wiVHJlbmRMaW5lRml0VHlwZV9fRXhwRml0XCJdID0gXCJleHBcIjtcbiAgICAvLyBlcXVhdGlvbiA9IFkgfiBYXmJcbiAgICBUcmVuZExpbmVGaXRUeXBlW1wiVHJlbmRMaW5lRml0VHlwZV9fUG93ZXJGaXRcIl0gPSBcInBvd2VyXCI7XG59KShUcmVuZExpbmVGaXRUeXBlID0gZXhwb3J0cy5UcmVuZExpbmVGaXRUeXBlIHx8IChleHBvcnRzLlRyZW5kTGluZUZpdFR5cGUgPSB7fSkpO1xuLy8gdHlwZSBmb3IgY29tcG9uZW50cyBvZiBhIGNvbW1hbmQgcHJlc2VudGF0aW9uIG1vZGVsXG52YXIgQ29tbWFuZHNFbnVtSXRlbVR5cGU7XG4oZnVuY3Rpb24gKENvbW1hbmRzRW51bUl0ZW1UeXBlKSB7XG4gICAgLy8gaXRlbSB3aXRoIHRleHQgYW5kIGFuIGFzc29jaWF0ZWQgY29tbWFuZFxuICAgIENvbW1hbmRzRW51bUl0ZW1UeXBlW1wiSXRlbVwiXSA9IFwiaXRlbVwiO1xuICAgIC8vIGR5bmFtaWMgcmFuZ2Ugb2YgaXRlbXMgZ2VuZXJhdGVkIGJ5IGFuIGFzc29jaWF0ZWQgY29tbWFuZFxuICAgIENvbW1hbmRzRW51bUl0ZW1UeXBlW1wiSXRlbVJhbmdlXCJdID0gXCJyYW5nZVwiO1xuICAgIC8vIGxpc3Qgb2Ygc3ViY29tbWFuZHNcbiAgICBDb21tYW5kc0VudW1JdGVtVHlwZVtcIlN1YkNvbW1hbmRzSXRlbVwiXSA9IFwic3ViY29tbWFuZHNcIjtcbiAgICAvLyBsb2dpY2FsIHNlcGFyYXRpb24gYmV0d2VlbiBncm91cHMgb2YgY29tbWFuZHNcbiAgICBDb21tYW5kc0VudW1JdGVtVHlwZVtcIlNlcGFyYXRvckl0ZW1cIl0gPSBcInNlcGFyYXRvclwiO1xufSkoQ29tbWFuZHNFbnVtSXRlbVR5cGUgPSBleHBvcnRzLkNvbW1hbmRzRW51bUl0ZW1UeXBlIHx8IChleHBvcnRzLkNvbW1hbmRzRW51bUl0ZW1UeXBlID0ge30pKTtcbi8vIFxudmFyIFBhcmFtZXRlclR5cGVzRG9tYWluVHlwZTtcbihmdW5jdGlvbiAoUGFyYW1ldGVyVHlwZXNEb21haW5UeXBlKSB7XG4gICAgLy8gXG4gICAgUGFyYW1ldGVyVHlwZXNEb21haW5UeXBlW1wiRG9tYWluX0FueVwiXSA9IFwiYW55XCI7XG4gICAgLy8gXG4gICAgUGFyYW1ldGVyVHlwZXNEb21haW5UeXBlW1wiRG9tYWluX0xpc3RcIl0gPSBcImxpc3RcIjtcbiAgICAvLyBcbiAgICBQYXJhbWV0ZXJUeXBlc0RvbWFpblR5cGVbXCJEb21haW5fUmFuZ2VcIl0gPSBcInJhbmdlXCI7XG59KShQYXJhbWV0ZXJUeXBlc0RvbWFpblR5cGUgPSBleHBvcnRzLlBhcmFtZXRlclR5cGVzRG9tYWluVHlwZSB8fCAoZXhwb3J0cy5QYXJhbWV0ZXJUeXBlc0RvbWFpblR5cGUgPSB7fSkpO1xuLy8gQ2F0ZWdvcmljYWwgZmlsdGVyIHR5cGUgdXNhZ2UuXG52YXIgRmlsdGVyc0NhdGVnb3JpY2FsRmlsdGVyVHlwZTtcbihmdW5jdGlvbiAoRmlsdGVyc0NhdGVnb3JpY2FsRmlsdGVyVHlwZSkge1xuICAgIC8vIFxuICAgIEZpbHRlcnNDYXRlZ29yaWNhbEZpbHRlclR5cGVbXCJWaXN1YWxcIl0gPSBcInZpc3VhbFwiO1xuICAgIC8vIFxuICAgIEZpbHRlcnNDYXRlZ29yaWNhbEZpbHRlclR5cGVbXCJFeHRyYWN0XCJdID0gXCJleHRyYWN0XCI7XG4gICAgLy8gXG4gICAgRmlsdGVyc0NhdGVnb3JpY2FsRmlsdGVyVHlwZVtcIkdyb3VwXCJdID0gXCJncm91cFwiO1xufSkoRmlsdGVyc0NhdGVnb3JpY2FsRmlsdGVyVHlwZSA9IGV4cG9ydHMuRmlsdGVyc0NhdGVnb3JpY2FsRmlsdGVyVHlwZSB8fCAoZXhwb3J0cy5GaWx0ZXJzQ2F0ZWdvcmljYWxGaWx0ZXJUeXBlID0ge30pKTtcbi8vIEZpbHRlciBjb250ZXh0IGRvbWFpbnNcbnZhciBGaWx0ZXJzRG9tYWluVHlwZTtcbihmdW5jdGlvbiAoRmlsdGVyc0RvbWFpblR5cGUpIHtcbiAgICAvLyBcbiAgICBGaWx0ZXJzRG9tYWluVHlwZVtcIlJlbGV2YW50XCJdID0gXCJyZWxldmFudFwiO1xuICAgIC8vIFxuICAgIEZpbHRlcnNEb21haW5UeXBlW1wiQ2FzY2FkaW5nXCJdID0gXCJjYXNjYWRpbmdcIjtcbiAgICAvLyBcbiAgICBGaWx0ZXJzRG9tYWluVHlwZVtcIkNhc2NhZGluZ0NvbnRleHRcIl0gPSBcImNhc2NhZGluZy1jb250ZXh0XCI7XG4gICAgLy8gXG4gICAgRmlsdGVyc0RvbWFpblR5cGVbXCJDb250ZXh0XCJdID0gXCJjb250ZXh0XCI7XG4gICAgLy8gXG4gICAgRmlsdGVyc0RvbWFpblR5cGVbXCJEYXRhYmFzZVwiXSA9IFwiYWxsXCI7XG59KShGaWx0ZXJzRG9tYWluVHlwZSA9IGV4cG9ydHMuRmlsdGVyc0RvbWFpblR5cGUgfHwgKGV4cG9ydHMuRmlsdGVyc0RvbWFpblR5cGUgPSB7fSkpO1xuLy8gU2VsZWN0aW9uIChyZWxhdGlvbmFsIG9ubHkpIC0gUmFuZ2UgdHlwZVxudmFyIEZpbHRlcnNSYW5nZVR5cGU7XG4oZnVuY3Rpb24gKEZpbHRlcnNSYW5nZVR5cGUpIHtcbiAgICAvLyBcbiAgICBGaWx0ZXJzUmFuZ2VUeXBlW1wiQWxsXCJdID0gXCJhbGxcIjtcbiAgICAvLyBcbiAgICBGaWx0ZXJzUmFuZ2VUeXBlW1wiU2VsZWN0ZWRcIl0gPSBcInNlbGVjdGVkXCI7XG4gICAgLy8gXG4gICAgRmlsdGVyc1JhbmdlVHlwZVtcIk1hbnVhbFwiXSA9IFwibWFudWFsXCI7XG59KShGaWx0ZXJzUmFuZ2VUeXBlID0gZXhwb3J0cy5GaWx0ZXJzUmFuZ2VUeXBlIHx8IChleHBvcnRzLkZpbHRlcnNSYW5nZVR5cGUgPSB7fSkpO1xuLy8gUGF0dGVybiBiYXNlZCBmaWx0ZXJpbmdcbnZhciBGaWx0ZXJzUGF0dGVyblR5cGU7XG4oZnVuY3Rpb24gKEZpbHRlcnNQYXR0ZXJuVHlwZSkge1xuICAgIC8vIHN0YXJ0cyB3aXRoIHRoZSBzcGVjaWZpZWQgcGF0dGVybiB0ZXh0XG4gICAgRmlsdGVyc1BhdHRlcm5UeXBlW1wiU3RhcnRzV2l0aFwiXSA9IFwic3RhcnRzLXdpdGhcIjtcbiAgICAvLyBlbmRzIHdpdGggdGhlIHNwZWNpZmllZCBwYXR0ZXJuIHRleHRcbiAgICBGaWx0ZXJzUGF0dGVyblR5cGVbXCJFbmRzV2l0aFwiXSA9IFwiZW5kcy13aXRoXCI7XG4gICAgLy8gY29udGFpbnMgdGhlIHNwZWNpZmllZCBwYXR0ZXJuIHRleHRcbiAgICBGaWx0ZXJzUGF0dGVyblR5cGVbXCJDb250YWluc1wiXSA9IFwiY29udGFpbnNcIjtcbiAgICAvLyBleGFjdGx5IG1hdGNoZXMgdGhlIHNwZWNpZmllZCBwYXR0ZXJuIHRleHRcbiAgICBGaWx0ZXJzUGF0dGVyblR5cGVbXCJFeGFjdE1hdGNoXCJdID0gXCJleGFjdC1tYXRjaFwiO1xufSkoRmlsdGVyc1BhdHRlcm5UeXBlID0gZXhwb3J0cy5GaWx0ZXJzUGF0dGVyblR5cGUgfHwgKGV4cG9ydHMuRmlsdGVyc1BhdHRlcm5UeXBlID0ge30pKTtcbi8vIFxudmFyIEZpbHRlcnNMaW1pdFR5cGU7XG4oZnVuY3Rpb24gKEZpbHRlcnNMaW1pdFR5cGUpIHtcbiAgICAvLyBcbiAgICBGaWx0ZXJzTGltaXRUeXBlW1wiTm9uZVwiXSA9IFwibm9uZVwiO1xuICAgIC8vIFxuICAgIEZpbHRlcnNMaW1pdFR5cGVbXCJCeUZpZWxkXCJdID0gXCJieS1maWVsZFwiO1xuICAgIC8vIFxuICAgIEZpbHRlcnNMaW1pdFR5cGVbXCJGb3JtdWxhXCJdID0gXCJmb3JtdWxhXCI7XG59KShGaWx0ZXJzTGltaXRUeXBlID0gZXhwb3J0cy5GaWx0ZXJzTGltaXRUeXBlIHx8IChleHBvcnRzLkZpbHRlcnNMaW1pdFR5cGUgPSB7fSkpO1xuLy8gXG52YXIgRmlsdGVyc0NvbmRpdGlvblR5cGU7XG4oZnVuY3Rpb24gKEZpbHRlcnNDb25kaXRpb25UeXBlKSB7XG4gICAgLy8gXG4gICAgRmlsdGVyc0NvbmRpdGlvblR5cGVbXCJOb25lXCJdID0gXCJub25lXCI7XG4gICAgLy8gXG4gICAgRmlsdGVyc0NvbmRpdGlvblR5cGVbXCJCeUZpZWxkXCJdID0gXCJieS1maWVsZFwiO1xuICAgIC8vIFxuICAgIEZpbHRlcnNDb25kaXRpb25UeXBlW1wiRm9ybXVsYVwiXSA9IFwiZm9ybXVsYVwiO1xufSkoRmlsdGVyc0NvbmRpdGlvblR5cGUgPSBleHBvcnRzLkZpbHRlcnNDb25kaXRpb25UeXBlIHx8IChleHBvcnRzLkZpbHRlcnNDb25kaXRpb25UeXBlID0ge30pKTtcbi8vIEhpZ2hlciBsZXZlbCBpbnRlcHJldGF0aW9uIG9mIGEgcmVsYXRpdmUgZGF0ZSBmaWx0ZXIncyByYW5nZVxudmFyIEZpbHRlcnNSZWxhdGl2ZURhdGVSYW5nZVR5cGU7XG4oZnVuY3Rpb24gKEZpbHRlcnNSZWxhdGl2ZURhdGVSYW5nZVR5cGUpIHtcbiAgICAvLyBcbiAgICBGaWx0ZXJzUmVsYXRpdmVEYXRlUmFuZ2VUeXBlW1wiUmFuZ2VDdXJyZW50XCJdID0gXCJjdXJyXCI7XG4gICAgLy8gXG4gICAgRmlsdGVyc1JlbGF0aXZlRGF0ZVJhbmdlVHlwZVtcIlJhbmdlQ3VycmVudFRvRGF0ZVwiXSA9IFwidG9kYXRlXCI7XG4gICAgLy8gXG4gICAgRmlsdGVyc1JlbGF0aXZlRGF0ZVJhbmdlVHlwZVtcIlJhbmdlTGFzdDFcIl0gPSBcImxhc3RcIjtcbiAgICAvLyBcbiAgICBGaWx0ZXJzUmVsYXRpdmVEYXRlUmFuZ2VUeXBlW1wiUmFuZ2VOZXh0MVwiXSA9IFwibmV4dFwiO1xuICAgIC8vIFxuICAgIEZpbHRlcnNSZWxhdGl2ZURhdGVSYW5nZVR5cGVbXCJSYW5nZUxhc3ROXCJdID0gXCJsYXN0blwiO1xuICAgIC8vIFxuICAgIEZpbHRlcnNSZWxhdGl2ZURhdGVSYW5nZVR5cGVbXCJSYW5nZU5leHROXCJdID0gXCJuZXh0blwiO1xuICAgIC8vIFxuICAgIEZpbHRlcnNSZWxhdGl2ZURhdGVSYW5nZVR5cGVbXCJSYW5nZU90aGVyMVwiXSA9IFwib3RoZXJcIjtcbiAgICAvLyBcbiAgICBGaWx0ZXJzUmVsYXRpdmVEYXRlUmFuZ2VUeXBlW1wiUmFuZ2VPdGhlck5cIl0gPSBcIm90aGVyblwiO1xuICAgIC8vIFxuICAgIEZpbHRlcnNSZWxhdGl2ZURhdGVSYW5nZVR5cGVbXCJSYW5nZUludmFsaWRcIl0gPSBcImludmFsaWRcIjtcbn0pKEZpbHRlcnNSZWxhdGl2ZURhdGVSYW5nZVR5cGUgPSBleHBvcnRzLkZpbHRlcnNSZWxhdGl2ZURhdGVSYW5nZVR5cGUgfHwgKGV4cG9ydHMuRmlsdGVyc1JlbGF0aXZlRGF0ZVJhbmdlVHlwZSA9IHt9KSk7XG4vLyBcbnZhciBGaWx0ZXJzRmlsdGVyTW9kZTtcbihmdW5jdGlvbiAoRmlsdGVyc0ZpbHRlck1vZGUpIHtcbiAgICAvLyBcbiAgICBGaWx0ZXJzRmlsdGVyTW9kZVtcIkxvY2FsXCJdID0gXCJsb2NhbFwiO1xuICAgIC8vIFxuICAgIEZpbHRlcnNGaWx0ZXJNb2RlW1wiR2xvYmFsXCJdID0gXCJnbG9iYWxcIjtcbiAgICAvLyBcbiAgICBGaWx0ZXJzRmlsdGVyTW9kZVtcIlNoYXJlZFwiXSA9IFwic2hhcmVkXCI7XG4gICAgLy8gXG4gICAgRmlsdGVyc0ZpbHRlck1vZGVbXCJNYXBwZWRHbG9iYWxcIl0gPSBcIm1hcHBlZC1nbG9iYWxcIjtcbn0pKEZpbHRlcnNGaWx0ZXJNb2RlID0gZXhwb3J0cy5GaWx0ZXJzRmlsdGVyTW9kZSB8fCAoZXhwb3J0cy5GaWx0ZXJzRmlsdGVyTW9kZSA9IHt9KSk7XG4vLyBIb3cgdW5jb21taXR0ZWQgc2VsZWN0aW9uIHN0YXRlIGlzIGJlaW5nIHRyYWNrZWRcbnZhciBGaWx0ZXJzU2VsZWN0aW9uVHJhY2tpbmc7XG4oZnVuY3Rpb24gKEZpbHRlcnNTZWxlY3Rpb25UcmFja2luZykge1xuICAgIC8vIFBhc3NlZCBtZW1iZXJzIGhhdmUgYmVlbiB1cGRhdGVkOiBlYWNoIGluY2x1ZGVkIG1lbWJlcnMnIHNlbGVjdGlvbiBzdGF0ZSBzaG91bGQgYmUgZmxpcHBlZCBmcm9tIGl0cyBpbml0aWFsIHN0YXRlLlxuICAgIEZpbHRlcnNTZWxlY3Rpb25UcmFja2luZ1tcIkRpZmZlcmVuY2VzRnJvbUJhc2VcIl0gPSBcImRpZmZlcmVuY2VzXCI7XG4gICAgLy8gUGFzc2VkIG1lbWJlcnMgc2hvdWxkIGJlIHVuY29uZGl0aW9uYWxseSBzZWxlY3RlZFxuICAgIEZpbHRlcnNTZWxlY3Rpb25UcmFja2luZ1tcIlNlbGVjdGVkVmFsdWVzXCJdID0gXCJzZWxlY3RlZFwiO1xuICAgIC8vIERvbid0IHNhdmUgYW55IHNlbGVjdGlvbiBzdGF0ZS4gVGhpcyBzYXZlcyBtZW1vcnkgYXQgdGhlIGNvc3Qgb2Ygbm90IGJlaW5nIHJlY292ZXJhYmxlIGlmIHRoZSBjb250cm9sbGVyIGlzIGdvbmUuXG4gICAgRmlsdGVyc1NlbGVjdGlvblRyYWNraW5nW1wiTm9uZVwiXSA9IFwiZG9udC10cmFjay1zZWxlY3Rpb24tc3RhdGVcIjtcbn0pKEZpbHRlcnNTZWxlY3Rpb25UcmFja2luZyA9IGV4cG9ydHMuRmlsdGVyc1NlbGVjdGlvblRyYWNraW5nIHx8IChleHBvcnRzLkZpbHRlcnNTZWxlY3Rpb25UcmFja2luZyA9IHt9KSk7XG4vLyBmaWx0ZXIgdXBkYXRlIG9wdGlvbnNcbnZhciBGaWx0ZXJVcGRhdGVUeXBlO1xuKGZ1bmN0aW9uIChGaWx0ZXJVcGRhdGVUeXBlKSB7XG4gICAgLy8gc2VsZWN0IGFsbCB2YWx1ZXMgaW4gZmlsdGVyXG4gICAgRmlsdGVyVXBkYXRlVHlwZVtcIkFMTFwiXSA9IFwiZmlsdGVyLWFsbFwiO1xuICAgIC8vIGFkZCBpdGVtcyB0byBleGlzdGluZyBmaWx0ZXJcbiAgICBGaWx0ZXJVcGRhdGVUeXBlW1wiQUREXCJdID0gXCJmaWx0ZXItYWRkXCI7XG4gICAgLy8gcmVtb3ZlIGl0ZW1zIGZyb20gZXhpc3RpbmcgZmlsdGVyXG4gICAgRmlsdGVyVXBkYXRlVHlwZVtcIlJFTU9WRVwiXSA9IFwiZmlsdGVyLXJlbW92ZVwiO1xuICAgIC8vIHJlcGxhY2UgZXhpc3RpbmcgZmlsdGVyIHdpdGggZ2l2ZW4gb3B0aW9uc1xuICAgIEZpbHRlclVwZGF0ZVR5cGVbXCJSRVBMQUNFXCJdID0gXCJmaWx0ZXItcmVwbGFjZVwiO1xuICAgIC8vIG1peHR1cmUgb2YgYWRkICsgcmVtb3ZhbFxuICAgIEZpbHRlclVwZGF0ZVR5cGVbXCJERUxUQVwiXSA9IFwiZmlsdGVyLWRlbHRhXCI7XG4gICAgLy8gY2xlYXIgdGhlIGZpbHRlclxuICAgIEZpbHRlclVwZGF0ZVR5cGVbXCJDTEVBUlwiXSA9IFwiZmlsdGVyLWNsZWFyXCI7XG4gICAgLy8gZWFjaCB2YWx1ZSBpbiB0aGUgZmlsdGVyLCBidXQgaW5kaXZpZHVhbGx5IHNlbGVjdGVkXG4gICAgRmlsdGVyVXBkYXRlVHlwZVtcIkVBQ0hcIl0gPSBcImZpbHRlci1lYWNoXCI7XG59KShGaWx0ZXJVcGRhdGVUeXBlID0gZXhwb3J0cy5GaWx0ZXJVcGRhdGVUeXBlIHx8IChleHBvcnRzLkZpbHRlclVwZGF0ZVR5cGUgPSB7fSkpO1xuLy8gYWRkaXRpb25hbCBjb250ZXh0IG5lZWRlZCB0byBwZXJmb3JtIGEgZmlsdGVyIHVwZGF0ZSBjb3JyZWN0bHlcbnZhciBGaWx0ZXJVcGRhdGVRdWFsaWZpZXJUeXBlO1xuKGZ1bmN0aW9uIChGaWx0ZXJVcGRhdGVRdWFsaWZpZXJUeXBlKSB7XG4gICAgLy8gdGhlIGZpbHRlcidzIGRvbWFpbiBpcyBhIG1hbnVhbGx5IHR5cGVkIGluIG9yIHNlbGVjdGVkIHN1YnNldCBvZiB0aGUgZnVsbCBkb21haW5cbiAgICBGaWx0ZXJVcGRhdGVRdWFsaWZpZXJUeXBlW1wiQ1VTVE9NX0RPTUFJTlwiXSA9IFwiZmlsdGVyLXVwZGF0ZS1jdXN0b20tZG9tYWluXCI7XG4gICAgLy8gbm8gcXVhbGlmaWNhdGlvbnMgdG8gdGhlIGZpbHRlci11cGRhdGUgYXJlIHNwZWNpZmllZFxuICAgIEZpbHRlclVwZGF0ZVF1YWxpZmllclR5cGVbXCJOT19RVUFMSUZJQ0FUSU9OU1wiXSA9IFwiZmlsdGVyLXVwZGF0ZS1uby1xdWFsXCI7XG59KShGaWx0ZXJVcGRhdGVRdWFsaWZpZXJUeXBlID0gZXhwb3J0cy5GaWx0ZXJVcGRhdGVRdWFsaWZpZXJUeXBlIHx8IChleHBvcnRzLkZpbHRlclVwZGF0ZVF1YWxpZmllclR5cGUgPSB7fSkpO1xuLy8gXG52YXIgRmlsdGVyc1ByZXNldFR5cGU7XG4oZnVuY3Rpb24gKEZpbHRlcnNQcmVzZXRUeXBlKSB7XG4gICAgLy8ga2VlcCB0aGUgc2VsZWN0aW9uIGNob3NlbiBieSB0aGUgdXNlclxuICAgIEZpbHRlcnNQcmVzZXRUeXBlW1wiTm9uZVwiXSA9IFwibm9uZVwiO1xuICAgIC8vIHVwZGF0ZSB0byB0aGUgbGF0ZXN0IHZhbHVlcyBpbiB0aGUgZGF0YWJhc2VcbiAgICBGaWx0ZXJzUHJlc2V0VHlwZVtcIkxhc3RWYWx1ZXNcIl0gPSBcImxhc3QtdmFsdWVzXCI7XG4gICAgLy8gXG4gICAgRmlsdGVyc1ByZXNldFR5cGVbXCJDdXJyZW50VmFsdWVzXCJdID0gXCJjdXJyZW50LXZhbHVlc1wiO1xufSkoRmlsdGVyc1ByZXNldFR5cGUgPSBleHBvcnRzLkZpbHRlcnNQcmVzZXRUeXBlIHx8IChleHBvcnRzLkZpbHRlcnNQcmVzZXRUeXBlID0ge30pKTtcbi8vIE5vdGU6IGFuIGVtcHR5IHJhbmdlIChib3RoIGVuZHBvaW50cyBOVUxMKSBpcyBkZWZpbmVkIHRvIG1lYW4gJ2FsbCBub24tTlVMTCB2YWx1ZXMnLCBieSBzeW1tZXRyeSB3aXRoIHdoYXQgYSBzaW5nbGUtZW5kZWQgcmFuZ2UgbWVhbnMsIHNvIGFuIGVtcHR5IHJhbmdlIGFuZCBJblJhbmdlIHJlYWxseSBtZWFucyBOb25OdWxsLCBhbmQgYW4gZW1wdHkgcmFuZ2UgYW5kIG5SYW5nZU9yTnVsbCByZWFsbHkgbWVhbnMgQWxsXG52YXIgRmlsdGVyc1F1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzO1xuKGZ1bmN0aW9uIChGaWx0ZXJzUXVhbnRpdGF0aXZlSW5jbHVkZWRWYWx1ZXMpIHtcbiAgICAvLyB0aGUgaWRlbnRpdHkgZmlsdGVyIChldmVyeXRoaW5nIGlzIGluY2x1ZGVkKVxuICAgIEZpbHRlcnNRdWFudGl0YXRpdmVJbmNsdWRlZFZhbHVlc1tcIkFsbFwiXSA9IFwiaW5jbHVkZS1hbGxcIjtcbiAgICAvLyBhbGwgdmFsdWVzIHdoaWNoIGFyZSBub24tbnVsbHB0clxuICAgIEZpbHRlcnNRdWFudGl0YXRpdmVJbmNsdWRlZFZhbHVlc1tcIk5vbk51bGxcIl0gPSBcImluY2x1ZGUtbm9uLW51bGxcIjtcbiAgICAvLyBhbGwgdmFsdWVzIHdoaWNoIGFyZSBudWxscHRyXG4gICAgRmlsdGVyc1F1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzW1wiTnVsbFwiXSA9IFwiaW5jbHVkZS1udWxsXCI7XG4gICAgLy8gb25seSB2YWx1ZXMgd2l0aGluIHRoZSByYW5nZSBhbmQgd2hpY2ggYXJlIG5vbiBudWxsXG4gICAgRmlsdGVyc1F1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzW1wiSW5SYW5nZVwiXSA9IFwiaW5jbHVkZS1yYW5nZVwiO1xuICAgIC8vIHZhbHVlcyB3aXRoaW4gdGhlIHJhbmdlIG9yIHdoaWNoIGFyZSBudWxscHRyXG4gICAgRmlsdGVyc1F1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzW1wiSW5SYW5nZU9yTnVsbFwiXSA9IFwiaW5jbHVkZS1yYW5nZS1vci1udWxsXCI7XG4gICAgLy8gYWxsIHZhbHVlcyBhcmUgZmlsdGVyZWQgb3V0LiBVc2VyIGNhbm5vdCBjcmVhdGUgdGhpcyB0eXBlIG9mIGZpbHRlciBkaXJlY3RseTsgaXMgb25seSBjcmVhdGVkIHdoZW4gdHdvIGZpbHRlcnMgaW50ZXJzZWN0IGFuZCB0aGVpciBpbmNsdWRlZFZhbHVlcyBjb25mbGljdCBzbyB0aGV5IHdpbGwgaW5jbHVkZSBub3RoaW5nIChlLmcuLCBOb25OdWxsIHdpdGggTnVsbClcbiAgICBGaWx0ZXJzUXVhbnRpdGF0aXZlSW5jbHVkZWRWYWx1ZXNbXCJOb25lXCJdID0gXCJpbmNsdWRlLW5vbmVcIjtcbn0pKEZpbHRlcnNRdWFudGl0YXRpdmVJbmNsdWRlZFZhbHVlcyA9IGV4cG9ydHMuRmlsdGVyc1F1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzIHx8IChleHBvcnRzLkZpbHRlcnNRdWFudGl0YXRpdmVJbmNsdWRlZFZhbHVlcyA9IHt9KSk7XG4vLyBcbnZhciBEYXRlUGVyaW9kVHlwZTtcbihmdW5jdGlvbiAoRGF0ZVBlcmlvZFR5cGUpIHtcbiAgICAvLyBcbiAgICBEYXRlUGVyaW9kVHlwZVtcIlBlcmlvZFllYXJcIl0gPSBcInllYXJcIjtcbiAgICAvLyBcbiAgICBEYXRlUGVyaW9kVHlwZVtcIlBlcmlvZFF1YXJ0ZXJcIl0gPSBcInF1YXJ0ZXJcIjtcbiAgICAvLyBcbiAgICBEYXRlUGVyaW9kVHlwZVtcIlBlcmlvZE1vbnRoXCJdID0gXCJtb250aFwiO1xuICAgIC8vIFxuICAgIERhdGVQZXJpb2RUeXBlW1wiUGVyaW9kV2Vla1wiXSA9IFwid2Vla1wiO1xuICAgIC8vIFxuICAgIERhdGVQZXJpb2RUeXBlW1wiUGVyaW9kRGF5XCJdID0gXCJkYXlcIjtcbiAgICAvLyBcbiAgICBEYXRlUGVyaW9kVHlwZVtcIlBlcmlvZEhvdXJcIl0gPSBcImhvdXJcIjtcbiAgICAvLyBcbiAgICBEYXRlUGVyaW9kVHlwZVtcIlBlcmlvZE1pbnV0ZVwiXSA9IFwibWludXRlXCI7XG4gICAgLy8gXG4gICAgRGF0ZVBlcmlvZFR5cGVbXCJQZXJpb2RTZWNvbmRcIl0gPSBcInNlY29uZFwiO1xufSkoRGF0ZVBlcmlvZFR5cGUgPSBleHBvcnRzLkRhdGVQZXJpb2RUeXBlIHx8IChleHBvcnRzLkRhdGVQZXJpb2RUeXBlID0ge30pKTtcbi8vIEZpc2NhbCBZZWFyIFN0YXJ0aW5nIE1vbnRoXG52YXIgRllTVmFsdWVzO1xuKGZ1bmN0aW9uIChGWVNWYWx1ZXMpIHtcbiAgICAvLyBcbiAgICBGWVNWYWx1ZXNbXCJGWVNWYWx1ZXNfX0ZZU19KQU5VQVJZXCJdID0gXCJmeXMtamFudWFyeVwiO1xuICAgIC8vIFxuICAgIEZZU1ZhbHVlc1tcIkZZU1ZhbHVlc19fRllTX0ZFQlJVQVJZXCJdID0gXCJmeXMtZmVicnVhcnlcIjtcbiAgICAvLyBcbiAgICBGWVNWYWx1ZXNbXCJGWVNWYWx1ZXNfX0ZZU19NQVJDSFwiXSA9IFwiZnlzLW1hcmNoXCI7XG4gICAgLy8gXG4gICAgRllTVmFsdWVzW1wiRllTVmFsdWVzX19GWVNfQVBSSUxcIl0gPSBcImZ5cy1hcHJpbFwiO1xuICAgIC8vIFxuICAgIEZZU1ZhbHVlc1tcIkZZU1ZhbHVlc19fRllTX01BWVwiXSA9IFwiZnlzLW1heVwiO1xuICAgIC8vIFxuICAgIEZZU1ZhbHVlc1tcIkZZU1ZhbHVlc19fRllTX0pVTkVcIl0gPSBcImZ5cy1qdW5lXCI7XG4gICAgLy8gXG4gICAgRllTVmFsdWVzW1wiRllTVmFsdWVzX19GWVNfSlVMWVwiXSA9IFwiZnlzLWp1bHlcIjtcbiAgICAvLyBcbiAgICBGWVNWYWx1ZXNbXCJGWVNWYWx1ZXNfX0ZZU19BVUdVU1RcIl0gPSBcImZ5cy1hdWd1c3RcIjtcbiAgICAvLyBcbiAgICBGWVNWYWx1ZXNbXCJGWVNWYWx1ZXNfX0ZZU19TRVBURU1CRVJcIl0gPSBcImZ5cy1zZXB0ZW1iZXJcIjtcbiAgICAvLyBcbiAgICBGWVNWYWx1ZXNbXCJGWVNWYWx1ZXNfX0ZZU19PQ1RPQkVSXCJdID0gXCJmeXMtb2N0b2JlclwiO1xuICAgIC8vIFxuICAgIEZZU1ZhbHVlc1tcIkZZU1ZhbHVlc19fRllTX05PVkVNQkVSXCJdID0gXCJmeXMtbm92ZW1iZXJcIjtcbiAgICAvLyBcbiAgICBGWVNWYWx1ZXNbXCJGWVNWYWx1ZXNfX0ZZU19ERUNFTUJFUlwiXSA9IFwiZnlzLWRlY2VtYmVyXCI7XG59KShGWVNWYWx1ZXMgPSBleHBvcnRzLkZZU1ZhbHVlcyB8fCAoZXhwb3J0cy5GWVNWYWx1ZXMgPSB7fSkpO1xuLy8gXG52YXIgUGFnZU5hdkZsYWdzRmxhZ3M7XG4oZnVuY3Rpb24gKFBhZ2VOYXZGbGFnc0ZsYWdzKSB7XG4gICAgLy8gXG4gICAgUGFnZU5hdkZsYWdzRmxhZ3NbXCJOb25lXCJdID0gXCJub25lXCI7XG4gICAgLy8gXG4gICAgUGFnZU5hdkZsYWdzRmxhZ3NbXCJMb29wZWRQbGF5YmFja1wiXSA9IFwibG9vcGVkLXBsYXliYWNrXCI7XG4gICAgLy8gXG4gICAgUGFnZU5hdkZsYWdzRmxhZ3NbXCJTaG93RHJvcGRvd25cIl0gPSBcInNob3ctZHJvcGRvd25cIjtcbiAgICAvLyBcbiAgICBQYWdlTmF2RmxhZ3NGbGFnc1tcIlNob3dTbGlkZXJcIl0gPSBcInNob3ctc2xpZGVyXCI7XG4gICAgLy8gXG4gICAgUGFnZU5hdkZsYWdzRmxhZ3NbXCJTaG93UGxheUN0cmxzXCJdID0gXCJzaG93LXBsYXktY29udHJvbHNcIjtcbiAgICAvLyBcbiAgICBQYWdlTmF2RmxhZ3NGbGFnc1tcIlNob3dUcmFpbEN0cmxzXCJdID0gXCJzaG93LXRyYWlsLWNvbnRyb2xzXCI7XG4gICAgLy8gXG4gICAgUGFnZU5hdkZsYWdzRmxhZ3NbXCJTeW5jaHJvbml6ZWRcIl0gPSBcInN5bmNocm9uaXplZFwiO1xufSkoUGFnZU5hdkZsYWdzRmxhZ3MgPSBleHBvcnRzLlBhZ2VOYXZGbGFnc0ZsYWdzIHx8IChleHBvcnRzLlBhZ2VOYXZGbGFnc0ZsYWdzID0ge30pKTtcbi8vIFxudmFyIFBhZ2VUcmFpbEVudW1zTWFya3NUb1RyYWlsO1xuKGZ1bmN0aW9uIChQYWdlVHJhaWxFbnVtc01hcmtzVG9UcmFpbCkge1xuICAgIC8vIFxuICAgIFBhZ2VUcmFpbEVudW1zTWFya3NUb1RyYWlsW1wiTWFudWFsXCJdID0gXCJtYW51YWxcIjtcbiAgICAvLyBcbiAgICBQYWdlVHJhaWxFbnVtc01hcmtzVG9UcmFpbFtcIkFsbFwiXSA9IFwiYWxsXCI7XG4gICAgLy8gXG4gICAgUGFnZVRyYWlsRW51bXNNYXJrc1RvVHJhaWxbXCJTZWxlY3RlZFwiXSA9IFwic2VsZWN0ZWRcIjtcbiAgICAvLyBcbiAgICBQYWdlVHJhaWxFbnVtc01hcmtzVG9UcmFpbFtcIkhpZ2hsaWdodGVkXCJdID0gXCJoaWdobGlnaHRlZFwiO1xufSkoUGFnZVRyYWlsRW51bXNNYXJrc1RvVHJhaWwgPSBleHBvcnRzLlBhZ2VUcmFpbEVudW1zTWFya3NUb1RyYWlsIHx8IChleHBvcnRzLlBhZ2VUcmFpbEVudW1zTWFya3NUb1RyYWlsID0ge30pKTtcbi8vIFxudmFyIFBhZ2VUcmFpbEVudW1zVHJhaWxUeXBlO1xuKGZ1bmN0aW9uIChQYWdlVHJhaWxFbnVtc1RyYWlsVHlwZSkge1xuICAgIC8vIFxuICAgIFBhZ2VUcmFpbEVudW1zVHJhaWxUeXBlW1wiTWFya3NcIl0gPSBcIm1hcmtzXCI7XG4gICAgLy8gXG4gICAgUGFnZVRyYWlsRW51bXNUcmFpbFR5cGVbXCJUcmFpbHNcIl0gPSBcInRyYWlsc1wiO1xuICAgIC8vIFxuICAgIFBhZ2VUcmFpbEVudW1zVHJhaWxUeXBlW1wiQm90aFwiXSA9IFwiYm90aFwiO1xufSkoUGFnZVRyYWlsRW51bXNUcmFpbFR5cGUgPSBleHBvcnRzLlBhZ2VUcmFpbEVudW1zVHJhaWxUeXBlIHx8IChleHBvcnRzLlBhZ2VUcmFpbEVudW1zVHJhaWxUeXBlID0ge30pKTtcbi8vIFxudmFyIFBhZ2VUcmFpbEVudW1zVHJhaWxFZmZlY3Q7XG4oZnVuY3Rpb24gKFBhZ2VUcmFpbEVudW1zVHJhaWxFZmZlY3QpIHtcbiAgICAvLyBcbiAgICBQYWdlVHJhaWxFbnVtc1RyYWlsRWZmZWN0W1wiTm9uZVwiXSA9IFwibm9uZVwiO1xuICAgIC8vIFxuICAgIFBhZ2VUcmFpbEVudW1zVHJhaWxFZmZlY3RbXCJUcmFuc3BhcmVuY3lcIl0gPSBcInRyYW5zcGFyZW5jeVwiO1xufSkoUGFnZVRyYWlsRW51bXNUcmFpbEVmZmVjdCA9IGV4cG9ydHMuUGFnZVRyYWlsRW51bXNUcmFpbEVmZmVjdCB8fCAoZXhwb3J0cy5QYWdlVHJhaWxFbnVtc1RyYWlsRWZmZWN0ID0ge30pKTtcbi8vIFxudmFyIFBhZ2VUcmFpbEVudW1zVHJhaWxGbGFncztcbihmdW5jdGlvbiAoUGFnZVRyYWlsRW51bXNUcmFpbEZsYWdzKSB7XG4gICAgLy8gXG4gICAgUGFnZVRyYWlsRW51bXNUcmFpbEZsYWdzW1wiTm9GbGFnc1wiXSA9IFwibm8tZmxhZ3NcIjtcbiAgICAvLyBcbiAgICBQYWdlVHJhaWxFbnVtc1RyYWlsRmxhZ3NbXCJEcmF3SWZIaWdobGlnaHRlZFwiXSA9IFwiZHJhdy1pZi1oaWdobGlnaHRlZFwiO1xuICAgIC8vIFxuICAgIFBhZ2VUcmFpbEVudW1zVHJhaWxGbGFnc1tcIkRyYXdJZlNlbGVjdGVkXCJdID0gXCJkcmF3LWlmLXNlbGVjdGVkXCI7XG4gICAgLy8gXG4gICAgUGFnZVRyYWlsRW51bXNUcmFpbEZsYWdzW1wiRHJhd0Fsd2F5c1wiXSA9IFwiZHJhdy1hbHdheXNcIjtcbiAgICAvLyBcbiAgICBQYWdlVHJhaWxFbnVtc1RyYWlsRmxhZ3NbXCJMaW5lc0VuYWJsZWRcIl0gPSBcImxpbmVzLWVuYWJsZWRcIjtcbn0pKFBhZ2VUcmFpbEVudW1zVHJhaWxGbGFncyA9IGV4cG9ydHMuUGFnZVRyYWlsRW51bXNUcmFpbEZsYWdzIHx8IChleHBvcnRzLlBhZ2VUcmFpbEVudW1zVHJhaWxGbGFncyA9IHt9KSk7XG4vLyBzaW1wbGUgcGFnZSBjaGFuZ2UgY29tbWFuZHNcbnZhciBDaGFuZ2VQYWdlQ2hhbmdlVHlwZTtcbihmdW5jdGlvbiAoQ2hhbmdlUGFnZUNoYW5nZVR5cGUpIHtcbiAgICAvLyBcbiAgICBDaGFuZ2VQYWdlQ2hhbmdlVHlwZVtcIlRvRmlyc3RcIl0gPSBcImZpcnN0XCI7XG4gICAgLy8gXG4gICAgQ2hhbmdlUGFnZUNoYW5nZVR5cGVbXCJUb05leHRcIl0gPSBcIm5leHRcIjtcbiAgICAvLyBcbiAgICBDaGFuZ2VQYWdlQ2hhbmdlVHlwZVtcIlRvUHJldlwiXSA9IFwicHJldmlvdXNcIjtcbiAgICAvLyBcbiAgICBDaGFuZ2VQYWdlQ2hhbmdlVHlwZVtcIlRvTGFzdFwiXSA9IFwibGFzdFwiO1xufSkoQ2hhbmdlUGFnZUNoYW5nZVR5cGUgPSBleHBvcnRzLkNoYW5nZVBhZ2VDaGFuZ2VUeXBlIHx8IChleHBvcnRzLkNoYW5nZVBhZ2VDaGFuZ2VUeXBlID0ge30pKTtcbi8vIFN0b3AsIHN0YXJ0IGluIGEgZGlyZWN0aW9uLCBvciBzZXQgc3BlZWQgb2YgcGFnZSBhbmltYXRpb25cbnZhciBDaGFuZ2VQYWdlUGFnZUFuaW1hdGlvbkNvbnRyb2w7XG4oZnVuY3Rpb24gKENoYW5nZVBhZ2VQYWdlQW5pbWF0aW9uQ29udHJvbCkge1xuICAgIC8vIFxuICAgIENoYW5nZVBhZ2VQYWdlQW5pbWF0aW9uQ29udHJvbFtcIlN0b3BcIl0gPSBcInN0b3BcIjtcbiAgICAvLyBcbiAgICBDaGFuZ2VQYWdlUGFnZUFuaW1hdGlvbkNvbnRyb2xbXCJGb3J3YXJkXCJdID0gXCJmb3J3YXJkXCI7XG4gICAgLy8gXG4gICAgQ2hhbmdlUGFnZVBhZ2VBbmltYXRpb25Db250cm9sW1wiQmFja3dhcmRcIl0gPSBcImJhY2t3YXJkXCI7XG4gICAgLy8gXG4gICAgQ2hhbmdlUGFnZVBhZ2VBbmltYXRpb25Db250cm9sW1wiU2xvd1NwZWVkXCJdID0gXCJzbG93LXNwZWVkXCI7XG4gICAgLy8gXG4gICAgQ2hhbmdlUGFnZVBhZ2VBbmltYXRpb25Db250cm9sW1wiTm9ybWFsU3BlZWRcIl0gPSBcIm5vcm1hbC1zcGVlZFwiO1xuICAgIC8vIFxuICAgIENoYW5nZVBhZ2VQYWdlQW5pbWF0aW9uQ29udHJvbFtcIkZhc3RTcGVlZFwiXSA9IFwiZmFzdC1zcGVlZFwiO1xuICAgIC8vIFxuICAgIENoYW5nZVBhZ2VQYWdlQW5pbWF0aW9uQ29udHJvbFtcIlRvZ2dsZUZvcndhcmRcIl0gPSBcInRvZ2dsZS1mb3J3YXJkXCI7XG4gICAgLy8gXG4gICAgQ2hhbmdlUGFnZVBhZ2VBbmltYXRpb25Db250cm9sW1wiVG9nZ2xlQmFja3dhcmRcIl0gPSBcInRvZ2dsZS1iYWNrd2FyZFwiO1xufSkoQ2hhbmdlUGFnZVBhZ2VBbmltYXRpb25Db250cm9sID0gZXhwb3J0cy5DaGFuZ2VQYWdlUGFnZUFuaW1hdGlvbkNvbnRyb2wgfHwgKGV4cG9ydHMuQ2hhbmdlUGFnZVBhZ2VBbmltYXRpb25Db250cm9sID0ge30pKTtcbi8vIFxudmFyIExlZ2VuZEl0ZW1MYXlvdXQ7XG4oZnVuY3Rpb24gKExlZ2VuZEl0ZW1MYXlvdXQpIHtcbiAgICAvLyBcbiAgICBMZWdlbmRJdGVtTGF5b3V0W1wiTGVnZW5kSXRlbUxheW91dFZlcnRcIl0gPSBcInZlcnRpY2FsXCI7XG4gICAgLy8gXG4gICAgTGVnZW5kSXRlbUxheW91dFtcIkxlZ2VuZEl0ZW1MYXlvdXRIb3J6XCJdID0gXCJob3Jpem9udGFsXCI7XG4gICAgLy8gXG4gICAgTGVnZW5kSXRlbUxheW91dFtcIkxlZ2VuZEl0ZW1MYXlvdXRHcmlkXCJdID0gXCJncmlkXCI7XG4gICAgLy8gXG4gICAgTGVnZW5kSXRlbUxheW91dFtcIkxlZ2VuZEl0ZW1MYXlvdXRBdXRvXCJdID0gXCJhdXRvXCI7XG59KShMZWdlbmRJdGVtTGF5b3V0ID0gZXhwb3J0cy5MZWdlbmRJdGVtTGF5b3V0IHx8IChleHBvcnRzLkxlZ2VuZEl0ZW1MYXlvdXQgPSB7fSkpO1xuLy8gXG52YXIgTGVnZW5kSXRlbU9yZGVyO1xuKGZ1bmN0aW9uIChMZWdlbmRJdGVtT3JkZXIpIHtcbiAgICAvLyBcbiAgICBMZWdlbmRJdGVtT3JkZXJbXCJMZWdlbmRJdGVtT3JkZXJOb3JtYWxcIl0gPSBcIm5vcm1hbFwiO1xuICAgIC8vIFxuICAgIExlZ2VuZEl0ZW1PcmRlcltcIkxlZ2VuZEl0ZW1PcmRlclJldmVyc2VkXCJdID0gXCJyZXZlcnNlZFwiO1xuICAgIC8vIFxuICAgIExlZ2VuZEl0ZW1PcmRlcltcIkxlZ2VuZEl0ZW1PcmRlckF1dG9cIl0gPSBcImF1dG9cIjtcbn0pKExlZ2VuZEl0ZW1PcmRlciA9IGV4cG9ydHMuTGVnZW5kSXRlbU9yZGVyIHx8IChleHBvcnRzLkxlZ2VuZEl0ZW1PcmRlciA9IHt9KSk7XG4vLyBcbnZhciBTaXplTW9kZTtcbihmdW5jdGlvbiAoU2l6ZU1vZGUpIHtcbiAgICAvLyBcbiAgICBTaXplTW9kZVtcIlNpemVNb2RlQXV0b1wiXSA9IFwic2l6ZS1tb2RlLWF1dG9cIjtcbiAgICAvLyBcbiAgICBTaXplTW9kZVtcIlNpemVNb2RlRml4ZWRcIl0gPSBcInNpemUtbW9kZS1maXhlZFwiO1xuICAgIC8vIFxuICAgIFNpemVNb2RlW1wiU2l6ZU1vZGVNaW5cIl0gPSBcInNpemUtbW9kZS1taW5cIjtcbiAgICAvLyBcbiAgICBTaXplTW9kZVtcIlNpemVNb2RlTWF4XCJdID0gXCJzaXplLW1vZGUtbWF4XCI7XG4gICAgLy8gXG4gICAgU2l6ZU1vZGVbXCJTaXplTW9kZVJhbmdlXCJdID0gXCJzaXplLW1vZGUtcmFuZ2VcIjtcbiAgICAvLyBcbiAgICBTaXplTW9kZVtcIlNpemVNb2RlRml0V2lkdGhcIl0gPSBcInNpemUtbW9kZS1maXQtd2lkdGhcIjtcbiAgICAvLyBcbiAgICBTaXplTW9kZVtcIlNpemVNb2RlRml0SGVpZ2h0XCJdID0gXCJzaXplLW1vZGUtaGVpZ2h0XCI7XG4gICAgLy8gXG4gICAgU2l6ZU1vZGVbXCJTaXplTW9kZVNjcm9sbEhlaWdodFwiXSA9IFwic2l6ZS1tb2RlLXNjcm9sbC1oZWlnaHRcIjtcbn0pKFNpemVNb2RlID0gZXhwb3J0cy5TaXplTW9kZSB8fCAoZXhwb3J0cy5TaXplTW9kZSA9IHt9KSk7XG4vLyBcbnZhciBTaG93TWVDb21tYW5kVHlwZTtcbihmdW5jdGlvbiAoU2hvd01lQ29tbWFuZFR5cGUpIHtcbiAgICAvLyBcbiAgICBTaG93TWVDb21tYW5kVHlwZVtcIlNIT1dNRV9URVhUXCJdID0gXCJ0ZXh0XCI7XG4gICAgLy8gXG4gICAgU2hvd01lQ29tbWFuZFR5cGVbXCJTSE9XTUVfSEVBVFwiXSA9IFwiaGVhdFwiO1xuICAgIC8vIFxuICAgIFNob3dNZUNvbW1hbmRUeXBlW1wiU0hPV01FX1NQT1RUQUJMRVwiXSA9IFwic3BvdC10YWJsZVwiO1xuICAgIC8vIFxuICAgIFNob3dNZUNvbW1hbmRUeXBlW1wiU0hPV01FX0JBUkhPUklaXCJdID0gXCJiYXItaG9yaXpcIjtcbiAgICAvLyBcbiAgICBTaG93TWVDb21tYW5kVHlwZVtcIlNIT1dNRV9CQVJTVEFDS1wiXSA9IFwiYmFyLXN0YWNrXCI7XG4gICAgLy8gXG4gICAgU2hvd01lQ29tbWFuZFR5cGVbXCJTSE9XTUVfQkFSU0lERVwiXSA9IFwiYmFyLXNpZGVcIjtcbiAgICAvLyBcbiAgICBTaG93TWVDb21tYW5kVHlwZVtcIlNIT1dNRV9CQVJNRUFTVVJFXCJdID0gXCJiYXItbWVhc3VyZVwiO1xuICAgIC8vIFxuICAgIFNob3dNZUNvbW1hbmRUeXBlW1wiU0hPV01FX09MSU5FXCJdID0gXCJvLWxpbmVcIjtcbiAgICAvLyBcbiAgICBTaG93TWVDb21tYW5kVHlwZVtcIlNIT1dNRV9RSUxJTkVcIl0gPSBcInFpLWxpbmVcIjtcbiAgICAvLyBcbiAgICBTaG93TWVDb21tYW5kVHlwZVtcIlNIT1dNRV9PQVJFQVwiXSA9IFwiby1hcmVhXCI7XG4gICAgLy8gXG4gICAgU2hvd01lQ29tbWFuZFR5cGVbXCJTSE9XTUVfUUlBUkVBXCJdID0gXCJxaS1hcmVhXCI7XG4gICAgLy8gXG4gICAgU2hvd01lQ29tbWFuZFR5cGVbXCJTSE9XTUVfQ0lSQ0xFXCJdID0gXCJjaXJjbGVcIjtcbiAgICAvLyBcbiAgICBTaG93TWVDb21tYW5kVHlwZVtcIlNIT1dNRV9DSVJDTEVTSURFXCJdID0gXCJjaXJjbGUtc2lkZVwiO1xuICAgIC8vIFxuICAgIFNob3dNZUNvbW1hbmRUeXBlW1wiU0hPV01FX0dBTlRUXCJdID0gXCJnYW50dFwiO1xuICAgIC8vIFxuICAgIFNob3dNZUNvbW1hbmRUeXBlW1wiU0hPV01FX1NDQVRURVJcIl0gPSBcInNjYXR0ZXJcIjtcbiAgICAvLyBcbiAgICBTaG93TWVDb21tYW5kVHlwZVtcIlNIT1dNRV9TQ0FUVEVSTUFUUklYXCJdID0gXCJzY2F0dGVyLW1hdHJpeFwiO1xuICAgIC8vIFxuICAgIFNob3dNZUNvbW1hbmRUeXBlW1wiU0hPV01FX0hJU1RPR1JBTVwiXSA9IFwiaGlzdG9ncmFtXCI7XG4gICAgLy8gXG4gICAgU2hvd01lQ29tbWFuZFR5cGVbXCJTSE9XTUVfTUFQU1wiXSA9IFwibWFwc1wiO1xuICAgIC8vIFxuICAgIFNob3dNZUNvbW1hbmRUeXBlW1wiU0hPV01FX0ZJTExFRE1BUFNcIl0gPSBcImZpbGxlZC1tYXBzXCI7XG4gICAgLy8gXG4gICAgU2hvd01lQ29tbWFuZFR5cGVbXCJTSE9XTUVfUElFU1wiXSA9IFwicGllc1wiO1xuICAgIC8vIFxuICAgIFNob3dNZUNvbW1hbmRUeXBlW1wiU0hPV01FX0RVQUxCQVJMSU5FXCJdID0gXCJkdWFsLWJhci1saW5lXCI7XG4gICAgLy8gXG4gICAgU2hvd01lQ29tbWFuZFR5cGVbXCJTSE9XTUVfRFVBTExJTkVcIl0gPSBcImR1YWwtbGluZVwiO1xuICAgIC8vIFxuICAgIFNob3dNZUNvbW1hbmRUeXBlW1wiU0hPV01FX0JVTExFVFwiXSA9IFwiYnVsbGV0XCI7XG4gICAgLy8gXG4gICAgU2hvd01lQ29tbWFuZFR5cGVbXCJTSE9XTUVfVFJFRU1BUFwiXSA9IFwidHJlZW1hcFwiO1xuICAgIC8vIFxuICAgIFNob3dNZUNvbW1hbmRUeXBlW1wiU0hPV01FX0JVQkJMRVwiXSA9IFwiYnViYmxlXCI7XG4gICAgLy8gXG4gICAgU2hvd01lQ29tbWFuZFR5cGVbXCJTSE9XTUVfQk9YUExPVFwiXSA9IFwiYm94LXBsb3RcIjtcbn0pKFNob3dNZUNvbW1hbmRUeXBlID0gZXhwb3J0cy5TaG93TWVDb21tYW5kVHlwZSB8fCAoZXhwb3J0cy5TaG93TWVDb21tYW5kVHlwZSA9IHt9KSk7XG4vLyBpY29uIHRvIGRpc3BsYXkgZm9yIGFuIGl0ZW0gb24gYSBzaGVsZlxudmFyIFNoZWxmSWNvblR5cGU7XG4oZnVuY3Rpb24gKFNoZWxmSWNvblR5cGUpIHtcbiAgICAvLyBub3Qgc2V0XG4gICAgU2hlbGZJY29uVHlwZVtcIlNJVF9Ob25lXCJdID0gXCJub25lXCI7XG4gICAgLy8gaW5jb21wYXRpYmxlIGZpZWxkXG4gICAgU2hlbGZJY29uVHlwZVtcIlNJVF9JbmNvbXBhdGlibGVGaWVsZFwiXSA9IFwiaW5jb21wYXRpYmxlLWZpZWxkXCI7XG4gICAgLy8gcmVtb3RlXG4gICAgU2hlbGZJY29uVHlwZVtcIlNJVF9SZW1vdGVcIl0gPSBcInJlbW90ZVwiO1xuICAgIC8vIGdyb3VwXG4gICAgU2hlbGZJY29uVHlwZVtcIlNJVF9Hcm91cFwiXSA9IFwiZ3JvdXBcIjtcbiAgICAvLyB0YWJsZSBjYWxjXG4gICAgU2hlbGZJY29uVHlwZVtcIlNJVF9UYWJsZUNhbGNcIl0gPSBcInRhYmxlLWNhbGNcIjtcbiAgICAvLyBpdGVtIGNvbWVzIGZyb20gYSBzZWNvbmRhcnkgZGF0YXNvdXJjZVxuICAgIFNoZWxmSWNvblR5cGVbXCJTSVRfU2Vjb25kYXJ5RGF0YXNvdXJjZVwiXSA9IFwic2Vjb25kYXJ5LWRhdGFzb3VyY2VcIjtcbiAgICAvLyB0YWJsZSBjYWxjIGZyb20gYSBzZWNvbmRhcnkgZGF0YXNvdXJjZVxuICAgIFNoZWxmSWNvblR5cGVbXCJTSVRfVGFibGVDYWxjU2Vjb25kYXJ5XCJdID0gXCJ0YWJsZS1jYWxjLXNlY29uZGFyeVwiO1xuICAgIC8vIGZvcmVjYXN0XG4gICAgU2hlbGZJY29uVHlwZVtcIlNJVF9Gb3JlY2FzdFwiXSA9IFwiZm9yZWNhc3RcIjtcbiAgICAvLyBhc2NlbmRpbmcgc29ydFxuICAgIFNoZWxmSWNvblR5cGVbXCJTSVRfU29ydEFzY1wiXSA9IFwic29ydC1hc2NcIjtcbiAgICAvLyBkZXNjZW5kaW5nIHNvcnRcbiAgICBTaGVsZkljb25UeXBlW1wiU0lUX1NvcnREZXNjXCJdID0gXCJzb3J0LWRlc2NcIjtcbiAgICAvLyBhbHBoYWJldGljIGFzY2VuZGluZyBzb3J0XG4gICAgU2hlbGZJY29uVHlwZVtcIlNJVF9Tb3J0QWxwaGFiZXRpY0FzY1wiXSA9IFwic29ydC1hbHBoYWJldGljLWFzY1wiO1xuICAgIC8vIGFscGhhYmV0aWMgZGVzY2VuZGluZyBzb3J0XG4gICAgU2hlbGZJY29uVHlwZVtcIlNJVF9Tb3J0QWxwaGFiZXRpY0Rlc2NcIl0gPSBcInNvcnQtYWxwaGFiZXRpYy1kZXNjXCI7XG59KShTaGVsZkljb25UeXBlID0gZXhwb3J0cy5TaGVsZkljb25UeXBlIHx8IChleHBvcnRzLlNoZWxmSWNvblR5cGUgPSB7fSkpO1xuLy8gaWNvbiB0byBkaXNwbGF5IGZvciBhbiBpdGVtIG9uIHRoZSBmaWx0ZXJzIHNoZWxmXG52YXIgRmlsdGVySWNvblR5cGU7XG4oZnVuY3Rpb24gKEZpbHRlckljb25UeXBlKSB7XG4gICAgLy8gYSBnbG9iYWwgZmlsdGVyIGljb25cbiAgICBGaWx0ZXJJY29uVHlwZVtcIkZJVF9HbG9iYWxcIl0gPSBcImdsb2JhbC1maWx0ZXJcIjtcbiAgICAvLyBhIHNoYXJlZCBmaWx0ZXIgaWNvblxuICAgIEZpbHRlckljb25UeXBlW1wiRklUX1NoYXJlZFwiXSA9IFwic2hhcmVkLWZpbHRlclwiO1xuICAgIC8vIGEgbWFwcGVkIHNoYXJlZCBzb3VyY2UgZmlsdGVyIGljb25cbiAgICBGaWx0ZXJJY29uVHlwZVtcIkZJVF9NYXBwZWRTaGFyZWRTb3VyY2VcIl0gPSBcIm1hcHBlZC1zaGFyZWQtc291cmNlLWZpbHRlclwiO1xuICAgIC8vIGEgbWFwcGVkIHNoYXJlZCB0YXJnZXQgZmlsdGVyIGljb25cbiAgICBGaWx0ZXJJY29uVHlwZVtcIkZJVF9NYXBwZWRTaGFyZWRUYXJnZXRcIl0gPSBcIm1hcHBlZC1zaGFyZWQtdGFyZ2V0LWZpbHRlclwiO1xuICAgIC8vIGEgc2xpY2luZyBmaWx0ZXIgaWNvblxuICAgIEZpbHRlckljb25UeXBlW1wiRklUX1NsaWNlXCJdID0gXCJzbGljZS1maWx0ZXJcIjtcbiAgICAvLyBhIGxvY2FsIGZpbHRlciBpY29uXG4gICAgRmlsdGVySWNvblR5cGVbXCJGSVRfTG9jYWxcIl0gPSBcImxvY2FsLWZpbHRlclwiO1xuICAgIC8vIGEgbWFwcGVkIGdsb2JhbCBzb3VyY2UgZmlsdGVyIGljb25cbiAgICBGaWx0ZXJJY29uVHlwZVtcIkZJVF9NYXBwZWRHbG9iYWxTb3VyY2VcIl0gPSBcIm1hcHBlZC1nbG9iYWwtc291cmNlLWZpbHRlclwiO1xuICAgIC8vIGEgbWFwcGVkIGdsb2JhbCB0YXJnZXQgZmlsdGVyIGljb25cbiAgICBGaWx0ZXJJY29uVHlwZVtcIkZJVF9NYXBwZWRHbG9iYWxUYXJnZXRcIl0gPSBcIm1hcHBlZC1nbG9iYWwtdGFyZ2V0LWZpbHRlclwiO1xuICAgIC8vIG5vdCBhIGZpbHRlclxuICAgIEZpbHRlckljb25UeXBlW1wiRklUX05vbmVcIl0gPSBcIm5vLWZpbHRlclwiO1xufSkoRmlsdGVySWNvblR5cGUgPSBleHBvcnRzLkZpbHRlckljb25UeXBlIHx8IChleHBvcnRzLkZpbHRlckljb25UeXBlID0ge30pKTtcbi8vIHVzZWQgdG8gaW5kaWNhdGUgaWYgYSBmaWVsZCBpcyBwYXJ0IG9mIGEgZHVhbCBheGlzXG52YXIgSXRlbURyYXdTdHlsZTtcbihmdW5jdGlvbiAoSXRlbURyYXdTdHlsZSkge1xuICAgIC8vIG5vdCBwYXJ0IG9mIGEgZHVhbCBheGlzXG4gICAgSXRlbURyYXdTdHlsZVtcIklURU1fRFJBV1NUWUxFX05PUk1BTFwiXSA9IFwibm9ybWFsXCI7XG4gICAgLy8gZmlyc3QgaXRlbSBvbiBkdWFsIGF4aXNcbiAgICBJdGVtRHJhd1N0eWxlW1wiSVRFTV9EUkFXU1RZTEVfT1BFTkVEXCJdID0gXCJvcGVuZWRcIjtcbiAgICAvLyBzZWNvbmQgaXRlbSBvbiBkdWFsIGF4aXNcbiAgICBJdGVtRHJhd1N0eWxlW1wiSVRFTV9EUkFXU1RZTEVfQ0xPU0VEXCJdID0gXCJjbG9zZWRcIjtcbiAgICAvLyBtaWRkbGUgaXRlbSBpbiBhIHNldCBvZiBsYXllcnNcbiAgICBJdGVtRHJhd1N0eWxlW1wiSVRFTV9EUkFXU1RZTEVfTUlERExFXCJdID0gXCJtaWRkbGVcIjtcbn0pKEl0ZW1EcmF3U3R5bGUgPSBleHBvcnRzLkl0ZW1EcmF3U3R5bGUgfHwgKGV4cG9ydHMuSXRlbURyYXdTdHlsZSA9IHt9KSk7XG4vLyBpbmRpY2F0ZXMgdGhlIHNpemUgb2YgcGFnZSBmb3IgYSBzaGVldFxudmFyIFBhZ2VTaXplT3B0aW9uO1xuKGZ1bmN0aW9uIChQYWdlU2l6ZU9wdGlvbikge1xuICAgIC8vIFxuICAgIFBhZ2VTaXplT3B0aW9uW1wiUEFHRVNJWkVfTEVUVEVSXCJdID0gXCJsZXR0ZXJcIjtcbiAgICAvLyBcbiAgICBQYWdlU2l6ZU9wdGlvbltcIlBBR0VTSVpFX0xFR0FMXCJdID0gXCJsZWdhbFwiO1xuICAgIC8vIFxuICAgIFBhZ2VTaXplT3B0aW9uW1wiUEFHRVNJWkVfTk9URVwiXSA9IFwibm90ZVwiO1xuICAgIC8vIFxuICAgIFBhZ2VTaXplT3B0aW9uW1wiUEFHRVNJWkVfRk9MSU9cIl0gPSBcImZvbGlvXCI7XG4gICAgLy8gXG4gICAgUGFnZVNpemVPcHRpb25bXCJQQUdFU0laRV9UQUJMT0lEXCJdID0gXCJ0YWJsb2lkXCI7XG4gICAgLy8gXG4gICAgUGFnZVNpemVPcHRpb25bXCJQQUdFU0laRV9MRURHRVJcIl0gPSBcImxlZGdlclwiO1xuICAgIC8vIFxuICAgIFBhZ2VTaXplT3B0aW9uW1wiUEFHRVNJWkVfU1RBVEVNRU5UXCJdID0gXCJzdGF0ZW1lbnRcIjtcbiAgICAvLyBcbiAgICBQYWdlU2l6ZU9wdGlvbltcIlBBR0VTSVpFX0VYRUNVVElWRVwiXSA9IFwiZXhlY3V0aXZlXCI7XG4gICAgLy8gXG4gICAgUGFnZVNpemVPcHRpb25bXCJQQUdFU0laRV9BM1wiXSA9IFwiYTNcIjtcbiAgICAvLyBcbiAgICBQYWdlU2l6ZU9wdGlvbltcIlBBR0VTSVpFX0E0XCJdID0gXCJhNFwiO1xuICAgIC8vIFxuICAgIFBhZ2VTaXplT3B0aW9uW1wiUEFHRVNJWkVfQTVcIl0gPSBcImE1XCI7XG4gICAgLy8gXG4gICAgUGFnZVNpemVPcHRpb25bXCJQQUdFU0laRV9CNFwiXSA9IFwiYjRcIjtcbiAgICAvLyBcbiAgICBQYWdlU2l6ZU9wdGlvbltcIlBBR0VTSVpFX0I1XCJdID0gXCJiNVwiO1xuICAgIC8vIFxuICAgIFBhZ2VTaXplT3B0aW9uW1wiUEFHRVNJWkVfUVVBUlRPXCJdID0gXCJxdWFydG9cIjtcbiAgICAvLyBcbiAgICBQYWdlU2l6ZU9wdGlvbltcIlBBR0VTSVpFX1VOU1BFQ0lGSUVEXCJdID0gXCJ1bnNwZWNpZmllZFwiO1xufSkoUGFnZVNpemVPcHRpb24gPSBleHBvcnRzLlBhZ2VTaXplT3B0aW9uIHx8IChleHBvcnRzLlBhZ2VTaXplT3B0aW9uID0ge30pKTtcbi8vIEluZGljYXRlcyB0aGUgbGF5b3V0IG9mIHBhZ2UgZm9yIGEgc2hlZXRcbnZhciBQYWdlT3JpZW50YXRpb247XG4oZnVuY3Rpb24gKFBhZ2VPcmllbnRhdGlvbikge1xuICAgIC8vIFxuICAgIFBhZ2VPcmllbnRhdGlvbltcIk9yaWVudGF0aW9uUHJpbnRlclwiXSA9IFwicHJpbnRlclwiO1xuICAgIC8vIFxuICAgIFBhZ2VPcmllbnRhdGlvbltcIk9yaWVudGF0aW9uUG9ydHJhaXRcIl0gPSBcInBvcnRyYWl0XCI7XG4gICAgLy8gXG4gICAgUGFnZU9yaWVudGF0aW9uW1wiT3JpZW50YXRpb25MYW5kc2NhcGVcIl0gPSBcImxhbmRzY2FwZVwiO1xufSkoUGFnZU9yaWVudGF0aW9uID0gZXhwb3J0cy5QYWdlT3JpZW50YXRpb24gfHwgKGV4cG9ydHMuUGFnZU9yaWVudGF0aW9uID0ge30pKTtcbi8vIEluZGljYXRlcyB0aGUgbWFubmVyIG9mIHNjYWxpbmcgb2YgcGFnZSBmb3IgYSBzaGVldFxudmFyIFNjYWxlTW9kZTtcbihmdW5jdGlvbiAoU2NhbGVNb2RlKSB7XG4gICAgLy8gXG4gICAgU2NhbGVNb2RlW1wiU2NhbGVBdXRvXCJdID0gXCJhdXRvXCI7XG4gICAgLy8gXG4gICAgU2NhbGVNb2RlW1wiU2NhbGVQZXJjZW50YWdlXCJdID0gXCJwZXJjZW50XCI7XG4gICAgLy8gXG4gICAgU2NhbGVNb2RlW1wiU2NhbGVGaXRQYWdlc1wiXSA9IFwiZml0LXBhZ2VzXCI7XG59KShTY2FsZU1vZGUgPSBleHBvcnRzLlNjYWxlTW9kZSB8fCAoZXhwb3J0cy5TY2FsZU1vZGUgPSB7fSkpO1xuLy8gSW5kaWNhdGVzIHRoZSBkZWZhdWx0L3NlbGVjdGFibGUgc2NhbGluZyBvZiBwYWdlIGZvciBhIHNoZWV0XG52YXIgUGFnZVNjYWxpbmdPcHRpb247XG4oZnVuY3Rpb24gKFBhZ2VTY2FsaW5nT3B0aW9uKSB7XG4gICAgLy8gXG4gICAgUGFnZVNjYWxpbmdPcHRpb25bXCJTY2FsZVBjdEF1dG9cIl0gPSBcImF1dG9cIjtcbiAgICAvLyBcbiAgICBQYWdlU2NhbGluZ09wdGlvbltcIlNjYWxlUGN0NDAwXCJdID0gXCJwY3Q0MDBcIjtcbiAgICAvLyBcbiAgICBQYWdlU2NhbGluZ09wdGlvbltcIlNjYWxlUGN0MjAwXCJdID0gXCJwY3QyMDBcIjtcbiAgICAvLyBcbiAgICBQYWdlU2NhbGluZ09wdGlvbltcIlNjYWxlUGN0MTAwXCJdID0gXCJwY3QxMDBcIjtcbiAgICAvLyBcbiAgICBQYWdlU2NhbGluZ09wdGlvbltcIlNjYWxlUGN0OTBcIl0gPSBcInBjdDkwXCI7XG4gICAgLy8gXG4gICAgUGFnZVNjYWxpbmdPcHRpb25bXCJTY2FsZVBjdDgwXCJdID0gXCJwY3Q4MFwiO1xuICAgIC8vIFxuICAgIFBhZ2VTY2FsaW5nT3B0aW9uW1wiU2NhbGVQY3Q3NVwiXSA9IFwicGN0NzVcIjtcbiAgICAvLyBcbiAgICBQYWdlU2NhbGluZ09wdGlvbltcIlNjYWxlUGN0NjBcIl0gPSBcInBjdDYwXCI7XG4gICAgLy8gXG4gICAgUGFnZVNjYWxpbmdPcHRpb25bXCJTY2FsZVBjdDUwXCJdID0gXCJwY3Q1MFwiO1xuICAgIC8vIFxuICAgIFBhZ2VTY2FsaW5nT3B0aW9uW1wiU2NhbGVQY3QyNVwiXSA9IFwicGN0MjVcIjtcbn0pKFBhZ2VTY2FsaW5nT3B0aW9uID0gZXhwb3J0cy5QYWdlU2NhbGluZ09wdGlvbiB8fCAoZXhwb3J0cy5QYWdlU2NhbGluZ09wdGlvbiA9IHt9KSk7XG4vLyBcbnZhciBTaGVldFJhbmdlO1xuKGZ1bmN0aW9uIChTaGVldFJhbmdlKSB7XG4gICAgLy8gXG4gICAgU2hlZXRSYW5nZVtcIlNoZWV0UmFuZ2VBbGxcIl0gPSBcImFsbFwiO1xuICAgIC8vIFxuICAgIFNoZWV0UmFuZ2VbXCJTaGVldFJhbmdlQWN0aXZlXCJdID0gXCJhY3RpdmVcIjtcbiAgICAvLyBcbiAgICBTaGVldFJhbmdlW1wiU2hlZXRSYW5nZVNlbGVjdGVkXCJdID0gXCJzZWxlY3RlZFwiO1xufSkoU2hlZXRSYW5nZSA9IGV4cG9ydHMuU2hlZXRSYW5nZSB8fCAoZXhwb3J0cy5TaGVldFJhbmdlID0ge30pKTtcbi8vIHNoZWV0IHR5cGVcbnZhciBTaGVldFR5cGU7XG4oZnVuY3Rpb24gKFNoZWV0VHlwZSkge1xuICAgIC8vIFxuICAgIFNoZWV0VHlwZVtcIlRZUEVfV09SS1NIRUVUXCJdID0gXCJ3b3Jrc2hlZXRcIjtcbiAgICAvLyBcbiAgICBTaGVldFR5cGVbXCJUWVBFX0RBU0hCT0FSRFwiXSA9IFwiZGFzaGJvYXJkXCI7XG4gICAgLy8gXG4gICAgU2hlZXRUeXBlW1wiVFlQRV9TVE9SWVwiXSA9IFwic3RvcnlcIjtcbn0pKFNoZWV0VHlwZSA9IGV4cG9ydHMuU2hlZXRUeXBlIHx8IChleHBvcnRzLlNoZWV0VHlwZSA9IHt9KSk7XG4vLyBhIGRhc2hib2FyZCBpbWFnZSBtZXRyaWMncyB0eXBlXG52YXIgQ2xpZW50VUlNZXRyaWNUeXBlO1xuKGZ1bmN0aW9uIChDbGllbnRVSU1ldHJpY1R5cGUpIHtcbiAgICAvLyBcbiAgICBDbGllbnRVSU1ldHJpY1R5cGVbXCJVSU1UX1Njcm9sbGJhck1ldHJpY1wiXSA9IFwic2Nyb2xsYmFyLW1ldHJpY1wiO1xuICAgIC8vIFxuICAgIENsaWVudFVJTWV0cmljVHlwZVtcIlVJTVRfUUZpbHRlckZpeGVkTWV0cmljXCJdID0gXCJxLWZpbHRlci1maXhlZC1tZXRyaWNcIjtcbiAgICAvLyBcbiAgICBDbGllbnRVSU1ldHJpY1R5cGVbXCJVSU1UX1FGaWx0ZXJTbGlkZXJNZXRyaWNcIl0gPSBcInEtZmlsdGVyLXNsaWRlci1tZXRyaWNcIjtcbiAgICAvLyBcbiAgICBDbGllbnRVSU1ldHJpY1R5cGVbXCJVSU1UX1FGaWx0ZXJSZWFkb3V0TWV0cmljXCJdID0gXCJxLWZpbHRlci1yZWFkb3V0LW1ldHJpY1wiO1xuICAgIC8vIFxuICAgIENsaWVudFVJTWV0cmljVHlwZVtcIlVJTVRfQ0ZpbHRlckZpeGVkTWV0cmljXCJdID0gXCJjLWZpbHRlci1maXhlZC1tZXRyaWNcIjtcbiAgICAvLyBtaW5pbXVtIGNoZWNrL3JhZGlvbGlzdCBpdGVtIHNpemVcbiAgICBDbGllbnRVSU1ldHJpY1R5cGVbXCJVSU1UX0NGaWx0ZXJJdGVtTWV0cmljXCJdID0gXCJjLWZpbHRlci1pdGVtLW1ldHJpY1wiO1xuICAgIC8vIFxuICAgIENsaWVudFVJTWV0cmljVHlwZVtcIlVJTVRfSEZpbHRlckZpeGVkTWV0cmljXCJdID0gXCJoLWZpbHRlci1maXhlZC1tZXRyaWNcIjtcbiAgICAvLyBtaW5pbXVtIGhpZXJhcmNoaWNhbCBpdGVtIHNpemVcbiAgICBDbGllbnRVSU1ldHJpY1R5cGVbXCJVSU1UX0hGaWx0ZXJJdGVtTWV0cmljXCJdID0gXCJoLWZpbHRlci1pdGVtLW1ldHJpY1wiO1xuICAgIC8vIFxuICAgIENsaWVudFVJTWV0cmljVHlwZVtcIlVJTVRfQ21TbGlkZXJGaWx0ZXJNZXRyaWNcIl0gPSBcImNtLXNsaWRlci1maWx0ZXItbWV0cmljXCI7XG4gICAgLy8gXG4gICAgQ2xpZW50VUlNZXRyaWNUeXBlW1wiVUlNVF9DbURyb3Bkb3duRmlsdGVyTWV0cmljXCJdID0gXCJjbS1kcm9wZG93bi1maWx0ZXItbWV0cmljXCI7XG4gICAgLy8gXG4gICAgQ2xpZW50VUlNZXRyaWNUeXBlW1wiVUlNVF9DbVBhdHRlcm5GaWx0ZXJNZXRyaWNcIl0gPSBcImNtLXBhdHRlcm4tZmlsdGVyLW1ldHJpY1wiO1xuICAgIC8vIFxuICAgIENsaWVudFVJTWV0cmljVHlwZVtcIlVJTVRfUkRhdGVGaWx0ZXJNZXRyaWNcIl0gPSBcInItZGF0ZS1maWx0ZXItbWV0cmljXCI7XG4gICAgLy8gXG4gICAgQ2xpZW50VUlNZXRyaWNUeXBlW1wiVUlNVF9SRGF0ZVBGaWx0ZXJNZXRyaWNcIl0gPSBcInItZGF0ZS1wLWZpbHRlci1tZXRyaWNcIjtcbiAgICAvLyBcbiAgICBDbGllbnRVSU1ldHJpY1R5cGVbXCJVSU1UX1BhcmFtVHlwZUluTWV0cmljXCJdID0gXCJwYXJhbS10eXBlLWluLW1ldHJpY1wiO1xuICAgIC8vIFxuICAgIENsaWVudFVJTWV0cmljVHlwZVtcIlVJTVRfUGFyYW1Db21wYWN0TGlzdE1ldHJpY1wiXSA9IFwicGFyYW0tY29tcGFjdC1saXN0LW1ldHJpY1wiO1xuICAgIC8vIFxuICAgIENsaWVudFVJTWV0cmljVHlwZVtcIlVJTVRfUGFyYW1MaXN0TWV0cmljXCJdID0gXCJwYXJhbS1saXN0LW1ldHJpY1wiO1xuICAgIC8vIFxuICAgIENsaWVudFVJTWV0cmljVHlwZVtcIlVJTVRfUGFyYW1TbGlkZXJNZXRyaWNcIl0gPSBcInBhcmFtLXNsaWRlci1tZXRyaWNcIjtcbiAgICAvLyBcbiAgICBDbGllbnRVSU1ldHJpY1R5cGVbXCJVSU1UX1BhcmFtRGF0ZVRpbWVNZXRyaWNcIl0gPSBcInBhcmFtLWRhdGUtdGltZS1tZXRyaWNcIjtcbiAgICAvLyBcbiAgICBDbGllbnRVSU1ldHJpY1R5cGVbXCJVSU1UX0NGaWx0ZXJBcHBseU1ldHJpY1wiXSA9IFwiYy1maWx0ZXItYXBwbHktbWV0cmljXCI7XG4gICAgLy8gXG4gICAgQ2xpZW50VUlNZXRyaWNUeXBlW1wiVUlNVF9DbVR5cGVJblNlYXJjaE1ldHJpY1wiXSA9IFwiY20tdHlwZS1pbi1zZWFyY2gtbWV0cmljXCI7XG4gICAgLy8gbWluaW11bSBjdXN0b20gbGlzdCBpdGVtIHNpemVcbiAgICBDbGllbnRVSU1ldHJpY1R5cGVbXCJVSU1UX0NGaWx0ZXJDdXN0b21JdGVtTWV0cmljXCJdID0gXCJjLWZpbHRlci1jdXN0b20taXRlbS1tZXRyaWNcIjtcbn0pKENsaWVudFVJTWV0cmljVHlwZSA9IGV4cG9ydHMuQ2xpZW50VUlNZXRyaWNUeXBlIHx8IChleHBvcnRzLkNsaWVudFVJTWV0cmljVHlwZSA9IHt9KSk7XG4vLyBhIHJlZ2lvbiBvZiBhIHZpeiB3aGVyZSBzb3J0IGluZGljYXRvcnMgbWF5IGFwcGVhclxudmFyIFNvcnRSZWdpb25UeXBlO1xuKGZ1bmN0aW9uIChTb3J0UmVnaW9uVHlwZSkge1xuICAgIC8vIFxuICAgIFNvcnRSZWdpb25UeXBlW1wiU1JUX0xBQkVMU19YXCJdID0gXCJ4aGVhZGVyXCI7XG4gICAgLy8gXG4gICAgU29ydFJlZ2lvblR5cGVbXCJTUlRfTEFCRUxTX1lcIl0gPSBcInloZWFkZXJcIjtcbiAgICAvLyBcbiAgICBTb3J0UmVnaW9uVHlwZVtcIlNSVF9MQUJFTFNfRklFTERcIl0gPSBcInVsZWZ0XCI7XG4gICAgLy8gXG4gICAgU29ydFJlZ2lvblR5cGVbXCJTUlRfQVhJU19MRUZUXCJdID0gXCJsZWZ0YXhpc1wiO1xuICAgIC8vIFxuICAgIFNvcnRSZWdpb25UeXBlW1wiU1JUX0FYSVNfQk9UVE9NXCJdID0gXCJib3R0b21heGlzXCI7XG4gICAgLy8gXG4gICAgU29ydFJlZ2lvblR5cGVbXCJTUlRfQVhJU19SSUdIVFwiXSA9IFwicmlnaHRheGlzXCI7XG4gICAgLy8gXG4gICAgU29ydFJlZ2lvblR5cGVbXCJTUlRfQVhJU19UT1BcIl0gPSBcInRvcGF4aXNcIjtcbn0pKFNvcnRSZWdpb25UeXBlID0gZXhwb3J0cy5Tb3J0UmVnaW9uVHlwZSB8fCAoZXhwb3J0cy5Tb3J0UmVnaW9uVHlwZSA9IHt9KSk7XG4vLyBcbnZhciBRdEN1cnNvclNoYXBlO1xuKGZ1bmN0aW9uIChRdEN1cnNvclNoYXBlKSB7XG4gICAgLy8gXG4gICAgUXRDdXJzb3JTaGFwZVtcIkFycm93Q3Vyc29yXCJdID0gXCJhcnJvd1wiO1xuICAgIC8vIFxuICAgIFF0Q3Vyc29yU2hhcGVbXCJVcEFycm93Q3Vyc29yXCJdID0gXCJ1cC1hcnJvd1wiO1xuICAgIC8vIFxuICAgIFF0Q3Vyc29yU2hhcGVbXCJDcm9zc0N1cnNvclwiXSA9IFwiY3Jvc3NcIjtcbiAgICAvLyBcbiAgICBRdEN1cnNvclNoYXBlW1wiV2FpdEN1cnNvclwiXSA9IFwid2FpdFwiO1xuICAgIC8vIFxuICAgIFF0Q3Vyc29yU2hhcGVbXCJJQmVhbUN1cnNvclwiXSA9IFwiaWJlYW1cIjtcbiAgICAvLyBcbiAgICBRdEN1cnNvclNoYXBlW1wiU2l6ZVZlckN1cnNvclwiXSA9IFwic2l6ZS12ZXJcIjtcbiAgICAvLyBcbiAgICBRdEN1cnNvclNoYXBlW1wiU2l6ZUhvckN1cnNvclwiXSA9IFwic2l6ZS1ob3JcIjtcbiAgICAvLyBcbiAgICBRdEN1cnNvclNoYXBlW1wiU2l6ZUJEaWFnQ3Vyc29yXCJdID0gXCJzaXplLWJkaWFnXCI7XG4gICAgLy8gXG4gICAgUXRDdXJzb3JTaGFwZVtcIlNpemVGRGlhZ0N1cnNvclwiXSA9IFwic2l6ZS1mZGlhZ1wiO1xuICAgIC8vIFxuICAgIFF0Q3Vyc29yU2hhcGVbXCJTaXplQWxsQ3Vyc29yXCJdID0gXCJzaXplLWFsbFwiO1xuICAgIC8vIFxuICAgIFF0Q3Vyc29yU2hhcGVbXCJCbGFua0N1cnNvclwiXSA9IFwiYmxhbmtcIjtcbiAgICAvLyBcbiAgICBRdEN1cnNvclNoYXBlW1wiU3BsaXRWQ3Vyc29yXCJdID0gXCJzcGxpdC12XCI7XG4gICAgLy8gXG4gICAgUXRDdXJzb3JTaGFwZVtcIlNwbGl0SEN1cnNvclwiXSA9IFwic3BsaXQtaFwiO1xuICAgIC8vIFxuICAgIFF0Q3Vyc29yU2hhcGVbXCJQb2ludGluZ0hhbmRDdXJzb3JcIl0gPSBcInBvaW50aW5nLWhhbmRcIjtcbiAgICAvLyBcbiAgICBRdEN1cnNvclNoYXBlW1wiRm9yYmlkZGVuQ3Vyc29yXCJdID0gXCJmb3JiaWRkZW5cIjtcbiAgICAvLyBcbiAgICBRdEN1cnNvclNoYXBlW1wiV2hhdHNUaGlzQ3Vyc29yXCJdID0gXCJ3aGF0cy10aGlzXCI7XG4gICAgLy8gXG4gICAgUXRDdXJzb3JTaGFwZVtcIkJ1c3lDdXJzb3JcIl0gPSBcImJ1c3lcIjtcbiAgICAvLyBcbiAgICBRdEN1cnNvclNoYXBlW1wiT3BlbkhhbmRDdXJzb3JcIl0gPSBcIm9wZW4taGFuZFwiO1xuICAgIC8vIFxuICAgIFF0Q3Vyc29yU2hhcGVbXCJDbG9zZWRIYW5kQ3Vyc29yXCJdID0gXCJjbG9zZWQtaGFuZFwiO1xuICAgIC8vIFxuICAgIFF0Q3Vyc29yU2hhcGVbXCJEcmFnQ29weUN1cnNvclwiXSA9IFwiZHJhZy1jb3B5XCI7XG4gICAgLy8gXG4gICAgUXRDdXJzb3JTaGFwZVtcIkRyYWdNb3ZlQ3Vyc29yXCJdID0gXCJkcmFnLW1vdmVcIjtcbiAgICAvLyBcbiAgICBRdEN1cnNvclNoYXBlW1wiRHJhZ0xpbmtDdXJzb3JcIl0gPSBcImRyYWctbGlua1wiO1xufSkoUXRDdXJzb3JTaGFwZSA9IGV4cG9ydHMuUXRDdXJzb3JTaGFwZSB8fCAoZXhwb3J0cy5RdEN1cnNvclNoYXBlID0ge30pKTtcbi8vIHNwZWNpZmllcyB2YXJpb3VzIGNvbXBvbmVudHMgb2YgYSB2aXogdGhhdCBhcmUgcmVuZGVyZWQgYXMgaW1hZ2VzXG52YXIgVml6SW1hZ2VSZWdpb247XG4oZnVuY3Rpb24gKFZpekltYWdlUmVnaW9uKSB7XG4gICAgLy8gdGhlIG1haW4gdml6IGFyZWFcbiAgICBWaXpJbWFnZVJlZ2lvbltcIlZJWl9SRUdJT05fVEFCTEVcIl0gPSBcInZpelwiO1xuICAgIC8vIHkgYXhpcyBpdGVtc1xuICAgIFZpekltYWdlUmVnaW9uW1wiVklaX1JFR0lPTl9ST1dIRUFERVJTXCJdID0gXCJ5aGVhZGVyXCI7XG4gICAgLy8gXG4gICAgVml6SW1hZ2VSZWdpb25bXCJWSVpfUkVHSU9OX0xFRlRBWElTXCJdID0gXCJsZWZ0YXhpc1wiO1xuICAgIC8vIFxuICAgIFZpekltYWdlUmVnaW9uW1wiVklaX1JFR0lPTl9SSUdIVEFYSVNcIl0gPSBcInJpZ2h0YXhpc1wiO1xuICAgIC8vIHggYXhpcyBpdGVtc1xuICAgIFZpekltYWdlUmVnaW9uW1wiVklaX1JFR0lPTl9DT0xVTU5IRUFERVJTXCJdID0gXCJ4aGVhZGVyXCI7XG4gICAgLy8gXG4gICAgVml6SW1hZ2VSZWdpb25bXCJWSVpfUkVHSU9OX0JPVFRPTUFYSVNcIl0gPSBcImJvdHRvbWF4aXNcIjtcbiAgICAvLyBcbiAgICBWaXpJbWFnZVJlZ2lvbltcIlZJWl9SRUdJT05fVE9QQVhJU1wiXSA9IFwidG9wYXhpc1wiO1xuICAgIC8vIHNwYWNpbmcgYXJlYXNcbiAgICBWaXpJbWFnZVJlZ2lvbltcIlZJWl9SRUdJT05fVVBQRVJMRUZUXCJdID0gXCJ1bGVmdFwiO1xuICAgIC8vIFxuICAgIFZpekltYWdlUmVnaW9uW1wiVklaX1JFR0lPTl9VUFBFUlJJR0hUXCJdID0gXCJ1cmlnaHRcIjtcbiAgICAvLyBcbiAgICBWaXpJbWFnZVJlZ2lvbltcIlZJWl9SRUdJT05fTE9XRVJMRUZUXCJdID0gXCJsbGVmdFwiO1xuICAgIC8vIFxuICAgIFZpekltYWdlUmVnaW9uW1wiVklaX1JFR0lPTl9MT1dFUlJJR0hUXCJdID0gXCJscmlnaHRcIjtcbiAgICAvLyBsYWJlbGxpbmcgYXJlYXNcbiAgICBWaXpJbWFnZVJlZ2lvbltcIlZJWl9SRUdJT05fVElUTEVcIl0gPSBcInRpdGxlXCI7XG4gICAgLy8gXG4gICAgVml6SW1hZ2VSZWdpb25bXCJWSVpfUkVHSU9OX0NBUFRJT05cIl0gPSBcImNhcHRpb25cIjtcbiAgICAvLyBsZWdlbmQgYXJlYXNcbiAgICBWaXpJbWFnZVJlZ2lvbltcIlZJWl9SRUdJT05fQ09MT1JMRUdFTkRcIl0gPSBcImNvbG9yXCI7XG4gICAgLy8gXG4gICAgVml6SW1hZ2VSZWdpb25bXCJWSVpfUkVHSU9OX1NIQVBFTEVHRU5EXCJdID0gXCJzaGFwZVwiO1xuICAgIC8vIFxuICAgIFZpekltYWdlUmVnaW9uW1wiVklaX1JFR0lPTl9TSVpFTEVHRU5EXCJdID0gXCJzaXplXCI7XG4gICAgLy8gXG4gICAgVml6SW1hZ2VSZWdpb25bXCJWSVpfUkVHSU9OX0hJR0hMSUdIVExFR0VORFwiXSA9IFwiaGlnaGxpZ2h0LWxlZ2VuZFwiO1xuICAgIC8vIFxuICAgIFZpekltYWdlUmVnaW9uW1wiVklaX1JFR0lPTl9NQVBMRUdFTkRcIl0gPSBcIm1hcFwiO1xuICAgIC8vIGxlZ2VuZCB0aXRsZXNcbiAgICBWaXpJbWFnZVJlZ2lvbltcIlZJWl9SRUdJT05fQ09MT1JMRUdFTkRUSVRMRVwiXSA9IFwiY29sb3ItdGl0bGVcIjtcbiAgICAvLyBcbiAgICBWaXpJbWFnZVJlZ2lvbltcIlZJWl9SRUdJT05fU0hBUEVMRUdFTkRUSVRMRVwiXSA9IFwic2hhcGUtdGl0bGVcIjtcbiAgICAvLyBcbiAgICBWaXpJbWFnZVJlZ2lvbltcIlZJWl9SRUdJT05fU0laRUxFR0VORFRJVExFXCJdID0gXCJzaXplLXRpdGxlXCI7XG4gICAgLy8gXG4gICAgVml6SW1hZ2VSZWdpb25bXCJWSVpfUkVHSU9OX0hJR0hMSUdIVExFR0VORFRJVExFXCJdID0gXCJoaWdobGlnaHQtbGVnZW5kLXRpdGxlXCI7XG4gICAgLy8gXG4gICAgVml6SW1hZ2VSZWdpb25bXCJWSVpfUkVHSU9OX01BUExFR0VORFRJVExFXCJdID0gXCJtYXAtdGl0bGVcIjtcbiAgICAvLyBsZWdlbmQgYm9kaWVzXG4gICAgVml6SW1hZ2VSZWdpb25bXCJWSVpfUkVHSU9OX0NPTE9STEVHRU5EQk9EWVwiXSA9IFwiY29sb3ItYm9keVwiO1xuICAgIC8vIFxuICAgIFZpekltYWdlUmVnaW9uW1wiVklaX1JFR0lPTl9TSEFQRUxFR0VOREJPRFlcIl0gPSBcInNoYXBlLWJvZHlcIjtcbiAgICAvLyBcbiAgICBWaXpJbWFnZVJlZ2lvbltcIlZJWl9SRUdJT05fU0laRUxFR0VOREJPRFlcIl0gPSBcInNpemUtYm9keVwiO1xuICAgIC8vIFxuICAgIFZpekltYWdlUmVnaW9uW1wiVklaX1JFR0lPTl9ISUdITElHSFRMRUdFTkRCT0RZXCJdID0gXCJoaWdobGlnaHQtbGVnZW5kLWJvZHlcIjtcbiAgICAvLyBcbiAgICBWaXpJbWFnZVJlZ2lvbltcIlZJWl9SRUdJT05fTUFQTEVHRU5EQk9EWVwiXSA9IFwibWFwLWJvZHlcIjtcbiAgICAvLyBUaGVzZSBhcmUgcmVnaW9uIG5hbWVzIChyYW5nZXMgb2Ygb3RoZXIgZW51bXMpXG4gICAgVml6SW1hZ2VSZWdpb25bXCJWSVpfUkVHSU9OX0VORFwiXSA9IFwiZW5kXCI7XG59KShWaXpJbWFnZVJlZ2lvbiA9IGV4cG9ydHMuVml6SW1hZ2VSZWdpb24gfHwgKGV4cG9ydHMuVml6SW1hZ2VSZWdpb24gPSB7fSkpO1xuLy8gbmFtZXMgb2YgbGVnYWN5IG1lbnUgaXRlbXNcbnZhciBMZWdhY3lNZW51TmFtZTtcbihmdW5jdGlvbiAoTGVnYWN5TWVudU5hbWUpIHtcbiAgICAvLyB2aWV3IHVuZGVybHlpbmcgZGF0YVxuICAgIExlZ2FjeU1lbnVOYW1lW1wiTE1fTkFNRV9WSUVXREFUQVwiXSA9IFwidmlld2RhdGFcIjtcbiAgICAvLyBleHBvcnQgaW1hZ2VcbiAgICBMZWdhY3lNZW51TmFtZVtcIkxNX05BTUVfRVhQT1JUSU1BR0VcIl0gPSBcImV4cG9ydGltYWdlXCI7XG4gICAgLy8gZXhwb3J0IGRhdGFcbiAgICBMZWdhY3lNZW51TmFtZVtcIkxNX05BTUVfRVhQT1JUREFUQVwiXSA9IFwiZXhwb3J0ZGF0YVwiO1xuICAgIC8vIGV4cG9ydCBhcyBjcm9zc3RhYlxuICAgIExlZ2FjeU1lbnVOYW1lW1wiTE1fTkFNRV9FWFBPUlRDUk9TU1RBQlwiXSA9IFwiZXhwb3J0Y3Jvc3N0YWJcIjtcbiAgICAvLyBwcmludCB0byBwZGZcbiAgICBMZWdhY3lNZW51TmFtZVtcIkxNX05BTUVfUFJJTlRcIl0gPSBcInByaW50XCI7XG59KShMZWdhY3lNZW51TmFtZSA9IGV4cG9ydHMuTGVnYWN5TWVudU5hbWUgfHwgKGV4cG9ydHMuTGVnYWN5TWVudU5hbWUgPSB7fSkpO1xuLy8gc3RhdGVzIG9mIGxlZ2FjeSBtZW51IGl0ZW1zXG52YXIgTGVnYWN5TWVudVN0YXRlO1xuKGZ1bmN0aW9uIChMZWdhY3lNZW51U3RhdGUpIHtcbiAgICAvLyB2aXNpYmxlIHN0YXRlXG4gICAgTGVnYWN5TWVudVN0YXRlW1wiTE1fU1RBVEVfVklTSUJMRVwiXSA9IFwidmlzaWJsZVwiO1xuICAgIC8vIGNoZWNrZWQgc3RhdGVcbiAgICBMZWdhY3lNZW51U3RhdGVbXCJMTV9TVEFURV9DSEVDS0VEXCJdID0gXCJjaGVja2VkXCI7XG4gICAgLy8gZ3JheWVkIHN0YXRlXG4gICAgTGVnYWN5TWVudVN0YXRlW1wiTE1fU1RBVEVfR1JBWUVEXCJdID0gXCJncmF5ZWRcIjtcbiAgICAvLyByYWRpbyBzdGF0ZVxuICAgIExlZ2FjeU1lbnVTdGF0ZVtcIkxNX1NUQVRFX1JBRElPXCJdID0gXCJyYWRpb1wiO1xufSkoTGVnYWN5TWVudVN0YXRlID0gZXhwb3J0cy5MZWdhY3lNZW51U3RhdGUgfHwgKGV4cG9ydHMuTGVnYWN5TWVudVN0YXRlID0ge30pKTtcbi8vIFxudmFyIE1lbWJlclVuaXF1ZW5lc3NUeXBlO1xuKGZ1bmN0aW9uIChNZW1iZXJVbmlxdWVuZXNzVHlwZSkge1xuICAgIC8vIFxuICAgIE1lbWJlclVuaXF1ZW5lc3NUeXBlW1wiVW5pcXVlV2l0aGluQ3ViZVwiXSA9IFwiY3ViZS11bmlxdWVcIjtcbiAgICAvLyBcbiAgICBNZW1iZXJVbmlxdWVuZXNzVHlwZVtcIlVuaXF1ZVdpdGhpbkhpZXJhcmNoeVwiXSA9IFwiaGllcmFyY2h5LXVuaXF1ZVwiO1xuICAgIC8vIFxuICAgIE1lbWJlclVuaXF1ZW5lc3NUeXBlW1wiVW5pcXVlV2l0aGluTGV2ZWxcIl0gPSBcImxldmVsLXVuaXF1ZVwiO1xuICAgIC8vIFxuICAgIE1lbWJlclVuaXF1ZW5lc3NUeXBlW1wiVW5pcXVlV2l0aGluUGFyZW50XCJdID0gXCJwYXJlbnQtdW5pcXVlXCI7XG59KShNZW1iZXJVbmlxdWVuZXNzVHlwZSA9IGV4cG9ydHMuTWVtYmVyVW5pcXVlbmVzc1R5cGUgfHwgKGV4cG9ydHMuTWVtYmVyVW5pcXVlbmVzc1R5cGUgPSB7fSkpO1xuLy8gXG52YXIgRGltZW5zaW9uVHlwZTtcbihmdW5jdGlvbiAoRGltZW5zaW9uVHlwZSkge1xuICAgIC8vIGp1c3QgYSByZWd1bGFyIGRpbWVuc2lvbiwgbm8gc3BlY2lhbCBzZW1hbnRpY3NcbiAgICBEaW1lbnNpb25UeXBlW1wiUmVndWxhckRpbWVuc2lvblwiXSA9IFwicmVndWxhci1kaW1lbnNpb25cIjtcbiAgICAvLyB0aGUgbWVhc3VyZXMgZGltZW5zaW9uLCB3aGljaCB3ZSBkb24ndCBtb2RlbCBhcyBzdWNoXG4gICAgRGltZW5zaW9uVHlwZVtcIk1lYXN1cmVEaW1lbnNpb25cIl0gPSBcIm1lYXN1cmUtZGltZW5zaW9uXCI7XG4gICAgLy8gYSB0aW1lIGRpbWVuc2lvblxuICAgIERpbWVuc2lvblR5cGVbXCJUaW1lRGltZW5zaW9uXCJdID0gXCJ0aW1lLWRpbWVuc2lvblwiO1xufSkoRGltZW5zaW9uVHlwZSA9IGV4cG9ydHMuRGltZW5zaW9uVHlwZSB8fCAoZXhwb3J0cy5EaW1lbnNpb25UeXBlID0ge30pKTtcbi8vIFxudmFyIFNjaGVtYVZpZXdlckRhdGFTb3VyY2VUeXBlO1xuKGZ1bmN0aW9uIChTY2hlbWFWaWV3ZXJEYXRhU291cmNlVHlwZSkge1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckRhdGFTb3VyY2VUeXBlW1wiU1ZUX0RTX05PUk1BTFwiXSA9IFwiZGF0YXNvdXJjZVwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckRhdGFTb3VyY2VUeXBlW1wiU1ZUX0RTX05PUk1BTF9QUklNQVJZXCJdID0gXCJkYXRhc291cmNlLXByaW1hcnlcIjtcbiAgICAvLyBcbiAgICBTY2hlbWFWaWV3ZXJEYXRhU291cmNlVHlwZVtcIlNWVF9EU19OT1JNQUxfU0VDT05EQVJZXCJdID0gXCJkYXRhc291cmNlLXNlY29uZGFyeVwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckRhdGFTb3VyY2VUeXBlW1wiU1ZUX0RTX0VYVFJBQ1RcIl0gPSBcImV4dHJhY3RcIjtcbiAgICAvLyBcbiAgICBTY2hlbWFWaWV3ZXJEYXRhU291cmNlVHlwZVtcIlNWVF9EU19FWFRSQUNUX1BSSU1BUllcIl0gPSBcImV4dHJhY3QtcHJpbWFyeVwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckRhdGFTb3VyY2VUeXBlW1wiU1ZUX0RTX0VYVFJBQ1RfU0VDT05EQVJZXCJdID0gXCJleHRyYWN0LXNlY29uZGFyeVwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckRhdGFTb3VyY2VUeXBlW1wiU1ZUX0RTX0NVQkVcIl0gPSBcImN1YmVcIjtcbiAgICAvLyBcbiAgICBTY2hlbWFWaWV3ZXJEYXRhU291cmNlVHlwZVtcIlNWVF9EU19DVUJFX1BSSU1BUllcIl0gPSBcImN1YmUtcHJpbWFyeVwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckRhdGFTb3VyY2VUeXBlW1wiU1ZUX0RTX0NVQkVfU0VDT05EQVJZXCJdID0gXCJjdWJlLXNlY29uZGFyeVwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckRhdGFTb3VyY2VUeXBlW1wiU1ZUX0RTX1NFUlZFUlwiXSA9IFwic2VydmVyXCI7XG4gICAgLy8gXG4gICAgU2NoZW1hVmlld2VyRGF0YVNvdXJjZVR5cGVbXCJTVlRfRFNfU0VSVkVSX1BSSU1BUllcIl0gPSBcInNlcnZlci1wcmltYXJ5XCI7XG4gICAgLy8gXG4gICAgU2NoZW1hVmlld2VyRGF0YVNvdXJjZVR5cGVbXCJTVlRfRFNfU0VSVkVSX1NFQ09OREFSWVwiXSA9IFwic2VydmVyLXNlY29uZGFyeVwiO1xufSkoU2NoZW1hVmlld2VyRGF0YVNvdXJjZVR5cGUgPSBleHBvcnRzLlNjaGVtYVZpZXdlckRhdGFTb3VyY2VUeXBlIHx8IChleHBvcnRzLlNjaGVtYVZpZXdlckRhdGFTb3VyY2VUeXBlID0ge30pKTtcbi8vIFxudmFyIFNjaGVtYUl0ZW1UeXBlO1xuKGZ1bmN0aW9uIChTY2hlbWFJdGVtVHlwZSkge1xuICAgIC8vIFxuICAgIFNjaGVtYUl0ZW1UeXBlW1wiSVRfRElNRU5TSU9OXCJdID0gXCJkaW1lbnNpb25cIjtcbiAgICAvLyBcbiAgICBTY2hlbWFJdGVtVHlwZVtcIklUX0hJRVJBUkNIWVwiXSA9IFwiaGllcmFyY2h5XCI7XG4gICAgLy8gXG4gICAgU2NoZW1hSXRlbVR5cGVbXCJJVF9MRVZFTFwiXSA9IFwibGV2ZWxcIjtcbiAgICAvLyBcbiAgICBTY2hlbWFJdGVtVHlwZVtcIklUX0NBVEVHT1JJQ0FMXCJdID0gXCJjYXRlZ29yaWNhbFwiO1xuICAgIC8vIFxuICAgIFNjaGVtYUl0ZW1UeXBlW1wiSVRfTUVBU1VSRVwiXSA9IFwibWVhc3VyZVwiO1xuICAgIC8vIFxuICAgIFNjaGVtYUl0ZW1UeXBlW1wiSVRfVkFMVUVcIl0gPSBcInZhbHVlXCI7XG4gICAgLy8gXG4gICAgU2NoZW1hSXRlbVR5cGVbXCJJVF9HUk9VUFwiXSA9IFwiZ3JvdXBcIjtcbiAgICAvLyBcbiAgICBTY2hlbWFJdGVtVHlwZVtcIklUX0ZPTERFUlwiXSA9IFwiZm9sZGVyXCI7XG4gICAgLy8gXG4gICAgU2NoZW1hSXRlbVR5cGVbXCJJVF9UQUJMRVwiXSA9IFwidGFibGVcIjtcbiAgICAvLyBcbiAgICBTY2hlbWFJdGVtVHlwZVtcIklUX0RSSUxMUEFUSFwiXSA9IFwiZHJpbGxwYXRoXCI7XG4gICAgLy8gXG4gICAgU2NoZW1hSXRlbVR5cGVbXCJJVF9QQVJBTUVURVJcIl0gPSBcInBhcmFtZXRlclwiO1xuICAgIC8vIFxuICAgIFNjaGVtYUl0ZW1UeXBlW1wiSVRfSEVBREVSXCJdID0gXCJoZWFkZXJcIjtcbn0pKFNjaGVtYUl0ZW1UeXBlID0gZXhwb3J0cy5TY2hlbWFJdGVtVHlwZSB8fCAoZXhwb3J0cy5TY2hlbWFJdGVtVHlwZSA9IHt9KSk7XG4vLyBcbnZhciBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGU7XG4oZnVuY3Rpb24gKFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZSkge1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZVtcIlNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9CTEFOS1wiXSA9IFwiYmxhbmtcIjtcbiAgICAvLyBcbiAgICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVbXCJTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfUkVMQVRJT05BTFwiXSA9IFwicmVsYXRpb25hbFwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZVtcIlNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9DVUJFXCJdID0gXCJjdWJlXCI7XG4gICAgLy8gXG4gICAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlW1wiU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX0RBVEVUSU1FXCJdID0gXCJkYXRldGltZVwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZVtcIlNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9EQVRFXCJdID0gXCJkYXRlXCI7XG4gICAgLy8gXG4gICAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlW1wiU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX1RJTUVcIl0gPSBcInRpbWVcIjtcbiAgICAvLyBcbiAgICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVbXCJTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfVEVYVFwiXSA9IFwidGV4dFwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZVtcIlNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9OVU1CRVJcIl0gPSBcIm51bWJlclwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZVtcIlNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9DVVJSRU5DWVwiXSA9IFwiY3VycmVuY3lcIjtcbiAgICAvLyBcbiAgICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVbXCJTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfQk9PTFwiXSA9IFwiYm9vbFwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZVtcIlNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9ISUVSQVJDSFlcIl0gPSBcImhpZXJhcmNoeVwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZVtcIlNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9MRVZFTFwiXSA9IFwibGV2ZWxcIjtcbiAgICAvLyBcbiAgICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVbXCJTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfQVRUUklCVVRFXCJdID0gXCJhdHRyaWJ1dGVcIjtcbiAgICAvLyBcbiAgICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVbXCJTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfRk9MREVSX0NMT1NFRFwiXSA9IFwiZm9sZGVyLWNsb3NlZFwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZVtcIlNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9GT0xERVJfT1BFTlwiXSA9IFwiZm9sZGVyLW9wZW5cIjtcbiAgICAvLyBcbiAgICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVbXCJTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfR1JPVVBcIl0gPSBcImdycFwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZVtcIlNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9JTlZBTElEX0dST1VQXCJdID0gXCJpbnZhbGlkLWdycFwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZVtcIlNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9TVlJfR1JQXCJdID0gXCJzdnItZ3JwXCI7XG4gICAgLy8gXG4gICAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlW1wiU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX0lOVkFMSURfU1ZSX0dSUFwiXSA9IFwiaW52YWxpZC1zdnItZ3JwXCI7XG4gICAgLy8gXG4gICAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlW1wiU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX05VTUVSSUNfQklOX09cIl0gPSBcIm51bWVyaWMtYmluLW9cIjtcbiAgICAvLyBcbiAgICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVbXCJTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfTlVNRVJJQ19CSU5fUVwiXSA9IFwibnVtZXJpYy1iaW4tcVwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZVtcIlNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9JTlZBTElEX05VTUVSSUNfQklOXCJdID0gXCJpbnZhbGlkLW51bWVyaWMtYmluXCI7XG4gICAgLy8gXG4gICAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlW1wiU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX0RSSUxMUEFUSFwiXSA9IFwiZHJpbGxwYXRoXCI7XG4gICAgLy8gXG4gICAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlW1wiU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX1ZBTElEX1NZU0dSUFwiXSA9IFwidmFsaWQtc3lzZ3JwXCI7XG4gICAgLy8gXG4gICAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlW1wiU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX0lOVkFMSURfU1lTR1JQXCJdID0gXCJpbnZhbGlkLXN5c2dycFwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZVtcIlNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9DQVRfQklOXCJdID0gXCJjYXQtYmluXCI7XG4gICAgLy8gXG4gICAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlW1wiU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX0NBVF9CSU5fR0VPR0FQSElDX09cIl0gPSBcImNhdC1iaW4tZ2VvZ2FwaGljLW9cIjtcbiAgICAvLyBcbiAgICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVbXCJTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfQ0FUX0JJTl9HRU9HQVBISUNfUVwiXSA9IFwiY2F0LWJpbi1nZW9nYXBoaWMtcVwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZVtcIlNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9JTlZBTElEX0NBVF9CSU5cIl0gPSBcImludmFsaWQtY2F0LWJpblwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZVtcIlNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9JTlZBTElEX0NBVF9CSU5fR0VPR0FQSElDX09cIl0gPSBcImludmFsaWQtY2F0LWJpbi1nZW9nYXBoaWMtb1wiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZVtcIlNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9JTlZBTElEX0NBVF9CSU5fR0VPR0FQSElDX1FcIl0gPSBcImludmFsaWQtY2F0LWJpbi1nZW9nYXBoaWMtcVwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZVtcIlNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9HRU9HUkFQSElDXCJdID0gXCJnZW9ncmFwaGljXCI7XG4gICAgLy8gXG4gICAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlW1wiU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX0lOVkFMSURfR0VPR1JBUEhJQ19PXCJdID0gXCJpbnZhbGlkLWdlb2dyYXBoaWMtb1wiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZVtcIlNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9JTlZBTElEX0dFT0dSQVBISUNfUVwiXSA9IFwiaW52YWxpZC1nZW9ncmFwaGljLXFcIjtcbiAgICAvLyBcbiAgICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVbXCJTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfSURFTlRfU0VUXCJdID0gXCJpZGVudC1zZXRcIjtcbiAgICAvLyBcbiAgICBTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVbXCJTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGVfX1NWVF9BTExfSU5WQUxJRF9JREVOVF9TRVRcIl0gPSBcImludmFsaWQtaWRlbnQtc2V0XCI7XG4gICAgLy8gXG4gICAgU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlW1wiU2NoZW1hVmlld2VyRmllbGRBbGxUeXBlX19TVlRfQUxMX1RBQkxFXCJdID0gXCJ0YWJsZVwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZVtcIlNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZV9fU1ZUX0FMTF9OT05FXCJdID0gXCJub25lXCI7XG59KShTY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGUgPSBleHBvcnRzLlNjaGVtYVZpZXdlckZpZWxkQWxsVHlwZSB8fCAoZXhwb3J0cy5TY2hlbWFWaWV3ZXJGaWVsZEFsbFR5cGUgPSB7fSkpO1xuLy8gXG52YXIgU2NoZW1hVmlld2VyRmllbGRDdWJlTWVhc3VyZVR5cGU7XG4oZnVuY3Rpb24gKFNjaGVtYVZpZXdlckZpZWxkQ3ViZU1lYXN1cmVUeXBlKSB7XG4gICAgLy8gXG4gICAgU2NoZW1hVmlld2VyRmllbGRDdWJlTWVhc3VyZVR5cGVbXCJTY2hlbWFWaWV3ZXJGaWVsZEN1YmVNZWFzdXJlVHlwZV9fU1ZUX0NVQkVfTV9CTEFOS1wiXSA9IFwiY3ViZS1tLWJsYW5rXCI7XG4gICAgLy8gXG4gICAgU2NoZW1hVmlld2VyRmllbGRDdWJlTWVhc3VyZVR5cGVbXCJTY2hlbWFWaWV3ZXJGaWVsZEN1YmVNZWFzdXJlVHlwZV9fU1ZUX0NVQkVfTV9GT0xERVJfQ0xPU0VEXCJdID0gXCJjdWJlLW0tZm9sZGVyLWNsb3NlZFwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQ3ViZU1lYXN1cmVUeXBlW1wiU2NoZW1hVmlld2VyRmllbGRDdWJlTWVhc3VyZVR5cGVfX1NWVF9DVUJFX01fRk9MREVSX09QRU5cIl0gPSBcImN1YmUtbS1mb2xkZXItb3BlblwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQ3ViZU1lYXN1cmVUeXBlW1wiU2NoZW1hVmlld2VyRmllbGRDdWJlTWVhc3VyZVR5cGVfX1NWVF9DVUJFX01fREFURVRJTUVcIl0gPSBcImN1YmUtbS1kYXRldGltZVwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQ3ViZU1lYXN1cmVUeXBlW1wiU2NoZW1hVmlld2VyRmllbGRDdWJlTWVhc3VyZVR5cGVfX1NWVF9DVUJFX01fREFURVwiXSA9IFwiY3ViZS1tLWRhdGVcIjtcbiAgICAvLyBcbiAgICBTY2hlbWFWaWV3ZXJGaWVsZEN1YmVNZWFzdXJlVHlwZVtcIlNjaGVtYVZpZXdlckZpZWxkQ3ViZU1lYXN1cmVUeXBlX19TVlRfQ1VCRV9NX1RJTUVcIl0gPSBcImN1YmUtbS10aW1lXCI7XG4gICAgLy8gXG4gICAgU2NoZW1hVmlld2VyRmllbGRDdWJlTWVhc3VyZVR5cGVbXCJTY2hlbWFWaWV3ZXJGaWVsZEN1YmVNZWFzdXJlVHlwZV9fU1ZUX0NVQkVfTV9URVhUXCJdID0gXCJjdWJlLW0tdGV4dFwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQ3ViZU1lYXN1cmVUeXBlW1wiU2NoZW1hVmlld2VyRmllbGRDdWJlTWVhc3VyZVR5cGVfX1NWVF9DVUJFX01fTlVNQkVSXCJdID0gXCJjdWJlLW0tbnVtYmVyXCI7XG4gICAgLy8gXG4gICAgU2NoZW1hVmlld2VyRmllbGRDdWJlTWVhc3VyZVR5cGVbXCJTY2hlbWFWaWV3ZXJGaWVsZEN1YmVNZWFzdXJlVHlwZV9fU1ZUX0NVQkVfTV9DVVJSRU5DWVwiXSA9IFwiY3ViZS1tLWN1cnJlbmN5XCI7XG4gICAgLy8gXG4gICAgU2NoZW1hVmlld2VyRmllbGRDdWJlTWVhc3VyZVR5cGVbXCJTY2hlbWFWaWV3ZXJGaWVsZEN1YmVNZWFzdXJlVHlwZV9fU1ZUX0NVQkVfTV9CT09MRUFOXCJdID0gXCJjdWJlLW0tYm9vbGVhblwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQ3ViZU1lYXN1cmVUeXBlW1wiU2NoZW1hVmlld2VyRmllbGRDdWJlTWVhc3VyZVR5cGVfX1NWVF9DVUJFX01fR0VPR1JBUEhJQ1wiXSA9IFwiY3ViZS1tLWdlb2dyYXBoaWNcIjtcbn0pKFNjaGVtYVZpZXdlckZpZWxkQ3ViZU1lYXN1cmVUeXBlID0gZXhwb3J0cy5TY2hlbWFWaWV3ZXJGaWVsZEN1YmVNZWFzdXJlVHlwZSB8fCAoZXhwb3J0cy5TY2hlbWFWaWV3ZXJGaWVsZEN1YmVNZWFzdXJlVHlwZSA9IHt9KSk7XG4vLyBcbnZhciBTY2hlbWFWaWV3ZXJGaWVsZEN1YmVEaW1lbnNpb25UeXBlO1xuKGZ1bmN0aW9uIChTY2hlbWFWaWV3ZXJGaWVsZEN1YmVEaW1lbnNpb25UeXBlKSB7XG4gICAgLy8gXG4gICAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZVtcIlNjaGVtYVZpZXdlckZpZWxkQ3ViZURpbWVuc2lvblR5cGVfX1NWVF9DVUJFX0RfQkxBTktcIl0gPSBcImN1YmUtZC1ibGFua1wiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQ3ViZURpbWVuc2lvblR5cGVbXCJTY2hlbWFWaWV3ZXJGaWVsZEN1YmVEaW1lbnNpb25UeXBlX19TVlRfQ1VCRV9EX0hJRVJBUkNIWVwiXSA9IFwiY3ViZS1kLWhpZXJhcmNoeVwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQ3ViZURpbWVuc2lvblR5cGVbXCJTY2hlbWFWaWV3ZXJGaWVsZEN1YmVEaW1lbnNpb25UeXBlX19TVlRfQ1VCRV9EX0xFVkVMXCJdID0gXCJjdWJlLWQtbGV2ZWxcIjtcbiAgICAvLyBcbiAgICBTY2hlbWFWaWV3ZXJGaWVsZEN1YmVEaW1lbnNpb25UeXBlW1wiU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZV9fU1ZUX0NVQkVfRF9ISUVSX0NBTENcIl0gPSBcImN1YmUtZC1oaWVyLWNhbGNcIjtcbiAgICAvLyBcbiAgICBTY2hlbWFWaWV3ZXJGaWVsZEN1YmVEaW1lbnNpb25UeXBlW1wiU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZV9fU1ZUX0NVQkVfRF9MVkxfQ0FMQ1wiXSA9IFwiY3ViZS1kLWx2bC1jYWxjXCI7XG4gICAgLy8gXG4gICAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZVtcIlNjaGVtYVZpZXdlckZpZWxkQ3ViZURpbWVuc2lvblR5cGVfX1NWVF9DVUJFX0RfSElFUl9HRU9cIl0gPSBcImN1YmUtZC1oaWVyLWdlb1wiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQ3ViZURpbWVuc2lvblR5cGVbXCJTY2hlbWFWaWV3ZXJGaWVsZEN1YmVEaW1lbnNpb25UeXBlX19TVlRfQ1VCRV9EX0hJRVJfR0VPX0NVU1RPTVwiXSA9IFwiY3ViZS1kLWhpZXItZ2VvLWN1c3RvbVwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQ3ViZURpbWVuc2lvblR5cGVbXCJTY2hlbWFWaWV3ZXJGaWVsZEN1YmVEaW1lbnNpb25UeXBlX19TVlRfQ1VCRV9EX0ZPTERFUl9DTE9TRURcIl0gPSBcImN1YmUtZC1mb2xkZXItY2xvc2VkXCI7XG4gICAgLy8gXG4gICAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZVtcIlNjaGVtYVZpZXdlckZpZWxkQ3ViZURpbWVuc2lvblR5cGVfX1NWVF9DVUJFX0RfRk9MREVSX09QRU5cIl0gPSBcImN1YmUtZC1mb2xkZXItb3BlblwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQ3ViZURpbWVuc2lvblR5cGVbXCJTY2hlbWFWaWV3ZXJGaWVsZEN1YmVEaW1lbnNpb25UeXBlX19TVlRfQ1VCRV9EX0FUVFJJQlVURVwiXSA9IFwiY3ViZS1kLWF0dHJpYnV0ZVwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQ3ViZURpbWVuc2lvblR5cGVbXCJTY2hlbWFWaWV3ZXJGaWVsZEN1YmVEaW1lbnNpb25UeXBlX19TVlRfQ1VCRV9EX1RFWFRcIl0gPSBcImN1YmUtZC10ZXh0XCI7XG4gICAgLy8gXG4gICAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZVtcIlNjaGVtYVZpZXdlckZpZWxkQ3ViZURpbWVuc2lvblR5cGVfX1NWVF9DVUJFX0RfREFURVRJTUVcIl0gPSBcImN1YmUtZC1kYXRldGltZVwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQ3ViZURpbWVuc2lvblR5cGVbXCJTY2hlbWFWaWV3ZXJGaWVsZEN1YmVEaW1lbnNpb25UeXBlX19TVlRfQ1VCRV9EX0RBVEVUSU1FX0lOVkFMSURcIl0gPSBcImN1YmUtZC1kYXRldGltZS1pbnZhbGlkXCI7XG4gICAgLy8gXG4gICAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZVtcIlNjaGVtYVZpZXdlckZpZWxkQ3ViZURpbWVuc2lvblR5cGVfX1NWVF9DVUJFX0RfREFURVwiXSA9IFwiY3ViZS1kLWRhdGVcIjtcbiAgICAvLyBcbiAgICBTY2hlbWFWaWV3ZXJGaWVsZEN1YmVEaW1lbnNpb25UeXBlW1wiU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZV9fU1ZUX0NVQkVfRF9EQVRFX0lOVkFMSURcIl0gPSBcImN1YmUtZC1kYXRlLWludmFsaWRcIjtcbiAgICAvLyBcbiAgICBTY2hlbWFWaWV3ZXJGaWVsZEN1YmVEaW1lbnNpb25UeXBlW1wiU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZV9fU1ZUX0NVQkVfRF9HRU9HUkFQSElDXCJdID0gXCJjdWJlLWQtZ2VvZ3JhcGhpY1wiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQ3ViZURpbWVuc2lvblR5cGVbXCJTY2hlbWFWaWV3ZXJGaWVsZEN1YmVEaW1lbnNpb25UeXBlX19TVlRfQ1VCRV9EX0dFT0dSQVBISUNfSU5WQUxJRFwiXSA9IFwiY3ViZS1kLWdlb2dyYXBoaWMtaW52YWxpZFwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQ3ViZURpbWVuc2lvblR5cGVbXCJTY2hlbWFWaWV3ZXJGaWVsZEN1YmVEaW1lbnNpb25UeXBlX19TVlRfQ1VCRV9EX0dFT0dSQVBISUNfQ1VTVE9NXCJdID0gXCJjdWJlLWQtZ2VvZ3JhcGhpYy1jdXN0b21cIjtcbiAgICAvLyBcbiAgICBTY2hlbWFWaWV3ZXJGaWVsZEN1YmVEaW1lbnNpb25UeXBlW1wiU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZV9fU1ZUX0NVQkVfRF9HRU9HUkFQSElDX0NVU1RPTV9JTlZBTElEXCJdID0gXCJjdWJlLWQtZ2VvZ3JhcGhpYy1jdXN0b20taW52YWxpZFwiO1xuICAgIC8vIFxuICAgIFNjaGVtYVZpZXdlckZpZWxkQ3ViZURpbWVuc2lvblR5cGVbXCJTY2hlbWFWaWV3ZXJGaWVsZEN1YmVEaW1lbnNpb25UeXBlX19TVlRfQ1VCRV9EX1ZBUllJTkdcIl0gPSBcImN1YmUtZC12YXJ5aW5nXCI7XG4gICAgLy8gXG4gICAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZVtcIlNjaGVtYVZpZXdlckZpZWxkQ3ViZURpbWVuc2lvblR5cGVfX1NWVF9DVUJFX0RfVURBXCJdID0gXCJjdWJlLWQtdWRhXCI7XG4gICAgLy8gXG4gICAgU2NoZW1hVmlld2VyRmllbGRDdWJlRGltZW5zaW9uVHlwZVtcIlNjaGVtYVZpZXdlckZpZWxkQ3ViZURpbWVuc2lvblR5cGVfX1NWVF9DVUJFX0RfTlVNQkVSXCJdID0gXCJjdWJlLWQtbnVtYmVyXCI7XG59KShTY2hlbWFWaWV3ZXJGaWVsZEN1YmVEaW1lbnNpb25UeXBlID0gZXhwb3J0cy5TY2hlbWFWaWV3ZXJGaWVsZEN1YmVEaW1lbnNpb25UeXBlIHx8IChleHBvcnRzLlNjaGVtYVZpZXdlckZpZWxkQ3ViZURpbWVuc2lvblR5cGUgPSB7fSkpO1xuLy8gSW5kaWNhdGVzIHRoZSBzZWxlY3Rpb24gbW9kZTogU2luZ2xlIHwgTXVsdGlwbGUuXG52YXIgSFNNU2VsZWN0aW9uTW9kZTtcbihmdW5jdGlvbiAoSFNNU2VsZWN0aW9uTW9kZSkge1xuICAgIC8vIFxuICAgIEhTTVNlbGVjdGlvbk1vZGVbXCJTaW5nbGVcIl0gPSBcInNlbGVjdGlvbi1tb2RlLXNpbmdsZVwiO1xuICAgIC8vIFxuICAgIEhTTVNlbGVjdGlvbk1vZGVbXCJNdWx0aXBsZVwiXSA9IFwic2VsZWN0aW9uLW1vZGUtbXVsdGlwbGVcIjtcbn0pKEhTTVNlbGVjdGlvbk1vZGUgPSBleHBvcnRzLkhTTVNlbGVjdGlvbk1vZGUgfHwgKGV4cG9ydHMuSFNNU2VsZWN0aW9uTW9kZSA9IHt9KSk7XG4vLyBJbmRpY2F0ZXMgd2hhdCBkZWZhdWx0IG1lbWJlciB0byB1c2UgZm9yIGEgaGllcmFyY2hpY2FsIGZpZWxkLlxudmFyIEhTTURlZmF1bHRNZW1iZXJUeXBlO1xuKGZ1bmN0aW9uIChIU01EZWZhdWx0TWVtYmVyVHlwZSkge1xuICAgIC8vIFxuICAgIEhTTURlZmF1bHRNZW1iZXJUeXBlW1wiVXNlRGVmYXVsdE1lbWJlclwiXSA9IFwidXNlLWRlZmF1bHQtbWVtYmVyXCI7XG4gICAgLy8gXG4gICAgSFNNRGVmYXVsdE1lbWJlclR5cGVbXCJVc2VBbGxNZW1iZXJcIl0gPSBcInVzZS1hbGwtbWVtYmVyXCI7XG4gICAgLy8gXG4gICAgSFNNRGVmYXVsdE1lbWJlclR5cGVbXCJVc2VTZWxlY3RlZE1lbWJlclwiXSA9IFwidXNlLXNlbGVjdGVkLW1lbWJlclwiO1xufSkoSFNNRGVmYXVsdE1lbWJlclR5cGUgPSBleHBvcnRzLkhTTURlZmF1bHRNZW1iZXJUeXBlIHx8IChleHBvcnRzLkhTTURlZmF1bHRNZW1iZXJUeXBlID0ge30pKTtcbi8vIEhpZXJhcmNoaWNhbCBzZWxlY3QgbW9kZWwgcHJlc2VudGF0aW9uIGxheWVyIG5vdGlmaWNhdGlvbi5cbnZhciBIU01Ob3RpZmljYXRpb25UeXBlO1xuKGZ1bmN0aW9uIChIU01Ob3RpZmljYXRpb25UeXBlKSB7XG4gICAgLy8gXG4gICAgSFNNTm90aWZpY2F0aW9uVHlwZVtcIlVwZGF0ZWRcIl0gPSBcImhzbS1ub3RpZmljYXRpb24tdXBkYXRlZFwiO1xuICAgIC8vIFxuICAgIEhTTU5vdGlmaWNhdGlvblR5cGVbXCJNaXNzaW5nTWVtYmVyc1wiXSA9IFwiaHNtLW5vdGlmaWNhdGlvbi1taXNzaW5nLW1lbWJlcnNcIjtcbn0pKEhTTU5vdGlmaWNhdGlvblR5cGUgPSBleHBvcnRzLkhTTU5vdGlmaWNhdGlvblR5cGUgfHwgKGV4cG9ydHMuSFNNTm90aWZpY2F0aW9uVHlwZSA9IHt9KSk7XG4vLyBUeXBlIG9mIGhpZXJhcmNoeSBjb21tYW5kIHNlbGVjdGlvbiB0byBiZSBwZXJmb3JtZWQuXG52YXIgSFNNU2VsZWN0aW9uUmVxdWVzdFR5cGU7XG4oZnVuY3Rpb24gKEhTTVNlbGVjdGlvblJlcXVlc3RUeXBlKSB7XG4gICAgLy8gXG4gICAgSFNNU2VsZWN0aW9uUmVxdWVzdFR5cGVbXCJTZWxlY3RNb2RlXCJdID0gXCJoc20tc2VsZWN0aW9uLXJlcXVlc3Qtc2VsZWN0LW1vZGVcIjtcbiAgICAvLyBcbiAgICBIU01TZWxlY3Rpb25SZXF1ZXN0VHlwZVtcIk1lbWJlckRlc2NlbmRhbnRzU3RhdGVcIl0gPSBcImhzbS1zZWxlY3Rpb24tcmVxdWVzdC1kZXNjZW5kYW50cy1zdGF0ZVwiO1xuICAgIC8vIFxuICAgIEhTTVNlbGVjdGlvblJlcXVlc3RUeXBlW1wiU2VsZWN0ZWRNZW1iZXJUdXBsZVwiXSA9IFwiaHNtLXNlbGVjdGlvbi1yZXF1ZXN0LXNlbGVjdGVkLW1lbWJlci10dXBsZVwiO1xuICAgIC8vIFxuICAgIEhTTVNlbGVjdGlvblJlcXVlc3RUeXBlW1wiU2VsZWN0ZWRNZW1iZXJDYXB0aW9uXCJdID0gXCJoc20tc2VsZWN0aW9uLXJlcXVlc3Qtc2VsZWN0ZWQtbWVtYmVyLWNhcHRpb25cIjtcbn0pKEhTTVNlbGVjdGlvblJlcXVlc3RUeXBlID0gZXhwb3J0cy5IU01TZWxlY3Rpb25SZXF1ZXN0VHlwZSB8fCAoZXhwb3J0cy5IU01TZWxlY3Rpb25SZXF1ZXN0VHlwZSA9IHt9KSk7XG4vLyBUeXBlIG9mIGhpZXJhcmNoeSBtZW1iZXIgc2VsZWN0aW9uIHRvIGJlIHBlcmZvcm1lZC5cbnZhciBIU01NZW1iZXJTZWxlY3RSZXF1ZXN0VHlwZTtcbihmdW5jdGlvbiAoSFNNTWVtYmVyU2VsZWN0UmVxdWVzdFR5cGUpIHtcbiAgICAvLyBcbiAgICBIU01NZW1iZXJTZWxlY3RSZXF1ZXN0VHlwZVtcIlNlbGVjdE1lbWJlclwiXSA9IFwiaHNtLW1lbWJlci1yZXF1ZXN0LXNlbGVjdC1tZW1iZXJcIjtcbiAgICAvLyBcbiAgICBIU01NZW1iZXJTZWxlY3RSZXF1ZXN0VHlwZVtcIlNlbGVjdFN1YnRyZWVcIl0gPSBcImhzbS1tZW1iZXItcmVxdWVzdC1zZWxlY3Qtc3VidHJlZVwiO1xuICAgIC8vIFxuICAgIEhTTU1lbWJlclNlbGVjdFJlcXVlc3RUeXBlW1wiU2VsZWN0TGV2ZWxcIl0gPSBcImhzbS1tZW1iZXItcmVxdWVzdC1zZWxlY3QtbGV2ZWxcIjtcbiAgICAvLyBcbiAgICBIU01NZW1iZXJTZWxlY3RSZXF1ZXN0VHlwZVtcIk1lbWJlclNlbGVjdFwiXSA9IFwiaHNtLW1lbWJlci1yZXF1ZXN0LW1lbWJlci1zZWxlY3RcIjtcbiAgICAvLyBcbiAgICBIU01NZW1iZXJTZWxlY3RSZXF1ZXN0VHlwZVtcIk1lbWJlckxldmVsXCJdID0gXCJoc20tbWVtYmVyLXJlcXVlc3QtbWVtYmVyLWxldmVsXCI7XG59KShIU01NZW1iZXJTZWxlY3RSZXF1ZXN0VHlwZSA9IGV4cG9ydHMuSFNNTWVtYmVyU2VsZWN0UmVxdWVzdFR5cGUgfHwgKGV4cG9ydHMuSFNNTWVtYmVyU2VsZWN0UmVxdWVzdFR5cGUgPSB7fSkpO1xuLy8gSGllcmFyY2h5IGxldmVsIHNlbGVjdGlvbiBzdGF0ZS5cbnZhciBIU01MZXZlbFNlbGVjdGlvblN0YXRlO1xuKGZ1bmN0aW9uIChIU01MZXZlbFNlbGVjdGlvblN0YXRlKSB7XG4gICAgLy8gXG4gICAgSFNNTGV2ZWxTZWxlY3Rpb25TdGF0ZVtcIkFsbFNlbGVjdGVkXCJdID0gXCJoc20tYWxsLXNlbGVjdGVkXCI7XG4gICAgLy8gXG4gICAgSFNNTGV2ZWxTZWxlY3Rpb25TdGF0ZVtcIk5vbmVTZWxlY3RlZFwiXSA9IFwiaHNtLW5vbmUtc2VsZWN0ZWRcIjtcbiAgICAvLyBcbiAgICBIU01MZXZlbFNlbGVjdGlvblN0YXRlW1wiU29tZVNlbGVjdGVkXCJdID0gXCJoc20tc29tZS1zZWxlY3RlZFwiO1xuICAgIC8vIFVzZWQgd2hlbiBhIHF1ZXJ5IGlzIG1hZGUgb2YgbGV2ZWxzIHRoYXQgZG9uJ3QgZXhpc3QgaW4gdGhlIGdpdmVuIHN1YnRyZWUuIFdlIG5lZWQgdG8gZGlzdGluZ3Vpc2ggdGhhdCBmcm9tIG5vbmUgc2VsZWN0ZWQgd2hpY2ggaW1wbGllcyB0aGF0IG1lbWJlcnMgZXhpc3QgYnV0IGFyZSBub3Qgc2VsZWN0ZWQuXG4gICAgSFNNTGV2ZWxTZWxlY3Rpb25TdGF0ZVtcIlVua25vd25TZWxlY3RlZFwiXSA9IFwiaHNtLXVua25vd24tc2VsZWN0ZWRcIjtcbn0pKEhTTUxldmVsU2VsZWN0aW9uU3RhdGUgPSBleHBvcnRzLkhTTUxldmVsU2VsZWN0aW9uU3RhdGUgfHwgKGV4cG9ydHMuSFNNTGV2ZWxTZWxlY3Rpb25TdGF0ZSA9IHt9KSk7XG4vLyBcbnZhciBIU01NZW1iZXJMb2FkU3RhdGU7XG4oZnVuY3Rpb24gKEhTTU1lbWJlckxvYWRTdGF0ZSkge1xuICAgIC8vIFxuICAgIEhTTU1lbWJlckxvYWRTdGF0ZVtcIkFsbExvYWRlZFwiXSA9IFwiaHNtLWFsbC1sb2FkZWRcIjtcbiAgICAvLyBcbiAgICBIU01NZW1iZXJMb2FkU3RhdGVbXCJOb25lTG9hZGVkXCJdID0gXCJoc20tbm9uZS1sb2FkZWRcIjtcbiAgICAvLyBcbiAgICBIU01NZW1iZXJMb2FkU3RhdGVbXCJTb21lTG9hZGVkXCJdID0gXCJoc20tc29tZS1sb2FkZWRcIjtcbn0pKEhTTU1lbWJlckxvYWRTdGF0ZSA9IGV4cG9ydHMuSFNNTWVtYmVyTG9hZFN0YXRlIHx8IChleHBvcnRzLkhTTU1lbWJlckxvYWRTdGF0ZSA9IHt9KSk7XG4vLyBSZXR1cm4gdmFsdWUgZnJvbSBDb25uZWN0aW9uU3RhdGVDb250cm9sbGVyIGNvbm5lY3QgbWV0aG9kc1xudmFyIENvbm5lY3Rpb25BdHRlbXB0UmVzdWx0O1xuKGZ1bmN0aW9uIChDb25uZWN0aW9uQXR0ZW1wdFJlc3VsdCkge1xuICAgIC8vIEFsbCBkYXRhIHNvdXJjZXMgcmVxdWVzdGVkIGFyZSBjb25uZWN0ZWQuXG4gICAgQ29ubmVjdGlvbkF0dGVtcHRSZXN1bHRbXCJDQVJfQ29ubmVjdGVkXCJdID0gXCJjb25uZWN0ZWRcIjtcbiAgICAvLyBOb3QgYWxsIGRhdGEgc291cmNlcyBhcmUgY29ubmVjdGVkLlxuICAgIENvbm5lY3Rpb25BdHRlbXB0UmVzdWx0W1wiQ0FSX05vdENvbm5lY3RlZFwiXSA9IFwibm90LWNvbm5lY3RlZFwiO1xuICAgIC8vIFRoZSB1c2VyIGludGVycnVwdGVkIHRoZSBjb25uZWN0aW9uIGZsb3cgdG8gZWRpdCBhIGNvbm5lY3Rpb24uXG4gICAgQ29ubmVjdGlvbkF0dGVtcHRSZXN1bHRbXCJDQVJfVXNlckVkaXRDb25uZWN0aW9uXCJdID0gXCJ1c2VyLWVkaXQtY29ubmVjdGlvblwiO1xuICAgIC8vIFRoZSBjb25uZWN0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgb24gdGhlIGN1cnJlbnQgcGxhdGZvcm0uXG4gICAgQ29ubmVjdGlvbkF0dGVtcHRSZXN1bHRbXCJDQVJfQ29ubmVjdGlvbk5vdFN1cHBvcnRlZFwiXSA9IFwiY29ubmVjdGlvbi1ub3Qtc3VwcG9ydGVkXCI7XG59KShDb25uZWN0aW9uQXR0ZW1wdFJlc3VsdCA9IGV4cG9ydHMuQ29ubmVjdGlvbkF0dGVtcHRSZXN1bHQgfHwgKGV4cG9ydHMuQ29ubmVjdGlvbkF0dGVtcHRSZXN1bHQgPSB7fSkpO1xuLy8gUmV0dXJuIHZhbHVlIGZyb20gQ29ubmVjdFRvRGF0YVNlcnZlclNvdXJjZUNvbW1hbmQ6OkRvXG52YXIgRGF0YVNlcnZlckNvbm5lY3Rpb25SZXN1bHQ7XG4oZnVuY3Rpb24gKERhdGFTZXJ2ZXJDb25uZWN0aW9uUmVzdWx0KSB7XG4gICAgLy8gVGhlIGRhdGEgc291cmNlIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBhZGRlZC5cbiAgICBEYXRhU2VydmVyQ29ubmVjdGlvblJlc3VsdFtcIkRTQ1JfU3VjY2Vzc1wiXSA9IFwic3VjY2Vzc1wiO1xuICAgIC8vIEVycm9yIHRoYXQgd2FzIGhhbmRsZWQuIFRoZXJlJ3Mgbm8gbW9yZSB0byBkbyAoZXguIGNhbmNlbCwgb3IgYW4gZXhjZXB0aW9uIHRoYXQgdGhlIGNvbW1hbmQganVzdCBwcmludGVkIHRvIHRoZSBlcnJvciBkaWFsb2cpLlxuICAgIERhdGFTZXJ2ZXJDb25uZWN0aW9uUmVzdWx0W1wiRFNDUl9GYWlsdXJlXCJdID0gXCJmYWlsdXJlXCI7XG4gICAgLy8gVHJ5IGFnYWluIGFmdGVyIG1ha2luZyBhIG5ldyB3b3JrYm9vay5cbiAgICBEYXRhU2VydmVyQ29ubmVjdGlvblJlc3VsdFtcIkRTQ1JfUmVxdWlyZXNXb3JrYm9va0RvY1wiXSA9IFwicmVxdWlyZXMtd29ya2Jvb2tcIjtcbiAgICAvLyBUcnkgYWdhaW4gYWZ0ZXIgbG9nZ2luZyBiYWNrIG9uIHRvIFRhYmxlYXUgc2VydmVyLlxuICAgIERhdGFTZXJ2ZXJDb25uZWN0aW9uUmVzdWx0W1wiRFNDUl9SZXF1aXJlc0F1dGhlbnRpY2F0aW9uXCJdID0gXCJyZXF1aXJlcy1hdXRoZW50aWNhdGlvblwiO1xuICAgIC8vIFRyeSBhZ2FpbiBhZnRlciBnZXR0aW5nIGRhdGFiYXNlIGNyZWRlbnRpYWxzIGZyb20gdGhlIHVzZXIuIFBhc3MgdGhlbSBpbiB0aHJvdWdoIHRoZSBEUElfRGF0YXNvdXJjZVVzZXJuYW1lIGFuZCB0aGUgRFBJX0RhdGFzb3VyY2VQYXNzd29yZCBwYXJhbWV0ZXJzLlxuICAgIERhdGFTZXJ2ZXJDb25uZWN0aW9uUmVzdWx0W1wiRFNDUl9SZXF1aXJlc0RCQ3JlZGVudGlhbHNcIl0gPSBcInJlcXVpcmVzLWRiLWNyZWRlbnRpYWxzXCI7XG4gICAgLy8gVHJ5IGFnYWluIGFmdGVyIGFzc29jaWF0aW5nIGFuIE9BdXRoIGtleSBmcm9tIHRoZSB1c2VyIGtleWNoYWluIHdpdGggdGhlIGRhdGEgc291cmNlLlxuICAgIERhdGFTZXJ2ZXJDb25uZWN0aW9uUmVzdWx0W1wiRFNDUl9SZXF1aXJlc09BdXRoS2V5QXNzb2NpYXRpb25cIl0gPSBcInJlcXVpcmVzLW9hdXRoLWtleS1hc3NvY2lhdGlvblwiO1xuICAgIC8vIFRoZSBPQXV0aCBjcmVkZW50aWFscyB1c2VkIHRvIGNvbm5lY3QgdG8gdGhlIGRhdGFzb3VyY2UgYXJlIG5vdCB2YWxpZC5cbiAgICBEYXRhU2VydmVyQ29ubmVjdGlvblJlc3VsdFtcIkRTQ1JfUmVxdWlyZXNWYWxpZE9BdXRoS2V5XCJdID0gXCJyZXF1aXJlcy12YWxpZC1vYXV0aC1rZXlcIjtcbiAgICAvLyBNdWx0aXBsZSBsZWFmIGNvbm5lY3Rpb25zIHdpdGhpbiBhIGZlZGVyYXRlZCBkYXRhIHNvdXJjZSBjb250YWluIGVycm9ycyAoZS5nLiwgbXVsdGlwbGUgbGVhZnMgbWlnaHQgbmVlZCBjcmVkZW50aWFscykuXG4gICAgRGF0YVNlcnZlckNvbm5lY3Rpb25SZXN1bHRbXCJEU0NSX0ZlZGVyYXRlZEVycm9yXCJdID0gXCJmZWRlcmF0ZWQtZXJyb3JcIjtcbn0pKERhdGFTZXJ2ZXJDb25uZWN0aW9uUmVzdWx0ID0gZXhwb3J0cy5EYXRhU2VydmVyQ29ubmVjdGlvblJlc3VsdCB8fCAoZXhwb3J0cy5EYXRhU2VydmVyQ29ubmVjdGlvblJlc3VsdCA9IHt9KSk7XG4vLyBUeXBlIG9mIGVycm9yIGVuY291bnRlcmVkIHdoaWxlIGF0dGVtcHRpbmcgdG8gY29ubmVjdC5cbnZhciBDb25uZWN0aW9uRXJyb3JUeXBlO1xuKGZ1bmN0aW9uIChDb25uZWN0aW9uRXJyb3JUeXBlKSB7XG4gICAgLy8gQXV0aGVudGljYXRpb24gY3JlZGVudGlhbHMgYXJlIG5lZWRlZCBpbiBvcmRlciB0byBjb25uZWN0LlxuICAgIENvbm5lY3Rpb25FcnJvclR5cGVbXCJDRVRfTmVlZHNBdXRoZW50aWNhdGlvblwiXSA9IFwibmVlZHMtYXV0aGVudGljYXRpb25cIjtcbiAgICAvLyBUaGUgZGF0YSBzb3VyY2UgaXMgcHJvdmlkZWQgYnkgRGF0YSBTZXJ2ZXIsIGJ1dCBubyBEYXRhIFNlcnZlciBjb25uZWN0aW9uIGlzIHByZXNlbnQuXG4gICAgQ29ubmVjdGlvbkVycm9yVHlwZVtcIkNFVF9EYXRhU2VydmVyRGlzY29ubmVjdGVkXCJdID0gXCJkYXRhLXNlcnZlci1kaXNjb25uZWN0ZWRcIjtcbiAgICAvLyBBbiBleGNlcHRpb24gb2NjdXJyZWQgd2hpbGUgY29ubmVjdGluZy4gIFRoaXMgY291bGQgYmUgY2F1c2VkIGJ5IGEgYmFkIHBhc3N3b3JkLCBvciB3cm9uZyBwYXRoL3VybC5cbiAgICBDb25uZWN0aW9uRXJyb3JUeXBlW1wiQ0VUX0V4Y2VwdGlvbldoaWxlQ29ubmVjdGluZ1wiXSA9IFwiZXhjZXB0aW9uLXdoaWxlLWNvbm5lY3RpbmdcIjtcbiAgICAvLyBBbiBleGNlcHRpb24gb2NjdXJyZWQgd2hpbGUgdHJ5aW5nIHRvIGNvbm5lY3QgdGhlIGRhdGEgc291cmNlIGFzIGEgd2hvbGUuXG4gICAgQ29ubmVjdGlvbkVycm9yVHlwZVtcIkNFVF9FeGNlcHRpb25XaGlsZUNvbm5lY3RpbmdEYXRhU291cmNlXCJdID0gXCJleGNlcHRpb24td2hpbGUtY29ubmVjdGluZy1kYXRhLXNvdXJjZVwiO1xuICAgIC8vIFRoZSBjb25uZWN0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuXG4gICAgQ29ubmVjdGlvbkVycm9yVHlwZVtcIkNFVF9Db25uZWN0aW9uTm90U3VwcG9ydGVkXCJdID0gXCJjb25uZWN0aW9uLW5vdC1zdXBwb3J0ZWRcIjtcbiAgICAvLyBBbiB1bmV4cGVjdGVkIGV4Y2VwdGlvbiBvY2N1cnJlZC5cbiAgICBDb25uZWN0aW9uRXJyb3JUeXBlW1wiQ0VUX1VuZXhwZWN0ZWRFeGNlcHRpb25cIl0gPSBcInVuZXhwZWN0ZWQtZXhjZXB0aW9uXCI7XG59KShDb25uZWN0aW9uRXJyb3JUeXBlID0gZXhwb3J0cy5Db25uZWN0aW9uRXJyb3JUeXBlIHx8IChleHBvcnRzLkNvbm5lY3Rpb25FcnJvclR5cGUgPSB7fSkpO1xuLy8gaWRlbnRpZmllcyB0aGUgcGllY2Ugb2YgdGhlIHZpc3VhbFxudmFyIFZpc3VhbFBhcnQ7XG4oZnVuY3Rpb24gKFZpc3VhbFBhcnQpIHtcbiAgICAvLyBkZWZhdWx0IGJ1Y2tldCBpZiB0eXBlIGlzbid0IHNwZWNpZmllZFxuICAgIFZpc3VhbFBhcnRbXCJWUF9NaXNjXCJdID0gXCJtaXNjXCI7XG4gICAgLy8gXG4gICAgVmlzdWFsUGFydFtcIlZQX0Fubm90YXRpb25zXCJdID0gXCJhbm5vdGF0aW9uc1wiO1xuICAgIC8vIFxuICAgIFZpc3VhbFBhcnRbXCJWUF9BeGlzUnVsZXNcIl0gPSBcImF4aXMtcnVsZXNcIjtcbiAgICAvLyBcbiAgICBWaXN1YWxQYXJ0W1wiVlBfVG9wQXhpc1wiXSA9IFwidG9wLWF4aXNcIjtcbiAgICAvLyBcbiAgICBWaXN1YWxQYXJ0W1wiVlBfQm90dG9tQXhpc1wiXSA9IFwiYm90dG9tLWF4aXNcIjtcbiAgICAvLyBcbiAgICBWaXN1YWxQYXJ0W1wiVlBfTGVmdEF4aXNcIl0gPSBcImxlZnQtYXhpc1wiO1xuICAgIC8vIFxuICAgIFZpc3VhbFBhcnRbXCJWUF9SaWdodEF4aXNcIl0gPSBcInJpZ2h0LWF4aXNcIjtcbiAgICAvLyBcbiAgICBWaXN1YWxQYXJ0W1wiVlBfQmFja2dyb3VuZFwiXSA9IFwiYmFja2dyb3VuZFwiO1xuICAgIC8vIFxuICAgIFZpc3VhbFBhcnRbXCJWUF9Cb3JkZXJzXCJdID0gXCJib3JkZXJzXCI7XG4gICAgLy8gXG4gICAgVmlzdWFsUGFydFtcIlZQX0NhcHRpb25cIl0gPSBcImNhcHRpb25cIjtcbiAgICAvLyBcbiAgICBWaXN1YWxQYXJ0W1wiVlBfQ2VsbEJvcmRlcnNcIl0gPSBcImNlbGwtYm9yZGVyc1wiO1xuICAgIC8vIFxuICAgIFZpc3VhbFBhcnRbXCJWUF9EZWNvcmF0aW9uXCJdID0gXCJkZWNvcmF0aW9uXCI7XG4gICAgLy8gXG4gICAgVmlzdWFsUGFydFtcIlZQX0Ryb3BMaW5lc1wiXSA9IFwiZHJvcC1saW5lc1wiO1xuICAgIC8vIFxuICAgIFZpc3VhbFBhcnRbXCJWUF9YTGFiZWxzXCJdID0gXCJ4LWxhYmVsc1wiO1xuICAgIC8vIFxuICAgIFZpc3VhbFBhcnRbXCJWUF9ZTGFiZWxzXCJdID0gXCJ5LWxhYmVsc1wiO1xuICAgIC8vIFxuICAgIFZpc3VhbFBhcnRbXCJWUF9MZWdlbmRzXCJdID0gXCJsZWdlbmRzXCI7XG4gICAgLy8gXG4gICAgVmlzdWFsUGFydFtcIlZQX01hcmtzXCJdID0gXCJtYXJrc1wiO1xuICAgIC8vIFxuICAgIFZpc3VhbFBhcnRbXCJWUF9NYXJrTGFiZWxzXCJdID0gXCJtYXJrLWxhYmVsc1wiO1xuICAgIC8vIFxuICAgIFZpc3VhbFBhcnRbXCJWUF9NYXJrVHJhaWxzXCJdID0gXCJtYXJrLXRyYWlsc1wiO1xuICAgIC8vIFxuICAgIFZpc3VhbFBhcnRbXCJWUF9SZWZlcmVuY2VCYW5kc1wiXSA9IFwicmVmLWJhbmRzXCI7XG4gICAgLy8gXG4gICAgVmlzdWFsUGFydFtcIlZQX1JlZmVyZW5jZUxpbmVzXCJdID0gXCJyZWYtbGluZXNcIjtcbiAgICAvLyBcbiAgICBWaXN1YWxQYXJ0W1wiVlBfUGFuZUJvcmRlcnNcIl0gPSBcInBhbmUtYm9yZGVyc1wiO1xuICAgIC8vIFxuICAgIFZpc3VhbFBhcnRbXCJWUF9TY3JvbGxCYXJzXCJdID0gXCJzY3JvbGwtYmFyc1wiO1xuICAgIC8vIFxuICAgIFZpc3VhbFBhcnRbXCJWUF9UaXRsZVwiXSA9IFwidGl0bGVcIjtcbiAgICAvLyBcbiAgICBWaXN1YWxQYXJ0W1wiVlBfVHJlbmRMaW5lc1wiXSA9IFwidHJlbmQtbGluZXNcIjtcbiAgICAvLyBcbiAgICBWaXN1YWxQYXJ0W1wiVlBfVXBwZXJNYXBMYXllcnNcIl0gPSBcInVwcGVyLW1hcC1sYXllcnNcIjtcbn0pKFZpc3VhbFBhcnQgPSBleHBvcnRzLlZpc3VhbFBhcnQgfHwgKGV4cG9ydHMuVmlzdWFsUGFydCA9IHt9KSk7XG4vLyBEZXRhaWxzIG9mIHRoZSBwYXJ0IHdpdGhpbiBhbiBFbGVtZW50SWRcbnZhciBTY2VuZU1vZGVsVHlwZXNEZXRhaWw7XG4oZnVuY3Rpb24gKFNjZW5lTW9kZWxUeXBlc0RldGFpbCkge1xuICAgIC8vIFxuICAgIFNjZW5lTW9kZWxUeXBlc0RldGFpbFtcIk5vRGV0YWlsXCJdID0gXCJuby1kZXRhaWxcIjtcbiAgICAvLyBcbiAgICBTY2VuZU1vZGVsVHlwZXNEZXRhaWxbXCJNYXJrRGV0YWlsXCJdID0gXCJtYXJrLWRldGFpbFwiO1xuICAgIC8vIFxuICAgIFNjZW5lTW9kZWxUeXBlc0RldGFpbFtcIkxhYmVsRGV0YWlsXCJdID0gXCJsYWJlbC1kZXRhaWxcIjtcbiAgICAvLyBcbiAgICBTY2VuZU1vZGVsVHlwZXNEZXRhaWxbXCJMYWJlbEhhbmRsZURldGFpbFwiXSA9IFwibGFiZWwtaGFuZGxlLWRldGFpbFwiO1xuICAgIC8vIFxuICAgIFNjZW5lTW9kZWxUeXBlc0RldGFpbFtcIlRvcExlZnRIYW5kbGVEZXRhaWxcIl0gPSBcInRvcC1sZWZ0LWhhbmRsZS1kZXRhaWxcIjtcbiAgICAvLyBcbiAgICBTY2VuZU1vZGVsVHlwZXNEZXRhaWxbXCJUb3BNaWRIYW5kbGVEZXRhaWxcIl0gPSBcInRvcC1taWQtaGFuZGxlLWRldGFpbFwiO1xuICAgIC8vIFxuICAgIFNjZW5lTW9kZWxUeXBlc0RldGFpbFtcIlRvcFJpZ2h0SGFuZGxlRGV0YWlsXCJdID0gXCJ0b3AtcmlnaHQtaGFuZGxlLWRldGFpbFwiO1xuICAgIC8vIFxuICAgIFNjZW5lTW9kZWxUeXBlc0RldGFpbFtcIlJpZ2h0TWlkSGFuZGxlRGV0YWlsXCJdID0gXCJyaWdodC1taWQtaGFuZGxlLWRldGFpbFwiO1xuICAgIC8vIFxuICAgIFNjZW5lTW9kZWxUeXBlc0RldGFpbFtcIkJvdHRvbVJpZ2h0SGFuZGxlRGV0YWlsXCJdID0gXCJib3R0b20tcmlnaHQtaGFuZGxlLWRldGFpbFwiO1xuICAgIC8vIFxuICAgIFNjZW5lTW9kZWxUeXBlc0RldGFpbFtcIkJvdHRvbU1pZEhhbmRsZURldGFpbFwiXSA9IFwiYm90dG9tLW1pZC1oYW5kbGUtZGV0YWlsXCI7XG4gICAgLy8gXG4gICAgU2NlbmVNb2RlbFR5cGVzRGV0YWlsW1wiQm90dG9tTGVmdEhhbmRsZURldGFpbFwiXSA9IFwiYm90dG9tLWxlZnQtaGFuZGxlLWRldGFpbFwiO1xuICAgIC8vIFxuICAgIFNjZW5lTW9kZWxUeXBlc0RldGFpbFtcIkxlZnRNaWRIYW5kbGVEZXRhaWxcIl0gPSBcImxlZnQtbWlkLWhhbmRsZS1kZXRhaWxcIjtcbiAgICAvLyBcbiAgICBTY2VuZU1vZGVsVHlwZXNEZXRhaWxbXCJMaW5lRGV0YWlsXCJdID0gXCJsaW5lLWRldGFpbFwiO1xuICAgIC8vIFxuICAgIFNjZW5lTW9kZWxUeXBlc0RldGFpbFtcIkFycm93SGFuZGxlRGV0YWlsXCJdID0gXCJhcnJvdy1oYW5kbGUtZGV0YWlsXCI7XG4gICAgLy8gXG4gICAgU2NlbmVNb2RlbFR5cGVzRGV0YWlsW1wiVGV4dENlbnRlckhhbmRsZURldGFpbFwiXSA9IFwidGV4dC1jZW50ZXItaGFuZGxlLWRldGFpbFwiO1xuICAgIC8vIFxuICAgIFNjZW5lTW9kZWxUeXBlc0RldGFpbFtcIlRleHRCb3hIYW5kbGVEZXRhaWxcIl0gPSBcInRleHQtYm94LWhhbmRsZS1kZXRhaWxcIjtcbiAgICAvLyBcbiAgICBTY2VuZU1vZGVsVHlwZXNEZXRhaWxbXCJNYXJrQXJyb3dIYW5kbGVEZXRhaWxcIl0gPSBcIm1hcmstYXJyb3ctaGFuZGxlLWRldGFpbFwiO1xuICAgIC8vIFxuICAgIFNjZW5lTW9kZWxUeXBlc0RldGFpbFtcIk1hcmtNb3ZhYmxlSGFuZGxlRGV0YWlsXCJdID0gXCJtYXJrLW1vdmFibGUtaGFuZGxlLWRldGFpbFwiO1xuICAgIC8vIFxuICAgIFNjZW5lTW9kZWxUeXBlc0RldGFpbFtcIk1hcmtBbmNob3JEZXRhaWxcIl0gPSBcIm1hcmstYW5jaG9yLWRldGFpbFwiO1xufSkoU2NlbmVNb2RlbFR5cGVzRGV0YWlsID0gZXhwb3J0cy5TY2VuZU1vZGVsVHlwZXNEZXRhaWwgfHwgKGV4cG9ydHMuU2NlbmVNb2RlbFR5cGVzRGV0YWlsID0ge30pKTtcbi8vIFxudmFyIFNjZW5lTW9kZWxUeXBlc0hpdFR5cGU7XG4oZnVuY3Rpb24gKFNjZW5lTW9kZWxUeXBlc0hpdFR5cGUpIHtcbiAgICAvLyBcbiAgICBTY2VuZU1vZGVsVHlwZXNIaXRUeXBlW1wiTm9IaXRcIl0gPSBcIm5vLWhpdFwiO1xuICAgIC8vIFxuICAgIFNjZW5lTW9kZWxUeXBlc0hpdFR5cGVbXCJBcmVhSGl0XCJdID0gXCJhcmVhLWhpdFwiO1xuICAgIC8vIFxuICAgIFNjZW5lTW9kZWxUeXBlc0hpdFR5cGVbXCJOZWFySGl0XCJdID0gXCJuZWFyLWhpdFwiO1xuICAgIC8vIFxuICAgIFNjZW5lTW9kZWxUeXBlc0hpdFR5cGVbXCJFeGFjdEhpdFwiXSA9IFwiZXhhY3QtaGl0XCI7XG59KShTY2VuZU1vZGVsVHlwZXNIaXRUeXBlID0gZXhwb3J0cy5TY2VuZU1vZGVsVHlwZXNIaXRUeXBlIHx8IChleHBvcnRzLlNjZW5lTW9kZWxUeXBlc0hpdFR5cGUgPSB7fSkpO1xuLy8gXG52YXIgU2NlbmVNb2RlbFR5cGVzSGl0VGVzdFN0eWxlO1xuKGZ1bmN0aW9uIChTY2VuZU1vZGVsVHlwZXNIaXRUZXN0U3R5bGUpIHtcbiAgICAvLyBcbiAgICBTY2VuZU1vZGVsVHlwZXNIaXRUZXN0U3R5bGVbXCJCb3VuZHNUZXN0XCJdID0gXCJib3VuZHMtdGVzdFwiO1xuICAgIC8vIFxuICAgIFNjZW5lTW9kZWxUeXBlc0hpdFRlc3RTdHlsZVtcIkV4YWN0VGVzdFwiXSA9IFwiZXhhY3QtdGVzdFwiO1xuICAgIC8vIFxuICAgIFNjZW5lTW9kZWxUeXBlc0hpdFRlc3RTdHlsZVtcIlJhZGlhbERpc3RhbmNlVGVzdFwiXSA9IFwicmFkaWFsLWRpc3RhbmNlLXRlc3RcIjtcbiAgICAvLyBcbiAgICBTY2VuZU1vZGVsVHlwZXNIaXRUZXN0U3R5bGVbXCJMYWJlbFRlc3RcIl0gPSBcImxhYmVsLXRlc3RcIjtcbn0pKFNjZW5lTW9kZWxUeXBlc0hpdFRlc3RTdHlsZSA9IGV4cG9ydHMuU2NlbmVNb2RlbFR5cGVzSGl0VGVzdFN0eWxlIHx8IChleHBvcnRzLlNjZW5lTW9kZWxUeXBlc0hpdFRlc3RTdHlsZSA9IHt9KSk7XG4vLyBcbnZhciBTY2VuZU1vZGVsVHlwZXNIaXRUZXN0RmxhZ3M7XG4oZnVuY3Rpb24gKFNjZW5lTW9kZWxUeXBlc0hpdFRlc3RGbGFncykge1xuICAgIC8vIFxuICAgIFNjZW5lTW9kZWxUeXBlc0hpdFRlc3RGbGFnc1tcIkhpdFRlc3RBbGxcIl0gPSBcImhpdC10ZXN0LWFsbFwiO1xuICAgIC8vIFxuICAgIFNjZW5lTW9kZWxUeXBlc0hpdFRlc3RGbGFnc1tcIkhpdFRlc3RJZ25vcmVMYWJlbHNcIl0gPSBcImhpdC10ZXN0LWlnbm9yZS1sYWJlbHNcIjtcbiAgICAvLyBcbiAgICBTY2VuZU1vZGVsVHlwZXNIaXRUZXN0RmxhZ3NbXCJIaXRUZXN0SWdub3JlQW5ub3RhdGlvbnNcIl0gPSBcImhpdC10ZXN0LWlnbm9yZS1hbm5vdGF0aW9uc1wiO1xuICAgIC8vIFxuICAgIFNjZW5lTW9kZWxUeXBlc0hpdFRlc3RGbGFnc1tcIkhpdFRlc3RGb3JPdmVybGF5XCJdID0gXCJoaXQtdGVzdC1mb3Itb3ZlcmxheVwiO1xufSkoU2NlbmVNb2RlbFR5cGVzSGl0VGVzdEZsYWdzID0gZXhwb3J0cy5TY2VuZU1vZGVsVHlwZXNIaXRUZXN0RmxhZ3MgfHwgKGV4cG9ydHMuU2NlbmVNb2RlbFR5cGVzSGl0VGVzdEZsYWdzID0ge30pKTtcbi8vIFxudmFyIEFubm90YXRlRW51bTtcbihmdW5jdGlvbiAoQW5ub3RhdGVFbnVtKSB7XG4gICAgLy8gXG4gICAgQW5ub3RhdGVFbnVtW1wiQUVfTWFya1wiXSA9IFwibWFya1wiO1xuICAgIC8vIFxuICAgIEFubm90YXRlRW51bVtcIkFFX1BvaW50XCJdID0gXCJwb2ludFwiO1xuICAgIC8vIFxuICAgIEFubm90YXRlRW51bVtcIkFFX0FyZWFcIl0gPSBcImFyZWFcIjtcbn0pKEFubm90YXRlRW51bSA9IGV4cG9ydHMuQW5ub3RhdGVFbnVtIHx8IChleHBvcnRzLkFubm90YXRlRW51bSA9IHt9KSk7XG4vLyBcbnZhciBNYXJrRW51bTtcbihmdW5jdGlvbiAoTWFya0VudW0pIHtcbiAgICAvLyBcbiAgICBNYXJrRW51bVtcIk1FX0F1dG9cIl0gPSBcImF1dG9cIjtcbiAgICAvLyBcbiAgICBNYXJrRW51bVtcIk1FX09uXCJdID0gXCJvblwiO1xuICAgIC8vIFxuICAgIE1hcmtFbnVtW1wiTUVfT2ZmXCJdID0gXCJvZmZcIjtcbiAgICAvLyBcbiAgICBNYXJrRW51bVtcIk1FX0NsZWFyXCJdID0gXCJjbGVhclwiO1xufSkoTWFya0VudW0gPSBleHBvcnRzLk1hcmtFbnVtIHx8IChleHBvcnRzLk1hcmtFbnVtID0ge30pKTtcbi8vIFxudmFyIFpvb21MZXZlbDtcbihmdW5jdGlvbiAoWm9vbUxldmVsKSB7XG4gICAgLy8gXG4gICAgWm9vbUxldmVsW1wiWk9PTV9FTlRJUkVfVklFV1wiXSA9IFwiem9vbS1lbnRpcmUtdmlld1wiO1xuICAgIC8vIFxuICAgIFpvb21MZXZlbFtcIlpPT01fRklUX1dJRFRIXCJdID0gXCJ6b29tLWZpdC13aWR0aFwiO1xuICAgIC8vIFxuICAgIFpvb21MZXZlbFtcIlpPT01fRklUX0hFSUdIVFwiXSA9IFwiem9vbS1maXQtaGVpZ2h0XCI7XG59KShab29tTGV2ZWwgPSBleHBvcnRzLlpvb21MZXZlbCB8fCAoZXhwb3J0cy5ab29tTGV2ZWwgPSB7fSkpO1xuLy8gXG52YXIgQWN0aW9uVHlwZTtcbihmdW5jdGlvbiAoQWN0aW9uVHlwZSkge1xuICAgIC8vIFxuICAgIEFjdGlvblR5cGVbXCJBVF9Vbmtub3duXCJdID0gXCJ1bmtub3duXCI7XG4gICAgLy8gXG4gICAgQWN0aW9uVHlwZVtcIkFUX0JydXNoXCJdID0gXCJicnVzaFwiO1xuICAgIC8vIFxuICAgIEFjdGlvblR5cGVbXCJBVF9GaWx0ZXJcIl0gPSBcImZpbHRlclwiO1xuICAgIC8vIFxuICAgIEFjdGlvblR5cGVbXCJBVF9VUkxcIl0gPSBcInVybFwiO1xufSkoQWN0aW9uVHlwZSA9IGV4cG9ydHMuQWN0aW9uVHlwZSB8fCAoZXhwb3J0cy5BY3Rpb25UeXBlID0ge30pKTtcbi8vIFxudmFyIFNoZWxmRHJvcEFjdGlvbjtcbihmdW5jdGlvbiAoU2hlbGZEcm9wQWN0aW9uKSB7XG4gICAgLy8gXG4gICAgU2hlbGZEcm9wQWN0aW9uW1wiU2RhUmVwbGFjZVwiXSA9IFwicmVwbGFjZVwiO1xuICAgIC8vIFxuICAgIFNoZWxmRHJvcEFjdGlvbltcIlNkYUNvbWJpbmVcIl0gPSBcImNvbWJpbmVcIjtcbiAgICAvLyBcbiAgICBTaGVsZkRyb3BBY3Rpb25bXCJTZGFJbnNlcnRcIl0gPSBcImluc2VydFwiO1xuICAgIC8vIFxuICAgIFNoZWxmRHJvcEFjdGlvbltcIlNkYVN3YXBcIl0gPSBcInN3YXBcIjtcbiAgICAvLyBcbiAgICBTaGVsZkRyb3BBY3Rpb25bXCJTZGFSZXBsYWNlQWxsXCJdID0gXCJyZXBsYWNlLWFsbFwiO1xufSkoU2hlbGZEcm9wQWN0aW9uID0gZXhwb3J0cy5TaGVsZkRyb3BBY3Rpb24gfHwgKGV4cG9ydHMuU2hlbGZEcm9wQWN0aW9uID0ge30pKTtcbi8vIFxudmFyIFNoZWxmRHJvcENvbnRleHQ7XG4oZnVuY3Rpb24gKFNoZWxmRHJvcENvbnRleHQpIHtcbiAgICAvLyBcbiAgICBTaGVsZkRyb3BDb250ZXh0W1wiU2hlbGZEcm9wQ29udGV4dF9Ob25lXCJdID0gXCJub25lXCI7XG4gICAgLy8gXG4gICAgU2hlbGZEcm9wQ29udGV4dFtcIlNoZWxmRHJvcENvbnRleHRfQ2F0ZWdvcmljYWxcIl0gPSBcImNhdGVnb3JpY2FsXCI7XG4gICAgLy8gXG4gICAgU2hlbGZEcm9wQ29udGV4dFtcIlNoZWxmRHJvcENvbnRleHRfUXVhbnRpdGF0aXZlXCJdID0gXCJxdWFudGl0YXRpdmVcIjtcbn0pKFNoZWxmRHJvcENvbnRleHQgPSBleHBvcnRzLlNoZWxmRHJvcENvbnRleHQgfHwgKGV4cG9ydHMuU2hlbGZEcm9wQ29udGV4dCA9IHt9KSk7XG4vLyBEcmFnL0Ryb3Agc291cmNlIGFuZCB0YXJnZXRcbnZhciBEcmFnRHJvcFR5cGU7XG4oZnVuY3Rpb24gKERyYWdEcm9wVHlwZSkge1xuICAgIC8vIGRyYWcgZnJvbSBvciBkcm9wIG9udG8gdml6XG4gICAgRHJhZ0Ryb3BUeXBlW1wiRHJhZ0Ryb3BfVml6XCJdID0gXCJkcmFnLWRyb3Atdml6XCI7XG4gICAgLy8gZHJhZyBmcm9tIG9yIGRyb3Agb250byBzaGVsZlxuICAgIERyYWdEcm9wVHlwZVtcIkRyYWdEcm9wX1NoZWxmXCJdID0gXCJkcmFnLWRyb3Atc2hlbGZcIjtcbiAgICAvLyBkcmFnIGZyb20gb3IgZHJvcCBvbnRvIHNjaGVtYVxuICAgIERyYWdEcm9wVHlwZVtcIkRyYWdEcm9wX1NjaGVtYVwiXSA9IFwiZHJhZy1kcm9wLXNjaGVtYVwiO1xuICAgIC8vIGRyYWcgZnJvbSBvciBkcm9wIG9udG8gbm93aGVyZVxuICAgIERyYWdEcm9wVHlwZVtcIkRyYWdEcm9wX05vbmVcIl0gPSBcImRyYWctZHJvcC1ub25lXCI7XG4gICAgLy8gZHJhZyBmcm9tIG9yIGRyb3Agb250byBjYWxjdWxhdGlvbiBlZGl0b3JcbiAgICBEcmFnRHJvcFR5cGVbXCJEcmFnRHJvcF9DYWxjdWxhdGlvbkVkaXRvclwiXSA9IFwiZHJhZy1kcm9wLWNhbGN1bGF0aW9uLWVkaXRvclwiO1xuICAgIC8vIGRyYWcgZnJvbSBwaXZvdCB3aW5kb3dcbiAgICBEcmFnRHJvcFR5cGVbXCJEcmFnRHJvcF9QaXZvdFwiXSA9IFwiZHJhZy1kcm9wLXBpdm90XCI7XG59KShEcmFnRHJvcFR5cGUgPSBleHBvcnRzLkRyYWdEcm9wVHlwZSB8fCAoZXhwb3J0cy5EcmFnRHJvcFR5cGUgPSB7fSkpO1xuLy8gRGlhbG9nIHR5cGUgcmVsYXRlZCB0byByZWRpcmVjdCBhY3Rpb24gcmVxdWlyZWQgYnkgVUlcbnZhciBDb21tYW5kUmVkaXJlY3RUeXBlO1xuKGZ1bmN0aW9uIChDb21tYW5kUmVkaXJlY3RUeXBlKSB7XG4gICAgLy8gYWRkIG5ldyBkYXRhIGNvbm5lY3Rpb24gZGlhbG9nXG4gICAgQ29tbWFuZFJlZGlyZWN0VHlwZVtcIkNvbW1hbmRSZWRpcmVjdF9BZGREYXRhQ29ubmVjdGlvblwiXSA9IFwiY29tbWFuZC1yZWRpcmVjdC1hZGQtZGF0YS1jb25uZWN0aW9uXCI7XG4gICAgLy8gY3JlYXRlIGRyaWxsIHBhdGggZGlhbG9nXG4gICAgQ29tbWFuZFJlZGlyZWN0VHlwZVtcIkNvbW1hbmRSZWRpcmVjdF9BZGREcmlsbFBhdGhcIl0gPSBcImNvbW1hbmQtcmVkaXJlY3QtYWRkLWRyaWxsLXBhdGhcIjtcbiAgICAvLyBjb25maXJtYXRpb24gZGlhbG9nXG4gICAgQ29tbWFuZFJlZGlyZWN0VHlwZVtcIkNvbW1hbmRSZWRpcmVjdF9Db25maXJtYXRpb25cIl0gPSBcImNvbW1hbmQtcmVkaXJlY3QtY29uZmlybWF0aW9uXCI7XG4gICAgLy8gc2hvd3MgdGhlIGZvcm1hdCB3b3JrYm9vayBwYW5lXG4gICAgQ29tbWFuZFJlZGlyZWN0VHlwZVtcIkNvbW1hbmRSZWRpcmVjdF9Gb3JtYXRXb3JrYm9va1wiXSA9IFwiY29tbWFuZC1yZWRpcmVjdC1mb3JtYXQtd29ya2Jvb2tcIjtcbiAgICAvLyBub3RpZmljYXRpb24gZGlhbG9nXG4gICAgQ29tbWFuZFJlZGlyZWN0VHlwZVtcIkNvbW1hbmRSZWRpcmVjdF9Ob3RpZmljYXRpb25cIl0gPSBcImNvbW1hbmQtcmVkaXJlY3Qtbm90aWZpY2F0aW9uXCI7XG4gICAgLy8gc2hvdyBudW1iZXIgZm9ybWF0dGluZyBkaWFsb2dcbiAgICBDb21tYW5kUmVkaXJlY3RUeXBlW1wiQ29tbWFuZFJlZGlyZWN0X051bWJlckZvcm1hdFwiXSA9IFwiY29tbWFuZC1yZWRpcmVjdC1udW1iZXItZm9ybWF0XCI7XG4gICAgLy8gZnVsbC1mZWF0dXJlZCBlZGl0b3JcbiAgICBDb21tYW5kUmVkaXJlY3RUeXBlW1wiQ29tbWFuZFJlZGlyZWN0X0VkaXRcIl0gPSBcImNvbW1hbmQtcmVkaXJlY3QtZWRpdFwiO1xuICAgIC8vIHF1aWNrIGVkaXRvclxuICAgIENvbW1hbmRSZWRpcmVjdFR5cGVbXCJDb21tYW5kUmVkaXJlY3RfUXVpY2tFZGl0XCJdID0gXCJjb21tYW5kLXJlZGlyZWN0LXF1aWNrLWVkaXRcIjtcbiAgICAvLyBpbmxpbmUgcmVuYW1lIGZpZWxkXG4gICAgQ29tbWFuZFJlZGlyZWN0VHlwZVtcIkNvbW1hbmRSZWRpcmVjdF9SZW5hbWVGaWVsZFwiXSA9IFwiY29tbWFuZC1yZWRpcmVjdC1yZW5hbWUtZmllbGRcIjtcbiAgICAvLyByZW5hbWUgZHJpbGwgcGF0aCBkaWFsb2dcbiAgICBDb21tYW5kUmVkaXJlY3RUeXBlW1wiQ29tbWFuZFJlZGlyZWN0X1JlbmFtZURyaWxsUGF0aFwiXSA9IFwiY29tbWFuZC1yZWRpcmVjdC1yZW5hbWUtZHJpbGwtcGF0aFwiO1xuICAgIC8vIHJlbmFtZSBzaGVldCBkaWFsb2dcbiAgICBDb21tYW5kUmVkaXJlY3RUeXBlW1wiQ29tbWFuZFJlZGlyZWN0X1JlbmFtZVNoZWV0XCJdID0gXCJjb21tYW5kLXJlZGlyZWN0LXJlbmFtZS1zaGVldFwiO1xuICAgIC8vIGVkaXQgd2ViIHpvbmUgdXJsXG4gICAgQ29tbWFuZFJlZGlyZWN0VHlwZVtcIkNvbW1hbmRSZWRpcmVjdF9FZGl0V2ViWm9uZVVybFwiXSA9IFwiY29tbWFuZC1yZWRpcmVjdC1lZGl0LXdlYi16b25lLXVybFwiO1xuICAgIC8vIGVkaXQgZm9ybWF0dGluZ1xuICAgIENvbW1hbmRSZWRpcmVjdFR5cGVbXCJDb21tYW5kUmVkaXJlY3RfRWRpdEZvcm1hdHRpbmdcIl0gPSBcImNvbW1hbmQtcmVkaXJlY3QtZWRpdC1mb3JtYXR0aW5nXCI7XG4gICAgLy8gY2F0ZWdvcmljYWwgYmluIGVkaXQgZGlhbG9nXG4gICAgQ29tbWFuZFJlZGlyZWN0VHlwZVtcIkNvbW1hbmRSZWRpcmVjdF9DYXRlZ29yaWNhbEJpbkVkaXRcIl0gPSBcImNvbW1hbmQtcmVkaXJlY3QtY2F0ZWdvcmljYWwtYmluLWVkaXRcIjtcbiAgICAvLyBudW1lcmljIGJpbiBlZGl0IGRpYWxvZ1xuICAgIENvbW1hbmRSZWRpcmVjdFR5cGVbXCJDb21tYW5kUmVkaXJlY3RfTnVtZXJpY0JpbkVkaXRcIl0gPSBcImNvbW1hbmQtcmVkaXJlY3QtbnVtZXJpYy1iaW4tZWRpdFwiO1xuICAgIC8vIHJpY2ggdGV4dCBkaWFsb2dcbiAgICBDb21tYW5kUmVkaXJlY3RUeXBlW1wiQ29tbWFuZFJlZGlyZWN0X1JpY2hUZXh0XCJdID0gXCJjb21tYW5kLXJlZGlyZWN0LXJpY2gtdGV4dFwiO1xuICAgIC8vIGRlbGV0ZSBzaGVldCBkaWFsb2dcbiAgICBDb21tYW5kUmVkaXJlY3RUeXBlW1wiQ29tbWFuZFJlZGlyZWN0X0RlbGV0ZVNoZWV0XCJdID0gXCJjb21tYW5kLXJlZGlyZWN0LWRlbGV0ZS1zaGVldFwiO1xuICAgIC8vIE5vIHJlZGlyZWN0IHJlcXVpcmVkXG4gICAgQ29tbWFuZFJlZGlyZWN0VHlwZVtcIkNvbW1hbmRSZWRpcmVjdF9Ob25lXCJdID0gXCJjb21tYW5kLXJlZGlyZWN0LW5vbmVcIjtcbn0pKENvbW1hbmRSZWRpcmVjdFR5cGUgPSBleHBvcnRzLkNvbW1hbmRSZWRpcmVjdFR5cGUgfHwgKGV4cG9ydHMuQ29tbWFuZFJlZGlyZWN0VHlwZSA9IHt9KSk7XG4vLyBEaXJlY3RpdmVzIGZvciBoZXVyaXN0aWNhbGx5IGludGVycHJldGluZyB1c2VyIGludGVudCBvZiBjb21tYW5kXG52YXIgSGV1cmlzdGljQ29tbWFuZFJlaW50ZXJwcmV0YXRpb247XG4oZnVuY3Rpb24gKEhldXJpc3RpY0NvbW1hbmRSZWludGVycHJldGF0aW9uKSB7XG4gICAgLy8gRGlyZWN0cyBUYWJsZWF1IHRvIG5vdCByZWludGVycHJldCBzcGVjaWZpY3Mgb2YgdGhlIGNvbW1hbmRcbiAgICBIZXVyaXN0aWNDb21tYW5kUmVpbnRlcnByZXRhdGlvbltcIkRvTm90UmVpbnRlcnByZXRDb21tYW5kXCJdID0gXCJkby1ub3QtcmVpbnRlcnByZXQtY29tbWFuZFwiO1xuICAgIC8vIERpcmVjdHMgVGFibGVhdSB0byBndWVzcyB0aGF0IHdoZW4gdGhlIHVzZXIgc2VsZWN0ZWQgYWxsIGl0ZW1zIGluIGEgZmlsdGVyLCB0aGUgaW50ZW50IHdhcyBhY3R1YWxseSB0byBzZWxlY3QgQUxMXG4gICAgSGV1cmlzdGljQ29tbWFuZFJlaW50ZXJwcmV0YXRpb25bXCJDYXRlZ29yaWNhbEZpbHRlcl9JbmZlckFsbFdoZW5FdmVyeXRoaW5nU2VsZWN0ZWRcIl0gPSBcImNhdGVnb3JpY2FsLWZpbHRlci1pbmZlci1hbGwtd2hlbi1ldmVyeXRoaW5nLXNlbGVjdGVkXCI7XG59KShIZXVyaXN0aWNDb21tYW5kUmVpbnRlcnByZXRhdGlvbiA9IGV4cG9ydHMuSGV1cmlzdGljQ29tbWFuZFJlaW50ZXJwcmV0YXRpb24gfHwgKGV4cG9ydHMuSGV1cmlzdGljQ29tbWFuZFJlaW50ZXJwcmV0YXRpb24gPSB7fSkpO1xuLy8gZmlsdGVyIHR5cGVzXG52YXIgRmlsdGVyVHlwZTtcbihmdW5jdGlvbiAoRmlsdGVyVHlwZSkge1xuICAgIC8vIFF1YW50aXRhdGl2ZVxuICAgIEZpbHRlclR5cGVbXCJGTFRSX1F1YW50aXRhdGl2ZVwiXSA9IFwiUXVhbnRpdGF0aXZlXCI7XG4gICAgLy8gQ2F0ZWdvcmljYWxcbiAgICBGaWx0ZXJUeXBlW1wiRkxUUl9DYXRlZ29yaWNhbFwiXSA9IFwiQ2F0ZWdvcmljYWxcIjtcbiAgICAvLyBIaWVyYXJjaGljYWxcbiAgICBGaWx0ZXJUeXBlW1wiRkxUUl9IaWVyYXJjaGljYWxcIl0gPSBcIkhpZXJhcmNoaWNhbFwiO1xuICAgIC8vIFJlbGF0aXZlIERhdGVcbiAgICBGaWx0ZXJUeXBlW1wiRkxUUl9SZWxhdGl2ZURhdGVcIl0gPSBcIlJlbGF0aXZlRGF0ZVwiO1xuICAgIC8vIFJlbGF0aXZlRGF0ZVBpY2tcbiAgICBGaWx0ZXJUeXBlW1wiRkxUUl9SZWxhdGl2ZURhdGVQaWNrXCJdID0gXCJSZWxhdGl2ZURhdGVQaWNrXCI7XG4gICAgLy8gTm90U3BlY2lmaWVkXG4gICAgRmlsdGVyVHlwZVtcIkZMVFJfRGVmYXVsdFwiXSA9IFwiRmlsdGVyRGVmYXVsdFwiO1xufSkoRmlsdGVyVHlwZSA9IGV4cG9ydHMuRmlsdGVyVHlwZSB8fCAoZXhwb3J0cy5GaWx0ZXJUeXBlID0ge30pKTtcbi8vIFBhcmFtZXRlciBlcnJvcnNcbnZhciBQYXJhbWV0ZXJFcnJvcjtcbihmdW5jdGlvbiAoUGFyYW1ldGVyRXJyb3IpIHtcbiAgICAvLyBmaWVsZCBhZ2dyZWdhdGlvbiBpcyBpbnZhbGlkXG4gICAgUGFyYW1ldGVyRXJyb3JbXCJJbnZhbGlkQWdnRmllbGRzXCJdID0gXCJpbnZhbGlkLWFnZy1maWVsZHNcIjtcbiAgICAvLyBmaWVsZCBpcyBpbnZhbGlkXG4gICAgUGFyYW1ldGVyRXJyb3JbXCJJbnZhbGlkRmllbGRzXCJdID0gXCJpbnZhbGlkLWZpZWxkc1wiO1xuICAgIC8vIGZpbHRlciB2YWx1ZXMgYXJlIGludmFsaWRcbiAgICBQYXJhbWV0ZXJFcnJvcltcIkludmFsaWRGaWx0ZXJWYWx1ZXNcIl0gPSBcImludmFsaWQtZmlsdGVyLXZhbHVlc1wiO1xuICAgIC8vIGRhdGUgdmFsdWUgaXMgaW52YWxpZFxuICAgIFBhcmFtZXRlckVycm9yW1wiSW52YWxpZERhdGVzXCJdID0gXCJpbnZhbGlkLWRhdGVzXCI7XG59KShQYXJhbWV0ZXJFcnJvciA9IGV4cG9ydHMuUGFyYW1ldGVyRXJyb3IgfHwgKGV4cG9ydHMuUGFyYW1ldGVyRXJyb3IgPSB7fSkpO1xuLy8gXG52YXIgU2VsZWN0aW9uVHlwZTtcbihmdW5jdGlvbiAoU2VsZWN0aW9uVHlwZSkge1xuICAgIC8vIFxuICAgIFNlbGVjdGlvblR5cGVbXCJTVF9UdXBsZXNcIl0gPSBcInR1cGxlc1wiO1xuICAgIC8vIFxuICAgIFNlbGVjdGlvblR5cGVbXCJTVF9Ob2Rlc1wiXSA9IFwibm9kZXNcIjtcbiAgICAvLyBcbiAgICBTZWxlY3Rpb25UeXBlW1wiU1RfVHJlbmRMaW5lc1wiXSA9IFwidHJlbmQtbGluZXNcIjtcbiAgICAvLyBcbiAgICBTZWxlY3Rpb25UeXBlW1wiU1RfTGVnZW5kSXRlbXNcIl0gPSBcImxlZ2VuZC1pdGVtc1wiO1xuICAgIC8vIFxuICAgIFNlbGVjdGlvblR5cGVbXCJTVF9SZWZMaW5lc1wiXSA9IFwicmVmLWxpbmVzXCI7XG4gICAgLy8gXG4gICAgU2VsZWN0aW9uVHlwZVtcIlNUX0Fubm90YXRpb25zXCJdID0gXCJhbm5vdGF0aW9uc1wiO1xuICAgIC8vIFxuICAgIFNlbGVjdGlvblR5cGVbXCJTVF9PcmllbnRlZE5vZGVzXCJdID0gXCJvcmllbnRlZC1ub2Rlc1wiO1xuICAgIC8vIFxuICAgIFNlbGVjdGlvblR5cGVbXCJTVF9TaGVsZkZpZWxkc1wiXSA9IFwic2hlbGYtZmllbGRzXCI7XG59KShTZWxlY3Rpb25UeXBlID0gZXhwb3J0cy5TZWxlY3Rpb25UeXBlIHx8IChleHBvcnRzLlNlbGVjdGlvblR5cGUgPSB7fSkpO1xuLy8gXG52YXIgU2VsZWN0aW9uVXBkYXRlVHlwZTtcbihmdW5jdGlvbiAoU2VsZWN0aW9uVXBkYXRlVHlwZSkge1xuICAgIC8vIFxuICAgIFNlbGVjdGlvblVwZGF0ZVR5cGVbXCJTVV9BRERcIl0gPSBcInNlbGVjdC1hZGRcIjtcbiAgICAvLyBcbiAgICBTZWxlY3Rpb25VcGRhdGVUeXBlW1wiU1VfUkVNT1ZFXCJdID0gXCJzZWxlY3QtcmVtb3ZlXCI7XG4gICAgLy8gXG4gICAgU2VsZWN0aW9uVXBkYXRlVHlwZVtcIlNVX1JFUExBQ0VcIl0gPSBcInNlbGVjdC1yZXBsYWNlXCI7XG59KShTZWxlY3Rpb25VcGRhdGVUeXBlID0gZXhwb3J0cy5TZWxlY3Rpb25VcGRhdGVUeXBlIHx8IChleHBvcnRzLlNlbGVjdGlvblVwZGF0ZVR5cGUgPSB7fSkpO1xuLy8gXG52YXIgU2VsZWN0T3B0aW9ucztcbihmdW5jdGlvbiAoU2VsZWN0T3B0aW9ucykge1xuICAgIC8vIE5vIGtleSBkb3duXG4gICAgU2VsZWN0T3B0aW9uc1tcIlNlbGVjdE9wdGlvbnNTaW1wbGVcIl0gPSBcInNlbGVjdC1vcHRpb25zLXNpbXBsZVwiO1xuICAgIC8vIEN0cmwga2V5IGRvd25cbiAgICBTZWxlY3RPcHRpb25zW1wiU2VsZWN0T3B0aW9uc1RvZ2dsZVwiXSA9IFwic2VsZWN0LW9wdGlvbnMtdG9nZ2xlXCI7XG4gICAgLy8gU2hpZnQga2V5IGRvd25cbiAgICBTZWxlY3RPcHRpb25zW1wiU2VsZWN0T3B0aW9uc1JhbmdlXCJdID0gXCJzZWxlY3Qtb3B0aW9ucy1yYW5nZVwiO1xuICAgIC8vIFVzdWFsbHkgdHJpZ2dlcmVkIGJ5IHJpZ2h0IGNsaWNrXG4gICAgU2VsZWN0T3B0aW9uc1tcIlNlbGVjdE9wdGlvbnNNb3VzZU1lbnVcIl0gPSBcInNlbGVjdC1vcHRpb25zLW1lbnVcIjtcbiAgICAvLyBBbiBhdHRlbXB0IHRvIHNlbGVjdCB2aWEgc2VhcmNoXG4gICAgU2VsZWN0T3B0aW9uc1tcIlNlbGVjdE9wdGlvbnNTZWFyY2hNYXRjaFwiXSA9IFwic2VsZWN0LW9wdGlvbnMtc2VhcmNoXCI7XG59KShTZWxlY3RPcHRpb25zID0gZXhwb3J0cy5TZWxlY3RPcHRpb25zIHx8IChleHBvcnRzLlNlbGVjdE9wdGlvbnMgPSB7fSkpO1xuLy8gXG52YXIgV2hpdGVzcGFjZVNlbGVjdGlvbkJlaGF2aW9yO1xuKGZ1bmN0aW9uIChXaGl0ZXNwYWNlU2VsZWN0aW9uQmVoYXZpb3IpIHtcbiAgICAvLyBDbGVhciBzZWxlY3Rpb24gb3ZlciB3aGl0ZXNwYWNlIGJhc2VkIG9uIGRlZmF1bHQgZmFjdG9ycyAoaS5lLiwgYXJlIHdlIGluIGFwcGVuZCBtb2RlPylcbiAgICBXaGl0ZXNwYWNlU2VsZWN0aW9uQmVoYXZpb3JbXCJEZWZhdWx0XCJdID0gXCJkZWZhdWx0XCI7XG4gICAgLy8gQWx3YXlzIGNsZWFyIHNlbGVjdGlvbiBvdmVyIHdoaXRlc3BhY2VcbiAgICBXaGl0ZXNwYWNlU2VsZWN0aW9uQmVoYXZpb3JbXCJBbHdheXNDbGVhclwiXSA9IFwiYWx3YXlzLWNsZWFyXCI7XG4gICAgLy8gTmV2ZXIgY2xlYXIgc2VsZWN0aW9uIG92ZXIgd2hpdGVzcGFjZVxuICAgIFdoaXRlc3BhY2VTZWxlY3Rpb25CZWhhdmlvcltcIk5ldmVyQ2xlYXJcIl0gPSBcIm5ldmVyLWNsZWFyXCI7XG59KShXaGl0ZXNwYWNlU2VsZWN0aW9uQmVoYXZpb3IgPSBleHBvcnRzLldoaXRlc3BhY2VTZWxlY3Rpb25CZWhhdmlvciB8fCAoZXhwb3J0cy5XaGl0ZXNwYWNlU2VsZWN0aW9uQmVoYXZpb3IgPSB7fSkpO1xuLy8gXG52YXIgT3JpZW50YXRpb247XG4oZnVuY3Rpb24gKE9yaWVudGF0aW9uKSB7XG4gICAgLy8gXG4gICAgT3JpZW50YXRpb25bXCJWZXJ0aWNhbFwiXSA9IFwiby12ZXJ0XCI7XG4gICAgLy8gXG4gICAgT3JpZW50YXRpb25bXCJIb3Jpem9udGFsXCJdID0gXCJvLWhvcml6XCI7XG4gICAgLy8gXG4gICAgT3JpZW50YXRpb25bXCJPQXV0b21hdGljXCJdID0gXCJvLWF1dG9cIjtcbn0pKE9yaWVudGF0aW9uID0gZXhwb3J0cy5PcmllbnRhdGlvbiB8fCAoZXhwb3J0cy5PcmllbnRhdGlvbiA9IHt9KSk7XG4vLyBcbnZhciBTY2FsZVR5cGU7XG4oZnVuY3Rpb24gKFNjYWxlVHlwZSkge1xuICAgIC8vIFxuICAgIFNjYWxlVHlwZVtcIkxvZ1wiXSA9IFwibG9nXCI7XG4gICAgLy8gXG4gICAgU2NhbGVUeXBlW1wiTGluZWFyXCJdID0gXCJsaW5lYXJcIjtcbn0pKFNjYWxlVHlwZSA9IGV4cG9ydHMuU2NhbGVUeXBlIHx8IChleHBvcnRzLlNjYWxlVHlwZSA9IHt9KSk7XG4vLyB0eXBlIG9mIG9iamVjdCBhY3Rpb24gYXBwbGllcyB0b1xudmFyIFNvdXJjZVR5cGU7XG4oZnVuY3Rpb24gKFNvdXJjZVR5cGUpIHtcbiAgICAvLyBhbGwgc2hlZXRzIGluIHRoZSB3b3JrYm9va1xuICAgIFNvdXJjZVR5cGVbXCJTVF9BbGxcIl0gPSBcImFsbFwiO1xuICAgIC8vIGFsbCBzaGVldHMgcmVmZXJlbmNpbmcgYSBnaXZlbiBkYXRhc291cmNlXG4gICAgU291cmNlVHlwZVtcIlNUX0RhdGFzb3VyY2VcIl0gPSBcImRhdGFzb3VyY2VcIjtcbiAgICAvLyB3b3Jrc2hlZXQgb3IgZGFzaGJvYXJkXG4gICAgU291cmNlVHlwZVtcIlNUX1NoZWV0XCJdID0gXCJzaGVldFwiO1xufSkoU291cmNlVHlwZSA9IGV4cG9ydHMuU291cmNlVHlwZSB8fCAoZXhwb3J0cy5Tb3VyY2VUeXBlID0ge30pKTtcbi8vIGhvdyBhbiBhY3Rpb24gZ2V0cyBhY3RpdmF0ZWRcbnZhciBBY3RpdmF0aW9uTWV0aG9kO1xuKGZ1bmN0aW9uIChBY3RpdmF0aW9uTWV0aG9kKSB7XG4gICAgLy8gZS5nLiBieSBwaWNraW5nIGFuIG9wdGlvbiBmcm9tIGEgY29udGV4dCBtZW51XG4gICAgQWN0aXZhdGlvbk1ldGhvZFtcIkFNX0V4cGxpY2l0XCJdID0gXCJleHBsaWNpdGx5XCI7XG4gICAgLy8gYXV0byBhY3RpdmF0ZWQgd2hlbiBtYXJrcyBhcmUgc2VsZWN0ZWRcbiAgICBBY3RpdmF0aW9uTWV0aG9kW1wiQU1fT25TZWxlY3RcIl0gPSBcIm9uLXNlbGVjdFwiO1xuICAgIC8vIGF1dG8gYWN0aXZhdGVkIHdoZW4gdGhlIHVzZXIgbW92ZXMgdGhlIG1vdXNlIG92ZXIgYSBtYXJrXG4gICAgQWN0aXZhdGlvbk1ldGhvZFtcIkFNX09uSG92ZXJcIl0gPSBcIm9uLWhvdmVyXCI7XG59KShBY3RpdmF0aW9uTWV0aG9kID0gZXhwb3J0cy5BY3RpdmF0aW9uTWV0aG9kIHx8IChleHBvcnRzLkFjdGl2YXRpb25NZXRob2QgPSB7fSkpO1xuLy8gd2hldGhlciBhbiBhY3Rpb24gc2hvdWxkIGJlIHJ1biB3aGVuIHNlbGVjdGlvbiBpcyBjbGVhcmVkXG52YXIgT25DbGVhcjtcbihmdW5jdGlvbiAoT25DbGVhcikge1xuICAgIC8vIGRvIG5vdGhpbmcsIGUuZy4gbGVhdmUgZmlsdGVyIGluIHBsYWNlXG4gICAgT25DbGVhcltcIk9DX05vdGhpbmdcIl0gPSBcIm5vdGhpbmdcIjtcbiAgICAvLyBzaG93IGFsbCB2YWx1ZXNcbiAgICBPbkNsZWFyW1wiT0NfU2hvd0FsbFwiXSA9IFwic2hvdy1hbGxcIjtcbiAgICAvLyBleGNsdWRlIGV2ZXJ5dGhpbmdcbiAgICBPbkNsZWFyW1wiT0NfRXhjbHVkZUFsbFwiXSA9IFwiZXhjbHVkZS1hbGxcIjtcbn0pKE9uQ2xlYXIgPSBleHBvcnRzLk9uQ2xlYXIgfHwgKGV4cG9ydHMuT25DbGVhciA9IHt9KSk7XG4vLyBcbnZhciBNZXJnZU9yU3BsaXQ7XG4oZnVuY3Rpb24gKE1lcmdlT3JTcGxpdCkge1xuICAgIC8vIFxuICAgIE1lcmdlT3JTcGxpdFtcIk1PU19NRVJHRVwiXSA9IFwibWVyZ2VcIjtcbiAgICAvLyBcbiAgICBNZXJnZU9yU3BsaXRbXCJNT1NfU1BMSVRcIl0gPSBcInNwbGl0XCI7XG59KShNZXJnZU9yU3BsaXQgPSBleHBvcnRzLk1lcmdlT3JTcGxpdCB8fCAoZXhwb3J0cy5NZXJnZU9yU3BsaXQgPSB7fSkpO1xuLy8gXG52YXIgTWFya0xheW91dFByaW1pdGl2ZTtcbihmdW5jdGlvbiAoTWFya0xheW91dFByaW1pdGl2ZSkge1xuICAgIC8vIFxuICAgIE1hcmtMYXlvdXRQcmltaXRpdmVbXCJTaGFwZVByaW1pdGl2ZVwiXSA9IFwic2hhcGVcIjtcbiAgICAvLyBcbiAgICBNYXJrTGF5b3V0UHJpbWl0aXZlW1wiTGluZVByaW1pdGl2ZVwiXSA9IFwibGluZVwiO1xuICAgIC8vIFxuICAgIE1hcmtMYXlvdXRQcmltaXRpdmVbXCJCYXJQcmltaXRpdmVcIl0gPSBcImJhclwiO1xuICAgIC8vIFxuICAgIE1hcmtMYXlvdXRQcmltaXRpdmVbXCJQb2xhckJhclByaW1pdGl2ZVwiXSA9IFwicG9sYXItYmFyXCI7XG4gICAgLy8gXG4gICAgTWFya0xheW91dFByaW1pdGl2ZVtcIlRleHRQcmltaXRpdmVcIl0gPSBcInRleHRcIjtcbiAgICAvLyBcbiAgICBNYXJrTGF5b3V0UHJpbWl0aXZlW1wiTGFiZWxQcmltaXRpdmVcIl0gPSBcImxhYmVsXCI7XG4gICAgLy8gXG4gICAgTWFya0xheW91dFByaW1pdGl2ZVtcIlBpZVByaW1pdGl2ZVwiXSA9IFwicGllXCI7XG4gICAgLy8gXG4gICAgTWFya0xheW91dFByaW1pdGl2ZVtcIkFyZWFQcmltaXRpdmVcIl0gPSBcImFyZWFcIjtcbiAgICAvLyBcbiAgICBNYXJrTGF5b3V0UHJpbWl0aXZlW1wiUG9seWdvblByaW1pdGl2ZVwiXSA9IFwicG9seWdvblwiO1xuICAgIC8vIFxuICAgIE1hcmtMYXlvdXRQcmltaXRpdmVbXCJNdWx0aXBvbHlnb25QcmltaXRpdmVcIl0gPSBcIm11bHRpcG9seWdvblwiO1xuICAgIC8vIFxuICAgIE1hcmtMYXlvdXRQcmltaXRpdmVbXCJTcXVhcmVQcmltaXRpdmVcIl0gPSBcInNxdWFyZVwiO1xufSkoTWFya0xheW91dFByaW1pdGl2ZSA9IGV4cG9ydHMuTWFya0xheW91dFByaW1pdGl2ZSB8fCAoZXhwb3J0cy5NYXJrTGF5b3V0UHJpbWl0aXZlID0ge30pKTtcbi8vIERvZXMgdGhlIFBhbmVUeXBlL1ByaW1pdGl2ZVR5cGUvTGF5b3V0VHlwZSB0cmlwbGV0IHJlc3VsdCBpbiB2ZXJ5IHNwZWNpZmljIGxheW91dCBydWxlcz9cbnZhciBNYXJrTGF5b3V0Vml6VHlwZTtcbihmdW5jdGlvbiAoTWFya0xheW91dFZpelR5cGUpIHtcbiAgICAvLyBObyBzcGVjaWFsIHJ1bGVzXG4gICAgTWFya0xheW91dFZpelR5cGVbXCJTdGFuZGFyZFwiXSA9IFwic3RhbmRhcmRcIjtcbiAgICAvLyBHZW5lcmljIE9PIFN0YWNrZWQgcnVsZXNcbiAgICBNYXJrTGF5b3V0Vml6VHlwZVtcIk9PU3RhY2tlZFwiXSA9IFwib28tc3RhY2tlZFwiO1xuICAgIC8vIE9PIEdhbnR0IFN0YWNrZWQgcnVsZXNcbiAgICBNYXJrTGF5b3V0Vml6VHlwZVtcIkdhbnR0U3RhY2tlZFwiXSA9IFwiZ2FudHQtc3RhY2tlZFwiO1xuICAgIC8vIFRyZWVtYXBcbiAgICBNYXJrTGF5b3V0Vml6VHlwZVtcIlRyZWVtYXBcIl0gPSBcInRyZWVtYXBcIjtcbiAgICAvLyBCdWJibGUgQ2hhcnQgLS0gT08gUGFja2VkIGNpcmNsZXMgb3Igc2hhcGVzXG4gICAgTWFya0xheW91dFZpelR5cGVbXCJCdWJibGVcIl0gPSBcImJ1YmJsZVwiO1xuICAgIC8vIFdvcmRsZVxuICAgIE1hcmtMYXlvdXRWaXpUeXBlW1wiV29yZGxlXCJdID0gXCJ3b3JkbGVcIjtcbiAgICAvLyBIaWdobGlnaHQgVGFibGVcbiAgICBNYXJrTGF5b3V0Vml6VHlwZVtcIkhpZ2hsaWdodFwiXSA9IFwiaGlnaGxpZ2h0XCI7XG59KShNYXJrTGF5b3V0Vml6VHlwZSA9IGV4cG9ydHMuTWFya0xheW91dFZpelR5cGUgfHwgKGV4cG9ydHMuTWFya0xheW91dFZpelR5cGUgPSB7fSkpO1xuLy8gXG52YXIgTWFya0xheW91dEhhbmRsZVNwZWNpYWxzO1xuKGZ1bmN0aW9uIChNYXJrTGF5b3V0SGFuZGxlU3BlY2lhbHMpIHtcbiAgICAvLyBcbiAgICBNYXJrTGF5b3V0SGFuZGxlU3BlY2lhbHNbXCJDYXRlZ29yaWNhbEF4aXNcIl0gPSBcImNhdGVnb3JpY2FsLWF4aXNcIjtcbiAgICAvLyBcbiAgICBNYXJrTGF5b3V0SGFuZGxlU3BlY2lhbHNbXCJTaG93U3BlY2lhbHNcIl0gPSBcInNob3ctc3BlY2lhbHNcIjtcbiAgICAvLyBcbiAgICBNYXJrTGF5b3V0SGFuZGxlU3BlY2lhbHNbXCJPbWl0U3BlY2lhbHNcIl0gPSBcIm9taXQtc3BlY2lhbHNcIjtcbiAgICAvLyBcbiAgICBNYXJrTGF5b3V0SGFuZGxlU3BlY2lhbHNbXCJCcmVha09uU3BlY2lhbHNcIl0gPSBcImJyZWFrLW9uLXNwZWNpYWxzXCI7XG59KShNYXJrTGF5b3V0SGFuZGxlU3BlY2lhbHMgPSBleHBvcnRzLk1hcmtMYXlvdXRIYW5kbGVTcGVjaWFscyB8fCAoZXhwb3J0cy5NYXJrTGF5b3V0SGFuZGxlU3BlY2lhbHMgPSB7fSkpO1xuLy8gXG52YXIgTWFya0xheW91dE1hcmtGbGFnO1xuKGZ1bmN0aW9uIChNYXJrTGF5b3V0TWFya0ZsYWcpIHtcbiAgICAvLyBtYXJrIGRvZXMgbm90IGNvbm5lY3QgdG8gdGhlIG5leHQgbWFya1xuICAgIE1hcmtMYXlvdXRNYXJrRmxhZ1tcIkVuZFwiXSA9IFwiZW5kXCI7XG4gICAgLy8gbGFzdCBtYXJrIGluIGEgbXVsdGktcHJpbWl0aXZlXG4gICAgTWFya0xheW91dE1hcmtGbGFnW1wiRW5kUHJpbWl0aXZlXCJdID0gXCJlbmRwcmltaXRpdmVcIjtcbiAgICAvLyBsYXN0IG1hcmsgaGFzIGFuIGVkZ2UgY29ubmVjdG9yIHRvIGZpcnN0IG1hcmtcbiAgICBNYXJrTGF5b3V0TWFya0ZsYWdbXCJDbG9zZWRQcmltaXRpdmVcIl0gPSBcImNsb3NlZHByaW1pdGl2ZVwiO1xuICAgIC8vIHZpc3VhbCBtYXJrZXIgc2hvdWxkIGJlIGRpc3BsYXllZFxuICAgIE1hcmtMYXlvdXRNYXJrRmxhZ1tcIk1hcmtlZFwiXSA9IFwibWFya2VkXCI7XG4gICAgLy8gdmlzdWFsIG1hcmtlciBzaG91bGQgYmUgZGlzcGxheWVkIGlmIGxhYmVsbGVkXG4gICAgTWFya0xheW91dE1hcmtGbGFnW1wiTWFya2VkSWZMYWJlbFwiXSA9IFwibWFya2VkaWZsYWJlbFwiO1xuICAgIC8vIGRpc3BsYXkgZGVidWcgaW5mb3JtYXRpb25cbiAgICBNYXJrTGF5b3V0TWFya0ZsYWdbXCJEZWJ1Z1wiXSA9IFwiZGVidWdcIjtcbiAgICAvLyB1c2VyIGZsYWdzIGNhbiBiZWdpbiBoZXJlXG4gICAgTWFya0xheW91dE1hcmtGbGFnW1wiVXNlclwiXSA9IFwidXNlclwiO1xufSkoTWFya0xheW91dE1hcmtGbGFnID0gZXhwb3J0cy5NYXJrTGF5b3V0TWFya0ZsYWcgfHwgKGV4cG9ydHMuTWFya0xheW91dE1hcmtGbGFnID0ge30pKTtcbi8vIFxudmFyIE1hcmtMYXlvdXRQYW5lRmxhZztcbihmdW5jdGlvbiAoTWFya0xheW91dFBhbmVGbGFnKSB7XG4gICAgLy8gQWxsb3dzIHNjZW5lIHRvIGJlIHBhbm5lZCBpbiB0aGUgWCBkaXJlY3Rpb25cbiAgICBNYXJrTGF5b3V0UGFuZUZsYWdbXCJFbmFibGVQYW5YXCJdID0gXCJlbmFibGUtcGFuLXhcIjtcbiAgICAvLyBBbGxvd3Mgc2NlbmUgdG8gYmUgcGFubmVkIGluIHRoZSBZIGRpcmVjdGlvblxuICAgIE1hcmtMYXlvdXRQYW5lRmxhZ1tcIkVuYWJsZVBhbllcIl0gPSBcImVuYWJsZS1wYW4teVwiO1xuICAgIC8vIEFsbG93cyB0aGUgcG9zaXRpb25zIG9mIG1hcmtzIHRvIGJlIHNjYWxlZCBpbiB0aGUgWCBkaXJlY3Rpb24gYXMgdGhlIHZpZXcgaXMgem9vbWVkXG4gICAgTWFya0xheW91dFBhbmVGbGFnW1wiRW5hYmxlWm9vbVhcIl0gPSBcImVuYWJsZS16b29tLXhcIjtcbiAgICAvLyBBbGxvd3MgdGhlIHBvc2l0aW9ucyBvZiBtYXJrcyB0byBiZSBzY2FsZWQgaW4gdGhlIFkgZGlyZWN0aW9uIGFzIHRoZSB2aWV3IGlzIHpvb21lZFxuICAgIE1hcmtMYXlvdXRQYW5lRmxhZ1tcIkVuYWJsZVpvb21ZXCJdID0gXCJlbmFibGUtem9vbS15XCI7XG4gICAgLy8gQWxsb3dzIHRoZSBzaXplIG9mIG1hcmtzIHRvIGJlIHNjYWxlZCBpbiB0aGUgWCBkaXJlY3Rpb24gYXMgdGhlIHZpZXcgaXMgem9vbWVkOyByZXF1aXJlcyB3aWR0aCBpbiBkb21haW4gY29vcmRpbmF0ZXNcbiAgICBNYXJrTGF5b3V0UGFuZUZsYWdbXCJFbmFibGVTY2FsZVhcIl0gPSBcImVuYWJsZS1zY2FsZS14XCI7XG4gICAgLy8gQWxsb3dzIHRoZSBzaXplIG9mIG1hcmtzIHRvIGJlIHNjYWxlZCBpbiB0aGUgWSBkaXJlY3Rpb24gYXMgdGhlIHZpZXcgaXMgem9vbWVkOyByZXF1aXJlcyBoZWlnaHQgaW4gZG9tYWluIGNvb3JkaW5hdGVzXG4gICAgTWFya0xheW91dFBhbmVGbGFnW1wiRW5hYmxlU2NhbGVZXCJdID0gXCJlbmFibGUtc2NhbGUteVwiO1xuICAgIC8vIENsaXAgdG8gY2VsbCBib3JkZXJzIGluIHRoZSB4IGRpcmVjdGlvblxuICAgIE1hcmtMYXlvdXRQYW5lRmxhZ1tcIkNsaXBUb0NlbGxYXCJdID0gXCJjbGlwLXRvLWNlbGwteFwiO1xuICAgIC8vIENsaXAgdG8gY2VsbCBib3JkZXJzIGluIHRoZSB5IGRpcmVjdGlvblxuICAgIE1hcmtMYXlvdXRQYW5lRmxhZ1tcIkNsaXBUb0NlbGxZXCJdID0gXCJjbGlwLXRvLWNlbGwteVwiO1xuICAgIC8vIFVzZSBjZWxsIGNsaXBwaW5nIGZvciBzZWxlY3Rpb25cbiAgICBNYXJrTGF5b3V0UGFuZUZsYWdbXCJDbGlwVG9DZWxsRm9yU2VsZWN0aW9uXCJdID0gXCJjbGlwLXRvLWNlbGwtZm9yLXNlbGVjdGlvblwiO1xuICAgIC8vIFRoZSB4LWF4aXMgaXMgb24gdG9wIG9mIHBhbmVcbiAgICBNYXJrTGF5b3V0UGFuZUZsYWdbXCJYQXhpc09uVG9wXCJdID0gXCJ4LWF4aXMtb24tdG9wXCI7XG4gICAgLy8gVGhlIHktYXhpcyBpcyBvbiB0aGUgcmlnaHQgb2YgcGFuZVxuICAgIE1hcmtMYXlvdXRQYW5lRmxhZ1tcIllBeGlzT25SaWdodFwiXSA9IFwieS1heGlzLW9uLXJpZ2h0XCI7XG4gICAgLy8gVGhlIHBhbmUgaGFzIGNlbGxzIGluIHRoZSB4IGF4aXNcbiAgICBNYXJrTGF5b3V0UGFuZUZsYWdbXCJIYXNDZWxsc1hcIl0gPSBcImhhcy1jZWxscy14XCI7XG4gICAgLy8gVGhlIHBhbmUgaGFzIGNlbGxzIGluIHRoZSB5IGF4aXNcbiAgICBNYXJrTGF5b3V0UGFuZUZsYWdbXCJIYXNDZWxsc1lcIl0gPSBcImhhcy1jZWxscy15XCI7XG59KShNYXJrTGF5b3V0UGFuZUZsYWcgPSBleHBvcnRzLk1hcmtMYXlvdXRQYW5lRmxhZyB8fCAoZXhwb3J0cy5NYXJrTGF5b3V0UGFuZUZsYWcgPSB7fSkpO1xuLy8gXG52YXIgTWFya0xheW91dERyb3BMaW5lRmxhZztcbihmdW5jdGlvbiAoTWFya0xheW91dERyb3BMaW5lRmxhZykge1xuICAgIC8vIFNob3cgZHJvcCBsaW5lcyBvbiBzZWxlY3RlZCBtYXJrXG4gICAgTWFya0xheW91dERyb3BMaW5lRmxhZ1tcIkRyb3BMaW5lU2hvd1NlbGVjdGVkXCJdID0gXCJkcm9wbGluZS1zaG93LXNlbGVjdGVkXCI7XG4gICAgLy8gU2hvdyBkcm9wIGxpbmVzIG9uIGFsbCBtYXJrc1xuICAgIE1hcmtMYXlvdXREcm9wTGluZUZsYWdbXCJEcm9wTGluZVNob3dBbGxcIl0gPSBcImRyb3BsaW5lLXNob3ctYWxsXCI7XG4gICAgLy8gRHJvcCBsaW5lIHRvIHgtYXhpc1xuICAgIE1hcmtMYXlvdXREcm9wTGluZUZsYWdbXCJEcm9wTGluZVhcIl0gPSBcImRyb3BsaW5lLXhcIjtcbiAgICAvLyBEcm9wIGxpbmUgdG8geS1heGlzXG4gICAgTWFya0xheW91dERyb3BMaW5lRmxhZ1tcIkRyb3BMaW5lWVwiXSA9IFwiZHJvcGxpbmUteVwiO1xuICAgIC8vIFNob3cgbGFiZWxzIG9uIGRyb3AgbGluZXNcbiAgICBNYXJrTGF5b3V0RHJvcExpbmVGbGFnW1wiRHJvcExpbmVMYWJlbHNcIl0gPSBcImRyb3BsaW5lLWxhYmVsc1wiO1xufSkoTWFya0xheW91dERyb3BMaW5lRmxhZyA9IGV4cG9ydHMuTWFya0xheW91dERyb3BMaW5lRmxhZyB8fCAoZXhwb3J0cy5NYXJrTGF5b3V0RHJvcExpbmVGbGFnID0ge30pKTtcbi8vIElkZW50aWZpZXMgdGhlIG9mZnNldCBmb3IgYSBwYXJ0aWN1bGFyIHRhYmxlIGluIHRoZSBhcnJheSBvZiB0YWJsZXMgaW4gUERNYXJrc1ByZXNNb2RlbFxudmFyIE1hcmtMYXlvdXREYXRhVGFibGVJRDtcbihmdW5jdGlvbiAoTWFya0xheW91dERhdGFUYWJsZUlEKSB7XG4gICAgLy8gVGhlIHRhYmxlIHRoYXQgY29udGFpbnMgdGhlIG1hcmsgaW5mb3JtYXRpb25cbiAgICBNYXJrTGF5b3V0RGF0YVRhYmxlSURbXCJNYXJrVGFibGVcIl0gPSBcIm1hcmstdGFibGVcIjtcbiAgICAvLyBUaGUgdGFibGUgdGhhdCBjb250YWlucyB0ZXh0IHJ1bnMgZm9yIHRleHQgbWFya3MgYW5kIGxhYmVsc1xuICAgIE1hcmtMYXlvdXREYXRhVGFibGVJRFtcIlRleHRSdW5UYWJsZVwiXSA9IFwidGV4dC1ydW4tdGFibGVcIjtcbiAgICAvLyBUaGUgdGFibGUgdGhhdCBjb250YWlucyB0ZXh0IHN0eWxlcyBmb3IgZWFjaCB0ZXh0IHJ1bi5cbiAgICBNYXJrTGF5b3V0RGF0YVRhYmxlSURbXCJUZXh0U3R5bGVUYWJsZVwiXSA9IFwidGV4dC1zdHlsZS10YWJsZVwiO1xufSkoTWFya0xheW91dERhdGFUYWJsZUlEID0gZXhwb3J0cy5NYXJrTGF5b3V0RGF0YVRhYmxlSUQgfHwgKGV4cG9ydHMuTWFya0xheW91dERhdGFUYWJsZUlEID0ge30pKTtcbi8vIFdoaWNoIGxhYmVsaW5nIGFsZ29yaXRobSBzaG91bGQgYmUgdXNlZD8gIENsb3NlbHkgcmVsYXRlZCB0byBNYXJrTGF5b3V0OjpWaXpUeXBlXG52YXIgTGFiZWxMYXlvdXRUeXBlO1xuKGZ1bmN0aW9uIChMYWJlbExheW91dFR5cGUpIHtcbiAgICAvLyBObyBsYWJlbHNcbiAgICBMYWJlbExheW91dFR5cGVbXCJMQUJFTF9MQVlPVVRfTk9ORVwiXSA9IFwidW5sYWJlbGVkXCI7XG4gICAgLy8gVHJlZW1hcCAtIGxhYmVscyBpbnNpZGUgdGhlIHJlY3RhbmdsZXNcbiAgICBMYWJlbExheW91dFR5cGVbXCJMQUJFTF9MQVlPVVRfVFJFRU1BUFwiXSA9IFwidHJlZW1hcC1sYWJlbHNcIjtcbiAgICAvLyBCdWJibGUgQ2hhcnQgLSBsYWJlbHMgaW5zaWRlIHRoZSBzaGFwZXNcbiAgICBMYWJlbExheW91dFR5cGVbXCJMQUJFTF9MQVlPVVRfQlVCQkxFQ0hBUlRcIl0gPSBcImJ1YmJsZS1sYWJlbHNcIjtcbiAgICAvLyBTY2F0dGVycGxvdCAtIGR5bmFtaWMgYmVzdC1maXQgbGFiZWxzXG4gICAgTGFiZWxMYXlvdXRUeXBlW1wiTEFCRUxfTEFZT1VUX1NDQVRURVJQTE9UXCJdID0gXCJzY2F0dGVycGxvdC1sYWJlbHNcIjtcbiAgICAvLyBTdGFuZGFyZCBsYWJlbGluZ1xuICAgIExhYmVsTGF5b3V0VHlwZVtcIkxBQkVMX0xBWU9VVF9TVEFOREFSRFwiXSA9IFwic3RhbmRhcmQtbGFiZWxzXCI7XG4gICAgLy8gSGlnaGxpZ2h0IHRhYmxlXG4gICAgTGFiZWxMYXlvdXRUeXBlW1wiTEFCRUxfTEFZT1VUX0hJR0hMSUdIVF9UQUJMRVwiXSA9IFwiaGlnaGxpZ2h0LXRhYmxlLWxhYmVsc1wiO1xufSkoTGFiZWxMYXlvdXRUeXBlID0gZXhwb3J0cy5MYWJlbExheW91dFR5cGUgfHwgKGV4cG9ydHMuTGFiZWxMYXlvdXRUeXBlID0ge30pKTtcbi8vIE1hcmtMYXllciByZXByZXNlbnRzIHRoZSBsYXllcnMgb2YgYSBtYXJrIGdpdmVuIHRoZSB2YXJpb3VzIHN0YXRlc1xudmFyIE1hcmtMYXllcjtcbihmdW5jdGlvbiAoTWFya0xheWVyKSB7XG4gICAgLy8gXG4gICAgTWFya0xheWVyW1wiTm9ybWFsVW5kZXJcIl0gPSBcIm5vcm1hbFVuZGVyXCI7XG4gICAgLy8gXG4gICAgTWFya0xheWVyW1wiTm9ybWFsT25cIl0gPSBcIm5vcm1hbE9uXCI7XG4gICAgLy8gXG4gICAgTWFya0xheWVyW1wiU2VsZWN0ZWRVbmRlclwiXSA9IFwic2VsZWN0ZWRVbmRlclwiO1xuICAgIC8vIFxuICAgIE1hcmtMYXllcltcIlNlbGVjdGVkT25cIl0gPSBcInNlbGVjdGVkT25cIjtcbiAgICAvLyBcbiAgICBNYXJrTGF5ZXJbXCJIaWdobGlnaHRlZFVuZGVyXCJdID0gXCJoaWdobGlnaHRlZFVuZGVyXCI7XG4gICAgLy8gXG4gICAgTWFya0xheWVyW1wiSGlnaGxpZ2h0ZWRPblwiXSA9IFwiaGlnaGxpZ2h0ZWRPblwiO1xuICAgIC8vIFxuICAgIE1hcmtMYXllcltcIkVkZ2VVbmRlclwiXSA9IFwiZWRnZVVuZGVyXCI7XG4gICAgLy8gXG4gICAgTWFya0xheWVyW1wiRWRnZU9uXCJdID0gXCJlZGdlT25cIjtcbiAgICAvLyBcbiAgICBNYXJrTGF5ZXJbXCJCb3JkZXJcIl0gPSBcImJvcmRlclwiO1xuICAgIC8vIFxuICAgIE1hcmtMYXllcltcIlNlbGVjdGVkVW5kZXIxXCJdID0gXCJzZWxlY3RlZFVuZGVyMVwiO1xuICAgIC8vIFxuICAgIE1hcmtMYXllcltcIlNlbGVjdGVkT24xXCJdID0gXCJzZWxlY3RlZE9uMVwiO1xuICAgIC8vIFxuICAgIE1hcmtMYXllcltcIlVuU2VsZWN0ZWRDdXN0b21TaGFwZVwiXSA9IFwidW5TZWxlY3RlZEN1c3RvbVNoYXBlXCI7XG4gICAgLy8gXG4gICAgTWFya0xheWVyW1wiTm9ybWFsQWxwaGFNYXNrXCJdID0gXCJub3JtYWxBbHBoYU1hc2tcIjtcbiAgICAvLyBcbiAgICBNYXJrTGF5ZXJbXCJIYWxvQWxwaGFNYXNrXCJdID0gXCJoYWxvQWxwaGFNYXNrXCI7XG4gICAgLy8gXG4gICAgTWFya0xheWVyW1wiSGlnaGxpZ2h0ZWRVbmRlcjFcIl0gPSBcImhpZ2hsaWdodGVkVW5kZXIxXCI7XG4gICAgLy8gXG4gICAgTWFya0xheWVyW1wiSGlnaGxpZ2h0ZWRPbjFcIl0gPSBcImhpZ2hsaWdodGVkT24xXCI7XG4gICAgLy8gXG4gICAgTWFya0xheWVyW1wiU2VsZWN0ZWRFZGdlVW5kZXJcIl0gPSBcInNlbGVjdGVkRWRnZVVuZGVyXCI7XG4gICAgLy8gXG4gICAgTWFya0xheWVyW1wiQmxvYlVuZGVyXCJdID0gXCJibG9iVW5kZXJcIjtcbiAgICAvLyBcbiAgICBNYXJrTGF5ZXJbXCJCbG9iT25cIl0gPSBcImJsb2JPblwiO1xuICAgIC8vIFxuICAgIE1hcmtMYXllcltcIkhvdmVyT3ZlcmxheVwiXSA9IFwiaG92ZXJPdmVybGF5XCI7XG4gICAgLy8gXG4gICAgTWFya0xheWVyW1wiUHJlc3NlZE92ZXJsYXlcIl0gPSBcInByZXNzZWRPdmVybGF5XCI7XG59KShNYXJrTGF5ZXIgPSBleHBvcnRzLk1hcmtMYXllciB8fCAoZXhwb3J0cy5NYXJrTGF5ZXIgPSB7fSkpO1xuLy8gQ29sb3JPdmVycmlkZU1vZGUgcmVwcmVzZW50cyB0aGUgZGlmZmVyZW50IHdheXMgaW4gd2hpY2ggbWFyayBjb2xvcnMgbWF5IGJlIG1vZGlmaWVkLlxudmFyIENvbG9yT3ZlcnJpZGVNb2RlO1xuKGZ1bmN0aW9uIChDb2xvck92ZXJyaWRlTW9kZSkge1xuICAgIC8vIFxuICAgIENvbG9yT3ZlcnJpZGVNb2RlW1wiQ29sb3JPdmVycmlkZU5vbmVcIl0gPSBcImNvbG9yT3ZlcnJpZGVOb25lXCI7XG4gICAgLy8gXG4gICAgQ29sb3JPdmVycmlkZU1vZGVbXCJDb2xvck92ZXJyaWRlRm9nXCJdID0gXCJjb2xvck92ZXJyaWRlRm9nXCI7XG4gICAgLy8gXG4gICAgQ29sb3JPdmVycmlkZU1vZGVbXCJDb2xvck92ZXJyaWRlT3BhcXVlXCJdID0gXCJjb2xvck92ZXJyaWRlT3BhcXVlXCI7XG4gICAgLy8gXG4gICAgQ29sb3JPdmVycmlkZU1vZGVbXCJDb2xvck92ZXJyaWRlUmVwbGFjZUFscGhhXCJdID0gXCJjb2xvck92ZXJyaWRlUmVwbGFjZUFscGhhXCI7XG4gICAgLy8gXG4gICAgQ29sb3JPdmVycmlkZU1vZGVbXCJDb2xvck92ZXJyaWRlQ291bnRcIl0gPSBcImNvbG9yT3ZlcnJpZGVDb3VudFwiO1xufSkoQ29sb3JPdmVycmlkZU1vZGUgPSBleHBvcnRzLkNvbG9yT3ZlcnJpZGVNb2RlIHx8IChleHBvcnRzLkNvbG9yT3ZlcnJpZGVNb2RlID0ge30pKTtcbi8vIENvbG9yVHJhbnNmb3JtTW9kZSByZXByZXNlbnRzIHRoZSBkaWZmZXJlbnQgd2F5cyBpbiB3aGljaCBtYXJrIGNvbG9ycyBtYXkgYmUgbW9kaWZpZWQuXG52YXIgQ29sb3JUcmFuc2Zvcm1Nb2RlO1xuKGZ1bmN0aW9uIChDb2xvclRyYW5zZm9ybU1vZGUpIHtcbiAgICAvLyBcbiAgICBDb2xvclRyYW5zZm9ybU1vZGVbXCJDb2xvclRyYW5zZm9ybU5vbmVcIl0gPSBcImNvbG9yVHJhbnNmb3JtTm9uZVwiO1xuICAgIC8vIFxuICAgIENvbG9yVHJhbnNmb3JtTW9kZVtcIkNvbG9yVHJhbnNmb3JtRm9nXCJdID0gXCJjb2xvclRyYW5zZm9ybUZvZ1wiO1xuICAgIC8vIFxuICAgIENvbG9yVHJhbnNmb3JtTW9kZVtcIkNvbG9yVHJhbnNmb3JtT3BhcXVlXCJdID0gXCJjb2xvclRyYW5zZm9ybU9wYXF1ZVwiO1xuICAgIC8vIFxuICAgIENvbG9yVHJhbnNmb3JtTW9kZVtcIkNvbG9yVHJhbnNmb3JtT3ZlcnJpZGVDb2xvclwiXSA9IFwiY29sb3JUcmFuc2Zvcm1PdmVycmlkZUNvbG9yXCI7XG4gICAgLy8gXG4gICAgQ29sb3JUcmFuc2Zvcm1Nb2RlW1wiQ29sb3JUcmFuc2Zvcm1PdmVycmlkZUFscGhhXCJdID0gXCJjb2xvclRyYW5zZm9ybU92ZXJyaWRlQWxwaGFcIjtcbn0pKENvbG9yVHJhbnNmb3JtTW9kZSA9IGV4cG9ydHMuQ29sb3JUcmFuc2Zvcm1Nb2RlIHx8IChleHBvcnRzLkNvbG9yVHJhbnNmb3JtTW9kZSA9IHt9KSk7XG4vLyBNYXJrU3RhdGUgcmVwcmVzZW50cyB2YWxpZCBzdGF0ZXMgZm9yIGEgbWFyay5cbnZhciBNYXJrU3RhdGU7XG4oZnVuY3Rpb24gKE1hcmtTdGF0ZSkge1xuICAgIC8vIFxuICAgIE1hcmtTdGF0ZVtcIk1hcmtTdGF0ZU5vcm1hbFwiXSA9IFwibWFya1N0YXRlTm9ybWFsXCI7XG4gICAgLy8gXG4gICAgTWFya1N0YXRlW1wiTWFya1N0YXRlSGlnaGxpZ2h0ZWRcIl0gPSBcIm1hcmtTdGF0ZUhpZ2hsaWdodGVkXCI7XG4gICAgLy8gXG4gICAgTWFya1N0YXRlW1wiTWFya1N0YXRlU2VsZWN0ZWRcIl0gPSBcIm1hcmtTdGF0ZVNlbGVjdGVkXCI7XG4gICAgLy8gXG4gICAgTWFya1N0YXRlW1wiTWFya1N0YXRlSW52aXNpYmxlXCJdID0gXCJtYXJrU3RhdGVJbnZpc2libGVcIjtcbn0pKE1hcmtTdGF0ZSA9IGV4cG9ydHMuTWFya1N0YXRlIHx8IChleHBvcnRzLk1hcmtTdGF0ZSA9IHt9KSk7XG4vLyBMaW5lU3RhdGUgcmVwcmVzZW50cyB2YWxpZCBzdGF0ZXMgZm9yIGEgbGluZSBtdWx0aS1tYXJrLlxudmFyIExpbmVTdGF0ZTtcbihmdW5jdGlvbiAoTGluZVN0YXRlKSB7XG4gICAgLy8gXG4gICAgTGluZVN0YXRlW1wiTGluZVN0YXRlTm9ybWFsXCJdID0gXCJsaW5lU3RhdGVOb3JtYWxcIjtcbiAgICAvLyBcbiAgICBMaW5lU3RhdGVbXCJMaW5lU3RhdGVIaWdobGlnaHRlZFwiXSA9IFwibGluZVN0YXRlSGlnaGxpZ2h0ZWRcIjtcbiAgICAvLyBcbiAgICBMaW5lU3RhdGVbXCJMaW5lU3RhdGVTZWxlY3RlZFwiXSA9IFwibGluZVN0YXRlU2VsZWN0ZWRcIjtcbn0pKExpbmVTdGF0ZSA9IGV4cG9ydHMuTGluZVN0YXRlIHx8IChleHBvcnRzLkxpbmVTdGF0ZSA9IHt9KSk7XG4vLyBSZW5kZXJQYXNzIHJlcHJlc2VudHMgZWFjaCBwYXNzIG92ZXIgdGhlIHNjZW5lIGVsZW1lbnRzIGFzIGVhY2ggbGF5ZXIgaXMgcmVuZGVyZWQuXG52YXIgUmVuZGVyUGFzcztcbihmdW5jdGlvbiAoUmVuZGVyUGFzcykge1xuICAgIC8vIFxuICAgIFJlbmRlclBhc3NbXCJOb3JtYWxVbmRlclBhc3NcIl0gPSBcIm5vcm1hbFVuZGVyUGFzc1wiO1xuICAgIC8vIFxuICAgIFJlbmRlclBhc3NbXCJOb3JtYWxPblBhc3NcIl0gPSBcIm5vcm1hbE9uUGFzc1wiO1xuICAgIC8vIFxuICAgIFJlbmRlclBhc3NbXCJIaWdobGlnaHRlZFVuZGVyUGFzc1wiXSA9IFwiaGlnaGxpZ2h0ZWRVbmRlclBhc3NcIjtcbiAgICAvLyBcbiAgICBSZW5kZXJQYXNzW1wiSGlnaGxpZ2h0ZWRPblBhc3NcIl0gPSBcImhpZ2hsaWdodGVkT25QYXNzXCI7XG4gICAgLy8gXG4gICAgUmVuZGVyUGFzc1tcIlNlbGVjdGVkVW5kZXJQYXNzXCJdID0gXCJzZWxlY3RlZFVuZGVyUGFzc1wiO1xuICAgIC8vIFxuICAgIFJlbmRlclBhc3NbXCJTZWxlY3RlZE9uUGFzc1wiXSA9IFwic2VsZWN0ZWRPblBhc3NcIjtcbiAgICAvLyBcbiAgICBSZW5kZXJQYXNzW1wiUmVuZGVyUGFzc0NvdW50XCJdID0gXCJyZW5kZXJQYXNzQ291bnRcIjtcbn0pKFJlbmRlclBhc3MgPSBleHBvcnRzLlJlbmRlclBhc3MgfHwgKGV4cG9ydHMuUmVuZGVyUGFzcyA9IHt9KSk7XG4vLyBUaGUgcm9sZSBhc3NvY2lhdGVkIHdpdGggYSBzY2VuZSBlbGVtZW50LiBUaGlzIGFsbG93cyB0aGUgZHJhdyBvcmRlcmluZyB0byBiZSBtb3JlIGVmZmljaWVudC5cbnZhciBFbGVtZW50Um9sZTtcbihmdW5jdGlvbiAoRWxlbWVudFJvbGUpIHtcbiAgICAvLyBcbiAgICBFbGVtZW50Um9sZVtcIk1vZGVsQ29udGFpbmVyUm9sZVwiXSA9IFwibW9kZWxDb250YWluZXJSb2xlXCI7XG4gICAgLy8gXG4gICAgRWxlbWVudFJvbGVbXCJCYWNrZ3JvdW5kUm9sZVwiXSA9IFwiYmFja2dyb3VuZFJvbGVcIjtcbiAgICAvLyBcbiAgICBFbGVtZW50Um9sZVtcIlVuZGVyTWFya1JvbGVcIl0gPSBcInVuZGVyTWFya1JvbGVcIjtcbiAgICAvLyBcbiAgICBFbGVtZW50Um9sZVtcIk1hcmtSb2xlXCJdID0gXCJtYXJrUm9sZVwiO1xuICAgIC8vIFxuICAgIEVsZW1lbnRSb2xlW1wiVW5kZXJMYWJlbFJvbGVcIl0gPSBcInVuZGVyTGFiZWxSb2xlXCI7XG4gICAgLy8gXG4gICAgRWxlbWVudFJvbGVbXCJMYWJlbFJvbGVcIl0gPSBcImxhYmVsUm9sZVwiO1xuICAgIC8vIFxuICAgIEVsZW1lbnRSb2xlW1wiRm9yZWdyb3VuZFJvbGVcIl0gPSBcImZvcmVncm91bmRSb2xlXCI7XG59KShFbGVtZW50Um9sZSA9IGV4cG9ydHMuRWxlbWVudFJvbGUgfHwgKGV4cG9ydHMuRWxlbWVudFJvbGUgPSB7fSkpO1xuLy8gXG52YXIgUGF0aEVsZW1lbnQ7XG4oZnVuY3Rpb24gKFBhdGhFbGVtZW50KSB7XG4gICAgLy8gXG4gICAgUGF0aEVsZW1lbnRbXCJQYXRoTW92ZVRvXCJdID0gXCJtb3ZldG9cIjtcbiAgICAvLyBcbiAgICBQYXRoRWxlbWVudFtcIlBhdGhMaW5lVG9cIl0gPSBcImxpbmV0b1wiO1xuICAgIC8vIFxuICAgIFBhdGhFbGVtZW50W1wiUGF0aEN1cnZlVG9cIl0gPSBcImN1cnZldG9cIjtcbn0pKFBhdGhFbGVtZW50ID0gZXhwb3J0cy5QYXRoRWxlbWVudCB8fCAoZXhwb3J0cy5QYXRoRWxlbWVudCA9IHt9KSk7XG4vLyBUaGUgc2VyaWFsaXphdGlvbiBpcyBzdGlsbCBkdXBsaWNhdGVkIGluIEpzb25VdGlsczo6Wm9uZVV0aWxzOjpab25lTmFtZXMgYW5kIHR5cGVzLmpzXG52YXIgWm9uZVR5cGU7XG4oZnVuY3Rpb24gKFpvbmVUeXBlKSB7XG4gICAgLy8gXG4gICAgWm9uZVR5cGVbXCJaVF9JbnZhbGlkXCJdID0gXCJpbnZhbGlkXCI7XG4gICAgLy8gc2VjdGlvbjogbmFtZSA9IHdvcmtzaGVldCBuYW1lXG4gICAgWm9uZVR5cGVbXCJaVF9WaXpcIl0gPSBcInZpelwiO1xuICAgIC8vIFxuICAgIFpvbmVUeXBlW1wiWlRfQ29sb3JMZWdlbmRcIl0gPSBcImNvbG9yXCI7XG4gICAgLy8gXG4gICAgWm9uZVR5cGVbXCJaVF9TaGFwZUxlZ2VuZFwiXSA9IFwic2hhcGVcIjtcbiAgICAvLyBcbiAgICBab25lVHlwZVtcIlpUX1NpemVMZWdlbmRcIl0gPSBcInNpemVcIjtcbiAgICAvLyBcbiAgICBab25lVHlwZVtcIlpUX01hcExlZ2VuZFwiXSA9IFwibWFwXCI7XG4gICAgLy8gcGFyYW0gPSBmaWVsZCBuYW1lXG4gICAgWm9uZVR5cGVbXCJaVF9RdWlja0ZpbHRlclwiXSA9IFwiZmlsdGVyXCI7XG4gICAgLy8gcGFyYW0gPSBmaWVsZCBuYW1lXG4gICAgWm9uZVR5cGVbXCJaVF9IaWdobGlnaHRlclwiXSA9IFwiaGlnaGxpZ2h0ZXJcIjtcbiAgICAvLyBcbiAgICBab25lVHlwZVtcIlpUX0N1cnJQYWdlXCJdID0gXCJjdXJyZW50LXBhZ2VcIjtcbiAgICAvLyBzZWN0aW9uOiBuYW1lIHVudXNlZFxuICAgIFpvbmVUeXBlW1wiWlRfRW1wdHlcIl0gPSBcImVtcHR5XCI7XG4gICAgLy8gcGFyYW0gPSB0aXRsZVxuICAgIFpvbmVUeXBlW1wiWlRfVGl0bGVcIl0gPSBcInRpdGxlXCI7XG4gICAgLy8gcGFyYW0gPSB0ZXh0XG4gICAgWm9uZVR5cGVbXCJaVF9UZXh0XCJdID0gXCJ0ZXh0XCI7XG4gICAgLy8gcGFyYW0gPSBmaWxlIG5hbWVcbiAgICBab25lVHlwZVtcIlpUX0JpdG1hcFwiXSA9IFwiYml0bWFwXCI7XG4gICAgLy8gcGFyYW0gPSBVUkxcbiAgICBab25lVHlwZVtcIlpUX1dlYlwiXSA9IFwid2ViXCI7XG4gICAgLy8gcGFyYW0gPSBhZGQtaW4gaWRcbiAgICBab25lVHlwZVtcIlpUX0FkZEluXCJdID0gXCJhZGQtaW5cIjtcbiAgICAvLyBcbiAgICBab25lVHlwZVtcIlpUX0J1dHRvblwiXSA9IFwiYnV0dG9uLW9iamVjdFwiO1xuICAgIC8vIHBhcmFtID0gZmllbGQgbmFtZVxuICAgIFpvbmVUeXBlW1wiWlRfUGFyYW1DdHJsXCJdID0gXCJwYXJhbWN0cmxcIjtcbiAgICAvLyBcbiAgICBab25lVHlwZVtcIlpUX0ZsaXBib2FyZE5hdlwiXSA9IFwiZmxpcGJvYXJkLW5hdlwiO1xuICAgIC8vIFxuICAgIFpvbmVUeXBlW1wiWlRfRmxpcGJvYXJkXCJdID0gXCJmbGlwYm9hcmRcIjtcbiAgICAvLyBzZWN0aW9uOiBsYXlvdXRcbiAgICBab25lVHlwZVtcIlpUX0xheW91dEJhc2ljXCJdID0gXCJsYXlvdXQtYmFzaWNcIjtcbiAgICAvLyBcbiAgICBab25lVHlwZVtcIlpUX0xheW91dEZsb3dcIl0gPSBcImxheW91dC1mbG93XCI7XG4gICAgLy8gXG4gICAgWm9uZVR5cGVbXCJaVF9MYXlvdXRGcmVlRm9ybVwiXSA9IFwibGF5b3V0LWZyZWUtZm9ybVwiO1xuICAgIC8vIHVzZWQgb25seSBmb3IgZW51bSBpdGVyYXRpb25cbiAgICBab25lVHlwZVtcIlpUX0VuZFwiXSA9IFwiZW5kXCI7XG59KShab25lVHlwZSA9IGV4cG9ydHMuWm9uZVR5cGUgfHwgKGV4cG9ydHMuWm9uZVR5cGUgPSB7fSkpO1xuLy8gXG52YXIgQ29udGVudFR5cGU7XG4oZnVuY3Rpb24gKENvbnRlbnRUeXBlKSB7XG4gICAgLy8gc2VjdGlvbjogbmFtZSA9IHdvcmtzaGVldCBuYW1lXG4gICAgQ29udGVudFR5cGVbXCJDVF9WaXpcIl0gPSBcInZpelwiO1xuICAgIC8vIFxuICAgIENvbnRlbnRUeXBlW1wiQ1RfQ29sb3JMZWdlbmRcIl0gPSBcImNvbG9yXCI7XG4gICAgLy8gXG4gICAgQ29udGVudFR5cGVbXCJDVF9TaGFwZUxlZ2VuZFwiXSA9IFwic2hhcGVcIjtcbiAgICAvLyBcbiAgICBDb250ZW50VHlwZVtcIkNUX1NpemVMZWdlbmRcIl0gPSBcInNpemVcIjtcbiAgICAvLyBcbiAgICBDb250ZW50VHlwZVtcIkNUX01hcExlZ2VuZFwiXSA9IFwibWFwXCI7XG4gICAgLy8gcGFyYW0gPSBmaWVsZCBuYW1lXG4gICAgQ29udGVudFR5cGVbXCJDVF9RdWlja0ZpbHRlclwiXSA9IFwiZmlsdGVyXCI7XG4gICAgLy8gcGFyYW0gPSBmaWVsZCBuYW1lXG4gICAgQ29udGVudFR5cGVbXCJDVF9IaWdobGlnaHRlclwiXSA9IFwiaGlnaGxpZ2h0ZXJcIjtcbiAgICAvLyBcbiAgICBDb250ZW50VHlwZVtcIkNUX0N1cnJQYWdlXCJdID0gXCJjdXJyZW50LXBhZ2VcIjtcbiAgICAvLyBwYXJhbSA9IGZpZWxkIG5hbWVcbiAgICBDb250ZW50VHlwZVtcIkNUX1BhcmFtQ3RybFwiXSA9IFwicGFyYW1jdHJsXCI7XG4gICAgLy8gcGFyYW0gPSB0aXRsZVxuICAgIENvbnRlbnRUeXBlW1wiQ1RfVGl0bGVcIl0gPSBcInRpdGxlXCI7XG4gICAgLy8gcGFyYW0gPSB0ZXh0XG4gICAgQ29udGVudFR5cGVbXCJDVF9UZXh0XCJdID0gXCJ0ZXh0XCI7XG4gICAgLy8gcGFyYW0gPSBmaWxlIG5hbWVcbiAgICBDb250ZW50VHlwZVtcIkNUX0JpdG1hcFwiXSA9IFwiYml0bWFwXCI7XG4gICAgLy8gcGFyYW0gPSBVUkxcbiAgICBDb250ZW50VHlwZVtcIkNUX1dlYlwiXSA9IFwid2ViXCI7XG4gICAgLy8gcGFyYW0gPSBhZGQtaW4gaWRcbiAgICBDb250ZW50VHlwZVtcIkNUX0FkZEluXCJdID0gXCJhZGQtaW5cIjtcbiAgICAvLyBcbiAgICBDb250ZW50VHlwZVtcIkNUX0J1dHRvblwiXSA9IFwiYnV0dG9uXCI7XG4gICAgLy8gXG4gICAgQ29udGVudFR5cGVbXCJDVF9GbGlwYm9hcmROYXZcIl0gPSBcImZsaXBib2FyZC1uYXZcIjtcbiAgICAvLyBcbiAgICBDb250ZW50VHlwZVtcIkNUX0ZsaXBib2FyZFwiXSA9IFwiZmxpcGJvYXJkXCI7XG4gICAgLy8gRGVub3RlcyB0aGF0IHRoaXMgem9uZSBoYXMgbm8gY29udGVudCBhbmQgdGhlcmVmb3JlIGhhcyBhIG1lYW5pbmdmdWwgbGF5b3V0IHR5cGVcbiAgICBDb250ZW50VHlwZVtcIkNUX05vbmVcIl0gPSBcImNvbnRlbnQtbm9uZVwiO1xufSkoQ29udGVudFR5cGUgPSBleHBvcnRzLkNvbnRlbnRUeXBlIHx8IChleHBvcnRzLkNvbnRlbnRUeXBlID0ge30pKTtcbi8vIFxudmFyIFpvbmVMYXlvdXRUeXBlO1xuKGZ1bmN0aW9uIChab25lTGF5b3V0VHlwZSkge1xuICAgIC8vIHNlY3Rpb246IGxheW91dFxuICAgIFpvbmVMYXlvdXRUeXBlW1wiWkxUX0Jhc2ljXCJdID0gXCJiYXNpY1wiO1xuICAgIC8vIFxuICAgIFpvbmVMYXlvdXRUeXBlW1wiWkxUX0ZyZWVGb3JtXCJdID0gXCJmcmVlLWZvcm1cIjtcbiAgICAvLyBcbiAgICBab25lTGF5b3V0VHlwZVtcIlpMVF9GbG93XCJdID0gXCJmbG93XCI7XG4gICAgLy8gXG4gICAgWm9uZUxheW91dFR5cGVbXCJaTFRfRGlzdHJpYnV0ZUV2ZW5seVwiXSA9IFwiZGlzdHJpYnV0ZS1ldmVubHlcIjtcbiAgICAvLyBcbiAgICBab25lTGF5b3V0VHlwZVtcIlpMVF9Ucml2aWFsXCJdID0gXCJ0cml2aWFsXCI7XG59KShab25lTGF5b3V0VHlwZSA9IGV4cG9ydHMuWm9uZUxheW91dFR5cGUgfHwgKGV4cG9ydHMuWm9uZUxheW91dFR5cGUgPSB7fSkpO1xuLy8gUmVjdGFubGdlcyBpbiB0aGUgYm94IG1vZGVsXG52YXIgQm94VHlwZTtcbihmdW5jdGlvbiAoQm94VHlwZSkge1xuICAgIC8vIGJvdW5kaW5nIHJlY3RhbmdsZSBpbiB0aGUgYm94IG1vZGVsXG4gICAgQm94VHlwZVtcIkJUX0JvdW5kaW5nXCJdID0gXCJib3VuZGluZ1wiO1xuICAgIC8vIGJvcmRlciByZWN0YW5nbGUgaW4gdGhlIGJveCBtb2RlbCBleGNsdWRpbmcgbWFyZ2luc1xuICAgIEJveFR5cGVbXCJCVF9Cb3JkZXJcIl0gPSBcImJvcmRlclwiO1xuICAgIC8vIGNvbnRlbnQgcmVhY3RuYWdlIGluIHRoZSBib3ggbW9kZWwgZXhjbHVkaW5nIG1hcmdpbnMgcGx1cyBib3JkZXJzIGFuZCBwYWRkaW5nc1xuICAgIEJveFR5cGVbXCJCVF9Db250ZW50XCJdID0gXCJjb250ZW50XCI7XG59KShCb3hUeXBlID0gZXhwb3J0cy5Cb3hUeXBlIHx8IChleHBvcnRzLkJveFR5cGUgPSB7fSkpO1xuLy8gUmVwcmVzZW50cyB0aGUgdHlwZSBvZiBjb21tYW5kIHRvIGJlIHBlcmZvcm1lZCBvbiB0aGUgei1vcmRlciBvZiBhIHpvbmVcbnZhciBNb2RpZnlab25lWk9yZGVyQ29tbWFuZFR5cGU7XG4oZnVuY3Rpb24gKE1vZGlmeVpvbmVaT3JkZXJDb21tYW5kVHlwZSkge1xuICAgIC8vIFxuICAgIE1vZGlmeVpvbmVaT3JkZXJDb21tYW5kVHlwZVtcIk1vZGlmeVpvbmVaT3JkZXJDb21tYW5kRnJvbnRcIl0gPSBcImZyb250XCI7XG4gICAgLy8gXG4gICAgTW9kaWZ5Wm9uZVpPcmRlckNvbW1hbmRUeXBlW1wiTW9kaWZ5Wm9uZVpPcmRlckNvbW1hbmRCYWNrXCJdID0gXCJiYWNrXCI7XG4gICAgLy8gXG4gICAgTW9kaWZ5Wm9uZVpPcmRlckNvbW1hbmRUeXBlW1wiTW9kaWZ5Wm9uZVpPcmRlckNvbW1hbmRSZWxhdGl2ZVBvc1wiXSA9IFwicmVsLXBvc1wiO1xufSkoTW9kaWZ5Wm9uZVpPcmRlckNvbW1hbmRUeXBlID0gZXhwb3J0cy5Nb2RpZnlab25lWk9yZGVyQ29tbWFuZFR5cGUgfHwgKGV4cG9ydHMuTW9kaWZ5Wm9uZVpPcmRlckNvbW1hbmRUeXBlID0ge30pKTtcbi8vIEVudW1lcmF0aW9uIG9mIHZhbGlkIGhvcml6b250YWwgYWxpZ25tZW50cyBmb3IgdGV4dCByZWdpb25zLlxudmFyIFRleHRSZWdpb25IQWxpZ247XG4oZnVuY3Rpb24gKFRleHRSZWdpb25IQWxpZ24pIHtcbiAgICAvLyBcbiAgICBUZXh0UmVnaW9uSEFsaWduW1wiVEhBX0xlZnRcIl0gPSBcImgtYWxpZ24tbGVmdFwiO1xuICAgIC8vIFxuICAgIFRleHRSZWdpb25IQWxpZ25bXCJUSEFfQ2VudGVyXCJdID0gXCJoLWFsaWduLWNlbnRlclwiO1xuICAgIC8vIFxuICAgIFRleHRSZWdpb25IQWxpZ25bXCJUSEFfUmlnaHRcIl0gPSBcImgtYWxpZ24tcmlnaHRcIjtcbiAgICAvLyBcbiAgICBUZXh0UmVnaW9uSEFsaWduW1wiVEhBX0F1dG9tYXRpY1wiXSA9IFwiaC1hbGlnbi1hdXRvXCI7XG59KShUZXh0UmVnaW9uSEFsaWduID0gZXhwb3J0cy5UZXh0UmVnaW9uSEFsaWduIHx8IChleHBvcnRzLlRleHRSZWdpb25IQWxpZ24gPSB7fSkpO1xuLy8gRW51bWVyYXRpb24gb2YgdmFsaWQgdmVydGljYWwgYWxpZ25tZW50cyBmb3IgdGV4dCByZWdpb25zLlxudmFyIFRleHRSZWdpb25WQWxpZ247XG4oZnVuY3Rpb24gKFRleHRSZWdpb25WQWxpZ24pIHtcbiAgICAvLyBcbiAgICBUZXh0UmVnaW9uVkFsaWduW1wiVFZBX0JvdHRvbVwiXSA9IFwidi1hbGlnbi1ib3R0b21cIjtcbiAgICAvLyBcbiAgICBUZXh0UmVnaW9uVkFsaWduW1wiVFZBX0NlbnRlclwiXSA9IFwidi1hbGlnbi1jZW50ZXJcIjtcbiAgICAvLyBcbiAgICBUZXh0UmVnaW9uVkFsaWduW1wiVFZBX1RvcFwiXSA9IFwidi1hbGlnbi10b3BcIjtcbiAgICAvLyBcbiAgICBUZXh0UmVnaW9uVkFsaWduW1wiVFZBX0F1dG9tYXRpY1wiXSA9IFwidi1hbGlnbi1hdXRvXCI7XG59KShUZXh0UmVnaW9uVkFsaWduID0gZXhwb3J0cy5UZXh0UmVnaW9uVkFsaWduIHx8IChleHBvcnRzLlRleHRSZWdpb25WQWxpZ24gPSB7fSkpO1xuLy8gXG52YXIgQXV0b0NvbXBsZXRlSXRlbVR5cGU7XG4oZnVuY3Rpb24gKEF1dG9Db21wbGV0ZUl0ZW1UeXBlKSB7XG4gICAgLy8gXG4gICAgQXV0b0NvbXBsZXRlSXRlbVR5cGVbXCJBQ0lUX0ludmFsaWRcIl0gPSBcImludmFsaWRcIjtcbiAgICAvLyBcbiAgICBBdXRvQ29tcGxldGVJdGVtVHlwZVtcIkFDSVRfRmllbGRcIl0gPSBcImZpZWxkXCI7XG4gICAgLy8gXG4gICAgQXV0b0NvbXBsZXRlSXRlbVR5cGVbXCJBQ0lUX0Z1bmN0aW9uXCJdID0gXCJmdW5jXCI7XG4gICAgLy8gXG4gICAgQXV0b0NvbXBsZXRlSXRlbVR5cGVbXCJBQ0lUX1NlcGFyYXRvclwiXSA9IFwic2VwYXJhdG9yXCI7XG4gICAgLy8gXG4gICAgQXV0b0NvbXBsZXRlSXRlbVR5cGVbXCJBQ0lUX0hlYWRlclwiXSA9IFwiaGVhZGVyXCI7XG59KShBdXRvQ29tcGxldGVJdGVtVHlwZSA9IGV4cG9ydHMuQXV0b0NvbXBsZXRlSXRlbVR5cGUgfHwgKGV4cG9ydHMuQXV0b0NvbXBsZXRlSXRlbVR5cGUgPSB7fSkpO1xuLy8gXG52YXIgQ2FsY3VsYXRpb25Db250ZXh0O1xuKGZ1bmN0aW9uIChDYWxjdWxhdGlvbkNvbnRleHQpIHtcbiAgICAvLyBcbiAgICBDYWxjdWxhdGlvbkNvbnRleHRbXCJDQ19DYWxjdWxhdGlvbkRpYWxvZ1wiXSA9IFwiY2FsY3VsYXRpb24tZGlhbG9nXCI7XG4gICAgLy8gXG4gICAgQ2FsY3VsYXRpb25Db250ZXh0W1wiQ0NfVHlwZUluUGlsbFwiXSA9IFwidHlwZS1pbi1waWxsXCI7XG4gICAgLy8gXG4gICAgQ2FsY3VsYXRpb25Db250ZXh0W1wiQ0NfRmlsdGVyVG9wXCJdID0gXCJmaWx0ZXItdG9wXCI7XG4gICAgLy8gXG4gICAgQ2FsY3VsYXRpb25Db250ZXh0W1wiQ0NfRmlsdGVyQ29uZGl0aW9uXCJdID0gXCJmaWx0ZXItY29uZGl0aW9uXCI7XG4gICAgLy8gXG4gICAgQ2FsY3VsYXRpb25Db250ZXh0W1wiQ0NfSm9pbkNhbGNEaWFsb2dcIl0gPSBcImpvaW4tY2FsYy1kaWFsb2dcIjtcbn0pKENhbGN1bGF0aW9uQ29udGV4dCA9IGV4cG9ydHMuQ2FsY3VsYXRpb25Db250ZXh0IHx8IChleHBvcnRzLkNhbGN1bGF0aW9uQ29udGV4dCA9IHt9KSk7XG4vLyBcbnZhciBGb3JlY2FzdENvbXBvbmVudFR5cGU7XG4oZnVuY3Rpb24gKEZvcmVjYXN0Q29tcG9uZW50VHlwZSkge1xuICAgIC8vIFxuICAgIEZvcmVjYXN0Q29tcG9uZW50VHlwZVtcIkZvcmVjYXN0Q29tcG9uZW50VHlwZV9fRVRTX05PTkVcIl0gPSBcImV0cy1ub25lXCI7XG4gICAgLy8gXG4gICAgRm9yZWNhc3RDb21wb25lbnRUeXBlW1wiRm9yZWNhc3RDb21wb25lbnRUeXBlX19FVFNfQURESVRJVkVcIl0gPSBcImV0cy1hZGRpdGl2ZVwiO1xuICAgIC8vIFxuICAgIEZvcmVjYXN0Q29tcG9uZW50VHlwZVtcIkZvcmVjYXN0Q29tcG9uZW50VHlwZV9fRVRTX01VTFRJUExJQ0FUSVZFXCJdID0gXCJldHMtbXVsdGlwbGljYXRpdmVcIjtcbn0pKEZvcmVjYXN0Q29tcG9uZW50VHlwZSA9IGV4cG9ydHMuRm9yZWNhc3RDb21wb25lbnRUeXBlIHx8IChleHBvcnRzLkZvcmVjYXN0Q29tcG9uZW50VHlwZSA9IHt9KSk7XG4vLyBcbnZhciBQcmVkaWN0aW9uSW50ZXJ2YWxBeGlzO1xuKGZ1bmN0aW9uIChQcmVkaWN0aW9uSW50ZXJ2YWxBeGlzKSB7XG4gICAgLy8gXG4gICAgUHJlZGljdGlvbkludGVydmFsQXhpc1tcIlBJX0FYSVNfTk9ORVwiXSA9IFwibm9uZVwiO1xuICAgIC8vIFxuICAgIFByZWRpY3Rpb25JbnRlcnZhbEF4aXNbXCJQSV9BWElTX1hcIl0gPSBcImF4aXMteFwiO1xuICAgIC8vIFxuICAgIFByZWRpY3Rpb25JbnRlcnZhbEF4aXNbXCJQSV9BWElTX1lcIl0gPSBcImF4aXMteVwiO1xufSkoUHJlZGljdGlvbkludGVydmFsQXhpcyA9IGV4cG9ydHMuUHJlZGljdGlvbkludGVydmFsQXhpcyB8fCAoZXhwb3J0cy5QcmVkaWN0aW9uSW50ZXJ2YWxBeGlzID0ge30pKTtcbi8vIEluZGljYXRlcyB0aGUgdHlwZSBvZiBxdWljayBmaWx0ZXJcbnZhciBRdWlja0ZpbHRlclR5cGU7XG4oZnVuY3Rpb24gKFF1aWNrRmlsdGVyVHlwZSkge1xuICAgIC8vIFxuICAgIFF1aWNrRmlsdGVyVHlwZVtcIlFGVF9Vbmtub3duXCJdID0gXCJ1bmtub3duXCI7XG4gICAgLy8gXG4gICAgUXVpY2tGaWx0ZXJUeXBlW1wiUUZUX1F1YW50aXRhdGl2ZVwiXSA9IFwicXVhbnRpdGF0aXZlXCI7XG4gICAgLy8gXG4gICAgUXVpY2tGaWx0ZXJUeXBlW1wiUUZUX1JlbGF0aXZlRGF0ZVwiXSA9IFwicmVsYXRpdmUtZGF0ZVwiO1xuICAgIC8vIFxuICAgIFF1aWNrRmlsdGVyVHlwZVtcIlFGVF9IaWVyYXJjaHlcIl0gPSBcImhpZXJhcmNoeVwiO1xuICAgIC8vIFxuICAgIFF1aWNrRmlsdGVyVHlwZVtcIlFGVF9DYXRlZ29yaWNhbFwiXSA9IFwiY2F0ZWdvcmljYWxcIjtcbn0pKFF1aWNrRmlsdGVyVHlwZSA9IGV4cG9ydHMuUXVpY2tGaWx0ZXJUeXBlIHx8IChleHBvcnRzLlF1aWNrRmlsdGVyVHlwZSA9IHt9KSk7XG4vLyBJbmRpY2F0ZXMgYSBjYXRlZ29yaWNhbCBVSSBjb250cm9sXG52YXIgUXVpY2tGaWx0ZXJDYXRlZ29yaWNhbEN0cmw7XG4oZnVuY3Rpb24gKFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxDdHJsKSB7XG4gICAgLy8gXG4gICAgUXVpY2tGaWx0ZXJDYXRlZ29yaWNhbEN0cmxbXCJRdWlja0ZpbHRlckNhdGVnb3JpY2FsQ3RybF9fUUZDQ19SZWFkb3V0XCJdID0gXCJyZWFkb3V0XCI7XG4gICAgLy8gXG4gICAgUXVpY2tGaWx0ZXJDYXRlZ29yaWNhbEN0cmxbXCJRdWlja0ZpbHRlckNhdGVnb3JpY2FsQ3RybF9fUUZDQ19TbGlkZXJcIl0gPSBcInNsaWRlclwiO1xuICAgIC8vIFxuICAgIFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxDdHJsW1wiUXVpY2tGaWx0ZXJDYXRlZ29yaWNhbEN0cmxfX1FGQ0NfU3RlcEJ0bnNcIl0gPSBcInN0ZXAtYnV0dG9uc1wiO1xuICAgIC8vIFxuICAgIFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxDdHJsW1wiUXVpY2tGaWx0ZXJDYXRlZ29yaWNhbEN0cmxfX1FGQ0NfQWxsQnRuXCJdID0gXCJhbGwtYnV0dG9uc1wiO1xuICAgIC8vIFxuICAgIFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxDdHJsW1wiUXVpY2tGaWx0ZXJDYXRlZ29yaWNhbEN0cmxfX1FGQ0NfRmlsdGVyU3RhdGVcIl0gPSBcImZpbHRlcnN0YXRlLWJ1dHRvblwiO1xuICAgIC8vIFxuICAgIFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxDdHJsW1wiUXVpY2tGaWx0ZXJDYXRlZ29yaWNhbEN0cmxfX1FGQ0NfU2VhcmNoXCJdID0gXCJzZWFyY2hcIjtcbiAgICAvLyBcbiAgICBRdWlja0ZpbHRlckNhdGVnb3JpY2FsQ3RybFtcIlF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxDdHJsX19RRkNDX0RvbWFpblwiXSA9IFwiZG9tYWluXCI7XG4gICAgLy8gXG4gICAgUXVpY2tGaWx0ZXJDYXRlZ29yaWNhbEN0cmxbXCJRdWlja0ZpbHRlckNhdGVnb3JpY2FsQ3RybF9fUUZDQ19Nb3JlRmV3ZXJCdXR0b25cIl0gPSBcIm1vcmVmZXdlci1idXR0b25cIjtcbiAgICAvLyBcbiAgICBRdWlja0ZpbHRlckNhdGVnb3JpY2FsQ3RybFtcIlF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxDdHJsX19RRkNDX0V4Y2x1ZGVcIl0gPSBcImV4Y2x1ZGVcIjtcbiAgICAvLyBcbiAgICBRdWlja0ZpbHRlckNhdGVnb3JpY2FsQ3RybFtcIlF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxDdHJsX19RRkNDX01vZGVcIl0gPSBcIm1vZGVcIjtcbiAgICAvLyBcbiAgICBRdWlja0ZpbHRlckNhdGVnb3JpY2FsQ3RybFtcIlF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxDdHJsX19RRkNDX0xldmVsc1wiXSA9IFwibGV2ZWxzXCI7XG4gICAgLy8gXG4gICAgUXVpY2tGaWx0ZXJDYXRlZ29yaWNhbEN0cmxbXCJRdWlja0ZpbHRlckNhdGVnb3JpY2FsQ3RybF9fUUZDQ19BcHBseUJ1dHRvblwiXSA9IFwiYXBwbHktYnV0dG9uXCI7XG59KShRdWlja0ZpbHRlckNhdGVnb3JpY2FsQ3RybCA9IGV4cG9ydHMuUXVpY2tGaWx0ZXJDYXRlZ29yaWNhbEN0cmwgfHwgKGV4cG9ydHMuUXVpY2tGaWx0ZXJDYXRlZ29yaWNhbEN0cmwgPSB7fSkpO1xuLy8gSW5kaWNhdGVzIGEgY2F0ZWdvcmljYWwgbW9kZVxudmFyIFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxNb2RlO1xuKGZ1bmN0aW9uIChRdWlja0ZpbHRlckNhdGVnb3JpY2FsTW9kZSkge1xuICAgIC8vIFxuICAgIFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxNb2RlW1wiUXVpY2tGaWx0ZXJDYXRlZ29yaWNhbE1vZGVfX1FGQ01fQ2hlY2tMaXN0XCJdID0gXCJjaGVjay1saXN0XCI7XG4gICAgLy8gXG4gICAgUXVpY2tGaWx0ZXJDYXRlZ29yaWNhbE1vZGVbXCJRdWlja0ZpbHRlckNhdGVnb3JpY2FsTW9kZV9fUUZDTV9SYWRpb0xpc3RcIl0gPSBcInJhZGlvLWxpc3RcIjtcbiAgICAvLyBcbiAgICBRdWlja0ZpbHRlckNhdGVnb3JpY2FsTW9kZVtcIlF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxNb2RlX19RRkNNX0Ryb3Bkb3duXCJdID0gXCJkcm9wZG93blwiO1xuICAgIC8vIFxuICAgIFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxNb2RlW1wiUXVpY2tGaWx0ZXJDYXRlZ29yaWNhbE1vZGVfX1FGQ01fU2xpZGVyXCJdID0gXCJzbGlkZXJcIjtcbiAgICAvLyBcbiAgICBRdWlja0ZpbHRlckNhdGVnb3JpY2FsTW9kZVtcIlF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxNb2RlX19RRkNNX1BhdHRlcm5cIl0gPSBcInBhdHRlcm5cIjtcbiAgICAvLyBcbiAgICBRdWlja0ZpbHRlckNhdGVnb3JpY2FsTW9kZVtcIlF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxNb2RlX19RRkNNX1R5cGVJbkxpc3RcIl0gPSBcInR5cGUtaW4tbGlzdFwiO1xuICAgIC8vIFxuICAgIFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxNb2RlW1wiUXVpY2tGaWx0ZXJDYXRlZ29yaWNhbE1vZGVfX1FGQ01fQ2hlY2tEcm9wZG93blwiXSA9IFwiY2hlY2stZHJvcGRvd25cIjtcbn0pKFF1aWNrRmlsdGVyQ2F0ZWdvcmljYWxNb2RlID0gZXhwb3J0cy5RdWlja0ZpbHRlckNhdGVnb3JpY2FsTW9kZSB8fCAoZXhwb3J0cy5RdWlja0ZpbHRlckNhdGVnb3JpY2FsTW9kZSA9IHt9KSk7XG4vLyBJbmRpY2F0ZXMgYSBxdWFudGl0YXRpdmUgVUkgY29udHJvbFxudmFyIFF1aWNrRmlsdGVyUXVhbnRpdGF0aXZlQ3RybDtcbihmdW5jdGlvbiAoUXVpY2tGaWx0ZXJRdWFudGl0YXRpdmVDdHJsKSB7XG4gICAgLy8gXG4gICAgUXVpY2tGaWx0ZXJRdWFudGl0YXRpdmVDdHJsW1wiUXVpY2tGaWx0ZXJRdWFudGl0YXRpdmVDdHJsX19RRlFDX1JlYWRvdXRzXCJdID0gXCJyZWFkb3V0c1wiO1xuICAgIC8vIFxuICAgIFF1aWNrRmlsdGVyUXVhbnRpdGF0aXZlQ3RybFtcIlF1aWNrRmlsdGVyUXVhbnRpdGF0aXZlQ3RybF9fUUZRQ19TbGlkZXJcIl0gPSBcInNsaWRlclwiO1xuICAgIC8vIFxuICAgIFF1aWNrRmlsdGVyUXVhbnRpdGF0aXZlQ3RybFtcIlF1aWNrRmlsdGVyUXVhbnRpdGF0aXZlQ3RybF9fUUZRQ19OdWxsQ3RybHNcIl0gPSBcIm51bGwtY29udHJvbHNcIjtcbiAgICAvLyBcbiAgICBRdWlja0ZpbHRlclF1YW50aXRhdGl2ZUN0cmxbXCJRdWlja0ZpbHRlclF1YW50aXRhdGl2ZUN0cmxfX1FGUUNfUmVsZGF0ZVBpY2tlclwiXSA9IFwicmVsLWRhdGUtcGlja2VyXCI7XG4gICAgLy8gXG4gICAgUXVpY2tGaWx0ZXJRdWFudGl0YXRpdmVDdHJsW1wiUXVpY2tGaWx0ZXJRdWFudGl0YXRpdmVDdHJsX19RRlFDX0RvbWFpblwiXSA9IFwiZG9tYWluXCI7XG4gICAgLy8gXG4gICAgUXVpY2tGaWx0ZXJRdWFudGl0YXRpdmVDdHJsW1wiUXVpY2tGaWx0ZXJRdWFudGl0YXRpdmVDdHJsX19RRlFDX01vcmVGZXdlckJ1dHRvblwiXSA9IFwibW9yZWZld2VyLWJ1dHRvblwiO1xuICAgIC8vIFxuICAgIFF1aWNrRmlsdGVyUXVhbnRpdGF0aXZlQ3RybFtcIlF1aWNrRmlsdGVyUXVhbnRpdGF0aXZlQ3RybF9fUUZRQ19GaWx0ZXJTdGF0ZVwiXSA9IFwiZmlsdGVyc3RhdGUtYnV0dG9uXCI7XG59KShRdWlja0ZpbHRlclF1YW50aXRhdGl2ZUN0cmwgPSBleHBvcnRzLlF1aWNrRmlsdGVyUXVhbnRpdGF0aXZlQ3RybCB8fCAoZXhwb3J0cy5RdWlja0ZpbHRlclF1YW50aXRhdGl2ZUN0cmwgPSB7fSkpO1xuLy8gSW5kaWNhdGVzIGEgcXVhbnRpdGF0aXZlIG1vZGVcbnZhciBRdWlja0ZpbHRlclF1YW50aXRhdGl2ZU1vZGU7XG4oZnVuY3Rpb24gKFF1aWNrRmlsdGVyUXVhbnRpdGF0aXZlTW9kZSkge1xuICAgIC8vIFxuICAgIFF1aWNrRmlsdGVyUXVhbnRpdGF0aXZlTW9kZVtcIlF1aWNrRmlsdGVyUXVhbnRpdGF0aXZlTW9kZV9fUUZRTV9NaW5NYXhcIl0gPSBcIm1pbi1tYXhcIjtcbiAgICAvLyBcbiAgICBRdWlja0ZpbHRlclF1YW50aXRhdGl2ZU1vZGVbXCJRdWlja0ZpbHRlclF1YW50aXRhdGl2ZU1vZGVfX1FGUU1fTWluT25seVwiXSA9IFwibWluLW9ubHlcIjtcbiAgICAvLyBcbiAgICBRdWlja0ZpbHRlclF1YW50aXRhdGl2ZU1vZGVbXCJRdWlja0ZpbHRlclF1YW50aXRhdGl2ZU1vZGVfX1FGUU1fTWF4T25seVwiXSA9IFwibWF4LW9ubHlcIjtcbiAgICAvLyBcbiAgICBRdWlja0ZpbHRlclF1YW50aXRhdGl2ZU1vZGVbXCJRdWlja0ZpbHRlclF1YW50aXRhdGl2ZU1vZGVfX1FGUU1fUmVsRGF0ZVwiXSA9IFwicmVsLWRhdGVcIjtcbiAgICAvLyBcbiAgICBRdWlja0ZpbHRlclF1YW50aXRhdGl2ZU1vZGVbXCJRdWlja0ZpbHRlclF1YW50aXRhdGl2ZU1vZGVfX1FGUU1fUmVsUGlja1wiXSA9IFwicmVsLXBpY2tcIjtcbn0pKFF1aWNrRmlsdGVyUXVhbnRpdGF0aXZlTW9kZSA9IGV4cG9ydHMuUXVpY2tGaWx0ZXJRdWFudGl0YXRpdmVNb2RlIHx8IChleHBvcnRzLlF1aWNrRmlsdGVyUXVhbnRpdGF0aXZlTW9kZSA9IHt9KSk7XG4vLyBXaGVyZSBpcyByZW5kZXJpbmcgaGFwcGVuaW5nIC0gY2xpZW50IG9yIHNlcnZlclxudmFyIFJlbmRlck1vZGU7XG4oZnVuY3Rpb24gKFJlbmRlck1vZGUpIHtcbiAgICAvLyBcbiAgICBSZW5kZXJNb2RlW1wiUmVuZGVyTW9kZVNlcnZlclwiXSA9IFwicmVuZGVyLW1vZGUtc2VydmVyXCI7XG4gICAgLy8gXG4gICAgUmVuZGVyTW9kZVtcIlJlbmRlck1vZGVDbGllbnRcIl0gPSBcInJlbmRlci1tb2RlLWNsaWVudFwiO1xufSkoUmVuZGVyTW9kZSA9IGV4cG9ydHMuUmVuZGVyTW9kZSB8fCAoZXhwb3J0cy5SZW5kZXJNb2RlID0ge30pKTtcbi8vIFxudmFyIEFkZE9yUmVtb3ZlTWFya3M7XG4oZnVuY3Rpb24gKEFkZE9yUmVtb3ZlTWFya3MpIHtcbiAgICAvLyBcbiAgICBBZGRPclJlbW92ZU1hcmtzW1wiQU9STV9BRERcIl0gPSBcImFkZFwiO1xuICAgIC8vIFxuICAgIEFkZE9yUmVtb3ZlTWFya3NbXCJBT1JNX1JFTU9WRVwiXSA9IFwicmVtb3ZlXCI7XG59KShBZGRPclJlbW92ZU1hcmtzID0gZXhwb3J0cy5BZGRPclJlbW92ZU1hcmtzIHx8IChleHBvcnRzLkFkZE9yUmVtb3ZlTWFya3MgPSB7fSkpO1xuLy8gXG52YXIgVmlzdWFsRG9jRW51bXNHZW9TZWFyY2hWaXNpYmlsaXR5O1xuKGZ1bmN0aW9uIChWaXN1YWxEb2NFbnVtc0dlb1NlYXJjaFZpc2liaWxpdHkpIHtcbiAgICAvLyBcbiAgICBWaXN1YWxEb2NFbnVtc0dlb1NlYXJjaFZpc2liaWxpdHlbXCJHU1ZfT25cIl0gPSBcIm9uXCI7XG4gICAgLy8gXG4gICAgVmlzdWFsRG9jRW51bXNHZW9TZWFyY2hWaXNpYmlsaXR5W1wiR1NWX09mZlwiXSA9IFwib2ZmXCI7XG59KShWaXN1YWxEb2NFbnVtc0dlb1NlYXJjaFZpc2liaWxpdHkgPSBleHBvcnRzLlZpc3VhbERvY0VudW1zR2VvU2VhcmNoVmlzaWJpbGl0eSB8fCAoZXhwb3J0cy5WaXN1YWxEb2NFbnVtc0dlb1NlYXJjaFZpc2liaWxpdHkgPSB7fSkpO1xuLy8gXG52YXIgVmlzdWFsRG9jRW51bXNNYXBTY2FsZVZpc2liaWxpdHk7XG4oZnVuY3Rpb24gKFZpc3VhbERvY0VudW1zTWFwU2NhbGVWaXNpYmlsaXR5KSB7XG4gICAgLy8gXG4gICAgVmlzdWFsRG9jRW51bXNNYXBTY2FsZVZpc2liaWxpdHlbXCJNU1ZfT25cIl0gPSBcIm9uXCI7XG4gICAgLy8gXG4gICAgVmlzdWFsRG9jRW51bXNNYXBTY2FsZVZpc2liaWxpdHlbXCJNU1ZfT2ZmXCJdID0gXCJvZmZcIjtcbn0pKFZpc3VhbERvY0VudW1zTWFwU2NhbGVWaXNpYmlsaXR5ID0gZXhwb3J0cy5WaXN1YWxEb2NFbnVtc01hcFNjYWxlVmlzaWJpbGl0eSB8fCAoZXhwb3J0cy5WaXN1YWxEb2NFbnVtc01hcFNjYWxlVmlzaWJpbGl0eSA9IHt9KSk7XG4vLyBcbnZhciBWaXN1YWxEb2NFbnVtc0F1dG9EcmlsbFZpc2liaWxpdHk7XG4oZnVuY3Rpb24gKFZpc3VhbERvY0VudW1zQXV0b0RyaWxsVmlzaWJpbGl0eSkge1xuICAgIC8vIFxuICAgIFZpc3VhbERvY0VudW1zQXV0b0RyaWxsVmlzaWJpbGl0eVtcIkFEVl9PblwiXSA9IFwib25cIjtcbiAgICAvLyBcbiAgICBWaXN1YWxEb2NFbnVtc0F1dG9EcmlsbFZpc2liaWxpdHlbXCJBRFZfT2ZmXCJdID0gXCJvZmZcIjtcbn0pKFZpc3VhbERvY0VudW1zQXV0b0RyaWxsVmlzaWJpbGl0eSA9IGV4cG9ydHMuVmlzdWFsRG9jRW51bXNBdXRvRHJpbGxWaXNpYmlsaXR5IHx8IChleHBvcnRzLlZpc3VhbERvY0VudW1zQXV0b0RyaWxsVmlzaWJpbGl0eSA9IHt9KSk7XG4vLyBcbnZhciBWaXN1YWxEb2NFbnVtc01hcFRvb2xTZWxlY3Rpb247XG4oZnVuY3Rpb24gKFZpc3VhbERvY0VudW1zTWFwVG9vbFNlbGVjdGlvbikge1xuICAgIC8vIFxuICAgIFZpc3VhbERvY0VudW1zTWFwVG9vbFNlbGVjdGlvbltcIk1UX1Bhbl9NYXBcIl0gPSBcInBhbi1tYXBcIjtcbiAgICAvLyBcbiAgICBWaXN1YWxEb2NFbnVtc01hcFRvb2xTZWxlY3Rpb25bXCJNVF9SZWN0YW5ndWxhcl9TZWxlY3Rpb25cIl0gPSBcInJlY3Rhbmd1bGFyLXNlbGVjdGlvblwiO1xuICAgIC8vIFxuICAgIFZpc3VhbERvY0VudW1zTWFwVG9vbFNlbGVjdGlvbltcIk1UX1JhZGlhbF9TZWxlY3Rpb25cIl0gPSBcInJhZGlhbC1zZWxlY3Rpb25cIjtcbiAgICAvLyBcbiAgICBWaXN1YWxEb2NFbnVtc01hcFRvb2xTZWxlY3Rpb25bXCJNVF9ab29tX0luXCJdID0gXCJ6b29tLWluXCI7XG4gICAgLy8gXG4gICAgVmlzdWFsRG9jRW51bXNNYXBUb29sU2VsZWN0aW9uW1wiTVRfWm9vbV9PdXRcIl0gPSBcInpvb20tb3V0XCI7XG4gICAgLy8gXG4gICAgVmlzdWFsRG9jRW51bXNNYXBUb29sU2VsZWN0aW9uW1wiTVRfU2luZ2xlX1NlbGVjdGlvblwiXSA9IFwic2luZ2xlLXNlbGVjdGlvblwiO1xuICAgIC8vIFxuICAgIFZpc3VhbERvY0VudW1zTWFwVG9vbFNlbGVjdGlvbltcIk1UX0xhc3NvX1NlbGVjdGlvblwiXSA9IFwibGFzc28tc2VsZWN0aW9uXCI7XG4gICAgLy8gXG4gICAgVmlzdWFsRG9jRW51bXNNYXBUb29sU2VsZWN0aW9uW1wiTVRfQWxsX1NlbGVjdGlvbl9Ub29sc1wiXSA9IFwiYWxsLXNlbGVjdGlvbi10b29sc1wiO1xuICAgIC8vIFxuICAgIFZpc3VhbERvY0VudW1zTWFwVG9vbFNlbGVjdGlvbltcIk1UX0FyZWFfWm9vbVwiXSA9IFwiYXJlYS16b29tXCI7XG4gICAgLy8gXG4gICAgVmlzdWFsRG9jRW51bXNNYXBUb29sU2VsZWN0aW9uW1wiTVRfTm9fVG9vbHNcIl0gPSBcIm5vLXRvb2xzXCI7XG4gICAgLy8gXG4gICAgVmlzdWFsRG9jRW51bXNNYXBUb29sU2VsZWN0aW9uW1wiTVRfQWR2YW5jZWRfU2VsZWN0aW9uX1Rvb2xzXCJdID0gXCJhZHZhbmNlZC1zZWxlY3Rpb24tdG9vbHNcIjtcbiAgICAvLyBcbiAgICBWaXN1YWxEb2NFbnVtc01hcFRvb2xTZWxlY3Rpb25bXCJNVF9NYXBfVG9vbHNcIl0gPSBcIm1hcC10b29sc1wiO1xuICAgIC8vIFxuICAgIFZpc3VhbERvY0VudW1zTWFwVG9vbFNlbGVjdGlvbltcIk1UX05vbl9NYXBfVG9vbHNcIl0gPSBcIm5vbi1tYXAtdG9vbHNcIjtcbiAgICAvLyBcbiAgICBWaXN1YWxEb2NFbnVtc01hcFRvb2xTZWxlY3Rpb25bXCJNVF9Ub29sX01hc2tcIl0gPSBcInRvb2wtbWFza1wiO1xufSkoVmlzdWFsRG9jRW51bXNNYXBUb29sU2VsZWN0aW9uID0gZXhwb3J0cy5WaXN1YWxEb2NFbnVtc01hcFRvb2xTZWxlY3Rpb24gfHwgKGV4cG9ydHMuVmlzdWFsRG9jRW51bXNNYXBUb29sU2VsZWN0aW9uID0ge30pKTtcbi8vIFxudmFyIFZpc3VhbERvY0VudW1zRmxvYXRpbmdUb29sYmFyVmlzaWJpbGl0eTtcbihmdW5jdGlvbiAoVmlzdWFsRG9jRW51bXNGbG9hdGluZ1Rvb2xiYXJWaXNpYmlsaXR5KSB7XG4gICAgLy8gXG4gICAgVmlzdWFsRG9jRW51bXNGbG9hdGluZ1Rvb2xiYXJWaXNpYmlsaXR5W1wiRlRWX0F1dG9cIl0gPSBcImF1dG9cIjtcbiAgICAvLyBcbiAgICBWaXN1YWxEb2NFbnVtc0Zsb2F0aW5nVG9vbGJhclZpc2liaWxpdHlbXCJGVFZfU2hvd1wiXSA9IFwic2hvd1wiO1xuICAgIC8vIFxuICAgIFZpc3VhbERvY0VudW1zRmxvYXRpbmdUb29sYmFyVmlzaWJpbGl0eVtcIkZUVl9IaWRlXCJdID0gXCJoaWRlXCI7XG59KShWaXN1YWxEb2NFbnVtc0Zsb2F0aW5nVG9vbGJhclZpc2liaWxpdHkgPSBleHBvcnRzLlZpc3VhbERvY0VudW1zRmxvYXRpbmdUb29sYmFyVmlzaWJpbGl0eSB8fCAoZXhwb3J0cy5WaXN1YWxEb2NFbnVtc0Zsb2F0aW5nVG9vbGJhclZpc2liaWxpdHkgPSB7fSkpO1xuLy8gXG52YXIgVmlzdWFsRG9jRW51bXNWaXpOYXZpZ2F0aW9uU2V0dGluZztcbihmdW5jdGlvbiAoVmlzdWFsRG9jRW51bXNWaXpOYXZpZ2F0aW9uU2V0dGluZykge1xuICAgIC8vIFxuICAgIFZpc3VhbERvY0VudW1zVml6TmF2aWdhdGlvblNldHRpbmdbXCJOQVZfQXV0b1wiXSA9IFwiYXV0b1wiO1xuICAgIC8vIFxuICAgIFZpc3VhbERvY0VudW1zVml6TmF2aWdhdGlvblNldHRpbmdbXCJOQVZfRml4ZWRcIl0gPSBcImZpeGVkXCI7XG59KShWaXN1YWxEb2NFbnVtc1Zpek5hdmlnYXRpb25TZXR0aW5nID0gZXhwb3J0cy5WaXN1YWxEb2NFbnVtc1Zpek5hdmlnYXRpb25TZXR0aW5nIHx8IChleHBvcnRzLlZpc3VhbERvY0VudW1zVml6TmF2aWdhdGlvblNldHRpbmcgPSB7fSkpO1xuLy8gXG52YXIgVmlzdWFsRG9jRW51bXNab29tVHlwZTtcbihmdW5jdGlvbiAoVmlzdWFsRG9jRW51bXNab29tVHlwZSkge1xuICAgIC8vIFxuICAgIFZpc3VhbERvY0VudW1zWm9vbVR5cGVbXCJQZXJjZW50XCJdID0gXCJwZXJjZW50XCI7XG4gICAgLy8gXG4gICAgVmlzdWFsRG9jRW51bXNab29tVHlwZVtcIkVudGlyZVZpZXdcIl0gPSBcImVudGlyZS12aWV3XCI7XG4gICAgLy8gXG4gICAgVmlzdWFsRG9jRW51bXNab29tVHlwZVtcIkZpdFdpZHRoXCJdID0gXCJmaXQtd2lkdGhcIjtcbiAgICAvLyBcbiAgICBWaXN1YWxEb2NFbnVtc1pvb21UeXBlW1wiRml0SGVpZ2h0XCJdID0gXCJmaXQtaGVpZ2h0XCI7XG59KShWaXN1YWxEb2NFbnVtc1pvb21UeXBlID0gZXhwb3J0cy5WaXN1YWxEb2NFbnVtc1pvb21UeXBlIHx8IChleHBvcnRzLlZpc3VhbERvY0VudW1zWm9vbVR5cGUgPSB7fSkpO1xuLy8gXG52YXIgU2hlZXRTY3JvbGxEaXJlY3Rpb247XG4oZnVuY3Rpb24gKFNoZWV0U2Nyb2xsRGlyZWN0aW9uKSB7XG4gICAgLy8gc2Nyb2xsLWZpcnN0XG4gICAgU2hlZXRTY3JvbGxEaXJlY3Rpb25bXCJTaGVldFNjcm9sbEZpcnN0XCJdID0gXCJzY3JvbGwtZmlyc3RcIjtcbiAgICAvLyBzY3JvbGwtcHJldlxuICAgIFNoZWV0U2Nyb2xsRGlyZWN0aW9uW1wiU2hlZXRTY3JvbGxQcmV2XCJdID0gXCJzY3JvbGwtcHJldlwiO1xuICAgIC8vIHNjcm9sbC1uZXh0XG4gICAgU2hlZXRTY3JvbGxEaXJlY3Rpb25bXCJTaGVldFNjcm9sbE5leHRcIl0gPSBcInNjcm9sbC1uZXh0XCI7XG4gICAgLy8gc2Nyb2xsLWxhc3RcbiAgICBTaGVldFNjcm9sbERpcmVjdGlvbltcIlNoZWV0U2Nyb2xsTGFzdFwiXSA9IFwic2Nyb2xsLWxhc3RcIjtcbn0pKFNoZWV0U2Nyb2xsRGlyZWN0aW9uID0gZXhwb3J0cy5TaGVldFNjcm9sbERpcmVjdGlvbiB8fCAoZXhwb3J0cy5TaGVldFNjcm9sbERpcmVjdGlvbiA9IHt9KSk7XG4vLyBhZ2dyZWdhdGlvbiB0eXBlIGZvciBwZXJzcGVjdGl2ZXNcbnZhciBQZXJzcGVjdGl2ZVV0aWxzQWdncmVnYXRlVHlwZTtcbihmdW5jdGlvbiAoUGVyc3BlY3RpdmVVdGlsc0FnZ3JlZ2F0ZVR5cGUpIHtcbiAgICAvLyBcbiAgICBQZXJzcGVjdGl2ZVV0aWxzQWdncmVnYXRlVHlwZVtcIlJFQUxJVFlcIl0gPSBcInJlYWxpdHlcIjtcbiAgICAvLyBcbiAgICBQZXJzcGVjdGl2ZVV0aWxzQWdncmVnYXRlVHlwZVtcIkZJUlNUXCJdID0gXCJmaXJzdC10aW1lLWluLWN1YmVcIjtcbiAgICAvLyBcbiAgICBQZXJzcGVjdGl2ZVV0aWxzQWdncmVnYXRlVHlwZVtcIkxBU1RcIl0gPSBcImxhdGVzdC10aW1lLWluLWN1YmVcIjtcbiAgICAvLyBcbiAgICBQZXJzcGVjdGl2ZVV0aWxzQWdncmVnYXRlVHlwZVtcIkNVU1RPTV9GT1JfQ1VCRVwiXSA9IFwiY3VzdG9tLWZvci1jdWJlXCI7XG4gICAgLy8gXG4gICAgUGVyc3BlY3RpdmVVdGlsc0FnZ3JlZ2F0ZVR5cGVbXCJDVVNUT01fUEVSX0FUVFJJQlVURVwiXSA9IFwiY3VzdG9tLXBlci1hdHRyaWJ1dGVcIjtcbn0pKFBlcnNwZWN0aXZlVXRpbHNBZ2dyZWdhdGVUeXBlID0gZXhwb3J0cy5QZXJzcGVjdGl2ZVV0aWxzQWdncmVnYXRlVHlwZSB8fCAoZXhwb3J0cy5QZXJzcGVjdGl2ZVV0aWxzQWdncmVnYXRlVHlwZSA9IHt9KSk7XG4vLyBcbnZhciBab25lRWRnZU1vdmU7XG4oZnVuY3Rpb24gKFpvbmVFZGdlTW92ZSkge1xuICAgIC8vIFxuICAgIFpvbmVFZGdlTW92ZVtcIkVkZ2VEcmFnXCJdID0gXCJlZGdlLWRyYWdcIjtcbiAgICAvLyBcbiAgICBab25lRWRnZU1vdmVbXCJFZGdlU25hcEFsaWduXCJdID0gXCJlZGdlLXNuYXAtYWxpZ25cIjtcbiAgICAvLyBcbiAgICBab25lRWRnZU1vdmVbXCJFZGdlU25hcFBvc2l0aW9uXCJdID0gXCJlZGdlLXNuYXAtcG9zaXRpb25cIjtcbn0pKFpvbmVFZGdlTW92ZSA9IGV4cG9ydHMuWm9uZUVkZ2VNb3ZlIHx8IChleHBvcnRzLlpvbmVFZGdlTW92ZSA9IHt9KSk7XG4vLyBcbnZhciBGb3JtYXRDb250cm9sVHlwZTtcbihmdW5jdGlvbiAoRm9ybWF0Q29udHJvbFR5cGUpIHtcbiAgICAvLyBcbiAgICBGb3JtYXRDb250cm9sVHlwZVtcIkZDVF9OT05FXCJdID0gXCJmY3Qtbm9uZVwiO1xuICAgIC8vIFxuICAgIEZvcm1hdENvbnRyb2xUeXBlW1wiRkNUX0NvbG9yXCJdID0gXCJmY3QtY29sb3JcIjtcbiAgICAvLyBcbiAgICBGb3JtYXRDb250cm9sVHlwZVtcIkZDVF9Gb250XCJdID0gXCJmY3QtZm9udFwiO1xuICAgIC8vIFxuICAgIEZvcm1hdENvbnRyb2xUeXBlW1wiRkNUX0JvcmRlclwiXSA9IFwiZmN0LWJvcmRlclwiO1xuICAgIC8vIFxuICAgIEZvcm1hdENvbnRyb2xUeXBlW1wiRkNUX1N0cm9rZVwiXSA9IFwiZmN0LXN0cm9rZVwiO1xuICAgIC8vIFxuICAgIEZvcm1hdENvbnRyb2xUeXBlW1wiRkNUX051bWJlclwiXSA9IFwiZmN0LW51bWJlclwiO1xuICAgIC8vIFxuICAgIEZvcm1hdENvbnRyb2xUeXBlW1wiRkNUX0xheW91dFwiXSA9IFwiZmN0LWxheW91dFwiO1xuICAgIC8vIFxuICAgIEZvcm1hdENvbnRyb2xUeXBlW1wiRkNUX1RleHRcIl0gPSBcImZjdC10ZXh0XCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Q29udHJvbFR5cGVbXCJGQ1RfT3B0Q29sb3JcIl0gPSBcImZjdC1vcHRjb2xvclwiO1xuICAgIC8vIFxuICAgIEZvcm1hdENvbnRyb2xUeXBlW1wiRkNUX0JhbmRDb2xvclwiXSA9IFwiZmN0LWJhbmRjb2xvclwiO1xuICAgIC8vIFxuICAgIEZvcm1hdENvbnRyb2xUeXBlW1wiRkNUX0JhbmRTaXplXCJdID0gXCJmY3QtYmFuZHNpemVcIjtcbiAgICAvLyBcbiAgICBGb3JtYXRDb250cm9sVHlwZVtcIkZDVF9CYW5kTGV2ZWxcIl0gPSBcImZjdC1iYW5kbGV2ZWxcIjtcbiAgICAvLyBcbiAgICBGb3JtYXRDb250cm9sVHlwZVtcIkZDVF9EaXZMZXZlbFwiXSA9IFwiZmN0LWRpdmxldmVsXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Q29udHJvbFR5cGVbXCJGQ1RfU3BlY1ZhbHNUZXh0XCJdID0gXCJmY3Qtc3BlY3ZhbHN0ZXh0XCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Q29udHJvbFR5cGVbXCJGQ1RfU3BlY1ZhbHNHcmFwaFwiXSA9IFwiZmN0LXNwZWN2YWxzZ3JhcGhcIjtcbiAgICAvLyBcbiAgICBGb3JtYXRDb250cm9sVHlwZVtcIkZDVF9IQWxpZ25cIl0gPSBcImZjdC1oYWxpZ25cIjtcbiAgICAvLyBcbiAgICBGb3JtYXRDb250cm9sVHlwZVtcIkZDVF9PcmllbnRcIl0gPSBcImZjdC1vcmllbnRcIjtcbiAgICAvLyBcbiAgICBGb3JtYXRDb250cm9sVHlwZVtcIkZDVF9Sb3VuZGluZ1wiXSA9IFwiZmN0LXJvdW5kaW5nXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Q29udHJvbFR5cGVbXCJGQ1RfTGluZUVuZFwiXSA9IFwiZmN0LWxpbmVlbmRcIjtcbiAgICAvLyBcbiAgICBGb3JtYXRDb250cm9sVHlwZVtcIkZDVF9MaW5lRW5kU2l6ZVwiXSA9IFwiZmN0LWxpbmVlbmRzaXplXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Q29udHJvbFR5cGVbXCJGQ1RfQm9keVR5cGVcIl0gPSBcImZjdC1ib2R5dHlwZVwiO1xuICAgIC8vIFxuICAgIEZvcm1hdENvbnRyb2xUeXBlW1wiRkNUX0FscGhhTGV2ZWxcIl0gPSBcImZjdC1hbHBoYWxldmVsXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Q29udHJvbFR5cGVbXCJGQ1RfTGluZUludGVycG9sYXRpb25cIl0gPSBcImZjdC1saW5lLWludGVycG9sYXRpb25cIjtcbiAgICAvLyBcbiAgICBGb3JtYXRDb250cm9sVHlwZVtcIkZDVF9MaW5lTWFya2VyUG9zaXRpb25cIl0gPSBcImZjdC1saW5lLW1hcmtlci1wb3NpdGlvblwiO1xuICAgIC8vIFxuICAgIEZvcm1hdENvbnRyb2xUeXBlW1wiRkNUX01hcmtCb3JkZXJcIl0gPSBcImZjdC1tYXJrYm9yZGVyXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Q29udHJvbFR5cGVbXCJGQ1RfTWFya0hhbG9cIl0gPSBcImZjdC1tYXJraGFsb1wiO1xuICAgIC8vIFxuICAgIEZvcm1hdENvbnRyb2xUeXBlW1wiRkNUX01hcmtNYXJrZXJzXCJdID0gXCJmY3QtbWFya21hcmtlcnNcIjtcbiAgICAvLyBcbiAgICBGb3JtYXRDb250cm9sVHlwZVtcIkZDVF9SZWZMaW5lUGFsZXR0ZVwiXSA9IFwiZmN0LXJlZmxpbmVwYWxldHRlXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Q29udHJvbFR5cGVbXCJGQ1RfUmV2ZXJzZVwiXSA9IFwiZmN0LXJldmVyc2VcIjtcbiAgICAvLyBcbiAgICBGb3JtYXRDb250cm9sVHlwZVtcIkZDVF9XaGlza2Vyc1wiXSA9IFwiZmN0LXdoaXNrZXJzXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Q29udHJvbFR5cGVbXCJGQ1RfQm94cGxvdFBhbGV0dGVcIl0gPSBcImZjdC1ib3hwbG90cGFsZXR0ZVwiO1xuICAgIC8vIFxuICAgIEZvcm1hdENvbnRyb2xUeXBlW1wiRkNUX1NvbGlkU3Ryb2tlXCJdID0gXCJmY3Qtc29saWRzdHJva2VcIjtcbiAgICAvLyBcbiAgICBGb3JtYXRDb250cm9sVHlwZVtcIkZDVF9Cb3hwbG90U3R5bGVcIl0gPSBcImZjdC1ib3hwbG90c3R5bGVcIjtcbiAgICAvLyBcbiAgICBGb3JtYXRDb250cm9sVHlwZVtcIkZDVF9Cb3hwbG90Q29tcG91bmRGaWxsXCJdID0gXCJmY3QtYm94cGxvdGNvbXBvdW5kZmlsbFwiO1xufSkoRm9ybWF0Q29udHJvbFR5cGUgPSBleHBvcnRzLkZvcm1hdENvbnRyb2xUeXBlIHx8IChleHBvcnRzLkZvcm1hdENvbnRyb2xUeXBlID0ge30pKTtcbi8vIFxudmFyIEZvcm1hdENvbnRyb2xGbGFnO1xuKGZ1bmN0aW9uIChGb3JtYXRDb250cm9sRmxhZykge1xuICAgIC8vIFxuICAgIEZvcm1hdENvbnRyb2xGbGFnW1wiRkNGX1Zpc3VhbFN0eWxlc2hlZXRcIl0gPSBcImZjZl92aXN1YWxzdHlsZXNoZWV0XCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Q29udHJvbEZsYWdbXCJGQ0ZfUGFuZVN0eWxlc2hlZXRcIl0gPSBcImZjZl9wYW5lc3R5bGVzaGVldFwiO1xuICAgIC8vIFxuICAgIEZvcm1hdENvbnRyb2xGbGFnW1wiRkNGX0ZpeGVkU2NvcGVcIl0gPSBcImZjZl9maXhlZHNjb3BlXCI7XG4gICAgLy8gXG4gICAgRm9ybWF0Q29udHJvbEZsYWdbXCJGQ0ZfQWxsb3dUcmFuc3BhcmVuY3lcIl0gPSBcImZjZl9hbGxvd3RyYW5zcGFyZW5jeVwiO1xufSkoRm9ybWF0Q29udHJvbEZsYWcgPSBleHBvcnRzLkZvcm1hdENvbnRyb2xGbGFnIHx8IChleHBvcnRzLkZvcm1hdENvbnRyb2xGbGFnID0ge30pKTtcbi8vIFxudmFyIEFwcENvbmZpZ0VudW07XG4oZnVuY3Rpb24gKEFwcENvbmZpZ0VudW0pIHtcbiAgICAvLyBkZWZhdWx0IGRpcmVjdG9yeSB3aGVyZSBUYWJsZWF1IGZpbmRzIGRhdGEgc291cmNlcywgbG9ncywgc2hhcGVzLCBldGMuXG4gICAgQXBwQ29uZmlnRW51bVtcIkFDU19SZXBvc2l0b3J5RGlyXCJdID0gXCJyZXBvc2l0b3J5LWRpclwiO1xuICAgIC8vIGFwcGxpY2F0aW9uIGRpcmVjdG9yeVxuICAgIEFwcENvbmZpZ0VudW1bXCJBQ1NfQXBwbGljYXRpb25EaXJcIl0gPSBcImFwcGxpY2F0aW9uLWRpclwiO1xuICAgIC8vIHNhbXBsZSB3b3JrYm9va3MgZGlyZWN0b3J5XG4gICAgQXBwQ29uZmlnRW51bVtcIkFDU19TYW1wbGVzRGlyXCJdID0gXCJzYW1wbGVzLWRpclwiO1xufSkoQXBwQ29uZmlnRW51bSA9IGV4cG9ydHMuQXBwQ29uZmlnRW51bSB8fCAoZXhwb3J0cy5BcHBDb25maWdFbnVtID0ge30pKTtcbi8vIFxudmFyIERlbHRhVHlwZTtcbihmdW5jdGlvbiAoRGVsdGFUeXBlKSB7XG4gICAgLy8gXG4gICAgRGVsdGFUeXBlW1wiREVMVEFfTk9ORVwiXSA9IFwibm9uZVwiO1xuICAgIC8vIFxuICAgIERlbHRhVHlwZVtcIkRFTFRBX0FEREVEXCJdID0gXCJhZGRlZFwiO1xuICAgIC8vIFxuICAgIERlbHRhVHlwZVtcIkRFTFRBX0VESVRFRFwiXSA9IFwiZWRpdGVkXCI7XG4gICAgLy8gXG4gICAgRGVsdGFUeXBlW1wiREVMVEFfUkVNT1ZFRFwiXSA9IFwicmVtb3ZlZFwiO1xufSkoRGVsdGFUeXBlID0gZXhwb3J0cy5EZWx0YVR5cGUgfHwgKGV4cG9ydHMuRGVsdGFUeXBlID0ge30pKTtcbi8vIFxudmFyIEV4dHJhY3RUeXBlO1xuKGZ1bmN0aW9uIChFeHRyYWN0VHlwZSkge1xuICAgIC8vIFxuICAgIEV4dHJhY3RUeXBlW1wiRXh0cmFjdFR5cGVfQWxsXCJdID0gXCJleHRyYWN0LXR5cGUtYWxsXCI7XG4gICAgLy8gXG4gICAgRXh0cmFjdFR5cGVbXCJFeHRyYWN0VHlwZV9Tb21lXCJdID0gXCJleHRyYWN0LXR5cGUtc29tZVwiO1xuICAgIC8vIFxuICAgIEV4dHJhY3RUeXBlW1wiRXh0cmFjdFR5cGVfTm9uZVwiXSA9IFwiZXh0cmFjdC10eXBlLW5vbmVcIjtcbn0pKEV4dHJhY3RUeXBlID0gZXhwb3J0cy5FeHRyYWN0VHlwZSB8fCAoZXhwb3J0cy5FeHRyYWN0VHlwZSA9IHt9KSk7XG4vLyBcbnZhciBFeHRyYWN0UmVmcmVzaFN0YXR1cztcbihmdW5jdGlvbiAoRXh0cmFjdFJlZnJlc2hTdGF0dXMpIHtcbiAgICAvLyBcbiAgICBFeHRyYWN0UmVmcmVzaFN0YXR1c1tcIkV4dHJhY3RSZWZyZXNoX05vbmVcIl0gPSBcImV4dHJhY3QtcmVmcmVzaC1ub25lXCI7XG4gICAgLy8gXG4gICAgRXh0cmFjdFJlZnJlc2hTdGF0dXNbXCJFeHRyYWN0UmVmcmVzaF9QZW5kaW5nXCJdID0gXCJleHRyYWN0LXJlZnJlc2gtcGVuZGluZ1wiO1xuICAgIC8vIFxuICAgIEV4dHJhY3RSZWZyZXNoU3RhdHVzW1wiRXh0cmFjdFJlZnJlc2hfSW5Qcm9ncmVzc1wiXSA9IFwiZXh0cmFjdC1yZWZyZXNoLWlucHJvZ3Jlc3NcIjtcbiAgICAvLyBcbiAgICBFeHRyYWN0UmVmcmVzaFN0YXR1c1tcIkV4dHJhY3RSZWZyZXNoX0RvbmVcIl0gPSBcImV4dHJhY3QtcmVmcmVzaC1kb25lXCI7XG4gICAgLy8gXG4gICAgRXh0cmFjdFJlZnJlc2hTdGF0dXNbXCJFeHRyYWN0UmVmcmVzaF9FcnJvclwiXSA9IFwiZXh0cmFjdC1yZWZyZXNoLWVycm9yXCI7XG4gICAgLy8gXG4gICAgRXh0cmFjdFJlZnJlc2hTdGF0dXNbXCJFeHRyYWN0UmVmcmVzaF9DYW5jZWxlZFwiXSA9IFwiZXh0cmFjdC1yZWZyZXNoLWNhbmNlbGVkXCI7XG59KShFeHRyYWN0UmVmcmVzaFN0YXR1cyA9IGV4cG9ydHMuRXh0cmFjdFJlZnJlc2hTdGF0dXMgfHwgKGV4cG9ydHMuRXh0cmFjdFJlZnJlc2hTdGF0dXMgPSB7fSkpO1xuLy8gXG52YXIgTWFwVW5pdFNlbGVjdGlvbkVudW07XG4oZnVuY3Rpb24gKE1hcFVuaXRTZWxlY3Rpb25FbnVtKSB7XG4gICAgLy8gXG4gICAgTWFwVW5pdFNlbGVjdGlvbkVudW1bXCJNVVNfQXV0b21hdGljXCJdID0gXCJhdXRvbWF0aWNcIjtcbiAgICAvLyBcbiAgICBNYXBVbml0U2VsZWN0aW9uRW51bVtcIk1VU19NZXRyaWNcIl0gPSBcIm1ldHJpY1wiO1xuICAgIC8vIFxuICAgIE1hcFVuaXRTZWxlY3Rpb25FbnVtW1wiTVVTX1VTXCJdID0gXCJ1c1wiO1xufSkoTWFwVW5pdFNlbGVjdGlvbkVudW0gPSBleHBvcnRzLk1hcFVuaXRTZWxlY3Rpb25FbnVtIHx8IChleHBvcnRzLk1hcFVuaXRTZWxlY3Rpb25FbnVtID0ge30pKTtcbi8vIFxudmFyIERhdGFDb25uZWN0aW9uSGlzdG9yeVJlZnJlc2hUeXBlO1xuKGZ1bmN0aW9uIChEYXRhQ29ubmVjdGlvbkhpc3RvcnlSZWZyZXNoVHlwZSkge1xuICAgIC8vIFxuICAgIERhdGFDb25uZWN0aW9uSGlzdG9yeVJlZnJlc2hUeXBlW1wiUlRfRlVMTFwiXSA9IFwiZnVsbFwiO1xuICAgIC8vIFxuICAgIERhdGFDb25uZWN0aW9uSGlzdG9yeVJlZnJlc2hUeXBlW1wiUlRfSU5DUkVNRU5UXCJdID0gXCJpbmNyZW1lbnRcIjtcbiAgICAvLyBcbiAgICBEYXRhQ29ubmVjdGlvbkhpc3RvcnlSZWZyZXNoVHlwZVtcIlJUX0FQUEVORF9GUk9NX0RBVEFfU09VUkNFXCJdID0gXCJhcHBlbmQtZnJvbS1kYXRhLXNvdXJjZVwiO1xuICAgIC8vIFxuICAgIERhdGFDb25uZWN0aW9uSGlzdG9yeVJlZnJlc2hUeXBlW1wiUlRfQVBQRU5EX0ZST01fRklMRVwiXSA9IFwiYXBwZW5kLWZyb20tZmlsZVwiO1xufSkoRGF0YUNvbm5lY3Rpb25IaXN0b3J5UmVmcmVzaFR5cGUgPSBleHBvcnRzLkRhdGFDb25uZWN0aW9uSGlzdG9yeVJlZnJlc2hUeXBlIHx8IChleHBvcnRzLkRhdGFDb25uZWN0aW9uSGlzdG9yeVJlZnJlc2hUeXBlID0ge30pKTtcbi8vIFxudmFyIENhbGNTdHlsZTtcbihmdW5jdGlvbiAoQ2FsY1N0eWxlKSB7XG4gICAgLy8gXG4gICAgQ2FsY1N0eWxlW1wiU0NFX1NUWUxFX0RFRkFVTFRcIl0gPSBcInN0eWxlX2RlZmF1bHRcIjtcbiAgICAvLyBcbiAgICBDYWxjU3R5bGVbXCJTQ0VfU1RZTEVfUFJJTUFSWV9GSUVMRFwiXSA9IFwic3R5bGVfcHJpbV9maWVsZFwiO1xuICAgIC8vIFxuICAgIENhbGNTdHlsZVtcIlNDRV9TVFlMRV9TRUNPTkRBUllfRklFTERcIl0gPSBcInN0eWxlX3NlY19maWVsZFwiO1xuICAgIC8vIFxuICAgIENhbGNTdHlsZVtcIlNDRV9TVFlMRV9MT0NBTF9GVU5DVElPTlwiXSA9IFwic3R5bGVfbG9jYWxfZnVuY1wiO1xuICAgIC8vIFxuICAgIENhbGNTdHlsZVtcIlNDRV9TVFlMRV9SRU1PVEVfRlVOQ1RJT05cIl0gPSBcInN0eWxlX3JlbW90ZV9mdW5jXCI7XG4gICAgLy8gXG4gICAgQ2FsY1N0eWxlW1wiU0NFX1NUWUxFX1BBUkFNRVRFUlwiXSA9IFwic3R5bGVfcGFyYW1cIjtcbiAgICAvLyBcbiAgICBDYWxjU3R5bGVbXCJTQ0VfU1RZTEVfQ09NTUVOVFwiXSA9IFwic3R5bGVfY29tbWVudFwiO1xuICAgIC8vIFxuICAgIENhbGNTdHlsZVtcIlNDRV9TVFlMRV9JTlZBTElEX0ZJRUxEXCJdID0gXCJzdHlsZV9pbnZhbGlkX2ZpZWxkXCI7XG4gICAgLy8gXG4gICAgQ2FsY1N0eWxlW1wiU0NFX1NUWUxFX1RBQkxFX0VYUFJcIl0gPSBcInN0eWxlX3RhYmxlX2V4cHJcIjtcbiAgICAvLyBcbiAgICBDYWxjU3R5bGVbXCJTQ0VfU1RZTEVfU1RSSU5HXCJdID0gXCJzdHlsZV9zdHJpbmdcIjtcbiAgICAvLyBcbiAgICBDYWxjU3R5bGVbXCJTQ0VfU1RZTEVfRElTQUJMRURcIl0gPSBcInN0eWxlX2Rpc2FibGVkXCI7XG4gICAgLy8gXG4gICAgQ2FsY1N0eWxlW1wiU0NFX1NUWUxFX0RSQUdfT1ZFUl9GSUVMRFwiXSA9IFwic3R5bGVfZHJhZ19vdmVyX2ZpZWxkXCI7XG4gICAgLy8gXG4gICAgQ2FsY1N0eWxlW1wiU0NFX1NUWUxFX0RSQUdfT1ZFUl9TRUxcIl0gPSBcInN0eWxlX2RyYWdfb3Zlcl9zZWxcIjtcbiAgICAvLyBcbiAgICBDYWxjU3R5bGVbXCJTQ0VfU1RZTEVfU0VMRUNUSU9OXCJdID0gXCJzdHlsZV9zZWxlY3Rpb25cIjtcbn0pKENhbGNTdHlsZSA9IGV4cG9ydHMuQ2FsY1N0eWxlIHx8IChleHBvcnRzLkNhbGNTdHlsZSA9IHt9KSk7XG4vLyBcbnZhciBGdW5jdGlvbkdyb3VwO1xuKGZ1bmN0aW9uIChGdW5jdGlvbkdyb3VwKSB7XG4gICAgLy8gXG4gICAgRnVuY3Rpb25Hcm91cFtcIkZHX05VTUVSSUNcIl0gPSBcIm51bVwiO1xuICAgIC8vIFxuICAgIEZ1bmN0aW9uR3JvdXBbXCJGR19TVFJJTkdcIl0gPSBcInN0clwiO1xuICAgIC8vIFxuICAgIEZ1bmN0aW9uR3JvdXBbXCJGR19EQVRFXCJdID0gXCJkYXRlXCI7XG4gICAgLy8gXG4gICAgRnVuY3Rpb25Hcm91cFtcIkZHX0NBU1RcIl0gPSBcImNhc3RcIjtcbiAgICAvLyBcbiAgICBGdW5jdGlvbkdyb3VwW1wiRkdfTE9HSUNBTFwiXSA9IFwibG9naWNcIjtcbiAgICAvLyBcbiAgICBGdW5jdGlvbkdyb3VwW1wiRkdfQUdHUkVHQVRFXCJdID0gXCJhZ2dcIjtcbiAgICAvLyBcbiAgICBGdW5jdGlvbkdyb3VwW1wiRkdfT1BFUkFUT1JcIl0gPSBcIm9wZXJcIjtcbiAgICAvLyBcbiAgICBGdW5jdGlvbkdyb3VwW1wiRkdfU1lTVEVNXCJdID0gXCJzeXNcIjtcbiAgICAvLyBcbiAgICBGdW5jdGlvbkdyb3VwW1wiRkdfUEFTU1RIUlVcIl0gPSBcInBhc3NcIjtcbiAgICAvLyBcbiAgICBGdW5jdGlvbkdyb3VwW1wiRkdfU1BFQ0lBTFwiXSA9IFwic3BlY1wiO1xuICAgIC8vIFxuICAgIEZ1bmN0aW9uR3JvdXBbXCJGR19VU0VSXCJdID0gXCJ1c2VyXCI7XG4gICAgLy8gXG4gICAgRnVuY3Rpb25Hcm91cFtcIkZHX1RBQkxFQ0FMQ1wiXSA9IFwidGFibGVcIjtcbn0pKEZ1bmN0aW9uR3JvdXAgPSBleHBvcnRzLkZ1bmN0aW9uR3JvdXAgfHwgKGV4cG9ydHMuRnVuY3Rpb25Hcm91cCA9IHt9KSk7XG4vLyBcbnZhciBGdW5jdGlvbkFyZ1R5cGU7XG4oZnVuY3Rpb24gKEZ1bmN0aW9uQXJnVHlwZSkge1xuICAgIC8vIFxuICAgIEZ1bmN0aW9uQXJnVHlwZVtcIkZBVF9OT05FXCJdID0gXCJub25lXCI7XG4gICAgLy8gXG4gICAgRnVuY3Rpb25BcmdUeXBlW1wiRkFUX0JPT0xcIl0gPSBcImJvb2xlYW5cIjtcbiAgICAvLyBcbiAgICBGdW5jdGlvbkFyZ1R5cGVbXCJGQVRfUkVBTFwiXSA9IFwicmVhbFwiO1xuICAgIC8vIFxuICAgIEZ1bmN0aW9uQXJnVHlwZVtcIkZBVF9JTlRcIl0gPSBcImludGVnZXJcIjtcbiAgICAvLyBcbiAgICBGdW5jdGlvbkFyZ1R5cGVbXCJGQVRfU1RSXCJdID0gXCJzdHJcIjtcbiAgICAvLyBcbiAgICBGdW5jdGlvbkFyZ1R5cGVbXCJGQVRfREFURVRJTUVcIl0gPSBcImRhdGV0aW1lXCI7XG4gICAgLy8gXG4gICAgRnVuY3Rpb25BcmdUeXBlW1wiRkFUX0RBVEVcIl0gPSBcImRhdGVcIjtcbiAgICAvLyBcbiAgICBGdW5jdGlvbkFyZ1R5cGVbXCJGQVRfTE9DQUxTVFJcIl0gPSBcImxvY3N0clwiO1xuICAgIC8vIFxuICAgIEZ1bmN0aW9uQXJnVHlwZVtcIkZBVF9OVUxMXCJdID0gXCJuaWxcIjtcbiAgICAvLyBcbiAgICBGdW5jdGlvbkFyZ1R5cGVbXCJGQVRfRVJST1JcIl0gPSBcImVyclwiO1xuICAgIC8vIFxuICAgIEZ1bmN0aW9uQXJnVHlwZVtcIkZBVF9BTllcIl0gPSBcImFueVwiO1xuICAgIC8vIFxuICAgIEZ1bmN0aW9uQXJnVHlwZVtcIkZBVF9CSU5cIl0gPSBcImJpblwiO1xuICAgIC8vIFxuICAgIEZ1bmN0aW9uQXJnVHlwZVtcIkZBVF9UVVBMRVwiXSA9IFwidHVwXCI7XG4gICAgLy8gXG4gICAgRnVuY3Rpb25BcmdUeXBlW1wiRkFUX0xPQ0FMUkVBTFwiXSA9IFwibG9jcmVhbFwiO1xuICAgIC8vIFxuICAgIEZ1bmN0aW9uQXJnVHlwZVtcIkZBVF9MT0NBTElOVFwiXSA9IFwibG9jaW50XCI7XG4gICAgLy8gXG4gICAgRnVuY3Rpb25BcmdUeXBlW1wiRkFUX1NQQVRJQUxcIl0gPSBcInNwYXRpYWxcIjtcbn0pKEZ1bmN0aW9uQXJnVHlwZSA9IGV4cG9ydHMuRnVuY3Rpb25BcmdUeXBlIHx8IChleHBvcnRzLkZ1bmN0aW9uQXJnVHlwZSA9IHt9KSk7XG4vLyBsb2dpY2FsIHBvc2l0aW9uIG9mIGFjdGl2aXR5IHN1Y2ggYXMgQmVnYW4gb3IgRW5kZWRcbnZhciBBY3Rpdml0eURpc3Bvc2l0aW9uO1xuKGZ1bmN0aW9uIChBY3Rpdml0eURpc3Bvc2l0aW9uKSB7XG4gICAgLy8gbm8gYWN0aXZpdHlcbiAgICBBY3Rpdml0eURpc3Bvc2l0aW9uW1wiTm9EaXNwb3NpdGlvblwiXSA9IFwibm8tZGlzcG9zaXRpb25cIjtcbiAgICAvLyBhY3Rpdml0eSBoYXMgYmVnYW5cbiAgICBBY3Rpdml0eURpc3Bvc2l0aW9uW1wiQmVnYW5cIl0gPSBcImJlZ2FuXCI7XG4gICAgLy8gYWN0aXZpdHkgaGFzIGVuZGVkXG4gICAgQWN0aXZpdHlEaXNwb3NpdGlvbltcIkVuZGVkXCJdID0gXCJlbmRlZFwiO1xuICAgIC8vIGFjdGl2aXR5IGhhcyBvY2N1cnJlZCBidXQgbmVpdGhlciBiZWdhbiBub3IgZW5kZWQgaXMga25vd25cbiAgICBBY3Rpdml0eURpc3Bvc2l0aW9uW1wiT2NjdXJyZWRcIl0gPSBcIm9jY3VycmVkXCI7XG4gICAgLy8gaW5kZWZpbml0ZSBhY3Rpdml0eSBpcyBleGVjdXRpbmdcbiAgICBBY3Rpdml0eURpc3Bvc2l0aW9uW1wiQWN0aXZlXCJdID0gXCJhY3RpdmVcIjtcbiAgICAvLyBpbmRlZmluaXRlIGFjdGl2aXR5IGhhcyB5aWVsZGVkIChlLmcuLCBpZGxlLCB3YWl0aW5nLCBzbGVlcGluZywgcXVpZXNjZSlcbiAgICBBY3Rpdml0eURpc3Bvc2l0aW9uW1wiSWRsZVwiXSA9IFwiaWRsZVwiO1xufSkoQWN0aXZpdHlEaXNwb3NpdGlvbiA9IGV4cG9ydHMuQWN0aXZpdHlEaXNwb3NpdGlvbiB8fCAoZXhwb3J0cy5BY3Rpdml0eURpc3Bvc2l0aW9uID0ge30pKTtcbi8vIHJlc3VsdCBvZiBhY3Rpdml0eSBzdWNoIGFzIFN1Y2Nlc3MgYW5kIEZhaWx1cmVcbnZhciBBY3Rpdml0eVJlc3VsdDtcbihmdW5jdGlvbiAoQWN0aXZpdHlSZXN1bHQpIHtcbiAgICAvLyBhY3Rpdml0eSBoYXMgbm8gcmVzdWx0XG4gICAgQWN0aXZpdHlSZXN1bHRbXCJOb1Jlc3VsdFwiXSA9IFwibm8tcmVzdWx0XCI7XG4gICAgLy8gYWN0aXZpdHkgZW5kZWQgd2l0aCBzdWNjZXNzXG4gICAgQWN0aXZpdHlSZXN1bHRbXCJTdWNjZWVkZWRcIl0gPSBcInN1Y2NlZWRlZFwiO1xuICAgIC8vIGFjdGl2aXR5IGVuZGVkIHdpdGggZmFpbHVyZVxuICAgIEFjdGl2aXR5UmVzdWx0W1wiRmFpbGVkXCJdID0gXCJmYWlsdXJlXCI7XG4gICAgLy8gYWN0aXZpdHkgZW5kZWQgd2l0aCB0aHJvd24gZXhjZXB0aW9uXG4gICAgQWN0aXZpdHlSZXN1bHRbXCJUaHJld0V4Y2VwdGlvblwiXSA9IFwidGhyZXctZXhjZXB0aW9uXCI7XG4gICAgLy8gYWN0aXZpdHkgZW5kZWQgZHVlIHRvIGEgdGltZW91dFxuICAgIEFjdGl2aXR5UmVzdWx0W1wiVGltZWRPdXRcIl0gPSBcInRpbWVkLW91dFwiO1xuICAgIC8vIGFjdGl2aXR5IHdhcyBjYW5jZWxlZFxuICAgIEFjdGl2aXR5UmVzdWx0W1wiQ2FuY2VsZWRcIl0gPSBcImNhbmNlbGVkXCI7XG4gICAgLy8gYWN0aXZpdHkgaGFzIHVua25vd24gcmVzdWx0XG4gICAgQWN0aXZpdHlSZXN1bHRbXCJVbmtub3duUmVzdWx0XCJdID0gXCJ1bmtub3duLXJlc3VsdFwiO1xufSkoQWN0aXZpdHlSZXN1bHQgPSBleHBvcnRzLkFjdGl2aXR5UmVzdWx0IHx8IChleHBvcnRzLkFjdGl2aXR5UmVzdWx0ID0ge30pKTtcbi8vIHR5cGUgb2YgYW5hbHl0aWNzIG9iamVjdFxudmFyIEFuYWx5dGljc09iamVjdFR5cGU7XG4oZnVuY3Rpb24gKEFuYWx5dGljc09iamVjdFR5cGUpIHtcbiAgICAvLyBcbiAgICBBbmFseXRpY3NPYmplY3RUeXBlW1wiQ29uc3RhbnRSZWZlcmVuY2VMaW5lXCJdID0gXCJjb25zdGFudC1yZWZlcmVuY2UtbGluZVwiO1xuICAgIC8vIFxuICAgIEFuYWx5dGljc09iamVjdFR5cGVbXCJBdmVyYWdlUmVmZXJlbmNlTGluZVwiXSA9IFwiYXZlcmFnZS1yZWZlcmVuY2UtbGluZVwiO1xuICAgIC8vIFxuICAgIEFuYWx5dGljc09iamVjdFR5cGVbXCJDdXN0b21SZWZlcmVuY2VMaW5lXCJdID0gXCJjdXN0b20tcmVmZXJlbmNlLWxpbmVcIjtcbiAgICAvLyBcbiAgICBBbmFseXRpY3NPYmplY3RUeXBlW1wiQ3VzdG9tUmVmZXJlbmNlQmFuZFwiXSA9IFwiY3VzdG9tLXJlZmVyZW5jZS1iYW5kXCI7XG4gICAgLy8gXG4gICAgQW5hbHl0aWNzT2JqZWN0VHlwZVtcIkF2ZXJhZ2VBbmROaW5ldHlGaXZlXCJdID0gXCJhdmVyYWdlLWFuZC1uaW5ldHktZml2ZVwiO1xuICAgIC8vIFxuICAgIEFuYWx5dGljc09iamVjdFR5cGVbXCJNZWRpYW5BbmROaW5ldHlGaXZlXCJdID0gXCJtZWRpYW4tYW5kLW5pbmV0eS1maXZlXCI7XG4gICAgLy8gXG4gICAgQW5hbHl0aWNzT2JqZWN0VHlwZVtcIkN1c3RvbURpc3RyaWJ1dGlvbkJhbmRcIl0gPSBcImN1c3RvbS1kaXN0cmlidXRpb24tYmFuZFwiO1xuICAgIC8vIFxuICAgIEFuYWx5dGljc09iamVjdFR5cGVbXCJCb3hwbG90XCJdID0gXCJib3hwbG90XCI7XG4gICAgLy8gXG4gICAgQW5hbHl0aWNzT2JqZWN0VHlwZVtcIkN1c3RvbUJveHBsb3RcIl0gPSBcImN1c3RvbS1ib3hwbG90XCI7XG4gICAgLy8gXG4gICAgQW5hbHl0aWNzT2JqZWN0VHlwZVtcIlRvdGFsc1wiXSA9IFwidG90YWxzXCI7XG4gICAgLy8gXG4gICAgQW5hbHl0aWNzT2JqZWN0VHlwZVtcIlRyZW5kTGluZU9iamVjdFwiXSA9IFwidHJlbmQtbGluZS1vYmplY3RcIjtcbiAgICAvLyBcbiAgICBBbmFseXRpY3NPYmplY3RUeXBlW1wiRm9yZWNhc3RcIl0gPSBcImZvcmVjYXN0XCI7XG4gICAgLy8gXG4gICAgQW5hbHl0aWNzT2JqZWN0VHlwZVtcIkNsdXN0ZXJcIl0gPSBcImNsdXN0ZXJcIjtcbiAgICAvLyBcbiAgICBBbmFseXRpY3NPYmplY3RUeXBlW1wiT3V0bGllclwiXSA9IFwib3V0bGllclwiO1xuICAgIC8vIFxuICAgIEFuYWx5dGljc09iamVjdFR5cGVbXCJNZWRpYW5BbmRRdWFydGlsZXNcIl0gPSBcIm1lZGlhbi1hbmQtcXVhcnRpbGVzXCI7XG4gICAgLy8gXG4gICAgQW5hbHl0aWNzT2JqZWN0VHlwZVtcIlVua25vd25cIl0gPSBcInVua25vd25cIjtcbn0pKEFuYWx5dGljc09iamVjdFR5cGUgPSBleHBvcnRzLkFuYWx5dGljc09iamVjdFR5cGUgfHwgKGV4cG9ydHMuQW5hbHl0aWNzT2JqZWN0VHlwZSA9IHt9KSk7XG4vLyB0YXJnZXQgd2hlcmUgYW4gYW5hbHl0aWNzIG9iamVjdCBtYXkgYmUgZHJvcHBlZFxudmFyIEFuYWx5dGljc09iamVjdERyb3BUYXJnZXQ7XG4oZnVuY3Rpb24gKEFuYWx5dGljc09iamVjdERyb3BUYXJnZXQpIHtcbiAgICAvLyBcbiAgICBBbmFseXRpY3NPYmplY3REcm9wVGFyZ2V0W1wiVGFyZ2V0Q2VsbFwiXSA9IFwidGFyZ2V0LWNlbGxcIjtcbiAgICAvLyBcbiAgICBBbmFseXRpY3NPYmplY3REcm9wVGFyZ2V0W1wiVGFyZ2V0UGFuZVwiXSA9IFwidGFyZ2V0LXBhbmVcIjtcbiAgICAvLyBcbiAgICBBbmFseXRpY3NPYmplY3REcm9wVGFyZ2V0W1wiVGFyZ2V0VGFibGVcIl0gPSBcInRhcmdldC10YWJsZVwiO1xuICAgIC8vIFxuICAgIEFuYWx5dGljc09iamVjdERyb3BUYXJnZXRbXCJUYXJnZXRMaW5lYXJcIl0gPSBcInRhcmdldC1saW5lYXJcIjtcbiAgICAvLyBcbiAgICBBbmFseXRpY3NPYmplY3REcm9wVGFyZ2V0W1wiVGFyZ2V0TG9nXCJdID0gXCJ0YXJnZXQtbG9nXCI7XG4gICAgLy8gXG4gICAgQW5hbHl0aWNzT2JqZWN0RHJvcFRhcmdldFtcIlRhcmdldEV4cG9uZW50aWFsXCJdID0gXCJ0YXJnZXQtZXhwb25lbnRpYWxcIjtcbiAgICAvLyBcbiAgICBBbmFseXRpY3NPYmplY3REcm9wVGFyZ2V0W1wiVGFyZ2V0UG9seW5vbWlhbFwiXSA9IFwidGFyZ2V0LXBvbHlub21pYWxcIjtcbiAgICAvLyBcbiAgICBBbmFseXRpY3NPYmplY3REcm9wVGFyZ2V0W1wiVGFyZ2V0UG93ZXJcIl0gPSBcInRhcmdldC1wb3dlclwiO1xuICAgIC8vIFxuICAgIEFuYWx5dGljc09iamVjdERyb3BUYXJnZXRbXCJUYXJnZXRGb3JlY2FzdFwiXSA9IFwidGFyZ2V0LWZvcmVjYXN0XCI7XG4gICAgLy8gXG4gICAgQW5hbHl0aWNzT2JqZWN0RHJvcFRhcmdldFtcIlRhcmdldENsdXN0ZXJcIl0gPSBcInRhcmdldC1jbHVzdGVyXCI7XG4gICAgLy8gXG4gICAgQW5hbHl0aWNzT2JqZWN0RHJvcFRhcmdldFtcIlRhcmdldE91dGxpZXJcIl0gPSBcInRhcmdldC1vdXRsaWVyXCI7XG4gICAgLy8gXG4gICAgQW5hbHl0aWNzT2JqZWN0RHJvcFRhcmdldFtcIlRhcmdldFN1YnRvdGFsc1wiXSA9IFwidGFyZ2V0LXN1YnRvdGFsc1wiO1xuICAgIC8vIFxuICAgIEFuYWx5dGljc09iamVjdERyb3BUYXJnZXRbXCJUYXJnZXRDb2x1bW5Ub3RhbHNcIl0gPSBcInRhcmdldC1jb2x1bW4tdG90YWxzXCI7XG4gICAgLy8gXG4gICAgQW5hbHl0aWNzT2JqZWN0RHJvcFRhcmdldFtcIlRhcmdldFJvd1RvdGFsc1wiXSA9IFwidGFyZ2V0LXJvdy10b3RhbHNcIjtcbn0pKEFuYWx5dGljc09iamVjdERyb3BUYXJnZXQgPSBleHBvcnRzLkFuYWx5dGljc09iamVjdERyb3BUYXJnZXQgfHwgKGV4cG9ydHMuQW5hbHl0aWNzT2JqZWN0RHJvcFRhcmdldCA9IHt9KSk7XG4vLyBcbnZhciBDYWxjQXBwbHlSZXN1bHQ7XG4oZnVuY3Rpb24gKENhbGNBcHBseVJlc3VsdCkge1xuICAgIC8vIGNhcHRpb24gZm9yIG5ldyBjYWxjdWxhdGlvbiBpcyBpbnZhbGlkXG4gICAgQ2FsY0FwcGx5UmVzdWx0W1wiSU5WQUxJRF9DQVBUSU9OXCJdID0gXCJpbnZhbGlkLWNhcHRpb24tZm9yLW5ldy1jYWxjXCI7XG4gICAgLy8gZm9ybXVsYSBpcyBpbnZhbGlkXG4gICAgQ2FsY0FwcGx5UmVzdWx0W1wiSU5WQUxJRF9GT1JNVUxBXCJdID0gXCJpbnZhbGlkLWZvcm11bGFcIjtcbiAgICAvLyBzdWNjZXNzZnVsbHkgYXBwbGllZFxuICAgIENhbGNBcHBseVJlc3VsdFtcIlNVQ0NFRURcIl0gPSBcInN1Y2NlZWRcIjtcbn0pKENhbGNBcHBseVJlc3VsdCA9IGV4cG9ydHMuQ2FsY0FwcGx5UmVzdWx0IHx8IChleHBvcnRzLkNhbGNBcHBseVJlc3VsdCA9IHt9KSk7XG4vLyBcbnZhciBVSUF1dG9tYXRpb25Db21tYW5kU3RhdHVzO1xuKGZ1bmN0aW9uIChVSUF1dG9tYXRpb25Db21tYW5kU3RhdHVzKSB7XG4gICAgLy8gXG4gICAgVUlBdXRvbWF0aW9uQ29tbWFuZFN0YXR1c1tcIlVJQXV0b21hdGlvbkNvbW1hbmRTdGF0dXNfU3VjY2Vzc1wiXSA9IFwic3VjY2Vzc1wiO1xuICAgIC8vIFxuICAgIFVJQXV0b21hdGlvbkNvbW1hbmRTdGF0dXNbXCJVSUF1dG9tYXRpb25Db21tYW5kU3RhdHVzX1Vuc3VwcG9ydGVkQ29udHJvbFR5cGVFcnJvclwiXSA9IFwidW5zdXBwb3J0ZWQtY29udHJvbC10eXBlLWVycm9yXCI7XG4gICAgLy8gXG4gICAgVUlBdXRvbWF0aW9uQ29tbWFuZFN0YXR1c1tcIlVJQXV0b21hdGlvbkNvbW1hbmRTdGF0dXNfVW5zdXBwb3J0ZWRBY3Rpb25FcnJvclwiXSA9IFwidW5zdXBwb3J0ZWQtYWN0aW9uLWVycm9yXCI7XG4gICAgLy8gXG4gICAgVUlBdXRvbWF0aW9uQ29tbWFuZFN0YXR1c1tcIlVJQXV0b21hdGlvbkNvbW1hbmRTdGF0dXNfQ29tcG9uZW50Tm90Rm91bmRFcnJvclwiXSA9IFwiY29tcG9uZW50LW5vdC1mb3VuZC1lcnJvclwiO1xuICAgIC8vIFxuICAgIFVJQXV0b21hdGlvbkNvbW1hbmRTdGF0dXNbXCJVSUF1dG9tYXRpb25Db21tYW5kU3RhdHVzX1Vua25vd25FcnJvclwiXSA9IFwidW5rbm93bi1lcnJvclwiO1xuICAgIC8vIFxuICAgIFVJQXV0b21hdGlvbkNvbW1hbmRTdGF0dXNbXCJVSUF1dG9tYXRpb25Db21tYW5kU3RhdHVzX1NhdmVFcnJvclwiXSA9IFwic2F2ZS1lcnJvclwiO1xuICAgIC8vIFxuICAgIFVJQXV0b21hdGlvbkNvbW1hbmRTdGF0dXNbXCJVSUF1dG9tYXRpb25Db21tYW5kU3RhdHVzX0JhZElucHV0RXJyb3JcIl0gPSBcImJhZC1pbnB1dC1lcnJvclwiO1xufSkoVUlBdXRvbWF0aW9uQ29tbWFuZFN0YXR1cyA9IGV4cG9ydHMuVUlBdXRvbWF0aW9uQ29tbWFuZFN0YXR1cyB8fCAoZXhwb3J0cy5VSUF1dG9tYXRpb25Db21tYW5kU3RhdHVzID0ge30pKTtcbi8vIFxudmFyIERyb3BXaGVuO1xuKGZ1bmN0aW9uIChEcm9wV2hlbikge1xuICAgIC8vIFxuICAgIERyb3BXaGVuW1wiRHJvcFdoZW5OZXZlclwiXSA9IFwibmV2ZXJcIjtcbiAgICAvLyBcbiAgICBEcm9wV2hlbltcIkRyb3BXaGVuQWx3YXlzXCJdID0gXCJhbHdheXNcIjtcbiAgICAvLyBcbiAgICBEcm9wV2hlbltcIkRyb3BXaGVuU2VsZWN0ZWRcIl0gPSBcIndoZW4tc2VsZWN0ZWRcIjtcbn0pKERyb3BXaGVuID0gZXhwb3J0cy5Ecm9wV2hlbiB8fCAoZXhwb3J0cy5Ecm9wV2hlbiA9IHt9KSk7XG4vLyBcbnZhciBWYWx1ZURvbWFpblR5cGU7XG4oZnVuY3Rpb24gKFZhbHVlRG9tYWluVHlwZSkge1xuICAgIC8vIGludmFsaWQgZG9tYWluXG4gICAgVmFsdWVEb21haW5UeXBlW1wiRE9NQUlOX0lOVkFMSURcIl0gPSBcImRvbWFpbi1pbnZhbGlkXCI7XG4gICAgLy8gdXNlciBjYW4gdHlwZSBpbiBhbnkgdmFsdWUgdGhleSBwbGVhc2VcIiAxXG4gICAgVmFsdWVEb21haW5UeXBlW1wiRE9NQUlOX0ZSRUVfRU5UUllcIl0gPSBcImRvbWFpbi1mcmVlLWVudHJ5XCI7XG4gICAgLy8gdXNlciBtdXN0IHNlbGVjdCBhIHZhbHVlIGZyb20gdGhlIGxpc3RcbiAgICBWYWx1ZURvbWFpblR5cGVbXCJET01BSU5fTElTVFwiXSA9IFwiZG9tYWluLWxpc3RcIjtcbiAgICAvLyB1c2VyIGNhbiBmcmVlbHkgZW50ZXIgdmFsdWVzIGFzIGxvbmcgYXMgdGhleSBhcmUgYWJvdmUgbWluIHZhbHVlXG4gICAgVmFsdWVEb21haW5UeXBlW1wiRE9NQUlOX01JTlwiXSA9IFwiZG9tYWluLW1pblwiO1xuICAgIC8vIHVzZXIgY2FuIGZyZWVseSBlbnRlciB2YWx1ZXMgYXMgbG9uZyBhcyB0aGV5IGFyZSBiZWxvdyBtYXggdmFsdWVcbiAgICBWYWx1ZURvbWFpblR5cGVbXCJET01BSU5fTUFYXCJdID0gXCJkb21haW4tbWF4XCI7XG59KShWYWx1ZURvbWFpblR5cGUgPSBleHBvcnRzLlZhbHVlRG9tYWluVHlwZSB8fCAoZXhwb3J0cy5WYWx1ZURvbWFpblR5cGUgPSB7fSkpO1xuLy8gXG52YXIgT3BlcmF0aW9uVHlwZTtcbihmdW5jdGlvbiAoT3BlcmF0aW9uVHlwZSkge1xuICAgIC8vIFxuICAgIE9wZXJhdGlvblR5cGVbXCJFcXVhbHNcIl0gPSBcImVxdWFsc1wiO1xuICAgIC8vIFxuICAgIE9wZXJhdGlvblR5cGVbXCJOb3RFcXVhbHNcIl0gPSBcIm5vdC1lcXVhbHNcIjtcbiAgICAvLyBcbiAgICBPcGVyYXRpb25UeXBlW1wiTGVzc1RoYW5cIl0gPSBcImxlc3MtdGhhblwiO1xuICAgIC8vIFxuICAgIE9wZXJhdGlvblR5cGVbXCJMZXNzVGhhbkVxdWFsXCJdID0gXCJsZXNzLXRoYW4tZXF1YWxcIjtcbiAgICAvLyBcbiAgICBPcGVyYXRpb25UeXBlW1wiR3JlYXRlclRoYW5cIl0gPSBcImdyZWF0ZXItdGhhblwiO1xuICAgIC8vIFxuICAgIE9wZXJhdGlvblR5cGVbXCJHcmVhdGVyVGhhbkVxdWFsXCJdID0gXCJncmVhdGVyLXRoYW4tZXF1YWxcIjtcbiAgICAvLyBcbiAgICBPcGVyYXRpb25UeXBlW1wiUmFuZ2VJbmNsdXNpdmVcIl0gPSBcInJhbmdlLWluY2x1c2l2ZVwiO1xufSkoT3BlcmF0aW9uVHlwZSA9IGV4cG9ydHMuT3BlcmF0aW9uVHlwZSB8fCAoZXhwb3J0cy5PcGVyYXRpb25UeXBlID0ge30pKTtcbi8vIFxudmFyIERyb3BGaWVsZFJlc3VsdDtcbihmdW5jdGlvbiAoRHJvcEZpZWxkUmVzdWx0KSB7XG4gICAgLy8gXG4gICAgRHJvcEZpZWxkUmVzdWx0W1wiRHJvcEZpZWxkTm9cIl0gPSBcIm5vXCI7XG4gICAgLy8gXG4gICAgRHJvcEZpZWxkUmVzdWx0W1wiRHJvcEZpZWxkWWVzXCJdID0gXCJ5ZXNcIjtcbiAgICAvLyBcbiAgICBEcm9wRmllbGRSZXN1bHRbXCJEcm9wRmllbGRMb2NrXCJdID0gXCJsb2NrXCI7XG4gICAgLy8gXG4gICAgRHJvcEZpZWxkUmVzdWx0W1wiRHJvcEZpZWxkRmlsdGVyXCJdID0gXCJmaWx0ZXJcIjtcbiAgICAvLyBcbiAgICBEcm9wRmllbGRSZXN1bHRbXCJEcm9wRmllbGREaXNhZ2dyZWdhdGVcIl0gPSBcImRpc2FnZ3JlZ2F0ZVwiO1xufSkoRHJvcEZpZWxkUmVzdWx0ID0gZXhwb3J0cy5Ecm9wRmllbGRSZXN1bHQgfHwgKGV4cG9ydHMuRHJvcEZpZWxkUmVzdWx0ID0ge30pKTtcbi8vIHJlc29sdXRpb24gdHlwZSBmb3IgYSBuYW1lIGNvbmZsaWN0XG52YXIgTmFtZUNvbmZsaWN0UmVzb2x1dGlvbjtcbihmdW5jdGlvbiAoTmFtZUNvbmZsaWN0UmVzb2x1dGlvbikge1xuICAgIC8vIFxuICAgIE5hbWVDb25mbGljdFJlc29sdXRpb25bXCJOUkNfVXNlT2xkXCJdID0gXCJ1c2Utb2xkXCI7XG4gICAgLy8gXG4gICAgTmFtZUNvbmZsaWN0UmVzb2x1dGlvbltcIk5SQ19Vc2VOZXdcIl0gPSBcInVzZS1uZXdcIjtcbiAgICAvLyBcbiAgICBOYW1lQ29uZmxpY3RSZXNvbHV0aW9uW1wiTlJDX1JlbmFtZU5ld1wiXSA9IFwicmVuYW1lLW5ld1wiO1xufSkoTmFtZUNvbmZsaWN0UmVzb2x1dGlvbiA9IGV4cG9ydHMuTmFtZUNvbmZsaWN0UmVzb2x1dGlvbiB8fCAoZXhwb3J0cy5OYW1lQ29uZmxpY3RSZXNvbHV0aW9uID0ge30pKTtcbi8vIHVzZSBlaXRoZXIgYSBzdHJpbmcgc2VwYXJhdG9yIG9yIGEgc2V0IG51bWJlciBvZiBjaGFyYWN0ZXJzXG52YXIgU2VwYXJhdG9yVHlwZTtcbihmdW5jdGlvbiAoU2VwYXJhdG9yVHlwZSkge1xuICAgIC8vIFxuICAgIFNlcGFyYXRvclR5cGVbXCJTZXBhcmF0b3JUeXBlX19TdHJpbmdTZXBhcmF0b3JcIl0gPSBcInN0cmluZy1zZXBhcmF0b3JcIjtcbiAgICAvLyBcbiAgICBTZXBhcmF0b3JUeXBlW1wiU2VwYXJhdG9yVHlwZV9fQ2hhcmFjdGVyQ291bnRTZXBhcmF0b3JcIl0gPSBcImNoYXJhY3Rlci1jb3VudC1zZXBhcmF0b3JcIjtcbn0pKFNlcGFyYXRvclR5cGUgPSBleHBvcnRzLlNlcGFyYXRvclR5cGUgfHwgKGV4cG9ydHMuU2VwYXJhdG9yVHlwZSA9IHt9KSk7XG4vLyBzcGxpdCBnbG9iYWxseSBvciBvbmx5IG9uIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9yIG9ubHkgb24gdGhlIGxhc3Qgb2NjdXJyZW5jZVxudmFyIFNwbGl0TW9kZTtcbihmdW5jdGlvbiAoU3BsaXRNb2RlKSB7XG4gICAgLy8gXG4gICAgU3BsaXRNb2RlW1wiU3BsaXRNb2RlX19DU19BTExcIl0gPSBcInNwbGl0LWFsbFwiO1xuICAgIC8vIFxuICAgIFNwbGl0TW9kZVtcIlNwbGl0TW9kZV9fQ1NfRklSU1RcIl0gPSBcInNwbGl0LWZpcnN0XCI7XG4gICAgLy8gXG4gICAgU3BsaXRNb2RlW1wiU3BsaXRNb2RlX19DU19MQVNUXCJdID0gXCJzcGxpdC1sYXN0XCI7XG59KShTcGxpdE1vZGUgPSBleHBvcnRzLlNwbGl0TW9kZSB8fCAoZXhwb3J0cy5TcGxpdE1vZGUgPSB7fSkpO1xuLy8gXG52YXIgTm9kZVNlbGVjdGlvblR5cGU7XG4oZnVuY3Rpb24gKE5vZGVTZWxlY3Rpb25UeXBlKSB7XG4gICAgLy8gXG4gICAgTm9kZVNlbGVjdGlvblR5cGVbXCJOb2RlU2VsZWN0aW9uX05vbmVcIl0gPSBcIm5vbmVcIjtcbiAgICAvLyBcbiAgICBOb2RlU2VsZWN0aW9uVHlwZVtcIk5vZGVTZWxlY3Rpb25fU2luZ2xlUm93XCJdID0gXCJzaW5nbGUtcm93XCI7XG4gICAgLy8gXG4gICAgTm9kZVNlbGVjdGlvblR5cGVbXCJOb2RlU2VsZWN0aW9uX011bHRpUm93XCJdID0gXCJtdWx0aS1yb3dcIjtcbiAgICAvLyBcbiAgICBOb2RlU2VsZWN0aW9uVHlwZVtcIk5vZGVTZWxlY3Rpb25fU2luZ2xlQ29sdW1uXCJdID0gXCJzaW5nbGUtY29sdW1uXCI7XG4gICAgLy8gXG4gICAgTm9kZVNlbGVjdGlvblR5cGVbXCJOb2RlU2VsZWN0aW9uX011bHRpQ29sdW1uXCJdID0gXCJtdWx0aS1jb2x1bW5cIjtcbiAgICAvLyBcbiAgICBOb2RlU2VsZWN0aW9uVHlwZVtcIk5vZGVTZWxlY3Rpb25fTWl4ZWRcIl0gPSBcIm1peGVkXCI7XG59KShOb2RlU2VsZWN0aW9uVHlwZSA9IGV4cG9ydHMuTm9kZVNlbGVjdGlvblR5cGUgfHwgKGV4cG9ydHMuTm9kZVNlbGVjdGlvblR5cGUgPSB7fSkpO1xuLy8gaWNvbnMgZm9yIEFjdGlvbntTb3VyY2UvRGVzdH1Db21ib1xudmFyIFNvdXJjZURlc3RJY29uO1xuKGZ1bmN0aW9uIChTb3VyY2VEZXN0SWNvbikge1xuICAgIC8vIFxuICAgIFNvdXJjZURlc3RJY29uW1wiU0RJX0RhdGFTb3VyY2VcIl0gPSBcImRhdGEtc291cmNlXCI7XG4gICAgLy8gXG4gICAgU291cmNlRGVzdEljb25bXCJTRElfV29ya3NoZWV0XCJdID0gXCJ3b3Jrc2hlZXRcIjtcbiAgICAvLyBcbiAgICBTb3VyY2VEZXN0SWNvbltcIlNESV9EYXNoYm9hcmRcIl0gPSBcImRhc2hib2FyZFwiO1xuICAgIC8vIFxuICAgIFNvdXJjZURlc3RJY29uW1wiU0RJX0FsbFwiXSA9IFwiYWxsXCI7XG59KShTb3VyY2VEZXN0SWNvbiA9IGV4cG9ydHMuU291cmNlRGVzdEljb24gfHwgKGV4cG9ydHMuU291cmNlRGVzdEljb24gPSB7fSkpO1xuLy8gcG9zaXRpb24gYW5kIG9yaWVudGF0aW9uIG9mIGxlZ2VuZHMgb24gYSBzaGVldFxudmFyIExlZ2VuZExheW91dDtcbihmdW5jdGlvbiAoTGVnZW5kTGF5b3V0KSB7XG4gICAgLy8gXG4gICAgTGVnZW5kTGF5b3V0W1wiTExfUmlnaHRWZXJ0aWNhbFwiXSA9IFwicmlnaHQtdmVydGljYWxcIjtcbiAgICAvLyBcbiAgICBMZWdlbmRMYXlvdXRbXCJMTF9SaWdodEhvcml6b250YWxcIl0gPSBcInJpZ2h0LWhvcml6b250YWxcIjtcbiAgICAvLyBcbiAgICBMZWdlbmRMYXlvdXRbXCJMTF9Cb3R0b21WZXJ0aWNhbFwiXSA9IFwiYm90dG9tLXZlcnRpY2FsXCI7XG4gICAgLy8gXG4gICAgTGVnZW5kTGF5b3V0W1wiTExfQm90dG9tSG9yaXpvbnRhbFwiXSA9IFwiYm90dG9tLWhvcml6b250YWxcIjtcbn0pKExlZ2VuZExheW91dCA9IGV4cG9ydHMuTGVnZW5kTGF5b3V0IHx8IChleHBvcnRzLkxlZ2VuZExheW91dCA9IHt9KSk7XG4vLyBcbnZhciBHZXRKc29uUmVzcG9uc2VFbnVtO1xuKGZ1bmN0aW9uIChHZXRKc29uUmVzcG9uc2VFbnVtKSB7XG4gICAgLy8gdGhlIGpzb24gcmVwb25zZSBleGlzdHMgYW5kIGlzIHZhbGlkXG4gICAgR2V0SnNvblJlc3BvbnNlRW51bVtcIkpTT05fT0tcIl0gPSBcIm9rXCI7XG4gICAgLy8gdGhlIHNoZWV0IHNwZWNpZmllZCBpcyBub3QgdmFsaWRcbiAgICBHZXRKc29uUmVzcG9uc2VFbnVtW1wiSlNPTl9OT19TSEVFVFwiXSA9IFwibm8tc2hlZXRcIjtcbiAgICAvLyB0aGUgZmllbGQgaWQgaXMgaW52YWxpZCBmb3IgdGhpcyBmaWx0ZXJcbiAgICBHZXRKc29uUmVzcG9uc2VFbnVtW1wiSlNPTl9JTlZBTElEX0ZJRUxEXCJdID0gXCJpbnZhbGlkLWZpZWxkXCI7XG59KShHZXRKc29uUmVzcG9uc2VFbnVtID0gZXhwb3J0cy5HZXRKc29uUmVzcG9uc2VFbnVtIHx8IChleHBvcnRzLkdldEpzb25SZXNwb25zZUVudW0gPSB7fSkpO1xuLy8gY2xpZW50IG1ldHJpYyBkZXNjcmlwdGlvbnNcbnZhciBDbGllbnRNZXRyaWM7XG4oZnVuY3Rpb24gKENsaWVudE1ldHJpYykge1xuICAgIC8vIFVua25vd24gTWV0cmljXG4gICAgQ2xpZW50TWV0cmljW1wiQ01fVW5rbm93blwiXSA9IFwiVU5LTldOXCI7XG4gICAgLy8gQm9vdHN0cmFwIFJlcXVlc3RcbiAgICBDbGllbnRNZXRyaWNbXCJDTV9Cb290c3RyYXBSZXF1ZXN0XCJdID0gXCJCVFNUUlBcIjtcbiAgICAvLyBQcm9jZXNzIFByaW1hcnkgUGF5bG9hZFxuICAgIENsaWVudE1ldHJpY1tcIkNNX1Byb2Nlc3NQcmltYXJ5UGF5bG9hZFwiXSA9IFwiUFJPUFJJXCI7XG4gICAgLy8gUHJvY2VzcyBTZWNvbmRhcnkgUGF5bG9hZFxuICAgIENsaWVudE1ldHJpY1tcIkNNX1Byb2Nlc3NTZWNvbmRhcnlQYXlsb2FkXCJdID0gXCJQUk9TRUNcIjtcbiAgICAvLyBJbml0aWFsaXplIE1vZGVsc1xuICAgIENsaWVudE1ldHJpY1tcIkNNX0luaXRpYWxpemVNb2RlbHNcIl0gPSBcIk1ETElOSVwiO1xuICAgIC8vIEhhbmRsZSBNb2RlbCBFdmVudHNcbiAgICBDbGllbnRNZXRyaWNbXCJDTV9IYW5kbGVNb2RlbEV2ZW50c1wiXSA9IFwiTURMRVZUXCI7XG4gICAgLy8gRXhlY3V0ZSBMb2NhbCBDb21tYW5kXG4gICAgQ2xpZW50TWV0cmljW1wiQ01fRXhlY3V0ZUxvY2FsQ29tbWFuZFwiXSA9IFwiRVhFTE9DXCI7XG4gICAgLy8gRXhlY3V0ZSBSZW1vdGUgQ29tbWFuZFxuICAgIENsaWVudE1ldHJpY1tcIkNNX0V4ZWN1dGVSZW1vdGVDb21tYW5kXCJdID0gXCJFWEVSRU1cIjtcbiAgICAvLyBQcm9jZXNzIExvY2FsIENvbW1hbmQgUmVzcG9uc2VcbiAgICBDbGllbnRNZXRyaWNbXCJDTV9Qcm9jZXNzTG9jYWxSZXNwb25zZVwiXSA9IFwiUFJPTE9DXCI7XG4gICAgLy8gUHJvY2VzcyBSZW1vdGUgQ29tbWFuZCBSZXNwb25zZVxuICAgIENsaWVudE1ldHJpY1tcIkNNX1Byb2Nlc3NSZW1vdGVSZXNwb25zZVwiXSA9IFwiUFJPUkVNXCI7XG4gICAgLy8gUmVuZGVyIFBhbmV0YWJsZVxuICAgIENsaWVudE1ldHJpY1tcIkNNX1JlbmRlclBhbmV0YWJsZVwiXSA9IFwiUk5EUlBUXCI7XG4gICAgLy8gUmVuZGVyIFJlZ2lvblxuICAgIENsaWVudE1ldHJpY1tcIkNNX1JlbmRlclJlZ2lvblwiXSA9IFwiUk5EUlJHXCI7XG4gICAgLy8gUnVudGltZSBtb2RlbCBwcmVzbW9kZWwgY29udmVyc2lvblxuICAgIENsaWVudE1ldHJpY1tcIkNNX1J1bnRpbWVDb252ZXJzaW9uXCJdID0gXCJSVENPTlZcIjtcbiAgICAvLyBDbGllbnQgTG9hZGVkXG4gICAgQ2xpZW50TWV0cmljW1wiQ01fQ2xpZW50TG9hZGVkXCJdID0gXCJDTE5UTERcIjtcbiAgICAvLyBBcHBsaWNhdGlvbiBTdGFydHVwXG4gICAgQ2xpZW50TWV0cmljW1wiQ01fQXBwbGljYXRpb25TdGFydHVwXCJdID0gXCJBUFBTVFJcIjtcbiAgICAvLyBBcHBsaWNhdGlvbiBJbnRlcmFjdGl2ZVxuICAgIENsaWVudE1ldHJpY1tcIkNNX0FwcGxpY2F0aW9uSW50ZXJhY3RpdmVcIl0gPSBcIkFQUElOVFwiO1xuICAgIC8vIEFsbCBab25lcyBMb2FkZWRcbiAgICBDbGllbnRNZXRyaWNbXCJDTV9BbGxab25lc0xvYWRlZFwiXSA9IFwiQUxMWk5TXCI7XG4gICAgLy8gVG9vbGJhciBMYXlvdXRcbiAgICBDbGllbnRNZXRyaWNbXCJDTV9Ub29sYmFyTGF5b3V0XCJdID0gXCJUQlJMQVlcIjtcbiAgICAvLyBUb29sYmFyIEhhbmRsZU5ld1Rvb2xiYXJcbiAgICBDbGllbnRNZXRyaWNbXCJDTV9Ub29sYmFySGFuZGxlTmV3VG9vbGJhclwiXSA9IFwiVEJSSE5UXCI7XG4gICAgLy8gVG9vbGJhciBBZGRUb29sYmFyXG4gICAgQ2xpZW50TWV0cmljW1wiQ01fVG9vbGJhckFkZFRvb2xiYXJcIl0gPSBcIlRCUkFERFwiO1xuICAgIC8vIFRvb2xiYXIgSGFuZGxlUmVzaXplXG4gICAgQ2xpZW50TWV0cmljW1wiQ01fVG9vbGJhckhhbmRsZVJlc2l6ZVwiXSA9IFwiVEJSSFJFXCI7XG4gICAgLy8gSmF2YVNjcmlwdCBNb2R1bGUgbG9hZGVkIGFzeW5jaHJvbm91c2x5XG4gICAgQ2xpZW50TWV0cmljW1wiQ01fTW9kdWxlTG9hZGVkXCJdID0gXCJNRExPQURcIjtcbn0pKENsaWVudE1ldHJpYyA9IGV4cG9ydHMuQ2xpZW50TWV0cmljIHx8IChleHBvcnRzLkNsaWVudE1ldHJpYyA9IHt9KSk7XG4vLyByZXN1bHQgY29kZSBmb3IgaW1hZ2VzIGVkaXQgb3BlcmF0aW9uXG52YXIgSW1hZ2VzRWRpdFJlc3VsdENvZGU7XG4oZnVuY3Rpb24gKEltYWdlc0VkaXRSZXN1bHRDb2RlKSB7XG4gICAgLy8gXG4gICAgSW1hZ2VzRWRpdFJlc3VsdENvZGVbXCJJRVJfU3VjY2Vzc1wiXSA9IFwic3VjY2Vzc1wiO1xuICAgIC8vIFxuICAgIEltYWdlc0VkaXRSZXN1bHRDb2RlW1wiSUVSX0VtcHR5Q2FwdGlvblwiXSA9IFwiZW1wdHktY2FwdGlvblwiO1xuICAgIC8vIFxuICAgIEltYWdlc0VkaXRSZXN1bHRDb2RlW1wiSUVSX0R1cGxpY2F0ZUNhcHRpb25cIl0gPSBcImR1cGxpY2F0ZS1jYXB0aW9uXCI7XG4gICAgLy8gXG4gICAgSW1hZ2VzRWRpdFJlc3VsdENvZGVbXCJJRVJfRmFpbGVkVmFsaWRhdGlvblwiXSA9IFwiZmFpbGVkLXZhbGlkYXRpb25cIjtcbiAgICAvLyBcbiAgICBJbWFnZXNFZGl0UmVzdWx0Q29kZVtcIklFUl9JbnZhbGlkVVJMXCJdID0gXCJpbnZhbGlkLXVybFwiO1xuICAgIC8vIFxuICAgIEltYWdlc0VkaXRSZXN1bHRDb2RlW1wiSUVSX0VtcHR5WFJhbmdlXCJdID0gXCJlbXB0eS14LXJhbmdlXCI7XG4gICAgLy8gXG4gICAgSW1hZ2VzRWRpdFJlc3VsdENvZGVbXCJJRVJfRW1wdHlZUmFuZ2VcIl0gPSBcImVtcHR5LXktcmFuZ2VcIjtcbiAgICAvLyBcbiAgICBJbWFnZXNFZGl0UmVzdWx0Q29kZVtcIklFUl9Ob0ltYWdlUHJldmlld1wiXSA9IFwibm8taW1hZ2UtcHJldmlld1wiO1xuICAgIC8vIFxuICAgIEltYWdlc0VkaXRSZXN1bHRDb2RlW1wiSUVSX1JlbmRlckV4Y2VwdGlvblwiXSA9IFwicmVuZGVyLWV4Y2VwdGlvblwiO1xuICAgIC8vIFxuICAgIEltYWdlc0VkaXRSZXN1bHRDb2RlW1wiSUVSX1RhYmxlYXVFeGNlcHRpb25cIl0gPSBcInRhYmxlYXUtZXhjZXB0aW9uXCI7XG59KShJbWFnZXNFZGl0UmVzdWx0Q29kZSA9IGV4cG9ydHMuSW1hZ2VzRWRpdFJlc3VsdENvZGUgfHwgKGV4cG9ydHMuSW1hZ2VzRWRpdFJlc3VsdENvZGUgPSB7fSkpO1xuLy8gdGhlIHNvdXJjZSBvZiB0aGUgdW5kZXJseWluZyBkYXRhIHVzZWQgYnkgdGhlIGRhdGEgcHJvdmlkZXJcbnZhciBEYXRhUHJvdmlkZXJUeXBlO1xuKGZ1bmN0aW9uIChEYXRhUHJvdmlkZXJUeXBlKSB7XG4gICAgLy8gXG4gICAgRGF0YVByb3ZpZGVyVHlwZVtcIkRQX0RhdGFzb3VyY2VcIl0gPSBcImRhdGFzb3VyY2VcIjtcbiAgICAvLyBcbiAgICBEYXRhUHJvdmlkZXJUeXBlW1wiRFBfU2VsZWN0aW9uXCJdID0gXCJzZWxlY3Rpb25cIjtcbiAgICAvLyBcbiAgICBEYXRhUHJvdmlkZXJUeXBlW1wiRFBfRWRpdG9yXCJdID0gXCJlZGl0b3JcIjtcbiAgICAvLyBcbiAgICBEYXRhUHJvdmlkZXJUeXBlW1wiRFBfVGFibGVcIl0gPSBcInRhYmxlXCI7XG4gICAgLy8gXG4gICAgRGF0YVByb3ZpZGVyVHlwZVtcIkRQX1NRTFF1ZXJ5XCJdID0gXCJzcWwtcXVlcnlcIjtcbn0pKERhdGFQcm92aWRlclR5cGUgPSBleHBvcnRzLkRhdGFQcm92aWRlclR5cGUgfHwgKGV4cG9ydHMuRGF0YVByb3ZpZGVyVHlwZSA9IHt9KSk7XG4vLyBcbnZhciBEYXNoYm9hcmREZXZpY2VMYXlvdXQ7XG4oZnVuY3Rpb24gKERhc2hib2FyZERldmljZUxheW91dCkge1xuICAgIC8vIFxuICAgIERhc2hib2FyZERldmljZUxheW91dFtcIkRhc2hib2FyZERldmljZUxheW91dF9EZWZhdWx0XCJdID0gXCJkZWZhdWx0XCI7XG4gICAgLy8gXG4gICAgRGFzaGJvYXJkRGV2aWNlTGF5b3V0W1wiRGFzaGJvYXJkRGV2aWNlTGF5b3V0X0Rlc2t0b3BcIl0gPSBcImRlc2t0b3BcIjtcbiAgICAvLyBcbiAgICBEYXNoYm9hcmREZXZpY2VMYXlvdXRbXCJEYXNoYm9hcmREZXZpY2VMYXlvdXRfVGFibGV0XCJdID0gXCJ0YWJsZXRcIjtcbiAgICAvLyBcbiAgICBEYXNoYm9hcmREZXZpY2VMYXlvdXRbXCJEYXNoYm9hcmREZXZpY2VMYXlvdXRfUGhvbmVcIl0gPSBcInBob25lXCI7XG59KShEYXNoYm9hcmREZXZpY2VMYXlvdXQgPSBleHBvcnRzLkRhc2hib2FyZERldmljZUxheW91dCB8fCAoZXhwb3J0cy5EYXNoYm9hcmREZXZpY2VMYXlvdXQgPSB7fSkpO1xuLy8gd2hvIGlzIGNhbGxpbmcgdGhlIGRldmljZSBkZXRlY3Rpb24gbG9naWNcbnZhciBEZXZpY2VTb3VyY2U7XG4oZnVuY3Rpb24gKERldmljZVNvdXJjZSkge1xuICAgIC8vIE5vdGhpbmcgc3BlY2lhbCBhYm91dCB0aGUgY2FsbGVyIHRvIHRoZSBkZXRlY3Rpb24gbG9naWMuIFRoaXMgbWVhbnMgaXQgaXMgdGhlIHdlYiBicm93c2VyLlxuICAgIERldmljZVNvdXJjZVtcIkRldmljZVNvdXJjZV9Vbmtub3duXCJdID0gXCJ1bmtub3duXCI7XG4gICAgLy8gdGhlIHNuYXBzaG90IHNlcnZpY2UgZm9yIHRoZSBtb2JpbGUgYXBwXG4gICAgRGV2aWNlU291cmNlW1wiRGV2aWNlU291cmNlX1NuYXBzaG90U2VydmljZVwiXSA9IFwic25hcHNob3Qtc3J2XCI7XG4gICAgLy8gdGhlIDpkZXZpY2UgdXJsIHBhcmFtZXRlclxuICAgIERldmljZVNvdXJjZVtcIkRldmljZVNvdXJjZV9VcmxQYXJhbVwiXSA9IFwidXJsLXBhcmFtXCI7XG59KShEZXZpY2VTb3VyY2UgPSBleHBvcnRzLkRldmljZVNvdXJjZSB8fCAoZXhwb3J0cy5EZXZpY2VTb3VyY2UgPSB7fSkpO1xuLy8gXG52YXIgRGFzaGJvYXJkU2l6aW5nRGltZW5zaW9uO1xuKGZ1bmN0aW9uIChEYXNoYm9hcmRTaXppbmdEaW1lbnNpb24pIHtcbiAgICAvLyBcbiAgICBEYXNoYm9hcmRTaXppbmdEaW1lbnNpb25bXCJOb0RpbWVuc2lvblwiXSA9IFwibm9cIjtcbiAgICAvLyBcbiAgICBEYXNoYm9hcmRTaXppbmdEaW1lbnNpb25bXCJNaW5XaWR0aERpbWVuc2lvblwiXSA9IFwibWlud2lkdGhcIjtcbiAgICAvLyBcbiAgICBEYXNoYm9hcmRTaXppbmdEaW1lbnNpb25bXCJNaW5IZWlnaHREaW1lbnNpb25cIl0gPSBcIm1pbmhlaWdodFwiO1xuICAgIC8vIFxuICAgIERhc2hib2FyZFNpemluZ0RpbWVuc2lvbltcIk1heFdpZHRoRGltZW5zaW9uXCJdID0gXCJtYXh3aWR0aFwiO1xuICAgIC8vIFxuICAgIERhc2hib2FyZFNpemluZ0RpbWVuc2lvbltcIk1heEhlaWdodERpbWVuc2lvblwiXSA9IFwibWF4aGVpZ2h0XCI7XG4gICAgLy8gXG4gICAgRGFzaGJvYXJkU2l6aW5nRGltZW5zaW9uW1wiRml4ZWRXaWR0aERpbWVuc2lvblwiXSA9IFwiZml4ZWR3aWR0aFwiO1xuICAgIC8vIFxuICAgIERhc2hib2FyZFNpemluZ0RpbWVuc2lvbltcIkZpeGVkSGVpZ2h0RGltZW5zaW9uXCJdID0gXCJmaXhlZGhlaWdodFwiO1xuICAgIC8vIFxuICAgIERhc2hib2FyZFNpemluZ0RpbWVuc2lvbltcIlNjcm9sbGFibGVIZWlnaHREaW1lbnNpb25cIl0gPSBcInNjcm9sbGFibGVoZWlnaHRcIjtcbiAgICAvLyBcbiAgICBEYXNoYm9hcmRTaXppbmdEaW1lbnNpb25bXCJNaW5EaW1lbnNpb25zXCJdID0gXCJtaW5zXCI7XG4gICAgLy8gXG4gICAgRGFzaGJvYXJkU2l6aW5nRGltZW5zaW9uW1wiTWF4RGltZW5zaW9uc1wiXSA9IFwibWF4c1wiO1xufSkoRGFzaGJvYXJkU2l6aW5nRGltZW5zaW9uID0gZXhwb3J0cy5EYXNoYm9hcmRTaXppbmdEaW1lbnNpb24gfHwgKGV4cG9ydHMuRGFzaGJvYXJkU2l6aW5nRGltZW5zaW9uID0ge30pKTtcbi8vIFxudmFyIEZsaXBib2FyZE5hdlR5cGU7XG4oZnVuY3Rpb24gKEZsaXBib2FyZE5hdlR5cGUpIHtcbiAgICAvLyBcbiAgICBGbGlwYm9hcmROYXZUeXBlW1wiQ2FwdGlvblwiXSA9IFwiY2FwdGlvblwiO1xuICAgIC8vIFxuICAgIEZsaXBib2FyZE5hdlR5cGVbXCJOdW1iZXJcIl0gPSBcIm51bWJlclwiO1xuICAgIC8vIFxuICAgIEZsaXBib2FyZE5hdlR5cGVbXCJEb3RcIl0gPSBcImRvdFwiO1xuICAgIC8vIFxuICAgIEZsaXBib2FyZE5hdlR5cGVbXCJBcnJvd09ubHlcIl0gPSBcImFycm93b25seVwiO1xufSkoRmxpcGJvYXJkTmF2VHlwZSA9IGV4cG9ydHMuRmxpcGJvYXJkTmF2VHlwZSB8fCAoZXhwb3J0cy5GbGlwYm9hcmROYXZUeXBlID0ge30pKTtcbi8vIFxudmFyIERhc2hib2FyZFNpemluZ01vZGU7XG4oZnVuY3Rpb24gKERhc2hib2FyZFNpemluZ01vZGUpIHtcbiAgICAvLyBcbiAgICBEYXNoYm9hcmRTaXppbmdNb2RlW1wiVW5zcGVjaWZpZWRTaXppbmdcIl0gPSBcInVuc3BlY2lmaWVkXCI7XG4gICAgLy8gXG4gICAgRGFzaGJvYXJkU2l6aW5nTW9kZVtcIkF1dG9tYXRpY1NpemluZ1wiXSA9IFwiYXV0b21hdGljXCI7XG4gICAgLy8gXG4gICAgRGFzaGJvYXJkU2l6aW5nTW9kZVtcIkZpeGVkU2l6aW5nXCJdID0gXCJmaXhlZFwiO1xuICAgIC8vIFxuICAgIERhc2hib2FyZFNpemluZ01vZGVbXCJSYW5nZVNpemluZ1wiXSA9IFwicmFuZ2VcIjtcbiAgICAvLyBcbiAgICBEYXNoYm9hcmRTaXppbmdNb2RlW1wiVlNjcm9sbFNpemluZ1wiXSA9IFwidnNjcm9sbFwiO1xufSkoRGFzaGJvYXJkU2l6aW5nTW9kZSA9IGV4cG9ydHMuRGFzaGJvYXJkU2l6aW5nTW9kZSB8fCAoZXhwb3J0cy5EYXNoYm9hcmRTaXppbmdNb2RlID0ge30pKTtcbi8vIFxudmFyIEdyaWRPdmVybGF5TW9kZTtcbihmdW5jdGlvbiAoR3JpZE92ZXJsYXlNb2RlKSB7XG4gICAgLy8gXG4gICAgR3JpZE92ZXJsYXlNb2RlW1wiR09NX0F1dG9tYXRpY1wiXSA9IFwiZ29tLWF1dG9tYXRpY1wiO1xuICAgIC8vIFxuICAgIEdyaWRPdmVybGF5TW9kZVtcIkdPTV9PblwiXSA9IFwiZ29tLW9uXCI7XG4gICAgLy8gXG4gICAgR3JpZE92ZXJsYXlNb2RlW1wiR09NX09mZlwiXSA9IFwiZ29tLW9mZlwiO1xufSkoR3JpZE92ZXJsYXlNb2RlID0gZXhwb3J0cy5HcmlkT3ZlcmxheU1vZGUgfHwgKGV4cG9ydHMuR3JpZE92ZXJsYXlNb2RlID0ge30pKTtcbi8vIFxudmFyIEZpZWxkUGlja2VyRGlhbG9nVXNlQ2FzZTtcbihmdW5jdGlvbiAoRmllbGRQaWNrZXJEaWFsb2dVc2VDYXNlKSB7XG4gICAgLy8gXG4gICAgRmllbGRQaWNrZXJEaWFsb2dVc2VDYXNlW1wiRmllbGRQaWNrZXJEaWFsb2dVc2VDYXNlX1JlcGxhY2VGaWVsZFwiXSA9IFwicmVwbGFjZS1maWVsZC11c2UtY2FzZVwiO1xuICAgIC8vIFxuICAgIEZpZWxkUGlja2VyRGlhbG9nVXNlQ2FzZVtcIkZpZWxkUGlja2VyRGlhbG9nVXNlQ2FzZV9DcmVhdGVJZGVudGl0eVNldFwiXSA9IFwiY3JlYXRlLWlkZW50aXR5LXNldFwiO1xuICAgIC8vIFxuICAgIEZpZWxkUGlja2VyRGlhbG9nVXNlQ2FzZVtcIkZpZWxkUGlja2VyRGlhbG9nVXNlQ2FzZV9FZGl0RGF0YXNyb3VjZUFsaWFzZXNcIl0gPSBcImVkaXQtZGF0YXNvdXJjZS1hbGlhc2VzLXVzZS1jYXNlXCI7XG4gICAgLy8gXG4gICAgRmllbGRQaWNrZXJEaWFsb2dVc2VDYXNlW1wiRmllbGRQaWNrZXJEaWFsb2dVc2VDYXNlX0VkaXRGaWx0ZXJzXCJdID0gXCJlZGl0LWZpbHRlcnMtdXNlLWNhc2VcIjtcbiAgICAvLyBcbiAgICBGaWVsZFBpY2tlckRpYWxvZ1VzZUNhc2VbXCJGaWVsZFBpY2tlckRpYWxvZ1VzZUNhc2VfRXh0cmFjdEZpbHRlclwiXSA9IFwiaW5jcmVtZW50YWwtZXh0cmFjdC11c2UtY2FzZVwiO1xufSkoRmllbGRQaWNrZXJEaWFsb2dVc2VDYXNlID0gZXhwb3J0cy5GaWVsZFBpY2tlckRpYWxvZ1VzZUNhc2UgfHwgKGV4cG9ydHMuRmllbGRQaWNrZXJEaWFsb2dVc2VDYXNlID0ge30pKTtcbi8vIFxudmFyIFNpZGVUeXBlO1xuKGZ1bmN0aW9uIChTaWRlVHlwZSkge1xuICAgIC8vIFxuICAgIFNpZGVUeXBlW1wiU1RfVG9wXCJdID0gXCJ0b3BcIjtcbiAgICAvLyBcbiAgICBTaWRlVHlwZVtcIlNUX1JpZ2h0XCJdID0gXCJyaWdodFwiO1xuICAgIC8vIFxuICAgIFNpZGVUeXBlW1wiU1RfQm90dG9tXCJdID0gXCJib3R0b21cIjtcbiAgICAvLyBcbiAgICBTaWRlVHlwZVtcIlNUX0xlZnRcIl0gPSBcImxlZnRcIjtcbn0pKFNpZGVUeXBlID0gZXhwb3J0cy5TaWRlVHlwZSB8fCAoZXhwb3J0cy5TaWRlVHlwZSA9IHt9KSk7XG4vLyBcbnZhciBXb3JrZ3JvdXBQdWJsaXNoRXJyb3JUeXBlO1xuKGZ1bmN0aW9uIChXb3JrZ3JvdXBQdWJsaXNoRXJyb3JUeXBlKSB7XG4gICAgLy8gXG4gICAgV29ya2dyb3VwUHVibGlzaEVycm9yVHlwZVtcIkVBX05vbmVcIl0gPSBcImVhLW5vbmVcIjtcbiAgICAvLyBcbiAgICBXb3JrZ3JvdXBQdWJsaXNoRXJyb3JUeXBlW1wiRUFfV2FybmluZ1wiXSA9IFwiZWEtd2FybmluZ1wiO1xuICAgIC8vIFxuICAgIFdvcmtncm91cFB1Ymxpc2hFcnJvclR5cGVbXCJFQV9Qcm9tcHRcIl0gPSBcImVhLXByb21wdFwiO1xuICAgIC8vIFxuICAgIFdvcmtncm91cFB1Ymxpc2hFcnJvclR5cGVbXCJFQV9JbmZvXCJdID0gXCJlYS1pbmZvXCI7XG4gICAgLy8gXG4gICAgV29ya2dyb3VwUHVibGlzaEVycm9yVHlwZVtcIkVBX1NlcnZlclwiXSA9IFwiZWEtc2VydmVyXCI7XG59KShXb3JrZ3JvdXBQdWJsaXNoRXJyb3JUeXBlID0gZXhwb3J0cy5Xb3JrZ3JvdXBQdWJsaXNoRXJyb3JUeXBlIHx8IChleHBvcnRzLldvcmtncm91cFB1Ymxpc2hFcnJvclR5cGUgPSB7fSkpO1xuLy8gSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHVzZXIgaGFzIHNpZ25lZCBpbiBvciBpcyBzaWduZWQgaW50byBhIHNlcnZlclxudmFyIFNlcnZlckNvbm5lY3Rpb25TdGF0dXM7XG4oZnVuY3Rpb24gKFNlcnZlckNvbm5lY3Rpb25TdGF0dXMpIHtcbiAgICAvLyBUaGUgdXNlciBoYXMgbmV2ZXIgc2lnbmVkIGluXG4gICAgU2VydmVyQ29ubmVjdGlvblN0YXR1c1tcIk5ldmVyU2lnbmVkSW5cIl0gPSBcInNlcnZlci1jb25uZWN0aW9uLXN0YXR1cy1uZXZlci1zaWduZWQtaW5cIjtcbiAgICAvLyBUaGUgdXNlciBoYXMgc2lnbmVkIGluIGF0IGxlYXN0IG9uY2VcbiAgICBTZXJ2ZXJDb25uZWN0aW9uU3RhdHVzW1wiSGFzU2lnbmVkSW5cIl0gPSBcInNlcnZlci1jb25uZWN0aW9uX3N0YXR1cy1oYXMtc2lnbmVkLWluXCI7XG4gICAgLy8gQXV0byBzaWduIGluIHdpbGwgYmUgYXR0ZW1wdGVkXG4gICAgU2VydmVyQ29ubmVjdGlvblN0YXR1c1tcIldpbGxBdXRvU2lnbkluXCJdID0gXCJzZXJ2ZXItY29ubmVjdGlvbl9zdGF0dXMtd2lsbC1hdXRvLXNpZ24taW5cIjtcbiAgICAvLyBUaGUgdXNlciBpcyBzaWduZWQgaW5cbiAgICBTZXJ2ZXJDb25uZWN0aW9uU3RhdHVzW1wiU2lnbmVkSW5cIl0gPSBcInNlcnZlci1jb25uZWN0aW9uX3N0YXR1cy1zaWduZWQtaW5cIjtcbn0pKFNlcnZlckNvbm5lY3Rpb25TdGF0dXMgPSBleHBvcnRzLlNlcnZlckNvbm5lY3Rpb25TdGF0dXMgfHwgKGV4cG9ydHMuU2VydmVyQ29ubmVjdGlvblN0YXR1cyA9IHt9KSk7XG4vLyBTdGFydCBvZiBXZWVrIChTdGFydGluZyBEYXkpXG52YXIgU09XVmFsdWU7XG4oZnVuY3Rpb24gKFNPV1ZhbHVlKSB7XG4gICAgLy8gXG4gICAgU09XVmFsdWVbXCJTT1dWYWx1ZV9fU09XX1NZU1RFTURFRkFVTFRcIl0gPSBcInNvdy1zeXN0ZW0tZGVmYXVsdFwiO1xuICAgIC8vIFxuICAgIFNPV1ZhbHVlW1wiU09XVmFsdWVfX1NPV183REFZUEVSSU9EXCJdID0gXCJzb3ctNy1kYXktcGVyaW9kXCI7XG4gICAgLy8gXG4gICAgU09XVmFsdWVbXCJTT1dWYWx1ZV9fU09XX1NVTkRBWVwiXSA9IFwic293LXN1bmRheVwiO1xuICAgIC8vIFxuICAgIFNPV1ZhbHVlW1wiU09XVmFsdWVfX1NPV19NT05EQVlcIl0gPSBcInNvdy1tb25kYXlcIjtcbiAgICAvLyBcbiAgICBTT1dWYWx1ZVtcIlNPV1ZhbHVlX19TT1dfVFVFU0RBWVwiXSA9IFwic293LXR1ZXNkYXlcIjtcbiAgICAvLyBcbiAgICBTT1dWYWx1ZVtcIlNPV1ZhbHVlX19TT1dfV0VETkVTREFZXCJdID0gXCJzb3ctd2VkbmVzZGF5XCI7XG4gICAgLy8gXG4gICAgU09XVmFsdWVbXCJTT1dWYWx1ZV9fU09XX1RIVVJTREFZXCJdID0gXCJzb3ctdGh1cnNkYXlcIjtcbiAgICAvLyBcbiAgICBTT1dWYWx1ZVtcIlNPV1ZhbHVlX19TT1dfRlJJREFZXCJdID0gXCJzb3ctZnJpZGF5XCI7XG4gICAgLy8gXG4gICAgU09XVmFsdWVbXCJTT1dWYWx1ZV9fU09XX1NBVFVSREFZXCJdID0gXCJzb3ctc2F0dXJkYXlcIjtcbiAgICAvLyBcbiAgICBTT1dWYWx1ZVtcIlNPV1ZhbHVlX19TT1dfSVNPODYwMVdFRUtcIl0gPSBcInNvdy1pc284NjAxLXdlZWtcIjtcbn0pKFNPV1ZhbHVlID0gZXhwb3J0cy5TT1dWYWx1ZSB8fCAoZXhwb3J0cy5TT1dWYWx1ZSA9IHt9KSk7XG4vLyBUeXBlIG9mIEZpbmQgdG8gcGVyZm9ybVxudmFyIEZpbmRUeXBlO1xuKGZ1bmN0aW9uIChGaW5kVHlwZSkge1xuICAgIC8vIFN0YXJ0cyBXaXRoXG4gICAgRmluZFR5cGVbXCJGaW5kVHlwZV9TdGFydHNcIl0gPSBcImZpbmR0eXBlLXN0YXJ0c1wiO1xuICAgIC8vIEVuZHMgV2l0aFxuICAgIEZpbmRUeXBlW1wiRmluZFR5cGVfRW5kc1wiXSA9IFwiZmluZHR5cGUtZW5kc1wiO1xuICAgIC8vIENvbnRhaW5zXG4gICAgRmluZFR5cGVbXCJGaW5kVHlwZV9Db250YWluc1wiXSA9IFwiZmluZHR5cGUtY29udGFpbnNcIjtcbiAgICAvLyBFeGFjdFxuICAgIEZpbmRUeXBlW1wiRmluZFR5cGVfRXhhY3RcIl0gPSBcImZpbmR0eXBlLWV4YWN0XCI7XG59KShGaW5kVHlwZSA9IGV4cG9ydHMuRmluZFR5cGUgfHwgKGV4cG9ydHMuRmluZFR5cGUgPSB7fSkpO1xuLy8gUGVyc3BlY3RpdmVUeXBlIG9mIGEgZ2l2ZW4gUGVyc3BlY3RpdmVQcmVzTW9kZWxcbnZhciBQZXJzcGVjdGl2ZUVudW1QZXJzcGVjdGl2ZVR5cGU7XG4oZnVuY3Rpb24gKFBlcnNwZWN0aXZlRW51bVBlcnNwZWN0aXZlVHlwZSkge1xuICAgIC8vIFJlYWxpdHlcbiAgICBQZXJzcGVjdGl2ZUVudW1QZXJzcGVjdGl2ZVR5cGVbXCJQZXJzcGVjdGl2ZVR5cGVfUmVhbGl0eVwiXSA9IFwicGVyc3BlY3RpdmV0eXBlLXJlYWxpdHlcIjtcbiAgICAvLyBGaXJzdFxuICAgIFBlcnNwZWN0aXZlRW51bVBlcnNwZWN0aXZlVHlwZVtcIlBlcnNwZWN0aXZlVHlwZV9GaXJzdFwiXSA9IFwicGVyc3BlY3RpdmV0eXBlLWZpcnN0XCI7XG4gICAgLy8gTGFzdFxuICAgIFBlcnNwZWN0aXZlRW51bVBlcnNwZWN0aXZlVHlwZVtcIlBlcnNwZWN0aXZlVHlwZV9MYXN0XCJdID0gXCJwZXJzcGVjdGl2ZXR5cGUtbGFzdFwiO1xuICAgIC8vIEN1c3RvbVxuICAgIFBlcnNwZWN0aXZlRW51bVBlcnNwZWN0aXZlVHlwZVtcIlBlcnNwZWN0aXZlVHlwZV9DdXN0b21cIl0gPSBcInBlcnNwZWN0aXZldHlwZS1jdXN0b21cIjtcbn0pKFBlcnNwZWN0aXZlRW51bVBlcnNwZWN0aXZlVHlwZSA9IGV4cG9ydHMuUGVyc3BlY3RpdmVFbnVtUGVyc3BlY3RpdmVUeXBlIHx8IChleHBvcnRzLlBlcnNwZWN0aXZlRW51bVBlcnNwZWN0aXZlVHlwZSA9IHt9KSk7XG4vLyBMaXN0IG9mIG9wdGlvbnMgZm9yIHdoYXQgdG8gd3JpdGUgb3V0IGZyb20gZ2V0LXJ1bnRpbWUtaW5mb1xudmFyIFJ1bnRpbWVJbmZvUnVudGltZU91dHB1dDtcbihmdW5jdGlvbiAoUnVudGltZUluZm9SdW50aW1lT3V0cHV0KSB7XG4gICAgLy8gb3V0cHV0IHRoZSBWVEwgZnJvbSB0aGUgcHJvZHVjZXJzXG4gICAgUnVudGltZUluZm9SdW50aW1lT3V0cHV0W1wiUmF3VlRMXCJdID0gXCJyYXctdnRsXCI7XG4gICAgLy8gb3V0cHV0IHRoZSBkYXRhIHN0b3JlIGZyb20gdGhlIHByb2R1Y2Vyc1xuICAgIFJ1bnRpbWVJbmZvUnVudGltZU91dHB1dFtcIlJhd1N0b3JlXCJdID0gXCJyYXctc3RvcmVcIjtcbiAgICAvLyBvdXRwdXQgdGhlIGdyYXBoIGFuZCBjb21waWxlZCBWVExcbiAgICBSdW50aW1lSW5mb1J1bnRpbWVPdXRwdXRbXCJQYXlsb2FkVlRMXCJdID0gXCJwYXlsb2FkLXZ0bFwiO1xuICAgIC8vIG91dHB1dCB0aGUgZmluYWwgZGF0YSBzdG9yZSBhZnRlciB0cmFuc2Zvcm1zIGFyZSBydW5cbiAgICBSdW50aW1lSW5mb1J1bnRpbWVPdXRwdXRbXCJGaW5hbFN0b3JlXCJdID0gXCJmaW5hbC1zdG9yZVwiO1xuICAgIC8vIG91dHB1dCB0aGUgVlRMIGFuZCBkYXRhIHN0b3JlIGZyb20gdGhlIHByb2R1Y2Vyc1xuICAgIFJ1bnRpbWVJbmZvUnVudGltZU91dHB1dFtcIklucHV0XCJdID0gXCJpbnB1dFwiO1xuICAgIC8vIG91dHB1dCB0aGUgZmluYWwgVlRMIGFuZCBkYXRhIHN0b3JlIGFmdGVyIGNvbXBpbGF0aW9uIGFuZCBydW5uaW5nXG4gICAgUnVudGltZUluZm9SdW50aW1lT3V0cHV0W1wiT3V0cHV0XCJdID0gXCJvdXRwdXRcIjtcbn0pKFJ1bnRpbWVJbmZvUnVudGltZU91dHB1dCA9IGV4cG9ydHMuUnVudGltZUluZm9SdW50aW1lT3V0cHV0IHx8IChleHBvcnRzLlJ1bnRpbWVJbmZvUnVudGltZU91dHB1dCA9IHt9KSk7XG4vLyBcbnZhciBHZW9tZXRyeVR5cGU7XG4oZnVuY3Rpb24gKEdlb21ldHJ5VHlwZSkge1xuICAgIC8vIFxuICAgIEdlb21ldHJ5VHlwZVtcIkVtcHR5XCJdID0gXCJlbXB0eVwiO1xuICAgIC8vIFxuICAgIEdlb21ldHJ5VHlwZVtcIk11bHRpUG9seWdvblwiXSA9IFwibXVsdGlQb2x5Z29uXCI7XG4gICAgLy8gXG4gICAgR2VvbWV0cnlUeXBlW1wiTXVsdGlQb2ludFwiXSA9IFwibXVsdGlQb2ludFwiO1xuICAgIC8vIFxuICAgIEdlb21ldHJ5VHlwZVtcIk11bHRpTGluZVN0cmluZ1wiXSA9IFwibXVsdGlMaW5lU3RyaW5nXCI7XG59KShHZW9tZXRyeVR5cGUgPSBleHBvcnRzLkdlb21ldHJ5VHlwZSB8fCAoZXhwb3J0cy5HZW9tZXRyeVR5cGUgPSB7fSkpO1xuLy8gXG52YXIgTWFya1NpemluZ1NldHRpbmc7XG4oZnVuY3Rpb24gKE1hcmtTaXppbmdTZXR0aW5nKSB7XG4gICAgLy8gXG4gICAgTWFya1NpemluZ1NldHRpbmdbXCJNYXJrc1NjYWxpbmdBdXRvbWF0aWNcIl0gPSBcIm1hcmtzLXNjYWxpbmctYXV0b21hdGljXCI7XG4gICAgLy8gXG4gICAgTWFya1NpemluZ1NldHRpbmdbXCJNYXJrc1NjYWxpbmdPblwiXSA9IFwibWFya3Mtc2NhbGluZy1vblwiO1xuICAgIC8vIFxuICAgIE1hcmtTaXppbmdTZXR0aW5nW1wiTWFya3NTY2FsaW5nT2ZmXCJdID0gXCJtYXJrcy1zY2FsaW5nLW9mZlwiO1xufSkoTWFya1NpemluZ1NldHRpbmcgPSBleHBvcnRzLk1hcmtTaXppbmdTZXR0aW5nIHx8IChleHBvcnRzLk1hcmtTaXppbmdTZXR0aW5nID0ge30pKTtcbi8vIEVudW1lcmF0aW9uIGZvciBjYXJkIHR5cGUgb24gd29ya3NoZWV0cy5cbnZhciBDYXJkVHlwZTtcbihmdW5jdGlvbiAoQ2FyZFR5cGUpIHtcbiAgICAvLyBDYXJkTWFuYWdlciB0cmVhdHMgemVybyBzcGVjaWFsbHksIHNvIHdlIGNhbid0IHN0YXJ0IGF0IHplcm8uXG4gICAgQ2FyZFR5cGVbXCJDb2x1bW5zXCJdID0gXCJjYXJkdHlwZS1jb2x1bW5zXCI7XG4gICAgLy8gXG4gICAgQ2FyZFR5cGVbXCJSb3dzXCJdID0gXCJjYXJkdHlwZS1yb3dzXCI7XG4gICAgLy8gXG4gICAgQ2FyZFR5cGVbXCJQYWdlc1wiXSA9IFwiY2FyZHR5cGUtcGFnZXNcIjtcbiAgICAvLyBcbiAgICBDYXJkVHlwZVtcIkN1cnJlbnRQYWdlXCJdID0gXCJjYXJkdHlwZS1jdXJyZW50UGFnZVwiO1xuICAgIC8vIFxuICAgIENhcmRUeXBlW1wiRmlsdGVyc1wiXSA9IFwiY2FyZHR5cGUtZmlsdGVyc1wiO1xuICAgIC8vIFxuICAgIENhcmRUeXBlW1wiTWFya3NcIl0gPSBcImNhcmR0eXBlLW1hcmtzXCI7XG4gICAgLy8gXG4gICAgQ2FyZFR5cGVbXCJNZWFzdXJlc1wiXSA9IFwiY2FyZHR5cGUtbWVhc3VyZXNcIjtcbiAgICAvLyBcbiAgICBDYXJkVHlwZVtcIkNvbG9yTGVnZW5kXCJdID0gXCJjYXJkdHlwZS1jb2xvckxlZ2VuZFwiO1xuICAgIC8vIFxuICAgIENhcmRUeXBlW1wiU2hhcGVMZWdlbmRcIl0gPSBcImNhcmR0eXBlLXNoYXBlTGVnZW5kXCI7XG4gICAgLy8gXG4gICAgQ2FyZFR5cGVbXCJTaXplTGVnZW5kXCJdID0gXCJjYXJkdHlwZS1zaXplTGVnZW5kXCI7XG4gICAgLy8gXG4gICAgQ2FyZFR5cGVbXCJNYXBMZWdlbmRcIl0gPSBcImNhcmR0eXBlLW1hcExlZ2VuZFwiO1xuICAgIC8vIFxuICAgIENhcmRUeXBlW1wiVGl0bGVcIl0gPSBcImNhcmR0eXBlLXRpdGxlXCI7XG4gICAgLy8gXG4gICAgQ2FyZFR5cGVbXCJDYXB0aW9uXCJdID0gXCJjYXJkdHlwZS1jYXB0aW9uXCI7XG4gICAgLy8gXG4gICAgQ2FyZFR5cGVbXCJTdW1tYXJ5XCJdID0gXCJjYXJkdHlwZS1zdW1tYXJ5XCI7XG4gICAgLy8gXG4gICAgQ2FyZFR5cGVbXCJQYXJhbWV0ZXJcIl0gPSBcImNhcmR0eXBlLXBhcmFtZXRlclwiO1xuICAgIC8vIFxuICAgIENhcmRUeXBlW1wiUXVpY2tGaWx0ZXJcIl0gPSBcImNhcmR0eXBlLXF1aWNrRmlsdGVyXCI7XG4gICAgLy8gXG4gICAgQ2FyZFR5cGVbXCJIaWdobGlnaHRlclwiXSA9IFwiY2FyZHR5cGUtaGlnaGxpZ2h0ZXJcIjtcbn0pKENhcmRUeXBlID0gZXhwb3J0cy5DYXJkVHlwZSB8fCAoZXhwb3J0cy5DYXJkVHlwZSA9IHt9KSk7XG4vLyBJbmRpY2F0ZXMgdGhlIHR5cGUgb2YgdGFibGUgZGF0YSB0byBiZSBkaXNwbGF5ZWQuXG52YXIgVGFibGVWaWV3RGF0YVR5cGU7XG4oZnVuY3Rpb24gKFRhYmxlVmlld0RhdGFUeXBlKSB7XG4gICAgLy8gVGFibGUgdmlldyB3aXRoIGVhY2ggY29sdW1uIGlzIHNwZWNpZmllZCBieSBGaWVsZE5hbWUuIERQSV9Db2x1bW5zIGlzIHJlcXVpcmVkLlxuICAgIFRhYmxlVmlld0RhdGFUeXBlW1wiVGFibGVWaWV3RmllbGREYXRhXCJdID0gXCJ0YWJsZS12aWV3LWZpZWxkLWRhdGFcIjtcbiAgICAvLyBUYWJsZSB2aWV3IHdoZXJlIHRoZSBjb2x1bW5zIGFyZSBkZWZpbmVkIGJ5IGEgZ3JvdXAuIERQSV9GaWVsZE5hbWUgaXMgcmVxdWlyZWQuXG4gICAgVGFibGVWaWV3RGF0YVR5cGVbXCJUYWJsZVZpZXdHcm91cERhdGFcIl0gPSBcInRhYmxlLXZpZXctZ3JvdXAtZGF0YVwiO1xufSkoVGFibGVWaWV3RGF0YVR5cGUgPSBleHBvcnRzLlRhYmxlVmlld0RhdGFUeXBlIHx8IChleHBvcnRzLlRhYmxlVmlld0RhdGFUeXBlID0ge30pKTtcbi8vIFxudmFyIFdhcm5pbmdUeXBlO1xuKGZ1bmN0aW9uIChXYXJuaW5nVHlwZSkge1xuICAgIC8vIFxuICAgIFdhcm5pbmdUeXBlW1wiTElOS19FUlJPUlwiXSA9IFwibGlua2Vycm9yXCI7XG4gICAgLy8gXG4gICAgV2FybmluZ1R5cGVbXCJPVkVSTEFQX1RFWFRcIl0gPSBcIldhcm5PdmVybGFwcGluZ1RleHRcIjtcbiAgICAvLyBcbiAgICBXYXJuaW5nVHlwZVtcIklOVkFMSURfV09SS1NIRUVUXCJdID0gXCJXYXJuSW52YWxpZFdvcmtzaGVldFwiO1xuICAgIC8vIFxuICAgIFdhcm5pbmdUeXBlW1wiT1BFTl9CT09LXCJdID0gXCJvcGVuYm9va1wiO1xuICAgIC8vIFxuICAgIFdhcm5pbmdUeXBlW1wiT1BFTl9EQVRBU09VUkNFXCJdID0gXCJvcGVuZGF0YXNvdXJjZVwiO1xuICAgIC8vIFxuICAgIFdhcm5pbmdUeXBlW1wiT1BFTl9TSEVFVFwiXSA9IFwib3BlbnNoZWV0XCI7XG4gICAgLy8gXG4gICAgV2FybmluZ1R5cGVbXCJMT0NBTERBVEFfQU1CSUdVSVRZXCJdID0gXCJMb2NhbERhdGFBbWJpZ3VpdHlcIjtcbiAgICAvLyBcbiAgICBXYXJuaW5nVHlwZVtcIkxPQ0FMREFUQV9NSVNNQVRDSFwiXSA9IFwiTG9jYWxEYXRhTWlzbWF0Y2hcIjtcbiAgICAvLyBcbiAgICBXYXJuaW5nVHlwZVtcIk1JU1NJTkdfTE9DQUxfVElMRVwiXSA9IFwiTWlzc2luZ0xvY2FsVGlsZXNcIjtcbiAgICAvLyBcbiAgICBXYXJuaW5nVHlwZVtcIk1BUF9USUxFX0RPV05MT0FEXCJdID0gXCJNYXBUaWxlRG93bmxvYWRFcnJvclwiO1xuICAgIC8vIFxuICAgIFdhcm5pbmdUeXBlW1wiTUFQX1RJTEVfSU5URVJNSVRURU5UXCJdID0gXCJNYXBUaWxlSW50ZXJtaXR0ZW50XCI7XG4gICAgLy8gXG4gICAgV2FybmluZ1R5cGVbXCJNQVBfVElMRV9SRUdJT05cIl0gPSBcIk1hcFRpbGVSZWdpb25cIjtcbiAgICAvLyBcbiAgICBXYXJuaW5nVHlwZVtcIk1BUF9TRVJWRVJfRk9SQklEREVOXCJdID0gXCJNYXBTZXJ2ZXJGb3JiaWRkZW5cIjtcbiAgICAvLyBcbiAgICBXYXJuaW5nVHlwZVtcIkRNX0NBTk5PVF9TQ09SRVwiXSA9IFwiRE1DYW5ub3RTY29yZVwiO1xuICAgIC8vIFxuICAgIFdhcm5pbmdUeXBlW1wiRE1fU0NPUklOR19OT1RfUkVDXCJdID0gXCJETVNjb3JpbmdOb3RSZWNvbW1lbmRlZFwiO1xuICAgIC8vIFxuICAgIFdhcm5pbmdUeXBlW1wiTE9DQUxfREFUQV9MSUJSQVJZX01JU1NJTkdcIl0gPSBcIkxvY2FsRGF0YUxpYnJhcnlNaXNzaW5nXCI7XG4gICAgLy8gXG4gICAgV2FybmluZ1R5cGVbXCJETV9NSVNTSU5HX01PREVMXCJdID0gXCJETU1pc3NpbmdNb2RlbFwiO1xuICAgIC8vIFxuICAgIFdhcm5pbmdUeXBlW1wiRElfTk9fTElOS1wiXSA9IFwiRElOb0xpbmtcIjtcbiAgICAvLyBcbiAgICBXYXJuaW5nVHlwZVtcIkxPQ0FMREFUQV9OT19HRU9NRVRSWVwiXSA9IFwiTG9jYWxEYXRhTm9HZW9tZXRyeVwiO1xuICAgIC8vIFxuICAgIFdhcm5pbmdUeXBlW1wiTE9DQUxEQVRBX05PX0dFT01FVFJZX1VQR1JBREVcIl0gPSBcIkxvY2FsRGF0YU5vR2VvbWV0cnlVcGdyYWRlXCI7XG4gICAgLy8gXG4gICAgV2FybmluZ1R5cGVbXCJESV9OT19SRUxBVElPTlNISVBTXCJdID0gXCJESU5vUmVsYXRpb25zaGlwc1wiO1xufSkoV2FybmluZ1R5cGUgPSBleHBvcnRzLldhcm5pbmdUeXBlIHx8IChleHBvcnRzLldhcm5pbmdUeXBlID0ge30pKTtcbi8vIFxudmFyIFdvcmtib29rVUlNb2RlO1xuKGZ1bmN0aW9uIChXb3JrYm9va1VJTW9kZSkge1xuICAgIC8vIFxuICAgIFdvcmtib29rVUlNb2RlW1wiRGF0YVRhYlwiXSA9IFwiZGF0YS10YWJcIjtcbiAgICAvLyBcbiAgICBXb3JrYm9va1VJTW9kZVtcIkRvY3VtZW50XCJdID0gXCJkb2N1bWVudFwiO1xuICAgIC8vIFxuICAgIFdvcmtib29rVUlNb2RlW1wiU2hlZXRTb3J0ZXJcIl0gPSBcInNoZWV0LXNvcnRlclwiO1xufSkoV29ya2Jvb2tVSU1vZGUgPSBleHBvcnRzLldvcmtib29rVUlNb2RlIHx8IChleHBvcnRzLldvcmtib29rVUlNb2RlID0ge30pKTtcbi8vIFxudmFyIFRvcExldmVsTWVudUl0ZW07XG4oZnVuY3Rpb24gKFRvcExldmVsTWVudUl0ZW0pIHtcbiAgICAvLyBcbiAgICBUb3BMZXZlbE1lbnVJdGVtW1wiRmlsZVwiXSA9IFwiZmlsZVwiO1xuICAgIC8vIFxuICAgIFRvcExldmVsTWVudUl0ZW1bXCJEYXRhXCJdID0gXCJkYXRhXCI7XG4gICAgLy8gXG4gICAgVG9wTGV2ZWxNZW51SXRlbVtcIldvcmtzaGVldFwiXSA9IFwid29ya3NoZWV0XCI7XG4gICAgLy8gXG4gICAgVG9wTGV2ZWxNZW51SXRlbVtcIkRhc2hib2FyZFwiXSA9IFwiZGFzaGJvYXJkXCI7XG4gICAgLy8gXG4gICAgVG9wTGV2ZWxNZW51SXRlbVtcIkFuYWx5c2lzXCJdID0gXCJhbmFseXNpc1wiO1xuICAgIC8vIFxuICAgIFRvcExldmVsTWVudUl0ZW1bXCJGb3JtYXRcIl0gPSBcImZvcm1hdFwiO1xuICAgIC8vIFxuICAgIFRvcExldmVsTWVudUl0ZW1bXCJNYXBcIl0gPSBcIm1hcFwiO1xuICAgIC8vIFxuICAgIFRvcExldmVsTWVudUl0ZW1bXCJIZWxwXCJdID0gXCJoZWxwXCI7XG59KShUb3BMZXZlbE1lbnVJdGVtID0gZXhwb3J0cy5Ub3BMZXZlbE1lbnVJdGVtIHx8IChleHBvcnRzLlRvcExldmVsTWVudUl0ZW0gPSB7fSkpO1xuLy8gRW51bWVyYXRpb24gZm9yIGRpZmZlcmVudCB0eXBlcyBvZiBBZGRJbnMgKFByb2plY3QgRnJlbGFyZClcbnZhciBBZGRJblR5cGU7XG4oZnVuY3Rpb24gKEFkZEluVHlwZSkge1xuICAgIC8vIFxuICAgIEFkZEluVHlwZVtcIkludmFsaWRcIl0gPSBcImludmFsaWRcIjtcbiAgICAvLyBcbiAgICBBZGRJblR5cGVbXCJEYXNoYm9hcmRcIl0gPSBcImRhc2hib2FyZFwiO1xufSkoQWRkSW5UeXBlID0gZXhwb3J0cy5BZGRJblR5cGUgfHwgKGV4cG9ydHMuQWRkSW5UeXBlID0ge30pKTtcbi8vIEVudW1lcmF0aW9uIG9mIGRpZmZlcmVudCBjb250ZXh0cyBhbiBhZGQtaW4gY2FuIHJ1biBpblxudmFyIEFkZEluQ29udGV4dDtcbihmdW5jdGlvbiAoQWRkSW5Db250ZXh0KSB7XG4gICAgLy8gXG4gICAgQWRkSW5Db250ZXh0W1wiVW5rbm93blwiXSA9IFwidW5rbm93blwiO1xuICAgIC8vIFxuICAgIEFkZEluQ29udGV4dFtcIkRlc2t0b3BcIl0gPSBcImRlc2t0b3BcIjtcbiAgICAvLyBcbiAgICBBZGRJbkNvbnRleHRbXCJTZXJ2ZXJcIl0gPSBcInNlcnZlclwiO1xufSkoQWRkSW5Db250ZXh0ID0gZXhwb3J0cy5BZGRJbkNvbnRleHQgfHwgKGV4cG9ydHMuQWRkSW5Db250ZXh0ID0ge30pKTtcbi8vIEVudW1lcmF0aW9uIG9mIGRpZmZlcmVudCBtb2RlcyBhbiBhZGQtaW4gY2FuIHJ1biBpblxudmFyIEFkZEluTW9kZTtcbihmdW5jdGlvbiAoQWRkSW5Nb2RlKSB7XG4gICAgLy8gXG4gICAgQWRkSW5Nb2RlW1wiVW5rbm93blwiXSA9IFwidW5rbm93blwiO1xuICAgIC8vIFxuICAgIEFkZEluTW9kZVtcIkF1dGhvcmluZ1wiXSA9IFwiYXV0aG9yaW5nXCI7XG4gICAgLy8gXG4gICAgQWRkSW5Nb2RlW1wiVmlld2luZ1wiXSA9IFwidmlld2luZ1wiO1xufSkoQWRkSW5Nb2RlID0gZXhwb3J0cy5BZGRJbk1vZGUgfHwgKGV4cG9ydHMuQWRkSW5Nb2RlID0ge30pKTtcbi8vIE1hcmtlcnMgZm9yIGFycmF5LW9mLWZsb2F0IGVuY29kaW5nIG9mIGdlb21ldHJ5XG52YXIgTGluZWFyRmxvYXRHZW9tZXRyeU1hcmtlcjtcbihmdW5jdGlvbiAoTGluZWFyRmxvYXRHZW9tZXRyeU1hcmtlcikge1xuICAgIC8vIFxuICAgIExpbmVhckZsb2F0R2VvbWV0cnlNYXJrZXJbXCJMRkdfSW52YWxpZFwiXSA9IFwiaW52YWxpZFwiO1xuICAgIC8vIFxuICAgIExpbmVhckZsb2F0R2VvbWV0cnlNYXJrZXJbXCJMRkdfTXVsdGlQb2x5Z29uXCJdID0gXCJtdWx0aVBvbHlnb25cIjtcbiAgICAvLyBcbiAgICBMaW5lYXJGbG9hdEdlb21ldHJ5TWFya2VyW1wiTEZHX011bHRpTGluZVwiXSA9IFwibXVsdGlMaW5lXCI7XG4gICAgLy8gXG4gICAgTGluZWFyRmxvYXRHZW9tZXRyeU1hcmtlcltcIkxGR19NdWx0aVBvaW50XCJdID0gXCJtdWx0aVBvaW50XCI7XG4gICAgLy8gXG4gICAgTGluZWFyRmxvYXRHZW9tZXRyeU1hcmtlcltcIkxGR19TdGFydE9iamVjdFwiXSA9IFwic3RhcnRPYmplY3RcIjtcbiAgICAvLyBcbiAgICBMaW5lYXJGbG9hdEdlb21ldHJ5TWFya2VyW1wiTEZHX1N0YXJ0UG9seWdvblwiXSA9IFwic3RhcnRQb2x5Z29uXCI7XG4gICAgLy8gXG4gICAgTGluZWFyRmxvYXRHZW9tZXRyeU1hcmtlcltcIkxGR19TdGFydExpbmVcIl0gPSBcInN0YXJ0TGluZVwiO1xuICAgIC8vIFxuICAgIExpbmVhckZsb2F0R2VvbWV0cnlNYXJrZXJbXCJMRkdfRW5kR2VvbWV0cnlcIl0gPSBcImVuZEdlb21ldHJ5XCI7XG59KShMaW5lYXJGbG9hdEdlb21ldHJ5TWFya2VyID0gZXhwb3J0cy5MaW5lYXJGbG9hdEdlb21ldHJ5TWFya2VyIHx8IChleHBvcnRzLkxpbmVhckZsb2F0R2VvbWV0cnlNYXJrZXIgPSB7fSkpO1xuLy8gRW51bWVyYXRpb24gZm9yIGRhdGEgYWxlcnQgdHlwZXMuXG52YXIgRGF0YUFsZXJ0VHlwZTtcbihmdW5jdGlvbiAoRGF0YUFsZXJ0VHlwZSkge1xuICAgIC8vIFxuICAgIERhdGFBbGVydFR5cGVbXCJEYXRhUHJlc2VudFwiXSA9IFwiZGF0YS1wcmVzZW50XCI7XG4gICAgLy8gXG4gICAgRGF0YUFsZXJ0VHlwZVtcIkNvbnN0Q29tcGFyaXNvblwiXSA9IFwiY29uc3QtY29tcGFyaXNvblwiO1xufSkoRGF0YUFsZXJ0VHlwZSA9IGV4cG9ydHMuRGF0YUFsZXJ0VHlwZSB8fCAoZXhwb3J0cy5EYXRhQWxlcnRUeXBlID0ge30pKTtcbi8vIEVudW1lcmF0aW9uIGZvciB2YWxpZCBvcGVyYXRpb25zIGluIGRhdGEgYWxlcnQgY29uZGl0aW9uc1xudmFyIERhdGFBbGVydENvbmRpdGlvbk9wZXJhdGlvblR5cGU7XG4oZnVuY3Rpb24gKERhdGFBbGVydENvbmRpdGlvbk9wZXJhdGlvblR5cGUpIHtcbiAgICAvLyBcbiAgICBEYXRhQWxlcnRDb25kaXRpb25PcGVyYXRpb25UeXBlW1wiR3JlYXRlclRoYW5cIl0gPSBcImdyZWF0ZXItdGhhblwiO1xuICAgIC8vIFxuICAgIERhdGFBbGVydENvbmRpdGlvbk9wZXJhdGlvblR5cGVbXCJHcmVhdGVyVGhhbkVxdWFsXCJdID0gXCJncmVhdGVyLXRoYW4tZXF1YWxcIjtcbiAgICAvLyBcbiAgICBEYXRhQWxlcnRDb25kaXRpb25PcGVyYXRpb25UeXBlW1wiRXF1YWxzXCJdID0gXCJlcXVhbHNcIjtcbiAgICAvLyBcbiAgICBEYXRhQWxlcnRDb25kaXRpb25PcGVyYXRpb25UeXBlW1wiTGVzc1RoYW5cIl0gPSBcImxlc3MtdGhhblwiO1xuICAgIC8vIFxuICAgIERhdGFBbGVydENvbmRpdGlvbk9wZXJhdGlvblR5cGVbXCJMZXNzVGhhbkVxdWFsXCJdID0gXCJsZXNzLXRoYW4tZXF1YWxcIjtcbn0pKERhdGFBbGVydENvbmRpdGlvbk9wZXJhdGlvblR5cGUgPSBleHBvcnRzLkRhdGFBbGVydENvbmRpdGlvbk9wZXJhdGlvblR5cGUgfHwgKGV4cG9ydHMuRGF0YUFsZXJ0Q29uZGl0aW9uT3BlcmF0aW9uVHlwZSA9IHt9KSk7XG4vLyBFbnVtZXJhdGlvbiBmb3IgbW9kZXMgdGhlIGRhdGEgYWxlcnQgZGlhbG9nIGNvdWxkIGJlIGluXG52YXIgRGF0YUFsZXJ0RGlhbG9nTW9kZTtcbihmdW5jdGlvbiAoRGF0YUFsZXJ0RGlhbG9nTW9kZSkge1xuICAgIC8vIFxuICAgIERhdGFBbGVydERpYWxvZ01vZGVbXCJDcmVhdGVcIl0gPSBcImNyZWF0ZVwiO1xuICAgIC8vIFxuICAgIERhdGFBbGVydERpYWxvZ01vZGVbXCJFZGl0XCJdID0gXCJlZGl0XCI7XG59KShEYXRhQWxlcnREaWFsb2dNb2RlID0gZXhwb3J0cy5EYXRhQWxlcnREaWFsb2dNb2RlIHx8IChleHBvcnRzLkRhdGFBbGVydERpYWxvZ01vZGUgPSB7fSkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RW51bXMuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1jb3JlL2xpYi9nZW4tc3JjL3ByZXNsYXllci9FbnVtcy5qc1xuICoqIG1vZHVsZSBpZCA9IDIyXG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2V4dGVuZHMgPSAodGhpcyAmJiB0aGlzLl9fZXh0ZW5kcykgfHwgKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxuICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XG4gICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKGIuaGFzT3duUHJvcGVydHkocCkpIGRbcF0gPSBiW3BdOyB9O1xuICAgIHJldHVybiBmdW5jdGlvbiAoZCwgYikge1xuICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICAgICAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cbiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpO1xuICAgIH07XG59KSgpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIGFwaV9pbnRlcm5hbF9jb250cmFjdF8xID0gcmVxdWlyZShcIkB0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdFwiKTtcbnZhciBQYXJhbXNfMSA9IHJlcXVpcmUoXCIuLi8uLi9nZW4tc3JjL3ByZXNsYXllci9QYXJhbXNcIik7XG52YXIgQWN0aXZlTWFya3NEYXRhQ29udmVydGVyXzEgPSByZXF1aXJlKFwiLi9BY3RpdmVNYXJrc0RhdGFDb252ZXJ0ZXJcIik7XG52YXIgQXBpVG9QcmVzTGF5ZXJDb252ZXJ0ZXJfMSA9IHJlcXVpcmUoXCIuL0FwaVRvUHJlc0xheWVyQ29udmVydGVyXCIpO1xudmFyIEZpbHRlcnNDb252ZXJ0ZXJfMSA9IHJlcXVpcmUoXCIuL0ZpbHRlcnNDb252ZXJ0ZXJcIik7XG52YXIgTWFwcGluZ1JlZ2lzdHJ5XzEgPSByZXF1aXJlKFwiLi9NYXBwaW5nUmVnaXN0cnlcIik7XG52YXIgUGFyYW1ldGVyc0RhdGFDb252ZXJ0ZXJfMSA9IHJlcXVpcmUoXCIuL1BhcmFtZXRlcnNEYXRhQ29udmVydGVyXCIpO1xudmFyIFByZXNMYXllclRvQXBpQ29udmVydGVyXzEgPSByZXF1aXJlKFwiLi9QcmVzTGF5ZXJUb0FwaUNvbnZlcnRlclwiKTtcbnZhciBVbmRlcmx5aW5nRGF0YUNvbnZlcnRlcl8xID0gcmVxdWlyZShcIi4vVW5kZXJseWluZ0RhdGFDb252ZXJ0ZXJcIik7XG4vKnRzbGludDpkaXNhYmxlLW5leHQtbGluZSAqL1xudmFyIGlkID0gZnVuY3Rpb24gKGluUGFyYW0pIHsgcmV0dXJuIGluUGFyYW07IH07XG4vKipcbiAqIEZhY3RvcnkgY2xhc3MgZm9yIGNyZWF0aW5nIHBhcmFtZXRlcnMgbWFwcGluZ3MgYmFzZWQgb24gdGhlIFZlcnNpb25OdW1iZXIgb2YgdGhlIEFwaVxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBQYXJhbWV0ZXJNYXBwaW5nUmVnaXN0cnlGYWN0b3J5XG4gKi9cbnZhciBQYXJhbWV0ZXJNYXBwaW5nUmVnaXN0cnlGYWN0b3J5ID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBQYXJhbWV0ZXJNYXBwaW5nUmVnaXN0cnlGYWN0b3J5KCkge1xuICAgIH1cbiAgICBQYXJhbWV0ZXJNYXBwaW5nUmVnaXN0cnlGYWN0b3J5LmNyZWF0ZVByZXNMYXllclRvQXBpUGFyYW1SZWdpc3RyeSA9IGZ1bmN0aW9uICh2ZXJzaW9uTnVtYmVyKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBuZXcgUHJlc0xheWVyVG9BcGlNYXBwaW5nUmVnaXN0cnkoKTtcbiAgICAgICAgLy8gVE9ETyAtIGNoZWNrIHRoZSB2ZXJzaW9uIG51bWJlciBhbmQgY29uc3RydWN0IGFwcHJvcHJpYXRlIGNvbnZlcnNpb25zXG4gICAgICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oUGFyYW1zXzEuUGFyYW1ldGVySWQuQWRkSW5Mb2NhdG9yLCBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5BZGRJbkxvY2F0b3IsIFByZXNMYXllclRvQXBpQ29udmVydGVyXzEuUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydEFkZEluTG9jYXRvcik7XG4gICAgICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oUGFyYW1zXzEuUGFyYW1ldGVySWQuQWRkSW5Cb290c3RyYXBJbmZvLCBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5BZGRJbkJvb3RzdHJhcEluZm8sIFByZXNMYXllclRvQXBpQ29udmVydGVyXzEuUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydEFkZEluQm9vdHN0cmFwSW5mbyk7XG4gICAgICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oUGFyYW1zXzEuUGFyYW1ldGVySWQuVW5kZXJseWluZ0RhdGFUYWJsZSwgYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuVW5kZXJseWluZ0RhdGFUYWJsZSwgVW5kZXJseWluZ0RhdGFDb252ZXJ0ZXJfMS5VbmRlcmx5aW5nRGF0YUNvbnZlcnRlci5idWlsZFVuZGVybHlpbmdEYXRhVGFibGUuYmluZCh1bmRlZmluZWQsIGZhbHNlKSk7XG4gICAgICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oUGFyYW1zXzEuUGFyYW1ldGVySWQuVW5kZXJseWluZ0RhdGFUYWJsZSwgYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuVW5kZXJseWluZ1N1bW1hcnlEYXRhVGFibGUsIFVuZGVybHlpbmdEYXRhQ29udmVydGVyXzEuVW5kZXJseWluZ0RhdGFDb252ZXJ0ZXIuYnVpbGRVbmRlcmx5aW5nRGF0YVRhYmxlLmJpbmQodW5kZWZpbmVkLCB0cnVlKSk7XG4gICAgICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oUGFyYW1zXzEuUGFyYW1ldGVySWQuVW5kZXJseWluZ0RhdGFUYWJsZSwgYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuRGF0YVNvdXJjZURhdGFUYWJsZSwgVW5kZXJseWluZ0RhdGFDb252ZXJ0ZXJfMS5VbmRlcmx5aW5nRGF0YUNvbnZlcnRlci5idWlsZFVuZGVybHlpbmdEYXRhVGFibGUuYmluZCh1bmRlZmluZWQsIHRydWUpKTtcbiAgICAgICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihQYXJhbXNfMS5QYXJhbWV0ZXJJZC5GaWVsZENhcHRpb24sIGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLkZpZWxkTmFtZSwgaWQpO1xuICAgICAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKFBhcmFtc18xLlBhcmFtZXRlcklkLlNlbGVjdGlvbkRhdGEsIGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLlNlbGVjdGVkRGF0YSwgQWN0aXZlTWFya3NEYXRhQ29udmVydGVyXzEuQWN0aXZlTWFya3NEYXRhQ29udmVydGVyLmJ1aWxkU2VsZWN0ZWREYXRhVGFibGUpO1xuICAgICAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKFBhcmFtc18xLlBhcmFtZXRlcklkLkhpZ2hsaWdodGVkRGF0YSwgYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuSGlnaGxpZ2h0ZWREYXRhLCBBY3RpdmVNYXJrc0RhdGFDb252ZXJ0ZXJfMS5BY3RpdmVNYXJrc0RhdGFDb252ZXJ0ZXIuYnVpbGRIaWdobGlnaHRlZERhdGFUYWJsZSk7XG4gICAgICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oUGFyYW1zXzEuUGFyYW1ldGVySWQuQWRkSW5TZXR0aW5nc0luZm8sIGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLkFkZEluU2V0dGluZ3NJbmZvLCBQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlcl8xLlByZXNMYXllclRvQXBpQ29udmVydGVyLmNvbnZlcnRBZGRJblNldHRpbmdzSW5mbyk7XG4gICAgICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oUGFyYW1zXzEuUGFyYW1ldGVySWQuV29ya3NoZWV0LCBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5Xb3Jrc2hlZXROYW1lLCBpZCk7XG4gICAgICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oUGFyYW1zXzEuUGFyYW1ldGVySWQuUGFyYW1ldGVyQ3RybHMsIGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLlBhcmFtZXRlckluZm9zLCBQYXJhbWV0ZXJzRGF0YUNvbnZlcnRlcl8xLlBhcmFtZXRlcnNEYXRhQ29udmVydGVyLmNvbnZlcnRQYXJhbWV0ZXJMaXN0KTtcbiAgICAgICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihQYXJhbXNfMS5QYXJhbWV0ZXJJZC5QYXJhbWV0ZXJDdHJsLCBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5QYXJhbWV0ZXJJbmZvLCBQYXJhbWV0ZXJzRGF0YUNvbnZlcnRlcl8xLlBhcmFtZXRlcnNEYXRhQ29udmVydGVyLmNvbnZlcnRQYXJhbWV0ZXIpO1xuICAgICAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKFBhcmFtc18xLlBhcmFtZXRlcklkLkRhdGFTY2hlbWEsIGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLkRhdGFTY2hlbWEsIFByZXNMYXllclRvQXBpQ29udmVydGVyXzEuUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydERhdGFTY2hlbWEpO1xuICAgICAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKFBhcmFtc18xLlBhcmFtZXRlcklkLkZpbHRlcnNJbmZvLCBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5Xb3Jrc2hlZXRGaWx0ZXJzLCBGaWx0ZXJzQ29udmVydGVyXzEuRmlsdGVyc0NvbnZlcnRlci5jb252ZXJ0RmlsdGVyc1ByZXNNb2RlbCk7XG4gICAgICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oUGFyYW1zXzEuUGFyYW1ldGVySWQuQ2F0ZWdvcmljYWxEb21haW4sIGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLkNhdGVnb3JpY2FsRG9tYWluLCBGaWx0ZXJzQ29udmVydGVyXzEuRmlsdGVyc0NvbnZlcnRlci5jb252ZXJ0Q2F0ZWdvcmljYWxEb21haW4pO1xuICAgICAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKFBhcmFtc18xLlBhcmFtZXRlcklkLlF1YW50aXRhdGl2ZURvbWFpbiwgYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuUXVhbnRpdGF0aXZlRG9tYWluLCBGaWx0ZXJzQ29udmVydGVyXzEuRmlsdGVyc0NvbnZlcnRlci5jb252ZXJ0UXVhbnRpdGF0aXZlRG9tYWluKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICAgIFBhcmFtZXRlck1hcHBpbmdSZWdpc3RyeUZhY3RvcnkuY3JlYXRlQXBpVG9QcmVzTGF5ZXJQYXJhbVJlZ2lzdHJ5ID0gZnVuY3Rpb24gKHZlcnNpb25OdW1iZXIpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBBcGlUb1ByZXNMYXllck1hcHBpbmdSZWdpc3RyeSgpO1xuICAgICAgICAvLyBUT0RPIC0gY2hlY2sgdGhlIHZlcnNpb24gbnVtYmVyIGFuZCBjb25zdHJ1Y3QgYXBwcm9wcmlhdGUgY29udmVyc2lvbnNcbiAgICAgICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5BZGRJbkxvY2F0b3IsIFBhcmFtc18xLlBhcmFtZXRlcklkLkFkZEluTG9jYXRvciwgQXBpVG9QcmVzTGF5ZXJDb252ZXJ0ZXJfMS5BcGlUb1ByZXNMYXllckNvbnZlcnRlci5jb252ZXJ0QWRkSW5Mb2NhdG9yKTtcbiAgICAgICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5TZXR0aW5nc1ZhbHVlcywgUGFyYW1zXzEuUGFyYW1ldGVySWQuQWRkSW5TZXR0aW5ncywgaWQpO1xuICAgICAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLklnbm9yZUFsaWFzZXMsIFBhcmFtc18xLlBhcmFtZXRlcklkLklnbm9yZUFsaWFzZXMsIGlkKTtcbiAgICAgICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5JZ25vcmVTZWxlY3Rpb24sIFBhcmFtc18xLlBhcmFtZXRlcklkLklnbm9yZVNlbGVjdGlvbiwgaWQpO1xuICAgICAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLkluY2x1ZGVBbGxDb2x1bW5zLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5JbmNsdWRlQWxsQ29sdW1ucywgaWQpO1xuICAgICAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLk1heFJvd3MsIFBhcmFtc18xLlBhcmFtZXRlcklkLk1heFJvd3MsIGlkKTtcbiAgICAgICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5WaXN1YWxJZCwgUGFyYW1zXzEuUGFyYW1ldGVySWQuVmlzdWFsSURQTSwgQXBpVG9QcmVzTGF5ZXJDb252ZXJ0ZXJfMS5BcGlUb1ByZXNMYXllckNvbnZlcnRlci5jb252ZXJ0VmlzdWFsSWQpO1xuICAgICAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLkNvbHVtbnNUb0luY2x1ZGUsIFBhcmFtc18xLlBhcmFtZXRlcklkLkZpZWxkRGlzcGxheU5hbWVzLCBpZCk7XG4gICAgICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuRmllbGROYW1lLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5RdWFsaWZpZWRGaWVsZENhcHRpb24sIGlkKTtcbiAgICAgICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5GaWx0ZXJWYWx1ZXMsIFBhcmFtc18xLlBhcmFtZXRlcklkLkZpbHRlckFsaWFzZXMsIEFwaVRvUHJlc0xheWVyQ29udmVydGVyXzEuQXBpVG9QcmVzTGF5ZXJDb252ZXJ0ZXIuY29udmVydEZpbHRlclZhbHVlcyk7XG4gICAgICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuRmlsdGVyVXBkYXRlVHlwZSwgUGFyYW1zXzEuUGFyYW1ldGVySWQuRmlsdGVyVXBkYXRlVHlwZSwgQXBpVG9QcmVzTGF5ZXJDb252ZXJ0ZXJfMS5BcGlUb1ByZXNMYXllckNvbnZlcnRlci5jb252ZXJ0RmlsdGVyVHlwZSk7XG4gICAgICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuSXNFeGNsdWRlTW9kZSwgUGFyYW1zXzEuUGFyYW1ldGVySWQuRXhjbHVkZSwgaWQpO1xuICAgICAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLkZpbHRlclJhbmdlTWluLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5SYW5nZU1pbiwgaWQpO1xuICAgICAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLkZpbHRlclJhbmdlTWF4LCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5SYW5nZU1heCwgaWQpO1xuICAgICAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLkZpbHRlclJhbmdlTnVsbE9wdGlvbiwgUGFyYW1zXzEuUGFyYW1ldGVySWQuSW5jbHVkZWQsIEFwaVRvUHJlc0xheWVyQ29udmVydGVyXzEuQXBpVG9QcmVzTGF5ZXJDb252ZXJ0ZXIuQ29udmVydE51bGxPcHRpb24pO1xuICAgICAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLkZpZWxkSWQsIFBhcmFtc18xLlBhcmFtZXRlcklkLkZpZWxkTmFtZSwgaWQpO1xuICAgICAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLkRvbWFpblR5cGUsIFBhcmFtc18xLlBhcmFtZXRlcklkLkZpbHRlckRvbWFpblR5cGUsIEFwaVRvUHJlc0xheWVyQ29udmVydGVyXzEuQXBpVG9QcmVzTGF5ZXJDb252ZXJ0ZXIuQ29udmVydEZpbHRlckRvbWFpblR5cGUpO1xuICAgICAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLlZpc3VhbElkLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5Xb3Jrc2hlZXQsIEFwaVRvUHJlc0xheWVyQ29udmVydGVyXzEuQXBpVG9QcmVzTGF5ZXJDb252ZXJ0ZXIuY29udmVydFZpc3VhbElkVG9Xb3Jrc2hlZXQpO1xuICAgICAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLlZpc3VhbElkLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5EYXNoYm9hcmQsIEFwaVRvUHJlc0xheWVyQ29udmVydGVyXzEuQXBpVG9QcmVzTGF5ZXJDb252ZXJ0ZXIuY29udmVydFZpc3VhbElkVG9EYXNoYm9hcmQpO1xuICAgICAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLlBhcmFtZXRlckNhcHRpb24sIFBhcmFtc18xLlBhcmFtZXRlcklkLkZpZWxkQ2FwdGlvbiwgaWQpO1xuICAgICAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLlBhcmFtZXRlckZpZWxkTmFtZSwgUGFyYW1zXzEuUGFyYW1ldGVySWQuRmllbGROYW1lU3RyaW5nLCBpZCk7XG4gICAgICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuUGFyYW1ldGVyRmllbGROYW1lLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5HbG9iYWxGaWVsZE5hbWUsIGlkKTtcbiAgICAgICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5QYXJhbWV0ZXJWYWx1ZSwgUGFyYW1zXzEuUGFyYW1ldGVySWQuVmFsdWVTdHIsIGlkKTtcbiAgICAgICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5TaGVldFBhdGgsIFBhcmFtc18xLlBhcmFtZXRlcklkLlNoZWV0UGF0aFBNLCBmdW5jdGlvbiAocG0pIHsgcmV0dXJuIEFwaVRvUHJlc0xheWVyQ29udmVydGVyXzEuQXBpVG9QcmVzTGF5ZXJDb252ZXJ0ZXIuY29udmVydFNoZWV0UGF0aChwbSk7IH0pO1xuICAgICAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLlNlbGVjdGlvbiwgUGFyYW1zXzEuUGFyYW1ldGVySWQuU2VsZWN0aW9uLCBpZCk7XG4gICAgICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuU2VsZWN0aW9uVXBkYXRlVHlwZSwgUGFyYW1zXzEuUGFyYW1ldGVySWQuU2VsZWN0aW9uVXBkYXRlVHlwZSwgaWQpO1xuICAgICAgICByZXN1bHQuYWRkUmVnaXN0cmF0aW9uKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLkhpZXJWYWxTZWxlY3Rpb25Nb2RlbHMsIFBhcmFtc18xLlBhcmFtZXRlcklkLkhpZXJWYWxTZWxlY3Rpb25Nb2RlbHMsIGlkKTtcbiAgICAgICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5RdWFudFJhbmdlU2VsZWN0aW9uTW9kZWxzLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5RdWFudFJhbmdlU2VsZWN0aW9uTW9kZWxzLCBpZCk7XG4gICAgICAgIHJlc3VsdC5hZGRSZWdpc3RyYXRpb24oYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuRGltVmFsU2VsZWN0aW9uTW9kZWxzLCBQYXJhbXNfMS5QYXJhbWV0ZXJJZC5EaW1WYWxTZWxlY3Rpb25Nb2RlbHMsIGlkKTtcbiAgICAgICAgLy8gVGhlIHBhcmFtIFBMLkRhdGFzb3VyY2UgaXMgdGhlIElEIHN0cmluZyBmb3IgYSBzcGVjaWZpYyBkYXRhc291cmNlLCBub3QgdG8gYmUgY29uZnVzZWRcbiAgICAgICAgLy8gd2l0aCB0aGUgcGFyYW0gUEwuRGF0YVNvdXJjZSwgd2hpY2ggaXMgdGhlIGZ1bGwgcHJlcyBtb2RlbCBmb3IgYSBkYXRhIHNvdXJjZS5cbiAgICAgICAgcmVzdWx0LmFkZFJlZ2lzdHJhdGlvbihhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5EYXRhU291cmNlSWQsIFBhcmFtc18xLlBhcmFtZXRlcklkLkRhdGFzb3VyY2UsIGlkKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICAgIHJldHVybiBQYXJhbWV0ZXJNYXBwaW5nUmVnaXN0cnlGYWN0b3J5O1xufSgpKTtcbmV4cG9ydHMuUGFyYW1ldGVyTWFwcGluZ1JlZ2lzdHJ5RmFjdG9yeSA9IFBhcmFtZXRlck1hcHBpbmdSZWdpc3RyeUZhY3Rvcnk7XG52YXIgQXBpVG9QcmVzTGF5ZXJNYXBwaW5nUmVnaXN0cnkgPSAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhBcGlUb1ByZXNMYXllck1hcHBpbmdSZWdpc3RyeSwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBBcGlUb1ByZXNMYXllck1hcHBpbmdSZWdpc3RyeSgpIHtcbiAgICAgICAgcmV0dXJuIF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICByZXR1cm4gQXBpVG9QcmVzTGF5ZXJNYXBwaW5nUmVnaXN0cnk7XG59KE1hcHBpbmdSZWdpc3RyeV8xLk1hcHBpbmdSZWdpc3RyeSkpO1xuZXhwb3J0cy5BcGlUb1ByZXNMYXllck1hcHBpbmdSZWdpc3RyeSA9IEFwaVRvUHJlc0xheWVyTWFwcGluZ1JlZ2lzdHJ5O1xudmFyIFByZXNMYXllclRvQXBpTWFwcGluZ1JlZ2lzdHJ5ID0gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoUHJlc0xheWVyVG9BcGlNYXBwaW5nUmVnaXN0cnksIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gUHJlc0xheWVyVG9BcGlNYXBwaW5nUmVnaXN0cnkoKSB7XG4gICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcbiAgICB9XG4gICAgcmV0dXJuIFByZXNMYXllclRvQXBpTWFwcGluZ1JlZ2lzdHJ5O1xufShNYXBwaW5nUmVnaXN0cnlfMS5NYXBwaW5nUmVnaXN0cnkpKTtcbmV4cG9ydHMuUHJlc0xheWVyVG9BcGlNYXBwaW5nUmVnaXN0cnkgPSBQcmVzTGF5ZXJUb0FwaU1hcHBpbmdSZWdpc3RyeTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVBhcmFtZXRlck1hcHBpbmdSZWdpc3RyeUZhY3RvcnkuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1jb3JlL2xpYi9zcmMvbWFwcGluZ3MvUGFyYW1ldGVyTWFwcGluZ1JlZ2lzdHJ5RmFjdG9yeS5qc1xuICoqIG1vZHVsZSBpZCA9IDIzXG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBhcGlfaW50ZXJuYWxfY29udHJhY3RfMSA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3RcIik7XG52YXIgRW51bU1hcHBpbmdzXzEgPSByZXF1aXJlKFwiLi9FbnVtTWFwcGluZ3NcIik7XG52YXIgVW5kZXJseWluZ0RhdGFDb252ZXJ0ZXJfMSA9IHJlcXVpcmUoXCIuL1VuZGVybHlpbmdEYXRhQ29udmVydGVyXCIpO1xuLyoqXG4gKiBDb250YWlucyBsb2dpYyBmb3IgY29udmVydGluZyB0aGUgYWN0aXZlIG1hcmtzIG9uIGEgdml6IGludG8gdGhlIEFQSSBwcmVzIG1vZGVscy5cbiAqIEluIHRoZSBvcmlnaW5hbCBwcm9qZWN0LCBtb3N0IG9mIHRoaXMgd2FzIGluIHRoZSBQcm9jZXNzQWN0aXZlTWFya3MgZnVuY3Rpb25cbiAqL1xudmFyIEFjdGl2ZU1hcmtzRGF0YUNvbnZlcnRlciA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gQWN0aXZlTWFya3NEYXRhQ29udmVydGVyKCkge1xuICAgIH1cbiAgICBBY3RpdmVNYXJrc0RhdGFDb252ZXJ0ZXIuYnVpbGRTZWxlY3RlZERhdGFUYWJsZSA9IGZ1bmN0aW9uIChzZWxlY3RlZERhdGEpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRhdGE6IEFjdGl2ZU1hcmtzRGF0YUNvbnZlcnRlci5idWlsZEFjdGl2ZU1hcmtzTGlzdChzZWxlY3RlZERhdGEuZGF0YURpY3Rpb25hcnksIHNlbGVjdGVkRGF0YS52aXpEYXRhKVxuICAgICAgICB9O1xuICAgIH07XG4gICAgQWN0aXZlTWFya3NEYXRhQ29udmVydGVyLmJ1aWxkSGlnaGxpZ2h0ZWREYXRhVGFibGUgPSBmdW5jdGlvbiAoaGlnaGxpZ2h0ZWREYXRhKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkYXRhOiBBY3RpdmVNYXJrc0RhdGFDb252ZXJ0ZXIuYnVpbGRBY3RpdmVNYXJrc0xpc3QoaGlnaGxpZ2h0ZWREYXRhLmRhdGFEaWN0aW9uYXJ5LCBoaWdobGlnaHRlZERhdGEudml6RGF0YSlcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIEFjdGl2ZU1hcmtzRGF0YUNvbnZlcnRlci5idWlsZEFjdGl2ZU1hcmtzTGlzdCA9IGZ1bmN0aW9uIChkYXRhRGljdGlvbmFyeSwgdml6RGF0YSkge1xuICAgICAgICB2YXIgcmVzdWx0ID0gbmV3IEFycmF5KCk7XG4gICAgICAgIHZhciBfbG9vcF8xID0gZnVuY3Rpb24gKGkpIHtcbiAgICAgICAgICAgIC8vIE5lZWQgdG8gZmlsdGVyIHRvIGZpbmQgYWxsIHRoZSBjb2x1bW5zIHdoaWNoIGFyZSBpbiB0aGlzIHBhbmVcbiAgICAgICAgICAgIHZhciBjb2x1bW5zID0gdml6RGF0YS5wYW5lQ29sdW1uc0RhdGEudml6RGF0YUNvbHVtbnMuZmlsdGVyKGZ1bmN0aW9uICh2aXpEYXRhQ29sdW1uKSB7XG4gICAgICAgICAgICAgICAgLy8gV2Uga25vdyB0aGlzIGNvbHVtbiBtYXR0ZXJzIGZvciB0aGUgY3VycmVudCBwYW5lIGlmIHRoaXMgcGFuZSdzIGluZGV4IGlzIGluIHBhbmVJbmRpY2VzXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZpekRhdGFDb2x1bW4ucGFuZUluZGljZXMuaW5kZXhPZihpKSA+IC0xO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyBDcmVhdGUgYSBtYXBwaW5nIG9mIHdoaWNoIGluZGV4IGluIHRoZSBkYXRhIGRpY3Rpb25hcnkgb3VyIGNvbHVtbnMgYXJlIGluXG4gICAgICAgICAgICB2YXIgY29sdW1uSW5kaWNlcyA9IGNvbHVtbnMubWFwKGZ1bmN0aW9uICh2aXpEYXRhQ29sdW1uKSB7XG4gICAgICAgICAgICAgICAgLy8gVGhlIGNvbHVtbkluZGV4IGlzIGluIHRoZSBzYW1lIHBvc2l0aW9uIGFzIHRoZSBwYW5lSW5kZXhcbiAgICAgICAgICAgICAgICB2YXIgcGFuZUluZGV4ID0gdml6RGF0YUNvbHVtbi5wYW5lSW5kaWNlcy5pbmRleE9mKGkpO1xuICAgICAgICAgICAgICAgIHZhciBjb2x1bW5JbmRleCA9IHZpekRhdGFDb2x1bW4uY29sdW1uSW5kaWNlc1twYW5lSW5kZXhdO1xuICAgICAgICAgICAgICAgIHJldHVybiBjb2x1bW5JbmRleDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gR2V0IHRoZSBkYXRhIGZvciB0aGUgcGFuZSB3ZSBhcmUgcHJvY2Vzc2luZ1xuICAgICAgICAgICAgdmFyIHZpelBhbmUgPSB2aXpEYXRhLnBhbmVDb2x1bW5zRGF0YS5wYW5lQ29sdW1uc0xpc3RbaV07XG4gICAgICAgICAgICBpZiAodml6UGFuZS52aXpQYW5lQ29sdW1ucy5sZW5ndGggIT09IGNvbHVtbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNYWxmb3JtZWQgZGF0YSB0YWJsZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFyIGhlYWRlcnMgPSBuZXcgQXJyYXkoKTtcbiAgICAgICAgICAgIHZhciByb3dzID0gbmV3IEFycmF5KCk7XG4gICAgICAgICAgICAvLyBDb2x1bW4gMCB3aWxsIGJlIHRoZSB0dXBsZSBpZCBjb2x1bW4uIFdlIGNhbiB1c2UgdGhpcyBhcyBhIGNvdW50ZXIgZm9yIGhvdyBtYW55IHJvd3Mgd2UgaGF2ZVxuICAgICAgICAgICAgdmFyIHR1cGxlSWRzID0gdml6UGFuZS52aXpQYW5lQ29sdW1uc1swXS50dXBsZUlkcztcbiAgICAgICAgICAgIHZhciBtYXJrcyA9IG5ldyBBcnJheSgpO1xuICAgICAgICAgICAgZm9yICh2YXIgdHVwbGVJbmRleCA9IDA7IHR1cGxlSW5kZXggPCB0dXBsZUlkcy5sZW5ndGg7IHR1cGxlSW5kZXgrKykge1xuICAgICAgICAgICAgICAgIC8vIFRPRE8gTmVlZCB0byByZXZhbHVhdGUgdGhlIHBsYWNlIG9mIHRoaXMgbG9naWMuIElmIGl0IHR1cm5zIG91dCB0aGF0IHdlIG5lZWQgYSBzZXBhcmF0ZSBjb21tYW5kXG4gICAgICAgICAgICAgICAgLy8gY2FsbCB0byBnZXQgdGhlIG1hcmtzIGluZm8sIHRoZW4gdGhpcyBsb2dpYyBzaG91bGQgbm90IGJlIGhlcmUgYnV0IGluc3RlYWQgaW4gYSBsYXllciBhYm92ZSBzb21ld2hlcmVcbiAgICAgICAgICAgICAgICB2YXIgbWFyayA9IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuTWFya1R5cGUuQmFyLFxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3JlZCcsXG4gICAgICAgICAgICAgICAgICAgIHR1cGxlSWQ6IHR1cGxlSWRzW3R1cGxlSW5kZXhdLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgbWFya3MucHVzaChtYXJrKTtcbiAgICAgICAgICAgICAgICAvLyBXZSB3aWxsIGhhdmUgMSBsZXNzIHZhbHVlIGluIHRoaXMgcm93IHNpbmNlIHRoZXJlJ3MgdGhlIHR1cGxlSWQgY29sdW1uXG4gICAgICAgICAgICAgICAgdmFyIGNlbGxzID0gbmV3IEFycmF5KHZpelBhbmUudml6UGFuZUNvbHVtbnMubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IDEgLyogc2tpcCB0aGUgZmlyc3Qgd2hpY2ggaXMgdHVwbGUgaWRzICovOyBqIDwgdml6UGFuZS52aXpQYW5lQ29sdW1ucy5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgICAgICAvLyBOZXh0LCB3ZSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hpY2ggY29sdW1uIHdlIGFyZSByZWFkaW5nIGRhdGEgZm9yXG4gICAgICAgICAgICAgICAgICAgIHZhciBjb2x1bW4gPSBjb2x1bW5zW2NvbHVtbkluZGljZXNbal1dO1xuICAgICAgICAgICAgICAgICAgICB2YXIgdml6UGFuZUNvbHVtbkRhdGEgPSB2aXpQYW5lLnZpelBhbmVDb2x1bW5zW2pdO1xuICAgICAgICAgICAgICAgICAgICAvLyBEZWZpbmUgdGhlIGhlYWRlciB3aGVuIHdlIGFyZSBwcm9jZXNzaW5nIHRoZSBmaXJzdCByb3dcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR1cGxlSW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBoZWFkZXIgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVR5cGU6IEVudW1NYXBwaW5nc18xLlByZXNMYXllclRvQXBpRW51bU1hcHBpbmdzLmRhdGFUeXBlLmNvbnZlcnQoY29sdW1uLmRhdGFUeXBlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZE5hbWU6IGNvbHVtbi5mbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1JlZmVyZW5jZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGogLSAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkQ2FwdGlvbjogY29sdW1uLmZpZWxkQ2FwdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnMucHVzaChoZWFkZXIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IFVuZGVybHlpbmdEYXRhQ29udmVydGVyXzEuVW5kZXJseWluZ0RhdGFDb252ZXJ0ZXIubG9va3VwVmFsdWVGcm9tRGljdGlvbmFyeShkYXRhRGljdGlvbmFyeSwgY29sdW1uLmRhdGFUeXBlLCB2aXpQYW5lQ29sdW1uRGF0YS52YWx1ZUluZGljZXNbdHVwbGVJbmRleF0pO1xuICAgICAgICAgICAgICAgICAgICB2YXIgYWxpYXNWYWx1ZSA9IFVuZGVybHlpbmdEYXRhQ29udmVydGVyXzEuVW5kZXJseWluZ0RhdGFDb252ZXJ0ZXIubG9va3VwVmFsdWVGcm9tRGljdGlvbmFyeShkYXRhRGljdGlvbmFyeSwgY29sdW1uLmRhdGFUeXBlLCB2aXpQYW5lQ29sdW1uRGF0YS5hbGlhc0luZGljZXNbdHVwbGVJbmRleF0pIHx8ICcnO1xuICAgICAgICAgICAgICAgICAgICB2YXIgZm9ybWF0dGVkVmFsdWUgPSBhbGlhc1ZhbHVlOyAvLyBUT0RPIC0gRmlndXJlIG91dCBob3cgdG8gdXNlIHRoZSBmb3JtYXRTdHJpbmdzXG4gICAgICAgICAgICAgICAgICAgIHZhciBkYXRhQ2VsbCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlZFZhbHVlOiBmb3JtYXR0ZWRWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzZWRWYWx1ZTogYWxpYXNWYWx1ZVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAvLyBBZGQgb3VyIGNlbGwgdG8gdGhpcyByb3dcbiAgICAgICAgICAgICAgICAgICAgY2VsbHNbaiAtIDFdID0gZGF0YUNlbGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJvd3MucHVzaChjZWxscyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgZGF0YVRhYmxlID0ge1xuICAgICAgICAgICAgICAgIGRhdGFUYWJsZTogcm93cyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzLFxuICAgICAgICAgICAgICAgIG1hcmtzOiBtYXJrc1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKGRhdGFUYWJsZSk7XG4gICAgICAgIH07XG4gICAgICAgIC8vIFRoZSBkYXRhIG1vZGVsIGZvciB0aGUgVml6RGF0YVByZXNNb2RlbCBpcyBhIGxpdHRsZSBzdHJhbmdlLCBzbyB0aGlzIHBhcnNpbmcgdGFrZXMgc29tZSB0aW1lIHRvIGZpZ3VyZSBvdXQuXG4gICAgICAgIC8vIFRoZXJlIGNhbiBiZSBtdWx0aXBsZSBwYW5lcyBvZiBkYXRhLCBzbyB3ZSBtdXN0IGdvIHRocm91Z2ggdGhlbSBvbmUgYXQgYSB0aW1lIHRvIGNyZWF0ZSBkYXRhIHRhYmxlc1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZpekRhdGEucGFuZUNvbHVtbnNEYXRhLnBhbmVDb2x1bW5zTGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgX2xvb3BfMShpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gICAgcmV0dXJuIEFjdGl2ZU1hcmtzRGF0YUNvbnZlcnRlcjtcbn0oKSk7XG5leHBvcnRzLkFjdGl2ZU1hcmtzRGF0YUNvbnZlcnRlciA9IEFjdGl2ZU1hcmtzRGF0YUNvbnZlcnRlcjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUFjdGl2ZU1hcmtzRGF0YUNvbnZlcnRlci5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWNvcmUvbGliL3NyYy9tYXBwaW5ncy9BY3RpdmVNYXJrc0RhdGFDb252ZXJ0ZXIuanNcbiAqKiBtb2R1bGUgaWQgPSAyNFxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgRW51bXMgPSByZXF1aXJlKFwiLi4vLi4vZ2VuLXNyYy9wcmVzbGF5ZXIvRW51bXNcIik7XG52YXIgRW51bU1hcHBpbmdzXzEgPSByZXF1aXJlKFwiLi9FbnVtTWFwcGluZ3NcIik7XG4vKipcbiAqIENvbnRhaW5zIHN0YXRpYyBoZWxwZXIgbWV0aG9kcyBmb3IgY29udmVydGluZyBmcm9tIGFuIHVuZGVybHlpbmcgZGF0YSBwcmVzIG1vZGVsIGludG8gdGhlIGFwaSByZXByZXNlbnRhdGlvbi5cbiAqIE1vc3Qgb2YgdGhlIGNvZGUgaXMgYSBkaXJlY3QgcG9ydCBmcm9tIEFwaVVuZGVybHlpbmdEYXRhSGFuZGxlci5jc1xuICogaHR0cHM6Ly9vcGVuZ3Jvay9zb3VyY2UveHJlZi90ZWFtc19uZWFyL3dvcmtncm91cC92cWx3ZWIvc2NyaXB0c2hhcnAvc3JjL1VJL0FwaS9BcGlVbmRlcmx5aW5nRGF0YUhhbmRsZXIuY3NcbiAqL1xudmFyIFVuZGVybHlpbmdEYXRhQ29udmVydGVyID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBVbmRlcmx5aW5nRGF0YUNvbnZlcnRlcigpIHtcbiAgICB9XG4gICAgVW5kZXJseWluZ0RhdGFDb252ZXJ0ZXIubG9va3VwVmFsdWVGcm9tRGljdGlvbmFyeSA9IGZ1bmN0aW9uIChkYXRhRGljdGlvbmFyeSwgZHQsIGluZGV4KSB7XG4gICAgICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgICAgICAgIC8vIHBlciBjbCAyODAzOTYgLyBidWd6aWQgODExOTcgbmVnYXRpdmUgZGF0YSB2YWx1ZSBpbmRleCBtZWFucyB0aGF0IGl0IGlzIHNwZWNpYWxcbiAgICAgICAgICAgIGR0ID0gRW51bXMuRGF0YVR5cGUuRFRfU1RSSU5HO1xuICAgICAgICAgICAgaW5kZXggPSAtaW5kZXggLSAxO1xuICAgICAgICB9XG4gICAgICAgIHZhciByZXN1bHQgPSBudWxsO1xuICAgICAgICB2YXIgcmF3VmFsdWUgPSBVbmRlcmx5aW5nRGF0YUNvbnZlcnRlci5nZXRSYXdWYWx1ZShkYXRhRGljdGlvbmFyeSwgZHQsIGluZGV4KTtcbiAgICAgICAgaWYgKHJhd1ZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXN1bHQgPSByYXdWYWx1ZS50b1N0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55ICovXG4gICAgVW5kZXJseWluZ0RhdGFDb252ZXJ0ZXIuZ2V0UmF3VmFsdWUgPSBmdW5jdGlvbiAoZGF0YURpY3Rpb25hcnksIGR0LCBpbmRleCkge1xuICAgICAgICBpZiAoIWRhdGFEaWN0aW9uYXJ5LmRhdGFTZWdtZW50cykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgZm9yICh2YXIgX2kgPSAwLCBfYSA9IE9iamVjdC5rZXlzKGRhdGFEaWN0aW9uYXJ5LmRhdGFTZWdtZW50cyk7IF9pIDwgX2EubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICB2YXIga2V5ID0gX2FbX2ldO1xuICAgICAgICAgICAgdmFyIGRhdGFTZWdtZW50ID0gZGF0YURpY3Rpb25hcnkuZGF0YVNlZ21lbnRzW2tleV07XG4gICAgICAgICAgICBmb3IgKHZhciBfYiA9IDAsIF9jID0gZGF0YVNlZ21lbnQuZGF0YUNvbHVtbnM7IF9iIDwgX2MubGVuZ3RoOyBfYisrKSB7XG4gICAgICAgICAgICAgICAgdmFyIGRhdGFDb2x1bW4gPSBfY1tfYl07XG4gICAgICAgICAgICAgICAgaWYgKCFkYXRhQ29sdW1uIHx8IGRhdGFDb2x1bW4uZGF0YVR5cGUgIT09IGR0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPCBkYXRhQ29sdW1uLmRhdGFWYWx1ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRhQ29sdW1uLmRhdGFWYWx1ZXNbaW5kZXhdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpbmRleCAtPSBkYXRhQ29sdW1uLmRhdGFWYWx1ZXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG4gICAgVW5kZXJseWluZ0RhdGFDb252ZXJ0ZXIuYnVpbGREYXRhVGFibGUgPSBmdW5jdGlvbiAoZGF0YURpY3Rpb25hcnksIGNvbHVtbnMpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIGRhdGFUYWJsZTogVW5kZXJseWluZ0RhdGFDb252ZXJ0ZXIuYnVpbGRUYWJsZShkYXRhRGljdGlvbmFyeSwgY29sdW1ucyksXG4gICAgICAgICAgICBoZWFkZXJzOiBjb2x1bW5zLm1hcChmdW5jdGlvbiAoYywgaSkgeyByZXR1cm4gVW5kZXJseWluZ0RhdGFDb252ZXJ0ZXIuYnVpbGRDb2x1bW5Nb2RlbChjLCBpKTsgfSlcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICAgIFVuZGVybHlpbmdEYXRhQ29udmVydGVyLmJ1aWxkVW5kZXJseWluZ0RhdGFUYWJsZSA9IGZ1bmN0aW9uIChpc1N1bW1hcnksIHVuZGVybHlpbmdEYXRhVGFibGUpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIGRhdGE6IFVuZGVybHlpbmdEYXRhQ29udmVydGVyLmJ1aWxkRGF0YVRhYmxlKHVuZGVybHlpbmdEYXRhVGFibGUuZGF0YURpY3Rpb25hcnksIHVuZGVybHlpbmdEYXRhVGFibGUudW5kZXJseWluZ0RhdGFUYWJsZUNvbHVtbnMpLFxuICAgICAgICAgICAgaXNTdW1tYXJ5OiBpc1N1bW1hcnlcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICAgIFVuZGVybHlpbmdEYXRhQ29udmVydGVyLmJ1aWxkQWN0aXZlTWFya3NUYWJsZSA9IGZ1bmN0aW9uIChkYXRhRGljdGlvbmFyeSwgdml6RGF0YSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKTtcbiAgICB9O1xuICAgIFVuZGVybHlpbmdEYXRhQ29udmVydGVyLmJ1aWxkQ29sdW1uTW9kZWwgPSBmdW5jdGlvbiAoY29sdW1uLCBpbmRleCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGF0YVR5cGU6IEVudW1NYXBwaW5nc18xLlByZXNMYXllclRvQXBpRW51bU1hcHBpbmdzLmRhdGFUeXBlLmNvbnZlcnQoY29sdW1uLmRhdGFUeXBlKSxcbiAgICAgICAgICAgIGZpZWxkTmFtZTogY29sdW1uLmZuLFxuICAgICAgICAgICAgZmllbGRDYXB0aW9uOiBjb2x1bW4uZmllbGRDYXB0aW9uLFxuICAgICAgICAgICAgaXNSZWZlcmVuY2VkOiAhIWNvbHVtbi5pc1JlZmVyZW5jZWQsXG4gICAgICAgICAgICBpbmRleDogaW5kZXhcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIFVuZGVybHlpbmdEYXRhQ29udmVydGVyLmJ1aWxkVGFibGUgPSBmdW5jdGlvbiAoZGF0YURpY3Rpb25hcnksIGNvbHVtbnMpIHtcbiAgICAgICAgaWYgKGNvbHVtbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEFycmF5KCk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHJvd0NvdW50ID0gY29sdW1uc1swXS5mb3JtYXRWYWxJZHhzLmxlbmd0aDtcbiAgICAgICAgdmFyIGNvbHVtbkNvdW50ID0gY29sdW1ucy5sZW5ndGg7XG4gICAgICAgIHZhciByZXN1bHQgPSBuZXcgQXJyYXkocm93Q291bnQpO1xuICAgICAgICAvLyBJbml0aWFsaXplIGFsbCBvZiBvdXIgcm93c1xuICAgICAgICBmb3IgKHZhciByb3dJbmRleCA9IDA7IHJvd0luZGV4IDwgcm93Q291bnQ7IHJvd0luZGV4KyspIHtcbiAgICAgICAgICAgIHJlc3VsdFtyb3dJbmRleF0gPSBuZXcgQXJyYXkoY29sdW1uQ291bnQpO1xuICAgICAgICB9XG4gICAgICAgIC8vIEdvIHRocm91Z2ggY29sdW1uLWJ5LWNvbHVtbiBhbmQgY29udmVydCB0aGUgdmFsdWVzXG4gICAgICAgIGZvciAodmFyIGNvbHVtbkluZGV4ID0gMDsgY29sdW1uSW5kZXggPCBjb2x1bW5Db3VudDsgY29sdW1uSW5kZXgrKykge1xuICAgICAgICAgICAgdmFyIGNvbHVtbiA9IGNvbHVtbnNbY29sdW1uSW5kZXhdO1xuICAgICAgICAgICAgZm9yICh2YXIgcm93SW5kZXggPSAwOyByb3dJbmRleCA8IHJvd0NvdW50OyByb3dJbmRleCsrKSB7XG4gICAgICAgICAgICAgICAgdmFyIGZvcm1hdHRlZFZhbHVlID0gVW5kZXJseWluZ0RhdGFDb252ZXJ0ZXIubG9va3VwVmFsdWVGcm9tRGljdGlvbmFyeShkYXRhRGljdGlvbmFyeSwgRW51bXMuRGF0YVR5cGUuRFRfU1RSSU5HLCBjb2x1bW4uZm9ybWF0VmFsSWR4c1tyb3dJbmRleF0pO1xuICAgICAgICAgICAgICAgIGlmIChmb3JtYXR0ZWRWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Zvcm1hdHRlZFZhbHVlIHdhcyBudWxsJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFVuZGVybHlpbmdEYXRhQ29udmVydGVyLmxvb2t1cFZhbHVlRnJvbURpY3Rpb25hcnkoZGF0YURpY3Rpb25hcnksIGNvbHVtbi5kYXRhVHlwZSwgY29sdW1uLnZhbHVlSW5kaWNlc1tyb3dJbmRleF0pLFxuICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZWRWYWx1ZTogZm9ybWF0dGVkVmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIGFsaWFzZWRWYWx1ZTogZm9ybWF0dGVkVmFsdWVcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHJlc3VsdFtyb3dJbmRleF1bY29sdW1uSW5kZXhdID0gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICAgIHJldHVybiBVbmRlcmx5aW5nRGF0YUNvbnZlcnRlcjtcbn0oKSk7XG5leHBvcnRzLlVuZGVybHlpbmdEYXRhQ29udmVydGVyID0gVW5kZXJseWluZ0RhdGFDb252ZXJ0ZXI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1VbmRlcmx5aW5nRGF0YUNvbnZlcnRlci5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWNvcmUvbGliL3NyYy9tYXBwaW5ncy9VbmRlcmx5aW5nRGF0YUNvbnZlcnRlci5qc1xuICoqIG1vZHVsZSBpZCA9IDI1XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBFbnVtTWFwcGluZ3NfMSA9IHJlcXVpcmUoXCIuL0VudW1NYXBwaW5nc1wiKTtcbi8qKlxuICogQ2xhc3MgY29udGFpbmluZyBoZWxwZXIgbWV0aG9kcyBmb3IgY29udmVydGluZyBmcm9tIEFwaVByZXNNb2RlbHMgdG8gdGhlaXIgUHJlc0xheWVyIGVxdWl2YWxlbnRzXG4gKlxuICogQGV4cG9ydFxuICogQGNsYXNzIEFwaVRvUHJlc0xheWVyQ29udmVydGVyXG4gKi9cbnZhciBBcGlUb1ByZXNMYXllckNvbnZlcnRlciA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gQXBpVG9QcmVzTGF5ZXJDb252ZXJ0ZXIoKSB7XG4gICAgfVxuICAgIEFwaVRvUHJlc0xheWVyQ29udmVydGVyLmNvbnZlcnRTaGVldFBhdGggPSBmdW5jdGlvbiAoYXBpU2hlZXRQYXRoKSB7XG4gICAgICAgIGlmICghYXBpU2hlZXRQYXRoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3NoZWV0UGF0aCBub3QgZGVmaW5lZCcpO1xuICAgICAgICB9XG4gICAgICAgIHZhciByZXN1bHQgPSB7XG4gICAgICAgICAgICBzaGVldE5hbWU6IGFwaVNoZWV0UGF0aC5zaGVldE5hbWUsXG4gICAgICAgICAgICBpc0Rhc2hib2FyZDogYXBpU2hlZXRQYXRoLmlzRGFzaGJvYXJkLFxuICAgICAgICAgICAgc3Rvcnlib2FyZDogYXBpU2hlZXRQYXRoLnN0b3J5Ym9hcmQgfHwgJycsXG4gICAgICAgICAgICBmbGlwYm9hcmRab25lSWQ6IGFwaVNoZWV0UGF0aC5mbGlwYm9hcmRab25lSUQgfHwgMCxcbiAgICAgICAgICAgIHN0b3J5UG9pbnRJZDogYXBpU2hlZXRQYXRoLnN0b3J5UG9pbnRJRCB8fCAwLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gICAgQXBpVG9QcmVzTGF5ZXJDb252ZXJ0ZXIuY29udmVydEFkZEluTG9jYXRvciA9IGZ1bmN0aW9uIChhcGlBZGRJbkxvY2F0b3IpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIGFkZEluSW5zdGFuY2VJZDogYXBpQWRkSW5Mb2NhdG9yLmluc3RhbmNlSWQsXG4gICAgICAgICAgICBzaGVldFBhdGg6IEFwaVRvUHJlc0xheWVyQ29udmVydGVyLmNvbnZlcnRTaGVldFBhdGgoYXBpQWRkSW5Mb2NhdG9yLmRhc2hib2FyZFBhdGgpXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbiAgICBBcGlUb1ByZXNMYXllckNvbnZlcnRlci5jb252ZXJ0VmlzdWFsSWQgPSBmdW5jdGlvbiAoYXBpVmlzdWFsaWQpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHdvcmtzaGVldDogYXBpVmlzdWFsaWQud29ya3NoZWV0LFxuICAgICAgICAgICAgZGFzaGJvYXJkOiBhcGlWaXN1YWxpZC5kYXNoYm9hcmQsXG4gICAgICAgICAgICBzdG9yeWJvYXJkOiBhcGlWaXN1YWxpZC5zdG9yeWJvYXJkLFxuICAgICAgICAgICAgc3RvcnlQb2ludElkOiBhcGlWaXN1YWxpZC5zdG9yeVBvaW50SUQsXG4gICAgICAgICAgICBmbGlwYm9hcmRab25lSWQ6IGFwaVZpc3VhbGlkLmZsaXBib2FyZFpvbmVJRFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gICAgQXBpVG9QcmVzTGF5ZXJDb252ZXJ0ZXIuY29udmVydFZpc3VhbElkVG9Xb3Jrc2hlZXQgPSBmdW5jdGlvbiAoYXBpVmlzdWFsSWQpIHtcbiAgICAgICAgcmV0dXJuIGFwaVZpc3VhbElkLndvcmtzaGVldDtcbiAgICB9O1xuICAgIEFwaVRvUHJlc0xheWVyQ29udmVydGVyLmNvbnZlcnRWaXN1YWxJZFRvRGFzaGJvYXJkID0gZnVuY3Rpb24gKGFwaVZpc3VhbElkKSB7XG4gICAgICAgIHJldHVybiBhcGlWaXN1YWxJZC5kYXNoYm9hcmQgfHwgJyc7XG4gICAgfTtcbiAgICBBcGlUb1ByZXNMYXllckNvbnZlcnRlci5jb252ZXJ0RmlsdGVyVmFsdWVzID0gZnVuY3Rpb24gKGZpbHRlclZhbHVlcykge1xuICAgICAgICBpZiAoZmlsdGVyVmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgLy8gcGxhdGZvcm0gY29kZSBleHBlY3RzIGFuIGVtcHR5IHN0cmluZyBmb3IgY2xlYXJpbmcgZmlsdGVyIHZhbHVlc1xuICAgICAgICAgICAgcmV0dXJuIFsnJ107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpbHRlclZhbHVlcztcbiAgICB9O1xuICAgIEFwaVRvUHJlc0xheWVyQ29udmVydGVyLmNvbnZlcnRGaWx0ZXJUeXBlID0gZnVuY3Rpb24gKGZpbHRlclVwZGF0ZVR5cGUpIHtcbiAgICAgICAgcmV0dXJuIEVudW1NYXBwaW5nc18xLkFwaVRvUHJlc0xheWVyRW51bU1hcHBpbmdzLmZpbHRlclVwZGF0ZVR5cGUuY29udmVydChmaWx0ZXJVcGRhdGVUeXBlKTtcbiAgICB9O1xuICAgIEFwaVRvUHJlc0xheWVyQ29udmVydGVyLkNvbnZlcnROdWxsT3B0aW9uID0gZnVuY3Rpb24gKG51bGxPcHRpb24pIHtcbiAgICAgICAgcmV0dXJuIEVudW1NYXBwaW5nc18xLkFwaVRvUHJlc0xheWVyRW51bU1hcHBpbmdzLm51bGxPcHRpb24uY29udmVydChudWxsT3B0aW9uKTtcbiAgICB9O1xuICAgIEFwaVRvUHJlc0xheWVyQ29udmVydGVyLkNvbnZlcnRGaWx0ZXJEb21haW5UeXBlID0gZnVuY3Rpb24gKGZpbHRlckRvbWFpblR5cGUpIHtcbiAgICAgICAgcmV0dXJuIEVudW1NYXBwaW5nc18xLkFwaVRvUHJlc0xheWVyRW51bU1hcHBpbmdzLmZpbHRlckRvbWFpblR5cGUuY29udmVydChmaWx0ZXJEb21haW5UeXBlKTtcbiAgICB9O1xuICAgIHJldHVybiBBcGlUb1ByZXNMYXllckNvbnZlcnRlcjtcbn0oKSk7XG5leHBvcnRzLkFwaVRvUHJlc0xheWVyQ29udmVydGVyID0gQXBpVG9QcmVzTGF5ZXJDb252ZXJ0ZXI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1BcGlUb1ByZXNMYXllckNvbnZlcnRlci5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWNvcmUvbGliL3NyYy9tYXBwaW5ncy9BcGlUb1ByZXNMYXllckNvbnZlcnRlci5qc1xuICoqIG1vZHVsZSBpZCA9IDI2XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBhcGlfaW50ZXJuYWxfY29udHJhY3RfMSA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3RcIik7XG52YXIgRW51bXNfMSA9IHJlcXVpcmUoXCIuLi8uLi9nZW4tc3JjL3ByZXNsYXllci9FbnVtc1wiKTtcbnZhciBFbnVtTWFwcGluZ3NfMSA9IHJlcXVpcmUoXCIuL0VudW1NYXBwaW5nc1wiKTtcbnZhciBQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlcl8xID0gcmVxdWlyZShcIi4vUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXJcIik7XG52YXIgRmlsdGVyc0NvbnZlcnRlciA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gRmlsdGVyc0NvbnZlcnRlcigpIHtcbiAgICB9XG4gICAgRmlsdGVyc0NvbnZlcnRlci5jb252ZXJ0RmlsdGVyc1ByZXNNb2RlbCA9IGZ1bmN0aW9uIChmaWx0ZXJQbXMpIHtcbiAgICAgICAgdmFyIGZpbHRlcnMgPSBbXTtcbiAgICAgICAgZmlsdGVyUG1zLmZvckVhY2goZnVuY3Rpb24gKGZpbHRlclBtKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKGZpbHRlclBtLmZpbHRlclR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIEVudW1zXzEuRmlsdGVyVHlwZS5GTFRSX0NhdGVnb3JpY2FsOiB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcnMucHVzaChGaWx0ZXJzQ29udmVydGVyLmNvbnZlcnRDYXRlZ29yaWNhbEZpbHRlclByZXNNb2RlbChmaWx0ZXJQbSkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSBFbnVtc18xLkZpbHRlclR5cGUuRkxUUl9RdWFudGl0YXRpdmU6IHtcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVycy5wdXNoKEZpbHRlcnNDb252ZXJ0ZXIuY29udmVydFF1YW50aXRhdGl2ZUZpbHRlclByZXNNb2RlbChmaWx0ZXJQbSkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSBFbnVtc18xLkZpbHRlclR5cGUuRkxUUl9SZWxhdGl2ZURhdGU6IHtcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVycy5wdXNoKEZpbHRlcnNDb252ZXJ0ZXIuY29udmVydFJlbGF0aXZlRGF0ZUZpbHRlclByZXNNb2RlbChmaWx0ZXJQbSkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGZpbHRlcnM7XG4gICAgfTtcbiAgICBGaWx0ZXJzQ29udmVydGVyLmNvbnZlcnRDYXRlZ29yaWNhbEZpbHRlclByZXNNb2RlbCA9IGZ1bmN0aW9uIChmaWx0ZXJQbSkge1xuICAgICAgICB2YXIgc2VsZWN0ZWRWYWx1ZXMgPSBmaWx0ZXJQbS5jYXRlZ29yaWNhbEZpbHRlckluZm8uY2FwdGlvbmVkRmlsdGVyVmFsdWVMaXN0Lm1hcChmdW5jdGlvbiAoZmlsdGVyVmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiBGaWx0ZXJzQ29udmVydGVyLmNvbnZlcnRGaWx0ZXJWYWx1ZVByZXNNb2RlbChmaWx0ZXJWYWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgZmlsdGVyID0ge1xuICAgICAgICAgICAgdmFsdWVzOiBzZWxlY3RlZFZhbHVlcyxcbiAgICAgICAgICAgIGlzRXhjbHVkZTogZmlsdGVyUG0uY2F0ZWdvcmljYWxGaWx0ZXJJbmZvLmV4Y2x1ZGUsXG4gICAgICAgICAgICBmaWx0ZXJUeXBlOiBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWx0ZXJUeXBlLkNhdGVnb3JpY2FsLFxuICAgICAgICAgICAgZmllbGRDYXB0aW9uOiBmaWx0ZXJQbS5maWVsZENhcHRpb24sXG4gICAgICAgICAgICBmaWVsZE5hbWU6IGZpbHRlclBtLmZuLFxuICAgICAgICAgICAgdmlzdWFsSWQ6IFByZXNMYXllclRvQXBpQ29udmVydGVyXzEuUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXIuY29udmVydFZpc3VhbElkKGZpbHRlclBtLnZpc3VhbElkUHJlc01vZGVsKVxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZmlsdGVyO1xuICAgIH07XG4gICAgRmlsdGVyc0NvbnZlcnRlci5jb252ZXJ0UXVhbnRpdGF0aXZlRmlsdGVyUHJlc01vZGVsID0gZnVuY3Rpb24gKGZpbHRlclBtKSB7XG4gICAgICAgIHZhciBtaW5WYWx1ZSA9IEZpbHRlcnNDb252ZXJ0ZXIuY29udmVydEZpbHRlclZhbHVlUHJlc01vZGVsKGZpbHRlclBtLnF1YW50aXRhdGl2ZUZpbHRlckluZm8uY2FwdGlvbmVkUmFuZ2VNaW4pO1xuICAgICAgICB2YXIgbWF4VmFsdWUgPSBGaWx0ZXJzQ29udmVydGVyLmNvbnZlcnRGaWx0ZXJWYWx1ZVByZXNNb2RlbChmaWx0ZXJQbS5xdWFudGl0YXRpdmVGaWx0ZXJJbmZvLmNhcHRpb25lZFJhbmdlTWF4KTtcbiAgICAgICAgdmFyIGZpbHRlciA9IHtcbiAgICAgICAgICAgIGZpbHRlclR5cGU6IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpbHRlclR5cGUuUmFuZ2UsXG4gICAgICAgICAgICBmaWVsZENhcHRpb246IGZpbHRlclBtLmZpZWxkQ2FwdGlvbixcbiAgICAgICAgICAgIGZpZWxkTmFtZTogZmlsdGVyUG0uZm4sXG4gICAgICAgICAgICB2aXN1YWxJZDogUHJlc0xheWVyVG9BcGlDb252ZXJ0ZXJfMS5QcmVzTGF5ZXJUb0FwaUNvbnZlcnRlci5jb252ZXJ0VmlzdWFsSWQoZmlsdGVyUG0udmlzdWFsSWRQcmVzTW9kZWwpLFxuICAgICAgICAgICAgbWluOiBtaW5WYWx1ZSxcbiAgICAgICAgICAgIG1heDogbWF4VmFsdWUsXG4gICAgICAgICAgICBpbmNsdWRlTnVsbFZhbHVlczogRmlsdGVyc0NvbnZlcnRlci5jb252ZXJ0SW5jbHVkZWROdWxsVmFsdWVzKGZpbHRlclBtLnF1YW50aXRhdGl2ZUZpbHRlckluZm8uaW5jbHVkZWQpXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBmaWx0ZXI7XG4gICAgfTtcbiAgICBGaWx0ZXJzQ29udmVydGVyLmNvbnZlcnRSZWxhdGl2ZURhdGVGaWx0ZXJQcmVzTW9kZWwgPSBmdW5jdGlvbiAoZmlsdGVyUG0pIHtcbiAgICAgICAgdmFyIGFuY2hvckRhdGVWYWx1ZSA9IEZpbHRlcnNDb252ZXJ0ZXIuY29udmVydEZpbHRlclZhbHVlUHJlc01vZGVsKGZpbHRlclBtLnJlbGF0aXZlRGF0ZUZpbHRlckluZm8uY2FwdGlvbmVkQW5jaG9yRGF0ZSk7XG4gICAgICAgIHZhciBmaWx0ZXIgPSB7XG4gICAgICAgICAgICBmaWx0ZXJUeXBlOiBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWx0ZXJUeXBlLlJlbGF0aXZlRGF0ZSxcbiAgICAgICAgICAgIGZpZWxkQ2FwdGlvbjogZmlsdGVyUG0uZmllbGRDYXB0aW9uLFxuICAgICAgICAgICAgZmllbGROYW1lOiBmaWx0ZXJQbS5mbixcbiAgICAgICAgICAgIHZpc3VhbElkOiBQcmVzTGF5ZXJUb0FwaUNvbnZlcnRlcl8xLlByZXNMYXllclRvQXBpQ29udmVydGVyLmNvbnZlcnRWaXN1YWxJZChmaWx0ZXJQbS52aXN1YWxJZFByZXNNb2RlbCksXG4gICAgICAgICAgICBhbmNob3JEYXRlOiBhbmNob3JEYXRlVmFsdWUsXG4gICAgICAgICAgICBwZXJpb2RUeXBlOiBFbnVtTWFwcGluZ3NfMS5QcmVzTGF5ZXJUb0FwaUVudW1NYXBwaW5ncy5kYXRlU3RlcFBlcmlvZC5jb252ZXJ0KGZpbHRlclBtLnJlbGF0aXZlRGF0ZUZpbHRlckluZm8uZGF0ZVBlcmlvZFR5cGUpLFxuICAgICAgICAgICAgcmFuZ2VUeXBlOiBFbnVtTWFwcGluZ3NfMS5QcmVzTGF5ZXJUb0FwaUVudW1NYXBwaW5ncy5kYXRlUmFuZ2VUeXBlLmNvbnZlcnQoZmlsdGVyUG0ucmVsYXRpdmVEYXRlRmlsdGVySW5mby5kYXRlUmFuZ2VUeXBlKSxcbiAgICAgICAgICAgIHJhbmdlTjogZmlsdGVyUG0ucmVsYXRpdmVEYXRlRmlsdGVySW5mby5yYW5nZU5cbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGZpbHRlcjtcbiAgICB9O1xuICAgIEZpbHRlcnNDb252ZXJ0ZXIuY29udmVydENhdGVnb3JpY2FsRG9tYWluID0gZnVuY3Rpb24gKGRvbWFpblBtKSB7XG4gICAgICAgIHZhciBkb21haW5WYWx1ZXMgPSBkb21haW5QbS5jYXB0aW9uZWRGaWx0ZXJWYWx1ZUxpc3QubWFwKGZ1bmN0aW9uIChmaWx0ZXJWYWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIEZpbHRlcnNDb252ZXJ0ZXIuY29udmVydEZpbHRlclZhbHVlUHJlc01vZGVsKGZpbHRlclZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB7IHZhbHVlczogZG9tYWluVmFsdWVzIH07XG4gICAgfTtcbiAgICBGaWx0ZXJzQ29udmVydGVyLmNvbnZlcnRRdWFudGl0YXRpdmVEb21haW4gPSBmdW5jdGlvbiAoZG9tYWluUG0pIHtcbiAgICAgICAgdmFyIG1pblZhbHVlID0gRmlsdGVyc0NvbnZlcnRlci5jb252ZXJ0RmlsdGVyVmFsdWVQcmVzTW9kZWwoZG9tYWluUG0uY2FwdGlvbmVkUmFuZ2VNaW4pO1xuICAgICAgICB2YXIgbWF4VmFsdWUgPSBGaWx0ZXJzQ29udmVydGVyLmNvbnZlcnRGaWx0ZXJWYWx1ZVByZXNNb2RlbChkb21haW5QbS5jYXB0aW9uZWRSYW5nZU1heCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBtYXg6IG1heFZhbHVlLFxuICAgICAgICAgICAgbWluOiBtaW5WYWx1ZVxuICAgICAgICB9O1xuICAgIH07XG4gICAgRmlsdGVyc0NvbnZlcnRlci5jb252ZXJ0RmlsdGVyVmFsdWVQcmVzTW9kZWwgPSBmdW5jdGlvbiAoZHZQTSkge1xuICAgICAgICAvKnRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnkgKi9cbiAgICAgICAgdmFyIHZhbHVlO1xuICAgICAgICBzd2l0Y2ggKGR2UE0uZGF0YVR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgRW51bXNfMS5EYXRhVHlwZS5EVF9CT09MRUFOOiB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBCb29sZWFuKGR2UE0uZGF0YVZhbHVlU3RyKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgRW51bXNfMS5EYXRhVHlwZS5EVF9EQVRFOiB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBuZXcgRGF0ZShkdlBNLmRhdGFWYWx1ZVN0cik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEVudW1zXzEuRGF0YVR5cGUuRFRfREFURVRJTUU6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IG5ldyBEYXRlKGR2UE0uZGF0YVZhbHVlU3RyKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgRW51bXNfMS5EYXRhVHlwZS5EVF9JTlRFR0VSOiB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBOdW1iZXIucGFyc2VJbnQoZHZQTS5kYXRhVmFsdWVTdHIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBFbnVtc18xLkRhdGFUeXBlLkRUX1JFQUw6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IE51bWJlci5wYXJzZUZsb2F0KGR2UE0uZGF0YVZhbHVlU3RyKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGRlZmF1bHQgdG8gc3RyaW5nXG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBkdlBNLmRhdGFWYWx1ZVN0cjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgLy8gVE9ETzogbm8gZWFzeSB3YXkgb2YgZ2V0dGluZyBiYWNrIGFsaWFzZWQgdmFsdWUgZnJvbSBwbGF0Zm9ybSwgd2lsbCBuZWVkIHRvIGludmVzdGlnYXRlIGZ1cnRoZXJcbiAgICAgICAgICAgIGFsaWFzZWRWYWx1ZTogJycsXG4gICAgICAgICAgICBmb3JtYXR0ZWRWYWx1ZTogZHZQTS5kYXRhVmFsdWVEaXNwbGF5U3RyaW5nXG4gICAgICAgIH07XG4gICAgfTtcbiAgICBGaWx0ZXJzQ29udmVydGVyLmNvbnZlcnRJbmNsdWRlZE51bGxWYWx1ZXMgPSBmdW5jdGlvbiAoaW5jbHVkZU51bGwpIHtcbiAgICAgICAgcmV0dXJuIChpbmNsdWRlTnVsbCA9PT0gRW51bXNfMS5GaWx0ZXJzUXVhbnRpdGF0aXZlSW5jbHVkZWRWYWx1ZXMuSW5SYW5nZU9yTnVsbCB8fFxuICAgICAgICAgICAgaW5jbHVkZU51bGwgPT09IEVudW1zXzEuRmlsdGVyc1F1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzLkFsbCB8fFxuICAgICAgICAgICAgaW5jbHVkZU51bGwgPT09IEVudW1zXzEuRmlsdGVyc1F1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzLk51bGwpO1xuICAgIH07XG4gICAgcmV0dXJuIEZpbHRlcnNDb252ZXJ0ZXI7XG59KCkpO1xuZXhwb3J0cy5GaWx0ZXJzQ29udmVydGVyID0gRmlsdGVyc0NvbnZlcnRlcjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUZpbHRlcnNDb252ZXJ0ZXIuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1jb3JlL2xpYi9zcmMvbWFwcGluZ3MvRmlsdGVyc0NvbnZlcnRlci5qc1xuICoqIG1vZHVsZSBpZCA9IDI3XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8qKlxuICogU2ltcGxlIHJlZ2lzdHJ5IGNsYXNzIHdoaWNoIGNyZWF0ZXMgYSBtYXBwaW5nIGJhc2VkIG9uIHR3byBrZXlzLlxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBNYXBwaW5nUmVnaXN0cnlcbiAqIEB0ZW1wbGF0ZSBUSW5wdXRFbnVtVHlwZVxuICogQHRlbXBsYXRlIFRPdXRwdXRFbnVtVHlwZVxuICogQHRlbXBsYXRlIFRNYXBwaW5nU3RvcmFnZVR5cGVcbiAqL1xudmFyIE1hcHBpbmdSZWdpc3RyeSA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gTWFwcGluZ1JlZ2lzdHJ5KCkge1xuICAgICAgICB0aGlzLl9yZWdpc3RyeSA9IHt9O1xuICAgIH1cbiAgICBNYXBwaW5nUmVnaXN0cnkucHJvdG90eXBlLmhhcyA9IGZ1bmN0aW9uIChpbnB1dFR5cGUsIG91dHB1dFR5cGUpIHtcbiAgICAgICAgdmFyIGtleSA9IHRoaXMubWFrZUtleShpbnB1dFR5cGUsIG91dHB1dFR5cGUpO1xuICAgICAgICBpZiAoIXRoaXMuX3JlZ2lzdHJ5Lmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuX3JlZ2lzdHJ5W2tleV0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xuICAgIE1hcHBpbmdSZWdpc3RyeS5wcm90b3R5cGUuZ2V0ID0gZnVuY3Rpb24gKGlucHV0VHlwZSwgb3V0cHV0VHlwZSkge1xuICAgICAgICBpZiAoIXRoaXMuaGFzKGlucHV0VHlwZSwgb3V0cHV0VHlwZSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyByZXF1ZXN0ZWQgbWFwcGluZzogJyArIGlucHV0VHlwZSArICcgdG8gJyArIG91dHB1dFR5cGUpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBrZXkgPSB0aGlzLm1ha2VLZXkoaW5wdXRUeXBlLCBvdXRwdXRUeXBlKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlZ2lzdHJ5W2tleV07XG4gICAgfTtcbiAgICBNYXBwaW5nUmVnaXN0cnkucHJvdG90eXBlLmFkZFJlZ2lzdHJhdGlvbiA9IGZ1bmN0aW9uIChpbnB1dFR5cGUsIG91dHB1dFR5cGUsIHN0b3JhZ2VJdGVtKSB7XG4gICAgICAgIHZhciBrZXkgPSB0aGlzLm1ha2VLZXkoaW5wdXRUeXBlLCBvdXRwdXRUeXBlKTtcbiAgICAgICAgLy8gQWRkIHRoaXMgaXRlbVxuICAgICAgICB0aGlzLl9yZWdpc3RyeVtrZXldID0gc3RvcmFnZUl0ZW07XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBDb21iaW5lcyB0aGUgdHdvIGtleXMgaW50byBhIHVuaXF1ZSBzdHJpbmdcbiAgICAgKlxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtUSW5wdXRFbnVtVHlwZX0gaW5wdXRUeXBlXG4gICAgICogQHBhcmFtIHtUT3V0cHV0RW51bVR5cGV9IG91dHB1dFR5cGVcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfVxuICAgICAqIEBtZW1iZXJvZiBNYXBwaW5nUmVnaXN0cnlcbiAgICAgKi9cbiAgICBNYXBwaW5nUmVnaXN0cnkucHJvdG90eXBlLm1ha2VLZXkgPSBmdW5jdGlvbiAoaW5wdXRUeXBlLCBvdXRwdXRUeXBlKSB7XG4gICAgICAgIHZhciBrZXlPYmogPSB7IGlucHV0OiBpbnB1dFR5cGUsIG91dHB1dDogb3V0cHV0VHlwZSB9O1xuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoa2V5T2JqKTtcbiAgICB9O1xuICAgIHJldHVybiBNYXBwaW5nUmVnaXN0cnk7XG59KCkpO1xuZXhwb3J0cy5NYXBwaW5nUmVnaXN0cnkgPSBNYXBwaW5nUmVnaXN0cnk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1NYXBwaW5nUmVnaXN0cnkuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1jb3JlL2xpYi9zcmMvbWFwcGluZ3MvTWFwcGluZ1JlZ2lzdHJ5LmpzXG4gKiogbW9kdWxlIGlkID0gMjhcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIGFwaV9pbnRlcm5hbF9jb250cmFjdF8xID0gcmVxdWlyZShcIkB0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdFwiKTtcbnZhciBFbnVtTWFwcGluZ3NfMSA9IHJlcXVpcmUoXCIuL0VudW1NYXBwaW5nc1wiKTtcbi8qKlxuICogQ29udGFpbnMgbG9naWMgZm9yIGNvbnZlcnRpbmcgUGFyYW1ldGVyIG1vZGVscyBpbnRvIHRoZWlyIGVxdWl2YWxlbnQgQXBpIHZlcnNpb25zXG4gKi9cbnZhciBQYXJhbWV0ZXJzRGF0YUNvbnZlcnRlciA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gUGFyYW1ldGVyc0RhdGFDb252ZXJ0ZXIoKSB7XG4gICAgfVxuICAgIFBhcmFtZXRlcnNEYXRhQ29udmVydGVyLmNvbnZlcnRQYXJhbWV0ZXJMaXN0ID0gZnVuY3Rpb24gKHBhcmFtZXRlcnMpIHtcbiAgICAgICAgcmV0dXJuIHBhcmFtZXRlcnMubWFwKFBhcmFtZXRlcnNEYXRhQ29udmVydGVyLmNvbnZlcnRQYXJhbWV0ZXIpO1xuICAgIH07XG4gICAgLy8gQ29udmVydHMgYSBzaW5nbGUgcGFyYW1ldGVyLlxuICAgIC8vIFJvdWdoIHBvcnQgb2YgaHR0cHM6Ly9vcGVuZ3Jvay9zb3VyY2UveHJlZi9kZXZfbmVzc2llL3dvcmtncm91cC92cWx3ZWIvc2NyaXB0c2hhcnAvc3JjL1VJL0FwaS9BcGlQYXJhbWV0ZXJIYW5kbGVyLmNzIzk1XG4gICAgUGFyYW1ldGVyc0RhdGFDb252ZXJ0ZXIuY29udmVydFBhcmFtZXRlciA9IGZ1bmN0aW9uIChwYXJhbSkge1xuICAgICAgICB2YXIgY3VycmVudFZhbHVlID0gUGFyYW1ldGVyc0RhdGFDb252ZXJ0ZXIuY29udmVydEFsaWFzZWREYXRhVmFsdWUocGFyYW0udmFsdWVBbGlhcywgcGFyYW0uZm9ybWF0dGVkVmFsdWUpO1xuICAgICAgICB2YXIgYWxsb3dhYmxlVmFsdWVzVHlwZSA9IEVudW1NYXBwaW5nc18xLlByZXNMYXllclRvQXBpRW51bU1hcHBpbmdzLnBhcmFtZXRlclR5cGVzRG9tYWluVHlwZS5jb252ZXJ0KHBhcmFtLnBhcmFtZXRlckRvbWFpblR5cGUpO1xuICAgICAgICB2YXIgcmVzdWx0ID0ge1xuICAgICAgICAgICAgbmFtZTogcGFyYW0uZmllbGRDYXB0aW9uLFxuICAgICAgICAgICAgZmllbGROYW1lOiBwYXJhbS5wYXJhbWV0ZXJOYW1lLFxuICAgICAgICAgICAgZGF0YVR5cGU6IEVudW1NYXBwaW5nc18xLlByZXNMYXllclRvQXBpRW51bU1hcHBpbmdzLmRhdGFUeXBlLmNvbnZlcnQocGFyYW0uZGF0YVR5cGUpLFxuICAgICAgICAgICAgY3VycmVudFZhbHVlOiBjdXJyZW50VmFsdWUsXG4gICAgICAgICAgICBhbGxvd2FibGVWYWx1ZXNUeXBlOiBhbGxvd2FibGVWYWx1ZXNUeXBlXG4gICAgICAgIH07XG4gICAgICAgIGlmIChhbGxvd2FibGVWYWx1ZXNUeXBlID09PSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5Eb21haW5SZXN0cmljdGlvblR5cGUuTGlzdCkge1xuICAgICAgICAgICAgdmFyIGFsbG93YWJsZVZhbHVlcyA9IG5ldyBBcnJheSgpO1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXJhbS52YWx1ZXNBbGlhc2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdmFyIGFkdiA9IHBhcmFtLnZhbHVlc0FsaWFzZXNbaV07XG4gICAgICAgICAgICAgICAgdmFyIGZvcm1hdHRlZFZhbHVlID0gcGFyYW0uZm9ybWF0dGVkVmFsdWVzW2ldO1xuICAgICAgICAgICAgICAgIGFsbG93YWJsZVZhbHVlcy5wdXNoKFBhcmFtZXRlcnNEYXRhQ29udmVydGVyLmNvbnZlcnRBbGlhc2VkRGF0YVZhbHVlKGFkdiwgZm9ybWF0dGVkVmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlc3VsdC5hbGxvd2FibGVWYWx1ZXMgPSBhbGxvd2FibGVWYWx1ZXM7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoYWxsb3dhYmxlVmFsdWVzVHlwZSA9PT0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRG9tYWluUmVzdHJpY3Rpb25UeXBlLlJhbmdlKSB7XG4gICAgICAgICAgICByZXN1bHQubWluVmFsdWUgPSBQYXJhbWV0ZXJzRGF0YUNvbnZlcnRlci5tYWtlRGF0YVZhbHVlKHBhcmFtLnZhbHVlTWluLCBwYXJhbS5mb3JtYXR0ZWRNaW4pO1xuICAgICAgICAgICAgcmVzdWx0Lm1heFZhbHVlID0gUGFyYW1ldGVyc0RhdGFDb252ZXJ0ZXIubWFrZURhdGFWYWx1ZShwYXJhbS52YWx1ZU1heCwgcGFyYW0uZm9ybWF0dGVkTWF4KTtcbiAgICAgICAgICAgIHJlc3VsdC5zdGVwU2l6ZSA9IFBhcmFtZXRlcnNEYXRhQ29udmVydGVyLmNvbnZlcnROdW1iZXIocmVzdWx0LmRhdGFUeXBlLCBwYXJhbS52YWx1ZUluYyk7XG4gICAgICAgICAgICByZXN1bHQuZGF0ZVN0ZXBQZXJpb2QgPSBFbnVtTWFwcGluZ3NfMS5QcmVzTGF5ZXJUb0FwaUVudW1NYXBwaW5ncy5kYXRlU3RlcFBlcmlvZC5jb252ZXJ0KHBhcmFtLmRhdGVQZXJpb2RUeXBlLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAvLyBOb3RoaW5nIHRvIGRvIGluIHRoZSBjYXNlIHRoYXQgYWxsIHZhbHVlcyBhcmUgYWxsb3dlZFxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbiAgICBQYXJhbWV0ZXJzRGF0YUNvbnZlcnRlci5jb252ZXJ0TnVtYmVyID0gZnVuY3Rpb24gKGRhdGFUeXBlLCB2YWx1ZSkge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIGlmIChkYXRhVHlwZSA9PT0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGF0YVR5cGUuSW50IHx8IGRhdGFUeXBlID09PSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXRhVHlwZS5EYXRlIHx8IGRhdGFUeXBlID09PSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXRhVHlwZS5EYXRlVGltZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZUludCh2YWx1ZSwgMTApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoZGF0YVR5cGUgPT09IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhdGFUeXBlLkZsb2F0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlRmxvYXQodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfTtcbiAgICAvKnRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnkgKi9cbiAgICBQYXJhbWV0ZXJzRGF0YUNvbnZlcnRlci5tYWtlRGF0YVZhbHVlID0gZnVuY3Rpb24gKHZhbHVlLCBmb3JtYXR0ZWRWYWx1ZSwgYWxpYXMpIHtcbiAgICAgICAgdmFyIHJlc3VsdCA9IHtcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgIGZvcm1hdHRlZFZhbHVlOiBmb3JtYXR0ZWRWYWx1ZSxcbiAgICAgICAgICAgIGFsaWFzZWRWYWx1ZTogYWxpYXMgfHwgZm9ybWF0dGVkVmFsdWVcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICAgIC8qdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueSAqL1xuICAgIFBhcmFtZXRlcnNEYXRhQ29udmVydGVyLmNvbnZlcnRBbGlhc2VkRGF0YVZhbHVlID0gZnVuY3Rpb24gKGFkdiwgZm9ybWF0dGVkVmFsdWUpIHtcbiAgICAgICAgLy8gQWxpYXNlZERhdGFWYWx1ZXMgYXJlIHNlcmlhbGl6ZWQgaW4ga2luZCBvZiBhIHN0cmFuZ2Ugd2F5IGZyb20gdGhlIHBsYXRmb3JtIGNvZGUuIFRoZXkgYXJlIG91dHB1dFxuICAgICAgICAvLyBhcyBhbiBhcnJheSBvZiAyIHZhbHVlcy4gVGhlIGZpcnN0IGlzIHRoZSBhY3R1YWwgdmFsdWUsIHRoZSBzZWNvbmQgaXMgdGhlIGFsaWFzLiBTZWUgQWxpYXNlZERhdGFWYWx1ZVNlcmlhbGl6ZXI6OlRvU2VyaWFsaXplclxuICAgICAgICBpZiAoIWFkdiB8fCAhKGFkdiBpbnN0YW5jZW9mIEFycmF5KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGFsaWFzZWQgZGF0YSB2YWx1ZScpO1xuICAgICAgICB9XG4gICAgICAgIHZhciB2YWx1ZSA9IGFkdlswXTtcbiAgICAgICAgdmFyIGFsaWFzID0gYWR2Lmxlbmd0aCA8IDIgPyB1bmRlZmluZWQgOiBhZHZbMV07XG4gICAgICAgIHJldHVybiBQYXJhbWV0ZXJzRGF0YUNvbnZlcnRlci5tYWtlRGF0YVZhbHVlKHZhbHVlLCBmb3JtYXR0ZWRWYWx1ZSwgYWxpYXMpO1xuICAgIH07XG4gICAgcmV0dXJuIFBhcmFtZXRlcnNEYXRhQ29udmVydGVyO1xufSgpKTtcbmV4cG9ydHMuUGFyYW1ldGVyc0RhdGFDb252ZXJ0ZXIgPSBQYXJhbWV0ZXJzRGF0YUNvbnZlcnRlcjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVBhcmFtZXRlcnNEYXRhQ29udmVydGVyLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogRDovZGV2L2pzLWFwaS9hcGktY29yZS9saWIvc3JjL21hcHBpbmdzL1BhcmFtZXRlcnNEYXRhQ29udmVydGVyLmpzXG4gKiogbW9kdWxlIGlkID0gMjlcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuLyoqXG4gKiBJbXBsZW1lbmF0aW9uIG9mIHRoZSBQcmVzZW50YXRpb25MYXllciBjb250cmFjdCB3aXRoIGEgYml0IG9mIGV4dHJhIGluZm9ybWF0aW9uXG4gKiBhZGRlZCB0byB3b3JrIHdpdGggYWRkLWlucy4gTW9zdCB3b3JrIGlzIGRlbGVnYXRlZCBkb3duIHRvIHRoZSBpbnRlcm9wT2JqZWN0IHdoaWNoXG4gKiBjb21tdW5pY2F0ZXMgZGlyZWN0bHkgd2l0aCB0aGUgYysrIGxheWVyIHZpYSBRV2ViQ2hhbm5lbFxuICpcbiAqIEBjbGFzcyBBZGRJbkFwaVByZXNMYXllckltcGxcbiAqIEBpbXBsZW1lbnRzIHtjb250cmFjdC5QcmVzZW50YXRpb25MYXllcn1cbiAqL1xudmFyIEFkZEluQXBpUHJlc0xheWVySW1wbCA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gQWRkSW5BcGlQcmVzTGF5ZXJJbXBsKF9pbnRlcm9wT2JqZWN0KSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHRoaXMuX2ludGVyb3BPYmplY3QgPSBfaW50ZXJvcE9iamVjdDtcbiAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uSGFuZGxlcnMgPSB7fTtcbiAgICAgICAgaWYgKF9pbnRlcm9wT2JqZWN0ICYmIF9pbnRlcm9wT2JqZWN0Lk9uTm90aWZpY2F0aW9uKSB7XG4gICAgICAgICAgICBfaW50ZXJvcE9iamVjdC5Pbk5vdGlmaWNhdGlvbi5jb25uZWN0KGZ1bmN0aW9uIChub3RpZmljYXRpb24pIHtcbiAgICAgICAgICAgICAgICBfdGhpcy5kaXNwYXRjaE5vdGlmaWNhdGlvbihub3RpZmljYXRpb24pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFkZEluQXBpUHJlc0xheWVySW1wbC5wcm90b3R5cGUsIFwiQWRkSW5JbnN0YW5jZUluZm9cIiwge1xuICAgICAgICAvKipcbiAgICAgICAgICogR2V0cyB0aGUgaW5zdGFuY2UgaW5mbyBmb3IgdGhpcyBwYXJ0aWN1bGFyIGFkZC1pbiBmcm9tIHRoZSBjKysgY29kZVxuICAgICAgICAgKlxuICAgICAgICAgKiBAcmVhZG9ubHlcbiAgICAgICAgICogQHR5cGUge0FkZEluSW5zdGFuY2VQcmVzTW9kZWx9XG4gICAgICAgICAqIEBtZW1iZXJvZiBBZGRJbkFwaVByZXNMYXllckltcGxcbiAgICAgICAgICovXG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ludGVyb3BPYmplY3QuYWRkSW5JbnN0YW5jZUluZm87XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIC8qKlxuICAgICAqIEludm9rZXMgYSBjb21tYW5kIHVzaW5nIHRoZSBwcmVzLWxheWVyIGludGVyb3BcbiAgICAgKlxuICAgICAqIEB0ZW1wbGF0ZSBUIC0gVGhlIGV4cGVjdGVkIHJldHVybiB0eXBlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGNvbW1hbmROYW1lc3BhY2VcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gY29tbWFuZE5hbWVcbiAgICAgKiBAcGFyYW0ge29iamVjdH0gcGFyYW1zXG4gICAgICogQHJldHVybnMge1Byb21pc2U8VD59XG4gICAgICogQG1lbWJlcm9mIEFkZEluQXBpUHJlc0xheWVySW1wbFxuICAgICAqL1xuICAgIEFkZEluQXBpUHJlc0xheWVySW1wbC5wcm90b3R5cGUuaW52b2tlQ29tbWFuZCA9IGZ1bmN0aW9uIChjb21tYW5kTmFtZXNwYWNlLCBjb21tYW5kTmFtZSwgcGFyYW1zKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbW1hbmROYW1lc3BhY2UgPSBjb21tYW5kTmFtZXNwYWNlIHx8ICd0YWJkb2MnO1xuICAgICAgICAgICAgICAgIF90aGlzLl9pbnRlcm9wT2JqZWN0LkV4ZWN1dGVDb21tYW5kKGNvbW1hbmROYW1lc3BhY2UsIGNvbW1hbmROYW1lLCBwYXJhbXMsIGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3BvbnNlLlN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtc2cgPSAnRXhlY3V0ZUNvbW1hbmQgZmFpbGVkLCB3aXRoIHJlc3VsdDonICsgSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UuUmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChuZXcgRXJyb3IobXNnKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlLlJlc3VsdCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICAvLyBUaGlzIGltcGxlbWVudGF0aW9uIHdpbGwgcmVnaXN0cmF0aW9uIGEgc2luZ2xlIGluc3RhbmNlIG9mIGEgbm90aWZpY2F0aW9uIGhhbmRsZXIgd2l0aCB0aGUgTmF0aXZlIEMrKyBvYmplY3QsXG4gICAgLy8gYW5kIGltcGxlbWVudCBtdWx0aS1kaXNwYXRjaCB0byB0aGUgd2ViIG9iamVjdHMgZnJvbSBoLmVyZVxuICAgIEFkZEluQXBpUHJlc0xheWVySW1wbC5wcm90b3R5cGUucmVnaXN0ZXJOb3RpZmljYXRpb25IYW5kbGVyID0gZnVuY3Rpb24gKGV2ZW50SWQsIGhhbmRsZXIpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgaWYgKGV2ZW50SWQgaW4gdGhpcy5fbm90aWZpY2F0aW9uSGFuZGxlcnMpIHtcbiAgICAgICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbkhhbmRsZXJzW2V2ZW50SWRdLnB1c2goaGFuZGxlcik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25IYW5kbGVyc1tldmVudElkXSA9IFtoYW5kbGVyXTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgdGhpcy5faW50ZXJvcE9iamVjdC5SZWdpc3Rlck5vdGlmaWNhdGlvbkhhbmRsZXIoZXZlbnRJZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ1JlZ2lzdGVyTm90aWZpY2F0aW9uSGFuZGxlciBmYWlsZWQ6ICcgKyBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7IHJldHVybiBfdGhpcy5yZW1vdmVOb3RpZmljYXRpb25IYW5kbGVyKGV2ZW50SWQsIGhhbmRsZXIpOyB9O1xuICAgIH07XG4gICAgQWRkSW5BcGlQcmVzTGF5ZXJJbXBsLnByb3RvdHlwZS5yZW1vdmVOb3RpZmljYXRpb25IYW5kbGVyID0gZnVuY3Rpb24gKGV2ZW50SWQsIGhhbmRsZXIpIHtcbiAgICAgICAgdmFyIGhhbmRsZXJMaXN0ID0gdGhpcy5fbm90aWZpY2F0aW9uSGFuZGxlcnNbZXZlbnRJZF07XG4gICAgICAgIGlmICghaGFuZGxlckxpc3QpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZm91bmRJbmRleCA9IGhhbmRsZXJMaXN0LmluZGV4T2YoaGFuZGxlcik7XG4gICAgICAgIGlmIChmb3VuZEluZGV4ID49IDApIHtcbiAgICAgICAgICAgIGhhbmRsZXJMaXN0LnNwbGljZShmb3VuZEluZGV4LCAxKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaGFuZGxlckxpc3QubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5fbm90aWZpY2F0aW9uSGFuZGxlcnNbZXZlbnRJZF07XG4gICAgICAgIH1cbiAgICB9O1xuICAgIEFkZEluQXBpUHJlc0xheWVySW1wbC5wcm90b3R5cGUuZGlzcGF0Y2hOb3RpZmljYXRpb24gPSBmdW5jdGlvbiAobm90aWZpY2F0aW9uKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdyZWNlaXZlZCBub3RpZmljYXRpb246ICcgKyBKU09OLnN0cmluZ2lmeShub3RpZmljYXRpb24pKTtcbiAgICAgICAgdmFyIGV2ZW50SWQgPSBub3RpZmljYXRpb24uZXZlbnRJZDtcbiAgICAgICAgdmFyIHByZXNNb2RlbCA9IG5vdGlmaWNhdGlvbi5wcmVzTW9kZWw7XG4gICAgICAgIGlmIChldmVudElkIGluIHRoaXMuX25vdGlmaWNhdGlvbkhhbmRsZXJzKSB7XG4gICAgICAgICAgICB2YXIgaGFuZGxlcnMgPSB0aGlzLl9ub3RpZmljYXRpb25IYW5kbGVyc1tldmVudElkXTtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSBoYW5kbGVycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgICAgIGhhbmRsZXJzW2ldKHByZXNNb2RlbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiBBZGRJbkFwaVByZXNMYXllckltcGw7XG59KCkpO1xuZXhwb3J0cy5BZGRJbkFwaVByZXNMYXllckltcGwgPSBBZGRJbkFwaVByZXNMYXllckltcGw7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1BZGRJbkFwaVByZXNMYXllckltcGwuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiAuLi9saWIvQWRkSW5BcGlQcmVzTGF5ZXJJbXBsLmpzXG4gKiogbW9kdWxlIGlkID0gMzBcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuLyoqXG4gKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgSW50ZXJuYWxBcGlEaXNwYXRjaGVyIGZvciBkZXNrdG9wLiBTaW5jZSB0aGlzIHdpbGwgcnVuIGluIHRoZSBzYW1lXG4gKiBmcmFtZSBhcyB0aGUgQXBpRXZlbnRIYW5kbGVyLCB0aGlzIGNsYXNzIG1vc3RseSBqdXN0IG1hcnNoYWxscyBkb3duIHRvIHRoYXQgaW1wbGVtZW50YXRpb25cbiAqXG4gKiBAZXhwb3J0XG4gKiBAY2xhc3MgRGVza3RvcEFwaURpc3BhdGNoZXJcbiAqIEBpbXBsZW1lbnRzIHtJbnRlcm5hbEFwaURpc3BhdGNoZXJ9XG4gKi9cbnZhciBEZXNrdG9wQXBpRGlzcGF0Y2hlciA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gRGVza3RvcEFwaURpc3BhdGNoZXIoX2FwaUV2ZW50SGFuZGxlcikge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB0aGlzLl9hcGlFdmVudEhhbmRsZXIgPSBfYXBpRXZlbnRIYW5kbGVyO1xuICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25IYW5kbGVycyA9IFtdO1xuICAgICAgICB0aGlzLl9hcGlFdmVudEhhbmRsZXIuc2V0RXZlbnRIYW5kbGVyKGZ1bmN0aW9uIChub3RpZmljYXRpb25JZCwgbW9kZWwpIHtcbiAgICAgICAgICAgIF90aGlzLl9ub3RpZmljYXRpb25IYW5kbGVycy5mb3JFYWNoKGZ1bmN0aW9uIChoYW5kbGVyKSB7IHJldHVybiBoYW5kbGVyKHtcbiAgICAgICAgICAgICAgICBub3RpZmljYXRpb25JZDogbm90aWZpY2F0aW9uSWQsXG4gICAgICAgICAgICAgICAgZGF0YTogbW9kZWxcbiAgICAgICAgICAgIH0pOyB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIERlc2t0b3BBcGlEaXNwYXRjaGVyLnByb3RvdHlwZS5zZXRWZXJzaW9uTnVtYmVyID0gZnVuY3Rpb24gKHZlcnNpb25OdW1iZXIpIHtcbiAgICAgICAgdGhpcy5fYXBpRXZlbnRIYW5kbGVyLnNldFZlcnNpb25OdW1iZXIodmVyc2lvbk51bWJlcik7XG4gICAgfTtcbiAgICBEZXNrdG9wQXBpRGlzcGF0Y2hlci5wcm90b3R5cGUuZXhlY3V0ZSA9IGZ1bmN0aW9uICh2ZXJiLCBwYXJhbWV0ZXJzKSB7XG4gICAgICAgIC8vIEp1c3QgcGFzcyB0aGlzIHJpZ2h0IHRocm91Z2ggdG8gdGhlIEFwaUV2ZW50SGFuZGxlclxuICAgICAgICByZXR1cm4gdGhpcy5fYXBpRXZlbnRIYW5kbGVyLmV4ZWN1dGUodmVyYiwgcGFyYW1ldGVycyk7XG4gICAgfTtcbiAgICBEZXNrdG9wQXBpRGlzcGF0Y2hlci5wcm90b3R5cGUucmVnaXN0ZXJOb3RpZmljYXRpb25IYW5kbGVyID0gZnVuY3Rpb24gKGhhbmRsZXIpIHtcbiAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uSGFuZGxlcnMucHVzaChoYW5kbGVyKTtcbiAgICB9O1xuICAgIERlc2t0b3BBcGlEaXNwYXRjaGVyLnByb3RvdHlwZS51bnJlZ2lzdGVyTm90aWZpY2F0aW9uSGFuZGxlciA9IGZ1bmN0aW9uIChoYW5kbGVyKSB7XG4gICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbkhhbmRsZXJzID0gdGhpcy5fbm90aWZpY2F0aW9uSGFuZGxlcnMuZmlsdGVyKGZ1bmN0aW9uIChoKSB7IHJldHVybiBoICE9PSBoYW5kbGVyOyB9KTtcbiAgICB9O1xuICAgIHJldHVybiBEZXNrdG9wQXBpRGlzcGF0Y2hlcjtcbn0oKSk7XG5leHBvcnRzLkRlc2t0b3BBcGlEaXNwYXRjaGVyID0gRGVza3RvcEFwaURpc3BhdGNoZXI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1EZXNrdG9wQXBpRGlzcGF0Y2hlci5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4uL2xpYi9EZXNrdG9wQXBpRGlzcGF0Y2hlci5qc1xuICoqIG1vZHVsZSBpZCA9IDMxXG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnJlcXVpcmUoXCIuL3R5cGVzL1F0VHlwZXNcIik7XG52YXIgcXdlYmNoYW5uZWxfMSA9IHJlcXVpcmUoXCJxd2ViY2hhbm5lbFwiKTtcbi8qKlxuICogSW5pdGlhbGl6ZXMgdGhlIFFXZWJDaGFubmVsIGNvbnRyYWN0IGFuZCByZXR1cm5zIHRoZSBwcmVzIGxheWVyIGludGVyb3Agb2JqZWN0XG4gKlxuICogQHJldHVybnMge1Byb21pc2U8QWRkSW5BcGlQcmVzTGF5ZXJJbnRlcm9wT2JqZWN0Pn1cbiAqL1xuZnVuY3Rpb24gaW5pdGlhbGl6ZVdlYkNoYW5uZWxQcmVzTGF5ZXIoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZVxuICAgICAgICAgICAgbmV3IHF3ZWJjaGFubmVsXzEuUVdlYkNoYW5uZWwocXQud2ViQ2hhbm5lbFRyYW5zcG9ydCwgZnVuY3Rpb24gKGNoYW5uZWwpIHtcbiAgICAgICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAgICAgICAgICAgICB2YXIgYWRkSW5QcmVzTGF5ZXIgPSBjaGFubmVsLm9iamVjdHNbJ2FkZEluUHJlc0xheWVyJ107XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShhZGRJblByZXNMYXllcik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5leHBvcnRzLmluaXRpYWxpemVXZWJDaGFubmVsUHJlc0xheWVyID0gaW5pdGlhbGl6ZVdlYkNoYW5uZWxQcmVzTGF5ZXI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1RdFdlYkNoYW5uZWxJbXBsLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi4vbGliL1F0V2ViQ2hhbm5lbEltcGwuanNcbiAqKiBtb2R1bGUgaWQgPSAzMlxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiLy8jIHNvdXJjZU1hcHBpbmdVUkw9UXRUeXBlcy5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4uL2xpYi90eXBlcy9RdFR5cGVzLmpzXG4gKiogbW9kdWxlIGlkID0gMzNcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4qKlxuKiogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBRdCBDb21wYW55IEx0ZC5cbioqIENvcHlyaWdodCAoQykgMjAxNCBLbGFyw6RsdmRhbGVucyBEYXRha29uc3VsdCBBQiwgYSBLREFCIEdyb3VwIGNvbXBhbnksIGluZm9Aa2RhYi5jb20sIGF1dGhvciBNaWxpYW4gV29sZmYgPG1pbGlhbi53b2xmZkBrZGFiLmNvbT5cbioqIENvbnRhY3Q6IGh0dHA6Ly93d3cucXQuaW8vbGljZW5zaW5nL1xuKipcbioqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBRdFdlYkNoYW5uZWwgbW9kdWxlIG9mIHRoZSBRdCBUb29sa2l0LlxuKipcbioqICRRVF9CRUdJTl9MSUNFTlNFOkxHUEwyMSRcbioqIENvbW1lcmNpYWwgTGljZW5zZSBVc2FnZVxuKiogTGljZW5zZWVzIGhvbGRpbmcgdmFsaWQgY29tbWVyY2lhbCBRdCBsaWNlbnNlcyBtYXkgdXNlIHRoaXMgZmlsZSBpblxuKiogYWNjb3JkYW5jZSB3aXRoIHRoZSBjb21tZXJjaWFsIGxpY2Vuc2UgYWdyZWVtZW50IHByb3ZpZGVkIHdpdGggdGhlXG4qKiBTb2Z0d2FyZSBvciwgYWx0ZXJuYXRpdmVseSwgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSB0ZXJtcyBjb250YWluZWQgaW5cbioqIGEgd3JpdHRlbiBhZ3JlZW1lbnQgYmV0d2VlbiB5b3UgYW5kIFRoZSBRdCBDb21wYW55LiBGb3IgbGljZW5zaW5nIHRlcm1zXG4qKiBhbmQgY29uZGl0aW9ucyBzZWUgaHR0cDovL3d3dy5xdC5pby90ZXJtcy1jb25kaXRpb25zLiBGb3IgZnVydGhlclxuKiogaW5mb3JtYXRpb24gdXNlIHRoZSBjb250YWN0IGZvcm0gYXQgaHR0cDovL3d3dy5xdC5pby9jb250YWN0LXVzLlxuKipcbioqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBVc2FnZVxuKiogQWx0ZXJuYXRpdmVseSwgdGhpcyBmaWxlIG1heSBiZSB1c2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlclxuKiogR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIuMSBvciB2ZXJzaW9uIDMgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlXG4qKiBTb2Z0d2FyZSBGb3VuZGF0aW9uIGFuZCBhcHBlYXJpbmcgaW4gdGhlIGZpbGUgTElDRU5TRS5MR1BMdjIxIGFuZFxuKiogTElDRU5TRS5MR1BMdjMgaW5jbHVkZWQgaW4gdGhlIHBhY2thZ2luZyBvZiB0aGlzIGZpbGUuIFBsZWFzZSByZXZpZXcgdGhlXG4qKiBmb2xsb3dpbmcgaW5mb3JtYXRpb24gdG8gZW5zdXJlIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbioqIHJlcXVpcmVtZW50cyB3aWxsIGJlIG1ldDogaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9sZ3BsLmh0bWwgYW5kXG4qKiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvb2xkLWxpY2Vuc2VzL2xncGwtMi4xLmh0bWwuXG4qKlxuKiogQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiwgVGhlIFF0IENvbXBhbnkgZ2l2ZXMgeW91IGNlcnRhaW4gYWRkaXRpb25hbFxuKiogcmlnaHRzLiBUaGVzZSByaWdodHMgYXJlIGRlc2NyaWJlZCBpbiBUaGUgUXQgQ29tcGFueSBMR1BMIEV4Y2VwdGlvblxuKiogdmVyc2lvbiAxLjEsIGluY2x1ZGVkIGluIHRoZSBmaWxlIExHUExfRVhDRVBUSU9OLnR4dCBpbiB0aGlzIHBhY2thZ2UuXG4qKlxuKiogJFFUX0VORF9MSUNFTlNFJFxuKipcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblwidXNlIHN0cmljdFwiO1xuXG52YXIgUVdlYkNoYW5uZWxNZXNzYWdlVHlwZXMgPSB7XG4gICAgc2lnbmFsOiAxLFxuICAgIHByb3BlcnR5VXBkYXRlOiAyLFxuICAgIGluaXQ6IDMsXG4gICAgaWRsZTogNCxcbiAgICBkZWJ1ZzogNSxcbiAgICBpbnZva2VNZXRob2Q6IDYsXG4gICAgY29ubmVjdFRvU2lnbmFsOiA3LFxuICAgIGRpc2Nvbm5lY3RGcm9tU2lnbmFsOiA4LFxuICAgIHNldFByb3BlcnR5OiA5LFxuICAgIHJlc3BvbnNlOiAxMCxcbn07XG5cbnZhciBRV2ViQ2hhbm5lbCA9IGZ1bmN0aW9uKHRyYW5zcG9ydCwgaW5pdENhbGxiYWNrKVxue1xuICAgIGlmICh0eXBlb2YgdHJhbnNwb3J0ICE9PSBcIm9iamVjdFwiIHx8IHR5cGVvZiB0cmFuc3BvcnQuc2VuZCAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXCJUaGUgUVdlYkNoYW5uZWwgZXhwZWN0cyBhIHRyYW5zcG9ydCBvYmplY3Qgd2l0aCBhIHNlbmQgZnVuY3Rpb24gYW5kIG9ubWVzc2FnZSBjYWxsYmFjayBwcm9wZXJ0eS5cIiArXG4gICAgICAgICAgICAgICAgICAgICAgXCIgR2l2ZW4gaXM6IHRyYW5zcG9ydDogXCIgKyB0eXBlb2YodHJhbnNwb3J0KSArIFwiLCB0cmFuc3BvcnQuc2VuZDogXCIgKyB0eXBlb2YodHJhbnNwb3J0LnNlbmQpKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhciBjaGFubmVsID0gdGhpcztcbiAgICB0aGlzLnRyYW5zcG9ydCA9IHRyYW5zcG9ydDtcblxuICAgIHRoaXMuc2VuZCA9IGZ1bmN0aW9uKGRhdGEpXG4gICAge1xuICAgICAgICBpZiAodHlwZW9mKGRhdGEpICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICBkYXRhID0gSlNPTi5zdHJpbmdpZnkoZGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgY2hhbm5lbC50cmFuc3BvcnQuc2VuZChkYXRhKTtcbiAgICB9XG5cbiAgICB0aGlzLnRyYW5zcG9ydC5vbm1lc3NhZ2UgPSBmdW5jdGlvbihtZXNzYWdlKVxuICAgIHtcbiAgICAgICAgdmFyIGRhdGEgPSBtZXNzYWdlLmRhdGE7XG4gICAgICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgZGF0YSA9IEpTT04ucGFyc2UoZGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChkYXRhLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgUVdlYkNoYW5uZWxNZXNzYWdlVHlwZXMuc2lnbmFsOlxuICAgICAgICAgICAgICAgIGNoYW5uZWwuaGFuZGxlU2lnbmFsKGRhdGEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBRV2ViQ2hhbm5lbE1lc3NhZ2VUeXBlcy5yZXNwb25zZTpcbiAgICAgICAgICAgICAgICBjaGFubmVsLmhhbmRsZVJlc3BvbnNlKGRhdGEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBRV2ViQ2hhbm5lbE1lc3NhZ2VUeXBlcy5wcm9wZXJ0eVVwZGF0ZTpcbiAgICAgICAgICAgICAgICBjaGFubmVsLmhhbmRsZVByb3BlcnR5VXBkYXRlKGRhdGEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiaW52YWxpZCBtZXNzYWdlIHJlY2VpdmVkOlwiLCBtZXNzYWdlLmRhdGEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5leGVjQ2FsbGJhY2tzID0ge307XG4gICAgdGhpcy5leGVjSWQgPSAwO1xuICAgIHRoaXMuZXhlYyA9IGZ1bmN0aW9uKGRhdGEsIGNhbGxiYWNrKVxuICAgIHtcbiAgICAgICAgaWYgKCFjYWxsYmFjaykge1xuICAgICAgICAgICAgLy8gaWYgbm8gY2FsbGJhY2sgaXMgZ2l2ZW4sIHNlbmQgZGlyZWN0bHlcbiAgICAgICAgICAgIGNoYW5uZWwuc2VuZChkYXRhKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhbm5lbC5leGVjSWQgPT09IE51bWJlci5NQVhfVkFMVUUpIHtcbiAgICAgICAgICAgIC8vIHdyYXBcbiAgICAgICAgICAgIGNoYW5uZWwuZXhlY0lkID0gTnVtYmVyLk1JTl9WQUxVRTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5oYXNPd25Qcm9wZXJ0eShcImlkXCIpKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiQ2Fubm90IGV4ZWMgbWVzc2FnZSB3aXRoIHByb3BlcnR5IGlkOiBcIiArIEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBkYXRhLmlkID0gY2hhbm5lbC5leGVjSWQrKztcbiAgICAgICAgY2hhbm5lbC5leGVjQ2FsbGJhY2tzW2RhdGEuaWRdID0gY2FsbGJhY2s7XG4gICAgICAgIGNoYW5uZWwuc2VuZChkYXRhKTtcbiAgICB9O1xuXG4gICAgdGhpcy5vYmplY3RzID0ge307XG5cbiAgICB0aGlzLmhhbmRsZVNpZ25hbCA9IGZ1bmN0aW9uKG1lc3NhZ2UpXG4gICAge1xuICAgICAgICB2YXIgb2JqZWN0ID0gY2hhbm5lbC5vYmplY3RzW21lc3NhZ2Uub2JqZWN0XTtcbiAgICAgICAgaWYgKG9iamVjdCkge1xuICAgICAgICAgICAgb2JqZWN0LnNpZ25hbEVtaXR0ZWQobWVzc2FnZS5zaWduYWwsIG1lc3NhZ2UuYXJncyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXCJVbmhhbmRsZWQgc2lnbmFsOiBcIiArIG1lc3NhZ2Uub2JqZWN0ICsgXCI6OlwiICsgbWVzc2FnZS5zaWduYWwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5oYW5kbGVSZXNwb25zZSA9IGZ1bmN0aW9uKG1lc3NhZ2UpXG4gICAge1xuICAgICAgICBpZiAoIW1lc3NhZ2UuaGFzT3duUHJvcGVydHkoXCJpZFwiKSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIkludmFsaWQgcmVzcG9uc2UgbWVzc2FnZSByZWNlaXZlZDogXCIsIEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UpKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjaGFubmVsLmV4ZWNDYWxsYmFja3NbbWVzc2FnZS5pZF0obWVzc2FnZS5kYXRhKTtcbiAgICAgICAgZGVsZXRlIGNoYW5uZWwuZXhlY0NhbGxiYWNrc1ttZXNzYWdlLmlkXTtcbiAgICB9XG5cbiAgICB0aGlzLmhhbmRsZVByb3BlcnR5VXBkYXRlID0gZnVuY3Rpb24obWVzc2FnZSlcbiAgICB7XG4gICAgICAgIGZvciAodmFyIGkgaW4gbWVzc2FnZS5kYXRhKSB7XG4gICAgICAgICAgICB2YXIgZGF0YSA9IG1lc3NhZ2UuZGF0YVtpXTtcbiAgICAgICAgICAgIHZhciBvYmplY3QgPSBjaGFubmVsLm9iamVjdHNbZGF0YS5vYmplY3RdO1xuICAgICAgICAgICAgaWYgKG9iamVjdCkge1xuICAgICAgICAgICAgICAgIG9iamVjdC5wcm9wZXJ0eVVwZGF0ZShkYXRhLnNpZ25hbHMsIGRhdGEucHJvcGVydGllcyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIlVuaGFuZGxlZCBwcm9wZXJ0eSB1cGRhdGU6IFwiICsgZGF0YS5vYmplY3QgKyBcIjo6XCIgKyBkYXRhLnNpZ25hbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY2hhbm5lbC5leGVjKHt0eXBlOiBRV2ViQ2hhbm5lbE1lc3NhZ2VUeXBlcy5pZGxlfSk7XG4gICAgfVxuXG4gICAgdGhpcy5kZWJ1ZyA9IGZ1bmN0aW9uKG1lc3NhZ2UpXG4gICAge1xuICAgICAgICBjaGFubmVsLnNlbmQoe3R5cGU6IFFXZWJDaGFubmVsTWVzc2FnZVR5cGVzLmRlYnVnLCBkYXRhOiBtZXNzYWdlfSk7XG4gICAgfTtcblxuICAgIGNoYW5uZWwuZXhlYyh7dHlwZTogUVdlYkNoYW5uZWxNZXNzYWdlVHlwZXMuaW5pdH0sIGZ1bmN0aW9uKGRhdGEpIHtcbiAgICAgICAgZm9yICh2YXIgb2JqZWN0TmFtZSBpbiBkYXRhKSB7XG4gICAgICAgICAgICB2YXIgb2JqZWN0ID0gbmV3IFFPYmplY3Qob2JqZWN0TmFtZSwgZGF0YVtvYmplY3ROYW1lXSwgY2hhbm5lbCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gbm93IHVud3JhcCBwcm9wZXJ0aWVzLCB3aGljaCBtaWdodCByZWZlcmVuY2Ugb3RoZXIgcmVnaXN0ZXJlZCBvYmplY3RzXG4gICAgICAgIGZvciAodmFyIG9iamVjdE5hbWUgaW4gY2hhbm5lbC5vYmplY3RzKSB7XG4gICAgICAgICAgICBjaGFubmVsLm9iamVjdHNbb2JqZWN0TmFtZV0udW53cmFwUHJvcGVydGllcygpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbml0Q2FsbGJhY2spIHtcbiAgICAgICAgICAgIGluaXRDYWxsYmFjayhjaGFubmVsKTtcbiAgICAgICAgfVxuICAgICAgICBjaGFubmVsLmV4ZWMoe3R5cGU6IFFXZWJDaGFubmVsTWVzc2FnZVR5cGVzLmlkbGV9KTtcbiAgICB9KTtcbn07XG5cbmZ1bmN0aW9uIFFPYmplY3QobmFtZSwgZGF0YSwgd2ViQ2hhbm5lbClcbntcbiAgICB0aGlzLl9faWRfXyA9IG5hbWU7XG4gICAgd2ViQ2hhbm5lbC5vYmplY3RzW25hbWVdID0gdGhpcztcblxuICAgIC8vIExpc3Qgb2YgY2FsbGJhY2tzIHRoYXQgZ2V0IGludm9rZWQgdXBvbiBzaWduYWwgZW1pc3Npb25cbiAgICB0aGlzLl9fb2JqZWN0U2lnbmFsc19fID0ge307XG5cbiAgICAvLyBDYWNoZSBvZiBhbGwgcHJvcGVydGllcywgdXBkYXRlZCB3aGVuIGEgbm90aWZ5IHNpZ25hbCBpcyBlbWl0dGVkXG4gICAgdGhpcy5fX3Byb3BlcnR5Q2FjaGVfXyA9IHt9O1xuXG4gICAgdmFyIG9iamVjdCA9IHRoaXM7XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICB0aGlzLnVud3JhcFFPYmplY3QgPSBmdW5jdGlvbihyZXNwb25zZSlcbiAgICB7XG4gICAgICAgIGlmIChyZXNwb25zZSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAvLyBzdXBwb3J0IGxpc3Qgb2Ygb2JqZWN0c1xuICAgICAgICAgICAgdmFyIHJldCA9IG5ldyBBcnJheShyZXNwb25zZS5sZW5ndGgpO1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXNwb25zZS5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgICAgIHJldFtpXSA9IG9iamVjdC51bndyYXBRT2JqZWN0KHJlc3BvbnNlW2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFyZXNwb25zZVxuICAgICAgICAgICAgfHwgIXJlc3BvbnNlW1wiX19RT2JqZWN0Kl9fXCJdXG4gICAgICAgICAgICB8fCByZXNwb25zZVtcImlkXCJdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBvYmplY3RJZCA9IHJlc3BvbnNlLmlkO1xuICAgICAgICBpZiAod2ViQ2hhbm5lbC5vYmplY3RzW29iamVjdElkXSlcbiAgICAgICAgICAgIHJldHVybiB3ZWJDaGFubmVsLm9iamVjdHNbb2JqZWN0SWRdO1xuXG4gICAgICAgIGlmICghcmVzcG9uc2UuZGF0YSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIkNhbm5vdCB1bndyYXAgdW5rbm93biBRT2JqZWN0IFwiICsgb2JqZWN0SWQgKyBcIiB3aXRob3V0IGRhdGEuXCIpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHFPYmplY3QgPSBuZXcgUU9iamVjdCggb2JqZWN0SWQsIHJlc3BvbnNlLmRhdGEsIHdlYkNoYW5uZWwgKTtcbiAgICAgICAgcU9iamVjdC5kZXN0cm95ZWQuY29ubmVjdChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGlmICh3ZWJDaGFubmVsLm9iamVjdHNbb2JqZWN0SWRdID09PSBxT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHdlYkNoYW5uZWwub2JqZWN0c1tvYmplY3RJZF07XG4gICAgICAgICAgICAgICAgLy8gcmVzZXQgdGhlIG5vdyBkZWxldGVkIFFPYmplY3QgdG8gYW4gZW1wdHkge30gb2JqZWN0XG4gICAgICAgICAgICAgICAgLy8ganVzdCBhc3NpZ25pbmcge30gdGhvdWdoIHdvdWxkIG5vdCBoYXZlIHRoZSBkZXNpcmVkIGVmZmVjdCwgYnV0IHRoZVxuICAgICAgICAgICAgICAgIC8vIGJlbG93IGFsc28gZW5zdXJlcyBhbGwgZXh0ZXJuYWwgcmVmZXJlbmNlcyB3aWxsIHNlZSB0aGUgZW1wdHkgbWFwXG4gICAgICAgICAgICAgICAgLy8gTk9URTogdGhpcyBkZXRvdXIgaXMgbmVjZXNzYXJ5IHRvIHdvcmthcm91bmQgUVRCVUctNDAwMjFcbiAgICAgICAgICAgICAgICB2YXIgcHJvcGVydHlOYW1lcyA9IFtdO1xuICAgICAgICAgICAgICAgIGZvciAodmFyIHByb3BlcnR5TmFtZSBpbiBxT2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZXMucHVzaChwcm9wZXJ0eU5hbWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3IgKHZhciBpZHggaW4gcHJvcGVydHlOYW1lcykge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgcU9iamVjdFtwcm9wZXJ0eU5hbWVzW2lkeF1dO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vIGhlcmUgd2UgYXJlIGFscmVhZHkgaW5pdGlhbGl6ZWQsIGFuZCB0aHVzIG11c3QgZGlyZWN0bHkgdW53cmFwIHRoZSBwcm9wZXJ0aWVzXG4gICAgICAgIHFPYmplY3QudW53cmFwUHJvcGVydGllcygpO1xuICAgICAgICByZXR1cm4gcU9iamVjdDtcbiAgICB9XG5cbiAgICB0aGlzLnVud3JhcFByb3BlcnRpZXMgPSBmdW5jdGlvbigpXG4gICAge1xuICAgICAgICBmb3IgKHZhciBwcm9wZXJ0eUlkeCBpbiBvYmplY3QuX19wcm9wZXJ0eUNhY2hlX18pIHtcbiAgICAgICAgICAgIG9iamVjdC5fX3Byb3BlcnR5Q2FjaGVfX1twcm9wZXJ0eUlkeF0gPSBvYmplY3QudW53cmFwUU9iamVjdChvYmplY3QuX19wcm9wZXJ0eUNhY2hlX19bcHJvcGVydHlJZHhdKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFkZFNpZ25hbChzaWduYWxEYXRhLCBpc1Byb3BlcnR5Tm90aWZ5U2lnbmFsKVxuICAgIHtcbiAgICAgICAgdmFyIHNpZ25hbE5hbWUgPSBzaWduYWxEYXRhWzBdO1xuICAgICAgICB2YXIgc2lnbmFsSW5kZXggPSBzaWduYWxEYXRhWzFdO1xuICAgICAgICBvYmplY3Rbc2lnbmFsTmFtZV0gPSB7XG4gICAgICAgICAgICBjb25uZWN0OiBmdW5jdGlvbihjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YoY2FsbGJhY2spICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIkJhZCBjYWxsYmFjayBnaXZlbiB0byBjb25uZWN0IHRvIHNpZ25hbCBcIiArIHNpZ25hbE5hbWUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgb2JqZWN0Ll9fb2JqZWN0U2lnbmFsc19fW3NpZ25hbEluZGV4XSA9IG9iamVjdC5fX29iamVjdFNpZ25hbHNfX1tzaWduYWxJbmRleF0gfHwgW107XG4gICAgICAgICAgICAgICAgb2JqZWN0Ll9fb2JqZWN0U2lnbmFsc19fW3NpZ25hbEluZGV4XS5wdXNoKGNhbGxiYWNrKTtcblxuICAgICAgICAgICAgICAgIGlmICghaXNQcm9wZXJ0eU5vdGlmeVNpZ25hbCAmJiBzaWduYWxOYW1lICE9PSBcImRlc3Ryb3llZFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIG9ubHkgcmVxdWlyZWQgZm9yIFwicHVyZVwiIHNpZ25hbHMsIGhhbmRsZWQgc2VwYXJhdGVseSBmb3IgcHJvcGVydGllcyBpbiBwcm9wZXJ0eVVwZGF0ZVxuICAgICAgICAgICAgICAgICAgICAvLyBhbHNvIG5vdGUgdGhhdCB3ZSBhbHdheXMgZ2V0IG5vdGlmaWVkIGFib3V0IHRoZSBkZXN0cm95ZWQgc2lnbmFsXG4gICAgICAgICAgICAgICAgICAgIHdlYkNoYW5uZWwuZXhlYyh7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBRV2ViQ2hhbm5lbE1lc3NhZ2VUeXBlcy5jb25uZWN0VG9TaWduYWwsXG4gICAgICAgICAgICAgICAgICAgICAgICBvYmplY3Q6IG9iamVjdC5fX2lkX18sXG4gICAgICAgICAgICAgICAgICAgICAgICBzaWduYWw6IHNpZ25hbEluZGV4XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkaXNjb25uZWN0OiBmdW5jdGlvbihjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YoY2FsbGJhY2spICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIkJhZCBjYWxsYmFjayBnaXZlbiB0byBkaXNjb25uZWN0IGZyb20gc2lnbmFsIFwiICsgc2lnbmFsTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb2JqZWN0Ll9fb2JqZWN0U2lnbmFsc19fW3NpZ25hbEluZGV4XSA9IG9iamVjdC5fX29iamVjdFNpZ25hbHNfX1tzaWduYWxJbmRleF0gfHwgW107XG4gICAgICAgICAgICAgICAgdmFyIGlkeCA9IG9iamVjdC5fX29iamVjdFNpZ25hbHNfX1tzaWduYWxJbmRleF0uaW5kZXhPZihjYWxsYmFjayk7XG4gICAgICAgICAgICAgICAgaWYgKGlkeCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIkNhbm5vdCBmaW5kIGNvbm5lY3Rpb24gb2Ygc2lnbmFsIFwiICsgc2lnbmFsTmFtZSArIFwiIHRvIFwiICsgY2FsbGJhY2submFtZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb2JqZWN0Ll9fb2JqZWN0U2lnbmFsc19fW3NpZ25hbEluZGV4XS5zcGxpY2UoaWR4LCAxKTtcbiAgICAgICAgICAgICAgICBpZiAoIWlzUHJvcGVydHlOb3RpZnlTaWduYWwgJiYgb2JqZWN0Ll9fb2JqZWN0U2lnbmFsc19fW3NpZ25hbEluZGV4XS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gb25seSByZXF1aXJlZCBmb3IgXCJwdXJlXCIgc2lnbmFscywgaGFuZGxlZCBzZXBhcmF0ZWx5IGZvciBwcm9wZXJ0aWVzIGluIHByb3BlcnR5VXBkYXRlXG4gICAgICAgICAgICAgICAgICAgIHdlYkNoYW5uZWwuZXhlYyh7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBRV2ViQ2hhbm5lbE1lc3NhZ2VUeXBlcy5kaXNjb25uZWN0RnJvbVNpZ25hbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdDogb2JqZWN0Ll9faWRfXyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hbDogc2lnbmFsSW5kZXhcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEludm9rZXMgYWxsIGNhbGxiYWNrcyBmb3IgdGhlIGdpdmVuIHNpZ25hbG5hbWUuIEFsc28gd29ya3MgZm9yIHByb3BlcnR5IG5vdGlmeSBjYWxsYmFja3MuXG4gICAgICovXG4gICAgZnVuY3Rpb24gaW52b2tlU2lnbmFsQ2FsbGJhY2tzKHNpZ25hbE5hbWUsIHNpZ25hbEFyZ3MpXG4gICAge1xuICAgICAgICB2YXIgY29ubmVjdGlvbnMgPSBvYmplY3QuX19vYmplY3RTaWduYWxzX19bc2lnbmFsTmFtZV07XG4gICAgICAgIGlmIChjb25uZWN0aW9ucykge1xuICAgICAgICAgICAgY29ubmVjdGlvbnMuZm9yRWFjaChmdW5jdGlvbihjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIGNhbGxiYWNrLmFwcGx5KGNhbGxiYWNrLCBzaWduYWxBcmdzKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5wcm9wZXJ0eVVwZGF0ZSA9IGZ1bmN0aW9uKHNpZ25hbHMsIHByb3BlcnR5TWFwKVxuICAgIHtcbiAgICAgICAgLy8gdXBkYXRlIHByb3BlcnR5IGNhY2hlXG4gICAgICAgIGZvciAodmFyIHByb3BlcnR5SW5kZXggaW4gcHJvcGVydHlNYXApIHtcbiAgICAgICAgICAgIHZhciBwcm9wZXJ0eVZhbHVlID0gcHJvcGVydHlNYXBbcHJvcGVydHlJbmRleF07XG4gICAgICAgICAgICBvYmplY3QuX19wcm9wZXJ0eUNhY2hlX19bcHJvcGVydHlJbmRleF0gPSBwcm9wZXJ0eVZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yICh2YXIgc2lnbmFsTmFtZSBpbiBzaWduYWxzKSB7XG4gICAgICAgICAgICAvLyBJbnZva2UgYWxsIGNhbGxiYWNrcywgYXMgc2lnbmFsRW1pdHRlZCgpIGRvZXMgbm90LiBUaGlzIGVuc3VyZXMgdGhlXG4gICAgICAgICAgICAvLyBwcm9wZXJ0eSBjYWNoZSBpcyB1cGRhdGVkIGJlZm9yZSB0aGUgY2FsbGJhY2tzIGFyZSBpbnZva2VkLlxuICAgICAgICAgICAgaW52b2tlU2lnbmFsQ2FsbGJhY2tzKHNpZ25hbE5hbWUsIHNpZ25hbHNbc2lnbmFsTmFtZV0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5zaWduYWxFbWl0dGVkID0gZnVuY3Rpb24oc2lnbmFsTmFtZSwgc2lnbmFsQXJncylcbiAgICB7XG4gICAgICAgIGludm9rZVNpZ25hbENhbGxiYWNrcyhzaWduYWxOYW1lLCBzaWduYWxBcmdzKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhZGRNZXRob2QobWV0aG9kRGF0YSlcbiAgICB7XG4gICAgICAgIHZhciBtZXRob2ROYW1lID0gbWV0aG9kRGF0YVswXTtcbiAgICAgICAgdmFyIG1ldGhvZElkeCA9IG1ldGhvZERhdGFbMV07XG4gICAgICAgIG9iamVjdFttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIGFyZ3MgPSBbXTtcbiAgICAgICAgICAgIHZhciBjYWxsYmFjaztcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBhcmd1bWVudHNbaV0gPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICAgICAgZWxzZVxuICAgICAgICAgICAgICAgICAgICBhcmdzLnB1c2goYXJndW1lbnRzW2ldKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgd2ViQ2hhbm5lbC5leGVjKHtcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogUVdlYkNoYW5uZWxNZXNzYWdlVHlwZXMuaW52b2tlTWV0aG9kLFxuICAgICAgICAgICAgICAgIFwib2JqZWN0XCI6IG9iamVjdC5fX2lkX18sXG4gICAgICAgICAgICAgICAgXCJtZXRob2RcIjogbWV0aG9kSWR4LFxuICAgICAgICAgICAgICAgIFwiYXJnc1wiOiBhcmdzXG4gICAgICAgICAgICB9LCBmdW5jdGlvbihyZXNwb25zZSkge1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSBvYmplY3QudW53cmFwUU9iamVjdChyZXNwb25zZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgKGNhbGxiYWNrKShyZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYmluZEdldHRlclNldHRlcihwcm9wZXJ0eUluZm8pXG4gICAge1xuICAgICAgICB2YXIgcHJvcGVydHlJbmRleCA9IHByb3BlcnR5SW5mb1swXTtcbiAgICAgICAgdmFyIHByb3BlcnR5TmFtZSA9IHByb3BlcnR5SW5mb1sxXTtcbiAgICAgICAgdmFyIG5vdGlmeVNpZ25hbERhdGEgPSBwcm9wZXJ0eUluZm9bMl07XG4gICAgICAgIC8vIGluaXRpYWxpemUgcHJvcGVydHkgY2FjaGUgd2l0aCBjdXJyZW50IHZhbHVlXG4gICAgICAgIC8vIE5PVEU6IGlmIHRoaXMgaXMgYW4gb2JqZWN0LCBpdCBpcyBub3QgZGlyZWN0bHkgdW53cmFwcGVkIGFzIGl0IG1pZ2h0XG4gICAgICAgIC8vIHJlZmVyZW5jZSBvdGhlciBRT2JqZWN0IHRoYXQgd2UgZG8gbm90IGtub3cgeWV0XG4gICAgICAgIG9iamVjdC5fX3Byb3BlcnR5Q2FjaGVfX1twcm9wZXJ0eUluZGV4XSA9IHByb3BlcnR5SW5mb1szXTtcblxuICAgICAgICBpZiAobm90aWZ5U2lnbmFsRGF0YSkge1xuICAgICAgICAgICAgaWYgKG5vdGlmeVNpZ25hbERhdGFbMF0gPT09IDEpIHtcbiAgICAgICAgICAgICAgICAvLyBzaWduYWwgbmFtZSBpcyBvcHRpbWl6ZWQgYXdheSwgcmVjb25zdHJ1Y3QgdGhlIGFjdHVhbCBuYW1lXG4gICAgICAgICAgICAgICAgbm90aWZ5U2lnbmFsRGF0YVswXSA9IHByb3BlcnR5TmFtZSArIFwiQ2hhbmdlZFwiO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYWRkU2lnbmFsKG5vdGlmeVNpZ25hbERhdGEsIHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iamVjdCwgcHJvcGVydHlOYW1lLCB7XG4gICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICB2YXIgcHJvcGVydHlWYWx1ZSA9IG9iamVjdC5fX3Byb3BlcnR5Q2FjaGVfX1twcm9wZXJ0eUluZGV4XTtcbiAgICAgICAgICAgICAgICBpZiAocHJvcGVydHlWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlblxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJVbmRlZmluZWQgdmFsdWUgaW4gcHJvcGVydHkgY2FjaGUgZm9yIHByb3BlcnR5IFxcXCJcIiArIHByb3BlcnR5TmFtZSArIFwiXFxcIiBpbiBvYmplY3QgXCIgKyBvYmplY3QuX19pZF9fKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvcGVydHlWYWx1ZTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFwiUHJvcGVydHkgc2V0dGVyIGZvciBcIiArIHByb3BlcnR5TmFtZSArIFwiIGNhbGxlZCB3aXRoIHVuZGVmaW5lZCB2YWx1ZSFcIik7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb2JqZWN0Ll9fcHJvcGVydHlDYWNoZV9fW3Byb3BlcnR5SW5kZXhdID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgd2ViQ2hhbm5lbC5leGVjKHtcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFFXZWJDaGFubmVsTWVzc2FnZVR5cGVzLnNldFByb3BlcnR5LFxuICAgICAgICAgICAgICAgICAgICBcIm9iamVjdFwiOiBvYmplY3QuX19pZF9fLFxuICAgICAgICAgICAgICAgICAgICBcInByb3BlcnR5XCI6IHByb3BlcnR5SW5kZXgsXG4gICAgICAgICAgICAgICAgICAgIFwidmFsdWVcIjogdmFsdWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICB9XG5cbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgICBkYXRhLm1ldGhvZHMuZm9yRWFjaChhZGRNZXRob2QpO1xuXG4gICAgZGF0YS5wcm9wZXJ0aWVzLmZvckVhY2goYmluZEdldHRlclNldHRlcik7XG5cbiAgICBkYXRhLnNpZ25hbHMuZm9yRWFjaChmdW5jdGlvbihzaWduYWwpIHsgYWRkU2lnbmFsKHNpZ25hbCwgZmFsc2UpOyB9KTtcblxuICAgIGZvciAodmFyIG5hbWUgaW4gZGF0YS5lbnVtcykge1xuICAgICAgICBvYmplY3RbbmFtZV0gPSBkYXRhLmVudW1zW25hbWVdO1xuICAgIH1cbn1cblxuLy9yZXF1aXJlZCBmb3IgdXNlIHdpdGggbm9kZWpzXG5pZiAodHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICAgICAgUVdlYkNoYW5uZWw6IFFXZWJDaGFubmVsXG4gICAgfTtcbn1cblxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi4vfi9xd2ViY2hhbm5lbC9xd2ViY2hhbm5lbC5qc1xuICoqIG1vZHVsZSBpZCA9IDM0XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUNWQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7QUN0Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQzdCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNiQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDbEhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDdk9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDakJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDUkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDakRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDMUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQ3Y5T0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNoRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNqaUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQzFEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUMxTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQ3pEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNuSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQ3JOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQ1hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDdkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUN2SUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQ3RKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNucU1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQzdHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUN2R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQ3pHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNuRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQ3BJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQ3JEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUMvRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUM5R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUN0Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDekJBOzs7Ozs7QUNBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7OyIsInNvdXJjZVJvb3QiOiIifQ== - -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); - else if(typeof define === 'function' && define.amd) - define([], factory); - else if(typeof exports === 'object') - exports["tableau"] = factory(); - else - root["tableau"] = factory(); -})(this, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = "/dist/"; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - Object.defineProperty(exports, "__esModule", { value: true }); - // Due to the way we configured webpack, we should be exporting things which will be under - // a global variable called "tableau". Export everything we want to be visible under tableau - // from this file. - var AddInImpl_1 = __webpack_require__(1); - var AddIn_1 = __webpack_require__(61); - var addInImpl = new AddInImpl_1.AddInImpl(); - exports.addIn = new AddIn_1.AddIn(addInImpl); - // Export Enums - // These show up under the tableau object. I.e. tableau.AddInContext.Server - var api_external_contract_1 = __webpack_require__(16); - exports.AddInContext = api_external_contract_1.AddInContext; - exports.AddInMode = api_external_contract_1.AddInMode; - exports.AnalyticsObjectType = api_external_contract_1.AnalyticsObjectType; - exports.ColumnType = api_external_contract_1.ColumnType; - exports.DashboardObjectType = api_external_contract_1.DashboardObjectType; - exports.DataType = api_external_contract_1.DataType; - exports.DateRangeType = api_external_contract_1.DateRangeType; - exports.DialogEventType = api_external_contract_1.DialogEventType; - exports.EncodingType = api_external_contract_1.EncodingType; - exports.ErrorCodes = api_external_contract_1.ErrorCodes; - exports.FieldAggregationType = api_external_contract_1.FieldAggregationType; - exports.FieldRoleType = api_external_contract_1.FieldRoleType; - exports.FilterDomainType = api_external_contract_1.FilterDomainType; - exports.FilterType = api_external_contract_1.FilterType; - exports.FilterUpdateType = api_external_contract_1.FilterUpdateType; - exports.FilterNullOption = api_external_contract_1.FilterNullOption; - exports.MarkType = api_external_contract_1.MarkType; - exports.ParameterValueType = api_external_contract_1.ParameterValueType; - exports.PeriodType = api_external_contract_1.PeriodType; - exports.QuickTableCalcType = api_external_contract_1.QuickTableCalcType; - exports.SelectionUpdateType = api_external_contract_1.SelectionUpdateType; - exports.SheetType = api_external_contract_1.SheetType; - exports.SortDirection = api_external_contract_1.SortDirection; - exports.TableauEventType = api_external_contract_1.TableauEventType; - exports.TrendLineModelType = api_external_contract_1.TrendLineModelType; - //# sourceMappingURL=AddInApi.js.map - -/***/ }, -/* 1 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(2); - var api_shared_1 = __webpack_require__(8); - var Dashboard_1 = __webpack_require__(41); - var DashboardContent_1 = __webpack_require__(43); - var Environment_1 = __webpack_require__(44); - var Settings_1 = __webpack_require__(45); - var RegisterAllAddInServices_1 = __webpack_require__(46); - var VersionNumber_1 = __webpack_require__(49); - var DashboardImpl_1 = __webpack_require__(50); - var SettingsImpl_1 = __webpack_require__(60); - var AddInImpl = (function () { - function AddInImpl() { - } - AddInImpl.prototype.initializeAsync = function () { - var _this = this; - if (!this._initializationPromise) { - this._initializationPromise = new Promise(function (resolve, reject) { - // First thing we want to do is check to see if there is a desktop dispatcher already registered for us - if (api_internal_contract_1.InternalApiDispatcherHolder.hasDesktopApiDispatcherPromise()) { - // Running in desktop, use this promise - var desktopDispatcherPromise = api_internal_contract_1.InternalApiDispatcherHolder.getDesktopDispatcherPromise(); - desktopDispatcherPromise.then(_this.onDispatcherReceived.bind(_this)).then(function () { resolve(); }); - } - else { - reject('Not running in desktop. Server support coming soon!'); - } - }); - } - return this._initializationPromise; - }; - AddInImpl.prototype.onDispatcherReceived = function (dispatcher) { - var _this = this; - dispatcher.setVersionNumber(VersionNumber_1.VersionNumber.Instance); - // Call to register all the services which will use the newly initialized dispatcher - api_shared_1.registerAllSharedServices(dispatcher); - RegisterAllAddInServices_1.registerAllAddInServices(dispatcher); - // Get the initialization service and initialize this add-in - var initializationService = api_shared_1.ApiServiceRegistry.instance.getService("InitializationService" /* InitializationService */); - return initializationService.initializeDashboardAddInAsync().then(function (result) { - if (!result.addInInstance.locator.dashboardPath) { - throw new Error('DashboardPath is undefined'); - } - _this.dashboardContent = _this.initializeDashboardContent(result.addinDashboardInfo, result.addInInstance.locator.dashboardPath); - _this.environment = new Environment_1.Environment(result.addInEnvironment); - _this.settings = _this.initializeSettings(result.addInSettingsInfo); - }); - }; - AddInImpl.prototype.initializeDashboardContent = function (info, sheetPath) { - var dashboardImpl = new DashboardImpl_1.DashboardImpl(info, sheetPath); - var dashboard = new Dashboard_1.Dashboard(dashboardImpl); - return new DashboardContent_1.DashboardContent(dashboard); - }; - AddInImpl.prototype.initializeSettings = function (settingsInfo) { - var settingsImpl = new SettingsImpl_1.SettingsImpl(settingsInfo); - return new Settings_1.Settings(settingsImpl); - }; - return AddInImpl; - }()); - exports.AddInImpl = AddInImpl; - //# sourceMappingURL=AddInImpl.js.map - -/***/ }, -/* 2 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export(__webpack_require__(3)); - __export(__webpack_require__(4)); - __export(__webpack_require__(5)); - __export(__webpack_require__(6)); - __export(__webpack_require__(7)); - //# sourceMappingURL=ApiInternalContract.js.map - -/***/ }, -/* 3 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var AddInContext; - (function (AddInContext) { - AddInContext["Desktop"] = "desktop"; - AddInContext["Server"] = "server"; - AddInContext["Unknown"] = "unknown"; - })(AddInContext = exports.AddInContext || (exports.AddInContext = {})); - var AddInMode; - (function (AddInMode) { - AddInMode["Authoring"] = "authoring"; - AddInMode["Viewing"] = "viewing"; - AddInMode["Unknown"] = "unknown"; - })(AddInMode = exports.AddInMode || (exports.AddInMode = {})); - var ColumnType; - (function (ColumnType) { - ColumnType["Discrete"] = "discrete"; - ColumnType["Continuous"] = "continuous"; - })(ColumnType = exports.ColumnType || (exports.ColumnType = {})); - var DashboardObjectType; - (function (DashboardObjectType) { - DashboardObjectType["Blank"] = "blank"; - DashboardObjectType["Worksheet"] = "worksheet"; - DashboardObjectType["QuickFilter"] = "quick-filter"; - DashboardObjectType["ParameterControl"] = "parameter-control"; - DashboardObjectType["PageFilter"] = "page-filter"; - DashboardObjectType["Legend"] = "legend"; - DashboardObjectType["Title"] = "title"; - DashboardObjectType["Text"] = "text"; - DashboardObjectType["Image"] = "image"; - DashboardObjectType["WebPage"] = "web-page"; - DashboardObjectType["AddIn"] = "addin"; - })(DashboardObjectType = exports.DashboardObjectType || (exports.DashboardObjectType = {})); - var DataType; - (function (DataType) { - DataType["String"] = "string"; - DataType["Int"] = "int"; - DataType["Float"] = "float"; - DataType["Bool"] = "bool"; - DataType["Date"] = "date"; - DataType["DateTime"] = "date-time"; - DataType["Spatial"] = "spatial"; - })(DataType = exports.DataType || (exports.DataType = {})); - var EncodedDataType; - (function (EncodedDataType) { - EncodedDataType["Number"] = "number"; - EncodedDataType["String"] = "string"; - EncodedDataType["Date"] = "date"; - EncodedDataType["Boolean"] = "boolean"; - })(EncodedDataType = exports.EncodedDataType || (exports.EncodedDataType = {})); - var ErrorCode; - (function (ErrorCode) { - ErrorCode["ServerError"] = "server-error"; - ErrorCode["InvalidAggregationFieldName"] = "invalid-aggregation-field-name"; - ErrorCode["InvalidFilterFieldName"] = "invalid-filter-fieldname"; - ErrorCode["InvalidFilterFieldValue"] = "invalid-filter-field-value"; - })(ErrorCode = exports.ErrorCode || (exports.ErrorCode = {})); - var FieldAggregationType; - (function (FieldAggregationType) { - FieldAggregationType["Sum"] = "sum"; - FieldAggregationType["Avg"] = "avg"; - FieldAggregationType["Min"] = "min"; - FieldAggregationType["Max"] = "max"; - FieldAggregationType["Stdev"] = "stdev"; - FieldAggregationType["Stdevp"] = "stdevp"; - FieldAggregationType["Var"] = "var"; - FieldAggregationType["Varp"] = "varp"; - FieldAggregationType["Count"] = "count"; - FieldAggregationType["Countd"] = "countd"; - FieldAggregationType["Median"] = "median"; - FieldAggregationType["Attr"] = "attr"; - FieldAggregationType["None"] = "none"; - FieldAggregationType["Year"] = "year"; - FieldAggregationType["Qtr"] = "qtr"; - FieldAggregationType["Month"] = "month"; - FieldAggregationType["Day"] = "day"; - FieldAggregationType["Hour"] = "hour"; - FieldAggregationType["Minute"] = "minute"; - FieldAggregationType["Second"] = "second"; - FieldAggregationType["Week"] = "week"; - FieldAggregationType["Weekday"] = "weekday"; - FieldAggregationType["MonthYear"] = "month-year"; - FieldAggregationType["Mdy"] = "mdy"; - FieldAggregationType["End"] = "end"; - FieldAggregationType["TruncYear"] = "trunc-year"; - FieldAggregationType["TruncQtr"] = "trunc-qtr"; - FieldAggregationType["TruncMonth"] = "trunc-month"; - FieldAggregationType["TruncWeek"] = "trunc-week"; - FieldAggregationType["TruncDay"] = "trunc-day"; - FieldAggregationType["TruncHour"] = "trunc-hour"; - FieldAggregationType["TruncMinute"] = "trunc-minute"; - FieldAggregationType["TruncSecond"] = "trunc-second"; - FieldAggregationType["Quart1"] = "quart1"; - FieldAggregationType["Quart3"] = "quart3"; - FieldAggregationType["Skewness"] = "skewness"; - FieldAggregationType["Kurtosis"] = "kurtosis"; - FieldAggregationType["InOut"] = "in-out"; - FieldAggregationType["User"] = "user"; - })(FieldAggregationType = exports.FieldAggregationType || (exports.FieldAggregationType = {})); - var FieldRoleType; - (function (FieldRoleType) { - FieldRoleType["Dimension"] = "dimension"; - FieldRoleType["Measure"] = "measure"; - FieldRoleType["Unknown"] = "unknown"; - })(FieldRoleType = exports.FieldRoleType || (exports.FieldRoleType = {})); - /** - * The different update types for applying filter. - */ - var FilterUpdateType; - (function (FilterUpdateType) { - FilterUpdateType["Add"] = "add"; - FilterUpdateType["All"] = "all"; - FilterUpdateType["Replace"] = "replace"; - FilterUpdateType["Remove"] = "remove"; - })(FilterUpdateType = exports.FilterUpdateType || (exports.FilterUpdateType = {})); - var SheetType; - (function (SheetType) { - SheetType["Dashboard"] = "dashboard"; - SheetType["Story"] = "story"; - SheetType["Worksheet"] = "worksheet"; - SheetType["Addin"] = "addin"; - })(SheetType = exports.SheetType || (exports.SheetType = {})); - var DomainRestrictionType; - (function (DomainRestrictionType) { - DomainRestrictionType["All"] = "all"; - DomainRestrictionType["List"] = "list"; - DomainRestrictionType["Range"] = "range"; - })(DomainRestrictionType = exports.DomainRestrictionType || (exports.DomainRestrictionType = {})); - var DateStepPeriod; - (function (DateStepPeriod) { - DateStepPeriod["Years"] = "years"; - DateStepPeriod["Quarters"] = "quarters"; - DateStepPeriod["Months"] = "months"; - DateStepPeriod["Weeks"] = "weeks"; - DateStepPeriod["Days"] = "days"; - DateStepPeriod["Hours"] = "hours"; - DateStepPeriod["Minutes"] = "minutes"; - DateStepPeriod["Seconds"] = "seconds"; - })(DateStepPeriod = exports.DateStepPeriod || (exports.DateStepPeriod = {})); - /** - * The option for specifying which values to include for filtering. - */ - var FilterNullOption; - (function (FilterNullOption) { - FilterNullOption["NullValues"] = "nullvalues"; - FilterNullOption["NonNullValues"] = "nonnullvalues"; - FilterNullOption["AllValues"] = "allvalues"; - })(FilterNullOption = exports.FilterNullOption || (exports.FilterNullOption = {})); - /** - * The type of filter domain - */ - var FilterDomainType; - (function (FilterDomainType) { - FilterDomainType["Relevant"] = "relevant"; - FilterDomainType["Database"] = "database"; - })(FilterDomainType = exports.FilterDomainType || (exports.FilterDomainType = {})); - /** - * Internal enum for specifying the selection type for select marks api. - */ - var SelectionUpdateType; - (function (SelectionUpdateType) { - SelectionUpdateType["Replace"] = "select-replace"; - SelectionUpdateType["Add"] = "select-add"; - SelectionUpdateType["Remove"] = "select-remove"; - })(SelectionUpdateType = exports.SelectionUpdateType || (exports.SelectionUpdateType = {})); - /** - * Internal enum for specifying the included values type for range selection. - */ - var QuantitativeIncludedValues; - (function (QuantitativeIncludedValues) { - QuantitativeIncludedValues["IncludeNull"] = "include-null"; - QuantitativeIncludedValues["IncludeNonNull"] = "include-non-null"; - QuantitativeIncludedValues["IncludeAll"] = "include-all"; - })(QuantitativeIncludedValues = exports.QuantitativeIncludedValues || (exports.QuantitativeIncludedValues = {})); - /** - * Type of mark for a given marks card in a viz. - */ - var MarkType; - (function (MarkType) { - MarkType["Bar"] = "bar"; - MarkType["Line"] = "line"; - MarkType["Area"] = "area"; - MarkType["Square"] = "square"; - MarkType["Circle"] = "circle"; - MarkType["Shape"] = "shape"; - MarkType["Text"] = "text"; - MarkType["Map"] = "map"; - MarkType["Pie"] = "pie"; - MarkType["GanttBar"] = "gantt-bar"; - MarkType["Polygon"] = "polygon"; - })(MarkType = exports.MarkType || (exports.MarkType = {})); - /** - * Internal enum for specifying the type of filter - */ - var FilterType; - (function (FilterType) { - FilterType["Categorical"] = "categorical"; - FilterType["Range"] = "range"; - FilterType["RelativeDate"] = "relativeDate"; - FilterType["Hierarchical"] = "hierarchical"; - })(FilterType = exports.FilterType || (exports.FilterType = {})); - /** - * Internal enum for specifying the DateRangeType of a relative date filter - */ - var DateRangeType; - (function (DateRangeType) { - /** - * Refers to the last day, week, month, etc. of the date period. - */ - DateRangeType["Last"] = "last"; - /** - * Refers to the last N days, weeks, months, etc. of the date period. - */ - DateRangeType["LastN"] = "lastN"; - /** - * Refers to the next day, week, month, etc. of the date period. - */ - DateRangeType["Next"] = "next"; - /** - * Refers to the next N days, weeks, months, etc. of the date period. - */ - DateRangeType["NextN"] = "nextN"; - /** - * Refers to the current day, week, month, etc. of the date period. - */ - DateRangeType["Current"] = "current"; - /** - * Refers to everything up to and including the current day, week, month, etc. of the date period. - */ - DateRangeType["ToDate"] = "toDate"; - })(DateRangeType = exports.DateRangeType || (exports.DateRangeType = {})); - //# sourceMappingURL=Enums.js.map - -/***/ }, -/* 4 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var InternalApiDispatcherHolder; - (function (InternalApiDispatcherHolder) { - function getDesktopDispatcherPromise() { - return window.__tableauDesktopDispatcher; - } - InternalApiDispatcherHolder.getDesktopDispatcherPromise = getDesktopDispatcherPromise; - function hasDesktopApiDispatcherPromise() { - return !!InternalApiDispatcherHolder.getDesktopDispatcherPromise(); - } - InternalApiDispatcherHolder.hasDesktopApiDispatcherPromise = hasDesktopApiDispatcherPromise; - function setDesktopDispatcherPromise(dispatcher) { - window.__tableauDesktopDispatcher = dispatcher; - } - InternalApiDispatcherHolder.setDesktopDispatcherPromise = setDesktopDispatcherPromise; - })(InternalApiDispatcherHolder = exports.InternalApiDispatcherHolder || (exports.InternalApiDispatcherHolder = {})); - //# sourceMappingURL=InternalApiDispatcher.js.map - -/***/ }, -/* 5 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var NotificationId; - (function (NotificationId) { - NotificationId["SelectedMarksChanged"] = "selected-marks-changed"; - NotificationId["ParameterChanged"] = "parameter-changed"; - NotificationId["FilterChanged"] = "filter-changed"; - })(NotificationId = exports.NotificationId || (exports.NotificationId = {})); - //# sourceMappingURL=Notifications.js.map - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var ParameterId; - (function (ParameterId) { - ParameterId["AddInLocator"] = "add-in-locator"; - ParameterId["AddInBootstrapInfo"] = "add-in-bootstrap-info"; - ParameterId["AddInSettingsInfo"] = "add-in-settings-info"; - ParameterId["VisualId"] = "visual-id"; - ParameterId["SheetPath"] = "sheet-path"; - ParameterId["IgnoreAliases"] = "ignore-aliases"; - ParameterId["IgnoreSelection"] = "ignore-selection"; - ParameterId["IncludeAllColumns"] = "include-all-columns"; - ParameterId["MaxRows"] = "max-rows"; - ParameterId["UnderlyingDataTable"] = "underlying-data-table"; - ParameterId["UnderlyingSummaryDataTable"] = "underlying-summary-data-table"; - ParameterId["DataSourceDataTable"] = "data-source-data-table"; - ParameterId["SettingsValues"] = "settings-values"; - ParameterId["SelectedData"] = "selected-data"; - ParameterId["HighlightedData"] = "highlighted-data"; - // Filter Params - ParameterId["FieldName"] = "field-name"; - ParameterId["FilterValues"] = "filter-values"; - ParameterId["FilterUpdateType"] = "filter-update-type"; - ParameterId["IsExcludeMode"] = "is-exclude"; - ParameterId["FilterRangeMin"] = "filter-range-min"; - ParameterId["FilterRangeMax"] = "filter-range-max"; - ParameterId["FilterRangeNullOption"] = "filter-range-null-option"; - ParameterId["WorksheetFilters"] = "worksheet-filters"; - ParameterId["FieldId"] = "field-id"; - ParameterId["DomainType"] = "domain-type"; - ParameterId["CategoricalDomain"] = "categorical-domain"; - ParameterId["QuantitativeDomain"] = "quantitative-dmain"; - ParameterId["WorksheetName"] = "worksheet-name"; - ParameterId["DashboardName"] = "dashboard"; - ParameterId["ParameterInfo"] = "parameter-info"; - ParameterId["ParameterInfos"] = "parameter-infos"; - ParameterId["ParameterCaption"] = "paremeter-caption"; - ParameterId["ParameterFieldName"] = "parameter-field-name"; - ParameterId["ParameterValue"] = "parameter-value"; - ParameterId["Selection"] = "selection"; - ParameterId["SelectionUpdateType"] = "selectionUpdateType"; - ParameterId["HierValSelectionModels"] = "hierarchicalValueSelectionModels"; - ParameterId["QuantRangeSelectionModels"] = "quantativeRangeSelectionModels"; - ParameterId["DimValSelectionModels"] = "dimensionValueSelectionModels"; - ParameterId["DataSourceId"] = "data-source-id"; - ParameterId["DataSchema"] = "data-schema"; - ParameterId["DataSourceName"] = "data-source-name"; - ParameterId["ColumnsToInclude"] = "columns-to-include"; - })(ParameterId = exports.ParameterId || (exports.ParameterId = {})); - //# sourceMappingURL=Parameters.js.map - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - // Declare this key type and export the NotificationId to make this behave like a string enum - var VerbId; - (function (VerbId) { - VerbId["ApplyCategoricalFilter"] = "categorical-filter"; - VerbId["ApplyRangeFilter"] = "range-filter"; - VerbId["ClearFilter"] = "clear-filter"; - VerbId["InitializeAddIn"] = "initialize-add-in"; - VerbId["GetDataSummaryData"] = "get-summary-data"; - VerbId["GetUnderlyingData"] = "get-underlying-data"; - VerbId["GetDataSourceData"] = "get-datasource-data"; - VerbId["SaveAddInSettings"] = "save-add-in-settings"; - VerbId["GetSelectedMarks"] = "get-selected-marks"; - VerbId["GetHighlightedMarks"] = "get-highlighted-marks"; - VerbId["GetParametersForSheet"] = "get-parameters-for-sheet"; - VerbId["FindParameter"] = "find-parameter"; - VerbId["ChangeParameterValue"] = "change-parameter-value"; - VerbId["ClearSelectedMarks"] = "clear-selected-marks"; - VerbId["SelectByValue"] = "select-by-value"; - VerbId["GetDataSources"] = "get-data-sources"; - VerbId["RefreshDataSource"] = "refresh-data-source"; - VerbId["GetFilters"] = "get-filters"; - VerbId["GetCategoricalDomain"] = "get-categorical-domain"; - VerbId["GetRangeDomain"] = "get-range-domain"; - })(VerbId = exports.VerbId || (exports.VerbId = {})); - //# sourceMappingURL=Verbs.js.map - -/***/ }, -/* 8 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export(__webpack_require__(9)); - __export(__webpack_require__(10)); - var Point_1 = __webpack_require__(11); - exports.Point = Point_1.Point; - var Size_1 = __webpack_require__(12); - exports.Size = Size_1.Size; - __export(__webpack_require__(13)); - __export(__webpack_require__(14)); - __export(__webpack_require__(15)); - __export(__webpack_require__(21)); - __export(__webpack_require__(20)); - __export(__webpack_require__(19)); - __export(__webpack_require__(18)); - __export(__webpack_require__(22)); - __export(__webpack_require__(23)); - __export(__webpack_require__(24)); - __export(__webpack_require__(33)); - __export(__webpack_require__(31)); - //# sourceMappingURL=ApiShared.js.map - -/***/ }, -/* 9 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Class designed to register and unregister handlers from a user. Only those events - * which are added via AddNewEventType will be supported by this instance - */ - var EventListenerManager = (function () { - function EventListenerManager() { - this._eventListenerManagers = {}; - } - EventListenerManager.prototype.addEventListener = function (eventType, handler) { - if (!this._eventListenerManagers.hasOwnProperty(eventType)) { - throw new Error("Unsupported event type : " + eventType); - } - return this._eventListenerManagers[eventType].addEventListener(handler); - }; - EventListenerManager.prototype.removeEventListener = function (eventType, handler) { - if (!this._eventListenerManagers.hasOwnProperty(eventType)) { - throw new Error("Unsupported event type : " + eventType); - } - return this._eventListenerManagers[eventType].removeEventListener(handler); - }; - EventListenerManager.prototype.addNewEventType = function (eventManager) { - this._eventListenerManagers[eventManager.eventType] = eventManager; - }; - return EventListenerManager; - }()); - exports.EventListenerManager = EventListenerManager; - //# sourceMappingURL=EventListenerManager.js.map - -/***/ }, -/* 10 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var EventListenerManager_1 = __webpack_require__(9); - /** - * Implementation of the Parameter contract. Calls down to the impl - * class for almost all of the work it does. - */ - var Parameter = (function (_super) { - __extends(Parameter, _super); - function Parameter(parameterImpl, sheet) { - var _this = _super.call(this) || this; - _this.parameterImpl = parameterImpl; - // Initialize our event handling for this class - _this.parameterImpl.initializeEvents(sheet).forEach(function (e) { return _this.addNewEventType(e); }); - return _this; - } - Object.defineProperty(Parameter.prototype, "name", { - get: function () { - return this.parameterImpl.name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Parameter.prototype, "currentValue", { - get: function () { - return this.parameterImpl.currentValue; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Parameter.prototype, "dataType", { - get: function () { - return this.parameterImpl.dataType; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Parameter.prototype, "allowableValues", { - get: function () { - return this.parameterImpl.allowableValues; - }, - enumerable: true, - configurable: true - }); - Parameter.prototype.changeValueAsync = function (newValue) { - return this.parameterImpl.changeValueAsync(newValue); - }; - return Parameter; - }(EventListenerManager_1.EventListenerManager)); - exports.Parameter = Parameter; - //# sourceMappingURL=Parameter.js.map - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Point = (function () { - function Point(_x, _y) { - this._x = _x; - this._y = _y; - } - Object.defineProperty(Point.prototype, "x", { - get: function () { - return this._x; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Point.prototype, "y", { - get: function () { - return this._y; - }, - enumerable: true, - configurable: true - }); - return Point; - }()); - exports.Point = Point; - //# sourceMappingURL=Point.js.map - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Size = (function () { - function Size(_height, _width) { - this._height = _height; - this._width = _width; - } - Object.defineProperty(Size.prototype, "height", { - get: function () { - return this._height; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Size.prototype, "width", { - get: function () { - return this._width; - }, - enumerable: true, - configurable: true - }); - return Size; - }()); - exports.Size = Size; - //# sourceMappingURL=Size.js.map - -/***/ }, -/* 13 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var DataTable = (function () { - function DataTable(_data, _columns, _totalRowCount, _isSummaryData, _marksInfo) { - this._data = _data; - this._columns = _columns; - this._totalRowCount = _totalRowCount; - this._isSummaryData = _isSummaryData; - this._marksInfo = _marksInfo; - // TODO: get rid of this in redesign. - this._name = _isSummaryData ? 'Summary Data Table' : 'Underlying Data Table'; - } - Object.defineProperty(DataTable.prototype, "name", { - get: function () { - return this._name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTable.prototype, "data", { - get: function () { - return this._data; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTable.prototype, "columns", { - get: function () { - return this._columns; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTable.prototype, "marksInfo", { - get: function () { - return this._marksInfo; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTable.prototype, "totalRowCount", { - get: function () { - return this._totalRowCount; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataTable.prototype, "isSummaryData", { - get: function () { - return this._isSummaryData; - }, - enumerable: true, - configurable: true - }); - return DataTable; - }()); - exports.DataTable = DataTable; - var MarkInfo = (function () { - function MarkInfo(_type, _color, _tupleId) { - this._type = _type; - this._color = _color; - this._tupleId = _tupleId; - } - Object.defineProperty(MarkInfo.prototype, "type", { - get: function () { - return this._type; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(MarkInfo.prototype, "color", { - get: function () { - return this._color; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(MarkInfo.prototype, "tupleId", { - get: function () { - return this._tupleId; - }, - enumerable: true, - configurable: true - }); - return MarkInfo; - }()); - exports.MarkInfo = MarkInfo; - var Column = (function () { - function Column(_fieldName, _dataType, // TODO: this shoudl be an enum type - _isReferenced, _index) { - this._fieldName = _fieldName; - this._dataType = _dataType; - this._isReferenced = _isReferenced; - this._index = _index; - } - Object.defineProperty(Column.prototype, "fieldName", { - get: function () { - return this._fieldName; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Column.prototype, "dataType", { - get: function () { - return this._dataType; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Column.prototype, "isReferenced", { - get: function () { - return this._isReferenced; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Column.prototype, "index", { - get: function () { - return this._index; - }, - enumerable: true, - configurable: true - }); - return Column; - }()); - exports.Column = Column; - var DataValue = (function () { - /* tslint:disable:no-any */ - function DataValue(_value, _formattedValue) { - this._value = _value; - this._formattedValue = _formattedValue; - } - Object.defineProperty(DataValue.prototype, "value", { - get: function () { - return this._value; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataValue.prototype, "formattedValue", { - get: function () { - return this._formattedValue; - }, - enumerable: true, - configurable: true - }); - return DataValue; - }()); - exports.DataValue = DataValue; - //# sourceMappingURL=GetDataModels.js.map - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var TableauExceptions = (function () { - function TableauExceptions() { - } - return TableauExceptions; - }()); - exports.TableauExceptions = TableauExceptions; - //# sourceMappingURL=TableauExceptions.js.map - -/***/ }, -/* 15 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var Contract = __webpack_require__(16); - var TableauWorksheetEvent_1 = __webpack_require__(18); - var FilterChangedEvent = (function (_super) { - __extends(FilterChangedEvent, _super); - function FilterChangedEvent(worksheet, _fieldName) { - var _this = _super.call(this, Contract.TableauEventType.FilterChanged, worksheet) || this; - _this._fieldName = _fieldName; - return _this; - } - Object.defineProperty(FilterChangedEvent.prototype, "fieldName", { - get: function () { - return this._fieldName; - }, - enumerable: true, - configurable: true - }); - FilterChangedEvent.prototype.getFilterAsync = function () { - var _this = this; - return this._worksheet.getFiltersAsync().then(function (filters) { - // TODO: Filtering of the filters should eventually be done platform side. - var eventedFilter = filters.find(function (filter) { return (filter.fieldName === _this._fieldName); }); - if (!eventedFilter) { - // We shouldn't hit this unless the filter was removed from the worksheet - // after the event was raised. - throw new Error('Internal Error: Filter no longer found in worksheet.'); - } - return eventedFilter; - }); - }; - return FilterChangedEvent; - }(TableauWorksheetEvent_1.TableauWorksheetEvent)); - exports.FilterChangedEvent = FilterChangedEvent; - //# sourceMappingURL=FilterChangedEvent.js.map - -/***/ }, -/* 16 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - function __export(m) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export(__webpack_require__(17)); - //# sourceMappingURL=ApiExternalContract.js.map - -/***/ }, -/* 17 */ -/***/ function(module, exports) { - - "use strict"; - // All enum values made available to AddIn developers. - // Enums should be kept in alphabetical order. - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * The context in which the AddIn is currently running. - */ - var AddInContext; - (function (AddInContext) { - AddInContext["Desktop"] = "desktop"; - AddInContext["Server"] = "server"; - })(AddInContext = exports.AddInContext || (exports.AddInContext = {})); - /** - * The mode in which the AddIn is currently running. - */ - var AddInMode; - (function (AddInMode) { - AddInMode["Authoring"] = "authoring"; - AddInMode["Viewing"] = "viewing"; - })(AddInMode = exports.AddInMode || (exports.AddInMode = {})); - var AnalyticsObjectType; - (function (AnalyticsObjectType) { - AnalyticsObjectType["Cluster"] = "cluster"; - AnalyticsObjectType["Forecast"] = "forecast"; - AnalyticsObjectType["TrendLine"] = "trend-line"; - })(AnalyticsObjectType = exports.AnalyticsObjectType || (exports.AnalyticsObjectType = {})); - var ColumnType; - (function (ColumnType) { - ColumnType["Discrete"] = "discrete"; - ColumnType["Continuous"] = "continuous"; - })(ColumnType = exports.ColumnType || (exports.ColumnType = {})); - /** - * What the object represents in a dashboard. - */ - var DashboardObjectType; - (function (DashboardObjectType) { - DashboardObjectType["Blank"] = "blank"; - DashboardObjectType["Worksheet"] = "worksheet"; - DashboardObjectType["QuickFilter"] = "quick-filter"; - DashboardObjectType["ParameterControl"] = "parameter-control"; - DashboardObjectType["PageFilter"] = "page-filter"; - DashboardObjectType["Legend"] = "legend"; - DashboardObjectType["Title"] = "title"; - DashboardObjectType["Text"] = "text"; - DashboardObjectType["Image"] = "image"; - DashboardObjectType["WebPage"] = "web-page"; - DashboardObjectType["AddIn"] = "addin"; - })(DashboardObjectType = exports.DashboardObjectType || (exports.DashboardObjectType = {})); - /** - * The different types of data a value can have - */ - var DataType; - (function (DataType) { - DataType["String"] = "string"; - DataType["Int"] = "int"; - DataType["Float"] = "float"; - DataType["Bool"] = "bool"; - DataType["Date"] = "date"; - DataType["DateTime"] = "date-time"; - DataType["Spatial"] = "spatial"; - })(DataType = exports.DataType || (exports.DataType = {})); - /** - * Valid date ranges for a relative date filter. - */ - var DateRangeType; - (function (DateRangeType) { - DateRangeType["Last"] = "last"; - DateRangeType["LastN"] = "last-n"; - DateRangeType["Next"] = "next"; - DateRangeType["NextN"] = "next-n"; - DateRangeType["Current"] = "current"; - DateRangeType["ToDate"] = "to-date"; - })(DateRangeType = exports.DateRangeType || (exports.DateRangeType = {})); - /** - * Types of dialog event for event listening between a parent AddIn and a popup dialog. - */ - var DialogEventType; - (function (DialogEventType) { - DialogEventType["DialogMessage"] = "dialog-message"; - DialogEventType["DialogEvent"] = "dialog-event"; - })(DialogEventType = exports.DialogEventType || (exports.DialogEventType = {})); - var EncodingType; - (function (EncodingType) { - EncodingType["Column"] = "column"; - EncodingType["Row"] = "row"; - EncodingType["Page"] = "page"; - EncodingType["Filter"] = "filter"; - EncodingType["MarksType"] = "marks-type"; - EncodingType["MeasureValues"] = "measure-values"; - EncodingType["Color"] = "color"; - EncodingType["Size"] = "size"; - EncodingType["Label"] = "label"; - EncodingType["Detail"] = "detail"; - EncodingType["Tooltip"] = "tooltip"; - EncodingType["Shape"] = "shape"; - EncodingType["Path"] = "path"; - EncodingType["Angle"] = "angle"; - })(EncodingType = exports.EncodingType || (exports.EncodingType = {})); - /** - * All error codes used by the AddIn API. - */ - var ErrorCodes; - (function (ErrorCodes) { - /** - * Only one dialog can be opened at time with the UI namespace functionality. - */ - ErrorCodes["DialogAlreadyOpen"] = "dialog-already-open"; - /** - * The open dialog was closed by the user. - */ - ErrorCodes["DialogClosedByUser"] = "dialog-closed-by-user"; - /** - * An error occurred while attempting to perform a filter operation. - */ - ErrorCodes["FilterCannotBePerformed"] = "filter-cannot-be-performed"; - /** - * An error occurred within the Tableau AddIn API. Contact Tableau Support. - */ - ErrorCodes["InternalError"] = "internal-error"; - /** - * An invalid aggregation was specified for the filter, such as setting a range filter to "SUM(Sales)" instead of "Sales". - */ - ErrorCodes["InvalidAggregationFieldName"] = "invalid-aggregation-field-name"; - /** - * A dialog must first launch to, and send messages from, the same domain as the parent AddIn. - */ - ErrorCodes["InvalidDomainDialog"] = "invalid-dialog-domain"; - /** - * An invalid date was specified in a method that required a date parameter. - */ - ErrorCodes["InvalidDateParameter"] = "invalid-date-parameter"; - /** - * A filter operation was attempted on a field that does not exist in the data source. - */ - ErrorCodes["InvalidFilterFieldName"] = "invalid-filter-field-name"; - /** - * A filter operation was attempted using a value that is the wrong data type or format. - */ - ErrorCodes["InvalidFilterFieldValue"] = "invalid-filter-field-value"; - /** - * A parameter is not the correct data type or format. The name of the parameter is specified in the Error.message field. - */ - ErrorCodes["InvalidParameter"] = "invalid-parameter"; - /** - * An invalid date value was specified in a Sheet.selectMarksAsync() call for a date field. - */ - ErrorCodes["InvalidSelectionDate"] = "invalid-selection-date"; - /** - * A field was specified in a Sheet.selectMarksAsync() call that does not exist in the data source. - */ - ErrorCodes["InvalidSelectionFieldName"] = "invalid-selection-field-name"; - /** - * An invalid value was specified in a Sheet.selectMarksAsync() call. - */ - ErrorCodes["InvalidSelectionValue"] = "invalid-selection-value"; - /** - * A required parameter was not specified, null, or an empty string/array. - */ - ErrorCodes["NullOrEmptyParameter"] = "null-or-empty-parameter"; - /** - * An unknown event name was specified in the call to Viz.addEventListeneror Viz.removeEventListener. - */ - ErrorCodes["UnsupportedEventName"] = "unsupported-event-name"; - })(ErrorCodes = exports.ErrorCodes || (exports.ErrorCodes = {})); - /** - * Type of aggregation on a field. - */ - var FieldAggregationType; - (function (FieldAggregationType) { - FieldAggregationType["Sum"] = "sum"; - FieldAggregationType["Avg"] = "avg"; - FieldAggregationType["Min"] = "min"; - FieldAggregationType["Max"] = "max"; - FieldAggregationType["Stdev"] = "stdev"; - FieldAggregationType["Stdevp"] = "stdevp"; - FieldAggregationType["Var"] = "var"; - FieldAggregationType["Varp"] = "varp"; - FieldAggregationType["Count"] = "count"; - FieldAggregationType["Countd"] = "countd"; - FieldAggregationType["Median"] = "median"; - FieldAggregationType["Attr"] = "attr"; - FieldAggregationType["None"] = "none"; - FieldAggregationType["Year"] = "year"; - FieldAggregationType["Qtr"] = "qtr"; - FieldAggregationType["Month"] = "month"; - FieldAggregationType["Day"] = "day"; - FieldAggregationType["Hour"] = "hour"; - FieldAggregationType["Minute"] = "minute"; - FieldAggregationType["Second"] = "second"; - FieldAggregationType["Week"] = "week"; - FieldAggregationType["Weekday"] = "weekday"; - FieldAggregationType["MonthYear"] = "month-year"; - FieldAggregationType["Mdy"] = "mdy"; - FieldAggregationType["End"] = "end"; - FieldAggregationType["TruncYear"] = "trunc-year"; - FieldAggregationType["TruncQtr"] = "trunc-qtr"; - FieldAggregationType["TruncMonth"] = "trunc-month"; - FieldAggregationType["TruncWeek"] = "trunc-week"; - FieldAggregationType["TruncDay"] = "trunc-day"; - FieldAggregationType["TruncHour"] = "trunc-hour"; - FieldAggregationType["TruncMinute"] = "trunc-minute"; - FieldAggregationType["TruncSecond"] = "trunc-second"; - FieldAggregationType["Quart1"] = "quart1"; - FieldAggregationType["Quart3"] = "quart3"; - FieldAggregationType["Skewness"] = "skewness"; - FieldAggregationType["Kurtosis"] = "kurtosis"; - FieldAggregationType["InOut"] = "in-out"; - FieldAggregationType["User"] = "user"; - })(FieldAggregationType = exports.FieldAggregationType || (exports.FieldAggregationType = {})); - /** - * Role of a field. - */ - var FieldRoleType; - (function (FieldRoleType) { - FieldRoleType["Dimension"] = "dimension"; - FieldRoleType["Measure"] = "measure"; - FieldRoleType["Unknown"] = "unknown"; - })(FieldRoleType = exports.FieldRoleType || (exports.FieldRoleType = {})); - /** - * An enumeration of the valid types of filters that can be applied. - */ - var FilterType; - (function (FilterType) { - FilterType["Categorical"] = "categorical"; - FilterType["Range"] = "range"; - FilterType["Hierarchical"] = "hierarchical"; - FilterType["RelativeDate"] = "relative-date"; - })(FilterType = exports.FilterType || (exports.FilterType = {})); - /** - * The different update types for applying filter - */ - var FilterUpdateType; - (function (FilterUpdateType) { - FilterUpdateType["Add"] = "add"; - FilterUpdateType["All"] = "all"; - FilterUpdateType["Replace"] = "replace"; - FilterUpdateType["Remove"] = "remove"; - })(FilterUpdateType = exports.FilterUpdateType || (exports.FilterUpdateType = {})); - /** - * The domain type for a filter - */ - var FilterDomainType; - (function (FilterDomainType) { - /** - * The domain values that are relevant to the specified filter - * i.e. the domain is restricted by a previous filter - */ - FilterDomainType["Relevant"] = "relevant"; - /** - * list of all possible domain values from database - */ - FilterDomainType["Database"] = "database"; - })(FilterDomainType = exports.FilterDomainType || (exports.FilterDomainType = {})); - /** - * The option for specifying which values to include for filtering - * Indicates what to do with null values for a given filter or mark selection call. - */ - var FilterNullOption; - (function (FilterNullOption) { - FilterNullOption["NullValues"] = "null-values"; - FilterNullOption["NonNullValues"] = "non-null-values"; - FilterNullOption["AllValues"] = "all-values"; - })(FilterNullOption = exports.FilterNullOption || (exports.FilterNullOption = {})); - /** - * Type of mark for a given marks card in a viz. - */ - var MarkType; - (function (MarkType) { - MarkType["Bar"] = "bar"; - MarkType["Line"] = "line"; - MarkType["Area"] = "area"; - MarkType["Square"] = "square"; - MarkType["Circle"] = "circle"; - MarkType["Shape"] = "shape"; - MarkType["Text"] = "text"; - MarkType["Map"] = "map"; - MarkType["Pie"] = "pie"; - MarkType["GanttBar"] = "gantt-bar"; - MarkType["Polygon"] = "polygon"; - })(MarkType = exports.MarkType || (exports.MarkType = {})); - /** - * An enumeration describing the different types of allowable values. - * This is used for restricting the domain of a parameter - */ - var ParameterValueType; - (function (ParameterValueType) { - ParameterValueType["All"] = "all"; - ParameterValueType["List"] = "list"; - ParameterValueType["Range"] = "range"; - })(ParameterValueType = exports.ParameterValueType || (exports.ParameterValueType = {})); - /** - * Date period used in filters and in parameters. - */ - var PeriodType; - (function (PeriodType) { - PeriodType["Years"] = "years"; - PeriodType["Quarters"] = "quarters"; - PeriodType["Months"] = "months"; - PeriodType["Weeks"] = "weeks"; - PeriodType["Days"] = "days"; - PeriodType["Hours"] = "hours"; - PeriodType["Minutes"] = "minutes"; - PeriodType["Seconds"] = "seconds"; - })(PeriodType = exports.PeriodType || (exports.PeriodType = {})); - var QuickTableCalcType; - (function (QuickTableCalcType) { - QuickTableCalcType["RunningTotal"] = "running-total"; - QuickTableCalcType["Difference"] = "difference"; - QuickTableCalcType["PercentDifference"] = "percent-difference"; - QuickTableCalcType["PercentOfTotal"] = "percent-of-total"; - QuickTableCalcType["Rank"] = "rank"; - QuickTableCalcType["Percentile"] = "percentile"; - QuickTableCalcType["MovingAverage"] = "moving-average"; - QuickTableCalcType["YTDTotal"] = "ytd-total"; - QuickTableCalcType["CompoundGrowthRate"] = "compound-growth-rate"; - QuickTableCalcType["YearOverYearGrowth"] = "year-over-year-growth"; - QuickTableCalcType["YTDGrowth"] = "ytd-growth"; - QuickTableCalcType["Undefined"] = "undefined"; - })(QuickTableCalcType = exports.QuickTableCalcType || (exports.QuickTableCalcType = {})); - /** - * Enum for specifying the selection type for select marks api. - */ - var SelectionUpdateType; - (function (SelectionUpdateType) { - SelectionUpdateType["Replace"] = "select-replace"; - SelectionUpdateType["Add"] = "select-add"; - SelectionUpdateType["Remove"] = "select-remove"; - })(SelectionUpdateType = exports.SelectionUpdateType || (exports.SelectionUpdateType = {})); - /** - * The type of sheet a Sheet object represents - */ - var SheetType; - (function (SheetType) { - SheetType["Dashboard"] = "dashboard"; - SheetType["Story"] = "story"; - SheetType["Worksheet"] = "worksheet"; - })(SheetType = exports.SheetType || (exports.SheetType = {})); - var SortDirection; - (function (SortDirection) { - SortDirection["Increasing"] = "increasing"; - SortDirection["Decreasing"] = "decreasing"; - })(SortDirection = exports.SortDirection || (exports.SortDirection = {})); - /** - * Represents a certain type of event which can be listened for - */ - var TableauEventType; - (function (TableauEventType) { - /** Raised when any filter has changed state.*/ - TableauEventType["FilterChanged"] = "filter-changed"; - /** The selected marks on a visualization has changed */ - TableauEventType["MarkSelectionChanged"] = "mark-selection-changed"; - /** A parameter has had its value modified */ - TableauEventType["ParameterChanged"] = "parameter-changed"; - })(TableauEventType = exports.TableauEventType || (exports.TableauEventType = {})); - var TrendLineModelType; - (function (TrendLineModelType) { - TrendLineModelType["Linear"] = "linear"; - TrendLineModelType["Logarithmic"] = "logarithmic"; - TrendLineModelType["Exponential"] = "exponential"; - TrendLineModelType["Polynomial"] = "polynomial"; - })(TrendLineModelType = exports.TrendLineModelType || (exports.TrendLineModelType = {})); - //# sourceMappingURL=Enums.js.map - -/***/ }, -/* 18 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var TableauSheetEvent_1 = __webpack_require__(19); - var TableauWorksheetEvent = (function (_super) { - __extends(TableauWorksheetEvent, _super); - function TableauWorksheetEvent(type, _worksheet) { - var _this = _super.call(this, type, _worksheet) || this; - _this._worksheet = _worksheet; - return _this; - } - Object.defineProperty(TableauWorksheetEvent.prototype, "worksheet", { - get: function () { - return this._worksheet; - }, - enumerable: true, - configurable: true - }); - return TableauWorksheetEvent; - }(TableauSheetEvent_1.TableauSheetEvent)); - exports.TableauWorksheetEvent = TableauWorksheetEvent; - //# sourceMappingURL=TableauWorksheetEvent.js.map - -/***/ }, -/* 19 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var TableauEvent_1 = __webpack_require__(20); - var TableauSheetEvent = (function (_super) { - __extends(TableauSheetEvent, _super); - function TableauSheetEvent(type, sheet) { - var _this = _super.call(this, type) || this; - _this._sheet = sheet; - return _this; - } - Object.defineProperty(TableauSheetEvent.prototype, "sheet", { - get: function () { - return this._sheet; - }, - enumerable: true, - configurable: true - }); - return TableauSheetEvent; - }(TableauEvent_1.TableauEvent)); - exports.TableauSheetEvent = TableauSheetEvent; - //# sourceMappingURL=TableauSheetEvent.js.map - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var TableauEvent = (function () { - function TableauEvent(type) { - this._type = type; - } - Object.defineProperty(TableauEvent.prototype, "type", { - get: function () { - return this._type; - }, - enumerable: true, - configurable: true - }); - return TableauEvent; - }()); - exports.TableauEvent = TableauEvent; - //# sourceMappingURL=TableauEvent.js.map - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var Contract = __webpack_require__(16); - var TableauWorksheetEvent_1 = __webpack_require__(18); - var MarksSelectedEvent = (function (_super) { - __extends(MarksSelectedEvent, _super); - function MarksSelectedEvent(worksheet) { - return _super.call(this, Contract.TableauEventType.MarkSelectionChanged, worksheet) || this; - } - MarksSelectedEvent.prototype.getMarksAsync = function () { - return this.worksheet.getSelectedMarksAsync(); - }; - return MarksSelectedEvent; - }(TableauWorksheetEvent_1.TableauWorksheetEvent)); - exports.MarksSelectedEvent = MarksSelectedEvent; - //# sourceMappingURL=MarksSelectedEvent.js.map - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * This class implements the SingleEventManager interface for a single type of Tableau event - * - * @template TEventType The Tableau event type this class specializes - */ - var SingleEventManagerImpl = (function () { - function SingleEventManagerImpl(eventType) { - this._eventType = eventType; - this._handlers = []; - } - Object.defineProperty(SingleEventManagerImpl.prototype, "eventType", { - get: function () { - return this._eventType; - }, - enumerable: true, - configurable: true - }); - SingleEventManagerImpl.prototype.addEventListener = function (handler) { - var _this = this; - this._handlers.push(handler); - return function () { return _this.removeEventListener(handler); }; - }; - SingleEventManagerImpl.prototype.removeEventListener = function (handler) { - var beforeCount = this._handlers.length; - this._handlers = this._handlers.filter(function (h) { return h !== handler; }); - return beforeCount > this._handlers.length; - }; - SingleEventManagerImpl.prototype.triggerEvent = function (eventGenerator) { - for (var _i = 0, _a = this._handlers; _i < _a.length; _i++) { - var handler = _a[_i]; - try { - var eventModel = eventGenerator(); - handler(eventModel); - } - catch (e) { - // Since this handler could be outside our control, just catch anything it throws and continue on - continue; - } - } - }; - return SingleEventManagerImpl; - }()); - exports.SingleEventManagerImpl = SingleEventManagerImpl; - //# sourceMappingURL=SingleEventManagerImpl.js.map - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Defines which type of getData call to make. - */ - var GetDataType; - (function (GetDataType) { - GetDataType["Summary"] = "summary"; - GetDataType["Underlying"] = "underlying"; - })(GetDataType = exports.GetDataType || (exports.GetDataType = {})); - //# sourceMappingURL=GetDataService.js.map - -/***/ }, -/* 24 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var DataSourceServiceImpl_1 = __webpack_require__(25); - var FilterServiceImpl_1 = __webpack_require__(26); - var GetDataServiceImpl_1 = __webpack_require__(34); - var NotificationServiceImpl_1 = __webpack_require__(35); - var ParametersServiceImpl_1 = __webpack_require__(36); - var SelectionServiceImpl_1 = __webpack_require__(39); - var ServiceRegistry_1 = __webpack_require__(33); - function registerAllSharedServices(dispatcher) { - ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new DataSourceServiceImpl_1.DataSourceServiceImpl(dispatcher)); - ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new GetDataServiceImpl_1.GetDataServiceImpl(dispatcher)); - ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new FilterServiceImpl_1.FilterServiceImpl(dispatcher)); - ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new NotificationServiceImpl_1.NotificationServiceImpl(dispatcher)); - ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new ParametersServiceImpl_1.ParametersServiceImpl(dispatcher)); - ServiceRegistry_1.ApiServiceRegistry.instance.registerService(new SelectionServiceImpl_1.SelectionServiceImpl(dispatcher)); - } - exports.registerAllSharedServices = registerAllSharedServices; - //# sourceMappingURL=RegisterAllSharedServices.js.map - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(2); - var DataSourceServiceImpl = (function () { - function DataSourceServiceImpl(_dispatcher) { - this._dispatcher = _dispatcher; - } - Object.defineProperty(DataSourceServiceImpl.prototype, "serviceName", { - get: function () { - return "data-source-service" /* DataSourceService */; - }, - enumerable: true, - configurable: true - }); - DataSourceServiceImpl.prototype.refreshAsync = function (dataSourceId) { - var parameters = (_a = {}, _a[api_internal_contract_1.ParameterId.DataSourceId] = dataSourceId, _a); - return this._dispatcher.execute(api_internal_contract_1.VerbId.RefreshDataSource, parameters).then(function (response) { - return; - }); - var _a; - }; - DataSourceServiceImpl.prototype.getDataSourcesAsync = function () { - return this._dispatcher.execute(api_internal_contract_1.VerbId.GetDataSources, {}).then(function (response) { - var dataSchema = response.result; - return dataSchema; - }); - }; - return DataSourceServiceImpl; - }()); - exports.DataSourceServiceImpl = DataSourceServiceImpl; - //# sourceMappingURL=DataSourceServiceImpl.js.map - -/***/ }, -/* 26 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Contract = __webpack_require__(16); - var api_internal_contract_1 = __webpack_require__(2); - var api_utils_1 = __webpack_require__(27); - var ExternalToInternalEnumMappings_1 = __webpack_require__(30); - var InternalToExternalEnumMappings_1 = __webpack_require__(31); - var FilterModels_1 = __webpack_require__(32); - var GetDataModels_1 = __webpack_require__(13); - var FilterServiceImpl = (function () { - function FilterServiceImpl(dispatcher) { - this._dispatcher = dispatcher; - } - Object.defineProperty(FilterServiceImpl.prototype, "serviceName", { - get: function () { - return "filter-service" /* Filter */; - }, - enumerable: true, - configurable: true - }); - FilterServiceImpl.prototype.applyFilterAsync = function (visualId, fieldName, values, updateType, filterOptions) { - if (!api_utils_1.Param.isValidEnumValue(updateType, Contract.FilterUpdateType)) { - throw new Error('Invalid value for parameter FilterUpdateType'); - } - var verb = api_internal_contract_1.VerbId.ApplyCategoricalFilter; - var parameters = {}; - parameters[api_internal_contract_1.ParameterId.VisualId] = visualId; - parameters[api_internal_contract_1.ParameterId.FieldName] = fieldName; - parameters[api_internal_contract_1.ParameterId.FilterValues] = values; - parameters[api_internal_contract_1.ParameterId.FilterUpdateType] = updateType; - parameters[api_internal_contract_1.ParameterId.IsExcludeMode] = - (filterOptions === undefined || filterOptions.isExcludeMode === undefined) ? false : filterOptions.isExcludeMode; - return this._dispatcher.execute(verb, parameters).then(function (response) { - var error = response.result; - if (!(error.errorCode === null || error.errorCode === undefined)) { - // TODO: come back and implement error handling logic - throw new Error('Error Applying Filter: ' + error.errorCode); - } - return fieldName; - }); - }; - FilterServiceImpl.prototype.applyRangeFilterAsync = function (visualId, fieldName, filterOptions) { - if (!filterOptions) { - throw new Error('Missing Parameter: RangeFilterOptions'); - } - api_utils_1.Param.verifyRangeParamType(filterOptions.min, filterOptions.max); - var verb = api_internal_contract_1.VerbId.ApplyRangeFilter; - var parameters = {}; - if (filterOptions.min) { - var min = void 0; - if (filterOptions.min instanceof Date) { - min = api_utils_1.Param.serializeDateForPlatform(filterOptions.min); - } - else { - min = filterOptions.min; - } - parameters[api_internal_contract_1.ParameterId.FilterRangeMin] = min; - } - if (filterOptions.max) { - var max = void 0; - if (filterOptions.max instanceof Date) { - max = api_utils_1.Param.serializeDateForPlatform(filterOptions.max); - } - else { - max = filterOptions.max; - } - parameters[api_internal_contract_1.ParameterId.FilterRangeMax] = max; - } - if (filterOptions.nullOption) { - if (!api_utils_1.Param.isValidEnumValue(filterOptions.nullOption, Contract.FilterNullOption)) { - throw new Error('Invalid value for parameter NullOption'); - } - parameters[api_internal_contract_1.ParameterId.FilterRangeNullOption] = ExternalToInternalEnumMappings_1.ExternalToInternalEnumMappings.nullOptions.convert(filterOptions.nullOption); - } - parameters[api_internal_contract_1.ParameterId.FieldName] = fieldName; - parameters[api_internal_contract_1.ParameterId.VisualId] = visualId; - return this._dispatcher.execute(verb, parameters).then(function (response) { - return fieldName; - }); - }; - FilterServiceImpl.prototype.clearFilterAsync = function (visualId, fieldName) { - var verb = api_internal_contract_1.VerbId.ClearFilter; - var parameters = {}; - parameters[api_internal_contract_1.ParameterId.VisualId] = visualId; - parameters[api_internal_contract_1.ParameterId.FieldName] = fieldName; - return this._dispatcher.execute(verb, parameters).then(function (resposne) { - return fieldName; - }); - }; - FilterServiceImpl.prototype.getFiltersAsync = function (visualId) { - var _this = this; - var verb = api_internal_contract_1.VerbId.GetFilters; - var parameters = {}; - parameters[api_internal_contract_1.ParameterId.VisualId] = visualId; - return this._dispatcher.execute(verb, parameters).then(function (response) { - var filters = response.result; - return _this.convertDomainFilters(filters); - }); - }; - FilterServiceImpl.prototype.getCategoricalDomainAsync = function (worksheetName, fieldId, domainType) { - var _this = this; - if (!api_utils_1.Param.isValidEnumValue(domainType, Contract.FilterDomainType)) { - throw new Error('Invalid value for parameter FilterDomainType'); - } - var verb = api_internal_contract_1.VerbId.GetCategoricalDomain; - var parameters = {}; - parameters[api_internal_contract_1.ParameterId.VisualId] = { - worksheet: worksheetName - }; - parameters[api_internal_contract_1.ParameterId.FieldId] = fieldId; - parameters[api_internal_contract_1.ParameterId.DomainType] = domainType; - return this._dispatcher.execute(verb, parameters).then(function (response) { - var domain = response.result; - return _this.convertCategoricalDomain(domain, domainType); - }); - }; - FilterServiceImpl.prototype.getRangeDomainAsync = function (worksheetName, fieldId, domainType) { - var _this = this; - if (!api_utils_1.Param.isValidEnumValue(domainType, Contract.FilterDomainType)) { - throw new Error('Invalid value for parameter FilterDomainType'); - } - var verb = api_internal_contract_1.VerbId.GetRangeDomain; - var parameters = {}; - parameters[api_internal_contract_1.ParameterId.VisualId] = { - worksheet: worksheetName - }; - parameters[api_internal_contract_1.ParameterId.FieldId] = fieldId; - parameters[api_internal_contract_1.ParameterId.DomainType] = ExternalToInternalEnumMappings_1.ExternalToInternalEnumMappings.filterDomainType.convert(domainType); - return this._dispatcher.execute(verb, parameters).then(function (response) { - var domain = response.result; - return _this.convertRangeDomain(domain, domainType); - }); - }; - // Helper Methods - FilterServiceImpl.prototype.convertDomainFilters = function (domainFilters) { - var _this = this; - var filters = []; - domainFilters.forEach(function (domainFilter) { - switch (domainFilter.filterType) { - case api_internal_contract_1.FilterType.Categorical: { - var filter = domainFilter; - if (filter) { - filters.push(_this.convertCategoricalFilter(filter)); - } - else { - throw new Error('Invalid Categorical Filter'); - } - break; - } - case api_internal_contract_1.FilterType.Range: { - var filter = domainFilter; - if (filter) { - filters.push(_this.convertRangeFilter(filter)); - } - else { - throw new Error('Invalid Range Filter'); - } - break; - } - case api_internal_contract_1.FilterType.RelativeDate: { - var filter = domainFilter; - if (filter) { - filters.push(_this.convertRelativeDateFilter(filter)); - } - else { - throw new Error('Invalid Relative Date Filter'); - } - break; - } - default: { - break; - } - } - }); - return filters; - }; - FilterServiceImpl.prototype.convertCategoricalFilter = function (domainFilter) { - var appliedValues = domainFilter.values.map(function (dv) { - return new GetDataModels_1.DataValue(dv.value, dv.formattedValue); - }); - return new FilterModels_1.CategoricalFilter(domainFilter.visualId.worksheet, domainFilter.fieldCaption, domainFilter.fieldName, Contract.FilterType.Categorical, appliedValues, domainFilter.isExclude); - }; - FilterServiceImpl.prototype.convertRangeFilter = function (domainFilter) { - var minValue = new GetDataModels_1.DataValue(domainFilter.min.value, domainFilter.min.formattedValue); - var maxValue = new GetDataModels_1.DataValue(domainFilter.max.value, domainFilter.max.formattedValue); - return new FilterModels_1.RangeFilter(domainFilter.visualId.worksheet, domainFilter.fieldCaption, domainFilter.fieldName, Contract.FilterType.Range, minValue, maxValue, domainFilter.includeNullValues); - }; - FilterServiceImpl.prototype.convertRelativeDateFilter = function (domainFilter) { - var anchorDateValue = new GetDataModels_1.DataValue(domainFilter.anchorDate.value, domainFilter.anchorDate.formattedValue); - return new FilterModels_1.RelativeDateFilter(domainFilter.visualId.worksheet, domainFilter.fieldCaption, domainFilter.fieldName, Contract.FilterType.RelativeDate, anchorDateValue, InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.dateStepPeriod.convert(domainFilter.periodType), InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.dateRangeType.convert(domainFilter.rangeType), domainFilter.rangeN); - }; - FilterServiceImpl.prototype.convertCategoricalDomain = function (domain, domainType) { - var values = domain.values.map(function (domainDv) { - return new GetDataModels_1.DataValue(domainDv.value, domainDv.formattedValue); - }); - return new FilterModels_1.CategoricalDomain(values, domainType); - }; - FilterServiceImpl.prototype.convertRangeDomain = function (domain, domainType) { - var min = new GetDataModels_1.DataValue(domain.min.value, domain.min.formattedValue); - var max = new GetDataModels_1.DataValue(domain.max.value, domain.max.formattedValue); - return new FilterModels_1.RangeDomain(min, max, domainType); - }; - return FilterServiceImpl; - }()); - exports.FilterServiceImpl = FilterServiceImpl; - //# sourceMappingURL=FilterServiceImpl.js.map - -/***/ }, -/* 27 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - /** - * This is your main. This is where you re-export everything you want to be publicly available. - * - * The build enforces that the file has the same name as the global variable that is exported. - */ - Object.defineProperty(exports, "__esModule", { value: true }); - var EnumConverter_1 = __webpack_require__(28); - exports.EnumConverter = EnumConverter_1.EnumConverter; - var Param_1 = __webpack_require__(29); - exports.Param = Param_1.Param; - //# sourceMappingURL=ApiUtils.js.map - -/***/ }, -/* 28 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * This class converts from a source enum value to destination enum - * value given a mapping from source to destination when constructed. - */ - var EnumConverter = (function () { - function EnumConverter(_mappings, _defaultVal) { - this._mappings = _mappings; - this._defaultVal = _defaultVal; - } - EnumConverter.prototype.convert = function (enumVal, throwIfMissing) { - if (this._mappings.hasOwnProperty(enumVal)) { - return this._mappings[enumVal]; - } - if (this._defaultVal !== undefined && !throwIfMissing) { - return this._defaultVal; - } - throw new Error('Mapping not found for ' + enumVal); - }; - return EnumConverter; - }()); - exports.EnumConverter = EnumConverter; - //# sourceMappingURL=EnumConverter.js.map - -/***/ }, -/* 29 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Param = (function () { - function Param() { - } - /** - * Verifies that an incoming parameter is 'truthy' and throws - * an error if it's not. This will throw an error if the value - * is null, undefined, NaN, the empty string, 0, or false. - * - * @param argumentValue value to verify - * @param argumentName name of argument to verify - */ - /*tslint:disable-next-line */ - Param.verifyValue = function (argumentValue, argumentName) { - if (!argumentValue) { - throw new Error('Value is invalid for argument: ' + argumentName); - } - }; - /** - * Verifies that a string is valid. Throws an error if the string is - * null, undefined, or NaN. - * - * @param argumentValue value to verify - * @param argumentName name of argument to verify - */ - Param.verifyString = function (argumentValue, argumentName) { - if (argumentValue === null || argumentValue === undefined) { - throw new Error('String value is invalid for argument: ' + argumentName); - } - }; - /** - * Verifies the value is part of the Enum - * - * String enums are {string : string} dictionaries which are not reverse mappable - * This is an ugly workaround - * @param value value to verify - * @param enumType enum to verify against - */ - /* tslint:disable:no-any */ - Param.isValidEnumValue = function (value, enumType) { - var isValid = false; - Object.keys(enumType).forEach(function (enumKey) { - if (enumType[enumKey] === value.toString()) { - isValid = true; - } - }); - return isValid; - }; - /* tslint:enable:no-any */ - /** - * serializes the date into the format that the server expects. - * @param date the date to serialize - */ - Param.serializeDateForPlatform = function (date) { - var year = date.getUTCFullYear(); - var month = date.getUTCMonth() + 1; - var day = date.getUTCDate(); - var hh = date.getUTCHours(); - var mm = date.getUTCMinutes(); - var sec = date.getUTCSeconds(); - return year + '-' + month + '-' + day + ' ' + hh + ':' + mm + ':' + sec; - }; - Param.serializeBooleanForPlatform = function (bool) { - return bool ? 'true' : 'false'; - }; - Param.serializeNumberForPlatform = function (num) { - return num.toString(10); - }; - /** - * Verifies the params min and max for applying range filter - * @param min range min - * @param max range max - */ - /* tslint:disable:no-any */ - Param.verifyRangeParamType = function (min, max) { - /* tslint:enable:no-any */ - if (!min && !max) { - throw new Error('Missing Parameter: At least one of min or max is required'); - } - if (!Param.isTypeNumber(min) && !Param.isTypeDate(min)) { - throw new Error('Invalid Parameter Type: Only Date and number are allowed for parameter min'); - } - if (!Param.isTypeNumber(max) && !Param.isTypeDate(max)) { - throw new Error('Invalid Parameter Type: Only Date and number are allowed for parameter max'); - } - if (typeof (min) !== typeof (max)) { - throw new Error('Invalid Parameter Type: Parameters min and max should be of the same type'); - } - }; - /** - * Verifies the input is a number - */ - /* tslint:disable:no-any */ - Param.isTypeNumber = function (input) { - return typeof (input) === 'number' || input instanceof Number; - }; - /* tslint:enable:no-any */ - /** - * Verifies the input is a Date - */ - /* tslint:disable:no-any */ - Param.isTypeDate = function (input) { - return input instanceof Date; - }; - /* tslint:enable:no-any */ - /* tslint:disable-next-line:no-any */ - Param.isTypeString = function (input) { - return typeof (input) === 'string' || input instanceof String; - }; - /* tslint:disable-next-line:no-any */ - Param.isTypeBool = function (input) { - return typeof (input) === 'boolean' || input instanceof Boolean; - }; - /* tslint:disable-next-line:no-any */ - Param.serializeParamterValue = function (value) { - if (Param.isTypeNumber(value)) { - return Param.serializeNumberForPlatform(value); - } - else if (Param.isTypeDate(value)) { - return Param.serializeDateForPlatform(value); - } - else if (Param.isTypeBool(value)) { - return Param.serializeBooleanForPlatform(value); - } - else if (Param.isTypeString(value)) { - return value; - } - else { - throw new Error('Value is invalid for argument: value'); - } - }; - return Param; - }()); - exports.Param = Param; - //# sourceMappingURL=Param.js.map - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_external_contract_1 = __webpack_require__(16); - var api_internal_contract_1 = __webpack_require__(2); - var api_utils_1 = __webpack_require__(27); - /* tslint:disable:typedef - Disable this to make declaring these classes a bit easier */ - /** - * Maps enums used by the external-api-contract to the enums used - * in the internal-api-contract, which developers code against. - */ - var ExternalToInternalEnumMappings = (function () { - function ExternalToInternalEnumMappings() { - } - ExternalToInternalEnumMappings.nullOptions = new api_utils_1.EnumConverter((_a = {}, - _a[api_external_contract_1.FilterNullOption.AllValues] = api_internal_contract_1.FilterNullOption.AllValues, - _a[api_external_contract_1.FilterNullOption.NonNullValues] = api_internal_contract_1.FilterNullOption.NonNullValues, - _a[api_external_contract_1.FilterNullOption.NonNullValues] = api_internal_contract_1.FilterNullOption.NullValues, - _a)); - ExternalToInternalEnumMappings.filterDomainType = new api_utils_1.EnumConverter((_b = {}, - _b[api_external_contract_1.FilterDomainType.Relevant] = api_internal_contract_1.FilterDomainType.Relevant, - _b[api_external_contract_1.FilterDomainType.Database] = api_internal_contract_1.FilterDomainType.Database, - _b)); - return ExternalToInternalEnumMappings; - }()); - exports.ExternalToInternalEnumMappings = ExternalToInternalEnumMappings; - var _a, _b; - /* tslint:enable:typedef */ - //# sourceMappingURL=ExternalToInternalEnumMappings.js.map - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_external_contract_1 = __webpack_require__(16); - var api_internal_contract_1 = __webpack_require__(2); - var api_utils_1 = __webpack_require__(27); - /* tslint:disable:typedef - Disable this to make declaring these classes a bit easier */ - /** - * Maps enums used by the internal-api-contract to the enums used - * in the external-api-contract, which developers code against. - */ - var InternalToExternalEnumMappings = (function () { - function InternalToExternalEnumMappings() { - } - InternalToExternalEnumMappings.addInContext = new api_utils_1.EnumConverter((_a = {}, - _a[api_internal_contract_1.AddInContext.Desktop] = api_external_contract_1.AddInContext.Desktop, - _a[api_internal_contract_1.AddInContext.Server] = api_external_contract_1.AddInContext.Server, - _a)); - InternalToExternalEnumMappings.addInMode = new api_utils_1.EnumConverter((_b = {}, - _b[api_internal_contract_1.AddInMode.Authoring] = api_external_contract_1.AddInMode.Authoring, - _b[api_internal_contract_1.AddInMode.Viewing] = api_external_contract_1.AddInMode.Viewing, - _b)); - InternalToExternalEnumMappings.columnType = new api_utils_1.EnumConverter((_c = {}, - _c[api_internal_contract_1.ColumnType.Continuous] = api_external_contract_1.ColumnType.Continuous, - _c[api_internal_contract_1.ColumnType.Discrete] = api_external_contract_1.ColumnType.Discrete, - _c)); - InternalToExternalEnumMappings.fieldAggregationType = new api_utils_1.EnumConverter((_d = {}, - _d[api_internal_contract_1.FieldAggregationType.Attr] = api_external_contract_1.FieldAggregationType.Attr, - _d[api_internal_contract_1.FieldAggregationType.Avg] = api_external_contract_1.FieldAggregationType.Avg, - _d[api_internal_contract_1.FieldAggregationType.Count] = api_external_contract_1.FieldAggregationType.Count, - _d[api_internal_contract_1.FieldAggregationType.Countd] = api_external_contract_1.FieldAggregationType.Countd, - _d[api_internal_contract_1.FieldAggregationType.Day] = api_external_contract_1.FieldAggregationType.Day, - _d[api_internal_contract_1.FieldAggregationType.End] = api_external_contract_1.FieldAggregationType.End, - _d[api_internal_contract_1.FieldAggregationType.Hour] = api_external_contract_1.FieldAggregationType.Hour, - _d[api_internal_contract_1.FieldAggregationType.InOut] = api_external_contract_1.FieldAggregationType.InOut, - _d[api_internal_contract_1.FieldAggregationType.Kurtosis] = api_external_contract_1.FieldAggregationType.Kurtosis, - _d[api_internal_contract_1.FieldAggregationType.Max] = api_external_contract_1.FieldAggregationType.Max, - _d[api_internal_contract_1.FieldAggregationType.Mdy] = api_external_contract_1.FieldAggregationType.Mdy, - _d[api_internal_contract_1.FieldAggregationType.Median] = api_external_contract_1.FieldAggregationType.Median, - _d[api_internal_contract_1.FieldAggregationType.Min] = api_external_contract_1.FieldAggregationType.Min, - _d[api_internal_contract_1.FieldAggregationType.Minute] = api_external_contract_1.FieldAggregationType.Minute, - _d[api_internal_contract_1.FieldAggregationType.MonthYear] = api_external_contract_1.FieldAggregationType.MonthYear, - _d[api_internal_contract_1.FieldAggregationType.None] = api_external_contract_1.FieldAggregationType.None, - _d[api_internal_contract_1.FieldAggregationType.Qtr] = api_external_contract_1.FieldAggregationType.Qtr, - _d[api_internal_contract_1.FieldAggregationType.Quart1] = api_external_contract_1.FieldAggregationType.Quart1, - _d[api_internal_contract_1.FieldAggregationType.Quart3] = api_external_contract_1.FieldAggregationType.Quart3, - _d[api_internal_contract_1.FieldAggregationType.Second] = api_external_contract_1.FieldAggregationType.Second, - _d[api_internal_contract_1.FieldAggregationType.Skewness] = api_external_contract_1.FieldAggregationType.Skewness, - _d[api_internal_contract_1.FieldAggregationType.Stdev] = api_external_contract_1.FieldAggregationType.Stdev, - _d[api_internal_contract_1.FieldAggregationType.Stdevp] = api_external_contract_1.FieldAggregationType.Stdevp, - _d[api_internal_contract_1.FieldAggregationType.Sum] = api_external_contract_1.FieldAggregationType.Sum, - _d[api_internal_contract_1.FieldAggregationType.TruncDay] = api_external_contract_1.FieldAggregationType.TruncDay, - _d[api_internal_contract_1.FieldAggregationType.TruncHour] = api_external_contract_1.FieldAggregationType.TruncHour, - _d[api_internal_contract_1.FieldAggregationType.TruncMinute] = api_external_contract_1.FieldAggregationType.TruncMinute, - _d[api_internal_contract_1.FieldAggregationType.TruncMonth] = api_external_contract_1.FieldAggregationType.TruncMonth, - _d[api_internal_contract_1.FieldAggregationType.TruncQtr] = api_external_contract_1.FieldAggregationType.TruncQtr, - _d[api_internal_contract_1.FieldAggregationType.TruncSecond] = api_external_contract_1.FieldAggregationType.TruncSecond, - _d[api_internal_contract_1.FieldAggregationType.TruncWeek] = api_external_contract_1.FieldAggregationType.TruncWeek, - _d[api_internal_contract_1.FieldAggregationType.TruncYear] = api_external_contract_1.FieldAggregationType.TruncYear, - _d[api_internal_contract_1.FieldAggregationType.User] = api_external_contract_1.FieldAggregationType.User, - _d[api_internal_contract_1.FieldAggregationType.Var] = api_external_contract_1.FieldAggregationType.Var, - _d[api_internal_contract_1.FieldAggregationType.Varp] = api_external_contract_1.FieldAggregationType.Varp, - _d[api_internal_contract_1.FieldAggregationType.Week] = api_external_contract_1.FieldAggregationType.Week, - _d[api_internal_contract_1.FieldAggregationType.Weekday] = api_external_contract_1.FieldAggregationType.Weekday, - _d[api_internal_contract_1.FieldAggregationType.Year] = api_external_contract_1.FieldAggregationType.Year, - _d)); - InternalToExternalEnumMappings.fieldRoleType = new api_utils_1.EnumConverter((_e = {}, - _e[api_internal_contract_1.FieldRoleType.Dimension] = api_external_contract_1.FieldRoleType.Dimension, - _e[api_internal_contract_1.FieldRoleType.Measure] = api_external_contract_1.FieldRoleType.Measure, - _e[api_internal_contract_1.FieldRoleType.Unknown] = api_external_contract_1.FieldRoleType.Unknown, - _e)); - InternalToExternalEnumMappings.sheetType = new api_utils_1.EnumConverter((_f = {}, - _f[api_internal_contract_1.SheetType.Dashboard] = api_external_contract_1.SheetType.Dashboard, - _f[api_internal_contract_1.SheetType.Story] = api_external_contract_1.SheetType.Story, - _f[api_internal_contract_1.SheetType.Worksheet] = api_external_contract_1.SheetType.Worksheet, - _f)); - InternalToExternalEnumMappings.dashboardObjectType = new api_utils_1.EnumConverter((_g = {}, - _g[api_internal_contract_1.DashboardObjectType.AddIn] = api_external_contract_1.DashboardObjectType.AddIn, - _g[api_internal_contract_1.DashboardObjectType.Blank] = api_external_contract_1.DashboardObjectType.Blank, - _g[api_internal_contract_1.DashboardObjectType.Image] = api_external_contract_1.DashboardObjectType.Image, - _g[api_internal_contract_1.DashboardObjectType.Legend] = api_external_contract_1.DashboardObjectType.Legend, - _g[api_internal_contract_1.DashboardObjectType.PageFilter] = api_external_contract_1.DashboardObjectType.PageFilter, - _g[api_internal_contract_1.DashboardObjectType.ParameterControl] = api_external_contract_1.DashboardObjectType.ParameterControl, - _g[api_internal_contract_1.DashboardObjectType.QuickFilter] = api_external_contract_1.DashboardObjectType.QuickFilter, - _g[api_internal_contract_1.DashboardObjectType.Text] = api_external_contract_1.DashboardObjectType.Text, - _g[api_internal_contract_1.DashboardObjectType.Title] = api_external_contract_1.DashboardObjectType.Title, - _g[api_internal_contract_1.DashboardObjectType.WebPage] = api_external_contract_1.DashboardObjectType.WebPage, - _g[api_internal_contract_1.DashboardObjectType.Worksheet] = api_external_contract_1.DashboardObjectType.Worksheet, - _g)); - InternalToExternalEnumMappings.dataType = new api_utils_1.EnumConverter((_h = {}, - _h[api_internal_contract_1.DataType.Bool] = api_external_contract_1.DataType.Bool, - _h[api_internal_contract_1.DataType.Date] = api_external_contract_1.DataType.Date, - _h[api_internal_contract_1.DataType.DateTime] = api_external_contract_1.DataType.DateTime, - _h[api_internal_contract_1.DataType.Float] = api_external_contract_1.DataType.Float, - _h[api_internal_contract_1.DataType.Int] = api_external_contract_1.DataType.Int, - _h[api_internal_contract_1.DataType.String] = api_external_contract_1.DataType.String, - _h)); - InternalToExternalEnumMappings.filterUpdateType = new api_utils_1.EnumConverter((_j = {}, - _j[api_internal_contract_1.FilterUpdateType.Add] = api_external_contract_1.FilterUpdateType.Add, - _j[api_internal_contract_1.FilterUpdateType.All] = api_external_contract_1.FilterUpdateType.All, - _j[api_internal_contract_1.FilterUpdateType.Remove] = api_external_contract_1.FilterUpdateType.Remove, - _j[api_internal_contract_1.FilterUpdateType.Replace] = api_external_contract_1.FilterUpdateType.Replace, - _j)); - InternalToExternalEnumMappings.allowableValues = new api_utils_1.EnumConverter((_k = {}, - _k[api_internal_contract_1.DomainRestrictionType.All] = api_external_contract_1.ParameterValueType.All, - _k[api_internal_contract_1.DomainRestrictionType.List] = api_external_contract_1.ParameterValueType.List, - _k[api_internal_contract_1.DomainRestrictionType.Range] = api_external_contract_1.ParameterValueType.Range, - _k)); - InternalToExternalEnumMappings.dateStepPeriod = new api_utils_1.EnumConverter((_l = {}, - _l[api_internal_contract_1.DateStepPeriod.Years] = api_external_contract_1.PeriodType.Years, - _l[api_internal_contract_1.DateStepPeriod.Quarters] = api_external_contract_1.PeriodType.Quarters, - _l[api_internal_contract_1.DateStepPeriod.Months] = api_external_contract_1.PeriodType.Months, - _l[api_internal_contract_1.DateStepPeriod.Weeks] = api_external_contract_1.PeriodType.Weeks, - _l[api_internal_contract_1.DateStepPeriod.Days] = api_external_contract_1.PeriodType.Days, - _l[api_internal_contract_1.DateStepPeriod.Hours] = api_external_contract_1.PeriodType.Hours, - _l[api_internal_contract_1.DateStepPeriod.Minutes] = api_external_contract_1.PeriodType.Minutes, - _l[api_internal_contract_1.DateStepPeriod.Seconds] = api_external_contract_1.PeriodType.Seconds, - _l)); - InternalToExternalEnumMappings.dateRangeType = new api_utils_1.EnumConverter((_m = {}, - _m[api_internal_contract_1.DateRangeType.Current] = api_external_contract_1.DateRangeType.Current, - _m[api_internal_contract_1.DateRangeType.Last] = api_external_contract_1.DateRangeType.Last, - _m[api_internal_contract_1.DateRangeType.LastN] = api_external_contract_1.DateRangeType.LastN, - _m[api_internal_contract_1.DateRangeType.Next] = api_external_contract_1.DateRangeType.Next, - _m[api_internal_contract_1.DateRangeType.NextN] = api_external_contract_1.DateRangeType.NextN, - _m[api_internal_contract_1.DateRangeType.ToDate] = api_external_contract_1.DateRangeType.ToDate, - _m)); - InternalToExternalEnumMappings.filterType = new api_utils_1.EnumConverter((_o = {}, - _o[api_internal_contract_1.FilterType.Categorical] = api_external_contract_1.FilterType.Categorical, - _o[api_internal_contract_1.FilterType.Range] = api_external_contract_1.FilterType.Range, - _o[api_internal_contract_1.FilterType.RelativeDate] = api_external_contract_1.FilterType.RelativeDate, - _o[api_internal_contract_1.FilterType.Hierarchical] = api_external_contract_1.FilterType.Hierarchical, - _o)); - return InternalToExternalEnumMappings; - }()); - exports.InternalToExternalEnumMappings = InternalToExternalEnumMappings; - var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o; - /* tslint:enable:typedef */ - //# sourceMappingURL=InternalToExternalEnumMappings.js.map - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var Contract = __webpack_require__(16); - var ServiceRegistry_1 = __webpack_require__(33); - var Filter = (function () { - function Filter(_worksheetName, _fieldName, _filterType, _fieldId) { - this._worksheetName = _worksheetName; - this._fieldName = _fieldName; - this._filterType = _filterType; - this._fieldId = _fieldId; - } - Object.defineProperty(Filter.prototype, "worksheetName", { - get: function () { - return this._worksheetName; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Filter.prototype, "fieldName", { - get: function () { - return this._fieldName; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Filter.prototype, "fieldId", { - get: function () { - return this._fieldId; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Filter.prototype, "filterType", { - get: function () { - return this._filterType; - }, - enumerable: true, - configurable: true - }); - Filter.prototype.getFieldAsync = function () { - throw new Error('Method not implemented'); - }; - return Filter; - }()); - exports.Filter = Filter; - var CategoricalFilter = (function (_super) { - __extends(CategoricalFilter, _super); - function CategoricalFilter(worksheetName, fieldName, fieldId, filterType, _appliedValues, _isExcludeMode) { - var _this = _super.call(this, worksheetName, fieldName, filterType, fieldId) || this; - _this._appliedValues = _appliedValues; - _this._isExcludeMode = _isExcludeMode; - return _this; - } - Object.defineProperty(CategoricalFilter.prototype, "appliedValues", { - get: function () { - return this._appliedValues; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CategoricalFilter.prototype, "isExcludeMode", { - get: function () { - return this._isExcludeMode; - }, - enumerable: true, - configurable: true - }); - CategoricalFilter.prototype.getDomainAsync = function (domainType) { - if (!domainType) { - domainType = Contract.FilterDomainType.Relevant; - } - var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */); - return service.getCategoricalDomainAsync(this._worksheetName, this._fieldId, domainType); - }; - return CategoricalFilter; - }(Filter)); - exports.CategoricalFilter = CategoricalFilter; - var RangeFilter = (function (_super) { - __extends(RangeFilter, _super); - function RangeFilter(worksheetName, fieldName, fieldId, filterType, _min, _max, _includeNullValues) { - var _this = _super.call(this, worksheetName, fieldName, filterType, fieldId) || this; - _this._min = _min; - _this._max = _max; - _this._includeNullValues = _includeNullValues; - return _this; - } - Object.defineProperty(RangeFilter.prototype, "minValue", { - get: function () { - return this._min; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(RangeFilter.prototype, "maxValue", { - get: function () { - return this._max; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(RangeFilter.prototype, "includeNullValues", { - get: function () { - return this._includeNullValues; - }, - enumerable: true, - configurable: true - }); - RangeFilter.prototype.getDomainAsync = function (domainType) { - var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */); - if (!domainType) { - domainType = Contract.FilterDomainType.Relevant; - } - return service.getRangeDomainAsync(this._worksheetName, this._fieldId, domainType); - }; - return RangeFilter; - }(Filter)); - exports.RangeFilter = RangeFilter; - var RelativeDateFilter = (function (_super) { - __extends(RelativeDateFilter, _super); - function RelativeDateFilter(worksheetName, fieldName, fieldId, filterType, _anchorDate, _periodType, _rangeType, _rangeN) { - var _this = _super.call(this, worksheetName, fieldName, filterType, fieldId) || this; - _this._anchorDate = _anchorDate; - _this._periodType = _periodType; - _this._rangeType = _rangeType; - _this._rangeN = _rangeN; - return _this; - } - Object.defineProperty(RelativeDateFilter.prototype, "anchorDate", { - get: function () { - return this._anchorDate; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(RelativeDateFilter.prototype, "periodType", { - get: function () { - return this._periodType; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(RelativeDateFilter.prototype, "rangeType", { - get: function () { - return this._rangeType; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(RelativeDateFilter.prototype, "rangeN", { - get: function () { - return this._rangeN; - }, - enumerable: true, - configurable: true - }); - return RelativeDateFilter; - }(Filter)); - exports.RelativeDateFilter = RelativeDateFilter; - var CategoricalDomain = (function () { - function CategoricalDomain(_values, _domainType) { - this._values = _values; - this._domainType = _domainType; - } - Object.defineProperty(CategoricalDomain.prototype, "values", { - get: function () { - return this._values; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(CategoricalDomain.prototype, "type", { - get: function () { - return this._domainType; - }, - enumerable: true, - configurable: true - }); - return CategoricalDomain; - }()); - exports.CategoricalDomain = CategoricalDomain; - var RangeDomain = (function () { - function RangeDomain(_min, _max, _domainType) { - this._min = _min; - this._max = _max; - this._domainType = _domainType; - } - Object.defineProperty(RangeDomain.prototype, "type", { - get: function () { - return this._domainType; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(RangeDomain.prototype, "min", { - get: function () { - return this._min; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(RangeDomain.prototype, "max", { - get: function () { - return this._max; - }, - enumerable: true, - configurable: true - }); - return RangeDomain; - }()); - exports.RangeDomain = RangeDomain; - //# sourceMappingURL=FilterModels.js.map - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var ServiceRegistryImpl = (function () { - function ServiceRegistryImpl() { - this._services = {}; - } - ServiceRegistryImpl.prototype.registerService = function (service) { - this._services[service.serviceName] = service; - }; - ServiceRegistryImpl.prototype.getService = function (serviceName) { - if (!this._services.hasOwnProperty(serviceName)) { - throw new Error("No Service " + serviceName + " is registered"); - } - return this._services[serviceName]; - }; - return ServiceRegistryImpl; - }()); - /** - * static class used for getting access to the single instance - * of the ApiServiceRegistry - */ - var ApiServiceRegistry = (function () { - // Private to avoid anyone constructing this - function ApiServiceRegistry() { - } - Object.defineProperty(ApiServiceRegistry, "instance", { - /** - * Gets the singleton instance of the ServiceRegistry - */ - get: function () { - if (!window.__tableauApiServiceRegistry) { - ApiServiceRegistry.setInstance(new ServiceRegistryImpl()); - } - if (!window.__tableauApiServiceRegistry) { - throw new Error('Assigning service registry failed'); - } - return window.__tableauApiServiceRegistry; - }, - enumerable: true, - configurable: true - }); - /** - * Helper method to override the registry instance. Can be used by unit tests - * - * @param {ServiceRegistry} serviceRegistry The new registry - */ - ApiServiceRegistry.setInstance = function (serviceRegistry) { - window.__tableauApiServiceRegistry = serviceRegistry; - }; - return ApiServiceRegistry; - }()); - exports.ApiServiceRegistry = ApiServiceRegistry; - //# sourceMappingURL=ServiceRegistry.js.map - -/***/ }, -/* 34 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Contract = __webpack_require__(16); - var api_internal_contract_1 = __webpack_require__(2); - var GetDataModels_1 = __webpack_require__(13); - var GetDataService_1 = __webpack_require__(23); - var GetDataServiceImpl = (function () { - function GetDataServiceImpl(dispatcher) { - this._dispatcher = dispatcher; - } - Object.defineProperty(GetDataServiceImpl.prototype, "serviceName", { - get: function () { - return "get-data-service" /* GetData */; - }, - enumerable: true, - configurable: true - }); - GetDataServiceImpl.prototype.getUnderlyingDataAsync = function (visualId, getType, ignoreAliases, ignoreSelection, includeAllColumns, maxRows) { - var _this = this; - // Create all of our parameters - var verb = getType === GetDataService_1.GetDataType.Summary ? api_internal_contract_1.VerbId.GetDataSummaryData : api_internal_contract_1.VerbId.GetUnderlyingData; - var parameters = {}; - parameters[api_internal_contract_1.ParameterId.VisualId] = visualId; - parameters[api_internal_contract_1.ParameterId.IgnoreAliases] = ignoreAliases; - parameters[api_internal_contract_1.ParameterId.IgnoreSelection] = ignoreSelection; - parameters[api_internal_contract_1.ParameterId.IncludeAllColumns] = includeAllColumns; - parameters[api_internal_contract_1.ParameterId.MaxRows] = maxRows; - return this._dispatcher.execute(verb, parameters).then(function (response) { - var responseData = response.result; - return _this.processResultsTable(responseData.data, responseData.isSummary); - }); - }; - GetDataServiceImpl.prototype.getSelectedMarksAsync = function (visualId) { - var _this = this; - var parameters = (_a = {}, _a[api_internal_contract_1.ParameterId.VisualId] = visualId, _a); - return this._dispatcher.execute(api_internal_contract_1.VerbId.GetSelectedMarks, parameters).then(function (response) { - var responseData = response.result; - return { - data: responseData.data.map(function (table) { return _this.processResultsTable(table, true); }) - }; - }); - var _a; - }; - GetDataServiceImpl.prototype.getHighlightedMarksAsync = function (visualId) { - var _this = this; - var parameters = (_a = {}, _a[api_internal_contract_1.ParameterId.VisualId] = visualId, _a); - return this._dispatcher.execute(api_internal_contract_1.VerbId.GetHighlightedMarks, parameters).then(function (response) { - var responseData = response.result; - return { - data: responseData.data.map(function (table) { return _this.processResultsTable(table, true); }) - }; - }); - var _a; - }; - GetDataServiceImpl.prototype.getDataSourceDataAsync = function (dataSourceId, ignoreAliases, maxRows, columnsToInclude) { - var _this = this; - var parameters = (_a = {}, - _a[api_internal_contract_1.ParameterId.DataSourceId] = dataSourceId, - _a[api_internal_contract_1.ParameterId.IgnoreAliases] = ignoreAliases, - _a[api_internal_contract_1.ParameterId.MaxRows] = maxRows, - _a[api_internal_contract_1.ParameterId.ColumnsToInclude] = columnsToInclude, - _a); - return this._dispatcher.execute(api_internal_contract_1.VerbId.GetDataSourceData, parameters).then(function (response) { - var responseData = response.result; - return _this.processResultsTable(responseData.data, false); - }); - var _a; - }; - GetDataServiceImpl.prototype.processResultsTable = function (responseData, isSummary) { - var headers = responseData.headers.map(function (h) { return new GetDataModels_1.Column(h.fieldCaption, Contract.DataType.String /*h.DataType*/, h.isReferenced, h.index); }); - // TODO This should be controlled by a flag indicating whether this api will respond marks info or not - var marks; - if (responseData.marks) { - marks = responseData.marks.map(function (h) { return new GetDataModels_1.MarkInfo(h.type, h.color, h.tupleId); }); - } - var table = responseData.dataTable.map(function (row) { - return row.map(function (cell) { - return new GetDataModels_1.DataValue(cell.value, cell.formattedValue); - }); - }); - if (marks) { - return new GetDataModels_1.DataTable(table, headers, table.length, isSummary, marks); - } - return new GetDataModels_1.DataTable(table, headers, table.length, isSummary); - }; - return GetDataServiceImpl; - }()); - exports.GetDataServiceImpl = GetDataServiceImpl; - //# sourceMappingURL=GetDataServiceImpl.js.map - -/***/ }, -/* 35 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Registration = (function () { - function Registration(_filterFn, _callbackFn) { - this._filterFn = _filterFn; - this._callbackFn = _callbackFn; - // Nothing Here - } - Registration.prototype.onNotification = function (notificationModel) { - if (this._filterFn(notificationModel)) { - this._callbackFn(notificationModel); - } - }; - return Registration; - }()); - var NotificationServiceImpl = (function () { - function NotificationServiceImpl(dispatcher) { - this.dispatcher = dispatcher; - this._handlers = {}; - this.dispatcher.registerNotificationHandler(this.onNotification.bind(this)); - } - Object.defineProperty(NotificationServiceImpl.prototype, "serviceName", { - get: function () { - return "notification-service" /* Notification */; - }, - enumerable: true, - configurable: true - }); - NotificationServiceImpl.prototype.registerHandler = function (id, filterFn, handler) { - var _this = this; - var handlers = this._handlers[id] || new Array(); - var registration = new Registration(filterFn, handler); - handlers.push(registration); - this._handlers[id] = handlers; - return function () { return _this.removeRegistration(id, registration); }; - }; - NotificationServiceImpl.prototype.hasHandlersForNotificationType = function (id) { - return this._handlers.hasOwnProperty(id); - }; - NotificationServiceImpl.prototype.onNotification = function (notification) { - if (!this.hasHandlersForNotificationType(notification.notificationId)) { - return; - } - // Go through and check for all the handlers of this particular notification - this._handlers[notification.notificationId].forEach(function (h) { return h.onNotification(notification.data); }); - }; - NotificationServiceImpl.prototype.removeRegistration = function (id, registration) { - if (!this.hasHandlersForNotificationType(id)) { - return; - } - this._handlers[id] = this._handlers[id].filter(function (reg) { return reg !== registration; }); - }; - return NotificationServiceImpl; - }()); - exports.NotificationServiceImpl = NotificationServiceImpl; - //# sourceMappingURL=NotificationServiceImpl.js.map - -/***/ }, -/* 36 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(2); - var ParameterImpl_1 = __webpack_require__(37); - var Parameter_1 = __webpack_require__(10); - var ParametersServiceImpl = (function () { - function ParametersServiceImpl(dispatcher) { - this.dispatcher = dispatcher; - } - Object.defineProperty(ParametersServiceImpl.prototype, "serviceName", { - get: function () { - return "parameters-service" /* Parameters */; - }, - enumerable: true, - configurable: true - }); - ParametersServiceImpl.prototype.getParametersForSheetAsync = function (sheetPath, sheet) { - var parameters = (_a = {}, - _a[api_internal_contract_1.ParameterId.SheetPath] = sheetPath, - _a); - return this.dispatcher.execute(api_internal_contract_1.VerbId.GetParametersForSheet, parameters).then(function (response) { - // TODO - Check for error - var result = response.result; - return result.map(function (parameterInfo) { - var impl = new ParameterImpl_1.ParameterImpl(parameterInfo); - return new Parameter_1.Parameter(impl, sheet); - }); - }); - var _a; - }; - ParametersServiceImpl.prototype.changeParameterValueAsync = function (fieldName, newValue) { - var parameters = (_a = {}, - _a[api_internal_contract_1.ParameterId.ParameterFieldName] = fieldName, - _a[api_internal_contract_1.ParameterId.ParameterValue] = newValue, - _a); - return this.dispatcher.execute(api_internal_contract_1.VerbId.ChangeParameterValue, parameters).then(function (response) { - var result = response.result; - return result; - }); - var _a; - }; - ParametersServiceImpl.prototype.findParameterByNameAsync = function (name, sheet) { - return this.findParameterAsync(sheet, name, undefined); - }; - ParametersServiceImpl.prototype.findParameterByGlobalFieldNameAsync = function (fieldName, sheet) { - return this.findParameterAsync(sheet, undefined, fieldName); - }; - ParametersServiceImpl.prototype.findParameterAsync = function (sheet, name, fieldName) { - var parameters = {}; - if (name !== undefined) { - parameters[api_internal_contract_1.ParameterId.ParameterCaption] = name; - } - else if (fieldName !== undefined) { - parameters[api_internal_contract_1.ParameterId.ParameterFieldName] = fieldName; - } - else { - throw new Error('Missing require field name or caption'); - } - return this.dispatcher.execute(api_internal_contract_1.VerbId.FindParameter, parameters).then(function (response) { - var instanceOfParameterInfo = function (object) { - return 'fieldName' in object; - }; - // We need to check to see if we got a valid response back again - if (instanceOfParameterInfo(response.result)) { - var result = response.result; - var impl = new ParameterImpl_1.ParameterImpl(result); - return new Parameter_1.Parameter(impl, sheet); - } - else { - return undefined; - } - }); - }; - return ParametersServiceImpl; - }()); - exports.ParametersServiceImpl = ParametersServiceImpl; - //# sourceMappingURL=ParametersServiceImpl.js.map - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Contract = __webpack_require__(16); - var api_internal_contract_1 = __webpack_require__(2); - var api_utils_1 = __webpack_require__(27); - var InternalToExternalEnumMappings_1 = __webpack_require__(31); - var ParameterChangedEvent_1 = __webpack_require__(38); - var GetDataModels_1 = __webpack_require__(13); - var ServiceRegistry_1 = __webpack_require__(33); - var SingleEventManagerImpl_1 = __webpack_require__(22); - var ParameterImpl = (function () { - function ParameterImpl(parameterInfo) { - this.setParameterInfo(parameterInfo); - } - Object.defineProperty(ParameterImpl.prototype, "name", { - get: function () { - return this._parameterInfo.name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(ParameterImpl.prototype, "currentValue", { - get: function () { - return new GetDataModels_1.DataValue(this._parameterInfo.currentValue.value, this._parameterInfo.currentValue.formattedValue); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(ParameterImpl.prototype, "dataType", { - get: function () { - return InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.dataType.convert(this._parameterInfo.dataType); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(ParameterImpl.prototype, "allowableValues", { - get: function () { - return this._allowableValues; - }, - enumerable: true, - configurable: true - }); - ParameterImpl.prototype.changeValueAsync = function (newValue) { - var _this = this; - var coercedValue = api_utils_1.Param.serializeParamterValue(newValue); - var parametersService = ServiceRegistry_1.ApiServiceRegistry.instance.getService("parameters-service" /* Parameters */); - return parametersService.changeParameterValueAsync(this._globalFieldName, coercedValue).then(function (parameterInfo) { - _this.setParameterInfo(parameterInfo); - return _this.currentValue; - }); - }; - /** - * Helper method which goes through and registers each event type this impl knows about - * with the NotificationService. It returns an array of SingleEventManager objects which - * can then be passed to an EventListenerManager to handle user registration / unregistration. - * - * @param sheet The sheet object which will be included with the event notifications - * @returns {Array} Collection of event managers to pass to an EventListenerManager - */ - ParameterImpl.prototype.initializeEvents = function (sheet) { - var _this = this; - var results = new Array(); - var notificationService; - try { - notificationService = ServiceRegistry_1.ApiServiceRegistry.instance.getService("notification-service" /* Notification */); - } - catch (e) { - // If we don't have this service registered, just return - return results; - } - // Initialize all of the event managers we'll need (one for each event type) - var parameterEvent = new SingleEventManagerImpl_1.SingleEventManagerImpl(Contract.TableauEventType.ParameterChanged); - notificationService.registerHandler(api_internal_contract_1.NotificationId.ParameterChanged, function (model) { - var fieldName = model; - return fieldName === _this._globalFieldName; - }, function (fieldName) { - parameterEvent.triggerEvent(function () { return new ParameterChangedEvent_1.ParameterChangedEvent(fieldName, sheet); }); - }); - results.push(parameterEvent); - return results; - }; - ParameterImpl.prototype.setParameterInfo = function (parameterInfo) { - this._parameterInfo = parameterInfo; - this._globalFieldName = parameterInfo.fieldName; - var type = InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.allowableValues.convert(parameterInfo.allowableValuesType); - var listValues; - var minValue; - var maxValue; - var stepSize; - var dateStepPeriod; - if (type === Contract.ParameterValueType.List) { - var values = parameterInfo.allowableValues || []; - listValues = values.map(function (val) { return new GetDataModels_1.DataValue(val.value, val.formattedValue); }); - } - else if (type === Contract.ParameterValueType.Range) { - minValue = parameterInfo.minValue && new GetDataModels_1.DataValue(parameterInfo.minValue.value, parameterInfo.minValue.formattedValue); - maxValue = parameterInfo.maxValue && new GetDataModels_1.DataValue(parameterInfo.maxValue.value, parameterInfo.maxValue.formattedValue); - stepSize = parameterInfo.stepSize; - dateStepPeriod = parameterInfo.dateStepPeriod && - InternalToExternalEnumMappings_1.InternalToExternalEnumMappings.dateStepPeriod.convert(parameterInfo.dateStepPeriod); - } - this._allowableValues = { - type: type, - allowableValues: listValues, - minValue: minValue, - maxValue: maxValue, - stepSize: stepSize, - dateStepPeriod: dateStepPeriod - }; - }; - return ParameterImpl; - }()); - exports.ParameterImpl = ParameterImpl; - //# sourceMappingURL=ParameterImpl.js.map - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var Contract = __webpack_require__(16); - var ServiceRegistry_1 = __webpack_require__(33); - var TableauSheetEvent_1 = __webpack_require__(19); - var ParameterChangedEvent = (function (_super) { - __extends(ParameterChangedEvent, _super); - function ParameterChangedEvent(_globalFieldName, sheet) { - var _this = _super.call(this, Contract.TableauEventType.ParameterChanged, sheet) || this; - _this._globalFieldName = _globalFieldName; - return _this; - } - ParameterChangedEvent.prototype.getParameterAsync = function () { - // Call down to our service to get the parameter back via its field name - var service = ServiceRegistry_1.ApiServiceRegistry.instance.getService("parameters-service" /* Parameters */); - return service.findParameterByGlobalFieldNameAsync(this._globalFieldName, this.sheet).then(function (parameter) { - if (parameter === undefined) { - throw new Error('Unable to find parameter'); - } - return parameter; - }); - }; - return ParameterChangedEvent; - }(TableauSheetEvent_1.TableauSheetEvent)); - exports.ParameterChangedEvent = ParameterChangedEvent; - //# sourceMappingURL=ParameterChangedEvent.js.map - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Contract = __webpack_require__(16); - var api_internal_contract_1 = __webpack_require__(2); - var SelectionModels_1 = __webpack_require__(40); - var SelectionServiceImpl = (function () { - function SelectionServiceImpl(dispatcher) { - this._dispatcher = dispatcher; - } - Object.defineProperty(SelectionServiceImpl.prototype, "serviceName", { - get: function () { - return "selection-service" /* Selection */; - }, - enumerable: true, - configurable: true - }); - /** - * Method to clear all the selected marks for the given worksheet. - * - * @param visualId - */ - SelectionServiceImpl.prototype.clearSelectedMarksAsync = function (visualId) { - var parameters = (_a = {}, _a[api_internal_contract_1.ParameterId.VisualId] = visualId, _a); - return this._dispatcher.execute(api_internal_contract_1.VerbId.ClearSelectedMarks, parameters).then(function (response) { - return; // Expecting an empty model and hence the void response. - }); - var _a; - }; - /** - * Method to select marks for the given worksheet. - * - * @param visualId - * @param selectionCriteria - * @param selectionUpdateType - */ - SelectionServiceImpl.prototype.selectMarksByValueAsync = function (visualId, selectionCriterias, selectionUpdateType) { - if (selectionCriterias.length === 0) { - throw new Error('Invalid selection criteria. Selections missing.'); - } - var selectionType = this.validateSelectionUpdateType(selectionUpdateType); - var selectionCriteriaType = this.validateSelectionCriteria(selectionCriterias[0]); - var selectionModelContainer = this.parseSelectionMarks(selectionCriterias, selectionCriteriaType); - var parameters = (_a = {}, - _a[api_internal_contract_1.ParameterId.VisualId] = visualId, - _a[api_internal_contract_1.ParameterId.SelectionUpdateType] = selectionType, - _a); - switch (selectionCriteriaType) { - case SelectionCriteriaType.HierarchicalType: { - parameters[api_internal_contract_1.ParameterId.HierValSelectionModels] = selectionModelContainer.hierModelArr; - break; - } - case SelectionCriteriaType.RangeType: { - parameters[api_internal_contract_1.ParameterId.QuantRangeSelectionModels] = selectionModelContainer.quantModelArr; - break; - } - case SelectionCriteriaType.DimensionType: { - parameters[api_internal_contract_1.ParameterId.DimValSelectionModels] = selectionModelContainer.dimModelArr; - break; - } - default: - break; - } - return this._dispatcher.execute(api_internal_contract_1.VerbId.SelectByValue, parameters).then(function (response) { - // Expecting an empty model and hence the void response. - return; - // TODO Investigate the error response with multiple output params and throw error accordingly. - }); - var _a; - }; - /** - * Method to select marks for the given worksheet. - * - * @param visualId - * @param MarkInfo - * @param selectionUpdateType - */ - SelectionServiceImpl.prototype.selectMarksByIdAsync = function (visualId, marks, selectionUpdateType) { - if (marks.length === 0) { - throw new Error('Invalid selection. Marks info missing.'); - } - var selectionType = this.validateSelectionUpdateType(selectionUpdateType); - var selectionModelContainer = this.parseSelectionIds(marks); - var parameters = (_a = {}, - _a[api_internal_contract_1.ParameterId.VisualId] = visualId, - _a[api_internal_contract_1.ParameterId.SelectionUpdateType] = selectionType, - _a[api_internal_contract_1.ParameterId.Selection] = selectionModelContainer.selection, - _a); - return this._dispatcher.execute(api_internal_contract_1.VerbId.SelectByValue, parameters).then(function (response) { - // Expecting an empty model and hence the void response. - return; - // TODO Investigate the error response with multiple output params and throw error accordingly. - }); - var _a; - }; - /** - * Method to prepare the pres models for selection by MarksInfo - * @param marks - */ - SelectionServiceImpl.prototype.parseSelectionIds = function (marks) { - var ids = []; - var selectionModelContainer = new SelectionModels_1.SelectionModelsContainer(); - for (var i = 0; i < marks.length; i++) { - var tupleId = marks[i].tupleId; - if (tupleId !== undefined && tupleId !== null) { - ids.push(tupleId.toString()); // collect the tuple ids - } - else { - throw new Error('Invalid tupleId provided.'); - } - } - if (ids.length !== 0) { - var tupleSelectionModel = new SelectionModels_1.TupleSelectionModel(); - tupleSelectionModel.selectionType = 'tuples'; - tupleSelectionModel.objectIds = ids; - selectionModelContainer.selection = tupleSelectionModel; - } - return selectionModelContainer; - }; - /** - * Method to prepare the pres models for selection by values. - * - * Supports 3 types for selection: - * 1) hierarchical value based selection - * 2) range value based selection - * 3) Dimension value based selection - * - * @param marks - * @param hierModelArr - * @param dimModelArr - * @param quantModelArr - * @param selection - */ - SelectionServiceImpl.prototype.parseSelectionMarks = function (selectionCriterias, selectionType) { - var selectionModelContainer = new SelectionModels_1.SelectionModelsContainer(); - var mixedSelectionsError = false; - for (var i = 0; i < selectionCriterias.length; i++) { - var st = selectionCriterias[i]; - if (st.fieldName && (st.value !== undefined && st.value !== null)) { - var catRegex = new RegExp('(\[[A-Za-z0-9]+]).*', 'g'); - var rangeOption = st.value; - if (catRegex.test(st.fieldName)) { - if (selectionType === SelectionCriteriaType.HierarchicalType) { - var hierModel = this.addToParamsList(st.fieldName, st.value); - selectionModelContainer.hierModelArr.push(hierModel); - } - else { - mixedSelectionsError = true; - break; - } - } - else if (rangeOption.min !== undefined - && rangeOption.max !== undefined) { - if (selectionType === SelectionCriteriaType.RangeType) { - var quantModel = this.addToRangeParamsList(st.fieldName, rangeOption); - selectionModelContainer.quantModelArr.push(quantModel); - } - else { - mixedSelectionsError = true; - break; - } - } - else { - if (selectionType === SelectionCriteriaType.DimensionType) { - var dimModel = this.addToParamsList(st.fieldName, st.value); - selectionModelContainer.dimModelArr.push(dimModel); - } - else { - mixedSelectionsError = true; - break; - } - } - } - } - if (mixedSelectionsError) { - throw new Error('Different types of selection criterias provided.'); - } - return selectionModelContainer; - }; - /** - * - * @param selectionCriterias Validate and determine the selection criterias type. - */ - SelectionServiceImpl.prototype.validateSelectionCriteria = function (selectionCriteria) { - var selectionType; - // Determine the type of selection, this command is by looking at the first selection - var crit = selectionCriteria; - var catRegex = new RegExp('(\[[A-Za-z0-9]+]).*', 'g'); - var rangeOption = crit.value; - if (crit.fieldName && (crit.value !== undefined && crit.value !== null)) { - if (catRegex.test(crit.fieldName)) { - selectionType = SelectionCriteriaType.HierarchicalType; - } - else if (rangeOption.min !== undefined - && rangeOption.max !== undefined) { - selectionType = SelectionCriteriaType.RangeType; - } - else { - selectionType = SelectionCriteriaType.DimensionType; - } - } - else { - throw new Error('Invalid selection criteria format.'); - } - return selectionType; - }; - /** - * Method to transform the key value pair into value based pres model object. - * - * @param valueSelectionModel - * @param fieldName - * @param value - */ - SelectionServiceImpl.prototype.addToParamsList = function (fieldName, value) { - var valueSelectionModel = new SelectionModels_1.ValueSelectionModel(); - var markValues = []; - if (value instanceof Array) { - var valueArr = value; - for (var i = 0; i < valueArr.length; i++) { - markValues.push(valueArr[i].toString()); - } - } - else { - markValues.push(value.toString()); - } - valueSelectionModel.qualifiedFieldCaption = fieldName; - valueSelectionModel.selectValues = markValues; - return valueSelectionModel; - }; - /** - * Method to transform the key value pair into range based selection pres model. - * - * TODO: Need to handle the parsing of date type values. - * - * @param valueSelectionModel - * @param fieldName - * @param value - */ - SelectionServiceImpl.prototype.addToRangeParamsList = function (fieldName, value) { - var rangeSelectionModel = new SelectionModels_1.RangeSelectionModel(); - rangeSelectionModel.qualifiedFieldCaption = fieldName; - if (value.max !== undefined && value.max !== null) { - rangeSelectionModel.maxValue = value.max.toString(); - } - if (value.min !== undefined && value.min !== null) { - rangeSelectionModel.minValue = value.min.toString(); - } - rangeSelectionModel.included = this.validateNullOptionType(value.nullOption); - return rangeSelectionModel; - }; - /** - * Method to validate the selection update type. - * - * @param selectionUpdateType - */ - SelectionServiceImpl.prototype.validateSelectionUpdateType = function (selectionUpdateType) { - if (selectionUpdateType === Contract.SelectionUpdateType.Replace) { - return api_internal_contract_1.SelectionUpdateType.Replace; - } - else if (selectionUpdateType === Contract.SelectionUpdateType.Add) { - return api_internal_contract_1.SelectionUpdateType.Add; - } - else if (selectionUpdateType === Contract.SelectionUpdateType.Remove) { - return api_internal_contract_1.SelectionUpdateType.Remove; - } - return api_internal_contract_1.SelectionUpdateType.Replace; - }; - /** - * Method to validate the include type for range selection. - * - * @param nullOption - */ - SelectionServiceImpl.prototype.validateNullOptionType = function (nullOption) { - if (nullOption) { - if (nullOption === Contract.FilterNullOption.NullValues) { - return api_internal_contract_1.QuantitativeIncludedValues.IncludeNull; - } - else if (nullOption === Contract.FilterNullOption.NonNullValues) { - return api_internal_contract_1.QuantitativeIncludedValues.IncludeNonNull; - } - else if (nullOption === Contract.FilterNullOption.AllValues) { - return api_internal_contract_1.QuantitativeIncludedValues.IncludeAll; - } - } - return api_internal_contract_1.QuantitativeIncludedValues.IncludeAll; - }; - return SelectionServiceImpl; - }()); - exports.SelectionServiceImpl = SelectionServiceImpl; - /** - * Enum for the different selection criteria types. - */ - var SelectionCriteriaType; - (function (SelectionCriteriaType) { - SelectionCriteriaType[SelectionCriteriaType["HierarchicalType"] = 1] = "HierarchicalType"; - SelectionCriteriaType[SelectionCriteriaType["RangeType"] = 2] = "RangeType"; - SelectionCriteriaType[SelectionCriteriaType["DimensionType"] = 3] = "DimensionType"; - SelectionCriteriaType[SelectionCriteriaType["TuplesType"] = 4] = "TuplesType"; - })(SelectionCriteriaType || (SelectionCriteriaType = {})); - //# sourceMappingURL=SelectionServiceImpl.js.map - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Selection Model. - */ - var SelectionModel = (function () { - function SelectionModel() { - } - return SelectionModel; - }()); - exports.SelectionModel = SelectionModel; - /** - * Value based selection model. Meant for hierarchical, range and categorical selections. - */ - var ValueSelectionModel = (function (_super) { - __extends(ValueSelectionModel, _super); - function ValueSelectionModel() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.selectValues = []; - return _this; - } - return ValueSelectionModel; - }(SelectionModel)); - exports.ValueSelectionModel = ValueSelectionModel; - /** - * Hierarchical value selection model - */ - var HierarchicalSelectionModel = (function (_super) { - __extends(HierarchicalSelectionModel, _super); - function HierarchicalSelectionModel() { - return _super !== null && _super.apply(this, arguments) || this; - } - return HierarchicalSelectionModel; - }(ValueSelectionModel)); - exports.HierarchicalSelectionModel = HierarchicalSelectionModel; - /** - * Range based value selection model - */ - var RangeSelectionModel = (function (_super) { - __extends(RangeSelectionModel, _super); - function RangeSelectionModel() { - return _super !== null && _super.apply(this, arguments) || this; - } - return RangeSelectionModel; - }(SelectionModel)); - exports.RangeSelectionModel = RangeSelectionModel; - /** - * Dimension value selection model - */ - var DimensionSelectionModel = (function (_super) { - __extends(DimensionSelectionModel, _super); - function DimensionSelectionModel() { - return _super !== null && _super.apply(this, arguments) || this; - } - return DimensionSelectionModel; - }(ValueSelectionModel)); - exports.DimensionSelectionModel = DimensionSelectionModel; - /** - * Tuple based selection model - */ - var TupleSelectionModel = (function () { - function TupleSelectionModel() { - this.objectIds = []; - } - return TupleSelectionModel; - }()); - exports.TupleSelectionModel = TupleSelectionModel; - /** - * Container class to populate all the selection models when parsing input - */ - var SelectionModelsContainer = (function () { - function SelectionModelsContainer() { - this.hierModelArr = []; - this.dimModelArr = []; - this.quantModelArr = []; - } - return SelectionModelsContainer; - }()); - exports.SelectionModelsContainer = SelectionModelsContainer; - //# sourceMappingURL=SelectionModels.js.map - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var Sheet_1 = __webpack_require__(42); - var Dashboard = (function (_super) { - __extends(Dashboard, _super); - function Dashboard(_dashboardImpl) { - var _this = _super.call(this, _dashboardImpl) || this; - _this._dashboardImpl = _dashboardImpl; - _dashboardImpl.initializeWithPublicInterfaces(_this); - return _this; - } - Object.defineProperty(Dashboard.prototype, "worksheets", { - get: function () { - return this._dashboardImpl.worksheets; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Dashboard.prototype, "objects", { - get: function () { - return this._dashboardImpl.objects; - }, - enumerable: true, - configurable: true - }); - return Dashboard; - }(Sheet_1.Sheet)); - exports.Dashboard = Dashboard; - //# sourceMappingURL=Dashboard.js.map - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var api_shared_1 = __webpack_require__(8); - var Sheet = (function (_super) { - __extends(Sheet, _super); - function Sheet(_sheetImpl) { - var _this = _super.call(this) || this; - _this._sheetImpl = _sheetImpl; - return _this; - } - Object.defineProperty(Sheet.prototype, "name", { - get: function () { - return this._sheetImpl.name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Sheet.prototype, "sheetType", { - get: function () { - return this._sheetImpl.sheetType; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Sheet.prototype, "size", { - get: function () { - return this._sheetImpl.size; - }, - enumerable: true, - configurable: true - }); - Sheet.prototype.findParameterAsync = function (parameterName) { - return this._sheetImpl.findParameterAsync(parameterName, this); - }; - Sheet.prototype.getParametersAsync = function () { - return this._sheetImpl.getParametersAsync(this); - }; - return Sheet; - }(api_shared_1.EventListenerManager)); - exports.Sheet = Sheet; - //# sourceMappingURL=Sheet.js.map - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Implementation of the external DashboardContent namespace. - * This does not follow the Impl pattern as DashboardContent is - * currently just a (single) property bag. - */ - var DashboardContent = (function () { - function DashboardContent(_dashboard) { - this._dashboard = _dashboard; - } - Object.defineProperty(DashboardContent.prototype, "dashboard", { - get: function () { - return this._dashboard; - }, - enumerable: true, - configurable: true - }); - return DashboardContent; - }()); - exports.DashboardContent = DashboardContent; - //# sourceMappingURL=DashboardContent.js.map - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_shared_1 = __webpack_require__(8); - /** - * Implementation of the external environment namespace. - * Environment does not follow the Impl pattern as it is - * just a property bag. - */ - var Environment = (function () { - function Environment(addInEnvironment) { - this._apiVersion = addInEnvironment.apiVersion; - this._context = api_shared_1.InternalToExternalEnumMappings.addInContext.convert(addInEnvironment.addInContext); - this._language = addInEnvironment.addInLanguage; - this._locale = addInEnvironment.addInLocale; - this._mode = api_shared_1.InternalToExternalEnumMappings.addInMode.convert(addInEnvironment.addInMode); - this._operatingSystem = addInEnvironment.operatingSystem; - this._tableauVersion = addInEnvironment.tableauVersion; - } - Object.defineProperty(Environment.prototype, "apiVersion", { - get: function () { - return this._apiVersion; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Environment.prototype, "context", { - get: function () { - return this._context; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Environment.prototype, "language", { - get: function () { - return this._language; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Environment.prototype, "locale", { - get: function () { - return this._locale; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Environment.prototype, "mode", { - get: function () { - return this._mode; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Environment.prototype, "operatingSystem", { - get: function () { - return this._operatingSystem; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Environment.prototype, "tableauVersion", { - get: function () { - return this._tableauVersion; - }, - enumerable: true, - configurable: true - }); - return Environment; - }()); - exports.Environment = Environment; - //# sourceMappingURL=Environment.js.map - -/***/ }, -/* 45 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Implementation of the external settings namespace. - */ - var Settings = (function () { - function Settings(settingsImpl) { - this.settingsImpl = settingsImpl; - } - Settings.prototype.erase = function (key) { - this.settingsImpl.erase(key); - }; - Settings.prototype.get = function (key) { - return this.settingsImpl.get(key); - }; - Settings.prototype.getAll = function () { - return this.settingsImpl.getAll(); - }; - Object.defineProperty(Settings.prototype, "isModified", { - get: function () { - return this.settingsImpl.isModified; - }, - enumerable: true, - configurable: true - }); - Settings.prototype.saveAsync = function () { - return this.settingsImpl.saveAsync(); - }; - Settings.prototype.set = function (key, value) { - this.settingsImpl.set(key, value); - }; - return Settings; - }()); - exports.Settings = Settings; - //# sourceMappingURL=Settings.js.map - -/***/ }, -/* 46 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_shared_1 = __webpack_require__(8); - var InitializationServiceImpl_1 = __webpack_require__(47); - var SettingsServiceImpl_1 = __webpack_require__(48); - function registerAllAddInServices(dispatcher) { - api_shared_1.ApiServiceRegistry.instance.registerService(new InitializationServiceImpl_1.InitializationServiceImpl(dispatcher)); - api_shared_1.ApiServiceRegistry.instance.registerService(new SettingsServiceImpl_1.SettingsServiceImpl(dispatcher)); - } - exports.registerAllAddInServices = registerAllAddInServices; - //# sourceMappingURL=RegisterAllAddInServices.js.map - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(2); - var InitializationServiceImpl = (function () { - function InitializationServiceImpl(dispatcher) { - this.dispatcher = dispatcher; - } - Object.defineProperty(InitializationServiceImpl.prototype, "serviceName", { - get: function () { - return "InitializationService" /* InitializationService */; - }, - enumerable: true, - configurable: true - }); - InitializationServiceImpl.prototype.initializeDashboardAddInAsync = function () { - // We don't need any parameters for this call because they are added in for us by the dispatcher - return this.dispatcher.execute(api_internal_contract_1.VerbId.InitializeAddIn, {}).then(function (response) { - // TODO - Validate return value - var result = response.result; - return result; - }); - }; - return InitializationServiceImpl; - }()); - exports.InitializationServiceImpl = InitializationServiceImpl; - //# sourceMappingURL=InitializationServiceImpl.js.map - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_internal_contract_1 = __webpack_require__(2); - var SettingsServiceImpl = (function () { - function SettingsServiceImpl(dispatcher) { - this.dispatcher = dispatcher; - } - Object.defineProperty(SettingsServiceImpl.prototype, "serviceName", { - get: function () { - return "SettingsService" /* SettingsService */; - }, - enumerable: true, - configurable: true - }); - SettingsServiceImpl.prototype.saveSettingsAsync = function (settings) { - var parameters = (_a = {}, _a[api_internal_contract_1.ParameterId.SettingsValues] = settings, _a); - return this.dispatcher.execute(api_internal_contract_1.VerbId.SaveAddInSettings, parameters).then(function (value) { - var result = value.result; - if (!result || !result.settingsValues) { - throw new Error('Internal error saving settings.'); - } - return (result.settingsValues); - }); - var _a; - }; - return SettingsServiceImpl; - }()); - exports.SettingsServiceImpl = SettingsServiceImpl; - //# sourceMappingURL=SettingsServiceImpl.js.map - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Represents the current version of the addin library - */ - var VersionNumber = (function () { - // private constructor so everyone uses the singleton instance - function VersionNumber(versionString) { - var parts = versionString.split('.').map(function (p) { return parseInt(p, 10); }); - if (parts.length !== 3) { - throw new Error('Invalid version number: ' + versionString); - } - this._major = parts[0]; - this._minor = parts[1]; - this._fix = parts[2]; - } - Object.defineProperty(VersionNumber, "Instance", { - /** - * Gets the singleton instance of the version number. - */ - get: function () { - return VersionNumber._instance; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(VersionNumber.prototype, "major", { - get: function () { - return this._major; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(VersionNumber.prototype, "minor", { - get: function () { - return this._minor; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(VersionNumber.prototype, "fix", { - get: function () { - return this._fix; - }, - enumerable: true, - configurable: true - }); - // Using some webpack tricks, we can inject this version into our code (kinda like c++ preprocessor stuff) - VersionNumber._instance = new VersionNumber(("0.5.0")); - return VersionNumber; - }()); - exports.VersionNumber = VersionNumber; - //# sourceMappingURL=VersionNumber.js.map - -/***/ }, -/* 50 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var Contract = __webpack_require__(16); - var api_internal_contract_1 = __webpack_require__(2); - var api_shared_1 = __webpack_require__(8); - var DashboardObject_1 = __webpack_require__(51); - var Worksheet_1 = __webpack_require__(52); - var SheetImpl_1 = __webpack_require__(53); - var SheetInfoImpl_1 = __webpack_require__(54); - var WorksheetImpl_1 = __webpack_require__(55); - var DashboardImpl = (function (_super) { - __extends(DashboardImpl, _super); - function DashboardImpl(_info, _sheetPath) { - var _this = _super.call(this, new SheetInfoImpl_1.SheetInfoImpl(_info.name, Contract.SheetType.Dashboard, new api_shared_1.Size(_info.size.h, _info.size.w))) || this; - _this._info = _info; - _this._sheetPath = _sheetPath; - return _this; - } - Object.defineProperty(DashboardImpl.prototype, "worksheets", { - get: function () { - return this._worksheets; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DashboardImpl.prototype, "objects", { - get: function () { - return this._objects; - }, - enumerable: true, - configurable: true - }); - DashboardImpl.prototype.initializeWithPublicInterfaces = function (dashboard) { - this._worksheets = new Array(); - this._objects = new Array(); - // Process all the zones which are contained in this dashboard - for (var _i = 0, _a = this._info.zones; _i < _a.length; _i++) { - var zone = _a[_i]; - var worksheet = undefined; - var zoneSize = new api_shared_1.Size(zone.height, zone.width); - if (zone.zoneType === api_internal_contract_1.DashboardObjectType.Worksheet) { - var sheetInfo = new SheetInfoImpl_1.SheetInfoImpl(zone.name, Contract.SheetType.Worksheet, zoneSize); - var vizId = { - worksheet: zone.name, - dashboard: this._info.name, - storyboard: this._sheetPath.storyboard, - flipboardZoneID: this._sheetPath.flipboardZoneID, - storyPointID: this._sheetPath.storyPointID - }; - var worksheetImpl = new WorksheetImpl_1.WorksheetImpl(sheetInfo, vizId, dashboard); - worksheet = new Worksheet_1.Worksheet(worksheetImpl); - this._worksheets.push(worksheet); - } - var zonePoint = new api_shared_1.Point(zone.x, zone.y); - var dashboardObject = new DashboardObject_1.DashboardObject(dashboard, api_shared_1.InternalToExternalEnumMappings.dashboardObjectType.convert(zone.zoneType), zonePoint, zoneSize, worksheet); - this._objects.push(dashboardObject); - } - }; - return DashboardImpl; - }(SheetImpl_1.SheetImpl)); - exports.DashboardImpl = DashboardImpl; - //# sourceMappingURL=DashboardImpl.js.map - -/***/ }, -/* 51 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Implementation of the dashboard objects - the zones in a dashboard. - * This does not follow the Impl pattern as it is just a property bag. - */ - var DashboardObject = (function () { - function DashboardObject(_dashboard, _type, _position, _size, _worksheet) { - this._dashboard = _dashboard; - this._type = _type; - this._position = _position; - this._size = _size; - this._worksheet = _worksheet; - } - Object.defineProperty(DashboardObject.prototype, "dashboard", { - get: function () { - return this._dashboard; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DashboardObject.prototype, "type", { - get: function () { - return this._type; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DashboardObject.prototype, "position", { - get: function () { - return this._position; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DashboardObject.prototype, "size", { - get: function () { - return this._size; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DashboardObject.prototype, "worksheet", { - get: function () { - return this._worksheet; - }, - enumerable: true, - configurable: true - }); - return DashboardObject; - }()); - exports.DashboardObject = DashboardObject; - //# sourceMappingURL=DashboardObject.js.map - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var Sheet_1 = __webpack_require__(42); - var Worksheet = (function (_super) { - __extends(Worksheet, _super); - function Worksheet(_worksheetImpl) { - var _this = _super.call(this, _worksheetImpl) || this; - _this._worksheetImpl = _worksheetImpl; - // Call to initialize events and then call down to the event listener manager to handle things - _this._worksheetImpl.initializeEvents(_this).forEach(function (e) { return _this.addNewEventType(e); }); - return _this; - } - Object.defineProperty(Worksheet.prototype, "parentDashboard", { - get: function () { - return this._worksheetImpl.parentDashboard; - }, - enumerable: true, - configurable: true - }); - Worksheet.prototype.applyFilterAsync = function (fieldName, values, updateType, options) { - return this._worksheetImpl.applyFilterAsync(fieldName, values, updateType, options); - }; - Worksheet.prototype.applyRangeFilterAsync = function (fieldName, filterOptions) { - return this._worksheetImpl.applyRangeFilterAsync(fieldName, filterOptions); - }; - Worksheet.prototype.clearFilterAsync = function (fieldName) { - return this._worksheetImpl.clearFilterAsync(fieldName); - }; - Worksheet.prototype.getAnalyticObjectsAsync = function () { - throw new Error('API call not yet implemented.'); - }; - Worksheet.prototype.getDataSourcesAsync = function () { - return this._worksheetImpl.getDataSourcesAsync(); - }; - Worksheet.prototype.getEncodingsAsync = function () { - throw new Error('API call not yet implemented.'); - }; - Worksheet.prototype.getFiltersAsync = function () { - return this._worksheetImpl.getFiltersAsync(); - }; - Worksheet.prototype.getSelectedMarksAsync = function () { - return this._worksheetImpl.getSelectedMarksAsync(); - }; - Worksheet.prototype.getHighlightedMarksAsync = function () { - return this._worksheetImpl.getHighlightedMarksAsync(); - }; - Worksheet.prototype.getSummaryDataAsync = function (options) { - return this._worksheetImpl.getSummaryDataAsync(options); - }; - Worksheet.prototype.getUnderlyingDataAsync = function (options) { - return this._worksheetImpl.getUnderlyingDataAsync(options); - }; - Worksheet.prototype.clearSelectedMarksAsync = function () { - return this._worksheetImpl.clearSelectedMarksAsync(); - }; - Worksheet.prototype.selectMarksByIDAsync = function (marksInfo, updateType) { - throw new Error('API call not yet implemented.'); - }; - Worksheet.prototype.selectMarksByValueAsync = function (selections, selectionUpdateType) { - return this._worksheetImpl.selectMarksByValueAsync(selections, selectionUpdateType); - }; - Worksheet.prototype.selectMarksByIdAsync = function (selections, selectionUpdateType) { - return this._worksheetImpl.selectMarksByIdAsync(selections, selectionUpdateType); - }; - return Worksheet; - }(Sheet_1.Sheet)); - exports.Worksheet = Worksheet; - //# sourceMappingURL=Worksheet.js.map - -/***/ }, -/* 53 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_shared_1 = __webpack_require__(8); - var SheetImpl = (function () { - function SheetImpl(_sheetInfoImpl) { - this._sheetInfoImpl = _sheetInfoImpl; - } - Object.defineProperty(SheetImpl.prototype, "name", { - get: function () { - return this._sheetInfoImpl.name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(SheetImpl.prototype, "sheetType", { - get: function () { - return this._sheetInfoImpl.sheetType; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(SheetImpl.prototype, "sheetPath", { - get: function () { - return this._sheetInfoImpl.sheetPath; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(SheetImpl.prototype, "size", { - get: function () { - return this._sheetInfoImpl.sheetSize; - }, - enumerable: true, - configurable: true - }); - SheetImpl.prototype.findParameterAsync = function (parameterName, sheet) { - var service = api_shared_1.ApiServiceRegistry.instance.getService("parameters-service" /* Parameters */); - return service.findParameterByNameAsync(parameterName, sheet); - }; - SheetImpl.prototype.getParametersAsync = function (sheet) { - var service = api_shared_1.ApiServiceRegistry.instance.getService("parameters-service" /* Parameters */); - return service.getParametersForSheetAsync(this.sheetPath, sheet); - }; - return SheetImpl; - }()); - exports.SheetImpl = SheetImpl; - //# sourceMappingURL=SheetImpl.js.map - -/***/ }, -/* 54 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_external_contract_1 = __webpack_require__(16); - var SheetInfoImpl = (function () { - function SheetInfoImpl(_name, _sheetType, _sheetSize) { - this._name = _name; - this._sheetType = _sheetType; - this._sheetSize = _sheetSize; - } - Object.defineProperty(SheetInfoImpl.prototype, "name", { - get: function () { - return this._name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(SheetInfoImpl.prototype, "sheetSize", { - get: function () { - return this._sheetSize; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(SheetInfoImpl.prototype, "sheetType", { - get: function () { - return this._sheetType; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(SheetInfoImpl.prototype, "sheetPath", { - get: function () { - return { - sheetName: this.name, - isDashboard: this.sheetType === api_external_contract_1.SheetType.Dashboard - // TODO - Stories - }; - }, - enumerable: true, - configurable: true - }); - return SheetInfoImpl; - }()); - exports.SheetInfoImpl = SheetInfoImpl; - //# sourceMappingURL=SheetInfoImpl.js.map - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - var __extends = (this && this.__extends) || (function () { - var extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })(); - Object.defineProperty(exports, "__esModule", { value: true }); - var Contract = __webpack_require__(16); - var api_internal_contract_1 = __webpack_require__(2); - var api_shared_1 = __webpack_require__(8); - var DataSource_1 = __webpack_require__(56); - var DataSourceImpl_1 = __webpack_require__(57); - var SheetImpl_1 = __webpack_require__(53); - var visualIdsAreEqual = function (a, b) { - return a && b && - a.worksheet === b.worksheet && - a.dashboard === b.dashboard && - a.storyboard === b.storyboard && - a.storyPointID === b.storyPointID && - a.flipboardZoneID === b.flipboardZoneID; - }; - var WorksheetImpl = (function (_super) { - __extends(WorksheetImpl, _super); - function WorksheetImpl(sheetInfoImpl, _visualId, _parentDashboard) { - var _this = _super.call(this, sheetInfoImpl) || this; - _this._visualId = _visualId; - _this._parentDashboard = _parentDashboard; - return _this; - } - Object.defineProperty(WorksheetImpl.prototype, "parentDashboard", { - get: function () { - return this._parentDashboard; - }, - enumerable: true, - configurable: true - }); - /** - * Helper method which goes through and registers each event type this impl knows about - * with the NotificationService. It returns an array of SingleEventManager objects which - * can then be passed to an EventListenerManager to handle user registration / unregistration. - * - * @param {Worksheet} worksheet The worksheet object which will be included with the event notifications - * @returns {Array} Collection of event managers to pass to an EventListenerManager - */ - WorksheetImpl.prototype.initializeEvents = function (worksheet) { - var _this = this; - var results = new Array(); - var notificationService; - try { - notificationService = api_shared_1.ApiServiceRegistry.instance.getService("notification-service" /* Notification */); - } - catch (e) { - // If we don't have this service registered, just return - return results; - } - // Initialize all of the event managers we'll need (one for each event type) - var marksEvent = new api_shared_1.SingleEventManagerImpl(Contract.TableauEventType.MarkSelectionChanged); - notificationService.registerHandler(api_internal_contract_1.NotificationId.SelectedMarksChanged, function (model) { - var visualId = model; - return visualIdsAreEqual(visualId, _this.visualId); - }, function (viz) { - marksEvent.triggerEvent(function () { return new api_shared_1.MarksSelectedEvent(worksheet); }); - }); - var filterEvent = new api_shared_1.SingleEventManagerImpl(Contract.TableauEventType.FilterChanged); - notificationService.registerHandler(api_internal_contract_1.NotificationId.FilterChanged, function (model) { - var filterEventResponse = model; - return _this.visualId.worksheet === filterEventResponse.visualId.worksheet; - }, function (event) { - filterEvent.triggerEvent(function () { return new api_shared_1.FilterChangedEvent(worksheet, event.fieldName); }); - }); - results.push(marksEvent); - results.push(filterEvent); - // TODO - other event types - return results; - }; - Object.defineProperty(WorksheetImpl.prototype, "visualId", { - get: function () { - return this._visualId; - }, - enumerable: true, - configurable: true - }); - WorksheetImpl.prototype.applyFilterAsync = function (fieldName, values, updateType, options) { - var service = api_shared_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */); - return service.applyFilterAsync(this.visualId, fieldName, values, updateType, options); - }; - WorksheetImpl.prototype.applyRangeFilterAsync = function (fieldName, filterOptions) { - var service = api_shared_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */); - return service.applyRangeFilterAsync(this.visualId, fieldName, filterOptions); - }; - WorksheetImpl.prototype.clearFilterAsync = function (fieldName) { - var service = api_shared_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */); - return service.clearFilterAsync(this.visualId, fieldName); - }; - WorksheetImpl.prototype.getDataSourcesAsync = function () { - var _this = this; - var service = api_shared_1.ApiServiceRegistry.instance.getService("data-source-service" /* DataSourceService */); - return service.getDataSourcesAsync().then(function (result) { - var dataSchema = result; - var worksheetDataSourceInfo = dataSchema.worksheetDataSchemaMap[_this.name]; - var dataSources = []; - // First, add the primary datasource. By convention, it comes first in the returned array. - var primaryId = worksheetDataSourceInfo.primaryDataSource; - dataSources.push(_this.createDataSourceFromInfo(dataSchema.dataSources[primaryId])); - // Then, loop through any secondary data sources and add them. - for (var _i = 0, _a = worksheetDataSourceInfo.referencedDataSourceList; _i < _a.length; _i++) { - var secondaryId = _a[_i]; - if (secondaryId !== primaryId) { - dataSources.push(_this.createDataSourceFromInfo(dataSchema.dataSources[secondaryId])); - } - } - return dataSources; - }); - }; - WorksheetImpl.prototype.getFiltersAsync = function () { - var service = api_shared_1.ApiServiceRegistry.instance.getService("filter-service" /* Filter */); - return service.getFiltersAsync(this.visualId); - }; - WorksheetImpl.prototype.getSelectedMarksAsync = function () { - var service = api_shared_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */); - return service.getSelectedMarksAsync(this.visualId); - }; - WorksheetImpl.prototype.getHighlightedMarksAsync = function () { - var service = api_shared_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */); - return service.getHighlightedMarksAsync(this.visualId); - }; - WorksheetImpl.prototype.getSummaryDataAsync = function (options) { - var service = api_shared_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */); - options = options || {}; - return service.getUnderlyingDataAsync(this.visualId, api_shared_1.GetDataType.Summary, !!options.ignoreAliases, !!options.ignoreSelection, true, 0); - }; - WorksheetImpl.prototype.getUnderlyingDataAsync = function (options) { - var service = api_shared_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */); - options = options || {}; - return service.getUnderlyingDataAsync(this.visualId, api_shared_1.GetDataType.Underlying, !!options.ignoreAliases, !!options.ignoreSelection, !!options.includeAllColumns, options.maxRows || 0); - }; - WorksheetImpl.prototype.clearSelectedMarksAsync = function () { - var service = api_shared_1.ApiServiceRegistry.instance.getService("selection-service" /* Selection */); - return service.clearSelectedMarksAsync(this.visualId); - }; - WorksheetImpl.prototype.selectMarksByValueAsync = function (selections, selectionUpdateType) { - var service = api_shared_1.ApiServiceRegistry.instance.getService("selection-service" /* Selection */); - return service.selectMarksByValueAsync(this.visualId, selections, selectionUpdateType); - }; - WorksheetImpl.prototype.selectMarksByIdAsync = function (selections, selectionUpdateType) { - var service = api_shared_1.ApiServiceRegistry.instance.getService("selection-service" /* Selection */); - return service.selectMarksByIdAsync(this.visualId, selections, selectionUpdateType); - }; - WorksheetImpl.prototype.createDataSourceFromInfo = function (dataSourceInfo) { - var dataSourceImpl = new DataSourceImpl_1.DataSourceImpl(dataSourceInfo); - var dataSource = new DataSource_1.DataSource(dataSourceImpl); - dataSourceImpl.initializeWithPublicInterfaces(dataSource); - return dataSource; - }; - return WorksheetImpl; - }(SheetImpl_1.SheetImpl)); - exports.WorksheetImpl = WorksheetImpl; - //# sourceMappingURL=WorksheetImpl.js.map - -/***/ }, -/* 56 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var DataSource = (function () { - function DataSource(_dataSourceImpl) { - this._dataSourceImpl = _dataSourceImpl; - } - Object.defineProperty(DataSource.prototype, "name", { - get: function () { - return this._dataSourceImpl.name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataSource.prototype, "id", { - get: function () { - return this._dataSourceImpl.id; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataSource.prototype, "fields", { - get: function () { - return this._dataSourceImpl.fields; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataSource.prototype, "connectionSummaries", { - get: function () { - return this._dataSourceImpl.connectionSummaries; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataSource.prototype, "extractUpdateTime", { - get: function () { - return this._dataSourceImpl.extractUpdateTime; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataSource.prototype, "isExtract", { - get: function () { - return this._dataSourceImpl.isExtract; - }, - enumerable: true, - configurable: true - }); - DataSource.prototype.refreshAsync = function () { - return this._dataSourceImpl.refreshAsync(); - }; - DataSource.prototype.getUnderlyingDataAsync = function (options) { - return this._dataSourceImpl.getUnderlyingDataAsync(options); - }; - return DataSource; - }()); - exports.DataSource = DataSource; - //# sourceMappingURL=DataSource.js.map - -/***/ }, -/* 57 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_shared_1 = __webpack_require__(8); - var FieldImpl_1 = __webpack_require__(58); - var Field_1 = __webpack_require__(59); - var DataSourceImpl = (function () { - function DataSourceImpl(_dataSourceInfo) { - this._dataSourceInfo = _dataSourceInfo; - } - Object.defineProperty(DataSourceImpl.prototype, "name", { - get: function () { - return this._dataSourceInfo.name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataSourceImpl.prototype, "id", { - get: function () { - return this._dataSourceInfo.id; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataSourceImpl.prototype, "extractUpdateTime", { - get: function () { - return this._dataSourceInfo.extractUpdateTime; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataSourceImpl.prototype, "fields", { - get: function () { - return this._fields; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataSourceImpl.prototype, "isExtract", { - get: function () { - return this._dataSourceInfo.isExtract; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(DataSourceImpl.prototype, "connectionSummaries", { - get: function () { - throw new Error('DataSource connectionSummaries API not yet implemented.'); - }, - enumerable: true, - configurable: true - }); - DataSourceImpl.prototype.refreshAsync = function () { - var dataSourceService = api_shared_1.ApiServiceRegistry.instance.getService("data-source-service" /* DataSourceService */); - return dataSourceService.refreshAsync(this._dataSourceInfo.id); - }; - DataSourceImpl.prototype.getUnderlyingDataAsync = function (options) { - var defaultOptions = { - ignoreAliases: false, - maxRows: 10000, - columnsToInclude: [], - }; - options = options || {}; - var getDataService = api_shared_1.ApiServiceRegistry.instance.getService("get-data-service" /* GetData */); - return getDataService.getDataSourceDataAsync(this.id, !!options.ignoreAliases, options.maxRows || defaultOptions.maxRows, options.columnsToInclude || defaultOptions.columnsToInclude); - }; - DataSourceImpl.prototype.initializeWithPublicInterfaces = function (dataSource) { - this._fields = this._dataSourceInfo.fields.map(function (fieldModel) { - var fieldImpl = new FieldImpl_1.FieldImpl(fieldModel, dataSource); - return new Field_1.Field(fieldImpl); - }); - }; - return DataSourceImpl; - }()); - exports.DataSourceImpl = DataSourceImpl; - //# sourceMappingURL=DataSourceImpl.js.map - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_shared_1 = __webpack_require__(8); - var FieldImpl = (function () { - function FieldImpl(_fieldInfo, _parentDataSource) { - this._fieldInfo = _fieldInfo; - this._parentDataSource = _parentDataSource; - } - Object.defineProperty(FieldImpl.prototype, "name", { - get: function () { - return this._fieldInfo.name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(FieldImpl.prototype, "id", { - get: function () { - return this._fieldInfo.id; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(FieldImpl.prototype, "description", { - get: function () { - return this._fieldInfo.description; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(FieldImpl.prototype, "aggregation", { - get: function () { - return api_shared_1.InternalToExternalEnumMappings.fieldAggregationType.convert(this._fieldInfo.aggregation); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(FieldImpl.prototype, "dataSource", { - get: function () { - return this._parentDataSource; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(FieldImpl.prototype, "role", { - get: function () { - return api_shared_1.InternalToExternalEnumMappings.fieldRoleType.convert(this._fieldInfo.role); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(FieldImpl.prototype, "isHidden", { - get: function () { - return this._fieldInfo.isHidden; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(FieldImpl.prototype, "isGenerated", { - get: function () { - return this._fieldInfo.isGenerated; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(FieldImpl.prototype, "isCalculatedField", { - get: function () { - return this._fieldInfo.isCalculatedField; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(FieldImpl.prototype, "isCombinedField", { - get: function () { - return this._fieldInfo.isCombinedField; - }, - enumerable: true, - configurable: true - }); - FieldImpl.prototype.getCalculatedFieldAsync = function () { - throw new Error('Field getCalculatedFieldAsync method not yet implemented.'); - }; - return FieldImpl; - }()); - exports.FieldImpl = FieldImpl; - //# sourceMappingURL=FieldImpl.js.map - -/***/ }, -/* 59 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var Field = (function () { - function Field(_fieldImpl) { - this._fieldImpl = _fieldImpl; - } - Object.defineProperty(Field.prototype, "name", { - get: function () { - return this._fieldImpl.name; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Field.prototype, "id", { - get: function () { - return this._fieldImpl.id; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Field.prototype, "description", { - get: function () { - return this._fieldImpl.description; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Field.prototype, "aggregation", { - get: function () { - return this._fieldImpl.aggregation; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Field.prototype, "dataSource", { - get: function () { - return this._fieldImpl.dataSource; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Field.prototype, "role", { - get: function () { - return this._fieldImpl.role; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Field.prototype, "isHidden", { - get: function () { - return this._fieldImpl.isHidden; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Field.prototype, "isGenerated", { - get: function () { - return this._fieldImpl.isGenerated; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Field.prototype, "isCalculatedField", { - get: function () { - return this._fieldImpl.isCalculatedField; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Field.prototype, "columnType", { - get: function () { - throw new Error('Field.columnType not yet implemetned.'); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Field.prototype, "isCombinedField", { - get: function () { - return this._fieldImpl.isCombinedField; - }, - enumerable: true, - configurable: true - }); - Field.prototype.getCalculatedFieldAsync = function () { - return this._fieldImpl.getCalculatedFieldAsync(); - }; - return Field; - }()); - exports.Field = Field; - //# sourceMappingURL=Field.js.map - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var api_shared_1 = __webpack_require__(8); - var api_utils_1 = __webpack_require__(27); - var SettingsImpl = (function () { - function SettingsImpl(settingsInfo) { - // Since promises can't be introspected for state, keep a variable that - // indicates a save is in progress, so that set/erase can't be called during a save. - this._saveInProgress = false; - this.initializeSettings(settingsInfo); - } - SettingsImpl.prototype.erase = function (key) { - api_utils_1.Param.verifyValue(key, 'key'); - // Only make a modification if we have the key already - if (this._currentSettings[key]) { - this.verifySettingsAreUnlocked(); - delete this._currentSettings[key]; - this._isModified = true; - } - }; - SettingsImpl.prototype.get = function (key) { - api_utils_1.Param.verifyValue(key, 'key'); - return this._currentSettings[key]; - }; - SettingsImpl.prototype.getAll = function () { - // Returns a mutable copy of the settings - return Object.assign({}, this._currentSettings); - }; - Object.defineProperty(SettingsImpl.prototype, "isModified", { - get: function () { - return this._isModified; - }, - enumerable: true, - configurable: true - }); - SettingsImpl.prototype.saveAsync = function () { - var _this = this; - this.verifySettingsAreUnlocked(); - // Just resolve immediately if settings are unchanged - if (!this._isModified) { - return Promise.resolve(this._currentSettings); - } - this._saveInProgress = true; - // Use the settings service to save settings to twb - var settingsService = api_shared_1.ApiServiceRegistry.instance.getService("SettingsService" /* SettingsService */); - return settingsService.saveSettingsAsync(this._currentSettings).then(function (newSettings) { - _this._saveInProgress = false; - _this._isModified = false; - Object.assign(_this._currentSettings, newSettings); - return newSettings; - }); - }; - SettingsImpl.prototype.set = function (key, value) { - api_utils_1.Param.verifyValue(key, 'key'); // Key shouldn't be an empty string. - api_utils_1.Param.verifyString(value, 'value'); // Empty string value is allowed. - this.verifySettingsAreUnlocked(); - this._currentSettings[key] = value; - this._isModified = true; - }; - SettingsImpl.prototype.initializeSettings = function (settingsInfo) { - api_utils_1.Param.verifyValue(settingsInfo, 'settingsInfo'); - api_utils_1.Param.verifyValue(settingsInfo.settingsValues, 'settingsInfo.SettingsValues'); - this._currentSettings = settingsInfo.settingsValues; - // Reset the isModified flag - this._isModified = false; - }; - /** - * This helper should be called before any local update to this.currentSettings. - * Checks if a current save call is still in progress and throws an error if so. - */ - SettingsImpl.prototype.verifySettingsAreUnlocked = function () { - if (this._saveInProgress) { - throw new Error('Async Save is in progress, updating settings is not allowed.'); - } - }; - return SettingsImpl; - }()); - exports.SettingsImpl = SettingsImpl; - //# sourceMappingURL=SettingsImpl.js.map - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - /** - * Implementation of the external AddIn namespace. - */ - var AddIn = (function () { - function AddIn(addInImpl) { - this.addInImpl = addInImpl; - this.addInImpl = addInImpl; - } - Object.defineProperty(AddIn.prototype, "dashboardContent", { - get: function () { - return this.addInImpl.dashboardContent; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(AddIn.prototype, "environment", { - get: function () { - return this.addInImpl.environment; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(AddIn.prototype, "settings", { - get: function () { - return this.addInImpl.settings; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(AddIn.prototype, "ui", { - get: function () { - throw new Error('API call not yet implemented'); - }, - enumerable: true, - configurable: true - }); - AddIn.prototype.initializeAsync = function () { - return this.addInImpl.initializeAsync(); - }; - return AddIn; - }()); - exports.AddIn = AddIn; - //# sourceMappingURL=AddIn.js.map - -/***/ } -/******/ ]) -}); -; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQHRhYmxlYXUvYWRkaW4tYXBpLjAuNS4wLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vL3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAgNThmOGZkOGU2YjBiNmE1YWMxYmUiLCJ3ZWJwYWNrOi8vLy4uL2xpYi9BZGRJbkFwaS5qcyIsIndlYnBhY2s6Ly8vLi4vbGliL0ludGVybmFsL0FkZEluSW1wbC5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3QvbGliL0FwaUludGVybmFsQ29udHJhY3QuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWludGVybmFsLWNvbnRyYWN0L2xpYi9pbnRlcmZhY2UvRW51bXMuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWludGVybmFsLWNvbnRyYWN0L2xpYi9pbnRlcmZhY2UvSW50ZXJuYWxBcGlEaXNwYXRjaGVyLmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9saWIvaW50ZXJmYWNlL05vdGlmaWNhdGlvbnMuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLWludGVybmFsLWNvbnRyYWN0L2xpYi9pbnRlcmZhY2UvUGFyYW1ldGVycy5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3QvbGliL2ludGVyZmFjZS9WZXJicy5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9BcGlTaGFyZWQuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvRXZlbnRMaXN0ZW5lck1hbmFnZXIuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvUGFyYW1ldGVyLmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL1BvaW50LmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL1NpemUuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvTW9kZWxzL0dldERhdGFNb2RlbHMuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvRXhjZXB0aW9ucy9UYWJsZWF1RXhjZXB0aW9ucy5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9FdmVudHMvRmlsdGVyQ2hhbmdlZEV2ZW50LmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1leHRlcm5hbC1jb250cmFjdC9saWIvQXBpRXh0ZXJuYWxDb250cmFjdC5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktZXh0ZXJuYWwtY29udHJhY3QvbGliL0VudW1zLmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL0V2ZW50cy9UYWJsZWF1V29ya3NoZWV0RXZlbnQuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvRXZlbnRzL1RhYmxlYXVTaGVldEV2ZW50LmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL0V2ZW50cy9UYWJsZWF1RXZlbnQuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvRXZlbnRzL01hcmtzU2VsZWN0ZWRFdmVudC5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9JbnRlcm5hbC9TaW5nbGVFdmVudE1hbmFnZXJJbXBsLmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL1NlcnZpY2VzL0dldERhdGFTZXJ2aWNlLmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL1NlcnZpY2VzL1JlZ2lzdGVyQWxsU2hhcmVkU2VydmljZXMuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvU2VydmljZXMvaW1wbC9EYXRhU291cmNlU2VydmljZUltcGwuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvU2VydmljZXMvaW1wbC9GaWx0ZXJTZXJ2aWNlSW1wbC5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktdXRpbHMvbGliL0FwaVV0aWxzLmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS11dGlscy9saWIvRW51bUNvbnZlcnRlci5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktdXRpbHMvbGliL1BhcmFtLmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL0VudW1NYXBwaW5ncy9FeHRlcm5hbFRvSW50ZXJuYWxFbnVtTWFwcGluZ3MuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvRW51bU1hcHBpbmdzL0ludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncy5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9Nb2RlbHMvRmlsdGVyTW9kZWxzLmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL1NlcnZpY2VzL1NlcnZpY2VSZWdpc3RyeS5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9TZXJ2aWNlcy9pbXBsL0dldERhdGFTZXJ2aWNlSW1wbC5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9TZXJ2aWNlcy9pbXBsL05vdGlmaWNhdGlvblNlcnZpY2VJbXBsLmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL1NlcnZpY2VzL2ltcGwvUGFyYW1ldGVyc1NlcnZpY2VJbXBsLmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL0ludGVybmFsL1BhcmFtZXRlckltcGwuanMiLCJ3ZWJwYWNrOi8vL0Q6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvRXZlbnRzL1BhcmFtZXRlckNoYW5nZWRFdmVudC5qcyIsIndlYnBhY2s6Ly8vRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9TZXJ2aWNlcy9pbXBsL1NlbGVjdGlvblNlcnZpY2VJbXBsLmpzIiwid2VicGFjazovLy9EOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL01vZGVscy9TZWxlY3Rpb25Nb2RlbHMuanMiLCJ3ZWJwYWNrOi8vLy4uL2xpYi9EYXNoYm9hcmQuanMiLCJ3ZWJwYWNrOi8vLy4uL2xpYi9TaGVldC5qcyIsIndlYnBhY2s6Ly8vLi4vbGliL05hbWVzcGFjZXMvRGFzaGJvYXJkQ29udGVudC5qcyIsIndlYnBhY2s6Ly8vLi4vbGliL05hbWVzcGFjZXMvRW52aXJvbm1lbnQuanMiLCJ3ZWJwYWNrOi8vLy4uL2xpYi9OYW1lc3BhY2VzL1NldHRpbmdzLmpzIiwid2VicGFjazovLy8uLi9saWIvU2VydmljZXMvUmVnaXN0ZXJBbGxBZGRJblNlcnZpY2VzLmpzIiwid2VicGFjazovLy8uLi9saWIvU2VydmljZXMvSW1wbC9Jbml0aWFsaXphdGlvblNlcnZpY2VJbXBsLmpzIiwid2VicGFjazovLy8uLi9saWIvU2VydmljZXMvSW1wbC9TZXR0aW5nc1NlcnZpY2VJbXBsLmpzIiwid2VicGFjazovLy8uLi9saWIvVmVyc2lvbk51bWJlci5qcyIsIndlYnBhY2s6Ly8vLi4vbGliL0ludGVybmFsL0Rhc2hib2FyZEltcGwuanMiLCJ3ZWJwYWNrOi8vLy4uL2xpYi9EYXNoYm9hcmRPYmplY3QuanMiLCJ3ZWJwYWNrOi8vLy4uL2xpYi9Xb3Jrc2hlZXQuanMiLCJ3ZWJwYWNrOi8vLy4uL2xpYi9JbnRlcm5hbC9TaGVldEltcGwuanMiLCJ3ZWJwYWNrOi8vLy4uL2xpYi9JbnRlcm5hbC9TaGVldEluZm9JbXBsLmpzIiwid2VicGFjazovLy8uLi9saWIvSW50ZXJuYWwvV29ya3NoZWV0SW1wbC5qcyIsIndlYnBhY2s6Ly8vLi4vbGliL0RhdGFTb3VyY2UuanMiLCJ3ZWJwYWNrOi8vLy4uL2xpYi9JbnRlcm5hbC9EYXRhU291cmNlSW1wbC5qcyIsIndlYnBhY2s6Ly8vLi4vbGliL0ludGVybmFsL0ZpZWxkSW1wbC5qcyIsIndlYnBhY2s6Ly8vLi4vbGliL0ZpZWxkLmpzIiwid2VicGFjazovLy8uLi9saWIvSW50ZXJuYWwvU2V0dGluZ3NJbXBsLmpzIiwid2VicGFjazovLy8uLi9saWIvTmFtZXNwYWNlcy9BZGRJbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShbXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJ0YWJsZWF1XCJdID0gZmFjdG9yeSgpO1xuXHRlbHNlXG5cdFx0cm9vdFtcInRhYmxlYXVcIl0gPSBmYWN0b3J5KCk7XG59KSh0aGlzLCBmdW5jdGlvbigpIHtcbnJldHVybiBcblxuXG4vKiogV0VCUEFDSyBGT09URVIgKipcbiAqKiB3ZWJwYWNrL3VuaXZlcnNhbE1vZHVsZURlZmluaXRpb25cbiAqKi8iLCIgXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4gXHR2YXIgaW5zdGFsbGVkTW9kdWxlcyA9IHt9O1xuXG4gXHQvLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXG4gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuIFx0XHRpZihpbnN0YWxsZWRNb2R1bGVzW21vZHVsZUlkXSlcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcblxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0ZXhwb3J0czoge30sXG4gXHRcdFx0aWQ6IG1vZHVsZUlkLFxuIFx0XHRcdGxvYWRlZDogZmFsc2VcbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubG9hZGVkID0gdHJ1ZTtcblxuIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuIFx0XHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG4gXHR9XG5cblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubSA9IG1vZHVsZXM7XG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmMgPSBpbnN0YWxsZWRNb2R1bGVzO1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCIvZGlzdC9cIjtcblxuIFx0Ly8gTG9hZCBlbnRyeSBtb2R1bGUgYW5kIHJldHVybiBleHBvcnRzXG4gXHRyZXR1cm4gX193ZWJwYWNrX3JlcXVpcmVfXygwKTtcblxuXG5cbi8qKiBXRUJQQUNLIEZPT1RFUiAqKlxuICoqIHdlYnBhY2svYm9vdHN0cmFwIDU4ZjhmZDhlNmIwYjZhNWFjMWJlXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG4vKipcbiAqIFRoaXMgaXMgeW91ciBtYWluLiBUaGlzIGlzIHdoZXJlIHlvdSByZS1leHBvcnQgZXZlcnl0aGluZyB5b3Ugd2FudCB0byBiZSBwdWJsaWNseSBhdmFpbGFibGUuXG4gKlxuICogVGhlIGJ1aWxkIGVuZm9yY2VzIHRoYXQgdGhlIGZpbGUgaGFzIHRoZSBzYW1lIG5hbWUgYXMgdGhlIGdsb2JhbCB2YXJpYWJsZSB0aGF0IGlzIGV4cG9ydGVkLlxuICovXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4vLyBEdWUgdG8gdGhlIHdheSB3ZSBjb25maWd1cmVkIHdlYnBhY2ssIHdlIHNob3VsZCBiZSBleHBvcnRpbmcgdGhpbmdzIHdoaWNoIHdpbGwgYmUgdW5kZXJcbi8vIGEgZ2xvYmFsIHZhcmlhYmxlIGNhbGxlZCBcInRhYmxlYXVcIi4gRXhwb3J0IGV2ZXJ5dGhpbmcgd2Ugd2FudCB0byBiZSB2aXNpYmxlIHVuZGVyIHRhYmxlYXVcbi8vIGZyb20gdGhpcyBmaWxlLlxudmFyIEFkZEluSW1wbF8xID0gcmVxdWlyZShcIi4vSW50ZXJuYWwvQWRkSW5JbXBsXCIpO1xudmFyIEFkZEluXzEgPSByZXF1aXJlKFwiLi9OYW1lc3BhY2VzL0FkZEluXCIpO1xudmFyIGFkZEluSW1wbCA9IG5ldyBBZGRJbkltcGxfMS5BZGRJbkltcGwoKTtcbmV4cG9ydHMuYWRkSW4gPSBuZXcgQWRkSW5fMS5BZGRJbihhZGRJbkltcGwpO1xuLy8gRXhwb3J0IEVudW1zXG4vLyBUaGVzZSBzaG93IHVwIHVuZGVyIHRoZSB0YWJsZWF1IG9iamVjdC4gSS5lLiB0YWJsZWF1LkFkZEluQ29udGV4dC5TZXJ2ZXJcbnZhciBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMSA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3RcIik7XG5leHBvcnRzLkFkZEluQ29udGV4dCA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkFkZEluQ29udGV4dDtcbmV4cG9ydHMuQWRkSW5Nb2RlID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuQWRkSW5Nb2RlO1xuZXhwb3J0cy5BbmFseXRpY3NPYmplY3RUeXBlID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuQW5hbHl0aWNzT2JqZWN0VHlwZTtcbmV4cG9ydHMuQ29sdW1uVHlwZSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkNvbHVtblR5cGU7XG5leHBvcnRzLkRhc2hib2FyZE9iamVjdFR5cGUgPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5EYXNoYm9hcmRPYmplY3RUeXBlO1xuZXhwb3J0cy5EYXRhVHlwZSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkRhdGFUeXBlO1xuZXhwb3J0cy5EYXRlUmFuZ2VUeXBlID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRGF0ZVJhbmdlVHlwZTtcbmV4cG9ydHMuRGlhbG9nRXZlbnRUeXBlID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRGlhbG9nRXZlbnRUeXBlO1xuZXhwb3J0cy5FbmNvZGluZ1R5cGUgPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5FbmNvZGluZ1R5cGU7XG5leHBvcnRzLkVycm9yQ29kZXMgPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5FcnJvckNvZGVzO1xuZXhwb3J0cy5GaWVsZEFnZ3JlZ2F0aW9uVHlwZSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlO1xuZXhwb3J0cy5GaWVsZFJvbGVUeXBlID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmllbGRSb2xlVHlwZTtcbmV4cG9ydHMuRmlsdGVyRG9tYWluVHlwZSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpbHRlckRvbWFpblR5cGU7XG5leHBvcnRzLkZpbHRlclR5cGUgPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWx0ZXJUeXBlO1xuZXhwb3J0cy5GaWx0ZXJVcGRhdGVUeXBlID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmlsdGVyVXBkYXRlVHlwZTtcbmV4cG9ydHMuRmlsdGVyTnVsbE9wdGlvbiA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpbHRlck51bGxPcHRpb247XG5leHBvcnRzLk1hcmtUeXBlID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuTWFya1R5cGU7XG5leHBvcnRzLlBhcmFtZXRlclZhbHVlVHlwZSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlclZhbHVlVHlwZTtcbmV4cG9ydHMuUGVyaW9kVHlwZSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLlBlcmlvZFR5cGU7XG5leHBvcnRzLlF1aWNrVGFibGVDYWxjVHlwZSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLlF1aWNrVGFibGVDYWxjVHlwZTtcbmV4cG9ydHMuU2VsZWN0aW9uVXBkYXRlVHlwZSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLlNlbGVjdGlvblVwZGF0ZVR5cGU7XG5leHBvcnRzLlNoZWV0VHlwZSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLlNoZWV0VHlwZTtcbmV4cG9ydHMuU29ydERpcmVjdGlvbiA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLlNvcnREaXJlY3Rpb247XG5leHBvcnRzLlRhYmxlYXVFdmVudFR5cGUgPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5UYWJsZWF1RXZlbnRUeXBlO1xuZXhwb3J0cy5UcmVuZExpbmVNb2RlbFR5cGUgPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5UcmVuZExpbmVNb2RlbFR5cGU7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1BZGRJbkFwaS5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4uL2xpYi9BZGRJbkFwaS5qc1xuICoqIG1vZHVsZSBpZCA9IDBcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIGFwaV9pbnRlcm5hbF9jb250cmFjdF8xID0gcmVxdWlyZShcIkB0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdFwiKTtcbnZhciBhcGlfc2hhcmVkXzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLXNoYXJlZFwiKTtcbnZhciBEYXNoYm9hcmRfMSA9IHJlcXVpcmUoXCIuLi9EYXNoYm9hcmRcIik7XG52YXIgRGFzaGJvYXJkQ29udGVudF8xID0gcmVxdWlyZShcIi4uL05hbWVzcGFjZXMvRGFzaGJvYXJkQ29udGVudFwiKTtcbnZhciBFbnZpcm9ubWVudF8xID0gcmVxdWlyZShcIi4uL05hbWVzcGFjZXMvRW52aXJvbm1lbnRcIik7XG52YXIgU2V0dGluZ3NfMSA9IHJlcXVpcmUoXCIuLi9OYW1lc3BhY2VzL1NldHRpbmdzXCIpO1xudmFyIFJlZ2lzdGVyQWxsQWRkSW5TZXJ2aWNlc18xID0gcmVxdWlyZShcIi4uL1NlcnZpY2VzL1JlZ2lzdGVyQWxsQWRkSW5TZXJ2aWNlc1wiKTtcbnZhciBWZXJzaW9uTnVtYmVyXzEgPSByZXF1aXJlKFwiLi4vVmVyc2lvbk51bWJlclwiKTtcbnZhciBEYXNoYm9hcmRJbXBsXzEgPSByZXF1aXJlKFwiLi9EYXNoYm9hcmRJbXBsXCIpO1xudmFyIFNldHRpbmdzSW1wbF8xID0gcmVxdWlyZShcIi4vU2V0dGluZ3NJbXBsXCIpO1xudmFyIEFkZEluSW1wbCA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gQWRkSW5JbXBsKCkge1xuICAgIH1cbiAgICBBZGRJbkltcGwucHJvdG90eXBlLmluaXRpYWxpemVBc3luYyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgaWYgKCF0aGlzLl9pbml0aWFsaXphdGlvblByb21pc2UpIHtcbiAgICAgICAgICAgIHRoaXMuX2luaXRpYWxpemF0aW9uUHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgICAgICAvLyBGaXJzdCB0aGluZyB3ZSB3YW50IHRvIGRvIGlzIGNoZWNrIHRvIHNlZSBpZiB0aGVyZSBpcyBhIGRlc2t0b3AgZGlzcGF0Y2hlciBhbHJlYWR5IHJlZ2lzdGVyZWQgZm9yIHVzXG4gICAgICAgICAgICAgICAgaWYgKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkludGVybmFsQXBpRGlzcGF0Y2hlckhvbGRlci5oYXNEZXNrdG9wQXBpRGlzcGF0Y2hlclByb21pc2UoKSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBSdW5uaW5nIGluIGRlc2t0b3AsIHVzZSB0aGlzIHByb21pc2VcbiAgICAgICAgICAgICAgICAgICAgdmFyIGRlc2t0b3BEaXNwYXRjaGVyUHJvbWlzZSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkludGVybmFsQXBpRGlzcGF0Y2hlckhvbGRlci5nZXREZXNrdG9wRGlzcGF0Y2hlclByb21pc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgZGVza3RvcERpc3BhdGNoZXJQcm9taXNlLnRoZW4oX3RoaXMub25EaXNwYXRjaGVyUmVjZWl2ZWQuYmluZChfdGhpcykpLnRoZW4oZnVuY3Rpb24gKCkgeyByZXNvbHZlKCk7IH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCdOb3QgcnVubmluZyBpbiBkZXNrdG9wLiBTZXJ2ZXIgc3VwcG9ydCBjb21pbmcgc29vbiEnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5faW5pdGlhbGl6YXRpb25Qcm9taXNlO1xuICAgIH07XG4gICAgQWRkSW5JbXBsLnByb3RvdHlwZS5vbkRpc3BhdGNoZXJSZWNlaXZlZCA9IGZ1bmN0aW9uIChkaXNwYXRjaGVyKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIGRpc3BhdGNoZXIuc2V0VmVyc2lvbk51bWJlcihWZXJzaW9uTnVtYmVyXzEuVmVyc2lvbk51bWJlci5JbnN0YW5jZSk7XG4gICAgICAgIC8vIENhbGwgdG8gcmVnaXN0ZXIgYWxsIHRoZSBzZXJ2aWNlcyB3aGljaCB3aWxsIHVzZSB0aGUgbmV3bHkgaW5pdGlhbGl6ZWQgZGlzcGF0Y2hlclxuICAgICAgICBhcGlfc2hhcmVkXzEucmVnaXN0ZXJBbGxTaGFyZWRTZXJ2aWNlcyhkaXNwYXRjaGVyKTtcbiAgICAgICAgUmVnaXN0ZXJBbGxBZGRJblNlcnZpY2VzXzEucmVnaXN0ZXJBbGxBZGRJblNlcnZpY2VzKGRpc3BhdGNoZXIpO1xuICAgICAgICAvLyBHZXQgdGhlIGluaXRpYWxpemF0aW9uIHNlcnZpY2UgYW5kIGluaXRpYWxpemUgdGhpcyBhZGQtaW5cbiAgICAgICAgdmFyIGluaXRpYWxpemF0aW9uU2VydmljZSA9IGFwaV9zaGFyZWRfMS5BcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZShcIkluaXRpYWxpemF0aW9uU2VydmljZVwiIC8qIEluaXRpYWxpemF0aW9uU2VydmljZSAqLyk7XG4gICAgICAgIHJldHVybiBpbml0aWFsaXphdGlvblNlcnZpY2UuaW5pdGlhbGl6ZURhc2hib2FyZEFkZEluQXN5bmMoKS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHtcbiAgICAgICAgICAgIGlmICghcmVzdWx0LmFkZEluSW5zdGFuY2UubG9jYXRvci5kYXNoYm9hcmRQYXRoKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXNoYm9hcmRQYXRoIGlzIHVuZGVmaW5lZCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgX3RoaXMuZGFzaGJvYXJkQ29udGVudCA9IF90aGlzLmluaXRpYWxpemVEYXNoYm9hcmRDb250ZW50KHJlc3VsdC5hZGRpbkRhc2hib2FyZEluZm8sIHJlc3VsdC5hZGRJbkluc3RhbmNlLmxvY2F0b3IuZGFzaGJvYXJkUGF0aCk7XG4gICAgICAgICAgICBfdGhpcy5lbnZpcm9ubWVudCA9IG5ldyBFbnZpcm9ubWVudF8xLkVudmlyb25tZW50KHJlc3VsdC5hZGRJbkVudmlyb25tZW50KTtcbiAgICAgICAgICAgIF90aGlzLnNldHRpbmdzID0gX3RoaXMuaW5pdGlhbGl6ZVNldHRpbmdzKHJlc3VsdC5hZGRJblNldHRpbmdzSW5mbyk7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgQWRkSW5JbXBsLnByb3RvdHlwZS5pbml0aWFsaXplRGFzaGJvYXJkQ29udGVudCA9IGZ1bmN0aW9uIChpbmZvLCBzaGVldFBhdGgpIHtcbiAgICAgICAgdmFyIGRhc2hib2FyZEltcGwgPSBuZXcgRGFzaGJvYXJkSW1wbF8xLkRhc2hib2FyZEltcGwoaW5mbywgc2hlZXRQYXRoKTtcbiAgICAgICAgdmFyIGRhc2hib2FyZCA9IG5ldyBEYXNoYm9hcmRfMS5EYXNoYm9hcmQoZGFzaGJvYXJkSW1wbCk7XG4gICAgICAgIHJldHVybiBuZXcgRGFzaGJvYXJkQ29udGVudF8xLkRhc2hib2FyZENvbnRlbnQoZGFzaGJvYXJkKTtcbiAgICB9O1xuICAgIEFkZEluSW1wbC5wcm90b3R5cGUuaW5pdGlhbGl6ZVNldHRpbmdzID0gZnVuY3Rpb24gKHNldHRpbmdzSW5mbykge1xuICAgICAgICB2YXIgc2V0dGluZ3NJbXBsID0gbmV3IFNldHRpbmdzSW1wbF8xLlNldHRpbmdzSW1wbChzZXR0aW5nc0luZm8pO1xuICAgICAgICByZXR1cm4gbmV3IFNldHRpbmdzXzEuU2V0dGluZ3Moc2V0dGluZ3NJbXBsKTtcbiAgICB9O1xuICAgIHJldHVybiBBZGRJbkltcGw7XG59KCkpO1xuZXhwb3J0cy5BZGRJbkltcGwgPSBBZGRJbkltcGw7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1BZGRJbkltcGwuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiAuLi9saWIvSW50ZXJuYWwvQWRkSW5JbXBsLmpzXG4gKiogbW9kdWxlIGlkID0gMVxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG4vKipcbiAqIFRoaXMgaXMgeW91ciBtYWluLiBUaGlzIGlzIHdoZXJlIHlvdSByZS1leHBvcnQgZXZlcnl0aGluZyB5b3Ugd2FudCB0byBiZSBwdWJsaWNseSBhdmFpbGFibGUuXG4gKlxuICogVGhlIGJ1aWxkIGVuZm9yY2VzIHRoYXQgdGhlIGZpbGUgaGFzIHRoZSBzYW1lIG5hbWUgYXMgdGhlIGdsb2JhbCB2YXJpYWJsZSB0aGF0IGlzIGV4cG9ydGVkLlxuICovXG5mdW5jdGlvbiBfX2V4cG9ydChtKSB7XG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAoIWV4cG9ydHMuaGFzT3duUHJvcGVydHkocCkpIGV4cG9ydHNbcF0gPSBtW3BdO1xufVxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuX19leHBvcnQocmVxdWlyZShcIi4vaW50ZXJmYWNlL0VudW1zXCIpKTtcbl9fZXhwb3J0KHJlcXVpcmUoXCIuL2ludGVyZmFjZS9JbnRlcm5hbEFwaURpc3BhdGNoZXJcIikpO1xuX19leHBvcnQocmVxdWlyZShcIi4vaW50ZXJmYWNlL05vdGlmaWNhdGlvbnNcIikpO1xuX19leHBvcnQocmVxdWlyZShcIi4vaW50ZXJmYWNlL1BhcmFtZXRlcnNcIikpO1xuX19leHBvcnQocmVxdWlyZShcIi4vaW50ZXJmYWNlL1ZlcmJzXCIpKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUFwaUludGVybmFsQ29udHJhY3QuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9saWIvQXBpSW50ZXJuYWxDb250cmFjdC5qc1xuICoqIG1vZHVsZSBpZCA9IDJcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIEFkZEluQ29udGV4dDtcbihmdW5jdGlvbiAoQWRkSW5Db250ZXh0KSB7XG4gICAgQWRkSW5Db250ZXh0W1wiRGVza3RvcFwiXSA9IFwiZGVza3RvcFwiO1xuICAgIEFkZEluQ29udGV4dFtcIlNlcnZlclwiXSA9IFwic2VydmVyXCI7XG4gICAgQWRkSW5Db250ZXh0W1wiVW5rbm93blwiXSA9IFwidW5rbm93blwiO1xufSkoQWRkSW5Db250ZXh0ID0gZXhwb3J0cy5BZGRJbkNvbnRleHQgfHwgKGV4cG9ydHMuQWRkSW5Db250ZXh0ID0ge30pKTtcbnZhciBBZGRJbk1vZGU7XG4oZnVuY3Rpb24gKEFkZEluTW9kZSkge1xuICAgIEFkZEluTW9kZVtcIkF1dGhvcmluZ1wiXSA9IFwiYXV0aG9yaW5nXCI7XG4gICAgQWRkSW5Nb2RlW1wiVmlld2luZ1wiXSA9IFwidmlld2luZ1wiO1xuICAgIEFkZEluTW9kZVtcIlVua25vd25cIl0gPSBcInVua25vd25cIjtcbn0pKEFkZEluTW9kZSA9IGV4cG9ydHMuQWRkSW5Nb2RlIHx8IChleHBvcnRzLkFkZEluTW9kZSA9IHt9KSk7XG52YXIgQ29sdW1uVHlwZTtcbihmdW5jdGlvbiAoQ29sdW1uVHlwZSkge1xuICAgIENvbHVtblR5cGVbXCJEaXNjcmV0ZVwiXSA9IFwiZGlzY3JldGVcIjtcbiAgICBDb2x1bW5UeXBlW1wiQ29udGludW91c1wiXSA9IFwiY29udGludW91c1wiO1xufSkoQ29sdW1uVHlwZSA9IGV4cG9ydHMuQ29sdW1uVHlwZSB8fCAoZXhwb3J0cy5Db2x1bW5UeXBlID0ge30pKTtcbnZhciBEYXNoYm9hcmRPYmplY3RUeXBlO1xuKGZ1bmN0aW9uIChEYXNoYm9hcmRPYmplY3RUeXBlKSB7XG4gICAgRGFzaGJvYXJkT2JqZWN0VHlwZVtcIkJsYW5rXCJdID0gXCJibGFua1wiO1xuICAgIERhc2hib2FyZE9iamVjdFR5cGVbXCJXb3Jrc2hlZXRcIl0gPSBcIndvcmtzaGVldFwiO1xuICAgIERhc2hib2FyZE9iamVjdFR5cGVbXCJRdWlja0ZpbHRlclwiXSA9IFwicXVpY2stZmlsdGVyXCI7XG4gICAgRGFzaGJvYXJkT2JqZWN0VHlwZVtcIlBhcmFtZXRlckNvbnRyb2xcIl0gPSBcInBhcmFtZXRlci1jb250cm9sXCI7XG4gICAgRGFzaGJvYXJkT2JqZWN0VHlwZVtcIlBhZ2VGaWx0ZXJcIl0gPSBcInBhZ2UtZmlsdGVyXCI7XG4gICAgRGFzaGJvYXJkT2JqZWN0VHlwZVtcIkxlZ2VuZFwiXSA9IFwibGVnZW5kXCI7XG4gICAgRGFzaGJvYXJkT2JqZWN0VHlwZVtcIlRpdGxlXCJdID0gXCJ0aXRsZVwiO1xuICAgIERhc2hib2FyZE9iamVjdFR5cGVbXCJUZXh0XCJdID0gXCJ0ZXh0XCI7XG4gICAgRGFzaGJvYXJkT2JqZWN0VHlwZVtcIkltYWdlXCJdID0gXCJpbWFnZVwiO1xuICAgIERhc2hib2FyZE9iamVjdFR5cGVbXCJXZWJQYWdlXCJdID0gXCJ3ZWItcGFnZVwiO1xuICAgIERhc2hib2FyZE9iamVjdFR5cGVbXCJBZGRJblwiXSA9IFwiYWRkaW5cIjtcbn0pKERhc2hib2FyZE9iamVjdFR5cGUgPSBleHBvcnRzLkRhc2hib2FyZE9iamVjdFR5cGUgfHwgKGV4cG9ydHMuRGFzaGJvYXJkT2JqZWN0VHlwZSA9IHt9KSk7XG52YXIgRGF0YVR5cGU7XG4oZnVuY3Rpb24gKERhdGFUeXBlKSB7XG4gICAgRGF0YVR5cGVbXCJTdHJpbmdcIl0gPSBcInN0cmluZ1wiO1xuICAgIERhdGFUeXBlW1wiSW50XCJdID0gXCJpbnRcIjtcbiAgICBEYXRhVHlwZVtcIkZsb2F0XCJdID0gXCJmbG9hdFwiO1xuICAgIERhdGFUeXBlW1wiQm9vbFwiXSA9IFwiYm9vbFwiO1xuICAgIERhdGFUeXBlW1wiRGF0ZVwiXSA9IFwiZGF0ZVwiO1xuICAgIERhdGFUeXBlW1wiRGF0ZVRpbWVcIl0gPSBcImRhdGUtdGltZVwiO1xuICAgIERhdGFUeXBlW1wiU3BhdGlhbFwiXSA9IFwic3BhdGlhbFwiO1xufSkoRGF0YVR5cGUgPSBleHBvcnRzLkRhdGFUeXBlIHx8IChleHBvcnRzLkRhdGFUeXBlID0ge30pKTtcbnZhciBFbmNvZGVkRGF0YVR5cGU7XG4oZnVuY3Rpb24gKEVuY29kZWREYXRhVHlwZSkge1xuICAgIEVuY29kZWREYXRhVHlwZVtcIk51bWJlclwiXSA9IFwibnVtYmVyXCI7XG4gICAgRW5jb2RlZERhdGFUeXBlW1wiU3RyaW5nXCJdID0gXCJzdHJpbmdcIjtcbiAgICBFbmNvZGVkRGF0YVR5cGVbXCJEYXRlXCJdID0gXCJkYXRlXCI7XG4gICAgRW5jb2RlZERhdGFUeXBlW1wiQm9vbGVhblwiXSA9IFwiYm9vbGVhblwiO1xufSkoRW5jb2RlZERhdGFUeXBlID0gZXhwb3J0cy5FbmNvZGVkRGF0YVR5cGUgfHwgKGV4cG9ydHMuRW5jb2RlZERhdGFUeXBlID0ge30pKTtcbnZhciBFcnJvckNvZGU7XG4oZnVuY3Rpb24gKEVycm9yQ29kZSkge1xuICAgIEVycm9yQ29kZVtcIlNlcnZlckVycm9yXCJdID0gXCJzZXJ2ZXItZXJyb3JcIjtcbiAgICBFcnJvckNvZGVbXCJJbnZhbGlkQWdncmVnYXRpb25GaWVsZE5hbWVcIl0gPSBcImludmFsaWQtYWdncmVnYXRpb24tZmllbGQtbmFtZVwiO1xuICAgIEVycm9yQ29kZVtcIkludmFsaWRGaWx0ZXJGaWVsZE5hbWVcIl0gPSBcImludmFsaWQtZmlsdGVyLWZpZWxkbmFtZVwiO1xuICAgIEVycm9yQ29kZVtcIkludmFsaWRGaWx0ZXJGaWVsZFZhbHVlXCJdID0gXCJpbnZhbGlkLWZpbHRlci1maWVsZC12YWx1ZVwiO1xufSkoRXJyb3JDb2RlID0gZXhwb3J0cy5FcnJvckNvZGUgfHwgKGV4cG9ydHMuRXJyb3JDb2RlID0ge30pKTtcbnZhciBGaWVsZEFnZ3JlZ2F0aW9uVHlwZTtcbihmdW5jdGlvbiAoRmllbGRBZ2dyZWdhdGlvblR5cGUpIHtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlN1bVwiXSA9IFwic3VtXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJBdmdcIl0gPSBcImF2Z1wiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiTWluXCJdID0gXCJtaW5cIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIk1heFwiXSA9IFwibWF4XCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJTdGRldlwiXSA9IFwic3RkZXZcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlN0ZGV2cFwiXSA9IFwic3RkZXZwXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJWYXJcIl0gPSBcInZhclwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiVmFycFwiXSA9IFwidmFycFwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiQ291bnRcIl0gPSBcImNvdW50XCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJDb3VudGRcIl0gPSBcImNvdW50ZFwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiTWVkaWFuXCJdID0gXCJtZWRpYW5cIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIkF0dHJcIl0gPSBcImF0dHJcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIk5vbmVcIl0gPSBcIm5vbmVcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlllYXJcIl0gPSBcInllYXJcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlF0clwiXSA9IFwicXRyXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJNb250aFwiXSA9IFwibW9udGhcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIkRheVwiXSA9IFwiZGF5XCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJIb3VyXCJdID0gXCJob3VyXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJNaW51dGVcIl0gPSBcIm1pbnV0ZVwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiU2Vjb25kXCJdID0gXCJzZWNvbmRcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIldlZWtcIl0gPSBcIndlZWtcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIldlZWtkYXlcIl0gPSBcIndlZWtkYXlcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIk1vbnRoWWVhclwiXSA9IFwibW9udGgteWVhclwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiTWR5XCJdID0gXCJtZHlcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIkVuZFwiXSA9IFwiZW5kXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJUcnVuY1llYXJcIl0gPSBcInRydW5jLXllYXJcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlRydW5jUXRyXCJdID0gXCJ0cnVuYy1xdHJcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlRydW5jTW9udGhcIl0gPSBcInRydW5jLW1vbnRoXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJUcnVuY1dlZWtcIl0gPSBcInRydW5jLXdlZWtcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlRydW5jRGF5XCJdID0gXCJ0cnVuYy1kYXlcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlRydW5jSG91clwiXSA9IFwidHJ1bmMtaG91clwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiVHJ1bmNNaW51dGVcIl0gPSBcInRydW5jLW1pbnV0ZVwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiVHJ1bmNTZWNvbmRcIl0gPSBcInRydW5jLXNlY29uZFwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiUXVhcnQxXCJdID0gXCJxdWFydDFcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlF1YXJ0M1wiXSA9IFwicXVhcnQzXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJTa2V3bmVzc1wiXSA9IFwic2tld25lc3NcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIkt1cnRvc2lzXCJdID0gXCJrdXJ0b3Npc1wiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiSW5PdXRcIl0gPSBcImluLW91dFwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiVXNlclwiXSA9IFwidXNlclwiO1xufSkoRmllbGRBZ2dyZWdhdGlvblR5cGUgPSBleHBvcnRzLkZpZWxkQWdncmVnYXRpb25UeXBlIHx8IChleHBvcnRzLkZpZWxkQWdncmVnYXRpb25UeXBlID0ge30pKTtcbnZhciBGaWVsZFJvbGVUeXBlO1xuKGZ1bmN0aW9uIChGaWVsZFJvbGVUeXBlKSB7XG4gICAgRmllbGRSb2xlVHlwZVtcIkRpbWVuc2lvblwiXSA9IFwiZGltZW5zaW9uXCI7XG4gICAgRmllbGRSb2xlVHlwZVtcIk1lYXN1cmVcIl0gPSBcIm1lYXN1cmVcIjtcbiAgICBGaWVsZFJvbGVUeXBlW1wiVW5rbm93blwiXSA9IFwidW5rbm93blwiO1xufSkoRmllbGRSb2xlVHlwZSA9IGV4cG9ydHMuRmllbGRSb2xlVHlwZSB8fCAoZXhwb3J0cy5GaWVsZFJvbGVUeXBlID0ge30pKTtcbi8qKlxuICogIFRoZSBkaWZmZXJlbnQgdXBkYXRlIHR5cGVzIGZvciBhcHBseWluZyBmaWx0ZXIuXG4gKi9cbnZhciBGaWx0ZXJVcGRhdGVUeXBlO1xuKGZ1bmN0aW9uIChGaWx0ZXJVcGRhdGVUeXBlKSB7XG4gICAgRmlsdGVyVXBkYXRlVHlwZVtcIkFkZFwiXSA9IFwiYWRkXCI7XG4gICAgRmlsdGVyVXBkYXRlVHlwZVtcIkFsbFwiXSA9IFwiYWxsXCI7XG4gICAgRmlsdGVyVXBkYXRlVHlwZVtcIlJlcGxhY2VcIl0gPSBcInJlcGxhY2VcIjtcbiAgICBGaWx0ZXJVcGRhdGVUeXBlW1wiUmVtb3ZlXCJdID0gXCJyZW1vdmVcIjtcbn0pKEZpbHRlclVwZGF0ZVR5cGUgPSBleHBvcnRzLkZpbHRlclVwZGF0ZVR5cGUgfHwgKGV4cG9ydHMuRmlsdGVyVXBkYXRlVHlwZSA9IHt9KSk7XG52YXIgU2hlZXRUeXBlO1xuKGZ1bmN0aW9uIChTaGVldFR5cGUpIHtcbiAgICBTaGVldFR5cGVbXCJEYXNoYm9hcmRcIl0gPSBcImRhc2hib2FyZFwiO1xuICAgIFNoZWV0VHlwZVtcIlN0b3J5XCJdID0gXCJzdG9yeVwiO1xuICAgIFNoZWV0VHlwZVtcIldvcmtzaGVldFwiXSA9IFwid29ya3NoZWV0XCI7XG4gICAgU2hlZXRUeXBlW1wiQWRkaW5cIl0gPSBcImFkZGluXCI7XG59KShTaGVldFR5cGUgPSBleHBvcnRzLlNoZWV0VHlwZSB8fCAoZXhwb3J0cy5TaGVldFR5cGUgPSB7fSkpO1xudmFyIERvbWFpblJlc3RyaWN0aW9uVHlwZTtcbihmdW5jdGlvbiAoRG9tYWluUmVzdHJpY3Rpb25UeXBlKSB7XG4gICAgRG9tYWluUmVzdHJpY3Rpb25UeXBlW1wiQWxsXCJdID0gXCJhbGxcIjtcbiAgICBEb21haW5SZXN0cmljdGlvblR5cGVbXCJMaXN0XCJdID0gXCJsaXN0XCI7XG4gICAgRG9tYWluUmVzdHJpY3Rpb25UeXBlW1wiUmFuZ2VcIl0gPSBcInJhbmdlXCI7XG59KShEb21haW5SZXN0cmljdGlvblR5cGUgPSBleHBvcnRzLkRvbWFpblJlc3RyaWN0aW9uVHlwZSB8fCAoZXhwb3J0cy5Eb21haW5SZXN0cmljdGlvblR5cGUgPSB7fSkpO1xudmFyIERhdGVTdGVwUGVyaW9kO1xuKGZ1bmN0aW9uIChEYXRlU3RlcFBlcmlvZCkge1xuICAgIERhdGVTdGVwUGVyaW9kW1wiWWVhcnNcIl0gPSBcInllYXJzXCI7XG4gICAgRGF0ZVN0ZXBQZXJpb2RbXCJRdWFydGVyc1wiXSA9IFwicXVhcnRlcnNcIjtcbiAgICBEYXRlU3RlcFBlcmlvZFtcIk1vbnRoc1wiXSA9IFwibW9udGhzXCI7XG4gICAgRGF0ZVN0ZXBQZXJpb2RbXCJXZWVrc1wiXSA9IFwid2Vla3NcIjtcbiAgICBEYXRlU3RlcFBlcmlvZFtcIkRheXNcIl0gPSBcImRheXNcIjtcbiAgICBEYXRlU3RlcFBlcmlvZFtcIkhvdXJzXCJdID0gXCJob3Vyc1wiO1xuICAgIERhdGVTdGVwUGVyaW9kW1wiTWludXRlc1wiXSA9IFwibWludXRlc1wiO1xuICAgIERhdGVTdGVwUGVyaW9kW1wiU2Vjb25kc1wiXSA9IFwic2Vjb25kc1wiO1xufSkoRGF0ZVN0ZXBQZXJpb2QgPSBleHBvcnRzLkRhdGVTdGVwUGVyaW9kIHx8IChleHBvcnRzLkRhdGVTdGVwUGVyaW9kID0ge30pKTtcbi8qKlxuICogVGhlIG9wdGlvbiBmb3Igc3BlY2lmeWluZyB3aGljaCB2YWx1ZXMgdG8gaW5jbHVkZSBmb3IgZmlsdGVyaW5nLlxuICovXG52YXIgRmlsdGVyTnVsbE9wdGlvbjtcbihmdW5jdGlvbiAoRmlsdGVyTnVsbE9wdGlvbikge1xuICAgIEZpbHRlck51bGxPcHRpb25bXCJOdWxsVmFsdWVzXCJdID0gXCJudWxsdmFsdWVzXCI7XG4gICAgRmlsdGVyTnVsbE9wdGlvbltcIk5vbk51bGxWYWx1ZXNcIl0gPSBcIm5vbm51bGx2YWx1ZXNcIjtcbiAgICBGaWx0ZXJOdWxsT3B0aW9uW1wiQWxsVmFsdWVzXCJdID0gXCJhbGx2YWx1ZXNcIjtcbn0pKEZpbHRlck51bGxPcHRpb24gPSBleHBvcnRzLkZpbHRlck51bGxPcHRpb24gfHwgKGV4cG9ydHMuRmlsdGVyTnVsbE9wdGlvbiA9IHt9KSk7XG4vKipcbiAqIFRoZSB0eXBlIG9mIGZpbHRlciBkb21haW5cbiAqL1xudmFyIEZpbHRlckRvbWFpblR5cGU7XG4oZnVuY3Rpb24gKEZpbHRlckRvbWFpblR5cGUpIHtcbiAgICBGaWx0ZXJEb21haW5UeXBlW1wiUmVsZXZhbnRcIl0gPSBcInJlbGV2YW50XCI7XG4gICAgRmlsdGVyRG9tYWluVHlwZVtcIkRhdGFiYXNlXCJdID0gXCJkYXRhYmFzZVwiO1xufSkoRmlsdGVyRG9tYWluVHlwZSA9IGV4cG9ydHMuRmlsdGVyRG9tYWluVHlwZSB8fCAoZXhwb3J0cy5GaWx0ZXJEb21haW5UeXBlID0ge30pKTtcbi8qKlxuICogSW50ZXJuYWwgZW51bSBmb3Igc3BlY2lmeWluZyB0aGUgc2VsZWN0aW9uIHR5cGUgZm9yIHNlbGVjdCBtYXJrcyBhcGkuXG4gKi9cbnZhciBTZWxlY3Rpb25VcGRhdGVUeXBlO1xuKGZ1bmN0aW9uIChTZWxlY3Rpb25VcGRhdGVUeXBlKSB7XG4gICAgU2VsZWN0aW9uVXBkYXRlVHlwZVtcIlJlcGxhY2VcIl0gPSBcInNlbGVjdC1yZXBsYWNlXCI7XG4gICAgU2VsZWN0aW9uVXBkYXRlVHlwZVtcIkFkZFwiXSA9IFwic2VsZWN0LWFkZFwiO1xuICAgIFNlbGVjdGlvblVwZGF0ZVR5cGVbXCJSZW1vdmVcIl0gPSBcInNlbGVjdC1yZW1vdmVcIjtcbn0pKFNlbGVjdGlvblVwZGF0ZVR5cGUgPSBleHBvcnRzLlNlbGVjdGlvblVwZGF0ZVR5cGUgfHwgKGV4cG9ydHMuU2VsZWN0aW9uVXBkYXRlVHlwZSA9IHt9KSk7XG4vKipcbiAqIEludGVybmFsIGVudW0gZm9yIHNwZWNpZnlpbmcgdGhlIGluY2x1ZGVkIHZhbHVlcyB0eXBlIGZvciByYW5nZSBzZWxlY3Rpb24uXG4gKi9cbnZhciBRdWFudGl0YXRpdmVJbmNsdWRlZFZhbHVlcztcbihmdW5jdGlvbiAoUXVhbnRpdGF0aXZlSW5jbHVkZWRWYWx1ZXMpIHtcbiAgICBRdWFudGl0YXRpdmVJbmNsdWRlZFZhbHVlc1tcIkluY2x1ZGVOdWxsXCJdID0gXCJpbmNsdWRlLW51bGxcIjtcbiAgICBRdWFudGl0YXRpdmVJbmNsdWRlZFZhbHVlc1tcIkluY2x1ZGVOb25OdWxsXCJdID0gXCJpbmNsdWRlLW5vbi1udWxsXCI7XG4gICAgUXVhbnRpdGF0aXZlSW5jbHVkZWRWYWx1ZXNbXCJJbmNsdWRlQWxsXCJdID0gXCJpbmNsdWRlLWFsbFwiO1xufSkoUXVhbnRpdGF0aXZlSW5jbHVkZWRWYWx1ZXMgPSBleHBvcnRzLlF1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzIHx8IChleHBvcnRzLlF1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzID0ge30pKTtcbi8qKlxuICogVHlwZSBvZiBtYXJrIGZvciBhIGdpdmVuIG1hcmtzIGNhcmQgaW4gYSB2aXouXG4gKi9cbnZhciBNYXJrVHlwZTtcbihmdW5jdGlvbiAoTWFya1R5cGUpIHtcbiAgICBNYXJrVHlwZVtcIkJhclwiXSA9IFwiYmFyXCI7XG4gICAgTWFya1R5cGVbXCJMaW5lXCJdID0gXCJsaW5lXCI7XG4gICAgTWFya1R5cGVbXCJBcmVhXCJdID0gXCJhcmVhXCI7XG4gICAgTWFya1R5cGVbXCJTcXVhcmVcIl0gPSBcInNxdWFyZVwiO1xuICAgIE1hcmtUeXBlW1wiQ2lyY2xlXCJdID0gXCJjaXJjbGVcIjtcbiAgICBNYXJrVHlwZVtcIlNoYXBlXCJdID0gXCJzaGFwZVwiO1xuICAgIE1hcmtUeXBlW1wiVGV4dFwiXSA9IFwidGV4dFwiO1xuICAgIE1hcmtUeXBlW1wiTWFwXCJdID0gXCJtYXBcIjtcbiAgICBNYXJrVHlwZVtcIlBpZVwiXSA9IFwicGllXCI7XG4gICAgTWFya1R5cGVbXCJHYW50dEJhclwiXSA9IFwiZ2FudHQtYmFyXCI7XG4gICAgTWFya1R5cGVbXCJQb2x5Z29uXCJdID0gXCJwb2x5Z29uXCI7XG59KShNYXJrVHlwZSA9IGV4cG9ydHMuTWFya1R5cGUgfHwgKGV4cG9ydHMuTWFya1R5cGUgPSB7fSkpO1xuLyoqXG4gKiBJbnRlcm5hbCBlbnVtIGZvciBzcGVjaWZ5aW5nIHRoZSB0eXBlIG9mIGZpbHRlclxuICovXG52YXIgRmlsdGVyVHlwZTtcbihmdW5jdGlvbiAoRmlsdGVyVHlwZSkge1xuICAgIEZpbHRlclR5cGVbXCJDYXRlZ29yaWNhbFwiXSA9IFwiY2F0ZWdvcmljYWxcIjtcbiAgICBGaWx0ZXJUeXBlW1wiUmFuZ2VcIl0gPSBcInJhbmdlXCI7XG4gICAgRmlsdGVyVHlwZVtcIlJlbGF0aXZlRGF0ZVwiXSA9IFwicmVsYXRpdmVEYXRlXCI7XG4gICAgRmlsdGVyVHlwZVtcIkhpZXJhcmNoaWNhbFwiXSA9IFwiaGllcmFyY2hpY2FsXCI7XG59KShGaWx0ZXJUeXBlID0gZXhwb3J0cy5GaWx0ZXJUeXBlIHx8IChleHBvcnRzLkZpbHRlclR5cGUgPSB7fSkpO1xuLyoqXG4gKiBJbnRlcm5hbCBlbnVtIGZvciBzcGVjaWZ5aW5nIHRoZSBEYXRlUmFuZ2VUeXBlIG9mIGEgcmVsYXRpdmUgZGF0ZSBmaWx0ZXJcbiAqL1xudmFyIERhdGVSYW5nZVR5cGU7XG4oZnVuY3Rpb24gKERhdGVSYW5nZVR5cGUpIHtcbiAgICAvKipcbiAgICAgKiBSZWZlcnMgdG8gdGhlIGxhc3QgZGF5LCB3ZWVrLCBtb250aCwgZXRjLiBvZiB0aGUgZGF0ZSBwZXJpb2QuXG4gICAgICovXG4gICAgRGF0ZVJhbmdlVHlwZVtcIkxhc3RcIl0gPSBcImxhc3RcIjtcbiAgICAvKipcbiAgICAgKiBSZWZlcnMgdG8gdGhlIGxhc3QgTiBkYXlzLCB3ZWVrcywgbW9udGhzLCBldGMuIG9mIHRoZSBkYXRlIHBlcmlvZC5cbiAgICAgKi9cbiAgICBEYXRlUmFuZ2VUeXBlW1wiTGFzdE5cIl0gPSBcImxhc3ROXCI7XG4gICAgLyoqXG4gICAgICogUmVmZXJzIHRvIHRoZSBuZXh0IGRheSwgd2VlaywgbW9udGgsIGV0Yy4gb2YgdGhlIGRhdGUgcGVyaW9kLlxuICAgICAqL1xuICAgIERhdGVSYW5nZVR5cGVbXCJOZXh0XCJdID0gXCJuZXh0XCI7XG4gICAgLyoqXG4gICAgICogUmVmZXJzIHRvIHRoZSBuZXh0IE4gZGF5cywgd2Vla3MsIG1vbnRocywgZXRjLiBvZiB0aGUgZGF0ZSBwZXJpb2QuXG4gICAgICovXG4gICAgRGF0ZVJhbmdlVHlwZVtcIk5leHROXCJdID0gXCJuZXh0TlwiO1xuICAgIC8qKlxuICAgICAqIFJlZmVycyB0byB0aGUgY3VycmVudCBkYXksIHdlZWssIG1vbnRoLCBldGMuIG9mIHRoZSBkYXRlIHBlcmlvZC5cbiAgICAgKi9cbiAgICBEYXRlUmFuZ2VUeXBlW1wiQ3VycmVudFwiXSA9IFwiY3VycmVudFwiO1xuICAgIC8qKlxuICAgICAqIFJlZmVycyB0byBldmVyeXRoaW5nIHVwIHRvIGFuZCBpbmNsdWRpbmcgdGhlIGN1cnJlbnQgZGF5LCB3ZWVrLCBtb250aCwgZXRjLiBvZiB0aGUgZGF0ZSBwZXJpb2QuXG4gICAgICovXG4gICAgRGF0ZVJhbmdlVHlwZVtcIlRvRGF0ZVwiXSA9IFwidG9EYXRlXCI7XG59KShEYXRlUmFuZ2VUeXBlID0gZXhwb3J0cy5EYXRlUmFuZ2VUeXBlIHx8IChleHBvcnRzLkRhdGVSYW5nZVR5cGUgPSB7fSkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RW51bXMuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9saWIvaW50ZXJmYWNlL0VudW1zLmpzXG4gKiogbW9kdWxlIGlkID0gM1xuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgSW50ZXJuYWxBcGlEaXNwYXRjaGVySG9sZGVyO1xuKGZ1bmN0aW9uIChJbnRlcm5hbEFwaURpc3BhdGNoZXJIb2xkZXIpIHtcbiAgICBmdW5jdGlvbiBnZXREZXNrdG9wRGlzcGF0Y2hlclByb21pc2UoKSB7XG4gICAgICAgIHJldHVybiB3aW5kb3cuX190YWJsZWF1RGVza3RvcERpc3BhdGNoZXI7XG4gICAgfVxuICAgIEludGVybmFsQXBpRGlzcGF0Y2hlckhvbGRlci5nZXREZXNrdG9wRGlzcGF0Y2hlclByb21pc2UgPSBnZXREZXNrdG9wRGlzcGF0Y2hlclByb21pc2U7XG4gICAgZnVuY3Rpb24gaGFzRGVza3RvcEFwaURpc3BhdGNoZXJQcm9taXNlKCkge1xuICAgICAgICByZXR1cm4gISFJbnRlcm5hbEFwaURpc3BhdGNoZXJIb2xkZXIuZ2V0RGVza3RvcERpc3BhdGNoZXJQcm9taXNlKCk7XG4gICAgfVxuICAgIEludGVybmFsQXBpRGlzcGF0Y2hlckhvbGRlci5oYXNEZXNrdG9wQXBpRGlzcGF0Y2hlclByb21pc2UgPSBoYXNEZXNrdG9wQXBpRGlzcGF0Y2hlclByb21pc2U7XG4gICAgZnVuY3Rpb24gc2V0RGVza3RvcERpc3BhdGNoZXJQcm9taXNlKGRpc3BhdGNoZXIpIHtcbiAgICAgICAgd2luZG93Ll9fdGFibGVhdURlc2t0b3BEaXNwYXRjaGVyID0gZGlzcGF0Y2hlcjtcbiAgICB9XG4gICAgSW50ZXJuYWxBcGlEaXNwYXRjaGVySG9sZGVyLnNldERlc2t0b3BEaXNwYXRjaGVyUHJvbWlzZSA9IHNldERlc2t0b3BEaXNwYXRjaGVyUHJvbWlzZTtcbn0pKEludGVybmFsQXBpRGlzcGF0Y2hlckhvbGRlciA9IGV4cG9ydHMuSW50ZXJuYWxBcGlEaXNwYXRjaGVySG9sZGVyIHx8IChleHBvcnRzLkludGVybmFsQXBpRGlzcGF0Y2hlckhvbGRlciA9IHt9KSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1JbnRlcm5hbEFwaURpc3BhdGNoZXIuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9saWIvaW50ZXJmYWNlL0ludGVybmFsQXBpRGlzcGF0Y2hlci5qc1xuICoqIG1vZHVsZSBpZCA9IDRcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIE5vdGlmaWNhdGlvbklkO1xuKGZ1bmN0aW9uIChOb3RpZmljYXRpb25JZCkge1xuICAgIE5vdGlmaWNhdGlvbklkW1wiU2VsZWN0ZWRNYXJrc0NoYW5nZWRcIl0gPSBcInNlbGVjdGVkLW1hcmtzLWNoYW5nZWRcIjtcbiAgICBOb3RpZmljYXRpb25JZFtcIlBhcmFtZXRlckNoYW5nZWRcIl0gPSBcInBhcmFtZXRlci1jaGFuZ2VkXCI7XG4gICAgTm90aWZpY2F0aW9uSWRbXCJGaWx0ZXJDaGFuZ2VkXCJdID0gXCJmaWx0ZXItY2hhbmdlZFwiO1xufSkoTm90aWZpY2F0aW9uSWQgPSBleHBvcnRzLk5vdGlmaWNhdGlvbklkIHx8IChleHBvcnRzLk5vdGlmaWNhdGlvbklkID0ge30pKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU5vdGlmaWNhdGlvbnMuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9saWIvaW50ZXJmYWNlL05vdGlmaWNhdGlvbnMuanNcbiAqKiBtb2R1bGUgaWQgPSA1XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBQYXJhbWV0ZXJJZDtcbihmdW5jdGlvbiAoUGFyYW1ldGVySWQpIHtcbiAgICBQYXJhbWV0ZXJJZFtcIkFkZEluTG9jYXRvclwiXSA9IFwiYWRkLWluLWxvY2F0b3JcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIkFkZEluQm9vdHN0cmFwSW5mb1wiXSA9IFwiYWRkLWluLWJvb3RzdHJhcC1pbmZvXCI7XG4gICAgUGFyYW1ldGVySWRbXCJBZGRJblNldHRpbmdzSW5mb1wiXSA9IFwiYWRkLWluLXNldHRpbmdzLWluZm9cIjtcbiAgICBQYXJhbWV0ZXJJZFtcIlZpc3VhbElkXCJdID0gXCJ2aXN1YWwtaWRcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIlNoZWV0UGF0aFwiXSA9IFwic2hlZXQtcGF0aFwiO1xuICAgIFBhcmFtZXRlcklkW1wiSWdub3JlQWxpYXNlc1wiXSA9IFwiaWdub3JlLWFsaWFzZXNcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIklnbm9yZVNlbGVjdGlvblwiXSA9IFwiaWdub3JlLXNlbGVjdGlvblwiO1xuICAgIFBhcmFtZXRlcklkW1wiSW5jbHVkZUFsbENvbHVtbnNcIl0gPSBcImluY2x1ZGUtYWxsLWNvbHVtbnNcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIk1heFJvd3NcIl0gPSBcIm1heC1yb3dzXCI7XG4gICAgUGFyYW1ldGVySWRbXCJVbmRlcmx5aW5nRGF0YVRhYmxlXCJdID0gXCJ1bmRlcmx5aW5nLWRhdGEtdGFibGVcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIlVuZGVybHlpbmdTdW1tYXJ5RGF0YVRhYmxlXCJdID0gXCJ1bmRlcmx5aW5nLXN1bW1hcnktZGF0YS10YWJsZVwiO1xuICAgIFBhcmFtZXRlcklkW1wiRGF0YVNvdXJjZURhdGFUYWJsZVwiXSA9IFwiZGF0YS1zb3VyY2UtZGF0YS10YWJsZVwiO1xuICAgIFBhcmFtZXRlcklkW1wiU2V0dGluZ3NWYWx1ZXNcIl0gPSBcInNldHRpbmdzLXZhbHVlc1wiO1xuICAgIFBhcmFtZXRlcklkW1wiU2VsZWN0ZWREYXRhXCJdID0gXCJzZWxlY3RlZC1kYXRhXCI7XG4gICAgUGFyYW1ldGVySWRbXCJIaWdobGlnaHRlZERhdGFcIl0gPSBcImhpZ2hsaWdodGVkLWRhdGFcIjtcbiAgICAvLyBGaWx0ZXIgUGFyYW1zXG4gICAgUGFyYW1ldGVySWRbXCJGaWVsZE5hbWVcIl0gPSBcImZpZWxkLW5hbWVcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIkZpbHRlclZhbHVlc1wiXSA9IFwiZmlsdGVyLXZhbHVlc1wiO1xuICAgIFBhcmFtZXRlcklkW1wiRmlsdGVyVXBkYXRlVHlwZVwiXSA9IFwiZmlsdGVyLXVwZGF0ZS10eXBlXCI7XG4gICAgUGFyYW1ldGVySWRbXCJJc0V4Y2x1ZGVNb2RlXCJdID0gXCJpcy1leGNsdWRlXCI7XG4gICAgUGFyYW1ldGVySWRbXCJGaWx0ZXJSYW5nZU1pblwiXSA9IFwiZmlsdGVyLXJhbmdlLW1pblwiO1xuICAgIFBhcmFtZXRlcklkW1wiRmlsdGVyUmFuZ2VNYXhcIl0gPSBcImZpbHRlci1yYW5nZS1tYXhcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIkZpbHRlclJhbmdlTnVsbE9wdGlvblwiXSA9IFwiZmlsdGVyLXJhbmdlLW51bGwtb3B0aW9uXCI7XG4gICAgUGFyYW1ldGVySWRbXCJXb3Jrc2hlZXRGaWx0ZXJzXCJdID0gXCJ3b3Jrc2hlZXQtZmlsdGVyc1wiO1xuICAgIFBhcmFtZXRlcklkW1wiRmllbGRJZFwiXSA9IFwiZmllbGQtaWRcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIkRvbWFpblR5cGVcIl0gPSBcImRvbWFpbi10eXBlXCI7XG4gICAgUGFyYW1ldGVySWRbXCJDYXRlZ29yaWNhbERvbWFpblwiXSA9IFwiY2F0ZWdvcmljYWwtZG9tYWluXCI7XG4gICAgUGFyYW1ldGVySWRbXCJRdWFudGl0YXRpdmVEb21haW5cIl0gPSBcInF1YW50aXRhdGl2ZS1kbWFpblwiO1xuICAgIFBhcmFtZXRlcklkW1wiV29ya3NoZWV0TmFtZVwiXSA9IFwid29ya3NoZWV0LW5hbWVcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIkRhc2hib2FyZE5hbWVcIl0gPSBcImRhc2hib2FyZFwiO1xuICAgIFBhcmFtZXRlcklkW1wiUGFyYW1ldGVySW5mb1wiXSA9IFwicGFyYW1ldGVyLWluZm9cIjtcbiAgICBQYXJhbWV0ZXJJZFtcIlBhcmFtZXRlckluZm9zXCJdID0gXCJwYXJhbWV0ZXItaW5mb3NcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIlBhcmFtZXRlckNhcHRpb25cIl0gPSBcInBhcmVtZXRlci1jYXB0aW9uXCI7XG4gICAgUGFyYW1ldGVySWRbXCJQYXJhbWV0ZXJGaWVsZE5hbWVcIl0gPSBcInBhcmFtZXRlci1maWVsZC1uYW1lXCI7XG4gICAgUGFyYW1ldGVySWRbXCJQYXJhbWV0ZXJWYWx1ZVwiXSA9IFwicGFyYW1ldGVyLXZhbHVlXCI7XG4gICAgUGFyYW1ldGVySWRbXCJTZWxlY3Rpb25cIl0gPSBcInNlbGVjdGlvblwiO1xuICAgIFBhcmFtZXRlcklkW1wiU2VsZWN0aW9uVXBkYXRlVHlwZVwiXSA9IFwic2VsZWN0aW9uVXBkYXRlVHlwZVwiO1xuICAgIFBhcmFtZXRlcklkW1wiSGllclZhbFNlbGVjdGlvbk1vZGVsc1wiXSA9IFwiaGllcmFyY2hpY2FsVmFsdWVTZWxlY3Rpb25Nb2RlbHNcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIlF1YW50UmFuZ2VTZWxlY3Rpb25Nb2RlbHNcIl0gPSBcInF1YW50YXRpdmVSYW5nZVNlbGVjdGlvbk1vZGVsc1wiO1xuICAgIFBhcmFtZXRlcklkW1wiRGltVmFsU2VsZWN0aW9uTW9kZWxzXCJdID0gXCJkaW1lbnNpb25WYWx1ZVNlbGVjdGlvbk1vZGVsc1wiO1xuICAgIFBhcmFtZXRlcklkW1wiRGF0YVNvdXJjZUlkXCJdID0gXCJkYXRhLXNvdXJjZS1pZFwiO1xuICAgIFBhcmFtZXRlcklkW1wiRGF0YVNjaGVtYVwiXSA9IFwiZGF0YS1zY2hlbWFcIjtcbiAgICBQYXJhbWV0ZXJJZFtcIkRhdGFTb3VyY2VOYW1lXCJdID0gXCJkYXRhLXNvdXJjZS1uYW1lXCI7XG4gICAgUGFyYW1ldGVySWRbXCJDb2x1bW5zVG9JbmNsdWRlXCJdID0gXCJjb2x1bW5zLXRvLWluY2x1ZGVcIjtcbn0pKFBhcmFtZXRlcklkID0gZXhwb3J0cy5QYXJhbWV0ZXJJZCB8fCAoZXhwb3J0cy5QYXJhbWV0ZXJJZCA9IHt9KSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1QYXJhbWV0ZXJzLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogRDovZGV2L2pzLWFwaS9hcGktaW50ZXJuYWwtY29udHJhY3QvbGliL2ludGVyZmFjZS9QYXJhbWV0ZXJzLmpzXG4gKiogbW9kdWxlIGlkID0gNlxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4vLyBEZWNsYXJlIHRoaXMga2V5IHR5cGUgYW5kIGV4cG9ydCB0aGUgTm90aWZpY2F0aW9uSWQgdG8gbWFrZSB0aGlzIGJlaGF2ZSBsaWtlIGEgc3RyaW5nIGVudW1cbnZhciBWZXJiSWQ7XG4oZnVuY3Rpb24gKFZlcmJJZCkge1xuICAgIFZlcmJJZFtcIkFwcGx5Q2F0ZWdvcmljYWxGaWx0ZXJcIl0gPSBcImNhdGVnb3JpY2FsLWZpbHRlclwiO1xuICAgIFZlcmJJZFtcIkFwcGx5UmFuZ2VGaWx0ZXJcIl0gPSBcInJhbmdlLWZpbHRlclwiO1xuICAgIFZlcmJJZFtcIkNsZWFyRmlsdGVyXCJdID0gXCJjbGVhci1maWx0ZXJcIjtcbiAgICBWZXJiSWRbXCJJbml0aWFsaXplQWRkSW5cIl0gPSBcImluaXRpYWxpemUtYWRkLWluXCI7XG4gICAgVmVyYklkW1wiR2V0RGF0YVN1bW1hcnlEYXRhXCJdID0gXCJnZXQtc3VtbWFyeS1kYXRhXCI7XG4gICAgVmVyYklkW1wiR2V0VW5kZXJseWluZ0RhdGFcIl0gPSBcImdldC11bmRlcmx5aW5nLWRhdGFcIjtcbiAgICBWZXJiSWRbXCJHZXREYXRhU291cmNlRGF0YVwiXSA9IFwiZ2V0LWRhdGFzb3VyY2UtZGF0YVwiO1xuICAgIFZlcmJJZFtcIlNhdmVBZGRJblNldHRpbmdzXCJdID0gXCJzYXZlLWFkZC1pbi1zZXR0aW5nc1wiO1xuICAgIFZlcmJJZFtcIkdldFNlbGVjdGVkTWFya3NcIl0gPSBcImdldC1zZWxlY3RlZC1tYXJrc1wiO1xuICAgIFZlcmJJZFtcIkdldEhpZ2hsaWdodGVkTWFya3NcIl0gPSBcImdldC1oaWdobGlnaHRlZC1tYXJrc1wiO1xuICAgIFZlcmJJZFtcIkdldFBhcmFtZXRlcnNGb3JTaGVldFwiXSA9IFwiZ2V0LXBhcmFtZXRlcnMtZm9yLXNoZWV0XCI7XG4gICAgVmVyYklkW1wiRmluZFBhcmFtZXRlclwiXSA9IFwiZmluZC1wYXJhbWV0ZXJcIjtcbiAgICBWZXJiSWRbXCJDaGFuZ2VQYXJhbWV0ZXJWYWx1ZVwiXSA9IFwiY2hhbmdlLXBhcmFtZXRlci12YWx1ZVwiO1xuICAgIFZlcmJJZFtcIkNsZWFyU2VsZWN0ZWRNYXJrc1wiXSA9IFwiY2xlYXItc2VsZWN0ZWQtbWFya3NcIjtcbiAgICBWZXJiSWRbXCJTZWxlY3RCeVZhbHVlXCJdID0gXCJzZWxlY3QtYnktdmFsdWVcIjtcbiAgICBWZXJiSWRbXCJHZXREYXRhU291cmNlc1wiXSA9IFwiZ2V0LWRhdGEtc291cmNlc1wiO1xuICAgIFZlcmJJZFtcIlJlZnJlc2hEYXRhU291cmNlXCJdID0gXCJyZWZyZXNoLWRhdGEtc291cmNlXCI7XG4gICAgVmVyYklkW1wiR2V0RmlsdGVyc1wiXSA9IFwiZ2V0LWZpbHRlcnNcIjtcbiAgICBWZXJiSWRbXCJHZXRDYXRlZ29yaWNhbERvbWFpblwiXSA9IFwiZ2V0LWNhdGVnb3JpY2FsLWRvbWFpblwiO1xuICAgIFZlcmJJZFtcIkdldFJhbmdlRG9tYWluXCJdID0gXCJnZXQtcmFuZ2UtZG9tYWluXCI7XG59KShWZXJiSWQgPSBleHBvcnRzLlZlcmJJZCB8fCAoZXhwb3J0cy5WZXJiSWQgPSB7fSkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VmVyYnMuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1pbnRlcm5hbC1jb250cmFjdC9saWIvaW50ZXJmYWNlL1ZlcmJzLmpzXG4gKiogbW9kdWxlIGlkID0gN1xuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG4vKipcbiAqIFRoaXMgaXMgeW91ciBtYWluLiBUaGlzIGlzIHdoZXJlIHlvdSByZS1leHBvcnQgZXZlcnl0aGluZyB5b3Ugd2FudCB0byBiZSBwdWJsaWNseSBhdmFpbGFibGUuXG4gKlxuICogVGhlIGJ1aWxkIGVuZm9yY2VzIHRoYXQgdGhlIGZpbGUgaGFzIHRoZSBzYW1lIG5hbWUgYXMgdGhlIGdsb2JhbCB2YXJpYWJsZSB0aGF0IGlzIGV4cG9ydGVkLlxuICovXG5mdW5jdGlvbiBfX2V4cG9ydChtKSB7XG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAoIWV4cG9ydHMuaGFzT3duUHJvcGVydHkocCkpIGV4cG9ydHNbcF0gPSBtW3BdO1xufVxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuX19leHBvcnQocmVxdWlyZShcIi4vRXZlbnRMaXN0ZW5lck1hbmFnZXJcIikpO1xuX19leHBvcnQocmVxdWlyZShcIi4vUGFyYW1ldGVyXCIpKTtcbnZhciBQb2ludF8xID0gcmVxdWlyZShcIi4vUG9pbnRcIik7XG5leHBvcnRzLlBvaW50ID0gUG9pbnRfMS5Qb2ludDtcbnZhciBTaXplXzEgPSByZXF1aXJlKFwiLi9TaXplXCIpO1xuZXhwb3J0cy5TaXplID0gU2l6ZV8xLlNpemU7XG5fX2V4cG9ydChyZXF1aXJlKFwiLi9Nb2RlbHMvR2V0RGF0YU1vZGVsc1wiKSk7XG5fX2V4cG9ydChyZXF1aXJlKFwiLi9FeGNlcHRpb25zL1RhYmxlYXVFeGNlcHRpb25zXCIpKTtcbl9fZXhwb3J0KHJlcXVpcmUoXCIuL0V2ZW50cy9GaWx0ZXJDaGFuZ2VkRXZlbnRcIikpO1xuX19leHBvcnQocmVxdWlyZShcIi4vRXZlbnRzL01hcmtzU2VsZWN0ZWRFdmVudFwiKSk7XG5fX2V4cG9ydChyZXF1aXJlKFwiLi9FdmVudHMvVGFibGVhdUV2ZW50XCIpKTtcbl9fZXhwb3J0KHJlcXVpcmUoXCIuL0V2ZW50cy9UYWJsZWF1U2hlZXRFdmVudFwiKSk7XG5fX2V4cG9ydChyZXF1aXJlKFwiLi9FdmVudHMvVGFibGVhdVdvcmtzaGVldEV2ZW50XCIpKTtcbl9fZXhwb3J0KHJlcXVpcmUoXCIuL0ludGVybmFsL1NpbmdsZUV2ZW50TWFuYWdlckltcGxcIikpO1xuX19leHBvcnQocmVxdWlyZShcIi4vU2VydmljZXMvR2V0RGF0YVNlcnZpY2VcIikpO1xuX19leHBvcnQocmVxdWlyZShcIi4vU2VydmljZXMvUmVnaXN0ZXJBbGxTaGFyZWRTZXJ2aWNlc1wiKSk7XG5fX2V4cG9ydChyZXF1aXJlKFwiLi9TZXJ2aWNlcy9TZXJ2aWNlUmVnaXN0cnlcIikpO1xuX19leHBvcnQocmVxdWlyZShcIi4vRW51bU1hcHBpbmdzL0ludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5nc1wiKSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1BcGlTaGFyZWQuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL0FwaVNoYXJlZC5qc1xuICoqIG1vZHVsZSBpZCA9IDhcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuLyoqXG4gKiBDbGFzcyBkZXNpZ25lZCB0byByZWdpc3RlciBhbmQgdW5yZWdpc3RlciBoYW5kbGVycyBmcm9tIGEgdXNlci4gT25seSB0aG9zZSBldmVudHNcbiAqIHdoaWNoIGFyZSBhZGRlZCB2aWEgQWRkTmV3RXZlbnRUeXBlIHdpbGwgYmUgc3VwcG9ydGVkIGJ5IHRoaXMgaW5zdGFuY2VcbiAqL1xudmFyIEV2ZW50TGlzdGVuZXJNYW5hZ2VyID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBFdmVudExpc3RlbmVyTWFuYWdlcigpIHtcbiAgICAgICAgdGhpcy5fZXZlbnRMaXN0ZW5lck1hbmFnZXJzID0ge307XG4gICAgfVxuICAgIEV2ZW50TGlzdGVuZXJNYW5hZ2VyLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyID0gZnVuY3Rpb24gKGV2ZW50VHlwZSwgaGFuZGxlcikge1xuICAgICAgICBpZiAoIXRoaXMuX2V2ZW50TGlzdGVuZXJNYW5hZ2Vycy5oYXNPd25Qcm9wZXJ0eShldmVudFR5cGUpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbnN1cHBvcnRlZCBldmVudCB0eXBlIDogXCIgKyBldmVudFR5cGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9ldmVudExpc3RlbmVyTWFuYWdlcnNbZXZlbnRUeXBlXS5hZGRFdmVudExpc3RlbmVyKGhhbmRsZXIpO1xuICAgIH07XG4gICAgRXZlbnRMaXN0ZW5lck1hbmFnZXIucHJvdG90eXBlLnJlbW92ZUV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbiAoZXZlbnRUeXBlLCBoYW5kbGVyKSB7XG4gICAgICAgIGlmICghdGhpcy5fZXZlbnRMaXN0ZW5lck1hbmFnZXJzLmhhc093blByb3BlcnR5KGV2ZW50VHlwZSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVuc3VwcG9ydGVkIGV2ZW50IHR5cGUgOiBcIiArIGV2ZW50VHlwZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2V2ZW50TGlzdGVuZXJNYW5hZ2Vyc1tldmVudFR5cGVdLnJlbW92ZUV2ZW50TGlzdGVuZXIoaGFuZGxlcik7XG4gICAgfTtcbiAgICBFdmVudExpc3RlbmVyTWFuYWdlci5wcm90b3R5cGUuYWRkTmV3RXZlbnRUeXBlID0gZnVuY3Rpb24gKGV2ZW50TWFuYWdlcikge1xuICAgICAgICB0aGlzLl9ldmVudExpc3RlbmVyTWFuYWdlcnNbZXZlbnRNYW5hZ2VyLmV2ZW50VHlwZV0gPSBldmVudE1hbmFnZXI7XG4gICAgfTtcbiAgICByZXR1cm4gRXZlbnRMaXN0ZW5lck1hbmFnZXI7XG59KCkpO1xuZXhwb3J0cy5FdmVudExpc3RlbmVyTWFuYWdlciA9IEV2ZW50TGlzdGVuZXJNYW5hZ2VyO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RXZlbnRMaXN0ZW5lck1hbmFnZXIuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL0V2ZW50TGlzdGVuZXJNYW5hZ2VyLmpzXG4gKiogbW9kdWxlIGlkID0gOVxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19leHRlbmRzID0gKHRoaXMgJiYgdGhpcy5fX2V4dGVuZHMpIHx8IChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxuICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcbiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XG4gICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcbiAgICB9O1xufSkoKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBFdmVudExpc3RlbmVyTWFuYWdlcl8xID0gcmVxdWlyZShcIi4vRXZlbnRMaXN0ZW5lck1hbmFnZXJcIik7XG4vKipcbiAqIEltcGxlbWVudGF0aW9uIG9mIHRoZSBQYXJhbWV0ZXIgY29udHJhY3QuIENhbGxzIGRvd24gdG8gdGhlIGltcGxcbiAqIGNsYXNzIGZvciBhbG1vc3QgYWxsIG9mIHRoZSB3b3JrIGl0IGRvZXMuXG4gKi9cbnZhciBQYXJhbWV0ZXIgPSAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhQYXJhbWV0ZXIsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gUGFyYW1ldGVyKHBhcmFtZXRlckltcGwsIHNoZWV0KSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLnBhcmFtZXRlckltcGwgPSBwYXJhbWV0ZXJJbXBsO1xuICAgICAgICAvLyBJbml0aWFsaXplIG91ciBldmVudCBoYW5kbGluZyBmb3IgdGhpcyBjbGFzc1xuICAgICAgICBfdGhpcy5wYXJhbWV0ZXJJbXBsLmluaXRpYWxpemVFdmVudHMoc2hlZXQpLmZvckVhY2goZnVuY3Rpb24gKGUpIHsgcmV0dXJuIF90aGlzLmFkZE5ld0V2ZW50VHlwZShlKTsgfSk7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFBhcmFtZXRlci5wcm90b3R5cGUsIFwibmFtZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGFyYW1ldGVySW1wbC5uYW1lO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUGFyYW1ldGVyLnByb3RvdHlwZSwgXCJjdXJyZW50VmFsdWVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBhcmFtZXRlckltcGwuY3VycmVudFZhbHVlO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUGFyYW1ldGVyLnByb3RvdHlwZSwgXCJkYXRhVHlwZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGFyYW1ldGVySW1wbC5kYXRhVHlwZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFBhcmFtZXRlci5wcm90b3R5cGUsIFwiYWxsb3dhYmxlVmFsdWVzXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJJbXBsLmFsbG93YWJsZVZhbHVlcztcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgUGFyYW1ldGVyLnByb3RvdHlwZS5jaGFuZ2VWYWx1ZUFzeW5jID0gZnVuY3Rpb24gKG5ld1ZhbHVlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcmFtZXRlckltcGwuY2hhbmdlVmFsdWVBc3luYyhuZXdWYWx1ZSk7XG4gICAgfTtcbiAgICByZXR1cm4gUGFyYW1ldGVyO1xufShFdmVudExpc3RlbmVyTWFuYWdlcl8xLkV2ZW50TGlzdGVuZXJNYW5hZ2VyKSk7XG5leHBvcnRzLlBhcmFtZXRlciA9IFBhcmFtZXRlcjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVBhcmFtZXRlci5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvUGFyYW1ldGVyLmpzXG4gKiogbW9kdWxlIGlkID0gMTBcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIFBvaW50ID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBQb2ludChfeCwgX3kpIHtcbiAgICAgICAgdGhpcy5feCA9IF94O1xuICAgICAgICB0aGlzLl95ID0gX3k7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShQb2ludC5wcm90b3R5cGUsIFwieFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3g7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShQb2ludC5wcm90b3R5cGUsIFwieVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3k7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIHJldHVybiBQb2ludDtcbn0oKSk7XG5leHBvcnRzLlBvaW50ID0gUG9pbnQ7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Qb2ludC5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvUG9pbnQuanNcbiAqKiBtb2R1bGUgaWQgPSAxMVxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgU2l6ZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gU2l6ZShfaGVpZ2h0LCBfd2lkdGgpIHtcbiAgICAgICAgdGhpcy5faGVpZ2h0ID0gX2hlaWdodDtcbiAgICAgICAgdGhpcy5fd2lkdGggPSBfd2lkdGg7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTaXplLnByb3RvdHlwZSwgXCJoZWlnaHRcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9oZWlnaHQ7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTaXplLnByb3RvdHlwZSwgXCJ3aWR0aFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dpZHRoO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICByZXR1cm4gU2l6ZTtcbn0oKSk7XG5leHBvcnRzLlNpemUgPSBTaXplO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2l6ZS5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvU2l6ZS5qc1xuICoqIG1vZHVsZSBpZCA9IDEyXG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBEYXRhVGFibGUgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIERhdGFUYWJsZShfZGF0YSwgX2NvbHVtbnMsIF90b3RhbFJvd0NvdW50LCBfaXNTdW1tYXJ5RGF0YSwgX21hcmtzSW5mbykge1xuICAgICAgICB0aGlzLl9kYXRhID0gX2RhdGE7XG4gICAgICAgIHRoaXMuX2NvbHVtbnMgPSBfY29sdW1ucztcbiAgICAgICAgdGhpcy5fdG90YWxSb3dDb3VudCA9IF90b3RhbFJvd0NvdW50O1xuICAgICAgICB0aGlzLl9pc1N1bW1hcnlEYXRhID0gX2lzU3VtbWFyeURhdGE7XG4gICAgICAgIHRoaXMuX21hcmtzSW5mbyA9IF9tYXJrc0luZm87XG4gICAgICAgIC8vIFRPRE86IGdldCByaWQgb2YgdGhpcyBpbiByZWRlc2lnbi5cbiAgICAgICAgdGhpcy5fbmFtZSA9IF9pc1N1bW1hcnlEYXRhID8gJ1N1bW1hcnkgRGF0YSBUYWJsZScgOiAnVW5kZXJseWluZyBEYXRhIFRhYmxlJztcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFUYWJsZS5wcm90b3R5cGUsIFwibmFtZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX25hbWU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhVGFibGUucHJvdG90eXBlLCBcImRhdGFcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kYXRhO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRGF0YVRhYmxlLnByb3RvdHlwZSwgXCJjb2x1bW5zXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fY29sdW1ucztcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFUYWJsZS5wcm90b3R5cGUsIFwibWFya3NJbmZvXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbWFya3NJbmZvO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRGF0YVRhYmxlLnByb3RvdHlwZSwgXCJ0b3RhbFJvd0NvdW50XCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdG90YWxSb3dDb3VudDtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFUYWJsZS5wcm90b3R5cGUsIFwiaXNTdW1tYXJ5RGF0YVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2lzU3VtbWFyeURhdGE7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIHJldHVybiBEYXRhVGFibGU7XG59KCkpO1xuZXhwb3J0cy5EYXRhVGFibGUgPSBEYXRhVGFibGU7XG52YXIgTWFya0luZm8gPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIE1hcmtJbmZvKF90eXBlLCBfY29sb3IsIF90dXBsZUlkKSB7XG4gICAgICAgIHRoaXMuX3R5cGUgPSBfdHlwZTtcbiAgICAgICAgdGhpcy5fY29sb3IgPSBfY29sb3I7XG4gICAgICAgIHRoaXMuX3R1cGxlSWQgPSBfdHVwbGVJZDtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE1hcmtJbmZvLnByb3RvdHlwZSwgXCJ0eXBlXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KE1hcmtJbmZvLnByb3RvdHlwZSwgXCJjb2xvclwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbG9yO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoTWFya0luZm8ucHJvdG90eXBlLCBcInR1cGxlSWRcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl90dXBsZUlkO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICByZXR1cm4gTWFya0luZm87XG59KCkpO1xuZXhwb3J0cy5NYXJrSW5mbyA9IE1hcmtJbmZvO1xudmFyIENvbHVtbiA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gQ29sdW1uKF9maWVsZE5hbWUsIF9kYXRhVHlwZSwgLy8gVE9ETzogdGhpcyBzaG91ZGwgYmUgYW4gZW51bSB0eXBlXG4gICAgICAgIF9pc1JlZmVyZW5jZWQsIF9pbmRleCkge1xuICAgICAgICB0aGlzLl9maWVsZE5hbWUgPSBfZmllbGROYW1lO1xuICAgICAgICB0aGlzLl9kYXRhVHlwZSA9IF9kYXRhVHlwZTtcbiAgICAgICAgdGhpcy5faXNSZWZlcmVuY2VkID0gX2lzUmVmZXJlbmNlZDtcbiAgICAgICAgdGhpcy5faW5kZXggPSBfaW5kZXg7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShDb2x1bW4ucHJvdG90eXBlLCBcImZpZWxkTmFtZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZpZWxkTmFtZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KENvbHVtbi5wcm90b3R5cGUsIFwiZGF0YVR5cGVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kYXRhVHlwZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KENvbHVtbi5wcm90b3R5cGUsIFwiaXNSZWZlcmVuY2VkXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5faXNSZWZlcmVuY2VkO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQ29sdW1uLnByb3RvdHlwZSwgXCJpbmRleFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2luZGV4O1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICByZXR1cm4gQ29sdW1uO1xufSgpKTtcbmV4cG9ydHMuQ29sdW1uID0gQ29sdW1uO1xudmFyIERhdGFWYWx1ZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgLyogdHNsaW50OmRpc2FibGU6bm8tYW55ICovXG4gICAgZnVuY3Rpb24gRGF0YVZhbHVlKF92YWx1ZSwgX2Zvcm1hdHRlZFZhbHVlKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gX3ZhbHVlO1xuICAgICAgICB0aGlzLl9mb3JtYXR0ZWRWYWx1ZSA9IF9mb3JtYXR0ZWRWYWx1ZTtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFWYWx1ZS5wcm90b3R5cGUsIFwidmFsdWVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFWYWx1ZS5wcm90b3R5cGUsIFwiZm9ybWF0dGVkVmFsdWVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9mb3JtYXR0ZWRWYWx1ZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgcmV0dXJuIERhdGFWYWx1ZTtcbn0oKSk7XG5leHBvcnRzLkRhdGFWYWx1ZSA9IERhdGFWYWx1ZTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUdldERhdGFNb2RlbHMuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL01vZGVscy9HZXREYXRhTW9kZWxzLmpzXG4gKiogbW9kdWxlIGlkID0gMTNcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIFRhYmxlYXVFeGNlcHRpb25zID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBUYWJsZWF1RXhjZXB0aW9ucygpIHtcbiAgICB9XG4gICAgcmV0dXJuIFRhYmxlYXVFeGNlcHRpb25zO1xufSgpKTtcbmV4cG9ydHMuVGFibGVhdUV4Y2VwdGlvbnMgPSBUYWJsZWF1RXhjZXB0aW9ucztcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRhYmxlYXVFeGNlcHRpb25zLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9FeGNlcHRpb25zL1RhYmxlYXVFeGNlcHRpb25zLmpzXG4gKiogbW9kdWxlIGlkID0gMTRcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkge1xuICAgIHZhciBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XG4gICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcbiAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxuICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XG4gICAgfTtcbn0pKCk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgQ29udHJhY3QgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0XCIpO1xudmFyIFRhYmxlYXVXb3Jrc2hlZXRFdmVudF8xID0gcmVxdWlyZShcIi4vVGFibGVhdVdvcmtzaGVldEV2ZW50XCIpO1xudmFyIEZpbHRlckNoYW5nZWRFdmVudCA9IChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKEZpbHRlckNoYW5nZWRFdmVudCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBGaWx0ZXJDaGFuZ2VkRXZlbnQod29ya3NoZWV0LCBfZmllbGROYW1lKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIENvbnRyYWN0LlRhYmxlYXVFdmVudFR5cGUuRmlsdGVyQ2hhbmdlZCwgd29ya3NoZWV0KSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5fZmllbGROYW1lID0gX2ZpZWxkTmFtZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRmlsdGVyQ2hhbmdlZEV2ZW50LnByb3RvdHlwZSwgXCJmaWVsZE5hbWVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9maWVsZE5hbWU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIEZpbHRlckNoYW5nZWRFdmVudC5wcm90b3R5cGUuZ2V0RmlsdGVyQXN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXQuZ2V0RmlsdGVyc0FzeW5jKCkudGhlbihmdW5jdGlvbiAoZmlsdGVycykge1xuICAgICAgICAgICAgLy8gVE9ETzogRmlsdGVyaW5nIG9mIHRoZSBmaWx0ZXJzIHNob3VsZCBldmVudHVhbGx5IGJlIGRvbmUgcGxhdGZvcm0gc2lkZS5cbiAgICAgICAgICAgIHZhciBldmVudGVkRmlsdGVyID0gZmlsdGVycy5maW5kKGZ1bmN0aW9uIChmaWx0ZXIpIHsgcmV0dXJuIChmaWx0ZXIuZmllbGROYW1lID09PSBfdGhpcy5fZmllbGROYW1lKTsgfSk7XG4gICAgICAgICAgICBpZiAoIWV2ZW50ZWRGaWx0ZXIpIHtcbiAgICAgICAgICAgICAgICAvLyBXZSBzaG91bGRuJ3QgaGl0IHRoaXMgdW5sZXNzIHRoZSBmaWx0ZXIgd2FzIHJlbW92ZWQgZnJvbSB0aGUgd29ya3NoZWV0XG4gICAgICAgICAgICAgICAgLy8gYWZ0ZXIgdGhlIGV2ZW50IHdhcyByYWlzZWQuXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcm5hbCBFcnJvcjogRmlsdGVyIG5vIGxvbmdlciBmb3VuZCBpbiB3b3Jrc2hlZXQuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZXZlbnRlZEZpbHRlcjtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICByZXR1cm4gRmlsdGVyQ2hhbmdlZEV2ZW50O1xufShUYWJsZWF1V29ya3NoZWV0RXZlbnRfMS5UYWJsZWF1V29ya3NoZWV0RXZlbnQpKTtcbmV4cG9ydHMuRmlsdGVyQ2hhbmdlZEV2ZW50ID0gRmlsdGVyQ2hhbmdlZEV2ZW50O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RmlsdGVyQ2hhbmdlZEV2ZW50LmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9FdmVudHMvRmlsdGVyQ2hhbmdlZEV2ZW50LmpzXG4gKiogbW9kdWxlIGlkID0gMTVcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuLyoqXG4gKiBUaGlzIGlzIHlvdXIgbWFpbi4gVGhpcyBpcyB3aGVyZSB5b3UgcmUtZXhwb3J0IGV2ZXJ5dGhpbmcgeW91IHdhbnQgdG8gYmUgcHVibGljbHkgYXZhaWxhYmxlLlxuICpcbiAqIFRoZSBidWlsZCBlbmZvcmNlcyB0aGF0IHRoZSBmaWxlIGhhcyB0aGUgc2FtZSBuYW1lIGFzIHRoZSBnbG9iYWwgdmFyaWFibGUgdGhhdCBpcyBleHBvcnRlZC5cbiAqL1xuZnVuY3Rpb24gX19leHBvcnQobSkge1xuICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKCFleHBvcnRzLmhhc093blByb3BlcnR5KHApKSBleHBvcnRzW3BdID0gbVtwXTtcbn1cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbl9fZXhwb3J0KHJlcXVpcmUoXCIuL0VudW1zXCIpKTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUFwaUV4dGVybmFsQ29udHJhY3QuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1leHRlcm5hbC1jb250cmFjdC9saWIvQXBpRXh0ZXJuYWxDb250cmFjdC5qc1xuICoqIG1vZHVsZSBpZCA9IDE2XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbi8vIEFsbCBlbnVtIHZhbHVlcyBtYWRlIGF2YWlsYWJsZSB0byBBZGRJbiBkZXZlbG9wZXJzLlxuLy8gRW51bXMgc2hvdWxkIGJlIGtlcHQgaW4gYWxwaGFiZXRpY2FsIG9yZGVyLlxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuLyoqXG4gKiBUaGUgY29udGV4dCBpbiB3aGljaCB0aGUgQWRkSW4gaXMgY3VycmVudGx5IHJ1bm5pbmcuXG4gKi9cbnZhciBBZGRJbkNvbnRleHQ7XG4oZnVuY3Rpb24gKEFkZEluQ29udGV4dCkge1xuICAgIEFkZEluQ29udGV4dFtcIkRlc2t0b3BcIl0gPSBcImRlc2t0b3BcIjtcbiAgICBBZGRJbkNvbnRleHRbXCJTZXJ2ZXJcIl0gPSBcInNlcnZlclwiO1xufSkoQWRkSW5Db250ZXh0ID0gZXhwb3J0cy5BZGRJbkNvbnRleHQgfHwgKGV4cG9ydHMuQWRkSW5Db250ZXh0ID0ge30pKTtcbi8qKlxuICogVGhlIG1vZGUgaW4gd2hpY2ggdGhlIEFkZEluIGlzIGN1cnJlbnRseSBydW5uaW5nLlxuICovXG52YXIgQWRkSW5Nb2RlO1xuKGZ1bmN0aW9uIChBZGRJbk1vZGUpIHtcbiAgICBBZGRJbk1vZGVbXCJBdXRob3JpbmdcIl0gPSBcImF1dGhvcmluZ1wiO1xuICAgIEFkZEluTW9kZVtcIlZpZXdpbmdcIl0gPSBcInZpZXdpbmdcIjtcbn0pKEFkZEluTW9kZSA9IGV4cG9ydHMuQWRkSW5Nb2RlIHx8IChleHBvcnRzLkFkZEluTW9kZSA9IHt9KSk7XG52YXIgQW5hbHl0aWNzT2JqZWN0VHlwZTtcbihmdW5jdGlvbiAoQW5hbHl0aWNzT2JqZWN0VHlwZSkge1xuICAgIEFuYWx5dGljc09iamVjdFR5cGVbXCJDbHVzdGVyXCJdID0gXCJjbHVzdGVyXCI7XG4gICAgQW5hbHl0aWNzT2JqZWN0VHlwZVtcIkZvcmVjYXN0XCJdID0gXCJmb3JlY2FzdFwiO1xuICAgIEFuYWx5dGljc09iamVjdFR5cGVbXCJUcmVuZExpbmVcIl0gPSBcInRyZW5kLWxpbmVcIjtcbn0pKEFuYWx5dGljc09iamVjdFR5cGUgPSBleHBvcnRzLkFuYWx5dGljc09iamVjdFR5cGUgfHwgKGV4cG9ydHMuQW5hbHl0aWNzT2JqZWN0VHlwZSA9IHt9KSk7XG52YXIgQ29sdW1uVHlwZTtcbihmdW5jdGlvbiAoQ29sdW1uVHlwZSkge1xuICAgIENvbHVtblR5cGVbXCJEaXNjcmV0ZVwiXSA9IFwiZGlzY3JldGVcIjtcbiAgICBDb2x1bW5UeXBlW1wiQ29udGludW91c1wiXSA9IFwiY29udGludW91c1wiO1xufSkoQ29sdW1uVHlwZSA9IGV4cG9ydHMuQ29sdW1uVHlwZSB8fCAoZXhwb3J0cy5Db2x1bW5UeXBlID0ge30pKTtcbi8qKlxuICogV2hhdCB0aGUgb2JqZWN0IHJlcHJlc2VudHMgaW4gYSBkYXNoYm9hcmQuXG4gKi9cbnZhciBEYXNoYm9hcmRPYmplY3RUeXBlO1xuKGZ1bmN0aW9uIChEYXNoYm9hcmRPYmplY3RUeXBlKSB7XG4gICAgRGFzaGJvYXJkT2JqZWN0VHlwZVtcIkJsYW5rXCJdID0gXCJibGFua1wiO1xuICAgIERhc2hib2FyZE9iamVjdFR5cGVbXCJXb3Jrc2hlZXRcIl0gPSBcIndvcmtzaGVldFwiO1xuICAgIERhc2hib2FyZE9iamVjdFR5cGVbXCJRdWlja0ZpbHRlclwiXSA9IFwicXVpY2stZmlsdGVyXCI7XG4gICAgRGFzaGJvYXJkT2JqZWN0VHlwZVtcIlBhcmFtZXRlckNvbnRyb2xcIl0gPSBcInBhcmFtZXRlci1jb250cm9sXCI7XG4gICAgRGFzaGJvYXJkT2JqZWN0VHlwZVtcIlBhZ2VGaWx0ZXJcIl0gPSBcInBhZ2UtZmlsdGVyXCI7XG4gICAgRGFzaGJvYXJkT2JqZWN0VHlwZVtcIkxlZ2VuZFwiXSA9IFwibGVnZW5kXCI7XG4gICAgRGFzaGJvYXJkT2JqZWN0VHlwZVtcIlRpdGxlXCJdID0gXCJ0aXRsZVwiO1xuICAgIERhc2hib2FyZE9iamVjdFR5cGVbXCJUZXh0XCJdID0gXCJ0ZXh0XCI7XG4gICAgRGFzaGJvYXJkT2JqZWN0VHlwZVtcIkltYWdlXCJdID0gXCJpbWFnZVwiO1xuICAgIERhc2hib2FyZE9iamVjdFR5cGVbXCJXZWJQYWdlXCJdID0gXCJ3ZWItcGFnZVwiO1xuICAgIERhc2hib2FyZE9iamVjdFR5cGVbXCJBZGRJblwiXSA9IFwiYWRkaW5cIjtcbn0pKERhc2hib2FyZE9iamVjdFR5cGUgPSBleHBvcnRzLkRhc2hib2FyZE9iamVjdFR5cGUgfHwgKGV4cG9ydHMuRGFzaGJvYXJkT2JqZWN0VHlwZSA9IHt9KSk7XG4vKipcbiAqIFRoZSBkaWZmZXJlbnQgdHlwZXMgb2YgZGF0YSBhIHZhbHVlIGNhbiBoYXZlXG4gKi9cbnZhciBEYXRhVHlwZTtcbihmdW5jdGlvbiAoRGF0YVR5cGUpIHtcbiAgICBEYXRhVHlwZVtcIlN0cmluZ1wiXSA9IFwic3RyaW5nXCI7XG4gICAgRGF0YVR5cGVbXCJJbnRcIl0gPSBcImludFwiO1xuICAgIERhdGFUeXBlW1wiRmxvYXRcIl0gPSBcImZsb2F0XCI7XG4gICAgRGF0YVR5cGVbXCJCb29sXCJdID0gXCJib29sXCI7XG4gICAgRGF0YVR5cGVbXCJEYXRlXCJdID0gXCJkYXRlXCI7XG4gICAgRGF0YVR5cGVbXCJEYXRlVGltZVwiXSA9IFwiZGF0ZS10aW1lXCI7XG4gICAgRGF0YVR5cGVbXCJTcGF0aWFsXCJdID0gXCJzcGF0aWFsXCI7XG59KShEYXRhVHlwZSA9IGV4cG9ydHMuRGF0YVR5cGUgfHwgKGV4cG9ydHMuRGF0YVR5cGUgPSB7fSkpO1xuLyoqXG4gKiBWYWxpZCBkYXRlIHJhbmdlcyBmb3IgYSByZWxhdGl2ZSBkYXRlIGZpbHRlci5cbiAqL1xudmFyIERhdGVSYW5nZVR5cGU7XG4oZnVuY3Rpb24gKERhdGVSYW5nZVR5cGUpIHtcbiAgICBEYXRlUmFuZ2VUeXBlW1wiTGFzdFwiXSA9IFwibGFzdFwiO1xuICAgIERhdGVSYW5nZVR5cGVbXCJMYXN0TlwiXSA9IFwibGFzdC1uXCI7XG4gICAgRGF0ZVJhbmdlVHlwZVtcIk5leHRcIl0gPSBcIm5leHRcIjtcbiAgICBEYXRlUmFuZ2VUeXBlW1wiTmV4dE5cIl0gPSBcIm5leHQtblwiO1xuICAgIERhdGVSYW5nZVR5cGVbXCJDdXJyZW50XCJdID0gXCJjdXJyZW50XCI7XG4gICAgRGF0ZVJhbmdlVHlwZVtcIlRvRGF0ZVwiXSA9IFwidG8tZGF0ZVwiO1xufSkoRGF0ZVJhbmdlVHlwZSA9IGV4cG9ydHMuRGF0ZVJhbmdlVHlwZSB8fCAoZXhwb3J0cy5EYXRlUmFuZ2VUeXBlID0ge30pKTtcbi8qKlxuICogVHlwZXMgb2YgZGlhbG9nIGV2ZW50IGZvciBldmVudCBsaXN0ZW5pbmcgYmV0d2VlbiBhIHBhcmVudCBBZGRJbiBhbmQgYSBwb3B1cCBkaWFsb2cuXG4gKi9cbnZhciBEaWFsb2dFdmVudFR5cGU7XG4oZnVuY3Rpb24gKERpYWxvZ0V2ZW50VHlwZSkge1xuICAgIERpYWxvZ0V2ZW50VHlwZVtcIkRpYWxvZ01lc3NhZ2VcIl0gPSBcImRpYWxvZy1tZXNzYWdlXCI7XG4gICAgRGlhbG9nRXZlbnRUeXBlW1wiRGlhbG9nRXZlbnRcIl0gPSBcImRpYWxvZy1ldmVudFwiO1xufSkoRGlhbG9nRXZlbnRUeXBlID0gZXhwb3J0cy5EaWFsb2dFdmVudFR5cGUgfHwgKGV4cG9ydHMuRGlhbG9nRXZlbnRUeXBlID0ge30pKTtcbnZhciBFbmNvZGluZ1R5cGU7XG4oZnVuY3Rpb24gKEVuY29kaW5nVHlwZSkge1xuICAgIEVuY29kaW5nVHlwZVtcIkNvbHVtblwiXSA9IFwiY29sdW1uXCI7XG4gICAgRW5jb2RpbmdUeXBlW1wiUm93XCJdID0gXCJyb3dcIjtcbiAgICBFbmNvZGluZ1R5cGVbXCJQYWdlXCJdID0gXCJwYWdlXCI7XG4gICAgRW5jb2RpbmdUeXBlW1wiRmlsdGVyXCJdID0gXCJmaWx0ZXJcIjtcbiAgICBFbmNvZGluZ1R5cGVbXCJNYXJrc1R5cGVcIl0gPSBcIm1hcmtzLXR5cGVcIjtcbiAgICBFbmNvZGluZ1R5cGVbXCJNZWFzdXJlVmFsdWVzXCJdID0gXCJtZWFzdXJlLXZhbHVlc1wiO1xuICAgIEVuY29kaW5nVHlwZVtcIkNvbG9yXCJdID0gXCJjb2xvclwiO1xuICAgIEVuY29kaW5nVHlwZVtcIlNpemVcIl0gPSBcInNpemVcIjtcbiAgICBFbmNvZGluZ1R5cGVbXCJMYWJlbFwiXSA9IFwibGFiZWxcIjtcbiAgICBFbmNvZGluZ1R5cGVbXCJEZXRhaWxcIl0gPSBcImRldGFpbFwiO1xuICAgIEVuY29kaW5nVHlwZVtcIlRvb2x0aXBcIl0gPSBcInRvb2x0aXBcIjtcbiAgICBFbmNvZGluZ1R5cGVbXCJTaGFwZVwiXSA9IFwic2hhcGVcIjtcbiAgICBFbmNvZGluZ1R5cGVbXCJQYXRoXCJdID0gXCJwYXRoXCI7XG4gICAgRW5jb2RpbmdUeXBlW1wiQW5nbGVcIl0gPSBcImFuZ2xlXCI7XG59KShFbmNvZGluZ1R5cGUgPSBleHBvcnRzLkVuY29kaW5nVHlwZSB8fCAoZXhwb3J0cy5FbmNvZGluZ1R5cGUgPSB7fSkpO1xuLyoqXG4gKiBBbGwgZXJyb3IgY29kZXMgdXNlZCBieSB0aGUgQWRkSW4gQVBJLlxuICovXG52YXIgRXJyb3JDb2RlcztcbihmdW5jdGlvbiAoRXJyb3JDb2Rlcykge1xuICAgIC8qKlxuICAgICAqIE9ubHkgb25lIGRpYWxvZyBjYW4gYmUgb3BlbmVkIGF0IHRpbWUgd2l0aCB0aGUgVUkgbmFtZXNwYWNlIGZ1bmN0aW9uYWxpdHkuXG4gICAgICovXG4gICAgRXJyb3JDb2Rlc1tcIkRpYWxvZ0FscmVhZHlPcGVuXCJdID0gXCJkaWFsb2ctYWxyZWFkeS1vcGVuXCI7XG4gICAgLyoqXG4gICAgICogVGhlIG9wZW4gZGlhbG9nIHdhcyBjbG9zZWQgYnkgdGhlIHVzZXIuXG4gICAgICovXG4gICAgRXJyb3JDb2Rlc1tcIkRpYWxvZ0Nsb3NlZEJ5VXNlclwiXSA9IFwiZGlhbG9nLWNsb3NlZC1ieS11c2VyXCI7XG4gICAgLyoqXG4gICAgICogQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgYXR0ZW1wdGluZyB0byBwZXJmb3JtIGEgZmlsdGVyIG9wZXJhdGlvbi5cbiAgICAgKi9cbiAgICBFcnJvckNvZGVzW1wiRmlsdGVyQ2Fubm90QmVQZXJmb3JtZWRcIl0gPSBcImZpbHRlci1jYW5ub3QtYmUtcGVyZm9ybWVkXCI7XG4gICAgLyoqXG4gICAgICogQW4gZXJyb3Igb2NjdXJyZWQgd2l0aGluIHRoZSBUYWJsZWF1IEFkZEluIEFQSS4gQ29udGFjdCBUYWJsZWF1IFN1cHBvcnQuXG4gICAgICovXG4gICAgRXJyb3JDb2Rlc1tcIkludGVybmFsRXJyb3JcIl0gPSBcImludGVybmFsLWVycm9yXCI7XG4gICAgLyoqXG4gICAgICogQW4gaW52YWxpZCBhZ2dyZWdhdGlvbiB3YXMgc3BlY2lmaWVkIGZvciB0aGUgZmlsdGVyLCBzdWNoIGFzIHNldHRpbmcgYSByYW5nZSBmaWx0ZXIgdG8gXCJTVU0oU2FsZXMpXCIgaW5zdGVhZCBvZiBcIlNhbGVzXCIuXG4gICAgICovXG4gICAgRXJyb3JDb2Rlc1tcIkludmFsaWRBZ2dyZWdhdGlvbkZpZWxkTmFtZVwiXSA9IFwiaW52YWxpZC1hZ2dyZWdhdGlvbi1maWVsZC1uYW1lXCI7XG4gICAgLyoqXG4gICAgICogQSBkaWFsb2cgbXVzdCBmaXJzdCBsYXVuY2ggdG8sIGFuZCBzZW5kIG1lc3NhZ2VzIGZyb20sIHRoZSBzYW1lIGRvbWFpbiBhcyB0aGUgcGFyZW50IEFkZEluLlxuICAgICAqL1xuICAgIEVycm9yQ29kZXNbXCJJbnZhbGlkRG9tYWluRGlhbG9nXCJdID0gXCJpbnZhbGlkLWRpYWxvZy1kb21haW5cIjtcbiAgICAvKipcbiAgICAgKiBBbiBpbnZhbGlkIGRhdGUgd2FzIHNwZWNpZmllZCBpbiBhIG1ldGhvZCB0aGF0IHJlcXVpcmVkIGEgZGF0ZSBwYXJhbWV0ZXIuXG4gICAgICovXG4gICAgRXJyb3JDb2Rlc1tcIkludmFsaWREYXRlUGFyYW1ldGVyXCJdID0gXCJpbnZhbGlkLWRhdGUtcGFyYW1ldGVyXCI7XG4gICAgLyoqXG4gICAgICogQSBmaWx0ZXIgb3BlcmF0aW9uIHdhcyBhdHRlbXB0ZWQgb24gYSBmaWVsZCB0aGF0IGRvZXMgbm90IGV4aXN0IGluIHRoZSBkYXRhIHNvdXJjZS5cbiAgICAgKi9cbiAgICBFcnJvckNvZGVzW1wiSW52YWxpZEZpbHRlckZpZWxkTmFtZVwiXSA9IFwiaW52YWxpZC1maWx0ZXItZmllbGQtbmFtZVwiO1xuICAgIC8qKlxuICAgICAqIEEgZmlsdGVyIG9wZXJhdGlvbiB3YXMgYXR0ZW1wdGVkIHVzaW5nIGEgdmFsdWUgdGhhdCBpcyB0aGUgd3JvbmcgZGF0YSB0eXBlIG9yIGZvcm1hdC5cbiAgICAgKi9cbiAgICBFcnJvckNvZGVzW1wiSW52YWxpZEZpbHRlckZpZWxkVmFsdWVcIl0gPSBcImludmFsaWQtZmlsdGVyLWZpZWxkLXZhbHVlXCI7XG4gICAgLyoqXG4gICAgICogQSBwYXJhbWV0ZXIgaXMgbm90IHRoZSBjb3JyZWN0IGRhdGEgdHlwZSBvciBmb3JtYXQuIFRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIgaXMgc3BlY2lmaWVkIGluIHRoZSBFcnJvci5tZXNzYWdlIGZpZWxkLlxuICAgICAqL1xuICAgIEVycm9yQ29kZXNbXCJJbnZhbGlkUGFyYW1ldGVyXCJdID0gXCJpbnZhbGlkLXBhcmFtZXRlclwiO1xuICAgIC8qKlxuICAgICAqIEFuIGludmFsaWQgZGF0ZSB2YWx1ZSB3YXMgc3BlY2lmaWVkIGluIGEgU2hlZXQuc2VsZWN0TWFya3NBc3luYygpIGNhbGwgZm9yIGEgZGF0ZSBmaWVsZC5cbiAgICAgKi9cbiAgICBFcnJvckNvZGVzW1wiSW52YWxpZFNlbGVjdGlvbkRhdGVcIl0gPSBcImludmFsaWQtc2VsZWN0aW9uLWRhdGVcIjtcbiAgICAvKipcbiAgICAgKiBBIGZpZWxkIHdhcyBzcGVjaWZpZWQgaW4gYSBTaGVldC5zZWxlY3RNYXJrc0FzeW5jKCkgY2FsbCB0aGF0IGRvZXMgbm90IGV4aXN0IGluIHRoZSBkYXRhIHNvdXJjZS5cbiAgICAgKi9cbiAgICBFcnJvckNvZGVzW1wiSW52YWxpZFNlbGVjdGlvbkZpZWxkTmFtZVwiXSA9IFwiaW52YWxpZC1zZWxlY3Rpb24tZmllbGQtbmFtZVwiO1xuICAgIC8qKlxuICAgICAqIEFuIGludmFsaWQgdmFsdWUgd2FzIHNwZWNpZmllZCBpbiBhIFNoZWV0LnNlbGVjdE1hcmtzQXN5bmMoKSBjYWxsLlxuICAgICAqL1xuICAgIEVycm9yQ29kZXNbXCJJbnZhbGlkU2VsZWN0aW9uVmFsdWVcIl0gPSBcImludmFsaWQtc2VsZWN0aW9uLXZhbHVlXCI7XG4gICAgLyoqXG4gICAgICogQSByZXF1aXJlZCBwYXJhbWV0ZXIgd2FzIG5vdCBzcGVjaWZpZWQsIG51bGwsIG9yIGFuIGVtcHR5IHN0cmluZy9hcnJheS5cbiAgICAgKi9cbiAgICBFcnJvckNvZGVzW1wiTnVsbE9yRW1wdHlQYXJhbWV0ZXJcIl0gPSBcIm51bGwtb3ItZW1wdHktcGFyYW1ldGVyXCI7XG4gICAgLyoqXG4gICAgICogQW4gdW5rbm93biBldmVudCBuYW1lIHdhcyBzcGVjaWZpZWQgaW4gdGhlIGNhbGwgdG8gVml6LmFkZEV2ZW50TGlzdGVuZXJvciBWaXoucmVtb3ZlRXZlbnRMaXN0ZW5lci5cbiAgICAgKi9cbiAgICBFcnJvckNvZGVzW1wiVW5zdXBwb3J0ZWRFdmVudE5hbWVcIl0gPSBcInVuc3VwcG9ydGVkLWV2ZW50LW5hbWVcIjtcbn0pKEVycm9yQ29kZXMgPSBleHBvcnRzLkVycm9yQ29kZXMgfHwgKGV4cG9ydHMuRXJyb3JDb2RlcyA9IHt9KSk7XG4vKipcbiAqICBUeXBlIG9mIGFnZ3JlZ2F0aW9uIG9uIGEgZmllbGQuXG4gKi9cbnZhciBGaWVsZEFnZ3JlZ2F0aW9uVHlwZTtcbihmdW5jdGlvbiAoRmllbGRBZ2dyZWdhdGlvblR5cGUpIHtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlN1bVwiXSA9IFwic3VtXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJBdmdcIl0gPSBcImF2Z1wiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiTWluXCJdID0gXCJtaW5cIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIk1heFwiXSA9IFwibWF4XCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJTdGRldlwiXSA9IFwic3RkZXZcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlN0ZGV2cFwiXSA9IFwic3RkZXZwXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJWYXJcIl0gPSBcInZhclwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiVmFycFwiXSA9IFwidmFycFwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiQ291bnRcIl0gPSBcImNvdW50XCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJDb3VudGRcIl0gPSBcImNvdW50ZFwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiTWVkaWFuXCJdID0gXCJtZWRpYW5cIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIkF0dHJcIl0gPSBcImF0dHJcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIk5vbmVcIl0gPSBcIm5vbmVcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlllYXJcIl0gPSBcInllYXJcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlF0clwiXSA9IFwicXRyXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJNb250aFwiXSA9IFwibW9udGhcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIkRheVwiXSA9IFwiZGF5XCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJIb3VyXCJdID0gXCJob3VyXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJNaW51dGVcIl0gPSBcIm1pbnV0ZVwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiU2Vjb25kXCJdID0gXCJzZWNvbmRcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIldlZWtcIl0gPSBcIndlZWtcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIldlZWtkYXlcIl0gPSBcIndlZWtkYXlcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIk1vbnRoWWVhclwiXSA9IFwibW9udGgteWVhclwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiTWR5XCJdID0gXCJtZHlcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIkVuZFwiXSA9IFwiZW5kXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJUcnVuY1llYXJcIl0gPSBcInRydW5jLXllYXJcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlRydW5jUXRyXCJdID0gXCJ0cnVuYy1xdHJcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlRydW5jTW9udGhcIl0gPSBcInRydW5jLW1vbnRoXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJUcnVuY1dlZWtcIl0gPSBcInRydW5jLXdlZWtcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlRydW5jRGF5XCJdID0gXCJ0cnVuYy1kYXlcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlRydW5jSG91clwiXSA9IFwidHJ1bmMtaG91clwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiVHJ1bmNNaW51dGVcIl0gPSBcInRydW5jLW1pbnV0ZVwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiVHJ1bmNTZWNvbmRcIl0gPSBcInRydW5jLXNlY29uZFwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiUXVhcnQxXCJdID0gXCJxdWFydDFcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIlF1YXJ0M1wiXSA9IFwicXVhcnQzXCI7XG4gICAgRmllbGRBZ2dyZWdhdGlvblR5cGVbXCJTa2V3bmVzc1wiXSA9IFwic2tld25lc3NcIjtcbiAgICBGaWVsZEFnZ3JlZ2F0aW9uVHlwZVtcIkt1cnRvc2lzXCJdID0gXCJrdXJ0b3Npc1wiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiSW5PdXRcIl0gPSBcImluLW91dFwiO1xuICAgIEZpZWxkQWdncmVnYXRpb25UeXBlW1wiVXNlclwiXSA9IFwidXNlclwiO1xufSkoRmllbGRBZ2dyZWdhdGlvblR5cGUgPSBleHBvcnRzLkZpZWxkQWdncmVnYXRpb25UeXBlIHx8IChleHBvcnRzLkZpZWxkQWdncmVnYXRpb25UeXBlID0ge30pKTtcbi8qKlxuICogUm9sZSBvZiBhIGZpZWxkLlxuICovXG52YXIgRmllbGRSb2xlVHlwZTtcbihmdW5jdGlvbiAoRmllbGRSb2xlVHlwZSkge1xuICAgIEZpZWxkUm9sZVR5cGVbXCJEaW1lbnNpb25cIl0gPSBcImRpbWVuc2lvblwiO1xuICAgIEZpZWxkUm9sZVR5cGVbXCJNZWFzdXJlXCJdID0gXCJtZWFzdXJlXCI7XG4gICAgRmllbGRSb2xlVHlwZVtcIlVua25vd25cIl0gPSBcInVua25vd25cIjtcbn0pKEZpZWxkUm9sZVR5cGUgPSBleHBvcnRzLkZpZWxkUm9sZVR5cGUgfHwgKGV4cG9ydHMuRmllbGRSb2xlVHlwZSA9IHt9KSk7XG4vKipcbiAqIEFuIGVudW1lcmF0aW9uIG9mIHRoZSB2YWxpZCB0eXBlcyBvZiBmaWx0ZXJzIHRoYXQgY2FuIGJlIGFwcGxpZWQuXG4gKi9cbnZhciBGaWx0ZXJUeXBlO1xuKGZ1bmN0aW9uIChGaWx0ZXJUeXBlKSB7XG4gICAgRmlsdGVyVHlwZVtcIkNhdGVnb3JpY2FsXCJdID0gXCJjYXRlZ29yaWNhbFwiO1xuICAgIEZpbHRlclR5cGVbXCJSYW5nZVwiXSA9IFwicmFuZ2VcIjtcbiAgICBGaWx0ZXJUeXBlW1wiSGllcmFyY2hpY2FsXCJdID0gXCJoaWVyYXJjaGljYWxcIjtcbiAgICBGaWx0ZXJUeXBlW1wiUmVsYXRpdmVEYXRlXCJdID0gXCJyZWxhdGl2ZS1kYXRlXCI7XG59KShGaWx0ZXJUeXBlID0gZXhwb3J0cy5GaWx0ZXJUeXBlIHx8IChleHBvcnRzLkZpbHRlclR5cGUgPSB7fSkpO1xuLyoqXG4gKiBUaGUgZGlmZmVyZW50IHVwZGF0ZSB0eXBlcyBmb3IgYXBwbHlpbmcgZmlsdGVyXG4gKi9cbnZhciBGaWx0ZXJVcGRhdGVUeXBlO1xuKGZ1bmN0aW9uIChGaWx0ZXJVcGRhdGVUeXBlKSB7XG4gICAgRmlsdGVyVXBkYXRlVHlwZVtcIkFkZFwiXSA9IFwiYWRkXCI7XG4gICAgRmlsdGVyVXBkYXRlVHlwZVtcIkFsbFwiXSA9IFwiYWxsXCI7XG4gICAgRmlsdGVyVXBkYXRlVHlwZVtcIlJlcGxhY2VcIl0gPSBcInJlcGxhY2VcIjtcbiAgICBGaWx0ZXJVcGRhdGVUeXBlW1wiUmVtb3ZlXCJdID0gXCJyZW1vdmVcIjtcbn0pKEZpbHRlclVwZGF0ZVR5cGUgPSBleHBvcnRzLkZpbHRlclVwZGF0ZVR5cGUgfHwgKGV4cG9ydHMuRmlsdGVyVXBkYXRlVHlwZSA9IHt9KSk7XG4vKipcbiAqIFRoZSBkb21haW4gdHlwZSBmb3IgYSBmaWx0ZXJcbiAqL1xudmFyIEZpbHRlckRvbWFpblR5cGU7XG4oZnVuY3Rpb24gKEZpbHRlckRvbWFpblR5cGUpIHtcbiAgICAvKipcbiAgICAgKiBUaGUgZG9tYWluIHZhbHVlcyB0aGF0IGFyZSByZWxldmFudCB0byB0aGUgc3BlY2lmaWVkIGZpbHRlclxuICAgICAqIGkuZS4gdGhlIGRvbWFpbiBpcyByZXN0cmljdGVkIGJ5IGEgcHJldmlvdXMgZmlsdGVyXG4gICAgICovXG4gICAgRmlsdGVyRG9tYWluVHlwZVtcIlJlbGV2YW50XCJdID0gXCJyZWxldmFudFwiO1xuICAgIC8qKlxuICAgICAqIGxpc3Qgb2YgYWxsIHBvc3NpYmxlIGRvbWFpbiB2YWx1ZXMgZnJvbSBkYXRhYmFzZVxuICAgICAqL1xuICAgIEZpbHRlckRvbWFpblR5cGVbXCJEYXRhYmFzZVwiXSA9IFwiZGF0YWJhc2VcIjtcbn0pKEZpbHRlckRvbWFpblR5cGUgPSBleHBvcnRzLkZpbHRlckRvbWFpblR5cGUgfHwgKGV4cG9ydHMuRmlsdGVyRG9tYWluVHlwZSA9IHt9KSk7XG4vKipcbiAqIFRoZSBvcHRpb24gZm9yIHNwZWNpZnlpbmcgd2hpY2ggdmFsdWVzIHRvIGluY2x1ZGUgZm9yIGZpbHRlcmluZ1xuICogSW5kaWNhdGVzIHdoYXQgdG8gZG8gd2l0aCBudWxsIHZhbHVlcyBmb3IgYSBnaXZlbiBmaWx0ZXIgb3IgbWFyayBzZWxlY3Rpb24gY2FsbC5cbiAqL1xudmFyIEZpbHRlck51bGxPcHRpb247XG4oZnVuY3Rpb24gKEZpbHRlck51bGxPcHRpb24pIHtcbiAgICBGaWx0ZXJOdWxsT3B0aW9uW1wiTnVsbFZhbHVlc1wiXSA9IFwibnVsbC12YWx1ZXNcIjtcbiAgICBGaWx0ZXJOdWxsT3B0aW9uW1wiTm9uTnVsbFZhbHVlc1wiXSA9IFwibm9uLW51bGwtdmFsdWVzXCI7XG4gICAgRmlsdGVyTnVsbE9wdGlvbltcIkFsbFZhbHVlc1wiXSA9IFwiYWxsLXZhbHVlc1wiO1xufSkoRmlsdGVyTnVsbE9wdGlvbiA9IGV4cG9ydHMuRmlsdGVyTnVsbE9wdGlvbiB8fCAoZXhwb3J0cy5GaWx0ZXJOdWxsT3B0aW9uID0ge30pKTtcbi8qKlxuICogVHlwZSBvZiBtYXJrIGZvciBhIGdpdmVuIG1hcmtzIGNhcmQgaW4gYSB2aXouXG4gKi9cbnZhciBNYXJrVHlwZTtcbihmdW5jdGlvbiAoTWFya1R5cGUpIHtcbiAgICBNYXJrVHlwZVtcIkJhclwiXSA9IFwiYmFyXCI7XG4gICAgTWFya1R5cGVbXCJMaW5lXCJdID0gXCJsaW5lXCI7XG4gICAgTWFya1R5cGVbXCJBcmVhXCJdID0gXCJhcmVhXCI7XG4gICAgTWFya1R5cGVbXCJTcXVhcmVcIl0gPSBcInNxdWFyZVwiO1xuICAgIE1hcmtUeXBlW1wiQ2lyY2xlXCJdID0gXCJjaXJjbGVcIjtcbiAgICBNYXJrVHlwZVtcIlNoYXBlXCJdID0gXCJzaGFwZVwiO1xuICAgIE1hcmtUeXBlW1wiVGV4dFwiXSA9IFwidGV4dFwiO1xuICAgIE1hcmtUeXBlW1wiTWFwXCJdID0gXCJtYXBcIjtcbiAgICBNYXJrVHlwZVtcIlBpZVwiXSA9IFwicGllXCI7XG4gICAgTWFya1R5cGVbXCJHYW50dEJhclwiXSA9IFwiZ2FudHQtYmFyXCI7XG4gICAgTWFya1R5cGVbXCJQb2x5Z29uXCJdID0gXCJwb2x5Z29uXCI7XG59KShNYXJrVHlwZSA9IGV4cG9ydHMuTWFya1R5cGUgfHwgKGV4cG9ydHMuTWFya1R5cGUgPSB7fSkpO1xuLyoqXG4gKiBBbiBlbnVtZXJhdGlvbiBkZXNjcmliaW5nIHRoZSBkaWZmZXJlbnQgdHlwZXMgb2YgYWxsb3dhYmxlIHZhbHVlcy5cbiAqIFRoaXMgaXMgdXNlZCBmb3IgcmVzdHJpY3RpbmcgdGhlIGRvbWFpbiBvZiBhIHBhcmFtZXRlclxuICovXG52YXIgUGFyYW1ldGVyVmFsdWVUeXBlO1xuKGZ1bmN0aW9uIChQYXJhbWV0ZXJWYWx1ZVR5cGUpIHtcbiAgICBQYXJhbWV0ZXJWYWx1ZVR5cGVbXCJBbGxcIl0gPSBcImFsbFwiO1xuICAgIFBhcmFtZXRlclZhbHVlVHlwZVtcIkxpc3RcIl0gPSBcImxpc3RcIjtcbiAgICBQYXJhbWV0ZXJWYWx1ZVR5cGVbXCJSYW5nZVwiXSA9IFwicmFuZ2VcIjtcbn0pKFBhcmFtZXRlclZhbHVlVHlwZSA9IGV4cG9ydHMuUGFyYW1ldGVyVmFsdWVUeXBlIHx8IChleHBvcnRzLlBhcmFtZXRlclZhbHVlVHlwZSA9IHt9KSk7XG4vKipcbiAqIERhdGUgcGVyaW9kIHVzZWQgaW4gZmlsdGVycyBhbmQgaW4gcGFyYW1ldGVycy5cbiAqL1xudmFyIFBlcmlvZFR5cGU7XG4oZnVuY3Rpb24gKFBlcmlvZFR5cGUpIHtcbiAgICBQZXJpb2RUeXBlW1wiWWVhcnNcIl0gPSBcInllYXJzXCI7XG4gICAgUGVyaW9kVHlwZVtcIlF1YXJ0ZXJzXCJdID0gXCJxdWFydGVyc1wiO1xuICAgIFBlcmlvZFR5cGVbXCJNb250aHNcIl0gPSBcIm1vbnRoc1wiO1xuICAgIFBlcmlvZFR5cGVbXCJXZWVrc1wiXSA9IFwid2Vla3NcIjtcbiAgICBQZXJpb2RUeXBlW1wiRGF5c1wiXSA9IFwiZGF5c1wiO1xuICAgIFBlcmlvZFR5cGVbXCJIb3Vyc1wiXSA9IFwiaG91cnNcIjtcbiAgICBQZXJpb2RUeXBlW1wiTWludXRlc1wiXSA9IFwibWludXRlc1wiO1xuICAgIFBlcmlvZFR5cGVbXCJTZWNvbmRzXCJdID0gXCJzZWNvbmRzXCI7XG59KShQZXJpb2RUeXBlID0gZXhwb3J0cy5QZXJpb2RUeXBlIHx8IChleHBvcnRzLlBlcmlvZFR5cGUgPSB7fSkpO1xudmFyIFF1aWNrVGFibGVDYWxjVHlwZTtcbihmdW5jdGlvbiAoUXVpY2tUYWJsZUNhbGNUeXBlKSB7XG4gICAgUXVpY2tUYWJsZUNhbGNUeXBlW1wiUnVubmluZ1RvdGFsXCJdID0gXCJydW5uaW5nLXRvdGFsXCI7XG4gICAgUXVpY2tUYWJsZUNhbGNUeXBlW1wiRGlmZmVyZW5jZVwiXSA9IFwiZGlmZmVyZW5jZVwiO1xuICAgIFF1aWNrVGFibGVDYWxjVHlwZVtcIlBlcmNlbnREaWZmZXJlbmNlXCJdID0gXCJwZXJjZW50LWRpZmZlcmVuY2VcIjtcbiAgICBRdWlja1RhYmxlQ2FsY1R5cGVbXCJQZXJjZW50T2ZUb3RhbFwiXSA9IFwicGVyY2VudC1vZi10b3RhbFwiO1xuICAgIFF1aWNrVGFibGVDYWxjVHlwZVtcIlJhbmtcIl0gPSBcInJhbmtcIjtcbiAgICBRdWlja1RhYmxlQ2FsY1R5cGVbXCJQZXJjZW50aWxlXCJdID0gXCJwZXJjZW50aWxlXCI7XG4gICAgUXVpY2tUYWJsZUNhbGNUeXBlW1wiTW92aW5nQXZlcmFnZVwiXSA9IFwibW92aW5nLWF2ZXJhZ2VcIjtcbiAgICBRdWlja1RhYmxlQ2FsY1R5cGVbXCJZVERUb3RhbFwiXSA9IFwieXRkLXRvdGFsXCI7XG4gICAgUXVpY2tUYWJsZUNhbGNUeXBlW1wiQ29tcG91bmRHcm93dGhSYXRlXCJdID0gXCJjb21wb3VuZC1ncm93dGgtcmF0ZVwiO1xuICAgIFF1aWNrVGFibGVDYWxjVHlwZVtcIlllYXJPdmVyWWVhckdyb3d0aFwiXSA9IFwieWVhci1vdmVyLXllYXItZ3Jvd3RoXCI7XG4gICAgUXVpY2tUYWJsZUNhbGNUeXBlW1wiWVRER3Jvd3RoXCJdID0gXCJ5dGQtZ3Jvd3RoXCI7XG4gICAgUXVpY2tUYWJsZUNhbGNUeXBlW1wiVW5kZWZpbmVkXCJdID0gXCJ1bmRlZmluZWRcIjtcbn0pKFF1aWNrVGFibGVDYWxjVHlwZSA9IGV4cG9ydHMuUXVpY2tUYWJsZUNhbGNUeXBlIHx8IChleHBvcnRzLlF1aWNrVGFibGVDYWxjVHlwZSA9IHt9KSk7XG4vKipcbiAqIEVudW0gZm9yIHNwZWNpZnlpbmcgdGhlIHNlbGVjdGlvbiB0eXBlIGZvciBzZWxlY3QgbWFya3MgYXBpLlxuICovXG52YXIgU2VsZWN0aW9uVXBkYXRlVHlwZTtcbihmdW5jdGlvbiAoU2VsZWN0aW9uVXBkYXRlVHlwZSkge1xuICAgIFNlbGVjdGlvblVwZGF0ZVR5cGVbXCJSZXBsYWNlXCJdID0gXCJzZWxlY3QtcmVwbGFjZVwiO1xuICAgIFNlbGVjdGlvblVwZGF0ZVR5cGVbXCJBZGRcIl0gPSBcInNlbGVjdC1hZGRcIjtcbiAgICBTZWxlY3Rpb25VcGRhdGVUeXBlW1wiUmVtb3ZlXCJdID0gXCJzZWxlY3QtcmVtb3ZlXCI7XG59KShTZWxlY3Rpb25VcGRhdGVUeXBlID0gZXhwb3J0cy5TZWxlY3Rpb25VcGRhdGVUeXBlIHx8IChleHBvcnRzLlNlbGVjdGlvblVwZGF0ZVR5cGUgPSB7fSkpO1xuLyoqXG4gKiBUaGUgdHlwZSBvZiBzaGVldCBhIFNoZWV0IG9iamVjdCByZXByZXNlbnRzXG4gKi9cbnZhciBTaGVldFR5cGU7XG4oZnVuY3Rpb24gKFNoZWV0VHlwZSkge1xuICAgIFNoZWV0VHlwZVtcIkRhc2hib2FyZFwiXSA9IFwiZGFzaGJvYXJkXCI7XG4gICAgU2hlZXRUeXBlW1wiU3RvcnlcIl0gPSBcInN0b3J5XCI7XG4gICAgU2hlZXRUeXBlW1wiV29ya3NoZWV0XCJdID0gXCJ3b3Jrc2hlZXRcIjtcbn0pKFNoZWV0VHlwZSA9IGV4cG9ydHMuU2hlZXRUeXBlIHx8IChleHBvcnRzLlNoZWV0VHlwZSA9IHt9KSk7XG52YXIgU29ydERpcmVjdGlvbjtcbihmdW5jdGlvbiAoU29ydERpcmVjdGlvbikge1xuICAgIFNvcnREaXJlY3Rpb25bXCJJbmNyZWFzaW5nXCJdID0gXCJpbmNyZWFzaW5nXCI7XG4gICAgU29ydERpcmVjdGlvbltcIkRlY3JlYXNpbmdcIl0gPSBcImRlY3JlYXNpbmdcIjtcbn0pKFNvcnREaXJlY3Rpb24gPSBleHBvcnRzLlNvcnREaXJlY3Rpb24gfHwgKGV4cG9ydHMuU29ydERpcmVjdGlvbiA9IHt9KSk7XG4vKipcbiAqIFJlcHJlc2VudHMgYSBjZXJ0YWluIHR5cGUgb2YgZXZlbnQgd2hpY2ggY2FuIGJlIGxpc3RlbmVkIGZvclxuICovXG52YXIgVGFibGVhdUV2ZW50VHlwZTtcbihmdW5jdGlvbiAoVGFibGVhdUV2ZW50VHlwZSkge1xuICAgIC8qKiBSYWlzZWQgd2hlbiBhbnkgZmlsdGVyIGhhcyBjaGFuZ2VkIHN0YXRlLiovXG4gICAgVGFibGVhdUV2ZW50VHlwZVtcIkZpbHRlckNoYW5nZWRcIl0gPSBcImZpbHRlci1jaGFuZ2VkXCI7XG4gICAgLyoqIFRoZSBzZWxlY3RlZCBtYXJrcyBvbiBhIHZpc3VhbGl6YXRpb24gaGFzIGNoYW5nZWQgKi9cbiAgICBUYWJsZWF1RXZlbnRUeXBlW1wiTWFya1NlbGVjdGlvbkNoYW5nZWRcIl0gPSBcIm1hcmstc2VsZWN0aW9uLWNoYW5nZWRcIjtcbiAgICAvKiogQSBwYXJhbWV0ZXIgaGFzIGhhZCBpdHMgdmFsdWUgbW9kaWZpZWQgKi9cbiAgICBUYWJsZWF1RXZlbnRUeXBlW1wiUGFyYW1ldGVyQ2hhbmdlZFwiXSA9IFwicGFyYW1ldGVyLWNoYW5nZWRcIjtcbn0pKFRhYmxlYXVFdmVudFR5cGUgPSBleHBvcnRzLlRhYmxlYXVFdmVudFR5cGUgfHwgKGV4cG9ydHMuVGFibGVhdUV2ZW50VHlwZSA9IHt9KSk7XG52YXIgVHJlbmRMaW5lTW9kZWxUeXBlO1xuKGZ1bmN0aW9uIChUcmVuZExpbmVNb2RlbFR5cGUpIHtcbiAgICBUcmVuZExpbmVNb2RlbFR5cGVbXCJMaW5lYXJcIl0gPSBcImxpbmVhclwiO1xuICAgIFRyZW5kTGluZU1vZGVsVHlwZVtcIkxvZ2FyaXRobWljXCJdID0gXCJsb2dhcml0aG1pY1wiO1xuICAgIFRyZW5kTGluZU1vZGVsVHlwZVtcIkV4cG9uZW50aWFsXCJdID0gXCJleHBvbmVudGlhbFwiO1xuICAgIFRyZW5kTGluZU1vZGVsVHlwZVtcIlBvbHlub21pYWxcIl0gPSBcInBvbHlub21pYWxcIjtcbn0pKFRyZW5kTGluZU1vZGVsVHlwZSA9IGV4cG9ydHMuVHJlbmRMaW5lTW9kZWxUeXBlIHx8IChleHBvcnRzLlRyZW5kTGluZU1vZGVsVHlwZSA9IHt9KSk7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1FbnVtcy5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLWV4dGVybmFsLWNvbnRyYWN0L2xpYi9FbnVtcy5qc1xuICoqIG1vZHVsZSBpZCA9IDE3XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2V4dGVuZHMgPSAodGhpcyAmJiB0aGlzLl9fZXh0ZW5kcykgfHwgKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxuICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XG4gICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKGIuaGFzT3duUHJvcGVydHkocCkpIGRbcF0gPSBiW3BdOyB9O1xuICAgIHJldHVybiBmdW5jdGlvbiAoZCwgYikge1xuICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICAgICAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cbiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpO1xuICAgIH07XG59KSgpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIFRhYmxlYXVTaGVldEV2ZW50XzEgPSByZXF1aXJlKFwiLi9UYWJsZWF1U2hlZXRFdmVudFwiKTtcbnZhciBUYWJsZWF1V29ya3NoZWV0RXZlbnQgPSAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhUYWJsZWF1V29ya3NoZWV0RXZlbnQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gVGFibGVhdVdvcmtzaGVldEV2ZW50KHR5cGUsIF93b3Jrc2hlZXQpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgdHlwZSwgX3dvcmtzaGVldCkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuX3dvcmtzaGVldCA9IF93b3Jrc2hlZXQ7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFRhYmxlYXVXb3Jrc2hlZXRFdmVudC5wcm90b3R5cGUsIFwid29ya3NoZWV0XCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fd29ya3NoZWV0O1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICByZXR1cm4gVGFibGVhdVdvcmtzaGVldEV2ZW50O1xufShUYWJsZWF1U2hlZXRFdmVudF8xLlRhYmxlYXVTaGVldEV2ZW50KSk7XG5leHBvcnRzLlRhYmxlYXVXb3Jrc2hlZXRFdmVudCA9IFRhYmxlYXVXb3Jrc2hlZXRFdmVudDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRhYmxlYXVXb3Jrc2hlZXRFdmVudC5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvRXZlbnRzL1RhYmxlYXVXb3Jrc2hlZXRFdmVudC5qc1xuICoqIG1vZHVsZSBpZCA9IDE4XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2V4dGVuZHMgPSAodGhpcyAmJiB0aGlzLl9fZXh0ZW5kcykgfHwgKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxuICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XG4gICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKGIuaGFzT3duUHJvcGVydHkocCkpIGRbcF0gPSBiW3BdOyB9O1xuICAgIHJldHVybiBmdW5jdGlvbiAoZCwgYikge1xuICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICAgICAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cbiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpO1xuICAgIH07XG59KSgpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIFRhYmxlYXVFdmVudF8xID0gcmVxdWlyZShcIi4vVGFibGVhdUV2ZW50XCIpO1xudmFyIFRhYmxlYXVTaGVldEV2ZW50ID0gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoVGFibGVhdVNoZWV0RXZlbnQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gVGFibGVhdVNoZWV0RXZlbnQodHlwZSwgc2hlZXQpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgdHlwZSkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuX3NoZWV0ID0gc2hlZXQ7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFRhYmxlYXVTaGVldEV2ZW50LnByb3RvdHlwZSwgXCJzaGVldFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3NoZWV0O1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICByZXR1cm4gVGFibGVhdVNoZWV0RXZlbnQ7XG59KFRhYmxlYXVFdmVudF8xLlRhYmxlYXVFdmVudCkpO1xuZXhwb3J0cy5UYWJsZWF1U2hlZXRFdmVudCA9IFRhYmxlYXVTaGVldEV2ZW50O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9VGFibGVhdVNoZWV0RXZlbnQuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL0V2ZW50cy9UYWJsZWF1U2hlZXRFdmVudC5qc1xuICoqIG1vZHVsZSBpZCA9IDE5XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBUYWJsZWF1RXZlbnQgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFRhYmxlYXVFdmVudCh0eXBlKSB7XG4gICAgICAgIHRoaXMuX3R5cGUgPSB0eXBlO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoVGFibGVhdUV2ZW50LnByb3RvdHlwZSwgXCJ0eXBlXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgcmV0dXJuIFRhYmxlYXVFdmVudDtcbn0oKSk7XG5leHBvcnRzLlRhYmxlYXVFdmVudCA9IFRhYmxlYXVFdmVudDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVRhYmxlYXVFdmVudC5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvRXZlbnRzL1RhYmxlYXVFdmVudC5qc1xuICoqIG1vZHVsZSBpZCA9IDIwXG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbnZhciBfX2V4dGVuZHMgPSAodGhpcyAmJiB0aGlzLl9fZXh0ZW5kcykgfHwgKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxuICAgICAgICAoeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbiAoZCwgYikgeyBkLl9fcHJvdG9fXyA9IGI7IH0pIHx8XG4gICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKGIuaGFzT3duUHJvcGVydHkocCkpIGRbcF0gPSBiW3BdOyB9O1xuICAgIHJldHVybiBmdW5jdGlvbiAoZCwgYikge1xuICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICAgICAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cbiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpO1xuICAgIH07XG59KSgpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIENvbnRyYWN0ID0gcmVxdWlyZShcIkB0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdFwiKTtcbnZhciBUYWJsZWF1V29ya3NoZWV0RXZlbnRfMSA9IHJlcXVpcmUoXCIuL1RhYmxlYXVXb3Jrc2hlZXRFdmVudFwiKTtcbnZhciBNYXJrc1NlbGVjdGVkRXZlbnQgPSAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhNYXJrc1NlbGVjdGVkRXZlbnQsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gTWFya3NTZWxlY3RlZEV2ZW50KHdvcmtzaGVldCkge1xuICAgICAgICByZXR1cm4gX3N1cGVyLmNhbGwodGhpcywgQ29udHJhY3QuVGFibGVhdUV2ZW50VHlwZS5NYXJrU2VsZWN0aW9uQ2hhbmdlZCwgd29ya3NoZWV0KSB8fCB0aGlzO1xuICAgIH1cbiAgICBNYXJrc1NlbGVjdGVkRXZlbnQucHJvdG90eXBlLmdldE1hcmtzQXN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLndvcmtzaGVldC5nZXRTZWxlY3RlZE1hcmtzQXN5bmMoKTtcbiAgICB9O1xuICAgIHJldHVybiBNYXJrc1NlbGVjdGVkRXZlbnQ7XG59KFRhYmxlYXVXb3Jrc2hlZXRFdmVudF8xLlRhYmxlYXVXb3Jrc2hlZXRFdmVudCkpO1xuZXhwb3J0cy5NYXJrc1NlbGVjdGVkRXZlbnQgPSBNYXJrc1NlbGVjdGVkRXZlbnQ7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1NYXJrc1NlbGVjdGVkRXZlbnQuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL0V2ZW50cy9NYXJrc1NlbGVjdGVkRXZlbnQuanNcbiAqKiBtb2R1bGUgaWQgPSAyMVxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4vKipcbiAqIFRoaXMgY2xhc3MgaW1wbGVtZW50cyB0aGUgU2luZ2xlRXZlbnRNYW5hZ2VyIGludGVyZmFjZSBmb3IgYSBzaW5nbGUgdHlwZSBvZiBUYWJsZWF1IGV2ZW50XG4gKlxuICogQHRlbXBsYXRlIFRFdmVudFR5cGUgVGhlIFRhYmxlYXUgZXZlbnQgdHlwZSB0aGlzIGNsYXNzIHNwZWNpYWxpemVzXG4gKi9cbnZhciBTaW5nbGVFdmVudE1hbmFnZXJJbXBsID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBTaW5nbGVFdmVudE1hbmFnZXJJbXBsKGV2ZW50VHlwZSkge1xuICAgICAgICB0aGlzLl9ldmVudFR5cGUgPSBldmVudFR5cGU7XG4gICAgICAgIHRoaXMuX2hhbmRsZXJzID0gW107XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTaW5nbGVFdmVudE1hbmFnZXJJbXBsLnByb3RvdHlwZSwgXCJldmVudFR5cGVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9ldmVudFR5cGU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIFNpbmdsZUV2ZW50TWFuYWdlckltcGwucHJvdG90eXBlLmFkZEV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbiAoaGFuZGxlcikge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB0aGlzLl9oYW5kbGVycy5wdXNoKGhhbmRsZXIpO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkgeyByZXR1cm4gX3RoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihoYW5kbGVyKTsgfTtcbiAgICB9O1xuICAgIFNpbmdsZUV2ZW50TWFuYWdlckltcGwucHJvdG90eXBlLnJlbW92ZUV2ZW50TGlzdGVuZXIgPSBmdW5jdGlvbiAoaGFuZGxlcikge1xuICAgICAgICB2YXIgYmVmb3JlQ291bnQgPSB0aGlzLl9oYW5kbGVycy5sZW5ndGg7XG4gICAgICAgIHRoaXMuX2hhbmRsZXJzID0gdGhpcy5faGFuZGxlcnMuZmlsdGVyKGZ1bmN0aW9uIChoKSB7IHJldHVybiBoICE9PSBoYW5kbGVyOyB9KTtcbiAgICAgICAgcmV0dXJuIGJlZm9yZUNvdW50ID4gdGhpcy5faGFuZGxlcnMubGVuZ3RoO1xuICAgIH07XG4gICAgU2luZ2xlRXZlbnRNYW5hZ2VySW1wbC5wcm90b3R5cGUudHJpZ2dlckV2ZW50ID0gZnVuY3Rpb24gKGV2ZW50R2VuZXJhdG9yKSB7XG4gICAgICAgIGZvciAodmFyIF9pID0gMCwgX2EgPSB0aGlzLl9oYW5kbGVyczsgX2kgPCBfYS5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgICAgIHZhciBoYW5kbGVyID0gX2FbX2ldO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB2YXIgZXZlbnRNb2RlbCA9IGV2ZW50R2VuZXJhdG9yKCk7XG4gICAgICAgICAgICAgICAgaGFuZGxlcihldmVudE1vZGVsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgLy8gU2luY2UgdGhpcyBoYW5kbGVyIGNvdWxkIGJlIG91dHNpZGUgb3VyIGNvbnRyb2wsIGp1c3QgY2F0Y2ggYW55dGhpbmcgaXQgdGhyb3dzIGFuZCBjb250aW51ZSBvblxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4gU2luZ2xlRXZlbnRNYW5hZ2VySW1wbDtcbn0oKSk7XG5leHBvcnRzLlNpbmdsZUV2ZW50TWFuYWdlckltcGwgPSBTaW5nbGVFdmVudE1hbmFnZXJJbXBsO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2luZ2xlRXZlbnRNYW5hZ2VySW1wbC5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvSW50ZXJuYWwvU2luZ2xlRXZlbnRNYW5hZ2VySW1wbC5qc1xuICoqIG1vZHVsZSBpZCA9IDIyXG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8qKlxuICogRGVmaW5lcyB3aGljaCB0eXBlIG9mIGdldERhdGEgY2FsbCB0byBtYWtlLlxuICovXG52YXIgR2V0RGF0YVR5cGU7XG4oZnVuY3Rpb24gKEdldERhdGFUeXBlKSB7XG4gICAgR2V0RGF0YVR5cGVbXCJTdW1tYXJ5XCJdID0gXCJzdW1tYXJ5XCI7XG4gICAgR2V0RGF0YVR5cGVbXCJVbmRlcmx5aW5nXCJdID0gXCJ1bmRlcmx5aW5nXCI7XG59KShHZXREYXRhVHlwZSA9IGV4cG9ydHMuR2V0RGF0YVR5cGUgfHwgKGV4cG9ydHMuR2V0RGF0YVR5cGUgPSB7fSkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9R2V0RGF0YVNlcnZpY2UuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL1NlcnZpY2VzL0dldERhdGFTZXJ2aWNlLmpzXG4gKiogbW9kdWxlIGlkID0gMjNcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIERhdGFTb3VyY2VTZXJ2aWNlSW1wbF8xID0gcmVxdWlyZShcIi4vaW1wbC9EYXRhU291cmNlU2VydmljZUltcGxcIik7XG52YXIgRmlsdGVyU2VydmljZUltcGxfMSA9IHJlcXVpcmUoXCIuL2ltcGwvRmlsdGVyU2VydmljZUltcGxcIik7XG52YXIgR2V0RGF0YVNlcnZpY2VJbXBsXzEgPSByZXF1aXJlKFwiLi9pbXBsL0dldERhdGFTZXJ2aWNlSW1wbFwiKTtcbnZhciBOb3RpZmljYXRpb25TZXJ2aWNlSW1wbF8xID0gcmVxdWlyZShcIi4vaW1wbC9Ob3RpZmljYXRpb25TZXJ2aWNlSW1wbFwiKTtcbnZhciBQYXJhbWV0ZXJzU2VydmljZUltcGxfMSA9IHJlcXVpcmUoXCIuL2ltcGwvUGFyYW1ldGVyc1NlcnZpY2VJbXBsXCIpO1xudmFyIFNlbGVjdGlvblNlcnZpY2VJbXBsXzEgPSByZXF1aXJlKFwiLi9pbXBsL1NlbGVjdGlvblNlcnZpY2VJbXBsXCIpO1xudmFyIFNlcnZpY2VSZWdpc3RyeV8xID0gcmVxdWlyZShcIi4vU2VydmljZVJlZ2lzdHJ5XCIpO1xuZnVuY3Rpb24gcmVnaXN0ZXJBbGxTaGFyZWRTZXJ2aWNlcyhkaXNwYXRjaGVyKSB7XG4gICAgU2VydmljZVJlZ2lzdHJ5XzEuQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLnJlZ2lzdGVyU2VydmljZShuZXcgRGF0YVNvdXJjZVNlcnZpY2VJbXBsXzEuRGF0YVNvdXJjZVNlcnZpY2VJbXBsKGRpc3BhdGNoZXIpKTtcbiAgICBTZXJ2aWNlUmVnaXN0cnlfMS5BcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UucmVnaXN0ZXJTZXJ2aWNlKG5ldyBHZXREYXRhU2VydmljZUltcGxfMS5HZXREYXRhU2VydmljZUltcGwoZGlzcGF0Y2hlcikpO1xuICAgIFNlcnZpY2VSZWdpc3RyeV8xLkFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5yZWdpc3RlclNlcnZpY2UobmV3IEZpbHRlclNlcnZpY2VJbXBsXzEuRmlsdGVyU2VydmljZUltcGwoZGlzcGF0Y2hlcikpO1xuICAgIFNlcnZpY2VSZWdpc3RyeV8xLkFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5yZWdpc3RlclNlcnZpY2UobmV3IE5vdGlmaWNhdGlvblNlcnZpY2VJbXBsXzEuTm90aWZpY2F0aW9uU2VydmljZUltcGwoZGlzcGF0Y2hlcikpO1xuICAgIFNlcnZpY2VSZWdpc3RyeV8xLkFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5yZWdpc3RlclNlcnZpY2UobmV3IFBhcmFtZXRlcnNTZXJ2aWNlSW1wbF8xLlBhcmFtZXRlcnNTZXJ2aWNlSW1wbChkaXNwYXRjaGVyKSk7XG4gICAgU2VydmljZVJlZ2lzdHJ5XzEuQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLnJlZ2lzdGVyU2VydmljZShuZXcgU2VsZWN0aW9uU2VydmljZUltcGxfMS5TZWxlY3Rpb25TZXJ2aWNlSW1wbChkaXNwYXRjaGVyKSk7XG59XG5leHBvcnRzLnJlZ2lzdGVyQWxsU2hhcmVkU2VydmljZXMgPSByZWdpc3RlckFsbFNoYXJlZFNlcnZpY2VzO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9UmVnaXN0ZXJBbGxTaGFyZWRTZXJ2aWNlcy5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvU2VydmljZXMvUmVnaXN0ZXJBbGxTaGFyZWRTZXJ2aWNlcy5qc1xuICoqIG1vZHVsZSBpZCA9IDI0XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBhcGlfaW50ZXJuYWxfY29udHJhY3RfMSA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3RcIik7XG52YXIgRGF0YVNvdXJjZVNlcnZpY2VJbXBsID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBEYXRhU291cmNlU2VydmljZUltcGwoX2Rpc3BhdGNoZXIpIHtcbiAgICAgICAgdGhpcy5fZGlzcGF0Y2hlciA9IF9kaXNwYXRjaGVyO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRGF0YVNvdXJjZVNlcnZpY2VJbXBsLnByb3RvdHlwZSwgXCJzZXJ2aWNlTmFtZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIFwiZGF0YS1zb3VyY2Utc2VydmljZVwiIC8qIERhdGFTb3VyY2VTZXJ2aWNlICovO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBEYXRhU291cmNlU2VydmljZUltcGwucHJvdG90eXBlLnJlZnJlc2hBc3luYyA9IGZ1bmN0aW9uIChkYXRhU291cmNlSWQpIHtcbiAgICAgICAgdmFyIHBhcmFtZXRlcnMgPSAoX2EgPSB7fSwgX2FbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuRGF0YVNvdXJjZUlkXSA9IGRhdGFTb3VyY2VJZCwgX2EpO1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGF0Y2hlci5leGVjdXRlKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlZlcmJJZC5SZWZyZXNoRGF0YVNvdXJjZSwgcGFyYW1ldGVycykudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBfYTtcbiAgICB9O1xuICAgIERhdGFTb3VyY2VTZXJ2aWNlSW1wbC5wcm90b3R5cGUuZ2V0RGF0YVNvdXJjZXNBc3luYyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc3BhdGNoZXIuZXhlY3V0ZShhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5WZXJiSWQuR2V0RGF0YVNvdXJjZXMsIHt9KS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgdmFyIGRhdGFTY2hlbWEgPSByZXNwb25zZS5yZXN1bHQ7XG4gICAgICAgICAgICByZXR1cm4gZGF0YVNjaGVtYTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICByZXR1cm4gRGF0YVNvdXJjZVNlcnZpY2VJbXBsO1xufSgpKTtcbmV4cG9ydHMuRGF0YVNvdXJjZVNlcnZpY2VJbXBsID0gRGF0YVNvdXJjZVNlcnZpY2VJbXBsO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RGF0YVNvdXJjZVNlcnZpY2VJbXBsLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9TZXJ2aWNlcy9pbXBsL0RhdGFTb3VyY2VTZXJ2aWNlSW1wbC5qc1xuICoqIG1vZHVsZSBpZCA9IDI1XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBDb250cmFjdCA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3RcIik7XG52YXIgYXBpX2ludGVybmFsX2NvbnRyYWN0XzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0XCIpO1xudmFyIGFwaV91dGlsc18xID0gcmVxdWlyZShcIkB0YWJsZWF1L2FwaS11dGlsc1wiKTtcbnZhciBFeHRlcm5hbFRvSW50ZXJuYWxFbnVtTWFwcGluZ3NfMSA9IHJlcXVpcmUoXCIuLi8uLi9FbnVtTWFwcGluZ3MvRXh0ZXJuYWxUb0ludGVybmFsRW51bU1hcHBpbmdzXCIpO1xudmFyIEludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5nc18xID0gcmVxdWlyZShcIi4uLy4uL0VudW1NYXBwaW5ncy9JbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3NcIik7XG52YXIgRmlsdGVyTW9kZWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vTW9kZWxzL0ZpbHRlck1vZGVsc1wiKTtcbnZhciBHZXREYXRhTW9kZWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vTW9kZWxzL0dldERhdGFNb2RlbHNcIik7XG52YXIgRmlsdGVyU2VydmljZUltcGwgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEZpbHRlclNlcnZpY2VJbXBsKGRpc3BhdGNoZXIpIHtcbiAgICAgICAgdGhpcy5fZGlzcGF0Y2hlciA9IGRpc3BhdGNoZXI7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGaWx0ZXJTZXJ2aWNlSW1wbC5wcm90b3R5cGUsIFwic2VydmljZU5hbWVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBcImZpbHRlci1zZXJ2aWNlXCIgLyogRmlsdGVyICovO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBGaWx0ZXJTZXJ2aWNlSW1wbC5wcm90b3R5cGUuYXBwbHlGaWx0ZXJBc3luYyA9IGZ1bmN0aW9uICh2aXN1YWxJZCwgZmllbGROYW1lLCB2YWx1ZXMsIHVwZGF0ZVR5cGUsIGZpbHRlck9wdGlvbnMpIHtcbiAgICAgICAgaWYgKCFhcGlfdXRpbHNfMS5QYXJhbS5pc1ZhbGlkRW51bVZhbHVlKHVwZGF0ZVR5cGUsIENvbnRyYWN0LkZpbHRlclVwZGF0ZVR5cGUpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdmFsdWUgZm9yIHBhcmFtZXRlciBGaWx0ZXJVcGRhdGVUeXBlJyk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHZlcmIgPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5WZXJiSWQuQXBwbHlDYXRlZ29yaWNhbEZpbHRlcjtcbiAgICAgICAgdmFyIHBhcmFtZXRlcnMgPSB7fTtcbiAgICAgICAgcGFyYW1ldGVyc1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5WaXN1YWxJZF0gPSB2aXN1YWxJZDtcbiAgICAgICAgcGFyYW1ldGVyc1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5GaWVsZE5hbWVdID0gZmllbGROYW1lO1xuICAgICAgICBwYXJhbWV0ZXJzW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLkZpbHRlclZhbHVlc10gPSB2YWx1ZXM7XG4gICAgICAgIHBhcmFtZXRlcnNbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuRmlsdGVyVXBkYXRlVHlwZV0gPSB1cGRhdGVUeXBlO1xuICAgICAgICBwYXJhbWV0ZXJzW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLklzRXhjbHVkZU1vZGVdID1cbiAgICAgICAgICAgIChmaWx0ZXJPcHRpb25zID09PSB1bmRlZmluZWQgfHwgZmlsdGVyT3B0aW9ucy5pc0V4Y2x1ZGVNb2RlID09PSB1bmRlZmluZWQpID8gZmFsc2UgOiBmaWx0ZXJPcHRpb25zLmlzRXhjbHVkZU1vZGU7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUodmVyYiwgcGFyYW1ldGVycykudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHZhciBlcnJvciA9IHJlc3BvbnNlLnJlc3VsdDtcbiAgICAgICAgICAgIGlmICghKGVycm9yLmVycm9yQ29kZSA9PT0gbnVsbCB8fCBlcnJvci5lcnJvckNvZGUgPT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiBjb21lIGJhY2sgYW5kIGltcGxlbWVudCBlcnJvciBoYW5kbGluZyBsb2dpY1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRXJyb3IgQXBwbHlpbmcgRmlsdGVyOiAnICsgZXJyb3IuZXJyb3JDb2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmaWVsZE5hbWU7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgRmlsdGVyU2VydmljZUltcGwucHJvdG90eXBlLmFwcGx5UmFuZ2VGaWx0ZXJBc3luYyA9IGZ1bmN0aW9uICh2aXN1YWxJZCwgZmllbGROYW1lLCBmaWx0ZXJPcHRpb25zKSB7XG4gICAgICAgIGlmICghZmlsdGVyT3B0aW9ucykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIFBhcmFtZXRlcjogUmFuZ2VGaWx0ZXJPcHRpb25zJyk7XG4gICAgICAgIH1cbiAgICAgICAgYXBpX3V0aWxzXzEuUGFyYW0udmVyaWZ5UmFuZ2VQYXJhbVR5cGUoZmlsdGVyT3B0aW9ucy5taW4sIGZpbHRlck9wdGlvbnMubWF4KTtcbiAgICAgICAgdmFyIHZlcmIgPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5WZXJiSWQuQXBwbHlSYW5nZUZpbHRlcjtcbiAgICAgICAgdmFyIHBhcmFtZXRlcnMgPSB7fTtcbiAgICAgICAgaWYgKGZpbHRlck9wdGlvbnMubWluKSB7XG4gICAgICAgICAgICB2YXIgbWluID0gdm9pZCAwO1xuICAgICAgICAgICAgaWYgKGZpbHRlck9wdGlvbnMubWluIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgICAgICAgIG1pbiA9IGFwaV91dGlsc18xLlBhcmFtLnNlcmlhbGl6ZURhdGVGb3JQbGF0Zm9ybShmaWx0ZXJPcHRpb25zLm1pbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBtaW4gPSBmaWx0ZXJPcHRpb25zLm1pbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhcmFtZXRlcnNbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuRmlsdGVyUmFuZ2VNaW5dID0gbWluO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmaWx0ZXJPcHRpb25zLm1heCkge1xuICAgICAgICAgICAgdmFyIG1heCA9IHZvaWQgMDtcbiAgICAgICAgICAgIGlmIChmaWx0ZXJPcHRpb25zLm1heCBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICAgICAgICBtYXggPSBhcGlfdXRpbHNfMS5QYXJhbS5zZXJpYWxpemVEYXRlRm9yUGxhdGZvcm0oZmlsdGVyT3B0aW9ucy5tYXgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgbWF4ID0gZmlsdGVyT3B0aW9ucy5tYXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwYXJhbWV0ZXJzW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLkZpbHRlclJhbmdlTWF4XSA9IG1heDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZmlsdGVyT3B0aW9ucy5udWxsT3B0aW9uKSB7XG4gICAgICAgICAgICBpZiAoIWFwaV91dGlsc18xLlBhcmFtLmlzVmFsaWRFbnVtVmFsdWUoZmlsdGVyT3B0aW9ucy5udWxsT3B0aW9uLCBDb250cmFjdC5GaWx0ZXJOdWxsT3B0aW9uKSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB2YWx1ZSBmb3IgcGFyYW1ldGVyIE51bGxPcHRpb24nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHBhcmFtZXRlcnNbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuRmlsdGVyUmFuZ2VOdWxsT3B0aW9uXSA9IEV4dGVybmFsVG9JbnRlcm5hbEVudW1NYXBwaW5nc18xLkV4dGVybmFsVG9JbnRlcm5hbEVudW1NYXBwaW5ncy5udWxsT3B0aW9ucy5jb252ZXJ0KGZpbHRlck9wdGlvbnMubnVsbE9wdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgcGFyYW1ldGVyc1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5GaWVsZE5hbWVdID0gZmllbGROYW1lO1xuICAgICAgICBwYXJhbWV0ZXJzW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLlZpc3VhbElkXSA9IHZpc3VhbElkO1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGF0Y2hlci5leGVjdXRlKHZlcmIsIHBhcmFtZXRlcnMpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICByZXR1cm4gZmllbGROYW1lO1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIEZpbHRlclNlcnZpY2VJbXBsLnByb3RvdHlwZS5jbGVhckZpbHRlckFzeW5jID0gZnVuY3Rpb24gKHZpc3VhbElkLCBmaWVsZE5hbWUpIHtcbiAgICAgICAgdmFyIHZlcmIgPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5WZXJiSWQuQ2xlYXJGaWx0ZXI7XG4gICAgICAgIHZhciBwYXJhbWV0ZXJzID0ge307XG4gICAgICAgIHBhcmFtZXRlcnNbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuVmlzdWFsSWRdID0gdmlzdWFsSWQ7XG4gICAgICAgIHBhcmFtZXRlcnNbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuRmllbGROYW1lXSA9IGZpZWxkTmFtZTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc3BhdGNoZXIuZXhlY3V0ZSh2ZXJiLCBwYXJhbWV0ZXJzKS50aGVuKGZ1bmN0aW9uIChyZXNwb3NuZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZpZWxkTmFtZTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBGaWx0ZXJTZXJ2aWNlSW1wbC5wcm90b3R5cGUuZ2V0RmlsdGVyc0FzeW5jID0gZnVuY3Rpb24gKHZpc3VhbElkKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciB2ZXJiID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuVmVyYklkLkdldEZpbHRlcnM7XG4gICAgICAgIHZhciBwYXJhbWV0ZXJzID0ge307XG4gICAgICAgIHBhcmFtZXRlcnNbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuVmlzdWFsSWRdID0gdmlzdWFsSWQ7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUodmVyYiwgcGFyYW1ldGVycykudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHZhciBmaWx0ZXJzID0gcmVzcG9uc2UucmVzdWx0O1xuICAgICAgICAgICAgcmV0dXJuIF90aGlzLmNvbnZlcnREb21haW5GaWx0ZXJzKGZpbHRlcnMpO1xuICAgICAgICB9KTtcbiAgICB9O1xuICAgIEZpbHRlclNlcnZpY2VJbXBsLnByb3RvdHlwZS5nZXRDYXRlZ29yaWNhbERvbWFpbkFzeW5jID0gZnVuY3Rpb24gKHdvcmtzaGVldE5hbWUsIGZpZWxkSWQsIGRvbWFpblR5cGUpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgaWYgKCFhcGlfdXRpbHNfMS5QYXJhbS5pc1ZhbGlkRW51bVZhbHVlKGRvbWFpblR5cGUsIENvbnRyYWN0LkZpbHRlckRvbWFpblR5cGUpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdmFsdWUgZm9yIHBhcmFtZXRlciBGaWx0ZXJEb21haW5UeXBlJyk7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHZlcmIgPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5WZXJiSWQuR2V0Q2F0ZWdvcmljYWxEb21haW47XG4gICAgICAgIHZhciBwYXJhbWV0ZXJzID0ge307XG4gICAgICAgIHBhcmFtZXRlcnNbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuVmlzdWFsSWRdID0ge1xuICAgICAgICAgICAgd29ya3NoZWV0OiB3b3Jrc2hlZXROYW1lXG4gICAgICAgIH07XG4gICAgICAgIHBhcmFtZXRlcnNbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuRmllbGRJZF0gPSBmaWVsZElkO1xuICAgICAgICBwYXJhbWV0ZXJzW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLkRvbWFpblR5cGVdID0gZG9tYWluVHlwZTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc3BhdGNoZXIuZXhlY3V0ZSh2ZXJiLCBwYXJhbWV0ZXJzKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgdmFyIGRvbWFpbiA9IHJlc3BvbnNlLnJlc3VsdDtcbiAgICAgICAgICAgIHJldHVybiBfdGhpcy5jb252ZXJ0Q2F0ZWdvcmljYWxEb21haW4oZG9tYWluLCBkb21haW5UeXBlKTtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBGaWx0ZXJTZXJ2aWNlSW1wbC5wcm90b3R5cGUuZ2V0UmFuZ2VEb21haW5Bc3luYyA9IGZ1bmN0aW9uICh3b3Jrc2hlZXROYW1lLCBmaWVsZElkLCBkb21haW5UeXBlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIGlmICghYXBpX3V0aWxzXzEuUGFyYW0uaXNWYWxpZEVudW1WYWx1ZShkb21haW5UeXBlLCBDb250cmFjdC5GaWx0ZXJEb21haW5UeXBlKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHZhbHVlIGZvciBwYXJhbWV0ZXIgRmlsdGVyRG9tYWluVHlwZScpO1xuICAgICAgICB9XG4gICAgICAgIHZhciB2ZXJiID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuVmVyYklkLkdldFJhbmdlRG9tYWluO1xuICAgICAgICB2YXIgcGFyYW1ldGVycyA9IHt9O1xuICAgICAgICBwYXJhbWV0ZXJzW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLlZpc3VhbElkXSA9IHtcbiAgICAgICAgICAgIHdvcmtzaGVldDogd29ya3NoZWV0TmFtZVxuICAgICAgICB9O1xuICAgICAgICBwYXJhbWV0ZXJzW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLkZpZWxkSWRdID0gZmllbGRJZDtcbiAgICAgICAgcGFyYW1ldGVyc1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5Eb21haW5UeXBlXSA9IEV4dGVybmFsVG9JbnRlcm5hbEVudW1NYXBwaW5nc18xLkV4dGVybmFsVG9JbnRlcm5hbEVudW1NYXBwaW5ncy5maWx0ZXJEb21haW5UeXBlLmNvbnZlcnQoZG9tYWluVHlwZSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUodmVyYiwgcGFyYW1ldGVycykudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHZhciBkb21haW4gPSByZXNwb25zZS5yZXN1bHQ7XG4gICAgICAgICAgICByZXR1cm4gX3RoaXMuY29udmVydFJhbmdlRG9tYWluKGRvbWFpbiwgZG9tYWluVHlwZSk7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgLy8gSGVscGVyIE1ldGhvZHNcbiAgICBGaWx0ZXJTZXJ2aWNlSW1wbC5wcm90b3R5cGUuY29udmVydERvbWFpbkZpbHRlcnMgPSBmdW5jdGlvbiAoZG9tYWluRmlsdGVycykge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgZmlsdGVycyA9IFtdO1xuICAgICAgICBkb21haW5GaWx0ZXJzLmZvckVhY2goZnVuY3Rpb24gKGRvbWFpbkZpbHRlcikge1xuICAgICAgICAgICAgc3dpdGNoIChkb21haW5GaWx0ZXIuZmlsdGVyVHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmlsdGVyVHlwZS5DYXRlZ29yaWNhbDoge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZmlsdGVyID0gZG9tYWluRmlsdGVyO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzLnB1c2goX3RoaXMuY29udmVydENhdGVnb3JpY2FsRmlsdGVyKGZpbHRlcikpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIENhdGVnb3JpY2FsIEZpbHRlcicpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlIGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpbHRlclR5cGUuUmFuZ2U6IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGZpbHRlciA9IGRvbWFpbkZpbHRlcjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHRlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVycy5wdXNoKF90aGlzLmNvbnZlcnRSYW5nZUZpbHRlcihmaWx0ZXIpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBSYW5nZSBGaWx0ZXInKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2FzZSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWx0ZXJUeXBlLlJlbGF0aXZlRGF0ZToge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZmlsdGVyID0gZG9tYWluRmlsdGVyO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzLnB1c2goX3RoaXMuY29udmVydFJlbGF0aXZlRGF0ZUZpbHRlcihmaWx0ZXIpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBSZWxhdGl2ZSBEYXRlIEZpbHRlcicpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBmaWx0ZXJzO1xuICAgIH07XG4gICAgRmlsdGVyU2VydmljZUltcGwucHJvdG90eXBlLmNvbnZlcnRDYXRlZ29yaWNhbEZpbHRlciA9IGZ1bmN0aW9uIChkb21haW5GaWx0ZXIpIHtcbiAgICAgICAgdmFyIGFwcGxpZWRWYWx1ZXMgPSBkb21haW5GaWx0ZXIudmFsdWVzLm1hcChmdW5jdGlvbiAoZHYpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgR2V0RGF0YU1vZGVsc18xLkRhdGFWYWx1ZShkdi52YWx1ZSwgZHYuZm9ybWF0dGVkVmFsdWUpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIG5ldyBGaWx0ZXJNb2RlbHNfMS5DYXRlZ29yaWNhbEZpbHRlcihkb21haW5GaWx0ZXIudmlzdWFsSWQud29ya3NoZWV0LCBkb21haW5GaWx0ZXIuZmllbGRDYXB0aW9uLCBkb21haW5GaWx0ZXIuZmllbGROYW1lLCBDb250cmFjdC5GaWx0ZXJUeXBlLkNhdGVnb3JpY2FsLCBhcHBsaWVkVmFsdWVzLCBkb21haW5GaWx0ZXIuaXNFeGNsdWRlKTtcbiAgICB9O1xuICAgIEZpbHRlclNlcnZpY2VJbXBsLnByb3RvdHlwZS5jb252ZXJ0UmFuZ2VGaWx0ZXIgPSBmdW5jdGlvbiAoZG9tYWluRmlsdGVyKSB7XG4gICAgICAgIHZhciBtaW5WYWx1ZSA9IG5ldyBHZXREYXRhTW9kZWxzXzEuRGF0YVZhbHVlKGRvbWFpbkZpbHRlci5taW4udmFsdWUsIGRvbWFpbkZpbHRlci5taW4uZm9ybWF0dGVkVmFsdWUpO1xuICAgICAgICB2YXIgbWF4VmFsdWUgPSBuZXcgR2V0RGF0YU1vZGVsc18xLkRhdGFWYWx1ZShkb21haW5GaWx0ZXIubWF4LnZhbHVlLCBkb21haW5GaWx0ZXIubWF4LmZvcm1hdHRlZFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIG5ldyBGaWx0ZXJNb2RlbHNfMS5SYW5nZUZpbHRlcihkb21haW5GaWx0ZXIudmlzdWFsSWQud29ya3NoZWV0LCBkb21haW5GaWx0ZXIuZmllbGRDYXB0aW9uLCBkb21haW5GaWx0ZXIuZmllbGROYW1lLCBDb250cmFjdC5GaWx0ZXJUeXBlLlJhbmdlLCBtaW5WYWx1ZSwgbWF4VmFsdWUsIGRvbWFpbkZpbHRlci5pbmNsdWRlTnVsbFZhbHVlcyk7XG4gICAgfTtcbiAgICBGaWx0ZXJTZXJ2aWNlSW1wbC5wcm90b3R5cGUuY29udmVydFJlbGF0aXZlRGF0ZUZpbHRlciA9IGZ1bmN0aW9uIChkb21haW5GaWx0ZXIpIHtcbiAgICAgICAgdmFyIGFuY2hvckRhdGVWYWx1ZSA9IG5ldyBHZXREYXRhTW9kZWxzXzEuRGF0YVZhbHVlKGRvbWFpbkZpbHRlci5hbmNob3JEYXRlLnZhbHVlLCBkb21haW5GaWx0ZXIuYW5jaG9yRGF0ZS5mb3JtYXR0ZWRWYWx1ZSk7XG4gICAgICAgIHJldHVybiBuZXcgRmlsdGVyTW9kZWxzXzEuUmVsYXRpdmVEYXRlRmlsdGVyKGRvbWFpbkZpbHRlci52aXN1YWxJZC53b3Jrc2hlZXQsIGRvbWFpbkZpbHRlci5maWVsZENhcHRpb24sIGRvbWFpbkZpbHRlci5maWVsZE5hbWUsIENvbnRyYWN0LkZpbHRlclR5cGUuUmVsYXRpdmVEYXRlLCBhbmNob3JEYXRlVmFsdWUsIEludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5nc18xLkludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncy5kYXRlU3RlcFBlcmlvZC5jb252ZXJ0KGRvbWFpbkZpbHRlci5wZXJpb2RUeXBlKSwgSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzXzEuSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmRhdGVSYW5nZVR5cGUuY29udmVydChkb21haW5GaWx0ZXIucmFuZ2VUeXBlKSwgZG9tYWluRmlsdGVyLnJhbmdlTik7XG4gICAgfTtcbiAgICBGaWx0ZXJTZXJ2aWNlSW1wbC5wcm90b3R5cGUuY29udmVydENhdGVnb3JpY2FsRG9tYWluID0gZnVuY3Rpb24gKGRvbWFpbiwgZG9tYWluVHlwZSkge1xuICAgICAgICB2YXIgdmFsdWVzID0gZG9tYWluLnZhbHVlcy5tYXAoZnVuY3Rpb24gKGRvbWFpbkR2KSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEdldERhdGFNb2RlbHNfMS5EYXRhVmFsdWUoZG9tYWluRHYudmFsdWUsIGRvbWFpbkR2LmZvcm1hdHRlZFZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBuZXcgRmlsdGVyTW9kZWxzXzEuQ2F0ZWdvcmljYWxEb21haW4odmFsdWVzLCBkb21haW5UeXBlKTtcbiAgICB9O1xuICAgIEZpbHRlclNlcnZpY2VJbXBsLnByb3RvdHlwZS5jb252ZXJ0UmFuZ2VEb21haW4gPSBmdW5jdGlvbiAoZG9tYWluLCBkb21haW5UeXBlKSB7XG4gICAgICAgIHZhciBtaW4gPSBuZXcgR2V0RGF0YU1vZGVsc18xLkRhdGFWYWx1ZShkb21haW4ubWluLnZhbHVlLCBkb21haW4ubWluLmZvcm1hdHRlZFZhbHVlKTtcbiAgICAgICAgdmFyIG1heCA9IG5ldyBHZXREYXRhTW9kZWxzXzEuRGF0YVZhbHVlKGRvbWFpbi5tYXgudmFsdWUsIGRvbWFpbi5tYXguZm9ybWF0dGVkVmFsdWUpO1xuICAgICAgICByZXR1cm4gbmV3IEZpbHRlck1vZGVsc18xLlJhbmdlRG9tYWluKG1pbiwgbWF4LCBkb21haW5UeXBlKTtcbiAgICB9O1xuICAgIHJldHVybiBGaWx0ZXJTZXJ2aWNlSW1wbDtcbn0oKSk7XG5leHBvcnRzLkZpbHRlclNlcnZpY2VJbXBsID0gRmlsdGVyU2VydmljZUltcGw7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1GaWx0ZXJTZXJ2aWNlSW1wbC5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXNoYXJlZC9saWIvU2VydmljZXMvaW1wbC9GaWx0ZXJTZXJ2aWNlSW1wbC5qc1xuICoqIG1vZHVsZSBpZCA9IDI2XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbi8qKlxuICogVGhpcyBpcyB5b3VyIG1haW4uIFRoaXMgaXMgd2hlcmUgeW91IHJlLWV4cG9ydCBldmVyeXRoaW5nIHlvdSB3YW50IHRvIGJlIHB1YmxpY2x5IGF2YWlsYWJsZS5cbiAqXG4gKiBUaGUgYnVpbGQgZW5mb3JjZXMgdGhhdCB0aGUgZmlsZSBoYXMgdGhlIHNhbWUgbmFtZSBhcyB0aGUgZ2xvYmFsIHZhcmlhYmxlIHRoYXQgaXMgZXhwb3J0ZWQuXG4gKi9cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBFbnVtQ29udmVydGVyXzEgPSByZXF1aXJlKFwiLi9FbnVtQ29udmVydGVyXCIpO1xuZXhwb3J0cy5FbnVtQ29udmVydGVyID0gRW51bUNvbnZlcnRlcl8xLkVudW1Db252ZXJ0ZXI7XG52YXIgUGFyYW1fMSA9IHJlcXVpcmUoXCIuL1BhcmFtXCIpO1xuZXhwb3J0cy5QYXJhbSA9IFBhcmFtXzEuUGFyYW07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1BcGlVdGlscy5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXV0aWxzL2xpYi9BcGlVdGlscy5qc1xuICoqIG1vZHVsZSBpZCA9IDI3XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8qKlxuICogVGhpcyBjbGFzcyBjb252ZXJ0cyBmcm9tIGEgc291cmNlIGVudW0gdmFsdWUgdG8gZGVzdGluYXRpb24gZW51bVxuICogdmFsdWUgZ2l2ZW4gYSBtYXBwaW5nIGZyb20gc291cmNlIHRvIGRlc3RpbmF0aW9uIHdoZW4gY29uc3RydWN0ZWQuXG4gKi9cbnZhciBFbnVtQ29udmVydGVyID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBFbnVtQ29udmVydGVyKF9tYXBwaW5ncywgX2RlZmF1bHRWYWwpIHtcbiAgICAgICAgdGhpcy5fbWFwcGluZ3MgPSBfbWFwcGluZ3M7XG4gICAgICAgIHRoaXMuX2RlZmF1bHRWYWwgPSBfZGVmYXVsdFZhbDtcbiAgICB9XG4gICAgRW51bUNvbnZlcnRlci5wcm90b3R5cGUuY29udmVydCA9IGZ1bmN0aW9uIChlbnVtVmFsLCB0aHJvd0lmTWlzc2luZykge1xuICAgICAgICBpZiAodGhpcy5fbWFwcGluZ3MuaGFzT3duUHJvcGVydHkoZW51bVZhbCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9tYXBwaW5nc1tlbnVtVmFsXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fZGVmYXVsdFZhbCAhPT0gdW5kZWZpbmVkICYmICF0aHJvd0lmTWlzc2luZykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RlZmF1bHRWYWw7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNYXBwaW5nIG5vdCBmb3VuZCBmb3IgJyArIGVudW1WYWwpO1xuICAgIH07XG4gICAgcmV0dXJuIEVudW1Db252ZXJ0ZXI7XG59KCkpO1xuZXhwb3J0cy5FbnVtQ29udmVydGVyID0gRW51bUNvbnZlcnRlcjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUVudW1Db252ZXJ0ZXIuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS11dGlscy9saWIvRW51bUNvbnZlcnRlci5qc1xuICoqIG1vZHVsZSBpZCA9IDI4XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBQYXJhbSA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gUGFyYW0oKSB7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIFZlcmlmaWVzIHRoYXQgYW4gaW5jb21pbmcgcGFyYW1ldGVyIGlzICd0cnV0aHknIGFuZCB0aHJvd3NcbiAgICAgKiBhbiBlcnJvciBpZiBpdCdzIG5vdC4gVGhpcyB3aWxsIHRocm93IGFuIGVycm9yIGlmIHRoZSB2YWx1ZVxuICAgICAqIGlzIG51bGwsIHVuZGVmaW5lZCwgTmFOLCB0aGUgZW1wdHkgc3RyaW5nLCAwLCBvciBmYWxzZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcmd1bWVudFZhbHVlIHZhbHVlIHRvIHZlcmlmeVxuICAgICAqIEBwYXJhbSBhcmd1bWVudE5hbWUgbmFtZSBvZiBhcmd1bWVudCB0byB2ZXJpZnlcbiAgICAgKi9cbiAgICAvKnRzbGludDpkaXNhYmxlLW5leHQtbGluZSAqL1xuICAgIFBhcmFtLnZlcmlmeVZhbHVlID0gZnVuY3Rpb24gKGFyZ3VtZW50VmFsdWUsIGFyZ3VtZW50TmFtZSkge1xuICAgICAgICBpZiAoIWFyZ3VtZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVmFsdWUgaXMgaW52YWxpZCBmb3IgYXJndW1lbnQ6ICcgKyBhcmd1bWVudE5hbWUpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBWZXJpZmllcyB0aGF0IGEgc3RyaW5nIGlzIHZhbGlkLiAgVGhyb3dzIGFuIGVycm9yIGlmIHRoZSBzdHJpbmcgaXNcbiAgICAgKiBudWxsLCB1bmRlZmluZWQsIG9yIE5hTi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBhcmd1bWVudFZhbHVlIHZhbHVlIHRvIHZlcmlmeVxuICAgICAqIEBwYXJhbSBhcmd1bWVudE5hbWUgbmFtZSBvZiBhcmd1bWVudCB0byB2ZXJpZnlcbiAgICAgKi9cbiAgICBQYXJhbS52ZXJpZnlTdHJpbmcgPSBmdW5jdGlvbiAoYXJndW1lbnRWYWx1ZSwgYXJndW1lbnROYW1lKSB7XG4gICAgICAgIGlmIChhcmd1bWVudFZhbHVlID09PSBudWxsIHx8IGFyZ3VtZW50VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdTdHJpbmcgdmFsdWUgaXMgaW52YWxpZCBmb3IgYXJndW1lbnQ6ICcgKyBhcmd1bWVudE5hbWUpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBWZXJpZmllcyB0aGUgdmFsdWUgaXMgcGFydCBvZiB0aGUgRW51bVxuICAgICAqXG4gICAgICogU3RyaW5nIGVudW1zIGFyZSB7c3RyaW5nIDogc3RyaW5nfSBkaWN0aW9uYXJpZXMgd2hpY2ggYXJlIG5vdCByZXZlcnNlIG1hcHBhYmxlXG4gICAgICogVGhpcyBpcyBhbiB1Z2x5IHdvcmthcm91bmRcbiAgICAgKiBAcGFyYW0gdmFsdWUgdmFsdWUgdG8gdmVyaWZ5XG4gICAgICogQHBhcmFtIGVudW1UeXBlIGVudW0gdG8gdmVyaWZ5IGFnYWluc3RcbiAgICAgKi9cbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZTpuby1hbnkgKi9cbiAgICBQYXJhbS5pc1ZhbGlkRW51bVZhbHVlID0gZnVuY3Rpb24gKHZhbHVlLCBlbnVtVHlwZSkge1xuICAgICAgICB2YXIgaXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICBPYmplY3Qua2V5cyhlbnVtVHlwZSkuZm9yRWFjaChmdW5jdGlvbiAoZW51bUtleSkge1xuICAgICAgICAgICAgaWYgKGVudW1UeXBlW2VudW1LZXldID09PSB2YWx1ZS50b1N0cmluZygpKSB7XG4gICAgICAgICAgICAgICAgaXNWYWxpZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gaXNWYWxpZDtcbiAgICB9O1xuICAgIC8qIHRzbGludDplbmFibGU6bm8tYW55ICovXG4gICAgLyoqXG4gICAgICogc2VyaWFsaXplcyB0aGUgZGF0ZSBpbnRvIHRoZSBmb3JtYXQgdGhhdCB0aGUgc2VydmVyIGV4cGVjdHMuXG4gICAgICogQHBhcmFtIGRhdGUgdGhlIGRhdGUgdG8gc2VyaWFsaXplXG4gICAgICovXG4gICAgUGFyYW0uc2VyaWFsaXplRGF0ZUZvclBsYXRmb3JtID0gZnVuY3Rpb24gKGRhdGUpIHtcbiAgICAgICAgdmFyIHllYXIgPSBkYXRlLmdldFVUQ0Z1bGxZZWFyKCk7XG4gICAgICAgIHZhciBtb250aCA9IGRhdGUuZ2V0VVRDTW9udGgoKSArIDE7XG4gICAgICAgIHZhciBkYXkgPSBkYXRlLmdldFVUQ0RhdGUoKTtcbiAgICAgICAgdmFyIGhoID0gZGF0ZS5nZXRVVENIb3VycygpO1xuICAgICAgICB2YXIgbW0gPSBkYXRlLmdldFVUQ01pbnV0ZXMoKTtcbiAgICAgICAgdmFyIHNlYyA9IGRhdGUuZ2V0VVRDU2Vjb25kcygpO1xuICAgICAgICByZXR1cm4geWVhciArICctJyArIG1vbnRoICsgJy0nICsgZGF5ICsgJyAnICsgaGggKyAnOicgKyBtbSArICc6JyArIHNlYztcbiAgICB9O1xuICAgIFBhcmFtLnNlcmlhbGl6ZUJvb2xlYW5Gb3JQbGF0Zm9ybSA9IGZ1bmN0aW9uIChib29sKSB7XG4gICAgICAgIHJldHVybiBib29sID8gJ3RydWUnIDogJ2ZhbHNlJztcbiAgICB9O1xuICAgIFBhcmFtLnNlcmlhbGl6ZU51bWJlckZvclBsYXRmb3JtID0gZnVuY3Rpb24gKG51bSkge1xuICAgICAgICByZXR1cm4gbnVtLnRvU3RyaW5nKDEwKTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIFZlcmlmaWVzIHRoZSBwYXJhbXMgbWluIGFuZCBtYXggZm9yIGFwcGx5aW5nIHJhbmdlIGZpbHRlclxuICAgICAqIEBwYXJhbSBtaW4gcmFuZ2UgbWluXG4gICAgICogQHBhcmFtIG1heCByYW5nZSBtYXhcbiAgICAgKi9cbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZTpuby1hbnkgKi9cbiAgICBQYXJhbS52ZXJpZnlSYW5nZVBhcmFtVHlwZSA9IGZ1bmN0aW9uIChtaW4sIG1heCkge1xuICAgICAgICAvKiB0c2xpbnQ6ZW5hYmxlOm5vLWFueSAqL1xuICAgICAgICBpZiAoIW1pbiAmJiAhbWF4KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgUGFyYW1ldGVyOiBBdCBsZWFzdCBvbmUgb2YgbWluIG9yIG1heCBpcyByZXF1aXJlZCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghUGFyYW0uaXNUeXBlTnVtYmVyKG1pbikgJiYgIVBhcmFtLmlzVHlwZURhdGUobWluKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFBhcmFtZXRlciBUeXBlOiBPbmx5IERhdGUgYW5kIG51bWJlciBhcmUgYWxsb3dlZCBmb3IgcGFyYW1ldGVyIG1pbicpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghUGFyYW0uaXNUeXBlTnVtYmVyKG1heCkgJiYgIVBhcmFtLmlzVHlwZURhdGUobWF4KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFBhcmFtZXRlciBUeXBlOiBPbmx5IERhdGUgYW5kIG51bWJlciBhcmUgYWxsb3dlZCBmb3IgcGFyYW1ldGVyIG1heCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgKG1pbikgIT09IHR5cGVvZiAobWF4KSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFBhcmFtZXRlciBUeXBlOiBQYXJhbWV0ZXJzIG1pbiBhbmQgbWF4IHNob3VsZCBiZSBvZiB0aGUgc2FtZSB0eXBlJyk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIC8qKlxuICAgICAqIFZlcmlmaWVzIHRoZSBpbnB1dCBpcyBhIG51bWJlclxuICAgICAqL1xuICAgIC8qIHRzbGludDpkaXNhYmxlOm5vLWFueSAqL1xuICAgIFBhcmFtLmlzVHlwZU51bWJlciA9IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIChpbnB1dCkgPT09ICdudW1iZXInIHx8IGlucHV0IGluc3RhbmNlb2YgTnVtYmVyO1xuICAgIH07XG4gICAgLyogdHNsaW50OmVuYWJsZTpuby1hbnkgKi9cbiAgICAvKipcbiAgICAgKiBWZXJpZmllcyB0aGUgaW5wdXQgaXMgYSBEYXRlXG4gICAgICovXG4gICAgLyogdHNsaW50OmRpc2FibGU6bm8tYW55ICovXG4gICAgUGFyYW0uaXNUeXBlRGF0ZSA9IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICByZXR1cm4gaW5wdXQgaW5zdGFuY2VvZiBEYXRlO1xuICAgIH07XG4gICAgLyogdHNsaW50OmVuYWJsZTpuby1hbnkgKi9cbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55ICovXG4gICAgUGFyYW0uaXNUeXBlU3RyaW5nID0gZnVuY3Rpb24gKGlucHV0KSB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgKGlucHV0KSA9PT0gJ3N0cmluZycgfHwgaW5wdXQgaW5zdGFuY2VvZiBTdHJpbmc7XG4gICAgfTtcbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55ICovXG4gICAgUGFyYW0uaXNUeXBlQm9vbCA9IGZ1bmN0aW9uIChpbnB1dCkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIChpbnB1dCkgPT09ICdib29sZWFuJyB8fCBpbnB1dCBpbnN0YW5jZW9mIEJvb2xlYW47XG4gICAgfTtcbiAgICAvKiB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55ICovXG4gICAgUGFyYW0uc2VyaWFsaXplUGFyYW10ZXJWYWx1ZSA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICBpZiAoUGFyYW0uaXNUeXBlTnVtYmVyKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIFBhcmFtLnNlcmlhbGl6ZU51bWJlckZvclBsYXRmb3JtKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChQYXJhbS5pc1R5cGVEYXRlKHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIFBhcmFtLnNlcmlhbGl6ZURhdGVGb3JQbGF0Zm9ybSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoUGFyYW0uaXNUeXBlQm9vbCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBQYXJhbS5zZXJpYWxpemVCb29sZWFuRm9yUGxhdGZvcm0odmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKFBhcmFtLmlzVHlwZVN0cmluZyh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVmFsdWUgaXMgaW52YWxpZCBmb3IgYXJndW1lbnQ6IHZhbHVlJyk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiBQYXJhbTtcbn0oKSk7XG5leHBvcnRzLlBhcmFtID0gUGFyYW07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1QYXJhbS5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIEQ6L2Rldi9qcy1hcGkvYXBpLXV0aWxzL2xpYi9QYXJhbS5qc1xuICoqIG1vZHVsZSBpZCA9IDI5XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMSA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3RcIik7XG52YXIgYXBpX2ludGVybmFsX2NvbnRyYWN0XzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0XCIpO1xudmFyIGFwaV91dGlsc18xID0gcmVxdWlyZShcIkB0YWJsZWF1L2FwaS11dGlsc1wiKTtcbi8qIHRzbGludDpkaXNhYmxlOnR5cGVkZWYgLSBEaXNhYmxlIHRoaXMgdG8gbWFrZSBkZWNsYXJpbmcgdGhlc2UgY2xhc3NlcyBhIGJpdCBlYXNpZXIgKi9cbi8qKlxuICogTWFwcyBlbnVtcyB1c2VkIGJ5IHRoZSBleHRlcm5hbC1hcGktY29udHJhY3QgdG8gdGhlIGVudW1zIHVzZWRcbiAqIGluIHRoZSBpbnRlcm5hbC1hcGktY29udHJhY3QsIHdoaWNoIGRldmVsb3BlcnMgY29kZSBhZ2FpbnN0LlxuICovXG52YXIgRXh0ZXJuYWxUb0ludGVybmFsRW51bU1hcHBpbmdzID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBFeHRlcm5hbFRvSW50ZXJuYWxFbnVtTWFwcGluZ3MoKSB7XG4gICAgfVxuICAgIEV4dGVybmFsVG9JbnRlcm5hbEVudW1NYXBwaW5ncy5udWxsT3B0aW9ucyA9IG5ldyBhcGlfdXRpbHNfMS5FbnVtQ29udmVydGVyKChfYSA9IHt9LFxuICAgICAgICBfYVthcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWx0ZXJOdWxsT3B0aW9uLkFsbFZhbHVlc10gPSBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWx0ZXJOdWxsT3B0aW9uLkFsbFZhbHVlcyxcbiAgICAgICAgX2FbYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmlsdGVyTnVsbE9wdGlvbi5Ob25OdWxsVmFsdWVzXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpbHRlck51bGxPcHRpb24uTm9uTnVsbFZhbHVlcyxcbiAgICAgICAgX2FbYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmlsdGVyTnVsbE9wdGlvbi5Ob25OdWxsVmFsdWVzXSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpbHRlck51bGxPcHRpb24uTnVsbFZhbHVlcyxcbiAgICAgICAgX2EpKTtcbiAgICBFeHRlcm5hbFRvSW50ZXJuYWxFbnVtTWFwcGluZ3MuZmlsdGVyRG9tYWluVHlwZSA9IG5ldyBhcGlfdXRpbHNfMS5FbnVtQ29udmVydGVyKChfYiA9IHt9LFxuICAgICAgICBfYlthcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWx0ZXJEb21haW5UeXBlLlJlbGV2YW50XSA9IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpbHRlckRvbWFpblR5cGUuUmVsZXZhbnQsXG4gICAgICAgIF9iW2FwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpbHRlckRvbWFpblR5cGUuRGF0YWJhc2VdID0gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmlsdGVyRG9tYWluVHlwZS5EYXRhYmFzZSxcbiAgICAgICAgX2IpKTtcbiAgICByZXR1cm4gRXh0ZXJuYWxUb0ludGVybmFsRW51bU1hcHBpbmdzO1xufSgpKTtcbmV4cG9ydHMuRXh0ZXJuYWxUb0ludGVybmFsRW51bU1hcHBpbmdzID0gRXh0ZXJuYWxUb0ludGVybmFsRW51bU1hcHBpbmdzO1xudmFyIF9hLCBfYjtcbi8qIHRzbGludDplbmFibGU6dHlwZWRlZiAqL1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RXh0ZXJuYWxUb0ludGVybmFsRW51bU1hcHBpbmdzLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9FbnVtTWFwcGluZ3MvRXh0ZXJuYWxUb0ludGVybmFsRW51bU1hcHBpbmdzLmpzXG4gKiogbW9kdWxlIGlkID0gMzBcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIGFwaV9leHRlcm5hbF9jb250cmFjdF8xID0gcmVxdWlyZShcIkB0YWJsZWF1L2FwaS1leHRlcm5hbC1jb250cmFjdFwiKTtcbnZhciBhcGlfaW50ZXJuYWxfY29udHJhY3RfMSA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktaW50ZXJuYWwtY29udHJhY3RcIik7XG52YXIgYXBpX3V0aWxzXzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLXV0aWxzXCIpO1xuLyogdHNsaW50OmRpc2FibGU6dHlwZWRlZiAtIERpc2FibGUgdGhpcyB0byBtYWtlIGRlY2xhcmluZyB0aGVzZSBjbGFzc2VzIGEgYml0IGVhc2llciAqL1xuLyoqXG4gKiBNYXBzIGVudW1zIHVzZWQgYnkgdGhlIGludGVybmFsLWFwaS1jb250cmFjdCB0byB0aGUgZW51bXMgdXNlZFxuICogaW4gdGhlIGV4dGVybmFsLWFwaS1jb250cmFjdCwgd2hpY2ggZGV2ZWxvcGVycyBjb2RlIGFnYWluc3QuXG4gKi9cbnZhciBJbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncygpIHtcbiAgICB9XG4gICAgSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmFkZEluQ29udGV4dCA9IG5ldyBhcGlfdXRpbHNfMS5FbnVtQ29udmVydGVyKChfYSA9IHt9LFxuICAgICAgICBfYVthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5BZGRJbkNvbnRleHQuRGVza3RvcF0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5BZGRJbkNvbnRleHQuRGVza3RvcCxcbiAgICAgICAgX2FbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuQWRkSW5Db250ZXh0LlNlcnZlcl0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5BZGRJbkNvbnRleHQuU2VydmVyLFxuICAgICAgICBfYSkpO1xuICAgIEludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncy5hZGRJbk1vZGUgPSBuZXcgYXBpX3V0aWxzXzEuRW51bUNvbnZlcnRlcigoX2IgPSB7fSxcbiAgICAgICAgX2JbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuQWRkSW5Nb2RlLkF1dGhvcmluZ10gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5BZGRJbk1vZGUuQXV0aG9yaW5nLFxuICAgICAgICBfYlthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5BZGRJbk1vZGUuVmlld2luZ10gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5BZGRJbk1vZGUuVmlld2luZyxcbiAgICAgICAgX2IpKTtcbiAgICBJbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MuY29sdW1uVHlwZSA9IG5ldyBhcGlfdXRpbHNfMS5FbnVtQ29udmVydGVyKChfYyA9IHt9LFxuICAgICAgICBfY1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5Db2x1bW5UeXBlLkNvbnRpbnVvdXNdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuQ29sdW1uVHlwZS5Db250aW51b3VzLFxuICAgICAgICBfY1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5Db2x1bW5UeXBlLkRpc2NyZXRlXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkNvbHVtblR5cGUuRGlzY3JldGUsXG4gICAgICAgIF9jKSk7XG4gICAgSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmZpZWxkQWdncmVnYXRpb25UeXBlID0gbmV3IGFwaV91dGlsc18xLkVudW1Db252ZXJ0ZXIoKF9kID0ge30sXG4gICAgICAgIF9kW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLkF0dHJdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuQXR0cixcbiAgICAgICAgX2RbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuQXZnXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLkF2ZyxcbiAgICAgICAgX2RbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuQ291bnRdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuQ291bnQsXG4gICAgICAgIF9kW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLkNvdW50ZF0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5Db3VudGQsXG4gICAgICAgIF9kW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLkRheV0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5EYXksXG4gICAgICAgIF9kW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLkVuZF0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5FbmQsXG4gICAgICAgIF9kW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLkhvdXJdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuSG91cixcbiAgICAgICAgX2RbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuSW5PdXRdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuSW5PdXQsXG4gICAgICAgIF9kW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLkt1cnRvc2lzXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLkt1cnRvc2lzLFxuICAgICAgICBfZFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5NYXhdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuTWF4LFxuICAgICAgICBfZFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5NZHldID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuTWR5LFxuICAgICAgICBfZFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5NZWRpYW5dID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuTWVkaWFuLFxuICAgICAgICBfZFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5NaW5dID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuTWluLFxuICAgICAgICBfZFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5NaW51dGVdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuTWludXRlLFxuICAgICAgICBfZFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5Nb250aFllYXJdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuTW9udGhZZWFyLFxuICAgICAgICBfZFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5Ob25lXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLk5vbmUsXG4gICAgICAgIF9kW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlF0cl0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5RdHIsXG4gICAgICAgIF9kW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlF1YXJ0MV0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5RdWFydDEsXG4gICAgICAgIF9kW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlF1YXJ0M10gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5RdWFydDMsXG4gICAgICAgIF9kW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlNlY29uZF0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5TZWNvbmQsXG4gICAgICAgIF9kW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlNrZXduZXNzXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlNrZXduZXNzLFxuICAgICAgICBfZFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5TdGRldl0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5TdGRldixcbiAgICAgICAgX2RbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuU3RkZXZwXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlN0ZGV2cCxcbiAgICAgICAgX2RbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuU3VtXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlN1bSxcbiAgICAgICAgX2RbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuVHJ1bmNEYXldID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuVHJ1bmNEYXksXG4gICAgICAgIF9kW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jSG91cl0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY0hvdXIsXG4gICAgICAgIF9kW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jTWludXRlXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jTWludXRlLFxuICAgICAgICBfZFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY01vbnRoXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jTW9udGgsXG4gICAgICAgIF9kW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jUXRyXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jUXRyLFxuICAgICAgICBfZFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY1NlY29uZF0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5UcnVuY1NlY29uZCxcbiAgICAgICAgX2RbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuVHJ1bmNXZWVrXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jV2VlayxcbiAgICAgICAgX2RbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuVHJ1bmNZZWFyXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlRydW5jWWVhcixcbiAgICAgICAgX2RbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuVXNlcl0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5Vc2VyLFxuICAgICAgICBfZFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5WYXJdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuVmFyLFxuICAgICAgICBfZFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5WYXJwXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlZhcnAsXG4gICAgICAgIF9kW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLldlZWtdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuV2VlayxcbiAgICAgICAgX2RbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRBZ2dyZWdhdGlvblR5cGUuV2Vla2RheV0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5XZWVrZGF5LFxuICAgICAgICBfZFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWVsZEFnZ3JlZ2F0aW9uVHlwZS5ZZWFyXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpZWxkQWdncmVnYXRpb25UeXBlLlllYXIsXG4gICAgICAgIF9kKSk7XG4gICAgSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmZpZWxkUm9sZVR5cGUgPSBuZXcgYXBpX3V0aWxzXzEuRW51bUNvbnZlcnRlcigoX2UgPSB7fSxcbiAgICAgICAgX2VbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmllbGRSb2xlVHlwZS5EaW1lbnNpb25dID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmllbGRSb2xlVHlwZS5EaW1lbnNpb24sXG4gICAgICAgIF9lW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkUm9sZVR5cGUuTWVhc3VyZV0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWVsZFJvbGVUeXBlLk1lYXN1cmUsXG4gICAgICAgIF9lW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpZWxkUm9sZVR5cGUuVW5rbm93bl0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWVsZFJvbGVUeXBlLlVua25vd24sXG4gICAgICAgIF9lKSk7XG4gICAgSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLnNoZWV0VHlwZSA9IG5ldyBhcGlfdXRpbHNfMS5FbnVtQ29udmVydGVyKChfZiA9IHt9LFxuICAgICAgICBfZlthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5TaGVldFR5cGUuRGFzaGJvYXJkXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLlNoZWV0VHlwZS5EYXNoYm9hcmQsXG4gICAgICAgIF9mW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLlNoZWV0VHlwZS5TdG9yeV0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5TaGVldFR5cGUuU3RvcnksXG4gICAgICAgIF9mW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLlNoZWV0VHlwZS5Xb3Jrc2hlZXRdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuU2hlZXRUeXBlLldvcmtzaGVldCxcbiAgICAgICAgX2YpKTtcbiAgICBJbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MuZGFzaGJvYXJkT2JqZWN0VHlwZSA9IG5ldyBhcGlfdXRpbHNfMS5FbnVtQ29udmVydGVyKChfZyA9IHt9LFxuICAgICAgICBfZ1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXNoYm9hcmRPYmplY3RUeXBlLkFkZEluXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkRhc2hib2FyZE9iamVjdFR5cGUuQWRkSW4sXG4gICAgICAgIF9nW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhc2hib2FyZE9iamVjdFR5cGUuQmxhbmtdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRGFzaGJvYXJkT2JqZWN0VHlwZS5CbGFuayxcbiAgICAgICAgX2dbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGFzaGJvYXJkT2JqZWN0VHlwZS5JbWFnZV0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5EYXNoYm9hcmRPYmplY3RUeXBlLkltYWdlLFxuICAgICAgICBfZ1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXNoYm9hcmRPYmplY3RUeXBlLkxlZ2VuZF0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5EYXNoYm9hcmRPYmplY3RUeXBlLkxlZ2VuZCxcbiAgICAgICAgX2dbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGFzaGJvYXJkT2JqZWN0VHlwZS5QYWdlRmlsdGVyXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkRhc2hib2FyZE9iamVjdFR5cGUuUGFnZUZpbHRlcixcbiAgICAgICAgX2dbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGFzaGJvYXJkT2JqZWN0VHlwZS5QYXJhbWV0ZXJDb250cm9sXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkRhc2hib2FyZE9iamVjdFR5cGUuUGFyYW1ldGVyQ29udHJvbCxcbiAgICAgICAgX2dbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGFzaGJvYXJkT2JqZWN0VHlwZS5RdWlja0ZpbHRlcl0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5EYXNoYm9hcmRPYmplY3RUeXBlLlF1aWNrRmlsdGVyLFxuICAgICAgICBfZ1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXNoYm9hcmRPYmplY3RUeXBlLlRleHRdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRGFzaGJvYXJkT2JqZWN0VHlwZS5UZXh0LFxuICAgICAgICBfZ1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXNoYm9hcmRPYmplY3RUeXBlLlRpdGxlXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkRhc2hib2FyZE9iamVjdFR5cGUuVGl0bGUsXG4gICAgICAgIF9nW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhc2hib2FyZE9iamVjdFR5cGUuV2ViUGFnZV0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5EYXNoYm9hcmRPYmplY3RUeXBlLldlYlBhZ2UsXG4gICAgICAgIF9nW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhc2hib2FyZE9iamVjdFR5cGUuV29ya3NoZWV0XSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkRhc2hib2FyZE9iamVjdFR5cGUuV29ya3NoZWV0LFxuICAgICAgICBfZykpO1xuICAgIEludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncy5kYXRhVHlwZSA9IG5ldyBhcGlfdXRpbHNfMS5FbnVtQ29udmVydGVyKChfaCA9IHt9LFxuICAgICAgICBfaFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXRhVHlwZS5Cb29sXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkRhdGFUeXBlLkJvb2wsXG4gICAgICAgIF9oW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhdGFUeXBlLkRhdGVdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRGF0YVR5cGUuRGF0ZSxcbiAgICAgICAgX2hbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGF0YVR5cGUuRGF0ZVRpbWVdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRGF0YVR5cGUuRGF0ZVRpbWUsXG4gICAgICAgIF9oW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhdGFUeXBlLkZsb2F0XSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkRhdGFUeXBlLkZsb2F0LFxuICAgICAgICBfaFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXRhVHlwZS5JbnRdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRGF0YVR5cGUuSW50LFxuICAgICAgICBfaFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXRhVHlwZS5TdHJpbmddID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRGF0YVR5cGUuU3RyaW5nLFxuICAgICAgICBfaCkpO1xuICAgIEludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncy5maWx0ZXJVcGRhdGVUeXBlID0gbmV3IGFwaV91dGlsc18xLkVudW1Db252ZXJ0ZXIoKF9qID0ge30sXG4gICAgICAgIF9qW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpbHRlclVwZGF0ZVR5cGUuQWRkXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkZpbHRlclVwZGF0ZVR5cGUuQWRkLFxuICAgICAgICBfalthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWx0ZXJVcGRhdGVUeXBlLkFsbF0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWx0ZXJVcGRhdGVUeXBlLkFsbCxcbiAgICAgICAgX2pbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmlsdGVyVXBkYXRlVHlwZS5SZW1vdmVdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmlsdGVyVXBkYXRlVHlwZS5SZW1vdmUsXG4gICAgICAgIF9qW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpbHRlclVwZGF0ZVR5cGUuUmVwbGFjZV0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWx0ZXJVcGRhdGVUeXBlLlJlcGxhY2UsXG4gICAgICAgIF9qKSk7XG4gICAgSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmFsbG93YWJsZVZhbHVlcyA9IG5ldyBhcGlfdXRpbHNfMS5FbnVtQ29udmVydGVyKChfayA9IHt9LFxuICAgICAgICBfa1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5Eb21haW5SZXN0cmljdGlvblR5cGUuQWxsXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlclZhbHVlVHlwZS5BbGwsXG4gICAgICAgIF9rW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRvbWFpblJlc3RyaWN0aW9uVHlwZS5MaXN0XSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlclZhbHVlVHlwZS5MaXN0LFxuICAgICAgICBfa1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5Eb21haW5SZXN0cmljdGlvblR5cGUuUmFuZ2VdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVyVmFsdWVUeXBlLlJhbmdlLFxuICAgICAgICBfaykpO1xuICAgIEludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncy5kYXRlU3RlcFBlcmlvZCA9IG5ldyBhcGlfdXRpbHNfMS5FbnVtQ29udmVydGVyKChfbCA9IHt9LFxuICAgICAgICBfbFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXRlU3RlcFBlcmlvZC5ZZWFyc10gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5QZXJpb2RUeXBlLlllYXJzLFxuICAgICAgICBfbFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXRlU3RlcFBlcmlvZC5RdWFydGVyc10gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5QZXJpb2RUeXBlLlF1YXJ0ZXJzLFxuICAgICAgICBfbFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXRlU3RlcFBlcmlvZC5Nb250aHNdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuUGVyaW9kVHlwZS5Nb250aHMsXG4gICAgICAgIF9sW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhdGVTdGVwUGVyaW9kLldlZWtzXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLlBlcmlvZFR5cGUuV2Vla3MsXG4gICAgICAgIF9sW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhdGVTdGVwUGVyaW9kLkRheXNdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuUGVyaW9kVHlwZS5EYXlzLFxuICAgICAgICBfbFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXRlU3RlcFBlcmlvZC5Ib3Vyc10gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5QZXJpb2RUeXBlLkhvdXJzLFxuICAgICAgICBfbFthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXRlU3RlcFBlcmlvZC5NaW51dGVzXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLlBlcmlvZFR5cGUuTWludXRlcyxcbiAgICAgICAgX2xbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGF0ZVN0ZXBQZXJpb2QuU2Vjb25kc10gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5QZXJpb2RUeXBlLlNlY29uZHMsXG4gICAgICAgIF9sKSk7XG4gICAgSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmRhdGVSYW5nZVR5cGUgPSBuZXcgYXBpX3V0aWxzXzEuRW51bUNvbnZlcnRlcigoX20gPSB7fSxcbiAgICAgICAgX21bYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGF0ZVJhbmdlVHlwZS5DdXJyZW50XSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkRhdGVSYW5nZVR5cGUuQ3VycmVudCxcbiAgICAgICAgX21bYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGF0ZVJhbmdlVHlwZS5MYXN0XSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkRhdGVSYW5nZVR5cGUuTGFzdCxcbiAgICAgICAgX21bYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRGF0ZVJhbmdlVHlwZS5MYXN0Tl0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5EYXRlUmFuZ2VUeXBlLkxhc3ROLFxuICAgICAgICBfbVthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXRlUmFuZ2VUeXBlLk5leHRdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRGF0ZVJhbmdlVHlwZS5OZXh0LFxuICAgICAgICBfbVthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5EYXRlUmFuZ2VUeXBlLk5leHROXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkRhdGVSYW5nZVR5cGUuTmV4dE4sXG4gICAgICAgIF9tW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhdGVSYW5nZVR5cGUuVG9EYXRlXSA9IGFwaV9leHRlcm5hbF9jb250cmFjdF8xLkRhdGVSYW5nZVR5cGUuVG9EYXRlLFxuICAgICAgICBfbSkpO1xuICAgIEludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncy5maWx0ZXJUeXBlID0gbmV3IGFwaV91dGlsc18xLkVudW1Db252ZXJ0ZXIoKF9vID0ge30sXG4gICAgICAgIF9vW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLkZpbHRlclR5cGUuQ2F0ZWdvcmljYWxdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmlsdGVyVHlwZS5DYXRlZ29yaWNhbCxcbiAgICAgICAgX29bYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmlsdGVyVHlwZS5SYW5nZV0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWx0ZXJUeXBlLlJhbmdlLFxuICAgICAgICBfb1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5GaWx0ZXJUeXBlLlJlbGF0aXZlRGF0ZV0gPSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5GaWx0ZXJUeXBlLlJlbGF0aXZlRGF0ZSxcbiAgICAgICAgX29bYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuRmlsdGVyVHlwZS5IaWVyYXJjaGljYWxdID0gYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEuRmlsdGVyVHlwZS5IaWVyYXJjaGljYWwsXG4gICAgICAgIF9vKSk7XG4gICAgcmV0dXJuIEludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncztcbn0oKSk7XG5leHBvcnRzLkludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncyA9IEludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncztcbnZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mLCBfZywgX2gsIF9qLCBfaywgX2wsIF9tLCBfbztcbi8qIHRzbGludDplbmFibGU6dHlwZWRlZiAqL1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9SW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9FbnVtTWFwcGluZ3MvSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmpzXG4gKiogbW9kdWxlIGlkID0gMzFcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkge1xuICAgIHZhciBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XG4gICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcbiAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxuICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XG4gICAgfTtcbn0pKCk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgQ29udHJhY3QgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0XCIpO1xudmFyIFNlcnZpY2VSZWdpc3RyeV8xID0gcmVxdWlyZShcIi4uL1NlcnZpY2VzL1NlcnZpY2VSZWdpc3RyeVwiKTtcbnZhciBGaWx0ZXIgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEZpbHRlcihfd29ya3NoZWV0TmFtZSwgX2ZpZWxkTmFtZSwgX2ZpbHRlclR5cGUsIF9maWVsZElkKSB7XG4gICAgICAgIHRoaXMuX3dvcmtzaGVldE5hbWUgPSBfd29ya3NoZWV0TmFtZTtcbiAgICAgICAgdGhpcy5fZmllbGROYW1lID0gX2ZpZWxkTmFtZTtcbiAgICAgICAgdGhpcy5fZmlsdGVyVHlwZSA9IF9maWx0ZXJUeXBlO1xuICAgICAgICB0aGlzLl9maWVsZElkID0gX2ZpZWxkSWQ7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGaWx0ZXIucHJvdG90eXBlLCBcIndvcmtzaGVldE5hbWVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXROYW1lO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRmlsdGVyLnByb3RvdHlwZSwgXCJmaWVsZE5hbWVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9maWVsZE5hbWU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGaWx0ZXIucHJvdG90eXBlLCBcImZpZWxkSWRcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9maWVsZElkO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRmlsdGVyLnByb3RvdHlwZSwgXCJmaWx0ZXJUeXBlXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZmlsdGVyVHlwZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgRmlsdGVyLnByb3RvdHlwZS5nZXRGaWVsZEFzeW5jID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQnKTtcbiAgICB9O1xuICAgIHJldHVybiBGaWx0ZXI7XG59KCkpO1xuZXhwb3J0cy5GaWx0ZXIgPSBGaWx0ZXI7XG52YXIgQ2F0ZWdvcmljYWxGaWx0ZXIgPSAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhDYXRlZ29yaWNhbEZpbHRlciwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBDYXRlZ29yaWNhbEZpbHRlcih3b3Jrc2hlZXROYW1lLCBmaWVsZE5hbWUsIGZpZWxkSWQsIGZpbHRlclR5cGUsIF9hcHBsaWVkVmFsdWVzLCBfaXNFeGNsdWRlTW9kZSkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCB3b3Jrc2hlZXROYW1lLCBmaWVsZE5hbWUsIGZpbHRlclR5cGUsIGZpZWxkSWQpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLl9hcHBsaWVkVmFsdWVzID0gX2FwcGxpZWRWYWx1ZXM7XG4gICAgICAgIF90aGlzLl9pc0V4Y2x1ZGVNb2RlID0gX2lzRXhjbHVkZU1vZGU7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KENhdGVnb3JpY2FsRmlsdGVyLnByb3RvdHlwZSwgXCJhcHBsaWVkVmFsdWVzXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fYXBwbGllZFZhbHVlcztcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KENhdGVnb3JpY2FsRmlsdGVyLnByb3RvdHlwZSwgXCJpc0V4Y2x1ZGVNb2RlXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5faXNFeGNsdWRlTW9kZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgQ2F0ZWdvcmljYWxGaWx0ZXIucHJvdG90eXBlLmdldERvbWFpbkFzeW5jID0gZnVuY3Rpb24gKGRvbWFpblR5cGUpIHtcbiAgICAgICAgaWYgKCFkb21haW5UeXBlKSB7XG4gICAgICAgICAgICBkb21haW5UeXBlID0gQ29udHJhY3QuRmlsdGVyRG9tYWluVHlwZS5SZWxldmFudDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgc2VydmljZSA9IFNlcnZpY2VSZWdpc3RyeV8xLkFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlKFwiZmlsdGVyLXNlcnZpY2VcIiAvKiBGaWx0ZXIgKi8pO1xuICAgICAgICByZXR1cm4gc2VydmljZS5nZXRDYXRlZ29yaWNhbERvbWFpbkFzeW5jKHRoaXMuX3dvcmtzaGVldE5hbWUsIHRoaXMuX2ZpZWxkSWQsIGRvbWFpblR5cGUpO1xuICAgIH07XG4gICAgcmV0dXJuIENhdGVnb3JpY2FsRmlsdGVyO1xufShGaWx0ZXIpKTtcbmV4cG9ydHMuQ2F0ZWdvcmljYWxGaWx0ZXIgPSBDYXRlZ29yaWNhbEZpbHRlcjtcbnZhciBSYW5nZUZpbHRlciA9IChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFJhbmdlRmlsdGVyLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFJhbmdlRmlsdGVyKHdvcmtzaGVldE5hbWUsIGZpZWxkTmFtZSwgZmllbGRJZCwgZmlsdGVyVHlwZSwgX21pbiwgX21heCwgX2luY2x1ZGVOdWxsVmFsdWVzKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIHdvcmtzaGVldE5hbWUsIGZpZWxkTmFtZSwgZmlsdGVyVHlwZSwgZmllbGRJZCkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuX21pbiA9IF9taW47XG4gICAgICAgIF90aGlzLl9tYXggPSBfbWF4O1xuICAgICAgICBfdGhpcy5faW5jbHVkZU51bGxWYWx1ZXMgPSBfaW5jbHVkZU51bGxWYWx1ZXM7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFJhbmdlRmlsdGVyLnByb3RvdHlwZSwgXCJtaW5WYWx1ZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21pbjtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFJhbmdlRmlsdGVyLnByb3RvdHlwZSwgXCJtYXhWYWx1ZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21heDtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFJhbmdlRmlsdGVyLnByb3RvdHlwZSwgXCJpbmNsdWRlTnVsbFZhbHVlc1wiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2luY2x1ZGVOdWxsVmFsdWVzO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBSYW5nZUZpbHRlci5wcm90b3R5cGUuZ2V0RG9tYWluQXN5bmMgPSBmdW5jdGlvbiAoZG9tYWluVHlwZSkge1xuICAgICAgICB2YXIgc2VydmljZSA9IFNlcnZpY2VSZWdpc3RyeV8xLkFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlKFwiZmlsdGVyLXNlcnZpY2VcIiAvKiBGaWx0ZXIgKi8pO1xuICAgICAgICBpZiAoIWRvbWFpblR5cGUpIHtcbiAgICAgICAgICAgIGRvbWFpblR5cGUgPSBDb250cmFjdC5GaWx0ZXJEb21haW5UeXBlLlJlbGV2YW50O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzZXJ2aWNlLmdldFJhbmdlRG9tYWluQXN5bmModGhpcy5fd29ya3NoZWV0TmFtZSwgdGhpcy5fZmllbGRJZCwgZG9tYWluVHlwZSk7XG4gICAgfTtcbiAgICByZXR1cm4gUmFuZ2VGaWx0ZXI7XG59KEZpbHRlcikpO1xuZXhwb3J0cy5SYW5nZUZpbHRlciA9IFJhbmdlRmlsdGVyO1xudmFyIFJlbGF0aXZlRGF0ZUZpbHRlciA9IChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFJlbGF0aXZlRGF0ZUZpbHRlciwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBSZWxhdGl2ZURhdGVGaWx0ZXIod29ya3NoZWV0TmFtZSwgZmllbGROYW1lLCBmaWVsZElkLCBmaWx0ZXJUeXBlLCBfYW5jaG9yRGF0ZSwgX3BlcmlvZFR5cGUsIF9yYW5nZVR5cGUsIF9yYW5nZU4pIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgd29ya3NoZWV0TmFtZSwgZmllbGROYW1lLCBmaWx0ZXJUeXBlLCBmaWVsZElkKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5fYW5jaG9yRGF0ZSA9IF9hbmNob3JEYXRlO1xuICAgICAgICBfdGhpcy5fcGVyaW9kVHlwZSA9IF9wZXJpb2RUeXBlO1xuICAgICAgICBfdGhpcy5fcmFuZ2VUeXBlID0gX3JhbmdlVHlwZTtcbiAgICAgICAgX3RoaXMuX3JhbmdlTiA9IF9yYW5nZU47XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFJlbGF0aXZlRGF0ZUZpbHRlci5wcm90b3R5cGUsIFwiYW5jaG9yRGF0ZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2FuY2hvckRhdGU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSZWxhdGl2ZURhdGVGaWx0ZXIucHJvdG90eXBlLCBcInBlcmlvZFR5cGVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9wZXJpb2RUeXBlO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUmVsYXRpdmVEYXRlRmlsdGVyLnByb3RvdHlwZSwgXCJyYW5nZVR5cGVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9yYW5nZVR5cGU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSZWxhdGl2ZURhdGVGaWx0ZXIucHJvdG90eXBlLCBcInJhbmdlTlwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3JhbmdlTjtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgcmV0dXJuIFJlbGF0aXZlRGF0ZUZpbHRlcjtcbn0oRmlsdGVyKSk7XG5leHBvcnRzLlJlbGF0aXZlRGF0ZUZpbHRlciA9IFJlbGF0aXZlRGF0ZUZpbHRlcjtcbnZhciBDYXRlZ29yaWNhbERvbWFpbiA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gQ2F0ZWdvcmljYWxEb21haW4oX3ZhbHVlcywgX2RvbWFpblR5cGUpIHtcbiAgICAgICAgdGhpcy5fdmFsdWVzID0gX3ZhbHVlcztcbiAgICAgICAgdGhpcy5fZG9tYWluVHlwZSA9IF9kb21haW5UeXBlO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQ2F0ZWdvcmljYWxEb21haW4ucHJvdG90eXBlLCBcInZhbHVlc1wiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlcztcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KENhdGVnb3JpY2FsRG9tYWluLnByb3RvdHlwZSwgXCJ0eXBlXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZG9tYWluVHlwZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgcmV0dXJuIENhdGVnb3JpY2FsRG9tYWluO1xufSgpKTtcbmV4cG9ydHMuQ2F0ZWdvcmljYWxEb21haW4gPSBDYXRlZ29yaWNhbERvbWFpbjtcbnZhciBSYW5nZURvbWFpbiA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gUmFuZ2VEb21haW4oX21pbiwgX21heCwgX2RvbWFpblR5cGUpIHtcbiAgICAgICAgdGhpcy5fbWluID0gX21pbjtcbiAgICAgICAgdGhpcy5fbWF4ID0gX21heDtcbiAgICAgICAgdGhpcy5fZG9tYWluVHlwZSA9IF9kb21haW5UeXBlO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUmFuZ2VEb21haW4ucHJvdG90eXBlLCBcInR5cGVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kb21haW5UeXBlO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUmFuZ2VEb21haW4ucHJvdG90eXBlLCBcIm1pblwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21pbjtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFJhbmdlRG9tYWluLnByb3RvdHlwZSwgXCJtYXhcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9tYXg7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIHJldHVybiBSYW5nZURvbWFpbjtcbn0oKSk7XG5leHBvcnRzLlJhbmdlRG9tYWluID0gUmFuZ2VEb21haW47XG4vLyMgc291cmNlTWFwcGluZ1VSTD1GaWx0ZXJNb2RlbHMuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL01vZGVscy9GaWx0ZXJNb2RlbHMuanNcbiAqKiBtb2R1bGUgaWQgPSAzMlxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgU2VydmljZVJlZ2lzdHJ5SW1wbCA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gU2VydmljZVJlZ2lzdHJ5SW1wbCgpIHtcbiAgICAgICAgdGhpcy5fc2VydmljZXMgPSB7fTtcbiAgICB9XG4gICAgU2VydmljZVJlZ2lzdHJ5SW1wbC5wcm90b3R5cGUucmVnaXN0ZXJTZXJ2aWNlID0gZnVuY3Rpb24gKHNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5fc2VydmljZXNbc2VydmljZS5zZXJ2aWNlTmFtZV0gPSBzZXJ2aWNlO1xuICAgIH07XG4gICAgU2VydmljZVJlZ2lzdHJ5SW1wbC5wcm90b3R5cGUuZ2V0U2VydmljZSA9IGZ1bmN0aW9uIChzZXJ2aWNlTmFtZSkge1xuICAgICAgICBpZiAoIXRoaXMuX3NlcnZpY2VzLmhhc093blByb3BlcnR5KHNlcnZpY2VOYW1lKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTm8gU2VydmljZSBcIiArIHNlcnZpY2VOYW1lICsgXCIgaXMgcmVnaXN0ZXJlZFwiKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fc2VydmljZXNbc2VydmljZU5hbWVdO1xuICAgIH07XG4gICAgcmV0dXJuIFNlcnZpY2VSZWdpc3RyeUltcGw7XG59KCkpO1xuLyoqXG4gKiBzdGF0aWMgY2xhc3MgdXNlZCBmb3IgZ2V0dGluZyBhY2Nlc3MgdG8gdGhlIHNpbmdsZSBpbnN0YW5jZVxuICogb2YgdGhlIEFwaVNlcnZpY2VSZWdpc3RyeVxuICovXG52YXIgQXBpU2VydmljZVJlZ2lzdHJ5ID0gKGZ1bmN0aW9uICgpIHtcbiAgICAvLyBQcml2YXRlIHRvIGF2b2lkIGFueW9uZSBjb25zdHJ1Y3RpbmcgdGhpc1xuICAgIGZ1bmN0aW9uIEFwaVNlcnZpY2VSZWdpc3RyeSgpIHtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFwaVNlcnZpY2VSZWdpc3RyeSwgXCJpbnN0YW5jZVwiLCB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBHZXRzIHRoZSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhlIFNlcnZpY2VSZWdpc3RyeVxuICAgICAgICAgKi9cbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBpZiAoIXdpbmRvdy5fX3RhYmxlYXVBcGlTZXJ2aWNlUmVnaXN0cnkpIHtcbiAgICAgICAgICAgICAgICBBcGlTZXJ2aWNlUmVnaXN0cnkuc2V0SW5zdGFuY2UobmV3IFNlcnZpY2VSZWdpc3RyeUltcGwoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXdpbmRvdy5fX3RhYmxlYXVBcGlTZXJ2aWNlUmVnaXN0cnkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Fzc2lnbmluZyBzZXJ2aWNlIHJlZ2lzdHJ5IGZhaWxlZCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5fX3RhYmxlYXVBcGlTZXJ2aWNlUmVnaXN0cnk7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIC8qKlxuICAgICAqIEhlbHBlciBtZXRob2QgdG8gb3ZlcnJpZGUgdGhlIHJlZ2lzdHJ5IGluc3RhbmNlLiBDYW4gYmUgdXNlZCBieSB1bml0IHRlc3RzXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1NlcnZpY2VSZWdpc3RyeX0gc2VydmljZVJlZ2lzdHJ5IFRoZSBuZXcgcmVnaXN0cnlcbiAgICAgKi9cbiAgICBBcGlTZXJ2aWNlUmVnaXN0cnkuc2V0SW5zdGFuY2UgPSBmdW5jdGlvbiAoc2VydmljZVJlZ2lzdHJ5KSB7XG4gICAgICAgIHdpbmRvdy5fX3RhYmxlYXVBcGlTZXJ2aWNlUmVnaXN0cnkgPSBzZXJ2aWNlUmVnaXN0cnk7XG4gICAgfTtcbiAgICByZXR1cm4gQXBpU2VydmljZVJlZ2lzdHJ5O1xufSgpKTtcbmV4cG9ydHMuQXBpU2VydmljZVJlZ2lzdHJ5ID0gQXBpU2VydmljZVJlZ2lzdHJ5O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2VydmljZVJlZ2lzdHJ5LmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9TZXJ2aWNlcy9TZXJ2aWNlUmVnaXN0cnkuanNcbiAqKiBtb2R1bGUgaWQgPSAzM1xuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgQ29udHJhY3QgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0XCIpO1xudmFyIGFwaV9pbnRlcm5hbF9jb250cmFjdF8xID0gcmVxdWlyZShcIkB0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdFwiKTtcbnZhciBHZXREYXRhTW9kZWxzXzEgPSByZXF1aXJlKFwiLi4vLi4vTW9kZWxzL0dldERhdGFNb2RlbHNcIik7XG52YXIgR2V0RGF0YVNlcnZpY2VfMSA9IHJlcXVpcmUoXCIuLi9HZXREYXRhU2VydmljZVwiKTtcbnZhciBHZXREYXRhU2VydmljZUltcGwgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEdldERhdGFTZXJ2aWNlSW1wbChkaXNwYXRjaGVyKSB7XG4gICAgICAgIHRoaXMuX2Rpc3BhdGNoZXIgPSBkaXNwYXRjaGVyO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoR2V0RGF0YVNlcnZpY2VJbXBsLnByb3RvdHlwZSwgXCJzZXJ2aWNlTmFtZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIFwiZ2V0LWRhdGEtc2VydmljZVwiIC8qIEdldERhdGEgKi87XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIEdldERhdGFTZXJ2aWNlSW1wbC5wcm90b3R5cGUuZ2V0VW5kZXJseWluZ0RhdGFBc3luYyA9IGZ1bmN0aW9uICh2aXN1YWxJZCwgZ2V0VHlwZSwgaWdub3JlQWxpYXNlcywgaWdub3JlU2VsZWN0aW9uLCBpbmNsdWRlQWxsQ29sdW1ucywgbWF4Um93cykge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICAvLyBDcmVhdGUgYWxsIG9mIG91ciBwYXJhbWV0ZXJzXG4gICAgICAgIHZhciB2ZXJiID0gZ2V0VHlwZSA9PT0gR2V0RGF0YVNlcnZpY2VfMS5HZXREYXRhVHlwZS5TdW1tYXJ5ID8gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuVmVyYklkLkdldERhdGFTdW1tYXJ5RGF0YSA6IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlZlcmJJZC5HZXRVbmRlcmx5aW5nRGF0YTtcbiAgICAgICAgdmFyIHBhcmFtZXRlcnMgPSB7fTtcbiAgICAgICAgcGFyYW1ldGVyc1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5WaXN1YWxJZF0gPSB2aXN1YWxJZDtcbiAgICAgICAgcGFyYW1ldGVyc1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5JZ25vcmVBbGlhc2VzXSA9IGlnbm9yZUFsaWFzZXM7XG4gICAgICAgIHBhcmFtZXRlcnNbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuSWdub3JlU2VsZWN0aW9uXSA9IGlnbm9yZVNlbGVjdGlvbjtcbiAgICAgICAgcGFyYW1ldGVyc1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5JbmNsdWRlQWxsQ29sdW1uc10gPSBpbmNsdWRlQWxsQ29sdW1ucztcbiAgICAgICAgcGFyYW1ldGVyc1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5NYXhSb3dzXSA9IG1heFJvd3M7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUodmVyYiwgcGFyYW1ldGVycykudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHZhciByZXNwb25zZURhdGEgPSByZXNwb25zZS5yZXN1bHQ7XG4gICAgICAgICAgICByZXR1cm4gX3RoaXMucHJvY2Vzc1Jlc3VsdHNUYWJsZShyZXNwb25zZURhdGEuZGF0YSwgcmVzcG9uc2VEYXRhLmlzU3VtbWFyeSk7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgR2V0RGF0YVNlcnZpY2VJbXBsLnByb3RvdHlwZS5nZXRTZWxlY3RlZE1hcmtzQXN5bmMgPSBmdW5jdGlvbiAodmlzdWFsSWQpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIHBhcmFtZXRlcnMgPSAoX2EgPSB7fSwgX2FbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuVmlzdWFsSWRdID0gdmlzdWFsSWQsIF9hKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc3BhdGNoZXIuZXhlY3V0ZShhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5WZXJiSWQuR2V0U2VsZWN0ZWRNYXJrcywgcGFyYW1ldGVycykudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHZhciByZXNwb25zZURhdGEgPSByZXNwb25zZS5yZXN1bHQ7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGRhdGE6IHJlc3BvbnNlRGF0YS5kYXRhLm1hcChmdW5jdGlvbiAodGFibGUpIHsgcmV0dXJuIF90aGlzLnByb2Nlc3NSZXN1bHRzVGFibGUodGFibGUsIHRydWUpOyB9KVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBfYTtcbiAgICB9O1xuICAgIEdldERhdGFTZXJ2aWNlSW1wbC5wcm90b3R5cGUuZ2V0SGlnaGxpZ2h0ZWRNYXJrc0FzeW5jID0gZnVuY3Rpb24gKHZpc3VhbElkKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBwYXJhbWV0ZXJzID0gKF9hID0ge30sIF9hW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLlZpc3VhbElkXSA9IHZpc3VhbElkLCBfYSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUoYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuVmVyYklkLkdldEhpZ2hsaWdodGVkTWFya3MsIHBhcmFtZXRlcnMpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICB2YXIgcmVzcG9uc2VEYXRhID0gcmVzcG9uc2UucmVzdWx0O1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBkYXRhOiByZXNwb25zZURhdGEuZGF0YS5tYXAoZnVuY3Rpb24gKHRhYmxlKSB7IHJldHVybiBfdGhpcy5wcm9jZXNzUmVzdWx0c1RhYmxlKHRhYmxlLCB0cnVlKTsgfSlcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgX2E7XG4gICAgfTtcbiAgICBHZXREYXRhU2VydmljZUltcGwucHJvdG90eXBlLmdldERhdGFTb3VyY2VEYXRhQXN5bmMgPSBmdW5jdGlvbiAoZGF0YVNvdXJjZUlkLCBpZ25vcmVBbGlhc2VzLCBtYXhSb3dzLCBjb2x1bW5zVG9JbmNsdWRlKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciBwYXJhbWV0ZXJzID0gKF9hID0ge30sXG4gICAgICAgICAgICBfYVthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5EYXRhU291cmNlSWRdID0gZGF0YVNvdXJjZUlkLFxuICAgICAgICAgICAgX2FbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuSWdub3JlQWxpYXNlc10gPSBpZ25vcmVBbGlhc2VzLFxuICAgICAgICAgICAgX2FbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuTWF4Um93c10gPSBtYXhSb3dzLFxuICAgICAgICAgICAgX2FbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuQ29sdW1uc1RvSW5jbHVkZV0gPSBjb2x1bW5zVG9JbmNsdWRlLFxuICAgICAgICAgICAgX2EpO1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGF0Y2hlci5leGVjdXRlKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlZlcmJJZC5HZXREYXRhU291cmNlRGF0YSwgcGFyYW1ldGVycykudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHZhciByZXNwb25zZURhdGEgPSByZXNwb25zZS5yZXN1bHQ7XG4gICAgICAgICAgICByZXR1cm4gX3RoaXMucHJvY2Vzc1Jlc3VsdHNUYWJsZShyZXNwb25zZURhdGEuZGF0YSwgZmFsc2UpO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIF9hO1xuICAgIH07XG4gICAgR2V0RGF0YVNlcnZpY2VJbXBsLnByb3RvdHlwZS5wcm9jZXNzUmVzdWx0c1RhYmxlID0gZnVuY3Rpb24gKHJlc3BvbnNlRGF0YSwgaXNTdW1tYXJ5KSB7XG4gICAgICAgIHZhciBoZWFkZXJzID0gcmVzcG9uc2VEYXRhLmhlYWRlcnMubWFwKGZ1bmN0aW9uIChoKSB7IHJldHVybiBuZXcgR2V0RGF0YU1vZGVsc18xLkNvbHVtbihoLmZpZWxkQ2FwdGlvbiwgQ29udHJhY3QuRGF0YVR5cGUuU3RyaW5nIC8qaC5EYXRhVHlwZSovLCBoLmlzUmVmZXJlbmNlZCwgaC5pbmRleCk7IH0pO1xuICAgICAgICAvLyBUT0RPIFRoaXMgc2hvdWxkIGJlIGNvbnRyb2xsZWQgYnkgYSBmbGFnIGluZGljYXRpbmcgd2hldGhlciB0aGlzIGFwaSB3aWxsIHJlc3BvbmQgbWFya3MgaW5mbyBvciBub3RcbiAgICAgICAgdmFyIG1hcmtzO1xuICAgICAgICBpZiAocmVzcG9uc2VEYXRhLm1hcmtzKSB7XG4gICAgICAgICAgICBtYXJrcyA9IHJlc3BvbnNlRGF0YS5tYXJrcy5tYXAoZnVuY3Rpb24gKGgpIHsgcmV0dXJuIG5ldyBHZXREYXRhTW9kZWxzXzEuTWFya0luZm8oaC50eXBlLCBoLmNvbG9yLCBoLnR1cGxlSWQpOyB9KTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdGFibGUgPSByZXNwb25zZURhdGEuZGF0YVRhYmxlLm1hcChmdW5jdGlvbiAocm93KSB7XG4gICAgICAgICAgICByZXR1cm4gcm93Lm1hcChmdW5jdGlvbiAoY2VsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgR2V0RGF0YU1vZGVsc18xLkRhdGFWYWx1ZShjZWxsLnZhbHVlLCBjZWxsLmZvcm1hdHRlZFZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKG1hcmtzKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEdldERhdGFNb2RlbHNfMS5EYXRhVGFibGUodGFibGUsIGhlYWRlcnMsIHRhYmxlLmxlbmd0aCwgaXNTdW1tYXJ5LCBtYXJrcyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBHZXREYXRhTW9kZWxzXzEuRGF0YVRhYmxlKHRhYmxlLCBoZWFkZXJzLCB0YWJsZS5sZW5ndGgsIGlzU3VtbWFyeSk7XG4gICAgfTtcbiAgICByZXR1cm4gR2V0RGF0YVNlcnZpY2VJbXBsO1xufSgpKTtcbmV4cG9ydHMuR2V0RGF0YVNlcnZpY2VJbXBsID0gR2V0RGF0YVNlcnZpY2VJbXBsO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9R2V0RGF0YVNlcnZpY2VJbXBsLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9TZXJ2aWNlcy9pbXBsL0dldERhdGFTZXJ2aWNlSW1wbC5qc1xuICoqIG1vZHVsZSBpZCA9IDM0XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBSZWdpc3RyYXRpb24gPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFJlZ2lzdHJhdGlvbihfZmlsdGVyRm4sIF9jYWxsYmFja0ZuKSB7XG4gICAgICAgIHRoaXMuX2ZpbHRlckZuID0gX2ZpbHRlckZuO1xuICAgICAgICB0aGlzLl9jYWxsYmFja0ZuID0gX2NhbGxiYWNrRm47XG4gICAgICAgIC8vIE5vdGhpbmcgSGVyZVxuICAgIH1cbiAgICBSZWdpc3RyYXRpb24ucHJvdG90eXBlLm9uTm90aWZpY2F0aW9uID0gZnVuY3Rpb24gKG5vdGlmaWNhdGlvbk1vZGVsKSB7XG4gICAgICAgIGlmICh0aGlzLl9maWx0ZXJGbihub3RpZmljYXRpb25Nb2RlbCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2NhbGxiYWNrRm4obm90aWZpY2F0aW9uTW9kZWwpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4gUmVnaXN0cmF0aW9uO1xufSgpKTtcbnZhciBOb3RpZmljYXRpb25TZXJ2aWNlSW1wbCA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gTm90aWZpY2F0aW9uU2VydmljZUltcGwoZGlzcGF0Y2hlcikge1xuICAgICAgICB0aGlzLmRpc3BhdGNoZXIgPSBkaXNwYXRjaGVyO1xuICAgICAgICB0aGlzLl9oYW5kbGVycyA9IHt9O1xuICAgICAgICB0aGlzLmRpc3BhdGNoZXIucmVnaXN0ZXJOb3RpZmljYXRpb25IYW5kbGVyKHRoaXMub25Ob3RpZmljYXRpb24uYmluZCh0aGlzKSk7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShOb3RpZmljYXRpb25TZXJ2aWNlSW1wbC5wcm90b3R5cGUsIFwic2VydmljZU5hbWVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBcIm5vdGlmaWNhdGlvbi1zZXJ2aWNlXCIgLyogTm90aWZpY2F0aW9uICovO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBOb3RpZmljYXRpb25TZXJ2aWNlSW1wbC5wcm90b3R5cGUucmVnaXN0ZXJIYW5kbGVyID0gZnVuY3Rpb24gKGlkLCBmaWx0ZXJGbiwgaGFuZGxlcikge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgaGFuZGxlcnMgPSB0aGlzLl9oYW5kbGVyc1tpZF0gfHwgbmV3IEFycmF5KCk7XG4gICAgICAgIHZhciByZWdpc3RyYXRpb24gPSBuZXcgUmVnaXN0cmF0aW9uKGZpbHRlckZuLCBoYW5kbGVyKTtcbiAgICAgICAgaGFuZGxlcnMucHVzaChyZWdpc3RyYXRpb24pO1xuICAgICAgICB0aGlzLl9oYW5kbGVyc1tpZF0gPSBoYW5kbGVycztcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHsgcmV0dXJuIF90aGlzLnJlbW92ZVJlZ2lzdHJhdGlvbihpZCwgcmVnaXN0cmF0aW9uKTsgfTtcbiAgICB9O1xuICAgIE5vdGlmaWNhdGlvblNlcnZpY2VJbXBsLnByb3RvdHlwZS5oYXNIYW5kbGVyc0Zvck5vdGlmaWNhdGlvblR5cGUgPSBmdW5jdGlvbiAoaWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhbmRsZXJzLmhhc093blByb3BlcnR5KGlkKTtcbiAgICB9O1xuICAgIE5vdGlmaWNhdGlvblNlcnZpY2VJbXBsLnByb3RvdHlwZS5vbk5vdGlmaWNhdGlvbiA9IGZ1bmN0aW9uIChub3RpZmljYXRpb24pIHtcbiAgICAgICAgaWYgKCF0aGlzLmhhc0hhbmRsZXJzRm9yTm90aWZpY2F0aW9uVHlwZShub3RpZmljYXRpb24ubm90aWZpY2F0aW9uSWQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gR28gdGhyb3VnaCBhbmQgY2hlY2sgZm9yIGFsbCB0aGUgaGFuZGxlcnMgb2YgdGhpcyBwYXJ0aWN1bGFyIG5vdGlmaWNhdGlvblxuICAgICAgICB0aGlzLl9oYW5kbGVyc1tub3RpZmljYXRpb24ubm90aWZpY2F0aW9uSWRdLmZvckVhY2goZnVuY3Rpb24gKGgpIHsgcmV0dXJuIGgub25Ob3RpZmljYXRpb24obm90aWZpY2F0aW9uLmRhdGEpOyB9KTtcbiAgICB9O1xuICAgIE5vdGlmaWNhdGlvblNlcnZpY2VJbXBsLnByb3RvdHlwZS5yZW1vdmVSZWdpc3RyYXRpb24gPSBmdW5jdGlvbiAoaWQsIHJlZ2lzdHJhdGlvbikge1xuICAgICAgICBpZiAoIXRoaXMuaGFzSGFuZGxlcnNGb3JOb3RpZmljYXRpb25UeXBlKGlkKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2hhbmRsZXJzW2lkXSA9IHRoaXMuX2hhbmRsZXJzW2lkXS5maWx0ZXIoZnVuY3Rpb24gKHJlZykgeyByZXR1cm4gcmVnICE9PSByZWdpc3RyYXRpb247IH0pO1xuICAgIH07XG4gICAgcmV0dXJuIE5vdGlmaWNhdGlvblNlcnZpY2VJbXBsO1xufSgpKTtcbmV4cG9ydHMuTm90aWZpY2F0aW9uU2VydmljZUltcGwgPSBOb3RpZmljYXRpb25TZXJ2aWNlSW1wbDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPU5vdGlmaWNhdGlvblNlcnZpY2VJbXBsLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9TZXJ2aWNlcy9pbXBsL05vdGlmaWNhdGlvblNlcnZpY2VJbXBsLmpzXG4gKiogbW9kdWxlIGlkID0gMzVcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIGFwaV9pbnRlcm5hbF9jb250cmFjdF8xID0gcmVxdWlyZShcIkB0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdFwiKTtcbnZhciBQYXJhbWV0ZXJJbXBsXzEgPSByZXF1aXJlKFwiLi4vLi4vSW50ZXJuYWwvUGFyYW1ldGVySW1wbFwiKTtcbnZhciBQYXJhbWV0ZXJfMSA9IHJlcXVpcmUoXCIuLi8uLi9QYXJhbWV0ZXJcIik7XG52YXIgUGFyYW1ldGVyc1NlcnZpY2VJbXBsID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBQYXJhbWV0ZXJzU2VydmljZUltcGwoZGlzcGF0Y2hlcikge1xuICAgICAgICB0aGlzLmRpc3BhdGNoZXIgPSBkaXNwYXRjaGVyO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUGFyYW1ldGVyc1NlcnZpY2VJbXBsLnByb3RvdHlwZSwgXCJzZXJ2aWNlTmFtZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIFwicGFyYW1ldGVycy1zZXJ2aWNlXCIgLyogUGFyYW1ldGVycyAqLztcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgUGFyYW1ldGVyc1NlcnZpY2VJbXBsLnByb3RvdHlwZS5nZXRQYXJhbWV0ZXJzRm9yU2hlZXRBc3luYyA9IGZ1bmN0aW9uIChzaGVldFBhdGgsIHNoZWV0KSB7XG4gICAgICAgIHZhciBwYXJhbWV0ZXJzID0gKF9hID0ge30sXG4gICAgICAgICAgICBfYVthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5TaGVldFBhdGhdID0gc2hlZXRQYXRoLFxuICAgICAgICAgICAgX2EpO1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaGVyLmV4ZWN1dGUoYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuVmVyYklkLkdldFBhcmFtZXRlcnNGb3JTaGVldCwgcGFyYW1ldGVycykudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIC8vIFRPRE8gLSBDaGVjayBmb3IgZXJyb3JcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSByZXNwb25zZS5yZXN1bHQ7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0Lm1hcChmdW5jdGlvbiAocGFyYW1ldGVySW5mbykge1xuICAgICAgICAgICAgICAgIHZhciBpbXBsID0gbmV3IFBhcmFtZXRlckltcGxfMS5QYXJhbWV0ZXJJbXBsKHBhcmFtZXRlckluZm8pO1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUGFyYW1ldGVyXzEuUGFyYW1ldGVyKGltcGwsIHNoZWV0KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIF9hO1xuICAgIH07XG4gICAgUGFyYW1ldGVyc1NlcnZpY2VJbXBsLnByb3RvdHlwZS5jaGFuZ2VQYXJhbWV0ZXJWYWx1ZUFzeW5jID0gZnVuY3Rpb24gKGZpZWxkTmFtZSwgbmV3VmFsdWUpIHtcbiAgICAgICAgdmFyIHBhcmFtZXRlcnMgPSAoX2EgPSB7fSxcbiAgICAgICAgICAgIF9hW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLlBhcmFtZXRlckZpZWxkTmFtZV0gPSBmaWVsZE5hbWUsXG4gICAgICAgICAgICBfYVthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5QYXJhbWV0ZXJWYWx1ZV0gPSBuZXdWYWx1ZSxcbiAgICAgICAgICAgIF9hKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hlci5leGVjdXRlKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlZlcmJJZC5DaGFuZ2VQYXJhbWV0ZXJWYWx1ZSwgcGFyYW1ldGVycykudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHtcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSByZXNwb25zZS5yZXN1bHQ7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIF9hO1xuICAgIH07XG4gICAgUGFyYW1ldGVyc1NlcnZpY2VJbXBsLnByb3RvdHlwZS5maW5kUGFyYW1ldGVyQnlOYW1lQXN5bmMgPSBmdW5jdGlvbiAobmFtZSwgc2hlZXQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluZFBhcmFtZXRlckFzeW5jKHNoZWV0LCBuYW1lLCB1bmRlZmluZWQpO1xuICAgIH07XG4gICAgUGFyYW1ldGVyc1NlcnZpY2VJbXBsLnByb3RvdHlwZS5maW5kUGFyYW1ldGVyQnlHbG9iYWxGaWVsZE5hbWVBc3luYyA9IGZ1bmN0aW9uIChmaWVsZE5hbWUsIHNoZWV0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbmRQYXJhbWV0ZXJBc3luYyhzaGVldCwgdW5kZWZpbmVkLCBmaWVsZE5hbWUpO1xuICAgIH07XG4gICAgUGFyYW1ldGVyc1NlcnZpY2VJbXBsLnByb3RvdHlwZS5maW5kUGFyYW1ldGVyQXN5bmMgPSBmdW5jdGlvbiAoc2hlZXQsIG5hbWUsIGZpZWxkTmFtZSkge1xuICAgICAgICB2YXIgcGFyYW1ldGVycyA9IHt9O1xuICAgICAgICBpZiAobmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJzW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLlBhcmFtZXRlckNhcHRpb25dID0gbmFtZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChmaWVsZE5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcGFyYW1ldGVyc1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5QYXJhbWV0ZXJGaWVsZE5hbWVdID0gZmllbGROYW1lO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHJlcXVpcmUgZmllbGQgbmFtZSBvciBjYXB0aW9uJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hlci5leGVjdXRlKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlZlcmJJZC5GaW5kUGFyYW1ldGVyLCBwYXJhbWV0ZXJzKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgdmFyIGluc3RhbmNlT2ZQYXJhbWV0ZXJJbmZvID0gZnVuY3Rpb24gKG9iamVjdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZmllbGROYW1lJyBpbiBvYmplY3Q7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBjaGVjayB0byBzZWUgaWYgd2UgZ290IGEgdmFsaWQgcmVzcG9uc2UgYmFjayBhZ2FpblxuICAgICAgICAgICAgaWYgKGluc3RhbmNlT2ZQYXJhbWV0ZXJJbmZvKHJlc3BvbnNlLnJlc3VsdCkpIHtcbiAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gcmVzcG9uc2UucmVzdWx0O1xuICAgICAgICAgICAgICAgIHZhciBpbXBsID0gbmV3IFBhcmFtZXRlckltcGxfMS5QYXJhbWV0ZXJJbXBsKHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQYXJhbWV0ZXJfMS5QYXJhbWV0ZXIoaW1wbCwgc2hlZXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICByZXR1cm4gUGFyYW1ldGVyc1NlcnZpY2VJbXBsO1xufSgpKTtcbmV4cG9ydHMuUGFyYW1ldGVyc1NlcnZpY2VJbXBsID0gUGFyYW1ldGVyc1NlcnZpY2VJbXBsO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9UGFyYW1ldGVyc1NlcnZpY2VJbXBsLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9TZXJ2aWNlcy9pbXBsL1BhcmFtZXRlcnNTZXJ2aWNlSW1wbC5qc1xuICoqIG1vZHVsZSBpZCA9IDM2XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBDb250cmFjdCA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3RcIik7XG52YXIgYXBpX2ludGVybmFsX2NvbnRyYWN0XzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0XCIpO1xudmFyIGFwaV91dGlsc18xID0gcmVxdWlyZShcIkB0YWJsZWF1L2FwaS11dGlsc1wiKTtcbnZhciBJbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3NfMSA9IHJlcXVpcmUoXCIuLi9FbnVtTWFwcGluZ3MvSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzXCIpO1xudmFyIFBhcmFtZXRlckNoYW5nZWRFdmVudF8xID0gcmVxdWlyZShcIi4uL0V2ZW50cy9QYXJhbWV0ZXJDaGFuZ2VkRXZlbnRcIik7XG52YXIgR2V0RGF0YU1vZGVsc18xID0gcmVxdWlyZShcIi4uL01vZGVscy9HZXREYXRhTW9kZWxzXCIpO1xudmFyIFNlcnZpY2VSZWdpc3RyeV8xID0gcmVxdWlyZShcIi4uL1NlcnZpY2VzL1NlcnZpY2VSZWdpc3RyeVwiKTtcbnZhciBTaW5nbGVFdmVudE1hbmFnZXJJbXBsXzEgPSByZXF1aXJlKFwiLi9TaW5nbGVFdmVudE1hbmFnZXJJbXBsXCIpO1xudmFyIFBhcmFtZXRlckltcGwgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFBhcmFtZXRlckltcGwocGFyYW1ldGVySW5mbykge1xuICAgICAgICB0aGlzLnNldFBhcmFtZXRlckluZm8ocGFyYW1ldGVySW5mbyk7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShQYXJhbWV0ZXJJbXBsLnByb3RvdHlwZSwgXCJuYW1lXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fcGFyYW1ldGVySW5mby5uYW1lO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUGFyYW1ldGVySW1wbC5wcm90b3R5cGUsIFwiY3VycmVudFZhbHVlXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEdldERhdGFNb2RlbHNfMS5EYXRhVmFsdWUodGhpcy5fcGFyYW1ldGVySW5mby5jdXJyZW50VmFsdWUudmFsdWUsIHRoaXMuX3BhcmFtZXRlckluZm8uY3VycmVudFZhbHVlLmZvcm1hdHRlZFZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFBhcmFtZXRlckltcGwucHJvdG90eXBlLCBcImRhdGFUeXBlXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzXzEuSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmRhdGFUeXBlLmNvbnZlcnQodGhpcy5fcGFyYW1ldGVySW5mby5kYXRhVHlwZSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShQYXJhbWV0ZXJJbXBsLnByb3RvdHlwZSwgXCJhbGxvd2FibGVWYWx1ZXNcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9hbGxvd2FibGVWYWx1ZXM7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIFBhcmFtZXRlckltcGwucHJvdG90eXBlLmNoYW5nZVZhbHVlQXN5bmMgPSBmdW5jdGlvbiAobmV3VmFsdWUpIHtcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcbiAgICAgICAgdmFyIGNvZXJjZWRWYWx1ZSA9IGFwaV91dGlsc18xLlBhcmFtLnNlcmlhbGl6ZVBhcmFtdGVyVmFsdWUobmV3VmFsdWUpO1xuICAgICAgICB2YXIgcGFyYW1ldGVyc1NlcnZpY2UgPSBTZXJ2aWNlUmVnaXN0cnlfMS5BcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZShcInBhcmFtZXRlcnMtc2VydmljZVwiIC8qIFBhcmFtZXRlcnMgKi8pO1xuICAgICAgICByZXR1cm4gcGFyYW1ldGVyc1NlcnZpY2UuY2hhbmdlUGFyYW1ldGVyVmFsdWVBc3luYyh0aGlzLl9nbG9iYWxGaWVsZE5hbWUsIGNvZXJjZWRWYWx1ZSkudGhlbihmdW5jdGlvbiAocGFyYW1ldGVySW5mbykge1xuICAgICAgICAgICAgX3RoaXMuc2V0UGFyYW1ldGVySW5mbyhwYXJhbWV0ZXJJbmZvKTtcbiAgICAgICAgICAgIHJldHVybiBfdGhpcy5jdXJyZW50VmFsdWU7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogSGVscGVyIG1ldGhvZCB3aGljaCBnb2VzIHRocm91Z2ggYW5kIHJlZ2lzdGVycyBlYWNoIGV2ZW50IHR5cGUgdGhpcyBpbXBsIGtub3dzIGFib3V0XG4gICAgICogd2l0aCB0aGUgTm90aWZpY2F0aW9uU2VydmljZS4gSXQgcmV0dXJucyBhbiBhcnJheSBvZiBTaW5nbGVFdmVudE1hbmFnZXIgb2JqZWN0cyB3aGljaFxuICAgICAqIGNhbiB0aGVuIGJlIHBhc3NlZCB0byBhbiBFdmVudExpc3RlbmVyTWFuYWdlciB0byBoYW5kbGUgdXNlciByZWdpc3RyYXRpb24gLyB1bnJlZ2lzdHJhdGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzaGVldCBUaGUgc2hlZXQgb2JqZWN0IHdoaWNoIHdpbGwgYmUgaW5jbHVkZWQgd2l0aCB0aGUgZXZlbnQgbm90aWZpY2F0aW9uc1xuICAgICAqIEByZXR1cm5zIHtBcnJheTxTaW5nbGVFdmVudE1hbmFnZXI+fSBDb2xsZWN0aW9uIG9mIGV2ZW50IG1hbmFnZXJzIHRvIHBhc3MgdG8gYW4gRXZlbnRMaXN0ZW5lck1hbmFnZXJcbiAgICAgKi9cbiAgICBQYXJhbWV0ZXJJbXBsLnByb3RvdHlwZS5pbml0aWFsaXplRXZlbnRzID0gZnVuY3Rpb24gKHNoZWV0KSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciByZXN1bHRzID0gbmV3IEFycmF5KCk7XG4gICAgICAgIHZhciBub3RpZmljYXRpb25TZXJ2aWNlO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbm90aWZpY2F0aW9uU2VydmljZSA9IFNlcnZpY2VSZWdpc3RyeV8xLkFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlKFwibm90aWZpY2F0aW9uLXNlcnZpY2VcIiAvKiBOb3RpZmljYXRpb24gKi8pO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIHRoaXMgc2VydmljZSByZWdpc3RlcmVkLCBqdXN0IHJldHVyblxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgICAgIH1cbiAgICAgICAgLy8gSW5pdGlhbGl6ZSBhbGwgb2YgdGhlIGV2ZW50IG1hbmFnZXJzIHdlJ2xsIG5lZWQgKG9uZSBmb3IgZWFjaCBldmVudCB0eXBlKVxuICAgICAgICB2YXIgcGFyYW1ldGVyRXZlbnQgPSBuZXcgU2luZ2xlRXZlbnRNYW5hZ2VySW1wbF8xLlNpbmdsZUV2ZW50TWFuYWdlckltcGwoQ29udHJhY3QuVGFibGVhdUV2ZW50VHlwZS5QYXJhbWV0ZXJDaGFuZ2VkKTtcbiAgICAgICAgbm90aWZpY2F0aW9uU2VydmljZS5yZWdpc3RlckhhbmRsZXIoYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuTm90aWZpY2F0aW9uSWQuUGFyYW1ldGVyQ2hhbmdlZCwgZnVuY3Rpb24gKG1vZGVsKSB7XG4gICAgICAgICAgICB2YXIgZmllbGROYW1lID0gbW9kZWw7XG4gICAgICAgICAgICByZXR1cm4gZmllbGROYW1lID09PSBfdGhpcy5fZ2xvYmFsRmllbGROYW1lO1xuICAgICAgICB9LCBmdW5jdGlvbiAoZmllbGROYW1lKSB7XG4gICAgICAgICAgICBwYXJhbWV0ZXJFdmVudC50cmlnZ2VyRXZlbnQoZnVuY3Rpb24gKCkgeyByZXR1cm4gbmV3IFBhcmFtZXRlckNoYW5nZWRFdmVudF8xLlBhcmFtZXRlckNoYW5nZWRFdmVudChmaWVsZE5hbWUsIHNoZWV0KTsgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXN1bHRzLnB1c2gocGFyYW1ldGVyRXZlbnQpO1xuICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICB9O1xuICAgIFBhcmFtZXRlckltcGwucHJvdG90eXBlLnNldFBhcmFtZXRlckluZm8gPSBmdW5jdGlvbiAocGFyYW1ldGVySW5mbykge1xuICAgICAgICB0aGlzLl9wYXJhbWV0ZXJJbmZvID0gcGFyYW1ldGVySW5mbztcbiAgICAgICAgdGhpcy5fZ2xvYmFsRmllbGROYW1lID0gcGFyYW1ldGVySW5mby5maWVsZE5hbWU7XG4gICAgICAgIHZhciB0eXBlID0gSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzXzEuSW50ZXJuYWxUb0V4dGVybmFsRW51bU1hcHBpbmdzLmFsbG93YWJsZVZhbHVlcy5jb252ZXJ0KHBhcmFtZXRlckluZm8uYWxsb3dhYmxlVmFsdWVzVHlwZSk7XG4gICAgICAgIHZhciBsaXN0VmFsdWVzO1xuICAgICAgICB2YXIgbWluVmFsdWU7XG4gICAgICAgIHZhciBtYXhWYWx1ZTtcbiAgICAgICAgdmFyIHN0ZXBTaXplO1xuICAgICAgICB2YXIgZGF0ZVN0ZXBQZXJpb2Q7XG4gICAgICAgIGlmICh0eXBlID09PSBDb250cmFjdC5QYXJhbWV0ZXJWYWx1ZVR5cGUuTGlzdCkge1xuICAgICAgICAgICAgdmFyIHZhbHVlcyA9IHBhcmFtZXRlckluZm8uYWxsb3dhYmxlVmFsdWVzIHx8IFtdO1xuICAgICAgICAgICAgbGlzdFZhbHVlcyA9IHZhbHVlcy5tYXAoZnVuY3Rpb24gKHZhbCkgeyByZXR1cm4gbmV3IEdldERhdGFNb2RlbHNfMS5EYXRhVmFsdWUodmFsLnZhbHVlLCB2YWwuZm9ybWF0dGVkVmFsdWUpOyB9KTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh0eXBlID09PSBDb250cmFjdC5QYXJhbWV0ZXJWYWx1ZVR5cGUuUmFuZ2UpIHtcbiAgICAgICAgICAgIG1pblZhbHVlID0gcGFyYW1ldGVySW5mby5taW5WYWx1ZSAmJiBuZXcgR2V0RGF0YU1vZGVsc18xLkRhdGFWYWx1ZShwYXJhbWV0ZXJJbmZvLm1pblZhbHVlLnZhbHVlLCBwYXJhbWV0ZXJJbmZvLm1pblZhbHVlLmZvcm1hdHRlZFZhbHVlKTtcbiAgICAgICAgICAgIG1heFZhbHVlID0gcGFyYW1ldGVySW5mby5tYXhWYWx1ZSAmJiBuZXcgR2V0RGF0YU1vZGVsc18xLkRhdGFWYWx1ZShwYXJhbWV0ZXJJbmZvLm1heFZhbHVlLnZhbHVlLCBwYXJhbWV0ZXJJbmZvLm1heFZhbHVlLmZvcm1hdHRlZFZhbHVlKTtcbiAgICAgICAgICAgIHN0ZXBTaXplID0gcGFyYW1ldGVySW5mby5zdGVwU2l6ZTtcbiAgICAgICAgICAgIGRhdGVTdGVwUGVyaW9kID0gcGFyYW1ldGVySW5mby5kYXRlU3RlcFBlcmlvZCAmJlxuICAgICAgICAgICAgICAgIEludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5nc18xLkludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncy5kYXRlU3RlcFBlcmlvZC5jb252ZXJ0KHBhcmFtZXRlckluZm8uZGF0ZVN0ZXBQZXJpb2QpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2FsbG93YWJsZVZhbHVlcyA9IHtcbiAgICAgICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgICAgICBhbGxvd2FibGVWYWx1ZXM6IGxpc3RWYWx1ZXMsXG4gICAgICAgICAgICBtaW5WYWx1ZTogbWluVmFsdWUsXG4gICAgICAgICAgICBtYXhWYWx1ZTogbWF4VmFsdWUsXG4gICAgICAgICAgICBzdGVwU2l6ZTogc3RlcFNpemUsXG4gICAgICAgICAgICBkYXRlU3RlcFBlcmlvZDogZGF0ZVN0ZXBQZXJpb2RcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIHJldHVybiBQYXJhbWV0ZXJJbXBsO1xufSgpKTtcbmV4cG9ydHMuUGFyYW1ldGVySW1wbCA9IFBhcmFtZXRlckltcGw7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1QYXJhbWV0ZXJJbXBsLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogRDovZGV2L2pzLWFwaS9hcGktc2hhcmVkL2xpYi9JbnRlcm5hbC9QYXJhbWV0ZXJJbXBsLmpzXG4gKiogbW9kdWxlIGlkID0gMzdcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xudmFyIF9fZXh0ZW5kcyA9ICh0aGlzICYmIHRoaXMuX19leHRlbmRzKSB8fCAoZnVuY3Rpb24gKCkge1xuICAgIHZhciBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XG4gICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcbiAgICAgICAgZnVuY3Rpb24gKGQsIGIpIHsgZm9yICh2YXIgcCBpbiBiKSBpZiAoYi5oYXNPd25Qcm9wZXJ0eShwKSkgZFtwXSA9IGJbcF07IH07XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxuICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XG4gICAgfTtcbn0pKCk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgQ29udHJhY3QgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0XCIpO1xudmFyIFNlcnZpY2VSZWdpc3RyeV8xID0gcmVxdWlyZShcIi4uL1NlcnZpY2VzL1NlcnZpY2VSZWdpc3RyeVwiKTtcbnZhciBUYWJsZWF1U2hlZXRFdmVudF8xID0gcmVxdWlyZShcIi4vVGFibGVhdVNoZWV0RXZlbnRcIik7XG52YXIgUGFyYW1ldGVyQ2hhbmdlZEV2ZW50ID0gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoUGFyYW1ldGVyQ2hhbmdlZEV2ZW50LCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFBhcmFtZXRlckNoYW5nZWRFdmVudChfZ2xvYmFsRmllbGROYW1lLCBzaGVldCkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBDb250cmFjdC5UYWJsZWF1RXZlbnRUeXBlLlBhcmFtZXRlckNoYW5nZWQsIHNoZWV0KSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5fZ2xvYmFsRmllbGROYW1lID0gX2dsb2JhbEZpZWxkTmFtZTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBQYXJhbWV0ZXJDaGFuZ2VkRXZlbnQucHJvdG90eXBlLmdldFBhcmFtZXRlckFzeW5jID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAvLyBDYWxsIGRvd24gdG8gb3VyIHNlcnZpY2UgdG8gZ2V0IHRoZSBwYXJhbWV0ZXIgYmFjayB2aWEgaXRzIGZpZWxkIG5hbWVcbiAgICAgICAgdmFyIHNlcnZpY2UgPSBTZXJ2aWNlUmVnaXN0cnlfMS5BcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZShcInBhcmFtZXRlcnMtc2VydmljZVwiIC8qIFBhcmFtZXRlcnMgKi8pO1xuICAgICAgICByZXR1cm4gc2VydmljZS5maW5kUGFyYW1ldGVyQnlHbG9iYWxGaWVsZE5hbWVBc3luYyh0aGlzLl9nbG9iYWxGaWVsZE5hbWUsIHRoaXMuc2hlZXQpLnRoZW4oZnVuY3Rpb24gKHBhcmFtZXRlcikge1xuICAgICAgICAgICAgaWYgKHBhcmFtZXRlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gZmluZCBwYXJhbWV0ZXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBwYXJhbWV0ZXI7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgcmV0dXJuIFBhcmFtZXRlckNoYW5nZWRFdmVudDtcbn0oVGFibGVhdVNoZWV0RXZlbnRfMS5UYWJsZWF1U2hlZXRFdmVudCkpO1xuZXhwb3J0cy5QYXJhbWV0ZXJDaGFuZ2VkRXZlbnQgPSBQYXJhbWV0ZXJDaGFuZ2VkRXZlbnQ7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1QYXJhbWV0ZXJDaGFuZ2VkRXZlbnQuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL0V2ZW50cy9QYXJhbWV0ZXJDaGFuZ2VkRXZlbnQuanNcbiAqKiBtb2R1bGUgaWQgPSAzOFxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgQ29udHJhY3QgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0XCIpO1xudmFyIGFwaV9pbnRlcm5hbF9jb250cmFjdF8xID0gcmVxdWlyZShcIkB0YWJsZWF1L2FwaS1pbnRlcm5hbC1jb250cmFjdFwiKTtcbnZhciBTZWxlY3Rpb25Nb2RlbHNfMSA9IHJlcXVpcmUoXCIuLi8uLi9Nb2RlbHMvU2VsZWN0aW9uTW9kZWxzXCIpO1xudmFyIFNlbGVjdGlvblNlcnZpY2VJbXBsID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBTZWxlY3Rpb25TZXJ2aWNlSW1wbChkaXNwYXRjaGVyKSB7XG4gICAgICAgIHRoaXMuX2Rpc3BhdGNoZXIgPSBkaXNwYXRjaGVyO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoU2VsZWN0aW9uU2VydmljZUltcGwucHJvdG90eXBlLCBcInNlcnZpY2VOYW1lXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJzZWxlY3Rpb24tc2VydmljZVwiIC8qIFNlbGVjdGlvbiAqLztcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgLyoqXG4gICAgICogTWV0aG9kIHRvIGNsZWFyIGFsbCB0aGUgc2VsZWN0ZWQgbWFya3MgZm9yIHRoZSBnaXZlbiB3b3Jrc2hlZXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmlzdWFsSWRcbiAgICAgKi9cbiAgICBTZWxlY3Rpb25TZXJ2aWNlSW1wbC5wcm90b3R5cGUuY2xlYXJTZWxlY3RlZE1hcmtzQXN5bmMgPSBmdW5jdGlvbiAodmlzdWFsSWQpIHtcbiAgICAgICAgdmFyIHBhcmFtZXRlcnMgPSAoX2EgPSB7fSwgX2FbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuVmlzdWFsSWRdID0gdmlzdWFsSWQsIF9hKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc3BhdGNoZXIuZXhlY3V0ZShhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5WZXJiSWQuQ2xlYXJTZWxlY3RlZE1hcmtzLCBwYXJhbWV0ZXJzKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgcmV0dXJuOyAvLyBFeHBlY3RpbmcgYW4gZW1wdHkgbW9kZWwgYW5kIGhlbmNlIHRoZSB2b2lkIHJlc3BvbnNlLlxuICAgICAgICB9KTtcbiAgICAgICAgdmFyIF9hO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogTWV0aG9kIHRvIHNlbGVjdCBtYXJrcyBmb3IgdGhlIGdpdmVuIHdvcmtzaGVldC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2aXN1YWxJZFxuICAgICAqIEBwYXJhbSBzZWxlY3Rpb25Dcml0ZXJpYVxuICAgICAqIEBwYXJhbSBzZWxlY3Rpb25VcGRhdGVUeXBlXG4gICAgICovXG4gICAgU2VsZWN0aW9uU2VydmljZUltcGwucHJvdG90eXBlLnNlbGVjdE1hcmtzQnlWYWx1ZUFzeW5jID0gZnVuY3Rpb24gKHZpc3VhbElkLCBzZWxlY3Rpb25Dcml0ZXJpYXMsIHNlbGVjdGlvblVwZGF0ZVR5cGUpIHtcbiAgICAgICAgaWYgKHNlbGVjdGlvbkNyaXRlcmlhcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBzZWxlY3Rpb24gY3JpdGVyaWEuIFNlbGVjdGlvbnMgbWlzc2luZy4nKTtcbiAgICAgICAgfVxuICAgICAgICB2YXIgc2VsZWN0aW9uVHlwZSA9IHRoaXMudmFsaWRhdGVTZWxlY3Rpb25VcGRhdGVUeXBlKHNlbGVjdGlvblVwZGF0ZVR5cGUpO1xuICAgICAgICB2YXIgc2VsZWN0aW9uQ3JpdGVyaWFUeXBlID0gdGhpcy52YWxpZGF0ZVNlbGVjdGlvbkNyaXRlcmlhKHNlbGVjdGlvbkNyaXRlcmlhc1swXSk7XG4gICAgICAgIHZhciBzZWxlY3Rpb25Nb2RlbENvbnRhaW5lciA9IHRoaXMucGFyc2VTZWxlY3Rpb25NYXJrcyhzZWxlY3Rpb25Dcml0ZXJpYXMsIHNlbGVjdGlvbkNyaXRlcmlhVHlwZSk7XG4gICAgICAgIHZhciBwYXJhbWV0ZXJzID0gKF9hID0ge30sXG4gICAgICAgICAgICBfYVthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5WaXN1YWxJZF0gPSB2aXN1YWxJZCxcbiAgICAgICAgICAgIF9hW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLlNlbGVjdGlvblVwZGF0ZVR5cGVdID0gc2VsZWN0aW9uVHlwZSxcbiAgICAgICAgICAgIF9hKTtcbiAgICAgICAgc3dpdGNoIChzZWxlY3Rpb25Dcml0ZXJpYVR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgU2VsZWN0aW9uQ3JpdGVyaWFUeXBlLkhpZXJhcmNoaWNhbFR5cGU6IHtcbiAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzW2FwaV9pbnRlcm5hbF9jb250cmFjdF8xLlBhcmFtZXRlcklkLkhpZXJWYWxTZWxlY3Rpb25Nb2RlbHNdID0gc2VsZWN0aW9uTW9kZWxDb250YWluZXIuaGllck1vZGVsQXJyO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBTZWxlY3Rpb25Dcml0ZXJpYVR5cGUuUmFuZ2VUeXBlOiB7XG4gICAgICAgICAgICAgICAgcGFyYW1ldGVyc1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5RdWFudFJhbmdlU2VsZWN0aW9uTW9kZWxzXSA9IHNlbGVjdGlvbk1vZGVsQ29udGFpbmVyLnF1YW50TW9kZWxBcnI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFNlbGVjdGlvbkNyaXRlcmlhVHlwZS5EaW1lbnNpb25UeXBlOiB7XG4gICAgICAgICAgICAgICAgcGFyYW1ldGVyc1thcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5EaW1WYWxTZWxlY3Rpb25Nb2RlbHNdID0gc2VsZWN0aW9uTW9kZWxDb250YWluZXIuZGltTW9kZWxBcnI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNwYXRjaGVyLmV4ZWN1dGUoYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuVmVyYklkLlNlbGVjdEJ5VmFsdWUsIHBhcmFtZXRlcnMpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICAvLyBFeHBlY3RpbmcgYW4gZW1wdHkgbW9kZWwgYW5kIGhlbmNlIHRoZSB2b2lkIHJlc3BvbnNlLlxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgLy8gVE9ETyBJbnZlc3RpZ2F0ZSB0aGUgZXJyb3IgcmVzcG9uc2Ugd2l0aCBtdWx0aXBsZSBvdXRwdXQgcGFyYW1zIGFuZCB0aHJvdyBlcnJvciBhY2NvcmRpbmdseS5cbiAgICAgICAgfSk7XG4gICAgICAgIHZhciBfYTtcbiAgICB9O1xuICAgIC8qKlxuICAgKiBNZXRob2QgdG8gc2VsZWN0IG1hcmtzIGZvciB0aGUgZ2l2ZW4gd29ya3NoZWV0LlxuICAgKlxuICAgKiBAcGFyYW0gdmlzdWFsSWRcbiAgICogQHBhcmFtIE1hcmtJbmZvXG4gICAqIEBwYXJhbSBzZWxlY3Rpb25VcGRhdGVUeXBlXG4gICAqL1xuICAgIFNlbGVjdGlvblNlcnZpY2VJbXBsLnByb3RvdHlwZS5zZWxlY3RNYXJrc0J5SWRBc3luYyA9IGZ1bmN0aW9uICh2aXN1YWxJZCwgbWFya3MsIHNlbGVjdGlvblVwZGF0ZVR5cGUpIHtcbiAgICAgICAgaWYgKG1hcmtzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHNlbGVjdGlvbi4gTWFya3MgaW5mbyBtaXNzaW5nLicpO1xuICAgICAgICB9XG4gICAgICAgIHZhciBzZWxlY3Rpb25UeXBlID0gdGhpcy52YWxpZGF0ZVNlbGVjdGlvblVwZGF0ZVR5cGUoc2VsZWN0aW9uVXBkYXRlVHlwZSk7XG4gICAgICAgIHZhciBzZWxlY3Rpb25Nb2RlbENvbnRhaW5lciA9IHRoaXMucGFyc2VTZWxlY3Rpb25JZHMobWFya3MpO1xuICAgICAgICB2YXIgcGFyYW1ldGVycyA9IChfYSA9IHt9LFxuICAgICAgICAgICAgX2FbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuVmlzdWFsSWRdID0gdmlzdWFsSWQsXG4gICAgICAgICAgICBfYVthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5TZWxlY3Rpb25VcGRhdGVUeXBlXSA9IHNlbGVjdGlvblR5cGUsXG4gICAgICAgICAgICBfYVthcGlfaW50ZXJuYWxfY29udHJhY3RfMS5QYXJhbWV0ZXJJZC5TZWxlY3Rpb25dID0gc2VsZWN0aW9uTW9kZWxDb250YWluZXIuc2VsZWN0aW9uLFxuICAgICAgICAgICAgX2EpO1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGF0Y2hlci5leGVjdXRlKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlZlcmJJZC5TZWxlY3RCeVZhbHVlLCBwYXJhbWV0ZXJzKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkge1xuICAgICAgICAgICAgLy8gRXhwZWN0aW5nIGFuIGVtcHR5IG1vZGVsIGFuZCBoZW5jZSB0aGUgdm9pZCByZXNwb25zZS5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIC8vIFRPRE8gSW52ZXN0aWdhdGUgdGhlIGVycm9yIHJlc3BvbnNlIHdpdGggbXVsdGlwbGUgb3V0cHV0IHBhcmFtcyBhbmQgdGhyb3cgZXJyb3IgYWNjb3JkaW5nbHkuXG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgX2E7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBNZXRob2QgdG8gcHJlcGFyZSB0aGUgcHJlcyBtb2RlbHMgZm9yIHNlbGVjdGlvbiBieSBNYXJrc0luZm9cbiAgICAgKiBAcGFyYW0gbWFya3NcbiAgICAgKi9cbiAgICBTZWxlY3Rpb25TZXJ2aWNlSW1wbC5wcm90b3R5cGUucGFyc2VTZWxlY3Rpb25JZHMgPSBmdW5jdGlvbiAobWFya3MpIHtcbiAgICAgICAgdmFyIGlkcyA9IFtdO1xuICAgICAgICB2YXIgc2VsZWN0aW9uTW9kZWxDb250YWluZXIgPSBuZXcgU2VsZWN0aW9uTW9kZWxzXzEuU2VsZWN0aW9uTW9kZWxzQ29udGFpbmVyKCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbWFya3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIHZhciB0dXBsZUlkID0gbWFya3NbaV0udHVwbGVJZDtcbiAgICAgICAgICAgIGlmICh0dXBsZUlkICE9PSB1bmRlZmluZWQgJiYgdHVwbGVJZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGlkcy5wdXNoKHR1cGxlSWQudG9TdHJpbmcoKSk7IC8vIGNvbGxlY3QgdGhlIHR1cGxlIGlkc1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHR1cGxlSWQgcHJvdmlkZWQuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlkcy5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICAgIHZhciB0dXBsZVNlbGVjdGlvbk1vZGVsID0gbmV3IFNlbGVjdGlvbk1vZGVsc18xLlR1cGxlU2VsZWN0aW9uTW9kZWwoKTtcbiAgICAgICAgICAgIHR1cGxlU2VsZWN0aW9uTW9kZWwuc2VsZWN0aW9uVHlwZSA9ICd0dXBsZXMnO1xuICAgICAgICAgICAgdHVwbGVTZWxlY3Rpb25Nb2RlbC5vYmplY3RJZHMgPSBpZHM7XG4gICAgICAgICAgICBzZWxlY3Rpb25Nb2RlbENvbnRhaW5lci5zZWxlY3Rpb24gPSB0dXBsZVNlbGVjdGlvbk1vZGVsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzZWxlY3Rpb25Nb2RlbENvbnRhaW5lcjtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0byBwcmVwYXJlIHRoZSBwcmVzIG1vZGVscyBmb3Igc2VsZWN0aW9uIGJ5IHZhbHVlcy5cbiAgICAgKlxuICAgICAqIFN1cHBvcnRzIDMgdHlwZXMgZm9yIHNlbGVjdGlvbjpcbiAgICAgKiAxKSBoaWVyYXJjaGljYWwgdmFsdWUgYmFzZWQgc2VsZWN0aW9uXG4gICAgICogMikgcmFuZ2UgdmFsdWUgYmFzZWQgc2VsZWN0aW9uXG4gICAgICogMykgRGltZW5zaW9uIHZhbHVlIGJhc2VkIHNlbGVjdGlvblxuICAgICAqXG4gICAgICogQHBhcmFtIG1hcmtzXG4gICAgICogQHBhcmFtIGhpZXJNb2RlbEFyclxuICAgICAqIEBwYXJhbSBkaW1Nb2RlbEFyclxuICAgICAqIEBwYXJhbSBxdWFudE1vZGVsQXJyXG4gICAgICogQHBhcmFtIHNlbGVjdGlvblxuICAgICAqL1xuICAgIFNlbGVjdGlvblNlcnZpY2VJbXBsLnByb3RvdHlwZS5wYXJzZVNlbGVjdGlvbk1hcmtzID0gZnVuY3Rpb24gKHNlbGVjdGlvbkNyaXRlcmlhcywgc2VsZWN0aW9uVHlwZSkge1xuICAgICAgICB2YXIgc2VsZWN0aW9uTW9kZWxDb250YWluZXIgPSBuZXcgU2VsZWN0aW9uTW9kZWxzXzEuU2VsZWN0aW9uTW9kZWxzQ29udGFpbmVyKCk7XG4gICAgICAgIHZhciBtaXhlZFNlbGVjdGlvbnNFcnJvciA9IGZhbHNlO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbGVjdGlvbkNyaXRlcmlhcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdmFyIHN0ID0gc2VsZWN0aW9uQ3JpdGVyaWFzW2ldO1xuICAgICAgICAgICAgaWYgKHN0LmZpZWxkTmFtZSAmJiAoc3QudmFsdWUgIT09IHVuZGVmaW5lZCAmJiBzdC52YWx1ZSAhPT0gbnVsbCkpIHtcbiAgICAgICAgICAgICAgICB2YXIgY2F0UmVnZXggPSBuZXcgUmVnRXhwKCcoXFxbW0EtWmEtejAtOV0rXSkuKicsICdnJyk7XG4gICAgICAgICAgICAgICAgdmFyIHJhbmdlT3B0aW9uID0gc3QudmFsdWU7XG4gICAgICAgICAgICAgICAgaWYgKGNhdFJlZ2V4LnRlc3Qoc3QuZmllbGROYW1lKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZWN0aW9uVHlwZSA9PT0gU2VsZWN0aW9uQ3JpdGVyaWFUeXBlLkhpZXJhcmNoaWNhbFR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBoaWVyTW9kZWwgPSB0aGlzLmFkZFRvUGFyYW1zTGlzdChzdC5maWVsZE5hbWUsIHN0LnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbk1vZGVsQ29udGFpbmVyLmhpZXJNb2RlbEFyci5wdXNoKGhpZXJNb2RlbCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtaXhlZFNlbGVjdGlvbnNFcnJvciA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChyYW5nZU9wdGlvbi5taW4gIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAmJiByYW5nZU9wdGlvbi5tYXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZWN0aW9uVHlwZSA9PT0gU2VsZWN0aW9uQ3JpdGVyaWFUeXBlLlJhbmdlVHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHF1YW50TW9kZWwgPSB0aGlzLmFkZFRvUmFuZ2VQYXJhbXNMaXN0KHN0LmZpZWxkTmFtZSwgcmFuZ2VPcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uTW9kZWxDb250YWluZXIucXVhbnRNb2RlbEFyci5wdXNoKHF1YW50TW9kZWwpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWl4ZWRTZWxlY3Rpb25zRXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rpb25UeXBlID09PSBTZWxlY3Rpb25Dcml0ZXJpYVR5cGUuRGltZW5zaW9uVHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRpbU1vZGVsID0gdGhpcy5hZGRUb1BhcmFtc0xpc3Qoc3QuZmllbGROYW1lLCBzdC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25Nb2RlbENvbnRhaW5lci5kaW1Nb2RlbEFyci5wdXNoKGRpbU1vZGVsKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1peGVkU2VsZWN0aW9uc0Vycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChtaXhlZFNlbGVjdGlvbnNFcnJvcikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEaWZmZXJlbnQgdHlwZXMgb2Ygc2VsZWN0aW9uIGNyaXRlcmlhcyBwcm92aWRlZC4nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2VsZWN0aW9uTW9kZWxDb250YWluZXI7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBzZWxlY3Rpb25Dcml0ZXJpYXMgVmFsaWRhdGUgYW5kIGRldGVybWluZSB0aGUgc2VsZWN0aW9uIGNyaXRlcmlhcyB0eXBlLlxuICAgICAqL1xuICAgIFNlbGVjdGlvblNlcnZpY2VJbXBsLnByb3RvdHlwZS52YWxpZGF0ZVNlbGVjdGlvbkNyaXRlcmlhID0gZnVuY3Rpb24gKHNlbGVjdGlvbkNyaXRlcmlhKSB7XG4gICAgICAgIHZhciBzZWxlY3Rpb25UeXBlO1xuICAgICAgICAvLyBEZXRlcm1pbmUgdGhlIHR5cGUgb2Ygc2VsZWN0aW9uLCB0aGlzIGNvbW1hbmQgaXMgYnkgbG9va2luZyBhdCB0aGUgZmlyc3Qgc2VsZWN0aW9uXG4gICAgICAgIHZhciBjcml0ID0gc2VsZWN0aW9uQ3JpdGVyaWE7XG4gICAgICAgIHZhciBjYXRSZWdleCA9IG5ldyBSZWdFeHAoJyhcXFtbQS1aYS16MC05XStdKS4qJywgJ2cnKTtcbiAgICAgICAgdmFyIHJhbmdlT3B0aW9uID0gY3JpdC52YWx1ZTtcbiAgICAgICAgaWYgKGNyaXQuZmllbGROYW1lICYmIChjcml0LnZhbHVlICE9PSB1bmRlZmluZWQgJiYgY3JpdC52YWx1ZSAhPT0gbnVsbCkpIHtcbiAgICAgICAgICAgIGlmIChjYXRSZWdleC50ZXN0KGNyaXQuZmllbGROYW1lKSkge1xuICAgICAgICAgICAgICAgIHNlbGVjdGlvblR5cGUgPSBTZWxlY3Rpb25Dcml0ZXJpYVR5cGUuSGllcmFyY2hpY2FsVHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHJhbmdlT3B0aW9uLm1pbiAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgJiYgcmFuZ2VPcHRpb24ubWF4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb25UeXBlID0gU2VsZWN0aW9uQ3JpdGVyaWFUeXBlLlJhbmdlVHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHNlbGVjdGlvblR5cGUgPSBTZWxlY3Rpb25Dcml0ZXJpYVR5cGUuRGltZW5zaW9uVHlwZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBzZWxlY3Rpb24gY3JpdGVyaWEgZm9ybWF0LicpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzZWxlY3Rpb25UeXBlO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogTWV0aG9kIHRvIHRyYW5zZm9ybSB0aGUga2V5IHZhbHVlIHBhaXIgaW50byB2YWx1ZSBiYXNlZCBwcmVzIG1vZGVsIG9iamVjdC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZVNlbGVjdGlvbk1vZGVsXG4gICAgICogQHBhcmFtIGZpZWxkTmFtZVxuICAgICAqIEBwYXJhbSB2YWx1ZVxuICAgICAqL1xuICAgIFNlbGVjdGlvblNlcnZpY2VJbXBsLnByb3RvdHlwZS5hZGRUb1BhcmFtc0xpc3QgPSBmdW5jdGlvbiAoZmllbGROYW1lLCB2YWx1ZSkge1xuICAgICAgICB2YXIgdmFsdWVTZWxlY3Rpb25Nb2RlbCA9IG5ldyBTZWxlY3Rpb25Nb2RlbHNfMS5WYWx1ZVNlbGVjdGlvbk1vZGVsKCk7XG4gICAgICAgIHZhciBtYXJrVmFsdWVzID0gW107XG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICB2YXIgdmFsdWVBcnIgPSB2YWx1ZTtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWVBcnIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBtYXJrVmFsdWVzLnB1c2godmFsdWVBcnJbaV0udG9TdHJpbmcoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBtYXJrVmFsdWVzLnB1c2godmFsdWUudG9TdHJpbmcoKSk7XG4gICAgICAgIH1cbiAgICAgICAgdmFsdWVTZWxlY3Rpb25Nb2RlbC5xdWFsaWZpZWRGaWVsZENhcHRpb24gPSBmaWVsZE5hbWU7XG4gICAgICAgIHZhbHVlU2VsZWN0aW9uTW9kZWwuc2VsZWN0VmFsdWVzID0gbWFya1ZhbHVlcztcbiAgICAgICAgcmV0dXJuIHZhbHVlU2VsZWN0aW9uTW9kZWw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBNZXRob2QgdG8gdHJhbnNmb3JtIHRoZSBrZXkgdmFsdWUgcGFpciBpbnRvIHJhbmdlIGJhc2VkIHNlbGVjdGlvbiBwcmVzIG1vZGVsLlxuICAgICAqXG4gICAgICogVE9ETzogTmVlZCB0byBoYW5kbGUgdGhlIHBhcnNpbmcgb2YgZGF0ZSB0eXBlIHZhbHVlcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZVNlbGVjdGlvbk1vZGVsXG4gICAgICogQHBhcmFtIGZpZWxkTmFtZVxuICAgICAqIEBwYXJhbSB2YWx1ZVxuICAgICAqL1xuICAgIFNlbGVjdGlvblNlcnZpY2VJbXBsLnByb3RvdHlwZS5hZGRUb1JhbmdlUGFyYW1zTGlzdCA9IGZ1bmN0aW9uIChmaWVsZE5hbWUsIHZhbHVlKSB7XG4gICAgICAgIHZhciByYW5nZVNlbGVjdGlvbk1vZGVsID0gbmV3IFNlbGVjdGlvbk1vZGVsc18xLlJhbmdlU2VsZWN0aW9uTW9kZWwoKTtcbiAgICAgICAgcmFuZ2VTZWxlY3Rpb25Nb2RlbC5xdWFsaWZpZWRGaWVsZENhcHRpb24gPSBmaWVsZE5hbWU7XG4gICAgICAgIGlmICh2YWx1ZS5tYXggIT09IHVuZGVmaW5lZCAmJiB2YWx1ZS5tYXggIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJhbmdlU2VsZWN0aW9uTW9kZWwubWF4VmFsdWUgPSB2YWx1ZS5tYXgudG9TdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWUubWluICE9PSB1bmRlZmluZWQgJiYgdmFsdWUubWluICE9PSBudWxsKSB7XG4gICAgICAgICAgICByYW5nZVNlbGVjdGlvbk1vZGVsLm1pblZhbHVlID0gdmFsdWUubWluLnRvU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmFuZ2VTZWxlY3Rpb25Nb2RlbC5pbmNsdWRlZCA9IHRoaXMudmFsaWRhdGVOdWxsT3B0aW9uVHlwZSh2YWx1ZS5udWxsT3B0aW9uKTtcbiAgICAgICAgcmV0dXJuIHJhbmdlU2VsZWN0aW9uTW9kZWw7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBNZXRob2QgdG8gdmFsaWRhdGUgdGhlIHNlbGVjdGlvbiB1cGRhdGUgdHlwZS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBzZWxlY3Rpb25VcGRhdGVUeXBlXG4gICAgICovXG4gICAgU2VsZWN0aW9uU2VydmljZUltcGwucHJvdG90eXBlLnZhbGlkYXRlU2VsZWN0aW9uVXBkYXRlVHlwZSA9IGZ1bmN0aW9uIChzZWxlY3Rpb25VcGRhdGVUeXBlKSB7XG4gICAgICAgIGlmIChzZWxlY3Rpb25VcGRhdGVUeXBlID09PSBDb250cmFjdC5TZWxlY3Rpb25VcGRhdGVUeXBlLlJlcGxhY2UpIHtcbiAgICAgICAgICAgIHJldHVybiBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5TZWxlY3Rpb25VcGRhdGVUeXBlLlJlcGxhY2U7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoc2VsZWN0aW9uVXBkYXRlVHlwZSA9PT0gQ29udHJhY3QuU2VsZWN0aW9uVXBkYXRlVHlwZS5BZGQpIHtcbiAgICAgICAgICAgIHJldHVybiBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5TZWxlY3Rpb25VcGRhdGVUeXBlLkFkZDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChzZWxlY3Rpb25VcGRhdGVUeXBlID09PSBDb250cmFjdC5TZWxlY3Rpb25VcGRhdGVUeXBlLlJlbW92ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlNlbGVjdGlvblVwZGF0ZVR5cGUuUmVtb3ZlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcGlfaW50ZXJuYWxfY29udHJhY3RfMS5TZWxlY3Rpb25VcGRhdGVUeXBlLlJlcGxhY2U7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBNZXRob2QgdG8gdmFsaWRhdGUgdGhlIGluY2x1ZGUgdHlwZSBmb3IgcmFuZ2Ugc2VsZWN0aW9uLlxuICAgICAqXG4gICAgICogQHBhcmFtIG51bGxPcHRpb25cbiAgICAgKi9cbiAgICBTZWxlY3Rpb25TZXJ2aWNlSW1wbC5wcm90b3R5cGUudmFsaWRhdGVOdWxsT3B0aW9uVHlwZSA9IGZ1bmN0aW9uIChudWxsT3B0aW9uKSB7XG4gICAgICAgIGlmIChudWxsT3B0aW9uKSB7XG4gICAgICAgICAgICBpZiAobnVsbE9wdGlvbiA9PT0gQ29udHJhY3QuRmlsdGVyTnVsbE9wdGlvbi5OdWxsVmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlF1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzLkluY2x1ZGVOdWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobnVsbE9wdGlvbiA9PT0gQ29udHJhY3QuRmlsdGVyTnVsbE9wdGlvbi5Ob25OdWxsVmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlF1YW50aXRhdGl2ZUluY2x1ZGVkVmFsdWVzLkluY2x1ZGVOb25OdWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAobnVsbE9wdGlvbiA9PT0gQ29udHJhY3QuRmlsdGVyTnVsbE9wdGlvbi5BbGxWYWx1ZXMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUXVhbnRpdGF0aXZlSW5jbHVkZWRWYWx1ZXMuSW5jbHVkZUFsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUXVhbnRpdGF0aXZlSW5jbHVkZWRWYWx1ZXMuSW5jbHVkZUFsbDtcbiAgICB9O1xuICAgIHJldHVybiBTZWxlY3Rpb25TZXJ2aWNlSW1wbDtcbn0oKSk7XG5leHBvcnRzLlNlbGVjdGlvblNlcnZpY2VJbXBsID0gU2VsZWN0aW9uU2VydmljZUltcGw7XG4vKipcbiAqIEVudW0gZm9yIHRoZSBkaWZmZXJlbnQgc2VsZWN0aW9uIGNyaXRlcmlhIHR5cGVzLlxuICovXG52YXIgU2VsZWN0aW9uQ3JpdGVyaWFUeXBlO1xuKGZ1bmN0aW9uIChTZWxlY3Rpb25Dcml0ZXJpYVR5cGUpIHtcbiAgICBTZWxlY3Rpb25Dcml0ZXJpYVR5cGVbU2VsZWN0aW9uQ3JpdGVyaWFUeXBlW1wiSGllcmFyY2hpY2FsVHlwZVwiXSA9IDFdID0gXCJIaWVyYXJjaGljYWxUeXBlXCI7XG4gICAgU2VsZWN0aW9uQ3JpdGVyaWFUeXBlW1NlbGVjdGlvbkNyaXRlcmlhVHlwZVtcIlJhbmdlVHlwZVwiXSA9IDJdID0gXCJSYW5nZVR5cGVcIjtcbiAgICBTZWxlY3Rpb25Dcml0ZXJpYVR5cGVbU2VsZWN0aW9uQ3JpdGVyaWFUeXBlW1wiRGltZW5zaW9uVHlwZVwiXSA9IDNdID0gXCJEaW1lbnNpb25UeXBlXCI7XG4gICAgU2VsZWN0aW9uQ3JpdGVyaWFUeXBlW1NlbGVjdGlvbkNyaXRlcmlhVHlwZVtcIlR1cGxlc1R5cGVcIl0gPSA0XSA9IFwiVHVwbGVzVHlwZVwiO1xufSkoU2VsZWN0aW9uQ3JpdGVyaWFUeXBlIHx8IChTZWxlY3Rpb25Dcml0ZXJpYVR5cGUgPSB7fSkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2VsZWN0aW9uU2VydmljZUltcGwuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL1NlcnZpY2VzL2ltcGwvU2VsZWN0aW9uU2VydmljZUltcGwuanNcbiAqKiBtb2R1bGUgaWQgPSAzOVxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19leHRlbmRzID0gKHRoaXMgJiYgdGhpcy5fX2V4dGVuZHMpIHx8IChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxuICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcbiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XG4gICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcbiAgICB9O1xufSkoKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8qKlxuICogU2VsZWN0aW9uIE1vZGVsLlxuICovXG52YXIgU2VsZWN0aW9uTW9kZWwgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFNlbGVjdGlvbk1vZGVsKCkge1xuICAgIH1cbiAgICByZXR1cm4gU2VsZWN0aW9uTW9kZWw7XG59KCkpO1xuZXhwb3J0cy5TZWxlY3Rpb25Nb2RlbCA9IFNlbGVjdGlvbk1vZGVsO1xuLyoqXG4gKiBWYWx1ZSBiYXNlZCBzZWxlY3Rpb24gbW9kZWwuIE1lYW50IGZvciBoaWVyYXJjaGljYWwsIHJhbmdlIGFuZCBjYXRlZ29yaWNhbCBzZWxlY3Rpb25zLlxuICovXG52YXIgVmFsdWVTZWxlY3Rpb25Nb2RlbCA9IChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFZhbHVlU2VsZWN0aW9uTW9kZWwsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gVmFsdWVTZWxlY3Rpb25Nb2RlbCgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLnNlbGVjdFZhbHVlcyA9IFtdO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIHJldHVybiBWYWx1ZVNlbGVjdGlvbk1vZGVsO1xufShTZWxlY3Rpb25Nb2RlbCkpO1xuZXhwb3J0cy5WYWx1ZVNlbGVjdGlvbk1vZGVsID0gVmFsdWVTZWxlY3Rpb25Nb2RlbDtcbi8qKlxuICogSGllcmFyY2hpY2FsIHZhbHVlIHNlbGVjdGlvbiBtb2RlbFxuICovXG52YXIgSGllcmFyY2hpY2FsU2VsZWN0aW9uTW9kZWwgPSAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhIaWVyYXJjaGljYWxTZWxlY3Rpb25Nb2RlbCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBIaWVyYXJjaGljYWxTZWxlY3Rpb25Nb2RlbCgpIHtcbiAgICAgICAgcmV0dXJuIF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICByZXR1cm4gSGllcmFyY2hpY2FsU2VsZWN0aW9uTW9kZWw7XG59KFZhbHVlU2VsZWN0aW9uTW9kZWwpKTtcbmV4cG9ydHMuSGllcmFyY2hpY2FsU2VsZWN0aW9uTW9kZWwgPSBIaWVyYXJjaGljYWxTZWxlY3Rpb25Nb2RlbDtcbi8qKlxuICogUmFuZ2UgYmFzZWQgdmFsdWUgc2VsZWN0aW9uIG1vZGVsXG4gKi9cbnZhciBSYW5nZVNlbGVjdGlvbk1vZGVsID0gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoUmFuZ2VTZWxlY3Rpb25Nb2RlbCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBSYW5nZVNlbGVjdGlvbk1vZGVsKCkge1xuICAgICAgICByZXR1cm4gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7XG4gICAgfVxuICAgIHJldHVybiBSYW5nZVNlbGVjdGlvbk1vZGVsO1xufShTZWxlY3Rpb25Nb2RlbCkpO1xuZXhwb3J0cy5SYW5nZVNlbGVjdGlvbk1vZGVsID0gUmFuZ2VTZWxlY3Rpb25Nb2RlbDtcbi8qKlxuICogRGltZW5zaW9uIHZhbHVlIHNlbGVjdGlvbiBtb2RlbFxuICovXG52YXIgRGltZW5zaW9uU2VsZWN0aW9uTW9kZWwgPSAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhEaW1lbnNpb25TZWxlY3Rpb25Nb2RlbCwgX3N1cGVyKTtcbiAgICBmdW5jdGlvbiBEaW1lbnNpb25TZWxlY3Rpb25Nb2RlbCgpIHtcbiAgICAgICAgcmV0dXJuIF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICByZXR1cm4gRGltZW5zaW9uU2VsZWN0aW9uTW9kZWw7XG59KFZhbHVlU2VsZWN0aW9uTW9kZWwpKTtcbmV4cG9ydHMuRGltZW5zaW9uU2VsZWN0aW9uTW9kZWwgPSBEaW1lbnNpb25TZWxlY3Rpb25Nb2RlbDtcbi8qKlxuICogVHVwbGUgYmFzZWQgc2VsZWN0aW9uIG1vZGVsXG4gKi9cbnZhciBUdXBsZVNlbGVjdGlvbk1vZGVsID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBUdXBsZVNlbGVjdGlvbk1vZGVsKCkge1xuICAgICAgICB0aGlzLm9iamVjdElkcyA9IFtdO1xuICAgIH1cbiAgICByZXR1cm4gVHVwbGVTZWxlY3Rpb25Nb2RlbDtcbn0oKSk7XG5leHBvcnRzLlR1cGxlU2VsZWN0aW9uTW9kZWwgPSBUdXBsZVNlbGVjdGlvbk1vZGVsO1xuLyoqXG4gKiBDb250YWluZXIgY2xhc3MgdG8gcG9wdWxhdGUgYWxsIHRoZSBzZWxlY3Rpb24gbW9kZWxzIHdoZW4gcGFyc2luZyBpbnB1dFxuICovXG52YXIgU2VsZWN0aW9uTW9kZWxzQ29udGFpbmVyID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBTZWxlY3Rpb25Nb2RlbHNDb250YWluZXIoKSB7XG4gICAgICAgIHRoaXMuaGllck1vZGVsQXJyID0gW107XG4gICAgICAgIHRoaXMuZGltTW9kZWxBcnIgPSBbXTtcbiAgICAgICAgdGhpcy5xdWFudE1vZGVsQXJyID0gW107XG4gICAgfVxuICAgIHJldHVybiBTZWxlY3Rpb25Nb2RlbHNDb250YWluZXI7XG59KCkpO1xuZXhwb3J0cy5TZWxlY3Rpb25Nb2RlbHNDb250YWluZXIgPSBTZWxlY3Rpb25Nb2RlbHNDb250YWluZXI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1TZWxlY3Rpb25Nb2RlbHMuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiBEOi9kZXYvanMtYXBpL2FwaS1zaGFyZWQvbGliL01vZGVscy9TZWxlY3Rpb25Nb2RlbHMuanNcbiAqKiBtb2R1bGUgaWQgPSA0MFxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19leHRlbmRzID0gKHRoaXMgJiYgdGhpcy5fX2V4dGVuZHMpIHx8IChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxuICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcbiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XG4gICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcbiAgICB9O1xufSkoKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBTaGVldF8xID0gcmVxdWlyZShcIi4vU2hlZXRcIik7XG52YXIgRGFzaGJvYXJkID0gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoRGFzaGJvYXJkLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIERhc2hib2FyZChfZGFzaGJvYXJkSW1wbCkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBfZGFzaGJvYXJkSW1wbCkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuX2Rhc2hib2FyZEltcGwgPSBfZGFzaGJvYXJkSW1wbDtcbiAgICAgICAgX2Rhc2hib2FyZEltcGwuaW5pdGlhbGl6ZVdpdGhQdWJsaWNJbnRlcmZhY2VzKF90aGlzKTtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRGFzaGJvYXJkLnByb3RvdHlwZSwgXCJ3b3Jrc2hlZXRzXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZGFzaGJvYXJkSW1wbC53b3Jrc2hlZXRzO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRGFzaGJvYXJkLnByb3RvdHlwZSwgXCJvYmplY3RzXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZGFzaGJvYXJkSW1wbC5vYmplY3RzO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICByZXR1cm4gRGFzaGJvYXJkO1xufShTaGVldF8xLlNoZWV0KSk7XG5leHBvcnRzLkRhc2hib2FyZCA9IERhc2hib2FyZDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURhc2hib2FyZC5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4uL2xpYi9EYXNoYm9hcmQuanNcbiAqKiBtb2R1bGUgaWQgPSA0MVxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19leHRlbmRzID0gKHRoaXMgJiYgdGhpcy5fX2V4dGVuZHMpIHx8IChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxuICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcbiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XG4gICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcbiAgICB9O1xufSkoKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBhcGlfc2hhcmVkXzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLXNoYXJlZFwiKTtcbnZhciBTaGVldCA9IChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKFNoZWV0LCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFNoZWV0KF9zaGVldEltcGwpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuX3NoZWV0SW1wbCA9IF9zaGVldEltcGw7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFNoZWV0LnByb3RvdHlwZSwgXCJuYW1lXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fc2hlZXRJbXBsLm5hbWU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTaGVldC5wcm90b3R5cGUsIFwic2hlZXRUeXBlXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fc2hlZXRJbXBsLnNoZWV0VHlwZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFNoZWV0LnByb3RvdHlwZSwgXCJzaXplXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fc2hlZXRJbXBsLnNpemU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIFNoZWV0LnByb3RvdHlwZS5maW5kUGFyYW1ldGVyQXN5bmMgPSBmdW5jdGlvbiAocGFyYW1ldGVyTmFtZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2hlZXRJbXBsLmZpbmRQYXJhbWV0ZXJBc3luYyhwYXJhbWV0ZXJOYW1lLCB0aGlzKTtcbiAgICB9O1xuICAgIFNoZWV0LnByb3RvdHlwZS5nZXRQYXJhbWV0ZXJzQXN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaGVldEltcGwuZ2V0UGFyYW1ldGVyc0FzeW5jKHRoaXMpO1xuICAgIH07XG4gICAgcmV0dXJuIFNoZWV0O1xufShhcGlfc2hhcmVkXzEuRXZlbnRMaXN0ZW5lck1hbmFnZXIpKTtcbmV4cG9ydHMuU2hlZXQgPSBTaGVldDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVNoZWV0LmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi4vbGliL1NoZWV0LmpzXG4gKiogbW9kdWxlIGlkID0gNDJcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuLyoqXG4gKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgZXh0ZXJuYWwgRGFzaGJvYXJkQ29udGVudCBuYW1lc3BhY2UuXG4gKiBUaGlzIGRvZXMgbm90IGZvbGxvdyB0aGUgSW1wbCBwYXR0ZXJuIGFzIERhc2hib2FyZENvbnRlbnQgaXNcbiAqIGN1cnJlbnRseSBqdXN0IGEgKHNpbmdsZSkgcHJvcGVydHkgYmFnLlxuICovXG52YXIgRGFzaGJvYXJkQ29udGVudCA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gRGFzaGJvYXJkQ29udGVudChfZGFzaGJvYXJkKSB7XG4gICAgICAgIHRoaXMuX2Rhc2hib2FyZCA9IF9kYXNoYm9hcmQ7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXNoYm9hcmRDb250ZW50LnByb3RvdHlwZSwgXCJkYXNoYm9hcmRcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kYXNoYm9hcmQ7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIHJldHVybiBEYXNoYm9hcmRDb250ZW50O1xufSgpKTtcbmV4cG9ydHMuRGFzaGJvYXJkQ29udGVudCA9IERhc2hib2FyZENvbnRlbnQ7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1EYXNoYm9hcmRDb250ZW50LmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi4vbGliL05hbWVzcGFjZXMvRGFzaGJvYXJkQ29udGVudC5qc1xuICoqIG1vZHVsZSBpZCA9IDQzXG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBhcGlfc2hhcmVkXzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLXNoYXJlZFwiKTtcbi8qKlxuICogSW1wbGVtZW50YXRpb24gb2YgdGhlIGV4dGVybmFsIGVudmlyb25tZW50IG5hbWVzcGFjZS5cbiAqIEVudmlyb25tZW50IGRvZXMgbm90IGZvbGxvdyB0aGUgSW1wbCBwYXR0ZXJuIGFzIGl0IGlzXG4gKiBqdXN0IGEgcHJvcGVydHkgYmFnLlxuICovXG52YXIgRW52aXJvbm1lbnQgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEVudmlyb25tZW50KGFkZEluRW52aXJvbm1lbnQpIHtcbiAgICAgICAgdGhpcy5fYXBpVmVyc2lvbiA9IGFkZEluRW52aXJvbm1lbnQuYXBpVmVyc2lvbjtcbiAgICAgICAgdGhpcy5fY29udGV4dCA9IGFwaV9zaGFyZWRfMS5JbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MuYWRkSW5Db250ZXh0LmNvbnZlcnQoYWRkSW5FbnZpcm9ubWVudC5hZGRJbkNvbnRleHQpO1xuICAgICAgICB0aGlzLl9sYW5ndWFnZSA9IGFkZEluRW52aXJvbm1lbnQuYWRkSW5MYW5ndWFnZTtcbiAgICAgICAgdGhpcy5fbG9jYWxlID0gYWRkSW5FbnZpcm9ubWVudC5hZGRJbkxvY2FsZTtcbiAgICAgICAgdGhpcy5fbW9kZSA9IGFwaV9zaGFyZWRfMS5JbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MuYWRkSW5Nb2RlLmNvbnZlcnQoYWRkSW5FbnZpcm9ubWVudC5hZGRJbk1vZGUpO1xuICAgICAgICB0aGlzLl9vcGVyYXRpbmdTeXN0ZW0gPSBhZGRJbkVudmlyb25tZW50Lm9wZXJhdGluZ1N5c3RlbTtcbiAgICAgICAgdGhpcy5fdGFibGVhdVZlcnNpb24gPSBhZGRJbkVudmlyb25tZW50LnRhYmxlYXVWZXJzaW9uO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRW52aXJvbm1lbnQucHJvdG90eXBlLCBcImFwaVZlcnNpb25cIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9hcGlWZXJzaW9uO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRW52aXJvbm1lbnQucHJvdG90eXBlLCBcImNvbnRleHRcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb250ZXh0O1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRW52aXJvbm1lbnQucHJvdG90eXBlLCBcImxhbmd1YWdlXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbGFuZ3VhZ2U7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFbnZpcm9ubWVudC5wcm90b3R5cGUsIFwibG9jYWxlXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRW52aXJvbm1lbnQucHJvdG90eXBlLCBcIm1vZGVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb2RlO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRW52aXJvbm1lbnQucHJvdG90eXBlLCBcIm9wZXJhdGluZ1N5c3RlbVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX29wZXJhdGluZ1N5c3RlbTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEVudmlyb25tZW50LnByb3RvdHlwZSwgXCJ0YWJsZWF1VmVyc2lvblwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RhYmxlYXVWZXJzaW9uO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICByZXR1cm4gRW52aXJvbm1lbnQ7XG59KCkpO1xuZXhwb3J0cy5FbnZpcm9ubWVudCA9IEVudmlyb25tZW50O1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9RW52aXJvbm1lbnQuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiAuLi9saWIvTmFtZXNwYWNlcy9FbnZpcm9ubWVudC5qc1xuICoqIG1vZHVsZSBpZCA9IDQ0XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8qKlxuICogSW1wbGVtZW50YXRpb24gb2YgdGhlIGV4dGVybmFsIHNldHRpbmdzIG5hbWVzcGFjZS5cbiAqL1xudmFyIFNldHRpbmdzID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBTZXR0aW5ncyhzZXR0aW5nc0ltcGwpIHtcbiAgICAgICAgdGhpcy5zZXR0aW5nc0ltcGwgPSBzZXR0aW5nc0ltcGw7XG4gICAgfVxuICAgIFNldHRpbmdzLnByb3RvdHlwZS5lcmFzZSA9IGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgdGhpcy5zZXR0aW5nc0ltcGwuZXJhc2Uoa2V5KTtcbiAgICB9O1xuICAgIFNldHRpbmdzLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldHRpbmdzSW1wbC5nZXQoa2V5KTtcbiAgICB9O1xuICAgIFNldHRpbmdzLnByb3RvdHlwZS5nZXRBbGwgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldHRpbmdzSW1wbC5nZXRBbGwoKTtcbiAgICB9O1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTZXR0aW5ncy5wcm90b3R5cGUsIFwiaXNNb2RpZmllZFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2V0dGluZ3NJbXBsLmlzTW9kaWZpZWQ7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIFNldHRpbmdzLnByb3RvdHlwZS5zYXZlQXN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldHRpbmdzSW1wbC5zYXZlQXN5bmMoKTtcbiAgICB9O1xuICAgIFNldHRpbmdzLnByb3RvdHlwZS5zZXQgPSBmdW5jdGlvbiAoa2V5LCB2YWx1ZSkge1xuICAgICAgICB0aGlzLnNldHRpbmdzSW1wbC5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgfTtcbiAgICByZXR1cm4gU2V0dGluZ3M7XG59KCkpO1xuZXhwb3J0cy5TZXR0aW5ncyA9IFNldHRpbmdzO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2V0dGluZ3MuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiAuLi9saWIvTmFtZXNwYWNlcy9TZXR0aW5ncy5qc1xuICoqIG1vZHVsZSBpZCA9IDQ1XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBhcGlfc2hhcmVkXzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLXNoYXJlZFwiKTtcbnZhciBJbml0aWFsaXphdGlvblNlcnZpY2VJbXBsXzEgPSByZXF1aXJlKFwiLi9JbXBsL0luaXRpYWxpemF0aW9uU2VydmljZUltcGxcIik7XG52YXIgU2V0dGluZ3NTZXJ2aWNlSW1wbF8xID0gcmVxdWlyZShcIi4vSW1wbC9TZXR0aW5nc1NlcnZpY2VJbXBsXCIpO1xuZnVuY3Rpb24gcmVnaXN0ZXJBbGxBZGRJblNlcnZpY2VzKGRpc3BhdGNoZXIpIHtcbiAgICBhcGlfc2hhcmVkXzEuQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLnJlZ2lzdGVyU2VydmljZShuZXcgSW5pdGlhbGl6YXRpb25TZXJ2aWNlSW1wbF8xLkluaXRpYWxpemF0aW9uU2VydmljZUltcGwoZGlzcGF0Y2hlcikpO1xuICAgIGFwaV9zaGFyZWRfMS5BcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UucmVnaXN0ZXJTZXJ2aWNlKG5ldyBTZXR0aW5nc1NlcnZpY2VJbXBsXzEuU2V0dGluZ3NTZXJ2aWNlSW1wbChkaXNwYXRjaGVyKSk7XG59XG5leHBvcnRzLnJlZ2lzdGVyQWxsQWRkSW5TZXJ2aWNlcyA9IHJlZ2lzdGVyQWxsQWRkSW5TZXJ2aWNlcztcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVJlZ2lzdGVyQWxsQWRkSW5TZXJ2aWNlcy5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4uL2xpYi9TZXJ2aWNlcy9SZWdpc3RlckFsbEFkZEluU2VydmljZXMuanNcbiAqKiBtb2R1bGUgaWQgPSA0NlxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgYXBpX2ludGVybmFsX2NvbnRyYWN0XzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0XCIpO1xudmFyIEluaXRpYWxpemF0aW9uU2VydmljZUltcGwgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEluaXRpYWxpemF0aW9uU2VydmljZUltcGwoZGlzcGF0Y2hlcikge1xuICAgICAgICB0aGlzLmRpc3BhdGNoZXIgPSBkaXNwYXRjaGVyO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoSW5pdGlhbGl6YXRpb25TZXJ2aWNlSW1wbC5wcm90b3R5cGUsIFwic2VydmljZU5hbWVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBcIkluaXRpYWxpemF0aW9uU2VydmljZVwiIC8qIEluaXRpYWxpemF0aW9uU2VydmljZSAqLztcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgSW5pdGlhbGl6YXRpb25TZXJ2aWNlSW1wbC5wcm90b3R5cGUuaW5pdGlhbGl6ZURhc2hib2FyZEFkZEluQXN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIC8vIFdlIGRvbid0IG5lZWQgYW55IHBhcmFtZXRlcnMgZm9yIHRoaXMgY2FsbCBiZWNhdXNlIHRoZXkgYXJlIGFkZGVkIGluIGZvciB1cyBieSB0aGUgZGlzcGF0Y2hlclxuICAgICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaGVyLmV4ZWN1dGUoYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuVmVyYklkLkluaXRpYWxpemVBZGRJbiwge30pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICAgICAgICAvLyBUT0RPIC0gVmFsaWRhdGUgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgICB2YXIgcmVzdWx0ID0gcmVzcG9uc2UucmVzdWx0O1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICByZXR1cm4gSW5pdGlhbGl6YXRpb25TZXJ2aWNlSW1wbDtcbn0oKSk7XG5leHBvcnRzLkluaXRpYWxpemF0aW9uU2VydmljZUltcGwgPSBJbml0aWFsaXphdGlvblNlcnZpY2VJbXBsO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9SW5pdGlhbGl6YXRpb25TZXJ2aWNlSW1wbC5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4uL2xpYi9TZXJ2aWNlcy9JbXBsL0luaXRpYWxpemF0aW9uU2VydmljZUltcGwuanNcbiAqKiBtb2R1bGUgaWQgPSA0N1xuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgYXBpX2ludGVybmFsX2NvbnRyYWN0XzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0XCIpO1xudmFyIFNldHRpbmdzU2VydmljZUltcGwgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFNldHRpbmdzU2VydmljZUltcGwoZGlzcGF0Y2hlcikge1xuICAgICAgICB0aGlzLmRpc3BhdGNoZXIgPSBkaXNwYXRjaGVyO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoU2V0dGluZ3NTZXJ2aWNlSW1wbC5wcm90b3R5cGUsIFwic2VydmljZU5hbWVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBcIlNldHRpbmdzU2VydmljZVwiIC8qIFNldHRpbmdzU2VydmljZSAqLztcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgU2V0dGluZ3NTZXJ2aWNlSW1wbC5wcm90b3R5cGUuc2F2ZVNldHRpbmdzQXN5bmMgPSBmdW5jdGlvbiAoc2V0dGluZ3MpIHtcbiAgICAgICAgdmFyIHBhcmFtZXRlcnMgPSAoX2EgPSB7fSwgX2FbYXBpX2ludGVybmFsX2NvbnRyYWN0XzEuUGFyYW1ldGVySWQuU2V0dGluZ3NWYWx1ZXNdID0gc2V0dGluZ3MsIF9hKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hlci5leGVjdXRlKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLlZlcmJJZC5TYXZlQWRkSW5TZXR0aW5ncywgcGFyYW1ldGVycykudGhlbihmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSB2YWx1ZS5yZXN1bHQ7XG4gICAgICAgICAgICBpZiAoIXJlc3VsdCB8fCAhcmVzdWx0LnNldHRpbmdzVmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcm5hbCBlcnJvciBzYXZpbmcgc2V0dGluZ3MuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gKHJlc3VsdC5zZXR0aW5nc1ZhbHVlcyk7XG4gICAgICAgIH0pO1xuICAgICAgICB2YXIgX2E7XG4gICAgfTtcbiAgICByZXR1cm4gU2V0dGluZ3NTZXJ2aWNlSW1wbDtcbn0oKSk7XG5leHBvcnRzLlNldHRpbmdzU2VydmljZUltcGwgPSBTZXR0aW5nc1NlcnZpY2VJbXBsO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9U2V0dGluZ3NTZXJ2aWNlSW1wbC5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4uL2xpYi9TZXJ2aWNlcy9JbXBsL1NldHRpbmdzU2VydmljZUltcGwuanNcbiAqKiBtb2R1bGUgaWQgPSA0OFxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgYWRkaW4gbGlicmFyeVxuICovXG52YXIgVmVyc2lvbk51bWJlciA9IChmdW5jdGlvbiAoKSB7XG4gICAgLy8gcHJpdmF0ZSBjb25zdHJ1Y3RvciBzbyBldmVyeW9uZSB1c2VzIHRoZSBzaW5nbGV0b24gaW5zdGFuY2VcbiAgICBmdW5jdGlvbiBWZXJzaW9uTnVtYmVyKHZlcnNpb25TdHJpbmcpIHtcbiAgICAgICAgdmFyIHBhcnRzID0gdmVyc2lvblN0cmluZy5zcGxpdCgnLicpLm1hcChmdW5jdGlvbiAocCkgeyByZXR1cm4gcGFyc2VJbnQocCwgMTApOyB9KTtcbiAgICAgICAgaWYgKHBhcnRzLmxlbmd0aCAhPT0gMykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHZlcnNpb24gbnVtYmVyOiAnICsgdmVyc2lvblN0cmluZyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fbWFqb3IgPSBwYXJ0c1swXTtcbiAgICAgICAgdGhpcy5fbWlub3IgPSBwYXJ0c1sxXTtcbiAgICAgICAgdGhpcy5fZml4ID0gcGFydHNbMl07XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShWZXJzaW9uTnVtYmVyLCBcIkluc3RhbmNlXCIsIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEdldHMgdGhlIHNpbmdsZXRvbiBpbnN0YW5jZSBvZiB0aGUgdmVyc2lvbiBudW1iZXIuXG4gICAgICAgICAqL1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiBWZXJzaW9uTnVtYmVyLl9pbnN0YW5jZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFZlcnNpb25OdW1iZXIucHJvdG90eXBlLCBcIm1ham9yXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbWFqb3I7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShWZXJzaW9uTnVtYmVyLnByb3RvdHlwZSwgXCJtaW5vclwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21pbm9yO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoVmVyc2lvbk51bWJlci5wcm90b3R5cGUsIFwiZml4XCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZml4O1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICAvLyBVc2luZyBzb21lIHdlYnBhY2sgdHJpY2tzLCB3ZSBjYW4gaW5qZWN0IHRoaXMgdmVyc2lvbiBpbnRvIG91ciBjb2RlIChraW5kYSBsaWtlIGMrKyBwcmVwcm9jZXNzb3Igc3R1ZmYpXG4gICAgVmVyc2lvbk51bWJlci5faW5zdGFuY2UgPSBuZXcgVmVyc2lvbk51bWJlcihBRERJTl9BUElfVkVSU0lPTl9OVU1CRVIpO1xuICAgIHJldHVybiBWZXJzaW9uTnVtYmVyO1xufSgpKTtcbmV4cG9ydHMuVmVyc2lvbk51bWJlciA9IFZlcnNpb25OdW1iZXI7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1WZXJzaW9uTnVtYmVyLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi4vbGliL1ZlcnNpb25OdW1iZXIuanNcbiAqKiBtb2R1bGUgaWQgPSA0OVxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19leHRlbmRzID0gKHRoaXMgJiYgdGhpcy5fX2V4dGVuZHMpIHx8IChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxuICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcbiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XG4gICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcbiAgICB9O1xufSkoKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBDb250cmFjdCA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3RcIik7XG52YXIgYXBpX2ludGVybmFsX2NvbnRyYWN0XzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0XCIpO1xudmFyIGFwaV9zaGFyZWRfMSA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktc2hhcmVkXCIpO1xudmFyIERhc2hib2FyZE9iamVjdF8xID0gcmVxdWlyZShcIi4uL0Rhc2hib2FyZE9iamVjdFwiKTtcbnZhciBXb3Jrc2hlZXRfMSA9IHJlcXVpcmUoXCIuLi9Xb3Jrc2hlZXRcIik7XG52YXIgU2hlZXRJbXBsXzEgPSByZXF1aXJlKFwiLi9TaGVldEltcGxcIik7XG52YXIgU2hlZXRJbmZvSW1wbF8xID0gcmVxdWlyZShcIi4vU2hlZXRJbmZvSW1wbFwiKTtcbnZhciBXb3Jrc2hlZXRJbXBsXzEgPSByZXF1aXJlKFwiLi9Xb3Jrc2hlZXRJbXBsXCIpO1xudmFyIERhc2hib2FyZEltcGwgPSAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhEYXNoYm9hcmRJbXBsLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIERhc2hib2FyZEltcGwoX2luZm8sIF9zaGVldFBhdGgpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgbmV3IFNoZWV0SW5mb0ltcGxfMS5TaGVldEluZm9JbXBsKF9pbmZvLm5hbWUsIENvbnRyYWN0LlNoZWV0VHlwZS5EYXNoYm9hcmQsIG5ldyBhcGlfc2hhcmVkXzEuU2l6ZShfaW5mby5zaXplLmgsIF9pbmZvLnNpemUudykpKSB8fCB0aGlzO1xuICAgICAgICBfdGhpcy5faW5mbyA9IF9pbmZvO1xuICAgICAgICBfdGhpcy5fc2hlZXRQYXRoID0gX3NoZWV0UGF0aDtcbiAgICAgICAgcmV0dXJuIF90aGlzO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRGFzaGJvYXJkSW1wbC5wcm90b3R5cGUsIFwid29ya3NoZWV0c1wiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldHM7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXNoYm9hcmRJbXBsLnByb3RvdHlwZSwgXCJvYmplY3RzXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fb2JqZWN0cztcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgRGFzaGJvYXJkSW1wbC5wcm90b3R5cGUuaW5pdGlhbGl6ZVdpdGhQdWJsaWNJbnRlcmZhY2VzID0gZnVuY3Rpb24gKGRhc2hib2FyZCkge1xuICAgICAgICB0aGlzLl93b3Jrc2hlZXRzID0gbmV3IEFycmF5KCk7XG4gICAgICAgIHRoaXMuX29iamVjdHMgPSBuZXcgQXJyYXkoKTtcbiAgICAgICAgLy8gUHJvY2VzcyBhbGwgdGhlIHpvbmVzIHdoaWNoIGFyZSBjb250YWluZWQgaW4gdGhpcyBkYXNoYm9hcmRcbiAgICAgICAgZm9yICh2YXIgX2kgPSAwLCBfYSA9IHRoaXMuX2luZm8uem9uZXM7IF9pIDwgX2EubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICB2YXIgem9uZSA9IF9hW19pXTtcbiAgICAgICAgICAgIHZhciB3b3Jrc2hlZXQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB2YXIgem9uZVNpemUgPSBuZXcgYXBpX3NoYXJlZF8xLlNpemUoem9uZS5oZWlnaHQsIHpvbmUud2lkdGgpO1xuICAgICAgICAgICAgaWYgKHpvbmUuem9uZVR5cGUgPT09IGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLkRhc2hib2FyZE9iamVjdFR5cGUuV29ya3NoZWV0KSB7XG4gICAgICAgICAgICAgICAgdmFyIHNoZWV0SW5mbyA9IG5ldyBTaGVldEluZm9JbXBsXzEuU2hlZXRJbmZvSW1wbCh6b25lLm5hbWUsIENvbnRyYWN0LlNoZWV0VHlwZS5Xb3Jrc2hlZXQsIHpvbmVTaXplKTtcbiAgICAgICAgICAgICAgICB2YXIgdml6SWQgPSB7XG4gICAgICAgICAgICAgICAgICAgIHdvcmtzaGVldDogem9uZS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICBkYXNoYm9hcmQ6IHRoaXMuX2luZm8ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgc3Rvcnlib2FyZDogdGhpcy5fc2hlZXRQYXRoLnN0b3J5Ym9hcmQsXG4gICAgICAgICAgICAgICAgICAgIGZsaXBib2FyZFpvbmVJRDogdGhpcy5fc2hlZXRQYXRoLmZsaXBib2FyZFpvbmVJRCxcbiAgICAgICAgICAgICAgICAgICAgc3RvcnlQb2ludElEOiB0aGlzLl9zaGVldFBhdGguc3RvcnlQb2ludElEXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB2YXIgd29ya3NoZWV0SW1wbCA9IG5ldyBXb3Jrc2hlZXRJbXBsXzEuV29ya3NoZWV0SW1wbChzaGVldEluZm8sIHZpeklkLCBkYXNoYm9hcmQpO1xuICAgICAgICAgICAgICAgIHdvcmtzaGVldCA9IG5ldyBXb3Jrc2hlZXRfMS5Xb3Jrc2hlZXQod29ya3NoZWV0SW1wbCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fd29ya3NoZWV0cy5wdXNoKHdvcmtzaGVldCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB2YXIgem9uZVBvaW50ID0gbmV3IGFwaV9zaGFyZWRfMS5Qb2ludCh6b25lLngsIHpvbmUueSk7XG4gICAgICAgICAgICB2YXIgZGFzaGJvYXJkT2JqZWN0ID0gbmV3IERhc2hib2FyZE9iamVjdF8xLkRhc2hib2FyZE9iamVjdChkYXNoYm9hcmQsIGFwaV9zaGFyZWRfMS5JbnRlcm5hbFRvRXh0ZXJuYWxFbnVtTWFwcGluZ3MuZGFzaGJvYXJkT2JqZWN0VHlwZS5jb252ZXJ0KHpvbmUuem9uZVR5cGUpLCB6b25lUG9pbnQsIHpvbmVTaXplLCB3b3Jrc2hlZXQpO1xuICAgICAgICAgICAgdGhpcy5fb2JqZWN0cy5wdXNoKGRhc2hib2FyZE9iamVjdCk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiBEYXNoYm9hcmRJbXBsO1xufShTaGVldEltcGxfMS5TaGVldEltcGwpKTtcbmV4cG9ydHMuRGFzaGJvYXJkSW1wbCA9IERhc2hib2FyZEltcGw7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1EYXNoYm9hcmRJbXBsLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi4vbGliL0ludGVybmFsL0Rhc2hib2FyZEltcGwuanNcbiAqKiBtb2R1bGUgaWQgPSA1MFxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG4vKipcbiAqIEltcGxlbWVudGF0aW9uIG9mIHRoZSBkYXNoYm9hcmQgb2JqZWN0cyAtIHRoZSB6b25lcyBpbiBhIGRhc2hib2FyZC5cbiAqIFRoaXMgZG9lcyBub3QgZm9sbG93IHRoZSBJbXBsIHBhdHRlcm4gYXMgaXQgaXMganVzdCBhIHByb3BlcnR5IGJhZy5cbiAqL1xudmFyIERhc2hib2FyZE9iamVjdCA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gRGFzaGJvYXJkT2JqZWN0KF9kYXNoYm9hcmQsIF90eXBlLCBfcG9zaXRpb24sIF9zaXplLCBfd29ya3NoZWV0KSB7XG4gICAgICAgIHRoaXMuX2Rhc2hib2FyZCA9IF9kYXNoYm9hcmQ7XG4gICAgICAgIHRoaXMuX3R5cGUgPSBfdHlwZTtcbiAgICAgICAgdGhpcy5fcG9zaXRpb24gPSBfcG9zaXRpb247XG4gICAgICAgIHRoaXMuX3NpemUgPSBfc2l6ZTtcbiAgICAgICAgdGhpcy5fd29ya3NoZWV0ID0gX3dvcmtzaGVldDtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KERhc2hib2FyZE9iamVjdC5wcm90b3R5cGUsIFwiZGFzaGJvYXJkXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZGFzaGJvYXJkO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRGFzaGJvYXJkT2JqZWN0LnByb3RvdHlwZSwgXCJ0eXBlXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KERhc2hib2FyZE9iamVjdC5wcm90b3R5cGUsIFwicG9zaXRpb25cIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9wb3NpdGlvbjtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KERhc2hib2FyZE9iamVjdC5wcm90b3R5cGUsIFwic2l6ZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3NpemU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXNoYm9hcmRPYmplY3QucHJvdG90eXBlLCBcIndvcmtzaGVldFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldDtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgcmV0dXJuIERhc2hib2FyZE9iamVjdDtcbn0oKSk7XG5leHBvcnRzLkRhc2hib2FyZE9iamVjdCA9IERhc2hib2FyZE9iamVjdDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURhc2hib2FyZE9iamVjdC5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4uL2xpYi9EYXNoYm9hcmRPYmplY3QuanNcbiAqKiBtb2R1bGUgaWQgPSA1MVxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19leHRlbmRzID0gKHRoaXMgJiYgdGhpcy5fX2V4dGVuZHMpIHx8IChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxuICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcbiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XG4gICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcbiAgICB9O1xufSkoKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBTaGVldF8xID0gcmVxdWlyZShcIi4vU2hlZXRcIik7XG52YXIgV29ya3NoZWV0ID0gKGZ1bmN0aW9uIChfc3VwZXIpIHtcbiAgICBfX2V4dGVuZHMoV29ya3NoZWV0LCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFdvcmtzaGVldChfd29ya3NoZWV0SW1wbCkge1xuICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzLCBfd29ya3NoZWV0SW1wbCkgfHwgdGhpcztcbiAgICAgICAgX3RoaXMuX3dvcmtzaGVldEltcGwgPSBfd29ya3NoZWV0SW1wbDtcbiAgICAgICAgLy8gQ2FsbCB0byBpbml0aWFsaXplIGV2ZW50cyBhbmQgdGhlbiBjYWxsIGRvd24gdG8gdGhlIGV2ZW50IGxpc3RlbmVyIG1hbmFnZXIgdG8gaGFuZGxlIHRoaW5nc1xuICAgICAgICBfdGhpcy5fd29ya3NoZWV0SW1wbC5pbml0aWFsaXplRXZlbnRzKF90aGlzKS5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7IHJldHVybiBfdGhpcy5hZGROZXdFdmVudFR5cGUoZSk7IH0pO1xuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXb3Jrc2hlZXQucHJvdG90eXBlLCBcInBhcmVudERhc2hib2FyZFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldEltcGwucGFyZW50RGFzaGJvYXJkO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBXb3Jrc2hlZXQucHJvdG90eXBlLmFwcGx5RmlsdGVyQXN5bmMgPSBmdW5jdGlvbiAoZmllbGROYW1lLCB2YWx1ZXMsIHVwZGF0ZVR5cGUsIG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldEltcGwuYXBwbHlGaWx0ZXJBc3luYyhmaWVsZE5hbWUsIHZhbHVlcywgdXBkYXRlVHlwZSwgb3B0aW9ucyk7XG4gICAgfTtcbiAgICBXb3Jrc2hlZXQucHJvdG90eXBlLmFwcGx5UmFuZ2VGaWx0ZXJBc3luYyA9IGZ1bmN0aW9uIChmaWVsZE5hbWUsIGZpbHRlck9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldEltcGwuYXBwbHlSYW5nZUZpbHRlckFzeW5jKGZpZWxkTmFtZSwgZmlsdGVyT3B0aW9ucyk7XG4gICAgfTtcbiAgICBXb3Jrc2hlZXQucHJvdG90eXBlLmNsZWFyRmlsdGVyQXN5bmMgPSBmdW5jdGlvbiAoZmllbGROYW1lKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXRJbXBsLmNsZWFyRmlsdGVyQXN5bmMoZmllbGROYW1lKTtcbiAgICB9O1xuICAgIFdvcmtzaGVldC5wcm90b3R5cGUuZ2V0QW5hbHl0aWNPYmplY3RzQXN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQVBJIGNhbGwgbm90IHlldCBpbXBsZW1lbnRlZC4nKTtcbiAgICB9O1xuICAgIFdvcmtzaGVldC5wcm90b3R5cGUuZ2V0RGF0YVNvdXJjZXNBc3luYyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldEltcGwuZ2V0RGF0YVNvdXJjZXNBc3luYygpO1xuICAgIH07XG4gICAgV29ya3NoZWV0LnByb3RvdHlwZS5nZXRFbmNvZGluZ3NBc3luYyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBUEkgY2FsbCBub3QgeWV0IGltcGxlbWVudGVkLicpO1xuICAgIH07XG4gICAgV29ya3NoZWV0LnByb3RvdHlwZS5nZXRGaWx0ZXJzQXN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXRJbXBsLmdldEZpbHRlcnNBc3luYygpO1xuICAgIH07XG4gICAgV29ya3NoZWV0LnByb3RvdHlwZS5nZXRTZWxlY3RlZE1hcmtzQXN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXRJbXBsLmdldFNlbGVjdGVkTWFya3NBc3luYygpO1xuICAgIH07XG4gICAgV29ya3NoZWV0LnByb3RvdHlwZS5nZXRIaWdobGlnaHRlZE1hcmtzQXN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXRJbXBsLmdldEhpZ2hsaWdodGVkTWFya3NBc3luYygpO1xuICAgIH07XG4gICAgV29ya3NoZWV0LnByb3RvdHlwZS5nZXRTdW1tYXJ5RGF0YUFzeW5jID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dvcmtzaGVldEltcGwuZ2V0U3VtbWFyeURhdGFBc3luYyhvcHRpb25zKTtcbiAgICB9O1xuICAgIFdvcmtzaGVldC5wcm90b3R5cGUuZ2V0VW5kZXJseWluZ0RhdGFBc3luYyA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXRJbXBsLmdldFVuZGVybHlpbmdEYXRhQXN5bmMob3B0aW9ucyk7XG4gICAgfTtcbiAgICBXb3Jrc2hlZXQucHJvdG90eXBlLmNsZWFyU2VsZWN0ZWRNYXJrc0FzeW5jID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fd29ya3NoZWV0SW1wbC5jbGVhclNlbGVjdGVkTWFya3NBc3luYygpO1xuICAgIH07XG4gICAgV29ya3NoZWV0LnByb3RvdHlwZS5zZWxlY3RNYXJrc0J5SURBc3luYyA9IGZ1bmN0aW9uIChtYXJrc0luZm8sIHVwZGF0ZVR5cGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBUEkgY2FsbCBub3QgeWV0IGltcGxlbWVudGVkLicpO1xuICAgIH07XG4gICAgV29ya3NoZWV0LnByb3RvdHlwZS5zZWxlY3RNYXJrc0J5VmFsdWVBc3luYyA9IGZ1bmN0aW9uIChzZWxlY3Rpb25zLCBzZWxlY3Rpb25VcGRhdGVUeXBlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXRJbXBsLnNlbGVjdE1hcmtzQnlWYWx1ZUFzeW5jKHNlbGVjdGlvbnMsIHNlbGVjdGlvblVwZGF0ZVR5cGUpO1xuICAgIH07XG4gICAgV29ya3NoZWV0LnByb3RvdHlwZS5zZWxlY3RNYXJrc0J5SWRBc3luYyA9IGZ1bmN0aW9uIChzZWxlY3Rpb25zLCBzZWxlY3Rpb25VcGRhdGVUeXBlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl93b3Jrc2hlZXRJbXBsLnNlbGVjdE1hcmtzQnlJZEFzeW5jKHNlbGVjdGlvbnMsIHNlbGVjdGlvblVwZGF0ZVR5cGUpO1xuICAgIH07XG4gICAgcmV0dXJuIFdvcmtzaGVldDtcbn0oU2hlZXRfMS5TaGVldCkpO1xuZXhwb3J0cy5Xb3Jrc2hlZXQgPSBXb3Jrc2hlZXQ7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Xb3Jrc2hlZXQuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiAuLi9saWIvV29ya3NoZWV0LmpzXG4gKiogbW9kdWxlIGlkID0gNTJcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIGFwaV9zaGFyZWRfMSA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktc2hhcmVkXCIpO1xudmFyIFNoZWV0SW1wbCA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gU2hlZXRJbXBsKF9zaGVldEluZm9JbXBsKSB7XG4gICAgICAgIHRoaXMuX3NoZWV0SW5mb0ltcGwgPSBfc2hlZXRJbmZvSW1wbDtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFNoZWV0SW1wbC5wcm90b3R5cGUsIFwibmFtZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3NoZWV0SW5mb0ltcGwubmFtZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFNoZWV0SW1wbC5wcm90b3R5cGUsIFwic2hlZXRUeXBlXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fc2hlZXRJbmZvSW1wbC5zaGVldFR5cGU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTaGVldEltcGwucHJvdG90eXBlLCBcInNoZWV0UGF0aFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3NoZWV0SW5mb0ltcGwuc2hlZXRQYXRoO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoU2hlZXRJbXBsLnByb3RvdHlwZSwgXCJzaXplXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fc2hlZXRJbmZvSW1wbC5zaGVldFNpemU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIFNoZWV0SW1wbC5wcm90b3R5cGUuZmluZFBhcmFtZXRlckFzeW5jID0gZnVuY3Rpb24gKHBhcmFtZXRlck5hbWUsIHNoZWV0KSB7XG4gICAgICAgIHZhciBzZXJ2aWNlID0gYXBpX3NoYXJlZF8xLkFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlKFwicGFyYW1ldGVycy1zZXJ2aWNlXCIgLyogUGFyYW1ldGVycyAqLyk7XG4gICAgICAgIHJldHVybiBzZXJ2aWNlLmZpbmRQYXJhbWV0ZXJCeU5hbWVBc3luYyhwYXJhbWV0ZXJOYW1lLCBzaGVldCk7XG4gICAgfTtcbiAgICBTaGVldEltcGwucHJvdG90eXBlLmdldFBhcmFtZXRlcnNBc3luYyA9IGZ1bmN0aW9uIChzaGVldCkge1xuICAgICAgICB2YXIgc2VydmljZSA9IGFwaV9zaGFyZWRfMS5BcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZShcInBhcmFtZXRlcnMtc2VydmljZVwiIC8qIFBhcmFtZXRlcnMgKi8pO1xuICAgICAgICByZXR1cm4gc2VydmljZS5nZXRQYXJhbWV0ZXJzRm9yU2hlZXRBc3luYyh0aGlzLnNoZWV0UGF0aCwgc2hlZXQpO1xuICAgIH07XG4gICAgcmV0dXJuIFNoZWV0SW1wbDtcbn0oKSk7XG5leHBvcnRzLlNoZWV0SW1wbCA9IFNoZWV0SW1wbDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPVNoZWV0SW1wbC5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4uL2xpYi9JbnRlcm5hbC9TaGVldEltcGwuanNcbiAqKiBtb2R1bGUgaWQgPSA1M1xuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgYXBpX2V4dGVybmFsX2NvbnRyYWN0XzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLWV4dGVybmFsLWNvbnRyYWN0XCIpO1xudmFyIFNoZWV0SW5mb0ltcGwgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIFNoZWV0SW5mb0ltcGwoX25hbWUsIF9zaGVldFR5cGUsIF9zaGVldFNpemUpIHtcbiAgICAgICAgdGhpcy5fbmFtZSA9IF9uYW1lO1xuICAgICAgICB0aGlzLl9zaGVldFR5cGUgPSBfc2hlZXRUeXBlO1xuICAgICAgICB0aGlzLl9zaGVldFNpemUgPSBfc2hlZXRTaXplO1xuICAgIH1cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoU2hlZXRJbmZvSW1wbC5wcm90b3R5cGUsIFwibmFtZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX25hbWU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTaGVldEluZm9JbXBsLnByb3RvdHlwZSwgXCJzaGVldFNpemVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zaGVldFNpemU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTaGVldEluZm9JbXBsLnByb3RvdHlwZSwgXCJzaGVldFR5cGVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zaGVldFR5cGU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTaGVldEluZm9JbXBsLnByb3RvdHlwZSwgXCJzaGVldFBhdGhcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgc2hlZXROYW1lOiB0aGlzLm5hbWUsXG4gICAgICAgICAgICAgICAgaXNEYXNoYm9hcmQ6IHRoaXMuc2hlZXRUeXBlID09PSBhcGlfZXh0ZXJuYWxfY29udHJhY3RfMS5TaGVldFR5cGUuRGFzaGJvYXJkXG4gICAgICAgICAgICAgICAgLy8gVE9ETyAtIFN0b3JpZXNcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIHJldHVybiBTaGVldEluZm9JbXBsO1xufSgpKTtcbmV4cG9ydHMuU2hlZXRJbmZvSW1wbCA9IFNoZWV0SW5mb0ltcGw7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1TaGVldEluZm9JbXBsLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi4vbGliL0ludGVybmFsL1NoZWV0SW5mb0ltcGwuanNcbiAqKiBtb2R1bGUgaWQgPSA1NFxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19leHRlbmRzID0gKHRoaXMgJiYgdGhpcy5fX2V4dGVuZHMpIHx8IChmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxuICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChiLmhhc093blByb3BlcnR5KHApKSBkW3BdID0gYltwXTsgfTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKGQsIGIpIHtcbiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcbiAgICAgICAgZnVuY3Rpb24gX18oKSB7IHRoaXMuY29uc3RydWN0b3IgPSBkOyB9XG4gICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcbiAgICB9O1xufSkoKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBDb250cmFjdCA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktZXh0ZXJuYWwtY29udHJhY3RcIik7XG52YXIgYXBpX2ludGVybmFsX2NvbnRyYWN0XzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLWludGVybmFsLWNvbnRyYWN0XCIpO1xudmFyIGFwaV9zaGFyZWRfMSA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktc2hhcmVkXCIpO1xudmFyIERhdGFTb3VyY2VfMSA9IHJlcXVpcmUoXCIuLi9EYXRhU291cmNlXCIpO1xudmFyIERhdGFTb3VyY2VJbXBsXzEgPSByZXF1aXJlKFwiLi9EYXRhU291cmNlSW1wbFwiKTtcbnZhciBTaGVldEltcGxfMSA9IHJlcXVpcmUoXCIuL1NoZWV0SW1wbFwiKTtcbnZhciB2aXN1YWxJZHNBcmVFcXVhbCA9IGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgcmV0dXJuIGEgJiYgYiAmJlxuICAgICAgICBhLndvcmtzaGVldCA9PT0gYi53b3Jrc2hlZXQgJiZcbiAgICAgICAgYS5kYXNoYm9hcmQgPT09IGIuZGFzaGJvYXJkICYmXG4gICAgICAgIGEuc3Rvcnlib2FyZCA9PT0gYi5zdG9yeWJvYXJkICYmXG4gICAgICAgIGEuc3RvcnlQb2ludElEID09PSBiLnN0b3J5UG9pbnRJRCAmJlxuICAgICAgICBhLmZsaXBib2FyZFpvbmVJRCA9PT0gYi5mbGlwYm9hcmRab25lSUQ7XG59O1xudmFyIFdvcmtzaGVldEltcGwgPSAoZnVuY3Rpb24gKF9zdXBlcikge1xuICAgIF9fZXh0ZW5kcyhXb3Jrc2hlZXRJbXBsLCBfc3VwZXIpO1xuICAgIGZ1bmN0aW9uIFdvcmtzaGVldEltcGwoc2hlZXRJbmZvSW1wbCwgX3Zpc3VhbElkLCBfcGFyZW50RGFzaGJvYXJkKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIHNoZWV0SW5mb0ltcGwpIHx8IHRoaXM7XG4gICAgICAgIF90aGlzLl92aXN1YWxJZCA9IF92aXN1YWxJZDtcbiAgICAgICAgX3RoaXMuX3BhcmVudERhc2hib2FyZCA9IF9wYXJlbnREYXNoYm9hcmQ7XG4gICAgICAgIHJldHVybiBfdGhpcztcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFdvcmtzaGVldEltcGwucHJvdG90eXBlLCBcInBhcmVudERhc2hib2FyZFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3BhcmVudERhc2hib2FyZDtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgLyoqXG4gICAgICogSGVscGVyIG1ldGhvZCB3aGljaCBnb2VzIHRocm91Z2ggYW5kIHJlZ2lzdGVycyBlYWNoIGV2ZW50IHR5cGUgdGhpcyBpbXBsIGtub3dzIGFib3V0XG4gICAgICogd2l0aCB0aGUgTm90aWZpY2F0aW9uU2VydmljZS4gSXQgcmV0dXJucyBhbiBhcnJheSBvZiBTaW5nbGVFdmVudE1hbmFnZXIgb2JqZWN0cyB3aGljaFxuICAgICAqIGNhbiB0aGVuIGJlIHBhc3NlZCB0byBhbiBFdmVudExpc3RlbmVyTWFuYWdlciB0byBoYW5kbGUgdXNlciByZWdpc3RyYXRpb24gLyB1bnJlZ2lzdHJhdGlvbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7V29ya3NoZWV0fSB3b3Jrc2hlZXQgVGhlIHdvcmtzaGVldCBvYmplY3Qgd2hpY2ggd2lsbCBiZSBpbmNsdWRlZCB3aXRoIHRoZSBldmVudCBub3RpZmljYXRpb25zXG4gICAgICogQHJldHVybnMge0FycmF5PFNpbmdsZUV2ZW50TWFuYWdlcj59IENvbGxlY3Rpb24gb2YgZXZlbnQgbWFuYWdlcnMgdG8gcGFzcyB0byBhbiBFdmVudExpc3RlbmVyTWFuYWdlclxuICAgICAqL1xuICAgIFdvcmtzaGVldEltcGwucHJvdG90eXBlLmluaXRpYWxpemVFdmVudHMgPSBmdW5jdGlvbiAod29ya3NoZWV0KSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHZhciByZXN1bHRzID0gbmV3IEFycmF5KCk7XG4gICAgICAgIHZhciBub3RpZmljYXRpb25TZXJ2aWNlO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbm90aWZpY2F0aW9uU2VydmljZSA9IGFwaV9zaGFyZWRfMS5BcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZShcIm5vdGlmaWNhdGlvbi1zZXJ2aWNlXCIgLyogTm90aWZpY2F0aW9uICovKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy8gSWYgd2UgZG9uJ3QgaGF2ZSB0aGlzIHNlcnZpY2UgcmVnaXN0ZXJlZCwganVzdCByZXR1cm5cbiAgICAgICAgICAgIHJldHVybiByZXN1bHRzO1xuICAgICAgICB9XG4gICAgICAgIC8vIEluaXRpYWxpemUgYWxsIG9mIHRoZSBldmVudCBtYW5hZ2VycyB3ZSdsbCBuZWVkIChvbmUgZm9yIGVhY2ggZXZlbnQgdHlwZSlcbiAgICAgICAgdmFyIG1hcmtzRXZlbnQgPSBuZXcgYXBpX3NoYXJlZF8xLlNpbmdsZUV2ZW50TWFuYWdlckltcGwoQ29udHJhY3QuVGFibGVhdUV2ZW50VHlwZS5NYXJrU2VsZWN0aW9uQ2hhbmdlZCk7XG4gICAgICAgIG5vdGlmaWNhdGlvblNlcnZpY2UucmVnaXN0ZXJIYW5kbGVyKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLk5vdGlmaWNhdGlvbklkLlNlbGVjdGVkTWFya3NDaGFuZ2VkLCBmdW5jdGlvbiAobW9kZWwpIHtcbiAgICAgICAgICAgIHZhciB2aXN1YWxJZCA9IG1vZGVsO1xuICAgICAgICAgICAgcmV0dXJuIHZpc3VhbElkc0FyZUVxdWFsKHZpc3VhbElkLCBfdGhpcy52aXN1YWxJZCk7XG4gICAgICAgIH0sIGZ1bmN0aW9uICh2aXopIHtcbiAgICAgICAgICAgIG1hcmtzRXZlbnQudHJpZ2dlckV2ZW50KGZ1bmN0aW9uICgpIHsgcmV0dXJuIG5ldyBhcGlfc2hhcmVkXzEuTWFya3NTZWxlY3RlZEV2ZW50KHdvcmtzaGVldCk7IH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdmFyIGZpbHRlckV2ZW50ID0gbmV3IGFwaV9zaGFyZWRfMS5TaW5nbGVFdmVudE1hbmFnZXJJbXBsKENvbnRyYWN0LlRhYmxlYXVFdmVudFR5cGUuRmlsdGVyQ2hhbmdlZCk7XG4gICAgICAgIG5vdGlmaWNhdGlvblNlcnZpY2UucmVnaXN0ZXJIYW5kbGVyKGFwaV9pbnRlcm5hbF9jb250cmFjdF8xLk5vdGlmaWNhdGlvbklkLkZpbHRlckNoYW5nZWQsIGZ1bmN0aW9uIChtb2RlbCkge1xuICAgICAgICAgICAgdmFyIGZpbHRlckV2ZW50UmVzcG9uc2UgPSBtb2RlbDtcbiAgICAgICAgICAgIHJldHVybiBfdGhpcy52aXN1YWxJZC53b3Jrc2hlZXQgPT09IGZpbHRlckV2ZW50UmVzcG9uc2UudmlzdWFsSWQud29ya3NoZWV0O1xuICAgICAgICB9LCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgIGZpbHRlckV2ZW50LnRyaWdnZXJFdmVudChmdW5jdGlvbiAoKSB7IHJldHVybiBuZXcgYXBpX3NoYXJlZF8xLkZpbHRlckNoYW5nZWRFdmVudCh3b3Jrc2hlZXQsIGV2ZW50LmZpZWxkTmFtZSk7IH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmVzdWx0cy5wdXNoKG1hcmtzRXZlbnQpO1xuICAgICAgICByZXN1bHRzLnB1c2goZmlsdGVyRXZlbnQpO1xuICAgICAgICAvLyBUT0RPIC0gb3RoZXIgZXZlbnQgdHlwZXNcbiAgICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgfTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoV29ya3NoZWV0SW1wbC5wcm90b3R5cGUsIFwidmlzdWFsSWRcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl92aXN1YWxJZDtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgV29ya3NoZWV0SW1wbC5wcm90b3R5cGUuYXBwbHlGaWx0ZXJBc3luYyA9IGZ1bmN0aW9uIChmaWVsZE5hbWUsIHZhbHVlcywgdXBkYXRlVHlwZSwgb3B0aW9ucykge1xuICAgICAgICB2YXIgc2VydmljZSA9IGFwaV9zaGFyZWRfMS5BcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZShcImZpbHRlci1zZXJ2aWNlXCIgLyogRmlsdGVyICovKTtcbiAgICAgICAgcmV0dXJuIHNlcnZpY2UuYXBwbHlGaWx0ZXJBc3luYyh0aGlzLnZpc3VhbElkLCBmaWVsZE5hbWUsIHZhbHVlcywgdXBkYXRlVHlwZSwgb3B0aW9ucyk7XG4gICAgfTtcbiAgICBXb3Jrc2hlZXRJbXBsLnByb3RvdHlwZS5hcHBseVJhbmdlRmlsdGVyQXN5bmMgPSBmdW5jdGlvbiAoZmllbGROYW1lLCBmaWx0ZXJPcHRpb25zKSB7XG4gICAgICAgIHZhciBzZXJ2aWNlID0gYXBpX3NoYXJlZF8xLkFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlKFwiZmlsdGVyLXNlcnZpY2VcIiAvKiBGaWx0ZXIgKi8pO1xuICAgICAgICByZXR1cm4gc2VydmljZS5hcHBseVJhbmdlRmlsdGVyQXN5bmModGhpcy52aXN1YWxJZCwgZmllbGROYW1lLCBmaWx0ZXJPcHRpb25zKTtcbiAgICB9O1xuICAgIFdvcmtzaGVldEltcGwucHJvdG90eXBlLmNsZWFyRmlsdGVyQXN5bmMgPSBmdW5jdGlvbiAoZmllbGROYW1lKSB7XG4gICAgICAgIHZhciBzZXJ2aWNlID0gYXBpX3NoYXJlZF8xLkFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlKFwiZmlsdGVyLXNlcnZpY2VcIiAvKiBGaWx0ZXIgKi8pO1xuICAgICAgICByZXR1cm4gc2VydmljZS5jbGVhckZpbHRlckFzeW5jKHRoaXMudmlzdWFsSWQsIGZpZWxkTmFtZSk7XG4gICAgfTtcbiAgICBXb3Jrc2hlZXRJbXBsLnByb3RvdHlwZS5nZXREYXRhU291cmNlc0FzeW5jID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX3RoaXMgPSB0aGlzO1xuICAgICAgICB2YXIgc2VydmljZSA9IGFwaV9zaGFyZWRfMS5BcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZShcImRhdGEtc291cmNlLXNlcnZpY2VcIiAvKiBEYXRhU291cmNlU2VydmljZSAqLyk7XG4gICAgICAgIHJldHVybiBzZXJ2aWNlLmdldERhdGFTb3VyY2VzQXN5bmMoKS50aGVuKGZ1bmN0aW9uIChyZXN1bHQpIHtcbiAgICAgICAgICAgIHZhciBkYXRhU2NoZW1hID0gcmVzdWx0O1xuICAgICAgICAgICAgdmFyIHdvcmtzaGVldERhdGFTb3VyY2VJbmZvID0gZGF0YVNjaGVtYS53b3Jrc2hlZXREYXRhU2NoZW1hTWFwW190aGlzLm5hbWVdO1xuICAgICAgICAgICAgdmFyIGRhdGFTb3VyY2VzID0gW107XG4gICAgICAgICAgICAvLyBGaXJzdCwgYWRkIHRoZSBwcmltYXJ5IGRhdGFzb3VyY2UuICBCeSBjb252ZW50aW9uLCBpdCBjb21lcyBmaXJzdCBpbiB0aGUgcmV0dXJuZWQgYXJyYXkuXG4gICAgICAgICAgICB2YXIgcHJpbWFyeUlkID0gd29ya3NoZWV0RGF0YVNvdXJjZUluZm8ucHJpbWFyeURhdGFTb3VyY2U7XG4gICAgICAgICAgICBkYXRhU291cmNlcy5wdXNoKF90aGlzLmNyZWF0ZURhdGFTb3VyY2VGcm9tSW5mbyhkYXRhU2NoZW1hLmRhdGFTb3VyY2VzW3ByaW1hcnlJZF0pKTtcbiAgICAgICAgICAgIC8vIFRoZW4sIGxvb3AgdGhyb3VnaCBhbnkgc2Vjb25kYXJ5IGRhdGEgc291cmNlcyBhbmQgYWRkIHRoZW0uXG4gICAgICAgICAgICBmb3IgKHZhciBfaSA9IDAsIF9hID0gd29ya3NoZWV0RGF0YVNvdXJjZUluZm8ucmVmZXJlbmNlZERhdGFTb3VyY2VMaXN0OyBfaSA8IF9hLmxlbmd0aDsgX2krKykge1xuICAgICAgICAgICAgICAgIHZhciBzZWNvbmRhcnlJZCA9IF9hW19pXTtcbiAgICAgICAgICAgICAgICBpZiAoc2Vjb25kYXJ5SWQgIT09IHByaW1hcnlJZCkge1xuICAgICAgICAgICAgICAgICAgICBkYXRhU291cmNlcy5wdXNoKF90aGlzLmNyZWF0ZURhdGFTb3VyY2VGcm9tSW5mbyhkYXRhU2NoZW1hLmRhdGFTb3VyY2VzW3NlY29uZGFyeUlkXSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBkYXRhU291cmNlcztcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBXb3Jrc2hlZXRJbXBsLnByb3RvdHlwZS5nZXRGaWx0ZXJzQXN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBzZXJ2aWNlID0gYXBpX3NoYXJlZF8xLkFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlKFwiZmlsdGVyLXNlcnZpY2VcIiAvKiBGaWx0ZXIgKi8pO1xuICAgICAgICByZXR1cm4gc2VydmljZS5nZXRGaWx0ZXJzQXN5bmModGhpcy52aXN1YWxJZCk7XG4gICAgfTtcbiAgICBXb3Jrc2hlZXRJbXBsLnByb3RvdHlwZS5nZXRTZWxlY3RlZE1hcmtzQXN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBzZXJ2aWNlID0gYXBpX3NoYXJlZF8xLkFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlKFwiZ2V0LWRhdGEtc2VydmljZVwiIC8qIEdldERhdGEgKi8pO1xuICAgICAgICByZXR1cm4gc2VydmljZS5nZXRTZWxlY3RlZE1hcmtzQXN5bmModGhpcy52aXN1YWxJZCk7XG4gICAgfTtcbiAgICBXb3Jrc2hlZXRJbXBsLnByb3RvdHlwZS5nZXRIaWdobGlnaHRlZE1hcmtzQXN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBzZXJ2aWNlID0gYXBpX3NoYXJlZF8xLkFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlKFwiZ2V0LWRhdGEtc2VydmljZVwiIC8qIEdldERhdGEgKi8pO1xuICAgICAgICByZXR1cm4gc2VydmljZS5nZXRIaWdobGlnaHRlZE1hcmtzQXN5bmModGhpcy52aXN1YWxJZCk7XG4gICAgfTtcbiAgICBXb3Jrc2hlZXRJbXBsLnByb3RvdHlwZS5nZXRTdW1tYXJ5RGF0YUFzeW5jID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIHNlcnZpY2UgPSBhcGlfc2hhcmVkXzEuQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2UoXCJnZXQtZGF0YS1zZXJ2aWNlXCIgLyogR2V0RGF0YSAqLyk7XG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgICByZXR1cm4gc2VydmljZS5nZXRVbmRlcmx5aW5nRGF0YUFzeW5jKHRoaXMudmlzdWFsSWQsIGFwaV9zaGFyZWRfMS5HZXREYXRhVHlwZS5TdW1tYXJ5LCAhIW9wdGlvbnMuaWdub3JlQWxpYXNlcywgISFvcHRpb25zLmlnbm9yZVNlbGVjdGlvbiwgdHJ1ZSwgMCk7XG4gICAgfTtcbiAgICBXb3Jrc2hlZXRJbXBsLnByb3RvdHlwZS5nZXRVbmRlcmx5aW5nRGF0YUFzeW5jID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIHNlcnZpY2UgPSBhcGlfc2hhcmVkXzEuQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2UoXCJnZXQtZGF0YS1zZXJ2aWNlXCIgLyogR2V0RGF0YSAqLyk7XG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgICByZXR1cm4gc2VydmljZS5nZXRVbmRlcmx5aW5nRGF0YUFzeW5jKHRoaXMudmlzdWFsSWQsIGFwaV9zaGFyZWRfMS5HZXREYXRhVHlwZS5VbmRlcmx5aW5nLCAhIW9wdGlvbnMuaWdub3JlQWxpYXNlcywgISFvcHRpb25zLmlnbm9yZVNlbGVjdGlvbiwgISFvcHRpb25zLmluY2x1ZGVBbGxDb2x1bW5zLCBvcHRpb25zLm1heFJvd3MgfHwgMCk7XG4gICAgfTtcbiAgICBXb3Jrc2hlZXRJbXBsLnByb3RvdHlwZS5jbGVhclNlbGVjdGVkTWFya3NBc3luYyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIHNlcnZpY2UgPSBhcGlfc2hhcmVkXzEuQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2UoXCJzZWxlY3Rpb24tc2VydmljZVwiIC8qIFNlbGVjdGlvbiAqLyk7XG4gICAgICAgIHJldHVybiBzZXJ2aWNlLmNsZWFyU2VsZWN0ZWRNYXJrc0FzeW5jKHRoaXMudmlzdWFsSWQpO1xuICAgIH07XG4gICAgV29ya3NoZWV0SW1wbC5wcm90b3R5cGUuc2VsZWN0TWFya3NCeVZhbHVlQXN5bmMgPSBmdW5jdGlvbiAoc2VsZWN0aW9ucywgc2VsZWN0aW9uVXBkYXRlVHlwZSkge1xuICAgICAgICB2YXIgc2VydmljZSA9IGFwaV9zaGFyZWRfMS5BcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZShcInNlbGVjdGlvbi1zZXJ2aWNlXCIgLyogU2VsZWN0aW9uICovKTtcbiAgICAgICAgcmV0dXJuIHNlcnZpY2Uuc2VsZWN0TWFya3NCeVZhbHVlQXN5bmModGhpcy52aXN1YWxJZCwgc2VsZWN0aW9ucywgc2VsZWN0aW9uVXBkYXRlVHlwZSk7XG4gICAgfTtcbiAgICBXb3Jrc2hlZXRJbXBsLnByb3RvdHlwZS5zZWxlY3RNYXJrc0J5SWRBc3luYyA9IGZ1bmN0aW9uIChzZWxlY3Rpb25zLCBzZWxlY3Rpb25VcGRhdGVUeXBlKSB7XG4gICAgICAgIHZhciBzZXJ2aWNlID0gYXBpX3NoYXJlZF8xLkFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlKFwic2VsZWN0aW9uLXNlcnZpY2VcIiAvKiBTZWxlY3Rpb24gKi8pO1xuICAgICAgICByZXR1cm4gc2VydmljZS5zZWxlY3RNYXJrc0J5SWRBc3luYyh0aGlzLnZpc3VhbElkLCBzZWxlY3Rpb25zLCBzZWxlY3Rpb25VcGRhdGVUeXBlKTtcbiAgICB9O1xuICAgIFdvcmtzaGVldEltcGwucHJvdG90eXBlLmNyZWF0ZURhdGFTb3VyY2VGcm9tSW5mbyA9IGZ1bmN0aW9uIChkYXRhU291cmNlSW5mbykge1xuICAgICAgICB2YXIgZGF0YVNvdXJjZUltcGwgPSBuZXcgRGF0YVNvdXJjZUltcGxfMS5EYXRhU291cmNlSW1wbChkYXRhU291cmNlSW5mbyk7XG4gICAgICAgIHZhciBkYXRhU291cmNlID0gbmV3IERhdGFTb3VyY2VfMS5EYXRhU291cmNlKGRhdGFTb3VyY2VJbXBsKTtcbiAgICAgICAgZGF0YVNvdXJjZUltcGwuaW5pdGlhbGl6ZVdpdGhQdWJsaWNJbnRlcmZhY2VzKGRhdGFTb3VyY2UpO1xuICAgICAgICByZXR1cm4gZGF0YVNvdXJjZTtcbiAgICB9O1xuICAgIHJldHVybiBXb3Jrc2hlZXRJbXBsO1xufShTaGVldEltcGxfMS5TaGVldEltcGwpKTtcbmV4cG9ydHMuV29ya3NoZWV0SW1wbCA9IFdvcmtzaGVldEltcGw7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1Xb3Jrc2hlZXRJbXBsLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi4vbGliL0ludGVybmFsL1dvcmtzaGVldEltcGwuanNcbiAqKiBtb2R1bGUgaWQgPSA1NVxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgRGF0YVNvdXJjZSA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gRGF0YVNvdXJjZShfZGF0YVNvdXJjZUltcGwpIHtcbiAgICAgICAgdGhpcy5fZGF0YVNvdXJjZUltcGwgPSBfZGF0YVNvdXJjZUltcGw7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhU291cmNlLnByb3RvdHlwZSwgXCJuYW1lXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZUltcGwubmFtZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFTb3VyY2UucHJvdG90eXBlLCBcImlkXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZUltcGwuaWQ7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhU291cmNlLnByb3RvdHlwZSwgXCJmaWVsZHNcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlSW1wbC5maWVsZHM7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhU291cmNlLnByb3RvdHlwZSwgXCJjb25uZWN0aW9uU3VtbWFyaWVzXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZUltcGwuY29ubmVjdGlvblN1bW1hcmllcztcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFTb3VyY2UucHJvdG90eXBlLCBcImV4dHJhY3RVcGRhdGVUaW1lXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZUltcGwuZXh0cmFjdFVwZGF0ZVRpbWU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhU291cmNlLnByb3RvdHlwZSwgXCJpc0V4dHJhY3RcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlSW1wbC5pc0V4dHJhY3Q7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIERhdGFTb3VyY2UucHJvdG90eXBlLnJlZnJlc2hBc3luYyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2VJbXBsLnJlZnJlc2hBc3luYygpO1xuICAgIH07XG4gICAgRGF0YVNvdXJjZS5wcm90b3R5cGUuZ2V0VW5kZXJseWluZ0RhdGFBc3luYyA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlSW1wbC5nZXRVbmRlcmx5aW5nRGF0YUFzeW5jKG9wdGlvbnMpO1xuICAgIH07XG4gICAgcmV0dXJuIERhdGFTb3VyY2U7XG59KCkpO1xuZXhwb3J0cy5EYXRhU291cmNlID0gRGF0YVNvdXJjZTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURhdGFTb3VyY2UuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiAuLi9saWIvRGF0YVNvdXJjZS5qc1xuICoqIG1vZHVsZSBpZCA9IDU2XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBhcGlfc2hhcmVkXzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLXNoYXJlZFwiKTtcbnZhciBGaWVsZEltcGxfMSA9IHJlcXVpcmUoXCIuL0ZpZWxkSW1wbFwiKTtcbnZhciBGaWVsZF8xID0gcmVxdWlyZShcIi4uL0ZpZWxkXCIpO1xudmFyIERhdGFTb3VyY2VJbXBsID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBEYXRhU291cmNlSW1wbChfZGF0YVNvdXJjZUluZm8pIHtcbiAgICAgICAgdGhpcy5fZGF0YVNvdXJjZUluZm8gPSBfZGF0YVNvdXJjZUluZm87XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhU291cmNlSW1wbC5wcm90b3R5cGUsIFwibmFtZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2VJbmZvLm5hbWU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhU291cmNlSW1wbC5wcm90b3R5cGUsIFwiaWRcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlSW5mby5pZDtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFTb3VyY2VJbXBsLnByb3RvdHlwZSwgXCJleHRyYWN0VXBkYXRlVGltZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2VJbmZvLmV4dHJhY3RVcGRhdGVUaW1lO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRGF0YVNvdXJjZUltcGwucHJvdG90eXBlLCBcImZpZWxkc1wiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZpZWxkcztcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFTb3VyY2VJbXBsLnByb3RvdHlwZSwgXCJpc0V4dHJhY3RcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlSW5mby5pc0V4dHJhY3Q7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhU291cmNlSW1wbC5wcm90b3R5cGUsIFwiY29ubmVjdGlvblN1bW1hcmllc1wiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdEYXRhU291cmNlIGNvbm5lY3Rpb25TdW1tYXJpZXMgQVBJIG5vdCB5ZXQgaW1wbGVtZW50ZWQuJyk7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIERhdGFTb3VyY2VJbXBsLnByb3RvdHlwZS5yZWZyZXNoQXN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBkYXRhU291cmNlU2VydmljZSA9IGFwaV9zaGFyZWRfMS5BcGlTZXJ2aWNlUmVnaXN0cnkuaW5zdGFuY2UuZ2V0U2VydmljZShcImRhdGEtc291cmNlLXNlcnZpY2VcIiAvKiBEYXRhU291cmNlU2VydmljZSAqLyk7XG4gICAgICAgIHJldHVybiBkYXRhU291cmNlU2VydmljZS5yZWZyZXNoQXN5bmModGhpcy5fZGF0YVNvdXJjZUluZm8uaWQpO1xuICAgIH07XG4gICAgRGF0YVNvdXJjZUltcGwucHJvdG90eXBlLmdldFVuZGVybHlpbmdEYXRhQXN5bmMgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgICAgICB2YXIgZGVmYXVsdE9wdGlvbnMgPSB7XG4gICAgICAgICAgICBpZ25vcmVBbGlhc2VzOiBmYWxzZSxcbiAgICAgICAgICAgIG1heFJvd3M6IDEwMDAwLFxuICAgICAgICAgICAgY29sdW1uc1RvSW5jbHVkZTogW10sXG4gICAgICAgIH07XG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgICAgICB2YXIgZ2V0RGF0YVNlcnZpY2UgPSBhcGlfc2hhcmVkXzEuQXBpU2VydmljZVJlZ2lzdHJ5Lmluc3RhbmNlLmdldFNlcnZpY2UoXCJnZXQtZGF0YS1zZXJ2aWNlXCIgLyogR2V0RGF0YSAqLyk7XG4gICAgICAgIHJldHVybiBnZXREYXRhU2VydmljZS5nZXREYXRhU291cmNlRGF0YUFzeW5jKHRoaXMuaWQsICEhb3B0aW9ucy5pZ25vcmVBbGlhc2VzLCBvcHRpb25zLm1heFJvd3MgfHwgZGVmYXVsdE9wdGlvbnMubWF4Um93cywgb3B0aW9ucy5jb2x1bW5zVG9JbmNsdWRlIHx8IGRlZmF1bHRPcHRpb25zLmNvbHVtbnNUb0luY2x1ZGUpO1xuICAgIH07XG4gICAgRGF0YVNvdXJjZUltcGwucHJvdG90eXBlLmluaXRpYWxpemVXaXRoUHVibGljSW50ZXJmYWNlcyA9IGZ1bmN0aW9uIChkYXRhU291cmNlKSB7XG4gICAgICAgIHRoaXMuX2ZpZWxkcyA9IHRoaXMuX2RhdGFTb3VyY2VJbmZvLmZpZWxkcy5tYXAoZnVuY3Rpb24gKGZpZWxkTW9kZWwpIHtcbiAgICAgICAgICAgIHZhciBmaWVsZEltcGwgPSBuZXcgRmllbGRJbXBsXzEuRmllbGRJbXBsKGZpZWxkTW9kZWwsIGRhdGFTb3VyY2UpO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBGaWVsZF8xLkZpZWxkKGZpZWxkSW1wbCk7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgcmV0dXJuIERhdGFTb3VyY2VJbXBsO1xufSgpKTtcbmV4cG9ydHMuRGF0YVNvdXJjZUltcGwgPSBEYXRhU291cmNlSW1wbDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPURhdGFTb3VyY2VJbXBsLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi4vbGliL0ludGVybmFsL0RhdGFTb3VyY2VJbXBsLmpzXG4gKiogbW9kdWxlIGlkID0gNTdcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIGFwaV9zaGFyZWRfMSA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktc2hhcmVkXCIpO1xudmFyIEZpZWxkSW1wbCA9IChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gRmllbGRJbXBsKF9maWVsZEluZm8sIF9wYXJlbnREYXRhU291cmNlKSB7XG4gICAgICAgIHRoaXMuX2ZpZWxkSW5mbyA9IF9maWVsZEluZm87XG4gICAgICAgIHRoaXMuX3BhcmVudERhdGFTb3VyY2UgPSBfcGFyZW50RGF0YVNvdXJjZTtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZpZWxkSW1wbC5wcm90b3R5cGUsIFwibmFtZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW5mby5uYW1lO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRmllbGRJbXBsLnByb3RvdHlwZSwgXCJpZFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW5mby5pZDtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZpZWxkSW1wbC5wcm90b3R5cGUsIFwiZGVzY3JpcHRpb25cIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9maWVsZEluZm8uZGVzY3JpcHRpb247XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGaWVsZEltcGwucHJvdG90eXBlLCBcImFnZ3JlZ2F0aW9uXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gYXBpX3NoYXJlZF8xLkludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncy5maWVsZEFnZ3JlZ2F0aW9uVHlwZS5jb252ZXJ0KHRoaXMuX2ZpZWxkSW5mby5hZ2dyZWdhdGlvbik7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGaWVsZEltcGwucHJvdG90eXBlLCBcImRhdGFTb3VyY2VcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9wYXJlbnREYXRhU291cmNlO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRmllbGRJbXBsLnByb3RvdHlwZSwgXCJyb2xlXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gYXBpX3NoYXJlZF8xLkludGVybmFsVG9FeHRlcm5hbEVudW1NYXBwaW5ncy5maWVsZFJvbGVUeXBlLmNvbnZlcnQodGhpcy5fZmllbGRJbmZvLnJvbGUpO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRmllbGRJbXBsLnByb3RvdHlwZSwgXCJpc0hpZGRlblwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW5mby5pc0hpZGRlbjtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZpZWxkSW1wbC5wcm90b3R5cGUsIFwiaXNHZW5lcmF0ZWRcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9maWVsZEluZm8uaXNHZW5lcmF0ZWQ7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGaWVsZEltcGwucHJvdG90eXBlLCBcImlzQ2FsY3VsYXRlZEZpZWxkXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZmllbGRJbmZvLmlzQ2FsY3VsYXRlZEZpZWxkO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRmllbGRJbXBsLnByb3RvdHlwZSwgXCJpc0NvbWJpbmVkRmllbGRcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9maWVsZEluZm8uaXNDb21iaW5lZEZpZWxkO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBGaWVsZEltcGwucHJvdG90eXBlLmdldENhbGN1bGF0ZWRGaWVsZEFzeW5jID0gZnVuY3Rpb24gKCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZpZWxkIGdldENhbGN1bGF0ZWRGaWVsZEFzeW5jIG1ldGhvZCBub3QgeWV0IGltcGxlbWVudGVkLicpO1xuICAgIH07XG4gICAgcmV0dXJuIEZpZWxkSW1wbDtcbn0oKSk7XG5leHBvcnRzLkZpZWxkSW1wbCA9IEZpZWxkSW1wbDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUZpZWxkSW1wbC5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4uL2xpYi9JbnRlcm5hbC9GaWVsZEltcGwuanNcbiAqKiBtb2R1bGUgaWQgPSA1OFxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIiwiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG52YXIgRmllbGQgPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEZpZWxkKF9maWVsZEltcGwpIHtcbiAgICAgICAgdGhpcy5fZmllbGRJbXBsID0gX2ZpZWxkSW1wbDtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZpZWxkLnByb3RvdHlwZSwgXCJuYW1lXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZmllbGRJbXBsLm5hbWU7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGaWVsZC5wcm90b3R5cGUsIFwiaWRcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9maWVsZEltcGwuaWQ7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGaWVsZC5wcm90b3R5cGUsIFwiZGVzY3JpcHRpb25cIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9maWVsZEltcGwuZGVzY3JpcHRpb247XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGaWVsZC5wcm90b3R5cGUsIFwiYWdncmVnYXRpb25cIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9maWVsZEltcGwuYWdncmVnYXRpb247XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGaWVsZC5wcm90b3R5cGUsIFwiZGF0YVNvdXJjZVwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW1wbC5kYXRhU291cmNlO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoRmllbGQucHJvdG90eXBlLCBcInJvbGVcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9maWVsZEltcGwucm9sZTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZpZWxkLnByb3RvdHlwZSwgXCJpc0hpZGRlblwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW1wbC5pc0hpZGRlbjtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZpZWxkLnByb3RvdHlwZSwgXCJpc0dlbmVyYXRlZFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW1wbC5pc0dlbmVyYXRlZDtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZpZWxkLnByb3RvdHlwZSwgXCJpc0NhbGN1bGF0ZWRGaWVsZFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZpZWxkSW1wbC5pc0NhbGN1bGF0ZWRGaWVsZDtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZpZWxkLnByb3RvdHlwZSwgXCJjb2x1bW5UeXBlXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZpZWxkLmNvbHVtblR5cGUgbm90IHlldCBpbXBsZW1ldG5lZC4nKTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEZpZWxkLnByb3RvdHlwZSwgXCJpc0NvbWJpbmVkRmllbGRcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9maWVsZEltcGwuaXNDb21iaW5lZEZpZWxkO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBGaWVsZC5wcm90b3R5cGUuZ2V0Q2FsY3VsYXRlZEZpZWxkQXN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWVsZEltcGwuZ2V0Q2FsY3VsYXRlZEZpZWxkQXN5bmMoKTtcbiAgICB9O1xuICAgIHJldHVybiBGaWVsZDtcbn0oKSk7XG5leHBvcnRzLkZpZWxkID0gRmllbGQ7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1GaWVsZC5qcy5tYXBcblxuXG4vKioqKioqKioqKioqKioqKipcbiAqKiBXRUJQQUNLIEZPT1RFUlxuICoqIC4uL2xpYi9GaWVsZC5qc1xuICoqIG1vZHVsZSBpZCA9IDU5XG4gKiogbW9kdWxlIGNodW5rcyA9IDBcbiAqKi8iLCJcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcbnZhciBhcGlfc2hhcmVkXzEgPSByZXF1aXJlKFwiQHRhYmxlYXUvYXBpLXNoYXJlZFwiKTtcbnZhciBhcGlfdXRpbHNfMSA9IHJlcXVpcmUoXCJAdGFibGVhdS9hcGktdXRpbHNcIik7XG52YXIgU2V0dGluZ3NJbXBsID0gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBTZXR0aW5nc0ltcGwoc2V0dGluZ3NJbmZvKSB7XG4gICAgICAgIC8vIFNpbmNlIHByb21pc2VzIGNhbid0IGJlIGludHJvc3BlY3RlZCBmb3Igc3RhdGUsIGtlZXAgYSB2YXJpYWJsZSB0aGF0XG4gICAgICAgIC8vIGluZGljYXRlcyBhIHNhdmUgaXMgaW4gcHJvZ3Jlc3MsIHNvIHRoYXQgc2V0L2VyYXNlIGNhbid0IGJlIGNhbGxlZCBkdXJpbmcgYSBzYXZlLlxuICAgICAgICB0aGlzLl9zYXZlSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVTZXR0aW5ncyhzZXR0aW5nc0luZm8pO1xuICAgIH1cbiAgICBTZXR0aW5nc0ltcGwucHJvdG90eXBlLmVyYXNlID0gZnVuY3Rpb24gKGtleSkge1xuICAgICAgICBhcGlfdXRpbHNfMS5QYXJhbS52ZXJpZnlWYWx1ZShrZXksICdrZXknKTtcbiAgICAgICAgLy8gT25seSBtYWtlIGEgbW9kaWZpY2F0aW9uIGlmIHdlIGhhdmUgdGhlIGtleSBhbHJlYWR5XG4gICAgICAgIGlmICh0aGlzLl9jdXJyZW50U2V0dGluZ3Nba2V5XSkge1xuICAgICAgICAgICAgdGhpcy52ZXJpZnlTZXR0aW5nc0FyZVVubG9ja2VkKCk7XG4gICAgICAgICAgICBkZWxldGUgdGhpcy5fY3VycmVudFNldHRpbmdzW2tleV07XG4gICAgICAgICAgICB0aGlzLl9pc01vZGlmaWVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgU2V0dGluZ3NJbXBsLnByb3RvdHlwZS5nZXQgPSBmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgIGFwaV91dGlsc18xLlBhcmFtLnZlcmlmeVZhbHVlKGtleSwgJ2tleScpO1xuICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVudFNldHRpbmdzW2tleV07XG4gICAgfTtcbiAgICBTZXR0aW5nc0ltcGwucHJvdG90eXBlLmdldEFsbCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgLy8gUmV0dXJucyBhIG11dGFibGUgY29weSBvZiB0aGUgc2V0dGluZ3NcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX2N1cnJlbnRTZXR0aW5ncyk7XG4gICAgfTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoU2V0dGluZ3NJbXBsLnByb3RvdHlwZSwgXCJpc01vZGlmaWVkXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5faXNNb2RpZmllZDtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgU2V0dGluZ3NJbXBsLnByb3RvdHlwZS5zYXZlQXN5bmMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfdGhpcyA9IHRoaXM7XG4gICAgICAgIHRoaXMudmVyaWZ5U2V0dGluZ3NBcmVVbmxvY2tlZCgpO1xuICAgICAgICAvLyBKdXN0IHJlc29sdmUgaW1tZWRpYXRlbHkgaWYgc2V0dGluZ3MgYXJlIHVuY2hhbmdlZFxuICAgICAgICBpZiAoIXRoaXMuX2lzTW9kaWZpZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fY3VycmVudFNldHRpbmdzKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zYXZlSW5Qcm9ncmVzcyA9IHRydWU7XG4gICAgICAgIC8vIFVzZSB0aGUgc2V0dGluZ3Mgc2VydmljZSB0byBzYXZlIHNldHRpbmdzIHRvIHR3YlxuICAgICAgICB2YXIgc2V0dGluZ3NTZXJ2aWNlID0gYXBpX3NoYXJlZF8xLkFwaVNlcnZpY2VSZWdpc3RyeS5pbnN0YW5jZS5nZXRTZXJ2aWNlKFwiU2V0dGluZ3NTZXJ2aWNlXCIgLyogU2V0dGluZ3NTZXJ2aWNlICovKTtcbiAgICAgICAgcmV0dXJuIHNldHRpbmdzU2VydmljZS5zYXZlU2V0dGluZ3NBc3luYyh0aGlzLl9jdXJyZW50U2V0dGluZ3MpLnRoZW4oZnVuY3Rpb24gKG5ld1NldHRpbmdzKSB7XG4gICAgICAgICAgICBfdGhpcy5fc2F2ZUluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgICAgICAgIF90aGlzLl9pc01vZGlmaWVkID0gZmFsc2U7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKF90aGlzLl9jdXJyZW50U2V0dGluZ3MsIG5ld1NldHRpbmdzKTtcbiAgICAgICAgICAgIHJldHVybiBuZXdTZXR0aW5ncztcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBTZXR0aW5nc0ltcGwucHJvdG90eXBlLnNldCA9IGZ1bmN0aW9uIChrZXksIHZhbHVlKSB7XG4gICAgICAgIGFwaV91dGlsc18xLlBhcmFtLnZlcmlmeVZhbHVlKGtleSwgJ2tleScpOyAvLyBLZXkgc2hvdWxkbid0IGJlIGFuIGVtcHR5IHN0cmluZy5cbiAgICAgICAgYXBpX3V0aWxzXzEuUGFyYW0udmVyaWZ5U3RyaW5nKHZhbHVlLCAndmFsdWUnKTsgLy8gRW1wdHkgc3RyaW5nIHZhbHVlIGlzIGFsbG93ZWQuXG4gICAgICAgIHRoaXMudmVyaWZ5U2V0dGluZ3NBcmVVbmxvY2tlZCgpO1xuICAgICAgICB0aGlzLl9jdXJyZW50U2V0dGluZ3Nba2V5XSA9IHZhbHVlO1xuICAgICAgICB0aGlzLl9pc01vZGlmaWVkID0gdHJ1ZTtcbiAgICB9O1xuICAgIFNldHRpbmdzSW1wbC5wcm90b3R5cGUuaW5pdGlhbGl6ZVNldHRpbmdzID0gZnVuY3Rpb24gKHNldHRpbmdzSW5mbykge1xuICAgICAgICBhcGlfdXRpbHNfMS5QYXJhbS52ZXJpZnlWYWx1ZShzZXR0aW5nc0luZm8sICdzZXR0aW5nc0luZm8nKTtcbiAgICAgICAgYXBpX3V0aWxzXzEuUGFyYW0udmVyaWZ5VmFsdWUoc2V0dGluZ3NJbmZvLnNldHRpbmdzVmFsdWVzLCAnc2V0dGluZ3NJbmZvLlNldHRpbmdzVmFsdWVzJyk7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRTZXR0aW5ncyA9IHNldHRpbmdzSW5mby5zZXR0aW5nc1ZhbHVlcztcbiAgICAgICAgLy8gUmVzZXQgdGhlIGlzTW9kaWZpZWQgZmxhZ1xuICAgICAgICB0aGlzLl9pc01vZGlmaWVkID0gZmFsc2U7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBUaGlzIGhlbHBlciBzaG91bGQgYmUgY2FsbGVkIGJlZm9yZSBhbnkgbG9jYWwgdXBkYXRlIHRvIHRoaXMuY3VycmVudFNldHRpbmdzLlxuICAgICAqIENoZWNrcyBpZiBhIGN1cnJlbnQgc2F2ZSBjYWxsIGlzIHN0aWxsIGluIHByb2dyZXNzIGFuZCB0aHJvd3MgYW4gZXJyb3IgaWYgc28uXG4gICAgICovXG4gICAgU2V0dGluZ3NJbXBsLnByb3RvdHlwZS52ZXJpZnlTZXR0aW5nc0FyZVVubG9ja2VkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcy5fc2F2ZUluUHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQXN5bmMgU2F2ZSBpcyBpbiBwcm9ncmVzcywgdXBkYXRpbmcgc2V0dGluZ3MgaXMgbm90IGFsbG93ZWQuJyk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiBTZXR0aW5nc0ltcGw7XG59KCkpO1xuZXhwb3J0cy5TZXR0aW5nc0ltcGwgPSBTZXR0aW5nc0ltcGw7XG4vLyMgc291cmNlTWFwcGluZ1VSTD1TZXR0aW5nc0ltcGwuanMubWFwXG5cblxuLyoqKioqKioqKioqKioqKioqXG4gKiogV0VCUEFDSyBGT09URVJcbiAqKiAuLi9saWIvSW50ZXJuYWwvU2V0dGluZ3NJbXBsLmpzXG4gKiogbW9kdWxlIGlkID0gNjBcbiAqKiBtb2R1bGUgY2h1bmtzID0gMFxuICoqLyIsIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xuLyoqXG4gKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgZXh0ZXJuYWwgQWRkSW4gbmFtZXNwYWNlLlxuICovXG52YXIgQWRkSW4gPSAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIEFkZEluKGFkZEluSW1wbCkge1xuICAgICAgICB0aGlzLmFkZEluSW1wbCA9IGFkZEluSW1wbDtcbiAgICAgICAgdGhpcy5hZGRJbkltcGwgPSBhZGRJbkltcGw7XG4gICAgfVxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBZGRJbi5wcm90b3R5cGUsIFwiZGFzaGJvYXJkQ29udGVudFwiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWRkSW5JbXBsLmRhc2hib2FyZENvbnRlbnQ7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBZGRJbi5wcm90b3R5cGUsIFwiZW52aXJvbm1lbnRcIiwge1xuICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFkZEluSW1wbC5lbnZpcm9ubWVudDtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEFkZEluLnByb3RvdHlwZSwgXCJzZXR0aW5nc1wiLCB7XG4gICAgICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWRkSW5JbXBsLnNldHRpbmdzO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQWRkSW4ucHJvdG90eXBlLCBcInVpXCIsIHtcbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FQSSBjYWxsIG5vdCB5ZXQgaW1wbGVtZW50ZWQnKTtcbiAgICAgICAgfSxcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgQWRkSW4ucHJvdG90eXBlLmluaXRpYWxpemVBc3luYyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkSW5JbXBsLmluaXRpYWxpemVBc3luYygpO1xuICAgIH07XG4gICAgcmV0dXJuIEFkZEluO1xufSgpKTtcbmV4cG9ydHMuQWRkSW4gPSBBZGRJbjtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPUFkZEluLmpzLm1hcFxuXG5cbi8qKioqKioqKioqKioqKioqKlxuICoqIFdFQlBBQ0sgRk9PVEVSXG4gKiogLi4vbGliL05hbWVzcGFjZXMvQWRkSW4uanNcbiAqKiBtb2R1bGUgaWQgPSA2MVxuICoqIG1vZHVsZSBjaHVua3MgPSAwXG4gKiovIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDVkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUMxQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDN0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNmQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDdk9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDakJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDUkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDakRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDMUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQzVCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUM1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQzVEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDeEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUN4QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNySkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQzVDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQ1hBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQ3pXQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDOUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUM5QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDaEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQ3pCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDN0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQ1ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNsQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQzlCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUM3TUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNYQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQ3ZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDdklBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUMzQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDeElBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQzVOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNwREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDeEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQ3ZEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUM1RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNqSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNuQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDMVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDekZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDdENBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDbERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDdEVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQ2xDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNWQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUN6QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDNUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQ3BEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQ3ZFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNwREE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUM3RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDOUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDNUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUNsS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQ3pEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7OztBQzFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDcEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7O0FDekZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUM5RUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OzsiLCJzb3VyY2VSb290IjoiIn0= \ No newline at end of file diff --git a/Examples/ReactJs/.babelrc b/Examples/ReactJs/.babelrc deleted file mode 100644 index 974a1ca3..00000000 --- a/Examples/ReactJs/.babelrc +++ /dev/null @@ -1,7 +0,0 @@ -{ - "presets": [ - "es2015", - "stage-0", - "react" - ] -} diff --git a/Examples/ReactJs/.editorconfig b/Examples/ReactJs/.editorconfig deleted file mode 100644 index 4a7ea303..00000000 --- a/Examples/ReactJs/.editorconfig +++ /dev/null @@ -1,12 +0,0 @@ -root = true - -[*] -indent_style = space -indent_size = 2 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -[*.md] -trim_trailing_whitespace = false diff --git a/Examples/ReactJs/.eslintrc b/Examples/ReactJs/.eslintrc deleted file mode 100644 index b542daaf..00000000 --- a/Examples/ReactJs/.eslintrc +++ /dev/null @@ -1,35 +0,0 @@ -{ - "parser": "babel-eslint", - "plugins": [ - "react" - ], - "parserOptions": { - "ecmaVersion": 6, - "sourceType": "module", - "ecmaFeatures": { - "jsx": true - } - }, - "env": { - "browser": true, - "amd": true, - "es6": true, - "node": true, - "mocha": true - }, - "rules": { - "comma-dangle": 1, - "quotes": [ 1, "single" ], - "no-undef": 1, - "global-strict": 0, - "no-extra-semi": 1, - "no-underscore-dangle": 0, - "no-console": 1, - "no-unused-vars": 1, - "no-trailing-spaces": [1, { "skipBlankLines": true }], - "no-unreachable": 1, - "no-alert": 0, - "react/jsx-uses-react": 1, - "react/jsx-uses-vars": 1 - } -} diff --git a/Examples/ReactJs/.gitignore b/Examples/ReactJs/.gitignore deleted file mode 100644 index fb1fbda4..00000000 --- a/Examples/ReactJs/.gitignore +++ /dev/null @@ -1,33 +0,0 @@ -# Logs -logs -*.log - -# Runtime data -pids -*.pid -*.seed - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage - -# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (http://nodejs.org/api/addons.html) -build/Release - -# Dependency directory -# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git -node_modules - -# Bower -bower_components/ - -# IDE/Editor data -.idea diff --git a/Examples/ReactJs/.yo-rc.json b/Examples/ReactJs/.yo-rc.json deleted file mode 100644 index bb15adab..00000000 --- a/Examples/ReactJs/.yo-rc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "generator-react-webpack": {} -} \ No newline at end of file diff --git a/Examples/ReactJs/AddIns/EnvironmentDemo.trex b/Examples/ReactJs/AddIns/EnvironmentDemo.trex deleted file mode 100644 index 9ad3a946..00000000 --- a/Examples/ReactJs/AddIns/EnvironmentDemo.trex +++ /dev/null @@ -1,22 +0,0 @@ - - - - en_US - - Demonstrates Using the Envirionment Api - - - - - 1.1 - - http://localhost:8000#environment - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAlhJREFUOI2Nkt9vy1EYh5/3bbsvRSySCZbIxI+ZCKsN2TKtSFyIrV2WuRCJuBiJWxfuxCVXbvwFgiEtposgLFJElnbU1SxIZIIRJDKTrdu+53Uhra4mce7Oe57Pcz7JOULFisViwZ+29LAzOSjQYDgz1ZcCvWuXV11MJpN+OS/lm6179teqH0yDqxPTCyKSA8DcDsyOmOprnCaeP7459pdgy969i0LTC3IO/RQMyoHcQN+3cnljW3dNIFC47qDaK3g7BwdTkwBaBELT4ZPOUVWgKl4ZBnjxJPUlMDnTDrp0pmr6RHFeEjjcUUXPDGeSEwDN0Xg8sivxMhJNjGzbHd8PkM3eHRfkrBM5NkcQaY2vUnTlrDIA0NoaX+KLXFFlowr14tvVpqb2MICzmQcKqxvbumv+NAhZGCCIPwEw6QWXKYRL/VUXO0+rAUJiPwAk5MIlgVfwPjjHLCL1APmHN94ZdqeYN+NW/mn6I4BvwQYchcLnwFhJMDiYmlRxAzjpKWZkYkUCcZ2I61wi37tLbYyjiN0fHk5Oz3nGSLSzBbNHCF35R7f6K1/hN9PRhek11FrymfQQQKB4+Gl05P2qNRtmETlXW7e+b2z01dfycGNbfFMAbqNyKp9Jp4rzOT8RYFs0njJkc2iqsCObvTsOsDWWqA5C1uFy+Uz/oXJeKwVT4h0RmPUXhi79vuC0Ku6yOffTK3g9lfxfDQAisY516sg5kfOCiJk7HoLt2cf9b/9LANAc7dznm98PagG1fUOZ9IP5uMB8Q4CPoyNvausapkTt3rNMuvdf3C/o6+czhtdwmwAAAABJRU5ErkJggg== - - - - Environment Demo - - - diff --git a/Examples/ReactJs/AddIns/FilteringDemo.trex b/Examples/ReactJs/AddIns/FilteringDemo.trex deleted file mode 100644 index d2b51464..00000000 --- a/Examples/ReactJs/AddIns/FilteringDemo.trex +++ /dev/null @@ -1,22 +0,0 @@ - - - - en_US - - Demonstrates Using the Filtering Api - - - - - 1.1 - - http://localhost:8000#filtering - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAlhJREFUOI2Nkt9vy1EYh5/3bbsvRSySCZbIxI+ZCKsN2TKtSFyIrV2WuRCJuBiJWxfuxCVXbvwFgiEtposgLFJElnbU1SxIZIIRJDKTrdu+53Uhra4mce7Oe57Pcz7JOULFisViwZ+29LAzOSjQYDgz1ZcCvWuXV11MJpN+OS/lm6179teqH0yDqxPTCyKSA8DcDsyOmOprnCaeP7459pdgy969i0LTC3IO/RQMyoHcQN+3cnljW3dNIFC47qDaK3g7BwdTkwBaBELT4ZPOUVWgKl4ZBnjxJPUlMDnTDrp0pmr6RHFeEjjcUUXPDGeSEwDN0Xg8sivxMhJNjGzbHd8PkM3eHRfkrBM5NkcQaY2vUnTlrDIA0NoaX+KLXFFlowr14tvVpqb2MICzmQcKqxvbumv+NAhZGCCIPwEw6QWXKYRL/VUXO0+rAUJiPwAk5MIlgVfwPjjHLCL1APmHN94ZdqeYN+NW/mn6I4BvwQYchcLnwFhJMDiYmlRxAzjpKWZkYkUCcZ2I61wi37tLbYyjiN0fHk5Oz3nGSLSzBbNHCF35R7f6K1/hN9PRhek11FrymfQQQKB4+Gl05P2qNRtmETlXW7e+b2z01dfycGNbfFMAbqNyKp9Jp4rzOT8RYFs0njJkc2iqsCObvTsOsDWWqA5C1uFy+Uz/oXJeKwVT4h0RmPUXhi79vuC0Ku6yOffTK3g9lfxfDQAisY516sg5kfOCiJk7HoLt2cf9b/9LANAc7dznm98PagG1fUOZ9IP5uMB8Q4CPoyNvausapkTt3rNMuvdf3C/o6+czhtdwmwAAAABJRU5ErkJggg== - - - - Filtering Demo - - - \ No newline at end of file diff --git a/Examples/ReactJs/AddIns/GetDataDemo.trex b/Examples/ReactJs/AddIns/GetDataDemo.trex deleted file mode 100644 index 7927cd27..00000000 --- a/Examples/ReactJs/AddIns/GetDataDemo.trex +++ /dev/null @@ -1,22 +0,0 @@ - - - - en_US - - Demonstrates Using the getData Api - - - - - 1.1 - - http://localhost:8000#getData - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAlhJREFUOI2Nkt9vy1EYh5/3bbsvRSySCZbIxI+ZCKsN2TKtSFyIrV2WuRCJuBiJWxfuxCVXbvwFgiEtposgLFJElnbU1SxIZIIRJDKTrdu+53Uhra4mce7Oe57Pcz7JOULFisViwZ+29LAzOSjQYDgz1ZcCvWuXV11MJpN+OS/lm6179teqH0yDqxPTCyKSA8DcDsyOmOprnCaeP7459pdgy969i0LTC3IO/RQMyoHcQN+3cnljW3dNIFC47qDaK3g7BwdTkwBaBELT4ZPOUVWgKl4ZBnjxJPUlMDnTDrp0pmr6RHFeEjjcUUXPDGeSEwDN0Xg8sivxMhJNjGzbHd8PkM3eHRfkrBM5NkcQaY2vUnTlrDIA0NoaX+KLXFFlowr14tvVpqb2MICzmQcKqxvbumv+NAhZGCCIPwEw6QWXKYRL/VUXO0+rAUJiPwAk5MIlgVfwPjjHLCL1APmHN94ZdqeYN+NW/mn6I4BvwQYchcLnwFhJMDiYmlRxAzjpKWZkYkUCcZ2I61wi37tLbYyjiN0fHk5Oz3nGSLSzBbNHCF35R7f6K1/hN9PRhek11FrymfQQQKB4+Gl05P2qNRtmETlXW7e+b2z01dfycGNbfFMAbqNyKp9Jp4rzOT8RYFs0njJkc2iqsCObvTsOsDWWqA5C1uFy+Uz/oXJeKwVT4h0RmPUXhi79vuC0Ku6yOffTK3g9lfxfDQAisY516sg5kfOCiJk7HoLt2cf9b/9LANAc7dznm98PagG1fUOZ9IP5uMB8Q4CPoyNvausapkTt3rNMuvdf3C/o6+czhtdwmwAAAABJRU5ErkJggg== - - - - Get Data Demo - - - diff --git a/Examples/ReactJs/AddIns/ParametersDemo.trex b/Examples/ReactJs/AddIns/ParametersDemo.trex deleted file mode 100644 index 103cbd36..00000000 --- a/Examples/ReactJs/AddIns/ParametersDemo.trex +++ /dev/null @@ -1,22 +0,0 @@ - - - - en_US - - Demonstrates Getting The Parameters on a Viz - - - - - 1.1 - - http://localhost:8000#parameters - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAlhJREFUOI2Nkt9vy1EYh5/3bbsvRSySCZbIxI+ZCKsN2TKtSFyIrV2WuRCJuBiJWxfuxCVXbvwFgiEtposgLFJElnbU1SxIZIIRJDKTrdu+53Uhra4mce7Oe57Pcz7JOULFisViwZ+29LAzOSjQYDgz1ZcCvWuXV11MJpN+OS/lm6179teqH0yDqxPTCyKSA8DcDsyOmOprnCaeP7459pdgy969i0LTC3IO/RQMyoHcQN+3cnljW3dNIFC47qDaK3g7BwdTkwBaBELT4ZPOUVWgKl4ZBnjxJPUlMDnTDrp0pmr6RHFeEjjcUUXPDGeSEwDN0Xg8sivxMhJNjGzbHd8PkM3eHRfkrBM5NkcQaY2vUnTlrDIA0NoaX+KLXFFlowr14tvVpqb2MICzmQcKqxvbumv+NAhZGCCIPwEw6QWXKYRL/VUXO0+rAUJiPwAk5MIlgVfwPjjHLCL1APmHN94ZdqeYN+NW/mn6I4BvwQYchcLnwFhJMDiYmlRxAzjpKWZkYkUCcZ2I61wi37tLbYyjiN0fHk5Oz3nGSLSzBbNHCF35R7f6K1/hN9PRhek11FrymfQQQKB4+Gl05P2qNRtmETlXW7e+b2z01dfycGNbfFMAbqNyKp9Jp4rzOT8RYFs0njJkc2iqsCObvTsOsDWWqA5C1uFy+Uz/oXJeKwVT4h0RmPUXhi79vuC0Ku6yOffTK3g9lfxfDQAisY516sg5kfOCiJk7HoLt2cf9b/9LANAc7dznm98PagG1fUOZ9IP5uMB8Q4CPoyNvausapkTt3rNMuvdf3C/o6+czhtdwmwAAAABJRU5ErkJggg== - - - - Parameters Demo - - - \ No newline at end of file diff --git a/Examples/ReactJs/AddIns/SelectedMarks.trex b/Examples/ReactJs/AddIns/SelectedMarks.trex deleted file mode 100644 index 6f084598..00000000 --- a/Examples/ReactJs/AddIns/SelectedMarks.trex +++ /dev/null @@ -1,22 +0,0 @@ - - - - en_US - - Demonstrates listening for events and getting the selected marks - - - - - 1.1 - - http://localhost:8000#selectedMarks - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAlhJREFUOI2Nkt9vy1EYh5/3bbsvRSySCZbIxI+ZCKsN2TKtSFyIrV2WuRCJuBiJWxfuxCVXbvwFgiEtposgLFJElnbU1SxIZIIRJDKTrdu+53Uhra4mce7Oe57Pcz7JOULFisViwZ+29LAzOSjQYDgz1ZcCvWuXV11MJpN+OS/lm6179teqH0yDqxPTCyKSA8DcDsyOmOprnCaeP7459pdgy969i0LTC3IO/RQMyoHcQN+3cnljW3dNIFC47qDaK3g7BwdTkwBaBELT4ZPOUVWgKl4ZBnjxJPUlMDnTDrp0pmr6RHFeEjjcUUXPDGeSEwDN0Xg8sivxMhJNjGzbHd8PkM3eHRfkrBM5NkcQaY2vUnTlrDIA0NoaX+KLXFFlowr14tvVpqb2MICzmQcKqxvbumv+NAhZGCCIPwEw6QWXKYRL/VUXO0+rAUJiPwAk5MIlgVfwPjjHLCL1APmHN94ZdqeYN+NW/mn6I4BvwQYchcLnwFhJMDiYmlRxAzjpKWZkYkUCcZ2I61wi37tLbYyjiN0fHk5Oz3nGSLSzBbNHCF35R7f6K1/hN9PRhek11FrymfQQQKB4+Gl05P2qNRtmETlXW7e+b2z01dfycGNbfFMAbqNyKp9Jp4rzOT8RYFs0njJkc2iqsCObvTsOsDWWqA5C1uFy+Uz/oXJeKwVT4h0RmPUXhi79vuC0Ku6yOffTK3g9lfxfDQAisY516sg5kfOCiJk7HoLt2cf9b/9LANAc7dznm98PagG1fUOZ9IP5uMB8Q4CPoyNvausapkTt3rNMuvdf3C/o6+czhtdwmwAAAABJRU5ErkJggg== - - - - Selected Marks Demo - - - diff --git a/Examples/ReactJs/AddIns/SettingsDemo.trex b/Examples/ReactJs/AddIns/SettingsDemo.trex deleted file mode 100644 index 870b9e41..00000000 --- a/Examples/ReactJs/AddIns/SettingsDemo.trex +++ /dev/null @@ -1,22 +0,0 @@ - - - - en_US - - Demonstrates Using the Settings Api - - - - - 1.1 - - http://localhost:8000#settings - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAlhJREFUOI2Nkt9vy1EYh5/3bbsvRSySCZbIxI+ZCKsN2TKtSFyIrV2WuRCJuBiJWxfuxCVXbvwFgiEtposgLFJElnbU1SxIZIIRJDKTrdu+53Uhra4mce7Oe57Pcz7JOULFisViwZ+29LAzOSjQYDgz1ZcCvWuXV11MJpN+OS/lm6179teqH0yDqxPTCyKSA8DcDsyOmOprnCaeP7459pdgy969i0LTC3IO/RQMyoHcQN+3cnljW3dNIFC47qDaK3g7BwdTkwBaBELT4ZPOUVWgKl4ZBnjxJPUlMDnTDrp0pmr6RHFeEjjcUUXPDGeSEwDN0Xg8sivxMhJNjGzbHd8PkM3eHRfkrBM5NkcQaY2vUnTlrDIA0NoaX+KLXFFlowr14tvVpqb2MICzmQcKqxvbumv+NAhZGCCIPwEw6QWXKYRL/VUXO0+rAUJiPwAk5MIlgVfwPjjHLCL1APmHN94ZdqeYN+NW/mn6I4BvwQYchcLnwFhJMDiYmlRxAzjpKWZkYkUCcZ2I61wi37tLbYyjiN0fHk5Oz3nGSLSzBbNHCF35R7f6K1/hN9PRhek11FrymfQQQKB4+Gl05P2qNRtmETlXW7e+b2z01dfycGNbfFMAbqNyKp9Jp4rzOT8RYFs0njJkc2iqsCObvTsOsDWWqA5C1uFy+Uz/oXJeKwVT4h0RmPUXhi79vuC0Ku6yOffTK3g9lfxfDQAisY516sg5kfOCiJk7HoLt2cf9b/9LANAc7dznm98PagG1fUOZ9IP5uMB8Q4CPoyNvausapkTt3rNMuvdf3C/o6+czhtdwmwAAAABJRU5ErkJggg== - - - - Settings Demo - - - diff --git a/Examples/ReactJs/cfg/base.js b/Examples/ReactJs/cfg/base.js deleted file mode 100644 index 751648fd..00000000 --- a/Examples/ReactJs/cfg/base.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; -let path = require('path'); -let defaultSettings = require('./defaults'); - -// Additional npm or bower modules to include in builds -// Add all foreign plugins you may need into this array -// @example: -// let npmBase = path.join(__dirname, '../node_modules'); -// let additionalPaths = [ path.join(npmBase, 'react-bootstrap') ]; -let additionalPaths = []; - -module.exports = { - additionalPaths: additionalPaths, - port: defaultSettings.port, - debug: true, - devtool: 'eval', - output: { - path: path.join(__dirname, '/../dist/assets'), - filename: 'app.js', - publicPath: defaultSettings.publicPath - }, - devServer: { - contentBase: './src/', - historyApiFallback: true, - hot: true, - port: defaultSettings.port, - publicPath: defaultSettings.publicPath, - noInfo: false - }, - resolve: { - extensions: ['', '.js', '.jsx'], - alias: { - actions: `${defaultSettings.srcPath}/actions/`, - components: `${defaultSettings.srcPath}/components/`, - sources: `${defaultSettings.srcPath}/sources/`, - stores: `${defaultSettings.srcPath}/stores/`, - styles: `${defaultSettings.srcPath}/styles/`, - config: `${defaultSettings.srcPath}/config/` + process.env.REACT_WEBPACK_ENV, - 'react/lib/ReactMount': 'react-dom/lib/ReactMount' - } - }, - module: {} -}; diff --git a/Examples/ReactJs/cfg/defaults.js b/Examples/ReactJs/cfg/defaults.js deleted file mode 100644 index 67a43287..00000000 --- a/Examples/ReactJs/cfg/defaults.js +++ /dev/null @@ -1,64 +0,0 @@ -/** - * Function that returns default values. - * Used because Object.assign does a shallow instead of a deep copy. - * Using [].push will add to the base array, so a require will alter - * the base array output. - */ -'use strict'; - -const path = require('path'); -const srcPath = path.join(__dirname, '/../src'); -const dfltPort = 8000; - -/** - * Get the default modules object for webpack - * @return {Object} - */ -function getDefaultModules() { - return { - preLoaders: [ - { - test: /\.(js|jsx)$/, - include: srcPath, - loader: 'eslint-loader' - } - ], - loaders: [ - { - test: /\.css$/, - loader: 'style-loader!css-loader' - }, - { - test: /\.sass/, - loader: 'style-loader!css-loader!sass-loader?outputStyle=expanded&indentedSyntax' - }, - { - test: /\.scss/, - loader: 'style-loader!css-loader!sass-loader?outputStyle=expanded' - }, - { - test: /\.less/, - loader: 'style-loader!css-loader!less-loader' - }, - { - test: /\.styl/, - loader: 'style-loader!css-loader!stylus-loader' - }, - { - test: /\.(png|jpg|gif|woff|woff2)$/, - loader: 'url-loader?limit=8192' - }, - { - test: /\.(mp4|ogg|svg)$/, - loader: 'file-loader' - } - ] - }; -} - -module.exports = { - srcPath: srcPath, - publicPath: '/assets/', - port: dfltPort, - getDefaultModules: getDefaultModules -}; diff --git a/Examples/ReactJs/cfg/dev.js b/Examples/ReactJs/cfg/dev.js deleted file mode 100644 index 6185d7bb..00000000 --- a/Examples/ReactJs/cfg/dev.js +++ /dev/null @@ -1,39 +0,0 @@ -'use strict'; - -let path = require('path'); -let webpack = require('webpack'); -let baseConfig = require('./base'); -let defaultSettings = require('./defaults'); - -// Add needed plugins here -let BowerWebpackPlugin = require('bower-webpack-plugin'); - -let config = Object.assign({}, baseConfig, { - entry: [ - 'webpack-dev-server/client?http://127.0.0.1:' + defaultSettings.port, - 'webpack/hot/only-dev-server', - './src/index' - ], - cache: true, - devtool: 'eval-source-map', - plugins: [ - new webpack.HotModuleReplacementPlugin(), - new webpack.NoErrorsPlugin(), - new BowerWebpackPlugin({ - searchResolveModulesDirectories: false - }) - ], - module: defaultSettings.getDefaultModules() -}); - -// Add needed loaders to the defaults here -config.module.loaders.push({ - test: /\.(js|jsx)$/, - loader: 'react-hot!babel-loader', - include: [].concat( - config.additionalPaths, - [ path.join(__dirname, '/../src') ] - ) -}); - -module.exports = config; diff --git a/Examples/ReactJs/cfg/dist.js b/Examples/ReactJs/cfg/dist.js deleted file mode 100644 index 1fc19c4a..00000000 --- a/Examples/ReactJs/cfg/dist.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -let path = require('path'); -let webpack = require('webpack'); - -let baseConfig = require('./base'); -let defaultSettings = require('./defaults'); - -// Add needed plugins here -let BowerWebpackPlugin = require('bower-webpack-plugin'); - -let config = Object.assign({}, baseConfig, { - entry: path.join(__dirname, '../src/index'), - cache: false, - devtool: 'sourcemap', - plugins: [ - new webpack.optimize.DedupePlugin(), - new webpack.DefinePlugin({ - 'process.env.NODE_ENV': '"production"' - }), - new BowerWebpackPlugin({ - searchResolveModulesDirectories: false - }), - new webpack.optimize.UglifyJsPlugin(), - new webpack.optimize.OccurenceOrderPlugin(), - new webpack.optimize.AggressiveMergingPlugin(), - new webpack.NoErrorsPlugin() - ], - module: defaultSettings.getDefaultModules() -}); - -// Add needed loaders to the defaults here -config.module.loaders.push({ - test: /\.(js|jsx)$/, - loader: 'babel', - include: [].concat( - config.additionalPaths, - [ path.join(__dirname, '/../src') ] - ) -}); - -module.exports = config; diff --git a/Examples/ReactJs/cfg/test.js b/Examples/ReactJs/cfg/test.js deleted file mode 100644 index f139c490..00000000 --- a/Examples/ReactJs/cfg/test.js +++ /dev/null @@ -1,58 +0,0 @@ -'use strict'; - -let path = require('path'); -let srcPath = path.join(__dirname, '/../src/'); - -let baseConfig = require('./base'); - -// Add needed plugins here -let BowerWebpackPlugin = require('bower-webpack-plugin'); - -module.exports = { - devtool: 'eval', - module: { - preLoaders: [ - { - test: /\.(js|jsx)$/, - loader: 'isparta-instrumenter-loader', - include: [ - path.join(__dirname, '/../src') - ] - } - ], - loaders: [ - { - test: /\.(png|jpg|gif|woff|woff2|css|sass|scss|less|styl)$/, - loader: 'null-loader' - }, - { - test: /\.(js|jsx)$/, - loader: 'babel-loader', - include: [].concat( - baseConfig.additionalPaths, - [ - path.join(__dirname, '/../src'), - path.join(__dirname, '/../test') - ] - ) - } - ] - }, - resolve: { - extensions: [ '', '.js', '.jsx' ], - alias: { - actions: srcPath + 'actions/', - helpers: path.join(__dirname, '/../test/helpers'), - components: srcPath + 'components/', - sources: srcPath + 'sources/', - stores: srcPath + 'stores/', - styles: srcPath + 'styles/', - config: srcPath + 'config/' + process.env.REACT_WEBPACK_ENV - } - }, - plugins: [ - new BowerWebpackPlugin({ - searchResolveModulesDirectories: false - }) - ] -}; diff --git a/Examples/ReactJs/dist/README.md b/Examples/ReactJs/dist/README.md deleted file mode 100644 index 0d138c28..00000000 --- a/Examples/ReactJs/dist/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# About the dist folder -After building the dist version of your project, the generated files are stored in this folder. You should keep it under version control. diff --git a/Examples/ReactJs/dist/static/README.md b/Examples/ReactJs/dist/static/README.md deleted file mode 100644 index c8eef650..00000000 --- a/Examples/ReactJs/dist/static/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# static - -Files and directories that you put in `static` will be copied to the -`dist/static` directory during the build step. Use it to provide -arbitrary static assets that can be referenced by path in your -application. diff --git a/Examples/ReactJs/dist/static/favicon.ico b/Examples/ReactJs/dist/static/favicon.ico deleted file mode 100644 index 6527905307f19ba00762f9241f7eb535fa84a2f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 zcmchaPe@cz6vpqQW1y54B@{_hhFD-kWPgyXjSGVaf);_51TESOlSPOdvy}@W5Q+** zs6~RrtlR}7(V|sCkP&1f7!5{Hixw@4+x@+HXSm*Z^WGalm2d8S=brO@=iGm9MyZ7P zPo)%}YN|=8W~EfSfibDm2H3qnGq$y%h@zqVv#zn@@WvhIGJ8*ECePe@roq(*vwGys z4?Q;bI~MRIM&jXu6Yg@wqQ#8&8x#z55E}ONd3<&rw_h!5AbBx{CcZ%&z736jHxFa0 zsBLqly3+dQ%MZGH{QU}GW6bsq=@$a@sXtac^<8>8uP>*+d!Qdtv&&mnKlvE_T-+SC z*QNCVwcvq%+&DDc+T}Uf(2_FavDN{-&hCpIs?aW=A$mcrzyD+9(025i1~K&uVf&w4 zItQLK9T{7k?s@bnU*&p+<^UI*aHA1aH+Fo^PAzM|xjNK09?2V(Cme7IFB(BP?7#at z(>DB3w`AUFS~=(LUBdZ>v-SG4J~%Mrfj&05Z)oj13l5tbEq4x>8+;FC0Dvr zbJY#7PS$+yE_Cf7gxqQEC@RoZX5J^}71l+`Q~qnOF4D za`lhjUuqZa-sj)EHDleV2i|mc!Ly-@7IwzPM{?pBUt(+@IHi8HTz#Iq9)9h|hrL3) zfOT#@|5$JCxmRjsOj>&kUt(m8*57|W(FoE`CX*8edYv%j=3sR5>!hvglJ#@8K6j$g z&IuUbRC_{)p}sbyx%UD6Fki;t6nDk0gT5&6Q_at7FbVVOu?4VK{oR#!kyYbCc;<4+LITzoZ8-~O5L+9MiLHL4NyME>! z;Ky7<)UR!gN_~GXhMvPMHNB;EmmIK}eHD&~cRx89jth}IM#tU%ablw0|GxfE9IjRR zl-)b-IvC#UD!IewzPL77SI>R+?}<2ERr|R2o~zCC8rJUR8>DI5*0O$6+k~wZ)Mt;b z(Hul-OFl+F))}lK&&Yi*+S2kJmHDbdBWOQnaSA6S|#* { - if (err) { - console.log(err); - } - console.log('Listening at localhost:' + config.port); -}); - -compiler.plugin('done', () => { - if (isInitialCompilation) { - // Ensures that we log after webpack printed its stats (is there a better way?) - setTimeout(() => { - console.log('\n✓ The bundle is now ready for serving!\n'); - console.log(' Open in iframe mode:\t\x1b[33m%s\x1b[0m', 'http://localhost:' + config.port + '/webpack-dev-server/'); - console.log(' Open in inline mode:\t\x1b[33m%s\x1b[0m', 'http://localhost:' + config.port + '/\n'); - console.log(' \x1b[33mHMR is active\x1b[0m. The bundle will automatically rebuild and live-update on changes.') - }, 350); - } - isInitialCompilation = false; -}); diff --git a/Examples/ReactJs/src/components/EnvironmentDemo/EnvironmentDemoComponent.js b/Examples/ReactJs/src/components/EnvironmentDemo/EnvironmentDemoComponent.js deleted file mode 100644 index 825fd8bf..00000000 --- a/Examples/ReactJs/src/components/EnvironmentDemo/EnvironmentDemoComponent.js +++ /dev/null @@ -1,59 +0,0 @@ -'use strict'; - -import React from 'react'; -import { Table } from 'react-bootstrap'; - -require('styles//EnvironmentDemo.css'); - -/*global tableau*/ - -class EnvironmentDemoComponent extends React.Component { - componentWillMount() { - let properties = { - 'Api Version': tableau.addIn.environment.apiVersion, - 'Context': tableau.addIn.environment.context, - 'Language': tableau.addIn.environment.language, - 'Locale': tableau.addIn.environment.locale, - 'Mode': tableau.addIn.environment.mode, - 'Operating System': tableau.addIn.environment.operatingSystem, - 'Tableau Version': tableau.addIn.environment.tableauVersion - }; - - this.setState(() => { - return { properties: properties }; - }) - } - - buildSetting(label, value) { - return ( - {label} - {value} - ); - } - - render() { - let values = []; - for (const key in this.state.properties) { - values.push(this.buildSetting(key, this.state.properties[key])); - } - debugger; - - return ( -
-
-

Frelard Environment Demo

-

This sample demonstrates the ability to get information about the environment an add-in is running in.

-
- - - {values} - -
-
- ); - } -} - -EnvironmentDemoComponent.displayName = 'EnvironmentDemoComponent'; - -export default EnvironmentDemoComponent; diff --git a/Examples/ReactJs/src/components/FiltersDemo/CategoricalFilterDemoComponent.js b/Examples/ReactJs/src/components/FiltersDemo/CategoricalFilterDemoComponent.js deleted file mode 100644 index 844ce9ce..00000000 --- a/Examples/ReactJs/src/components/FiltersDemo/CategoricalFilterDemoComponent.js +++ /dev/null @@ -1,97 +0,0 @@ -'use strict' - -import React from 'react'; -import { Form, FormGroup, ControlLabel, Button } from 'react-bootstrap'; -import Autosuggest from 'react-bootstrap-autosuggest'; - -/*global tableau*/ - -class CategoricalFilterComponent extends React.Component { - constructor(props) { - super(props); - let defaultField = Object.keys(this.props.filters)[0]; - let currValue = this.props.filters[defaultField][0]; - this.state = { - currField: defaultField, - currValue: currValue - }; - } - - onFieldChanged(fieldValue) { - this.setState({ - currField: fieldValue, - currValue: this.state.currValue - }) - } - - onValueChanged(filterValue) { - this.setState({ - currField: this.state.currField, - currValue: filterValue - }) - } - - applyFilter() { - this.props.workSheet.applyFilterAsync(this.state.currField, [this.state.currValue], tableau.FilterUpdateType.Replace); - } - - clearFilter() { - this.props.workSheet.clearFilterAsync(this.state.currField); - } - - getFilterValues() { - let values = this.props.filters[this.state.currField]; - if (values == null || values == undefined) { - return [] - } - return values; - } - - getFilterFields() { - let fields = Object.keys(this.props.filters); - return fields; - } - - render() { - return ( -
-

Categorical Filters With AutoCompplete

-
- - Field - this.onFieldChanged(field)} - /> - - - Filter Value - this.onValueChanged(value)} - /> - - - - - - - -
-
- ); - } -} - -export default CategoricalFilterComponent \ No newline at end of file diff --git a/Examples/ReactJs/src/components/FiltersDemo/DateRangeFilterComponent.js b/Examples/ReactJs/src/components/FiltersDemo/DateRangeFilterComponent.js deleted file mode 100644 index 8327e0ac..00000000 --- a/Examples/ReactJs/src/components/FiltersDemo/DateRangeFilterComponent.js +++ /dev/null @@ -1,109 +0,0 @@ -'use strict' - -import React from 'react' -import { Form, FormGroup, ControlLabel, Button } from 'react-bootstrap'; -import DatePicker from 'react-bootstrap-date-picker'; -import Autosuggest from 'react-bootstrap-autosuggest'; - -class DateRangeFilterComponent extends React.Component { - constructor(props) { - super(props); - let defaultField = Object.keys(this.props.filters)[0]; - - let minDate = this.props.filters[defaultField].minDate; - let maxDate = this.props.filters[defaultField].maxDate; - this.state = { - startDate: minDate, - endDate: maxDate, - currField: defaultField - }; - } - - applyFilter() { - this.props.workSheet.applyRangeFilterAsync( - this.state.currField, - {min: this.state.startDate, max: this.state.endDate} - ); - } - - clearFilter() { - this.props.workSheet.clearFilterAsync(this.state.currField); - } - - handleDateChange(startDate, dateStr) { - let date = new Date(dateStr); - if (startDate) { - if (date <= this.props.filters[this.state.currField].minDate || date > this.state.endDate) { - return; - } - this.setState({ - currField: this.state.currField, - endDate: this.state.endDate, - startDate: new Date(date) - }); - } else { - if (date >= this.props.filters[this.state.currField].maxDate || date < this.state.startDate) { - return; - } - this.setState({ - currField: this.state.currField, - startDate: this.state.startDate, - endDate: new Date(date) - }); - } - } - - onFieldChanged(field) { - this.setState({ - currField: field, - startDate: this.state.startDate, - endDate: this.state.endDate - }) - } - - render() { - return( -
-

Date Range Filters

-
- - Field - this.onFieldChanged(field)} - /> - -
-
- - Start Date - this.handleDateChange(true, date)} /> - - - End Date - this.handleDateChange(false, date)} /> - -
-
- - - - - - -
-
- ) - } -} - -export default DateRangeFilterComponent; \ No newline at end of file diff --git a/Examples/ReactJs/src/components/FiltersDemo/FiltersDemoComponent.js b/Examples/ReactJs/src/components/FiltersDemo/FiltersDemoComponent.js deleted file mode 100644 index d9cb8bb8..00000000 --- a/Examples/ReactJs/src/components/FiltersDemo/FiltersDemoComponent.js +++ /dev/null @@ -1,119 +0,0 @@ -'use strict' - -import React from 'react'; -import LoadIndicatorComponent from '../LoadIndicatorComponent'; -import _ from 'lodash'; - -import DateRangeFilterComponent from './DateRangeFilterComponent'; -import CategoricalFilterComponent from './CategoricalFilterDemoComponent.js'; - - -/*global tableau*/ -class FiltersDemoComponent extends React.Component { - constructor(props) { - super(props); - this.state = { - categoricalFilters: {}, - dateFilters: {}, - sheet: null, - loading: true - }; - } - - getUnderlyingData() { - let allSheets = tableau.addIn.dashboardContent.dashboard.worksheets; - let sheet = allSheets[0]; - sheet.getUnderlyingDataAsync().then((dataTable) => { - let columns = dataTable.columns; - let data = dataTable.data; - let categoricalColumns = []; - let dateColumns = []; - columns.forEach((column) => { - if (this.isCategorical(column)) { - categoricalColumns.push(column); - } - if (this.isDate(column)) { - dateColumns.push(column); - } - }); - - let allCategoricalFilters = this.constructFilterValues(categoricalColumns, data); - let dateFilters = this.constructDateFilters(dateColumns, data); - this.setState({ - categoricalFilters: allCategoricalFilters, - dateFilters: dateFilters, - sheet: sheet, - loading: false - }); - }); - } - - isCategorical(column) { - return (column.dataType === 'string') || (column.dataType === 'boolean'); - } - - isDate(column) { - return (column.dataType === 'datetime') || (column.dataType === 'date'); - } - - constructFilterValues(columns, data) { - let allFilters = {} - columns.forEach((column) => { - let dataValues = []; - data.forEach((row) => { - dataValues.push(row[column.index].value); - }) - let uniqueDataValues = _.uniqBy(dataValues, (value) => value); - allFilters[column.fieldName] = uniqueDataValues; - }); - return allFilters; - } - - constructDateFilters(columns, data) { - let dateFilters = {}; - columns.forEach((column) => { - let dataValues = []; - data.forEach((row) => { - dataValues.push(new Date(row[column.index].value)); - }) - let uniqueDataValues = _.uniqBy(dataValues, (value) => value); - let minDate = _.min(uniqueDataValues); - let maxDate = _.max(uniqueDataValues); - dateFilters[column.fieldName] = { - minDate: minDate, - maxDate: maxDate - } - }); - return dateFilters; - } - - componentDidMount() { - this.getUnderlyingData(); - } - - render() { - if (this.state.loading) { - return ( - - ); - } - return ( -
- { Object.keys(this.state.dateFilters).length > 0 ? - - : null } -
- { Object.keys(this.state.categoricalFilters).length > 0 ? - - : null } -
- ); - - } -} - -export default FiltersDemoComponent; \ No newline at end of file diff --git a/Examples/ReactJs/src/components/GetDataDemo/GetDataConfigurationComponent.js b/Examples/ReactJs/src/components/GetDataDemo/GetDataConfigurationComponent.js deleted file mode 100644 index a7125c13..00000000 --- a/Examples/ReactJs/src/components/GetDataDemo/GetDataConfigurationComponent.js +++ /dev/null @@ -1,135 +0,0 @@ -'use strict'; - -import React from 'react'; -import Select from 'react-select'; -import PropTypes from 'prop-types'; - -import { Form, FormGroup, FormControl, ControlLabel, Button, Checkbox, Radio, Modal } from 'react-bootstrap'; - -require('react-select/dist/react-select.css'); -require('styles//GetDataConfiguration.css'); - -class GetDataConfigurationComponent extends React.Component { - constructor(props) { - super(props); - - this.state = props.initialSettings; - } - - sheetNameChange(e) { - this.setState({ - sheetName: e && e.value - }); - } - - typeChange(e) { - this.setState({ - type: e.target.value - }); - } - - checkboxChange(e) { - this.setState({ - [e.target.value]: e.target.checked - }); - } - - maxRowsChanged(e) { - this.setState({ - maxRows: e.target.value - }); - } - - saveClicked() { - const settings = this.getAndValidateSettings(); - if (settings) { - this.props.onSaveClick(settings); - } - } - - getAndValidateSettings() { - let settings = Object.assign({}, this.state); - if (!settings.sheetName) { - return undefined; // Invalid state - } - - return settings; - } - - render() { - const sheetNames = this.props.sheetNames.map((name) => ({ 'value': name, 'label': name })); - - return ( - - - Configure getData - - -
- - Target Sheet -