@datagrok-libraries/utils 4.6.9 → 4.6.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # utils changelog
2
2
 
3
+ ## 4.6.10 (2025-10-21)
4
+
5
+ Froms viewers: extract coloring from dataframe instead of grid
6
+
3
7
  ## 4.6.9 (2025-10-09)
4
8
 
5
9
  Query builder: converting strings in dates inputs
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "email": "aparamonov@datagrok.ai"
9
9
  },
10
10
  "fullName": "Utils",
11
- "version": "4.6.9",
11
+ "version": "4.6.10",
12
12
  "description": "Common utilities",
13
13
  "dependencies": {
14
14
  "cash-dom": "^8.1.1",
@@ -1,6 +1,7 @@
1
1
  import * as DG from 'datagrok-api/dg';
2
2
  import { Observable, Subject } from "rxjs";
3
3
  export declare class SchemaEditor extends DG.Widget {
4
+ get type(): string;
4
5
  table: PropertyTable<DG.IProperty>;
5
6
  allowedTypes: string[];
6
7
  properties: DG.IProperty[];
@@ -20,6 +21,7 @@ export type TableFromPropertiesOptions<T = any> = {
20
21
  };
21
22
  export declare class PropertyTable<T = any> extends DG.Widget {
22
23
  data: TableFromPropertiesOptions;
24
+ get type(): string;
23
25
  table?: HTMLTableElement;
24
26
  onSelected: Subject<T>;
25
27
  onItemChanged: Subject<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"schema-editor.d.ts","sourceRoot":"","sources":["schema-editor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAQ,UAAU,EAAE,OAAO,EAAC,MAAM,MAAM,CAAC;AAOhD,qBAAa,YAAa,SAAQ,EAAE,CAAC,MAAM;IACzC,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IACnC,YAAY,EAAE,MAAM,EAAE,CAAiF;IACvG,UAAU,EAAE,EAAE,CAAC,SAAS,EAAE,CAAM;IAChC,kBAAkB,EAAE,cAAc,CAAC;gBAEvB,OAAO,EAAE;QAAC,UAAU,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC;QAAC,kBAAkB,CAAC,EAAE,cAAc,CAAA;KAAC;CAkCvF;AAED,MAAM,MAAM,0BAA0B,CAAC,CAAC,GAAG,GAAG,IAAI;IAChD,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,cAAc,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC;IAC/B,eAAe,CAAC,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC,CAAA;CACpB,CAAA;AAED,qBAAa,aAAa,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,EAAE,CAAC,MAAM;IAahC,IAAI,EAAE,0BAA0B;IAZnD,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAEzB,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAiB;IACvC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,CAAiB;IAC1C,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAiB;IACxC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,CAAiB;IAE1C,uDAAuD;IACvD,IAAI,SAAS,IAAI,UAAU,CAAC,CAAC,CAAC,CAE7B;gBAEkB,IAAI,EAAE,0BAA0B;IAKnD,OAAO;CAgCR;AAGD,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,SAAS,SAAe;IAE/B,MAAM,CAAC,UAAU,EAAE;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,MAAM,GAAG,IAAI,CAAA;KAAC,CAEjE;IAED,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,MAAM,GAAG,IAAI,CAAC;IAUtG,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,MAAM,GAAG,IAAI,CAAC;CAG9E"}
1
+ {"version":3,"file":"schema-editor.d.ts","sourceRoot":"","sources":["schema-editor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAQ,UAAU,EAAE,OAAO,EAAC,MAAM,MAAM,CAAC;AAOhD,qBAAa,YAAa,SAAQ,EAAE,CAAC,MAAM;IACzC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IACnC,YAAY,EAAE,MAAM,EAAE,CAAiF;IACvG,UAAU,EAAE,EAAE,CAAC,SAAS,EAAE,CAAM;IAChC,kBAAkB,EAAE,cAAc,CAAC;gBAEvB,OAAO,EAAE;QAAC,UAAU,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC;QAAC,kBAAkB,CAAC,EAAE,cAAc,CAAA;KAAC;CAkCvF;AAED,MAAM,MAAM,0BAA0B,CAAC,CAAC,GAAG,GAAG,IAAI;IAChD,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,cAAc,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC;IAC/B,eAAe,CAAC,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC,CAAA;CACpB,CAAA;AAED,qBAAa,aAAa,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,EAAE,CAAC,MAAM;IAiBhC,IAAI,EAAE,0BAA0B;IAhBnD,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAEzB,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAiB;IACvC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,CAAiB;IAC1C,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAiB;IACxC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,CAAiB;IAE1C,uDAAuD;IACvD,IAAI,SAAS,IAAI,UAAU,CAAC,CAAC,CAAC,CAE7B;gBAEkB,IAAI,EAAE,0BAA0B;IAKnD,OAAO;CAgCR;AAGD,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,SAAS,SAAe;IAE/B,MAAM,CAAC,UAAU,EAAE;QAAC,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,GAAG,KAAK,MAAM,GAAG,IAAI,CAAA;KAAC,CAEjE;IAED,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,MAAM,GAAG,IAAI,CAAC;IAUtG,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,MAAM,GAAG,IAAI,CAAC;CAG9E"}
@@ -6,6 +6,9 @@ function isNumeric(type) {
6
6
  return type == DG.TYPE.INT || type == DG.TYPE.FLOAT || type == DG.TYPE.BIG_INT || type == DG.TYPE.QNUM;
7
7
  }
8
8
  export class SchemaEditor extends DG.Widget {
9
+ get type() {
10
+ return 'SchemaEditor';
11
+ }
9
12
  constructor(options) {
10
13
  var _a;
11
14
  super(ui.div([]));
@@ -37,6 +40,9 @@ export class SchemaEditor extends DG.Widget {
37
40
  }
38
41
  }
39
42
  export class PropertyTable extends DG.Widget {
43
+ get type() {
44
+ return 'PropertyTable';
45
+ }
40
46
  /** Any change (ItemChanged, ItemAdded, ItemRemoved) */
41
47
  get onChanged() {
42
48
  return merge(this.onItemChanged, this.onItemAdded, this.onItemRemoved);
@@ -99,4 +105,4 @@ PropertyValidator.NOT_EMPTY = 'not empty';
99
105
  PropertyValidator.validators = {
100
106
  NOT_EMPTY: (s) => s == null || s === '' ? "Can't be empty" : null
101
107
  };
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLWVkaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNjaGVtYS1lZGl0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0QyxPQUFPLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RDLE9BQU8sRUFBQyxLQUFLLEVBQWMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBWSxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUV4RCxTQUFTLFNBQVMsQ0FBQyxJQUFZO0lBQzdCLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0FBQ3pHLENBQUM7QUFFRCxNQUFNLE9BQU8sWUFBYSxTQUFRLEVBQUUsQ0FBQyxNQUFNO0lBTXpDLFlBQVksT0FBMEU7O1FBQ3BGLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFMcEIsaUJBQVksR0FBYSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkcsZUFBVSxHQUFtQixFQUFFLENBQUM7UUFLOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFBLE9BQU8sQ0FBQyxrQkFBa0Is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LElBQWtCLEVBQUUsVUFBa0I7UUFDbEUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLElBQUk7WUFDdEMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXJDLElBQUksWUFBWSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUssQ0FBQztZQUNsRCxPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUssRUFBRSxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFFL0QsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxNQUFNLENBQUMsaUJBQWlCLENBQUMsSUFBWSxFQUFFLFNBQXNDO1FBQzNFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQ3BDLENBQUM7O0FBbEJNLDJCQUFTLEdBQUcsV0FBVyxDQUFDO0FBRXhCLDRCQUFVLEdBQW9EO0lBQ25FLFNBQVMsRUFBRSxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSTtDQUN2RSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgKiBhcyBERyBmcm9tICdkYXRhZ3Jvay1hcGkvZGcnO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCB7bWVyZ2UsIE9ic2VydmFibGUsIFN1YmplY3R9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge0lQcm9wZXJ0eSwgVmFsdWVNYXRjaGVyfSBmcm9tIFwiZGF0YWdyb2stYXBpL2RnXCI7XG5cbmZ1bmN0aW9uIGlzTnVtZXJpYyh0eXBlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHR5cGUgPT0gREcuVFlQRS5JTlQgfHwgdHlwZSA9PSBERy5UWVBFLkZMT0FUIHx8IHR5cGUgPT0gREcuVFlQRS5CSUdfSU5UIHx8IHR5cGUgPT0gREcuVFlQRS5RTlVNO1xufVxuXG5leHBvcnQgY2xhc3MgU2NoZW1hRWRpdG9yIGV4dGVuZHMgREcuV2lkZ2V0IHtcbiAgdGFibGU6IFByb3BlcnR5VGFibGU8REcuSVByb3BlcnR5PjtcbiAgYWxsb3dlZFR5cGVzOiBzdHJpbmdbXSA9IFtERy5UWVBFLlNUUklORywgREcuVFlQRS5JTlQsIERHLlRZUEUuRkxPQVQsIERHLlRZUEUuQk9PTCwgREcuVFlQRS5EQVRFX1RJTUVdO1xuICBwcm9wZXJ0aWVzOiBERy5JUHJvcGVydHlbXSA9IFtdO1xuICBleHRyYVByb3BlcnRpZXNEaXY6IEhUTUxEaXZFbGVtZW50O1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IHtwcm9wZXJ0aWVzOiBERy5JUHJvcGVydHlbXSwgZXh0cmFQcm9wZXJ0aWVzRGl2PzogSFRNTERpdkVsZW1lbnR9KSB7XG4gICAgc3VwZXIodWkuZGl2KFtdKSk7XG4gICAgdGhpcy5wcm9wZXJ0aWVzID0gb3B0aW9ucy5wcm9wZXJ0aWVzO1xuICAgIHRoaXMuZXh0cmFQcm9wZXJ0aWVzRGl2ID0gb3B0aW9ucy5leHRyYVByb3BlcnRpZXNEaXYgPz8gdWkuZGl2KFtdKTtcblxuICAgIGNvbnN0IHR5cGVQcm9wOiBJUHJvcGVydHkgPSB7XG4gICAgICAuLi5ERy5Qcm9wZXJ0eS5wcm9wZXJ0eU9wdGlvbnNbJ3R5cGUnXSxcbiAgICAgIGNob2ljZXM6IHRoaXMuYWxsb3dlZFR5cGVzXG4gICAgfTtcblxuICAgIHRoaXMudGFibGUgPSBuZXcgUHJvcGVydHlUYWJsZSh7XG4gICAgICBpdGVtczogb3B0aW9ucy5wcm9wZXJ0aWVzLFxuICAgICAgbWFpblByb3BlcnRpZXM6IFtERy5Qcm9wZXJ0eS5wcm9wZXJ0eU9wdGlvbnNbJ25hbWUnXSEsIHR5cGVQcm9wXSxcbiAgICAgIGFsbG93QWRkOiB0cnVlLFxuICAgICAgYWxsb3dSZW1vdmU6IHRydWVcbiAgICB9KTtcblxuICAgIHRoaXMudGFibGUub25TZWxlY3RlZC5zdWJzY3JpYmUoKGl0ZW0pID0+IHtcbiAgICAgIHVpLmVtcHR5KHRoaXMuZXh0cmFQcm9wZXJ0aWVzRGl2KTtcbiAgICAgIGNvbnN0IHByb3BLZXlzID0gT2JqZWN0LmtleXMoREcuUHJvcGVydHkucHJvcGVydHlPcHRpb25zKS5maWx0ZXIoayA9PiBrICE9PSAndHlwZScgJiYgayAhPT0gJ25hbWUnKTtcbiAgICAgIGNvbnN0IGV4dHJhUHJvcGVydGllcyA9IHByb3BLZXlzXG4gICAgICAgIC5tYXAoayA9PiBERy5Qcm9wZXJ0eS5wcm9wZXJ0eU9wdGlvbnNbayBhcyBrZXlvZiB0eXBlb2YgREcuUHJvcGVydHkucHJvcGVydHlPcHRpb25zXSEpXG4gICAgICAgIC5maWx0ZXIocCA9PiBwLmFwcGxpY2FibGVUbyA9PSBudWxsIHx8IChwLmFwcGxpY2FibGVUbyA9PSBERy5UWVBFLk5VTUVSSUNBTCAmJiAoaXNOdW1lcmljKHAudHlwZSEpKSkpXG4gICAgICAgIC5tYXAocCA9PiBERy5Qcm9wZXJ0eS5mcm9tT3B0aW9ucyhwKSk7XG4gICAgICBjb25zdCBmb3JtID0gdWkuaW5wdXQuZm9ybShpdGVtLCBleHRyYVByb3BlcnRpZXMpO1xuICAgICAgXG4gICAgICB0aGlzLmV4dHJhUHJvcGVydGllc0Rpdi5hcHBlbmRDaGlsZCh1aS5kaXZWKFtcbiAgICAgICAgdWkuaDIoaXRlbS5uYW1lISksXG4gICAgICAgIGZvcm1cbiAgICAgIF0pKTtcbiAgICB9KTtcblxuICAgIHRoaXMucm9vdC5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlLnJvb3QpO1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIFRhYmxlRnJvbVByb3BlcnRpZXNPcHRpb25zPFQgPSBhbnk+ID0ge1xuICBpdGVtczogVFtdLFxuICBtYWluUHJvcGVydGllczogREcuSVByb3BlcnR5W10sXG4gIGV4dHJhUHJvcGVydGllcz86IERHLklQcm9wZXJ0eVtdLFxuICBhbGxvd0FkZD86IGJvb2xlYW4sXG4gIGFsbG93UmVtb3ZlPzogYm9vbGVhbixcbiAgY3JlYXRlTmV3PzogKCkgPT4gVFxufVxuXG5leHBvcnQgY2xhc3MgUHJvcGVydHlUYWJsZTxUID0gYW55PiBleHRlbmRzIERHLldpZGdldCB7XG4gIHRhYmxlPzogSFRNTFRhYmxlRWxlbWVudDtcblxuICBvblNlbGVjdGVkOiBTdWJqZWN0PFQ+ID0gbmV3IFN1YmplY3QoKTtcbiAgb25JdGVtQ2hhbmdlZDogU3ViamVjdDxUPiA9IG5ldyBTdWJqZWN0KCk7XG4gIG9uSXRlbUFkZGVkOiBTdWJqZWN0PFQ+ID0gbmV3IFN1YmplY3QoKTtcbiAgb25JdGVtUmVtb3ZlZDogU3ViamVjdDxUPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgLyoqIEFueSBjaGFuZ2UgKEl0ZW1DaGFuZ2VkLCBJdGVtQWRkZWQsIEl0ZW1SZW1vdmVkKSAqL1xuICBnZXQgb25DaGFuZ2VkKCk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiBtZXJnZSh0aGlzLm9uSXRlbUNoYW5nZWQsIHRoaXMub25JdGVtQWRkZWQsIHRoaXMub25JdGVtUmVtb3ZlZCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0YTogVGFibGVGcm9tUHJvcGVydGllc09wdGlvbnMpIHtcbiAgICBzdXBlcih1aS5kaXYoW10pKTtcbiAgICB0aGlzLnJlZnJlc2goKTtcbiAgfVxuXG4gIHJlZnJlc2goKSB7XG4gICAgY29uc3QgY3JlYXRlUm93ID0gKGl0ZW06IFQsIGk6IG51bWJlcikgPT4ge1xuICAgICAgY29uc3QgZWxlbWVudHMgPSB0aGlzLmRhdGEubWFpblByb3BlcnRpZXNcbiAgICAgICAgLm1hcCgocCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGlucHV0ID0gREcuSW5wdXRCYXNlLmZvclByb3BlcnR5KERHLlByb3BlcnR5LmZyb21PcHRpb25zKHApLCBpdGVtKTtcbiAgICAgICAgICBmb3IgKGNvbnN0IHYgb2YgcC52YWxpZGF0b3JzID8/IFtdKVxuICAgICAgICAgICAgaW5wdXQuYWRkVmFsaWRhdG9yKChzKSA9PiBWYWx1ZU1hdGNoZXIuZm9yVHlwZShwLnR5cGUhLCB2KS52YWxpZGF0ZShzKSk7XG4gICAgICAgICAgaW5wdXQub25DaGFuZ2VkLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uSXRlbUNoYW5nZWQubmV4dChpdGVtKSk7XG4gICAgICAgICAgaW5wdXQuaW5wdXQub25jbGljayA9ICgpID0+IHRoaXMub25TZWxlY3RlZC5uZXh0KGl0ZW0pO1xuICAgICAgICAgIHJldHVybiBpbnB1dC5pbnB1dDtcbiAgICAgICAgfSk7XG5cbiAgICAgIGlmICh0aGlzLmRhdGEuYWxsb3dBZGQgPz8gZmFsc2UpXG4gICAgICAgIGVsZW1lbnRzLnB1c2godWkuaWNvbkZBQigncGx1cycsICgpID0+IHtcbiAgICAgICAgICBjb25zdCBuZXdJdGVtID0gdGhpcy5kYXRhLmNyZWF0ZU5ldyA/IHRoaXMuZGF0YS5jcmVhdGVOZXcoKSA6IHt9O1xuICAgICAgICAgIHRoaXMuZGF0YS5pdGVtcy5zcGxpY2UodGhpcy5kYXRhLml0ZW1zLmluZGV4T2YoaXRlbSkgKyAxLCAwLCBuZXdJdGVtKTtcbiAgICAgICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICAgICAgICB0aGlzLm9uSXRlbUFkZGVkLm5leHQobmV3SXRlbSk7XG4gICAgICAgIH0pKTtcbiAgICAgIGlmICh0aGlzLmRhdGEuYWxsb3dSZW1vdmUgPz8gZmFsc2UpXG4gICAgICAgIGVsZW1lbnRzLnB1c2godWkuaWNvbkZBQigndGltZXMnLCAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5kYXRhLml0ZW1zLnNwbGljZSh0aGlzLmRhdGEuaXRlbXMuaW5kZXhPZihpdGVtKSwgMSk7XG4gICAgICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgICAgICAgdGhpcy5vbkl0ZW1SZW1vdmVkLm5leHQoaXRlbSk7XG4gICAgICAgIH0pKTtcbiAgICAgIHJldHVybiBlbGVtZW50cztcbiAgICB9XG5cbiAgICB0aGlzLnRhYmxlID0gdWkudGFibGUodGhpcy5kYXRhLml0ZW1zLCBjcmVhdGVSb3cpO1xuICAgIHVpLmVtcHR5KHRoaXMucm9vdCk7XG4gICAgdGhpcy5yb290LmFwcGVuZENoaWxkKHRoaXMudGFibGUpO1xuICB9XG59XG5cblxuZXhwb3J0IGNsYXNzIFByb3BlcnR5VmFsaWRhdG9yIHtcbiAgc3RhdGljIE5PVF9FTVBUWSA9ICdub3QgZW1wdHknO1xuXG4gIHN0YXRpYyB2YWxpZGF0b3JzOiB7W25hbWU6IHN0cmluZ106ICh2YWx1ZTogYW55KSA9PiBzdHJpbmcgfCBudWxsfSA9IHtcbiAgICBOT1RfRU1QVFk6IChzOiBhbnkpID0+IHMgPT0gbnVsbCB8fCBzID09PSAnJyA/IFwiQ2FuJ3QgYmUgZW1wdHlcIiA6IG51bGxcbiAgfVxuXG4gIHN0YXRpYyBnZXRWYWxpZGF0b3Iob2JqOiBhbnksIHByb3A6IERHLklQcm9wZXJ0eSwgZXhwcmVzc2lvbjogc3RyaW5nKTogKCh2YWx1ZTogYW55KSA9PiBzdHJpbmcgfCBudWxsKSB7XG4gICAgaWYgKHRoaXMudmFsaWRhdG9yc1tleHByZXNzaW9uXSAhPT0gbnVsbClcbiAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRvcnNbZXhwcmVzc2lvbl07XG5cbiAgICBpZiAoVmFsdWVNYXRjaGVyLnN1cHBvcnRlZFR5cGVzLmluY2x1ZGVzKHByb3AudHlwZSEpKVxuICAgICAgcmV0dXJuIFZhbHVlTWF0Y2hlci5mb3JUeXBlKHByb3AudHlwZSEsIGV4cHJlc3Npb24pLnZhbGlkYXRlO1xuXG4gICAgcmV0dXJuIChfKSA9PiBudWxsO1xuICB9XG5cbiAgc3RhdGljIHJlZ2lzdGVyVmFsaWRhdG9yKG5hbWU6IHN0cmluZywgdmFsaWRhdG9yOiAoKHg6IGFueSkgPT4gc3RyaW5nIHwgbnVsbCkpIHtcbiAgICB0aGlzLnZhbGlkYXRvcnNbbmFtZV0gPSB2YWxpZGF0b3I7XG4gIH1cbn0iXX0=
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLWVkaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNjaGVtYS1lZGl0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0QyxPQUFPLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RDLE9BQU8sRUFBQyxLQUFLLEVBQWMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBWSxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUV4RCxTQUFTLFNBQVMsQ0FBQyxJQUFZO0lBQzdCLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0FBQ3pHLENBQUM7QUFFRCxNQUFNLE9BQU8sWUFBYSxTQUFRLEVBQUUsQ0FBQyxNQUFNO0lBQ3pDLElBQUksSUFBSTtRQUNOLE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFPRCxZQUFZLE9BQTBFOztRQUNwRixLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBTHBCLGlCQUFZLEdBQWEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZHLGVBQVUsR0FBbUIsRUFBRSxDQUFDO1FBSzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUNyQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsTUFBQSxPQUFPLENBQUMsa0JBQWtCLG1DQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFbkUsTUFBTSxRQUFRLG1DQUNULEVBQUUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxLQUN0QyxPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksR0FDM0IsQ0FBQztRQUVGLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxhQUFhLENBQUM7WUFDN0IsS0FBSyxFQUFFLE9BQU8sQ0FBQyxVQUFVO1lBQ3pCLGNBQWMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBRSxFQUFFLFFBQVEsQ0FBQztZQUNoRSxRQUFRLEVBQUUsSUFBSTtZQUNkLFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3ZDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDbEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxNQUFNLElBQUksQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDO1lBQ3BHLE1BQU0sZUFBZSxHQUFHLFFBQVE7aUJBQzdCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQTZDLENBQUUsQ0FBQztpQkFDckYsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3BHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEMsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBRWxELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztnQkFDMUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSyxDQUFDO2dCQUNqQixJQUFJO2FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztDQUNGO0FBV0QsTUFBTSxPQUFPLGFBQXVCLFNBQVEsRUFBRSxDQUFDLE1BQU07SUFDbkQsSUFBSSxJQUFJO1FBQ04sT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQztJQVNELHVEQUF1RDtJQUN2RCxJQUFJLFNBQVM7UUFDWCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxZQUFtQixJQUFnQztRQUNqRCxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBREQsU0FBSSxHQUFKLElBQUksQ0FBNEI7UUFWbkQsZUFBVSxHQUFlLElBQUksT0FBTyxFQUFFLENBQUM7UUFDdkMsa0JBQWEsR0FBZSxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzFDLGdCQUFXLEdBQWUsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUN4QyxrQkFBYSxHQUFlLElBQUksT0FBTyxFQUFFLENBQUM7UUFTeEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxPQUFPO1FBQ0wsTUFBTSxTQUFTLEdBQUcsQ0FBQyxJQUFPLEVBQUUsQ0FBUyxFQUFFLEVBQUU7O1lBQ3ZDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYztpQkFDdEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7O2dCQUNULE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUN6RSxLQUFLLE1BQU0sQ0FBQyxJQUFJLE1BQUEsQ0FBQyxDQUFDLFVBQVUsbUNBQUksRUFBRTtvQkFDaEMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMxRSxLQUFLLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUMvRCxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdkQsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ3JCLENBQUMsQ0FBQyxDQUFDO1lBRUwsSUFBSSxNQUFBLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxtQ0FBSSxLQUFLO2dCQUM3QixRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtvQkFDcEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDakUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO29CQUN0RSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ2pDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDTixJQUFJLE1BQUEsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLG1DQUFJLEtBQUs7Z0JBQ2hDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO29CQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUN6RCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQ2YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2hDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDTixPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDLENBQUE7UUFFRCxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDbEQsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7Q0FDRjtBQUdELE1BQU0sT0FBTyxpQkFBaUI7SUFPNUIsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFRLEVBQUUsSUFBa0IsRUFBRSxVQUFrQjtRQUNsRSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSTtZQUN0QyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFckMsSUFBSSxZQUFZLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSyxDQUFDO1lBQ2xELE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUUvRCxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDckIsQ0FBQztJQUVELE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFZLEVBQUUsU0FBc0M7UUFDM0UsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxTQUFTLENBQUM7SUFDcEMsQ0FBQzs7QUFsQk0sMkJBQVMsR0FBRyxXQUFXLENBQUM7QUFFeEIsNEJBQVUsR0FBb0Q7SUFDbkUsU0FBUyxFQUFFLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJO0NBQ3ZFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0IHttZXJnZSwgT2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7SVByb3BlcnR5LCBWYWx1ZU1hdGNoZXJ9IGZyb20gXCJkYXRhZ3Jvay1hcGkvZGdcIjtcblxuZnVuY3Rpb24gaXNOdW1lcmljKHR5cGU6IHN0cmluZykge1xuICByZXR1cm4gdHlwZSA9PSBERy5UWVBFLklOVCB8fCB0eXBlID09IERHLlRZUEUuRkxPQVQgfHwgdHlwZSA9PSBERy5UWVBFLkJJR19JTlQgfHwgdHlwZSA9PSBERy5UWVBFLlFOVU07XG59XG5cbmV4cG9ydCBjbGFzcyBTY2hlbWFFZGl0b3IgZXh0ZW5kcyBERy5XaWRnZXQge1xuICBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnU2NoZW1hRWRpdG9yJztcbiAgfVxuXG4gIHRhYmxlOiBQcm9wZXJ0eVRhYmxlPERHLklQcm9wZXJ0eT47XG4gIGFsbG93ZWRUeXBlczogc3RyaW5nW10gPSBbREcuVFlQRS5TVFJJTkcsIERHLlRZUEUuSU5ULCBERy5UWVBFLkZMT0FULCBERy5UWVBFLkJPT0wsIERHLlRZUEUuREFURV9USU1FXTtcbiAgcHJvcGVydGllczogREcuSVByb3BlcnR5W10gPSBbXTtcbiAgZXh0cmFQcm9wZXJ0aWVzRGl2OiBIVE1MRGl2RWxlbWVudDtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiB7cHJvcGVydGllczogREcuSVByb3BlcnR5W10sIGV4dHJhUHJvcGVydGllc0Rpdj86IEhUTUxEaXZFbGVtZW50fSkge1xuICAgIHN1cGVyKHVpLmRpdihbXSkpO1xuICAgIHRoaXMucHJvcGVydGllcyA9IG9wdGlvbnMucHJvcGVydGllcztcbiAgICB0aGlzLmV4dHJhUHJvcGVydGllc0RpdiA9IG9wdGlvbnMuZXh0cmFQcm9wZXJ0aWVzRGl2ID8/IHVpLmRpdihbXSk7XG5cbiAgICBjb25zdCB0eXBlUHJvcDogSVByb3BlcnR5ID0ge1xuICAgICAgLi4uREcuUHJvcGVydHkucHJvcGVydHlPcHRpb25zWyd0eXBlJ10sXG4gICAgICBjaG9pY2VzOiB0aGlzLmFsbG93ZWRUeXBlc1xuICAgIH07XG5cbiAgICB0aGlzLnRhYmxlID0gbmV3IFByb3BlcnR5VGFibGUoe1xuICAgICAgaXRlbXM6IG9wdGlvbnMucHJvcGVydGllcyxcbiAgICAgIG1haW5Qcm9wZXJ0aWVzOiBbREcuUHJvcGVydHkucHJvcGVydHlPcHRpb25zWyduYW1lJ10hLCB0eXBlUHJvcF0sXG4gICAgICBhbGxvd0FkZDogdHJ1ZSxcbiAgICAgIGFsbG93UmVtb3ZlOiB0cnVlXG4gICAgfSk7XG5cbiAgICB0aGlzLnRhYmxlLm9uU2VsZWN0ZWQuc3Vic2NyaWJlKChpdGVtKSA9PiB7XG4gICAgICB1aS5lbXB0eSh0aGlzLmV4dHJhUHJvcGVydGllc0Rpdik7XG4gICAgICBjb25zdCBwcm9wS2V5cyA9IE9iamVjdC5rZXlzKERHLlByb3BlcnR5LnByb3BlcnR5T3B0aW9ucykuZmlsdGVyKGsgPT4gayAhPT0gJ3R5cGUnICYmIGsgIT09ICduYW1lJyk7XG4gICAgICBjb25zdCBleHRyYVByb3BlcnRpZXMgPSBwcm9wS2V5c1xuICAgICAgICAubWFwKGsgPT4gREcuUHJvcGVydHkucHJvcGVydHlPcHRpb25zW2sgYXMga2V5b2YgdHlwZW9mIERHLlByb3BlcnR5LnByb3BlcnR5T3B0aW9uc10hKVxuICAgICAgICAuZmlsdGVyKHAgPT4gcC5hcHBsaWNhYmxlVG8gPT0gbnVsbCB8fCAocC5hcHBsaWNhYmxlVG8gPT0gREcuVFlQRS5OVU1FUklDQUwgJiYgKGlzTnVtZXJpYyhwLnR5cGUhKSkpKVxuICAgICAgICAubWFwKHAgPT4gREcuUHJvcGVydHkuZnJvbU9wdGlvbnMocCkpO1xuICAgICAgY29uc3QgZm9ybSA9IHVpLmlucHV0LmZvcm0oaXRlbSwgZXh0cmFQcm9wZXJ0aWVzKTtcblxuICAgICAgdGhpcy5leHRyYVByb3BlcnRpZXNEaXYuYXBwZW5kQ2hpbGQodWkuZGl2VihbXG4gICAgICAgIHVpLmgyKGl0ZW0ubmFtZSEpLFxuICAgICAgICBmb3JtXG4gICAgICBdKSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnJvb3QuYXBwZW5kQ2hpbGQodGhpcy50YWJsZS5yb290KTtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBUYWJsZUZyb21Qcm9wZXJ0aWVzT3B0aW9uczxUID0gYW55PiA9IHtcbiAgaXRlbXM6IFRbXSxcbiAgbWFpblByb3BlcnRpZXM6IERHLklQcm9wZXJ0eVtdLFxuICBleHRyYVByb3BlcnRpZXM/OiBERy5JUHJvcGVydHlbXSxcbiAgYWxsb3dBZGQ/OiBib29sZWFuLFxuICBhbGxvd1JlbW92ZT86IGJvb2xlYW4sXG4gIGNyZWF0ZU5ldz86ICgpID0+IFRcbn1cblxuZXhwb3J0IGNsYXNzIFByb3BlcnR5VGFibGU8VCA9IGFueT4gZXh0ZW5kcyBERy5XaWRnZXQge1xuICBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnUHJvcGVydHlUYWJsZSc7XG4gIH1cblxuICB0YWJsZT86IEhUTUxUYWJsZUVsZW1lbnQ7XG5cbiAgb25TZWxlY3RlZDogU3ViamVjdDxUPiA9IG5ldyBTdWJqZWN0KCk7XG4gIG9uSXRlbUNoYW5nZWQ6IFN1YmplY3Q8VD4gPSBuZXcgU3ViamVjdCgpO1xuICBvbkl0ZW1BZGRlZDogU3ViamVjdDxUPiA9IG5ldyBTdWJqZWN0KCk7XG4gIG9uSXRlbVJlbW92ZWQ6IFN1YmplY3Q8VD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIC8qKiBBbnkgY2hhbmdlIChJdGVtQ2hhbmdlZCwgSXRlbUFkZGVkLCBJdGVtUmVtb3ZlZCkgKi9cbiAgZ2V0IG9uQ2hhbmdlZCgpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gbWVyZ2UodGhpcy5vbkl0ZW1DaGFuZ2VkLCB0aGlzLm9uSXRlbUFkZGVkLCB0aGlzLm9uSXRlbVJlbW92ZWQpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHVibGljIGRhdGE6IFRhYmxlRnJvbVByb3BlcnRpZXNPcHRpb25zKSB7XG4gICAgc3VwZXIodWkuZGl2KFtdKSk7XG4gICAgdGhpcy5yZWZyZXNoKCk7XG4gIH1cblxuICByZWZyZXNoKCkge1xuICAgIGNvbnN0IGNyZWF0ZVJvdyA9IChpdGVtOiBULCBpOiBudW1iZXIpID0+IHtcbiAgICAgIGNvbnN0IGVsZW1lbnRzID0gdGhpcy5kYXRhLm1haW5Qcm9wZXJ0aWVzXG4gICAgICAgIC5tYXAoKHApID0+IHtcbiAgICAgICAgICBjb25zdCBpbnB1dCA9IERHLklucHV0QmFzZS5mb3JQcm9wZXJ0eShERy5Qcm9wZXJ0eS5mcm9tT3B0aW9ucyhwKSwgaXRlbSk7XG4gICAgICAgICAgZm9yIChjb25zdCB2IG9mIHAudmFsaWRhdG9ycyA/PyBbXSlcbiAgICAgICAgICAgIGlucHV0LmFkZFZhbGlkYXRvcigocykgPT4gVmFsdWVNYXRjaGVyLmZvclR5cGUocC50eXBlISwgdikudmFsaWRhdGUocykpO1xuICAgICAgICAgIGlucHV0Lm9uQ2hhbmdlZC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkl0ZW1DaGFuZ2VkLm5leHQoaXRlbSkpO1xuICAgICAgICAgIGlucHV0LmlucHV0Lm9uY2xpY2sgPSAoKSA9PiB0aGlzLm9uU2VsZWN0ZWQubmV4dChpdGVtKTtcbiAgICAgICAgICByZXR1cm4gaW5wdXQuaW5wdXQ7XG4gICAgICAgIH0pO1xuXG4gICAgICBpZiAodGhpcy5kYXRhLmFsbG93QWRkID8/IGZhbHNlKVxuICAgICAgICBlbGVtZW50cy5wdXNoKHVpLmljb25GQUIoJ3BsdXMnLCAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3SXRlbSA9IHRoaXMuZGF0YS5jcmVhdGVOZXcgPyB0aGlzLmRhdGEuY3JlYXRlTmV3KCkgOiB7fTtcbiAgICAgICAgICB0aGlzLmRhdGEuaXRlbXMuc3BsaWNlKHRoaXMuZGF0YS5pdGVtcy5pbmRleE9mKGl0ZW0pICsgMSwgMCwgbmV3SXRlbSk7XG4gICAgICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgICAgICAgdGhpcy5vbkl0ZW1BZGRlZC5uZXh0KG5ld0l0ZW0pO1xuICAgICAgICB9KSk7XG4gICAgICBpZiAodGhpcy5kYXRhLmFsbG93UmVtb3ZlID8/IGZhbHNlKVxuICAgICAgICBlbGVtZW50cy5wdXNoKHVpLmljb25GQUIoJ3RpbWVzJywgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZGF0YS5pdGVtcy5zcGxpY2UodGhpcy5kYXRhLml0ZW1zLmluZGV4T2YoaXRlbSksIDEpO1xuICAgICAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgICAgICAgIHRoaXMub25JdGVtUmVtb3ZlZC5uZXh0KGl0ZW0pO1xuICAgICAgICB9KSk7XG4gICAgICByZXR1cm4gZWxlbWVudHM7XG4gICAgfVxuXG4gICAgdGhpcy50YWJsZSA9IHVpLnRhYmxlKHRoaXMuZGF0YS5pdGVtcywgY3JlYXRlUm93KTtcbiAgICB1aS5lbXB0eSh0aGlzLnJvb3QpO1xuICAgIHRoaXMucm9vdC5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlKTtcbiAgfVxufVxuXG5cbmV4cG9ydCBjbGFzcyBQcm9wZXJ0eVZhbGlkYXRvciB7XG4gIHN0YXRpYyBOT1RfRU1QVFkgPSAnbm90IGVtcHR5JztcblxuICBzdGF0aWMgdmFsaWRhdG9yczoge1tuYW1lOiBzdHJpbmddOiAodmFsdWU6IGFueSkgPT4gc3RyaW5nIHwgbnVsbH0gPSB7XG4gICAgTk9UX0VNUFRZOiAoczogYW55KSA9PiBzID09IG51bGwgfHwgcyA9PT0gJycgPyBcIkNhbid0IGJlIGVtcHR5XCIgOiBudWxsXG4gIH1cblxuICBzdGF0aWMgZ2V0VmFsaWRhdG9yKG9iajogYW55LCBwcm9wOiBERy5JUHJvcGVydHksIGV4cHJlc3Npb246IHN0cmluZyk6ICgodmFsdWU6IGFueSkgPT4gc3RyaW5nIHwgbnVsbCkge1xuICAgIGlmICh0aGlzLnZhbGlkYXRvcnNbZXhwcmVzc2lvbl0gIT09IG51bGwpXG4gICAgICByZXR1cm4gdGhpcy52YWxpZGF0b3JzW2V4cHJlc3Npb25dO1xuXG4gICAgaWYgKFZhbHVlTWF0Y2hlci5zdXBwb3J0ZWRUeXBlcy5pbmNsdWRlcyhwcm9wLnR5cGUhKSlcbiAgICAgIHJldHVybiBWYWx1ZU1hdGNoZXIuZm9yVHlwZShwcm9wLnR5cGUhLCBleHByZXNzaW9uKS52YWxpZGF0ZTtcblxuICAgIHJldHVybiAoXykgPT4gbnVsbDtcbiAgfVxuXG4gIHN0YXRpYyByZWdpc3RlclZhbGlkYXRvcihuYW1lOiBzdHJpbmcsIHZhbGlkYXRvcjogKCh4OiBhbnkpID0+IHN0cmluZyB8IG51bGwpKSB7XG4gICAgdGhpcy52YWxpZGF0b3JzW25hbWVdID0gdmFsaWRhdG9yO1xuICB9XG59XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"forms-viewer.d.ts","sourceRoot":"","sources":["forms-viewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGtC,OAAO,EAAa,OAAO,EAAC,MAAM,MAAM,CAAC;AAEzC,OAAO,qBAAqB,CAAC;AAK7B,qBAAa,WAAY,SAAQ,EAAE,CAAC,QAAQ;IAC1C,IAAI,IAAI,IAAI,MAAM,CAA0B;IAC5C,YAAY,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC3C,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,UAAS;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,gBAAgB,EAAE,cAAc,CAAC;IACjC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAK;IAC7B,mBAAmB,iBAAuF;IAC1G,qBAAqB,iBAA0F;IAC/G,YAAY,EAAE,WAAW,CAAC;IAC1B,aAAa,EAAE,WAAW,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAAiB;IAE9C,IAAI,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,EAG7B;IAED,IAAI,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAOjC;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,EAG7B;IAED,SAAS,CAAC,eAAe,IAAI,EAAE,CAAC,KAAK;;IAuErC,qBAAqB,CAAC,KAAK,CAAC,EAAE,MAAM;IAOpC,cAAc,CAAC,EAAE,EAAC,WAAW;IAI7B,eAAe;IA2Bf,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE;IAIxC,uBAAuB;IAavB,iBAAiB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,IAAI;IAO9C,YAAY;IAgCZ,IAAI,aAAa,aAA6C;IAC9D,IAAI,YAAY,iBAA2E;IAE3F,OAAO;IAWP,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO;IAkHxC,MAAM;CAkBP"}
1
+ {"version":3,"file":"forms-viewer.d.ts","sourceRoot":"","sources":["forms-viewer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAGtC,OAAO,EAAa,OAAO,EAAC,MAAM,MAAM,CAAC;AAEzC,OAAO,qBAAqB,CAAC;AAK7B,qBAAa,WAAY,SAAQ,EAAE,CAAC,QAAQ;IAC1C,IAAI,IAAI,IAAI,MAAM,CAA0B;IAC5C,YAAY,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC3C,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,UAAS;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,gBAAgB,EAAE,cAAc,CAAC;IACjC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAK;IAC7B,mBAAmB,iBAAuF;IAC1G,qBAAqB,iBAA0F;IAC/G,YAAY,EAAE,WAAW,CAAC;IAC1B,aAAa,EAAE,WAAW,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAAiB;IAE9C,IAAI,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,EAG7B;IAED,IAAI,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAOjC;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,EAG7B;IAED,SAAS,CAAC,eAAe,IAAI,EAAE,CAAC,KAAK;;IAuErC,qBAAqB,CAAC,KAAK,CAAC,EAAE,MAAM;IAOpC,cAAc,CAAC,EAAE,EAAC,WAAW;IAI7B,eAAe;IA2Bf,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE;IAIxC,uBAAuB;IAavB,iBAAiB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,IAAI;IAO9C,YAAY;IAgCZ,IAAI,aAAa,aAA6C;IAC9D,IAAI,YAAY,iBAA2E;IAE3F,OAAO;IAWP,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO;IAiHxC,MAAM;CAkBP"}
@@ -189,7 +189,7 @@ export class FormsViewer extends DG.JsViewer {
189
189
  row = this.indexes[row - (this.showCurrentRow ? 1 : 0) - (this.showMouseOverRow ? 1 : 0)];
190
190
  }
191
191
  const form = ui.divV(this.fieldsColumnNames.map((name) => {
192
- var _a, _b;
192
+ var _a, _b, _c;
193
193
  let resDiv = ui.div();
194
194
  if (row === -1)
195
195
  return resDiv;
@@ -227,10 +227,9 @@ export class FormsViewer extends DG.JsViewer {
227
227
  input.readOnly = true;
228
228
  if (this.colorCode) {
229
229
  if (grid) {
230
- const gridCellIdx = grid.getRowOrder().indexOf(row);
231
- if (gridCellIdx !== -1) {
232
- const color = grid.cell(name, gridCellIdx).color;
233
- if ((_b = grid.col(name)) === null || _b === void 0 ? void 0 : _b.isTextColorCoded)
230
+ const color = (_b = this.dataFrame.col(name)) === null || _b === void 0 ? void 0 : _b.meta.colors.getColor(row);
231
+ if (color) {
232
+ if ((_c = grid.col(name)) === null || _c === void 0 ? void 0 : _c.isTextColorCoded)
234
233
  input.input.setAttribute('style', `color:${DG.Color.toHtml(color)}!important;`);
235
234
  else {
236
235
  input.input.setAttribute('style', `color:${DG.Color.toHtml(DG.Color.getContrastColor(color))}!important;`);
@@ -297,4 +296,4 @@ export class FormsViewer extends DG.JsViewer {
297
296
  this.virtualView.setData(this.indexes.length + (this.showCurrentRow ? 1 : 0) + (this.showMouseOverRow ? 1 : 0), (i) => this.renderForm(i));
298
297
  }
299
298
  }
300
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMtdmlld2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZm9ybXMtdmlld2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEMsT0FBTyxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0QyxPQUFPLEtBQUssSUFBSSxNQUFNLG1CQUFtQixDQUFDO0FBQzFDLE9BQU8sRUFBYSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8scUJBQXFCLENBQUM7QUFFN0IsTUFBTSwyQkFBMkIsR0FBRywrREFBK0QsQ0FBQztBQUNwRyxNQUFNLHdCQUF3QixHQUFHLEVBQUUsQ0FBQztBQUVwQyxNQUFNLE9BQU8sV0FBWSxTQUFRLEVBQUUsQ0FBQyxRQUFRO0lBQzFDLElBQUksSUFBSSxLQUFhLE9BQU8sYUFBYSxDQUFDLENBQUMsQ0FBQztJQWtCNUMsSUFBSSxTQUFTLENBQUMsRUFBZ0I7UUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLGVBQWUsQ0FBQyxJQUFjO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLFFBQWtCO1FBQzVCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxRQUFRLENBQUM7UUFDbEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFUyxlQUFlO1FBQ3ZCLFFBQVEsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUN6QixLQUFLLFFBQVEsQ0FBQyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUM3QyxLQUFLLE9BQU8sQ0FBQyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUM1QyxLQUFLLE9BQU8sQ0FBQztZQUNiLE9BQU8sQ0FBQyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUN2QztJQUNILENBQUM7SUFFRDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBeENWLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBSXRCLHFCQUFnQixHQUFXLENBQUMsQ0FBQztRQUM3Qix3QkFBbUIsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSx1RUFBdUUsQ0FBQyxDQUFDO1FBQzFHLDBCQUFxQixHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLDBFQUEwRSxDQUFDLENBQUM7UUFHL0csaUJBQVksR0FBb0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQWlDNUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxrREFBa0QsQ0FBQztRQUVsRSxhQUFhO1FBQ2IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwRixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLE9BQU8sRUFBRSxFQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLEVBQUMsQ0FBaUMsQ0FBQztRQUVsSSxRQUFRO1FBQ1IsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFFbEIsT0FBTztRQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsRixNQUFNLGdCQUFnQixHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDdkQsTUFBTSxpQkFBaUIsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDM0YsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUV6QyxJQUFJLENBQUMsWUFBWSxHQUFHLGlCQUFpQixDQUFDLGlCQUFnQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxhQUFhLEdBQUcsaUJBQWlCLENBQUMsZ0JBQStCLENBQUM7UUFFdkUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3pELEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTlELEVBQUUsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2pELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHOzs7O09BSXJDLENBQUM7WUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUc7O09BRWpDLENBQUM7WUFDRixnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHOzs7Ozs7O09BT2hDLENBQUM7WUFFRixnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFRLEVBQUUsRUFBRTtnQkFDdkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLGdCQUFnQixDQUFDLFNBQVMsQ0FBQztZQUMvRCxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQVEsRUFBRSxFQUFFO2dCQUM1RCxnQkFBZ0IsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQy9ELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDN0QsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBYztRQUNsQyxNQUFNLENBQUMsR0FBRyxLQUFLLGFBQUwsS0FBSyxjQUFMLEtBQUssR0FBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDekMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEtBQUssQ0FBQztRQUMxRCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUM7UUFDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsU0FBUyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUM7SUFDakUsQ0FBQztJQUVELGNBQWMsQ0FBQyxFQUFjO1FBQzNCLE9BQU8sUUFBUSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxpQkFBaUIsS0FBSyxJQUFJO1lBQ2pDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBRTVELE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBMkIsRUFBRSxNQUFnQixFQUFFLEVBQUU7WUFDNUQsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDckUsQ0FBQyxDQUFDO1FBRUYsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUM3RCxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRTFELEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRTNELEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUFFLEdBQUcsRUFBRTtZQUN4QyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFFSCxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsRUFDN0UsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWMsQ0FBQyxDQUFDLENBQUM7UUFFM0QsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFDakYsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQWEsQ0FBQyxDQUFDLENBQUM7UUFFMUQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxTQUFtQjtRQUN0QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDdEYsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNsRCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDO1FBQzVDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDaEMsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3RCxJQUFJLE1BQU0sS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDakIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BDLE9BQU8sRUFBRSxDQUFDO2dCQUNWLENBQUMsRUFBRSxDQUFDO2FBQ0w7U0FDRjtJQUNILENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxRQUFxQjtRQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxnQkFBZ0IsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLGtCQUFrQjtZQUM3RSxRQUFRLENBQUMsSUFBSSxLQUFLLGtCQUFrQixJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWE7WUFDMUYsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxRQUFRLENBQUMsSUFBSSxtQ0FBbUMsQ0FBQyxDQUFDO1FBQ3JGLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRUQsWUFBWTtRQUNWLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDaEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0IsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFaEMsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDekMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBcUIsQ0FBQztZQUNwRixJQUFJLFNBQVMsRUFBRTtnQkFDYixNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDeEUsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO29CQUN4QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDO29CQUNsRixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2hCLENBQUMsQ0FBQyxDQUFDO2dCQUNILE1BQU0sb0JBQW9CLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsRUFBRSx1Q0FBdUMsQ0FBQyxDQUFDO2dCQUN2RyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDO29CQUMvQyxTQUFTLENBQUMsU0FBUyxHQUFHLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO2dCQUN2RSxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUcsU0FBUyxHQUFHLEVBQUUsSUFBSSxDQUFDO2dCQUN2RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLG9CQUFvQixDQUFDLENBQUM7Z0JBQ3hELFdBQVcsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFhLEVBQUUsRUFBRTtvQkFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFFLENBQUM7Z0JBQ3hELENBQUMsQ0FBQztnQkFDRixJQUFJLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCO29CQUNuRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUMsS0FBSyxDQUFDO2dCQUNwRSxvQkFBb0IsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFhLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztnQkFDOUYsb0JBQW9CLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBYSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7YUFDOUY7U0FDRjtRQUVELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRUQsSUFBSSxhQUFhLEtBQUssT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUQsSUFBSSxZQUFZLEtBQUssT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUUzRixPQUFPO1FBQ0wsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFLLElBQUksQ0FBQyxJQUFxQixDQUFDLElBQUk7WUFDL0MsT0FBUSxJQUFJLENBQUMsSUFBcUIsQ0FBQyxJQUFJLENBQUM7UUFDMUMsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUk7WUFDckcsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFDNUIsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0YsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUk7WUFDZixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFDakIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQVcsRUFBRSxNQUFnQjtRQUN0QyxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUM7UUFDckIsSUFBSSxNQUFNO1lBQ1IsR0FBRyxHQUFHLENBQUMsQ0FBQzthQUNMO1lBQ0gsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsYUFBYTtnQkFDbkQsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDO2lCQUNoQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxHQUFHLEtBQUssSUFBSSxDQUFDLFlBQVk7Z0JBQ3pELEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQzs7Z0JBRXJDLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM3RjtRQUVELE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQ2xCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTs7WUFDbEMsSUFBSSxNQUFNLEdBQWdCLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNuQyxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUM7Z0JBQ1osT0FBTyxNQUFNLENBQUM7WUFFaEIsSUFBSTtnQkFDRixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzVCLCtEQUErRDtnQkFDL0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFFLENBQUM7Z0JBQ3RDLElBQUksR0FBRyxDQUFDLE9BQU8sS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsS0FBSSxNQUFBLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxHQUFHLENBQUMsSUFBSSxDQUFDLDBDQUFFLFFBQVEsQ0FBQSxFQUFFO29CQUNwRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7b0JBQ3ZDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFFLENBQUMsUUFBUyxDQUFDO29CQUMzQyxNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDakYsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDL0MsTUFBTSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDbkQsTUFBTSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDcEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUUsQ0FBQztvQkFDckMsbURBQW1EO29CQUNuRCxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztvQkFFNUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBRXBDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUM7b0JBQ2pGLE1BQU0sR0FBRyxNQUFNLENBQUM7b0JBQ2hCLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLCtEQUErRDtvQkFDbEcsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQWEsRUFBRSxFQUFFO3dCQUNqQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7d0JBQzVELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMvQixDQUFDLENBQUM7b0JBQ0YsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO2lCQUUvQjtxQkFBTTtvQkFDTCxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDMUMsSUFBSSxLQUFLLEVBQUU7d0JBQ1QsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUUsQ0FBQyxPQUFPLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFROzRCQUMzRCxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO3dCQUNqRixLQUFLLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7d0JBQ3pDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO3dCQUM1QyxLQUFLLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQzt3QkFFdEIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFOzRCQUNsQixJQUFJLElBQUksRUFBRTtnQ0FDUixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dDQUNwRCxJQUFJLFdBQVcsS0FBSyxDQUFDLENBQUMsRUFBRTtvQ0FDdEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUMsS0FBSyxDQUFDO29DQUNqRCxJQUFJLE1BQUEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsMENBQUUsZ0JBQWdCO3dDQUNsQyxLQUFLLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7eUNBQzdFO3dDQUNILEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFDOUIsU0FBUyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO3dDQUMzRSxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7cUNBQzVEO2lDQUNGOzZCQUNGO3lCQUNGO3dCQUNELEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBYSxFQUFFLEVBQUU7NEJBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQzs0QkFDNUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7d0JBQy9CLENBQUMsQ0FBQzt3QkFDRixFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO3dCQUVuQyxNQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztxQkFDdEI7aUJBQ0Y7YUFDRjtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDakI7WUFDRixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQ0EsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1FBRTNCLElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsWUFBWTtZQUN4RCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzFDLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxRQUFRLEtBQUssSUFBSSxDQUFDLGFBQWE7WUFDeEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUV4QyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO1lBQ25DLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFO2dCQUNuQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsRUFBRTtvQkFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUMxQztpQkFBTTtnQkFDTCxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7b0JBQ2pCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUMzRCxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztpQkFDdEQ7cUJBQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFO29CQUN6QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFO3dCQUMvQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztpQkFDN0M7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksUUFBUSxLQUFLLElBQUksQ0FBQyxhQUFhO3dCQUN6RCxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUM7aUJBQ3RDO2FBQ0Y7UUFDSCxDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixJQUFJLFFBQVEsS0FBSyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQzVELElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLEdBQUcsR0FBRyxDQUFDO1lBQy9ELElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDL0Q7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdkIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUNyRCxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQ2xFOztnQkFFQyxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztTQUNyQjtRQUVELEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFaEMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXBCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ3JGLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCAqIGFzIHVpIGZyb20gJ2RhdGFncm9rLWFwaS91aSc7XG5pbXBvcnQgKiBhcyBncm9rIGZyb20gJ2RhdGFncm9rLWFwaS9ncm9rJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpbHRlcn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0ICcuLi8uLi9jc3MvZm9ybXMuY3NzJztcblxuY29uc3QgQ09MU19MSU1JVF9FWENFRURFRF9XQVJOSU5HID0gYE51bWJlciBvZiBjb2x1bW5zIGlzIG1vcmUgdGhhbiAyMC4gRmlyc3QgMjAgY29sdW1ucyBhcmUgc2hvd25gO1xuY29uc3QgQk9PTEVBTl9JTlBVVF9UT1BfTUFSR0lOID0gMTU7XG5cbmV4cG9ydCBjbGFzcyBGb3Jtc1ZpZXdlciBleHRlbmRzIERHLkpzVmlld2VyIHtcbiAgZ2V0IHR5cGUoKTogc3RyaW5nIHsgcmV0dXJuICdGb3Jtc1ZpZXdlcic7IH1cbiAgbW9sZWN1bGVTaXplOiAnc21hbGwnIHwgJ25vcm1hbCcgfCAnbGFyZ2UnO1xuICBmaWVsZHNDb2x1bW5OYW1lczogc3RyaW5nW107XG4gIGNvbG9yQ29kZTogYm9vbGVhbjtcbiAgc2hvd0N1cnJlbnRSb3c6IGJvb2xlYW47XG4gIHNob3dNb3VzZU92ZXJSb3c6IGJvb2xlYW47XG4gIHNob3dTZWxlY3RlZFJvd3M6IGJvb2xlYW47XG4gIHNob3dGaXhlZFJvd3MgPSBmYWxzZTtcbiAgaW5kZXhlczogbnVtYmVyW107XG4gIGNvbHVtbkhlYWRlcnNEaXY6IEhUTUxEaXZFbGVtZW50O1xuICB2aXJ0dWFsVmlldzogREcuVmlydHVhbFZpZXc7XG4gIGNvbHVtbkxhYmVsV2lkdGg6IG51bWJlciA9IDA7XG4gIGN1cnJlbnRSb3dJbmRpY2F0b3IgPSB1aS5kaXYoJycsICdkNC1tdWx0aS1mb3JtLWZvcm0taW5kaWNhdG9yIGQ0LW11bHRpLWZvcm0tZm9ybS1pbmRpY2F0b3ItY3VycmVudC1yb3cnKTtcbiAgbW91c2VPdmVyUm93SW5kaWNhdG9yID0gdWkuZGl2KCcnLCAnZDQtbXVsdGktZm9ybS1mb3JtLWluZGljYXRvciBkNC1tdWx0aS1mb3JtLWZvcm0taW5kaWNhdG9yLW1vdXNlLW92ZXItcm93Jyk7XG4gIHNwbGl0Q29sTGVmdDogSFRNTEVsZW1lbnQ7XG4gIHNwbGl0Q29sUmlnaHQ6IEhUTUxFbGVtZW50O1xuICBpbnB1dENsaWNrZWQ6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgc2V0IGRhdGFmcmFtZShkZjogREcuRGF0YUZyYW1lKSB7XG4gICAgdGhpcy5kYXRhRnJhbWUgPSBkZjtcbiAgICB0aGlzLm9uVGFibGVBdHRhY2hlZCgpO1xuICB9XG5cbiAgc2V0IGZpeGVkUm93TnVtYmVycyhpZHhzOiBudW1iZXJbXSkge1xuICAgIHRoaXMuaW5kZXhlcyA9IGlkeHM7XG4gICAgdGhpcy5zaG93Q3VycmVudFJvdyA9IGZhbHNlO1xuICAgIHRoaXMuc2hvd01vdXNlT3ZlclJvdyA9IGZhbHNlO1xuICAgIHRoaXMuc2hvd1NlbGVjdGVkUm93cyA9IGZhbHNlO1xuICAgIHRoaXMuc2hvd0ZpeGVkUm93cyA9IHRydWU7XG4gICAgdGhpcy5yZW5kZXIoKTtcbiAgfVxuXG4gIHNldCBjb2x1bW5zKGNvbE5hbWVzOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuZmllbGRzQ29sdW1uTmFtZXMgPSBjb2xOYW1lcztcbiAgICB0aGlzLnJlbmRlcigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldE1vbGVjdWxlU2l6ZSgpOiBERy5Qb2ludCB7XG4gICAgc3dpdGNoICh0aGlzLm1vbGVjdWxlU2l6ZSkge1xuICAgICAgY2FzZSAnbm9ybWFsJzogcmV0dXJuIG5ldyBERy5Qb2ludCgyMDAsIDEwMCk7XG4gICAgICBjYXNlICdsYXJnZSc6IHJldHVybiBuZXcgREcuUG9pbnQoMzAwLCAxNTApO1xuICAgICAgY2FzZSAnc21hbGwnOlxuICAgICAgZGVmYXVsdDogcmV0dXJuIG5ldyBERy5Qb2ludCgxMjAsIDYwKTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5oZWxwVXJsID0gJ2h0dHBzOi8vZGF0YWdyb2suYWkvaGVscC92aXN1YWxpemUvdmlld2Vycy9mb3Jtcyc7XG5cbiAgICAvLyBwcm9wZXJ0aWVzXG4gICAgdGhpcy5maWVsZHNDb2x1bW5OYW1lcyA9IHRoaXMuYWRkUHJvcGVydHkoJ2ZpZWxkc0NvbHVtbk5hbWVzJywgREcuVFlQRS5DT0xVTU5fTElTVCk7XG4gICAgdGhpcy5jb2xvckNvZGUgPSB0aGlzLmJvb2woJ2NvbG9yQ29kZScsIHRydWUpO1xuICAgIHRoaXMuc2hvd0N1cnJlbnRSb3cgPSB0aGlzLmJvb2woJ3Nob3dDdXJyZW50Um93JywgdHJ1ZSk7XG4gICAgdGhpcy5zaG93TW91c2VPdmVyUm93ID0gdGhpcy5ib29sKCdzaG93TW91c2VPdmVyUm93JywgdHJ1ZSk7XG4gICAgdGhpcy5zaG93U2VsZWN0ZWRSb3dzID0gdGhpcy5ib29sKCdzaG93U2VsZWN0ZWRSb3dzJywgdHJ1ZSk7XG4gICAgdGhpcy5tb2xlY3VsZVNpemUgPSB0aGlzLnN0cmluZygnbW9sZWN1bGVTaXplJywgJ3NtYWxsJywge2Nob2ljZXM6IFsnc21hbGwnLCAnbm9ybWFsJywgJ2xhcmdlJ119KSBhcyAnc21hbGwnIHwgJ25vcm1hbCcgfCAnbGFyZ2UnO1xuXG4gICAgLy9maWVsZHNcbiAgICB0aGlzLmluZGV4ZXMgPSBbXTtcblxuICAgIC8vIGluaXRcbiAgICB0aGlzLnJvb3QuY2xhc3NMaXN0LmFkZCgnZDQtbXVsdGktZm9ybScpO1xuICAgIHRoaXMuY29sdW1uSGVhZGVyc0RpdiA9IHVpLmRpdihbXSwgJ2Q0LW11bHRpLWZvcm0taGVhZGVyJyk7XG4gICAgdGhpcy52aXJ0dWFsVmlldyA9IHVpLnZpcnR1YWxWaWV3KDAsIChpOiBudW1iZXIpID0+IHRoaXMucmVuZGVyRm9ybShpKSwgZmFsc2UsIDEpO1xuICAgIGNvbnN0IGNvbHVtbkhlYWRlcnNCb3ggPSB1aS5kaXYodGhpcy5jb2x1bW5IZWFkZXJzRGl2KTtcbiAgICBjb25zdCBmb3JtV2l0aEhlYWRlckRpdiA9IHVpLnNwbGl0SChbY29sdW1uSGVhZGVyc0JveCwgdGhpcy52aXJ0dWFsVmlldy5yb290XSwgbnVsbCwgdHJ1ZSk7XG4gICAgdGhpcy5yb290LmFwcGVuZENoaWxkKGZvcm1XaXRoSGVhZGVyRGl2KTtcblxuICAgIHRoaXMuc3BsaXRDb2xMZWZ0ID0gZm9ybVdpdGhIZWFkZXJEaXYuZmlyc3RFbGVtZW50Q2hpbGQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgdGhpcy5zcGxpdENvbFJpZ2h0ID0gZm9ybVdpdGhIZWFkZXJEaXYubGFzdEVsZW1lbnRDaGlsZCBhcyBIVE1MRWxlbWVudDtcblxuICAgIHVpLnRvb2x0aXAuYmluZCh0aGlzLmN1cnJlbnRSb3dJbmRpY2F0b3IsICdDdXJyZW50IHJvdycpO1xuICAgIHVpLnRvb2x0aXAuYmluZCh0aGlzLm1vdXNlT3ZlclJvd0luZGljYXRvciwgJ01vdXNlIG92ZXIgcm93Jyk7XG5cbiAgICB1aS50b29scy53YWl0Rm9yRWxlbWVudEluRG9tKHRoaXMucm9vdCkudGhlbigoXykgPT4ge1xuICAgICAgdGhpcy5jb2x1bW5IZWFkZXJzRGl2LnN0eWxlLmNzc1RleHQgPSBgXG4gICAgICAgIG92ZWZsb3c6aGlkZGVuIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiAxNTBweDtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICBgO1xuICAgICAgdGhpcy5zcGxpdENvbExlZnQuc3R5bGUuY3NzVGV4dCA9IGBcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbiFpbXBvcnRhbnQ7XG4gICAgICBgO1xuICAgICAgY29sdW1uSGVhZGVyc0JveC5zdHlsZS5jc3NUZXh0ID0gYFxuICAgICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAgICAgd2lkdGg6MTAwJTtcbiAgICAgICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6ZmxleDtcbiAgICAgICAgcGFkZGluZy1yaWdodDoxN3B4O1xuICAgICAgICBvdmVyZmxvdzogc2Nyb2xsIWltcG9ydGFudDtcbiAgICAgIGA7XG5cbiAgICAgIGNvbHVtbkhlYWRlcnNCb3guYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKGU6IEV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMudmlydHVhbFZpZXcucm9vdC5zY3JvbGxUb3AgPSBjb2x1bW5IZWFkZXJzQm94LnNjcm9sbFRvcDtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnZpcnR1YWxWaWV3LnJvb3QuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgKGU6IEV2ZW50KSA9PiB7XG4gICAgICAgIGNvbHVtbkhlYWRlcnNCb3guc2Nyb2xsVG9wID0gdGhpcy52aXJ0dWFsVmlldy5yb290LnNjcm9sbFRvcDtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgdWkudG9vbHMud2FpdEZvckVsZW1lbnRJbkRvbSh0aGlzLnZpcnR1YWxWaWV3LnJvb3QpLnRoZW4oKF8pID0+IHtcbiAgICAgIHRoaXMuZml0SGVhZGVyVG9MYWJlbFdpZHRoKCk7XG4gICAgfSk7XG4gIH1cblxuICBmaXRIZWFkZXJUb0xhYmVsV2lkdGgod2lkdGg/OiBudW1iZXIpIHtcbiAgICBjb25zdCB3ID0gd2lkdGggPz8gdGhpcy5jb2x1bW5MYWJlbFdpZHRoO1xuICAgIGNvbnN0IHJvb3RXaWR0aCA9IHRoaXMucm9vdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICB0aGlzLnNwbGl0Q29sTGVmdC5zdHlsZS53aWR0aCA9IGAke3cgKyAzMH1weGA7XG4gICAgdGhpcy5zcGxpdENvbFJpZ2h0LnN0eWxlLndpZHRoID0gYCR7cm9vdFdpZHRoIC0gdyAtIDMwIC0gNH1weGA7XG4gIH1cblxuICBnZXRDb2x1bW5XaWR0aChlbDpIVE1MRWxlbWVudCkge1xuICAgIHJldHVybiBwYXJzZUludChlbC5zdHlsZS53aWR0aCk7XG4gIH1cblxuICBvblRhYmxlQXR0YWNoZWQoKSB7XG4gICAgaWYgKHRoaXMuZmllbGRzQ29sdW1uTmFtZXMgPT09IG51bGwpXG4gICAgICB0aGlzLnNldEZpZWxkc0NvbHVtbk5hbWVzKHRoaXMuZGF0YUZyYW1lLmNvbHVtbnMubmFtZXMoKSk7XG5cbiAgICBjb25zdCBzdWIgPSAoc3RyZWFtOiBPYnNlcnZhYmxlPHVua25vd24+LCBhY3Rpb246IEZ1bmN0aW9uKSA9PiB7XG4gICAgICB0aGlzLnN1YnMucHVzaChERy5kZWJvdW5jZShzdHJlYW0sIDUwKS5zdWJzY3JpYmUoKF8pID0+IGFjdGlvbigpKSk7XG4gICAgfTtcblxuICAgIHN1Yih0aGlzLmRhdGFGcmFtZS5zZWxlY3Rpb24ub25DaGFuZ2VkLCAoKSA9PiB0aGlzLnJlbmRlcigpKTtcbiAgICBzdWIodGhpcy5kYXRhRnJhbWUuZmlsdGVyLm9uQ2hhbmdlZCwgKCkgPT4gdGhpcy5yZW5kZXIoKSk7XG5cbiAgICBzdWIodGhpcy5kYXRhRnJhbWUub25NZXRhZGF0YUNoYW5nZWQsICgpID0+IHRoaXMucmVuZGVyKCkpO1xuXG4gICAgc3ViKHRoaXMuZGF0YUZyYW1lLm9uQ29sdW1uc1JlbW92ZWQsICgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlRmllbGRzQ29sdW1uTmFtZXMoKTtcbiAgICAgIHRoaXMucmVuZGVyKCk7XG4gICAgfSk7XG5cbiAgICBzdWIodGhpcy5kYXRhRnJhbWUub25DdXJyZW50Um93Q2hhbmdlZC5waXBlKGZpbHRlcigoXykgPT4gdGhpcy5zaG93Q3VycmVudFJvdykpLFxuICAgICAgKCkgPT4gdGhpcy52aXJ0dWFsVmlldy5yZWZyZXNoSXRlbSh0aGlzLmN1cnJlbnRSb3dQb3MhKSk7XG5cbiAgICBzdWIodGhpcy5kYXRhRnJhbWUub25Nb3VzZU92ZXJSb3dDaGFuZ2VkLnBpcGUoZmlsdGVyKChfKSA9PiB0aGlzLnNob3dNb3VzZU92ZXJSb3cpKSxcbiAgICAgICgpID0+IHRoaXMudmlydHVhbFZpZXcucmVmcmVzaEl0ZW0odGhpcy5tb3VzZU92ZXJQb3MhKSk7XG5cbiAgICB0aGlzLnJlbmRlcigpO1xuICB9XG5cbiAgc2V0RmllbGRzQ29sdW1uTmFtZXMoZGZDb2x1bW5zOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuZmllbGRzQ29sdW1uTmFtZXMgPSBkZkNvbHVtbnMubGVuZ3RoID4gMjAgPyBkZkNvbHVtbnMuc2xpY2UoMCwgMjApIDogZGZDb2x1bW5zO1xuICB9XG5cbiAgdXBkYXRlRmllbGRzQ29sdW1uTmFtZXMoKSB7XG4gICAgY29uc3QgbmV3Q29sdW1ucyA9IHRoaXMuZGF0YUZyYW1lLmNvbHVtbnMubmFtZXMoKTtcbiAgICBsZXQgY291bnRlciA9IHRoaXMuZmllbGRzQ29sdW1uTmFtZXMubGVuZ3RoO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnRlcjsgaSsrKSB7XG4gICAgICBjb25zdCBjb2xJZHggPSBuZXdDb2x1bW5zLmluZGV4T2YodGhpcy5maWVsZHNDb2x1bW5OYW1lc1tpXSk7XG4gICAgICBpZiAoY29sSWR4ID09PSAtMSkge1xuICAgICAgICB0aGlzLmZpZWxkc0NvbHVtbk5hbWVzLnNwbGljZShpLCAxKTtcbiAgICAgICAgY291bnRlci0tO1xuICAgICAgICBpLS07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25Qcm9wZXJ0eUNoYW5nZWQocHJvcGVydHk6IERHLlByb3BlcnR5KTogdm9pZCB7XG4gICAgaWYgKChwcm9wZXJ0eS5uYW1lID09PSAnc2hvd0N1cnJlbnRSb3cnIHx8IHByb3BlcnR5Lm5hbWUgPT09ICdzaG93TW91c2VPdmVyUm93JyB8fFxuICAgICAgcHJvcGVydHkubmFtZSA9PT0gJ3Nob3dTZWxlY3RlZFJvd3MnICYmIHByb3BlcnR5LmdldCh0aGlzKSA9PT0gdHJ1ZSkgJiYgdGhpcy5zaG93Rml4ZWRSb3dzKVxuICAgICAgZ3Jvay5zaGVsbC53YXJuaW5nKGBDYW5ub3Qgc2V0ICR7cHJvcGVydHkubmFtZX0gdG8gdHJ1ZSBzaW5jZSBmaXhlZCByb3dzIGFyZSBzZXRgKTtcbiAgICB0aGlzLnJlbmRlcigpO1xuICB9XG5cbiAgcmVuZGVySGVhZGVyKCkge1xuICAgIHVpLmVtcHR5KHRoaXMuY29sdW1uSGVhZGVyc0Rpdik7XG4gICAgY29uc3QgZm9ybSA9IHRoaXMucmVuZGVyRm9ybSgwLCB0cnVlKTtcbiAgICBmb3JtLmNsYXNzTGlzdC5hZGQoJ3RlbXAnKTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZvcm0pO1xuXG4gICAgZm9yIChjb25zdCBuYW1lIG9mIHRoaXMuZmllbGRzQ29sdW1uTmFtZXMpIHtcbiAgICAgIGNvbnN0IGZvcm1GaWVsZCA9IGZvcm0ucXVlcnlTZWxlY3RvcignW2NvbHVtbj1cIicgKyBuYW1lICsgJ1wiXScpIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICBpZiAoZm9ybUZpZWxkKSB7XG4gICAgICAgIGNvbnN0IGNvbHVtbkxhYmVsID0gdWkuYmluZCh0aGlzLmRhdGFGcmFtZS5jb2wobmFtZSksIHVpLmRpdlRleHQobmFtZSkpO1xuICAgICAgICBjb25zdCBjbG9zZUljb24gPSB1aS5pY29uRkEoJ3RpbWVzJywgKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZmllbGRzQ29sdW1uTmFtZXMgPSB0aGlzLmZpZWxkc0NvbHVtbk5hbWVzLmZpbHRlcigodmFsdWUpID0+IHZhbHVlICE9PSBuYW1lKTtcbiAgICAgICAgICB0aGlzLnJlbmRlcigpO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgY29sdW1uTGFiZWxDb250YWluZXIgPSB1aS5kaXYoW2NvbHVtbkxhYmVsLCBjbG9zZUljb25dLCAnZDQtbXVsdGktZm9ybS1jb2x1bW4tbmFtZSBkNC1mbGV4LXJvdycpO1xuICAgICAgICBjb25zdCBvZmZzZXRUb3AgPSBmb3JtRmllbGQudHlwZSA9PT0gJ2NoZWNrYm94JyA/XG4gICAgICAgICAgZm9ybUZpZWxkLm9mZnNldFRvcCAtIEJPT0xFQU5fSU5QVVRfVE9QX01BUkdJTiA6IGZvcm1GaWVsZC5vZmZzZXRUb3A7XG4gICAgICAgIGNvbHVtbkxhYmVsQ29udGFpbmVyLnN0eWxlLnRvcCA9IGAke29mZnNldFRvcCArIDEwfXB4YDtcbiAgICAgICAgdGhpcy5jb2x1bW5IZWFkZXJzRGl2LmFwcGVuZENoaWxkKGNvbHVtbkxhYmVsQ29udGFpbmVyKTtcbiAgICAgICAgY29sdW1uTGFiZWwub25jbGljayA9IChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgdGhpcy5kYXRhRnJhbWUuY3VycmVudENvbCA9IHRoaXMuZGF0YUZyYW1lLmNvbChuYW1lKSE7XG4gICAgICAgIH07XG4gICAgICAgIGlmIChjb2x1bW5MYWJlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCA+IHRoaXMuY29sdW1uTGFiZWxXaWR0aClcbiAgICAgICAgICB0aGlzLmNvbHVtbkxhYmVsV2lkdGggPSBjb2x1bW5MYWJlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICAgICAgY29sdW1uTGFiZWxDb250YWluZXIub25tb3VzZWVudGVyID0gKGU6IE1vdXNlRXZlbnQpID0+IGNsb3NlSWNvbi5zdHlsZS52aXNpYmlsaXR5ID0gJ3Zpc2libGUnO1xuICAgICAgICBjb2x1bW5MYWJlbENvbnRhaW5lci5vbm1vdXNlbGVhdmUgPSAoZTogTW91c2VFdmVudCkgPT4gY2xvc2VJY29uLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3JtLnJlbW92ZSgpO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRSb3dQb3MoKSB7IHJldHVybiB0aGlzLnNob3dDdXJyZW50Um93ID8gMCA6IG51bGw7IH1cbiAgZ2V0IG1vdXNlT3ZlclBvcygpIHsgcmV0dXJuIHRoaXMuc2hvd01vdXNlT3ZlclJvdyA/ICh0aGlzLnNob3dDdXJyZW50Um93ID8gMSA6IDApIDogbnVsbDsgfVxuXG4gIGdldEdyaWQoKSB7XG4gICAgaWYgKHRoaXMudmlldyAmJiAodGhpcy52aWV3IGFzIERHLlRhYmxlVmlldykuZ3JpZClcbiAgICAgIHJldHVybiAodGhpcy52aWV3IGFzIERHLlRhYmxlVmlldykuZ3JpZDtcbiAgICBpZiAodGhpcy5kYXRhRnJhbWUgJiYgZ3Jvay5zaGVsbC50diAmJiBncm9rLnNoZWxsLnR2LmRhdGFGcmFtZSA9PT0gdGhpcy5kYXRhRnJhbWUgJiYgZ3Jvay5zaGVsbC50di5ncmlkKVxuICAgICAgcmV0dXJuIGdyb2suc2hlbGwudHYuZ3JpZDtcbiAgICBjb25zdCB0diA9IEFycmF5LmZyb20oZ3Jvay5zaGVsbC50YWJsZVZpZXdzKS5maW5kKCh0dikgPT4gdHYuZGF0YUZyYW1lID09PSB0aGlzLmRhdGFGcmFtZSk7XG4gICAgaWYgKHR2ICYmIHR2LmdyaWQpXG4gICAgICByZXR1cm4gdHYuZ3JpZDtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJlbmRlckZvcm0ocm93OiBudW1iZXIsIGhlYWRlcj86IGJvb2xlYW4pIHtcbiAgICBjb25zdCBzYXZlZElkeCA9IHJvdztcbiAgICBpZiAoaGVhZGVyKVxuICAgICAgcm93ID0gMDtcbiAgICBlbHNlIHtcbiAgICAgIGlmICh0aGlzLnNob3dDdXJyZW50Um93ICYmIHJvdyA9PT0gdGhpcy5jdXJyZW50Um93UG9zKVxuICAgICAgICByb3cgPSB0aGlzLmRhdGFGcmFtZS5jdXJyZW50Um93SWR4O1xuICAgICAgZWxzZSBpZiAodGhpcy5zaG93TW91c2VPdmVyUm93ICYmIHJvdyA9PT0gdGhpcy5tb3VzZU92ZXJQb3MpXG4gICAgICAgIHJvdyA9IHRoaXMuZGF0YUZyYW1lLm1vdXNlT3ZlclJvd0lkeDtcbiAgICAgIGVsc2VcbiAgICAgICAgcm93ID0gdGhpcy5pbmRleGVzW3JvdyAtICh0aGlzLnNob3dDdXJyZW50Um93ID8gMSA6IDApIC0gKHRoaXMuc2hvd01vdXNlT3ZlclJvdyA/IDEgOiAwKV07XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybSA9IHVpLmRpdlYoXG4gICAgICB0aGlzLmZpZWxkc0NvbHVtbk5hbWVzLm1hcCgobmFtZSkgPT4ge1xuICAgICAgICBsZXQgcmVzRGl2OiBIVE1MRWxlbWVudCA9IHVpLmRpdigpO1xuICAgICAgICBpZiAocm93ID09PSAtMSlcbiAgICAgICAgICByZXR1cm4gcmVzRGl2O1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgZ3JpZCA9IHRoaXMuZ2V0R3JpZCgpO1xuICAgICAgICAgIC8vIGZvciBtb2xlY3VsZXMsIHVzZSB0aGUgZ3JpZENvbCByZW5kZXJlciBpbnN0ZWFkIG9mIGlucHV0QmFzZVxuICAgICAgICAgIGNvbnN0IGNvbCA9IHRoaXMuZGF0YUZyYW1lLmNvbChuYW1lKSE7XG4gICAgICAgICAgaWYgKGNvbC5zZW1UeXBlID09PSBERy5TRU1UWVBFLk1PTEVDVUxFICYmIGdyaWQ/LmNvbChuYW1lKT8ucmVuZGVyZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IG1vbFNpemUgPSB0aGlzLmdldE1vbGVjdWxlU2l6ZSgpO1xuICAgICAgICAgICAgY29uc3QgcmVuZGVyZXIgPSBncmlkLmNvbChuYW1lKSEucmVuZGVyZXIhO1xuICAgICAgICAgICAgY29uc3QgZ3JpZENlbGwgPSBERy5HcmlkQ2VsbC5mcm9tQ29sdW1uUm93KGdyaWQsIG5hbWUsIGdyaWQudGFibGVSb3dUb0dyaWQocm93KSk7XG4gICAgICAgICAgICBjb25zdCBjYW52YXMgPSB1aS5jYW52YXMobW9sU2l6ZS54LCBtb2xTaXplLnkpO1xuICAgICAgICAgICAgY2FudmFzLndpZHRoID0gbW9sU2l6ZS54ICogd2luZG93LmRldmljZVBpeGVsUmF0aW87XG4gICAgICAgICAgICBjYW52YXMuaGVpZ2h0ID0gbW9sU2l6ZS55ICogd2luZG93LmRldmljZVBpeGVsUmF0aW87XG4gICAgICAgICAgICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKSE7XG4gICAgICAgICAgICAvLyBjdHguZmlsbFJlY3QoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTtcbiAgICAgICAgICAgIGN0eC5zY2FsZSh3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbywgd2luZG93LmRldmljZVBpeGVsUmF0aW8pO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBjYW52YXMuc2V0QXR0cmlidXRlKCdjb2x1bW4nLCBuYW1lKTtcblxuICAgICAgICAgICAgZ3JpZENlbGwucmVuZGVyKHtjb250ZXh0OiBjdHgsIGJvdW5kczogbmV3IERHLlJlY3QoMCwgMCwgbW9sU2l6ZS54LCBtb2xTaXplLnkpfSk7XG4gICAgICAgICAgICByZXNEaXYgPSBjYW52YXM7XG4gICAgICAgICAgICByZXNEaXYuc3R5bGUuYmFja2dyb3VuZCA9ICd3aGl0ZSc7IC8vIGZpeGVzIGJlZm9yZSBjaGFuZ2VzIG9mIHZpZXJ0dWFsIHZpZXcgbm90IHJlbW92aW5nIG9sZCBpdGVtc1xuICAgICAgICAgICAgcmVzRGl2Lm9uY2xpY2sgPSAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmRhdGFGcmFtZS5jdXJyZW50Q2VsbCA9IHRoaXMuZGF0YUZyYW1lLmNlbGwocm93LCBuYW1lKTtcbiAgICAgICAgICAgICAgdGhpcy5pbnB1dENsaWNrZWQubmV4dChuYW1lKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB1aS50b29sdGlwLmJpbmQocmVzRGl2LCBuYW1lKTtcblxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dCA9IERHLklucHV0QmFzZS5mb3JDb2x1bW4oY29sKTtcbiAgICAgICAgICAgIGlmIChpbnB1dCkge1xuICAgICAgICAgICAgICBpZiAodGhpcy5kYXRhRnJhbWUuY29sKG5hbWUpIS5zZW1UeXBlID09PSBERy5TRU1UWVBFLk1PTEVDVUxFKVxuICAgICAgICAgICAgICAgIGlucHV0LmlucHV0LmNsYXNzTGlzdC5hZGQoYGQ0LW11bHRpLWZvcm0tbW9sZWN1bGUtaW5wdXQtJHt0aGlzLm1vbGVjdWxlU2l6ZX1gKTtcbiAgICAgICAgICAgICAgaW5wdXQuaW5wdXQuc2V0QXR0cmlidXRlKCdjb2x1bW4nLCBuYW1lKTtcbiAgICAgICAgICAgICAgaW5wdXQudmFsdWUgPSB0aGlzLmRhdGFGcmFtZS5nZXQobmFtZSwgcm93KTtcbiAgICAgICAgICAgICAgaW5wdXQucmVhZE9ubHkgPSB0cnVlO1xuXG4gICAgICAgICAgICAgIGlmICh0aGlzLmNvbG9yQ29kZSkge1xuICAgICAgICAgICAgICAgIGlmIChncmlkKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBncmlkQ2VsbElkeCA9IGdyaWQuZ2V0Um93T3JkZXIoKS5pbmRleE9mKHJvdyk7XG4gICAgICAgICAgICAgICAgICBpZiAoZ3JpZENlbGxJZHggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbG9yID0gZ3JpZC5jZWxsKG5hbWUsIGdyaWRDZWxsSWR4KS5jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGdyaWQuY29sKG5hbWUpPy5pc1RleHRDb2xvckNvZGVkKVxuICAgICAgICAgICAgICAgICAgICAgIGlucHV0LmlucHV0LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCBgY29sb3I6JHtERy5Db2xvci50b0h0bWwoY29sb3IpfSFpbXBvcnRhbnQ7YCk7XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIGlucHV0LmlucHV0LnNldEF0dHJpYnV0ZSgnc3R5bGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYGNvbG9yOiR7REcuQ29sb3IudG9IdG1sKERHLkNvbG9yLmdldENvbnRyYXN0Q29sb3IoY29sb3IpKX0haW1wb3J0YW50O2ApO1xuICAgICAgICAgICAgICAgICAgICAgIGlucHV0LmlucHV0LnN0eWxlLmJhY2tncm91bmRDb2xvciA9IERHLkNvbG9yLnRvSHRtbChjb2xvcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaW5wdXQuaW5wdXQub25jbGljayA9IChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhRnJhbWUuY3VycmVudENlbGwgPSB0aGlzLmRhdGFGcmFtZS5jZWxsKHJvdywgbmFtZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dENsaWNrZWQubmV4dChuYW1lKTtcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgdWkudG9vbHRpcC5iaW5kKGlucHV0LmlucHV0LCBuYW1lKTtcblxuICAgICAgICAgICAgICByZXNEaXYgPSBpbnB1dC5pbnB1dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzRGl2O1xuICAgICAgfVxuICAgICAgKSwgJ2Q0LW11bHRpLWZvcm0tZm9ybScpO1xuXG4gICAgaWYgKHRoaXMuc2hvd01vdXNlT3ZlclJvdyAmJiBzYXZlZElkeCA9PSB0aGlzLm1vdXNlT3ZlclBvcylcbiAgICAgIGZvcm0uYXBwZW5kKHRoaXMubW91c2VPdmVyUm93SW5kaWNhdG9yKTtcbiAgICBpZiAodGhpcy5zaG93Q3VycmVudFJvdyAmJiBzYXZlZElkeCA9PT0gdGhpcy5jdXJyZW50Um93UG9zKVxuICAgICAgZm9ybS5hcHBlbmQodGhpcy5jdXJyZW50Um93SW5kaWNhdG9yKTtcblxuICAgIGZvcm0ub25jbGljayA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50LmN0cmxLZXkgJiYgZXZlbnQuc2hpZnRLZXkpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gcm93OyBpKyspXG4gICAgICAgICAgdGhpcy5kYXRhRnJhbWUuc2VsZWN0aW9uLnNldChpLCBmYWxzZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZXZlbnQuY3RybEtleSkge1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnRTZWxlY3Rpb24gPSB0aGlzLmRhdGFGcmFtZS5zZWxlY3Rpb24uZ2V0KHJvdyk7XG4gICAgICAgICAgdGhpcy5kYXRhRnJhbWUuc2VsZWN0aW9uLnNldChyb3csICFjdXJyZW50U2VsZWN0aW9uKTtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IHRoaXMuZGF0YUZyYW1lLnJvd0NvdW50OyBpKyspXG4gICAgICAgICAgICB0aGlzLmRhdGFGcmFtZS5zZWxlY3Rpb24uc2V0KGksIGkgPD0gcm93KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoIXRoaXMuc2hvd0N1cnJlbnRSb3cgfHwgc2F2ZWRJZHggIT09IHRoaXMuY3VycmVudFJvd1BvcylcbiAgICAgICAgICAgIHRoaXMuZGF0YUZyYW1lLmN1cnJlbnRSb3dJZHggPSByb3c7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICAgIGlmICghdGhpcy5zaG93TW91c2VPdmVyUm93IHx8IHNhdmVkSWR4ICE9PSB0aGlzLm1vdXNlT3ZlclBvcykge1xuICAgICAgZm9ybS5vbm1vdXNlZW50ZXIgPSAoKSA9PiB0aGlzLmRhdGFGcmFtZS5tb3VzZU92ZXJSb3dJZHggPSByb3c7XG4gICAgICBmb3JtLm9ubW91c2VsZWF2ZSA9ICgpID0+IHRoaXMuZGF0YUZyYW1lLm1vdXNlT3ZlclJvd0lkeCA9IC0xO1xuICAgIH1cbiAgICByZXR1cm4gZm9ybTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBpZiAoIXRoaXMuc2hvd0ZpeGVkUm93cykge1xuICAgICAgaWYgKHRoaXMuc2hvd1NlbGVjdGVkUm93cykge1xuICAgICAgICB0aGlzLmluZGV4ZXMgPSB0aGlzLmRhdGFGcmFtZS5zZWxlY3Rpb24udHJ1ZUNvdW50ID4gMCA/XG4gICAgICAgICAgQXJyYXkuZnJvbSh0aGlzLmRhdGFGcmFtZS5zZWxlY3Rpb24uZ2V0U2VsZWN0ZWRJbmRleGVzKCkpIDogW107XG4gICAgICB9XG4gICAgICBlbHNlXG4gICAgICAgIHRoaXMuaW5kZXhlcyA9IFtdO1xuICAgIH1cblxuICAgIHVpLmVtcHR5KHRoaXMuY29sdW1uSGVhZGVyc0Rpdik7XG5cbiAgICB0aGlzLnJlbmRlckhlYWRlcigpO1xuXG4gICAgdGhpcy52aXJ0dWFsVmlldy5zZXREYXRhKFxuICAgICAgdGhpcy5pbmRleGVzLmxlbmd0aCArICh0aGlzLnNob3dDdXJyZW50Um93ID8gMSA6IDApICsgKHRoaXMuc2hvd01vdXNlT3ZlclJvdyA/IDEgOiAwKSxcbiAgICAgIChpOiBudW1iZXIpID0+IHRoaXMucmVuZGVyRm9ybShpKSk7XG4gIH1cbn1cbiJdfQ==
299
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMtdmlld2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZm9ybXMtdmlld2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEMsT0FBTyxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0QyxPQUFPLEtBQUssSUFBSSxNQUFNLG1CQUFtQixDQUFDO0FBQzFDLE9BQU8sRUFBYSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8scUJBQXFCLENBQUM7QUFFN0IsTUFBTSwyQkFBMkIsR0FBRywrREFBK0QsQ0FBQztBQUNwRyxNQUFNLHdCQUF3QixHQUFHLEVBQUUsQ0FBQztBQUVwQyxNQUFNLE9BQU8sV0FBWSxTQUFRLEVBQUUsQ0FBQyxRQUFRO0lBQzFDLElBQUksSUFBSSxLQUFhLE9BQU8sYUFBYSxDQUFDLENBQUMsQ0FBQztJQWtCNUMsSUFBSSxTQUFTLENBQUMsRUFBZ0I7UUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLGVBQWUsQ0FBQyxJQUFjO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLFFBQWtCO1FBQzVCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxRQUFRLENB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QUMsZUFBZSxHQUFHLEdBQUcsQ0FBQztZQUMvRCxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQy9EO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3ZCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDckQsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzthQUNsRTs7Z0JBRUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7U0FDckI7UUFFRCxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRWhDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVwQixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNyRixDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaWx0ZXJ9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCAnLi4vLi4vY3NzL2Zvcm1zLmNzcyc7XG5cbmNvbnN0IENPTFNfTElNSVRfRVhDRUVERURfV0FSTklORyA9IGBOdW1iZXIgb2YgY29sdW1ucyBpcyBtb3JlIHRoYW4gMjAuIEZpcnN0IDIwIGNvbHVtbnMgYXJlIHNob3duYDtcbmNvbnN0IEJPT0xFQU5fSU5QVVRfVE9QX01BUkdJTiA9IDE1O1xuXG5leHBvcnQgY2xhc3MgRm9ybXNWaWV3ZXIgZXh0ZW5kcyBERy5Kc1ZpZXdlciB7XG4gIGdldCB0eXBlKCk6IHN0cmluZyB7IHJldHVybiAnRm9ybXNWaWV3ZXInOyB9XG4gIG1vbGVjdWxlU2l6ZTogJ3NtYWxsJyB8ICdub3JtYWwnIHwgJ2xhcmdlJztcbiAgZmllbGRzQ29sdW1uTmFtZXM6IHN0cmluZ1tdO1xuICBjb2xvckNvZGU6IGJvb2xlYW47XG4gIHNob3dDdXJyZW50Um93OiBib29sZWFuO1xuICBzaG93TW91c2VPdmVyUm93OiBib29sZWFuO1xuICBzaG93U2VsZWN0ZWRSb3dzOiBib29sZWFuO1xuICBzaG93Rml4ZWRSb3dzID0gZmFsc2U7XG4gIGluZGV4ZXM6IG51bWJlcltdO1xuICBjb2x1bW5IZWFkZXJzRGl2OiBIVE1MRGl2RWxlbWVudDtcbiAgdmlydHVhbFZpZXc6IERHLlZpcnR1YWxWaWV3O1xuICBjb2x1bW5MYWJlbFdpZHRoOiBudW1iZXIgPSAwO1xuICBjdXJyZW50Um93SW5kaWNhdG9yID0gdWkuZGl2KCcnLCAnZDQtbXVsdGktZm9ybS1mb3JtLWluZGljYXRvciBkNC1tdWx0aS1mb3JtLWZvcm0taW5kaWNhdG9yLWN1cnJlbnQtcm93Jyk7XG4gIG1vdXNlT3ZlclJvd0luZGljYXRvciA9IHVpLmRpdignJywgJ2Q0LW11bHRpLWZvcm0tZm9ybS1pbmRpY2F0b3IgZDQtbXVsdGktZm9ybS1mb3JtLWluZGljYXRvci1tb3VzZS1vdmVyLXJvdycpO1xuICBzcGxpdENvbExlZnQ6IEhUTUxFbGVtZW50O1xuICBzcGxpdENvbFJpZ2h0OiBIVE1MRWxlbWVudDtcbiAgaW5wdXRDbGlja2VkOiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIHNldCBkYXRhZnJhbWUoZGY6IERHLkRhdGFGcmFtZSkge1xuICAgIHRoaXMuZGF0YUZyYW1lID0gZGY7XG4gICAgdGhpcy5vblRhYmxlQXR0YWNoZWQoKTtcbiAgfVxuXG4gIHNldCBmaXhlZFJvd051bWJlcnMoaWR4czogbnVtYmVyW10pIHtcbiAgICB0aGlzLmluZGV4ZXMgPSBpZHhzO1xuICAgIHRoaXMuc2hvd0N1cnJlbnRSb3cgPSBmYWxzZTtcbiAgICB0aGlzLnNob3dNb3VzZU92ZXJSb3cgPSBmYWxzZTtcbiAgICB0aGlzLnNob3dTZWxlY3RlZFJvd3MgPSBmYWxzZTtcbiAgICB0aGlzLnNob3dGaXhlZFJvd3MgPSB0cnVlO1xuICAgIHRoaXMucmVuZGVyKCk7XG4gIH1cblxuICBzZXQgY29sdW1ucyhjb2xOYW1lczogc3RyaW5nW10pIHtcbiAgICB0aGlzLmZpZWxkc0NvbHVtbk5hbWVzID0gY29sTmFtZXM7XG4gICAgdGhpcy5yZW5kZXIoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRNb2xlY3VsZVNpemUoKTogREcuUG9pbnQge1xuICAgIHN3aXRjaCAodGhpcy5tb2xlY3VsZVNpemUpIHtcbiAgICAgIGNhc2UgJ25vcm1hbCc6IHJldHVybiBuZXcgREcuUG9pbnQoMjAwLCAxMDApO1xuICAgICAgY2FzZSAnbGFyZ2UnOiByZXR1cm4gbmV3IERHLlBvaW50KDMwMCwgMTUwKTtcbiAgICAgIGNhc2UgJ3NtYWxsJzpcbiAgICAgIGRlZmF1bHQ6IHJldHVybiBuZXcgREcuUG9pbnQoMTIwLCA2MCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuaGVscFVybCA9ICdodHRwczovL2RhdGFncm9rLmFpL2hlbHAvdmlzdWFsaXplL3ZpZXdlcnMvZm9ybXMnO1xuXG4gICAgLy8gcHJvcGVydGllc1xuICAgIHRoaXMuZmllbGRzQ29sdW1uTmFtZXMgPSB0aGlzLmFkZFByb3BlcnR5KCdmaWVsZHNDb2x1bW5OYW1lcycsIERHLlRZUEUuQ09MVU1OX0xJU1QpO1xuICAgIHRoaXMuY29sb3JDb2RlID0gdGhpcy5ib29sKCdjb2xvckNvZGUnLCB0cnVlKTtcbiAgICB0aGlzLnNob3dDdXJyZW50Um93ID0gdGhpcy5ib29sKCdzaG93Q3VycmVudFJvdycsIHRydWUpO1xuICAgIHRoaXMuc2hvd01vdXNlT3ZlclJvdyA9IHRoaXMuYm9vbCgnc2hvd01vdXNlT3ZlclJvdycsIHRydWUpO1xuICAgIHRoaXMuc2hvd1NlbGVjdGVkUm93cyA9IHRoaXMuYm9vbCgnc2hvd1NlbGVjdGVkUm93cycsIHRydWUpO1xuICAgIHRoaXMubW9sZWN1bGVTaXplID0gdGhpcy5zdHJpbmcoJ21vbGVjdWxlU2l6ZScsICdzbWFsbCcsIHtjaG9pY2VzOiBbJ3NtYWxsJywgJ25vcm1hbCcsICdsYXJnZSddfSkgYXMgJ3NtYWxsJyB8ICdub3JtYWwnIHwgJ2xhcmdlJztcblxuICAgIC8vZmllbGRzXG4gICAgdGhpcy5pbmRleGVzID0gW107XG5cbiAgICAvLyBpbml0XG4gICAgdGhpcy5yb290LmNsYXNzTGlzdC5hZGQoJ2Q0LW11bHRpLWZvcm0nKTtcbiAgICB0aGlzLmNvbHVtbkhlYWRlcnNEaXYgPSB1aS5kaXYoW10sICdkNC1tdWx0aS1mb3JtLWhlYWRlcicpO1xuICAgIHRoaXMudmlydHVhbFZpZXcgPSB1aS52aXJ0dWFsVmlldygwLCAoaTogbnVtYmVyKSA9PiB0aGlzLnJlbmRlckZvcm0oaSksIGZhbHNlLCAxKTtcbiAgICBjb25zdCBjb2x1bW5IZWFkZXJzQm94ID0gdWkuZGl2KHRoaXMuY29sdW1uSGVhZGVyc0Rpdik7XG4gICAgY29uc3QgZm9ybVdpdGhIZWFkZXJEaXYgPSB1aS5zcGxpdEgoW2NvbHVtbkhlYWRlcnNCb3gsIHRoaXMudmlydHVhbFZpZXcucm9vdF0sIG51bGwsIHRydWUpO1xuICAgIHRoaXMucm9vdC5hcHBlbmRDaGlsZChmb3JtV2l0aEhlYWRlckRpdik7XG5cbiAgICB0aGlzLnNwbGl0Q29sTGVmdCA9IGZvcm1XaXRoSGVhZGVyRGl2LmZpcnN0RWxlbWVudENoaWxkIGFzIEhUTUxFbGVtZW50O1xuICAgIHRoaXMuc3BsaXRDb2xSaWdodCA9IGZvcm1XaXRoSGVhZGVyRGl2Lmxhc3RFbGVtZW50Q2hpbGQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICB1aS50b29sdGlwLmJpbmQodGhpcy5jdXJyZW50Um93SW5kaWNhdG9yLCAnQ3VycmVudCByb3cnKTtcbiAgICB1aS50b29sdGlwLmJpbmQodGhpcy5tb3VzZU92ZXJSb3dJbmRpY2F0b3IsICdNb3VzZSBvdmVyIHJvdycpO1xuXG4gICAgdWkudG9vbHMud2FpdEZvckVsZW1lbnRJbkRvbSh0aGlzLnJvb3QpLnRoZW4oKF8pID0+IHtcbiAgICAgIHRoaXMuY29sdW1uSGVhZGVyc0Rpdi5zdHlsZS5jc3NUZXh0ID0gYFxuICAgICAgICBvdmVmbG93OmhpZGRlbiFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi13aWR0aDogMTUwcHg7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgYDtcbiAgICAgIHRoaXMuc3BsaXRDb2xMZWZ0LnN0eWxlLmNzc1RleHQgPSBgXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW4haW1wb3J0YW50O1xuICAgICAgYDtcbiAgICAgIGNvbHVtbkhlYWRlcnNCb3guc3R5bGUuY3NzVGV4dCA9IGBcbiAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgICAgIHdpZHRoOjEwMCU7XG4gICAgICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OmZsZXg7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6MTdweDtcbiAgICAgICAgb3ZlcmZsb3c6IHNjcm9sbCFpbXBvcnRhbnQ7XG4gICAgICBgO1xuXG4gICAgICBjb2x1bW5IZWFkZXJzQm94LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIChlOiBFdmVudCkgPT4ge1xuICAgICAgICB0aGlzLnZpcnR1YWxWaWV3LnJvb3Quc2Nyb2xsVG9wID0gY29sdW1uSGVhZGVyc0JveC5zY3JvbGxUb3A7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy52aXJ0dWFsVmlldy5yb290LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIChlOiBFdmVudCkgPT4ge1xuICAgICAgICBjb2x1bW5IZWFkZXJzQm94LnNjcm9sbFRvcCA9IHRoaXMudmlydHVhbFZpZXcucm9vdC5zY3JvbGxUb3A7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHVpLnRvb2xzLndhaXRGb3JFbGVtZW50SW5Eb20odGhpcy52aXJ0dWFsVmlldy5yb290KS50aGVuKChfKSA9PiB7XG4gICAgICB0aGlzLmZpdEhlYWRlclRvTGFiZWxXaWR0aCgpO1xuICAgIH0pO1xuICB9XG5cbiAgZml0SGVhZGVyVG9MYWJlbFdpZHRoKHdpZHRoPzogbnVtYmVyKSB7XG4gICAgY29uc3QgdyA9IHdpZHRoID8/IHRoaXMuY29sdW1uTGFiZWxXaWR0aDtcbiAgICBjb25zdCByb290V2lkdGggPSB0aGlzLnJvb3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgdGhpcy5zcGxpdENvbExlZnQuc3R5bGUud2lkdGggPSBgJHt3ICsgMzB9cHhgO1xuICAgIHRoaXMuc3BsaXRDb2xSaWdodC5zdHlsZS53aWR0aCA9IGAke3Jvb3RXaWR0aCAtIHcgLSAzMCAtIDR9cHhgO1xuICB9XG5cbiAgZ2V0Q29sdW1uV2lkdGgoZWw6SFRNTEVsZW1lbnQpIHtcbiAgICByZXR1cm4gcGFyc2VJbnQoZWwuc3R5bGUud2lkdGgpO1xuICB9XG5cbiAgb25UYWJsZUF0dGFjaGVkKCkge1xuICAgIGlmICh0aGlzLmZpZWxkc0NvbHVtbk5hbWVzID09PSBudWxsKVxuICAgICAgdGhpcy5zZXRGaWVsZHNDb2x1bW5OYW1lcyh0aGlzLmRhdGFGcmFtZS5jb2x1bW5zLm5hbWVzKCkpO1xuXG4gICAgY29uc3Qgc3ViID0gKHN0cmVhbTogT2JzZXJ2YWJsZTx1bmtub3duPiwgYWN0aW9uOiBGdW5jdGlvbikgPT4ge1xuICAgICAgdGhpcy5zdWJzLnB1c2goREcuZGVib3VuY2Uoc3RyZWFtLCA1MCkuc3Vic2NyaWJlKChfKSA9PiBhY3Rpb24oKSkpO1xuICAgIH07XG5cbiAgICBzdWIodGhpcy5kYXRhRnJhbWUuc2VsZWN0aW9uLm9uQ2hhbmdlZCwgKCkgPT4gdGhpcy5yZW5kZXIoKSk7XG4gICAgc3ViKHRoaXMuZGF0YUZyYW1lLmZpbHRlci5vbkNoYW5nZWQsICgpID0+IHRoaXMucmVuZGVyKCkpO1xuXG4gICAgc3ViKHRoaXMuZGF0YUZyYW1lLm9uTWV0YWRhdGFDaGFuZ2VkLCAoKSA9PiB0aGlzLnJlbmRlcigpKTtcblxuICAgIHN1Yih0aGlzLmRhdGFGcmFtZS5vbkNvbHVtbnNSZW1vdmVkLCAoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZUZpZWxkc0NvbHVtbk5hbWVzKCk7XG4gICAgICB0aGlzLnJlbmRlcigpO1xuICAgIH0pO1xuXG4gICAgc3ViKHRoaXMuZGF0YUZyYW1lLm9uQ3VycmVudFJvd0NoYW5nZWQucGlwZShmaWx0ZXIoKF8pID0+IHRoaXMuc2hvd0N1cnJlbnRSb3cpKSxcbiAgICAgICgpID0+IHRoaXMudmlydHVhbFZpZXcucmVmcmVzaEl0ZW0odGhpcy5jdXJyZW50Um93UG9zISkpO1xuXG4gICAgc3ViKHRoaXMuZGF0YUZyYW1lLm9uTW91c2VPdmVyUm93Q2hhbmdlZC5waXBlKGZpbHRlcigoXykgPT4gdGhpcy5zaG93TW91c2VPdmVyUm93KSksXG4gICAgICAoKSA9PiB0aGlzLnZpcnR1YWxWaWV3LnJlZnJlc2hJdGVtKHRoaXMubW91c2VPdmVyUG9zISkpO1xuXG4gICAgdGhpcy5yZW5kZXIoKTtcbiAgfVxuXG4gIHNldEZpZWxkc0NvbHVtbk5hbWVzKGRmQ29sdW1uczogc3RyaW5nW10pIHtcbiAgICB0aGlzLmZpZWxkc0NvbHVtbk5hbWVzID0gZGZDb2x1bW5zLmxlbmd0aCA+IDIwID8gZGZDb2x1bW5zLnNsaWNlKDAsIDIwKSA6IGRmQ29sdW1ucztcbiAgfVxuXG4gIHVwZGF0ZUZpZWxkc0NvbHVtbk5hbWVzKCkge1xuICAgIGNvbnN0IG5ld0NvbHVtbnMgPSB0aGlzLmRhdGFGcmFtZS5jb2x1bW5zLm5hbWVzKCk7XG4gICAgbGV0IGNvdW50ZXIgPSB0aGlzLmZpZWxkc0NvbHVtbk5hbWVzLmxlbmd0aDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50ZXI7IGkrKykge1xuICAgICAgY29uc3QgY29sSWR4ID0gbmV3Q29sdW1ucy5pbmRleE9mKHRoaXMuZmllbGRzQ29sdW1uTmFtZXNbaV0pO1xuICAgICAgaWYgKGNvbElkeCA9PT0gLTEpIHtcbiAgICAgICAgdGhpcy5maWVsZHNDb2x1bW5OYW1lcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgIGNvdW50ZXItLTtcbiAgICAgICAgaS0tO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG9uUHJvcGVydHlDaGFuZ2VkKHByb3BlcnR5OiBERy5Qcm9wZXJ0eSk6IHZvaWQge1xuICAgIGlmICgocHJvcGVydHkubmFtZSA9PT0gJ3Nob3dDdXJyZW50Um93JyB8fCBwcm9wZXJ0eS5uYW1lID09PSAnc2hvd01vdXNlT3ZlclJvdycgfHxcbiAgICAgIHByb3BlcnR5Lm5hbWUgPT09ICdzaG93U2VsZWN0ZWRSb3dzJyAmJiBwcm9wZXJ0eS5nZXQodGhpcykgPT09IHRydWUpICYmIHRoaXMuc2hvd0ZpeGVkUm93cylcbiAgICAgIGdyb2suc2hlbGwud2FybmluZyhgQ2Fubm90IHNldCAke3Byb3BlcnR5Lm5hbWV9IHRvIHRydWUgc2luY2UgZml4ZWQgcm93cyBhcmUgc2V0YCk7XG4gICAgdGhpcy5yZW5kZXIoKTtcbiAgfVxuXG4gIHJlbmRlckhlYWRlcigpIHtcbiAgICB1aS5lbXB0eSh0aGlzLmNvbHVtbkhlYWRlcnNEaXYpO1xuICAgIGNvbnN0IGZvcm0gPSB0aGlzLnJlbmRlckZvcm0oMCwgdHJ1ZSk7XG4gICAgZm9ybS5jbGFzc0xpc3QuYWRkKCd0ZW1wJyk7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtKTtcblxuICAgIGZvciAoY29uc3QgbmFtZSBvZiB0aGlzLmZpZWxkc0NvbHVtbk5hbWVzKSB7XG4gICAgICBjb25zdCBmb3JtRmllbGQgPSBmb3JtLnF1ZXJ5U2VsZWN0b3IoJ1tjb2x1bW49XCInICsgbmFtZSArICdcIl0nKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgICAgaWYgKGZvcm1GaWVsZCkge1xuICAgICAgICBjb25zdCBjb2x1bW5MYWJlbCA9IHVpLmJpbmQodGhpcy5kYXRhRnJhbWUuY29sKG5hbWUpLCB1aS5kaXZUZXh0KG5hbWUpKTtcbiAgICAgICAgY29uc3QgY2xvc2VJY29uID0gdWkuaWNvbkZBKCd0aW1lcycsICgpID0+IHtcbiAgICAgICAgICB0aGlzLmZpZWxkc0NvbHVtbk5hbWVzID0gdGhpcy5maWVsZHNDb2x1bW5OYW1lcy5maWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSAhPT0gbmFtZSk7XG4gICAgICAgICAgdGhpcy5yZW5kZXIoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGNvbHVtbkxhYmVsQ29udGFpbmVyID0gdWkuZGl2KFtjb2x1bW5MYWJlbCwgY2xvc2VJY29uXSwgJ2Q0LW11bHRpLWZvcm0tY29sdW1uLW5hbWUgZDQtZmxleC1yb3cnKTtcbiAgICAgICAgY29uc3Qgb2Zmc2V0VG9wID0gZm9ybUZpZWxkLnR5cGUgPT09ICdjaGVja2JveCcgP1xuICAgICAgICAgIGZvcm1GaWVsZC5vZmZzZXRUb3AgLSBCT09MRUFOX0lOUFVUX1RPUF9NQVJHSU4gOiBmb3JtRmllbGQub2Zmc2V0VG9wO1xuICAgICAgICBjb2x1bW5MYWJlbENvbnRhaW5lci5zdHlsZS50b3AgPSBgJHtvZmZzZXRUb3AgKyAxMH1weGA7XG4gICAgICAgIHRoaXMuY29sdW1uSGVhZGVyc0Rpdi5hcHBlbmRDaGlsZChjb2x1bW5MYWJlbENvbnRhaW5lcik7XG4gICAgICAgIGNvbHVtbkxhYmVsLm9uY2xpY2sgPSAoZTogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMuZGF0YUZyYW1lLmN1cnJlbnRDb2wgPSB0aGlzLmRhdGFGcmFtZS5jb2wobmFtZSkhO1xuICAgICAgICB9O1xuICAgICAgICBpZiAoY29sdW1uTGFiZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggPiB0aGlzLmNvbHVtbkxhYmVsV2lkdGgpXG4gICAgICAgICAgdGhpcy5jb2x1bW5MYWJlbFdpZHRoID0gY29sdW1uTGFiZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgICAgIGNvbHVtbkxhYmVsQ29udGFpbmVyLm9ubW91c2VlbnRlciA9IChlOiBNb3VzZUV2ZW50KSA9PiBjbG9zZUljb24uc3R5bGUudmlzaWJpbGl0eSA9ICd2aXNpYmxlJztcbiAgICAgICAgY29sdW1uTGFiZWxDb250YWluZXIub25tb3VzZWxlYXZlID0gKGU6IE1vdXNlRXZlbnQpID0+IGNsb3NlSWNvbi5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9ybS5yZW1vdmUoKTtcbiAgfVxuXG4gIGdldCBjdXJyZW50Um93UG9zKCkgeyByZXR1cm4gdGhpcy5zaG93Q3VycmVudFJvdyA/IDAgOiBudWxsOyB9XG4gIGdldCBtb3VzZU92ZXJQb3MoKSB7IHJldHVybiB0aGlzLnNob3dNb3VzZU92ZXJSb3cgPyAodGhpcy5zaG93Q3VycmVudFJvdyA/IDEgOiAwKSA6IG51bGw7IH1cblxuICBnZXRHcmlkKCkge1xuICAgIGlmICh0aGlzLnZpZXcgJiYgKHRoaXMudmlldyBhcyBERy5UYWJsZVZpZXcpLmdyaWQpXG4gICAgICByZXR1cm4gKHRoaXMudmlldyBhcyBERy5UYWJsZVZpZXcpLmdyaWQ7XG4gICAgaWYgKHRoaXMuZGF0YUZyYW1lICYmIGdyb2suc2hlbGwudHYgJiYgZ3Jvay5zaGVsbC50di5kYXRhRnJhbWUgPT09IHRoaXMuZGF0YUZyYW1lICYmIGdyb2suc2hlbGwudHYuZ3JpZClcbiAgICAgIHJldHVybiBncm9rLnNoZWxsLnR2LmdyaWQ7XG4gICAgY29uc3QgdHYgPSBBcnJheS5mcm9tKGdyb2suc2hlbGwudGFibGVWaWV3cykuZmluZCgodHYpID0+IHR2LmRhdGFGcmFtZSA9PT0gdGhpcy5kYXRhRnJhbWUpO1xuICAgIGlmICh0diAmJiB0di5ncmlkKVxuICAgICAgcmV0dXJuIHR2LmdyaWQ7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZW5kZXJGb3JtKHJvdzogbnVtYmVyLCBoZWFkZXI/OiBib29sZWFuKSB7XG4gICAgY29uc3Qgc2F2ZWRJZHggPSByb3c7XG4gICAgaWYgKGhlYWRlcilcbiAgICAgIHJvdyA9IDA7XG4gICAgZWxzZSB7XG4gICAgICBpZiAodGhpcy5zaG93Q3VycmVudFJvdyAmJiByb3cgPT09IHRoaXMuY3VycmVudFJvd1BvcylcbiAgICAgICAgcm93ID0gdGhpcy5kYXRhRnJhbWUuY3VycmVudFJvd0lkeDtcbiAgICAgIGVsc2UgaWYgKHRoaXMuc2hvd01vdXNlT3ZlclJvdyAmJiByb3cgPT09IHRoaXMubW91c2VPdmVyUG9zKVxuICAgICAgICByb3cgPSB0aGlzLmRhdGFGcmFtZS5tb3VzZU92ZXJSb3dJZHg7XG4gICAgICBlbHNlXG4gICAgICAgIHJvdyA9IHRoaXMuaW5kZXhlc1tyb3cgLSAodGhpcy5zaG93Q3VycmVudFJvdyA/IDEgOiAwKSAtICh0aGlzLnNob3dNb3VzZU92ZXJSb3cgPyAxIDogMCldO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm0gPSB1aS5kaXZWKFxuICAgICAgdGhpcy5maWVsZHNDb2x1bW5OYW1lcy5tYXAoKG5hbWUpID0+IHtcbiAgICAgICAgbGV0IHJlc0RpdjogSFRNTEVsZW1lbnQgPSB1aS5kaXYoKTtcbiAgICAgICAgaWYgKHJvdyA9PT0gLTEpXG4gICAgICAgICAgcmV0dXJuIHJlc0RpdjtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGdyaWQgPSB0aGlzLmdldEdyaWQoKTtcbiAgICAgICAgICAvLyBmb3IgbW9sZWN1bGVzLCB1c2UgdGhlIGdyaWRDb2wgcmVuZGVyZXIgaW5zdGVhZCBvZiBpbnB1dEJhc2VcbiAgICAgICAgICBjb25zdCBjb2wgPSB0aGlzLmRhdGFGcmFtZS5jb2wobmFtZSkhO1xuICAgICAgICAgIGlmIChjb2wuc2VtVHlwZSA9PT0gREcuU0VNVFlQRS5NT0xFQ1VMRSAmJiBncmlkPy5jb2wobmFtZSk/LnJlbmRlcmVyKSB7XG4gICAgICAgICAgICBjb25zdCBtb2xTaXplID0gdGhpcy5nZXRNb2xlY3VsZVNpemUoKTtcbiAgICAgICAgICAgIGNvbnN0IHJlbmRlcmVyID0gZ3JpZC5jb2wobmFtZSkhLnJlbmRlcmVyITtcbiAgICAgICAgICAgIGNvbnN0IGdyaWRDZWxsID0gREcuR3JpZENlbGwuZnJvbUNvbHVtblJvdyhncmlkLCBuYW1lLCBncmlkLnRhYmxlUm93VG9HcmlkKHJvdykpO1xuICAgICAgICAgICAgY29uc3QgY2FudmFzID0gdWkuY2FudmFzKG1vbFNpemUueCwgbW9sU2l6ZS55KTtcbiAgICAgICAgICAgIGNhbnZhcy53aWR0aCA9IG1vbFNpemUueCAqIHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvO1xuICAgICAgICAgICAgY2FudmFzLmhlaWdodCA9IG1vbFNpemUueSAqIHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvO1xuICAgICAgICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJykhO1xuICAgICAgICAgICAgLy8gY3R4LmZpbGxSZWN0KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG4gICAgICAgICAgICBjdHguc2NhbGUod2luZG93LmRldmljZVBpeGVsUmF0aW8sIHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgY2FudmFzLnNldEF0dHJpYnV0ZSgnY29sdW1uJywgbmFtZSk7XG5cbiAgICAgICAgICAgIGdyaWRDZWxsLnJlbmRlcih7Y29udGV4dDogY3R4LCBib3VuZHM6IG5ldyBERy5SZWN0KDAsIDAsIG1vbFNpemUueCwgbW9sU2l6ZS55KX0pO1xuICAgICAgICAgICAgcmVzRGl2ID0gY2FudmFzO1xuICAgICAgICAgICAgcmVzRGl2LnN0eWxlLmJhY2tncm91bmQgPSAnd2hpdGUnOyAvLyBmaXhlcyBiZWZvcmUgY2hhbmdlcyBvZiB2aWVydHVhbCB2aWV3IG5vdCByZW1vdmluZyBvbGQgaXRlbXNcbiAgICAgICAgICAgIHJlc0Rpdi5vbmNsaWNrID0gKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5kYXRhRnJhbWUuY3VycmVudENlbGwgPSB0aGlzLmRhdGFGcmFtZS5jZWxsKHJvdywgbmFtZSk7XG4gICAgICAgICAgICAgIHRoaXMuaW5wdXRDbGlja2VkLm5leHQobmFtZSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdWkudG9vbHRpcC5iaW5kKHJlc0RpdiwgbmFtZSk7XG5cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBERy5JbnB1dEJhc2UuZm9yQ29sdW1uKGNvbCk7XG4gICAgICAgICAgICBpZiAoaW5wdXQpIHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0YUZyYW1lLmNvbChuYW1lKSEuc2VtVHlwZSA9PT0gREcuU0VNVFlQRS5NT0xFQ1VMRSlcbiAgICAgICAgICAgICAgICBpbnB1dC5pbnB1dC5jbGFzc0xpc3QuYWRkKGBkNC1tdWx0aS1mb3JtLW1vbGVjdWxlLWlucHV0LSR7dGhpcy5tb2xlY3VsZVNpemV9YCk7XG4gICAgICAgICAgICAgIGlucHV0LmlucHV0LnNldEF0dHJpYnV0ZSgnY29sdW1uJywgbmFtZSk7XG4gICAgICAgICAgICAgIGlucHV0LnZhbHVlID0gdGhpcy5kYXRhRnJhbWUuZ2V0KG5hbWUsIHJvdyk7XG4gICAgICAgICAgICAgIGlucHV0LnJlYWRPbmx5ID0gdHJ1ZTtcblxuICAgICAgICAgICAgICBpZiAodGhpcy5jb2xvckNvZGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoZ3JpZCkge1xuICAgICAgICAgICAgICAgICAgY29uc3QgY29sb3IgPSB0aGlzLmRhdGFGcmFtZS5jb2wobmFtZSk/Lm1ldGEuY29sb3JzLmdldENvbG9yKHJvdyk7XG4gICAgICAgICAgICAgICAgICBpZiAoY29sb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGdyaWQuY29sKG5hbWUpPy5pc1RleHRDb2xvckNvZGVkKVxuICAgICAgICAgICAgICAgICAgICAgIGlucHV0LmlucHV0LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCBgY29sb3I6JHtERy5Db2xvci50b0h0bWwoY29sb3IpfSFpbXBvcnRhbnQ7YCk7XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIGlucHV0LmlucHV0LnNldEF0dHJpYnV0ZSgnc3R5bGUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYGNvbG9yOiR7REcuQ29sb3IudG9IdG1sKERHLkNvbG9yLmdldENvbnRyYXN0Q29sb3IoY29sb3IpKX0haW1wb3J0YW50O2ApO1xuICAgICAgICAgICAgICAgICAgICAgIGlucHV0LmlucHV0LnN0eWxlLmJhY2tncm91bmRDb2xvciA9IERHLkNvbG9yLnRvSHRtbChjb2xvcik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaW5wdXQuaW5wdXQub25jbGljayA9IChlOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhRnJhbWUuY3VycmVudENlbGwgPSB0aGlzLmRhdGFGcmFtZS5jZWxsKHJvdywgbmFtZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dENsaWNrZWQubmV4dChuYW1lKTtcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgdWkudG9vbHRpcC5iaW5kKGlucHV0LmlucHV0LCBuYW1lKTtcblxuICAgICAgICAgICAgICByZXNEaXYgPSBpbnB1dC5pbnB1dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzRGl2O1xuICAgICAgfVxuICAgICAgKSwgJ2Q0LW11bHRpLWZvcm0tZm9ybScpO1xuXG4gICAgaWYgKHRoaXMuc2hvd01vdXNlT3ZlclJvdyAmJiBzYXZlZElkeCA9PSB0aGlzLm1vdXNlT3ZlclBvcylcbiAgICAgIGZvcm0uYXBwZW5kKHRoaXMubW91c2VPdmVyUm93SW5kaWNhdG9yKTtcbiAgICBpZiAodGhpcy5zaG93Q3VycmVudFJvdyAmJiBzYXZlZElkeCA9PT0gdGhpcy5jdXJyZW50Um93UG9zKVxuICAgICAgZm9ybS5hcHBlbmQodGhpcy5jdXJyZW50Um93SW5kaWNhdG9yKTtcblxuICAgIGZvcm0ub25jbGljayA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50LmN0cmxLZXkgJiYgZXZlbnQuc2hpZnRLZXkpIHtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gcm93OyBpKyspXG4gICAgICAgICAgdGhpcy5kYXRhRnJhbWUuc2VsZWN0aW9uLnNldChpLCBmYWxzZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZXZlbnQuY3RybEtleSkge1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnRTZWxlY3Rpb24gPSB0aGlzLmRhdGFGcmFtZS5zZWxlY3Rpb24uZ2V0KHJvdyk7XG4gICAgICAgICAgdGhpcy5kYXRhRnJhbWUuc2VsZWN0aW9uLnNldChyb3csICFjdXJyZW50U2VsZWN0aW9uKTtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IHRoaXMuZGF0YUZyYW1lLnJvd0NvdW50OyBpKyspXG4gICAgICAgICAgICB0aGlzLmRhdGFGcmFtZS5zZWxlY3Rpb24uc2V0KGksIGkgPD0gcm93KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoIXRoaXMuc2hvd0N1cnJlbnRSb3cgfHwgc2F2ZWRJZHggIT09IHRoaXMuY3VycmVudFJvd1BvcylcbiAgICAgICAgICAgIHRoaXMuZGF0YUZyYW1lLmN1cnJlbnRSb3dJZHggPSByb3c7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICAgIGlmICghdGhpcy5zaG93TW91c2VPdmVyUm93IHx8IHNhdmVkSWR4ICE9PSB0aGlzLm1vdXNlT3ZlclBvcykge1xuICAgICAgZm9ybS5vbm1vdXNlZW50ZXIgPSAoKSA9PiB0aGlzLmRhdGFGcmFtZS5tb3VzZU92ZXJSb3dJZHggPSByb3c7XG4gICAgICBmb3JtLm9ubW91c2VsZWF2ZSA9ICgpID0+IHRoaXMuZGF0YUZyYW1lLm1vdXNlT3ZlclJvd0lkeCA9IC0xO1xuICAgIH1cbiAgICByZXR1cm4gZm9ybTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBpZiAoIXRoaXMuc2hvd0ZpeGVkUm93cykge1xuICAgICAgaWYgKHRoaXMuc2hvd1NlbGVjdGVkUm93cykge1xuICAgICAgICB0aGlzLmluZGV4ZXMgPSB0aGlzLmRhdGFGcmFtZS5zZWxlY3Rpb24udHJ1ZUNvdW50ID4gMCA/XG4gICAgICAgICAgQXJyYXkuZnJvbSh0aGlzLmRhdGFGcmFtZS5zZWxlY3Rpb24uZ2V0U2VsZWN0ZWRJbmRleGVzKCkpIDogW107XG4gICAgICB9XG4gICAgICBlbHNlXG4gICAgICAgIHRoaXMuaW5kZXhlcyA9IFtdO1xuICAgIH1cblxuICAgIHVpLmVtcHR5KHRoaXMuY29sdW1uSGVhZGVyc0Rpdik7XG5cbiAgICB0aGlzLnJlbmRlckhlYWRlcigpO1xuXG4gICAgdGhpcy52aXJ0dWFsVmlldy5zZXREYXRhKFxuICAgICAgdGhpcy5pbmRleGVzLmxlbmd0aCArICh0aGlzLnNob3dDdXJyZW50Um93ID8gMSA6IDApICsgKHRoaXMuc2hvd01vdXNlT3ZlclJvdyA/IDEgOiAwKSxcbiAgICAgIChpOiBudW1iZXIpID0+IHRoaXMucmVuZGVyRm9ybShpKSk7XG4gIH1cbn1cbiJdfQ==