@agilemotion/oui-react-js 2.0.14 → 2.0.15
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/dist/RestService.js +12 -4
- package/dist/RestUtils.js +33 -4
- package/dist/Utils.js +82 -1
- package/dist/components/AlertBar.js +22 -10
- package/dist/components/Button.js +19 -7
- package/dist/components/DataGrid.js +86 -13
- package/dist/components/ProgressTracker.js +195 -37
- package/dist/components/StepperTitleBar.js +28 -24
- package/dist/components/Turnstile.js +14 -3
- package/dist/event/RouteActionHandler.js +28 -4
- package/dist/event/ServiceCallActionHandler.js +56 -17
- package/dist/view/Dashboard.js +4 -1
- package/dist/view/security/RegisterInteractionPortal.js +100 -14
- package/package.json +1 -1
|
@@ -82,7 +82,14 @@ const Turnstile = /*#__PURE__*/_react.default.memo(props => {
|
|
|
82
82
|
if (cancelled || !containerRef.current || !window.turnstile) {
|
|
83
83
|
return;
|
|
84
84
|
}
|
|
85
|
-
|
|
85
|
+
// `action` is a Cloudflare-side label echoed back in the
|
|
86
|
+
// siteverify response. The backend verifier matches it
|
|
87
|
+
// against application.security.turnstile.expected-action
|
|
88
|
+
// so a token minted for one surface can't be replayed
|
|
89
|
+
// against another. Sourced from CDUI config; omitted when
|
|
90
|
+
// the view didn't set it (Cloudflare treats undefined as
|
|
91
|
+
// a wildcard).
|
|
92
|
+
const renderOptions = {
|
|
86
93
|
sitekey: SITE_KEY,
|
|
87
94
|
callback: newToken => {
|
|
88
95
|
setToken(newToken);
|
|
@@ -95,7 +102,11 @@ const Turnstile = /*#__PURE__*/_react.default.memo(props => {
|
|
|
95
102
|
'expired-callback': () => {
|
|
96
103
|
setToken(null);
|
|
97
104
|
}
|
|
98
|
-
}
|
|
105
|
+
};
|
|
106
|
+
if (parsedConfig.action) {
|
|
107
|
+
renderOptions.action = parsedConfig.action;
|
|
108
|
+
}
|
|
109
|
+
widgetIdRef.current = window.turnstile.render(containerRef.current, renderOptions);
|
|
99
110
|
}).catch(e => console.error('Turnstile: failed to load vendor script', e));
|
|
100
111
|
|
|
101
112
|
// Fire COMPONENT_LOAD so any view-level eventHandlingConfig keyed
|
|
@@ -148,4 +159,4 @@ const Turnstile = /*#__PURE__*/_react.default.memo(props => {
|
|
|
148
159
|
}));
|
|
149
160
|
});
|
|
150
161
|
var _default = exports.default = Turnstile;
|
|
151
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9PYnNlcnZhYmxlIiwiX0V2ZW50IiwiX0V2ZW50VHlwZSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIlRVUk5TVElMRV9TQ1JJUFRfVVJMIiwiU0lURV9LRVkiLCJwcm9jZXNzIiwiZW52IiwiUkVBQ1RfQVBQX1RVUk5TVElMRV9TSVRFX0tFWSIsInNjcmlwdExvYWRQcm9taXNlIiwibG9hZFR1cm5zdGlsZVNjcmlwdCIsIndpbmRvdyIsInR1cm5zdGlsZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0Iiwic2NyaXB0IiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50Iiwic3JjIiwiYXN5bmMiLCJkZWZlciIsIm9ubG9hZCIsIm9uZXJyb3IiLCJoZWFkIiwiYXBwZW5kQ2hpbGQiLCJUdXJuc3RpbGUiLCJSZWFjdCIsIm1lbW8iLCJwcm9wcyIsImNvbnRhaW5lclJlZiIsInVzZVJlZiIsIndpZGdldElkUmVmIiwidG9rZW4iLCJzZXRUb2tlbiIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwiaGFuZGxlIiwiYXBpIiwicGFyc2VkQ29uZmlnIiwiVXRpbHMiLCJwYXJzZUNvbmZpZyIsImNvbmZpZyIsInZpZXdJZCIsImV2ZW50TWFuYWdlciIsImFkZFN1YnNjcmlwdGlvbnMiLCJldmVudEhhbmRsaW5nQ29uZmlnIiwiYWRkU3lzdGVtU3Vic2NyaXB0aW9ucyIsImNvbnNvbGUiLCJlcnJvciIsImNhbmNlbGxlZCIsInRoZW4iLCJjdXJyZW50IiwicmVuZGVyIiwic2l0ZWtleSIsImNhbGxiYWNrIiwibmV3VG9rZW4iLCJldmVudCIsIkV2ZW50IiwiZmlyZUV2ZW50IiwiRXZlbnRUeXBlIiwiVkFMVUVfQ0hBTkdFIiwiZXJyb3ItY2FsbGJhY2siLCJleHBpcmVkLWNhbGxiYWNrIiwiY2F0Y2giLCJsb2FkRXZlbnQiLCJDT01QT05FTlRfTE9BRCIsInJlbW92ZSIsImNsZWFyQ29tcG9uZW50RXZlbnRMaXN0ZW5lcnMiLCJpZCIsInZhbHVlIiwiZ2V0Q2hpbGRyZW4iLCJyZXNldCIsInJlZnJlc2giLCJzdHlsZSIsIm1lcmdlU3R5bGVzIiwibWFyZ2luIiwicmVmIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL1R1cm5zdGlsZS5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBVdGlscyBmcm9tICcuLi9VdGlscyc7XG5pbXBvcnQgZXZlbnRNYW5hZ2VyIGZyb20gJy4uL2V2ZW50L09ic2VydmFibGUnO1xuaW1wb3J0IEV2ZW50IGZyb20gJy4uL2V2ZW50L0V2ZW50JztcbmltcG9ydCBFdmVudFR5cGUgZnJvbSAnLi4vZXZlbnQvRXZlbnRUeXBlJztcblxuLyoqXG4gKiBDRFVJLXdyYXBwZWQgQ2xvdWRmbGFyZSBUdXJuc3RpbGUgd2lkZ2V0LiBEcm9wcyB0aGUgd2lkZ2V0IGludG8gYVxuICogbGF5b3V0IHRoZSBzYW1lIHdheSBhbnkgb3RoZXIgQ0RVSSBjb21wb25lbnQgZG9lcyBhbmQgZXhwb3NlcyB0aGVcbiAqIHJlc29sdmVkIGNoYWxsZW5nZSB0b2tlbiB0aHJvdWdoIHtAY29kZSBoYW5kbGUuYXBpLnZhbHVlfSwgc28gdmlld1xuICogYXV0aG9ycyBjYW4gcmVmZXJlbmNlIGl0IGZyb20gb3RoZXIgY29tcG9uZW50cyAvIHNlcnZpY2UgY2FsbHMgdmlhXG4gKiB7QGNvZGUgQCN7dHVybnN0aWxlfS52YWx1ZX0gd2hlbiB3aXJpbmcgdXAgYW4gaHR0cFBhcmFtZXRlclR5cGUuXG4gKlxuICogPHA+TG9hZHMgQ2xvdWRmbGFyZSdzIHZlbmRvciBzY3JpcHQgbGF6aWx5IG9uIGZpcnN0IG1vdW50LiBUaGUgc2NyaXB0XG4gKiBkZWZpbmVzIHtAY29kZSB3aW5kb3cudHVybnN0aWxlfSB3aGljaCBleHBvc2VzIHtAY29kZSByZW5kZXIoKX0g4oCUXG4gKiB3ZSByZW5kZXIgZXhwbGljaXRseSAobm90IGF1dG8tcmVuZGVyIHZpYSBjbGFzcz1cImNmLXR1cm5zdGlsZVwiKSBzb1xuICogdGhlIFJlYWN0IGxpZmVjeWNsZSBjYW4gaXNzdWUgYSB7QGNvZGUgcmVzZXR9IHdoZW4gdGhlIHBhcmVudCB2aWV3XG4gKiByZS1tb3VudHMuXG4gKlxuICogPHA+U2l0ZSBrZXkgaXMgc291cmNlZCBmcm9tIHtAY29kZSBSRUFDVF9BUFBfVFVSTlNUSUxFX1NJVEVfS0VZfSBhdFxuICogYnVpbGQgdGltZSAobWF0Y2hlcyB0aGUgcHJvamVjdCdzIGV4aXN0aW5nIFJFQUNUX0FQUF8qIGNvbnZlbnRpb24pLFxuICogTk9UIGZyb20gQ0RVSSBKU09OIOKAlCB2aWV3IGF1dGhvcnMgc2hvdWxkbid0IGhhdmUgdG8ga25vdyB0aGUga2V5LlxuICogRm9yIGRldiwgaG9zdG5hbWUge0Bjb2RlIGxvY2FsaG9zdH0gaXMgZXhwbGljaXRseSBzdXBwb3J0ZWQgYnlcbiAqIENsb3VkZmxhcmUgc28gdGhlIHNhbWUgZW52IHZhciBjYW4gYmUgdXNlZCB1bmNoYW5nZWQuXG4gKi9cbmNvbnN0IFRVUk5TVElMRV9TQ1JJUFRfVVJMID0gJ2h0dHBzOi8vY2hhbGxlbmdlcy5jbG91ZGZsYXJlLmNvbS90dXJuc3RpbGUvdjAvYXBpLmpzP3JlbmRlcj1leHBsaWNpdCc7XG5cbi8vIENsb3VkZmxhcmUgVHVybnN0aWxlJ3MgXCJzaXRlIGtleVwiIGlzIGludGVudGlvbmFsbHkgcHVibGljIChpdCdzIHRoZVxuLy8gcHVibGlzaGFibGUgaWRlbnRpZmllciwgYW5hbG9nb3VzIHRvIFN0cmlwZSdzIHB1Ymxpc2hhYmxlIGtleSkgYW5kXG4vLyBpcyBob3N0bmFtZS1ib3VuZCBvbiB0aGUgQ2xvdWRmbGFyZSBzaWRlLCBzbyBsZWFraW5nIGl0IGNhbid0IGJlXG4vLyB1c2VkIGFnYWluc3Qgb3RoZXIgZG9tYWlucy4gRXZlbiBzbywgc291cmNpbmcgaXQgZnJvbSBhbiBlbnYgdmFyXG4vLyBrZWVwcyBkZXYvc3RhZ2luZy9wcm9kIHN3YXBwYWJsZSB3aXRob3V0IGEgY29kZSBjaGFuZ2Ug4oCUIHNhbWUgc2hhcGVcbi8vIHRoZSBjb2RlYmFzZSBhbHJlYWR5IHVzZXMgZm9yIFJFQUNUX0FQUF9ET0NTX0FQSV9IT1NUIGV0Yy4gU2V0XG4vLyBSRUFDVF9BUFBfVFVSTlNUSUxFX1NJVEVfS0VZIHBlciBlbnZpcm9ubWVudC5cbmNvbnN0IFNJVEVfS0VZID0gcHJvY2Vzcy5lbnYuUkVBQ1RfQVBQX1RVUk5TVElMRV9TSVRFX0tFWTtcblxubGV0IHNjcmlwdExvYWRQcm9taXNlID0gbnVsbDtcbmNvbnN0IGxvYWRUdXJuc3RpbGVTY3JpcHQgPSAoKSA9PiB7XG4gICAgaWYgKHNjcmlwdExvYWRQcm9taXNlKSB7XG4gICAgICAgIHJldHVybiBzY3JpcHRMb2FkUHJvbWlzZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIHdpbmRvdy50dXJuc3RpbGUpIHtcbiAgICAgICAgc2NyaXB0TG9hZFByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgcmV0dXJuIHNjcmlwdExvYWRQcm9taXNlO1xuICAgIH1cbiAgICBzY3JpcHRMb2FkUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICAgIHNjcmlwdC5zcmMgPSBUVVJOU1RJTEVfU0NSSVBUX1VSTDtcbiAgICAgICAgc2NyaXB0LmFzeW5jID0gdHJ1ZTtcbiAgICAgICAgc2NyaXB0LmRlZmVyID0gdHJ1ZTtcbiAgICAgICAgc2NyaXB0Lm9ubG9hZCA9ICgpID0+IHJlc29sdmUoKTtcbiAgICAgICAgc2NyaXB0Lm9uZXJyb3IgPSAoZSkgPT4ge1xuICAgICAgICAgICAgc2NyaXB0TG9hZFByb21pc2UgPSBudWxsOyAvLyBhbGxvdyByZXRyeSBuZXh0IG1vdW50XG4gICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgIH07XG4gICAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICB9KTtcbiAgICByZXR1cm4gc2NyaXB0TG9hZFByb21pc2U7XG59O1xuXG5jb25zdCBUdXJuc3RpbGUgPSBSZWFjdC5tZW1vKChwcm9wcykgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCB3aWRnZXRJZFJlZiA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBbdG9rZW4sIHNldFRva2VuXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgcHJvcHMuaGFuZGxlLmFwaSA9IGFwaSgpO1xuICAgIH0pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3QgcGFyc2VkQ29uZmlnID0gVXRpbHMucGFyc2VDb25maWcocHJvcHMuY29uZmlnLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICBldmVudE1hbmFnZXIuYWRkU3Vic2NyaXB0aW9ucyhwYXJzZWRDb25maWcuZXZlbnRIYW5kbGluZ0NvbmZpZywgcHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICBldmVudE1hbmFnZXIuYWRkU3lzdGVtU3Vic2NyaXB0aW9ucyhwcm9wcy52aWV3SWQsIHBhcnNlZENvbmZpZyk7XG5cbiAgICAgICAgaWYgKCFTSVRFX0tFWSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignVHVybnN0aWxlOiBSRUFDVF9BUFBfVFVSTlNUSUxFX1NJVEVfS0VZIGVudiB2YXIgaXMgbm90IHNldCDigJQgdGhlIHdpZGdldCB3aWxsIG5vdCByZW5kZXInKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBjYW5jZWxsZWQgPSBmYWxzZTtcbiAgICAgICAgbG9hZFR1cm5zdGlsZVNjcmlwdCgpXG4gICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNhbmNlbGxlZCB8fCAhY29udGFpbmVyUmVmLmN1cnJlbnQgfHwgIXdpbmRvdy50dXJuc3RpbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB3aWRnZXRJZFJlZi5jdXJyZW50ID0gd2luZG93LnR1cm5zdGlsZS5yZW5kZXIoY29udGFpbmVyUmVmLmN1cnJlbnQsIHtcbiAgICAgICAgICAgICAgICAgICAgc2l0ZWtleTogU0lURV9LRVksXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrOiAobmV3VG9rZW4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRva2VuKG5ld1Rva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IEV2ZW50KHByb3BzLmhhbmRsZSwgcHJvcHMudmlld0lkLCBuZXdUb2tlbik7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudE1hbmFnZXIuZmlyZUV2ZW50KEV2ZW50VHlwZS5WQUxVRV9DSEFOR0UsIGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgJ2Vycm9yLWNhbGxiYWNrJzogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VG9rZW4obnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICdleHBpcmVkLWNhbGxiYWNrJzogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VG9rZW4obnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKChlKSA9PiBjb25zb2xlLmVycm9yKCdUdXJuc3RpbGU6IGZhaWxlZCB0byBsb2FkIHZlbmRvciBzY3JpcHQnLCBlKSk7XG5cbiAgICAgICAgLy8gRmlyZSBDT01QT05FTlRfTE9BRCBzbyBhbnkgdmlldy1sZXZlbCBldmVudEhhbmRsaW5nQ29uZmlnIGtleWVkXG4gICAgICAgIC8vIG9uIHRoZSB0dXJuc3RpbGUgY29tcG9uZW50J3MgbG9hZCBjYW4gaG9vayBpbiAobWlycm9ycyB0aGVcbiAgICAgICAgLy8gcGF0dGVybiB1c2VkIGJ5IEh0bWxQYW5lbCAvIG90aGVyIENEVUkgY29tcG9uZW50cykuXG4gICAgICAgIGNvbnN0IGxvYWRFdmVudCA9IG5ldyBFdmVudChwcm9wcy5oYW5kbGUsIHByb3BzLnZpZXdJZCwgbnVsbCk7XG4gICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLkNPTVBPTkVOVF9MT0FELCBsb2FkRXZlbnQpO1xuXG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBjYW5jZWxsZWQgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKHdpZGdldElkUmVmLmN1cnJlbnQgJiYgd2luZG93LnR1cm5zdGlsZSkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy50dXJuc3RpbGUucmVtb3ZlKHdpZGdldElkUmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gdHVybnN0aWxlLnJlbW92ZSB0aHJvd3MgaWYgdGhlIHdpZGdldCBpZCBpcyB1bmtub3duXG4gICAgICAgICAgICAgICAgICAgIC8vIChlLmcuIHNjcmlwdCB1bmxvYWRlZCBtaWQtY2xlYW51cCkg4oCUIHNhZmUgdG8gaWdub3JlLlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB3aWRnZXRJZFJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGV2ZW50TWFuYWdlci5jbGVhckNvbXBvbmVudEV2ZW50TGlzdGVuZXJzKHByb3BzLmhhbmRsZSk7XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3QgYXBpID0gKCkgPT4gKHtcbiAgICAgICAgZ2V0IGlkKCkge1xuICAgICAgICAgICAgcmV0dXJuIHByb3BzLmNvbmZpZy5pZDtcbiAgICAgICAgfSxcbiAgICAgICAgLy8gVGhlIGNoYWxsZW5nZSB0b2tlbiB0aGUgYmFja2VuZCBzaXRldmVyaWZpZXMgYWdhaW5zdC4gTnVsbFxuICAgICAgICAvLyBiZWZvcmUgdGhlIHdpZGdldCByZXNvbHZlczsgQ0RVSSBzZXJ2aWNlLWNhbGwgd2lyaW5nIHNob3VsZFxuICAgICAgICAvLyBndWFyZCB3aXRoIGBudWxsYWJsZTogZmFsc2VgIHNvIHN1Ym1pdCBjYW4ndCBmaXJlIHByZS1zb2x2ZS5cbiAgICAgICAgZ2V0IHZhbHVlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRva2VuO1xuICAgICAgICB9LFxuICAgICAgICBnZXRDaGlsZHJlbjogKCkgPT4gW10sXG4gICAgICAgIC8vIEFsbG93cyBjYWxsZXJzIHRvIG1hbnVhbGx5IHJlc2V0IHRoZSB3aWRnZXQgYWZ0ZXIgYSBiYWNrZW5kXG4gICAgICAgIC8vIHJlamVjdGlvbiDigJQgZS5nLiBhIDQwMyBmcm9tIHNpdGV2ZXJpZnkuIFRva2VuIGlzIGNvbnN1bWVkIHBlclxuICAgICAgICAvLyBjYWxsOyByZXNldHRpbmcgcmUtaXNzdWVzIGEgZnJlc2ggb25lLlxuICAgICAgICByZXNldDogKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHdpZGdldElkUmVmLmN1cnJlbnQgJiYgd2luZG93LnR1cm5zdGlsZSkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy50dXJuc3RpbGUucmVzZXQod2lkZ2V0SWRSZWYuY3VycmVudCk7XG4gICAgICAgICAgICAgICAgc2V0VG9rZW4obnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHJlZnJlc2g6ICgpID0+IHt9LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBzdHlsZT17VXRpbHMubWVyZ2VTdHlsZXMoe21hcmdpbjogJzhweCAwJ30sIHByb3BzLmNvbmZpZyl9PlxuICAgICAgICAgICAgPGRpdiByZWY9e2NvbnRhaW5lclJlZn0vPlxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IFR1cm5zdGlsZTsiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLFdBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLFVBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUEyQyxTQUFBRCx1QkFBQU0sQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUUzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU1HLG9CQUFvQixHQUFHLHVFQUF1RTs7QUFFcEc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNQyxRQUFRLEdBQUdDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDQyw0QkFBNEI7QUFFekQsSUFBSUMsaUJBQWlCLEdBQUcsSUFBSTtBQUM1QixNQUFNQyxtQkFBbUIsR0FBR0EsQ0FBQSxLQUFNO0VBQzlCLElBQUlELGlCQUFpQixFQUFFO0lBQ25CLE9BQU9BLGlCQUFpQjtFQUM1QjtFQUNBLElBQUksT0FBT0UsTUFBTSxLQUFLLFdBQVcsSUFBSUEsTUFBTSxDQUFDQyxTQUFTLEVBQUU7SUFDbkRI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
|
|
162
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9PYnNlcnZhYmxlIiwiX0V2ZW50IiwiX0V2ZW50VHlwZSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIlRVUk5TVElMRV9TQ1JJUFRfVVJMIiwiU0lURV9LRVkiLCJwcm9jZXNzIiwiZW52IiwiUkVBQ1RfQVBQX1RVUk5TVElMRV9TSVRFX0tFWSIsInNjcmlwdExvYWRQcm9taXNlIiwibG9hZFR1cm5zdGlsZVNjcmlwdCIsIndpbmRvdyIsInR1cm5zdGlsZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0Iiwic2NyaXB0IiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50Iiwic3JjIiwiYXN5bmMiLCJkZWZlciIsIm9ubG9hZCIsIm9uZXJyb3IiLCJoZWFkIiwiYXBwZW5kQ2hpbGQiLCJUdXJuc3RpbGUiLCJSZWFjdCIsIm1lbW8iLCJwcm9wcyIsImNvbnRhaW5lclJlZiIsInVzZVJlZiIsIndpZGdldElkUmVmIiwidG9rZW4iLCJzZXRUb2tlbiIsInVzZVN0YXRlIiwidXNlRWZmZWN0IiwiaGFuZGxlIiwiYXBpIiwicGFyc2VkQ29uZmlnIiwiVXRpbHMiLCJwYXJzZUNvbmZpZyIsImNvbmZpZyIsInZpZXdJZCIsImV2ZW50TWFuYWdlciIsImFkZFN1YnNjcmlwdGlvbnMiLCJldmVudEhhbmRsaW5nQ29uZmlnIiwiYWRkU3lzdGVtU3Vic2NyaXB0aW9ucyIsImNvbnNvbGUiLCJlcnJvciIsImNhbmNlbGxlZCIsInRoZW4iLCJjdXJyZW50IiwicmVuZGVyT3B0aW9ucyIsInNpdGVrZXkiLCJjYWxsYmFjayIsIm5ld1Rva2VuIiwiZXZlbnQiLCJFdmVudCIsImZpcmVFdmVudCIsIkV2ZW50VHlwZSIsIlZBTFVFX0NIQU5HRSIsImVycm9yLWNhbGxiYWNrIiwiZXhwaXJlZC1jYWxsYmFjayIsImFjdGlvbiIsInJlbmRlciIsImNhdGNoIiwibG9hZEV2ZW50IiwiQ09NUE9ORU5UX0xPQUQiLCJyZW1vdmUiLCJjbGVhckNvbXBvbmVudEV2ZW50TGlzdGVuZXJzIiwiaWQiLCJ2YWx1ZSIsImdldENoaWxkcmVuIiwicmVzZXQiLCJyZWZyZXNoIiwic3R5bGUiLCJtZXJnZVN0eWxlcyIsIm1hcmdpbiIsInJlZiIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9UdXJuc3RpbGUuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vVXRpbHMnO1xuaW1wb3J0IGV2ZW50TWFuYWdlciBmcm9tICcuLi9ldmVudC9PYnNlcnZhYmxlJztcbmltcG9ydCBFdmVudCBmcm9tICcuLi9ldmVudC9FdmVudCc7XG5pbXBvcnQgRXZlbnRUeXBlIGZyb20gJy4uL2V2ZW50L0V2ZW50VHlwZSc7XG5cbi8qKlxuICogQ0RVSS13cmFwcGVkIENsb3VkZmxhcmUgVHVybnN0aWxlIHdpZGdldC4gRHJvcHMgdGhlIHdpZGdldCBpbnRvIGFcbiAqIGxheW91dCB0aGUgc2FtZSB3YXkgYW55IG90aGVyIENEVUkgY29tcG9uZW50IGRvZXMgYW5kIGV4cG9zZXMgdGhlXG4gKiByZXNvbHZlZCBjaGFsbGVuZ2UgdG9rZW4gdGhyb3VnaCB7QGNvZGUgaGFuZGxlLmFwaS52YWx1ZX0sIHNvIHZpZXdcbiAqIGF1dGhvcnMgY2FuIHJlZmVyZW5jZSBpdCBmcm9tIG90aGVyIGNvbXBvbmVudHMgLyBzZXJ2aWNlIGNhbGxzIHZpYVxuICoge0Bjb2RlIEAje3R1cm5zdGlsZX0udmFsdWV9IHdoZW4gd2lyaW5nIHVwIGFuIGh0dHBQYXJhbWV0ZXJUeXBlLlxuICpcbiAqIDxwPkxvYWRzIENsb3VkZmxhcmUncyB2ZW5kb3Igc2NyaXB0IGxhemlseSBvbiBmaXJzdCBtb3VudC4gVGhlIHNjcmlwdFxuICogZGVmaW5lcyB7QGNvZGUgd2luZG93LnR1cm5zdGlsZX0gd2hpY2ggZXhwb3NlcyB7QGNvZGUgcmVuZGVyKCl9IOKAlFxuICogd2UgcmVuZGVyIGV4cGxpY2l0bHkgKG5vdCBhdXRvLXJlbmRlciB2aWEgY2xhc3M9XCJjZi10dXJuc3RpbGVcIikgc29cbiAqIHRoZSBSZWFjdCBsaWZlY3ljbGUgY2FuIGlzc3VlIGEge0Bjb2RlIHJlc2V0fSB3aGVuIHRoZSBwYXJlbnQgdmlld1xuICogcmUtbW91bnRzLlxuICpcbiAqIDxwPlNpdGUga2V5IGlzIHNvdXJjZWQgZnJvbSB7QGNvZGUgUkVBQ1RfQVBQX1RVUk5TVElMRV9TSVRFX0tFWX0gYXRcbiAqIGJ1aWxkIHRpbWUgKG1hdGNoZXMgdGhlIHByb2plY3QncyBleGlzdGluZyBSRUFDVF9BUFBfKiBjb252ZW50aW9uKSxcbiAqIE5PVCBmcm9tIENEVUkgSlNPTiDigJQgdmlldyBhdXRob3JzIHNob3VsZG4ndCBoYXZlIHRvIGtub3cgdGhlIGtleS5cbiAqIEZvciBkZXYsIGhvc3RuYW1lIHtAY29kZSBsb2NhbGhvc3R9IGlzIGV4cGxpY2l0bHkgc3VwcG9ydGVkIGJ5XG4gKiBDbG91ZGZsYXJlIHNvIHRoZSBzYW1lIGVudiB2YXIgY2FuIGJlIHVzZWQgdW5jaGFuZ2VkLlxuICovXG5jb25zdCBUVVJOU1RJTEVfU0NSSVBUX1VSTCA9ICdodHRwczovL2NoYWxsZW5nZXMuY2xvdWRmbGFyZS5jb20vdHVybnN0aWxlL3YwL2FwaS5qcz9yZW5kZXI9ZXhwbGljaXQnO1xuXG4vLyBDbG91ZGZsYXJlIFR1cm5zdGlsZSdzIFwic2l0ZSBrZXlcIiBpcyBpbnRlbnRpb25hbGx5IHB1YmxpYyAoaXQncyB0aGVcbi8vIHB1Ymxpc2hhYmxlIGlkZW50aWZpZXIsIGFuYWxvZ291cyB0byBTdHJpcGUncyBwdWJsaXNoYWJsZSBrZXkpIGFuZFxuLy8gaXMgaG9zdG5hbWUtYm91bmQgb24gdGhlIENsb3VkZmxhcmUgc2lkZSwgc28gbGVha2luZyBpdCBjYW4ndCBiZVxuLy8gdXNlZCBhZ2FpbnN0IG90aGVyIGRvbWFpbnMuIEV2ZW4gc28sIHNvdXJjaW5nIGl0IGZyb20gYW4gZW52IHZhclxuLy8ga2VlcHMgZGV2L3N0YWdpbmcvcHJvZCBzd2FwcGFibGUgd2l0aG91dCBhIGNvZGUgY2hhbmdlIOKAlCBzYW1lIHNoYXBlXG4vLyB0aGUgY29kZWJhc2UgYWxyZWFkeSB1c2VzIGZvciBSRUFDVF9BUFBfRE9DU19BUElfSE9TVCBldGMuIFNldFxuLy8gUkVBQ1RfQVBQX1RVUk5TVElMRV9TSVRFX0tFWSBwZXIgZW52aXJvbm1lbnQuXG5jb25zdCBTSVRFX0tFWSA9IHByb2Nlc3MuZW52LlJFQUNUX0FQUF9UVVJOU1RJTEVfU0lURV9LRVk7XG5cbmxldCBzY3JpcHRMb2FkUHJvbWlzZSA9IG51bGw7XG5jb25zdCBsb2FkVHVybnN0aWxlU2NyaXB0ID0gKCkgPT4ge1xuICAgIGlmIChzY3JpcHRMb2FkUHJvbWlzZSkge1xuICAgICAgICByZXR1cm4gc2NyaXB0TG9hZFByb21pc2U7XG4gICAgfVxuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiB3aW5kb3cudHVybnN0aWxlKSB7XG4gICAgICAgIHNjcmlwdExvYWRQcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgIHJldHVybiBzY3JpcHRMb2FkUHJvbWlzZTtcbiAgICB9XG4gICAgc2NyaXB0TG9hZFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICBzY3JpcHQuc3JjID0gVFVSTlNUSUxFX1NDUklQVF9VUkw7XG4gICAgICAgIHNjcmlwdC5hc3luYyA9IHRydWU7XG4gICAgICAgIHNjcmlwdC5kZWZlciA9IHRydWU7XG4gICAgICAgIHNjcmlwdC5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKCk7XG4gICAgICAgIHNjcmlwdC5vbmVycm9yID0gKGUpID0+IHtcbiAgICAgICAgICAgIHNjcmlwdExvYWRQcm9taXNlID0gbnVsbDsgLy8gYWxsb3cgcmV0cnkgbmV4dCBtb3VudFxuICAgICAgICAgICAgcmVqZWN0KGUpO1xuICAgICAgICB9O1xuICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHNjcmlwdExvYWRQcm9taXNlO1xufTtcblxuY29uc3QgVHVybnN0aWxlID0gUmVhY3QubWVtbygocHJvcHMpID0+IHtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgd2lkZ2V0SWRSZWYgPSBSZWFjdC51c2VSZWYobnVsbCk7XG4gICAgY29uc3QgW3Rva2VuLCBzZXRUb2tlbl0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHByb3BzLmhhbmRsZS5hcGkgPSBhcGkoKTtcbiAgICB9KTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcnNlZENvbmZpZyA9IFV0aWxzLnBhcnNlQ29uZmlnKHByb3BzLmNvbmZpZywgcHJvcHMudmlld0lkKTtcbiAgICAgICAgZXZlbnRNYW5hZ2VyLmFkZFN1YnNjcmlwdGlvbnMocGFyc2VkQ29uZmlnLmV2ZW50SGFuZGxpbmdDb25maWcsIHByb3BzLmhhbmRsZSwgcHJvcHMudmlld0lkKTtcbiAgICAgICAgZXZlbnRNYW5hZ2VyLmFkZFN5c3RlbVN1YnNjcmlwdGlvbnMocHJvcHMudmlld0lkLCBwYXJzZWRDb25maWcpO1xuXG4gICAgICAgIGlmICghU0lURV9LRVkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1R1cm5zdGlsZTogUkVBQ1RfQVBQX1RVUk5TVElMRV9TSVRFX0tFWSBlbnYgdmFyIGlzIG5vdCBzZXQg4oCUIHRoZSB3aWRnZXQgd2lsbCBub3QgcmVuZGVyJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2U7XG4gICAgICAgIGxvYWRUdXJuc3RpbGVTY3JpcHQoKVxuICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjYW5jZWxsZWQgfHwgIWNvbnRhaW5lclJlZi5jdXJyZW50IHx8ICF3aW5kb3cudHVybnN0aWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gYGFjdGlvbmAgaXMgYSBDbG91ZGZsYXJlLXNpZGUgbGFiZWwgZWNob2VkIGJhY2sgaW4gdGhlXG4gICAgICAgICAgICAgICAgLy8gc2l0ZXZlcmlmeSByZXNwb25zZS4gVGhlIGJhY2tlbmQgdmVyaWZpZXIgbWF0Y2hlcyBpdFxuICAgICAgICAgICAgICAgIC8vIGFnYWluc3QgYXBwbGljYXRpb24uc2VjdXJpdHkudHVybnN0aWxlLmV4cGVjdGVkLWFjdGlvblxuICAgICAgICAgICAgICAgIC8vIHNvIGEgdG9rZW4gbWludGVkIGZvciBvbmUgc3VyZmFjZSBjYW4ndCBiZSByZXBsYXllZFxuICAgICAgICAgICAgICAgIC8vIGFnYWluc3QgYW5vdGhlci4gU291cmNlZCBmcm9tIENEVUkgY29uZmlnOyBvbWl0dGVkIHdoZW5cbiAgICAgICAgICAgICAgICAvLyB0aGUgdmlldyBkaWRuJ3Qgc2V0IGl0IChDbG91ZGZsYXJlIHRyZWF0cyB1bmRlZmluZWQgYXNcbiAgICAgICAgICAgICAgICAvLyBhIHdpbGRjYXJkKS5cbiAgICAgICAgICAgICAgICBjb25zdCByZW5kZXJPcHRpb25zID0ge1xuICAgICAgICAgICAgICAgICAgICBzaXRla2V5OiBTSVRFX0tFWSxcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s6IChuZXdUb2tlbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VG9rZW4obmV3VG9rZW4pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgRXZlbnQocHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQsIG5ld1Rva2VuKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLlZBTFVFX0NIQU5HRSwgZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAnZXJyb3ItY2FsbGJhY2snOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUb2tlbihudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgJ2V4cGlyZWQtY2FsbGJhY2snOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRUb2tlbihudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGlmIChwYXJzZWRDb25maWcuYWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbmRlck9wdGlvbnMuYWN0aW9uID0gcGFyc2VkQ29uZmlnLmFjdGlvbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgd2lkZ2V0SWRSZWYuY3VycmVudCA9IHdpbmRvdy50dXJuc3RpbGUucmVuZGVyKGNvbnRhaW5lclJlZi5jdXJyZW50LCByZW5kZXJPcHRpb25zKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKGUpID0+IGNvbnNvbGUuZXJyb3IoJ1R1cm5zdGlsZTogZmFpbGVkIHRvIGxvYWQgdmVuZG9yIHNjcmlwdCcsIGUpKTtcblxuICAgICAgICAvLyBGaXJlIENPTVBPTkVOVF9MT0FEIHNvIGFueSB2aWV3LWxldmVsIGV2ZW50SGFuZGxpbmdDb25maWcga2V5ZWRcbiAgICAgICAgLy8gb24gdGhlIHR1cm5zdGlsZSBjb21wb25lbnQncyBsb2FkIGNhbiBob29rIGluIChtaXJyb3JzIHRoZVxuICAgICAgICAvLyBwYXR0ZXJuIHVzZWQgYnkgSHRtbFBhbmVsIC8gb3RoZXIgQ0RVSSBjb21wb25lbnRzKS5cbiAgICAgICAgY29uc3QgbG9hZEV2ZW50ID0gbmV3IEV2ZW50KHByb3BzLmhhbmRsZSwgcHJvcHMudmlld0lkLCBudWxsKTtcbiAgICAgICAgZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChFdmVudFR5cGUuQ09NUE9ORU5UX0xPQUQsIGxvYWRFdmVudCk7XG5cbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGNhbmNlbGxlZCA9IHRydWU7XG4gICAgICAgICAgICBpZiAod2lkZ2V0SWRSZWYuY3VycmVudCAmJiB3aW5kb3cudHVybnN0aWxlKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LnR1cm5zdGlsZS5yZW1vdmUod2lkZ2V0SWRSZWYuY3VycmVudCk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyB0dXJuc3RpbGUucmVtb3ZlIHRocm93cyBpZiB0aGUgd2lkZ2V0IGlkIGlzIHVua25vd25cbiAgICAgICAgICAgICAgICAgICAgLy8gKGUuZy4gc2NyaXB0IHVubG9hZGVkIG1pZC1jbGVhbnVwKSDigJQgc2FmZSB0byBpZ25vcmUuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHdpZGdldElkUmVmLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmNsZWFyQ29tcG9uZW50RXZlbnRMaXN0ZW5lcnMocHJvcHMuaGFuZGxlKTtcbiAgICAgICAgfTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBhcGkgPSAoKSA9PiAoe1xuICAgICAgICBnZXQgaWQoKSB7XG4gICAgICAgICAgICByZXR1cm4gcHJvcHMuY29uZmlnLmlkO1xuICAgICAgICB9LFxuICAgICAgICAvLyBUaGUgY2hhbGxlbmdlIHRva2VuIHRoZSBiYWNrZW5kIHNpdGV2ZXJpZmllcyBhZ2FpbnN0LiBOdWxsXG4gICAgICAgIC8vIGJlZm9yZSB0aGUgd2lkZ2V0IHJlc29sdmVzOyBDRFVJIHNlcnZpY2UtY2FsbCB3aXJpbmcgc2hvdWxkXG4gICAgICAgIC8vIGd1YXJkIHdpdGggYG51bGxhYmxlOiBmYWxzZWAgc28gc3VibWl0IGNhbid0IGZpcmUgcHJlLXNvbHZlLlxuICAgICAgICBnZXQgdmFsdWUoKSB7XG4gICAgICAgICAgICByZXR1cm4gdG9rZW47XG4gICAgICAgIH0sXG4gICAgICAgIGdldENoaWxkcmVuOiAoKSA9PiBbXSxcbiAgICAgICAgLy8gQWxsb3dzIGNhbGxlcnMgdG8gbWFudWFsbHkgcmVzZXQgdGhlIHdpZGdldCBhZnRlciBhIGJhY2tlbmRcbiAgICAgICAgLy8gcmVqZWN0aW9uIOKAlCBlLmcuIGEgNDAzIGZyb20gc2l0ZXZlcmlmeS4gVG9rZW4gaXMgY29uc3VtZWQgcGVyXG4gICAgICAgIC8vIGNhbGw7IHJlc2V0dGluZyByZS1pc3N1ZXMgYSBmcmVzaCBvbmUuXG4gICAgICAgIHJlc2V0OiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAod2lkZ2V0SWRSZWYuY3VycmVudCAmJiB3aW5kb3cudHVybnN0aWxlKSB7XG4gICAgICAgICAgICAgICAgd2luZG93LnR1cm5zdGlsZS5yZXNldCh3aWRnZXRJZFJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgICAgICBzZXRUb2tlbihudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcmVmcmVzaDogKCkgPT4ge30sXG4gICAgfSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IHN0eWxlPXtVdGlscy5tZXJnZVN0eWxlcyh7bWFyZ2luOiAnOHB4IDAnfSwgcHJvcHMuY29uZmlnKX0+XG4gICAgICAgICAgICA8ZGl2IHJlZj17Y29udGFpbmVyUmVmfS8+XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgVHVybnN0aWxlOyJdLCJtYXBwaW5n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
|
|
@@ -76,8 +76,20 @@ class RouteActionHandler {
|
|
|
76
76
|
_ApplicationManager.default.removeLoadedGraph(isWindow && currentGraph.config.isWindow ? 'window' : 'main');
|
|
77
77
|
}
|
|
78
78
|
} else {
|
|
79
|
-
|
|
79
|
+
// Pre-auth flows (registration wizard) live under
|
|
80
|
+
// /portal/views/registration/* and must be fetched via the
|
|
81
|
+
// public CDUI endpoint AND with no Authorization header.
|
|
82
|
+
// Spring Security's bearer-auth filter validates *any*
|
|
83
|
+
// attached token (even on permitAll() endpoints) — so an
|
|
84
|
+
// empty/stale token from an unauthenticated session returns
|
|
85
|
+
// 401 from the public endpoint. Skipping the auth header
|
|
86
|
+
// here mirrors the bootstrap's sendRequest(..., secure=false).
|
|
87
|
+
const isPublicView = path && path.startsWith('/portal/views/registration/');
|
|
88
|
+
const viewEndpoint = isPublicView ? '/view/public/get' : '/view/get';
|
|
89
|
+
let url = location + _ApplicationManager.default.getContextRoot() + _ApplicationManager.default.getUIConfigPath() + viewEndpoint + '?version=1.0&id=' + path;
|
|
80
90
|
(0, _RestUtils.sendRequest)(url, data => {
|
|
91
|
+
// sendRequest auto-decodes the {_cdui_z} wire wrap for
|
|
92
|
+
// /ui/api/v*/ URLs — data here is the raw CDUI asset.
|
|
81
93
|
if (isParent && currentGraph) {
|
|
82
94
|
if (isWindow && currentGraph.config.isWindow || !isWindow && !currentGraph.config.isWindow) {
|
|
83
95
|
_ApplicationManager.default.removeLoadedGraph(isWindow && currentGraph.config.isWindow ? 'window' : 'main');
|
|
@@ -123,7 +135,19 @@ class RouteActionHandler {
|
|
|
123
135
|
// Windows do not go to the Outlet in the viewport. They get rendered into the window viewport
|
|
124
136
|
if (!isWindow) {
|
|
125
137
|
//applicationManager.navigate('/view/unload');
|
|
126
|
-
|
|
138
|
+
// Registration wizard nodes must stay inside the
|
|
139
|
+
// register-portal route tree — navigating to
|
|
140
|
+
// /view/<id> mounts the authenticated app shell
|
|
141
|
+
// (InteractionPortalAppHome) which fires user-find +
|
|
142
|
+
// setup/default and breaks the pre-auth UX. Keep
|
|
143
|
+
// the path under /register/<type>/<id> instead.
|
|
144
|
+
if (isPublicView) {
|
|
145
|
+
const m = path.match(/^\/portal\/views\/registration\/([^/]+)\//);
|
|
146
|
+
const type = m && m[1] || 'vendor';
|
|
147
|
+
_ApplicationManager.default.navigate('/register/' + type + '/' + data.id);
|
|
148
|
+
} else {
|
|
149
|
+
_ApplicationManager.default.navigate('/view/' + data.id);
|
|
150
|
+
}
|
|
127
151
|
} else {
|
|
128
152
|
_ApplicationManager.default.openWindowView(view);
|
|
129
153
|
}
|
|
@@ -136,11 +160,11 @@ class RouteActionHandler {
|
|
|
136
160
|
}
|
|
137
161
|
}, e => {
|
|
138
162
|
console.error(e);
|
|
139
|
-
},
|
|
163
|
+
}, !isPublicView, false);
|
|
140
164
|
}
|
|
141
165
|
}
|
|
142
166
|
}
|
|
143
167
|
const instance = new RouteActionHandler();
|
|
144
168
|
Object.freeze(instance);
|
|
145
169
|
var _default = exports.default = instance;
|
|
146
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9SZXN0VXRpbHMiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiX1V0aWxzIiwiX0R5bmFtaWNKUyIsIl9PYnNlcnZhYmxlIiwiX0V2ZW50VHlwZSIsIl9FdmVudCIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImxvY2F0aW9uIiwid2luZG93IiwicHJvdG9jb2wiLCJob3N0bmFtZSIsIlJvdXRlQWN0aW9uSGFuZGxlciIsImNvbnN0cnVjdG9yIiwiaW5zdGFuY2UiLCJleGVjdXRlIiwiYWN0aW9uQ29uZmlnIiwiZXZlbnQiLCJjb21wb25lbnQiLCJjdXJyZW50Vmlld0lkIiwiYXBwbGljYXRpb25NYW5hZ2VyIiwiZW5hYmxlRm9ybU1hcmtlcnMiLCJmb3J3YXJkIiwicGF0aCIsImlzSGlzdG9yeSIsImlzUGFyZW50IiwiVXRpbHMiLCJpc051bGwiLCJwYXJlbnQiLCJldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIiwiaWQiLCJpc1BvcHVwIiwicG9wVXAiLCJpc1dpbmRvdyIsInBhdGhFdmFsdWF0b3IiLCJkeW5hbWljSlMiLCJleGVjdXRlU2NyaXB0T2JqZWN0Iiwic291cmNlIiwiaXNFeHByZXNzaW9uIiwicmVzb2x2ZUV4cHJlc3Npb25WYWx1ZSIsImRhdGEiLCJoaXN0b3J5RWxlbWVudCIsImdldFByZXZpb3VzSGlzdG9yeUVsZW1lbnQiLCJjb25zb2xlIiwiZXJyb3IiLCJwYXJhbWV0ZXJWYWx1ZXMiLCJwYXJhbWV0ZXJzIiwiaSIsImxlbmd0aCIsInBhcmFtZXRlciIsInBhcmFtZXRlclZhbHVlIiwicmVzb2x2ZVBhcmFtZXRlclZhbHVlIiwidmFsaWRhdG9yIiwibnVsbGFibGUiLCJuYW1lIiwiSlNPTiIsInN0cmluZ2lmeSIsInBhcmFtIiwidmFsdWUiLCJpbnN0YW5jZVR5cGUiLCJwdXNoIiwiY3VycmVudEdyYXBoIiwiZ2V0Q3VycmVudEdyYXBoIiwibmF2aWdhdGUiLCJjb25maWciLCJyZW1vdmVMb2FkZWRHcmFwaCIsInVybCIsImdldENvbnRleHRSb290IiwiZ2V0VUlDb25maWdQYXRoIiwic2VuZFJlcXVlc3QiLCJ0eXBlIiwiY3VycmVudFZpZXciLCJnZXRUb3BWaWV3IiwidmlldyIsImRlZmF1bHRNb2RlbCIsInVwZGF0ZU1vZGVsIiwiZ3JhcGhJZCIsImhhbmRsZSIsImFwaSIsIm1vZGVsIiwiZ2V0Q2hpbGQiLCJ2YWx1ZXMiLCJzZXRNb2RlbFZhbHVlIiwia2V5IiwiZ2V0TW9kZWxWYWx1ZSIsImxvYWRlZCIsImFkZFZpZXciLCJvcGVuV2luZG93VmlldyIsIm9wZW5Qb3B1cFZpZXciLCJsb2FkR3JhcGgiLCJPYmplY3QiLCJmcmVlemUiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2V2ZW50L1JvdXRlQWN0aW9uSGFuZGxlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtzZW5kUmVxdWVzdH0gZnJvbSAnLi4vUmVzdFV0aWxzJztcbmltcG9ydCBhcHBsaWNhdGlvbk1hbmFnZXIgZnJvbSAnLi4vQXBwbGljYXRpb25NYW5hZ2VyJztcbmltcG9ydCBVdGlscyBmcm9tICcuLi9VdGlscyc7XG5pbXBvcnQgZHluYW1pY0pTIGZyb20gJy4uL0R5bmFtaWNKUyc7XG5pbXBvcnQgZXZlbnRNYW5hZ2VyIGZyb20gJy4uL2V2ZW50L09ic2VydmFibGUnO1xuaW1wb3J0IEV2ZW50VHlwZSBmcm9tICcuL0V2ZW50VHlwZSc7XG5pbXBvcnQgRXZlbnQgZnJvbSAnLi9FdmVudCc7XG5cbmNvbnN0IGxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgJy8vJyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTtcblxuY2xhc3MgUm91dGVBY3Rpb25IYW5kbGVyIHtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBpZiAoIVJvdXRlQWN0aW9uSGFuZGxlci5pbnN0YW5jZSkge1xuICAgICAgICAgICAgUm91dGVBY3Rpb25IYW5kbGVyLmluc3RhbmNlID0gdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBSb3V0ZUFjdGlvbkhhbmRsZXIuaW5zdGFuY2U7XG4gICAgfVxuXG4gICAgZXhlY3V0ZShhY3Rpb25Db25maWcsIGV2ZW50LCBjb21wb25lbnQsIGN1cnJlbnRWaWV3SWQpIHtcblxuICAgICAgICAvLyBUT0RPIDogSW1wbGVtZW50IHRoaXMgZnVsbCBVUkxcbiAgICAgICAgLy9TdHJpbmcgdXJsID0gd2ViVXJsICsgXCI/dmVyc2lvbj0xLjBcIiArICh2aWV3UGF0aCAhPSBudWxsID8gXCImaWQ9XCIgKyBVUkwuZW5jb2RlUXVlcnlTdHJpbmcodmlld1BhdGgpIDogXCJcIilcbiAgICAgICAgLy8gICAgKyAodmlld1BhdGhSZXF1ZXN0RHRvICE9IG51bGwgPyBcIiZzZXJ2aWNlUmVxdWVzdD1cIiArIFVSTC5lbmNvZGVRdWVyeVN0cmluZyhyZXF1ZXN0RHRvV3JpdGVyLndyaXRlKHZpZXdQYXRoUmVxdWVzdER0bykpIDogXCJcIilcbiAgICAgICAgLy8gICAgKyAocG9ydGFsQ3VycmVudE9yZyAhPSBudWxsID8gXCImcHJvZmlsZT1cIiArIHBvcnRhbEN1cnJlbnRPcmcgOiBcIlwiKTtcblxuICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuZW5hYmxlRm9ybU1hcmtlcnMoZmFsc2UpO1xuXG4gICAgICAgIGxldCBmb3J3YXJkID0gdHJ1ZTtcbiAgICAgICAgbGV0IHBhdGggPSBudWxsO1xuICAgICAgICBsZXQgaXNIaXN0b3J5ID0gZmFsc2U7XG4gICAgICAgIGxldCBpc1BhcmVudCA9IFV0aWxzLmlzTnVsbChhY3Rpb25Db25maWcucGFyZW50KSA/IGZhbHNlIDpcbiAgICAgICAgICAgIFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24oYWN0aW9uQ29uZmlnLnBhcmVudCwgY29tcG9uZW50Py5pZCwgZmFsc2UpO1xuICAgICAgICBsZXQgaXNQb3B1cCA9IFV0aWxzLmlzTnVsbChhY3Rpb25Db25maWcucG9wVXApID8gZmFsc2UgOiBhY3Rpb25Db25maWcucG9wVXA7XG4gICAgICAgIGxldCBpc1dpbmRvdyA9IFV0aWxzLmlzTnVsbChhY3Rpb25Db25maWcud2luZG93KSA/IGZhbHNlIDogYWN0aW9uQ29uZmlnLndpbmRvdztcblxuICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChhY3Rpb25Db25maWcucGF0aEV2YWx1YXRvcikpIHtcbiAgICAgICAgICAgIHBhdGggPSBkeW5hbWljSlMuZXhlY3V0ZVNjcmlwdE9iamVjdChjdXJyZW50Vmlld0lkICsgJ1ZpZXdFdmFsdWF0b3JfJyArIGV2ZW50Py5zb3VyY2UuaWQsXG4gICAgICAgICAgICAgICAgYWN0aW9uQ29uZmlnLnBhdGhFdmFsdWF0b3IpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGF0aCA9IGFjdGlvbkNvbmZpZy5wYXRoICE9PSAnQCN7aGlzdG9yeS5iYWNrfScgJiYgYXBwbGljYXRpb25NYW5hZ2VyLmlzRXhwcmVzc2lvbihhY3Rpb25Db25maWcucGF0aCkgP1xuICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5yZXNvbHZlRXhwcmVzc2lvblZhbHVlKGFjdGlvbkNvbmZpZy5wYXRoLCBldmVudD8uZGF0YSkgOiBhY3Rpb25Db25maWcucGF0aDtcblxuICAgICAgICAgICAgaWYgKCdAI3toaXN0b3J5LmJhY2t9JyA9PT0gcGF0aCB8fCAnJGhpc3RvcnkuYmFjaycgPT09IHBhdGgpIHtcbiAgICAgICAgICAgICAgICBsZXQgaGlzdG9yeUVsZW1lbnQgPSBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0UHJldmlvdXNIaXN0b3J5RWxlbWVudChpc1dpbmRvdyA/ICd3aW5kb3cnIDogJ21haW4nKTtcbiAgICAgICAgICAgICAgICBpZiAoaGlzdG9yeUVsZW1lbnQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignSW52YWxpZCBwYXRoLiBDYW5ub3QgZ28gYmFjayBpbiBoaXN0b3J5Jyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBwYXRoID0gaGlzdG9yeUVsZW1lbnQucGF0aDtcbiAgICAgICAgICAgICAgICBpc0hpc3RvcnkgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGlzUGFyZW50ID0gaGlzdG9yeUVsZW1lbnQucGFyZW50O1xuICAgICAgICAgICAgICAgIGZvcndhcmQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBwYXJhbWV0ZXJWYWx1ZXMgPSBbXTtcbiAgICAgICAgaWYgKCFVdGlscy5pc051bGwoYWN0aW9uQ29uZmlnLnBhcmFtZXRlcnMpKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFjdGlvbkNvbmZpZy5wYXJhbWV0ZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbGV0IHBhcmFtZXRlciA9IGFjdGlvbkNvbmZpZy5wYXJhbWV0ZXJzW2ldO1xuICAgICAgICAgICAgICAgIGxldCBwYXJhbWV0ZXJWYWx1ZSA9IGFwcGxpY2F0aW9uTWFuYWdlci5yZXNvbHZlUGFyYW1ldGVyVmFsdWUocGFyYW1ldGVyLCBldmVudD8uZGF0YSk7XG4gICAgICAgICAgICAgICAgbGV0IHZhbGlkYXRvciA9IHBhcmFtZXRlci52YWxpZGF0b3I7XG5cbiAgICAgICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKHBhcmFtZXRlclZhbHVlKSAmJiAhVXRpbHMuaXNOdWxsKHZhbGlkYXRvcikgJiZcbiAgICAgICAgICAgICAgICAgICAgVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbih2YWxpZGF0b3IubnVsbGFibGUsIHBhcmFtZXRlci5uYW1lKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignUm91dGluZyB0byBwYXRoICcgKyBwYXRoICsgJywgZmFpbGVkLiBBIG51bGwgdmFsdWUgZm9yIGEgTk9OLU5VTExBQkxFIHBhcmFtZXRlciB3YXMgZm91bmQgLSAnICsgSlNPTi5zdHJpbmdpZnkocGFyYW1ldGVyKSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRPRE8gOiBEaXNwbGF5IHRoZSBjb25maWd1cmVkIGVycm9yIG1lc3NhZ2UgYXQgdGhlIGNvcnJlY3QgZXJyb3IgcGFuZWxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxldCBwYXJhbSA9IHt9O1xuICAgICAgICAgICAgICAgIHBhcmFtLm5hbWUgPSBwYXJhbWV0ZXIubmFtZTtcbiAgICAgICAgICAgICAgICBwYXJhbS52YWx1ZSA9IFV0aWxzLmlzTnVsbChwYXJhbWV0ZXJWYWx1ZSkgPyBudWxsIDpcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyVmFsdWUuaW5zdGFuY2VUeXBlID09PSAnVHlwZWRWYWx1ZScgPyBwYXJhbWV0ZXJWYWx1ZS52YWx1ZSA6IHBhcmFtZXRlclZhbHVlO1xuXG4gICAgICAgICAgICAgICAgcGFyYW1ldGVyVmFsdWVzLnB1c2gocGFyYW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGN1cnJlbnRHcmFwaCA9IGFwcGxpY2F0aW9uTWFuYWdlci5nZXRDdXJyZW50R3JhcGgoaXNXaW5kb3cgPyAnd2luZG93JyA6ICdtYWluJyk7XG4gICAgICAgIGlmICgnQCN7aG9tZX0nID09PSBwYXRoKSB7XG4gICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIubmF2aWdhdGUoJy92aWV3L3VubG9hZCcpO1xuICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLm5hdmlnYXRlKCcvdmlldy9kYXNoYm9hcmQnKVxuICAgICAgICB9IGVsc2UgaWYgKGlzSGlzdG9yeSAmJiBjdXJyZW50R3JhcGgpIHtcbiAgICAgICAgICAgIGlmICgoaXNXaW5kb3cgJiYgY3VycmVudEdyYXBoLmNvbmZpZy5pc1dpbmRvdykgfHwgKCFpc1dpbmRvdyAmJiAhY3VycmVudEdyYXBoLmNvbmZpZy5pc1dpbmRvdykpIHtcbiAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIucmVtb3ZlTG9hZGVkR3JhcGgoKGlzV2luZG93ICYmIGN1cnJlbnRHcmFwaC5jb25maWcuaXNXaW5kb3cpID8gJ3dpbmRvdycgOiAnbWFpbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IHVybCA9IGxvY2F0aW9uICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldENvbnRleHRSb290KCkgKyBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0VUlDb25maWdQYXRoKCkgKyAnL3ZpZXcvZ2V0P3ZlcnNpb249MS4wJmlkPScgKyBwYXRoO1xuICAgICAgICAgICAgc2VuZFJlcXVlc3QodXJsLFxuICAgICAgICAgICAgICAgIChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc1BhcmVudCAmJiBjdXJyZW50R3JhcGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoaXNXaW5kb3cgJiYgY3VycmVudEdyYXBoLmNvbmZpZy5pc1dpbmRvdykgfHwgKCFpc1dpbmRvdyAmJiAhY3VycmVudEdyYXBoLmNvbmZpZy5pc1dpbmRvdykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIucmVtb3ZlTG9hZGVkR3JhcGgoKGlzV2luZG93ICYmIGN1cnJlbnRHcmFwaC5jb25maWcuaXNXaW5kb3cpID8gJ3dpbmRvdycgOiAnbWFpbicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEudHlwZSA9PT0gJ3ZpZXcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgY3VycmVudFZpZXcgPSBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0VG9wVmlldyhpc1dpbmRvdyA/ICd3aW5kb3cnIDogJ21haW4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2aWV3ID0ge307XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVmYXVsdE1vZGVsID0ge307XG4gICAgICAgICAgICAgICAgICAgICAgICBVdGlscy51cGRhdGVNb2RlbChwYXJhbWV0ZXJWYWx1ZXMsIGRlZmF1bHRNb2RlbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3LmNvbmZpZyA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3LnBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJWYWx1ZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3LnBhcmVudCA9IGlzUGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlldy5ncmFwaElkID0gYWN0aW9uQ29uZmlnLmdyYXBoSWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3LmhhbmRsZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcGk6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0IGlkKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEuaWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldCBtb2RlbCgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0TW9kZWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldENoaWxkOiAoaWQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVNb2RlbDogKHZhbHVlcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbHMudXBkYXRlTW9kZWwodmFsdWVzLCBkZWZhdWx0TW9kZWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRNb2RlbFZhbHVlOiAoa2V5LCB2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0TW9kZWwua2V5ID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldE1vZGVsVmFsdWU6IChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRNb2RlbFtrZXldO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkZWQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5hZGRWaWV3KHZpZXcsIHBhdGgsIGZvcndhcmQsIGFjdGlvbkNvbmZpZy5wb3BVcCA/ICdwb3B1cCcgOiBpc1dpbmRvdyA/ICd3aW5kb3cnIDogJ21haW4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vbmUtZXhpc3Rpbmcgcm91dGUgdG8gZW5zdXJlIHRoYXQgdGhlIGN1cnJlbnQgdmlldyB1bmxvYWRzXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKGFjdGlvbkNvbmZpZy5wb3BVcCkgfHwgYWN0aW9uQ29uZmlnLnBvcFVwID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdpbmRvd3MgZG8gbm90IGdvIHRvIHRoZSBPdXRsZXQgaW4gdGhlIHZpZXdwb3J0LiBUaGV5IGdldCByZW5kZXJlZCBpbnRvIHRoZSB3aW5kb3cgdmlld3BvcnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzV2luZG93KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vYXBwbGljYXRpb25NYW5hZ2VyLm5hdmlnYXRlKCcvdmlldy91bmxvYWQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLm5hdmlnYXRlKCcvdmlldy8nICsgZGF0YS5pZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLm9wZW5XaW5kb3dWaWV3KHZpZXcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLm9wZW5Qb3B1cFZpZXcodmlldyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YS50eXBlID09PSAnZ3JhcGgnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLmlzV2luZG93ID0gaXNXaW5kb3c7XG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIubG9hZEdyYXBoKGlzUGFyZW50LCBkYXRhLCBwYXJhbWV0ZXJWYWx1ZXMsIChpc1BvcHVwID8gJ3BvcHVwJyA6IGlzV2luZG93ID8gJ3dpbmRvdycgOiAnbWFpbicpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgfSwgdHJ1ZSwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5jb25zdCBpbnN0YW5jZSA9IG5ldyBSb3V0ZUFjdGlvbkhhbmRsZXIoKTtcbk9iamVjdC5mcmVlemUoaW5zdGFuY2UpO1xuXG5leHBvcnQgZGVmYXVsdCBpbnN0YW5jZTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsbUJBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLFVBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLFdBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLFVBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLE1BQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUE0QixTQUFBRCx1QkFBQVMsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUU1QixNQUFNRyxRQUFRLEdBQUdDLE1BQU0sQ0FBQ0QsUUFBUSxDQUFDRSxRQUFRLEdBQUcsSUFBSSxHQUFHRCxNQUFNLENBQUNELFFBQVEsQ0FBQ0csUUFBUTtBQUUzRSxNQUFNQyxrQkFBa0IsQ0FBQztFQUVyQkMsV0FB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
|
|
170
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9SZXN0VXRpbHMiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiX1V0aWxzIiwiX0R5bmFtaWNKUyIsIl9PYnNlcnZhYmxlIiwiX0V2ZW50VHlwZSIsIl9FdmVudCIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsImxvY2F0aW9uIiwid2luZG93IiwicHJvdG9jb2wiLCJob3N0bmFtZSIsIlJvdXRlQWN0aW9uSGFuZGxlciIsImNvbnN0cnVjdG9yIiwiaW5zdGFuY2UiLCJleGVjdXRlIiwiYWN0aW9uQ29uZmlnIiwiZXZlbnQiLCJjb21wb25lbnQiLCJjdXJyZW50Vmlld0lkIiwiYXBwbGljYXRpb25NYW5hZ2VyIiwiZW5hYmxlRm9ybU1hcmtlcnMiLCJmb3J3YXJkIiwicGF0aCIsImlzSGlzdG9yeSIsImlzUGFyZW50IiwiVXRpbHMiLCJpc051bGwiLCJwYXJlbnQiLCJldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIiwiaWQiLCJpc1BvcHVwIiwicG9wVXAiLCJpc1dpbmRvdyIsInBhdGhFdmFsdWF0b3IiLCJkeW5hbWljSlMiLCJleGVjdXRlU2NyaXB0T2JqZWN0Iiwic291cmNlIiwiaXNFeHByZXNzaW9uIiwicmVzb2x2ZUV4cHJlc3Npb25WYWx1ZSIsImRhdGEiLCJoaXN0b3J5RWxlbWVudCIsImdldFByZXZpb3VzSGlzdG9yeUVsZW1lbnQiLCJjb25zb2xlIiwiZXJyb3IiLCJwYXJhbWV0ZXJWYWx1ZXMiLCJwYXJhbWV0ZXJzIiwiaSIsImxlbmd0aCIsInBhcmFtZXRlciIsInBhcmFtZXRlclZhbHVlIiwicmVzb2x2ZVBhcmFtZXRlclZhbHVlIiwidmFsaWRhdG9yIiwibnVsbGFibGUiLCJuYW1lIiwiSlNPTiIsInN0cmluZ2lmeSIsInBhcmFtIiwidmFsdWUiLCJpbnN0YW5jZVR5cGUiLCJwdXNoIiwiY3VycmVudEdyYXBoIiwiZ2V0Q3VycmVudEdyYXBoIiwibmF2aWdhdGUiLCJjb25maWciLCJyZW1vdmVMb2FkZWRHcmFwaCIsImlzUHVibGljVmlldyIsInN0YXJ0c1dpdGgiLCJ2aWV3RW5kcG9pbnQiLCJ1cmwiLCJnZXRDb250ZXh0Um9vdCIsImdldFVJQ29uZmlnUGF0aCIsInNlbmRSZXF1ZXN0IiwidHlwZSIsImN1cnJlbnRWaWV3IiwiZ2V0VG9wVmlldyIsInZpZXciLCJkZWZhdWx0TW9kZWwiLCJ1cGRhdGVNb2RlbCIsImdyYXBoSWQiLCJoYW5kbGUiLCJhcGkiLCJtb2RlbCIsImdldENoaWxkIiwidmFsdWVzIiwic2V0TW9kZWxWYWx1ZSIsImtleSIsImdldE1vZGVsVmFsdWUiLCJsb2FkZWQiLCJhZGRWaWV3IiwibSIsIm1hdGNoIiwib3BlbldpbmRvd1ZpZXciLCJvcGVuUG9wdXBWaWV3IiwibG9hZEdyYXBoIiwiT2JqZWN0IiwiZnJlZXplIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9ldmVudC9Sb3V0ZUFjdGlvbkhhbmRsZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7c2VuZFJlcXVlc3R9IGZyb20gJy4uL1Jlc3RVdGlscyc7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gJy4uL0FwcGxpY2F0aW9uTWFuYWdlcic7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vVXRpbHMnO1xuaW1wb3J0IGR5bmFtaWNKUyBmcm9tICcuLi9EeW5hbWljSlMnO1xuaW1wb3J0IGV2ZW50TWFuYWdlciBmcm9tICcuLi9ldmVudC9PYnNlcnZhYmxlJztcbmltcG9ydCBFdmVudFR5cGUgZnJvbSAnLi9FdmVudFR5cGUnO1xuaW1wb3J0IEV2ZW50IGZyb20gJy4vRXZlbnQnO1xuXG5jb25zdCBsb2NhdGlvbiA9IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCArICcvLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7XG5cbmNsYXNzIFJvdXRlQWN0aW9uSGFuZGxlciB7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgaWYgKCFSb3V0ZUFjdGlvbkhhbmRsZXIuaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIFJvdXRlQWN0aW9uSGFuZGxlci5pbnN0YW5jZSA9IHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gUm91dGVBY3Rpb25IYW5kbGVyLmluc3RhbmNlO1xuICAgIH1cblxuICAgIGV4ZWN1dGUoYWN0aW9uQ29uZmlnLCBldmVudCwgY29tcG9uZW50LCBjdXJyZW50Vmlld0lkKSB7XG5cbiAgICAgICAgLy8gVE9ETyA6IEltcGxlbWVudCB0aGlzIGZ1bGwgVVJMXG4gICAgICAgIC8vU3RyaW5nIHVybCA9IHdlYlVybCArIFwiP3ZlcnNpb249MS4wXCIgKyAodmlld1BhdGggIT0gbnVsbCA/IFwiJmlkPVwiICsgVVJMLmVuY29kZVF1ZXJ5U3RyaW5nKHZpZXdQYXRoKSA6IFwiXCIpXG4gICAgICAgIC8vICAgICsgKHZpZXdQYXRoUmVxdWVzdER0byAhPSBudWxsID8gXCImc2VydmljZVJlcXVlc3Q9XCIgKyBVUkwuZW5jb2RlUXVlcnlTdHJpbmcocmVxdWVzdER0b1dyaXRlci53cml0ZSh2aWV3UGF0aFJlcXVlc3REdG8pKSA6IFwiXCIpXG4gICAgICAgIC8vICAgICsgKHBvcnRhbEN1cnJlbnRPcmcgIT0gbnVsbCA/IFwiJnByb2ZpbGU9XCIgKyBwb3J0YWxDdXJyZW50T3JnIDogXCJcIik7XG5cbiAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmVuYWJsZUZvcm1NYXJrZXJzKGZhbHNlKTtcblxuICAgICAgICBsZXQgZm9yd2FyZCA9IHRydWU7XG4gICAgICAgIGxldCBwYXRoID0gbnVsbDtcbiAgICAgICAgbGV0IGlzSGlzdG9yeSA9IGZhbHNlO1xuICAgICAgICBsZXQgaXNQYXJlbnQgPSBVdGlscy5pc051bGwoYWN0aW9uQ29uZmlnLnBhcmVudCkgPyBmYWxzZSA6XG4gICAgICAgICAgICBVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKGFjdGlvbkNvbmZpZy5wYXJlbnQsIGNvbXBvbmVudD8uaWQsIGZhbHNlKTtcbiAgICAgICAgbGV0IGlzUG9wdXAgPSBVdGlscy5pc051bGwoYWN0aW9uQ29uZmlnLnBvcFVwKSA/IGZhbHNlIDogYWN0aW9uQ29uZmlnLnBvcFVwO1xuICAgICAgICBsZXQgaXNXaW5kb3cgPSBVdGlscy5pc051bGwoYWN0aW9uQ29uZmlnLndpbmRvdykgPyBmYWxzZSA6IGFjdGlvbkNvbmZpZy53aW5kb3c7XG5cbiAgICAgICAgaWYgKCFVdGlscy5pc051bGwoYWN0aW9uQ29uZmlnLnBhdGhFdmFsdWF0b3IpKSB7XG4gICAgICAgICAgICBwYXRoID0gZHluYW1pY0pTLmV4ZWN1dGVTY3JpcHRPYmplY3QoY3VycmVudFZpZXdJZCArICdWaWV3RXZhbHVhdG9yXycgKyBldmVudD8uc291cmNlLmlkLFxuICAgICAgICAgICAgICAgIGFjdGlvbkNvbmZpZy5wYXRoRXZhbHVhdG9yKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBhdGggPSBhY3Rpb25Db25maWcucGF0aCAhPT0gJ0Aje2hpc3RvcnkuYmFja30nICYmIGFwcGxpY2F0aW9uTWFuYWdlci5pc0V4cHJlc3Npb24oYWN0aW9uQ29uZmlnLnBhdGgpID9cbiAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIucmVzb2x2ZUV4cHJlc3Npb25WYWx1ZShhY3Rpb25Db25maWcucGF0aCwgZXZlbnQ/LmRhdGEpIDogYWN0aW9uQ29uZmlnLnBhdGg7XG5cbiAgICAgICAgICAgIGlmICgnQCN7aGlzdG9yeS5iYWNrfScgPT09IHBhdGggfHwgJyRoaXN0b3J5LmJhY2snID09PSBwYXRoKSB7XG4gICAgICAgICAgICAgICAgbGV0IGhpc3RvcnlFbGVtZW50ID0gYXBwbGljYXRpb25NYW5hZ2VyLmdldFByZXZpb3VzSGlzdG9yeUVsZW1lbnQoaXNXaW5kb3cgPyAnd2luZG93JyA6ICdtYWluJyk7XG4gICAgICAgICAgICAgICAgaWYgKGhpc3RvcnlFbGVtZW50ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ludmFsaWQgcGF0aC4gQ2Fubm90IGdvIGJhY2sgaW4gaGlzdG9yeScpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcGF0aCA9IGhpc3RvcnlFbGVtZW50LnBhdGg7XG4gICAgICAgICAgICAgICAgaXNIaXN0b3J5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpc1BhcmVudCA9IGhpc3RvcnlFbGVtZW50LnBhcmVudDtcbiAgICAgICAgICAgICAgICBmb3J3YXJkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgcGFyYW1ldGVyVmFsdWVzID0gW107XG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGFjdGlvbkNvbmZpZy5wYXJhbWV0ZXJzKSkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhY3Rpb25Db25maWcucGFyYW1ldGVycy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGxldCBwYXJhbWV0ZXIgPSBhY3Rpb25Db25maWcucGFyYW1ldGVyc1tpXTtcbiAgICAgICAgICAgICAgICBsZXQgcGFyYW1ldGVyVmFsdWUgPSBhcHBsaWNhdGlvbk1hbmFnZXIucmVzb2x2ZVBhcmFtZXRlclZhbHVlKHBhcmFtZXRlciwgZXZlbnQ/LmRhdGEpO1xuICAgICAgICAgICAgICAgIGxldCB2YWxpZGF0b3IgPSBwYXJhbWV0ZXIudmFsaWRhdG9yO1xuXG4gICAgICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChwYXJhbWV0ZXJWYWx1ZSkgJiYgIVV0aWxzLmlzTnVsbCh2YWxpZGF0b3IpICYmXG4gICAgICAgICAgICAgICAgICAgIFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24odmFsaWRhdG9yLm51bGxhYmxlLCBwYXJhbWV0ZXIubmFtZSkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1JvdXRpbmcgdG8gcGF0aCAnICsgcGF0aCArICcsIGZhaWxlZC4gQSBudWxsIHZhbHVlIGZvciBhIE5PTi1OVUxMQUJMRSBwYXJhbWV0ZXIgd2FzIGZvdW5kIC0gJyArIEpTT04uc3RyaW5naWZ5KHBhcmFtZXRlcikpO1xuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPIDogRGlzcGxheSB0aGUgY29uZmlndXJlZCBlcnJvciBtZXNzYWdlIGF0IHRoZSBjb3JyZWN0IGVycm9yIHBhbmVsXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBsZXQgcGFyYW0gPSB7fTtcbiAgICAgICAgICAgICAgICBwYXJhbS5uYW1lID0gcGFyYW1ldGVyLm5hbWU7XG4gICAgICAgICAgICAgICAgcGFyYW0udmFsdWUgPSBVdGlscy5pc051bGwocGFyYW1ldGVyVmFsdWUpID8gbnVsbCA6XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlclZhbHVlLmluc3RhbmNlVHlwZSA9PT0gJ1R5cGVkVmFsdWUnID8gcGFyYW1ldGVyVmFsdWUudmFsdWUgOiBwYXJhbWV0ZXJWYWx1ZTtcblxuICAgICAgICAgICAgICAgIHBhcmFtZXRlclZhbHVlcy5wdXNoKHBhcmFtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBjdXJyZW50R3JhcGggPSBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q3VycmVudEdyYXBoKGlzV2luZG93ID8gJ3dpbmRvdycgOiAnbWFpbicpO1xuICAgICAgICBpZiAoJ0Aje2hvbWV9JyA9PT0gcGF0aCkge1xuICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLm5hdmlnYXRlKCcvdmlldy91bmxvYWQnKTtcbiAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5uYXZpZ2F0ZSgnL3ZpZXcvZGFzaGJvYXJkJylcbiAgICAgICAgfSBlbHNlIGlmIChpc0hpc3RvcnkgJiYgY3VycmVudEdyYXBoKSB7XG4gICAgICAgICAgICBpZiAoKGlzV2luZG93ICYmIGN1cnJlbnRHcmFwaC5jb25maWcuaXNXaW5kb3cpIHx8ICghaXNXaW5kb3cgJiYgIWN1cnJlbnRHcmFwaC5jb25maWcuaXNXaW5kb3cpKSB7XG4gICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLnJlbW92ZUxvYWRlZEdyYXBoKChpc1dpbmRvdyAmJiBjdXJyZW50R3JhcGguY29uZmlnLmlzV2luZG93KSA/ICd3aW5kb3cnIDogJ21haW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFByZS1hdXRoIGZsb3dzIChyZWdpc3RyYXRpb24gd2l6YXJkKSBsaXZlIHVuZGVyXG4gICAgICAgICAgICAvLyAvcG9ydGFsL3ZpZXdzL3JlZ2lzdHJhdGlvbi8qIGFuZCBtdXN0IGJlIGZldGNoZWQgdmlhIHRoZVxuICAgICAgICAgICAgLy8gcHVibGljIENEVUkgZW5kcG9pbnQgQU5EIHdpdGggbm8gQXV0aG9yaXphdGlvbiBoZWFkZXIuXG4gICAgICAgICAgICAvLyBTcHJpbmcgU2VjdXJpdHkncyBiZWFyZXItYXV0aCBmaWx0ZXIgdmFsaWRhdGVzICphbnkqXG4gICAgICAgICAgICAvLyBhdHRhY2hlZCB0b2tlbiAoZXZlbiBvbiBwZXJtaXRBbGwoKSBlbmRwb2ludHMpIOKAlCBzbyBhblxuICAgICAgICAgICAgLy8gZW1wdHkvc3RhbGUgdG9rZW4gZnJvbSBhbiB1bmF1dGhlbnRpY2F0ZWQgc2Vzc2lvbiByZXR1cm5zXG4gICAgICAgICAgICAvLyA0MDEgZnJvbSB0aGUgcHVibGljIGVuZHBvaW50LiBTa2lwcGluZyB0aGUgYXV0aCBoZWFkZXJcbiAgICAgICAgICAgIC8vIGhlcmUgbWlycm9ycyB0aGUgYm9vdHN0cmFwJ3Mgc2VuZFJlcXVlc3QoLi4uLCBzZWN1cmU9ZmFsc2UpLlxuICAgICAgICAgICAgY29uc3QgaXNQdWJsaWNWaWV3ID0gcGF0aCAmJiBwYXRoLnN0YXJ0c1dpdGgoJy9wb3J0YWwvdmlld3MvcmVnaXN0cmF0aW9uLycpO1xuICAgICAgICAgICAgY29uc3Qgdmlld0VuZHBvaW50ID0gaXNQdWJsaWNWaWV3ID8gJy92aWV3L3B1YmxpYy9nZXQnIDogJy92aWV3L2dldCc7XG4gICAgICAgICAgICBsZXQgdXJsID0gbG9jYXRpb24gKyBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q29udGV4dFJvb3QoKSArIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRVSUNvbmZpZ1BhdGgoKSArIHZpZXdFbmRwb2ludCArICc/dmVyc2lvbj0xLjAmaWQ9JyArIHBhdGg7XG4gICAgICAgICAgICBzZW5kUmVxdWVzdCh1cmwsXG4gICAgICAgICAgICAgICAgKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gc2VuZFJlcXVlc3QgYXV0by1kZWNvZGVzIHRoZSB7X2NkdWlfen0gd2lyZSB3cmFwIGZvclxuICAgICAgICAgICAgICAgICAgICAvLyAvdWkvYXBpL3YqLyBVUkxzIOKAlCBkYXRhIGhlcmUgaXMgdGhlIHJhdyBDRFVJIGFzc2V0LlxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNQYXJlbnQgJiYgY3VycmVudEdyYXBoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGlzV2luZG93ICYmIGN1cnJlbnRHcmFwaC5jb25maWcuaXNXaW5kb3cpIHx8ICghaXNXaW5kb3cgJiYgIWN1cnJlbnRHcmFwaC5jb25maWcuaXNXaW5kb3cpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLnJlbW92ZUxvYWRlZEdyYXBoKChpc1dpbmRvdyAmJiBjdXJyZW50R3JhcGguY29uZmlnLmlzV2luZG93KSA/ICd3aW5kb3cnIDogJ21haW4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLnR5cGUgPT09ICd2aWV3Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGN1cnJlbnRWaWV3ID0gYXBwbGljYXRpb25NYW5hZ2VyLmdldFRvcFZpZXcoaXNXaW5kb3cgPyAnd2luZG93JyA6ICdtYWluJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmlldyA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlZmF1bHRNb2RlbCA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgVXRpbHMudXBkYXRlTW9kZWwocGFyYW1ldGVyVmFsdWVzLCBkZWZhdWx0TW9kZWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlldy5jb25maWcgPSBkYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlldy5wYXJhbWV0ZXJzID0gcGFyYW1ldGVyVmFsdWVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlldy5wYXJlbnQgPSBpc1BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXcuZ3JhcGhJZCA9IGFjdGlvbkNvbmZpZy5ncmFwaElkO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlldy5oYW5kbGUgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBpOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldCBpZCgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLmlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXQgbW9kZWwoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdE1vZGVsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRDaGlsZDogKGlkKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlTW9kZWw6ICh2YWx1ZXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxzLnVwZGF0ZU1vZGVsKHZhbHVlcywgZGVmYXVsdE1vZGVsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TW9kZWxWYWx1ZTogKGtleSwgdmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdE1vZGVsLmtleSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRNb2RlbFZhbHVlOiAoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0TW9kZWxba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGVkOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuYWRkVmlldyh2aWV3LCBwYXRoLCBmb3J3YXJkLCBhY3Rpb25Db25maWcucG9wVXAgPyAncG9wdXAnIDogaXNXaW5kb3cgPyAnd2luZG93JyA6ICdtYWluJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBOb25lLWV4aXN0aW5nIHJvdXRlIHRvIGVuc3VyZSB0aGF0IHRoZSBjdXJyZW50IHZpZXcgdW5sb2Fkc1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChhY3Rpb25Db25maWcucG9wVXApIHx8IGFjdGlvbkNvbmZpZy5wb3BVcCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXaW5kb3dzIGRvIG5vdCBnbyB0byB0aGUgT3V0bGV0IGluIHRoZSB2aWV3cG9ydC4gVGhleSBnZXQgcmVuZGVyZWQgaW50byB0aGUgd2luZG93IHZpZXdwb3J0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1dpbmRvdykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2FwcGxpY2F0aW9uTWFuYWdlci5uYXZpZ2F0ZSgnL3ZpZXcvdW5sb2FkJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlZ2lzdHJhdGlvbiB3aXphcmQgbm9kZXMgbXVzdCBzdGF5IGluc2lkZSB0aGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmVnaXN0ZXItcG9ydGFsIHJvdXRlIHRyZWUg4oCUIG5hdmlnYXRpbmcgdG9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gL3ZpZXcvPGlkPiBtb3VudHMgdGhlIGF1dGhlbnRpY2F0ZWQgYXBwIHNoZWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIChJbnRlcmFjdGlvblBvcnRhbEFwcEhvbWUpIHdoaWNoIGZpcmVzIHVzZXItZmluZCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNldHVwL2RlZmF1bHQgYW5kIGJyZWFrcyB0aGUgcHJlLWF1dGggVVguIEtlZXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIHBhdGggdW5kZXIgL3JlZ2lzdGVyLzx0eXBlPi88aWQ+IGluc3RlYWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1B1YmxpY1ZpZXcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG0gPSBwYXRoLm1hdGNoKC9eXFwvcG9ydGFsXFwvdmlld3NcXC9yZWdpc3RyYXRpb25cXC8oW14vXSspXFwvLyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0eXBlID0gKG0gJiYgbVsxXSkgfHwgJ3ZlbmRvcic7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIubmF2aWdhdGUoJy9yZWdpc3Rlci8nICsgdHlwZSArICcvJyArIGRhdGEuaWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLm5hdmlnYXRlKCcvdmlldy8nICsgZGF0YS5pZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIub3BlbldpbmRvd1ZpZXcodmlldyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIub3BlblBvcHVwVmlldyh2aWV3KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChkYXRhLnR5cGUgPT09ICdncmFwaCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEuaXNXaW5kb3cgPSBpc1dpbmRvdztcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5sb2FkR3JhcGgoaXNQYXJlbnQsIGRhdGEsIHBhcmFtZXRlclZhbHVlcywgKGlzUG9wdXAgPyAncG9wdXAnIDogaXNXaW5kb3cgPyAnd2luZG93JyA6ICdtYWluJykpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgICAgICB9LCAhaXNQdWJsaWNWaWV3LCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmNvbnN0IGluc3RhbmNlID0gbmV3IFJvdXRlQWN0aW9uSGFuZGxlcigpO1xuT2JqZWN0LmZyZWV6ZShpbnN0YW5jZSk7XG5cbmV4cG9ydCBkZWZhdWx0IGluc3RhbmNlO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxtQkFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksVUFBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssV0FBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU0sVUFBQSxHQUFBUCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU8sTUFBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQTRCLFNBQUFELHVCQUFBUyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRTVCLE1BQU1HLFFBQVEsR0FBR0MsTUFBTSxDQUFDRCxRQUFR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
|
|
@@ -13,6 +13,11 @@ var _EventType = _interopRequireDefault(require("./EventType"));
|
|
|
13
13
|
var _Event = _interopRequireDefault(require("./Event"));
|
|
14
14
|
var _Observable = _interopRequireDefault(require("./Observable"));
|
|
15
15
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
17
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
18
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
19
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
20
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
16
21
|
class ServiceCallActionHandler {
|
|
17
22
|
constructor() {
|
|
18
23
|
if (!ServiceCallActionHandler.instance) {
|
|
@@ -28,34 +33,68 @@ class ServiceCallActionHandler {
|
|
|
28
33
|
if (!_Utils.default.isNull(successMessage) && _ApplicationManager.default.isExpression(successMessage)) {
|
|
29
34
|
successMessage = _DynamicJS.default.executeScript("".concat(Math.random(), "_ServiceEval_SuccessMessage"), successMessage);
|
|
30
35
|
}
|
|
36
|
+
|
|
37
|
+
// Component Action Tracker — see spec/component-action-tracker.md
|
|
38
|
+
const trackerSpec = actionConfig.trackerSpec || {};
|
|
39
|
+
const trackTarget = trackerSpec.target === 'COMPONENT' ? 'COMPONENT' : 'VIEWPORT';
|
|
40
|
+
const actionId = "act_".concat(Date.now(), "_").concat(Math.random().toString(36).slice(2));
|
|
41
|
+
const trackArgs = _objectSpread(_objectSpread({}, trackerSpec), {}, {
|
|
42
|
+
actionId
|
|
43
|
+
});
|
|
44
|
+
const startTrack = () => {
|
|
45
|
+
if (trackTarget !== 'COMPONENT') return;
|
|
46
|
+
try {
|
|
47
|
+
const handle = !_Utils.default.isNull(component) && !_Utils.default.isNull(component.current) ? component.current : component;
|
|
48
|
+
if (handle && handle.api && typeof handle.api.trackAction === 'function') {
|
|
49
|
+
handle.api.trackAction(trackArgs);
|
|
50
|
+
}
|
|
51
|
+
} catch (e) {
|
|
52
|
+
// Tracker errors must never break the service call.
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
const stopTrack = () => {
|
|
56
|
+
if (trackTarget !== 'COMPONENT') return;
|
|
57
|
+
try {
|
|
58
|
+
const handle = !_Utils.default.isNull(component) && !_Utils.default.isNull(component.current) ? component.current : component;
|
|
59
|
+
if (handle && handle.api && typeof handle.api.stopTrackAction === 'function') {
|
|
60
|
+
handle.api.stopTrackAction({
|
|
61
|
+
actionId
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
} catch (e) {
|
|
65
|
+
// Same — best-effort.
|
|
66
|
+
}
|
|
67
|
+
};
|
|
31
68
|
if (actionConfig.service.type === 'rpc' || actionConfig.service.type === 'rest') {
|
|
32
69
|
let method = actionConfig.service.type === 'rpc' ? _RestService.invokeRpc : _RestService.invokeRest;
|
|
70
|
+
const requestBase = {
|
|
71
|
+
service: actionConfig.service,
|
|
72
|
+
component,
|
|
73
|
+
viewId: currentViewId,
|
|
74
|
+
returnValueBinding: actionConfig.returnValueBinding,
|
|
75
|
+
successMessage: successMessage,
|
|
76
|
+
event,
|
|
77
|
+
// VIEWPORT (default) leaves trackPromise on; COMPONENT bypasses it
|
|
78
|
+
// so only one indicator drives — see spec mutual-exclusion clause.
|
|
79
|
+
track: trackTarget !== 'COMPONENT'
|
|
80
|
+
};
|
|
81
|
+
startTrack();
|
|
33
82
|
if (actionConfig.service.async === false) {
|
|
34
83
|
try {
|
|
35
|
-
let response = await method(
|
|
36
|
-
service: actionConfig.service,
|
|
37
|
-
component,
|
|
38
|
-
viewId: currentViewId,
|
|
39
|
-
returnValueBinding: actionConfig.returnValueBinding,
|
|
40
|
-
successMessage: successMessage,
|
|
41
|
-
event
|
|
42
|
-
});
|
|
84
|
+
let response = await method(requestBase);
|
|
43
85
|
this.handleSuccess(component, actionConfig, response, currentViewId, successCallback);
|
|
44
86
|
} catch (e) {
|
|
45
87
|
this.handleError(e, invalidParameterCallback, currentViewId, component, errorCallback);
|
|
88
|
+
} finally {
|
|
89
|
+
stopTrack();
|
|
46
90
|
}
|
|
47
91
|
} else {
|
|
48
|
-
method({
|
|
49
|
-
service: actionConfig.service,
|
|
50
|
-
component,
|
|
51
|
-
viewId: currentViewId,
|
|
52
|
-
returnValueBinding: actionConfig.returnValueBinding,
|
|
53
|
-
successMessage: successMessage,
|
|
54
|
-
event
|
|
55
|
-
}).then(response => {
|
|
92
|
+
method(requestBase).then(response => {
|
|
56
93
|
this.handleSuccess(component, actionConfig, response, currentViewId, successCallback);
|
|
57
94
|
}).catch(e => {
|
|
58
95
|
this.handleError(e, invalidParameterCallback, currentViewId, component, errorCallback);
|
|
96
|
+
}).finally(() => {
|
|
97
|
+
stopTrack();
|
|
59
98
|
});
|
|
60
99
|
}
|
|
61
100
|
} else {
|
|
@@ -103,4 +142,4 @@ class ServiceCallActionHandler {
|
|
|
103
142
|
const instance = new ServiceCallActionHandler();
|
|
104
143
|
Object.freeze(instance);
|
|
105
144
|
var _default = exports.default = instance;
|
|
106
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9SZXN0U2VydmljZSIsIl9EeW5hbWljSlMiLCJfVXRpbHMiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiX0V2ZW50VHlwZSIsIl9FdmVudCIsIl9PYnNlcnZhYmxlIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiU2VydmljZUNhbGxBY3Rpb25IYW5kbGVyIiwiY29uc3RydWN0b3IiLCJpbnN0YW5jZSIsImV4ZWN1dGUiLCJhY3Rpb25Db25maWciLCJldmVudCIsImNvbXBvbmVudCIsImN1cnJlbnRWaWV3SWQiLCJzdWNjZXNzQ2FsbGJhY2siLCJlcnJvckNhbGxiYWNrIiwiaW52YWxpZFBhcmFtZXRlckNhbGxiYWNrIiwiYXBwbGljYXRpb25NYW5hZ2VyIiwiaXNFeHByZXNzaW9uIiwic2VydmljZSIsInVybCIsImR5bmFtaWNKUyIsImV4ZWN1dGVTY3JpcHQiLCJjb25jYXQiLCJNYXRoIiwicmFuZG9tIiwic3VjY2Vzc01lc3NhZ2UiLCJVdGlscyIsImlzTnVsbCIsInR5cGUiLCJtZXRob2QiLCJpbnZva2VScGMiLCJpbnZva2VSZXN0IiwiYXN5bmMiLCJyZXNwb25zZSIsInZpZXdJZCIsInJldHVyblZhbHVlQmluZGluZyIsImhhbmRsZVN1Y2Nlc3MiLCJoYW5kbGVFcnJvciIsInRoZW4iLCJjYXRjaCIsImNvbnNvbGUiLCJlcnJvciIsImVycm9yVHlwZSIsIndhcm4iLCJwYXJhbWV0ZXIiLCJwdWJsaXNoRXJyb3JNZXNzYWdlIiwiZmlyZUV2ZW50IiwiRXZlbnRUeXBlIiwiU0VSVklDRV9DQUxMX0ZBSUxVUkUiLCJoYW5kbGUiLCJjdXJyZW50IiwicG9zdFNjcmlwdCIsInZhbHVlc01hcCIsImV4ZWN1dGVTY3JpcHRPYmplY3QiLCJhcGkiLCJpZCIsImRhdGEiLCJTRVJWSUNFX0NBTExfU1VDQ0VTUyIsImV2ZW50VHlwZSIsIkV2ZW50IiwiZXZlbnRNYW5hZ2VyIiwiT2JqZWN0IiwiZnJlZXplIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9ldmVudC9TZXJ2aWNlQ2FsbEFjdGlvbkhhbmRsZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHtpbnZva2VScGMsIGludm9rZVJlc3R9IGZyb20gXCIuLi9SZXN0U2VydmljZVwiO1xuaW1wb3J0IGR5bmFtaWNKUyBmcm9tIFwiLi8uLi9EeW5hbWljSlNcIjtcbmltcG9ydCBVdGlscyBmcm9tICcuLy4uL1V0aWxzJztcbmltcG9ydCBhcHBsaWNhdGlvbk1hbmFnZXIgZnJvbSBcIi4uL0FwcGxpY2F0aW9uTWFuYWdlclwiO1xuaW1wb3J0IEV2ZW50VHlwZSBmcm9tIFwiLi9FdmVudFR5cGVcIjtcbmltcG9ydCBFdmVudCBmcm9tIFwiLi9FdmVudFwiO1xuaW1wb3J0IGV2ZW50TWFuYWdlciBmcm9tIFwiLi9PYnNlcnZhYmxlXCI7XG5cbmNsYXNzIFNlcnZpY2VDYWxsQWN0aW9uSGFuZGxlciB7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgaWYgKCFTZXJ2aWNlQ2FsbEFjdGlvbkhhbmRsZXIuaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIFNlcnZpY2VDYWxsQWN0aW9uSGFuZGxlci5pbnN0YW5jZSA9IHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gU2VydmljZUNhbGxBY3Rpb25IYW5kbGVyLmluc3RhbmNlO1xuICAgIH1cblxuICAgIGFzeW5jIGV4ZWN1dGUoYWN0aW9uQ29uZmlnLCBldmVudCwgY29tcG9uZW50LCBjdXJyZW50Vmlld0lkLCBzdWNjZXNzQ2FsbGJhY2ssIGVycm9yQ2FsbGJhY2ssIGludmFsaWRQYXJhbWV0ZXJDYWxsYmFjaykge1xuICAgICAgICBpZihhcHBsaWNhdGlvbk1hbmFnZXIuaXNFeHByZXNzaW9uKGFjdGlvbkNvbmZpZy5zZXJ2aWNlLnVybCkpe1xuICAgICAgICAgICAgYWN0aW9uQ29uZmlnLnNlcnZpY2UudXJsID0gZHluYW1pY0pTLmV4ZWN1dGVTY3JpcHQoYCR7TWF0aC5yYW5kb20oKX1fU2VydmljZUV2YWxgLCBhY3Rpb25Db25maWcuc2VydmljZS51cmwpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHN1Y2Nlc3NNZXNzYWdlID0gYWN0aW9uQ29uZmlnLnN1Y2Nlc3NNZXNzYWdlO1xuICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChzdWNjZXNzTWVzc2FnZSkgJiYgYXBwbGljYXRpb25NYW5hZ2VyLmlzRXhwcmVzc2lvbihzdWNjZXNzTWVzc2FnZSkpIHtcbiAgICAgICAgICAgIHN1Y2Nlc3NNZXNzYWdlID0gZHluYW1pY0pTLmV4ZWN1dGVTY3JpcHQoYCR7TWF0aC5yYW5kb20oKX1fU2VydmljZUV2YWxfU3VjY2Vzc01lc3NhZ2VgLCBzdWNjZXNzTWVzc2FnZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYWN0aW9uQ29uZmlnLnNlcnZpY2UudHlwZSA9PT0gJ3JwYycgfHwgYWN0aW9uQ29uZmlnLnNlcnZpY2UudHlwZSA9PT0gJ3Jlc3QnKSB7XG4gICAgICAgICAgICBsZXQgbWV0aG9kID0gYWN0aW9uQ29uZmlnLnNlcnZpY2UudHlwZSA9PT0gJ3JwYycgPyBpbnZva2VScGMgOiBpbnZva2VSZXN0O1xuICAgICAgICAgICAgaWYgKGFjdGlvbkNvbmZpZy5zZXJ2aWNlLmFzeW5jID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCByZXNwb25zZSA9IGF3YWl0IG1ldGhvZCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlOiBhY3Rpb25Db25maWcuc2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZDogY3VycmVudFZpZXdJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblZhbHVlQmluZGluZzogYWN0aW9uQ29uZmlnLnJldHVyblZhbHVlQmluZGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3NNZXNzYWdlOiBzdWNjZXNzTWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlU3VjY2Vzcyhjb21wb25lbnQsIGFjdGlvbkNvbmZpZywgcmVzcG9uc2UsIGN1cnJlbnRWaWV3SWQsIHN1Y2Nlc3NDYWxsYmFjayk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGUsIGludmFsaWRQYXJhbWV0ZXJDYWxsYmFjaywgY3VycmVudFZpZXdJZCwgY29tcG9uZW50LCBlcnJvckNhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1ldGhvZCh7XG4gICAgICAgICAgICAgICAgICAgIHNlcnZpY2U6IGFjdGlvbkNvbmZpZy5zZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQsXG4gICAgICAgICAgICAgICAgICAgIHZpZXdJZDogY3VycmVudFZpZXdJZCxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuVmFsdWVCaW5kaW5nOiBhY3Rpb25Db25maWcucmV0dXJuVmFsdWVCaW5kaW5nLFxuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzTWVzc2FnZTogc3VjY2Vzc01lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50XG4gICAgICAgICAgICAgICAgfSkudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVTdWNjZXNzKGNvbXBvbmVudCwgYWN0aW9uQ29uZmlnLCByZXNwb25zZSwgY3VycmVudFZpZXdJZCwgc3VjY2Vzc0NhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGUsIGludmFsaWRQYXJhbWV0ZXJDYWxsYmFjaywgY3VycmVudFZpZXdJZCwgY29tcG9uZW50LCBlcnJvckNhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcIlVua25vd24gc2VydmljZSB0eXBlIDogXCIgKyBhY3Rpb25Db25maWcuc2VydmljZS50eXBlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhbmRsZUVycm9yKGUsIGludmFsaWRQYXJhbWV0ZXJDYWxsYmFjaywgY3VycmVudFZpZXdJZCwgY29tcG9uZW50LCBlcnJvckNhbGxiYWNrKSB7XG4gICAgICAgIGlmIChlICYmIGUuZXJyb3JUeXBlID09PSAnSU5WQUxJRF9QQVJBTUVURVInKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXCJUaGUgc2VydmljZSB3YXMgbm90IGJlIGNhbGxlZCBiZWNhdXNlIG9mIGEgbnVsbCByZXF1aXJlZCBwYXJhbWV0ZXIgOiBcIiwgZS5wYXJhbWV0ZXIpO1xuICAgICAgICAgICAgaWYgKGludmFsaWRQYXJhbWV0ZXJDYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIGludmFsaWRQYXJhbWV0ZXJDYWxsYmFjaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgIFV0aWxzLnB1Ymxpc2hFcnJvck1lc3NhZ2UoZSwgY3VycmVudFZpZXdJZCwgY29tcG9uZW50KTtcbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGVycm9yQ2FsbGJhY2spKSB7XG4gICAgICAgICAgICAgICAgZXJyb3JDYWxsYmFjayhlKVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5maXJlRXZlbnQoY3VycmVudFZpZXdJZCwgY29tcG9uZW50LCBFdmVudFR5cGUuU0VSVklDRV9DQUxMX0ZBSUxVUkUpO1xuICAgIH1cblxuICAgIGhhbmRsZVN1Y2Nlc3MoY29tcG9uZW50LCBhY3Rpb25Db25maWcsIHJlc3BvbnNlLCBjdXJyZW50Vmlld0lkLCBzdWNjZXNzQ2FsbGJhY2spIHtcbiAgICAgICAgbGV0IGhhbmRsZSA9ICFVdGlscy5pc051bGwoY29tcG9uZW50KSAmJiAhVXRpbHMuaXNOdWxsKGNvbXBvbmVudC5jdXJyZW50KSA/IGNvbXBvbmVudC5jdXJyZW50IDogY29tcG9uZW50O1xuICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChhY3Rpb25Db25maWcucG9zdFNjcmlwdCkpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlc01hcCA9IHt9O1xuICAgICAgICAgICAgICAgIHZhbHVlc01hcC5yZXNwb25zZSA9IHJlc3BvbnNlO1xuICAgICAgICAgICAgICAgIGR5bmFtaWNKUy5leGVjdXRlU2NyaXB0T2JqZWN0KCdwb3N0U2NyaXB0XycgKyBjdXJyZW50Vmlld0lkICsgJ18nICsgaGFuZGxlLmFwaS5pZCxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uQ29uZmlnLnBvc3RTY3JpcHQsIGhhbmRsZS5hcGkuaWQsIHZhbHVlc01hcCwge2RhdGE6IHJlc3BvbnNlfSk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHN1Y2Nlc3NDYWxsYmFjaykpIHtcbiAgICAgICAgICAgIHN1Y2Nlc3NDYWxsYmFjayhyZXNwb25zZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZpcmVFdmVudChjdXJyZW50Vmlld0lkLCBjb21wb25lbnQsIEV2ZW50VHlwZS5TRVJWSUNFX0NBTExfU1VDQ0VTUywgcmVzcG9uc2UpO1xuICAgIH1cblxuICAgIGZpcmVFdmVudCh2aWV3SWQsIGNvbXBvbmVudCwgZXZlbnRUeXBlLCByZXNwb25zZSkge1xuICAgICAgICBsZXQgZXZlbnQgPSBuZXcgRXZlbnQoY29tcG9uZW50LCB2aWV3SWQsIHJlc3BvbnNlKTtcbiAgICAgICAgZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChldmVudFR5cGUsIGV2ZW50KTtcbiAgICB9XG59XG5cbmNvbnN0IGluc3RhbmNlID0gbmV3IFNlcnZpY2VDYWxsQWN0aW9uSGFuZGxlcigpO1xuT2JqZWN0LmZyZWV6ZShpbnN0YW5jZSk7XG5cbmV4cG9ydCBkZWZhdWx0IGluc3RhbmNlO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxZQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxVQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxtQkFBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssVUFBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU0sTUFBQSxHQUFBUCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU8sV0FBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQXdDLFNBQUFELHVCQUFBUyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBRXhDLE1BQU1HLHdCQUF3QixDQUFDO0VBRTNCQyxXQUFXQSxDQUFBLEVBQUc7SUFDVixJQUFJLENBQUNELHdCQUF3QixDQUFDRSxRQUFRLEVBQUU7TUFDcENGLHdCQUF3QixDQUFDRSxRQUFRLEdBQUcsSUFBSTtJQUM1QztJQUVBLE9BQU9GLHdCQUF3QixDQUFDRSxRQUFRO0VBQzVDO0VB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
|
|
145
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9SZXN0U2VydmljZSIsIl9EeW5hbWljSlMiLCJfVXRpbHMiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiX0V2ZW50VHlwZSIsIl9FdmVudCIsIl9PYnNlcnZhYmxlIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0Iiwib3duS2V5cyIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX3RvUHJvcGVydHlLZXkiLCJ2YWx1ZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiaSIsIl90b1ByaW1pdGl2ZSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsIlNlcnZpY2VDYWxsQWN0aW9uSGFuZGxlciIsImNvbnN0cnVjdG9yIiwiaW5zdGFuY2UiLCJleGVjdXRlIiwiYWN0aW9uQ29uZmlnIiwiZXZlbnQiLCJjb21wb25lbnQiLCJjdXJyZW50Vmlld0lkIiwic3VjY2Vzc0NhbGxiYWNrIiwiZXJyb3JDYWxsYmFjayIsImludmFsaWRQYXJhbWV0ZXJDYWxsYmFjayIsImFwcGxpY2F0aW9uTWFuYWdlciIsImlzRXhwcmVzc2lvbiIsInNlcnZpY2UiLCJ1cmwiLCJkeW5hbWljSlMiLCJleGVjdXRlU2NyaXB0IiwiY29uY2F0IiwiTWF0aCIsInJhbmRvbSIsInN1Y2Nlc3NNZXNzYWdlIiwiVXRpbHMiLCJpc051bGwiLCJ0cmFja2VyU3BlYyIsInRyYWNrVGFyZ2V0IiwidGFyZ2V0IiwiYWN0aW9uSWQiLCJEYXRlIiwibm93IiwidG9TdHJpbmciLCJzbGljZSIsInRyYWNrQXJncyIsInN0YXJ0VHJhY2siLCJoYW5kbGUiLCJjdXJyZW50IiwiYXBpIiwidHJhY2tBY3Rpb24iLCJzdG9wVHJhY2siLCJzdG9wVHJhY2tBY3Rpb24iLCJ0eXBlIiwibWV0aG9kIiwiaW52b2tlUnBjIiwiaW52b2tlUmVzdCIsInJlcXVlc3RCYXNlIiwidmlld0lkIiwicmV0dXJuVmFsdWVCaW5kaW5nIiwidHJhY2siLCJhc3luYyIsInJlc3BvbnNlIiwiaGFuZGxlU3VjY2VzcyIsImhhbmRsZUVycm9yIiwidGhlbiIsImNhdGNoIiwiZmluYWxseSIsImNvbnNvbGUiLCJlcnJvciIsImVycm9yVHlwZSIsIndhcm4iLCJwYXJhbWV0ZXIiLCJwdWJsaXNoRXJyb3JNZXNzYWdlIiwiZmlyZUV2ZW50IiwiRXZlbnRUeXBlIiwiU0VSVklDRV9DQUxMX0ZBSUxVUkUiLCJwb3N0U2NyaXB0IiwidmFsdWVzTWFwIiwiZXhlY3V0ZVNjcmlwdE9iamVjdCIsImlkIiwiZGF0YSIsIlNFUlZJQ0VfQ0FMTF9TVUNDRVNTIiwiZXZlbnRUeXBlIiwiRXZlbnQiLCJldmVudE1hbmFnZXIiLCJmcmVlemUiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2V2ZW50L1NlcnZpY2VDYWxsQWN0aW9uSGFuZGxlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQge2ludm9rZVJwYywgaW52b2tlUmVzdH0gZnJvbSBcIi4uL1Jlc3RTZXJ2aWNlXCI7XG5pbXBvcnQgZHluYW1pY0pTIGZyb20gXCIuLy4uL0R5bmFtaWNKU1wiO1xuaW1wb3J0IFV0aWxzIGZyb20gJy4vLi4vVXRpbHMnO1xuaW1wb3J0IGFwcGxpY2F0aW9uTWFuYWdlciBmcm9tIFwiLi4vQXBwbGljYXRpb25NYW5hZ2VyXCI7XG5pbXBvcnQgRXZlbnRUeXBlIGZyb20gXCIuL0V2ZW50VHlwZVwiO1xuaW1wb3J0IEV2ZW50IGZyb20gXCIuL0V2ZW50XCI7XG5pbXBvcnQgZXZlbnRNYW5hZ2VyIGZyb20gXCIuL09ic2VydmFibGVcIjtcblxuY2xhc3MgU2VydmljZUNhbGxBY3Rpb25IYW5kbGVyIHtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBpZiAoIVNlcnZpY2VDYWxsQWN0aW9uSGFuZGxlci5pbnN0YW5jZSkge1xuICAgICAgICAgICAgU2VydmljZUNhbGxBY3Rpb25IYW5kbGVyLmluc3RhbmNlID0gdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBTZXJ2aWNlQ2FsbEFjdGlvbkhhbmRsZXIuaW5zdGFuY2U7XG4gICAgfVxuXG4gICAgYXN5bmMgZXhlY3V0ZShhY3Rpb25Db25maWcsIGV2ZW50LCBjb21wb25lbnQsIGN1cnJlbnRWaWV3SWQsIHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaywgaW52YWxpZFBhcmFtZXRlckNhbGxiYWNrKSB7XG4gICAgICAgIGlmKGFwcGxpY2F0aW9uTWFuYWdlci5pc0V4cHJlc3Npb24oYWN0aW9uQ29uZmlnLnNlcnZpY2UudXJsKSl7XG4gICAgICAgICAgICBhY3Rpb25Db25maWcuc2VydmljZS51cmwgPSBkeW5hbWljSlMuZXhlY3V0ZVNjcmlwdChgJHtNYXRoLnJhbmRvbSgpfV9TZXJ2aWNlRXZhbGAsIGFjdGlvbkNvbmZpZy5zZXJ2aWNlLnVybCk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgc3VjY2Vzc01lc3NhZ2UgPSBhY3Rpb25Db25maWcuc3VjY2Vzc01lc3NhZ2U7XG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHN1Y2Nlc3NNZXNzYWdlKSAmJiBhcHBsaWNhdGlvbk1hbmFnZXIuaXNFeHByZXNzaW9uKHN1Y2Nlc3NNZXNzYWdlKSkge1xuICAgICAgICAgICAgc3VjY2Vzc01lc3NhZ2UgPSBkeW5hbWljSlMuZXhlY3V0ZVNjcmlwdChgJHtNYXRoLnJhbmRvbSgpfV9TZXJ2aWNlRXZhbF9TdWNjZXNzTWVzc2FnZWAsIHN1Y2Nlc3NNZXNzYWdlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENvbXBvbmVudCBBY3Rpb24gVHJhY2tlciDigJQgc2VlIHNwZWMvY29tcG9uZW50LWFjdGlvbi10cmFja2VyLm1kXG4gICAgICAgIGNvbnN0IHRyYWNrZXJTcGVjID0gYWN0aW9uQ29uZmlnLnRyYWNrZXJTcGVjIHx8IHt9O1xuICAgICAgICBjb25zdCB0cmFja1RhcmdldCA9IHRyYWNrZXJTcGVjLnRhcmdldCA9PT0gJ0NPTVBPTkVOVCcgPyAnQ09NUE9ORU5UJyA6ICdWSUVXUE9SVCc7XG4gICAgICAgIGNvbnN0IGFjdGlvbklkID0gYGFjdF8ke0RhdGUubm93KCl9XyR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMil9YDtcbiAgICAgICAgY29uc3QgdHJhY2tBcmdzID0geyAuLi50cmFja2VyU3BlYywgYWN0aW9uSWQgfTtcblxuICAgICAgICBjb25zdCBzdGFydFRyYWNrID0gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRyYWNrVGFyZ2V0ICE9PSAnQ09NUE9ORU5UJykgcmV0dXJuO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBoYW5kbGUgPSAhVXRpbHMuaXNOdWxsKGNvbXBvbmVudCkgJiYgIVV0aWxzLmlzTnVsbChjb21wb25lbnQuY3VycmVudCkgPyBjb21wb25lbnQuY3VycmVudCA6IGNvbXBvbmVudDtcbiAgICAgICAgICAgICAgICBpZiAoaGFuZGxlICYmIGhhbmRsZS5hcGkgJiYgdHlwZW9mIGhhbmRsZS5hcGkudHJhY2tBY3Rpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlLmFwaS50cmFja0FjdGlvbih0cmFja0FyZ3MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAvLyBUcmFja2VyIGVycm9ycyBtdXN0IG5ldmVyIGJyZWFrIHRoZSBzZXJ2aWNlIGNhbGwuXG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHN0b3BUcmFjayA9ICgpID0+IHtcbiAgICAgICAgICAgIGlmICh0cmFja1RhcmdldCAhPT0gJ0NPTVBPTkVOVCcpIHJldHVybjtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaGFuZGxlID0gIVV0aWxzLmlzTnVsbChjb21wb25lbnQpICYmICFVdGlscy5pc051bGwoY29tcG9uZW50LmN1cnJlbnQpID8gY29tcG9uZW50LmN1cnJlbnQgOiBjb21wb25lbnQ7XG4gICAgICAgICAgICAgICAgaWYgKGhhbmRsZSAmJiBoYW5kbGUuYXBpICYmIHR5cGVvZiBoYW5kbGUuYXBpLnN0b3BUcmFja0FjdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBoYW5kbGUuYXBpLnN0b3BUcmFja0FjdGlvbih7IGFjdGlvbklkIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAvLyBTYW1lIOKAlCBiZXN0LWVmZm9ydC5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoYWN0aW9uQ29uZmlnLnNlcnZpY2UudHlwZSA9PT0gJ3JwYycgfHwgYWN0aW9uQ29uZmlnLnNlcnZpY2UudHlwZSA9PT0gJ3Jlc3QnKSB7XG4gICAgICAgICAgICBsZXQgbWV0aG9kID0gYWN0aW9uQ29uZmlnLnNlcnZpY2UudHlwZSA9PT0gJ3JwYycgPyBpbnZva2VScGMgOiBpbnZva2VSZXN0O1xuICAgICAgICAgICAgY29uc3QgcmVxdWVzdEJhc2UgPSB7XG4gICAgICAgICAgICAgICAgc2VydmljZTogYWN0aW9uQ29uZmlnLnNlcnZpY2UsXG4gICAgICAgICAgICAgICAgY29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHZpZXdJZDogY3VycmVudFZpZXdJZCxcbiAgICAgICAgICAgICAgICByZXR1cm5WYWx1ZUJpbmRpbmc6IGFjdGlvbkNvbmZpZy5yZXR1cm5WYWx1ZUJpbmRpbmcsXG4gICAgICAgICAgICAgICAgc3VjY2Vzc01lc3NhZ2U6IHN1Y2Nlc3NNZXNzYWdlLFxuICAgICAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgICAgIC8vIFZJRVdQT1JUIChkZWZhdWx0KSBsZWF2ZXMgdHJhY2tQcm9taXNlIG9uOyBDT01QT05FTlQgYnlwYXNzZXMgaXRcbiAgICAgICAgICAgICAgICAvLyBzbyBvbmx5IG9uZSBpbmRpY2F0b3IgZHJpdmVzIOKAlCBzZWUgc3BlYyBtdXR1YWwtZXhjbHVzaW9uIGNsYXVzZS5cbiAgICAgICAgICAgICAgICB0cmFjazogdHJhY2tUYXJnZXQgIT09ICdDT01QT05FTlQnXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgc3RhcnRUcmFjaygpO1xuICAgICAgICAgICAgaWYgKGFjdGlvbkNvbmZpZy5zZXJ2aWNlLmFzeW5jID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCByZXNwb25zZSA9IGF3YWl0IG1ldGhvZChyZXF1ZXN0QmFzZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlU3VjY2Vzcyhjb21wb25lbnQsIGFjdGlvbkNvbmZpZywgcmVzcG9uc2UsIGN1cnJlbnRWaWV3SWQsIHN1Y2Nlc3NDYWxsYmFjayk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGUsIGludmFsaWRQYXJhbWV0ZXJDYWxsYmFjaywgY3VycmVudFZpZXdJZCwgY29tcG9uZW50LCBlcnJvckNhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICAgICAgICBzdG9wVHJhY2soKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1ldGhvZChyZXF1ZXN0QmFzZSkudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVTdWNjZXNzKGNvbXBvbmVudCwgYWN0aW9uQ29uZmlnLCByZXNwb25zZSwgY3VycmVudFZpZXdJZCwgc3VjY2Vzc0NhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGUsIGludmFsaWRQYXJhbWV0ZXJDYWxsYmFjaywgY3VycmVudFZpZXdJZCwgY29tcG9uZW50LCBlcnJvckNhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICB9KS5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc3RvcFRyYWNrKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiVW5rbm93biBzZXJ2aWNlIHR5cGUgOiBcIiArIGFjdGlvbkNvbmZpZy5zZXJ2aWNlLnR5cGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlRXJyb3IoZSwgaW52YWxpZFBhcmFtZXRlckNhbGxiYWNrLCBjdXJyZW50Vmlld0lkLCBjb21wb25lbnQsIGVycm9yQ2FsbGJhY2spIHtcbiAgICAgICAgaWYgKGUgJiYgZS5lcnJvclR5cGUgPT09ICdJTlZBTElEX1BBUkFNRVRFUicpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcIlRoZSBzZXJ2aWNlIHdhcyBub3QgYmUgY2FsbGVkIGJlY2F1c2Ugb2YgYSBudWxsIHJlcXVpcmVkIHBhcmFtZXRlciA6IFwiLCBlLnBhcmFtZXRlcik7XG4gICAgICAgICAgICBpZiAoaW52YWxpZFBhcmFtZXRlckNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgaW52YWxpZFBhcmFtZXRlckNhbGxiYWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgVXRpbHMucHVibGlzaEVycm9yTWVzc2FnZShlLCBjdXJyZW50Vmlld0lkLCBjb21wb25lbnQpO1xuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwoZXJyb3JDYWxsYmFjaykpIHtcbiAgICAgICAgICAgICAgICBlcnJvckNhbGxiYWNrKGUpXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZpcmVFdmVudChjdXJyZW50Vmlld0lkLCBjb21wb25lbnQsIEV2ZW50VHlwZS5TRVJWSUNFX0NBTExfRkFJTFVSRSk7XG4gICAgfVxuXG4gICAgaGFuZGxlU3VjY2Vzcyhjb21wb25lbnQsIGFjdGlvbkNvbmZpZywgcmVzcG9uc2UsIGN1cnJlbnRWaWV3SWQsIHN1Y2Nlc3NDYWxsYmFjaykge1xuICAgICAgICBsZXQgaGFuZGxlID0gIVV0aWxzLmlzTnVsbChjb21wb25lbnQpICYmICFVdGlscy5pc051bGwoY29tcG9uZW50LmN1cnJlbnQpID8gY29tcG9uZW50LmN1cnJlbnQgOiBjb21wb25lbnQ7XG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGFjdGlvbkNvbmZpZy5wb3N0U2NyaXB0KSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWVzTWFwID0ge307XG4gICAgICAgICAgICAgICAgdmFsdWVzTWFwLnJlc3BvbnNlID0gcmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgZHluYW1pY0pTLmV4ZWN1dGVTY3JpcHRPYmplY3QoJ3Bvc3RTY3JpcHRfJyArIGN1cnJlbnRWaWV3SWQgKyAnXycgKyBoYW5kbGUuYXBpLmlkLFxuICAgICAgICAgICAgICAgICAgICBhY3Rpb25Db25maWcucG9zdFNjcmlwdCwgaGFuZGxlLmFwaS5pZCwgdmFsdWVzTWFwLCB7ZGF0YTogcmVzcG9uc2V9KTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFVdGlscy5pc051bGwoc3VjY2Vzc0NhbGxiYWNrKSkge1xuICAgICAgICAgICAgc3VjY2Vzc0NhbGxiYWNrKHJlc3BvbnNlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZmlyZUV2ZW50KGN1cnJlbnRWaWV3SWQsIGNvbXBvbmVudCwgRXZlbnRUeXBlLlNFUlZJQ0VfQ0FMTF9TVUNDRVNTLCByZXNwb25zZSk7XG4gICAgfVxuXG4gICAgZmlyZUV2ZW50KHZpZXdJZCwgY29tcG9uZW50LCBldmVudFR5cGUsIHJlc3BvbnNlKSB7XG4gICAgICAgIGxldCBldmVudCA9IG5ldyBFdmVudChjb21wb25lbnQsIHZpZXdJZCwgcmVzcG9uc2UpO1xuICAgICAgICBldmVudE1hbmFnZXIuZmlyZUV2ZW50KGV2ZW50VHlwZSwgZXZlbnQpO1xuICAgIH1cbn1cblxuY29uc3QgaW5zdGFuY2UgPSBuZXcgU2VydmljZUNhbGxBY3Rpb25IYW5kbGVyKCk7XG5PYmplY3QuZnJlZXplKGluc3RhbmNlKTtcblxuZXhwb3J0IGRlZmF1bHQgaW5zdGFuY2U7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFlBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFVBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLG1CQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxVQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxNQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxXQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7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LENBQUMsSUFBSSxDQUFDZSxjQUFLLENBQUNDLE1BQU0sQ0FBQ2hCLFNBQVMsQ0FBQzRCLE9BQU8sQ0FBQyxHQUFHNUIsU0FBUyxDQUFDNEIsT0FBTyxHQUFHNUIsU0FBUztJQUN6RyxJQUFJLENBQUNlLGNBQUssQ0FBQ0MsTUFBTSxDQUFDbEIsWUFBWSxDQUFDMkQsVUFBVSxDQUFDLEVBQUU7TUFDeEMsSUFBSTtRQUNBLElBQUlDLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbEJBLFNBQVMsQ0FBQ2hCLFFBQVEsR0FBR0EsUUFBUTtRQUM3QmpDLGtCQUFTLENBQUNrRCxtQkFBbUIsQ0FBQyxhQUFhLEdBQUcxRCxhQUFhLEdBQUcsR0FBRyxHQUFHMEIsTUFBTSxDQUFDRSxHQUFHLENBQUMrQixFQUFFLEVBQzdFOUQsWUFBWSxDQUFDMkQsVUFBVSxFQUFFOUIsTUFBTSxDQUFDRSxHQUFHLENBQUMrQixFQUFFLEVBQUVGLFNBQVMsRUFBRTtVQUFDRyxJQUFJLEVBQUVuQjtRQUFRLENBQUMsQ0FBQztNQUM1RSxDQUFDLENBQUMsT0FBT25GLENBQUMsRUFBRTtRQUNSeUYsT0FBTyxDQUFDQyxLQUFLLENBQUMxRixDQUFDLENBQUM7TUFDcEI7SUFDSjtJQUVBLElBQUksQ0FBQ3dELGNBQUssQ0FBQ0MsTUFBTSxDQUFDZCxlQUFlLENBQUMsRUFBRTtNQUNoQ0EsZUFBZSxDQUFDd0MsUUFBUSxDQUFDO0lBQzdCO0lBRUEsSUFBSSxDQUFDWSxTQUFTLENBQUNyRCxhQUFhLEVBQUVELFNBQVMsRUFBRXVELGtCQUFTLENBQUNPLG9CQUFvQixFQUFFcEIsUUFBUSxDQUFDO0VBQ3RGO0VBRUFZLFNBQVNBLENBQUNoQixNQUFNLEVBQUV0QyxTQUFTLEVBQUUrRCxTQUFTLEVBQUVyQixRQUFRLEVBQUU7SUFDOUMsSUFBSTNDLEtBQUssR0FBRyxJQUFJaUUsY0FBSyxDQUFDaEUsU0FBUyxFQUFFc0MsTUFBTSxFQUFFSSxRQUFRLENBQUM7SUFDbER1QixtQkFBWSxDQUFDWCxTQUFTLENBQUNTLFNBQVMsRUFBRWhFLEtBQUssQ0FBQztFQUM1QztBQUNKO0FBRUEsTUFBTUgsUUFBUSxHQUFHLElBQUlGLHdCQUF3QixDQUFDLENBQUM7QUFDL0M3QixNQUFNLENBQUNxRyxNQUFNLENBQUN0RSxRQUFRLENBQUM7QUFBQyxJQUFBdUUsUUFBQSxHQUFBQyxPQUFBLENBQUEzRyxPQUFBLEdBRVRtQyxRQUFRIiwiaWdub3JlTGlzdCI6W119
|