@ngxs/store 3.6.2 → 3.7.0

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 (43) hide show
  1. package/README.md +2 -2
  2. package/bundles/ngxs-store-operators.umd.js +36 -14
  3. package/bundles/ngxs-store-operators.umd.js.map +1 -1
  4. package/bundles/ngxs-store-operators.umd.min.js +10 -10
  5. package/bundles/ngxs-store-operators.umd.min.js.map +1 -1
  6. package/bundles/ngxs-store.umd.js +76 -44
  7. package/bundles/ngxs-store.umd.js.map +1 -1
  8. package/bundles/ngxs-store.umd.min.js +11 -11
  9. package/bundles/ngxs-store.umd.min.js.map +1 -1
  10. package/esm2015/src/decorators/select/select.js +1 -2
  11. package/esm2015/src/decorators/select/symbols.js +1 -1
  12. package/esm2015/src/internal/dispatcher.js +9 -1
  13. package/esm2015/src/internal/internals.js +3 -3
  14. package/esm2015/src/internal/state-factory.js +12 -3
  15. package/esm2015/src/internal/state-operations.js +3 -3
  16. package/esm2015/src/ivy/ensure-state-class-is-injectable.js +3 -3
  17. package/esm2015/src/ivy/ivy-enabled-in-dev-mode.js +6 -16
  18. package/esm2015/src/operators/of-action.js +6 -3
  19. package/esm2015/src/store.js +4 -4
  20. package/esm2015/src/utils/utils.js +4 -2
  21. package/esm5/src/decorators/select/select.js +1 -2
  22. package/esm5/src/decorators/select/symbols.js +1 -1
  23. package/esm5/src/internal/dispatcher.js +9 -1
  24. package/esm5/src/internal/internals.js +3 -3
  25. package/esm5/src/internal/state-factory.js +12 -3
  26. package/esm5/src/internal/state-operations.js +3 -3
  27. package/esm5/src/ivy/ensure-state-class-is-injectable.js +3 -3
  28. package/esm5/src/ivy/ivy-enabled-in-dev-mode.js +6 -16
  29. package/esm5/src/operators/of-action.js +6 -3
  30. package/esm5/src/store.js +5 -5
  31. package/esm5/src/utils/utils.js +4 -2
  32. package/fesm2015/ngxs-store.js +39 -29
  33. package/fesm2015/ngxs-store.js.map +1 -1
  34. package/fesm5/ngxs-store.js +40 -30
  35. package/fesm5/ngxs-store.js.map +1 -1
  36. package/ngxs-store.metadata.json +1 -1
  37. package/package.json +3 -3
  38. package/src/decorators/select/select.d.ts +1 -2
  39. package/src/decorators/select/symbols.d.ts +0 -4
  40. package/src/internal/internals.d.ts +1 -1
  41. package/src/ivy/ivy-enabled-in-dev-mode.d.ts +2 -2
  42. package/src/operators/of-action.d.ts +9 -8
  43. package/src/store.d.ts +1 -1
@@ -12,7 +12,6 @@ import { createSelectObservable, createSelectorFn } from './symbols';
12
12
  */
