testcafe 1.18.3 → 1.18.4

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.
Files changed (25) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/lib/browser/provider/built-in/dedicated/chrome/cdp-client/automations/click/create-mouse-click-strategy.js +59 -0
  3. package/lib/browser/provider/built-in/dedicated/chrome/cdp-client/shared-adapter-initializer.js +15 -1
  4. package/lib/browser/provider/built-in/dedicated/chrome/cdp-client/utils/dom-utils.js +94 -3
  5. package/lib/browser/provider/built-in/dedicated/chrome/cdp-client/utils/position-utils.js +38 -7
  6. package/lib/browser/provider/built-in/dedicated/chrome/cdp-client/utils/style-utils.js +8 -15
  7. package/lib/client/automation/index.js +1699 -1380
  8. package/lib/client/automation/index.min.js +1 -1
  9. package/lib/client/core/index.js +33 -4
  10. package/lib/client/core/index.min.js +1 -1
  11. package/lib/client/core/scroll/index.js +2 -2
  12. package/lib/client/core/utils/shared/position.js +2 -2
  13. package/lib/client/driver/index.js +143 -94
  14. package/lib/client/driver/index.min.js +1 -1
  15. package/lib/client/proxyless/index.js +5 -3
  16. package/lib/shared/actions/action-executor.js +4 -4
  17. package/lib/shared/actions/automations/click/index.js +53 -0
  18. package/lib/shared/actions/automations/click/mouse-click-strategy-base.js +21 -0
  19. package/lib/shared/actions/automations/move.js +4 -4
  20. package/lib/shared/actions/automations/visible-element-automation.js +162 -0
  21. package/lib/shared/actions/get-element.js +68 -0
  22. package/lib/shared/actions/utils/is-window-iframe.js +8 -0
  23. package/lib/shared/actions/utils/offsets.js +33 -0
  24. package/lib/shared/actions/utils/screen-point-to-client.js +15 -0
  25. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## v1.18.4
