@datagrok-libraries/utils 2.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -29,31 +29,4 @@
29
29
 
30
30
  .cv-drop-area .success {
31
31
  color: var(--grey-6);
32
- }
33
-
34
- .no-elements-label {
35
- margin: 8px;
36
- }
37
-
38
- .arrow-box {
39
- position: relative;
40
- }
41
- .arrow-box:before {
42
- left: -6px;
43
- top: 55px;
44
- content: "";
45
- height: 0;
46
- width: 0;
47
- position: absolute;
48
- pointer-events: none;
49
- background-color: white;
50
-
51
- transform-origin: center;
52
- transform: rotate(-135deg);
53
- box-shadow: -4px 4px 0px 4.5px white, #4d5261 0px 0px 5px;;
54
-
55
- border: 5px solid black;
56
- border-color: transparent transparent #FFFFFF #FFFFFF;
57
-
58
- margin-top: -21px;
59
32
  }
@@ -0,0 +1,27 @@
1
+ .no-elements-label {
2
+ margin: 8px;
3
+ }
4
+
5
+ .arrow-box {
6
+ position: relative;
7
+ }
8
+
9
+ .arrow-box:before {
10
+ left: -6px;
11
+ top: 55px;
12
+ content: "";
13
+ height: 0;
14
+ width: 0;
15
+ position: absolute;
16
+ pointer-events: none;
17
+ background-color: white;
18
+
19
+ transform-origin: center;
20
+ transform: rotate(-135deg);
21
+ box-shadow: -4px 4px 0px 4.5px white, #4d5261 0px 0px 5px;;
22
+
23
+ border: 5px solid black;
24
+ border-color: transparent transparent #FFFFFF #FFFFFF;
25
+
26
+ margin-top: -21px;
27
+ }
File without changes
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "access": "public"
5
5
  },
6
6
  "fullName": "Utils",
7
- "version": "2.0.0",
7
+ "version": "2.0.1",
8
8
  "description": "Common utilities",
9
9
  "dependencies": {
10
10
  "fast-sha256": "^1.3.0",
@@ -1,5 +1,4 @@
1
1
  import { FunctionView } from './function-view';
2
- import '../css/computation-view.css';
3
2
  /**
4
3
  * Base class for handling Compute models (see https://github.com/datagrok-ai/public/blob/master/help/compute/compute.md).
5
4
  * In most cases, the computation is a simple {@link Func}
@@ -1 +1 @@
1
- {"version":3,"file":"computation-view.d.ts","sourceRoot":"","sources":["computation-view.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,6BAA6B,CAAC;AAKrC;;;;;;;;;;;;;;KAcK;AACL,qBAAa,eAAgB,SAAQ,YAAY;IAC/C;;;MAGE;gBACU,QAAQ,CAAC,EAAE,MAAM;IA8C7B;;MAEE;IACF,QAAQ,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;KAAC,EAAE,CAAC,GAAG,IAAI,CAAQ;IAE5E;;MAEE;IACF,YAAY,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;KAAC,EAAE,CAAC,GAAG,IAAI,CAAQ;IAE5E;;MAEE;IACF,OAAO,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAQ;IAE7C;;MAEE;IACF,SAAS,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAQ;IAE/C;;MAEE;IACF,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAQ;IAEpD;;MAEE;IACF,QAAQ,EAAE,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAGtC;IAEK,OAAO,IAAI,WAAW;IAE7B;;;MAGE;IACO,eAAe;YA0DV,cAAc;CAU7B"}
1
+ {"version":3,"file":"computation-view.d.ts","sourceRoot":"","sources":["computation-view.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAK7C;;;;;;;;;;;;;;KAcK;AACL,qBAAa,eAAgB,SAAQ,YAAY;IAC/C;;;MAGE;gBACU,QAAQ,CAAC,EAAE,MAAM;IA8C7B;;MAEE;IACF,QAAQ,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;KAAC,EAAE,CAAC,GAAG,IAAI,CAAQ;IAE5E;;MAEE;IACF,YAAY,EAAE,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;KAAC,EAAE,CAAC,GAAG,IAAI,CAAQ;IAE5E;;MAEE;IACF,OAAO,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAQ;IAE7C;;MAEE;IACF,SAAS,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAQ;IAE/C;;MAEE;IACF,cAAc,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAQ;IAEpD;;MAEE;IACF,QAAQ,EAAE,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAGtC;IAEK,OAAO,IAAI,WAAW;IAE7B;;;MAGE;IACO,eAAe;YA0DV,cAAc;CAU7B"}
@@ -13,7 +13,6 @@ import * as grok from 'datagrok-api/grok';
13
13
  import * as ui from 'datagrok-api/ui';
14
14
  import * as DG from 'datagrok-api/dg';
15
15
  import { FunctionView } from './function-view';
16
- import '../css/computation-view.css';
17
16
  import dayjs from 'dayjs';
18
17
  import { historyUtils } from './history-utils';
19
18
  const url = new URL(grok.shell.startUri);
@@ -178,4 +177,4 @@ export class ComputationView extends FunctionView {
178
177
  });
179
178
  }
180
179
  }
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHV0YXRpb24tdmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbXB1dGF0aW9uLXZpZXcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsZ0NBQWdDO0FBQ2hDLDRCQUE0QjtBQUM1QixPQUFPLEtBQUssSUFBSSxNQUFNLG1CQUFtQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEMsT0FBTyxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDekM7Ozs7Ozs7Ozs7Ozs7O0tBY0s7QUFDTCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxZQUFZO0lBQy9DOzs7TUFHRTtJQUNGLFlBQVksUUFBaUI7O1FBQzNCLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pDLEtBQUssRUFBRSxDQUFDO1FBNENWOztVQUVFO1FBQ0YsYUFBUSxHQUErRCxJQUFJLENBQUM7UUFFNUU7O1VBRUU7UUFDRixpQkFBWSxHQUEyRCxJQUFJLENBQUM7UUFFNUU7O1VBRUU7UUFDRixZQUFPLEdBQWlDLElBQUksQ0FBQztRQUU3Qzs7VUFFRTtRQUNGLGNBQVMsR0FBaUMsSUFBSSxDQUFDO1FBRS9DOztVQUVFO1FBQ0YsbUJBQWMsR0FBaUMsSUFBSSxDQUFDO1FBRXBEOztVQUVFO1FBQ0YsYUFBUSxHQUFtQyxHQUFTLEVBQUU7WUFDcEQsTUFBTSxJQUFJLEdBQUcsQ0FB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O1NBQ0o7SUFDSCxDQUFDO0lBRWEsY0FBYzs7WUFDMUIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsV0FBQyxPQUFBLElBQUksQ0FBQyxFQUFFLE1BQUssTUFBQSxJQUFJLENBQUMsSUFBSSwwQ0FBRSxPQUFPLENBQUMsRUFBRSxDQUFBLENBQUEsRUFBQSxDQUFDLENBQUM7WUFDakcsTUFBTSxZQUFZLEdBQUcsQ0FBQyxNQUFNLENBQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLGFBQWEsRUFBRSxDQUFRLENBQUEsQ0FBQyxjQUFjLENBQUM7WUFDekUsSUFBSSxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztnQkFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFTLEVBQUUsZ0RBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQztZQUV4RSxNQUFNLGFBQWEsR0FBRyxDQUFDLE1BQU0sQ0FBQSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsYUFBYSxFQUFFLENBQVEsQ0FBQSxDQUFDLG1CQUFtQixDQUFDO1lBQy9FLElBQUksYUFBYSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWM7Z0JBQ3ZDLElBQUksQ0FBQyxjQUFjLEdBQUcsR0FBUyxFQUFFLGdEQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUM7UUFDaEYsQ0FBQztLQUFBO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSB2YWxpZC1qc2RvYyAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCB7RnVuY3Rpb25WaWV3fSBmcm9tICcuL2Z1bmN0aW9uLXZpZXcnO1xuaW1wb3J0ICcuLi9jc3MvY29tcHV0YXRpb24tdmlldy5jc3MnO1xuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcbmltcG9ydCB7aGlzdG9yeVV0aWxzfSBmcm9tICcuL2hpc3RvcnktdXRpbHMnO1xuXG5jb25zdCB1cmwgPSBuZXcgVVJMKGdyb2suc2hlbGwuc3RhcnRVcmkpO1xuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBoYW5kbGluZyBDb21wdXRlIG1vZGVscyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRhZ3Jvay1haS9wdWJsaWMvYmxvYi9tYXN0ZXIvaGVscC9jb21wdXRlL2NvbXB1dGUubWQpLlxuICogSW4gbW9zdCBjYXNlcywgdGhlIGNvbXB1dGF0aW9uIGlzIGEgc2ltcGxlIHtAbGluayBGdW5jfVxuICogRXh0ZW5kIGl0IGluIGNhc2VzIHdoZXJlIGEgYmVoYXZpb3Igb3IgVUkgbm90IHN1cHBvcnRlZCBieSB0aGUge0BsaW5rIEZ1bmN0aW9uVmlld30gaXMgbmVlZGVkLlxuICpcbiAqIEl0IHByb3ZpZGVzIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25hbGl0eSBvdXQtb2YtdGhlLWJveCwgd2hlcmUgZWFjaCBzZWN0aW9uIGNvdWxkIGJlIGN1c3RvbWl6ZWQ6XG4gKiAtIGEgc3RydWN0dXJlZCB3YXkgdG8gcmVwcmVzZW50IGlucHV0IGFuZCBvdXRwdXQgcGFyYW1ldGVyczoge0BsaW5rIHBhcmFtZXRlcnN9XG4gKiAtIGdlbmVyaWMgd2F5IHRvIGdlbmVyYXRlIFVJIGZvciBpbnB1dHMsIG91dHB1dHMsIGFuZCBpbnRlcmFjdGl2aXR5IChydW5uaW5nIHRoZSBtb2RlbCwgZXRjKVxuICogICAtIHBlcnNpc3RpbmcgaGlzdG9yaWNhbCByZXN1bHRzIHRvIHRoZSBkYiAodmlhIHtAbGluayBwYXJhbWV0ZXJzfSlcbiAqIC0gZXhwb3J0ICh0byBFeGNlbCBhbmQgUERGKToge0BsaW5rIGV4cG9ydH1cbiAqIC0gZWFzeSBsb2FkaW5nIG9mIGhpc3RvcmljYWwgcnVuc1xuICogLSByb3V0aW5nXG4gKiAtIGVudGVyaW5nIHRoZSByZWFsLCBtZWFzdXJlZCAoYXMgb3Bwb3NlZCB0byBwcmVkaWN0ZWQpIHZhbHVlcyBtYW51YWxseVxuICogLSBub3RpZmljYXRpb25zIGZvciBjaGFuZ2luZyBpbnB1dHMsIGNvbXBsZXRpb24gb2YgY29tcHV0YXRpb25zLCBldGM6IHtAbGluayBvbklucHV0Q2hhbmdlZH1cbiAqICovXG5leHBvcnQgY2xhc3MgQ29tcHV0YXRpb25WaWV3IGV4dGVuZHMgRnVuY3Rpb25WaWV3IHtcbiAgLyoqIEZpbmQgdGhlIGZ1bmN0aW9uIGJ5IGZ1bGx5IHNwZWNpZmllZCBuYW1lLCBsaW5rIGl0IHRvIHRoZSB2aWV3IGFuZCBjb25zdHJ1Y3RzIHRoZSB2aWV3LlxuICAgICogSWYgZnVuY3Rpb24gbmFtZSBpcyBub3Qgc3BlY2lmaWVkLCBjYWxscyB7QGxpbmsgaW5pdH0gYW5kIHtAbGluayBidWlsZH0gd2l0aG91dCBGdW5jQ2FsbCBsaW5rYWdlLlxuICAgICogQHN0YWJpbGl0eSBTdGFibGVcbiAgKi9cbiAgY29uc3RydWN0b3IoZnVuY05hbWU/OiBzdHJpbmcpIHtcbiAgICBjb25zdCBydW5JZCA9IHVybC5zZWFyY2hQYXJhbXMuZ2V0KCdpZCcpO1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLnBhcmVudENhbGwgPSBncm9rLmZ1bmN0aW9ucy5nZXRDdXJyZW50Q2FsbCgpO1xuICAgIHRoaXMucGFyZW50VmlldyA9IGdyb2suZnVuY3Rpb25zLmdldEN1cnJlbnRDYWxsKCkucGFyZW50Q2FsbC5hdXhbJ3ZpZXcnXTtcbiAgICB0aGlzLmJhc2VQYXRoID0gYC8ke2dyb2suZnVuY3Rpb25zLmdldEN1cnJlbnRDYWxsKCk/LmZ1bmMubmFtZX1gO1xuXG4gICAgdWkuc2V0VXBkYXRlSW5kaWNhdG9yKHRoaXMucm9vdCwgdHJ1ZSk7XG4gICAgaWYgKHJ1bklkKSB7XG4gICAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5pbml0KCk7XG4gICAgICAgIGF3YWl0IHRoaXMuZ2V0UGFja2FnZVVybHMoKTtcbiAgICAgICAgY29uc3QgdXJsUnVuID0gYXdhaXQgaGlzdG9yeVV0aWxzLmxvYWRSdW4ocnVuSWQpO1xuICAgICAgICB0aGlzLmxpbmtGdW5jY2FsbCh1cmxSdW4pO1xuICAgICAgICB0aGlzLmJ1aWxkKCk7XG4gICAgICAgIGF3YWl0IHRoaXMub25CZWZvcmVMb2FkUnVuKCk7XG4gICAgICAgIHRoaXMubGlua0Z1bmNjYWxsKHVybFJ1bik7XG4gICAgICAgIGF3YWl0IHRoaXMub25BZnRlckxvYWRSdW4odXJsUnVuKTtcbiAgICAgICAgdGhpcy5zZXRSdW5WaWV3UmVhZG9ubHkoKTtcbiAgICAgICAgdWkuc2V0VXBkYXRlSW5kaWNhdG9yKHRoaXMucm9vdCwgZmFsc2UpO1xuICAgICAgICB1cmwuc2VhcmNoUGFyYW1zLmRlbGV0ZSgnaWQnKTtcbiAgICAgIH0sIDApO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZnVuY05hbWUpIHtcbiAgICAgICAgKGdyb2suZnVuY3Rpb25zLmV2YWwoZnVuY05hbWUpIGFzIFByb21pc2U8REcuRnVuYz4pLnRoZW4oYXN5bmMgKGZ1bmM6IERHLkZ1bmMpID0+IHtcbiAgICAgICAgICBjb25zdCBmdW5jY2FsbCA9IGZ1bmMucHJlcGFyZSh7fSk7XG4gICAgICAgICAgdGhpcy5saW5rRnVuY2NhbGwoZnVuY2NhbGwpO1xuICAgICAgICAgIGF3YWl0IHRoaXMuaW5pdCgpO1xuICAgICAgICAgIGF3YWl0IHRoaXMuZ2V0UGFja2FnZVVybHMoKTtcbiAgICAgICAgICB0aGlzLmJ1aWxkKCk7XG4gICAgICAgIH0pLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgIHVpLnNldFVwZGF0ZUluZGljYXRvcih0aGlzLnJvb3QsIGZhbHNlKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmluaXQoKTtcbiAgICAgICAgICBhd2FpdCB0aGlzLmdldFBhY2thZ2VVcmxzKCk7XG4gICAgICAgICAgdGhpcy5idWlsZCgpO1xuICAgICAgICAgIHRoaXMuYnVpbGRSaWJib25QYW5lbHMoKTtcbiAgICAgICAgICB1aS5zZXRVcGRhdGVJbmRpY2F0b3IodGhpcy5yb290LCBmYWxzZSk7XG4gICAgICAgIH0sIDApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBPdmVycmlkZSB0byBjdXN0b21pemUgZ2V0dGluZyBtb2Nrc1xuICAgICogQHN0YWJpbGl0eSBFeHBlcmltZW50YWxcbiAgKi9cbiAgZ2V0TW9ja3M6ICh7bW9ja05hbWU6IHN0cmluZywgYWN0aW9uOiAoKSA9PiBQcm9taXNlPHZvaWQ+fVtdKSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBPdmVycmlkZSB0byBjdXN0b21pemUgZ2V0dGluZyB0ZW1wbGF0ZXNcbiAgICAqIEBzdGFiaWxpdHkgRXhwZXJpbWVudGFsXG4gICovXG4gIGdldFRlbXBsYXRlczogKHtuYW1lOiBzdHJpbmcsIGFjdGlvbjogKCkgPT4gUHJvbWlzZTx2b2lkPn1bXSkgfCBudWxsID0gbnVsbDtcblxuICAvKiogT3ZlcnJpZGUgdG8gY3VzdG9taXplIGdldHRpbmcgaGVscCBmZWF0dXJlXG4gICAgKiBAc3RhYmlsaXR5IFN0YWJsZVxuICAqL1xuICBnZXRIZWxwOiAoKCkgPT4gUHJvbWlzZTx2b2lkPikgfCBudWxsID0gbnVsbDtcblxuICAvKiogT3ZlcnJpZGUgdG8gY3VzdG9taXplIGJ1ZyByZXBvcnRpbmcgZmVhdHVyZVxuICAgICogQHN0YWJpbGl0eSBTdGFibGVcbiAgKi9cbiAgcmVwb3J0QnVnOiAoKCkgPT4gUHJvbWlzZTx2b2lkPikgfCBudWxsID0gbnVsbDtcblxuICAvKiogT3ZlcnJpZGUgdG8gY3VzdG9taXplIGZlYXR1cmUgcmVxdWVzdCBmZWF0dXJlXG4gICAgKiBAc3RhYmlsaXR5IFN0YWJsZVxuICAqL1xuICByZXF1ZXN0RmVhdHVyZTogKCgpID0+IFByb21pc2U8dm9pZD4pIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIE92ZXJyaWRlIHRvIGN1c3RvbWl6ZSBcImFib3V0XCIgaW5mbyBvYnRhaW5pbmcgZmVhdHVyZS5cbiAgICAqIEBzdGFiaWxpdHkgRXhwZXJpbWVudGFsXG4gICovXG4gIGdldEFib3V0OiAoKCkgPT4gUHJvbWlzZTxzdHJpbmc+KSB8IG51bGwgPSBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcGFjayA9IChhd2FpdCBncm9rLmRhcGkucGFja2FnZXMubGlzdCgpKS5maW5kKChwYWNrKSA9PiBwYWNrLmlkID09PSB0aGlzLmZ1bmM/LnBhY2thZ2UuaWQpO1xuICAgIHJldHVybiBwYWNrID8gYCR7cGFjay5mcmllbmRseU5hbWV9IHYuJHtwYWNrLnZlcnNpb259Llxcbkxhc3QgdXBkYXRlZCBvbiAke2RheWpzKHBhY2sudXBkYXRlZE9uKS5mb3JtYXQoJ1lZWVkgTU1NIEQsIEhIOm1tJyl9YDogYE5vIHBhY2thZ2UgaW5mbyB3YXMgZm91bmRgO1xuICB9O1xuXG4gIHB1YmxpYyBidWlsZElPKCk6IEhUTUxFbGVtZW50IHsgcmV0dXJuIHVpLmRpdigpOyB9XG5cbiAgLyoqXG4gICAqIExvb2tzIGZvciB7QGxpbmsgcmVwb3J0QnVnfSwge0BsaW5rIGdldEhlbHB9IGFuZCB7QGxpbmsgZXhwb3J0Q29uZmlnfSBtZW1iZXJzIGFuZCBjcmVhdGVzIG1vZGVsIG1lbnVzXG4gICAqIEBzdGFiaWxpdHkgU3RhYmxlXG4gICovXG4gIG92ZXJyaWRlIGJ1aWxkUmliYm9uTWVudSgpIHtcbiAgICBzdXBlci5idWlsZFJpYmJvbk1lbnUoKTtcblxuICAgIGlmICghdGhpcy5leHBvcnRDb25maWcgJiYgIXRoaXMucmVwb3J0QnVnICYmICF0aGlzLnJlcXVlc3RGZWF0dXJlICYmICF0aGlzLmdldEhlbHAgJiYgIXRoaXMuZ2V0TW9ja3MgJiYgIXRoaXMuZ2V0VGVtcGxhdGVzKSByZXR1cm47XG5cbiAgICBjb25zdCByaWJib25NZW51ID0gdGhpcy5yaWJib25NZW51Lmdyb3VwKCdNb2RlbCcpO1xuXG4gICAgaWYgKHRoaXMuZ2V0TW9ja3MgJiYgdGhpcy5nZXRNb2Nrcy5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAodGhpcy5nZXRNb2Nrcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgcmliYm9uTWVudS5pdGVtKCdJbnB1dCBkYXRhIG1vY2snLCB0aGlzLmdldE1vY2tzWzBdLmFjdGlvbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBkYXRhR3JvdXAgPSByaWJib25NZW51Lmdyb3VwKCdJbnB1dCBkYXRhIG1vY2tzJyk7XG4gICAgICAgIHRoaXMuZ2V0TW9ja3MuZm9yRWFjaCgodmFsKSA9PiB7XG4gICAgICAgICAgZGF0YUdyb3VwLml0ZW0odmFsLm1vY2tOYW1lLCB2YWwuYWN0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJpYmJvbk1lbnUuZW5kR3JvdXAoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5nZXRUZW1wbGF0ZXMgJiYgdGhpcy5nZXRUZW1wbGF0ZXMubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHRoaXMuZ2V0VGVtcGxhdGVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICByaWJib25NZW51Lml0ZW0oJ0lucHV0IGRhdGEgdGVtcGxhdGUnLCB0aGlzLmdldFRlbXBsYXRlc1swXS5hY3Rpb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZGF0YUdyb3VwID0gcmliYm9uTWVudS5ncm91cCgnSW5wdXQgZGF0YSB0ZW1wbGF0ZXMnKTtcbiAgICAgICAgdGhpcy5nZXRUZW1wbGF0ZXMuZm9yRWFjaCgodmFsKSA9PiB7XG4gICAgICAgICAgZGF0YUdyb3VwLml0ZW0odmFsLm5hbWUsIHZhbC5hY3Rpb24pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmliYm9uTWVudS5lbmRHcm91cCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmV4cG9ydENvbmZpZyAmJiB0aGlzLmV4cG9ydENvbmZpZy5zdXBwb3J0ZWRGb3JtYXRzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJpYmJvbk1lbnVcbiAgICAgICAgLmdyb3VwKCdFeHBvcnQnKVxuICAgICAgICAuaXRlbXModGhpcy5leHBvcnRDb25maWcuc3VwcG9ydGVkRm9ybWF0cywgYXN5bmMgKGZvcm1hdDogc3RyaW5nKSA9PiBERy5VdGlscy5kb3dubG9hZCh0aGlzLmV4cG9ydENvbmZpZyEuZmlsZW5hbWUoZm9ybWF0KSwgYXdhaXQgdGhpcy5leHBvcnRDb25maWchLmV4cG9ydChmb3JtYXQpKSlcbiAgICAgICAgLmVuZEdyb3VwKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucmVwb3J0QnVnKVxuICAgICAgcmliYm9uTWVudS5pdGVtKCdSZXBvcnQgYSBidWcnLCAoKSA9PiB0aGlzLnJlcG9ydEJ1ZyEoKSk7XG5cbiAgICBpZiAodGhpcy5yZXF1ZXN0RmVhdHVyZSlcbiAgICAgIHJpYmJvbk1lbnUuaXRlbSgnUmVxdWVzdCBhIGZlYXR1cmUnLCAoKSA9PiB0aGlzLnJlcXVlc3RGZWF0dXJlISgpKTtcblxuICAgIGlmICh0aGlzLmdldEhlbHApXG4gICAgICByaWJib25NZW51Lml0ZW0oJ0hlbHAnLCAoKSA9PiB0aGlzLmdldEhlbHAhKCkpO1xuXG4gICAgaWYgKHRoaXMuZ2V0QWJvdXQpIHtcbiAgICAgIHJpYmJvbk1lbnUuaXRlbSgnQWJvdXQnLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGRpYWxvZyA9IHVpLmRpYWxvZygnQ3VycmVudCB2ZXJzaW9uJyk7XG4gICAgICAgIChhd2FpdCB0aGlzLmdldEFib3V0ISgpKS5zcGxpdCgnXFxuJykuZm9yRWFjaCgobGluZSkgPT4gZGlhbG9nLmFkZCh1aS5sYWJlbChsaW5lKSkpO1xuICAgICAgICBkaWFsb2cub25PSygoKSA9PiB7fSk7XG4gICAgICAgIGRpYWxvZy5nZXRCdXR0b24oJ0NBTkNFTCcpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgIGRpYWxvZy5zaG93KHtjZW50ZXI6IHRydWV9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0UGFja2FnZVVybHMoKSB7XG4gICAgY29uc3QgcGFjayA9IChhd2FpdCBncm9rLmRhcGkucGFja2FnZXMubGlzdCgpKS5maW5kKChwYWNrKSA9PiBwYWNrLmlkID09PSB0aGlzLmZ1bmM/LnBhY2thZ2UuaWQpO1xuICAgIGNvbnN0IHJlcG9ydEJ1Z1VybCA9IChhd2FpdCBwYWNrPy5nZXRQcm9wZXJ0aWVzKCkgYXMgYW55KS5SRVBPUlRfQlVHX1VSTDtcbiAgICBpZiAocmVwb3J0QnVnVXJsICYmICF0aGlzLnJlcG9ydEJ1ZylcbiAgICAgIHRoaXMucmVwb3J0QnVnID0gYXN5bmMgKCkgPT4geyB3aW5kb3cub3BlbihyZXBvcnRCdWdVcmwsICdfYmxhbmsnKTsgfTtcblxuICAgIGNvbnN0IHJlcUZlYXR1cmVVcmwgPSAoYXdhaXQgcGFjaz8uZ2V0UHJvcGVydGllcygpIGFzIGFueSkuUkVRVUVTVF9GRUFUVVJFX1VSTDtcbiAgICBpZiAocmVxRmVhdHVyZVVybCAmJiAhdGhpcy5yZXF1ZXN0RmVhdHVyZSlcbiAgICAgIHRoaXMucmVxdWVzdEZlYXR1cmUgPSBhc3luYyAoKSA9PiB7IHdpbmRvdy5vcGVuKHJlcUZlYXR1cmVVcmwsICdfYmxhbmsnKTsgfTtcbiAgfVxufVxuIl19
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHV0YXRpb24tdmlldy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbXB1dGF0aW9uLXZpZXcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsZ0NBQWdDO0FBQ2hDLDRCQUE0QjtBQUM1QixPQUFPLEtBQUssSUFBSSxNQUFNLG1CQUFtQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEMsT0FBTyxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUU3QyxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ3pDOzs7Ozs7Ozs7Ozs7OztLQWNLO0FBQ0wsTUFBTSxPQUFPLGVBQWdCLFNBQVEsWUFBWTtJQUMvQzs7O01BR0U7SUFDRixZQUFZLFFBQWlCOztRQUMzQixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxLQUFLLEVBQUUsQ0FBQztRQTRDVjs7VUFFRTtRQUNGLGFBQVEsR0FBK0QsSUFBSSxDQUFDO1FBRTVFOztVQUVFO1FBQ0YsaUJBQVksR0FBMkQsSUFBSSxDQUFDO1FBRTVFOztVQUVFO1FBQ0YsWUFBTyxHQUFpQyxJQUFJLENBQUM7UUFFN0M7O1VBRUU7UUFDRixjQUFTLEdBQWlDLElBQUksQ0FBQztRQUUvQzs7VUFFRTtRQUNGLG1CQUFjLEdBQWlDLElBQUksQ0FBQztRQUVwRDs7VUFFRTtRQUNGLGFBQVEsR0FBbUMsR0FBUyxFQUFFO1lBQ3BELE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxD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QWM7O1lBQzFCLE1BQU0sSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLFdBQUMsT0FBQSxJQUFJLENBQUMsRUFBRSxNQUFLLE1BQUEsSUFBSSxDQUFDLElBQUksMENBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQSxDQUFBLEVBQUEsQ0FBQyxDQUFDO1lBQ2pHLE1BQU0sWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFBLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxhQUFhLEVBQUUsQ0FBUSxDQUFBLENBQUMsY0FBYyxDQUFDO1lBQ3pFLElBQUksWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7Z0JBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBUyxFQUFFLGdEQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUM7WUFFeEUsTUFBTSxhQUFhLEdBQUcsQ0FBQyxNQUFNLENBQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLGFBQWEsRUFBRSxDQUFRLENBQUEsQ0FBQyxtQkFBbUIsQ0FBQztZQUMvRSxJQUFJLGFBQWEsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjO2dCQUN2QyxJQUFJLENBQUMsY0FBYyxHQUFHLEdBQVMsRUFBRSxnREFBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDO1FBQ2hGLENBQUM7S0FBQTtDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgdmFsaWQtanNkb2MgKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQge0Z1bmN0aW9uVmlld30gZnJvbSAnLi9mdW5jdGlvbi12aWV3JztcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQge2hpc3RvcnlVdGlsc30gZnJvbSAnLi9oaXN0b3J5LXV0aWxzJztcblxuY29uc3QgdXJsID0gbmV3IFVSTChncm9rLnNoZWxsLnN0YXJ0VXJpKTtcbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgaGFuZGxpbmcgQ29tcHV0ZSBtb2RlbHMgKHNlZSBodHRwczovL2dpdGh1Yi5jb20vZGF0YWdyb2stYWkvcHVibGljL2Jsb2IvbWFzdGVyL2hlbHAvY29tcHV0ZS9jb21wdXRlLm1kKS5cbiAqIEluIG1vc3QgY2FzZXMsIHRoZSBjb21wdXRhdGlvbiBpcyBhIHNpbXBsZSB7QGxpbmsgRnVuY31cbiAqIEV4dGVuZCBpdCBpbiBjYXNlcyB3aGVyZSBhIGJlaGF2aW9yIG9yIFVJIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIHtAbGluayBGdW5jdGlvblZpZXd9IGlzIG5lZWRlZC5cbiAqXG4gKiBJdCBwcm92aWRlcyB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uYWxpdHkgb3V0LW9mLXRoZS1ib3gsIHdoZXJlIGVhY2ggc2VjdGlvbiBjb3VsZCBiZSBjdXN0b21pemVkOlxuICogLSBhIHN0cnVjdHVyZWQgd2F5IHRvIHJlcHJlc2VudCBpbnB1dCBhbmQgb3V0cHV0IHBhcmFtZXRlcnM6IHtAbGluayBwYXJhbWV0ZXJzfVxuICogLSBnZW5lcmljIHdheSB0byBnZW5lcmF0ZSBVSSBmb3IgaW5wdXRzLCBvdXRwdXRzLCBhbmQgaW50ZXJhY3Rpdml0eSAocnVubmluZyB0aGUgbW9kZWwsIGV0YylcbiAqICAgLSBwZXJzaXN0aW5nIGhpc3RvcmljYWwgcmVzdWx0cyB0byB0aGUgZGIgKHZpYSB7QGxpbmsgcGFyYW1ldGVyc30pXG4gKiAtIGV4cG9ydCAodG8gRXhjZWwgYW5kIFBERik6IHtAbGluayBleHBvcnR9XG4gKiAtIGVhc3kgbG9hZGluZyBvZiBoaXN0b3JpY2FsIHJ1bnNcbiAqIC0gcm91dGluZ1xuICogLSBlbnRlcmluZyB0aGUgcmVhbCwgbWVhc3VyZWQgKGFzIG9wcG9zZWQgdG8gcHJlZGljdGVkKSB2YWx1ZXMgbWFudWFsbHlcbiAqIC0gbm90aWZpY2F0aW9ucyBmb3IgY2hhbmdpbmcgaW5wdXRzLCBjb21wbGV0aW9uIG9mIGNvbXB1dGF0aW9ucywgZXRjOiB7QGxpbmsgb25JbnB1dENoYW5nZWR9XG4gKiAqL1xuZXhwb3J0IGNsYXNzIENvbXB1dGF0aW9uVmlldyBleHRlbmRzIEZ1bmN0aW9uVmlldyB7XG4gIC8qKiBGaW5kIHRoZSBmdW5jdGlvbiBieSBmdWxseSBzcGVjaWZpZWQgbmFtZSwgbGluayBpdCB0byB0aGUgdmlldyBhbmQgY29uc3RydWN0cyB0aGUgdmlldy5cbiAgICAqIElmIGZ1bmN0aW9uIG5hbWUgaXMgbm90IHNwZWNpZmllZCwgY2FsbHMge0BsaW5rIGluaXR9IGFuZCB7QGxpbmsgYnVpbGR9IHdpdGhvdXQgRnVuY0NhbGwgbGlua2FnZS5cbiAgICAqIEBzdGFiaWxpdHkgU3RhYmxlXG4gICovXG4gIGNvbnN0cnVjdG9yKGZ1bmNOYW1lPzogc3RyaW5nKSB7XG4gICAgY29uc3QgcnVuSWQgPSB1cmwuc2VhcmNoUGFyYW1zLmdldCgnaWQnKTtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5wYXJlbnRDYWxsID0gZ3Jvay5mdW5jdGlvbnMuZ2V0Q3VycmVudENhbGwoKTtcbiAgICB0aGlzLnBhcmVudFZpZXcgPSBncm9rLmZ1bmN0aW9ucy5nZXRDdXJyZW50Q2FsbCgpLnBhcmVudENhbGwuYXV4Wyd2aWV3J107XG4gICAgdGhpcy5iYXNlUGF0aCA9IGAvJHtncm9rLmZ1bmN0aW9ucy5nZXRDdXJyZW50Q2FsbCgpPy5mdW5jLm5hbWV9YDtcblxuICAgIHVpLnNldFVwZGF0ZUluZGljYXRvcih0aGlzLnJvb3QsIHRydWUpO1xuICAgIGlmIChydW5JZCkge1xuICAgICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICAgIGF3YWl0IHRoaXMuaW5pdCgpO1xuICAgICAgICBhd2FpdCB0aGlzLmdldFBhY2thZ2VVcmxzKCk7XG4gICAgICAgIGNvbnN0IHVybFJ1biA9IGF3YWl0IGhpc3RvcnlVdGlscy5sb2FkUnVuKHJ1bklkKTtcbiAgICAgICAgdGhpcy5saW5rRnVuY2NhbGwodXJsUnVuKTtcbiAgICAgICAgdGhpcy5idWlsZCgpO1xuICAgICAgICBhd2FpdCB0aGlzLm9uQmVmb3JlTG9hZFJ1bigpO1xuICAgICAgICB0aGlzLmxpbmtGdW5jY2FsbCh1cmxSdW4pO1xuICAgICAgICBhd2FpdCB0aGlzLm9uQWZ0ZXJMb2FkUnVuKHVybFJ1bik7XG4gICAgICAgIHRoaXMuc2V0UnVuVmlld1JlYWRvbmx5KCk7XG4gICAgICAgIHVpLnNldFVwZGF0ZUluZGljYXRvcih0aGlzLnJvb3QsIGZhbHNlKTtcbiAgICAgICAgdXJsLnNlYXJjaFBhcmFtcy5kZWxldGUoJ2lkJyk7XG4gICAgICB9LCAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGZ1bmNOYW1lKSB7XG4gICAgICAgIChncm9rLmZ1bmN0aW9ucy5ldmFsKGZ1bmNOYW1lKSBhcyBQcm9taXNlPERHLkZ1bmM+KS50aGVuKGFzeW5jIChmdW5jOiBERy5GdW5jKSA9PiB7XG4gICAgICAgICAgY29uc3QgZnVuY2NhbGwgPSBmdW5jLnByZXBhcmUoe30pO1xuICAgICAgICAgIHRoaXMubGlua0Z1bmNjYWxsKGZ1bmNjYWxsKTtcbiAgICAgICAgICBhd2FpdCB0aGlzLmluaXQoKTtcbiAgICAgICAgICBhd2FpdCB0aGlzLmdldFBhY2thZ2VVcmxzKCk7XG4gICAgICAgICAgdGhpcy5idWlsZCgpO1xuICAgICAgICB9KS5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICB1aS5zZXRVcGRhdGVJbmRpY2F0b3IodGhpcy5yb290LCBmYWxzZSk7XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5pbml0KCk7XG4gICAgICAgICAgYXdhaXQgdGhpcy5nZXRQYWNrYWdlVXJscygpO1xuICAgICAgICAgIHRoaXMuYnVpbGQoKTtcbiAgICAgICAgICB0aGlzLmJ1aWxkUmliYm9uUGFuZWxzKCk7XG4gICAgICAgICAgdWkuc2V0VXBkYXRlSW5kaWNhdG9yKHRoaXMucm9vdCwgZmFsc2UpO1xuICAgICAgICB9LCAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKiogT3ZlcnJpZGUgdG8gY3VzdG9taXplIGdldHRpbmcgbW9ja3NcbiAgICAqIEBzdGFiaWxpdHkgRXhwZXJpbWVudGFsXG4gICovXG4gIGdldE1vY2tzOiAoe21vY2tOYW1lOiBzdHJpbmcsIGFjdGlvbjogKCkgPT4gUHJvbWlzZTx2b2lkPn1bXSkgfCBudWxsID0gbnVsbDtcblxuICAvKiogT3ZlcnJpZGUgdG8gY3VzdG9taXplIGdldHRpbmcgdGVtcGxhdGVzXG4gICAgKiBAc3RhYmlsaXR5IEV4cGVyaW1lbnRhbFxuICAqL1xuICBnZXRUZW1wbGF0ZXM6ICh7bmFtZTogc3RyaW5nLCBhY3Rpb246ICgpID0+IFByb21pc2U8dm9pZD59W10pIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIE92ZXJyaWRlIHRvIGN1c3RvbWl6ZSBnZXR0aW5nIGhlbHAgZmVhdHVyZVxuICAgICogQHN0YWJpbGl0eSBTdGFibGVcbiAgKi9cbiAgZ2V0SGVscDogKCgpID0+IFByb21pc2U8dm9pZD4pIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIE92ZXJyaWRlIHRvIGN1c3RvbWl6ZSBidWcgcmVwb3J0aW5nIGZlYXR1cmVcbiAgICAqIEBzdGFiaWxpdHkgU3RhYmxlXG4gICovXG4gIHJlcG9ydEJ1ZzogKCgpID0+IFByb21pc2U8dm9pZD4pIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIE92ZXJyaWRlIHRvIGN1c3RvbWl6ZSBmZWF0dXJlIHJlcXVlc3QgZmVhdHVyZVxuICAgICogQHN0YWJpbGl0eSBTdGFibGVcbiAgKi9cbiAgcmVxdWVzdEZlYXR1cmU6ICgoKSA9PiBQcm9taXNlPHZvaWQ+KSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBPdmVycmlkZSB0byBjdXN0b21pemUgXCJhYm91dFwiIGluZm8gb2J0YWluaW5nIGZlYXR1cmUuXG4gICAgKiBAc3RhYmlsaXR5IEV4cGVyaW1lbnRhbFxuICAqL1xuICBnZXRBYm91dDogKCgpID0+IFByb21pc2U8c3RyaW5nPikgfCBudWxsID0gYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHBhY2sgPSAoYXdhaXQgZ3Jvay5kYXBpLnBhY2thZ2VzLmxpc3QoKSkuZmluZCgocGFjaykgPT4gcGFjay5pZCA9PT0gdGhpcy5mdW5jPy5wYWNrYWdlLmlkKTtcbiAgICByZXR1cm4gcGFjayA/IGAke3BhY2suZnJpZW5kbHlOYW1lfSB2LiR7cGFjay52ZXJzaW9ufS5cXG5MYXN0IHVwZGF0ZWQgb24gJHtkYXlqcyhwYWNrLnVwZGF0ZWRPbikuZm9ybWF0KCdZWVlZIE1NTSBELCBISDptbScpfWA6IGBObyBwYWNrYWdlIGluZm8gd2FzIGZvdW5kYDtcbiAgfTtcblxuICBwdWJsaWMgYnVpbGRJTygpOiBIVE1MRWxlbWVudCB7IHJldHVybiB1aS5kaXYoKTsgfVxuXG4gIC8qKlxuICAgKiBMb29rcyBmb3Ige0BsaW5rIHJlcG9ydEJ1Z30sIHtAbGluayBnZXRIZWxwfSBhbmQge0BsaW5rIGV4cG9ydENvbmZpZ30gbWVtYmVycyBhbmQgY3JlYXRlcyBtb2RlbCBtZW51c1xuICAgKiBAc3RhYmlsaXR5IFN0YWJsZVxuICAqL1xuICBvdmVycmlkZSBidWlsZFJpYmJvbk1lbnUoKSB7XG4gICAgc3VwZXIuYnVpbGRSaWJib25NZW51KCk7XG5cbiAgICBpZiAoIXRoaXMuZXhwb3J0Q29uZmlnICYmICF0aGlzLnJlcG9ydEJ1ZyAmJiAhdGhpcy5yZXF1ZXN0RmVhdHVyZSAmJiAhdGhpcy5nZXRIZWxwICYmICF0aGlzLmdldE1vY2tzICYmICF0aGlzLmdldFRlbXBsYXRlcykgcmV0dXJuO1xuXG4gICAgY29uc3QgcmliYm9uTWVudSA9IHRoaXMucmliYm9uTWVudS5ncm91cCgnTW9kZWwnKTtcblxuICAgIGlmICh0aGlzLmdldE1vY2tzICYmIHRoaXMuZ2V0TW9ja3MubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHRoaXMuZ2V0TW9ja3MubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIHJpYmJvbk1lbnUuaXRlbSgnSW5wdXQgZGF0YSBtb2NrJywgdGhpcy5nZXRNb2Nrc1swXS5hY3Rpb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZGF0YUdyb3VwID0gcmliYm9uTWVudS5ncm91cCgnSW5wdXQgZGF0YSBtb2NrcycpO1xuICAgICAgICB0aGlzLmdldE1vY2tzLmZvckVhY2goKHZhbCkgPT4ge1xuICAgICAgICAgIGRhdGFHcm91cC5pdGVtKHZhbC5tb2NrTmFtZSwgdmFsLmFjdGlvbik7XG4gICAgICAgIH0pO1xuICAgICAgICByaWJib25NZW51LmVuZEdyb3VwKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZ2V0VGVtcGxhdGVzICYmIHRoaXMuZ2V0VGVtcGxhdGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGlmICh0aGlzLmdldFRlbXBsYXRlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgcmliYm9uTWVudS5pdGVtKCdJbnB1dCBkYXRhIHRlbXBsYXRlJywgdGhpcy5nZXRUZW1wbGF0ZXNbMF0uYWN0aW9uKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGRhdGFHcm91cCA9IHJpYmJvbk1lbnUuZ3JvdXAoJ0lucHV0IGRhdGEgdGVtcGxhdGVzJyk7XG4gICAgICAgIHRoaXMuZ2V0VGVtcGxhdGVzLmZvckVhY2goKHZhbCkgPT4ge1xuICAgICAgICAgIGRhdGFHcm91cC5pdGVtKHZhbC5uYW1lLCB2YWwuYWN0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJpYmJvbk1lbnUuZW5kR3JvdXAoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5leHBvcnRDb25maWcgJiYgdGhpcy5leHBvcnRDb25maWcuc3VwcG9ydGVkRm9ybWF0cy5sZW5ndGggPiAwKSB7XG4gICAgICByaWJib25NZW51XG4gICAgICAgIC5ncm91cCgnRXhwb3J0JylcbiAgICAgICAgLml0ZW1zKHRoaXMuZXhwb3J0Q29uZmlnLnN1cHBvcnRlZEZvcm1hdHMsIGFzeW5jIChmb3JtYXQ6IHN0cmluZykgPT4gREcuVXRpbHMuZG93bmxvYWQodGhpcy5leHBvcnRDb25maWchLmZpbGVuYW1lKGZvcm1hdCksIGF3YWl0IHRoaXMuZXhwb3J0Q29uZmlnIS5leHBvcnQoZm9ybWF0KSkpXG4gICAgICAgIC5lbmRHcm91cCgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnJlcG9ydEJ1ZylcbiAgICAgIHJpYmJvbk1lbnUuaXRlbSgnUmVwb3J0IGEgYnVnJywgKCkgPT4gdGhpcy5yZXBvcnRCdWchKCkpO1xuXG4gICAgaWYgKHRoaXMucmVxdWVzdEZlYXR1cmUpXG4gICAgICByaWJib25NZW51Lml0ZW0oJ1JlcXVlc3QgYSBmZWF0dXJlJywgKCkgPT4gdGhpcy5yZXF1ZXN0RmVhdHVyZSEoKSk7XG5cbiAgICBpZiAodGhpcy5nZXRIZWxwKVxuICAgICAgcmliYm9uTWVudS5pdGVtKCdIZWxwJywgKCkgPT4gdGhpcy5nZXRIZWxwISgpKTtcblxuICAgIGlmICh0aGlzLmdldEFib3V0KSB7XG4gICAgICByaWJib25NZW51Lml0ZW0oJ0Fib3V0JywgYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBkaWFsb2cgPSB1aS5kaWFsb2coJ0N1cnJlbnQgdmVyc2lvbicpO1xuICAgICAgICAoYXdhaXQgdGhpcy5nZXRBYm91dCEoKSkuc3BsaXQoJ1xcbicpLmZvckVhY2goKGxpbmUpID0+IGRpYWxvZy5hZGQodWkubGFiZWwobGluZSkpKTtcbiAgICAgICAgZGlhbG9nLm9uT0soKCkgPT4ge30pO1xuICAgICAgICBkaWFsb2cuZ2V0QnV0dG9uKCdDQU5DRUwnKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICBkaWFsb2cuc2hvdyh7Y2VudGVyOiB0cnVlfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldFBhY2thZ2VVcmxzKCkge1xuICAgIGNvbnN0IHBhY2sgPSAoYXdhaXQgZ3Jvay5kYXBpLnBhY2thZ2VzLmxpc3QoKSkuZmluZCgocGFjaykgPT4gcGFjay5pZCA9PT0gdGhpcy5mdW5jPy5wYWNrYWdlLmlkKTtcbiAgICBjb25zdCByZXBvcnRCdWdVcmwgPSAoYXdhaXQgcGFjaz8uZ2V0UHJvcGVydGllcygpIGFzIGFueSkuUkVQT1JUX0JVR19VUkw7XG4gICAgaWYgKHJlcG9ydEJ1Z1VybCAmJiAhdGhpcy5yZXBvcnRCdWcpXG4gICAgICB0aGlzLnJlcG9ydEJ1ZyA9IGFzeW5jICgpID0+IHsgd2luZG93Lm9wZW4ocmVwb3J0QnVnVXJsLCAnX2JsYW5rJyk7IH07XG5cbiAgICBjb25zdCByZXFGZWF0dXJlVXJsID0gKGF3YWl0IHBhY2s/LmdldFByb3BlcnRpZXMoKSBhcyBhbnkpLlJFUVVFU1RfRkVBVFVSRV9VUkw7XG4gICAgaWYgKHJlcUZlYXR1cmVVcmwgJiYgIXRoaXMucmVxdWVzdEZlYXR1cmUpXG4gICAgICB0aGlzLnJlcXVlc3RGZWF0dXJlID0gYXN5bmMgKCkgPT4geyB3aW5kb3cub3BlbihyZXFGZWF0dXJlVXJsLCAnX2JsYW5rJyk7IH07XG4gIH1cbn1cbiJdfQ==
@@ -384,7 +384,7 @@ export class RichFunctionView extends FunctionView {
384
384
  const prop = val.property;
385
385
  if (prop.propertyType.toString() === FILE_INPUT_TYPE) {
386
386
  const t = UiUtils.fileInput((_a = prop.caption) !== null && _a !== void 0 ? _a : prop.name, null, (file) => this.funcCall.inputs[prop.name] = file);
387
- return t;
387
+ inputs.append(t.root);
388
388
  }
389
389
  else {
390
390
  const t = prop.propertyType === DG.TYPE.DATA_FRAME ?
@@ -445,4 +445,4 @@ const plotToSheet = (exportWb, sheet, plot, columnForImage, rowForImage = 0) =>
445
445
  ext: { width: canvas.width, height: canvas.height },
446
446
  });
447
447
  });
448
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaC1mdW5jdGlvbi12aWV3LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicmljaC1mdW5jdGlvbi12aWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLDRCQUE0QjtBQUM1QixPQUFPLEtBQUssSUFBSSxNQUFNLG1CQUFtQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEMsT0FBTyxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0QyxPQUFPLEVBQUMsWUFBWSxFQUFFLHFCQUFxQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDcEUsT0FBTyxPQUFPLE1BQU0sU0FBUyxDQUFDO0FBQzlCLE9BQU8sV0FBVyxNQUFNLGFBQWEsQ0FBQztBQUN0QyxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEIsT0FBTyxDQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ3pCLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRXJELE1BQU0sa0JBQWtCLEdBQTRCO0lBQ2xELENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTO0lBQ2pDLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRO0lBQy9CLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRO0lBQ2hDLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTO0lBQ2pDLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZO0lBQ3ZDLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPO0lBQzlCLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJO0lB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UyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztvQ0FDbEcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDO29DQUN4RyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO29DQUMxRixFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO29DQUMxRixFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO29DQUMxRixFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO2lDQUMvRixDQUFDLENBQUM7Z0NBQ0gsU0FB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bGludC1kaXNhYmxlIG1heC1sZW4gKi9cbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQge0Z1bmN0aW9uVmlldywgSU5URVJBQ1RJVkVfQ1NTX0NMQVNTfSBmcm9tICcuL2Z1bmN0aW9uLXZpZXcnO1xuaW1wb3J0IEV4Y2VsSlMgZnJvbSAnZXhjZWxqcyc7XG5pbXBvcnQgaHRtbDJjYW52YXMgZnJvbSAnaHRtbDJjYW52YXMnO1xuaW1wb3J0IHd1IGZyb20gJ3d1JztcbmltcG9ydCAkIGZyb20gJ2Nhc2gtZG9tJztcbmltcG9ydCB7U3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1VpVXRpbHN9IGZyb20gJy4vc2hhcmVkLWNvbXBvbmVudHMvdWktdXRpbHMnO1xuXG5jb25zdCB2aWV3ZXJUeXBlc01hcHBpbmc6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ID0ge1xuICBbJ2JhcmNoYXJ0J106IERHLlZJRVdFUi5CQVJfQ0hBUlQsXG4gIFsnYm94cGxvdCddOiBERy5WSUVXRVIuQk9YX1BMT1QsXG4gIFsnY2FsZW5kYXInXTogREcuVklFV0VSLkNBTEVOREFSLFxuICBbJ2NvcnJwbG90J106IERHLlZJRVdFUi5DT1JSX1BMT1QsXG4gIFsnZGVuc2l0eXBsb3QnXTogREcuVklFV0VSLkRFTlNJVFlfUExPVCxcbiAgWydmaWx0ZXJzJ106IERHLlZJRVdFUi5GSUxURVJTLFxuICBbJ2Zvcm0nXTogREcuVklFV0VSLkZPUk0sXG4gIFsnZ2xvYmUnXTogREcuVklFV0VSLkdMT0JFLFxuICBbJ2dvb2dsZW1hcCddOiBERy5WSUVXRVIuR09PR0xFX01BUCxcbiAgWydncmlkJ106IERHLlZJRVdFUi5HUklELFxuICBbJ2hlYXRtYXAnXTogREcuVklFV0VSLkhFQVRfTUFQLFxuICBbJ2hpc3RvZ3JhbSddOiBERy5WSUVXRVIuSElTVE9HUkFNLFxuICBbJ2xpbmVjaGFydCddOiBERy5WSUVXRVIuTElORV9DSEFSVCxcbiAgWydtYXJrdXAnXTogREcuVklFV0VSLk1BUktVUCxcbiAgWydtYXRyaXhwbG90J106IERHLlZJRVdFUi5NQVRSSVhfUExPVCxcbiAgWyduZXR3b3JrZGlhZ3JhbSddOiBERy5WSUVXRVIuTkVUV09SS19ESUFHUkFNLFxuICBbJ3BjcGxvdCddOiBERy5WSUVXRVIuUENfUExPVCxcbiAgWydwaWVjaGFydCddOiBERy5WSUVXRVIuUElFX0NIQVJULFxuICBbJ3NjYXR0ZXJwbG90J106IERHLlZJRVdFUi5TQ0FUVEVSX1BMT1QsXG4gIFsnc2NhdHRlcnBsb3QzZCddOiBERy5WSUVXRVIuU0NBVFRFUl9QTE9UXzNELFxuICBbJ3NoYXBlbWFwJ106IERHLlZJRVdFUi5TSEFQRV9NQVAsXG4gIFsnc3RhdGlzdGljcyddOiBERy5WSUVXRVIuU1RBVElTVElDUyxcbiAgWyd0aWxldmlld2VyJ106IERHLlZJRVdFUi5USUxFX1ZJRVdFUixcbiAgWyd0aW1lbGluZXMnXTogREcuVklFV0VSLlRJTUVMSU5FUyxcbiAgWyd0cmVlbWFwJ106IERHLlZJRVdFUi5UUkVFX01BUCxcbiAgWyd0cmVsbGlzcGxvdCddOiBERy5WSUVXRVIuVFJFTExJU19QTE9ULFxuICBbJ3dvcmRjbG91ZCddOiBERy5WSUVXRVIuV09SRF9DTE9VRCxcbn07XG5cbmNvbnN0IEZJTEVfSU5QVVRfVFlQRSA9ICdmaWxlJztcblxuZXhwb3J0IGNsYXNzIFJpY2hGdW5jdGlvblZpZXcgZXh0ZW5kcyBGdW5jdGlvblZpZXcge1xuICAvLyBlbWl0dGVkIHdoZW4gYWZ0ZXIgYSBuZXcgRnVuY0NhbGwgaXMgbGlua2VkXG4gIHByaXZhdGUgZnVuY0NhbGxSZXBsYWNlZCA9IG5ldyBTdWJqZWN0PHRydWU+KCk7XG5cbiAgY29uc3RydWN0b3IoZnVuY0NhbGw6IERHLkZ1bmNDYWxsKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuYmFzZVBhdGggPSBgc2NyaXB0cy8ke2Z1bmNDYWxsLmZ1bmMuaWR9L3ZpZXdgO1xuXG4gICAgdGhpcy5leHBvcnRDb25maWcgPSB7XG4gICAgICBzdXBwb3J0ZWRFeHRlbnNpb25zOiB0aGlzLmRlZmF1bHRTdXBwb3J0ZWRFeHBvcnRFeHRlbnNpb25zKCksXG4gICAgICBzdXBwb3J0ZWRGb3JtYXRzOiB0aGlzLmRlZmF1bHRTdXBwb3J0ZWRFeHBvcnRGb3JtYXRzKCksXG4gICAgICBleHBvcnQ6IHRoaXMuZGVmYXVsdEV4cG9ydCxcbiAgICAgIGZpbGVuYW1lOiB0aGlzLmRlZmF1bHRFeHBvcnRGaWxlbmFtZSxcbiAgICB9O1xuXG4gICAgdGhpcy5saW5rRnVuY2NhbGwoZnVuY0NhbGwpO1xuICAgIHRoaXMuaW5pdCgpO1xuICAgIHRoaXMuYnVpbGQoKTtcblxuICAgIHRoaXMuZnVuY0NhbGxSZXBsYWNlZC5uZXh0KCk7XG5cbiAgICB0aGlzLm5hbWUgPSBmdW5jQ2FsbC5mdW5jLmZyaWVuZGx5TmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBsaW5rRnVuY2NhbGwoZnVuY0NhbGw6IERHLkZ1bmNDYWxsKSB7XG4gICAgY29uc3QgaXNQcmV2aW91c0hpc3RvcmljYWwgPSB0aGlzLl9mdW5jQ2FsbD8ub3B0aW9uc1snaXNIaXN0b3JpY2FsJ107XG4gICAgdGhpcy5fZnVuY0NhbGwgPSBmdW5jQ2FsbDtcblxuICAgIHRoaXMuZnVuY0NhbGxSZXBsYWNlZC5uZXh0KHRydWUpO1xuXG4gICAgaWYgKGZ1bmNDYWxsLm9wdGlvbnNbJ2lzSGlzdG9yaWNhbCddKSB7XG4gICAgICBpZiAoIWlzUHJldmlvdXNIaXN0b3JpY2FsKSB7XG4gICAgICAgIHRoaXMubmFtZSA9IGAke3RoaXMubmFtZX0g4oCUICR7ZnVuY0NhbGwub3B0aW9uc1sndGl0bGUnXSA/PyBuZXcgRGF0ZShmdW5jQ2FsbC5zdGFydGVkLnRvU3RyaW5nKCkpLnRvTG9jYWxlU3RyaW5nKCdlbi11cycsIHttb250aDogJ3Nob3J0JywgZGF5OiAnbnVtZXJpYycsIGhvdXI6ICdudW1lcmljJywgbWludXRlOiAnbnVtZXJpYyd9KX1gO1xuICAgICAgICB0aGlzLnNldFJ1blZpZXdSZWFkb25seSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5uYW1lID0gYCR7dGhpcy5uYW1lLnN1YnN0cmluZygwLCB0aGlzLm5hbWUuaW5kZXhPZignIOKAlCAnKSl9IOKAlCAke2Z1bmNDYWxsLm9wdGlvbnNbJ3RpdGxlJ10gPz8gbmV3IERhdGUoZnVuY0NhbGwuc3RhcnRlZC50b1N0cmluZygpKS50b0xvY2FsZVN0cmluZygnZW4tdXMnLCB7bW9udGg6ICdzaG9ydCcsIGRheTogJ251bWVyaWMnLCBob3VyOiAnbnVtZXJpYycsIG1pbnV0ZTogJ251bWVyaWMnfSl9YDtcbiAgICAgIH1cblxuICAgICAgLy8gRklYIE1FOiB2aWV3IG5hbWUgZG9lcyBub3QgY2hhbmdlIGluIG1vZGVsc1xuICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2LmQ0LXJpYmJvbi1uYW1lJyk/LnJlcGxhY2VDaGlsZHJlbih1aS5zcGFuKFt0aGlzLm5hbWVdKSk7XG4gICAgICB0aGlzLnBhdGggPSBgP2lkPSR7dGhpcy5fZnVuY0NhbGwuaWR9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRSdW5WaWV3RWRpdGFibGUoKTtcbiAgICAgIHRoaXMucGF0aCA9IGBgO1xuXG4gICAgICBpZiAoaXNQcmV2aW91c0hpc3RvcmljYWwpXG4gICAgICAgIHRoaXMubmFtZSA9IGAke3RoaXMubmFtZS5zdWJzdHJpbmcoMCwgdGhpcy5uYW1lLmluZGV4T2YoJyDigJQgJykpfWA7XG4gICAgfVxuICAgIHRoaXMuYnVpbGRSaWJib25QYW5lbHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvbkFmdGVyUnVuKHJ1bkZ1bmM6IERHLkZ1bmNDYWxsKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy50YWJzRWxlbS5yb290LnN0eWxlLnJlbW92ZVByb3BlcnR5KCdkaXNwbGF5Jyk7XG4gICAgdGhpcy50YWJzRWxlbS5wYW5lcy5mb3JFYWNoKCh0YWIpID0+IHtcbiAgICAgIHRhYi5oZWFkZXIuc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2Rpc3BsYXknKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBidWlsZElPKCk6IEhUTUxFbGVtZW50IHtcbiAgICBjb25zdCBpbnB1dEJsb2NrID0gdGhpcy5idWlsZElucHV0QmxvY2soKTtcbiAgICBjb25zdCBvdXRwdXRCbG9jayA9IHRoaXMuYnVpbGRPdXRwdXRCbG9jaygpO1xuICAgIG91dHB1dEJsb2NrLnN0eWxlLmhlaWdodCA9ICcxMDAlJztcbiAgICBvdXRwdXRCbG9jay5zdHlsZS53aWR0aCA9ICcxMDAlJztcbiAgICBpZiAoISF0aGlzLnRhYnNFbGVtLmdldFBhbmUoJ0lucHV0JykpIHtcbiAgICAgIHRoaXMudGFic0VsZW0ucGFuZXMuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICAgIGlmICh0YWIubmFtZSAhPT0gJ0lucHV0JykgdGFiLmhlYWRlci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGFic0VsZW0ucm9vdC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgIH1cblxuICAgIGNvbnN0IG91dCA9IHVpLnNwbGl0SChbaW5wdXRCbG9jaywgdWkucGFuZWwoW291dHB1dEJsb2NrXSldLCBudWxsLCB0cnVlKTtcblxuICAgIGlucHV0QmxvY2sucGFyZW50RWxlbWVudCEuc3R5bGUubWF4V2lkdGggPSAnNDUwcHgnO1xuXG4gICAgcmV0dXJuIG91dDtcbiAgfVxuXG4gIHB1YmxpYyBidWlsZElucHV0QmxvY2soKTogSFRNTEVsZW1lbnQge1xuICAgIGNvbnN0IGZvcm1EaXYgPSB0aGlzLnJlbmRlclJ1blNlY3Rpb24odGhpcy5mdW5jQ2FsbCEpO1xuXG4gICAgdWkudG9vbHMuaGFuZGxlUmVzaXplKGZvcm1EaXYsICh3aWR0aCkgPT4ge1xuICAgICAgaWYgKHdpZHRoIDwgMzUwKVxuICAgICAgICAkKGZvcm1EaXYuZmlyc3RDaGlsZCkuYWRkQ2xhc3MoJ3VpLWZvcm0tY29uZGVuc2VkJyk7XG4gICAgICBlbHNlXG4gICAgICAgICQoZm9ybURpdi5maXJzdENoaWxkKS5yZW1vdmVDbGFzcygndWktZm9ybS1jb25kZW5zZWQnKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBmb3JtRGl2O1xuICB9XG5cbiAgcHJpdmF0ZSB0YWJzRWxlbSA9IHVpLnRhYkNvbnRyb2woKTtcblxuICBwdWJsaWMgYnVpbGRPdXRwdXRCbG9jaygpOiBIVE1MRWxlbWVudCB7XG4gICAgY29uc3Qgb3V0cHV0QmxvY2sgPSB1aS5ib3goKTtcblxuICAgIGNvbnN0IHBhcnNlZERmUHJvcHMgPSB0aGlzLmRmUGFyYW1zLm1hcCgoZGZQcm9wKSA9PiBKU09OLnBhcnNlKGRmUHJvcC5vcHRpb25zWyd2aWV3ZXInXSkpO1xuXG4gICAgdGhpcy50YWJzTGFiZWxzLmZvckVhY2goKHRhYkxhYmVsKSA9PiB7XG4gICAgICBjb25zdCB0YWJEZlByb3BzID0gdGhpcy5jYXRlZ29yeVRvUGFyYW1NYXBbdGFiTGFiZWxdLmZpbHRlcigocCkgPT4gcC5wcm9wZXJ0eVR5cGUgPT09IERHLlRZUEUuREFUQV9GUkFNRSk7XG4gICAgICBjb25zdCB0YWJTY2FsYXJQcm9wcyA9IHRoaXMuY2F0ZWdvcnlUb1BhcmFtTWFwW3RhYkxhYmVsXS5maWx0ZXIoKHApID0+IHAucHJvcGVydHlUeXBlICE9PSBERy5UWVBFLkRBVEFfRlJBTUUpO1xuXG4gICAgICBjb25zdCBkZlNlY3Rpb25zID0gdGFiRGZQcm9wcy5tYXAoKGRmUHJvcCwgZGZJbmRleCkgPT4ge1xuICAgICAgICBjb25zdCB2aWV3ZXJzOiBERy5WaWV3ZXJbXSA9IHBhcnNlZERmUHJvcHNbZGZJbmRleF0ubWFwKCh2aWV3ZXJEZXNjOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGluaXRpYWxWYWx1ZSA9IHRoaXMuZnVuY0NhbGw/Lm91dHB1dHNbZGZQcm9wLm5hbWVdPy52YWx1ZSA/PyB0aGlzLmZ1bmNDYWxsIS5pbnB1dFBhcmFtc1tkZlByb3AubmFtZV0/LnZhbHVlID8/IERHLkRhdGFGcmFtZS5mcm9tQ3N2KGBgKTtcblxuICAgICAgICAgIGNvbnN0IHZpZXdlciA9IERHLlZpZXdlci5mcm9tVHlwZSh2aWV3ZXJUeXBlc01hcHBpbmdbdmlld2VyRGVzY1sndHlwZSddXSwgaW5pdGlhbFZhbHVlKTtcbiAgICAgICAgICB2aWV3ZXIuc2V0T3B0aW9ucyh2aWV3ZXJEZXNjKTtcblxuICAgICAgICAgIGlmICh0aGlzLmRmVG9WaWV3ZXJNYXBwaW5nW2RmUHJvcC5uYW1lXSkgdGhpcy5kZlRvVmlld2VyTWFwcGluZ1tkZlByb3AubmFtZV0ucHVzaCh2aWV3ZXIpOyBlbHNlIHRoaXMuZGZUb1ZpZXdlck1hcHBpbmdbZGZQcm9wLm5hbWVdID0gW3ZpZXdlcl07XG5cbiAgICAgICAgICByZXR1cm4gdmlld2VyO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZ1bmNDYWxsUmVwbGFjZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBjdXJyZW50UGFyYW06IERHLkZ1bmNDYWxsUGFyYW0gPSB0aGlzLmZ1bmNDYWxsIS5vdXRwdXRQYXJhbXNbZGZQcm9wLm5hbWVdID8/IHRoaXMuZnVuY0NhbGwhLmlucHV0UGFyYW1zW2RmUHJvcC5uYW1lXTtcblxuICAgICAgICAgIGN1cnJlbnRQYXJhbS5vbkNoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHZpZXdlcnMuZm9yRWFjaCgodmlld2VyKSA9PiB7XG4gICAgICAgICAgICAgIHZpZXdlci5kYXRhRnJhbWUgPSBjdXJyZW50UGFyYW0udmFsdWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgZGZTZWN0aW9uVGl0bGU6IHN0cmluZyA9IGRmUHJvcC5vcHRpb25zWydjYXB0aW9uJ10gPz8gZGZQcm9wLm5hbWU7XG5cbiAgICAgICAgaWYgKHRhYkxhYmVsICE9PSAnSW5wdXQnKSB7XG4gICAgICAgICAgcmV0dXJuIHVpLmRpdlYoW1xuICAgICAgICAgICAgdWkuaDIoZGZTZWN0aW9uVGl0bGUpLFxuICAgICAgICAgICAgdWkuZGl2SCh2aWV3ZXJzLm1hcCgodmlld2VyLCB2aWV3ZXJJbmRleCkgPT4ge1xuICAgICAgICAgICAgICBpZiAocGFyc2VkRGZQcm9wc1tkZkluZGV4XVt2aWV3ZXJJbmRleF1bJ2Jsb2NrJ10gPT09ICcyNScpIHJldHVybiB1aS5ibG9jazI1KFt2aWV3ZXIucm9vdF0pO1xuICAgICAgICAgICAgICBpZiAocGFyc2VkRGZQcm9wc1tkZkluZGV4XVt2aWV3ZXJJbmRleF1bJ2Jsb2NrJ10gPT09ICc1MCcpIHJldHVybiB1aS5ibG9jazUwKFt2aWV3ZXIucm9vdF0pO1xuICAgICAgICAgICAgICBpZiAocGFyc2VkRGZQcm9wc1tkZkluZGV4XVt2aWV3ZXJJbmRleF1bJ2Jsb2NrJ10gPT09ICc3NScpIHJldHVybiB1aS5ibG9jazc1KFt2aWV3ZXIucm9vdF0pO1xuXG4gICAgICAgICAgICAgIHJldHVybiB2aWV3ZXIucm9vdDtcbiAgICAgICAgICAgIH0pKVxuICAgICAgICAgIF0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGxhYmVsID0gdWkuc3BhbihbJ1NlbGVjdCBhIGRhdGFmcmFtZSB0byByZXZpZXcgaXQnXSk7XG4gICAgICAgICAgY29uc3QgaW5wdXRTZWN0aW9uID0gdWkuZGl2SCh2aWV3ZXJzLm1hcCgodmlld2VyLCB2aWV3ZXJJbmRleCkgPT4ge1xuICAgICAgICAgICAgaWYgKHBhcnNlZERmUHJvcHNbZGZJbmRleF1bdmlld2VySW5kZXhdWydibG9jayddID09PSAnMjUnKSByZXR1cm4gdWkuYmxvY2syNShbdmlld2VyLnJvb3RdKTtcbiAgICAgICAgICAgIGlmIChwYXJzZWREZlByb3BzW2RmSW5kZXhdW3ZpZXdlckluZGV4XVsnYmxvY2snXSA9PT0gJzUwJykgcmV0dXJuIHVpLmJsb2NrNTAoW3ZpZXdlci5yb290XSk7XG4gICAgICAgICAgICBpZiAocGFyc2VkRGZQcm9wc1tkZkluZGV4XVt2aWV3ZXJJbmRleF1bJ2Jsb2NrJ10gPT09ICc3NScpIHJldHVybiB1aS5ibG9jazc1KFt2aWV3ZXIucm9vdF0pO1xuXG4gICAgICAgICAgICByZXR1cm4gdmlld2VyLnJvb3Q7XG4gICAgICAgICAgfSksIHtzdHlsZToge2Rpc3BsYXk6ICdub25lJ319KTtcblxuICAgICAgICAgIHRoaXMuZnVuY0NhbGxSZXBsYWNlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFBhcmFtOiBERy5GdW5jQ2FsbFBhcmFtID0gdGhpcy5mdW5jQ2FsbCEub3V0cHV0UGFyYW1zW2RmUHJvcC5uYW1lXSA/PyB0aGlzLmZ1bmNDYWxsIS5pbnB1dFBhcmFtc1tkZlByb3AubmFtZV07XG5cbiAgICAgICAgICAgIGN1cnJlbnRQYXJhbS5vbkNoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgbGFiZWwuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgICAgICAgaW5wdXRTZWN0aW9uLnN0eWxlLnJlbW92ZVByb3BlcnR5KCdkaXNwbGF5Jyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHJldHVybiB1aS5kaXZWKFtcbiAgICAgICAgICAgIHVpLmgyKGRmU2VjdGlvblRpdGxlKSxcbiAgICAgICAgICAgIGlucHV0U2VjdGlvbixcbiAgICAgICAgICAgIGxhYmVsXG4gICAgICAgICAgXSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG5cbiAgICAgIGNvbnN0IGdlbmVyYXRlU2NhbGFyc1RhYmxlID0gKCkgPT4gdWkudGFibGVGcm9tTWFwKFxuICAgICAgICB0YWJTY2FsYXJQcm9wcy5yZWR1Y2UoKGFjYywgc2NhbGFyKSA9PiB7XG4gICAgICAgICAgYWNjW3NjYWxhci5uYW1lXSA9IHRoaXMuZnVuY0NhbGw/Lm91dHB1dHNbc2NhbGFyLm5hbWVdO1xuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIHt9IGFzIHtba2V5OiBzdHJpbmddOiBzdHJpbmd9KVxuICAgICAgKTtcblxuICAgICAgbGV0IHNjYWxhcnNUYWJsZSA9IGdlbmVyYXRlU2NhbGFyc1RhYmxlKCk7XG5cbiAgICAgIHRhYlNjYWxhclByb3BzLmZvckVhY2goKHRhYlNjYWxhclByb3ApID0+IHtcbiAgICAgICAgdGhpcy5mdW5jQ2FsbFJlcGxhY2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgKHRoaXMuZnVuY0NhbGwhLm91dHB1dFBhcmFtc1t0YWJTY2FsYXJQcm9wLm5hbWVdIGFzIERHLkZ1bmNDYWxsUGFyYW0pLm9uQ2hhbmdlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3U2NhbGFyc1RhYmxlID0gZ2VuZXJhdGVTY2FsYXJzVGFibGUoKTtcbiAgICAgICAgICAgIHNjYWxhcnNUYWJsZS5yZXBsYWNlV2l0aChuZXdTY2FsYXJzVGFibGUpO1xuICAgICAgICAgICAgc2NhbGFyc1RhYmxlID0gbmV3U2NhbGFyc1RhYmxlO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnRhYnNFbGVtLmFkZFBhbmUodGFiTGFiZWwsICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHVpLmRpdlYoWy4uLmRmU2VjdGlvbnMsIC4uLnRhYlNjYWxhclByb3BzLmxlbmd0aCA/IFt1aS5oMignU2NhbGFyIHZhbHVlcycpXTogW10sIHNjYWxhcnNUYWJsZV0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgb3V0cHV0QmxvY2suYXBwZW5kKHRoaXMudGFic0VsZW0ucm9vdCk7XG5cbiAgICB0aGlzLnRhYnNFbGVtLmhlYWRlci5jbGFzc0xpc3QuYWRkKElOVEVSQUNUSVZFX0NTU19DTEFTUyk7XG5cbiAgICByZXR1cm4gb3V0cHV0QmxvY2s7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgb25BZnRlckxvYWRSdW4obG9hZGVkUnVuOiBERy5GdW5jQ2FsbCkge1xuICAgIHd1KHRoaXMuZnVuY0NhbGwhLm91dHB1dFBhcmFtcy52YWx1ZXMoKSBhcyBERy5GdW5jQ2FsbFBhcmFtW10pLmZvckVhY2goKG91dCkgPT4ge1xuICAgICAgdGhpcy5mdW5jQ2FsbCEuc2V0UGFyYW1WYWx1ZShvdXQubmFtZSwgbG9hZGVkUnVuLm91dHB1dHNbb3V0Lm5hbWVdKTtcbiAgICB9KTtcblxuICAgIHd1KHRoaXMuZnVuY0NhbGwhLmlucHV0UGFyYW1zLnZhbHVlcygpIGFzIERHLkZ1bmNDYWxsUGFyYW1bXSkuZm9yRWFjaCgoaW5wKSA9PiB7XG4gICAgICB0aGlzLmZ1bmNDYWxsIS5zZXRQYXJhbVZhbHVlKGlucC5uYW1lLCBsb2FkZWRSdW4uaW5wdXRzW2lucC5uYW1lXSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnRhYnNFbGVtLnJvb3Quc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2Rpc3BsYXknKTtcbiAgICB0aGlzLnRhYnNFbGVtLnBhbmVzLmZvckVhY2goKHRhYikgPT4ge1xuICAgICAgaWYgKHRhYi5uYW1lICE9PSAnSW5wdXQnKSB0YWIuaGVhZGVyLnN0eWxlLnJlbW92ZVByb3BlcnR5KCdub25lJyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGRmVG9WaWV3ZXJNYXBwaW5nOiB7W2tleTogc3RyaW5nXTogREcuVmlld2VyW119ID0ge307XG5cbiAgcHJvdGVjdGVkIGdldCBkZlBhcmFtcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4udGhpcy5mdW5jIS5pbnB1dHMuZmlsdGVyKChwKSA9PiBwLnByb3BlcnR5VHlwZSA9PSBERy5UWVBFLkRBVEFfRlJBTUUpLFxuICAgICAgLi4udGhpcy5mdW5jIS5vdXRwdXRzLmZpbHRlcigocCkgPT4gcC5wcm9wZXJ0eVR5cGUgPT0gREcuVFlQRS5EQVRBX0ZSQU1FKSxcbiAgICBdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBkZk91dHB1dFBhcmFtcygpIHtcbiAgICByZXR1cm4gdGhpcy5mdW5jIS5vdXRwdXRzLmZpbHRlcigocCkgPT4gcC5wcm9wZXJ0eVR5cGUgPT0gREcuVFlQRS5EQVRBX0ZSQU1FKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgaXNJbnB1dFBhbmVsUmVxdWlyZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZnVuYz8uaW5wdXRzLnNvbWUoKHApID0+IHAucHJvcGVydHlUeXBlID09IERHLlRZUEUuREFUQV9GUkFNRSAmJiBwLm9wdGlvbnNbJ3ZpZXdlciddICE9IG51bGwpIHx8IGZhbHNlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBvdXRVbmlxdWVQYXJhbUNhdGVnb3JpZXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLm5ldyBTZXQodGhpcy5mdW5jIS5vdXRwdXRzLm1hcCgocCkgPT4gcC5jYXRlZ29yeSkpIC8vIGdldCBhbGwgb3V0cHV0IHBhcmFtcycgY2F0ZWdvcmllc1xuICAgIF07IC8vIGtlZXAgb25seSB1bmlxdWUgb2YgdGhlbVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBvdXRwdXRUYWJzTGFiZWxzKCkge1xuICAgIHJldHVybiBbXG4gICAgICAuLi50aGlzLm91dFVuaXF1ZVBhcmFtQ2F0ZWdvcmllcyxcbiAgICAgIC4uLnRoaXMub3V0VW5pcXVlUGFyYW1DYXRlZ29yaWVzLmZpbmQoKHZhbCkgPT4gdmFsID09PSAnTWlzYycpID8gWydPdXRwdXQnXSA6IFtdLCAvLyBpZiBubyBjYXRlZ29yaWVzIGFyZSBzdGF0ZWQsIHRoZSBkZWZhdWx0IGNhdGVnb3J5IGlzIGFkZGVkXG4gICAgXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdGFic0xhYmVscygpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5jYXRlZ29yeVRvUGFyYW1NYXApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBjYXRlZ29yeVRvUGFyYW1NYXAoKSB7XG4gICAgY29uc3QgbWFwID0ge30gYXMgUmVjb3JkPHN0cmluZywgREcuUHJvcGVydHlbXT47XG5cbiAgICBpZiAodGhpcy5pc0lucHV0UGFuZWxSZXF1aXJlZCkge1xuICAgICAgdGhpcy5mdW5jIS5pbnB1dHMuXG4gICAgICAgIGZpbHRlcigocCkgPT4gcC5wcm9wZXJ0eVR5cGUgPT0gREcuVFlQRS5EQVRBX0ZSQU1FICYmIHAub3B0aW9uc1sndmlld2VyJ10gIT0gbnVsbCkuXG4gICAgICAgIGZvckVhY2goKHApID0+IG1hcFsnSW5wdXQnXSA/IG1hcFsnSW5wdXQnXS5wdXNoKHApOiBtYXBbJ0lucHV0J10gPSBbcF0pO1xuICAgIH1cblxuICAgIHRoaXMuZnVuYyEub3V0cHV0cy5mb3JFYWNoKChwKSA9PiB7XG4gICAgICBjb25zdCBjYXRlZ29yeSA9IHAuY2F0ZWdvcnkgPT09ICdNaXNjJyA/ICdPdXRwdXQnOiBwLmNhdGVnb3J5O1xuXG4gICAgICBpZiAobWFwW2NhdGVnb3J5XSlcbiAgICAgICAgbWFwW2NhdGVnb3J5XS5wdXNoKHApO1xuICAgICAgZWxzZVxuICAgICAgICBtYXBbY2F0ZWdvcnldID0gW3BdO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1hcDtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyUnVuU2VjdGlvbihjYWxsOiBERy5GdW5jQ2FsbCk6IEhUTUxFbGVtZW50IHtcbiAgICBjb25zdCBydW5CdXR0b24gPSB1aS5iaWdCdXR0b24oJ1J1bicsIGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IHRoaXMucnVuKCk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBpbnB1dHMgPSB1aS5kaXZWKFtdLCAndWktZm9ybScpO1xuICAgIHd1KHRoaXMuZnVuY0NhbGwhLmlucHV0UGFyYW1zLnZhbHVlcygpIGFzIERHLkZ1bmNDYWxsUGFyYW1bXSlcbiAgICAgIC5maWx0ZXIoKHZhbCkgPT4gISF2YWwpXG4gICAgICAuZm9yRWFjaCgodmFsKSA9PiB7XG4gICAgICAgIGNvbnN0IHByb3AgPSB2YWwucHJvcGVydHk7XG4gICAgICAgIGlmIChwcm9wLnByb3BlcnR5VHlwZS50b1N0cmluZygpID09PSBGSUxFX0lOUFVUX1RZUEUpIHtcbiAgICAgICAgICBjb25zdCB0ID0gVWlVdGlscy5maWxlSW5wdXQocHJvcC5jYXB0aW9uID8/IHByb3AubmFtZSwgbnVsbCwgKGZpbGU6IEZpbGUpID0+IHRoaXMuZnVuY0NhbGwhLmlucHV0c1twcm9wLm5hbWVdID0gZmlsZSk7XG4gICAgICAgICAgcmV0dXJuIHQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgdCA9IHByb3AucHJvcGVydHlUeXBlID09PSBERy5UWVBFLkRBVEFfRlJBTUUgP1xuICAgICAgICAgICAgdWkudGFibGVJbnB1dChwcm9wLm5hbWUsIG51bGwsIGdyb2suc2hlbGwudGFibGVzKTpcbiAgICAgICAgICAgIHVpLmlucHV0LmZvclByb3BlcnR5KHByb3ApO1xuXG4gICAgICAgICAgICB0LmNhcHRpb25MYWJlbC5maXJzdENoaWxkIS5yZXBsYWNlV2l0aCh1aS5zcGFuKFtwcm9wLmNhcHRpb24gPz8gcHJvcC5uYW1lXSkpO1xuICAgICAgICAgICAgaWYgKHByb3Aub3B0aW9uc1sndW5pdHMnXSkgdC5hZGRQb3N0Zml4KHByb3Aub3B0aW9uc1sndW5pdHMnXSk7XG5cbiAgICAgICAgICAgIHRoaXMuZnVuY0NhbGxSZXBsYWNlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICB0LnZhbHVlID0gdGhpcy5mdW5jQ2FsbCEuaW5wdXRzW3ZhbC5uYW1lXSA/PyBwcm9wLmRlZmF1bHRWYWx1ZSA/PyBudWxsO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0Lm9uQ2hhbmdlZCgoKSA9PiB0aGlzLmZ1bmNDYWxsIS5pbnB1dHNbdmFsLm5hbWVdID0gdC52YWx1ZSk7XG4gICAgICAgICAgICBpbnB1dHMuYXBwZW5kKHQucm9vdCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgY29uc3QgYnV0dG9ucyA9IHVpLmRpdkgoW3J1bkJ1dHRvbl0sIHtzdHlsZTogeydqdXN0aWZ5LWNvbnRlbnQnOiAnZmxleC1lbmQnfX0pO1xuXG4gICAgcmV0dXJuIHVpLmRpdlYoW2lucHV0cywgYnV0dG9uc10pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRlZmF1bHRFeHBvcnQgPSBhc3luYyAoZm9ybWF0OiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBsYXN0Q2FsbCA9IHRoaXMubGFzdENhbGw7XG4gICAgaWYgKCFsYXN0Q2FsbCkgdGhyb3cgbmV3IEVycm9yKGBGdW5jdGlvbiB3YXMgbm90IGNhbGxlZGApO1xuXG4gICAgaWYgKCF0aGlzLmV4cG9ydENvbmZpZyEuc3VwcG9ydGVkRm9ybWF0cy5pbmNsdWRlcyhmb3JtYXQpKSB0aHJvdyBuZXcgRXJyb3IoYEZvcm1hdCBcIiR7Zm9ybWF0fVwiIGlzIG5vdCBzdXBwb3J0ZWQuYCk7XG5cbiAgICBpZiAoIXRoaXMuZnVuYykgdGhyb3cgbmV3IEVycm9yKCdUaGUgY29ycmVzcG9kaW5nIGZ1bmN0aW9uIGlzIG5vdCBzcGVjaWZpZWQnKTtcblxuICAgIGNvbnN0IEJMT0JfVFlQRSA9ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldDtjaGFyc2V0PVVURi04JztcbiAgICBjb25zdCBleHBvcnRXb3JrYm9vayA9IG5ldyBFeGNlbEpTLldvcmtib29rKCk7XG5cbiAgICBjb25zdCBpc1NjYWxhclR5cGUgPSAodHlwZTogREcuVFlQRSkgPT4gKERHLlRZUEVTX1NDQUxBUi5oYXModHlwZSkpO1xuXG4gICAgY29uc3QgaXNEYXRhRnJhbWUgPSAodHlwZTogREcuVFlQRSkgPT4gKHR5cGUgPT09IERHLlRZUEUuREFUQV9GUkFNRSk7XG5cbiAgICBjb25zdCBkZklucHV0cyA9IHRoaXMuZnVuYy5pbnB1dHMuZmlsdGVyKChpbnB1dCkgPT4gaXNEYXRhRnJhbWUoaW5wdXQucHJvcGVydHlUeXBlKSk7XG4gICAgY29uc3Qgc2NhbGFySW5wdXRzID0gdGhpcy5mdW5jLmlucHV0cy5maWx0ZXIoKGlucHV0KSA9PiBpc1NjYWxhclR5cGUoaW5wdXQucHJvcGVydHlUeXBlKSk7XG4gICAgY29uc3QgZGZPdXRwdXRzID0gdGhpcy5mdW5jLm91dHB1dHMuZmlsdGVyKChvdXRwdXQpID0+IGlzRGF0YUZyYW1lKG91dHB1dC5wcm9wZXJ0eVR5cGUpKTtcbiAgICBjb25zdCBzY2FsYXJPdXRwdXRzID0gdGhpcy5mdW5jLm91dHB1dHMuZmlsdGVyKChvdXRwdXQpID0+IGlzU2NhbGFyVHlwZShvdXRwdXQucHJvcGVydHlUeXBlKSk7XG5cbiAgICBjb25zdCBpbnB1dFBhcmFtcyA9IFsuLi5sYXN0Q2FsbC5pbnB1dFBhcmFtcy52YWx1ZXMoKV0gYXMgREcuRnVuY0NhbGxQYXJhbVtdO1xuICAgIGNvbnN0IG91dHB1dFBhcmFtcyA9IFsuLi5sYXN0Q2FsbC5vdXRwdXRQYXJhbXMudmFsdWVzKCldIGFzIERHLkZ1bmNDYWxsUGFyYW1bXTtcblxuICAgIGRmSW5wdXRzLmZvckVhY2goKGRmSW5wdXQpID0+IHtcbiAgICAgIGNvbnN0IHZpc2libGVUaXRsZSA9IGRmSW5wdXQub3B0aW9ucy5jYXB0aW9uIHx8IGRmSW5wdXQubmFtZTtcbiAgICAgIGNvbnN0IGN1cnJlbnREZlNoZWV0ID0gZXhwb3J0V29ya2Jvb2suYWRkV29ya3NoZWV0KGdldFNoZWV0TmFtZSh2aXNpYmxlVGl0bGUsIERJUkVDVElPTi5JTlBVVCkpO1xuXG4gICAgICBjb25zdCBjdXJyZW50RGYgPSAobGFzdENhbGwuaW5wdXRzW2RmSW5wdXQubmFtZV0gYXMgREcuRGF0YUZyYW1lKTtcbiAgICAgIGRmVG9TaGVldChjdXJyZW50RGZTaGVldCwgY3VycmVudERmKTtcbiAgICB9KTtcblxuICAgIGlmIChzY2FsYXJJbnB1dHMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBpbnB1dFNjYWxhcnNTaGVldCA9IGV4cG9ydFdvcmtib29rLmFkZFdvcmtzaGVldCgnSW5wdXQgc2NhbGFycycpO1xuICAgICAgc2NhbGFyc1RvU2hlZXQoaW5wdXRTY2FsYXJzU2hlZXQsIHNjYWxhcklucHV0cy5tYXAoKHNjYWxhcklucHV0KSA9PiAoe1xuICAgICAgICBjYXB0aW9uOiBzY2FsYXJJbnB1dC5vcHRpb25zWydjYXB0aW9uJ10gfHwgc2NhbGFySW5wdXQubmFtZSxcbiAgICAgICAgdmFsdWU6IGxhc3RDYWxsLmlucHV0c1tzY2FsYXJJbnB1dC5uYW1lXSxcbiAgICAgICAgdW5pdHM6IHNjYWxhcklucHV0Lm9wdGlvbnNbJ3VuaXRzJ10gfHwgJycsXG4gICAgICB9KSkpO1xuICAgIH1cblxuICAgIGRmT3V0cHV0cy5mb3JFYWNoKChkZk91dHB1dCkgPT4ge1xuICAgICAgY29uc3QgdmlzaWJsZVRpdGxlID0gZGZPdXRwdXQub3B0aW9ucy5jYXB0aW9uIHx8IGRmT3V0cHV0Lm5hbWU7XG4gICAgICBjb25zdCBjdXJyZW50RGZTaGVldCA9IGV4cG9ydFdvcmtib29rLmFkZFdvcmtzaGVldChnZXRTaGVldE5hbWUodmlzaWJsZVRpdGxlLCBESVJFQ1RJT04uT1VUUFVUKSk7XG5cbiAgICAgIGNvbnN0IGN1cnJlbnREZiA9IChsYXN0Q2FsbC5vdXRwdXRzW2RmT3V0cHV0Lm5hbWVdIGFzIERHLkRhdGFGcmFtZSk7XG4gICAgICBkZlRvU2hlZXQoY3VycmVudERmU2hlZXQsIGN1cnJlbnREZik7XG4gICAgfSk7XG5cblxuICAgIGlmIChzY2FsYXJPdXRwdXRzLmxlbmd0aCkge1xuICAgICAgY29uc3Qgb3V0cHV0U2NhbGFyc1NoZWV0ID0gZXhwb3J0V29ya2Jvb2suYWRkV29ya3NoZWV0KCdPdXRwdXQgc2NhbGFycycpO1xuICAgICAgc2NhbGFyc1RvU2hlZXQob3V0cHV0U2NhbGFyc1NoZWV0LCBzY2FsYXJPdXRwdXRzLm1hcCgoc2NhbGFyT3V0cHV0KSA9PiAoe1xuICAgICAgICBjYXB0aW9uOiBzY2FsYXJPdXRwdXQub3B0aW9uc1snY2FwdGlvbiddIHx8IHNjYWxhck91dHB1dC5uYW1lLFxuICAgICAgICB2YWx1ZTogbGFzdENhbGwub3V0cHV0c1tzY2FsYXJPdXRwdXQubmFtZV0sXG4gICAgICAgIHVuaXRzOiBzY2FsYXJPdXRwdXQub3B0aW9uc1sndW5pdHMnXSB8fCAnJyxcbiAgICAgIH0pKSk7XG4gICAgfVxuXG4gICAgY29uc3QgdGFiQ29udHJvbCA9IHRoaXMudGFic0VsZW07XG4gICAgZm9yIChjb25zdCB0YWJMYWJlbCBvZiB0aGlzLnRhYnNMYWJlbHMpIHtcbiAgICAgIHRhYkNvbnRyb2wuY3VycmVudFBhbmUgPSB0YWJDb250cm9sLmdldFBhbmUodGFiTGFiZWwpO1xuICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHIpID0+IHNldFRpbWVvdXQociwgMTAwKSk7XG4gICAgICBpZiAodGFiTGFiZWwgPT09ICdJbnB1dCcpIHtcbiAgICAgICAgZm9yIChjb25zdCBpbnB1dFBhcmFtIG9mIGlucHV0UGFyYW1zLmZpbHRlcigoaW5wdXRQYXJhbSkgPT4gaW5wdXRQYXJhbS5wcm9wZXJ0eS5wcm9wZXJ0eVR5cGUgPT09IERHLlRZUEUuREFUQV9GUkFNRSkpIHtcbiAgICAgICAgICBjb25zdCBub25HcmlkVmlld2VycyA9IHRoaXMuZGZUb1ZpZXdlck1hcHBpbmdbaW5wdXRQYXJhbS5uYW1lXS5maWx0ZXIoKHZpZXdlcikgPT4gdmlld2VyLnR5cGUgIT09IERHLlZJRVdFUi5HUklEKTtcblxuICAgICAgICAgIGNvbnN0IGRmSW5wdXQgPSBkZklucHV0cy5maW5kKChpbnB1dCkgPT4gaW5wdXQubmFtZSA9PT0gaW5wdXRQYXJhbS5uYW1lKTtcbiAgICAgICAgICBjb25zdCB2aXNpYmxlVGl0bGUgPSBkZklucHV0IS5vcHRpb25zLmNhcHRpb24gfHwgaW5wdXRQYXJhbS5uYW1lO1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnREZiA9IChsYXN0Q2FsbC5pbnB1dHNbZGZJbnB1dCEubmFtZV0gYXMgREcuRGF0YUZyYW1lKTtcblxuICAgICAgICAgIGZvciAoY29uc3QgW2luZGV4LCB2aWV3ZXJdIG9mIG5vbkdyaWRWaWV3ZXJzLmVudHJpZXMoKSkge1xuICAgICAgICAgICAgYXdhaXQgcGxvdFRvU2hlZXQoXG4gICAgICAgICAgICAgIGV4cG9ydFdvcmtib29rLFxuICAgICAgICAgICAgICBleHBvcnRXb3JrYm9vay5nZXRXb3Jrc2hlZXQoZ2V0U2hlZXROYW1lKHZpc2libGVUaXRsZSwgRElSRUNUSU9OLklOUFVUKSksXG4gICAgICAgICAgICAgIHZpZXdlci5yb290LFxuICAgICAgICAgICAgICBjdXJyZW50RGYuY29sdW1ucy5sZW5ndGggKyAyLFxuICAgICAgICAgICAgICAoaW5kZXggPiAwKSA/IE1hdGguY2VpbChub25HcmlkVmlld2Vyc1tpbmRleC0xXS5yb290LmNsaWVudEhlaWdodCAvIDIwKSArIDEgOiAwXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAoY29uc3Qgb3V0cHV0UGFyYW0gb2Ygb3V0cHV0UGFyYW1zLmZpbHRlcigob3V0cHV0UGFyYW0pID0+IG91dHB1dFBhcmFtLnByb3BlcnR5LnByb3BlcnR5VHlwZSA9PT0gREcuVFlQRS5EQVRBX0ZSQU1FICYmIG91dHB1dFBhcmFtLnByb3BlcnR5LmNhdGVnb3J5ID09PSB0YWJMYWJlbCkpIHtcbiAgICAgICAgICBjb25zdCBub25HcmlkVmlld2VycyA9IHRoaXMuZGZUb1ZpZXdlck1hcHBpbmdbb3V0cHV0UGFyYW0ubmFtZV0uZmlsdGVyKCh2aWV3ZXIpID0+IHZpZXdlci50eXBlICE9PSBERy5WSUVXRVIuR1JJRCk7XG5cbiAgICAgICAgICBjb25zdCBkZk91dHB1dCA9IGRmT3V0cHV0cy5maW5kKChpbnB1dCkgPT4gaW5wdXQubmFtZSA9PT0gb3V0cHV0UGFyYW0ubmFtZSkhO1xuICAgICAgICAgIGNvbnN0IHZpc2libGVUaXRsZSA9IGRmT3V0cHV0Lm9wdGlvbnMuY2FwdGlvbiB8fCBvdXRwdXRQYXJhbS5uYW1lO1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnREZiA9IChsYXN0Q2FsbC5vdXRwdXRzW2RmT3V0cHV0Lm5hbWVdIGFzIERHLkRhdGFGcmFtZSk7XG5cbiAgICAgICAgICBmb3IgKGNvbnN0IFtpbmRleCwgdmlld2VyXSBvZiBub25HcmlkVmlld2Vycy5lbnRyaWVzKCkpIHtcbiAgICAgICAgICAgIGlmICh2aWV3ZXIudHlwZSA9PT0gREcuVklFV0VSLlNUQVRJU1RJQ1MpIHtcbiAgICAgICAgICAgICAgY29uc3QgbGVuZ3RoID0gY3VycmVudERmLmNvbHVtbnMubGVuZ3RoO1xuICAgICAgICAgICAgICBjb25zdCBzdGF0cyA9IERHLkRhdGFGcmFtZS5mcm9tQ29sdW1ucyhbXG4gICAgICAgICAgICAgICAgREcuQ29sdW1uLnN0cmluZygnTmFtZScsIGxlbmd0aCkuaW5pdCgoaTogbnVtYmVyKSA9PiBjdXJyZW50RGYuY29sdW1ucy5ieUluZGV4KGkpLm5hbWUpLFxuICAgICAgICAgICAgICAgIERHLkNvbHVtbi5pbnQoJ1ZhbHVlcycsIGxlbmd0aCkuaW5pdCgoaTogbnVtYmVyKSA9PiBjdXJyZW50RGYuY29sdW1ucy5ieUluZGV4KGkpLnN0YXRzLnZhbHVlQ291bnQpLFxuICAgICAgICAgICAgICAgIERHLkNvbHVtbi5pbnQoJ051bGxzJywgbGVuZ3RoKS5pbml0KChpOiBudW1iZXIpID0+IGN1cnJlbnREZi5jb2x1bW5zLmJ5SW5kZXgoaSkuc3RhdHMubWlzc2luZ1ZhbHVlQ291bnQpLFxuICAgICAgICAgICAgICAgIERHLkNvbHVtbi5mbG9hdCgnTWluJywgbGVuZ3RoKS5pbml0KChpOiBudW1iZXIpID0+IGN1cnJlbnREZi5jb2x1bW5zLmJ5SW5kZXgoaSkuc3RhdHMubWluKSxcbiAgICAgICAgICAgICAgICBERy5Db2x1bW4uZmxvYXQoJ01heCcsIGxlbmd0aCkuaW5pdCgoaTogbnVtYmVyKSA9PiBjdXJyZW50RGYuY29sdW1ucy5ieUluZGV4KGkpLnN0YXRzLm1heCksXG4gICAgICAgICAgICAgICAgREcuQ29sdW1uLmZsb2F0KCdBdmcnLCBsZW5ndGgpLmluaXQoKGk6IG51bWJlcikgPT4gY3VycmVudERmLmNvbHVtbnMuYnlJbmRleChpKS5zdGF0cy5hdmcpLFxuICAgICAgICAgICAgICAgIERHLkNvbHVtbi5mbG9hdCgnU3RkZXYnLCBsZW5ndGgpLmluaXQoKGk6IG51bWJlcikgPT4gY3VycmVudERmLmNvbHVtbnMuYnlJbmRleChpKS5zdGF0cy5zdGRldiksXG4gICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICBkZlRvU2hlZXQoXG4gICAgICAgICAgICAgICAgZXhwb3J0V29ya2Jvb2suZ2V0V29ya3NoZWV0KGdldFNoZWV0TmFtZSh2aXNpYmxlVGl0bGUsIERJUkVDVElPTi5PVVRQVVQpKSxcbiAgICAgICAgICAgICAgICBzdGF0cyxcbiAgICAgICAgICAgICAgICBjdXJyZW50RGYuY29sdW1ucy5sZW5ndGggKyAyLFxuICAgICAgICAgICAgICAgIChpbmRleCA+IDApID8gTWF0aC5jZWlsKG5vbkdyaWRWaWV3ZXJzW2luZGV4LTFdLnJvb3QuY2xpZW50SGVpZ2h0IC8gMjApICsgMSA6IDBcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGF3YWl0IHBsb3RUb1NoZWV0KFxuICAgICAgICAgICAgICAgIGV4cG9ydFdvcmtib29rLFxuICAgICAgICAgICAgICAgIGV4cG9ydFdvcmtib29rLmdldFdvcmtzaGVldChnZXRTaGVldE5hbWUodmlzaWJsZVRpdGxlLCBESVJFQ1RJT04uT1VUUFVUKSksXG4gICAgICAgICAgICAgICAgdmlld2VyLnJvb3QsXG4gICAgICAgICAgICAgICAgY3VycmVudERmLmNvbHVtbnMubGVuZ3RoICsgMixcbiAgICAgICAgICAgICAgICAoaW5kZXggPiAwKSA/IE1hdGguY2VpbChub25HcmlkVmlld2Vyc1tpbmRleC0xXS5yb290LmNsaWVudEhlaWdodCAvIDIwKSArIDEgOiAwXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH07XG4gICAgY29uc3QgYnVmZmVyID0gYXdhaXQgZXhwb3J0V29ya2Jvb2sueGxzeC53cml0ZUJ1ZmZlcigpO1xuXG4gICAgcmV0dXJuIG5ldyBCbG9iKFtidWZmZXJdLCB7dHlwZTogQkxPQl9UWVBFfSk7XG4gIH07XG59XG5cbmNvbnN0IGdldFNoZWV0TmFtZSA9IChuYW1lOiBzdHJpbmcsIGRpcmVjdGlvbjogRElSRUNUSU9OKSA9PiB7XG4gIGNvbnN0IGlkZWFsTmFtZSA9IGAke2RpcmVjdGlvbn0gLSAke25hbWV9YDtcbiAgcmV0dXJuIChpZGVhbE5hbWUubGVuZ3RoID4gMzEpID8gbmFtZS5zdWJzdHJpbmcoMCwgMzIpIDogaWRlYWxOYW1lO1xufTtcblxuZW51bSBESVJFQ1RJT04ge1xuICBJTlBVVCA9ICdJbnB1dCcsXG4gIE9VVFBVVCA9ICdPdXRwdXQnXG59XG5cbmNvbnN0IHNjYWxhcnNUb1NoZWV0ID0gKHNoZWV0OiBFeGNlbEpTLldvcmtzaGVldCwgc2NhbGFyczogeyBjYXB0aW9uOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIHVuaXRzOiBzdHJpbmcgfVtdKSA9PiB7XG4gIHNoZWV0LmFkZFJvdyhbJ1BhcmFtZXRlcicsICdWYWx1ZScsICdVbml0cyddKS5mb250ID0ge2JvbGQ6IHRydWV9O1xuICBzY2FsYXJzLmZvckVhY2goKHNjYWxhcikgPT4ge1xuICAgIHNoZWV0LmFkZFJvdyhbc2NhbGFyLmNhcHRpb24sIHNjYWxhci52YWx1ZSwgc2NhbGFyLnVuaXRzXSk7XG4gIH0pO1xuXG4gIHNoZWV0LmdldENvbHVtbigxKS53aWR0aCA9IE1hdGgubWF4KFxuICAgIC4uLnNjYWxhcnMubWFwKChzY2FsYXIpID0+IHNjYWxhci5jYXB0aW9uLnRvU3RyaW5nKCkubGVuZ3RoKSwgJ1BhcmFtZXRlcicubGVuZ3RoXG4gICkgKiAxLjI7XG4gIHNoZWV0LmdldENvbHVtbigyKS53aWR0aCA9IE1hdGgubWF4KC4uLnNjYWxhcnMubWFwKChzY2FsYXIpID0+IHNjYWxhci52YWx1ZS50b1N0cmluZygpLmxlbmd0aCksICdWYWx1ZScubGVuZ3RoKSAqIDEuMjtcbiAgc2hlZXQuZ2V0Q29sdW1uKDMpLndpZHRoID0gTWF0aC5tYXgoLi4uc2NhbGFycy5tYXAoKHNjYWxhcikgPT4gc2NhbGFyLnVuaXRzLnRvU3RyaW5nKCkubGVuZ3RoKSwgJ1VuaXRzJy5sZW5ndGgpICogMS4yO1xufTtcblxuY29uc3QgZGZUb1NoZWV0ID0gKHNoZWV0OiBFeGNlbEpTLldvcmtzaGVldCwgZGY6IERHLkRhdGFGcmFtZSwgY29sdW1uOiBudW1iZXIgPSAwLCByb3c6IG51bWJlciA9IDApID0+IHtcbiAgZm9yIChsZXQgaT0gMDsgaSA8IGRmLmNvbHVtbnMubmFtZXMoKS5sZW5ndGg7IGkrKykge1xuICAgIHNoZWV0LmdldENlbGwoMSArIHJvdywgMSArIGkgKyBjb2x1bW4pLnZhbHVlID0gZGYuY29sdW1ucy5ieUluZGV4KGkpLm5hbWU7XG4gICAgc2hlZXQuZ2V0Q29sdW1uKDEgKyBpICsgY29sdW1uKS53aWR0aCA9IE1hdGgubWF4KFxuICAgICAgLi4uZGYuY29sdW1ucy5ieUluZGV4KGkpLmNhdGVnb3JpZXMubWFwKChjYXRlZ29yeSkgPT4gY2F0ZWdvcnkudG9TdHJpbmcoKS5sZW5ndGgpLFxuICAgICAgZGYuY29sdW1ucy5ieUluZGV4KGkpLm5hbWUubGVuZ3RoXG4gICAgKSAqIDEuMjtcbiAgfVxuICBmb3IgKGxldCBkZkNvbHVtbiA9IDA7IGRmQ29sdW1uIDwgZGYuY29sdW1ucy5sZW5ndGg7IGRmQ29sdW1uKyspIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRmLnJvd0NvdW50OyBpKyspXG4gICAgICBzaGVldC5nZXRDZWxsKGkgKyAyICsgcm93LCAxICsgY29sdW1uK2RmQ29sdW1uKS52YWx1ZSA9IGRmLmNvbHVtbnMuYnlJbmRleChkZkNvbHVtbikuZ2V0KGkpO1xuICB9XG59O1xuXG5jb25zdCBwbG90VG9TaGVldCA9IGFzeW5jIChleHBvcnRXYjogRXhjZWxKUy5Xb3JrYm9vaywgc2hlZXQ6IEV4Y2VsSlMuV29ya3NoZWV0LCBwbG90OiBIVE1MRWxlbWVudCwgY29sdW1uRm9ySW1hZ2U6IG51bWJlciwgcm93Rm9ySW1hZ2U6IG51bWJlciA9IDApID0+IHtcbiAgY29uc3QgY2FudmFzID0gYXdhaXQgaHRtbDJjYW52YXMocGxvdCBhcyBIVE1MRWxlbWVudCwge2xvZ2dpbmc6IGZhbHNlfSk7XG4gIGNvbnN0IGRhdGFVcmwgPSBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS9wbmcnKTtcblxuICBjb25zdCBpbWFnZUlkID0gZXhwb3J0V2IuYWRkSW1hZ2Uoe1xuICAgIGJhc2U2NDogZGF0YVVybCxcbiAgICBleHRlbnNpb246ICdwbmcnLFxuICB9KTtcbiAgc2hlZXQuYWRkSW1hZ2UoaW1hZ2VJZCwge1xuICAgIHRsOiB7Y29sOiBjb2x1bW5Gb3JJbWFnZSwgcm93OiByb3dGb3JJbWFnZX0sXG4gICAgZXh0OiB7d2lkdGg6IGNhbnZhcy53aWR0aCwgaGVpZ2h0OiBjYW52YXMuaGVpZ2h0fSxcbiAgfSk7XG59O1xuIl19
448
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaC1mdW5jdGlvbi12aWV3LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicmljaC1mdW5jdGlvbi12aWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLDRCQUE0QjtBQUM1QixPQUFPLEtBQUssSUFBSSxNQUFNLG1CQUFtQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEMsT0FBTyxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0QyxPQUFPLEVBQUMsWUFBWSxFQUFFLHFCQUFxQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDcEUsT0FBTyxPQUFPLE1BQU0sU0FBUyxDQUFDO0FBQzlCLE9BQU8sV0FBVyxNQUFNLGFBQWEsQ0FBQztBQUN0QyxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEIsT0FBTyxDQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ3pCLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRXJELE1BQU0sa0JBQWtCLEdBQTRCO0lBQ2xELENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTO0lBQ2pDLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRO0lBQy9CLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRO0lBQ2hDLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTO0lBQ2pDLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZO0lBQ3ZDLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPO0lBQzlCLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJO0lB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UyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztvQ0FDbEcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDO29DQUN4RyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO29DQUMxRixFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO29DQUMxRixFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO29DQUMxRixFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO2lDQUMvRixDQUFDLENBQUM7Z0NBQ0gsU0FB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LENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuICovXG5pbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0IHtGdW5jdGlvblZpZXcsIElOVEVSQUNUSVZFX0NTU19DTEFTU30gZnJvbSAnLi9mdW5jdGlvbi12aWV3JztcbmltcG9ydCBFeGNlbEpTIGZyb20gJ2V4Y2VsanMnO1xuaW1wb3J0IGh0bWwyY2FudmFzIGZyb20gJ2h0bWwyY2FudmFzJztcbmltcG9ydCB3dSBmcm9tICd3dSc7XG5pbXBvcnQgJCBmcm9tICdjYXNoLWRvbSc7XG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtVaVV0aWxzfSBmcm9tICcuL3NoYXJlZC1jb21wb25lbnRzL3VpLXV0aWxzJztcblxuY29uc3Qgdmlld2VyVHlwZXNNYXBwaW5nOiB7W2tleTogc3RyaW5nXTogc3RyaW5nfSA9IHtcbiAgWydiYXJjaGFydCddOiBERy5WSUVXRVIuQkFSX0NIQVJULFxuICBbJ2JveHBsb3QnXTogREcuVklFV0VSLkJPWF9QTE9ULFxuICBbJ2NhbGVuZGFyJ106IERHLlZJRVdFUi5DQUxFTkRBUixcbiAgWydjb3JycGxvdCddOiBERy5WSUVXRVIuQ09SUl9QTE9ULFxuICBbJ2RlbnNpdHlwbG90J106IERHLlZJRVdFUi5ERU5TSVRZX1BMT1QsXG4gIFsnZmlsdGVycyddOiBERy5WSUVXRVIuRklMVEVSUyxcbiAgWydmb3JtJ106IERHLlZJRVdFUi5GT1JNLFxuICBbJ2dsb2JlJ106IERHLlZJRVdFUi5HTE9CRSxcbiAgWydnb29nbGVtYXAnXTogREcuVklFV0VSLkdPT0dMRV9NQVAsXG4gIFsnZ3JpZCddOiBERy5WSUVXRVIuR1JJRCxcbiAgWydoZWF0bWFwJ106IERHLlZJRVdFUi5IRUFUX01BUCxcbiAgWydoaXN0b2dyYW0nXTogREcuVklFV0VSLkhJU1RPR1JBTSxcbiAgWydsaW5lY2hhcnQnXTogREcuVklFV0VSLkxJTkVfQ0hBUlQsXG4gIFsnbWFya3VwJ106IERHLlZJRVdFUi5NQVJLVVAsXG4gIFsnbWF0cml4cGxvdCddOiBERy5WSUVXRVIuTUFUUklYX1BMT1QsXG4gIFsnbmV0d29ya2RpYWdyYW0nXTogREcuVklFV0VSLk5FVFdPUktfRElBR1JBTSxcbiAgWydwY3Bsb3QnXTogREcuVklFV0VSLlBDX1BMT1QsXG4gIFsncGllY2hhcnQnXTogREcuVklFV0VSLlBJRV9DSEFSVCxcbiAgWydzY2F0dGVycGxvdCddOiBERy5WSUVXRVIuU0NBVFRFUl9QTE9ULFxuICBbJ3NjYXR0ZXJwbG90M2QnXTogREcuVklFV0VSLlNDQVRURVJfUExPVF8zRCxcbiAgWydzaGFwZW1hcCddOiBERy5WSUVXRVIuU0hBUEVfTUFQLFxuICBbJ3N0YXRpc3RpY3MnXTogREcuVklFV0VSLlNUQVRJU1RJQ1MsXG4gIFsndGlsZXZpZXdlciddOiBERy5WSUVXRVIuVElMRV9WSUVXRVIsXG4gIFsndGltZWxpbmVzJ106IERHLlZJRVdFUi5USU1FTElORVMsXG4gIFsndHJlZW1hcCddOiBERy5WSUVXRVIuVFJFRV9NQVAsXG4gIFsndHJlbGxpc3Bsb3QnXTogREcuVklFV0VSLlRSRUxMSVNfUExPVCxcbiAgWyd3b3JkY2xvdWQnXTogREcuVklFV0VSLldPUkRfQ0xPVUQsXG59O1xuXG5jb25zdCBGSUxFX0lOUFVUX1RZUEUgPSAnZmlsZSc7XG5cbmV4cG9ydCBjbGFzcyBSaWNoRnVuY3Rpb25WaWV3IGV4dGVuZHMgRnVuY3Rpb25WaWV3IHtcbiAgLy8gZW1pdHRlZCB3aGVuIGFmdGVyIGEgbmV3IEZ1bmNDYWxsIGlzIGxpbmtlZFxuICBwcml2YXRlIGZ1bmNDYWxsUmVwbGFjZWQgPSBuZXcgU3ViamVjdDx0cnVlPigpO1xuXG4gIGNvbnN0cnVjdG9yKGZ1bmNDYWxsOiBERy5GdW5jQ2FsbCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmJhc2VQYXRoID0gYHNjcmlwdHMvJHtmdW5jQ2FsbC5mdW5jLmlkfS92aWV3YDtcblxuICAgIHRoaXMuZXhwb3J0Q29uZmlnID0ge1xuICAgICAgc3VwcG9ydGVkRXh0ZW5zaW9uczogdGhpcy5kZWZhdWx0U3VwcG9ydGVkRXhwb3J0RXh0ZW5zaW9ucygpLFxuICAgICAgc3VwcG9ydGVkRm9ybWF0czogdGhpcy5kZWZhdWx0U3VwcG9ydGVkRXhwb3J0Rm9ybWF0cygpLFxuICAgICAgZXhwb3J0OiB0aGlzLmRlZmF1bHRFeHBvcnQsXG4gICAgICBmaWxlbmFtZTogdGhpcy5kZWZhdWx0RXhwb3J0RmlsZW5hbWUsXG4gICAgfTtcblxuICAgIHRoaXMubGlua0Z1bmNjYWxsKGZ1bmNDYWxsKTtcbiAgICB0aGlzLmluaXQoKTtcbiAgICB0aGlzLmJ1aWxkKCk7XG5cbiAgICB0aGlzLmZ1bmNDYWxsUmVwbGFjZWQubmV4dCgpO1xuXG4gICAgdGhpcy5uYW1lID0gZnVuY0NhbGwuZnVuYy5mcmllbmRseU5hbWU7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgbGlua0Z1bmNjYWxsKGZ1bmNDYWxsOiBERy5GdW5jQ2FsbCkge1xuICAgIGNvbnN0IGlzUHJldmlvdXNIaXN0b3JpY2FsID0gdGhpcy5fZnVuY0NhbGw/Lm9wdGlvbnNbJ2lzSGlzdG9yaWNhbCddO1xuICAgIHRoaXMuX2Z1bmNDYWxsID0gZnVuY0NhbGw7XG5cbiAgICB0aGlzLmZ1bmNDYWxsUmVwbGFjZWQubmV4dCh0cnVlKTtcblxuICAgIGlmIChmdW5jQ2FsbC5vcHRpb25zWydpc0hpc3RvcmljYWwnXSkge1xuICAgICAgaWYgKCFpc1ByZXZpb3VzSGlzdG9yaWNhbCkge1xuICAgICAgICB0aGlzLm5hbWUgPSBgJHt0aGlzLm5hbWV9IOKAlCAke2Z1bmNDYWxsLm9wdGlvbnNbJ3RpdGxlJ10gPz8gbmV3IERhdGUoZnVuY0NhbGwuc3RhcnRlZC50b1N0cmluZygpKS50b0xvY2FsZVN0cmluZygnZW4tdXMnLCB7bW9udGg6ICdzaG9ydCcsIGRheTogJ251bWVyaWMnLCBob3VyOiAnbnVtZXJpYycsIG1pbnV0ZTogJ251bWVyaWMnfSl9YDtcbiAgICAgICAgdGhpcy5zZXRSdW5WaWV3UmVhZG9ubHkoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubmFtZSA9IGAke3RoaXMubmFtZS5zdWJzdHJpbmcoMCwgdGhpcy5uYW1lLmluZGV4T2YoJyDigJQgJykpfSDigJQgJHtmdW5jQ2FsbC5vcHRpb25zWyd0aXRsZSddID8/IG5ldyBEYXRlKGZ1bmNDYWxsLnN0YXJ0ZWQudG9TdHJpbmcoKSkudG9Mb2NhbGVTdHJpbmcoJ2VuLXVzJywge21vbnRoOiAnc2hvcnQnLCBkYXk6ICdudW1lcmljJywgaG91cjogJ251bWVyaWMnLCBtaW51dGU6ICdudW1lcmljJ30pfWA7XG4gICAgICB9XG5cbiAgICAgIC8vIEZJWCBNRTogdmlldyBuYW1lIGRvZXMgbm90IGNoYW5nZSBpbiBtb2RlbHNcbiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2Rpdi5kNC1yaWJib24tbmFtZScpPy5yZXBsYWNlQ2hpbGRyZW4odWkuc3BhbihbdGhpcy5uYW1lXSkpO1xuICAgICAgdGhpcy5wYXRoID0gYD9pZD0ke3RoaXMuX2Z1bmNDYWxsLmlkfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0UnVuVmlld0VkaXRhYmxlKCk7XG4gICAgICB0aGlzLnBhdGggPSBgYDtcblxuICAgICAgaWYgKGlzUHJldmlvdXNIaXN0b3JpY2FsKVxuICAgICAgICB0aGlzLm5hbWUgPSBgJHt0aGlzLm5hbWUuc3Vic3RyaW5nKDAsIHRoaXMubmFtZS5pbmRleE9mKCcg4oCUICcpKX1gO1xuICAgIH1cbiAgICB0aGlzLmJ1aWxkUmliYm9uUGFuZWxzKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25BZnRlclJ1bihydW5GdW5jOiBERy5GdW5jQ2FsbCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMudGFic0VsZW0ucm9vdC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnZGlzcGxheScpO1xuICAgIHRoaXMudGFic0VsZW0ucGFuZXMuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICB0YWIuaGVhZGVyLnN0eWxlLnJlbW92ZVByb3BlcnR5KCdkaXNwbGF5Jyk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cblxuICBwdWJsaWMgYnVpbGRJTygpOiBIVE1MRWxlbWVudCB7XG4gICAgY29uc3QgaW5wdXRCbG9jayA9IHRoaXMuYnVpbGRJbnB1dEJsb2NrKCk7XG4gICAgY29uc3Qgb3V0cHV0QmxvY2sgPSB0aGlzLmJ1aWxkT3V0cHV0QmxvY2soKTtcbiAgICBvdXRwdXRCbG9jay5zdHlsZS5oZWlnaHQgPSAnMTAwJSc7XG4gICAgb3V0cHV0QmxvY2suc3R5bGUud2lkdGggPSAnMTAwJSc7XG4gICAgaWYgKCEhdGhpcy50YWJzRWxlbS5nZXRQYW5lKCdJbnB1dCcpKSB7XG4gICAgICB0aGlzLnRhYnNFbGVtLnBhbmVzLmZvckVhY2goKHRhYikgPT4ge1xuICAgICAgICBpZiAodGFiLm5hbWUgIT09ICdJbnB1dCcpIHRhYi5oZWFkZXIuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRhYnNFbGVtLnJvb3Quc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICB9XG5cbiAgICBjb25zdCBvdXQgPSB1aS5zcGxpdEgoW2lucHV0QmxvY2ssIHVpLnBhbmVsKFtvdXRwdXRCbG9ja10pXSwgbnVsbCwgdHJ1ZSk7XG5cbiAgICBpbnB1dEJsb2NrLnBhcmVudEVsZW1lbnQhLnN0eWxlLm1heFdpZHRoID0gJzQ1MHB4JztcblxuICAgIHJldHVybiBvdXQ7XG4gIH1cblxuICBwdWJsaWMgYnVpbGRJbnB1dEJsb2NrKCk6IEhUTUxFbGVtZW50IHtcbiAgICBjb25zdCBmb3JtRGl2ID0gdGhpcy5yZW5kZXJSdW5TZWN0aW9uKHRoaXMuZnVuY0NhbGwhKTtcblxuICAgIHVpLnRvb2xzLmhhbmRsZVJlc2l6ZShmb3JtRGl2LCAod2lkdGgpID0+IHtcbiAgICAgIGlmICh3aWR0aCA8IDM1MClcbiAgICAgICAgJChmb3JtRGl2LmZpcnN0Q2hpbGQpLmFkZENsYXNzKCd1aS1mb3JtLWNvbmRlbnNlZCcpO1xuICAgICAgZWxzZVxuICAgICAgICAkKGZvcm1EaXYuZmlyc3RDaGlsZCkucmVtb3ZlQ2xhc3MoJ3VpLWZvcm0tY29uZGVuc2VkJyk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZm9ybURpdjtcbiAgfVxuXG4gIHByaXZhdGUgdGFic0VsZW0gPSB1aS50YWJDb250cm9sKCk7XG5cbiAgcHVibGljIGJ1aWxkT3V0cHV0QmxvY2soKTogSFRNTEVsZW1lbnQge1xuICAgIGNvbnN0IG91dHB1dEJsb2NrID0gdWkuYm94KCk7XG5cbiAgICBjb25zdCBwYXJzZWREZlByb3BzID0gdGhpcy5kZlBhcmFtcy5tYXAoKGRmUHJvcCkgPT4gSlNPTi5wYXJzZShkZlByb3Aub3B0aW9uc1sndmlld2VyJ10pKTtcblxuICAgIHRoaXMudGFic0xhYmVscy5mb3JFYWNoKCh0YWJMYWJlbCkgPT4ge1xuICAgICAgY29uc3QgdGFiRGZQcm9wcyA9IHRoaXMuY2F0ZWdvcnlUb1BhcmFtTWFwW3RhYkxhYmVsXS5maWx0ZXIoKHApID0+IHAucHJvcGVydHlUeXBlID09PSBERy5UWVBFLkRBVEFfRlJBTUUpO1xuICAgICAgY29uc3QgdGFiU2NhbGFyUHJvcHMgPSB0aGlzLmNhdGVnb3J5VG9QYXJhbU1hcFt0YWJMYWJlbF0uZmlsdGVyKChwKSA9PiBwLnByb3BlcnR5VHlwZSAhPT0gREcuVFlQRS5EQVRBX0ZSQU1FKTtcblxuICAgICAgY29uc3QgZGZTZWN0aW9ucyA9IHRhYkRmUHJvcHMubWFwKChkZlByb3AsIGRmSW5kZXgpID0+IHtcbiAgICAgICAgY29uc3Qgdmlld2VyczogREcuVmlld2VyW10gPSBwYXJzZWREZlByb3BzW2RmSW5kZXhdLm1hcCgodmlld2VyRGVzYzoge1trZXk6IHN0cmluZ106IHN0cmluZ30pID0+IHtcbiAgICAgICAgICBjb25zdCBpbml0aWFsVmFsdWUgPSB0aGlzLmZ1bmNDYWxsPy5vdXRwdXRzW2RmUHJvcC5uYW1lXT8udmFsdWUgPz8gdGhpcy5mdW5jQ2FsbCEuaW5wdXRQYXJhbXNbZGZQcm9wLm5hbWVdPy52YWx1ZSA/PyBERy5EYXRhRnJhbWUuZnJvbUNzdihgYCk7XG5cbiAgICAgICAgICBjb25zdCB2aWV3ZXIgPSBERy5WaWV3ZXIuZnJvbVR5cGUodmlld2VyVHlwZXNNYXBwaW5nW3ZpZXdlckRlc2NbJ3R5cGUnXV0sIGluaXRpYWxWYWx1ZSk7XG4gICAgICAgICAgdmlld2VyLnNldE9wdGlvbnModmlld2VyRGVzYyk7XG5cbiAgICAgICAgICBpZiAodGhpcy5kZlRvVmlld2VyTWFwcGluZ1tkZlByb3AubmFtZV0pIHRoaXMuZGZUb1ZpZXdlck1hcHBpbmdbZGZQcm9wLm5hbWVdLnB1c2godmlld2VyKTsgZWxzZSB0aGlzLmRmVG9WaWV3ZXJNYXBwaW5nW2RmUHJvcC5uYW1lXSA9IFt2aWV3ZXJdO1xuXG4gICAgICAgICAgcmV0dXJuIHZpZXdlcjtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5mdW5jQ2FsbFJlcGxhY2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgY3VycmVudFBhcmFtOiBERy5GdW5jQ2FsbFBhcmFtID0gdGhpcy5mdW5jQ2FsbCEub3V0cHV0UGFyYW1zW2RmUHJvcC5uYW1lXSA/PyB0aGlzLmZ1bmNDYWxsIS5pbnB1dFBhcmFtc1tkZlByb3AubmFtZV07XG5cbiAgICAgICAgICBjdXJyZW50UGFyYW0ub25DaGFuZ2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB2aWV3ZXJzLmZvckVhY2goKHZpZXdlcikgPT4ge1xuICAgICAgICAgICAgICB2aWV3ZXIuZGF0YUZyYW1lID0gY3VycmVudFBhcmFtLnZhbHVlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGRmU2VjdGlvblRpdGxlOiBzdHJpbmcgPSBkZlByb3Aub3B0aW9uc1snY2FwdGlvbiddID8/IGRmUHJvcC5uYW1lO1xuXG4gICAgICAgIGlmICh0YWJMYWJlbCAhPT0gJ0lucHV0Jykge1xuICAgICAgICAgIHJldHVybiB1aS5kaXZWKFtcbiAgICAgICAgICAgIHVpLmgyKGRmU2VjdGlvblRpdGxlKSxcbiAgICAgICAgICAgIHVpLmRpdkgodmlld2Vycy5tYXAoKHZpZXdlciwgdmlld2VySW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHBhcnNlZERmUHJvcHNbZGZJbmRleF1bdmlld2VySW5kZXhdWydibG9jayddID09PSAnMjUnKSByZXR1cm4gdWkuYmxvY2syNShbdmlld2VyLnJvb3RdKTtcbiAgICAgICAgICAgICAgaWYgKHBhcnNlZERmUHJvcHNbZGZJbmRleF1bdmlld2VySW5kZXhdWydibG9jayddID09PSAnNTAnKSByZXR1cm4gdWkuYmxvY2s1MChbdmlld2VyLnJvb3RdKTtcbiAgICAgICAgICAgICAgaWYgKHBhcnNlZERmUHJvcHNbZGZJbmRleF1bdmlld2VySW5kZXhdWydibG9jayddID09PSAnNzUnKSByZXR1cm4gdWkuYmxvY2s3NShbdmlld2VyLnJvb3RdKTtcblxuICAgICAgICAgICAgICByZXR1cm4gdmlld2VyLnJvb3Q7XG4gICAgICAgICAgICB9KSlcbiAgICAgICAgICBdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBsYWJlbCA9IHVpLnNwYW4oWydTZWxlY3QgYSBkYXRhZnJhbWUgdG8gcmV2aWV3IGl0J10pO1xuICAgICAgICAgIGNvbnN0IGlucHV0U2VjdGlvbiA9IHVpLmRpdkgodmlld2Vycy5tYXAoKHZpZXdlciwgdmlld2VySW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmIChwYXJzZWREZlByb3BzW2RmSW5kZXhdW3ZpZXdlckluZGV4XVsnYmxvY2snXSA9PT0gJzI1JykgcmV0dXJuIHVpLmJsb2NrMjUoW3ZpZXdlci5yb290XSk7XG4gICAgICAgICAgICBpZiAocGFyc2VkRGZQcm9wc1tkZkluZGV4XVt2aWV3ZXJJbmRleF1bJ2Jsb2NrJ10gPT09ICc1MCcpIHJldHVybiB1aS5ibG9jazUwKFt2aWV3ZXIucm9vdF0pO1xuICAgICAgICAgICAgaWYgKHBhcnNlZERmUHJvcHNbZGZJbmRleF1bdmlld2VySW5kZXhdWydibG9jayddID09PSAnNzUnKSByZXR1cm4gdWkuYmxvY2s3NShbdmlld2VyLnJvb3RdKTtcblxuICAgICAgICAgICAgcmV0dXJuIHZpZXdlci5yb290O1xuICAgICAgICAgIH0pLCB7c3R5bGU6IHtkaXNwbGF5OiAnbm9uZSd9fSk7XG5cbiAgICAgICAgICB0aGlzLmZ1bmNDYWxsUmVwbGFjZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRQYXJhbTogREcuRnVuY0NhbGxQYXJhbSA9IHRoaXMuZnVuY0NhbGwhLm91dHB1dFBhcmFtc1tkZlByb3AubmFtZV0gPz8gdGhpcy5mdW5jQ2FsbCEuaW5wdXRQYXJhbXNbZGZQcm9wLm5hbWVdO1xuXG4gICAgICAgICAgICBjdXJyZW50UGFyYW0ub25DaGFuZ2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgIGxhYmVsLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgICAgICAgIGlucHV0U2VjdGlvbi5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnZGlzcGxheScpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICByZXR1cm4gdWkuZGl2VihbXG4gICAgICAgICAgICB1aS5oMihkZlNlY3Rpb25UaXRsZSksXG4gICAgICAgICAgICBpbnB1dFNlY3Rpb24sXG4gICAgICAgICAgICBsYWJlbFxuICAgICAgICAgIF0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuXG4gICAgICBjb25zdCBnZW5lcmF0ZVNjYWxhcnNUYWJsZSA9ICgpID0+IHVpLnRhYmxlRnJvbU1hcChcbiAgICAgICAgdGFiU2NhbGFyUHJvcHMucmVkdWNlKChhY2MsIHNjYWxhcikgPT4ge1xuICAgICAgICAgIGFjY1tzY2FsYXIubmFtZV0gPSB0aGlzLmZ1bmNDYWxsPy5vdXRwdXRzW3NjYWxhci5uYW1lXTtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCB7fSBhcyB7W2tleTogc3RyaW5nXTogc3RyaW5nfSlcbiAgICAgICk7XG5cbiAgICAgIGxldCBzY2FsYXJzVGFibGUgPSBnZW5lcmF0ZVNjYWxhcnNUYWJsZSgpO1xuXG4gICAgICB0YWJTY2FsYXJQcm9wcy5mb3JFYWNoKCh0YWJTY2FsYXJQcm9wKSA9PiB7XG4gICAgICAgIHRoaXMuZnVuY0NhbGxSZXBsYWNlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICh0aGlzLmZ1bmNDYWxsIS5vdXRwdXRQYXJhbXNbdGFiU2NhbGFyUHJvcC5uYW1lXSBhcyBERy5GdW5jQ2FsbFBhcmFtKS5vbkNoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1NjYWxhcnNUYWJsZSA9IGdlbmVyYXRlU2NhbGFyc1RhYmxlKCk7XG4gICAgICAgICAgICBzY2FsYXJzVGFibGUucmVwbGFjZVdpdGgobmV3U2NhbGFyc1RhYmxlKTtcbiAgICAgICAgICAgIHNjYWxhcnNUYWJsZSA9IG5ld1NjYWxhcnNUYWJsZTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy50YWJzRWxlbS5hZGRQYW5lKHRhYkxhYmVsLCAoKSA9PiB7XG4gICAgICAgIHJldHVybiB1aS5kaXZWKFsuLi5kZlNlY3Rpb25zLCAuLi50YWJTY2FsYXJQcm9wcy5sZW5ndGggPyBbdWkuaDIoJ1NjYWxhciB2YWx1ZXMnKV06IFtdLCBzY2FsYXJzVGFibGVdKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIG91dHB1dEJsb2NrLmFwcGVuZCh0aGlzLnRhYnNFbGVtLnJvb3QpO1xuXG4gICAgdGhpcy50YWJzRWxlbS5oZWFkZXIuY2xhc3NMaXN0LmFkZChJTlRFUkFDVElWRV9DU1NfQ0xBU1MpO1xuXG4gICAgcmV0dXJuIG91dHB1dEJsb2NrO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIG9uQWZ0ZXJMb2FkUnVuKGxvYWRlZFJ1bjogREcuRnVuY0NhbGwpIHtcbiAgICB3dSh0aGlzLmZ1bmNDYWxsIS5vdXRwdXRQYXJhbXMudmFsdWVzKCkgYXMgREcuRnVuY0NhbGxQYXJhbVtdKS5mb3JFYWNoKChvdXQpID0+IHtcbiAgICAgIHRoaXMuZnVuY0NhbGwhLnNldFBhcmFtVmFsdWUob3V0Lm5hbWUsIGxvYWRlZFJ1bi5vdXRwdXRzW291dC5uYW1lXSk7XG4gICAgfSk7XG5cbiAgICB3dSh0aGlzLmZ1bmNDYWxsIS5pbnB1dFBhcmFtcy52YWx1ZXMoKSBhcyBERy5GdW5jQ2FsbFBhcmFtW10pLmZvckVhY2goKGlucCkgPT4ge1xuICAgICAgdGhpcy5mdW5jQ2FsbCEuc2V0UGFyYW1WYWx1ZShpbnAubmFtZSwgbG9hZGVkUnVuLmlucHV0c1tpbnAubmFtZV0pO1xuICAgIH0pO1xuXG4gICAgdGhpcy50YWJzRWxlbS5yb290LnN0eWxlLnJlbW92ZVByb3BlcnR5KCdkaXNwbGF5Jyk7XG4gICAgdGhpcy50YWJzRWxlbS5wYW5lcy5mb3JFYWNoKCh0YWIpID0+IHtcbiAgICAgIGlmICh0YWIubmFtZSAhPT0gJ0lucHV0JykgdGFiLmhlYWRlci5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnbm9uZScpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkZlRvVmlld2VyTWFwcGluZzoge1trZXk6IHN0cmluZ106IERHLlZpZXdlcltdfSA9IHt9O1xuXG4gIHByb3RlY3RlZCBnZXQgZGZQYXJhbXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLnRoaXMuZnVuYyEuaW5wdXRzLmZpbHRlcigocCkgPT4gcC5wcm9wZXJ0eVR5cGUgPT0gREcuVFlQRS5EQVRBX0ZSQU1FKSxcbiAgICAgIC4uLnRoaXMuZnVuYyEub3V0cHV0cy5maWx0ZXIoKHApID0+IHAucHJvcGVydHlUeXBlID09IERHLlRZUEUuREFUQV9GUkFNRSksXG4gICAgXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgZGZPdXRwdXRQYXJhbXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZnVuYyEub3V0cHV0cy5maWx0ZXIoKHApID0+IHAucHJvcGVydHlUeXBlID09IERHLlRZUEUuREFUQV9GUkFNRSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGlzSW5wdXRQYW5lbFJlcXVpcmVkKCkge1xuICAgIHJldHVybiB0aGlzLmZ1bmM/LmlucHV0cy5zb21lKChwKSA9PiBwLnByb3BlcnR5VHlwZSA9PSBERy5UWVBFLkRBVEFfRlJBTUUgJiYgcC5vcHRpb25zWyd2aWV3ZXInXSAhPSBudWxsKSB8fCBmYWxzZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgb3V0VW5pcXVlUGFyYW1DYXRlZ29yaWVzKCkge1xuICAgIHJldHVybiBbXG4gICAgICAuLi5uZXcgU2V0KHRoaXMuZnVuYyEub3V0cHV0cy5tYXAoKHApID0+IHAuY2F0ZWdvcnkpKSAvLyBnZXQgYWxsIG91dHB1dCBwYXJhbXMnIGNhdGVnb3JpZXNcbiAgICBdOyAvLyBrZWVwIG9ubHkgdW5pcXVlIG9mIHRoZW1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgb3V0cHV0VGFic0xhYmVscygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4udGhpcy5vdXRVbmlxdWVQYXJhbUNhdGVnb3JpZXMsXG4gICAgICAuLi50aGlzLm91dFVuaXF1ZVBhcmFtQ2F0ZWdvcmllcy5maW5kKCh2YWwpID0+IHZhbCA9PT0gJ01pc2MnKSA/IFsnT3V0cHV0J10gOiBbXSwgLy8gaWYgbm8gY2F0ZWdvcmllcyBhcmUgc3RhdGVkLCB0aGUgZGVmYXVsdCBjYXRlZ29yeSBpcyBhZGRlZFxuICAgIF07XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRhYnNMYWJlbHMoKSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuY2F0ZWdvcnlUb1BhcmFtTWFwKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgY2F0ZWdvcnlUb1BhcmFtTWFwKCkge1xuICAgIGNvbnN0IG1hcCA9IHt9IGFzIFJlY29yZDxzdHJpbmcsIERHLlByb3BlcnR5W10+O1xuXG4gICAgaWYgKHRoaXMuaXNJbnB1dFBhbmVsUmVxdWlyZWQpIHtcbiAgICAgIHRoaXMuZnVuYyEuaW5wdXRzLlxuICAgICAgICBmaWx0ZXIoKHApID0+IHAucHJvcGVydHlUeXBlID09IERHLlRZUEUuREFUQV9GUkFNRSAmJiBwLm9wdGlvbnNbJ3ZpZXdlciddICE9IG51bGwpLlxuICAgICAgICBmb3JFYWNoKChwKSA9PiBtYXBbJ0lucHV0J10gPyBtYXBbJ0lucHV0J10ucHVzaChwKTogbWFwWydJbnB1dCddID0gW3BdKTtcbiAgICB9XG5cbiAgICB0aGlzLmZ1bmMhLm91dHB1dHMuZm9yRWFjaCgocCkgPT4ge1xuICAgICAgY29uc3QgY2F0ZWdvcnkgPSBwLmNhdGVnb3J5ID09PSAnTWlzYycgPyAnT3V0cHV0JzogcC5jYXRlZ29yeTtcblxuICAgICAgaWYgKG1hcFtjYXRlZ29yeV0pXG4gICAgICAgIG1hcFtjYXRlZ29yeV0ucHVzaChwKTtcbiAgICAgIGVsc2VcbiAgICAgICAgbWFwW2NhdGVnb3J5XSA9IFtwXTtcbiAgICB9KTtcblxuICAgIHJldHVybiBtYXA7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclJ1blNlY3Rpb24oY2FsbDogREcuRnVuY0NhbGwpOiBIVE1MRWxlbWVudCB7XG4gICAgY29uc3QgcnVuQnV0dG9uID0gdWkuYmlnQnV0dG9uKCdSdW4nLCBhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCB0aGlzLnJ1bigpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgaW5wdXRzID0gdWkuZGl2VihbXSwgJ3VpLWZvcm0nKTtcbiAgICB3dSh0aGlzLmZ1bmNDYWxsIS5pbnB1dFBhcmFtcy52YWx1ZXMoKSBhcyBERy5GdW5jQ2FsbFBhcmFtW10pXG4gICAgICAuZmlsdGVyKCh2YWwpID0+ICEhdmFsKVxuICAgICAgLmZvckVhY2goKHZhbCkgPT4ge1xuICAgICAgICBjb25zdCBwcm9wID0gdmFsLnByb3BlcnR5O1xuICAgICAgICBpZiAocHJvcC5wcm9wZXJ0eVR5cGUudG9TdHJpbmcoKSA9PT0gRklMRV9JTlBVVF9UWVBFKSB7XG4gICAgICAgICAgY29uc3QgdCA9IFVpVXRpbHMuZmlsZUlucHV0KHByb3AuY2FwdGlvbiA/PyBwcm9wLm5hbWUsIG51bGwsIChmaWxlOiBGaWxlKSA9PiB0aGlzLmZ1bmNDYWxsIS5pbnB1dHNbcHJvcC5uYW1lXSA9IGZpbGUpO1xuICAgICAgICAgIGlucHV0cy5hcHBlbmQodC5yb290KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB0ID0gcHJvcC5wcm9wZXJ0eVR5cGUgPT09IERHLlRZUEUuREFUQV9GUkFNRSA/XG4gICAgICAgICAgICB1aS50YWJsZUlucHV0KHByb3AubmFtZSwgbnVsbCwgZ3Jvay5zaGVsbC50YWJsZXMpOlxuICAgICAgICAgICAgdWkuaW5wdXQuZm9yUHJvcGVydHkocHJvcCk7XG5cbiAgICAgICAgICAgIHQuY2FwdGlvbkxhYmVsLmZpcnN0Q2hpbGQhLnJlcGxhY2VXaXRoKHVpLnNwYW4oW3Byb3AuY2FwdGlvbiA/PyBwcm9wLm5hbWVdKSk7XG4gICAgICAgICAgICBpZiAocHJvcC5vcHRpb25zWyd1bml0cyddKSB0LmFkZFBvc3RmaXgocHJvcC5vcHRpb25zWyd1bml0cyddKTtcblxuICAgICAgICAgICAgdGhpcy5mdW5jQ2FsbFJlcGxhY2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgIHQudmFsdWUgPSB0aGlzLmZ1bmNDYWxsIS5pbnB1dHNbdmFsLm5hbWVdID8/IHByb3AuZGVmYXVsdFZhbHVlID8/IG51bGw7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHQub25DaGFuZ2VkKCgpID0+IHRoaXMuZnVuY0NhbGwhLmlucHV0c1t2YWwubmFtZV0gPSB0LnZhbHVlKTtcbiAgICAgICAgICAgIGlucHV0cy5hcHBlbmQodC5yb290KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBjb25zdCBidXR0b25zID0gdWkuZGl2SChbcnVuQnV0dG9uXSwge3N0eWxlOiB7J2p1c3RpZnktY29udGVudCc6ICdmbGV4LWVuZCd9fSk7XG5cbiAgICByZXR1cm4gdWkuZGl2VihbaW5wdXRzLCBidXR0b25zXSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZGVmYXVsdEV4cG9ydCA9IGFzeW5jIChmb3JtYXQ6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IGxhc3RDYWxsID0gdGhpcy5sYXN0Q2FsbDtcbiAgICBpZiAoIWxhc3RDYWxsKSB0aHJvdyBuZXcgRXJyb3IoYEZ1bmN0aW9uIHdhcyBub3QgY2FsbGVkYCk7XG5cbiAgICBpZiAoIXRoaXMuZXhwb3J0Q29uZmlnIS5zdXBwb3J0ZWRGb3JtYXRzLmluY2x1ZGVzKGZvcm1hdCkpIHRocm93IG5ldyBFcnJvcihgRm9ybWF0IFwiJHtmb3JtYXR9XCIgaXMgbm90IHN1cHBvcnRlZC5gKTtcblxuICAgIGlmICghdGhpcy5mdW5jKSB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBjb3JyZXNwb2RpbmcgZnVuY3Rpb24gaXMgbm90IHNwZWNpZmllZCcpO1xuXG4gICAgY29uc3QgQkxPQl9UWVBFID0gJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0O2NoYXJzZXQ9VVRGLTgnO1xuICAgIGNvbnN0IGV4cG9ydFdvcmtib29rID0gbmV3IEV4Y2VsSlMuV29ya2Jvb2soKTtcblxuICAgIGNvbnN0IGlzU2NhbGFyVHlwZSA9ICh0eXBlOiBERy5UWVBFKSA9PiAoREcuVFlQRVNfU0NBTEFSLmhhcyh0eXBlKSk7XG5cbiAgICBjb25zdCBpc0RhdGFGcmFtZSA9ICh0eXBlOiBERy5UWVBFKSA9PiAodHlwZSA9PT0gREcuVFlQRS5EQVRBX0ZSQU1FKTtcblxuICAgIGNvbnN0IGRmSW5wdXRzID0gdGhpcy5mdW5jLmlucHV0cy5maWx0ZXIoKGlucHV0KSA9PiBpc0RhdGFGcmFtZShpbnB1dC5wcm9wZXJ0eVR5cGUpKTtcbiAgICBjb25zdCBzY2FsYXJJbnB1dHMgPSB0aGlzLmZ1bmMuaW5wdXRzLmZpbHRlcigoaW5wdXQpID0+IGlzU2NhbGFyVHlwZShpbnB1dC5wcm9wZXJ0eVR5cGUpKTtcbiAgICBjb25zdCBkZk91dHB1dHMgPSB0aGlzLmZ1bmMub3V0cHV0cy5maWx0ZXIoKG91dHB1dCkgPT4gaXNEYXRhRnJhbWUob3V0cHV0LnByb3BlcnR5VHlwZSkpO1xuICAgIGNvbnN0IHNjYWxhck91dHB1dHMgPSB0aGlzLmZ1bmMub3V0cHV0cy5maWx0ZXIoKG91dHB1dCkgPT4gaXNTY2FsYXJUeXBlKG91dHB1dC5wcm9wZXJ0eVR5cGUpKTtcblxuICAgIGNvbnN0IGlucHV0UGFyYW1zID0gWy4uLmxhc3RDYWxsLmlucHV0UGFyYW1zLnZhbHVlcygpXSBhcyBERy5GdW5jQ2FsbFBhcmFtW107XG4gICAgY29uc3Qgb3V0cHV0UGFyYW1zID0gWy4uLmxhc3RDYWxsLm91dHB1dFBhcmFtcy52YWx1ZXMoKV0gYXMgREcuRnVuY0NhbGxQYXJhbVtdO1xuXG4gICAgZGZJbnB1dHMuZm9yRWFjaCgoZGZJbnB1dCkgPT4ge1xuICAgICAgY29uc3QgdmlzaWJsZVRpdGxlID0gZGZJbnB1dC5vcHRpb25zLmNhcHRpb24gfHwgZGZJbnB1dC5uYW1lO1xuICAgICAgY29uc3QgY3VycmVudERmU2hlZXQgPSBleHBvcnRXb3JrYm9vay5hZGRXb3Jrc2hlZXQoZ2V0U2hlZXROYW1lKHZpc2libGVUaXRsZSwgRElSRUNUSU9OLklOUFVUKSk7XG5cbiAgICAgIGNvbnN0IGN1cnJlbnREZiA9IChsYXN0Q2FsbC5pbnB1dHNbZGZJbnB1dC5uYW1lXSBhcyBERy5EYXRhRnJhbWUpO1xuICAgICAgZGZUb1NoZWV0KGN1cnJlbnREZlNoZWV0LCBjdXJyZW50RGYpO1xuICAgIH0pO1xuXG4gICAgaWYgKHNjYWxhcklucHV0cy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGlucHV0U2NhbGFyc1NoZWV0ID0gZXhwb3J0V29ya2Jvb2suYWRkV29ya3NoZWV0KCdJbnB1dCBzY2FsYXJzJyk7XG4gICAgICBzY2FsYXJzVG9TaGVldChpbnB1dFNjYWxhcnNTaGVldCwgc2NhbGFySW5wdXRzLm1hcCgoc2NhbGFySW5wdXQpID0+ICh7XG4gICAgICAgIGNhcHRpb246IHNjYWxhcklucHV0Lm9wdGlvbnNbJ2NhcHRpb24nXSB8fCBzY2FsYXJJbnB1dC5uYW1lLFxuICAgICAgICB2YWx1ZTogbGFzdENhbGwuaW5wdXRzW3NjYWxhcklucHV0Lm5hbWVdLFxuICAgICAgICB1bml0czogc2NhbGFySW5wdXQub3B0aW9uc1sndW5pdHMnXSB8fCAnJyxcbiAgICAgIH0pKSk7XG4gICAgfVxuXG4gICAgZGZPdXRwdXRzLmZvckVhY2goKGRmT3V0cHV0KSA9PiB7XG4gICAgICBjb25zdCB2aXNpYmxlVGl0bGUgPSBkZk91dHB1dC5vcHRpb25zLmNhcHRpb24gfHwgZGZPdXRwdXQubmFtZTtcbiAgICAgIGNvbnN0IGN1cnJlbnREZlNoZWV0ID0gZXhwb3J0V29ya2Jvb2suYWRkV29ya3NoZWV0KGdldFNoZWV0TmFtZSh2aXNpYmxlVGl0bGUsIERJUkVDVElPTi5PVVRQVVQpKTtcblxuICAgICAgY29uc3QgY3VycmVudERmID0gKGxhc3RDYWxsLm91dHB1dHNbZGZPdXRwdXQubmFtZV0gYXMgREcuRGF0YUZyYW1lKTtcbiAgICAgIGRmVG9TaGVldChjdXJyZW50RGZTaGVldCwgY3VycmVudERmKTtcbiAgICB9KTtcblxuXG4gICAgaWYgKHNjYWxhck91dHB1dHMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBvdXRwdXRTY2FsYXJzU2hlZXQgPSBleHBvcnRXb3JrYm9vay5hZGRXb3Jrc2hlZXQoJ091dHB1dCBzY2FsYXJzJyk7XG4gICAgICBzY2FsYXJzVG9TaGVldChvdXRwdXRTY2FsYXJzU2hlZXQsIHNjYWxhck91dHB1dHMubWFwKChzY2FsYXJPdXRwdXQpID0+ICh7XG4gICAgICAgIGNhcHRpb246IHNjYWxhck91dHB1dC5vcHRpb25zWydjYXB0aW9uJ10gfHwgc2NhbGFyT3V0cHV0Lm5hbWUsXG4gICAgICAgIHZhbHVlOiBsYXN0Q2FsbC5vdXRwdXRzW3NjYWxhck91dHB1dC5uYW1lXSxcbiAgICAgICAgdW5pdHM6IHNjYWxhck91dHB1dC5vcHRpb25zWyd1bml0cyddIHx8ICcnLFxuICAgICAgfSkpKTtcbiAgICB9XG5cbiAgICBjb25zdCB0YWJDb250cm9sID0gdGhpcy50YWJzRWxlbTtcbiAgICBmb3IgKGNvbnN0IHRhYkxhYmVsIG9mIHRoaXMudGFic0xhYmVscykge1xuICAgICAgdGFiQ29udHJvbC5jdXJyZW50UGFuZSA9IHRhYkNvbnRyb2wuZ2V0UGFuZSh0YWJMYWJlbCk7XG4gICAgICBhd2FpdCBuZXcgUHJvbWlzZSgocikgPT4gc2V0VGltZW91dChyLCAxMDApKTtcbiAgICAgIGlmICh0YWJMYWJlbCA9PT0gJ0lucHV0Jykge1xuICAgICAgICBmb3IgKGNvbnN0IGlucHV0UGFyYW0gb2YgaW5wdXRQYXJhbXMuZmlsdGVyKChpbnB1dFBhcmFtKSA9PiBpbnB1dFBhcmFtLnByb3BlcnR5LnByb3BlcnR5VHlwZSA9PT0gREcuVFlQRS5EQVRBX0ZSQU1FKSkge1xuICAgICAgICAgIGNvbnN0IG5vbkdyaWRWaWV3ZXJzID0gdGhpcy5kZlRvVmlld2VyTWFwcGluZ1tpbnB1dFBhcmFtLm5hbWVdLmZpbHRlcigodmlld2VyKSA9PiB2aWV3ZXIudHlwZSAhPT0gREcuVklFV0VSLkdSSUQpO1xuXG4gICAgICAgICAgY29uc3QgZGZJbnB1dCA9IGRmSW5wdXRzLmZpbmQoKGlucHV0KSA9PiBpbnB1dC5uYW1lID09PSBpbnB1dFBhcmFtLm5hbWUpO1xuICAgICAgICAgIGNvbnN0IHZpc2libGVUaXRsZSA9IGRmSW5wdXQhLm9wdGlvbnMuY2FwdGlvbiB8fCBpbnB1dFBhcmFtLm5hbWU7XG4gICAgICAgICAgY29uc3QgY3VycmVudERmID0gKGxhc3RDYWxsLmlucHV0c1tkZklucHV0IS5uYW1lXSBhcyBERy5EYXRhRnJhbWUpO1xuXG4gICAgICAgICAgZm9yIChjb25zdCBbaW5kZXgsIHZpZXdlcl0gb2Ygbm9uR3JpZFZpZXdlcnMuZW50cmllcygpKSB7XG4gICAgICAgICAgICBhd2FpdCBwbG90VG9TaGVldChcbiAgICAgICAgICAgICAgZXhwb3J0V29ya2Jvb2ssXG4gICAgICAgICAgICAgIGV4cG9ydFdvcmtib29rLmdldFdvcmtzaGVldChnZXRTaGVldE5hbWUodmlzaWJsZVRpdGxlLCBESVJFQ1RJT04uSU5QVVQpKSxcbiAgICAgICAgICAgICAgdmlld2VyLnJvb3QsXG4gICAgICAgICAgICAgIGN1cnJlbnREZi5jb2x1bW5zLmxlbmd0aCArIDIsXG4gICAgICAgICAgICAgIChpbmRleCA+IDApID8gTWF0aC5jZWlsKG5vbkdyaWRWaWV3ZXJzW2luZGV4LTFdLnJvb3QuY2xpZW50SGVpZ2h0IC8gMjApICsgMSA6IDBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZm9yIChjb25zdCBvdXRwdXRQYXJhbSBvZiBvdXRwdXRQYXJhbXMuZmlsdGVyKChvdXRwdXRQYXJhbSkgPT4gb3V0cHV0UGFyYW0ucHJvcGVydHkucHJvcGVydHlUeXBlID09PSBERy5UWVBFLkRBVEFfRlJBTUUgJiYgb3V0cHV0UGFyYW0ucHJvcGVydHkuY2F0ZWdvcnkgPT09IHRhYkxhYmVsKSkge1xuICAgICAgICAgIGNvbnN0IG5vbkdyaWRWaWV3ZXJzID0gdGhpcy5kZlRvVmlld2VyTWFwcGluZ1tvdXRwdXRQYXJhbS5uYW1lXS5maWx0ZXIoKHZpZXdlcikgPT4gdmlld2VyLnR5cGUgIT09IERHLlZJRVdFUi5HUklEKTtcblxuICAgICAgICAgIGNvbnN0IGRmT3V0cHV0ID0gZGZPdXRwdXRzLmZpbmQoKGlucHV0KSA9PiBpbnB1dC5uYW1lID09PSBvdXRwdXRQYXJhbS5uYW1lKSE7XG4gICAgICAgICAgY29uc3QgdmlzaWJsZVRpdGxlID0gZGZPdXRwdXQub3B0aW9ucy5jYXB0aW9uIHx8IG91dHB1dFBhcmFtLm5hbWU7XG4gICAgICAgICAgY29uc3QgY3VycmVudERmID0gKGxhc3RDYWxsLm91dHB1dHNbZGZPdXRwdXQubmFtZV0gYXMgREcuRGF0YUZyYW1lKTtcblxuICAgICAgICAgIGZvciAoY29uc3QgW2luZGV4LCB2aWV3ZXJdIG9mIG5vbkdyaWRWaWV3ZXJzLmVudHJpZXMoKSkge1xuICAgICAgICAgICAgaWYgKHZpZXdlci50eXBlID09PSBERy5WSUVXRVIuU1RBVElTVElDUykge1xuICAgICAgICAgICAgICBjb25zdCBsZW5ndGggPSBjdXJyZW50RGYuY29sdW1ucy5sZW5ndGg7XG4gICAgICAgICAgICAgIGNvbnN0IHN0YXRzID0gREcuRGF0YUZyYW1lLmZyb21Db2x1bW5zKFtcbiAgICAgICAgICAgICAgICBERy5Db2x1bW4uc3RyaW5nKCdOYW1lJywgbGVuZ3RoKS5pbml0KChpOiBudW1iZXIpID0+IGN1cnJlbnREZi5jb2x1bW5zLmJ5SW5kZXgoaSkubmFtZSksXG4gICAgICAgICAgICAgICAgREcuQ29sdW1uLmludCgnVmFsdWVzJywgbGVuZ3RoKS5pbml0KChpOiBudW1iZXIpID0+IGN1cnJlbnREZi5jb2x1bW5zLmJ5SW5kZXgoaSkuc3RhdHMudmFsdWVDb3VudCksXG4gICAgICAgICAgICAgICAgREcuQ29sdW1uLmludCgnTnVsbHMnLCBsZW5ndGgpLmluaXQoKGk6IG51bWJlcikgPT4gY3VycmVudERmLmNvbHVtbnMuYnlJbmRleChpKS5zdGF0cy5taXNzaW5nVmFsdWVDb3VudCksXG4gICAgICAgICAgICAgICAgREcuQ29sdW1uLmZsb2F0KCdNaW4nLCBsZW5ndGgpLmluaXQoKGk6IG51bWJlcikgPT4gY3VycmVudERmLmNvbHVtbnMuYnlJbmRleChpKS5zdGF0cy5taW4pLFxuICAgICAgICAgICAgICAgIERHLkNvbHVtbi5mbG9hdCgnTWF4JywgbGVuZ3RoKS5pbml0KChpOiBudW1iZXIpID0+IGN1cnJlbnREZi5jb2x1bW5zLmJ5SW5kZXgoaSkuc3RhdHMubWF4KSxcbiAgICAgICAgICAgICAgICBERy5Db2x1bW4uZmxvYXQoJ0F2ZycsIGxlbmd0aCkuaW5pdCgoaTogbnVtYmVyKSA9PiBjdXJyZW50RGYuY29sdW1ucy5ieUluZGV4KGkpLnN0YXRzLmF2ZyksXG4gICAgICAgICAgICAgICAgREcuQ29sdW1uLmZsb2F0KCdTdGRldicsIGxlbmd0aCkuaW5pdCgoaTogbnVtYmVyKSA9PiBjdXJyZW50RGYuY29sdW1ucy5ieUluZGV4KGkpLnN0YXRzLnN0ZGV2KSxcbiAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICAgIGRmVG9TaGVldChcbiAgICAgICAgICAgICAgICBleHBvcnRXb3JrYm9vay5nZXRXb3Jrc2hlZXQoZ2V0U2hlZXROYW1lKHZpc2libGVUaXRsZSwgRElSRUNUSU9OLk9VVFBVVCkpLFxuICAgICAgICAgICAgICAgIHN0YXRzLFxuICAgICAgICAgICAgICAgIGN1cnJlbnREZi5jb2x1bW5zLmxlbmd0aCArIDIsXG4gICAgICAgICAgICAgICAgKGluZGV4ID4gMCkgPyBNYXRoLmNlaWwobm9uR3JpZFZpZXdlcnNbaW5kZXgtMV0ucm9vdC5jbGllbnRIZWlnaHQgLyAyMCkgKyAxIDogMFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgYXdhaXQgcGxvdFRvU2hlZXQoXG4gICAgICAgICAgICAgICAgZXhwb3J0V29ya2Jvb2ssXG4gICAgICAgICAgICAgICAgZXhwb3J0V29ya2Jvb2suZ2V0V29ya3NoZWV0KGdldFNoZWV0TmFtZSh2aXNpYmxlVGl0bGUsIERJUkVDVElPTi5PVVRQVVQpKSxcbiAgICAgICAgICAgICAgICB2aWV3ZXIucm9vdCxcbiAgICAgICAgICAgICAgICBjdXJyZW50RGYuY29sdW1ucy5sZW5ndGggKyAyLFxuICAgICAgICAgICAgICAgIChpbmRleCA+IDApID8gTWF0aC5jZWlsKG5vbkdyaWRWaWV3ZXJzW2luZGV4LTFdLnJvb3QuY2xpZW50SGVpZ2h0IC8gMjApICsgMSA6IDBcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBidWZmZXIgPSBhd2FpdCBleHBvcnRXb3JrYm9vay54bHN4LndyaXRlQnVmZmVyKCk7XG5cbiAgICByZXR1cm4gbmV3IEJsb2IoW2J1ZmZlcl0sIHt0eXBlOiBCTE9CX1RZUEV9KTtcbiAgfTtcbn1cblxuY29uc3QgZ2V0U2hlZXROYW1lID0gKG5hbWU6IHN0cmluZywgZGlyZWN0aW9uOiBESVJFQ1RJT04pID0+IHtcbiAgY29uc3QgaWRlYWxOYW1lID0gYCR7ZGlyZWN0aW9ufSAtICR7bmFtZX1gO1xuICByZXR1cm4gKGlkZWFsTmFtZS5sZW5ndGggPiAzMSkgPyBuYW1lLnN1YnN0cmluZygwLCAzMikgOiBpZGVhbE5hbWU7XG59O1xuXG5lbnVtIERJUkVDVElPTiB7XG4gIElOUFVUID0gJ0lucHV0JyxcbiAgT1VUUFVUID0gJ091dHB1dCdcbn1cblxuY29uc3Qgc2NhbGFyc1RvU2hlZXQgPSAoc2hlZXQ6IEV4Y2VsSlMuV29ya3NoZWV0LCBzY2FsYXJzOiB7IGNhcHRpb246IHN0cmluZywgdmFsdWU6IHN0cmluZywgdW5pdHM6IHN0cmluZyB9W10pID0+IHtcbiAgc2hlZXQuYWRkUm93KFsnUGFyYW1ldGVyJywgJ1ZhbHVlJywgJ1VuaXRzJ10pLmZvbnQgPSB7Ym9sZDogdHJ1ZX07XG4gIHNjYWxhcnMuZm9yRWFjaCgoc2NhbGFyKSA9PiB7XG4gICAgc2hlZXQuYWRkUm93KFtzY2FsYXIuY2FwdGlvbiwgc2NhbGFyLnZhbHVlLCBzY2FsYXIudW5pdHNdKTtcbiAgfSk7XG5cbiAgc2hlZXQuZ2V0Q29sdW1uKDEpLndpZHRoID0gTWF0aC5tYXgoXG4gICAgLi4uc2NhbGFycy5tYXAoKHNjYWxhcikgPT4gc2NhbGFyLmNhcHRpb24udG9TdHJpbmcoKS5sZW5ndGgpLCAnUGFyYW1ldGVyJy5sZW5ndGhcbiAgKSAqIDEuMjtcbiAgc2hlZXQuZ2V0Q29sdW1uKDIpLndpZHRoID0gTWF0aC5tYXgoLi4uc2NhbGFycy5tYXAoKHNjYWxhcikgPT4gc2NhbGFyLnZhbHVlLnRvU3RyaW5nKCkubGVuZ3RoKSwgJ1ZhbHVlJy5sZW5ndGgpICogMS4yO1xuICBzaGVldC5nZXRDb2x1bW4oMykud2lkdGggPSBNYXRoLm1heCguLi5zY2FsYXJzLm1hcCgoc2NhbGFyKSA9PiBzY2FsYXIudW5pdHMudG9TdHJpbmcoKS5sZW5ndGgpLCAnVW5pdHMnLmxlbmd0aCkgKiAxLjI7XG59O1xuXG5jb25zdCBkZlRvU2hlZXQgPSAoc2hlZXQ6IEV4Y2VsSlMuV29ya3NoZWV0LCBkZjogREcuRGF0YUZyYW1lLCBjb2x1bW46IG51bWJlciA9IDAsIHJvdzogbnVtYmVyID0gMCkgPT4ge1xuICBmb3IgKGxldCBpPSAwOyBpIDwgZGYuY29sdW1ucy5uYW1lcygpLmxlbmd0aDsgaSsrKSB7XG4gICAgc2hlZXQuZ2V0Q2VsbCgxICsgcm93LCAxICsgaSArIGNvbHVtbikudmFsdWUgPSBkZi5jb2x1bW5zLmJ5SW5kZXgoaSkubmFtZTtcbiAgICBzaGVldC5nZXRDb2x1bW4oMSArIGkgKyBjb2x1bW4pLndpZHRoID0gTWF0aC5tYXgoXG4gICAgICAuLi5kZi5jb2x1bW5zLmJ5SW5kZXgoaSkuY2F0ZWdvcmllcy5tYXAoKGNhdGVnb3J5KSA9PiBjYXRlZ29yeS50b1N0cmluZygpLmxlbmd0aCksXG4gICAgICBkZi5jb2x1bW5zLmJ5SW5kZXgoaSkubmFtZS5sZW5ndGhcbiAgICApICogMS4yO1xuICB9XG4gIGZvciAobGV0IGRmQ29sdW1uID0gMDsgZGZDb2x1bW4gPCBkZi5jb2x1bW5zLmxlbmd0aDsgZGZDb2x1bW4rKykge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGYucm93Q291bnQ7IGkrKylcbiAgICAgIHNoZWV0LmdldENlbGwoaSArIDIgKyByb3csIDEgKyBjb2x1bW4rZGZDb2x1bW4pLnZhbHVlID0gZGYuY29sdW1ucy5ieUluZGV4KGRmQ29sdW1uKS5nZXQoaSk7XG4gIH1cbn07XG5cbmNvbnN0IHBsb3RUb1NoZWV0ID0gYXN5bmMgKGV4cG9ydFdiOiBFeGNlbEpTLldvcmtib29rLCBzaGVldDogRXhjZWxKUy5Xb3Jrc2hlZXQsIHBsb3Q6IEhUTUxFbGVtZW50LCBjb2x1bW5Gb3JJbWFnZTogbnVtYmVyLCByb3dGb3JJbWFnZTogbnVtYmVyID0gMCkgPT4ge1xuICBjb25zdCBjYW52YXMgPSBhd2FpdCBodG1sMmNhbnZhcyhwbG90IGFzIEhUTUxFbGVtZW50LCB7bG9nZ2luZzogZmFsc2V9KTtcbiAgY29uc3QgZGF0YVVybCA9IGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL3BuZycpO1xuXG4gIGNvbnN0IGltYWdlSWQgPSBleHBvcnRXYi5hZGRJbWFnZSh7XG4gICAgYmFzZTY0OiBkYXRhVXJsLFxuICAgIGV4dGVuc2lvbjogJ3BuZycsXG4gIH0pO1xuICBzaGVldC5hZGRJbWFnZShpbWFnZUlkLCB7XG4gICAgdGw6IHtjb2w6IGNvbHVtbkZvckltYWdlLCByb3c6IHJvd0ZvckltYWdlfSxcbiAgICBleHQ6IHt3aWR0aDogY2FudmFzLndpZHRoLCBoZWlnaHQ6IGNhbnZhcy5oZWlnaHR9LFxuICB9KTtcbn07XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { Subject } from 'rxjs';
2
- import '../../css/shared-components.css';
3
2
  import Validation from '../validation';
3
+ import '../../css/file-input.css';
4
4
  export declare const EXCEL_BLOB_TYPE = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
5
5
  export declare class FileInput {
6
6
  initialText: string;
@@ -1 +1 @@
1
- {"version":3,"file":"file-input.d.ts","sourceRoot":"","sources":["file-input.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkB,OAAO,EAAC,MAAM,MAAM,CAAC;AAC9C,OAAO,iCAAiC,CAAC;AACzC,OAAO,UAAU,MAAM,eAAe,CAAC;AAEvC,eAAO,MAAM,eAAe,sEAAsE,CAAC;AAEnG,qBAAa,SAAS;IAiBX,WAAW;IACX,YAAY,EAAE,IAAI,GAAG,IAAI;IACzB,cAAc,EAAE,QAAQ,GAAG,IAAI;IAC/B,QAAQ;IAlBV,aAAa,uBAA8B;IAE3C,cAAc,uBAA8B;IAE5C,IAAI,iBAAY;IAEhB,UAAU,mBAA0B;IAE3C,OAAO,CAAC,YAAY,CAAwD;IAC5E,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,IAAI,CAA6D;IAEzE,OAAO,CAAC,OAAO,CAAsC;gBAG5C,WAAW,SAAqB,EAChC,YAAY,GAAE,IAAI,GAAG,IAAW,EAChC,cAAc,GAAE,QAAQ,GAAG,IAAW,EACtC,QAAQ,SAAkB;IA0BnC,OAAO,CAAC,IAAI;IAoFZ,OAAO,CAAC,KAAK;IAUb,OAAO,CAAC,KAAK;CAGd"}
1
+ {"version":3,"file":"file-input.d.ts","sourceRoot":"","sources":["file-input.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkB,OAAO,EAAC,MAAM,MAAM,CAAC;AAC9C,OAAO,UAAU,MAAM,eAAe,CAAC;AACvC,OAAO,0BAA0B,CAAC;AAElC,eAAO,MAAM,eAAe,sEAAsE,CAAC;AAEnG,qBAAa,SAAS;IAiBX,WAAW;IACX,YAAY,EAAE,IAAI,GAAG,IAAI;IACzB,cAAc,EAAE,QAAQ,GAAG,IAAI;IAC/B,QAAQ;IAlBV,aAAa,uBAA8B;IAE3C,cAAc,uBAA8B;IAE5C,IAAI,iBAAY;IAEhB,UAAU,mBAA0B;IAE3C,OAAO,CAAC,YAAY,CAAwD;IAC5E,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,IAAI,CAA6D;IAEzE,OAAO,CAAC,OAAO,CAAsC;gBAG5C,WAAW,SAAqB,EAChC,YAAY,GAAE,IAAI,GAAG,IAAW,EAChC,cAAc,GAAE,QAAQ,GAAG,IAAW,EACtC,QAAQ,SAAkB;IA0BnC,OAAO,CAAC,IAAI;IAoFZ,OAAO,CAAC,KAAK;IAUb,OAAO,CAAC,KAAK;CAGd"}
@@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import * as ui from 'datagrok-api/ui';
11
11
  import { BehaviorSubject, Subject } from 'rxjs';
12
- import '../../css/shared-components.css';
13
12
  import Validation from '../validation';
13
+ import '../../css/file-input.css';
14
14
  export const EXCEL_BLOB_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
15
15
  export class FileInput {
16
16
  constructor(initialText = 'Drag-n-drop here', initialValue = null, onValueChanged = null, fileType = EXCEL_BLOB_TYPE) {
@@ -130,4 +130,4 @@ export class FileInput {
130
130
  ui.empty(this.root);
131
131
  }
132
132
  }
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImZpbGUtaW5wdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBRUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV0QyxPQUFPLEVBQUMsZUFBZSxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLGlDQUFpQyxDQUFDO0FBQ3pDLE9BQU8sVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV2QyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsbUVBQW1FLENBQUM7QUFFbkcsTUFBTSxPQUFPLFNBQVM7SUFnQnBCLFlBQ1MsY0FBYyxrQkFBa0IsRUFDaEMsZUFBNEIsSUFBSSxFQUNoQyxpQkFBa0MsSUFBSSxFQUN0QyxXQUFXLGVBQWU7UUFIMUIsZ0JBQVcsR0FBWCxXQUFXLENBQXFCO1FBQ2hDLGlCQUFZLEdBQVosWUFBWSxDQUFvQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBd0I7UUFDdEMsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFuQm5DLGlCQUFpQjtRQUNWLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQWUsQ0FBQztRQUNsRCxzQ0FBc0M7UUFDL0IsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBZSxDQUFDO1FBQ25ELHlCQUF5QjtRQUNsQixTQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLG9CQUFvQjtRQUNiLGVBQVUsR0FBRyxJQUFJLFVBQVUsRUFBUSxDQUFDO1FBRW5DLGlCQUFZLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRSxnQkFBVyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUMsU0FBSSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLEdBQUcsRUFBRSxDQUFD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SUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsa0JBQWtCLENBQUM7UUFDN0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFTyxLQUFLO1FBQ1gsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCAnLi4vLi4vY3NzL3NoYXJlZC1jb21wb25lbnRzLmNzcyc7XG5pbXBvcnQgVmFsaWRhdGlvbiBmcm9tICcuLi92YWxpZGF0aW9uJztcblxuZXhwb3J0IGNvbnN0IEVYQ0VMX0JMT0JfVFlQRSA9ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCc7XG5cbmV4cG9ydCBjbGFzcyBGaWxlSW5wdXQge1xuICAvLyBldmVudHMgdG8gZW1pdFxuICBwdWJsaWMgdXBsb2FkZWRGaWxlJCA9IG5ldyBTdWJqZWN0PEZpbGUgfCBudWxsPigpO1xuICAvLyBzYW1lIGV2ZW50IGFzIGFib3ZlIGJ1dCBpbiBERy1zdHlsZVxuICBwdWJsaWMgb25GaWxlVXBsb2FkZWQgPSBuZXcgU3ViamVjdDxGaWxlIHwgbnVsbD4oKTtcbiAgLy8gSFRNTCByb290IG9mIGNvbXBvbmVudFxuICBwdWJsaWMgcm9vdCA9IHVpLmRpdigpO1xuICAvLyBWYWxpZGF0aW9uIG9iamVjdFxuICBwdWJsaWMgdmFsaWRhdGlvbiA9IG5ldyBWYWxpZGF0aW9uPEZpbGU+KCk7XG5cbiAgcHJpdmF0ZSB2aXNpYmxlSW5wdXQgPSB1aS5zdHJpbmdJbnB1dCgnSW5wdXQgZmlsZScsIHRoaXMuaW5pdGlhbFRleHQsIG51bGwpO1xuICBwcml2YXRlIGhpZGRlbklucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgcHJpdmF0ZSBpY29uID0gdWkuaWNvbkZBKCdjbG91ZC11cGxvYWQnLCAoKSA9PiB0aGlzLmhpZGRlbklucHV0LmNsaWNrKCkpO1xuXG4gIHByaXZhdGUgaXNWYWxpZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGluaXRpYWxUZXh0ID0gJ0RyYWctbi1kcm9wIGhlcmUnLFxuICAgIHB1YmxpYyBpbml0aWFsVmFsdWU6IEZpbGUgfCBudWxsID0gbnVsbCxcbiAgICBwdWJsaWMgb25WYWx1ZUNoYW5nZWQ6IEZ1bmN0aW9uIHwgbnVsbCA9IG51bGwsXG4gICAgcHVibGljIGZpbGVUeXBlID0gRVhDRUxfQkxPQl9UWVBFXG4gICkge1xuICAgIHRoaXMuZHJhdygpO1xuXG4gICAgdGhpcy5pc1ZhbGlkLnN1YnNjcmliZSgoaXNWYWxpZCkgPT4ge1xuICAgICAgaWYgKGlzVmFsaWQpIHtcbiAgICAgICAgdGhpcy52aXNpYmxlSW5wdXQuaW5wdXQuY2xhc3NMaXN0LnJlbW92ZSgnZXJyb3InKTtcbiAgICAgICAgdGhpcy52aXNpYmxlSW5wdXQuaW5wdXQuY2xhc3NMaXN0LmFkZCgnc3VjY2VzcycpO1xuICAgICAgICBjb25zdCBuZXdJY29uID0gdWkuaWNvbkZBKCd0aW1lcycsICgpID0+IHRoaXMucmVzZXQoKSk7XG4gICAgICAgIHRoaXMuaWNvbi5yZXBsYWNlV2l0aChuZXdJY29uKTtcbiAgICAgICAgdGhpcy5pY29uID0gbmV3SWNvbjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudmlzaWJsZUlucHV0LmlucHV0LmNsYXNzTGlzdC5yZW1vdmUoJ3N1Y2Nlc3MnKTtcbiAgICAgICAgdGhpcy52aXNpYmxlSW5wdXQuaW5wdXQuY2xhc3NMaXN0LmFkZCgnZXJyb3InKTtcbiAgICAgICAgY29uc3QgbmV3SWNvbiA9IHVpLmljb25GQSgncmVkbycsICgpID0+IHRoaXMuaGlkZGVuSW5wdXQuY2xpY2soKSk7XG4gICAgICAgIHRoaXMuaWNvbi5yZXBsYWNlV2l0aChuZXdJY29uKTtcbiAgICAgICAgdGhpcy5pY29uID0gbmV3SWNvbjtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMudXBsb2FkZWRGaWxlJC5zdWJzY3JpYmUoKGZpbGUpID0+IHRoaXMub25GaWxlVXBsb2FkZWQubmV4dChmaWxlKSk7XG5cbiAgICBpZiAob25WYWx1ZUNoYW5nZWQpXG4gICAgICB0aGlzLnVwbG9hZGVkRmlsZSQuc3Vic2NyaWJlKChuZXdWYWx1ZTogYW55KSA9PiBvblZhbHVlQ2hhbmdlZChuZXdWYWx1ZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBkcmF3KCkge1xuICAgIHRoaXMuY2xlYXIoKTtcblxuICAgIGNvbnN0IGNyZWF0ZUZpbGVBcmVhID0gKCkgPT4ge1xuICAgICAgKHRoaXMudmlzaWJsZUlucHV0LmlucHV0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnJlYWRPbmx5ID0gdHJ1ZTtcbiAgICAgIHRoaXMudmlzaWJsZUlucHV0LmlucHV0LmNsYXNzTGlzdC5hZGQoJ2RlZmF1bHQnKTtcblxuICAgICAgY29uc3QgaGFuZGxlRmlsZXMgPSBhc3luYyAoZmlsZXM6IEZpbGVMaXN0IHwgbnVsbCkgPT4ge1xuICAgICAgICBpZiAoIWZpbGVzIHx8ICFmaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZSQubmV4dChudWxsKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmlsZXMubGVuZ3RoID4gMSkge1xuICAgICAgICAgIHRoaXMuaXNWYWxpZC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BsZWFzZSBzcGVjaWZ5IHNpbmdsZSBpbnB1dCBmaWxlJyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZpc2libGVJbnB1dC52YWx1ZSA9IGZpbGVzWzBdLm5hbWU7XG4gICAgICAgIGlmIChmaWxlc1swXS50eXBlICE9PSB0aGlzLmZpbGVUeXBlKSB7XG4gICAgICAgICAgdGhpcy5pc1ZhbGlkLm5leHQoZmFsc2UpO1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignRmlsZSB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaXNWYWxpZC5uZXh0KGF3YWl0IHRoaXMudmFsaWRhdGlvbi52YWxpZGF0ZShmaWxlc1swXSkpO1xuXG4gICAgICAgIGlmICh0aGlzLmlzVmFsaWQudmFsdWUpXG4gICAgICAgICAgdGhpcy51cGxvYWRlZEZpbGUkLm5leHQoZmlsZXNbMF0pO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgdGhpcy51cGxvYWRlZEZpbGUkLm5leHQobnVsbCk7XG4gICAgICB9O1xuXG4gICAgICB0aGlzLnZpc2libGVJbnB1dC5yb290LmNsYXNzTGlzdC5hZGQoJ2N2LWRyb3AtYXJlYScpO1xuICAgICAgdGhpcy52aXNpYmxlSW5wdXQucm9vdC5zdHlsZS53aWR0aCA9ICcxMDAlJztcblxuICAgICAgLy8gaGlkZGVuIGlucHV0IHRvIGhhbmRsZSBmaWxlIGRpYWxvZ1xuXG4gICAgICB0aGlzLmhpZGRlbklucHV0LnR5cGUgPSAnZmlsZSc7XG4gICAgICB0aGlzLmhpZGRlbklucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGFzeW5jICgpID0+IGF3YWl0IGhhbmRsZUZpbGVzKHRoaXMuaGlkZGVuSW5wdXQuZmlsZXMpLCBmYWxzZSk7XG5cbiAgICAgIC8vIFByZXZlbnQgZGVmYXVsdCBkcmFnIGJlaGF2aW9yc1xuICAgICAgWydkcmFnZW50ZXInLCAnZHJhZ292ZXInLCAnZHJhZ2xlYXZlJywgJ2Ryb3AnXS5mb3JFYWNoKChldmVudE5hbWUpID0+IHtcbiAgICAgICAgdGhpcy52aXNpYmxlSW5wdXQuaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIChlKSA9PiB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH0sIGZhbHNlKTtcbiAgICAgIH0pO1xuXG4gICAgICBbJ2RyYWdlbnRlcicsICdkcmFnb3ZlciddLmZvckVhY2goKGV2ZW50TmFtZSkgPT4ge1xuICAgICAgICB0aGlzLnZpc2libGVJbnB1dC5pbnB1dC5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgKCkgPT4ge1xuICAgICAgICAgIHRoaXMudmlzaWJsZUlucHV0LmlucHV0LmNsYXNzTGlzdC5hZGQoJ2RyYWctbi1kcm9wcGluZycpO1xuICAgICAgICB9LCBmYWxzZSk7XG4gICAgICB9KTtcblxuICAgICAgWydkcmFnbGVhdmUnLCAnZHJvcCddLmZvckVhY2goKGV2ZW50TmFtZSkgPT4ge1xuICAgICAgICB0aGlzLnZpc2libGVJbnB1dC5pbnB1dC5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgKCkgPT4ge1xuICAgICAgICAgIHRoaXMudmlzaWJsZUlucHV0LmlucHV0LmNsYXNzTGlzdC5yZW1vdmUoJ2RyYWctbi1kcm9wcGluZycpO1xuICAgICAgICB9LCBmYWxzZSk7XG4gICAgICB9KTtcblxuICAgICAgLy8gSGFuZGxlIGRyb3BwZWQgZmlsZXNcbiAgICAgIHRoaXMudmlzaWJsZUlucHV0LmlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCBhc3luYyAoZTogRHJhZ0V2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGR0ID0gZS5kYXRhVHJhbnNmZXI7XG4gICAgICAgIGNvbnN0IGZpbGVzID0gZHQhLmZpbGVzO1xuICAgICAgICBoYW5kbGVGaWxlcyhmaWxlcyk7XG4gICAgICB9LCBmYWxzZSk7XG5cbiAgICAgIC8vIFBhc3MgY2xpY2tzIHRvIGhpZGRlbiBmaWxlIGlucHV0XG4gICAgICB0aGlzLnZpc2libGVJbnB1dC5pbnB1dC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHRoaXMuaGlkZGVuSW5wdXQuY2xpY2soKSwgZmFsc2UpO1xuICAgICAgdGhpcy52aXNpYmxlSW5wdXQucm9vdC5hcHBlbmQodWkuZGl2KHRoaXMuaWNvbiwgJ2ljb24nKSk7XG5cbiAgICAgIHJldHVybiB0aGlzLnZpc2libGVJbnB1dDtcbiAgICB9O1xuXG4gICAgWydkcmFnJywgJ2RyYWdlbnRlciddLmZvckVhY2goKGV2ZW50TmFtZSkgPT4ge1xuICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnbGF5b3V0LXdvcmthcmVhJylbMF0uYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIChlKSA9PiB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB9LCBmYWxzZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnJvb3Quc3R5bGUuZGlzcGxheSA9ICdmbGV4JztcbiAgICB0aGlzLnJvb3QuYXBwZW5kKGNyZWF0ZUZpbGVBcmVhKCkucm9vdCk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0KCkge1xuICAgIHRoaXMudmlzaWJsZUlucHV0LmlucHV0LmNsYXNzTGlzdC52YWx1ZSA9ICd1aS1pbnB1dC1lZGl0b3IgZGVmYXVsdCc7XG4gICAgY29uc3QgbmV3SWNvbiA9IHVpLmljb25GQSgnY2xvdWQtdXBsb2FkJywgKCkgPT4gdGhpcy5oaWRkZW5JbnB1dC5jbGljaygpKTtcbiAgICB0aGlzLmljb24ucmVwbGFjZVdpdGgobmV3SWNvbik7XG4gICAgdGhpcy5pY29uID0gbmV3SWNvbjtcbiAgICB0aGlzLnZpc2libGVJbnB1dC52YWx1ZSA9ICdEcmFnLW4tZHJvcCBoZXJlJztcbiAgICB0aGlzLmhpZGRlbklucHV0LnZhbHVlID0gJyc7XG4gICAgdGhpcy51cGxvYWRlZEZpbGUkLm5leHQobnVsbCk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyKCkge1xuICAgIHVpLmVtcHR5KHRoaXMucm9vdCk7XG4gIH1cbn1cbiJdfQ==
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImZpbGUtaW5wdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBRUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV0QyxPQUFPLEVBQUMsZUFBZSxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLFVBQVUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTywwQkFBMEIsQ0FBQztBQUVsQyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsbUVBQW1FLENBQUM7QUFFbkcsTUFBTSxPQUFPLFNBQVM7SUFnQnBCLFlBQ1MsY0FBYyxrQkFBa0IsRUFDaEMsZUFBNEIsSUFBSSxFQUNoQyxpQkFBa0MsSUFBSSxFQUN0QyxXQUFXLGVBQWU7UUFIMUIsZ0JBQVcsR0FBWCxXQUFXLENBQXFCO1FBQ2hDLGlCQUFZLEdBQVosWUFBWSxDQUFvQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBd0I7UUFDdEMsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFuQm5DLGlCQUFpQjtRQUNWLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQWUsQ0FBQztRQUNsRCxzQ0FBc0M7UUFDL0IsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBZSxDQUFDO1FBQ25ELHlCQUF5QjtRQUNsQixTQUFJLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLG9CQUFvQjtRQUNiLGVBQVUsR0FBRyxJQUFJLFVBQVUsRUFBUSxDQUFDO1FBRW5DLGlCQUFZLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRSxnQkFBVyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUMsU0FBSSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLEdBQUcsRUFBRSxDQUFD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SUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsa0JBQWtCLENBQUM7UUFDN0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFTyxLQUFLO1FBQ1gsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCBWYWxpZGF0aW9uIGZyb20gJy4uL3ZhbGlkYXRpb24nO1xuaW1wb3J0ICcuLi8uLi9jc3MvZmlsZS1pbnB1dC5jc3MnO1xuXG5leHBvcnQgY29uc3QgRVhDRUxfQkxPQl9UWVBFID0gJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JztcblxuZXhwb3J0IGNsYXNzIEZpbGVJbnB1dCB7XG4gIC8vIGV2ZW50cyB0byBlbWl0XG4gIHB1YmxpYyB1cGxvYWRlZEZpbGUkID0gbmV3IFN1YmplY3Q8RmlsZSB8IG51bGw+KCk7XG4gIC8vIHNhbWUgZXZlbnQgYXMgYWJvdmUgYnV0IGluIERHLXN0eWxlXG4gIHB1YmxpYyBvbkZpbGVVcGxvYWRlZCA9IG5ldyBTdWJqZWN0PEZpbGUgfCBudWxsPigpO1xuICAvLyBIVE1MIHJvb3Qgb2YgY29tcG9uZW50XG4gIHB1YmxpYyByb290ID0gdWkuZGl2KCk7XG4gIC8vIFZhbGlkYXRpb24gb2JqZWN0XG4gIHB1YmxpYyB2YWxpZGF0aW9uID0gbmV3IFZhbGlkYXRpb248RmlsZT4oKTtcblxuICBwcml2YXRlIHZpc2libGVJbnB1dCA9IHVpLnN0cmluZ0lucHV0KCdJbnB1dCBmaWxlJywgdGhpcy5pbml0aWFsVGV4dCwgbnVsbCk7XG4gIHByaXZhdGUgaGlkZGVuSW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICBwcml2YXRlIGljb24gPSB1aS5pY29uRkEoJ2Nsb3VkLXVwbG9hZCcsICgpID0+IHRoaXMuaGlkZGVuSW5wdXQuY2xpY2soKSk7XG5cbiAgcHJpdmF0ZSBpc1ZhbGlkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgaW5pdGlhbFRleHQgPSAnRHJhZy1uLWRyb3AgaGVyZScsXG4gICAgcHVibGljIGluaXRpYWxWYWx1ZTogRmlsZSB8IG51bGwgPSBudWxsLFxuICAgIHB1YmxpYyBvblZhbHVlQ2hhbmdlZDogRnVuY3Rpb24gfCBudWxsID0gbnVsbCxcbiAgICBwdWJsaWMgZmlsZVR5cGUgPSBFWENFTF9CTE9CX1RZUEVcbiAgKSB7XG4gICAgdGhpcy5kcmF3KCk7XG5cbiAgICB0aGlzLmlzVmFsaWQuc3Vic2NyaWJlKChpc1ZhbGlkKSA9PiB7XG4gICAgICBpZiAoaXNWYWxpZCkge1xuICAgICAgICB0aGlzLnZpc2libGVJbnB1dC5pbnB1dC5jbGFzc0xpc3QucmVtb3ZlKCdlcnJvcicpO1xuICAgICAgICB0aGlzLnZpc2libGVJbnB1dC5pbnB1dC5jbGFzc0xpc3QuYWRkKCdzdWNjZXNzJyk7XG4gICAgICAgIGNvbnN0IG5ld0ljb24gPSB1aS5pY29uRkEoJ3RpbWVzJywgKCkgPT4gdGhpcy5yZXNldCgpKTtcbiAgICAgICAgdGhpcy5pY29uLnJlcGxhY2VXaXRoKG5ld0ljb24pO1xuICAgICAgICB0aGlzLmljb24gPSBuZXdJY29uO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy52aXNpYmxlSW5wdXQuaW5wdXQuY2xhc3NMaXN0LnJlbW92ZSgnc3VjY2VzcycpO1xuICAgICAgICB0aGlzLnZpc2libGVJbnB1dC5pbnB1dC5jbGFzc0xpc3QuYWRkKCdlcnJvcicpO1xuICAgICAgICBjb25zdCBuZXdJY29uID0gdWkuaWNvbkZBKCdyZWRvJywgKCkgPT4gdGhpcy5oaWRkZW5JbnB1dC5jbGljaygpKTtcbiAgICAgICAgdGhpcy5pY29uLnJlcGxhY2VXaXRoKG5ld0ljb24pO1xuICAgICAgICB0aGlzLmljb24gPSBuZXdJY29uO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy51cGxvYWRlZEZpbGUkLnN1YnNjcmliZSgoZmlsZSkgPT4gdGhpcy5vbkZpbGVVcGxvYWRlZC5uZXh0KGZpbGUpKTtcblxuICAgIGlmIChvblZhbHVlQ2hhbmdlZClcbiAgICAgIHRoaXMudXBsb2FkZWRGaWxlJC5zdWJzY3JpYmUoKG5ld1ZhbHVlOiBhbnkpID0+IG9uVmFsdWVDaGFuZ2VkKG5ld1ZhbHVlKSk7XG4gIH1cblxuICBwcml2YXRlIGRyYXcoKSB7XG4gICAgdGhpcy5jbGVhcigpO1xuXG4gICAgY29uc3QgY3JlYXRlRmlsZUFyZWEgPSAoKSA9PiB7XG4gICAgICAodGhpcy52aXNpYmxlSW5wdXQuaW5wdXQgYXMgSFRNTElucHV0RWxlbWVudCkucmVhZE9ubHkgPSB0cnVlO1xuICAgICAgdGhpcy52aXNpYmxlSW5wdXQuaW5wdXQuY2xhc3NMaXN0LmFkZCgnZGVmYXVsdCcpO1xuXG4gICAgICBjb25zdCBoYW5kbGVGaWxlcyA9IGFzeW5jIChmaWxlczogRmlsZUxpc3QgfCBudWxsKSA9PiB7XG4gICAgICAgIGlmICghZmlsZXMgfHwgIWZpbGVzLmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMudXBsb2FkZWRGaWxlJC5uZXh0KG51bGwpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWxlcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgdGhpcy5pc1ZhbGlkLm5leHQoZmFsc2UpO1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUGxlYXNlIHNwZWNpZnkgc2luZ2xlIGlucHV0IGZpbGUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmlzaWJsZUlucHV0LnZhbHVlID0gZmlsZXNbMF0ubmFtZTtcbiAgICAgICAgaWYgKGZpbGVzWzBdLnR5cGUgIT09IHRoaXMuZmlsZVR5cGUpIHtcbiAgICAgICAgICB0aGlzLmlzVmFsaWQubmV4dChmYWxzZSk7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdGaWxlIHR5cGUgaXMgbm90IHN1cHBvcnRlZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pc1ZhbGlkLm5leHQoYXdhaXQgdGhpcy52YWxpZGF0aW9uLnZhbGlkYXRlKGZpbGVzWzBdKSk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNWYWxpZC52YWx1ZSlcbiAgICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZSQubmV4dChmaWxlc1swXSk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZSQubmV4dChudWxsKTtcbiAgICAgIH07XG5cbiAgICAgIHRoaXMudmlzaWJsZUlucHV0LnJvb3QuY2xhc3NMaXN0LmFkZCgnY3YtZHJvcC1hcmVhJyk7XG4gICAgICB0aGlzLnZpc2libGVJbnB1dC5yb290LnN0eWxlLndpZHRoID0gJzEwMCUnO1xuXG4gICAgICAvLyBoaWRkZW4gaW5wdXQgdG8gaGFuZGxlIGZpbGUgZGlhbG9nXG5cbiAgICAgIHRoaXMuaGlkZGVuSW5wdXQudHlwZSA9ICdmaWxlJztcbiAgICAgIHRoaXMuaGlkZGVuSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgYXN5bmMgKCkgPT4gYXdhaXQgaGFuZGxlRmlsZXModGhpcy5oaWRkZW5JbnB1dC5maWxlcyksIGZhbHNlKTtcblxuICAgICAgLy8gUHJldmVudCBkZWZhdWx0IGRyYWcgYmVoYXZpb3JzXG4gICAgICBbJ2RyYWdlbnRlcicsICdkcmFnb3ZlcicsICdkcmFnbGVhdmUnLCAnZHJvcCddLmZvckVhY2goKGV2ZW50TmFtZSkgPT4ge1xuICAgICAgICB0aGlzLnZpc2libGVJbnB1dC5pbnB1dC5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgKGUpID0+IHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfSwgZmFsc2UpO1xuICAgICAgfSk7XG5cbiAgICAgIFsnZHJhZ2VudGVyJywgJ2RyYWdvdmVyJ10uZm9yRWFjaCgoZXZlbnROYW1lKSA9PiB7XG4gICAgICAgIHRoaXMudmlzaWJsZUlucHV0LmlucHV0LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCAoKSA9PiB7XG4gICAgICAgICAgdGhpcy52aXNpYmxlSW5wdXQuaW5wdXQuY2xhc3NMaXN0LmFkZCgnZHJhZy1uLWRyb3BwaW5nJyk7XG4gICAgICAgIH0sIGZhbHNlKTtcbiAgICAgIH0pO1xuXG4gICAgICBbJ2RyYWdsZWF2ZScsICdkcm9wJ10uZm9yRWFjaCgoZXZlbnROYW1lKSA9PiB7XG4gICAgICAgIHRoaXMudmlzaWJsZUlucHV0LmlucHV0LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCAoKSA9PiB7XG4gICAgICAgICAgdGhpcy52aXNpYmxlSW5wdXQuaW5wdXQuY2xhc3NMaXN0LnJlbW92ZSgnZHJhZy1uLWRyb3BwaW5nJyk7XG4gICAgICAgIH0sIGZhbHNlKTtcbiAgICAgIH0pO1xuXG4gICAgICAvLyBIYW5kbGUgZHJvcHBlZCBmaWxlc1xuICAgICAgdGhpcy52aXNpYmxlSW5wdXQuaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignZHJvcCcsIGFzeW5jIChlOiBEcmFnRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3QgZHQgPSBlLmRhdGFUcmFuc2ZlcjtcbiAgICAgICAgY29uc3QgZmlsZXMgPSBkdCEuZmlsZXM7XG4gICAgICAgIGhhbmRsZUZpbGVzKGZpbGVzKTtcbiAgICAgIH0sIGZhbHNlKTtcblxuICAgICAgLy8gUGFzcyBjbGlja3MgdG8gaGlkZGVuIGZpbGUgaW5wdXRcbiAgICAgIHRoaXMudmlzaWJsZUlucHV0LmlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5oaWRkZW5JbnB1dC5jbGljaygpLCBmYWxzZSk7XG4gICAgICB0aGlzLnZpc2libGVJbnB1dC5yb290LmFwcGVuZCh1aS5kaXYodGhpcy5pY29uLCAnaWNvbicpKTtcblxuICAgICAgcmV0dXJuIHRoaXMudmlzaWJsZUlucHV0O1xuICAgIH07XG5cbiAgICBbJ2RyYWcnLCAnZHJhZ2VudGVyJ10uZm9yRWFjaCgoZXZlbnROYW1lKSA9PiB7XG4gICAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdsYXlvdXQtd29ya2FyZWEnKVswXS5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgKGUpID0+IHtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIH0sIGZhbHNlKTtcbiAgICB9KTtcblxuICAgIHRoaXMucm9vdC5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnO1xuICAgIHRoaXMucm9vdC5hcHBlbmQoY3JlYXRlRmlsZUFyZWEoKS5yb290KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzZXQoKSB7XG4gICAgdGhpcy52aXNpYmxlSW5wdXQuaW5wdXQuY2xhc3NMaXN0LnZhbHVlID0gJ3VpLWlucHV0LWVkaXRvciBkZWZhdWx0JztcbiAgICBjb25zdCBuZXdJY29uID0gdWkuaWNvbkZBKCdjbG91ZC11cGxvYWQnLCAoKSA9PiB0aGlzLmhpZGRlbklucHV0LmNsaWNrKCkpO1xuICAgIHRoaXMuaWNvbi5yZXBsYWNlV2l0aChuZXdJY29uKTtcbiAgICB0aGlzLmljb24gPSBuZXdJY29uO1xuICAgIHRoaXMudmlzaWJsZUlucHV0LnZhbHVlID0gJ0RyYWctbi1kcm9wIGhlcmUnO1xuICAgIHRoaXMuaGlkZGVuSW5wdXQudmFsdWUgPSAnJztcbiAgICB0aGlzLnVwbG9hZGVkRmlsZSQubmV4dChudWxsKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXIoKSB7XG4gICAgdWkuZW1wdHkodGhpcy5yb290KTtcbiAgfVxufVxuIl19
@@ -1,5 +1,6 @@
1
1
  import * as DG from 'datagrok-api/dg';
2
2
  import { BehaviorSubject, Subject } from 'rxjs';
3
+ import '../../css/history-input.css';
3
4
  export declare class HistoryInput {
4
5
  private label;
5
6
  private _funcName;
@@ -1 +1 @@
1
- {"version":3,"file":"history-input.d.ts","sourceRoot":"","sources":["history-input.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,eAAe,EAAqB,OAAO,EAAO,MAAM,MAAM,CAAC;AAkBvE,qBAAa,YAAY;IAuBrB,OAAO,CAAC,KAAK;IAEb,OAAO,CAAC,SAAS;IAEjB,OAAO,CAAC,gBAAgB;IAExB,OAAO,CAAC,sBAAsB;IAE9B,OAAO,CAAC,wBAAwB;IA7B3B,qBAAqB,sCAAiD;IAGtE,oBAAoB,mBAA0B;IAErD,OAAO,CAAC,KAAK,CAQX;IACF,OAAO,CAAC,YAAY,CAA2H;IAC/I,OAAO,CAAC,eAAe,CAA4E;IAEnG,OAAO,CAAC,aAAa,CAAwC;gBAInD,KAAK,EAAE,MAAM,EAEb,SAAS,EAAE,MAAM,EAEjB,gBAAgB,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,KAAK,MAAM,EAErD,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,KAAK,MAAM,CAAC,EAE3E,wBAAwB,GAAE,MAAM,EAAO;IA0HjD,IAAI,WAAW,kCAEd;IAGD,IAAI,cAAc,uCAEjB;IAGD,IAAI,IAAI,gBAEP;IAED,IAAI,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,GAAG,IAAI,EAKhC;IAED,IAAI,KAAK,IAPM,EAAE,CAAC,QAAQ,GAAG,IAAI,CAShC;IAED,IAAI,WAAW,CAAC,GAAG,EAAE,MAAM,EAE1B;IAED,IAAI,WAAW,IAJM,MAAM,CAM1B;IAEM,mBAAmB,CAAC,QAAQ,EAAE,OAAO;CAG7C"}
1
+ {"version":3,"file":"history-input.d.ts","sourceRoot":"","sources":["history-input.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,eAAe,EAAqB,OAAO,EAAO,MAAM,MAAM,CAAC;AAIvE,OAAO,6BAA6B,CAAC;AAerC,qBAAa,YAAY;IAuBrB,OAAO,CAAC,KAAK;IAEb,OAAO,CAAC,SAAS;IAEjB,OAAO,CAAC,gBAAgB;IAExB,OAAO,CAAC,sBAAsB;IAE9B,OAAO,CAAC,wBAAwB;IA7B3B,qBAAqB,sCAAiD;IAGtE,oBAAoB,mBAA0B;IAErD,OAAO,CAAC,KAAK,CAQX;IACF,OAAO,CAAC,YAAY,CAA2H;IAC/I,OAAO,CAAC,eAAe,CAA4E;IAEnG,OAAO,CAAC,aAAa,CAAwC;gBAInD,KAAK,EAAE,MAAM,EAEb,SAAS,EAAE,MAAM,EAEjB,gBAAgB,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,KAAK,MAAM,EAErD,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,KAAK,MAAM,CAAC,EAE3E,wBAAwB,GAAE,MAAM,EAAO;IA0HjD,IAAI,WAAW,kCAEd;IAGD,IAAI,cAAc,uCAEjB;IAGD,IAAI,IAAI,gBAEP;IAED,IAAI,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,GAAG,IAAI,EAKhC;IAED,IAAI,KAAK,IAPM,EAAE,CAAC,QAAQ,GAAG,IAAI,CAShC;IAED,IAAI,WAAW,CAAC,GAAG,EAAE,MAAM,EAE1B;IAED,IAAI,WAAW,IAJM,MAAM,CAM1B;IAEM,mBAAmB,CAAC,QAAQ,EAAE,OAAO;CAG7C"}
@@ -15,6 +15,7 @@ import { BehaviorSubject, EMPTY, Observable, Subject, from } from 'rxjs';
15
15
  import { catchError, finalize, shareReplay, switchMap, tap, takeUntil } from 'rxjs/operators';
16
16
  import $ from 'cash-dom';
17
17
  import { historyUtils } from '../history-utils';
18
+ import '../../css/history-input.css';
18
19
  class DatabaseService {
19
20
  static getHistoryRuns(funcName) {
20
21
  return from((() => __awaiter(this, void 0, void 0, function* () {
@@ -184,4 +185,4 @@ export class HistoryInput {
184
185
  this.store.isExperimentRunsLoading.next(newState);
185
186
  }
186
187
  }
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhpc3RvcnktaW5wdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsNEJBQTRCO0FBQzVCLE9BQU8sS0FBSyxJQUFJLE1BQU0sbUJBQW1CLENBQUM7QUFDMUMsT0FBTyxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0QyxPQUFPLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RDLE9BQU8sRUFBQyxlQUFlLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVGLE9BQU8sQ0FBQyxNQUFNLFVBQVUsQ0FBQztBQUN6QixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFFOUMsTUFBTSxlQUFlO0lBQ25CLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBZ0I7UUFDcEMsT0FBTyxJQUFJLENBQUMsQ0FBQyxHQUFTLEVBQUU7WUFDdEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxZQUFZLENBQUMsY0FBYyxDQUMzQyxRQUFRLEVBQUU7Z0JBQ1IsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUM7YUFDNUMsRUFBRSxFQUFDLEtBQUssRUFBRSxTQUFTLEVBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxjQUFjLEVBQUUsU0FBUyxDQUFDLENBQ2xFLENBQUM7WUFDRixPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsQ0FBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1IsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLFlBQVk7SUFxQnZCO0lB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QXVCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgRU1QVFksIE9ic2VydmFibGUsIFN1YmplY3QsIGZyb219IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBmaW5hbGl6ZSwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCwgdGFwLCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCAkIGZyb20gJ2Nhc2gtZG9tJztcbmltcG9ydCB7aGlzdG9yeVV0aWxzfSBmcm9tICcuLi9oaXN0b3J5LXV0aWxzJztcblxuY2xhc3MgRGF0YWJhc2VTZXJ2aWNlIHtcbiAgc3RhdGljIGdldEhpc3RvcnlSdW5zKGZ1bmNOYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPERHLkZ1bmNDYWxsW10+IHtcbiAgICByZXR1cm4gZnJvbSgoYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgaGlzdG9yeVV0aWxzLnB1bGxSdW5zQnlOYW1lKFxuICAgICAgICBmdW5jTmFtZSwgW1xuICAgICAgICAgIHtpc1NoYXJlZDogdHJ1ZX0sIHthdXRob3I6IGdyb2suc2hlbGwudXNlcn0sXG4gICAgICAgIF0sIHtvcmRlcjogJ3N0YXJ0ZWQnfSwgWydmdW5jLnBhcmFtcycsICdzZXNzaW9uLnVzZXInLCAnb3B0aW9ucyddXG4gICAgICApO1xuICAgICAgcmV0dXJuIHJlcztcbiAgICB9KSgpKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSGlzdG9yeUlucHV0IHtcbiAgLy8gZW1pdHRlZCB3aGVuIHBhcmljdHVsYXIgaGlzdG9yaWNhbCBydW4gaXMgY2hvc2VuXG4gIHB1YmxpYyBvbkhpc3RvcmljYWxSdW5DaG9zZW4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERHLkZ1bmNDYWxsIHwgbnVsbD4obnVsbCk7XG5cbiAgLy8gVG9nZ2xlIHRvIGZvcmNlIGhpc3RvcmljYWwgcnVucyB1ZHBhdGVcbiAgcHVibGljIGV4cGVyaW1lbnRSdW5zVXBkYXRlID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICBwcml2YXRlIHN0b3JlID0ge1xuICAgIGV4cGVyaW1lbnRSdW5zOiBuZXcgT2JzZXJ2YWJsZTxERy5GdW5jQ2FsbFtdPigpLFxuICAgIGV4cGVyaW1lbnRSdW5zRGY6IG5ldyBCZWhhdmlvclN1YmplY3QoREcuRGF0YUZyYW1lLmZyb21Db2x1bW5zKFtcbiAgICAgIERHLkNvbHVtbi5mcm9tU3RyaW5ncygnUGljaycsIFtdKSxcbiAgICAgIC4uLk9iamVjdC5rZXlzKHRoaXMuX3Zpc2libGVDb2x1bW5zRm9yR3JpZCkubWFwKChjb2wpID0+IERHLkNvbHVtbi5mcm9tU3RyaW5ncyhjb2wsIFtdKSlcbiAgICBdKSksXG4gICAgaXNFeHBlcmltZW50UnVuc0xvYWRpbmc6IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCksXG4gICAgZXhwZXJpbWVudFJ1bkRhdGE6IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyksXG4gIH07XG4gIHByaXZhdGUgX2hpc3RvcnlHcmlkID0gREcuVmlld2VyLmdyaWQodGhpcy5zdG9yZS5leHBlcmltZW50UnVuc0RmLnZhbHVlLCB7c2hvd1Jvd0hlYWRlcjogZmFsc2UsIHNob3dDb2x1bW5HcmlkbGluZXM6IGZhbHNlLCBhbGxvd0VkaXQ6IGZhbHNlfSk7XG4gIHByaXZhdGUgX2hpc3RvcnlGaWx0ZXJzID0gREcuVmlld2VyLmZpbHRlcnModGhpcy5zdG9yZS5leHBlcmltZW50UnVuc0RmLnZhbHVlLCB7dGl0bGU6ICdGaWx0ZXJzJ30pO1xuXG4gIHByaXZhdGUgX3Zpc2libGVJbnB1dCA9IHVpLnN0cmluZ0lucHV0KHRoaXMubGFiZWwsICcnLCBudWxsKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAvLyBMYWJlbCBwbGFjZWQgYmVmb3JlIG5leHQgdG8gdGhlIGlucHV0XG4gICAgcHJpdmF0ZSBsYWJlbDogc3RyaW5nLFxuICAgIC8vIEZ1bmN0aW9uIHRvIGxvb2sgaGlzdG9yeSBmb3JcbiAgICBwcml2YXRlIF9mdW5jTmFtZTogc3RyaW5nLFxuICAgIC8vIFN0cmluZyB2YWx1ZSB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIGlucHV0IGZpZWxkXG4gICAgcHJpdmF0ZSBfc3RyaW5nVmFsdWVGdW5jOiAoY3VycmVudFJ1bjogREcuRnVuY0NhbGwpID0+IHN0cmluZyxcbiAgICAvLyBNYXAgb2YgZ3JpZCBjb2x1bW5zIGFuZCBmdW5jdGlvbnMgdG8gcmV0cmlldmUgdGhlaXIgYWN0dWFsIHZhbHVlcyBmcm9tIERHLkZ1bmNDYWxsXG4gICAgcHJpdmF0ZSBfdmlzaWJsZUNvbHVtbnNGb3JHcmlkOiBSZWNvcmQ8c3RyaW5nLCAoY3VycmVudFJ1bjogREcuRnVuY0NhbGwpID0+IHN0cmluZz4sXG4gICAgLy8gQXJyYXkgb2YgZ3JpZCBjb2x1bW5zIHZpc2libGUgaW4gdGhlIGZpbHRlciB2aWV2ZXJcbiAgICBwcml2YXRlIF92aXNpYmxlQ29sdW1uc0ZvckZpbHRlcjogc3RyaW5nW10gPSBbXVxuICApIHtcbiAgICB0aGlzLl9oaXN0b3J5R3JpZC5jb2x1bW5zLmJ5TmFtZSgnUGljaycpIS5jZWxsVHlwZSA9ICdodG1sJztcbiAgICB0aGlzLl9oaXN0b3J5R3JpZC5jb2x1bW5zLmJ5TmFtZSgnUGljaycpIS53aWR0aCA9IDMwO1xuICAgIHRoaXMuX2hpc3RvcnlHcmlkLnJvb3Quc3R5bGUuaGVpZ2h0ID0gJzEwMCUnO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5faGlzdG9yeUdyaWQuY29sdW1ucy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgY29sID0gdGhpcy5faGlzdG9yeUdyaWQuY29sdW1ucy5ieUluZGV4KGkpPy5jb2x1bW47XG4gICAgICBpZiAoY29sICYmIGNvbC50eXBlID09PSBERy5UWVBFLkRBVEVfVElNRSkge1xuICAgICAgICB0aGlzLl9oaXN0b3J5R3JpZC5jb2x1bW5zLmJ5SW5kZXgoaSkhLmZvcm1hdCA9ICdNTU0gZCwgeXl5eSc7XG4gICAgICAgIHRoaXMuX2hpc3RvcnlHcmlkLmNvbHVtbnMuYnlJbmRleChpKSEud2lkdGggPSAxMDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5fdmlzaWJsZUlucHV0LmlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgY29uc3QgX2hpc3RvcnlEaWFsb2cgPSB1aS5kaWFsb2coKTtcblxuICAgICAgJChfaGlzdG9yeURpYWxvZy5yb290KS5hZGRDbGFzcygnYXJyb3ctYm94Jyk7XG5cbiAgICAgIF9oaXN0b3J5RGlhbG9nLm9uT0soKCkgPT4geyB9KTtcbiAgICAgIF9oaXN0b3J5RGlhbG9nLm9uQ2FuY2VsKCgpID0+IHsgdGhpcy5vbkhpc3RvcmljYWxSdW5DaG9zZW4ubmV4dChudWxsKTsgfSk7XG5cbiAgICAgICQoX2hpc3RvcnlEaWFsb2cucm9vdCkuZmluZCgnLmQ0LWRpYWxvZy1oZWFkZXInKS5oaWRlKCk7XG4gICAgICBfaGlzdG9yeURpYWxvZy5yb290LnN0eWxlLmJveFNoYWRvdyA9ICcnO1xuICAgICAgJChfaGlzdG9yeURpYWxvZy5yb290KS5yZW1vdmVDbGFzcygndWktZm9ybScpO1xuXG4gICAgICBjb25zdCBuZXdIaXN0b3J5RmlsdGVycyA9IERHLlZpZXdlci5maWx0ZXJzKHRoaXMuc3RvcmUuZXhwZXJpbWVudFJ1bnNEZi52YWx1ZSwge3RpdGxlOiAnRmlsdGVycyd9KTtcbiAgICAgIHRoaXMuX2hpc3RvcnlGaWx0ZXJzLnJvb3QucmVwbGFjZVdpdGgobmV3SGlzdG9yeUZpbHRlcnMucm9vdCk7XG4gICAgICB0aGlzLl9oaXN0b3J5RmlsdGVycyA9IG5ld0hpc3RvcnlGaWx0ZXJzO1xuXG4gICAgICBjb25zdCBuZXdIaXN0b3J5R3JpZCA9IERHLlZpZXdlci5ncmlkKHRoaXMuc3RvcmUuZXhwZXJpbWVudFJ1bnNEZi52YWx1ZSwge3Nob3dSb3dIZWFkZXI6IGZhbHNlLCBzaG93Q29sdW1uR3JpZGxpbmVzOiBmYWxzZSwgYWxsb3dFZGl0OiBmYWxzZX0pO1xuICAgICAgdGhpcy5faGlzdG9yeUdyaWQucm9vdC5yZXBsYWNlV2l0aChuZXdIaXN0b3J5R3JpZC5yb290KTtcbiAgICAgIHRoaXMuX2hpc3RvcnlHcmlkID0gbmV3SGlzdG9yeUdyaWQ7XG5cbiAgICAgIHRoaXMuX2hpc3RvcnlHcmlkLmNvbHVtbnMuYnlOYW1lKCdQaWNrJykhLmNlbGxUeXBlID0gJ2h0bWwnO1xuICAgICAgdGhpcy5faGlzdG9yeUdyaWQuY29sdW1ucy5ieU5hbWUoJ1BpY2snKSEud2lkdGggPSAzMDtcbiAgICAgIHRoaXMuX2hpc3RvcnlHcmlkLnJvb3Quc3R5bGUuaGVpZ2h0ID0gJzEwMCUnO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9oaXN0b3J5R3JpZC5jb2x1bW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGNvbCA9IHRoaXMuX2hpc3RvcnlHcmlkLmNvbHVtbnMuYnlJbmRleChpKT8uY29sdW1uO1xuICAgICAgICBpZiAoY29sICYmIGNvbC50eXBlID09PSBERy5UWVBFLkRBVEVfVElNRSkge1xuICAgICAgICAgIHRoaXMuX2hpc3RvcnlHcmlkLmNvbHVtbnMuYnlJbmRleChpKSEuZm9ybWF0ID0gJ01NTSBkLCB5eXl5JztcbiAgICAgICAgICB0aGlzLl9oaXN0b3J5R3JpZC5jb2x1bW5zLmJ5SW5kZXgoaSkhLndpZHRoID0gMTAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2hpc3RvcnlHcmlkLm9uQ2VsbFByZXBhcmUoKGNlbGwpID0+IHtcbiAgICAgICAgaWYgKGNlbGwudGFibGVDb2x1bW4/Lm5hbWUgPT09ICdQaWNrJykge1xuICAgICAgICAgIGlmIChjZWxsLmlzQ29sSGVhZGVyKVxuICAgICAgICAgICAgY2VsbC5jdXN0b21UZXh0ID0gJyc7XG5cbiAgICAgICAgICBpZiAoY2VsbC5jZWxsLnZhbHVlID09PSB0cnVlKVxuICAgICAgICAgICAgY2VsbC5lbGVtZW50ID0gdWkuZGl2KFt1aS5pY29uRkEoJ2NoZWNrJyldLCB7c3R5bGU6IHsndGV4dC1hbGlnbic6ICdjZW50ZXInLCAnbWFyZ2luJzogJzZweCd9fSk7XG4gICAgICAgICAgZWxzZVxuICAgICAgICAgICAgY2VsbC5lbGVtZW50ID0gdWkuZGl2KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLl9oaXN0b3J5R3JpZC5jb2x1bW5zLnNldFZpc2libGUoWydQaWNrJywgLi4uT2JqZWN0LmtleXModGhpcy5fdmlzaWJsZUNvbHVtbnNGb3JHcmlkKS5tYXAoKGNvbE5hbWUpID0+IGNvbE5hbWUpXSk7XG4gICAgICB0aGlzLl9oaXN0b3J5RmlsdGVycy5zZXRPcHRpb25zKHtjb2x1bW5OYW1lczogdGhpcy5fdmlzaWJsZUNvbHVtbnNGb3JGaWx0ZXJ9KTtcbiAgICAgIHRoaXMuX2hpc3RvcnlGaWx0ZXJzLnJvb3Quc3R5bGUuaGVpZ2h0ID0gJzEwMCUnO1xuICAgICAgJCh0aGlzLl9oaXN0b3J5RmlsdGVycy5yb290KS5maW5kKCcuZDQtZmlsdGVyLWdyb3VwLWhlYWRlcicpLmhpZGUoKTtcblxuICAgICAgaWYgKCF0aGlzLl92aXNpYmxlQ29sdW1uc0ZvckZpbHRlci5sZW5ndGgpICQodGhpcy5faGlzdG9yeUZpbHRlcnMucm9vdC5wYXJlbnRFbGVtZW50KS5oaWRlKCk7XG5cbiAgICAgIF9oaXN0b3J5RGlhbG9nLmFkZChcbiAgICAgICAgdWkuZGl2SChbXG4gICAgICAgICAgdWkuYmxvY2soW3RoaXMuX2hpc3RvcnlHcmlkLnJvb3RdKSxcbiAgICAgICAgICB1aS5ibG9jayhbdGhpcy5faGlzdG9yeUZpbHRlcnMucm9vdF0sIHtzdHlsZTogeydtYXJnaW4tbGVmdCc6ICcxMHB4JywgJ3dpZHRoJzogJzIyNXB4JywgJ2hlaWdodCc6ICcxMDAlJ319KSxcbiAgICAgICAgXSlcbiAgICAgICk7XG5cbiAgICAgIF9oaXN0b3J5RGlhbG9nLnNob3coe1xuICAgICAgICB4OiB0aGlzLl92aXNpYmxlSW5wdXQuaW5wdXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueCArIHRoaXMuX3Zpc2libGVJbnB1dC5pbnB1dC5jbGllbnRXaWR0aCArIDEwLFxuICAgICAgICB5OiB0aGlzLl92aXNpYmxlSW5wdXQuaW5wdXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkueSAtIDMwLFxuICAgICAgICB3aWR0aDogTWF0aC5tYXgodGhpcy5faGlzdG9yeUdyaWQucm9vdC5jbGllbnRXaWR0aCArIHRoaXMuX2hpc3RvcnlGaWx0ZXJzLnJvb3QuY2xpZW50V2lkdGggKyAzMCwgNjAwKSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHRoaXMuX3Zpc2libGVJbnB1dC5yZWFkT25seSA9IHRydWU7XG5cbiAgICB0aGlzLnN0b3JlLmV4cGVyaW1lbnRSdW5zID0gdGhpcy5leHBlcmltZW50UnVuc1VwZGF0ZS5waXBlKFxuICAgICAgdGFwKCgpID0+IHRoaXMudG9nZ2xlTG9hZGVyRXhwUnVucyh0cnVlKSksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gRGF0YWJhc2VTZXJ2aWNlLmdldEhpc3RvcnlSdW5zKHRoaXMuX2Z1bmNOYW1lKS5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKCgpID0+IEVNUFRZKSxcbiAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy50b2dnbGVMb2FkZXJFeHBSdW5zKGZhbHNlKSlcbiAgICAgICkpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuXG4gICAgdGhpcy5zdG9yZS5leHBlcmltZW50UnVucy5waXBlKHRha2VVbnRpbChmcm9tKG5ldyBTdWJqZWN0PGJvb2xlYW4+KCkpKSkuc3Vic2NyaWJlKChuZXdSdW5zKSA9PiB7XG4gICAgICBjb25zdCBuZXdSdW5zR3JpZERmID0gREcuRGF0YUZyYW1lLmZyb21Db2x1bW5zKFtcbiAgICAgICAgREcuQ29sdW1uLmJvb2woJ1BpY2snLCBuZXdSdW5zLmxlbmd0aCkuaW5pdChmYWxzZSksXG4gICAgICAgIC4uLk9iamVjdC5lbnRyaWVzKHRoaXMuX3Zpc2libGVDb2x1bW5zRm9yR3JpZCkubWFwKChlbnRyeSkgPT4gREcuQ29sdW1uLmZyb21TdHJpbmdzKGVudHJ5WzBdLCBuZXdSdW5zLm1hcChlbnRyeVsxXSkpKSxcbiAgICAgICAgREcuQ29sdW1uLmZyb21TdHJpbmdzKCdJRCcsIG5ld1J1bnMubWFwKChuZXdSdW4pID0+IG5ld1J1bi5pZCkpXG4gICAgICBdKTtcbiAgICAgIG5ld1J1bnNHcmlkRGYub25DdXJyZW50Um93Q2hhbmdlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBuZXdSdW5zR3JpZERmLmdldENvbCgnUGljaycpLmluaXQoZmFsc2UpO1xuICAgICAgICBuZXdSdW5zR3JpZERmLnNldCgnUGljaycsIG5ld1J1bnNHcmlkRGYuY3VycmVudFJvdy5pZHgsIHRydWUpO1xuICAgICAgICBjb25zdCBuZXdJZCA9IG5ld1J1bnNHcmlkRGYuZ2V0Q29sKCdJRCcpLmdldChuZXdSdW5zR3JpZERmLmN1cnJlbnRSb3cuaWR4KTtcbiAgICAgICAgY29uc3QgY2hvc2VuUnVuID0gbmV3UnVucy5maW5kKChydW4pID0+IHJ1bi5pZCA9PT0gbmV3SWQpO1xuICAgICAgICBpZiAoY2hvc2VuUnVuKVxuICAgICAgICAgIHRoaXMub25IaXN0b3JpY2FsUnVuQ2hvc2VuLm5leHQoY2hvc2VuUnVuKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5zdG9yZS5leHBlcmltZW50UnVuc0RmLm5leHQobmV3UnVuc0dyaWREZik7XG4gICAgfSk7XG5cbiAgICB0aGlzLnN0b3JlLmV4cGVyaW1lbnRSdW5zRGYuc3Vic2NyaWJlKChuZXdEZikgPT4ge1xuICAgICAgdGhpcy5oaXN0b3J5R3JpZC5kYXRhRnJhbWUgPSBuZXdEZjtcbiAgICAgIHRoaXMuaGlzdG9yeUZpbHRlcnMuZGF0YUZyYW1lID0gbmV3RGY7XG4gICAgfSk7XG5cbiAgICB0aGlzLm9uSGlzdG9yaWNhbFJ1bkNob3Nlbi5zdWJzY3JpYmUoKHZhbCkgPT4ge1xuICAgICAgaWYgKHZhbClcbiAgICAgICAgdGhpcy5fdmlzaWJsZUlucHV0LnZhbHVlID0gdGhpcy5fc3RyaW5nVmFsdWVGdW5jKHZhbCk7XG4gICAgICBlbHNlXG4gICAgICAgIHRoaXMuX3Zpc2libGVJbnB1dC52YWx1ZSA9ICcnO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zdG9yZS5pc0V4cGVyaW1lbnRSdW5zTG9hZGluZy5zdWJzY3JpYmUoKG5ld1ZhbHVlKSA9PiB7XG4gICAgICB1aS5zZXRVcGRhdGVJbmRpY2F0b3IodGhpcy5fdmlzaWJsZUlucHV0LnJvb3QsIG5ld1ZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIFZpZXZlciBvYmplY3Qgb2YgZ3JpZFxuICBnZXQgaGlzdG9yeUdyaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2hpc3RvcnlHcmlkO1xuICB9XG5cbiAgLy8gVmlldmVyIG9iamVjdCBvZiBmaWx0ZXJzXG4gIGdldCBoaXN0b3J5RmlsdGVycygpIHtcbiAgICByZXR1cm4gdGhpcy5faGlzdG9yeUZpbHRlcnM7XG4gIH1cblxuICAvLyBIVE1MIHJvb3Qgb2YgY29tcG9uZW50XG4gIGdldCByb290KCkge1xuICAgIHJldHVybiB0aGlzLl92aXNpYmxlSW5wdXQucm9vdDtcbiAgfVxuXG4gIHNldCB2YWx1ZSh2YWw6IERHLkZ1bmNDYWxsIHwgbnVsbCkge1xuICAgIGlmICh2YWwpXG4gICAgICB0aGlzLl92aXNpYmxlSW5wdXQudmFsdWUgPSB0aGlzLl9zdHJpbmdWYWx1ZUZ1bmModmFsKTtcbiAgICBlbHNlXG4gICAgICB0aGlzLl92aXNpYmxlSW5wdXQudmFsdWUgPSAnJztcbiAgfVxuXG4gIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5vbkhpc3RvcmljYWxSdW5DaG9zZW4udmFsdWU7XG4gIH1cblxuICBzZXQgc3RyaW5nVmFsdWUodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLl92aXNpYmxlSW5wdXQudmFsdWUgPSB2YWw7XG4gIH1cblxuICBnZXQgc3RyaW5nVmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGVJbnB1dC52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVMb2FkZXJFeHBSdW5zKG5ld1N0YXRlOiBib29sZWFuKSB7XG4gICAgdGhpcy5zdG9yZS5pc0V4cGVyaW1lbnRSdW5zTG9hZGluZy5uZXh0KG5ld1N0YXRlKTtcbiAgfVxufVxuIl19
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhpc3RvcnktaW5wdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsNEJBQTRCO0FBQzVCLE9BQU8sS0FBSyxJQUFJLE1BQU0sbUJBQW1CLENBQUM7QUFDMUMsT0FBTyxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0QyxPQUFPLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RDLE9BQU8sRUFBQyxlQUFlLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVGLE9BQU8sQ0FBQyxNQUFNLFVBQVUsQ0FBQztBQUN6QixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyw2QkFBNkIsQ0FBQztBQUVyQyxNQUFNLGVBQWU7SUFDbkIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFnQjtRQUNwQyxPQUFPLElBQUksQ0FBQyxDQUFDLEdBQVMsRUFBRTtZQUN0QixNQUFNLEdBQUcsR0FBRyxNQUFNLFlBQVksQ0FBQyxjQUFjLENBQzNDLFFBQVEsRUFBRTtnQkFDUixFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBQzthQUM1QyxFQUFFLEVBQUMsS0FBSyxFQUFFLFNBQVMsRUFBQyxFQUFFLENBQUMsYUFBYSxFQUFFLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FDbEUsQ0FBQztZQUNGLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFBLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDUixDQUFDO0NBQ0Y7QUFFRCxN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SUFBSSxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBFTVBUWSwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgZnJvbX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2NhdGNoRXJyb3IsIGZpbmFsaXplLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwLCB0YXAsIHRha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0ICQgZnJvbSAnY2FzaC1kb20nO1xuaW1wb3J0IHtoaXN0b3J5VXRpbHN9IGZyb20gJy4uL2hpc3RvcnktdXRpbHMnO1xuaW1wb3J0ICcuLi8uLi9jc3MvaGlzdG9yeS1pbnB1dC5jc3MnO1xuXG5jbGFzcyBEYXRhYmFzZVNlcnZpY2Uge1xuICBzdGF0aWMgZ2V0SGlzdG9yeVJ1bnMoZnVuY05hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8REcuRnVuY0NhbGxbXT4ge1xuICAgIHJldHVybiBmcm9tKChhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBoaXN0b3J5VXRpbHMucHVsbFJ1bnNCeU5hbWUoXG4gICAgICAgIGZ1bmNOYW1lLCBbXG4gICAgICAgICAge2lzU2hhcmVkOiB0cnVlfSwge2F1dGhvcjogZ3Jvay5zaGVsbC51c2VyfSxcbiAgICAgICAgXSwge29yZGVyOiAnc3RhcnRlZCd9LCBbJ2Z1bmMucGFyYW1zJywgJ3Nlc3Npb24udXNlcicsICdvcHRpb25zJ11cbiAgICAgICk7XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH0pKCkpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBIaXN0b3J5SW5wdXQge1xuICAvLyBlbWl0dGVkIHdoZW4gcGFyaWN0dWxhciBoaXN0b3JpY2FsIHJ1biBpcyBjaG9zZW5cbiAgcHVibGljIG9uSGlzdG9yaWNhbFJ1bkNob3NlbiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8REcuRnVuY0NhbGwgfCBudWxsPihudWxsKTtcblxuICAvLyBUb2dnbGUgdG8gZm9yY2UgaGlzdG9yaWNhbCBydW5zIHVkcGF0ZVxuICBwdWJsaWMgZXhwZXJpbWVudFJ1bnNVcGRhdGUgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gIHByaXZhdGUgc3RvcmUgPSB7XG4gICAgZXhwZXJpbWVudFJ1bnM6IG5ldyBPYnNlcnZhYmxlPERHLkZ1bmNDYWxsW10+KCksXG4gICAgZXhwZXJpbWVudFJ1bnNEZjogbmV3IEJlaGF2aW9yU3ViamVjdChERy5EYXRhRnJhbWUuZnJvbUNvbHVtbnMoW1xuICAgICAgREcuQ29sdW1uLmZyb21TdHJpbmdzKCdQaWNrJywgW10pLFxuICAgICAgLi4uT2JqZWN0LmtleXModGhpcy5fdmlzaWJsZUNvbHVtbnNGb3JHcmlkKS5tYXAoKGNvbCkgPT4gREcuQ29sdW1uLmZyb21TdHJpbmdzKGNvbCwgW10pKVxuICAgIF0pKSxcbiAgICBpc0V4cGVyaW1lbnRSdW5zTG9hZGluZzogbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKSxcbiAgICBleHBlcmltZW50UnVuRGF0YTogbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKSxcbiAgfTtcbiAgcHJpdmF0ZSBfaGlzdG9yeUdyaWQgPSBERy5WaWV3ZXIuZ3JpZCh0aGlzLnN0b3JlLmV4cGVyaW1lbnRSdW5zRGYudmFsdWUsIHtzaG93Um93SGVhZGVyOiBmYWxzZSwgc2hvd0NvbHVtbkdyaWRsaW5lczogZmFsc2UsIGFsbG93RWRpdDogZmFsc2V9KTtcbiAgcHJpdmF0ZSBfaGlzdG9yeUZpbHRlcnMgPSBERy5WaWV3ZXIuZmlsdGVycyh0aGlzLnN0b3JlLmV4cGVyaW1lbnRSdW5zRGYudmFsdWUsIHt0aXRsZTogJ0ZpbHRlcnMnfSk7XG5cbiAgcHJpdmF0ZSBfdmlzaWJsZUlucHV0ID0gdWkuc3RyaW5nSW5wdXQodGhpcy5sYWJlbCwgJycsIG51bGwpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8vIExhYmVsIHBsYWNlZCBiZWZvcmUgbmV4dCB0byB0aGUgaW5wdXRcbiAgICBwcml2YXRlIGxhYmVsOiBzdHJpbmcsXG4gICAgLy8gRnVuY3Rpb24gdG8gbG9vayBoaXN0b3J5IGZvclxuICAgIHByaXZhdGUgX2Z1bmNOYW1lOiBzdHJpbmcsXG4gICAgLy8gU3RyaW5nIHZhbHVlIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgaW5wdXQgZmllbGRcbiAgICBwcml2YXRlIF9zdHJpbmdWYWx1ZUZ1bmM6IChjdXJyZW50UnVuOiBERy5GdW5jQ2FsbCkgPT4gc3RyaW5nLFxuICAgIC8vIE1hcCBvZiBncmlkIGNvbHVtbnMgYW5kIGZ1bmN0aW9ucyB0byByZXRyaWV2ZSB0aGVpciBhY3R1YWwgdmFsdWVzIGZyb20gREcuRnVuY0NhbGxcbiAgICBwcml2YXRlIF92aXNpYmxlQ29sdW1uc0ZvckdyaWQ6IFJlY29yZDxzdHJpbmcsIChjdXJyZW50UnVuOiBERy5GdW5jQ2FsbCkgPT4gc3RyaW5nPixcbiAgICAvLyBBcnJheSBvZiBncmlkIGNvbHVtbnMgdmlzaWJsZSBpbiB0aGUgZmlsdGVyIHZpZXZlclxuICAgIHByaXZhdGUgX3Zpc2libGVDb2x1bW5zRm9yRmlsdGVyOiBzdHJpbmdbXSA9IFtdXG4gICkge1xuICAgIHRoaXMuX2hpc3RvcnlHcmlkLmNvbHVtbnMuYnlOYW1lKCdQaWNrJykhLmNlbGxUeXBlID0gJ2h0bWwnO1xuICAgIHRoaXMuX2hpc3RvcnlHcmlkLmNvbHVtbnMuYnlOYW1lKCdQaWNrJykhLndpZHRoID0gMzA7XG4gICAgdGhpcy5faGlzdG9yeUdyaWQucm9vdC5zdHlsZS5oZWlnaHQgPSAnMTAwJSc7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9oaXN0b3J5R3JpZC5jb2x1bW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBjb2wgPSB0aGlzLl9oaXN0b3J5R3JpZC5jb2x1bW5zLmJ5SW5kZXgoaSk/LmNvbHVtbjtcbiAgICAgIGlmIChjb2wgJiYgY29sLnR5cGUgPT09IERHLlRZUEUuREFURV9USU1FKSB7XG4gICAgICAgIHRoaXMuX2hpc3RvcnlHcmlkLmNvbHVtbnMuYnlJbmRleChpKSEuZm9ybWF0ID0gJ01NTSBkLCB5eXl5JztcbiAgICAgICAgdGhpcy5faGlzdG9yeUdyaWQuY29sdW1ucy5ieUluZGV4KGkpIS53aWR0aCA9IDEwMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl92aXNpYmxlSW5wdXQuaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICBjb25zdCBfaGlzdG9yeURpYWxvZyA9IHVpLmRpYWxvZygpO1xuXG4gICAgICAkKF9oaXN0b3J5RGlhbG9nLnJvb3QpLmFkZENsYXNzKCdhcnJvdy1ib3gnKTtcblxuICAgICAgX2hpc3RvcnlEaWFsb2cub25PSygoKSA9PiB7IH0pO1xuICAgICAgX2hpc3RvcnlEaWFsb2cub25DYW5jZWwoKCkgPT4geyB0aGlzLm9uSGlzdG9yaWNhbFJ1bkNob3Nlbi5uZXh0KG51bGwpOyB9KTtcblxuICAgICAgJChfaGlzdG9yeURpYWxvZy5yb290KS5maW5kKCcuZDQtZGlhbG9nLWhlYWRlcicpLmhpZGUoKTtcbiAgICAgIF9oaXN0b3J5RGlhbG9nLnJvb3Quc3R5bGUuYm94U2hhZG93ID0gJyc7XG4gICAgICAkKF9oaXN0b3J5RGlhbG9nLnJvb3QpLnJlbW92ZUNsYXNzKCd1aS1mb3JtJyk7XG5cbiAgICAgIGNvbnN0IG5ld0hpc3RvcnlGaWx0ZXJzID0gREcuVmlld2VyLmZpbHRlcnModGhpcy5zdG9yZS5leHBlcmltZW50UnVuc0RmLnZhbHVlLCB7dGl0bGU6ICdGaWx0ZXJzJ30pO1xuICAgICAgdGhpcy5faGlzdG9yeUZpbHRlcnMucm9vdC5yZXBsYWNlV2l0aChuZXdIaXN0b3J5RmlsdGVycy5yb290KTtcbiAgICAgIHRoaXMuX2hpc3RvcnlGaWx0ZXJzID0gbmV3SGlzdG9yeUZpbHRlcnM7XG5cbiAgICAgIGNvbnN0IG5ld0hpc3RvcnlHcmlkID0gREcuVmlld2VyLmdyaWQodGhpcy5zdG9yZS5leHBlcmltZW50UnVuc0RmLnZhbHVlLCB7c2hvd1Jvd0hlYWRlcjogZmFsc2UsIHNob3dDb2x1bW5HcmlkbGluZXM6IGZhbHNlLCBhbGxvd0VkaXQ6IGZhbHNlfSk7XG4gICAgICB0aGlzLl9oaXN0b3J5R3JpZC5yb290LnJlcGxhY2VXaXRoKG5ld0hpc3RvcnlHcmlkLnJvb3QpO1xuICAgICAgdGhpcy5faGlzdG9yeUdyaWQgPSBuZXdIaXN0b3J5R3JpZDtcblxuICAgICAgdGhpcy5faGlzdG9yeUdyaWQuY29sdW1ucy5ieU5hbWUoJ1BpY2snKSEuY2VsbFR5cGUgPSAnaHRtbCc7XG4gICAgICB0aGlzLl9oaXN0b3J5R3JpZC5jb2x1bW5zLmJ5TmFtZSgnUGljaycpIS53aWR0aCA9IDMwO1xuICAgICAgdGhpcy5faGlzdG9yeUdyaWQucm9vdC5zdHlsZS5oZWlnaHQgPSAnMTAwJSc7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX2hpc3RvcnlHcmlkLmNvbHVtbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgY29sID0gdGhpcy5faGlzdG9yeUdyaWQuY29sdW1ucy5ieUluZGV4KGkpPy5jb2x1bW47XG4gICAgICAgIGlmIChjb2wgJiYgY29sLnR5cGUgPT09IERHLlRZUEUuREFURV9USU1FKSB7XG4gICAgICAgICAgdGhpcy5faGlzdG9yeUdyaWQuY29sdW1ucy5ieUluZGV4KGkpIS5mb3JtYXQgPSAnTU1NIGQsIHl5eXknO1xuICAgICAgICAgIHRoaXMuX2hpc3RvcnlHcmlkLmNvbHVtbnMuYnlJbmRleChpKSEud2lkdGggPSAxMDA7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5faGlzdG9yeUdyaWQub25DZWxsUHJlcGFyZSgoY2VsbCkgPT4ge1xuICAgICAgICBpZiAoY2VsbC50YWJsZUNvbHVtbj8ubmFtZSA9PT0gJ1BpY2snKSB7XG4gICAgICAgICAgaWYgKGNlbGwuaXNDb2xIZWFkZXIpXG4gICAgICAgICAgICBjZWxsLmN1c3RvbVRleHQgPSAnJztcblxuICAgICAgICAgIGlmIChjZWxsLmNlbGwudmFsdWUgPT09IHRydWUpXG4gICAgICAgICAgICBjZWxsLmVsZW1lbnQgPSB1aS5kaXYoW3VpLmljb25GQSgnY2hlY2snKV0sIHtzdHlsZTogeyd0ZXh0LWFsaWduJzogJ2NlbnRlcicsICdtYXJnaW4nOiAnNnB4J319KTtcbiAgICAgICAgICBlbHNlXG4gICAgICAgICAgICBjZWxsLmVsZW1lbnQgPSB1aS5kaXYoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuX2hpc3RvcnlHcmlkLmNvbHVtbnMuc2V0VmlzaWJsZShbJ1BpY2snLCAuLi5PYmplY3Qua2V5cyh0aGlzLl92aXNpYmxlQ29sdW1uc0ZvckdyaWQpLm1hcCgoY29sTmFtZSkgPT4gY29sTmFtZSldKTtcbiAgICAgIHRoaXMuX2hpc3RvcnlGaWx0ZXJzLnNldE9wdGlvbnMoe2NvbHVtbk5hbWVzOiB0aGlzLl92aXNpYmxlQ29sdW1uc0ZvckZpbHRlcn0pO1xuICAgICAgdGhpcy5faGlzdG9yeUZpbHRlcnMucm9vdC5zdHlsZS5oZWlnaHQgPSAnMTAwJSc7XG4gICAgICAkKHRoaXMuX2hpc3RvcnlGaWx0ZXJzLnJvb3QpLmZpbmQoJy5kNC1maWx0ZXItZ3JvdXAtaGVhZGVyJykuaGlkZSgpO1xuXG4gICAgICBpZiAoIXRoaXMuX3Zpc2libGVDb2x1bW5zRm9yRmlsdGVyLmxlbmd0aCkgJCh0aGlzLl9oaXN0b3J5RmlsdGVycy5yb290LnBhcmVudEVsZW1lbnQpLmhpZGUoKTtcblxuICAgICAgX2hpc3RvcnlEaWFsb2cuYWRkKFxuICAgICAgICB1aS5kaXZIKFtcbiAgICAgICAgICB1aS5ibG9jayhbdGhpcy5faGlzdG9yeUdyaWQucm9vdF0pLFxuICAgICAgICAgIHVpLmJsb2NrKFt0aGlzLl9oaXN0b3J5RmlsdGVycy5yb290XSwge3N0eWxlOiB7J21hcmdpbi1sZWZ0JzogJzEwcHgnLCAnd2lkdGgnOiAnMjI1cHgnLCAnaGVpZ2h0JzogJzEwMCUnfX0pLFxuICAgICAgICBdKVxuICAgICAgKTtcblxuICAgICAgX2hpc3RvcnlEaWFsb2cuc2hvdyh7XG4gICAgICAgIHg6IHRoaXMuX3Zpc2libGVJbnB1dC5pbnB1dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS54ICsgdGhpcy5fdmlzaWJsZUlucHV0LmlucHV0LmNsaWVudFdpZHRoICsgMTAsXG4gICAgICAgIHk6IHRoaXMuX3Zpc2libGVJbnB1dC5pbnB1dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS55IC0gMzAsXG4gICAgICAgIHdpZHRoOiBNYXRoLm1heCh0aGlzLl9oaXN0b3J5R3JpZC5yb290LmNsaWVudFdpZHRoICsgdGhpcy5faGlzdG9yeUZpbHRlcnMucm9vdC5jbGllbnRXaWR0aCArIDMwLCA2MDApLFxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgdGhpcy5fdmlzaWJsZUlucHV0LnJlYWRPbmx5ID0gdHJ1ZTtcblxuICAgIHRoaXMuc3RvcmUuZXhwZXJpbWVudFJ1bnMgPSB0aGlzLmV4cGVyaW1lbnRSdW5zVXBkYXRlLnBpcGUoXG4gICAgICB0YXAoKCkgPT4gdGhpcy50b2dnbGVMb2FkZXJFeHBSdW5zKHRydWUpKSxcbiAgICAgIHN3aXRjaE1hcCgoKSA9PiBEYXRhYmFzZVNlcnZpY2UuZ2V0SGlzdG9yeVJ1bnModGhpcy5fZnVuY05hbWUpLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gRU1QVFkpLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLnRvZ2dsZUxvYWRlckV4cFJ1bnMoZmFsc2UpKVxuICAgICAgKSksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG5cbiAgICB0aGlzLnN0b3JlLmV4cGVyaW1lbnRSdW5zLnBpcGUodGFrZVVudGlsKGZyb20obmV3IFN1YmplY3Q8Ym9vbGVhbj4oKSkpKS5zdWJzY3JpYmUoKG5ld1J1bnMpID0+IHtcbiAgICAgIGNvbnN0IG5ld1J1bnNHcmlkRGYgPSBERy5EYXRhRnJhbWUuZnJvbUNvbHVtbnMoW1xuICAgICAgICBERy5Db2x1bW4uYm9vbCgnUGljaycsIG5ld1J1bnMubGVuZ3RoKS5pbml0KGZhbHNlKSxcbiAgICAgICAgLi4uT2JqZWN0LmVudHJpZXModGhpcy5fdmlzaWJsZUNvbHVtbnNGb3JHcmlkKS5tYXAoKGVudHJ5KSA9PiBERy5Db2x1bW4uZnJvbVN0cmluZ3MoZW50cnlbMF0sIG5ld1J1bnMubWFwKGVudHJ5WzFdKSkpLFxuICAgICAgICBERy5Db2x1bW4uZnJvbVN0cmluZ3MoJ0lEJywgbmV3UnVucy5tYXAoKG5ld1J1bikgPT4gbmV3UnVuLmlkKSlcbiAgICAgIF0pO1xuICAgICAgbmV3UnVuc0dyaWREZi5vbkN1cnJlbnRSb3dDaGFuZ2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIG5ld1J1bnNHcmlkRGYuZ2V0Q29sKCdQaWNrJykuaW5pdChmYWxzZSk7XG4gICAgICAgIG5ld1J1bnNHcmlkRGYuc2V0KCdQaWNrJywgbmV3UnVuc0dyaWREZi5jdXJyZW50Um93LmlkeCwgdHJ1ZSk7XG4gICAgICAgIGNvbnN0IG5ld0lkID0gbmV3UnVuc0dyaWREZi5nZXRDb2woJ0lEJykuZ2V0KG5ld1J1bnNHcmlkRGYuY3VycmVudFJvdy5pZHgpO1xuICAgICAgICBjb25zdCBjaG9zZW5SdW4gPSBuZXdSdW5zLmZpbmQoKHJ1bikgPT4gcnVuLmlkID09PSBuZXdJZCk7XG4gICAgICAgIGlmIChjaG9zZW5SdW4pXG4gICAgICAgICAgdGhpcy5vbkhpc3RvcmljYWxSdW5DaG9zZW4ubmV4dChjaG9zZW5SdW4pO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnN0b3JlLmV4cGVyaW1lbnRSdW5zRGYubmV4dChuZXdSdW5zR3JpZERmKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc3RvcmUuZXhwZXJpbWVudFJ1bnNEZi5zdWJzY3JpYmUoKG5ld0RmKSA9PiB7XG4gICAgICB0aGlzLmhpc3RvcnlHcmlkLmRhdGFGcmFtZSA9IG5ld0RmO1xuICAgICAgdGhpcy5oaXN0b3J5RmlsdGVycy5kYXRhRnJhbWUgPSBuZXdEZjtcbiAgICB9KTtcblxuICAgIHRoaXMub25IaXN0b3JpY2FsUnVuQ2hvc2VuLnN1YnNjcmliZSgodmFsKSA9PiB7XG4gICAgICBpZiAodmFsKVxuICAgICAgICB0aGlzLl92aXNpYmxlSW5wdXQudmFsdWUgPSB0aGlzLl9zdHJpbmdWYWx1ZUZ1bmModmFsKTtcbiAgICAgIGVsc2VcbiAgICAgICAgdGhpcy5fdmlzaWJsZUlucHV0LnZhbHVlID0gJyc7XG4gICAgfSk7XG5cbiAgICB0aGlzLnN0b3JlLmlzRXhwZXJpbWVudFJ1bnNMb2FkaW5nLnN1YnNjcmliZSgobmV3VmFsdWUpID0+IHtcbiAgICAgIHVpLnNldFVwZGF0ZUluZGljYXRvcih0aGlzLl92aXNpYmxlSW5wdXQucm9vdCwgbmV3VmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gVmlldmVyIG9iamVjdCBvZiBncmlkXG4gIGdldCBoaXN0b3J5R3JpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5faGlzdG9yeUdyaWQ7XG4gIH1cblxuICAvLyBWaWV2ZXIgb2JqZWN0IG9mIGZpbHRlcnNcbiAgZ2V0IGhpc3RvcnlGaWx0ZXJzKCkge1xuICAgIHJldHVybiB0aGlzLl9oaXN0b3J5RmlsdGVycztcbiAgfVxuXG4gIC8vIEhUTUwgcm9vdCBvZiBjb21wb25lbnRcbiAgZ2V0IHJvb3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Zpc2libGVJbnB1dC5yb290O1xuICB9XG5cbiAgc2V0IHZhbHVlKHZhbDogREcuRnVuY0NhbGwgfCBudWxsKSB7XG4gICAgaWYgKHZhbClcbiAgICAgIHRoaXMuX3Zpc2libGVJbnB1dC52YWx1ZSA9IHRoaXMuX3N0cmluZ1ZhbHVlRnVuYyh2YWwpO1xuICAgIGVsc2VcbiAgICAgIHRoaXMuX3Zpc2libGVJbnB1dC52YWx1ZSA9ICcnO1xuICB9XG5cbiAgZ2V0IHZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLm9uSGlzdG9yaWNhbFJ1bkNob3Nlbi52YWx1ZTtcbiAgfVxuXG4gIHNldCBzdHJpbmdWYWx1ZSh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuX3Zpc2libGVJbnB1dC52YWx1ZSA9IHZhbDtcbiAgfVxuXG4gIGdldCBzdHJpbmdWYWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZUlucHV0LnZhbHVlO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZUxvYWRlckV4cFJ1bnMobmV3U3RhdGU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnN0b3JlLmlzRXhwZXJpbWVudFJ1bnNMb2FkaW5nLm5leHQobmV3U3RhdGUpO1xuICB9XG59XG4iXX0=
@@ -1,5 +1,6 @@
1
1
  import * as DG from 'datagrok-api/dg';
2
2
  import { Subject } from 'rxjs';
3
+ import '../../css/history-panel.css';
3
4
  export declare class HistoryPanel {
4
5
  private func;
5
6
  onRunChosen: Subject<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"history-panel.d.ts","sourceRoot":"","sources":["history-panel.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAkB,OAAO,EAAC,MAAM,MAAM,CAAC;AAI9C,qBAAa,YAAY;IAyXrB,OAAO,CAAC,IAAI;IAvXP,WAAW,kBAAyB;IAGpC,mBAAmB,uBAA8B;IAGjD,gBAAgB,uBAA8B;IAG9C,wBAAwB,kBAAyB;IAGjD,qBAAqB,kBAAyB;IAG9C,YAAY,kBAAyB;IAE5C,OAAO,CAAC,KAAK,CAeX;IAEF,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,gBAAgB,CAAuB;IAExC,YAAY,gBAAuB;IACnC,WAAW,gBAAuB;IAClC,YAAY,gBAAuB;IACnC,eAAe,gBAAuB;IAE7C,UAAU,iBAAY;IACtB,MAAM,iBAAY;IAClB,SAAS,iBAAY;IACrB,IAAI,gBAID;IACH,UAAU,iBAAY;IAEtB,OAAO,CAAC,KAAK,CAOgC;IAE7C,OAAO,gBAAuB;IAC9B,aAAa,gBAAuB;IACpC,WAAW,gBAAuB;IAElC,gBAAgB;IAkEhB,wBAAwB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ;IAmC9C,mBAAmB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ;IAUzC,qBAAqB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ;IAgC3C,gBAAgB,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,EAAE;IAM1C,mBAAmB,CAAC,YAAY,EAAE,EAAE,CAAC,QAAQ,EAAE;IAM/C,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,EAAE;IAMlC,mBAAmB,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE;IA2C5C,iBAAiB,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE;IAyC1C,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE;gBAgEjC,IAAI,EAAE,EAAE,CAAC,IAAI;IA4EvB,IAAI,IAAI,mBAEP;CACF"}
1
+ {"version":3,"file":"history-panel.d.ts","sourceRoot":"","sources":["history-panel.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAkB,OAAO,EAAC,MAAM,MAAM,CAAC;AAG9C,OAAO,6BAA6B,CAAC;AAErC,qBAAa,YAAY;IAyXrB,OAAO,CAAC,IAAI;IAvXP,WAAW,kBAAyB;IAGpC,mBAAmB,uBAA8B;IAGjD,gBAAgB,uBAA8B;IAG9C,wBAAwB,kBAAyB;IAGjD,qBAAqB,kBAAyB;IAG9C,YAAY,kBAAyB;IAE5C,OAAO,CAAC,KAAK,CAeX;IAEF,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,gBAAgB,CAAuB;IAExC,YAAY,gBAAuB;IACnC,WAAW,gBAAuB;IAClC,YAAY,gBAAuB;IACnC,eAAe,gBAAuB;IAE7C,UAAU,iBAAY;IACtB,MAAM,iBAAY;IAClB,SAAS,iBAAY;IACrB,IAAI,gBAID;IACH,UAAU,iBAAY;IAEtB,OAAO,CAAC,KAAK,CAOgC;IAE7C,OAAO,gBAAuB;IAC9B,aAAa,gBAAuB;IACpC,WAAW,gBAAuB;IAElC,gBAAgB;IAkEhB,wBAAwB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ;IAmC9C,mBAAmB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ;IAUzC,qBAAqB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ;IAgC3C,gBAAgB,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,EAAE;IAM1C,mBAAmB,CAAC,YAAY,EAAE,EAAE,CAAC,QAAQ,EAAE;IAM/C,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,EAAE;IAMlC,mBAAmB,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE;IA2C5C,iBAAiB,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE;IAyC1C,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE;gBAgEjC,IAAI,EAAE,EAAE,CAAC,IAAI;IA4EvB,IAAI,IAAI,mBAEP;CACF"}
@@ -15,6 +15,7 @@ import dayjs from 'dayjs';
15
15
  import { BehaviorSubject, Subject } from 'rxjs';
16
16
  import { defaultUsersIds } from '../function-view';
17
17
  import { historyUtils } from '../history-utils';
18
+ import '../../css/history-panel.css';
18
19
  export class HistoryPanel {
19
20
  constructor(func) {
20
21
  this.func = func;
@@ -418,4 +419,4 @@ export class HistoryPanel {
418
419
  return this._root;
419
420
  }
420
421
  }
421
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS1wYW5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhpc3RvcnktcGFuZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsNEJBQTRCO0FBQzVCLE9BQU8sS0FBSyxJQUFJLE1BQU0sbUJBQW1CLENBQUM7QUFDMUMsT0FBTyxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0QyxPQUFPLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RDLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUMsZUFBZSxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRTlDLE1BQU0sT0FBTyxZQUFZO0lBd1h2QixZQUNVLElBQWE7UUFBYixTQUFJLEdBQUosSUFBSSxDQUFTO1FBeFh2QiwrREFBK0Q7UUFDeEQsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBRTNDLDhDQUE4QztRQUN2Qyx3QkFBbUIsR0FBRyxJQUFJLE9BQU8sRUFBZSxDQUFDO1FBRXhELDJDQUEyQztRQUNwQyxxQkFBZ0IsR0FBRyxJQUFJLE9BQU8sRUFBZSxDQUFDO1FBRXJELGtEQUFrRDtRQUMzQyw2QkFBd0IsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBRXhELCtDQUErQztRQUN4QywwQkFBcUIsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBRXJELG1DQUFtQztRQUM1QixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFFcEMsVUFBSyxHQUFHO1lBQ2QsZ0JBQWdCLEVBQUUsRUFBQyxJQUFJLEVBQUUsRUFBRSxFQUkxQjtZQUNELE9BQU8sRUFBRSxJQUFJLE9BQU8sRUFBaUI7WUFFckMsTUFBTSxFQUFFLElBQUksZUFBZSxDQUFn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QyxFQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBQUEsQ0FBQztJQStFRixJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2RlZmF1bHRVc2Vyc0lkc30gZnJvbSAnLi4vZnVuY3Rpb24tdmlldyc7XG5pbXBvcnQge2hpc3RvcnlVdGlsc30gZnJvbSAnLi4vaGlzdG9yeS11dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBIaXN0b3J5UGFuZWwge1xuICAvLyBFbWl0dGVkIHdoZW4gRnVuY0NhbGwgc2hvdWxkIGlzIGNob3Nlbi4gQ29udGFpbnMgRnVuY0NhbGwgSURcbiAgcHVibGljIG9uUnVuQ2hvc2VuID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuXG4gIC8vIEVtaXR0ZWQgd2hlbiBGdW5jQ2FsbCBpcyBhZGRlZCB0byBmYXZvcml0ZXNcbiAgcHVibGljIG9uUnVuQWRkVG9GYXZvcml0ZXMgPSBuZXcgU3ViamVjdDxERy5GdW5jQ2FsbD4oKTtcblxuICAvLyBFbWl0dGVkIHdoZW4gRnVuY0NhbGwgaXMgYWRkZWQgdG8gc2hhcmVkXG4gIHB1YmxpYyBvblJ1bkFkZFRvU2hhcmVkID0gbmV3IFN1YmplY3Q8REcuRnVuY0NhbGw+KCk7XG5cbiAgLy8gRW1pdHRlZCB3aGVuIEZ1bmNDYWxsIGlzIHJlbW92ZWQgZnJvbSBmYXZvcml0ZXNcbiAgcHVibGljIG9uUnVuUmVtb3ZlRnJvbUZhdm9yaXRlcyA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcblxuICAvLyBFbWl0dGVkIHdoZW4gRnVuY0NhbGwgaXMgcmVtb3ZlZCBmcm9tIHNoYXJlZFxuICBwdWJsaWMgb25SdW5SZW1vdmVGcm9tU2hhcmVkID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuXG4gIC8vIEVtaXR0ZWQgd2hlbiBGdW5jQ2FsbCBpcyBkZWxldGVkXG4gIHB1YmxpYyBvblJ1bkRlbGV0ZWQgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgcHJpdmF0ZSBzdG9yZSA9IHtcbiAgICBmaWx0ZXJpbmdPcHRpb25zOiB7dGV4dDogJyd9IGFzIHtcbiAgICAgIHRleHQ6IHN0cmluZyxcbiAgICAgIGF1dGhvcj86IERHLlVzZXIsXG4gICAgICBzdGFydGVkQWZ0ZXI/OiBkYXlqcy5EYXlqcyxcbiAgICB9LFxuICAgIGFsbFJ1bnM6IG5ldyBTdWJqZWN0PERHLkZ1bmNDYWxsW10+KCksXG5cbiAgICBteVJ1bnM6IG5ldyBCZWhhdmlvclN1YmplY3Q8REcuRnVuY0NhbGxbXT4oW10pLFxuICAgIGZhdm9yaXRlUnVuczogbmV3IEJlaGF2aW9yU3ViamVjdDxERy5GdW5jQ2FsbFtdPihbXSksXG4gICAgc2hhcmVkUnVuczogbmV3IEJlaGF2aW9yU3ViamVjdDxERy5GdW5jQ2FsbFtdPihbXSksXG5cbiAgICBmaWx0ZXJlZE15UnVuczogbmV3IEJlaGF2aW9yU3ViamVjdDxERy5GdW5jQ2FsbFtdPihbXSksXG4gICAgZmlsdGVyZWRGYXZvcml0ZVJ1bnM6IG5ldyBCZWhhdmlvclN1YmplY3Q8REcuRnVuY0NhbGxbXT4oW10pLFxuICAgIGZpbHRlcmVkU2hhcmVkUnVuczogbmV3IEJlaGF2aW9yU3ViamVjdDxERy5GdW5jQ2FsbFtdPihbXSksXG4gIH07XG5cbiAgcHJpdmF0ZSBteVJ1bnNGaWx0ZXIgPSBuZXcgU3ViamVjdDx0cnVlPigpO1xuICBwcml2YXRlIGZhdlJ1bnNGaWx0ZXIgPSBuZXcgU3ViamVjdDx0cnVlPigpO1xuICBwcml2YXRlIHNoYXJlZFJ1bnNGaWx0ZXIgPSBuZXcgU3ViamVjdDx0cnVlPigpO1xuXG4gIHB1YmxpYyBhbGxSdW5zRmV0Y2ggPSBuZXcgU3ViamVjdDx0cnVlPigpO1xuICBwdWJsaWMgbXlSdW5zRmV0Y2ggPSBuZXcgU3ViamVjdDx0cnVlPigpO1xuICBwdWJsaWMgZmF2UnVuc0ZldGNoID0gbmV3IFN1YmplY3Q8dHJ1ZT4oKTtcbiAgcHVibGljIHNoYXJlZFJ1bnNGZXRjaCA9IG5ldyBTdWJqZWN0PHRydWU+KCk7XG5cbiAgaGlzdG9yeVRhYiA9IHVpLmRpdigpO1xuICBmYXZUYWIgPSB1aS5kaXYoKTtcbiAgc2hhcmVkVGFiID0gdWkuZGl2KCk7XG4gIHRhYnMgPSB1aS50YWJDb250cm9sKHtcbiAgICAnSElTVE9SWSc6IHVpLmJveCh0aGlzLmhpc3RvcnlUYWIpLFxuICAgICdGQVZPUklURVMnOiB1aS5ib3godGhpcy5mYXZUYWIpLFxuICAgICdTSEFSRUQnOiB1aS5ib3godGhpcy5zaGFyZWRUYWIpLFxuICB9KTtcbiAgZmlsdGVyUGFuZSA9IHVpLmRpdigpO1xuXG4gIHByaXZhdGUgX3Jvb3QgPSB1aS5kaXZWKFtcbiAgICB1aS5wYW5lbChbXG4gICAgICB1aS5oMignSGlzdG9yeScpLFxuICAgICAgdGhpcy5maWx0ZXJQYW5lLFxuICAgIF0pLFxuICAgIHVpLmVsZW1lbnQoJ2RpdicsICdzcGxpdGJhci1ob3Jpem9udGFsJyksXG4gICAgdGhpcy50YWJzLnJvb3QsXG4gIF0sIHtzdHlsZToge3dpZHRoOiAnMTAwJScsIGhlaWdodDogJzEwMCUnfX0pO1xuXG4gIG15Q2FyZHMgPSBbXSBhcyBIVE1MRWxlbWVudFtdO1xuICBmYXZvcml0ZUNhcmRzID0gW10gYXMgSFRNTEVsZW1lbnRbXTtcbiAgc2hhcmVkQ2FyZHMgPSBbXSBhcyBIVE1MRWxlbWVudFtdO1xuXG4gIHVwZGF0ZUZpbHRlclBhbmUoKSB7XG4gICAgY29uc3QgYnVpbGRGaWx0ZXJQYW5lID0gKCkgPT4ge1xuICAgICAgcmV0dXJuIHVpLndhaXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBmaWx0ZXJpbmdUZXh0ID0gbmV3IFN1YmplY3QoKTtcblxuICAgICAgICBjb25zdCB0ZXh0SW5wdXQgPSB1aS5zdHJpbmdJbnB1dCgnU2VhcmNoJywgJycsICh2OiBzdHJpbmcpID0+IGZpbHRlcmluZ1RleHQubmV4dCh2KSk7XG4gICAgICAgIHRleHRJbnB1dC5yb290LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgIERHLmRlYm91bmNlKGZpbHRlcmluZ1RleHQuYXNPYnNlcnZhYmxlKCksIDYwMCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnN0b3JlLmZpbHRlcmluZ09wdGlvbnMudGV4dCA9IHRleHRJbnB1dC5zdHJpbmdWYWx1ZTtcbiAgICAgICAgICB0aGlzLmZhdlJ1bnNGaWx0ZXIubmV4dCgpO1xuICAgICAgICAgIHRoaXMuc2hhcmVkUnVuc0ZpbHRlci5uZXh0KCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGRhdGVJbnB1dCA9IHVpLmRhdGVJbnB1dCgnU3RhcnRlZCBhZnRlcicsIGRheWpzKCkuc3VidHJhY3QoMSwgJ3dlZWsnKSwgKHY6IGRheWpzLkRheWpzKSA9PiB7XG4gICAgICAgICAgdGhpcy5zdG9yZS5maWx0ZXJpbmdPcHRpb25zLnN0YXJ0ZWRBZnRlciA9IHY7XG4gICAgICAgICAgdGhpcy5teVJ1bnNGaWx0ZXIubmV4dCgpO1xuICAgICAgICAgIHRoaXMuZmF2UnVuc0ZpbHRlci5uZXh0KCk7XG4gICAgICAgICAgdGhpcy5zaGFyZWRSdW5zRmlsdGVyLm5leHQoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgZGVmYXVsdFVzZXJzID0gT2JqZWN0LnZhbHVlcyhkZWZhdWx0VXNlcnNJZHMpO1xuICAgICAgICBjb25zdCBhbGxVc2VycyA9IGF3YWl0IGdyb2suZGFwaS51c2Vycy5saXN0KCkgYXMgREcuVXNlcltdO1xuICAgICAgICBjb25zdCBmaWx0ZXJlZFVzZXJzID0gYWxsVXNlcnMuZmlsdGVyKCh1c2VyKSA9PiAhZGVmYXVsdFVzZXJzLmluY2x1ZGVzKHVzZXIuaWQpKTtcblxuICAgICAgICBjb25zdCBhdXRob3JJbnB1dCA9IHVpLmNob2ljZUlucHV0PERHLlVzZXIgfCBzdHJpbmc+KCdBdXRob3InLCAnQW55b25lJywgWydBbnlvbmUnLCAuLi5maWx0ZXJlZFVzZXJzXSwgKHY6IERHLlVzZXIgfCBzdHJpbmcpID0+IHtcbiAgICAgICAgICB0aGlzLnN0b3JlLmZpbHRlcmluZ09wdGlvbnMuYXV0aG9yID0gKHYgPT09ICdBbnlvbmUnKSA/IHVuZGVmaW5lZCA6IHYgYXMgREcuVXNlcjtcbiAgICAgICAgICB0aGlzLnNoYXJlZFJ1bnNGaWx0ZXIubmV4dCgpO1xuICAgICAgICB9KTtcbiAgICAgICAgYXV0aG9ySW5wdXQucm9vdC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuXG4gICAgICAgIGRhdGVJbnB1dC5hZGRQYXR0ZXJuTWVudSgnZGF0ZXRpbWUnKTtcbiAgICAgICAgY29uc3QgZm9ybSA9IHVpLmRpdlYoW1xuICAgICAgICAgIHRleHRJbnB1dCxcbiAgICAgICAgICBkYXRlSW5wdXQsXG4gICAgICAgICAgYXV0aG9ySW5wdXQsXG4gICAgICAgIF0sICd1aS1mb3JtLWNvbmRlbnNlZCB1aS1mb3JtJyk7XG4gICAgICAgIGZvcm0uc3R5bGUucGFkZGluZyA9ICcwcHgnO1xuXG4gICAgICAgIHRoaXMudGFicy5vblRhYkNoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBjdXJyZW50VGFiTmFtZSA9IHRoaXMudGFicy5jdXJyZW50UGFuZS5uYW1lO1xuICAgICAgICAgIGlmIChjdXJyZW50VGFiTmFtZSA9PT0gJ0hJU1RPUlknKSB7XG4gICAgICAgICAgICB0ZXh0SW5wdXQucm9vdC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAgICAgZGF0ZUlucHV0LnJvb3Quc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2Rpc3BsYXknKTtcbiAgICAgICAgICAgIGF1dGhvcklucHV0LnJvb3Quc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGN1cnJlbnRUYWJOYW1lID09PSAnRkFWT1JJVEVTJykge1xuICAgICAgICAgICAgdGV4dElucHV0LnJvb3Quc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2Rpc3BsYXknKTtcbiAgICAgICAgICAgIGRhdGVJbnB1dC5yb290LnN0eWxlLnJlbW92ZVByb3BlcnR5KCdkaXNwbGF5Jyk7XG4gICAgICAgICAgICBhdXRob3JJbnB1dC5yb290LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChjdXJyZW50VGFiTmFtZSA9PT0gJ1NIQVJFRCcpIHtcbiAgICAgICAgICAgIHRleHRJbnB1dC5yb290LnN0eWxlLnJlbW92ZVByb3BlcnR5KCdkaXNwbGF5Jyk7XG4gICAgICAgICAgICBkYXRlSW5wdXQucm9vdC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnZGlzcGxheScpO1xuICAgICAgICAgICAgYXV0aG9ySW5wdXQucm9vdC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnZGlzcGxheScpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGZvcm07XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgbmV3RmlsdGVyUGFuZSA9IGJ1aWxkRmlsdGVyUGFuZSgpO1xuICAgIHRoaXMuZmlsdGVyUGFuZS5yZXBsYWNlV2l0aChuZXdGaWx0ZXJQYW5lKTtcbiAgICB0aGlzLmZpbHRlclBhbmUgPSBuZXdGaWx0ZXJQYW5lO1xuICB9O1xuXG4gIHNob3dBZGRUb0Zhdm9yaXRlc0RpYWxvZyhmdW5jQ2FsbDogREcuRnVuY0NhbGwpIHtcbiAgICBsZXQgdGl0bGUgPSBmdW5jQ2FsbC5vcHRpb25zWyd0aXRsZSddID8/ICcnO1xuICAgIGxldCBhbm5vdGF0aW9uID0gZnVuY0NhbGwub3B0aW9uc1snYW5ub3RhdGlvbiddID8/ICcnO1xuICAgIGNvbnN0IHRpdGxlSW5wdXQgPSB1aS5zdHJpbmdJbnB1dCgnVGl0bGUnLCB0aXRsZSwgKHM6IHN0cmluZykgPT4ge1xuICAgICAgdGl0bGUgPSBzO1xuICAgICAgaWYgKHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRpdGxlSW5wdXQuc2V0VG9vbHRpcCgnVGl0bGUgY2Fubm90IGJlIGVtcHR5Jyk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGl0bGVJbnB1dC5pbnB1dC5jbGFzc0xpc3QuYWRkKCdkNC1pbnZhbGlkJyksIDEwMCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aXRsZUlucHV0LnNldFRvb2x0aXAoJycpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRpdGxlSW5wdXQuaW5wdXQuY2xhc3NMaXN0LnJlbW92ZSgnZDQtaW52YWxpZCcpLCAxMDApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdWkuZGlhbG9nKHt0aXRsZTogJ0FkZCB0byBmYXZvcml0ZXMnfSlcbiAgICAgIC5hZGQodWkuZm9ybShbXG4gICAgICAgIHRpdGxlSW5wdXQsXG4gICAgICAgIHVpLnN0cmluZ0lucHV0KCdBbm5vdGF0aW9uJywgYW5ub3RhdGlvbiwgKHM6IHN0cmluZykgPT4geyBhbm5vdGF0aW9uID0gczsgfSksXG4gICAgICBdKSlcbiAgICAgIC5vbk9LKGFzeW5jICgpID0+IHtcbiAgICAgICAgaWYgKHRpdGxlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBmdW5jQ2FsbCA9IGF3YWl0IGhpc3RvcnlVdGlscy5sb2FkUnVuKGZ1bmNDYWxsLmlkKTtcbiAgICAgICAgICBmdW5jQ2FsbC5vcHRpb25zWyd0aXRsZSddID0gdGl0bGU7XG4gICAgICAgICAgZnVuY0NhbGwub3B0aW9uc1snYW5ub3RhdGlvbiddID0gYW5ub3RhdGlvbjtcblxuICAgICAgICAgIHRoaXMub25SdW5BZGRUb0Zhdm9yaXRlcy5uZXh0KGZ1bmNDYWxsKTtcbiAgICAgICAgICB0aGlzLm15UnVuc0ZldGNoLm5leHQoKTtcbiAgICAgICAgICB0aGlzLmZhdlJ1bnNGZXRjaC5uZXh0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZ3Jvay5zaGVsbC53YXJuaW5nKCdUaXRsZSBjYW5ub3QgYmUgZW1wdHknKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5zaG93KHtjZW50ZXI6IHRydWV9KTtcbiAgfTtcblxuICBzaG93RGVsZXRlUnVuRGlhbG9nKGZ1bmNDYWxsOiBERy5GdW5jQ2FsbCkge1xuICAgIHVpLmRpYWxvZyh7dGl0bGU6ICdEZWxldGUgcnVuJ30pXG4gICAgICAuYWRkKHVpLmRpdlRleHQoJ1RoZSBkZWxldGVkIHJ1biBpcyBpbXBvc3NpYmxlIHRvIHJlc3RvcmUuIEFyZSB5b3Ugc3VyZT8nKSlcbiAgICAgIC5vbk9LKGFzeW5jICgpID0+IHtcbiAgICAgICAgdGhpcy5vblJ1bkRlbGV0ZWQubmV4dChmdW5jQ2FsbC5pZCk7XG4gICAgICAgIHRoaXMubXlSdW5zRmV0Y2gubmV4dCgpO1xuICAgICAgfSlcbiAgICAgIC5zaG93KHtjZW50ZXI6IHRydWV9KTtcbiAgfTtcblxuICBzaG93QWRkVG9TaGFyZWREaWFsb2coZnVuY0NhbGw6IERHLkZ1bmNDYWxsKSB7XG4gICAgbGV0IHRpdGxlID0gZnVuY0NhbGwub3B0aW9uc1sndGl0bGUnXSA/PyAnJztcbiAgICBsZXQgYW5ub3RhdGlvbiA9IGZ1bmNDYWxsLm9wdGlvbnNbJ2Fubm90YXRpb24nXSA/PyAnJztcbiAgICBjb25zdCB0aXRsZUlucHV0ID0gdWkuc3RyaW5nSW5wdXQoJ1RpdGxlJywgdGl0bGUsIChzOiBzdHJpbmcpID0+IHtcbiAgICAgIHRpdGxlID0gcztcbiAgICAgIGlmIChzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aXRsZUlucHV0LnNldFRvb2x0aXAoJ1RpdGxlIGNhbm5vdCBiZSBlbXB0eScpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRpdGxlSW5wdXQuaW5wdXQuY2xhc3NMaXN0LmFkZCgnZDQtaW52YWxpZCcpLCAxMDApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGl0bGVJbnB1dC5zZXRUb29sdGlwKCcnKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aXRsZUlucHV0LmlucHV0LmNsYXNzTGlzdC5yZW1vdmUoJ2Q0LWludmFsaWQnKSwgMTAwKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHVpLmRpYWxvZyh7dGl0bGU6ICdBZGQgdG8gc2hhcmVkJ30pXG4gICAgICAuYWRkKHVpLmZvcm0oW1xuICAgICAgICB0aXRsZUlucHV0LFxuICAgICAgICB1aS5zdHJpbmdJbnB1dCgnQW5ub3RhdGlvbicsIGFubm90YXRpb24sIChzOiBzdHJpbmcpID0+IHsgYW5ub3RhdGlvbiA9IHM7IH0pLFxuICAgICAgXSkpXG4gICAgICAub25PSyhhc3luYyAoKSA9PiB7XG4gICAgICAgIGlmICh0aXRsZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgZnVuY0NhbGwgPSBhd2FpdCBoaXN0b3J5VXRpbHMubG9hZFJ1bihmdW5jQ2FsbC5pZCk7XG4gICAgICAgICAgZnVuY0NhbGwub3B0aW9uc1sndGl0bGUnXSA9IHRpdGxlO1xuICAgICAgICAgIGZ1bmNDYWxsLm9wdGlvbnNbJ2Fubm90YXRpb24nXSA9IGFubm90YXRpb247XG4gICAgICAgICAgdGhpcy5vblJ1bkFkZFRvU2hhcmVkLm5leHQoZnVuY0NhbGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGdyb2suc2hlbGwud2FybmluZygnVGl0bGUgY2Fubm90IGJlIGVtcHR5Jyk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuc2hvdyh7Y2VudGVyOiB0cnVlfSk7XG4gIH07XG5cbiAgdXBkYXRlU2hhcmVkUGFuZShzaGFyZWRSdW5zOiBERy5GdW5jQ2FsbFtdKSB7XG4gICAgY29uc3QgbmV3VGFiID0gKHNoYXJlZFJ1bnMubGVuZ3RoID4gMCkgPyB0aGlzLnJlbmRlclNoYXJlZENhcmRzKHNoYXJlZFJ1bnMpIDogdWkuZGl2VGV4dCgnTm8gcnVucyBhcmUgbWFya2VkIGFzIHNoYXJlZCcsICduby1lbGVtZW50cy1sYWJlbCcpO1xuICAgIHRoaXMuc2hhcmVkVGFiLnJlcGxhY2VXaXRoKG5ld1RhYik7XG4gICAgdGhpcy5zaGFyZWRUYWIgPSBuZXdUYWI7XG4gIH07XG5cbiAgdXBkYXRlRmF2b3JpdGVzUGFuZShmYXZvcml0ZVJ1bnM6IERHLkZ1bmNDYWxsW10pIHtcbiAgICBjb25zdCBuZXdUYWIgPSAoZmF2b3JpdGVSdW5zLmxlbmd0aCA+IDApID8gdGhpcy5yZW5kZXJGYXZvcml0ZUNhcmRzKGZhdm9yaXRlUnVucykgOiB1aS5kaXZUZXh0KCdObyBydW5zIGFyZSBtYXJrZWQgYXMgZmF2b3JpdGVzJywgJ25vLWVsZW1lbnRzLWxhYmVsJyk7XG4gICAgdGhpcy5mYXZUYWIucmVwbGFjZVdpdGgobmV3VGFiKTtcbiAgICB0aGlzLmZhdlRhYiA9IG5ld1RhYjtcbiAgfTtcblxuICB1cGRhdGVNeVBhbmUobXlSdW5zOiBERy5GdW5jQ2FsbFtdKSB7XG4gICAgY29uc3QgbmV3VGFiID0gKG15UnVucy5sZW5ndGggPiAwKSA/IHRoaXMucmVuZGVySGlzdG9yeUNhcmRzKG15UnVucykgOiB1aS5kaXZUZXh0KCdObyBydW5zIGFyZSBmb3VuZCBpbiBoaXN0b3J5JywgJ25vLWVsZW1lbnRzLWxhYmVsJyk7XG4gICAgdGhpcy5oaXN0b3J5VGFiLnJlcGxhY2VXaXRoKG5ld1RhYik7XG4gICAgdGhpcy5oaXN0b3J5VGFiID0gbmV3VGFiO1xuICB9O1xuXG4gIHJlbmRlckZhdm9yaXRlQ2FyZHMoZnVuY0NhbGxzOiBERy5GdW5jQ2FsbFtdKSB7XG4gICAgdGhpcy5mYXZvcml0ZUNhcmRzID0gZnVuY0NhbGxzLm1hcCgoZnVuY0NhbGwpID0+IHtcbiAgICAgIGNvbnN0IHVuc3Rhckljb24gPSB1aS5pY29uRkEoJ3N0YXInLCBhc3luYyAoZXYpID0+IHtcbiAgICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMub25SdW5SZW1vdmVGcm9tRmF2b3JpdGVzLm5leHQoZnVuY0NhbGwuaWQpO1xuICAgICAgfSwgJ1VuZmF2b3JpdGUgdGhlIHJ1bicpO1xuICAgICAgdW5zdGFySWNvbi5jbGFzc0xpc3QuYWRkKCdmYXMnKTtcblxuICAgICAgY29uc3Qgc2hhcmVJY29uID0gdWkuaWNvbkZBKCdleWUnLCBhc3luYyAoZXYpID0+IHtcbiAgICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuc2hvd0FkZFRvU2hhcmVkRGlhbG9nKGZ1bmNDYWxsKTtcbiAgICAgIH0sICdBZGQgdG8gc2hhcmVkJyk7XG4gICAgICBzaGFyZUljb24uY2xhc3NMaXN0LmFkZCgnZmFsJyk7XG5cbiAgICAgIGNvbnN0IGNhcmQgPSB1aS5kaXZIKFtcbiAgICAgICAgdWkuZGl2VihbXG4gICAgICAgICAgdWkuZGl2VGV4dChmdW5jQ2FsbC5vcHRpb25zWyd0aXRsZSddID8/ICdEZWZhdWx0IHRpdGxlJywgJ3RpdGxlJyksXG4gICAgICAgICAgLi4uKGZ1bmNDYWxsLm9wdGlvbnNbJ2Fubm90YXRpb24nXSkgPyBbdWkuZGl2VGV4dChmdW5jQ2FsbC5vcHRpb25zWydhbm5vdGF0aW9uJ10sICdkZXNjcmlwdGlvbicpXTogW10sXG4gICAgICAgICAgdWkuZGl2SChbdWkucmVuZGVyKGZ1bmNDYWxsLmF1dGhvciksIHVpLnNwYW4oW25ldyBEYXRlKGZ1bmNDYWxsLnN0YXJ0ZWQudG9TdHJpbmcoKSkudG9Mb2NhbGVTdHJpbmcoJ2VuLXVzJywge21vbnRoOiAnc2hvcnQnLCBkYXk6ICdudW1lcmljJywgaG91cjogJ251bWVyaWMnLCBtaW51dGU6ICdudW1lcmljJ30pXSwgJ2RhdGUnKV0pLFxuICAgICAgICBdLCAnY3YtY2FyZC1jb250ZW50JyksXG4gICAgICAgIHVpLmRpdkgoW1xuICAgICAgICAgIHNoYXJlSWNvbixcbiAgICAgICAgICB1aS5pY29uRkEoJ3BlbicsIGFzeW5jIChldikgPT4ge1xuICAgICAgICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLnNob3dBZGRUb0Zhdm9yaXRlc0RpYWxvZyhmdW5jQ2FsbCk7XG4gICAgICAgICAgfSwgJ0VkaXQgcnVuIG1ldGFkYXRhJyksXG4gICAgICAgICAgdW5zdGFySWNvblxuICAgICAgICBdLCAnY3YtZnVuY2NhbGwtY2FyZC1pY29ucycpXG4gICAgICBdLCAnY3YtZnVuY2NhbGwtY2FyZCcpO1xuXG4gICAgICBjYXJkLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgYXN5bmMgKCkgPT4ge1xuICAgICAgICB0aGlzLm9uUnVuQ2hvc2VuLm5leHQoZnVuY0NhbGwuaWQpO1xuICAgICAgICBjYXJkLmNsYXNzTGlzdC5hZGQoJ2NsaWNrZWQnKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGNhcmQ7XG4gICAgfSk7XG5cbiAgICBjb25zdCBhbGxDYXJkcyA9IFsuLi50aGlzLm15Q2FyZHMsIC4uLnRoaXMuZmF2b3JpdGVDYXJkcywgLi4udGhpcy5zaGFyZWRDYXJkc107XG4gICAgYWxsQ2FyZHMuZm9yRWFjaCgoY2FyZCkgPT4gY2FyZC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IGFsbENhcmRzLmZvckVhY2goKGMpID0+IGMuY2xhc3NMaXN0LnJlbW92ZSgnY2xpY2tlZCcpKSkpO1xuXG4gICAgcmV0dXJuIHVpLmRpdlYodGhpcy5mYXZvcml0ZUNhcmRzKTtcbiAgfTtcblxuICByZW5kZXJTaGFyZWRDYXJkcyhmdW5jQ2FsbHM6IERHLkZ1bmNDYWxsW10pIHtcbiAgICB0aGlzLnNoYXJlZENhcmRzID0gZnVuY0NhbGxzLm1hcCgoZnVuY0NhbGwpID0+IHtcbiAgICAgIGNvbnN0IHVuc2hhcmVJY29uID0gdWkuaWNvbkZBKCdleWUtc2xhc2gnLCBhc3luYyAoZXYpID0+IHtcbiAgICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMub25SdW5SZW1vdmVGcm9tU2hhcmVkLm5leHQoZnVuY0NhbGwuaWQpO1xuICAgICAgfSwgJ0hpZGUgZnJvbSBzaGFyZWQnKTtcblxuICAgICAgY29uc3QgY2FyZCA9IHVpLmRpdkgoW1xuICAgICAgICB1aS5kaXZWKFtcbiAgICAgICAgICB1aS5kaXZUZXh0KGZ1bmNDYWxsLm9wdGlvbnNbJ3RpdGxlJ10gPz8gJ0RlZmF1bHQgdGl0bGUnLCAndGl0bGUnKSxcbiAgICAgICAgICAuLi4oZnVuY0NhbGwub3B0aW9uc1snYW5ub3RhdGlvbiddKSA/IFt1aS5kaXZUZXh0KGZ1bmNDYWxsLm9wdGlvbnNbJ2Fubm90YXRpb24nXSwgJ2Rlc2NyaXB0aW9uJyldOiBbXSxcbiAgICAgICAgICB1aS5kaXZIKFt1aS5yZW5kZXIoZnVuY0NhbGwuYXV0aG9yKSwgdWkuc3BhbihbbmV3IERhdGUoZnVuY0NhbGwuc3RhcnRlZC50b1N0cmluZygpKS50b0xvY2FsZVN0cmluZygnZW4tdXMnLCB7bW9udGg6ICdzaG9ydCcsIGRheTogJ251bWVyaWMnLCBob3VyOiAnbnVtZXJpYycsIG1pbnV0ZTogJ251bWVyaWMnfSldLCAnZGF0ZScpXSksXG4gICAgICAgIF0sICdjdi1jYXJkLWNvbnRlbnQnKSxcbiAgICAgICAgdWkuZGl2SChbXG4gICAgICAgICAgdWkuaWNvbkZBKCdsaW5rJywgYXN5bmMgKGV2KSA9PiB7XG4gICAgICAgICAgICBldi5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIGF3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGAke3dpbmRvdy5sb2NhdGlvbi5vcmlnaW59JHt3aW5kb3cubG9jYXRpb24ucGF0aG5hbWV9P2lkPSR7ZnVuY0NhbGwuaWR9YCk7XG4gICAgICAgICAgfSwgJ0NvcHkgbGluayB0byB0aGUgcnVuJyksXG4gICAgICAgICAgLi4uKGZ1bmNDYWxsLmF1dGhvci5pZCA9PT0gZ3Jvay5zaGVsbC51c2VyLmlkKSA/IFtcbiAgICAgICAgICAgIHVpLmljb25GQSgncGVuJywgYXN5bmMgKGV2KSA9PiB7XG4gICAgICAgICAgICAgIGV2LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICB0aGlzLnNob3dBZGRUb1NoYXJlZERpYWxvZyhmdW5jQ2FsbCk7XG4gICAgICAgICAgICB9LCAnRWRpdCBydW4gbWV0YWRhdGEnKSxcbiAgICAgICAgICAgIHVuc2hhcmVJY29uXTogW10sXG4gICAgICAgIF0sICdjdi1mdW5jY2FsbC1jYXJkLWljb25zJylcbiAgICAgIF0sICdjdi1mdW5jY2FsbC1jYXJkJyk7XG5cbiAgICAgIGNhcmQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIHRoaXMub25SdW5DaG9zZW4ubmV4dChmdW5jQ2FsbC5pZCk7XG4gICAgICAgIGNhcmQuY2xhc3NMaXN0LmFkZCgnY2xpY2tlZCcpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gY2FyZDtcbiAgICB9KTtcblxuXG4gICAgY29uc3QgYWxsQ2FyZHMgPSBbLi4udGhpcy5teUNhcmRzLCAuLi50aGlzLmZhdm9yaXRlQ2FyZHMsIC4uLnRoaXMuc2hhcmVkQ2FyZHNdO1xuICAgIGFsbENhcmRzLmZvckVhY2goKGNhcmQpID0+IGNhcmQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiBhbGxDYXJkcy5mb3JFYWNoKChjKSA9PiBjLmNsYXNzTGlzdC5yZW1vdmUoJ2NsaWNrZWQnKSkpKTtcblxuICAgIHJldHVybiB1aS5kaXZWKHRoaXMuc2hhcmVkQ2FyZHMpO1xuICB9O1xuXG4gIHJlbmRlckhpc3RvcnlDYXJkcyhmdW5jQ2FsbHM6IERHLkZ1bmNDYWxsW10pIHtcbiAgICB0aGlzLm15Q2FyZHMgPSBmdW5jQ2FsbHMubWFwKChmdW5jQ2FsbCkgPT4ge1xuICAgICAgY29uc3QgaWNvbiA9IGZ1bmNDYWxsLmF1dGhvci5waWN0dXJlIGFzIEhUTUxFbGVtZW50O1xuICAgICAgaWNvbi5zdHlsZS53aWR0aCA9ICcyNXB4JztcbiAgICAgIGljb24uc3R5bGUuaGVpZ2h0ID0gJzI1cHgnO1xuICAgICAgaWNvbi5zdHlsZS5mb250U2l6ZSA9ICcyMHB4JztcbiAgICAgIGljb24uc3R5bGUubWFyZ2luUmlnaHQgPSAnM3B4JztcbiAgICAgIGljb24uc3R5bGUuYWxpZ25TZWxmID0gJ2NlbnRlcic7XG4gICAgICBjb25zdCB1c2VyTGFiZWwgPSB1aS5sYWJlbChmdW5jQ2FsbC5hdXRob3IuZnJpZW5kbHlOYW1lLCAnZDQtbGluay1sYWJlbCcpO1xuICAgICAgdWkuYmluZChmdW5jQ2FsbC5hdXRob3IsIGljb24pO1xuXG4gICAgICBjb25zdCBzaGFyZUljb24gPSB1aS5pY29uRkEoJ2V5ZScsIGFzeW5jIChldikgPT4ge1xuICAgICAgICBldi5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5zaG93QWRkVG9TaGFyZWREaWFsb2coZnVuY0NhbGwpO1xuICAgICAgfSwgJ0FkZCB0byBzaGFyZWQnKTtcbiAgICAgIHNoYXJlSWNvbi5jbGFzc0xpc3QuYWRkKCdmYWwnKTtcblxuICAgICAgY29uc3QgdW5zaGFyZUljb24gPSB1aS5pY29uRkEoJ2V5ZS1zbGFzaCcsIGFzeW5jIChldikgPT4ge1xuICAgICAgICBldi5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5vblJ1blJlbW92ZUZyb21TaGFyZWQubmV4dChmdW5jQ2FsbC5pZCk7XG4gICAgICB9LCAnSGlkZSBmcm9tIHNoYXJlZCcpO1xuXG4gICAgICBjb25zdCB1bnN0YXIgPSB1aS5pY29uRkEoJ3N0YXInLCBhc3luYyAoZXYpID0+IHtcbiAgICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMub25SdW5SZW1vdmVGcm9tRmF2b3JpdGVzLm5leHQoZnVuY0NhbGwuaWQpO1xuICAgICAgfSwgJ1VuZmF2b3JpdGUgdGhlIHJ1bicpO1xuICAgICAgdW5zdGFyLmNsYXNzTGlzdC5hZGQoJ2ZhcycpO1xuXG4gICAgICBjb25zdCBjYXJkID0gdWkuZGl2SChbXG4gICAgICAgIHVpLmRpdkgoW1xuICAgICAgICAgIGljb24sXG4gICAgICAgICAgdWkuZGl2VihbXG4gICAgICAgICAgICB1c2VyTGFiZWwsXG4gICAgICAgICAgICB1aS5zcGFuKFtuZXcgRGF0ZShmdW5jQ2FsbC5zdGFydGVkLnRvU3RyaW5nKCkpLnRvTG9jYWxlU3RyaW5nKCdlbi11cycsIHttb250aDogJ3Nob3J0JywgZGF5OiAnbnVtZXJpYycsIGhvdXI6ICdudW1lcmljJywgbWludXRlOiAnbnVtZXJpYyd9KV0pXG4gICAgICAgICAgXSwgJ2N2LWNhcmQtY29udGVudCcpLFxuICAgICAgICBdKSxcbiAgICAgICAgdWkuZGl2SChbXG4gICAgICAgICAgLi4uKGZ1bmNDYWxsLm9wdGlvbnNbJ2lzU2hhcmVkJ10pID8gW3Vuc2hhcmVJY29uXTogW3NoYXJlSWNvbl0sXG4gICAgICAgICAgLi4uKGZ1bmNDYWxsLm9wdGlvbnNbJ2lzRmF2b3JpdGUnXSkgPyBbdW5zdGFyXSA6IFt1aS5pY29uRkEoJ3N0YXInLCBhc3luYyAoZXYpID0+IHtcbiAgICAgICAgICAgIGV2LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5zaG93QWRkVG9GYXZvcml0ZXNEaWFsb2coZnVuY0NhbGwpO1xuICAgICAgICAgIH0sICdBZGQgdG8gZmF2b3JpdGVzJyldLFxuICAgICAgICAgIHVpLmljb25GQSgndHJhc2gtYWx0JywgYXN5bmMgKGV2KSA9PiB7XG4gICAgICAgICAgICBldi5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMuc2hvd0RlbGV0ZVJ1bkRpYWxvZyhmdW5jQ2FsbCk7XG4gICAgICAgICAgfSwgJ0RlbGV0ZSB0aGUgcnVuJyksXG4gICAgICAgIF0sICdjdi1mdW5jY2FsbC1jYXJkLWljb25zJylcbiAgICAgIF0sICdjdi1mdW5jY2FsbC1jYXJkJyk7XG5cbiAgICAgIGNhcmQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIHRoaXMub25SdW5DaG9zZW4ubmV4dChmdW5jQ2FsbC5pZCk7XG4gICAgICAgIGNhcmQuY2xhc3NMaXN0LmFkZCgnY2xpY2tlZCcpO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBjYXJkO1xuICAgIH0pO1xuXG4gICAgY29uc3QgYWxsQ2FyZHMgPSBbLi4udGhpcy5teUNhcmRzLCAuLi50aGlzLmZhdm9yaXRlQ2FyZHMsIC4uLnRoaXMuc2hhcmVkQ2FyZHNdO1xuICAgIGFsbENhcmRzLmZvckVhY2goKGNhcmQpID0+IGNhcmQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiBhbGxDYXJkcy5mb3JFYWNoKChjKSA9PiBjLmNsYXNzTGlzdC5yZW1vdmUoJ2NsaWNrZWQnKSkpKTtcblxuICAgIHJldHVybiB1aS5kaXZWKHRoaXMubXlDYXJkcywge3N0eWxlOiB7aGVpZ2h0OiAnMTAwJSd9fSk7XG4gIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmdW5jOiBERy5GdW5jXG4gICkge1xuICAgIHRoaXMudGFicy5yb290LnN0eWxlLndpZHRoID0gJzEwMCUnO1xuICAgIHRoaXMudGFicy5yb290LnN0eWxlLmhlaWdodCA9ICcxMDAlJztcbiAgICB0aGlzLnRhYnMuaGVhZGVyLnN0eWxlLmp1c3RpZnlDb250ZW50ID0gJ3NwYWNlLWJldHdlZW4nO1xuXG4gICAgdGhpcy5zdG9yZS5teVJ1bnMuc3Vic2NyaWJlKChteVJ1bnMpID0+IHRoaXMuc3RvcmUuZmlsdGVyZWRNeVJ1bnMubmV4dChteVJ1bnMpKTtcbiAgICB0aGlzLnN0b3JlLmZhdm9yaXRlUnVucy5zdWJzY3JpYmUoKGZhdm9yaXRlUnVucykgPT4gdGhpcy5zdG9yZS5maWx0ZXJlZEZhdm9yaXRlUnVucy5uZXh0KGZhdm9yaXRlUnVucykpO1xuICAgIHRoaXMuc3RvcmUuc2hhcmVkUnVucy5zdWJzY3JpYmUoKHNoYXJlZFJ1bnMpID0+IHRoaXMuc3RvcmUuZmlsdGVyZWRTaGFyZWRSdW5zLm5leHQoc2hhcmVkUnVucykpO1xuXG4gICAgdGhpcy5zdG9yZS5maWx0ZXJlZE15UnVucy5zdWJzY3JpYmUoKG15UnVucykgPT4gdGhpcy51cGRhdGVNeVBhbmUobXlSdW5zKSk7XG4gICAgdGhpcy5zdG9yZS5maWx0ZXJlZEZhdm9yaXRlUnVucy5zdWJzY3JpYmUoKG5ld0Zhdm9yaXRlUnVucykgPT4gdGhpcy51cGRhdGVGYXZvcml0ZXNQYW5lKG5ld0Zhdm9yaXRlUnVucykpO1xuICAgIHRoaXMuc3RvcmUuZmlsdGVyZWRTaGFyZWRSdW5zLnN1YnNjcmliZSgoc2hhcmVkUnVucykgPT4gdGhpcy51cGRhdGVTaGFyZWRQYW5lKHNoYXJlZFJ1bnMpKTtcblxuICAgIHRoaXMubXlSdW5zRmlsdGVyLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCBmaWx0ZXJlZE15UnVucyA9IHRoaXMuc3RvcmUubXlSdW5zLnZhbHVlLmZpbHRlcigodmFsKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0YXJ0ZWRBZnRlciA9ICh0aGlzLnN0b3JlLmZpbHRlcmluZ09wdGlvbnMuc3RhcnRlZEFmdGVyID8gdmFsLnN0YXJ0ZWQgPiB0aGlzLnN0b3JlLmZpbHRlcmluZ09wdGlvbnMuc3RhcnRlZEFmdGVyIDogdHJ1ZSk7XG5cbiAgICAgICAgcmV0dXJuIHN0YXJ0ZWRBZnRlcjtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5zdG9yZS5maWx0ZXJlZE15UnVucy5uZXh0KGZpbHRlcmVkTXlSdW5zKTtcbiAgICB9KTtcblxuICAgIHRoaXMuZmF2UnVuc0ZpbHRlci5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3QgZmlsdGVyZWRGYXZSdW5zID0gdGhpcy5zdG9yZS5mYXZvcml0ZVJ1bnMudmFsdWUuZmlsdGVyKCh2YWwpID0+IHtcbiAgICAgICAgY29uc3Qgc3RhcnRlZEFmdGVyID0gKHRoaXMuc3RvcmUuZmlsdGVyaW5nT3B0aW9ucy5zdGFydGVkQWZ0ZXIgPyB2YWwuc3RhcnRlZCA+IHRoaXMuc3RvcmUuZmlsdGVyaW5nT3B0aW9ucy5zdGFydGVkQWZ0ZXIgOiB0cnVlKTtcbiAgICAgICAgY29uc3QgdGl0bGVDb250YWluc1RleHQgPSAodGhpcy5zdG9yZS5maWx0ZXJpbmdPcHRpb25zLnRleHQubGVuZ3RoICYmICEhdmFsLm9wdGlvbnNbJ3RpdGxlJ10pID8gdmFsLm9wdGlvbnNbJ3RpdGxlJ10uaW5jbHVkZXModGhpcy5zdG9yZS5maWx0ZXJpbmdPcHRpb25zLnRleHQpOiB0cnVlO1xuICAgICAgICBjb25zdCBkZXNjQ29udGFpbnNUZXh0ID0gKHRoaXMuc3RvcmUuZmlsdGVyaW5nT3B0aW9ucy50ZXh0Lmxlbmd0aCAmJiAhIXZhbC5vcHRpb25zWydkZXNjcmlwdGlvbiddKSA/IHZhbC5vcHRpb25zWydkZXNjcmlwdGlvbiddLmluY2x1ZGVzKHRoaXMuc3RvcmUuZmlsdGVyaW5nT3B0aW9ucy50ZXh0KTogdHJ1ZTtcblxuICAgICAgICByZXR1cm4gKHRpdGxlQ29udGFpbnNUZXh0IHx8IGRlc2NDb250YWluc1RleHQpICYmIHN0YXJ0ZWRBZnRlcjtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5zdG9yZS5maWx0ZXJlZEZhdm9yaXRlUnVucy5uZXh0KGZpbHRlcmVkRmF2UnVucyk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnNoYXJlZFJ1bnNGaWx0ZXIuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGNvbnN0IGZpbHRlcmVkU2hhcmVkUnVucyA9IHRoaXMuc3RvcmUuc2hhcmVkUnVucy52YWx1ZS5maWx0ZXIoKHZhbCkgPT4ge1xuICAgICAgICBjb25zdCBpc0F1dGhvcmVkID0gdGhpcy5zdG9yZS5maWx0ZXJpbmdPcHRpb25zLmF1dGhvciA/IHZhbC5hdXRob3IuaWQgPT09IHRoaXMuc3RvcmUuZmlsdGVyaW5nT3B0aW9ucy5hdXRob3IuaWQ6IHRydWU7XG4gICAgICAgIGNvbnN0IHN0YXJ0ZWRBZnRlciA9ICh0aGlzLnN0b3JlLmZpbHRlcmluZ09wdGlvbnMuc3RhcnRlZEFmdGVyID8gdmFsLnN0YXJ0ZWQgPiB0aGlzLnN0b3JlLmZpbHRlcmluZ09wdGlvbnMuc3RhcnRlZEFmdGVyIDogdHJ1ZSk7XG4gICAgICAgIGNvbnN0IHRpdGxlQ29udGFpbnNUZXh0ID0gKHRoaXMuc3RvcmUuZmlsdGVyaW5nT3B0aW9ucy50ZXh0Lmxlbmd0aCAmJiAhIXZhbC5vcHRpb25zWyd0aXRsZSddKSA/IHZhbC5vcHRpb25zWyd0aXRsZSddLmluY2x1ZGVzKHRoaXMuc3RvcmUuZmlsdGVyaW5nT3B0aW9ucy50ZXh0KTogdHJ1ZTtcbiAgICAgICAgY29uc3QgZGVzY0NvbnRhaW5zVGV4dCA9ICh0aGlzLnN0b3JlLmZpbHRlcmluZ09wdGlvbnMudGV4dC5sZW5ndGggJiYgISF2YWwub3B0aW9uc1snZGVzY3JpcHRpb24nXSkgPyB2YWwub3B0aW9uc1snZGVzY3JpcHRpb24nXS5pbmNsdWRlcyh0aGlzLnN0b3JlLmZpbHRlcmluZ09wdGlvbnMudGV4dCk6IHRydWU7XG5cbiAgICAgICAgcmV0dXJuICh0aXRsZUNvbnRhaW5zVGV4dCB8fCBkZXNjQ29udGFpbnNUZXh0KSAmJiBzdGFydGVkQWZ0ZXIgJiYgaXNBdXRob3JlZDtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5zdG9yZS5maWx0ZXJlZFNoYXJlZFJ1bnMubmV4dChmaWx0ZXJlZFNoYXJlZFJ1bnMpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zdG9yZS5hbGxSdW5zLnN1YnNjcmliZSgoYWxsUnVucykgPT4ge1xuICAgICAgdGhpcy5zdG9yZS5teVJ1bnMubmV4dChhbGxSdW5zLmZpbHRlcigocnVuKSA9PiBydW4uYXV0aG9yLmlkID09PSBncm9rLnNoZWxsLnVzZXIuaWQpKTtcbiAgICAgIHRoaXMuc3RvcmUuZmF2b3JpdGVSdW5zLm5leHQoYWxsUnVucy5maWx0ZXIoKHJ1bikgPT4gcnVuLm9wdGlvbnNbJ2lzRmF2b3JpdGUnXSAmJiAhcnVuLm9wdGlvbnNbJ2lzSW1wb3J0ZWQnXSkpO1xuICAgICAgdGhpcy5zdG9yZS5zaGFyZWRSdW5zLm5leHQoYWxsUnVucy5maWx0ZXIoKHJ1bikgPT4gcnVuLm9wdGlvbnNbJ2lzU2hhcmVkJ10pKTtcbiAgICB9KTtcblxuICAgIHRoaXMuYWxsUnVuc0ZldGNoLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBhbGxSdW5zID0gKGF3YWl0IGhpc3RvcnlVdGlscy5wdWxsUnVuc0J5TmFtZSh0aGlzLmZ1bmMubmFtZSwgW10sIHtvcmRlcjogJ3N0YXJ0ZWQnfSwgWydzZXNzaW9uLnVzZXInLCAnb3B0aW9ucyddKSkucmV2ZXJzZSgpO1xuICAgICAgdGhpcy5zdG9yZS5hbGxSdW5zLm5leHQoYWxsUnVucyk7XG4gICAgfSk7XG5cbiAgICB0aGlzLm15UnVuc0ZldGNoLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBteVJ1bnMgPSAoYXdhaXQgaGlzdG9yeVV0aWxzLnB1bGxSdW5zQnlOYW1lKHRoaXMuZnVuYy5uYW1lLCBbe2F1dGhvcjogZ3Jvay5zaGVsbC51c2VyfV0sIHtvcmRlcjogJ3N0YXJ0ZWQnfSwgWydzZXNzaW9uLnVzZXInLCAnb3B0aW9ucyddKSkucmV2ZXJzZSgpO1xuICAgICAgdGhpcy5zdG9yZS5teVJ1bnMubmV4dChteVJ1bnMpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5mYXZSdW5zRmV0Y2guc3Vic2NyaWJlKGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG15UnVucyA9IChhd2FpdCBoaXN0b3J5VXRpbHMucHVsbFJ1bnNCeU5hbWUodGhpcy5mdW5jLm5hbWUsIFt7YXV0aG9yOiBncm9rLnNoZWxsLnVzZXJ9XSwge29yZGVyOiAnc3RhcnRlZCd9LCBbJ3Nlc3Npb24udXNlcicsICdvcHRpb25zJ10pKS5yZXZlcnNlKCk7XG4gICAgICB0aGlzLnN0b3JlLmZhdm9yaXRlUnVucy5uZXh0KG15UnVucy5maWx0ZXIoKHJ1bikgPT4gcnVuLm9wdGlvbnNbJ2lzRmF2b3JpdGUnXSAmJiAhcnVuLm9wdGlvbnNbJ2lzSW1wb3J0ZWQnXSkpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zaGFyZWRSdW5zRmV0Y2guc3Vic2NyaWJlKGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHNoYXJlZFJ1bnMgPSAoYXdhaXQgaGlzdG9yeVV0aWxzLnB1bGxSdW5zQnlOYW1lKHRoaXMuZnVuYy5uYW1lLCBbXSwge29yZGVyOiAnc3RhcnRlZCd9LCBbJ3Nlc3Npb24udXNlcicsICdvcHRpb25zJ10pKS5yZXZlcnNlKCk7XG4gICAgICB0aGlzLnN0b3JlLnNoYXJlZFJ1bnMubmV4dChzaGFyZWRSdW5zLmZpbHRlcigocnVuKSA9PiBydW4ub3B0aW9uc1snaXNTaGFyZWQnXSkpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5hbGxSdW5zRmV0Y2gubmV4dCgpO1xuICAgIHRoaXMudXBkYXRlRmlsdGVyUGFuZSgpO1xuICB9XG5cbiAgZ2V0IHJvb3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Jvb3Q7XG4gIH1cbn1cbiJdfQ==
422
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS1wYW5lbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhpc3RvcnktcGFuZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsNEJBQTRCO0FBQzVCLE9BQU8sS0FBSyxJQUFJLE1BQU0sbUJBQW1CLENBQUM7QUFDMUMsT0FBTyxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0QyxPQUFPLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RDLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUMsZUFBZSxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sNkJBQTZCLENBQUM7QUFFckMsTUFBTSxPQUFPLFlBQVk7SUF3WHZCLFlBQ1UsSUFBYTtRQUFiLFNBQUksR0FBSixJQUFJLENBQVM7UUF4WHZCLCtEQUErRDtRQUN4RCxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFFM0MsOENBQThDO1FBQ3ZDLHdCQUFtQixHQUFHLElBQUksT0FBTyxFQUFlLENBQUM7UUFFeEQsMkNBQTJDO1FBQ3BDLHFCQUFnQixHQUFHLElBQUksT0FBTyxFQUFlLENBQUM7UUFFckQsa0RBQWtEO1FBQzNDLDZCQUF3QixHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFFeEQsK0NBQStDO1FBQ3hDLDBCQUFxQixHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFFckQsbUNBQW1DO1FBQzVCLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUVwQyxVQUFLLEdBQUc7WUFDZCxnQkFBZ0IsRUFBRSxFQUFDLElBQUksRUFBRSxFQUFFLEVBSTFCO1lBQ0QsT0FBTyxFQUFFLElBQUksT0FBTyxFQUFpQjtZQUVyQyxN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RUFBQyxNQUFNLEVBQUUsTUFBTSxFQUFDLEVBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFBQSxDQUFDO0lBK0VGLElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuICovXG5pbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZGVmYXVsdFVzZXJzSWRzfSBmcm9tICcuLi9mdW5jdGlvbi12aWV3JztcbmltcG9ydCB7aGlzdG9yeVV0aWxzfSBmcm9tICcuLi9oaXN0b3J5LXV0aWxzJztcbmltcG9ydCAnLi4vLi4vY3NzL2hpc3RvcnktcGFuZWwuY3NzJztcblxuZXhwb3J0IGNsYXNzIEhpc3RvcnlQYW5lbCB7XG4gIC8vIEVtaXR0ZWQgd2hlbiBGdW5jQ2FsbCBzaG91bGQgaXMgY2hvc2VuLiBDb250YWlucyBGdW5jQ2FsbCBJRFxuICBwdWJsaWMgb25SdW5DaG9zZW4gPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgLy8gRW1pdHRlZCB3aGVuIEZ1bmNDYWxsIGlzIGFkZGVkIHRvIGZhdm9yaXRlc1xuICBwdWJsaWMgb25SdW5BZGRUb0Zhdm9yaXRlcyA9IG5ldyBTdWJqZWN0PERHLkZ1bmNDYWxsPigpO1xuXG4gIC8vIEVtaXR0ZWQgd2hlbiBGdW5jQ2FsbCBpcyBhZGRlZCB0byBzaGFyZWRcbiAgcHVibGljIG9uUnVuQWRkVG9TaGFyZWQgPSBuZXcgU3ViamVjdDxERy5GdW5jQ2FsbD4oKTtcblxuICAvLyBFbWl0dGVkIHdoZW4gRnVuY0NhbGwgaXMgcmVtb3ZlZCBmcm9tIGZhdm9yaXRlc1xuICBwdWJsaWMgb25SdW5SZW1vdmVGcm9tRmF2b3JpdGVzID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuXG4gIC8vIEVtaXR0ZWQgd2hlbiBGdW5jQ2FsbCBpcyByZW1vdmVkIGZyb20gc2hhcmVkXG4gIHB1YmxpYyBvblJ1blJlbW92ZUZyb21TaGFyZWQgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgLy8gRW1pdHRlZCB3aGVuIEZ1bmNDYWxsIGlzIGRlbGV0ZWRcbiAgcHVibGljIG9uUnVuRGVsZXRlZCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcblxuICBwcml2YXRlIHN0b3JlID0ge1xuICAgIGZpbHRlcmluZ09wdGlvbnM6IHt0ZXh0OiAnJ30gYXMge1xuICAgICAgdGV4dDogc3RyaW5nLFxuICAgICAgYXV0aG9yPzogREcuVXNlcixcbiAgICAgIHN0YXJ0ZWRBZnRlcj86IGRheWpzLkRheWpzLFxuICAgIH0sXG4gICAgYWxsUnVuczogbmV3IFN1YmplY3Q8REcuRnVuY0NhbGxbXT4oKSxcblxuICAgIG15UnVuczogbmV3IEJlaGF2aW9yU3ViamVjdDxERy5GdW5jQ2FsbFtdPihbXSksXG4gICAgZmF2b3JpdGVSdW5zOiBuZXcgQmVoYXZpb3JTdWJqZWN0PERHLkZ1bmNDYWxsW10+KFtdKSxcbiAgICBzaGFyZWRSdW5zOiBuZXcgQmVoYXZpb3JTdWJqZWN0PERHLkZ1bmNDYWxsW10+KFtdKSxcblxuICAgIGZpbHRlcmVkTXlSdW5zOiBuZXcgQmVoYXZpb3JTdWJqZWN0PERHLkZ1bmNDYWxsW10+KFtdKSxcbiAgICBmaWx0ZXJlZEZhdm9yaXRlUnVuczogbmV3IEJlaGF2aW9yU3ViamVjdDxERy5GdW5jQ2FsbFtdPihbXSksXG4gICAgZmlsdGVyZWRTaGFyZWRSdW5zOiBuZXcgQmVoYXZpb3JTdWJqZWN0PERHLkZ1bmNDYWxsW10+KFtdKSxcbiAgfTtcblxuICBwcml2YXRlIG15UnVuc0ZpbHRlciA9IG5ldyBTdWJqZWN0PHRydWU+KCk7XG4gIHByaXZhdGUgZmF2UnVuc0ZpbHRlciA9IG5ldyBTdWJqZWN0PHRydWU+KCk7XG4gIHByaXZhdGUgc2hhcmVkUnVuc0ZpbHRlciA9IG5ldyBTdWJqZWN0PHRydWU+KCk7XG5cbiAgcHVibGljIGFsbFJ1bnNGZXRjaCA9IG5ldyBTdWJqZWN0PHRydWU+KCk7XG4gIHB1YmxpYyBteVJ1bnNGZXRjaCA9IG5ldyBTdWJqZWN0PHRydWU+KCk7XG4gIHB1YmxpYyBmYXZSdW5zRmV0Y2ggPSBuZXcgU3ViamVjdDx0cnVlPigpO1xuICBwdWJsaWMgc2hhcmVkUnVuc0ZldGNoID0gbmV3IFN1YmplY3Q8dHJ1ZT4oKTtcblxuICBoaXN0b3J5VGFiID0gdWkuZGl2KCk7XG4gIGZhdlRhYiA9IHVpLmRpdigpO1xuICBzaGFyZWRUYWIgPSB1aS5kaXYoKTtcbiAgdGFicyA9IHVpLnRhYkNvbnRyb2woe1xuICAgICdISVNUT1JZJzogdWkuYm94KHRoaXMuaGlzdG9yeVRhYiksXG4gICAgJ0ZBVk9SSVRFUyc6IHVpLmJveCh0aGlzLmZhdlRhYiksXG4gICAgJ1NIQVJFRCc6IHVpLmJveCh0aGlzLnNoYXJlZFRhYiksXG4gIH0pO1xuICBmaWx0ZXJQYW5lID0gdWkuZGl2KCk7XG5cbiAgcHJpdmF0ZSBfcm9vdCA9IHVpLmRpdlYoW1xuICAgIHVpLnBhbmVsKFtcbiAgICAgIHVpLmgyKCdIaXN0b3J5JyksXG4gICAgICB0aGlzLmZpbHRlclBhbmUsXG4gICAgXSksXG4gICAgdWkuZWxlbWVudCgnZGl2JywgJ3NwbGl0YmFyLWhvcml6b250YWwnKSxcbiAgICB0aGlzLnRhYnMucm9vdCxcbiAgXSwge3N0eWxlOiB7d2lkdGg6ICcxMDAlJywgaGVpZ2h0OiAnMTAwJSd9fSk7XG5cbiAgbXlDYXJkcyA9IFtdIGFzIEhUTUxFbGVtZW50W107XG4gIGZhdm9yaXRlQ2FyZHMgPSBbXSBhcyBIVE1MRWxlbWVudFtdO1xuICBzaGFyZWRDYXJkcyA9IFtdIGFzIEhUTUxFbGVtZW50W107XG5cbiAgdXBkYXRlRmlsdGVyUGFuZSgpIHtcbiAgICBjb25zdCBidWlsZEZpbHRlclBhbmUgPSAoKSA9PiB7XG4gICAgICByZXR1cm4gdWkud2FpdChhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGZpbHRlcmluZ1RleHQgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgICAgIGNvbnN0IHRleHRJbnB1dCA9IHVpLnN0cmluZ0lucHV0KCdTZWFyY2gnLCAnJywgKHY6IHN0cmluZykgPT4gZmlsdGVyaW5nVGV4dC5uZXh0KHYpKTtcbiAgICAgICAgdGV4dElucHV0LnJvb3Quc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgREcuZGVib3VuY2UoZmlsdGVyaW5nVGV4dC5hc09ic2VydmFibGUoKSwgNjAwKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc3RvcmUuZmlsdGVyaW5nT3B0aW9ucy50ZXh0ID0gdGV4dElucHV0LnN0cmluZ1ZhbHVlO1xuICAgICAgICAgIHRoaXMuZmF2UnVuc0ZpbHRlci5uZXh0KCk7XG4gICAgICAgICAgdGhpcy5zaGFyZWRSdW5zRmlsdGVyLm5leHQoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgZGF0ZUlucHV0ID0gdWkuZGF0ZUlucHV0KCdTdGFydGVkIGFmdGVyJywgZGF5anMoKS5zdWJ0cmFjdCgxLCAnd2VlaycpLCAodjogZGF5anMuRGF5anMpID0+IHtcbiAgICAgICAgICB0aGlzLnN0b3JlLmZpbHRlcmluZ09wdGlvbnMuc3RhcnRlZEFmdGVyID0gdjtcbiAgICAgICAgICB0aGlzLm15UnVuc0ZpbHRlci5uZXh0KCk7XG4gICAgICAgICAgdGhpcy5mYXZSdW5zRmlsdGVyLm5leHQoKTtcbiAgICAgICAgICB0aGlzLnNoYXJlZFJ1bnNGaWx0ZXIubmV4dCgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBkZWZhdWx0VXNlcnMgPSBPYmplY3QudmFsdWVzKGRlZmF1bHRVc2Vyc0lkcyk7XG4gICAgICAgIGNvbnN0IGFsbFVzZXJzID0gYXdhaXQgZ3Jvay5kYXBpLnVzZXJzLmxpc3QoKSBhcyBERy5Vc2VyW107XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkVXNlcnMgPSBhbGxVc2Vycy5maWx0ZXIoKHVzZXIpID0+ICFkZWZhdWx0VXNlcnMuaW5jbHVkZXModXNlci5pZCkpO1xuXG4gICAgICAgIGNvbnN0IGF1dGhvcklucHV0ID0gdWkuY2hvaWNlSW5wdXQ8REcuVXNlciB8IHN0cmluZz4oJ0F1dGhvcicsICdBbnlvbmUnLCBbJ0FueW9uZScsIC4uLmZpbHRlcmVkVXNlcnNdLCAodjogREcuVXNlciB8IHN0cmluZykgPT4ge1xuICAgICAgICAgIHRoaXMuc3RvcmUuZmlsdGVyaW5nT3B0aW9ucy5hdXRob3IgPSAodiA9PT0gJ0FueW9uZScpID8gdW5kZWZpbmVkIDogdiBhcyBERy5Vc2VyO1xuICAgICAgICAgIHRoaXMuc2hhcmVkUnVuc0ZpbHRlci5uZXh0KCk7XG4gICAgICAgIH0pO1xuICAgICAgICBhdXRob3JJbnB1dC5yb290LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG5cbiAgICAgICAgZGF0ZUlucHV0LmFkZFBhdHRlcm5NZW51KCdkYXRldGltZScpO1xuICAgICAgICBjb25zdCBmb3JtID0gdWkuZGl2VihbXG4gICAgICAgICAgdGV4dElucHV0LFxuICAgICAgICAgIGRhdGVJbnB1dCxcbiAgICAgICAgICBhdXRob3JJbnB1dCxcbiAgICAgICAgXSwgJ3VpLWZvcm0tY29uZGVuc2VkIHVpLWZvcm0nKTtcbiAgICAgICAgZm9ybS5zdHlsZS5wYWRkaW5nID0gJzBweCc7XG5cbiAgICAgICAgdGhpcy50YWJzLm9uVGFiQ2hhbmdlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnRUYWJOYW1lID0gdGhpcy50YWJzLmN1cnJlbnRQYW5lLm5hbWU7XG4gICAgICAgICAgaWYgKGN1cnJlbnRUYWJOYW1lID09PSAnSElTVE9SWScpIHtcbiAgICAgICAgICAgIHRleHRJbnB1dC5yb290LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgICAgICBkYXRlSW5wdXQucm9vdC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnZGlzcGxheScpO1xuICAgICAgICAgICAgYXV0aG9ySW5wdXQucm9vdC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoY3VycmVudFRhYk5hbWUgPT09ICdGQVZPUklURVMnKSB7XG4gICAgICAgICAgICB0ZXh0SW5wdXQucm9vdC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnZGlzcGxheScpO1xuICAgICAgICAgICAgZGF0ZUlucHV0LnJvb3Quc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2Rpc3BsYXknKTtcbiAgICAgICAgICAgIGF1dGhvcklucHV0LnJvb3Quc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGN1cnJlbnRUYWJOYW1lID09PSAnU0hBUkVEJykge1xuICAgICAgICAgICAgdGV4dElucHV0LnJvb3Quc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2Rpc3BsYXknKTtcbiAgICAgICAgICAgIGRhdGVJbnB1dC5yb290LnN0eWxlLnJlbW92ZVByb3BlcnR5KCdkaXNwbGF5Jyk7XG4gICAgICAgICAgICBhdXRob3JJbnB1dC5yb290LnN0eWxlLnJlbW92ZVByb3BlcnR5KCdkaXNwbGF5Jyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZm9ybTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBuZXdGaWx0ZXJQYW5lID0gYnVpbGRGaWx0ZXJQYW5lKCk7XG4gICAgdGhpcy5maWx0ZXJQYW5lLnJlcGxhY2VXaXRoKG5ld0ZpbHRlclBhbmUpO1xuICAgIHRoaXMuZmlsdGVyUGFuZSA9IG5ld0ZpbHRlclBhbmU7XG4gIH07XG5cbiAgc2hvd0FkZFRvRmF2b3JpdGVzRGlhbG9nKGZ1bmNDYWxsOiBERy5GdW5jQ2FsbCkge1xuICAgIGxldCB0aXRsZSA9IGZ1bmNDYWxsLm9wdGlvbnNbJ3RpdGxlJ10gPz8gJyc7XG4gICAgbGV0IGFubm90YXRpb24gPSBmdW5jQ2FsbC5vcHRpb25zWydhbm5vdGF0aW9uJ10gPz8gJyc7XG4gICAgY29uc3QgdGl0bGVJbnB1dCA9IHVpLnN0cmluZ0lucHV0KCdUaXRsZScsIHRpdGxlLCAoczogc3RyaW5nKSA9PiB7XG4gICAgICB0aXRsZSA9IHM7XG4gICAgICBpZiAocy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGl0bGVJbnB1dC5zZXRUb29sdGlwKCdUaXRsZSBjYW5ub3QgYmUgZW1wdHknKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aXRsZUlucHV0LmlucHV0LmNsYXNzTGlzdC5hZGQoJ2Q0LWludmFsaWQnKSwgMTAwKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRpdGxlSW5wdXQuc2V0VG9vbHRpcCgnJyk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGl0bGVJbnB1dC5pbnB1dC5jbGFzc0xpc3QucmVtb3ZlKCdkNC1pbnZhbGlkJyksIDEwMCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB1aS5kaWFsb2coe3RpdGxlOiAnQWRkIHRvIGZhdm9yaXRlcyd9KVxuICAgICAgLmFkZCh1aS5mb3JtKFtcbiAgICAgICAgdGl0bGVJbnB1dCxcbiAgICAgICAgdWkuc3RyaW5nSW5wdXQoJ0Fubm90YXRpb24nLCBhbm5vdGF0aW9uLCAoczogc3RyaW5nKSA9PiB7IGFubm90YXRpb24gPSBzOyB9KSxcbiAgICAgIF0pKVxuICAgICAgLm9uT0soYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAodGl0bGUubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGZ1bmNDYWxsID0gYXdhaXQgaGlzdG9yeVV0aWxzLmxvYWRSdW4oZnVuY0NhbGwuaWQpO1xuICAgICAgICAgIGZ1bmNDYWxsLm9wdGlvbnNbJ3RpdGxlJ10gPSB0aXRsZTtcbiAgICAgICAgICBmdW5jQ2FsbC5vcHRpb25zWydhbm5vdGF0aW9uJ10gPSBhbm5vdGF0aW9uO1xuXG4gICAgICAgICAgdGhpcy5vblJ1bkFkZFRvRmF2b3JpdGVzLm5leHQoZnVuY0NhbGwpO1xuICAgICAgICAgIHRoaXMubXlSdW5zRmV0Y2gubmV4dCgpO1xuICAgICAgICAgIHRoaXMuZmF2UnVuc0ZldGNoLm5leHQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBncm9rLnNoZWxsLndhcm5pbmcoJ1RpdGxlIGNhbm5vdCBiZSBlbXB0eScpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLnNob3coe2NlbnRlcjogdHJ1ZX0pO1xuICB9O1xuXG4gIHNob3dEZWxldGVSdW5EaWFsb2coZnVuY0NhbGw6IERHLkZ1bmNDYWxsKSB7XG4gICAgdWkuZGlhbG9nKHt0aXRsZTogJ0RlbGV0ZSBydW4nfSlcbiAgICAgIC5hZGQodWkuZGl2VGV4dCgnVGhlIGRlbGV0ZWQgcnVuIGlzIGltcG9zc2libGUgdG8gcmVzdG9yZS4gQXJlIHlvdSBzdXJlPycpKVxuICAgICAgLm9uT0soYXN5bmMgKCkgPT4ge1xuICAgICAgICB0aGlzLm9uUnVuRGVsZXRlZC5uZXh0KGZ1bmNDYWxsLmlkKTtcbiAgICAgICAgdGhpcy5teVJ1bnNGZXRjaC5uZXh0KCk7XG4gICAgICB9KVxuICAgICAgLnNob3coe2NlbnRlcjogdHJ1ZX0pO1xuICB9O1xuXG4gIHNob3dBZGRUb1NoYXJlZERpYWxvZyhmdW5jQ2FsbDogREcuRnVuY0NhbGwpIHtcbiAgICBsZXQgdGl0bGUgPSBmdW5jQ2FsbC5vcHRpb25zWyd0aXRsZSddID8/ICcnO1xuICAgIGxldCBhbm5vdGF0aW9uID0gZnVuY0NhbGwub3B0aW9uc1snYW5ub3RhdGlvbiddID8/ICcnO1xuICAgIGNvbnN0IHRpdGxlSW5wdXQgPSB1aS5zdHJpbmdJbnB1dCgnVGl0bGUnLCB0aXRsZSwgKHM6IHN0cmluZykgPT4ge1xuICAgICAgdGl0bGUgPSBzO1xuICAgICAgaWYgKHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRpdGxlSW5wdXQuc2V0VG9vbHRpcCgnVGl0bGUgY2Fubm90IGJlIGVtcHR5Jyk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGl0bGVJbnB1dC5pbnB1dC5jbGFzc0xpc3QuYWRkKCdkNC1pbnZhbGlkJyksIDEwMCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aXRsZUlucHV0LnNldFRvb2x0aXAoJycpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRpdGxlSW5wdXQuaW5wdXQuY2xhc3NMaXN0LnJlbW92ZSgnZDQtaW52YWxpZCcpLCAxMDApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdWkuZGlhbG9nKHt0aXRsZTogJ0FkZCB0byBzaGFyZWQnfSlcbiAgICAgIC5hZGQodWkuZm9ybShbXG4gICAgICAgIHRpdGxlSW5wdXQsXG4gICAgICAgIHVpLnN0cmluZ0lucHV0KCdBbm5vdGF0aW9uJywgYW5ub3RhdGlvbiwgKHM6IHN0cmluZykgPT4geyBhbm5vdGF0aW9uID0gczsgfSksXG4gICAgICBdKSlcbiAgICAgIC5vbk9LKGFzeW5jICgpID0+IHtcbiAgICAgICAgaWYgKHRpdGxlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBmdW5jQ2FsbCA9IGF3YWl0IGhpc3RvcnlVdGlscy5sb2FkUnVuKGZ1bmNDYWxsLmlkKTtcbiAgICAgICAgICBmdW5jQ2FsbC5vcHRpb25zWyd0aXRsZSddID0gdGl0bGU7XG4gICAgICAgICAgZnVuY0NhbGwub3B0aW9uc1snYW5ub3RhdGlvbiddID0gYW5ub3RhdGlvbjtcbiAgICAgICAgICB0aGlzLm9uUnVuQWRkVG9TaGFyZWQubmV4dChmdW5jQ2FsbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZ3Jvay5zaGVsbC53YXJuaW5nKCdUaXRsZSBjYW5ub3QgYmUgZW1wdHknKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5zaG93KHtjZW50ZXI6IHRydWV9KTtcbiAgfTtcblxuICB1cGRhdGVTaGFyZWRQYW5lKHNoYXJlZFJ1bnM6IERHLkZ1bmNDYWxsW10pIHtcbiAgICBjb25zdCBuZXdUYWIgPSAoc2hhcmVkUnVucy5sZW5ndGggPiAwKSA/IHRoaXMucmVuZGVyU2hhcmVkQ2FyZHMoc2hhcmVkUnVucykgOiB1aS5kaXZUZXh0KCdObyBydW5zIGFyZSBtYXJrZWQgYXMgc2hhcmVkJywgJ25vLWVsZW1lbnRzLWxhYmVsJyk7XG4gICAgdGhpcy5zaGFyZWRUYWIucmVwbGFjZVdpdGgobmV3VGFiKTtcbiAgICB0aGlzLnNoYXJlZFRhYiA9IG5ld1RhYjtcbiAgfTtcblxuICB1cGRhdGVGYXZvcml0ZXNQYW5lKGZhdm9yaXRlUnVuczogREcuRnVuY0NhbGxbXSkge1xuICAgIGNvbnN0IG5ld1RhYiA9IChmYXZvcml0ZVJ1bnMubGVuZ3RoID4gMCkgPyB0aGlzLnJlbmRlckZhdm9yaXRlQ2FyZHMoZmF2b3JpdGVSdW5zKSA6IHVpLmRpdlRleHQoJ05vIHJ1bnMgYXJlIG1hcmtlZCBhcyBmYXZvcml0ZXMnLCAnbm8tZWxlbWVudHMtbGFiZWwnKTtcbiAgICB0aGlzLmZhdlRhYi5yZXBsYWNlV2l0aChuZXdUYWIpO1xuICAgIHRoaXMuZmF2VGFiID0gbmV3VGFiO1xuICB9O1xuXG4gIHVwZGF0ZU15UGFuZShteVJ1bnM6IERHLkZ1bmNDYWxsW10pIHtcbiAgICBjb25zdCBuZXdUYWIgPSAobXlSdW5zLmxlbmd0aCA+IDApID8gdGhpcy5yZW5kZXJIaXN0b3J5Q2FyZHMobXlSdW5zKSA6IHVpLmRpdlRleHQoJ05vIHJ1bnMgYXJlIGZvdW5kIGluIGhpc3RvcnknLCAnbm8tZWxlbWVudHMtbGFiZWwnKTtcbiAgICB0aGlzLmhpc3RvcnlUYWIucmVwbGFjZVdpdGgobmV3VGFiKTtcbiAgICB0aGlzLmhpc3RvcnlUYWIgPSBuZXdUYWI7XG4gIH07XG5cbiAgcmVuZGVyRmF2b3JpdGVDYXJkcyhmdW5jQ2FsbHM6IERHLkZ1bmNDYWxsW10pIHtcbiAgICB0aGlzLmZhdm9yaXRlQ2FyZHMgPSBmdW5jQ2FsbHMubWFwKChmdW5jQ2FsbCkgPT4ge1xuICAgICAgY29uc3QgdW5zdGFySWNvbiA9IHVpLmljb25GQSgnc3RhcicsIGFzeW5jIChldikgPT4ge1xuICAgICAgICBldi5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5vblJ1blJlbW92ZUZyb21GYXZvcml0ZXMubmV4dChmdW5jQ2FsbC5pZCk7XG4gICAgICB9LCAnVW5mYXZvcml0ZSB0aGUgcnVuJyk7XG4gICAgICB1bnN0YXJJY29uLmNsYXNzTGlzdC5hZGQoJ2ZhcycpO1xuXG4gICAgICBjb25zdCBzaGFyZUljb24gPSB1aS5pY29uRkEoJ2V5ZScsIGFzeW5jIChldikgPT4ge1xuICAgICAgICBldi5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5zaG93QWRkVG9TaGFyZWREaWFsb2coZnVuY0NhbGwpO1xuICAgICAgfSwgJ0FkZCB0byBzaGFyZWQnKTtcbiAgICAgIHNoYXJlSWNvbi5jbGFzc0xpc3QuYWRkKCdmYWwnKTtcblxuICAgICAgY29uc3QgY2FyZCA9IHVpLmRpdkgoW1xuICAgICAgICB1aS5kaXZWKFtcbiAgICAgICAgICB1aS5kaXZUZXh0KGZ1bmNDYWxsLm9wdGlvbnNbJ3RpdGxlJ10gPz8gJ0RlZmF1bHQgdGl0bGUnLCAndGl0bGUnKSxcbiAgICAgICAgICAuLi4oZnVuY0NhbGwub3B0aW9uc1snYW5ub3RhdGlvbiddKSA/IFt1aS5kaXZUZXh0KGZ1bmNDYWxsLm9wdGlvbnNbJ2Fubm90YXRpb24nXSwgJ2Rlc2NyaXB0aW9uJyldOiBbXSxcbiAgICAgICAgICB1aS5kaXZIKFt1aS5yZW5kZXIoZnVuY0NhbGwuYXV0aG9yKSwgdWkuc3BhbihbbmV3IERhdGUoZnVuY0NhbGwuc3RhcnRlZC50b1N0cmluZygpKS50b0xvY2FsZVN0cmluZygnZW4tdXMnLCB7bW9udGg6ICdzaG9ydCcsIGRheTogJ251bWVyaWMnLCBob3VyOiAnbnVtZXJpYycsIG1pbnV0ZTogJ251bWVyaWMnfSldLCAnZGF0ZScpXSksXG4gICAgICAgIF0sICdjdi1jYXJkLWNvbnRlbnQnKSxcbiAgICAgICAgdWkuZGl2SChbXG4gICAgICAgICAgc2hhcmVJY29uLFxuICAgICAgICAgIHVpLmljb25GQSgncGVuJywgYXN5bmMgKGV2KSA9PiB7XG4gICAgICAgICAgICBldi5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMuc2hvd0FkZFRvRmF2b3JpdGVzRGlhbG9nKGZ1bmNDYWxsKTtcbiAgICAgICAgICB9LCAnRWRpdCBydW4gbWV0YWRhdGEnKSxcbiAgICAgICAgICB1bnN0YXJJY29uXG4gICAgICAgIF0sICdjdi1mdW5jY2FsbC1jYXJkLWljb25zJylcbiAgICAgIF0sICdjdi1mdW5jY2FsbC1jYXJkJyk7XG5cbiAgICAgIGNhcmQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIHRoaXMub25SdW5DaG9zZW4ubmV4dChmdW5jQ2FsbC5pZCk7XG4gICAgICAgIGNhcmQuY2xhc3NMaXN0LmFkZCgnY2xpY2tlZCcpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gY2FyZDtcbiAgICB9KTtcblxuICAgIGNvbnN0IGFsbENhcmRzID0gWy4uLnRoaXMubXlDYXJkcywgLi4udGhpcy5mYXZvcml0ZUNhcmRzLCAuLi50aGlzLnNoYXJlZENhcmRzXTtcbiAgICBhbGxDYXJkcy5mb3JFYWNoKChjYXJkKSA9PiBjYXJkLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gYWxsQ2FyZHMuZm9yRWFjaCgoYykgPT4gYy5jbGFzc0xpc3QucmVtb3ZlKCdjbGlja2VkJykpKSk7XG5cbiAgICByZXR1cm4gdWkuZGl2Vih0aGlzLmZhdm9yaXRlQ2FyZHMpO1xuICB9O1xuXG4gIHJlbmRlclNoYXJlZENhcmRzKGZ1bmNDYWxsczogREcuRnVuY0NhbGxbXSkge1xuICAgIHRoaXMuc2hhcmVkQ2FyZHMgPSBmdW5jQ2FsbHMubWFwKChmdW5jQ2FsbCkgPT4ge1xuICAgICAgY29uc3QgdW5zaGFyZUljb24gPSB1aS5pY29uRkEoJ2V5ZS1zbGFzaCcsIGFzeW5jIChldikgPT4ge1xuICAgICAgICBldi5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5vblJ1blJlbW92ZUZyb21TaGFyZWQubmV4dChmdW5jQ2FsbC5pZCk7XG4gICAgICB9LCAnSGlkZSBmcm9tIHNoYXJlZCcpO1xuXG4gICAgICBjb25zdCBjYXJkID0gdWkuZGl2SChbXG4gICAgICAgIHVpLmRpdlYoW1xuICAgICAgICAgIHVpLmRpdlRleHQoZnVuY0NhbGwub3B0aW9uc1sndGl0bGUnXSA/PyAnRGVmYXVsdCB0aXRsZScsICd0aXRsZScpLFxuICAgICAgICAgIC4uLihmdW5jQ2FsbC5vcHRpb25zWydhbm5vdGF0aW9uJ10pID8gW3VpLmRpdlRleHQoZnVuY0NhbGwub3B0aW9uc1snYW5ub3RhdGlvbiddLCAnZGVzY3JpcHRpb24nKV06IFtdLFxuICAgICAgICAgIHVpLmRpdkgoW3VpLnJlbmRlcihmdW5jQ2FsbC5hdXRob3IpLCB1aS5zcGFuKFtuZXcgRGF0ZShmdW5jQ2FsbC5zdGFydGVkLnRvU3RyaW5nKCkpLnRvTG9jYWxlU3RyaW5nKCdlbi11cycsIHttb250aDogJ3Nob3J0JywgZGF5OiAnbnVtZXJpYycsIGhvdXI6ICdudW1lcmljJywgbWludXRlOiAnbnVtZXJpYyd9KV0sICdkYXRlJyldKSxcbiAgICAgICAgXSwgJ2N2LWNhcmQtY29udGVudCcpLFxuICAgICAgICB1aS5kaXZIKFtcbiAgICAgICAgICB1aS5pY29uRkEoJ2xpbmsnLCBhc3luYyAoZXYpID0+IHtcbiAgICAgICAgICAgIGV2LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgYXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoYCR7d2luZG93LmxvY2F0aW9uLm9yaWdpbn0ke3dpbmRvdy5sb2NhdGlvbi5wYXRobmFtZX0/aWQ9JHtmdW5jQ2FsbC5pZH1gKTtcbiAgICAgICAgICB9LCAnQ29weSBsaW5rIHRvIHRoZSBydW4nKSxcbiAgICAgICAgICAuLi4oZnVuY0NhbGwuYXV0aG9yLmlkID09PSBncm9rLnNoZWxsLnVzZXIuaWQpID8gW1xuICAgICAgICAgICAgdWkuaWNvbkZBKCdwZW4nLCBhc3luYyAoZXYpID0+IHtcbiAgICAgICAgICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgIHRoaXMuc2hvd0FkZFRvU2hhcmVkRGlhbG9nKGZ1bmNDYWxsKTtcbiAgICAgICAgICAgIH0sICdFZGl0IHJ1biBtZXRhZGF0YScpLFxuICAgICAgICAgICAgdW5zaGFyZUljb25dOiBbXSxcbiAgICAgICAgXSwgJ2N2LWZ1bmNjYWxsLWNhcmQtaWNvbnMnKVxuICAgICAgXSwgJ2N2LWZ1bmNjYWxsLWNhcmQnKTtcblxuICAgICAgY2FyZC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGFzeW5jICgpID0+IHtcbiAgICAgICAgdGhpcy5vblJ1bkNob3Nlbi5uZXh0KGZ1bmNDYWxsLmlkKTtcbiAgICAgICAgY2FyZC5jbGFzc0xpc3QuYWRkKCdjbGlja2VkJyk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBjYXJkO1xuICAgIH0pO1xuXG5cbiAgICBjb25zdCBhbGxDYXJkcyA9IFsuLi50aGlzLm15Q2FyZHMsIC4uLnRoaXMuZmF2b3JpdGVDYXJkcywgLi4udGhpcy5zaGFyZWRDYXJkc107XG4gICAgYWxsQ2FyZHMuZm9yRWFjaCgoY2FyZCkgPT4gY2FyZC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IGFsbENhcmRzLmZvckVhY2goKGMpID0+IGMuY2xhc3NMaXN0LnJlbW92ZSgnY2xpY2tlZCcpKSkpO1xuXG4gICAgcmV0dXJuIHVpLmRpdlYodGhpcy5zaGFyZWRDYXJkcyk7XG4gIH07XG5cbiAgcmVuZGVySGlzdG9yeUNhcmRzKGZ1bmNDYWxsczogREcuRnVuY0NhbGxbXSkge1xuICAgIHRoaXMubXlDYXJkcyA9IGZ1bmNDYWxscy5tYXAoKGZ1bmNDYWxsKSA9PiB7XG4gICAgICBjb25zdCBpY29uID0gZnVuY0NhbGwuYXV0aG9yLnBpY3R1cmUgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBpY29uLnN0eWxlLndpZHRoID0gJzI1cHgnO1xuICAgICAgaWNvbi5zdHlsZS5oZWlnaHQgPSAnMjVweCc7XG4gICAgICBpY29uLnN0eWxlLmZvbnRTaXplID0gJzIwcHgnO1xuICAgICAgaWNvbi5zdHlsZS5tYXJnaW5SaWdodCA9ICczcHgnO1xuICAgICAgaWNvbi5zdHlsZS5hbGlnblNlbGYgPSAnY2VudGVyJztcbiAgICAgIGNvbnN0IHVzZXJMYWJlbCA9IHVpLmxhYmVsKGZ1bmNDYWxsLmF1dGhvci5mcmllbmRseU5hbWUsICdkNC1saW5rLWxhYmVsJyk7XG4gICAgICB1aS5iaW5kKGZ1bmNDYWxsLmF1dGhvciwgaWNvbik7XG5cbiAgICAgIGNvbnN0IHNoYXJlSWNvbiA9IHVpLmljb25GQSgnZXllJywgYXN5bmMgKGV2KSA9PiB7XG4gICAgICAgIGV2LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLnNob3dBZGRUb1NoYXJlZERpYWxvZyhmdW5jQ2FsbCk7XG4gICAgICB9LCAnQWRkIHRvIHNoYXJlZCcpO1xuICAgICAgc2hhcmVJY29uLmNsYXNzTGlzdC5hZGQoJ2ZhbCcpO1xuXG4gICAgICBjb25zdCB1bnNoYXJlSWNvbiA9IHVpLmljb25GQSgnZXllLXNsYXNoJywgYXN5bmMgKGV2KSA9PiB7XG4gICAgICAgIGV2LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLm9uUnVuUmVtb3ZlRnJvbVNoYXJlZC5uZXh0KGZ1bmNDYWxsLmlkKTtcbiAgICAgIH0sICdIaWRlIGZyb20gc2hhcmVkJyk7XG5cbiAgICAgIGNvbnN0IHVuc3RhciA9IHVpLmljb25GQSgnc3RhcicsIGFzeW5jIChldikgPT4ge1xuICAgICAgICBldi5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5vblJ1blJlbW92ZUZyb21GYXZvcml0ZXMubmV4dChmdW5jQ2FsbC5pZCk7XG4gICAgICB9LCAnVW5mYXZvcml0ZSB0aGUgcnVuJyk7XG4gICAgICB1bnN0YXIuY2xhc3NMaXN0LmFkZCgnZmFzJyk7XG5cbiAgICAgIGNvbnN0IGNhcmQgPSB1aS5kaXZIKFtcbiAgICAgICAgdWkuZGl2SChbXG4gICAgICAgICAgaWNvbixcbiAgICAgICAgICB1aS5kaXZWKFtcbiAgICAgICAgICAgIHVzZXJMYWJlbCxcbiAgICAgICAgICAgIHVpLnNwYW4oW25ldyBEYXRlKGZ1bmNDYWxsLnN0YXJ0ZWQudG9TdHJpbmcoKSkudG9Mb2NhbGVTdHJpbmcoJ2VuLXVzJywge21vbnRoOiAnc2hvcnQnLCBkYXk6ICdudW1lcmljJywgaG91cjogJ251bWVyaWMnLCBtaW51dGU6ICdudW1lcmljJ30pXSlcbiAgICAgICAgICBdLCAnY3YtY2FyZC1jb250ZW50JyksXG4gICAgICAgIF0pLFxuICAgICAgICB1aS5kaXZIKFtcbiAgICAgICAgICAuLi4oZnVuY0NhbGwub3B0aW9uc1snaXNTaGFyZWQnXSkgPyBbdW5zaGFyZUljb25dOiBbc2hhcmVJY29uXSxcbiAgICAgICAgICAuLi4oZnVuY0NhbGwub3B0aW9uc1snaXNGYXZvcml0ZSddKSA/IFt1bnN0YXJdIDogW3VpLmljb25GQSgnc3RhcicsIGFzeW5jIChldikgPT4ge1xuICAgICAgICAgICAgZXYuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLnNob3dBZGRUb0Zhdm9yaXRlc0RpYWxvZyhmdW5jQ2FsbCk7XG4gICAgICAgICAgfSwgJ0FkZCB0byBmYXZvcml0ZXMnKV0sXG4gICAgICAgICAgdWkuaWNvbkZBKCd0cmFzaC1hbHQnLCBhc3luYyAoZXYpID0+IHtcbiAgICAgICAgICAgIGV2LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5zaG93RGVsZXRlUnVuRGlhbG9nKGZ1bmNDYWxsKTtcbiAgICAgICAgICB9LCAnRGVsZXRlIHRoZSBydW4nKSxcbiAgICAgICAgXSwgJ2N2LWZ1bmNjYWxsLWNhcmQtaWNvbnMnKVxuICAgICAgXSwgJ2N2LWZ1bmNjYWxsLWNhcmQnKTtcblxuICAgICAgY2FyZC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGFzeW5jICgpID0+IHtcbiAgICAgICAgdGhpcy5vblJ1bkNob3Nlbi5uZXh0KGZ1bmNDYWxsLmlkKTtcbiAgICAgICAgY2FyZC5jbGFzc0xpc3QuYWRkKCdjbGlja2VkJyk7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGNhcmQ7XG4gICAgfSk7XG5cbiAgICBjb25zdCBhbGxDYXJkcyA9IFsuLi50aGlzLm15Q2FyZHMsIC4uLnRoaXMuZmF2b3JpdGVDYXJkcywgLi4udGhpcy5zaGFyZWRDYXJkc107XG4gICAgYWxsQ2FyZHMuZm9yRWFjaCgoY2FyZCkgPT4gY2FyZC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IGFsbENhcmRzLmZvckVhY2goKGMpID0+IGMuY2xhc3NMaXN0LnJlbW92ZSgnY2xpY2tlZCcpKSkpO1xuXG4gICAgcmV0dXJuIHVpLmRpdlYodGhpcy5teUNhcmRzLCB7c3R5bGU6IHtoZWlnaHQ6ICcxMDAlJ319KTtcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZ1bmM6IERHLkZ1bmNcbiAgKSB7XG4gICAgdGhpcy50YWJzLnJvb3Quc3R5bGUud2lkdGggPSAnMTAwJSc7XG4gICAgdGhpcy50YWJzLnJvb3Quc3R5bGUuaGVpZ2h0ID0gJzEwMCUnO1xuICAgIHRoaXMudGFicy5oZWFkZXIuc3R5bGUuanVzdGlmeUNvbnRlbnQgPSAnc3BhY2UtYmV0d2Vlbic7XG5cbiAgICB0aGlzLnN0b3JlLm15UnVucy5zdWJzY3JpYmUoKG15UnVucykgPT4gdGhpcy5zdG9yZS5maWx0ZXJlZE15UnVucy5uZXh0KG15UnVucykpO1xuICAgIHRoaXMuc3RvcmUuZmF2b3JpdGVSdW5zLnN1YnNjcmliZSgoZmF2b3JpdGVSdW5zKSA9PiB0aGlzLnN0b3JlLmZpbHRlcmVkRmF2b3JpdGVSdW5zLm5leHQoZmF2b3JpdGVSdW5zKSk7XG4gICAgdGhpcy5zdG9yZS5zaGFyZWRSdW5zLnN1YnNjcmliZSgoc2hhcmVkUnVucykgPT4gdGhpcy5zdG9yZS5maWx0ZXJlZFNoYXJlZFJ1bnMubmV4dChzaGFyZWRSdW5zKSk7XG5cbiAgICB0aGlzLnN0b3JlLmZpbHRlcmVkTXlSdW5zLnN1YnNjcmliZSgobXlSdW5zKSA9PiB0aGlzLnVwZGF0ZU15UGFuZShteVJ1bnMpKTtcbiAgICB0aGlzLnN0b3JlLmZpbHRlcmVkRmF2b3JpdGVSdW5zLnN1YnNjcmliZSgobmV3RmF2b3JpdGVSdW5zKSA9PiB0aGlzLnVwZGF0ZUZhdm9yaXRlc1BhbmUobmV3RmF2b3JpdGVSdW5zKSk7XG4gICAgdGhpcy5zdG9yZS5maWx0ZXJlZFNoYXJlZFJ1bnMuc3Vic2NyaWJlKChzaGFyZWRSdW5zKSA9PiB0aGlzLnVwZGF0ZVNoYXJlZFBhbmUoc2hhcmVkUnVucykpO1xuXG4gICAgdGhpcy5teVJ1bnNGaWx0ZXIuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGNvbnN0IGZpbHRlcmVkTXlSdW5zID0gdGhpcy5zdG9yZS5teVJ1bnMudmFsdWUuZmlsdGVyKCh2YWwpID0+IHtcbiAgICAgICAgY29uc3Qgc3RhcnRlZEFmdGVyID0gKHRoaXMuc3RvcmUuZmlsdGVyaW5nT3B0aW9ucy5zdGFydGVkQWZ0ZXIgPyB2YWwuc3RhcnRlZCA+IHRoaXMuc3RvcmUuZmlsdGVyaW5nT3B0aW9ucy5zdGFydGVkQWZ0ZXIgOiB0cnVlKTtcblxuICAgICAgICByZXR1cm4gc3RhcnRlZEFmdGVyO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnN0b3JlLmZpbHRlcmVkTXlSdW5zLm5leHQoZmlsdGVyZWRNeVJ1bnMpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5mYXZSdW5zRmlsdGVyLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCBmaWx0ZXJlZEZhdlJ1bnMgPSB0aGlzLnN0b3JlLmZhdm9yaXRlUnVucy52YWx1ZS5maWx0ZXIoKHZhbCkgPT4ge1xuICAgICAgICBjb25zdCBzdGFydGVkQWZ0ZXIgPSAodGhpcy5zdG9yZS5maWx0ZXJpbmdPcHRpb25zLnN0YXJ0ZWRBZnRlciA/IHZhbC5zdGFydGVkID4gdGhpcy5zdG9yZS5maWx0ZXJpbmdPcHRpb25zLnN0YXJ0ZWRBZnRlciA6IHRydWUpO1xuICAgICAgICBjb25zdCB0aXRsZUNvbnRhaW5zVGV4dCA9ICh0aGlzLnN0b3JlLmZpbHRlcmluZ09wdGlvbnMudGV4dC5sZW5ndGggJiYgISF2YWwub3B0aW9uc1sndGl0bGUnXSkgPyB2YWwub3B0aW9uc1sndGl0bGUnXS5pbmNsdWRlcyh0aGlzLnN0b3JlLmZpbHRlcmluZ09wdGlvbnMudGV4dCk6IHRydWU7XG4gICAgICAgIGNvbnN0IGRlc2NDb250YWluc1RleHQgPSAodGhpcy5zdG9yZS5maWx0ZXJpbmdPcHRpb25zLnRleHQubGVuZ3RoICYmICEhdmFsLm9wdGlvbnNbJ2Rlc2NyaXB0aW9uJ10pID8gdmFsLm9wdGlvbnNbJ2Rlc2NyaXB0aW9uJ10uaW5jbHVkZXModGhpcy5zdG9yZS5maWx0ZXJpbmdPcHRpb25zLnRleHQpOiB0cnVlO1xuXG4gICAgICAgIHJldHVybiAodGl0bGVDb250YWluc1RleHQgfHwgZGVzY0NvbnRhaW5zVGV4dCkgJiYgc3RhcnRlZEFmdGVyO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnN0b3JlLmZpbHRlcmVkRmF2b3JpdGVSdW5zLm5leHQoZmlsdGVyZWRGYXZSdW5zKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc2hhcmVkUnVuc0ZpbHRlci5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3QgZmlsdGVyZWRTaGFyZWRSdW5zID0gdGhpcy5zdG9yZS5zaGFyZWRSdW5zLnZhbHVlLmZpbHRlcigodmFsKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzQXV0aG9yZWQgPSB0aGlzLnN0b3JlLmZpbHRlcmluZ09wdGlvbnMuYXV0aG9yID8gdmFsLmF1dGhvci5pZCA9PT0gdGhpcy5zdG9yZS5maWx0ZXJpbmdPcHRpb25zLmF1dGhvci5pZDogdHJ1ZTtcbiAgICAgICAgY29uc3Qgc3RhcnRlZEFmdGVyID0gKHRoaXMuc3RvcmUuZmlsdGVyaW5nT3B0aW9ucy5zdGFydGVkQWZ0ZXIgPyB2YWwuc3RhcnRlZCA+IHRoaXMuc3RvcmUuZmlsdGVyaW5nT3B0aW9ucy5zdGFydGVkQWZ0ZXIgOiB0cnVlKTtcbiAgICAgICAgY29uc3QgdGl0bGVDb250YWluc1RleHQgPSAodGhpcy5zdG9yZS5maWx0ZXJpbmdPcHRpb25zLnRleHQubGVuZ3RoICYmICEhdmFsLm9wdGlvbnNbJ3RpdGxlJ10pID8gdmFsLm9wdGlvbnNbJ3RpdGxlJ10uaW5jbHVkZXModGhpcy5zdG9yZS5maWx0ZXJpbmdPcHRpb25zLnRleHQpOiB0cnVlO1xuICAgICAgICBjb25zdCBkZXNjQ29udGFpbnNUZXh0ID0gKHRoaXMuc3RvcmUuZmlsdGVyaW5nT3B0aW9ucy50ZXh0Lmxlbmd0aCAmJiAhIXZhbC5vcHRpb25zWydkZXNjcmlwdGlvbiddKSA/IHZhbC5vcHRpb25zWydkZXNjcmlwdGlvbiddLmluY2x1ZGVzKHRoaXMuc3RvcmUuZmlsdGVyaW5nT3B0aW9ucy50ZXh0KTogdHJ1ZTtcblxuICAgICAgICByZXR1cm4gKHRpdGxlQ29udGFpbnNUZXh0IHx8IGRlc2NDb250YWluc1RleHQpICYmIHN0YXJ0ZWRBZnRlciAmJiBpc0F1dGhvcmVkO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnN0b3JlLmZpbHRlcmVkU2hhcmVkUnVucy5uZXh0KGZpbHRlcmVkU2hhcmVkUnVucyk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnN0b3JlLmFsbFJ1bnMuc3Vic2NyaWJlKChhbGxSdW5zKSA9PiB7XG4gICAgICB0aGlzLnN0b3JlLm15UnVucy5uZXh0KGFsbFJ1bnMuZmlsdGVyKChydW4pID0+IHJ1bi5hdXRob3IuaWQgPT09IGdyb2suc2hlbGwudXNlci5pZCkpO1xuICAgICAgdGhpcy5zdG9yZS5mYXZvcml0ZVJ1bnMubmV4dChhbGxSdW5zLmZpbHRlcigocnVuKSA9PiBydW4ub3B0aW9uc1snaXNGYXZvcml0ZSddICYmICFydW4ub3B0aW9uc1snaXNJbXBvcnRlZCddKSk7XG4gICAgICB0aGlzLnN0b3JlLnNoYXJlZFJ1bnMubmV4dChhbGxSdW5zLmZpbHRlcigocnVuKSA9PiBydW4ub3B0aW9uc1snaXNTaGFyZWQnXSkpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5hbGxSdW5zRmV0Y2guc3Vic2NyaWJlKGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGFsbFJ1bnMgPSAoYXdhaXQgaGlzdG9yeVV0aWxzLnB1bGxSdW5zQnlOYW1lKHRoaXMuZnVuYy5uYW1lLCBbXSwge29yZGVyOiAnc3RhcnRlZCd9LCBbJ3Nlc3Npb24udXNlcicsICdvcHRpb25zJ10pKS5yZXZlcnNlKCk7XG4gICAgICB0aGlzLnN0b3JlLmFsbFJ1bnMubmV4dChhbGxSdW5zKTtcbiAgICB9KTtcblxuICAgIHRoaXMubXlSdW5zRmV0Y2guc3Vic2NyaWJlKGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG15UnVucyA9IChhd2FpdCBoaXN0b3J5VXRpbHMucHVsbFJ1bnNCeU5hbWUodGhpcy5mdW5jLm5hbWUsIFt7YXV0aG9yOiBncm9rLnNoZWxsLnVzZXJ9XSwge29yZGVyOiAnc3RhcnRlZCd9LCBbJ3Nlc3Npb24udXNlcicsICdvcHRpb25zJ10pKS5yZXZlcnNlKCk7XG4gICAgICB0aGlzLnN0b3JlLm15UnVucy5uZXh0KG15UnVucyk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmZhdlJ1bnNGZXRjaC5zdWJzY3JpYmUoYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbXlSdW5zID0gKGF3YWl0IGhpc3RvcnlVdGlscy5wdWxsUnVuc0J5TmFtZSh0aGlzLmZ1bmMubmFtZSwgW3thdXRob3I6IGdyb2suc2hlbGwudXNlcn1dLCB7b3JkZXI6ICdzdGFydGVkJ30sIFsnc2Vzc2lvbi51c2VyJywgJ29wdGlvbnMnXSkpLnJldmVyc2UoKTtcbiAgICAgIHRoaXMuc3RvcmUuZmF2b3JpdGVSdW5zLm5leHQobXlSdW5zLmZpbHRlcigocnVuKSA9PiBydW4ub3B0aW9uc1snaXNGYXZvcml0ZSddICYmICFydW4ub3B0aW9uc1snaXNJbXBvcnRlZCddKSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnNoYXJlZFJ1bnNGZXRjaC5zdWJzY3JpYmUoYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3Qgc2hhcmVkUnVucyA9IChhd2FpdCBoaXN0b3J5VXRpbHMucHVsbFJ1bnNCeU5hbWUodGhpcy5mdW5jLm5hbWUsIFtdLCB7b3JkZXI6ICdzdGFydGVkJ30sIFsnc2Vzc2lvbi51c2VyJywgJ29wdGlvbnMnXSkpLnJldmVyc2UoKTtcbiAgICAgIHRoaXMuc3RvcmUuc2hhcmVkUnVucy5uZXh0KHNoYXJlZFJ1bnMuZmlsdGVyKChydW4pID0+IHJ1bi5vcHRpb25zWydpc1NoYXJlZCddKSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmFsbFJ1bnNGZXRjaC5uZXh0KCk7XG4gICAgdGhpcy51cGRhdGVGaWx0ZXJQYW5lKCk7XG4gIH1cblxuICBnZXQgcm9vdCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcm9vdDtcbiAgfVxufVxuIl19