@bizdoc/core 1.12.0 → 1.13.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/assets/themes/brown.min.css +1 -1
  2. package/assets/themes/dark.min.css +1 -1
  3. package/assets/themes/deep-purple-teal.min.css +1 -1
  4. package/assets/themes/default.min.css +1 -1
  5. package/assets/themes/green.min.css +1 -1
  6. package/assets/themes/indigo.min.css +1 -1
  7. package/esm2020/lib/browse/browse-items.component.mjs +42 -34
  8. package/esm2020/lib/browse/expanded-item/expanded-item.component.mjs +36 -13
  9. package/esm2020/lib/compose/action/action-picker.component.mjs +15 -14
  10. package/esm2020/lib/compose/action/action.base.mjs +9 -4
  11. package/esm2020/lib/compose/action/action.pane.dialog.exp.mjs +13 -12
  12. package/esm2020/lib/compose/action/assign-action.component.mjs +15 -7
  13. package/esm2020/lib/compose/form.component.mjs +6 -3
  14. package/esm2020/lib/compose/trace/flow.component.mjs +84 -47
  15. package/esm2020/lib/compose/trace/trace.base.mjs +6 -2
  16. package/esm2020/lib/compose/trace/trace.component.mjs +131 -144
  17. package/esm2020/lib/core/models.mjs +1 -1
  18. package/esm2020/lib/core/slots/slots.component.mjs +3 -3
  19. package/esm2020/lib/core/translations.mjs +19 -3
  20. package/esm2020/lib/cube/cube-info.service.mjs +3 -3
  21. package/esm2020/lib/cube/cube.service.mjs +5 -3
  22. package/esm2020/lib/cube/declarations.mjs +1 -1
  23. package/esm2020/lib/cube/matrix/matrix.base.mjs +1 -1
  24. package/esm2020/lib/cube/matrix/matrix.mobile.component.mjs +6 -4
  25. package/esm2020/lib/cube/matrix/matrix.pane.component.mjs +9 -5
  26. package/esm2020/lib/cube/matrix/popup.component.mjs +7 -5
  27. package/esm2020/lib/cube/matrix/table.component.mjs +192 -173
  28. package/esm2020/lib/views/cube/matrix.component.mjs +7 -5
  29. package/fesm2015/bizdoc-core.mjs +708 -580
  30. package/fesm2015/bizdoc-core.mjs.map +1 -1
  31. package/fesm2020/bizdoc-core.mjs +702 -582
  32. package/fesm2020/bizdoc-core.mjs.map +1 -1
  33. package/lib/browse/browse-items.component.d.ts +3 -1
  34. package/lib/compose/action/action-picker.component.d.ts +2 -1
  35. package/lib/compose/action/action.base.d.ts +3 -1
  36. package/lib/compose/action/action.pane.dialog.exp.d.ts +2 -1
  37. package/lib/compose/action/assign-action.component.d.ts +5 -2
  38. package/lib/compose/trace/flow.component.d.ts +0 -1
  39. package/lib/compose/trace/trace.base.d.ts +5 -2
  40. package/lib/compose/trace/trace.component.d.ts +1 -19
  41. package/lib/core/models.d.ts +6 -2
  42. package/lib/core/translations.d.ts +16 -0
  43. package/lib/cube/cube-info.service.d.ts +2 -0
  44. package/lib/cube/cube.service.d.ts +1 -0
  45. package/lib/cube/matrix/matrix.base.d.ts +2 -0
  46. package/lib/cube/matrix/matrix.mobile.component.d.ts +2 -1
  47. package/lib/cube/matrix/matrix.pane.component.d.ts +2 -1
  48. package/lib/cube/matrix/table.component.d.ts +15 -8
  49. package/lib/views/cube/matrix.component.d.ts +3 -2
  50. package/package.json +1 -1
