@angular-architects/ngrx-toolkit 0.4.0 → 18.0.0-rc.2.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.
- package/README.md +44 -1
- package/esm2022/lib/assertions/assertions.mjs +1 -1
- package/esm2022/lib/redux-connector/create-redux.mjs +1 -1
- package/esm2022/lib/redux-connector/rxjs-interop/redux-method.mjs +1 -1
- package/esm2022/lib/redux-connector/signal-redux-store.mjs +4 -4
- package/esm2022/lib/shared/empty.mjs +1 -1
- package/esm2022/lib/shared/prettify.mjs +2 -0
- package/esm2022/lib/shared/signal-store-models.mjs +2 -0
- package/esm2022/lib/with-call-state.mjs +5 -3
- package/esm2022/lib/with-data-service.mjs +73 -32
- package/esm2022/lib/with-devtools.mjs +3 -3
- package/esm2022/lib/with-pagination.mjs +70 -13
- package/esm2022/lib/with-redux.mjs +1 -1
- package/esm2022/lib/with-storage-sync.mjs +1 -1
- package/esm2022/lib/with-undo-redo.mjs +25 -11
- package/fesm2022/angular-architects-ngrx-toolkit.mjs +166 -52
- package/fesm2022/angular-architects-ngrx-toolkit.mjs.map +1 -1
- package/lib/redux-connector/signal-redux-store.d.ts +2 -2
- package/lib/shared/empty.d.ts +1 -1
- package/lib/shared/prettify.d.ts +3 -0
- package/lib/shared/signal-store-models.d.ts +36 -0
- package/lib/with-call-state.d.ts +11 -11
- package/lib/with-data-service.d.ts +16 -17
- package/lib/with-devtools.d.ts +5 -5
- package/lib/with-pagination.d.ts +51 -25
- package/lib/with-redux.d.ts +2 -3
- package/lib/with-storage-sync.d.ts +6 -8
- package/lib/with-undo-redo.d.ts +14 -15
- package/package.json +2 -2
|
@@ -85,8 +85,8 @@ export const patchState = (state, action, ...rest) => {
|
|
|
85
85
|
* @param action name of action how it will show in DevTools
|
|
86
86
|
* @param updaters updater functions or objects
|
|
87
87
|
*/
|
|
88
|
-
export
|
|
88
|
+
export function updateState(state, action, ...updaters) {
|
|
89
89
|
currentActionNames.add(action);
|
|
90
90
|
return originalPatchState(state, ...updaters);
|
|
91
|
-
}
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1kZXZ0b29scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmdyeC10b29sa2l0L3NyYy9saWIvd2l0aC1kZXZ0b29scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsVUFBVSxJQUFJLGtCQUFrQixHQUdqQyxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBa0JuRCxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQWtDLEVBQUUsQ0FBQyxDQUFDO0FBRWxFLElBQUksa0JBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztBQUUzQyxJQUFJLDBCQUEwQixHQUFHLEtBQUssQ0FBQztBQUV2QyxTQUFTLG1CQUFtQjtJQUMxQixNQUFNLENBQUMsR0FBRyxFQUFFO1FBQ1YsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFDL0IsTUFBTSxTQUFTLEdBQTRCLEVBQUUsQ0FBQztRQUM5QyxLQUFLLE1BQU0sSUFBSSxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQzFCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQixTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUM7UUFDNUIsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM3QyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FB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ZVVwZGF0ZXIsXG4gIHBhdGNoU3RhdGUgYXMgb3JpZ2luYWxQYXRjaFN0YXRlLFxuICBTaWduYWxTdG9yZUZlYXR1cmUsXG4gIFN0YXRlU2lnbmFsLFxufSBmcm9tICdAbmdyeC9zaWduYWxzJztcbmltcG9ydCB7IGVmZmVjdCwgaW5qZWN0LCBQTEFURk9STV9JRCwgc2lnbmFsLCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1TZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUHJldHRpZnkgfSBmcm9tICcuL3NoYXJlZC9wcmV0dGlmeSc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fXzpcbiAgICAgIHwge1xuICAgICAgICAgIGNvbm5lY3Q6IChvcHRpb25zOiB7IG5hbWU6IHN0cmluZyB9KSA9PiB7XG4gICAgICAgICAgICBzZW5kOiAoYWN0aW9uOiBBY3Rpb24sIHN0YXRlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gdm9pZDtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB8IHVuZGVmaW5lZDtcbiAgfVxufVxuXG50eXBlIEVtcHR5RmVhdHVyZVJlc3VsdCA9IHsgc3RhdGU6IHt9OyBjb21wdXRlZDoge307IG1ldGhvZHM6IHt9IH07XG5leHBvcnQgdHlwZSBBY3Rpb24gPSB7IHR5cGU6IHN0cmluZyB9O1xuXG5jb25zdCBzdG9yZVJlZ2lzdHJ5ID0gc2lnbmFsPFJlY29yZDxzdHJpbmcsIFNpZ25hbDx1bmtub3duPj4+KHt9KTtcblxubGV0IGN1cnJlbnRBY3Rpb25OYW1lcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG5sZXQgc3luY2hyb25pemF0aW9uSW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuZnVuY3Rpb24gaW5pdFN5bmNocm9uaXphdGlvbigpIHtcbiAgZWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWNvbm5lY3Rpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzdG9yZXMgPSBzdG9yZVJlZ2lzdHJ5KCk7XG4gICAgY29uc3Qgcm9vdFN0YXRlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuICAgIGZvciAoY29uc3QgbmFtZSBpbiBzdG9yZXMpIHtcbiAgICAgIGNvbnN0IHN0b3JlID0gc3RvcmVzW25hbWVdO1xuICAgICAgcm9vdFN0YXRlW25hbWVdID0gc3RvcmUoKTtcbiAgICB9XG5cbiAgICBjb25zdCBuYW1lcyA9IEFycmF5LmZyb20oY3VycmVudEFjdGlvbk5hbWVzKTtcbiAgICBjb25zdCB0eXBlID0gbmFtZXMubGVuZ3RoID8gbmFtZXMuam9pbignLCAnKSA6ICdTdG9yZSBVcGRhdGUnO1xuICAgIGN1cnJlbnRBY3Rpb25OYW1lcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gICAgY29ubmVjdGlvbi5zZW5kKHsgdHlwZSB9LCByb290U3RhdGUpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0VmFsdWVGcm9tU3ltYm9sKG9iajogdW5rbm93biwgc3ltYm9sOiBzeW1ib2wpIHtcbiAgaWYgKHR5cGVvZiBvYmogPT09ICdvYmplY3QnICYmIG9iaiAmJiBzeW1ib2wgaW4gb2JqKSB7XG4gICAgcmV0dXJuIChvYmogYXMgeyBba2V5OiBzeW1ib2xdOiBhbnkgfSlbc3ltYm9sXTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRTdG9yZVNpZ25hbChzdG9yZTogdW5rbm93bik6IFNpZ25hbDx1bmtub3duPiB7XG4gIGNvbnN0IFtzaWduYWxTdGF0ZUtleV0gPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHN0b3JlKTtcbiAgaWYgKCFzaWduYWxTdGF0ZUtleSkge1xuICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGZpbmQgU3RhdGUgU2lnbmFsJyk7XG4gIH1cblxuICByZXR1cm4gZ2V0VmFsdWVGcm9tU3ltYm9sKHN0b3JlLCBzaWduYWxTdGF0ZUtleSk7XG59XG5cbnR5cGUgQ29ubmVjdFJlc3BvbnNlID0ge1xuICBzZW5kOiAoYWN0aW9uOiBBY3Rpb24sIHN0YXRlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gdm9pZDtcbn07XG5sZXQgY29ubmVjdGlvbjogQ29ubmVjdFJlc3BvbnNlIHwgdW5kZWZpbmVkO1xuXG4vKipcbiAqIHJlcXVpcmVkIGZvciB0ZXN0aW5nLiBpcyBub3QgZXhwb3J0ZWQgZHVyaW5nIGJ1aWxkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNldCgpIHtcbiAgY29ubmVjdGlvbiA9IHVuZGVmaW5lZDtcbiAgc3luY2hyb25pemF0aW9uSW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgc3RvcmVSZWdpc3RyeS5zZXQoe30pO1xufVxuXG4vKipcbiAqIEBwYXJhbSBuYW1lIHN0b3JlJ3MgbmFtZSBhcyBpdCBzaG91bGQgYXBwZWFyIGluIHRoZSBEZXZUb29sc1xuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aERldnRvb2xzPElucHV0IGV4dGVuZHMgRW1wdHlGZWF0dXJlUmVzdWx0PihcbiAgbmFtZTogc3RyaW5nXG4pOiBTaWduYWxTdG9yZUZlYXR1cmU8SW5wdXQsIEVtcHR5RmVhdHVyZVJlc3VsdD4ge1xuICByZXR1cm4gKHN0b3JlKSA9PiB7XG4gICAgY29uc3QgaXNTZXJ2ZXIgPSBpc1BsYXRmb3JtU2VydmVyKGluamVjdChQTEFURk9STV9JRCkpO1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuIHN0b3JlO1xuICAgIH1cblxuICAgIGNvbnN0IGV4dGVuc2lvbnMgPSB3aW5kb3cuX19SRURVWF9ERVZUT09MU19FWFRFTlNJT05fXztcbiAgICBpZiAoIWV4dGVuc2lvbnMpIHtcbiAgICAgIHJldHVybiBzdG9yZTtcbiAgICB9XG5cbiAgICBpZiAoIWNvbm5lY3Rpb24pIHtcbiAgICAgIGNvbm5lY3Rpb24gPSBleHRlbnNpb25zLmNvbm5lY3Qoe1xuICAgICAgICBuYW1lOiAnTmdSeCBTaWduYWwgU3RvcmUnLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RvcmVTaWduYWwgPSBnZXRTdG9yZVNpZ25hbChzdG9yZSk7XG4gICAgc3RvcmVSZWdpc3RyeS51cGRhdGUoKHZhbHVlKSA9PiAoe1xuICAgICAgLi4udmFsdWUsXG4gICAgICBbbmFtZV06IHN0b3JlU2lnbmFsLFxuICAgIH0pKTtcblxuICAgIGlmICghc3luY2hyb25pemF0aW9uSW5pdGlhbGl6ZWQpIHtcbiAgICAgIGluaXRTeW5jaHJvbml6YXRpb24oKTtcbiAgICAgIHN5bmNocm9uaXphdGlvbkluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RvcmU7XG4gIH07XG59XG5cbnR5cGUgUGF0Y2hGbiA9IHR5cGVvZiBvcmlnaW5hbFBhdGNoU3RhdGUgZXh0ZW5kcyAoXG4gIGFyZzE6IGluZmVyIEZpcnN0LFxuICAuLi5hcmdzOiBpbmZlciBSZXN0XG4pID0+IGluZmVyIFJldHVybmVyXG4gID8gKHN0YXRlOiBGaXJzdCwgYWN0aW9uOiBzdHJpbmcsIC4uLnJlc3Q6IFJlc3QpID0+IFJldHVybmVyXG4gIDogbmV2ZXI7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgSGFzIGJlZW4gcmVuYW1lZCB0byBgdXBkYXRlU3RhdGVgXG4gKi9cbmV4cG9ydCBjb25zdCBwYXRjaFN0YXRlOiBQYXRjaEZuID0gKHN0YXRlLCBhY3Rpb24sIC4uLnJlc3QpID0+IHtcbiAgdXBkYXRlU3RhdGUoc3RhdGUsIGFjdGlvbiwgLi4ucmVzdCk7XG59O1xuXG4vKipcbiAqIFdyYXBwZXIgb2YgYHBhdGNoU3RhdGVgIGZvciBEZXZUb29scyBpbnRlZ3JhdGlvbi4gTmV4dCB0byB1cGRhdGluZyB0aGUgc3RhdGUsXG4gKiBpdCBhbHNvIHNlbmRzIHRoZSBhY3Rpb24gdG8gdGhlIERldlRvb2xzLlxuICogQHBhcmFtIHN0YXRlIHN0YXRlIG9mIFNpZ25hbCBTdG9yZVxuICogQHBhcmFtIGFjdGlvbiBuYW1lIG9mIGFjdGlvbiBob3cgaXQgd2lsbCBzaG93IGluIERldlRvb2xzXG4gKiBAcGFyYW0gdXBkYXRlcnMgdXBkYXRlciBmdW5jdGlvbnMgb3Igb2JqZWN0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlU3RhdGU8U3RhdGUgZXh0ZW5kcyBvYmplY3Q+KFxuICBzdGF0ZTogU3RhdGVTaWduYWw8U3RhdGU+LFxuICBhY3Rpb246IHN0cmluZyxcbiAgLi4udXBkYXRlcnM6IEFycmF5PFxuICAgIFBhcnRpYWw8UHJldHRpZnk8U3RhdGU+PiB8IFBhcnRpYWxTdGF0ZVVwZGF0ZXI8UHJldHRpZnk8U3RhdGU+PlxuICA+XG4pOiB2b2lkIHtcbiAgY3VycmVudEFjdGlvbk5hbWVzLmFkZChhY3Rpb24pO1xuICByZXR1cm4gb3JpZ2luYWxQYXRjaFN0YXRlKHN0YXRlLCAuLi51cGRhdGVycyk7XG59XG4iXX0=
|
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
* This feature implements the local pagination.
|
|
7
7
|
*/
|
|
8
8
|
import { computed } from '@angular/core';
|
|
9
|
-
import { signalStoreFeature, withComputed, withState, } from '@ngrx/signals';
|
|
9
|
+
import { patchState, signalStoreFeature, withComputed, withMethods, withState, } from '@ngrx/signals';
|
|
10
10
|
import { capitalize } from './with-data-service';
|
|
11
11
|
export function withPagination(options) {
|
|
12
|
-
const { pageKey, pageSizeKey, entitiesKey, selectedPageEntitiesKey, totalCountKey, pageCountKey, pageNavigationArrayMaxKey, pageNavigationArrayKey, } = createPaginationKeys(options);
|
|
12
|
+
const { pageKey, pageSizeKey, entitiesKey, selectedPageEntitiesKey, totalCountKey, pageCountKey, pageNavigationArrayMaxKey, pageNavigationArrayKey, setPageSizeKey, nextPageKey, previousPageKey, lastPageKey, firstPageKey, gotoPageKey, hasNextPageKey, hasPreviousPageKey, } = createPaginationKeys(options);
|
|
13
13
|
return signalStoreFeature(withState({
|
|
14
|
-
[pageKey]:
|
|
14
|
+
[pageKey]: 0,
|
|
15
15
|
[pageSizeKey]: 10,
|
|
16
16
|
[pageNavigationArrayMaxKey]: 7,
|
|
17
17
|
}), withComputed((store) => {
|
|
@@ -24,14 +24,7 @@ export function withPagination(options) {
|
|
|
24
24
|
[selectedPageEntitiesKey]: computed(() => {
|
|
25
25
|
const pageSizeValue = pageSize();
|
|
26
26
|
const pageValue = page();
|
|
27
|
-
|
|
28
|
-
// we should return an empty array
|
|
29
|
-
if (pageValue < 0 ||
|
|
30
|
-
pageSizeValue === 0 ||
|
|
31
|
-
pageValue > Math.ceil(entities().length / pageSizeValue)) {
|
|
32
|
-
return [];
|
|
33
|
-
}
|
|
34
|
-
return entities().slice((pageValue - 1) * pageSizeValue, pageValue * pageSizeValue);
|
|
27
|
+
return entities().slice(pageValue * pageSizeValue, (pageValue + 1) * pageSizeValue);
|
|
35
28
|
}),
|
|
36
29
|
[totalCountKey]: computed(() => entities().length),
|
|
37
30
|
[pageCountKey]: computed(() => {
|
|
@@ -43,6 +36,36 @@ export function withPagination(options) {
|
|
|
43
36
|
return Math.ceil(totalCountValue / pageSizeValue);
|
|
44
37
|
}),
|
|
45
38
|
[pageNavigationArrayKey]: computed(() => createPageArray(page(), pageSize(), entities().length, pageNavigationArrayMax())),
|
|
39
|
+
[hasNextPageKey]: computed(() => {
|
|
40
|
+
return page() < pageSize();
|
|
41
|
+
}),
|
|
42
|
+
[hasPreviousPageKey]: computed(() => {
|
|
43
|
+
return page() > 1;
|
|
44
|
+
}),
|
|
45
|
+
};
|
|
46
|
+
}), withMethods((store) => {
|
|
47
|
+
return {
|
|
48
|
+
[setPageSizeKey]: (size) => {
|
|
49
|
+
patchState(store, setPageSize(size, options));
|
|
50
|
+
},
|
|
51
|
+
[nextPageKey]: () => {
|
|
52
|
+
patchState(store, nextPage(options));
|
|
53
|
+
},
|
|
54
|
+
[previousPageKey]: () => {
|
|
55
|
+
patchState(store, previousPage(options));
|
|
56
|
+
},
|
|
57
|
+
[lastPageKey]: () => {
|
|
58
|
+
const lastPage = store[pageCountKey]();
|
|
59
|
+
if (lastPage === 0)
|
|
60
|
+
return;
|
|
61
|
+
patchState(store, gotoPage(lastPage - 1, options));
|
|
62
|
+
},
|
|
63
|
+
[firstPageKey]: () => {
|
|
64
|
+
patchState(store, firstPage());
|
|
65
|
+
},
|
|
66
|
+
[gotoPageKey]: (page) => {
|
|
67
|
+
patchState(store, gotoPage(page, options));
|
|
68
|
+
},
|
|
46
69
|
};
|
|
47
70
|
}));
|
|
48
71
|
}
|
|
@@ -89,7 +112,9 @@ function createPaginationKeys(options) {
|
|
|
89
112
|
const selectedPageEntitiesKey = options?.collection
|
|
90
113
|
? `selectedPage${capitalize(options?.collection)}Entities`
|
|
91
114
|
: 'selectedPageEntities';
|
|
92
|
-
const pageKey = options?.collection
|
|
115
|
+
const pageKey = options?.collection
|
|
116
|
+
? `${options.collection}CurrentPage`
|
|
117
|
+
: 'currentPage';
|
|
93
118
|
const pageSizeKey = options?.collection
|
|
94
119
|
? `${options.collection}PageSize`
|
|
95
120
|
: 'pageSize';
|
|
@@ -105,6 +130,30 @@ function createPaginationKeys(options) {
|
|
|
105
130
|
const pageNavigationArrayKey = options?.collection
|
|
106
131
|
? `${options.collection}PageNavigationArray`
|
|
107
132
|
: 'pageNavigationArray';
|
|
133
|
+
const setPageSizeKey = options?.collection
|
|
134
|
+
? `set${capitalize(options.collection)}PageSize`
|
|
135
|
+
: 'setPageSize';
|
|
136
|
+
const nextPageKey = options?.collection
|
|
137
|
+
? `next${capitalize(options.collection)}Page`
|
|
138
|
+
: 'nextPage';
|
|
139
|
+
const previousPageKey = options?.collection
|
|
140
|
+
? `previous${capitalize(options.collection)}Page`
|
|
141
|
+
: 'previousPage';
|
|
142
|
+
const lastPageKey = options?.collection
|
|
143
|
+
? `last${capitalize(options.collection)}Page`
|
|
144
|
+
: 'lastPage';
|
|
145
|
+
const firstPageKey = options?.collection
|
|
146
|
+
? `first${capitalize(options.collection)}Page`
|
|
147
|
+
: 'firstPage';
|
|
148
|
+
const gotoPageKey = options?.collection
|
|
149
|
+
? `goto${capitalize(options.collection)}Page`
|
|
150
|
+
: 'gotoPage';
|
|
151
|
+
const hasNextPageKey = options?.collection
|
|
152
|
+
? `hasNext${capitalize(options.collection)}Page`
|
|
153
|
+
: 'hasNextPage';
|
|
154
|
+
const hasPreviousPageKey = options?.collection
|
|
155
|
+
? `hasPrevious${capitalize(options.collection)}Page`
|
|
156
|
+
: 'hasPreviousPage';
|
|
108
157
|
return {
|
|
109
158
|
pageKey,
|
|
110
159
|
pageSizeKey,
|
|
@@ -114,6 +163,14 @@ function createPaginationKeys(options) {
|
|
|
114
163
|
pageCountKey,
|
|
115
164
|
pageNavigationArrayKey,
|
|
116
165
|
pageNavigationArrayMaxKey,
|
|
166
|
+
setPageSizeKey,
|
|
167
|
+
nextPageKey,
|
|
168
|
+
previousPageKey,
|
|
169
|
+
lastPageKey,
|
|
170
|
+
firstPageKey,
|
|
171
|
+
gotoPageKey,
|
|
172
|
+
hasNextPageKey,
|
|
173
|
+
hasPreviousPageKey,
|
|
117
174
|
};
|
|
118
175
|
}
|
|
119
176
|
export function createPageArray(currentPage, itemsPerPage, totalItems, paginationRange) {
|
|
@@ -149,4 +206,4 @@ export function createPageArray(currentPage, itemsPerPage, totalItems, paginatio
|
|
|
149
206
|
}
|
|
150
207
|
return pages;
|
|
151
208
|
}
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1wYWdpbmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3J4LXRvb2xraXQvc3JjL2xpYi93aXRoLXBhZ2luYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBRUwsa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFPdkIsT0FBTyxFQUFVLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBcUd6RCxNQUFNLFVBQVUsY0FBYyxDQUc1QixPQUFvQztJQUNwQyxNQUFNLEVBQ0osT0FBTyxFQUNQLFdBQVcsRUFDWCxXQUFXLEVBQ1gsdUJBQXVCLEVBQ3ZCLGFBQWEsRUFDYixZQUFZLEVBQ1oseUJBQXlCLEVBQ3pCLHNCQUFzQixHQUN2QixHQUFHLG9CQUFvQixDQUFhLE9BQU8sQ0FBQyxDQUFDO0lBRTlDLE9BQU8sa0JBQWtCLENBQ3ZCLFNBQVMsQ0FBQztRQUNSLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNaLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRTtRQUNqQixDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQztLQUMvQixDQUFDLEVBQ0YsWUFBWSxDQUFDLENBQUMsS0FBOEIsRUFBRSxFQUFFO1FBQzlDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQWdCLENBQUM7UUFDbkQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBbUIsQ0FBQztRQUM5QyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFtQixDQUFDO1FBQ3RELE1BQU0sc0JBQXNCLEdBQUcsS0FBSyxDQUNsQyx5QkFBeUIsQ0FDUixDQUFDO1FBRXBCLE9BQU87WUFDTCwrREFBK0Q7WUFDL0QsQ0FBQyx1QkFBdUIsQ0FBQyxF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QyxDQUFDO1FBRW5CLElBQUksQ0FBQyxLQUFLLGVBQWUsRUFBRTtZQUN6QixVQUFVLEdBQUcsVUFBVSxDQUFDO1NBQ3pCO2FBQU0sSUFBSSxjQUFjLEVBQUU7WUFDekIsSUFBSSxLQUFLLEVBQUU7Z0JBQ1QsVUFBVSxHQUFHLFVBQVUsR0FBRyxlQUFlLEdBQUcsQ0FBQyxDQUFDO2FBQy9DO2lCQUFNLElBQUksUUFBUSxFQUFFO2dCQUNuQixVQUFVLEdBQUcsV0FBVyxHQUFHLE9BQU8sR0FBRyxDQUFDLENBQUM7YUFDeEM7U0FDRjtRQUVELE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsQ0FBQztRQUM3RCxNQUFNLHFCQUFxQixHQUN6QixDQUFDLEtBQUssZUFBZSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsQ0FBQztRQUVyRCxNQUFNLEtBQUssR0FDVCxjQUFjLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxxQkFBcUIsQ0FBQztZQUNoRSxDQUFDLENBQUMsS0FBSztZQUNQLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFFakIsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztLQUMxQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBXaXRoIHBhZ2luYXRpb24gY29tZXMgaW4gdHdvIGZsYXZvcnMgdGhlIGZpcnN0IG9uZSBpcyBsb2NhbCBwYWdpbmF0aW9uIG9yIGluIG1lbW9yeSBwYWdpbmF0aW9uLiBGb3IgZXhhbXBsZSB3ZSBoYXZlIDIwMDAgaXRlbXMgd2hpY2ggd2Ugd2FudFxuICogdG8gZGlzcGxheSBpbiBhIHRhYmxlIGFuZCB0aGUgcmVzcG9uc2UgcGF5bG9hZCBpcyBzbWFsbCBlbm91Z2ggdG8gYmUgc3RvcmVkIGluIHRoZSBtZW1vcnkuIEJ1dCB3ZSBjYW4gbm90IGRpc3BsYXkgYWxsIDIwMDAgaXRlbXMgYXQgb25jZVxuICogc28gd2UgbmVlZCB0byBwYWdpbmF0ZSB0aGUgZGF0YS4gVGhlIHNlY29uZCBmbGF2b3IgaXMgc2VydmVyIHNpZGUgcGFnaW5hdGlvbiB3aGVyZSB0aGUgcmVzcG9uc2UgcGF5bG9hZCBpcyB0b28gbGFyZ2UgdG8gYmUgc3RvcmVkIGluIHRoZSBtZW1vcnlcbiAqIGFuZCB3ZSBuZWVkIHRvIGZldGNoIHRoZSBkYXRhIGZyb20gdGhlIHNlcnZlciBpbiBjaHVua3MuIEluIHRoZSBzZWNvbmQgY2FzZSB3ZSAnY291bGQnIGFsc28gY2FjaGUgdGhlIGRhdGEgaW4gdGhlIG1lbW9yeSBidXQgdGhhdCBjb3VsZCBsZWFkIHRvXG4gKiBvdGhlciBwcm9ibGVtcyBsaWtlIG1lbW9yeSBsZWFrcyBhbmQgc3RhbGUgZGF0YS4gU28gd2Ugd2lsbCBub3QgY2FjaGUgdGhlIGRhdGEgaW4gdGhlIG1lbW9yeSBpbiB0aGUgc2Vjb25kIGNhc2UuXG4gKiBUaGlzIGZlYXR1cmUgaW1wbGVtZW50cyB0aGUgbG9jYWwgcGFnaW5hdGlvbi5cbiAqL1xuXG5pbXBvcnQgeyBTaWduYWwsIGNvbXB1dGVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTaWduYWxTdG9yZUZlYXR1cmUsXG4gIHNpZ25hbFN0b3JlRmVhdHVyZSxcbiAgd2l0aENvbXB1dGVkLFxuICB3aXRoU3RhdGUsXG59IGZyb20gJ0BuZ3J4L3NpZ25hbHMnO1xuaW1wb3J0IHsgRW10cHkgfSBmcm9tICcuL3NoYXJlZC9lbXB0eSc7XG5pbXBvcnQge1xuICBFbnRpdHlTaWduYWxzLFxuICBFbnRpdHlTdGF0ZSxcbiAgTmFtZWRFbnRpdHlTaWduYWxzLFxufSBmcm9tICdAbmdyeC9zaWduYWxzL2VudGl0aWVzL3NyYy9tb2RlbHMnO1xuaW1wb3J0IHsgRW50aXR5LCBjYXBpdGFsaXplIH0gZnJvbSAnLi93aXRoLWRhdGEtc2VydmljZSc7XG5cbi8vIFRoaXMgaXMgYSB2aXJ0dWFsIHBhZ2Ugd2hpY2ggaXMgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGEgcGFnaW5hdGlvbiBjb250cm9sXG5leHBvcnQgdHlwZSBQYWdlID0geyBsYWJlbDogc3RyaW5nIHwgbnVtYmVyOyB2YWx1ZTogbnVtYmVyIH07XG5cbmV4cG9ydCB0eXBlIE5hbWVkUGFnaW5hdGlvblNlcnZpY2VTdGF0ZTxcbiAgRSBleHRlbmRzIEVudGl0eSxcbiAgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZ1xuPiA9IHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgc2VsZWN0ZWRQYWdlJHtDYXBpdGFsaXplPEs+fUVudGl0aWVzYF06IEFycmF5PEU+O1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgJHtMb3dlcmNhc2U8Sz59Q3VycmVudFBhZ2VgXTogbnVtYmVyO1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgJHtMb3dlcmNhc2U8Sz59UGFnZVNpemVgXTogbnVtYmVyO1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgJHtMb3dlcmNhc2U8Sz59VG90YWxDb3VudGBdOiBudW1iZXI7XG59ICYge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGAke0xvd2VyY2FzZTxLPn1QYWdlQ291bnRgXTogbnVtYmVyO1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgJHtMb3dlcmNhc2U8Sz59UGFnZU5hdmlnYXRpb25BcnJheWBdOiBudW1iZXI7XG59ICYge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGAke0xvd2VyY2FzZTxLPn1QYWdlTmF2aWdhdGlvbkFycmF5TWF4YF06IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIE5hbWVkUGFnaW5hdGlvblNlcnZpY2VTaWduYWxzPFxuICBFIGV4dGVuZHMgRW50aXR5LFxuICBDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nXG4+ID0ge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGBzZWxlY3RlZFBhZ2Uke0NhcGl0YWxpemU8Sz59RW50aXRpZXNgXTogU2lnbmFsPEVbXT47XG59ICYge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGAke0xvd2VyY2FzZTxLPn1DdXJyZW50UGFnZWBdOiBTaWduYWw8bnVtYmVyPjtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYCR7TG93ZXJjYXNlPEs+fVBhZ2VTaXplYF06IFNpZ25hbDxudW1iZXI+O1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgJHtMb3dlcmNhc2U8Sz59VG90YWxDb3VudGBdOiBTaWduYWw8bnVtYmVyPjtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYCR7TG93ZXJjYXNlPEs+fVBhZ2VDb3VudGBdOiBTaWduYWw8bnVtYmVyPjtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYCR7TG93ZXJjYXNlPEs+fVBhZ2VOYXZpZ2F0aW9uQXJyYXlgXTogU2lnbmFsPFBhZ2VbXT47XG59ICYge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGAke0xvd2VyY2FzZTxLPn1QYWdlTmF2aWdhdGlvbkFycmF5TWF4YF06IFNpZ25hbDxudW1iZXI+O1xufTtcblxuZXhwb3J0IHR5cGUgUGFnaW5hdGlvblNlcnZpY2VTdGF0ZTxFIGV4dGVuZHMgRW50aXR5PiA9IHtcbiAgc2VsZWN0ZWRQYWdlRW50aXRpZXM6IEFycmF5PEU+O1xuICBjdXJyZW50UGFnZTogbnVtYmVyO1xuICBwYWdlU2l6ZTogbnVtYmVyO1xuICB0b3RhbENvdW50OiBudW1iZXI7XG4gIHBhZ2VDb3VudDogbnVtYmVyO1xuICBwYWdlTmF2aWdhdGlvbkFycmF5OiBQYWdlW107XG4gIHBhZ2VOYXZpZ2F0aW9uQXJyYXlNYXg6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFBhZ2luYXRpb25TZXJ2aWNlU2lnbmFsczxFIGV4dGVuZHMgRW50aXR5PiA9IHtcbiAgc2VsZWN0ZWRQYWdlRW50aXRpZXM6IFNpZ25hbDxFW10+O1xuICBjdXJyZW50UGFnZTogU2lnbmFsPG51bWJlcj47XG4gIHBhZ2VTaXplOiBTaWduYWw8bnVtYmVyPjtcbiAgdG90YWxDb3VudDogU2lnbmFsPG51bWJlcj47XG4gIHBhZ2VDb3VudDogU2lnbmFsPG51bWJlcj47XG4gIHBhZ2VOYXZpZ2F0aW9uQXJyYXk6IFNpZ25hbDxQYWdlW10+O1xuICBwYWdlTmF2aWdhdGlvbkFycmF5TWF4OiBTaWduYWw8bnVtYmVyPjtcbn07XG5cbmV4cG9ydCB0eXBlIFNldFBhZ2luYXRpb25TdGF0ZTxcbiAgRSBleHRlbmRzIEVudGl0eSxcbiAgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZyB8IHVuZGVmaW5lZFxuPiA9IENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmdcbiAgPyBOYW1lZFBhZ2luYXRpb25TZXJ2aWNlU3RhdGU8RSwgQ29sbGVjdGlvbj5cbiAgOiBQYWdpbmF0aW9uU2VydmljZVN0YXRlPEU+O1xuXG5leHBvcnQgZnVuY3Rpb24gd2l0aFBhZ2luYXRpb248XG4gIEUgZXh0ZW5kcyBFbnRpdHksXG4gIENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmdcbj4ob3B0aW9uczoge1xuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uO1xufSk6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAge1xuICAgIHN0YXRlOiBFbXRweTtcbiAgICBzaWduYWxzOiBOYW1lZEVudGl0eVNpZ25hbHM8RSwgQ29sbGVjdGlvbj47XG4gICAgbWV0aG9kczogRW10cHk7XG4gIH0sXG4gIHtcbiAgICBzdGF0ZTogTmFtZWRQYWdpbmF0aW9uU2VydmljZVN0YXRlPEUsIENvbGxlY3Rpb24+O1xuICAgIHNpZ25hbHM6IE5hbWVkUGFnaW5hdGlvblNlcnZpY2VTaWduYWxzPEUsIENvbGxlY3Rpb24+O1xuICAgIG1ldGhvZHM6IEVtdHB5O1xuICB9XG4+O1xuXG5leHBvcnQgZnVuY3Rpb24gd2l0aFBhZ2luYXRpb248RSBleHRlbmRzIEVudGl0eT4oKTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICB7XG4gICAgc3RhdGU6IEVudGl0eVN0YXRlPEU+O1xuICAgIHNpZ25hbHM6IEVudGl0eVNpZ25hbHM8RT47XG4gICAgbWV0aG9kczogRW10cHk7XG4gIH0sXG4gIHtcbiAgICBzdGF0ZTogUGFnaW5hdGlvblNlcnZpY2VTdGF0ZTxFPjtcbiAgICBzaWduYWxzOiBQYWdpbmF0aW9uU2VydmljZVNpZ25hbHM8RT47XG4gICAgbWV0aG9kczogRW10cHk7XG4gIH1cbj47XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoUGFnaW5hdGlvbjxcbiAgRSBleHRlbmRzIEVudGl0eSxcbiAgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZ1xuPihvcHRpb25zPzogeyBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uIH0pOiBTaWduYWxTdG9yZUZlYXR1cmU8YW55LCBhbnk+IHtcbiAgY29uc3Qge1xuICAgIHBhZ2VLZXksXG4gICAgcGFnZVNpemVLZXksXG4gICAgZW50aXRpZXNLZXksXG4gICAgc2VsZWN0ZWRQYWdlRW50aXRpZXNLZXksXG4gICAgdG90YWxDb3VudEtleSxcbiAgICBwYWdlQ291bnRLZXksXG4gICAgcGFnZU5hdmlnYXRpb25BcnJheU1heEtleSxcbiAgICBwYWdlTmF2aWdhdGlvbkFycmF5S2V5LFxuICB9ID0gY3JlYXRlUGFnaW5hdGlvbktleXM8Q29sbGVjdGlvbj4ob3B0aW9ucyk7XG5cbiAgcmV0dXJuIHNpZ25hbFN0b3JlRmVhdHVyZShcbiAgICB3aXRoU3RhdGUoe1xuICAgICAgW3BhZ2VLZXldOiAxLFxuICAgICAgW3BhZ2VTaXplS2V5XTogMTAsXG4gICAgICBbcGFnZU5hdmlnYXRpb25BcnJheU1heEtleV06IDcsXG4gICAgfSksXG4gICAgd2l0aENvbXB1dGVkKChzdG9yZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHtcbiAgICAgIGNvbnN0IGVudGl0aWVzID0gc3RvcmVbZW50aXRpZXNLZXldIGFzIFNpZ25hbDxFW10+O1xuICAgICAgY29uc3QgcGFnZSA9IHN0b3JlW3BhZ2VLZXldIGFzIFNpZ25hbDxudW1iZXI+O1xuICAgICAgY29uc3QgcGFnZVNpemUgPSBzdG9yZVtwYWdlU2l6ZUtleV0gYXMgU2lnbmFsPG51bWJlcj47XG4gICAgICBjb25zdCBwYWdlTmF2aWdhdGlvbkFycmF5TWF4ID0gc3RvcmVbXG4gICAgICAgIHBhZ2VOYXZpZ2F0aW9uQXJyYXlNYXhLZXlcbiAgICAgIF0gYXMgU2lnbmFsPG51bWJlcj47XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC8vIFRoZSBkZXJpdmVkIGVuaXRpdGVzIHdoaWNoIGFyZSBkaXNwbGF5ZWQgb24gdGhlIGN1cnJlbnQgcGFnZVxuICAgICAgICBbc2VsZWN0ZWRQYWdlRW50aXRpZXNLZXldOiBjb21wdXRlZDxFW10+KCgpID0+IHtcbiAgICAgICAgICBjb25zdCBwYWdlU2l6ZVZhbHVlID0gcGFnZVNpemUoKTtcbiAgICAgICAgICBjb25zdCBwYWdlVmFsdWUgPSBwYWdlKCk7XG5cbiAgICAgICAgICAvLyBJZiB0aGUgcGFnZSBpcyBncmVhdGVyIHRoYW4gdGhlIHRvdGFsIG51bWJlciBvZiBwYWdlc1xuICAgICAgICAgIC8vIHdlIHNob3VsZCByZXR1cm4gYW4gZW1wdHkgYXJyYXlcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBwYWdlVmFsdWUgPCAwIHx8XG4gICAgICAgICAgICBwYWdlU2l6ZVZhbHVlID09PSAwIHx8XG4gICAgICAgICAgICBwYWdlVmFsdWUgPiBNYXRoLmNlaWwoZW50aXRpZXMoKS5sZW5ndGggLyBwYWdlU2l6ZVZhbHVlKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgcmV0dXJuIFtdIGFzIEVbXTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gZW50aXRpZXMoKS5zbGljZShcbiAgICAgICAgICAgIChwYWdlVmFsdWUgLSAxKSAqIHBhZ2VTaXplVmFsdWUsXG4gICAgICAgICAgICBwYWdlVmFsdWUgKiBwYWdlU2l6ZVZhbHVlXG4gICAgICAgICAgKSBhcyBFW107XG4gICAgICAgIH0pLFxuICAgICAgICBbdG90YWxDb3VudEtleV06IGNvbXB1dGVkKCgpID0+IGVudGl0aWVzKCkubGVuZ3RoKSxcbiAgICAgICAgW3BhZ2VDb3VudEtleV06IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgICBjb25zdCB0b3RhbENvdW50VmFsdWUgPSBlbnRpdGllcygpLmxlbmd0aDtcbiAgICAgICAgICBjb25zdCBwYWdlU2l6ZVZhbHVlID0gcGFnZVNpemUoKTtcblxuICAgICAgICAgIGlmICh0b3RhbENvdW50VmFsdWUgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBNYXRoLmNlaWwodG90YWxDb3VudFZhbHVlIC8gcGFnZVNpemVWYWx1ZSk7XG4gICAgICAgIH0pLFxuICAgICAgICBbcGFnZU5hdmlnYXRpb25BcnJheUtleV06IGNvbXB1dGVkKCgpID0+XG4gICAgICAgICAgY3JlYXRlUGFnZUFycmF5KFxuICAgICAgICAgICAgcGFnZSgpLFxuICAgICAgICAgICAgcGFnZVNpemUoKSxcbiAgICAgICAgICAgIGVudGl0aWVzKCkubGVuZ3RoLFxuICAgICAgICAgICAgcGFnZU5hdmlnYXRpb25BcnJheU1heCgpXG4gICAgICAgICAgKVxuICAgICAgICApLFxuICAgICAgfTtcbiAgICB9KVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ290b1BhZ2U8RSBleHRlbmRzIEVudGl0eSwgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4oXG4gIHBhZ2U6IG51bWJlcixcbiAgb3B0aW9ucz86IHtcbiAgICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uO1xuICB9XG4pOiBQYXJ0aWFsPFNldFBhZ2luYXRpb25TdGF0ZTxFLCBDb2xsZWN0aW9uPj4ge1xuICBjb25zdCB7IHBhZ2VLZXkgfSA9IGNyZWF0ZVBhZ2luYXRpb25LZXlzPENvbGxlY3Rpb24+KG9wdGlvbnMpO1xuXG4gIHJldHVybiB7XG4gICAgW3BhZ2VLZXldOiBwYWdlLFxuICB9IGFzIFBhcnRpYWw8U2V0UGFnaW5hdGlvblN0YXRlPEUsIENvbGxlY3Rpb24+Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFBhZ2VTaXplPEUgZXh0ZW5kcyBFbnRpdHksIENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmc+KFxuICBwYWdlU2l6ZTogbnVtYmVyLFxuICBvcHRpb25zPzoge1xuICAgIGNvbGxlY3Rpb246IENvbGxlY3Rpb247XG4gIH1cbik6IFBhcnRpYWw8U2V0UGFnaW5hdGlvblN0YXRlPEUsIENvbGxlY3Rpb24+PiB7XG4gIGNvbnN0IHsgcGFnZVNpemVLZXkgfSA9IGNyZWF0ZVBhZ2luYXRpb25LZXlzPENvbGxlY3Rpb24+KG9wdGlvbnMpO1xuXG4gIHJldHVybiB7XG4gICAgW3BhZ2VTaXplS2V5XTogcGFnZVNpemUsXG4gIH0gYXMgUGFydGlhbDxTZXRQYWdpbmF0aW9uU3RhdGU8RSwgQ29sbGVjdGlvbj4+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbmV4dFBhZ2U8XG4gIEUgZXh0ZW5kcyBFbnRpdHksXG4gIENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmdcbj4ob3B0aW9ucz86IHtcbiAgY29sbGVjdGlvbjogQ29sbGVjdGlvbjtcbn0pOiBQYXJ0aWFsPFNldFBhZ2luYXRpb25TdGF0ZTxFLCBDb2xsZWN0aW9uPj4ge1xuICBjb25zdCB7IHBhZ2VLZXkgfSA9IGNyZWF0ZVBhZ2luYXRpb25LZXlzPENvbGxlY3Rpb24+KG9wdGlvbnMpO1xuXG4gIHJldHVybiB7XG4gICAgW3BhZ2VLZXldOiAoY3VycmVudFBhZ2U6IG51bWJlcikgPT4gY3VycmVudFBhZ2UgKyAxLFxuICB9IGFzIFBhcnRpYWw8U2V0UGFnaW5hdGlvblN0YXRlPEUsIENvbGxlY3Rpb24+Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByZXZpb3VzUGFnZTxcbiAgRSBleHRlbmRzIEVudGl0eSxcbiAgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZ1xuPihvcHRpb25zPzoge1xuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uO1xufSk6IFBhcnRpYWw8U2V0UGFnaW5hdGlvblN0YXRlPEUsIENvbGxlY3Rpb24+PiB7XG4gIGNvbnN0IHsgcGFnZUtleSB9ID0gY3JlYXRlUGFnaW5hdGlvbktleXM8Q29sbGVjdGlvbj4ob3B0aW9ucyk7XG5cbiAgcmV0dXJuIHtcbiAgICBbcGFnZUtleV06IChjdXJyZW50UGFnZTogbnVtYmVyKSA9PiBNYXRoLm1heChjdXJyZW50UGFnZSAtIDEsIDEpLFxuICB9IGFzIFBhcnRpYWw8U2V0UGFnaW5hdGlvblN0YXRlPEUsIENvbGxlY3Rpb24+Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZpcnN0UGFnZTxcbiAgRSBleHRlbmRzIEVudGl0eSxcbiAgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZ1xuPihvcHRpb25zPzoge1xuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uO1xufSk6IFBhcnRpYWw8U2V0UGFnaW5hdGlvblN0YXRlPEUsIENvbGxlY3Rpb24+PiB7XG4gIGNvbnN0IHsgcGFnZUtleSB9ID0gY3JlYXRlUGFnaW5hdGlvbktleXM8Q29sbGVjdGlvbj4ob3B0aW9ucyk7XG5cbiAgcmV0dXJuIHtcbiAgICBbcGFnZUtleV06IDEsXG4gIH0gYXMgUGFydGlhbDxTZXRQYWdpbmF0aW9uU3RhdGU8RSwgQ29sbGVjdGlvbj4+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0TWF4UGFnZU5hdmlnYXRpb25BcnJheUl0ZW1zPFxuICBFIGV4dGVuZHMgRW50aXR5LFxuICBDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nXG4+KFxuICBtYXhQYWdlTmF2aWdhdGlvbkFycmF5SXRlbXM6IG51bWJlcixcbiAgb3B0aW9ucz86IHtcbiAgICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uO1xuICB9XG4pOiBQYXJ0aWFsPFNldFBhZ2luYXRpb25TdGF0ZTxFLCBDb2xsZWN0aW9uPj4ge1xuICBjb25zdCB7IHBhZ2VOYXZpZ2F0aW9uQXJyYXlNYXhLZXkgfSA9XG4gICAgY3JlYXRlUGFnaW5hdGlvbktleXM8Q29sbGVjdGlvbj4ob3B0aW9ucyk7XG5cbiAgcmV0dXJuIHtcbiAgICBbcGFnZU5hdmlnYXRpb25BcnJheU1heEtleV06IG1heFBhZ2VOYXZpZ2F0aW9uQXJyYXlJdGVtcyxcbiAgfSBhcyBQYXJ0aWFsPFNldFBhZ2luYXRpb25TdGF0ZTxFLCBDb2xsZWN0aW9uPj47XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVBhZ2luYXRpb25LZXlzPENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmc+KFxuICBvcHRpb25zOiB7IGNvbGxlY3Rpb246IENvbGxlY3Rpb24gfSB8IHVuZGVmaW5lZFxuKSB7XG4gIGNvbnN0IGVudGl0aWVzS2V5ID0gb3B0aW9ucz8uY29sbGVjdGlvblxuICAgID8gYCR7b3B0aW9ucy5jb2xsZWN0aW9ufUVudGl0aWVzYFxuICAgIDogJ2VudGl0aWVzJztcbiAgY29uc3Qgc2VsZWN0ZWRQYWdlRW50aXRpZXNLZXkgPSBvcHRpb25zPy5jb2xsZWN0aW9uXG4gICAgPyBgc2VsZWN0ZWRQYWdlJHtjYXBpdGFsaXplKG9wdGlvbnM/LmNvbGxlY3Rpb24pfUVudGl0aWVzYFxuICAgIDogJ3NlbGVjdGVkUGFnZUVudGl0aWVzJztcbiAgY29uc3QgcGFnZUtleSA9IG9wdGlvbnM/LmNvbGxlY3Rpb24gPyBgJHtvcHRpb25zLmNvbGxlY3Rpb259Q3VycmVudFBhZ2VgIDogJ2N1cnJlbnRQYWdlJztcbiAgY29uc3QgcGFnZVNpemVLZXkgPSBvcHRpb25zPy5jb2xsZWN0aW9uXG4gICAgPyBgJHtvcHRpb25zLmNvbGxlY3Rpb259UGFnZVNpemVgXG4gICAgOiAncGFnZVNpemUnO1xuICBjb25zdCB0b3RhbENvdW50S2V5ID0gb3B0aW9ucz8uY29sbGVjdGlvblxuICAgID8gYCR7b3B0aW9ucy5jb2xsZWN0aW9ufVRvdGFsQ291bnRgXG4gICAgOiAndG90YWxDb3VudCc7XG4gIGNvbnN0IHBhZ2VDb3VudEtleSA9IG9wdGlvbnM/LmNvbGxlY3Rpb25cbiAgICA/IGAke29wdGlvbnMuY29sbGVjdGlvbn1QYWdlQ291bnRgXG4gICAgOiAncGFnZUNvdW50JztcbiAgY29uc3QgcGFnZU5hdmlnYXRpb25BcnJheU1heEtleSA9IG9wdGlvbnM/LmNvbGxlY3Rpb25cbiAgICA/IGAke29wdGlvbnMuY29sbGVjdGlvbn1QYWdlTmF2aWdhdGlvbkFycmF5TWF4YFxuICAgIDogJ3BhZ2VOYXZpZ2F0aW9uQXJyYXlNYXgnO1xuICBjb25zdCBwYWdlTmF2aWdhdGlvbkFycmF5S2V5ID0gb3B0aW9ucz8uY29sbGVjdGlvblxuICAgID8gYCR7b3B0aW9ucy5jb2xsZWN0aW9ufVBhZ2VOYXZpZ2F0aW9uQXJyYXlgXG4gICAgOiAncGFnZU5hdmlnYXRpb25BcnJheSc7XG4gIHJldHVybiB7XG4gICAgcGFnZUtleSxcbiAgICBwYWdlU2l6ZUtleSxcbiAgICBlbnRpdGllc0tleSxcbiAgICBzZWxlY3RlZFBhZ2VFbnRpdGllc0tleSxcbiAgICB0b3RhbENvdW50S2V5LFxuICAgIHBhZ2VDb3VudEtleSxcbiAgICBwYWdlTmF2aWdhdGlvbkFycmF5S2V5LFxuICAgIHBhZ2VOYXZpZ2F0aW9uQXJyYXlNYXhLZXksXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQYWdlQXJyYXkoXG4gIGN1cnJlbnRQYWdlOiBudW1iZXIsXG4gIGl0ZW1zUGVyUGFnZTogbnVtYmVyLFxuICB0b3RhbEl0ZW1zOiBudW1iZXIsXG4gIHBhZ2luYXRpb25SYW5nZTogbnVtYmVyXG4pOiBQYWdlW10ge1xuICAvLyBDb252ZXJ0IHBhZ2luYXRpb25SYW5nZSB0byBudW1iZXIgaW4gY2FzZSBpdCdzIGEgc3RyaW5nXG4gIHBhZ2luYXRpb25SYW5nZSA9ICtwYWdpbmF0aW9uUmFuZ2U7XG5cbiAgLy8gQ2FsY3VsYXRlIHRvdGFsIG51bWJlciBvZiBwYWdlc1xuICBjb25zdCB0b3RhbFBhZ2VzID0gTWF0aC5tYXgoTWF0aC5jZWlsKHRvdGFsSXRlbXMgLyBpdGVtc1BlclBhZ2UpLCAxKTtcbiAgY29uc3QgaGFsZldheSA9IE1hdGguY2VpbChwYWdpbmF0aW9uUmFuZ2UgLyAyKTtcblxuICBjb25zdCBpc1N0YXJ0ID0gY3VycmVudFBhZ2UgPD0gaGFsZldheTtcbiAgY29uc3QgaXNFbmQgPSB0b3RhbFBhZ2VzIC0gaGFsZldheSA8IGN1cnJlbnRQYWdlO1xuICBjb25zdCBpc01pZGRsZSA9ICFpc1N0YXJ0ICYmICFpc0VuZDtcblxuICBjb25zdCBlbGxpcHNlc05lZWRlZCA9IHBhZ2luYXRpb25SYW5nZSA8IHRvdGFsUGFnZXM7XG4gIGNvbnN0IHBhZ2VzOiBQYWdlW10gPSBbXTtcblxuICBmb3IgKGxldCBpID0gMTsgaSA8PSB0b3RhbFBhZ2VzICYmIGkgPD0gcGFnaW5hdGlvblJhbmdlOyBpKyspIHtcbiAgICBsZXQgcGFnZU51bWJlciA9IGk7XG5cbiAgICBpZiAoaSA9PT0gcGFnaW5hdGlvblJhbmdlKSB7XG4gICAgICBwYWdlTnVtYmVyID0gdG90YWxQYWdlcztcbiAgICB9IGVsc2UgaWYgKGVsbGlwc2VzTmVlZGVkKSB7XG4gICAgICBpZiAoaXNFbmQpIHtcbiAgICAgICAgcGFnZU51bWJlciA9IHRvdGFsUGFnZXMgLSBwYWdpbmF0aW9uUmFuZ2UgKyBpO1xuICAgICAgfSBlbHNlIGlmIChpc01pZGRsZSkge1xuICAgICAgICBwYWdlTnVtYmVyID0gY3VycmVudFBhZ2UgLSBoYWxmV2F5ICsgaTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBvcGVuaW5nRWxsaXBzZXNOZWVkZWQgPSBpID09PSAyICYmIChpc01pZGRsZSB8fCBpc0VuZCk7XG4gICAgY29uc3QgY2xvc2luZ0VsbGlwc2VzTmVlZGVkID1cbiAgICAgIGkgPT09IHBhZ2luYXRpb25SYW5nZSAtIDEgJiYgKGlzTWlkZGxlIHx8IGlzU3RhcnQpO1xuXG4gICAgY29uc3QgbGFiZWwgPVxuICAgICAgZWxsaXBzZXNOZWVkZWQgJiYgKG9wZW5pbmdFbGxpcHNlc05lZWRlZCB8fCBjbG9zaW5nRWxsaXBzZXNOZWVkZWQpXG4gICAgICAgID8gJy4uLidcbiAgICAgICAgOiBwYWdlTnVtYmVyO1xuXG4gICAgcGFnZXMucHVzaCh7IGxhYmVsLCB2YWx1ZTogcGFnZU51bWJlciB9KTtcbiAgfVxuXG4gIHJldHVybiBwYWdlcztcbn1cbiJdfQ==
|
|
209
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1wYWdpbmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZ3J4LXRvb2xraXQvc3JjL2xpYi93aXRoLXBhZ2luYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBR0wsVUFBVSxFQUNWLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUErSGpELE1BQU0sVUFBVSxjQUFjLENBQStCLE9BRzVEO0lBQ0MsTUFBTSxFQUNKLE9BQU8sRUFDUCxXQUFXLEVBQ1gsV0FBVyxFQUNYLHVCQUF1QixFQUN2QixhQUFhLEVBQ2IsWUFBWSxFQUNaLHlCQUF5QixFQUN6QixzQkFBc0IsRUFDdEIsY0FBYyxFQUNkLFdBQVcsRUFDWCxlQUFlLEVBQ2YsV0FBVyxFQUNYLFlBQVksRUFDWixXQUFXLEVBQ1gsY0FBYyxFQUNkLGtCQUFrQixHQUNuQixHQUFHLG9CQUFvQixDQUFhLE9BQU8sQ0FBQyxDQUFDO0lBRTlDLE9BQU8sa0JBQWtCLENBQ3ZCLFNBQVMsQ0FBQztRQUNSLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNaLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRTtRQUNqQixDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQztLQUMvQixDQUFDLEVBQ0YsWUFBWSxDQUFDLENBQUMsS0FBOEIsRUFBRSxFQUFFO1FBQzlDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQWdCLENBQUM7UUFDbkQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBbUIsQ0FBQztRQUM5QyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFtQixD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b21lcyBpbiB0d28gZmxhdm9ycyB0aGUgZmlyc3Qgb25lIGlzIGxvY2FsIHBhZ2luYXRpb24gb3IgaW4gbWVtb3J5IHBhZ2luYXRpb24uIEZvciBleGFtcGxlIHdlIGhhdmUgMjAwMCBpdGVtcyB3aGljaCB3ZSB3YW50XG4gKiB0byBkaXNwbGF5IGluIGEgdGFibGUgYW5kIHRoZSByZXNwb25zZSBwYXlsb2FkIGlzIHNtYWxsIGVub3VnaCB0byBiZSBzdG9yZWQgaW4gdGhlIG1lbW9yeS4gQnV0IHdlIGNhbiBub3QgZGlzcGxheSBhbGwgMjAwMCBpdGVtcyBhdCBvbmNlXG4gKiBzbyB3ZSBuZWVkIHRvIHBhZ2luYXRlIHRoZSBkYXRhLiBUaGUgc2Vjb25kIGZsYXZvciBpcyBzZXJ2ZXIgc2lkZSBwYWdpbmF0aW9uIHdoZXJlIHRoZSByZXNwb25zZSBwYXlsb2FkIGlzIHRvbyBsYXJnZSB0byBiZSBzdG9yZWQgaW4gdGhlIG1lbW9yeVxuICogYW5kIHdlIG5lZWQgdG8gZmV0Y2ggdGhlIGRhdGEgZnJvbSB0aGUgc2VydmVyIGluIGNodW5rcy4gSW4gdGhlIHNlY29uZCBjYXNlIHdlICdjb3VsZCcgYWxzbyBjYWNoZSB0aGUgZGF0YSBpbiB0aGUgbWVtb3J5IGJ1dCB0aGF0IGNvdWxkIGxlYWQgdG9cbiAqIG90aGVyIHByb2JsZW1zIGxpa2UgbWVtb3J5IGxlYWtzIGFuZCBzdGFsZSBkYXRhLiBTbyB3ZSB3aWxsIG5vdCBjYWNoZSB0aGUgZGF0YSBpbiB0aGUgbWVtb3J5IGluIHRoZSBzZWNvbmQgY2FzZS5cbiAqIFRoaXMgZmVhdHVyZSBpbXBsZW1lbnRzIHRoZSBsb2NhbCBwYWdpbmF0aW9uLlxuICovXG5cbmltcG9ydCB7IFNpZ25hbCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNpZ25hbFN0b3JlRmVhdHVyZSxcbiAgU3RhdGVTaWduYWwsXG4gIHBhdGNoU3RhdGUsXG4gIHNpZ25hbFN0b3JlRmVhdHVyZSxcbiAgd2l0aENvbXB1dGVkLFxuICB3aXRoTWV0aG9kcyxcbiAgd2l0aFN0YXRlLFxufSBmcm9tICdAbmdyeC9zaWduYWxzJztcbmltcG9ydCB7IGNhcGl0YWxpemUgfSBmcm9tICcuL3dpdGgtZGF0YS1zZXJ2aWNlJztcbmltcG9ydCB7XG4gIEVudGl0eUNvbXB1dGVkLFxuICBFbnRpdHlTdGF0ZSxcbiAgTmFtZWRFbnRpdHlDb21wdXRlZCxcbn0gZnJvbSAnLi9zaGFyZWQvc2lnbmFsLXN0b3JlLW1vZGVscyc7XG5cbi8vIFRoaXMgaXMgYSB2aXJ0dWFsIHBhZ2Ugd2hpY2ggaXMgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGEgcGFnaW5hdGlvbiBjb250cm9sXG5leHBvcnQgdHlwZSBQYWdlID0geyBsYWJlbDogc3RyaW5nIHwgbnVtYmVyOyB2YWx1ZTogbnVtYmVyIH07XG5cbmV4cG9ydCB0eXBlIE5hbWVkUGFnaW5hdGlvblNlcnZpY2VTdGF0ZTxFLCBDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nPiA9IHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgc2VsZWN0ZWRQYWdlJHtDYXBpdGFsaXplPEs+fUVudGl0aWVzYF06IEFycmF5PEU+O1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgJHtMb3dlcmNhc2U8Sz59Q3VycmVudFBhZ2VgXTogbnVtYmVyO1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgJHtMb3dlcmNhc2U8Sz59UGFnZVNpemVgXTogbnVtYmVyO1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgJHtMb3dlcmNhc2U8Sz59VG90YWxDb3VudGBdOiBudW1iZXI7XG59ICYge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGAke0xvd2VyY2FzZTxLPn1QYWdlQ291bnRgXTogbnVtYmVyO1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgJHtMb3dlcmNhc2U8Sz59UGFnZU5hdmlnYXRpb25BcnJheWBdOiBudW1iZXI7XG59ICYge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGAke0xvd2VyY2FzZTxLPn1QYWdlTmF2aWdhdGlvbkFycmF5TWF4YF06IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIE5hbWVkUGFnaW5hdGlvblNlcnZpY2VTaWduYWxzPEUsIENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmc+ID0ge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGBzZWxlY3RlZFBhZ2Uke0NhcGl0YWxpemU8Sz59RW50aXRpZXNgXTogU2lnbmFsPEVbXT47XG59ICYge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGAke0xvd2VyY2FzZTxLPn1DdXJyZW50UGFnZWBdOiBTaWduYWw8bnVtYmVyPjtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYCR7TG93ZXJjYXNlPEs+fVBhZ2VTaXplYF06IFNpZ25hbDxudW1iZXI+O1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgJHtMb3dlcmNhc2U8Sz59VG90YWxDb3VudGBdOiBTaWduYWw8bnVtYmVyPjtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYCR7TG93ZXJjYXNlPEs+fVBhZ2VDb3VudGBdOiBTaWduYWw8bnVtYmVyPjtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYCR7TG93ZXJjYXNlPEs+fVBhZ2VOYXZpZ2F0aW9uQXJyYXlgXTogU2lnbmFsPFBhZ2VbXT47XG59ICYge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGAke0xvd2VyY2FzZTxLPn1QYWdlTmF2aWdhdGlvbkFycmF5TWF4YF06IFNpZ25hbDxudW1iZXI+O1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgaGFzTmV4dCR7Q2FwaXRhbGl6ZTxLPn1QYWdlYF06IFNpZ25hbDxib29sZWFuPjtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYGhhc1ByZXZpb3VzJHtDYXBpdGFsaXplPEs+fVBhZ2VgXTogU2lnbmFsPGJvb2xlYW4+O1xufTtcblxuZXhwb3J0IHR5cGUgTmFtZWRQYWdpbmF0aW9uU2VydmljZU1ldGhvZHM8Q29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4gPSB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYHNldCR7Q2FwaXRhbGl6ZTxLPn1QYWdlU2l6ZWBdOiAoc2l6ZTogbnVtYmVyKSA9PiB2b2lkO1xufSAmIHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgbmV4dCR7Q2FwaXRhbGl6ZTxLPn1QYWdlYF06ICgpID0+IHZvaWQ7XG59ICYge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGBwcmV2aW91cyR7Q2FwaXRhbGl6ZTxLPn1QYWdlYF06ICgpID0+IHZvaWQ7XG59ICYge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGBsYXN0JHtDYXBpdGFsaXplPEs+fVBhZ2VgXTogKCkgPT4gdm9pZDtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYGZpcnN0JHtDYXBpdGFsaXplPEs+fVBhZ2VgXTogKCkgPT4gdm9pZDtcbn0gJiB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYGdvdG8ke0NhcGl0YWxpemU8Sz59UGFnZWBdOiAocGFnZTogbnVtYmVyKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgUGFnaW5hdGlvblNlcnZpY2VTdGF0ZTxFPiA9IHtcbiAgc2VsZWN0ZWRQYWdlRW50aXRpZXM6IEFycmF5PEU+O1xuICBjdXJyZW50UGFnZTogbnVtYmVyO1xuICBwYWdlU2l6ZTogbnVtYmVyO1xuICB0b3RhbENvdW50OiBudW1iZXI7XG4gIHBhZ2VDb3VudDogbnVtYmVyO1xuICBwYWdlTmF2aWdhdGlvbkFycmF5OiBQYWdlW107XG4gIHBhZ2VOYXZpZ2F0aW9uQXJyYXlNYXg6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIFBhZ2luYXRpb25TZXJ2aWNlU2lnbmFsczxFPiA9IHtcbiAgc2VsZWN0ZWRQYWdlRW50aXRpZXM6IFNpZ25hbDxFW10+O1xuICBjdXJyZW50UGFnZTogU2lnbmFsPG51bWJlcj47XG4gIHBhZ2VTaXplOiBTaWduYWw8bnVtYmVyPjtcbiAgdG90YWxDb3VudDogU2lnbmFsPG51bWJlcj47XG4gIHBhZ2VDb3VudDogU2lnbmFsPG51bWJlcj47XG4gIHBhZ2VOYXZpZ2F0aW9uQXJyYXk6IFNpZ25hbDxQYWdlW10+O1xuICBwYWdlTmF2aWdhdGlvbkFycmF5TWF4OiBTaWduYWw8bnVtYmVyPjtcbiAgaGFzTmV4dFBhZ2U6IFNpZ25hbDxib29sZWFuPjtcbiAgaGFzUHJldmlvdXNQYWdlOiBTaWduYWw8Ym9vbGVhbj47XG59O1xuXG5leHBvcnQgdHlwZSBQYWdpbmF0aW9uU2VydmljZU1ldGhvZHMgPSB7XG4gIHNldFBhZ2VTaXplOiAoc2l6ZTogbnVtYmVyKSA9PiB2b2lkO1xuICBuZXh0UGFnZUtleTogKCkgPT4gdm9pZDtcbiAgcHJldmlvdXNQYWdlOiAoKSA9PiB2b2lkO1xuICBsYXN0UGFnZTogKCkgPT4gdm9pZDtcbiAgZmlyc3RQYWdlOiAoKSA9PiB2b2lkO1xuICBnb3RvUGFnZTogKHBhZ2U6IG51bWJlcikgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIFNldFBhZ2luYXRpb25TdGF0ZTxcbiAgRSxcbiAgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZyB8IHVuZGVmaW5lZFxuPiA9IENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmdcbiAgPyBOYW1lZFBhZ2luYXRpb25TZXJ2aWNlU3RhdGU8RSwgQ29sbGVjdGlvbj5cbiAgOiBQYWdpbmF0aW9uU2VydmljZVN0YXRlPEU+O1xuXG5leHBvcnQgZnVuY3Rpb24gd2l0aFBhZ2luYXRpb248RSwgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4ob3B0aW9uczoge1xuICBlbnRpdHk6IEU7XG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb247XG59KTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICB7XG4gICAgc3RhdGU6IHt9O1xuICAgIGNvbXB1dGVkOiBOYW1lZEVudGl0eUNvbXB1dGVkPEUsIENvbGxlY3Rpb24+O1xuICAgIG1ldGhvZHM6IHt9O1xuICB9LFxuICB7XG4gICAgc3RhdGU6IE5hbWVkUGFnaW5hdGlvblNlcnZpY2VTdGF0ZTxFLCBDb2xsZWN0aW9uPjtcbiAgICBjb21wdXRlZDogTmFtZWRQYWdpbmF0aW9uU2VydmljZVNpZ25hbHM8RSwgQ29sbGVjdGlvbj47XG4gICAgbWV0aG9kczogTmFtZWRQYWdpbmF0aW9uU2VydmljZU1ldGhvZHM8Q29sbGVjdGlvbj47XG4gIH1cbj47XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoUGFnaW5hdGlvbjxFPigpOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gIHtcbiAgICBzdGF0ZTogRW50aXR5U3RhdGU8RT47XG4gICAgY29tcHV0ZWQ6IEVudGl0eUNvbXB1dGVkPEU+O1xuICAgIG1ldGhvZHM6IHt9O1xuICB9LFxuICB7XG4gICAgc3RhdGU6IFBhZ2luYXRpb25TZXJ2aWNlU3RhdGU8RT47XG4gICAgY29tcHV0ZWQ6IFBhZ2luYXRpb25TZXJ2aWNlU2lnbmFsczxFPjtcbiAgICBtZXRob2RzOiBQYWdpbmF0aW9uU2VydmljZU1ldGhvZHM7XG4gIH1cbj47XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoUGFnaW5hdGlvbjxFLCBDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nPihvcHRpb25zPzoge1xuICBlbnRpdHk6IEU7XG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb247XG59KTogU2lnbmFsU3RvcmVGZWF0dXJlPGFueSwgYW55PiB7XG4gIGNvbnN0IHtcbiAgICBwYWdlS2V5LFxuICAgIHBhZ2VTaXplS2V5LFxuICAgIGVudGl0aWVzS2V5LFxuICAgIHNlbGVjdGVkUGFnZUVudGl0aWVzS2V5LFxuICAgIHRvdGFsQ291bnRLZXksXG4gICAgcGFnZUNvdW50S2V5LFxuICAgIHBhZ2VOYXZpZ2F0aW9uQXJyYXlNYXhLZXksXG4gICAgcGFnZU5hdmlnYXRpb25BcnJheUtleSxcbiAgICBzZXRQYWdlU2l6ZUtleSxcbiAgICBuZXh0UGFnZUtleSxcbiAgICBwcmV2aW91c1BhZ2VLZXksXG4gICAgbGFzdFBhZ2VLZXksXG4gICAgZmlyc3RQYWdlS2V5LFxuICAgIGdvdG9QYWdlS2V5LFxuICAgIGhhc05leHRQYWdlS2V5LFxuICAgIGhhc1ByZXZpb3VzUGFnZUtleSxcbiAgfSA9IGNyZWF0ZVBhZ2luYXRpb25LZXlzPENvbGxlY3Rpb24+KG9wdGlvbnMpO1xuXG4gIHJldHVybiBzaWduYWxTdG9yZUZlYXR1cmUoXG4gICAgd2l0aFN0YXRlKHtcbiAgICAgIFtwYWdlS2V5XTogMCxcbiAgICAgIFtwYWdlU2l6ZUtleV06IDEwLFxuICAgICAgW3BhZ2VOYXZpZ2F0aW9uQXJyYXlNYXhLZXldOiA3LFxuICAgIH0pLFxuICAgIHdpdGhDb21wdXRlZCgoc3RvcmU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB7XG4gICAgICBjb25zdCBlbnRpdGllcyA9IHN0b3JlW2VudGl0aWVzS2V5XSBhcyBTaWduYWw8RVtdPjtcbiAgICAgIGNvbnN0IHBhZ2UgPSBzdG9yZVtwYWdlS2V5XSBhcyBTaWduYWw8bnVtYmVyPjtcbiAgICAgIGNvbnN0IHBhZ2VTaXplID0gc3RvcmVbcGFnZVNpemVLZXldIGFzIFNpZ25hbDxudW1iZXI+O1xuICAgICAgY29uc3QgcGFnZU5hdmlnYXRpb25BcnJheU1heCA9IHN0b3JlW1xuICAgICAgICBwYWdlTmF2aWdhdGlvbkFycmF5TWF4S2V5XG4gICAgICBdIGFzIFNpZ25hbDxudW1iZXI+O1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAvLyBUaGUgZGVyaXZlZCBlbml0aXRlcyB3aGljaCBhcmUgZGlzcGxheWVkIG9uIHRoZSBjdXJyZW50IHBhZ2VcbiAgICAgICAgW3NlbGVjdGVkUGFnZUVudGl0aWVzS2V5XTogY29tcHV0ZWQ8RVtdPigoKSA9PiB7XG4gICAgICAgICAgY29uc3QgcGFnZVNpemVWYWx1ZSA9IHBhZ2VTaXplKCk7XG4gICAgICAgICAgY29uc3QgcGFnZVZhbHVlID0gcGFnZSgpO1xuXG4gICAgICAgICAgcmV0dXJuIGVudGl0aWVzKCkuc2xpY2UoXG4gICAgICAgICAgICBwYWdlVmFsdWUgKiBwYWdlU2l6ZVZhbHVlLFxuICAgICAgICAgICAgKHBhZ2VWYWx1ZSArIDEpICogcGFnZVNpemVWYWx1ZVxuICAgICAgICAgICkgYXMgRVtdO1xuICAgICAgICB9KSxcbiAgICAgICAgW3RvdGFsQ291bnRLZXldOiBjb21wdXRlZCgoKSA9PiBlbnRpdGllcygpLmxlbmd0aCksXG4gICAgICAgIFtwYWdlQ291bnRLZXldOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgdG90YWxDb3VudFZhbHVlID0gZW50aXRpZXMoKS5sZW5ndGg7XG4gICAgICAgICAgY29uc3QgcGFnZVNpemVWYWx1ZSA9IHBhZ2VTaXplKCk7XG5cbiAgICAgICAgICBpZiAodG90YWxDb3VudFZhbHVlID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gTWF0aC5jZWlsKHRvdGFsQ291bnRWYWx1ZSAvIHBhZ2VTaXplVmFsdWUpO1xuICAgICAgICB9KSxcbiAgICAgICAgW3BhZ2VOYXZpZ2F0aW9uQXJyYXlLZXldOiBjb21wdXRlZCgoKSA9PlxuICAgICAgICAgIGNyZWF0ZVBhZ2VBcnJheShcbiAgICAgICAgICAgIHBhZ2UoKSxcbiAgICAgICAgICAgIHBhZ2VTaXplKCksXG4gICAgICAgICAgICBlbnRpdGllcygpLmxlbmd0aCxcbiAgICAgICAgICAgIHBhZ2VOYXZpZ2F0aW9uQXJyYXlNYXgoKVxuICAgICAgICAgIClcbiAgICAgICAgKSxcblxuICAgICAgICBbaGFzTmV4dFBhZ2VLZXldOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHBhZ2UoKSA8IHBhZ2VTaXplKCk7XG4gICAgICAgIH0pLFxuXG4gICAgICAgIFtoYXNQcmV2aW91c1BhZ2VLZXldOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHBhZ2UoKSA+IDE7XG4gICAgICAgIH0pLFxuICAgICAgfTtcbiAgICB9KSxcbiAgICB3aXRoTWV0aG9kcygoc3RvcmU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ICYgU3RhdGVTaWduYWw8b2JqZWN0PikgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgW3NldFBhZ2VTaXplS2V5XTogKHNpemU6IG51bWJlcikgPT4ge1xuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHNldFBhZ2VTaXplKHNpemUsIG9wdGlvbnMpKTtcbiAgICAgICAgfSxcbiAgICAgICAgW25leHRQYWdlS2V5XTogKCkgPT4ge1xuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIG5leHRQYWdlKG9wdGlvbnMpKTtcbiAgICAgICAgfSxcblxuICAgICAgICBbcHJldmlvdXNQYWdlS2V5XTogKCkgPT4ge1xuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIHByZXZpb3VzUGFnZShvcHRpb25zKSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgW2xhc3RQYWdlS2V5XTogKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGxhc3RQYWdlID0gKHN0b3JlW3BhZ2VDb3VudEtleV0gYXMgU2lnbmFsPG51bWJlcj4pKCk7XG4gICAgICAgICAgaWYgKGxhc3RQYWdlID09PSAwKSByZXR1cm47XG4gICAgICAgICAgcGF0Y2hTdGF0ZShzdG9yZSwgZ290b1BhZ2UobGFzdFBhZ2UgLSAxLCBvcHRpb25zKSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgW2ZpcnN0UGFnZUtleV06ICgpID0+IHtcbiAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCBmaXJzdFBhZ2UoKSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgW2dvdG9QYWdlS2V5XTogKHBhZ2U6IG51bWJlcikgPT4ge1xuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIGdvdG9QYWdlKHBhZ2UsIG9wdGlvbnMpKTtcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSlcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdvdG9QYWdlPEUsIENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmc+KFxuICBwYWdlOiBudW1iZXIsXG4gIG9wdGlvbnM/OiB7XG4gICAgY29sbGVjdGlvbjogQ29sbGVjdGlvbjtcbiAgfVxuKTogUGFydGlhbDxTZXRQYWdpbmF0aW9uU3RhdGU8RSwgQ29sbGVjdGlvbj4+IHtcbiAgY29uc3QgeyBwYWdlS2V5IH0gPSBjcmVhdGVQYWdpbmF0aW9uS2V5czxDb2xsZWN0aW9uPihvcHRpb25zKTtcblxuICByZXR1cm4ge1xuICAgIFtwYWdlS2V5XTogcGFnZSxcbiAgfSBhcyBQYXJ0aWFsPFNldFBhZ2luYXRpb25TdGF0ZTxFLCBDb2xsZWN0aW9uPj47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRQYWdlU2l6ZTxFLCBDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nPihcbiAgcGFnZVNpemU6IG51bWJlcixcbiAgb3B0aW9ucz86IHtcbiAgICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uO1xuICB9XG4pOiBQYXJ0aWFsPFNldFBhZ2luYXRpb25TdGF0ZTxFLCBDb2xsZWN0aW9uPj4ge1xuICBjb25zdCB7IHBhZ2VTaXplS2V5IH0gPSBjcmVhdGVQYWdpbmF0aW9uS2V5czxDb2xsZWN0aW9uPihvcHRpb25zKTtcblxuICByZXR1cm4ge1xuICAgIFtwYWdlU2l6ZUtleV06IHBhZ2VTaXplLFxuICB9IGFzIFBhcnRpYWw8U2V0UGFnaW5hdGlvblN0YXRlPEUsIENvbGxlY3Rpb24+Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5leHRQYWdlPEUsIENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmc+KG9wdGlvbnM/OiB7XG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb247XG59KTogUGFydGlhbDxTZXRQYWdpbmF0aW9uU3RhdGU8RSwgQ29sbGVjdGlvbj4+IHtcbiAgY29uc3QgeyBwYWdlS2V5IH0gPSBjcmVhdGVQYWdpbmF0aW9uS2V5czxDb2xsZWN0aW9uPihvcHRpb25zKTtcblxuICByZXR1cm4ge1xuICAgIFtwYWdlS2V5XTogKGN1cnJlbnRQYWdlOiBudW1iZXIpID0+IGN1cnJlbnRQYWdlICsgMSxcbiAgfSBhcyBQYXJ0aWFsPFNldFBhZ2luYXRpb25TdGF0ZTxFLCBDb2xsZWN0aW9uPj47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmV2aW91c1BhZ2U8RSwgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4ob3B0aW9ucz86IHtcbiAgY29sbGVjdGlvbjogQ29sbGVjdGlvbjtcbn0pOiBQYXJ0aWFsPFNldFBhZ2luYXRpb25TdGF0ZTxFLCBDb2xsZWN0aW9uPj4ge1xuICBjb25zdCB7IHBhZ2VLZXkgfSA9IGNyZWF0ZVBhZ2luYXRpb25LZXlzPENvbGxlY3Rpb24+KG9wdGlvbnMpO1xuXG4gIHJldHVybiB7XG4gICAgW3BhZ2VLZXldOiAoY3VycmVudFBhZ2U6IG51bWJlcikgPT4gTWF0aC5tYXgoY3VycmVudFBhZ2UgLSAxLCAxKSxcbiAgfSBhcyBQYXJ0aWFsPFNldFBhZ2luYXRpb25TdGF0ZTxFLCBDb2xsZWN0aW9uPj47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaXJzdFBhZ2U8RSwgQ29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4ob3B0aW9ucz86IHtcbiAgY29sbGVjdGlvbjogQ29sbGVjdGlvbjtcbn0pOiBQYXJ0aWFsPFNldFBhZ2luYXRpb25TdGF0ZTxFLCBDb2xsZWN0aW9uPj4ge1xuICBjb25zdCB7IHBhZ2VLZXkgfSA9IGNyZWF0ZVBhZ2luYXRpb25LZXlzPENvbGxlY3Rpb24+KG9wdGlvbnMpO1xuXG4gIHJldHVybiB7XG4gICAgW3BhZ2VLZXldOiAxLFxuICB9IGFzIFBhcnRpYWw8U2V0UGFnaW5hdGlvblN0YXRlPEUsIENvbGxlY3Rpb24+Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldE1heFBhZ2VOYXZpZ2F0aW9uQXJyYXlJdGVtczxFLCBDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nPihcbiAgbWF4UGFnZU5hdmlnYXRpb25BcnJheUl0ZW1zOiBudW1iZXIsXG4gIG9wdGlvbnM/OiB7XG4gICAgY29sbGVjdGlvbjogQ29sbGVjdGlvbjtcbiAgfVxuKTogUGFydGlhbDxTZXRQYWdpbmF0aW9uU3RhdGU8RSwgQ29sbGVjdGlvbj4+IHtcbiAgY29uc3QgeyBwYWdlTmF2aWdhdGlvbkFycmF5TWF4S2V5IH0gPVxuICAgIGNyZWF0ZVBhZ2luYXRpb25LZXlzPENvbGxlY3Rpb24+KG9wdGlvbnMpO1xuXG4gIHJldHVybiB7XG4gICAgW3BhZ2VOYXZpZ2F0aW9uQXJyYXlNYXhLZXldOiBtYXhQYWdlTmF2aWdhdGlvbkFycmF5SXRlbXMsXG4gIH0gYXMgUGFydGlhbDxTZXRQYWdpbmF0aW9uU3RhdGU8RSwgQ29sbGVjdGlvbj4+O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVQYWdpbmF0aW9uS2V5czxDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nPihcbiAgb3B0aW9uczogeyBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uIH0gfCB1bmRlZmluZWRcbikge1xuICBjb25zdCBlbnRpdGllc0tleSA9IG9wdGlvbnM/LmNvbGxlY3Rpb25cbiAgICA/IGAke29wdGlvbnMuY29sbGVjdGlvbn1FbnRpdGllc2BcbiAgICA6ICdlbnRpdGllcyc7XG5cbiAgY29uc3Qgc2VsZWN0ZWRQYWdlRW50aXRpZXNLZXkgPSBvcHRpb25zPy5jb2xsZWN0aW9uXG4gICAgPyBgc2VsZWN0ZWRQYWdlJHtjYXBpdGFsaXplKG9wdGlvbnM/LmNvbGxlY3Rpb24pfUVudGl0aWVzYFxuICAgIDogJ3NlbGVjdGVkUGFnZUVudGl0aWVzJztcbiAgY29uc3QgcGFnZUtleSA9IG9wdGlvbnM/LmNvbGxlY3Rpb25cbiAgICA/IGAke29wdGlvbnMuY29sbGVjdGlvbn1DdXJyZW50UGFnZWBcbiAgICA6ICdjdXJyZW50UGFnZSc7XG4gIGNvbnN0IHBhZ2VTaXplS2V5ID0gb3B0aW9ucz8uY29sbGVjdGlvblxuICAgID8gYCR7b3B0aW9ucy5jb2xsZWN0aW9ufVBhZ2VTaXplYFxuICAgIDogJ3BhZ2VTaXplJztcbiAgY29uc3QgdG90YWxDb3VudEtleSA9IG9wdGlvbnM/LmNvbGxlY3Rpb25cbiAgICA/IGAke29wdGlvbnMuY29sbGVjdGlvbn1Ub3RhbENvdW50YFxuICAgIDogJ3RvdGFsQ291bnQnO1xuICBjb25zdCBwYWdlQ291bnRLZXkgPSBvcHRpb25zPy5jb2xsZWN0aW9uXG4gICAgPyBgJHtvcHRpb25zLmNvbGxlY3Rpb259UGFnZUNvdW50YFxuICAgIDogJ3BhZ2VDb3VudCc7XG4gIGNvbnN0IHBhZ2VOYXZpZ2F0aW9uQXJyYXlNYXhLZXkgPSBvcHRpb25zPy5jb2xsZWN0aW9uXG4gICAgPyBgJHtvcHRpb25zLmNvbGxlY3Rpb259UGFnZU5hdmlnYXRpb25BcnJheU1heGBcbiAgICA6ICdwYWdlTmF2aWdhdGlvbkFycmF5TWF4JztcbiAgY29uc3QgcGFnZU5hdmlnYXRpb25BcnJheUtleSA9IG9wdGlvbnM/LmNvbGxlY3Rpb25cbiAgICA/IGAke29wdGlvbnMuY29sbGVjdGlvbn1QYWdlTmF2aWdhdGlvbkFycmF5YFxuICAgIDogJ3BhZ2VOYXZpZ2F0aW9uQXJyYXknO1xuXG4gIGNvbnN0IHNldFBhZ2VTaXplS2V5ID0gb3B0aW9ucz8uY29sbGVjdGlvblxuICAgID8gYHNldCR7Y2FwaXRhbGl6ZShvcHRpb25zLmNvbGxlY3Rpb24pfVBhZ2VTaXplYFxuICAgIDogJ3NldFBhZ2VTaXplJztcblxuICBjb25zdCBuZXh0UGFnZUtleSA9IG9wdGlvbnM/LmNvbGxlY3Rpb25cbiAgICA/IGBuZXh0JHtjYXBpdGFsaXplKG9wdGlvbnMuY29sbGVjdGlvbil9UGFnZWBcbiAgICA6ICduZXh0UGFnZSc7XG5cbiAgY29uc3QgcHJldmlvdXNQYWdlS2V5ID0gb3B0aW9ucz8uY29sbGVjdGlvblxuICAgID8gYHByZXZpb3VzJHtjYXBpdGFsaXplKG9wdGlvbnMuY29sbGVjdGlvbil9UGFnZWBcbiAgICA6ICdwcmV2aW91c1BhZ2UnO1xuXG4gIGNvbnN0IGxhc3RQYWdlS2V5ID0gb3B0aW9ucz8uY29sbGVjdGlvblxuICAgID8gYGxhc3Qke2NhcGl0YWxpemUob3B0aW9ucy5jb2xsZWN0aW9uKX1QYWdlYFxuICAgIDogJ2xhc3RQYWdlJztcblxuICBjb25zdCBmaXJzdFBhZ2VLZXkgPSBvcHRpb25zPy5jb2xsZWN0aW9uXG4gICAgPyBgZmlyc3Qke2NhcGl0YWxpemUob3B0aW9ucy5jb2xsZWN0aW9uKX1QYWdlYFxuICAgIDogJ2ZpcnN0UGFnZSc7XG5cbiAgY29uc3QgZ290b1BhZ2VLZXkgPSBvcHRpb25zPy5jb2xsZWN0aW9uXG4gICAgPyBgZ290byR7Y2FwaXRhbGl6ZShvcHRpb25zLmNvbGxlY3Rpb24pfVBhZ2VgXG4gICAgOiAnZ290b1BhZ2UnO1xuXG4gIGNvbnN0IGhhc05leHRQYWdlS2V5ID0gb3B0aW9ucz8uY29sbGVjdGlvblxuICAgID8gYGhhc05leHQke2NhcGl0YWxpemUob3B0aW9ucy5jb2xsZWN0aW9uKX1QYWdlYFxuICAgIDogJ2hhc05leHRQYWdlJztcblxuICBjb25zdCBoYXNQcmV2aW91c1BhZ2VLZXkgPSBvcHRpb25zPy5jb2xsZWN0aW9uXG4gICAgPyBgaGFzUHJldmlvdXMke2NhcGl0YWxpemUob3B0aW9ucy5jb2xsZWN0aW9uKX1QYWdlYFxuICAgIDogJ2hhc1ByZXZpb3VzUGFnZSc7XG5cbiAgcmV0dXJuIHtcbiAgICBwYWdlS2V5LFxuICAgIHBhZ2VTaXplS2V5LFxuICAgIGVudGl0aWVzS2V5LFxuICAgIHNlbGVjdGVkUGFnZUVudGl0aWVzS2V5LFxuICAgIHRvdGFsQ291bnRLZXksXG4gICAgcGFnZUNvdW50S2V5LFxuICAgIHBhZ2VOYXZpZ2F0aW9uQXJyYXlLZXksXG4gICAgcGFnZU5hdmlnYXRpb25BcnJheU1heEtleSxcbiAgICBzZXRQYWdlU2l6ZUtleSxcbiAgICBuZXh0UGFnZUtleSxcbiAgICBwcmV2aW91c1BhZ2VLZXksXG4gICAgbGFzdFBhZ2VLZXksXG4gICAgZmlyc3RQYWdlS2V5LFxuICAgIGdvdG9QYWdlS2V5LFxuICAgIGhhc05leHRQYWdlS2V5LFxuICAgIGhhc1ByZXZpb3VzUGFnZUtleSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBhZ2VBcnJheShcbiAgY3VycmVudFBhZ2U6IG51bWJlcixcbiAgaXRlbXNQZXJQYWdlOiBudW1iZXIsXG4gIHRvdGFsSXRlbXM6IG51bWJlcixcbiAgcGFnaW5hdGlvblJhbmdlOiBudW1iZXJcbik6IFBhZ2VbXSB7XG4gIC8vIENvbnZlcnQgcGFnaW5hdGlvblJhbmdlIHRvIG51bWJlciBpbiBjYXNlIGl0J3MgYSBzdHJpbmdcbiAgcGFnaW5hdGlvblJhbmdlID0gK3BhZ2luYXRpb25SYW5nZTtcblxuICAvLyBDYWxjdWxhdGUgdG90YWwgbnVtYmVyIG9mIHBhZ2VzXG4gIGNvbnN0IHRvdGFsUGFnZXMgPSBNYXRoLm1heChNYXRoLmNlaWwodG90YWxJdGVtcyAvIGl0ZW1zUGVyUGFnZSksIDEpO1xuICBjb25zdCBoYWxmV2F5ID0gTWF0aC5jZWlsKHBhZ2luYXRpb25SYW5nZSAvIDIpO1xuXG4gIGNvbnN0IGlzU3RhcnQgPSBjdXJyZW50UGFnZSA8PSBoYWxmV2F5O1xuICBjb25zdCBpc0VuZCA9IHRvdGFsUGFnZXMgLSBoYWxmV2F5IDwgY3VycmVudFBhZ2U7XG4gIGNvbnN0IGlzTWlkZGxlID0gIWlzU3RhcnQgJiYgIWlzRW5kO1xuXG4gIGNvbnN0IGVsbGlwc2VzTmVlZGVkID0gcGFnaW5hdGlvblJhbmdlIDwgdG90YWxQYWdlcztcbiAgY29uc3QgcGFnZXM6IFBhZ2VbXSA9IFtdO1xuXG4gIGZvciAobGV0IGkgPSAxOyBpIDw9IHRvdGFsUGFnZXMgJiYgaSA8PSBwYWdpbmF0aW9uUmFuZ2U7IGkrKykge1xuICAgIGxldCBwYWdlTnVtYmVyID0gaTtcblxuICAgIGlmIChpID09PSBwYWdpbmF0aW9uUmFuZ2UpIHtcbiAgICAgIHBhZ2VOdW1iZXIgPSB0b3RhbFBhZ2VzO1xuICAgIH0gZWxzZSBpZiAoZWxsaXBzZXNOZWVkZWQpIHtcbiAgICAgIGlmIChpc0VuZCkge1xuICAgICAgICBwYWdlTnVtYmVyID0gdG90YWxQYWdlcyAtIHBhZ2luYXRpb25SYW5nZSArIGk7XG4gICAgICB9IGVsc2UgaWYgKGlzTWlkZGxlKSB7XG4gICAgICAgIHBhZ2VOdW1iZXIgPSBjdXJyZW50UGFnZSAtIGhhbGZXYXkgKyBpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG9wZW5pbmdFbGxpcHNlc05lZWRlZCA9IGkgPT09IDIgJiYgKGlzTWlkZGxlIHx8IGlzRW5kKTtcbiAgICBjb25zdCBjbG9zaW5nRWxsaXBzZXNOZWVkZWQgPVxuICAgICAgaSA9PT0gcGFnaW5hdGlvblJhbmdlIC0gMSAmJiAoaXNNaWRkbGUgfHwgaXNTdGFydCk7XG5cbiAgICBjb25zdCBsYWJlbCA9XG4gICAgICBlbGxpcHNlc05lZWRlZCAmJiAob3BlbmluZ0VsbGlwc2VzTmVlZGVkIHx8IGNsb3NpbmdFbGxpcHNlc05lZWRlZClcbiAgICAgICAgPyAnLi4uJ1xuICAgICAgICA6IHBhZ2VOdW1iZXI7XG5cbiAgICBwYWdlcy5wdXNoKHsgbGFiZWwsIHZhbHVlOiBwYWdlTnVtYmVyIH0pO1xuICB9XG5cbiAgcmV0dXJuIHBhZ2VzO1xufVxuIl19
|
|
@@ -97,4 +97,4 @@ export function withRedux(redux) {
|
|
|
97
97
|
};
|
|
98
98
|
};
|
|
99
99
|
}
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1yZWR1eC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmdyeC10b29sa2l0L3NyYy9saWIvd2l0aC1yZWR1eC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBTzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBNEM5RCxNQUFNLFVBQVUsT0FBTztJQUNyQixPQUFPLEVBQVUsQ0FBQztBQUNwQixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQztBQW1DNUIsU0FBUyxlQUFlLENBQ3RCLGFBQW1CLEVBQ25CLGVBR0MsRUFDRCxlQUFnQyxFQUNoQyxLQUFjO0lBRWQsTUFBTSxTQUFTLEdBQTZCLEVBQUUsQ0FBQztJQUUvQyxLQUFLLE1BQU0sSUFBSSxJQUFJLGFBQWEsRUFBRTtRQUNoQyxNQUFNLFFBQVEsR0FBRyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtZQUNwQyxNQUFNLFdBQVcsR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQ3pDLE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0QyxJQUFJLE9BQU8sRUFBRTtnQkFDVixPQUFzRCxDQUNyRCxLQUFLLEVBQ0wsV0FBc0IsQ0FDdkIsQ0FBQzthQUNIO1lBQ0QsTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdDLElBQUksY0FBYyxFQUFFLE1BQU0sRUFBRTtnQkFDMUIsS0FBSyxNQUFNLGFBQWEsSUFBSSxjQUFjLEVBQUU7b0JBQ3pDLGFBQTZDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2lCQUNsRTthQUNGO1lBQ0QsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQyxDQUFDO1FBQ0YsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQztLQUM1QjtJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCxTQUFTLDRCQUE0QixDQUNuQyxhQUFtQixFQUNuQixlQUdDLEVBQ0QsZUFBZ0MsRUFDaEMsS0FBYztJQUVkLElBQUksUUFBUSxJQUFJLGFBQWEsSUFBSSxTQUFTLElBQUksYUFBYSxFQUFFO1FBQzNELE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEQsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUU5QyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5QixtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU3QixNQUFNLGdCQUFnQixHQUFHLGVBQWUsQ0FDdEMsUUFBUSxFQUNSLGVBQWUsRUFDZixlQUFlLEVBQ2YsS0FBSyxDQUNOLENBQUM7UUFDRixNQUFNLGVBQWUsR0FBRyxlQUFlLENBQ3JDLE9BQU8sRUFDUCxlQUFlLEVBQ2YsZUFBZSxFQUNmLEtBQUssQ0FDTixDQUFDO1FBRUYsT0FBTztZQUNMLEdBQUcsRUFBRSxFQUFFLEdBQUcsZ0JBQWdCLEVBQUUsR0FBRyxlQUFlLEVBQUU7WUFDaEQsT0FBTyxFQUFFLGVBQWU7U0FDekIsQ0FBQztLQUNIO0lBRUQsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUMvQixhQUFhLEVBQ2IsZUFBZSxFQUNmLGVBQWUsRUFDZixLQUFLLENBQ04sQ0FBQztJQUVGLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUNoRCxDQUFDO0FBRUQsU0FBUyxtQkFBbUIsQ0FDMUIsT0FBMkMsRUFDM0MsU0FBb0IsRUFDcEIsZUFHQztJQUVELFNBQVMsRUFBRSxDQUNULE1BQXdCLEVBQ3hCLFNBQXNFO1FBRXRFLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsU0FBUyxDQUFDO0lBQzNDLENBQUM7SUFFRCxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRXZCLE9BQU8sZUFBZSxDQUFDO0FBQ3pCLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FDbEIsT0FBa0MsRUFDbEMsU0FBb0IsRUFDcEIsa0JBQW1DLEVBQUU7SUFFckMsU0FBUyxNQUFNLENBQUMsTUFBd0I7UUFDdEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQTRCLENBQUM7UUFDeEQsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxlQUFlLENBQUMsRUFBRTtZQUNyQyxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztTQUNuQztRQUNELGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLE9BQU8sT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxNQUFNLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDckQsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDMUMsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsV0FBa0M7SUFDNUQsT0FBTyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztBQUNqRSxDQUFDO0FBRUQsU0FBUyxZQUFZLENBQ25CLGFBQW1CLEVBQ25CLE9BQTJDLEVBQzNDLE9BQWtDLEVBQ2xDLEtBQWM7SUFFZCxNQUFNLGVBQWUsR0FHakIsRUFBRSxDQUFDO0lBQ1AsTUFBTSxlQUFlLEdBQ25CLEVBQUUsQ0FBQztJQUNMLE1BQU0sVUFBVSxHQUFHLDRCQUE0QixDQUM3QyxhQUFhLEVBQ2IsZUFBZSxFQUNmLGVBQWUsRUFDZixLQUFLLENBQ04sQ0FBQztJQUNGLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUM7SUFDakMsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO0lBRTVDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDekQsTUFBTSxpQkFBaUIsR0FBRyxXQUFXLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUMzRSxNQUFNLGFBQWEsR0FBRyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRTVELE9BQU87UUFDTCxPQUFPLEVBQUUsZ0JBQThCO1FBQ3ZDLGFBQWEsRUFBRSxhQUFhO0tBQzdCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FLdkIsS0FJRDtJQUlDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNmLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxZQUFZLENBQzlCLEtBQUssQ0FBQyxPQUFPLEVBQ2IsS0FBSyxDQUFDLE9BQTZDLEVBQ25ELEtBQUssQ0FBQyxPQUFvQyxFQUMxQyxLQUFLLENBQ04sQ0FBQztRQUNGLE9BQU87WUFDTCxHQUFHLEtBQUs7WUFDUixPQUFPO1NBQ1IsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTaWduYWxTdG9yZUZlYXR1cmUgfSBmcm9tICdAbmdyeC9zaWduYWxzJztcbmltcG9ydCB7XG4gIEVtcHR5RmVhdHVyZVJlc3VsdCxcbiAgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0LFxufSBmcm9tICdAbmdyeC9zaWduYWxzL3NyYy9zaWduYWwtc3RvcmUtbW9kZWxzJztcbmltcG9ydCB7IFN0YXRlU2lnbmFsIH0gZnJvbSAnQG5ncngvc2lnbmFscy9zcmMvc3RhdGUtc2lnbmFsJztcbmltcG9ydCB7IGFzc2VydEFjdGlvbkZuU3BlY3MgfSBmcm9tICcuL2Fzc2VydGlvbnMvYXNzZXJ0aW9ucyc7XG5cbi8qKiBBY3Rpb25zICoqL1xuXG50eXBlIFBheWxvYWQgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxudHlwZSBBY3Rpb25GbjxcbiAgVHlwZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbiAgQWN0aW9uUGF5bG9hZCBleHRlbmRzIFBheWxvYWQgPSBQYXlsb2FkLFxuPiA9ICgocGF5bG9hZDogQWN0aW9uUGF5bG9hZCkgPT4gQWN0aW9uUGF5bG9hZCAmIHsgdHlwZTogVHlwZSB9KSAmIHtcbiAgdHlwZTogVHlwZTtcbn07XG5cbnR5cGUgQWN0aW9uRm5zID0gUmVjb3JkPHN0cmluZywgQWN0aW9uRm4+O1xuXG5leHBvcnQgdHlwZSBBY3Rpb25zRm5TcGVjcyA9IFJlY29yZDxzdHJpbmcsIFBheWxvYWQ+O1xuXG50eXBlIEFjdGlvbkZuQ3JlYXRvcjxTcGVjIGV4dGVuZHMgQWN0aW9uc0ZuU3BlY3M+ID0ge1xuICBbQWN0aW9uTmFtZSBpbiBrZXlvZiBTcGVjXTogKFJlY29yZDxuZXZlciwgbmV2ZXI+IGV4dGVuZHMgU3BlY1tBY3Rpb25OYW1lXVxuICAgID8gKCkgPT4gU3BlY1tBY3Rpb25OYW1lXSAmIHsgdHlwZTogQWN0aW9uTmFtZSB9XG4gICAgOiAoXG4gICAgICAgIHBheWxvYWQ6IFNwZWNbQWN0aW9uTmFtZV0sXG4gICAgICApID0+IFNwZWNbQWN0aW9uTmFtZV0gJiB7IHR5cGU6IEFjdGlvbk5hbWUgfSkgJiB7XG4gICAgdHlwZTogQWN0aW9uTmFtZSAmIHN0cmluZztcbiAgfTtcbn07XG5cbnR5cGUgQWN0aW9uRm5QYXlsb2FkPEFjdGlvbj4gPSBBY3Rpb24gZXh0ZW5kcyAocGF5bG9hZDogaW5mZXIgUGF5bG9hZCkgPT4gdm9pZFxuICA/IFBheWxvYWRcbiAgOiBuZXZlcjtcblxudHlwZSBBY3Rpb25GbnNDcmVhdG9yPFNwZWMgZXh0ZW5kcyBBY3Rpb25zRm5TcGVjcz4gPSBTcGVjIGV4dGVuZHMge1xuICBwcml2YXRlOiBSZWNvcmQ8c3RyaW5nLCBQYXlsb2FkPjtcbiAgcHVibGljOiBSZWNvcmQ8c3RyaW5nLCBQYXlsb2FkPjtcbn1cbiAgPyBBY3Rpb25GbkNyZWF0b3I8U3BlY1sncHJpdmF0ZSddPiAmIEFjdGlvbkZuQ3JlYXRvcjxTcGVjWydwdWJsaWMnXT5cbiAgOiBBY3Rpb25GbkNyZWF0b3I8U3BlYz47XG5cbnR5cGUgUHVibGljQWN0aW9uRm5zPFNwZWMgZXh0ZW5kcyBBY3Rpb25zRm5TcGVjcz4gPSBTcGVjIGV4dGVuZHMge1xuICBwdWJsaWM6IFJlY29yZDxzdHJpbmcsIFBheWxvYWQ+O1xufVxuICA/IEFjdGlvbkZuQ3JlYXRvcjxTcGVjWydwdWJsaWMnXT5cbiAgOiBBY3Rpb25GbkNyZWF0b3I8U3BlYz47XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXlsb2FkPFR5cGUgZXh0ZW5kcyBQYXlsb2FkPigpOiBUeXBlIHtcbiAgcmV0dXJuIHt9IGFzIFR5cGU7XG59XG5cbmV4cG9ydCBjb25zdCBub1BheWxvYWQgPSB7fTtcblxuLyoqIFJlZHVjZXIgKiovXG5cbnR5cGUgUmVkdWNlckZ1bmN0aW9uPFJlZHVjZXJBY3Rpb24sIFN0YXRlPiA9IChcbiAgc3RhdGU6IFN0YXRlLFxuICBhY3Rpb246IEFjdGlvbkZuUGF5bG9hZDxSZWR1Y2VyQWN0aW9uPixcbikgPT4gdm9pZDtcblxudHlwZSBSZWR1Y2VyRmFjdG9yeTxTdGF0ZUFjdGlvbkZucyBleHRlbmRzIEFjdGlvbkZucywgU3RhdGU+ID0gKFxuICBhY3Rpb25zOiBTdGF0ZUFjdGlvbkZucyxcbiAgb246IDxSZWR1Y2VyQWN0aW9uIGV4dGVuZHMgeyB0eXBlOiBzdHJpbmcgfT4oXG4gICAgYWN0aW9uOiBSZWR1Y2VyQWN0aW9uLFxuICAgIHJlZHVjZXJGbjogUmVkdWNlckZ1bmN0aW9uPFJlZHVjZXJBY3Rpb24sIFN0YXRlPixcbiAgKSA9PiB2b2lkLFxuKSA9PiB2b2lkO1xuXG4vKiogRWZmZWN0ICoqL1xuXG50eXBlIEVmZmVjdHNGYWN0b3J5PFN0YXRlQWN0aW9uRm5zIGV4dGVuZHMgQWN0aW9uRm5zPiA9IChcbiAgYWN0aW9uczogU3RhdGVBY3Rpb25GbnMsXG4gIGNyZWF0ZTogPEVmZmVjdEFjdGlvbiBleHRlbmRzIHsgdHlwZTogc3RyaW5nIH0+KFxuICAgIGFjdGlvbjogRWZmZWN0QWN0aW9uLFxuICApID0+IE9ic2VydmFibGU8QWN0aW9uRm5QYXlsb2FkPEVmZmVjdEFjdGlvbj4+LFxuKSA9PiBSZWNvcmQ8c3RyaW5nLCBPYnNlcnZhYmxlPHVua25vd24+PjtcblxuLy8gaW50ZXJuYWwgdHlwZXNcblxuLyoqXG4gKiBSZWNvcmQgd2hpY2ggaG9sZHMgYWxsIGVmZmVjdHMgZm9yIGEgc3BlY2lmaWMgYWN0aW9uIHR5cGUuXG4gKiBUaGUgdmFsdWVzIGFyZSBTdWJqZWN0IHdoaWNoIHRoZSBlZmZlY3QgYXJlIHN1YnNjcmliZWQgdG8uXG4gKiBgY3JlYXRlQWN0aW9uRm5zYCB3aWxsIGNhbGwgbmV4dCBvbiB0aGVzZSBzdWJqZWN0cy5cbiAqL1xudHlwZSBFZmZlY3RzUmVnaXN0cnkgPSBSZWNvcmQ8c3RyaW5nLCBTdWJqZWN0PEFjdGlvbkZuUGF5bG9hZDx1bmtub3duPj5bXT47XG5cbmZ1bmN0aW9uIGNyZWF0ZUFjdGlvbkZuczxTcGVjIGV4dGVuZHMgQWN0aW9uc0ZuU3BlY3M+KFxuICBhY3Rpb25GblNwZWNzOiBTcGVjLFxuICByZWR1Y2VyUmVnaXN0cnk6IFJlY29yZDxcbiAgICBzdHJpbmcsXG4gICAgKHN0YXRlOiB1bmtub3duLCBwYXlsb2FkOiBBY3Rpb25GblBheWxvYWQ8dW5rbm93bj4pID0+IHZvaWRcbiAgPixcbiAgZWZmZWN0c1JlZ2lzdHJ5OiBFZmZlY3RzUmVnaXN0cnksXG4gIHN0YXRlOiB1bmtub3duLFxuKSB7XG4gIGNvbnN0IGFjdGlvbkZuczogUmVjb3JkPHN0cmluZywgQWN0aW9uRm4+ID0ge307XG5cbiAgZm9yIChjb25zdCB0eXBlIGluIGFjdGlvbkZuU3BlY3MpIHtcbiAgICBjb25zdCBhY3Rpb25GbiA9IChwYXlsb2FkOiBQYXlsb2FkKSA9PiB7XG4gICAgICBjb25zdCBmdWxsUGF5bG9hZCA9IHsgLi4ucGF5bG9hZCwgdHlwZSB9O1xuICAgICAgY29uc3QgcmVkdWNlciA9IHJlZHVjZXJSZWdpc3RyeVt0eXBlXTtcbiAgICAgIGlmIChyZWR1Y2VyKSB7XG4gICAgICAgIChyZWR1Y2VyIGFzIChzdGF0ZTogdW5rbm93biwgcGF5bG9hZDogdW5rbm93bikgPT4gdm9pZCkoXG4gICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgZnVsbFBheWxvYWQgYXMgdW5rbm93bixcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGVmZmVjdFN1YmplY3RzID0gZWZmZWN0c1JlZ2lzdHJ5W3R5cGVdO1xuICAgICAgaWYgKGVmZmVjdFN1YmplY3RzPy5sZW5ndGgpIHtcbiAgICAgICAgZm9yIChjb25zdCBlZmZlY3RTdWJqZWN0IG9mIGVmZmVjdFN1YmplY3RzKSB7XG4gICAgICAgICAgKGVmZmVjdFN1YmplY3QgYXMgdW5rbm93biBhcyBTdWJqZWN0PHVua25vd24+KS5uZXh0KGZ1bGxQYXlsb2FkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGZ1bGxQYXlsb2FkO1xuICAgIH07XG4gICAgYWN0aW9uRm4udHlwZSA9IHR5cGUudG9TdHJpbmcoKTtcbiAgICBhY3Rpb25GbnNbdHlwZV0gPSBhY3Rpb25GbjtcbiAgfVxuXG4gIHJldHVybiBhY3Rpb25GbnM7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVB1YmxpY0FuZEFsbEFjdGlvbnNGbnM8U3BlYyBleHRlbmRzIEFjdGlvbnNGblNwZWNzPihcbiAgYWN0aW9uRm5TcGVjczogU3BlYyxcbiAgcmVkdWNlclJlZ2lzdHJ5OiBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIChzdGF0ZTogdW5rbm93biwgcGF5bG9hZDogQWN0aW9uRm5QYXlsb2FkPHVua25vd24+KSA9PiB2b2lkXG4gID4sXG4gIGVmZmVjdHNSZWdpc3RyeTogRWZmZWN0c1JlZ2lzdHJ5LFxuICBzdGF0ZTogdW5rbm93bixcbik6IHsgYWxsOiBBY3Rpb25GbnM7IHB1YmxpY3M6IEFjdGlvbkZucyB9IHtcbiAgaWYgKCdwdWJsaWMnIGluIGFjdGlvbkZuU3BlY3MgfHwgJ3ByaXZhdGUnIGluIGFjdGlvbkZuU3BlY3MpIHtcbiAgICBjb25zdCBwcml2YXRlcyA9IGFjdGlvbkZuU3BlY3NbJ3ByaXZhdGUnXSB8fCB7fTtcbiAgICBjb25zdCBwdWJsaWNzID0gYWN0aW9uRm5TcGVjc1sncHVibGljJ10gfHwge307XG5cbiAgICBhc3NlcnRBY3Rpb25GblNwZWNzKHByaXZhdGVzKTtcbiAgICBhc3NlcnRBY3Rpb25GblNwZWNzKHB1YmxpY3MpO1xuXG4gICAgY29uc3QgcHJpdmF0ZUFjdGlvbkZucyA9IGNyZWF0ZUFjdGlvbkZucyhcbiAgICAgIHByaXZhdGVzLFxuICAgICAgcmVkdWNlclJlZ2lzdHJ5LFxuICAgICAgZWZmZWN0c1JlZ2lzdHJ5LFxuICAgICAgc3RhdGUsXG4gICAgKTtcbiAgICBjb25zdCBwdWJsaWNBY3Rpb25GbnMgPSBjcmVhdGVBY3Rpb25GbnMoXG4gICAgICBwdWJsaWNzLFxuICAgICAgcmVkdWNlclJlZ2lzdHJ5LFxuICAgICAgZWZmZWN0c1JlZ2lzdHJ5LFxuICAgICAgc3RhdGUsXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBhbGw6IHsgLi4ucHJpdmF0ZUFjdGlvbkZucywgLi4ucHVibGljQWN0aW9uRm5zIH0sXG4gICAgICBwdWJsaWNzOiBwdWJsaWNBY3Rpb25GbnMsXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0IGFjdGlvbkZucyA9IGNyZWF0ZUFjdGlvbkZucyhcbiAgICBhY3Rpb25GblNwZWNzLFxuICAgIHJlZHVjZXJSZWdpc3RyeSxcbiAgICBlZmZlY3RzUmVnaXN0cnksXG4gICAgc3RhdGUsXG4gICk7XG5cbiAgcmV0dXJuIHsgYWxsOiBhY3Rpb25GbnMsIHB1YmxpY3M6IGFjdGlvbkZucyB9O1xufVxuXG5mdW5jdGlvbiBmaWxsUmVkdWNlclJlZ2lzdHJ5KFxuICByZWR1Y2VyOiBSZWR1Y2VyRmFjdG9yeTxBY3Rpb25GbnMsIHVua25vd24+LFxuICBhY3Rpb25GbnM6IEFjdGlvbkZucyxcbiAgcmVkdWNlclJlZ2lzdHJ5OiBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIChzdGF0ZTogdW5rbm93biwgcGF5bG9hZDogQWN0aW9uRm5QYXlsb2FkPHVua25vd24+KSA9PiB2b2lkXG4gID4sXG4pIHtcbiAgZnVuY3Rpb24gb24oXG4gICAgYWN0aW9uOiB7IHR5cGU6IHN0cmluZyB9LFxuICAgIHJlZHVjZXJGbjogKHN0YXRlOiB1bmtub3duLCBwYXlsb2FkOiBBY3Rpb25GblBheWxvYWQ8dW5rbm93bj4pID0+IHZvaWQsXG4gICkge1xuICAgIHJlZHVjZXJSZWdpc3RyeVthY3Rpb24udHlwZV0gPSByZWR1Y2VyRm47XG4gIH1cblxuICByZWR1Y2VyKGFjdGlvbkZucywgb24pO1xuXG4gIHJldHVybiByZWR1Y2VyUmVnaXN0cnk7XG59XG5cbmZ1bmN0aW9uIGZpbGxFZmZlY3RzKFxuICBlZmZlY3RzOiBFZmZlY3RzRmFjdG9yeTxBY3Rpb25GbnM+LFxuICBhY3Rpb25GbnM6IEFjdGlvbkZucyxcbiAgZWZmZWN0c1JlZ2lzdHJ5OiBFZmZlY3RzUmVnaXN0cnkgPSB7fSxcbik6IE9ic2VydmFibGU8dW5rbm93bj5bXSB7XG4gIGZ1bmN0aW9uIGNyZWF0ZShhY3Rpb246IHsgdHlwZTogc3RyaW5nIH0pIHtcbiAgICBjb25zdCBzdWJqZWN0ID0gbmV3IFN1YmplY3Q8QWN0aW9uRm5QYXlsb2FkPHVua25vd24+PigpO1xuICAgIGlmICghKGFjdGlvbi50eXBlIGluIGVmZmVjdHNSZWdpc3RyeSkpIHtcbiAgICAgIGVmZmVjdHNSZWdpc3RyeVthY3Rpb24udHlwZV0gPSBbXTtcbiAgICB9XG4gICAgZWZmZWN0c1JlZ2lzdHJ5W2FjdGlvbi50eXBlXS5wdXNoKHN1YmplY3QpO1xuICAgIHJldHVybiBzdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgY29uc3QgZWZmZWN0T2JzZXJ2YWJsZXMgPSBlZmZlY3RzKGFjdGlvbkZucywgY3JlYXRlKTtcbiAgcmV0dXJuIE9iamVjdC52YWx1ZXMoZWZmZWN0T2JzZXJ2YWJsZXMpO1xufVxuXG5mdW5jdGlvbiBzdGFydFN1YnNjcmlwdGlvbnMob2JzZXJ2YWJsZXM6IE9ic2VydmFibGU8dW5rbm93bj5bXSkge1xuICByZXR1cm4gb2JzZXJ2YWJsZXMubWFwKChvYnNlcnZhYmxlKSA9PiBvYnNlcnZhYmxlLnN1YnNjcmliZSgpKTtcbn1cblxuZnVuY3Rpb24gcHJvY2Vzc1JlZHV4PFNwZWMgZXh0ZW5kcyBBY3Rpb25zRm5TcGVjcywgUmV0dXJuVHlwZT4oXG4gIGFjdGlvbkZuU3BlY3M6IFNwZWMsXG4gIHJlZHVjZXI6IFJlZHVjZXJGYWN0b3J5PEFjdGlvbkZucywgdW5rbm93bj4sXG4gIGVmZmVjdHM6IEVmZmVjdHNGYWN0b3J5PEFjdGlvbkZucz4sXG4gIHN0b3JlOiB1bmtub3duLFxuKSB7XG4gIGNvbnN0IHJlZHVjZXJSZWdpc3RyeTogUmVjb3JkPFxuICAgIHN0cmluZyxcbiAgICAoc3RhdGU6IHVua25vd24sIHBheWxvYWQ6IEFjdGlvbkZuUGF5bG9hZDx1bmtub3duPikgPT4gdm9pZFxuICA+ID0ge307XG4gIGNvbnN0IGVmZmVjdHNSZWdpc3RyeTogUmVjb3JkPHN0cmluZywgU3ViamVjdDxBY3Rpb25GblBheWxvYWQ8dW5rbm93bj4+W10+ID1cbiAgICB7fTtcbiAgY29uc3QgYWN0aW9uc01hcCA9IGNyZWF0ZVB1YmxpY0FuZEFsbEFjdGlvbnNGbnMoXG4gICAgYWN0aW9uRm5TcGVjcyxcbiAgICByZWR1Y2VyUmVnaXN0cnksXG4gICAgZWZmZWN0c1JlZ2lzdHJ5LFxuICAgIHN0b3JlLFxuICApO1xuICBjb25zdCBhY3Rpb25GbnMgPSBhY3Rpb25zTWFwLmFsbDtcbiAgY29uc3QgcHVibGljQWN0aW9uc0ZucyA9IGFjdGlvbnNNYXAucHVibGljcztcblxuICBmaWxsUmVkdWNlclJlZ2lzdHJ5KHJlZHVjZXIsIGFjdGlvbkZucywgcmVkdWNlclJlZ2lzdHJ5KTtcbiAgY29uc3QgZWZmZWN0T2JzZXJ2YWJsZXMgPSBmaWxsRWZmZWN0cyhlZmZlY3RzLCBhY3Rpb25GbnMsIGVmZmVjdHNSZWdpc3RyeSk7XG4gIGNvbnN0IHN1YnNjcmlwdGlvbnMgPSBzdGFydFN1YnNjcmlwdGlvbnMoZWZmZWN0T2JzZXJ2YWJsZXMpO1xuXG4gIHJldHVybiB7XG4gICAgbWV0aG9kczogcHVibGljQWN0aW9uc0ZucyBhcyBSZXR1cm5UeXBlLFxuICAgIHN1YnNjcmlwdGlvbnM6IHN1YnNjcmlwdGlvbnMsXG4gIH07XG59XG5cbi8qKlxuICogQHBhcmFtIHJlZHV4IHJlZHV4XG4gKlxuICogcHJvcGVydGllcyBkbyBub3Qgc3RhcnQgd2l0aCBgd2l0aGAgc2luY2UgdGhleSBhcmUgbm90IGV4dGVuc2lvbiBmdW5jdGlvbnMgb24gdGhlaXIgb3duLlxuICpcbiAqIG5vIGRlcGVuZGVuY3kgdG8gTmdSeFxuICpcbiAqIGFjdGlvbnMgYXJlIHBhc3NlZCB0byByZWR1Y2VyIGFuZCBlZmZlY3RzLCBidXQgaXQgaXMgYWxzbyBwb3NzaWJsZSB0byB1c2Ugb3RoZXIgYWN0aW9ucy5cbiAqIGVmZmVjdHMgcHJvdmlkZSBmb3JBY3Rpb24gYW5kIGRvIG5vdCByZXR1cm4gYW55dGhpbmcuIHRoYXQgaXMgaW1wb3J0YW50IGJlY2F1c2UgZWZmZWN0cyBzaG91bGQgc3RheSBpbmFjY2Vzc2libGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhSZWR1eDxcbiAgU3BlYyBleHRlbmRzIEFjdGlvbnNGblNwZWNzLFxuICBJbnB1dCBleHRlbmRzIFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCxcbiAgU3RhdGVBY3Rpb25GbnMgZXh0ZW5kcyBBY3Rpb25GbnNDcmVhdG9yPFNwZWM+ID0gQWN0aW9uRm5zQ3JlYXRvcjxTcGVjPixcbiAgUHVibGljU3RvcmVBY3Rpb25GbnMgZXh0ZW5kcyBQdWJsaWNBY3Rpb25GbnM8U3BlYz4gPSBQdWJsaWNBY3Rpb25GbnM8U3BlYz4sXG4+KHJlZHV4OiB7XG4gIGFjdGlvbnM6IFNwZWM7XG4gIHJlZHVjZXI6IFJlZHVjZXJGYWN0b3J5PFN0YXRlQWN0aW9uRm5zLCBTdGF0ZVNpZ25hbDxJbnB1dFsnc3RhdGUnXT4+O1xuICBlZmZlY3RzOiBFZmZlY3RzRmFjdG9yeTxTdGF0ZUFjdGlvbkZucz47XG59KTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICBJbnB1dCxcbiAgRW1wdHlGZWF0dXJlUmVzdWx0ICYgeyBtZXRob2RzOiBQdWJsaWNTdG9yZUFjdGlvbkZucyB9XG4+IHtcbiAgcmV0dXJuIChzdG9yZSkgPT4ge1xuICAgIGNvbnN0IHsgbWV0aG9kcyB9ID0gcHJvY2Vzc1JlZHV4PFNwZWMsIFB1YmxpY1N0b3JlQWN0aW9uRm5zPihcbiAgICAgIHJlZHV4LmFjdGlvbnMsXG4gICAgICByZWR1eC5yZWR1Y2VyIGFzIFJlZHVjZXJGYWN0b3J5PEFjdGlvbkZucywgdW5rbm93bj4sXG4gICAgICByZWR1eC5lZmZlY3RzIGFzIEVmZmVjdHNGYWN0b3J5PEFjdGlvbkZucz4sXG4gICAgICBzdG9yZSxcbiAgICApO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdG9yZSxcbiAgICAgIG1ldGhvZHMsXG4gICAgfTtcbiAgfTtcbn1cbiJdfQ==
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1yZWR1eC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmdyeC10b29sa2l0L3NyYy9saWIvd2l0aC1yZWR1eC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBZ0Q5RCxNQUFNLFVBQVUsT0FBTztJQUNyQixPQUFPLEVBQVUsQ0FBQztBQUNwQixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQztBQW1DNUIsU0FBUyxlQUFlLENBQ3RCLGFBQW1CLEVBQ25CLGVBR0MsRUFDRCxlQUFnQyxFQUNoQyxLQUFjO0lBRWQsTUFBTSxTQUFTLEdBQTZCLEVBQUUsQ0FBQztJQUUvQyxLQUFLLE1BQU0sSUFBSSxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sUUFBUSxHQUFHLENBQUMsT0FBZ0IsRUFBRSxFQUFFO1lBQ3BDLE1BQU0sV0FBVyxHQUFHLEVBQUUsR0FBRyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDekMsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RDLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1gsT0FBc0QsQ0FDckQsS0FBSyxFQUNMLFdBQXNCLENBQ3ZCLENBQUM7WUFDSixDQUFDO1lBQ0QsTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdDLElBQUksY0FBYyxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUMzQixLQUFLLE1BQU0sYUFBYSxJQUFJLGNBQWMsRUFBRSxDQUFDO29CQUMxQyxhQUE2QyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDbkUsQ0FBQztZQUNILENBQUM7WUFDRCxPQUFPLFdBQVcsQ0FBQztRQUNyQixDQUFD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VUFBVSxHQUFHLDRCQUE0QixDQUM3QyxhQUFhLEVBQ2IsZUFBZSxFQUNmLGVBQWUsRUFDZixLQUFLLENBQ04sQ0FBQztJQUNGLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUM7SUFDakMsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO0lBRTVDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDekQsTUFBTSxpQkFBaUIsR0FBRyxXQUFXLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUMzRSxNQUFNLGFBQWEsR0FBRyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRTVELE9BQU87UUFDTCxPQUFPLEVBQUUsZ0JBQThCO1FBQ3ZDLGFBQWEsRUFBRSxhQUFhO0tBQzdCLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FLdkIsS0FJRDtJQUlDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNmLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxZQUFZLENBQzlCLEtBQUssQ0FBQyxPQUFPLEVBQ2IsS0FBSyxDQUFDLE9BQTZDLEVBQ25ELEtBQUssQ0FBQyxPQUFvQyxFQUMxQyxLQUFLLENBQ04sQ0FBQztRQUNGLE9BQU87WUFDTCxHQUFHLEtBQUs7WUFDUixPQUFPO1NBQ1IsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTaWduYWxTdG9yZUZlYXR1cmUsIFN0YXRlU2lnbmFsIH0gZnJvbSAnQG5ncngvc2lnbmFscyc7XG5pbXBvcnQgeyBhc3NlcnRBY3Rpb25GblNwZWNzIH0gZnJvbSAnLi9hc3NlcnRpb25zL2Fzc2VydGlvbnMnO1xuaW1wb3J0IHtcbiAgRW1wdHlGZWF0dXJlUmVzdWx0LFxuICBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG59IGZyb20gJy4vc2hhcmVkL3NpZ25hbC1zdG9yZS1tb2RlbHMnO1xuXG4vKiogQWN0aW9ucyAqKi9cblxudHlwZSBQYXlsb2FkID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbnR5cGUgQWN0aW9uRm48XG4gIFR5cGUgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4gIEFjdGlvblBheWxvYWQgZXh0ZW5kcyBQYXlsb2FkID0gUGF5bG9hZFxuPiA9ICgocGF5bG9hZDogQWN0aW9uUGF5bG9hZCkgPT4gQWN0aW9uUGF5bG9hZCAmIHsgdHlwZTogVHlwZSB9KSAmIHtcbiAgdHlwZTogVHlwZTtcbn07XG5cbnR5cGUgQWN0aW9uRm5zID0gUmVjb3JkPHN0cmluZywgQWN0aW9uRm4+O1xuXG5leHBvcnQgdHlwZSBBY3Rpb25zRm5TcGVjcyA9IFJlY29yZDxzdHJpbmcsIFBheWxvYWQ+O1xuXG50eXBlIEFjdGlvbkZuQ3JlYXRvcjxTcGVjIGV4dGVuZHMgQWN0aW9uc0ZuU3BlY3M+ID0ge1xuICBbQWN0aW9uTmFtZSBpbiBrZXlvZiBTcGVjXTogKFJlY29yZDxuZXZlciwgbmV2ZXI+IGV4dGVuZHMgU3BlY1tBY3Rpb25OYW1lXVxuICAgID8gKCkgPT4gU3BlY1tBY3Rpb25OYW1lXSAmIHsgdHlwZTogQWN0aW9uTmFtZSB9XG4gICAgOiAoXG4gICAgICAgIHBheWxvYWQ6IFNwZWNbQWN0aW9uTmFtZV1cbiAgICAgICkgPT4gU3BlY1tBY3Rpb25OYW1lXSAmIHsgdHlwZTogQWN0aW9uTmFtZSB9KSAmIHtcbiAgICB0eXBlOiBBY3Rpb25OYW1lICYgc3RyaW5nO1xuICB9O1xufTtcblxudHlwZSBBY3Rpb25GblBheWxvYWQ8QWN0aW9uPiA9IEFjdGlvbiBleHRlbmRzIChwYXlsb2FkOiBpbmZlciBQYXlsb2FkKSA9PiB2b2lkXG4gID8gUGF5bG9hZFxuICA6IG5ldmVyO1xuXG50eXBlIEFjdGlvbkZuc0NyZWF0b3I8U3BlYyBleHRlbmRzIEFjdGlvbnNGblNwZWNzPiA9IFNwZWMgZXh0ZW5kcyB7XG4gIHByaXZhdGU6IFJlY29yZDxzdHJpbmcsIFBheWxvYWQ+O1xuICBwdWJsaWM6IFJlY29yZDxzdHJpbmcsIFBheWxvYWQ+O1xufVxuICA/IEFjdGlvbkZuQ3JlYXRvcjxTcGVjWydwcml2YXRlJ10+ICYgQWN0aW9uRm5DcmVhdG9yPFNwZWNbJ3B1YmxpYyddPlxuICA6IEFjdGlvbkZuQ3JlYXRvcjxTcGVjPjtcblxudHlwZSBQdWJsaWNBY3Rpb25GbnM8U3BlYyBleHRlbmRzIEFjdGlvbnNGblNwZWNzPiA9IFNwZWMgZXh0ZW5kcyB7XG4gIHB1YmxpYzogUmVjb3JkPHN0cmluZywgUGF5bG9hZD47XG59XG4gID8gQWN0aW9uRm5DcmVhdG9yPFNwZWNbJ3B1YmxpYyddPlxuICA6IEFjdGlvbkZuQ3JlYXRvcjxTcGVjPjtcblxuZXhwb3J0IGZ1bmN0aW9uIHBheWxvYWQ8VHlwZSBleHRlbmRzIFBheWxvYWQ+KCk6IFR5cGUge1xuICByZXR1cm4ge30gYXMgVHlwZTtcbn1cblxuZXhwb3J0IGNvbnN0IG5vUGF5bG9hZCA9IHt9O1xuXG4vKiogUmVkdWNlciAqKi9cblxudHlwZSBSZWR1Y2VyRnVuY3Rpb248UmVkdWNlckFjdGlvbiwgU3RhdGU+ID0gKFxuICBzdGF0ZTogU3RhdGUsXG4gIGFjdGlvbjogQWN0aW9uRm5QYXlsb2FkPFJlZHVjZXJBY3Rpb24+XG4pID0+IHZvaWQ7XG5cbnR5cGUgUmVkdWNlckZhY3Rvcnk8U3RhdGVBY3Rpb25GbnMgZXh0ZW5kcyBBY3Rpb25GbnMsIFN0YXRlPiA9IChcbiAgYWN0aW9uczogU3RhdGVBY3Rpb25GbnMsXG4gIG9uOiA8UmVkdWNlckFjdGlvbiBleHRlbmRzIHsgdHlwZTogc3RyaW5nIH0+KFxuICAgIGFjdGlvbjogUmVkdWNlckFjdGlvbixcbiAgICByZWR1Y2VyRm46IFJlZHVjZXJGdW5jdGlvbjxSZWR1Y2VyQWN0aW9uLCBTdGF0ZT5cbiAgKSA9PiB2b2lkXG4pID0+IHZvaWQ7XG5cbi8qKiBFZmZlY3QgKiovXG5cbnR5cGUgRWZmZWN0c0ZhY3Rvcnk8U3RhdGVBY3Rpb25GbnMgZXh0ZW5kcyBBY3Rpb25GbnM+ID0gKFxuICBhY3Rpb25zOiBTdGF0ZUFjdGlvbkZucyxcbiAgY3JlYXRlOiA8RWZmZWN0QWN0aW9uIGV4dGVuZHMgeyB0eXBlOiBzdHJpbmcgfT4oXG4gICAgYWN0aW9uOiBFZmZlY3RBY3Rpb25cbiAgKSA9PiBPYnNlcnZhYmxlPEFjdGlvbkZuUGF5bG9hZDxFZmZlY3RBY3Rpb24+PlxuKSA9PiBSZWNvcmQ8c3RyaW5nLCBPYnNlcnZhYmxlPHVua25vd24+PjtcblxuLy8gaW50ZXJuYWwgdHlwZXNcblxuLyoqXG4gKiBSZWNvcmQgd2hpY2ggaG9sZHMgYWxsIGVmZmVjdHMgZm9yIGEgc3BlY2lmaWMgYWN0aW9uIHR5cGUuXG4gKiBUaGUgdmFsdWVzIGFyZSBTdWJqZWN0IHdoaWNoIHRoZSBlZmZlY3QgYXJlIHN1YnNjcmliZWQgdG8uXG4gKiBgY3JlYXRlQWN0aW9uRm5zYCB3aWxsIGNhbGwgbmV4dCBvbiB0aGVzZSBzdWJqZWN0cy5cbiAqL1xudHlwZSBFZmZlY3RzUmVnaXN0cnkgPSBSZWNvcmQ8c3RyaW5nLCBTdWJqZWN0PEFjdGlvbkZuUGF5bG9hZDx1bmtub3duPj5bXT47XG5cbmZ1bmN0aW9uIGNyZWF0ZUFjdGlvbkZuczxTcGVjIGV4dGVuZHMgQWN0aW9uc0ZuU3BlY3M+KFxuICBhY3Rpb25GblNwZWNzOiBTcGVjLFxuICByZWR1Y2VyUmVnaXN0cnk6IFJlY29yZDxcbiAgICBzdHJpbmcsXG4gICAgKHN0YXRlOiB1bmtub3duLCBwYXlsb2FkOiBBY3Rpb25GblBheWxvYWQ8dW5rbm93bj4pID0+IHZvaWRcbiAgPixcbiAgZWZmZWN0c1JlZ2lzdHJ5OiBFZmZlY3RzUmVnaXN0cnksXG4gIHN0YXRlOiB1bmtub3duXG4pIHtcbiAgY29uc3QgYWN0aW9uRm5zOiBSZWNvcmQ8c3RyaW5nLCBBY3Rpb25Gbj4gPSB7fTtcblxuICBmb3IgKGNvbnN0IHR5cGUgaW4gYWN0aW9uRm5TcGVjcykge1xuICAgIGNvbnN0IGFjdGlvbkZuID0gKHBheWxvYWQ6IFBheWxvYWQpID0+IHtcbiAgICAgIGNvbnN0IGZ1bGxQYXlsb2FkID0geyAuLi5wYXlsb2FkLCB0eXBlIH07XG4gICAgICBjb25zdCByZWR1Y2VyID0gcmVkdWNlclJlZ2lzdHJ5W3R5cGVdO1xuICAgICAgaWYgKHJlZHVjZXIpIHtcbiAgICAgICAgKHJlZHVjZXIgYXMgKHN0YXRlOiB1bmtub3duLCBwYXlsb2FkOiB1bmtub3duKSA9PiB2b2lkKShcbiAgICAgICAgICBzdGF0ZSxcbiAgICAgICAgICBmdWxsUGF5bG9hZCBhcyB1bmtub3duXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBjb25zdCBlZmZlY3RTdWJqZWN0cyA9IGVmZmVjdHNSZWdpc3RyeVt0eXBlXTtcbiAgICAgIGlmIChlZmZlY3RTdWJqZWN0cz8ubGVuZ3RoKSB7XG4gICAgICAgIGZvciAoY29uc3QgZWZmZWN0U3ViamVjdCBvZiBlZmZlY3RTdWJqZWN0cykge1xuICAgICAgICAgIChlZmZlY3RTdWJqZWN0IGFzIHVua25vd24gYXMgU3ViamVjdDx1bmtub3duPikubmV4dChmdWxsUGF5bG9hZCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmdWxsUGF5bG9hZDtcbiAgICB9O1xuICAgIGFjdGlvbkZuLnR5cGUgPSB0eXBlLnRvU3RyaW5nKCk7XG4gICAgYWN0aW9uRm5zW3R5cGVdID0gYWN0aW9uRm47XG4gIH1cblxuICByZXR1cm4gYWN0aW9uRm5zO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVQdWJsaWNBbmRBbGxBY3Rpb25zRm5zPFNwZWMgZXh0ZW5kcyBBY3Rpb25zRm5TcGVjcz4oXG4gIGFjdGlvbkZuU3BlY3M6IFNwZWMsXG4gIHJlZHVjZXJSZWdpc3RyeTogUmVjb3JkPFxuICAgIHN0cmluZyxcbiAgICAoc3RhdGU6IHVua25vd24sIHBheWxvYWQ6IEFjdGlvbkZuUGF5bG9hZDx1bmtub3duPikgPT4gdm9pZFxuICA+LFxuICBlZmZlY3RzUmVnaXN0cnk6IEVmZmVjdHNSZWdpc3RyeSxcbiAgc3RhdGU6IHVua25vd25cbik6IHsgYWxsOiBBY3Rpb25GbnM7IHB1YmxpY3M6IEFjdGlvbkZucyB9IHtcbiAgaWYgKCdwdWJsaWMnIGluIGFjdGlvbkZuU3BlY3MgfHwgJ3ByaXZhdGUnIGluIGFjdGlvbkZuU3BlY3MpIHtcbiAgICBjb25zdCBwcml2YXRlcyA9IGFjdGlvbkZuU3BlY3NbJ3ByaXZhdGUnXSB8fCB7fTtcbiAgICBjb25zdCBwdWJsaWNzID0gYWN0aW9uRm5TcGVjc1sncHVibGljJ10gfHwge307XG5cbiAgICBhc3NlcnRBY3Rpb25GblNwZWNzKHByaXZhdGVzKTtcbiAgICBhc3NlcnRBY3Rpb25GblNwZWNzKHB1YmxpY3MpO1xuXG4gICAgY29uc3QgcHJpdmF0ZUFjdGlvbkZucyA9IGNyZWF0ZUFjdGlvbkZucyhcbiAgICAgIHByaXZhdGVzLFxuICAgICAgcmVkdWNlclJlZ2lzdHJ5LFxuICAgICAgZWZmZWN0c1JlZ2lzdHJ5LFxuICAgICAgc3RhdGVcbiAgICApO1xuICAgIGNvbnN0IHB1YmxpY0FjdGlvbkZucyA9IGNyZWF0ZUFjdGlvbkZucyhcbiAgICAgIHB1YmxpY3MsXG4gICAgICByZWR1Y2VyUmVnaXN0cnksXG4gICAgICBlZmZlY3RzUmVnaXN0cnksXG4gICAgICBzdGF0ZVxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYWxsOiB7IC4uLnByaXZhdGVBY3Rpb25GbnMsIC4uLnB1YmxpY0FjdGlvbkZucyB9LFxuICAgICAgcHVibGljczogcHVibGljQWN0aW9uRm5zLFxuICAgIH07XG4gIH1cblxuICBjb25zdCBhY3Rpb25GbnMgPSBjcmVhdGVBY3Rpb25GbnMoXG4gICAgYWN0aW9uRm5TcGVjcyxcbiAgICByZWR1Y2VyUmVnaXN0cnksXG4gICAgZWZmZWN0c1JlZ2lzdHJ5LFxuICAgIHN0YXRlXG4gICk7XG5cbiAgcmV0dXJuIHsgYWxsOiBhY3Rpb25GbnMsIHB1YmxpY3M6IGFjdGlvbkZucyB9O1xufVxuXG5mdW5jdGlvbiBmaWxsUmVkdWNlclJlZ2lzdHJ5KFxuICByZWR1Y2VyOiBSZWR1Y2VyRmFjdG9yeTxBY3Rpb25GbnMsIHVua25vd24+LFxuICBhY3Rpb25GbnM6IEFjdGlvbkZucyxcbiAgcmVkdWNlclJlZ2lzdHJ5OiBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIChzdGF0ZTogdW5rbm93biwgcGF5bG9hZDogQWN0aW9uRm5QYXlsb2FkPHVua25vd24+KSA9PiB2b2lkXG4gID5cbikge1xuICBmdW5jdGlvbiBvbihcbiAgICBhY3Rpb246IHsgdHlwZTogc3RyaW5nIH0sXG4gICAgcmVkdWNlckZuOiAoc3RhdGU6IHVua25vd24sIHBheWxvYWQ6IEFjdGlvbkZuUGF5bG9hZDx1bmtub3duPikgPT4gdm9pZFxuICApIHtcbiAgICByZWR1Y2VyUmVnaXN0cnlbYWN0aW9uLnR5cGVdID0gcmVkdWNlckZuO1xuICB9XG5cbiAgcmVkdWNlcihhY3Rpb25GbnMsIG9uKTtcblxuICByZXR1cm4gcmVkdWNlclJlZ2lzdHJ5O1xufVxuXG5mdW5jdGlvbiBmaWxsRWZmZWN0cyhcbiAgZWZmZWN0czogRWZmZWN0c0ZhY3Rvcnk8QWN0aW9uRm5zPixcbiAgYWN0aW9uRm5zOiBBY3Rpb25GbnMsXG4gIGVmZmVjdHNSZWdpc3RyeTogRWZmZWN0c1JlZ2lzdHJ5ID0ge31cbik6IE9ic2VydmFibGU8dW5rbm93bj5bXSB7XG4gIGZ1bmN0aW9uIGNyZWF0ZShhY3Rpb246IHsgdHlwZTogc3RyaW5nIH0pIHtcbiAgICBjb25zdCBzdWJqZWN0ID0gbmV3IFN1YmplY3Q8QWN0aW9uRm5QYXlsb2FkPHVua25vd24+PigpO1xuICAgIGlmICghKGFjdGlvbi50eXBlIGluIGVmZmVjdHNSZWdpc3RyeSkpIHtcbiAgICAgIGVmZmVjdHNSZWdpc3RyeVthY3Rpb24udHlwZV0gPSBbXTtcbiAgICB9XG4gICAgZWZmZWN0c1JlZ2lzdHJ5W2FjdGlvbi50eXBlXS5wdXNoKHN1YmplY3QpO1xuICAgIHJldHVybiBzdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgY29uc3QgZWZmZWN0T2JzZXJ2YWJsZXMgPSBlZmZlY3RzKGFjdGlvbkZucywgY3JlYXRlKTtcbiAgcmV0dXJuIE9iamVjdC52YWx1ZXMoZWZmZWN0T2JzZXJ2YWJsZXMpO1xufVxuXG5mdW5jdGlvbiBzdGFydFN1YnNjcmlwdGlvbnMob2JzZXJ2YWJsZXM6IE9ic2VydmFibGU8dW5rbm93bj5bXSkge1xuICByZXR1cm4gb2JzZXJ2YWJsZXMubWFwKChvYnNlcnZhYmxlKSA9PiBvYnNlcnZhYmxlLnN1YnNjcmliZSgpKTtcbn1cblxuZnVuY3Rpb24gcHJvY2Vzc1JlZHV4PFNwZWMgZXh0ZW5kcyBBY3Rpb25zRm5TcGVjcywgUmV0dXJuVHlwZT4oXG4gIGFjdGlvbkZuU3BlY3M6IFNwZWMsXG4gIHJlZHVjZXI6IFJlZHVjZXJGYWN0b3J5PEFjdGlvbkZucywgdW5rbm93bj4sXG4gIGVmZmVjdHM6IEVmZmVjdHNGYWN0b3J5PEFjdGlvbkZucz4sXG4gIHN0b3JlOiB1bmtub3duXG4pIHtcbiAgY29uc3QgcmVkdWNlclJlZ2lzdHJ5OiBSZWNvcmQ8XG4gICAgc3RyaW5nLFxuICAgIChzdGF0ZTogdW5rbm93biwgcGF5bG9hZDogQWN0aW9uRm5QYXlsb2FkPHVua25vd24+KSA9PiB2b2lkXG4gID4gPSB7fTtcbiAgY29uc3QgZWZmZWN0c1JlZ2lzdHJ5OiBSZWNvcmQ8c3RyaW5nLCBTdWJqZWN0PEFjdGlvbkZuUGF5bG9hZDx1bmtub3duPj5bXT4gPVxuICAgIHt9O1xuICBjb25zdCBhY3Rpb25zTWFwID0gY3JlYXRlUHVibGljQW5kQWxsQWN0aW9uc0ZucyhcbiAgICBhY3Rpb25GblNwZWNzLFxuICAgIHJlZHVjZXJSZWdpc3RyeSxcbiAgICBlZmZlY3RzUmVnaXN0cnksXG4gICAgc3RvcmVcbiAgKTtcbiAgY29uc3QgYWN0aW9uRm5zID0gYWN0aW9uc01hcC5hbGw7XG4gIGNvbnN0IHB1YmxpY0FjdGlvbnNGbnMgPSBhY3Rpb25zTWFwLnB1YmxpY3M7XG5cbiAgZmlsbFJlZHVjZXJSZWdpc3RyeShyZWR1Y2VyLCBhY3Rpb25GbnMsIHJlZHVjZXJSZWdpc3RyeSk7XG4gIGNvbnN0IGVmZmVjdE9ic2VydmFibGVzID0gZmlsbEVmZmVjdHMoZWZmZWN0cywgYWN0aW9uRm5zLCBlZmZlY3RzUmVnaXN0cnkpO1xuICBjb25zdCBzdWJzY3JpcHRpb25zID0gc3RhcnRTdWJzY3JpcHRpb25zKGVmZmVjdE9ic2VydmFibGVzKTtcblxuICByZXR1cm4ge1xuICAgIG1ldGhvZHM6IHB1YmxpY0FjdGlvbnNGbnMgYXMgUmV0dXJuVHlwZSxcbiAgICBzdWJzY3JpcHRpb25zOiBzdWJzY3JpcHRpb25zLFxuICB9O1xufVxuXG4vKipcbiAqIEBwYXJhbSByZWR1eCByZWR1eFxuICpcbiAqIHByb3BlcnRpZXMgZG8gbm90IHN0YXJ0IHdpdGggYHdpdGhgIHNpbmNlIHRoZXkgYXJlIG5vdCBleHRlbnNpb24gZnVuY3Rpb25zIG9uIHRoZWlyIG93bi5cbiAqXG4gKiBubyBkZXBlbmRlbmN5IHRvIE5nUnhcbiAqXG4gKiBhY3Rpb25zIGFyZSBwYXNzZWQgdG8gcmVkdWNlciBhbmQgZWZmZWN0cywgYnV0IGl0IGlzIGFsc28gcG9zc2libGUgdG8gdXNlIG90aGVyIGFjdGlvbnMuXG4gKiBlZmZlY3RzIHByb3ZpZGUgZm9yQWN0aW9uIGFuZCBkbyBub3QgcmV0dXJuIGFueXRoaW5nLiB0aGF0IGlzIGltcG9ydGFudCBiZWNhdXNlIGVmZmVjdHMgc2hvdWxkIHN0YXkgaW5hY2Nlc3NpYmxlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aXRoUmVkdXg8XG4gIFNwZWMgZXh0ZW5kcyBBY3Rpb25zRm5TcGVjcyxcbiAgSW5wdXQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHQsXG4gIFN0YXRlQWN0aW9uRm5zIGV4dGVuZHMgQWN0aW9uRm5zQ3JlYXRvcjxTcGVjPiA9IEFjdGlvbkZuc0NyZWF0b3I8U3BlYz4sXG4gIFB1YmxpY1N0b3JlQWN0aW9uRm5zIGV4dGVuZHMgUHVibGljQWN0aW9uRm5zPFNwZWM+ID0gUHVibGljQWN0aW9uRm5zPFNwZWM+XG4+KHJlZHV4OiB7XG4gIGFjdGlvbnM6IFNwZWM7XG4gIHJlZHVjZXI6IFJlZHVjZXJGYWN0b3J5PFN0YXRlQWN0aW9uRm5zLCBTdGF0ZVNpZ25hbDxJbnB1dFsnc3RhdGUnXT4+O1xuICBlZmZlY3RzOiBFZmZlY3RzRmFjdG9yeTxTdGF0ZUFjdGlvbkZucz47XG59KTogU2lnbmFsU3RvcmVGZWF0dXJlPFxuICBJbnB1dCxcbiAgRW1wdHlGZWF0dXJlUmVzdWx0ICYgeyBtZXRob2RzOiBQdWJsaWNTdG9yZUFjdGlvbkZucyB9XG4+IHtcbiAgcmV0dXJuIChzdG9yZSkgPT4ge1xuICAgIGNvbnN0IHsgbWV0aG9kcyB9ID0gcHJvY2Vzc1JlZHV4PFNwZWMsIFB1YmxpY1N0b3JlQWN0aW9uRm5zPihcbiAgICAgIHJlZHV4LmFjdGlvbnMsXG4gICAgICByZWR1eC5yZWR1Y2VyIGFzIFJlZHVjZXJGYWN0b3J5PEFjdGlvbkZucywgdW5rbm93bj4sXG4gICAgICByZWR1eC5lZmZlY3RzIGFzIEVmZmVjdHNGYWN0b3J5PEFjdGlvbkZucz4sXG4gICAgICBzdG9yZVxuICAgICk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0b3JlLFxuICAgICAgbWV0aG9kcyxcbiAgICB9O1xuICB9O1xufVxuIl19
|
|
@@ -53,4 +53,4 @@ export function withStorageSync(configOrKey) {
|
|
|
53
53
|
},
|
|
54
54
|
}));
|
|
55
55
|
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1zdG9yYWdlLXN5bmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL25ncngtdG9vbGtpdC9zcmMvbGliL3dpdGgtc3RvcmFnZS1zeW5jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBRUwsUUFBUSxFQUNSLFVBQVUsRUFDVixrQkFBa0IsRUFDbEIsU0FBUyxFQUNULFdBQVcsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUl2QixNQUFNLElBQUksR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7QUFZdEIsTUFBTSxlQUFlLEdBR047SUFDYixZQUFZLEVBQUUsSUFBSTtJQUNsQixlQUFlLEVBQUUsSUFBSTtJQUNyQixjQUFjLEVBQUUsSUFBSTtDQUNyQixDQUFDO0FBc0RGLE1BQU0sVUFBVSxlQUFlLENBSTdCLFdBQWdEO0lBRWhELE1BQU0sRUFDSixHQUFHLEVBQ0gsUUFBUSxHQUFHLElBQUksRUFDZixNQUFNLEdBQUcsQ0FBQyxLQUFZLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFDaEMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQ2xCLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUMxQixPQUFPLEVBQUUsY0FBYyxHQUFHLEdBQUcsRUFBRSxDQUFDLFlBQVksR0FDN0MsR0FBRyxPQUFPLFdBQVcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7SUFFekUsT0FBTyxrQkFBa0IsQ0FDdkIsV0FBVyxDQUFDLENBQUMsS0FBSyxFQUFFLFVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRTtRQUN0RCxJQUFJLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDakMsT0FBTyxDQUFDLElBQUksQ0FDVix1RkFBdUYsQ0FDeEYsQ0FBQztZQUNGLE9BQU8sZUFBZSxDQUFDO1FBQ3pCLENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUVqQyxPQUFPO1lBQ0w7O2VBRUc7WUFDSCxZQUFZO2dCQUNWLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDMUIsQ0FBQztZQUNEOztlQUVHO1lBQ0gsZUFBZTtnQkFDYixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN6QyxJQUFJLFdBQVcsRUFBRSxDQUFDO29CQUNoQixVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO2dCQUN4QyxDQUFDO1lBQ0gsQ0FBQztZQUNEOztlQUVHO1lBQ0gsY0FBYztnQkFDWixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBVSxDQUFDLENBQUM7Z0JBQ3JELE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQy9DLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDO1FBQ1IsTUFBTSxDQUFDLEtBQUssRUFBRSxVQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztZQUM1QyxJQUFJLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLE9BQU87WUFDVCxDQUFDO1lBRUQsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBRXhCLE1BQU0sQ0FBQyxHQUFHLEVBQUU7b0JBQ1YsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN6QixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO0tBQ0YsQ0FBQyxDQUNILENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybVNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBQTEFURk9STV9JRCwgZWZmZWN0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNpZ25hbFN0b3JlRmVhdHVyZSxcbiAgZ2V0U3RhdGUsXG4gIHBhdGNoU3RhdGUsXG4gIHNpZ25hbFN0b3JlRmVhdHVyZSxcbiAgd2l0aEhvb2tzLFxuICB3aXRoTWV0aG9kcyxcbn0gZnJvbSAnQG5ncngvc2lnbmFscyc7XG5pbXBvcnQgeyBFbXB0eSB9IGZyb20gJy4vc2hhcmVkL2VtcHR5JztcbmltcG9ydCB7IFNpZ25hbFN0b3JlRmVhdHVyZVJlc3VsdCB9IGZyb20gJy4vc2hhcmVkL3NpZ25hbC1zdG9yZS1tb2RlbHMnO1xuXG5jb25zdCBOT09QID0gKCkgPT4ge307XG5cbnR5cGUgV2l0aFN0b3JhZ2VTeW5jRmVhdHVyZVJlc3VsdCA9IHtcbiAgc3RhdGU6IEVtcHR5O1xuICBjb21wdXRlZDogRW1wdHk7XG4gIG1ldGhvZHM6IHtcbiAgICBjbGVhclN0b3JhZ2UoKTogdm9pZDtcbiAgICByZWFkRnJvbVN0b3JhZ2UoKTogdm9pZDtcbiAgICB3cml0ZVRvU3RvcmFnZSgpOiB2b2lkO1xuICB9O1xufTtcblxuY29uc3QgU3RvcmFnZVN5bmNTdHViOiBQaWNrPFxuICBXaXRoU3RvcmFnZVN5bmNGZWF0dXJlUmVzdWx0LFxuICAnbWV0aG9kcydcbj5bJ21ldGhvZHMnXSA9IHtcbiAgY2xlYXJTdG9yYWdlOiBOT09QLFxuICByZWFkRnJvbVN0b3JhZ2U6IE5PT1AsXG4gIHdyaXRlVG9TdG9yYWdlOiBOT09QLFxufTtcblxuZXhwb3J0IHR5cGUgU3luY0NvbmZpZzxTdGF0ZT4gPSB7XG4gIC8qKlxuICAgKiBUaGUga2V5IHdoaWNoIGlzIHVzZWQgdG8gYWNjZXNzIHRoZSBzdG9yYWdlLlxuICAgKi9cbiAga2V5OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBGbGFnIGluZGljYXRpbmcgaWYgdGhlIHN0b3JlIHNob3VsZCByZWFkIGZyb20gc3RvcmFnZSBvbiBpbml0IGFuZCB3cml0ZSB0byBzdG9yYWdlIG9uIGV2ZXJ5IHN0YXRlIGNoYW5nZS5cbiAgICpcbiAgICogYHRydWVgIGJ5IGRlZmF1bHRcbiAgICovXG4gIGF1dG9TeW5jPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIHNlbGVjdCB0aGF0IHBvcnRpb24gb2YgdGhlIHN0YXRlIHdoaWNoIHNob3VsZCBiZSBzdG9yZWQuXG4gICAqXG4gICAqIFJldHVybnMgdGhlIHdob2xlIHN0YXRlIG9iamVjdCBieSBkZWZhdWx0XG4gICAqL1xuICBzZWxlY3Q/OiAoc3RhdGU6IFN0YXRlKSA9PiBQYXJ0aWFsPFN0YXRlPjtcbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHVzZWQgdG8gcGFyc2UgdGhlIHN0YXRlIGNvbWluZyBmcm9tIHN0b3JhZ2UuXG4gICAqXG4gICAqIGBKU09OLnBhcnNlKClgIGJ5IGRlZmF1bHRcbiAgICovXG4gIHBhcnNlPzogKHN0YXRlU3RyaW5nOiBzdHJpbmcpID0+IFN0YXRlO1xuICAvKipcbiAgICogRnVuY3Rpb24gdXNlZCB0byB0cmFuZm9ybSB0aGUgc3RhdGUgaW50byBhIHN0cmluZyByZXByZXNlbnRhdGlvbi5cbiAgICpcbiAgICogYEpTT04uc3RyaW5naWZ5KClgIGJ5IGRlZmF1bHRcbiAgICovXG4gIHN0cmluZ2lmeT86IChzdGF0ZTogU3RhdGUpID0+IHN0cmluZztcbiAgLyoqXG4gICAqIEZhY3RvcnkgZnVuY3Rpb24gdXNlZCB0byBzZWxlY3QgdGhlIHN0b3JhZ2UuXG4gICAqXG4gICAqIGBsb2NhbHN0b3JhZ2VgIGJ5IGRlZmF1bHRcbiAgICovXG4gIHN0b3JhZ2U/OiAoKSA9PiBTdG9yYWdlO1xufTtcblxuLyoqXG4gKiBFbmFibGVzIHN0b3JlIHN5bmNocm9uaXphdGlvbiB3aXRoIHN0b3JhZ2UuXG4gKlxuICogT25seSB3b3JrcyBvbiBicm93c2VyIHBsYXRmb3JtLlxuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aFN0b3JhZ2VTeW5jPFxuICBTdGF0ZSBleHRlbmRzIG9iamVjdCxcbiAgSW5wdXQgZXh0ZW5kcyBTaWduYWxTdG9yZUZlYXR1cmVSZXN1bHRcbj4oa2V5OiBzdHJpbmcpOiBTaWduYWxTdG9yZUZlYXR1cmU8SW5wdXQsIFdpdGhTdG9yYWdlU3luY0ZlYXR1cmVSZXN1bHQ+O1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhTdG9yYWdlU3luYzxcbiAgU3RhdGUgZXh0ZW5kcyBvYmplY3QsXG4gIElucHV0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0XG4+KFxuICBjb25maWc6IFN5bmNDb25maWc8SW5wdXRbJ3N0YXRlJ10+XG4pOiBTaWduYWxTdG9yZUZlYXR1cmU8SW5wdXQsIFdpdGhTdG9yYWdlU3luY0ZlYXR1cmVSZXN1bHQ+O1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhTdG9yYWdlU3luYzxcbiAgU3RhdGUgZXh0ZW5kcyBvYmplY3QsXG4gIElucHV0IGV4dGVuZHMgU2lnbmFsU3RvcmVGZWF0dXJlUmVzdWx0XG4+KFxuICBjb25maWdPcktleTogU3luY0NvbmZpZzxJbnB1dFsnc3RhdGUnXT4gfCBzdHJpbmdcbik6IFNpZ25hbFN0b3JlRmVhdHVyZTxJbnB1dCwgV2l0aFN0b3JhZ2VTeW5jRmVhdHVyZVJlc3VsdD4ge1xuICBjb25zdCB7XG4gICAga2V5LFxuICAgIGF1dG9TeW5jID0gdHJ1ZSxcbiAgICBzZWxlY3QgPSAoc3RhdGU6IFN0YXRlKSA9PiBzdGF0ZSxcbiAgICBwYXJzZSA9IEpTT04ucGFyc2UsXG4gICAgc3RyaW5naWZ5ID0gSlNPTi5zdHJpbmdpZnksXG4gICAgc3RvcmFnZTogc3RvcmFnZUZhY3RvcnkgPSAoKSA9PiBsb2NhbFN0b3JhZ2UsXG4gIH0gPSB0eXBlb2YgY29uZmlnT3JLZXkgPT09ICdzdHJpbmcnID8geyBrZXk6IGNvbmZpZ09yS2V5IH0gOiBjb25maWdPcktleTtcblxuICByZXR1cm4gc2lnbmFsU3RvcmVGZWF0dXJlKFxuICAgIHdpdGhNZXRob2RzKChzdG9yZSwgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCkpID0+IHtcbiAgICAgIGlmIChpc1BsYXRmb3JtU2VydmVyKHBsYXRmb3JtSWQpKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBgJ3dpdGhTdG9yYWdlU3luYycgcHJvdmlkZXMgbm9uLWZ1bmN0aW9uYWwgaW1wbGVtZW50YXRpb24gZHVlIHRvIHNlcnZlci1zaWRlIGV4ZWN1dGlvbmBcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIFN0b3JhZ2VTeW5jU3R1YjtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc3RvcmFnZSA9IHN0b3JhZ2VGYWN0b3J5KCk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBSZW1vdmVzIHRoZSBpdGVtIHN0b3JlZCBpbiBzdG9yYWdlLlxuICAgICAgICAgKi9cbiAgICAgICAgY2xlYXJTdG9yYWdlKCk6IHZvaWQge1xuICAgICAgICAgIHN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpO1xuICAgICAgICB9LFxuICAgICAgICAvKipcbiAgICAgICAgICogUmVhZHMgaXRlbSBmcm9tIHN0b3JhZ2UgYW5kIHBhdGNoZXMgdGhlIHN0YXRlLlxuICAgICAgICAgKi9cbiAgICAgICAgcmVhZEZyb21TdG9yYWdlKCk6IHZvaWQge1xuICAgICAgICAgIGNvbnN0IHN0YXRlU3RyaW5nID0gc3RvcmFnZS5nZXRJdGVtKGtleSk7XG4gICAgICAgICAgaWYgKHN0YXRlU3RyaW5nKSB7XG4gICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCBwYXJzZShzdGF0ZVN0cmluZykpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFdyaXRlcyBzZWxlY3RlZCBwb3J0aW9uIHRvIHN0b3JhZ2UuXG4gICAgICAgICAqL1xuICAgICAgICB3cml0ZVRvU3RvcmFnZSgpOiB2b2lkIHtcbiAgICAgICAgICBjb25zdCBzbGljZWRTdGF0ZSA9IHNlbGVjdChnZXRTdGF0ZShzdG9yZSkgYXMgU3RhdGUpO1xuICAgICAgICAgIHN0b3JhZ2Uuc2V0SXRlbShrZXksIHN0cmluZ2lmeShzbGljZWRTdGF0ZSkpO1xuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9KSxcbiAgICB3aXRoSG9va3Moe1xuICAgICAgb25Jbml0KHN0b3JlLCBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKSkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybVNlcnZlcihwbGF0Zm9ybUlkKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChhdXRvU3luYykge1xuICAgICAgICAgIHN0b3JlLnJlYWRGcm9tU3RvcmFnZSgpO1xuXG4gICAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIHN0b3JlLndyaXRlVG9TdG9yYWdlKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSlcbiAgKTtcbn1cbiJdfQ==
|
|
@@ -1,12 +1,17 @@
|
|
|
1
|
-
import { patchState, signalStoreFeature, withComputed, withHooks, withMethods } from
|
|
2
|
-
import { effect, signal, untracked, isSignal } from
|
|
3
|
-
import { capitalize } from
|
|
1
|
+
import { patchState, signalStoreFeature, withComputed, withHooks, withMethods, } from '@ngrx/signals';
|
|
2
|
+
import { effect, signal, untracked, isSignal } from '@angular/core';
|
|
3
|
+
import { capitalize } from './with-data-service';
|
|
4
4
|
const defaultOptions = {
|
|
5
|
-
maxStackSize: 100
|
|
5
|
+
maxStackSize: 100,
|
|
6
6
|
};
|
|
7
7
|
export function getUndoRedoKeys(collections) {
|
|
8
8
|
if (collections) {
|
|
9
|
-
return collections.flatMap(c => [
|
|
9
|
+
return collections.flatMap((c) => [
|
|
10
|
+
`${c}EntityMap`,
|
|
11
|
+
`${c}Ids`,
|
|
12
|
+
`selected${capitalize(c)}Ids`,
|
|
13
|
+
`${c}Filter`,
|
|
14
|
+
]);
|
|
10
15
|
}
|
|
11
16
|
return ['entityMap', 'ids', 'selectedIds', 'filter'];
|
|
12
17
|
}
|
|
@@ -15,7 +20,7 @@ export function withUndoRedo(options = {}) {
|
|
|
15
20
|
let skipOnce = false;
|
|
16
21
|
const normalized = {
|
|
17
22
|
...defaultOptions,
|
|
18
|
-
...options
|
|
23
|
+
...options,
|
|
19
24
|
};
|
|
20
25
|
//
|
|
21
26
|
// Design Decision: This feature has its own
|
|
@@ -32,7 +37,7 @@ export function withUndoRedo(options = {}) {
|
|
|
32
37
|
const keys = getUndoRedoKeys(normalized?.collections);
|
|
33
38
|
return signalStoreFeature(withComputed(() => ({
|
|
34
39
|
canUndo: canUndo.asReadonly(),
|
|
35
|
-
canRedo: canRedo.asReadonly()
|
|
40
|
+
canRedo: canRedo.asReadonly(),
|
|
36
41
|
})), withMethods((store) => ({
|
|
37
42
|
undo() {
|
|
38
43
|
const item = undoStack.pop();
|
|
@@ -57,7 +62,7 @@ export function withUndoRedo(options = {}) {
|
|
|
57
62
|
previous = item;
|
|
58
63
|
}
|
|
59
64
|
updateInternal();
|
|
60
|
-
}
|
|
65
|
+
},
|
|
61
66
|
})), withHooks({
|
|
62
67
|
onInit(store) {
|
|
63
68
|
effect(() => {
|
|
@@ -66,7 +71,7 @@ export function withUndoRedo(options = {}) {
|
|
|
66
71
|
if (s && isSignal(s)) {
|
|
67
72
|
return {
|
|
68
73
|
...acc,
|
|
69
|
-
[key]: s()
|
|
74
|
+
[key]: s(),
|
|
70
75
|
};
|
|
71
76
|
}
|
|
72
77
|
return acc;
|
|
@@ -75,6 +80,15 @@ export function withUndoRedo(options = {}) {
|
|
|
75
80
|
skipOnce = false;
|
|
76
81
|
return;
|
|
77
82
|
}
|
|
83
|
+
//
|
|
84
|
+
// Deep Comparison to prevent duplicated entries
|
|
85
|
+
// on the stack. This can e.g. happen after an undo
|
|
86
|
+
// if the component sends back the undone filter
|
|
87
|
+
// to the store.
|
|
88
|
+
//
|
|
89
|
+
if (JSON.stringify(cand) === JSON.stringify(previous)) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
78
92
|
// Clear redoStack after recorded action
|
|
79
93
|
redoStack.splice(0);
|
|
80
94
|
if (previous) {
|
|
@@ -87,7 +101,7 @@ export function withUndoRedo(options = {}) {
|
|
|
87
101
|
// Don't propogate current reactive context
|
|
88
102
|
untracked(() => updateInternal());
|
|
89
103
|
});
|
|
90
|
-
}
|
|
104
|
+
},
|
|
91
105
|
}));
|
|
92
106
|
}
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC11bmRvLXJlZG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL25ncngtdG9vbGtpdC9zcmMvbGliL3dpdGgtdW5kby1yZWRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBc0IsVUFBVSxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpILE9BQU8sRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUUsT0FBTyxFQUFVLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBVXpELE1BQU0sY0FBYyxHQUE4QjtJQUM5QyxZQUFZLEVBQUUsR0FBRztDQUNwQixDQUFDO0FBWUYsTUFBTSxVQUFVLGVBQWUsQ0FBQyxXQUFzQjtJQUNsRCxJQUFJLFdBQVcsRUFBRTtRQUNiLE9BQU8sV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsS0FBSyxFQUFFLFdBQVcsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7S0FDN0c7SUFDRCxPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDekQsQ0FBQztBQXdDRCxNQUFNLFVBQVUsWUFBWSxDQUE0QixVQUdwRCxFQUFFO0lBR0YsSUFBSSxRQUFRLEdBQXFCLElBQUksQ0FBQztJQUN0QyxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFFckIsTUFBTSxVQUFVLEdBQUc7UUFDZixHQUFHLGNBQWM7UUFDakIsR0FBRyxPQUFPO0tBQ2IsQ0FBQztJQUVGLEVBQUU7SUFDRiw0Q0FBNEM7SUFDNUMsa0JBQWtCO0lBQ2xCLEVBQUU7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UUFBUSxHQUFHLElBQUksQ0FBQztnQkFFaEIsMkNBQTJDO2dCQUMzQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztZQUN0QyxDQUFDLENBQUMsQ0FBQTtRQUNOLENBQUM7S0FDSixDQUFDLENBRUwsQ0FBQTtBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaWduYWxTdG9yZUZlYXR1cmUsIHBhdGNoU3RhdGUsIHNpZ25hbFN0b3JlRmVhdHVyZSwgd2l0aENvbXB1dGVkLCB3aXRoSG9va3MsIHdpdGhNZXRob2RzIH0gZnJvbSBcIkBuZ3J4L3NpZ25hbHNcIjtcbmltcG9ydCB7IEVudGl0eUlkLCBFbnRpdHlNYXAsIEVudGl0eVN0YXRlIH0gZnJvbSBcIkBuZ3J4L3NpZ25hbHMvZW50aXRpZXNcIjtcbmltcG9ydCB7IFNpZ25hbCwgZWZmZWN0LCBzaWduYWwsIHVudHJhY2tlZCwgaXNTaWduYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRW50aXR5U2lnbmFscywgTmFtZWRFbnRpdHlTaWduYWxzIH0gZnJvbSBcIkBuZ3J4L3NpZ25hbHMvZW50aXRpZXMvc3JjL21vZGVsc1wiO1xuaW1wb3J0IHsgRW50aXR5LCBjYXBpdGFsaXplIH0gZnJvbSBcIi4vd2l0aC1kYXRhLXNlcnZpY2VcIjtcbmltcG9ydCB7IEVtdHB5IH0gZnJvbSBcIi4vc2hhcmVkL2VtcHR5XCI7XG5cbmV4cG9ydCB0eXBlIFN0YWNrSXRlbSA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG5leHBvcnQgdHlwZSBOb3JtYWxpemVkVW5kb1JlZG9PcHRpb25zID0ge1xuICAgIG1heFN0YWNrU2l6ZTogbnVtYmVyO1xuICAgIGNvbGxlY3Rpb25zPzogc3RyaW5nW11cbn1cblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IE5vcm1hbGl6ZWRVbmRvUmVkb09wdGlvbnMgPSB7XG4gICAgbWF4U3RhY2tTaXplOiAxMDBcbn07XG5cbmV4cG9ydCB0eXBlIE5hbWVkVW5kb1JlZG9TdGF0ZTxDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nPiA9IHtcbiAgICBbSyBpbiBDb2xsZWN0aW9uIGFzIGAke0t9RW50aXR5TWFwYF06IEVudGl0eU1hcDxFbnRpdHk+O1xufSAmIHtcbiAgICAgICAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgJHtLfUlkc2BdOiBFbnRpdHlJZFtdO1xuICAgIH1cblxuZXhwb3J0IHR5cGUgTmFtZWRVbmRvUmVkb1NpZ25hbHM8Q29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4gPSB7XG4gICAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgJHtLfUVudGl0aWVzYF06IFNpZ25hbDxFbnRpdHlbXT5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFVuZG9SZWRvS2V5cyhjb2xsZWN0aW9ucz86IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgIGlmIChjb2xsZWN0aW9ucykge1xuICAgICAgICByZXR1cm4gY29sbGVjdGlvbnMuZmxhdE1hcChjID0+IFtgJHtjfUVudGl0eU1hcGAsIGAke2N9SWRzYCwgYHNlbGVjdGVkJHtjYXBpdGFsaXplKGMpfUlkc2AsIGAke2N9RmlsdGVyYF0pXG4gICAgfVxuICAgIHJldHVybiBbJ2VudGl0eU1hcCcsICdpZHMnLCAnc2VsZWN0ZWRJZHMnLCAnZmlsdGVyJ107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoVW5kb1JlZG88Q29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4ob3B0aW9ucz86IHsgbWF4U3RhY2tTaXplPzogbnVtYmVyOyBjb2xsZWN0aW9uczogQ29sbGVjdGlvbltdIH0pOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAge1xuICAgICAgICBzdGF0ZTogRW10cHksXG4gICAgICAgIC8vIFRoaXMgYWx0ZXJuYXRpdmUgYnJlYWtzIHR5cGUgaW5mZXJlbmNlOlxuICAgICAgICAvLyBzdGF0ZTogTmFtZWRFbnRpdHlTdGF0ZTxFbnRpdHksIENvbGxlY3Rpb24+XG4gICAgICAgIHNpZ25hbHM6IE5hbWVkRW50aXR5U2lnbmFsczxFbnRpdHksIENvbGxlY3Rpb24+LFxuICAgICAgICBtZXRob2RzOiBFbXRweVxuICAgIH0sXG4gICAge1xuICAgICAgICBzdGF0ZTogRW10cHksXG4gICAgICAgIHNpZ25hbHM6IHtcbiAgICAgICAgICAgIGNhblVuZG86IFNpZ25hbDxib29sZWFuPixcbiAgICAgICAgICAgIGNhblJlZG86IFNpZ25hbDxib29sZWFuPlxuICAgICAgICB9LFxuICAgICAgICBtZXRob2RzOiB7XG4gICAgICAgICAgICB1bmRvOiAoKSA9PiB2b2lkLFxuICAgICAgICAgICAgcmVkbzogKCkgPT4gdm9pZFxuICAgICAgICB9XG4gICAgfT47XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoVW5kb1JlZG8ob3B0aW9ucz86IHsgbWF4U3RhY2tTaXplPzogbnVtYmVyIH0pOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gICAge1xuICAgICAgICBzdGF0ZTogRW50aXR5U3RhdGU8RW50aXR5PixcbiAgICAgICAgc2lnbmFsczogRW50aXR5U2lnbmFsczxFbnRpdHk+LFxuICAgICAgICBtZXRob2RzOiBFbXRweVxuICAgIH0sXG4gICAge1xuICAgICAgICBzdGF0ZTogRW10cHksXG4gICAgICAgIHNpZ25hbHM6IHtcbiAgICAgICAgICAgIGNhblVuZG86IFNpZ25hbDxib29sZWFuPixcbiAgICAgICAgICAgIGNhblJlZG86IFNpZ25hbDxib29sZWFuPlxuICAgICAgICB9LFxuICAgICAgICBtZXRob2RzOiB7XG4gICAgICAgICAgICB1bmRvOiAoKSA9PiB2b2lkLFxuICAgICAgICAgICAgcmVkbzogKCkgPT4gdm9pZFxuICAgICAgICB9XG4gICAgfT47XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoVW5kb1JlZG88Q29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4ob3B0aW9uczoge1xuICAgIG1heFN0YWNrU2l6ZT86IG51bWJlcjtcbiAgICBjb2xsZWN0aW9ucz86IENvbGxlY3Rpb25bXVxufSA9IHt9KTogXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuU2lnbmFsU3RvcmVGZWF0dXJlPGFueSwgYW55PiB7XG4gICAgbGV0IHByZXZpb3VzOiBTdGFja0l0ZW0gfCBudWxsID0gbnVsbDtcbiAgICBsZXQgc2tpcE9uY2UgPSBmYWxzZTtcblxuICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSB7XG4gICAgICAgIC4uLmRlZmF1bHRPcHRpb25zLFxuICAgICAgICAuLi5vcHRpb25zXG4gICAgfTtcblxuICAgIC8vXG4gICAgLy8gRGVzaWduIERlY2lzaW9uOiBUaGlzIGZlYXR1cmUgaGFzIGl0cyBvd25cbiAgICAvLyBpbnRlcm5hbCBzdGF0ZS5cbiAgICAvL1xuXG4gICAgY29uc3QgdW5kb1N0YWNrOiBTdGFja0l0ZW1bXSA9IFtdO1xuICAgIGNvbnN0IHJlZG9TdGFjazogU3RhY2tJdGVtW10gPSBbXTtcblxuICAgIGNvbnN0IGNhblVuZG8gPSBzaWduYWwoZmFsc2UpO1xuICAgIGNvbnN0IGNhblJlZG8gPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgY29uc3QgdXBkYXRlSW50ZXJuYWwgPSAoKSA9PiB7XG4gICAgICAgIGNhblVuZG8uc2V0KHVuZG9TdGFjay5sZW5ndGggIT09IDApO1xuICAgICAgICBjYW5SZWRvLnNldChyZWRvU3RhY2subGVuZ3RoICE9PSAwKTtcbiAgICB9O1xuXG4gICAgY29uc3Qga2V5cyA9IGdldFVuZG9SZWRvS2V5cyhub3JtYWxpemVkPy5jb2xsZWN0aW9ucyk7XG5cbiAgICByZXR1cm4gc2lnbmFsU3RvcmVGZWF0dXJlKFxuXG4gICAgICAgIHdpdGhDb21wdXRlZCgoKSA9PiAoe1xuICAgICAgICAgICAgY2FuVW5kbzogY2FuVW5kby5hc1JlYWRvbmx5KCksXG4gICAgICAgICAgICBjYW5SZWRvOiBjYW5SZWRvLmFzUmVhZG9ubHkoKVxuICAgICAgICB9KSksXG4gICAgICAgIHdpdGhNZXRob2RzKChzdG9yZSkgPT4gKHtcbiAgICAgICAgICAgIHVuZG8oKTogdm9pZCB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IHVuZG9TdGFjay5wb3AoKTtcblxuICAgICAgICAgICAgICAgIGlmIChpdGVtICYmIHByZXZpb3VzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlZG9TdGFjay5wdXNoKHByZXZpb3VzKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICBza2lwT25jZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICBwcmV2aW91cyA9IGl0ZW07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdXBkYXRlSW50ZXJuYWwoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZWRvKCk6IHZvaWQge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSByZWRvU3RhY2sucG9wKCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoaXRlbSAmJiBwcmV2aW91cykge1xuICAgICAgICAgICAgICAgICAgICB1bmRvU3RhY2sucHVzaChwcmV2aW91cyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgc2tpcE9uY2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBwYXRjaFN0YXRlKHN0b3JlLCBpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgcHJldmlvdXMgPSBpdGVtO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHVwZGF0ZUludGVybmFsKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pKSxcbiAgICAgICAgd2l0aEhvb2tzKHtcbiAgICAgICAgICAgIG9uSW5pdChzdG9yZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pIHtcbiAgICAgICAgICAgICAgICBlZmZlY3QoKCkgPT4ge1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhbmQgPSBrZXlzLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHMgPSBzdG9yZVtrZXldO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHMgJiYgaXNTaWduYWwocykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5hY2MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrZXldOiBzKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgICAgICAgICB9LCB7fSk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHNraXBPbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBza2lwT25jZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gQ2xlYXIgcmVkb1N0YWNrIGFmdGVyIHJlY29yZGVkIGFjdGlvblxuICAgICAgICAgICAgICAgICAgICByZWRvU3RhY2suc3BsaWNlKDApO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2aW91cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdW5kb1N0YWNrLnB1c2gocHJldmlvdXMpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlZG9TdGFjay5sZW5ndGggPiBub3JtYWxpemVkLm1heFN0YWNrU2l6ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdW5kb1N0YWNrLnVuc2hpZnQoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHByZXZpb3VzID0gY2FuZDtcblxuICAgICAgICAgICAgICAgICAgICAvLyBEb24ndCBwcm9wb2dhdGUgY3VycmVudCByZWFjdGl2ZSBjb250ZXh0XG4gICAgICAgICAgICAgICAgICAgIHVudHJhY2tlZCgoKSA9PiB1cGRhdGVJbnRlcm5hbCgpKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuXG4gICAgKVxufVxuIl19
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC11bmRvLXJlZG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL25ncngtdG9vbGtpdC9zcmMvbGliL3dpdGgtdW5kby1yZWRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxVQUFVLEVBQ1Ysa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixTQUFTLEVBQ1QsV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFVLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBYXpELE1BQU0sY0FBYyxHQUE4QjtJQUNoRCxZQUFZLEVBQUUsR0FBRztDQUNsQixDQUFDO0FBWUYsTUFBTSxVQUFVLGVBQWUsQ0FBQyxXQUFzQjtJQUNwRCxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2hCLE9BQU8sV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDaEMsR0FBRyxDQUFDLFdBQVc7WUFDZixHQUFHLENBQUMsS0FBSztZQUNULFdBQVcsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLO1lBQzdCLEdBQUcsQ0FBQyxRQUFRO1NBQ2IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBK0NELE1BQU0sVUFBVSxZQUFZLENBQzFCLFVBR0ksRUFBRTtJQUdOLElBQUksUUFBUSxHQUFxQixJQUFJLENBQUM7SUFDdEMsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBRXJCLE1BQU0sVUFBVSxHQUFHO1FBQ2pCLEdBQUcsY0FBYztRQUNqQixHQUFHLE9BQU87S0FDWCxDQUFDO0lBRUYsRUFBRTtJQUNGLDRDQUE0QztJQUM1Qyxr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UUFBUSxDQUFDLEVBQUUsQ0FBQztvQkFDdEQsT0FBTztnQkFDVCxDQUFDO2dCQUVELHdDQUF3QztnQkFDeEMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFcEIsSUFBSSxRQUFRLEVBQUUsQ0FBQztvQkFDYixTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMzQixDQUFDO2dCQUVELElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQy9DLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDdEIsQ0FBQztnQkFFRCxRQUFRLEdBQUcsSUFBSSxDQUFDO2dCQUVoQiwyQ0FBMkM7Z0JBQzNDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1lBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUNGLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFNpZ25hbFN0b3JlRmVhdHVyZSxcbiAgcGF0Y2hTdGF0ZSxcbiAgc2lnbmFsU3RvcmVGZWF0dXJlLFxuICB3aXRoQ29tcHV0ZWQsXG4gIHdpdGhIb29rcyxcbiAgd2l0aE1ldGhvZHMsXG59IGZyb20gJ0BuZ3J4L3NpZ25hbHMnO1xuaW1wb3J0IHsgRW50aXR5SWQsIEVudGl0eU1hcCwgRW50aXR5U3RhdGUgfSBmcm9tICdAbmdyeC9zaWduYWxzL2VudGl0aWVzJztcbmltcG9ydCB7IFNpZ25hbCwgZWZmZWN0LCBzaWduYWwsIHVudHJhY2tlZCwgaXNTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVudGl0eSwgY2FwaXRhbGl6ZSB9IGZyb20gJy4vd2l0aC1kYXRhLXNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgRW50aXR5Q29tcHV0ZWQsXG4gIE5hbWVkRW50aXR5Q29tcHV0ZWQsXG59IGZyb20gJy4vc2hhcmVkL3NpZ25hbC1zdG9yZS1tb2RlbHMnO1xuXG5leHBvcnQgdHlwZSBTdGFja0l0ZW0gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuZXhwb3J0IHR5cGUgTm9ybWFsaXplZFVuZG9SZWRvT3B0aW9ucyA9IHtcbiAgbWF4U3RhY2tTaXplOiBudW1iZXI7XG4gIGNvbGxlY3Rpb25zPzogc3RyaW5nW107XG59O1xuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogTm9ybWFsaXplZFVuZG9SZWRvT3B0aW9ucyA9IHtcbiAgbWF4U3RhY2tTaXplOiAxMDAsXG59O1xuXG5leHBvcnQgdHlwZSBOYW1lZFVuZG9SZWRvU3RhdGU8Q29sbGVjdGlvbiBleHRlbmRzIHN0cmluZz4gPSB7XG4gIFtLIGluIENvbGxlY3Rpb24gYXMgYCR7S31FbnRpdHlNYXBgXTogRW50aXR5TWFwPEVudGl0eT47XG59ICYge1xuICBbSyBpbiBDb2xsZWN0aW9uIGFzIGAke0t9SWRzYF06IEVudGl0eUlkW107XG59O1xuXG5leHBvcnQgdHlwZSBOYW1lZFVuZG9SZWRvU2lnbmFsczxDb2xsZWN0aW9uIGV4dGVuZHMgc3RyaW5nPiA9IHtcbiAgW0sgaW4gQ29sbGVjdGlvbiBhcyBgJHtLfUVudGl0aWVzYF06IFNpZ25hbDxFbnRpdHlbXT47XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VW5kb1JlZG9LZXlzKGNvbGxlY3Rpb25zPzogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gIGlmIChjb2xsZWN0aW9ucykge1xuICAgIHJldHVybiBjb2xsZWN0aW9ucy5mbGF0TWFwKChjKSA9PiBbXG4gICAgICBgJHtjfUVudGl0eU1hcGAsXG4gICAgICBgJHtjfUlkc2AsXG4gICAgICBgc2VsZWN0ZWQke2NhcGl0YWxpemUoYyl9SWRzYCxcbiAgICAgIGAke2N9RmlsdGVyYCxcbiAgICBdKTtcbiAgfVxuICByZXR1cm4gWydlbnRpdHlNYXAnLCAnaWRzJywgJ3NlbGVjdGVkSWRzJywgJ2ZpbHRlciddO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2l0aFVuZG9SZWRvPENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmc+KG9wdGlvbnM/OiB7XG4gIG1heFN0YWNrU2l6ZT86IG51bWJlcjtcbiAgY29sbGVjdGlvbnM6IENvbGxlY3Rpb25bXTtcbn0pOiBTaWduYWxTdG9yZUZlYXR1cmU8XG4gIHtcbiAgICBzdGF0ZToge307XG4gICAgLy8gVGhpcyBhbHRlcm5hdGl2ZSBicmVha3MgdHlwZSBpbmZlcmVuY2U6XG4gICAgLy8gc3RhdGU6IE5hbWVkRW50aXR5U3RhdGU8RW50aXR5LCBDb2xsZWN0aW9uPlxuICAgIGNvbXB1dGVkOiBOYW1lZEVudGl0eUNvbXB1dGVkPEVudGl0eSwgQ29sbGVjdGlvbj47XG4gICAgbWV0aG9kczoge307XG4gIH0sXG4gIHtcbiAgICBzdGF0ZToge307XG4gICAgY29tcHV0ZWQ6IHtcbiAgICAgIGNhblVuZG86IFNpZ25hbDxib29sZWFuPjtcbiAgICAgIGNhblJlZG86IFNpZ25hbDxib29sZWFuPjtcbiAgICB9O1xuICAgIG1ldGhvZHM6IHtcbiAgICAgIHVuZG86ICgpID0+IHZvaWQ7XG4gICAgICByZWRvOiAoKSA9PiB2b2lkO1xuICAgIH07XG4gIH1cbj47XG5cbmV4cG9ydCBmdW5jdGlvbiB3aXRoVW5kb1JlZG8ob3B0aW9ucz86IHtcbiAgbWF4U3RhY2tTaXplPzogbnVtYmVyO1xufSk6IFNpZ25hbFN0b3JlRmVhdHVyZTxcbiAge1xuICAgIHN0YXRlOiBFbnRpdHlTdGF0ZTxFbnRpdHk+O1xuICAgIGNvbXB1dGVkOiBFbnRpdHlDb21wdXRlZDxFbnRpdHk+O1xuICAgIG1ldGhvZHM6IHt9O1xuICB9LFxuICB7XG4gICAgc3RhdGU6IHt9O1xuICAgIGNvbXB1dGVkOiB7XG4gICAgICBjYW5VbmRvOiBTaWduYWw8Ym9vbGVhbj47XG4gICAgICBjYW5SZWRvOiBTaWduYWw8Ym9vbGVhbj47XG4gICAgfTtcbiAgICBtZXRob2RzOiB7XG4gICAgICB1bmRvOiAoKSA9PiB2b2lkO1xuICAgICAgcmVkbzogKCkgPT4gdm9pZDtcbiAgICB9O1xuICB9XG4+O1xuXG5leHBvcnQgZnVuY3Rpb24gd2l0aFVuZG9SZWRvPENvbGxlY3Rpb24gZXh0ZW5kcyBzdHJpbmc+KFxuICBvcHRpb25zOiB7XG4gICAgbWF4U3RhY2tTaXplPzogbnVtYmVyO1xuICAgIGNvbGxlY3Rpb25zPzogQ29sbGVjdGlvbltdO1xuICB9ID0ge31cbik6IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5TaWduYWxTdG9yZUZlYXR1cmU8YW55LCBhbnk+IHtcbiAgbGV0IHByZXZpb3VzOiBTdGFja0l0ZW0gfCBudWxsID0gbnVsbDtcbiAgbGV0IHNraXBPbmNlID0gZmFsc2U7XG5cbiAgY29uc3Qgbm9ybWFsaXplZCA9IHtcbiAgICAuLi5kZWZhdWx0T3B0aW9ucyxcbiAgICAuLi5vcHRpb25zLFxuICB9O1xuXG4gIC8vXG4gIC8vIERlc2lnbiBEZWNpc2lvbjogVGhpcyBmZWF0dXJlIGhhcyBpdHMgb3duXG4gIC8vIGludGVybmFsIHN0YXRlLlxuICAvL1xuXG4gIGNvbnN0IHVuZG9TdGFjazogU3RhY2tJdGVtW10gPSBbXTtcbiAgY29uc3QgcmVkb1N0YWNrOiBTdGFja0l0ZW1bXSA9IFtdO1xuXG4gIGNvbnN0IGNhblVuZG8gPSBzaWduYWwoZmFsc2UpO1xuICBjb25zdCBjYW5SZWRvID0gc2lnbmFsKGZhbHNlKTtcblxuICBjb25zdCB1cGRhdGVJbnRlcm5hbCA9ICgpID0+IHtcbiAgICBjYW5VbmRvLnNldCh1bmRvU3RhY2subGVuZ3RoICE9PSAwKTtcbiAgICBjYW5SZWRvLnNldChyZWRvU3RhY2subGVuZ3RoICE9PSAwKTtcbiAgfTtcblxuICBjb25zdCBrZXlzID0gZ2V0VW5kb1JlZG9LZXlzKG5vcm1hbGl6ZWQ/LmNvbGxlY3Rpb25zKTtcblxuICByZXR1cm4gc2lnbmFsU3RvcmVGZWF0dXJlKFxuICAgIHdpdGhDb21wdXRlZCgoKSA9PiAoe1xuICAgICAgY2FuVW5kbzogY2FuVW5kby5hc1JlYWRvbmx5KCksXG4gICAgICBjYW5SZWRvOiBjYW5SZWRvLmFzUmVhZG9ubHkoKSxcbiAgICB9KSksXG4gICAgd2l0aE1ldGhvZHMoKHN0b3JlKSA9PiAoe1xuICAgICAgdW5kbygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaXRlbSA9IHVuZG9TdGFjay5wb3AoKTtcblxuICAgICAgICBpZiAoaXRlbSAmJiBwcmV2aW91cykge1xuICAgICAgICAgIHJlZG9TdGFjay5wdXNoKHByZXZpb3VzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgc2tpcE9uY2UgPSB0cnVlO1xuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIGl0ZW0pO1xuICAgICAgICAgIHByZXZpb3VzID0gaXRlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIHVwZGF0ZUludGVybmFsKCk7XG4gICAgICB9LFxuICAgICAgcmVkbygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaXRlbSA9IHJlZG9TdGFjay5wb3AoKTtcblxuICAgICAgICBpZiAoaXRlbSAmJiBwcmV2aW91cykge1xuICAgICAgICAgIHVuZG9TdGFjay5wdXNoKHByZXZpb3VzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgc2tpcE9uY2UgPSB0cnVlO1xuICAgICAgICAgIHBhdGNoU3RhdGUoc3RvcmUsIGl0ZW0pO1xuICAgICAgICAgIHByZXZpb3VzID0gaXRlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIHVwZGF0ZUludGVybmFsKCk7XG4gICAgICB9LFxuICAgIH0pKSxcbiAgICB3aXRoSG9va3Moe1xuICAgICAgb25Jbml0KHN0b3JlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikge1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNhbmQgPSBrZXlzLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHMgPSBzdG9yZVtrZXldO1xuICAgICAgICAgICAgaWYgKHMgJiYgaXNTaWduYWwocykpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5hY2MsXG4gICAgICAgICAgICAgICAgW2tleV06IHMoKSxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgfSwge30pO1xuXG4gICAgICAgICAgaWYgKHNraXBPbmNlKSB7XG4gICAgICAgICAgICBza2lwT25jZSA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vXG4gICAgICAgICAgLy8gRGVlcCBDb21wYXJpc29uIHRvIHByZXZlbnQgZHVwbGljYXRlZCBlbnRyaWVzXG4gICAgICAgICAgLy8gb24gdGhlIHN0YWNrLiBUaGlzIGNhbiBlLmcuIGhhcHBlbiBhZnRlciBhbiB1bmRvXG4gICAgICAgICAgLy8gaWYgdGhlIGNvbXBvbmVudCBzZW5kcyBiYWNrIHRoZSB1bmRvbmUgZmlsdGVyXG4gICAgICAgICAgLy8gdG8gdGhlIHN0b3JlLlxuICAgICAgICAgIC8vXG4gICAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KGNhbmQpID09PSBKU09OLnN0cmluZ2lmeShwcmV2aW91cykpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBDbGVhciByZWRvU3RhY2sgYWZ0ZXIgcmVjb3JkZWQgYWN0aW9uXG4gICAgICAgICAgcmVkb1N0YWNrLnNwbGljZSgwKTtcblxuICAgICAgICAgIGlmIChwcmV2aW91cykge1xuICAgICAgICAgICAgdW5kb1N0YWNrLnB1c2gocHJldmlvdXMpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChyZWRvU3RhY2subGVuZ3RoID4gbm9ybWFsaXplZC5tYXhTdGFja1NpemUpIHtcbiAgICAgICAgICAgIHVuZG9TdGFjay51bnNoaWZ0KCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcHJldmlvdXMgPSBjYW5kO1xuXG4gICAgICAgICAgLy8gRG9uJ3QgcHJvcG9nYXRlIGN1cnJlbnQgcmVhY3RpdmUgY29udGV4dFxuICAgICAgICAgIHVudHJhY2tlZCgoKSA9PiB1cGRhdGVJbnRlcm5hbCgpKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pXG4gICk7XG59XG4iXX0=
|