@eo-sdk/client 11.6.0-rc.1 → 11.6.0-rc.2

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.
@@ -56,7 +56,7 @@ export declare class ChartsSetupComponent implements IWidgetComponent, OnInit {
56
56
  getStoredQuerys(): void;
57
57
  getStoredQuery(id: string): import("rxjs").Observable<StoredQuery>;
58
58
  updateField(): void;
59
- getAggregationField(type: any): import("rxjs").Subscription;
59
+ getAggregationField(type: any, contextType?: any): import("rxjs").Subscription;
60
60
  getMetricCodesystem(): {
61
61
  entries: {
62
62
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"charts-setup.component.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,YAAY,EAAS,MAAM,EAAoB,MAAM,eAAe,CAAC;AACxF,OAAO,EAAC,gBAAgB,EAAC,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAC;AACnC,OAAO,EAAC,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAa,MAAM,gBAAgB,CAAC;AACnG,OAAO,EAAc,aAAa,EAAE,oBAAoB,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAQ,MAAM,cAAc,CAAC;AAGhJ,OAAO,EAAC,mBAAmB,EAAC,MAAM,6BAA6B,CAAC;;AAEhE,qBAMa,oBAAqB,YAAW,gBAAgB,EAAE,MAAM;IA0EjE,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,aAAa;IA9EvB,OAAO,CAAC,aAAa,CAAU;IACrB,kBAAkB,wBAA+B;IACjD,uBAAuB,kCAAyC;IAE1E,aAAa,EAAE,WAAW,EAAE,CAAC;IAC7B,OAAO,CAAC,MAAM,CAAc;IAC5B,SAAS,EAAE,gBAAgB,CAiBxB;IAEH,mBAAmB;;;MAGjB;IAEF,iBAAiB;;;MAGf;IAEF,eAAe;;;MAGb;IAEF,mBAAmB;;;MAGjB;IAEF,oBAAoB;;;MAGlB;IAEF,iBAAiB;;;MAGf;IAEF,cAAc,UAAS;IACvB,YAAY,UAAS;IACrB,uBAAuB,SAAM;IAC7B,uBAAuB,SAAM;IAC7B,WAAW,EAAE,WAAW,CAAC;IAEW,qBAAqB,EAAE,mBAAmB,CAAC;IAE/E,IAAa,YAAY,CAAC,EAAE,EAAE,OAAO,EAGpC;IAED,IAAI,YAAY,IALc,OAAO,CAOpC;gBAGS,EAAE,EAAE,kBAAkB,EACtB,oBAAoB,EAAE,oBAAoB,EAC1C,SAAS,EAAE,gBAAgB,EAC3B,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,aAAa;IAYtC,OAAO,CAAC,eAAe;IAqCvB,gBAAgB;IAwChB,eAAe;IAiBf,cAAc,CAAC,EAAE,EAAE,MAAM;IASzB,WAAW;IASX,mBAAmB,CAAC,IAAI,KAAA;IA2BxB,mBAAmB;;;;;;;;IA4DnB,aAAa;;;;;;;;IA4Db,iBAAiB;;;;;;;;IAmDjB,2BAA2B,CAAC,IAAI,KAAA;IAwBhC,OAAO,CAAC,oBAAoB;IAkB5B,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,uBAAuB;IAqB/B,OAAO,CAAC,UAAU;IAYlB,QAAQ,IAAI,IAAI;yCAneL,oBAAoB;2CAApB,oBAAoB;CA4ehC"}
1
+ {"version":3,"file":"charts-setup.component.d.ts","sourceRoot":"","sources":["../../../../../../../../../src/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,YAAY,EAAS,MAAM,EAAoB,MAAM,eAAe,CAAC;AACxF,OAAO,EAAC,gBAAgB,EAAC,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAC;AACnC,OAAO,EAAC,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,EAAa,MAAM,gBAAgB,CAAC;AACnG,OAAO,EAAc,aAAa,EAAE,oBAAoB,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAQ,MAAM,cAAc,CAAC;AAGhJ,OAAO,EAAC,mBAAmB,EAAC,MAAM,6BAA6B,CAAC;;AAEhE,qBAMa,oBAAqB,YAAW,gBAAgB,EAAE,MAAM;IA0EjE,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,oBAAoB;IAC5B,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,aAAa;IA9EvB,OAAO,CAAC,aAAa,CAAU;IACrB,kBAAkB,wBAA+B;IACjD,uBAAuB,kCAAyC;IAE1E,aAAa,EAAE,WAAW,EAAE,CAAC;IAC7B,OAAO,CAAC,MAAM,CAAc;IAC5B,SAAS,EAAE,gBAAgB,CAiBxB;IAEH,mBAAmB;;;MAGjB;IAEF,iBAAiB;;;MAGf;IAEF,eAAe;;;MAGb;IAEF,mBAAmB;;;MAGjB;IAEF,oBAAoB;;;MAGlB;IAEF,iBAAiB;;;MAGf;IAEF,cAAc,UAAS;IACvB,YAAY,UAAS;IACrB,uBAAuB,SAAM;IAC7B,uBAAuB,SAAM;IAC7B,WAAW,EAAE,WAAW,CAAC;IAEW,qBAAqB,EAAE,mBAAmB,CAAC;IAE/E,IAAa,YAAY,CAAC,EAAE,EAAE,OAAO,EAGpC;IAED,IAAI,YAAY,IALc,OAAO,CAOpC;gBAGS,EAAE,EAAE,kBAAkB,EACtB,oBAAoB,EAAE,oBAAoB,EAC1C,SAAS,EAAE,gBAAgB,EAC3B,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,aAAa;IAYtC,OAAO,CAAC,eAAe;IAqCvB,gBAAgB;IAwChB,eAAe;IAiBf,cAAc,CAAC,EAAE,EAAE,MAAM;IASzB,WAAW;IAUX,mBAAmB,CAAC,IAAI,KAAA,EAAE,WAAW,CAAC,KAAA;IA4BtC,mBAAmB;;;;;;;;IA4DnB,aAAa;;;;;;;;IA4Db,iBAAiB;;;;;;;;IAmDjB,2BAA2B,CAAC,IAAI,KAAA;IAwBhC,OAAO,CAAC,oBAAoB;IAkB5B,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,uBAAuB;IAqB/B,OAAO,CAAC,UAAU;IAYlB,QAAQ,IAAI,IAAI;yCAreL,oBAAoB;2CAApB,oBAAoB;CA8ehC"}
@@ -1 +1 @@
1
- {"version":3,"file":"datetime-range.component.d.ts","sourceRoot":"","sources":["../../../../../../../src/app/eo-framework/form-elements/datetime-range/datetime-range.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,MAAM,EAA0B,MAAM,eAAe,CAAC;AAChF,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,EACT,kBAAkB,EAGnB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAC,UAAU,EAAgB,gBAAgB,EAAC,MAAM,cAAc,CAAC;AACxE,OAAO,EAAC,cAAc,EAAC,MAAM,mDAAmD,CAAC;;AAEjF,qBAoBa,sBAAuB,YAAW,MAAM,EAAE,oBAAoB,EAAE,SAAS;IA4BxE,OAAO,CAAC,EAAE;IAA6B,SAAS,EAAE,gBAAgB;IA1BrE,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,SAAQ;IAEE,UAAU,EAAE,OAAO,CAAS;IAEvD,SAAS,EAAE,SAAS,CAGjB;IACH,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,OAAO,CAAQ;IAGhB,sBAAsB;;;QAK3B;IAEK,YAAY,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,cAAc,CAAC;IACzB,iBAAiB,MAAQ;IACzB,qBAAqB,MAAQ;gBAET,EAAE,EAAE,kBAAkB,EAAS,SAAS,EAAE,gBAAgB;IAO9E,eAAe,MAAO,GAAG,UAAQ;IACjC,gBAAgB,aAAa;IAE7B,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAInC,gBAAgB,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI;IAI/B,yBAAyB,CAAC,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAIhD,iBAAiB,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI;IAGhC,KAAK;IAOL,aAAa,CAAC,YAAY,SAAoB;IA0C9C,OAAO,CAAC,SAAS;IAiCjB,UAAU,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM;IAMxB,QAAQ,CAAC,CAAC,EAAE,kBAAkB;IAmBrC,QAAQ;yCAhKG,sBAAsB;2CAAtB,sBAAsB;CAmKlC"}
1
+ {"version":3,"file":"datetime-range.component.d.ts","sourceRoot":"","sources":["../../../../../../../src/app/eo-framework/form-elements/datetime-range/datetime-range.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,MAAM,EAA0B,MAAM,eAAe,CAAC;AAChF,OAAO,EACL,SAAS,EACT,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,EACT,kBAAkB,EAGnB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAC,UAAU,EAAgB,gBAAgB,EAAC,MAAM,cAAc,CAAC;AACxE,OAAO,EAAC,cAAc,EAAC,MAAM,mDAAmD,CAAC;;AAEjF,qBAoBa,sBAAuB,YAAW,MAAM,EAAE,oBAAoB,EAAE,SAAS;IA4BxE,OAAO,CAAC,EAAE;IAA6B,SAAS,EAAE,gBAAgB;IA1BrE,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,SAAQ;IAEE,UAAU,EAAE,OAAO,CAAS;IAEvD,SAAS,EAAE,SAAS,CAGjB;IACH,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,OAAO,CAAQ;IAGhB,sBAAsB;;;QAK3B;IAEK,YAAY,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,cAAc,CAAC;IACzB,iBAAiB,MAAQ;IACzB,qBAAqB,MAAQ;gBAET,EAAE,EAAE,kBAAkB,EAAS,SAAS,EAAE,gBAAgB;IAO9E,eAAe,MAAO,GAAG,UAAQ;IACjC,gBAAgB,aAAa;IAE7B,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAInC,gBAAgB,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI;IAI/B,yBAAyB,CAAC,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAIhD,iBAAiB,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI;IAGhC,KAAK;IAOL,aAAa,CAAC,YAAY,SAAoB;IA0C9C,OAAO,CAAC,SAAS;IAkCjB,UAAU,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM;IAMxB,QAAQ,CAAC,CAAC,EAAE,kBAAkB;IAmBrC,QAAQ;yCAjKG,sBAAsB;2CAAtB,sBAAsB;CAoKlC"}
@@ -1 +1 @@
1
- {"version":3,"file":"app-search.service.d.ts","sourceRoot":"","sources":["../../../../../../src/app/eo-framework-core/search/app-search.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyD,UAAU,EAAC,MAAM,MAAM,CAAC;AAGxF,OAAO,EACL,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EACrD,UAAU,EAAE,aAAa,EAAE,YAAY,EAAqB,UAAU,EACvE,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,gBAAgB,EAAC,MAAM,qBAAqB,CAAC;;AAErD;;;;GAIG;AACH,qBACa,gBAAgB;IA2Bf,OAAO,CAAC,aAAa;IAC/B,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,SAAS;IA5BnB,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,UAAU,CAAqB;IAGvC,OAAO,CAAC,qBAAqB,CAAS;IAKtC,OAAO,CAAC,WAAW,CAAqC;IACxD,OAAO,CAAC,gBAAgB,CAAqD;IAKtE,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,CAAmC;IAIlE,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,CAAwC;IAC5E,gBAAgB,QAAM;IACtB,wBAAwB,QAAM;gBAEjB,aAAa,EAAE,aAAa,EACtC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,gBAAgB;IAmCrC,SAAS;IAKT,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,mBAAmB;IAwBpB,kBAAkB;IAsCzB;;;;;;OAMG;IACI,QAAQ,CAAC,KAAK,EAAE,WAAW;IAQlC;;OAEG;IACI,UAAU;IAIjB,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACI,gBAAgB;IAehB,OAAO,CAAC,IAAI,EAAE,MAAM;IAOpB,aAAa,CAAC,KAAK,EAAE,UAAU;IAO/B,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,UAAQ;IAIxC;;;OAGG;IACI,eAAe,CAAC,IAAI,EAAE,UAAU;IAOvC;;;;;OAKG;IACI,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO;IAgB1D;;;;;OAKG;IACI,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,OAAO;IAexD,OAAO,CAAC,wBAAwB;IAmBhC;;;OAGG;IACI,iBAAiB,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,OAAO;IAOjE;;;OAGG;IACI,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,QAAQ,CAAC,EAAE,OAAO;IAYrE;;;OAGG;IACI,cAAc,CAAC,MAAM,EAAE,YAAY;IAO1C;;;OAGG;IACI,iBAAiB,CAAC,MAAM,EAAE,YAAY;IAO7C;;;;;;OAMG;IACI,0BAA0B,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO;IAYpE,0BAA0B,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,YAAY,EAAE;IAKtE;;;;OAIG;IACI,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO;IAKvD;;OAEG;IACI,SAAS,CAAC,SAAS,SAAK;IAiB/B;;OAEG;IACI,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO;IAS7B,mBAAmB;IAOnB;;OAEG;IACI,cAAc,CAAC,SAAS,EAAE,GAAG;IAI7B,YAAY,CAAC,IAAI,EAAE,MAAM;IAIhC;;;;;;OAMG;IACI,0BAA0B,CAAC,eAAe,EAAE,MAAM,GAAG,GAAG;IAU/D;;;;;;;OAOG;IACH,OAAO,CAAC,gCAAgC;yCAhb7B,gBAAgB;6CAAhB,gBAAgB;CAyb5B"}
1
+ {"version":3,"file":"app-search.service.d.ts","sourceRoot":"","sources":["../../../../../../src/app/eo-framework-core/search/app-search.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyD,UAAU,EAAC,MAAM,MAAM,CAAC;AAGxF,OAAO,EACL,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EACrD,UAAU,EAAE,aAAa,EAAE,YAAY,EAAqB,UAAU,EACvE,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,gBAAgB,EAAC,MAAM,qBAAqB,CAAC;;AAErD;;;;GAIG;AACH,qBACa,gBAAgB;IA2Bf,OAAO,CAAC,aAAa;IAC/B,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,SAAS;IA5BnB,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,UAAU,CAAqB;IAGvC,OAAO,CAAC,qBAAqB,CAAS;IAKtC,OAAO,CAAC,WAAW,CAAqC;IACxD,OAAO,CAAC,gBAAgB,CAAqD;IAKtE,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,CAAmC;IAIlE,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,CAAwC;IAC5E,gBAAgB,QAAM;IACtB,wBAAwB,QAAM;gBAEjB,aAAa,EAAE,aAAa,EACtC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,gBAAgB;IAmCrC,SAAS;IAKT,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,mBAAmB;IAwBpB,kBAAkB;IAsCzB;;;;;;OAMG;IACI,QAAQ,CAAC,KAAK,EAAE,WAAW;IAQlC;;OAEG;IACI,UAAU;IAIjB,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACI,gBAAgB;IAehB,OAAO,CAAC,IAAI,EAAE,MAAM;IAOpB,aAAa,CAAC,KAAK,EAAE,UAAU;IAO/B,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,UAAQ;IAIxC;;;OAGG;IACI,eAAe,CAAC,IAAI,EAAE,UAAU;IAOvC;;;;;OAKG;IACI,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO;IAgB1D;;;;;OAKG;IACI,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,OAAO;IAexD,OAAO,CAAC,wBAAwB;IAmBhC;;;OAGG;IACI,iBAAiB,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,OAAO;IAOjE;;;OAGG;IACI,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,QAAQ,CAAC,EAAE,OAAO;IAYrE;;;OAGG;IACI,cAAc,CAAC,MAAM,EAAE,YAAY;IAO1C;;;OAGG;IACI,iBAAiB,CAAC,MAAM,EAAE,YAAY;IAO7C;;;;;;OAMG;IACI,0BAA0B,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO;IAYpE,0BAA0B,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,YAAY,EAAE;IAKtE;;;;OAIG;IACI,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO;IAKvD;;OAEG;IACI,SAAS,CAAC,SAAS,SAAK;IAiB/B;;OAEG;IACI,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO;IAS7B,mBAAmB;IAOnB;;OAEG;IACI,cAAc,CAAC,SAAS,EAAE,GAAG;IAI7B,YAAY,CAAC,IAAI,EAAE,MAAM;IAIhC;;;;;;OAMG;IACI,0BAA0B,CAAC,eAAe,EAAE,MAAM,GAAG,GAAG;IAU/D;;;;;;;OAOG;IACH,OAAO,CAAC,gCAAgC;yCArb7B,gBAAgB;6CAAhB,gBAAgB;CA8b5B"}
@@ -55,7 +55,7 @@
55
55
  "eo.object.content.title": "Inhalt",
56
56
  "eo.object.actions.title": "Aktionen für markierte Objekte",
57
57
  "eo.indexdata.summary.no.change": "Keine Metadaten geändert",
58
- "eo.indexdata.summary.table.change": "Tabellendaten sind unterschiedlich",
58
+ "eo.indexdata.summary.table.change": "Die Tabellendaten unterscheiden sich. ",
59
59
  "eo.indexdata.summary.more": "Mehr Informationen",
60
60
  "eo.indexdata.summary.folder": "Ordner",
61
61
  "eo.shortcuts.general.title": "Allgemein",
@@ -58,7 +58,7 @@
58
58
  "eo.object.history.filter.informational": "General",
59
59
  "eo.object.content.title": "Content",
60
60
  "eo.indexdata.summary.no.change": "No metadata was changed",
61
- "eo.indexdata.summary.table.change": "Table data is different",
61
+ "eo.indexdata.summary.table.change": "The table data is different",
62
62
  "eo.indexdata.summary.more": "More information",
63
63
  "eo.indexdata.summary.folder": "Folder",
64
64
  "eo.shortcuts.general.title": "General",
@@ -8,10 +8,10 @@ export class AboutStateComponent {
8
8
  this.backend = backend;
9
9
  this.userService = userService;
10
10
  this.config = config;
11
- this.__libraries__ = [{ "name": "@ag-grid-community/angular", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/client-side-row-model", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/core", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/csv-export", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/styles", "version": "31.3.2", "license": "MIT" }, { "name": "@angular/animations", "version": "18.0.4", "license": "MIT" }, { "name": "@angular/cdk", "version": "18.0.4", "license": "MIT" }, { "name": "@angular/common", "version": "18.0.4", "license": "MIT" }, { "name": "@angular/compiler", "version": "18.0.4", "license": "MIT" }, { "name": "@angular/core", "version": "18.0.4", "license": "MIT" }, { "name": "@angular/forms", "version": "18.0.4", "license": "MIT" }, { "name": "@angular/platform-browser", "version": "18.0.4", "license": "MIT" }, { "name": "@angular/platform-browser-dynamic", "version": "18.0.4", "license": "MIT" }, { "name": "@angular/router", "version": "18.0.4", "license": "MIT" }, { "name": "@carbon/charts-angular", "version": "1.16.3", "license": "Apache-2.0" }, { "name": "@eo-sdk/core", "version": "11.5.0-rc.3", "license": "MIT" }, { "name": "@ngneat/until-destroy", "version": "10.0.0", "license": "MIT" }, { "name": "@ngx-pwa/local-storage", "version": "18.0.0", "license": "MIT" }, { "name": "@ngx-translate/core", "version": "15.0.0", "license": "SEE LICENSE IN LICENSE" }, { "name": "@yuuvis/components", "version": "18.0.6", "license": "MIT" }, { "name": "@yuuvis/widget-grid", "version": "18.0.0", "license": "MIT" }, { "name": "core-js", "version": "2.6.12", "license": "MIT" }, { "name": "file-saver", "version": "2.0.5", "license": "MIT" }, { "name": "font-awesome", "version": "4.7.0", "license": "(OFL-1.1 AND MIT)" }, { "name": "lodash-es", "version": "4.17.21", "license": "MIT" }, { "name": "moment", "version": "2.30.1", "license": "MIT" }, { "name": "ngx-toastr", "version": "19.0.0", "license": "MIT" }, { "name": "rxjs", "version": "7.8.1", "license": "Apache-2.0" }, { "name": "tslib", "version": "2.6.3", "license": "0BSD" }, { "name": "zone.js", "version": "0.14.7", "license": "MIT" }];
11
+ this.__libraries__ = [{ "name": "@ag-grid-community/angular", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/client-side-row-model", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/core", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/csv-export", "version": "31.3.2", "license": "MIT" }, { "name": "@ag-grid-community/styles", "version": "31.3.2", "license": "MIT" }, { "name": "@angular/animations", "version": "18.0.4", "license": "MIT" }, { "name": "@angular/cdk", "version": "18.0.4", "license": "MIT" }, { "name": "@angular/common", "version": "18.0.4", "license": "MIT" }, { "name": "@angular/compiler", "version": "18.0.4", "license": "MIT" }, { "name": "@angular/core", "version": "18.0.4", "license": "MIT" }, { "name": "@angular/forms", "version": "18.0.4", "license": "MIT" }, { "name": "@angular/platform-browser", "version": "18.0.4", "license": "MIT" }, { "name": "@angular/platform-browser-dynamic", "version": "18.0.4", "license": "MIT" }, { "name": "@angular/router", "version": "18.0.4", "license": "MIT" }, { "name": "@carbon/charts-angular", "version": "1.16.3", "license": "Apache-2.0" }, { "name": "@eo-sdk/core", "version": "11.6.0-rc.1", "license": "MIT" }, { "name": "@ngneat/until-destroy", "version": "10.0.0", "license": "MIT" }, { "name": "@ngx-pwa/local-storage", "version": "18.0.0", "license": "MIT" }, { "name": "@ngx-translate/core", "version": "15.0.0", "license": "SEE LICENSE IN LICENSE" }, { "name": "@yuuvis/components", "version": "18.0.6", "license": "MIT" }, { "name": "@yuuvis/widget-grid", "version": "18.0.0", "license": "MIT" }, { "name": "core-js", "version": "2.6.12", "license": "MIT" }, { "name": "file-saver", "version": "2.0.5", "license": "MIT" }, { "name": "font-awesome", "version": "4.7.0", "license": "(OFL-1.1 AND MIT)" }, { "name": "lodash-es", "version": "4.17.21", "license": "MIT" }, { "name": "moment", "version": "2.30.1", "license": "MIT" }, { "name": "ngx-toastr", "version": "19.0.0", "license": "MIT" }, { "name": "rxjs", "version": "7.8.1", "license": "Apache-2.0" }, { "name": "tslib", "version": "2.6.3", "license": "0BSD" }, { "name": "zone.js", "version": "0.14.7", "license": "MIT" }];
12
12
  this.ctrl = {
13
13
  componentName: 'yuuvis® RAD client',
14
- componentVersion: '11.6.0-rc.1',
14
+ componentVersion: '11.6.0-rc.2',
15
15
  productName: '',
16
16
  productVersion: ''
17
17
  };
@@ -78,4 +78,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
78
78
  type: Component,
79
79
  args: [{ selector: 'eo-about-state', template: "<div class=\"eo-about-state\">\n\n <div class=\"about\">\n <div class=\"header\" [style.background-image]=\"backgroundImage\">\n <img [src]=\"headerLogo\"/>\n </div>\n\n <div class=\"body\">\n <div class=\"claim\" translate>eo.help.about.claim</div>\n\n <div class=\"wrap\">\n <table>\n <tbody>\n <tr>\n <th translate>eo.help.about.component.label</th>\n <td>{{ctrl.componentName}}</td>\n </tr>\n <tr>\n <th translate>eo.help.about.component.version.label</th>\n <td>{{ctrl.componentVersion}}</td>\n </tr>\n <tr>\n <th translate>eo.help.about.product.label</th>\n <td>{{ ctrl.productName }}</td>\n </tr>\n <tr>\n <th translate>eo.help.about.product.version.label</th>\n <td>{{ ctrl.productVersion }}</td>\n </tr>\n <tr>\n <th translate>eo.help.about.producer.label</th>\n <td translate>eo.help.about.producer.text</td>\n </tr>\n </tbody>\n </table>\n </div>\n\n\n <h2 translate>eo.help.license.title</h2>\n <p translate>eo.help.license.intro</p>\n <div class=\"showLic\" (click)=\"licenseShow = !licenseShow\">\n <span class=\"toggle\"><span translate>eo.help.license.title</span><span class=\"toggle-indicator\">{{licenseShow ? '-' : '+'}}</span></span></div>\n <div class=\"licenses\" *ngIf=\"licenseShow\">\n <div class=\"lib\" *ngFor=\"let lib of __libraries__; trackBy: trackByFn\">\n <div class=\"name\">{{lib.name}}</div>\n <div class=\"lic\" *ngIf=\"licenses[lib.license]\">\n <a href=\"{{licenses[lib.license].url}}\" target=\"_blank\" *ngIf=\"licenses[lib.license].url\">{{licenses[lib.license].label}}</a>\n <span *ngIf=\"!licenses[lib.license].url\">{{licenses[lib.license].label}}</span>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n</div>\n", styles: [":host{--about-header-height: 300px;position:absolute;inset:0;display:flex;flex-flow:row;justify-content:center;overflow-y:auto}.eo-about-state{box-sizing:border-box;width:800px;display:flex;flex-flow:column}@media screen and (max-width: 832px){.eo-about-state{margin:0;min-width:inherit;width:100%}}.eo-about-state .about{box-shadow:0 2px 5px #0003;background:var(--panel-background);margin:var(--app-pane-padding)}.eo-about-state .about .header{position:relative;height:var(--about-header-height);background-size:cover}.eo-about-state .about .header:after{content:\"\";position:absolute;inset:0;background-color:rgba(var(--color-accent-rgb),.8)}.eo-about-state .about .header img{right:8%;bottom:18%;position:absolute;z-index:20;width:40%}.eo-about-state .about .body{padding:var(--app-pane-padding)}.eo-about-state .about .body .claim{padding:var(--app-pane-padding) 0}.eo-about-state .about .body h2{margin:1.5em 0 0;color:var(--text-color-caption);font-weight:var(--font-weight-light);font-size:var(--font-title)}.eo-about-state .about .body .wrap{display:flex;flex-flow:row wrap}.eo-about-state .about .body ul.links{color:var(--color-accent);list-style-type:none}.eo-about-state .about .body ul.links li{padding:2px 0}.eo-about-state .about .body ul.links a{text-decoration:none;color:var(--color-accent)}.eo-about-state .about .body ul.links a:hover{text-decoration:underline}.eo-about-state .about .body table{margin:var(--app-pane-padding);padding:calc(var(--app-pane-padding) / 4) 0;background-color:rgba(var(--color-black-rgb),.06);border-radius:2px}.eo-about-state .about .body table th{display:flex;flex-flow:column;align-items:flex-start;justify-content:center;font-size:var(--font-hint);color:var(--text-color-caption)}.eo-about-state .about .body table th,.eo-about-state .about .body table td{padding:calc(var(--app-pane-padding) / 8) calc(var(--app-pane-padding) / 2)}.eo-about-state .about .body .showLic span.toggle{color:var(--color-accent);display:inline-block;padding:0 4px 2px;border-radius:4px;border:1px solid var(--color-accent);cursor:pointer}.eo-about-state .about .body .showLic .toggle-indicator{padding:0 4px}.eo-about-state .about .body .licenses{padding-top:var(--app-pane-padding)}.eo-about-state .about .body .licenses .lib{display:flex;flex-flow:row nowrap;padding:calc(var(--app-pane-padding) / 4);border-top:1px solid var(--list-item-border-color)}.eo-about-state .about .body .licenses .lib .name{flex:1 1 auto}.eo-about-state .about .body .licenses .lib .lic{flex:0 0 auto;font-size:var(--font-hint);color:var(--text-color-caption)}.eo-about-state .about .body .licenses .lib .lic a{text-decoration:none;border-radius:2px;border:1px solid var(--color-accent);color:var(--color-accent);display:inline-block;padding:2px 4px;background-color:rgba(var(--color-black-rgb),.06);line-height:1em}\n"] }]
80
80
  }], ctorParameters: () => [{ type: i1.BackendService }, { type: i1.UserService }, { type: i1.Config }] });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJvdXQtc3RhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvYWJvdXQtc3RhdGUvYWJvdXQtc3RhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvYWJvdXQtc3RhdGUvYWJvdXQtc3RhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFReEMsTUFBTSxPQUFPLG1CQUFtQjtJQXNEOUIsWUFBb0IsT0FBdUIsRUFBVSxXQUF3QixFQUFVLE1BQWM7UUFBakYsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFqRHJHLGtCQUFhLEdBQUcsQ0FBQyxFQUFDLE1BQU0sRUFBQyw0QkFBNEIsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQywwQ0FBMEMsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyx5QkFBeUIsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQywrQkFBK0IsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQywyQkFBMkIsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxxQkFBcUIsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsaUJBQWlCLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsbUJBQW1CLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsZUFBZSxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLGdCQUFnQixFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLDJCQUEyQixFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLG1DQUFtQyxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLGlCQUFpQixFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLHdCQUF3QixFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLFlBQVksRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsYUFBYSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyx1QkFBdUIsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyx3QkFBd0IsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxxQkFBcUIsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFD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LFNBQVMsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXO2FBQ2IsS0FBSzthQUNMLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJO1FBQ25CLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs4R0E1RVUsbUJBQW1CO2tHQUFuQixtQkFBbUIsc0RDUmhDLG8rREF1REE7OzJGRC9DYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtVc2VyU2VydmljZSwgQ29uZmlnLCBCYWNrZW5kU2VydmljZX0gZnJvbSAnQGVvLXNkay9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tYWJvdXQtc3RhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWJvdXQtc3RhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hYm91dC1zdGF0ZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFib3V0U3RhdGVDb21wb25lbnQge1xuXG4gIGJhY2tncm91bmRJbWFnZTogc3RyaW5nO1xuICBoZWFkZXJMb2dvOiBzdHJpbmc7XG4gIGxpY2Vuc2VTaG93OiBib29sZWFuO1xuICBfX2xpYnJhcmllc19fID0gW3tcIm5hbWVcIjpcIkBhZy1ncmlkLWNvbW11bml0eS9hbmd1bGFyXCIsXCJ2ZXJzaW9uXCI6XCIzMS4zLjJcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAYWctZ3JpZC1jb21tdW5pdHkvY2xpZW50LXNpZGUtcm93LW1vZGVsXCIsXCJ2ZXJzaW9uXCI6XCIzMS4zLjJcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAYWctZ3JpZC1jb21tdW5pdHkvY29yZVwiLFwidmVyc2lvblwiOlwiMzEuMy4yXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQGFnLWdyaWQtY29tbXVuaXR5L2Nzdi1leHBvcnRcIixcInZlcnNpb25cIjpcIjMxLjMuMlwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIkBhZy1ncmlkLWNvbW11bml0eS9zdHlsZXNcIixcInZlcnNpb25cIjpcIjMxLjMuMlwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIkBhbmd1bGFyL2FuaW1hdGlvbnNcIixcInZlcnNpb25cIjpcIjE4LjAuNFwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIkBhbmd1bGFyL2Nka1wiLFwidmVyc2lvblwiOlwiMTguMC40XCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQGFuZ3VsYXIvY29tbW9uXCIsXCJ2ZXJzaW9uXCI6XCIxOC4wLjRcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAYW5ndWxhci9jb21waWxlclwiLFwidmVyc2lvblwiOlwiMTguMC40XCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQGFuZ3VsYXIvY29yZVwiLFwidmVyc2lvblwiOlwiMTguMC40XCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQGFuZ3VsYXIvZm9ybXNcIixcInZlcnNpb25cIjpcIjE4LjAuNFwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIixcInZlcnNpb25cIjpcIjE4LjAuNFwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXItZHluYW1pY1wiLFwidmVyc2lvblwiOlwiMTguMC40XCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQGFuZ3VsYXIvcm91dGVyXCIsXCJ2ZXJzaW9uXCI6XCIxOC4wLjRcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAY2FyYm9uL2NoYXJ0cy1hbmd1bGFyXCIsXCJ2ZXJzaW9uXCI6XCIxLjE2LjNcIixcImxpY2Vuc2VcIjpcIkFwYWNoZS0yLjBcIn0se1wibmFtZVwiOlwiQGVvLXNkay9jb3JlXCIsXCJ2ZXJzaW9uXCI6XCIxMS41LjAtcmMuM1wiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIkBuZ25lYXQvdW50aWwtZGVzdHJveVwiLFwidmVyc2lvblwiOlwiMTAuMC4wXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQG5neC1wd2EvbG9jYWwtc3RvcmFnZVwiLFwidmVyc2lvblwiOlwiMTguMC4wXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQG5neC10cmFuc2xhdGUvY29yZVwiLFwidmVyc2lvblwiOlwiMTUuMC4wXCIsXCJsaWNlbnNlXCI6XCJTRUUgTElDRU5TRSBJTiBMSUNFTlNFXCJ9LHtcIm5hbWVcIjpcIkB5dXV2aXMvY29tcG9uZW50c1wiLFwidmVyc2lvblwiOlwiMTguMC42XCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQHl1dXZpcy93aWRnZXQtZ3JpZFwiLFwidmVyc2lvblwiOlwiMTguMC4wXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiY29yZS1qc1wiLFwidmVyc2lvblwiOlwiMi42LjEyXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiZmlsZS1zYXZlclwiLFwidmVyc2lvblwiOlwiMi4wLjVcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJmb250LWF3ZXNvbWVcIixcInZlcnNpb25cIjpcIjQuNy4wXCIsXCJsaWNlbnNlXCI6XCIoT0ZMLTEuMSBBTkQgTUlUKVwifSx7XCJuYW1lXCI6XCJsb2Rhc2gtZXNcIixcInZlcnNpb25cIjpcIjQuMTcuMjFcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJtb21lbnRcIixcInZlcnNpb25cIjpcIjIuMzAuMVwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIm5neC10b2FzdHJcIixcInZlcnNpb25cIjpcIjE5LjAuMFwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcInJ4anNcIixcInZlcnNpb25cIjpcIjcuOC4xXCIsXCJsaWNlbnNlXCI6XCJBcGFjaGUtMi4wXCJ9LHtcIm5hbWVcIjpcInRzbGliXCIsXCJ2ZXJzaW9uXCI6XCIyLjYuM1wiLFwibGljZW5zZVwiOlwiMEJTRFwifSx7XCJuYW1lXCI6XCJ6b25lLmpzXCIsXCJ2ZXJzaW9uXCI6XCIwLjE0LjdcIixcImxpY2Vuc2VcIjpcIk1JVFwifV07XG4gIHVzZXJMYW5nOiBzdHJpbmc7XG5cbiAgY3RybCA9IHtcbiAgICBjb21wb25lbnROYW1lOiAneXV1dmlzwq4gUkFEIGNsaWVudCcsXG4gICAgY29tcG9uZW50VmVyc2lvbjogJzExLjYuMC1yYy4xJyxcbiAgICBwcm9kdWN0TmFtZTogJycsXG4gICAgcHJvZHVjdFZlcnNpb246ICcnXG4gIH07XG5cbiAgbGljZW5zZXMgPSB7XG4gICAgJ01JVCc6IHtcbiAgICAgICdsYWJlbCc6ICdNSVQnLFxuICAgICAgJ3VybCc6ICdodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUJ1xuICAgIH0sXG4gICAgJ0FwYWNoZS0yLjAnOiB7XG4gICAgICAnbGFiZWwnOiAnQXBhY2hlIDIuMCcsXG4gICAgICAndXJsJzogJ2h0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCdcbiAgICB9LFxuICAgICdCU0QtMy1DbGF1c2UtQ2xlYXInOiB7XG4gICAgICAnbGFiZWwnOiAnQlNEIDMtQ2xhdXNlJyxcbiAgICAgICd1cmwnOiAnaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZSdcbiAgICB9LFxuICAgICdDQzAtMS4wJzoge1xuICAgICAgJ2xhYmVsJzogJ0NDMCAxLjAnLFxuICAgICAgJ3VybCc6ICdodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wLydcbiAgICB9LFxuICAgICcoT0ZMLTEuMSBBTkQgTUlUKSc6IHtcbiAgICAgICdsYWJlbCc6ICdNSVQnLFxuICAgICAgJ3VybCc6ICdodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUJ1xuICAgIH0sXG4gICAgJ1NJTE9GTC0xLjEnOiB7XG4gICAgICAnbGFiZWwnOiAnU0lMIE9wZW4gRm9udCBMaWNlbnNlIDEuMScsXG4gICAgICAndXJsJzogJ2h0dHA6Ly9zY3JpcHRzLnNpbC5vcmcvT0ZMX3dlYidcbiAgICB9LFxuICAgICdDb21tZXJjaWFsJzoge1xuICAgICAgJ2xhYmVsJzogJ0NvbW1lcmNpYWwnXG4gICAgfSxcbiAgICAnYWctZ3JpZCc6IHtcbiAgICAgICdsYWJlbCc6ICdhZy1HcmlkLUVudGVycHJpc2UgU29mdHdhcmUgTGljZW5jZSBBZ3JlZW1lbnQgVmVyc2lvbiAxLjcnLFxuICAgICAgJ3VybCc6ICdodHRwczovL2dpdGh1Yi5jb20vY2VvbHRlci9hZy1ncmlkLWVudGVycHJpc2UvYmxvYi9tYXN0ZXIvTElDRU5TRS5tZCdcbiAgICB9LFxuICAgICcwQlNEJzoge1xuICAgICAgJ2xhYmVsJzogJ1plcm8tQ2xhdXNlIEJTRCcsXG4gICAgICAndXJsJzogJ2h0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy8wQlNEJ1xuICAgIH1cbiAgfTtcblxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYmFja2VuZDogQmFja2VuZFNlcnZpY2UsIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLCBwcml2YXRlIGNvbmZpZzogQ29uZmlnKSB7XG4gICAgdGhpcy5nZXRVc2VyTGFuZygpO1xuICAgIHRoaXMuYmFja2dyb3VuZEltYWdlID0gYHVybCgke3RoaXMuY29uZmlnLmdldERhc2hib2FyZEJhY2tncm91bmRJbWFnZSgpfSlgO1xuICAgIHRoaXMuaGVhZGVyTG9nbyA9IHRoaXMuY29uZmlnLmdldFJhdygnYWJvdXQuaGVhZGVyTG9nbycpO1xuICAgIGlmICghdGhpcy5oZWFkZXJMb2dvKSB7XG4gICAgICB0aGlzLmhlYWRlckxvZ28gPSB0aGlzLmNvbmZpZy5nZXRSYXcoJ2FwcExvZ28nKTtcbiAgICB9XG5cbiAgICB0aGlzLmJhY2tlbmQuZ2V0SnNvbignL3N5c3RlbS9pbmZvJykuc3Vic2NyaWJlKGluZm8gPT4ge1xuICAgICAgdGhpcy5jdHJsLnByb2R1Y3ROYW1lID0gaW5mby5wcm9kdWN0Lm5hbWU7XG4gICAgICB0aGlzLmN0cmwucHJvZHVjdFZlcnNpb24gPSBpbmZvLnByb2R1Y3QucHJvZHVjdHZlcnNpb247XG4gICAgfSk7XG4gIH1cblxuICBnZXRVc2VyTGFuZygpIHtcbiAgICB0aGlzLnVzZXJTZXJ2aWNlXG4gICAgICAudXNlciRcbiAgICAgIC5zdWJzY3JpYmUoZGF0YSA9PiB0aGlzLnVzZXJMYW5nID0gZGF0YS51c2VyU2V0dGluZ3MuY2xpZW50bG9jYWxlKTtcbiAgfVxuXG4gIHRyYWNrQnlGbihpbmRleCwgaXRlbSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZW8tYWJvdXQtc3RhdGVcIj5cblxuICA8ZGl2IGNsYXNzPVwiYWJvdXRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCIgW3N0eWxlLmJhY2tncm91bmQtaW1hZ2VdPVwiYmFja2dyb3VuZEltYWdlXCI+XG4gICAgICA8aW1nIFtzcmNdPVwiaGVhZGVyTG9nb1wiLz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJib2R5XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2xhaW1cIiB0cmFuc2xhdGU+ZW8uaGVscC5hYm91dC5jbGFpbTwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwid3JhcFwiPlxuICAgICAgICA8dGFibGU+XG4gICAgICAgICAgPHRib2R5PlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCB0cmFuc2xhdGU+ZW8uaGVscC5hYm91dC5jb21wb25lbnQubGFiZWw8L3RoPlxuICAgICAgICAgICAgPHRkPnt7Y3RybC5jb21wb25lbnROYW1lfX08L3RkPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoIHRyYW5zbGF0ZT5lby5oZWxwLmFib3V0LmNvbXBvbmVudC52ZXJzaW9uLmxhYmVsPC90aD5cbiAgICAgICAgICAgIDx0ZD57e2N0cmwuY29tcG9uZW50VmVyc2lvbn19PC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCB0cmFuc2xhdGU+ZW8uaGVscC5hYm91dC5wcm9kdWN0LmxhYmVsPC90aD5cbiAgICAgICAgICAgIDx0ZD57eyBjdHJsLnByb2R1Y3ROYW1lIH19PC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCB0cmFuc2xhdGU+ZW8uaGVscC5hYm91dC5wcm9kdWN0LnZlcnNpb24ubGFiZWw8L3RoPlxuICAgICAgICAgICAgPHRkPnt7IGN0cmwucHJvZHVjdFZlcnNpb24gfX08L3RkPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoIHRyYW5zbGF0ZT5lby5oZWxwLmFib3V0LnByb2R1Y2VyLmxhYmVsPC90aD5cbiAgICAgICAgICAgIDx0ZCB0cmFuc2xhdGU+ZW8uaGVscC5hYm91dC5wcm9kdWNlci50ZXh0PC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgIDwvdGFibGU+XG4gICAgICA8L2Rpdj5cblxuXG4gICAgICA8aDIgdHJhbnNsYXRlPmVvLmhlbHAubGljZW5zZS50aXRsZTwvaDI+XG4gICAgICA8cCB0cmFuc2xhdGU+ZW8uaGVscC5saWNlbnNlLmludHJvPC9wPlxuICAgICAgPGRpdiBjbGFzcz1cInNob3dMaWNcIiAoY2xpY2spPVwibGljZW5zZVNob3cgPSAhbGljZW5zZVNob3dcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b2dnbGVcIj48c3BhbiB0cmFuc2xhdGU+ZW8uaGVscC5saWNlbnNlLnRpdGxlPC9zcGFuPjxzcGFuIGNsYXNzPVwidG9nZ2xlLWluZGljYXRvclwiPnt7bGljZW5zZVNob3cgPyAnLScgOiAnKyd9fTwvc3Bhbj48L3NwYW4+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibGljZW5zZXNcIiAqbmdJZj1cImxpY2Vuc2VTaG93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsaWJcIiAqbmdGb3I9XCJsZXQgbGliIG9mIF9fbGlicmFyaWVzX187IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lXCI+e3tsaWIubmFtZX19PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxpY1wiICpuZ0lmPVwibGljZW5zZXNbbGliLmxpY2Vuc2VdXCI+XG4gICAgICAgICAgICA8YSBocmVmPVwie3tsaWNlbnNlc1tsaWIubGljZW5zZV0udXJsfX1cIiB0YXJnZXQ9XCJfYmxhbmtcIiAqbmdJZj1cImxpY2Vuc2VzW2xpYi5saWNlbnNlXS51cmxcIj57e2xpY2Vuc2VzW2xpYi5saWNlbnNlXS5sYWJlbH19PC9hPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhbGljZW5zZXNbbGliLmxpY2Vuc2VdLnVybFwiPnt7bGljZW5zZXNbbGliLmxpY2Vuc2VdLmxhYmVsfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG48L2Rpdj5cbiJdfQ==
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJvdXQtc3RhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvYWJvdXQtc3RhdGUvYWJvdXQtc3RhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1jbGllbnQvYWJvdXQtc3RhdGUvYWJvdXQtc3RhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFReEMsTUFBTSxPQUFPLG1CQUFtQjtJQXNEOUIsWUFBb0IsT0FBdUIsRUFBVSxXQUF3QixFQUFVLE1BQWM7UUFBakYsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFqRHJHLGtCQUFhLEdBQUcsQ0FBQyxFQUFDLE1BQU0sRUFBQyw0QkFBNEIsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQywwQ0FBMEMsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyx5QkFBeUIsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQywrQkFBK0IsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQywyQkFBMkIsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxxQkFBcUIsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsaUJBQWlCLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsbUJBQW1CLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsZUFBZSxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLGdCQUFnQixFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLDJCQUEyQixFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLG1DQUFtQyxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLGlCQUFpQixFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLHdCQUF3QixFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLFlBQVksRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsYUFBYSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyx1QkFBdUIsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyx3QkFBd0IsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxxQkFBcUIsRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFD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LFNBQVMsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDMUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXO2FBQ2IsS0FBSzthQUNMLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJO1FBQ25CLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs4R0E1RVUsbUJBQW1CO2tHQUFuQixtQkFBbUIsc0RDUmhDLG8rREF1REE7OzJGRC9DYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtVc2VyU2VydmljZSwgQ29uZmlnLCBCYWNrZW5kU2VydmljZX0gZnJvbSAnQGVvLXNkay9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tYWJvdXQtc3RhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWJvdXQtc3RhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hYm91dC1zdGF0ZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFib3V0U3RhdGVDb21wb25lbnQge1xuXG4gIGJhY2tncm91bmRJbWFnZTogc3RyaW5nO1xuICBoZWFkZXJMb2dvOiBzdHJpbmc7XG4gIGxpY2Vuc2VTaG93OiBib29sZWFuO1xuICBfX2xpYnJhcmllc19fID0gW3tcIm5hbWVcIjpcIkBhZy1ncmlkLWNvbW11bml0eS9hbmd1bGFyXCIsXCJ2ZXJzaW9uXCI6XCIzMS4zLjJcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAYWctZ3JpZC1jb21tdW5pdHkvY2xpZW50LXNpZGUtcm93LW1vZGVsXCIsXCJ2ZXJzaW9uXCI6XCIzMS4zLjJcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAYWctZ3JpZC1jb21tdW5pdHkvY29yZVwiLFwidmVyc2lvblwiOlwiMzEuMy4yXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQGFnLWdyaWQtY29tbXVuaXR5L2Nzdi1leHBvcnRcIixcInZlcnNpb25cIjpcIjMxLjMuMlwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIkBhZy1ncmlkLWNvbW11bml0eS9zdHlsZXNcIixcInZlcnNpb25cIjpcIjMxLjMuMlwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIkBhbmd1bGFyL2FuaW1hdGlvbnNcIixcInZlcnNpb25cIjpcIjE4LjAuNFwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIkBhbmd1bGFyL2Nka1wiLFwidmVyc2lvblwiOlwiMTguMC40XCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQGFuZ3VsYXIvY29tbW9uXCIsXCJ2ZXJzaW9uXCI6XCIxOC4wLjRcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAYW5ndWxhci9jb21waWxlclwiLFwidmVyc2lvblwiOlwiMTguMC40XCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQGFuZ3VsYXIvY29yZVwiLFwidmVyc2lvblwiOlwiMTguMC40XCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQGFuZ3VsYXIvZm9ybXNcIixcInZlcnNpb25cIjpcIjE4LjAuNFwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIixcInZlcnNpb25cIjpcIjE4LjAuNFwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXItZHluYW1pY1wiLFwidmVyc2lvblwiOlwiMTguMC40XCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQGFuZ3VsYXIvcm91dGVyXCIsXCJ2ZXJzaW9uXCI6XCIxOC4wLjRcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJAY2FyYm9uL2NoYXJ0cy1hbmd1bGFyXCIsXCJ2ZXJzaW9uXCI6XCIxLjE2LjNcIixcImxpY2Vuc2VcIjpcIkFwYWNoZS0yLjBcIn0se1wibmFtZVwiOlwiQGVvLXNkay9jb3JlXCIsXCJ2ZXJzaW9uXCI6XCIxMS42LjAtcmMuMVwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIkBuZ25lYXQvdW50aWwtZGVzdHJveVwiLFwidmVyc2lvblwiOlwiMTAuMC4wXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQG5neC1wd2EvbG9jYWwtc3RvcmFnZVwiLFwidmVyc2lvblwiOlwiMTguMC4wXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQG5neC10cmFuc2xhdGUvY29yZVwiLFwidmVyc2lvblwiOlwiMTUuMC4wXCIsXCJsaWNlbnNlXCI6XCJTRUUgTElDRU5TRSBJTiBMSUNFTlNFXCJ9LHtcIm5hbWVcIjpcIkB5dXV2aXMvY29tcG9uZW50c1wiLFwidmVyc2lvblwiOlwiMTguMC42XCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiQHl1dXZpcy93aWRnZXQtZ3JpZFwiLFwidmVyc2lvblwiOlwiMTguMC4wXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiY29yZS1qc1wiLFwidmVyc2lvblwiOlwiMi42LjEyXCIsXCJsaWNlbnNlXCI6XCJNSVRcIn0se1wibmFtZVwiOlwiZmlsZS1zYXZlclwiLFwidmVyc2lvblwiOlwiMi4wLjVcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJmb250LWF3ZXNvbWVcIixcInZlcnNpb25cIjpcIjQuNy4wXCIsXCJsaWNlbnNlXCI6XCIoT0ZMLTEuMSBBTkQgTUlUKVwifSx7XCJuYW1lXCI6XCJsb2Rhc2gtZXNcIixcInZlcnNpb25cIjpcIjQuMTcuMjFcIixcImxpY2Vuc2VcIjpcIk1JVFwifSx7XCJuYW1lXCI6XCJtb21lbnRcIixcInZlcnNpb25cIjpcIjIuMzAuMVwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcIm5neC10b2FzdHJcIixcInZlcnNpb25cIjpcIjE5LjAuMFwiLFwibGljZW5zZVwiOlwiTUlUXCJ9LHtcIm5hbWVcIjpcInJ4anNcIixcInZlcnNpb25cIjpcIjcuOC4xXCIsXCJsaWNlbnNlXCI6XCJBcGFjaGUtMi4wXCJ9LHtcIm5hbWVcIjpcInRzbGliXCIsXCJ2ZXJzaW9uXCI6XCIyLjYuM1wiLFwibGljZW5zZVwiOlwiMEJTRFwifSx7XCJuYW1lXCI6XCJ6b25lLmpzXCIsXCJ2ZXJzaW9uXCI6XCIwLjE0LjdcIixcImxpY2Vuc2VcIjpcIk1JVFwifV07XG4gIHVzZXJMYW5nOiBzdHJpbmc7XG5cbiAgY3RybCA9IHtcbiAgICBjb21wb25lbnROYW1lOiAneXV1dmlzwq4gUkFEIGNsaWVudCcsXG4gICAgY29tcG9uZW50VmVyc2lvbjogJzExLjYuMC1yYy4yJyxcbiAgICBwcm9kdWN0TmFtZTogJycsXG4gICAgcHJvZHVjdFZlcnNpb246ICcnXG4gIH07XG5cbiAgbGljZW5zZXMgPSB7XG4gICAgJ01JVCc6IHtcbiAgICAgICdsYWJlbCc6ICdNSVQnLFxuICAgICAgJ3VybCc6ICdodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUJ1xuICAgIH0sXG4gICAgJ0FwYWNoZS0yLjAnOiB7XG4gICAgICAnbGFiZWwnOiAnQXBhY2hlIDIuMCcsXG4gICAgICAndXJsJzogJ2h0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCdcbiAgICB9LFxuICAgICdCU0QtMy1DbGF1c2UtQ2xlYXInOiB7XG4gICAgICAnbGFiZWwnOiAnQlNEIDMtQ2xhdXNlJyxcbiAgICAgICd1cmwnOiAnaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZSdcbiAgICB9LFxuICAgICdDQzAtMS4wJzoge1xuICAgICAgJ2xhYmVsJzogJ0NDMCAxLjAnLFxuICAgICAgJ3VybCc6ICdodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wLydcbiAgICB9LFxuICAgICcoT0ZMLTEuMSBBTkQgTUlUKSc6IHtcbiAgICAgICdsYWJlbCc6ICdNSVQnLFxuICAgICAgJ3VybCc6ICdodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUJ1xuICAgIH0sXG4gICAgJ1NJTE9GTC0xLjEnOiB7XG4gICAgICAnbGFiZWwnOiAnU0lMIE9wZW4gRm9udCBMaWNlbnNlIDEuMScsXG4gICAgICAndXJsJzogJ2h0dHA6Ly9zY3JpcHRzLnNpbC5vcmcvT0ZMX3dlYidcbiAgICB9LFxuICAgICdDb21tZXJjaWFsJzoge1xuICAgICAgJ2xhYmVsJzogJ0NvbW1lcmNpYWwnXG4gICAgfSxcbiAgICAnYWctZ3JpZCc6IHtcbiAgICAgICdsYWJlbCc6ICdhZy1HcmlkLUVudGVycHJpc2UgU29mdHdhcmUgTGljZW5jZSBBZ3JlZW1lbnQgVmVyc2lvbiAxLjcnLFxuICAgICAgJ3VybCc6ICdodHRwczovL2dpdGh1Yi5jb20vY2VvbHRlci9hZy1ncmlkLWVudGVycHJpc2UvYmxvYi9tYXN0ZXIvTElDRU5TRS5tZCdcbiAgICB9LFxuICAgICcwQlNEJzoge1xuICAgICAgJ2xhYmVsJzogJ1plcm8tQ2xhdXNlIEJTRCcsXG4gICAgICAndXJsJzogJ2h0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy8wQlNEJ1xuICAgIH1cbiAgfTtcblxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYmFja2VuZDogQmFja2VuZFNlcnZpY2UsIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLCBwcml2YXRlIGNvbmZpZzogQ29uZmlnKSB7XG4gICAgdGhpcy5nZXRVc2VyTGFuZygpO1xuICAgIHRoaXMuYmFja2dyb3VuZEltYWdlID0gYHVybCgke3RoaXMuY29uZmlnLmdldERhc2hib2FyZEJhY2tncm91bmRJbWFnZSgpfSlgO1xuICAgIHRoaXMuaGVhZGVyTG9nbyA9IHRoaXMuY29uZmlnLmdldFJhdygnYWJvdXQuaGVhZGVyTG9nbycpO1xuICAgIGlmICghdGhpcy5oZWFkZXJMb2dvKSB7XG4gICAgICB0aGlzLmhlYWRlckxvZ28gPSB0aGlzLmNvbmZpZy5nZXRSYXcoJ2FwcExvZ28nKTtcbiAgICB9XG5cbiAgICB0aGlzLmJhY2tlbmQuZ2V0SnNvbignL3N5c3RlbS9pbmZvJykuc3Vic2NyaWJlKGluZm8gPT4ge1xuICAgICAgdGhpcy5jdHJsLnByb2R1Y3ROYW1lID0gaW5mby5wcm9kdWN0Lm5hbWU7XG4gICAgICB0aGlzLmN0cmwucHJvZHVjdFZlcnNpb24gPSBpbmZvLnByb2R1Y3QucHJvZHVjdHZlcnNpb247XG4gICAgfSk7XG4gIH1cblxuICBnZXRVc2VyTGFuZygpIHtcbiAgICB0aGlzLnVzZXJTZXJ2aWNlXG4gICAgICAudXNlciRcbiAgICAgIC5zdWJzY3JpYmUoZGF0YSA9PiB0aGlzLnVzZXJMYW5nID0gZGF0YS51c2VyU2V0dGluZ3MuY2xpZW50bG9jYWxlKTtcbiAgfVxuXG4gIHRyYWNrQnlGbihpbmRleCwgaXRlbSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZW8tYWJvdXQtc3RhdGVcIj5cblxuICA8ZGl2IGNsYXNzPVwiYWJvdXRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCIgW3N0eWxlLmJhY2tncm91bmQtaW1hZ2VdPVwiYmFja2dyb3VuZEltYWdlXCI+XG4gICAgICA8aW1nIFtzcmNdPVwiaGVhZGVyTG9nb1wiLz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJib2R5XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2xhaW1cIiB0cmFuc2xhdGU+ZW8uaGVscC5hYm91dC5jbGFpbTwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwid3JhcFwiPlxuICAgICAgICA8dGFibGU+XG4gICAgICAgICAgPHRib2R5PlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCB0cmFuc2xhdGU+ZW8uaGVscC5hYm91dC5jb21wb25lbnQubGFiZWw8L3RoPlxuICAgICAgICAgICAgPHRkPnt7Y3RybC5jb21wb25lbnROYW1lfX08L3RkPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoIHRyYW5zbGF0ZT5lby5oZWxwLmFib3V0LmNvbXBvbmVudC52ZXJzaW9uLmxhYmVsPC90aD5cbiAgICAgICAgICAgIDx0ZD57e2N0cmwuY29tcG9uZW50VmVyc2lvbn19PC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCB0cmFuc2xhdGU+ZW8uaGVscC5hYm91dC5wcm9kdWN0LmxhYmVsPC90aD5cbiAgICAgICAgICAgIDx0ZD57eyBjdHJsLnByb2R1Y3ROYW1lIH19PC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCB0cmFuc2xhdGU+ZW8uaGVscC5hYm91dC5wcm9kdWN0LnZlcnNpb24ubGFiZWw8L3RoPlxuICAgICAgICAgICAgPHRkPnt7IGN0cmwucHJvZHVjdFZlcnNpb24gfX08L3RkPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoIHRyYW5zbGF0ZT5lby5oZWxwLmFib3V0LnByb2R1Y2VyLmxhYmVsPC90aD5cbiAgICAgICAgICAgIDx0ZCB0cmFuc2xhdGU+ZW8uaGVscC5hYm91dC5wcm9kdWNlci50ZXh0PC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgIDwvdGFibGU+XG4gICAgICA8L2Rpdj5cblxuXG4gICAgICA8aDIgdHJhbnNsYXRlPmVvLmhlbHAubGljZW5zZS50aXRsZTwvaDI+XG4gICAgICA8cCB0cmFuc2xhdGU+ZW8uaGVscC5saWNlbnNlLmludHJvPC9wPlxuICAgICAgPGRpdiBjbGFzcz1cInNob3dMaWNcIiAoY2xpY2spPVwibGljZW5zZVNob3cgPSAhbGljZW5zZVNob3dcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b2dnbGVcIj48c3BhbiB0cmFuc2xhdGU+ZW8uaGVscC5saWNlbnNlLnRpdGxlPC9zcGFuPjxzcGFuIGNsYXNzPVwidG9nZ2xlLWluZGljYXRvclwiPnt7bGljZW5zZVNob3cgPyAnLScgOiAnKyd9fTwvc3Bhbj48L3NwYW4+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibGljZW5zZXNcIiAqbmdJZj1cImxpY2Vuc2VTaG93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsaWJcIiAqbmdGb3I9XCJsZXQgbGliIG9mIF9fbGlicmFyaWVzX187IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lXCI+e3tsaWIubmFtZX19PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxpY1wiICpuZ0lmPVwibGljZW5zZXNbbGliLmxpY2Vuc2VdXCI+XG4gICAgICAgICAgICA8YSBocmVmPVwie3tsaWNlbnNlc1tsaWIubGljZW5zZV0udXJsfX1cIiB0YXJnZXQ9XCJfYmxhbmtcIiAqbmdJZj1cImxpY2Vuc2VzW2xpYi5saWNlbnNlXS51cmxcIj57e2xpY2Vuc2VzW2xpYi5saWNlbnNlXS5sYWJlbH19PC9hPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhbGljZW5zZXNbbGliLmxpY2Vuc2VdLnVybFwiPnt7bGljZW5zZXNbbGliLmxpY2Vuc2VdLmxhYmVsfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG48L2Rpdj5cbiJdfQ==
@@ -138,8 +138,8 @@ let ChartsSetupComponent = class ChartsSetupComponent {
138
138
  ...this._query.getQueryJson()
139
139
  };
140
140
  this.searchService.executeQuery(queryMinMax, true).subscribe((res) => {
141
- let min = res.aggregations['min#' + field.replace('sysobject.', '') + '_min'].value;
142
- let max = res.aggregations['max#' + field.replace('sysobject.', '') + '_max'].value;
141
+ let min = res.aggregations['min#' + field.replace('sysobject.', '') + '_min']?.value;
142
+ let max = res.aggregations['max#' + field.replace('sysobject.', '') + '_max']?.value;
143
143
  this.setupForm.patchValue({
144
144
  minValue: min,
145
145
  maxValue: max,
@@ -186,15 +186,16 @@ let ChartsSetupComponent = class ChartsSetupComponent {
186
186
  }
187
187
  updateField() {
188
188
  setTimeout(() => {
189
- const type = this.storedQuery?.types?.length === 1 ? this.storedQuery?.types[0]?.qname : 'sysdocument';
189
+ let type = this.storedQuery?.types?.length === 1 ? this.storedQuery?.types[0]?.qname : 'sysdocument';
190
+ let contextType = this.storedQuery?.contextFolderTypes[0]?.qname;
190
191
  this.getHistogramField();
191
- this.getAggregationField(type);
192
+ this.getAggregationField(type, contextType);
192
193
  this.getAttributMetricCodesystem(type);
193
194
  }, 100);
194
195
  }
195
- getAggregationField(type) {
196
+ getAggregationField(type, contextType) {
196
197
  this.aggregationPicker.codesystem = null;
197
- return this.userService.getFieldDefinition(type).pipe(untilDestroyed(this)).subscribe(definition => {
198
+ return this.userService.getFieldDefinition(type, contextType).pipe(untilDestroyed(this)).subscribe(definition => {
198
199
  let exclude = new Set(['filename', 'mimetype', 'modifiertitle', 'version', 'creatortitle', 'title', 'description']);
199
200
  if (type !== 'sysdocument') {
200
201
  exclude.add('type');
@@ -205,9 +206,10 @@ let ChartsSetupComponent = class ChartsSetupComponent {
205
206
  }
206
207
  this.aggregationPicker.codesystem = {
207
208
  entries: filteredFields.map(field => {
209
+ let additionalLabel = field.selectedforenrichment ? ' *' : '';
208
210
  let label = filteredFields.filter(item => item.label === field.label).length > 1
209
- ? field.label + ' (' + this.system.getObjectType(field.qname.split('.')[0]).label + ')'
210
- : field.label;
211
+ ? field.label + ' (' + this.system.getObjectType(field.qname.split('.')[0]).label + ')' + additionalLabel
212
+ : field.label + additionalLabel;
211
213
  return {
212
214
  id: field.qname,
213
215
  defaultrepresentation: label,
@@ -442,4 +444,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
442
444
  }], widgetConfig: [{
443
445
  type: Input
444
446
  }] } });
445
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnRzLXNldHVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tY2xpZW50L2Rhc2hib2FyZC93aWRnZXRzL2NoYXJ0cy13aWRnZXQvY2hhcnRzLXNldHVwL2NoYXJ0cy1zZXR1cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWNsaWVudC9kYXNoYm9hcmQvd2lkZ2V0cy9jaGFydHMtd2lkZ2V0L2NoYXJ0cy1zZXR1cC9jaGFydHMtc2V0dXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR3hGLE9BQU8sRUFBMEQsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkcsT0FBTyxFQUE4RyxLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDaEosT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRSxPQUFPLEVBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7OztBQVN2QyxJQUFNLG9CQUFvQixHQUExQixNQUFNLG9CQUFvQjtJQWdFL0IsSUFBYSxZQUFZLENBQUMsRUFBVztRQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsWUFDVSxFQUFzQixFQUN0QixvQkFBMEMsRUFDMUMsU0FBMkIsRUFDM0IsV0FBd0IsRUFDeEIsTUFBcUIsRUFD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QyxZQUFZLEVBQUU7R0FNRixvQkFBb0IsQ0E0ZWhDOzsyRkE1ZVksb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGlCQUFpQjsyT0FNakIsa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLHVCQUF1QjtzQkFBaEMsTUFBTTtnQkEyRDZCLHFCQUFxQjtzQkFBeEQsU0FBUzt1QkFBQyx1QkFBdUI7Z0JBRXJCLFlBQVk7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0lXaWRnZXRDb21wb25lbnR9IGZyb20gJ0B5dXV2aXMvd2lkZ2V0LWdyaWQnO1xuaW1wb3J0IHtJY2hhcnRzfSBmcm9tICcuLi9pY2hhcnRzJztcbmltcG9ydCB7Rm9ybUNvbnRyb2xTdGF0dXMsIFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtTZWFyY2hRdWVyeSwgU2VhcmNoU2VydmljZSwgU3RvcmVkUXVlcmllc1NlcnZpY2UsIFN0b3JlZFF1ZXJ5LCBTeXN0ZW1TZXJ2aWNlLCBUcmFuc2xhdGVTZXJ2aWNlLCBVc2VyU2VydmljZSwgVXRpbHN9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge1VudGlsRGVzdHJveSwgdW50aWxEZXN0cm95ZWR9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQge0VNUFRZLCBkZWJvdW5jZVRpbWUsIHRhcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0NvZGVzeXN0ZW1Db21wb25lbnR9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2VvLWZyYW1ld29yayc7XG5cbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tY2hhcnRzLXNldHVwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYXJ0cy1zZXR1cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoYXJ0cy1zZXR1cC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENoYXJ0c1NldHVwQ29tcG9uZW50IGltcGxlbWVudHMgSVdpZGdldENvbXBvbmVudCwgT25Jbml0IHtcbiAgcHJpdmF0ZSBfd2lkZ2V0Q29uZmlnOiBJY2hhcnRzO1xuICBAT3V0cHV0KCkgd2lkZ2V0Q29uZmlnQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJY2hhcnRzPigpO1xuICBAT3V0cHV0KCkgd2lkZ2V0Q29uZmlnU3RhdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm1Db250cm9sU3RhdHVzPigpO1xuXG4gIHN0b3JlZFF1ZXJpZXM6IFN0b3JlZFF1ZXJ5W107XG4gIHByaXZhdGUgX3F1ZXJ5OiBTZWFyY2hRdWVyeTtcbiAgc2V0dXBGb3JtOiBVbnR5cGVkRm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XG4gICAgc3RvcmVkUXVlcnk6IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICBjaGFydFR5cGU6IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICBzaXplOiBbMTAsIFtWYWxpZGF0b3JzLm1heCgxMDApLCBWYWxpZGF0b3JzLm1pbigzKSwgVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgIGFnZ3JlZ2F0aW9uOiBbbnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgaGlzdG9ncmFtVHlwZTogW251bGxdLFxuICAgIGF0dHJpYnV0TWV0cmljOiBbbnVsbF0sXG4gICAgbWV0cmljOiBbbnVsbF0sXG4gICAgc29ydFJldmVydDogW2ZhbHNlXSxcbiAgICBpbnRlcnZhbDogW251bGxdLFxuICAgIHN0YXJ0aW5ncG9pbnQ6IFtudWxsXSxcbiAgICBtaW5Eb2NDb3VudDogWzFdLFxuICAgIHRpdGxlOiBbJycsIFtWYWxpZGF0b3JzLm1heExlbmd0aCg1MCldXSxcbiAgICB4QXhlOiBbJycsIFtWYWxpZGF0b3JzLm1heExlbmd0aCg1MCldXSxcbiAgICB5QXhlOiBbJycsIFtWYWxpZGF0b3JzLm1heExlbmd0aCg1MCldXSxcbiAgICBtaW5WYWx1ZTogW251bGxdLFxuICAgIG1heFZhbHVlOiBbbnVsbF1cbiAgfSk7XG5cbiAgc3RvcmVkUXVlcmllc1BpY2tlciA9IHtcbiAgICB0aXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5sYWJlbC5zdG9yZWRxdWVyeScpLFxuICAgIGNvZGVzeXN0ZW06IG51bGwsXG4gIH07XG5cbiAgYWdncmVnYXRpb25QaWNrZXIgPSB7XG4gICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXQuZm9ybS5sYWJlbC5hZ2dyZWdhdGlvbkZpZWxkJyksXG4gICAgY29kZXN5c3RlbTogbnVsbCxcbiAgfTtcblxuICBjaGFydFR5cGVQaWNrZXIgPSB7XG4gICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXQuZm9ybS5sYWJlbC5jaGFydFR5cGVGaWVsZCcpLFxuICAgIGNvZGVzeXN0ZW06IG51bGwsXG4gIH07XG5cbiAgaGlzdG9ncmFtVHlwZVBpY2tlciA9IHtcbiAgICB0aXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5mb3JtLmxhYmVsLmhpc3RvZ3JhbScpLFxuICAgIGNvZGVzeXN0ZW06IG51bGwsXG4gIH07XG5cbiAgYXR0cmlidXRNZXRyaWNQaWNrZXIgPSB7XG4gICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXQuZm9ybS5sYWJlbC5hdHRyaWJ1dE1ldHJpYycpLFxuICAgIGNvZGVzeXN0ZW06IG51bGwsXG4gIH07XG5cbiAgY2hhcnRNZXRyaWNQaWNrZXIgPSB7XG4gICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLndvcmtzcGFjZS53aWRnZXQuZm9ybS5sYWJlbC5jaGFydE1ldHJpYycpLFxuICAgIGNvZGVzeXN0ZW06IG51bGwsXG4gIH07XG5cbiAgaXNEYXRlVGltZVR5cGUgPSBmYWxzZTtcbiAgaXNOdW1iZXJUeXBlID0gZmFsc2U7XG4gIHNlbGVjdGVkU2F2ZWRTZWFyY2hOYW1lID0gJyc7XG4gIHNlbGVjdGVkQWdncmVnYXRpb25OYW1lID0gJyc7XG4gIHN0b3JlZFF1ZXJ5OiBTdG9yZWRRdWVyeTtcblxuICBAVmlld0NoaWxkKCdhZ2dyZWdhdGlvbkNvZGVzeXN0ZW0nKSBhZ2dyZWdhdGlvbkNvZGVzeXN0ZW06IENvZGVzeXN0ZW1Db21wb25lbnQ7XG5cbiAgQElucHV0KCkgc2V0IHdpZGdldENvbmZpZyh3YzogSWNoYXJ0cykge1xuICAgIHRoaXMuX3dpZGdldENvbmZpZyA9IHdjO1xuICAgIHRoaXMudXBkYXRlRmllbGQoKTtcbiAgfVxuXG4gIGdldCB3aWRnZXRDb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3dpZGdldENvbmZpZztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHN0b3JlZFF1ZXJpZXNTZXJ2aWNlOiBTdG9yZWRRdWVyaWVzU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIHN5c3RlbTogU3lzdGVtU2VydmljZSxcbiAgICBwcml2YXRlIHNlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2UpIHtcbiAgICB0aGlzLnNldHVwRm9ybS52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMTAwMCksIHVudGlsRGVzdHJveWVkKHRoaXMpKS5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgIHRoaXMuc2V0V2lkZ2V0Q29uZmlnKCk7XG4gICAgfSk7XG4gICAgdGhpcy5zZXR1cEZvcm0uc3RhdHVzQ2hhbmdlcy5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKS5zdWJzY3JpYmUoKHYpID0+IHtcbiAgICAgIHRoaXMud2lkZ2V0Q29uZmlnU3RhdGVDaGFuZ2UuZW1pdCh2KTtcbiAgICB9KTtcbiAgICB0aGlzLmdldFN0b3JlZFF1ZXJ5cygpO1xuICAgIHRoaXMuZ2V0Q2hhcnRGaWVsZCgpO1xuICAgIHRoaXMuZ2V0TWV0cmljQ29kZXN5c3RlbSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRXaWRnZXRDb25maWcoKSB7XG4gICAgaWYgKHRoaXMuc2V0dXBGb3JtLnZhbGlkICYmIHRoaXMuc3RvcmVkUXVlcmllcykge1xuICAgICAgdGhpcy5zdG9yZWRRdWVyeSA9IHRoaXMuc3RvcmVkUXVlcmllcy5maW5kKChzcSkgPT4gc3EubmFtZSA9PT0gdGhpcy5zZXR1cEZvcm0uZ2V0KCdzdG9yZWRRdWVyeScpLnZhbHVlKTtcbiAgICAgIHRoaXMud2lkZ2V0Q29uZmlnID0ge1xuICAgICAgICBzdG9yZWRRdWVyeTogdGhpcy5zdG9yZWRRdWVyeT8uaWQsXG4gICAgICAgIGZvcm1WYWx1ZTogdGhpcy5zZXR1cEZvcm0udmFsdWUsXG4gICAgICAgIGFnZ3JlZ2F0aW9uVHlwZTogJ0RBVEVUSU1FJ1xuICAgICAgfTtcbiAgICAgIGlmICh0aGlzLnNldHVwRm9ybS5nZXQoJ3N0b3JlZFF1ZXJ5JykudmFsdWUgIT09IHRoaXMuc2VsZWN0ZWRTYXZlZFNlYXJjaE5hbWUpIHtcbiAgICAgICAgaWYgKHRoaXMuc3RvcmVkUXVlcnkpIHtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkU2F2ZWRTZWFyY2hOYW1lICE9PSAnJykge1xuICAgICAgICAgICAgICB0aGlzLnNldHVwRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgICBhZ2dyZWdhdGlvbjogJ3N5c29iamVjdC5jcmVhdGVkJyxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZpZWxkKCk7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkU2F2ZWRTZWFyY2hOYW1lID0gdGhpcy5zZXR1cEZvcm0uZ2V0KCdzdG9yZWRRdWVyeScpLnZhbHVlO1xuICAgICAgICAgICAgdGhpcy5pc0RhdGVUaW1lVHlwZSA9IHRoaXMud2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWUuYWdncmVnYXRpb24gPT09ICdzeXNvYmplY3QuY3JlYXRlZCcgfHwgdGhpcy53aWRnZXRDb25maWc/LmFnZ3JlZ2F0aW9uVHlwZSA9PT0gJ0RBVEVUSU1FJztcbiAgICAgICAgICAgIHRoaXMuaXNOdW1iZXJUeXBlID0gdGhpcy53aWRnZXRDb25maWc/LmFnZ3JlZ2F0aW9uVHlwZSA9PT0gJ05VTUJFUic7XG4gICAgICAgICAgfSwgMTAwKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy53aWRnZXRDb25maWcuYWdncmVnYXRpb25UeXBlID0gdGhpcy5hZ2dyZWdhdGlvbkNvZGVzeXN0ZW0/LnNlbGVjdGVkTm9kZXM/LmRhdGE/LnR5cGU7XG4gICAgICAgIHRoaXMuaXNEYXRlVGltZVR5cGUgPSB0aGlzLndpZGdldENvbmZpZz8uYWdncmVnYXRpb25UeXBlID09PSAnREFURVRJTUUnO1xuICAgICAgICB0aGlzLmlzTnVtYmVyVHlwZSA9IHRoaXMud2lkZ2V0Q29uZmlnPy5hZ2dyZWdhdGlvblR5cGUgPT09ICdOVU1CRVInO1xuICAgICAgICBpZiAodGhpcy5zZXR1cEZvcm0uZ2V0KCdhZ2dyZWdhdGlvbicpLnZhbHVlICE9PSB0aGlzLnNlbGVjdGVkQWdncmVnYXRpb25OYW1lKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEFnZ3JlZ2F0aW9uTmFtZSA9IHRoaXMuc2V0dXBGb3JtLmdldCgnYWdncmVnYXRpb24nKS52YWx1ZTtcbiAgICAgICAgICBpZiAodGhpcy5pc051bWJlclR5cGUpIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0U3RhcnRFbmR2YWx1ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy53aWRnZXRDb25maWdDaGFuZ2UuZW1pdCh0aGlzLl93aWRnZXRDb25maWcpO1xuICAgIH1cbiAgfVxuXG4gIGdldFN0YXJ0RW5kdmFsdWUoKSB7XG4gICAgbGV0IGZpZWxkID0gdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmFnZ3JlZ2F0aW9uO1xuICAgIHRoaXMuX3F1ZXJ5ID0gdGhpcy5zZWFyY2hTZXJ2aWNlLmJ1aWxkUXVlcnkoc3RydWN0dXJlZENsb25lKHRoaXMuc3RvcmVkUXVlcnkpKTtcbiAgICBkZWxldGUgdGhpcy5fcXVlcnkubmFtZTtcbiAgICBjb25zdCBxdWVyeU1pbk1heCA9IHtcbiAgICAgIGFnZ3M6IHtcbiAgICAgICAgW2ZpZWxkLnJlcGxhY2UoJ3N5c29iamVjdC4nLCAnJyldOiB7XG4gICAgICAgICAgbWV0cmljczogWydtaW4nLCAnbWF4J11cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIC4uLnRoaXMuX3F1ZXJ5LmdldFF1ZXJ5SnNvbigpXG4gICAgfTtcbiAgICB0aGlzLnNlYXJjaFNlcnZpY2UuZXhlY3V0ZVF1ZXJ5KHF1ZXJ5TWluTWF4LCB0cnVlKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgbGV0IG1pbiA9IHJlcy5hZ2dyZWdhdGlvbnNbJ21pbiMnICsgZmllbGQucmVwbGFjZSgnc3lzb2JqZWN0LicsICcnKSArICdfbWluJ10udmFsdWU7XG4gICAgICBsZXQgbWF4ID0gcmVzLmFnZ3JlZ2F0aW9uc1snbWF4IycgKyBmaWVsZC5yZXBsYWNlKCdzeXNvYmplY3QuJywgJycpICsgJ19tYXgnXS52YWx1ZTtcbiAgICAgIHRoaXMuc2V0dXBGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICBtaW5WYWx1ZTogbWluLFxuICAgICAgICBtYXhWYWx1ZTogbWF4LFxuICAgICAgfSk7XG4gICAgICBsZXQgc2l6ZSA9IDEwO1xuICAgICAgbWluID0gTWF0aC5mbG9vcihtaW4pO1xuICAgICAgbWF4ID0gTWF0aC5jZWlsKG1heCk7XG4gICAgICBsZXQgaW50ZXJ2YWwgPSAobWF4IC0gbWluKSAvIHNpemU7XG4gICAgICBsZXQgaW50ZXJ2YWxSb3VuZCA9IDA7XG4gICAgICBpZiAoaW50ZXJ2YWwgPCAxMCkge1xuICAgICAgICBpbnRlcnZhbFJvdW5kID0gMTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGRpZ2l0cyA9IE1hdGguZmxvb3IoTWF0aC5sb2cxMChpbnRlcnZhbCkpICsgMTtcbiAgICAgICAgY29uc3QgZGl2aXNvciA9IE1hdGgucG93KDEwLCBkaWdpdHMgLSAxKTtcbiAgICAgICAgaW50ZXJ2YWxSb3VuZCA9IE1hdGguY2VpbChpbnRlcnZhbCAvIGRpdmlzb3IpICogZGl2aXNvcjtcbiAgICAgIH1cbiAgICAgIG1pbiA9IG1pbiAmJiBNYXRoLnJvdW5kKE1hdGguZmxvb3IobWluIC8gaW50ZXJ2YWxSb3VuZCkgKiBpbnRlcnZhbFJvdW5kKTtcbiAgICAgIG1heCA9IG1heCAmJiBNYXRoLnJvdW5kKE1hdGguY2VpbChtYXggLyBpbnRlcnZhbFJvdW5kKSAqIGludGVydmFsUm91bmQpO1xuICAgICAgdGhpcy5zZXR1cEZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgIGludGVydmFsOiBpbnRlcnZhbFJvdW5kLFxuICAgICAgICBzdGFydGluZ3BvaW50OiBtaW4sXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldFN0b3JlZFF1ZXJ5cygpIHtcbiAgICB0aGlzLnN0b3JlZFF1ZXJpZXNTZXJ2aWNlXG4gICAgICAuZmV0Y2hTdG9yZWRRdWVyaWVzKCkucGlwZShcbiAgICAgICAgdW50aWxEZXN0cm95ZWQodGhpcyksXG4gICAgICApLnN1YnNjcmliZShzdG9yZWRRdWVyaWVzID0+IHtcbiAgICAgICAgdGhpcy5zdG9yZWRRdWVyaWVzID0gc3RvcmVkUXVlcmllcztcbiAgICAgICAgdGhpcy5zdG9yZWRRdWVyaWVzUGlja2VyLmNvZGVzeXN0ZW0gPSB7XG4gICAgICAgICAgZW50cmllczogdGhpcy5zdG9yZWRRdWVyaWVzLm1hcChzdG9yZWRRdWVyeSA9PiAoe1xuICAgICAgICAgICAgaWQ6IHN0b3JlZFF1ZXJ5LmlkLFxuICAgICAgICAgICAgbGFiZWw6IHN0b3JlZFF1ZXJ5Lm5hbWUsXG4gICAgICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHN0b3JlZFF1ZXJ5Lm5hbWUsXG4gICAgICAgICAgICBkYXRhOiBzdG9yZWRRdWVyeS5uYW1lXG4gICAgICAgICAgfSkpLnNvcnQoVXRpbHMuc29ydFZhbHVlcygnbGFiZWwnKSksXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgfVxuXG4gIGdldFN0b3JlZFF1ZXJ5KGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yZWRRdWVyaWVzU2VydmljZS5nZXRTdG9yZWRRdWVyeShpZCkucGlwZShcbiAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpLFxuICAgICAgdGFwKHN0b3JlZFF1ZXJ5ID0+IHtcbiAgICAgICAgdGhpcy5zdG9yZWRRdWVyeSA9IHN0b3JlZFF1ZXJ5O1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgdXBkYXRlRmllbGQoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCB0eXBlID0gdGhpcy5zdG9yZWRRdWVyeT8udHlwZXM/Lmxlbmd0aCA9PT0gMSA/IHRoaXMuc3RvcmVkUXVlcnk/LnR5cGVzWzBdPy5xbmFtZSA6ICdzeXNkb2N1bWVudCc7XG4gICAgICB0aGlzLmdldEhpc3RvZ3JhbUZpZWxkKCk7XG4gICAgICB0aGlzLmdldEFnZ3JlZ2F0aW9uRmllbGQodHlwZSk7XG4gICAgICB0aGlzLmdldEF0dHJpYnV0TWV0cmljQ29kZXN5c3RlbSh0eXBlKTtcbiAgICB9LCAxMDApO1xuICB9XG5cbiAgZ2V0QWdncmVnYXRpb25GaWVsZCh0eXBlKSB7XG4gICAgdGhpcy5hZ2dyZWdhdGlvblBpY2tlci5jb2Rlc3lzdGVtID0gbnVsbDtcbiAgICByZXR1cm4gdGhpcy51c2VyU2VydmljZS5nZXRGaWVsZERlZmluaXRpb24odHlwZSkucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSkuc3Vic2NyaWJlKGRlZmluaXRpb24gPT4ge1xuICAgICAgbGV0IGV4Y2x1ZGUgPSBuZXcgU2V0KFsnZmlsZW5hbWUnLCAnbWltZXR5cGUnLCAnbW9kaWZpZXJ0aXRsZScsICd2ZXJzaW9uJywgJ2NyZWF0b3J0aXRsZScsICd0aXRsZScsICdkZXNjcmlwdGlvbiddKTtcbiAgICAgIGlmICh0eXBlICE9PSAnc3lzZG9jdW1lbnQnKSB7XG4gICAgICAgIGV4Y2x1ZGUuYWRkKCd0eXBlJyk7XG4gICAgICB9XG4gICAgICBsZXQgZmlsdGVyZWRGaWVsZHMgPSBkZWZpbml0aW9uLmVsZW1lbnRzLmZpbHRlcihmaWVsZCA9PiAhZXhjbHVkZS5oYXMoZmllbGQuaGl0bmFtZSkpO1xuICAgICAgaWYgKHRoaXMud2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmNoYXJ0VHlwZSA9PT0gJ2xpbmVDdXJ2ZScgfHwgdGhpcy53aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uY2hhcnRUeXBlID09PSAnbGluZVN0cmFpZ2h0Jykge1xuICAgICAgICBmaWx0ZXJlZEZpZWxkcyA9IGZpbHRlcmVkRmllbGRzLmZpbHRlcihmaWVsZCA9PiBmaWVsZC50eXBlID09PSAnREFURVRJTUUnIHx8IGZpZWxkLnR5cGUgPT09ICdOVU1CRVInKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYWdncmVnYXRpb25QaWNrZXIuY29kZXN5c3RlbSA9IHtcbiAgICAgICAgZW50cmllczogZmlsdGVyZWRGaWVsZHMubWFwKGZpZWxkID0+IHtcbiAgICAgICAgICBsZXQgbGFiZWwgPSBmaWx0ZXJlZEZpZWxkcy5maWx0ZXIoaXRlbSA9PiBpdGVtLmxhYmVsID09PSBmaWVsZC5sYWJlbCkubGVuZ3RoID4gMVxuICAgICAgICAgICAgPyBmaWVsZC5sYWJlbCArICcgKCcgKyB0aGlzLnN5c3RlbS5nZXRPYmplY3RUeXBlKGZpZWxkLnFuYW1lLnNwbGl0KCcuJylbMF0pLmxhYmVsICsgJyknXG4gICAgICAgICAgICA6IGZpZWxkLmxhYmVsO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogZmllbGQucW5hbWUsXG4gICAgICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IGxhYmVsLFxuICAgICAgICAgICAgZGF0YTogZmllbGQucW5hbWUsXG4gICAgICAgICAgICB0eXBlOiBmaWVsZC50eXBlXG4gICAgICAgICAgfTtcbiAgICAgICAgfSkuc29ydChVdGlscy5zb3J0VmFsdWVzKCdkZWZhdWx0cmVwcmVzZW50YXRpb24nKSksXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0TWV0cmljQ29kZXN5c3RlbSgpIHtcbiAgICByZXR1cm4gdGhpcy5jaGFydE1ldHJpY1BpY2tlci5jb2Rlc3lzdGVtID0ge1xuICAgICAgZW50cmllczogW1xuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdtaW4nLFxuICAgICAgICAgIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0cy5tZXRyaWMubWluJyksXG4gICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAnZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMubWV0cmljLm1pbidcbiAgICAgICAgICApLFxuICAgICAgICAgIHZhbHVlOiAnbWluJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnYXZnJyxcbiAgICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAnZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMubWV0cmljLmF2ZycpLFxuICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLm1ldHJpYy5hdmcnXG4gICAgICAgICAgKSxcbiAgICAgICAgICB2YWx1ZTogJ2F2ZycsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ21heCcsXG4gICAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLm1ldHJpYy5tYXgnXG4gICAgICAgICAgKSxcbiAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0cy5tZXRyaWMubWF4J1xuICAgICAgICAgICksXG4gICAgICAgICAgdmFsdWU6ICdtYXgnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdtZWRpYW4nLFxuICAgICAgICAgIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0cy5tZXRyaWMubWVkaWFuJ1xuICAgICAgICAgICksXG4gICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAnZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMubWV0cmljLm1lZGlhbidcbiAgICAgICAgICApLFxuICAgICAgICAgIHZhbHVlOiAnbWVkaWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnc3VtJyxcbiAgICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAnZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMubWV0cmljLnN1bSdcbiAgICAgICAgICApLFxuICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLm1ldHJpYy5zdW0nXG4gICAgICAgICAgKSxcbiAgICAgICAgICB2YWx1ZTogJ3N1bScsXG4gICAgICAgIH1cbiAgICAgIF0ubWFwKChyZXMpID0+ICh7XG4gICAgICAgIGlkOiByZXMuaWQsXG4gICAgICAgIGxhYmVsOiByZXMubGFiZWwsXG4gICAgICAgIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogcmVzLmRlZmF1bHRyZXByZXNlbnRhdGlvbixcbiAgICAgICAgZGF0YTogcmVzLnZhbHVlXG4gICAgICB9KSkuc29ydChVdGlscy5zb3J0VmFsdWVzKCdkZWZhdWx0cmVwcmVzZW50YXRpb24nKSksXG4gICAgfTtcbiAgfVxuXG4gIGdldENoYXJ0RmllbGQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2hhcnRUeXBlUGlja2VyLmNvZGVzeXN0ZW0gPSB7XG4gICAgICBlbnRyaWVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ2JhcicsXG4gICAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLnR5cGUuYmFyJyksXG4gICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAnZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMudHlwZS5iYXInXG4gICAgICAgICAgKSxcbiAgICAgICAgICB2YWx1ZTogJ2JhcicsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ3BpZScsXG4gICAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLnR5cGUucGllJyksXG4gICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAnZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMudHlwZS5waWUnXG4gICAgICAgICAgKSxcbiAgICAgICAgICB2YWx1ZTogJ3BpZScsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ2RvbnV0JyxcbiAgICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAnZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMudHlwZS5kb251dCdcbiAgICAgICAgICApLFxuICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLnR5cGUuZG9udXQnXG4gICAgICAgICAgKSxcbiAgICAgICAgICB2YWx1ZTogJ2RvbnV0JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnbGluZVN0cmFpZ2h0JyxcbiAgICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAnZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMudHlwZS5saW5lU3RyYWlnaHQnXG4gICAgICAgICAgKSxcbiAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0cy50eXBlLmxpbmVTdHJhaWdodCdcbiAgICAgICAgICApLFxuICAgICAgICAgIHZhbHVlOiAnbGluZVN0cmFpZ2h0JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnbGluZUN1cnZlJyxcbiAgICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAnZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMudHlwZS5saW5lQ3VydmUnXG4gICAgICAgICAgKSxcbiAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0cy50eXBlLmxpbmVDdXJ2ZSdcbiAgICAgICAgICApLFxuICAgICAgICAgIHZhbHVlOiAnbGluZUN1cnZlJyxcbiAgICAgICAgfVxuICAgICAgXS5tYXAoKHJlcykgPT4gKHtcbiAgICAgICAgaWQ6IHJlcy5pZCxcbiAgICAgICAgbGFiZWw6IHJlcy5sYWJlbCxcbiAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiByZXMuZGVmYXVsdHJlcHJlc2VudGF0aW9uLFxuICAgICAgICBkYXRhOiByZXMudmFsdWVcbiAgICAgIH0pKS5zb3J0KFV0aWxzLnNvcnRWYWx1ZXMoJ2RlZmF1bHRyZXByZXNlbnRhdGlvbicpKSxcbiAgICB9O1xuICB9XG5cbiAgZ2V0SGlzdG9ncmFtRmllbGQoKSB7XG4gICAgbGV0IGVudHJpZXMgPSBbXG4gICAgICB7XG4gICAgICAgIGlkOiAnZGFpbHknLFxuICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLmhpc3RvZ3JhbS5kYWlseSdcbiAgICAgICAgKSxcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLmhpc3RvZ3JhbS5kYWlseSdcbiAgICAgICAgKSxcbiAgICAgICAgdmFsdWU6ICdkYWlseSdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnd2Vla2x5JyxcbiAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0cy5oaXN0b2dyYW0ud2Vla2x5J1xuICAgICAgICApLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAnZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMuaGlzdG9ncmFtLndlZWtseSdcbiAgICAgICAgKSxcbiAgICAgICAgdmFsdWU6ICd3ZWVrbHknXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ21vbnRobHknLFxuICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLmhpc3RvZ3JhbS5tb250aGx5JyksXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0cy5oaXN0b2dyYW0ubW9udGhseSdcbiAgICAgICAgKSxcbiAgICAgICAgdmFsdWU6ICdtb250aGx5J1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICd5ZWFybHknLFxuICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLmhpc3RvZ3JhbS55ZWFybHknKSxcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLmhpc3RvZ3JhbS55ZWFybHknXG4gICAgICAgICksXG4gICAgICAgIHZhbHVlOiAneWVhcmx5J1xuICAgICAgfVxuICAgIF07XG4gICAgcmV0dXJuIHRoaXMuaGlzdG9ncmFtVHlwZVBpY2tlci5jb2Rlc3lzdGVtID0ge1xuICAgICAgZW50cmllczogZW50cmllcy5tYXAoKHJlcykgPT4gKHtcbiAgICAgICAgaWQ6IHJlcy5pZCxcbiAgICAgICAgbGFiZWw6IHJlcy5sYWJlbCxcbiAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiByZXMuZGVmYXVsdHJlcHJlc2VudGF0aW9uLFxuICAgICAgICBkYXRhOiByZXMudmFsdWVcbiAgICAgIH0pKSxcbiAgICB9O1xuICB9XG5cbiAgZ2V0QXR0cmlidXRNZXRyaWNDb2Rlc3lzdGVtKHR5cGUpIHtcbiAgICByZXR1cm4gdGhpcy51c2VyU2VydmljZS5nZXRGaWVsZERlZmluaXRpb24odHlwZSkucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSkuc3Vic2NyaWJlKGRlZmluaXRpb24gPT4ge1xuICAgICAgbGV0IGV4Y2x1ZGUgPSBuZXcgU2V0KFsnZmlsZW5hbWUnLCAnbWltZXR5cGUnLCAnbW9kaWZpZXJ0aXRsZScsICd2ZXJzaW9uJywgJ2NyZWF0b3J0aXRsZScsICd0aXRsZScsICdkZXNjcmlwdGlvbiddKTtcbiAgICAgIGlmICh0eXBlICE9PSAnc3lzZG9jdW1lbnQnKSB7XG4gICAgICAgIGV4Y2x1ZGUuYWRkKCd0eXBlJyk7XG4gICAgICB9ICAgICAgXG4gICAgICBsZXQgZmlsdGVyZWRGaWVsZHMgPSBkZWZpbml0aW9uLmVsZW1lbnRzLmZpbHRlcihmaWVsZCA9PiAhZXhjbHVkZS5oYXMoZmllbGQuaGl0bmFtZSkpO1xuICAgICAgZmlsdGVyZWRGaWVsZHMgPSBmaWx0ZXJlZEZpZWxkcy5maWx0ZXIoZmllbGQgPT4gZmllbGQudHlwZSA9PT0gJ05VTUJFUicpO1xuICAgICAgdGhpcy5hdHRyaWJ1dE1ldHJpY1BpY2tlci5jb2Rlc3lzdGVtID0ge1xuICAgICAgICBlbnRyaWVzOiBmaWx0ZXJlZEZpZWxkcy5tYXAoZmllbGQgPT4ge1xuICAgICAgICAgIGxldCBsYWJlbCA9IGZpbHRlcmVkRmllbGRzLmZpbHRlcihpdGVtID0+IGl0ZW0ubGFiZWwgPT09IGZpZWxkLmxhYmVsKS5sZW5ndGggPiAxXG4gICAgICAgICAgICA/IGZpZWxkLmxhYmVsICsgJyAoJyArIHRoaXMuc3lzdGVtLmdldE9iamVjdFR5cGUoZmllbGQucW5hbWUuc3BsaXQoJy4nKVswXSkubGFiZWwgKyAnKSdcbiAgICAgICAgICAgIDogZmllbGQubGFiZWw7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkOiBmaWVsZC5xbmFtZSxcbiAgICAgICAgICAgIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogbGFiZWwsXG4gICAgICAgICAgICBkYXRhOiBmaWVsZC5xbmFtZSxcbiAgICAgICAgICAgIHR5cGU6IGZpZWxkLnR5cGVcbiAgICAgICAgICB9O1xuICAgICAgICB9KS5zb3J0KFV0aWxzLnNvcnRWYWx1ZXMoJ2RlZmF1bHRyZXByZXNlbnRhdGlvbicpKSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldEluaXRpYWxGb3JtVmFsdWVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBjaGFydFR5cGU6IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5jaGFydFR5cGUgfHwgJ3BpZScsXG4gICAgICBzaXplOiB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uc2l6ZSB8fCAxMCxcbiAgICAgIGFnZ3JlZ2F0aW9uOiB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uYWdncmVnYXRpb24gfHwgJ3N5c29iamVjdC5jcmVhdGVkJyxcbiAgICAgIGhpc3RvZ3JhbVR5cGU6IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5oaXN0b2dyYW1UeXBlIHx8ICdtb250aGx5JyxcbiAgICAgIGF0dHJpYnV0TWV0cmljOiB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uYXR0cmlidXRNZXRyaWMgfHwgJycsXG4gICAgICBtZXRyaWM6IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5tZXRyaWMgfHwgJ3N1bScsXG4gICAgICBzb3J0UmV2ZXJ0OiB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uc29ydFJldmVydCB8fCAnJyxcbiAgICAgIGludGVydmFsOiB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uaW50ZXJ2YWwgfHwgMTAwMCxcbiAgICAgIHN0YXJ0aW5ncG9pbnQ6IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5zdGFydGluZ3BvaW50IHx8IDAsXG4gICAgICBtaW5fZG9jX2NvdW50OiB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8ubWluRG9jQ291bnQgfHwgMSxcbiAgICAgIHRpdGxlOiB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8udGl0bGUgfHwgJycsXG4gICAgICB4QXhlOiB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8ueEF4ZSB8fCAnJyxcbiAgICAgIHlBeGU6IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy55QXhlIHx8ICcnLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVR5cGVGbGFncygpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaXNEYXRlVGltZVR5cGUgPSB0aGlzLndpZGdldENvbmZpZz8uZm9ybVZhbHVlLmFnZ3JlZ2F0aW9uID09PSAnc3lzb2JqZWN0LmNyZWF0ZWQnIHx8IHRoaXMud2lkZ2V0Q29uZmlnPy5hZ2dyZWdhdGlvblR5cGUgPT09ICdEQVRFVElNRSc7XG4gICAgICB0aGlzLmlzTnVtYmVyVHlwZSA9IHRoaXMud2lkZ2V0Q29uZmlnPy5hZ2dyZWdhdGlvblR5cGUgPT09ICdOVU1CRVInO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICBwcml2YXRlIHN0b3JlZFF1ZXJ5U3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0U3RvcmVkUXVlcnkodGhpcy5fd2lkZ2V0Q29uZmlnPy5zdG9yZWRRdWVyeSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuc2V0dXBGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICBzdG9yZWRRdWVyeTogdGhpcy5zdG9yZWRRdWVyeSA/IHRoaXMuc3RvcmVkUXVlcnkubmFtZSA6ICcnLFxuICAgICAgICAuLi50aGlzLmdldEluaXRpYWxGb3JtVmFsdWVzKCksXG4gICAgICB9KTtcbiAgICAgIGlmICh0aGlzLnN0b3JlZFF1ZXJ5KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTYXZlZFNlYXJjaE5hbWUgPSB0aGlzLnNldHVwRm9ybS5nZXQoJ3N0b3JlZFF1ZXJ5JykudmFsdWU7XG4gICAgICAgIHRoaXMuc2V0dXBGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgIGFnZ3JlZ2F0aW9uOiB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uYWdncmVnYXRpb24gfHwgJ3N5c29iamVjdC5jcmVhdGVkJyxcbiAgICAgICAgICBhdHRyaWJ1dE1ldHJpYzogdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmF0dHJpYnV0TWV0cmljIHx8ICcnLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy51cGRhdGVUeXBlRmxhZ3MoKTtcbiAgICAgICAgdGhpcy51cGRhdGVGaWVsZCgpO1xuXG4gICAgICB9XG4gICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICB0aGlzLnF1ZXJ5RXJyb3IoZXJyb3IpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBxdWVyeUVycm9yKGVycm9yOiBhbnkpIHtcbiAgICB0aGlzLmlzRGF0ZVRpbWVUeXBlID0gZmFsc2U7XG4gICAgdGhpcy5pc051bWJlclR5cGUgPSBmYWxzZTtcbiAgICB0aGlzLl93aWRnZXRDb25maWcuYWdncmVnYXRpb25UeXBlID0gbnVsbDtcbiAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDQpIHtcbiAgICAgIHRoaXMuc2V0dXBGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAuLi50aGlzLmdldEluaXRpYWxGb3JtVmFsdWVzKCksXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBFTVBUWTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fd2lkZ2V0Q29uZmlnPy5zdG9yZWRRdWVyeSkge1xuICAgICAgdGhpcy5zdG9yZWRRdWVyeVN1YnNjcmlwdGlvbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldHVwRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgLi4udGhpcy5nZXRJbml0aWFsRm9ybVZhbHVlcygpLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2V0dXBcIj5cbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJzZXR1cEZvcm1cIj5cbiAgICA8ZW8tZm9ybS1pbnB1dCBbcmVxdWlyZWRdPVwidHJ1ZVwiIFtza2lwVG9nZ2xlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8ud29ya3NwYWNlLndpZGdldC5mb3JtLmxhYmVsLmNoYXJ0VHlwZUZpZWxkJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgW2ludmFsaWRdPVwic2V0dXBGb3JtLmRpcnR5ICYmIHNldHVwRm9ybS5nZXQoJ2NoYXJ0VHlwZScpLmludmFsaWRcIj5cbiAgICAgIDxlby1jb2Rlc3lzdGVtIGZvcm1Db250cm9sTmFtZT1cImNoYXJ0VHlwZVwiIFtwaWNrZXJUaXRsZV09XCJjaGFydFR5cGVQaWNrZXIudGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgW2NvZGVzeXN0ZW1dPVwiY2hhcnRUeXBlUGlja2VyLmNvZGVzeXN0ZW1cIj48L2VvLWNvZGVzeXN0ZW0+XG4gICAgPC9lby1mb3JtLWlucHV0PlxuICAgIEBpZiAoc2V0dXBGb3JtLmRpcnR5ICYmIHNldHVwRm9ybS5nZXQoJ2NoYXJ0VHlwZScpLmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZXJyLW1zZ1wiIHRyYW5zbGF0ZT5cbiAgICAgICAgZW8uZm9ybS5wcm9wZXJ0eS5yZXF1aXJlZFxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgQGlmIChzdG9yZWRRdWVyaWVzUGlja2VyPy5jb2Rlc3lzdGVtPy5lbnRyaWVzKSB7XG4gICAgICA8ZW8tZm9ybS1pbnB1dCBbcmVxdWlyZWRdPVwidHJ1ZVwiIFtza2lwVG9nZ2xlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby53b3Jrc3BhY2Uud2lkZ2V0LmxhYmVsLnN0b3JlZHF1ZXJ5JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICBbZGVzY3JpcHRpb25dPVwiJ2VvLndvcmtzcGFjZS53aWRnZXQuc3RvcmVkLnF1ZXJpZXMuZGVzY3JpcHRpb24nXCJcbiAgICAgICAgICAgICAgICAgICAgIFtpbnZhbGlkXT1cInNldHVwRm9ybS5kaXJ0eSAmJiBzZXR1cEZvcm0uZ2V0KCdzdG9yZWRRdWVyeScpLmludmFsaWRcIj5cbiAgICAgICAgPGVvLWNvZGVzeXN0ZW0gZm9ybUNvbnRyb2xOYW1lPVwic3RvcmVkUXVlcnlcIiBbcGlja2VyVGl0bGVdPVwic3RvcmVkUXVlcmllc1BpY2tlci50aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtjb2Rlc3lzdGVtXT1cInN0b3JlZFF1ZXJpZXNQaWNrZXIuY29kZXN5c3RlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtlbXB0eU1lc3NhZ2VdPVwiJ2VvLndvcmtzcGFjZS53aWRnZXQuc3RvcmVkLnF1ZXJpZXMubGlzdC5ub3RBdmFpbGFibGUnXCI+PC9lby1jb2Rlc3lzdGVtPlxuICAgICAgPC9lby1mb3JtLWlucHV0PlxuICAgICAgQGlmIChzZXR1cEZvcm0uZGlydHkgJiYgc2V0dXBGb3JtLmdldCgnc3RvcmVkUXVlcnknKS5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZXJyLW1zZ1wiIHRyYW5zbGF0ZT5cbiAgICAgICAgICBlby5mb3JtLnByb3BlcnR5LnJlcXVpcmVkXG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAoYWdncmVnYXRpb25QaWNrZXI/LmNvZGVzeXN0ZW0/LmVudHJpZXMgJiYgdGhpcy5zZXR1cEZvcm0uZ2V0KCdzdG9yZWRRdWVyeScpLnZhbGlkKSB7XG4gICAgICA8ZW8tZm9ybS1pbnB1dCBbcmVxdWlyZWRdPVwidHJ1ZVwiIFtza2lwVG9nZ2xlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby53b3Jrc3BhY2Uud2lkZ2V0LmZvcm0ubGFiZWwuYWdncmVnYXRpb25GaWVsZCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgW2ludmFsaWRdPVwic2V0dXBGb3JtLmRpcnR5ICYmIHNldHVwRm9ybS5nZXQoJ2FnZ3JlZ2F0aW9uJykuaW52YWxpZFwiPlxuICAgICAgICA8ZW8tY29kZXN5c3RlbSAjYWdncmVnYXRpb25Db2Rlc3lzdGVtIGZvcm1Db250cm9sTmFtZT1cImFnZ3JlZ2F0aW9uXCIgW3BpY2tlclRpdGxlXT1cImFnZ3JlZ2F0aW9uUGlja2VyLnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2NvZGVzeXN0ZW1dPVwiYWdncmVnYXRpb25QaWNrZXIuY29kZXN5c3RlbVwiPjwvZW8tY29kZXN5c3RlbT5cbiAgICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgICAgIEBpZiAoc2V0dXBGb3JtLmRpcnR5ICYmIHNldHVwRm9ybS5nZXQoJ2FnZ3JlZ2F0aW9uJykuaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImVyci1tc2dcIiB0cmFuc2xhdGU+XG4gICAgICAgICAgZW8uZm9ybS5wcm9wZXJ0eS5yZXF1aXJlZFxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICB9XG5cbiAgICA8ZW8tZm9ybS1pbnB1dCBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgIFtza2lwVG9nZ2xlXT1cInRydWVcIiBbbGFiZWxdPVwiJ2VvLndvcmtzcGFjZS53aWRnZXQuZm9ybS5wYXJ0aWFsVmFsdWUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2ludmFsaWRdPVwic2V0dXBGb3JtLmRpcnR5ICYmIHNldHVwRm9ybS5nZXQoJ3NpemUnKS5pbnZhbGlkXCI+XG4gICAgICA8ZW8tbnVtYmVyIFtzY2FsZV09XCIwXCIgZm9ybUNvbnRyb2xOYW1lPVwic2l6ZVwiPjwvZW8tbnVtYmVyPlxuICAgIDwvZW8tZm9ybS1pbnB1dD5cblxuICAgIEBpZiAoc2V0dXBGb3JtLmRpcnR5ICYmIHNldHVwRm9ybS5nZXQoJ3NpemUnKS5pbnZhbGlkKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZXJyLW1zZ1wiIHRyYW5zbGF0ZSBbdHJhbnNsYXRlUGFyYW1zXT1cInttaW46IDMsIG1heDogMTAwfVwiPlxuICAgICAgICBAaWYgKHNldHVwRm9ybS5nZXQoJ3NpemUnKS5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xuICAgICAgICAgIGVvLmZvcm0ucHJvcGVydHkucmVxdWlyZWRcbiAgICAgICAgfSBAZWxzZSBpZiAoc2V0dXBGb3JtLmdldCgnc2l6ZScpLmhhc0Vycm9yKCdtYXgnKSB8fCBzZXR1cEZvcm0uZ2V0KCdzaXplJykuaGFzRXJyb3IoJ21pbicpKSB7XG4gICAgICAgICAgZW8uZm9ybS5wcm9wZXJ0eS5zdHJpbmcuZXJyb3IuY2xhc3NpZmljYXRpb24ucGFydGlhbFZhbHVlXG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIEBpZiAoaXNEYXRlVGltZVR5cGUpIHtcbiAgICAgIDxlby1mb3JtLWlucHV0IFtza2lwVG9nZ2xlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby53b3Jrc3BhY2Uud2lkZ2V0LmZvcm0ubGFiZWwuaGlzdG9ncmFtJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICBbaW52YWxpZF09XCJzZXR1cEZvcm0uZGlydHkgJiYgc2V0dXBGb3JtLmdldCgnaGlzdG9ncmFtVHlwZScpLmludmFsaWRcIlxuICAgICAgICAgICAgICAgICAgICAgW2Rlc2NyaXB0aW9uXT1cIiBzZXR1cEZvcm0uZ2V0KCdoaXN0b2dyYW1UeXBlJykudmFsdWUgPyAnJzogJ2VvLndvcmtzcGFjZS53aWRnZXQuaGlzdG9ncmFtLmRlc2NyaXB0aW9uJ1wiPlxuICAgICAgICA8ZW8tY29kZXN5c3RlbSBmb3JtQ29udHJvbE5hbWU9XCJoaXN0b2dyYW1UeXBlXCIgW3BpY2tlclRpdGxlXT1cImhpc3RvZ3JhbVR5cGVQaWNrZXIudGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICBbY29kZXN5c3RlbV09XCJoaXN0b2dyYW1UeXBlUGlja2VyLmNvZGVzeXN0ZW1cIj48L2VvLWNvZGVzeXN0ZW0+XG4gICAgICA8L2VvLWZvcm0taW5wdXQ+XG4gICAgfVxuICAgIEBpZiAod2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmFnZ3JlZ2F0aW9uICYmICFpc0RhdGVUaW1lVHlwZSAmJiAhaXNOdW1iZXJUeXBlKSB7XG4gICAgICBAaWYgKHdpZGdldENvbmZpZy5mb3JtVmFsdWUuY2hhcnRUeXBlID09PSAnYmFyJykge1xuICAgICAgICA8ZW8tZm9ybS1pbnB1dCBjbGFzcz1cImxhYmVsIGNoZWNrYm94XCIgW2xhYmVsXT1cIidlby53b3Jrc3BhY2Uud2lkZ2V0LmZvcm0ubGFiZWwuc29ydFJldmVydCd8dHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW3NraXBUb2dnbGVdPVwidHJ1ZVwiPlxuICAgICAgICAgIDxlby1jaGVja2JveCBmb3JtQ29udHJvbE5hbWU9XCJzb3J0UmV2ZXJ0XCIgW3RyaXN0YXRlXT1cImZhbHNlXCI+PC9lby1jaGVja2JveD5cbiAgICAgICAgPC9lby1mb3JtLWlucHV0PlxuICAgICAgfVxuICAgICAgQGlmICh3aWRnZXRDb25maWcuZm9ybVZhbHVlLmNoYXJ0VHlwZSA9PT0gJ2JhcicgfHwgd2lkZ2V0Q29uZmlnLmZvcm1WYWx1ZS5jaGFydFR5cGUgPT09ICdwaWUnIHx8IHdpZGdldENvbmZpZy5mb3JtVmFsdWUuY2hhcnRUeXBlID09PSAncmluZycgJiYgIXdpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5hdHRyaWJ1dE1ldHJpYyAmJiAhaXNOdW1iZXJUeXBlKSB7XG4gICAgICAgIDxlby1mb3JtLWlucHV0IGNsYXNzPVwidGhyZXNob2xkLXN1Y2Nlc3NcIiBbc2tpcFRvZ2dsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby53b3Jrc3BhY2Uud2lkZ2V0LmZvcm0ubGFiZWwubWluRG9jQ291bnQnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgPGVvLW51bWJlciBbc2NhbGVdPVwiMFwiIGZvcm1Db250cm9sTmFtZT1cIm1pbkRvY0NvdW50XCI+XG4gICAgICAgICAgPC9lby1udW1iZXI+XG4gICAgICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKGlzTnVtYmVyVHlwZSkge1xuICAgICAgPGVvLWZvcm0taW5wdXQgW3NraXBUb2dnbGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLmludGVydmFsJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICBbaW52YWxpZF09XCJzZXR1cEZvcm0uZGlydHkgJiYgc2V0dXBGb3JtLmdldCgnaW50ZXJ2YWwnKS5pbnZhbGlkXCI+XG4gICAgICAgIDxlby1udW1iZXIgW3NjYWxlXT1cIjBcIiBmb3JtQ29udHJvbE5hbWU9XCJpbnRlcnZhbFwiPjwvZW8tbnVtYmVyPlxuICAgICAgPC9lby1mb3JtLWlucHV0PlxuXG4gICAgICA8ZW8tZm9ybS1pbnB1dCBbc2tpcFRvZ2dsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMuc3RhcnRpbmdwb2ludCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgW2ludmFsaWRdPVwic2V0dXBGb3JtLmRpcnR5ICYmIHNldHVwRm9ybS5nZXQoJ3N0YXJ0aW5ncG9pbnQnKS5pbnZhbGlkXCI+XG4gICAgICAgIDxlby1udW1iZXIgW3NjYWxlXT1cIjBcIiBmb3JtQ29udHJvbE5hbWU9XCJzdGFydGluZ3BvaW50XCI+PC9lby1udW1iZXI+XG4gICAgICA8L2VvLWZvcm0taW5wdXQ+XG4gICAgfVxuICAgIEBpZiAod2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmNoYXJ0VHlwZSA9PT0gJ2JhcicgJiYgYXR0cmlidXRNZXRyaWNQaWNrZXI/LmNvZGVzeXN0ZW0/LmVudHJpZXMgJiYgdGhpcy5zZXR1cEZvcm0uZ2V0KCdzdG9yZWRRdWVyeScpLnZhbGlkICYmICFpc051bWJlclR5cGUgJiYgIWlzRGF0ZVRpbWVUeXBlKSB7XG4gICAgICA8ZW8tZm9ybS1pbnB1dCBbc2tpcFRvZ2dsZV09XCJ0cnVlXCIgW2xhYmVsXT1cIidlby53b3Jrc3BhY2Uud2lkZ2V0LmZvcm0ubGFiZWwuYXR0cmlidXRNZXRyaWMnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgIDxlby1jb2Rlc3lzdGVtIGZvcm1Db250cm9sTmFtZT1cImF0dHJpYnV0TWV0cmljXCIgW3BpY2tlclRpdGxlXT1cImF0dHJpYnV0TWV0cmljUGlja2VyLnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2NvZGVzeXN0ZW1dPVwiYXR0cmlidXRNZXRyaWNQaWNrZXIuY29kZXN5c3RlbVwiPjwvZW8tY29kZXN5c3RlbT5cbiAgICAgIDwvZW8tZm9ybS1pbnB1dD5cblxuICAgICAgQGlmICh3aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uY2hhcnRUeXBlID09PSAnYmFyJyAmJiB3aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uYXR0cmlidXRNZXRyaWMpIHtcbiAgICAgICAgPGVvLWZvcm0taW5wdXQgW3NraXBUb2dnbGVdPVwidHJ1ZVwiIFtsYWJlbF09XCInZW8ud29ya3NwYWNlLndpZGdldC5mb3JtLmxhYmVsLmNoYXJ0TWV0cmljJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgIDxlby1jb2Rlc3lzdGVtIGZvcm1Db250cm9sTmFtZT1cIm1ldHJpY1wiIFtwaWNrZXJUaXRsZV09XCJjaGFydE1ldHJpY1BpY2tlci50aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2NvZGVzeXN0ZW1dPVwiY2hhcnRNZXRyaWNQaWNrZXIuY29kZXN5c3RlbVwiPjwvZW8tY29kZXN5c3RlbT5cbiAgICAgICAgPC9lby1mb3JtLWlucHV0PlxuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAod2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmNoYXJ0VHlwZSkge1xuICAgICAgPGRpdiBjbGFzcz1cInByb3BlcnR5UGlja2VyXCI+XG4gICAgICAgIDxlby1mb3JtLWlucHV0IHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMudGl0bGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW3NraXBUb2dnbGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtpbnZhbGlkXT1cInNldHVwRm9ybS5kaXJ0eSAmJiBzZXR1cEZvcm0uZ2V0KCd0aXRsZScpLmludmFsaWRcIj5cbiAgICAgICAgICA8ZW8tc3RyaW5nIGF1dG9jb21wbGV0ZT1cInRydWVcIiBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiPjwvZW8tc3RyaW5nPlxuICAgICAgICA8L2VvLWZvcm0taW5wdXQ+XG4gICAgICAgIEBpZiAoc2V0dXBGb3JtLmRpcnR5ICYmIHNldHVwRm9ybS5nZXQoJ3RpdGxlJykuaW52YWxpZCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlcnItbXNnXCIgW3RyYW5zbGF0ZVBhcmFtc109XCJ7bWF4bGVuZ3RoOiA1MH1cIiB0cmFuc2xhdGU+ZW8uZm9ybS5wcm9wZXJ0eS5tYXhsZW5ndGg8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKHdpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5jaGFydFR5cGUgIT09ICdwaWUnICYmIHdpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5jaGFydFR5cGUgIT09ICdkb251dCcpIHtcbiAgICAgICAgICA8ZW8tZm9ybS1pbnB1dCB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMueEF4ZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtza2lwVG9nZ2xlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtpbnZhbGlkXT1cInNldHVwRm9ybS5kaXJ0eSAmJiBzZXR1cEZvcm0uZ2V0KCd4QXhlJykuaW52YWxpZFwiPlxuICAgICAgICAgICAgPGVvLXN0cmluZyBhdXRvY29tcGxldGU9XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwieEF4ZVwiPjwvZW8tc3RyaW5nPlxuICAgICAgICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgICAgICAgICBAaWYgKHNldHVwRm9ybS5kaXJ0eSAmJiBzZXR1cEZvcm0uZ2V0KCd4QXhlJykuaW52YWxpZCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVyci1tc2dcIiBbdHJhbnNsYXRlUGFyYW1zXT1cInttYXhsZW5ndGg6IDUwfVwiIHRyYW5zbGF0ZT5lby5mb3JtLnByb3BlcnR5Lm1heGxlbmd0aDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgICA8ZW8tZm9ybS1pbnB1dCB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMueUF4ZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtza2lwVG9nZ2xlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtpbnZhbGlkXT1cInNldHVwRm9ybS5kaXJ0eSAmJiBzZXR1cEZvcm0uZ2V0KCd5QXhlJykuaW52YWxpZFwiPlxuICAgICAgICAgICAgPGVvLXN0cmluZyBhdXRvY29tcGxldGU9XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwieUF4ZVwiPjwvZW8tc3RyaW5nPlxuICAgICAgICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgICAgICAgICBAaWYgKHNldHVwRm9ybS5kaXJ0eSAmJiBzZXR1cEZvcm0uZ2V0KCd5QXhlJykuaW52YWxpZCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVyci1tc2dcIiBbdHJhbnNsYXRlUGFyYW1zXT1cInttYXhsZW5ndGg6IDUwfVwiIHRyYW5zbGF0ZT5lby5mb3JtLnByb3BlcnR5Lm1heGxlbmd0aDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Zvcm0+XG48L2Rpdj5cblxuQGlmIChzZXR1cEZvcm0udmFsaWQpIHtcbiAgPGRpdiBjbGFzcz1cInByZXZpZXdcIj5cbiAgICA8ZW8tY2hhcnRzLXdpZGdldCBbd2lkZ2V0Q29uZmlnXT1cIndpZGdldENvbmZpZ1wiIFtlZGl0TW9kZV09XCJ0cnVlXCI+PC9lby1jaGFydHMtd2lkZ2V0PlxuICA8L2Rpdj5cbn0gQGVsc2Uge1xuICA8ZGl2IGNsYXNzPVwiZW1wdHlcIj5cbiAgICA8ZW8tZXJyb3ItbWVzc2FnZVxuICAgICAgW2VtcHR5U3RhdGVdPVwie2ljb246ICdpY19zYXZlZF9zZWFyY2guc3ZnJywgdGV4dDogJ2VvLndvcmtzcGFjZS53aWRnZXQuY29uZmlndXJhdGlvbi5ub3RPayd9XCI+PC9lby1lcnJvci1tZXNzYWdlPlxuICA8L2Rpdj5cbn1cbiJdfQ==
447
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnRzLXNldHVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tY2xpZW50L2Rhc2hib2FyZC93aWRnZXRzL2NoYXJ0cy13aWRnZXQvY2hhcnRzLXNldHVwL2NoYXJ0cy1zZXR1cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWNsaWVudC9kYXNoYm9hcmQvd2lkZ2V0cy9jaGFydHMtd2lkZ2V0L2NoYXJ0cy1zZXR1cC9jaGFydHMtc2V0dXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR3hGLE9BQU8sRUFBMEQsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkcsT0FBTyxFQUE4RyxLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDaEosT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRSxPQUFPLEVBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7OztBQVN2QyxJQUFNLG9CQUFvQixHQUExQixNQUFNLG9CQUFvQjtJQWdFL0IsSUFBYSxZQUFZLENBQUMsRUFBVztRQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsWUFDVSxFQUFzQixFQUN0QixvQkFBMEMsRUFDMUMsU0FBMkIsRUFDM0IsV0FBd0IsRUFDeEIsTUFBcUIsRUFD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QUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQ2pDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUM7Z0JBQ3hCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFO2FBQy9CLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOzhHQTdlVSxvQkFBb0I7a0dBQXBCLG9CQUFvQiw0VUNmakMseTZRQThKQTs7QUQvSWEsb0JBQW9CO0lBTmhDLFlBQVksRUFBRTtHQU1GLG9CQUFvQixDQThlaEM7OzJGQTllWSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsaUJBQWlCOzJPQU1qQixrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csdUJBQXVCO3NCQUFoQyxNQUFNO2dCQTJENkIscUJBQXFCO3NCQUF4RCxTQUFTO3VCQUFDLHVCQUF1QjtnQkFFckIsWUFBWTtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SVdpZGdldENvbXBvbmVudH0gZnJvbSAnQHl1dXZpcy93aWRnZXQtZ3JpZCc7XG5pbXBvcnQge0ljaGFydHN9IGZyb20gJy4uL2ljaGFydHMnO1xuaW1wb3J0IHtGb3JtQ29udHJvbFN0YXR1cywgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1NlYXJjaFF1ZXJ5LCBTZWFyY2hTZXJ2aWNlLCBTdG9yZWRRdWVyaWVzU2VydmljZSwgU3RvcmVkUXVlcnksIFN5c3RlbVNlcnZpY2UsIFRyYW5zbGF0ZVNlcnZpY2UsIFVzZXJTZXJ2aWNlLCBVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7RU1QVFksIGRlYm91bmNlVGltZSwgdGFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q29kZXN5c3RlbUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZW8tZnJhbWV3b3JrJztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1jaGFydHMtc2V0dXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhcnRzLXNldHVwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hhcnRzLXNldHVwLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2hhcnRzU2V0dXBDb21wb25lbnQgaW1wbGVtZW50cyBJV2lkZ2V0Q29tcG9uZW50LCBPbkluaXQge1xuICBwcml2YXRlIF93aWRnZXRDb25maWc6IEljaGFydHM7XG4gIEBPdXRwdXQoKSB3aWRnZXRDb25maWdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEljaGFydHM+KCk7XG4gIEBPdXRwdXQoKSB3aWRnZXRDb25maWdTdGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybUNvbnRyb2xTdGF0dXM+KCk7XG5cbiAgc3RvcmVkUXVlcmllczogU3RvcmVkUXVlcnlbXTtcbiAgcHJpdmF0ZSBfcXVlcnk6IFNlYXJjaFF1ZXJ5O1xuICBzZXR1cEZvcm06IFVudHlwZWRGb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICBzdG9yZWRRdWVyeTogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgIGNoYXJ0VHlwZTogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgIHNpemU6IFsxMCwgW1ZhbGlkYXRvcnMubWF4KDEwMCksIFZhbGlkYXRvcnMubWluKDMpLCBWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgYWdncmVnYXRpb246IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICBoaXN0b2dyYW1UeXBlOiBbbnVsbF0sXG4gICAgYXR0cmlidXRNZXRyaWM6IFtudWxsXSxcbiAgICBtZXRyaWM6IFtudWxsXSxcbiAgICBzb3J0UmV2ZXJ0OiBbZmFsc2VdLFxuICAgIGludGVydmFsOiBbbnVsbF0sXG4gICAgc3RhcnRpbmdwb2ludDogW251bGxdLFxuICAgIG1pbkRvY0NvdW50OiBbMV0sXG4gICAgdGl0bGU6IFsnJywgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDUwKV1dLFxuICAgIHhBeGU6IFsnJywgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDUwKV1dLFxuICAgIHlBeGU6IFsnJywgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDUwKV1dLFxuICAgIG1pblZhbHVlOiBbbnVsbF0sXG4gICAgbWF4VmFsdWU6IFtudWxsXVxuICB9KTtcblxuICBzdG9yZWRRdWVyaWVzUGlja2VyID0ge1xuICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LmxhYmVsLnN0b3JlZHF1ZXJ5JyksXG4gICAgY29kZXN5c3RlbTogbnVsbCxcbiAgfTtcblxuICBhZ2dyZWdhdGlvblBpY2tlciA9IHtcbiAgICB0aXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5mb3JtLmxhYmVsLmFnZ3JlZ2F0aW9uRmllbGQnKSxcbiAgICBjb2Rlc3lzdGVtOiBudWxsLFxuICB9O1xuXG4gIGNoYXJ0VHlwZVBpY2tlciA9IHtcbiAgICB0aXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5mb3JtLmxhYmVsLmNoYXJ0VHlwZUZpZWxkJyksXG4gICAgY29kZXN5c3RlbTogbnVsbCxcbiAgfTtcblxuICBoaXN0b2dyYW1UeXBlUGlja2VyID0ge1xuICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby53b3Jrc3BhY2Uud2lkZ2V0LmZvcm0ubGFiZWwuaGlzdG9ncmFtJyksXG4gICAgY29kZXN5c3RlbTogbnVsbCxcbiAgfTtcblxuICBhdHRyaWJ1dE1ldHJpY1BpY2tlciA9IHtcbiAgICB0aXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5mb3JtLmxhYmVsLmF0dHJpYnV0TWV0cmljJyksXG4gICAgY29kZXN5c3RlbTogbnVsbCxcbiAgfTtcblxuICBjaGFydE1ldHJpY1BpY2tlciA9IHtcbiAgICB0aXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ud29ya3NwYWNlLndpZGdldC5mb3JtLmxhYmVsLmNoYXJ0TWV0cmljJyksXG4gICAgY29kZXN5c3RlbTogbnVsbCxcbiAgfTtcblxuICBpc0RhdGVUaW1lVHlwZSA9IGZhbHNlO1xuICBpc051bWJlclR5cGUgPSBmYWxzZTtcbiAgc2VsZWN0ZWRTYXZlZFNlYXJjaE5hbWUgPSAnJztcbiAgc2VsZWN0ZWRBZ2dyZWdhdGlvbk5hbWUgPSAnJztcbiAgc3RvcmVkUXVlcnk6IFN0b3JlZFF1ZXJ5O1xuXG4gIEBWaWV3Q2hpbGQoJ2FnZ3JlZ2F0aW9uQ29kZXN5c3RlbScpIGFnZ3JlZ2F0aW9uQ29kZXN5c3RlbTogQ29kZXN5c3RlbUNvbXBvbmVudDtcblxuICBASW5wdXQoKSBzZXQgd2lkZ2V0Q29uZmlnKHdjOiBJY2hhcnRzKSB7XG4gICAgdGhpcy5fd2lkZ2V0Q29uZmlnID0gd2M7XG4gICAgdGhpcy51cGRhdGVGaWVsZCgpO1xuICB9XG5cbiAgZ2V0IHdpZGdldENvbmZpZygpIHtcbiAgICByZXR1cm4gdGhpcy5fd2lkZ2V0Q29uZmlnO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgc3RvcmVkUXVlcmllc1NlcnZpY2U6IFN0b3JlZFF1ZXJpZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3lzdGVtOiBTeXN0ZW1TZXJ2aWNlLFxuICAgIHByaXZhdGUgc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSkge1xuICAgIHRoaXMuc2V0dXBGb3JtLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgxMDAwKSwgdW50aWxEZXN0cm95ZWQodGhpcykpLnN1YnNjcmliZSgoXykgPT4ge1xuICAgICAgdGhpcy5zZXRXaWRnZXRDb25maWcoKTtcbiAgICB9KTtcbiAgICB0aGlzLnNldHVwRm9ybS5zdGF0dXNDaGFuZ2VzLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpLnN1YnNjcmliZSgodikgPT4ge1xuICAgICAgdGhpcy53aWRnZXRDb25maWdTdGF0ZUNoYW5nZS5lbWl0KHYpO1xuICAgIH0pO1xuICAgIHRoaXMuZ2V0U3RvcmVkUXVlcnlzKCk7XG4gICAgdGhpcy5nZXRDaGFydEZpZWxkKCk7XG4gICAgdGhpcy5nZXRNZXRyaWNDb2Rlc3lzdGVtKCk7XG4gIH1cblxuICBwcml2YXRlIHNldFdpZGdldENvbmZpZygpIHtcbiAgICBpZiAodGhpcy5zZXR1cEZvcm0udmFsaWQgJiYgdGhpcy5zdG9yZWRRdWVyaWVzKSB7XG4gICAgICB0aGlzLnN0b3JlZFF1ZXJ5ID0gdGhpcy5zdG9yZWRRdWVyaWVzLmZpbmQoKHNxKSA9PiBzcS5uYW1lID09PSB0aGlzLnNldHVwRm9ybS5nZXQoJ3N0b3JlZFF1ZXJ5JykudmFsdWUpO1xuICAgICAgdGhpcy53aWRnZXRDb25maWcgPSB7XG4gICAgICAgIHN0b3JlZFF1ZXJ5OiB0aGlzLnN0b3JlZFF1ZXJ5Py5pZCxcbiAgICAgICAgZm9ybVZhbHVlOiB0aGlzLnNldHVwRm9ybS52YWx1ZSxcbiAgICAgICAgYWdncmVnYXRpb25UeXBlOiAnREFURVRJTUUnXG4gICAgICB9O1xuICAgICAgaWYgKHRoaXMuc2V0dXBGb3JtLmdldCgnc3RvcmVkUXVlcnknKS52YWx1ZSAhPT0gdGhpcy5zZWxlY3RlZFNhdmVkU2VhcmNoTmFtZSkge1xuICAgICAgICBpZiAodGhpcy5zdG9yZWRRdWVyeSkge1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRTYXZlZFNlYXJjaE5hbWUgIT09ICcnKSB7XG4gICAgICAgICAgICAgIHRoaXMuc2V0dXBGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgICAgIGFnZ3JlZ2F0aW9uOiAnc3lzb2JqZWN0LmNyZWF0ZWQnLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMudXBkYXRlRmllbGQoKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRTYXZlZFNlYXJjaE5hbWUgPSB0aGlzLnNldHVwRm9ybS5nZXQoJ3N0b3JlZFF1ZXJ5JykudmFsdWU7XG4gICAgICAgICAgICB0aGlzLmlzRGF0ZVRpbWVUeXBlID0gdGhpcy53aWRnZXRDb25maWc/LmZvcm1WYWx1ZS5hZ2dyZWdhdGlvbiA9PT0gJ3N5c29iamVjdC5jcmVhdGVkJyB8fCB0aGlzLndpZGdldENvbmZpZz8uYWdncmVnYXRpb25UeXBlID09PSAnREFURVRJTUUnO1xuICAgICAgICAgICAgdGhpcy5pc051bWJlclR5cGUgPSB0aGlzLndpZGdldENvbmZpZz8uYWdncmVnYXRpb25UeXBlID09PSAnTlVNQkVSJztcbiAgICAgICAgICB9LCAxMDApO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLndpZGdldENvbmZpZy5hZ2dyZWdhdGlvblR5cGUgPSB0aGlzLmFnZ3JlZ2F0aW9uQ29kZXN5c3RlbT8uc2VsZWN0ZWROb2Rlcz8uZGF0YT8udHlwZTtcbiAgICAgICAgdGhpcy5pc0RhdGVUaW1lVHlwZSA9IHRoaXMud2lkZ2V0Q29uZmlnPy5hZ2dyZWdhdGlvblR5cGUgPT09ICdEQVRFVElNRSc7XG4gICAgICAgIHRoaXMuaXNOdW1iZXJUeXBlID0gdGhpcy53aWRnZXRDb25maWc/LmFnZ3JlZ2F0aW9uVHlwZSA9PT0gJ05VTUJFUic7XG4gICAgICAgIGlmICh0aGlzLnNldHVwRm9ybS5nZXQoJ2FnZ3JlZ2F0aW9uJykudmFsdWUgIT09IHRoaXMuc2VsZWN0ZWRBZ2dyZWdhdGlvbk5hbWUpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQWdncmVnYXRpb25OYW1lID0gdGhpcy5zZXR1cEZvcm0uZ2V0KCdhZ2dyZWdhdGlvbicpLnZhbHVlO1xuICAgICAgICAgIGlmICh0aGlzLmlzTnVtYmVyVHlwZSkge1xuICAgICAgICAgICAgdGhpcy5nZXRTdGFydEVuZHZhbHVlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLndpZGdldENvbmZpZ0NoYW5nZS5lbWl0KHRoaXMuX3dpZGdldENvbmZpZyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0U3RhcnRFbmR2YWx1ZSgpIHtcbiAgICBsZXQgZmllbGQgPSB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uYWdncmVnYXRpb247XG4gICAgdGhpcy5fcXVlcnkgPSB0aGlzLnNlYXJjaFNlcnZpY2UuYnVpbGRRdWVyeShzdHJ1Y3R1cmVkQ2xvbmUodGhpcy5zdG9yZWRRdWVyeSkpO1xuICAgIGRlbGV0ZSB0aGlzLl9xdWVyeS5uYW1lO1xuICAgIGNvbnN0IHF1ZXJ5TWluTWF4ID0ge1xuICAgICAgYWdnczoge1xuICAgICAgICBbZmllbGQucmVwbGFjZSgnc3lzb2JqZWN0LicsICcnKV06IHtcbiAgICAgICAgICBtZXRyaWNzOiBbJ21pbicsICdtYXgnXVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLi4udGhpcy5fcXVlcnkuZ2V0UXVlcnlKc29uKClcbiAgICB9O1xuICAgIHRoaXMuc2VhcmNoU2VydmljZS5leGVjdXRlUXVlcnkocXVlcnlNaW5NYXgsIHRydWUpLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICBsZXQgbWluID0gcmVzLmFnZ3JlZ2F0aW9uc1snbWluIycgKyBmaWVsZC5yZXBsYWNlKCdzeXNvYmplY3QuJywgJycpICsgJ19taW4nXT8udmFsdWU7XG4gICAgICBsZXQgbWF4ID0gcmVzLmFnZ3JlZ2F0aW9uc1snbWF4IycgKyBmaWVsZC5yZXBsYWNlKCdzeXNvYmplY3QuJywgJycpICsgJ19tYXgnXT8udmFsdWU7XG4gICAgICB0aGlzLnNldHVwRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgbWluVmFsdWU6IG1pbixcbiAgICAgICAgbWF4VmFsdWU6IG1heCxcbiAgICAgIH0pO1xuICAgICAgbGV0IHNpemUgPSAxMDtcbiAgICAgIG1pbiA9IE1hdGguZmxvb3IobWluKTtcbiAgICAgIG1heCA9IE1hdGguY2VpbChtYXgpO1xuICAgICAgbGV0IGludGVydmFsID0gKG1heCAtIG1pbikgLyBzaXplO1xuICAgICAgbGV0IGludGVydmFsUm91bmQgPSAwO1xuICAgICAgaWYgKGludGVydmFsIDwgMTApIHtcbiAgICAgICAgaW50ZXJ2YWxSb3VuZCA9IDE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBkaWdpdHMgPSBNYXRoLmZsb29yKE1hdGgubG9nMTAoaW50ZXJ2YWwpKSArIDE7XG4gICAgICAgIGNvbnN0IGRpdmlzb3IgPSBNYXRoLnBvdygxMCwgZGlnaXRzIC0gMSk7XG4gICAgICAgIGludGVydmFsUm91bmQgPSBNYXRoLmNlaWwoaW50ZXJ2YWwgLyBkaXZpc29yKSAqIGRpdmlzb3I7XG4gICAgICB9XG4gICAgICBtaW4gPSBtaW4gJiYgTWF0aC5yb3VuZChNYXRoLmZsb29yKG1pbiAvIGludGVydmFsUm91bmQpICogaW50ZXJ2YWxSb3VuZCk7XG4gICAgICBtYXggPSBtYXggJiYgTWF0aC5yb3VuZChNYXRoLmNlaWwobWF4IC8gaW50ZXJ2YWxSb3VuZCkgKiBpbnRlcnZhbFJvdW5kKTtcbiAgICAgIHRoaXMuc2V0dXBGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICBpbnRlcnZhbDogaW50ZXJ2YWxSb3VuZCxcbiAgICAgICAgc3RhcnRpbmdwb2ludDogbWluLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBnZXRTdG9yZWRRdWVyeXMoKSB7XG4gICAgdGhpcy5zdG9yZWRRdWVyaWVzU2VydmljZVxuICAgICAgLmZldGNoU3RvcmVkUXVlcmllcygpLnBpcGUoXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpLFxuICAgICAgKS5zdWJzY3JpYmUoc3RvcmVkUXVlcmllcyA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmVkUXVlcmllcyA9IHN0b3JlZFF1ZXJpZXM7XG4gICAgICAgIHRoaXMuc3RvcmVkUXVlcmllc1BpY2tlci5jb2Rlc3lzdGVtID0ge1xuICAgICAgICAgIGVudHJpZXM6IHRoaXMuc3RvcmVkUXVlcmllcy5tYXAoc3RvcmVkUXVlcnkgPT4gKHtcbiAgICAgICAgICAgIGlkOiBzdG9yZWRRdWVyeS5pZCxcbiAgICAgICAgICAgIGxhYmVsOiBzdG9yZWRRdWVyeS5uYW1lLFxuICAgICAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiBzdG9yZWRRdWVyeS5uYW1lLFxuICAgICAgICAgICAgZGF0YTogc3RvcmVkUXVlcnkubmFtZVxuICAgICAgICAgIH0pKS5zb3J0KFV0aWxzLnNvcnRWYWx1ZXMoJ2xhYmVsJykpLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gIH1cblxuICBnZXRTdG9yZWRRdWVyeShpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmVkUXVlcmllc1NlcnZpY2UuZ2V0U3RvcmVkUXVlcnkoaWQpLnBpcGUoXG4gICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKSxcbiAgICAgIHRhcChzdG9yZWRRdWVyeSA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmVkUXVlcnkgPSBzdG9yZWRRdWVyeTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHVwZGF0ZUZpZWxkKCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgbGV0IHR5cGUgPSB0aGlzLnN0b3JlZFF1ZXJ5Py50eXBlcz8ubGVuZ3RoID09PSAxID8gdGhpcy5zdG9yZWRRdWVyeT8udHlwZXNbMF0/LnFuYW1lIDogJ3N5c2RvY3VtZW50JztcbiAgICAgIGxldCBjb250ZXh0VHlwZSA9IHRoaXMuc3RvcmVkUXVlcnk/LmNvbnRleHRGb2xkZXJUeXBlc1swXT8ucW5hbWU7ICAgICAgXG4gICAgICB0aGlzLmdldEhpc3RvZ3JhbUZpZWxkKCk7XG4gICAgICB0aGlzLmdldEFnZ3JlZ2F0aW9uRmllbGQodHlwZSwgY29udGV4dFR5cGUpO1xuICAgICAgdGhpcy5nZXRBdHRyaWJ1dE1ldHJpY0NvZGVzeXN0ZW0odHlwZSk7XG4gICAgfSwgMTAwKTtcbiAgfVxuXG4gIGdldEFnZ3JlZ2F0aW9uRmllbGQodHlwZSwgY29udGV4dFR5cGU/KSB7XG4gICAgdGhpcy5hZ2dyZWdhdGlvblBpY2tlci5jb2Rlc3lzdGVtID0gbnVsbDtcbiAgICByZXR1cm4gdGhpcy51c2VyU2VydmljZS5nZXRGaWVsZERlZmluaXRpb24odHlwZSwgY29udGV4dFR5cGUpLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpLnN1YnNjcmliZShkZWZpbml0aW9uID0+IHsgICAgICBcbiAgICAgIGxldCBleGNsdWRlID0gbmV3IFNldChbJ2ZpbGVuYW1lJywgJ21pbWV0eXBlJywgJ21vZGlmaWVydGl0bGUnLCAndmVyc2lvbicsICdjcmVhdG9ydGl0bGUnLCAndGl0bGUnLCAnZGVzY3JpcHRpb24nXSk7XG4gICAgICBpZiAodHlwZSAhPT0gJ3N5c2RvY3VtZW50Jykge1xuICAgICAgICBleGNsdWRlLmFkZCgndHlwZScpO1xuICAgICAgfVxuICAgICAgbGV0IGZpbHRlcmVkRmllbGRzID0gZGVmaW5pdGlvbi5lbGVtZW50cy5maWx0ZXIoZmllbGQgPT4gIWV4Y2x1ZGUuaGFzKGZpZWxkLmhpdG5hbWUpKTtcbiAgICAgIGlmICh0aGlzLndpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5jaGFydFR5cGUgPT09ICdsaW5lQ3VydmUnIHx8IHRoaXMud2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmNoYXJ0VHlwZSA9PT0gJ2xpbmVTdHJhaWdodCcpIHtcbiAgICAgICAgZmlsdGVyZWRGaWVsZHMgPSBmaWx0ZXJlZEZpZWxkcy5maWx0ZXIoZmllbGQgPT4gZmllbGQudHlwZSA9PT0gJ0RBVEVUSU1FJyB8fCBmaWVsZC50eXBlID09PSAnTlVNQkVSJyk7XG4gICAgICB9XG4gICAgICB0aGlzLmFnZ3JlZ2F0aW9uUGlja2VyLmNvZGVzeXN0ZW0gPSB7XG4gICAgICAgIGVudHJpZXM6IGZpbHRlcmVkRmllbGRzLm1hcChmaWVsZCA9PiB7XG4gICAgICAgICAgbGV0IGFkZGl0aW9uYWxMYWJlbCA9IGZpZWxkLnNlbGVjdGVkZm9yZW5yaWNobWVudCA/ICcgKicgOiAnJztcbiAgICAgICAgICBsZXQgbGFiZWwgPSBmaWx0ZXJlZEZpZWxkcy5maWx0ZXIoaXRlbSA9PiBpdGVtLmxhYmVsID09PSBmaWVsZC5sYWJlbCkubGVuZ3RoID4gMVxuICAgICAgICAgICAgPyBmaWVsZC5sYWJlbCArICcgKCcgKyB0aGlzLnN5c3RlbS5nZXRPYmplY3RUeXBlKGZpZWxkLnFuYW1lLnNwbGl0KCcuJylbMF0pLmxhYmVsICsgJyknICsgYWRkaXRpb25hbExhYmVsXG4gICAgICAgICAgICA6IGZpZWxkLmxhYmVsICsgYWRkaXRpb25hbExhYmVsO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogZmllbGQucW5hbWUsXG4gICAgICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IGxhYmVsLFxuICAgICAgICAgICAgZGF0YTogZmllbGQucW5hbWUsXG4gICAgICAgICAgICB0eXBlOiBmaWVsZC50eXBlXG4gICAgICAgICAgfTtcbiAgICAgICAgfSkuc29ydChVdGlscy5zb3J0VmFsdWVzKCdkZWZhdWx0cmVwcmVzZW50YXRpb24nKSksXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0TWV0cmljQ29kZXN5c3RlbSgpIHtcbiAgICByZXR1cm4gdGhpcy5jaGFydE1ldHJpY1BpY2tlci5jb2Rlc3lzdGVtID0ge1xuICAgICAgZW50cmllczogW1xuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdtaW4nLFxuICAgICAgICAgIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0cy5tZXRyaWMubWluJyksXG4gICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAnZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMubWV0cmljLm1pbidcbiAgICAgICAgICApLFxuICAgICAgICAgIHZhbHVlOiAnbWluJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnYXZnJyxcbiAgICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAnZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMubWV0cmljLmF2ZycpLFxuICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLm1ldHJpYy5hdmcnXG4gICAgICAgICAgKSxcbiAgICAgICAgICB2YWx1ZTogJ2F2ZycsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ21heCcsXG4gICAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLm1ldHJpYy5tYXgnXG4gICAgICAgICAgKSxcbiAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0cy5tZXRyaWMubWF4J1xuICAgICAgICAgICksXG4gICAgICAgICAgdmFsdWU6ICdtYXgnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaWQ6ICdtZWRpYW4nLFxuICAgICAgICAgIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0cy5tZXRyaWMubWVkaWFuJ1xuICAgICAgICAgICksXG4gICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAnZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMubWV0cmljLm1lZGlhbidcbiAgICAgICAgICApLFxuICAgICAgICAgIHZhbHVlOiAnbWVkaWFuJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnc3VtJyxcbiAgICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAnZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMubWV0cmljLnN1bSdcbiAgICAgICAgICApLFxuICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLm1ldHJpYy5zdW0nXG4gICAgICAgICAgKSxcbiAgICAgICAgICB2YWx1ZTogJ3N1bScsXG4gICAgICAgIH1cbiAgICAgIF0ubWFwKChyZXMpID0+ICh7XG4gICAgICAgIGlkOiByZXMuaWQsXG4gICAgICAgIGxhYmVsOiByZXMubGFiZWwsXG4gICAgICAgIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogcmVzLmRlZmF1bHRyZXByZXNlbnRhdGlvbixcbiAgICAgICAgZGF0YTogcmVzLnZhbHVlXG4gICAgICB9KSkuc29ydChVdGlscy5zb3J0VmFsdWVzKCdkZWZhdWx0cmVwcmVzZW50YXRpb24nKSksXG4gICAgfTtcbiAgfVxuXG4gIGdldENoYXJ0RmllbGQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2hhcnRUeXBlUGlja2VyLmNvZGVzeXN0ZW0gPSB7XG4gICAgICBlbnRyaWVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ2JhcicsXG4gICAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLnR5cGUuYmFyJyksXG4gICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAnZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMudHlwZS5iYXInXG4gICAgICAgICAgKSxcbiAgICAgICAgICB2YWx1ZTogJ2JhcicsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ3BpZScsXG4gICAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLnR5cGUucGllJyksXG4gICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAnZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMudHlwZS5waWUnXG4gICAgICAgICAgKSxcbiAgICAgICAgICB2YWx1ZTogJ3BpZScsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ2RvbnV0JyxcbiAgICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAnZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMudHlwZS5kb251dCdcbiAgICAgICAgICApLFxuICAgICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLnR5cGUuZG9udXQnXG4gICAgICAgICAgKSxcbiAgICAgICAgICB2YWx1ZTogJ2RvbnV0JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnbGluZVN0cmFpZ2h0JyxcbiAgICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAnZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMudHlwZS5saW5lU3RyYWlnaHQnXG4gICAgICAgICAgKSxcbiAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0cy50eXBlLmxpbmVTdHJhaWdodCdcbiAgICAgICAgICApLFxuICAgICAgICAgIHZhbHVlOiAnbGluZVN0cmFpZ2h0JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnbGluZUN1cnZlJyxcbiAgICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAnZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMudHlwZS5saW5lQ3VydmUnXG4gICAgICAgICAgKSxcbiAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0cy50eXBlLmxpbmVDdXJ2ZSdcbiAgICAgICAgICApLFxuICAgICAgICAgIHZhbHVlOiAnbGluZUN1cnZlJyxcbiAgICAgICAgfVxuICAgICAgXS5tYXAoKHJlcykgPT4gKHtcbiAgICAgICAgaWQ6IHJlcy5pZCxcbiAgICAgICAgbGFiZWw6IHJlcy5sYWJlbCxcbiAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiByZXMuZGVmYXVsdHJlcHJlc2VudGF0aW9uLFxuICAgICAgICBkYXRhOiByZXMudmFsdWVcbiAgICAgIH0pKS5zb3J0KFV0aWxzLnNvcnRWYWx1ZXMoJ2RlZmF1bHRyZXByZXNlbnRhdGlvbicpKSxcbiAgICB9O1xuICB9XG5cbiAgZ2V0SGlzdG9ncmFtRmllbGQoKSB7XG4gICAgbGV0IGVudHJpZXMgPSBbXG4gICAgICB7XG4gICAgICAgIGlkOiAnZGFpbHknLFxuICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLmhpc3RvZ3JhbS5kYWlseSdcbiAgICAgICAgKSxcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLmhpc3RvZ3JhbS5kYWlseSdcbiAgICAgICAgKSxcbiAgICAgICAgdmFsdWU6ICdkYWlseSdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnd2Vla2x5JyxcbiAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0cy5oaXN0b2dyYW0ud2Vla2x5J1xuICAgICAgICApLFxuICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAnZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMuaGlzdG9ncmFtLndlZWtseSdcbiAgICAgICAgKSxcbiAgICAgICAgdmFsdWU6ICd3ZWVrbHknXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ21vbnRobHknLFxuICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLmhpc3RvZ3JhbS5tb250aGx5JyksXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICdlby53b3Jrc3BhY2Uud2lkZ2V0LmNoYXJ0cy5oaXN0b2dyYW0ubW9udGhseSdcbiAgICAgICAgKSxcbiAgICAgICAgdmFsdWU6ICdtb250aGx5J1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaWQ6ICd5ZWFybHknLFxuICAgICAgICBkZWZhdWx0cmVwcmVzZW50YXRpb246IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLmhpc3RvZ3JhbS55ZWFybHknKSxcbiAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLmhpc3RvZ3JhbS55ZWFybHknXG4gICAgICAgICksXG4gICAgICAgIHZhbHVlOiAneWVhcmx5J1xuICAgICAgfVxuICAgIF07XG4gICAgcmV0dXJuIHRoaXMuaGlzdG9ncmFtVHlwZVBpY2tlci5jb2Rlc3lzdGVtID0ge1xuICAgICAgZW50cmllczogZW50cmllcy5tYXAoKHJlcykgPT4gKHtcbiAgICAgICAgaWQ6IHJlcy5pZCxcbiAgICAgICAgbGFiZWw6IHJlcy5sYWJlbCxcbiAgICAgICAgZGVmYXVsdHJlcHJlc2VudGF0aW9uOiByZXMuZGVmYXVsdHJlcHJlc2VudGF0aW9uLFxuICAgICAgICBkYXRhOiByZXMudmFsdWVcbiAgICAgIH0pKSxcbiAgICB9O1xuICB9XG5cbiAgZ2V0QXR0cmlidXRNZXRyaWNDb2Rlc3lzdGVtKHR5cGUpIHtcbiAgICByZXR1cm4gdGhpcy51c2VyU2VydmljZS5nZXRGaWVsZERlZmluaXRpb24odHlwZSkucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSkuc3Vic2NyaWJlKGRlZmluaXRpb24gPT4ge1xuICAgICAgbGV0IGV4Y2x1ZGUgPSBuZXcgU2V0KFsnZmlsZW5hbWUnLCAnbWltZXR5cGUnLCAnbW9kaWZpZXJ0aXRsZScsICd2ZXJzaW9uJywgJ2NyZWF0b3J0aXRsZScsICd0aXRsZScsICdkZXNjcmlwdGlvbiddKTtcbiAgICAgIGlmICh0eXBlICE9PSAnc3lzZG9jdW1lbnQnKSB7XG4gICAgICAgIGV4Y2x1ZGUuYWRkKCd0eXBlJyk7XG4gICAgICB9ICAgICAgXG4gICAgICBsZXQgZmlsdGVyZWRGaWVsZHMgPSBkZWZpbml0aW9uLmVsZW1lbnRzLmZpbHRlcihmaWVsZCA9PiAhZXhjbHVkZS5oYXMoZmllbGQuaGl0bmFtZSkpO1xuICAgICAgZmlsdGVyZWRGaWVsZHMgPSBmaWx0ZXJlZEZpZWxkcy5maWx0ZXIoZmllbGQgPT4gZmllbGQudHlwZSA9PT0gJ05VTUJFUicpO1xuICAgICAgdGhpcy5hdHRyaWJ1dE1ldHJpY1BpY2tlci5jb2Rlc3lzdGVtID0ge1xuICAgICAgICBlbnRyaWVzOiBmaWx0ZXJlZEZpZWxkcy5tYXAoZmllbGQgPT4ge1xuICAgICAgICAgIGxldCBsYWJlbCA9IGZpbHRlcmVkRmllbGRzLmZpbHRlcihpdGVtID0+IGl0ZW0ubGFiZWwgPT09IGZpZWxkLmxhYmVsKS5sZW5ndGggPiAxXG4gICAgICAgICAgICA/IGZpZWxkLmxhYmVsICsgJyAoJyArIHRoaXMuc3lzdGVtLmdldE9iamVjdFR5cGUoZmllbGQucW5hbWUuc3BsaXQoJy4nKVswXSkubGFiZWwgKyAnKSdcbiAgICAgICAgICAgIDogZmllbGQubGFiZWw7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkOiBmaWVsZC5xbmFtZSxcbiAgICAgICAgICAgIGRlZmF1bHRyZXByZXNlbnRhdGlvbjogbGFiZWwsXG4gICAgICAgICAgICBkYXRhOiBmaWVsZC5xbmFtZSxcbiAgICAgICAgICAgIHR5cGU6IGZpZWxkLnR5cGVcbiAgICAgICAgICB9O1xuICAgICAgICB9KS5zb3J0KFV0aWxzLnNvcnRWYWx1ZXMoJ2RlZmF1bHRyZXByZXNlbnRhdGlvbicpKSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldEluaXRpYWxGb3JtVmFsdWVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBjaGFydFR5cGU6IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5jaGFydFR5cGUgfHwgJ3BpZScsXG4gICAgICBzaXplOiB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uc2l6ZSB8fCAxMCxcbiAgICAgIGFnZ3JlZ2F0aW9uOiB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uYWdncmVnYXRpb24gfHwgJ3N5c29iamVjdC5jcmVhdGVkJyxcbiAgICAgIGhpc3RvZ3JhbVR5cGU6IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5oaXN0b2dyYW1UeXBlIHx8ICdtb250aGx5JyxcbiAgICAgIGF0dHJpYnV0TWV0cmljOiB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uYXR0cmlidXRNZXRyaWMgfHwgJycsXG4gICAgICBtZXRyaWM6IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5tZXRyaWMgfHwgJ3N1bScsXG4gICAgICBzb3J0UmV2ZXJ0OiB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uc29ydFJldmVydCB8fCAnJyxcbiAgICAgIGludGVydmFsOiB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uaW50ZXJ2YWwgfHwgMTAwMCxcbiAgICAgIHN0YXJ0aW5ncG9pbnQ6IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5zdGFydGluZ3BvaW50IHx8IDAsXG4gICAgICBtaW5fZG9jX2NvdW50OiB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8ubWluRG9jQ291bnQgfHwgMSxcbiAgICAgIHRpdGxlOiB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8udGl0bGUgfHwgJycsXG4gICAgICB4QXhlOiB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8ueEF4ZSB8fCAnJyxcbiAgICAgIHlBeGU6IHRoaXMuX3dpZGdldENvbmZpZz8uZm9ybVZhbHVlPy55QXhlIHx8ICcnLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVR5cGVGbGFncygpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaXNEYXRlVGltZVR5cGUgPSB0aGlzLndpZGdldENvbmZpZz8uZm9ybVZhbHVlLmFnZ3JlZ2F0aW9uID09PSAnc3lzb2JqZWN0LmNyZWF0ZWQnIHx8IHRoaXMud2lkZ2V0Q29uZmlnPy5hZ2dyZWdhdGlvblR5cGUgPT09ICdEQVRFVElNRSc7XG4gICAgICB0aGlzLmlzTnVtYmVyVHlwZSA9IHRoaXMud2lkZ2V0Q29uZmlnPy5hZ2dyZWdhdGlvblR5cGUgPT09ICdOVU1CRVInO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICBwcml2YXRlIHN0b3JlZFF1ZXJ5U3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0U3RvcmVkUXVlcnkodGhpcy5fd2lkZ2V0Q29uZmlnPy5zdG9yZWRRdWVyeSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuc2V0dXBGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICBzdG9yZWRRdWVyeTogdGhpcy5zdG9yZWRRdWVyeSA/IHRoaXMuc3RvcmVkUXVlcnkubmFtZSA6ICcnLFxuICAgICAgICAuLi50aGlzLmdldEluaXRpYWxGb3JtVmFsdWVzKCksXG4gICAgICB9KTtcbiAgICAgIGlmICh0aGlzLnN0b3JlZFF1ZXJ5KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTYXZlZFNlYXJjaE5hbWUgPSB0aGlzLnNldHVwRm9ybS5nZXQoJ3N0b3JlZFF1ZXJ5JykudmFsdWU7XG4gICAgICAgIHRoaXMuc2V0dXBGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgIGFnZ3JlZ2F0aW9uOiB0aGlzLl93aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uYWdncmVnYXRpb24gfHwgJ3N5c29iamVjdC5jcmVhdGVkJyxcbiAgICAgICAgICBhdHRyaWJ1dE1ldHJpYzogdGhpcy5fd2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmF0dHJpYnV0TWV0cmljIHx8ICcnLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy51cGRhdGVUeXBlRmxhZ3MoKTtcbiAgICAgICAgdGhpcy51cGRhdGVGaWVsZCgpO1xuXG4gICAgICB9XG4gICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICB0aGlzLnF1ZXJ5RXJyb3IoZXJyb3IpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBxdWVyeUVycm9yKGVycm9yOiBhbnkpIHtcbiAgICB0aGlzLmlzRGF0ZVRpbWVUeXBlID0gZmFsc2U7XG4gICAgdGhpcy5pc051bWJlclR5cGUgPSBmYWxzZTtcbiAgICB0aGlzLl93aWRnZXRDb25maWcuYWdncmVnYXRpb25UeXBlID0gbnVsbDtcbiAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDQpIHtcbiAgICAgIHRoaXMuc2V0dXBGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAuLi50aGlzLmdldEluaXRpYWxGb3JtVmFsdWVzKCksXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBFTVBUWTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fd2lkZ2V0Q29uZmlnPy5zdG9yZWRRdWVyeSkge1xuICAgICAgdGhpcy5zdG9yZWRRdWVyeVN1YnNjcmlwdGlvbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldHVwRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgLi4udGhpcy5nZXRJbml0aWFsRm9ybVZhbHVlcygpLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2V0dXBcIj5cbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJzZXR1cEZvcm1cIj5cbiAgICA8ZW8tZm9ybS1pbnB1dCBbcmVxdWlyZWRdPVwidHJ1ZVwiIFtza2lwVG9nZ2xlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8ud29ya3NwYWNlLndpZGdldC5mb3JtLmxhYmVsLmNoYXJ0VHlwZUZpZWxkJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgW2ludmFsaWRdPVwic2V0dXBGb3JtLmRpcnR5ICYmIHNldHVwRm9ybS5nZXQoJ2NoYXJ0VHlwZScpLmludmFsaWRcIj5cbiAgICAgIDxlby1jb2Rlc3lzdGVtIGZvcm1Db250cm9sTmFtZT1cImNoYXJ0VHlwZVwiIFtwaWNrZXJUaXRsZV09XCJjaGFydFR5cGVQaWNrZXIudGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgW2NvZGVzeXN0ZW1dPVwiY2hhcnRUeXBlUGlja2VyLmNvZGVzeXN0ZW1cIj48L2VvLWNvZGVzeXN0ZW0+XG4gICAgPC9lby1mb3JtLWlucHV0PlxuICAgIEBpZiAoc2V0dXBGb3JtLmRpcnR5ICYmIHNldHVwRm9ybS5nZXQoJ2NoYXJ0VHlwZScpLmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZXJyLW1zZ1wiIHRyYW5zbGF0ZT5cbiAgICAgICAgZW8uZm9ybS5wcm9wZXJ0eS5yZXF1aXJlZFxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgQGlmIChzdG9yZWRRdWVyaWVzUGlja2VyPy5jb2Rlc3lzdGVtPy5lbnRyaWVzKSB7XG4gICAgICA8ZW8tZm9ybS1pbnB1dCBbcmVxdWlyZWRdPVwidHJ1ZVwiIFtza2lwVG9nZ2xlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby53b3Jrc3BhY2Uud2lkZ2V0LmxhYmVsLnN0b3JlZHF1ZXJ5JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICBbZGVzY3JpcHRpb25dPVwiJ2VvLndvcmtzcGFjZS53aWRnZXQuc3RvcmVkLnF1ZXJpZXMuZGVzY3JpcHRpb24nXCJcbiAgICAgICAgICAgICAgICAgICAgIFtpbnZhbGlkXT1cInNldHVwRm9ybS5kaXJ0eSAmJiBzZXR1cEZvcm0uZ2V0KCdzdG9yZWRRdWVyeScpLmludmFsaWRcIj5cbiAgICAgICAgPGVvLWNvZGVzeXN0ZW0gZm9ybUNvbnRyb2xOYW1lPVwic3RvcmVkUXVlcnlcIiBbcGlja2VyVGl0bGVdPVwic3RvcmVkUXVlcmllc1BpY2tlci50aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtjb2Rlc3lzdGVtXT1cInN0b3JlZFF1ZXJpZXNQaWNrZXIuY29kZXN5c3RlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtlbXB0eU1lc3NhZ2VdPVwiJ2VvLndvcmtzcGFjZS53aWRnZXQuc3RvcmVkLnF1ZXJpZXMubGlzdC5ub3RBdmFpbGFibGUnXCI+PC9lby1jb2Rlc3lzdGVtPlxuICAgICAgPC9lby1mb3JtLWlucHV0PlxuICAgICAgQGlmIChzZXR1cEZvcm0uZGlydHkgJiYgc2V0dXBGb3JtLmdldCgnc3RvcmVkUXVlcnknKS5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZXJyLW1zZ1wiIHRyYW5zbGF0ZT5cbiAgICAgICAgICBlby5mb3JtLnByb3BlcnR5LnJlcXVpcmVkXG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAoYWdncmVnYXRpb25QaWNrZXI/LmNvZGVzeXN0ZW0/LmVudHJpZXMgJiYgdGhpcy5zZXR1cEZvcm0uZ2V0KCdzdG9yZWRRdWVyeScpLnZhbGlkKSB7XG4gICAgICA8ZW8tZm9ybS1pbnB1dCBbcmVxdWlyZWRdPVwidHJ1ZVwiIFtza2lwVG9nZ2xlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby53b3Jrc3BhY2Uud2lkZ2V0LmZvcm0ubGFiZWwuYWdncmVnYXRpb25GaWVsZCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgW2ludmFsaWRdPVwic2V0dXBGb3JtLmRpcnR5ICYmIHNldHVwRm9ybS5nZXQoJ2FnZ3JlZ2F0aW9uJykuaW52YWxpZFwiPlxuICAgICAgICA8ZW8tY29kZXN5c3RlbSAjYWdncmVnYXRpb25Db2Rlc3lzdGVtIGZvcm1Db250cm9sTmFtZT1cImFnZ3JlZ2F0aW9uXCIgW3BpY2tlclRpdGxlXT1cImFnZ3JlZ2F0aW9uUGlja2VyLnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2NvZGVzeXN0ZW1dPVwiYWdncmVnYXRpb25QaWNrZXIuY29kZXN5c3RlbVwiPjwvZW8tY29kZXN5c3RlbT5cbiAgICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgICAgIEBpZiAoc2V0dXBGb3JtLmRpcnR5ICYmIHNldHVwRm9ybS5nZXQoJ2FnZ3JlZ2F0aW9uJykuaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImVyci1tc2dcIiB0cmFuc2xhdGU+XG4gICAgICAgICAgZW8uZm9ybS5wcm9wZXJ0eS5yZXF1aXJlZFxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICB9XG5cbiAgICA8ZW8tZm9ybS1pbnB1dCBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgIFtza2lwVG9nZ2xlXT1cInRydWVcIiBbbGFiZWxdPVwiJ2VvLndvcmtzcGFjZS53aWRnZXQuZm9ybS5wYXJ0aWFsVmFsdWUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2ludmFsaWRdPVwic2V0dXBGb3JtLmRpcnR5ICYmIHNldHVwRm9ybS5nZXQoJ3NpemUnKS5pbnZhbGlkXCI+XG4gICAgICA8ZW8tbnVtYmVyIFtzY2FsZV09XCIwXCIgZm9ybUNvbnRyb2xOYW1lPVwic2l6ZVwiPjwvZW8tbnVtYmVyPlxuICAgIDwvZW8tZm9ybS1pbnB1dD5cblxuICAgIEBpZiAoc2V0dXBGb3JtLmRpcnR5ICYmIHNldHVwRm9ybS5nZXQoJ3NpemUnKS5pbnZhbGlkKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZXJyLW1zZ1wiIHRyYW5zbGF0ZSBbdHJhbnNsYXRlUGFyYW1zXT1cInttaW46IDMsIG1heDogMTAwfVwiPlxuICAgICAgICBAaWYgKHNldHVwRm9ybS5nZXQoJ3NpemUnKS5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xuICAgICAgICAgIGVvLmZvcm0ucHJvcGVydHkucmVxdWlyZWRcbiAgICAgICAgfSBAZWxzZSBpZiAoc2V0dXBGb3JtLmdldCgnc2l6ZScpLmhhc0Vycm9yKCdtYXgnKSB8fCBzZXR1cEZvcm0uZ2V0KCdzaXplJykuaGFzRXJyb3IoJ21pbicpKSB7XG4gICAgICAgICAgZW8uZm9ybS5wcm9wZXJ0eS5zdHJpbmcuZXJyb3IuY2xhc3NpZmljYXRpb24ucGFydGlhbFZhbHVlXG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIEBpZiAoaXNEYXRlVGltZVR5cGUpIHtcbiAgICAgIDxlby1mb3JtLWlucHV0IFtza2lwVG9nZ2xlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby53b3Jrc3BhY2Uud2lkZ2V0LmZvcm0ubGFiZWwuaGlzdG9ncmFtJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICBbaW52YWxpZF09XCJzZXR1cEZvcm0uZGlydHkgJiYgc2V0dXBGb3JtLmdldCgnaGlzdG9ncmFtVHlwZScpLmludmFsaWRcIlxuICAgICAgICAgICAgICAgICAgICAgW2Rlc2NyaXB0aW9uXT1cIiBzZXR1cEZvcm0uZ2V0KCdoaXN0b2dyYW1UeXBlJykudmFsdWUgPyAnJzogJ2VvLndvcmtzcGFjZS53aWRnZXQuaGlzdG9ncmFtLmRlc2NyaXB0aW9uJ1wiPlxuICAgICAgICA8ZW8tY29kZXN5c3RlbSBmb3JtQ29udHJvbE5hbWU9XCJoaXN0b2dyYW1UeXBlXCIgW3BpY2tlclRpdGxlXT1cImhpc3RvZ3JhbVR5cGVQaWNrZXIudGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICBbY29kZXN5c3RlbV09XCJoaXN0b2dyYW1UeXBlUGlja2VyLmNvZGVzeXN0ZW1cIj48L2VvLWNvZGVzeXN0ZW0+XG4gICAgICA8L2VvLWZvcm0taW5wdXQ+XG4gICAgfVxuICAgIEBpZiAod2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmFnZ3JlZ2F0aW9uICYmICFpc0RhdGVUaW1lVHlwZSAmJiAhaXNOdW1iZXJUeXBlKSB7XG4gICAgICBAaWYgKHdpZGdldENvbmZpZy5mb3JtVmFsdWUuY2hhcnRUeXBlID09PSAnYmFyJykge1xuICAgICAgICA8ZW8tZm9ybS1pbnB1dCBjbGFzcz1cImxhYmVsIGNoZWNrYm94XCIgW2xhYmVsXT1cIidlby53b3Jrc3BhY2Uud2lkZ2V0LmZvcm0ubGFiZWwuc29ydFJldmVydCd8dHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW3NraXBUb2dnbGVdPVwidHJ1ZVwiPlxuICAgICAgICAgIDxlby1jaGVja2JveCBmb3JtQ29udHJvbE5hbWU9XCJzb3J0UmV2ZXJ0XCIgW3RyaXN0YXRlXT1cImZhbHNlXCI+PC9lby1jaGVja2JveD5cbiAgICAgICAgPC9lby1mb3JtLWlucHV0PlxuICAgICAgfVxuICAgICAgQGlmICh3aWRnZXRDb25maWcuZm9ybVZhbHVlLmNoYXJ0VHlwZSA9PT0gJ2JhcicgfHwgd2lkZ2V0Q29uZmlnLmZvcm1WYWx1ZS5jaGFydFR5cGUgPT09ICdwaWUnIHx8IHdpZGdldENvbmZpZy5mb3JtVmFsdWUuY2hhcnRUeXBlID09PSAncmluZycgJiYgIXdpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5hdHRyaWJ1dE1ldHJpYyAmJiAhaXNOdW1iZXJUeXBlKSB7XG4gICAgICAgIDxlby1mb3JtLWlucHV0IGNsYXNzPVwidGhyZXNob2xkLXN1Y2Nlc3NcIiBbc2tpcFRvZ2dsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby53b3Jrc3BhY2Uud2lkZ2V0LmZvcm0ubGFiZWwubWluRG9jQ291bnQnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgPGVvLW51bWJlciBbc2NhbGVdPVwiMFwiIGZvcm1Db250cm9sTmFtZT1cIm1pbkRvY0NvdW50XCI+XG4gICAgICAgICAgPC9lby1udW1iZXI+XG4gICAgICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKGlzTnVtYmVyVHlwZSkge1xuICAgICAgPGVvLWZvcm0taW5wdXQgW3NraXBUb2dnbGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLndvcmtzcGFjZS53aWRnZXQuY2hhcnRzLmludGVydmFsJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICBbaW52YWxpZF09XCJzZXR1cEZvcm0uZGlydHkgJiYgc2V0dXBGb3JtLmdldCgnaW50ZXJ2YWwnKS5pbnZhbGlkXCI+XG4gICAgICAgIDxlby1udW1iZXIgW3NjYWxlXT1cIjBcIiBmb3JtQ29udHJvbE5hbWU9XCJpbnRlcnZhbFwiPjwvZW8tbnVtYmVyPlxuICAgICAgPC9lby1mb3JtLWlucHV0PlxuXG4gICAgICA8ZW8tZm9ybS1pbnB1dCBbc2tpcFRvZ2dsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMuc3RhcnRpbmdwb2ludCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgW2ludmFsaWRdPVwic2V0dXBGb3JtLmRpcnR5ICYmIHNldHVwRm9ybS5nZXQoJ3N0YXJ0aW5ncG9pbnQnKS5pbnZhbGlkXCI+XG4gICAgICAgIDxlby1udW1iZXIgW3NjYWxlXT1cIjBcIiBmb3JtQ29udHJvbE5hbWU9XCJzdGFydGluZ3BvaW50XCI+PC9lby1udW1iZXI+XG4gICAgICA8L2VvLWZvcm0taW5wdXQ+XG4gICAgfVxuICAgIEBpZiAod2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmNoYXJ0VHlwZSA9PT0gJ2JhcicgJiYgYXR0cmlidXRNZXRyaWNQaWNrZXI/LmNvZGVzeXN0ZW0/LmVudHJpZXMgJiYgdGhpcy5zZXR1cEZvcm0uZ2V0KCdzdG9yZWRRdWVyeScpLnZhbGlkICYmICFpc051bWJlclR5cGUgJiYgIWlzRGF0ZVRpbWVUeXBlKSB7XG4gICAgICA8ZW8tZm9ybS1pbnB1dCBbc2tpcFRvZ2dsZV09XCJ0cnVlXCIgW2xhYmVsXT1cIidlby53b3Jrc3BhY2Uud2lkZ2V0LmZvcm0ubGFiZWwuYXR0cmlidXRNZXRyaWMnIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgIDxlby1jb2Rlc3lzdGVtIGZvcm1Db250cm9sTmFtZT1cImF0dHJpYnV0TWV0cmljXCIgW3BpY2tlclRpdGxlXT1cImF0dHJpYnV0TWV0cmljUGlja2VyLnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2NvZGVzeXN0ZW1dPVwiYXR0cmlidXRNZXRyaWNQaWNrZXIuY29kZXN5c3RlbVwiPjwvZW8tY29kZXN5c3RlbT5cbiAgICAgIDwvZW8tZm9ybS1pbnB1dD5cblxuICAgICAgQGlmICh3aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uY2hhcnRUeXBlID09PSAnYmFyJyAmJiB3aWRnZXRDb25maWc/LmZvcm1WYWx1ZT8uYXR0cmlidXRNZXRyaWMpIHtcbiAgICAgICAgPGVvLWZvcm0taW5wdXQgW3NraXBUb2dnbGVdPVwidHJ1ZVwiIFtsYWJlbF09XCInZW8ud29ya3NwYWNlLndpZGdldC5mb3JtLmxhYmVsLmNoYXJ0TWV0cmljJyB8IHRyYW5zbGF0ZVwiPlxuICAgICAgICAgIDxlby1jb2Rlc3lzdGVtIGZvcm1Db250cm9sTmFtZT1cIm1ldHJpY1wiIFtwaWNrZXJUaXRsZV09XCJjaGFydE1ldHJpY1BpY2tlci50aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2NvZGVzeXN0ZW1dPVwiY2hhcnRNZXRyaWNQaWNrZXIuY29kZXN5c3RlbVwiPjwvZW8tY29kZXN5c3RlbT5cbiAgICAgICAgPC9lby1mb3JtLWlucHV0PlxuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAod2lkZ2V0Q29uZmlnPy5mb3JtVmFsdWU/LmNoYXJ0VHlwZSkge1xuICAgICAgPGRpdiBjbGFzcz1cInByb3BlcnR5UGlja2VyXCI+XG4gICAgICAgIDxlby1mb3JtLWlucHV0IHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMudGl0bGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW3NraXBUb2dnbGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtpbnZhbGlkXT1cInNldHVwRm9ybS5kaXJ0eSAmJiBzZXR1cEZvcm0uZ2V0KCd0aXRsZScpLmludmFsaWRcIj5cbiAgICAgICAgICA8ZW8tc3RyaW5nIGF1dG9jb21wbGV0ZT1cInRydWVcIiBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiPjwvZW8tc3RyaW5nPlxuICAgICAgICA8L2VvLWZvcm0taW5wdXQ+XG4gICAgICAgIEBpZiAoc2V0dXBGb3JtLmRpcnR5ICYmIHNldHVwRm9ybS5nZXQoJ3RpdGxlJykuaW52YWxpZCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlcnItbXNnXCIgW3RyYW5zbGF0ZVBhcmFtc109XCJ7bWF4bGVuZ3RoOiA1MH1cIiB0cmFuc2xhdGU+ZW8uZm9ybS5wcm9wZXJ0eS5tYXhsZW5ndGg8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKHdpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5jaGFydFR5cGUgIT09ICdwaWUnICYmIHdpZGdldENvbmZpZz8uZm9ybVZhbHVlPy5jaGFydFR5cGUgIT09ICdkb251dCcpIHtcbiAgICAgICAgICA8ZW8tZm9ybS1pbnB1dCB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMueEF4ZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtza2lwVG9nZ2xlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtpbnZhbGlkXT1cInNldHVwRm9ybS5kaXJ0eSAmJiBzZXR1cEZvcm0uZ2V0KCd4QXhlJykuaW52YWxpZFwiPlxuICAgICAgICAgICAgPGVvLXN0cmluZyBhdXRvY29tcGxldGU9XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwieEF4ZVwiPjwvZW8tc3RyaW5nPlxuICAgICAgICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgICAgICAgICBAaWYgKHNldHVwRm9ybS5kaXJ0eSAmJiBzZXR1cEZvcm0uZ2V0KCd4QXhlJykuaW52YWxpZCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVyci1tc2dcIiBbdHJhbnNsYXRlUGFyYW1zXT1cInttYXhsZW5ndGg6IDUwfVwiIHRyYW5zbGF0ZT5lby5mb3JtLnByb3BlcnR5Lm1heGxlbmd0aDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgICA8ZW8tZm9ybS1pbnB1dCB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8ud29ya3NwYWNlLndpZGdldC5jaGFydHMueUF4ZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtza2lwVG9nZ2xlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtpbnZhbGlkXT1cInNldHVwRm9ybS5kaXJ0eSAmJiBzZXR1cEZvcm0uZ2V0KCd5QXhlJykuaW52YWxpZFwiPlxuICAgICAgICAgICAgPGVvLXN0cmluZyBhdXRvY29tcGxldGU9XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwieUF4ZVwiPjwvZW8tc3RyaW5nPlxuICAgICAgICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgICAgICAgICBAaWYgKHNldHVwRm9ybS5kaXJ0eSAmJiBzZXR1cEZvcm0uZ2V0KCd5QXhlJykuaW52YWxpZCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVyci1tc2dcIiBbdHJhbnNsYXRlUGFyYW1zXT1cInttYXhsZW5ndGg6IDUwfVwiIHRyYW5zbGF0ZT5lby5mb3JtLnByb3BlcnR5Lm1heGxlbmd0aDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Zvcm0+XG48L2Rpdj5cblxuQGlmIChzZXR1cEZvcm0udmFsaWQpIHtcbiAgPGRpdiBjbGFzcz1cInByZXZpZXdcIj5cbiAgICA8ZW8tY2hhcnRzLXdpZGdldCBbd2lkZ2V0Q29uZmlnXT1cIndpZGdldENvbmZpZ1wiIFtlZGl0TW9kZV09XCJ0cnVlXCI+PC9lby1jaGFydHMtd2lkZ2V0PlxuICA8L2Rpdj5cbn0gQGVsc2Uge1xuICA8ZGl2IGNsYXNzPVwiZW1wdHlcIj5cbiAgICA8ZW8tZXJyb3ItbWVzc2FnZVxuICAgICAgW2VtcHR5U3RhdGVdPVwie2ljb246ICdpY19zYXZlZF9zZWFyY2guc3ZnJywgdGV4dDogJ2VvLndvcmtzcGFjZS53aWRnZXQuY29uZmlndXJhdGlvbi5ub3RPayd9XCI+PC9lby1lcnJvci1tZXNzYWdlPlxuICA8L2Rpdj5cbn1cbiJdfQ==