@mnaoumov/typescript-lib 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -1
- package/dist/lib/cjs/@types/debug.d.cts +1 -1
- package/dist/lib/cjs/abort-controller.cjs +1 -59
- package/dist/lib/cjs/abort-controller.d.cts +2 -1
- package/dist/lib/cjs/aggregate-error.cjs +1 -59
- package/dist/lib/cjs/aggregate-error.d.cts +1 -1
- package/dist/lib/cjs/array-buffer.cjs +1 -59
- package/dist/lib/cjs/array-buffer.d.cts +1 -1
- package/dist/lib/cjs/array.cjs +1 -59
- package/dist/lib/cjs/array.d.cts +1 -1
- package/dist/lib/cjs/async-events.cjs +1 -59
- package/dist/lib/cjs/async-events.d.cts +1 -1
- package/dist/lib/cjs/async-operation-hook.cjs +1 -59
- package/dist/lib/cjs/async-operation-hook.d.cts +1 -1
- package/dist/lib/cjs/async.cjs +1 -59
- package/dist/lib/cjs/async.d.cts +2 -1
- package/dist/lib/cjs/beeper.cjs +1 -59
- package/dist/lib/cjs/beeper.d.cts +1 -1
- package/dist/lib/cjs/blob.cjs +1 -59
- package/dist/lib/cjs/blob.d.cts +2 -1
- package/dist/lib/cjs/bytes.cjs +1 -59
- package/dist/lib/cjs/bytes.d.cts +1 -1
- package/dist/lib/cjs/debug-controller.cjs +1 -59
- package/dist/lib/cjs/debug-controller.d.cts +1 -1
- package/dist/lib/cjs/debug.cjs +6 -37
- package/dist/lib/cjs/debug.d.cts +1 -1
- package/dist/lib/cjs/desktop-zip-extractor.cjs +1 -59
- package/dist/lib/cjs/desktop-zip-extractor.d.cts +2 -1
- package/dist/lib/cjs/disposable.cjs +4 -54
- package/dist/lib/cjs/disposable.d.cts +1 -1
- package/dist/lib/cjs/enum.cjs +1 -59
- package/dist/lib/cjs/enum.d.cts +1 -1
- package/dist/lib/cjs/error.cjs +1 -59
- package/dist/lib/cjs/error.d.cts +2 -1
- package/dist/lib/cjs/function.cjs +1 -59
- package/dist/lib/cjs/function.d.cts +1 -1
- package/dist/lib/cjs/html-element.cjs +1 -59
- package/dist/lib/cjs/html-element.d.cts +2 -1
- package/dist/lib/cjs/index.cjs +33 -91
- package/dist/lib/cjs/index.d.cts +1 -1
- package/dist/lib/cjs/jpeg-metadata.cjs +1 -59
- package/dist/lib/cjs/jpeg-metadata.d.cts +1 -1
- package/dist/lib/cjs/library-references.d.cts +2 -0
- package/dist/lib/cjs/library.cjs +1 -59
- package/dist/lib/cjs/object-utils.cjs +1 -59
- package/dist/lib/cjs/object-utils.d.cts +1 -1
- package/dist/lib/cjs/path.cjs +6 -37
- package/dist/lib/cjs/path.d.cts +2 -1
- package/dist/lib/cjs/reg-exp.cjs +1 -59
- package/dist/lib/cjs/reg-exp.d.cts +1 -1
- package/dist/lib/cjs/string.cjs +1 -59
- package/dist/lib/cjs/string.d.cts +2 -1
- package/dist/lib/cjs/transformers/date-transformer.cjs +1 -59
- package/dist/lib/cjs/transformers/date-transformer.d.cts +1 -1
- package/dist/lib/cjs/transformers/group-transformer.cjs +1 -59
- package/dist/lib/cjs/transformers/group-transformer.d.cts +1 -1
- package/dist/lib/cjs/transformers/index.cjs +9 -67
- package/dist/lib/cjs/transformers/index.d.cts +1 -1
- package/dist/lib/cjs/transformers/map-transformer.cjs +1 -59
- package/dist/lib/cjs/transformers/map-transformer.d.cts +1 -1
- package/dist/lib/cjs/transformers/set-transformer.cjs +1 -59
- package/dist/lib/cjs/transformers/set-transformer.d.cts +1 -1
- package/dist/lib/cjs/transformers/skip-private-property-transformer.cjs +1 -59
- package/dist/lib/cjs/transformers/skip-private-property-transformer.d.cts +1 -1
- package/dist/lib/cjs/transformers/transformer.cjs +1 -59
- package/dist/lib/cjs/transformers/transformer.d.cts +1 -1
- package/dist/lib/cjs/transformers/two-way-map-transformer.cjs +1 -59
- package/dist/lib/cjs/transformers/two-way-map-transformer.d.cts +1 -1
- package/dist/lib/cjs/transformers/typed-transformer.cjs +1 -59
- package/dist/lib/cjs/transformers/typed-transformer.d.cts +1 -1
- package/dist/lib/cjs/two-way-map.cjs +1 -59
- package/dist/lib/cjs/two-way-map.d.cts +1 -1
- package/dist/lib/cjs/type-guards.cjs +1 -59
- package/dist/lib/cjs/type-guards.d.cts +1 -1
- package/dist/lib/cjs/type.cjs +1 -59
- package/dist/lib/cjs/type.d.cts +1 -1
- package/dist/lib/cjs/typescript-lib-state.cjs +1 -59
- package/dist/lib/cjs/typescript-lib-state.d.cts +1 -1
- package/dist/lib/cjs/url.cjs +1 -59
- package/dist/lib/cjs/url.d.cts +1 -1
- package/dist/lib/cjs/value-provider.cjs +1 -59
- package/dist/lib/cjs/value-provider.d.cts +2 -1
- package/dist/lib/cjs/value-wrapper.cjs +1 -59
- package/dist/lib/cjs/value-wrapper.d.cts +1 -1
- package/dist/lib/esm/@types/debug.d.mts +1 -1
- package/dist/lib/esm/abort-controller.d.mts +2 -1
- package/dist/lib/esm/abort-controller.mjs +1 -45
- package/dist/lib/esm/aggregate-error.d.mts +1 -1
- package/dist/lib/esm/aggregate-error.mjs +1 -45
- package/dist/lib/esm/array-buffer.d.mts +1 -1
- package/dist/lib/esm/array-buffer.mjs +1 -45
- package/dist/lib/esm/array.d.mts +1 -1
- package/dist/lib/esm/array.mjs +1 -45
- package/dist/lib/esm/async-events.d.mts +1 -1
- package/dist/lib/esm/async-events.mjs +1 -45
- package/dist/lib/esm/async-operation-hook.d.mts +1 -1
- package/dist/lib/esm/async-operation-hook.mjs +1 -45
- package/dist/lib/esm/async.d.mts +2 -1
- package/dist/lib/esm/async.mjs +1 -45
- package/dist/lib/esm/beeper.d.mts +1 -1
- package/dist/lib/esm/beeper.mjs +1 -45
- package/dist/lib/esm/blob.d.mts +2 -1
- package/dist/lib/esm/blob.mjs +1 -45
- package/dist/lib/esm/bytes.d.mts +1 -1
- package/dist/lib/esm/bytes.mjs +1 -45
- package/dist/lib/esm/debug-controller.d.mts +1 -1
- package/dist/lib/esm/debug-controller.mjs +0 -44
- package/dist/lib/esm/debug.d.mts +1 -1
- package/dist/lib/esm/debug.mjs +5 -22
- package/dist/lib/esm/desktop-zip-extractor.d.mts +2 -1
- package/dist/lib/esm/desktop-zip-extractor.mjs +1 -45
- package/dist/lib/esm/disposable.d.mts +1 -1
- package/dist/lib/esm/disposable.mjs +4 -40
- package/dist/lib/esm/enum.d.mts +1 -1
- package/dist/lib/esm/enum.mjs +1 -45
- package/dist/lib/esm/error.d.mts +2 -1
- package/dist/lib/esm/error.mjs +1 -45
- package/dist/lib/esm/function.d.mts +1 -1
- package/dist/lib/esm/function.mjs +1 -45
- package/dist/lib/esm/html-element.d.mts +2 -1
- package/dist/lib/esm/html-element.mjs +1 -45
- package/dist/lib/esm/index.d.mts +1 -1
- package/dist/lib/esm/index.mjs +1 -45
- package/dist/lib/esm/jpeg-metadata.d.mts +1 -1
- package/dist/lib/esm/jpeg-metadata.mjs +1 -45
- package/dist/lib/esm/library-references.d.mts +2 -0
- package/dist/lib/esm/library.mjs +1 -45
- package/dist/lib/esm/object-utils.d.mts +1 -1
- package/dist/lib/esm/object-utils.mjs +1 -45
- package/dist/lib/esm/path.d.mts +2 -1
- package/dist/lib/esm/path.mjs +5 -22
- package/dist/lib/esm/reg-exp.d.mts +1 -1
- package/dist/lib/esm/reg-exp.mjs +1 -45
- package/dist/lib/esm/string.d.mts +2 -1
- package/dist/lib/esm/string.mjs +1 -45
- package/dist/lib/esm/transformers/date-transformer.d.mts +1 -1
- package/dist/lib/esm/transformers/date-transformer.mjs +1 -45
- package/dist/lib/esm/transformers/group-transformer.d.mts +1 -1
- package/dist/lib/esm/transformers/group-transformer.mjs +1 -45
- package/dist/lib/esm/transformers/index.d.mts +1 -1
- package/dist/lib/esm/transformers/index.mjs +1 -45
- package/dist/lib/esm/transformers/map-transformer.d.mts +1 -1
- package/dist/lib/esm/transformers/map-transformer.mjs +1 -45
- package/dist/lib/esm/transformers/set-transformer.d.mts +1 -1
- package/dist/lib/esm/transformers/set-transformer.mjs +1 -45
- package/dist/lib/esm/transformers/skip-private-property-transformer.d.mts +1 -1
- package/dist/lib/esm/transformers/skip-private-property-transformer.mjs +1 -45
- package/dist/lib/esm/transformers/transformer.d.mts +1 -1
- package/dist/lib/esm/transformers/transformer.mjs +1 -45
- package/dist/lib/esm/transformers/two-way-map-transformer.d.mts +1 -1
- package/dist/lib/esm/transformers/two-way-map-transformer.mjs +1 -45
- package/dist/lib/esm/transformers/typed-transformer.d.mts +1 -1
- package/dist/lib/esm/transformers/typed-transformer.mjs +1 -45
- package/dist/lib/esm/two-way-map.d.mts +1 -1
- package/dist/lib/esm/two-way-map.mjs +1 -45
- package/dist/lib/esm/type-guards.d.mts +1 -1
- package/dist/lib/esm/type-guards.mjs +1 -45
- package/dist/lib/esm/type.d.mts +1 -1
- package/dist/lib/esm/type.mjs +1 -45
- package/dist/lib/esm/typescript-lib-state.d.mts +1 -1
- package/dist/lib/esm/typescript-lib-state.mjs +1 -45
- package/dist/lib/esm/url.d.mts +1 -1
- package/dist/lib/esm/url.mjs +1 -45
- package/dist/lib/esm/value-provider.d.mts +2 -1
- package/dist/lib/esm/value-provider.mjs +1 -45
- package/dist/lib/esm/value-wrapper.d.mts +1 -1
- package/dist/lib/esm/value-wrapper.mjs +1 -45
- package/package.json +61 -19
|
@@ -3,64 +3,6 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
|
3
3
|
if you want to view the source, please visit the github repository of this plugin
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
(function () {
|
|
7
|
-
function ensureDisposeSymbols(symbolConstructor = Symbol) {
|
|
8
|
-
symbolConstructor.asyncDispose ??= symbolConstructor.for('Symbol.asyncDispose');
|
|
9
|
-
symbolConstructor.dispose ??= symbolConstructor.for('Symbol.dispose');
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
function ensureBrowserProcess() {
|
|
13
|
-
const browserProcess = {
|
|
14
|
-
browser: true,
|
|
15
|
-
cwd() {
|
|
16
|
-
return '/';
|
|
17
|
-
},
|
|
18
|
-
env: {},
|
|
19
|
-
platform: 'android'
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
// eslint-disable-next-line obsidianmd/no-global-this, unicorn/no-unnecessary-global-this -- Must stay `globalThis`-qualified: in the emitted banner a bare `process` is a free identifier, so reading it where the host has none throws a ReferenceError instead of yielding `undefined`. That is the very case this function exists to handle.
|
|
23
|
-
const existingProcess = globalThis.process;
|
|
24
|
-
|
|
25
|
-
if (!existingProcess) {
|
|
26
|
-
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
27
|
-
globalThis.process = browserProcess;
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
if (existingProcess.versions?.node) {
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const existingProcessRecord = existingProcess;
|
|
36
|
-
|
|
37
|
-
for (const [key, value] of Object.entries(browserProcess)) {
|
|
38
|
-
existingProcessRecord[key] ??= value;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
existingProcessRecord['browser'] = true;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
function keepName($unknown) {
|
|
45
|
-
return $unknown;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
(function initCjs() {
|
|
49
|
-
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
50
|
-
const globalThisRecord = globalThis;
|
|
51
|
-
ensureDisposeSymbols();
|
|
52
|
-
globalThisRecord['__name'] ??= keepName;
|
|
53
|
-
globalThisRecord['__extractDefault'] ??= extractDefault;
|
|
54
|
-
|
|
55
|
-
ensureBrowserProcess();
|
|
56
|
-
|
|
57
|
-
// eslint-disable-next-line unicorn/consistent-function-scoping -- Serialized with initCjs into the banner; at module scope it would be left out of it.
|
|
58
|
-
function extractDefault(module) {
|
|
59
|
-
return module && module.__esModule && 'default' in module ? module.default : module;
|
|
60
|
-
}
|
|
61
|
-
})();
|
|
62
|
-
})();
|
|
63
|
-
|
|
64
6
|
"use strict";
|
|
65
7
|
var __defProp = Object.defineProperty;
|
|
66
8
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
@@ -77,4 +19,4 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
77
19
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
78
20
|
var debug_controller_exports = {};
|
|
79
21
|
module.exports = __toCommonJS(debug_controller_exports);
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RlYnVnLWNvbnRyb2xsZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBQcm92aWRlcyB0aGUgaW50ZXJmYWNlIGZvciBjb250cm9sbGluZyBkZWJ1ZyBvdXRwdXQgdGhyb3VnaCBuYW1lc3BhY2UgbWFuYWdlbWVudC5cbiAqXG4gKiBEZWJ1ZyBuYW1lc3BhY2VzIGZvbGxvdyB0aGUgcGF0dGVybiAnbG9yZW0nLCBgbG9yZW06aXBzdW1gLCBgbG9yZW06aXBzdW06ZG9sb3JgLCBldGMsIGFuZCBjYW4gdXNlIHdpbGRjYXJkcyAoYCpgKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogLSBgbG9yZW06KmAgbWF0Y2hlcyBhbGwgc3VibW9kdWxlcyBvZiAnbG9yZW0nXG4gKiAtIGAqOmlwc3VtYCBtYXRjaGVzIGFsbCBwbHVnaW5zJyBgaXBzdW1gIHN1Ym1vZHVsZXNcbiAqIC0gYCpgIG1hdGNoZXMgZXZlcnl0aGluZ1xuICpcbiAqIFNwZWNpYWwgc3ludGF4OlxuICogLSBOYW1lc3BhY2VzIHByZWZpeGVkIHdpdGggJy0nIGFyZSBleHBsaWNpdGx5IGRpc2FibGVkXG4gKiAtIE11bHRpcGxlIG5hbWVzcGFjZXMgY2FuIGJlIGNvbWJpbmVkIHdpdGggY29tbWFzOiBgbG9yZW0sLWxvcmVtOmlwc3VtLGRvbG9yOipgXG4gKlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9tbmFvdW1vdi5kZXYvb2JzaWRpYW4tZGV2LXV0aWxzL2d1aWRlcy9kZWJ1Z2dpbmcvfVxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBJbnRlcmZhY2Utb25seSBtb2R1bGU7IG5vIHJ1bnRpbWUgY29kZSB0byB0ZXN0LiAqL1xuXG4vKipcbiAqIENvbnRyb2xzIGRlYnVnIG91dHB1dCBieSBtYW5hZ2luZyBkZWJ1ZyBuYW1lc3BhY2VzLlxuICogRXhwb3NlZCBnbG9iYWxseSBhcyBgd2luZG93LkRFQlVHYC5cbiAqXG4gKiBAcmVtYXJrc1xuICogRGVidWcgc2V0dGluZ3MgcGVyc2lzdCBhY3Jvc3MgcGx1Z2luIHJlbG9hZHMgaW4gbG9jYWxTdG9yYWdlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlYnVnQ29udHJvbGxlciB7XG4gIC8qKlxuICAgKiBEaXNhYmxlIHNwZWNpZmljIGRlYnVnIG5hbWVzcGFjZXMuIERpc2FibGVkIG5hbWVzcGFjZXMgdGFrZSBwcmVjZWRlbmNlXG4gICAqIG92ZXIgZW5hYmxlZCBvbmVzIHdoZW4gdGhlcmUncyBhIGNvbmZsaWN0LlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIHdpbmRvdy5ERUJVRy5kaXNhYmxlKCdmb28tYmFyJyk7IC8vIGhpZGUgYWxsIGRlYnVnIG1lc3NhZ2VzIGZyb20gdGhlIGBmb28tYmFyYCBwbHVnaW5cbiAgICogd2luZG93LkRFQlVHLmRpc2FibGUoJ2Zvby1iYXI6KicpOyAvLyBoaWRlIGFsbCBkZWJ1ZyBtZXNzYWdlcyBmcm9tIHRoZSBgZm9vLWJhcmAgcGx1Z2luIHN1Ym1vZHVsZXNcbiAgICogd2luZG93LkRFQlVHLmRpc2FibGUoWydmb28tYmFyJywgJ2Jhei1xdXgnXSk7IC8vIGRpc2FibGUgbXVsdGlwbGUgbmFtZXNwYWNlc1xuICAgKiB3aW5kb3cuREVCVUcuZGlzYWJsZSgnZm9vLWJhcixiYXotcXV4Jyk7IC8vIGRpc2FibGUgbXVsdGlwbGUgbmFtZXNwYWNlcyB1c2luZyBjb21tYS1zZXBhcmF0ZWQgc3RyaW5nXG4gICAqIHdpbmRvdy5ERUJVRy5kaXNhYmxlKCcqJyk7IC8vIGRpc2FibGUgYWxsIGRlYnVnIG1lc3NhZ2VzXG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0gbmFtZXNwYWNlcyAtIFNpbmdsZSBuYW1lc3BhY2Ugc3RyaW5nIG9yIGFycmF5IG9mIG5hbWVzcGFjZSBzdHJpbmdzIHRvIGRpc2FibGVcbiAgICovXG4gIGRpc2FibGU6IChuYW1lc3BhY2VzOiBzdHJpbmcgfCBzdHJpbmdbXSkgPT4gdm9pZDtcblxuICAvKipcbiAgICogRW5hYmxlIHNwZWNpZmljIGRlYnVnIG5hbWVzcGFjZXMuIE5vdGUgdGhhdCBleHBsaWNpdGx5IGRpc2FibGVkXG4gICAqIG5hbWVzcGFjZXMgKHByZWZpeGVkIHdpdGggJy0nKSB3aWxsIHJlbWFpbiBkaXNhYmxlZC5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiB3aW5kb3cuREVCVUcuZW5hYmxlKCdmb28tYmFyJyk7IC8vIHNob3cgYWxsIGRlYnVnIG1lc3NhZ2VzIGZyb20gdGhlIGBmb28tYmFyYCBwbHVnaW5cbiAgICogd2luZG93LkRFQlVHLmVuYWJsZSgnZm9vLWJhcjpvYnNpZGlhbi1kZXYtdXRpbHM6KicpOyAvLyBzaG93IGFsbCBkZWJ1ZyBtZXNzYWdlcyBmcm9tIHRoZSBgb2JzaWRpYW4tZGV2LXV0aWxzYCBsaWJyYXJ5IHdpdGhpbiB0aGUgYGZvby1iYXJgIHBsdWdpblxuICAgKiB3aW5kb3cuREVCVUcuZW5hYmxlKCdmb28tYmFyOionKTsgLy8gc2hvdyBhbGwgZGVidWcgbWVzc2FnZXMgZnJvbSB0aGUgYGZvby1iYXJgIHBsdWdpbiBhbmQgaXRzIHN1Ym1vZHVsZXNcbiAgICogd2luZG93LkRFQlVHLmVuYWJsZSgnKjpvYnNpZGlhbi1kZXYtdXRpbHM6KicpOyAvLyBzaG93IGFsbCBkZWJ1ZyBtZXNzYWdlcyBmb3IgdGhlIGBvYnNpZGlhbi1kZXYtdXRpbHNgIGxpYnJhcnkgd2l0aGluIGFueSBwbHVnaW5cbiAgICogd2luZG93LkRFQlVHLmVuYWJsZShbJ2Zvby1iYXInLCAnYmF6LXF1eCddKTsgLy8gZW5hYmxlIG11bHRpcGxlIG5hbWVzcGFjZXNcbiAgICogd2luZG93LkRFQlVHLmVuYWJsZSgnZm9vLWJhcixiYXotcXV4Jyk7IC8vIGVuYWJsZSBtdWx0aXBsZSBuYW1lc3BhY2VzIHVzaW5nIGNvbW1hLXNlcGFyYXRlZCBzdHJpbmdcbiAgICogd2luZG93LkRFQlVHLmVuYWJsZSgnKicpOyAvLyBzaG93IGFsbCBkZWJ1ZyBtZXNzYWdlc1xuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIG5hbWVzcGFjZXMgLSBTaW5nbGUgbmFtZXNwYWNlIHN0cmluZyBvciBhcnJheSBvZiBuYW1lc3BhY2Ugc3RyaW5ncyB0byBlbmFibGVcbiAgICovXG4gIGVuYWJsZTogKG5hbWVzcGFjZXM6IHN0cmluZyB8IHN0cmluZ1tdKSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBHZXQgY3VycmVudGx5IGNvbmZpZ3VyZWQgZGVidWcgbmFtZXNwYWNlcy5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiB3aW5kb3cuREVCVUcuZ2V0KCk7IC8vIHJldHVybnMgWydmb28tYmFyJywgJ2Jhei1xdXg6KicsICctbG9yZW0taXBzdW0nXVxuICAgKiBgYGBcbiAgICpcbiAgICogQHJldHVybnMgQXJyYXkgb2YgZW5hYmxlZCBhbmQgZGlzYWJsZWQgKHByZWZpeGVkIHdpdGggYC1gKSBkZWJ1ZyBuYW1lc3BhY2VzXG4gICAqL1xuICBnZXQ6ICgpID0+
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RlYnVnLWNvbnRyb2xsZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBQcm92aWRlcyB0aGUgaW50ZXJmYWNlIGZvciBjb250cm9sbGluZyBkZWJ1ZyBvdXRwdXQgdGhyb3VnaCBuYW1lc3BhY2UgbWFuYWdlbWVudC5cbiAqXG4gKiBEZWJ1ZyBuYW1lc3BhY2VzIGZvbGxvdyB0aGUgcGF0dGVybiAnbG9yZW0nLCBgbG9yZW06aXBzdW1gLCBgbG9yZW06aXBzdW06ZG9sb3JgLCBldGMsIGFuZCBjYW4gdXNlIHdpbGRjYXJkcyAoYCpgKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogLSBgbG9yZW06KmAgbWF0Y2hlcyBhbGwgc3VibW9kdWxlcyBvZiAnbG9yZW0nXG4gKiAtIGAqOmlwc3VtYCBtYXRjaGVzIGFsbCBwbHVnaW5zJyBgaXBzdW1gIHN1Ym1vZHVsZXNcbiAqIC0gYCpgIG1hdGNoZXMgZXZlcnl0aGluZ1xuICpcbiAqIFNwZWNpYWwgc3ludGF4OlxuICogLSBOYW1lc3BhY2VzIHByZWZpeGVkIHdpdGggJy0nIGFyZSBleHBsaWNpdGx5IGRpc2FibGVkXG4gKiAtIE11bHRpcGxlIG5hbWVzcGFjZXMgY2FuIGJlIGNvbWJpbmVkIHdpdGggY29tbWFzOiBgbG9yZW0sLWxvcmVtOmlwc3VtLGRvbG9yOipgXG4gKlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9tbmFvdW1vdi5kZXYvb2JzaWRpYW4tZGV2LXV0aWxzL2d1aWRlcy9kZWJ1Z2dpbmcvfVxuICovXG5cbi8qIHY4IGlnbm9yZSBzdGFydCAtLSBJbnRlcmZhY2Utb25seSBtb2R1bGU7IG5vIHJ1bnRpbWUgY29kZSB0byB0ZXN0LiAqL1xuXG4vKipcbiAqIENvbnRyb2xzIGRlYnVnIG91dHB1dCBieSBtYW5hZ2luZyBkZWJ1ZyBuYW1lc3BhY2VzLlxuICogRXhwb3NlZCBnbG9iYWxseSBhcyBgd2luZG93LkRFQlVHYC5cbiAqXG4gKiBAcmVtYXJrc1xuICogRGVidWcgc2V0dGluZ3MgcGVyc2lzdCBhY3Jvc3MgcGx1Z2luIHJlbG9hZHMgaW4gbG9jYWxTdG9yYWdlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlYnVnQ29udHJvbGxlciB7XG4gIC8qKlxuICAgKiBEaXNhYmxlIHNwZWNpZmljIGRlYnVnIG5hbWVzcGFjZXMuIERpc2FibGVkIG5hbWVzcGFjZXMgdGFrZSBwcmVjZWRlbmNlXG4gICAqIG92ZXIgZW5hYmxlZCBvbmVzIHdoZW4gdGhlcmUncyBhIGNvbmZsaWN0LlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIHdpbmRvdy5ERUJVRy5kaXNhYmxlKCdmb28tYmFyJyk7IC8vIGhpZGUgYWxsIGRlYnVnIG1lc3NhZ2VzIGZyb20gdGhlIGBmb28tYmFyYCBwbHVnaW5cbiAgICogd2luZG93LkRFQlVHLmRpc2FibGUoJ2Zvby1iYXI6KicpOyAvLyBoaWRlIGFsbCBkZWJ1ZyBtZXNzYWdlcyBmcm9tIHRoZSBgZm9vLWJhcmAgcGx1Z2luIHN1Ym1vZHVsZXNcbiAgICogd2luZG93LkRFQlVHLmRpc2FibGUoWydmb28tYmFyJywgJ2Jhei1xdXgnXSk7IC8vIGRpc2FibGUgbXVsdGlwbGUgbmFtZXNwYWNlc1xuICAgKiB3aW5kb3cuREVCVUcuZGlzYWJsZSgnZm9vLWJhcixiYXotcXV4Jyk7IC8vIGRpc2FibGUgbXVsdGlwbGUgbmFtZXNwYWNlcyB1c2luZyBjb21tYS1zZXBhcmF0ZWQgc3RyaW5nXG4gICAqIHdpbmRvdy5ERUJVRy5kaXNhYmxlKCcqJyk7IC8vIGRpc2FibGUgYWxsIGRlYnVnIG1lc3NhZ2VzXG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0gbmFtZXNwYWNlcyAtIFNpbmdsZSBuYW1lc3BhY2Ugc3RyaW5nIG9yIGFycmF5IG9mIG5hbWVzcGFjZSBzdHJpbmdzIHRvIGRpc2FibGVcbiAgICovXG4gIGRpc2FibGU6IChuYW1lc3BhY2VzOiBzdHJpbmcgfCBzdHJpbmdbXSkgPT4gdm9pZDtcblxuICAvKipcbiAgICogRW5hYmxlIHNwZWNpZmljIGRlYnVnIG5hbWVzcGFjZXMuIE5vdGUgdGhhdCBleHBsaWNpdGx5IGRpc2FibGVkXG4gICAqIG5hbWVzcGFjZXMgKHByZWZpeGVkIHdpdGggJy0nKSB3aWxsIHJlbWFpbiBkaXNhYmxlZC5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiB3aW5kb3cuREVCVUcuZW5hYmxlKCdmb28tYmFyJyk7IC8vIHNob3cgYWxsIGRlYnVnIG1lc3NhZ2VzIGZyb20gdGhlIGBmb28tYmFyYCBwbHVnaW5cbiAgICogd2luZG93LkRFQlVHLmVuYWJsZSgnZm9vLWJhcjpvYnNpZGlhbi1kZXYtdXRpbHM6KicpOyAvLyBzaG93IGFsbCBkZWJ1ZyBtZXNzYWdlcyBmcm9tIHRoZSBgb2JzaWRpYW4tZGV2LXV0aWxzYCBsaWJyYXJ5IHdpdGhpbiB0aGUgYGZvby1iYXJgIHBsdWdpblxuICAgKiB3aW5kb3cuREVCVUcuZW5hYmxlKCdmb28tYmFyOionKTsgLy8gc2hvdyBhbGwgZGVidWcgbWVzc2FnZXMgZnJvbSB0aGUgYGZvby1iYXJgIHBsdWdpbiBhbmQgaXRzIHN1Ym1vZHVsZXNcbiAgICogd2luZG93LkRFQlVHLmVuYWJsZSgnKjpvYnNpZGlhbi1kZXYtdXRpbHM6KicpOyAvLyBzaG93IGFsbCBkZWJ1ZyBtZXNzYWdlcyBmb3IgdGhlIGBvYnNpZGlhbi1kZXYtdXRpbHNgIGxpYnJhcnkgd2l0aGluIGFueSBwbHVnaW5cbiAgICogd2luZG93LkRFQlVHLmVuYWJsZShbJ2Zvby1iYXInLCAnYmF6LXF1eCddKTsgLy8gZW5hYmxlIG11bHRpcGxlIG5hbWVzcGFjZXNcbiAgICogd2luZG93LkRFQlVHLmVuYWJsZSgnZm9vLWJhcixiYXotcXV4Jyk7IC8vIGVuYWJsZSBtdWx0aXBsZSBuYW1lc3BhY2VzIHVzaW5nIGNvbW1hLXNlcGFyYXRlZCBzdHJpbmdcbiAgICogd2luZG93LkRFQlVHLmVuYWJsZSgnKicpOyAvLyBzaG93IGFsbCBkZWJ1ZyBtZXNzYWdlc1xuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIG5hbWVzcGFjZXMgLSBTaW5nbGUgbmFtZXNwYWNlIHN0cmluZyBvciBhcnJheSBvZiBuYW1lc3BhY2Ugc3RyaW5ncyB0byBlbmFibGVcbiAgICovXG4gIGVuYWJsZTogKG5hbWVzcGFjZXM6IHN0cmluZyB8IHN0cmluZ1tdKSA9PiB2b2lkO1xuXG4gIC8qKlxuICAgKiBHZXQgY3VycmVudGx5IGNvbmZpZ3VyZWQgZGVidWcgbmFtZXNwYWNlcy5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiB3aW5kb3cuREVCVUcuZ2V0KCk7IC8vIHJldHVybnMgWydmb28tYmFyJywgJ2Jhei1xdXg6KicsICctbG9yZW0taXBzdW0nXVxuICAgKiBgYGBcbiAgICpcbiAgICogQHJldHVybnMgQXJyYXkgb2YgZW5hYmxlZCBhbmQgZGlzYWJsZWQgKHByZWZpeGVkIHdpdGggYC1gKSBkZWJ1ZyBuYW1lc3BhY2VzXG4gICAqL1xuICBnZXQ6ICgpID0+IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBTZXQgZGVidWcgbmFtZXNwYWNlcywgcmVwbGFjaW5nIGFsbCBwcmV2aW91cyBjb25maWd1cmF0aW9ucy5cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiB3aW5kb3cuREVCVUcuc2V0KFsnZm9vLWJhcicsICdiYXotcXV4OionLCAnLWxvcmVtLWlwc3VtJ10pOyAvLyBFbmFibGUgJ2Zvby1iYXInIGFuZCAnYmF6LXF1eDoqJywgZXhwbGljaXRseSBkaXNhYmxlICdsb3JlbS1pcHN1bSdcbiAgICogd2luZG93LkRFQlVHLnNldCgnZm9vLWJhcixiYXotcXV4OiosLWxvcmVtLWlwc3VtJyk7IC8vIFNhbWUgdGhpbmcgdXNpbmcgY29tbWEtc2VwYXJhdGVkIHN0cmluZ1xuICAgKiB3aW5kb3cuREVCVUcuc2V0KCcqJyk7IC8vIEVuYWJsZSBhbGwgZGVidWcgbWVzc2FnZXNcbiAgICogd2luZG93LkRFQlVHLnNldCgnJyk7IC8vIERpc2FibGUgYWxsIGRlYnVnIG1lc3NhZ2VzXG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0gbmFtZXNwYWNlcyAtIFN0cmluZyBvciBhcnJheSBvZiBuYW1lc3BhY2UgcGF0dGVybnNcbiAgICovXG4gIHNldDogKG5hbWVzcGFjZXM6IHN0cmluZyB8IHN0cmluZ1tdKSA9PiB2b2lkO1xufVxuXG4vKiB2OCBpZ25vcmUgc3RvcCAqL1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
package/dist/lib/cjs/debug.cjs
CHANGED
|
@@ -2,63 +2,32 @@
|
|
|
2
2
|
THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
3
3
|
if you want to view the source, please visit the github repository of this plugin
|
|
4
4
|
*/
|
|
5
|
-
|
|
6
5
|
(function () {
|
|
7
|
-
function ensureDisposeSymbols(symbolConstructor = Symbol) {
|
|
8
|
-
symbolConstructor.asyncDispose ??= symbolConstructor.for('Symbol.asyncDispose');
|
|
9
|
-
symbolConstructor.dispose ??= symbolConstructor.for('Symbol.dispose');
|
|
10
|
-
}
|
|
11
|
-
|
|
12
6
|
function ensureBrowserProcess() {
|
|
13
7
|
const browserProcess = {
|
|
14
8
|
browser: true,
|
|
15
9
|
cwd() {
|
|
16
|
-
return
|
|
10
|
+
return "/";
|
|
17
11
|
},
|
|
18
12
|
env: {},
|
|
19
|
-
platform:
|
|
13
|
+
platform: "android"
|
|
20
14
|
};
|
|
21
|
-
|
|
22
|
-
// eslint-disable-next-line obsidianmd/no-global-this, unicorn/no-unnecessary-global-this -- Must stay `globalThis`-qualified: in the emitted banner a bare `process` is a free identifier, so reading it where the host has none throws a ReferenceError instead of yielding `undefined`. That is the very case this function exists to handle.
|
|
23
15
|
const existingProcess = globalThis.process;
|
|
24
|
-
|
|
25
16
|
if (!existingProcess) {
|
|
26
|
-
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
27
17
|
globalThis.process = browserProcess;
|
|
28
18
|
return;
|
|
29
19
|
}
|
|
30
|
-
|
|
31
20
|
if (existingProcess.versions?.node) {
|
|
32
21
|
return;
|
|
33
22
|
}
|
|
34
|
-
|
|
35
23
|
const existingProcessRecord = existingProcess;
|
|
36
|
-
|
|
37
24
|
for (const [key, value] of Object.entries(browserProcess)) {
|
|
38
25
|
existingProcessRecord[key] ??= value;
|
|
39
26
|
}
|
|
40
|
-
|
|
41
|
-
existingProcessRecord['browser'] = true;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
function keepName($unknown) {
|
|
45
|
-
return $unknown;
|
|
27
|
+
existingProcessRecord["browser"] = true;
|
|
46
28
|
}
|
|
47
29
|
|
|
48
|
-
(
|
|
49
|
-
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
50
|
-
const globalThisRecord = globalThis;
|
|
51
|
-
ensureDisposeSymbols();
|
|
52
|
-
globalThisRecord['__name'] ??= keepName;
|
|
53
|
-
globalThisRecord['__extractDefault'] ??= extractDefault;
|
|
54
|
-
|
|
55
|
-
ensureBrowserProcess();
|
|
56
|
-
|
|
57
|
-
// eslint-disable-next-line unicorn/consistent-function-scoping -- Serialized with initCjs into the banner; at module scope it would be left out of it.
|
|
58
|
-
function extractDefault(module) {
|
|
59
|
-
return module && module.__esModule && 'default' in module ? module.default : module;
|
|
60
|
-
}
|
|
61
|
-
})();
|
|
30
|
+
ensureBrowserProcess();
|
|
62
31
|
})();
|
|
63
32
|
|
|
64
33
|
"use strict";
|
|
@@ -99,7 +68,7 @@ __export(debug_exports, {
|
|
|
99
68
|
showInitialDebugMessage: () => showInitialDebugMessage
|
|
100
69
|
});
|
|
101
70
|
module.exports = __toCommonJS(debug_exports);
|
|
102
|
-
var import_debug = __toESM(
|
|
71
|
+
var import_debug = __toESM(((module) => module && module.__esModule && 'default' in module ? module.default : module)(require('debug')), 1);
|
|
103
72
|
var import_error = require('./error.cjs');
|
|
104
73
|
var import_library = require('./library.cjs');
|
|
105
74
|
var import_typescript_lib_state = require('./typescript-lib-state.cjs');
|
|
@@ -232,4 +201,4 @@ function toArray(namespaces) {
|
|
|
232
201
|
printWithStackTrace,
|
|
233
202
|
showInitialDebugMessage
|
|
234
203
|
});
|
|
235
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2RlYnVnLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGRlYnVnZ2luZy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IERlYnVnZ2VyIH0gZnJvbSAnZGVidWcnO1xuXG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuXG5pbXBvcnQgdHlwZSB7IERlYnVnQ29udHJvbGxlciB9IGZyb20gJy4vZGVidWctY29udHJvbGxlci50cyc7XG5cbmltcG9ydCB7XG4gIEN1c3RvbVN0YWNrVHJhY2VFcnJvcixcbiAgZ2V0U3RhY2tUcmFjZVxufSBmcm9tICcuL2Vycm9yLnRzJztcbmltcG9ydCB7IExpYnJhcnkgfSBmcm9tICcuL2xpYnJhcnkudHMnO1xuaW1wb3J0IHsgZ2V0VHlwZXNjcmlwdExpYlN0YXRlIH0gZnJvbSAnLi90eXBlc2NyaXB0LWxpYi1zdGF0ZS50cyc7XG5cbmNvbnN0IE5BTUVTUEFDRV9TRVBBUkFUT1IgPSAnLCc7XG5jb25zdCBORUdBVEVEX05BTUVTUEFDRV9QUkVGSVggPSAnLSc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHByaW50V2l0aFN0YWNrVHJhY2V9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByaW50V2l0aFN0YWNrVHJhY2VQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGFyZ3VtZW50cyB0byBwcmludC5cbiAgICovXG4gIHJlYWRvbmx5ICRhcmd1bWVudHM6IHVua25vd25bXTtcblxuICAvKipcbiAgICogVGhlIGRlYnVnZ2VyIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVidWdnZXJJbnN0YW5jZTogRGVidWdnZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBtZXNzYWdlIHRvIHByaW50LlxuICAgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgdHJhY2UgdG8gcHJpbnQuXG4gICAqL1xuICByZWFkb25seSBzdGFja1RyYWNlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGxvZ1dpdGhDYWxsZXJ9LlxuICovXG5pbnRlcmZhY2UgTG9nV2l0aENhbGxlclBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgYXJndW1lbnRzIHRvIHByaW50LlxuICAgKi9cbiAgcmVhZG9ubHkgJGFyZ3VtZW50czogdW5rbm93bltdO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGZyYW1lcyB0byBza2lwIGluIHRoZSBzdGFjayB0cmFjZS5cbiAgICovXG4gIHJlYWRvbmx5IGZyYW1lc1RvU2tpcDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbWVzc2FnZSB0byBwcmludC5cbiAgICovXG4gIHJlYWRvbmx5IG1lc3NhZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWVzcGFjZSBmb3IgdGhlIGRlYnVnZ2VyIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZXNwYWNlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRW5hYmxlcyB0aGUgZGVidWdnZXJzIGZvciB0aGUgbGlicmFyeSAodW5kZXIgaXRzIGRlYnVnIG5hbWVzcGFjZSwgc2VlIGBMaWJyYXJ5LmRlYnVnTmFtZXNwYWNlYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmFibGVMaWJyYXJ5RGVidWdnZXJzKCk6IHZvaWQge1xuICBlbmFibGVOYW1lc3BhY2VzKFtMaWJyYXJ5LmRlYnVnTmFtZXNwYWNlLCBgJHtMaWJyYXJ5LmRlYnVnTmFtZXNwYWNlfToqYF0pO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBkZWJ1ZyBjb250cm9sbGVyLlxuICpcbiAqIEByZXR1cm5zIEEgZGVidWcgY29udHJvbGxlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlYnVnQ29udHJvbGxlcigpOiBEZWJ1Z0NvbnRyb2xsZXIge1xuICByZXR1cm4ge1xuICAgIGRpc2FibGU6IGRpc2FibGVOYW1lc3BhY2VzLFxuICAgIGVuYWJsZTogZW5hYmxlTmFtZXNwYWNlcyxcbiAgICBnZXQ6IGdldE5hbWVzcGFjZXMsXG4gICAgc2V0OiBzZXROYW1lc3BhY2VzXG4gIH07XG59XG5cbi8qKlxuICogUmV0dXJucyBhIGRlYnVnZ2VyIGluc3RhbmNlIHdpdGggYSBsb2cgZnVuY3Rpb24gdGhhdCBpbmNsdWRlcyB0aGUgY2FsbGVyJ3MgZmlsZSBuYW1lIGFuZCBsaW5lIG51bWJlci5cbiAqXG4gKiBAcGFyYW0gbmFtZXNwYWNlIC0gVGhlIG5hbWVzcGFjZSBmb3IgdGhlIGRlYnVnZ2VyIGluc3RhbmNlLlxuICogQHBhcmFtIGZyYW1lc1RvU2tpcCAtIFRoZSBudW1iZXIgb2YgZnJhbWVzIHRvIHNraXAgaW4gdGhlIHN0YWNrIHRyYWNlLlxuICogQHJldHVybnMgQSBkZWJ1Z2dlciBpbnN0YW5jZSB3aXRoIGEgbG9nIGZ1bmN0aW9uIHRoYXQgaW5jbHVkZXMgdGhlIGNhbGxlcidzIGZpbGUgbmFtZSBhbmQgbGluZSBudW1iZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWJ1Z2dlcihuYW1lc3BhY2U6IHN0cmluZywgZnJhbWVzVG9Ta2lwID0gMCk6IERlYnVnZ2VyIHtcbiAgY29uc3Qga2V5ID0gYCR7bmFtZXNwYWNlfToke1N0cmluZyhmcmFtZXNUb1NraXApfWA7XG4gIGNvbnN0IGRlYnVnZ2Vyc01hcCA9IGdldFR5cGVzY3JpcHRMaWJTdGF0ZSgnZGVidWdnZXJzJywgbmV3IE1hcDxzdHJpbmcsIERlYnVnZ2VyPigpKS52YWx1ZTtcbiAgbGV0IGRlYnVnZ2VyRXggPSBkZWJ1Z2dlcnNNYXAuZ2V0KGtleSk7XG4gIGlmICghZGVidWdnZXJFeCkge1xuICAgIGRlYnVnZ2VyRXggPSBnZXRTaGFyZWREZWJ1Z0xpYkluc3RhbmNlKCkobmFtZXNwYWNlKTtcbiAgICBkZWJ1Z2dlckV4LmxvZyA9IChtZXNzYWdlOiBzdHJpbmcsIC4uLiRhcmd1bWVudHM6IHVua25vd25bXSk6IHZvaWQgPT4ge1xuICAgICAgbG9nV2l0aENhbGxlcih7XG4gICAgICAgICRhcmd1bWVudHMsXG4gICAgICAgIGZyYW1lc1RvU2tpcCxcbiAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgbmFtZXNwYWNlXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgZGVidWdnZXJzTWFwLnNldChrZXksIGRlYnVnZ2VyRXgpO1xuICB9XG5cbiAgcmV0dXJuIGRlYnVnZ2VyRXg7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIGRlYnVnZ2VyIGluc3RhbmNlIGZvciB0aGUgbGlicmFyeSAodW5kZXIgaXRzIGRlYnVnIG5hbWVzcGFjZSwgc2VlIGBMaWJyYXJ5LmRlYnVnTmFtZXNwYWNlYCkuXG4gKlxuICogQHBhcmFtIG5hbWVzcGFjZSAtIFRoZSBuYW1lc3BhY2UgZm9yIHRoZSBkZWJ1Z2dlciBpbnN0YW5jZS5cbiAqIEByZXR1cm5zIEEgZGVidWdnZXIgaW5zdGFuY2UgZm9yIHRoZSBsaWJyYXJ5ICh1bmRlciBpdHMgZGVidWcgbmFtZXNwYWNlLCBzZWUgYExpYnJhcnkuZGVidWdOYW1lc3BhY2VgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExpYkRlYnVnZ2VyKG5hbWVzcGFjZTogc3RyaW5nKTogRGVidWdnZXIge1xuICByZXR1cm4gZ2V0RGVidWdnZXIoYCR7TGlicmFyeS5kZWJ1Z1ByZWZpeE5hbWVzcGFjZX0ke0xpYnJhcnkuZGVidWdOYW1lc3BhY2V9OiR7bmFtZXNwYWNlfWApO1xufVxuXG4vKipcbiAqIFByaW50cyBhIG1lc3NhZ2Ugd2l0aCBhIHN0YWNrIHRyYWNlLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgcHJpbnRpbmcgdGhlIG1lc3NhZ2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmludFdpdGhTdGFja1RyYWNlKHBhcmFtczogUHJpbnRXaXRoU3RhY2tUcmFjZVBhcmFtcyk6IHZvaWQge1xuICBjb25zdCB7XG4gICAgJGFyZ3VtZW50cyxcbiAgICBkZWJ1Z2dlckluc3RhbmNlLFxuICAgIG1lc3NhZ2UsXG4gICAgc3RhY2tUcmFjZVxuICB9ID0gcGFyYW1zO1xuICBpZiAoIUxpYnJhcnkuc2hvdWxkUHJpbnRTdGFja1RyYWNlKSB7XG4gICAgZGVidWdnZXJJbnN0YW5jZShtZXNzYWdlLCAuLi4kYXJndW1lbnRzKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBkZWJ1Z2dlckluc3RhbmNlKG1lc3NhZ2UsIC4uLiRhcmd1bWVudHMsICdcXG5cXG4tLS1cXG5Db250ZXh0IHN0YWNrIHRyYWNlOlxcbicsIG1ha2VTdGFja1RyYWNlRXJyb3Ioc3RhY2tUcmFjZSkpO1xufVxuXG4vKipcbiAqIFNob3dzIGFuIGluaXRpYWwgZGVidWcgbWVzc2FnZS5cbiAqXG4gKiBAcGFyYW0gcGx1Z2luSWQgLSBUaGUgcGx1Z2luIElELlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2hvd0luaXRpYWxEZWJ1Z01lc3NhZ2UocGx1Z2luSWQ6IHN0cmluZyk6IHZvaWQge1xuICBjb25zdCBpc0VuYWJsZWQgPSBnZXRTaGFyZWREZWJ1Z0xpYkluc3RhbmNlKCkuZW5hYmxlZChwbHVnaW5JZCk7XG4gIGNvbnN0IHN0YXRlID0gaXNFbmFibGVkID8gJ2VuYWJsZWQnIDogJ2Rpc2FibGVkJztcbiAgY29uc3QgY2hhbmdlQWN0aW9uID0gaXNFbmFibGVkID8gJ2Rpc2FibGUnIDogJ2VuYWJsZSc7XG4gIGNvbnN0IG5hbWVzcGFjZXMgPSBnZXROYW1lc3BhY2VzKCk7XG4gIHNldE5hbWVzcGFjZXMocGx1Z2luSWQpO1xuICBnZXREZWJ1Z2dlcihwbHVnaW5JZCkoXG4gICAgYERlYnVnIG1lc3NhZ2VzIGZvciBwbHVnaW4gJHtwbHVnaW5JZH0gYXJlICR7c3RhdGV9LiR7Zm9ybWF0R3VpZGVSZWZlcmVuY2UoYCBob3cgdG8gJHtjaGFuZ2VBY3Rpb259IHRoZW1gKX1gXG4gICk7XG4gIHNldE5hbWVzcGFjZXMobmFtZXNwYWNlcyk7XG59XG5cbmZ1bmN0aW9uIGRpc2FibGVOYW1lc3BhY2VzKG5hbWVzcGFjZXM6IHN0cmluZyB8IHN0cmluZ1tdKTogdm9pZCB7XG4gIGNvbnN0IHNldCA9IG5ldyBTZXQoZ2V0TmFtZXNwYWNlcygpKTtcbiAgZm9yIChjb25zdCBuYW1lc3BhY2Ugb2YgdG9BcnJheShuYW1lc3BhY2VzKSkge1xuICAgIGlmIChuYW1lc3BhY2Uuc3RhcnRzV2l0aChORUdBVEVEX05BTUVTUEFDRV9QUkVGSVgpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29uc3QgbmVnYXRlZE5hbWVzcGFjZSA9IE5FR0FURURfTkFNRVNQQUNFX1BSRUZJWCArIG5hbWVzcGFjZTtcbiAgICBzZXQuZGVsZXRlKG5hbWVzcGFjZSk7XG4gICAgc2V0LmFkZChuZWdhdGVkTmFtZXNwYWNlKTtcbiAgfVxuICBzZXROYW1lc3BhY2VzKFsuLi5zZXRdKTtcbn1cblxuZnVuY3Rpb24gZW5hYmxlTmFtZXNwYWNlcyhuYW1lc3BhY2VzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xuICBjb25zdCBzZXQgPSBuZXcgU2V0KGdldE5hbWVzcGFjZXMoKSk7XG4gIGZvciAoY29uc3QgbmFtZXNwYWNlIG9mIHRvQXJyYXkobmFtZXNwYWNlcykpIHtcbiAgICBpZiAoIW5hbWVzcGFjZS5zdGFydHNXaXRoKE5FR0FURURfTkFNRVNQQUNFX1BSRUZJWCkpIHtcbiAgICAgIGNvbnN0IG5lZ2F0ZWROYW1lc3BhY2UgPSBORUdBVEVEX05BTUVTUEFDRV9QUkVGSVggKyBuYW1lc3BhY2U7XG4gICAgICBzZXQuZGVsZXRlKG5lZ2F0ZWROYW1lc3BhY2UpO1xuICAgIH1cbiAgICBzZXQuYWRkKG5hbWVzcGFjZSk7XG4gIH1cbiAgc2V0TmFtZXNwYWNlcyhbLi4uc2V0XSk7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdEd1aWRlUmVmZXJlbmNlKHN1ZmZpeDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIExpYnJhcnkuZGVidWdHdWlkZVVybCA/IGAgU2VlICR7TGlicmFyeS5kZWJ1Z0d1aWRlVXJsfSR7c3VmZml4fS5gIDogJyc7XG59XG5cbmZ1bmN0aW9uIGdldE5hbWVzcGFjZXMoKTogc3RyaW5nW10ge1xuICByZXR1cm4gdG9BcnJheShnZXRTaGFyZWREZWJ1Z0xpYkluc3RhbmNlKCkubG9hZCgpID8/ICcnKTtcbn1cblxuZnVuY3Rpb24gZ2V0U2hhcmVkRGVidWdMaWJJbnN0YW5jZSgpOiB0eXBlb2YgZGVidWcge1xuICByZXR1cm4gZ2V0VHlwZXNjcmlwdExpYlN0YXRlKCdkZWJ1ZycsIGRlYnVnKS52YWx1ZTtcbn1cblxuZnVuY3Rpb24gbG9nV2l0aENhbGxlcihwYXJhbXM6IExvZ1dpdGhDYWxsZXJQYXJhbXMpOiB2b2lkIHtcbiAgY29uc3Qge1xuICAgICRhcmd1bWVudHMsXG4gICAgZnJhbWVzVG9Ta2lwLFxuICAgIG1lc3NhZ2UsXG4gICAgbmFtZXNwYWNlXG4gIH0gPSBwYXJhbXM7XG4gIGlmICghZ2V0U2hhcmVkRGVidWdMaWJJbnN0YW5jZSgpLmVuYWJsZWQobmFtZXNwYWNlKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmICghTGlicmFyeS5zaG91bGRQcmludFN0YWNrVHJhY2UpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZSAtLSBWYWxpZCB1c2FnZS5cbiAgICBjb25zb2xlLmRlYnVnKG1lc3NhZ2UsIC4uLiRhcmd1bWVudHMpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgY2FsbGVyIGlzIDMgZnJhbWVzIGFib3ZlIHRoaXMgb25lLCBiZWNhdXNlIHRoZSBjYWxsIHN0YWNrIGlzIGFzIGZvbGxvd3M6XG4gICAqXG4gICAqIDA6IGxvZ1dpdGhDYWxsZXJcbiAgICogMTogZGVidWdJbnN0YW5jZS5sb2dcbiAgICogMjogZGVidWdcbiAgICogMzogZnVuY3Rpb25OYW1lICh0aGUgY2FsbGVyKVxuICAgKlxuICAgKiBgZ2V0U3RhY2tUcmFjZWAgZHJvcHMgaXRzIG93biBmcmFtZSBhbmQsIG9uIGFuIGVuZ2luZSB0aGF0IHdyaXRlcyBvbmUsIHRoZSBgRXJyb3JgIGhlYWRlciBsaW5lLlxuICAgKi9cbiAgY29uc3QgQ0FMTEVSX0ZSQU1FX0lOREVYID0gMztcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZSAtLSBWYWxpZCB1c2FnZS5cbiAgY29uc29sZS5kZWJ1ZyhtZXNzYWdlLCAuLi4kYXJndW1lbnRzLCAnXFxuXFxuLS0tXFxuTG9nZ2VyIHN0YWNrIHRyYWNlOlxcbicsIG1ha2VTdGFja1RyYWNlRXJyb3IoZ2V0U3RhY2tUcmFjZShDQUxMRVJfRlJBTUVfSU5ERVggKyBmcmFtZXNUb1NraXApKSk7XG59XG5cbmZ1bmN0aW9uIG1ha2VTdGFja1RyYWNlRXJyb3Ioc3RhY2tUcmFjZTogc3RyaW5nKTogQ3VzdG9tU3RhY2tUcmFjZUVycm9yIHtcbiAgcmV0dXJuIG5ldyBDdXN0b21TdGFja1RyYWNlRXJyb3Ioe1xuICAgIGNhdXNlOiB1bmRlZmluZWQsXG4gICAgbWVzc2FnZTogYERlYnVnIG1vZGU6IGludGVudGlvbmFsIHBsYWNlaG9sZGVyIGVycm9yLiR7Zm9ybWF0R3VpZGVSZWZlcmVuY2UoJycpfWAsXG4gICAgc3RhY2tUcmFjZVxuICB9KTtcbn1cblxuLyoqXG4gKiBTZXRzIHRoZSBuYW1lc3BhY2VzIHRvIGVuYWJsZS5cbiAqXG4gKiBAcGFyYW0gbmFtZXNwYWNlcyAtIFRoZSBuYW1lc3BhY2VzIHRvIGVuYWJsZS5cbiAqL1xuZnVuY3Rpb24gc2V0TmFtZXNwYWNlcyhuYW1lc3BhY2VzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xuICBnZXRTaGFyZWREZWJ1Z0xpYkluc3RhbmNlKCkuZW5hYmxlKHRvQXJyYXkobmFtZXNwYWNlcykuam9pbihOQU1FU1BBQ0VfU0VQQVJBVE9SKSk7XG59XG5cbmZ1bmN0aW9uIHRvQXJyYXkobmFtZXNwYWNlczogc3RyaW5nIHwgc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gIHJldHVybiB0eXBlb2YgbmFtZXNwYWNlcyA9PT0gJ3N0cmluZycgPyBuYW1lc3BhY2VzLnNwbGl0KE5BTUVTUEFDRV9TRVBBUkFUT1IpLmZpbHRlcihCb29sZWFuKSA6IG5hbWVzcGFjZXMuZmxhdE1hcCgobmFtZXNwYWNlKSA9PiB0b0FycmF5KG5hbWVzcGFjZSkpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUEsbUJBQWtCO0FBSWxCLG1CQUdPO0FBQ1AscUJBQXdCO0FBQ3hCLGtDQUFzQztBQUV0QyxNQUFNLHNCQUFzQjtBQUM1QixNQUFNLDJCQUEyQjtBQXVEMUIsU0FBUyx5QkFBK0I7QUFDN0MsbUJBQWlCLENBQUMsdUJBQVEsZ0JBQWdCLEdBQUcsdUJBQVEsY0FBYyxJQUFJLENBQUM7QUFDMUU7QUFPTyxTQUFTLHFCQUFzQztBQUNwRCxTQUFPO0FBQUEsSUFDTCxTQUFTO0FBQUEsSUFDVCxRQUFRO0FBQUEsSUFDUixLQUFLO0FBQUEsSUFDTCxLQUFLO0FBQUEsRUFDUDtBQUNGO0FBU08sU0FBUyxZQUFZLFdBQW1CLGVBQWUsR0FBYTtBQUN6RSxRQUFNLE1BQU0sR0FBRyxTQUFTLElBQUksT0FBTyxZQUFZLENBQUM7QUFDaEQsUUFBTSxtQkFBZSxtREFBc0IsYUFBYSxvQkFBSSxJQUFzQixDQUFDLEVBQUU7QUFDckYsTUFBSSxhQUFhLGFBQWEsSUFBSSxHQUFHO0FBQ3JDLE1BQUksQ0FBQyxZQUFZO0FBQ2YsaUJBQWEsMEJBQTBCLEVBQUUsU0FBUztBQUNsRCxlQUFXLE1BQU0sQ0FBQyxZQUFvQixlQUFnQztBQUNwRSxvQkFBYztBQUFBLFFBQ1o7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGLENBQUM7QUFBQSxJQUNIO0FBRUEsaUJBQWEsSUFBSSxLQUFLLFVBQVU7QUFBQSxFQUNsQztBQUVBLFNBQU87QUFDVDtBQVFPLFNBQVMsZUFBZSxXQUE2QjtBQUMxRCxTQUFPLFlBQVksR0FBRyx1QkFBUSxvQkFBb0IsR0FBRyx1QkFBUSxjQUFjLElBQUksU0FBUyxFQUFFO0FBQzVGO0FBT08sU0FBUyxvQkFBb0IsUUFBeUM7QUFDM0UsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFDSixNQUFJLENBQUMsdUJBQVEsdUJBQXVCO0FBQ2xDLHFCQUFpQixTQUFTLEdBQUcsVUFBVTtBQUN2QztBQUFBLEVBQ0Y7QUFFQSxtQkFBaUIsU0FBUyxHQUFHLFlBQVksbUNBQW1DLG9CQUFvQixVQUFVLENBQUM7QUFDN0c7QUFPTyxTQUFTLHdCQUF3QixVQUF3QjtBQUM5RCxRQUFNLFlBQVksMEJBQTBCLEVBQUUsUUFBUSxRQUFRO0FBQzlELFFBQU0sUUFBUSxZQUFZLFlBQVk7QUFDdEMsUUFBTSxlQUFlLFlBQVksWUFBWTtBQUM3QyxRQUFNLGFBQWEsY0FBYztBQUNqQyxnQkFBYyxRQUFRO0FBQ3RCLGNBQVksUUFBUTtBQUFBLElBQ2xCLDZCQUE2QixRQUFRLFFBQVEsS0FBSyxJQUFJLHFCQUFxQixXQUFXLFlBQVksT0FBTyxDQUFDO0FBQUEsRUFDNUc7QUFDQSxnQkFBYyxVQUFVO0FBQzFCO0FBRUEsU0FBUyxrQkFBa0IsWUFBcUM7QUFDOUQsUUFBTSxNQUFNLElBQUksSUFBSSxjQUFjLENBQUM7QUFDbkMsYUFBVyxhQUFhLFFBQVEsVUFBVSxHQUFHO0FBQzNDLFFBQUksVUFBVSxXQUFXLHdCQUF3QixHQUFHO0FBQ2xEO0FBQUEsSUFDRjtBQUNBLFVBQU0sbUJBQW1CLDJCQUEyQjtBQUNwRCxRQUFJLE9BQU8sU0FBUztBQUNwQixRQUFJLElBQUksZ0JBQWdCO0FBQUEsRUFDMUI7QUFDQSxnQkFBYyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQ3hCO0FBRUEsU0FBUyxpQkFBaUIsWUFBcUM7QUFDN0QsUUFBTSxNQUFNLElBQUksSUFBSSxjQUFjLENBQUM7QUFDbkMsYUFBVyxhQUFhLFFBQVEsVUFBVSxHQUFHO0FBQzNDLFFBQUksQ0FBQyxVQUFVLFdBQVcsd0JBQXdCLEdBQUc7QUFDbkQsWUFBTSxtQkFBbUIsMkJBQTJCO0FBQ3BELFVBQUksT0FBTyxnQkFBZ0I7QUFBQSxJQUM3QjtBQUNBLFFBQUksSUFBSSxTQUFTO0FBQUEsRUFDbkI7QUFDQSxnQkFBYyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQ3hCO0FBRUEsU0FBUyxxQkFBcUIsUUFBd0I7QUFDcEQsU0FBTyx1QkFBUSxnQkFBZ0IsUUFBUSx1QkFBUSxhQUFhLEdBQUcsTUFBTSxNQUFNO0FBQzdFO0FBRUEsU0FBUyxnQkFBMEI7QUFDakMsU0FBTyxRQUFRLDBCQUEwQixFQUFFLEtBQUssS0FBSyxFQUFFO0FBQ3pEO0FBRUEsU0FBUyw0QkFBMEM7QUFDakQsYUFBTyxtREFBc0IsU0FBUyxhQUFBQSxPQUFLLEVBQUU7QUFDL0M7QUFFQSxTQUFTLGNBQWMsUUFBbUM7QUFDeEQsUUFBTTtBQUFBLElBQ0o7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxFQUNGLElBQUk7QUFDSixNQUFJLENBQUMsMEJBQTBCLEVBQUUsUUFBUSxTQUFTLEdBQUc7QUFDbkQ7QUFBQSxFQUNGO0FBRUEsTUFBSSxDQUFDLHVCQUFRLHVCQUF1QjtBQUVsQyxZQUFRLE1BQU0sU0FBUyxHQUFHLFVBQVU7QUFDcEM7QUFBQSxFQUNGO0FBWUEsUUFBTSxxQkFBcUI7QUFHM0IsVUFBUSxNQUFNLFNBQVMsR0FBRyxZQUFZLGtDQUFrQyx3QkFBb0IsNEJBQWMscUJBQXFCLFlBQVksQ0FBQyxDQUFDO0FBQy9JO0FBRUEsU0FBUyxvQkFBb0IsWUFBMkM7QUFDdEUsU0FBTyxJQUFJLG1DQUFzQjtBQUFBLElBQy9CLE9BQU87QUFBQSxJQUNQLFNBQVMsNkNBQTZDLHFCQUFxQixFQUFFLENBQUM7QUFBQSxJQUM5RTtBQUFBLEVBQ0YsQ0FBQztBQUNIO0FBT0EsU0FBUyxjQUFjLFlBQXFDO0FBQzFELDRCQUEwQixFQUFFLE9BQU8sUUFBUSxVQUFVLEVBQUUsS0FBSyxtQkFBbUIsQ0FBQztBQUNsRjtBQUVBLFNBQVMsUUFBUSxZQUF5QztBQUN4RCxTQUFPLE9BQU8sZUFBZSxXQUFXLFdBQVcsTUFBTSxtQkFBbUIsRUFBRSxPQUFPLE9BQU8sSUFBSSxXQUFXLFFBQVEsQ0FBQyxjQUFjLFFBQVEsU0FBUyxDQUFDO0FBQ3RKOyIsCiAgIm5hbWVzIjogWyJkZWJ1ZyJdCn0K
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWJ1Zy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBmaWxlXG4gKlxuICogQ29udGFpbnMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIGRlYnVnZ2luZy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IERlYnVnZ2VyIH0gZnJvbSAnZGVidWcnO1xuXG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuXG5pbXBvcnQgdHlwZSB7IERlYnVnQ29udHJvbGxlciB9IGZyb20gJy4vZGVidWctY29udHJvbGxlci50cyc7XG5cbmltcG9ydCB7XG4gIEN1c3RvbVN0YWNrVHJhY2VFcnJvcixcbiAgZ2V0U3RhY2tUcmFjZVxufSBmcm9tICcuL2Vycm9yLnRzJztcbmltcG9ydCB7IExpYnJhcnkgfSBmcm9tICcuL2xpYnJhcnkudHMnO1xuaW1wb3J0IHsgZ2V0VHlwZXNjcmlwdExpYlN0YXRlIH0gZnJvbSAnLi90eXBlc2NyaXB0LWxpYi1zdGF0ZS50cyc7XG5cbmNvbnN0IE5BTUVTUEFDRV9TRVBBUkFUT1IgPSAnLCc7XG5jb25zdCBORUdBVEVEX05BTUVTUEFDRV9QUkVGSVggPSAnLSc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIHByaW50V2l0aFN0YWNrVHJhY2V9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByaW50V2l0aFN0YWNrVHJhY2VQYXJhbXMge1xuICAvKipcbiAgICogVGhlIGFyZ3VtZW50cyB0byBwcmludC5cbiAgICovXG4gIHJlYWRvbmx5ICRhcmd1bWVudHM6IHVua25vd25bXTtcblxuICAvKipcbiAgICogVGhlIGRlYnVnZ2VyIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVidWdnZXJJbnN0YW5jZTogRGVidWdnZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBtZXNzYWdlIHRvIHByaW50LlxuICAgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgdHJhY2UgdG8gcHJpbnQuXG4gICAqL1xuICByZWFkb25seSBzdGFja1RyYWNlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGxvZ1dpdGhDYWxsZXJ9LlxuICovXG5pbnRlcmZhY2UgTG9nV2l0aENhbGxlclBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgYXJndW1lbnRzIHRvIHByaW50LlxuICAgKi9cbiAgcmVhZG9ubHkgJGFyZ3VtZW50czogdW5rbm93bltdO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGZyYW1lcyB0byBza2lwIGluIHRoZSBzdGFjayB0cmFjZS5cbiAgICovXG4gIHJlYWRvbmx5IGZyYW1lc1RvU2tpcDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbWVzc2FnZSB0byBwcmludC5cbiAgICovXG4gIHJlYWRvbmx5IG1lc3NhZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWVzcGFjZSBmb3IgdGhlIGRlYnVnZ2VyIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZXNwYWNlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRW5hYmxlcyB0aGUgZGVidWdnZXJzIGZvciB0aGUgbGlicmFyeSAodW5kZXIgaXRzIGRlYnVnIG5hbWVzcGFjZSwgc2VlIGBMaWJyYXJ5LmRlYnVnTmFtZXNwYWNlYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmFibGVMaWJyYXJ5RGVidWdnZXJzKCk6IHZvaWQge1xuICBlbmFibGVOYW1lc3BhY2VzKFtMaWJyYXJ5LmRlYnVnTmFtZXNwYWNlLCBgJHtMaWJyYXJ5LmRlYnVnTmFtZXNwYWNlfToqYF0pO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBkZWJ1ZyBjb250cm9sbGVyLlxuICpcbiAqIEByZXR1cm5zIEEgZGVidWcgY29udHJvbGxlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlYnVnQ29udHJvbGxlcigpOiBEZWJ1Z0NvbnRyb2xsZXIge1xuICByZXR1cm4ge1xuICAgIGRpc2FibGU6IGRpc2FibGVOYW1lc3BhY2VzLFxuICAgIGVuYWJsZTogZW5hYmxlTmFtZXNwYWNlcyxcbiAgICBnZXQ6IGdldE5hbWVzcGFjZXMsXG4gICAgc2V0OiBzZXROYW1lc3BhY2VzXG4gIH07XG59XG5cbi8qKlxuICogUmV0dXJucyBhIGRlYnVnZ2VyIGluc3RhbmNlIHdpdGggYSBsb2cgZnVuY3Rpb24gdGhhdCBpbmNsdWRlcyB0aGUgY2FsbGVyJ3MgZmlsZSBuYW1lIGFuZCBsaW5lIG51bWJlci5cbiAqXG4gKiBAcGFyYW0gbmFtZXNwYWNlIC0gVGhlIG5hbWVzcGFjZSBmb3IgdGhlIGRlYnVnZ2VyIGluc3RhbmNlLlxuICogQHBhcmFtIGZyYW1lc1RvU2tpcCAtIFRoZSBudW1iZXIgb2YgZnJhbWVzIHRvIHNraXAgaW4gdGhlIHN0YWNrIHRyYWNlLlxuICogQHJldHVybnMgQSBkZWJ1Z2dlciBpbnN0YW5jZSB3aXRoIGEgbG9nIGZ1bmN0aW9uIHRoYXQgaW5jbHVkZXMgdGhlIGNhbGxlcidzIGZpbGUgbmFtZSBhbmQgbGluZSBudW1iZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWJ1Z2dlcihuYW1lc3BhY2U6IHN0cmluZywgZnJhbWVzVG9Ta2lwID0gMCk6IERlYnVnZ2VyIHtcbiAgY29uc3Qga2V5ID0gYCR7bmFtZXNwYWNlfToke1N0cmluZyhmcmFtZXNUb1NraXApfWA7XG4gIGNvbnN0IGRlYnVnZ2Vyc01hcCA9IGdldFR5cGVzY3JpcHRMaWJTdGF0ZSgnZGVidWdnZXJzJywgbmV3IE1hcDxzdHJpbmcsIERlYnVnZ2VyPigpKS52YWx1ZTtcbiAgbGV0IGRlYnVnZ2VyRXggPSBkZWJ1Z2dlcnNNYXAuZ2V0KGtleSk7XG4gIGlmICghZGVidWdnZXJFeCkge1xuICAgIGRlYnVnZ2VyRXggPSBnZXRTaGFyZWREZWJ1Z0xpYkluc3RhbmNlKCkobmFtZXNwYWNlKTtcbiAgICBkZWJ1Z2dlckV4LmxvZyA9IChtZXNzYWdlOiBzdHJpbmcsIC4uLiRhcmd1bWVudHM6IHVua25vd25bXSk6IHZvaWQgPT4ge1xuICAgICAgbG9nV2l0aENhbGxlcih7XG4gICAgICAgICRhcmd1bWVudHMsXG4gICAgICAgIGZyYW1lc1RvU2tpcCxcbiAgICAgICAgbWVzc2FnZSxcbiAgICAgICAgbmFtZXNwYWNlXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgZGVidWdnZXJzTWFwLnNldChrZXksIGRlYnVnZ2VyRXgpO1xuICB9XG5cbiAgcmV0dXJuIGRlYnVnZ2VyRXg7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIGRlYnVnZ2VyIGluc3RhbmNlIGZvciB0aGUgbGlicmFyeSAodW5kZXIgaXRzIGRlYnVnIG5hbWVzcGFjZSwgc2VlIGBMaWJyYXJ5LmRlYnVnTmFtZXNwYWNlYCkuXG4gKlxuICogQHBhcmFtIG5hbWVzcGFjZSAtIFRoZSBuYW1lc3BhY2UgZm9yIHRoZSBkZWJ1Z2dlciBpbnN0YW5jZS5cbiAqIEByZXR1cm5zIEEgZGVidWdnZXIgaW5zdGFuY2UgZm9yIHRoZSBsaWJyYXJ5ICh1bmRlciBpdHMgZGVidWcgbmFtZXNwYWNlLCBzZWUgYExpYnJhcnkuZGVidWdOYW1lc3BhY2VgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExpYkRlYnVnZ2VyKG5hbWVzcGFjZTogc3RyaW5nKTogRGVidWdnZXIge1xuICByZXR1cm4gZ2V0RGVidWdnZXIoYCR7TGlicmFyeS5kZWJ1Z1ByZWZpeE5hbWVzcGFjZX0ke0xpYnJhcnkuZGVidWdOYW1lc3BhY2V9OiR7bmFtZXNwYWNlfWApO1xufVxuXG4vKipcbiAqIFByaW50cyBhIG1lc3NhZ2Ugd2l0aCBhIHN0YWNrIHRyYWNlLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgcHJpbnRpbmcgdGhlIG1lc3NhZ2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmludFdpdGhTdGFja1RyYWNlKHBhcmFtczogUHJpbnRXaXRoU3RhY2tUcmFjZVBhcmFtcyk6IHZvaWQge1xuICBjb25zdCB7XG4gICAgJGFyZ3VtZW50cyxcbiAgICBkZWJ1Z2dlckluc3RhbmNlLFxuICAgIG1lc3NhZ2UsXG4gICAgc3RhY2tUcmFjZVxuICB9ID0gcGFyYW1zO1xuICBpZiAoIUxpYnJhcnkuc2hvdWxkUHJpbnRTdGFja1RyYWNlKSB7XG4gICAgZGVidWdnZXJJbnN0YW5jZShtZXNzYWdlLCAuLi4kYXJndW1lbnRzKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBkZWJ1Z2dlckluc3RhbmNlKG1lc3NhZ2UsIC4uLiRhcmd1bWVudHMsICdcXG5cXG4tLS1cXG5Db250ZXh0IHN0YWNrIHRyYWNlOlxcbicsIG1ha2VTdGFja1RyYWNlRXJyb3Ioc3RhY2tUcmFjZSkpO1xufVxuXG4vKipcbiAqIFNob3dzIGFuIGluaXRpYWwgZGVidWcgbWVzc2FnZS5cbiAqXG4gKiBAcGFyYW0gcGx1Z2luSWQgLSBUaGUgcGx1Z2luIElELlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2hvd0luaXRpYWxEZWJ1Z01lc3NhZ2UocGx1Z2luSWQ6IHN0cmluZyk6IHZvaWQge1xuICBjb25zdCBpc0VuYWJsZWQgPSBnZXRTaGFyZWREZWJ1Z0xpYkluc3RhbmNlKCkuZW5hYmxlZChwbHVnaW5JZCk7XG4gIGNvbnN0IHN0YXRlID0gaXNFbmFibGVkID8gJ2VuYWJsZWQnIDogJ2Rpc2FibGVkJztcbiAgY29uc3QgY2hhbmdlQWN0aW9uID0gaXNFbmFibGVkID8gJ2Rpc2FibGUnIDogJ2VuYWJsZSc7XG4gIGNvbnN0IG5hbWVzcGFjZXMgPSBnZXROYW1lc3BhY2VzKCk7XG4gIHNldE5hbWVzcGFjZXMocGx1Z2luSWQpO1xuICBnZXREZWJ1Z2dlcihwbHVnaW5JZCkoXG4gICAgYERlYnVnIG1lc3NhZ2VzIGZvciBwbHVnaW4gJHtwbHVnaW5JZH0gYXJlICR7c3RhdGV9LiR7Zm9ybWF0R3VpZGVSZWZlcmVuY2UoYCBob3cgdG8gJHtjaGFuZ2VBY3Rpb259IHRoZW1gKX1gXG4gICk7XG4gIHNldE5hbWVzcGFjZXMobmFtZXNwYWNlcyk7XG59XG5cbmZ1bmN0aW9uIGRpc2FibGVOYW1lc3BhY2VzKG5hbWVzcGFjZXM6IHN0cmluZyB8IHN0cmluZ1tdKTogdm9pZCB7XG4gIGNvbnN0IHNldCA9IG5ldyBTZXQoZ2V0TmFtZXNwYWNlcygpKTtcbiAgZm9yIChjb25zdCBuYW1lc3BhY2Ugb2YgdG9BcnJheShuYW1lc3BhY2VzKSkge1xuICAgIGlmIChuYW1lc3BhY2Uuc3RhcnRzV2l0aChORUdBVEVEX05BTUVTUEFDRV9QUkVGSVgpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG4gICAgY29uc3QgbmVnYXRlZE5hbWVzcGFjZSA9IE5FR0FURURfTkFNRVNQQUNFX1BSRUZJWCArIG5hbWVzcGFjZTtcbiAgICBzZXQuZGVsZXRlKG5hbWVzcGFjZSk7XG4gICAgc2V0LmFkZChuZWdhdGVkTmFtZXNwYWNlKTtcbiAgfVxuICBzZXROYW1lc3BhY2VzKFsuLi5zZXRdKTtcbn1cblxuZnVuY3Rpb24gZW5hYmxlTmFtZXNwYWNlcyhuYW1lc3BhY2VzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xuICBjb25zdCBzZXQgPSBuZXcgU2V0KGdldE5hbWVzcGFjZXMoKSk7XG4gIGZvciAoY29uc3QgbmFtZXNwYWNlIG9mIHRvQXJyYXkobmFtZXNwYWNlcykpIHtcbiAgICBpZiAoIW5hbWVzcGFjZS5zdGFydHNXaXRoKE5FR0FURURfTkFNRVNQQUNFX1BSRUZJWCkpIHtcbiAgICAgIGNvbnN0IG5lZ2F0ZWROYW1lc3BhY2UgPSBORUdBVEVEX05BTUVTUEFDRV9QUkVGSVggKyBuYW1lc3BhY2U7XG4gICAgICBzZXQuZGVsZXRlKG5lZ2F0ZWROYW1lc3BhY2UpO1xuICAgIH1cbiAgICBzZXQuYWRkKG5hbWVzcGFjZSk7XG4gIH1cbiAgc2V0TmFtZXNwYWNlcyhbLi4uc2V0XSk7XG59XG5cbmZ1bmN0aW9uIGZvcm1hdEd1aWRlUmVmZXJlbmNlKHN1ZmZpeDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIExpYnJhcnkuZGVidWdHdWlkZVVybCA/IGAgU2VlICR7TGlicmFyeS5kZWJ1Z0d1aWRlVXJsfSR7c3VmZml4fS5gIDogJyc7XG59XG5cbmZ1bmN0aW9uIGdldE5hbWVzcGFjZXMoKTogc3RyaW5nW10ge1xuICByZXR1cm4gdG9BcnJheShnZXRTaGFyZWREZWJ1Z0xpYkluc3RhbmNlKCkubG9hZCgpID8/ICcnKTtcbn1cblxuZnVuY3Rpb24gZ2V0U2hhcmVkRGVidWdMaWJJbnN0YW5jZSgpOiB0eXBlb2YgZGVidWcge1xuICByZXR1cm4gZ2V0VHlwZXNjcmlwdExpYlN0YXRlKCdkZWJ1ZycsIGRlYnVnKS52YWx1ZTtcbn1cblxuZnVuY3Rpb24gbG9nV2l0aENhbGxlcihwYXJhbXM6IExvZ1dpdGhDYWxsZXJQYXJhbXMpOiB2b2lkIHtcbiAgY29uc3Qge1xuICAgICRhcmd1bWVudHMsXG4gICAgZnJhbWVzVG9Ta2lwLFxuICAgIG1lc3NhZ2UsXG4gICAgbmFtZXNwYWNlXG4gIH0gPSBwYXJhbXM7XG4gIGlmICghZ2V0U2hhcmVkRGVidWdMaWJJbnN0YW5jZSgpLmVuYWJsZWQobmFtZXNwYWNlKSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmICghTGlicmFyeS5zaG91bGRQcmludFN0YWNrVHJhY2UpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZSAtLSBWYWxpZCB1c2FnZS5cbiAgICBjb25zb2xlLmRlYnVnKG1lc3NhZ2UsIC4uLiRhcmd1bWVudHMpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgY2FsbGVyIGlzIDMgZnJhbWVzIGFib3ZlIHRoaXMgb25lLCBiZWNhdXNlIHRoZSBjYWxsIHN0YWNrIGlzIGFzIGZvbGxvd3M6XG4gICAqXG4gICAqIDA6IGxvZ1dpdGhDYWxsZXJcbiAgICogMTogZGVidWdJbnN0YW5jZS5sb2dcbiAgICogMjogZGVidWdcbiAgICogMzogZnVuY3Rpb25OYW1lICh0aGUgY2FsbGVyKVxuICAgKlxuICAgKiBgZ2V0U3RhY2tUcmFjZWAgZHJvcHMgaXRzIG93biBmcmFtZSBhbmQsIG9uIGFuIGVuZ2luZSB0aGF0IHdyaXRlcyBvbmUsIHRoZSBgRXJyb3JgIGhlYWRlciBsaW5lLlxuICAgKi9cbiAgY29uc3QgQ0FMTEVSX0ZSQU1FX0lOREVYID0gMztcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZSAtLSBWYWxpZCB1c2FnZS5cbiAgY29uc29sZS5kZWJ1ZyhtZXNzYWdlLCAuLi4kYXJndW1lbnRzLCAnXFxuXFxuLS0tXFxuTG9nZ2VyIHN0YWNrIHRyYWNlOlxcbicsIG1ha2VTdGFja1RyYWNlRXJyb3IoZ2V0U3RhY2tUcmFjZShDQUxMRVJfRlJBTUVfSU5ERVggKyBmcmFtZXNUb1NraXApKSk7XG59XG5cbmZ1bmN0aW9uIG1ha2VTdGFja1RyYWNlRXJyb3Ioc3RhY2tUcmFjZTogc3RyaW5nKTogQ3VzdG9tU3RhY2tUcmFjZUVycm9yIHtcbiAgcmV0dXJuIG5ldyBDdXN0b21TdGFja1RyYWNlRXJyb3Ioe1xuICAgIGNhdXNlOiB1bmRlZmluZWQsXG4gICAgbWVzc2FnZTogYERlYnVnIG1vZGU6IGludGVudGlvbmFsIHBsYWNlaG9sZGVyIGVycm9yLiR7Zm9ybWF0R3VpZGVSZWZlcmVuY2UoJycpfWAsXG4gICAgc3RhY2tUcmFjZVxuICB9KTtcbn1cblxuLyoqXG4gKiBTZXRzIHRoZSBuYW1lc3BhY2VzIHRvIGVuYWJsZS5cbiAqXG4gKiBAcGFyYW0gbmFtZXNwYWNlcyAtIFRoZSBuYW1lc3BhY2VzIHRvIGVuYWJsZS5cbiAqL1xuZnVuY3Rpb24gc2V0TmFtZXNwYWNlcyhuYW1lc3BhY2VzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xuICBnZXRTaGFyZWREZWJ1Z0xpYkluc3RhbmNlKCkuZW5hYmxlKHRvQXJyYXkobmFtZXNwYWNlcykuam9pbihOQU1FU1BBQ0VfU0VQQVJBVE9SKSk7XG59XG5cbmZ1bmN0aW9uIHRvQXJyYXkobmFtZXNwYWNlczogc3RyaW5nIHwgc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gIHJldHVybiB0eXBlb2YgbmFtZXNwYWNlcyA9PT0gJ3N0cmluZycgPyBuYW1lc3BhY2VzLnNwbGl0KE5BTUVTUEFDRV9TRVBBUkFUT1IpLmZpbHRlcihCb29sZWFuKSA6IG5hbWVzcGFjZXMuZmxhdE1hcCgobmFtZXNwYWNlKSA9PiB0b0FycmF5KG5hbWVzcGFjZSkpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVFBLG1CQUFrQjtBQUlsQixtQkFHTztBQUNQLHFCQUF3QjtBQUN4QixrQ0FBc0M7QUFFdEMsTUFBTSxzQkFBc0I7QUFDNUIsTUFBTSwyQkFBMkI7QUF1RDFCLFNBQVMseUJBQStCO0FBQzdDLG1CQUFpQixDQUFDLHVCQUFRLGdCQUFnQixHQUFHLHVCQUFRLGNBQWMsSUFBSSxDQUFDO0FBQzFFO0FBT08sU0FBUyxxQkFBc0M7QUFDcEQsU0FBTztBQUFBLElBQ0wsU0FBUztBQUFBLElBQ1QsUUFBUTtBQUFBLElBQ1IsS0FBSztBQUFBLElBQ0wsS0FBSztBQUFBLEVBQ1A7QUFDRjtBQVNPLFNBQVMsWUFBWSxXQUFtQixlQUFlLEdBQWE7QUFDekUsUUFBTSxNQUFNLEdBQUcsU0FBUyxJQUFJLE9BQU8sWUFBWSxDQUFDO0FBQ2hELFFBQU0sbUJBQWUsbURBQXNCLGFBQWEsb0JBQUksSUFBc0IsQ0FBQyxFQUFFO0FBQ3JGLE1BQUksYUFBYSxhQUFhLElBQUksR0FBRztBQUNyQyxNQUFJLENBQUMsWUFBWTtBQUNmLGlCQUFhLDBCQUEwQixFQUFFLFNBQVM7QUFDbEQsZUFBVyxNQUFNLENBQUMsWUFBb0IsZUFBZ0M7QUFDcEUsb0JBQWM7QUFBQSxRQUNaO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsTUFDRixDQUFDO0FBQUEsSUFDSDtBQUVBLGlCQUFhLElBQUksS0FBSyxVQUFVO0FBQUEsRUFDbEM7QUFFQSxTQUFPO0FBQ1Q7QUFRTyxTQUFTLGVBQWUsV0FBNkI7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
|
package/dist/lib/cjs/debug.d.cts
CHANGED
|
@@ -3,64 +3,6 @@ THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
|
|
|
3
3
|
if you want to view the source, please visit the github repository of this plugin
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
(function () {
|
|
7
|
-
function ensureDisposeSymbols(symbolConstructor = Symbol) {
|
|
8
|
-
symbolConstructor.asyncDispose ??= symbolConstructor.for('Symbol.asyncDispose');
|
|
9
|
-
symbolConstructor.dispose ??= symbolConstructor.for('Symbol.dispose');
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
function ensureBrowserProcess() {
|
|
13
|
-
const browserProcess = {
|
|
14
|
-
browser: true,
|
|
15
|
-
cwd() {
|
|
16
|
-
return '/';
|
|
17
|
-
},
|
|
18
|
-
env: {},
|
|
19
|
-
platform: 'android'
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
// eslint-disable-next-line obsidianmd/no-global-this, unicorn/no-unnecessary-global-this -- Must stay `globalThis`-qualified: in the emitted banner a bare `process` is a free identifier, so reading it where the host has none throws a ReferenceError instead of yielding `undefined`. That is the very case this function exists to handle.
|
|
23
|
-
const existingProcess = globalThis.process;
|
|
24
|
-
|
|
25
|
-
if (!existingProcess) {
|
|
26
|
-
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
27
|
-
globalThis.process = browserProcess;
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
if (existingProcess.versions?.node) {
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const existingProcessRecord = existingProcess;
|
|
36
|
-
|
|
37
|
-
for (const [key, value] of Object.entries(browserProcess)) {
|
|
38
|
-
existingProcessRecord[key] ??= value;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
existingProcessRecord['browser'] = true;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
function keepName($unknown) {
|
|
45
|
-
return $unknown;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
(function initCjs() {
|
|
49
|
-
// eslint-disable-next-line obsidianmd/no-global-this -- Actively use globalThis.
|
|
50
|
-
const globalThisRecord = globalThis;
|
|
51
|
-
ensureDisposeSymbols();
|
|
52
|
-
globalThisRecord['__name'] ??= keepName;
|
|
53
|
-
globalThisRecord['__extractDefault'] ??= extractDefault;
|
|
54
|
-
|
|
55
|
-
ensureBrowserProcess();
|
|
56
|
-
|
|
57
|
-
// eslint-disable-next-line unicorn/consistent-function-scoping -- Serialized with initCjs into the banner; at module scope it would be left out of it.
|
|
58
|
-
function extractDefault(module) {
|
|
59
|
-
return module && module.__esModule && 'default' in module ? module.default : module;
|
|
60
|
-
}
|
|
61
|
-
})();
|
|
62
|
-
})();
|
|
63
|
-
|
|
64
6
|
"use strict";
|
|
65
7
|
var __defProp = Object.defineProperty;
|
|
66
8
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
@@ -212,4 +154,4 @@ function readEntryData(archive, entry) {
|
|
|
212
154
|
0 && (module.exports = {
|
|
213
155
|
extractZipArchive
|
|
214
156
|
});
|
|
215
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2Rlc2t0b3AtemlwLWV4dHJhY3Rvci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEV4dHJhY3RzIGEgWklQIGFyY2hpdmUgdG8gZGlzayB1c2luZyBvbmx5IE5vZGUncyBgemxpYmAgXHUyMDE0IHdpdGggbm8gdGhpcmQtcGFydHkgdW56aXAgZGVwZW5kZW5jeS5cbiAqXG4gKiBJdCBleGlzdHMgZm9yIG9uZSBtZWFzdXJlZCByZWFzb24uIFRoZSBkZXBlbmRlbmN5IGl0IHJlcGxhY2VkIG9uIHRoaXMgcGF0aCwgYGFkbS16aXBgLCBidW5kbGVkXG4gKiByb3VnaGx5IDM0IEtCIG9mIG1pbmlmaWVkIEphdmFTY3JpcHQgaW50byBFVkVSWSBPYnNpZGlhbiBwbHVnaW4gYnVpbHQgd2l0aCB0aGlzIGxpYnJhcnk6IGEgcGx1Z2luXG4gKiBzaGlwcyBhIHNpbmdsZSBDSlMgYG1haW4uanNgLCBlc2J1aWxkIGhhcyBubyBjb2RlIHNwbGl0dGluZyB0byBwdXQgYSBkZXBlbmRlbmN5IGJlaGluZCwgYW5kIGFcbiAqIGBhd2FpdCBpbXBvcnQoKWAgb25seSBkZWZlcnMgZXZhbHVhdGlvbiBcdTIwMTQgdGhlIG1vZHVsZSBib2R5IGlzIGlubGluZWQgZWl0aGVyIHdheS4gYG5vZGU6emxpYmAgaXNcbiAqIGFscmVhZHkgYW4gZXNidWlsZCBleHRlcm5hbCwgc28gdGhlIHNhbWUgd29yayBub3cgY29zdHMgYSBwbHVnaW4gYnVuZGxlIG5vdGhpbmcgYXQgYWxsLiBBcmNoaXZlcyBhcmVcbiAqIFdSSVRURU4gd2l0aCBgZmZsYXRlYCBhdCByZWxlYXNlIHRpbWUgKGBzY3JpcHQtdXRpbHMvZGVtby12YXVsdC50c2ApLCB3aGljaCBpcyBOb2RlLXNpZGUgdG9vbGluZyBhbmRcbiAqIG5ldmVyIHJlYWNoZXMgYSBwbHVnaW4gYnVuZGxlIFx1MjAxNCBhIHRoaXJkLXBhcnR5IHdyaXRlciB0aGVyZSBpcyBhbHNvIHdoYXQga2VlcHMgdGhpcyByZWFkZXIgY2hlY2tlZFxuICogYWdhaW5zdCBhbiBpbXBsZW1lbnRhdGlvbiB0aGF0IGlzIG5vdCBpdHMgb3duLlxuICpcbiAqIERlbGliZXJhdGVseSBuYXJyb3c6IGl0IHJlYWRzIGV4YWN0bHkgd2hhdCB0aGF0IHdyaXRlciBwcm9kdWNlcyBcdTIwMTQgc3RvcmVkIGFuZCBkZWZsYXRlZCBlbnRyaWVzIGluIGFuXG4gKiB1bmVuY3J5cHRlZCBhcmNoaXZlIGJlbG93IHRoZSA0IEdCIC8gNjU1MzUtZW50cnkgWklQNjQgdGhyZXNob2xkIFx1MjAxNCBhbmQgcmFpc2VzIGEgbmFtZWQgZXJyb3IgZm9yXG4gKiBhbnl0aGluZyBlbHNlIHJhdGhlciB0aGFuIGd1ZXNzaW5nIGF0IGl0LiBTaXplcyBhbmQgb2Zmc2V0cyBhcmUgdGFrZW4gZnJvbSB0aGUgY2VudHJhbCBkaXJlY3RvcnksXG4gKiB3aGljaCBpcyBhdXRob3JpdGF0aXZlIGV2ZW4gZm9yIGFyY2hpdmVzIHdyaXR0ZW4gd2l0aCBkYXRhIGRlc2NyaXB0b3JzLlxuICpcbiAqIFRoZSBgbm9kZTpgIGltcG9ydHMgYmVsb3cgYXJlIHNhZmUgdG8gbWVyZWx5IEVWQUxVQVRFIG9uIG1vYmlsZSBcdTIwMTQgYHJlcXVpcmVgIGhhbmRzIGJhY2sgYHVuZGVmaW5lZGBcbiAqIHRoZXJlIGFuZCBub3RoaW5nIHJlYWRzIGl0IGF0IGxvYWQgdGltZSBcdTIwMTQgc28gdGhpcyBtb2R1bGUgY2FuIHNpdCBpbiB0aGUgZ2VuZXJhdGVkIGJhcnJlbHMgd2l0aG91dFxuICogYnJlYWtpbmcgdGhlIGxpYnJhcnkncyBsb2FkIG9uIEFuZHJvaWQuIE9ubHkgdGhlIGNhbGxzIGFyZSBkZXNrdG9wLW9ubHkuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBCdWZmZXIgfSBmcm9tICdub2RlOmJ1ZmZlcic7XG5cbmltcG9ydCB7IGluZmxhdGVSYXdTeW5jIH0gZnJvbSAnbm9kZTp6bGliJztcblxuaW1wb3J0IHtcbiAgZGlybmFtZSxcbiAgam9pblxufSBmcm9tICcuL3BhdGgudHMnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBleHRyYWN0WmlwQXJjaGl2ZX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXh0cmFjdFppcEFyY2hpdmVQYXJhbXMge1xuICAvKipcbiAgICogVGhlIHJhdyBaSVAgYXJjaGl2ZSBieXRlcy5cbiAgICovXG4gIHJlYWRvbmx5IGFyY2hpdmU6IEJ1ZmZlcjtcblxuICAvKipcbiAgICogVGhlIGZpbGUtc3lzdGVtIGltcGxlbWVudGF0aW9uIHRoZSBleHRyYWN0ZWQgZW50cmllcyBhcmUgd3JpdHRlbiB3aXRoLlxuICAgKlxuICAgKiBJbmplY3RlZCByYXRoZXIgdGhhbiBpbXBvcnRlZCBzbyB0aGUgY2FsbGVyIGNob29zZXMgd2hpY2ggYGZzYCB3cml0ZXMgdGhlIGZpbGVzLiBUaGUgZGVtby12YXVsdFxuICAgKiBvcGVuZXIgaGFuZHMgb3ZlciBFbGVjdHJvbidzIGBvcmlnaW5hbC1mc2AgKHNlZSB7QGxpbmsgWmlwRXh0cmFjdGlvbkZpbGVTeXN0ZW19KS5cbiAgICovXG4gIHJlYWRvbmx5IGZpbGVTeXN0ZW06IFppcEV4dHJhY3Rpb25GaWxlU3lzdGVtO1xuXG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0b3J5IHRvIGV4dHJhY3QgaW50by4gQ3JlYXRlZCBpZiBpdCBkb2VzIG5vdCBleGlzdC5cbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldERpcmVjdG9yeTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBzbGljZSBvZiBgbm9kZTpmc2AgZXh0cmFjdGlvbiBuZWVkcy5cbiAqXG4gKiBPbmx5IHRoZSB0d28gV1JJVElORyBjYWxscyBhcmUgcmVxdWlyZWQsIGFuZCB0aGF0IGlzIGRlbGliZXJhdGU6IEVsZWN0cm9uJ3MgYXNhciBsYXllciBpbnRlcmNlcHRzXG4gKiBgZnNgIFJFQURTIChhbmQgYGV4aXN0c1N5bmNgKSBvbiBhbnkgcGF0aCBjb250YWluaW5nIGAuYXNhcmAsIHdoaWNoIGEgZGVtbyB2YXVsdCBtYXkgbGVnaXRpbWF0ZWx5XG4gKiBzaGlwIGFzIGEgcGxhaW4gZmlsZS4gTmV2ZXIgcHJvYmluZyB0aGUgdGFyZ2V0IHdpdGggYSByZWFkIGtlZXBzIHRoYXQgaW50ZXJjZXB0aW9uIG91dCBvZiB0aGVcbiAqIHBpY3R1cmUgZW50aXJlbHksIGFuZCBhIGNhbGxlciB0aGF0IGhhbmRzIG92ZXIgRWxlY3Ryb24ncyBgb3JpZ2luYWwtZnNgIGlzIHNhZmUgZXZlbiBmcm9tIHRoZVxuICogd3JpdGUgc2lkZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBaaXBFeHRyYWN0aW9uRmlsZVN5c3RlbSB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgZGlyZWN0b3J5LCBpbmNsdWRpbmcgYW55IG1pc3NpbmcgcGFyZW50cy5cbiAgICpcbiAgICogQHBhcmFtIHBhdGggLSBUaGUgZGlyZWN0b3J5IHRvIGNyZWF0ZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUge0BsaW5rIFppcEV4dHJhY3Rpb25Na2Rpck9wdGlvbnN9LlxuICAgKiBAcmV0dXJucyBUaGUgZmlyc3QgZGlyZWN0b3J5IGNyZWF0ZWQsIGlmIGFueS5cbiAgICovXG4gIG1rZGlyU3luYzogKHBhdGg6IHN0cmluZywgb3B0aW9uczogWmlwRXh0cmFjdGlvbk1rZGlyT3B0aW9ucykgPT4gc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXcml0ZXMgYSBmaWxlLCBvdmVyd3JpdGluZyBpdCBpZiBpdCBleGlzdHMuXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIC0gVGhlIGZpbGUgdG8gd3JpdGUuXG4gICAqIEBwYXJhbSBkYXRhIC0gVGhlIGJ5dGVzIHRvIHdyaXRlLlxuICAgKi9cbiAgd3JpdGVGaWxlU3luYzogKHBhdGg6IHN0cmluZywgZGF0YTogQnVmZmVyKSA9PiB2b2lkO1xufVxuXG4vKipcbiAqIFRoZSBvcHRpb25zIHtAbGluayBaaXBFeHRyYWN0aW9uRmlsZVN5c3RlbS5ta2RpclN5bmN9IGlzIGFsd2F5cyBjYWxsZWQgd2l0aC5cbiAqXG4gKiBFeHRyYWN0aW9uIG5ldmVyIHByb2JlcyBmb3IgYW4gZXhpc3RpbmcgZGlyZWN0b3J5LCBzbyBldmVyeSBjYWxsIGhhcyB0byBjcmVhdGUgdGhlIG1pc3NpbmcgcGFyZW50c1xuICogaXRzZWxmIGFuZCB0b2xlcmF0ZSBhIGRpcmVjdG9yeSB0aGF0IGlzIGFscmVhZHkgdGhlcmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgWmlwRXh0cmFjdGlvbk1rZGlyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBbHdheXMgYHRydWVgLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVjdXJzaXZlOiB0cnVlO1xufVxuXG5pbnRlcmZhY2UgWmlwRW50cnkge1xuICByZWFkb25seSBjb21wcmVzc2VkU2l6ZTogbnVtYmVyO1xuICByZWFkb25seSBjb21wcmVzc2lvbk1ldGhvZDogbnVtYmVyO1xuICByZWFkb25seSBsb2NhbEhlYWRlck9mZnNldDogbnVtYmVyO1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG59XG5cbmNvbnN0IEVORF9PRl9DRU5UUkFMX0RJUkVDVE9SWV9TSUdOQVRVUkUgPSAweDA2XzA1XzRCXzUwO1xuY29uc3QgQ0VOVFJBTF9ESVJFQ1RPUllfSEVBREVSX1NJR05BVFVSRSA9IDB4MDJfMDFfNEJfNTA7XG5jb25zdCBMT0NBTF9GSUxFX0hFQURFUl9TSUdOQVRVUkUgPSAweDA0XzAzXzRCXzUwO1xuXG5jb25zdCBFTkRfT0ZfQ0VOVFJBTF9ESVJFQ1RPUllfU0laRSA9IDIyO1xuY29uc3QgTUFYX0FSQ0hJVkVfQ09NTUVOVF9MRU5HVEggPSA2NV81MzU7XG5cbi8vIEEgY291bnQgb3Igb2Zmc2V0IHNhdHVyYXRlZCB0byBhbGwtb25lcyBtZWFucyB0aGUgcmVhbCB2YWx1ZSBsaXZlcyBpbiBhIFpJUDY0IHJlY29yZCB0aGlzIHJlYWRlclxuLy8gZG9lcyBub3QgaW1wbGVtZW50LCBzbyB0aGUgZmllbGQgbXVzdCBuZXZlciBiZSByZWFkIGF0IGZhY2UgdmFsdWUuXG5jb25zdCBTQVRVUkFURURfVUlOVF8xNiA9IDY1XzUzNTtcbmNvbnN0IFNBVFVSQVRFRF9VSU5UXzMyID0gNF8yOTRfOTY3XzI5NTtcblxuLy8gRmllbGQgb2Zmc2V0cyB3aXRoaW4gdGhlIGVuZC1vZi1jZW50cmFsLWRpcmVjdG9yeSByZWNvcmQuXG5jb25zdCBBUkNISVZFX0VOVFJZX0NPVU5UX09GRlNFVCA9IDEwO1xuY29uc3QgQ0VOVFJBTF9ESVJFQ1RPUllfU1RBUlRfT0ZGU0VUID0gMTY7XG5cbi8vIEZpZWxkIG9mZnNldHMgd2l0aGluIGEgY2VudHJhbC1kaXJlY3RvcnkgaGVhZGVyLlxuY29uc3QgQ0VOVFJBTF9ESVJFQ1RPUllfRkxBR1NfT0ZGU0VUID0gODtcbmNvbnN0IENFTlRSQUxfRElSRUNUT1JZX0NPTVBSRVNTSU9OX01FVEhPRF9PRkZTRVQgPSAxMDtcbmNvbnN0IENFTlRSQUxfRElSRUNUT1JZX0NPTVBSRVNTRURfU0laRV9PRkZTRVQgPSAyMDtcbmNvbnN0IENFTlRSQUxfRElSRUNUT1JZX05BTUVfTEVOR1RIX09GRlNFVCA9IDI4O1xuY29uc3QgQ0VOVFJBTF9ESVJFQ1RPUllfRVhUUkFfTEVOR1RIX09GRlNFVCA9IDMwO1xuY29uc3QgQ0VOVFJBTF9ESVJFQ1RPUllfQ09NTUVOVF9MRU5HVEhfT0ZGU0VUID0gMzI7XG5jb25zdCBDRU5UUkFMX0RJUkVDVE9SWV9MT0NBTF9IRUFERVJfT0ZGU0VUX09GRlNFVCA9IDQyO1xuY29uc3QgQ0VOVFJBTF9ESVJFQ1RPUllfSEVBREVSX1NJWkUgPSA0NjtcblxuLy8gRmllbGQgb2Zmc2V0cyB3aXRoaW4gYSBsb2NhbCBmaWxlIGhlYWRlci5cbmNvbnN0IExPQ0FMX0hFQURFUl9OQU1FX0xFTkdUSF9PRkZTRVQgPSAyNjtcbmNvbnN0IExPQ0FMX0hFQURFUl9FWFRSQV9MRU5HVEhfT0ZGU0VUID0gMjg7XG5jb25zdCBMT0NBTF9IRUFERVJfU0laRSA9IDMwO1xuXG5jb25zdCBDT01QUkVTU0lPTl9NRVRIT0RfU1RPUkVEID0gMDtcbmNvbnN0IENPTVBSRVNTSU9OX01FVEhPRF9ERUZMQVRFRCA9IDg7XG5cbi8vIEJpdCAwIG9mIHRoZSBnZW5lcmFsLXB1cnBvc2UgZmxhZ3MgbWFya3MgYW4gZW5jcnlwdGVkIGVudHJ5LCBhbmQgaXQgaXMgdGhlIGxvd2VzdCBiaXQgXHUyMDE0IHNvIHRoZVxuLy8gcmVtYWluZGVyIHRlc3RzIGl0IHdpdGhvdXQgcmVhY2hpbmcgZm9yIGEgYml0d2lzZSBvcGVyYXRvci5cbmNvbnN0IEVOQ1JZUFRFRF9GTEFHX0RJVklTT1IgPSAyO1xuXG5jb25zdCBFTlRSWV9OQU1FX1NFUEFSQVRPUiA9ICcvJztcbmNvbnN0IFdJTkRPV1NfRFJJVkVfUFJFRklYX1JFR19FWFAgPSAvXltBLVphLXpdOi87XG5cbi8qKlxuICogRXh0cmFjdHMgZXZlcnkgZW50cnkgb2YgYSBaSVAgYXJjaGl2ZSBpbnRvIGEgZGlyZWN0b3J5LlxuICpcbiAqIERpcmVjdG9yeSBlbnRyaWVzIGJlY29tZSBkaXJlY3RvcmllczsgYSBmaWxlIGVudHJ5J3MgcGFyZW50cyBhcmUgY3JlYXRlZCB3aGV0aGVyIG9yIG5vdCB0aGUgYXJjaGl2ZVxuICogZGVjbGFyZWQgdGhlbS4gQW4gZW50cnkgd2hvc2UgbmFtZSB3b3VsZCBlc2NhcGUge0BsaW5rIEV4dHJhY3RaaXBBcmNoaXZlUGFyYW1zLnRhcmdldERpcmVjdG9yeX0gaXNcbiAqIHJlZnVzZWQgcmF0aGVyIHRoYW4gd3JpdHRlbiAodGhlIFwiemlwIHNsaXBcIiB0cmF2ZXJzYWwpLCBhcyBpcyBhbiBlbmNyeXB0ZWQsIFpJUDY0LCBvclxuICogdW5rbm93bi1jb21wcmVzc2lvbiBhcmNoaXZlLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUge0BsaW5rIEV4dHJhY3RaaXBBcmNoaXZlUGFyYW1zfS5cbiAqIEB0aHJvd3MgQW4ge0BsaW5rIEVycm9yfSBuYW1pbmcgdGhlIHJlYXNvbiB3aGVuIHRoZSBhcmNoaXZlIGNhbm5vdCBiZSByZWFkIGFzIHdyaXR0ZW4uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0WmlwQXJjaGl2ZShwYXJhbXM6IEV4dHJhY3RaaXBBcmNoaXZlUGFyYW1zKTogdm9pZCB7XG4gIGNvbnN0IHtcbiAgICBhcmNoaXZlLFxuICAgIGZpbGVTeXN0ZW0sXG4gICAgdGFyZ2V0RGlyZWN0b3J5XG4gIH0gPSBwYXJhbXM7XG5cbiAgZmlsZVN5c3RlbS5ta2RpclN5bmModGFyZ2V0RGlyZWN0b3J5LCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICBmb3IgKGNvbnN0IGVudHJ5IG9mIHJlYWRDZW50cmFsRGlyZWN0b3J5KGFyY2hpdmUpKSB7XG4gICAgYXNzZXJ0U2FmZUVudHJ5TmFtZShlbnRyeS5uYW1lKTtcblxuICAgIGlmIChlbnRyeS5uYW1lLmVuZHNXaXRoKEVOVFJZX05BTUVfU0VQQVJBVE9SKSkge1xuICAgICAgLy8gTmFtZWQgd2l0aG91dCBpdHMgdHJhaWxpbmcgc2VwYXJhdG9yLCBzbyB0aGUgY3JlYXRlZCBwYXRoIHJlYWRzIHRoZSBzYW1lIGFzIGV2ZXJ5IG90aGVyIG9uZS5cbiAgICAgIGZpbGVTeXN0ZW0ubWtkaXJTeW5jKGpvaW4odGFyZ2V0RGlyZWN0b3J5LCBlbnRyeS5uYW1lLnNsaWNlKDAsIC0xKSksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgZW50cnlQYXRoID0gam9pbih0YXJnZXREaXJlY3RvcnksIGVudHJ5Lm5hbWUpO1xuICAgIGZpbGVTeXN0ZW0ubWtkaXJTeW5jKGRpcm5hbWUoZW50cnlQYXRoKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgZmlsZVN5c3RlbS53cml0ZUZpbGVTeW5jKGVudHJ5UGF0aCwgcmVhZEVudHJ5RGF0YShhcmNoaXZlLCBlbnRyeSkpO1xuICB9XG59XG5cbi8qKlxuICogUmVmdXNlcyBhbiBlbnRyeSBuYW1lIHRoYXQgd291bGQgcGxhY2UgdGhlIGV4dHJhY3RlZCBmaWxlIG91dHNpZGUgdGhlIHRhcmdldCBkaXJlY3RvcnkuXG4gKlxuICogQW4gYXJjaGl2ZSBpcyB1bnRydXN0ZWQgaW5wdXQgZXZlbiB3aGVuIHdlIHB1Ymxpc2hlZCBpdCBvdXJzZWx2ZXMsIGFuZCBldmVyeSBvbmUgb2YgdGhlc2Ugc2hhcGVzXG4gKiBlc2NhcGVzIHRoZSB0YXJnZXQ6IGFuIGFic29sdXRlIFBPU0lYIHBhdGgsIGEgV2luZG93cyBkcml2ZS1xdWFsaWZpZWQgcGF0aCwgYSBiYWNrc2xhc2ggKHdoaWNoIHRoZVxuICogWklQIHNwZWNpZmljYXRpb24gZm9yYmlkcyBhcyBhIHNlcGFyYXRvciwgc28gaXRzIG9ubHkgdXNlIGhlcmUgaXMgdG8gc211Z2dsZSBvbmUgcGFzdCBhXG4gKiBmb3J3YXJkLXNsYXNoIGNoZWNrKSwgYW5kIGEgYC4uYCBzZWdtZW50LlxuICpcbiAqIEBwYXJhbSBlbnRyeU5hbWUgLSBUaGUgZW50cnkgbmFtZSBhcyByZWNvcmRlZCBpbiB0aGUgYXJjaGl2ZS5cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0U2FmZUVudHJ5TmFtZShlbnRyeU5hbWU6IHN0cmluZyk6IHZvaWQge1xuICBpZiAoZW50cnlOYW1lLnN0YXJ0c1dpdGgoRU5UUllfTkFNRV9TRVBBUkFUT1IpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBSZWZ1c2luZyB0byBleHRyYWN0IHRoZSBhYnNvbHV0ZSBhcmNoaXZlIGVudHJ5ICcke2VudHJ5TmFtZX0nLmApO1xuICB9XG5cbiAgaWYgKFdJTkRPV1NfRFJJVkVfUFJFRklYX1JFR19FWFAudGVzdChlbnRyeU5hbWUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBSZWZ1c2luZyB0byBleHRyYWN0IHRoZSBkcml2ZS1xdWFsaWZpZWQgYXJjaGl2ZSBlbnRyeSAnJHtlbnRyeU5hbWV9Jy5gKTtcbiAgfVxuXG4gIGlmIChlbnRyeU5hbWUuaW5jbHVkZXMoJ1xcXFwnKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgUmVmdXNpbmcgdG8gZXh0cmFjdCB0aGUgYXJjaGl2ZSBlbnRyeSAnJHtlbnRyeU5hbWV9Jywgd2hpY2ggdXNlcyBhIGJhY2tzbGFzaCBzZXBhcmF0b3IuYCk7XG4gIH1cblxuICBpZiAoZW50cnlOYW1lLnNwbGl0KEVOVFJZX05BTUVfU0VQQVJBVE9SKS5pbmNsdWRlcygnLi4nKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgUmVmdXNpbmcgdG8gZXh0cmFjdCB0aGUgYXJjaGl2ZSBlbnRyeSAnJHtlbnRyeU5hbWV9Jywgd2hpY2ggcG9pbnRzIG91dHNpZGUgdGhlIHRhcmdldCBkaXJlY3RvcnkuYCk7XG4gIH1cbn1cblxuLyoqXG4gKiBMb2NhdGVzIHRoZSBlbmQtb2YtY2VudHJhbC1kaXJlY3RvcnkgcmVjb3JkIGFuZCByZXR1cm5zIGl0cyBvZmZzZXQuXG4gKlxuICogVGhlIHJlY29yZCBzaXRzIGF0IHRoZSB2ZXJ5IGVuZCBvZiB0aGUgYXJjaGl2ZSB1bmxlc3MgYSB0cmFpbGluZyBjb21tZW50IGZvbGxvd3MgaXQsIHNvIGl0IGlzIGZvdW5kXG4gKiBieSBzY2FubmluZyBiYWNrd2FyZHMgb3ZlciB0aGUgY29tbWVudCdzIG1heGltdW0gbGVuZ3RoIHJhdGhlciB0aGFuIGFzc3VtZWQgdG8gYmUgYXQgYSBmaXhlZCBwbGFjZS5cbiAqXG4gKiBAcGFyYW0gYXJjaGl2ZSAtIFRoZSByYXcgWklQIGFyY2hpdmUgYnl0ZXMuXG4gKiBAcmV0dXJucyBUaGUgcmVjb3JkJ3Mgb2Zmc2V0LlxuICovXG5mdW5jdGlvbiBmaW5kRW5kT2ZDZW50cmFsRGlyZWN0b3J5T2Zmc2V0KGFyY2hpdmU6IEJ1ZmZlcik6IG51bWJlciB7XG4gIGNvbnN0IGxhc3RQb3NzaWJsZU9mZnNldCA9IGFyY2hpdmUubGVuZ3RoIC0gRU5EX09GX0NFTlRSQUxfRElSRUNUT1JZX1NJWkU7XG4gIGNvbnN0IGZpcnN0UG9zc2libGVPZmZzZXQgPSBNYXRoLm1heCgwLCBsYXN0UG9zc2libGVPZmZzZXQgLSBNQVhfQVJDSElWRV9DT01NRU5UX0xFTkdUSCk7XG5cbiAgZm9yIChsZXQgb2Zmc2V0ID0gbGFzdFBvc3NpYmxlT2Zmc2V0OyBvZmZzZXQgPj0gZmlyc3RQb3NzaWJsZU9mZnNldDsgb2Zmc2V0LS0pIHtcbiAgICBpZiAoYXJjaGl2ZS5yZWFkVUludDMyTEUob2Zmc2V0KSA9PT0gRU5EX09GX0NFTlRSQUxfRElSRUNUT1JZX1NJR05BVFVSRSkge1xuICAgICAgcmV0dXJuIG9mZnNldDtcbiAgICB9XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBhcmNoaXZlIGlzIG5vdCBhIFpJUCBmaWxlOiBpdHMgZW5kLW9mLWNlbnRyYWwtZGlyZWN0b3J5IHJlY29yZCBpcyBtaXNzaW5nLicpO1xufVxuXG4vKipcbiAqIFJlYWRzIHRoZSBjZW50cmFsIGRpcmVjdG9yeSwgd2hpY2ggaXMgdGhlIGFyY2hpdmUncyBhdXRob3JpdGF0aXZlIGluZGV4IG9mIGl0cyBlbnRyaWVzLlxuICpcbiAqIEBwYXJhbSBhcmNoaXZlIC0gVGhlIHJhdyBaSVAgYXJjaGl2ZSBieXRlcy5cbiAqIEByZXR1cm5zIE9uZSB7QGxpbmsgWmlwRW50cnl9IHBlciBlbnRyeSwgaW4gdGhlIG9yZGVyIHRoZSBhcmNoaXZlIGxpc3RzIHRoZW0uXG4gKi9cbmZ1bmN0aW9uIHJlYWRDZW50cmFsRGlyZWN0b3J5KGFyY2hpdmU6IEJ1ZmZlcik6IFppcEVudHJ5W10ge1xuICBjb25zdCBlbmRPZkNlbnRyYWxEaXJlY3RvcnlPZmZzZXQgPSBmaW5kRW5kT2ZDZW50cmFsRGlyZWN0b3J5T2Zmc2V0KGFyY2hpdmUpO1xuICBjb25zdCBlbnRyeUNvdW50ID0gYXJjaGl2ZS5yZWFkVUludDE2TEUoZW5kT2ZDZW50cmFsRGlyZWN0b3J5T2Zmc2V0ICsgQVJDSElWRV9FTlRSWV9DT1VOVF9PRkZTRVQpO1xuICBsZXQgZW50cnlPZmZzZXQgPSBhcmNoaXZlLnJlYWRVSW50MzJMRShlbmRPZkNlbnRyYWxEaXJlY3RvcnlPZmZzZXQgKyBDRU5UUkFMX0RJUkVDVE9SWV9TVEFSVF9PRkZTRVQpO1xuXG4gIGlmIChlbnRyeUNvdW50ID09PSBTQVRVUkFURURfVUlOVF8xNiB8fCBlbnRyeU9mZnNldCA9PT0gU0FUVVJBVEVEX1VJTlRfMzIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1pJUDY0IGFyY2hpdmVzIGFyZSBub3Qgc3VwcG9ydGVkLicpO1xuICB9XG5cbiAgY29uc3QgZW50cmllczogWmlwRW50cnlbXSA9IFtdO1xuICBmb3IgKGxldCBlbnRyeUluZGV4ID0gMDsgZW50cnlJbmRleCA8IGVudHJ5Q291bnQ7IGVudHJ5SW5kZXgrKykge1xuICAgIGlmIChhcmNoaXZlLnJlYWRVSW50MzJMRShlbnRyeU9mZnNldCkgIT09IENFTlRSQUxfRElSRUNUT1JZX0hFQURFUl9TSUdOQVRVUkUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIGFyY2hpdmUncyBjZW50cmFsIGRpcmVjdG9yeSBpcyBjb3JydXB0IGF0IGVudHJ5ICR7U3RyaW5nKGVudHJ5SW5kZXgpfS5gKTtcbiAgICB9XG5cbiAgICBjb25zdCBmbGFncyA9IGFyY2hpdmUucmVhZFVJbnQxNkxFKGVudHJ5T2Zmc2V0ICsgQ0VOVFJBTF9ESVJFQ1RPUllfRkxBR1NfT0ZGU0VUKTtcbiAgICBpZiAoZmxhZ3MgJSBFTkNSWVBURURfRkxBR19ESVZJU09SID09PSAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VuY3J5cHRlZCBaSVAgYXJjaGl2ZXMgYXJlIG5vdCBzdXBwb3J0ZWQuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgY29tcHJlc3NlZFNpemUgPSBhcmNoaXZlLnJlYWRVSW50MzJMRShlbnRyeU9mZnNldCArIENFTlRSQUxfRElSRUNUT1JZX0NPTVBSRVNTRURfU0laRV9PRkZTRVQpO1xuICAgIGNvbnN0IGxvY2FsSGVhZGVyT2Zmc2V0ID0gYXJjaGl2ZS5yZWFkVUludDMyTEUoZW50cnlPZmZzZXQgKyBDRU5UUkFMX0RJUkVDVE9SWV9MT0NBTF9IRUFERVJfT0ZGU0VUX09GRlNFVCk7XG4gICAgaWYgKGNvbXByZXNzZWRTaXplID09PSBTQVRVUkFURURfVUlOVF8zMiB8fCBsb2NhbEhlYWRlck9mZnNldCA9PT0gU0FUVVJBVEVEX1VJTlRfMzIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignWklQNjQgYXJjaGl2ZXMgYXJlIG5vdCBzdXBwb3J0ZWQuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgbmFtZUxlbmd0aCA9IGFyY2hpdmUucmVhZFVJbnQxNkxFKGVudHJ5T2Zmc2V0ICsgQ0VOVFJBTF9ESVJFQ1RPUllfTkFNRV9MRU5HVEhfT0ZGU0VUKTtcbiAgICBjb25zdCBuYW1lT2Zmc2V0ID0gZW50cnlPZmZzZXQgKyBDRU5UUkFMX0RJUkVDVE9SWV9IRUFERVJfU0laRTtcbiAgICBlbnRyaWVzLnB1c2goe1xuICAgICAgY29tcHJlc3NlZFNpemUsXG4gICAgICBjb21wcmVzc2lvbk1ldGhvZDogYXJjaGl2ZS5yZWFkVUludDE2TEUoZW50cnlPZmZzZXQgKyBDRU5UUkFMX0RJUkVDVE9SWV9DT01QUkVTU0lPTl9NRVRIT0RfT0ZGU0VUKSxcbiAgICAgIGxvY2FsSGVhZGVyT2Zmc2V0LFxuICAgICAgbmFtZTogYXJjaGl2ZS50b1N0cmluZygndXRmLTgnLCBuYW1lT2Zmc2V0LCBuYW1lT2Zmc2V0ICsgbmFtZUxlbmd0aClcbiAgICB9KTtcblxuICAgIGVudHJ5T2Zmc2V0ID0gbmFtZU9mZnNldFxuICAgICAgKyBuYW1lTGVuZ3RoXG4gICAgICArIGFyY2hpdmUucmVhZFVJbnQxNkxFKGVudHJ5T2Zmc2V0ICsgQ0VOVFJBTF9ESVJFQ1RPUllfRVhUUkFfTEVOR1RIX09GRlNFVClcbiAgICAgICsgYXJjaGl2ZS5yZWFkVUludDE2TEUoZW50cnlPZmZzZXQgKyBDRU5UUkFMX0RJUkVDVE9SWV9DT01NRU5UX0xFTkdUSF9PRkZTRVQpO1xuICB9XG5cbiAgcmV0dXJuIGVudHJpZXM7XG59XG5cbi8qKlxuICogUmVhZHMgYW5kIGRlY29tcHJlc3NlcyBvbmUgZW50cnkncyBieXRlcy5cbiAqXG4gKiBUaGUgZGF0YSdzIHN0YXJ0IGlzIGNvbXB1dGVkIGZyb20gdGhlIExPQ0FMIGhlYWRlciByYXRoZXIgdGhhbiB0aGUgY2VudHJhbCBvbmU6IHRoZSB0d28gY2FycnlcbiAqIGluZGVwZW5kZW50IG5hbWUgYW5kIGV4dHJhLWZpZWxkIGxlbmd0aHMsIGFuZCBvbmx5IHRoZSBsb2NhbCBwYWlyIGRlc2NyaWJlcyB3aGVyZSB0aGUgYnl0ZXNcbiAqIGFjdHVhbGx5IGJlZ2luLlxuICpcbiAqIEBwYXJhbSBhcmNoaXZlIC0gVGhlIHJhdyBaSVAgYXJjaGl2ZSBieXRlcy5cbiAqIEBwYXJhbSBlbnRyeSAtIFRoZSBlbnRyeSwgYXMgcmVhZCBmcm9tIHRoZSBjZW50cmFsIGRpcmVjdG9yeS5cbiAqIEByZXR1cm5zIFRoZSBlbnRyeSdzIHVuY29tcHJlc3NlZCBjb250ZW50LlxuICovXG5mdW5jdGlvbiByZWFkRW50cnlEYXRhKGFyY2hpdmU6IEJ1ZmZlciwgZW50cnk6IFppcEVudHJ5KTogQnVmZmVyIHtcbiAgaWYgKGFyY2hpdmUucmVhZFVJbnQzMkxFKGVudHJ5LmxvY2FsSGVhZGVyT2Zmc2V0KSAhPT0gTE9DQUxfRklMRV9IRUFERVJfU0lHTkFUVVJFKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgYXJjaGl2ZSBlbnRyeSAnJHtlbnRyeS5uYW1lfScgaGFzIGEgY29ycnVwdCBsb2NhbCBoZWFkZXIuYCk7XG4gIH1cblxuICBjb25zdCBkYXRhT2Zmc2V0ID0gZW50cnkubG9jYWxIZWFkZXJPZmZzZXRcbiAgICArIExPQ0FMX0hFQURFUl9TSVpFXG4gICAgKyBhcmNoaXZlLnJlYWRVSW50MTZMRShlbnRyeS5sb2NhbEhlYWRlck9mZnNldCArIExPQ0FMX0hFQURFUl9OQU1FX0xFTkdUSF9PRkZTRVQpXG4gICAgKyBhcmNoaXZlLnJlYWRVSW50MTZMRShlbnRyeS5sb2NhbEhlYWRlck9mZnNldCArIExPQ0FMX0hFQURFUl9FWFRSQV9MRU5HVEhfT0ZGU0VUKTtcbiAgY29uc3QgZGF0YUVuZCA9IGRhdGFPZmZzZXQgKyBlbnRyeS5jb21wcmVzc2VkU2l6ZTtcbiAgaWYgKGRhdGFFbmQgPiBhcmNoaXZlLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVGhlIGFyY2hpdmUgaXMgdHJ1bmNhdGVkOiBlbnRyeSAnJHtlbnRyeS5uYW1lfScgcnVucyBwYXN0IGl0cyBlbmQuYCk7XG4gIH1cblxuICBjb25zdCBjb21wcmVzc2VkRGF0YSA9IGFyY2hpdmUuc3ViYXJyYXkoZGF0YU9mZnNldCwgZGF0YUVuZCk7XG4gIHN3aXRjaCAoZW50cnkuY29tcHJlc3Npb25NZXRob2QpIHtcbiAgICBjYXNlIENPTVBSRVNTSU9OX01FVEhPRF9ERUZMQVRFRDoge1xuICAgICAgcmV0dXJuIGluZmxhdGVSYXdTeW5jKGNvbXByZXNzZWREYXRhKTtcbiAgICB9XG4gICAgY2FzZSBDT01QUkVTU0lPTl9NRVRIT0RfU1RPUkVEOiB7XG4gICAgICByZXR1cm4gY29tcHJlc3NlZERhdGE7XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIGFyY2hpdmUgZW50cnkgJyR7ZW50cnkubmFtZX0nIHVzZXMgdW5zdXBwb3J0ZWQgY29tcHJlc3Npb24gbWV0aG9kICR7U3RyaW5nKGVudHJ5LmNvbXByZXNzaW9uTWV0aG9kKX0uYCk7XG4gICAgfVxuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBMEJBLHVCQUErQjtBQUUvQixrQkFHTztBQXlFUCxNQUFNLHFDQUFxQztBQUMzQyxNQUFNLHFDQUFxQztBQUMzQyxNQUFNLDhCQUE4QjtBQUVwQyxNQUFNLGdDQUFnQztBQUN0QyxNQUFNLDZCQUE2QjtBQUluQyxNQUFNLG9CQUFvQjtBQUMxQixNQUFNLG9CQUFvQjtBQUcxQixNQUFNLDZCQUE2QjtBQUNuQyxNQUFNLGlDQUFpQztBQUd2QyxNQUFNLGlDQUFpQztBQUN2QyxNQUFNLDhDQUE4QztBQUNwRCxNQUFNLDJD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
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2Rlc2t0b3AtemlwLWV4dHJhY3Rvci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEV4dHJhY3RzIGEgWklQIGFyY2hpdmUgdG8gZGlzayB1c2luZyBvbmx5IE5vZGUncyBgemxpYmAgXHUyMDE0IHdpdGggbm8gdGhpcmQtcGFydHkgdW56aXAgZGVwZW5kZW5jeS5cbiAqXG4gKiBJdCBleGlzdHMgZm9yIG9uZSBtZWFzdXJlZCByZWFzb24uIFRoZSBkZXBlbmRlbmN5IGl0IHJlcGxhY2VkIG9uIHRoaXMgcGF0aCwgYGFkbS16aXBgLCBidW5kbGVkXG4gKiByb3VnaGx5IDM0IEtCIG9mIG1pbmlmaWVkIEphdmFTY3JpcHQgaW50byBFVkVSWSBPYnNpZGlhbiBwbHVnaW4gYnVpbHQgd2l0aCB0aGlzIGxpYnJhcnk6IGEgcGx1Z2luXG4gKiBzaGlwcyBhIHNpbmdsZSBDSlMgYG1haW4uanNgLCBlc2J1aWxkIGhhcyBubyBjb2RlIHNwbGl0dGluZyB0byBwdXQgYSBkZXBlbmRlbmN5IGJlaGluZCwgYW5kIGFcbiAqIGBhd2FpdCBpbXBvcnQoKWAgb25seSBkZWZlcnMgZXZhbHVhdGlvbiBcdTIwMTQgdGhlIG1vZHVsZSBib2R5IGlzIGlubGluZWQgZWl0aGVyIHdheS4gYG5vZGU6emxpYmAgaXNcbiAqIGFscmVhZHkgYW4gZXNidWlsZCBleHRlcm5hbCwgc28gdGhlIHNhbWUgd29yayBub3cgY29zdHMgYSBwbHVnaW4gYnVuZGxlIG5vdGhpbmcgYXQgYWxsLiBBcmNoaXZlcyBhcmVcbiAqIFdSSVRURU4gd2l0aCBgZmZsYXRlYCBhdCByZWxlYXNlIHRpbWUgKGBzY3JpcHQtdXRpbHMvZGVtby12YXVsdC50c2ApLCB3aGljaCBpcyBOb2RlLXNpZGUgdG9vbGluZyBhbmRcbiAqIG5ldmVyIHJlYWNoZXMgYSBwbHVnaW4gYnVuZGxlIFx1MjAxNCBhIHRoaXJkLXBhcnR5IHdyaXRlciB0aGVyZSBpcyBhbHNvIHdoYXQga2VlcHMgdGhpcyByZWFkZXIgY2hlY2tlZFxuICogYWdhaW5zdCBhbiBpbXBsZW1lbnRhdGlvbiB0aGF0IGlzIG5vdCBpdHMgb3duLlxuICpcbiAqIERlbGliZXJhdGVseSBuYXJyb3c6IGl0IHJlYWRzIGV4YWN0bHkgd2hhdCB0aGF0IHdyaXRlciBwcm9kdWNlcyBcdTIwMTQgc3RvcmVkIGFuZCBkZWZsYXRlZCBlbnRyaWVzIGluIGFuXG4gKiB1bmVuY3J5cHRlZCBhcmNoaXZlIGJlbG93IHRoZSA0IEdCIC8gNjU1MzUtZW50cnkgWklQNjQgdGhyZXNob2xkIFx1MjAxNCBhbmQgcmFpc2VzIGEgbmFtZWQgZXJyb3IgZm9yXG4gKiBhbnl0aGluZyBlbHNlIHJhdGhlciB0aGFuIGd1ZXNzaW5nIGF0IGl0LiBTaXplcyBhbmQgb2Zmc2V0cyBhcmUgdGFrZW4gZnJvbSB0aGUgY2VudHJhbCBkaXJlY3RvcnksXG4gKiB3aGljaCBpcyBhdXRob3JpdGF0aXZlIGV2ZW4gZm9yIGFyY2hpdmVzIHdyaXR0ZW4gd2l0aCBkYXRhIGRlc2NyaXB0b3JzLlxuICpcbiAqIFRoZSBgbm9kZTpgIGltcG9ydHMgYmVsb3cgYXJlIHNhZmUgdG8gbWVyZWx5IEVWQUxVQVRFIG9uIG1vYmlsZSBcdTIwMTQgYHJlcXVpcmVgIGhhbmRzIGJhY2sgYHVuZGVmaW5lZGBcbiAqIHRoZXJlIGFuZCBub3RoaW5nIHJlYWRzIGl0IGF0IGxvYWQgdGltZSBcdTIwMTQgc28gdGhpcyBtb2R1bGUgY2FuIHNpdCBpbiB0aGUgZ2VuZXJhdGVkIGJhcnJlbHMgd2l0aG91dFxuICogYnJlYWtpbmcgdGhlIGxpYnJhcnkncyBsb2FkIG9uIEFuZHJvaWQuIE9ubHkgdGhlIGNhbGxzIGFyZSBkZXNrdG9wLW9ubHkuXG4gKi9cblxuaW1wb3J0IHR5cGUgeyBCdWZmZXIgfSBmcm9tICdub2RlOmJ1ZmZlcic7XG5cbmltcG9ydCB7IGluZmxhdGVSYXdTeW5jIH0gZnJvbSAnbm9kZTp6bGliJztcblxuaW1wb3J0IHtcbiAgZGlybmFtZSxcbiAgam9pblxufSBmcm9tICcuL3BhdGgudHMnO1xuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHtAbGluayBleHRyYWN0WmlwQXJjaGl2ZX0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXh0cmFjdFppcEFyY2hpdmVQYXJhbXMge1xuICAvKipcbiAgICogVGhlIHJhdyBaSVAgYXJjaGl2ZSBieXRlcy5cbiAgICovXG4gIHJlYWRvbmx5IGFyY2hpdmU6IEJ1ZmZlcjtcblxuICAvKipcbiAgICogVGhlIGZpbGUtc3lzdGVtIGltcGxlbWVudGF0aW9uIHRoZSBleHRyYWN0ZWQgZW50cmllcyBhcmUgd3JpdHRlbiB3aXRoLlxuICAgKlxuICAgKiBJbmplY3RlZCByYXRoZXIgdGhhbiBpbXBvcnRlZCBzbyB0aGUgY2FsbGVyIGNob29zZXMgd2hpY2ggYGZzYCB3cml0ZXMgdGhlIGZpbGVzLiBUaGUgZGVtby12YXVsdFxuICAgKiBvcGVuZXIgaGFuZHMgb3ZlciBFbGVjdHJvbidzIGBvcmlnaW5hbC1mc2AgKHNlZSB7QGxpbmsgWmlwRXh0cmFjdGlvbkZpbGVTeXN0ZW19KS5cbiAgICovXG4gIHJlYWRvbmx5IGZpbGVTeXN0ZW06IFppcEV4dHJhY3Rpb25GaWxlU3lzdGVtO1xuXG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0b3J5IHRvIGV4dHJhY3QgaW50by4gQ3JlYXRlZCBpZiBpdCBkb2VzIG5vdCBleGlzdC5cbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldERpcmVjdG9yeTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBzbGljZSBvZiBgbm9kZTpmc2AgZXh0cmFjdGlvbiBuZWVkcy5cbiAqXG4gKiBPbmx5IHRoZSB0d28gV1JJVElORyBjYWxscyBhcmUgcmVxdWlyZWQsIGFuZCB0aGF0IGlzIGRlbGliZXJhdGU6IEVsZWN0cm9uJ3MgYXNhciBsYXllciBpbnRlcmNlcHRzXG4gKiBgZnNgIFJFQURTIChhbmQgYGV4aXN0c1N5bmNgKSBvbiBhbnkgcGF0aCBjb250YWluaW5nIGAuYXNhcmAsIHdoaWNoIGEgZGVtbyB2YXVsdCBtYXkgbGVnaXRpbWF0ZWx5XG4gKiBzaGlwIGFzIGEgcGxhaW4gZmlsZS4gTmV2ZXIgcHJvYmluZyB0aGUgdGFyZ2V0IHdpdGggYSByZWFkIGtlZXBzIHRoYXQgaW50ZXJjZXB0aW9uIG91dCBvZiB0aGVcbiAqIHBpY3R1cmUgZW50aXJlbHksIGFuZCBhIGNhbGxlciB0aGF0IGhhbmRzIG92ZXIgRWxlY3Ryb24ncyBgb3JpZ2luYWwtZnNgIGlzIHNhZmUgZXZlbiBmcm9tIHRoZVxuICogd3JpdGUgc2lkZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBaaXBFeHRyYWN0aW9uRmlsZVN5c3RlbSB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgZGlyZWN0b3J5LCBpbmNsdWRpbmcgYW55IG1pc3NpbmcgcGFyZW50cy5cbiAgICpcbiAgICogQHBhcmFtIHBhdGggLSBUaGUgZGlyZWN0b3J5IHRvIGNyZWF0ZS5cbiAgICogQHBhcmFtIG9wdGlvbnMgLSBUaGUge0BsaW5rIFppcEV4dHJhY3Rpb25Na2Rpck9wdGlvbnN9LlxuICAgKiBAcmV0dXJucyBUaGUgZmlyc3QgZGlyZWN0b3J5IGNyZWF0ZWQsIGlmIGFueS5cbiAgICovXG4gIG1rZGlyU3luYzogKHBhdGg6IHN0cmluZywgb3B0aW9uczogWmlwRXh0cmFjdGlvbk1rZGlyT3B0aW9ucykgPT4gc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXcml0ZXMgYSBmaWxlLCBvdmVyd3JpdGluZyBpdCBpZiBpdCBleGlzdHMuXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIC0gVGhlIGZpbGUgdG8gd3JpdGUuXG4gICAqIEBwYXJhbSBkYXRhIC0gVGhlIGJ5dGVzIHRvIHdyaXRlLlxuICAgKi9cbiAgd3JpdGVGaWxlU3luYzogKHBhdGg6IHN0cmluZywgZGF0YTogQnVmZmVyKSA9PiB2b2lkO1xufVxuXG4vKipcbiAqIFRoZSBvcHRpb25zIHtAbGluayBaaXBFeHRyYWN0aW9uRmlsZVN5c3RlbS5ta2RpclN5bmN9IGlzIGFsd2F5cyBjYWxsZWQgd2l0aC5cbiAqXG4gKiBFeHRyYWN0aW9uIG5ldmVyIHByb2JlcyBmb3IgYW4gZXhpc3RpbmcgZGlyZWN0b3J5LCBzbyBldmVyeSBjYWxsIGhhcyB0byBjcmVhdGUgdGhlIG1pc3NpbmcgcGFyZW50c1xuICogaXRzZWxmIGFuZCB0b2xlcmF0ZSBhIGRpcmVjdG9yeSB0aGF0IGlzIGFscmVhZHkgdGhlcmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgWmlwRXh0cmFjdGlvbk1rZGlyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBbHdheXMgYHRydWVgLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVjdXJzaXZlOiB0cnVlO1xufVxuXG5pbnRlcmZhY2UgWmlwRW50cnkge1xuICByZWFkb25seSBjb21wcmVzc2VkU2l6ZTogbnVtYmVyO1xuICByZWFkb25seSBjb21wcmVzc2lvbk1ldGhvZDogbnVtYmVyO1xuICByZWFkb25seSBsb2NhbEhlYWRlck9mZnNldDogbnVtYmVyO1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG59XG5cbmNvbnN0IEVORF9PRl9DRU5UUkFMX0RJUkVDVE9SWV9TSUdOQVRVUkUgPSAweDA2XzA1XzRCXzUwO1xuY29uc3QgQ0VOVFJBTF9ESVJFQ1RPUllfSEVBREVSX1NJR05BVFVSRSA9IDB4MDJfMDFfNEJfNTA7XG5jb25zdCBMT0NBTF9GSUxFX0hFQURFUl9TSUdOQVRVUkUgPSAweDA0XzAzXzRCXzUwO1xuXG5jb25zdCBFTkRfT0ZfQ0VOVFJBTF9ESVJFQ1RPUllfU0laRSA9IDIyO1xuY29uc3QgTUFYX0FSQ0hJVkVfQ09NTUVOVF9MRU5HVEggPSA2NV81MzU7XG5cbi8vIEEgY291bnQgb3Igb2Zmc2V0IHNhdHVyYXRlZCB0byBhbGwtb25lcyBtZWFucyB0aGUgcmVhbCB2YWx1ZSBsaXZlcyBpbiBhIFpJUDY0IHJlY29yZCB0aGlzIHJlYWRlclxuLy8gZG9lcyBub3QgaW1wbGVtZW50LCBzbyB0aGUgZmllbGQgbXVzdCBuZXZlciBiZSByZWFkIGF0IGZhY2UgdmFsdWUuXG5jb25zdCBTQVRVUkFURURfVUlOVF8xNiA9IDY1XzUzNTtcbmNvbnN0IFNBVFVSQVRFRF9VSU5UXzMyID0gNF8yOTRfOTY3XzI5NTtcblxuLy8gRmllbGQgb2Zmc2V0cyB3aXRoaW4gdGhlIGVuZC1vZi1jZW50cmFsLWRpcmVjdG9yeSByZWNvcmQuXG5jb25zdCBBUkNISVZFX0VOVFJZX0NPVU5UX09GRlNFVCA9IDEwO1xuY29uc3QgQ0VOVFJBTF9ESVJFQ1RPUllfU1RBUlRfT0ZGU0VUID0gMTY7XG5cbi8vIEZpZWxkIG9mZnNldHMgd2l0aGluIGEgY2VudHJhbC1kaXJlY3RvcnkgaGVhZGVyLlxuY29uc3QgQ0VOVFJBTF9ESVJFQ1RPUllfRkxBR1NfT0ZGU0VUID0gODtcbmNvbnN0IENFTlRSQUxfRElSRUNUT1JZX0NPTVBSRVNTSU9OX01FVEhPRF9PRkZTRVQgPSAxMDtcbmNvbnN0IENFTlRSQUxfRElSRUNUT1JZX0NPTVBSRVNTRURfU0laRV9PRkZTRVQgPSAyMDtcbmNvbnN0IENFTlRSQUxfRElSRUNUT1JZX05BTUVfTEVOR1RIX09GRlNFVCA9IDI4O1xuY29uc3QgQ0VOVFJBTF9ESVJFQ1RPUllfRVhUUkFfTEVOR1RIX09GRlNFVCA9IDMwO1xuY29uc3QgQ0VOVFJBTF9ESVJFQ1RPUllfQ09NTUVOVF9MRU5HVEhfT0ZGU0VUID0gMzI7XG5jb25zdCBDRU5UUkFMX0RJUkVDVE9SWV9MT0NBTF9IRUFERVJfT0ZGU0VUX09GRlNFVCA9IDQyO1xuY29uc3QgQ0VOVFJBTF9ESVJFQ1RPUllfSEVBREVSX1NJWkUgPSA0NjtcblxuLy8gRmllbGQgb2Zmc2V0cyB3aXRoaW4gYSBsb2NhbCBmaWxlIGhlYWRlci5cbmNvbnN0IExPQ0FMX0hFQURFUl9OQU1FX0xFTkdUSF9PRkZTRVQgPSAyNjtcbmNvbnN0IExPQ0FMX0hFQURFUl9FWFRSQV9MRU5HVEhfT0ZGU0VUID0gMjg7XG5jb25zdCBMT0NBTF9IRUFERVJfU0laRSA9IDMwO1xuXG5jb25zdCBDT01QUkVTU0lPTl9NRVRIT0RfU1RPUkVEID0gMDtcbmNvbnN0IENPTVBSRVNTSU9OX01FVEhPRF9ERUZMQVRFRCA9IDg7XG5cbi8vIEJpdCAwIG9mIHRoZSBnZW5lcmFsLXB1cnBvc2UgZmxhZ3MgbWFya3MgYW4gZW5jcnlwdGVkIGVudHJ5LCBhbmQgaXQgaXMgdGhlIGxvd2VzdCBiaXQgXHUyMDE0IHNvIHRoZVxuLy8gcmVtYWluZGVyIHRlc3RzIGl0IHdpdGhvdXQgcmVhY2hpbmcgZm9yIGEgYml0d2lzZSBvcGVyYXRvci5cbmNvbnN0IEVOQ1JZUFRFRF9GTEFHX0RJVklTT1IgPSAyO1xuXG5jb25zdCBFTlRSWV9OQU1FX1NFUEFSQVRPUiA9ICcvJztcbmNvbnN0IFdJTkRPV1NfRFJJVkVfUFJFRklYX1JFR19FWFAgPSAvXltBLVphLXpdOi87XG5cbi8qKlxuICogRXh0cmFjdHMgZXZlcnkgZW50cnkgb2YgYSBaSVAgYXJjaGl2ZSBpbnRvIGEgZGlyZWN0b3J5LlxuICpcbiAqIERpcmVjdG9yeSBlbnRyaWVzIGJlY29tZSBkaXJlY3RvcmllczsgYSBmaWxlIGVudHJ5J3MgcGFyZW50cyBhcmUgY3JlYXRlZCB3aGV0aGVyIG9yIG5vdCB0aGUgYXJjaGl2ZVxuICogZGVjbGFyZWQgdGhlbS4gQW4gZW50cnkgd2hvc2UgbmFtZSB3b3VsZCBlc2NhcGUge0BsaW5rIEV4dHJhY3RaaXBBcmNoaXZlUGFyYW1zLnRhcmdldERpcmVjdG9yeX0gaXNcbiAqIHJlZnVzZWQgcmF0aGVyIHRoYW4gd3JpdHRlbiAodGhlIFwiemlwIHNsaXBcIiB0cmF2ZXJzYWwpLCBhcyBpcyBhbiBlbmNyeXB0ZWQsIFpJUDY0LCBvclxuICogdW5rbm93bi1jb21wcmVzc2lvbiBhcmNoaXZlLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUge0BsaW5rIEV4dHJhY3RaaXBBcmNoaXZlUGFyYW1zfS5cbiAqIEB0aHJvd3MgQW4ge0BsaW5rIEVycm9yfSBuYW1pbmcgdGhlIHJlYXNvbiB3aGVuIHRoZSBhcmNoaXZlIGNhbm5vdCBiZSByZWFkIGFzIHdyaXR0ZW4uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0WmlwQXJjaGl2ZShwYXJhbXM6IEV4dHJhY3RaaXBBcmNoaXZlUGFyYW1zKTogdm9pZCB7XG4gIGNvbnN0IHtcbiAgICBhcmNoaXZlLFxuICAgIGZpbGVTeXN0ZW0sXG4gICAgdGFyZ2V0RGlyZWN0b3J5XG4gIH0gPSBwYXJhbXM7XG5cbiAgZmlsZVN5c3RlbS5ta2RpclN5bmModGFyZ2V0RGlyZWN0b3J5LCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICBmb3IgKGNvbnN0IGVudHJ5IG9mIHJlYWRDZW50cmFsRGlyZWN0b3J5KGFyY2hpdmUpKSB7XG4gICAgYXNzZXJ0U2FmZUVudHJ5TmFtZShlbnRyeS5uYW1lKTtcblxuICAgIGlmIChlbnRyeS5uYW1lLmVuZHNXaXRoKEVOVFJZX05BTUVfU0VQQVJBVE9SKSkge1xuICAgICAgLy8gTmFtZWQgd2l0aG91dCBpdHMgdHJhaWxpbmcgc2VwYXJhdG9yLCBzbyB0aGUgY3JlYXRlZCBwYXRoIHJlYWRzIHRoZSBzYW1lIGFzIGV2ZXJ5IG90aGVyIG9uZS5cbiAgICAgIGZpbGVTeXN0ZW0ubWtkaXJTeW5jKGpvaW4odGFyZ2V0RGlyZWN0b3J5LCBlbnRyeS5uYW1lLnNsaWNlKDAsIC0xKSksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgZW50cnlQYXRoID0gam9pbih0YXJnZXREaXJlY3RvcnksIGVudHJ5Lm5hbWUpO1xuICAgIGZpbGVTeXN0ZW0ubWtkaXJTeW5jKGRpcm5hbWUoZW50cnlQYXRoKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgZmlsZVN5c3RlbS53cml0ZUZpbGVTeW5jKGVudHJ5UGF0aCwgcmVhZEVudHJ5RGF0YShhcmNoaXZlLCBlbnRyeSkpO1xuICB9XG59XG5cbi8qKlxuICogUmVmdXNlcyBhbiBlbnRyeSBuYW1lIHRoYXQgd291bGQgcGxhY2UgdGhlIGV4dHJhY3RlZCBmaWxlIG91dHNpZGUgdGhlIHRhcmdldCBkaXJlY3RvcnkuXG4gKlxuICogQW4gYXJjaGl2ZSBpcyB1bnRydXN0ZWQgaW5wdXQgZXZlbiB3aGVuIHdlIHB1Ymxpc2hlZCBpdCBvdXJzZWx2ZXMsIGFuZCBldmVyeSBvbmUgb2YgdGhlc2Ugc2hhcGVzXG4gKiBlc2NhcGVzIHRoZSB0YXJnZXQ6IGFuIGFic29sdXRlIFBPU0lYIHBhdGgsIGEgV2luZG93cyBkcml2ZS1xdWFsaWZpZWQgcGF0aCwgYSBiYWNrc2xhc2ggKHdoaWNoIHRoZVxuICogWklQIHNwZWNpZmljYXRpb24gZm9yYmlkcyBhcyBhIHNlcGFyYXRvciwgc28gaXRzIG9ubHkgdXNlIGhlcmUgaXMgdG8gc211Z2dsZSBvbmUgcGFzdCBhXG4gKiBmb3J3YXJkLXNsYXNoIGNoZWNrKSwgYW5kIGEgYC4uYCBzZWdtZW50LlxuICpcbiAqIEBwYXJhbSBlbnRyeU5hbWUgLSBUaGUgZW50cnkgbmFtZSBhcyByZWNvcmRlZCBpbiB0aGUgYXJjaGl2ZS5cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0U2FmZUVudHJ5TmFtZShlbnRyeU5hbWU6IHN0cmluZyk6IHZvaWQge1xuICBpZiAoZW50cnlOYW1lLnN0YXJ0c1dpdGgoRU5UUllfTkFNRV9TRVBBUkFUT1IpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBSZWZ1c2luZyB0byBleHRyYWN0IHRoZSBhYnNvbHV0ZSBhcmNoaXZlIGVudHJ5ICcke2VudHJ5TmFtZX0nLmApO1xuICB9XG5cbiAgaWYgKFdJTkRPV1NfRFJJVkVfUFJFRklYX1JFR19FWFAudGVzdChlbnRyeU5hbWUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBSZWZ1c2luZyB0byBleHRyYWN0IHRoZSBkcml2ZS1xdWFsaWZpZWQgYXJjaGl2ZSBlbnRyeSAnJHtlbnRyeU5hbWV9Jy5gKTtcbiAgfVxuXG4gIGlmIChlbnRyeU5hbWUuaW5jbHVkZXMoJ1xcXFwnKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgUmVmdXNpbmcgdG8gZXh0cmFjdCB0aGUgYXJjaGl2ZSBlbnRyeSAnJHtlbnRyeU5hbWV9Jywgd2hpY2ggdXNlcyBhIGJhY2tzbGFzaCBzZXBhcmF0b3IuYCk7XG4gIH1cblxuICBpZiAoZW50cnlOYW1lLnNwbGl0KEVOVFJZX05BTUVfU0VQQVJBVE9SKS5pbmNsdWRlcygnLi4nKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgUmVmdXNpbmcgdG8gZXh0cmFjdCB0aGUgYXJjaGl2ZSBlbnRyeSAnJHtlbnRyeU5hbWV9Jywgd2hpY2ggcG9pbnRzIG91dHNpZGUgdGhlIHRhcmdldCBkaXJlY3RvcnkuYCk7XG4gIH1cbn1cblxuLyoqXG4gKiBMb2NhdGVzIHRoZSBlbmQtb2YtY2VudHJhbC1kaXJlY3RvcnkgcmVjb3JkIGFuZCByZXR1cm5zIGl0cyBvZmZzZXQuXG4gKlxuICogVGhlIHJlY29yZCBzaXRzIGF0IHRoZSB2ZXJ5IGVuZCBvZiB0aGUgYXJjaGl2ZSB1bmxlc3MgYSB0cmFpbGluZyBjb21tZW50IGZvbGxvd3MgaXQsIHNvIGl0IGlzIGZvdW5kXG4gKiBieSBzY2FubmluZyBiYWNrd2FyZHMgb3ZlciB0aGUgY29tbWVudCdzIG1heGltdW0gbGVuZ3RoIHJhdGhlciB0aGFuIGFzc3VtZWQgdG8gYmUgYXQgYSBmaXhlZCBwbGFjZS5cbiAqXG4gKiBAcGFyYW0gYXJjaGl2ZSAtIFRoZSByYXcgWklQIGFyY2hpdmUgYnl0ZXMuXG4gKiBAcmV0dXJucyBUaGUgcmVjb3JkJ3Mgb2Zmc2V0LlxuICovXG5mdW5jdGlvbiBmaW5kRW5kT2ZDZW50cmFsRGlyZWN0b3J5T2Zmc2V0KGFyY2hpdmU6IEJ1ZmZlcik6IG51bWJlciB7XG4gIGNvbnN0IGxhc3RQb3NzaWJsZU9mZnNldCA9IGFyY2hpdmUubGVuZ3RoIC0gRU5EX09GX0NFTlRSQUxfRElSRUNUT1JZX1NJWkU7XG4gIGNvbnN0IGZpcnN0UG9zc2libGVPZmZzZXQgPSBNYXRoLm1heCgwLCBsYXN0UG9zc2libGVPZmZzZXQgLSBNQVhfQVJDSElWRV9DT01NRU5UX0xFTkdUSCk7XG5cbiAgZm9yIChsZXQgb2Zmc2V0ID0gbGFzdFBvc3NpYmxlT2Zmc2V0OyBvZmZzZXQgPj0gZmlyc3RQb3NzaWJsZU9mZnNldDsgb2Zmc2V0LS0pIHtcbiAgICBpZiAoYXJjaGl2ZS5yZWFkVUludDMyTEUob2Zmc2V0KSA9PT0gRU5EX09GX0NFTlRSQUxfRElSRUNUT1JZX1NJR05BVFVSRSkge1xuICAgICAgcmV0dXJuIG9mZnNldDtcbiAgICB9XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBhcmNoaXZlIGlzIG5vdCBhIFpJUCBmaWxlOiBpdHMgZW5kLW9mLWNlbnRyYWwtZGlyZWN0b3J5IHJlY29yZCBpcyBtaXNzaW5nLicpO1xufVxuXG4vKipcbiAqIFJlYWRzIHRoZSBjZW50cmFsIGRpcmVjdG9yeSwgd2hpY2ggaXMgdGhlIGFyY2hpdmUncyBhdXRob3JpdGF0aXZlIGluZGV4IG9mIGl0cyBlbnRyaWVzLlxuICpcbiAqIEBwYXJhbSBhcmNoaXZlIC0gVGhlIHJhdyBaSVAgYXJjaGl2ZSBieXRlcy5cbiAqIEByZXR1cm5zIE9uZSB7QGxpbmsgWmlwRW50cnl9IHBlciBlbnRyeSwgaW4gdGhlIG9yZGVyIHRoZSBhcmNoaXZlIGxpc3RzIHRoZW0uXG4gKi9cbmZ1bmN0aW9uIHJlYWRDZW50cmFsRGlyZWN0b3J5KGFyY2hpdmU6IEJ1ZmZlcik6IFppcEVudHJ5W10ge1xuICBjb25zdCBlbmRPZkNlbnRyYWxEaXJlY3RvcnlPZmZzZXQgPSBmaW5kRW5kT2ZDZW50cmFsRGlyZWN0b3J5T2Zmc2V0KGFyY2hpdmUpO1xuICBjb25zdCBlbnRyeUNvdW50ID0gYXJjaGl2ZS5yZWFkVUludDE2TEUoZW5kT2ZDZW50cmFsRGlyZWN0b3J5T2Zmc2V0ICsgQVJDSElWRV9FTlRSWV9DT1VOVF9PRkZTRVQpO1xuICBsZXQgZW50cnlPZmZzZXQgPSBhcmNoaXZlLnJlYWRVSW50MzJMRShlbmRPZkNlbnRyYWxEaXJlY3RvcnlPZmZzZXQgKyBDRU5UUkFMX0RJUkVDVE9SWV9TVEFSVF9PRkZTRVQpO1xuXG4gIGlmIChlbnRyeUNvdW50ID09PSBTQVRVUkFURURfVUlOVF8xNiB8fCBlbnRyeU9mZnNldCA9PT0gU0FUVVJBVEVEX1VJTlRfMzIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1pJUDY0IGFyY2hpdmVzIGFyZSBub3Qgc3VwcG9ydGVkLicpO1xuICB9XG5cbiAgY29uc3QgZW50cmllczogWmlwRW50cnlbXSA9IFtdO1xuICBmb3IgKGxldCBlbnRyeUluZGV4ID0gMDsgZW50cnlJbmRleCA8IGVudHJ5Q291bnQ7IGVudHJ5SW5kZXgrKykge1xuICAgIGlmIChhcmNoaXZlLnJlYWRVSW50MzJMRShlbnRyeU9mZnNldCkgIT09IENFTlRSQUxfRElSRUNUT1JZX0hFQURFUl9TSUdOQVRVUkUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIGFyY2hpdmUncyBjZW50cmFsIGRpcmVjdG9yeSBpcyBjb3JydXB0IGF0IGVudHJ5ICR7U3RyaW5nKGVudHJ5SW5kZXgpfS5gKTtcbiAgICB9XG5cbiAgICBjb25zdCBmbGFncyA9IGFyY2hpdmUucmVhZFVJbnQxNkxFKGVudHJ5T2Zmc2V0ICsgQ0VOVFJBTF9ESVJFQ1RPUllfRkxBR1NfT0ZGU0VUKTtcbiAgICBpZiAoZmxhZ3MgJSBFTkNSWVBURURfRkxBR19ESVZJU09SID09PSAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VuY3J5cHRlZCBaSVAgYXJjaGl2ZXMgYXJlIG5vdCBzdXBwb3J0ZWQuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgY29tcHJlc3NlZFNpemUgPSBhcmNoaXZlLnJlYWRVSW50MzJMRShlbnRyeU9mZnNldCArIENFTlRSQUxfRElSRUNUT1JZX0NPTVBSRVNTRURfU0laRV9PRkZTRVQpO1xuICAgIGNvbnN0IGxvY2FsSGVhZGVyT2Zmc2V0ID0gYXJjaGl2ZS5yZWFkVUludDMyTEUoZW50cnlPZmZzZXQgKyBDRU5UUkFMX0RJUkVDVE9SWV9MT0NBTF9IRUFERVJfT0ZGU0VUX09GRlNFVCk7XG4gICAgaWYgKGNvbXByZXNzZWRTaXplID09PSBTQVRVUkFURURfVUlOVF8zMiB8fCBsb2NhbEhlYWRlck9mZnNldCA9PT0gU0FUVVJBVEVEX1VJTlRfMzIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignWklQNjQgYXJjaGl2ZXMgYXJlIG5vdCBzdXBwb3J0ZWQuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgbmFtZUxlbmd0aCA9IGFyY2hpdmUucmVhZFVJbnQxNkxFKGVudHJ5T2Zmc2V0ICsgQ0VOVFJBTF9ESVJFQ1RPUllfTkFNRV9MRU5HVEhfT0ZGU0VUKTtcbiAgICBjb25zdCBuYW1lT2Zmc2V0ID0gZW50cnlPZmZzZXQgKyBDRU5UUkFMX0RJUkVDVE9SWV9IRUFERVJfU0laRTtcbiAgICBlbnRyaWVzLnB1c2goe1xuICAgICAgY29tcHJlc3NlZFNpemUsXG4gICAgICBjb21wcmVzc2lvbk1ldGhvZDogYXJjaGl2ZS5yZWFkVUludDE2TEUoZW50cnlPZmZzZXQgKyBDRU5UUkFMX0RJUkVDVE9SWV9DT01QUkVTU0lPTl9NRVRIT0RfT0ZGU0VUKSxcbiAgICAgIGxvY2FsSGVhZGVyT2Zmc2V0LFxuICAgICAgbmFtZTogYXJjaGl2ZS50b1N0cmluZygndXRmLTgnLCBuYW1lT2Zmc2V0LCBuYW1lT2Zmc2V0ICsgbmFtZUxlbmd0aClcbiAgICB9KTtcblxuICAgIGVudHJ5T2Zmc2V0ID0gbmFtZU9mZnNldFxuICAgICAgKyBuYW1lTGVuZ3RoXG4gICAgICArIGFyY2hpdmUucmVhZFVJbnQxNkxFKGVudHJ5T2Zmc2V0ICsgQ0VOVFJBTF9ESVJFQ1RPUllfRVhUUkFfTEVOR1RIX09GRlNFVClcbiAgICAgICsgYXJjaGl2ZS5yZWFkVUludDE2TEUoZW50cnlPZmZzZXQgKyBDRU5UUkFMX0RJUkVDVE9SWV9DT01NRU5UX0xFTkdUSF9PRkZTRVQpO1xuICB9XG5cbiAgcmV0dXJuIGVudHJpZXM7XG59XG5cbi8qKlxuICogUmVhZHMgYW5kIGRlY29tcHJlc3NlcyBvbmUgZW50cnkncyBieXRlcy5cbiAqXG4gKiBUaGUgZGF0YSdzIHN0YXJ0IGlzIGNvbXB1dGVkIGZyb20gdGhlIExPQ0FMIGhlYWRlciByYXRoZXIgdGhhbiB0aGUgY2VudHJhbCBvbmU6IHRoZSB0d28gY2FycnlcbiAqIGluZGVwZW5kZW50IG5hbWUgYW5kIGV4dHJhLWZpZWxkIGxlbmd0aHMsIGFuZCBvbmx5IHRoZSBsb2NhbCBwYWlyIGRlc2NyaWJlcyB3aGVyZSB0aGUgYnl0ZXNcbiAqIGFjdHVhbGx5IGJlZ2luLlxuICpcbiAqIEBwYXJhbSBhcmNoaXZlIC0gVGhlIHJhdyBaSVAgYXJjaGl2ZSBieXRlcy5cbiAqIEBwYXJhbSBlbnRyeSAtIFRoZSBlbnRyeSwgYXMgcmVhZCBmcm9tIHRoZSBjZW50cmFsIGRpcmVjdG9yeS5cbiAqIEByZXR1cm5zIFRoZSBlbnRyeSdzIHVuY29tcHJlc3NlZCBjb250ZW50LlxuICovXG5mdW5jdGlvbiByZWFkRW50cnlEYXRhKGFyY2hpdmU6IEJ1ZmZlciwgZW50cnk6IFppcEVudHJ5KTogQnVmZmVyIHtcbiAgaWYgKGFyY2hpdmUucmVhZFVJbnQzMkxFKGVudHJ5LmxvY2FsSGVhZGVyT2Zmc2V0KSAhPT0gTE9DQUxfRklMRV9IRUFERVJfU0lHTkFUVVJFKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgYXJjaGl2ZSBlbnRyeSAnJHtlbnRyeS5uYW1lfScgaGFzIGEgY29ycnVwdCBsb2NhbCBoZWFkZXIuYCk7XG4gIH1cblxuICBjb25zdCBkYXRhT2Zmc2V0ID0gZW50cnkubG9jYWxIZWFkZXJPZmZzZXRcbiAgICArIExPQ0FMX0hFQURFUl9TSVpFXG4gICAgKyBhcmNoaXZlLnJlYWRVSW50MTZMRShlbnRyeS5sb2NhbEhlYWRlck9mZnNldCArIExPQ0FMX0hFQURFUl9OQU1FX0xFTkdUSF9PRkZTRVQpXG4gICAgKyBhcmNoaXZlLnJlYWRVSW50MTZMRShlbnRyeS5sb2NhbEhlYWRlck9mZnNldCArIExPQ0FMX0hFQURFUl9FWFRSQV9MRU5HVEhfT0ZGU0VUKTtcbiAgY29uc3QgZGF0YUVuZCA9IGRhdGFPZmZzZXQgKyBlbnRyeS5jb21wcmVzc2VkU2l6ZTtcbiAgaWYgKGRhdGFFbmQgPiBhcmNoaXZlLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVGhlIGFyY2hpdmUgaXMgdHJ1bmNhdGVkOiBlbnRyeSAnJHtlbnRyeS5uYW1lfScgcnVucyBwYXN0IGl0cyBlbmQuYCk7XG4gIH1cblxuICBjb25zdCBjb21wcmVzc2VkRGF0YSA9IGFyY2hpdmUuc3ViYXJyYXkoZGF0YU9mZnNldCwgZGF0YUVuZCk7XG4gIHN3aXRjaCAoZW50cnkuY29tcHJlc3Npb25NZXRob2QpIHtcbiAgICBjYXNlIENPTVBSRVNTSU9OX01FVEhPRF9ERUZMQVRFRDoge1xuICAgICAgcmV0dXJuIGluZmxhdGVSYXdTeW5jKGNvbXByZXNzZWREYXRhKTtcbiAgICB9XG4gICAgY2FzZSBDT01QUkVTU0lPTl9NRVRIT0RfU1RPUkVEOiB7XG4gICAgICByZXR1cm4gY29tcHJlc3NlZERhdGE7XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIGFyY2hpdmUgZW50cnkgJyR7ZW50cnkubmFtZX0nIHVzZXMgdW5zdXBwb3J0ZWQgY29tcHJlc3Npb24gbWV0aG9kICR7U3RyaW5nKGVudHJ5LmNvbXByZXNzaW9uTWV0aG9kKX0uYCk7XG4gICAgfVxuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUEwQkEsdUJBQStCO0FBRS9CLGtCQUdPO0FBeUVQLE1BQU0scUNBQXFDO0FBQzNDLE1BQU0scUNBQXFDO0FBQzNDLE1BQU0sOEJBQThCO0FBRXBDLE1BQU0sZ0NBQWdDO0FBQ3RDLE1BQU0sNkJBQTZCO0FBSW5DLE1BQU0sb0JBQW9CO0FBQzFCLE1BQU0sb0JBQW9CO0FBRzFCLE1BQU0sNkJBQTZCO0FBQ25DLE1BQU0saUNBQWlDO0FBR3ZDLE1BQU0saUNBQWlDO0FBQ3ZDLE1BQU0sOENBQThDO0FBQ3BELE1BQU0sMkNBQTJDO0FBQ2pELE1BQU0sdUNBQXVDO0FBQzdDLE1BQU0sd0NBQXdDO0FBQzlDLE1BQU0sMENBQTBD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
|