@@ -61,7 +61,7 @@ export class CubeService {
61
61
  series(cube, xAxis, options) {
62
62
  if (!options)
63
63
  options = {};
64
- const { filters: axes, series, indices, base, scope, groupIndices } = options, filters = { ...axes };
64
+ const { filters: axes, series, indices, base, scope, groupIndices, inverseIndices } = options, filters = { ...axes };
65
65
  // normalize args
66
66
  base && this.base(cube, filters, base);
67
67
  return this._http.put(`/api/cube/${cube}`, {
@@ -69,7 +69,9 @@ export class CubeService {
69
69
  series,
70
70
  indices,
71
71
  filters,
72
- scope, groupIndices
72
+ scope,
73
+ groupIndices,
74
+ inverseIndices
73
75
  }).pipe(this._decorate(cube, isArray(xAxis) ? xAxis : [xAxis], series ? isArray(series) ? series : [series] : null));
74
76
  }
75
77
  /**
@@ -394,4 +396,4 @@ export function modelize() {
394
396
  return data;
395
397
  }));
396
398
  }
397
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL2N1YmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFnQixhQUFhLEVBQXVCLE1BQU0sdUJBQXVCLENBQUM7QUFJekYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBRTlGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsRUFBRSxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7QUFFL0Q7MkVBQzJFO0FBQzNFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQztBQUV0QyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUM7QUFDdEMsaUVBQWlFO0FBQ2pFLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxHQUFHLEVBQUUsY0FBYyxHQUFHLEdBQUcsQ0FBQztBQUV2RCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxhQUFhLENBQUM7QUFFaEQsd0VBQXdFO0FBQ3hFLEtBQUs7QUFDTCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxzR0FBc0csQ0FBQztBQUV6SSxNQUFNLENB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SW5CLE1BQU07MkJBQUMsYUFBYTs7QUE0WW5DLE1BQU0sVUFBVSxRQUFRLENBQUMsSUFBSSxHQUFHLEdBQUc7SUFDakMsT0FBTyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQzFCLEdBQUcsRUFBRSxFQUNMLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0FBQ3JCLENBQUM7QUFDRCwyQ0FBMkM7QUFDM0MsTUFBTSxVQUFVLFFBQVE7SUFHdEIsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLE9BQU8sQ0FBQyxNQUE0QixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUMzRCxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ1osTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUN6QyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmb3JrSm9pbiwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgc2hhcmVSZXBsYXksIHRhcCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBzZXRDdXJyZW5jeUNvZGUgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYmFzZSc7XHJcbmltcG9ydCB7IGlzQXJyYXksIGlzU3RyaW5nIH0gZnJvbSAnLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBCaXpEb2NDb25maWcsIEJJWkRPQ19DT05GSUcsIFBhcmFtTWFwLCBTY29wZVR5cGUgfSBmcm9tICcuLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBGaWVsZEluZm8sIEF4aXNUeXBlLCBBeGVzTWFwIH0gZnJvbSAnLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YXNvdXJjZVNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2RhdGFzb3VyY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IGdldEN1cnJlbmN5U3ltYm9sLCBnZXRMb2NhbGVOdW1iZXJGb3JtYXQsIE51bWJlckZvcm1hdFN0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmV4cG9ydCBjb25zdCBBQ0NPVU5UX0RFTElNSVRFUiA9ICcuJywgREVGQVVMVF9DVVJSRU5DWSA9ICdVU0QnO1xyXG5cclxuLyoqIGluIGNhc2UgeEF4aXMgb3Igc2VyaWVzIGlzIGdpdmVuIG1vcmUgdGhhbiBvbmUgYXhpcyxcclxuICogdGhlIHZhbHVlIHJldHVybmVkIGlzIGNvbWJpbmVkIG9mIHZhbHVlcyBzZXBlcmF0ZWQgYnkgdGhpcyBjaGFyYWN0ZXIuICovXHJcbmV4cG9ydCBjb25zdCBBWEVTX0NPREVfRElWSURFUiA9ICdfXyc7XHJcblxyXG5leHBvcnQgY29uc3QgQVhFU19MQUJFTF9ESVZJREVSID0gJy0nO1xyXG4vKiogcmVwcmVzZW50cyBhIHBsYWNlIGluIHBhdHRlcm4gdG8gYmUgcmVwbGFjZWQgYnkgYmFzZSBheGlzLiAqL1xyXG5leHBvcnQgY29uc3QgQVhJU19NQVBfQ0hBUiA9ICcjJywgQVhJU19NQVBfQVNfSVMgPSAnKic7XHJcblxyXG5leHBvcnQgY29uc3QgQVhJU19TUEVDSUFMX0NIQVJTID0gL1tcXC47I1xcLSxcXCFdLztcclxuXHJcbi8qKiBhbGxvd2VkIGNoYXJhY3RlcnMgZm9yIGF4aXMgdmFsdWUgLyBjb2xsZWN0aW9uIC8gcmFuZ2UgLyBwYXR0ZXJuLiAqL1xyXG4vL1xccExcclxuZXhwb3J0IGNvbnN0IEFYSVNfVkFMVUVfUEFUVEVSTiA9IC9eKCghP1xcdysoXFwsXFx3KykqKXwoIT9cXHcrXFwtXFx3Kyl8KCE/W1xcd1xcLlxcKlxcI10rKSkoWztdKCghP1xcdysoXFwsXFx3KykqKXwoIT9cXHcrXFwtXFx3Kyl8KCE/W1xcd1xcLlxcKlxcI10rKSkpKiQvO1xyXG5cclxuZXhwb3J0IGNvbnN0IENMRFJfRklMRVMgPSBbJ2NsZHItZGF0YS9tYWluL3swfS9jdXJyZW5jaWVzLmpzb24nLCAnY2xkci1kYXRhL21haW4vezB9L2NhLWdyZWdvcmlhbi5qc29uJywgJ2NsZHItZGF0YS9tYWluL3swfS9udW1iZXJzLmpzb24nLCAnY2xkci1kYXRhL21haW4vezB9L3RpbWVab25lTmFtZXMuanNvbicsICdjbGRyLWRhdGEvc3VwcGxlbWVudGFsL251bWJlcmluZ1N5c3RlbXMuanNvbiddO1xyXG5cclxuLyoqIHF1ZXJ5IGN1YmUgKi9cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEN1YmVTZXJ2aWNlIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9jYWNoZTogeyBbbmFtZTogc3RyaW5nXTogT2JzZXJ2YWJsZTxhbnk+IH0gPSB7fTtcclxuICAvLyBjdG9yXHJcbiAgY29uc3RydWN0b3IoQEluamVjdChCSVpET0NfQ09ORklHKSBwcml2YXRlIF9jb25maWc6IEJpekRvY0NvbmZpZyxcclxuICAgIHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIF90eXBlOiBEYXRhc291cmNlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlKSB7XHJcbiAgICBfY29uZmlnICYmIF9jb25maWcuY3VycmVuY3lDb2RlICYmIHNldEN1cnJlbmN5Q29kZShfY29uZmlnLmN1cnJlbmN5Q29kZSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2NhY2hlT3IgPSA8VD4obmFtZTogc3RyaW5nLCBmbjogKCkgPT4gT2JzZXJ2YWJsZTxUPik6IE9ic2VydmFibGU8VD4gPT5cclxuICAgIHRoaXMuX2NhY2hlW25hbWVdIHx8ICh0aGlzLl9jYWNoZVtuYW1lXSA9IGZuKCkucGlwZShzaGFyZVJlcGxheSgpKSk7XHJcbiAgLyoqIHN5c3RlbSBjdXJyZW5jeSAqL1xyXG4gIGdldCBudW1iZXJGb3JtYXQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmN1cnJlbmN5Q29kZSA/XHJcbiAgICAgIGdldExvY2FsZU51bWJlckZvcm1hdCh0aGlzLl9zZXNzaW9uLmxhbmd1YWdlLCBOdW1iZXJGb3JtYXRTdHlsZS5DdXJyZW5jeSkuXHJcbiAgICAgICAgcmVwbGFjZSgnwqQnLCBnZXRDdXJyZW5jeVN5bWJvbCh0aGlzLmN1cnJlbmN5Q29kZSwgJ25hcnJvdycpKSA6XHJcbiAgICAgIGdldExvY2FsZU51bWJlckZvcm1hdCh0aGlzLl9zZXNzaW9uLmxhbmd1YWdlLCBOdW1iZXJGb3JtYXRTdHlsZS5EZWNpbWFsKTtcclxuICB9XHJcbiAgZ2V0IGN1cnJlbmN5Q29kZSgpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgeyBjdXJyZW5jeUNvZGUgfSA9IHRoaXMuX2NvbmZpZyB8fCB7fTtcclxuICAgIHJldHVybiBjdXJyZW5jeUNvZGUgfHwgREVGQVVMVF9DVVJSRU5DWTtcclxuICB9XHJcbiAgZ2V0IGRpZ2l0c0luZm8oKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHsgZnJhY3Rpb25EaWdpdHMgfSA9IHRoaXM7XHJcbiAgICByZXR1cm4gYDEuJHtmcmFjdGlvbkRpZ2l0c30tJHtmcmFjdGlvbkRpZ2l0c31gO1xyXG4gIH1cclxuICBnZXQgZnJhY3Rpb25EaWdpdHMoKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IHsgZm9ybWF0cyB9ID0gdGhpcy5fY29uZmlnLCB7IGZyYWN0aW9uRGlnaXRzIH0gPSBmb3JtYXRzIHx8IHt9O1xyXG4gICAgcmV0dXJuIGZyYWN0aW9uRGlnaXRzICE9PSB1bmRlZmluZWQgPyBmcmFjdGlvbkRpZ2l0cyA6IDI7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIHF1ZXJ5IGN1YmUgYnkgYXhlcywgc2VyaWVzIGFuZCBpbmRpY2VzXHJcbiAgICogQHBhcmFtIGN1YmUgbmFtZVxyXG4gICAqIEBwYXJhbSB4QXhpcyBncm91cCBieSBvbmUgb3IgbW9yZSBheGlzXHJcbiAgICogQHBhcmFtIG9wdGlvbnNcclxuICAgKi9cclxuICBzZXJpZXMoY3ViZTogc3RyaW5nLCB4QXhpczogc3RyaW5nIHwgc3RyaW5nW10sXHJcbiAgICBvcHRpb25zPzoge1xyXG4gICAgICAvKiogZ3JvdXAgc2VyaWVzIGJ5IG9uZSBvciBtb3JlIGF4aXMgKi9cclxuICAgICAgc2VyaWVzPzogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgICAgIC8qKiBpbmNsdWRlIG9uZSBvciBtb3JlIGluZGV4IHNlcmllICovXHJcbiAgICAgIGluZGljZXM/OiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICAgICAgZ3JvdXBJbmRpY2VzPzogYm9vbGVhbixcclxuICAgICAgLyoqIGF4ZXMgKi9cclxuICAgICAgZmlsdGVycz86IHsgW2F4aXM6IHN0cmluZ106IEF4aXNUeXBlIH07XHJcbiAgICAgIHNjb3BlPzogU2NvcGVUeXBlLFxyXG4gICAgICAvKiogcmVwbGFjZSBiYXNlICovXHJcbiAgICAgIGJhc2U/OiB7IFtheGlzOiBzdHJpbmddOiAoc3RyaW5nIHwgbnVtYmVyKSB9IHwgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPjtcclxuICAgIH0pOiBPYnNlcnZhYmxlPFNlcmllc1tdPiB7XHJcbiAgICBpZiAoIW9wdGlvbnMpIG9wdGlvbnMgPSB7fTtcclxuICAgIGNvbnN0IHsgZmlsdGVyczogYXhlcywgc2VyaWVzLCBpbmRpY2VzLCBiYXNlLCBzY29wZSwgZ3JvdXBJbmRpY2VzIH0gPSBvcHRpb25zLCBmaWx0ZXJzID0geyAuLi5heGVzIH07XHJcbiAgICAvLyBub3JtYWxpemUgYXJnc1xyXG4gICAgYmFzZSAmJiB0aGlzLmJhc2UoY3ViZSwgZmlsdGVycywgYmFzZSk7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQ8U2VyaWVzW10+KGAvYXBpL2N1YmUvJHtjdWJlfWAsIHtcclxuICAgICAgeEF4aXMsXHJcbiAgICAgIHNlcmllcyxcclxuICAgICAgaW5kaWNlcyxcclxuICAgICAgZmlsdGVycyxcclxuICAgICAgc2NvcGUsIGdyb3VwSW5kaWNlc1xyXG4gICAgfSkucGlwZSh0aGlzLl9kZWNvcmF0ZShjdWJlLCBpc0FycmF5KHhBeGlzKSA/IHhBeGlzIDogW3hBeGlzXSxcclxuICAgICAgc2VyaWVzID8gaXNBcnJheShzZXJpZXMpID8gc2VyaWVzIDogW3Nlcmllc10gOiBudWxsKSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGFnZ3JlZ2F0ZSBjdWJlIHRvIGZsYXQgY29sbGVjdGlvbiBvZiBjb2x1bW5zIGFuZCB2YWx1ZShzKVxyXG4gICAqIEBwYXJhbSBjdWJlIG5hbWVcclxuICAgKiBAcGFyYW0gY29sdW1uc1xyXG4gICAqIEBwYXJhbSBvcHRpb25zXHJcbiAgICovXHJcbiAgdGFibGUoY3ViZTogc3RyaW5nLCBjb2x1bW5zOiBzdHJpbmdbXSwgb3B0aW9ucz86IHtcclxuICAgIC8qKiBheGVzICovXHJcbiAgICBmaWx0ZXJzPzogQXhlc01hcDtcclxuICAgIC8qKiBpbmNsdWRlIG9uZSBvciBtb3JlIGluZGV4IHZhbHVlcyAqL1xyXG4gICAgaW5kaWNlcz86IHN0cmluZyB8IHN0cmluZ1tdO1xyXG4gICAgc2NvcGU/OiBTY29wZVR5cGUsXHJcbiAgfSk6IE9ic2VydmFibGU8eyB2YWx1ZTogbnVtYmVyIH1bXT4ge1xyXG4gICAgaWYgKCFvcHRpb25zKSBvcHRpb25zID0ge307XHJcbiAgICBjb25zdCB7IGZpbHRlcnMsIGluZGljZXMsIHNjb3BlIH0gPSBvcHRpb25zO1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0PHsgdmFsdWU6IG51bWJlciB9W10+KGAvYXBpL2N1YmUvdGFibGUvJHtjdWJlfWAsIHtcclxuICAgICAgY29sdW1ucyxcclxuICAgICAgaW5kaWNlcyxcclxuICAgICAgZmlsdGVycyxcclxuICAgICAgc2NvcGVcclxuICAgIH0pLnBpcGUodGhpcy5fZGVjb3JhdGVUYWJsZShjdWJlLCBjb2x1bW5zKSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGluZm9ybWF0aW9uIG9uIGV4cGVjdGVkIGV4cGxvcmUgdHlwZVxyXG4gICAqIEBwYXJhbSBjdWJlIG5hbWVcclxuICAgKiBAcGFyYW0gYXhlcyBmaWx0ZXJzXHJcbiAgICogQHBhcmFtIG9wdGlvbnNcclxuICAgKi9cclxuICByZXNvbHZlKGN1YmU6IHN0cmluZywgYXhlczogeyBba2V5OiBzdHJpbmddOiBBeGlzVHlwZSB9LCBvcHRpb25zPzoge1xyXG4gICAgLyoqIHJlcGxhY2UgYmFzZSAqL1xyXG4gICAgYmFzZT86IHsgW2F4aXM6IHN0cmluZ106IChzdHJpbmcgfCBudW1iZXIpIH0gfCBBcnJheTxzdHJpbmcgfCBudW1iZXI+O1xyXG4gIH0pOiBPYnNlcnZhYmxlPEV4cGxvcmVUeXBlPiB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSB7IC4uLmF4ZXMgfSBhcyBhbnk7XHJcbiAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICBjb25zdCB7IGJhc2UgfSA9IG9wdGlvbnM7XHJcbiAgICAgIGJhc2UgJiYgdGhpcy5iYXNlKGN1YmUsIHBhcmFtcywgYmFzZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8RXhwbG9yZVR5cGU+KGAvYXBpL2N1YmUvZXhwbG9yZXR5cGUvJHtjdWJlfWAsIHsgcGFyYW1zIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBleHBsb3JlIGl0ZW1zIGJ5IGF4aXNcclxuICAgKiBAcGFyYW0gY3ViZSBuYW1lXHJcbiAgICogQHBhcmFtIGF4ZXMgZmlsdGVyc1xyXG4gICAqIEBwYXJhbSBvcHRpb25zXHJcbiAgICovXHJcbiAgZXhwbG9yZShjdWJlOiBzdHJpbmcsIGF4ZXM6IHsgW2tleTogc3RyaW5nXTogQXhpc1R5cGUgfSwgb3B0aW9ucz86IHtcclxuICAgIC8qKiByZXN0cmljdCByZXN1bHRzIHRvIHVzZXIgcGF0dGVybnMgb3IgcG9zaXRpb25zICovXHJcbiAgICBzY29wZT86IFNjb3BlVHlwZSxcclxuICAgIC8qKiByZXBsYWNlIGJhc2UgKi9cclxuICAgIGJhc2U/OiB7IFtheGlzOiBzdHJpbmddOiAoc3RyaW5nIHwgbnVtYmVyKSB9IHwgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPjtcclxuICB9KTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xyXG4gICAgY29uc3QgcGFyYW1zID0geyAuLi5heGVzIH0gYXMgYW55O1xyXG4gICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgY29uc3QgeyBiYXNlLCBzY29wZSB9ID0gb3B0aW9ucztcclxuICAgICAgYmFzZSAmJiB0aGlzLmJhc2UoY3ViZSwgcGFyYW1zLCBiYXNlKTtcclxuICAgICAgaWYgKHNjb3BlKSBwYXJhbXMuc2NvcGUgPSBzY29wZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxhbnlbXT4oXHJcbiAgICAgIGAvYXBpL2N1YmUvZXhwbG9yZS8ke2N1YmV9YCxcclxuICAgICAgeyBwYXJhbXMgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBheGVzXHJcbiAgICogQHBhcmFtIGN1YmVcclxuICAgKi9cclxuICBuYW1lT2YoYXhlczogQXhlc01hcCwgY3ViZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IGN1YmUpO1xyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZXMgPSBvcHRpb25zLmF4ZXMuZmlsdGVyKGEgPT4gaXNTdHJpbmcoYXhlc1thLm5hbWVdKSAmJlxyXG4gICAgICAvLyB2YWx1ZVxyXG4gICAgICAhQVhJU19TUEVDSUFMX0NIQVJTLnRlc3QoYXhlc1thLm5hbWVdIGFzIHN0cmluZykpLm1hcChhID0+XHJcbiAgICAgICAgdGhpcy5fdHlwZS5nZXQoYS5kYXRhVHlwZSwgYXhlc1thLm5hbWVdIGFzIHN0cmluZykpO1xyXG4gICAgcmV0dXJuIChvYnNlcnZhYmxlcy5sZW5ndGggPyBmb3JrSm9pbihvYnNlcnZhYmxlcykucGlwZShtYXAobyA9PiBvLmpvaW4oJyAnKSkpIDogb2YobnVsbCkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBleHBsb3JlIGluZGljZXMgYnkgYXhpc1xyXG4gICAqIEBwYXJhbSBjdWJlIG5hbWVcclxuICAgKiBAcGFyYW0gaW5kZXggbmFtZVxyXG4gICAqIEBwYXJhbSBheGVzIGZpbHRlcnNcclxuICAgKiBAcGFyYW0gb3B0aW9uc1xyXG4gICAqL1xyXG4gIGluZGljZXMoY3ViZTogc3RyaW5nLCBpbmRleDogc3RyaW5nLCBheGVzOiB7IFtheGlzOiBzdHJpbmddOiBBeGlzVHlwZSB9LFxyXG4gICAgb3B0aW9ucz86IHtcclxuICAgICAgLyoqIHJlc3RyaWN0IHJlc3VsdHMgdG8gdXNlciBwYXR0ZXJucyBvciBwb3NpdGlvbnMgKi9cclxuICAgICAgc2NvcGU/OiBTY29wZVR5cGVcclxuICAgICAgYmFzZT86IHsgW2F4aXM6IHN0cmluZ106IChzdHJpbmcgfCBudW1iZXIpIH0gfCBBcnJheTxzdHJpbmcgfCBudW1iZXI+O1xyXG4gICAgfSk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHsgLi4uYXhlcyB9IGFzIGFueTtcclxuICAgIGlmIChvcHRpb25zKSB7XHJcbiAgICAgIGNvbnN0IHsgYmFzZSwgc2NvcGUgfSA9IG9wdGlvbnM7XHJcbiAgICAgIGJhc2UgJiYgdGhpcy5iYXNlKGN1YmUsIHBhcmFtcywgYmFzZSk7XHJcbiAgICAgIGlmIChzY29wZSkgcGFyYW1zLnNjb3BlID0gc2NvcGU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8YW55W10+KFxyXG4gICAgICBgL2FwaS9jdWJlL2V4cGxvcmVpbmRleC8ke2N1YmV9LyR7aW5kZXh9YCwgeyBwYXJhbXMgfSkuXHJcbiAgICAgIHBpcGUodGhpcy5fZGVjb3JhdGVUYWJsZShjdWJlKSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGdldCBleHBsb3JlIGl0ZW0gYnkgYXhpcyBhbmQga2V5KHMpXHJcbiAgICogQHBhcmFtIGN1YmVcclxuICAgKiBAcGFyYW0gYXhlc1xyXG4gICAqIEBwYXJhbSBrZXlzXHJcbiAgICogQHBhcmFtIG9wdGlvbnNcclxuICAgKi9cclxuICBpdGVtKGN1YmU6IHN0cmluZywgYXhlczogeyBbYXhpczogc3RyaW5nXTogQXhpc1R5cGUgfSwga2V5czogKHN0cmluZyB8IG51bWJlcilbXSB8IHN0cmluZyB8IG51bWJlciwgb3B0aW9ucz86IHtcclxuICAgIC8qKiByZXBsYWNlIGJhc2UgKi9cclxuICAgIGJhc2U/OiB7IFtheGlzOiBzdHJpbmddOiAoc3RyaW5nIHwgbnVtYmVyKSB9IHwgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPjtcclxuICB9KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHsgLi4uYXhlcyB9IGFzIGFueTtcclxuICAgIHBhcmFtc1sna2V5J10gPSBpc0FycmF5KGtleXMpID8ga2V5c1swXSA6IGtleXM7XHJcbiAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICBjb25zdCB7IGJhc2UgfSA9IG9wdGlvbnM7XHJcbiAgICAgIGJhc2UgJiYgdGhpcy5iYXNlKGN1YmUsIHBhcmFtcywgYmFzZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQoYC9hcGkvY3ViZS9leHBsb3JlaXRlbS8ke2N1YmV9YCwgeyBwYXJhbXMgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBjdWJlIG5hbWVcclxuICAgKiBAcGFyYW0gYXhlcyBjb25kaXRpb25cclxuICAgKi9cclxuICBjb25zdHJhaW50cyhjdWJlOiBzdHJpbmcsIGF4ZXM/OiB7IFtrZXk6IHN0cmluZ106IEF4aXNUeXBlIH0sIG9wdGlvbnM/OiB7IHNvdXJjZTogJ2NvbnN0cmFpbnRzJyB8ICdjb21iaW5hdGlvbnMnIH0pOiBPYnNlcnZhYmxlPHsgW2RhdGFUeXBlOiBzdHJpbmddOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IH0+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDx7IFtkYXRhVHlwZTogc3RyaW5nXTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB9PihcclxuICAgICAgIW9wdGlvbnMgfHwgb3B0aW9ucy5zb3VyY2UgPT09ICdjb25zdHJhaW50cycgP1xyXG4gICAgICAgIGAvYXBpL2N1YmUvY29uc3RyYWludHMvJHtjdWJlfWAgOiBgL2FwaS9jdWJlL2NvbWJpbmF0aW9uc2NvbnN0cmFpbnRzLyR7Y3ViZX1gLCB7XHJcbiAgICAgIHBhcmFtczogeyAuLi5heGVzIH0gYXMgYW55XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGN1YmUgbmFtZVxyXG4gICAqIEBwYXJhbSBheGlzIG5hbWVcclxuICAgKi9cclxuICB2YWx1ZXMoY3ViZTogc3RyaW5nLCBheGlzOiBzdHJpbmcsIGRlcGVuZGVuY2llcz86IFBhcmFtTWFwKTogT2JzZXJ2YWJsZTx7IFtrZXk6IHN0cmluZ106IGFueSB9PiB7XHJcbiAgICBsZXQgY2FjaGVJZCA9IGN1YmUgKyBheGlzO1xyXG4gICAgZGVwZW5kZW5jaWVzICYmIE9iamVjdC5rZXlzKGRlcGVuZGVuY2llcykuZm9yRWFjaChrID0+IGNhY2hlSWQgKz0gayk7XHJcbiAgICByZXR1cm4gdGhpcy5fY2FjaGVPcihjYWNoZUlkLCAoKSA9PiB0aGlzLl9odHRwLmdldDx7IFtkYXRhVHlwZTogc3RyaW5nXTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB9PihcclxuICAgICAgYC9hcGkvY3ViZS9zZWdtZW50dmFsdWVzLyR7Y3ViZX0vJHtheGlzfWAsIHsgcGFyYW1zOiBkZXBlbmRlbmNpZXMgfSkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBnZXQgYXhpcyBjb21iaW5hdGlvbnNcclxuICAgKiBAcGFyYW0gY3ViZSBuYW1lXHJcbiAgICogQHBhcmFtIGF4ZXMgZmlsdGVyc1xyXG4gICAqIEBwYXJhbSBvcHRpb25zXHJcbiAgICovXHJcbiAgY29tYmluYXRpb25zKGN1YmU6IHN0cmluZywgYXhlcz86IHsgW2tleTogc3RyaW5nXTogQXhpc1R5cGUgfSwgb3B0aW9ucz86IHtcclxuICAgIC8qKiB0b3AgKi9cclxuICAgIHRha2U/OiBudW1iZXI7XHJcbiAgICAvKiogcHJvY2VzcyBpbiBiYWNrZ3JvdW5kICovXHJcbiAgICBwcm9ncmVzcz86IGJvb2xlYW47XHJcbiAgfSk6IE9ic2VydmFibGU8c3RyaW5nW11bXT4ge1xyXG4gICAgaWYgKCFvcHRpb25zKSBvcHRpb25zID0ge307XHJcbiAgICBjb25zdCB7IHRha2UsIHByb2dyZXNzIH0gPSBvcHRpb25zO1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PHN0cmluZ1tdW10+KGAvYXBpL2N1YmUvY29tYmluYXRpb25zLyR7Y3ViZX1gLCB7XHJcbiAgICAgIHBhcmFtczogeyAuLi5heGVzLCB0YWtlIH0gYXMgYW55LFxyXG4gICAgICBoZWFkZXJzOiBwcm9ncmVzcyA9PT0gZmFsc2UgPyB7ICduby1wcm9ncmVzcyc6ICd0cnVlJyB9IDoge31cclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gdmFsdWVcclxuICAgKiBAcGFyYW0gb3B0aW9uc1xyXG4gICAqL1xyXG4gIHNlYXJjaCh2YWx1ZTogc3RyaW5nLCBvcHRpb25zOiB7IHRha2U/OiBudW1iZXIgfSkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PHsgY3ViZTogc3RyaW5nLCBheGlzOiBzdHJpbmcsIGtleTogYW55LCB2YWx1ZTogYW55IH1bXT4oJy9hcGkvY3ViZS9zZWFyY2gnLCB7XHJcbiAgICAgIHBhcmFtczogeyB2YWx1ZSwgLi4ub3B0aW9ucyB9IGFzIGFueSxcclxuICAgICAgaGVhZGVyczogeyAnbm8tcHJvZ3Jlc3MnOiAndHJ1ZScgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGdldCBzZWdtZW50c1xyXG4gICAqIEBwYXJhbSBjdWJlXHJcbiAgICovXHJcbiAgc2VnbWVudHMoY3ViZTogc3RyaW5nLCB0eXBlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNlZ21lbnRNYXA+IHtcclxuICAgIHJldHVybiB0aGlzLl9jYWNoZU9yKGAke3R5cGV9LXNlZ21lbnRzYCwgKCkgPT4gdGhpcy5faHR0cC5nZXQ8U2VnbWVudE1hcD4oYC9hcGkvY3ViZS9zZWdtZW50cy8ke2N1YmV9P3R5cGU9JHt0eXBlfWApKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogZ2V0IHVzZXIgcGF0dGVybnNcclxuICAgKiBAcGFyYW0gY3ViZVxyXG4gICAqL1xyXG4gIHBhdHRlcm5zKGN1YmU6IHN0cmluZyk6IE9ic2VydmFibGU8UGF0dGVybltdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fY2FjaGVPcihgJHtjdWJlfS1wYXR0ZXJuc2AsICgpID0+IHRoaXMuX2h0dHAuZ2V0PFBhdHRlcm5bXT4oYC9hcGkvY3ViZS9wYXR0ZXJucy8ke2N1YmV9YCkpO1xyXG4gIH1cclxuICAvKiogZ2V0IGN1cnJlbmNpZXMgKi9cclxuICBjdXJyZW5jaWVzKCk6IE9ic2VydmFibGU8Q3VycmVuY3lbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NhY2hlT3IoJ2N1cnJlbmNpZXMnLCAoKSA9PiB0aGlzLl9odHRwLmdldDxDdXJyZW5jeVtdPignYXBpL2N1YmUvY3VycmVuY2llcycpKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogZ2V0IGV4Y2hhbmdlIHJhdGVcclxuICAgKiBAcGFyYW0gY3VycmVuY3lDb2RlXHJcbiAgICogQHBhcmFtIGRhdGVcclxuICAgKi9cclxuICBleGNoYW5nZVJhdGUoY3VycmVuY3lDb2RlOiBzdHJpbmcsIGRhdGU/OiBEYXRlKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgIGlmICh0aGlzLmN1cnJlbmN5Q29kZSA9PT0gY3VycmVuY3lDb2RlKVxyXG4gICAgICByZXR1cm4gb2YoMSk7XHJcbiAgICBsZXQga2V5ID0gY3VycmVuY3lDb2RlO1xyXG4gICAgaWYgKGRhdGUpIGtleSArPSBkYXRlLnRvSlNPTigpO1xyXG4gICAgcmV0dXJuIHRoaXMuX2NhY2hlT3Ioa2V5LCAoKSA9PiB0aGlzLl9odHRwLmdldDxudW1iZXI+KGBhcGkvY3ViZS9leGNoYW5nZVJhdGUvJHtjdXJyZW5jeUNvZGV9YCwge1xyXG4gICAgICBwYXJhbXM6IGRhdGUgPyB7IGRhdGU6IGRhdGUudG9KU09OKCkgfSA6IG51bGwsXHJcbiAgICAgIGhlYWRlcnM6IHsgJ25vLXByb2dyZXNzJzogJ3RydWUnIH1cclxuICAgIH0pKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgKiByZXBsYWNlcyAqIG9yICMgd2l0aCBvcmlnaW4gYXhpcyBhdCBjaGFyIHBsYWNlXHJcbiAgKiBAcGFyYW0gY3ViZSBuYW1lXHJcbiAgKiBAcGFyYW0gYXhlcyBtYXBcclxuICAqIEBwYXJhbSBiYXNlIG9yaWdpblxyXG4gICovXHJcbiAgcHVibGljIGJhc2UoY3ViZTogc3RyaW5nLCBheGVzOiBBeGVzTWFwLFxyXG4gICAgYmFzZTogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPiB8IEF4ZXNNYXApOiB2b2lkIHtcclxuICAgIGNvbnN0IGNjdWJlID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IGN1YmUpO1xyXG4gICAgY2N1YmUuYXhlcy5mb3JFYWNoKChhLCBpKSA9PiB7XHJcbiAgICAgIGNvbnN0IHZhbCA9IGF4ZXNbYS5uYW1lXTtcclxuICAgICAgaWYgKHZhbCAmJiBpc1N0cmluZyh2YWwpKSB7XHJcbiAgICAgICAgY29uc3QgYXhpc2Jhc2UgPSBpc0FycmF5KGJhc2UpID8gYmFzZVtpXSA6IGJhc2VbYS5uYW1lXTtcclxuICAgICAgICBpZiAodmFsID09PSBBWElTX01BUF9BU19JUylcclxuICAgICAgICAgIGF4ZXNbYS5uYW1lXSA9IGF4aXNiYXNlO1xyXG4gICAgICAgIGVsc2UgaWYgKHZhbC5pbmRleE9mKEFYSVNfTUFQX0NIQVIpID4gLTEpIHtcclxuICAgICAgICAgIGxldCBheGlzID0gJyc7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHZhbC5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgY2hhciA9IHZhbC5jaGFyQXQoaik7XHJcbiAgICAgICAgICAgIGF4aXMgKz0gY2hhciA9PT0gQVhJU19NQVBfQ0hBUiAmJiAoYXhpc2Jhc2UgYXMgc3RyaW5nKS5sZW5ndGggPiBqID9cclxuICAgICAgICAgICAgICAoYXhpc2Jhc2UgYXMgc3RyaW5nKS5jaGFyQXQoaikgOiBjaGFyO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgYXhlc1thLm5hbWVdID0gYXhpcztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBhZGRzIHZhbHVlcyB0byBzb3VyY2Uga2V5c1xyXG4gICAqIEBwYXJhbSBjdWJlXHJcbiAgICogQHBhcmFtIHhBeGlzXHJcbiAgICogQHBhcmFtIHNlcmllc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgX2RlY29yYXRlKGN1YmU6IHN0cmluZyxcclxuICAgIHhBeGlzOiBzdHJpbmdbXSxcclxuICAgIHNlcmllczogc3RyaW5nW10pOiAoc291cmNlOiBPYnNlcnZhYmxlPFNlcmllc1tdPikgPT4gT2JzZXJ2YWJsZTxTZXJpZXNbXT4ge1xyXG4gICAgcmV0dXJuIChzb3VyY2U6IE9ic2VydmFibGU8U2VyaWVzW10+KSA9PiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlID0+IHtcclxuICAgICAgc291cmNlLnN1YnNjcmliZShyID0+IHtcclxuICAgICAgICBjb25zdCBvYnNlcnZhYmxlczogT2JzZXJ2YWJsZTxhbnk+W10gPSBbXTtcclxuICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IGN1YmUpO1xyXG4gICAgICAgIGNvbnN0IGF4aXNUeXBlTWFwID0ge307XHJcbiAgICAgICAgb3B0aW9ucy5heGVzLmZvckVhY2goeCA9PiBheGlzVHlwZU1hcFt4Lm5hbWVdID0geC5kYXRhVHlwZSk7XHJcbiAgICAgICAgaWYgKCFyLmxlbmd0aCkge1xyXG4gICAgICAgICAgb2JzZXJ2ZS5uZXh0KHIpO1xyXG4gICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBiYXNlID0gclswXS5wb2ludHM7XHJcbiAgICAgICAgci5mb3JFYWNoKChzLCBpKSA9PiB7XHJcbiAgICAgICAgICBzLnBvaW50cy5mb3JFYWNoKHAgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXAueCkgcmV0dXJuO1xyXG4gICAgICAgICAgICBjb25zdCBwb2JzZXJ2YWJsZSA9IGZvcmtKb2luKHAueC5zcGxpdChBWEVTX0NPREVfRElWSURFUikubWFwKChrLCBqKSA9PlxyXG4gICAgICAgICAgICAgIHRoaXMuX3R5cGUuZ2V0KGF4aXNUeXBlTWFwW3hBeGlzW2pdXSwgaykpKS5cclxuICAgICAgICAgICAgICBwaXBlKHRhcChvID0+IHAubmFtZSA9IG8uam9pbihBWEVTX0xBQkVMX0RJVklERVIpKSk7XHJcbiAgICAgICAgICAgIG9ic2VydmFibGVzLnB1c2gocG9ic2VydmFibGUpO1xyXG4gICAgICAgICAgICBpZiAoaSA+IDApIHtcclxuICAgICAgICAgICAgICBsZXQgaiA9IDAsIG1pc3NpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHdoaWxlIChqIDwgYmFzZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIGxldCB4ID0gYmFzZVtqXS54O1xyXG4gICAgICAgICAgICAgICAgaWYgKHAueCA9PT0geCkge1xyXG4gICAgICAgICAgICAgICAgICBtaXNzaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHAueCA8IHgpXHJcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgaisrO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAobWlzc2luZykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY2xvbmUgPSB7IHg6IHAueCwgeTogMCB9IGFzIFBvaW50O1xyXG4gICAgICAgICAgICAgICAgYmFzZS5zcGxpY2UoaiwgMCwgY2xvbmUpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY29ic2VydmFibGUgPSBmb3JrSm9pbihwLnguc3BsaXQoQVhFU19DT0RFX0RJVklERVIpLm1hcCgoaywgaikgPT5cclxuICAgICAgICAgICAgICAgICAgdGhpcy5fdHlwZS5nZXQoYXhpc1R5cGVNYXBbeEF4aXNbal1dLCBrKSkpLlxyXG4gICAgICAgICAgICAgICAgICBwaXBlKHRhcChvID0+IGNsb25lLm5hbWUgPSBvLmpvaW4oQVhFU19MQUJFTF9ESVZJREVSKSkpO1xyXG4gICAgICAgICAgICAgICAgb2JzZXJ2YWJsZXMucHVzaChjb2JzZXJ2YWJsZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGlmIChzLmluZGV4KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gb3B0aW9ucy5pbmRpY2VzLmZpbmQoaSA9PiBpLm5hbWUgPT09IHMuaW5kZXgpO1xyXG4gICAgICAgICAgICBzLnRpdGxlID0gaW5kZXgudGl0bGU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIGlmIChzLm5hbWUpIHtcclxuICAgICAgICAgICAgY29uc3Qgc29ic2VydmFibGUgPSBmb3JrSm9pbihzLm5hbWUuc3BsaXQoQVhFU19DT0RFX0RJVklERVIpLm1hcCgoaywgaSkgPT5cclxuICAgICAgICAgICAgICB0aGlzLl90eXBlLmdldChheGlzVHlwZU1hcFtzZXJpZXNbaV1dLCBrKVxyXG4gICAgICAgICAgICApKS5waXBlKHRhcCh2ID0+IHMudGl0bGUgPSB2LmpvaW4oQVhFU19MQUJFTF9ESVZJREVSKSkpO1xyXG4gICAgICAgICAgICBvYnNlcnZhYmxlcy5wdXNoKHNvYnNlcnZhYmxlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAob2JzZXJ2YWJsZXMubGVuZ3RoKVxyXG4gICAgICAgICAgZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIG9ic2VydmUubmV4dChyKTtcclxuICAgICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgfSwgZSA9PiBvYnNlcnZlLmVycm9yKGUpKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIG9ic2VydmUubmV4dChyKTtcclxuICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIGUgPT4gb2JzZXJ2ZS5lcnJvcihlKSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogYWRkcyB2YWx1ZXMgdG8gc291cmNlIGtleXNcclxuICAgKiBAcGFyYW0gY3ViZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2RlY29yYXRlVGFibGU8VD4oY3ViZTogc3RyaW5nLCBjb2x1bW5zPzogc3RyaW5nW10pOiAoc291cmNlOiBPYnNlcnZhYmxlPFRbXT4pID0+IE9ic2VydmFibGU8VFtdPiB7XHJcbiAgICBjb25zdCBjY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSBjdWJlKSxcclxuICAgICAgYXhlcyA9IGNjdWJlLmF4ZXMuZmlsdGVyKGEgPT4gIWNvbHVtbnMgfHwgY29sdW1ucy5pbmRleE9mKGEubmFtZSkgPiAtMSk7XHJcbiAgICByZXR1cm4gKHNvdXJjZSkgPT4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZSA9PiB7XHJcbiAgICAgIHNvdXJjZS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgICAgY29uc3Qgb2JzZXJ2YWJsZXM6IE9ic2VydmFibGU8YW55PltdID0gW107XHJcbiAgICAgICAgci5mb3JFYWNoKHJvdyA9PlxyXG4gICAgICAgICAgYXhlcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB7IG5hbWUsIGRhdGFUeXBlIH0gPSBhLCB2YWx1ZSA9IHJvd1tuYW1lXTtcclxuICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAvLyBrZWVwIGtleVxyXG4gICAgICAgICAgICAgIHJvd1snXycgKyBuYW1lXSA9IHZhbHVlO1xyXG4gICAgICAgICAgICAgIGNvbnN0IG9ic2VydmFibGUgPSB0aGlzLl90eXBlLmdldChkYXRhVHlwZSwgdmFsdWUpLnBpcGUodGFwKHYgPT5cclxuICAgICAgICAgICAgICAgIHJvd1tuYW1lXSA9IHYgfHwgdmFsdWUpKTtcclxuICAgICAgICAgICAgICBvYnNlcnZhYmxlcy5wdXNoKG9ic2VydmFibGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KSk7XHJcbiAgICAgICAgaWYgKG9ic2VydmFibGVzLmxlbmd0aClcclxuICAgICAgICAgIGZvcmtKb2luKG9ic2VydmFibGVzKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICBvYnNlcnZlLm5leHQocik7XHJcbiAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgIH0sIGUgPT4gb2JzZXJ2ZS5lcnJvcihlKSk7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBvYnNlcnZlLm5leHQoW10pO1xyXG4gICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgZSA9PiBvYnNlcnZlLmVycm9yKGUpKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHByb2dyZXNzKHRpbWUgPSAyMDApOiAoc291cmNlOiBPYnNlcnZhYmxlPGFueT4pID0+IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gIHJldHVybiBzb3VyY2UgPT4gc291cmNlLnBpcGUoXHJcbiAgICB0YXAoKSxcclxuICAgIG1hcCgoKSA9PiBmYWxzZSkpXHJcbn1cclxuLyoqIG1vZGVsaXplIGN1YmUgcmVzdWx0cyBhcyBuZXN0ZWQgbWFwcyAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbW9kZWxpemUoKTogKHNvdXJjZTogT2JzZXJ2YWJsZTxTZXJpZXNbXT4pID0+IE9ic2VydmFibGU8e1xyXG4gIFtrZXk6IHN0cmluZ106IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH07XHJcbn0+IHtcclxuICBjb25zdCBkYXRhID0ge307XHJcbiAgcmV0dXJuIChzb3VyY2U6IE9ic2VydmFibGU8U2VyaWVzW10+KSA9PiBzb3VyY2UucGlwZShtYXAociA9PiB7XHJcbiAgICByLmZvckVhY2gocyA9PiB7XHJcbiAgICAgIGNvbnN0IHJvdyA9IGRhdGFbcy5pbmRleCB8fCBzLm5hbWVdID0ge307XHJcbiAgICAgIHMucG9pbnRzLmZvckVhY2gocCA9PiByb3dbcC54XSA9IHAueSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH0pKTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFeHBsb3JlVHlwZSB7XHJcbiAgY29sdW1uczogRmllbGRJbmZvW107XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgZmllbGRzPzogRmllbGRJbmZvW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTZXJpZXMge1xyXG4gIHBvaW50czogUG9pbnRbXTtcclxuICBuYW1lPzogc3RyaW5nO1xyXG4gIGluZGV4Pzogc3RyaW5nO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgUG9pbnQge1xyXG4gIHg6IHN0cmluZztcclxuICB5OiBudW1iZXI7XHJcbiAgbmFtZT86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEN1cnJlbmN5IHsgY29kZTogc3RyaW5nOyBuYW1lOiBzdHJpbmc7IHN5bWJvbDogc3RyaW5nIH1cclxuXHJcbmV4cG9ydCB0eXBlIFNlZ21lbnRNYXAgPSB7IFtjb2RlOiBzdHJpbmddOiBzdHJpbmcgfTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGF0dGVybiB7IHRpdGxlOiBzdHJpbmc7IGF4ZXM6IEF4ZXNNYXAgfVxyXG4iXX0=
399
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL2N1YmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFnQixhQUFhLEVBQXVCLE1BQU0sdUJBQXVCLENBQUM7QUFJekYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBRTlGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsRUFBRSxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7QUFFL0Q7MkVBQzJFO0FBQzNFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQztBQUV0QyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUM7QUFDdEMsaUVBQWlFO0FBQ2pFLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxHQUFHLEVBQUUsY0FBYyxHQUFHLEdBQUcsQ0FBQztBQUV2RCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxhQUFhLENBQUM7QUFFaEQsd0VBQXdFO0FBQ3hFLEtBQUs7QUFDTCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxzR0FBc0csQ0FBQztBQUV6SSxNQUFNLENB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RUFBRSxNQUFNLEVBQUU7OzBCQUluQixNQUFNOzJCQUFDLGFBQWE7O0FBZ1puQyxNQUFNLFVBQVUsUUFBUSxDQUFDLElBQUksR0FBRyxHQUFHO0lBQ2pDLE9BQU8sTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUMxQixHQUFHLEVBQUUsRUFDTCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtBQUNyQixDQUFDO0FBQ0QsMkNBQTJDO0FBQzNDLE1BQU0sVUFBVSxRQUFRO0lBR3RCLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNoQixPQUFPLENBQUMsTUFBNEIsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDM0QsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNaLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDekMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZm9ya0pvaW4sIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHNoYXJlUmVwbGF5LCB0YXAsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgc2V0Q3VycmVuY3lDb2RlIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWJhc2UnO1xyXG5pbXBvcnQgeyBpc0FycmF5LCBpc1N0cmluZyB9IGZyb20gJy4uL2NvcmUvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgQml6RG9jQ29uZmlnLCBCSVpET0NfQ09ORklHLCBQYXJhbU1hcCwgU2NvcGVUeXBlIH0gZnJvbSAnLi4vY29yZS9jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgRmllbGRJbmZvLCBBeGlzVHlwZSwgQXhlc01hcCB9IGZyb20gJy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IERhdGFzb3VyY2VTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9kYXRhc291cmNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBnZXRDdXJyZW5jeVN5bWJvbCwgZ2V0TG9jYWxlTnVtYmVyRm9ybWF0LCBOdW1iZXJGb3JtYXRTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5leHBvcnQgY29uc3QgQUNDT1VOVF9ERUxJTUlURVIgPSAnLicsIERFRkFVTFRfQ1VSUkVOQ1kgPSAnVVNEJztcclxuXHJcbi8qKiBpbiBjYXNlIHhBeGlzIG9yIHNlcmllcyBpcyBnaXZlbiBtb3JlIHRoYW4gb25lIGF4aXMsXHJcbiAqIHRoZSB2YWx1ZSByZXR1cm5lZCBpcyBjb21iaW5lZCBvZiB2YWx1ZXMgc2VwZXJhdGVkIGJ5IHRoaXMgY2hhcmFjdGVyLiAqL1xyXG5leHBvcnQgY29uc3QgQVhFU19DT0RFX0RJVklERVIgPSAnX18nO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFYRVNfTEFCRUxfRElWSURFUiA9ICctJztcclxuLyoqIHJlcHJlc2VudHMgYSBwbGFjZSBpbiBwYXR0ZXJuIHRvIGJlIHJlcGxhY2VkIGJ5IGJhc2UgYXhpcy4gKi9cclxuZXhwb3J0IGNvbnN0IEFYSVNfTUFQX0NIQVIgPSAnIycsIEFYSVNfTUFQX0FTX0lTID0gJyonO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFYSVNfU1BFQ0lBTF9DSEFSUyA9IC9bXFwuOyNcXC0sXFwhXS87XHJcblxyXG4vKiogYWxsb3dlZCBjaGFyYWN0ZXJzIGZvciBheGlzIHZhbHVlIC8gY29sbGVjdGlvbiAvIHJhbmdlIC8gcGF0dGVybi4gKi9cclxuLy9cXHBMXHJcbmV4cG9ydCBjb25zdCBBWElTX1ZBTFVFX1BBVFRFUk4gPSAvXigoIT9cXHcrKFxcLFxcdyspKil8KCE/XFx3K1xcLVxcdyspfCghP1tcXHdcXC5cXCpcXCNdKykpKFs7XSgoIT9cXHcrKFxcLFxcdyspKil8KCE/XFx3K1xcLVxcdyspfCghP1tcXHdcXC5cXCpcXCNdKykpKSokLztcclxuXHJcbmV4cG9ydCBjb25zdCBDTERSX0ZJTEVTID0gWydjbGRyLWRhdGEvbWFpbi97MH0vY3VycmVuY2llcy5qc29uJywgJ2NsZHItZGF0YS9tYWluL3swfS9jYS1ncmVnb3JpYW4uanNvbicsICdjbGRyLWRhdGEvbWFpbi97MH0vbnVtYmVycy5qc29uJywgJ2NsZHItZGF0YS9tYWluL3swfS90aW1lWm9uZU5hbWVzLmpzb24nLCAnY2xkci1kYXRhL3N1cHBsZW1lbnRhbC9udW1iZXJpbmdTeXN0ZW1zLmpzb24nXTtcclxuXHJcbi8qKiBxdWVyeSBjdWJlICovXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBDdWJlU2VydmljZSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfY2FjaGU6IHsgW25hbWU6IHN0cmluZ106IE9ic2VydmFibGU8YW55PiB9ID0ge307XHJcbiAgLy8gY3RvclxyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoQklaRE9DX0NPTkZJRykgcHJpdmF0ZSBfY29uZmlnOiBCaXpEb2NDb25maWcsXHJcbiAgICBwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBfdHlwZTogRGF0YXNvdXJjZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSkge1xyXG4gICAgX2NvbmZpZyAmJiBfY29uZmlnLmN1cnJlbmN5Q29kZSAmJiBzZXRDdXJyZW5jeUNvZGUoX2NvbmZpZy5jdXJyZW5jeUNvZGUpO1xyXG4gIH1cclxuICBwcml2YXRlIF9jYWNoZU9yID0gPFQ+KG5hbWU6IHN0cmluZywgZm46ICgpID0+IE9ic2VydmFibGU8VD4pOiBPYnNlcnZhYmxlPFQ+ID0+XHJcbiAgICB0aGlzLl9jYWNoZVtuYW1lXSB8fCAodGhpcy5fY2FjaGVbbmFtZV0gPSBmbigpLnBpcGUoc2hhcmVSZXBsYXkoKSkpO1xyXG4gIC8qKiBzeXN0ZW0gY3VycmVuY3kgKi9cclxuICBnZXQgbnVtYmVyRm9ybWF0KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW5jeUNvZGUgP1xyXG4gICAgICBnZXRMb2NhbGVOdW1iZXJGb3JtYXQodGhpcy5fc2Vzc2lvbi5sYW5ndWFnZSwgTnVtYmVyRm9ybWF0U3R5bGUuQ3VycmVuY3kpLlxyXG4gICAgICAgIHJlcGxhY2UoJ8KkJywgZ2V0Q3VycmVuY3lTeW1ib2wodGhpcy5jdXJyZW5jeUNvZGUsICduYXJyb3cnKSkgOlxyXG4gICAgICBnZXRMb2NhbGVOdW1iZXJGb3JtYXQodGhpcy5fc2Vzc2lvbi5sYW5ndWFnZSwgTnVtYmVyRm9ybWF0U3R5bGUuRGVjaW1hbCk7XHJcbiAgfVxyXG4gIGdldCBjdXJyZW5jeUNvZGUoKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHsgY3VycmVuY3lDb2RlIH0gPSB0aGlzLl9jb25maWcgfHwge307XHJcbiAgICByZXR1cm4gY3VycmVuY3lDb2RlIHx8IERFRkFVTFRfQ1VSUkVOQ1k7XHJcbiAgfVxyXG4gIGdldCBkaWdpdHNJbmZvKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB7IGZyYWN0aW9uRGlnaXRzIH0gPSB0aGlzO1xyXG4gICAgcmV0dXJuIGAxLiR7ZnJhY3Rpb25EaWdpdHN9LSR7ZnJhY3Rpb25EaWdpdHN9YDtcclxuICB9XHJcbiAgZ2V0IGZyYWN0aW9uRGlnaXRzKCk6IG51bWJlciB7XHJcbiAgICBjb25zdCB7IGZvcm1hdHMgfSA9IHRoaXMuX2NvbmZpZywgeyBmcmFjdGlvbkRpZ2l0cyB9ID0gZm9ybWF0cyB8fCB7fTtcclxuICAgIHJldHVybiBmcmFjdGlvbkRpZ2l0cyAhPT0gdW5kZWZpbmVkID8gZnJhY3Rpb25EaWdpdHMgOiAyO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBxdWVyeSBjdWJlIGJ5IGF4ZXMsIHNlcmllcyBhbmQgaW5kaWNlc1xyXG4gICAqIEBwYXJhbSBjdWJlIG5hbWVcclxuICAgKiBAcGFyYW0geEF4aXMgZ3JvdXAgYnkgb25lIG9yIG1vcmUgYXhpc1xyXG4gICAqIEBwYXJhbSBvcHRpb25zXHJcbiAgICovXHJcbiAgc2VyaWVzKGN1YmU6IHN0cmluZywgeEF4aXM6IHN0cmluZyB8IHN0cmluZ1tdLFxyXG4gICAgb3B0aW9ucz86IHtcclxuICAgICAgLyoqIGdyb3VwIHNlcmllcyBieSBvbmUgb3IgbW9yZSBheGlzICovXHJcbiAgICAgIHNlcmllcz86IHN0cmluZyB8IHN0cmluZ1tdO1xyXG4gICAgICAvKiogaW5jbHVkZSBvbmUgb3IgbW9yZSBpbmRleCBzZXJpZSAqL1xyXG4gICAgICBpbmRpY2VzPzogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgICAgIGdyb3VwSW5kaWNlcz86IGJvb2xlYW4sXHJcbiAgICAgIC8vaW5kZXhQb2xpY3k/OiAnZ3JvdXAnIHwgJ2ludmVyc2UnLFxyXG4gICAgICBpbnZlcnNlSW5kaWNlcz86IGJvb2xlYW4sXHJcbiAgICAgIC8qKiBheGVzICovXHJcbiAgICAgIGZpbHRlcnM/OiB7IFtheGlzOiBzdHJpbmddOiBBeGlzVHlwZSB9O1xyXG4gICAgICBzY29wZT86IFNjb3BlVHlwZSxcclxuICAgICAgLyoqIHJlcGxhY2UgYmFzZSAqL1xyXG4gICAgICBiYXNlPzogeyBbYXhpczogc3RyaW5nXTogKHN0cmluZyB8IG51bWJlcikgfSB8IEFycmF5PHN0cmluZyB8IG51bWJlcj47XHJcbiAgICB9KTogT2JzZXJ2YWJsZTxTZXJpZXNbXT4ge1xyXG4gICAgaWYgKCFvcHRpb25zKSBvcHRpb25zID0ge307XHJcbiAgICBjb25zdCB7IGZpbHRlcnM6IGF4ZXMsIHNlcmllcywgaW5kaWNlcywgYmFzZSwgc2NvcGUsIGdyb3VwSW5kaWNlcywgaW52ZXJzZUluZGljZXMgfSA9IG9wdGlvbnMsIGZpbHRlcnMgPSB7IC4uLmF4ZXMgfTtcclxuICAgIC8vIG5vcm1hbGl6ZSBhcmdzXHJcbiAgICBiYXNlICYmIHRoaXMuYmFzZShjdWJlLCBmaWx0ZXJzLCBiYXNlKTtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dDxTZXJpZXNbXT4oYC9hcGkvY3ViZS8ke2N1YmV9YCwge1xyXG4gICAgICB4QXhpcyxcclxuICAgICAgc2VyaWVzLFxyXG4gICAgICBpbmRpY2VzLFxyXG4gICAgICBmaWx0ZXJzLFxyXG4gICAgICBzY29wZSxcclxuICAgICAgZ3JvdXBJbmRpY2VzLFxyXG4gICAgICBpbnZlcnNlSW5kaWNlc1xyXG4gICAgfSkucGlwZSh0aGlzLl9kZWNvcmF0ZShjdWJlLCBpc0FycmF5KHhBeGlzKSA/IHhBeGlzIDogW3hBeGlzXSxcclxuICAgICAgc2VyaWVzID8gaXNBcnJheShzZXJpZXMpID8gc2VyaWVzIDogW3Nlcmllc10gOiBudWxsKSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGFnZ3JlZ2F0ZSBjdWJlIHRvIGZsYXQgY29sbGVjdGlvbiBvZiBjb2x1bW5zIGFuZCB2YWx1ZShzKVxyXG4gICAqIEBwYXJhbSBjdWJlIG5hbWVcclxuICAgKiBAcGFyYW0gY29sdW1uc1xyXG4gICAqIEBwYXJhbSBvcHRpb25zXHJcbiAgICovXHJcbiAgdGFibGUoY3ViZTogc3RyaW5nLCBjb2x1bW5zOiBzdHJpbmdbXSwgb3B0aW9ucz86IHtcclxuICAgIC8qKiBheGVzICovXHJcbiAgICBmaWx0ZXJzPzogQXhlc01hcDtcclxuICAgIC8qKiBpbmNsdWRlIG9uZSBvciBtb3JlIGluZGV4IHZhbHVlcyAqL1xyXG4gICAgaW5kaWNlcz86IHN0cmluZyB8IHN0cmluZ1tdO1xyXG4gICAgc2NvcGU/OiBTY29wZVR5cGUsXHJcbiAgfSk6IE9ic2VydmFibGU8eyB2YWx1ZTogbnVtYmVyIH1bXT4ge1xyXG4gICAgaWYgKCFvcHRpb25zKSBvcHRpb25zID0ge307XHJcbiAgICBjb25zdCB7IGZpbHRlcnMsIGluZGljZXMsIHNjb3BlIH0gPSBvcHRpb25zO1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0PHsgdmFsdWU6IG51bWJlciB9W10+KGAvYXBpL2N1YmUvdGFibGUvJHtjdWJlfWAsIHtcclxuICAgICAgY29sdW1ucyxcclxuICAgICAgaW5kaWNlcyxcclxuICAgICAgZmlsdGVycyxcclxuICAgICAgc2NvcGVcclxuICAgIH0pLnBpcGUodGhpcy5fZGVjb3JhdGVUYWJsZShjdWJlLCBjb2x1bW5zKSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGluZm9ybWF0aW9uIG9uIGV4cGVjdGVkIGV4cGxvcmUgdHlwZVxyXG4gICAqIEBwYXJhbSBjdWJlIG5hbWVcclxuICAgKiBAcGFyYW0gYXhlcyBmaWx0ZXJzXHJcbiAgICogQHBhcmFtIG9wdGlvbnNcclxuICAgKi9cclxuICByZXNvbHZlKGN1YmU6IHN0cmluZywgYXhlczogeyBba2V5OiBzdHJpbmddOiBBeGlzVHlwZSB9LCBvcHRpb25zPzoge1xyXG4gICAgLyoqIHJlcGxhY2UgYmFzZSAqL1xyXG4gICAgYmFzZT86IHsgW2F4aXM6IHN0cmluZ106IChzdHJpbmcgfCBudW1iZXIpIH0gfCBBcnJheTxzdHJpbmcgfCBudW1iZXI+O1xyXG4gIH0pOiBPYnNlcnZhYmxlPEV4cGxvcmVUeXBlPiB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSB7IC4uLmF4ZXMgfSBhcyBhbnk7XHJcbiAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICBjb25zdCB7IGJhc2UgfSA9IG9wdGlvbnM7XHJcbiAgICAgIGJhc2UgJiYgdGhpcy5iYXNlKGN1YmUsIHBhcmFtcywgYmFzZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8RXhwbG9yZVR5cGU+KGAvYXBpL2N1YmUvZXhwbG9yZXR5cGUvJHtjdWJlfWAsIHsgcGFyYW1zIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBleHBsb3JlIGl0ZW1zIGJ5IGF4aXNcclxuICAgKiBAcGFyYW0gY3ViZSBuYW1lXHJcbiAgICogQHBhcmFtIGF4ZXMgZmlsdGVyc1xyXG4gICAqIEBwYXJhbSBvcHRpb25zXHJcbiAgICovXHJcbiAgZXhwbG9yZShjdWJlOiBzdHJpbmcsIGF4ZXM6IHsgW2tleTogc3RyaW5nXTogQXhpc1R5cGUgfSwgb3B0aW9ucz86IHtcclxuICAgIC8qKiByZXN0cmljdCByZXN1bHRzIHRvIHVzZXIgcGF0dGVybnMgb3IgcG9zaXRpb25zICovXHJcbiAgICBzY29wZT86IFNjb3BlVHlwZSxcclxuICAgIC8qKiByZXBsYWNlIGJhc2UgKi9cclxuICAgIGJhc2U/OiB7IFtheGlzOiBzdHJpbmddOiAoc3RyaW5nIHwgbnVtYmVyKSB9IHwgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPjtcclxuICB9KTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xyXG4gICAgY29uc3QgcGFyYW1zID0geyAuLi5heGVzIH0gYXMgYW55O1xyXG4gICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgY29uc3QgeyBiYXNlLCBzY29wZSB9ID0gb3B0aW9ucztcclxuICAgICAgYmFzZSAmJiB0aGlzLmJhc2UoY3ViZSwgcGFyYW1zLCBiYXNlKTtcclxuICAgICAgaWYgKHNjb3BlKSBwYXJhbXMuc2NvcGUgPSBzY29wZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxhbnlbXT4oXHJcbiAgICAgIGAvYXBpL2N1YmUvZXhwbG9yZS8ke2N1YmV9YCxcclxuICAgICAgeyBwYXJhbXMgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBheGVzXHJcbiAgICogQHBhcmFtIGN1YmVcclxuICAgKi9cclxuICBuYW1lT2YoYXhlczogQXhlc01hcCwgY3ViZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IGN1YmUpO1xyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZXMgPSBvcHRpb25zLmF4ZXMuZmlsdGVyKGEgPT4gaXNTdHJpbmcoYXhlc1thLm5hbWVdKSAmJlxyXG4gICAgICAvLyB2YWx1ZVxyXG4gICAgICAhQVhJU19TUEVDSUFMX0NIQVJTLnRlc3QoYXhlc1thLm5hbWVdIGFzIHN0cmluZykpLm1hcChhID0+XHJcbiAgICAgICAgdGhpcy5fdHlwZS5nZXQoYS5kYXRhVHlwZSwgYXhlc1thLm5hbWVdIGFzIHN0cmluZykpO1xyXG4gICAgcmV0dXJuIChvYnNlcnZhYmxlcy5sZW5ndGggPyBmb3JrSm9pbihvYnNlcnZhYmxlcykucGlwZShtYXAobyA9PiBvLmpvaW4oJyAnKSkpIDogb2YobnVsbCkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBleHBsb3JlIGluZGljZXMgYnkgYXhpc1xyXG4gICAqIEBwYXJhbSBjdWJlIG5hbWVcclxuICAgKiBAcGFyYW0gaW5kZXggbmFtZVxyXG4gICAqIEBwYXJhbSBheGVzIGZpbHRlcnNcclxuICAgKiBAcGFyYW0gb3B0aW9uc1xyXG4gICAqL1xyXG4gIGluZGljZXMoY3ViZTogc3RyaW5nLCBpbmRleDogc3RyaW5nLCBheGVzOiB7IFtheGlzOiBzdHJpbmddOiBBeGlzVHlwZSB9LFxyXG4gICAgb3B0aW9ucz86IHtcclxuICAgICAgLyoqIHJlc3RyaWN0IHJlc3VsdHMgdG8gdXNlciBwYXR0ZXJucyBvciBwb3NpdGlvbnMgKi9cclxuICAgICAgc2NvcGU/OiBTY29wZVR5cGVcclxuICAgICAgYmFzZT86IHsgW2F4aXM6IHN0cmluZ106IChzdHJpbmcgfCBudW1iZXIpIH0gfCBBcnJheTxzdHJpbmcgfCBudW1iZXI+O1xyXG4gICAgfSk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHsgLi4uYXhlcyB9IGFzIGFueTtcclxuICAgIGlmIChvcHRpb25zKSB7XHJcbiAgICAgIGNvbnN0IHsgYmFzZSwgc2NvcGUgfSA9IG9wdGlvbnM7XHJcbiAgICAgIGJhc2UgJiYgdGhpcy5iYXNlKGN1YmUsIHBhcmFtcywgYmFzZSk7XHJcbiAgICAgIGlmIChzY29wZSkgcGFyYW1zLnNjb3BlID0gc2NvcGU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8YW55W10+KFxyXG4gICAgICBgL2FwaS9jdWJlL2V4cGxvcmVpbmRleC8ke2N1YmV9LyR7aW5kZXh9YCwgeyBwYXJhbXMgfSkuXHJcbiAgICAgIHBpcGUodGhpcy5fZGVjb3JhdGVUYWJsZShjdWJlKSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGdldCBleHBsb3JlIGl0ZW0gYnkgYXhpcyBhbmQga2V5KHMpXHJcbiAgICogQHBhcmFtIGN1YmVcclxuICAgKiBAcGFyYW0gYXhlc1xyXG4gICAqIEBwYXJhbSBrZXlzXHJcbiAgICogQHBhcmFtIG9wdGlvbnNcclxuICAgKi9cclxuICBpdGVtKGN1YmU6IHN0cmluZywgYXhlczogeyBbYXhpczogc3RyaW5nXTogQXhpc1R5cGUgfSwga2V5czogKHN0cmluZyB8IG51bWJlcilbXSB8IHN0cmluZyB8IG51bWJlciwgb3B0aW9ucz86IHtcclxuICAgIC8qKiByZXBsYWNlIGJhc2UgKi9cclxuICAgIGJhc2U/OiB7IFtheGlzOiBzdHJpbmddOiAoc3RyaW5nIHwgbnVtYmVyKSB9IHwgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPjtcclxuICB9KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHsgLi4uYXhlcyB9IGFzIGFueTtcclxuICAgIHBhcmFtc1sna2V5J10gPSBpc0FycmF5KGtleXMpID8ga2V5c1swXSA6IGtleXM7XHJcbiAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICBjb25zdCB7IGJhc2UgfSA9IG9wdGlvbnM7XHJcbiAgICAgIGJhc2UgJiYgdGhpcy5iYXNlKGN1YmUsIHBhcmFtcywgYmFzZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQoYC9hcGkvY3ViZS9leHBsb3JlaXRlbS8ke2N1YmV9YCwgeyBwYXJhbXMgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBjdWJlIG5hbWVcclxuICAgKiBAcGFyYW0gYXhlcyBjb25kaXRpb25cclxuICAgKi9cclxuICBjb25zdHJhaW50cyhjdWJlOiBzdHJpbmcsIGF4ZXM/OiB7IFtrZXk6IHN0cmluZ106IEF4aXNUeXBlIH0sIG9wdGlvbnM/OiB7IHNvdXJjZTogJ2NvbnN0cmFpbnRzJyB8ICdjb21iaW5hdGlvbnMnIH0pOiBPYnNlcnZhYmxlPHsgW2RhdGFUeXBlOiBzdHJpbmddOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IH0+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDx7IFtkYXRhVHlwZTogc3RyaW5nXTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB9PihcclxuICAgICAgIW9wdGlvbnMgfHwgb3B0aW9ucy5zb3VyY2UgPT09ICdjb25zdHJhaW50cycgP1xyXG4gICAgICAgIGAvYXBpL2N1YmUvY29uc3RyYWludHMvJHtjdWJlfWAgOiBgL2FwaS9jdWJlL2NvbWJpbmF0aW9uc2NvbnN0cmFpbnRzLyR7Y3ViZX1gLCB7XHJcbiAgICAgIHBhcmFtczogeyAuLi5heGVzIH0gYXMgYW55XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGN1YmUgbmFtZVxyXG4gICAqIEBwYXJhbSBheGlzIG5hbWVcclxuICAgKi9cclxuICB2YWx1ZXMoY3ViZTogc3RyaW5nLCBheGlzOiBzdHJpbmcsIGRlcGVuZGVuY2llcz86IFBhcmFtTWFwKTogT2JzZXJ2YWJsZTx7IFtrZXk6IHN0cmluZ106IGFueSB9PiB7XHJcbiAgICBsZXQgY2FjaGVJZCA9IGN1YmUgKyBheGlzO1xyXG4gICAgZGVwZW5kZW5jaWVzICYmIE9iamVjdC5rZXlzKGRlcGVuZGVuY2llcykuZm9yRWFjaChrID0+IGNhY2hlSWQgKz0gayk7XHJcbiAgICByZXR1cm4gdGhpcy5fY2FjaGVPcihjYWNoZUlkLCAoKSA9PiB0aGlzLl9odHRwLmdldDx7IFtkYXRhVHlwZTogc3RyaW5nXTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB9PihcclxuICAgICAgYC9hcGkvY3ViZS9zZWdtZW50dmFsdWVzLyR7Y3ViZX0vJHtheGlzfWAsIHsgcGFyYW1zOiBkZXBlbmRlbmNpZXMgfSkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBnZXQgYXhpcyBjb21iaW5hdGlvbnNcclxuICAgKiBAcGFyYW0gY3ViZSBuYW1lXHJcbiAgICogQHBhcmFtIGF4ZXMgZmlsdGVyc1xyXG4gICAqIEBwYXJhbSBvcHRpb25zXHJcbiAgICovXHJcbiAgY29tYmluYXRpb25zKGN1YmU6IHN0cmluZywgYXhlcz86IHsgW2tleTogc3RyaW5nXTogQXhpc1R5cGUgfSwgb3B0aW9ucz86IHtcclxuICAgIC8qKiB0b3AgKi9cclxuICAgIHRha2U/OiBudW1iZXI7XHJcbiAgICAvKiogcHJvY2VzcyBpbiBiYWNrZ3JvdW5kICovXHJcbiAgICBwcm9ncmVzcz86IGJvb2xlYW47XHJcbiAgfSk6IE9ic2VydmFibGU8c3RyaW5nW11bXT4ge1xyXG4gICAgaWYgKCFvcHRpb25zKSBvcHRpb25zID0ge307XHJcbiAgICBjb25zdCB7IHRha2UsIHByb2dyZXNzIH0gPSBvcHRpb25zO1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PHN0cmluZ1tdW10+KGAvYXBpL2N1YmUvY29tYmluYXRpb25zLyR7Y3ViZX1gLCB7XHJcbiAgICAgIHBhcmFtczogeyAuLi5heGVzLCB0YWtlIH0gYXMgYW55LFxyXG4gICAgICBoZWFkZXJzOiBwcm9ncmVzcyA9PT0gZmFsc2UgPyB7ICduby1wcm9ncmVzcyc6ICd0cnVlJyB9IDoge31cclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gdmFsdWVcclxuICAgKiBAcGFyYW0gb3B0aW9uc1xyXG4gICAqL1xyXG4gIHNlYXJjaCh2YWx1ZTogc3RyaW5nLCBvcHRpb25zOiB7IHRha2U/OiBudW1iZXIgfSkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PHsgY3ViZTogc3RyaW5nLCBheGlzOiBzdHJpbmcsIGtleTogYW55LCB2YWx1ZTogYW55IH1bXT4oJy9hcGkvY3ViZS9zZWFyY2gnLCB7XHJcbiAgICAgIHBhcmFtczogeyB2YWx1ZSwgLi4ub3B0aW9ucyB9IGFzIGFueSxcclxuICAgICAgaGVhZGVyczogeyAnbm8tcHJvZ3Jlc3MnOiAndHJ1ZScgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGdldCBzZWdtZW50c1xyXG4gICAqIEBwYXJhbSBjdWJlXHJcbiAgICovXHJcbiAgc2VnbWVudHMoY3ViZTogc3RyaW5nLCB0eXBlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNlZ21lbnRNYXA+IHtcclxuICAgIHJldHVybiB0aGlzLl9jYWNoZU9yKGAke3R5cGV9LXNlZ21lbnRzYCwgKCkgPT4gdGhpcy5faHR0cC5nZXQ8U2VnbWVudE1hcD4oYC9hcGkvY3ViZS9zZWdtZW50cy8ke2N1YmV9P3R5cGU9JHt0eXBlfWApKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogZ2V0IHVzZXIgcGF0dGVybnNcclxuICAgKiBAcGFyYW0gY3ViZVxyXG4gICAqL1xyXG4gIHBhdHRlcm5zKGN1YmU6IHN0cmluZyk6IE9ic2VydmFibGU8UGF0dGVybltdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fY2FjaGVPcihgJHtjdWJlfS1wYXR0ZXJuc2AsICgpID0+IHRoaXMuX2h0dHAuZ2V0PFBhdHRlcm5bXT4oYC9hcGkvY3ViZS9wYXR0ZXJucy8ke2N1YmV9YCkpO1xyXG4gIH1cclxuICAvKiogZ2V0IGN1cnJlbmNpZXMgKi9cclxuICBjdXJyZW5jaWVzKCk6IE9ic2VydmFibGU8Q3VycmVuY3lbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NhY2hlT3IoJ2N1cnJlbmNpZXMnLCAoKSA9PiB0aGlzLl9odHRwLmdldDxDdXJyZW5jeVtdPignYXBpL2N1YmUvY3VycmVuY2llcycpKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogZ2V0IGV4Y2hhbmdlIHJhdGVcclxuICAgKiBAcGFyYW0gY3VycmVuY3lDb2RlXHJcbiAgICogQHBhcmFtIGRhdGVcclxuICAgKi9cclxuICBleGNoYW5nZVJhdGUoY3VycmVuY3lDb2RlOiBzdHJpbmcsIGRhdGU/OiBEYXRlKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgIGlmICh0aGlzLmN1cnJlbmN5Q29kZSA9PT0gY3VycmVuY3lDb2RlKVxyXG4gICAgICByZXR1cm4gb2YoMSk7XHJcbiAgICBsZXQga2V5ID0gY3VycmVuY3lDb2RlO1xyXG4gICAgaWYgKGRhdGUpIGtleSArPSBkYXRlLnRvSlNPTigpO1xyXG4gICAgcmV0dXJuIHRoaXMuX2NhY2hlT3Ioa2V5LCAoKSA9PiB0aGlzLl9odHRwLmdldDxudW1iZXI+KGBhcGkvY3ViZS9leGNoYW5nZVJhdGUvJHtjdXJyZW5jeUNvZGV9YCwge1xyXG4gICAgICBwYXJhbXM6IGRhdGUgPyB7IGRhdGU6IGRhdGUudG9KU09OKCkgfSA6IG51bGwsXHJcbiAgICAgIGhlYWRlcnM6IHsgJ25vLXByb2dyZXNzJzogJ3RydWUnIH1cclxuICAgIH0pKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgKiByZXBsYWNlcyAqIG9yICMgd2l0aCBvcmlnaW4gYXhpcyBhdCBjaGFyIHBsYWNlXHJcbiAgKiBAcGFyYW0gY3ViZSBuYW1lXHJcbiAgKiBAcGFyYW0gYXhlcyBtYXBcclxuICAqIEBwYXJhbSBiYXNlIG9yaWdpblxyXG4gICovXHJcbiAgcHVibGljIGJhc2UoY3ViZTogc3RyaW5nLCBheGVzOiBBeGVzTWFwLFxyXG4gICAgYmFzZTogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPiB8IEF4ZXNNYXApOiB2b2lkIHtcclxuICAgIGNvbnN0IGNjdWJlID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IGN1YmUpO1xyXG4gICAgY2N1YmUuYXhlcy5mb3JFYWNoKChhLCBpKSA9PiB7XHJcbiAgICAgIGNvbnN0IHZhbCA9IGF4ZXNbYS5uYW1lXTtcclxuICAgICAgaWYgKHZhbCAmJiBpc1N0cmluZyh2YWwpKSB7XHJcbiAgICAgICAgY29uc3QgYXhpc2Jhc2UgPSBpc0FycmF5KGJhc2UpID8gYmFzZVtpXSA6IGJhc2VbYS5uYW1lXTtcclxuICAgICAgICBpZiAodmFsID09PSBBWElTX01BUF9BU19JUylcclxuICAgICAgICAgIGF4ZXNbYS5uYW1lXSA9IGF4aXNiYXNlO1xyXG4gICAgICAgIGVsc2UgaWYgKHZhbC5pbmRleE9mKEFYSVNfTUFQX0NIQVIpID4gLTEpIHtcclxuICAgICAgICAgIGxldCBheGlzID0gJyc7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHZhbC5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgY2hhciA9IHZhbC5jaGFyQXQoaik7XHJcbiAgICAgICAgICAgIGF4aXMgKz0gY2hhciA9PT0gQVhJU19NQVBfQ0hBUiAmJiAoYXhpc2Jhc2UgYXMgc3RyaW5nKS5sZW5ndGggPiBqID9cclxuICAgICAgICAgICAgICAoYXhpc2Jhc2UgYXMgc3RyaW5nKS5jaGFyQXQoaikgOiBjaGFyO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgYXhlc1thLm5hbWVdID0gYXhpcztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBhZGRzIHZhbHVlcyB0byBzb3VyY2Uga2V5c1xyXG4gICAqIEBwYXJhbSBjdWJlXHJcbiAgICogQHBhcmFtIHhBeGlzXHJcbiAgICogQHBhcmFtIHNlcmllc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgX2RlY29yYXRlKGN1YmU6IHN0cmluZyxcclxuICAgIHhBeGlzOiBzdHJpbmdbXSxcclxuICAgIHNlcmllczogc3RyaW5nW10pOiAoc291cmNlOiBPYnNlcnZhYmxlPFNlcmllc1tdPikgPT4gT2JzZXJ2YWJsZTxTZXJpZXNbXT4ge1xyXG4gICAgcmV0dXJuIChzb3VyY2U6IE9ic2VydmFibGU8U2VyaWVzW10+KSA9PiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlID0+IHtcclxuICAgICAgc291cmNlLnN1YnNjcmliZShyID0+IHtcclxuICAgICAgICBjb25zdCBvYnNlcnZhYmxlczogT2JzZXJ2YWJsZTxhbnk+W10gPSBbXTtcclxuICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IGN1YmUpO1xyXG4gICAgICAgIGNvbnN0IGF4aXNUeXBlTWFwID0ge307XHJcbiAgICAgICAgb3B0aW9ucy5heGVzLmZvckVhY2goeCA9PiBheGlzVHlwZU1hcFt4Lm5hbWVdID0geC5kYXRhVHlwZSk7XHJcbiAgICAgICAgaWYgKCFyLmxlbmd0aCkge1xyXG4gICAgICAgICAgb2JzZXJ2ZS5uZXh0KHIpO1xyXG4gICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBiYXNlID0gclswXS5wb2ludHM7XHJcbiAgICAgICAgci5mb3JFYWNoKChzLCBpKSA9PiB7XHJcbiAgICAgICAgICBzLnBvaW50cy5mb3JFYWNoKHAgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXAueCkgcmV0dXJuO1xyXG4gICAgICAgICAgICBjb25zdCBwb2JzZXJ2YWJsZSA9IGZvcmtKb2luKHAueC5zcGxpdChBWEVTX0NPREVfRElWSURFUikubWFwKChrLCBqKSA9PlxyXG4gICAgICAgICAgICAgIHRoaXMuX3R5cGUuZ2V0KGF4aXNUeXBlTWFwW3hBeGlzW2pdXSwgaykpKS5cclxuICAgICAgICAgICAgICBwaXBlKHRhcChvID0+IHAubmFtZSA9IG8uam9pbihBWEVTX0xBQkVMX0RJVklERVIpKSk7XHJcbiAgICAgICAgICAgIG9ic2VydmFibGVzLnB1c2gocG9ic2VydmFibGUpO1xyXG4gICAgICAgICAgICBpZiAoaSA+IDApIHtcclxuICAgICAgICAgICAgICBsZXQgaiA9IDAsIG1pc3NpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHdoaWxlIChqIDwgYmFzZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIGxldCB4ID0gYmFzZVtqXS54O1xyXG4gICAgICAgICAgICAgICAgaWYgKHAueCA9PT0geCkge1xyXG4gICAgICAgICAgICAgICAgICBtaXNzaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHAueCA8IHgpXHJcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgaisrO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAobWlzc2luZykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY2xvbmUgPSB7IHg6IHAueCwgeTogMCB9IGFzIFBvaW50O1xyXG4gICAgICAgICAgICAgICAgYmFzZS5zcGxpY2UoaiwgMCwgY2xvbmUpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY29ic2VydmFibGUgPSBmb3JrSm9pbihwLnguc3BsaXQoQVhFU19DT0RFX0RJVklERVIpLm1hcCgoaywgaikgPT5cclxuICAgICAgICAgICAgICAgICAgdGhpcy5fdHlwZS5nZXQoYXhpc1R5cGVNYXBbeEF4aXNbal1dLCBrKSkpLlxyXG4gICAgICAgICAgICAgICAgICBwaXBlKHRhcChvID0+IGNsb25lLm5hbWUgPSBvLmpvaW4oQVhFU19MQUJFTF9ESVZJREVSKSkpO1xyXG4gICAgICAgICAgICAgICAgb2JzZXJ2YWJsZXMucHVzaChjb2JzZXJ2YWJsZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGlmIChzLmluZGV4KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gb3B0aW9ucy5pbmRpY2VzLmZpbmQoaSA9PiBpLm5hbWUgPT09IHMuaW5kZXgpO1xyXG4gICAgICAgICAgICBzLnRpdGxlID0gaW5kZXgudGl0bGU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIGlmIChzLm5hbWUpIHtcclxuICAgICAgICAgICAgY29uc3Qgc29ic2VydmFibGUgPSBmb3JrSm9pbihzLm5hbWUuc3BsaXQoQVhFU19DT0RFX0RJVklERVIpLm1hcCgoaywgaSkgPT5cclxuICAgICAgICAgICAgICB0aGlzLl90eXBlLmdldChheGlzVHlwZU1hcFtzZXJpZXNbaV1dLCBrKVxyXG4gICAgICAgICAgICApKS5waXBlKHRhcCh2ID0+IHMudGl0bGUgPSB2LmpvaW4oQVhFU19MQUJFTF9ESVZJREVSKSkpO1xyXG4gICAgICAgICAgICBvYnNlcnZhYmxlcy5wdXNoKHNvYnNlcnZhYmxlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAob2JzZXJ2YWJsZXMubGVuZ3RoKVxyXG4gICAgICAgICAgZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIG9ic2VydmUubmV4dChyKTtcclxuICAgICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgfSwgZSA9PiBvYnNlcnZlLmVycm9yKGUpKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIG9ic2VydmUubmV4dChyKTtcclxuICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIGUgPT4gb2JzZXJ2ZS5lcnJvcihlKSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogYWRkcyB2YWx1ZXMgdG8gc291cmNlIGtleXNcclxuICAgKiBAcGFyYW0gY3ViZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2RlY29yYXRlVGFibGU8VD4oY3ViZTogc3RyaW5nLCBjb2x1bW5zPzogc3RyaW5nW10pOiAoc291cmNlOiBPYnNlcnZhYmxlPFRbXT4pID0+IE9ic2VydmFibGU8VFtdPiB7XHJcbiAgICBjb25zdCBjY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSBjdWJlKSxcclxuICAgICAgYXhlcyA9IGNjdWJlLmF4ZXMuZmlsdGVyKGEgPT4gIWNvbHVtbnMgfHwgY29sdW1ucy5pbmRleE9mKGEubmFtZSkgPiAtMSk7XHJcbiAgICByZXR1cm4gKHNvdXJjZSkgPT4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZSA9PiB7XHJcbiAgICAgIHNvdXJjZS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgICAgY29uc3Qgb2JzZXJ2YWJsZXM6IE9ic2VydmFibGU8YW55PltdID0gW107XHJcbiAgICAgICAgci5mb3JFYWNoKHJvdyA9PlxyXG4gICAgICAgICAgYXhlcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB7IG5hbWUsIGRhdGFUeXBlIH0gPSBhLCB2YWx1ZSA9IHJvd1tuYW1lXTtcclxuICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAvLyBrZWVwIGtleVxyXG4gICAgICAgICAgICAgIHJvd1snXycgKyBuYW1lXSA9IHZhbHVlO1xyXG4gICAgICAgICAgICAgIGNvbnN0IG9ic2VydmFibGUgPSB0aGlzLl90eXBlLmdldChkYXRhVHlwZSwgdmFsdWUpLnBpcGUodGFwKHYgPT5cclxuICAgICAgICAgICAgICAgIHJvd1tuYW1lXSA9IHYgfHwgdmFsdWUpKTtcclxuICAgICAgICAgICAgICBvYnNlcnZhYmxlcy5wdXNoKG9ic2VydmFibGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KSk7XHJcbiAgICAgICAgaWYgKG9ic2VydmFibGVzLmxlbmd0aClcclxuICAgICAgICAgIGZvcmtKb2luKG9ic2VydmFibGVzKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICBvYnNlcnZlLm5leHQocik7XHJcbiAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgIH0sIGUgPT4gb2JzZXJ2ZS5lcnJvcihlKSk7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBvYnNlcnZlLm5leHQoW10pO1xyXG4gICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgZSA9PiBvYnNlcnZlLmVycm9yKGUpKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHByb2dyZXNzKHRpbWUgPSAyMDApOiAoc291cmNlOiBPYnNlcnZhYmxlPGFueT4pID0+IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gIHJldHVybiBzb3VyY2UgPT4gc291cmNlLnBpcGUoXHJcbiAgICB0YXAoKSxcclxuICAgIG1hcCgoKSA9PiBmYWxzZSkpXHJcbn1cclxuLyoqIG1vZGVsaXplIGN1YmUgcmVzdWx0cyBhcyBuZXN0ZWQgbWFwcyAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbW9kZWxpemUoKTogKHNvdXJjZTogT2JzZXJ2YWJsZTxTZXJpZXNbXT4pID0+IE9ic2VydmFibGU8e1xyXG4gIFtrZXk6IHN0cmluZ106IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH07XHJcbn0+IHtcclxuICBjb25zdCBkYXRhID0ge307XHJcbiAgcmV0dXJuIChzb3VyY2U6IE9ic2VydmFibGU8U2VyaWVzW10+KSA9PiBzb3VyY2UucGlwZShtYXAociA9PiB7XHJcbiAgICByLmZvckVhY2gocyA9PiB7XHJcbiAgICAgIGNvbnN0IHJvdyA9IGRhdGFbcy5pbmRleCB8fCBzLm5hbWVdID0ge307XHJcbiAgICAgIHMucG9pbnRzLmZvckVhY2gocCA9PiByb3dbcC54XSA9IHAueSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH0pKTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFeHBsb3JlVHlwZSB7XHJcbiAgY29sdW1uczogRmllbGRJbmZvW107XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgZmllbGRzPzogRmllbGRJbmZvW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTZXJpZXMge1xyXG4gIHBvaW50czogUG9pbnRbXTtcclxuICBuYW1lPzogc3RyaW5nO1xyXG4gIGluZGV4Pzogc3RyaW5nO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgUG9pbnQge1xyXG4gIHg6IHN0cmluZztcclxuICB5OiBudW1iZXI7XHJcbiAgbmFtZT86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEN1cnJlbmN5IHsgY29kZTogc3RyaW5nOyBuYW1lOiBzdHJpbmc7IHN5bWJvbDogc3RyaW5nIH1cclxuXHJcbmV4cG9ydCB0eXBlIFNlZ21lbnRNYXAgPSB7IFtjb2RlOiBzdHJpbmddOiBzdHJpbmcgfTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGF0dGVybiB7IHRpdGxlOiBzdHJpbmc7IGF4ZXM6IEF4ZXNNYXAgfVxyXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjbGFyYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL2RlY2xhcmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXhlc01hcCwgRGltZW50aW9ucyB9IGZyb20gJy4uL2NvcmUvbW9kZWxzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXhpc0NsaWNrRXZlbnQge1xyXG4gIGF4ZXM6IEF4ZXNNYXA7XHJcbiAgLyoqIGluZGV4IG5hbWUgKi9cclxuICBpbmRleD86IHN0cmluZztcclxufVxyXG4vKiogKi9cclxuZXhwb3J0IGludGVyZmFjZSBDdWJlVmlld2VyQ29tcG9uZW50IGV4dGVuZHMgT25DaGFuZ2VzIHtcclxuICBleHBvcnRUb0V4Y2VsKHRpdGxlOiBzdHJpbmcpO1xyXG4gIGV4ZWN1dGUoKTtcclxuICByZXNpemUoKTtcclxuICBleHBsb3JlPzogRXZlbnRFbWl0dGVyPEF4aXNDbGlja0V2ZW50PjtcclxuICBsb2FkaW5nOiBib29sZWFuO1xyXG4gIGxvYWRpbmdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcclxuICBoZWlnaHQ6IHN0cmluZyB8IG51bWJlcjtcclxuICB3aWR0aD86IHN0cmluZyB8IG51bWJlcjtcclxuICBjdWJlOiBzdHJpbmc7XHJcbiAgeEF4aXM6IHN0cmluZ1tdIHwgc3RyaW5nO1xyXG4gIHNlcmllcz86IHN0cmluZ1tdIHwgc3RyaW5nO1xyXG4gIGluZGljZXM/OiBzdHJpbmdbXSB8IHN0cmluZztcclxuICBmaWx0ZXJzPzogQXhlc01hcDtcclxufVxyXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjbGFyYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL2RlY2xhcmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXhlc01hcCB9IGZyb20gJy4uL2NvcmUvbW9kZWxzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXhpc0NsaWNrRXZlbnQge1xyXG4gIGF4ZXM6IEF4ZXNNYXA7XHJcbiAgLyoqIGluZGV4IG5hbWUgKi9cclxuICBpbmRleD86IHN0cmluZztcclxufVxyXG4vKiogKi9cclxuZXhwb3J0IGludGVyZmFjZSBDdWJlVmlld2VyQ29tcG9uZW50IGV4dGVuZHMgT25DaGFuZ2VzIHtcclxuICBleHBvcnRUb0V4Y2VsKHRpdGxlOiBzdHJpbmcpO1xyXG4gIGV4ZWN1dGUoKTtcclxuICByZXNpemUoKTtcclxuICBleHBsb3JlPzogRXZlbnRFbWl0dGVyPEF4aXNDbGlja0V2ZW50PjtcclxuICBsb2FkaW5nOiBib29sZWFuO1xyXG4gIGxvYWRpbmdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcclxuICBoZWlnaHQ6IHN0cmluZyB8IG51bWJlcjtcclxuICB3aWR0aD86IHN0cmluZyB8IG51bWJlcjtcclxuICBjdWJlOiBzdHJpbmc7XHJcbiAgeEF4aXM6IHN0cmluZ1tdIHwgc3RyaW5nO1xyXG4gIHNlcmllcz86IHN0cmluZ1tdIHwgc3RyaW5nO1xyXG4gIGluZGljZXM/OiBzdHJpbmdbXSB8IHN0cmluZztcclxuICBmaWx0ZXJzPzogQXhlc01hcDtcclxufVxyXG4iXX0=
@@ -124,4 +124,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
124
124
  type: ViewChild,
125
125
  args: [CubeMatrixComponent, { static: true }]
126
126
  }] } });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0cml4LmJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2N1YmUvbWF0cml4L21hdHJpeC5iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBR2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBd0IsTUFBTSxpQkFBaUIsQ0FBQztBQUUxRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFlLE1BQU0sbUJBQW1CLENBQUM7Ozs7O0FBR3JFLE1BQU0sT0FBZ0IsY0FBYztJQWlFbEMsWUFDWSxRQUFxQixFQUN2QixHQUFzQixFQUNwQixRQUF3QjtRQUZ4QixhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3ZCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3BCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBNUMzQixZQUFPLEdBQW9FLEVBQUUsQ0FBQztRQUN2RixjQUFjO1FBQ0wsV0FBTSxHQUFZLEVBQUUsQ0FBQztJQTBDVSxDQUFDO0lBN0R6QyxJQUFXLFlBQVksQ0FBQyxLQUFjO1FBQ3BDLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFDRCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQVcsSUFBSSxDQUFDLEtBQWM7UUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLE9BQU8s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RCxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDOzsyR0F2SW1CLGNBQWM7K0ZBQWQsY0FBYyxpRUFDdkIsbUJBQW1COzJGQURWLGNBQWM7a0JBRG5DLFNBQVM7K0pBRTBDLEtBQUs7c0JBQXRELFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZmlsdGVyLCBmaXJzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YXNvdXJjZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2RhdGFzb3VyY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEFDQ09VTlRfREVMSU1JVEVSLCBDdWJlU2VydmljZSwgUGF0dGVybiB9IGZyb20gJy4uL2N1YmUuc2VydmljZSc7XHJcbmltcG9ydCB7IEF4ZXNNYXAsIEN1YmUsIEN1YmVBeGlzIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBpc0FycmF5IH0gZnJvbSAnLi4vLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBDdWJlTWF0cml4Q29tcG9uZW50LCBTdW1TZXR0aW5ncyB9IGZyb20gJy4vdGFibGUuY29tcG9uZW50JztcclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ3ViZU1hdHJpeEJhc2Uge1xyXG4gIEBWaWV3Q2hpbGQoQ3ViZU1hdHJpeENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSkgdGFibGU6IEN1YmVNYXRyaXhDb21wb25lbnQ7XHJcbiAgc2VyaWVzVG90YWxMYWJlbDogc3RyaW5nO1xyXG4gIHhBeGlzVG90YWxMYWJlbDogc3RyaW5nO1xyXG4gIGxvYWRpbmc6IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBfYXhlczogQXhlc01hcDtcclxuICBwcml2YXRlIF9vcmlnaW5hbEF4ZXM6IEF4ZXNNYXA7XHJcbiAgcHVibGljIHNldCBvcmlnaW5hbEF4ZXModmFsdWU6IEF4ZXNNYXApIHtcclxuICAgIHRoaXMuX29yaWdpbmFsQXhlcyA9IHsgLi4udmFsdWUgfTtcclxuICB9XHJcbiAgcHVibGljIGdldCBvcmlnaW5hbEF4ZXMoKTogQXhlc01hcCB7XHJcbiAgICByZXR1cm4gdGhpcy5fb3JpZ2luYWxBeGVzO1xyXG4gIH1cclxuICBwdWJsaWMgZ2V0IGF4ZXMoKTogQXhlc01hcCB7XHJcbiAgICByZXR1cm4gdGhpcy5fYXhlcztcclxuICB9XHJcbiAgcHVibGljIHNldCBheGVzKHZhbHVlOiBBeGVzTWFwKSB7XHJcbiAgICB0aGlzLl9heGVzID0gdmFsdWU7XHJcbiAgICB0aGlzLmZpbHRlcnM/LmZvckVhY2goZiA9PlxyXG4gICAgICB0aGlzLnZhbHVlc1tmLm5hbWVdID0gdmFsdWVbZi5uYW1lXVxyXG4gICAgKTtcclxuICB9XHJcbiAgdGl0bGU6IHN0cmluZztcclxuXHJcbiAgcmVhZG9ubHkgc291cmNlczogeyBbYXhpczogc3RyaW5nXTogT2JzZXJ2YWJsZTx7IGtleTogc3RyaW5nOyB2YWx1ZTogYW55OyB9W10+OyB9ID0ge307XHJcbiAgLyoqIGZpbHRlcnMgKi9cclxuICByZWFkb25seSB2YWx1ZXM6IEF4ZXNNYXAgPSB7fTtcclxuICBmaWx0ZXJzOiBDdWJlQXhpc1tdO1xyXG4gIHBhdHRlcm5zOiBQYXR0ZXJuW107XHJcbiAgcGF0dGVybjogUGF0dGVybjtcclxuICBpbmRpY2VzPzogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgeEF4aXM6IHN0cmluZztcclxuICBzZXJpZXM6IHN0cmluZztcclxuICBwcml2YXRlIF9jdWJlOiBzdHJpbmc7XHJcbiAgcHVibGljIGdldCBjdWJlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fY3ViZTtcclxuICB9XHJcbiAgcHVibGljIHNldCBjdWJlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSB2YWx1ZSk7XHJcbiAgICBpZiAoIXRoaXMuY29uZmlndXJhdGlvbikge1xyXG4gICAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuY3ViZXNbMF07XHJcbiAgICAgIHZhbHVlID0gdGhpcy5jb25maWd1cmF0aW9uLm5hbWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9zZXJ2aWNlLnBhdHRlcm5zKHZhbHVlKS5cclxuICAgICAgc3Vic2NyaWJlKHAgPT5cclxuICAgICAgICB0aGlzLnBhdHRlcm5zID0gcCk7XHJcbiAgICB0aGlzLl9jdWJlID0gdmFsdWU7XHJcbiAgfVxyXG4gIHN1bT86IFN1bVNldHRpbmdzIHwgU3VtU2V0dGluZ3NbXTtcclxuICAvKiogb25lIG9yIG1vcmUgYXhpcyAqL1xyXG4gIHByb3RlY3RlZCBhZ2dyZWdhdGlvbj86IHN0cmluZ1tdIHwgc3RyaW5nO1xyXG4gIHByaXZhdGUgX3NlbGVjdGlvbjogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgcHJvdGVjdGVkIGdldCBzZWxlY3Rpb24oKTogc3RyaW5nIHwgc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGlvbjtcclxuICB9XHJcbiAgcHJvdGVjdGVkIHNldCBzZWxlY3Rpb24odmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKSB7XHJcbiAgICAvKiogb25lIG9yIG1vcmUgYXhpcyAqL1xyXG4gICAgdGhpcy5maWx0ZXJzID0gdGhpcy5jb25maWd1cmF0aW9uLmF4ZXMuZmlsdGVyKGEgPT4gaXNBcnJheSh2YWx1ZSkgP1xyXG4gICAgICB2YWx1ZS5pbmRleE9mKGEubmFtZSkgPiAtMSA6XHJcbiAgICAgIGEubmFtZSA9PT0gdmFsdWUpO1xyXG5cclxuICAgIHRoaXMuZmlsdGVycy5mb3JFYWNoKGYgPT4gdGhpcy5zb3VyY2VzW2YubmFtZV0gPSB0aGlzLl9kcy5hbGwoZi5kYXRhVHlwZSkpO1xyXG4gICAgdGhpcy5fc2VsZWN0aW9uID0gdmFsdWU7XHJcbiAgfVxyXG4gIGNvbmZpZ3VyYXRpb246IEN1YmU7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgX3NlcnZpY2U6IEN1YmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZHM6IERhdGFzb3VyY2VTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSkgeyB9XHJcbiAgcHJpdmF0ZSBfcG9wdWxhdGUoKSB7XHJcbiAgICBjb25zdCBheGVzID0geyAuLi50aGlzLl9vcmlnaW5hbEF4ZXMgfTtcclxuICAgIGlmICh0aGlzLmFnZ3JlZ2F0aW9uKVxyXG4gICAgICAoaXNBcnJheSh0aGlzLmFnZ3JlZ2F0aW9uKSA/IHRoaXMuYWdncmVnYXRpb24gOiBbdGhpcy5hZ2dyZWdhdGlvbiBhcyBzdHJpbmddKS5cclxuICAgICAgICBmb3JFYWNoKGcgPT4ge1xyXG4gICAgICAgICAgaWYgKGF4ZXNbZ10pXHJcbiAgICAgICAgICAgIGRlbGV0ZSBheGVzW2ddO1xyXG4gICAgICAgIH0pO1xyXG4gICAgdGhpcy5heGVzID0gYXhlcztcclxuICAgIHRoaXMuX2xpc3RlbigpLnRoZW4oKCkgPT4ge1xyXG4gICAgICBjb25zdCBjb21iaW5hdGlvbiA9IHRoaXMuX2NvbWJpbmUoYXhlcyk7XHJcbiAgICAgIHRoaXMudGl0bGUgPSBjb21iaW5hdGlvbi5qb2luKEFDQ09VTlRfREVMSU1JVEVSKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSBheGVzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfY29tYmluZShheGVzOiBBeGVzTWFwKTogKHN0cmluZyB8IG51bWJlcilbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uLmF4ZXMuXHJcbiAgICAgIGZpbHRlcihhID0+IGEuY29tYmluYXRpb24pLlxyXG4gICAgICBtYXAoYSA9PiBheGVzW2EubmFtZV0gYXMgc3RyaW5nIHwgbnVtYmVyKTtcclxuICB9XHJcbiAgLyoqXHJcbiAqXHJcbiAqIEBwYXJhbSB2YWx1ZVxyXG4gKi9cclxuICBmaWx0ZXIobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyLCB0aXRsZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBheGVzID0geyAuLi50aGlzLmF4ZXMgfTtcclxuICAgIGF4ZXNbbmFtZV0gPSB2YWx1ZTtcclxuICAgIHRoaXMub25GaWx0ZXIoYXhlcyk7XHJcbiAgICB0aGlzLl9saXN0ZW4oKS50aGVuKCgpID0+XHJcbiAgICAgIHRoaXMudmFsdWVzW25hbWVdID0gdmFsdWVcclxuICAgICk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2xpc3RlbigpIHtcclxuICAgIHJldHVybiB0aGlzLnRhYmxlLmxvYWRpbmdDaGFuZ2UucGlwZShmaWx0ZXIob2sgPT4gIW9rKSwgZmlyc3QoKSkudG9Qcm9taXNlKClcclxuICB9XHJcblxyXG4gIG9uRmlsdGVyKGF4ZXM6IEF4ZXNNYXApIHtcclxuICAgIHRoaXMuYXhlcyA9IGF4ZXM7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAgKlxyXG4gICAgKiBAcGFyYW0gcGF0dGVyblxyXG4gICAgKi9cclxuICBhZ2dyZWdhdGUocGF0dGVybjogUGF0dGVybikge1xyXG4gICAgY29uc3QgYXhlcyA9IHsgLi4ucGF0dGVybi5heGVzIH07XHJcbiAgICB0aGlzLl9zZXJ2aWNlLmJhc2UodGhpcy5jdWJlLCBheGVzLCB0aGlzLm9yaWdpbmFsQXhlcyk7XHJcbiAgICB0aGlzLmF4ZXMgPSB7IC4uLmF4ZXMsIC4uLnRoaXMudmFsdWVzIH07XHJcbiAgICB0aGlzLl9saXN0ZW4oKS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy50aXRsZSA9IHBhdHRlcm4udGl0bGU7XHJcbiAgICAgIHRoaXMucGF0dGVybiA9IHBhdHRlcm47XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHJlc2V0KCkge1xyXG4gICAgdGhpcy5fcG9wdWxhdGUoKTtcclxuICAgIHRoaXMuX2xpc3RlbigpLnRoZW4oKCkgPT4ge1xyXG4gICAgICB0aGlzLnBhdHRlcm4gPSBudWxsO1xyXG4gICAgICB0aGlzLnRpdGxlID0gbnVsbDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVmcmVzaCgpIHtcclxuICAgIHRoaXMuYXhlcyA9IHsgLi4udGhpcy5heGVzIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0cml4LmJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2N1YmUvbWF0cml4L21hdHJpeC5iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBR2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBd0IsTUFBTSxpQkFBaUIsQ0FBQztBQUUxRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFlLE1BQU0sbUJBQW1CLENBQUM7Ozs7O0FBR3JFLE1BQU0sT0FBZ0IsY0FBYztJQW1FbEMsWUFDWSxRQUFxQixFQUN2QixHQUFzQixFQUNwQixRQUF3QjtRQUZ4QixhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3ZCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3BCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBNUMzQixZQUFPLEdBQW9FLEVBQUUsQ0FBQztRQUN2RixjQUFjO1FBQ0wsV0FBTSxHQUFZLEVBQUUsQ0FBQztJQTBDVSxDQUFDO0lBN0R6QyxJQUFXLFlBQVksQ0FBQyxLQUFjO1FBQ3BDLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFDRCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQVcsSUFBSSxDQUFDLEtBQWM7UUFDNUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLE9BQU8s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RCxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQzNCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDOzsyR0F6SW1CLGNBQWM7K0ZBQWQsY0FBYyxpRUFDdkIsbUJBQW1COzJGQURWLGNBQWM7a0JBRG5DLFNBQVM7K0pBRTBDLEtBQUs7c0JBQXRELFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZmlsdGVyLCBmaXJzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YXNvdXJjZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2RhdGFzb3VyY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEFDQ09VTlRfREVMSU1JVEVSLCBDdWJlU2VydmljZSwgUGF0dGVybiB9IGZyb20gJy4uL2N1YmUuc2VydmljZSc7XHJcbmltcG9ydCB7IEF4ZXNNYXAsIEN1YmUsIEN1YmVBeGlzIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBpc0FycmF5IH0gZnJvbSAnLi4vLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBDdWJlTWF0cml4Q29tcG9uZW50LCBTdW1TZXR0aW5ncyB9IGZyb20gJy4vdGFibGUuY29tcG9uZW50JztcclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ3ViZU1hdHJpeEJhc2Uge1xyXG4gIEBWaWV3Q2hpbGQoQ3ViZU1hdHJpeENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSkgdGFibGU6IEN1YmVNYXRyaXhDb21wb25lbnQ7XHJcbiAgc2VyaWVzVG90YWxMYWJlbDogc3RyaW5nO1xyXG4gIHhBeGlzVG90YWxMYWJlbDogc3RyaW5nO1xyXG4gIGluZGV4QXQ/OiAnc2VyaWVzJyB8ICd4QXhpcyc7XHJcbiAgcGxhY2VBdD86ICdsZWFkaW5nJyB8ICd0cmFpbGluZyc7XHJcbiAgbG9hZGluZzogYm9vbGVhbjtcclxuICBwcml2YXRlIF9heGVzOiBBeGVzTWFwO1xyXG4gIHByaXZhdGUgX29yaWdpbmFsQXhlczogQXhlc01hcDtcclxuICBwdWJsaWMgc2V0IG9yaWdpbmFsQXhlcyh2YWx1ZTogQXhlc01hcCkge1xyXG4gICAgdGhpcy5fb3JpZ2luYWxBeGVzID0geyAuLi52YWx1ZSB9O1xyXG4gIH1cclxuICBwdWJsaWMgZ2V0IG9yaWdpbmFsQXhlcygpOiBBeGVzTWFwIHtcclxuICAgIHJldHVybiB0aGlzLl9vcmlnaW5hbEF4ZXM7XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXQgYXhlcygpOiBBeGVzTWFwIHtcclxuICAgIHJldHVybiB0aGlzLl9heGVzO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IGF4ZXModmFsdWU6IEF4ZXNNYXApIHtcclxuICAgIHRoaXMuX2F4ZXMgPSB2YWx1ZTtcclxuICAgIHRoaXMuZmlsdGVycz8uZm9yRWFjaChmID0+XHJcbiAgICAgIHRoaXMudmFsdWVzW2YubmFtZV0gPSB2YWx1ZVtmLm5hbWVdXHJcbiAgICApO1xyXG4gIH1cclxuICB0aXRsZTogc3RyaW5nO1xyXG5cclxuICByZWFkb25seSBzb3VyY2VzOiB7IFtheGlzOiBzdHJpbmddOiBPYnNlcnZhYmxlPHsga2V5OiBzdHJpbmc7IHZhbHVlOiBhbnk7IH1bXT47IH0gPSB7fTtcclxuICAvKiogZmlsdGVycyAqL1xyXG4gIHJlYWRvbmx5IHZhbHVlczogQXhlc01hcCA9IHt9O1xyXG4gIGZpbHRlcnM6IEN1YmVBeGlzW107XHJcbiAgcGF0dGVybnM6IFBhdHRlcm5bXTtcclxuICBwYXR0ZXJuOiBQYXR0ZXJuO1xyXG4gIGluZGljZXM/OiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICB4QXhpczogc3RyaW5nO1xyXG4gIHNlcmllczogc3RyaW5nO1xyXG4gIHByaXZhdGUgX2N1YmU6IHN0cmluZztcclxuICBwdWJsaWMgZ2V0IGN1YmUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9jdWJlO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IGN1YmUodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5jb25maWd1cmF0aW9uID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IHZhbHVlKTtcclxuICAgIGlmICghdGhpcy5jb25maWd1cmF0aW9uKSB7XHJcbiAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlc1swXTtcclxuICAgICAgdmFsdWUgPSB0aGlzLmNvbmZpZ3VyYXRpb24ubmFtZTtcclxuICAgIH1cclxuICAgIHRoaXMuX3NlcnZpY2UucGF0dGVybnModmFsdWUpLlxyXG4gICAgICBzdWJzY3JpYmUocCA9PlxyXG4gICAgICAgIHRoaXMucGF0dGVybnMgPSBwKTtcclxuICAgIHRoaXMuX2N1YmUgPSB2YWx1ZTtcclxuICB9XHJcbiAgc3VtPzogU3VtU2V0dGluZ3MgfCBTdW1TZXR0aW5nc1tdO1xyXG4gIC8qKiBvbmUgb3IgbW9yZSBheGlzICovXHJcbiAgcHJvdGVjdGVkIGFnZ3JlZ2F0aW9uPzogc3RyaW5nW10gfCBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfc2VsZWN0aW9uOiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICBwcm90ZWN0ZWQgZ2V0IHNlbGVjdGlvbigpOiBzdHJpbmcgfCBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0aW9uO1xyXG4gIH1cclxuICBwcm90ZWN0ZWQgc2V0IHNlbGVjdGlvbih2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pIHtcclxuICAgIC8qKiBvbmUgb3IgbW9yZSBheGlzICovXHJcbiAgICB0aGlzLmZpbHRlcnMgPSB0aGlzLmNvbmZpZ3VyYXRpb24uYXhlcy5maWx0ZXIoYSA9PiBpc0FycmF5KHZhbHVlKSA/XHJcbiAgICAgIHZhbHVlLmluZGV4T2YoYS5uYW1lKSA+IC0xIDpcclxuICAgICAgYS5uYW1lID09PSB2YWx1ZSk7XHJcblxyXG4gICAgdGhpcy5maWx0ZXJzLmZvckVhY2goZiA9PiB0aGlzLnNvdXJjZXNbZi5uYW1lXSA9IHRoaXMuX2RzLmFsbChmLmRhdGFUeXBlKSk7XHJcbiAgICB0aGlzLl9zZWxlY3Rpb24gPSB2YWx1ZTtcclxuICB9XHJcbiAgY29uZmlndXJhdGlvbjogQ3ViZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCBfc2VydmljZTogQ3ViZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kczogRGF0YXNvdXJjZVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlKSB7IH1cclxuICBwcml2YXRlIF9wb3B1bGF0ZSgpIHtcclxuICAgIGNvbnN0IGF4ZXMgPSB7IC4uLnRoaXMuX29yaWdpbmFsQXhlcyB9O1xyXG4gICAgaWYgKHRoaXMuYWdncmVnYXRpb24pXHJcbiAgICAgIChpc0FycmF5KHRoaXMuYWdncmVnYXRpb24pID8gdGhpcy5hZ2dyZWdhdGlvbiA6IFt0aGlzLmFnZ3JlZ2F0aW9uIGFzIHN0cmluZ10pLlxyXG4gICAgICAgIGZvckVhY2goZyA9PiB7XHJcbiAgICAgICAgICBpZiAoYXhlc1tnXSlcclxuICAgICAgICAgICAgZGVsZXRlIGF4ZXNbZ107XHJcbiAgICAgICAgfSk7XHJcbiAgICB0aGlzLmF4ZXMgPSBheGVzO1xyXG4gICAgdGhpcy5fbGlzdGVuKCkudGhlbigoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbWJpbmF0aW9uID0gdGhpcy5fY29tYmluZShheGVzKTtcclxuICAgICAgdGhpcy50aXRsZSA9IGNvbWJpbmF0aW9uLmpvaW4oQUNDT1VOVF9ERUxJTUlURVIpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGF4ZXNcclxuICAgKi9cclxuICBwcml2YXRlIF9jb21iaW5lKGF4ZXM6IEF4ZXNNYXApOiAoc3RyaW5nIHwgbnVtYmVyKVtdIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb24uYXhlcy5cclxuICAgICAgZmlsdGVyKGEgPT4gYS5jb21iaW5hdGlvbikuXHJcbiAgICAgIG1hcChhID0+IGF4ZXNbYS5uYW1lXSBhcyBzdHJpbmcgfCBudW1iZXIpO1xyXG4gIH1cclxuICAvKipcclxuICpcclxuICogQHBhcmFtIHZhbHVlXHJcbiAqL1xyXG4gIGZpbHRlcihuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIsIHRpdGxlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGF4ZXMgPSB7IC4uLnRoaXMuYXhlcyB9O1xyXG4gICAgYXhlc1tuYW1lXSA9IHZhbHVlO1xyXG4gICAgdGhpcy5vbkZpbHRlcihheGVzKTtcclxuICAgIHRoaXMuX2xpc3RlbigpLnRoZW4oKCkgPT5cclxuICAgICAgdGhpcy52YWx1ZXNbbmFtZV0gPSB2YWx1ZVxyXG4gICAgKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfbGlzdGVuKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGFibGUubG9hZGluZ0NoYW5nZS5waXBlKGZpbHRlcihvayA9PiAhb2spLCBmaXJzdCgpKS50b1Byb21pc2UoKVxyXG4gIH1cclxuXHJcbiAgb25GaWx0ZXIoYXhlczogQXhlc01hcCkge1xyXG4gICAgdGhpcy5heGVzID0gYXhlcztcclxuICB9XHJcbiAgLyoqXHJcbiAgICAqXHJcbiAgICAqIEBwYXJhbSBwYXR0ZXJuXHJcbiAgICAqL1xyXG4gIGFnZ3JlZ2F0ZShwYXR0ZXJuOiBQYXR0ZXJuKSB7XHJcbiAgICBjb25zdCBheGVzID0geyAuLi5wYXR0ZXJuLmF4ZXMgfTtcclxuICAgIHRoaXMuX3NlcnZpY2UuYmFzZSh0aGlzLmN1YmUsIGF4ZXMsIHRoaXMub3JpZ2luYWxBeGVzKTtcclxuICAgIHRoaXMuYXhlcyA9IHsgLi4uYXhlcywgLi4udGhpcy52YWx1ZXMgfTtcclxuICAgIHRoaXMuX2xpc3RlbigpLnRoZW4oKCkgPT4ge1xyXG4gICAgICB0aGlzLnRpdGxlID0gcGF0dGVybi50aXRsZTtcclxuICAgICAgdGhpcy5wYXR0ZXJuID0gcGF0dGVybjtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVzZXQoKSB7XHJcbiAgICB0aGlzLl9wb3B1bGF0ZSgpO1xyXG4gICAgdGhpcy5fbGlzdGVuKCkudGhlbigoKSA9PiB7XHJcbiAgICAgIHRoaXMucGF0dGVybiA9IG51bGw7XHJcbiAgICAgIHRoaXMudGl0bGUgPSBudWxsO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoKCkge1xyXG4gICAgdGhpcy5heGVzID0geyAuLi50aGlzLmF4ZXMgfTtcclxuICB9XHJcbn1cclxuIl19
@@ -46,16 +46,18 @@ export class CubeMatrixMobileComponent extends CubeMatrixBase {
46
46
  onFilter(axes) {
47
47
  this._router.navigate([], { queryParams: axes });
48
48
  }
49
- explore(axes) {
49
+ explore(evt) {
50
+ const { axes: queryParams, index } = evt;
50
51
  this._router.navigate(['cube', this.cube, 'explore'], {
51
- queryParams: axes
52
+ queryParams,
53
+ state: { index }
52
54
  });
53
55
  }
54
56
  }
55
57
  CubeMatrixMobileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: CubeMatrixMobileComponent, deps: [{ token: i1.WindowTitleService }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i3.CubeService }, { token: i4.DatasourceService }, { token: i5.SessionService }], target: i0.ɵɵFactoryTarget.Component });
56
- CubeMatrixMobileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: CubeMatrixMobileComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"table.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" *ngIf=\"patterns && patterns.length\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"aggregate(p)\">{{p.title}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n <ng-container *ngFor=\"let f of filters\">\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n <button mat-menu-item *ngFor=\"let kv of sources[f.name] | async\"\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\" [sum]=sum\r\n [filters]=\"axes\"\r\n [xAxisTotalLabel]=\"xAxisTotalLabel\"\r\n [seriesTotalLabel]=\"seriesTotalLabel\"\r\n (loadingChange)=\"loading=$event\" (explore)='explore($event)'></bizdoc-cube-matrix>\r\n", styles: [":host{min-width:450px}:host ::ng-deep .cube-table thead{position:sticky;top:0}\n"], components: [{ type: i6.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i9.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i9.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i10.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i11.CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: ["seriesTotalLabel", "xAxisTotalLabel", "cube", "xAxis", "series", "indices", "scope", "sum", "filters", "loading", "interactive"], outputs: ["explore", "loadingChange"] }], directives: [{ type: i12.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i13.MatIconAnimate, selector: "[matAnimate]" }, { type: i14.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i14.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i15.TranslatePipe, "async": i14.AsyncPipe, "typeValue": i16.TypeValuePipe } });
58
+ CubeMatrixMobileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: CubeMatrixMobileComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"table.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" *ngIf=\"patterns && patterns.length\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"aggregate(p)\">{{p.title}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n <ng-container *ngFor=\"let f of filters\">\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n <button mat-menu-item *ngFor=\"let kv of sources[f.name] | async\"\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\" [sum]=sum\r\n [filters]=\"axes\"\r\n [xAxisTotalLabel]=\"xAxisTotalLabel\"\r\n [seriesTotalLabel]=\"seriesTotalLabel\"\r\n (loadingChange)=\"loading=$event\" (explore)='explore($event)'></bizdoc-cube-matrix>\r\n", styles: [":host{min-width:450px}:host ::ng-deep .cube-table thead{position:sticky;top:0}\n"], components: [{ type: i6.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i9.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i9.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i10.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i11.CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: ["seriesTotalLabel", "xAxisTotalLabel", "cube", "xAxis", "series", "indices", "indexAt", "placeAt", "scope", "sum", "filters", "loading", "interactive"], outputs: ["explore", "loadingChange"] }], directives: [{ type: i12.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i13.MatIconAnimate, selector: "[matAnimate]" }, { type: i14.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i14.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i15.TranslatePipe, "async": i14.AsyncPipe, "typeValue": i16.TypeValuePipe } });
57
59
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: CubeMatrixMobileComponent, decorators: [{
58
60
  type: Component,
59
61
  args: [{ template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"table.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" *ngIf=\"patterns && patterns.length\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"aggregate(p)\">{{p.title}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n <ng-container *ngFor=\"let f of filters\">\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n <button mat-menu-item *ngFor=\"let kv of sources[f.name] | async\"\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\" [sum]=sum\r\n [filters]=\"axes\"\r\n [xAxisTotalLabel]=\"xAxisTotalLabel\"\r\n [seriesTotalLabel]=\"seriesTotalLabel\"\r\n (loadingChange)=\"loading=$event\" (explore)='explore($event)'></bizdoc-cube-matrix>\r\n", styles: [":host{min-width:450px}:host ::ng-deep .cube-table thead{position:sticky;top:0}\n"] }]
60
62
  }], ctorParameters: function () { return [{ type: i1.WindowTitleService }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: i3.CubeService }, { type: i4.DatasourceService }, { type: i5.SessionService }]; } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0cml4Lm1vYmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2N1YmUvbWF0cml4L21hdHJpeC5tb2JpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL21hdHJpeC9tYXRyaXgubW9iaWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFPbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTS9DLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxjQUFjO0lBQzNELHFCQUFxQjtJQUNyQixZQUNVLE1BQTBCLEVBQzFCLE1BQXNCLEVBQ3RCLE9BQWUsRUFDdkIsT0FBb0IsRUFDcEIsRUFBcUIsRUFDckIsT0FBdUI7UUFFdkIsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFQcEIsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQU16QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FDQSxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzVCLE1BQU07WUFDTixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM5QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ3RDLElBQUksQ0FBQyxZQUFZO1lBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRUQsUUFBUSxDQUFDLElBQWE7UUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFhO1FBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLEVBQUU7WUFDcEQsV0FBVyxFQUFFLElBQUk7U0FDbEIsQ0FBQyxDQUFDO0lBQ0gsQ0FBQzs7c0hBMUNRLHlCQUF5QjswR0FBekIseUJBQXlCLDJFQ2J0Qyw2dURBNEJBOzJGRGZhLHlCQUF5QjtrQkFKckMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YXNvdXJjZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2RhdGFzb3VyY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEN1YmVTZXJ2aWNlIH0gZnJvbSAnLi4vY3ViZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXhlc01hcCB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgV2luZG93VGl0bGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS93aW5kb3ctdGl0bGUuc2VydmljZSc7XHJcbmltcG9ydCB7IEN1YmVNYXRyaXhCYXNlIH0gZnJvbSAnLi9tYXRyaXguYmFzZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vbWF0cml4Lm1vYmlsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbWF0cml4LnBhbmUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3ViZU1hdHJpeE1vYmlsZUNvbXBvbmVudCBleHRlbmRzIEN1YmVNYXRyaXhCYXNlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvKiogY3ViZS1pbmZvIGN0b3IgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3RpdGxlOiBXaW5kb3dUaXRsZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9yb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcclxuICAgIHNlcnZpY2U6IEN1YmVTZXJ2aWNlLFxyXG4gICAgZHM6IERhdGFzb3VyY2VTZXJ2aWNlLFxyXG4gICAgc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UpIHtcclxuXHJcbiAgICBzdXBlcihzZXJ2aWNlLCBkcywgc2Vzc2lvbik7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3JvdXRlLnBhcmFtcy5zdWJzY3JpYmUocCA9PiB7XHJcbiAgICAgIHRoaXMuY3ViZSA9IHBbJ2lkJ107XHJcbiAgICAgIHRoaXMueEF4aXMgPSBwWyd4QXhpcyddO1xyXG4gICAgICB0aGlzLnNlcmllcyA9IHBbJ3NlcmllcyddO1xyXG4gICAgICB0aGlzLl90aXRsZS5zZXQodGhpcy5jb25maWd1cmF0aW9uLnRpdGxlKTtcclxuICAgIH1cclxuICAgICk7XHJcbiAgICB0aGlzLl9yb3V0ZS5kYXRhLnN1YnNjcmliZShkID0+IHtcclxuICAgICAgdGhpcy5pbmRpY2VzID0gZFsnaW5kaWNlcyddO1xyXG4gICAgICAvKiogKi9cclxuICAgICAgdGhpcy5hZ2dyZWdhdGlvbiA9IGRbJ2FnZ3JlZ2F0ZSddO1xyXG4gICAgICB0aGlzLnN1bSA9IGRbJ3N1bSddO1xyXG4gICAgICB0aGlzLnNlbGVjdGlvbiA9IGRbJ2ZpbHRlcnMnXTtcclxuICAgICAgdGhpcy5zZXJpZXNUb3RhbExhYmVsID0gZFsnYXZhaWxhYmxlJ107XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX3JvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZShwID0+IFxyXG4gICAgdGhpcy5vcmlnaW5hbEF4ZXMgPSBcclxuICAgICAgdGhpcy5heGVzID0gcCk7XHJcbiAgfVxyXG5cclxuICBvbkZpbHRlcihheGVzOiBBeGVzTWFwKSB7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoW10sIHsgcXVlcnlQYXJhbXM6IGF4ZXMgfSk7XHJcbiAgfVxyXG5cclxuICBleHBsb3JlKGF4ZXM6IEF4ZXNNYXApIHtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ2N1YmUnLCB0aGlzLmN1YmUsICdleHBsb3JlJ10sIHtcclxuICAgICAgcXVlcnlQYXJhbXM6IGF4ZXNcclxuICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiIsIjxtYXQtdG9vbGJhciBjbGFzcz1cIm5hdi10b29sYmFyXCI+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInRhYmxlLnJlZnJlc2goKVwiIFtiaXpkb2NUb29sdGlwXT1cIidSZWZyZXNoJyB8IHRyYW5zbGF0ZVwiPjxtYXQtaWNvbiBtYXRBbmltYXRlPVwicm90YXRlXCI+YXV0b3JlbmV3PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm9wdGlvbnNcIiAqbmdJZj1cInBhdHRlcm5zICYmIHBhdHRlcm5zLmxlbmd0aFwiPjxtYXQtaWNvbiBbY2xhc3MuZmlsbGVkXT1cInBhdHRlcm5cIj5maWx0ZXJfYWx0PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8bWF0LW1lbnUgI29wdGlvbnMgeFBvc2l0aW9uPVwiYmVmb3JlXCI+XHJcbiAgICA8IS0tIHBhdHRlcm5zIC0tPlxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0Zvcj1cImxldCBwIG9mIHBhdHRlcm5zXCIgKGNsaWNrKT1cImFnZ3JlZ2F0ZShwKVwiPnt7cC50aXRsZX19PC9idXR0b24+XHJcbiAgPC9tYXQtbWVudT5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicmVzZXQoKVwiIFtkaXNhYmxlZF09XCIhcGF0dGVyblwiIFtiaXpkb2NUb29sdGlwXT1cIidDbGVhcicgfCB0cmFuc2xhdGVcIj5cclxuICAgIDxtYXQtaWNvbj5jbGVhcl9hbGw8L21hdC1pY29uPlxyXG4gIDwvYnV0dG9uPlxyXG4gIDwhLS0gZmlsdGVycyAtLT5cclxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmIG9mIGZpbHRlcnNcIj5cclxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwiZm1lbnVcIj57e3ZhbHVlc1tmLm5hbWVdfCB0eXBlVmFsdWUgOiBmLmRhdGFUeXBlIHwgYXN5bmN9fSA8bWF0LWljb24+YXJyb3dfZHJvcF9kb3duPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgIDxtYXQtbWVudSAjZm1lbnUgeFBvc2l0aW9uPVwiYmVmb3JlXCI+XHJcbiAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAqbmdGb3I9XCJsZXQga3Ygb2Ygc291cmNlc1tmLm5hbWVdIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJmaWx0ZXIoZi5uYW1lLCBrdi5rZXksIGt2LnZhbHVlKVwiPlxyXG4gICAgICAgIHt7a3YudmFsdWV9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvbWF0LW1lbnU+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbWF0LXRvb2xiYXI+XHJcbjxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJxdWVyeVwiIFtzdHlsZS52aXNpYmlsaXR5XT1cImxvYWRpbmcgPyAndmlzaWJsZSc6J2hpZGRlbidcIj48L21hdC1wcm9ncmVzcy1iYXI+XHJcbjxiaXpkb2MtY3ViZS1tYXRyaXggW2N1YmVdPVwiY3ViZVwiIFt4QXhpc109XCJ4QXhpc1wiIFtzZXJpZXNdPVwic2VyaWVzXCIgW2luZGljZXNdPVwiaW5kaWNlc1wiIFtzdW1dPXN1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyc109XCJheGVzXCJcclxuICAgICAgICAgICAgICAgICAgICBbeEF4aXNUb3RhbExhYmVsXT1cInhBeGlzVG90YWxMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Nlcmllc1RvdGFsTGFiZWxdPVwic2VyaWVzVG90YWxMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChsb2FkaW5nQ2hhbmdlKT1cImxvYWRpbmc9JGV2ZW50XCIgKGV4cGxvcmUpPSdleHBsb3JlKCRldmVudCknPjwvYml6ZG9jLWN1YmUtbWF0cml4PlxyXG4iXX0=
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0cml4Lm1vYmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2N1YmUvbWF0cml4L21hdHJpeC5tb2JpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL21hdHJpeC9tYXRyaXgubW9iaWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFPbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTy9DLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxjQUFjO0lBQzNELHFCQUFxQjtJQUNyQixZQUNVLE1BQTBCLEVBQzFCLE1BQXNCLEVBQ3RCLE9BQWUsRUFDdkIsT0FBb0IsRUFDcEIsRUFBcUIsRUFDckIsT0FBdUI7UUFFdkIsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFQcEIsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQU16QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FDQSxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzVCLE1BQU07WUFDTixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM5QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ3BDLElBQUksQ0FBQyxZQUFZO1lBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFhO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxPQUFPLENBQUMsR0FBbUI7UUFDekIsTUFBTSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLEVBQUU7WUFDcEQsV0FBVztZQUNYLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRTtTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDOztzSEE1Q1UseUJBQXlCOzBHQUF6Qix5QkFBeUIsMkVDZHRDLDZ1REE0QkE7MkZEZGEseUJBQXlCO2tCQUpyQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRhc291cmNlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvZGF0YXNvdXJjZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ3ViZVNlcnZpY2UgfSBmcm9tICcuLi9jdWJlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBeGVzTWFwIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBXaW5kb3dUaXRsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3dpbmRvdy10aXRsZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ3ViZU1hdHJpeEJhc2UgfSBmcm9tICcuL21hdHJpeC5iYXNlJztcclxuaW1wb3J0IHsgQXhpc0NsaWNrRXZlbnQgfSBmcm9tICcuLi9kZWNsYXJhdGlvbnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICcuL21hdHJpeC5tb2JpbGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL21hdHJpeC5wYW5lLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEN1YmVNYXRyaXhNb2JpbGVDb21wb25lbnQgZXh0ZW5kcyBDdWJlTWF0cml4QmFzZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLyoqIGN1YmUtaW5mbyBjdG9yICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF90aXRsZTogV2luZG93VGl0bGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBzZXJ2aWNlOiBDdWJlU2VydmljZSxcclxuICAgIGRzOiBEYXRhc291cmNlU2VydmljZSxcclxuICAgIHNlc3Npb246IFNlc3Npb25TZXJ2aWNlKSB7XHJcblxyXG4gICAgc3VwZXIoc2VydmljZSwgZHMsIHNlc3Npb24pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHAgPT4ge1xyXG4gICAgICB0aGlzLmN1YmUgPSBwWydpZCddO1xyXG4gICAgICB0aGlzLnhBeGlzID0gcFsneEF4aXMnXTtcclxuICAgICAgdGhpcy5zZXJpZXMgPSBwWydzZXJpZXMnXTtcclxuICAgICAgdGhpcy5fdGl0bGUuc2V0KHRoaXMuY29uZmlndXJhdGlvbi50aXRsZSk7XHJcbiAgICB9XHJcbiAgICApO1xyXG4gICAgdGhpcy5fcm91dGUuZGF0YS5zdWJzY3JpYmUoZCA9PiB7XHJcbiAgICAgIHRoaXMuaW5kaWNlcyA9IGRbJ2luZGljZXMnXTtcclxuICAgICAgLyoqICovXHJcbiAgICAgIHRoaXMuYWdncmVnYXRpb24gPSBkWydhZ2dyZWdhdGUnXTtcclxuICAgICAgdGhpcy5zdW0gPSBkWydzdW0nXTtcclxuICAgICAgdGhpcy5zZWxlY3Rpb24gPSBkWydmaWx0ZXJzJ107XHJcbiAgICAgIHRoaXMuc2VyaWVzVG90YWxMYWJlbCA9IGRbJ2F2YWlsYWJsZSddO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUocCA9PlxyXG4gICAgICB0aGlzLm9yaWdpbmFsQXhlcyA9XHJcbiAgICAgIHRoaXMuYXhlcyA9IHApO1xyXG4gIH1cclxuXHJcbiAgb25GaWx0ZXIoYXhlczogQXhlc01hcCkge1xyXG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFtdLCB7IHF1ZXJ5UGFyYW1zOiBheGVzIH0pO1xyXG4gIH1cclxuXHJcbiAgZXhwbG9yZShldnQ6IEF4aXNDbGlja0V2ZW50KSB7XHJcbiAgICBjb25zdCB7IGF4ZXM6IHF1ZXJ5UGFyYW1zLCBpbmRleCB9ID0gZXZ0O1xyXG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnY3ViZScsIHRoaXMuY3ViZSwgJ2V4cGxvcmUnXSwge1xyXG4gICAgICBxdWVyeVBhcmFtcyxcclxuICAgICAgc3RhdGU6IHsgaW5kZXggfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxtYXQtdG9vbGJhciBjbGFzcz1cIm5hdi10b29sYmFyXCI+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInRhYmxlLnJlZnJlc2goKVwiIFtiaXpkb2NUb29sdGlwXT1cIidSZWZyZXNoJyB8IHRyYW5zbGF0ZVwiPjxtYXQtaWNvbiBtYXRBbmltYXRlPVwicm90YXRlXCI+YXV0b3JlbmV3PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm9wdGlvbnNcIiAqbmdJZj1cInBhdHRlcm5zICYmIHBhdHRlcm5zLmxlbmd0aFwiPjxtYXQtaWNvbiBbY2xhc3MuZmlsbGVkXT1cInBhdHRlcm5cIj5maWx0ZXJfYWx0PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8bWF0LW1lbnUgI29wdGlvbnMgeFBvc2l0aW9uPVwiYmVmb3JlXCI+XHJcbiAgICA8IS0tIHBhdHRlcm5zIC0tPlxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0Zvcj1cImxldCBwIG9mIHBhdHRlcm5zXCIgKGNsaWNrKT1cImFnZ3JlZ2F0ZShwKVwiPnt7cC50aXRsZX19PC9idXR0b24+XHJcbiAgPC9tYXQtbWVudT5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicmVzZXQoKVwiIFtkaXNhYmxlZF09XCIhcGF0dGVyblwiIFtiaXpkb2NUb29sdGlwXT1cIidDbGVhcicgfCB0cmFuc2xhdGVcIj5cclxuICAgIDxtYXQtaWNvbj5jbGVhcl9hbGw8L21hdC1pY29uPlxyXG4gIDwvYnV0dG9uPlxyXG4gIDwhLS0gZmlsdGVycyAtLT5cclxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmIG9mIGZpbHRlcnNcIj5cclxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwiZm1lbnVcIj57e3ZhbHVlc1tmLm5hbWVdfCB0eXBlVmFsdWUgOiBmLmRhdGFUeXBlIHwgYXN5bmN9fSA8bWF0LWljb24+YXJyb3dfZHJvcF9kb3duPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgIDxtYXQtbWVudSAjZm1lbnUgeFBvc2l0aW9uPVwiYmVmb3JlXCI+XHJcbiAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAqbmdGb3I9XCJsZXQga3Ygb2Ygc291cmNlc1tmLm5hbWVdIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJmaWx0ZXIoZi5uYW1lLCBrdi5rZXksIGt2LnZhbHVlKVwiPlxyXG4gICAgICAgIHt7a3YudmFsdWV9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvbWF0LW1lbnU+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbWF0LXRvb2xiYXI+XHJcbjxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJxdWVyeVwiIFtzdHlsZS52aXNpYmlsaXR5XT1cImxvYWRpbmcgPyAndmlzaWJsZSc6J2hpZGRlbidcIj48L21hdC1wcm9ncmVzcy1iYXI+XHJcbjxiaXpkb2MtY3ViZS1tYXRyaXggW2N1YmVdPVwiY3ViZVwiIFt4QXhpc109XCJ4QXhpc1wiIFtzZXJpZXNdPVwic2VyaWVzXCIgW2luZGljZXNdPVwiaW5kaWNlc1wiIFtzdW1dPXN1bVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmlsdGVyc109XCJheGVzXCJcclxuICAgICAgICAgICAgICAgICAgICBbeEF4aXNUb3RhbExhYmVsXT1cInhBeGlzVG90YWxMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Nlcmllc1RvdGFsTGFiZWxdPVwic2VyaWVzVG90YWxMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChsb2FkaW5nQ2hhbmdlKT1cImxvYWRpbmc9JGV2ZW50XCIgKGV4cGxvcmUpPSdleHBsb3JlKCRldmVudCknPjwvYml6ZG9jLWN1YmUtbWF0cml4PlxyXG4iXX0=
@@ -42,6 +42,8 @@ export class CubeMatrixPaneComponent extends CubeMatrixBase {
42
42
  /** */
43
43
  this.aggregation = d['aggregate'];
44
44
  this.sum = d['sum'];
45
+ this.placeAt = d['placeAt'];
46
+ this.indexAt = d['indexAt'];
45
47
  this.selection = d['filters'];
46
48
  this.xAxisTotalLabel = d['xAxisTotalLabel'];
47
49
  this.seriesTotalLabel = d['seriesTotalLabel'];
@@ -54,19 +56,21 @@ export class CubeMatrixPaneComponent extends CubeMatrixBase {
54
56
  policy: OpenPolicy.Tab
55
57
  });
56
58
  }