13
13
  export function Select(rawSelector, ...paths) {
14
14
  return (/**
15
- * @template U, K
16
15
  * @param {?} target
17
16
  * @param {?} key
18
17
  * @return {?}
@@ -43,4 +42,4 @@ export function Select(rawSelector, ...paths) {
43
42
  });
44
43
  });
45
44
  }
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvIiwic291cmNlcyI6WyJzcmMvZGVjb3JhdG9ycy9zZWxlY3Qvc2VsZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBRUwsc0JBQXNCLEVBQ3RCLGdCQUFnQixFQUdqQixNQUFNLFdBQVcsQ0FBQzs7Ozs7Ozs7QUFLbkIsTUFBTSxVQUFVLE1BQU0sQ0FBSSxXQUFlLEVBQUUsR0FBRyxLQUFlO0lBQzNEOzs7Ozs7SUFBTyxVQUdMLE1BQVMsRUFBRSxHQUFNOztjQUNYLElBQUksR0FBVyxHQUFHLENBQUMsUUFBUSxFQUFFOztjQUM3QixVQUFVLEdBQUcsS0FBSyxJQUFJLFlBQVk7O2NBQ2xDLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssQ0FBQztRQUUzRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO1lBQzlCLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ1osUUFBUSxFQUFFLElBQUk7Z0JBQ2QsVUFBVSxFQUFFLEtBQUs7Z0JBQ2pCLFlBQVksRUFBRSxJQUFJO2FBQ25CO1lBQ0QsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDTixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsWUFBWSxFQUFFLElBQUk7Ozs7Z0JBQ2xCLEdBQUc7b0JBQ0QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsc0JBQXNCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDbkYsQ0FBQzthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxFQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50Q2xhc3MsXHJcbiAgY3JlYXRlU2VsZWN0T2JzZXJ2YWJsZSxcclxuICBjcmVhdGVTZWxlY3RvckZuLFxyXG4gIFByb3BlcnR5VHlwZSxcclxuICBTZWxlY3RUeXBlXHJcbn0gZnJvbSAnLi9zeW1ib2xzJztcclxuXHJcbi8qKlxyXG4gKiBEZWNvcmF0b3IgZm9yIHNlbGVjdGluZyBhIHNsaWNlIG9mIHN0YXRlIGZyb20gdGhlIHN0b3JlLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIFNlbGVjdDxUPihyYXdTZWxlY3Rvcj86IFQsIC4uLnBhdGhzOiBzdHJpbmdbXSk6IFNlbGVjdFR5cGU8VD4ge1xyXG4gIHJldHVybiBmdW5jdGlvbjxcclxuICAgIFUgZXh0ZW5kcyBDb21wb25lbnRDbGFzczxhbnk+ICYgUmVjb3JkPEssIFByb3BlcnR5VHlwZTxUPj4sXHJcbiAgICBLIGV4dGVuZHMgc3RyaW5nXHJcbiAgPih0YXJnZXQ6IFUsIGtleTogSyk6IHZvaWQge1xyXG4gICAgY29uc3QgbmFtZTogc3RyaW5nID0ga2V5LnRvU3RyaW5nKCk7XHJcbiAgICBjb25zdCBzZWxlY3RvcklkID0gYF9fJHtuYW1lfV9fc2VsZWN0b3JgO1xyXG4gICAgY29uc3Qgc2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvckZuKG5hbWUsIHJhd1NlbGVjdG9yLCBwYXRocyk7XHJcblxyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXModGFyZ2V0LCB7XHJcbiAgICAgIFtzZWxlY3RvcklkXToge1xyXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlLFxyXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxyXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxyXG4gICAgICB9LFxyXG4gICAgICBbbmFtZV06IHtcclxuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxyXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcclxuICAgICAgICBnZXQoKTogUHJvcGVydHlUeXBlPFQ+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzW3NlbGVjdG9ySWRdIHx8ICh0aGlzW3NlbGVjdG9ySWRdID0gY3JlYXRlU2VsZWN0T2JzZXJ2YWJsZShzZWxlY3RvcikpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfTtcclxufVxyXG4iXX0=
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvIiwic291cmNlcyI6WyJzcmMvZGVjb3JhdG9ycy9zZWxlY3Qvc2VsZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsZ0JBQWdCLEVBQWdCLE1BQU0sV0FBVyxDQUFDOzs7Ozs7OztBQUtuRixNQUFNLFVBQVUsTUFBTSxDQUFJLFdBQWUsRUFBRSxHQUFHLEtBQWU7SUFDM0Q7Ozs7O0lBQU8sVUFBUyxNQUFNLEVBQUUsR0FBRzs7Y0FDbkIsSUFBSSxHQUFXLEdBQUcsQ0FBQyxRQUFRLEVBQUU7O2NBQzdCLFVBQVUsR0FBRyxLQUFLLElBQUksWUFBWTs7Y0FDbEMsUUFBUSxHQUFHLGdCQUFnQixDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDO1FBRTNELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7WUFDOUIsQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDWixRQUFRLEVBQUUsSUFBSTtnQkFDZCxVQUFVLEVBQUUsS0FBSztnQkFDakIsWUFBWSxFQUFFLElBQUk7YUFDbkI7WUFDRCxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNOLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixZQUFZLEVBQUUsSUFBSTs7OztnQkFDbEIsR0FBRztvQkFDRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUNuRixDQUFDO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDLEVBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlU2VsZWN0T2JzZXJ2YWJsZSwgY3JlYXRlU2VsZWN0b3JGbiwgUHJvcGVydHlUeXBlIH0gZnJvbSAnLi9zeW1ib2xzJztcclxuXHJcbi8qKlxyXG4gKiBEZWNvcmF0b3IgZm9yIHNlbGVjdGluZyBhIHNsaWNlIG9mIHN0YXRlIGZyb20gdGhlIHN0b3JlLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIFNlbGVjdDxUPihyYXdTZWxlY3Rvcj86IFQsIC4uLnBhdGhzOiBzdHJpbmdbXSk6IFByb3BlcnR5RGVjb3JhdG9yIHtcclxuICByZXR1cm4gZnVuY3Rpb24odGFyZ2V0LCBrZXkpOiB2b2lkIHtcclxuICAgIGNvbnN0IG5hbWU6IHN0cmluZyA9IGtleS50b1N0cmluZygpO1xyXG4gICAgY29uc3Qgc2VsZWN0b3JJZCA9IGBfXyR7bmFtZX1fX3NlbGVjdG9yYDtcclxuICAgIGNvbnN0IHNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3JGbihuYW1lLCByYXdTZWxlY3RvciwgcGF0aHMpO1xyXG5cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwge1xyXG4gICAgICBbc2VsZWN0b3JJZF06IHtcclxuICAgICAgICB3cml0YWJsZTogdHJ1ZSxcclxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcclxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcclxuICAgICAgfSxcclxuICAgICAgW25hbWVdOiB7XHJcbiAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcclxuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXHJcbiAgICAgICAgZ2V0KCk6IFByb3BlcnR5VHlwZTxUPiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpc1tzZWxlY3RvcklkXSB8fCAodGhpc1tzZWxlY3RvcklkXSA9IGNyZWF0ZVNlbGVjdE9ic2VydmFibGUoc2VsZWN0b3IpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH07XHJcbn1cclxuIl19
@@ -47,4 +47,4 @@ export function removeDollarAtTheEnd(name) {
47
47
  const dollarAtTheEnd = name.charCodeAt(lastCharIndex) === DOLLAR_CHAR_CODE;
48
48
  return dollarAtTheEnd ? name.slice(0, lastCharIndex) : name;
49
49
  }
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL2RlY29yYXRvcnMvc2VsZWN0L3N5bWJvbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7TUFJM0MsZ0JBQWdCLEdBQUcsRUFBRTs7Ozs7O0FBRTNCLE1BQU0sVUFBVSxzQkFBc0IsQ0FBVSxRQUFhO0lBQzNELElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFO1FBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyw0QkFBNEIsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUNsRjtJQUVELE9BQU8sYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDOUMsQ0FBQzs7Ozs7OztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxJQUFZLEVBQUUsV0FBaUIsRUFBRSxRQUFrQixFQUFFO0lBQ3BGLFdBQVcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUV0RSxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRTs7Y0FDN0IsVUFBVSxHQUFhLEtBQUssQ0FBQyxNQUFNO1lBQ3ZDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEtBQUssQ0FBQztZQUN6QixDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFDMUIsT0FBTyxVQUFVLENBQUMsVUFBVSxFQUFFLG1CQUFBLGFBQWEsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDO0tBQ3REO0lBRUQsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQzs7Ozs7O0FBS0QsTUFBTSxVQUFVLG9CQUFvQixDQUFDLElBQVk7O1VBQ3pDLGFBQWEsR0FBVyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUM7O1VBQ3ZDLGNBQWMsR0FBWSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLGdCQUFnQjtJQUNuRixPQUFPLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUM5RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQ09ORklHX01FU1NBR0VTLCBWQUxJREFUSU9OX0NPREUgfSBmcm9tICcuLi8uLi9jb25maWdzL21lc3NhZ2VzLmNvbmZpZyc7XHJcbmltcG9ydCB7IHByb3BHZXR0ZXIgfSBmcm9tICcuLi8uLi9pbnRlcm5hbC9pbnRlcm5hbHMnO1xyXG5pbXBvcnQgeyBTZWxlY3RGYWN0b3J5IH0gZnJvbSAnLi9zZWxlY3QtZmFjdG9yeSc7XHJcbmltcG9ydCB7IFN0YXRlVG9rZW4gfSBmcm9tICcuLi8uLi9zdGF0ZS10b2tlbi9zdGF0ZS10b2tlbic7XHJcbmltcG9ydCB7IEV4dHJhY3RUb2tlblR5cGUgfSBmcm9tICcuLi8uLi9zdGF0ZS10b2tlbi9zeW1ib2xzJztcclxuXHJcbmNvbnN0IERPTExBUl9DSEFSX0NPREUgPSAzNjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTZWxlY3RPYnNlcnZhYmxlPFQgPSBhbnk+KHNlbGVjdG9yOiBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICBpZiAoIVNlbGVjdEZhY3Rvcnkuc3RvcmUpIHtcclxuICAgIHRocm93IG5ldyBFcnJvcihDT05GSUdfTUVTU0FHRVNbVkFMSURBVElPTl9DT0RFLlNFTEVDVF9GQUNUT1JZX05PVF9DT05ORUNURURdKCkpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIFNlbGVjdEZhY3Rvcnkuc3RvcmUuc2VsZWN0KHNlbGVjdG9yKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNlbGVjdG9yRm4obmFtZTogc3RyaW5nLCByYXdTZWxlY3Rvcj86IGFueSwgcGF0aHM6IHN0cmluZ1tdID0gW10pOiBhbnkge1xyXG4gIHJhd1NlbGVjdG9yID0gIXJhd1NlbGVjdG9yID8gcmVtb3ZlRG9sbGFyQXRUaGVFbmQobmFtZSkgOiByYXdTZWxlY3RvcjtcclxuXHJcbiAgaWYgKHR5cGVvZiByYXdTZWxlY3RvciA9PT0gJ3N0cmluZycpIHtcclxuICAgIGNvbnN0IHByb3BzQXJyYXk6IHN0cmluZ1tdID0gcGF0aHMubGVuZ3RoXHJcbiAgICAgID8gW3Jhd1NlbGVjdG9yLCAuLi5wYXRoc11cclxuICAgICAgOiByYXdTZWxlY3Rvci5zcGxpdCgnLicpO1xyXG4gICAgcmV0dXJuIHByb3BHZXR0ZXIocHJvcHNBcnJheSwgU2VsZWN0RmFjdG9yeS5jb25maWchKTtcclxuICB9XHJcblxyXG4gIHJldHVybiByYXdTZWxlY3RvcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEBleGFtcGxlIElmIGBmb28kYCA9PiBtYWtlIGl0IGp1c3QgYGZvb2BcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVEb2xsYXJBdFRoZUVuZChuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gIGNvbnN0IGxhc3RDaGFySW5kZXg6IG51bWJlciA9IG5hbWUubGVuZ3RoIC0gMTtcclxuICBjb25zdCBkb2xsYXJBdFRoZUVuZDogYm9vbGVhbiA9IG5hbWUuY2hhckNvZGVBdChsYXN0Q2hhckluZGV4KSA9PT0gRE9MTEFSX0NIQVJfQ09ERTtcclxuICByZXR1cm4gZG9sbGFyQXRUaGVFbmQgPyBuYW1lLnNsaWNlKDAsIGxhc3RDaGFySW5kZXgpIDogbmFtZTtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUHJvcGVydHlUeXBlPFQ+ID0gVCBleHRlbmRzIFN0YXRlVG9rZW48YW55PlxyXG4gID8gT2JzZXJ2YWJsZTxFeHRyYWN0VG9rZW5UeXBlPFQ+PlxyXG4gIDogVCBleHRlbmRzICguLi5hcmdzOiBhbnlbXSkgPT4gYW55XHJcbiAgPyBPYnNlcnZhYmxlPFJldHVyblR5cGU8VD4+XHJcbiAgOiBhbnk7XHJcblxyXG5leHBvcnQgdHlwZSBDb21wb25lbnRDbGFzczxUPiA9IHtcclxuICBbUCBpbiBrZXlvZiBUXTogVFtQXTtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIFNlbGVjdFR5cGU8VD4gPSA8XHJcbiAgVSBleHRlbmRzIENvbXBvbmVudENsYXNzPGFueT4gJiBSZWNvcmQ8SywgUHJvcGVydHlUeXBlPFQ+PixcclxuICBLIGV4dGVuZHMgc3RyaW5nXHJcbj4oXHJcbiAgdGFyZ2V0OiBVLFxyXG4gIGtleTogS1xyXG4pID0+IHZvaWQ7XHJcbiJdfQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL2RlY29yYXRvcnMvc2VsZWN0L3N5bWJvbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7TUFJM0MsZ0JBQWdCLEdBQUcsRUFBRTs7Ozs7O0FBRTNCLE1BQU0sVUFBVSxzQkFBc0IsQ0FBVSxRQUFhO0lBQzNELElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFO1FBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyw0QkFBNEIsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUNsRjtJQUVELE9BQU8sYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDOUMsQ0FBQzs7Ozs7OztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxJQUFZLEVBQUUsV0FBaUIsRUFBRSxRQUFrQixFQUFFO0lBQ3BGLFdBQVcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUV0RSxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRTs7Y0FDN0IsVUFBVSxHQUFhLEtBQUssQ0FBQyxNQUFNO1lBQ3ZDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEtBQUssQ0FBQztZQUN6QixDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFDMUIsT0FBTyxVQUFVLENBQUMsVUFBVSxFQUFFLG1CQUFBLGFBQWEsQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDO0tBQ3REO0lBRUQsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQzs7Ozs7O0FBS0QsTUFBTSxVQUFVLG9CQUFvQixDQUFDLElBQVk7O1VBQ3pDLGFBQWEsR0FBVyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUM7O1VBQ3ZDLGNBQWMsR0FBWSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxLQUFLLGdCQUFnQjtJQUNuRixPQUFPLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUM5RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQ09ORklHX01FU1NBR0VTLCBWQUxJREFUSU9OX0NPREUgfSBmcm9tICcuLi8uLi9jb25maWdzL21lc3NhZ2VzLmNvbmZpZyc7XHJcbmltcG9ydCB7IHByb3BHZXR0ZXIgfSBmcm9tICcuLi8uLi9pbnRlcm5hbC9pbnRlcm5hbHMnO1xyXG5pbXBvcnQgeyBTZWxlY3RGYWN0b3J5IH0gZnJvbSAnLi9zZWxlY3QtZmFjdG9yeSc7XHJcbmltcG9ydCB7IFN0YXRlVG9rZW4gfSBmcm9tICcuLi8uLi9zdGF0ZS10b2tlbi9zdGF0ZS10b2tlbic7XHJcbmltcG9ydCB7IEV4dHJhY3RUb2tlblR5cGUgfSBmcm9tICcuLi8uLi9zdGF0ZS10b2tlbi9zeW1ib2xzJztcclxuXHJcbmNvbnN0IERPTExBUl9DSEFSX0NPREUgPSAzNjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTZWxlY3RPYnNlcnZhYmxlPFQgPSBhbnk+KHNlbGVjdG9yOiBhbnkpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICBpZiAoIVNlbGVjdEZhY3Rvcnkuc3RvcmUpIHtcclxuICAgIHRocm93IG5ldyBFcnJvcihDT05GSUdfTUVTU0FHRVNbVkFMSURBVElPTl9DT0RFLlNFTEVDVF9GQUNUT1JZX05PVF9DT05ORUNURURdKCkpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIFNlbGVjdEZhY3Rvcnkuc3RvcmUuc2VsZWN0KHNlbGVjdG9yKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNlbGVjdG9yRm4obmFtZTogc3RyaW5nLCByYXdTZWxlY3Rvcj86IGFueSwgcGF0aHM6IHN0cmluZ1tdID0gW10pOiBhbnkge1xyXG4gIHJhd1NlbGVjdG9yID0gIXJhd1NlbGVjdG9yID8gcmVtb3ZlRG9sbGFyQXRUaGVFbmQobmFtZSkgOiByYXdTZWxlY3RvcjtcclxuXHJcbiAgaWYgKHR5cGVvZiByYXdTZWxlY3RvciA9PT0gJ3N0cmluZycpIHtcclxuICAgIGNvbnN0IHByb3BzQXJyYXk6IHN0cmluZ1tdID0gcGF0aHMubGVuZ3RoXHJcbiAgICAgID8gW3Jhd1NlbGVjdG9yLCAuLi5wYXRoc11cclxuICAgICAgOiByYXdTZWxlY3Rvci5zcGxpdCgnLicpO1xyXG4gICAgcmV0dXJuIHByb3BHZXR0ZXIocHJvcHNBcnJheSwgU2VsZWN0RmFjdG9yeS5jb25maWchKTtcclxuICB9XHJcblxyXG4gIHJldHVybiByYXdTZWxlY3RvcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEBleGFtcGxlIElmIGBmb28kYCA9PiBtYWtlIGl0IGp1c3QgYGZvb2BcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVEb2xsYXJBdFRoZUVuZChuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gIGNvbnN0IGxhc3RDaGFySW5kZXg6IG51bWJlciA9IG5hbWUubGVuZ3RoIC0gMTtcclxuICBjb25zdCBkb2xsYXJBdFRoZUVuZDogYm9vbGVhbiA9IG5hbWUuY2hhckNvZGVBdChsYXN0Q2hhckluZGV4KSA9PT0gRE9MTEFSX0NIQVJfQ09ERTtcclxuICByZXR1cm4gZG9sbGFyQXRUaGVFbmQgPyBuYW1lLnNsaWNlKDAsIGxhc3RDaGFySW5kZXgpIDogbmFtZTtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUHJvcGVydHlUeXBlPFQ+ID0gVCBleHRlbmRzIFN0YXRlVG9rZW48YW55PlxyXG4gID8gT2JzZXJ2YWJsZTxFeHRyYWN0VG9rZW5UeXBlPFQ+PlxyXG4gIDogVCBleHRlbmRzICguLi5hcmdzOiBhbnlbXSkgPT4gYW55XHJcbiAgPyBPYnNlcnZhYmxlPFJldHVyblR5cGU8VD4+XHJcbiAgOiBhbnk7XHJcbiJdfQ==
@@ -11,6 +11,7 @@ import { StateStream } from './state-stream';
11
11
  import { PluginManager } from '../plugin-manager';
12
12
  import { InternalNgxsExecutionStrategy } from '../execution/internal-ngxs-execution-strategy';
13
13
  import { leaveNgxs } from '../operators/leave-ngxs';
14
+ import { getActionTypeFromInstance } from '../utils/utils';
14
15
  /**
15
16
  * Internal Action result stream that is emitted when an action is completed.
16
17
  * This is used as a method of returning the action result to the dispatcher
@@ -92,6 +93,13 @@ export class InternalDispatcher {
92
93
  * @return {?}
93
94
  */
94
95
  dispatchSingle(action) {
96
+ /** @type {?} */
97
+ const type = getActionTypeFromInstance(action);
98
+ if (!type) {
99
+ /** @type {?} */
100
+ const error = new Error(`This action doesn't have a type property: ${action.constructor.name}`);
101
+ return throwError(error);
102
+ }
95
103
  /** @type {?} */
96
104
  const prevState = this._stateStream.getValue();
97
105
  /** @type {?} */
@@ -199,4 +207,4 @@ if (false) {
199
207
  */
200
208
  InternalDispatcher.prototype._ngxsExecutionStrategy;
201
209
  }
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL2ludGVybmFsL2Rpc3BhdGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0MsT0FBTyxFQUErQixlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzlGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7OztBQVNwRCxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsT0FBc0I7OztZQUQxRSxVQUFVOztBQUlYLE1BQU0sT0FBTyxrQkFBa0I7Ozs7Ozs7OztJQUM3QixZQUNVLGFBQTJCLEVBQzNCLFFBQXlCLEVBQ3pCLGNBQStDLEVBQy9DLGNBQTZCLEVBQzdCLFlBQXlCLEVBQ3pCLHNCQUFxRDtRQUxyRCxrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUMzQixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixtQkFBYyxHQUFkLGNBQWMsQ0FBaUM7UUFDL0MsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsaUJBQVksR0FBWixZQUFZLENBQWE7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LENBQ0gsVUFBVTs7OztRQUFDLENBQUMsR0FBa0IsRUFBRSxFQUFFO1lBQ2hDLFFBQVEsR0FBRyxDQUFDLE1BQU0sRUFBRTtnQkFDbEI7b0JBQ0UsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUMxQztvQkFDRSxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQy9CO29CQUNFLE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1FBQ0gsQ0FBQyxFQUFDLENBQ0g7YUFDQSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDOzs7WUFuRkYsVUFBVTs7OztZQXBCRixZQUFZO1lBS2lCLGVBQWU7WUFvQnpCLCtCQUErQjtZQWxCbEQsYUFBYTtZQURiLFdBQVc7WUFFWCw2QkFBNkI7Ozs7Ozs7SUFlbEMsMkNBQW1DOzs7OztJQUNuQyxzQ0FBaUM7Ozs7O0lBQ2pDLDRDQUF1RDs7Ozs7SUFDdkQsNENBQXFDOzs7OztJQUNyQywwQ0FBaUM7Ozs7O0lBQ2pDLG9EQUE2RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVycm9ySGFuZGxlciwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFTVBUWSwgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGV4aGF1c3RNYXAsIGZpbHRlciwgc2hhcmVSZXBsYXksIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBjb21wb3NlIH0gZnJvbSAnLi4vdXRpbHMvY29tcG9zZSc7XHJcbmltcG9ydCB7IEFjdGlvbkNvbnRleHQsIEFjdGlvblN0YXR1cywgSW50ZXJuYWxBY3Rpb25zIH0gZnJvbSAnLi4vYWN0aW9ucy1zdHJlYW0nO1xyXG5pbXBvcnQgeyBTdGF0ZVN0cmVhbSB9IGZyb20gJy4vc3RhdGUtc3RyZWFtJztcclxuaW1wb3J0IHsgUGx1Z2luTWFuYWdlciB9IGZyb20gJy4uL3BsdWdpbi1tYW5hZ2VyJztcclxuaW1wb3J0IHsgSW50ZXJuYWxOZ3hzRXhlY3V0aW9uU3RyYXRlZ3kgfSBmcm9tICcuLi9leGVjdXRpb24vaW50ZXJuYWwtbmd4cy1leGVjdXRpb24tc3RyYXRlZ3knO1xyXG5pbXBvcnQgeyBsZWF2ZU5neHMgfSBmcm9tICcuLi9vcGVyYXRvcnMvbGVhdmUtbmd4cyc7XHJcblxyXG4vKipcclxuICogSW50ZXJuYWwgQWN0aW9uIHJlc3VsdCBzdHJlYW0gdGhhdCBpcyBlbWl0dGVkIHdoZW4gYW4gYWN0aW9uIGlzIGNvbXBsZXRlZC5cclxuICogVGhpcyBpcyB1c2VkIGFzIGEgbWV0aG9kIG9mIHJldHVybmluZyB0aGUgYWN0aW9uIHJlc3VsdCB0byB0aGUgZGlzcGF0Y2hlclxyXG4gKiBmb3IgdGhlIG9ic2VydmFibGUgcmV0dXJuZWQgYnkgdGhlIGRpc3BhdGNoKC4uLikgY2FsbC5cclxuICogVGhlIGRpc3BhdGNoZXIgdGhlbiBhc3luY2hyb25vdXNseSBwdXNoZXMgdGhlIHJlc3VsdCBmcm9tIHRoaXMgc3RyZWFtIG9udG8gdGhlIG1haW4gYWN0aW9uIHN0cmVhbSBhcyBhIHJlc3VsdC5cclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEludGVybmFsRGlzcGF0Y2hlZEFjdGlvblJlc3VsdHMgZXh0ZW5kcyBTdWJqZWN0PEFjdGlvbkNvbnRleHQ+IHt9XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBJbnRlcm5hbERpc3BhdGNoZXIge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZXJyb3JIYW5kbGVyOiBFcnJvckhhbmRsZXIsXHJcbiAgICBwcml2YXRlIF9hY3Rpb25zOiBJbnRlcm5hbEFjdGlvbnMsXHJcbiAgICBwcml2YXRlIF9hY3Rpb25SZXN1bHRzOiBJbnRlcm5hbERpc3BhdGNoZWRBY3Rpb25SZXN1bHRzLFxyXG4gICAgcHJpdmF0ZSBfcGx1Z2luTWFuYWdlcjogUGx1Z2luTWFuYWdlcixcclxuICAgIHByaXZhdGUgX3N0YXRlU3RyZWFtOiBTdGF0ZVN0cmVhbSxcclxuICAgIHByaXZhdGUgX25neHNFeGVjdXRpb25TdHJhdGVneTogSW50ZXJuYWxOZ3hzRXhlY3V0aW9uU3RyYXRlZ3lcclxuICApIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpc3BhdGNoZXMgZXZlbnQocykuXHJcbiAgICovXHJcbiAgZGlzcGF0Y2goYWN0aW9uT3JBY3Rpb25zOiBhbnkgfCBhbnlbXSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9uZ3hzRXhlY3V0aW9uU3RyYXRlZ3kuZW50ZXIoKCkgPT5cclxuICAgICAgdGhpcy5kaXNwYXRjaEJ5RXZlbnRzKGFjdGlvbk9yQWN0aW9ucylcclxuICAgICk7XHJcblxyXG4gICAgcmVzdWx0LnN1YnNjcmliZSh7XHJcbiAgICAgIGVycm9yOiBlcnJvciA9PlxyXG4gICAgICAgIHRoaXMuX25neHNFeGVjdXRpb25TdHJhdGVneS5sZWF2ZSgoKSA9PiB7XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICB0aGlzLl9lcnJvckhhbmRsZXIuaGFuZGxlRXJyb3IoZXJyb3IpO1xyXG4gICAgICAgICAgfSBjYXRjaCB7fVxyXG4gICAgICAgIH0pXHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0LnBpcGUobGVhdmVOZ3hzKHRoaXMuX25neHNFeGVjdXRpb25TdHJhdGVneSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkaXNwYXRjaEJ5RXZlbnRzKGFjdGlvbk9yQWN0aW9uczogYW55IHwgYW55W10pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoYWN0aW9uT3JBY3Rpb25zKSkge1xyXG4gICAgICBpZiAoYWN0aW9uT3JBY3Rpb25zLmxlbmd0aCA9PT0gMCkgcmV0dXJuIG9mKHRoaXMuX3N0YXRlU3RyZWFtLmdldFZhbHVlKCkpO1xyXG4gICAgICByZXR1cm4gZm9ya0pvaW4oYWN0aW9uT3JBY3Rpb25zLm1hcChhY3Rpb24gPT4gdGhpcy5kaXNwYXRjaFNpbmdsZShhY3Rpb24pKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaFNpbmdsZShhY3Rpb25PckFjdGlvbnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkaXNwYXRjaFNpbmdsZShhY3Rpb246IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCBwcmV2U3RhdGUgPSB0aGlzLl9zdGF0ZVN0cmVhbS5nZXRWYWx1ZSgpO1xyXG4gICAgY29uc3QgcGx1Z2lucyA9IHRoaXMuX3BsdWdpbk1hbmFnZXIucGx1Z2lucztcclxuXHJcbiAgICByZXR1cm4gKGNvbXBvc2UoW1xyXG4gICAgICAuLi5wbHVnaW5zLFxyXG4gICAgICAobmV4dFN0YXRlOiBhbnksIG5leHRBY3Rpb246IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChuZXh0U3RhdGUgIT09IHByZXZTdGF0ZSkge1xyXG4gICAgICAgICAgdGhpcy5fc3RhdGVTdHJlYW0ubmV4dChuZXh0U3RhdGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBhY3Rpb25SZXN1bHQkID0gdGhpcy5nZXRBY3Rpb25SZXN1bHRTdHJlYW0obmV4dEFjdGlvbik7XHJcbiAgICAgICAgYWN0aW9uUmVzdWx0JC5zdWJzY3JpYmUoY3R4ID0+IHRoaXMuX2FjdGlvbnMubmV4dChjdHgpKTtcclxuICAgICAgICB0aGlzLl9hY3Rpb25zLm5leHQoeyBhY3Rpb246IG5leHRBY3Rpb24sIHN0YXR1czogQWN0aW9uU3RhdHVzLkRpc3BhdGNoZWQgfSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGlzcGF0Y2hPYnNlcnZhYmxlKGFjdGlvblJlc3VsdCQpO1xyXG4gICAgICB9XHJcbiAgICBdKShwcmV2U3RhdGUsIGFjdGlvbikgYXMgT2JzZXJ2YWJsZTxhbnk+KS5waXBlKHNoYXJlUmVwbGF5KCkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRBY3Rpb25SZXN1bHRTdHJlYW0oYWN0aW9uOiBhbnkpOiBPYnNlcnZhYmxlPEFjdGlvbkNvbnRleHQ+IHtcclxuICAgIHJldHVybiB0aGlzLl9hY3Rpb25SZXN1bHRzLnBpcGUoXHJcbiAgICAgIGZpbHRlcihcclxuICAgICAgICAoY3R4OiBBY3Rpb25Db250ZXh0KSA9PiBjdHguYWN0aW9uID09PSBhY3Rpb24gJiYgY3R4LnN0YXR1cyAhPT0gQWN0aW9uU3RhdHVzLkRpc3BhdGNoZWRcclxuICAgICAgKSxcclxuICAgICAgdGFrZSgxKSxcclxuICAgICAgc2hhcmVSZXBsYXkoKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlRGlzcGF0Y2hPYnNlcnZhYmxlKGFjdGlvblJlc3VsdCQ6IE9ic2VydmFibGU8QWN0aW9uQ29udGV4dD4pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIGFjdGlvblJlc3VsdCRcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZXhoYXVzdE1hcCgoY3R4OiBBY3Rpb25Db250ZXh0KSA9PiB7XHJcbiAgICAgICAgICBzd2l0Y2ggKGN0eC5zdGF0dXMpIHtcclxuICAgICAgICAgICAgY2FzZSBBY3Rpb25TdGF0dXMuU3VjY2Vzc2Z1bDpcclxuICAgICAgICAgICAgICByZXR1cm4gb2YodGhpcy5fc3RhdGVTdHJlYW0uZ2V0VmFsdWUoKSk7XHJcbiAgICAgICAgICAgIGNhc2UgQWN0aW9uU3RhdHVzLkVycm9yZWQ6XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoY3R4LmVycm9yKTtcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICByZXR1cm4gRU1QVFk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgICAucGlwZShzaGFyZVJlcGxheSgpKTtcclxuICB9XHJcbn1cclxuIl19
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL2ludGVybmFsL2Rpc3BhdGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0MsT0FBTyxFQUErQixlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzlGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQVMzRCxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsT0FBc0I7OztZQUQxRSxVQUFVOztBQUlYLE1BQU0sT0FBTyxrQkFBa0I7Ozs7Ozs7OztJQUM3QixZQUNVLGFBQTJCLEVBQzNCLFFBQXlCLEVBQ3pCLGNBQStDLEVBQy9DLGNBQTZCLEVBQzdCLFlBQXlCLEVBQ3pCLHNCQUFxRDtRQUxyRCxrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUMzQixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixtQkFBYyxHQUFkLGNBQWMsQ0FBaUM7UUFDL0MsbUJB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Q0FBQyxJQUFJLENBQzdCLE1BQU07Ozs7UUFDSixDQUFDLEdBQWtCLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEtBQUssTUFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLGtDQUE0QixFQUN4RixFQUNELElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxXQUFXLEVBQUUsQ0FDZCxDQUFDO0lBQ0osQ0FBQzs7Ozs7O0lBRU8sd0JBQXdCLENBQUMsYUFBd0M7UUFDdkUsT0FBTyxhQUFhO2FBQ2pCLElBQUksQ0FDSCxVQUFVOzs7O1FBQUMsQ0FBQyxHQUFrQixFQUFFLEVBQUU7WUFDaEMsUUFBUSxHQUFHLENBQUMsTUFBTSxFQUFFO2dCQUNsQjtvQkFDRSxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQzFDO29CQUNFLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDL0I7b0JBQ0UsT0FBTyxLQUFLLENBQUM7YUFDaEI7UUFDSCxDQUFDLEVBQUMsQ0FDSDthQUNBLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7OztZQTNGRixVQUFVOzs7O1lBckJGLFlBQVk7WUFLaUIsZUFBZTtZQXFCekIsK0JBQStCO1lBbkJsRCxhQUFhO1lBRGIsV0FBVztZQUVYLDZCQUE2Qjs7Ozs7OztJQWdCbEMsMkNBQW1DOzs7OztJQUNuQyxzQ0FBaUM7Ozs7O0lBQ2pDLDRDQUF1RDs7Ozs7SUFDdkQsNENBQXFDOzs7OztJQUNyQywwQ0FBaUM7Ozs7O0lBQ2pDLG9EQUE2RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVycm9ySGFuZGxlciwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFTVBUWSwgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGV4aGF1c3RNYXAsIGZpbHRlciwgc2hhcmVSZXBsYXksIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBjb21wb3NlIH0gZnJvbSAnLi4vdXRpbHMvY29tcG9zZSc7XHJcbmltcG9ydCB7IEFjdGlvbkNvbnRleHQsIEFjdGlvblN0YXR1cywgSW50ZXJuYWxBY3Rpb25zIH0gZnJvbSAnLi4vYWN0aW9ucy1zdHJlYW0nO1xyXG5pbXBvcnQgeyBTdGF0ZVN0cmVhbSB9IGZyb20gJy4vc3RhdGUtc3RyZWFtJztcclxuaW1wb3J0IHsgUGx1Z2luTWFuYWdlciB9IGZyb20gJy4uL3BsdWdpbi1tYW5hZ2VyJztcclxuaW1wb3J0IHsgSW50ZXJuYWxOZ3hzRXhlY3V0aW9uU3RyYXRlZ3kgfSBmcm9tICcuLi9leGVjdXRpb24vaW50ZXJuYWwtbmd4cy1leGVjdXRpb24tc3RyYXRlZ3knO1xyXG5pbXBvcnQgeyBsZWF2ZU5neHMgfSBmcm9tICcuLi9vcGVyYXRvcnMvbGVhdmUtbmd4cyc7XHJcbmltcG9ydCB7IGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UgfSBmcm9tICcuLi91dGlscy91dGlscyc7XHJcblxyXG4vKipcclxuICogSW50ZXJuYWwgQWN0aW9uIHJlc3VsdCBzdHJlYW0gdGhhdCBpcyBlbWl0dGVkIHdoZW4gYW4gYWN0aW9uIGlzIGNvbXBsZXRlZC5cclxuICogVGhpcyBpcyB1c2VkIGFzIGEgbWV0aG9kIG9mIHJldHVybmluZyB0aGUgYWN0aW9uIHJlc3VsdCB0byB0aGUgZGlzcGF0Y2hlclxyXG4gKiBmb3IgdGhlIG9ic2VydmFibGUgcmV0dXJuZWQgYnkgdGhlIGRpc3BhdGNoKC4uLikgY2FsbC5cclxuICogVGhlIGRpc3BhdGNoZXIgdGhlbiBhc3luY2hyb25vdXNseSBwdXNoZXMgdGhlIHJlc3VsdCBmcm9tIHRoaXMgc3RyZWFtIG9udG8gdGhlIG1haW4gYWN0aW9uIHN0cmVhbSBhcyBhIHJlc3VsdC5cclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEludGVybmFsRGlzcGF0Y2hlZEFjdGlvblJlc3VsdHMgZXh0ZW5kcyBTdWJqZWN0PEFjdGlvbkNvbnRleHQ+IHt9XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBJbnRlcm5hbERpc3BhdGNoZXIge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZXJyb3JIYW5kbGVyOiBFcnJvckhhbmRsZXIsXHJcbiAgICBwcml2YXRlIF9hY3Rpb25zOiBJbnRlcm5hbEFjdGlvbnMsXHJcbiAgICBwcml2YXRlIF9hY3Rpb25SZXN1bHRzOiBJbnRlcm5hbERpc3BhdGNoZWRBY3Rpb25SZXN1bHRzLFxyXG4gICAgcHJpdmF0ZSBfcGx1Z2luTWFuYWdlcjogUGx1Z2luTWFuYWdlcixcclxuICAgIHByaXZhdGUgX3N0YXRlU3RyZWFtOiBTdGF0ZVN0cmVhbSxcclxuICAgIHByaXZhdGUgX25neHNFeGVjdXRpb25TdHJhdGVneTogSW50ZXJuYWxOZ3hzRXhlY3V0aW9uU3RyYXRlZ3lcclxuICApIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpc3BhdGNoZXMgZXZlbnQocykuXHJcbiAgICovXHJcbiAgZGlzcGF0Y2goYWN0aW9uT3JBY3Rpb25zOiBhbnkgfCBhbnlbXSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9uZ3hzRXhlY3V0aW9uU3RyYXRlZ3kuZW50ZXIoKCkgPT5cclxuICAgICAgdGhpcy5kaXNwYXRjaEJ5RXZlbnRzKGFjdGlvbk9yQWN0aW9ucylcclxuICAgICk7XHJcblxyXG4gICAgcmVzdWx0LnN1YnNjcmliZSh7XHJcbiAgICAgIGVycm9yOiBlcnJvciA9PlxyXG4gICAgICAgIHRoaXMuX25neHNFeGVjdXRpb25TdHJhdGVneS5sZWF2ZSgoKSA9PiB7XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICB0aGlzLl9lcnJvckhhbmRsZXIuaGFuZGxlRXJyb3IoZXJyb3IpO1xyXG4gICAgICAgICAgfSBjYXRjaCB7fVxyXG4gICAgICAgIH0pXHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0LnBpcGUobGVhdmVOZ3hzKHRoaXMuX25neHNFeGVjdXRpb25TdHJhdGVneSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkaXNwYXRjaEJ5RXZlbnRzKGFjdGlvbk9yQWN0aW9uczogYW55IHwgYW55W10pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoYWN0aW9uT3JBY3Rpb25zKSkge1xyXG4gICAgICBpZiAoYWN0aW9uT3JBY3Rpb25zLmxlbmd0aCA9PT0gMCkgcmV0dXJuIG9mKHRoaXMuX3N0YXRlU3RyZWFtLmdldFZhbHVlKCkpO1xyXG4gICAgICByZXR1cm4gZm9ya0pvaW4oYWN0aW9uT3JBY3Rpb25zLm1hcChhY3Rpb24gPT4gdGhpcy5kaXNwYXRjaFNpbmdsZShhY3Rpb24pKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaFNpbmdsZShhY3Rpb25PckFjdGlvbnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkaXNwYXRjaFNpbmdsZShhY3Rpb246IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB0eXBlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlKGFjdGlvbik7XHJcbiAgICBpZiAoIXR5cGUpIHtcclxuICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoXHJcbiAgICAgICAgYFRoaXMgYWN0aW9uIGRvZXNuJ3QgaGF2ZSBhIHR5cGUgcHJvcGVydHk6ICR7YWN0aW9uLmNvbnN0cnVjdG9yLm5hbWV9YFxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcHJldlN0YXRlID0gdGhpcy5fc3RhdGVTdHJlYW0uZ2V0VmFsdWUoKTtcclxuICAgIGNvbnN0IHBsdWdpbnMgPSB0aGlzLl9wbHVnaW5NYW5hZ2VyLnBsdWdpbnM7XHJcblxyXG4gICAgcmV0dXJuIChjb21wb3NlKFtcclxuICAgICAgLi4ucGx1Z2lucyxcclxuICAgICAgKG5leHRTdGF0ZTogYW55LCBuZXh0QWN0aW9uOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAobmV4dFN0YXRlICE9PSBwcmV2U3RhdGUpIHtcclxuICAgICAgICAgIHRoaXMuX3N0YXRlU3RyZWFtLm5leHQobmV4dFN0YXRlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgYWN0aW9uUmVzdWx0JCA9IHRoaXMuZ2V0QWN0aW9uUmVzdWx0U3RyZWFtKG5leHRBY3Rpb24pO1xyXG4gICAgICAgIGFjdGlvblJlc3VsdCQuc3Vic2NyaWJlKGN0eCA9PiB0aGlzLl9hY3Rpb25zLm5leHQoY3R4KSk7XHJcbiAgICAgICAgdGhpcy5fYWN0aW9ucy5uZXh0KHsgYWN0aW9uOiBuZXh0QWN0aW9uLCBzdGF0dXM6IEFjdGlvblN0YXR1cy5EaXNwYXRjaGVkIH0pO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZURpc3BhdGNoT2JzZXJ2YWJsZShhY3Rpb25SZXN1bHQkKTtcclxuICAgICAgfVxyXG4gICAgXSkocHJldlN0YXRlLCBhY3Rpb24pIGFzIE9ic2VydmFibGU8YW55PikucGlwZShzaGFyZVJlcGxheSgpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QWN0aW9uUmVzdWx0U3RyZWFtKGFjdGlvbjogYW55KTogT2JzZXJ2YWJsZTxBY3Rpb25Db250ZXh0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9uUmVzdWx0cy5waXBlKFxyXG4gICAgICBmaWx0ZXIoXHJcbiAgICAgICAgKGN0eDogQWN0aW9uQ29udGV4dCkgPT4gY3R4LmFjdGlvbiA9PT0gYWN0aW9uICYmIGN0eC5zdGF0dXMgIT09IEFjdGlvblN0YXR1cy5EaXNwYXRjaGVkXHJcbiAgICAgICksXHJcbiAgICAgIHRha2UoMSksXHJcbiAgICAgIHNoYXJlUmVwbGF5KClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZURpc3BhdGNoT2JzZXJ2YWJsZShhY3Rpb25SZXN1bHQkOiBPYnNlcnZhYmxlPEFjdGlvbkNvbnRleHQ+KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiBhY3Rpb25SZXN1bHQkXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGV4aGF1c3RNYXAoKGN0eDogQWN0aW9uQ29udGV4dCkgPT4ge1xyXG4gICAgICAgICAgc3dpdGNoIChjdHguc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIGNhc2UgQWN0aW9uU3RhdHVzLlN1Y2Nlc3NmdWw6XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKHRoaXMuX3N0YXRlU3RyZWFtLmdldFZhbHVlKCkpO1xyXG4gICAgICAgICAgICBjYXNlIEFjdGlvblN0YXR1cy5FcnJvcmVkOlxyXG4gICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGN0eC5lcnJvcik7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUoc2hhcmVSZXBsYXkoKSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -31,10 +31,10 @@ if (false) {
31
31
  */
32
32
  StateOperations.prototype.setState = function (val) { };
33
33
  /**
34
- * @param {?} actions
34
+ * @param {?} actionOrActions
35
35
  * @return {?}
36
36
  */
37
- StateOperations.prototype.dispatch = function (actions) { };
37
+ StateOperations.prototype.dispatch = function (actionOrActions) { };
38
38
  }
39
39
  /**
40
40
  * @record
@@ -486,4 +486,4 @@ export function getStateDiffChanges(mappedStore, diff) {
486
486
  const currentValue = getValue(diff.newAppState, mappedStore.path);
487
487
  return new NgxsSimpleChange(previousValue, currentValue, !mappedStore.isInitialised);
488
488
  }
489
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWxzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvIiwic291cmNlcyI6WyJzcmMvaW50ZXJuYWwvaW50ZXJuYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFHQSxPQUFPLEVBQ0wsUUFBUSxFQUNSLGdCQUFnQixFQUVoQixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBRWxCLE1BQU0sWUFBWSxDQUFDO0FBRXBCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFHMUMsd0NBR0M7Ozs7Ozs7Ozs7O0FBS0QscUNBTUM7Ozs7O0lBTEMscURBQWM7Ozs7O0lBRWQsd0RBQW9COzs7OztJQUVwQiw0REFBaUQ7Ozs7O0FBR25ELG1DQU9DOzs7SUFOQyw2QkFBb0I7O0lBQ3BCLGdDQUFnRDs7SUFDaEQsaUNBQWM7O0lBQ2QsNkJBQW9COztJQUNwQix5Q0FBeUM7O0lBQ3pDLGlDQUFnQzs7Ozs7QUFHbEMsNENBR0M7Ozs7OztJQUZDLHFFQUE4Qzs7Ozs7SUFDOUMsa0ZBQWdGOzs7OztBQU1sRiwyQ0FHQzs7O0lBRkMscURBQStCOztJQUMvQiwrQ0FBeUI7Ozs7O0FBRzNCLDJDQU1DOzs7SUFMQyxpREFBeUM7O0lBQ3pDLDJDQUE0Qjs7SUFDNUIsK0NBQW9COztJQUNwQiw2Q0FBNEI7O0lBQzVCLG1EQUFnRDs7Ozs7QUFHbEQsaUNBT0M7OztJQU5DLDJCQUFhOztJQUNiLG9DQUF1Qjs7SUFDdkIsOEJBQWdEOztJQUNoRCwrQkFBYzs7SUFDZCwrQkFBYzs7SUFDZCwyQkFBYTs7Ozs7QUFHZix1Q0FHQzs7O0lBRkMscUNBQWM7O0lBQ2QsbUNBQXNCOzs7Ozs7QUFLeEIsbUNBR0M7OztJQUZDLHdDQUFtQjs7SUFDbkIsb0NBQWU7Ozs7Ozs7OztBQVFqQixNQUFNLFVBQVUsbUJBQW1CLENBQUMsTUFBMEI7SUFDNUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUU7O2NBQzlCLGVB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QUksQ0FBQyxJQUFJLE9BQU8sR0FBRyxLQUFLLFVBQVUsQ0FBQztBQUNoRixDQUFDOzs7Ozs7O0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxXQUF3QixFQUN4QixJQUFzQjs7VUFFaEIsYUFBYSxHQUFNLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUM7O1VBQ25FLFlBQVksR0FBTSxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDO0lBQ3BFLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsWUFBWSxFQUFFLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3ZGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpbk9iamVjdE9mLCBTdGF0ZUNsYXNzIH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHtcclxuICBNRVRBX0tFWSxcclxuICBNRVRBX09QVElPTlNfS0VZLFxyXG4gIE5neHNDb25maWcsXHJcbiAgTmd4c1NpbXBsZUNoYW5nZSxcclxuICBTRUxFQ1RPUl9NRVRBX0tFWSxcclxuICBTdG9yZU9wdGlvbnNcclxufSBmcm9tICcuLi9zeW1ib2xzJztcclxuaW1wb3J0IHsgQWN0aW9uSGFuZGxlck1ldGFEYXRhIH0gZnJvbSAnLi4vYWN0aW9ucy9zeW1ib2xzJztcclxuaW1wb3J0IHsgZ2V0VmFsdWUgfSBmcm9tICcuLi91dGlscy91dGlscyc7XHJcblxyXG4vLyBpbnNwaXJlZCBmcm9tIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS80MzY3NDM4OVxyXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlQ2xhc3NJbnRlcm5hbDxUID0gYW55LCBVID0gYW55PiBleHRlbmRzIFN0YXRlQ2xhc3M8VD4ge1xyXG4gIFtNRVRBX0tFWV0/OiBNZXRhRGF0YU1vZGVsO1xyXG4gIFtNRVRBX09QVElPTlNfS0VZXT86IFN0b3JlT3B0aW9uczxVPjtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU3RhdGVLZXlHcmFwaCA9IFBsYWluT2JqZWN0T2Y8c3RyaW5nW10+O1xyXG5leHBvcnQgdHlwZSBTdGF0ZXNCeU5hbWUgPSBQbGFpbk9iamVjdE9mPFN0YXRlQ2xhc3NJbnRlcm5hbD47XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlT3BlcmF0aW9uczxUPiB7XHJcbiAgZ2V0U3RhdGUoKTogVDtcclxuXHJcbiAgc2V0U3RhdGUodmFsOiBUKTogVDtcclxuXHJcbiAgZGlzcGF0Y2goYWN0aW9uczogYW55IHwgYW55W10pOiBPYnNlcnZhYmxlPHZvaWQ+O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE1ldGFEYXRhTW9kZWwge1xyXG4gIG5hbWU6IHN0cmluZyB8IG51bGw7XHJcbiAgYWN0aW9uczogUGxhaW5PYmplY3RPZjxBY3Rpb25IYW5kbGVyTWV0YURhdGFbXT47XHJcbiAgZGVmYXVsdHM6IGFueTtcclxuICBwYXRoOiBzdHJpbmcgfCBudWxsO1xyXG4gIG1ha2VSb290U2VsZWN0b3I6IFNlbGVjdG9yRmFjdG9yeSB8IG51bGw7XHJcbiAgY2hpbGRyZW4/OiBTdGF0ZUNsYXNzSW50ZXJuYWxbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSdW50aW1lU2VsZWN0b3JDb250ZXh0IHtcclxuICBnZXRTdGF0ZUdldHRlcihrZXk6IGFueSk6IChzdGF0ZTogYW55KSA9PiBhbnk7XHJcbiAgZ2V0U2VsZWN0b3JPcHRpb25zKGxvY2FsT3B0aW9ucz86IFNoYXJlZFNlbGVjdG9yT3B0aW9ucyk6IFNoYXJlZFNlbGVjdG9yT3B0aW9ucztcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU2VsZWN0RnJvbVJvb3RTdGF0ZSA9IChyb290U3RhdGU6IGFueSkgPT4gYW55O1xyXG5leHBvcnQgdHlwZSBTZWxlY3RvckZhY3RvcnkgPSAocnVudGltZUNvbnRleHQ6IFJ1bnRpbWVTZWxlY3RvckNvbnRleHQpID0+IFNlbGVjdEZyb21Sb290U3RhdGU7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZFNlbGVjdG9yT3B0aW9ucyB7XHJcbiAgaW5qZWN0Q29udGFpbmVyU3RhdGU/OiBib29sZWFuO1xyXG4gIHN1cHByZXNzRXJyb3JzPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3Rvck1ldGFEYXRhTW9kZWwge1xyXG4gIG1ha2VSb290U2VsZWN0b3I6IFNlbGVjdG9yRmFjdG9yeSB8IG51bGw7XHJcbiAgb3JpZ2luYWxGbjogRnVuY3Rpb24gfCBudWxsO1xyXG4gIGNvbnRhaW5lckNsYXNzOiBhbnk7XHJcbiAgc2VsZWN0b3JOYW1lOiBzdHJpbmcgfCBudWxsO1xyXG4gIGdldFNlbGVjdG9yT3B0aW9uczogKCkgPT4gU2hhcmVkU2VsZWN0b3JPcHRpb25zO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE1hcHBlZFN0b3JlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgaXNJbml0aWFsaXNlZDogYm9vbGVhbjtcclxuICBhY3Rpb25zOiBQbGFpbk9iamVjdE9mPEFjdGlvbkhhbmRsZXJNZXRhRGF0YVtdPjtcclxuICBkZWZhdWx0czogYW55O1xyXG4gIGluc3RhbmNlOiBhbnk7XHJcbiAgcGF0aDogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlc0FuZERlZmF1bHRzIHtcclxuICBkZWZhdWx0czogYW55O1xyXG4gIHN0YXRlczogTWFwcGVkU3RvcmVbXTtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ2FsbGJhY2s8VCA9IGFueSwgViA9IGFueT4gPSAoLi4uYXJnczogVltdKSA9PiBUO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSb290U3RhdGVEaWZmPFQ+IHtcclxuICBjdXJyZW50QXBwU3RhdGU6IFQ7XHJcbiAgbmV3QXBwU3RhdGU6IFQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBFbnN1cmVzIG1ldGFkYXRhIGlzIGF0dGFjaGVkIHRvIHRoZSBjbGFzcyBhbmQgcmV0dXJucyBpdC5cclxuICpcclxuICogQGlnbm9yZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZVN0b3JlTWV0YWRhdGEodGFyZ2V0OiBTdGF0ZUNsYXNzSW50ZXJuYWwpOiBNZXRhRGF0YU1vZGVsIHtcclxuICBpZiAoIXRhcmdldC5oYXNPd25Qcm9wZXJ0eShNRVRBX0tFWSkpIHtcclxuICAgIGNvbnN0IGRlZmF1bHRNZXRhZGF0YTogTWV0YURhdGFNb2RlbCA9IHtcclxuICAgICAgbmFtZTogbnVsbCxcclxuICAgICAgYWN0aW9uczoge30sXHJcbiAgICAgIGRlZmF1bHRzOiB7fSxcclxuICAgICAgcGF0aDogbnVsbCxcclxuICAgICAgbWFrZVJvb3RTZWxlY3Rvcihjb250ZXh0OiBSdW50aW1lU2VsZWN0b3JDb250ZXh0KSB7XHJcbiAgICAgICAgcmV0dXJuIGNvbnRleHQuZ2V0U3RhdGVHZXR0ZXIoZGVmYXVsdE1ldGFkYXRhLm5hbWUpO1xyXG4gICAgICB9LFxyXG4gICAgICBjaGlsZHJlbjogW11cclxuICAgIH07XHJcblxyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgTUVUQV9LRVksIHsgdmFsdWU6IGRlZmF1bHRNZXRhZGF0YSB9KTtcclxuICB9XHJcbiAgcmV0dXJuIGdldFN0b3JlTWV0YWRhdGEodGFyZ2V0KTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldCB0aGUgbWV0YWRhdGEgYXR0YWNoZWQgdG8gdGhlIHN0YXRlIGNsYXNzIGlmIGl0IGV4aXN0cy5cclxuICpcclxuICogQGlnbm9yZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0b3JlTWV0YWRhdGEodGFyZ2V0OiBTdGF0ZUNsYXNzSW50ZXJuYWwpOiBNZXRhRGF0YU1vZGVsIHtcclxuICByZXR1cm4gdGFyZ2V0W01FVEFfS0VZXSE7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBFbnN1cmVzIG1ldGFkYXRhIGlzIGF0dGFjaGVkIHRvIHRoZSBzZWxlY3RvciBhbmQgcmV0dXJucyBpdC5cclxuICpcclxuICogQGlnbm9yZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZVNlbGVjdG9yTWV0YWRhdGEodGFyZ2V0OiBGdW5jdGlvbik6IFNlbGVjdG9yTWV0YURhdGFNb2RlbCB7XHJcbiAgaWYgKCF0YXJnZXQuaGFzT3duUHJvcGVydHkoU0VMRUNUT1JfTUVUQV9LRVkpKSB7XHJcbiAgICBjb25zdCBkZWZhdWx0TWV0YWRhdGE6IFNlbGVjdG9yTWV0YURhdGFNb2RlbCA9IHtcclxuICAgICAgbWFrZVJvb3RTZWxlY3RvcjogbnVsbCxcclxuICAgICAgb3JpZ2luYWxGbjogbnVsbCxcclxuICAgICAgY29udGFpbmVyQ2xhc3M6IG51bGwsXHJcbiAgICAgIHNlbGVjdG9yTmFtZTogbnVsbCxcclxuICAgICAgZ2V0U2VsZWN0b3JPcHRpb25zOiAoKSA9PiAoe30pXHJcbiAgICB9O1xyXG5cclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIFNFTEVDVE9SX01FVEFfS0VZLCB7IHZhbHVlOiBkZWZhdWx0TWV0YWRhdGEgfSk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZ2V0U2VsZWN0b3JNZXRhZGF0YSh0YXJnZXQpO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0IHRoZSBtZXRhZGF0YSBhdHRhY2hlZCB0byB0aGUgc2VsZWN0b3IgaWYgaXQgZXhpc3RzLlxyXG4gKlxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VsZWN0b3JNZXRhZGF0YSh0YXJnZXQ6IGFueSk6IFNlbGVjdG9yTWV0YURhdGFNb2RlbCB7XHJcbiAgcmV0dXJuIHRhcmdldFtTRUxFQ1RPUl9NRVRBX0tFWV07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXQgYSBkZWVwbHkgbmVzdGVkIHZhbHVlLiBFeGFtcGxlOlxyXG4gKlxyXG4gKiAgICBnZXRWYWx1ZSh7IGZvbzogYmFyOiBbXSB9LCAnZm9vLmJhcicpIC8vPT4gW11cclxuICpcclxuICogTm90ZTogVGhpcyBpcyBub3QgYXMgZmFzdCBhcyB0aGUgYGZhc3RQcm9wR2V0dGVyYCBidXQgaXMgc3RyaWN0IENvbnRlbnQgU2VjdXJpdHkgUG9saWN5IGNvbXBsaWFudC5cclxuICogU2VlIHBlcmYgaGl0OiBodHRwczovL2pzcGVyZi5jb20vZmFzdC12YWx1ZS1nZXR0ZXItZ2l2ZW4tcGF0aC8xXHJcbiAqXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbmZ1bmN0aW9uIGNvbXBsaWFudFByb3BHZXR0ZXIocGF0aHM6IHN0cmluZ1tdKTogKHg6IGFueSkgPT4gYW55IHtcclxuICBjb25zdCBjb3B5T2ZQYXRocyA9IHBhdGhzLnNsaWNlKCk7XHJcbiAgcmV0dXJuIG9iaiA9PiBjb3B5T2ZQYXRocy5yZWR1Y2UoKGFjYzogYW55LCBwYXJ0OiBzdHJpbmcpID0+IGFjYyAmJiBhY2NbcGFydF0sIG9iaik7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGUgZ2VuZXJhdGVkIGZ1bmN0aW9uIGlzIGZhc3RlciB0aGFuOlxyXG4gKiAtIHBsdWNrIChPYnNlcnZhYmxlIG9wZXJhdG9yKVxyXG4gKiAtIG1lbW9pemVcclxuICpcclxuICogQGlnbm9yZVxyXG4gKi9cclxuZnVuY3Rpb24gZmFzdFByb3BHZXR0ZXIocGF0aHM6IHN0cmluZ1tdKTogKHg6IGFueSkgPT4gYW55IHtcclxuICBjb25zdCBzZWdtZW50cyA9IHBhdGhzO1xyXG4gIGxldCBzZWcgPSAnc3RvcmUuJyArIHNlZ21lbnRzWzBdO1xyXG4gIGxldCBpID0gMDtcclxuICBjb25zdCBsID0gc2VnbWVudHMubGVuZ3RoO1xyXG5cclxuICBsZXQgZXhwciA9IHNlZztcclxuICB3aGlsZSAoKytpIDwgbCkge1xyXG4gICAgZXhwciA9IGV4cHIgKyAnICYmICcgKyAoc2VnID0gc2VnICsgJy4nICsgc2VnbWVudHNbaV0pO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgZm4gPSBuZXcgRnVuY3Rpb24oJ3N0b3JlJywgJ3JldHVybiAnICsgZXhwciArICc7Jyk7XHJcblxyXG4gIHJldHVybiA8KHg6IGFueSkgPT4gYW55PmZuO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0IGEgZGVlcGx5IG5lc3RlZCB2YWx1ZS4gRXhhbXBsZTpcclxuICpcclxuICogICAgZ2V0VmFsdWUoeyBmb286IGJhcjogW10gfSwgJ2Zvby5iYXInKSAvLz0+IFtdXHJcbiAqXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBwcm9wR2V0dGVyKHBhdGhzOiBzdHJpbmdbXSwgY29uZmlnOiBOZ3hzQ29uZmlnKSB7XHJcbiAgaWYgKGNvbmZpZyAmJiBjb25maWcuY29tcGF0aWJpbGl0eSAmJiBjb25maWcuY29tcGF0aWJpbGl0eS5zdHJpY3RDb250ZW50U2VjdXJpdHlQb2xpY3kpIHtcclxuICAgIHJldHVybiBjb21wbGlhbnRQcm9wR2V0dGVyKHBhdGhzKTtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIGZhc3RQcm9wR2V0dGVyKHBhdGhzKTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHaXZlbiBhbiBhcnJheSBvZiBzdGF0ZXMsIGl0IHdpbGwgcmV0dXJuIGEgb2JqZWN0IGdyYXBoLiBFeGFtcGxlOlxyXG4gKiAgICBjb25zdCBzdGF0ZXMgPSBbXHJcbiAqICAgICAgQ2FydCxcclxuICogICAgICBDYXJ0U2F2ZWQsXHJcbiAqICAgICAgQ2FydFNhdmVkSXRlbXNcclxuICogICAgXVxyXG4gKlxyXG4gKiB3b3VsZCByZXR1cm46XHJcbiAqXHJcbiAqICBjb25zdCBncmFwaCA9IHtcclxuICogICAgY2FydDogWydzYXZlZCddLFxyXG4gKiAgICBzYXZlZDogWydpdGVtcyddLFxyXG4gKiAgICBpdGVtczogW11cclxuICogIH07XHJcbiAqXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBidWlsZEdyYXBoKHN0YXRlQ2xhc3NlczogU3RhdGVDbGFzc0ludGVybmFsW10pOiBTdGF0ZUtleUdyYXBoIHtcclxuICBjb25zdCBmaW5kTmFtZSA9IChzdGF0ZUNsYXNzOiBTdGF0ZUNsYXNzSW50ZXJuYWwpID0+IHtcclxuICAgIGNvbnN0IG1ldGEgPSBzdGF0ZUNsYXNzZXMuZmluZChnID0+IGcgPT09IHN0YXRlQ2xhc3MpO1xyXG4gICAgaWYgKCFtZXRhKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICBgQ2hpbGQgc3RhdGUgbm90IGZvdW5kOiAke3N0YXRlQ2xhc3N9LiBcXHJcXG5Zb3UgbWF5IGhhdmUgZm9yZ290dGVuIHRvIGFkZCBzdGF0ZXMgdG8gbW9kdWxlYFxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBtZXRhW01FVEFfS0VZXSEubmFtZSE7XHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIHN0YXRlQ2xhc3Nlcy5yZWR1Y2U8U3RhdGVLZXlHcmFwaD4oXHJcbiAgICAocmVzdWx0OiBTdGF0ZUtleUdyYXBoLCBzdGF0ZUNsYXNzOiBTdGF0ZUNsYXNzSW50ZXJuYWwpID0+IHtcclxuICAgICAgY29uc3QgeyBuYW1lLCBjaGlsZHJlbiB9ID0gc3RhdGVDbGFzc1tNRVRBX0tFWV0hO1xyXG4gICAgICByZXN1bHRbbmFtZSFdID0gKGNoaWxkcmVuIHx8IFtdKS5tYXAoZmluZE5hbWUpO1xyXG4gICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfSxcclxuICAgIHt9XHJcbiAgKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdpdmVuIGEgc3RhdGVzIGFycmF5LCByZXR1cm5zIG9iamVjdCBncmFwaFxyXG4gKiByZXR1cm5pbmcgdGhlIG5hbWUgYW5kIHN0YXRlIG1ldGFkYXRhLiBFeGFtcGxlOlxyXG4gKlxyXG4gKiAgY29uc3QgZ3JhcGggPSB7XHJcbiAqICAgIGNhcnQ6IHsgbWV0YWRhdGEgfVxyXG4gKiAgfTtcclxuICpcclxuICogQGlnbm9yZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG5hbWVUb1N0YXRlKHN0YXRlczogU3RhdGVDbGFzc0ludGVybmFsW10pOiBQbGFpbk9iamVjdE9mPFN0YXRlQ2xhc3NJbnRlcm5hbD4ge1xyXG4gIHJldHVybiBzdGF0ZXMucmVkdWNlPFBsYWluT2JqZWN0T2Y8U3RhdGVDbGFzc0ludGVybmFsPj4oXHJcbiAgICAocmVzdWx0OiBQbGFpbk9iamVjdE9mPFN0YXRlQ2xhc3NJbnRlcm5hbD4sIHN0YXRlQ2xhc3M6IFN0YXRlQ2xhc3NJbnRlcm5hbCkgPT4ge1xyXG4gICAgICBjb25zdCBtZXRhID0gc3RhdGVDbGFzc1tNRVRBX0tFWV0hO1xyXG4gICAgICByZXN1bHRbbWV0YS5uYW1lIV0gPSBzdGF0ZUNsYXNzO1xyXG4gICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfSxcclxuICAgIHt9XHJcbiAgKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdpdmVuIGEgb2JqZWN0IHJlbGF0aW9uc2hpcCBncmFwaCB3aWxsIHJldHVybiB0aGUgZnVsbCBwYXRoXHJcbiAqIGZvciB0aGUgY2hpbGQgaXRlbXMuIEV4YW1wbGU6XHJcbiAqXHJcbiAqICBjb25zdCBncmFwaCA9IHtcclxuICogICAgY2FydDogWydzYXZlZCddLFxyXG4gKiAgICBzYXZlZDogWydpdGVtcyddLFxyXG4gKiAgICBpdGVtczogW11cclxuICogIH07XHJcbiAqXHJcbiAqIHdvdWxkIHJldHVybjpcclxuICpcclxuICogIGNvbnN0IHIgPSB7XHJcbiAqICAgIGNhcnQ6ICdjYXJ0JyxcclxuICogICAgc2F2ZWQ6ICdjYXJ0LnNhdmVkJyxcclxuICogICAgaXRlbXM6ICdjYXJ0LnNhdmVkLml0ZW1zJ1xyXG4gKiAgfTtcclxuICpcclxuICogQGlnbm9yZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRGdWxsUGFyZW50UGF0aChcclxuICBvYmo6IFN0YXRlS2V5R3JhcGgsXHJcbiAgbmV3T2JqOiBQbGFpbk9iamVjdE9mPHN0cmluZz4gPSB7fVxyXG4pOiBQbGFpbk9iamVjdE9mPHN0cmluZz4ge1xyXG4gIGNvbnN0IHZpc2l0ID0gKGNoaWxkOiBTdGF0ZUtleUdyYXBoLCBrZXlUb0ZpbmQ6IHN0cmluZyk6IHN0cmluZyB8IG51bGwgPT4ge1xyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gY2hpbGQpIHtcclxuICAgICAgaWYgKGNoaWxkLmhhc093blByb3BlcnR5KGtleSkgJiYgY2hpbGRba2V5XS5pbmRleE9mKGtleVRvRmluZCkgPj0gMCkge1xyXG4gICAgICAgIGNvbnN0IHBhcmVudCA9IHZpc2l0KGNoaWxkLCBrZXkpO1xyXG4gICAgICAgIHJldHVybiBwYXJlbnQgIT09IG51bGwgPyBgJHtwYXJlbnR9LiR7a2V5fWAgOiBrZXk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH07XHJcblxyXG4gIGZvciAoY29uc3Qga2V5IGluIG9iaikge1xyXG4gICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgIGNvbnN0IHBhcmVudCA9IHZpc2l0KG9iaiwga2V5KTtcclxuICAgICAgbmV3T2JqW2tleV0gPSBwYXJlbnQgPyBgJHtwYXJlbnR9LiR7a2V5fWAgOiBrZXk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gbmV3T2JqO1xyXG59XHJcblxyXG4vKipcclxuICogR2l2ZW4gYSBvYmplY3QgZ3JhcGgsIGl0IHdpbGwgcmV0dXJuIHRoZSBpdGVtcyB0b3BvbG9naWNhbGx5IHNvcnRlZCBFeGFtcGxlOlxyXG4gKlxyXG4gKiAgY29uc3QgZ3JhcGggPSB7XHJcbiAqICAgIGNhcnQ6IFsnc2F2ZWQnXSxcclxuICogICAgc2F2ZWQ6IFsnaXRlbXMnXSxcclxuICogICAgaXRlbXM6IFtdXHJcbiAqICB9O1xyXG4gKlxyXG4gKiB3b3VsZCByZXR1cm46XHJcbiAqXHJcbiAqICBjb25zdCByZXN1bHRzID0gW1xyXG4gKiAgICAnaXRlbXMnLFxyXG4gKiAgICAnc2F2ZWQnLFxyXG4gKiAgICAnY2FydCdcclxuICogIF07XHJcbiAqXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB0b3BvbG9naWNhbFNvcnQoZ3JhcGg6IFN0YXRlS2V5R3JhcGgpOiBzdHJpbmdbXSB7XHJcbiAgY29uc3Qgc29ydGVkOiBzdHJpbmdbXSA9IFtdO1xyXG4gIGNvbnN0IHZpc2l0ZWQ6IFBsYWluT2JqZWN0T2Y8Ym9vbGVhbj4gPSB7fTtcclxuXHJcbiAgY29uc3QgdmlzaXQgPSAobmFtZTogc3RyaW5nLCBhbmNlc3RvcnM6IHN0cmluZ1tdID0gW10pID0+IHtcclxuICAgIGlmICghQXJyYXkuaXNBcnJheShhbmNlc3RvcnMpKSB7XHJcbiAgICAgIGFuY2VzdG9ycyA9IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIGFuY2VzdG9ycy5wdXNoKG5hbWUpO1xyXG4gICAgdmlzaXRlZFtuYW1lXSA9IHRydWU7XHJcblxyXG4gICAgZ3JhcGhbbmFtZV0uZm9yRWFjaCgoZGVwOiBzdHJpbmcpID0+IHtcclxuICAgICAgaWYgKGFuY2VzdG9ycy5pbmRleE9mKGRlcCkgPj0gMCkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgIGBDaXJjdWxhciBkZXBlbmRlbmN5ICcke2RlcH0nIGlzIHJlcXVpcmVkIGJ5ICcke25hbWV9JzogJHthbmNlc3RvcnMuam9pbignIC0+ICcpfWBcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodmlzaXRlZFtkZXBdKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB2aXNpdChkZXAsIGFuY2VzdG9ycy5zbGljZSgwKSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoc29ydGVkLmluZGV4T2YobmFtZSkgPCAwKSB7XHJcbiAgICAgIHNvcnRlZC5wdXNoKG5hbWUpO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIE9iamVjdC5rZXlzKGdyYXBoKS5mb3JFYWNoKGsgPT4gdmlzaXQoaykpO1xyXG5cclxuICByZXR1cm4gc29ydGVkLnJldmVyc2UoKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybnMgaWYgdGhlIHBhcmFtZXRlciBpcyBhIG9iamVjdCBvciBub3QuXHJcbiAqXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc09iamVjdChvYmo6IGFueSkge1xyXG4gIHJldHVybiAodHlwZW9mIG9iaiA9PT0gJ29iamVjdCcgJiYgb2JqICE9PSBudWxsKSB8fCB0eXBlb2Ygb2JqID09PSAnZnVuY3Rpb24nO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RhdGVEaWZmQ2hhbmdlczxUPihcclxuICBtYXBwZWRTdG9yZTogTWFwcGVkU3RvcmUsXHJcbiAgZGlmZjogUm9vdFN0YXRlRGlmZjxUPlxyXG4pOiBOZ3hzU2ltcGxlQ2hhbmdlIHtcclxuICBjb25zdCBwcmV2aW91c1ZhbHVlOiBUID0gZ2V0VmFsdWUoZGlmZi5jdXJyZW50QXBwU3RhdGUsIG1hcHBlZFN0b3JlLnBhdGgpO1xyXG4gIGNvbnN0IGN1cnJlbnRWYWx1ZTogVCA9IGdldFZhbHVlKGRpZmYubmV3QXBwU3RhdGUsIG1hcHBlZFN0b3JlLnBhdGgpO1xyXG4gIHJldHVybiBuZXcgTmd4c1NpbXBsZUNoYW5nZShwcmV2aW91c1ZhbHVlLCBjdXJyZW50VmFsdWUsICFtYXBwZWRTdG9yZS5pc0luaXRpYWxpc2VkKTtcclxufVxyXG4iXX0=
489
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWxzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvIiwic291cmNlcyI6WyJzcmMvaW50ZXJuYWwvaW50ZXJuYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFHQSxPQUFPLEVBQ0wsUUFBUSxFQUNSLGdCQUFnQixFQUVoQixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBRWxCLE1BQU0sWUFBWSxDQUFDO0FBRXBCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFHMUMsd0NBR0M7Ozs7Ozs7Ozs7O0FBS0QscUNBTUM7Ozs7O0lBTEMscURBQWM7Ozs7O0lBRWQsd0RBQW9COzs7OztJQUVwQixvRUFBeUQ7Ozs7O0FBRzNELG1DQU9DOzs7SUFOQyw2QkFBb0I7O0lBQ3BCLGdDQUFnRDs7SUFDaEQsaUNBQWM7O0lBQ2QsNkJBQW9COztJQUNwQix5Q0FBeUM7O0lBQ3pDLGlDQUFnQzs7Ozs7QUFHbEMsNENBR0M7Ozs7OztJQUZDLHFFQUE4Qzs7Ozs7SUFDOUMsa0ZBQWdGOzs7OztBQU1sRiwyQ0FHQzs7O0lBRkMscURBQStCOztJQUMvQiwrQ0FBeUI7Ozs7O0FBRzNCLDJDQU1DOzs7SUFMQyxpREFBeUM7O0lBQ3pDLDJDQUE0Qjs7SUFDNUIsK0NBQW9COztJQUNwQiw2Q0FBNEI7O0lBQzVCLG1EQUFnRDs7Ozs7QUFHbEQsaUNBT0M7OztJQU5DLDJCQUFhOztJQUNiLG9DQUF1Qjs7SUFDdkIsOEJBQWdEOztJQUNoRCwrQkFBYzs7SUFDZCwrQkFBYzs7SUFDZCwyQkFBYTs7Ozs7QUFHZix1Q0FHQzs7O0lBRkMscUNBQWM7O0lBQ2QsbUNBQXNCOzs7Ozs7QUFLeEIsbUNBR0M7OztJQUZDLHdDQUFtQjs7SUFDbkIsb0NBQWU7Ozs7Ozs7OztBQVFqQixNQUFNLFVBQVUsbUJBQW1CLENBQUMsTUFBMEI7SUFDNUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUU7O2NBQzlCLGVB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QUksQ0FBQyxJQUFJLE9BQU8sR0FBRyxLQUFLLFVBQVUsQ0FBQztBQUNoRixDQUFDOzs7Ozs7O0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxXQUF3QixFQUN4QixJQUFzQjs7VUFFaEIsYUFBYSxHQUFNLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUM7O1VBQ25FLFlBQVksR0FBTSxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDO0lBQ3BFLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsWUFBWSxFQUFFLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ3ZGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpbk9iamVjdE9mLCBTdGF0ZUNsYXNzIH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHtcclxuICBNRVRBX0tFWSxcclxuICBNRVRBX09QVElPTlNfS0VZLFxyXG4gIE5neHNDb25maWcsXHJcbiAgTmd4c1NpbXBsZUNoYW5nZSxcclxuICBTRUxFQ1RPUl9NRVRBX0tFWSxcclxuICBTdG9yZU9wdGlvbnNcclxufSBmcm9tICcuLi9zeW1ib2xzJztcclxuaW1wb3J0IHsgQWN0aW9uSGFuZGxlck1ldGFEYXRhIH0gZnJvbSAnLi4vYWN0aW9ucy9zeW1ib2xzJztcclxuaW1wb3J0IHsgZ2V0VmFsdWUgfSBmcm9tICcuLi91dGlscy91dGlscyc7XHJcblxyXG4vLyBpbnNwaXJlZCBmcm9tIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vYS80MzY3NDM4OVxyXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlQ2xhc3NJbnRlcm5hbDxUID0gYW55LCBVID0gYW55PiBleHRlbmRzIFN0YXRlQ2xhc3M8VD4ge1xyXG4gIFtNRVRBX0tFWV0/OiBNZXRhRGF0YU1vZGVsO1xyXG4gIFtNRVRBX09QVElPTlNfS0VZXT86IFN0b3JlT3B0aW9uczxVPjtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgU3RhdGVLZXlHcmFwaCA9IFBsYWluT2JqZWN0T2Y8c3RyaW5nW10+O1xyXG5leHBvcnQgdHlwZSBTdGF0ZXNCeU5hbWUgPSBQbGFpbk9iamVjdE9mPFN0YXRlQ2xhc3NJbnRlcm5hbD47XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlT3BlcmF0aW9uczxUPiB7XHJcbiAgZ2V0U3RhdGUoKTogVDtcclxuXHJcbiAgc2V0U3RhdGUodmFsOiBUKTogVDtcclxuXHJcbiAgZGlzcGF0Y2goYWN0aW9uT3JBY3Rpb25zOiBhbnkgfCBhbnlbXSk6IE9ic2VydmFibGU8dm9pZD47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWV0YURhdGFNb2RlbCB7XHJcbiAgbmFtZTogc3RyaW5nIHwgbnVsbDtcclxuICBhY3Rpb25zOiBQbGFpbk9iamVjdE9mPEFjdGlvbkhhbmRsZXJNZXRhRGF0YVtdPjtcclxuICBkZWZhdWx0czogYW55O1xyXG4gIHBhdGg6IHN0cmluZyB8IG51bGw7XHJcbiAgbWFrZVJvb3RTZWxlY3RvcjogU2VsZWN0b3JGYWN0b3J5IHwgbnVsbDtcclxuICBjaGlsZHJlbj86IFN0YXRlQ2xhc3NJbnRlcm5hbFtdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJ1bnRpbWVTZWxlY3RvckNvbnRleHQge1xyXG4gIGdldFN0YXRlR2V0dGVyKGtleTogYW55KTogKHN0YXRlOiBhbnkpID0+IGFueTtcclxuICBnZXRTZWxlY3Rvck9wdGlvbnMobG9jYWxPcHRpb25zPzogU2hhcmVkU2VsZWN0b3JPcHRpb25zKTogU2hhcmVkU2VsZWN0b3JPcHRpb25zO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBTZWxlY3RGcm9tUm9vdFN0YXRlID0gKHJvb3RTdGF0ZTogYW55KSA9PiBhbnk7XHJcbmV4cG9ydCB0eXBlIFNlbGVjdG9yRmFjdG9yeSA9IChydW50aW1lQ29udGV4dDogUnVudGltZVNlbGVjdG9yQ29udGV4dCkgPT4gU2VsZWN0RnJvbVJvb3RTdGF0ZTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkU2VsZWN0b3JPcHRpb25zIHtcclxuICBpbmplY3RDb250YWluZXJTdGF0ZT86IGJvb2xlYW47XHJcbiAgc3VwcHJlc3NFcnJvcnM/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdG9yTWV0YURhdGFNb2RlbCB7XHJcbiAgbWFrZVJvb3RTZWxlY3RvcjogU2VsZWN0b3JGYWN0b3J5IHwgbnVsbDtcclxuICBvcmlnaW5hbEZuOiBGdW5jdGlvbiB8IG51bGw7XHJcbiAgY29udGFpbmVyQ2xhc3M6IGFueTtcclxuICBzZWxlY3Rvck5hbWU6IHN0cmluZyB8IG51bGw7XHJcbiAgZ2V0U2VsZWN0b3JPcHRpb25zOiAoKSA9PiBTaGFyZWRTZWxlY3Rvck9wdGlvbnM7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWFwcGVkU3RvcmUge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBpc0luaXRpYWxpc2VkOiBib29sZWFuO1xyXG4gIGFjdGlvbnM6IFBsYWluT2JqZWN0T2Y8QWN0aW9uSGFuZGxlck1ldGFEYXRhW10+O1xyXG4gIGRlZmF1bHRzOiBhbnk7XHJcbiAgaW5zdGFuY2U6IGFueTtcclxuICBwYXRoOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGVzQW5kRGVmYXVsdHMge1xyXG4gIGRlZmF1bHRzOiBhbnk7XHJcbiAgc3RhdGVzOiBNYXBwZWRTdG9yZVtdO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDYWxsYmFjazxUID0gYW55LCBWID0gYW55PiA9ICguLi5hcmdzOiBWW10pID0+IFQ7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJvb3RTdGF0ZURpZmY8VD4ge1xyXG4gIGN1cnJlbnRBcHBTdGF0ZTogVDtcclxuICBuZXdBcHBTdGF0ZTogVDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEVuc3VyZXMgbWV0YWRhdGEgaXMgYXR0YWNoZWQgdG8gdGhlIGNsYXNzIGFuZCByZXR1cm5zIGl0LlxyXG4gKlxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlU3RvcmVNZXRhZGF0YSh0YXJnZXQ6IFN0YXRlQ2xhc3NJbnRlcm5hbCk6IE1ldGFEYXRhTW9kZWwge1xyXG4gIGlmICghdGFyZ2V0Lmhhc093blByb3BlcnR5KE1FVEFfS0VZKSkge1xyXG4gICAgY29uc3QgZGVmYXVsdE1ldGFkYXRhOiBNZXRhRGF0YU1vZGVsID0ge1xyXG4gICAgICBuYW1lOiBudWxsLFxyXG4gICAgICBhY3Rpb25zOiB7fSxcclxuICAgICAgZGVmYXVsdHM6IHt9LFxyXG4gICAgICBwYXRoOiBudWxsLFxyXG4gICAgICBtYWtlUm9vdFNlbGVjdG9yKGNvbnRleHQ6IFJ1bnRpbWVTZWxlY3RvckNvbnRleHQpIHtcclxuICAgICAgICByZXR1cm4gY29udGV4dC5nZXRTdGF0ZUdldHRlcihkZWZhdWx0TWV0YWRhdGEubmFtZSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGNoaWxkcmVuOiBbXVxyXG4gICAgfTtcclxuXHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBNRVRBX0tFWSwgeyB2YWx1ZTogZGVmYXVsdE1ldGFkYXRhIH0pO1xyXG4gIH1cclxuICByZXR1cm4gZ2V0U3RvcmVNZXRhZGF0YSh0YXJnZXQpO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0IHRoZSBtZXRhZGF0YSBhdHRhY2hlZCB0byB0aGUgc3RhdGUgY2xhc3MgaWYgaXQgZXhpc3RzLlxyXG4gKlxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RvcmVNZXRhZGF0YSh0YXJnZXQ6IFN0YXRlQ2xhc3NJbnRlcm5hbCk6IE1ldGFEYXRhTW9kZWwge1xyXG4gIHJldHVybiB0YXJnZXRbTUVUQV9LRVldITtcclxufVxyXG5cclxuLyoqXHJcbiAqIEVuc3VyZXMgbWV0YWRhdGEgaXMgYXR0YWNoZWQgdG8gdGhlIHNlbGVjdG9yIGFuZCByZXR1cm5zIGl0LlxyXG4gKlxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlU2VsZWN0b3JNZXRhZGF0YSh0YXJnZXQ6IEZ1bmN0aW9uKTogU2VsZWN0b3JNZXRhRGF0YU1vZGVsIHtcclxuICBpZiAoIXRhcmdldC5oYXNPd25Qcm9wZXJ0eShTRUxFQ1RPUl9NRVRBX0tFWSkpIHtcclxuICAgIGNvbnN0IGRlZmF1bHRNZXRhZGF0YTogU2VsZWN0b3JNZXRhRGF0YU1vZGVsID0ge1xyXG4gICAgICBtYWtlUm9vdFNlbGVjdG9yOiBudWxsLFxyXG4gICAgICBvcmlnaW5hbEZuOiBudWxsLFxyXG4gICAgICBjb250YWluZXJDbGFzczogbnVsbCxcclxuICAgICAgc2VsZWN0b3JOYW1lOiBudWxsLFxyXG4gICAgICBnZXRTZWxlY3Rvck9wdGlvbnM6ICgpID0+ICh7fSlcclxuICAgIH07XHJcblxyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgU0VMRUNUT1JfTUVUQV9LRVksIHsgdmFsdWU6IGRlZmF1bHRNZXRhZGF0YSB9KTtcclxuICB9XHJcblxyXG4gIHJldHVybiBnZXRTZWxlY3Rvck1ldGFkYXRhKHRhcmdldCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXQgdGhlIG1ldGFkYXRhIGF0dGFjaGVkIHRvIHRoZSBzZWxlY3RvciBpZiBpdCBleGlzdHMuXHJcbiAqXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWxlY3Rvck1ldGFkYXRhKHRhcmdldDogYW55KTogU2VsZWN0b3JNZXRhRGF0YU1vZGVsIHtcclxuICByZXR1cm4gdGFyZ2V0W1NFTEVDVE9SX01FVEFfS0VZXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEdldCBhIGRlZXBseSBuZXN0ZWQgdmFsdWUuIEV4YW1wbGU6XHJcbiAqXHJcbiAqICAgIGdldFZhbHVlKHsgZm9vOiBiYXI6IFtdIH0sICdmb28uYmFyJykgLy89PiBbXVxyXG4gKlxyXG4gKiBOb3RlOiBUaGlzIGlzIG5vdCBhcyBmYXN0IGFzIHRoZSBgZmFzdFByb3BHZXR0ZXJgIGJ1dCBpcyBzdHJpY3QgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgY29tcGxpYW50LlxyXG4gKiBTZWUgcGVyZiBoaXQ6IGh0dHBzOi8vanNwZXJmLmNvbS9mYXN0LXZhbHVlLWdldHRlci1naXZlbi1wYXRoLzFcclxuICpcclxuICogQGlnbm9yZVxyXG4gKi9cclxuZnVuY3Rpb24gY29tcGxpYW50UHJvcEdldHRlcihwYXRoczogc3RyaW5nW10pOiAoeDogYW55KSA9PiBhbnkge1xyXG4gIGNvbnN0IGNvcHlPZlBhdGhzID0gcGF0aHMuc2xpY2UoKTtcclxuICByZXR1cm4gb2JqID0+IGNvcHlPZlBhdGhzLnJlZHVjZSgoYWNjOiBhbnksIHBhcnQ6IHN0cmluZykgPT4gYWNjICYmIGFjY1twYXJ0XSwgb2JqKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoZSBnZW5lcmF0ZWQgZnVuY3Rpb24gaXMgZmFzdGVyIHRoYW46XHJcbiAqIC0gcGx1Y2sgKE9ic2VydmFibGUgb3BlcmF0b3IpXHJcbiAqIC0gbWVtb2l6ZVxyXG4gKlxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5mdW5jdGlvbiBmYXN0UHJvcEdldHRlcihwYXRoczogc3RyaW5nW10pOiAoeDogYW55KSA9PiBhbnkge1xyXG4gIGNvbnN0IHNlZ21lbnRzID0gcGF0aHM7XHJcbiAgbGV0IHNlZyA9ICdzdG9yZS4nICsgc2VnbWVudHNbMF07XHJcbiAgbGV0IGkgPSAwO1xyXG4gIGNvbnN0IGwgPSBzZWdtZW50cy5sZW5ndGg7XHJcblxyXG4gIGxldCBleHByID0gc2VnO1xyXG4gIHdoaWxlICgrK2kgPCBsKSB7XHJcbiAgICBleHByID0gZXhwciArICcgJiYgJyArIChzZWcgPSBzZWcgKyAnLicgKyBzZWdtZW50c1tpXSk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBmbiA9IG5ldyBGdW5jdGlvbignc3RvcmUnLCAncmV0dXJuICcgKyBleHByICsgJzsnKTtcclxuXHJcbiAgcmV0dXJuIDwoeDogYW55KSA9PiBhbnk+Zm47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXQgYSBkZWVwbHkgbmVzdGVkIHZhbHVlLiBFeGFtcGxlOlxyXG4gKlxyXG4gKiAgICBnZXRWYWx1ZSh7IGZvbzogYmFyOiBbXSB9LCAnZm9vLmJhcicpIC8vPT4gW11cclxuICpcclxuICogQGlnbm9yZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHByb3BHZXR0ZXIocGF0aHM6IHN0cmluZ1tdLCBjb25maWc6IE5neHNDb25maWcpIHtcclxuICBpZiAoY29uZmlnICYmIGNvbmZpZy5jb21wYXRpYmlsaXR5ICYmIGNvbmZpZy5jb21wYXRpYmlsaXR5LnN0cmljdENvbnRlbnRTZWN1cml0eVBvbGljeSkge1xyXG4gICAgcmV0dXJuIGNvbXBsaWFudFByb3BHZXR0ZXIocGF0aHMpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gZmFzdFByb3BHZXR0ZXIocGF0aHMpO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdpdmVuIGFuIGFycmF5IG9mIHN0YXRlcywgaXQgd2lsbCByZXR1cm4gYSBvYmplY3QgZ3JhcGguIEV4YW1wbGU6XHJcbiAqICAgIGNvbnN0IHN0YXRlcyA9IFtcclxuICogICAgICBDYXJ0LFxyXG4gKiAgICAgIENhcnRTYXZlZCxcclxuICogICAgICBDYXJ0U2F2ZWRJdGVtc1xyXG4gKiAgICBdXHJcbiAqXHJcbiAqIHdvdWxkIHJldHVybjpcclxuICpcclxuICogIGNvbnN0IGdyYXBoID0ge1xyXG4gKiAgICBjYXJ0OiBbJ3NhdmVkJ10sXHJcbiAqICAgIHNhdmVkOiBbJ2l0ZW1zJ10sXHJcbiAqICAgIGl0ZW1zOiBbXVxyXG4gKiAgfTtcclxuICpcclxuICogQGlnbm9yZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkR3JhcGgoc3RhdGVDbGFzc2VzOiBTdGF0ZUNsYXNzSW50ZXJuYWxbXSk6IFN0YXRlS2V5R3JhcGgge1xyXG4gIGNvbnN0IGZpbmROYW1lID0gKHN0YXRlQ2xhc3M6IFN0YXRlQ2xhc3NJbnRlcm5hbCkgPT4ge1xyXG4gICAgY29uc3QgbWV0YSA9IHN0YXRlQ2xhc3Nlcy5maW5kKGcgPT4gZyA9PT0gc3RhdGVDbGFzcyk7XHJcbiAgICBpZiAoIW1ldGEpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgIGBDaGlsZCBzdGF0ZSBub3QgZm91bmQ6ICR7c3RhdGVDbGFzc30uIFxcclxcbllvdSBtYXkgaGF2ZSBmb3Jnb3R0ZW4gdG8gYWRkIHN0YXRlcyB0byBtb2R1bGVgXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG1ldGFbTUVUQV9LRVldIS5uYW1lITtcclxuICB9O1xyXG5cclxuICByZXR1cm4gc3RhdGVDbGFzc2VzLnJlZHVjZTxTdGF0ZUtleUdyYXBoPihcclxuICAgIChyZXN1bHQ6IFN0YXRlS2V5R3JhcGgsIHN0YXRlQ2xhc3M6IFN0YXRlQ2xhc3NJbnRlcm5hbCkgPT4ge1xyXG4gICAgICBjb25zdCB7IG5hbWUsIGNoaWxkcmVuIH0gPSBzdGF0ZUNsYXNzW01FVEFfS0VZXSE7XHJcbiAgICAgIHJlc3VsdFtuYW1lIV0gPSAoY2hpbGRyZW4gfHwgW10pLm1hcChmaW5kTmFtZSk7XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9LFxyXG4gICAge31cclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogR2l2ZW4gYSBzdGF0ZXMgYXJyYXksIHJldHVybnMgb2JqZWN0IGdyYXBoXHJcbiAqIHJldHVybmluZyB0aGUgbmFtZSBhbmQgc3RhdGUgbWV0YWRhdGEuIEV4YW1wbGU6XHJcbiAqXHJcbiAqICBjb25zdCBncmFwaCA9IHtcclxuICogICAgY2FydDogeyBtZXRhZGF0YSB9XHJcbiAqICB9O1xyXG4gKlxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbmFtZVRvU3RhdGUoc3RhdGVzOiBTdGF0ZUNsYXNzSW50ZXJuYWxbXSk6IFBsYWluT2JqZWN0T2Y8U3RhdGVDbGFzc0ludGVybmFsPiB7XHJcbiAgcmV0dXJuIHN0YXRlcy5yZWR1Y2U8UGxhaW5PYmplY3RPZjxTdGF0ZUNsYXNzSW50ZXJuYWw+PihcclxuICAgIChyZXN1bHQ6IFBsYWluT2JqZWN0T2Y8U3RhdGVDbGFzc0ludGVybmFsPiwgc3RhdGVDbGFzczogU3RhdGVDbGFzc0ludGVybmFsKSA9PiB7XHJcbiAgICAgIGNvbnN0IG1ldGEgPSBzdGF0ZUNsYXNzW01FVEFfS0VZXSE7XHJcbiAgICAgIHJlc3VsdFttZXRhLm5hbWUhXSA9IHN0YXRlQ2xhc3M7XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9LFxyXG4gICAge31cclxuICApO1xyXG59XHJcblxyXG4vKipcclxuICogR2l2ZW4gYSBvYmplY3QgcmVsYXRpb25zaGlwIGdyYXBoIHdpbGwgcmV0dXJuIHRoZSBmdWxsIHBhdGhcclxuICogZm9yIHRoZSBjaGlsZCBpdGVtcy4gRXhhbXBsZTpcclxuICpcclxuICogIGNvbnN0IGdyYXBoID0ge1xyXG4gKiAgICBjYXJ0OiBbJ3NhdmVkJ10sXHJcbiAqICAgIHNhdmVkOiBbJ2l0ZW1zJ10sXHJcbiAqICAgIGl0ZW1zOiBbXVxyXG4gKiAgfTtcclxuICpcclxuICogd291bGQgcmV0dXJuOlxyXG4gKlxyXG4gKiAgY29uc3QgciA9IHtcclxuICogICAgY2FydDogJ2NhcnQnLFxyXG4gKiAgICBzYXZlZDogJ2NhcnQuc2F2ZWQnLFxyXG4gKiAgICBpdGVtczogJ2NhcnQuc2F2ZWQuaXRlbXMnXHJcbiAqICB9O1xyXG4gKlxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZmluZEZ1bGxQYXJlbnRQYXRoKFxyXG4gIG9iajogU3RhdGVLZXlHcmFwaCxcclxuICBuZXdPYmo6IFBsYWluT2JqZWN0T2Y8c3RyaW5nPiA9IHt9XHJcbik6IFBsYWluT2JqZWN0T2Y8c3RyaW5nPiB7XHJcbiAgY29uc3QgdmlzaXQgPSAoY2hpbGQ6IFN0YXRlS2V5R3JhcGgsIGtleVRvRmluZDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCA9PiB7XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBjaGlsZCkge1xyXG4gICAgICBpZiAoY2hpbGQuaGFzT3duUHJvcGVydHkoa2V5KSAmJiBjaGlsZFtrZXldLmluZGV4T2Yoa2V5VG9GaW5kKSA+PSAwKSB7XHJcbiAgICAgICAgY29uc3QgcGFyZW50ID0gdmlzaXQoY2hpbGQsIGtleSk7XHJcbiAgICAgICAgcmV0dXJuIHBhcmVudCAhPT0gbnVsbCA/IGAke3BhcmVudH0uJHtrZXl9YCA6IGtleTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfTtcclxuXHJcbiAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XHJcbiAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgY29uc3QgcGFyZW50ID0gdmlzaXQob2JqLCBrZXkpO1xyXG4gICAgICBuZXdPYmpba2V5XSA9IHBhcmVudCA/IGAke3BhcmVudH0uJHtrZXl9YCA6IGtleTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBuZXdPYmo7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHaXZlbiBhIG9iamVjdCBncmFwaCwgaXQgd2lsbCByZXR1cm4gdGhlIGl0ZW1zIHRvcG9sb2dpY2FsbHkgc29ydGVkIEV4YW1wbGU6XHJcbiAqXHJcbiAqICBjb25zdCBncmFwaCA9IHtcclxuICogICAgY2FydDogWydzYXZlZCddLFxyXG4gKiAgICBzYXZlZDogWydpdGVtcyddLFxyXG4gKiAgICBpdGVtczogW11cclxuICogIH07XHJcbiAqXHJcbiAqIHdvdWxkIHJldHVybjpcclxuICpcclxuICogIGNvbnN0IHJlc3VsdHMgPSBbXHJcbiAqICAgICdpdGVtcycsXHJcbiAqICAgICdzYXZlZCcsXHJcbiAqICAgICdjYXJ0J1xyXG4gKiAgXTtcclxuICpcclxuICogQGlnbm9yZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHRvcG9sb2dpY2FsU29ydChncmFwaDogU3RhdGVLZXlHcmFwaCk6IHN0cmluZ1tdIHtcclxuICBjb25zdCBzb3J0ZWQ6IHN0cmluZ1tdID0gW107XHJcbiAgY29uc3QgdmlzaXRlZDogUGxhaW5PYmplY3RPZjxib29sZWFuPiA9IHt9O1xyXG5cclxuICBjb25zdCB2aXNpdCA9IChuYW1lOiBzdHJpbmcsIGFuY2VzdG9yczogc3RyaW5nW10gPSBbXSkgPT4ge1xyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGFuY2VzdG9ycykpIHtcclxuICAgICAgYW5jZXN0b3JzID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgYW5jZXN0b3JzLnB1c2gobmFtZSk7XHJcbiAgICB2aXNpdGVkW25hbWVdID0gdHJ1ZTtcclxuXHJcbiAgICBncmFwaFtuYW1lXS5mb3JFYWNoKChkZXA6IHN0cmluZykgPT4ge1xyXG4gICAgICBpZiAoYW5jZXN0b3JzLmluZGV4T2YoZGVwKSA+PSAwKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICAgYENpcmN1bGFyIGRlcGVuZGVuY3kgJyR7ZGVwfScgaXMgcmVxdWlyZWQgYnkgJyR7bmFtZX0nOiAke2FuY2VzdG9ycy5qb2luKCcgLT4gJyl9YFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh2aXNpdGVkW2RlcF0pIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHZpc2l0KGRlcCwgYW5jZXN0b3JzLnNsaWNlKDApKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChzb3J0ZWQuaW5kZXhPZihuYW1lKSA8IDApIHtcclxuICAgICAgc29ydGVkLnB1c2gobmFtZSk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgT2JqZWN0LmtleXMoZ3JhcGgpLmZvckVhY2goayA9PiB2aXNpdChrKSk7XHJcblxyXG4gIHJldHVybiBzb3J0ZWQucmV2ZXJzZSgpO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJucyBpZiB0aGUgcGFyYW1ldGVyIGlzIGEgb2JqZWN0IG9yIG5vdC5cclxuICpcclxuICogQGlnbm9yZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzT2JqZWN0KG9iajogYW55KSB7XHJcbiAgcmV0dXJuICh0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyAmJiBvYmogIT09IG51bGwpIHx8IHR5cGVvZiBvYmogPT09ICdmdW5jdGlvbic7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGF0ZURpZmZDaGFuZ2VzPFQ+KFxyXG4gIG1hcHBlZFN0b3JlOiBNYXBwZWRTdG9yZSxcclxuICBkaWZmOiBSb290U3RhdGVEaWZmPFQ+XHJcbik6IE5neHNTaW1wbGVDaGFuZ2Uge1xyXG4gIGNvbnN0IHByZXZpb3VzVmFsdWU6IFQgPSBnZXRWYWx1ZShkaWZmLmN1cnJlbnRBcHBTdGF0ZSwgbWFwcGVkU3RvcmUucGF0aCk7XHJcbiAgY29uc3QgY3VycmVudFZhbHVlOiBUID0gZ2V0VmFsdWUoZGlmZi5uZXdBcHBTdGF0ZSwgbWFwcGVkU3RvcmUucGF0aCk7XHJcbiAgcmV0dXJuIG5ldyBOZ3hzU2ltcGxlQ2hhbmdlKHByZXZpb3VzVmFsdWUsIGN1cnJlbnRWYWx1ZSwgIW1hcHBlZFN0b3JlLmlzSW5pdGlhbGlzZWQpO1xyXG59XHJcbiJdfQ==
@@ -228,11 +228,11 @@ export class StateFactory {
228
228
  * @return {?}
229
229
  */
230
230
  invokeActions(actions$, action) {
231
+ /** @type {?} */
232
+ const type = (/** @type {?} */ (getActionTypeFromInstance(action)));
231
233
  /** @type {?} */
232
234
  const results = [];
233
235
  for (const metadata of this.states) {
234
- /** @type {?} */
235
- const type = (/** @type {?} */ (getActionTypeFromInstance(action)));
236
236
  /** @type {?} */
237
237
  const actionMetas = metadata.actions[type];
238
238
  if (actionMetas) {
@@ -246,6 +246,15 @@ export class StateFactory {
246
246
  result = from(result);
247
247
  }
248
248
  if (result instanceof Observable) {
249
+ // If this observable has been completed w/o emitting
250
+ // any value then we wouldn't want to complete the whole chain
251
+ // of actions. Since if any observable completes then
252
+ // action will be canceled.
253
+ // For instance if any action handler would've had such statement:
254
+ // `handler(ctx) { return EMPTY; }`
255
+ // then the action will be canceled.
256
+ // See https://github.com/ngxs/store/issues/1568
257
+ result = result.pipe(defaultIfEmpty({}));
249
258
  if (actionMeta.options.cancelUncompleted) {
250
259
  // todo: ofActionDispatched should be used with action class
251
260
  result = result.pipe(takeUntil(actions$.pipe(ofActionDispatched((/** @type {?} */ (action))))));
@@ -389,4 +398,4 @@ if (false) {
389
398
  */
390
399
  StateFactory.prototype._initialState;
391
400
  }
392
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL2ludGVybmFsL3N0YXRlLWZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xFLE9BQU8sRUFDTCxVQUFVLEVBQ1YsY0FBYyxFQUNkLE1BQU0sRUFDTixHQUFHLEVBQ0gsUUFBUSxFQUNSLFdBQVcsRUFDWCxTQUFTLEVBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNsRCxPQUFPLEVBQ0wsVUFBVSxFQUNWLGtCQUFrQixFQUNsQixRQUFRLEVBR1IsV0FBVyxFQUNYLFVBQVUsRUFLVixlQUFlLEVBR2hCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUErQixlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFpQixPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7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RUFBRSxJQUFZO1FBQzVELElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQUEsSUFBSSxDQUFDLElBQUksRUFBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ25DLHFGQUFxRjtRQUNyRiw2RUFBNkU7UUFDN0UseUZBQXlGO1FBQ3pGLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7Ozs7Ozs7Ozs7SUFTTyw2QkFBNkIsQ0FBQyxJQUFZLEVBQUUsSUFBWTs7Y0FDeEQsaUNBQWlDLEdBQ3JDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxLQUFLLFNBQVM7UUFDbEQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLGlDQUFpQyxDQUFDO0lBQ3RFLENBQUM7OztZQS9PRixVQUFVOzs7O1lBekNVLFFBQVE7WUFZVixVQUFVO1lBc0NELFlBQVksdUJBRm5DLFFBQVEsWUFDUixRQUFRO1lBbEJ5QixlQUFlO1lBQzVDLCtCQUErQjtZQUMvQixtQkFBbUI7NENBcUJ2QixRQUFRLFlBQ1IsTUFBTSxTQUFDLG1CQUFtQjs7Ozs7OztJQVo3QixrQ0FBMkI7Ozs7O0lBZ0IzQiwrQkFBb0M7Ozs7O0lBTXBDLHFDQUF5Qzs7Ozs7SUFNekMsbUNBQWdEOztJQU1oRCxpREFrQkc7Ozs7O0lBakRELGlDQUEyQjs7Ozs7SUFDM0IsK0JBQTJCOzs7OztJQUMzQixzQ0FFb0M7Ozs7O0lBQ3BDLGdDQUFpQzs7Ozs7SUFDakMsc0NBQXVEOzs7OztJQUN2RCw0Q0FBaUQ7Ozs7O0lBQ2pELHFDQUUwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBPcHRpb25hbCwgU2tpcFNlbGYsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmb3JrSm9pbiwgZnJvbSwgT2JzZXJ2YWJsZSwgb2YsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtcclxuICBjYXRjaEVycm9yLFxyXG4gIGRlZmF1bHRJZkVtcHR5LFxyXG4gIGZpbHRlcixcclxuICBtYXAsXHJcbiAgbWVyZ2VNYXAsXHJcbiAgc2hhcmVSZXBsYXksXHJcbiAgdGFrZVVudGlsXHJcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgTUVUQV9LRVksIE5neHNDb25maWcgfSBmcm9tICcuLi9zeW1ib2xzJztcclxuaW1wb3J0IHtcclxuICBidWlsZEdyYXBoLFxyXG4gIGZpbmRGdWxsUGFyZW50UGF0aCxcclxuICBpc09iamVjdCxcclxuICBNYXBwZWRTdG9yZSxcclxuICBNZXRhRGF0YU1vZGVsLFxyXG4gIG5hbWVUb1N0YXRlLFxyXG4gIHByb3BHZXR0ZXIsXHJcbiAgU3RhdGVDbGFzc0ludGVybmFsLFxyXG4gIFN0YXRlS2V5R3JhcGgsXHJcbiAgU3RhdGVzQW5kRGVmYXVsdHMsXHJcbiAgU3RhdGVzQnlOYW1lLFxyXG4gIHRvcG9sb2dpY2FsU29ydCxcclxuICBSdW50aW1lU2VsZWN0b3JDb250ZXh0LFxyXG4gIFNoYXJlZFNlbGVjdG9yT3B0aW9uc1xyXG59IGZyb20gJy4vaW50ZXJuYWxzJztcclxuaW1wb3J0IHsgZ2V0QWN0aW9uVHlwZUZyb21JbnN0YW5jZSwgZ2V0VmFsdWUsIHNldFZhbHVlIH0gZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xyXG5pbXBvcnQgeyBvZkFjdGlvbkRpc3BhdGNoZWQgfSBmcm9tICcuLi9vcGVyYXRvcnMvb2YtYWN0aW9uJztcclxuaW1wb3J0IHsgQWN0aW9uQ29udGV4dCwgQWN0aW9uU3RhdHVzLCBJbnRlcm5hbEFjdGlvbnMgfSBmcm9tICcuLi9hY3Rpb25zLXN0cmVhbSc7XHJcbmltcG9ydCB7IEludGVybmFsRGlzcGF0Y2hlZEFjdGlvblJlc3VsdHMgfSBmcm9tICcuLi9pbnRlcm5hbC9kaXNwYXRjaGVyJztcclxuaW1wb3J0IHsgU3RhdGVDb250ZXh0RmFjdG9yeSB9IGZyb20gJy4uL2ludGVybmFsL3N0YXRlLWNvbnRleHQtZmFjdG9yeSc7XHJcbmltcG9ydCB7IFN0b3JlVmFsaWRhdG9ycyB9IGZyb20gJy4uL3V0aWxzL3N0b3JlLXZhbGlkYXRvcnMnO1xyXG5pbXBvcnQgeyBJTklUSUFMX1NUQVRFX1RPS0VOLCBQbGFpbk9iamVjdE9mLCBtZW1vaXplIH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcclxuXHJcbi8qKlxyXG4gKiBTdGF0ZSBmYWN0b3J5IGNsYXNzXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFN0YXRlRmFjdG9yeSB7XHJcbiAgcHJpdmF0ZSBfY29ubmVjdGVkID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBfY29uZmlnOiBOZ3hzQ29uZmlnLFxyXG4gICAgQE9wdGlvbmFsKClcclxuICAgIEBTa2lwU2VsZigpXHJcbiAgICBwcml2YXRlIF9wYXJlbnRGYWN0b3J5OiBTdGF0ZUZhY3RvcnksXHJcbiAgICBwcml2YXRlIF9hY3Rpb25zOiBJbnRlcm5hbEFjdGlvbnMsXHJcbiAgICBwcml2YXRlIF9hY3Rpb25SZXN1bHRzOiBJbnRlcm5hbERpc3BhdGNoZWRBY3Rpb25SZXN1bHRzLFxyXG4gICAgcHJpdmF0ZSBfc3RhdGVDb250ZXh0RmFjdG9yeTogU3RhdGVDb250ZXh0RmFjdG9yeSxcclxuICAgIEBPcHRpb25hbCgpXHJcbiAgICBASW5qZWN0KElOSVRJQUxfU1RBVEVfVE9LRU4pXHJcbiAgICBwcml2YXRlIF9pbml0aWFsU3RhdGU6IGFueVxyXG4gICkge31cclxuXHJcbiAgcHJpdmF0ZSBfc3RhdGVzOiBNYXBwZWRTdG9yZVtdID0gW107XHJcblxyXG4gIHB1YmxpYyBnZXQgc3RhdGVzKCk6IE1hcHBlZFN0b3JlW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BhcmVudEZhY3RvcnkgPyB0aGlzLl9wYXJlbnRGYWN0b3J5LnN0YXRlcyA6IHRoaXMuX3N0YXRlcztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3N0YXRlc0J5TmFtZTogU3RhdGVzQnlOYW1lID0ge307XHJcblxyXG4gIHB1YmxpYyBnZXQgc3RhdGVzQnlOYW1lKCk6IFN0YXRlc0J5TmFtZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50RmFjdG9yeSA/IHRoaXMuX3BhcmVudEZhY3Rvcnkuc3RhdGVzQnlOYW1lIDogdGhpcy5fc3RhdGVzQnlOYW1lO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc3RhdGVQYXRoczogUGxhaW5PYmplY3RPZjxzdHJpbmc+ID0ge307XHJcblxyXG4gIHByaXZhdGUgZ2V0IHN0YXRlUGF0aHMoKTogUGxhaW5PYmplY3RPZjxzdHJpbmc+IHtcclxuICAgIHJldHVybiB0aGlzLl9wYXJlbnRGYWN0b3J5ID8gdGhpcy5fcGFyZW50RmFjdG9yeS5zdGF0ZVBhdGhzIDogdGhpcy5fc3RhdGVQYXRocztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRSdW50aW1lU2VsZWN0b3JDb250ZXh0ID0gbWVtb2l6ZSgoKSA9PiB7XHJcbiAgICBjb25zdCBzdGF0ZUZhY3RvcnkgPSB0aGlzO1xyXG4gICAgY29uc3QgY29udGV4dDogUnVudGltZVNlbGVjdG9yQ29udGV4dCA9IHRoaXMuX3BhcmVudEZhY3RvcnlcclxuICAgICAgPyB0aGlzLl9wYXJlbnRGYWN0b3J5LmdldFJ1bnRpbWVTZWxlY3RvckNvbnRleHQoKVxyXG4gICAgICA6IHtcclxuICAgICAgICAgIGdldFN0YXRlR2V0dGVyKGtleTogc3RyaW5nKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSBzdGF0ZUZhY3Rvcnkuc3RhdGVQYXRoc1trZXldO1xyXG4gICAgICAgICAgICByZXR1cm4gcGF0aCA/IHByb3BHZXR0ZXIocGF0aC5zcGxpdCgnLicpLCBzdGF0ZUZhY3RvcnkuX2NvbmZpZykgOiAoKSA9PiB1bmRlZmluZWQ7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZ2V0U2VsZWN0b3JPcHRpb25zKGxvY2FsT3B0aW9ucz86IFNoYXJlZFNlbGVjdG9yT3B0aW9ucykge1xyXG4gICAgICAgICAgICBjb25zdCBnbG9iYWxTZWxlY3Rvck9wdGlvbnMgPSBzdGF0ZUZhY3RvcnkuX2NvbmZpZy5zZWxlY3Rvck9wdGlvbnM7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgLi4uZ2xvYmFsU2VsZWN0b3JPcHRpb25zLFxyXG4gICAgICAgICAgICAgIC4uLihsb2NhbE9wdGlvbnMgfHwge30pXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgIHJldHVybiBjb250ZXh0O1xyXG4gIH0pO1xyXG5cclxuICBwcml2YXRlIHN0YXRpYyBjbG9uZURlZmF1bHRzKGRlZmF1bHRzOiBhbnkpOiBhbnkge1xyXG4gICAgbGV0IHZhbHVlID0ge307XHJcblxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZGVmYXVsdHMpKSB7XHJcbiAgICAgIHZhbHVlID0gZGVmYXVsdHMuc2xpY2UoKTtcclxuICAgIH0gZWxzZSBpZiAoaXNPYmplY3QoZGVmYXVsdHMpKSB7XHJcbiAgICAgIHZhbHVlID0geyAuLi5kZWZhdWx0cyB9O1xyXG4gICAgfSBlbHNlIGlmIChkZWZhdWx0cyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHZhbHVlID0ge307XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YWx1ZSA9IGRlZmF1bHRzO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGNoZWNrU3RhdGVzQXJlVmFsaWQoc3RhdGVDbGFzc2VzOiBTdGF0ZUNsYXNzSW50ZXJuYWxbXSk6IHZvaWQge1xyXG4gICAgc3RhdGVDbGFzc2VzLmZvckVhY2goU3RvcmVWYWxpZGF0b3JzLmdldFZhbGlkU3RhdGVNZXRhKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCBhIG5ldyBzdGF0ZSB0byB0aGUgZ2xvYmFsIGRlZnMuXHJcbiAgICovXHJcbiAgYWRkKHN0YXRlQ2xhc3NlczogU3RhdGVDbGFzc0ludGVybmFsW10pOiBNYXBwZWRTdG9yZVtdIHtcclxuICAgIFN0YXRlRmFjdG9yeS5jaGVja1N0YXRlc0FyZVZhbGlkKHN0YXRlQ2xhc3Nlcyk7XHJcbiAgICBjb25zdCB7IG5ld1N0YXRlcyB9ID0gdGhpcy5hZGRUb1N0YXRlc01hcChzdGF0ZUNsYXNzZXMpO1xyXG4gICAgaWYgKCFuZXdTdGF0ZXMubGVuZ3RoKSByZXR1cm4gW107XHJcblxyXG4gICAgY29uc3Qgc3RhdGVHcmFwaDogU3RhdGVLZXlHcmFwaCA9IGJ1aWxkR3JhcGgobmV3U3RhdGVzKTtcclxuICAgIGNvbnN0IHNvcnRlZFN0YXRlczogc3RyaW5nW10gPSB0b3BvbG9naWNhbFNvcnQoc3RhdGVHcmFwaCk7XHJcbiAgICBjb25zdCBwYXRoczogUGxhaW5PYmplY3RPZjxzdHJpbmc+ID0gZmluZEZ1bGxQYXJlbnRQYXRoKHN0YXRlR3JhcGgpO1xyXG4gICAgY29uc3QgbmFtZUdyYXBoOiBQbGFpbk9iamVjdE9mPFN0YXRlQ2xhc3NJbnRlcm5hbD4gPSBuYW1lVG9TdGF0ZShuZXdTdGF0ZXMpO1xyXG4gICAgY29uc3QgYm9vdHN0cmFwcGVkU3RvcmVzOiBNYXBwZWRTdG9yZVtdID0gW107XHJcblxyXG4gICAgZm9yIChjb25zdCBuYW1lIG9mIHNvcnRlZFN0YXRlcykge1xyXG4gICAgICBjb25zdCBzdGF0ZUNsYXNzOiBTdGF0ZUNsYXNzSW50ZXJuYWwgPSBuYW1lR3JhcGhbbmFtZV07XHJcbiAgICAgIGNvbnN0IHBhdGg6IHN0cmluZyA9IHBhdGhzW25hbWVdO1xyXG4gICAgICBjb25zdCBtZXRhOiBNZXRhRGF0YU1vZGVsID0gc3RhdGVDbGFzc1tNRVRBX0tFWV0hO1xyXG5cclxuICAgICAgdGhpcy5hZGRSdW50aW1lSW5mb1RvTWV0YShtZXRhLCBwYXRoKTtcclxuXHJcbiAgICAgIGNvbnN0IHN0YXRlTWFwOiBNYXBwZWRTdG9yZSA9IHtcclxuICAgICAgICBuYW1lLFxyXG4gICAgICAgIHBhdGgsXHJcbiAgICAgICAgaXNJbml0aWFsaXNlZDogZmFsc2UsXHJcbiAgICAgICAgYWN0aW9uczogbWV0YS5hY3Rpb25zLFxyXG4gICAgICAgIGluc3RhbmNlOiB0aGlzLl9pbmplY3Rvci5nZXQoc3RhdGVDbGFzcyksXHJcbiAgICAgICAgZGVmYXVsdHM6IFN0YXRlRmFjdG9yeS5jbG9uZURlZmF1bHRzKG1ldGEuZGVmYXVsdHMpXHJcbiAgICAgIH07XHJcblxyXG4gICAgICAvLyBlbnN1cmUgb3VyIHN0b3JlIGhhc24ndCBhbHJlYWR5IGJlZW4gYWRkZWRcclxuICAgICAgLy8gYnV0IGRvbid0IHRocm93IHNpbmNlIGl0IGNvdWxkIGJlIGxhenlcclxuICAgICAgLy8gbG9hZGVkIGZyb20gZGlmZmVyZW50IHBhdGhzXHJcbiAgICAgIGlmICghdGhpcy5oYXNCZWVuTW91bnRlZEFuZEJvb3RzdHJhcHBlZChuYW1lLCBwYXRoKSkge1xyXG4gICAgICAgIGJvb3RzdHJhcHBlZFN0b3Jlcy5wdXNoKHN0YXRlTWFwKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5zdGF0ZXMucHVzaChzdGF0ZU1hcCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGJvb3RzdHJhcHBlZFN0b3JlcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCBhIHNldCBvZiBzdGF0ZXMgdG8gdGhlIHN0b3JlIGFuZCByZXR1cm4gdGhlIGRlZmF1bHRzXHJcbiAgICovXHJcbiAgYWRkQW5kUmV0dXJuRGVmYXVsdHMoc3RhdGVDbGFzc2VzOiBTdGF0ZUNsYXNzSW50ZXJuYWxbXSk6IFN0YXRlc0FuZERlZmF1bHRzIHtcclxuICAgIGNvbnN0IGNsYXNzZXM6IFN0YXRlQ2xhc3NJbnRlcm5hbFtdID0gc3RhdGVDbGFzc2VzIHx8IFtdO1xyXG5cclxuICAgIGNvbnN0IG1hcHBlZFN0b3JlczogTWFwcGVkU3RvcmVbXSA9IHRoaXMuYWRkKGNsYXNzZXMpO1xyXG4gICAgY29uc3QgZGVmYXVsdHMgPSBtYXBwZWRTdG9yZXMucmVkdWNlKFxyXG4gICAgICAocmVzdWx0OiBhbnksIG1hcHBlZFN0b3JlOiBNYXBwZWRTdG9yZSkgPT5cclxuICAgICAgICBzZXRWYWx1ZShyZXN1bHQsIG1hcHBlZFN0b3JlLnBhdGgsIG1hcHBlZFN0b3JlLmRlZmF1bHRzKSxcclxuICAgICAge31cclxuICAgICk7XHJcbiAgICByZXR1cm4geyBkZWZhdWx0cywgc3RhdGVzOiBtYXBwZWRTdG9yZXMgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJpbmQgdGhlIGFjdGlvbnMgdG8gdGhlIGhhbmRsZXJzXHJcbiAgICovXHJcbiAgY29ubmVjdEFjdGlvbkhhbmRsZXJzKCkge1xyXG4gICAgaWYgKHRoaXMuX2Nvbm5lY3RlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5fYWN0aW9uc1xyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaWx0ZXIoKGN0eDogQWN0aW9uQ29udGV4dCkgPT4gY3R4LnN0YXR1cyA9PT0gQWN0aW9uU3RhdHVzLkRpc3BhdGNoZWQpLFxyXG4gICAgICAgIG1lcmdlTWFwKCh7IGFjdGlvbiB9KSA9PlxyXG4gICAgICAgICAgdGhpcy5pbnZva2VBY3Rpb25zKHRoaXMuX2FjdGlvbnMsIGFjdGlvbiEpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgoKSA9PiA8QWN0aW9uQ29udGV4dD57IGFjdGlvbiwgc3RhdHVzOiBBY3Rpb25TdGF0dXMuU3VjY2Vzc2Z1bCB9KSxcclxuICAgICAgICAgICAgZGVmYXVsdElmRW1wdHkoPEFjdGlvbkNvbnRleHQ+eyBhY3Rpb24sIHN0YXR1czogQWN0aW9uU3RhdHVzLkNhbmNlbGVkIH0pLFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+XHJcbiAgICAgICAgICAgICAgb2YoPEFjdGlvbkNvbnRleHQ+eyBhY3Rpb24sIHN0YXR1czogQWN0aW9uU3RhdHVzLkVycm9yZWQsIGVycm9yIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIClcclxuICAgICAgICApXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZShjdHggPT4gdGhpcy5fYWN0aW9uUmVzdWx0cy5uZXh0KGN0eCkpO1xyXG4gICAgdGhpcy5fY29ubmVjdGVkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEludm9rZSBhY3Rpb25zIG9uIHRoZSBzdGF0ZXMuXHJcbiAgICovXHJcbiAgaW52b2tlQWN0aW9ucyhhY3Rpb25zJDogSW50ZXJuYWxBY3Rpb25zLCBhY3Rpb246IGFueSkge1xyXG4gICAgY29uc3QgcmVzdWx0cyA9IFtdO1xyXG5cclxuICAgIGZvciAoY29uc3QgbWV0YWRhdGEgb2YgdGhpcy5zdGF0ZXMpIHtcclxuICAgICAgY29uc3QgdHlwZSA9IGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UoYWN0aW9uKSE7XHJcbiAgICAgIGNvbnN0IGFjdGlvbk1ldGFzID0gbWV0YWRhdGEuYWN0aW9uc1t0eXBlXTtcclxuXHJcbiAgICAgIGlmIChhY3Rpb25NZXRhcykge1xyXG4gICAgICAgIGZvciAoY29uc3QgYWN0aW9uTWV0YSBvZiBhY3Rpb25NZXRhcykge1xyXG4gICAgICAgICAgY29uc3Qgc3RhdGVDb250ZXh0ID0gdGhpcy5fc3RhdGVDb250ZXh0RmFjdG9yeS5jcmVhdGVTdGF0ZUNvbnRleHQobWV0YWRhdGEpO1xyXG4gICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IG1ldGFkYXRhLmluc3RhbmNlW2FjdGlvbk1ldGEuZm5dKHN0YXRlQ29udGV4dCwgYWN0aW9uKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBQcm9taXNlKSB7XHJcbiAgICAgICAgICAgICAgcmVzdWx0ID0gZnJvbShyZXN1bHQpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgT2JzZXJ2YWJsZSkge1xyXG4gICAgICAgICAgICAgIGlmIChhY3Rpb25NZXRhLm9wdGlvbnMuY2FuY2VsVW5jb21wbGV0ZWQpIHtcclxuICAgICAgICAgICAgICAgIC8vIHRvZG86IG9mQWN0aW9uRGlzcGF0Y2hlZCBzaG91bGQgYmUgdXNlZCB3aXRoIGFjdGlvbiBjbGFzc1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgIHRha2VVbnRpbChhY3Rpb25zJC5waXBlKG9mQWN0aW9uRGlzcGF0Y2hlZChhY3Rpb24gYXMgYW55KSkpXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICByZXN1bHQgPSBvZih7fSkucGlwZShzaGFyZVJlcGxheSgpKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmVzdWx0cy5wdXNoKHJlc3VsdCk7XHJcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdHMucHVzaCh0aHJvd0Vycm9yKGUpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXJlc3VsdHMubGVuZ3RoKSB7XHJcbiAgICAgIHJlc3VsdHMucHVzaChvZih7fSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmb3JrSm9pbihyZXN1bHRzKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkVG9TdGF0ZXNNYXAoXHJcbiAgICBzdGF0ZUNsYXNzZXM6IFN0YXRlQ2xhc3NJbnRlcm5hbFtdXHJcbiAgKTogeyBuZXdTdGF0ZXM6IFN0YXRlQ2xhc3NJbnRlcm5hbFtdIH0ge1xyXG4gICAgY29uc3QgbmV3U3RhdGVzOiBTdGF0ZUNsYXNzSW50ZXJuYWxbXSA9IFtdO1xyXG4gICAgY29uc3Qgc3RhdGVzTWFwOiBTdGF0ZXNCeU5hbWUgPSB0aGlzLnN0YXRlc0J5TmFtZTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IHN0YXRlQ2xhc3Mgb2Ygc3RhdGVDbGFzc2VzKSB7XHJcbiAgICAgIGNvbnN0IHN0YXRlTmFtZTogc3RyaW5nID0gU3RvcmVWYWxpZGF0b3JzLmNoZWNrU3RhdGVOYW1lSXNVbmlxdWUoc3RhdGVDbGFzcywgc3RhdGVzTWFwKTtcclxuICAgICAgY29uc3QgdW5tb3VudGVkU3RhdGUgPSAhc3RhdGVzTWFwW3N0YXRlTmFtZV07XHJcbiAgICAgIGlmICh1bm1vdW50ZWRTdGF0ZSkge1xyXG4gICAgICAgIG5ld1N0YXRlcy5wdXNoKHN0YXRlQ2xhc3MpO1xyXG4gICAgICAgIHN0YXRlc01hcFtzdGF0ZU5hbWVdID0gc3RhdGVDbGFzcztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB7IG5ld1N0YXRlcyB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRSdW50aW1lSW5mb1RvTWV0YShtZXRhOiBNZXRhRGF0YU1vZGVsLCBwYXRoOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RhdGVQYXRoc1ttZXRhLm5hbWUhXSA9IHBhdGg7XHJcbiAgICAvLyBUT0RPOiB2NCAtIHdlIHBsYW4gdG8gZ2V0IHJpZCBvZiB0aGUgcGF0aCBwcm9wZXJ0eSBiZWNhdXNlIGl0IGlzIG5vbi1kZXRlcm1pbmlzdGljXHJcbiAgICAvLyB3ZSBjYW4gZG8gdGhpcyB3aGVuIHdlIGdldCByaWQgb2YgdGhlIGluY29ycmVjdGx5IGV4cG9zZWQgZ2V0U3RvcmVNZXRhZGF0YVxyXG4gICAgLy8gV2Ugd2lsbCBuZWVkIHRvIGNvbWUgdXAgd2l0aCBhbiBhbHRlcm5hdGl2ZSBpbiB2NCBiZWNhdXNlIHRoaXMgaXMgdXNlZCBieSBtYW55IHBsdWdpbnNcclxuICAgIG1ldGEucGF0aCA9IHBhdGg7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKiB0aGUgbWV0aG9kIGNoZWNrcyBpZiB0aGUgc3RhdGUgaGFzIGFscmVhZHkgYmVlbiBhZGRlZCB0byB0aGUgdHJlZVxyXG4gICAqIGFuZCBjb21wbGV0ZWQgdGhlIGxpZmUgY3ljbGVcclxuICAgKiBAcGFyYW0gbmFtZVxyXG4gICAqIEBwYXJhbSBwYXRoXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBoYXNCZWVuTW91bnRlZEFuZEJvb3RzdHJhcHBlZChuYW1lOiBzdHJpbmcsIHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgdmFsdWVJc0Jvb3RzdHJhcHBlZEluSW5pdGlhbFN0YXRlOiBib29sZWFuID1cclxuICAgICAgZ2V0VmFsdWUodGhpcy5faW5pdGlhbFN0YXRlLCBwYXRoKSAhPT0gdW5kZWZpbmVkO1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGVzQnlOYW1lW25hbWVdICYmIHZhbHVlSXNCb290c3RyYXBwZWRJbkluaXRpYWxTdGF0ZTtcclxuICB9XHJcbn1cclxuIl19
401
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL2ludGVybmFsL3N0YXRlLWZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xFLE9BQU8sRUFDTCxVQUFVLEVBQ1YsY0FBYyxFQUNkLE1BQU0sRUFDTixHQUFHLEVBQ0gsUUFBUSxFQUNSLFdBQVcsRUFDWCxTQUFTLEVBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNsRCxPQUFPLEVBQ0wsVUFBVSxFQUNWLGtCQUFrQixFQUNsQixRQUFRLEVBR1IsV0FBVyxFQUNYLFVBQVUsRUFLVixlQUFlLEVBR2hCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUErQixlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFpQixPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7QUFPcEYsTUFBTSxPQUFPLFlBQVk7Ozs7Ozs7Ozs7SUFHdkIsWUFDVSxTQUFtQixFQUNuQixPQUFtQixFQUduQixjQUE0QixFQUM1QixRQUF5QixFQUN6QixjQUErQyxFQUMvQyxvQkFBeUMsRUFHekMsYUFBa0I7UUFWbEIsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBR25CLG1CQUFjLEdBQWQsY0FBYyxDQUFjO1FBQzVCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUFpQztRQUMvQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBR3pDLGtCQUFhLEdBQWIsYUFBYSxDQUFLO1FBYnBCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFnQm5CLFlBQU8sR0FBa0IsRUFBRSxDQUFDO1FBTTVCLGtCQUFhLEdBQWlCLEVBQUUsQ0FBQztRQU1qQyxnQkFBVyxHQUEwQixFQUFFLENBQUM7UUFNekMsOEJBQXlCLEdBQUcsT0FBTzs7O1FBQUMsR0FBRyxFQUFFOztrQkFDeEMsWUFBWSxHQUFHLElBQUk7O2tCQUNuQixPQUFPLEdBQTJCLElBQUksQ0FBQyxjQUFjO2dCQUN6RCxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyx5QkFBeUIsRUFBRTtnQkFDakQsQ0FBQyxDQUFDOzs7OztvQkFDRSxjQUFjLENBQUMsR0FBVzs7OEJBQ2xCLElBQUksR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQzt3QkFDekMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDOzs7d0JBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFBLENBQUM7b0JBQ3BGLENBQUM7Ozs7O29CQUNELGtCQUFrQixDQUFDLFlBQW9DOzs4QkFDL0MscUJBQXFCLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxlQUFlO3dCQUNsRSx5QkFDSyxxQkFBcUIsRUFDckIsQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLEVBQ3ZCO29CQUNKLENBQUM7aUJBQ0Y7WUFDTCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDLEVBQUMsQ0FBQztJQXRDQSxDQUFDOzs7O0lBSUosSUFBVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN6RSxDQUFDOzs7O0lBSUQsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDckYsQ0FBQzs7Ozs7SUFJRCxJQUFZLFVBQVU7UUFDcEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUNqRixDQUFDOzs7Ozs7SUFzQk8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFhOztZQUNwQyxLQUFLLEdBQUcsRUFBRTtRQUVkLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMzQixLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzFCO2FBQU0sSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDN0IsS0FBSyxxQkFBUSxRQUFRLENBQUUsQ0FBQztTQUN6QjthQUFNLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtZQUNqQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1NBQ1o7YUFBTTtZQUNMLEtBQUssR0FBRyxRQUFRLENBQUM7U0FDbEI7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Ozs7OztJQUVPLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxZQUFrQztRQUNuRSxZQUFZLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzFELENBQUM7Ozs7OztJQUtELEdBQUcsQ0FBQyxZQUFrQztRQUNwQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLENBQUM7Y0FDekMsRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQztRQUN2RCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU07WUFBRSxPQUFPLEVBQUUsQ0FBQzs7Y0FFM0IsVUFBVSxHQUFrQixVQUFVLENBQUMsU0FBUyxDQUFDOztjQUNqRCxZQUFZLEdBQWEsZUFBZSxDQUFDLFVBQVUsQ0FBQzs7Y0FDcEQsS0FBSyxHQUEwQixrQkFBa0IsQ0FBQyxVQUFVLENBQUM7O2NBQzdELFNBQVMsR0FBc0MsV0FBVyxDQUFDLFNBQVMsQ0FBQzs7Y0FDckUsa0JBQWtCLEdBQWtCLEVBQUU7UUFFNUMsS0FBSyxNQUFNLElBQUksSUFBSSxZQUFZLEVBQUU7O2tCQUN6QixVQUFVLEdBQXVCLFNBQVMsQ0FBQyxJQUFJLENBQUM7O2tCQUNoRCxJQUFJLEdBQVcsS0FBSyxDQUFDLElBQUksQ0FBQzs7a0JBQzFCLElBQUksR0FBa0IsbUJBQUEsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFDO1lBRWpELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7O2tCQUVoQyxRQUFRLEdBQWdCO2dCQUM1QixJQUFJO2dCQUNKLElBQUk7Z0JBQ0osYUFBYSxFQUFFLEtBQUs7Z0JBQ3BCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztnQkFDckIsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztnQkFDeEMsUUFBUSxFQUFFLFlBQVksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUNwRDtZQUVELDZDQUE2QztZQUM3Qyx5Q0FBeUM7WUFDekMsOEJBQThCO1lBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFO2dCQUNuRCxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDbkM7WUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUM1QjtRQUVELE9BQU8sa0JBQWtCLENBQUM7SUFDNUIsQ0FBQzs7Ozs7O0lBS0Qsb0JBQW9CLENBQUMsWUFBa0M7O2NBQy9DLE9BQU8sR0FBeUIsWUFBWSxJQUFJLEVBQUU7O2NBRWxELFlBQVksR0FBa0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7O2NBQy9DLFFBQVEsR0FBRyxZQUFZLENBQUMsTUFBTTs7Ozs7UUFDbEMsQ0FBQyxNQUFXLEVBQUUsV0FBd0IsRUFBRSxFQUFFLENBQ3hDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQzFELEVBQUUsQ0FDSDtRQUNELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxDQUFDO0lBQzVDLENBQUM7Ozs7O0lBS0QscUJBQXFCO1FBQ25CLElBQUksSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPO1FBQzVCLElBQUksQ0FBQyxRQUFRO2FBQ1YsSUFBSSxDQUNILE1BQU07Ozs7UUFBQyxDQUFDLEdBQWtCLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLGtDQUE0QixFQUFDLEVBQ3RFLFFBQVE7Ozs7UUFBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsbUJBQUEsTUFBTSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQzdDLEdBQUc7OztRQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0sK0JBQXlCLEVBQUUsRUFBQSxFQUFDLEVBQ3JFLGNBQWMsQ0FBQyxtQkFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUF1QixFQUFFLEVBQUEsQ0FBQyxFQUN4RSxVQUFVOzs7O1FBQUMsS0FBSyxDQUFDLEVBQUUsQ0FDakIsRUFBRSxDQUFDLG1CQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0seUJBQXNCLEVBQUUsS0FBSyxFQUFFLEVBQUEsQ0FBQyxFQUNuRSxDQUNGLEVBQ0YsQ0FDRjthQUNBLFNBQVM7Ozs7UUFBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDekIsQ0FBQzs7Ozs7OztJQUtELGFBQWEsQ0FBQyxRQUF5QixFQUFFLE1BQVc7O2NBQzVDLElBQUksR0FBRyxtQkFBQSx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsRUFBQzs7Y0FDekMsT0FBTyxHQUFHLEVBQUU7UUFFbEIsS0FBSyxNQUFNLFFBQVEsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFOztrQkFDNUIsV0FBVyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBRTFDLElBQUksV0FBVyxFQUFFO2dCQUNmLEtBQUssTUFBTSxVQUFVLElBQUksV0FBVyxFQUFFOzswQkFDOUIsWUFBWSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUM7b0JBQzNFLElBQUk7OzRCQUNFLE1BQU0sR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDO3dCQUVuRSxJQUFJLE1BQU0sWUFBWSxPQUFPLEVBQUU7NEJBQzdCLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7eUJBQ3ZCO3dCQUVELElBQUksTUFBTSxZQUFZLFVBQVUsRUFBRTs0QkFDaEMscURBQXFEOzRCQUNyRCw4REFBOEQ7NEJBQzlELHFEQUFxRDs0QkFDckQsMkJBQTJCOzRCQUMzQixrRUFBa0U7NEJBQ2xFLG1DQUFtQzs0QkFDbkMsb0NBQW9DOzRCQUNwQyxnREFBZ0Q7NEJBQ2hELE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDOzRCQUV6QyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUU7Z0NBQ3hDLDREQUE0RDtnQ0FDNUQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQ2xCLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG1CQUFBLE1BQU0sRUFBTyxDQUFDLENBQUMsQ0FBQyxDQUM1RCxDQUFDOzZCQUNIO3lCQUNGOzZCQUFNOzRCQUNMLE1BQU0sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7eUJBQ3JDO3dCQUVELE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7cUJBQ3RCO29CQUFDLE9BQU8sQ0FBQyxFQUFFO3dCQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7cUJBQzdCO2lCQUNGO2FBQ0Y7U0FDRjtRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ25CLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDdEI7UUFFRCxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixDQUFDOzs7Ozs7SUFFTyxjQUFjLENBQ3BCLFlBQWtDOztjQUU1QixTQUFTLEdBQXlCLEVBQUU7O2NBQ3BDLFNBQVMsR0FBaUIsSUFBSSxDQUFDLFlBQVk7UUFFakQsS0FBSyxNQUFNLFVBQVUsSUFBSSxZQUFZLEVBQUU7O2tCQUMvQixTQUFTLEdBQVcsZUFBZSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUM7O2tCQUNqRixjQUFjLEdBQUcsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDO1lBQzVDLElBQUksY0FBYyxFQUFFO2dCQUNsQixTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUMzQixTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsVUFBVSxDQUFDO2FBQ25DO1NBQ0Y7UUFFRCxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDdkIsQ0FBQzs7Ozs7OztJQUVPLG9CQUFvQixDQUFDLElBQW1CLEVBQUUsSUFBWTtRQUM1RCxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFBLElBQUksQ0FBQyxJQUFJLEVBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNuQyxxRkFBcUY7UUFDckYsNkVBQTZFO1FBQzdFLHlGQUF5RjtRQUN6RixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDOzs7Ozs7Ozs7O0lBU08sNkJBQTZCLENBQUMsSUFBWSxFQUFFLElBQVk7O2NBQ3hELGlDQUFpQyxHQUNyQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsS0FBSyxTQUFTO1FBQ2xELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxpQ0FBaUMsQ0FBQztJQUN0RSxDQUFDOzs7WUF6UEYsVUFBVTs7OztZQXpDVSxRQUFRO1lBWVYsVUFBVTtZQXNDRCxZQUFZLHVCQUZuQyxRQUFRLFlBQ1IsUUFBUTtZQWxCeUIsZUFBZTtZQUM1QywrQkFBK0I7WUFDL0IsbUJBQW1COzRDQXFCdkIsUUFBUSxZQUNSLE1BQU0sU0FBQyxtQkFBbUI7Ozs7Ozs7SUFaN0Isa0NBQTJCOzs7OztJQWdCM0IsK0JBQW9DOzs7OztJQU1wQyxxQ0FBeUM7Ozs7O0lBTXpDLG1DQUFnRDs7SUFNaEQsaURBa0JHOzs7OztJQWpERCxpQ0FBMkI7Ozs7O0lBQzNCLCtCQUEyQjs7Ozs7SUFDM0Isc0NBRW9DOzs7OztJQUNwQyxnQ0FBaUM7Ozs7O0lBQ2pDLHNDQUF1RDs7Ozs7SUFDdkQsNENBQWlEOzs7OztJQUNqRCxxQ0FFMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgT3B0aW9uYWwsIFNraXBTZWxmLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZm9ya0pvaW4sIGZyb20sIE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgY2F0Y2hFcnJvcixcclxuICBkZWZhdWx0SWZFbXB0eSxcclxuICBmaWx0ZXIsXHJcbiAgbWFwLFxyXG4gIG1lcmdlTWFwLFxyXG4gIHNoYXJlUmVwbGF5LFxyXG4gIHRha2VVbnRpbFxyXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IE1FVEFfS0VZLCBOZ3hzQ29uZmlnIH0gZnJvbSAnLi4vc3ltYm9scyc7XHJcbmltcG9ydCB7XHJcbiAgYnVpbGRHcmFwaCxcclxuICBmaW5kRnVsbFBhcmVudFBhdGgsXHJcbiAgaXNPYmplY3QsXHJcbiAgTWFwcGVkU3RvcmUsXHJcbiAgTWV0YURhdGFNb2RlbCxcclxuICBuYW1lVG9TdGF0ZSxcclxuICBwcm9wR2V0dGVyLFxyXG4gIFN0YXRlQ2xhc3NJbnRlcm5hbCxcclxuICBTdGF0ZUtleUdyYXBoLFxyXG4gIFN0YXRlc0FuZERlZmF1bHRzLFxyXG4gIFN0YXRlc0J5TmFtZSxcclxuICB0b3BvbG9naWNhbFNvcnQsXHJcbiAgUnVudGltZVNlbGVjdG9yQ29udGV4dCxcclxuICBTaGFyZWRTZWxlY3Rvck9wdGlvbnNcclxufSBmcm9tICcuL2ludGVybmFscyc7XHJcbmltcG9ydCB7IGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UsIGdldFZhbHVlLCBzZXRWYWx1ZSB9IGZyb20gJy4uL3V0aWxzL3V0aWxzJztcclxuaW1wb3J0IHsgb2ZBY3Rpb25EaXNwYXRjaGVkIH0gZnJvbSAnLi4vb3BlcmF0b3JzL29mLWFjdGlvbic7XHJcbmltcG9ydCB7IEFjdGlvbkNvbnRleHQsIEFjdGlvblN0YXR1cywgSW50ZXJuYWxBY3Rpb25zIH0gZnJvbSAnLi4vYWN0aW9ucy1zdHJlYW0nO1xyXG5pbXBvcnQgeyBJbnRlcm5hbERpc3BhdGNoZWRBY3Rpb25SZXN1bHRzIH0gZnJvbSAnLi4vaW50ZXJuYWwvZGlzcGF0Y2hlcic7XHJcbmltcG9ydCB7IFN0YXRlQ29udGV4dEZhY3RvcnkgfSBmcm9tICcuLi9pbnRlcm5hbC9zdGF0ZS1jb250ZXh0LWZhY3RvcnknO1xyXG5pbXBvcnQgeyBTdG9yZVZhbGlkYXRvcnMgfSBmcm9tICcuLi91dGlscy9zdG9yZS12YWxpZGF0b3JzJztcclxuaW1wb3J0IHsgSU5JVElBTF9TVEFURV9UT0tFTiwgUGxhaW5PYmplY3RPZiwgbWVtb2l6ZSB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XHJcblxyXG4vKipcclxuICogU3RhdGUgZmFjdG9yeSBjbGFzc1xyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTdGF0ZUZhY3Rvcnkge1xyXG4gIHByaXZhdGUgX2Nvbm5lY3RlZCA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByaXZhdGUgX2NvbmZpZzogTmd4c0NvbmZpZyxcclxuICAgIEBPcHRpb25hbCgpXHJcbiAgICBAU2tpcFNlbGYoKVxyXG4gICAgcHJpdmF0ZSBfcGFyZW50RmFjdG9yeTogU3RhdGVGYWN0b3J5LFxyXG4gICAgcHJpdmF0ZSBfYWN0aW9uczogSW50ZXJuYWxBY3Rpb25zLFxyXG4gICAgcHJpdmF0ZSBfYWN0aW9uUmVzdWx0czogSW50ZXJuYWxEaXNwYXRjaGVkQWN0aW9uUmVzdWx0cyxcclxuICAgIHByaXZhdGUgX3N0YXRlQ29udGV4dEZhY3Rvcnk6IFN0YXRlQ29udGV4dEZhY3RvcnksXHJcbiAgICBAT3B0aW9uYWwoKVxyXG4gICAgQEluamVjdChJTklUSUFMX1NUQVRFX1RPS0VOKVxyXG4gICAgcHJpdmF0ZSBfaW5pdGlhbFN0YXRlOiBhbnlcclxuICApIHt9XHJcblxyXG4gIHByaXZhdGUgX3N0YXRlczogTWFwcGVkU3RvcmVbXSA9IFtdO1xyXG5cclxuICBwdWJsaWMgZ2V0IHN0YXRlcygpOiBNYXBwZWRTdG9yZVtdIHtcclxuICAgIHJldHVybiB0aGlzLl9wYXJlbnRGYWN0b3J5ID8gdGhpcy5fcGFyZW50RmFjdG9yeS5zdGF0ZXMgOiB0aGlzLl9zdGF0ZXM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zdGF0ZXNCeU5hbWU6IFN0YXRlc0J5TmFtZSA9IHt9O1xyXG5cclxuICBwdWJsaWMgZ2V0IHN0YXRlc0J5TmFtZSgpOiBTdGF0ZXNCeU5hbWUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BhcmVudEZhY3RvcnkgPyB0aGlzLl9wYXJlbnRGYWN0b3J5LnN0YXRlc0J5TmFtZSA6IHRoaXMuX3N0YXRlc0J5TmFtZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3N0YXRlUGF0aHM6IFBsYWluT2JqZWN0T2Y8c3RyaW5nPiA9IHt9O1xyXG5cclxuICBwcml2YXRlIGdldCBzdGF0ZVBhdGhzKCk6IFBsYWluT2JqZWN0T2Y8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50RmFjdG9yeSA/IHRoaXMuX3BhcmVudEZhY3Rvcnkuc3RhdGVQYXRocyA6IHRoaXMuX3N0YXRlUGF0aHM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0UnVudGltZVNlbGVjdG9yQ29udGV4dCA9IG1lbW9pemUoKCkgPT4ge1xyXG4gICAgY29uc3Qgc3RhdGVGYWN0b3J5ID0gdGhpcztcclxuICAgIGNvbnN0IGNvbnRleHQ6IFJ1bnRpbWVTZWxlY3RvckNvbnRleHQgPSB0aGlzLl9wYXJlbnRGYWN0b3J5XHJcbiAgICAgID8gdGhpcy5fcGFyZW50RmFjdG9yeS5nZXRSdW50aW1lU2VsZWN0b3JDb250ZXh0KClcclxuICAgICAgOiB7XHJcbiAgICAgICAgICBnZXRTdGF0ZUdldHRlcihrZXk6IHN0cmluZykge1xyXG4gICAgICAgICAgICBjb25zdCBwYXRoID0gc3RhdGVGYWN0b3J5LnN0YXRlUGF0aHNba2V5XTtcclxuICAgICAgICAgICAgcmV0dXJuIHBhdGggPyBwcm9wR2V0dGVyKHBhdGguc3BsaXQoJy4nKSwgc3RhdGVGYWN0b3J5Ll9jb25maWcpIDogKCkgPT4gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGdldFNlbGVjdG9yT3B0aW9ucyhsb2NhbE9wdGlvbnM/OiBTaGFyZWRTZWxlY3Rvck9wdGlvbnMpIHtcclxuICAgICAgICAgICAgY29uc3QgZ2xvYmFsU2VsZWN0b3JPcHRpb25zID0gc3RhdGVGYWN0b3J5Ll9jb25maWcuc2VsZWN0b3JPcHRpb25zO1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIC4uLmdsb2JhbFNlbGVjdG9yT3B0aW9ucyxcclxuICAgICAgICAgICAgICAuLi4obG9jYWxPcHRpb25zIHx8IHt9KVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICByZXR1cm4gY29udGV4dDtcclxuICB9KTtcclxuXHJcbiAgcHJpdmF0ZSBzdGF0aWMgY2xvbmVEZWZhdWx0cyhkZWZhdWx0czogYW55KTogYW55IHtcclxuICAgIGxldCB2YWx1ZSA9IHt9O1xyXG5cclxuICAgIGlmIChBcnJheS5pc0FycmF5KGRlZmF1bHRzKSkge1xyXG4gICAgICB2YWx1ZSA9IGRlZmF1bHRzLnNsaWNlKCk7XHJcbiAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KGRlZmF1bHRzKSkge1xyXG4gICAgICB2YWx1ZSA9IHsgLi4uZGVmYXVsdHMgfTtcclxuICAgIH0gZWxzZSBpZiAoZGVmYXVsdHMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB2YWx1ZSA9IHt9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFsdWUgPSBkZWZhdWx0cztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBjaGVja1N0YXRlc0FyZVZhbGlkKHN0YXRlQ2xhc3NlczogU3RhdGVDbGFzc0ludGVybmFsW10pOiB2b2lkIHtcclxuICAgIHN0YXRlQ2xhc3Nlcy5mb3JFYWNoKFN0b3JlVmFsaWRhdG9ycy5nZXRWYWxpZFN0YXRlTWV0YSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgYSBuZXcgc3RhdGUgdG8gdGhlIGdsb2JhbCBkZWZzLlxyXG4gICAqL1xyXG4gIGFkZChzdGF0ZUNsYXNzZXM6IFN0YXRlQ2xhc3NJbnRlcm5hbFtdKTogTWFwcGVkU3RvcmVbXSB7XHJcbiAgICBTdGF0ZUZhY3RvcnkuY2hlY2tTdGF0ZXNBcmVWYWxpZChzdGF0ZUNsYXNzZXMpO1xyXG4gICAgY29uc3QgeyBuZXdTdGF0ZXMgfSA9IHRoaXMuYWRkVG9TdGF0ZXNNYXAoc3RhdGVDbGFzc2VzKTtcclxuICAgIGlmICghbmV3U3RhdGVzLmxlbmd0aCkgcmV0dXJuIFtdO1xyXG5cclxuICAgIGNvbnN0IHN0YXRlR3JhcGg6IFN0YXRlS2V5R3JhcGggPSBidWlsZEdyYXBoKG5ld1N0YXRlcyk7XHJcbiAgICBjb25zdCBzb3J0ZWRTdGF0ZXM6IHN0cmluZ1tdID0gdG9wb2xvZ2ljYWxTb3J0KHN0YXRlR3JhcGgpO1xyXG4gICAgY29uc3QgcGF0aHM6IFBsYWluT2JqZWN0T2Y8c3RyaW5nPiA9IGZpbmRGdWxsUGFyZW50UGF0aChzdGF0ZUdyYXBoKTtcclxuICAgIGNvbnN0IG5hbWVHcmFwaDogUGxhaW5PYmplY3RPZjxTdGF0ZUNsYXNzSW50ZXJuYWw+ID0gbmFtZVRvU3RhdGUobmV3U3RhdGVzKTtcclxuICAgIGNvbnN0IGJvb3RzdHJhcHBlZFN0b3JlczogTWFwcGVkU3RvcmVbXSA9IFtdO1xyXG5cclxuICAgIGZvciAoY29uc3QgbmFtZSBvZiBzb3J0ZWRTdGF0ZXMpIHtcclxuICAgICAgY29uc3Qgc3RhdGVDbGFzczogU3RhdGVDbGFzc0ludGVybmFsID0gbmFtZUdyYXBoW25hbWVdO1xyXG4gICAgICBjb25zdCBwYXRoOiBzdHJpbmcgPSBwYXRoc1tuYW1lXTtcclxuICAgICAgY29uc3QgbWV0YTogTWV0YURhdGFNb2RlbCA9IHN0YXRlQ2xhc3NbTUVUQV9LRVldITtcclxuXHJcbiAgICAgIHRoaXMuYWRkUnVudGltZUluZm9Ub01ldGEobWV0YSwgcGF0aCk7XHJcblxyXG4gICAgICBjb25zdCBzdGF0ZU1hcDogTWFwcGVkU3RvcmUgPSB7XHJcbiAgICAgICAgbmFtZSxcclxuICAgICAgICBwYXRoLFxyXG4gICAgICAgIGlzSW5pdGlhbGlzZWQ6IGZhbHNlLFxyXG4gICAgICAgIGFjdGlvbnM6IG1ldGEuYWN0aW9ucyxcclxuICAgICAgICBpbnN0YW5jZTogdGhpcy5faW5qZWN0b3IuZ2V0KHN0YXRlQ2xhc3MpLFxyXG4gICAgICAgIGRlZmF1bHRzOiBTdGF0ZUZhY3RvcnkuY2xvbmVEZWZhdWx0cyhtZXRhLmRlZmF1bHRzKVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgLy8gZW5zdXJlIG91ciBzdG9yZSBoYXNuJ3QgYWxyZWFkeSBiZWVuIGFkZGVkXHJcbiAgICAgIC8vIGJ1dCBkb24ndCB0aHJvdyBzaW5jZSBpdCBjb3VsZCBiZSBsYXp5XHJcbiAgICAgIC8vIGxvYWRlZCBmcm9tIGRpZmZlcmVudCBwYXRoc1xyXG4gICAgICBpZiAoIXRoaXMuaGFzQmVlbk1vdW50ZWRBbmRCb290c3RyYXBwZWQobmFtZSwgcGF0aCkpIHtcclxuICAgICAgICBib290c3RyYXBwZWRTdG9yZXMucHVzaChzdGF0ZU1hcCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuc3RhdGVzLnB1c2goc3RhdGVNYXApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBib290c3RyYXBwZWRTdG9yZXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgYSBzZXQgb2Ygc3RhdGVzIHRvIHRoZSBzdG9yZSBhbmQgcmV0dXJuIHRoZSBkZWZhdWx0c1xyXG4gICAqL1xyXG4gIGFkZEFuZFJldHVybkRlZmF1bHRzKHN0YXRlQ2xhc3NlczogU3RhdGVDbGFzc0ludGVybmFsW10pOiBTdGF0ZXNBbmREZWZhdWx0cyB7XHJcbiAgICBjb25zdCBjbGFzc2VzOiBTdGF0ZUNsYXNzSW50ZXJuYWxbXSA9IHN0YXRlQ2xhc3NlcyB8fCBbXTtcclxuXHJcbiAgICBjb25zdCBtYXBwZWRTdG9yZXM6IE1hcHBlZFN0b3JlW10gPSB0aGlzLmFkZChjbGFzc2VzKTtcclxuICAgIGNvbnN0IGRlZmF1bHRzID0gbWFwcGVkU3RvcmVzLnJlZHVjZShcclxuICAgICAgKHJlc3VsdDogYW55LCBtYXBwZWRTdG9yZTogTWFwcGVkU3RvcmUpID0+XHJcbiAgICAgICAgc2V0VmFsdWUocmVzdWx0LCBtYXBwZWRTdG9yZS5wYXRoLCBtYXBwZWRTdG9yZS5kZWZhdWx0cyksXHJcbiAgICAgIHt9XHJcbiAgICApO1xyXG4gICAgcmV0dXJuIHsgZGVmYXVsdHMsIHN0YXRlczogbWFwcGVkU3RvcmVzIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCaW5kIHRoZSBhY3Rpb25zIHRvIHRoZSBoYW5kbGVyc1xyXG4gICAqL1xyXG4gIGNvbm5lY3RBY3Rpb25IYW5kbGVycygpIHtcclxuICAgIGlmICh0aGlzLl9jb25uZWN0ZWQpIHJldHVybjtcclxuICAgIHRoaXMuX2FjdGlvbnNcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKChjdHg6IEFjdGlvbkNvbnRleHQpID0+IGN0eC5zdGF0dXMgPT09IEFjdGlvblN0YXR1cy5EaXNwYXRjaGVkKSxcclxuICAgICAgICBtZXJnZU1hcCgoeyBhY3Rpb24gfSkgPT5cclxuICAgICAgICAgIHRoaXMuaW52b2tlQWN0aW9ucyh0aGlzLl9hY3Rpb25zLCBhY3Rpb24hKS5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKCkgPT4gPEFjdGlvbkNvbnRleHQ+eyBhY3Rpb24sIHN0YXR1czogQWN0aW9uU3RhdHVzLlN1Y2Nlc3NmdWwgfSksXHJcbiAgICAgICAgICAgIGRlZmF1bHRJZkVtcHR5KDxBY3Rpb25Db250ZXh0PnsgYWN0aW9uLCBzdGF0dXM6IEFjdGlvblN0YXR1cy5DYW5jZWxlZCB9KSxcclxuICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PlxyXG4gICAgICAgICAgICAgIG9mKDxBY3Rpb25Db250ZXh0PnsgYWN0aW9uLCBzdGF0dXM6IEFjdGlvblN0YXR1cy5FcnJvcmVkLCBlcnJvciB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoY3R4ID0+IHRoaXMuX2FjdGlvblJlc3VsdHMubmV4dChjdHgpKTtcclxuICAgIHRoaXMuX2Nvbm5lY3RlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbnZva2UgYWN0aW9ucyBvbiB0aGUgc3RhdGVzLlxyXG4gICAqL1xyXG4gIGludm9rZUFjdGlvbnMoYWN0aW9ucyQ6IEludGVybmFsQWN0aW9ucywgYWN0aW9uOiBhbnkpIHtcclxuICAgIGNvbnN0IHR5cGUgPSBnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlKGFjdGlvbikhO1xyXG4gICAgY29uc3QgcmVzdWx0cyA9IFtdO1xyXG5cclxuICAgIGZvciAoY29uc3QgbWV0YWRhdGEgb2YgdGhpcy5zdGF0ZXMpIHtcclxuICAgICAgY29uc3QgYWN0aW9uTWV0YXMgPSBtZXRhZGF0YS5hY3Rpb25zW3R5cGVdO1xyXG5cclxuICAgICAgaWYgKGFjdGlvbk1ldGFzKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBhY3Rpb25NZXRhIG9mIGFjdGlvbk1ldGFzKSB7XHJcbiAgICAgICAgICBjb25zdCBzdGF0ZUNvbnRleHQgPSB0aGlzLl9zdGF0ZUNvbnRleHRGYWN0b3J5LmNyZWF0ZVN0YXRlQ29udGV4dChtZXRhZGF0YSk7XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBsZXQgcmVzdWx0ID0gbWV0YWRhdGEuaW5zdGFuY2VbYWN0aW9uTWV0YS5mbl0oc3RhdGVDb250ZXh0LCBhY3Rpb24pO1xyXG5cclxuICAgICAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgICAgICAgICByZXN1bHQgPSBmcm9tKHJlc3VsdCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKSB7XHJcbiAgICAgICAgICAgICAgLy8gSWYgdGhpcyBvYnNlcnZhYmxlIGhhcyBiZWVuIGNvbXBsZXRlZCB3L28gZW1pdHRpbmdcclxuICAgICAgICAgICAgICAvLyBhbnkgdmFsdWUgdGhlbiB3ZSB3b3VsZG4ndCB3YW50IHRvIGNvbXBsZXRlIHRoZSB3aG9sZSBjaGFpblxyXG4gICAgICAgICAgICAgIC8vIG9mIGFjdGlvbnMuIFNpbmNlIGlmIGFueSBvYnNlcnZhYmxlIGNvbXBsZXRlcyB0aGVuXHJcbiAgICAgICAgICAgICAgLy8gYWN0aW9uIHdpbGwgYmUgY2FuY2VsZWQuXHJcbiAgICAgICAgICAgICAgLy8gRm9yIGluc3RhbmNlIGlmIGFueSBhY3Rpb24gaGFuZGxlciB3b3VsZCd2ZSBoYWQgc3VjaCBzdGF0ZW1lbnQ6XHJcbiAgICAgICAgICAgICAgLy8gYGhhbmRsZXIoY3R4KSB7IHJldHVybiBFTVBUWTsgfWBcclxuICAgICAgICAgICAgICAvLyB0aGVuIHRoZSBhY3Rpb24gd2lsbCBiZSBjYW5jZWxlZC5cclxuICAgICAgICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL25neHMvc3RvcmUvaXNzdWVzLzE1NjhcclxuICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQucGlwZShkZWZhdWx0SWZFbXB0eSh7fSkpO1xyXG5cclxuICAgICAgICAgICAgICBpZiAoYWN0aW9uTWV0YS5vcHRpb25zLmNhbmNlbFVuY29tcGxldGVkKSB7XHJcbiAgICAgICAgICAgICAgICAvLyB0b2RvOiBvZkFjdGlvbkRpc3BhdGNoZWQgc2hvdWxkIGJlIHVzZWQgd2l0aCBhY3Rpb24gY2xhc3NcclxuICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5waXBlKFxyXG4gICAgICAgICAgICAgICAgICB0YWtlVW50aWwoYWN0aW9ucyQucGlwZShvZkFjdGlvbkRpc3BhdGNoZWQoYWN0aW9uIGFzIGFueSkpKVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcmVzdWx0ID0gb2Yoe30pLnBpcGUoc2hhcmVSZXBsYXkoKSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJlc3VsdHMucHVzaChyZXN1bHQpO1xyXG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICByZXN1bHRzLnB1c2godGhyb3dFcnJvcihlKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFyZXN1bHRzLmxlbmd0aCkge1xyXG4gICAgICByZXN1bHRzLnB1c2gob2Yoe30pKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZm9ya0pvaW4ocmVzdWx0cyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZFRvU3RhdGVzTWFwKFxyXG4gICAgc3RhdGVDbGFzc2VzOiBTdGF0ZUNsYXNzSW50ZXJuYWxbXVxyXG4gICk6IHsgbmV3U3RhdGVzOiBTdGF0ZUNsYXNzSW50ZXJuYWxbXSB9IHtcclxuICAgIGNvbnN0IG5ld1N0YXRlczogU3RhdGVDbGFzc0ludGVybmFsW10gPSBbXTtcclxuICAgIGNvbnN0IHN0YXRlc01hcDogU3RhdGVzQnlOYW1lID0gdGhpcy5zdGF0ZXNCeU5hbWU7XHJcblxyXG4gICAgZm9yIChjb25zdCBzdGF0ZUNsYXNzIG9mIHN0YXRlQ2xhc3Nlcykge1xyXG4gICAgICBjb25zdCBzdGF0ZU5hbWU6IHN0cmluZyA9IFN0b3JlVmFsaWRhdG9ycy5jaGVja1N0YXRlTmFtZUlzVW5pcXVlKHN0YXRlQ2xhc3MsIHN0YXRlc01hcCk7XHJcbiAgICAgIGNvbnN0IHVubW91bnRlZFN0YXRlID0gIXN0YXRlc01hcFtzdGF0ZU5hbWVdO1xyXG4gICAgICBpZiAodW5tb3VudGVkU3RhdGUpIHtcclxuICAgICAgICBuZXdTdGF0ZXMucHVzaChzdGF0ZUNsYXNzKTtcclxuICAgICAgICBzdGF0ZXNNYXBbc3RhdGVOYW1lXSA9IHN0YXRlQ2xhc3M7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4geyBuZXdTdGF0ZXMgfTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkUnVudGltZUluZm9Ub01ldGEobWV0YTogTWV0YURhdGFNb2RlbCwgcGF0aDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0YXRlUGF0aHNbbWV0YS5uYW1lIV0gPSBwYXRoO1xyXG4gICAgLy8gVE9ETzogdjQgLSB3ZSBwbGFuIHRvIGdldCByaWQgb2YgdGhlIHBhdGggcHJvcGVydHkgYmVjYXVzZSBpdCBpcyBub24tZGV0ZXJtaW5pc3RpY1xyXG4gICAgLy8gd2UgY2FuIGRvIHRoaXMgd2hlbiB3ZSBnZXQgcmlkIG9mIHRoZSBpbmNvcnJlY3RseSBleHBvc2VkIGdldFN0b3JlTWV0YWRhdGFcclxuICAgIC8vIFdlIHdpbGwgbmVlZCB0byBjb21lIHVwIHdpdGggYW4gYWx0ZXJuYXRpdmUgaW4gdjQgYmVjYXVzZSB0aGlzIGlzIHVzZWQgYnkgbWFueSBwbHVnaW5zXHJcbiAgICBtZXRhLnBhdGggPSBwYXRoO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uXHJcbiAgICogdGhlIG1ldGhvZCBjaGVja3MgaWYgdGhlIHN0YXRlIGhhcyBhbHJlYWR5IGJlZW4gYWRkZWQgdG8gdGhlIHRyZWVcclxuICAgKiBhbmQgY29tcGxldGVkIHRoZSBsaWZlIGN5Y2xlXHJcbiAgICogQHBhcmFtIG5hbWVcclxuICAgKiBAcGFyYW0gcGF0aFxyXG4gICAqL1xyXG4gIHByaXZhdGUgaGFzQmVlbk1vdW50ZWRBbmRCb290c3RyYXBwZWQobmFtZTogc3RyaW5nLCBwYXRoOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHZhbHVlSXNCb290c3RyYXBwZWRJbkluaXRpYWxTdGF0ZTogYm9vbGVhbiA9XHJcbiAgICAgIGdldFZhbHVlKHRoaXMuX2luaXRpYWxTdGF0ZSwgcGF0aCkgIT09IHVuZGVmaW5lZDtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlc0J5TmFtZVtuYW1lXSAmJiB2YWx1ZUlzQm9vdHN0cmFwcGVkSW5Jbml0aWFsU3RhdGU7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -42,10 +42,10 @@ export class InternalStateOperations {
42
42
  */
43
43
  (newState) => this._stateStream.next(newState)),
44
44
  dispatch: (/**
45
- * @param {?} actions
45
+ * @param {?} actionOrActions
46
46
  * @return {?}
47
47
  */
48
- (actions) => this._dispatcher.dispatch(actions))
48
+ (actionOrActions) => this._dispatcher.dispatch(actionOrActions))
49
49
  };
50
50
  if (this._config.developmentMode) {
51
51
  return this.ensureStateAndActionsAreImmutable(rootStateOperations);
@@ -122,4 +122,4 @@ if (false) {
122
122
  */
123
123
  InternalStateOperations.prototype._config;
124
124
  }
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtb3BlcmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL2ludGVybmFsL3N0YXRlLW9wZXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7QUFPL0QsTUFBTSxPQUFPLHVCQUF1Qjs7Ozs7OztJQUNsQyxZQUNVLFlBQXlCLEVBQ3pCLFdBQStCLEVBQy9CLE9BQW1CLEVBQzNCLGVBQWdDO1FBSHhCLGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3pCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBRzNCLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNsQyxDQUFDOzs7OztJQUtELHNCQUFzQjs7Y0FDZCxtQkFBbUIsR0FBRztZQUMxQixRQUFROzs7WUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFBO1lBQzVDLFFBQVE7Ozs7WUFBRSxDQUFDLFFBQWEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDN0QsUUFBUTs7OztZQUFFLENBQUMsT0FBYyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQTtTQUNqRTtRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUU7WUFDaEMsT0FBTyxJQUFJLENBQUMsaUNBQWlDLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUNwRTtRQUVELE9BQU8sbUJBQW1CLENBQUM7SUFDN0IsQ0FBQzs7Ozs7O0lBRU8saUNBQWlDLENBQUMsSUFBMEI7UUFDbEUsT0FBTztZQUNMLFFBQVE7OztZQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQTtZQUMvQixRQUFROzs7O1lBQUUsS0FBSyxDQUFDLEVBQUU7O3NCQUNWLFdBQVcsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO2dCQUNyQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDcEMsQ0FBQyxDQUFBO1lBQ0QsUUFBUTs7OztZQUFFLE9BQU8sQ0FBQyxFQUFFO2dCQUNsQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDaEMsQ0FBQyxDQUFBO1NBQ0YsQ0FBQztJQUNKLENBQUM7Ozs7O0lBRUQsMkJBQTJCLENBQUMsT0FBMEI7O2NBQzlDLGVBQWUsR0FBeUIsSUFBSSxDQUFDLHNCQUFzQixFQUFFOzs7Y0FHckUsWUFBWSxHQUFHLGVBQWUsQ0FBQyxRQUFRLEVBQUU7UUFDL0MscUNBQXFDO1FBQ3JDLGVBQWUsQ0FBQyxRQUFRLG1CQUFNLFlBQVksRUFBSyxPQUFPLENBQUMsUUFBUSxFQUFHLENBQUM7SUFDckUsQ0FBQzs7O1lBaERGLFVBQVU7Ozs7WUFURixXQUFXO1lBRFgsa0JBQWtCO1lBRWxCLFVBQVU7WUFFVixlQUFlOzs7Ozs7O0lBU3BCLCtDQUFpQzs7Ozs7SUFDakMsOENBQXVDOzs7OztJQUN2QywwQ0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBTdGF0ZU9wZXJhdGlvbnMsIFN0YXRlc0FuZERlZmF1bHRzIH0gZnJvbSAnLi4vaW50ZXJuYWwvaW50ZXJuYWxzJztcclxuaW1wb3J0IHsgSW50ZXJuYWxEaXNwYXRjaGVyIH0gZnJvbSAnLi4vaW50ZXJuYWwvZGlzcGF0Y2hlcic7XHJcbmltcG9ydCB7IFN0YXRlU3RyZWFtIH0gZnJvbSAnLi9zdGF0ZS1zdHJlYW0nO1xyXG5pbXBvcnQgeyBOZ3hzQ29uZmlnIH0gZnJvbSAnLi4vc3ltYm9scyc7XHJcbmltcG9ydCB7IGRlZXBGcmVlemUgfSBmcm9tICcuLi91dGlscy9mcmVlemUnO1xyXG5pbXBvcnQgeyBDb25maWdWYWxpZGF0b3IgfSBmcm9tICcuLi9pbnRlcm5hbC9jb25maWctdmFsaWRhdG9yJztcclxuXHJcbi8qKlxyXG4gKiBTdGF0ZSBDb250ZXh0IGZhY3RvcnkgY2xhc3NcclxuICogQGlnbm9yZVxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgSW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfc3RhdGVTdHJlYW06IFN0YXRlU3RyZWFtLFxyXG4gICAgcHJpdmF0ZSBfZGlzcGF0Y2hlcjogSW50ZXJuYWxEaXNwYXRjaGVyLFxyXG4gICAgcHJpdmF0ZSBfY29uZmlnOiBOZ3hzQ29uZmlnLFxyXG4gICAgY29uZmlnVmFsaWRhdG9yOiBDb25maWdWYWxpZGF0b3JcclxuICApIHtcclxuICAgIGNvbmZpZ1ZhbGlkYXRvci52ZXJpZnlEZXZNb2RlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSByb290IHN0YXRlIG9wZXJhdG9ycy5cclxuICAgKi9cclxuICBnZXRSb290U3RhdGVPcGVyYXRpb25zKCk6IFN0YXRlT3BlcmF0aW9uczxhbnk+IHtcclxuICAgIGNvbnN0IHJvb3RTdGF0ZU9wZXJhdGlvbnMgPSB7XHJcbiAgICAgIGdldFN0YXRlOiAoKSA9PiB0aGlzLl9zdGF0ZVN0cmVhbS5nZXRWYWx1ZSgpLFxyXG4gICAgICBzZXRTdGF0ZTogKG5ld1N0YXRlOiBhbnkpID0+IHRoaXMuX3N0YXRlU3RyZWFtLm5leHQobmV3U3RhdGUpLFxyXG4gICAgICBkaXNwYXRjaDogKGFjdGlvbnM6IGFueVtdKSA9PiB0aGlzLl9kaXNwYXRjaGVyLmRpc3BhdGNoKGFjdGlvbnMpXHJcbiAgICB9O1xyXG5cclxuICAgIGlmICh0aGlzLl9jb25maWcuZGV2ZWxvcG1lbnRNb2RlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmVuc3VyZVN0YXRlQW5kQWN0aW9uc0FyZUltbXV0YWJsZShyb290U3RhdGVPcGVyYXRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcm9vdFN0YXRlT3BlcmF0aW9ucztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZW5zdXJlU3RhdGVBbmRBY3Rpb25zQXJlSW1tdXRhYmxlKHJvb3Q6IFN0YXRlT3BlcmF0aW9uczxhbnk+KTogU3RhdGVPcGVyYXRpb25zPGFueT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZ2V0U3RhdGU6ICgpID0+IHJvb3QuZ2V0U3RhdGUoKSxcclxuICAgICAgc2V0U3RhdGU6IHZhbHVlID0+IHtcclxuICAgICAgICBjb25zdCBmcm96ZW5WYWx1ZSA9IGRlZXBGcmVlemUodmFsdWUpO1xyXG4gICAgICAgIHJldHVybiByb290LnNldFN0YXRlKGZyb3plblZhbHVlKTtcclxuICAgICAgfSxcclxuICAgICAgZGlzcGF0Y2g6IGFjdGlvbnMgPT4ge1xyXG4gICAgICAgIHJldHVybiByb290LmRpc3BhdGNoKGFjdGlvbnMpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgc2V0U3RhdGVUb1RoZUN1cnJlbnRXaXRoTmV3KHJlc3VsdHM6IFN0YXRlc0FuZERlZmF1bHRzKTogdm9pZCB7XHJcbiAgICBjb25zdCBzdGF0ZU9wZXJhdGlvbnM6IFN0YXRlT3BlcmF0aW9uczxhbnk+ID0gdGhpcy5nZXRSb290U3RhdGVPcGVyYXRpb25zKCk7XHJcblxyXG4gICAgLy8gR2V0IG91ciBjdXJyZW50IHN0cmVhbVxyXG4gICAgY29uc3QgY3VycmVudFN0YXRlID0gc3RhdGVPcGVyYXRpb25zLmdldFN0YXRlKCk7XHJcbiAgICAvLyBTZXQgdGhlIHN0YXRlIHRvIHRoZSBjdXJyZW50ICsgbmV3XHJcbiAgICBzdGF0ZU9wZXJhdGlvbnMuc2V0U3RhdGUoeyAuLi5jdXJyZW50U3RhdGUsIC4uLnJlc3VsdHMuZGVmYXVsdHMgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtb3BlcmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL2ludGVybmFsL3N0YXRlLW9wZXJhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7QUFPL0QsTUFBTSxPQUFPLHVCQUF1Qjs7Ozs7OztJQUNsQyxZQUNVLFlBQXlCLEVBQ3pCLFdBQStCLEVBQy9CLE9BQW1CLEVBQzNCLGVBQWdDO1FBSHhCLGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3pCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBRzNCLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNsQyxDQUFDOzs7OztJQUtELHNCQUFzQjs7Y0FDZCxtQkFBbUIsR0FBRztZQUMxQixRQUFROzs7WUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFBO1lBQzVDLFFBQVE7Ozs7WUFBRSxDQUFDLFFBQWEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDN0QsUUFBUTs7OztZQUFFLENBQUMsZUFBNEIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUE7U0FDdkY7UUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFO1lBQ2hDLE9BQU8sSUFBSSxDQUFDLGlDQUFpQyxDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDcEU7UUFFRCxPQUFPLG1CQUFtQixDQUFDO0lBQzdCLENBQUM7Ozs7OztJQUVPLGlDQUFpQyxDQUFDLElBQTBCO1FBQ2xFLE9BQU87WUFDTCxRQUFROzs7WUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUE7WUFDL0IsUUFBUTs7OztZQUFFLEtBQUssQ0FBQyxFQUFFOztzQkFDVixXQUFXLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztnQkFDckMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3BDLENBQUMsQ0FBQTtZQUNELFFBQVE7Ozs7WUFBRSxPQUFPLENBQUMsRUFBRTtnQkFDbEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2hDLENBQUMsQ0FBQTtTQUNGLENBQUM7SUFDSixDQUFDOzs7OztJQUVELDJCQUEyQixDQUFDLE9BQTBCOztjQUM5QyxlQUFlLEdBQXlCLElBQUksQ0FBQyxzQkFBc0IsRUFBRTs7O2NBR3JFLFlBQVksR0FBRyxlQUFlLENBQUMsUUFBUSxFQUFFO1FBQy9DLHFDQUFxQztRQUNyQyxlQUFlLENBQUMsUUFBUSxtQkFBTSxZQUFZLEVBQUssT0FBTyxDQUFDLFFBQVEsRUFBRyxDQUFDO0lBQ3JFLENBQUM7OztZQWhERixVQUFVOzs7O1lBVEYsV0FBVztZQURYLGtCQUFrQjtZQUVsQixVQUFVO1lBRVYsZUFBZTs7Ozs7OztJQVNwQiwrQ0FBaUM7Ozs7O0lBQ2pDLDhDQUF1Qzs7Ozs7SUFDdkMsMENBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgU3RhdGVPcGVyYXRpb25zLCBTdGF0ZXNBbmREZWZhdWx0cyB9IGZyb20gJy4uL2ludGVybmFsL2ludGVybmFscyc7XHJcbmltcG9ydCB7IEludGVybmFsRGlzcGF0Y2hlciB9IGZyb20gJy4uL2ludGVybmFsL2Rpc3BhdGNoZXInO1xyXG5pbXBvcnQgeyBTdGF0ZVN0cmVhbSB9IGZyb20gJy4vc3RhdGUtc3RyZWFtJztcclxuaW1wb3J0IHsgTmd4c0NvbmZpZyB9IGZyb20gJy4uL3N5bWJvbHMnO1xyXG5pbXBvcnQgeyBkZWVwRnJlZXplIH0gZnJvbSAnLi4vdXRpbHMvZnJlZXplJztcclxuaW1wb3J0IHsgQ29uZmlnVmFsaWRhdG9yIH0gZnJvbSAnLi4vaW50ZXJuYWwvY29uZmlnLXZhbGlkYXRvcic7XHJcblxyXG4vKipcclxuICogU3RhdGUgQ29udGV4dCBmYWN0b3J5IGNsYXNzXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEludGVybmFsU3RhdGVPcGVyYXRpb25zIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3N0YXRlU3RyZWFtOiBTdGF0ZVN0cmVhbSxcclxuICAgIHByaXZhdGUgX2Rpc3BhdGNoZXI6IEludGVybmFsRGlzcGF0Y2hlcixcclxuICAgIHByaXZhdGUgX2NvbmZpZzogTmd4c0NvbmZpZyxcclxuICAgIGNvbmZpZ1ZhbGlkYXRvcjogQ29uZmlnVmFsaWRhdG9yXHJcbiAgKSB7XHJcbiAgICBjb25maWdWYWxpZGF0b3IudmVyaWZ5RGV2TW9kZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgcm9vdCBzdGF0ZSBvcGVyYXRvcnMuXHJcbiAgICovXHJcbiAgZ2V0Um9vdFN0YXRlT3BlcmF0aW9ucygpOiBTdGF0ZU9wZXJhdGlvbnM8YW55PiB7XHJcbiAgICBjb25zdCByb290U3RhdGVPcGVyYXRpb25zID0ge1xyXG4gICAgICBnZXRTdGF0ZTogKCkgPT4gdGhpcy5fc3RhdGVTdHJlYW0uZ2V0VmFsdWUoKSxcclxuICAgICAgc2V0U3RhdGU6IChuZXdTdGF0ZTogYW55KSA9PiB0aGlzLl9zdGF0ZVN0cmVhbS5uZXh0KG5ld1N0YXRlKSxcclxuICAgICAgZGlzcGF0Y2g6IChhY3Rpb25PckFjdGlvbnM6IGFueSB8IGFueVtdKSA9PiB0aGlzLl9kaXNwYXRjaGVyLmRpc3BhdGNoKGFjdGlvbk9yQWN0aW9ucylcclxuICAgIH07XHJcblxyXG4gICAgaWYgKHRoaXMuX2NvbmZpZy5kZXZlbG9wbWVudE1vZGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZW5zdXJlU3RhdGVBbmRBY3Rpb25zQXJlSW1tdXRhYmxlKHJvb3RTdGF0ZU9wZXJhdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByb290U3RhdGVPcGVyYXRpb25zO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBlbnN1cmVTdGF0ZUFuZEFjdGlvbnNBcmVJbW11dGFibGUocm9vdDogU3RhdGVPcGVyYXRpb25zPGFueT4pOiBTdGF0ZU9wZXJhdGlvbnM8YW55PiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBnZXRTdGF0ZTogKCkgPT4gcm9vdC5nZXRTdGF0ZSgpLFxyXG4gICAgICBzZXRTdGF0ZTogdmFsdWUgPT4ge1xyXG4gICAgICAgIGNvbnN0IGZyb3plblZhbHVlID0gZGVlcEZyZWV6ZSh2YWx1ZSk7XHJcbiAgICAgICAgcmV0dXJuIHJvb3Quc2V0U3RhdGUoZnJvemVuVmFsdWUpO1xyXG4gICAgICB9LFxyXG4gICAgICBkaXNwYXRjaDogYWN0aW9ucyA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHJvb3QuZGlzcGF0Y2goYWN0aW9ucyk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBzZXRTdGF0ZVRvVGhlQ3VycmVudFdpdGhOZXcocmVzdWx0czogU3RhdGVzQW5kRGVmYXVsdHMpOiB2b2lkIHtcclxuICAgIGNvbnN0IHN0YXRlT3BlcmF0aW9uczogU3RhdGVPcGVyYXRpb25zPGFueT4gPSB0aGlzLmdldFJvb3RTdGF0ZU9wZXJhdGlvbnMoKTtcclxuXHJcbiAgICAvLyBHZXQgb3VyIGN1cnJlbnQgc3RyZWFtXHJcbiAgICBjb25zdCBjdXJyZW50U3RhdGUgPSBzdGF0ZU9wZXJhdGlvbnMuZ2V0U3RhdGUoKTtcclxuICAgIC8vIFNldCB0aGUgc3RhdGUgdG8gdGhlIGN1cnJlbnQgKyBuZXdcclxuICAgIHN0YXRlT3BlcmF0aW9ucy5zZXRTdGF0ZSh7IC4uLmN1cnJlbnRTdGF0ZSwgLi4ucmVzdWx0cy5kZWZhdWx0cyB9KTtcclxuICB9XHJcbn1cclxuIl19
@@ -2,7 +2,7 @@
2
2
  * @fileoverview added by tsickle
3
3
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
- import { ivyEnabledInDevMode } from './ivy-enabled-in-dev-mode';
5
+ import { ivyEnabledInDevMode$ } from './ivy-enabled-in-dev-mode';
6
6
  import { CONFIG_MESSAGES, VALIDATION_CODE } from '../configs/messages.config';
7
7
  /**
8
8
  * All provided or injected tokens must have `\@Injectable` decorator
@@ -16,7 +16,7 @@ export function ensureStateClassIsInjectable(target) {
16
16
  // AOT mode because this property is added before runtime. If an application is running in
17
17
  // JIT mode then this property can be added by the `@Injectable()` decorator. The `@Injectable()`
18
18
  // decorator has to go after the `@State()` decorator, thus we prevent users from unwanted DI errors.
19
- ivyEnabledInDevMode().subscribe((/**
19
+ ivyEnabledInDevMode$.subscribe((/**
20
20
  * @param {?} _ivyEnabledInDevMode
21
21
  * @return {?}
22
22
  */
@@ -31,4 +31,4 @@ export function ensureStateClassIsInjectable(target) {
31
31
  }
32
32
  }));
33
33
  }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5zdXJlLXN0YXRlLWNsYXNzLWlzLWluamVjdGFibGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS8iLCJzb3VyY2VzIjpbInNyYy9pdnkvZW5zdXJlLXN0YXRlLWNsYXNzLWlzLWluamVjdGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7O0FBTzlFLE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxNQUFXO0lBQ3RELCtFQUErRTtJQUMvRSwwRkFBMEY7SUFDMUYsaUdBQWlHO0lBQ2pHLHFHQUFxRztJQUNyRyxtQkFBbUIsRUFBRSxDQUFDLFNBQVM7Ozs7SUFBQyxvQkFBb0IsQ0FBQyxFQUFFO1FBQ3JELElBQUksb0JBQW9CLEVBQUU7O2tCQUNsQixlQUFlLEdBQUcsTUFBTSxDQUFDLEtBQUs7WUFDcEMsSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDcEIsK0RBQStEO2dCQUMvRCxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzthQUN0RjtTQUNGO0lBQ0gsQ0FBQyxFQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXZ5RW5hYmxlZEluRGV2TW9kZSB9IGZyb20gJy4vaXZ5LWVuYWJsZWQtaW4tZGV2LW1vZGUnO1xyXG5pbXBvcnQgeyBDT05GSUdfTUVTU0FHRVMsIFZBTElEQVRJT05fQ09ERSB9IGZyb20gJy4uL2NvbmZpZ3MvbWVzc2FnZXMuY29uZmlnJztcclxuXHJcbi8qKlxyXG4gKiBBbGwgcHJvdmlkZWQgb3IgaW5qZWN0ZWQgdG9rZW5zIG11c3QgaGF2ZSBgQEluamVjdGFibGVgIGRlY29yYXRvclxyXG4gKiAocHJldmlvdXNseSwgaW5qZWN0ZWQgdG9rZW5zIHdpdGhvdXQgYEBJbmplY3RhYmxlYCB3ZXJlIGFsbG93ZWRcclxuICogaWYgYW5vdGhlciBkZWNvcmF0b3Igd2FzIHVzZWQsIGUuZy4gcGlwZXMpLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZVN0YXRlQ2xhc3NJc0luamVjdGFibGUodGFyZ2V0OiBhbnkpOiB2b2lkIHtcclxuICAvLyBgybVwcm92YCBpcyBhIHN0YXRpYyBwcm9wZXJ0eSBhZGRlZCBieSB0aGUgTkdDQyBjb21waWxlci4gSXQgYWx3YXlzIGV4aXN0cyBpblxyXG4gIC8vIEFPVCBtb2RlIGJlY2F1c2UgdGhpcyBwcm9wZXJ0eSBpcyBhZGRlZCBiZWZvcmUgcnVudGltZS4gSWYgYW4gYXBwbGljYXRpb24gaXMgcnVubmluZyBpblxyXG4gIC8vIEpJVCBtb2RlIHRoZW4gdGhpcyBwcm9wZXJ0eSBjYW4gYmUgYWRkZWQgYnkgdGhlIGBASW5qZWN0YWJsZSgpYCBkZWNvcmF0b3IuIFRoZSBgQEluamVjdGFibGUoKWBcclxuICAvLyBkZWNvcmF0b3IgaGFzIHRvIGdvIGFmdGVyIHRoZSBgQFN0YXRlKClgIGRlY29yYXRvciwgdGh1cyB3ZSBwcmV2ZW50IHVzZXJzIGZyb20gdW53YW50ZWQgREkgZXJyb3JzLlxyXG4gIGl2eUVuYWJsZWRJbkRldk1vZGUoKS5zdWJzY3JpYmUoX2l2eUVuYWJsZWRJbkRldk1vZGUgPT4ge1xyXG4gICAgaWYgKF9pdnlFbmFibGVkSW5EZXZNb2RlKSB7XHJcbiAgICAgIGNvbnN0IG5nSW5qZWN0YWJsZURlZiA9IHRhcmdldC7JtXByb3Y7XHJcbiAgICAgIGlmICghbmdJbmplY3RhYmxlRGVmKSB7XHJcbiAgICAgICAgLy8gRG9uJ3Qgd2FybiBpZiBJdnkgaXMgZGlzYWJsZWQgb3IgYMm1cHJvdmAgZXhpc3RzIG9uIHRoZSBjbGFzc1xyXG4gICAgICAgIGNvbnNvbGUud2FybihDT05GSUdfTUVTU0FHRVNbVkFMSURBVElPTl9DT0RFLlVOREVDT1JBVEVEX1NUQVRFX0lOX0lWWV0odGFyZ2V0Lm5hbWUpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcbiJdfQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5zdXJlLXN0YXRlLWNsYXNzLWlzLWluamVjdGFibGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS8iLCJzb3VyY2VzIjpbInNyYy9pdnkvZW5zdXJlLXN0YXRlLWNsYXNzLWlzLWluamVjdGFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7O0FBTzlFLE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxNQUFXO0lBQ3RELCtFQUErRTtJQUMvRSwwRkFBMEY7SUFDMUYsaUdBQWlHO0lBQ2pHLHFHQUFxRztJQUNyRyxvQkFBb0IsQ0FBQyxTQUFTOzs7O0lBQUMsb0JBQW9CLENBQUMsRUFBRTtRQUNwRCxJQUFJLG9CQUFvQixFQUFFOztrQkFDbEIsZUFBZSxHQUFHLE1BQU0sQ0FBQyxLQUFLO1lBQ3BDLElBQUksQ0FBQyxlQUFlLEVBQUU7Z0JBQ3BCLCtEQUErRDtnQkFDL0QsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLHdCQUF3QixDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7YUFDdEY7U0FDRjtJQUNILENBQUMsRUFBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGl2eUVuYWJsZWRJbkRldk1vZGUkIH0gZnJvbSAnLi9pdnktZW5hYmxlZC1pbi1kZXYtbW9kZSc7XHJcbmltcG9ydCB7IENPTkZJR19NRVNTQUdFUywgVkFMSURBVElPTl9DT0RFIH0gZnJvbSAnLi4vY29uZmlncy9tZXNzYWdlcy5jb25maWcnO1xyXG5cclxuLyoqXHJcbiAqIEFsbCBwcm92aWRlZCBvciBpbmplY3RlZCB0b2tlbnMgbXVzdCBoYXZlIGBASW5qZWN0YWJsZWAgZGVjb3JhdG9yXHJcbiAqIChwcmV2aW91c2x5LCBpbmplY3RlZCB0b2tlbnMgd2l0aG91dCBgQEluamVjdGFibGVgIHdlcmUgYWxsb3dlZFxyXG4gKiBpZiBhbm90aGVyIGRlY29yYXRvciB3YXMgdXNlZCwgZS5nLiBwaXBlcykuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlU3RhdGVDbGFzc0lzSW5qZWN0YWJsZSh0YXJnZXQ6IGFueSk6IHZvaWQge1xyXG4gIC8vIGDJtXByb3ZgIGlzIGEgc3RhdGljIHByb3BlcnR5IGFkZGVkIGJ5IHRoZSBOR0NDIGNvbXBpbGVyLiBJdCBhbHdheXMgZXhpc3RzIGluXHJcbiAgLy8gQU9UIG1vZGUgYmVjYXVzZSB0aGlzIHByb3BlcnR5IGlzIGFkZGVkIGJlZm9yZSBydW50aW1lLiBJZiBhbiBhcHBsaWNhdGlvbiBpcyBydW5uaW5nIGluXHJcbiAgLy8gSklUIG1vZGUgdGhlbiB0aGlzIHByb3BlcnR5IGNhbiBiZSBhZGRlZCBieSB0aGUgYEBJbmplY3RhYmxlKClgIGRlY29yYXRvci4gVGhlIGBASW5qZWN0YWJsZSgpYFxyXG4gIC8vIGRlY29yYXRvciBoYXMgdG8gZ28gYWZ0ZXIgdGhlIGBAU3RhdGUoKWAgZGVjb3JhdG9yLCB0aHVzIHdlIHByZXZlbnQgdXNlcnMgZnJvbSB1bndhbnRlZCBESSBlcnJvcnMuXHJcbiAgaXZ5RW5hYmxlZEluRGV2TW9kZSQuc3Vic2NyaWJlKF9pdnlFbmFibGVkSW5EZXZNb2RlID0+IHtcclxuICAgIGlmIChfaXZ5RW5hYmxlZEluRGV2TW9kZSkge1xyXG4gICAgICBjb25zdCBuZ0luamVjdGFibGVEZWYgPSB0YXJnZXQuybVwcm92O1xyXG4gICAgICBpZiAoIW5nSW5qZWN0YWJsZURlZikge1xyXG4gICAgICAgIC8vIERvbid0IHdhcm4gaWYgSXZ5IGlzIGRpc2FibGVkIG9yIGDJtXByb3ZgIGV4aXN0cyBvbiB0aGUgY2xhc3NcclxuICAgICAgICBjb25zb2xlLndhcm4oQ09ORklHX01FU1NBR0VTW1ZBTElEQVRJT05fQ09ERS5VTkRFQ09SQVRFRF9TVEFURV9JTl9JVlldKHRhcmdldC5uYW1lKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxufVxyXG4iXX0=
@@ -4,12 +4,8 @@
4
4
  */
5
5
  import { isDevMode } from '@angular/core';
6
6
  import { ReplaySubject } from 'rxjs';
7
- /**
8
- * Keep it as a single `const` variable since this `ReplaySubject`
9
- * will be private and accessible only within this file.
10
- * @type {?}
11
- */
12
- const _ivyEnabledInDevMode$ = new ReplaySubject(1);
7
+ /** @type {?} */
8
+ export const ivyEnabledInDevMode$ = new ReplaySubject(1);
13
9
  /**
14
10
  * Ivy exposes helper functions to the global `window.ng` object.
15
11
  * Those functions are `getComponent, getContext,
@@ -32,19 +28,13 @@ export function setIvyEnabledInDevMode() {
32
28
  const _viewEngineEnabled = !!ng.probe && !!ng.coreTokens;
33
29
  /** @type {?} */
34
30
  const _ivyEnabledInDevMode = !_viewEngineEnabled && isDevMode();
35
- _ivyEnabledInDevMode$.next(_ivyEnabledInDevMode);
31
+ ivyEnabledInDevMode$.next(_ivyEnabledInDevMode);
36
32
  }
37
33
  catch (_a) {
38
- _ivyEnabledInDevMode$.next(false);
34
+ ivyEnabledInDevMode$.next(false);
39
35
  }
40
36
  finally {
41
- _ivyEnabledInDevMode$.complete();
37
+ ivyEnabledInDevMode$.complete();
42
38
  }
43
39
  }
44
- /**
45
- * @return {?}
46
- */
47
- export function ivyEnabledInDevMode() {
48
- return _ivyEnabledInDevMode$.asObservable();
49
- }
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXZ5LWVuYWJsZWQtaW4tZGV2LW1vZGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS8iLCJzb3VyY2VzIjpbInNyYy9pdnkvaXZ5LWVuYWJsZWQtaW4tZGV2LW1vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O01BTTNDLHFCQUFxQixHQUFHLElBQUksYUFBYSxDQUFVLENBQUMsQ0FBQzs7Ozs7Ozs7Ozs7OztBQWEzRCxNQUFNLFVBQVUsc0JBQXNCO0lBQ3BDLElBQUk7Ozs7Y0FHSSxFQUFFLEdBQUcsQ0FBQyxtQkFBQSxNQUFNLEVBQU8sQ0FBQyxDQUFDLEVBQUU7O2NBQ3ZCLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVTs7Y0FDbEQsb0JBQW9CLEdBQUcsQ0FBQyxrQkFBa0IsSUFBSSxTQUFTLEVBQUU7UUFDL0QscUJBQXFCLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7S0FDbEQ7SUFBQyxXQUFNO1FBQ04scUJBQXFCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ25DO1lBQVM7UUFDUixxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztLQUNsQztBQUNILENBQUM7Ozs7QUFFRCxNQUFNLFVBQVUsbUJBQW1CO0lBQ2pDLE9BQU8scUJBQXFCLENBQUMsWUFBWSxFQUFFLENBQUM7QUFDOUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG4vKipcclxuICogS2VlcCBpdCBhcyBhIHNpbmdsZSBgY29uc3RgIHZhcmlhYmxlIHNpbmNlIHRoaXMgYFJlcGxheVN1YmplY3RgXHJcbiAqIHdpbGwgYmUgcHJpdmF0ZSBhbmQgYWNjZXNzaWJsZSBvbmx5IHdpdGhpbiB0aGlzIGZpbGUuXHJcbiAqL1xyXG5jb25zdCBfaXZ5RW5hYmxlZEluRGV2TW9kZSQgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcclxuXHJcbi8qKlxyXG4gKiBJdnkgZXhwb3NlcyBoZWxwZXIgZnVuY3Rpb25zIHRvIHRoZSBnbG9iYWwgYHdpbmRvdy5uZ2Agb2JqZWN0LlxyXG4gKiBUaG9zZSBmdW5jdGlvbnMgYXJlIGBnZXRDb21wb25lbnQsIGdldENvbnRleHQsXHJcbiAqIGdldExpc3RlbmVycywgZ2V0Vmlld0NvbXBvbmVudCwgZ2V0SG9zdEVsZW1lbnQsIGdldEluamVjdG9yLFxyXG4gKiBnZXRSb290Q29tcG9uZW50cywgZ2V0RGlyZWN0aXZlcywgZ2V0RGVidWdOb2RlYFxyXG4gKiBQcmV2aW91c2x5LCBvbGQgdmlldyBlbmdpbmUgZXhwb3NlZCBgd2luZG93Lm5nLmNvcmVUb2tlbnNgIGFuZFxyXG4gKiBgd2luZG93Lm5nLnByb2JlYCBpZiBhbiBhcHBsaWNhdGlvbiB3YXMgaW4gZGV2ZWxvcG1lbnQvcHJvZHVjdGlvbi5cclxuICogSXZ5IGRvZXNuJ3QgZXhwb3NlIHRoZXNlIGZ1bmN0aW9ucyBpbiBwcm9kdWN0aW9uLiBEZXZlbG9wZXJzIHdpbGwgYmUgYWJsZVxyXG4gKiB0byBzZWUgd2FybmluZ3MgaW4gYm90aCBKSVQvQU9UIG1vZGVzLCBidXQgb25seSBpZiBhbiBhcHBsaWNhdGlvblxyXG4gKiBpcyBpbiBkZXZlbG9wbWVudC5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRJdnlFbmFibGVkSW5EZXZNb2RlKCk6IHZvaWQge1xyXG4gIHRyeSB7XHJcbiAgICAvLyBgdHJ5LWNhdGNoYCB3aWxsIGFsc28gaGFuZGxlIHNlcnZlci1zaWRlIHJlbmRlcmluZywgYXNcclxuICAgIC8vIGB3aW5kb3cgaXMgbm90IGRlZmluZWRgIHdpbGwgbm90IGJlIHRocm93bi5cclxuICAgIGNvbnN0IG5nID0gKHdpbmRvdyBhcyBhbnkpLm5nO1xyXG4gICAgY29uc3QgX3ZpZXdFbmdpbmVFbmFibGVkID0gISFuZy5wcm9iZSAmJiAhIW5nLmNvcmVUb2tlbnM7XHJcbiAgICBjb25zdCBfaXZ5RW5hYmxlZEluRGV2TW9kZSA9ICFfdmlld0VuZ2luZUVuYWJsZWQgJiYgaXNEZXZNb2RlKCk7XHJcbiAgICBfaXZ5RW5hYmxlZEluRGV2TW9kZSQubmV4dChfaXZ5RW5hYmxlZEluRGV2TW9kZSk7XHJcbiAgfSBjYXRjaCB7XHJcbiAgICBfaXZ5RW5hYmxlZEluRGV2TW9kZSQubmV4dChmYWxzZSk7XHJcbiAgfSBmaW5hbGx5IHtcclxuICAgIF9pdnlFbmFibGVkSW5EZXZNb2RlJC5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGl2eUVuYWJsZWRJbkRldk1vZGUoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgcmV0dXJuIF9pdnlFbmFibGVkSW5EZXZNb2RlJC5hc09ic2VydmFibGUoKTtcclxufVxyXG4iXX0=
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXZ5LWVuYWJsZWQtaW4tZGV2LW1vZGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS8iLCJzb3VyY2VzIjpbInNyYy9pdnkvaXZ5LWVuYWJsZWQtaW4tZGV2LW1vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFFckMsTUFBTSxPQUFPLG9CQUFvQixHQUFHLElBQUksYUFBYSxDQUFVLENBQUMsQ0FBQzs7Ozs7Ozs7Ozs7OztBQWFqRSxNQUFNLFVBQVUsc0JBQXNCO0lBQ3BDLElBQUk7Ozs7Y0FHSSxFQUFFLEdBQUcsQ0FBQyxtQkFBQSxNQUFNLEVBQU8sQ0FBQyxDQUFDLEVBQUU7O2NBQ3ZCLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVTs7Y0FDbEQsb0JBQW9CLEdBQUcsQ0FBQyxrQkFBa0IsSUFBSSxTQUFTLEVBQUU7UUFDL0Qsb0JBQW9CLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7S0FDakQ7SUFBQyxXQUFNO1FBQ04sb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ2xDO1lBQVM7UUFDUixvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztLQUNqQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGl2eUVuYWJsZWRJbkRldk1vZGUkID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XHJcblxyXG4vKipcclxuICogSXZ5IGV4cG9zZXMgaGVscGVyIGZ1bmN0aW9ucyB0byB0aGUgZ2xvYmFsIGB3aW5kb3cubmdgIG9iamVjdC5cclxuICogVGhvc2UgZnVuY3Rpb25zIGFyZSBgZ2V0Q29tcG9uZW50LCBnZXRDb250ZXh0LFxyXG4gKiBnZXRMaXN0ZW5lcnMsIGdldFZpZXdDb21wb25lbnQsIGdldEhvc3RFbGVtZW50LCBnZXRJbmplY3RvcixcclxuICogZ2V0Um9vdENvbXBvbmVudHMsIGdldERpcmVjdGl2ZXMsIGdldERlYnVnTm9kZWBcclxuICogUHJldmlvdXNseSwgb2xkIHZpZXcgZW5naW5lIGV4cG9zZWQgYHdpbmRvdy5uZy5jb3JlVG9rZW5zYCBhbmRcclxuICogYHdpbmRvdy5uZy5wcm9iZWAgaWYgYW4gYXBwbGljYXRpb24gd2FzIGluIGRldmVsb3BtZW50L3Byb2R1Y3Rpb24uXHJcbiAqIEl2eSBkb2Vzbid0IGV4cG9zZSB0aGVzZSBmdW5jdGlvbnMgaW4gcHJvZHVjdGlvbi4gRGV2ZWxvcGVycyB3aWxsIGJlIGFibGVcclxuICogdG8gc2VlIHdhcm5pbmdzIGluIGJvdGggSklUL0FPVCBtb2RlcywgYnV0IG9ubHkgaWYgYW4gYXBwbGljYXRpb25cclxuICogaXMgaW4gZGV2ZWxvcG1lbnQuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0SXZ5RW5hYmxlZEluRGV2TW9kZSgpOiB2b2lkIHtcclxuICB0cnkge1xyXG4gICAgLy8gYHRyeS1jYXRjaGAgd2lsbCBhbHNvIGhhbmRsZSBzZXJ2ZXItc2lkZSByZW5kZXJpbmcsIGFzXHJcbiAgICAvLyBgd2luZG93IGlzIG5vdCBkZWZpbmVkYCB3aWxsIG5vdCBiZSB0aHJvd24uXHJcbiAgICBjb25zdCBuZyA9ICh3aW5kb3cgYXMgYW55KS5uZztcclxuICAgIGNvbnN0IF92aWV3RW5naW5lRW5hYmxlZCA9ICEhbmcucHJvYmUgJiYgISFuZy5jb3JlVG9rZW5zO1xyXG4gICAgY29uc3QgX2l2eUVuYWJsZWRJbkRldk1vZGUgPSAhX3ZpZXdFbmdpbmVFbmFibGVkICYmIGlzRGV2TW9kZSgpO1xyXG4gICAgaXZ5RW5hYmxlZEluRGV2TW9kZSQubmV4dChfaXZ5RW5hYmxlZEluRGV2TW9kZSk7XHJcbiAgfSBjYXRjaCB7XHJcbiAgICBpdnlFbmFibGVkSW5EZXZNb2RlJC5uZXh0KGZhbHNlKTtcclxuICB9IGZpbmFsbHkge1xyXG4gICAgaXZ5RW5hYmxlZEluRGV2TW9kZSQuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -82,13 +82,16 @@ export function ofActionErrored(...allowedTypes) {
82
82
  return ofActionOperator(allowedTypes, ["ERRORED" /* Errored */]);
83
83
  }
84
84
  /**
85
- * @template T
86
85
  * @param {?} allowedTypes
87
86
  * @param {?=} statuses
88
87
  * @param {?=} mapOperator
89
88
  * @return {?}
90
89
  */
91
- function ofActionOperator(allowedTypes, statuses, mapOperator = mapAction) {
90
+ function ofActionOperator(allowedTypes, statuses,
91
+ // This actually could've been `OperatorFunction<ActionContext, ActionCompletion | any>`,
92
+ // since it maps either to `ctx.action` OR to `ActionCompletion`. But `ActionCompleteion | any`
93
+ // defaults to `any`, thus there is no sense from union type.
94
+ mapOperator = mapAction) {
92
95
  /** @type {?} */
93
96
  const allowedMap = createAllowedActionTypesMap(allowedTypes);
94
97
  /** @type {?} */
@@ -185,4 +188,4 @@ function createAllowedStatusesMap(statuses) {
185
188
  return filterMap;
186
189
  }), (/** @type {?} */ ({})));
187
190
  }
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2YtYWN0aW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvIiwic291cmNlcyI6WyJzcmMvb3BlcmF0b3JzL29mLWFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFHM0Qsc0NBT0M7OztJQU5DLGtDQUFVOztJQUNWLGtDQUlFOzs7Ozs7Ozs7QUFXSixNQUFNLFVBQVUsUUFBUSxDQUFDLEdBQUcsWUFBbUI7SUFDN0MsT0FBTyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUN4QyxDQUFDOzs7Ozs7OztBQU9ELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxHQUFHLFlBQW1CO0lBQ3ZELE9BQU8sZ0JBQWdCLENBQUMsWUFBWSxFQUFFLCtCQUF5QixDQUFDLENBQUM7QUFDbkUsQ0FBQzs7Ozs7Ozs7QUFPRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsR0FBRyxZQUFtQjtJQUN2RCxPQUFPLGdCQUFnQixDQUFDLFlBQVksRUFBRSwrQkFBeUIsQ0FBQyxDQUFDO0FBQ25FLENBQUM7Ozs7Ozs7O0FBT0QsTUFBTSxVQUFVLGdCQUFnQixDQUFDLEdBQUcsWUFBbUI7SUFDckQsT0FBTyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsMkJBQXVCLENBQUMsQ0FBQztBQUNqRSxDQUFDOzs7Ozs7OztBQU9ELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxHQUFHLFlBQW1COztVQUNoRCxlQUFlLEdBQUc7Ozs7S0FJdkI7SUFDRCxPQUFPLGdCQUFnQixDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsZUFBZSxDQUFDLENBQUM7QUFDMUUsQ0FBQzs7Ozs7Ozs7QUFPRCxNQUFNLFVBQVUsZUFBZSxDQUFDLEdBQUcsWUFBbUI7SUFDcEQsT0FBTyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUseUJBQXNCLENBQUMsQ0FBQztBQUNoRSxDQUFDOzs7Ozs7OztBQUVELFNBQVMsZ0JBQWdCLENBQ3ZCLFlBQW1CLEVBQ25CLFFBQXlCLEVBQ3pCLGNBQXdELFNBQVM7O1VBRTNELFVBQVUsR0FBRywyQkFBMkIsQ0FBQyxZQUFZLENBQUM7O1VBQ3RELGdCQUFnQixHQUFHLFFBQVEsSUFBSSx3QkFBd0IsQ0FBQyxRQUFRLENBQUM7SUFDdkU7Ozs7SUFBTyxVQUFTLENBQTRCO1FBQzFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDWCxZQUFZLENBQUMsVUFBVSxFQUFFLGdCQUFnQixDQUFDLEVBQzFDLFdBQVcsRUFBRSxDQUNkLENBQUM7SUFDSixDQUFDLEVBQUM7QUFDSixDQUFDOzs7Ozs7QUFFRCxTQUFTLFlBQVksQ0FBQyxZQUF1QixFQUFFLGVBQTJCO0lBQ3hFLE9BQU8sTUFBTTs7OztJQUFDLENBQUMsR0FBa0IsRUFBRSxFQUFFOztjQUM3QixVQUFVLEdBQUcsbUJBQUEseUJBQXlCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFDOztjQUNuRCxTQUFTLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQzs7Y0FDcEMsV0FBVyxHQUFHLGVBQWUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtRQUN4RSxPQUFPLFNBQVMsSUFBSSxXQUFXLENBQUM7SUFDbEMsQ0FBQyxFQUFDLENBQUM7QUFDTCxDQUFDOzs7O0FBRUQsU0FBUyxlQUFlO0lBQ3RCLE9BQU8sR0FBRzs7OztJQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBaUIsRUFBRSxFQUFFO1FBQ3RELE9BQU8sbUJBQWtCO1lBQ3ZCLE1BQU07WUFDTixNQUFNLEVBQUU7Z0JBQ04sVUFBVSxFQUFFLGtDQUE0QixNQUFNO2dCQUM5QyxRQUFRLEVBQUUsOEJBQTBCLE1BQU07Z0JBQzFDLEtBQUs7YUFDTjtTQUNGLEVBQUEsQ0FBQztJQUNKLENBQUMsRUFBQyxDQUFDO0FBQ0wsQ0FBQzs7Ozs7QUFFRCxTQUFTLFNBQVM7SUFDaEIsT0FBTyxHQUFHOzs7O0lBQUMsQ0FBQyxHQUFrQixFQUFFLEVBQUUsQ0FBQyxtQkFBRyxHQUFHLENBQUMsTUFBTSxFQUFBLEVBQUMsQ0FBQztBQUNwRCxDQUFDOzs7O0FBRUQsd0JBRUM7Ozs7O0FBRUQsU0FBUywyQkFBMkIsQ0FBQyxLQUFZO0lBQy9DLE9BQU8sS0FBSyxDQUFDLE1BQU07Ozs7O0lBQ2pCLENBQUMsU0FBb0IsRUFBRSxLQUFVLEVBQUUsRUFBRTtRQUNuQyxTQUFTLENBQUMsbUJBQUEseUJBQXlCLENBQUMsS0FBSyxDQUFDLEVBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNwRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDLEdBQ0QsbUJBQVcsRUFBRSxFQUFBLENBQ2QsQ0FBQztBQUNKLENBQUM7Ozs7O0FBRUQsU0FBUyx3QkFBd0IsQ0FBQyxRQUF3QjtJQUN4RCxPQUFPLFFBQVEsQ0FBQyxNQUFNOzs7OztJQUNwQixDQUFDLFNBQW9CLEVBQUUsTUFBb0IsRUFBRSxFQUFFO1FBQzdDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDekIsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQyxHQUNELG1CQUFXLEVBQUUsRUFBQSxDQUNkLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3BlcmF0b3JGdW5jdGlvbiwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgZ2V0QWN0aW9uVHlwZUZyb21JbnN0YW5jZSB9IGZyb20gJy4uL3V0aWxzL3V0aWxzJztcclxuaW1wb3J0IHsgQWN0aW9uQ29udGV4dCwgQWN0aW9uU3RhdHVzIH0gZnJvbSAnLi4vYWN0aW9ucy1zdHJlYW0nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25Db21wbGV0aW9uPFQgPSBhbnksIEUgPSBFcnJvcj4ge1xyXG4gIGFjdGlvbjogVDtcclxuICByZXN1bHQ6IHtcclxuICAgIHN1Y2Nlc3NmdWw6IGJvb2xlYW47XHJcbiAgICBjYW5jZWxlZDogYm9vbGVhbjtcclxuICAgIGVycm9yPzogRTtcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gb2ZBY3Rpb248VD4oYWxsb3dlZFR5cGU6IGFueSk6IE9wZXJhdG9yRnVuY3Rpb248QWN0aW9uQ29udGV4dCwgVD47XHJcbmV4cG9ydCBmdW5jdGlvbiBvZkFjdGlvbjxUPiguLi5hbGxvd2VkVHlwZXM6IGFueVtdKTogT3BlcmF0b3JGdW5jdGlvbjxBY3Rpb25Db250ZXh0LCBUPjtcclxuXHJcbi8qKlxyXG4gKiBSeEpTIG9wZXJhdG9yIGZvciBzZWxlY3Rpbmcgb3V0IHNwZWNpZmljIGFjdGlvbnMuXHJcbiAqXHJcbiAqIFRoaXMgd2lsbCBncmFiIGFjdGlvbnMgdGhhdCBoYXZlIGp1c3QgYmVlbiBkaXNwYXRjaGVkIGFzIHdlbGwgYXMgYWN0aW9ucyB0aGF0IGhhdmUgY29tcGxldGVkXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gb2ZBY3Rpb24oLi4uYWxsb3dlZFR5cGVzOiBhbnlbXSkge1xyXG4gIHJldHVybiBvZkFjdGlvbk9wZXJhdG9yKGFsbG93ZWRUeXBlcyk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSeEpTIG9wZXJhdG9yIGZvciBzZWxlY3Rpbmcgb3V0IHNwZWNpZmljIGFjdGlvbnMuXHJcbiAqXHJcbiAqIFRoaXMgd2lsbCBPTkxZIGdyYWIgYWN0aW9ucyB0aGF0IGhhdmUganVzdCBiZWVuIGRpc3BhdGNoZWRcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBvZkFjdGlvbkRpc3BhdGNoZWQoLi4uYWxsb3dlZFR5cGVzOiBhbnlbXSkge1xyXG4gIHJldHVybiBvZkFjdGlvbk9wZXJhdG9yKGFsbG93ZWRUeXBlcywgW0FjdGlvblN0YXR1cy5EaXNwYXRjaGVkXSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSeEpTIG9wZXJhdG9yIGZvciBzZWxlY3Rpbmcgb3V0IHNwZWNpZmljIGFjdGlvbnMuXHJcbiAqXHJcbiAqIFRoaXMgd2lsbCBPTkxZIGdyYWIgYWN0aW9ucyB0aGF0IGhhdmUganVzdCBiZWVuIHN1Y2Nlc3NmdWxseSBjb21wbGV0ZWRcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBvZkFjdGlvblN1Y2Nlc3NmdWwoLi4uYWxsb3dlZFR5cGVzOiBhbnlbXSkge1xyXG4gIHJldHVybiBvZkFjdGlvbk9wZXJhdG9yKGFsbG93ZWRUeXBlcywgW0FjdGlvblN0YXR1cy5TdWNjZXNzZnVsXSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSeEpTIG9wZXJhdG9yIGZvciBzZWxlY3Rpbmcgb3V0IHNwZWNpZmljIGFjdGlvbnMuXHJcbiAqXHJcbiAqIFRoaXMgd2lsbCBPTkxZIGdyYWIgYWN0aW9ucyB0aGF0IGhhdmUganVzdCBiZWVuIGNhbmNlbGVkXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gb2ZBY3Rpb25DYW5jZWxlZCguLi5hbGxvd2VkVHlwZXM6IGFueVtdKSB7XHJcbiAgcmV0dXJuIG9mQWN0aW9uT3BlcmF0b3IoYWxsb3dlZFR5cGVzLCBbQWN0aW9uU3RhdHVzLkNhbmNlbGVkXSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSeEpTIG9wZXJhdG9yIGZvciBzZWxlY3Rpbmcgb3V0IHNwZWNpZmljIGFjdGlvbnMuXHJcbiAqXHJcbiAqIFRoaXMgd2lsbCBPTkxZIGdyYWIgYWN0aW9ucyB0aGF0IGhhdmUganVzdCBiZWVuIGNvbXBsZXRlZFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG9mQWN0aW9uQ29tcGxldGVkKC4uLmFsbG93ZWRUeXBlczogYW55W10pIHtcclxuICBjb25zdCBhbGxvd2VkU3RhdHVzZXMgPSBbXHJcbiAgICBBY3Rpb25TdGF0dXMuU3VjY2Vzc2Z1bCxcclxuICAgIEFjdGlvblN0YXR1cy5DYW5jZWxlZCxcclxuICAgIEFjdGlvblN0YXR1cy5FcnJvcmVkXHJcbiAgXTtcclxuICByZXR1cm4gb2ZBY3Rpb25PcGVyYXRvcihhbGxvd2VkVHlwZXMsIGFsbG93ZWRTdGF0dXNlcywgbWFwQWN0aW9uUmVzdWx0KTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJ4SlMgb3BlcmF0b3IgZm9yIHNlbGVjdGluZyBvdXQgc3BlY2lmaWMgYWN0aW9ucy5cclxuICpcclxuICogVGhpcyB3aWxsIE9OTFkgZ3JhYiBhY3Rpb25zIHRoYXQgaGF2ZSBqdXN0IHRocm93biBhbiBlcnJvclxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG9mQWN0aW9uRXJyb3JlZCguLi5hbGxvd2VkVHlwZXM6IGFueVtdKSB7XHJcbiAgcmV0dXJuIG9mQWN0aW9uT3BlcmF0b3IoYWxsb3dlZFR5cGVzLCBbQWN0aW9uU3RhdHVzLkVycm9yZWRdKTtcclxufVxyXG5cclxuZnVuY3Rpb24gb2ZBY3Rpb25PcGVyYXRvcjxUID0gYW55PihcclxuICBhbGxvd2VkVHlwZXM6IGFueVtdLFxyXG4gIHN0YXR1c2VzPzogQWN0aW9uU3RhdHVzW10sXHJcbiAgbWFwT3BlcmF0b3I6ICgpID0+IE9wZXJhdG9yRnVuY3Rpb248QWN0aW9uQ29udGV4dCwgVD4gPSBtYXBBY3Rpb25cclxuKSB7XHJcbiAgY29uc3QgYWxsb3dlZE1hcCA9IGNyZWF0ZUFsbG93ZWRBY3Rpb25UeXBlc01hcChhbGxvd2VkVHlwZXMpO1xyXG4gIGNvbnN0IGFsbG93ZWRTdGF0dXNNYXAgPSBzdGF0dXNlcyAmJiBjcmVhdGVBbGxvd2VkU3RhdHVzZXNNYXAoc3RhdHVzZXMpO1xyXG4gIHJldHVybiBmdW5jdGlvbihvOiBPYnNlcnZhYmxlPEFjdGlvbkNvbnRleHQ+KSB7XHJcbiAgICByZXR1cm4gby5waXBlKFxyXG4gICAgICBmaWx0ZXJTdGF0dXMoYWxsb3dlZE1hcCwgYWxsb3dlZFN0YXR1c01hcCksXHJcbiAgICAgIG1hcE9wZXJhdG9yKClcclxuICAgICk7XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZmlsdGVyU3RhdHVzKGFsbG93ZWRUeXBlczogRmlsdGVyTWFwLCBhbGxvd2VkU3RhdHVzZXM/OiBGaWx0ZXJNYXApIHtcclxuICByZXR1cm4gZmlsdGVyKChjdHg6IEFjdGlvbkNvbnRleHQpID0+IHtcclxuICAgIGNvbnN0IGFjdGlvblR5cGUgPSBnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlKGN0eC5hY3Rpb24pITtcclxuICAgIGNvbnN0IHR5cGVNYXRjaCA9IGFsbG93ZWRUeXBlc1thY3Rpb25UeXBlXTtcclxuICAgIGNvbnN0IHN0YXR1c01hdGNoID0gYWxsb3dlZFN0YXR1c2VzID8gYWxsb3dlZFN0YXR1c2VzW2N0eC5zdGF0dXNdIDogdHJ1ZTtcclxuICAgIHJldHVybiB0eXBlTWF0Y2ggJiYgc3RhdHVzTWF0Y2g7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG1hcEFjdGlvblJlc3VsdCgpOiBPcGVyYXRvckZ1bmN0aW9uPEFjdGlvbkNvbnRleHQsIEFjdGlvbkNvbXBsZXRpb24+IHtcclxuICByZXR1cm4gbWFwKCh7IGFjdGlvbiwgc3RhdHVzLCBlcnJvciB9OiBBY3Rpb25Db250ZXh0KSA9PiB7XHJcbiAgICByZXR1cm4gPEFjdGlvbkNvbXBsZXRpb24+e1xyXG4gICAgICBhY3Rpb24sXHJcbiAgICAgIHJlc3VsdDoge1xyXG4gICAgICAgIHN1Y2Nlc3NmdWw6IEFjdGlvblN0YXR1cy5TdWNjZXNzZnVsID09PSBzdGF0dXMsXHJcbiAgICAgICAgY2FuY2VsZWQ6IEFjdGlvblN0YXR1cy5DYW5jZWxlZCA9PT0gc3RhdHVzLFxyXG4gICAgICAgIGVycm9yXHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG1hcEFjdGlvbjxUID0gYW55PigpOiBPcGVyYXRvckZ1bmN0aW9uPEFjdGlvbkNvbnRleHQsIFQ+IHtcclxuICByZXR1cm4gbWFwKChjdHg6IEFjdGlvbkNvbnRleHQpID0+IDxUPmN0eC5hY3Rpb24pO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgRmlsdGVyTWFwIHtcclxuICBba2V5OiBzdHJpbmddOiBib29sZWFuO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjcmVhdGVBbGxvd2VkQWN0aW9uVHlwZXNNYXAodHlwZXM6IGFueVtdKTogRmlsdGVyTWFwIHtcclxuICByZXR1cm4gdHlwZXMucmVkdWNlKFxyXG4gICAgKGZpbHRlck1hcDogRmlsdGVyTWFwLCBrbGFzczogYW55KSA9PiB7XHJcbiAgICAgIGZpbHRlck1hcFtnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlKGtsYXNzKSFdID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIGZpbHRlck1hcDtcclxuICAgIH0sXHJcbiAgICA8RmlsdGVyTWFwPnt9XHJcbiAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlQWxsb3dlZFN0YXR1c2VzTWFwKHN0YXR1c2VzOiBBY3Rpb25TdGF0dXNbXSk6IEZpbHRlck1hcCB7XHJcbiAgcmV0dXJuIHN0YXR1c2VzLnJlZHVjZShcclxuICAgIChmaWx0ZXJNYXA6IEZpbHRlck1hcCwgc3RhdHVzOiBBY3Rpb25TdGF0dXMpID0+IHtcclxuICAgICAgZmlsdGVyTWFwW3N0YXR1c10gPSB0cnVlO1xyXG4gICAgICByZXR1cm4gZmlsdGVyTWFwO1xyXG4gICAgfSxcclxuICAgIDxGaWx0ZXJNYXA+e31cclxuICApO1xyXG59XHJcbiJdfQ==
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2YtYWN0aW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvIiwic291cmNlcyI6WyJzcmMvb3BlcmF0b3JzL29mLWFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc3QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFHM0Qsc0NBT0M7OztJQU5DLGtDQUFVOztJQUNWLGtDQUlFOzs7Ozs7Ozs7QUFhSixNQUFNLFVBQVUsUUFBUSxDQUFDLEdBQUcsWUFBMEI7SUFDcEQsT0FBTyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUN4QyxDQUFDOzs7Ozs7OztBQU9ELE1BQU0sVUFBVSxrQkFBa0IsQ0FDaEMsR0FBRyxZQUEwQjtJQUU3QixPQUFPLGdCQUFnQixDQUFDLFlBQVksRUFBRSwrQkFBeUIsQ0FBQyxDQUFDO0FBQ25FLENBQUM7Ozs7Ozs7O0FBT0QsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxHQUFHLFlBQTBCO0lBRTdCLE9BQU8sZ0JBQWdCLENBQUMsWUFBWSxFQUFFLCtCQUF5QixDQUFDLENBQUM7QUFDbkUsQ0FBQzs7Ozs7Ozs7QUFPRCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLEdBQUcsWUFBMEI7SUFFN0IsT0FBTyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsMkJBQXVCLENBQUMsQ0FBQztBQUNqRSxDQUFDOzs7Ozs7OztBQU9ELE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsR0FBRyxZQUEwQjs7VUFFdkIsZUFBZSxHQUFHOzs7O0tBSXZCO0lBQ0QsT0FBTyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0FBQzFFLENBQUM7Ozs7Ozs7O0FBT0QsTUFBTSxVQUFVLGVBQWUsQ0FDN0IsR0FBRyxZQUEwQjtJQUU3QixPQUFPLGdCQUFnQixDQUFDLFlBQVksRUFBRSx5QkFBc0IsQ0FBQyxDQUFDO0FBQ2hFLENBQUM7Ozs7Ozs7QUFFRCxTQUFTLGdCQUFnQixDQUN2QixZQUEwQixFQUMxQixRQUF5QjtBQUN6Qix5RkFBeUY7QUFDekYsK0ZBQStGO0FBQy9GLDZEQUE2RDtBQUM3RCxjQUEwRCxTQUFTOztVQUU3RCxVQUFVLEdBQUcsMkJBQTJCLENBQUMsWUFBWSxDQUFDOztVQUN0RCxnQkFBZ0IsR0FBRyxRQUFRLElBQUksd0JBQXdCLENBQUMsUUFBUSxDQUFDO0lBQ3ZFOzs7O0lBQU8sVUFBUyxDQUE0QjtRQUMxQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQyxFQUFDO0FBQ0osQ0FBQzs7Ozs7O0FBRUQsU0FBUyxZQUFZLENBQUMsWUFBdUIsRUFBRSxlQUEyQjtJQUN4RSxPQUFPLE1BQU07Ozs7SUFBQyxDQUFDLEdBQWtCLEVBQUUsRUFBRTs7Y0FDN0IsVUFBVSxHQUFHLG1CQUFBLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBQzs7Y0FDbkQsU0FBUyxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUM7O2NBQ3BDLFdBQVcsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7UUFDeEUsT0FBTyxTQUFTLElBQUksV0FBVyxDQUFDO0lBQ2xDLENBQUMsRUFBQyxDQUFDO0FBQ0wsQ0FBQzs7OztBQUVELFNBQVMsZUFBZTtJQUN0QixPQUFPLEdBQUc7Ozs7SUFBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWlCLEVBQUUsRUFBRTtRQUN0RCxPQUFPLG1CQUFrQjtZQUN2QixNQUFNO1lBQ04sTUFBTSxFQUFFO2dCQUNOLFVBQVUsRUFBRSxrQ0FBNEIsTUFBTTtnQkFDOUMsUUFBUSxFQUFFLDhCQUEwQixNQUFNO2dCQUMxQyxLQUFLO2FBQ047U0FDRixFQUFBLENBQUM7SUFDSixDQUFDLEVBQUMsQ0FBQztBQUNMLENBQUM7Ozs7O0FBRUQsU0FBUyxTQUFTO0lBQ2hCLE9BQU8sR0FBRzs7OztJQUFDLENBQUMsR0FBa0IsRUFBRSxFQUFFLENBQUMsbUJBQUcsR0FBRyxDQUFDLE1BQU0sRUFBQSxFQUFDLENBQUM7QUFDcEQsQ0FBQzs7OztBQUVELHdCQUVDOzs7OztBQUVELFNBQVMsMkJBQTJCLENBQUMsS0FBbUI7SUFDdEQsT0FBTyxLQUFLLENBQUMsTUFBTTs7Ozs7SUFBQyxDQUFDLFNBQW9CLEVBQUUsS0FBVSxFQUFFLEVBQUU7UUFDdkQsU0FBUyxDQUFDLG1CQUFBLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxFQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDcEQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQyxHQUFFLG1CQUFXLEVBQUUsRUFBQSxDQUFDLENBQUM7QUFDcEIsQ0FBQzs7Ozs7QUFFRCxTQUFTLHdCQUF3QixDQUFDLFFBQXdCO0lBQ3hELE9BQU8sUUFBUSxDQUFDLE1BQU07Ozs7O0lBQUMsQ0FBQyxTQUFvQixFQUFFLE1BQW9CLEVBQUUsRUFBRTtRQUNwRSxTQUFTLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUMsR0FBRSxtQkFBVyxFQUFFLEVBQUEsQ0FBQyxDQUFDO0FBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcGVyYXRvckZ1bmN0aW9uLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQWN0aW9uVHlwZSB9IGZyb20gJy4uL2FjdGlvbnMvc3ltYm9scyc7XHJcbmltcG9ydCB7IGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UgfSBmcm9tICcuLi91dGlscy91dGlscyc7XHJcbmltcG9ydCB7IEFjdGlvbkNvbnRleHQsIEFjdGlvblN0YXR1cyB9IGZyb20gJy4uL2FjdGlvbnMtc3RyZWFtJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uQ29tcGxldGlvbjxUID0gYW55LCBFID0gRXJyb3I+IHtcclxuICBhY3Rpb246IFQ7XHJcbiAgcmVzdWx0OiB7XHJcbiAgICBzdWNjZXNzZnVsOiBib29sZWFuO1xyXG4gICAgY2FuY2VsZWQ6IGJvb2xlYW47XHJcbiAgICBlcnJvcj86IEU7XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG9mQWN0aW9uPFQgPSBhbnk+KGFsbG93ZWRUeXBlOiBBY3Rpb25UeXBlKTogT3BlcmF0b3JGdW5jdGlvbjxBY3Rpb25Db250ZXh0LCBUPjtcclxuZXhwb3J0IGZ1bmN0aW9uIG9mQWN0aW9uPFQgPSBhbnk+KFxyXG4gIC4uLmFsbG93ZWRUeXBlczogQWN0aW9uVHlwZVtdXHJcbik6IE9wZXJhdG9yRnVuY3Rpb248QWN0aW9uQ29udGV4dCwgVD47XHJcblxyXG4vKipcclxuICogUnhKUyBvcGVyYXRvciBmb3Igc2VsZWN0aW5nIG91dCBzcGVjaWZpYyBhY3Rpb25zLlxyXG4gKlxyXG4gKiBUaGlzIHdpbGwgZ3JhYiBhY3Rpb25zIHRoYXQgaGF2ZSBqdXN0IGJlZW4gZGlzcGF0Y2hlZCBhcyB3ZWxsIGFzIGFjdGlvbnMgdGhhdCBoYXZlIGNvbXBsZXRlZFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG9mQWN0aW9uKC4uLmFsbG93ZWRUeXBlczogQWN0aW9uVHlwZVtdKTogT3BlcmF0b3JGdW5jdGlvbjxBY3Rpb25Db250ZXh0LCBhbnk+IHtcclxuICByZXR1cm4gb2ZBY3Rpb25PcGVyYXRvcihhbGxvd2VkVHlwZXMpO1xyXG59XHJcblxyXG4vKipcclxuICogUnhKUyBvcGVyYXRvciBmb3Igc2VsZWN0aW5nIG91dCBzcGVjaWZpYyBhY3Rpb25zLlxyXG4gKlxyXG4gKiBUaGlzIHdpbGwgT05MWSBncmFiIGFjdGlvbnMgdGhhdCBoYXZlIGp1c3QgYmVlbiBkaXNwYXRjaGVkXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gb2ZBY3Rpb25EaXNwYXRjaGVkKFxyXG4gIC4uLmFsbG93ZWRUeXBlczogQWN0aW9uVHlwZVtdXHJcbik6IE9wZXJhdG9yRnVuY3Rpb248QWN0aW9uQ29udGV4dCwgYW55PiB7XHJcbiAgcmV0dXJuIG9mQWN0aW9uT3BlcmF0b3IoYWxsb3dlZFR5cGVzLCBbQWN0aW9uU3RhdHVzLkRpc3BhdGNoZWRdKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJ4SlMgb3BlcmF0b3IgZm9yIHNlbGVjdGluZyBvdXQgc3BlY2lmaWMgYWN0aW9ucy5cclxuICpcclxuICogVGhpcyB3aWxsIE9OTFkgZ3JhYiBhY3Rpb25zIHRoYXQgaGF2ZSBqdXN0IGJlZW4gc3VjY2Vzc2Z1bGx5IGNvbXBsZXRlZFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG9mQWN0aW9uU3VjY2Vzc2Z1bChcclxuICAuLi5hbGxvd2VkVHlwZXM6IEFjdGlvblR5cGVbXVxyXG4pOiBPcGVyYXRvckZ1bmN0aW9uPEFjdGlvbkNvbnRleHQsIGFueT4ge1xyXG4gIHJldHVybiBvZkFjdGlvbk9wZXJhdG9yKGFsbG93ZWRUeXBlcywgW0FjdGlvblN0YXR1cy5TdWNjZXNzZnVsXSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSeEpTIG9wZXJhdG9yIGZvciBzZWxlY3Rpbmcgb3V0IHNwZWNpZmljIGFjdGlvbnMuXHJcbiAqXHJcbiAqIFRoaXMgd2lsbCBPTkxZIGdyYWIgYWN0aW9ucyB0aGF0IGhhdmUganVzdCBiZWVuIGNhbmNlbGVkXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gb2ZBY3Rpb25DYW5jZWxlZChcclxuICAuLi5hbGxvd2VkVHlwZXM6IEFjdGlvblR5cGVbXVxyXG4pOiBPcGVyYXRvckZ1bmN0aW9uPEFjdGlvbkNvbnRleHQsIGFueT4ge1xyXG4gIHJldHVybiBvZkFjdGlvbk9wZXJhdG9yKGFsbG93ZWRUeXBlcywgW0FjdGlvblN0YXR1cy5DYW5jZWxlZF0pO1xyXG59XHJcblxyXG4vKipcclxuICogUnhKUyBvcGVyYXRvciBmb3Igc2VsZWN0aW5nIG91dCBzcGVjaWZpYyBhY3Rpb25zLlxyXG4gKlxyXG4gKiBUaGlzIHdpbGwgT05MWSBncmFiIGFjdGlvbnMgdGhhdCBoYXZlIGp1c3QgYmVlbiBjb21wbGV0ZWRcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBvZkFjdGlvbkNvbXBsZXRlZChcclxuICAuLi5hbGxvd2VkVHlwZXM6IEFjdGlvblR5cGVbXVxyXG4pOiBPcGVyYXRvckZ1bmN0aW9uPEFjdGlvbkNvbnRleHQsIEFjdGlvbkNvbXBsZXRpb24+IHtcclxuICBjb25zdCBhbGxvd2VkU3RhdHVzZXMgPSBbXHJcbiAgICBBY3Rpb25TdGF0dXMuU3VjY2Vzc2Z1bCxcclxuICAgIEFjdGlvblN0YXR1cy5DYW5jZWxlZCxcclxuICAgIEFjdGlvblN0YXR1cy5FcnJvcmVkXHJcbiAgXTtcclxuICByZXR1cm4gb2ZBY3Rpb25PcGVyYXRvcihhbGxvd2VkVHlwZXMsIGFsbG93ZWRTdGF0dXNlcywgbWFwQWN0aW9uUmVzdWx0KTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJ4SlMgb3BlcmF0b3IgZm9yIHNlbGVjdGluZyBvdXQgc3BlY2lmaWMgYWN0aW9ucy5cclxuICpcclxuICogVGhpcyB3aWxsIE9OTFkgZ3JhYiBhY3Rpb25zIHRoYXQgaGF2ZSBqdXN0IHRocm93biBhbiBlcnJvclxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG9mQWN0aW9uRXJyb3JlZChcclxuICAuLi5hbGxvd2VkVHlwZXM6IEFjdGlvblR5cGVbXVxyXG4pOiBPcGVyYXRvckZ1bmN0aW9uPEFjdGlvbkNvbnRleHQsIGFueT4ge1xyXG4gIHJldHVybiBvZkFjdGlvbk9wZXJhdG9yKGFsbG93ZWRUeXBlcywgW0FjdGlvblN0YXR1cy5FcnJvcmVkXSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG9mQWN0aW9uT3BlcmF0b3IoXHJcbiAgYWxsb3dlZFR5cGVzOiBBY3Rpb25UeXBlW10sXHJcbiAgc3RhdHVzZXM/OiBBY3Rpb25TdGF0dXNbXSxcclxuICAvLyBUaGlzIGFjdHVhbGx5IGNvdWxkJ3ZlIGJlZW4gYE9wZXJhdG9yRnVuY3Rpb248QWN0aW9uQ29udGV4dCwgQWN0aW9uQ29tcGxldGlvbiB8IGFueT5gLFxyXG4gIC8vIHNpbmNlIGl0IG1hcHMgZWl0aGVyIHRvIGBjdHguYWN0aW9uYCBPUiB0byBgQWN0aW9uQ29tcGxldGlvbmAuIEJ1dCBgQWN0aW9uQ29tcGxldGVpb24gfCBhbnlgXHJcbiAgLy8gZGVmYXVsdHMgdG8gYGFueWAsIHRodXMgdGhlcmUgaXMgbm8gc2Vuc2UgZnJvbSB1bmlvbiB0eXBlLlxyXG4gIG1hcE9wZXJhdG9yOiAoKSA9PiBPcGVyYXRvckZ1bmN0aW9uPEFjdGlvbkNvbnRleHQsIGFueT4gPSBtYXBBY3Rpb25cclxuKTogT3BlcmF0b3JGdW5jdGlvbjxBY3Rpb25Db250ZXh0LCBhbnk+IHtcclxuICBjb25zdCBhbGxvd2VkTWFwID0gY3JlYXRlQWxsb3dlZEFjdGlvblR5cGVzTWFwKGFsbG93ZWRUeXBlcyk7XHJcbiAgY29uc3QgYWxsb3dlZFN0YXR1c01hcCA9IHN0YXR1c2VzICYmIGNyZWF0ZUFsbG93ZWRTdGF0dXNlc01hcChzdGF0dXNlcyk7XHJcbiAgcmV0dXJuIGZ1bmN0aW9uKG86IE9ic2VydmFibGU8QWN0aW9uQ29udGV4dD4pIHtcclxuICAgIHJldHVybiBvLnBpcGUoZmlsdGVyU3RhdHVzKGFsbG93ZWRNYXAsIGFsbG93ZWRTdGF0dXNNYXApLCBtYXBPcGVyYXRvcigpKTtcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBmaWx0ZXJTdGF0dXMoYWxsb3dlZFR5cGVzOiBGaWx0ZXJNYXAsIGFsbG93ZWRTdGF0dXNlcz86IEZpbHRlck1hcCkge1xyXG4gIHJldHVybiBmaWx0ZXIoKGN0eDogQWN0aW9uQ29udGV4dCkgPT4ge1xyXG4gICAgY29uc3QgYWN0aW9uVHlwZSA9IGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UoY3R4LmFjdGlvbikhO1xyXG4gICAgY29uc3QgdHlwZU1hdGNoID0gYWxsb3dlZFR5cGVzW2FjdGlvblR5cGVdO1xyXG4gICAgY29uc3Qgc3RhdHVzTWF0Y2ggPSBhbGxvd2VkU3RhdHVzZXMgPyBhbGxvd2VkU3RhdHVzZXNbY3R4LnN0YXR1c10gOiB0cnVlO1xyXG4gICAgcmV0dXJuIHR5cGVNYXRjaCAmJiBzdGF0dXNNYXRjaDtcclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gbWFwQWN0aW9uUmVzdWx0KCk6IE9wZXJhdG9yRnVuY3Rpb248QWN0aW9uQ29udGV4dCwgQWN0aW9uQ29tcGxldGlvbj4ge1xyXG4gIHJldHVybiBtYXAoKHsgYWN0aW9uLCBzdGF0dXMsIGVycm9yIH06IEFjdGlvbkNvbnRleHQpID0+IHtcclxuICAgIHJldHVybiA8QWN0aW9uQ29tcGxldGlvbj57XHJcbiAgICAgIGFjdGlvbixcclxuICAgICAgcmVzdWx0OiB7XHJcbiAgICAgICAgc3VjY2Vzc2Z1bDogQWN0aW9uU3RhdHVzLlN1Y2Nlc3NmdWwgPT09IHN0YXR1cyxcclxuICAgICAgICBjYW5jZWxlZDogQWN0aW9uU3RhdHVzLkNhbmNlbGVkID09PSBzdGF0dXMsXHJcbiAgICAgICAgZXJyb3JcclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gbWFwQWN0aW9uPFQgPSBhbnk+KCk6IE9wZXJhdG9yRnVuY3Rpb248QWN0aW9uQ29udGV4dCwgVD4ge1xyXG4gIHJldHVybiBtYXAoKGN0eDogQWN0aW9uQ29udGV4dCkgPT4gPFQ+Y3R4LmFjdGlvbik7XHJcbn1cclxuXHJcbmludGVyZmFjZSBGaWx0ZXJNYXAge1xyXG4gIFtrZXk6IHN0cmluZ106IGJvb2xlYW47XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNyZWF0ZUFsbG93ZWRBY3Rpb25UeXBlc01hcCh0eXBlczogQWN0aW9uVHlwZVtdKTogRmlsdGVyTWFwIHtcclxuICByZXR1cm4gdHlwZXMucmVkdWNlKChmaWx0ZXJNYXA6IEZpbHRlck1hcCwga2xhc3M6IGFueSkgPT4ge1xyXG4gICAgZmlsdGVyTWFwW2dldEFjdGlvblR5cGVGcm9tSW5zdGFuY2Uoa2xhc3MpIV0gPSB0cnVlO1xyXG4gICAgcmV0dXJuIGZpbHRlck1hcDtcclxuICB9LCA8RmlsdGVyTWFwPnt9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlQWxsb3dlZFN0YXR1c2VzTWFwKHN0YXR1c2VzOiBBY3Rpb25TdGF0dXNbXSk6IEZpbHRlck1hcCB7XHJcbiAgcmV0dXJuIHN0YXR1c2VzLnJlZHVjZSgoZmlsdGVyTWFwOiBGaWx0ZXJNYXAsIHN0YXR1czogQWN0aW9uU3RhdHVzKSA9PiB7XHJcbiAgICBmaWx0ZXJNYXBbc3RhdHVzXSA9IHRydWU7XHJcbiAgICByZXR1cm4gZmlsdGVyTWFwO1xyXG4gIH0sIDxGaWx0ZXJNYXA+e30pO1xyXG59XHJcbiJdfQ==