@kepler.gl/utils 3.2.3 → 3.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -49,6 +49,8 @@ export declare type KeplerApplicationConfig = {
|
|
|
49
49
|
/** Whether to show the server input field in the raster tile layer setup form */
|
|
50
50
|
rasterServerShowServerInput?: boolean;
|
|
51
51
|
enableWMSLayer?: boolean;
|
|
52
|
+
/** Whether to apply fix for uglify error in dom-to-image (should be true for webpack builds, false for Vite) */
|
|
53
|
+
escapeXhtmlForWebpack?: boolean;
|
|
52
54
|
};
|
|
53
55
|
export declare const getApplicationConfig: () => Required<KeplerApplicationConfig>;
|
|
54
56
|
export declare function initApplicationConfig(appConfig?: KeplerApplicationConfig): void;
|
|
@@ -11,6 +11,14 @@ var _constants = require("@kepler.gl/constants");
|
|
|
11
11
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
12
12
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != (0, _typeof2["default"])(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; } // SPDX-License-Identifier: MIT
|
|
13
13
|
// Copyright contributors to the kepler.gl project
|
|
14
|
+
/**
|
|
15
|
+
* Detect if running with webpack build tool
|
|
16
|
+
*/
|
|
17
|
+
function isWebpackBuild() {
|
|
18
|
+
// @ts-ignore - __webpack_require__ is injected by webpack at runtime
|
|
19
|
+
return typeof __webpack_require__ !== 'undefined';
|
|
20
|
+
}
|
|
21
|
+
|
|
14
22
|
/**
|
|
15
23
|
* A mechanism to override default Kepler values/settings so that we
|
|
16
24
|
* without having to make application-specific changes to the kepler repo.
|
|
@@ -69,7 +77,10 @@ var DEFAULT_APPLICATION_CONFIG = {
|
|
|
69
77
|
rasterServerServerErrorsToRetry: [503],
|
|
70
78
|
rasterServerMaxPerServerRequests: 0,
|
|
71
79
|
// WMS layer config
|
|
72
|
-
enableWMSLayer: true
|
|
80
|
+
enableWMSLayer: true,
|
|
81
|
+
// Image export config
|
|
82
|
+
// Default to true for webpack builds, false for other build tools (e.g., Vite)
|
|
83
|
+
escapeXhtmlForWebpack: isWebpackBuild()
|
|
73
84
|
};
|
|
74
85
|
var applicationConfig = DEFAULT_APPLICATION_CONFIG;
|
|
75
86
|
var getApplicationConfig = exports.getApplicationConfig = function getApplicationConfig() {
|
|
@@ -79,4 +90,4 @@ function initApplicationConfig() {
|
|
|
79
90
|
var appConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
80
91
|
Object.assign(applicationConfig, appConfig);
|
|
81
92
|
}
|
|
82
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwicmVxdWlyZSIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mMiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkRFRkFVTFRfQVBQTElDQVRJT05fQ09ORklHIiwiZGVmYXVsdEh0bWxOYW1lIiwiZGVmYXVsdEltYWdlTmFtZSIsImRlZmF1bHRKc29uTmFtZSIsImRlZmF1bHREYXRhTmFtZSIsImRlZmF1bHRFeHBvcnRKc29uU2V0dGluZ3MiLCJoYXNEYXRhIiwiYmFzZU1hcExpYnJhcnlDb25maWciLCJtYXBsaWJyZSIsImdldE1hcExpYiIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsIm1hcExpYkNzc0NsYXNzIiwibWFwTGliQXR0cmlidXRpb25Dc3NDbGFzcyIsIm1hcExpYk5hbWUiLCJtYXBMaWJVcmwiLCJtYXBib3giLCJjZG5VcmwiLCJLRVBMRVJfVU5GT0xERURfQlVDS0VUIiwicGx1Z2lucyIsInRhYmxlIiwiZGF0YWJhc2UiLCJ1c2VBcnJvd1Byb2dyZXNzaXZlTG9hZGluZyIsInNob3dSZWxlYXNlQmFubmVyIiwidXNlT25GaWx0ZXJlZEl0ZW1zQ2hhbmdlIiwiZW5hYmxlUmFzdGVyVGlsZUxheWVyIiwicmFzdGVyU2VydmVyVXNlTGF0ZXN0VGl0aWxlciIsInJhc3RlclNlcnZlclNob3dTZXJ2ZXJJbnB1dCIsInJhc3RlclNlcnZlclVybHMiLCJyYXN0ZXJTZXJ2ZXJTdXBwb3J0c0VsZXZhdGlvbiIsInJhc3RlclNlcnZlck1heFJldHJpZXMiLCJyYXN0ZXJTZXJ2ZXJSZXRyeURlbGF5IiwicmFzdGVyU2VydmVyU2VydmVyRXJyb3JzVG9SZXRyeSIsInJhc3RlclNlcnZlck1heFBlclNlcnZlclJlcXVlc3RzIiwiZW5hYmxlV01TTGF5ZXIiLCJhcHBsaWNhdGlvbkNvbmZpZyIsImdldEFwcGxpY2F0aW9uQ29uZmlnIiwiZXhwb3J0cyIsImluaXRBcHBsaWNhdGlvbkNvbmZpZyIsImFwcENvbmZpZyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImFzc2lnbiJdLCJzb3VyY2VzIjpbIi4uL3NyYy9hcHBsaWNhdGlvbi1jb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtNYXBMaWIsIE1hcFJlZn0gZnJvbSAncmVhY3QtbWFwLWdsJztcblxuaW1wb3J0IHtLRVBMRVJfVU5GT0xERURfQlVDS0VUfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7QmFzZU1hcExpYnJhcnlUeXBlfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5cbmltcG9ydCB0eXBlIHtEYXRhYmFzZUFkYXB0ZXJ9IGZyb20gJy4vYXBwbGljYXRpb24tY29uZmlnLXR5cGVzJztcblxuZXhwb3J0IHR5cGUgTWFwTGliSW5zdGFuY2UgPSBNYXBMaWI8YW55PjtcbmV4cG9ydCB0eXBlIEdldE1hcFJlZiA9IFJldHVyblR5cGU8TWFwUmVmWydnZXRNYXAnXT47XG5cbmV4cG9ydCB0eXBlIEJhc2VNYXBMaWJyYXJ5Q29uZmlnID0ge1xuICBnZXRNYXBMaWI6ICgpID0+IFByb21pc2U8TWFwTGliSW5zdGFuY2U+O1xuICBtYXBMaWJBdHRyaWJ1dGlvbkNzc0NsYXNzOiBzdHJpbmc7XG4gIG1hcExpYkNzc0NsYXNzOiBzdHJpbmc7XG4gIG1hcExpYk5hbWU6IHN0cmluZztcbiAgbWFwTGliVXJsOiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIEEgbWVjaGFuaXNtIHRvIG92ZXJyaWRlIGRlZmF1bHQgS2VwbGVyIHZhbHVlcy9zZXR0aW5ncyBzbyB0aGF0IHdlXG4gKiB3aXRob3V0IGhhdmluZyB0byBtYWtlIGFwcGxpY2F0aW9uLXNwZWNpZmljIGNoYW5nZXMgdG8gdGhlIGtlcGxlciByZXBvLlxuICovXG5leHBvcnQgdHlwZSBLZXBsZXJBcHBsaWNhdGlvbkNvbmZpZyA9IHtcbiAgLyoqIERlZmF1bHQgbmFtZSBvZiBleHBvcnQgSFRNTCBmaWxlLCBjYW4gYmUgb3ZlcnJpZGRlbiBieSB1c2VyICovXG4gIGRlZmF1bHRIdG1sTmFtZT86IHN0cmluZztcbiAgZGVmYXVsdEltYWdlTmFtZT86IHN0cmluZztcbiAgZGVmYXVsdEpzb25OYW1lPzogc3RyaW5nO1xuICBkZWZhdWx0RGF0YU5hbWU/OiBzdHJpbmc7XG4gIGRlZmF1bHRFeHBvcnRKc29uU2V0dGluZ3M/OiB7XG4gICAgaGFzRGF0YT86IGJvb2xlYW47XG4gIH07XG4gIGJhc2VNYXBMaWJyYXJ5Q29uZmlnPzogUmVjb3JkPEJhc2VNYXBMaWJyYXJ5VHlwZSwgQmFzZU1hcExpYnJhcnlDb25maWc+O1xuICBwbHVnaW5zPzogYW55W107XG4gIC8vIEtlcGxlclRhYmxlIGFsdGVybmF0aXZlXG4gIC8vIFRPRE8gaW1wcm92ZSB0eXBpbmcgYnkgZXhwb3J0aW5nIEtlcGxlclRhYmxlIGludGVyZmFjZSB0byBAa2VwbGVyLmdsL3R5cGVzXG4gIHRhYmxlPzogYW55O1xuICBkYXRhYmFzZT86IERhdGFiYXNlQWRhcHRlciB8IG51bGw7XG5cbiAgLy8gRGlzYWJsZSBwcm9ncmVzc2l2ZSBsb2FkaW5nIGZvciBhcnJvdyBmaWxlc1xuICB1c2VBcnJvd1Byb2dyZXNzaXZlTG9hZGluZz86IGJvb2xlYW47XG4gIC8vIFNob3cgYnVpbHQtaW4gYmFubmVyIGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIEtlcGxlci5nbFxuICBzaG93UmVsZWFzZUJhbm5lcj86IGJvb2xlYW47XG4gIC8vIFVzZSB0aGUgb25GaWx0ZXJlZEl0ZW1zQ2hhbmdlIGNhbGxiYWNrIGZvciBEYXRhRmlsdGVyRXh0ZW5zaW9uLlxuICAvLyBFbmFibGluZyB0aGlzIG9wdGlvbiBtYXkgY2F1c2UgcGVyZm9ybWFuY2UgaXNzdWVzIHdoZW4gZGVhbGluZyB3aXRoIGEgbGFyZ2UgbnVtYmVyIG9mIGxheWVycyBvciBzdWJsYXllcnMsXG4gIC8vIGVzcGVjaWFsbHkgaWYgbGFyZ2UgQXJyb3cgZmlsZXMgYXJlIHNwbGl0IGludG8gcmVsYXRpdmVseSBzbWFsbCBiYXRjaGVzIChzaG91bGQgYmUgZml4ZWQgaW4gdGhlIGZ1dHVyZSkuXG4gIHVzZU9uRmlsdGVyZWRJdGVtc0NoYW5nZT86IGJvb2xlYW47XG5cbiAgLy8gQSBVUkwgdG8gdGhlIENETiB3aGVyZSB0aGUga2VwbGVyLmdsIGFzc2V0cyBhcmUgaG9zdGVkLlxuICBjZG5Vcmw/OiBzdHJpbmc7XG5cbiAgLy8gUmFzdGVyIFRpbGUgbGF5ZXIgY29uZmlnXG4gIC8vIFJhc3RlciBUaWxlIGxheWVyIGlzIHVuZGVyIGRldmVsb3BtZW50IGFuZCBub3QgcmVhZHkgZm9yIHByb2R1Y3Rpb24gdXNlLiBEaXNhYmxlZCBieSBkZWZhdWx0LlxuICBlbmFibGVSYXN0ZXJUaWxlTGF5ZXI/OiBib29sZWFuO1xuICAvKiogV2hldGhlciB0byB1c2UgVGl0aWxlciB2MC4yMSBBUEkgZW5kcG9pbnRzIGluc3RlYWQgb2YgdjAuMTEgKi9cbiAgcmFzdGVyU2VydmVyVXNlTGF0ZXN0VGl0aWxlcj86IGJvb2xlYW47XG4gIC8qKiBBbiBhcnJheSBvZiBVUkxzIHRvIHNoYXJkcyBvZiB0aGUgcmFzdGVyIHRpbGUgc2VydmVyIHRvIGJlIHVzZWQgYnkgdGhlIHJhc3RlciB0aWxlIGxheWVyLiAqL1xuICByYXN0ZXJTZXJ2ZXJVcmxzPzogc3RyaW5nW107XG4gIC8qKiBJZiB0cnVlIHRoZW4gdHJ5IHRvIGZldGNoIHF1YW50aXplZCBlbGV2YXRpb24gbWVzaGVzIGZyb20gcmFzdGVyIHNlcnZlcnMgKi9cbiAgcmFzdGVyU2VydmVyU3VwcG9ydHNFbGV2YXRpb24/OiBib29sZWFuO1xuICAvKiogSG93IG1hbnkgdGltZXMgdG8gcmV0cnkgYSByZXF1ZXN0IGlmIGNhc2Ugb2YgcmFzdGVyU2VydmVyU2VydmVyRXJyb3JzVG9SZXRyeSBlcnJvcnMgKi9cbiAgcmFzdGVyU2VydmVyTWF4UmV0cmllcz86IG51bWJlcjtcbiAgLyoqIEhvdyBsb25nIGJldHdlZW4gcmV0cmllcyAqL1xuICByYXN0ZXJTZXJ2ZXJSZXRyeURlbGF5PzogbnVtYmVyO1xuICAvKiogQW4gYXJyYXkgb2YgSFRUUCBzdGF0dXMgY29kZXMgdGhhdCBzaG91bGQgYmUgcmV0cmllZCB3aGVuIGVuY291bnRlcmVkLiAqL1xuICByYXN0ZXJTZXJ2ZXJTZXJ2ZXJFcnJvcnNUb1JldHJ5PzogbnVtYmVyW107XG4gIC8qKiBNYXhpbXVtIG51bWJlciBvZiBzaW11bHRhbmVvdXMgcmVxdWVzdHMgcGVyIHJhc3RlciBzZXJ2ZXIuIDAgLSBubyBsaW1pdCAqL1xuICByYXN0ZXJTZXJ2ZXJNYXhQZXJTZXJ2ZXJSZXF1ZXN0cz86IG51bWJlcjtcbiAgLyoqIFdoZXRoZXIgdG8gc2hvdyB0aGUgc2VydmVyIGlucHV0IGZpZWxkIGluIHRoZSByYXN0ZXIgdGlsZSBsYXllciBzZXR1cCBmb3JtICovXG4gIHJhc3RlclNlcnZlclNob3dTZXJ2ZXJJbnB1dD86IGJvb2xlYW47XG5cbiAgLy8gV01TIGxheWVyIGNvbmZpZyAtLSBFeHBlcmltZW50YWxcbiAgLy8gV01TIGxheWVyIGlzIHVuZGVyIGRldmVsb3BtZW50IGFuZCBub3QgcmVhZHkgZm9yIHByb2R1Y3Rpb24gdXNlLiBEaXNhYmxlZCBieSBkZWZhdWx0LlxuICBlbmFibGVXTVNMYXllcj86IGJvb2xlYW47XG59O1xuXG5jb25zdCBERUZBVUxUX0FQUExJQ0FUSU9OX0NPTkZJRzogUmVxdWlyZWQ8S2VwbGVyQXBwbGljYXRpb25Db25maWc+ID0ge1xuICBkZWZhdWx0SHRtbE5hbWU6ICdrZXBsZXIuZ2wuaHRtbCcsXG4gIGRlZmF1bHRJbWFnZU5hbWU6ICdrZXBsZXIuZ2wucG5nJyxcbiAgZGVmYXVsdEpzb25OYW1lOiAna2VwbGVyLmdsLmpzb24nLFxuICBkZWZhdWx0RGF0YU5hbWU6ICdrZXBsZXIuZ2wnLFxuICBkZWZhdWx0RXhwb3J0SnNvblNldHRpbmdzOiB7XG4gICAgaGFzRGF0YTogdHJ1ZVxuICB9LFxuXG4gIGJhc2VNYXBMaWJyYXJ5Q29uZmlnOiB7XG4gICAgbWFwbGlicmU6IHtcbiAgICAgIGdldE1hcExpYjogKCkgPT4gaW1wb3J0KCdtYXBsaWJyZS1nbCcpLFxuICAgICAgbWFwTGliQ3NzQ2xhc3M6ICdtYXBsaWJyZWdsJyxcbiAgICAgIG1hcExpYkF0dHJpYnV0aW9uQ3NzQ2xhc3M6ICdtYXBsaWJyZS1hdHRyaWJ1dGlvbi1jb250YWluZXInLFxuICAgICAgbWFwTGliTmFtZTogJ01hcExpYnJlJyxcbiAgICAgIG1hcExpYlVybDogJ2h0dHBzOi8vd3d3Lm1hcGxpYnJlLm9yZy8nXG4gICAgfSxcbiAgICBtYXBib3g6IHtcbiAgICAgIGdldE1hcExpYjogKCkgPT4gaW1wb3J0KCdtYXBib3gtZ2wnKSxcbiAgICAgIG1hcExpYkNzc0NsYXNzOiAnbWFwYm94Z2wnLFxuICAgICAgbWFwTGliQXR0cmlidXRpb25Dc3NDbGFzczogJ21hcGJveC1hdHRyaWJ1dGlvbi1jb250YWluZXInLFxuICAgICAgbWFwTGliTmFtZTogJ01hcGJveCcsXG4gICAgICBtYXBMaWJVcmw6ICdodHRwczovL3d3dy5tYXBib3guY29tLydcbiAgICB9XG4gIH0sXG5cbiAgY2RuVXJsOiBLRVBMRVJfVU5GT0xERURfQlVDS0VULFxuXG4gIHBsdWdpbnM6IFtdLFxuICAvLyBUaGUgZGVmYXVsdCB0YWJsZSBjbGFzcyBpcyBLZXBsZXJUYWJsZS5cbiAgLy8gVE9ETyBpbmNsdWRlIEtlcGxlclRhYmxlIGhlcmUgd2hlbiB0aGUgY2lyY3VsYXIgZGVwZW5kZW5jeSB3aXRoIEBrZXBsZXIuZ2wvdGFibGUgYW5kIEBrZXBsZXIuZ2wvdXRpbHMgYXJlIHJlc29sdmVkLlxuICB0YWJsZTogbnVsbCxcbiAgZGF0YWJhc2U6IG51bGwsXG5cbiAgdXNlQXJyb3dQcm9ncmVzc2l2ZUxvYWRpbmc6IHRydWUsXG4gIHNob3dSZWxlYXNlQmFubmVyOiB0cnVlLFxuICB1c2VPbkZpbHRlcmVkSXRlbXNDaGFuZ2U6IGZhbHNlLFxuXG4gIC8vIFJhc3RlciBUaWxlIGxheWVyIGNvbmZpZ1xuICBlbmFibGVSYXN0ZXJUaWxlTGF5ZXI6IHRydWUsXG4gIHJhc3RlclNlcnZlclVzZUxhdGVzdFRpdGlsZXI6IHRydWUsXG4gIHJhc3RlclNlcnZlclNob3dTZXJ2ZXJJbnB1dDogdHJ1ZSxcbiAgcmFzdGVyU2VydmVyVXJsczogW10sIC8vIFRPRE86IHByb3ZpZGUgYSBkZWZhdWx0IGZyZWUgc2VydmVyIG9yIGxlYXZlIGJsYW5rXG4gIHJhc3RlclNlcnZlclN1cHBvcnRzRWxldmF0aW9uOiB0cnVlLFxuICByYXN0ZXJTZXJ2ZXJNYXhSZXRyaWVzOiAxLFxuICByYXN0ZXJTZXJ2ZXJSZXRyeURlbGF5OiAxMDAwMCxcbiAgcmFzdGVyU2VydmVyU2VydmVyRXJyb3JzVG9SZXRyeTogWzUwM10sXG4gIHJhc3RlclNlcnZlck1heFBlclNlcnZlclJlcXVlc3RzOiAwLFxuXG4gIC8vIFdNUyBsYXllciBjb25maWdcbiAgZW5hYmxlV01TTGF5ZXI6IHRydWVcbn07XG5cbmNvbnN0IGFwcGxpY2F0aW9uQ29uZmlnOiBSZXF1aXJlZDxLZXBsZXJBcHBsaWNhdGlvbkNvbmZpZz4gPSBERUZBVUxUX0FQUExJQ0FUSU9OX0NPTkZJRztcblxuZXhwb3J0IGNvbnN0IGdldEFwcGxpY2F0aW9uQ29uZmlnID0gKCk6IFJlcXVpcmVkPEtlcGxlckFwcGxpY2F0aW9uQ29uZmlnPiA9PiBhcHBsaWNhdGlvbkNvbmZpZztcblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRBcHBsaWNhdGlvbkNvbmZpZyhhcHBDb25maWc6IEtlcGxlckFwcGxpY2F0aW9uQ29uZmlnID0ge30pIHtcbiAgT2JqZWN0LmFzc2lnbihhcHBsaWNhdGlvbkNvbmZpZywgYXBwQ29uZmlnKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBS0EsSUFBQUEsVUFBQSxHQUFBQyxPQUFBO0FBQTRELFNBQUFDLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBSSx3QkFBQUosQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxlQUFBQSxDQUFBLG9CQUFBTSxRQUFBLGFBQUFOLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsVUFBQUcsQ0FBQSxDQUFBSyxHQUFBLENBQUFSLENBQUEsT0FBQVMsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsQ0FBQSxJQUFBZixDQUFBLG9CQUFBZSxDQUFBLE9BQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBakIsQ0FBQSxFQUFBZSxDQUFBLFNBQUFHLENBQUEsR0FBQVAsQ0FBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFkLENBQUEsRUFBQWUsQ0FBQSxVQUFBRyxDQUFBLEtBQUFBLENBQUEsQ0FBQVYsR0FBQSxJQUFBVSxDQUFBLENBQUFDLEdBQUEsSUFBQVAsTUFBQSxDQUFBQyxjQUFBLENBQUFKLENBQUEsRUFBQU0sQ0FBQSxFQUFBRyxDQUFBLElBQUFULENBQUEsQ0FBQU0sQ0FBQSxJQUFBZixDQUFBLENB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
|
|
93
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwicmVxdWlyZSIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mMiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsImlzV2VicGFja0J1aWxkIiwiX193ZWJwYWNrX3JlcXVpcmVfXyIsIkRFRkFVTFRfQVBQTElDQVRJT05fQ09ORklHIiwiZGVmYXVsdEh0bWxOYW1lIiwiZGVmYXVsdEltYWdlTmFtZSIsImRlZmF1bHRKc29uTmFtZSIsImRlZmF1bHREYXRhTmFtZSIsImRlZmF1bHRFeHBvcnRKc29uU2V0dGluZ3MiLCJoYXNEYXRhIiwiYmFzZU1hcExpYnJhcnlDb25maWciLCJtYXBsaWJyZSIsImdldE1hcExpYiIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsIm1hcExpYkNzc0NsYXNzIiwibWFwTGliQXR0cmlidXRpb25Dc3NDbGFzcyIsIm1hcExpYk5hbWUiLCJtYXBMaWJVcmwiLCJtYXBib3giLCJjZG5VcmwiLCJLRVBMRVJfVU5GT0xERURfQlVDS0VUIiwicGx1Z2lucyIsInRhYmxlIiwiZGF0YWJhc2UiLCJ1c2VBcnJvd1Byb2dyZXNzaXZlTG9hZGluZyIsInNob3dSZWxlYXNlQmFubmVyIiwidXNlT25GaWx0ZXJlZEl0ZW1zQ2hhbmdlIiwiZW5hYmxlUmFzdGVyVGlsZUxheWVyIiwicmFzdGVyU2VydmVyVXNlTGF0ZXN0VGl0aWxlciIsInJhc3RlclNlcnZlclNob3dTZXJ2ZXJJbnB1dCIsInJhc3RlclNlcnZlclVybHMiLCJyYXN0ZXJTZXJ2ZXJTdXBwb3J0c0VsZXZhdGlvbiIsInJhc3RlclNlcnZlck1heFJldHJpZXMiLCJyYXN0ZXJTZXJ2ZXJSZXRyeURlbGF5IiwicmFzdGVyU2VydmVyU2VydmVyRXJyb3JzVG9SZXRyeSIsInJhc3RlclNlcnZlck1heFBlclNlcnZlclJlcXVlc3RzIiwiZW5hYmxlV01TTGF5ZXIiLCJlc2NhcGVYaHRtbEZvcldlYnBhY2siLCJhcHBsaWNhdGlvbkNvbmZpZyIsImdldEFwcGxpY2F0aW9uQ29uZmlnIiwiZXhwb3J0cyIsImluaXRBcHBsaWNhdGlvbkNvbmZpZyIsImFwcENvbmZpZyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImFzc2lnbiJdLCJzb3VyY2VzIjpbIi4uL3NyYy9hcHBsaWNhdGlvbi1jb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtNYXBMaWIsIE1hcFJlZn0gZnJvbSAncmVhY3QtbWFwLWdsJztcblxuaW1wb3J0IHtLRVBMRVJfVU5GT0xERURfQlVDS0VUfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7QmFzZU1hcExpYnJhcnlUeXBlfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5cbmltcG9ydCB0eXBlIHtEYXRhYmFzZUFkYXB0ZXJ9IGZyb20gJy4vYXBwbGljYXRpb24tY29uZmlnLXR5cGVzJztcblxuLyoqXG4gKiBEZXRlY3QgaWYgcnVubmluZyB3aXRoIHdlYnBhY2sgYnVpbGQgdG9vbFxuICovXG5mdW5jdGlvbiBpc1dlYnBhY2tCdWlsZCgpOiBib29sZWFuIHtcbiAgLy8gQHRzLWlnbm9yZSAtIF9fd2VicGFja19yZXF1aXJlX18gaXMgaW5qZWN0ZWQgYnkgd2VicGFjayBhdCBydW50aW1lXG4gIHJldHVybiB0eXBlb2YgX193ZWJwYWNrX3JlcXVpcmVfXyAhPT0gJ3VuZGVmaW5lZCc7XG59XG5cbmV4cG9ydCB0eXBlIE1hcExpYkluc3RhbmNlID0gTWFwTGliPGFueT47XG5leHBvcnQgdHlwZSBHZXRNYXBSZWYgPSBSZXR1cm5UeXBlPE1hcFJlZlsnZ2V0TWFwJ10+O1xuXG5leHBvcnQgdHlwZSBCYXNlTWFwTGlicmFyeUNvbmZpZyA9IHtcbiAgZ2V0TWFwTGliOiAoKSA9PiBQcm9taXNlPE1hcExpYkluc3RhbmNlPjtcbiAgbWFwTGliQXR0cmlidXRpb25Dc3NDbGFzczogc3RyaW5nO1xuICBtYXBMaWJDc3NDbGFzczogc3RyaW5nO1xuICBtYXBMaWJOYW1lOiBzdHJpbmc7XG4gIG1hcExpYlVybDogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBBIG1lY2hhbmlzbSB0byBvdmVycmlkZSBkZWZhdWx0IEtlcGxlciB2YWx1ZXMvc2V0dGluZ3Mgc28gdGhhdCB3ZVxuICogd2l0aG91dCBoYXZpbmcgdG8gbWFrZSBhcHBsaWNhdGlvbi1zcGVjaWZpYyBjaGFuZ2VzIHRvIHRoZSBrZXBsZXIgcmVwby5cbiAqL1xuZXhwb3J0IHR5cGUgS2VwbGVyQXBwbGljYXRpb25Db25maWcgPSB7XG4gIC8qKiBEZWZhdWx0IG5hbWUgb2YgZXhwb3J0IEhUTUwgZmlsZSwgY2FuIGJlIG92ZXJyaWRkZW4gYnkgdXNlciAqL1xuICBkZWZhdWx0SHRtbE5hbWU/OiBzdHJpbmc7XG4gIGRlZmF1bHRJbWFnZU5hbWU/OiBzdHJpbmc7XG4gIGRlZmF1bHRKc29uTmFtZT86IHN0cmluZztcbiAgZGVmYXVsdERhdGFOYW1lPzogc3RyaW5nO1xuICBkZWZhdWx0RXhwb3J0SnNvblNldHRpbmdzPzoge1xuICAgIGhhc0RhdGE/OiBib29sZWFuO1xuICB9O1xuICBiYXNlTWFwTGlicmFyeUNvbmZpZz86IFJlY29yZDxCYXNlTWFwTGlicmFyeVR5cGUsIEJhc2VNYXBMaWJyYXJ5Q29uZmlnPjtcbiAgcGx1Z2lucz86IGFueVtdO1xuICAvLyBLZXBsZXJUYWJsZSBhbHRlcm5hdGl2ZVxuICAvLyBUT0RPIGltcHJvdmUgdHlwaW5nIGJ5IGV4cG9ydGluZyBLZXBsZXJUYWJsZSBpbnRlcmZhY2UgdG8gQGtlcGxlci5nbC90eXBlc1xuICB0YWJsZT86IGFueTtcbiAgZGF0YWJhc2U/OiBEYXRhYmFzZUFkYXB0ZXIgfCBudWxsO1xuXG4gIC8vIERpc2FibGUgcHJvZ3Jlc3NpdmUgbG9hZGluZyBmb3IgYXJyb3cgZmlsZXNcbiAgdXNlQXJyb3dQcm9ncmVzc2l2ZUxvYWRpbmc/OiBib29sZWFuO1xuICAvLyBTaG93IGJ1aWx0LWluIGJhbm5lciBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgdmVyc2lvbiBvZiBLZXBsZXIuZ2xcbiAgc2hvd1JlbGVhc2VCYW5uZXI/OiBib29sZWFuO1xuICAvLyBVc2UgdGhlIG9uRmlsdGVyZWRJdGVtc0NoYW5nZSBjYWxsYmFjayBmb3IgRGF0YUZpbHRlckV4dGVuc2lvbi5cbiAgLy8gRW5hYmxpbmcgdGhpcyBvcHRpb24gbWF5IGNhdXNlIHBlcmZvcm1hbmNlIGlzc3VlcyB3aGVuIGRlYWxpbmcgd2l0aCBhIGxhcmdlIG51bWJlciBvZiBsYXllcnMgb3Igc3VibGF5ZXJzLFxuICAvLyBlc3BlY2lhbGx5IGlmIGxhcmdlIEFycm93IGZpbGVzIGFyZSBzcGxpdCBpbnRvIHJlbGF0aXZlbHkgc21hbGwgYmF0Y2hlcyAoc2hvdWxkIGJlIGZpeGVkIGluIHRoZSBmdXR1cmUpLlxuICB1c2VPbkZpbHRlcmVkSXRlbXNDaGFuZ2U/OiBib29sZWFuO1xuXG4gIC8vIEEgVVJMIHRvIHRoZSBDRE4gd2hlcmUgdGhlIGtlcGxlci5nbCBhc3NldHMgYXJlIGhvc3RlZC5cbiAgY2RuVXJsPzogc3RyaW5nO1xuXG4gIC8vIFJhc3RlciBUaWxlIGxheWVyIGNvbmZpZ1xuICAvLyBSYXN0ZXIgVGlsZSBsYXllciBpcyB1bmRlciBkZXZlbG9wbWVudCBhbmQgbm90IHJlYWR5IGZvciBwcm9kdWN0aW9uIHVzZS4gRGlzYWJsZWQgYnkgZGVmYXVsdC5cbiAgZW5hYmxlUmFzdGVyVGlsZUxheWVyPzogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgdG8gdXNlIFRpdGlsZXIgdjAuMjEgQVBJIGVuZHBvaW50cyBpbnN0ZWFkIG9mIHYwLjExICovXG4gIHJhc3RlclNlcnZlclVzZUxhdGVzdFRpdGlsZXI/OiBib29sZWFuO1xuICAvKiogQW4gYXJyYXkgb2YgVVJMcyB0byBzaGFyZHMgb2YgdGhlIHJhc3RlciB0aWxlIHNlcnZlciB0byBiZSB1c2VkIGJ5IHRoZSByYXN0ZXIgdGlsZSBsYXllci4gKi9cbiAgcmFzdGVyU2VydmVyVXJscz86IHN0cmluZ1tdO1xuICAvKiogSWYgdHJ1ZSB0aGVuIHRyeSB0byBmZXRjaCBxdWFudGl6ZWQgZWxldmF0aW9uIG1lc2hlcyBmcm9tIHJhc3RlciBzZXJ2ZXJzICovXG4gIHJhc3RlclNlcnZlclN1cHBvcnRzRWxldmF0aW9uPzogYm9vbGVhbjtcbiAgLyoqIEhvdyBtYW55IHRpbWVzIHRvIHJldHJ5IGEgcmVxdWVzdCBpZiBjYXNlIG9mIHJhc3RlclNlcnZlclNlcnZlckVycm9yc1RvUmV0cnkgZXJyb3JzICovXG4gIHJhc3RlclNlcnZlck1heFJldHJpZXM/OiBudW1iZXI7XG4gIC8qKiBIb3cgbG9uZyBiZXR3ZWVuIHJldHJpZXMgKi9cbiAgcmFzdGVyU2VydmVyUmV0cnlEZWxheT86IG51bWJlcjtcbiAgLyoqIEFuIGFycmF5IG9mIEhUVFAgc3RhdHVzIGNvZGVzIHRoYXQgc2hvdWxkIGJlIHJldHJpZWQgd2hlbiBlbmNvdW50ZXJlZC4gKi9cbiAgcmFzdGVyU2VydmVyU2VydmVyRXJyb3JzVG9SZXRyeT86IG51bWJlcltdO1xuICAvKiogTWF4aW11bSBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzIHJlcXVlc3RzIHBlciByYXN0ZXIgc2VydmVyLiAwIC0gbm8gbGltaXQgKi9cbiAgcmFzdGVyU2VydmVyTWF4UGVyU2VydmVyUmVxdWVzdHM/OiBudW1iZXI7XG4gIC8qKiBXaGV0aGVyIHRvIHNob3cgdGhlIHNlcnZlciBpbnB1dCBmaWVsZCBpbiB0aGUgcmFzdGVyIHRpbGUgbGF5ZXIgc2V0dXAgZm9ybSAqL1xuICByYXN0ZXJTZXJ2ZXJTaG93U2VydmVySW5wdXQ/OiBib29sZWFuO1xuXG4gIC8vIFdNUyBsYXllciBjb25maWcgLS0gRXhwZXJpbWVudGFsXG4gIC8vIFdNUyBsYXllciBpcyB1bmRlciBkZXZlbG9wbWVudCBhbmQgbm90IHJlYWR5IGZvciBwcm9kdWN0aW9uIHVzZS4gRGlzYWJsZWQgYnkgZGVmYXVsdC5cbiAgZW5hYmxlV01TTGF5ZXI/OiBib29sZWFuO1xuXG4gIC8vIEltYWdlIGV4cG9ydCBjb25maWdcbiAgLyoqIFdoZXRoZXIgdG8gYXBwbHkgZml4IGZvciB1Z2xpZnkgZXJyb3IgaW4gZG9tLXRvLWltYWdlIChzaG91bGQgYmUgdHJ1ZSBmb3Igd2VicGFjayBidWlsZHMsIGZhbHNlIGZvciBWaXRlKSAqL1xuICBlc2NhcGVYaHRtbEZvcldlYnBhY2s/OiBib29sZWFuO1xufTtcblxuY29uc3QgREVGQVVMVF9BUFBMSUNBVElPTl9DT05GSUc6IFJlcXVpcmVkPEtlcGxlckFwcGxpY2F0aW9uQ29uZmlnPiA9IHtcbiAgZGVmYXVsdEh0bWxOYW1lOiAna2VwbGVyLmdsLmh0bWwnLFxuICBkZWZhdWx0SW1hZ2VOYW1lOiAna2VwbGVyLmdsLnBuZycsXG4gIGRlZmF1bHRKc29uTmFtZTogJ2tlcGxlci5nbC5qc29uJyxcbiAgZGVmYXVsdERhdGFOYW1lOiAna2VwbGVyLmdsJyxcbiAgZGVmYXVsdEV4cG9ydEpzb25TZXR0aW5nczoge1xuICAgIGhhc0RhdGE6IHRydWVcbiAgfSxcblxuICBiYXNlTWFwTGlicmFyeUNvbmZpZzoge1xuICAgIG1hcGxpYnJlOiB7XG4gICAgICBnZXRNYXBMaWI6ICgpID0+IGltcG9ydCgnbWFwbGlicmUtZ2wnKSxcbiAgICAgIG1hcExpYkNzc0NsYXNzOiAnbWFwbGlicmVnbCcsXG4gICAgICBtYXBMaWJBdHRyaWJ1dGlvbkNzc0NsYXNzOiAnbWFwbGlicmUtYXR0cmlidXRpb24tY29udGFpbmVyJyxcbiAgICAgIG1hcExpYk5hbWU6ICdNYXBMaWJyZScsXG4gICAgICBtYXBMaWJVcmw6ICdodHRwczovL3d3dy5tYXBsaWJyZS5vcmcvJ1xuICAgIH0sXG4gICAgbWFwYm94OiB7XG4gICAgICBnZXRNYXBMaWI6ICgpID0+IGltcG9ydCgnbWFwYm94LWdsJyksXG4gICAgICBtYXBMaWJDc3NDbGFzczogJ21hcGJveGdsJyxcbiAgICAgIG1hcExpYkF0dHJpYnV0aW9uQ3NzQ2xhc3M6ICdtYXBib3gtYXR0cmlidXRpb24tY29udGFpbmVyJyxcbiAgICAgIG1hcExpYk5hbWU6ICdNYXBib3gnLFxuICAgICAgbWFwTGliVXJsOiAnaHR0cHM6Ly93d3cubWFwYm94LmNvbS8nXG4gICAgfVxuICB9LFxuXG4gIGNkblVybDogS0VQTEVSX1VORk9MREVEX0JVQ0tFVCxcblxuICBwbHVnaW5zOiBbXSxcbiAgLy8gVGhlIGRlZmF1bHQgdGFibGUgY2xhc3MgaXMgS2VwbGVyVGFibGUuXG4gIC8vIFRPRE8gaW5jbHVkZSBLZXBsZXJUYWJsZSBoZXJlIHdoZW4gdGhlIGNpcmN1bGFyIGRlcGVuZGVuY3kgd2l0aCBAa2VwbGVyLmdsL3RhYmxlIGFuZCBAa2VwbGVyLmdsL3V0aWxzIGFyZSByZXNvbHZlZC5cbiAgdGFibGU6IG51bGwsXG4gIGRhdGFiYXNlOiBudWxsLFxuXG4gIHVzZUFycm93UHJvZ3Jlc3NpdmVMb2FkaW5nOiB0cnVlLFxuICBzaG93UmVsZWFzZUJhbm5lcjogdHJ1ZSxcbiAgdXNlT25GaWx0ZXJlZEl0ZW1zQ2hhbmdlOiBmYWxzZSxcblxuICAvLyBSYXN0ZXIgVGlsZSBsYXllciBjb25maWdcbiAgZW5hYmxlUmFzdGVyVGlsZUxheWVyOiB0cnVlLFxuICByYXN0ZXJTZXJ2ZXJVc2VMYXRlc3RUaXRpbGVyOiB0cnVlLFxuICByYXN0ZXJTZXJ2ZXJTaG93U2VydmVySW5wdXQ6IHRydWUsXG4gIHJhc3RlclNlcnZlclVybHM6IFtdLCAvLyBUT0RPOiBwcm92aWRlIGEgZGVmYXVsdCBmcmVlIHNlcnZlciBvciBsZWF2ZSBibGFua1xuICByYXN0ZXJTZXJ2ZXJTdXBwb3J0c0VsZXZhdGlvbjogdHJ1ZSxcbiAgcmFzdGVyU2VydmVyTWF4UmV0cmllczogMSxcbiAgcmFzdGVyU2VydmVyUmV0cnlEZWxheTogMTAwMDAsXG4gIHJhc3RlclNlcnZlclNlcnZlckVycm9yc1RvUmV0cnk6IFs1MDNdLFxuICByYXN0ZXJTZXJ2ZXJNYXhQZXJTZXJ2ZXJSZXF1ZXN0czogMCxcblxuICAvLyBXTVMgbGF5ZXIgY29uZmlnXG4gIGVuYWJsZVdNU0xheWVyOiB0cnVlLFxuXG4gIC8vIEltYWdlIGV4cG9ydCBjb25maWdcbiAgLy8gRGVmYXVsdCB0byB0cnVlIGZvciB3ZWJwYWNrIGJ1aWxkcywgZmFsc2UgZm9yIG90aGVyIGJ1aWxkIHRvb2xzIChlLmcuLCBWaXRlKVxuICBlc2NhcGVYaHRtbEZvcldlYnBhY2s6IGlzV2VicGFja0J1aWxkKClcbn07XG5cbmNvbnN0IGFwcGxpY2F0aW9uQ29uZmlnOiBSZXF1aXJlZDxLZXBsZXJBcHBsaWNhdGlvbkNvbmZpZz4gPSBERUZBVUxUX0FQUExJQ0FUSU9OX0NPTkZJRztcblxuZXhwb3J0IGNvbnN0IGdldEFwcGxpY2F0aW9uQ29uZmlnID0gKCk6IFJlcXVpcmVkPEtlcGxlckFwcGxpY2F0aW9uQ29uZmlnPiA9PiBhcHBsaWNhdGlvbkNvbmZpZztcblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRBcHBsaWNhdGlvbkNvbmZpZyhhcHBDb25maWc6IEtlcGxlckFwcGxpY2F0aW9uQ29uZmlnID0ge30pIHtcbiAgT2JqZWN0LmFzc2lnbihhcHBsaWNhdGlvbkNvbmZpZywgYXBwQ29uZmlnKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBS0EsSUFBQUEsVUFBQSxHQUFBQyxPQUFBO0FBQTRELFNBQUFDLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFB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
|
package/dist/dom-to-image.js
CHANGED
|
@@ -9,7 +9,6 @@ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
|
9
9
|
var _window = _interopRequireDefault(require("global/window"));
|
|
10
10
|
var _document = _interopRequireDefault(require("global/document"));
|
|
11
11
|
var _console = _interopRequireDefault(require("global/console"));
|
|
12
|
-
var _miniSvgDataUri = _interopRequireDefault(require("mini-svg-data-uri"));
|
|
13
12
|
var _constants = require("@kepler.gl/constants");
|
|
14
13
|
var _domUtils = require("./dom-utils");
|
|
15
14
|
// SPDX-License-Identifier: MIT
|
|
@@ -211,11 +210,24 @@ function makeSvgDataUri(node, width, height) {
|
|
|
211
210
|
var foreignObject = "<foreignObject x=\"0\" y=\"0\" width=\"100%\" height=\"100%\">".concat(xhtml, "</foreignObject>");
|
|
212
211
|
var svgStr = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"".concat(width, "\" height=\"").concat(height, "\">").concat(foreignObject, "</svg>");
|
|
213
212
|
|
|
214
|
-
//
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
213
|
+
// Use base64 encoding
|
|
214
|
+
var base64Svg;
|
|
215
|
+
if (typeof Buffer !== 'undefined' && Buffer.from) {
|
|
216
|
+
base64Svg = Buffer.from(svgStr, 'utf8').toString('base64');
|
|
217
|
+
} else if (typeof TextEncoder !== 'undefined') {
|
|
218
|
+
// Modern browsers: TextEncoder handles Unicode → UTF-8 bytes
|
|
219
|
+
// Must chunk to avoid call stack limits with large arrays
|
|
220
|
+
var bytes = new TextEncoder().encode(svgStr);
|
|
221
|
+
var CHUNK_SIZE = 8192;
|
|
222
|
+
var binary = '';
|
|
223
|
+
for (var i = 0; i < bytes.length; i += CHUNK_SIZE) {
|
|
224
|
+
binary += String.fromCharCode.apply(null, Array.from(bytes.slice(i, i + CHUNK_SIZE)));
|
|
225
|
+
}
|
|
226
|
+
base64Svg = _window["default"].btoa(binary);
|
|
227
|
+
} else {
|
|
228
|
+
throw new Error('No base64 encoder found');
|
|
229
|
+
}
|
|
230
|
+
return "data:image/svg+xml;base64,".concat(base64Svg);
|
|
219
231
|
});
|
|
220
232
|
}
|
|
221
233
|
function newInliner() {
|
|
@@ -418,4 +430,4 @@ function newImages() {
|
|
|
418
430
|
}
|
|
419
431
|
}
|
|
420
432
|
var _default = exports["default"] = domtoimage;
|
|
421
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd2luZG93IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZG9jdW1lbnQiLCJfY29uc29sZSIsIl9taW5pU3ZnRGF0YVVyaSIsIl9jb25zdGFudHMiLCJfZG9tVXRpbHMiLCJpbmxpbmVyIiwibmV3SW5saW5lciIsImZvbnRGYWNlcyIsIm5ld0ZvbnRGYWNlcyIsImltYWdlcyIsIm5ld0ltYWdlcyIsImRlZmF1bHRPcHRpb25zIiwiaW1hZ2VQbGFjZWhvbGRlciIsInVuZGVmaW5lZCIsImNhY2hlQnVzdCIsImRvbXRvaW1hZ2UiLCJ0b1N2ZyIsInRvUG5nIiwidG9KcGVnIiwidG9CbG9iIiwidG9QaXhlbERhdGEiLCJpbXBsIiwib3B0aW9ucyIsIm5vZGUiLCJjb3B5T3B0aW9ucyIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsIm5kIiwiY2xvbmVOb2RlIiwiZmlsdGVyIiwiZW1iZWRGb250cyIsImlubGluZUltYWdlcyIsImFwcGx5T3B0aW9ucyIsImNsb25lIiwibWFrZVN2Z0RhdGFVcmkiLCJ3aWR0aCIsImdldFdpZHRoIiwiaGVpZ2h0IiwiZ2V0SGVpZ2h0IiwiZXNjYXBlWGh0bWxGb3JXZWJwYWNrIiwiYmdjb2xvciIsInN0eWxlIiwiYmFja2dyb3VuZENvbG9yIiwiY29uY2F0IiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJwcm9wZXJ0eSIsImRyYXciLCJjYW52YXMiLCJnZXRDb250ZXh0IiwiZ2V0SW1hZ2VEYXRhIiwiZGF0YSIsInRvRGF0YVVSTCIsInF1YWxpdHkiLCJjYW52YXNUb0Jsb2IiLCJkb21Ob2RlIiwibWFrZUltYWdlIiwiZGVsYXkiLCJpbWFnZSIsIm5ld0NhbnZhcyIsImRyYXdJbWFnZSIsImROb2RlIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiY3R4IiwiZmlsbFN0eWxlIiwiZmlsbFJlY3QiLCJyb290IiwibWFrZU5vZGVDb3B5IiwiY2xvbmVDaGlsZHJlbiIsInByb2Nlc3NDbG9uZSIsIldpbmRvdyIsIkhUTUxDYW52YXNFbGVtZW50IiwiY2xvbmVDaGlsZHJlbkluT3JkZXIiLCJwYXJlbnQiLCJhcnJDaGlsZHJlbiIsImZsdCIsImRvbmUiLCJjaGlsZCIsImNoaWxkQ2xvbmUiLCJhcHBlbmRDaGlsZCIsIm9yaWdpbmFsIiwiY2hpbGRyZW4iLCJjaGlsZE5vZGVzIiwibGVuZ3RoIiwiYXNBcnJheSIsInJlc29sdmVBbGwiLCJjc3NUZXh0Iiwic3R5bGVOb2RlIiwiY3JlYXRlVGV4dE5vZGUiLCJpbmxpbmVBbGwiLCJhcmd1bWVudHMiLCJzZXRBdHRyaWJ1dGUiLCJzZXJpYWxpemVkU3RyaW5nIiwiWE1MU2VyaWFsaXplciIsInNlcmlhbGl6ZVRvU3RyaW5nIiwieGh0bWwiLCJlc2NhcGVYaHRtbCIsImZvcmVpZ25PYmplY3QiLCJzdmdTdHIiLCJzdmdUb01pbmlEYXRhVVJJIiwiVVJMX1JFR0VYIiwic2hvdWxkUHJvY2VzcyIsInJlYWRVcmxzIiwiaW5saW5lIiwic3RyaW5nIiwic2VhcmNoIiwicmVzdWx0IiwibWF0Y2giLCJleGVjIiwicHVzaCIsInVybCIsImlzRGF0YVVybCIsInVybEFzUmVnZXgiLCJ1cmwwIiwiUmVnRXhwIiwiZXNjYXBlIiwiYmFzZVVybCIsImdldCIsInVsIiwicmVzb2x2ZVVybCIsImdldEFuZEVuY29kZSIsImRhdGFBc1VybCIsIm1pbWVUeXBlIiwiZGF0YVVybCIsInJlcGxhY2UiLCJpc1NyY0FzRGF0YVVybCIsInVybHMiLCJzdHIiLCJyZWFkQWxsIiwid2ViRm9udHMiLCJhbGwiLCJtYXAiLCJ3ZWJGb250IiwiY3NzU3RyaW5ncyIsImpvaW4iLCJzdHlsZVNoZWV0cyIsImxvYWRFeHRlcm5hbFN0eWxlU2hlZXRzIiwiZ2V0Q3NzUnVsZXMiLCJzZWxlY3RXZWJGb250UnVsZXMiLCJydWxlcyIsIm5ld1dlYkZvbnQiLCJjc3NSdWxlcyIsInJ1bGUiLCJ0eXBlIiwiQ1NTUnVsZSIsIkZPTlRfRkFDRV9SVUxFIiwiZ2V0UHJvcGVydHlWYWx1ZSIsInNoZWV0IiwiaHJlZiIsImNhY2hlIiwiaW5jbHVkZXMiLCJmZXRjaCIsImNyZWRlbnRpYWxzIiwicmVzcG9uc2UiLCJ0ZXh0Iiwic2V0U3R5bGVTaGVldEJhc2VIcmVmIiwidG9TdHlsZVNoZWV0IiwiZXJyIiwiQ29uc29sZSIsIndhcm4iLCJJTUFHRV9FWFBPUlRfRVJST1JTIiwic3R5bGVTaGVldCIsImxvZyIsImUiLCJfdHlwZW9mMiIsImJpbmQiLCJ3ZWJGb250UnVsZSIsInBhcmVudFN0eWxlU2hlZXQiLCJzcmMiLCJuZXdJbWFnZSIsImVsZW1lbnQiLCJyZWplY3QiLCJvbmxvYWQiLCJvbmVycm9yIiwiRWxlbWVudCIsImlubGluZUJhY2tncm91bmQiLCJIVE1MSW1hZ2VFbGVtZW50IiwiYmFja2dyb3VuZCIsImlubGluZWQiLCJzZXRQcm9wZXJ0eSIsImdldFByb3BlcnR5UHJpb3JpdHkiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi9zcmMvZG9tLXRvLWltYWdlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbi8qKlxuICogVGhpcyBmaWxlIGlzIGNvcGllZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS90c2F5ZW4vZG9tLXRvLWltYWdlXG4gKiBNb2RpZmllZCBieSBoZXNoYW4wMTMxIHRvIGFsbG93IGxvYWRpbmcgZXh0ZXJuYWwgc3R5bGVzaGVldHMgYW5kIGlubGluZSB3ZWJmb250c1xuICovXG5cbmltcG9ydCBXaW5kb3cgZnJvbSAnZ2xvYmFsL3dpbmRvdyc7XG5pbXBvcnQgZG9jdW1lbnQgZnJvbSAnZ2xvYmFsL2RvY3VtZW50JztcbmltcG9ydCBDb25zb2xlIGZyb20gJ2dsb2JhbC9jb25zb2xlJztcbmltcG9ydCBzdmdUb01pbmlEYXRhVVJJIGZyb20gJ21pbmktc3ZnLWRhdGEtdXJpJztcbmltcG9ydCB7SU1BR0VfRVhQT1JUX0VSUk9SU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuXG5pbXBvcnQge1xuICBjYW52YXNUb0Jsb2IsXG4gIGVzY2FwZSxcbiAgZXNjYXBlWGh0bWwsXG4gIGRlbGF5LFxuICBwcm9jZXNzQ2xvbmUsXG4gIGFzQXJyYXksXG4gIG1ha2VJbWFnZSxcbiAgbWltZVR5cGUsXG4gIGRhdGFBc1VybCxcbiAgaXNEYXRhVXJsLFxuICBpc1NyY0FzRGF0YVVybCxcbiAgcmVzb2x2ZVVybCxcbiAgZ2V0V2lkdGgsXG4gIGdldEhlaWdodCxcbiAgZ2V0QW5kRW5jb2RlLFxuICBzZXRTdHlsZVNoZWV0QmFzZUhyZWYsXG4gIHRvU3R5bGVTaGVldFxufSBmcm9tICcuL2RvbS11dGlscyc7XG5cbmNvbnN0IGlubGluZXIgPSBuZXdJbmxpbmVyKCk7XG5jb25zdCBmb250RmFjZXMgPSBuZXdGb250RmFjZXMoKTtcbmNvbnN0IGltYWdlcyA9IG5ld0ltYWdlcygpO1xuLy8gRGVmYXVsdCBpbXBsIG9wdGlvbnNcbmNvbnN0IGRlZmF1bHRPcHRpb25zID0ge1xuICAvLyBEZWZhdWx0IGlzIHRvIGZhaWwgb24gZXJyb3IsIG5vIHBsYWNlaG9sZGVyXG4gIGltYWdlUGxhY2Vob2xkZXI6IHVuZGVmaW5lZCxcbiAgLy8gRGVmYXVsdCBjYWNoZSBidXN0IGlzIGZhbHNlLCBpdCB3aWxsIHVzZSB0aGUgY2FjaGVcbiAgY2FjaGVCdXN0OiBmYWxzZVxufTtcblxuY29uc3QgZG9tdG9pbWFnZSA9IHtcbiAgdG9TdmcsXG4gIHRvUG5nLFxuICB0b0pwZWcsXG4gIHRvQmxvYixcbiAgdG9QaXhlbERhdGEsXG4gIGltcGw6IHtcbiAgICBmb250RmFjZXMsXG4gICAgaW1hZ2VzLFxuICAgIGlubGluZXIsXG4gICAgb3B0aW9uczoge30gYXMgYW55XG4gIH1cbn07XG5cbi8qKlxuICogQHBhcmFtIHtOb2RlfSBub2RlIC0gVGhlIERPTSBOb2RlIG9iamVjdCB0byByZW5kZXJcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gUmVuZGVyaW5nIG9wdGlvbnNcbiAqIEBwYXJhbSB7RnVuY3Rpb259IFtvcHRpb25zLmZpbHRlcl0gLSBTaG91bGQgcmV0dXJuIHRydWUgaWYgcGFzc2VkIG5vZGUgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBvdXRwdXRcbiAqICAgICAgICAgIChleGNsdWRpbmcgbm9kZSBtZWFucyBleGNsdWRpbmcgaXQncyBjaGlsZHJlbiBhcyB3ZWxsKS4gTm90IGNhbGxlZCBvbiB0aGUgcm9vdCBub2RlLlxuICogQHBhcmFtIHtTdHJpbmd9IFtvcHRpb25zLmJnY29sb3JdIC0gY29sb3IgZm9yIHRoZSBiYWNrZ3JvdW5kLCBhbnkgdmFsaWQgQ1NTIGNvbG9yIHZhbHVlLlxuICogQHBhcmFtIHtOdW1iZXJ9IFtvcHRpb25zLndpZHRoXSAtIHdpZHRoIHRvIGJlIGFwcGxpZWQgdG8gbm9kZSBiZWZvcmUgcmVuZGVyaW5nLlxuICogQHBhcmFtIHtOdW1iZXJ9IFtvcHRpb25zLmhlaWdodF0gLSBoZWlnaHQgdG8gYmUgYXBwbGllZCB0byBub2RlIGJlZm9yZSByZW5kZXJpbmcuXG4gKiBAcGFyYW0ge09iamVjdH0gW29wdGlvbnMuc3R5bGVdIC0gYW4gb2JqZWN0IHdob3NlIHByb3BlcnRpZXMgdG8gYmUgY29waWVkIHRvIG5vZGUncyBzdHlsZSBiZWZvcmUgcmVuZGVyaW5nLlxuICogQHBhcmFtIHtOdW1iZXJ9IFtvcHRpb25zLnF1YWxpdHldIC0gYSBOdW1iZXIgYmV0d2VlbiAwIGFuZCAxIGluZGljYXRpbmcgaW1hZ2UgcXVhbGl0eSAoYXBwbGljYWJsZSB0byBKUEVHIG9ubHkpLCBkZWZhdWx0cyB0byAxLjAuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmVzY2FwZVhodG1sRm9yV2VicGFja10gLSB3aGV0aGVyIHRvIGFwcGx5IGZpeCBmb3IgdWdsaWZ5IGVycm9yIGluIGRvbS10by1pbWFnZSAoc2hvdWxkIGJlIHRydWUgZm9yIHdlYnBhY2sgYnVpbGRzKSwgZGVmYXVsdHMgdG8gdHJ1ZS5cbiAqIEBwYXJhbSB7U3RyaW5nfSBbb3B0aW9ucy5pbWFnZVBsYWNlaG9sZGVyXSAtIGRhdGFVUkwgdG8gdXNlIGFzIGEgcGxhY2Vob2xkZXIgZm9yIGZhaWxlZCBpbWFnZXMsIGRlZmF1bHQgYmVoYXZpb3VyIGlzIHRvIGZhaWwgZmFzdCBvbiBpbWFnZXMgd2UgY2FuJ3QgZmV0Y2hcbiAqIEBwYXJhbSB7Qm9vbGVhbn0gW29wdGlvbnMuY2FjaGVCdXN0XSAtIHNldCB0byB0cnVlIHRvIGNhY2hlIGJ1c3QgYnkgYXBwZW5kaW5nIHRoZSB0aW1lIHRvIHRoZSByZXF1ZXN0IHVybFxuICogQHJldHVybiB7UHJvbWlzZX0gLSBBIHByb21pc2UgdGhhdCBpcyBmdWxmaWxsZWQgd2l0aCBhIFNWRyBpbWFnZSBkYXRhIFVSTFxuICogKi9cbmZ1bmN0aW9uIHRvU3ZnKG5vZGUsIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIGNvcHlPcHRpb25zKG9wdGlvbnMpO1xuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5vZGUpXG4gICAgLnRoZW4obmQgPT4gY2xvbmVOb2RlKG5kLCBvcHRpb25zLmZpbHRlciwgdHJ1ZSkpXG4gICAgLnRoZW4oZW1iZWRGb250cylcbiAgICAudGhlbihpbmxpbmVJbWFnZXMpXG4gICAgLnRoZW4oYXBwbHlPcHRpb25zKVxuICAgIC50aGVuKGNsb25lID0+XG4gICAgICBtYWtlU3ZnRGF0YVVyaShcbiAgICAgICAgY2xvbmUsXG4gICAgICAgIG9wdGlvbnMud2lkdGggfHwgZ2V0V2lkdGgobm9kZSksXG4gICAgICAgIG9wdGlvbnMuaGVpZ2h0IHx8IGdldEhlaWdodChub2RlKSxcbiAgICAgICAgb3B0aW9ucy5lc2NhcGVYaHRtbEZvcldlYnBhY2tcbiAgICAgIClcbiAgICApO1xuXG4gIGZ1bmN0aW9uIGFwcGx5T3B0aW9ucyhjbG9uZSkge1xuICAgIGlmIChvcHRpb25zLmJnY29sb3IpIGNsb25lLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IG9wdGlvbnMuYmdjb2xvcjtcblxuICAgIGlmIChvcHRpb25zLndpZHRoKSBjbG9uZS5zdHlsZS53aWR0aCA9IGAke29wdGlvbnMud2lkdGh9cHhgO1xuICAgIGlmIChvcHRpb25zLmhlaWdodCkgY2xvbmUuc3R5bGUuaGVpZ2h0ID0gYCR7b3B0aW9ucy5oZWlnaHR9cHhgO1xuXG4gICAgaWYgKG9wdGlvbnMuc3R5bGUpXG4gICAgICBPYmplY3Qua2V5cyhvcHRpb25zLnN0eWxlKS5mb3JFYWNoKHByb3BlcnR5ID0+IHtcbiAgICAgICAgY2xvbmUuc3R5bGVbcHJvcGVydHldID0gb3B0aW9ucy5zdHlsZVtwcm9wZXJ0eV07XG4gICAgICB9KTtcblxuICAgIHJldHVybiBjbG9uZTtcbiAgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7Tm9kZX0gbm9kZSAtIFRoZSBET00gTm9kZSBvYmplY3QgdG8gcmVuZGVyXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIFJlbmRlcmluZyBvcHRpb25zXG4gKiBAcmV0dXJuIHtQcm9taXNlfSAtIEEgcHJvbWlzZSB0aGF0IGlzIGZ1bGZpbGxlZCB3aXRoIGEgVWludDhBcnJheSBjb250YWluaW5nIFJHQkEgcGl4ZWwgZGF0YS5cbiAqICovXG5mdW5jdGlvbiB0b1BpeGVsRGF0YShub2RlLCBvcHRpb25zKSB7XG4gIHJldHVybiBkcmF3KG5vZGUsIG9wdGlvbnMgfHwge30pLnRoZW4oXG4gICAgY2FudmFzID0+IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpLmdldEltYWdlRGF0YSgwLCAwLCBnZXRXaWR0aChub2RlKSwgZ2V0SGVpZ2h0KG5vZGUpKS5kYXRhXG4gICk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtOb2RlfSBub2RlIC0gVGhlIERPTSBOb2RlIG9iamVjdCB0byByZW5kZXJcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gUmVuZGVyaW5nIG9wdGlvbnNcbiAqIEByZXR1cm4ge1Byb21pc2V9IC0gQSBwcm9taXNlIHRoYXQgaXMgZnVsZmlsbGVkIHdpdGggYSBQTkcgaW1hZ2UgZGF0YSBVUkxcbiAqICovXG5mdW5jdGlvbiB0b1BuZyhub2RlLCBvcHRpb25zKSB7XG4gIHJldHVybiBkcmF3KG5vZGUsIG9wdGlvbnMgfHwge30pLnRoZW4oY2FudmFzID0+IGNhbnZhcy50b0RhdGFVUkwoKSk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtOb2RlfSBub2RlIC0gVGhlIERPTSBOb2RlIG9iamVjdCB0byByZW5kZXJcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gUmVuZGVyaW5nIG9wdGlvbnNcbiAqIEByZXR1cm4ge1Byb21pc2V9IC0gQSBwcm9taXNlIHRoYXQgaXMgZnVsZmlsbGVkIHdpdGggYSBKUEVHIGltYWdlIGRhdGEgVVJMXG4gKiAqL1xuZnVuY3Rpb24gdG9KcGVnKG5vZGUsIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIHJldHVybiBkcmF3KG5vZGUsIG9wdGlvbnMpLnRoZW4oY2FudmFzID0+IGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL2pwZWcnLCBvcHRpb25zLnF1YWxpdHkgfHwgMS4wKSk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtOb2RlfSBub2RlIC0gVGhlIERPTSBOb2RlIG9iamVjdCB0byByZW5kZXJcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gUmVuZGVyaW5nIG9wdGlvbnNcbiAqIEByZXR1cm4ge1Byb21pc2V9IC0gQSBwcm9taXNlIHRoYXQgaXMgZnVsZmlsbGVkIHdpdGggYSBQTkcgaW1hZ2UgYmxvYlxuICogKi9cbmZ1bmN0aW9uIHRvQmxvYihub2RlLCBvcHRpb25zKSB7XG4gIHJldHVybiBkcmF3KG5vZGUsIG9wdGlvbnMgfHwge30pLnRoZW4oY2FudmFzVG9CbG9iKTtcbn1cblxuZnVuY3Rpb24gY29weU9wdGlvbnMob3B0aW9ucykge1xuICAvLyBDb3B5IG9wdGlvbnMgdG8gaW1wbCBvcHRpb25zIGZvciB1c2UgaW4gaW1wbFxuICBpZiAodHlwZW9mIG9wdGlvbnMuaW1hZ2VQbGFjZWhvbGRlciA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBkb210b2ltYWdlLmltcGwub3B0aW9ucy5pbWFnZVBsYWNlaG9sZGVyID0gZGVmYXVsdE9wdGlvbnMuaW1hZ2VQbGFjZWhvbGRlcjtcbiAgfSBlbHNlIHtcbiAgICBkb210b2ltYWdlLmltcGwub3B0aW9ucy5pbWFnZVBsYWNlaG9sZGVyID0gb3B0aW9ucy5pbWFnZVBsYWNlaG9sZGVyO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBvcHRpb25zLmNhY2hlQnVzdCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBkb210b2ltYWdlLmltcGwub3B0aW9ucy5jYWNoZUJ1c3QgPSBkZWZhdWx0T3B0aW9ucy5jYWNoZUJ1c3Q7XG4gIH0gZWxzZSB7XG4gICAgZG9tdG9pbWFnZS5pbXBsLm9wdGlvbnMuY2FjaGVCdXN0ID0gb3B0aW9ucy5jYWNoZUJ1c3Q7XG4gIH1cbn1cblxuZnVuY3Rpb24gZHJhdyhkb21Ob2RlLCBvcHRpb25zKSB7XG4gIHJldHVybiB0b1N2Zyhkb21Ob2RlLCBvcHRpb25zKVxuICAgIC50aGVuKG1ha2VJbWFnZSlcbiAgICAudGhlbihkZWxheSgxMDApKVxuICAgIC50aGVuKGltYWdlID0+IHtcbiAgICAgIGNvbnN0IGNhbnZhcyA9IG5ld0NhbnZhcyhkb21Ob2RlKTtcbiAgICAgIGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpLmRyYXdJbWFnZShpbWFnZSwgMCwgMCk7XG4gICAgICByZXR1cm4gY2FudmFzO1xuICAgIH0pO1xuXG4gIGZ1bmN0aW9uIG5ld0NhbnZhcyhkTm9kZSkge1xuICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgIGNhbnZhcy53aWR0aCA9IG9wdGlvbnMud2lkdGggfHwgZ2V0V2lkdGgoZE5vZGUpO1xuICAgIGNhbnZhcy5oZWlnaHQgPSBvcHRpb25zLmhlaWdodCB8fCBnZXRIZWlnaHQoZE5vZGUpO1xuXG4gICAgaWYgKG9wdGlvbnMuYmdjb2xvcikge1xuICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgICBjdHguZmlsbFN0eWxlID0gb3B0aW9ucy5iZ2NvbG9yO1xuICAgICAgY3R4LmZpbGxSZWN0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNhbnZhcztcbiAgfVxufVxuXG5mdW5jdGlvbiBjbG9uZU5vZGUobm9kZSwgZmlsdGVyLCByb290KSB7XG4gIGlmICghcm9vdCAmJiBmaWx0ZXIgJiYgIWZpbHRlcihub2RlKSkge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUobm9kZSlcbiAgICAudGhlbihtYWtlTm9kZUNvcHkpXG4gICAgLnRoZW4oY2xvbmUgPT4gY2xvbmVDaGlsZHJlbihub2RlLCBjbG9uZSwgZmlsdGVyKSlcbiAgICAudGhlbihjbG9uZSA9PiBwcm9jZXNzQ2xvbmUobm9kZSwgY2xvbmUpKTtcblxuICBmdW5jdGlvbiBtYWtlTm9kZUNvcHkobmQpIHtcbiAgICBpZiAobmQgaW5zdGFuY2VvZiBXaW5kb3cuSFRNTENhbnZhc0VsZW1lbnQpIHtcbiAgICAgIHJldHVybiBtYWtlSW1hZ2UobmQudG9EYXRhVVJMKCkpO1xuICAgIH1cbiAgICByZXR1cm4gbmQuY2xvbmVOb2RlKGZhbHNlKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNsb25lQ2hpbGRyZW5Jbk9yZGVyKHBhcmVudCwgYXJyQ2hpbGRyZW4sIGZsdCkge1xuICAgIGxldCBkb25lID0gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgYXJyQ2hpbGRyZW4uZm9yRWFjaChjaGlsZCA9PiB7XG4gICAgICBkb25lID0gZG9uZVxuICAgICAgICAudGhlbigoKSA9PiBjbG9uZU5vZGUoY2hpbGQsIGZsdCwgbnVsbCkpXG4gICAgICAgIC50aGVuKGNoaWxkQ2xvbmUgPT4ge1xuICAgICAgICAgIGlmIChjaGlsZENsb25lKSB7XG4gICAgICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoY2hpbGRDbG9uZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbiAgICByZXR1cm4gZG9uZTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNsb25lQ2hpbGRyZW4ob3JpZ2luYWwsIGNsb25lLCBmbHQpIHtcbiAgICBjb25zdCBjaGlsZHJlbiA9IG9yaWdpbmFsLmNoaWxkTm9kZXM7XG4gICAgaWYgKGNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShjbG9uZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNsb25lQ2hpbGRyZW5Jbk9yZGVyKGNsb25lLCBhc0FycmF5KGNoaWxkcmVuKSwgZmx0KS50aGVuKCgpID0+IGNsb25lKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBlbWJlZEZvbnRzKG5vZGUpIHtcbiAgcmV0dXJuIGZvbnRGYWNlcy5yZXNvbHZlQWxsKCkudGhlbihjc3NUZXh0ID0+IHtcbiAgICBjb25zdCBzdHlsZU5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuICAgIG5vZGUuYXBwZW5kQ2hpbGQoc3R5bGVOb2RlKTtcbiAgICBzdHlsZU5vZGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzVGV4dCkpO1xuICAgIHJldHVybiBub2RlO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gaW5saW5lSW1hZ2VzKG5vZGUpIHtcbiAgcmV0dXJuIGltYWdlcy5pbmxpbmVBbGwobm9kZSkudGhlbigoKSA9PiBub2RlKTtcbn1cblxuZnVuY3Rpb24gbWFrZVN2Z0RhdGFVcmkobm9kZSwgd2lkdGgsIGhlaWdodCwgZXNjYXBlWGh0bWxGb3JXZWJwYWNrID0gdHJ1ZSkge1xuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5vZGUpLnRoZW4obmQgPT4ge1xuICAgIG5kLnNldEF0dHJpYnV0ZSgneG1sbnMnLCAnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcpO1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRTdHJpbmcgPSBuZXcgV2luZG93LlhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyhuZCk7XG5cbiAgICBjb25zdCB4aHRtbCA9IGVzY2FwZVhodG1sRm9yV2VicGFjayA/IGVzY2FwZVhodG1sKHNlcmlhbGl6ZWRTdHJpbmcpIDogc2VyaWFsaXplZFN0cmluZztcbiAgICBjb25zdCBmb3JlaWduT2JqZWN0ID0gYDxmb3JlaWduT2JqZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCI+JHt4aHRtbH08L2ZvcmVpZ25PYmplY3Q+YDtcbiAgICBjb25zdCBzdmdTdHIgPSBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIke3dpZHRofVwiIGhlaWdodD1cIiR7aGVpZ2h0fVwiPiR7Zm9yZWlnbk9iamVjdH08L3N2Zz5gO1xuXG4gICAgLy8gT3B0aW1pemluZyBTVkdzIGluIGRhdGEgVVJJc1xuICAgIC8vIHNlZSBodHRwczovL2NvZGVwZW4uaW8vdGlndC9wb3N0L29wdGltaXppbmctc3Zncy1pbi1kYXRhLXVyaXNcbiAgICAvLyB0aGUgYmVzdCB3YXkgb2YgZW5jb2RpbmcgU1ZHIGluIGEgZGF0YTogVVJJIGlzIGRhdGE6aW1hZ2Uvc3ZnK3htbCxbYWN0dWFsIGRhdGFdLlxuICAgIC8vIFdlIGRvbuKAmXQgbmVlZCB0aGUgO2NoYXJzZXQ9dXRmLTggcGFyYW1ldGVyIGJlY2F1c2UgdGhlIGdpdmVuIFNWRyBpcyBBU0NJSS5cbiAgICByZXR1cm4gc3ZnVG9NaW5pRGF0YVVSSShzdmdTdHIpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gbmV3SW5saW5lcigpIHtcbiAgY29uc3QgVVJMX1JFR0VYID0gL3VybFxcKFsnXCJdPyhbXidcIl0rPylbJ1wiXT9cXCkvZztcblxuICByZXR1cm4ge1xuICAgIGlubGluZUFsbCxcbiAgICBzaG91bGRQcm9jZXNzLFxuICAgIGltcGw6IHtcbiAgICAgIHJlYWRVcmxzLFxuICAgICAgaW5saW5lXG4gICAgfVxuICB9O1xuXG4gIGZ1bmN0aW9uIHNob3VsZFByb2Nlc3Moc3RyaW5nKSB7XG4gICAgcmV0dXJuIHN0cmluZy5zZWFyY2goVVJMX1JFR0VYKSAhPT0gLTE7XG4gIH1cblxuICBmdW5jdGlvbiByZWFkVXJscyhzdHJpbmcpIHtcbiAgICBjb25zdCByZXN1bHQ6IHN0cmluZ1tdID0gW107XG4gICAgbGV0IG1hdGNoOiBudWxsIHwgUmVnRXhwRXhlY0FycmF5O1xuICAgIHdoaWxlICgobWF0Y2ggPSBVUkxfUkVHRVguZXhlYyhzdHJpbmcpKSAhPT0gbnVsbCkge1xuICAgICAgcmVzdWx0LnB1c2gobWF0Y2hbMV0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0LmZpbHRlcih1cmwgPT4ge1xuICAgICAgcmV0dXJuICFpc0RhdGFVcmwodXJsKTtcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHVybEFzUmVnZXgodXJsMCkge1xuICAgIHJldHVybiBuZXcgUmVnRXhwKGAodXJsXFxcXChbJ1wiXT8pKCR7ZXNjYXBlKHVybDApfSkoWydcIl0/XFxcXCkpYCwgJ2cnKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGlubGluZShzdHJpbmcsIHVybCwgYmFzZVVybCwgZ2V0KSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh1cmwpXG4gICAgICAudGhlbih1bCA9PiAoYmFzZVVybCA/IHJlc29sdmVVcmwodWwsIGJhc2VVcmwpIDogdWwpKVxuICAgICAgLnRoZW4odWwgPT4gKHR5cGVvZiBnZXQgPT09ICdmdW5jdGlvbicgPyBnZXQodWwpIDogZ2V0QW5kRW5jb2RlKHVsLCBkb210b2ltYWdlLmltcGwub3B0aW9ucykpKVxuICAgICAgLnRoZW4oZGF0YSA9PiBkYXRhQXNVcmwoZGF0YSwgbWltZVR5cGUodXJsKSkpXG4gICAgICAudGhlbihkYXRhVXJsID0+IHN0cmluZy5yZXBsYWNlKHVybEFzUmVnZXgodXJsKSwgYCQxJHtkYXRhVXJsfSQzYCkpO1xuICB9XG5cbiAgZnVuY3Rpb24gaW5saW5lQWxsKHN0cmluZywgYmFzZVVybCwgZ2V0KSB7XG4gICAgaWYgKCFzaG91bGRQcm9jZXNzKHN0cmluZykgfHwgaXNTcmNBc0RhdGFVcmwoc3RyaW5nKSkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShzdHJpbmcpO1xuICAgIH1cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHN0cmluZylcbiAgICAgIC50aGVuKHJlYWRVcmxzKVxuICAgICAgLnRoZW4odXJscyA9PiB7XG4gICAgICAgIGxldCBkb25lID0gUHJvbWlzZS5yZXNvbHZlKHN0cmluZyk7XG4gICAgICAgIHVybHMuZm9yRWFjaCh1cmwgPT4ge1xuICAgICAgICAgIGRvbmUgPSBkb25lLnRoZW4oc3RyID0+IGlubGluZShzdHIsIHVybCwgYmFzZVVybCwgZ2V0KSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZG9uZTtcbiAgICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIG5ld0ZvbnRGYWNlcygpIHtcbiAgcmV0dXJuIHtcbiAgICByZXNvbHZlQWxsLFxuICAgIGltcGw6IHtyZWFkQWxsfVxuICB9O1xuXG4gIGZ1bmN0aW9uIHJlc29sdmVBbGwoKSB7XG4gICAgcmV0dXJuIHJlYWRBbGwoKVxuICAgICAgLnRoZW4od2ViRm9udHMgPT4ge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwod2ViRm9udHMubWFwKHdlYkZvbnQgPT4gd2ViRm9udC5yZXNvbHZlKCkpKTtcbiAgICAgIH0pXG4gICAgICAudGhlbihjc3NTdHJpbmdzID0+IGNzc1N0cmluZ3Muam9pbignXFxuJykpO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVhZEFsbCgpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGFzQXJyYXkoZG9jdW1lbnQuc3R5bGVTaGVldHMpKVxuICAgICAgLnRoZW4obG9hZEV4dGVybmFsU3R5bGVTaGVldHMpXG4gICAgICAudGhlbihnZXRDc3NSdWxlcylcbiAgICAgIC50aGVuKHNlbGVjdFdlYkZvbnRSdWxlcylcbiAgICAgIC50aGVuKHJ1bGVzID0+IHJ1bGVzLm1hcChuZXdXZWJGb250KSk7XG5cbiAgICBmdW5jdGlvbiBzZWxlY3RXZWJGb250UnVsZXMoY3NzUnVsZXMpIHtcbiAgICAgIHJldHVybiBjc3NSdWxlc1xuICAgICAgICAuZmlsdGVyKHJ1bGUgPT4gcnVsZS50eXBlID09PSBXaW5kb3cuQ1NTUnVsZS5GT05UX0ZBQ0VfUlVMRSlcbiAgICAgICAgLmZpbHRlcihydWxlID0+IGlubGluZXIuc2hvdWxkUHJvY2VzcyhydWxlLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3NyYycpKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbG9hZEV4dGVybmFsU3R5bGVTaGVldHMoc3R5bGVTaGVldHMpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLmFsbChcbiAgICAgICAgc3R5bGVTaGVldHMubWFwKHNoZWV0ID0+IHtcbiAgICAgICAgICBpZiAoc2hlZXQuaHJlZikge1xuICAgICAgICAgICAgLy8gY2xvdWRmb250IGRvZXNuJ3QgaGF2ZSBhbGxvdyBvcmlnaW4gaGVhZGVyIHByb3Blcmx5IHNldFxuICAgICAgICAgICAgLy8gZXJyb3IgcmVzcG9uc2Ugd2lsbCByZW1haW4gaW4gY2FjaGVcbiAgICAgICAgICAgIGNvbnN0IGNhY2hlID0gc2hlZXQuaHJlZi5pbmNsdWRlcygndWJlci1mb250cycpID8gJ25vLWNhY2hlJyA6ICdkZWZhdWx0JztcbiAgICAgICAgICAgIHJldHVybiBXaW5kb3cuZmV0Y2goc2hlZXQuaHJlZiwge2NyZWRlbnRpYWxzOiAnb21pdCcsIGNhY2hlfSlcbiAgICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UudGV4dCgpKVxuICAgICAgICAgICAgICAudGhlbih0ZXh0ID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBzZXRTdHlsZVNoZWV0QmFzZUhyZWYodGV4dCwgc2hlZXQuaHJlZik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRvU3R5bGVTaGVldChyZXN1bHQpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgICAgICAvLyBIYW5kbGUgYW55IGVycm9yIHRoYXQgb2NjdXJyZWQgaW4gYW55IG9mIHRoZSBwcmV2aW91c1xuICAgICAgICAgICAgICAgIC8vIHByb21pc2VzIGluIHRoZSBjaGFpbi4gc3R5bGVzaGVldCBmYWlsZWQgdG8gbG9hZCBzaG91bGQgbm90IHN0b3BcbiAgICAgICAgICAgICAgICAvLyB0aGUgcHJvY2VzcywgaGVuY2UgcmVzdWx0IGluIG9ubHkgYSB3YXJuaW5nLCBpbnN0ZWFkIG9mIHJlamVjdFxuICAgICAgICAgICAgICAgIENvbnNvbGUud2FybihJTUFHRV9FWFBPUlRfRVJST1JTLnN0eWxlU2hlZXQsIHNoZWV0LmhyZWYpO1xuICAgICAgICAgICAgICAgIENvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShzaGVldCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldENzc1J1bGVzKHN0eWxlU2hlZXRzKSB7XG4gICAgICBjb25zdCBjc3NSdWxlczogYW55W10gPSBbXTtcbiAgICAgIHN0eWxlU2hlZXRzLmZvckVhY2goc2hlZXQgPT4ge1xuICAgICAgICAvLyB0cnkuLi5jYXRjaCBiZWNhdXNlIGJyb3dzZXIgbWF5IG5vdCBhYmxlIHRvIGVudW1lcmF0ZSBydWxlcyBmb3IgY3Jvc3MtZG9tYWluIHNoZWV0c1xuICAgICAgICBpZiAoIXNoZWV0KSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxldCBydWxlcztcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBydWxlcyA9IHNoZWV0LnJ1bGVzIHx8IHNoZWV0LmNzc1J1bGVzO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgQ29uc29sZS5sb2coYCdDYW4ndCByZWFkIHRoZSBjc3MgcnVsZXMgb2Y6ICR7c2hlZXQuaHJlZn1gLCBlKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocnVsZXMgJiYgdHlwZW9mIHJ1bGVzID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhc0FycmF5KHJ1bGVzIHx8IFtdKS5mb3JFYWNoKGNzc1J1bGVzLnB1c2guYmluZChjc3NSdWxlcykpO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIENvbnNvbGUubG9nKGBFcnJvciB3aGlsZSByZWFkaW5nIENTUyBydWxlcyBmcm9tICR7c2hlZXQuaHJlZn1gLCBlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgQ29uc29sZS5sb2coJ2dldENzc1J1bGVzIGNhbiBub3QgZmluZCBjc3NSdWxlcycpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBjc3NSdWxlcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBuZXdXZWJGb250KHdlYkZvbnRSdWxlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZXNvbHZlOiAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgYmFzZVVybCA9ICh3ZWJGb250UnVsZS5wYXJlbnRTdHlsZVNoZWV0IHx8IHt9KS5ocmVmO1xuICAgICAgICAgIHJldHVybiBpbmxpbmVyLmlubGluZUFsbCh3ZWJGb250UnVsZS5jc3NUZXh0LCBiYXNlVXJsLCBudWxsKTtcbiAgICAgICAgfSxcbiAgICAgICAgc3JjOiAoKSA9PiB3ZWJGb250UnVsZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdzcmMnKVxuICAgICAgfTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gbmV3SW1hZ2VzKCkge1xuICByZXR1cm4ge1xuICAgIGlubGluZUFsbCxcbiAgICBpbXBsOiB7XG4gICAgICBuZXdJbWFnZVxuICAgIH1cbiAgfTtcblxuICBmdW5jdGlvbiBuZXdJbWFnZShlbGVtZW50KSB7XG4gICAgZnVuY3Rpb24gaW5saW5lKGdldCkge1xuICAgICAgaWYgKGlzRGF0YVVybChlbGVtZW50LnNyYykpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShlbGVtZW50LnNyYylcbiAgICAgICAgLnRoZW4odWwgPT5cbiAgICAgICAgICB0eXBlb2YgZ2V0ID09PSAnZnVuY3Rpb24nID8gZ2V0KHVsKSA6IGdldEFuZEVuY29kZSh1bCwgZG9tdG9pbWFnZS5pbXBsLm9wdGlvbnMpXG4gICAgICAgIClcbiAgICAgICAgLnRoZW4oZGF0YSA9PiBkYXRhQXNVcmwoZGF0YSwgbWltZVR5cGUoZWxlbWVudC5zcmMpKSlcbiAgICAgICAgLnRoZW4oXG4gICAgICAgICAgZGF0YVVybCA9PlxuICAgICAgICAgICAgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgICBlbGVtZW50Lm9ubG9hZCA9IHJlc29sdmU7XG4gICAgICAgICAgICAgIGVsZW1lbnQub25lcnJvciA9IHJlamVjdDtcbiAgICAgICAgICAgICAgZWxlbWVudC5zcmMgPSBkYXRhVXJsO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgaW5saW5lXG4gICAgfTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGlubGluZUFsbChub2RlKSB7XG4gICAgaWYgKCEobm9kZSBpbnN0YW5jZW9mIEVsZW1lbnQpKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5vZGUpO1xuICAgIH1cblxuICAgIHJldHVybiBpbmxpbmVCYWNrZ3JvdW5kKG5vZGUpLnRoZW4oKCkgPT4ge1xuICAgICAgaWYgKG5vZGUgaW5zdGFuY2VvZiBIVE1MSW1hZ2VFbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBuZXdJbWFnZShub2RlKS5pbmxpbmUobnVsbCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gUHJvbWlzZS5hbGwoYXNBcnJheShub2RlLmNoaWxkTm9kZXMpLm1hcChjaGlsZCA9PiBpbmxpbmVBbGwoY2hpbGQpKSk7XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBpbmxpbmVCYWNrZ3JvdW5kKG5kKSB7XG4gICAgICBjb25zdCBiYWNrZ3JvdW5kID0gbmQuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnYmFja2dyb3VuZCcpO1xuXG4gICAgICBpZiAoIWJhY2tncm91bmQpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShuZCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBpbmxpbmVyXG4gICAgICAgIC5pbmxpbmVBbGwoYmFja2dyb3VuZCwgbnVsbCwgbnVsbClcbiAgICAgICAgLnRoZW4oaW5saW5lZCA9PiB7XG4gICAgICAgICAgbmQuc3R5bGUuc2V0UHJvcGVydHkoJ2JhY2tncm91bmQnLCBpbmxpbmVkLCBuZC5zdHlsZS5nZXRQcm9wZXJ0eVByaW9yaXR5KCdiYWNrZ3JvdW5kJykpO1xuICAgICAgICB9KVxuICAgICAgICAudGhlbigoKSA9PiBuZCk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGRvbXRvaW1hZ2U7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBUUEsSUFBQUEsT0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsU0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsUUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsZUFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksVUFBQSxHQUFBSixPQUFBO0FBRUEsSUFBQUssU0FBQSxHQUFBTCxP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
|
|
433
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd2luZG93IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZG9jdW1lbnQiLCJfY29uc29sZSIsIl9jb25zdGFudHMiLCJfZG9tVXRpbHMiLCJpbmxpbmVyIiwibmV3SW5saW5lciIsImZvbnRGYWNlcyIsIm5ld0ZvbnRGYWNlcyIsImltYWdlcyIsIm5ld0ltYWdlcyIsImRlZmF1bHRPcHRpb25zIiwiaW1hZ2VQbGFjZWhvbGRlciIsInVuZGVmaW5lZCIsImNhY2hlQnVzdCIsImRvbXRvaW1hZ2UiLCJ0b1N2ZyIsInRvUG5nIiwidG9KcGVnIiwidG9CbG9iIiwidG9QaXhlbERhdGEiLCJpbXBsIiwib3B0aW9ucyIsIm5vZGUiLCJjb3B5T3B0aW9ucyIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsIm5kIiwiY2xvbmVOb2RlIiwiZmlsdGVyIiwiZW1iZWRGb250cyIsImlubGluZUltYWdlcyIsImFwcGx5T3B0aW9ucyIsImNsb25lIiwibWFrZVN2Z0RhdGFVcmkiLCJ3aWR0aCIsImdldFdpZHRoIiwiaGVpZ2h0IiwiZ2V0SGVpZ2h0IiwiZXNjYXBlWGh0bWxGb3JXZWJwYWNrIiwiYmdjb2xvciIsInN0eWxlIiwiYmFja2dyb3VuZENvbG9yIiwiY29uY2F0IiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJwcm9wZXJ0eSIsImRyYXciLCJjYW52YXMiLCJnZXRDb250ZXh0IiwiZ2V0SW1hZ2VEYXRhIiwiZGF0YSIsInRvRGF0YVVSTCIsInF1YWxpdHkiLCJjYW52YXNUb0Jsb2IiLCJkb21Ob2RlIiwibWFrZUltYWdlIiwiZGVsYXkiLCJpbWFnZSIsIm5ld0NhbnZhcyIsImRyYXdJbWFnZSIsImROb2RlIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50IiwiY3R4IiwiZmlsbFN0eWxlIiwiZmlsbFJlY3QiLCJyb290IiwibWFrZU5vZGVDb3B5IiwiY2xvbmVDaGlsZHJlbiIsInByb2Nlc3NDbG9uZSIsIldpbmRvdyIsIkhUTUxDYW52YXNFbGVtZW50IiwiY2xvbmVDaGlsZHJlbkluT3JkZXIiLCJwYXJlbnQiLCJhcnJDaGlsZHJlbiIsImZsdCIsImRvbmUiLCJjaGlsZCIsImNoaWxkQ2xvbmUiLCJhcHBlbmRDaGlsZCIsIm9yaWdpbmFsIiwiY2hpbGRyZW4iLCJjaGlsZE5vZGVzIiwibGVuZ3RoIiwiYXNBcnJheSIsInJlc29sdmVBbGwiLCJjc3NUZXh0Iiwic3R5bGVOb2RlIiwiY3JlYXRlVGV4dE5vZGUiLCJpbmxpbmVBbGwiLCJhcmd1bWVudHMiLCJzZXRBdHRyaWJ1dGUiLCJzZXJpYWxpemVkU3RyaW5nIiwiWE1MU2VyaWFsaXplciIsInNlcmlhbGl6ZVRvU3RyaW5nIiwieGh0bWwiLCJlc2NhcGVYaHRtbCIsImZvcmVpZ25PYmplY3QiLCJzdmdTdHIiLCJiYXNlNjRTdmciLCJCdWZmZXIiLCJmcm9tIiwidG9TdHJpbmciLCJUZXh0RW5jb2RlciIsImJ5dGVzIiwiZW5jb2RlIiwiQ0hVTktfU0laRSIsImJpbmFyeSIsImkiLCJTdHJpbmciLCJmcm9tQ2hhckNvZGUiLCJhcHBseSIsIkFycmF5Iiwic2xpY2UiLCJidG9hIiwiRXJyb3IiLCJVUkxfUkVHRVgiLCJzaG91bGRQcm9jZXNzIiwicmVhZFVybHMiLCJpbmxpbmUiLCJzdHJpbmciLCJzZWFyY2giLCJyZXN1bHQiLCJtYXRjaCIsImV4ZWMiLCJwdXNoIiwidXJsIiwiaXNEYXRhVXJsIiwidXJsQXNSZWdleCIsInVybDAiLCJSZWdFeHAiLCJlc2NhcGUiLCJiYXNlVXJsIiwiZ2V0IiwidWwiLCJyZXNvbHZlVXJsIiwiZ2V0QW5kRW5jb2RlIiwiZGF0YUFzVXJsIiwibWltZVR5cGUiLCJkYXRhVXJsIiwicmVwbGFjZSIsImlzU3JjQXNEYXRhVXJsIiwidXJscyIsInN0ciIsInJlYWRBbGwiLCJ3ZWJGb250cyIsImFsbCIsIm1hcCIsIndlYkZvbnQiLCJjc3NTdHJpbmdzIiwiam9pbiIsInN0eWxlU2hlZXRzIiwibG9hZEV4dGVybmFsU3R5bGVTaGVldHMiLCJnZXRDc3NSdWxlcyIsInNlbGVjdFdlYkZvbnRSdWxlcyIsInJ1bGVzIiwibmV3V2ViRm9udCIsImNzc1J1bGVzIiwicnVsZSIsInR5cGUiLCJDU1NSdWxlIiwiRk9OVF9GQUNFX1JVTEUiLCJnZXRQcm9wZXJ0eVZhbHVlIiwic2hlZXQiLCJocmVmIiwiY2FjaGUiLCJpbmNsdWRlcyIsImZldGNoIiwiY3JlZGVudGlhbHMiLCJyZXNwb25zZSIsInRleHQiLCJzZXRTdHlsZVNoZWV0QmFzZUhyZWYiLCJ0b1N0eWxlU2hlZXQiLCJlcnIiLCJDb25zb2xlIiwid2FybiIsIklNQUdFX0VYUE9SVF9FUlJPUlMiLCJzdHlsZVNoZWV0IiwibG9nIiwiZSIsIl90eXBlb2YyIiwiYmluZCIsIndlYkZvbnRSdWxlIiwicGFyZW50U3R5bGVTaGVldCIsInNyYyIsIm5ld0ltYWdlIiwiZWxlbWVudCIsInJlamVjdCIsIm9ubG9hZCIsIm9uZXJyb3IiLCJFbGVtZW50IiwiaW5saW5lQmFja2dyb3VuZCIsIkhUTUxJbWFnZUVsZW1lbnQiLCJiYWNrZ3JvdW5kIiwiaW5saW5lZCIsInNldFByb3BlcnR5IiwiZ2V0UHJvcGVydHlQcmlvcml0eSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9kb20tdG8taW1hZ2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuLyoqXG4gKiBUaGlzIGZpbGUgaXMgY29waWVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3RzYXllbi9kb20tdG8taW1hZ2VcbiAqIE1vZGlmaWVkIGJ5IGhlc2hhbjAxMzEgdG8gYWxsb3cgbG9hZGluZyBleHRlcm5hbCBzdHlsZXNoZWV0cyBhbmQgaW5saW5lIHdlYmZvbnRzXG4gKi9cblxuaW1wb3J0IFdpbmRvdyBmcm9tICdnbG9iYWwvd2luZG93JztcbmltcG9ydCBkb2N1bWVudCBmcm9tICdnbG9iYWwvZG9jdW1lbnQnO1xuaW1wb3J0IENvbnNvbGUgZnJvbSAnZ2xvYmFsL2NvbnNvbGUnO1xuaW1wb3J0IHtJTUFHRV9FWFBPUlRfRVJST1JTfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5cbmltcG9ydCB7XG4gIGNhbnZhc1RvQmxvYixcbiAgZXNjYXBlLFxuICBlc2NhcGVYaHRtbCxcbiAgZGVsYXksXG4gIHByb2Nlc3NDbG9uZSxcbiAgYXNBcnJheSxcbiAgbWFrZUltYWdlLFxuICBtaW1lVHlwZSxcbiAgZGF0YUFzVXJsLFxuICBpc0RhdGFVcmwsXG4gIGlzU3JjQXNEYXRhVXJsLFxuICByZXNvbHZlVXJsLFxuICBnZXRXaWR0aCxcbiAgZ2V0SGVpZ2h0LFxuICBnZXRBbmRFbmNvZGUsXG4gIHNldFN0eWxlU2hlZXRCYXNlSHJlZixcbiAgdG9TdHlsZVNoZWV0XG59IGZyb20gJy4vZG9tLXV0aWxzJztcblxuY29uc3QgaW5saW5lciA9IG5ld0lubGluZXIoKTtcbmNvbnN0IGZvbnRGYWNlcyA9IG5ld0ZvbnRGYWNlcygpO1xuY29uc3QgaW1hZ2VzID0gbmV3SW1hZ2VzKCk7XG4vLyBEZWZhdWx0IGltcGwgb3B0aW9uc1xuY29uc3QgZGVmYXVsdE9wdGlvbnMgPSB7XG4gIC8vIERlZmF1bHQgaXMgdG8gZmFpbCBvbiBlcnJvciwgbm8gcGxhY2Vob2xkZXJcbiAgaW1hZ2VQbGFjZWhvbGRlcjogdW5kZWZpbmVkLFxuICAvLyBEZWZhdWx0IGNhY2hlIGJ1c3QgaXMgZmFsc2UsIGl0IHdpbGwgdXNlIHRoZSBjYWNoZVxuICBjYWNoZUJ1c3Q6IGZhbHNlXG59O1xuXG5jb25zdCBkb210b2ltYWdlID0ge1xuICB0b1N2ZyxcbiAgdG9QbmcsXG4gIHRvSnBlZyxcbiAgdG9CbG9iLFxuICB0b1BpeGVsRGF0YSxcbiAgaW1wbDoge1xuICAgIGZvbnRGYWNlcyxcbiAgICBpbWFnZXMsXG4gICAgaW5saW5lcixcbiAgICBvcHRpb25zOiB7fSBhcyBhbnlcbiAgfVxufTtcblxuLyoqXG4gKiBAcGFyYW0ge05vZGV9IG5vZGUgLSBUaGUgRE9NIE5vZGUgb2JqZWN0IHRvIHJlbmRlclxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBSZW5kZXJpbmcgb3B0aW9uc1xuICogQHBhcmFtIHtGdW5jdGlvbn0gW29wdGlvbnMuZmlsdGVyXSAtIFNob3VsZCByZXR1cm4gdHJ1ZSBpZiBwYXNzZWQgbm9kZSBzaG91bGQgYmUgaW5jbHVkZWQgaW4gdGhlIG91dHB1dFxuICogICAgICAgICAgKGV4Y2x1ZGluZyBub2RlIG1lYW5zIGV4Y2x1ZGluZyBpdCdzIGNoaWxkcmVuIGFzIHdlbGwpLiBOb3QgY2FsbGVkIG9uIHRoZSByb290IG5vZGUuXG4gKiBAcGFyYW0ge1N0cmluZ30gW29wdGlvbnMuYmdjb2xvcl0gLSBjb2xvciBmb3IgdGhlIGJhY2tncm91bmQsIGFueSB2YWxpZCBDU1MgY29sb3IgdmFsdWUuXG4gKiBAcGFyYW0ge051bWJlcn0gW29wdGlvbnMud2lkdGhdIC0gd2lkdGggdG8gYmUgYXBwbGllZCB0byBub2RlIGJlZm9yZSByZW5kZXJpbmcuXG4gKiBAcGFyYW0ge051bWJlcn0gW29wdGlvbnMuaGVpZ2h0XSAtIGhlaWdodCB0byBiZSBhcHBsaWVkIHRvIG5vZGUgYmVmb3JlIHJlbmRlcmluZy5cbiAqIEBwYXJhbSB7T2JqZWN0fSBbb3B0aW9ucy5zdHlsZV0gLSBhbiBvYmplY3Qgd2hvc2UgcHJvcGVydGllcyB0byBiZSBjb3BpZWQgdG8gbm9kZSdzIHN0eWxlIGJlZm9yZSByZW5kZXJpbmcuXG4gKiBAcGFyYW0ge051bWJlcn0gW29wdGlvbnMucXVhbGl0eV0gLSBhIE51bWJlciBiZXR3ZWVuIDAgYW5kIDEgaW5kaWNhdGluZyBpbWFnZSBxdWFsaXR5IChhcHBsaWNhYmxlIHRvIEpQRUcgb25seSksIGRlZmF1bHRzIHRvIDEuMC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuZXNjYXBlWGh0bWxGb3JXZWJwYWNrXSAtIHdoZXRoZXIgdG8gYXBwbHkgZml4IGZvciB1Z2xpZnkgZXJyb3IgaW4gZG9tLXRvLWltYWdlIChzaG91bGQgYmUgdHJ1ZSBmb3Igd2VicGFjayBidWlsZHMpLCBkZWZhdWx0cyB0byB0cnVlLlxuICogQHBhcmFtIHtTdHJpbmd9IFtvcHRpb25zLmltYWdlUGxhY2Vob2xkZXJdIC0gZGF0YVVSTCB0byB1c2UgYXMgYSBwbGFjZWhvbGRlciBmb3IgZmFpbGVkIGltYWdlcywgZGVmYXVsdCBiZWhhdmlvdXIgaXMgdG8gZmFpbCBmYXN0IG9uIGltYWdlcyB3ZSBjYW4ndCBmZXRjaFxuICogQHBhcmFtIHtCb29sZWFufSBbb3B0aW9ucy5jYWNoZUJ1c3RdIC0gc2V0IHRvIHRydWUgdG8gY2FjaGUgYnVzdCBieSBhcHBlbmRpbmcgdGhlIHRpbWUgdG8gdGhlIHJlcXVlc3QgdXJsXG4gKiBAcmV0dXJuIHtQcm9taXNlfSAtIEEgcHJvbWlzZSB0aGF0IGlzIGZ1bGZpbGxlZCB3aXRoIGEgU1ZHIGltYWdlIGRhdGEgVVJMXG4gKiAqL1xuZnVuY3Rpb24gdG9Tdmcobm9kZSwgb3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgY29weU9wdGlvbnMob3B0aW9ucyk7XG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUobm9kZSlcbiAgICAudGhlbihuZCA9PiBjbG9uZU5vZGUobmQsIG9wdGlvbnMuZmlsdGVyLCB0cnVlKSlcbiAgICAudGhlbihlbWJlZEZvbnRzKVxuICAgIC50aGVuKGlubGluZUltYWdlcylcbiAgICAudGhlbihhcHBseU9wdGlvbnMpXG4gICAgLnRoZW4oY2xvbmUgPT5cbiAgICAgIG1ha2VTdmdEYXRhVXJpKFxuICAgICAgICBjbG9uZSxcbiAgICAgICAgb3B0aW9ucy53aWR0aCB8fCBnZXRXaWR0aChub2RlKSxcbiAgICAgICAgb3B0aW9ucy5oZWlnaHQgfHwgZ2V0SGVpZ2h0KG5vZGUpLFxuICAgICAgICBvcHRpb25zLmVzY2FwZVhodG1sRm9yV2VicGFja1xuICAgICAgKVxuICAgICk7XG5cbiAgZnVuY3Rpb24gYXBwbHlPcHRpb25zKGNsb25lKSB7XG4gICAgaWYgKG9wdGlvbnMuYmdjb2xvcikgY2xvbmUuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gb3B0aW9ucy5iZ2NvbG9yO1xuXG4gICAgaWYgKG9wdGlvbnMud2lkdGgpIGNsb25lLnN0eWxlLndpZHRoID0gYCR7b3B0aW9ucy53aWR0aH1weGA7XG4gICAgaWYgKG9wdGlvbnMuaGVpZ2h0KSBjbG9uZS5zdHlsZS5oZWlnaHQgPSBgJHtvcHRpb25zLmhlaWdodH1weGA7XG5cbiAgICBpZiAob3B0aW9ucy5zdHlsZSlcbiAgICAgIE9iamVjdC5rZXlzKG9wdGlvbnMuc3R5bGUpLmZvckVhY2gocHJvcGVydHkgPT4ge1xuICAgICAgICBjbG9uZS5zdHlsZVtwcm9wZXJ0eV0gPSBvcHRpb25zLnN0eWxlW3Byb3BlcnR5XTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIGNsb25lO1xuICB9XG59XG5cbi8qKlxuICogQHBhcmFtIHtOb2RlfSBub2RlIC0gVGhlIERPTSBOb2RlIG9iamVjdCB0byByZW5kZXJcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIC0gUmVuZGVyaW5nIG9wdGlvbnNcbiAqIEByZXR1cm4ge1Byb21pc2V9IC0gQSBwcm9taXNlIHRoYXQgaXMgZnVsZmlsbGVkIHdpdGggYSBVaW50OEFycmF5IGNvbnRhaW5pbmcgUkdCQSBwaXhlbCBkYXRhLlxuICogKi9cbmZ1bmN0aW9uIHRvUGl4ZWxEYXRhKG5vZGUsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGRyYXcobm9kZSwgb3B0aW9ucyB8fCB7fSkudGhlbihcbiAgICBjYW52YXMgPT4gY2FudmFzLmdldENvbnRleHQoJzJkJykuZ2V0SW1hZ2VEYXRhKDAsIDAsIGdldFdpZHRoKG5vZGUpLCBnZXRIZWlnaHQobm9kZSkpLmRhdGFcbiAgKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge05vZGV9IG5vZGUgLSBUaGUgRE9NIE5vZGUgb2JqZWN0IHRvIHJlbmRlclxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBSZW5kZXJpbmcgb3B0aW9uc1xuICogQHJldHVybiB7UHJvbWlzZX0gLSBBIHByb21pc2UgdGhhdCBpcyBmdWxmaWxsZWQgd2l0aCBhIFBORyBpbWFnZSBkYXRhIFVSTFxuICogKi9cbmZ1bmN0aW9uIHRvUG5nKG5vZGUsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGRyYXcobm9kZSwgb3B0aW9ucyB8fCB7fSkudGhlbihjYW52YXMgPT4gY2FudmFzLnRvRGF0YVVSTCgpKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge05vZGV9IG5vZGUgLSBUaGUgRE9NIE5vZGUgb2JqZWN0IHRvIHJlbmRlclxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBSZW5kZXJpbmcgb3B0aW9uc1xuICogQHJldHVybiB7UHJvbWlzZX0gLSBBIHByb21pc2UgdGhhdCBpcyBmdWxmaWxsZWQgd2l0aCBhIEpQRUcgaW1hZ2UgZGF0YSBVUkxcbiAqICovXG5mdW5jdGlvbiB0b0pwZWcobm9kZSwgb3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgcmV0dXJuIGRyYXcobm9kZSwgb3B0aW9ucykudGhlbihjYW52YXMgPT4gY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvanBlZycsIG9wdGlvbnMucXVhbGl0eSB8fCAxLjApKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge05vZGV9IG5vZGUgLSBUaGUgRE9NIE5vZGUgb2JqZWN0IHRvIHJlbmRlclxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBSZW5kZXJpbmcgb3B0aW9uc1xuICogQHJldHVybiB7UHJvbWlzZX0gLSBBIHByb21pc2UgdGhhdCBpcyBmdWxmaWxsZWQgd2l0aCBhIFBORyBpbWFnZSBibG9iXG4gKiAqL1xuZnVuY3Rpb24gdG9CbG9iKG5vZGUsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGRyYXcobm9kZSwgb3B0aW9ucyB8fCB7fSkudGhlbihjYW52YXNUb0Jsb2IpO1xufVxuXG5mdW5jdGlvbiBjb3B5T3B0aW9ucyhvcHRpb25zKSB7XG4gIC8vIENvcHkgb3B0aW9ucyB0byBpbXBsIG9wdGlvbnMgZm9yIHVzZSBpbiBpbXBsXG4gIGlmICh0eXBlb2Ygb3B0aW9ucy5pbWFnZVBsYWNlaG9sZGVyID09PSAndW5kZWZpbmVkJykge1xuICAgIGRvbXRvaW1hZ2UuaW1wbC5vcHRpb25zLmltYWdlUGxhY2Vob2xkZXIgPSBkZWZhdWx0T3B0aW9ucy5pbWFnZVBsYWNlaG9sZGVyO1xuICB9IGVsc2Uge1xuICAgIGRvbXRvaW1hZ2UuaW1wbC5vcHRpb25zLmltYWdlUGxhY2Vob2xkZXIgPSBvcHRpb25zLmltYWdlUGxhY2Vob2xkZXI7XG4gIH1cblxuICBpZiAodHlwZW9mIG9wdGlvbnMuY2FjaGVCdXN0ID09PSAndW5kZWZpbmVkJykge1xuICAgIGRvbXRvaW1hZ2UuaW1wbC5vcHRpb25zLmNhY2hlQnVzdCA9IGRlZmF1bHRPcHRpb25zLmNhY2hlQnVzdDtcbiAgfSBlbHNlIHtcbiAgICBkb210b2ltYWdlLmltcGwub3B0aW9ucy5jYWNoZUJ1c3QgPSBvcHRpb25zLmNhY2hlQnVzdDtcbiAgfVxufVxuXG5mdW5jdGlvbiBkcmF3KGRvbU5vZGUsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIHRvU3ZnKGRvbU5vZGUsIG9wdGlvbnMpXG4gICAgLnRoZW4obWFrZUltYWdlKVxuICAgIC50aGVuKGRlbGF5KDEwMCkpXG4gICAgLnRoZW4oaW1hZ2UgPT4ge1xuICAgICAgY29uc3QgY2FudmFzID0gbmV3Q2FudmFzKGRvbU5vZGUpO1xuICAgICAgY2FudmFzLmdldENvbnRleHQoJzJkJykuZHJhd0ltYWdlKGltYWdlLCAwLCAwKTtcbiAgICAgIHJldHVybiBjYW52YXM7XG4gICAgfSk7XG5cbiAgZnVuY3Rpb24gbmV3Q2FudmFzKGROb2RlKSB7XG4gICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgY2FudmFzLndpZHRoID0gb3B0aW9ucy53aWR0aCB8fCBnZXRXaWR0aChkTm9kZSk7XG4gICAgY2FudmFzLmhlaWdodCA9IG9wdGlvbnMuaGVpZ2h0IHx8IGdldEhlaWdodChkTm9kZSk7XG5cbiAgICBpZiAob3B0aW9ucy5iZ2NvbG9yKSB7XG4gICAgICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICAgIGN0eC5maWxsU3R5bGUgPSBvcHRpb25zLmJnY29sb3I7XG4gICAgICBjdHguZmlsbFJlY3QoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2FudmFzO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNsb25lTm9kZShub2RlLCBmaWx0ZXIsIHJvb3QpIHtcbiAgaWYgKCFyb290ICYmIGZpbHRlciAmJiAhZmlsdGVyKG5vZGUpKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG5cbiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShub2RlKVxuICAgIC50aGVuKG1ha2VOb2RlQ29weSlcbiAgICAudGhlbihjbG9uZSA9PiBjbG9uZUNoaWxkcmVuKG5vZGUsIGNsb25lLCBmaWx0ZXIpKVxuICAgIC50aGVuKGNsb25lID0+IHByb2Nlc3NDbG9uZShub2RlLCBjbG9uZSkpO1xuXG4gIGZ1bmN0aW9uIG1ha2VOb2RlQ29weShuZCkge1xuICAgIGlmIChuZCBpbnN0YW5jZW9mIFdpbmRvdy5IVE1MQ2FudmFzRWxlbWVudCkge1xuICAgICAgcmV0dXJuIG1ha2VJbWFnZShuZC50b0RhdGFVUkwoKSk7XG4gICAgfVxuICAgIHJldHVybiBuZC5jbG9uZU5vZGUoZmFsc2UpO1xuICB9XG5cbiAgZnVuY3Rpb24gY2xvbmVDaGlsZHJlbkluT3JkZXIocGFyZW50LCBhcnJDaGlsZHJlbiwgZmx0KSB7XG4gICAgbGV0IGRvbmUgPSBQcm9taXNlLnJlc29sdmUoKTtcbiAgICBhcnJDaGlsZHJlbi5mb3JFYWNoKGNoaWxkID0+IHtcbiAgICAgIGRvbmUgPSBkb25lXG4gICAgICAgIC50aGVuKCgpID0+IGNsb25lTm9kZShjaGlsZCwgZmx0LCBudWxsKSlcbiAgICAgICAgLnRoZW4oY2hpbGRDbG9uZSA9PiB7XG4gICAgICAgICAgaWYgKGNoaWxkQ2xvbmUpIHtcbiAgICAgICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZChjaGlsZENsb25lKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBkb25lO1xuICB9XG5cbiAgZnVuY3Rpb24gY2xvbmVDaGlsZHJlbihvcmlnaW5hbCwgY2xvbmUsIGZsdCkge1xuICAgIGNvbnN0IGNoaWxkcmVuID0gb3JpZ2luYWwuY2hpbGROb2RlcztcbiAgICBpZiAoY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGNsb25lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2xvbmVDaGlsZHJlbkluT3JkZXIoY2xvbmUsIGFzQXJyYXkoY2hpbGRyZW4pLCBmbHQpLnRoZW4oKCkgPT4gY2xvbmUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGVtYmVkRm9udHMobm9kZSkge1xuICByZXR1cm4gZm9udEZhY2VzLnJlc29sdmVBbGwoKS50aGVuKGNzc1RleHQgPT4ge1xuICAgIGNvbnN0IHN0eWxlTm9kZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgbm9kZS5hcHBlbmRDaGlsZChzdHlsZU5vZGUpO1xuICAgIHN0eWxlTm9kZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjc3NUZXh0KSk7XG4gICAgcmV0dXJuIG5vZGU7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBpbmxpbmVJbWFnZXMobm9kZSkge1xuICByZXR1cm4gaW1hZ2VzLmlubGluZUFsbChub2RlKS50aGVuKCgpID0+IG5vZGUpO1xufVxuXG5mdW5jdGlvbiBtYWtlU3ZnRGF0YVVyaShub2RlLCB3aWR0aCwgaGVpZ2h0LCBlc2NhcGVYaHRtbEZvcldlYnBhY2sgPSB0cnVlKSB7XG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUobm9kZSkudGhlbihuZCA9PiB7XG4gICAgbmQuc2V0QXR0cmlidXRlKCd4bWxucycsICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJyk7XG4gICAgY29uc3Qgc2VyaWFsaXplZFN0cmluZyA9IG5ldyBXaW5kb3cuWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKG5kKTtcblxuICAgIGNvbnN0IHhodG1sID0gZXNjYXBlWGh0bWxGb3JXZWJwYWNrID8gZXNjYXBlWGh0bWwoc2VyaWFsaXplZFN0cmluZykgOiBzZXJpYWxpemVkU3RyaW5nO1xuICAgIGNvbnN0IGZvcmVpZ25PYmplY3QgPSBgPGZvcmVpZ25PYmplY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjEwMCVcIj4ke3hodG1sfTwvZm9yZWlnbk9iamVjdD5gO1xuICAgIGNvbnN0IHN2Z1N0ciA9IGA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIiR7d2lkdGh9XCIgaGVpZ2h0PVwiJHtoZWlnaHR9XCI+JHtmb3JlaWduT2JqZWN0fTwvc3ZnPmA7XG5cbiAgICAvLyBVc2UgYmFzZTY0IGVuY29kaW5nXG4gICAgbGV0IGJhc2U2NFN2Zzogc3RyaW5nO1xuICAgIGlmICh0eXBlb2YgQnVmZmVyICE9PSAndW5kZWZpbmVkJyAmJiBCdWZmZXIuZnJvbSkge1xuICAgICAgYmFzZTY0U3ZnID0gQnVmZmVyLmZyb20oc3ZnU3RyLCAndXRmOCcpLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBUZXh0RW5jb2RlciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIC8vIE1vZGVybiBicm93c2VyczogVGV4dEVuY29kZXIgaGFuZGxlcyBVbmljb2RlIOKGkiBVVEYtOCBieXRlc1xuICAgICAgLy8gTXVzdCBjaHVuayB0byBhdm9pZCBjYWxsIHN0YWNrIGxpbWl0cyB3aXRoIGxhcmdlIGFycmF5c1xuICAgICAgY29uc3QgYnl0ZXMgPSBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoc3ZnU3RyKTtcbiAgICAgIGNvbnN0IENIVU5LX1NJWkUgPSA4MTkyO1xuICAgICAgbGV0IGJpbmFyeSA9ICcnO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBieXRlcy5sZW5ndGg7IGkgKz0gQ0hVTktfU0laRSkge1xuICAgICAgICBiaW5hcnkgKz0gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLCBBcnJheS5mcm9tKGJ5dGVzLnNsaWNlKGksIGkgKyBDSFVOS19TSVpFKSkpO1xuICAgICAgfVxuICAgICAgYmFzZTY0U3ZnID0gV2luZG93LmJ0b2EoYmluYXJ5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBiYXNlNjQgZW5jb2RlciBmb3VuZCcpO1xuICAgIH1cbiAgICByZXR1cm4gYGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsJHtiYXNlNjRTdmd9YDtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIG5ld0lubGluZXIoKSB7XG4gIGNvbnN0IFVSTF9SRUdFWCA9IC91cmxcXChbJ1wiXT8oW14nXCJdKz8pWydcIl0/XFwpL2c7XG5cbiAgcmV0dXJuIHtcbiAgICBpbmxpbmVBbGwsXG4gICAgc2hvdWxkUHJvY2VzcyxcbiAgICBpbXBsOiB7XG4gICAgICByZWFkVXJscyxcbiAgICAgIGlubGluZVxuICAgIH1cbiAgfTtcblxuICBmdW5jdGlvbiBzaG91bGRQcm9jZXNzKHN0cmluZykge1xuICAgIHJldHVybiBzdHJpbmcuc2VhcmNoKFVSTF9SRUdFWCkgIT09IC0xO1xuICB9XG5cbiAgZnVuY3Rpb24gcmVhZFVybHMoc3RyaW5nKSB7XG4gICAgY29uc3QgcmVzdWx0OiBzdHJpbmdbXSA9IFtdO1xuICAgIGxldCBtYXRjaDogbnVsbCB8IFJlZ0V4cEV4ZWNBcnJheTtcbiAgICB3aGlsZSAoKG1hdGNoID0gVVJMX1JFR0VYLmV4ZWMoc3RyaW5nKSkgIT09IG51bGwpIHtcbiAgICAgIHJlc3VsdC5wdXNoKG1hdGNoWzFdKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdC5maWx0ZXIodXJsID0+IHtcbiAgICAgIHJldHVybiAhaXNEYXRhVXJsKHVybCk7XG4gICAgfSk7XG4gIH1cblxuICBmdW5jdGlvbiB1cmxBc1JlZ2V4KHVybDApIHtcbiAgICByZXR1cm4gbmV3IFJlZ0V4cChgKHVybFxcXFwoWydcIl0/KSgke2VzY2FwZSh1cmwwKX0pKFsnXCJdP1xcXFwpKWAsICdnJyk7XG4gIH1cblxuICBmdW5jdGlvbiBpbmxpbmUoc3RyaW5nLCB1cmwsIGJhc2VVcmwsIGdldCkge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUodXJsKVxuICAgICAgLnRoZW4odWwgPT4gKGJhc2VVcmwgPyByZXNvbHZlVXJsKHVsLCBiYXNlVXJsKSA6IHVsKSlcbiAgICAgIC50aGVuKHVsID0+ICh0eXBlb2YgZ2V0ID09PSAnZnVuY3Rpb24nID8gZ2V0KHVsKSA6IGdldEFuZEVuY29kZSh1bCwgZG9tdG9pbWFnZS5pbXBsLm9wdGlvbnMpKSlcbiAgICAgIC50aGVuKGRhdGEgPT4gZGF0YUFzVXJsKGRhdGEsIG1pbWVUeXBlKHVybCkpKVxuICAgICAgLnRoZW4oZGF0YVVybCA9PiBzdHJpbmcucmVwbGFjZSh1cmxBc1JlZ2V4KHVybCksIGAkMSR7ZGF0YVVybH0kM2ApKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGlubGluZUFsbChzdHJpbmcsIGJhc2VVcmwsIGdldCkge1xuICAgIGlmICghc2hvdWxkUHJvY2VzcyhzdHJpbmcpIHx8IGlzU3JjQXNEYXRhVXJsKHN0cmluZykpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoc3RyaW5nKTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShzdHJpbmcpXG4gICAgICAudGhlbihyZWFkVXJscylcbiAgICAgIC50aGVuKHVybHMgPT4ge1xuICAgICAgICBsZXQgZG9uZSA9IFByb21pc2UucmVzb2x2ZShzdHJpbmcpO1xuICAgICAgICB1cmxzLmZvckVhY2godXJsID0+IHtcbiAgICAgICAgICBkb25lID0gZG9uZS50aGVuKHN0ciA9PiBpbmxpbmUoc3RyLCB1cmwsIGJhc2VVcmwsIGdldCkpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGRvbmU7XG4gICAgICB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBuZXdGb250RmFjZXMoKSB7XG4gIHJldHVybiB7XG4gICAgcmVzb2x2ZUFsbCxcbiAgICBpbXBsOiB7cmVhZEFsbH1cbiAgfTtcblxuICBmdW5jdGlvbiByZXNvbHZlQWxsKCkge1xuICAgIHJldHVybiByZWFkQWxsKClcbiAgICAgIC50aGVuKHdlYkZvbnRzID0+IHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHdlYkZvbnRzLm1hcCh3ZWJGb250ID0+IHdlYkZvbnQucmVzb2x2ZSgpKSk7XG4gICAgICB9KVxuICAgICAgLnRoZW4oY3NzU3RyaW5ncyA9PiBjc3NTdHJpbmdzLmpvaW4oJ1xcbicpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHJlYWRBbGwoKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShhc0FycmF5KGRvY3VtZW50LnN0eWxlU2hlZXRzKSlcbiAgICAgIC50aGVuKGxvYWRFeHRlcm5hbFN0eWxlU2hlZXRzKVxuICAgICAgLnRoZW4oZ2V0Q3NzUnVsZXMpXG4gICAgICAudGhlbihzZWxlY3RXZWJGb250UnVsZXMpXG4gICAgICAudGhlbihydWxlcyA9PiBydWxlcy5tYXAobmV3V2ViRm9udCkpO1xuXG4gICAgZnVuY3Rpb24gc2VsZWN0V2ViRm9udFJ1bGVzKGNzc1J1bGVzKSB7XG4gICAgICByZXR1cm4gY3NzUnVsZXNcbiAgICAgICAgLmZpbHRlcihydWxlID0+IHJ1bGUudHlwZSA9PT0gV2luZG93LkNTU1J1bGUuRk9OVF9GQUNFX1JVTEUpXG4gICAgICAgIC5maWx0ZXIocnVsZSA9PiBpbmxpbmVyLnNob3VsZFByb2Nlc3MocnVsZS5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdzcmMnKSkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvYWRFeHRlcm5hbFN0eWxlU2hlZXRzKHN0eWxlU2hlZXRzKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5hbGwoXG4gICAgICAgIHN0eWxlU2hlZXRzLm1hcChzaGVldCA9PiB7XG4gICAgICAgICAgaWYgKHNoZWV0LmhyZWYpIHtcbiAgICAgICAgICAgIC8vIGNsb3VkZm9udCBkb2Vzbid0IGhhdmUgYWxsb3cgb3JpZ2luIGhlYWRlciBwcm9wZXJseSBzZXRcbiAgICAgICAgICAgIC8vIGVycm9yIHJlc3BvbnNlIHdpbGwgcmVtYWluIGluIGNhY2hlXG4gICAgICAgICAgICBjb25zdCBjYWNoZSA9IHNoZWV0LmhyZWYuaW5jbHVkZXMoJ3ViZXItZm9udHMnKSA/ICduby1jYWNoZScgOiAnZGVmYXVsdCc7XG4gICAgICAgICAgICByZXR1cm4gV2luZG93LmZldGNoKHNoZWV0LmhyZWYsIHtjcmVkZW50aWFsczogJ29taXQnLCBjYWNoZX0pXG4gICAgICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLnRleHQoKSlcbiAgICAgICAgICAgICAgLnRoZW4odGV4dCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gc2V0U3R5bGVTaGVldEJhc2VIcmVmKHRleHQsIHNoZWV0LmhyZWYpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0b1N0eWxlU2hlZXQocmVzdWx0KTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgLy8gSGFuZGxlIGFueSBlcnJvciB0aGF0IG9jY3VycmVkIGluIGFueSBvZiB0aGUgcHJldmlvdXNcbiAgICAgICAgICAgICAgICAvLyBwcm9taXNlcyBpbiB0aGUgY2hhaW4uIHN0eWxlc2hlZXQgZmFpbGVkIHRvIGxvYWQgc2hvdWxkIG5vdCBzdG9wXG4gICAgICAgICAgICAgICAgLy8gdGhlIHByb2Nlc3MsIGhlbmNlIHJlc3VsdCBpbiBvbmx5IGEgd2FybmluZywgaW5zdGVhZCBvZiByZWplY3RcbiAgICAgICAgICAgICAgICBDb25zb2xlLndhcm4oSU1BR0VfRVhQT1JUX0VSUk9SUy5zdHlsZVNoZWV0LCBzaGVldC5ocmVmKTtcbiAgICAgICAgICAgICAgICBDb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoc2hlZXQpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRDc3NSdWxlcyhzdHlsZVNoZWV0cykge1xuICAgICAgY29uc3QgY3NzUnVsZXM6IGFueVtdID0gW107XG4gICAgICBzdHlsZVNoZWV0cy5mb3JFYWNoKHNoZWV0ID0+IHtcbiAgICAgICAgLy8gdHJ5Li4uY2F0Y2ggYmVjYXVzZSBicm93c2VyIG1heSBub3QgYWJsZSB0byBlbnVtZXJhdGUgcnVsZXMgZm9yIGNyb3NzLWRvbWFpbiBzaGVldHNcbiAgICAgICAgaWYgKCFzaGVldCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcnVsZXM7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcnVsZXMgPSBzaGVldC5ydWxlcyB8fCBzaGVldC5jc3NSdWxlcztcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIENvbnNvbGUubG9nKGAnQ2FuJ3QgcmVhZCB0aGUgY3NzIHJ1bGVzIG9mOiAke3NoZWV0LmhyZWZ9YCwgZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJ1bGVzICYmIHR5cGVvZiBydWxlcyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXNBcnJheShydWxlcyB8fCBbXSkuZm9yRWFjaChjc3NSdWxlcy5wdXNoLmJpbmQoY3NzUnVsZXMpKTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBDb25zb2xlLmxvZyhgRXJyb3Igd2hpbGUgcmVhZGluZyBDU1MgcnVsZXMgZnJvbSAke3NoZWV0LmhyZWZ9YCwgZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIENvbnNvbGUubG9nKCdnZXRDc3NSdWxlcyBjYW4gbm90IGZpbmQgY3NzUnVsZXMnKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gY3NzUnVsZXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbmV3V2ViRm9udCh3ZWJGb250UnVsZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcmVzb2x2ZTogKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGJhc2VVcmwgPSAod2ViRm9udFJ1bGUucGFyZW50U3R5bGVTaGVldCB8fCB7fSkuaHJlZjtcbiAgICAgICAgICByZXR1cm4gaW5saW5lci5pbmxpbmVBbGwod2ViRm9udFJ1bGUuY3NzVGV4dCwgYmFzZVVybCwgbnVsbCk7XG4gICAgICAgIH0sXG4gICAgICAgIHNyYzogKCkgPT4gd2ViRm9udFJ1bGUuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnc3JjJylcbiAgICAgIH07XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIG5ld0ltYWdlcygpIHtcbiAgcmV0dXJuIHtcbiAgICBpbmxpbmVBbGwsXG4gICAgaW1wbDoge1xuICAgICAgbmV3SW1hZ2VcbiAgICB9XG4gIH07XG5cbiAgZnVuY3Rpb24gbmV3SW1hZ2UoZWxlbWVudCkge1xuICAgIGZ1bmN0aW9uIGlubGluZShnZXQpIHtcbiAgICAgIGlmIChpc0RhdGFVcmwoZWxlbWVudC5zcmMpKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZWxlbWVudC5zcmMpXG4gICAgICAgIC50aGVuKHVsID0+XG4gICAgICAgICAgdHlwZW9mIGdldCA9PT0gJ2Z1bmN0aW9uJyA/IGdldCh1bCkgOiBnZXRBbmRFbmNvZGUodWwsIGRvbXRvaW1hZ2UuaW1wbC5vcHRpb25zKVxuICAgICAgICApXG4gICAgICAgIC50aGVuKGRhdGEgPT4gZGF0YUFzVXJsKGRhdGEsIG1pbWVUeXBlKGVsZW1lbnQuc3JjKSkpXG4gICAgICAgIC50aGVuKFxuICAgICAgICAgIGRhdGFVcmwgPT5cbiAgICAgICAgICAgIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgICAgZWxlbWVudC5vbmxvYWQgPSByZXNvbHZlO1xuICAgICAgICAgICAgICBlbGVtZW50Lm9uZXJyb3IgPSByZWplY3Q7XG4gICAgICAgICAgICAgIGVsZW1lbnQuc3JjID0gZGF0YVVybDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlubGluZVxuICAgIH07XG4gIH1cblxuICBmdW5jdGlvbiBpbmxpbmVBbGwobm9kZSkge1xuICAgIGlmICghKG5vZGUgaW5zdGFuY2VvZiBFbGVtZW50KSkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShub2RlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaW5saW5lQmFja2dyb3VuZChub2RlKS50aGVuKCgpID0+IHtcbiAgICAgIGlmIChub2RlIGluc3RhbmNlb2YgSFRNTEltYWdlRWxlbWVudCkge1xuICAgICAgICByZXR1cm4gbmV3SW1hZ2Uobm9kZSkuaW5saW5lKG51bGwpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFByb21pc2UuYWxsKGFzQXJyYXkobm9kZS5jaGlsZE5vZGVzKS5tYXAoY2hpbGQgPT4gaW5saW5lQWxsKGNoaWxkKSkpO1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gaW5saW5lQmFja2dyb3VuZChuZCkge1xuICAgICAgY29uc3QgYmFja2dyb3VuZCA9IG5kLnN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ2JhY2tncm91bmQnKTtcblxuICAgICAgaWYgKCFiYWNrZ3JvdW5kKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobmQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gaW5saW5lclxuICAgICAgICAuaW5saW5lQWxsKGJhY2tncm91bmQsIG51bGwsIG51bGwpXG4gICAgICAgIC50aGVuKGlubGluZWQgPT4ge1xuICAgICAgICAgIG5kLnN0eWxlLnNldFByb3BlcnR5KCdiYWNrZ3JvdW5kJywgaW5saW5lZCwgbmQuc3R5bGUuZ2V0UHJvcGVydHlQcmlvcml0eSgnYmFja2dyb3VuZCcpKTtcbiAgICAgICAgfSlcbiAgICAgICAgLnRoZW4oKCkgPT4gbmQpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBkb210b2ltYWdlO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQVFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFNBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLFFBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLFVBQUEsR0FBQUgsT0FBQTtBQUVBLElBQUFJLFNBQUEsR0FBQUosT0FBQTtBQWJBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBMkJBLElBQU1LLE9BQU8sR0FBR0MsVUFBVSxDQUFDLENBQUM7QUFDNUIsSUFBTUMsU0FBUyxHQUFHQyxZQUFZLENBQUMsQ0FBQztBQUNoQyxJQUFNQyxNQUFNLEdBQUdDLFNBQVMsQ0FBQyxDQUFDO0FBQzFCO0FBQ0EsSUFBTUMsY0FBYyxHQUFHO0VBQ3JCO0VBQ0FDLGdCQUFnQixFQUFFQyxTQUFTO0VBQzNCO0VBQ0FDLFNBQVMsRUFBRTtBQUNiLENBQUM7QUFFRCxJQUFNQyxVQUFVLEdBQUc7RUFDakJDLEtBQUssRUFBTEEsS0FBSztFQUNMQyxLQUFLLEVBQUxBLEtBQUs7RUFDTEMsTUFBTSxFQUFOQSxNQUFNO0VBQ05DLE1BQU0sRUFBTkEsTUFBTTtFQUNOQyxXQUFXLEVBQVhBLFdBQVc7RUFD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
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kepler.gl/utils",
|
|
3
3
|
"author": "Shan He <shan@uber.com>",
|
|
4
|
-
"version": "3.2.
|
|
4
|
+
"version": "3.2.5",
|
|
5
5
|
"description": "kepler.gl constants used by kepler.gl components, actions and reducers",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"main": "dist/index.js",
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
],
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@deck.gl/core": "^8.9.27",
|
|
34
|
-
"@kepler.gl/common-utils": "3.2.
|
|
35
|
-
"@kepler.gl/constants": "3.2.
|
|
36
|
-
"@kepler.gl/types": "3.2.
|
|
34
|
+
"@kepler.gl/common-utils": "3.2.5",
|
|
35
|
+
"@kepler.gl/constants": "3.2.5",
|
|
36
|
+
"@kepler.gl/types": "3.2.5",
|
|
37
37
|
"@loaders.gl/arrow": "^4.3.2",
|
|
38
38
|
"@luma.gl/constants": "^8.5.20",
|
|
39
39
|
"@luma.gl/core": "^8.5.20",
|
|
@@ -56,7 +56,6 @@
|
|
|
56
56
|
"mapbox-gl": "^1.13.1",
|
|
57
57
|
"maplibre-gl": "^3.6.2",
|
|
58
58
|
"maplibregl-mapbox-request-transformer": "^0.0.2",
|
|
59
|
-
"mini-svg-data-uri": "^1.0.3",
|
|
60
59
|
"moment": "^2.10.6",
|
|
61
60
|
"moment-timezone": "^0.5.35",
|
|
62
61
|
"react": "^18.2.0",
|