57
- explore(queryParams) {
59
+ explore(evt) {
60
+ const { axes: queryParams, index } = evt;
58
61
  this._router.navigate(['cube', this.cube, 'explore'], {
59
62
  queryParams,
60
- policy: OpenPolicy.Tab | OpenPolicy.Dismissable
63
+ policy: OpenPolicy.Tab | OpenPolicy.Dismissable,
64
+ state: { index }
61
65
  });
62
66
  }
63
67
  }
64
68
  CubeMatrixPaneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: CubeMatrixPaneComponent, deps: [{ token: i1.PaneRef }, { token: i2.PanesRouter }, { token: i3.TranslateService }, { token: i4.CubeService }, { token: i5.DatasourceService }, { token: i6.SessionService }], target: i0.ɵɵFactoryTarget.Component });
65
- CubeMatrixPaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: CubeMatrixPaneComponent, selector: "ng-component", host: { classAttribute: "pane" }, usesInheritance: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"table.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <button mat-icon-button [bizdocTooltip]=\"'Download' | translate\"\r\n data-help=\"download\" (click)=\"matrix.export()\">\r\n <mat-icon>save_alt</mat-icon>\r\n </button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" *ngIf=\"patterns && patterns.length\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"aggregate(p)\">{{p.title}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n <ng-container *ngFor=\"let f of filters\">\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n <button mat-menu-item *ngFor=\"let kv of sources[f.name] | async\"\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\" [sum]=sum\r\n [filters]=\"axes\" #matrix\r\n [xAxisTotalLabel]=\"xAxisTotalLabel\"\r\n [seriesTotalLabel]=\"seriesTotalLabel\"\r\n (loadingChange)=\"loading = $event\" (explore)='explore($event)'></bizdoc-cube-matrix>\r\n", styles: [":host{min-width:450px}:host ::ng-deep .cube-table thead{position:sticky;top:0}\n"], components: [{ type: i7.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i10.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i10.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i11.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i12.CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: ["seriesTotalLabel", "xAxisTotalLabel", "cube", "xAxis", "series", "indices", "scope", "sum", "filters", "loading", "interactive"], outputs: ["explore", "loadingChange"] }], directives: [{ type: i13.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i14.MatIconAnimate, selector: "[matAnimate]" }, { type: i15.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i15.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i16.TranslatePipe, "async": i15.AsyncPipe, "typeValue": i17.TypeValuePipe } });
69
+ CubeMatrixPaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: CubeMatrixPaneComponent, selector: "ng-component", host: { classAttribute: "pane" }, usesInheritance: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"table.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <button mat-icon-button [bizdocTooltip]=\"'Download' | translate\"\r\n data-help=\"download\" (click)=\"matrix.export()\">\r\n <mat-icon>save_alt</mat-icon>\r\n </button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" *ngIf=\"patterns && patterns.length\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"aggregate(p)\">{{p.title}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n <ng-container *ngFor=\"let f of filters\">\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n <button mat-menu-item *ngFor=\"let kv of sources[f.name] | async\"\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\" [sum]=sum\r\n [filters]=\"axes\" #matrix\r\n [xAxisTotalLabel]=\"xAxisTotalLabel\"\r\n [seriesTotalLabel]=\"seriesTotalLabel\"\r\n [placeAt]=\"placeAt\"\r\n [indexAt]=\"indexAt\"\r\n (loadingChange)=\"loading = $event\" (explore)='explore($event)'></bizdoc-cube-matrix>\r\n", styles: [":host{min-width:450px}:host ::ng-deep .cube-table thead{position:sticky;top:0}\n"], components: [{ type: i7.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i10.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i10.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i11.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { type: i12.CubeMatrixComponent, selector: "bizdoc-cube-matrix", inputs: ["seriesTotalLabel", "xAxisTotalLabel", "cube", "xAxis", "series", "indices", "indexAt", "placeAt", "scope", "sum", "filters", "loading", "interactive"], outputs: ["explore", "loadingChange"] }], directives: [{ type: i13.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i14.MatIconAnimate, selector: "[matAnimate]" }, { type: i15.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i15.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i16.TranslatePipe, "async": i15.AsyncPipe, "typeValue": i17.TypeValuePipe } });
66
70
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: CubeMatrixPaneComponent, decorators: [{
67
71
  type: Component,
68
72
  args: [{ host: {
69
73
  class: 'pane'
70
- }, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"table.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <button mat-icon-button [bizdocTooltip]=\"'Download' | translate\"\r\n data-help=\"download\" (click)=\"matrix.export()\">\r\n <mat-icon>save_alt</mat-icon>\r\n </button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" *ngIf=\"patterns && patterns.length\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"aggregate(p)\">{{p.title}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n <ng-container *ngFor=\"let f of filters\">\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n <button mat-menu-item *ngFor=\"let kv of sources[f.name] | async\"\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\" [sum]=sum\r\n [filters]=\"axes\" #matrix\r\n [xAxisTotalLabel]=\"xAxisTotalLabel\"\r\n [seriesTotalLabel]=\"seriesTotalLabel\"\r\n (loadingChange)=\"loading = $event\" (explore)='explore($event)'></bizdoc-cube-matrix>\r\n", styles: [":host{min-width:450px}:host ::ng-deep .cube-table thead{position:sticky;top:0}\n"] }]
74
+ }, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button (click)=\"table.refresh()\" [bizdocTooltip]=\"'Refresh' | translate\"><mat-icon matAnimate=\"rotate\">autorenew</mat-icon></button>\r\n <button mat-icon-button [bizdocTooltip]=\"'Download' | translate\"\r\n data-help=\"download\" (click)=\"matrix.export()\">\r\n <mat-icon>save_alt</mat-icon>\r\n </button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"options\" *ngIf=\"patterns && patterns.length\"><mat-icon [class.filled]=\"pattern\">filter_alt</mat-icon></button>\r\n <mat-menu #options xPosition=\"before\">\r\n <!-- patterns -->\r\n <button mat-menu-item *ngFor=\"let p of patterns\" (click)=\"aggregate(p)\">{{p.title}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"reset()\" [disabled]=\"!pattern\" [bizdocTooltip]=\"'Clear' | translate\">\r\n <mat-icon>clear_all</mat-icon>\r\n </button>\r\n <!-- filters -->\r\n <ng-container *ngFor=\"let f of filters\">\r\n <button mat-button [matMenuTriggerFor]=\"fmenu\">{{values[f.name]| typeValue : f.dataType | async}} <mat-icon>arrow_drop_down</mat-icon></button>\r\n <mat-menu #fmenu xPosition=\"before\">\r\n <button mat-menu-item *ngFor=\"let kv of sources[f.name] | async\"\r\n (click)=\"filter(f.name, kv.key, kv.value)\">\r\n {{kv.value}}\r\n </button>\r\n </mat-menu>\r\n </ng-container>\r\n</mat-toolbar>\r\n<mat-progress-bar mode=\"query\" [style.visibility]=\"loading ? 'visible':'hidden'\"></mat-progress-bar>\r\n<bizdoc-cube-matrix [cube]=\"cube\" [xAxis]=\"xAxis\" [series]=\"series\" [indices]=\"indices\" [sum]=sum\r\n [filters]=\"axes\" #matrix\r\n [xAxisTotalLabel]=\"xAxisTotalLabel\"\r\n [seriesTotalLabel]=\"seriesTotalLabel\"\r\n [placeAt]=\"placeAt\"\r\n [indexAt]=\"indexAt\"\r\n (loadingChange)=\"loading = $event\" (explore)='explore($event)'></bizdoc-cube-matrix>\r\n", styles: [":host{min-width:450px}:host ::ng-deep .cube-table thead{position:sticky;top:0}\n"] }]
71
75
  }], ctorParameters: function () { return [{ type: i1.PaneRef }, { type: i2.PanesRouter }, { type: i3.TranslateService }, { type: i4.CubeService }, { type: i5.DatasourceService }, { type: i6.SessionService }]; } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0cml4LnBhbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL21hdHJpeC9tYXRyaXgucGFuZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2N1YmUvbWF0cml4L21hdHJpeC5wYW5lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFPbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVdEQsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGNBQWM7SUFDekQscUJBQXFCO0lBQ3JCLFlBQ1UsS0FBdUMsRUFDdkMsT0FBb0IsRUFDcEIsVUFBNEIsRUFDcEMsT0FBb0IsRUFDcEIsRUFBcUIsRUFDckIsT0FBdUI7UUFDdkIsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFOcEIsVUFBSyxHQUFMLEtBQUssQ0FBa0M7UUFDdkMsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUNwQixlQUFVLEdBQVYsVUFBVSxDQUFrQjtJQUt0QyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNwQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztZQUM1QyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSTtnQkFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7WUFDNUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDNUIsTUFBTTtZQUNOLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2hELENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDekMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FDbEMsQ0FBQztJQUNKLENBQUM7SUFDRCxRQUFRLENBQUMsV0FBb0I7UUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFO1lBQ3hCLFdBQVc7WUFDWCxNQUFNLEVBQUUsVUFBVSxDQUFDLEdBQUc7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sQ0FBQyxXQUFvQjtRQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxFQUFFO1lBQ3BELFdBQVc7WUFDWCxNQUFNLEVBQUUsVUFBVSxDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUMsV0FBVztTQUNoRCxDQUFDLENBQUM7SUFDTCxDQUFDOztvSEE5Q1UsdUJBQXVCO3dHQUF2Qix1QkFBdUIsNkdDbEJwQyxvN0RBZ0NBOzJGRGRhLHVCQUF1QjtrQkFQbkMsU0FBUzsyQkFHRjt3QkFDSixLQUFLLEVBQUUsTUFBTTtxQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRhc291cmNlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvZGF0YXNvdXJjZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ3ViZVNlcnZpY2UgfSBmcm9tICcuLi9jdWJlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQYW5lc1JvdXRlciB9IGZyb20gJy4uLy4uL2NvcmUvc2xvdHMvcm91dGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQYW5lUmVmIH0gZnJvbSAnLi4vLi4vY29yZS9zbG90cy9wYW5lLXJlZic7XHJcbmltcG9ydCB7IEF4ZXNNYXAgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IEN1YmVNYXRyaXhCYXNlIH0gZnJvbSAnLi9tYXRyaXguYmFzZSc7XHJcbmltcG9ydCB7IE9wZW5Qb2xpY3kgfSBmcm9tICcuLi8uLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS90cmFuc2xhdGUuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vbWF0cml4LnBhbmUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL21hdHJpeC5wYW5lLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6ICdwYW5lJ1xyXG4gIH1cclxufSlcclxuZXhwb3J0IGNsYXNzIEN1YmVNYXRyaXhQYW5lQ29tcG9uZW50IGV4dGVuZHMgQ3ViZU1hdHJpeEJhc2UgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8qKiBjdWJlLWluZm8gY3RvciAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfcGFuZTogUGFuZVJlZjxDdWJlTWF0cml4UGFuZUNvbXBvbmVudD4sXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFBhbmVzUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgc2VydmljZTogQ3ViZVNlcnZpY2UsXHJcbiAgICBkczogRGF0YXNvdXJjZVNlcnZpY2UsXHJcbiAgICBzZXNzaW9uOiBTZXNzaW9uU2VydmljZSkge1xyXG4gICAgc3VwZXIoc2VydmljZSwgZHMsIHNlc3Npb24pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9wYW5lLnBhcmFtc0NoYW5nZS5zdWJzY3JpYmUocCA9PiB7XHJcbiAgICAgIHRoaXMuY3ViZSA9IHBbJ2N1YmUnXTtcclxuICAgICAgdGhpcy5fcGFuZS50aXRsZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ01hdHJpeCcpO1xyXG4gICAgICB0aGlzLl9wYW5lLmdyb3VwID0gdGhpcy5jb25maWd1cmF0aW9uLnRpdGxlO1xyXG4gICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uLmljb24pXHJcbiAgICAgICAgdGhpcy5fcGFuZS5pY29uID0gdGhpcy5jb25maWd1cmF0aW9uLmljb247XHJcbiAgICAgIHRoaXMueEF4aXMgPSBwWyd4QXhpcyddO1xyXG4gICAgICB0aGlzLnNlcmllcyA9IHBbJ3NlcmllcyddO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9wYW5lLmRhdGFDaGFuZ2Uuc3Vic2NyaWJlKGQgPT4ge1xyXG4gICAgICB0aGlzLmluZGljZXMgPSBkWydpbmRpY2VzJ107XHJcbiAgICAgIC8qKiAqL1xyXG4gICAgICB0aGlzLmFnZ3JlZ2F0aW9uID0gZFsnYWdncmVnYXRlJ107XHJcbiAgICAgIHRoaXMuc3VtID0gZFsnc3VtJ107XHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uID0gZFsnZmlsdGVycyddO1xyXG4gICAgICB0aGlzLnhBeGlzVG90YWxMYWJlbCA9IGRbJ3hBeGlzVG90YWxMYWJlbCddO1xyXG4gICAgICB0aGlzLnNlcmllc1RvdGFsTGFiZWwgPSBkWydzZXJpZXNUb3RhbExhYmVsJ107XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX3BhbmUucXVlcnlQYXJhbXNDaGFuZ2Uuc3Vic2NyaWJlKHAgPT5cclxuICAgICAgdGhpcy5vcmlnaW5hbEF4ZXMgPSB0aGlzLmF4ZXMgPSBwXHJcbiAgICApO1xyXG4gIH1cclxuICBvbkZpbHRlcihxdWVyeVBhcmFtczogQXhlc01hcCkge1xyXG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFtdLCB7XHJcbiAgICAgIHF1ZXJ5UGFyYW1zLFxyXG4gICAgICBwb2xpY3k6IE9wZW5Qb2xpY3kuVGFiXHJcbiAgICB9KTtcclxuICB9XHJcbiAgZXhwbG9yZShxdWVyeVBhcmFtczogQXhlc01hcCkge1xyXG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnY3ViZScsIHRoaXMuY3ViZSwgJ2V4cGxvcmUnXSwge1xyXG4gICAgICBxdWVyeVBhcmFtcyxcclxuICAgICAgcG9saWN5OiBPcGVuUG9saWN5LlRhYiB8IE9wZW5Qb2xpY3kuRGlzbWlzc2FibGVcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8bWF0LXRvb2xiYXIgY2xhc3M9XCJuYXYtdG9vbGJhclwiPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ0YWJsZS5yZWZyZXNoKClcIiBbYml6ZG9jVG9vbHRpcF09XCInUmVmcmVzaCcgfCB0cmFuc2xhdGVcIj48bWF0LWljb24gbWF0QW5pbWF0ZT1cInJvdGF0ZVwiPmF1dG9yZW5ldzwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW2JpemRvY1Rvb2x0aXBdPVwiJ0Rvd25sb2FkJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICBkYXRhLWhlbHA9XCJkb3dubG9hZFwiIChjbGljayk9XCJtYXRyaXguZXhwb3J0KClcIj5cclxuICAgIDxtYXQtaWNvbj5zYXZlX2FsdDwvbWF0LWljb24+XHJcbiAgPC9idXR0b24+XHJcbiAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJvcHRpb25zXCIgKm5nSWY9XCJwYXR0ZXJucyAmJiBwYXR0ZXJucy5sZW5ndGhcIj48bWF0LWljb24gW2NsYXNzLmZpbGxlZF09XCJwYXR0ZXJuXCI+ZmlsdGVyX2FsdDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPG1hdC1tZW51ICNvcHRpb25zIHhQb3NpdGlvbj1cImJlZm9yZVwiPlxyXG4gICAgPCEtLSBwYXR0ZXJucyAtLT5cclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAqbmdGb3I9XCJsZXQgcCBvZiBwYXR0ZXJuc1wiIChjbGljayk9XCJhZ2dyZWdhdGUocClcIj57e3AudGl0bGV9fTwvYnV0dG9uPlxyXG4gIDwvbWF0LW1lbnU+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInJlc2V0KClcIiBbZGlzYWJsZWRdPVwiIXBhdHRlcm5cIiBbYml6ZG9jVG9vbHRpcF09XCInQ2xlYXInIHwgdHJhbnNsYXRlXCI+XHJcbiAgICA8bWF0LWljb24+Y2xlYXJfYWxsPC9tYXQtaWNvbj5cclxuICA8L2J1dHRvbj5cclxuICA8IS0tIGZpbHRlcnMgLS0+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZiBvZiBmaWx0ZXJzXCI+XHJcbiAgICA8YnV0dG9uIG1hdC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cImZtZW51XCI+e3t2YWx1ZXNbZi5uYW1lXXwgdHlwZVZhbHVlIDogZi5kYXRhVHlwZSB8IGFzeW5jfX0gPG1hdC1pY29uPmFycm93X2Ryb3BfZG93bjwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8bWF0LW1lbnUgI2ZtZW51IHhQb3NpdGlvbj1cImJlZm9yZVwiPlxyXG4gICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKm5nRm9yPVwibGV0IGt2IG9mIHNvdXJjZXNbZi5uYW1lXSB8IGFzeW5jXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiZmlsdGVyKGYubmFtZSwga3Yua2V5LCBrdi52YWx1ZSlcIj5cclxuICAgICAgICB7e2t2LnZhbHVlfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L21hdC1tZW51PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L21hdC10b29sYmFyPlxyXG48bWF0LXByb2dyZXNzLWJhciBtb2RlPVwicXVlcnlcIiBbc3R5bGUudmlzaWJpbGl0eV09XCJsb2FkaW5nID8gJ3Zpc2libGUnOidoaWRkZW4nXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxyXG48Yml6ZG9jLWN1YmUtbWF0cml4IFtjdWJlXT1cImN1YmVcIiBbeEF4aXNdPVwieEF4aXNcIiBbc2VyaWVzXT1cInNlcmllc1wiIFtpbmRpY2VzXT1cImluZGljZXNcIiBbc3VtXT1zdW1cclxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbHRlcnNdPVwiYXhlc1wiICNtYXRyaXhcclxuICAgICAgICAgICAgICAgICAgICBbeEF4aXNUb3RhbExhYmVsXT1cInhBeGlzVG90YWxMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Nlcmllc1RvdGFsTGFiZWxdPVwic2VyaWVzVG90YWxMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChsb2FkaW5nQ2hhbmdlKT1cImxvYWRpbmcgPSAkZXZlbnRcIiAoZXhwbG9yZSk9J2V4cGxvcmUoJGV2ZW50KSc+PC9iaXpkb2MtY3ViZS1tYXRyaXg+XHJcbiJdfQ==
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0cml4LnBhbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL21hdHJpeC9tYXRyaXgucGFuZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2N1YmUvbWF0cml4L21hdHJpeC5wYW5lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFPbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXdEQsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGNBQWM7SUFDekQscUJBQXFCO0lBQ3JCLFlBQ1UsS0FBdUMsRUFDdkMsT0FBb0IsRUFDcEIsVUFBNEIsRUFDcEMsT0FBb0IsRUFDcEIsRUFBcUIsRUFDckIsT0FBdUI7UUFDdkIsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFOcEIsVUFBSyxHQUFMLEtBQUssQ0FBa0M7UUFDdkMsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUNwQixlQUFVLEdBQVYsVUFBVSxDQUFrQjtJQUt0QyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNwQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztZQUM1QyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSTtnQkFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7WUFDNUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDNUIsTUFBTTtZQUNOLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2hELENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDekMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FDbEMsQ0FBQztJQUNKLENBQUM7SUFDRCxRQUFRLENBQUMsV0FBb0I7UUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFO1lBQ3hCLFdBQVc7WUFDWCxNQUFNLEVBQUUsVUFBVSxDQUFDLEdBQUc7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sQ0FBQyxHQUFtQjtRQUN6QixNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsR0FBRyxHQUFHLENBQUM7UUFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsRUFBRTtZQUNwRCxXQUFXO1lBQ1gsTUFBTSxFQUFFLFVBQVUsQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLFdBQVc7WUFDL0MsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFO1NBQ2pCLENBQUMsQ0FBQztJQUNMLENBQUM7O29IQWxEVSx1QkFBdUI7d0dBQXZCLHVCQUF1Qiw2R0NuQnBDLHNnRUFrQ0E7MkZEZmEsdUJBQXVCO2tCQVBuQyxTQUFTOzJCQUdGO3dCQUNKLEtBQUssRUFBRSxNQUFNO3FCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IERhdGFzb3VyY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9kYXRhc291cmNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDdWJlU2VydmljZSB9IGZyb20gJy4uL2N1YmUuc2VydmljZSc7XHJcbmltcG9ydCB7IFBhbmVzUm91dGVyIH0gZnJvbSAnLi4vLi4vY29yZS9zbG90cy9yb3V0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFBhbmVSZWYgfSBmcm9tICcuLi8uLi9jb3JlL3Nsb3RzL3BhbmUtcmVmJztcclxuaW1wb3J0IHsgQXhlc01hcCB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgQ3ViZU1hdHJpeEJhc2UgfSBmcm9tICcuL21hdHJpeC5iYXNlJztcclxuaW1wb3J0IHsgT3BlblBvbGljeSB9IGZyb20gJy4uLy4uL2NvcmUvY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXhpc0NsaWNrRXZlbnQgfSBmcm9tICcuLi9kZWNsYXJhdGlvbnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICcuL21hdHJpeC5wYW5lLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tYXRyaXgucGFuZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGhvc3Q6IHtcclxuICAgIGNsYXNzOiAncGFuZSdcclxuICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdWJlTWF0cml4UGFuZUNvbXBvbmVudCBleHRlbmRzIEN1YmVNYXRyaXhCYXNlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICAvKiogY3ViZS1pbmZvIGN0b3IgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3BhbmU6IFBhbmVSZWY8Q3ViZU1hdHJpeFBhbmVDb21wb25lbnQ+LFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBQYW5lc1JvdXRlcixcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHNlcnZpY2U6IEN1YmVTZXJ2aWNlLFxyXG4gICAgZHM6IERhdGFzb3VyY2VTZXJ2aWNlLFxyXG4gICAgc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UpIHtcclxuICAgIHN1cGVyKHNlcnZpY2UsIGRzLCBzZXNzaW9uKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcGFuZS5wYXJhbXNDaGFuZ2Uuc3Vic2NyaWJlKHAgPT4ge1xyXG4gICAgICB0aGlzLmN1YmUgPSBwWydjdWJlJ107XHJcbiAgICAgIHRoaXMuX3BhbmUudGl0bGUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdNYXRyaXgnKTtcclxuICAgICAgdGhpcy5fcGFuZS5ncm91cCA9IHRoaXMuY29uZmlndXJhdGlvbi50aXRsZTtcclxuICAgICAgaWYgKHRoaXMuY29uZmlndXJhdGlvbi5pY29uKVxyXG4gICAgICAgIHRoaXMuX3BhbmUuaWNvbiA9IHRoaXMuY29uZmlndXJhdGlvbi5pY29uO1xyXG4gICAgICB0aGlzLnhBeGlzID0gcFsneEF4aXMnXTtcclxuICAgICAgdGhpcy5zZXJpZXMgPSBwWydzZXJpZXMnXTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fcGFuZS5kYXRhQ2hhbmdlLnN1YnNjcmliZShkID0+IHtcclxuICAgICAgdGhpcy5pbmRpY2VzID0gZFsnaW5kaWNlcyddO1xyXG4gICAgICAvKiogKi9cclxuICAgICAgdGhpcy5hZ2dyZWdhdGlvbiA9IGRbJ2FnZ3JlZ2F0ZSddO1xyXG4gICAgICB0aGlzLnN1bSA9IGRbJ3N1bSddO1xyXG4gICAgICB0aGlzLnBsYWNlQXQgPSBkWydwbGFjZUF0J107XHJcbiAgICAgIHRoaXMuaW5kZXhBdCA9IGRbJ2luZGV4QXQnXTtcclxuICAgICAgdGhpcy5zZWxlY3Rpb24gPSBkWydmaWx0ZXJzJ107XHJcbiAgICAgIHRoaXMueEF4aXNUb3RhbExhYmVsID0gZFsneEF4aXNUb3RhbExhYmVsJ107XHJcbiAgICAgIHRoaXMuc2VyaWVzVG90YWxMYWJlbCA9IGRbJ3Nlcmllc1RvdGFsTGFiZWwnXTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fcGFuZS5xdWVyeVBhcmFtc0NoYW5nZS5zdWJzY3JpYmUocCA9PlxyXG4gICAgICB0aGlzLm9yaWdpbmFsQXhlcyA9IHRoaXMuYXhlcyA9IHBcclxuICAgICk7XHJcbiAgfVxyXG4gIG9uRmlsdGVyKHF1ZXJ5UGFyYW1zOiBBeGVzTWFwKSB7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoW10sIHtcclxuICAgICAgcXVlcnlQYXJhbXMsXHJcbiAgICAgIHBvbGljeTogT3BlblBvbGljeS5UYWJcclxuICAgIH0pO1xyXG4gIH1cclxuICBleHBsb3JlKGV2dDogQXhpc0NsaWNrRXZlbnQpIHtcclxuICAgIGNvbnN0IHsgYXhlczogcXVlcnlQYXJhbXMsIGluZGV4IH0gPSBldnQ7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWydjdWJlJywgdGhpcy5jdWJlLCAnZXhwbG9yZSddLCB7XHJcbiAgICAgIHF1ZXJ5UGFyYW1zLFxyXG4gICAgICBwb2xpY3k6IE9wZW5Qb2xpY3kuVGFiIHwgT3BlblBvbGljeS5EaXNtaXNzYWJsZSxcclxuICAgICAgc3RhdGU6IHsgaW5kZXggfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxtYXQtdG9vbGJhciBjbGFzcz1cIm5hdi10b29sYmFyXCI+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInRhYmxlLnJlZnJlc2goKVwiIFtiaXpkb2NUb29sdGlwXT1cIidSZWZyZXNoJyB8IHRyYW5zbGF0ZVwiPjxtYXQtaWNvbiBtYXRBbmltYXRlPVwicm90YXRlXCI+YXV0b3JlbmV3PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbYml6ZG9jVG9vbHRpcF09XCInRG93bmxvYWQnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgIGRhdGEtaGVscD1cImRvd25sb2FkXCIgKGNsaWNrKT1cIm1hdHJpeC5leHBvcnQoKVwiPlxyXG4gICAgPG1hdC1pY29uPnNhdmVfYWx0PC9tYXQtaWNvbj5cclxuICA8L2J1dHRvbj5cclxuICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm9wdGlvbnNcIiAqbmdJZj1cInBhdHRlcm5zICYmIHBhdHRlcm5zLmxlbmd0aFwiPjxtYXQtaWNvbiBbY2xhc3MuZmlsbGVkXT1cInBhdHRlcm5cIj5maWx0ZXJfYWx0PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8bWF0LW1lbnUgI29wdGlvbnMgeFBvc2l0aW9uPVwiYmVmb3JlXCI+XHJcbiAgICA8IS0tIHBhdHRlcm5zIC0tPlxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0Zvcj1cImxldCBwIG9mIHBhdHRlcm5zXCIgKGNsaWNrKT1cImFnZ3JlZ2F0ZShwKVwiPnt7cC50aXRsZX19PC9idXR0b24+XHJcbiAgPC9tYXQtbWVudT5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicmVzZXQoKVwiIFtkaXNhYmxlZF09XCIhcGF0dGVyblwiIFtiaXpkb2NUb29sdGlwXT1cIidDbGVhcicgfCB0cmFuc2xhdGVcIj5cclxuICAgIDxtYXQtaWNvbj5jbGVhcl9hbGw8L21hdC1pY29uPlxyXG4gIDwvYnV0dG9uPlxyXG4gIDwhLS0gZmlsdGVycyAtLT5cclxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmIG9mIGZpbHRlcnNcIj5cclxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwiZm1lbnVcIj57e3ZhbHVlc1tmLm5hbWVdfCB0eXBlVmFsdWUgOiBmLmRhdGFUeXBlIHwgYXN5bmN9fSA8bWF0LWljb24+YXJyb3dfZHJvcF9kb3duPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgIDxtYXQtbWVudSAjZm1lbnUgeFBvc2l0aW9uPVwiYmVmb3JlXCI+XHJcbiAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAqbmdGb3I9XCJsZXQga3Ygb2Ygc291cmNlc1tmLm5hbWVdIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJmaWx0ZXIoZi5uYW1lLCBrdi5rZXksIGt2LnZhbHVlKVwiPlxyXG4gICAgICAgIHt7a3YudmFsdWV9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvbWF0LW1lbnU+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbWF0LXRvb2xiYXI+XHJcbjxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJxdWVyeVwiIFtzdHlsZS52aXNpYmlsaXR5XT1cImxvYWRpbmcgPyAndmlzaWJsZSc6J2hpZGRlbidcIj48L21hdC1wcm9ncmVzcy1iYXI+XHJcbjxiaXpkb2MtY3ViZS1tYXRyaXggW2N1YmVdPVwiY3ViZVwiIFt4QXhpc109XCJ4QXhpc1wiIFtzZXJpZXNdPVwic2VyaWVzXCIgW2luZGljZXNdPVwiaW5kaWNlc1wiIFtzdW1dPXN1bVxyXG4gICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJzXT1cImF4ZXNcIiAjbWF0cml4XHJcbiAgICAgICAgICAgICAgICAgICAgW3hBeGlzVG90YWxMYWJlbF09XCJ4QXhpc1RvdGFsTGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzZXJpZXNUb3RhbExhYmVsXT1cInNlcmllc1RvdGFsTGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZUF0XT1cInBsYWNlQXRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpbmRleEF0XT1cImluZGV4QXRcIlxyXG4gICAgICAgICAgICAgICAgICAgIChsb2FkaW5nQ2hhbmdlKT1cImxvYWRpbmcgPSAkZXZlbnRcIiAoZXhwbG9yZSk9J2V4cGxvcmUoJGV2ZW50KSc+PC9iaXpkb2MtY3ViZS1tYXRyaXg+XHJcbiJdfQ==