@one-paragon/angular-utilities 1.2.15-beta.6 → 1.2.16

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.
@@ -48,24 +48,10 @@ export class HttpRequestStateStore extends ComponentStore {
48
48
  }
49
49
  return this.requestEffect(value);
50
50
  };
51
- $selectHttpState = this.selectSignal(a => a.response);
52
- selectHttpState$ = this.select(a => a.response);
53
- $selectStatus = computed(() => this.$selectHttpState()?.status);
54
- selectStatus$ = toObservable(this.$selectStatus).pipe(notNull());
55
- selectError$ = this.selectHttpState$.pipe(filter(isErrorState), map(state => state.error));
56
- $selectError = computed(() => {
57
- const state = this.$selectHttpState();
58
- if (isErrorState(state))
59
- return state.error;
60
- });
61
- selectResponse$ = this.selectHttpState$.pipe(filter(isSuccessState), map(state => state.body));
62
- $selectResponse = computed(() => {
63
- const state = this.$selectHttpState();
64
- if (isSuccessState(state)) {
65
- return state.body;
66
- }
67
- return undefined;
68
- });
51
+ selectHttpState$ = this.state$.pipe(map(a => a.response));
52
+ selectStatus$ = this.selectHttpState$.pipe(map(a => a.status));
53
+ selectError$ = this.state$.pipe(map(r => r.response), filter(isErrorState), map(state => state.error));
54
+ selectResponse$ = this.state$.pipe(map(r => r.response), filter(isSuccessState), map(state => state.body));
69
55
  selectSuccessOrError$ = this.state$.pipe(map(r => r.response), filter(isSuccessOrErrorState), map(() => null));
70
56
  errorHandled = false;