4
+
5
+ ### What’s Changed
6
+
7
+ * TestCafe does not display reporter output during initialization ([#6842](https://github.com/DevExpress/testcafe/issues/6842))
8
+
9
+ * TestCafe uses outdated automation scripts after cache expiration ([testcafe-hammerhead#2738](https://github.com/DevExpress/testcafe-hammerhead/issues/2738), [PR](https://github.com/DevExpress/testcafe-hammerhead/issues/2739) by @rr13k)
10
+
11
+ * The `Node.append` method causes the `Illegal invocation` error (PR [testcafe-hammerhead#2730](https://github.com/DevExpress/testcafe-hammerhead/pull/2730) by @danieltroger)
12
+
13
+ * Scripts in SVG documents cause the `Illegal invocation` error ([testcafe-hammerhead#2735](https://github.com/DevExpress/testcafe-hammerhead/issues/2735
14
+ ))
15
+
3
16
  ## v1.18.3 (2022-01-25)
4
17
 
5
18
  ### Bug Fixes
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ const mouse_click_strategy_base_1 = require("../../../../../../../../shared/actions/automations/click/mouse-click-strategy-base");
23
+ const clientsManager = __importStar(require("../../clients-manager"));
24
+ const BUTTON = 'left';
25
+ const CLICK_COUNT = 1;
26
+ class CDPMouseClickStategy extends mouse_click_strategy_base_1.MouseClickStrategyBase {
27
+ constructor() {
28
+ super();
29
+ }
30
+ async mousedown(options) {
31
+ var _a, _b, _c, _d;
32
+ const { Input } = clientsManager.getClient();
33
+ await Input.dispatchMouseEvent({
34
+ type: 'mousePressed',
35
+ x: (_b = (_a = options.point) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : -1,
36
+ y: (_d = (_c = options.point) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : -1,
37
+ button: BUTTON,
38
+ clickCount: CLICK_COUNT,
39
+ });
40
+ }
41
+ async mouseup(element, options) {
42
+ var _a, _b, _c, _d;
43
+ const { Input } = clientsManager.getClient();
44
+ await Input.dispatchMouseEvent({
45
+ type: 'mouseReleased',
46
+ x: (_b = (_a = options.point) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : -1,
47
+ y: (_d = (_c = options.point) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : -1,
48
+ button: BUTTON,
49
+ clickCount: CLICK_COUNT,
50
+ });
51
+ return options;
52
+ }
53
+ }
54
+ function createMouseClickStrategy() {
55
+ return new CDPMouseClickStategy();
56
+ }
57
+ exports.default = createMouseClickStrategy;
58
+ module.exports = exports.default;
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW1vdXNlLWNsaWNrLXN0cmF0ZWd5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Jyb3dzZXIvcHJvdmlkZXIvYnVpbHQtaW4vZGVkaWNhdGVkL2Nocm9tZS9jZHAtY2xpZW50L2F1dG9tYXRpb25zL2NsaWNrL2NyZWF0ZS1tb3VzZS1jbGljay1zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxrSUFBNEg7QUFDNUgsc0VBQXdEO0FBRXhELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQztBQUN0QixNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFFdEIsTUFBTSxvQkFBd0IsU0FBUSxrREFBeUI7SUFDM0Q7UUFDSSxLQUFLLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFTSxLQUFLLENBQUMsU0FBUyxDQUFFLE9BQTBCOztRQUM5QyxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRTdDLE1BQU0sS0FBSyxDQUFDLGtCQUFrQixDQUFDO1lBQzNCLElBQUksRUFBUSxjQUFjO1lBQzFCLENBQUMsY0FBVyxPQUFPLENBQUMsS0FBSywwQ0FBRSxDQUFDLG1DQUFJLENBQUMsQ0FBQztZQUNsQyxDQUFDLGNBQVcsT0FBTyxDQUFDLEtBQUssMENBQUUsQ0FBQyxtQ0FBSSxDQUFDLENBQUM7WUFDbEMsTUFBTSxFQUFNLE1BQU07WUFDbEIsVUFBVSxFQUFFLFdBQVc7U0FDMUIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPLENBQUUsT0FBVSxFQUFFLE9BQTBCOztRQUN4RCxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRTdDLE1BQU0sS0FBSyxDQUFDLGtCQUFrQixDQUFDO1lBQzNCLElBQUksRUFBUSxlQUFlO1lBQzNCLENBQUMsY0FBVyxPQUFPLENBQUMsS0FBSywwQ0FBRSxDQUFDLG1DQUFJLENBQUMsQ0FBQztZQUNsQyxDQUFDLGNBQVcsT0FBTyxDQUFDLEtBQUssMENBQUUsQ0FBQyxtQ0FBSSxDQUFDLENBQUM7WUFDbEMsTUFBTSxFQUFNLE1BQU07WUFDbEIsVUFBVSxFQUFFLFdBQVc7U0FDMUIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztDQUNKO0FBRUQsU0FBd0Isd0JBQXdCO0lBQzVDLE9BQU8sSUFBSSxvQkFBb0IsRUFBSyxDQUFDO0FBQ3pDLENBQUM7QUFGRCwyQ0FFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vdXNlRXZlbnRBcmdzIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2FjdGlvbnMvYXV0b21hdGlvbnMvdmlzaWJsZS1lbGVtZW50LWF1dG9tYXRpb24nO1xuaW1wb3J0IHsgTW91c2VDbGlja1N0cmF0ZWd5QmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9hY3Rpb25zL2F1dG9tYXRpb25zL2NsaWNrL21vdXNlLWNsaWNrLXN0cmF0ZWd5LWJhc2UnO1xuaW1wb3J0ICogYXMgY2xpZW50c01hbmFnZXIgZnJvbSAnLi4vLi4vY2xpZW50cy1tYW5hZ2VyJztcblxuY29uc3QgQlVUVE9OID0gJ2xlZnQnO1xuY29uc3QgQ0xJQ0tfQ09VTlQgPSAxO1xuXG5jbGFzcyBDRFBNb3VzZUNsaWNrU3RhdGVneTxFPiBleHRlbmRzIE1vdXNlQ2xpY2tTdHJhdGVneUJhc2U8RT4ge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvciAoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIG1vdXNlZG93biAob3B0aW9uczogTW91c2VFdmVudEFyZ3M8RT4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgeyBJbnB1dCB9ID0gY2xpZW50c01hbmFnZXIuZ2V0Q2xpZW50KCk7XG5cbiAgICAgICAgYXdhaXQgSW5wdXQuZGlzcGF0Y2hNb3VzZUV2ZW50KHtcbiAgICAgICAgICAgIHR5cGU6ICAgICAgICdtb3VzZVByZXNzZWQnLFxuICAgICAgICAgICAgeDogICAgICAgICAgb3B0aW9ucy5wb2ludD8ueCA/PyAtMSxcbiAgICAgICAgICAgIHk6ICAgICAgICAgIG9wdGlvbnMucG9pbnQ/LnkgPz8gLTEsXG4gICAgICAgICAgICBidXR0b246ICAgICBCVVRUT04sXG4gICAgICAgICAgICBjbGlja0NvdW50OiBDTElDS19DT1VOVCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIG1vdXNldXAgKGVsZW1lbnQ6IEUsIG9wdGlvbnM6IE1vdXNlRXZlbnRBcmdzPEU+KTogUHJvbWlzZTxNb3VzZUV2ZW50QXJnczxFPj4ge1xuICAgICAgICBjb25zdCB7IElucHV0IH0gPSBjbGllbnRzTWFuYWdlci5nZXRDbGllbnQoKTtcblxuICAgICAgICBhd2FpdCBJbnB1dC5kaXNwYXRjaE1vdXNlRXZlbnQoe1xuICAgICAgICAgICAgdHlwZTogICAgICAgJ21vdXNlUmVsZWFzZWQnLFxuICAgICAgICAgICAgeDogICAgICAgICAgb3B0aW9ucy5wb2ludD8ueCA/PyAtMSxcbiAgICAgICAgICAgIHk6ICAgICAgICAgIG9wdGlvbnMucG9pbnQ/LnkgPz8gLTEsXG4gICAgICAgICAgICBidXR0b246ICAgICBCVVRUT04sXG4gICAgICAgICAgICBjbGlja0NvdW50OiBDTElDS19DT1VOVCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIG9wdGlvbnM7XG4gICAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVNb3VzZUNsaWNrU3RyYXRlZ3k8RT4gKCk6IE1vdXNlQ2xpY2tTdHJhdGVneUJhc2U8RT4ge1xuICAgIHJldHVybiBuZXcgQ0RQTW91c2VDbGlja1N0YXRlZ3k8RT4oKTtcbn1cbiJdfQ==
@@ -30,6 +30,7 @@ const positionUtils = __importStar(require("./utils/position-utils"));
30
30
  const styleUtils = __importStar(require("./utils/style-utils"));
31
31
  const eventUtils = __importStar(require("./utils/event-utils"));
32
32
  const create_event_sequence_1 = __importDefault(require("./utils/create-event-sequence"));
33
+ const create_mouse_click_strategy_1 = __importDefault(require("./automations/click/create-mouse-click-strategy"));
33
34
  adapter_1.initializeAdapter({
34
35
  PromiseCtor: Promise,
35
36
  nativeMethods: {
@@ -76,6 +77,11 @@ adapter_1.initializeAdapter({
76
77
  featureDetection: {
77
78
  isTouchDevice: false,
78
79
  },
80
+ utils: {
81
+ extend(target, ...args) {
82
+ return Object.assign(target, ...args);
83
+ },
84
+ },
79
85
  createEventSequence: create_event_sequence_1.default,
80
86
  sendRequestToFrame: () => { },
81
87
  getElementExceptUI: positionUtils.getElementFromPoint,
@@ -83,5 +89,13 @@ adapter_1.initializeAdapter({
83
89
  position: positionUtils,
84
90
  style: styleUtils,
85
91
  event: eventUtils,
92
+ ensureMouseEventAfterScroll: () => Promise.resolve(),
93
+ automations: {
94
+ click: {
95
+ createMouseClickStrategy: create_mouse_click_strategy_1.default,
96
+ },
97
+ _ensureWindowAndCursorForLegacyTests() {
98
+ },
99
+ },
86
100
  });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLWFkYXB0ZXItaW5pdGlhbGl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYnJvd3Nlci9wcm92aWRlci9idWlsdC1pbi9kZWRpY2F0ZWQvY2hyb21lL2NkcC1jbGllbnQvc2hhcmVkLWFkYXB0ZXItaW5pdGlhbGl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNEVBQW1EO0FBR25ELHVEQUE4QztBQUM5Qyw4REFBcUU7QUFHckUsNERBQThDO0FBQzlDLHNFQUF3RDtBQUN4RCxnRUFBa0Q7QUFDbEQsZ0VBQWtEO0FBQ2xELDBGQUFnRTtBQUdoRSwyQkFBaUIsQ0FBQztJQUNkLFdBQVcsRUFBRSxPQUFPO0lBRXBCLGFBQWEsRUFBRTtRQUNYLFVBQVU7UUFDVixZQUFZO1FBQ1osWUFBWSxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTztRQUNyQyxXQUFXLEVBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNO1FBQ3BDLFVBQVUsRUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUs7UUFDbkMsV0FBVyxFQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTTtRQUNwQyxZQUFZLEVBQUUsTUFBTSxDQUFDLE1BQU07UUFDM0IsVUFBVSxFQUFJLE1BQU0sQ0FBQyxJQUFJO1FBQ3pCLE9BQU8sRUFBTyxJQUFJLENBQUMsR0FBRztLQUN6QjtJQUVELE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBYyxFQUFFLElBQW1CLEVBQUUsRUFBRTtRQUNsRCxJQUFJLE9BQU8sR0FBRywyQkFBZ0IsQ0FBQyxPQUFrQyxDQUFDO1FBQ2xFLElBQUksTUFBTSxHQUFJLElBQXNCLENBQUM7UUFDckMsSUFBSSxNQUFNLEdBQUksS0FBSyxDQUFzQyxDQUFDO1FBRTFELEdBQUc7WUFDQyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sMkJBQVMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7Z0JBQ3JGLGFBQWEsRUFBUSxJQUFJO2dCQUN6QixZQUFZLEVBQVMsSUFBSTtnQkFDekIsa0JBQWtCLEVBQUcsMkJBQWdCLENBQUMsbUJBQW1CLEVBQUU7Z0JBQzNELFNBQVMsRUFBWSxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztnQkFDcEYsbUJBQW1CLEVBQUU7O2tCQUVuQjthQUNMLENBQUMsQ0FBQztZQUVILElBQUksZ0JBQWdCO2dCQUNoQixNQUFNLGdCQUFnQixDQUFDO1lBRTNCLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxLQUE4QixDQUFDO1lBRTlELElBQUksT0FBTyxJQUFJLE9BQU8sS0FBSyxPQUFPLENBQUMsTUFBTSxFQUFFO2dCQUN2QyxRQUFRO2dCQUNSLDZDQUE2QztnQkFDN0MsT0FBTyxHQUFRLE9BQU8sQ0FBQyxNQUFNLENBQUM7Z0JBQzlCLE1BQU0sR0FBUyxNQUFNLGFBQU4sTUFBTSxjQUFOLE1BQU0sR0FBSSxZQUFZLENBQUMsa0JBQWtCLENBQUM7Z0JBQ3pELE1BQU0sR0FBUyxZQUFZLENBQUMsZUFBZSxDQUFDO2dCQUM1QyxJQUFJLENBQUMsT0FBTyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQzthQUN2QztTQUVKLFFBQ00sT0FBTyxJQUFJLE9BQU8sS0FBSyxPQUFPLENBQUMsTUFBTSxFQUFFO1FBRTlDLE9BQU8sTUFBaUIsQ0FBQztJQUM3QixDQUFDO0lBRUQsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtJQUUzQixnQkFBZ0IsRUFBRTtRQUNkLGFBQWEsRUFBRSxLQUFLO0tBQ3ZCO0lBRUQsbUJBQW1CLEVBQW5CLCtCQUFtQjtJQUVuQixrQkFBa0IsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0lBRTdCLGtCQUFrQixFQUFFLGFBQWEsQ0FBQyxtQkFBbUI7SUFDckQsR0FBRyxFQUFpQixRQUFRO0lBQzVCLFFBQVEsRUFBWSxhQUFhO0lBQ2pDLEtBQUssRUFBZSxVQUFVO0lBQzlCLEtBQUssRUFBZSxVQUFVO0NBQ2pDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBFeGVjdXRpb25Db250ZXh0IGZyb20gJy4vZXhlY3V0aW9uLWNvbnRleHQnO1xuaW1wb3J0IHsgU2VydmVyTm9kZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgU2Nyb2xsT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3Rlc3QtcnVuL2NvbW1hbmRzL29wdGlvbnMnO1xuaW1wb3J0IHsgZ2V0Q2xpZW50IH0gZnJvbSAnLi9jbGllbnRzLW1hbmFnZXInO1xuaW1wb3J0IHsgaW5pdGlhbGl6ZUFkYXB0ZXIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvYWRhcHRlcic7XG5pbXBvcnQgeyBMZWZ0VG9wVmFsdWVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL3V0aWxzL3ZhbHVlcy9heGlzLXZhbHVlcyc7XG5pbXBvcnQgeyBTY3JvbGxSZXN1bHRQcm94eWxlc3MgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9jbGllbnQvY29yZS9zY3JvbGwnO1xuaW1wb3J0ICogYXMgZG9tVXRpbHMgZnJvbSAnLi91dGlscy9kb20tdXRpbHMnO1xuaW1wb3J0ICogYXMgcG9zaXRpb25VdGlscyBmcm9tICcuL3V0aWxzL3Bvc2l0aW9uLXV0aWxzJztcbmltcG9ydCAqIGFzIHN0eWxlVXRpbHMgZnJvbSAnLi91dGlscy9zdHlsZS11dGlscyc7XG5pbXBvcnQgKiBhcyBldmVudFV0aWxzIGZyb20gJy4vdXRpbHMvZXZlbnQtdXRpbHMnO1xuaW1wb3J0IGNyZWF0ZUV2ZW50U2VxdWVuY2UgZnJvbSAnLi91dGlscy9jcmVhdGUtZXZlbnQtc2VxdWVuY2UnO1xuXG5cbmluaXRpYWxpemVBZGFwdGVyKHtcbiAgICBQcm9taXNlQ3RvcjogUHJvbWlzZSxcblxuICAgIG5hdGl2ZU1ldGhvZHM6IHtcbiAgICAgICAgc2V0VGltZW91dCxcbiAgICAgICAgY2xlYXJUaW1lb3V0LFxuICAgICAgICBhcnJheUluZGV4T2Y6IEFycmF5LnByb3RvdHlwZS5pbmRleE9mLFxuICAgICAgICBhcnJheVNwbGljZTogIEFycmF5LnByb3RvdHlwZS5zcGxpY2UsXG4gICAgICAgIGFycmF5U2xpY2U6ICAgQXJyYXkucHJvdG90eXBlLnNsaWNlLFxuICAgICAgICBhcnJheUZpbHRlcjogIEFycmF5LnByb3RvdHlwZS5maWx0ZXIsXG4gICAgICAgIG9iamVjdEFzc2lnbjogT2JqZWN0LmFzc2lnbixcbiAgICAgICAgb2JqZWN0S2V5czogICBPYmplY3Qua2V5cyxcbiAgICAgICAgZGF0ZU5vdzogICAgICBEYXRlLm5vdyxcbiAgICB9LFxuXG4gICAgc2Nyb2xsOiBhc3luYyAoZWw6IFNlcnZlck5vZGUsIG9wdHM6IFNjcm9sbE9wdGlvbnMpID0+IHtcbiAgICAgICAgbGV0IGN1cnJDeHQgPSBFeGVjdXRpb25Db250ZXh0LmN1cnJlbnQgYXMgRXhlY3V0aW9uQ29udGV4dCB8IG51bGw7XG4gICAgICAgIGxldCByZXN1bHQgID0gbnVsbCBhcyBib29sZWFuIHwgbnVsbDtcbiAgICAgICAgbGV0IG1hcmdpbiAgPSB2b2lkIDAgYXMgdW5kZWZpbmVkIHwgTGVmdFRvcFZhbHVlczxudW1iZXI+O1xuXG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIGNvbnN0IHsgZXhjZXB0aW9uRGV0YWlscywgcmVzdWx0OiByZXN1bHRPYmogfSA9IGF3YWl0IGdldENsaWVudCgpLlJ1bnRpbWUuY2FsbEZ1bmN0aW9uT24oe1xuICAgICAgICAgICAgICAgIHJldHVybkJ5VmFsdWU6ICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgYXdhaXRQcm9taXNlOiAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAgICBleGVjdXRpb25Db250ZXh0SWQ6ICBFeGVjdXRpb25Db250ZXh0LmdldEN1cnJlbnRDb250ZXh0SWQoKSxcbiAgICAgICAgICAgICAgICBhcmd1bWVudHM6ICAgICAgICAgICBbeyBvYmplY3RJZDogZWwub2JqZWN0SWQgfSwgeyB2YWx1ZTogb3B0cyB9LCB7IHZhbHVlOiBtYXJnaW4gfV0sXG4gICAgICAgICAgICAgICAgZnVuY3Rpb25EZWNsYXJhdGlvbjogYGZ1bmN0aW9uIChlbCwgb3B0cykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93W1wiJXByb3h5bGVzcyVcIl0uc2Nyb2xsKGVsLCBvcHRzKTtcbiAgICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAoZXhjZXB0aW9uRGV0YWlscylcbiAgICAgICAgICAgICAgICB0aHJvdyBleGNlcHRpb25EZXRhaWxzO1xuXG4gICAgICAgICAgICBjb25zdCBzY3JvbGxSZXN1bHQgPSByZXN1bHRPYmoudmFsdWUgYXMgU2Nyb2xsUmVzdWx0UHJveHlsZXNzO1xuXG4gICAgICAgICAgICBpZiAoY3VyckN4dCAmJiBjdXJyQ3h0ICE9PSBjdXJyQ3h0LnBhcmVudCkge1xuICAgICAgICAgICAgICAgIC8vIFRPRE86XG4gICAgICAgICAgICAgICAgLy9lbCAgICAgICAgICAgPSBmaW5kSWZyYW1lQnlXaW5kb3coY3VyckN4dCk7XG4gICAgICAgICAgICAgICAgY3VyckN4dCAgICAgID0gY3VyckN4dC5wYXJlbnQ7XG4gICAgICAgICAgICAgICAgcmVzdWx0ICAgICAgID0gcmVzdWx0ID8/IHNjcm9sbFJlc3VsdC5zY3JvbGxXYXNQZXJmb3JtZWQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luICAgICAgID0gc2Nyb2xsUmVzdWx0Lm1heFNjcm9sbE1hcmdpbjtcbiAgICAgICAgICAgICAgICBvcHRzLm9mZnNldFggPSBzY3JvbGxSZXN1bHQub2Zmc2V0WDtcbiAgICAgICAgICAgICAgICBvcHRzLm9mZnNldFkgPSBzY3JvbGxSZXN1bHQub2Zmc2V0WTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgICAgIHdoaWxlIChjdXJyQ3h0ICYmIGN1cnJDeHQgIT09IGN1cnJDeHQucGFyZW50KTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0IGFzIGJvb2xlYW47XG4gICAgfSxcblxuICAgIGJyb3dzZXI6IHsgaXNDaHJvbWU6IHRydWUgfSxcblxuICAgIGZlYXR1cmVEZXRlY3Rpb246IHtcbiAgICAgICAgaXNUb3VjaERldmljZTogZmFsc2UsXG4gICAgfSxcblxuICAgIGNyZWF0ZUV2ZW50U2VxdWVuY2UsXG5cbiAgICBzZW5kUmVxdWVzdFRvRnJhbWU6ICgpID0+IHsgfSxcblxuICAgIGdldEVsZW1lbnRFeGNlcHRVSTogcG9zaXRpb25VdGlscy5nZXRFbGVtZW50RnJvbVBvaW50LFxuICAgIGRvbTogICAgICAgICAgICAgICAgZG9tVXRpbHMsXG4gICAgcG9zaXRpb246ICAgICAgICAgICBwb3NpdGlvblV0aWxzLFxuICAgIHN0eWxlOiAgICAgICAgICAgICAgc3R5bGVVdGlscyxcbiAgICBldmVudDogICAgICAgICAgICAgIGV2ZW50VXRpbHMsXG59KTtcbiJdfQ==
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLWFkYXB0ZXItaW5pdGlhbGl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYnJvd3Nlci9wcm92aWRlci9idWlsdC1pbi9kZWRpY2F0ZWQvY2hyb21lL2NkcC1jbGllbnQvc2hhcmVkLWFkYXB0ZXItaW5pdGlhbGl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNEVBQW1EO0FBR25ELHVEQUE4QztBQUM5Qyw4REFBcUU7QUFHckUsNERBQThDO0FBQzlDLHNFQUF3RDtBQUN4RCxnRUFBa0Q7QUFDbEQsZ0VBQWtEO0FBQ2xELDBGQUFnRTtBQUNoRSxrSEFBdUY7QUFHdkYsMkJBQWlCLENBQUM7SUFDZCxXQUFXLEVBQUUsT0FBTztJQUVwQixhQUFhLEVBQUU7UUFDWCxVQUFVO1FBQ1YsWUFBWTtRQUNaLFlBQVksRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU87UUFDckMsV0FBVyxFQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTTtRQUNwQyxVQUFVLEVBQUksS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLO1FBQ25DLFdBQVcsRUFBRyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU07UUFDcEMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxNQUFNO1FBQzNCLFVBQVUsRUFBSSxNQUFNLENBQUMsSUFBSTtRQUN6QixPQUFPLEVBQU8sSUFBSSxDQUFDLEdBQUc7S0FDekI7SUFFRCxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQWMsRUFBRSxJQUFtQixFQUFFLEVBQUU7UUFDbEQsSUFBSSxPQUFPLEdBQUcsMkJBQWdCLENBQUMsT0FBa0MsQ0FBQztRQUNsRSxJQUFJLE1BQU0sR0FBSSxJQUFzQixDQUFDO1FBQ3JDLElBQUksTUFBTSxHQUFJLEtBQUssQ0FBc0MsQ0FBQztRQUUxRCxHQUFHO1lBQ0MsTUFBTSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLDJCQUFTLEVBQUUsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDO2dCQUNyRixhQUFhLEVBQVEsSUFBSTtnQkFDekIsWUFBWSxFQUFTLElBQUk7Z0JBQ3pCLGtCQUFrQixFQUFHLDJCQUFnQixDQUFDLG1CQUFtQixFQUFFO2dCQUMzRCxTQUFTLEVBQVksQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ3BGLG1CQUFtQixFQUFFOztrQkFFbkI7YUFDTCxDQUFDLENBQUM7WUFFSCxJQUFJLGdCQUFnQjtnQkFDaEIsTUFBTSxnQkFBZ0IsQ0FBQztZQUUzQixNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsS0FBOEIsQ0FBQztZQUU5RCxJQUFJLE9BQU8sSUFBSSxPQUFPLEtBQUssT0FBTyxDQUFDLE1BQU0sRUFBRTtnQkFDdkMsUUFBUTtnQkFDUiw2Q0FBNkM7Z0JBQzdDLE9BQU8sR0FBUSxPQUFPLENBQUMsTUFBTSxDQUFDO2dCQUM5QixNQUFNLEdBQVMsTUFBTSxhQUFOLE1BQU0sY0FBTixNQUFNLEdBQUksWUFBWSxDQUFDLGtCQUFrQixDQUFDO2dCQUN6RCxNQUFNLEdBQVMsWUFBWSxDQUFDLGVBQWUsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDO2dCQUNwQyxJQUFJLENBQUMsT0FBTyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUM7YUFDdkM7U0FFSixRQUNNLE9BQU8sSUFBSSxPQUFPLEtBQUssT0FBTyxDQUFDLE1BQU0sRUFBRTtRQUU5QyxPQUFPLE1BQWlCLENBQUM7SUFDN0IsQ0FBQztJQUVELE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7SUFFM0IsZ0JBQWdCLEVBQUU7UUFDZCxhQUFhLEVBQUUsS0FBSztLQUN2QjtJQUVELEtBQUssRUFBRTtRQUNILE1BQU0sQ0FBRSxNQUEyQixFQUFFLEdBQUcsSUFBSTtZQUN4QyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDMUMsQ0FBQztLQUNKO0lBRUQsbUJBQW1CLEVBQW5CLCtCQUFtQjtJQUVuQixrQkFBa0IsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO0lBRTdCLGtCQUFrQixFQUFFLGFBQWEsQ0FBQyxtQkFBbUI7SUFDckQsR0FBRyxFQUFpQixRQUFRO0lBQzVCLFFBQVEsRUFBWSxhQUFhO0lBQ2pDLEtBQUssRUFBZSxVQUFVO0lBQzlCLEtBQUssRUFBZSxVQUFVO0lBRTlCLDJCQUEyQixFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7SUFFcEQsV0FBVyxFQUFFO1FBQ1QsS0FBSyxFQUFFO1lBQ0gsd0JBQXdCLEVBQXhCLHFDQUF3QjtTQUMzQjtRQUVELG9DQUFvQztRQUNwQyxDQUFDO0tBQ0o7Q0FDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRXhlY3V0aW9uQ29udGV4dCBmcm9tICcuL2V4ZWN1dGlvbi1jb250ZXh0JztcbmltcG9ydCB7IFNlcnZlck5vZGUgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFNjcm9sbE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi90ZXN0LXJ1bi9jb21tYW5kcy9vcHRpb25zJztcbmltcG9ydCB7IGdldENsaWVudCB9IGZyb20gJy4vY2xpZW50cy1tYW5hZ2VyJztcbmltcG9ydCB7IGluaXRpYWxpemVBZGFwdGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2FkYXB0ZXInO1xuaW1wb3J0IHsgTGVmdFRvcFZhbHVlcyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC91dGlscy92YWx1ZXMvYXhpcy12YWx1ZXMnO1xuaW1wb3J0IHsgU2Nyb2xsUmVzdWx0UHJveHlsZXNzIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vY2xpZW50L2NvcmUvc2Nyb2xsJztcbmltcG9ydCAqIGFzIGRvbVV0aWxzIGZyb20gJy4vdXRpbHMvZG9tLXV0aWxzJztcbmltcG9ydCAqIGFzIHBvc2l0aW9uVXRpbHMgZnJvbSAnLi91dGlscy9wb3NpdGlvbi11dGlscyc7XG5pbXBvcnQgKiBhcyBzdHlsZVV0aWxzIGZyb20gJy4vdXRpbHMvc3R5bGUtdXRpbHMnO1xuaW1wb3J0ICogYXMgZXZlbnRVdGlscyBmcm9tICcuL3V0aWxzL2V2ZW50LXV0aWxzJztcbmltcG9ydCBjcmVhdGVFdmVudFNlcXVlbmNlIGZyb20gJy4vdXRpbHMvY3JlYXRlLWV2ZW50LXNlcXVlbmNlJztcbmltcG9ydCBjcmVhdGVNb3VzZUNsaWNrU3RyYXRlZ3kgZnJvbSAnLi9hdXRvbWF0aW9ucy9jbGljay9jcmVhdGUtbW91c2UtY2xpY2stc3RyYXRlZ3knO1xuXG5cbmluaXRpYWxpemVBZGFwdGVyKHtcbiAgICBQcm9taXNlQ3RvcjogUHJvbWlzZSxcblxuICAgIG5hdGl2ZU1ldGhvZHM6IHtcbiAgICAgICAgc2V0VGltZW91dCxcbiAgICAgICAgY2xlYXJUaW1lb3V0LFxuICAgICAgICBhcnJheUluZGV4T2Y6IEFycmF5LnByb3RvdHlwZS5pbmRleE9mLFxuICAgICAgICBhcnJheVNwbGljZTogIEFycmF5LnByb3RvdHlwZS5zcGxpY2UsXG4gICAgICAgIGFycmF5U2xpY2U6ICAgQXJyYXkucHJvdG90eXBlLnNsaWNlLFxuICAgICAgICBhcnJheUZpbHRlcjogIEFycmF5LnByb3RvdHlwZS5maWx0ZXIsXG4gICAgICAgIG9iamVjdEFzc2lnbjogT2JqZWN0LmFzc2lnbixcbiAgICAgICAgb2JqZWN0S2V5czogICBPYmplY3Qua2V5cyxcbiAgICAgICAgZGF0ZU5vdzogICAgICBEYXRlLm5vdyxcbiAgICB9LFxuXG4gICAgc2Nyb2xsOiBhc3luYyAoZWw6IFNlcnZlck5vZGUsIG9wdHM6IFNjcm9sbE9wdGlvbnMpID0+IHtcbiAgICAgICAgbGV0IGN1cnJDeHQgPSBFeGVjdXRpb25Db250ZXh0LmN1cnJlbnQgYXMgRXhlY3V0aW9uQ29udGV4dCB8IG51bGw7XG4gICAgICAgIGxldCByZXN1bHQgID0gbnVsbCBhcyBib29sZWFuIHwgbnVsbDtcbiAgICAgICAgbGV0IG1hcmdpbiAgPSB2b2lkIDAgYXMgdW5kZWZpbmVkIHwgTGVmdFRvcFZhbHVlczxudW1iZXI+O1xuXG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIGNvbnN0IHsgZXhjZXB0aW9uRGV0YWlscywgcmVzdWx0OiByZXN1bHRPYmogfSA9IGF3YWl0IGdldENsaWVudCgpLlJ1bnRpbWUuY2FsbEZ1bmN0aW9uT24oe1xuICAgICAgICAgICAgICAgIHJldHVybkJ5VmFsdWU6ICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgYXdhaXRQcm9taXNlOiAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAgICBleGVjdXRpb25Db250ZXh0SWQ6ICBFeGVjdXRpb25Db250ZXh0LmdldEN1cnJlbnRDb250ZXh0SWQoKSxcbiAgICAgICAgICAgICAgICBhcmd1bWVudHM6ICAgICAgICAgICBbeyBvYmplY3RJZDogZWwub2JqZWN0SWQgfSwgeyB2YWx1ZTogb3B0cyB9LCB7IHZhbHVlOiBtYXJnaW4gfV0sXG4gICAgICAgICAgICAgICAgZnVuY3Rpb25EZWNsYXJhdGlvbjogYGZ1bmN0aW9uIChlbCwgb3B0cykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93W1wiJXByb3h5bGVzcyVcIl0uc2Nyb2xsKGVsLCBvcHRzKTtcbiAgICAgICAgICAgICAgICB9YCxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAoZXhjZXB0aW9uRGV0YWlscylcbiAgICAgICAgICAgICAgICB0aHJvdyBleGNlcHRpb25EZXRhaWxzO1xuXG4gICAgICAgICAgICBjb25zdCBzY3JvbGxSZXN1bHQgPSByZXN1bHRPYmoudmFsdWUgYXMgU2Nyb2xsUmVzdWx0UHJveHlsZXNzO1xuXG4gICAgICAgICAgICBpZiAoY3VyckN4dCAmJiBjdXJyQ3h0ICE9PSBjdXJyQ3h0LnBhcmVudCkge1xuICAgICAgICAgICAgICAgIC8vIFRPRE86XG4gICAgICAgICAgICAgICAgLy9lbCAgICAgICAgICAgPSBmaW5kSWZyYW1lQnlXaW5kb3coY3VyckN4dCk7XG4gICAgICAgICAgICAgICAgY3VyckN4dCAgICAgID0gY3VyckN4dC5wYXJlbnQ7XG4gICAgICAgICAgICAgICAgcmVzdWx0ICAgICAgID0gcmVzdWx0ID8/IHNjcm9sbFJlc3VsdC5zY3JvbGxXYXNQZXJmb3JtZWQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luICAgICAgID0gc2Nyb2xsUmVzdWx0Lm1heFNjcm9sbE1hcmdpbjtcbiAgICAgICAgICAgICAgICBvcHRzLm9mZnNldFggPSBzY3JvbGxSZXN1bHQub2Zmc2V0WDtcbiAgICAgICAgICAgICAgICBvcHRzLm9mZnNldFkgPSBzY3JvbGxSZXN1bHQub2Zmc2V0WTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG4gICAgICAgIHdoaWxlIChjdXJyQ3h0ICYmIGN1cnJDeHQgIT09IGN1cnJDeHQucGFyZW50KTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0IGFzIGJvb2xlYW47XG4gICAgfSxcblxuICAgIGJyb3dzZXI6IHsgaXNDaHJvbWU6IHRydWUgfSxcblxuICAgIGZlYXR1cmVEZXRlY3Rpb246IHtcbiAgICAgICAgaXNUb3VjaERldmljZTogZmFsc2UsXG4gICAgfSxcblxuICAgIHV0aWxzOiB7XG4gICAgICAgIGV4dGVuZCAodGFyZ2V0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCAuLi5hcmdzKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih0YXJnZXQsIC4uLmFyZ3MpO1xuICAgICAgICB9LFxuICAgIH0sXG5cbiAgICBjcmVhdGVFdmVudFNlcXVlbmNlLFxuXG4gICAgc2VuZFJlcXVlc3RUb0ZyYW1lOiAoKSA9PiB7IH0sXG5cbiAgICBnZXRFbGVtZW50RXhjZXB0VUk6IHBvc2l0aW9uVXRpbHMuZ2V0RWxlbWVudEZyb21Qb2ludCxcbiAgICBkb206ICAgICAgICAgICAgICAgIGRvbVV0aWxzLFxuICAgIHBvc2l0aW9uOiAgICAgICAgICAgcG9zaXRpb25VdGlscyxcbiAgICBzdHlsZTogICAgICAgICAgICAgIHN0eWxlVXRpbHMsXG4gICAgZXZlbnQ6ICAgICAgICAgICAgICBldmVudFV0aWxzLFxuXG4gICAgZW5zdXJlTW91c2VFdmVudEFmdGVyU2Nyb2xsOiAoKSA9PiBQcm9taXNlLnJlc29sdmUoKSxcblxuICAgIGF1dG9tYXRpb25zOiB7XG4gICAgICAgIGNsaWNrOiB7XG4gICAgICAgICAgICBjcmVhdGVNb3VzZUNsaWNrU3RyYXRlZ3ksXG4gICAgICAgIH0sXG5cbiAgICAgICAgX2Vuc3VyZVdpbmRvd0FuZEN1cnNvckZvckxlZ2FjeVRlc3RzICgpIHtcbiAgICAgICAgfSxcbiAgICB9LFxufSk7XG4iXX0=
@@ -22,7 +22,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
22
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.isIframeWindow = exports.isDocumentElement = exports.getDocumentElement = exports.isNodeEqual = exports.isDomElement = exports.getScrollingElement = exports.isBodyElement = exports.isHtmlElement = exports.findIframeByWindow = exports.getIFrameByIndex = exports.getIframeByElement = void 0;
25
+ exports.getParents = exports.getParentNode = exports.getImgMapName = exports.containsElement = exports.getNodeText = exports.closest = exports.isIframeWindow = exports.isDocumentElement = exports.getDocumentElement = exports.isNodeEqual = exports.isDomElement = exports.getScrollingElement = exports.isImgElement = exports.isBodyElement = exports.isHtmlElement = exports.getTagName = exports.findIframeByWindow = exports.getIFrameByIndex = exports.getIframeByElement = void 0;
26
26
  const execution_context_1 = __importDefault(require("../execution-context"));
27
27
  const index_1 = require("./index");
28
28
  const clientsManager = __importStar(require("../clients-manager"));
@@ -82,6 +82,10 @@ async function findIframeByWindow(context) {
82
82
  return null;
83
83
  }
84
84
  exports.findIframeByWindow = findIframeByWindow;
85
+ function getTagName(node) {
86
+ return node.nodeName.toLowerCase();
87
+ }
88
+ exports.getTagName = getTagName;
85
89
  function hasTagName(node, tagName) {
86
90
  return node.nodeName.toLowerCase() === tagName.toLowerCase();
87
91
  }
@@ -93,6 +97,10 @@ function isBodyElement(node) {
93
97
  return hasTagName(node, 'body');
94
98
  }
95
99
  exports.isBodyElement = isBodyElement;
100
+ function isImgElement(node) {
101
+ return hasTagName(node, 'img');
102
+ }
103
+ exports.isImgElement = isImgElement;
96
104
  async function getScrollingElement(node) {
97
105
  const client = clientsManager.getClient();
98
106
  const args = {
@@ -126,7 +134,7 @@ async function getDocumentElement(win) {
126
134
  });
127
135
  if (exceptionDetails)
128
136
  throw exceptionDetails;
129
- return index_1.describeNode(DOM, resultObj.value.objectId);
137
+ return index_1.describeNode(DOM, resultObj.objectId);
130
138
  }
131
139
  exports.getDocumentElement = getDocumentElement;
132
140
  async function isDocumentElement(el) {
@@ -138,4 +146,87 @@ async function isIframeWindow() {
138
146
  return false;
139
147
  }
140
148
  exports.isIframeWindow = isIframeWindow;
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Jyb3dzZXIvcHJvdmlkZXIvYnVpbHQtaW4vZGVkaWNhdGVkL2Nocm9tZS9jZHAtY2xpZW50L3V0aWxzL2RvbS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsNkVBQW9EO0FBQ3BELG1DQUF1QztBQUN2QyxtRUFBcUQ7QUFHOUMsS0FBSyxVQUFVLGtCQUFrQixDQUFFLEVBQUUsUUFBUSxFQUFjO0lBQzlELE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBRXBELE1BQU0sS0FBSyxHQUFHLE1BQU0sT0FBTyxDQUFDLGNBQWMsQ0FBQztRQUN2QyxtQkFBbUIsRUFBRTs7VUFFbkI7UUFDRixRQUFRO0tBQ1gsQ0FBQyxDQUFDO0lBRUgsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxJQUFJO1FBQzNCLE9BQU8sb0JBQVksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUM7SUFFMUQsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQztBQWRELGdEQWNDO0FBRU0sS0FBSyxVQUFVLGdCQUFnQixDQUFFLFFBQTRCLEVBQUUsS0FBYTtJQUMvRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUVwRCxNQUFNLEtBQUssR0FBRyxNQUFNLE9BQU8sQ0FBQyxjQUFjLENBQUM7UUFDdkMsbUJBQW1CLEVBQUU7O2NBRWY7UUFDTixRQUFRLEVBQUcsUUFBUTtRQUNuQixTQUFTLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQztLQUNoQyxDQUFDLENBQUM7SUFFSCxNQUFNLGFB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TSxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ25FLFVBQVUsRUFBRSwwQkFBMEI7UUFDdEMsU0FBUyxFQUFHLEdBQUcsQ0FBQyxLQUFLO0tBQ3hCLENBQUMsQ0FBQztJQUVILElBQUksZ0JBQWdCO1FBQ2hCLE1BQU0sZ0JBQWdCLENBQUM7SUFFM0IsT0FBTyxvQkFBWSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3ZELENBQUM7QUFaRCxnREFZQztBQUVNLEtBQUssVUFBVSxpQkFBaUIsQ0FBRSxFQUFjO0lBQ25ELE1BQU0sS0FBSyxHQUFHLE1BQU0sa0JBQWtCLENBQUMsMkJBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFakUsT0FBTyxXQUFXLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ2xDLENBQUM7QUFKRCw4Q0FJQztBQUVNLEtBQUssVUFBVSxjQUFjO0lBQ2hDLE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUM7QUFGRCx3Q0FFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQcm90b2NvbCBmcm9tICdkZXZ0b29scy1wcm90b2NvbC90eXBlcy9wcm90b2NvbCc7XG5pbXBvcnQgRXhlY3V0aW9uQ29udGV4dCBmcm9tICcuLi9leGVjdXRpb24tY29udGV4dCc7XG5pbXBvcnQgeyBkZXNjcmliZU5vZGUgfSBmcm9tICcuL2luZGV4JztcbmltcG9ydCAqIGFzIGNsaWVudHNNYW5hZ2VyIGZyb20gJy4uL2NsaWVudHMtbWFuYWdlcic7XG5pbXBvcnQgeyBTZXJ2ZXJOb2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0SWZyYW1lQnlFbGVtZW50ICh7IG9iamVjdElkIH06IFNlcnZlck5vZGUpOiBQcm9taXNlPFNlcnZlck5vZGUgfCBudWxsPiB7XG4gICAgY29uc3QgeyBSdW50aW1lLCBET00gfSA9IGNsaWVudHNNYW5hZ2VyLmdldENsaWVudCgpO1xuXG4gICAgY29uc3QgZnJhbWUgPSBhd2FpdCBSdW50aW1lLmNhbGxGdW5jdGlvbk9uKHtcbiAgICAgICAgZnVuY3Rpb25EZWNsYXJhdGlvbjogYGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVFbGVtZW50XG4gICAgICAgIH1gLFxuICAgICAgICBvYmplY3RJZCxcbiAgICB9KTtcblxuICAgIGlmIChmcmFtZS5yZXN1bHQudmFsdWUgIT09IG51bGwpXG4gICAgICAgIHJldHVybiBkZXNjcmliZU5vZGUoRE9NLCBmcmFtZS5yZXN1bHQub2JqZWN0SWQgfHwgJycpO1xuXG4gICAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRJRnJhbWVCeUluZGV4IChvYmplY3RJZDogc3RyaW5nIHwgdW5kZWZpbmVkLCBpbmRleDogbnVtYmVyKTogUHJvbWlzZTxTZXJ2ZXJOb2RlIHwgbnVsbD4ge1xuICAgIGNvbnN0IHsgUnVudGltZSwgRE9NIH0gPSBjbGllbnRzTWFuYWdlci5nZXRDbGllbnQoKTtcblxuICAgIGNvbnN0IGZyYW1lID0gYXdhaXQgUnVudGltZS5jYWxsRnVuY3Rpb25Pbih7XG4gICAgICAgIGZ1bmN0aW9uRGVjbGFyYXRpb246IGBmdW5jdGlvbiAoaW5kZXgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpc1tpbmRleF07XG4gICAgICAgICAgICB9YCxcbiAgICAgICAgb2JqZWN0SWQ6ICBvYmplY3RJZCxcbiAgICAgICAgYXJndW1lbnRzOiBbeyB2YWx1ZTogaW5kZXggfV0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBmcmFtZU9iamVjdElkID0gZnJhbWUucmVzdWx0Lm9iamVjdElkO1xuXG4gICAgaWYgKGZyYW1lT2JqZWN0SWQpXG4gICAgICAgIHJldHVybiBkZXNjcmliZU5vZGUoRE9NLCBmcmFtZU9iamVjdElkKTtcblxuICAgIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZmluZElmcmFtZUJ5V2luZG93IChjb250ZXh0OiBFeGVjdXRpb25Db250ZXh0KTogUHJvbWlzZTxTZXJ2ZXJOb2RlIHwgbnVsbD4ge1xuICAgIGNvbnN0IHsgUnVudGltZSB9ID0gY2xpZW50c01hbmFnZXIuZ2V0Q2xpZW50KCk7XG5cbiAgICBjb25zdCBleHByZXNzaW9uID0gYFxuICAgICAgICAoZnVuY3Rpb24gZmluZElmcmFtZXMocGFyZW50RG9jdW1lbnQsIHJlc3VsdCA9IFtdKSB7XG4gICAgICAgICAgICBpZiAoIXBhcmVudERvY3VtZW50KVxuICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgXG4gICAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHBhcmVudERvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lmcmFtZScpO1xuICAgICAgICBcbiAgICAgICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY2hpbGRyZW4pIHtcbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaChjaGlsZCwgLi4uZmluZElmcmFtZXMoY2hpbGQuY29udGVudERvY3VtZW50KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSkoZG9jdW1lbnQpO1xuICAgYDtcblxuICAgIGNvbnN0IGZyYW1lcyA9IGF3YWl0IFJ1bnRpbWUuZXZhbHVhdGUoeyBleHByZXNzaW9uIH0pO1xuICAgIGxldCBpbmRleCAgICA9IDA7XG4gICAgbGV0IGZyYW1lICAgID0gYXdhaXQgZ2V0SUZyYW1lQnlJbmRleChmcmFtZXMucmVzdWx0Lm9iamVjdElkLCBpbmRleCk7XG5cbiAgICB3aGlsZSAoZnJhbWUpIHtcbiAgICAgICAgaWYgKGNvbnRleHQuZnJhbWVJZCA9PT0gZnJhbWUuZnJhbWVJZClcbiAgICAgICAgICAgIHJldHVybiBmcmFtZTtcblxuICAgICAgICBpbmRleCsrO1xuXG4gICAgICAgIGZyYW1lID0gYXdhaXQgZ2V0SUZyYW1lQnlJbmRleChmcmFtZXMucmVzdWx0Lm9iamVjdElkLCBpbmRleCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGhhc1RhZ05hbWUgKG5vZGU6IFNlcnZlck5vZGUsIHRhZ05hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBub2RlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09IHRhZ05hbWUudG9Mb3dlckNhc2UoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSHRtbEVsZW1lbnQgKG5vZGU6IFNlcnZlck5vZGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaGFzVGFnTmFtZShub2RlLCAnaHRtbCcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNCb2R5RWxlbWVudCAobm9kZTogU2VydmVyTm9kZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBoYXNUYWdOYW1lKG5vZGUsICdib2R5Jyk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRTY3JvbGxpbmdFbGVtZW50IChub2RlPzogU2VydmVyTm9kZSk6IFByb21pc2U8U2VydmVyTm9kZT4ge1xuICAgIGNvbnN0IGNsaWVudCA9IGNsaWVudHNNYW5hZ2VyLmdldENsaWVudCgpO1xuXG4gICAgY29uc3QgYXJnczogUHJvdG9jb2wuUnVudGltZS5DYWxsRnVuY3Rpb25PblJlcXVlc3QgPSB7XG4gICAgICAgIGZ1bmN0aW9uRGVjbGFyYXRpb246IGBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBjb25zdCBkb2MgPSB0aGlzICE9PSB3aW5kb3cgPyB0aGlzLm93bmVyRG9jdW1lbnQgOiBkb2N1bWVudDtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgcmV0dXJuIGRvYy5zY3JvbGxpbmdFbGVtZW50O1xuICAgICAgICB9YCxcbiAgICB9O1xuXG4gICAgaWYgKG5vZGUpXG4gICAgICAgIGFyZ3Mub2JqZWN0SWQgPSBub2RlLm9iamVjdElkO1xuICAgIGVsc2VcbiAgICAgICAgYXJncy5leGVjdXRpb25Db250ZXh0SWQgPSBFeGVjdXRpb25Db250ZXh0LnRvcC5jdHhJZDtcblxuICAgIGNvbnN0IHsgcmVzdWx0IH0gPSBhd2FpdCBjbGllbnQuUnVudGltZS5jYWxsRnVuY3Rpb25PbihhcmdzKTtcblxuICAgIHJldHVybiBkZXNjcmliZU5vZGUoY2xpZW50LkRPTSwgcmVzdWx0Lm9iamVjdElkIHx8ICcnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRG9tRWxlbWVudCAobm9kZTogU2VydmVyTm9kZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBub2RlLm5vZGVUeXBlID09PSAxO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNOb2RlRXF1YWwgKGVsMTogU2VydmVyTm9kZSwgZWwyOiBTZXJ2ZXJOb2RlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGVsMS5iYWNrZW5kTm9kZUlkID09PSBlbDIuYmFja2VuZE5vZGVJZDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldERvY3VtZW50RWxlbWVudCAod2luOiBFeGVjdXRpb25Db250ZXh0KTogUHJvbWlzZTxTZXJ2ZXJOb2RlPiB7XG4gICAgY29uc3QgeyBSdW50aW1lLCBET00gfSA9IGNsaWVudHNNYW5hZ2VyLmdldENsaWVudCgpO1xuXG4gICAgY29uc3QgeyBleGNlcHRpb25EZXRhaWxzLCByZXN1bHQ6IHJlc3VsdE9iaiB9ID0gYXdhaXQgUnVudGltZS5ldmFsdWF0ZSh7XG4gICAgICAgIGV4cHJlc3Npb246ICdkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQnLFxuICAgICAgICBjb250ZXh0SWQ6ICB3aW4uY3R4SWQsXG4gICAgfSk7XG5cbiAgICBpZiAoZXhjZXB0aW9uRGV0YWlscylcbiAgICAgICAgdGhyb3cgZXhjZXB0aW9uRGV0YWlscztcblxuICAgIHJldHVybiBkZXNjcmliZU5vZGUoRE9NLCByZXN1bHRPYmoudmFsdWUub2JqZWN0SWQpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaXNEb2N1bWVudEVsZW1lbnQgKGVsOiBTZXJ2ZXJOb2RlKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgZG9jRWwgPSBhd2FpdCBnZXREb2N1bWVudEVsZW1lbnQoRXhlY3V0aW9uQ29udGV4dC5jdXJyZW50KTtcblxuICAgIHJldHVybiBpc05vZGVFcXVhbChlbCwgZG9jRWwpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaXNJZnJhbWVXaW5kb3cgKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBmYWxzZTtcbn1cbiJdfQ==
149
+ async function closest(el, selector) {
150
+ const { Runtime, DOM } = clientsManager.getClient();
151
+ const { exceptionDetails, result: resultObj } = await Runtime.callFunctionOn({
152
+ arguments: [{ objectId: el.objectId }, { value: selector }],
153
+ functionDeclaration: `function (el, selector) {
154
+ debugger;
155
+ return window["%proxyless%"].nativeMethods.closest.call(el, selector);
156
+ }`,
157
+ executionContextId: execution_context_1.default.getCurrentContextId(),
158
+ });
159
+ if (exceptionDetails)
160
+ throw exceptionDetails;
161
+ return resultObj.value ? index_1.describeNode(DOM, resultObj.value.objectId) : null;
162
+ }
163
+ exports.closest = closest;
164
+ async function getNodeText(el) {
165
+ const { Runtime } = clientsManager.getClient();
166
+ const { exceptionDetails, result: resultObj } = await Runtime.callFunctionOn({
167
+ arguments: [{ objectId: el.objectId }],
168
+ functionDeclaration: `function (el) {
169
+ return window["%proxyless%"].nativeMethods.nodeTextContentGetter.call(el);
170
+ }`,
171
+ executionContextId: execution_context_1.default.getCurrentContextId(),
172
+ });
173
+ if (exceptionDetails)
174
+ throw exceptionDetails;
175
+ return resultObj.value;
176
+ }
177
+ exports.getNodeText = getNodeText;
178
+ async function containsElement(el1, el2) {
179
+ const { Runtime } = clientsManager.getClient();
180
+ const { exceptionDetails, result: resultObj } = await Runtime.callFunctionOn({
181
+ arguments: [{ objectId: el1.objectId }, { objectId: el2.objectId }],
182
+ functionDeclaration: `function (el1, el2) {
183
+ do {
184
+ if (el2.parentNode === el1)
185
+ return true;
186
+ }
187
+ while(el2 = el2.parentNode);
188
+ return false;
189
+ }`,
190
+ executionContextId: execution_context_1.default.getCurrentContextId(),
191
+ });
192
+ if (exceptionDetails)
193
+ throw exceptionDetails;
194
+ return resultObj.value;
195
+ }
196
+ exports.containsElement = containsElement;
197
+ function getImgMapName(el) {
198
+ if (!el.attributes)
199
+ return '';
200
+ const useMapIndex = el.attributes.indexOf('usemap');
201
+ if (useMapIndex === -1)
202
+ return '';
203
+ return el.attributes[useMapIndex + 1].substring(1);
204
+ }
205
+ exports.getImgMapName = getImgMapName;
206
+ async function getParentNode({ objectId }) {
207
+ const { Runtime, DOM } = clientsManager.getClient();
208
+ const parent = await Runtime.callFunctionOn({
209
+ functionDeclaration: `function () {
210
+ const el = this.assignedSlot || this;
211
+
212
+ return this.parentNode || el.host;
213
+ }`,
214
+ objectId,
215
+ });
216
+ if (parent.result.value !== null && parent.result.objectId)
217
+ return index_1.describeNode(DOM, parent.result.objectId || '');
218
+ return null;
219
+ }
220
+ exports.getParentNode = getParentNode;
221
+ async function getParents(el) {
222
+ // TODO: check this method
223
+ const result = [];
224
+ let parent = await getParentNode(el);
225
+ while (parent) {
226
+ result.push(parent);
227
+ parent = await getParentNode(parent);
228
+ }
229
+ return result;
230
+ }
231
+ exports.getParents = getParents;
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Jyb3dzZXIvcHJvdmlkZXIvYnVpbHQtaW4vZGVkaWNhdGVkL2Nocm9tZS9jZHAtY2xpZW50L3V0aWxzL2RvbS11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsNkVBQW9EO0FBQ3BELG1DQUF1QztBQUN2QyxtRUFBcUQ7QUFHOUMsS0FBSyxVQUFVLGtCQUFrQixDQUFFLEVBQUUsUUFBUSxFQUFjO0lBQzlELE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBRXBELE1BQU0sS0FBSyxHQUFHLE1BQU0sT0FBTyxDQUFDLGNBQWMsQ0FBQztRQUN2QyxtQkFBbUIsRUFBRTs7VUFFbkI7UUFDRixRQUFRO0tBQ1gsQ0FBQyxDQUFDO0lBRUgsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxJQUFJO1FBQzNCLE9BQU8sb0JBQVksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUM7SUFFMUQsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQztBQWRELGdEQWNDO0FBRU0sS0FBSyxVQUFVLGdCQUFnQixDQUFFLFFBQTRCLEVBQUUsS0FBYTtJQUMvRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUVwRCxNQUFNLEtBQUssR0FBRyxNQUFNLE9BQU8sQ0FBQyxjQUFjLENBQUM7UUFDdkMsbUJBQW1CLEVBQUU7O2NBRWY7UUFDTixRQUFRLEVBQUcsUUFBUTtRQUNuQixTQUFTLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQztLQUNoQyxDQUFDLENBQUM7SUFFSCxNQUFNLGFB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QUFDaEIsQ0FBQztBQWhCRCxzQ0FnQkM7QUFFTSxLQUFLLFVBQVUsVUFBVSxDQUFFLEVBQWM7SUFDNUMsMEJBQTBCO0lBQzFCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUVsQixJQUFJLE1BQU0sR0FBRyxNQUFNLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUVyQyxPQUFPLE1BQU0sRUFBRTtRQUNYLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFcEIsTUFBTSxHQUFHLE1BQU0sYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQ3hDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQztBQWJELGdDQWFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFByb3RvY29sIGZyb20gJ2RldnRvb2xzLXByb3RvY29sL3R5cGVzL3Byb3RvY29sJztcbmltcG9ydCBFeGVjdXRpb25Db250ZXh0IGZyb20gJy4uL2V4ZWN1dGlvbi1jb250ZXh0JztcbmltcG9ydCB7IGRlc2NyaWJlTm9kZSB9IGZyb20gJy4vaW5kZXgnO1xuaW1wb3J0ICogYXMgY2xpZW50c01hbmFnZXIgZnJvbSAnLi4vY2xpZW50cy1tYW5hZ2VyJztcbmltcG9ydCB7IFNlcnZlck5vZGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRJZnJhbWVCeUVsZW1lbnQgKHsgb2JqZWN0SWQgfTogU2VydmVyTm9kZSk6IFByb21pc2U8U2VydmVyTm9kZSB8IG51bGw+IHtcbiAgICBjb25zdCB7IFJ1bnRpbWUsIERPTSB9ID0gY2xpZW50c01hbmFnZXIuZ2V0Q2xpZW50KCk7XG5cbiAgICBjb25zdCBmcmFtZSA9IGF3YWl0IFJ1bnRpbWUuY2FsbEZ1bmN0aW9uT24oe1xuICAgICAgICBmdW5jdGlvbkRlY2xhcmF0aW9uOiBgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5mcmFtZUVsZW1lbnRcbiAgICAgICAgfWAsXG4gICAgICAgIG9iamVjdElkLFxuICAgIH0pO1xuXG4gICAgaWYgKGZyYW1lLnJlc3VsdC52YWx1ZSAhPT0gbnVsbClcbiAgICAgICAgcmV0dXJuIGRlc2NyaWJlTm9kZShET00sIGZyYW1lLnJlc3VsdC5vYmplY3RJZCB8fCAnJyk7XG5cbiAgICByZXR1cm4gbnVsbDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldElGcmFtZUJ5SW5kZXggKG9iamVjdElkOiBzdHJpbmcgfCB1bmRlZmluZWQsIGluZGV4OiBudW1iZXIpOiBQcm9taXNlPFNlcnZlck5vZGUgfCBudWxsPiB7XG4gICAgY29uc3QgeyBSdW50aW1lLCBET00gfSA9IGNsaWVudHNNYW5hZ2VyLmdldENsaWVudCgpO1xuXG4gICAgY29uc3QgZnJhbWUgPSBhd2FpdCBSdW50aW1lLmNhbGxGdW5jdGlvbk9uKHtcbiAgICAgICAgZnVuY3Rpb25EZWNsYXJhdGlvbjogYGZ1bmN0aW9uIChpbmRleCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzW2luZGV4XTtcbiAgICAgICAgICAgIH1gLFxuICAgICAgICBvYmplY3RJZDogIG9iamVjdElkLFxuICAgICAgICBhcmd1bWVudHM6IFt7IHZhbHVlOiBpbmRleCB9XSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGZyYW1lT2JqZWN0SWQgPSBmcmFtZS5yZXN1bHQub2JqZWN0SWQ7XG5cbiAgICBpZiAoZnJhbWVPYmplY3RJZClcbiAgICAgICAgcmV0dXJuIGRlc2NyaWJlTm9kZShET00sIGZyYW1lT2JqZWN0SWQpO1xuXG4gICAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmaW5kSWZyYW1lQnlXaW5kb3cgKGNvbnRleHQ6IEV4ZWN1dGlvbkNvbnRleHQpOiBQcm9taXNlPFNlcnZlck5vZGUgfCBudWxsPiB7XG4gICAgY29uc3QgeyBSdW50aW1lIH0gPSBjbGllbnRzTWFuYWdlci5nZXRDbGllbnQoKTtcblxuICAgIGNvbnN0IGV4cHJlc3Npb24gPSBgXG4gICAgICAgIChmdW5jdGlvbiBmaW5kSWZyYW1lcyhwYXJlbnREb2N1bWVudCwgcmVzdWx0ID0gW10pIHtcbiAgICAgICAgICAgIGlmICghcGFyZW50RG9jdW1lbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICBcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuID0gcGFyZW50RG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaWZyYW1lJyk7XG4gICAgICAgIFxuICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGNoaWxkLCAuLi5maW5kSWZyYW1lcyhjaGlsZC5jb250ZW50RG9jdW1lbnQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KShkb2N1bWVudCk7XG4gICBgO1xuXG4gICAgY29uc3QgZnJhbWVzID0gYXdhaXQgUnVudGltZS5ldmFsdWF0ZSh7IGV4cHJlc3Npb24gfSk7XG4gICAgbGV0IGluZGV4ICAgID0gMDtcbiAgICBsZXQgZnJhbWUgICAgPSBhd2FpdCBnZXRJRnJhbWVCeUluZGV4KGZyYW1lcy5yZXN1bHQub2JqZWN0SWQsIGluZGV4KTtcblxuICAgIHdoaWxlIChmcmFtZSkge1xuICAgICAgICBpZiAoY29udGV4dC5mcmFtZUlkID09PSBmcmFtZS5mcmFtZUlkKVxuICAgICAgICAgICAgcmV0dXJuIGZyYW1lO1xuXG4gICAgICAgIGluZGV4Kys7XG5cbiAgICAgICAgZnJhbWUgPSBhd2FpdCBnZXRJRnJhbWVCeUluZGV4KGZyYW1lcy5yZXN1bHQub2JqZWN0SWQsIGluZGV4KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRhZ05hbWUgKG5vZGU6IFNlcnZlck5vZGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBub2RlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG59XG5cbmZ1bmN0aW9uIGhhc1RhZ05hbWUgKG5vZGU6IFNlcnZlck5vZGUsIHRhZ05hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBub2RlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09IHRhZ05hbWUudG9Mb3dlckNhc2UoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSHRtbEVsZW1lbnQgKG5vZGU6IFNlcnZlck5vZGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaGFzVGFnTmFtZShub2RlLCAnaHRtbCcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNCb2R5RWxlbWVudCAobm9kZTogU2VydmVyTm9kZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBoYXNUYWdOYW1lKG5vZGUsICdib2R5Jyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0ltZ0VsZW1lbnQgKG5vZGU6IFNlcnZlck5vZGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaGFzVGFnTmFtZShub2RlLCAnaW1nJyk7XG59XG5cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFNjcm9sbGluZ0VsZW1lbnQgKG5vZGU/OiBTZXJ2ZXJOb2RlKTogUHJvbWlzZTxTZXJ2ZXJOb2RlPiB7XG4gICAgY29uc3QgY2xpZW50ID0gY2xpZW50c01hbmFnZXIuZ2V0Q2xpZW50KCk7XG5cbiAgICBjb25zdCBhcmdzOiBQcm90b2NvbC5SdW50aW1lLkNhbGxGdW5jdGlvbk9uUmVxdWVzdCA9IHtcbiAgICAgICAgZnVuY3Rpb25EZWNsYXJhdGlvbjogYGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGNvbnN0IGRvYyA9IHRoaXMgIT09IHdpbmRvdyA/IHRoaXMub3duZXJEb2N1bWVudCA6IGRvY3VtZW50O1xuICAgICAgICAgICAgXG4gICAgICAgICAgICByZXR1cm4gZG9jLnNjcm9sbGluZ0VsZW1lbnQ7XG4gICAgICAgIH1gLFxuICAgIH07XG5cbiAgICBpZiAobm9kZSlcbiAgICAgICAgYXJncy5vYmplY3RJZCA9IG5vZGUub2JqZWN0SWQ7XG4gICAgZWxzZVxuICAgICAgICBhcmdzLmV4ZWN1dGlvbkNvbnRleHRJZCA9IEV4ZWN1dGlvbkNvbnRleHQudG9wLmN0eElkO1xuXG4gICAgY29uc3QgeyByZXN1bHQgfSA9IGF3YWl0IGNsaWVudC5SdW50aW1lLmNhbGxGdW5jdGlvbk9uKGFyZ3MpO1xuXG4gICAgcmV0dXJuIGRlc2NyaWJlTm9kZShjbGllbnQuRE9NLCByZXN1bHQub2JqZWN0SWQgfHwgJycpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEb21FbGVtZW50IChub2RlOiBTZXJ2ZXJOb2RlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG5vZGUubm9kZVR5cGUgPT09IDE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc05vZGVFcXVhbCAoZWwxOiBTZXJ2ZXJOb2RlLCBlbDI6IFNlcnZlck5vZGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZWwxLmJhY2tlbmROb2RlSWQgPT09IGVsMi5iYWNrZW5kTm9kZUlkO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RG9jdW1lbnRFbGVtZW50ICh3aW46IEV4ZWN1dGlvbkNvbnRleHQpOiBQcm9taXNlPFNlcnZlck5vZGU+IHtcbiAgICBjb25zdCB7IFJ1bnRpbWUsIERPTSB9ID0gY2xpZW50c01hbmFnZXIuZ2V0Q2xpZW50KCk7XG5cbiAgICBjb25zdCB7IGV4Y2VwdGlvbkRldGFpbHMsIHJlc3VsdDogcmVzdWx0T2JqIH0gPSBhd2FpdCBSdW50aW1lLmV2YWx1YXRlKHtcbiAgICAgICAgZXhwcmVzc2lvbjogJ2RvY3VtZW50LmRvY3VtZW50RWxlbWVudCcsXG4gICAgICAgIGNvbnRleHRJZDogIHdpbi5jdHhJZCxcbiAgICB9KTtcblxuICAgIGlmIChleGNlcHRpb25EZXRhaWxzKVxuICAgICAgICB0aHJvdyBleGNlcHRpb25EZXRhaWxzO1xuXG4gICAgcmV0dXJuIGRlc2NyaWJlTm9kZShET00sIHJlc3VsdE9iai5vYmplY3RJZCBhcyBzdHJpbmcpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaXNEb2N1bWVudEVsZW1lbnQgKGVsOiBTZXJ2ZXJOb2RlKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgZG9jRWwgPSBhd2FpdCBnZXREb2N1bWVudEVsZW1lbnQoRXhlY3V0aW9uQ29udGV4dC5jdXJyZW50KTtcblxuICAgIHJldHVybiBpc05vZGVFcXVhbChlbCwgZG9jRWwpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaXNJZnJhbWVXaW5kb3cgKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNsb3Nlc3QgKGVsOiBTZXJ2ZXJOb2RlLCBzZWxlY3Rvcjogc3RyaW5nKTogUHJvbWlzZTxTZXJ2ZXJOb2RlIHwgbnVsbD4ge1xuICAgIGNvbnN0IHsgUnVudGltZSwgRE9NIH0gPSBjbGllbnRzTWFuYWdlci5nZXRDbGllbnQoKTtcblxuICAgIGNvbnN0IHsgZXhjZXB0aW9uRGV0YWlscywgcmVzdWx0OiByZXN1bHRPYmogfSA9IGF3YWl0IFJ1bnRpbWUuY2FsbEZ1bmN0aW9uT24oe1xuICAgICAgICBhcmd1bWVudHM6ICAgICAgICAgICBbeyBvYmplY3RJZDogZWwub2JqZWN0SWQgfSwgeyB2YWx1ZTogc2VsZWN0b3IgfV0sXG4gICAgICAgIGZ1bmN0aW9uRGVjbGFyYXRpb246IGBmdW5jdGlvbiAoZWwsIHNlbGVjdG9yKSB7XG4gICAgICAgICAgICBkZWJ1Z2dlcjtcbiAgICAgICAgICAgIHJldHVybiB3aW5kb3dbXCIlcHJveHlsZXNzJVwiXS5uYXRpdmVNZXRob2RzLmNsb3Nlc3QuY2FsbChlbCwgc2VsZWN0b3IpO1xuICAgICAgICB9YCxcbiAgICAgICAgZXhlY3V0aW9uQ29udGV4dElkOiBFeGVjdXRpb25Db250ZXh0LmdldEN1cnJlbnRDb250ZXh0SWQoKSxcbiAgICB9KTtcblxuICAgIGlmIChleGNlcHRpb25EZXRhaWxzKVxuICAgICAgICB0aHJvdyBleGNlcHRpb25EZXRhaWxzO1xuXG4gICAgcmV0dXJuIHJlc3VsdE9iai52YWx1ZSA/IGRlc2NyaWJlTm9kZShET00sIHJlc3VsdE9iai52YWx1ZS5vYmplY3RJZCkgOiBudWxsO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0Tm9kZVRleHQgKGVsOiBTZXJ2ZXJOb2RlKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCB7IFJ1bnRpbWUgfSA9IGNsaWVudHNNYW5hZ2VyLmdldENsaWVudCgpO1xuXG4gICAgY29uc3QgeyBleGNlcHRpb25EZXRhaWxzLCByZXN1bHQ6IHJlc3VsdE9iaiB9ID0gYXdhaXQgUnVudGltZS5jYWxsRnVuY3Rpb25Pbih7XG4gICAgICAgIGFyZ3VtZW50czogICAgICAgICAgIFt7IG9iamVjdElkOiBlbC5vYmplY3RJZCB9XSxcbiAgICAgICAgZnVuY3Rpb25EZWNsYXJhdGlvbjogYGZ1bmN0aW9uIChlbCkge1xuICAgICAgICAgICAgcmV0dXJuIHdpbmRvd1tcIiVwcm94eWxlc3MlXCJdLm5hdGl2ZU1ldGhvZHMubm9kZVRleHRDb250ZW50R2V0dGVyLmNhbGwoZWwpO1xuICAgICAgICB9YCxcbiAgICAgICAgZXhlY3V0aW9uQ29udGV4dElkOiBFeGVjdXRpb25Db250ZXh0LmdldEN1cnJlbnRDb250ZXh0SWQoKSxcbiAgICB9KTtcblxuICAgIGlmIChleGNlcHRpb25EZXRhaWxzKVxuICAgICAgICB0aHJvdyBleGNlcHRpb25EZXRhaWxzO1xuXG4gICAgcmV0dXJuIHJlc3VsdE9iai52YWx1ZTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNvbnRhaW5zRWxlbWVudCAoZWwxOiBTZXJ2ZXJOb2RlLCBlbDI6IFNlcnZlck5vZGUpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB7IFJ1bnRpbWUgfSA9IGNsaWVudHNNYW5hZ2VyLmdldENsaWVudCgpO1xuXG4gICAgY29uc3QgeyBleGNlcHRpb25EZXRhaWxzLCByZXN1bHQ6IHJlc3VsdE9iaiB9ID0gYXdhaXQgUnVudGltZS5jYWxsRnVuY3Rpb25Pbih7XG4gICAgICAgIGFyZ3VtZW50czogICAgICAgICAgIFt7IG9iamVjdElkOiBlbDEub2JqZWN0SWQgfSwgeyBvYmplY3RJZDogZWwyLm9iamVjdElkIH1dLFxuICAgICAgICBmdW5jdGlvbkRlY2xhcmF0aW9uOiBgZnVuY3Rpb24gKGVsMSwgZWwyKSB7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgaWYgKGVsMi5wYXJlbnROb2RlID09PSBlbDEpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd2hpbGUoZWwyID0gZWwyLnBhcmVudE5vZGUpO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9YCxcbiAgICAgICAgZXhlY3V0aW9uQ29udGV4dElkOiBFeGVjdXRpb25Db250ZXh0LmdldEN1cnJlbnRDb250ZXh0SWQoKSxcbiAgICB9KTtcblxuICAgIGlmIChleGNlcHRpb25EZXRhaWxzKVxuICAgICAgICB0aHJvdyBleGNlcHRpb25EZXRhaWxzO1xuXG4gICAgcmV0dXJuIHJlc3VsdE9iai52YWx1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEltZ01hcE5hbWUgKGVsOiBTZXJ2ZXJOb2RlKTogc3RyaW5nIHtcbiAgICBpZiAoIWVsLmF0dHJpYnV0ZXMpXG4gICAgICAgIHJldHVybiAnJztcblxuICAgIGNvbnN0IHVzZU1hcEluZGV4ID0gZWwuYXR0cmlidXRlcy5pbmRleE9mKCd1c2VtYXAnKTtcblxuICAgIGlmICh1c2VNYXBJbmRleCA9PT0gLTEpXG4gICAgICAgIHJldHVybiAnJztcblxuICAgIHJldHVybiBlbC5hdHRyaWJ1dGVzW3VzZU1hcEluZGV4ICsgMV0uc3Vic3RyaW5nKDEpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0UGFyZW50Tm9kZSAoeyBvYmplY3RJZCB9OiBTZXJ2ZXJOb2RlKTogUHJvbWlzZTxTZXJ2ZXJOb2RlIHwgbnVsbD4ge1xuICAgIGNvbnN0IHsgUnVudGltZSwgRE9NIH0gPSBjbGllbnRzTWFuYWdlci5nZXRDbGllbnQoKTtcblxuICAgIGNvbnN0IHBhcmVudCA9IGF3YWl0IFJ1bnRpbWUuY2FsbEZ1bmN0aW9uT24oe1xuICAgICAgICBmdW5jdGlvbkRlY2xhcmF0aW9uOiBgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgY29uc3QgZWwgPSB0aGlzLmFzc2lnbmVkU2xvdCB8fCB0aGlzO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnROb2RlIHx8IGVsLmhvc3Q7XG4gICAgICAgIH1gLFxuICAgICAgICBvYmplY3RJZCxcbiAgICB9KTtcblxuICAgIGlmIChwYXJlbnQucmVzdWx0LnZhbHVlICE9PSBudWxsICYmIHBhcmVudC5yZXN1bHQub2JqZWN0SWQpXG4gICAgICAgIHJldHVybiBkZXNjcmliZU5vZGUoRE9NLCBwYXJlbnQucmVzdWx0Lm9iamVjdElkIHx8ICcnKTtcblxuICAgIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0UGFyZW50cyAoZWw6IFNlcnZlck5vZGUpOiBQcm9taXNlPFNlcnZlck5vZGVbXT4ge1xuICAgIC8vIFRPRE86IGNoZWNrIHRoaXMgbWV0aG9kXG4gICAgY29uc3QgcmVzdWx0ID0gW107XG5cbiAgICBsZXQgcGFyZW50ID0gYXdhaXQgZ2V0UGFyZW50Tm9kZShlbCk7XG5cbiAgICB3aGlsZSAocGFyZW50KSB7XG4gICAgICAgIHJlc3VsdC5wdXNoKHBhcmVudCk7XG5cbiAgICAgICAgcGFyZW50ID0gYXdhaXQgZ2V0UGFyZW50Tm9kZShwYXJlbnQpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG59XG4iXX0=
@@ -22,11 +22,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
22
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.getWindowPosition = exports.getElementFromPoint = exports.getIframePointRelativeToParentFrame = exports.getIframeClientCoordinates = exports.containsOffset = exports.getOffsetPosition = exports.getClientPosition = void 0;
25
+ exports.offsetToClientCoords = exports.getWindowPosition = exports.getClientDimensions = exports.getElementRectangle = exports.getElementFromPoint = exports.getIframePointRelativeToParentFrame = exports.getIframeClientCoordinates = exports.containsOffset = exports.getOffsetPosition = exports.getClientPosition = void 0;
26
26
  const axis_values_1 = __importDefault(require("../../../../../../../shared/utils/values/axis-values"));
27
27
  const boundary_values_1 = __importDefault(require("../../../../../../../shared/utils/values/boundary-values"));
28
28
  const dom_utils_1 = require("./dom-utils");
29
29
  const clientsManager = __importStar(require("../clients-manager"));
30
+ const _1 = require("./");
30
31
  const style_utils_1 = require("./style-utils");
31
32
  async function getClientPosition(node) {
32
33
  const boxModel = await style_utils_1.getBoxModel(node);
@@ -34,13 +35,13 @@ async function getClientPosition(node) {
34
35
  }
35
36
  exports.getClientPosition = getClientPosition;
36
37
  async function getOffsetPosition(node) {
37
- const dimensions = await style_utils_1.getClientDimensions(node);
38
+ const dimensions = await getClientDimensions(node);
38
39
  const { left, top } = await style_utils_1.getDocumentScroll(node);
39
40
  return { left: dimensions.left + left, top: dimensions.top + top };
40
41
  }
41
42
  exports.getOffsetPosition = getOffsetPosition;
42
43
  async function containsOffset(node, offsetX, offsetY) {
43
- const dimensions = await style_utils_1.getClientDimensions(node);
44
+ const dimensions = await getClientDimensions(node);
44
45
  const properties = await style_utils_1.getProperties(node, 'scrollWidth', 'scrollHeight');
45
46
  const width = Math.max(Number(properties.scrollWidth), dimensions.width);
46
47
  const height = Math.max(Number(properties.scrollHeight), dimensions.height);
@@ -51,7 +52,7 @@ async function containsOffset(node, offsetX, offsetY) {
51
52
  }
52
53
  exports.containsOffset = containsOffset;
53
54
  async function getIframeClientCoordinates(node) {
54
- const dimensions = await style_utils_1.getClientDimensions(node);
55
+ const dimensions = await getClientDimensions(node);
55
56
  const [left, top, right, bottom] = [
56
57
  dimensions.left + dimensions.border.left + dimensions.paddings.left,
57
58
  dimensions.top + dimensions.border.top + dimensions.paddings.left,
@@ -65,7 +66,7 @@ async function getIframePointRelativeToParentFrame(iframePoint, context) {
65
66
  const iframe = await dom_utils_1.findIframeByWindow(context);
66
67
  if (!iframe)
67
68
  return null;
68
- const dimensions = await style_utils_1.getClientDimensions(iframe);
69
+ const dimensions = await getClientDimensions(iframe);
69
70
  const paddings = await style_utils_1.getElementPadding(iframe);
70
71
  const left = dimensions.left + dimensions.border.left + paddings.left + iframePoint.x;
71
72
  const top = dimensions.top + dimensions.border.top + paddings.top + iframePoint.y;
@@ -76,7 +77,9 @@ async function getElementFromPoint(point) {
76
77
  const { DOM } = clientsManager.getClient();
77
78
  try {
78
79
  const { backendNodeId } = await DOM.getNodeForLocation({ x: point.x, y: point.y });
79
- return DOM.resolveNode({ backendNodeId });
80
+ const result = await DOM.resolveNode({ backendNodeId });
81
+ if (result === null || result === void 0 ? void 0 : result.object.objectId)
82
+ return _1.describeNode(DOM, result.object.objectId.toString());
80
83
  }
81
84
  catch (_a) {
82
85
  // NOTE: TODO: for some reason this methods throws error for correct `point` values
@@ -85,6 +88,29 @@ async function getElementFromPoint(point) {
85
88
  return null;
86
89
  }
87
90
  exports.getElementFromPoint = getElementFromPoint;
91
+ async function getElementRectangle(node) {
92
+ const dimensions = await style_utils_1.getElementDimensions(node);
93
+ return {
94
+ height: dimensions.height,
95
+ left: dimensions.left,
96
+ top: dimensions.top,
97
+ width: dimensions.width,
98
+ };
99
+ }
100
+ exports.getElementRectangle = getElementRectangle;
101
+ async function getClientDimensions(node) {
102
+ const elementDimensions = await style_utils_1.getElementDimensions(node);
103
+ const parentFrame = await dom_utils_1.getIframeByElement(node);
104
+ if (parentFrame) {
105
+ const frameBoxModel = await style_utils_1.getBoxModel(parentFrame);
106
+ elementDimensions.left -= frameBoxModel.content[0];
107
+ elementDimensions.top -= frameBoxModel.content[1];
108
+ elementDimensions.bottom -= frameBoxModel.content[1];
109
+ elementDimensions.right -= frameBoxModel.content[0];
110
+ }
111
+ return elementDimensions;
112
+ }
113
+ exports.getClientDimensions = getClientDimensions;
88
114
  async function getWindowPosition() {
89
115
  const { Runtime } = clientsManager.getClient();
90
116
  const args = {
@@ -98,4 +124,9 @@ async function getWindowPosition() {
98
124
  return result.value;
99
125
  }
100
126
  exports.getWindowPosition = getWindowPosition;
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24tdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYnJvd3Nlci9wcm92aWRlci9idWlsdC1pbi9kZWRpY2F0ZWQvY2hyb21lL2NkcC1jbGllbnQvdXRpbHMvcG9zaXRpb24tdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLHVHQUFpSDtBQUNqSCwrR0FBOEc7QUFDOUcsMkNBQWlEO0FBQ2pELG1FQUFxRDtBQUdyRCwrQ0FNdUI7QUFFaEIsS0FBSyxVQUFVLGlCQUFpQixDQUFFLElBQWdCO0lBQ3JELE1BQU0sUUFBUSxHQUFHLE1BQU0seUJBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV6QyxPQUFPLElBQUkscUJBQVUsQ0FBUyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxRSxDQUFDO0FBSkQsOENBSUM7QUFFTSxLQUFLLFVBQVUsaUJBQWlCLENBQUUsSUFBZ0I7SUFDckQsTUFBTSxVQUFVLEdBQU0sTUFBTSxpQ0FBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0RCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU0sK0JBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFcEQsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztBQUN2RSxDQUFDO0FBTEQsOENBS0M7QUFFTSxLQUFLLFVBQVUsY0FBYyxDQUFFLElBQWdCLEVBQUUsT0FBZSxFQUFFLE9BQWU7SUFDcEYsTUFBTSxVQUFVLEdBQUcsTUFBTSxpQ0FBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRCxNQUFNLFVBQVUs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QUVNLEtBQUssVUFBVSxtQkFBbUIsQ0FBRSxLQUE2QjtJQUNwRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBRTNDLElBQUk7UUFDQSxNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsTUFBTSxHQUFHLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFbkYsT0FBTyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztLQUM3QztJQUNELFdBQU07UUFDRixtRkFBbUY7UUFDbkYsMENBQTBDO0tBQzdDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQztBQWRELGtEQWNDO0FBRU0sS0FBSyxVQUFVLGlCQUFpQjtJQUNuQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBRS9DLE1BQU0sSUFBSSxHQUFxQztRQUMzQyxVQUFVLEVBQUU7OztXQUdUO1FBQ0gsYUFBYSxFQUFFLElBQUk7S0FDdEIsQ0FBQztJQUVGLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFaEQsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDO0FBQ3hCLENBQUM7QUFkRCw4Q0FjQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQcm90b2NvbCBmcm9tICdkZXZ0b29scy1wcm90b2NvbC90eXBlcy9wcm90b2NvbCc7XG5pbXBvcnQgRXhlY3V0aW9uQ29udGV4dCBmcm9tICcuLi9leGVjdXRpb24tY29udGV4dCc7XG5pbXBvcnQgQXhpc1ZhbHVlcywgeyBBeGlzVmFsdWVzRGF0YSwgTGVmdFRvcFZhbHVlcyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC91dGlscy92YWx1ZXMvYXhpcy12YWx1ZXMnO1xuaW1wb3J0IEJvdW5kYXJ5VmFsdWVzLCB7IEJvdW5kYXJ5VmFsdWVzRGF0YSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NoYXJlZC91dGlscy92YWx1ZXMvYm91bmRhcnktdmFsdWVzJztcbmltcG9ydCB7IGZpbmRJZnJhbWVCeVdpbmRvdyB9IGZyb20gJy4vZG9tLXV0aWxzJztcbmltcG9ydCAqIGFzIGNsaWVudHNNYW5hZ2VyIGZyb20gJy4uL2NsaWVudHMtbWFuYWdlcic7XG5pbXBvcnQgeyBTZXJ2ZXJOb2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5pbXBvcnQge1xuICAgIGdldEJveE1vZGVsLFxuICAgIGdldENsaWVudERpbWVuc2lvbnMsXG4gICAgZ2V0RG9jdW1lbnRTY3JvbGwsXG4gICAgZ2V0RWxlbWVudFBhZGRpbmcsXG4gICAgZ2V0UHJvcGVydGllcyxcbn0gZnJvbSAnLi9zdHlsZS11dGlscyc7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRDbGllbnRQb3NpdGlvbiAobm9kZTogU2VydmVyTm9kZSk6IFByb21pc2U8QXhpc1ZhbHVlczxudW1iZXI+PiB7XG4gICAgY29uc3QgYm94TW9kZWwgPSBhd2FpdCBnZXRCb3hNb2RlbChub2RlKTtcblxuICAgIHJldHVybiBuZXcgQXhpc1ZhbHVlczxudW1iZXI+KGJveE1vZGVsLmJvcmRlclswXSwgYm94TW9kZWwuYm9yZGVyWzFdKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldE9mZnNldFBvc2l0aW9uIChub2RlOiBTZXJ2ZXJOb2RlKTogUHJvbWlzZTxMZWZ0VG9wVmFsdWVzPG51bWJlcj4+IHtcbiAgICBjb25zdCBkaW1lbnNpb25zICAgID0gYXdhaXQgZ2V0Q2xpZW50RGltZW5zaW9ucyhub2RlKTtcbiAgICBjb25zdCB7IGxlZnQsIHRvcCB9ID0gYXdhaXQgZ2V0RG9jdW1lbnRTY3JvbGwobm9kZSk7XG5cbiAgICByZXR1cm4geyBsZWZ0OiBkaW1lbnNpb25zLmxlZnQgKyBsZWZ0LCB0b3A6IGRpbWVuc2lvbnMudG9wICsgdG9wIH07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjb250YWluc09mZnNldCAobm9kZTogU2VydmVyTm9kZSwgb2Zmc2V0WDogbnVtYmVyLCBvZmZzZXRZOiBudW1iZXIpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBkaW1lbnNpb25zID0gYXdhaXQgZ2V0Q2xpZW50RGltZW5zaW9ucyhub2RlKTtcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gYXdhaXQgZ2V0UHJvcGVydGllcyhub2RlLCAnc2Nyb2xsV2lkdGgnLCAnc2Nyb2xsSGVpZ2h0Jyk7XG5cbiAgICBjb25zdCB3aWR0aCAgPSBNYXRoLm1heChOdW1iZXIocHJvcGVydGllcy5zY3JvbGxXaWR0aCksIGRpbWVuc2lvbnMud2lkdGgpO1xuICAgIGNvbnN0IGhlaWdodCA9IE1hdGgubWF4KE51bWJlcihwcm9wZXJ0aWVzLnNjcm9sbEhlaWdodCksIGRpbWVuc2lvbnMuaGVpZ2h0KTtcbiAgICBjb25zdCBtYXhYICAgPSBkaW1lbnNpb25zLnNjcm9sbGJhci5yaWdodCArIGRpbWVuc2lvbnMuYm9yZGVyLmxlZnQgKyBkaW1lbnNpb25zLmJvcmRlci5yaWdodCArIHdpZHRoO1xuICAgIGNvbnN0IG1heFkgICA9IGRpbWVuc2lvbnMuc2Nyb2xsYmFyLmJvdHRvbSArIGRpbWVuc2lvbnMuYm9yZGVyLnRvcCArIGRpbWVuc2lvbnMuYm9yZGVyLmJvdHRvbSArIGhlaWdodDtcblxuICAgIHJldHVybiAodHlwZW9mIG9mZnNldFggPT09ICd1bmRlZmluZWQnIHx8IG9mZnNldFggPj0gMCAmJiBtYXhYID49IG9mZnNldFgpICYmXG4gICAgICAgICh0eXBlb2Ygb2Zmc2V0WSA9PT0gJ3VuZGVmaW5lZCcgfHwgb2Zmc2V0WSA+PSAwICYmIG1heFkgPj0gb2Zmc2V0WSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRJZnJhbWVDbGllbnRDb29yZGluYXRlcyAobm9kZTogU2VydmVyTm9kZSk6IFByb21pc2U8Qm91bmRhcnlWYWx1ZXNEYXRhPiB7XG4gICAgY29uc3QgZGltZW5zaW9ucyA9IGF3YWl0IGdldENsaWVudERpbWVuc2lvbnMobm9kZSk7XG5cbiAgICBjb25zdCBbIGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbSBdID0gW1xuICAgICAgICBkaW1lbnNpb25zLmxlZnQgKyBkaW1lbnNpb25zLmJvcmRlci5sZWZ0ICsgZGltZW5zaW9ucy5wYWRkaW5ncy5sZWZ0LFxuICAgICAgICBkaW1lbnNpb25zLnRvcCArIGRpbWVuc2lvbnMuYm9yZGVyLnRvcCArIGRpbWVuc2lvbnMucGFkZGluZ3MubGVmdCxcbiAgICAgICAgZGltZW5zaW9ucy5yaWdodCAtIGRpbWVuc2lvbnMuYm9yZGVyLnJpZ2h0IC0gZGltZW5zaW9ucy5wYWRkaW5ncy5yaWdodCxcbiAgICAgICAgZGltZW5zaW9ucy5ib3R0b20gLSBkaW1lbnNpb25zLmJvcmRlci5ib3R0b20gLSBkaW1lbnNpb25zLnBhZGRpbmdzLmJvdHRvbSxcbiAgICBdO1xuXG4gICAgcmV0dXJuIG5ldyBCb3VuZGFyeVZhbHVlcyh0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0SWZyYW1lUG9pbnRSZWxhdGl2ZVRvUGFyZW50RnJhbWUgKGlmcmFtZVBvaW50OiBBeGlzVmFsdWVzPG51bWJlcj4sIGNvbnRleHQ6IEV4ZWN1dGlvbkNvbnRleHQpOiBQcm9taXNlPEF4aXNWYWx1ZXM8bnVtYmVyPiB8IG51bGw+IHtcbiAgICBjb25zdCBpZnJhbWUgPSBhd2FpdCBmaW5kSWZyYW1lQnlXaW5kb3coY29udGV4dCk7XG5cbiAgICBpZiAoIWlmcmFtZSlcbiAgICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICBjb25zdCBkaW1lbnNpb25zID0gYXdhaXQgZ2V0Q2xpZW50RGltZW5zaW9ucyhpZnJhbWUpO1xuICAgIGNvbnN0IHBhZGRpbmdzICAgPSBhd2FpdCBnZXRFbGVtZW50UGFkZGluZyhpZnJhbWUpO1xuXG4gICAgY29uc3QgbGVmdCA9IGRpbWVuc2lvbnMubGVmdCArIGRpbWVuc2lvbnMuYm9yZGVyLmxlZnQgKyBwYWRkaW5ncy5sZWZ0ICsgaWZyYW1lUG9pbnQueDtcbiAgICBjb25zdCB0b3AgID0gZGltZW5zaW9ucy50b3AgKyBkaW1lbnNpb25zLmJvcmRlci50b3AgKyBwYWRkaW5ncy50b3AgKyBpZnJhbWVQb2ludC55O1xuXG4gICAgcmV0dXJuIG5ldyBBeGlzVmFsdWVzPG51bWJlcj4obGVmdCwgdG9wKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEVsZW1lbnRGcm9tUG9pbnQgKHBvaW50OiBBeGlzVmFsdWVzRGF0YTxudW1iZXI+KTogUHJvbWlzZTxQcm90b2NvbC5ET00uUmVzb2x2ZU5vZGVSZXNwb25zZSB8IG51bGw+IHtcbiAgICBjb25zdCB7IERPTSB9ID0gY2xpZW50c01hbmFnZXIuZ2V0Q2xpZW50KCk7XG5cbiAgICB0cnkge1xuICAgICAgICBjb25zdCB7IGJhY2tlbmROb2RlSWQgfSA9IGF3YWl0IERPTS5nZXROb2RlRm9yTG9jYXRpb24oeyB4OiBwb2ludC54LCB5OiBwb2ludC55IH0pO1xuXG4gICAgICAgIHJldHVybiBET00ucmVzb2x2ZU5vZGUoeyBiYWNrZW5kTm9kZUlkIH0pO1xuICAgIH1cbiAgICBjYXRjaCB7XG4gICAgICAgIC8vIE5PVEU6IFRPRE86IGZvciBzb21lIHJlYXNvbiB0aGlzIG1ldGhvZHMgdGhyb3dzIGVycm9yIGZvciBjb3JyZWN0IGBwb2ludGAgdmFsdWVzXG4gICAgICAgIC8vIGFsd2F5cyB0aHJvd3MgZXJyb3IgZm9yIG5lZ2F0aXZlIHZhbHVlc1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0V2luZG93UG9zaXRpb24gKCk6IFByb21pc2U8QXhpc1ZhbHVlczxudW1iZXI+PiB7XG4gICAgY29uc3QgeyBSdW50aW1lIH0gPSBjbGllbnRzTWFuYWdlci5nZXRDbGllbnQoKTtcblxuICAgIGNvbnN0IGFyZ3M6IFByb3RvY29sLlJ1bnRpbWUuRXZhbHVhdGVSZXF1ZXN0ID0ge1xuICAgICAgICBleHByZXNzaW9uOiBgKHtcbiAgICAgICAgICAgIHg6IHdpbmRvdy5zY3JlZW5MZWZ0IHx8IHdpbmRvdy5zY3JlZW5YLFxuICAgICAgICAgICAgeTogd2luZG93LnNjcmVlblRvcCB8fCB3aW5kb3cuc2NyZWVuWVxuICAgICAgICB9KWAsXG4gICAgICAgIHJldHVybkJ5VmFsdWU6IHRydWUsXG4gICAgfTtcblxuICAgIGNvbnN0IHsgcmVzdWx0IH0gPSBhd2FpdCBSdW50aW1lLmV2YWx1YXRlKGFyZ3MpO1xuXG4gICAgcmV0dXJuIHJlc3VsdC52YWx1ZTtcbn1cbiJdfQ==
127
+ // TODO: implement
128
+ async function offsetToClientCoords(point) {
129
+ return point;
130
+ }
131
+ exports.offsetToClientCoords = offsetToClientCoords;
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24tdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYnJvd3Nlci9wcm92aWRlci9idWlsdC1pbi9kZWRpY2F0ZWQvY2hyb21lL2NkcC1jbGllbnQvdXRpbHMvcG9zaXRpb24tdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLHVHQUFpSDtBQUNqSCwrR0FBOEc7QUFDOUcsMkNBQXFFO0FBQ3JFLG1FQUFxRDtBQUVyRCx5QkFBa0M7QUFFbEMsK0NBTXVCO0FBS2hCLEtBQUssVUFBVSxpQkFBaUIsQ0FBRSxJQUFnQjtJQUNyRCxNQUFNLFFBQVEsR0FBRyxNQUFNLHlCQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFekMsT0FBTyxJQUFJLHFCQUFVLENBQVMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUUsQ0FBQztBQUpELDhDQUlDO0FBRU0sS0FBSyxVQUFVLGlCQUFpQixDQUFFLElBQWdCO0lBQ3JELE1BQU0sVUFBVSxHQUFNLE1BQU0sbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxNQUFNLCtCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXBELE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUksR0FBRyxJQUFJLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUM7QUFDdkUsQ0FBQztBQUxELDhDQUtDO0FBRU0sS0FBSyxVQUFVLGNBQWMsQ0FBRSxJQUFnQixFQUFFLE9BQWdCLEVBQUUsT0FBZ0I7SUFDdEYsTUFBTSxVQUFVLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJ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VyxHQUFTLE1BQU0sOEJBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFekQsSUFBSSxXQUFXLEVBQUU7UUFDYixNQUFNLGFBQWEsR0FBRyxNQUFNLHlCQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFckQsaUJBQWlCLENBQUMsSUFBSSxJQUFNLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckQsaUJBQWlCLENBQUMsR0FBRyxJQUFPLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckQsaUJBQWlCLENBQUMsTUFBTSxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckQsaUJBQWlCLENBQUMsS0FBSyxJQUFLLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDeEQ7SUFFRCxPQUFPLGlCQUFpQixDQUFDO0FBQzdCLENBQUM7QUFkRCxrREFjQztBQUVNLEtBQUssVUFBVSxpQkFBaUI7SUFDbkMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUUvQyxNQUFNLElBQUksR0FBcUM7UUFDM0MsVUFBVSxFQUFFOzs7V0FHVDtRQUNILGFBQWEsRUFBRSxJQUFJO0tBQ3RCLENBQUM7SUFFRixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWhELE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQztBQUN4QixDQUFDO0FBZEQsOENBY0M7QUFFRCxrQkFBa0I7QUFDWCxLQUFLLFVBQVUsb0JBQW9CLENBQUUsS0FBeUI7SUFDakUsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQztBQUZELG9EQUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFByb3RvY29sIGZyb20gJ2RldnRvb2xzLXByb3RvY29sL3R5cGVzL3Byb3RvY29sJztcbmltcG9ydCBFeGVjdXRpb25Db250ZXh0IGZyb20gJy4uL2V4ZWN1dGlvbi1jb250ZXh0JztcbmltcG9ydCBBeGlzVmFsdWVzLCB7IEF4aXNWYWx1ZXNEYXRhLCBMZWZ0VG9wVmFsdWVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL3V0aWxzL3ZhbHVlcy9heGlzLXZhbHVlcyc7XG5pbXBvcnQgQm91bmRhcnlWYWx1ZXMsIHsgQm91bmRhcnlWYWx1ZXNEYXRhIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vc2hhcmVkL3V0aWxzL3ZhbHVlcy9ib3VuZGFyeS12YWx1ZXMnO1xuaW1wb3J0IHsgZmluZElmcmFtZUJ5V2luZG93LCBnZXRJZnJhbWVCeUVsZW1lbnQgfSBmcm9tICcuL2RvbS11dGlscyc7XG5pbXBvcnQgKiBhcyBjbGllbnRzTWFuYWdlciBmcm9tICcuLi9jbGllbnRzLW1hbmFnZXInO1xuaW1wb3J0IHsgUG9zaXRpb25EaW1lbnNpb25zLCBTZXJ2ZXJOb2RlIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgZGVzY3JpYmVOb2RlIH0gZnJvbSAnLi8nO1xuXG5pbXBvcnQge1xuICAgIGdldEJveE1vZGVsLFxuICAgIGdldERvY3VtZW50U2Nyb2xsLFxuICAgIGdldEVsZW1lbnRQYWRkaW5nLFxuICAgIGdldEVsZW1lbnREaW1lbnNpb25zLFxuICAgIGdldFByb3BlcnRpZXMsXG59IGZyb20gJy4vc3R5bGUtdXRpbHMnO1xuXG5pbXBvcnQgeyBFbGVtZW50UmVjdGFuZ2xlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vY2xpZW50L2NvcmUvdXRpbHMvc2hhcmVkL3R5cGVzJztcblxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0Q2xpZW50UG9zaXRpb24gKG5vZGU6IFNlcnZlck5vZGUpOiBQcm9taXNlPEF4aXNWYWx1ZXM8bnVtYmVyPj4ge1xuICAgIGNvbnN0IGJveE1vZGVsID0gYXdhaXQgZ2V0Qm94TW9kZWwobm9kZSk7XG5cbiAgICByZXR1cm4gbmV3IEF4aXNWYWx1ZXM8bnVtYmVyPihib3hNb2RlbC5ib3JkZXJbMF0sIGJveE1vZGVsLmJvcmRlclsxXSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRPZmZzZXRQb3NpdGlvbiAobm9kZTogU2VydmVyTm9kZSk6IFByb21pc2U8TGVmdFRvcFZhbHVlczxudW1iZXI+PiB7XG4gICAgY29uc3QgZGltZW5zaW9ucyAgICA9IGF3YWl0IGdldENsaWVudERpbWVuc2lvbnMobm9kZSk7XG4gICAgY29uc3QgeyBsZWZ0LCB0b3AgfSA9IGF3YWl0IGdldERvY3VtZW50U2Nyb2xsKG5vZGUpO1xuXG4gICAgcmV0dXJuIHsgbGVmdDogZGltZW5zaW9ucy5sZWZ0ICsgbGVmdCwgdG9wOiBkaW1lbnNpb25zLnRvcCArIHRvcCB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29udGFpbnNPZmZzZXQgKG5vZGU6IFNlcnZlck5vZGUsIG9mZnNldFg/OiBudW1iZXIsIG9mZnNldFk/OiBudW1iZXIpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBkaW1lbnNpb25zID0gYXdhaXQgZ2V0Q2xpZW50RGltZW5zaW9ucyhub2RlKTtcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gYXdhaXQgZ2V0UHJvcGVydGllcyhub2RlLCAnc2Nyb2xsV2lkdGgnLCAnc2Nyb2xsSGVpZ2h0Jyk7XG5cbiAgICBjb25zdCB3aWR0aCAgPSBNYXRoLm1heChOdW1iZXIocHJvcGVydGllcy5zY3JvbGxXaWR0aCksIGRpbWVuc2lvbnMud2lkdGgpO1xuICAgIGNvbnN0IGhlaWdodCA9IE1hdGgubWF4KE51bWJlcihwcm9wZXJ0aWVzLnNjcm9sbEhlaWdodCksIGRpbWVuc2lvbnMuaGVpZ2h0KTtcbiAgICBjb25zdCBtYXhYICAgPSBkaW1lbnNpb25zLnNjcm9sbGJhci5yaWdodCArIGRpbWVuc2lvbnMuYm9yZGVyLmxlZnQgKyBkaW1lbnNpb25zLmJvcmRlci5yaWdodCArIHdpZHRoO1xuICAgIGNvbnN0IG1heFkgICA9IGRpbWVuc2lvbnMuc2Nyb2xsYmFyLmJvdHRvbSArIGRpbWVuc2lvbnMuYm9yZGVyLnRvcCArIGRpbWVuc2lvbnMuYm9yZGVyLmJvdHRvbSArIGhlaWdodDtcblxuICAgIHJldHVybiAodHlwZW9mIG9mZnNldFggPT09ICd1bmRlZmluZWQnIHx8IG9mZnNldFggPj0gMCAmJiBtYXhYID49IG9mZnNldFgpICYmXG4gICAgICAgICh0eXBlb2Ygb2Zmc2V0WSA9PT0gJ3VuZGVmaW5lZCcgfHwgb2Zmc2V0WSA+PSAwICYmIG1heFkgPj0gb2Zmc2V0WSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRJZnJhbWVDbGllbnRDb29yZGluYXRlcyAobm9kZTogU2VydmVyTm9kZSk6IFByb21pc2U8Qm91bmRhcnlWYWx1ZXNEYXRhPiB7XG4gICAgY29uc3QgZGltZW5zaW9ucyA9IGF3YWl0IGdldENsaWVudERpbWVuc2lvbnMobm9kZSk7XG5cbiAgICBjb25zdCBbIGxlZnQsIHRvcCwgcmlnaHQsIGJvdHRvbSBdID0gW1xuICAgICAgICBkaW1lbnNpb25zLmxlZnQgKyBkaW1lbnNpb25zLmJvcmRlci5sZWZ0ICsgZGltZW5zaW9ucy5wYWRkaW5ncy5sZWZ0LFxuICAgICAgICBkaW1lbnNpb25zLnRvcCArIGRpbWVuc2lvbnMuYm9yZGVyLnRvcCArIGRpbWVuc2lvbnMucGFkZGluZ3MubGVmdCxcbiAgICAgICAgZGltZW5zaW9ucy5yaWdodCAtIGRpbWVuc2lvbnMuYm9yZGVyLnJpZ2h0IC0gZGltZW5zaW9ucy5wYWRkaW5ncy5yaWdodCxcbiAgICAgICAgZGltZW5zaW9ucy5ib3R0b20gLSBkaW1lbnNpb25zLmJvcmRlci5ib3R0b20gLSBkaW1lbnNpb25zLnBhZGRpbmdzLmJvdHRvbSxcbiAgICBdO1xuXG4gICAgcmV0dXJuIG5ldyBCb3VuZGFyeVZhbHVlcyh0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0SWZyYW1lUG9pbnRSZWxhdGl2ZVRvUGFyZW50RnJhbWUgKGlmcmFtZVBvaW50OiBBeGlzVmFsdWVzPG51bWJlcj4sIGNvbnRleHQ6IEV4ZWN1dGlvbkNvbnRleHQpOiBQcm9taXNlPEF4aXNWYWx1ZXM8bnVtYmVyPiB8IG51bGw+IHtcbiAgICBjb25zdCBpZnJhbWUgPSBhd2FpdCBmaW5kSWZyYW1lQnlXaW5kb3coY29udGV4dCk7XG5cbiAgICBpZiAoIWlmcmFtZSlcbiAgICAgICAgcmV0dXJuIG51bGw7XG5cbiAgICBjb25zdCBkaW1lbnNpb25zID0gYXdhaXQgZ2V0Q2xpZW50RGltZW5zaW9ucyhpZnJhbWUpO1xuICAgIGNvbnN0IHBhZGRpbmdzICAgPSBhd2FpdCBnZXRFbGVtZW50UGFkZGluZyhpZnJhbWUpO1xuXG4gICAgY29uc3QgbGVmdCA9IGRpbWVuc2lvbnMubGVmdCArIGRpbWVuc2lvbnMuYm9yZGVyLmxlZnQgKyBwYWRkaW5ncy5sZWZ0ICsgaWZyYW1lUG9pbnQueDtcbiAgICBjb25zdCB0b3AgID0gZGltZW5zaW9ucy50b3AgKyBkaW1lbnNpb25zLmJvcmRlci50b3AgKyBwYWRkaW5ncy50b3AgKyBpZnJhbWVQb2ludC55O1xuXG4gICAgcmV0dXJuIG5ldyBBeGlzVmFsdWVzPG51bWJlcj4obGVmdCwgdG9wKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEVsZW1lbnRGcm9tUG9pbnQgKHBvaW50OiBBeGlzVmFsdWVzRGF0YTxudW1iZXI+KTogUHJvbWlzZTxTZXJ2ZXJOb2RlIHwgbnVsbD4ge1xuICAgIGNvbnN0IHsgRE9NIH0gPSBjbGllbnRzTWFuYWdlci5nZXRDbGllbnQoKTtcblxuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHsgYmFja2VuZE5vZGVJZCB9ID0gYXdhaXQgRE9NLmdldE5vZGVGb3JMb2NhdGlvbih7IHg6IHBvaW50LngsIHk6IHBvaW50LnkgfSk7XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgRE9NLnJlc29sdmVOb2RlKHsgYmFja2VuZE5vZGVJZCB9KTtcblxuICAgICAgICBpZiAocmVzdWx0Py5vYmplY3Qub2JqZWN0SWQpXG4gICAgICAgICAgICByZXR1cm4gZGVzY3JpYmVOb2RlKERPTSwgcmVzdWx0Lm9iamVjdC5vYmplY3RJZC50b1N0cmluZygpKTtcbiAgICB9XG4gICAgY2F0Y2gge1xuICAgICAgICAvLyBOT1RFOiBUT0RPOiBmb3Igc29tZSByZWFzb24gdGhpcyBtZXRob2RzIHRocm93cyBlcnJvciBmb3IgY29ycmVjdCBgcG9pbnRgIHZhbHVlc1xuICAgICAgICAvLyBhbHdheXMgdGhyb3dzIGVycm9yIGZvciBuZWdhdGl2ZSB2YWx1ZXNcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEVsZW1lbnRSZWN0YW5nbGUgKG5vZGU6IFNlcnZlck5vZGUpOiBQcm9taXNlPEVsZW1lbnRSZWN0YW5nbGU+IHtcbiAgICBjb25zdCBkaW1lbnNpb25zID0gYXdhaXQgZ2V0RWxlbWVudERpbWVuc2lvbnMobm9kZSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBoZWlnaHQ6IGRpbWVuc2lvbnMuaGVpZ2h0LFxuICAgICAgICBsZWZ0OiAgIGRpbWVuc2lvbnMubGVmdCxcbiAgICAgICAgdG9wOiAgICBkaW1lbnNpb25zLnRvcCxcbiAgICAgICAgd2lkdGg6ICBkaW1lbnNpb25zLndpZHRoLFxuICAgIH07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRDbGllbnREaW1lbnNpb25zIChub2RlOiBTZXJ2ZXJOb2RlKTogUHJvbWlzZTxQb3NpdGlvbkRpbWVuc2lvbnM+IHtcbiAgICBjb25zdCBlbGVtZW50RGltZW5zaW9ucyA9IGF3YWl0IGdldEVsZW1lbnREaW1lbnNpb25zKG5vZGUpO1xuICAgIGNvbnN0IHBhcmVudEZyYW1lICAgICAgID0gYXdhaXQgZ2V0SWZyYW1lQnlFbGVtZW50KG5vZGUpO1xuXG4gICAgaWYgKHBhcmVudEZyYW1lKSB7XG4gICAgICAgIGNvbnN0IGZyYW1lQm94TW9kZWwgPSBhd2FpdCBnZXRCb3hNb2RlbChwYXJlbnRGcmFtZSk7XG5cbiAgICAgICAgZWxlbWVudERpbWVuc2lvbnMubGVmdCAgIC09IGZyYW1lQm94TW9kZWwuY29udGVudFswXTtcbiAgICAgICAgZWxlbWVudERpbWVuc2lvbnMudG9wICAgIC09IGZyYW1lQm94TW9kZWwuY29udGVudFsxXTtcbiAgICAgICAgZWxlbWVudERpbWVuc2lvbnMuYm90dG9tIC09IGZyYW1lQm94TW9kZWwuY29udGVudFsxXTtcbiAgICAgICAgZWxlbWVudERpbWVuc2lvbnMucmlnaHQgIC09IGZyYW1lQm94TW9kZWwuY29udGVudFswXTtcbiAgICB9XG5cbiAgICByZXR1cm4gZWxlbWVudERpbWVuc2lvbnM7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRXaW5kb3dQb3NpdGlvbiAoKTogUHJvbWlzZTxBeGlzVmFsdWVzPG51bWJlcj4+IHtcbiAgICBjb25zdCB7IFJ1bnRpbWUgfSA9IGNsaWVudHNNYW5hZ2VyLmdldENsaWVudCgpO1xuXG4gICAgY29uc3QgYXJnczogUHJvdG9jb2wuUnVudGltZS5FdmFsdWF0ZVJlcXVlc3QgPSB7XG4gICAgICAgIGV4cHJlc3Npb246IGAoe1xuICAgICAgICAgICAgeDogd2luZG93LnNjcmVlbkxlZnQgfHwgd2luZG93LnNjcmVlblgsXG4gICAgICAgICAgICB5OiB3aW5kb3cuc2NyZWVuVG9wIHx8IHdpbmRvdy5zY3JlZW5ZXG4gICAgICAgIH0pYCxcbiAgICAgICAgcmV0dXJuQnlWYWx1ZTogdHJ1ZSxcbiAgICB9O1xuXG4gICAgY29uc3QgeyByZXN1bHQgfSA9IGF3YWl0IFJ1bnRpbWUuZXZhbHVhdGUoYXJncyk7XG5cbiAgICByZXR1cm4gcmVzdWx0LnZhbHVlO1xufVxuXG4vLyBUT0RPOiBpbXBsZW1lbnRcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBvZmZzZXRUb0NsaWVudENvb3JkcyAocG9pbnQ6IEF4aXNWYWx1ZXM8bnVtYmVyPik6IFByb21pc2U8QXhpc1ZhbHVlczxudW1iZXI+PiB7XG4gICAgcmV0dXJuIHBvaW50O1xufVxuIl19
@@ -22,7 +22,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
22
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.getDocumentScroll = exports.getWindowDimensions = exports.getElementScroll = exports.getElementPadding = exports.getBordersWidth = exports.getClientDimensions = exports.getBoxModel = exports.getScroll = exports.getProperties = exports.getStyleProperties = void 0;
25
+ exports.getDocumentScroll = exports.getWindowDimensions = exports.hasScroll = exports.getElementScroll = exports.getElementPadding = exports.getBordersWidth = exports.getElementDimensions = exports.getBoxModel = exports.getScroll = exports.getProperties = exports.getStyleProperties = void 0;
26
26
  const boundary_values_1 = __importDefault(require("../../../../../../../shared/utils/values/boundary-values"));
27
27
  const dom_utils_1 = require("./dom-utils");
28
28
  const clientsManager = __importStar(require("../clients-manager"));
@@ -108,19 +108,7 @@ async function getElementDimensions(node) {
108
108
  width,
109
109
  };
110
110
  }
111
- async function getClientDimensions(node) {
112
- const elementDimensions = await getElementDimensions(node);
113
- const parentFrame = await dom_utils_1.getIframeByElement(node);
114
- if (parentFrame) {
115
- const frameBoxModel = await getBoxModel(parentFrame);
116
- elementDimensions.left -= frameBoxModel.content[0];
117
- elementDimensions.top -= frameBoxModel.content[1];
118
- elementDimensions.bottom -= frameBoxModel.content[1];
119
- elementDimensions.right -= frameBoxModel.content[0];
120
- }
121
- return elementDimensions;
122
- }
123
- exports.getClientDimensions = getClientDimensions;
111
+ exports.getElementDimensions = getElementDimensions;
124
112
  async function getBordersWidth(node) {
125
113
  const dimensions = await getElementDimensions(node);
126
114
  return dimensions.border;
@@ -134,6 +122,11 @@ async function getElementScroll(node) {
134
122
  return getScroll(node);
135
123
  }
136
124
  exports.getElementScroll = getElementScroll;
125
+ async function hasScroll(node) {
126
+ const scroll = await getElementScroll(node);
127
+ return scroll.left > 0 || scroll.top > 0;
128
+ }
129
+ exports.hasScroll = hasScroll;
137
130
  async function getWindowDimensions(executionContext) {
138
131
  const { Runtime } = clientsManager.getClient();
139
132
  const args = {
@@ -155,4 +148,4 @@ async function getDocumentScroll(node) {
155
148
  return getElementScroll(document);
156
149
  }
157
150
  exports.getDocumentScroll = getDocumentScroll;
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYnJvd3Nlci9wcm92aWRlci9idWlsdC1pbi9kZWRpY2F0ZWQvY2hyb21lL2NkcC1jbGllbnQvdXRpbHMvc3R5bGUtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLCtHQUE4RztBQUc5RywyQ0FBc0U7QUFFdEUsbUVBQXFEO0FBR3JELEtBQUssVUFBVSxVQUFVLENBQUUsSUFBZ0I7SUFDdkMsTUFBTSxNQUFNLEdBQU8sY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzlDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RELE1BQU0sS0FBSyxHQUFRLE1BQU0sa0JBQWtCLENBQUMsTUFBTSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFFdEgsTUFBTSxLQUFLLEdBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDckQsTUFBTSxJQUFJLEdBQUssUUFBUSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNuRCxNQUFNLEdBQUcsR0FBTSxRQUFRLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRWxELE9BQU8sSUFBSSx5QkFBYyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFFTSxLQUFLLFVBQVUsa0JBQWtCLENBQUUsTUFBYyxFQUFFLEdBQUcsS0FBZTtJQUN4RSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBRTNDLE1BQU0sVUFBVSxHQUF1QixFQUFHLENBQUM7SUFDM0MsTUFBTSxLQUFLLEdBQTRCLE1BQU0sR0FBRyxDQUFDLHVCQUF1QixDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUVyRixLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2hFLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUNoQixVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7SUFDL0MsQ0FBQyxDQUFDLENBQUM7SUFFUCxPQUFPLFVBQVUsQ0FBQztBQUN0QixDQUFDO0FBWkQsZ0RBWUM7QUFFTSxLQUFLLFVBQVUsYUFBYSxDQUFFLElBQWdCLEVBQUUsR0FBRyxLQUFlO0lBQ3JFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUM7SUFFL0MsTUFBTSxVQUFVLEdBQXVCLEVBQUcsQ0FBQztJQUMzQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQXVCLE1BQU0sT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV6RSxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbkQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFOztRQUNoQixVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFHLFFBQVEsQ0FBQyxLQUFLLDBDQUFFLEtBQUssQ0FBQztJQUN0RCxDQUFDLENBQUMsQ0FBQztJQUVQLE9BQU8sVUFBVSxDQUFDO0FBQ3RCLENBQUM7QUFaRCxzQ0FZQztBQUVNLEtBQUssVUFBVSxTQUFTLENBQUUsSUFBZ0I7SUFDN0MsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLGFBQWEsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBRXZGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztBQUNoRSxDQUFDO0FBSkQsOEJBSUM7QUFFTSxLQUFLLFVBQVUsV0FBVyxDQUFFLElBQWdCO0lBQy9DLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBSSxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDNUMsTUFBTSxRQUFRLEdBQUcsTUFBTSxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBRXBFLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQztBQUMxQixDQUFDO0FBTEQsa0NBS0M7QUFFRCxLQUFLLFVBQVUsb0JBQW9CLENBQUUsSUFBZ0I7SUFDakQscUZBQXFGO0lBQ3JGLG9EQUFvRDtJQUNwRCxNQUFNLGNBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUcsQ0FBQyxDQUFDO0lBRXRELE1BQU0sUUFBUSxHQUFHLE1BQU0sV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sTUFBTSxHQUFLLE1BQU0sU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLE1BQU0sUUFBUSxHQUFHLE1BQU0sVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXhDLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsUUFBUSxDQUFDO0lBRTdELE1BQU0sSUFBSSxHQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckMsTUFBTSxHQUFHLEdBQU0sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pCLE1BQU0sTUFBTSxHQUFHLEdBQUcsR0FBRyxNQUFNLENBQUM7SUFDNUIsTUFBTSxLQUFLLEdBQUksSUFBSSxHQUFHLEtBQUssQ0FBQztJQUU1QixNQUFNLE9BQU8sR0FBRztRQUNaLEdBQUcsRUFBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUM5QixLQUFLLEVBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDOUIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzlCLElBQUksRUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztLQUNqQyxDQUFDO0lBRUYsTUFBTSxTQUFTLEdBQUc7UUFDZCxLQUFLLEVBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFDNUQsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO0tBQ2hFLENBQUM7SUFFRixPQUFPO1FBQ0gsTUFBTSxFQUFFLE9BQU87UUFDZixNQUFNO1FBQ04sTUFBTTtRQUNOLElBQUk7UUFDSixLQUFLO1FBQ0wsTUFBTSxFQUFFO1lBQ0osSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQyxHQUFHLEVBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3ZDO1FBQ0QsU0FBUztRQUNULFFBQVE7UUFDUixHQUFHO1FBQ0gsS0FBSztLQUNSLENBQUM7QUFDTixDQUFDO0FBRU0sS0FBSyxVQUFVLG1CQUFtQixDQUFFLElBQWdCO0lBQ3ZELE1BQU0saUJBQWlCLEdBQUcsTUFBTSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzRCxNQUFNLFdBQVcsR0FBUyxNQUFNLDhCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXpELElBQUksV0FBVyxFQUFFO1FBQ2IsTUFBTSxhQUFhLEdBQUcsTUFBTSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFckQsaUJBQWlCLENBQUMsSUFBSSxJQUFNLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckQsaUJBQWlCLENBQUMsR0FBRyxJQUFPLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckQsaUJBQWlCLENBQUMsTUFBTSxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckQsaUJBQWlCLENBQUMsS0FBSyxJQUFLLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDeEQ7SUFFRCxPQUFPLGlCQUFpQixDQUFDO0FBQzdCLENBQUM7QUFkRCxrREFjQztBQUVNLEtBQUssVUFBVSxlQUFlLENBQUUsSUFBZ0I7SUFDbkQsTUFBTSxVQUFVLEdBQUcsTUFBTSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVwRCxPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQUM7QUFDN0IsQ0FBQztBQUpELDBDQUlDO0FBRU0sS0FBSyxVQUFVLGlCQUFpQixDQUFFLElBQWdCO0lBQ3JELE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzVCLENBQUM7QUFGRCw4Q0FFQztBQUVNLEtBQUssVUFBVSxnQkFBZ0IsQ0FBRSxJQUFnQjtJQUNwRCxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMzQixDQUFDO0FBRkQsNENBRUM7QUFFTSxLQUFLLFVBQVUsbUJBQW1CLENBQUUsZ0JBQW1DO0lBQzFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUM7SUFFL0MsTUFBTSxJQUFJLEdBQXFDO1FBQzNDLFVBQVUsRUFBRTs7O1dBR1Q7UUFDSCxhQUFhLEVBQUUsSUFBSTtLQUN0QixDQUFDO0lBRUYsSUFBSSxnQkFBZ0I7UUFDaEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7SUFFNUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFVLE1BQU0sT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2RCxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFFdkMsT0FBTyxJQUFJLHlCQUFjLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDbkQsQ0FBQztBQWxCRCxrREFrQkM7QUFFTSxLQUFLLFVBQVUsaUJBQWlCLENBQUUsSUFBZ0I7SUFDckQsTUFBTSxRQUFRLEdBQUcsTUFBTSwrQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVqRCxPQUFPLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFKRCw4Q0FJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExlZnRUb3BWYWx1ZXMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvdXRpbHMvdmFsdWVzL2F4aXMtdmFsdWVzJztcbmltcG9ydCBCb3VuZGFyeVZhbHVlcywgeyBCb3VuZGFyeVZhbHVlc0RhdGEgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvdXRpbHMvdmFsdWVzL2JvdW5kYXJ5LXZhbHVlcyc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vY29uZmlndXJhdGlvbi9pbnRlcmZhY2VzJztcbmltcG9ydCBQcm90b2NvbCBmcm9tICdkZXZ0b29scy1wcm90b2NvbC90eXBlcy9wcm90b2NvbCc7XG5pbXBvcnQgeyBnZXRTY3JvbGxpbmdFbGVtZW50LCBnZXRJZnJhbWVCeUVsZW1lbnQgfSBmcm9tICcuL2RvbS11dGlscyc7XG5pbXBvcnQgRXhlY3V0aW9uQ29udGV4dCBmcm9tICcuLi9leGVjdXRpb24tY29udGV4dCc7XG5pbXBvcnQgKiBhcyBjbGllbnRzTWFuYWdlciBmcm9tICcuLi9jbGllbnRzLW1hbmFnZXInO1xuaW1wb3J0IHsgU2VydmVyTm9kZSwgUG9zaXRpb25EaW1lbnNpb25zIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5hc3luYyBmdW5jdGlvbiBnZXRQYWRkaW5nIChub2RlOiBTZXJ2ZXJOb2RlKTogUHJvbWlzZTxCb3VuZGFyeVZhbHVlc0RhdGE+IHtcbiAgICBjb25zdCBjbGllbnQgICAgID0gY2xpZW50c01hbmFnZXIuZ2V0Q2xpZW50KCk7XG4gICAgY29uc3QgeyBub2RlSWQgfSA9IGF3YWl0IGNsaWVudC5ET00ucmVxdWVzdE5vZGUobm9kZSk7XG4gICAgY29uc3Qgc3R5bGUgICAgICA9IGF3YWl0IGdldFN0eWxlUHJvcGVydGllcyhub2RlSWQsICdwYWRkaW5nLXJpZ2h0JywgJ3BhZGRpbmctYm90dG9tJywgJ3BhZGRpbmctbGVmdCcsICdwYWRkaW5nLXRvcCcpO1xuXG4gICAgY29uc3QgcmlnaHQgID0gcGFyc2VJbnQoc3R5bGVbJ3BhZGRpbmctcmlnaHQnXSwgMTApO1xuICAgIGNvbnN0IGJvdHRvbSA9IHBhcnNlSW50KHN0eWxlWydwYWRkaW5nLWJvdHRvbSddLCAxMCk7XG4gICAgY29uc3QgbGVmdCAgID0gcGFyc2VJbnQoc3R5bGVbJ3BhZGRpbmctbGVmdCddLCAxMCk7XG4gICAgY29uc3QgdG9wICAgID0gcGFyc2VJbnQoc3R5bGVbJ3BhZGRpbmctdG9wJ10sIDEwKTtcblxuICAgIHJldHVybiBuZXcgQm91bmRhcnlWYWx1ZXModG9wLCByaWdodCwgYm90dG9tLCBsZWZ0KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFN0eWxlUHJvcGVydGllcyAobm9kZUlkOiBudW1iZXIsIC4uLm5hbWVzOiBzdHJpbmdbXSk6IFByb21pc2U8RGljdGlvbmFyeTxzdHJpbmc+PiB7XG4gICAgY29uc3QgeyBDU1MgfSA9IGNsaWVudHNNYW5hZ2VyLmdldENsaWVudCgpO1xuXG4gICAgY29uc3QgcHJvcGVydGllczogRGljdGlvbmFyeTxzdHJpbmc+ID0geyB9O1xuICAgIGNvbnN0IHN0eWxlICAgICAgICAgICAgICAgICAgICAgICAgICA9IGF3YWl0IENTUy5nZXRDb21wdXRlZFN0eWxlRm9yTm9kZSh7IG5vZGVJZCB9KTtcblxuICAgIHN0eWxlLmNvbXB1dGVkU3R5bGUuZmlsdGVyKHByb3BlcnR5ID0+IG5hbWVzLmluY2x1ZGVzKHByb3BlcnR5Lm5hbWUpKVxuICAgICAgICAuZm9yRWFjaChwcm9wZXJ0eSA9PiB7XG4gICAgICAgICAgICBwcm9wZXJ0aWVzW3Byb3BlcnR5Lm5hbWVdID0gcHJvcGVydHkudmFsdWU7XG4gICAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHByb3BlcnRpZXM7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRQcm9wZXJ0aWVzIChub2RlOiBTZXJ2ZXJOb2RlLCAuLi5uYW1lczogc3RyaW5nW10pOiBQcm9taXNlPERpY3Rpb25hcnk8c3RyaW5nPj4ge1xuICAgIGNvbnN0IHsgUnVudGltZSB9ID0gY2xpZW50c01hbmFnZXIuZ2V0Q2xpZW50KCk7XG5cbiAgICBjb25zdCBwcm9wZXJ0aWVzOiBEaWN0aW9uYXJ5PHN0cmluZz4gPSB7IH07XG4gICAgY29uc3QgeyByZXN1bHQgfSAgICAgICAgICAgICAgICAgICAgID0gYXdhaXQgUnVudGltZS5nZXRQcm9wZXJ0aWVzKG5vZGUpO1xuXG4gICAgcmVzdWx0LmZpbHRlcihwcm9wZXJ0eSA9PiBuYW1lcy5pbmNsdWRlcyhwcm9wZXJ0eS5uYW1lKSlcbiAgICAgICAgLmZvckVhY2gocHJvcGVydHkgPT4ge1xuICAgICAgICAgICAgcHJvcGVydGllc1twcm9wZXJ0eS5uYW1lXSA9IHByb3BlcnR5LnZhbHVlPy52YWx1ZTtcbiAgICAgICAgfSk7XG5cbiAgICByZXR1cm4gcHJvcGVydGllcztcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFNjcm9sbCAobm9kZTogU2VydmVyTm9kZSk6IFByb21pc2U8TGVmdFRvcFZhbHVlczxudW1iZXI+PiB7XG4gICAgY29uc3QgeyBzY3JvbGxMZWZ0LCBzY3JvbGxUb3AgfSA9IGF3YWl0IGdldFByb3BlcnRpZXMobm9kZSwgJ3Njcm9sbExlZnQnLCAnc2Nyb2xsVG9wJyk7XG5cbiAgICByZXR1cm4geyBsZWZ0OiBOdW1iZXIoc2Nyb2xsTGVmdCksIHRvcDogTnVtYmVyKHNjcm9sbFRvcCkgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEJveE1vZGVsIChub2RlOiBTZXJ2ZXJOb2RlKTogUHJvbWlzZTxQcm90b2NvbC5ET00uQm94TW9kZWw+IHtcbiAgICBjb25zdCB7IERPTSB9ICA9IGNsaWVudHNNYW5hZ2VyLmdldENsaWVudCgpO1xuICAgIGNvbnN0IGJveE1vZGVsID0gYXdhaXQgRE9NLmdldEJveE1vZGVsKHsgb2JqZWN0SWQ6IG5vZGUub2JqZWN0SWQgfSk7XG5cbiAgICByZXR1cm4gYm94TW9kZWwubW9kZWw7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGdldEVsZW1lbnREaW1lbnNpb25zIChub2RlOiBTZXJ2ZXJOb2RlKTogUHJvbWlzZTxQb3NpdGlvbkRpbWVuc2lvbnM+IHtcbiAgICAvLyBOT1RFOiBmb3Igc29tZSByZWFzb24gdGhpcyBtZXRob2QgY2FsbCBpcyByZXF1aXJlZCBmb3IgQ1NTLmdldENvbXB1dGVkU3R5bGVGb3JOb2RlXG4gICAgLy8gVE9ETzogcmVtb3ZlIHRoaXMgbGluZSBhZnRlciB0aGUgcHJvYmxlbSBpcyBjbGVhclxuICAgIGF3YWl0IGNsaWVudHNNYW5hZ2VyLmdldENsaWVudCgpLkRPTS5nZXREb2N1bWVudCh7IH0pO1xuXG4gICAgY29uc3QgYm94TW9kZWwgPSBhd2FpdCBnZXRCb3hNb2RlbChub2RlKTtcbiAgICBjb25zdCBzY3JvbGwgICA9IGF3YWl0IGdldFNjcm9sbChub2RlKTtcbiAgICBjb25zdCBwYWRkaW5ncyA9IGF3YWl0IGdldFBhZGRpbmcobm9kZSk7XG5cbiAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQsIGJvcmRlciwgcGFkZGluZywgY29udGVudCB9ID0gYm94TW9kZWw7XG5cbiAgICBjb25zdCBsZWZ0ICAgPSBNYXRoLnJvdW5kKGJvcmRlclswXSk7XG4gICAgY29uc3QgdG9wICAgID0gYm9yZGVyWzFdO1xuICAgIGNvbnN0IGJvdHRvbSA9IHRvcCArIGhlaWdodDtcbiAgICBjb25zdCByaWdodCAgPSBsZWZ0ICsgd2lkdGg7XG5cbiAgICBjb25zdCBib3JkZXJzID0ge1xuICAgICAgICB0b3A6ICAgIHBhZGRpbmdbMV0gLSBib3JkZXJbMV0sXG4gICAgICAgIHJpZ2h0OiAgYm9yZGVyWzRdIC0gcGFkZGluZ1s0XSxcbiAgICAgICAgYm90dG9tOiBib3JkZXJbNV0gLSBwYWRkaW5nWzVdLFxuICAgICAgICBsZWZ0OiAgIHBhZGRpbmdbMF0gLSBib3JkZXJbMF0sXG4gICAgfTtcblxuICAgIGNvbnN0IHNjcm9sbGJhciA9IHtcbiAgICAgICAgcmlnaHQ6ICBNYXRoLnJvdW5kKHBhZGRpbmdbMl0gLSBjb250ZW50WzJdIC0gcGFkZGluZ3MucmlnaHQpLFxuICAgICAgICBib3R0b206IE1hdGgucm91bmQocGFkZGluZ1s3XSAtIGNvbnRlbnRbN10gLSBwYWRkaW5ncy5ib3R0b20pLFxuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBib3JkZXI6IGJvcmRlcnMsXG4gICAgICAgIGJvdHRvbSxcbiAgICAgICAgaGVpZ2h0LFxuICAgICAgICBsZWZ0LFxuICAgICAgICByaWdodCxcbiAgICAgICAgc2Nyb2xsOiB7XG4gICAgICAgICAgICBsZWZ0OiBNYXRoLnJvdW5kKE51bWJlcihzY3JvbGwubGVmdCkpLFxuICAgICAgICAgICAgdG9wOiAgTWF0aC5yb3VuZChOdW1iZXIoc2Nyb2xsLnRvcCkpLFxuICAgICAgICB9LFxuICAgICAgICBzY3JvbGxiYXIsXG4gICAgICAgIHBhZGRpbmdzLFxuICAgICAgICB0b3AsXG4gICAgICAgIHdpZHRoLFxuICAgIH07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRDbGllbnREaW1lbnNpb25zIChub2RlOiBTZXJ2ZXJOb2RlKTogUHJvbWlzZTxQb3NpdGlvbkRpbWVuc2lvbnM+IHtcbiAgICBjb25zdCBlbGVtZW50RGltZW5zaW9ucyA9IGF3YWl0IGdldEVsZW1lbnREaW1lbnNpb25zKG5vZGUpO1xuICAgIGNvbnN0IHBhcmVudEZyYW1lICAgICAgID0gYXdhaXQgZ2V0SWZyYW1lQnlFbGVtZW50KG5vZGUpO1xuXG4gICAgaWYgKHBhcmVudEZyYW1lKSB7XG4gICAgICAgIGNvbnN0IGZyYW1lQm94TW9kZWwgPSBhd2FpdCBnZXRCb3hNb2RlbChwYXJlbnRGcmFtZSk7XG5cbiAgICAgICAgZWxlbWVudERpbWVuc2lvbnMubGVmdCAgIC09IGZyYW1lQm94TW9kZWwuY29udGVudFswXTtcbiAgICAgICAgZWxlbWVudERpbWVuc2lvbnMudG9wICAgIC09IGZyYW1lQm94TW9kZWwuY29udGVudFsxXTtcbiAgICAgICAgZWxlbWVudERpbWVuc2lvbnMuYm90dG9tIC09IGZyYW1lQm94TW9kZWwuY29udGVudFsxXTtcbiAgICAgICAgZWxlbWVudERpbWVuc2lvbnMucmlnaHQgIC09IGZyYW1lQm94TW9kZWwuY29udGVudFswXTtcbiAgICB9XG5cbiAgICByZXR1cm4gZWxlbWVudERpbWVuc2lvbnM7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRCb3JkZXJzV2lkdGggKG5vZGU6IFNlcnZlck5vZGUpOiBQcm9taXNlPEJvdW5kYXJ5VmFsdWVzRGF0YT4ge1xuICAgIGNvbnN0IGRpbWVuc2lvbnMgPSBhd2FpdCBnZXRFbGVtZW50RGltZW5zaW9ucyhub2RlKTtcblxuICAgIHJldHVybiBkaW1lbnNpb25zLmJvcmRlcjtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEVsZW1lbnRQYWRkaW5nIChub2RlOiBTZXJ2ZXJOb2RlKTogUHJvbWlzZTxCb3VuZGFyeVZhbHVlc0RhdGE+IHtcbiAgICByZXR1cm4gZ2V0UGFkZGluZyhub2RlKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEVsZW1lbnRTY3JvbGwgKG5vZGU6IFNlcnZlck5vZGUpOiBQcm9taXNlPExlZnRUb3BWYWx1ZXM8bnVtYmVyPj4ge1xuICAgIHJldHVybiBnZXRTY3JvbGwobm9kZSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRXaW5kb3dEaW1lbnNpb25zIChleGVjdXRpb25Db250ZXh0PzogRXhlY3V0aW9uQ29udGV4dCk6IFByb21pc2U8Qm91bmRhcnlWYWx1ZXM+IHtcbiAgICBjb25zdCB7IFJ1bnRpbWUgfSA9IGNsaWVudHNNYW5hZ2VyLmdldENsaWVudCgpO1xuXG4gICAgY29uc3QgYXJnczogUHJvdG9jb2wuUnVudGltZS5FdmFsdWF0ZVJlcXVlc3QgPSB7XG4gICAgICAgIGV4cHJlc3Npb246IGAoe1xuICAgICAgICAgICAgd2lkdGg6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCxcbiAgICAgICAgICAgIGhlaWdodDogZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodFxuICAgICAgICB9KWAsXG4gICAgICAgIHJldHVybkJ5VmFsdWU6IHRydWUsXG4gICAgfTtcblxuICAgIGlmIChleGVjdXRpb25Db250ZXh0KVxuICAgICAgICBhcmdzLmNvbnRleHRJZCA9IGV4ZWN1dGlvbkNvbnRleHQuY3R4SWQ7XG5cbiAgICBjb25zdCB7IHJlc3VsdCB9ICAgICAgICA9IGF3YWl0IFJ1bnRpbWUuZXZhbHVhdGUoYXJncyk7XG4gICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSByZXN1bHQudmFsdWU7XG5cbiAgICByZXR1cm4gbmV3IEJvdW5kYXJ5VmFsdWVzKDAsIHdpZHRoLCBoZWlnaHQsIDApO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RG9jdW1lbnRTY3JvbGwgKG5vZGU6IFNlcnZlck5vZGUpOiBQcm9taXNlPExlZnRUb3BWYWx1ZXM8bnVtYmVyPj4ge1xuICAgIGNvbnN0IGRvY3VtZW50ID0gYXdhaXQgZ2V0U2Nyb2xsaW5nRWxlbWVudChub2RlKTtcblxuICAgIHJldHVybiBnZXRFbGVtZW50U2Nyb2xsKGRvY3VtZW50KTtcbn1cbiJdfQ==
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUtdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYnJvd3Nlci9wcm92aWRlci9idWlsdC1pbi9kZWRpY2F0ZWQvY2hyb21lL2NkcC1jbGllbnQvdXRpbHMvc3R5bGUtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLCtHQUE4RztBQUc5RywyQ0FBa0Q7QUFFbEQsbUVBQXFEO0FBR3JELEtBQUssVUFBVSxVQUFVLENBQUUsSUFBZ0I7SUFDdkMsTUFBTSxNQUFNLEdBQU8sY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzlDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RELE1BQU0sS0FBSyxHQUFRLE1BQU0sa0JBQWtCLENBQUMsTUFBTSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFFdEgsTUFBTSxLQUFLLEdBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDckQsTUFBTSxJQUFJLEdBQUssUUFBUSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNuRCxNQUFNLEdBQUcsR0FBTSxRQUFRLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRWxELE9BQU8sSUFBSSx5QkFBYyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFFTSxLQUFLLFVBQVUsa0JBQWtC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QU0sQ0FBQyxLQUFLLENBQUM7SUFFdkMsT0FBTyxJQUFJLHlCQUFjLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDbkQsQ0FBQztBQWxCRCxrREFrQkM7QUFFTSxLQUFLLFVBQVUsaUJBQWlCLENBQUUsSUFBZ0I7SUFDckQsTUFBTSxRQUFRLEdBQUcsTUFBTSwrQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVqRCxPQUFPLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFKRCw4Q0FJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExlZnRUb3BWYWx1ZXMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvdXRpbHMvdmFsdWVzL2F4aXMtdmFsdWVzJztcbmltcG9ydCBCb3VuZGFyeVZhbHVlcywgeyBCb3VuZGFyeVZhbHVlc0RhdGEgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9zaGFyZWQvdXRpbHMvdmFsdWVzL2JvdW5kYXJ5LXZhbHVlcyc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vY29uZmlndXJhdGlvbi9pbnRlcmZhY2VzJztcbmltcG9ydCBQcm90b2NvbCBmcm9tICdkZXZ0b29scy1wcm90b2NvbC90eXBlcy9wcm90b2NvbCc7XG5pbXBvcnQgeyBnZXRTY3JvbGxpbmdFbGVtZW50IH0gZnJvbSAnLi9kb20tdXRpbHMnO1xuaW1wb3J0IEV4ZWN1dGlvbkNvbnRleHQgZnJvbSAnLi4vZXhlY3V0aW9uLWNvbnRleHQnO1xuaW1wb3J0ICogYXMgY2xpZW50c01hbmFnZXIgZnJvbSAnLi4vY2xpZW50cy1tYW5hZ2VyJztcbmltcG9ydCB7IFNlcnZlck5vZGUsIFBvc2l0aW9uRGltZW5zaW9ucyB9IGZyb20gJy4uL3R5cGVzJztcblxuYXN5bmMgZnVuY3Rpb24gZ2V0UGFkZGluZyAobm9kZTogU2VydmVyTm9kZSk6IFByb21pc2U8Qm91bmRhcnlWYWx1ZXNEYXRhPiB7XG4gICAgY29uc3QgY2xpZW50ICAgICA9IGNsaWVudHNNYW5hZ2VyLmdldENsaWVudCgpO1xuICAgIGNvbnN0IHsgbm9kZUlkIH0gPSBhd2FpdCBjbGllbnQuRE9NLnJlcXVlc3ROb2RlKG5vZGUpO1xuICAgIGNvbnN0IHN0eWxlICAgICAgPSBhd2FpdCBnZXRTdHlsZVByb3BlcnRpZXMobm9kZUlkLCAncGFkZGluZy1yaWdodCcsICdwYWRkaW5nLWJvdHRvbScsICdwYWRkaW5nLWxlZnQnLCAncGFkZGluZy10b3AnKTtcblxuICAgIGNvbnN0IHJpZ2h0ICA9IHBhcnNlSW50KHN0eWxlWydwYWRkaW5nLXJpZ2h0J10sIDEwKTtcbiAgICBjb25zdCBib3R0b20gPSBwYXJzZUludChzdHlsZVsncGFkZGluZy1ib3R0b20nXSwgMTApO1xuICAgIGNvbnN0IGxlZnQgICA9IHBhcnNlSW50KHN0eWxlWydwYWRkaW5nLWxlZnQnXSwgMTApO1xuICAgIGNvbnN0IHRvcCAgICA9IHBhcnNlSW50KHN0eWxlWydwYWRkaW5nLXRvcCddLCAxMCk7XG5cbiAgICByZXR1cm4gbmV3IEJvdW5kYXJ5VmFsdWVzKHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdCk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRTdHlsZVByb3BlcnRpZXMgKG5vZGVJZDogbnVtYmVyLCAuLi5uYW1lczogc3RyaW5nW10pOiBQcm9taXNlPERpY3Rpb25hcnk8c3RyaW5nPj4ge1xuICAgIGNvbnN0IHsgQ1NTIH0gPSBjbGllbnRzTWFuYWdlci5nZXRDbGllbnQoKTtcblxuICAgIGNvbnN0IHByb3BlcnRpZXM6IERpY3Rpb25hcnk8c3RyaW5nPiA9IHsgfTtcbiAgICBjb25zdCBzdHlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgPSBhd2FpdCBDU1MuZ2V0Q29tcHV0ZWRTdHlsZUZvck5vZGUoeyBub2RlSWQgfSk7XG5cbiAgICBzdHlsZS5jb21wdXRlZFN0eWxlLmZpbHRlcihwcm9wZXJ0eSA9PiBuYW1lcy5pbmNsdWRlcyhwcm9wZXJ0eS5uYW1lKSlcbiAgICAgICAgLmZvckVhY2gocHJvcGVydHkgPT4ge1xuICAgICAgICAgICAgcHJvcGVydGllc1twcm9wZXJ0eS5uYW1lXSA9IHByb3BlcnR5LnZhbHVlO1xuICAgICAgICB9KTtcblxuICAgIHJldHVybiBwcm9wZXJ0aWVzO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0UHJvcGVydGllcyAobm9kZTogU2VydmVyTm9kZSwgLi4ubmFtZXM6IHN0cmluZ1tdKTogUHJvbWlzZTxEaWN0aW9uYXJ5PHN0cmluZz4+IHtcbiAgICBjb25zdCB7IFJ1bnRpbWUgfSA9IGNsaWVudHNNYW5hZ2VyLmdldENsaWVudCgpO1xuXG4gICAgY29uc3QgcHJvcGVydGllczogRGljdGlvbmFyeTxzdHJpbmc+ID0geyB9O1xuICAgIGNvbnN0IHsgcmVzdWx0IH0gICAgICAgICAgICAgICAgICAgICA9IGF3YWl0IFJ1bnRpbWUuZ2V0UHJvcGVydGllcyhub2RlKTtcblxuICAgIHJlc3VsdC5maWx0ZXIocHJvcGVydHkgPT4gbmFtZXMuaW5jbHVkZXMocHJvcGVydHkubmFtZSkpXG4gICAgICAgIC5mb3JFYWNoKHByb3BlcnR5ID0+IHtcbiAgICAgICAgICAgIHByb3BlcnRpZXNbcHJvcGVydHkubmFtZV0gPSBwcm9wZXJ0eS52YWx1ZT8udmFsdWU7XG4gICAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHByb3BlcnRpZXM7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRTY3JvbGwgKG5vZGU6IFNlcnZlck5vZGUpOiBQcm9taXNlPExlZnRUb3BWYWx1ZXM8bnVtYmVyPj4ge1xuICAgIGNvbnN0IHsgc2Nyb2xsTGVmdCwgc2Nyb2xsVG9wIH0gPSBhd2FpdCBnZXRQcm9wZXJ0aWVzKG5vZGUsICdzY3JvbGxMZWZ0JywgJ3Njcm9sbFRvcCcpO1xuXG4gICAgcmV0dXJuIHsgbGVmdDogTnVtYmVyKHNjcm9sbExlZnQpLCB0b3A6IE51bWJlcihzY3JvbGxUb3ApIH07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRCb3hNb2RlbCAobm9kZTogU2VydmVyTm9kZSk6IFByb21pc2U8UHJvdG9jb2wuRE9NLkJveE1vZGVsPiB7XG4gICAgY29uc3QgeyBET00gfSAgPSBjbGllbnRzTWFuYWdlci5nZXRDbGllbnQoKTtcbiAgICBjb25zdCBib3hNb2RlbCA9IGF3YWl0IERPTS5nZXRCb3hNb2RlbCh7IG9iamVjdElkOiBub2RlLm9iamVjdElkIH0pO1xuXG4gICAgcmV0dXJuIGJveE1vZGVsLm1vZGVsO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RWxlbWVudERpbWVuc2lvbnMgKG5vZGU6IFNlcnZlck5vZGUpOiBQcm9taXNlPFBvc2l0aW9uRGltZW5zaW9ucz4ge1xuICAgIC8vIE5PVEU6IGZvciBzb21lIHJlYXNvbiB0aGlzIG1ldGhvZCBjYWxsIGlzIHJlcXVpcmVkIGZvciBDU1MuZ2V0Q29tcHV0ZWRTdHlsZUZvck5vZGVcbiAgICAvLyBUT0RPOiByZW1vdmUgdGhpcyBsaW5lIGFmdGVyIHRoZSBwcm9ibGVtIGlzIGNsZWFyXG4gICAgYXdhaXQgY2xpZW50c01hbmFnZXIuZ2V0Q2xpZW50KCkuRE9NLmdldERvY3VtZW50KHsgfSk7XG5cbiAgICBjb25zdCBib3hNb2RlbCA9IGF3YWl0IGdldEJveE1vZGVsKG5vZGUpO1xuICAgIGNvbnN0IHNjcm9sbCAgID0gYXdhaXQgZ2V0U2Nyb2xsKG5vZGUpO1xuICAgIGNvbnN0IHBhZGRpbmdzID0gYXdhaXQgZ2V0UGFkZGluZyhub2RlKTtcblxuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCwgYm9yZGVyLCBwYWRkaW5nLCBjb250ZW50IH0gPSBib3hNb2RlbDtcblxuICAgIGNvbnN0IGxlZnQgICA9IE1hdGgucm91bmQoYm9yZGVyWzBdKTtcbiAgICBjb25zdCB0b3AgICAgPSBib3JkZXJbMV07XG4gICAgY29uc3QgYm90dG9tID0gdG9wICsgaGVpZ2h0O1xuICAgIGNvbnN0IHJpZ2h0ICA9IGxlZnQgKyB3aWR0aDtcblxuICAgIGNvbnN0IGJvcmRlcnMgPSB7XG4gICAgICAgIHRvcDogICAgcGFkZGluZ1sxXSAtIGJvcmRlclsxXSxcbiAgICAgICAgcmlnaHQ6ICBib3JkZXJbNF0gLSBwYWRkaW5nWzRdLFxuICAgICAgICBib3R0b206IGJvcmRlcls1XSAtIHBhZGRpbmdbNV0sXG4gICAgICAgIGxlZnQ6ICAgcGFkZGluZ1swXSAtIGJvcmRlclswXSxcbiAgICB9O1xuXG4gICAgY29uc3Qgc2Nyb2xsYmFyID0ge1xuICAgICAgICByaWdodDogIE1hdGgucm91bmQocGFkZGluZ1syXSAtIGNvbnRlbnRbMl0gLSBwYWRkaW5ncy5yaWdodCksXG4gICAgICAgIGJvdHRvbTogTWF0aC5yb3VuZChwYWRkaW5nWzddIC0gY29udGVudFs3XSAtIHBhZGRpbmdzLmJvdHRvbSksXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIGJvcmRlcjogYm9yZGVycyxcbiAgICAgICAgYm90dG9tLFxuICAgICAgICBoZWlnaHQsXG4gICAgICAgIGxlZnQsXG4gICAgICAgIHJpZ2h0LFxuICAgICAgICBzY3JvbGw6IHtcbiAgICAgICAgICAgIGxlZnQ6IE1hdGgucm91bmQoTnVtYmVyKHNjcm9sbC5sZWZ0KSksXG4gICAgICAgICAgICB0b3A6ICBNYXRoLnJvdW5kKE51bWJlcihzY3JvbGwudG9wKSksXG4gICAgICAgIH0sXG4gICAgICAgIHNjcm9sbGJhcixcbiAgICAgICAgcGFkZGluZ3MsXG4gICAgICAgIHRvcCxcbiAgICAgICAgd2lkdGgsXG4gICAgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEJvcmRlcnNXaWR0aCAobm9kZTogU2VydmVyTm9kZSk6IFByb21pc2U8Qm91bmRhcnlWYWx1ZXNEYXRhPiB7XG4gICAgY29uc3QgZGltZW5zaW9ucyA9IGF3YWl0IGdldEVsZW1lbnREaW1lbnNpb25zKG5vZGUpO1xuXG4gICAgcmV0dXJuIGRpbWVuc2lvbnMuYm9yZGVyO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RWxlbWVudFBhZGRpbmcgKG5vZGU6IFNlcnZlck5vZGUpOiBQcm9taXNlPEJvdW5kYXJ5VmFsdWVzRGF0YT4ge1xuICAgIHJldHVybiBnZXRQYWRkaW5nKG5vZGUpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0RWxlbWVudFNjcm9sbCAobm9kZTogU2VydmVyTm9kZSk6IFByb21pc2U8TGVmdFRvcFZhbHVlczxudW1iZXI+PiB7XG4gICAgcmV0dXJuIGdldFNjcm9sbChub2RlKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhc1Njcm9sbCAobm9kZTogU2VydmVyTm9kZSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHNjcm9sbCA9IGF3YWl0IGdldEVsZW1lbnRTY3JvbGwobm9kZSk7XG5cbiAgICByZXR1cm4gc2Nyb2xsLmxlZnQgPiAwIHx8IHNjcm9sbC50b3AgPiAwO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0V2luZG93RGltZW5zaW9ucyAoZXhlY3V0aW9uQ29udGV4dD86IEV4ZWN1dGlvbkNvbnRleHQpOiBQcm9taXNlPEJvdW5kYXJ5VmFsdWVzPiB7XG4gICAgY29uc3QgeyBSdW50aW1lIH0gPSBjbGllbnRzTWFuYWdlci5nZXRDbGllbnQoKTtcblxuICAgIGNvbnN0IGFyZ3M6IFByb3RvY29sLlJ1bnRpbWUuRXZhbHVhdGVSZXF1ZXN0ID0ge1xuICAgICAgICBleHByZXNzaW9uOiBgKHtcbiAgICAgICAgICAgIHdpZHRoOiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQ6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHRcbiAgICAgICAgfSlgLFxuICAgICAgICByZXR1cm5CeVZhbHVlOiB0cnVlLFxuICAgIH07XG5cbiAgICBpZiAoZXhlY3V0aW9uQ29udGV4dClcbiAgICAgICAgYXJncy5jb250ZXh0SWQgPSBleGVjdXRpb25Db250ZXh0LmN0eElkO1xuXG4gICAgY29uc3QgeyByZXN1bHQgfSAgICAgICAgPSBhd2FpdCBSdW50aW1lLmV2YWx1YXRlKGFyZ3MpO1xuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gcmVzdWx0LnZhbHVlO1xuXG4gICAgcmV0dXJuIG5ldyBCb3VuZGFyeVZhbHVlcygwLCB3aWR0aCwgaGVpZ2h0LCAwKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldERvY3VtZW50U2Nyb2xsIChub2RlOiBTZXJ2ZXJOb2RlKTogUHJvbWlzZTxMZWZ0VG9wVmFsdWVzPG51bWJlcj4+IHtcbiAgICBjb25zdCBkb2N1bWVudCA9IGF3YWl0IGdldFNjcm9sbGluZ0VsZW1lbnQobm9kZSk7XG5cbiAgICByZXR1cm4gZ2V0RWxlbWVudFNjcm9sbChkb2N1bWVudCk7XG59XG4iXX0=