71
57
  onError(cb) {
@@ -132,4 +118,4 @@ export function wrapInArr(sigOrObs) {
132
118
  computed(() => [sigOrObs()])
133
119
  : sigOrObs.pipe(map(a => [a]));
134
120
  }
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cFJlcXVlc3RTdGF0ZVN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL2h0dHAtcmVxdWVzdC1zdGF0ZS9IdHRwUmVxdWVzdFN0YXRlU3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBc0IsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQW9FLE1BQU0sU0FBUyxDQUFDO0FBQ3ZKLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0SSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBWSxRQUFRLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBUWxDLE1BQU0sT0FBTyxxQkFBcUYsU0FBUSxjQUEwQztJQUN4SSxPQUFPLENBQXVCO0lBQzlCLE9BQU8sQ0FBZTtJQUN0QixHQUFHLENBQWdDO0lBQ25DLFFBQVEsQ0FBWTtJQUM1QixZQUFZLEdBQWtDLEVBQUUs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b2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRTdG9yZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudC1zdG9yZSc7XHJcbmltcG9ydCB7IEh0dHBSZXF1ZXN0RmFjdG9yeSwgSHR0cFJlcXVlc3RTdHJhdGVneSwgSHR0cFJlcXVlc3RTdGF0dXMsIEh0dHBSZXF1ZXN0U3RhdGUsIFJlcXVlc3RTdGF0ZU9wdGlvbnMsIEh0dHBSZXF1ZXN0U3RhdGVDYW5jZWxsZWQgfSBmcm9tICcuL3R5cGVzJztcclxuaW1wb3J0IHsgY3JlYXRlRmFpbHVyZSwgY3JlYXRlU3VjY2VzcywgaW5Qcm9ncmVzcywgaXNFcnJvclN0YXRlLCBpc1N1Y2Nlc3NPckVycm9yU3RhdGUsIGlzU3VjY2Vzc1N0YXRlLCBub3RTdGFydGVkIH0gZnJvbSAnLi9oZWxwZXJzJztcclxuaW1wb3J0IHsgY29uY2F0TWFwLCBmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IG1hcEVycm9yIH0gZnJvbSAnLi4vcnhqcy9tYXBFcnJvcic7XHJcbmltcG9ydCB7IGRlZmF1bHRTaGFyZVJlcGxheSB9IGZyb20gJy4uL3J4anMvZGVmYXVsdFNoYXJlUmVwbGF5JztcclxuaW1wb3J0IHsgY29tcHV0ZWQsIERpcmVjdGl2ZSwgSW5qZWN0b3IsIGlzU2lnbmFsLCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHsgbm90TnVsbCB9IGZyb20gJy4uL3J4anMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0UmVzcG9uc2U8VFBhcmFtIGV4dGVuZHMgYW55W10sIFQ+IHtcclxuICByZXF1ZXN0UGFyYW1zOiBbLi4uVFBhcmFtXTtcclxuICByZXNwb25zZTogSHR0cFJlcXVlc3RTdGF0ZTxUPjtcclxufVxyXG5cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBjbGFzcyBIdHRwUmVxdWVzdFN0YXRlU3RvcmU8VFBhcmFtIGV4dGVuZHMgYW55W10sIFYsIFIgPSBudWxsLCBUID0gUiBleHRlbmRzIG51bGwgPyBWIDogUj4gZXh0ZW5kcyBDb21wb25lbnRTdG9yZTxSZXF1ZXN0UmVzcG9uc2U8VFBhcmFtLCBUPj4ge1xyXG4gICAgcHJpdmF0ZSBvcHRpb25zPzogUmVxdWVzdFN0YXRlT3B0aW9ucztcclxuICAgIHByaXZhdGUgcHJvamVjdD86ICh2OiBWKSA9PiBSO1xyXG4gICAgcHJpdmF0ZSByZXE6IEh0dHBSZXF1ZXN0RmFjdG9yeTxUUGFyYW0sIFY+O1xyXG4gICAgcHJpdmF0ZSBpbmplY3Rvcj86IEluamVjdG9yO1xyXG4gICAgY29uc3RydWN0b3IocmVxOiBIdHRwUmVxdWVzdEZhY3Rvcnk8VFBhcmFtLCBWPiAsb3B0aW9ucz86IFJlcXVlc3RTdGF0ZU9wdGlvbnM8VFBhcmFtPiwgcHJvamVjdD86ICh2OiBWKSA9PiBSKSB7XHJcbiAgICAgIHN1cGVyKHsgcmVxdWVzdFBhcmFtczogbnVsbCBhcyBhbnksIHJlc3BvbnNlOiBub3RTdGFydGVkIH0pO1xyXG4gICAgICB0aGlzLnByb2plY3QgPSBwcm9qZWN0O1xyXG4gICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xyXG4gICAgICB0aGlzLmluamVjdG9yID0gb3B0aW9ucz8uaW5qZWN0b3I7XHJcbiAgICAgIHRoaXMucmVxID0gcmVxO1xyXG4gICAgICB0aGlzLnJlcXVlc3QgPSAodGhpcy5vcHRpb25zPy5zdHJhdGVneSA9PT0gSHR0cFJlcXVlc3RTdHJhdGVneS5zaW5nbGVVc2UpID8gdGhpcy5zaW5nbGVVc2VSZXF1ZXN0IDogIHRoaXMuZmxhdHRlbmVkUmVxdWVzdDtcclxuXHJcbiAgICAgIGlmKG9wdGlvbnM/LmF1dG9SZXF1ZXN0V2l0aCl7XHJcbiAgICAgICAgdGhpcy5yZXF1ZXN0KC4uLm9wdGlvbnMuYXV0b1JlcXVlc3RXaXRoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJlc2V0KCkge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHsgcmVxdWVzdFBhcmFtczpudWxsIGFzIGFueSwgcmVzcG9uc2U6IG5vdFN0YXJ0ZWQgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBmbGF0dGVuaW5nU3RyYXRlZ3kgPSAoKSA9PiB7XHJcbiAgICAgIGlmKHRoaXMub3B0aW9ucz8uc3RyYXRlZ3kgPT09IEh0dHBSZXF1ZXN0U3RyYXRlZ3kuY29uY3VycmVudClcclxuICAgICAgICByZXR1cm4gbWVyZ2VNYXAoIChwYXJhbXM6IFsuLi5UUGFyYW1dKSA9PiB0aGlzLmNyZWF0ZVJlcXVlc3QoLi4ucGFyYW1zKSk7XHJcbiAgICAgIGlmKHRoaXMub3B0aW9ucz8uc3RyYXRlZ3kgPT09IEh0dHBSZXF1ZXN0U3RyYXRlZ3kuc2VxdWVudGlhbClcclxuICAgICAgICByZXR1cm4gY29uY2F0TWFwKCAocGFyYW1zOiBbLi4uVFBhcmFtXSkgPT4gdGhpcy5jcmVhdGVSZXF1ZXN0KC4uLnBhcmFtcykpO1xyXG4gICAgICByZXR1cm4gc3dpdGNoTWFwKCAocGFyYW1zOiBbLi4uVFBhcmFtXSkgPT4gKChwYXJhbXNbMF0gYXMgYW55KSBpbnN0YW5jZW9mIENhbmNlbGxhdGlvblRva2VuKSA/XHJcbiAgICAgICAgb2YoeyByZXF1ZXN0UGFyYW1zOiBwYXJhbXNbMF0sIHJlc3BvbnNlOiB7IHN0YXR1czogSHR0cFJlcXVlc3RTdGF0dXMuY2FuY2VsbGVkIH0gYXMgSHR0cFJlcXVlc3RTdGF0ZUNhbmNlbGxlZCB9ICkgOiB0aGlzLmNyZWF0ZVJlcXVlc3QoLi4ucGFyYW1zKSApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVxdWVzdEVmZmVjdDogKHZhbHVlOiBbLi4uVFBhcmFtXSApID0+IFN1YnNjcmlwdGlvbiA9IHRoaXMuZWZmZWN0KChvYnM6IE9ic2VydmFibGU8Wy4uLlRQYXJhbV0+KSA9PiB7XHJcbiAgICAgIHJldHVybiAob2JzKS5waXBlKFxyXG4gICAgICAgIHRoaXMuZmxhdHRlbmluZ1N0cmF0ZWd5KCksXHJcbiAgICAgICAgdGFwPFJlcXVlc3RSZXNwb25zZTxUUGFyYW0sIFQ+PihzdGF0ZSA9PiB0aGlzLnNldFN0YXRlKHN0YXRlKSksXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBwcml2YXRlIGZsYXR0ZW5lZFJlcXVlc3QgPSAoLi4udmFsdWU6IFsuLi5UUGFyYW1dKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJlcXVlc3RFZmZlY3QodmFsdWUpIGFzIFN1YnNjcmlwdGlvbjtcclxuICAgIH1cclxuICAgIHByaXZhdGUgc2luZ2xlVXNlUmVxdWVzdCA9ICguLi52YWx1ZTogWy4uLlRQYXJhbV0pID0+IHtcclxuICAgICAgaWYgKHRoaXMuZ2V0KCkucmVzcG9uc2Uuc3RhdHVzICE9PSBIdHRwUmVxdWVzdFN0YXR1cy5ub3RTdGFydGVkKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwic3RhdGUgY2FuIG5vdCBiZSByZXVzZWQuIGVpdGhlciByZXNldCB0aGUgc3RhdGUgYnkgY2FsbGluZyByZXNldCgpIG9yIHVzZSBhIHN0YXRlIHJlcXVlc3RlciB0aGF0IGFsbG93cyBjb25jdXJyZW50IHJlcXVlc3RzLlwiKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0RWZmZWN0KHZhbHVlKSBhcyBTdWJzY3JpcHRpb247XHJcbiAgICB9XHJcblxyXG4gICAgJHNlbGVjdEh0dHBTdGF0ZSA9IHRoaXMuc2VsZWN0U2lnbmFsKGEgPT4gYS5yZXNwb25zZSk7XHJcblxyXG4gICAgc2VsZWN0SHR0cFN0YXRlJCA9IHRoaXMuc2VsZWN0KGEgPT4gYS5yZXNwb25zZSk7XHJcblxyXG4gICAgJHNlbGVjdFN0YXR1cyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuJHNlbGVjdEh0dHBTdGF0ZSgpPy5zdGF0dXMpO1xyXG5cclxuICAgIHNlbGVjdFN0YXR1cyQgPSB0b09ic2VydmFibGUodGhpcy4kc2VsZWN0U3RhdHVzKS5waXBlKG5vdE51bGwoKSk7XHJcblxyXG5cclxuXHJcbiAgICBzZWxlY3RFcnJvciQgPSB0aGlzLnNlbGVjdEh0dHBTdGF0ZSQucGlwZShcclxuICAgICAgZmlsdGVyKGlzRXJyb3JTdGF0ZSksXHJcbiAgICAgIG1hcChzdGF0ZSA9PiBzdGF0ZS5lcnJvcilcclxuICAgICk7XHJcblxyXG4gICAgJHNlbGVjdEVycm9yID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuJHNlbGVjdEh0dHBTdGF0ZSgpO1xyXG4gICAgICBpZihpc0Vycm9yU3RhdGUoc3RhdGUpKSByZXR1cm4gc3RhdGUuZXJyb3JcclxuICAgIH0pXHJcblxyXG4gICAgc2VsZWN0UmVzcG9uc2UkOiBPYnNlcnZhYmxlPFQ+ID0gdGhpcy5zZWxlY3RIdHRwU3RhdGUkLnBpcGUoXHJcbiAgICAgIGZpbHRlcihpc1N1Y2Nlc3NTdGF0ZSksXHJcbiAgICAgIG1hcCggc3RhdGUgPT4gc3RhdGUuYm9keSlcclxuICAgICk7XHJcblxyXG4gICAgJHNlbGVjdFJlc3BvbnNlID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuJHNlbGVjdEh0dHBTdGF0ZSgpO1xyXG4gICAgICBpZihpc1N1Y2Nlc3NTdGF0ZShzdGF0ZSkpe1xyXG4gICAgICAgIHJldHVybiBzdGF0ZS5ib2R5XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH0pXHJcblxyXG4gICAgc2VsZWN0U3VjY2Vzc09yRXJyb3IkID0gdGhpcy5zdGF0ZSQucGlwZShcclxuICAgICAgbWFwKHIgPT4gci5yZXNwb25zZSksXHJcbiAgICAgIGZpbHRlcihpc1N1Y2Nlc3NPckVycm9yU3RhdGUpLFxyXG4gICAgICBtYXAoICgpID0+IG51bGwpXHJcbiAgICApO1xyXG5cclxuICAgIGVycm9ySGFuZGxlZCA9IGZhbHNlO1xyXG4gICAgb25FcnJvciggY2I6IChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHZvaWQpIHtcclxuICAgICAgdGhpcy5lcnJvckhhbmRsZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLm9uKHRoaXMuc2VsZWN0RXJyb3IkLCBjYik7XHJcbiAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU3VjY2VzcyggY2I6IChib2R5PzogVCkgPT4gdm9pZCkge1xyXG4gICAgICB0aGlzLm9uKHRoaXMuc2VsZWN0UmVzcG9uc2UkLCBjYik7XHJcbiAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU3VjY2Vzc09yRXJyb3IoY2I6ICgpID0+IHZvaWQpe1xyXG4gICAgICB0aGlzLm9uKHRoaXMuc2VsZWN0U3VjY2Vzc09yRXJyb3IkLCBjYik7XHJcbiAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU3VjY2Vzc1dpdGhSZXF1ZXN0KGZ1bmM6IChzdGF0ZToge1xyXG4gICAgICByZXF1ZXN0UGFyYW1zOiBbLi4uVFBhcmFtXTtcclxuICAgICAgYm9keTogVDtcclxuICAgIH0pID0+IHZvaWQpIHtcclxuICAgICAgdGhpcy5vblVwZGF0ZSgoeyByZXF1ZXN0UGFyYW1zLCByZXNwb25zZSB9KSA9PiB7XHJcbiAgICAgICAgaWYoaXNTdWNjZXNzU3RhdGUocmVzcG9uc2UpKXtcclxuICAgICAgICAgIGZ1bmMoe3JlcXVlc3RQYXJhbXMsYm9keTogcmVzcG9uc2UuYm9keX0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIG9uRXJyb3JXaXRoUmVxdWVzdChmdW5jOiAoc3RhdGU6IHtcclxuICAgICAgZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlO1xyXG4gICAgICByZXF1ZXN0UGFyYW1zOiBbLi4uVFBhcmFtXTtcclxuICAgIH0pID0+IHZvaWQpIHtcclxuICAgICAgdGhpcy5vblVwZGF0ZSggKHsgcmVxdWVzdFBhcmFtcywgcmVzcG9uc2UgfSkgPT4ge1xyXG4gICAgICAgIGlmKGlzRXJyb3JTdGF0ZShyZXNwb25zZSkpe1xyXG4gICAgICAgICAgZnVuYyh7IHJlcXVlc3RQYXJhbXMsIGVycm9yOiByZXNwb25zZS5lcnJvciB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNyZWF0ZVJlcXVlc3QoLi4ucGFyYW1zOiBbLi4uVFBhcmFtXSk6IE9ic2VydmFibGU8UmVxdWVzdFJlc3BvbnNlPFRQYXJhbSwgVD4+IHtcclxuICAgICAgcmV0dXJuIHRoaXMucmVxKC4uLnBhcmFtcykucGlwZShcclxuICAgICAgICBtYXAocmUgPT4gY3JlYXRlU3VjY2VzcygodGhpcy5wcm9qZWN0ID8gdGhpcy5wcm9qZWN0KHJlKSA6IHJlKSBhcyBUKSksXHJcbiAgICAgICAgbWFwRXJyb3IoY3JlYXRlRmFpbHVyZSksXHJcbiAgICAgICAgc3RhcnRXaXRoKGluUHJvZ3Jlc3MpLFxyXG4gICAgICAgIG1hcCggc3RhdGUgPT4gKHsgcmVxdWVzdFBhcmFtczogcGFyYW1zLCByZXNwb25zZTogc3RhdGUgfSkpLFxyXG4gICAgICAgIGRlZmF1bHRTaGFyZVJlcGxheSgpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgb25VcGRhdGUoZnVuYzogKHN0YXRlOiB7XHJcbiAgICAgIHJlcXVlc3RQYXJhbXM6IFsuLi5UUGFyYW1dO1xyXG4gICAgICByZXNwb25zZTogSHR0cFJlcXVlc3RTdGF0ZTxUPjtcclxuICAgIH0pID0+IHZvaWQpIHtcclxuICAgICAgdGhpcy5vbih0aGlzLnN0YXRlJCwgZnVuYyk7XHJcbiAgICB9XHJcblxyXG4gICAgb24gPSA8Vj4oc3JjT2JzZXJ2YWJsZTogT2JzZXJ2YWJsZTxWPiwgZnVuYzogKG9iajogVikgPT4gdm9pZCk6IFN1YnNjcmlwdGlvbiA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmVmZmVjdCgoc3JjOiBPYnNlcnZhYmxlPFY+KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHNyYy5waXBlKHRhcChmdW5jKSk7XHJcbiAgICAgIH0pKHNyY09ic2VydmFibGUpIGFzIFN1YnNjcmlwdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICByZXF1ZXN0OiAoLi4udmFsdWU6ICBbLi4uVFBhcmFtXSApID0+IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICAgIH1cclxuXHJcbiAgICByZXF1ZXN0V2l0aCA9IChwYXJhbXM6IE9ic2VydmFibGU8Wy4uLlRQYXJhbV0+IHwgU2lnbmFsPFsuLi5UUGFyYW1dPikgPT4ge1xyXG4gICAgICBpZihpc1NpZ25hbChwYXJhbXMpKXtcclxuICAgICAgICBwYXJhbXMgPSB0b09ic2VydmFibGUocGFyYW1zLCB7IGluamVjdG9yOiB0aGlzLmluamVjdG9yIH0pLnBpcGUobm90TnVsbCgpKTtcclxuICAgICAgfVxyXG4gICAgICBwYXJhbXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgocCkgPT4gdGhpcy5yZXF1ZXN0KC4uLnApKTtcclxuICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGV4cG9ydCBjbGFzcyBDYW5jZWxsYXRpb25Ub2tlbiB7fVxyXG4gIGV4cG9ydCBmdW5jdGlvbiB3cmFwSW5BcnI8VD4oc2lnOiBTaWduYWw8VD4pIDogU2lnbmFsPFtUXT47XHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHdyYXBJbkFycjxUPihvYnM6IE9ic2VydmFibGU8VD4pOiBPYnNlcnZhYmxlPFtUXT47XHJcbiAgZXhwb3J0IGZ1bmN0aW9uIHdyYXBJbkFycjxUPihzaWdPck9iczogU2lnbmFsPFQ+IHwgT2JzZXJ2YWJsZTxUPil7XHJcbiAgICByZXR1cm4gaXNTaWduYWwoc2lnT3JPYnMpID9cclxuICAgIGNvbXB1dGVkKCgpID0+IFtzaWdPck9icygpXSlcclxuICAgIDogc2lnT3JPYnMucGlwZShtYXAoYSA9PiBbYV0pKTtcclxuICB9XHJcbiJdfQ==
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cFJlcXVlc3RTdGF0ZVN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL2h0dHAtcmVxdWVzdC1zdGF0ZS9IdHRwUmVxdWVzdFN0YXRlU3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBc0IsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQW9FLE1BQU0sU0FBUyxDQUFDO0FBQ3ZKLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0SSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBWSxRQUFRLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBUWxDLE1BQU0sT0FBTyxxQkFBcUYsU0FBUSxjQUEwQztJQUN4SSxPQUFPLENBQXVCO0lBQzlCLE9BQU8sQ0FBZTtJQUN0QixHQUFHLENBQWdDO0lBQ25DLFFBQVEsQ0FBWTtJQUM1QixZQUFZLEdBQWtDLEVBQUUs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Q0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQTt1R0FqSlEscUJBQXFCOzJGQUFyQixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBRGpDLFNBQVM7O0FBb0pSLE1BQU0sT0FBTyxpQkFBaUI7Q0FBRztBQUdqQyxNQUFNLFVBQVUsU0FBUyxDQUFJLFFBQW1DO0lBQzlELE9BQU8sUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDM0IsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRTdG9yZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudC1zdG9yZSc7XHJcbmltcG9ydCB7IEh0dHBSZXF1ZXN0RmFjdG9yeSwgSHR0cFJlcXVlc3RTdHJhdGVneSwgSHR0cFJlcXVlc3RTdGF0dXMsIEh0dHBSZXF1ZXN0U3RhdGUsIFJlcXVlc3RTdGF0ZU9wdGlvbnMsIEh0dHBSZXF1ZXN0U3RhdGVDYW5jZWxsZWQgfSBmcm9tICcuL3R5cGVzJztcclxuaW1wb3J0IHsgY3JlYXRlRmFpbHVyZSwgY3JlYXRlU3VjY2VzcywgaW5Qcm9ncmVzcywgaXNFcnJvclN0YXRlLCBpc1N1Y2Nlc3NPckVycm9yU3RhdGUsIGlzU3VjY2Vzc1N0YXRlLCBub3RTdGFydGVkIH0gZnJvbSAnLi9oZWxwZXJzJztcclxuaW1wb3J0IHsgY29uY2F0TWFwLCBmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IG1hcEVycm9yIH0gZnJvbSAnLi4vcnhqcy9tYXBFcnJvcic7XHJcbmltcG9ydCB7IGRlZmF1bHRTaGFyZVJlcGxheSB9IGZyb20gJy4uL3J4anMvZGVmYXVsdFNoYXJlUmVwbGF5JztcclxuaW1wb3J0IHsgY29tcHV0ZWQsIERpcmVjdGl2ZSwgSW5qZWN0b3IsIGlzU2lnbmFsLCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5pbXBvcnQgeyBub3ROdWxsIH0gZnJvbSAnLi4vcnhqcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RSZXNwb25zZTxUUGFyYW0gZXh0ZW5kcyBhbnlbXSwgVD4ge1xyXG4gIHJlcXVlc3RQYXJhbXM6IFsuLi5UUGFyYW1dO1xyXG4gIHJlc3BvbnNlOiBIdHRwUmVxdWVzdFN0YXRlPFQ+O1xyXG59XHJcblxyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGNsYXNzIEh0dHBSZXF1ZXN0U3RhdGVTdG9yZTxUUGFyYW0gZXh0ZW5kcyBhbnlbXSwgViwgUiA9IG51bGwsIFQgPSBSIGV4dGVuZHMgbnVsbCA/IFYgOiBSPiBleHRlbmRzIENvbXBvbmVudFN0b3JlPFJlcXVlc3RSZXNwb25zZTxUUGFyYW0sIFQ+PiB7XHJcbiAgICBwcml2YXRlIG9wdGlvbnM/OiBSZXF1ZXN0U3RhdGVPcHRpb25zO1xyXG4gICAgcHJpdmF0ZSBwcm9qZWN0PzogKHY6IFYpID0+IFI7XHJcbiAgICBwcml2YXRlIHJlcTogSHR0cFJlcXVlc3RGYWN0b3J5PFRQYXJhbSwgVj47XHJcbiAgICBwcml2YXRlIGluamVjdG9yPzogSW5qZWN0b3I7XHJcbiAgICBjb25zdHJ1Y3RvcihyZXE6IEh0dHBSZXF1ZXN0RmFjdG9yeTxUUGFyYW0sIFY+ICxvcHRpb25zPzogUmVxdWVzdFN0YXRlT3B0aW9uczxUUGFyYW0+LCBwcm9qZWN0PzogKHY6IFYpID0+IFIpIHtcclxuICAgICAgc3VwZXIoeyByZXF1ZXN0UGFyYW1zOiBudWxsIGFzIGFueSwgcmVzcG9uc2U6IG5vdFN0YXJ0ZWQgfSk7XHJcbiAgICAgIHRoaXMucHJvamVjdCA9IHByb2plY3Q7XHJcbiAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XHJcbiAgICAgIHRoaXMuaW5qZWN0b3IgPSBvcHRpb25zPy5pbmplY3RvcjtcclxuICAgICAgdGhpcy5yZXEgPSByZXE7XHJcbiAgICAgIHRoaXMucmVxdWVzdCA9ICh0aGlzLm9wdGlvbnM/LnN0cmF0ZWd5ID09PSBIdHRwUmVxdWVzdFN0cmF0ZWd5LnNpbmdsZVVzZSkgPyB0aGlzLnNpbmdsZVVzZVJlcXVlc3QgOiAgdGhpcy5mbGF0dGVuZWRSZXF1ZXN0O1xyXG5cclxuICAgICAgaWYob3B0aW9ucz8uYXV0b1JlcXVlc3RXaXRoKXtcclxuICAgICAgICB0aGlzLnJlcXVlc3QoLi4ub3B0aW9ucy5hdXRvUmVxdWVzdFdpdGgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVzZXQoKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyByZXF1ZXN0UGFyYW1zOm51bGwgYXMgYW55LCByZXNwb25zZTogbm90U3RhcnRlZCB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGZsYXR0ZW5pbmdTdHJhdGVneSA9ICgpID0+IHtcclxuICAgICAgaWYodGhpcy5vcHRpb25zPy5zdHJhdGVneSA9PT0gSHR0cFJlcXVlc3RTdHJhdGVneS5jb25jdXJyZW50KVxyXG4gICAgICAgIHJldHVybiBtZXJnZU1hcCggKHBhcmFtczogWy4uLlRQYXJhbV0pID0+IHRoaXMuY3JlYXRlUmVxdWVzdCguLi5wYXJhbXMpKTtcclxuICAgICAgaWYodGhpcy5vcHRpb25zPy5zdHJhdGVneSA9PT0gSHR0cFJlcXVlc3RTdHJhdGVneS5zZXF1ZW50aWFsKVxyXG4gICAgICAgIHJldHVybiBjb25jYXRNYXAoIChwYXJhbXM6IFsuLi5UUGFyYW1dKSA9PiB0aGlzLmNyZWF0ZVJlcXVlc3QoLi4ucGFyYW1zKSk7XHJcbiAgICAgIHJldHVybiBzd2l0Y2hNYXAoIChwYXJhbXM6IFsuLi5UUGFyYW1dKSA9PiAoKHBhcmFtc1swXSBhcyBhbnkpIGluc3RhbmNlb2YgQ2FuY2VsbGF0aW9uVG9rZW4pID9cclxuICAgICAgICBvZih7IHJlcXVlc3RQYXJhbXM6IHBhcmFtc1swXSwgcmVzcG9uc2U6IHsgc3RhdHVzOiBIdHRwUmVxdWVzdFN0YXR1cy5jYW5jZWxsZWQgfSBhcyBIdHRwUmVxdWVzdFN0YXRlQ2FuY2VsbGVkIH0gKSA6IHRoaXMuY3JlYXRlUmVxdWVzdCguLi5wYXJhbXMpICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZXF1ZXN0RWZmZWN0OiAodmFsdWU6IFsuLi5UUGFyYW1dICkgPT4gU3Vic2NyaXB0aW9uID0gdGhpcy5lZmZlY3QoKG9iczogT2JzZXJ2YWJsZTxbLi4uVFBhcmFtXT4pID0+IHtcclxuICAgICAgcmV0dXJuIChvYnMpLnBpcGUoXHJcbiAgICAgICAgdGhpcy5mbGF0dGVuaW5nU3RyYXRlZ3koKSxcclxuICAgICAgICB0YXA8UmVxdWVzdFJlc3BvbnNlPFRQYXJhbSwgVD4+KHN0YXRlID0+IHRoaXMuc2V0U3RhdGUoc3RhdGUpKSxcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHByaXZhdGUgZmxhdHRlbmVkUmVxdWVzdCA9ICguLi52YWx1ZTogWy4uLlRQYXJhbV0pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdEVmZmVjdCh2YWx1ZSkgYXMgU3Vic2NyaXB0aW9uO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBzaW5nbGVVc2VSZXF1ZXN0ID0gKC4uLnZhbHVlOiBbLi4uVFBhcmFtXSkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5nZXQoKS5yZXNwb25zZS5zdGF0dXMgIT09IEh0dHBSZXF1ZXN0U3RhdHVzLm5vdFN0YXJ0ZWQpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJzdGF0ZSBjYW4gbm90IGJlIHJldXNlZC4gZWl0aGVyIHJlc2V0IHRoZSBzdGF0ZSBieSBjYWxsaW5nIHJlc2V0KCkgb3IgdXNlIGEgc3RhdGUgcmVxdWVzdGVyIHRoYXQgYWxsb3dzIGNvbmN1cnJlbnQgcmVxdWVzdHMuXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aGlzLnJlcXVlc3RFZmZlY3QodmFsdWUpIGFzIFN1YnNjcmlwdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3RIdHRwU3RhdGUkID0gdGhpcy5zdGF0ZSQucGlwZShtYXAoYSA9PiBhLnJlc3BvbnNlKSk7XHJcblxyXG4gICAgc2VsZWN0U3RhdHVzJCA9IHRoaXMuc2VsZWN0SHR0cFN0YXRlJC5waXBlKG1hcChhID0+IGEuc3RhdHVzKSk7XHJcblxyXG4gICAgc2VsZWN0RXJyb3IkID0gdGhpcy5zdGF0ZSQucGlwZShcclxuICAgICAgbWFwKHIgPT4gci5yZXNwb25zZSksXHJcbiAgICAgIGZpbHRlcihpc0Vycm9yU3RhdGUpLFxyXG4gICAgICBtYXAoIHN0YXRlID0+IHN0YXRlLmVycm9yKVxyXG4gICAgKTtcclxuXHJcbiAgICBzZWxlY3RSZXNwb25zZSQ6IE9ic2VydmFibGU8VD4gPSB0aGlzLnN0YXRlJC5waXBlKFxyXG4gICAgICBtYXAociA9PiByLnJlc3BvbnNlKSxcclxuICAgICAgZmlsdGVyKGlzU3VjY2Vzc1N0YXRlKSxcclxuICAgICAgbWFwKCBzdGF0ZSA9PiBzdGF0ZS5ib2R5KVxyXG4gICAgKTtcclxuICAgIHNlbGVjdFN1Y2Nlc3NPckVycm9yJCA9IHRoaXMuc3RhdGUkLnBpcGUoXHJcbiAgICAgIG1hcChyID0+IHIucmVzcG9uc2UpLFxyXG4gICAgICBmaWx0ZXIoaXNTdWNjZXNzT3JFcnJvclN0YXRlKSxcclxuICAgICAgbWFwKCAoKSA9PiBudWxsKVxyXG4gICAgKTtcclxuXHJcbiAgICBlcnJvckhhbmRsZWQgPSBmYWxzZTtcclxuICAgIG9uRXJyb3IoIGNiOiAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB2b2lkKSB7XHJcbiAgICAgIHRoaXMuZXJyb3JIYW5kbGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5vbih0aGlzLnNlbGVjdEVycm9yJCwgY2IpO1xyXG4gICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBvblN1Y2Nlc3MoIGNiOiAoYm9keT86IFQpID0+IHZvaWQpIHtcclxuICAgICAgdGhpcy5vbih0aGlzLnNlbGVjdFJlc3BvbnNlJCwgY2IpO1xyXG4gICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBvblN1Y2Nlc3NPckVycm9yKGNiOiAoKSA9PiB2b2lkKXtcclxuICAgICAgdGhpcy5vbih0aGlzLnNlbGVjdFN1Y2Nlc3NPckVycm9yJCwgY2IpO1xyXG4gICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBvblN1Y2Nlc3NXaXRoUmVxdWVzdChmdW5jOiAoc3RhdGU6IHtcclxuICAgICAgcmVxdWVzdFBhcmFtczogWy4uLlRQYXJhbV07XHJcbiAgICAgIGJvZHk6IFQ7XHJcbiAgICB9KSA9PiB2b2lkKSB7XHJcbiAgICAgIHRoaXMub25VcGRhdGUoKHsgcmVxdWVzdFBhcmFtcywgcmVzcG9uc2UgfSkgPT4ge1xyXG4gICAgICAgIGlmKGlzU3VjY2Vzc1N0YXRlKHJlc3BvbnNlKSl7XHJcbiAgICAgICAgICBmdW5jKHtyZXF1ZXN0UGFyYW1zLGJvZHk6IHJlc3BvbnNlLmJvZHl9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBvbkVycm9yV2l0aFJlcXVlc3QoZnVuYzogKHN0YXRlOiB7XHJcbiAgICAgIGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZTtcclxuICAgICAgcmVxdWVzdFBhcmFtczogWy4uLlRQYXJhbV07XHJcbiAgICB9KSA9PiB2b2lkKSB7XHJcbiAgICAgIHRoaXMub25VcGRhdGUoICh7IHJlcXVlc3RQYXJhbXMsIHJlc3BvbnNlIH0pID0+IHtcclxuICAgICAgICBpZihpc0Vycm9yU3RhdGUocmVzcG9uc2UpKXtcclxuICAgICAgICAgIGZ1bmMoeyByZXF1ZXN0UGFyYW1zLCBlcnJvcjogcmVzcG9uc2UuZXJyb3IgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVSZXF1ZXN0KC4uLnBhcmFtczogWy4uLlRQYXJhbV0pOiBPYnNlcnZhYmxlPFJlcXVlc3RSZXNwb25zZTxUUGFyYW0sIFQ+PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJlcSguLi5wYXJhbXMpLnBpcGUoXHJcbiAgICAgICAgbWFwKHJlID0+IGNyZWF0ZVN1Y2Nlc3MoKHRoaXMucHJvamVjdCA/IHRoaXMucHJvamVjdChyZSkgOiByZSkgYXMgVCkpLFxyXG4gICAgICAgIG1hcEVycm9yKGNyZWF0ZUZhaWx1cmUpLFxyXG4gICAgICAgIHN0YXJ0V2l0aChpblByb2dyZXNzKSxcclxuICAgICAgICBtYXAoIHN0YXRlID0+ICh7IHJlcXVlc3RQYXJhbXM6IHBhcmFtcywgcmVzcG9uc2U6IHN0YXRlIH0pKSxcclxuICAgICAgICBkZWZhdWx0U2hhcmVSZXBsYXkoKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG9uVXBkYXRlKGZ1bmM6IChzdGF0ZToge1xyXG4gICAgICByZXF1ZXN0UGFyYW1zOiBbLi4uVFBhcmFtXTtcclxuICAgICAgcmVzcG9uc2U6IEh0dHBSZXF1ZXN0U3RhdGU8VD47XHJcbiAgICB9KSA9PiB2b2lkKSB7XHJcbiAgICAgIHRoaXMub24odGhpcy5zdGF0ZSQsIGZ1bmMpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uID0gPFY+KHNyY09ic2VydmFibGU6IE9ic2VydmFibGU8Vj4sIGZ1bmM6IChvYmo6IFYpID0+IHZvaWQpOiBTdWJzY3JpcHRpb24gPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5lZmZlY3QoKHNyYzogT2JzZXJ2YWJsZTxWPikgPT4ge1xyXG4gICAgICAgIHJldHVybiBzcmMucGlwZSh0YXAoZnVuYykpO1xyXG4gICAgICB9KShzcmNPYnNlcnZhYmxlKSBhcyBTdWJzY3JpcHRpb247XHJcbiAgICB9XHJcblxyXG4gICAgcmVxdWVzdDogKC4uLnZhbHVlOiAgWy4uLlRQYXJhbV0gKSA9PiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVxdWVzdFdpdGggPSAocGFyYW1zOiBPYnNlcnZhYmxlPFsuLi5UUGFyYW1dPiB8IFNpZ25hbDxbLi4uVFBhcmFtXT4pID0+IHtcclxuICAgICAgaWYoaXNTaWduYWwocGFyYW1zKSl7XHJcbiAgICAgICAgcGFyYW1zID0gdG9PYnNlcnZhYmxlKHBhcmFtcywgeyBpbmplY3RvcjogdGhpcy5pbmplY3RvciB9KS5waXBlKG5vdE51bGwoKSk7XHJcbiAgICAgIH1cclxuICAgICAgcGFyYW1zLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKHApID0+IHRoaXMucmVxdWVzdCguLi5wKSk7XHJcbiAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG4gIH1cclxuICBleHBvcnQgY2xhc3MgQ2FuY2VsbGF0aW9uVG9rZW4ge31cclxuICBleHBvcnQgZnVuY3Rpb24gd3JhcEluQXJyPFQ+KHNpZzogU2lnbmFsPFQ+KSA6IFNpZ25hbDxbVF0+O1xyXG4gIGV4cG9ydCBmdW5jdGlvbiB3cmFwSW5BcnI8VD4ob2JzOiBPYnNlcnZhYmxlPFQ+KTogT2JzZXJ2YWJsZTxbVF0+O1xyXG4gIGV4cG9ydCBmdW5jdGlvbiB3cmFwSW5BcnI8VD4oc2lnT3JPYnM6IFNpZ25hbDxUPiB8IE9ic2VydmFibGU8VD4pe1xyXG4gICAgcmV0dXJuIGlzU2lnbmFsKHNpZ09yT2JzKSA/XHJcbiAgICBjb21wdXRlZCgoKSA9PiBbc2lnT3JPYnMoKV0pXHJcbiAgICA6IHNpZ09yT2JzLnBpcGUobWFwKGEgPT4gW2FdKSk7XHJcbiAgfVxyXG4iXX0=
@@ -1,15 +1,12 @@
1
- import { APP_INITIALIZER, EnvironmentInjector, makeEnvironmentProviders, runInInjectionContext } from "@angular/core";
1
+ import { APP_INITIALIZER, makeEnvironmentProviders } from "@angular/core";
2
2
  import { createSelector, Store } from "@ngrx/store";
3
3
  import { v4 as uuid } from 'uuid';
4
4
  class AppStoreCache {
5
5
  cache = {};
6
- isInCache = (actionableSelectorId, ...p) => {
7
- const props = p.reduce((a, b) => {
8
- if (typeof b != 'object')
9
- b = { b };
10
- return ({ ...a, ...b });
11
- }, {});
12
- let itemsInCache = this.cache[actionableSelectorId] = (this.cache[actionableSelectorId] || []);
6
+ isInCache = (props, actionableSelectorId) => {
7
+ if (typeof props != 'object')
8
+ props = { props };
9
+ let itemsInCache = this.cache[actionableSelectorId] = this.cache[actionableSelectorId] || [];
13
10
  if (itemsInCache.some(itemInCache => shallowEquals(itemInCache, props))) {
14
11
  return true;
15
12
  }
@@ -19,30 +16,18 @@ class AppStoreCache {
19
16
  }
20
17
  let _store;
21
18
  let _cache;
22
- let _ei;
23
19
  export const clearActionableSelectorRequestCache = () => _cache.cache = {};
24
20
  const setStore = (store) => {
25
21
  if (store instanceof Store)
26
- _store ??= store;
27
- };
28
- const setEnvironmentInjector = (ei) => {
29
- if (ei instanceof EnvironmentInjector)
30
- _ei ??= ei;
22
+ _store = store;
31
23
  };
32
24
  export function setUpStoreFactory(store) {
33
- _cache ??= new AppStoreCache();
25
+ _cache = new AppStoreCache();
34
26
  return () => new Promise((resolve, reject) => {
35
27
  setStore(store);
36
28
  resolve(null);
37
29
  });
38
30
  }
39
- function setUpEnvironmentInjector(env) {
40
- _cache ??= new AppStoreCache();
41
- return () => new Promise((resolve, reject) => {
42
- setEnvironmentInjector(env);
43
- resolve(null);
44
- });
45
- }
46
31
  /**
47
32
  * Creates a selector that can dispatch an action if conditions are met.
48
33
  * Note: The props of the selector factory must include the props of the action.
@@ -52,8 +37,14 @@ function setUpEnvironmentInjector(env) {
52
37
  * if true is returned. If no method is passed in than the action will be dispatched if the selector returns undefined or null.
53
38
  */
54
39
  export const createActionableSelector = (selectorFactory, action, dispatchIf = defaultFilter) => {
55
- const actionable = createActionResultSelector(selectorFactory, (...props) => () => _store.dispatch(action(...props)), dispatchIf);
56
- return (...props) => createSelector(actionable(...props), b => b.result);
40
+ const id = uuid();
41
+ const slctr = (props) => createSelector(selectorFactory(props), (selected) => {
42
+ if (dispatchIf(selected) && !_cache.isInCache(props, id)) {
43
+ queueMicrotask(() => _store.dispatch(action(props)));
44
+ }
45
+ return selected;
46
+ });
47
+ return slctr;
57
48
  };
58
49
  export function defaultFilter(data) {
59
50
  return data == null || data == undefined;
@@ -77,32 +68,4 @@ export function provideActionableSelector() {
77
68
  { provide: APP_INITIALIZER, useFactory: setUpStoreFactory, multi: true, deps: [Store] },
78
69
  ]);
79
70
  }
80
- export function provideActionSelector() {
81
- return makeEnvironmentProviders([
82
- { provide: APP_INITIALIZER, useFactory: setUpEnvironmentInjector, multi: true, deps: [EnvironmentInjector] },
83
- ]);
84
- }
85
- export const createActionSelector = (selectorFactory, action, dispatchIf = defaultFilter) => {
86
- const actionable = createActionResultSelector(selectorFactory, action, dispatchIf);
87
- return ((...props) => createSelector(actionable(...props), b => b.result));
88
- };
89
- export const createActionableResultSelector = (selectorFactory, action, dispatchIf = defaultFilter) => {
90
- return createActionResultSelector(selectorFactory, (...props) => () => _store.dispatch(action(...props)), dispatchIf);
91
- };
92
- export const createActionResultSelector = (selectorFactory, action, dispatchIf = defaultFilter) => {
93
- const id = uuid();
94
- const slctr = (...props) => createSelector(selectorFactory(...props), (selected) => {
95
- const needsDispatch = dispatchIf(selected);
96
- if (needsDispatch && !_cache.isInCache(id, ...props)) {
97
- queueMicrotask(() => runInInjectionContext(_ei, () => {
98
- action(...props)();
99
- }));
100
- }
101
- return ({
102
- loading: needsDispatch,
103
- result: selected
104
- });
105
- });
106
- return slctr;
107
- };
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uYWJsZS1zZWxlY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy9uZ3J4L2FjdGlvbmFibGUtc2VsZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSx3QkFBd0IsRUFBRSxxQkFBcUIsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNqSSxPQUFPLEVBQVUsY0FBYyxFQUFvQixLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDOUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFNbEMsTUFBTSxhQUFhO0lBQ2pCLEtBQUssR0FBVSxFQUFFLENBQUM7SUFDbEIsU0FBUyxHQUFHLENBQUMsb0JBQTRCLEVBQUUsR0FBRyxDQUFRLEVBQVcsRUFBRTtRQUNqRSxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzlCLElBQUcsT0FBTyxDQUFDLElBQUksUUFBUTtnQkFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxPQUFNLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDeEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRVAsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRS9GLElBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDO1lBQ3RFLE9BQU8sSUFBSSxD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QUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ3hILENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLENBQ3hDLGVBQXFFLEVBQ3JFLE1BQXVDLEVBQ3ZDLGFBQXdDLGFBQWEsRUFDckQsRUFBRTtJQUNGLE1BQU0sRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO0lBQ2xCLE1BQU0sS0FBSyxHQUFHLENBQUMsR0FBRyxLQUFZLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FDL0MsZUFBZSxDQUFDLEdBQUcsS0FBSyxDQUFDLEVBQ3pCLENBQUMsUUFBZ0IsRUFBRSxFQUFFO1FBQ25CLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzQyxJQUFHLGFBQWEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEdBQUcsS0FBSyxDQUFDLEVBQUMsQ0FBQztZQUNuRCxjQUFjLENBQUMsR0FBRyxFQUFFLENBQ2xCLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUU7Z0JBQzlCLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUE7WUFDcEIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNSLENBQUM7UUFDRCxPQUFPLENBQUM7WUFDTixPQUFPLEVBQUUsYUFBYTtZQUN0QixNQUFNLEVBQUUsUUFBUTtTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDLENBQ3lELENBQUM7SUFDN0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUFBfSU5JVElBTElaRVIsIEVudmlyb25tZW50SW5qZWN0b3IsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycywgcnVuSW5JbmplY3Rpb25Db250ZXh0LCB1bnRyYWNrZWQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBY3Rpb24sIGNyZWF0ZVNlbGVjdG9yLCBNZW1vaXplZFNlbGVjdG9yLCBTdG9yZSB9IGZyb20gXCJAbmdyeC9zdG9yZVwiO1xyXG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XHJcblxyXG50eXBlIENhY2hlID0ge1xyXG4gIFtrZXk6IHN0cmluZ106IHsgW2tleTogc3RyaW5nXTogYW55IH1bXTtcclxufVxyXG5cclxuY2xhc3MgQXBwU3RvcmVDYWNoZSB7XHJcbiAgY2FjaGU6IENhY2hlID0ge307XHJcbiAgaXNJbkNhY2hlID0gKGFjdGlvbmFibGVTZWxlY3RvcklkOiBzdHJpbmcsIC4uLnA6IGFueVtdKTogYm9vbGVhbiA9PiB7XHJcbiAgICBjb25zdCBwcm9wcyA9IHAucmVkdWNlKChhLCBiKSA9PiB7XHJcbiAgICAgIGlmKHR5cGVvZiBiICE9ICdvYmplY3QnKSBiID0geyBiIH07XHJcbiAgICAgIHJldHVybih7IC4uLmEsIC4uLmIgfSlcclxuICAgIH0sIHt9KTtcclxuXHJcbiAgICBsZXQgaXRlbXNJbkNhY2hlID0gdGhpcy5jYWNoZVthY3Rpb25hYmxlU2VsZWN0b3JJZF0gPSAodGhpcy5jYWNoZVthY3Rpb25hYmxlU2VsZWN0b3JJZF0gfHwgW10pO1xyXG5cclxuICAgIGlmKGl0ZW1zSW5DYWNoZS5zb21lKGl0ZW1JbkNhY2hlID0+IHNoYWxsb3dFcXVhbHMoaXRlbUluQ2FjaGUsIHByb3BzKSkpe1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpdGVtc0luQ2FjaGUucHVzaChwcm9wcyk7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcblxyXG5sZXQgX3N0b3JlOiBTdG9yZTxhbnk+O1xyXG5sZXQgX2NhY2hlOiBBcHBTdG9yZUNhY2hlO1xyXG5sZXQgX2VpIDogRW52aXJvbm1lbnRJbmplY3RvcjtcclxuXHJcbmV4cG9ydCBjb25zdCBjbGVhckFjdGlvbmFibGVTZWxlY3RvclJlcXVlc3RDYWNoZSA9ICgpID0+IF9jYWNoZS5jYWNoZSA9IHt9O1xyXG5cclxuY29uc3Qgc2V0U3RvcmUgPSAoc3RvcmU6IFN0b3JlKSA9PiB7XHJcbiAgaWYoc3RvcmUgaW5zdGFuY2VvZiBTdG9yZSkgX3N0b3JlID8/PSBzdG9yZTtcclxufTtcclxuXHJcbmNvbnN0IHNldEVudmlyb25tZW50SW5qZWN0b3IgPSAoZWk6IEVudmlyb25tZW50SW5qZWN0b3IpID0+IHtcclxuICBpZihlaSBpbnN0YW5jZW9mIEVudmlyb25tZW50SW5qZWN0b3IpIF9laSA/Pz0gZWk7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2V0VXBTdG9yZUZhY3Rvcnkoc3RvcmU6IFN0b3JlKXtcclxuICBfY2FjaGUgPz89IG5ldyBBcHBTdG9yZUNhY2hlKCk7XHJcbiAgcmV0dXJuICgpID0+IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgIHNldFN0b3JlKHN0b3JlKTtcclxuICAgIHJlc29sdmUobnVsbCk7XHJcbiAgfSlcclxufVxyXG5cclxuZnVuY3Rpb24gc2V0VXBFbnZpcm9ubWVudEluamVjdG9yKGVudjogRW52aXJvbm1lbnRJbmplY3Rvcil7XHJcbiAgX2NhY2hlID8/PSBuZXcgQXBwU3RvcmVDYWNoZSgpO1xyXG4gIHJldHVybiAoKSA9PiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICBzZXRFbnZpcm9ubWVudEluamVjdG9yKGVudilcclxuICAgIHJlc29sdmUobnVsbCk7XHJcbiAgfSlcclxufVxyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgYSBzZWxlY3RvciB0aGF0IGNhbiBkaXNwYXRjaCBhbiBhY3Rpb24gaWYgY29uZGl0aW9ucyBhcmUgbWV0LlxyXG4gKiBOb3RlOiBUaGUgcHJvcHMgb2YgdGhlIHNlbGVjdG9yIGZhY3RvcnkgbXVzdCBpbmNsdWRlIHRoZSBwcm9wcyBvZiB0aGUgYWN0aW9uLlxyXG4gKiBAcGFyYW0gc2VsZWN0b3JGYWN0b3J5IEEgbWV0aG9kIHRoYXQgcmV0dXJucyBzZWxlY3Rvci5cclxuICogQHBhcmFtIGFjdGlvbiBUaGUgYWN0aW9uIHRoYXQgd2lsbCBiZSBkaXNwYXRjaGVkIHdoZW4gY29uZGl0aW9ucyBhcmUgbWV0LlxyXG4gKiBAcGFyYW0gW2Rpc3BhdGNoSWYgPSBkZWZhdWx0RmlsdGVyXSBPcHRpb25hbC4gQSBtZXRob2QgdGhhdCB0YWtlcyB0aGUgcmVzdWx0IG9mIHRoZSBzZWxlY3RvciBhbmQgcmV0dXJucyBhIGJvb2xlYW4uIFRoZSBhY3Rpb25zIGdldHMgZGlzcGF0Y2hlZFxyXG4gKiBpZiB0cnVlIGlzIHJldHVybmVkLiBJZiBubyBtZXRob2QgaXMgcGFzc2VkIGluIHRoYW4gdGhlIGFjdGlvbiB3aWxsIGJlIGRpc3BhdGNoZWQgaWYgdGhlIHNlbGVjdG9yIHJldHVybnMgdW5kZWZpbmVkIG9yIG51bGwuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgY3JlYXRlQWN0aW9uYWJsZVNlbGVjdG9yID0gPFN0YXRlLCBSZXN1bHQsIFByb3BzIGV4dGVuZHMgYW55W10+KFxyXG4gIHNlbGVjdG9yRmFjdG9yeTogKCguLi5wcm9wczogUHJvcHMpID0+IE1lbW9pemVkU2VsZWN0b3I8U3RhdGUsIFJlc3VsdD4pLFxyXG4gIGFjdGlvbjogQWN0aW9uUmV0dXJuZXI8UHJvcHM+LFxyXG4gIGRpc3BhdGNoSWY6IChkYXRhOiBSZXN1bHQpID0+IGJvb2xlYW4gPSBkZWZhdWx0RmlsdGVyLFxyXG4pID0+IHtcclxuICBjb25zdCBhY3Rpb25hYmxlID0gY3JlYXRlQWN0aW9uUmVzdWx0U2VsZWN0b3Ioc2VsZWN0b3JGYWN0b3J5LCAoLi4ucHJvcHMpID0+ICgpID0+IF9zdG9yZS5kaXNwYXRjaChhY3Rpb24oLi4ucHJvcHMpKSwgZGlzcGF0Y2hJZik7XHJcbiAgcmV0dXJuICguLi5wcm9wczogUHJvcHMpID0+IGNyZWF0ZVNlbGVjdG9yKGFjdGlvbmFibGUoLi4ucHJvcHMpLCBiID0+IGIucmVzdWx0KTtcclxufVxyXG5cclxudHlwZSBBY3Rpb25hYmxlTWVtb2l6ZWRTZWxlY3RvcjxTdGF0ZSwgUmVzdWx0PiA9IE1lbW9pemVkU2VsZWN0b3I8U3RhdGUsIFJlc3VsdD47XHJcblxyXG5leHBvcnQgdHlwZSBBY3Rpb25SZXR1cm5lcjxQcm9wcyBleHRlbmRzIGFueVtdPiA9ICguLi5wcm9wczogUHJvcHMpID0+IEFjdGlvbjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0RmlsdGVyKGRhdGE6IGFueSkge1xyXG4gIHJldHVybiBkYXRhID09IG51bGwgfHwgZGF0YSA9PSB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbmNvbnN0IHNoYWxsb3dFcXVhbHMgPSAoY2FjaGVkSXRlbTogb2JqZWN0LCBuZXdJdGVtOiBvYmplY3QpOiBib29sZWFuID0+IHtcclxuICBjb25zdCBjYWNoZWRJdGVtS2V5cyA9IE9iamVjdC5rZXlzKGNhY2hlZEl0ZW0pO1xyXG4gIGNvbnN0IHNlY29uZEtleXMgPSBPYmplY3Qua2V5cyhuZXdJdGVtKTtcclxuICBpZihjYWNoZWRJdGVtS2V5cy5sZW5ndGggIT09IHNlY29uZEtleXMubGVuZ3RoKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIGZvcihsZXQgaW5kZXggPSAwOyBpbmRleCA8IGNhY2hlZEl0ZW1LZXlzLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgY29uc3QgY3VycmVudEtleSA9IGNhY2hlZEl0ZW1LZXlzW2luZGV4XTtcclxuICAgIGlmKGNhY2hlZEl0ZW1bY3VycmVudEtleV0gIT09IG5ld0l0ZW1bY3VycmVudEtleV0pe1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJldHVybiB0cnVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUFjdGlvbmFibGVTZWxlY3Rvcigpe1xyXG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xyXG4gICAgeyBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsIHVzZUZhY3Rvcnk6IHNldFVwU3RvcmVGYWN0b3J5LCBtdWx0aTogdHJ1ZSwgZGVwczogW1N0b3JlXSB9LFxyXG4gIF0pXHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQWN0aW9uU2VsZWN0b3IoKXtcclxuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcclxuICAgIHsgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLCB1c2VGYWN0b3J5OiBzZXRVcEVudmlyb25tZW50SW5qZWN0b3IsIG11bHRpOiB0cnVlLCBkZXBzOiBbRW52aXJvbm1lbnRJbmplY3Rvcl0gfSxcclxuICBdKVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgY3JlYXRlQWN0aW9uU2VsZWN0b3IgPSA8U3RhdGUsIFJlc3VsdCwgUHJvcHMgZXh0ZW5kcyBhbnlbXSA9IGFueVtdPihcclxuICBzZWxlY3RvckZhY3Rvcnk6ICguLi5wcm9wczogUHJvcHMpID0+IE1lbW9pemVkU2VsZWN0b3I8U3RhdGUsIFJlc3VsdD4sXHJcbiAgYWN0aW9uOiAoLi4ucHJvcHM6IFByb3BzKSA9PiAoKSA9PiB2b2lkLFxyXG4gIGRpc3BhdGNoSWY6IChkYXRhOiBSZXN1bHQpID0+IGJvb2xlYW4gPSBkZWZhdWx0RmlsdGVyLFxyXG4pID0+IHtcclxuICBjb25zdCBhY3Rpb25hYmxlID0gY3JlYXRlQWN0aW9uUmVzdWx0U2VsZWN0b3Ioc2VsZWN0b3JGYWN0b3J5LCBhY3Rpb24sIGRpc3BhdGNoSWYpO1xyXG4gIHJldHVybiAoKC4uLnByb3BzOiBQcm9wcykgPT4gY3JlYXRlU2VsZWN0b3IoYWN0aW9uYWJsZSguLi5wcm9wcyksIGIgPT4gYi5yZXN1bHQpKTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGNyZWF0ZUFjdGlvbmFibGVSZXN1bHRTZWxlY3RvciA9IDxTdGF0ZSwgUmVzdWx0LCBQcm9wcyBleHRlbmRzIGFueVtdPihcclxuICBzZWxlY3RvckZhY3Rvcnk6ICgoLi4ucHJvcHM6IFByb3BzKSA9PiBNZW1vaXplZFNlbGVjdG9yPFN0YXRlLCBSZXN1bHQ+KSxcclxuICBhY3Rpb246IEFjdGlvblJldHVybmVyPFByb3BzPixcclxuICBkaXNwYXRjaElmOiAoZGF0YTogUmVzdWx0KSA9PiBib29sZWFuID0gZGVmYXVsdEZpbHRlcixcclxuKSA9PiB7XHJcbiAgcmV0dXJuIGNyZWF0ZUFjdGlvblJlc3VsdFNlbGVjdG9yKHNlbGVjdG9yRmFjdG9yeSwgKC4uLnByb3BzKSA9PiAoKSA9PiBfc3RvcmUuZGlzcGF0Y2goYWN0aW9uKC4uLnByb3BzKSksIGRpc3BhdGNoSWYpO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgY3JlYXRlQWN0aW9uUmVzdWx0U2VsZWN0b3IgPSA8U3RhdGUsIFJlc3VsdCwgUHJvcHMgZXh0ZW5kcyBhbnlbXSA9IGFueVtdPihcclxuICBzZWxlY3RvckZhY3Rvcnk6ICguLi5wcm9wczogUHJvcHMpID0+IE1lbW9pemVkU2VsZWN0b3I8U3RhdGUsIFJlc3VsdD4sXHJcbiAgYWN0aW9uOiAoLi4ucHJvcHM6IFByb3BzKSA9PiAoKSA9PiB2b2lkLFxyXG4gIGRpc3BhdGNoSWY6IChkYXRhOiBSZXN1bHQpID0+IGJvb2xlYW4gPSBkZWZhdWx0RmlsdGVyLFxyXG4pID0+IHtcclxuICBjb25zdCBpZCA9IHV1aWQoKTtcclxuICBjb25zdCBzbGN0ciA9ICguLi5wcm9wczogUHJvcHMpID0+IGNyZWF0ZVNlbGVjdG9yKFxyXG4gICAgc2VsZWN0b3JGYWN0b3J5KC4uLnByb3BzKSxcclxuICAgIChzZWxlY3RlZDogUmVzdWx0KSA9PiB7XHJcbiAgICAgIGNvbnN0IG5lZWRzRGlzcGF0Y2ggPSBkaXNwYXRjaElmKHNlbGVjdGVkKTtcclxuICAgICAgaWYobmVlZHNEaXNwYXRjaCAmJiAhX2NhY2hlLmlzSW5DYWNoZShpZCwgLi4ucHJvcHMpKXtcclxuICAgICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiAgXHJcbiAgICAgICAgICBydW5JbkluamVjdGlvbkNvbnRleHQoX2VpLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIGFjdGlvbiguLi5wcm9wcykoKVxyXG4gICAgICAgICAgfSkpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiAoe1xyXG4gICAgICAgIGxvYWRpbmc6IG5lZWRzRGlzcGF0Y2gsXHJcbiAgICAgICAgcmVzdWx0OiBzZWxlY3RlZFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICApIGFzIEFjdGlvbmFibGVNZW1vaXplZFNlbGVjdG9yPFN0YXRlLCBMb2FkaW5nU3RhdGU8UmVzdWx0Pj47XHJcbiAgcmV0dXJuIHNsY3RyO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgTG9hZGluZ1N0YXRlPFQ+IHtcclxuICBsb2FkaW5nOiBib29sZWFuO1xyXG4gIHJlc3VsdD86IFQ7XHJcbn1cclxuIl19
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uYWJsZS1zZWxlY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy9uZ3J4L2FjdGlvbmFibGUtc2VsZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQVUsY0FBYyxFQUFvQixLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDOUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFNbEMsTUFBTSxhQUFhO0lBQ2pCLEtBQUssR0FBVSxFQUFFLENBQUM7SUFDbEIsU0FBUyxHQUFHLENBQUMsS0FBVSxFQUFFLG9CQUE0QixFQUFXLEVBQUU7UUFDaEUsSUFBRyxPQUFPLEtBQUssSUFBSSxRQUFRO1lBQUUsS0FBSyxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFFL0MsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFN0YsSUFBRyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUM7WUFDdEUsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUMsQ0FBQTtDQUNGO0FBRUQsSUFBSSxNQUFrQixDQUFDO0FBQ3ZCLElBQUksTUFBcUIsQ0FBQztBQUUxQixNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztBQUUzRSxNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQVksRUFBRSxFQUFFO0lBQ2hDLElBQUcsS0FBSyxZQUFZLEtBQUs7UUFBRSxNQUFNLEdBQUcsS0FBSyxDQUFDO0FBQzVDLENBQUMsQ0FBQztBQUVGLE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxLQUFZO0lBQzVDLE1BQU0sR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO0lBQzdCLE9BQU8sR0FBRyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDM0MsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQixDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FDdEMsZUFBbUUsRUFDbkUsTUFBeUMsRUFDekMsYUFBd0MsYUFBYSxFQUNTLEVBQUU7SUFDaEUsTUFBTSxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFDbEIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FDN0MsZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUN0QixDQUFDLFFBQWdCLEVBQUUsRUFBRTtRQUNuQixJQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFDLENBQUM7WUFDdkQsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQyxDQUMyQyxDQUFDO0lBQy9DLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyxDQUFBO0FBTUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxJQUFTO0lBQ3JDLE9BQU8sSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksU0FBUyxDQUFDO0FBQzNDLENBQUM7QUFFRCxNQUFNLGFBQWEsR0FBRyxDQUFDLFVBQWtCLEVBQUUsT0FBZSxFQUFXLEVBQUU7SUFDckUsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvQyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLElBQUcsY0FBYyxDQUFDLE1BQU0sS0FBSyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDL0MsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsS0FBSSxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLGNBQWMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUMxRCxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsSUFBRyxVQUFVLENBQUMsVUFBVSxDQUFDLEtBQUssT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFDLENBQUM7WUFDakQsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFBO0FBRUQsTUFBTSxVQUFVLHlCQUF5QjtJQUN2QyxPQUFPLHdCQUF3QixDQUFDO1FBQzlCLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRTtLQUN4RixDQUFDLENBQUE7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBY3Rpb24sIGNyZWF0ZVNlbGVjdG9yLCBNZW1vaXplZFNlbGVjdG9yLCBTdG9yZSB9IGZyb20gXCJAbmdyeC9zdG9yZVwiO1xyXG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XHJcblxyXG50eXBlIENhY2hlID0ge1xyXG4gIFtrZXk6IHN0cmluZ106IHsgW2tleTogc3RyaW5nXTogYW55IH1bXTtcclxufVxyXG5cclxuY2xhc3MgQXBwU3RvcmVDYWNoZSB7XHJcbiAgY2FjaGU6IENhY2hlID0ge307XHJcbiAgaXNJbkNhY2hlID0gKHByb3BzOiBhbnksIGFjdGlvbmFibGVTZWxlY3RvcklkOiBzdHJpbmcpOiBib29sZWFuID0+IHtcclxuICAgIGlmKHR5cGVvZiBwcm9wcyAhPSAnb2JqZWN0JykgcHJvcHMgPSB7IHByb3BzIH07XHJcblxyXG4gICAgbGV0IGl0ZW1zSW5DYWNoZSA9IHRoaXMuY2FjaGVbYWN0aW9uYWJsZVNlbGVjdG9ySWRdID0gdGhpcy5jYWNoZVthY3Rpb25hYmxlU2VsZWN0b3JJZF0gfHwgW107XHJcblxyXG4gICAgaWYoaXRlbXNJbkNhY2hlLnNvbWUoaXRlbUluQ2FjaGUgPT4gc2hhbGxvd0VxdWFscyhpdGVtSW5DYWNoZSwgcHJvcHMpKSl7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGl0ZW1zSW5DYWNoZS5wdXNoKHByb3BzKTtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuXHJcbmxldCBfc3RvcmU6IFN0b3JlPGFueT47XHJcbmxldCBfY2FjaGU6IEFwcFN0b3JlQ2FjaGU7XHJcblxyXG5leHBvcnQgY29uc3QgY2xlYXJBY3Rpb25hYmxlU2VsZWN0b3JSZXF1ZXN0Q2FjaGUgPSAoKSA9PiBfY2FjaGUuY2FjaGUgPSB7fTtcclxuXHJcbmNvbnN0IHNldFN0b3JlID0gKHN0b3JlOiBTdG9yZSkgPT4ge1xyXG4gIGlmKHN0b3JlIGluc3RhbmNlb2YgU3RvcmUpIF9zdG9yZSA9IHN0b3JlO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHNldFVwU3RvcmVGYWN0b3J5KHN0b3JlOiBTdG9yZSl7XHJcbiAgX2NhY2hlID0gbmV3IEFwcFN0b3JlQ2FjaGUoKTtcclxuICByZXR1cm4gKCkgPT4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgc2V0U3RvcmUoc3RvcmUpO1xyXG4gICAgcmVzb2x2ZShudWxsKTtcclxuICB9KVxyXG59XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhIHNlbGVjdG9yIHRoYXQgY2FuIGRpc3BhdGNoIGFuIGFjdGlvbiBpZiBjb25kaXRpb25zIGFyZSBtZXQuXHJcbiAqIE5vdGU6IFRoZSBwcm9wcyBvZiB0aGUgc2VsZWN0b3IgZmFjdG9yeSBtdXN0IGluY2x1ZGUgdGhlIHByb3BzIG9mIHRoZSBhY3Rpb24uXHJcbiAqIEBwYXJhbSBzZWxlY3RvckZhY3RvcnkgQSBtZXRob2QgdGhhdCByZXR1cm5zIHNlbGVjdG9yLlxyXG4gKiBAcGFyYW0gYWN0aW9uIFRoZSBhY3Rpb24gdGhhdCB3aWxsIGJlIGRpc3BhdGNoZWQgd2hlbiBjb25kaXRpb25zIGFyZSBtZXQuXHJcbiAqIEBwYXJhbSBbZGlzcGF0Y2hJZiA9IGRlZmF1bHRGaWx0ZXJdIE9wdGlvbmFsLiBBIG1ldGhvZCB0aGF0IHRha2VzIHRoZSByZXN1bHQgb2YgdGhlIHNlbGVjdG9yIGFuZCByZXR1cm5zIGEgYm9vbGVhbi4gVGhlIGFjdGlvbnMgZ2V0cyBkaXNwYXRjaGVkXHJcbiAqIGlmIHRydWUgaXMgcmV0dXJuZWQuIElmIG5vIG1ldGhvZCBpcyBwYXNzZWQgaW4gdGhhbiB0aGUgYWN0aW9uIHdpbGwgYmUgZGlzcGF0Y2hlZCBpZiB0aGUgc2VsZWN0b3IgcmV0dXJucyB1bmRlZmluZWQgb3IgbnVsbC5cclxuICovXHJcbmV4cG9ydCBjb25zdCBjcmVhdGVBY3Rpb25hYmxlU2VsZWN0b3IgPSA8U3RhdGUsIFJlc3VsdCwgUHJvcHMgPSBhbnk+KFxyXG4gIHNlbGVjdG9yRmFjdG9yeTogKHByb3BzPzogUHJvcHMpID0+IE1lbW9pemVkU2VsZWN0b3I8U3RhdGUsIFJlc3VsdD4sXHJcbiAgYWN0aW9uOiBBY3Rpb25SZXR1cm5lcjxQcm9wcyB8IHVuZGVmaW5lZD4sXHJcbiAgZGlzcGF0Y2hJZjogKGRhdGE6IFJlc3VsdCkgPT4gYm9vbGVhbiA9IGRlZmF1bHRGaWx0ZXIsXHJcbik6IChwcm9wcz86IFByb3BzKSA9PiBBY3Rpb25hYmxlTWVtb2l6ZWRTZWxlY3RvcjxTdGF0ZSwgUmVzdWx0PiA9PiB7XHJcbiAgY29uc3QgaWQgPSB1dWlkKCk7XHJcbiAgY29uc3Qgc2xjdHIgPSAocHJvcHM/OiBQcm9wcykgPT4gY3JlYXRlU2VsZWN0b3IoXHJcbiAgICBzZWxlY3RvckZhY3RvcnkocHJvcHMpLFxyXG4gICAgKHNlbGVjdGVkOiBSZXN1bHQpID0+IHtcclxuICAgICAgaWYoZGlzcGF0Y2hJZihzZWxlY3RlZCkgJiYgIV9jYWNoZS5pc0luQ2FjaGUocHJvcHMsIGlkKSl7XHJcbiAgICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4gX3N0b3JlLmRpc3BhdGNoKGFjdGlvbihwcm9wcykpKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gc2VsZWN0ZWQ7XHJcbiAgICB9XHJcbiAgKSBhcyBBY3Rpb25hYmxlTWVtb2l6ZWRTZWxlY3RvcjxTdGF0ZSwgUmVzdWx0PjtcclxuICByZXR1cm4gc2xjdHI7XHJcbn1cclxuXHJcbnR5cGUgQWN0aW9uYWJsZU1lbW9pemVkU2VsZWN0b3I8U3RhdGUsIFJlc3VsdD4gPSBNZW1vaXplZFNlbGVjdG9yPFN0YXRlLCBSZXN1bHQ+O1xyXG5cclxuZXhwb3J0IHR5cGUgQWN0aW9uUmV0dXJuZXI8UHJvcHM+ID0gKHByb3BzOiBQcm9wcykgPT4gQWN0aW9uO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRGaWx0ZXIoZGF0YTogYW55KSB7XHJcbiAgcmV0dXJuIGRhdGEgPT0gbnVsbCB8fCBkYXRhID09IHVuZGVmaW5lZDtcclxufVxyXG5cclxuY29uc3Qgc2hhbGxvd0VxdWFscyA9IChjYWNoZWRJdGVtOiBvYmplY3QsIG5ld0l0ZW06IG9iamVjdCk6IGJvb2xlYW4gPT4ge1xyXG4gIGNvbnN0IGNhY2hlZEl0ZW1LZXlzID0gT2JqZWN0LmtleXMoY2FjaGVkSXRlbSk7XHJcbiAgY29uc3Qgc2Vjb25kS2V5cyA9IE9iamVjdC5rZXlzKG5ld0l0ZW0pO1xyXG4gIGlmKGNhY2hlZEl0ZW1LZXlzLmxlbmd0aCAhPT0gc2Vjb25kS2V5cy5sZW5ndGgpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgZm9yKGxldCBpbmRleCA9IDA7IGluZGV4IDwgY2FjaGVkSXRlbUtleXMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICBjb25zdCBjdXJyZW50S2V5ID0gY2FjaGVkSXRlbUtleXNbaW5kZXhdO1xyXG4gICAgaWYoY2FjaGVkSXRlbVtjdXJyZW50S2V5XSAhPT0gbmV3SXRlbVtjdXJyZW50S2V5XSl7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHRydWU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQWN0aW9uYWJsZVNlbGVjdG9yKCl7XHJcbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXHJcbiAgICB7IHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUiwgdXNlRmFjdG9yeTogc2V0VXBTdG9yZUZhY3RvcnksIG11bHRpOiB0cnVlLCBkZXBzOiBbU3RvcmVdIH0sXHJcbiAgXSlcclxufVxyXG4iXX0=
@@ -86,7 +86,7 @@ export class NotPersistedTableSettings {
86
86
  hideColumnSettings = false;
87
87
  hideSort = false;
88
88
  showTitleWhenHeaderCollapsed = true;
89
- hideHeader = true;
89
+ hideHeader = false;
90
90
  hideColumnHeaderFilters = false;
91
91
  hideColumnHeader = false;
92
92
  usePaginator = true;
@@ -113,4 +113,4 @@ export const DefaultVirtualScrollOptions = {
113
113
  rowHeight: 48,
114
114
  headerHeight: 56,
115
115
  };
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYnVpbGRlci1nZW5lcmFsLXNldHRpbmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY2xhc3Nlcy90YWJsZS1idWlsZGVyLWdlbmVyYWwtc2V0dGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUUvQixNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLGNBQWMsR0FBRyxJQUFJLDBCQUEwQixFQUFFLENBQUM7SUFDbEQsY0FBYyxHQUFHLElBQUksMEJBQTBCLEVBQUUsQ0FBQztJQUNsRCxvQkFBb0IsR0FBRyxJQUFJLHlCQUF5QixFQUFFLENBQUM7SUFDdkQsYUFBYSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7SUFDcEMsUUFBUSxDQUFhO0NBQ3RCO0FBVUQsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxVQUFVLEdBQUcsS0FBSyxDQUFBO0lBQ2xCLFVBQVUsR0FBRyxLQUFLLENBQUE7SUFDbEIsa0JBQWtCLEdBQUcsS0FBSyxDQUFBO0lBQzFCLFVBQVUsR0FBRyxLQUFLLENBQUE7SUFDbEIsUUFBUSxHQUFHLEtBQUssQ0FBQTtJQUNoQixRQUFRLEdBQUcsS0FBSyxDQUFBO0lBQ2hCLHNCQUFzQixHQUFHLElBQUksQ0FBQztJQUM5QixZQUFZLEdBQWdDLFNBQVMsQ0FBQztDQUN2RDtBQUVELE1BQU0sT0FBTywwQkFBMEI7SUFDckMsUUFBUSxHQUFHLEtBQUssQ0FBQTtDQUNqQjtBQUVELE1BQU0sT0FBTyx5QkFBeUI7SUFDcEMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNsQixRQUFRLEdBQUcsS0FBSyxDQUFDO0NBQ2xCO0FBRUQsTUFBTSxPQUFPLGFBQWE7SUFDeEIsWUFBWSxHQUFHLElBQUksQ0FBQztJQUNwQixnQkFBZ0IsR0FBcUQsU0FBUyxDQUFDO0lB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QUcsUUFBUSxFQUFFLENBQUE7WUFDeEUsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBQ0QsVUFBVSxHQUFHLEtBQUssQ0FBQTtJQUNsQixVQUFVLEdBQUcsS0FBSyxDQUFBO0lBQ2xCLGtCQUFrQixHQUFHLEtBQUssQ0FBQTtJQUMxQixRQUFRLEdBQUcsS0FBSyxDQUFBO0lBQ2hCLDRCQUE0QixHQUFHLElBQUksQ0FBQztJQUNwQyxVQUFVLEdBQUcsSUFBSSxDQUFBO0lBQ2pCLHVCQUF1QixHQUFHLEtBQUssQ0FBQztJQUNoQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDekIsWUFBWSxHQUFHLElBQUksQ0FBQztJQUNwQixnQkFBZ0IsR0FBcUQsU0FBUyxDQUFDO0lBQy9FLDRCQUE0QixHQUFHLEtBQUssQ0FBQztJQUNyQyxpQkFBaUIsR0FBWSxTQUFTLENBQUM7SUFDdkMsU0FBUyxDQUErQjtJQUN4QyxZQUFZLEdBQXFCLFNBQVMsQ0FBQztJQUMzQyxjQUFjLENBQXNCO0NBQ3JDO0FBRUQsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFDeEIsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUNmLGdCQUFnQixHQUFHLElBQUksQ0FBQztJQUN4QixZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ2xCLG1CQUFtQixHQUFHLElBQUksQ0FBQztJQUMzQixvQkFBb0IsR0FBRyxFQUFFLENBQUM7SUFDMUI7O09BRUc7SUFDSCxpQkFBaUIsR0FBdUIsU0FBUyxDQUFDO0NBQ25EO0FBRUQsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUc7SUFDekMsU0FBUyxFQUFHLEVBQUU7SUFDZCxZQUFZLEVBQUcsRUFBRTtDQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBtZXJnZSB9IGZyb20gXCJsb2Rhc2hcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBHZW5lcmFsVGFibGVTZXR0aW5ncyBpbXBsZW1lbnRzIFRhYmxlQnVpbGRlclNldHRpbmdzIHtcclxuICBoZWFkZXJTZXR0aW5ncyA9IG5ldyBUYWJsZVdyYXBwZXJIZWFkZXJTZXR0aW5ncygpO1xyXG4gIGZvb3RlclNldHRpbmdzID0gbmV3IFRhYmxlV3JhcHBlckZvb3RlclNldHRpbmdzKCk7XHJcbiAgY29sdW1uSGVhZGVyU2V0dGluZ3MgPSBuZXcgVGFibGVDb2x1bW5IZWFkZXJTZXR0aW5ncygpO1xyXG4gIHRhYmxlU2V0dGluZ3MgPSBuZXcgVGFibGVTZXR0aW5ncygpO1xyXG4gIGluamVjdG9yPyA6IEluamVjdG9yO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQnVpbGRlclNldHRpbmdzIHtcclxuICBoZWFkZXJTZXR0aW5ncz8gOiBQYXJ0aWFsPFRhYmxlV3JhcHBlckhlYWRlclNldHRpbmdzPjtcclxuICBmb290ZXJTZXR0aW5ncz8gOiBQYXJ0aWFsPFRhYmxlV3JhcHBlckZvb3RlclNldHRpbmdzPjtcclxuICBjb2x1bW5IZWFkZXJTZXR0aW5ncz8gOiBQYXJ0aWFsPFRhYmxlQ29sdW1uSGVhZGVyU2V0dGluZ3M+O1xyXG4gIHRhYmxlU2V0dGluZ3M/IDogUGFydGlhbDxUYWJsZVNldHRpbmdzPjtcclxuICBpbmplY3Rvcj8gOiBJbmplY3RvcjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRhYmxlV3JhcHBlckhlYWRlclNldHRpbmdzIHtcclxuICBoaWRlRXhwb3J0ID0gZmFsc2VcclxuICBoaWRlRmlsdGVyID0gZmFsc2VcclxuICBoaWRlQ29sdW1uU2V0dGluZ3MgPSBmYWxzZVxyXG4gIGhpZGVIZWFkZXIgPSBmYWxzZVxyXG4gIGhpZGVTb3J0ID0gZmFsc2VcclxuICBjb2xsYXBzZSA9IGZhbHNlXHJcbiAgc2hvd1RpdGxlV2hlbkNvbGxhcHNlZCA9IHRydWU7XHJcbiAgaGVhZGVySGVpZ2h0OiBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUYWJsZVdyYXBwZXJGb290ZXJTZXR0aW5ncyB7XHJcbiAgY29sbGFwc2UgPSBmYWxzZVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVGFibGVDb2x1bW5IZWFkZXJTZXR0aW5ncyB7XHJcbiAgbm9GaWx0ZXJzID0gZmFsc2U7XHJcbiAgbm9IZWFkZXIgPSBmYWxzZTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRhYmxlU2V0dGluZ3Mge1xyXG4gIHVzZVBhZ2luYXRvciA9IHRydWU7XHJcbiAgdXNlVmlydHVhbFNjcm9sbDogdHJ1ZSB8IFBhcnRpYWw8VmlydHVhbFNjcm9sbE9wdGlvbnM+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xyXG4gIGluY2x1ZGVBbGxJblBhZ2luYXRvck9wdGlvbnMgPSBmYWxzZTtcclxuICByb3dIZWlnaHQ6IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcclxuICBncm91cEhlYWRlckhlaWdodD86IG51bWJlciA9IHVuZGVmaW5lZDtcclxuICBtaW5Db2x1bW5XaWR0aDogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGVyc2lzdGVkVGFibGVTZXR0aW5ncyB7XHJcbiAgY29uc3RydWN0b3IodGFibGVTZXR0aW5ncz86IE5vbkZ1bmN0aW9uUHJvcGVydGllczxQZXJzaXN0ZWRUYWJsZVNldHRpbmdzPil7XHJcbiAgICBpZiAodGFibGVTZXR0aW5ncyl7XHJcbiAgICAgIHRoaXMuY29sbGFwc2VIZWFkZXIgPSB0YWJsZVNldHRpbmdzLmNvbGxhcHNlSGVhZGVyO1xyXG4gICAgICB0aGlzLmNvbGxhcHNlRm9vdGVyID0gdGFibGVTZXR0aW5ncy5jb2xsYXBzZUZvb3RlcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1lcmdlKHRhYmxlU2V0dGluZ3M/OiBUYWJsZUJ1aWxkZXJTZXR0aW5ncyl7XHJcbiAgICBjb25zdCBuZXdQdHMgPSBuZXcgUGVyc2lzdGVkVGFibGVTZXR0aW5ncyh0aGlzKTtcclxuICAgIGlmKHRhYmxlU2V0dGluZ3Mpe1xyXG4gICAgICBuZXdQdHMuY29sbGFwc2VIZWFkZXIgPSB0YWJsZVNldHRpbmdzLmhlYWRlclNldHRpbmdzPy5jb2xsYXBzZSA/PyBuZXdQdHMuY29sbGFwc2VIZWFkZXI7XHJcbiAgICAgIG5ld1B0cy5jb2xsYXBzZUZvb3RlciA9IHRhYmxlU2V0dGluZ3MuZm9vdGVyU2V0dGluZ3M/LmNvbGxhcHNlID8/IG5ld1B0cy5jb2xsYXBzZUZvb3RlcjtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXdQdHM7XHJcbiAgfVxyXG5cclxuICBjb2xsYXBzZUhlYWRlciA9IGZhbHNlO1xyXG4gIGNvbGxhcHNlRm9vdGVyID0gZmFsc2U7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBOb3RQZXJzaXN0ZWRUYWJsZVNldHRpbmdzIHtcclxuICBtZXJnZSh0YWJsZVNldHRpbmdzPzogVGFibGVCdWlsZGVyU2V0dGluZ3Mpe1xyXG4gICAgY29uc3QgbmV3TnB0cyA9IG1lcmdlKHRoaXMsIG5ldyBOb3RQZXJzaXN0ZWRUYWJsZVNldHRpbmdzKCkpO1xyXG4gICAgaWYodGFibGVTZXR0aW5ncyl7XHJcbiAgICAgIG5ld05wdHMuaGlkZUV4cG9ydCA9IHRhYmxlU2V0dGluZ3MuaGVhZGVyU2V0dGluZ3M/LmhpZGVFeHBvcnQgPz8gbmV3TnB0cy5oaWRlRXhwb3J0O1xyXG4gICAgICBuZXdOcHRzLmhpZGVDb2x1bW5TZXR0aW5ncyA9IHRhYmxlU2V0dGluZ3MuaGVhZGVyU2V0dGluZ3M/LmhpZGVDb2x1bW5TZXR0aW5ncyA/PyBuZXdOcHRzLmhpZGVDb2x1bW5TZXR0aW5ncztcclxuICAgICAgbmV3TnB0cy5oaWRlRmlsdGVyID0gdGFibGVTZXR0aW5ncy5oZWFkZXJTZXR0aW5ncz8uaGlkZUZpbHRlciA/PyBuZXdOcHRzLmhpZGVGaWx0ZXI7XHJcbiAgICAgIG5ld05wdHMuaGlkZVNvcnQgPSB0YWJsZVNldHRpbmdzLmhlYWRlclNldHRpbmdzPy5oaWRlU29ydCA/PyBuZXdOcHRzLmhpZGVTb3J0O1xyXG4gICAgICBuZXdOcHRzLnNob3dUaXRsZVdoZW5IZWFkZXJDb2xsYXBzZWQgPSB0YWJsZVNldHRpbmdzLmhlYWRlclNldHRpbmdzPy5zaG93VGl0bGVXaGVuQ29sbGFwc2VkID8/IG5ld05wdHMuc2hvd1RpdGxlV2hlbkhlYWRlckNvbGxhcHNlZDtcclxuICAgICAgbmV3TnB0cy5oaWRlSGVhZGVyID0gdGFibGVTZXR0aW5ncy5oZWFkZXJTZXR0aW5ncz8uaGlkZUhlYWRlciA/PyBuZXdOcHRzLmhpZGVIZWFkZXI7XHJcbiAgICAgIG5ld05wdHMuaGlkZUNvbHVtbkhlYWRlckZpbHRlcnMgPSB0YWJsZVNldHRpbmdzLmNvbHVtbkhlYWRlclNldHRpbmdzPy5ub0ZpbHRlcnMgPz8gbmV3TnB0cy5oaWRlQ29sdW1uSGVhZGVyRmlsdGVycztcclxuICAgICAgbmV3TnB0cy5oaWRlQ29sdW1uSGVhZGVyID0gdGFibGVTZXR0aW5ncy5jb2x1bW5IZWFkZXJTZXR0aW5ncz8ubm9IZWFkZXIgPz8gbmV3TnB0cy5oaWRlQ29sdW1uSGVhZGVyO1xyXG4gICAgICBuZXdOcHRzLnVzZVBhZ2luYXRvciA9IHRhYmxlU2V0dGluZ3MudGFibGVTZXR0aW5ncz8udXNlUGFnaW5hdG9yID8/IG5ld05wdHMudXNlUGFnaW5hdG9yO1xyXG4gICAgICBuZXdOcHRzLnVzZVZpcnR1YWxTY3JvbGwgPSB0YWJsZVNldHRpbmdzLnRhYmxlU2V0dGluZ3M/LnVzZVZpcnR1YWxTY3JvbGwgPz8gbmV3TnB0cy51c2VWaXJ0dWFsU2Nyb2xsO1xyXG4gICAgICBuZXdOcHRzLmluY2x1ZGVBbGxJblBhZ2luYXRvck9wdGlvbnMgPSB0YWJsZVNldHRpbmdzLnRhYmxlU2V0dGluZ3M/LmluY2x1ZGVBbGxJblBhZ2luYXRvck9wdGlvbnMgPz8gbmV3TnB0cy5pbmNsdWRlQWxsSW5QYWdpbmF0b3JPcHRpb25zO1xyXG4gICAgICBuZXdOcHRzLnJvd0hlaWdodCA9IHRhYmxlU2V0dGluZ3MudGFibGVTZXR0aW5ncz8ucm93SGVpZ2h0ID8/IG5ld05wdHMucm93SGVpZ2h0O1xyXG4gICAgICBuZXdOcHRzLmhlYWRlckhlaWdodCA9IHRhYmxlU2V0dGluZ3MuaGVhZGVyU2V0dGluZ3M/LmhlYWRlckhlaWdodCA/PyBuZXdOcHRzLmhlYWRlckhlaWdodDtcclxuICAgICAgbmV3TnB0cy5ncm91cEhlYWRlckhlaWdodCA9IHRhYmxlU2V0dGluZ3MudGFibGVTZXR0aW5ncz8uZ3JvdXBIZWFkZXJIZWlnaHQgPz8gbmV3TnB0cy5ncm91cEhlYWRlckhlaWdodDtcclxuICAgICAgbmV3TnB0cy5taW5Db2x1bW5XaWR0aCA9IHRhYmxlU2V0dGluZ3MudGFibGVTZXR0aW5ncz8ubWluQ29sdW1uV2lkdGggPz8gbmV3TnB0cy5taW5Db2x1bW5XaWR0aDtcclxuICAgICAgaWYodGFibGVTZXR0aW5ncy50YWJsZVNldHRpbmdzPy51c2VWaXJ0dWFsU2Nyb2xsKXtcclxuICAgICAgICBjb25zdCBjdXJyVmlydCA9IHRhYmxlU2V0dGluZ3MudGFibGVTZXR0aW5ncy51c2VWaXJ0dWFsU2Nyb2xsID09PSB0cnVlID8gbmV3IFZpcnR1YWxTY3JvbGxPcHRpb25zKCkgOiB0YWJsZVNldHRpbmdzLnRhYmxlU2V0dGluZ3MudXNlVmlydHVhbFNjcm9sbDtcclxuICAgICAgICBpZighY3VyclZpcnQuaGVhZGVySGVpZ2h0IHx8IHRhYmxlU2V0dGluZ3MudGFibGVTZXR0aW5ncy51c2VWaXJ0dWFsU2Nyb2xsID09PSB0cnVlKXtcclxuICAgICAgICAgIGN1cnJWaXJ0LmhlYWRlckhlaWdodCA9ICh0eXBlb2YgdGFibGVTZXR0aW5ncy5oZWFkZXJTZXR0aW5ncz8uaGVhZGVySGVpZ2h0ID09PSAnbnVtYmVyJyA/IHRhYmxlU2V0dGluZ3MuaGVhZGVyU2V0dGluZ3M/LmhlYWRlckhlaWdodCA6IERlZmF1bHRWaXJ0dWFsU2Nyb2xsT3B0aW9ucy5oZWFkZXJIZWlnaHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZighY3VyclZpcnQucm93SGVpZ2h0IHx8IHRhYmxlU2V0dGluZ3MudGFibGVTZXR0aW5ncy51c2VWaXJ0dWFsU2Nyb2xsID09PSB0cnVlKXtcclxuICAgICAgICAgIGN1cnJWaXJ0LnJvd0hlaWdodCA9ICh0eXBlb2YgdGFibGVTZXR0aW5ncy50YWJsZVNldHRpbmdzPy5yb3dIZWlnaHQgPT09ICdudW1iZXInID8gdGFibGVTZXR0aW5ncy50YWJsZVNldHRpbmdzPy5yb3dIZWlnaHQgOiBEZWZhdWx0VmlydHVhbFNjcm9sbE9wdGlvbnMucm93SGVpZ2h0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy51c2VWaXJ0dWFsU2Nyb2xsID0geyAuLi5uZXcgVmlydHVhbFNjcm9sbE9wdGlvbnMoKSwgLi4uY3VyclZpcnQgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3TnB0cztcclxuICB9XHJcbiAgaGlkZUV4cG9ydCA9IGZhbHNlXHJcbiAgaGlkZUZpbHRlciA9IGZhbHNlXHJcbiAgaGlkZUNvbHVtblNldHRpbmdzID0gZmFsc2VcclxuICBoaWRlU29ydCA9IGZhbHNlXHJcbiAgc2hvd1RpdGxlV2hlbkhlYWRlckNvbGxhcHNlZCA9IHRydWU7XHJcbiAgaGlkZUhlYWRlciA9IHRydWVcclxuICBoaWRlQ29sdW1uSGVhZGVyRmlsdGVycyA9IGZhbHNlO1xyXG4gIGhpZGVDb2x1bW5IZWFkZXIgPSBmYWxzZTtcclxuICB1c2VQYWdpbmF0b3IgPSB0cnVlO1xyXG4gIHVzZVZpcnR1YWxTY3JvbGw6IHRydWUgfCBQYXJ0aWFsPFZpcnR1YWxTY3JvbGxPcHRpb25zPiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcclxuICBpbmNsdWRlQWxsSW5QYWdpbmF0b3JPcHRpb25zID0gZmFsc2U7XHJcbiAgZ3JvdXBIZWFkZXJIZWlnaHQ/OiBudW1iZXIgPSB1bmRlZmluZWQ7XHJcbiAgcm93SGVpZ2h0Pzogc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gIGhlYWRlckhlaWdodD86IHN0cmluZyB8IG51bWJlciA9IHVuZGVmaW5lZDtcclxuICBtaW5Db2x1bW5XaWR0aD86IG51bWJlciB8IHVuZGVmaW5lZDtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFZpcnR1YWxTY3JvbGxPcHRpb25zIHtcclxuICB2aXJ0dWFsQXNEZWZhdWx0ID0gdHJ1ZTtcclxuICByb3dIZWlnaHQgPSA0ODtcclxuICBlbmZvcmNlUm93SGVpZ2h0ID0gdHJ1ZTtcclxuICBoZWFkZXJIZWlnaHQgPSA1NjtcclxuICBlbmZvcmNlSGVhZGVySGVpZ2h0ID0gdHJ1ZTtcclxuICBhbW91bnRPZlZpc2libGVJdGVtcyA9IDEwO1xyXG4gIC8qKlxyXG4gICAqIFRoaXMgd2lsbCB3aW4gb3ZlciBgYW1vdW50T2ZWaXNpYmxlSXRlbXNgXHJcbiAgICovXHJcbiAgbWF4Vmlld1BvcnRIZWlnaHQ6IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IERlZmF1bHRWaXJ0dWFsU2Nyb2xsT3B0aW9ucyA9IHtcclxuICByb3dIZWlnaHQgOiA0OCxcclxuICBoZWFkZXJIZWlnaHQgOiA1NixcclxufTtcclxuXHJcbnR5cGUgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPFQ+ID0ge1xyXG4gIFtLIGluIGtleW9mIFRdOiBUW0tdIGV4dGVuZHMgRnVuY3Rpb24gPyBuZXZlciA6IEtcclxufVtrZXlvZiBUXTtcclxuXHJcbmV4cG9ydCB0eXBlIE5vbkZ1bmN0aW9uUHJvcGVydGllczxUPiA9IFBpY2s8VCwgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPFQ+PjtcclxuIl19
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYnVpbGRlci1nZW5lcmFsLXNldHRpbmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY2xhc3Nlcy90YWJsZS1idWlsZGVyLWdlbmVyYWwtc2V0dGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUUvQixNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLGNBQWMsR0FBRyxJQUFJLDBCQUEwQixFQUFFLENBQUM7SUFDbEQsY0FBYyxHQUFHLElBQUksMEJBQTBCLEVBQUUsQ0FBQztJQUNsRCxvQkFBb0IsR0FBRyxJQUFJLHlCQUF5QixFQUFFLENBQUM7SUFDdkQsYUFBYSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7SUFDcEMsUUFBUSxDQUFhO0NBQ3RCO0FBVUQsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxVQUFVLEdBQUcsS0FBSyxDQUFBO0lBQ2xCLFVBQVUsR0FBRyxLQUFLLENBQUE7SUFDbEIsa0JBQWtCLEdBQUcsS0FBSyxDQUFBO0lBQzFCLFVBQVUsR0FBRyxLQUFLLENBQUE7SUFDbEIsUUFBUSxHQUFHLEtBQUssQ0FBQTtJQUNoQixRQUFRLEdBQUcsS0FBSyxDQUFBO0lBQ2hCLHNCQUFzQixHQUFHLElBQUksQ0FBQztJQUM5QixZQUFZLEdBQWdDLFNBQVMsQ0FBQztDQUN2RDtBQUVELE1BQU0sT0FBTywwQkFBMEI7SUFDckMsUUFBUSxHQUFHLEtBQUssQ0FBQTtDQUNqQjtBQUVELE1BQU0sT0FBTyx5QkFBeUI7SUFDcEMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNsQixRQUFRLEdBQUcsS0FBSyxDQUFDO0NBQ2xCO0FBRUQsTUFBTSxPQUFPLGFBQWE7SUFDeEIsWUFBWSxHQUFHLElBQUksQ0FBQztJQUNwQixnQkFBZ0IsR0FBcUQsU0FBUyxDQUFDO0lB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QUcsUUFBUSxFQUFFLENBQUE7WUFDeEUsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBQ0QsVUFBVSxHQUFHLEtBQUssQ0FBQTtJQUNsQixVQUFVLEdBQUcsS0FBSyxDQUFBO0lBQ2xCLGtCQUFrQixHQUFHLEtBQUssQ0FBQTtJQUMxQixRQUFRLEdBQUcsS0FBSyxDQUFBO0lBQ2hCLDRCQUE0QixHQUFHLElBQUksQ0FBQztJQUNwQyxVQUFVLEdBQUcsS0FBSyxDQUFBO0lBQ2xCLHVCQUF1QixHQUFHLEtBQUssQ0FBQztJQUNoQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDekIsWUFBWSxHQUFHLElBQUksQ0FBQztJQUNwQixnQkFBZ0IsR0FBcUQsU0FBUyxDQUFDO0lBQy9FLDRCQUE0QixHQUFHLEtBQUssQ0FBQztJQUNyQyxpQkFBaUIsR0FBWSxTQUFTLENBQUM7SUFDdkMsU0FBUyxDQUErQjtJQUN4QyxZQUFZLEdBQXFCLFNBQVMsQ0FBQztJQUMzQyxjQUFjLENBQXNCO0NBQ3JDO0FBRUQsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFDeEIsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUNmLGdCQUFnQixHQUFHLElBQUksQ0FBQztJQUN4QixZQUFZLEdBQUcsRUFBRSxDQUFDO0lBQ2xCLG1CQUFtQixHQUFHLElBQUksQ0FBQztJQUMzQixvQkFBb0IsR0FBRyxFQUFFLENBQUM7SUFDMUI7O09BRUc7SUFDSCxpQkFBaUIsR0FBdUIsU0FBUyxDQUFDO0NBQ25EO0FBRUQsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUc7SUFDekMsU0FBUyxFQUFHLEVBQUU7SUFDZCxZQUFZLEVBQUcsRUFBRTtDQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBtZXJnZSB9IGZyb20gXCJsb2Rhc2hcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBHZW5lcmFsVGFibGVTZXR0aW5ncyBpbXBsZW1lbnRzIFRhYmxlQnVpbGRlclNldHRpbmdzIHtcclxuICBoZWFkZXJTZXR0aW5ncyA9IG5ldyBUYWJsZVdyYXBwZXJIZWFkZXJTZXR0aW5ncygpO1xyXG4gIGZvb3RlclNldHRpbmdzID0gbmV3IFRhYmxlV3JhcHBlckZvb3RlclNldHRpbmdzKCk7XHJcbiAgY29sdW1uSGVhZGVyU2V0dGluZ3MgPSBuZXcgVGFibGVDb2x1bW5IZWFkZXJTZXR0aW5ncygpO1xyXG4gIHRhYmxlU2V0dGluZ3MgPSBuZXcgVGFibGVTZXR0aW5ncygpO1xyXG4gIGluamVjdG9yPyA6IEluamVjdG9yO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQnVpbGRlclNldHRpbmdzIHtcclxuICBoZWFkZXJTZXR0aW5ncz8gOiBQYXJ0aWFsPFRhYmxlV3JhcHBlckhlYWRlclNldHRpbmdzPjtcclxuICBmb290ZXJTZXR0aW5ncz8gOiBQYXJ0aWFsPFRhYmxlV3JhcHBlckZvb3RlclNldHRpbmdzPjtcclxuICBjb2x1bW5IZWFkZXJTZXR0aW5ncz8gOiBQYXJ0aWFsPFRhYmxlQ29sdW1uSGVhZGVyU2V0dGluZ3M+O1xyXG4gIHRhYmxlU2V0dGluZ3M/IDogUGFydGlhbDxUYWJsZVNldHRpbmdzPjtcclxuICBpbmplY3Rvcj8gOiBJbmplY3RvcjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRhYmxlV3JhcHBlckhlYWRlclNldHRpbmdzIHtcclxuICBoaWRlRXhwb3J0ID0gZmFsc2VcclxuICBoaWRlRmlsdGVyID0gZmFsc2VcclxuICBoaWRlQ29sdW1uU2V0dGluZ3MgPSBmYWxzZVxyXG4gIGhpZGVIZWFkZXIgPSBmYWxzZVxyXG4gIGhpZGVTb3J0ID0gZmFsc2VcclxuICBjb2xsYXBzZSA9IGZhbHNlXHJcbiAgc2hvd1RpdGxlV2hlbkNvbGxhcHNlZCA9IHRydWU7XHJcbiAgaGVhZGVySGVpZ2h0OiBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUYWJsZVdyYXBwZXJGb290ZXJTZXR0aW5ncyB7XHJcbiAgY29sbGFwc2UgPSBmYWxzZVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVGFibGVDb2x1bW5IZWFkZXJTZXR0aW5ncyB7XHJcbiAgbm9GaWx0ZXJzID0gZmFsc2U7XHJcbiAgbm9IZWFkZXIgPSBmYWxzZTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFRhYmxlU2V0dGluZ3Mge1xyXG4gIHVzZVBhZ2luYXRvciA9IHRydWU7XHJcbiAgdXNlVmlydHVhbFNjcm9sbDogdHJ1ZSB8IFBhcnRpYWw8VmlydHVhbFNjcm9sbE9wdGlvbnM+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xyXG4gIGluY2x1ZGVBbGxJblBhZ2luYXRvck9wdGlvbnMgPSBmYWxzZTtcclxuICByb3dIZWlnaHQ6IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcclxuICBncm91cEhlYWRlckhlaWdodD86IG51bWJlciA9IHVuZGVmaW5lZDtcclxuICBtaW5Db2x1bW5XaWR0aDogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGVyc2lzdGVkVGFibGVTZXR0aW5ncyB7XHJcbiAgY29uc3RydWN0b3IodGFibGVTZXR0aW5ncz86IE5vbkZ1bmN0aW9uUHJvcGVydGllczxQZXJzaXN0ZWRUYWJsZVNldHRpbmdzPil7XHJcbiAgICBpZiAodGFibGVTZXR0aW5ncyl7XHJcbiAgICAgIHRoaXMuY29sbGFwc2VIZWFkZXIgPSB0YWJsZVNldHRpbmdzLmNvbGxhcHNlSGVhZGVyO1xyXG4gICAgICB0aGlzLmNvbGxhcHNlRm9vdGVyID0gdGFibGVTZXR0aW5ncy5jb2xsYXBzZUZvb3RlcjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1lcmdlKHRhYmxlU2V0dGluZ3M/OiBUYWJsZUJ1aWxkZXJTZXR0aW5ncyl7XHJcbiAgICBjb25zdCBuZXdQdHMgPSBuZXcgUGVyc2lzdGVkVGFibGVTZXR0aW5ncyh0aGlzKTtcclxuICAgIGlmKHRhYmxlU2V0dGluZ3Mpe1xyXG4gICAgICBuZXdQdHMuY29sbGFwc2VIZWFkZXIgPSB0YWJsZVNldHRpbmdzLmhlYWRlclNldHRpbmdzPy5jb2xsYXBzZSA/PyBuZXdQdHMuY29sbGFwc2VIZWFkZXI7XHJcbiAgICAgIG5ld1B0cy5jb2xsYXBzZUZvb3RlciA9IHRhYmxlU2V0dGluZ3MuZm9vdGVyU2V0dGluZ3M/LmNvbGxhcHNlID8/IG5ld1B0cy5jb2xsYXBzZUZvb3RlcjtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXdQdHM7XHJcbiAgfVxyXG5cclxuICBjb2xsYXBzZUhlYWRlciA9IGZhbHNlO1xyXG4gIGNvbGxhcHNlRm9vdGVyID0gZmFsc2U7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBOb3RQZXJzaXN0ZWRUYWJsZVNldHRpbmdzIHtcclxuICBtZXJnZSh0YWJsZVNldHRpbmdzPzogVGFibGVCdWlsZGVyU2V0dGluZ3Mpe1xyXG4gICAgY29uc3QgbmV3TnB0cyA9IG1lcmdlKHRoaXMsIG5ldyBOb3RQZXJzaXN0ZWRUYWJsZVNldHRpbmdzKCkpO1xyXG4gICAgaWYodGFibGVTZXR0aW5ncyl7XHJcbiAgICAgIG5ld05wdHMuaGlkZUV4cG9ydCA9IHRhYmxlU2V0dGluZ3MuaGVhZGVyU2V0dGluZ3M/LmhpZGVFeHBvcnQgPz8gbmV3TnB0cy5oaWRlRXhwb3J0O1xyXG4gICAgICBuZXdOcHRzLmhpZGVDb2x1bW5TZXR0aW5ncyA9IHRhYmxlU2V0dGluZ3MuaGVhZGVyU2V0dGluZ3M/LmhpZGVDb2x1bW5TZXR0aW5ncyA/PyBuZXdOcHRzLmhpZGVDb2x1bW5TZXR0aW5ncztcclxuICAgICAgbmV3TnB0cy5oaWRlRmlsdGVyID0gdGFibGVTZXR0aW5ncy5oZWFkZXJTZXR0aW5ncz8uaGlkZUZpbHRlciA/PyBuZXdOcHRzLmhpZGVGaWx0ZXI7XHJcbiAgICAgIG5ld05wdHMuaGlkZVNvcnQgPSB0YWJsZVNldHRpbmdzLmhlYWRlclNldHRpbmdzPy5oaWRlU29ydCA/PyBuZXdOcHRzLmhpZGVTb3J0O1xyXG4gICAgICBuZXdOcHRzLnNob3dUaXRsZVdoZW5IZWFkZXJDb2xsYXBzZWQgPSB0YWJsZVNldHRpbmdzLmhlYWRlclNldHRpbmdzPy5zaG93VGl0bGVXaGVuQ29sbGFwc2VkID8/IG5ld05wdHMuc2hvd1RpdGxlV2hlbkhlYWRlckNvbGxhcHNlZDtcclxuICAgICAgbmV3TnB0cy5oaWRlSGVhZGVyID0gdGFibGVTZXR0aW5ncy5oZWFkZXJTZXR0aW5ncz8uaGlkZUhlYWRlciA/PyBuZXdOcHRzLmhpZGVIZWFkZXI7XHJcbiAgICAgIG5ld05wdHMuaGlkZUNvbHVtbkhlYWRlckZpbHRlcnMgPSB0YWJsZVNldHRpbmdzLmNvbHVtbkhlYWRlclNldHRpbmdzPy5ub0ZpbHRlcnMgPz8gbmV3TnB0cy5oaWRlQ29sdW1uSGVhZGVyRmlsdGVycztcclxuICAgICAgbmV3TnB0cy5oaWRlQ29sdW1uSGVhZGVyID0gdGFibGVTZXR0aW5ncy5jb2x1bW5IZWFkZXJTZXR0aW5ncz8ubm9IZWFkZXIgPz8gbmV3TnB0cy5oaWRlQ29sdW1uSGVhZGVyO1xyXG4gICAgICBuZXdOcHRzLnVzZVBhZ2luYXRvciA9IHRhYmxlU2V0dGluZ3MudGFibGVTZXR0aW5ncz8udXNlUGFnaW5hdG9yID8/IG5ld05wdHMudXNlUGFnaW5hdG9yO1xyXG4gICAgICBuZXdOcHRzLnVzZVZpcnR1YWxTY3JvbGwgPSB0YWJsZVNldHRpbmdzLnRhYmxlU2V0dGluZ3M/LnVzZVZpcnR1YWxTY3JvbGwgPz8gbmV3TnB0cy51c2VWaXJ0dWFsU2Nyb2xsO1xyXG4gICAgICBuZXdOcHRzLmluY2x1ZGVBbGxJblBhZ2luYXRvck9wdGlvbnMgPSB0YWJsZVNldHRpbmdzLnRhYmxlU2V0dGluZ3M/LmluY2x1ZGVBbGxJblBhZ2luYXRvck9wdGlvbnMgPz8gbmV3TnB0cy5pbmNsdWRlQWxsSW5QYWdpbmF0b3JPcHRpb25zO1xyXG4gICAgICBuZXdOcHRzLnJvd0hlaWdodCA9IHRhYmxlU2V0dGluZ3MudGFibGVTZXR0aW5ncz8ucm93SGVpZ2h0ID8/IG5ld05wdHMucm93SGVpZ2h0O1xyXG4gICAgICBuZXdOcHRzLmhlYWRlckhlaWdodCA9IHRhYmxlU2V0dGluZ3MuaGVhZGVyU2V0dGluZ3M/LmhlYWRlckhlaWdodCA/PyBuZXdOcHRzLmhlYWRlckhlaWdodDtcclxuICAgICAgbmV3TnB0cy5ncm91cEhlYWRlckhlaWdodCA9IHRhYmxlU2V0dGluZ3MudGFibGVTZXR0aW5ncz8uZ3JvdXBIZWFkZXJIZWlnaHQgPz8gbmV3TnB0cy5ncm91cEhlYWRlckhlaWdodDtcclxuICAgICAgbmV3TnB0cy5taW5Db2x1bW5XaWR0aCA9IHRhYmxlU2V0dGluZ3MudGFibGVTZXR0aW5ncz8ubWluQ29sdW1uV2lkdGggPz8gbmV3TnB0cy5taW5Db2x1bW5XaWR0aDtcclxuICAgICAgaWYodGFibGVTZXR0aW5ncy50YWJsZVNldHRpbmdzPy51c2VWaXJ0dWFsU2Nyb2xsKXtcclxuICAgICAgICBjb25zdCBjdXJyVmlydCA9IHRhYmxlU2V0dGluZ3MudGFibGVTZXR0aW5ncy51c2VWaXJ0dWFsU2Nyb2xsID09PSB0cnVlID8gbmV3IFZpcnR1YWxTY3JvbGxPcHRpb25zKCkgOiB0YWJsZVNldHRpbmdzLnRhYmxlU2V0dGluZ3MudXNlVmlydHVhbFNjcm9sbDtcclxuICAgICAgICBpZighY3VyclZpcnQuaGVhZGVySGVpZ2h0IHx8IHRhYmxlU2V0dGluZ3MudGFibGVTZXR0aW5ncy51c2VWaXJ0dWFsU2Nyb2xsID09PSB0cnVlKXtcclxuICAgICAgICAgIGN1cnJWaXJ0LmhlYWRlckhlaWdodCA9ICh0eXBlb2YgdGFibGVTZXR0aW5ncy5oZWFkZXJTZXR0aW5ncz8uaGVhZGVySGVpZ2h0ID09PSAnbnVtYmVyJyA/IHRhYmxlU2V0dGluZ3MuaGVhZGVyU2V0dGluZ3M/LmhlYWRlckhlaWdodCA6IERlZmF1bHRWaXJ0dWFsU2Nyb2xsT3B0aW9ucy5oZWFkZXJIZWlnaHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZighY3VyclZpcnQucm93SGVpZ2h0IHx8IHRhYmxlU2V0dGluZ3MudGFibGVTZXR0aW5ncy51c2VWaXJ0dWFsU2Nyb2xsID09PSB0cnVlKXtcclxuICAgICAgICAgIGN1cnJWaXJ0LnJvd0hlaWdodCA9ICh0eXBlb2YgdGFibGVTZXR0aW5ncy50YWJsZVNldHRpbmdzPy5yb3dIZWlnaHQgPT09ICdudW1iZXInID8gdGFibGVTZXR0aW5ncy50YWJsZVNldHRpbmdzPy5yb3dIZWlnaHQgOiBEZWZhdWx0VmlydHVhbFNjcm9sbE9wdGlvbnMucm93SGVpZ2h0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy51c2VWaXJ0dWFsU2Nyb2xsID0geyAuLi5uZXcgVmlydHVhbFNjcm9sbE9wdGlvbnMoKSwgLi4uY3VyclZpcnQgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3TnB0cztcclxuICB9XHJcbiAgaGlkZUV4cG9ydCA9IGZhbHNlXHJcbiAgaGlkZUZpbHRlciA9IGZhbHNlXHJcbiAgaGlkZUNvbHVtblNldHRpbmdzID0gZmFsc2VcclxuICBoaWRlU29ydCA9IGZhbHNlXHJcbiAgc2hvd1RpdGxlV2hlbkhlYWRlckNvbGxhcHNlZCA9IHRydWU7XHJcbiAgaGlkZUhlYWRlciA9IGZhbHNlXHJcbiAgaGlkZUNvbHVtbkhlYWRlckZpbHRlcnMgPSBmYWxzZTtcclxuICBoaWRlQ29sdW1uSGVhZGVyID0gZmFsc2U7XHJcbiAgdXNlUGFnaW5hdG9yID0gdHJ1ZTtcclxuICB1c2VWaXJ0dWFsU2Nyb2xsOiB0cnVlIHwgUGFydGlhbDxWaXJ0dWFsU2Nyb2xsT3B0aW9ucz4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcbiAgaW5jbHVkZUFsbEluUGFnaW5hdG9yT3B0aW9ucyA9IGZhbHNlO1xyXG4gIGdyb3VwSGVhZGVySGVpZ2h0PzogbnVtYmVyID0gdW5kZWZpbmVkO1xyXG4gIHJvd0hlaWdodD86IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICBoZWFkZXJIZWlnaHQ/OiBzdHJpbmcgfCBudW1iZXIgPSB1bmRlZmluZWQ7XHJcbiAgbWluQ29sdW1uV2lkdGg/OiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBWaXJ0dWFsU2Nyb2xsT3B0aW9ucyB7XHJcbiAgdmlydHVhbEFzRGVmYXVsdCA9IHRydWU7XHJcbiAgcm93SGVpZ2h0ID0gNDg7XHJcbiAgZW5mb3JjZVJvd0hlaWdodCA9IHRydWU7XHJcbiAgaGVhZGVySGVpZ2h0ID0gNTY7XHJcbiAgZW5mb3JjZUhlYWRlckhlaWdodCA9IHRydWU7XHJcbiAgYW1vdW50T2ZWaXNpYmxlSXRlbXMgPSAxMDtcclxuICAvKipcclxuICAgKiBUaGlzIHdpbGwgd2luIG92ZXIgYGFtb3VudE9mVmlzaWJsZUl0ZW1zYFxyXG4gICAqL1xyXG4gIG1heFZpZXdQb3J0SGVpZ2h0OiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBEZWZhdWx0VmlydHVhbFNjcm9sbE9wdGlvbnMgPSB7XHJcbiAgcm93SGVpZ2h0IDogNDgsXHJcbiAgaGVhZGVySGVpZ2h0IDogNTYsXHJcbn07XHJcblxyXG50eXBlIE5vbkZ1bmN0aW9uUHJvcGVydHlOYW1lczxUPiA9IHtcclxuICBbSyBpbiBrZXlvZiBUXTogVFtLXSBleHRlbmRzIEZ1bmN0aW9uID8gbmV2ZXIgOiBLXHJcbn1ba2V5b2YgVF07XHJcblxyXG5leHBvcnQgdHlwZSBOb25GdW5jdGlvblByb3BlcnRpZXM8VD4gPSBQaWNrPFQsIE5vbkZ1bmN0aW9uUHJvcGVydHlOYW1lczxUPj47XHJcbiJdfQ==